ES2296489A1 - Metodo escalable de compresion de audio e imagenes. - Google Patents

Metodo escalable de compresion de audio e imagenes. Download PDF

Info

Publication number
ES2296489A1
ES2296489A1 ES200503001A ES200503001A ES2296489A1 ES 2296489 A1 ES2296489 A1 ES 2296489A1 ES 200503001 A ES200503001 A ES 200503001A ES 200503001 A ES200503001 A ES 200503001A ES 2296489 A1 ES2296489 A1 ES 2296489A1
Authority
ES
Spain
Prior art keywords
values
quantification
prediction
spectrogram
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
ES200503001A
Other languages
English (en)
Other versions
ES2296489B1 (es
Inventor
Cesar Alonso Abad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to ES200503001A priority Critical patent/ES2296489B1/es
Priority to PCT/ES2006/070190 priority patent/WO2007077280A1/es
Publication of ES2296489A1 publication Critical patent/ES2296489A1/es
Application granted granted Critical
Publication of ES2296489B1 publication Critical patent/ES2296489B1/es
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Método de compresión perceptual de señales de audio en el dominio espectral que utiliza un modelo psicoacústico para determinar el margen de ruido de cuantificación al que el oído es insensible y cuantifica uno a uno cada coeficiente espectral usando el mayor escalón de cuantificación que permita dicho margen, tratando de favorecer un determinado subconjunto de valores de cuantificación especialmente fáciles de comprimir en una etapa posterior. Se consigue así que las palabras más fáciles de codificar sean las más probables, que haya muchos valores posibles que no se den nunca, y que no se pierda la estructura del lenguaje binario natural, con lo cual, se puede prescindir de los bits menos significativos de los valores cuantificados para dotar al sistema de escalabilidad. El método se puede extender a cualquier tipo de señales para las cuales se disponga de un modelo de enmascaramiento de ruido de cuantificación.

Description

Método escalable de compresión de audio e imágenes.
Sector de la técnica
La presente invención se encuadra dentro de los codificadores perceptuales, para el almacenamiento o la transmisión de archivos de audio o imágenes de forma eficiente, sin pérdidas perceptibles. Se centra en la compresión de audio, pero los principios en los que se basa se pueden extender de forma directa a la compresión de imágenes.
Estado de la técnica
La presente invención se basa en los mismos principios que se vienen utilizando en los distintos estándares ISO/MPEG para la compresión de audio, sobradamente conocidos. Esto incluye: muestreo y digitalización de segmentos cortos de audio en el tiempo, transformación de éstos al dominio de la frecuencia utilizando FFT, DCT, MDCT, Wavelet, etc., cálculo de umbrales de enmascaramiento auditivo y cuantificación y codificación de las muestras en el dominio espectral en función de dichos umbrales.
En la mayoría de los codificadores actuales, el proceso de codificación y cuantificación se realiza de forma tal que el archivo resultante se puede decodificar a una determinada tasa de bits. Esto tiene sus ventajas en determinados ámbitos, por ejemplo si la decodificación se realiza leyendo el archivo desde un soporte óptico (p.ej. un CD, cuya velocidad de lectura es normalmente fija) o desde un enlace de red a una tasa de transmisión constante (por ejemplo, un enlace telefónico). Sin embargo, la codificación a tasa de bits constante pierde su sentido cuando el soporte es de acceso aleatorio y/o la velocidad de lectura es mucho mayor que la necesaria para decodificar el archivo en tiempo real (p.ej. un disco duro, o un CD o DVD leyendo una canción codificada en MP3) o si la transmisión es a través de una red de conmutación de paquetes (p.ej. Internet), siendo estos últimos casos precisamente los más habituales. La desventaja de la codificación a tasa constante es que dificulta que dicha codificación sea óptima para la señal a codificar. Por ejemplo, si se fija una tasa de 128 Kbps, estaríamos desperdiciando bits en las partes más simples (p.ej. silencios o sonidos sencillos de baja frecuencia) y al revés, en partes más complejas donde quizás fuesen necesarios más bits para una codificación transparente (esto es, con distorsión inaudible), se tendría que sacrificar la calidad. Existen técnicas para solventar en parte este problema, como bit reservoir o codificación mediante variable bitrate, pero complican inevitablemente tanto el codificador como el decodificador y además distan de ser óptimas.
Por otro lado, en el proceso de codificación de los estándares actuales más habituales se hace uso de factores de escala en los valores cuantificados, así como de codificación Huffman, lo cual dificulta la escalabilidad de la decodificación, esto es, que se pueda definir una jerarquía en los bits codificados de forma que transmitiendo sólo "los bits más importantes" podamos decodificar la mayor parte de la señal. Para evitar esto, se han desarrollado recientemente algunos sistemas de codificación escalable, pero normalmente no hacen un uso tan eficiente del modelo de enmascaramiento auditivo como los algoritmos no escalables. Además el problema de definir dicha jerarquía de bits más importantes no es nada trivial, puesto que cuando la degradación de la señal es inevitable, la cantidad de distorsión introducida es una medida fuertemente subjetiva.
Finalmente, a pesar de que las señales musicales tienen una evidente redundancia tanto temporal (ritmos y armonías que se repiten) como espectral (la propia estructura de las notas musicales es, básicamente, un tono fundamental y varios armónicos a frecuencias múltiplos de la de éste), aún no se ha elaborado con éxito algún codificador que explote estas características, con la posible excepción del MPEG AAC, que incluye cierta capacidad de predicción basándose en las muestras cercanas a aquella que se quiere codificar.
En la presente invención se propone una solución a estos problemas descritos: codificación óptima no dependiente de una tasa de lectura de bits, sino exclusivamente de las características de la señal a codificar y de un criterio de calidad; escalabilidad basada en el modelo auditivo y en una jerarquía atendiendo a modelos de percepción más o menos desagradable de la distorsión introducida; predicción en base tanto a muestras cercanas como a muestras más lejanas en el tiempo (por ejemplo, una muestra de un sonido musical puede parecerse a la anterior, pero también a la muestra "musicalmente equivalente" del compás anterior), incluso predicción en base a modelado físico y/o a muestras de instrumentos, de forma que se tendría que codificar solamente el residuo de predicción, más los parámetros de dicho modelo y/o las muestras.
Descripción detallada de la invención
El núcleo de la presente invención es el sistema de cuantificación de los valores espectrales, atendiendo al modelo de enmascaramiento auditivo. En concreto, los pasos a seguir para la codificación de una señal, por ejemplo musical, serían los siguientes:
\bullet
Descomposición de la señal en el tiempo, típicamente codificada con PCM, en partes de audio computacionalmente manejables, i.e. de unos pocos segundos. Esta descomposición se puede hacer atendiendo a criterios formales, eligiendo partes musicalmente homogéneas, puesto que ello favorece la capacidad de compresión del algoritmo. Esta descomposición o segmentación se puede hacer de forma automática o manual.
\bullet
División a su vez de cada parte de audio en segmentos de longitud adecuada para su transformación a un dominio adecuado para aplicar un modelo de enmascaramiento auditivo. Las transformadas más comunes son: FFT, DCT, MDCT, Wavelet, etc.
\bullet
La filosofía de este sistema es generar, a partir de los segmentos transformados, la imagen del espectrograma. Esta será una imagen en escala de grises de un tamaño variable, según la longitud de la parte de audio a que corresponda. Por ejemplo, una espectrograma generado a partir de la DCT de 256 puntos de los sucesivos segmentos de unos 8 segundos de audio tendría un tamaño de 256x1380 puntos. Para ello, lo más indicado es usar la DCT o la MDCT, separando los valores en módulo + signo. De este modo, obtenemos unos valores espectrales muy similares a los del módulo de la FFT, pero cuya fase (signos) es mucho más fácil de codificar que la fase de la FFT (cada signo, es decir, cada valor de fase, se puede codificar con un solo bit), de modo que cualquier compresor binario obtiene para dichos signos relaciones de compresión del orden de 1:20. Teniendo esto en cuenta, y dado que los modelos de enmascaramiento prescinden de la fase, el resto del algoritmo se centrará en comprimir el módulo de la transformada correspondiente. En este sentido cabe señalar que la transformada Wavelet también puede resultar ventajosa, siempre que se disponga de un modelo de enmascaramiento auditivo adecuado para la misma.
\bullet
Elaborar de modo similar una imagen del mismo tamaño donde a cada punto se asigne el valor correspondiente que toma el umbral de enmascaramiento. Para ello se puede utilizar alguno de los modelos psicoacústicos propuestos en el estándar MPEG, o cualquier otro. En caso de que se utilicen para el modelo transformadas de más de 256 puntos, habría que diezmar adecuadamente, si bien lo más razonable (y experimentalmente da buen resultado) seria utilizar la misma transformada (p.ej. MDCT con overlapping del 50%) con el mismo número de puntos (p.ej. 256) tanto para el cálculo del umbral de enmascaramiento como para el espectrograma de la propia señal.
\bullet
La MDCT tiene la ventaja sobre la DCT de que la compactación de coeficientes es algo mayor al realizarse un enventanado previo a la señal en el dominio del tiempo, además de favorecer la redundancia temporal entre las columnas de la imagen (interesante en la codificación predictiva) gracias al overlapping temporal. Sin embargo, tiene la desventaja de que en casos extremos, incluso con MDCT de sólo 256 puntos podría percibirse pre-eco (la MDCT de 256 puntos procede del solape de dos ventanas de 512 puntos, lo cual ya es un tamaño suficientemente grande para notar los efectos del pre-eco). Se puede utilizar cualquiera de las técnicas existentes (longitud de ventana variable, por ejemplo) para evitar esto, pero siempre respetando la estructura rectangular de la imagen, para lo cual habría que interpolar adecuada- mente.
\bullet
La disposición del la imagen de los sucesivos umbrales de enmascaramiento simultáneo para cada segmento permite aplicar modelos de enmascaramiento temporal de forma directa: por ejemplo, eligiendo una función de dispersión adecuada (típicamente una función escalón con pendiente decreciente a partir de éste y de la duración adecuada -200 ms corresponderían a 20 o 30 columnas del espectrograma, por ejemplo-) y convolucionándola directamente con cada fila de la imagen. El umbral de enmascaramiento resultante sería el máximo entre el original y el resultado de la convolución. Se puede incluso definir una función de dispersión distinta para cada frecuencia (fila).
\bullet
Una vez que se tienen la imagen del espectrograma de la señal y la del umbral de enmascaramiento, el siguiente paso es cuantificar los valores de la señal de forma que el ruido de cuantificación en cada punto quede por debajo del umbral correspondiente. Este es uno de los puntos clave del sistema. Típicamente, usaríamos 16 bits para cuantificar los valores espectrales (experimentalmente se observa que es suficiente, aunque en algún caso extremo podrían utilizarse más bits sin cambiar sustancialmente el algoritmo). Por tanto, tendríamos, en principio 65536 valores de cuantificación posibles. La clave del presente algoritmo es definir una serie de valores "privilegiados" y aprovechar el margen de ruido de cuantificación que permite el umbral de enmascaramiento para intentar que el valor final de la señal cuantificada en cada punto sea uno de estos valores privilegiados. Una característica deseable de estos valores es que se puedan codificar eficientemente en una etapa posterior. Otra, evidentemente, es que sean pocos. Y otra, que se adapten bien a la dinámica de la señal, es decir, que la cuantificación sea más fina en aquellos valores que se van a dar con mayor probabilidad. En el caso de las señales de audio, como es bien conocido, son mucho más probables los valores pequeños que los grandes. Por tanto, un buen conjunto de valores privilegiados podrían ser sencillamente las potencias de dos:
\circ
Su expresión en lenguaje binario es del tipo 0...010...0, es decir, sólo un 1 rodeado de ceros. Este tipo de palabras son ideales para cualquier compresor binario, puesto que el símbolo 0 es mucho más probable que el 1, y por tanto habrá muchos ceros seguidos, etc.
\circ
Los valores privilegiados serian sólo 17: 0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, y 65535 (el último no sería 65536 para evitar la necesidad de codificar con 17 bits).
\circ
Responden razonablemente bien a la dinámica de la señal: la distancia entre dos valores privilegiados es menor para valores pequeños y mayor para los grandes, que son menos probables.
\bullet
En cualquier caso, podría utilizarse cualquier otro conjunto de valores privilegiados, e incluso elegirlos de forma adaptativa, previo análisis de la señal. Para el caso de la selección de las potencias de dos como conjunto de valores privilegiados, un posible algoritmo de cuantificación seria el siguiente:
\circ
Normalizar y escalar la matriz (o imagen) del módulo de valores espectrales a 16 bits, de forma que el máximo corresponda a 65535 y el mínimo a 0.
\circ
Hacer la misma operación con la imagen de umbrales de enmascaramiento.
\circ
Definir sucesivamente un escalón de cuantificación, correspondiente a los valores privilegiados, del mayor al menor, empezando por el 65535 y acabando por el 2 (se podría utilizar el 1 también en caso de ser necesario).
\circ
Para cada escalón de cuantificación, dividir cada valor espectral de la señal por dicho escalón y separar el cociente y el resto. Si el resto es mayor que la mitad del escalón de cuantificación, se define un nuevo resto como: resto = escalón-resto, y se aumenta el cociente en una unidad (con esto último lo que hacemos es cuantificar al escalón más cercano, por encima o por debajo; por ejemplo, que si el valor a cuantificar es 60000, y el escalón 65535, el valor cuantificado con este algoritmo seria sea 65535 y no 0).
\circ
Ese resto va a ser el error de cuantificación en caso de que utilicemos dicho escalón para cuantificar. Por tanto, si para una muestra dada dicho resto es menor que el umbral de enmascaramiento, cuantificamos esa muestra al valor que resulte de multiplicar el cociente por el escalón actual. En caso contrario, probamos con un escalón más pequeño y así sucesivamente con todos los escalones, hasta que todas las muestras estén cuantificadas.
\bullet
De este modo lo que conseguimos es tratar de que las muestras tomen el valor de los escalones, o de múltiplos de los mismos, siempre que el umbral de enmascaramiento lo permita. Nótese que los múltiplos de las potencias de dos también tienen una estructura interesante, por ejemplo:
256 \hskip1,4cm (00100000000)
256 x 3 = 768 (01100000000)
256 x 5 = 1280 (10100000000)
256 x 6 = 1536 (11000000000)
256 x 7 = 1792 (11100000000)
En todas ellas encontramos que los 8 bits menos significativos son 0.
\bullet
Una variante de esto seria buscar valores tipo potencia de dos, menos uno, es decir, 7, 15, 31,... que poseen una estructura interesante también, puesto que sus respectivas palabras binarias son 111, 1111, 1111,...
\bullet
Una vez que tenemos la señal cuantificada de este modo, se puede observar experimentalmente (incluso para señales complejas de música Pop-Rock) que de los 65536 valores posibles, sólo se toman en torno a 100-200. Además, un alto porcentaje de los mismos corresponden a potencias de dos, y prácticamente todos son múltiplos de alguna potencia de dos, con lo cual, teniendo en cuenta la especial estructura de este tipo de palabras binarias, utilizando un compresor binario sin pérdidas (del tipo ZIP, ARJ, RAR, PPMD, o incluso el PNG, ya que, recordemos, el valor absoluto de las muestras que constituyen el espectrograma se puede ver como una imagen en escala de grises), tal como se puede comprobar experimentalmente, para una determinada calidad se obtienen relaciones de compresión superiores a las que se obtienen utilizando factores de escala y codificación Huffman en el ISO/MPEG-1 Layer III, e incluso cercanas a las que se obtienen con MPEG2-AAC. Parece lógico pensar que si se diseñase un compresor binario específico para este tipo de datos, la ganancia de compresión podría ser aún mayor.
\bullet
Tan interesante como la alta compresibilidad de los valores así cuantificados es la posibilidad de escalar dichos valores, esto es, seleccionar un subconjunto de los mismos de forma que la señal se pudiese decodificar, aún a expensas de introducir inevitablemente cierta cantidad de distorsión. Tal como tenemos cuantificados los valores, esto se podría hacer de forma directa sencillamente eliminando los bits menos significativos. El proceso de escalado así descrito podría realizarse de varias formas, entre las que destacan por su sencillez las dos siguientes:
\circ
O bien partiendo de las muestras comprimidas (con PNG, por ejemplo), descomprimiéndolas, eliminando los bits menos significativos, y volviendo a comprimir. En este caso el escalado no es directo, pero siempre será mucho más rápido que "recomprimir" la señal desde cero.
\circ
O bien separando previamente las muestras en planos de bits (p.ej. 16 planos) y comprimiendo cada uno por separado. Para este caso, el algoritmo PNG es especialmente eficiente (cada plano no deja de ser una imagen binaria). De este modo, podemos escoger los bits más significativos directamente, sin necesidad de comprimir ni descomprimir. Cabe destacar que, de nuevo, gracias a la estructura de las palabras binarias cuantificadas, buena parte de los planos son sencillamente matrices de ceros o con muy pocos unos, con lo cual, la compresión sigue siendo muy eficiente.
\bullet
Los sistemas de codificación escalables existentes suelen incorporar una característica denominada fine grain scalability. En la práctica, esto significa que se puede seleccionar una tasa de bits cualquiera entre, digamos, 32Kbps y 128 Kbps. En el sistema que se propone aquí no seria difícil conseguir dicha característica: bastaría ir transmitiendo los planos de bits más significativos hasta completar la tasa requerida. Sin embargo, seria quizás más interesante ajustarse, por ejemplo, al tamaño de la carga útil de un paquete 1P, siguiendo el protocolo TCP, para adaptarse dinámicamente al ancho de banda disponible de transmisión, puesto que el streaming por internet es quizá el escenario donde más útil sea la escalabilidad. Esto sería igualmente sencillo de conseguir. Bastaría hacer una selección de los planos más significativos, y, en caso de ser necesario, dividir las imágenes en dos o más partes para tratar de transmitir el máximo número de planos posible de cada segmento de tiempo. Por hacernos una idea, 6 segundos de audio ocuparían unos 60-70 KB, por lo que podrían viajar en un sólo paquete IP. En caso de ser necesario, podríamos transmitir sólo la mitad de los planos, en cuyo caso el receptor dispondría de aproximadamente 12 segundos de audio de calidad aceptable mientras espera a que llegue el siguiente paquete IP.
Como se puede ver, el algoritmo de compresión aquí descrito es perfectamente extensible al caso de compresión de imagen (es, de hecho, una compresión de imágenes en escala de grises) siempre y cuando se cuente con un modelo adecuado de enmascaramiento visual.
Para recuperar la DCT o MDCT en el decodificador, habrá que multiplicar los valores cuantificados por los signos que habíamos extraído anteriormente. Nótese que habrá muchos signos que ya no sean necesarios, puesto que muchos valores se cuantifican al nivel 0. Es decir, que para almacenar eficientemente los signos, basta una imagen binaria donde, por ejemplo, los ceros sean valores cuantificados con módulo cero o negativos y los unos sean valores positivos. Otra opción es comprimir los valores espectrales cuantificados y con su signo correspondiente.
Descomprimir la señal de audio original es extremadamente sencillo: basta descomprimir el archivo con los valores del módulo de la DCT o MDCT, multiplicarlos por su signo correspondiente, en su caso, y realizar la IDCT o IMDCT de la pieza de audio completa. Esto tiene la indudable ventaja de que el decodificador seria tan sencillo que podría incluirse en cada uno de los archivos comprimidos, de forma que estos pudiesen "autodescomprimirse". Por ejemplo, si optamos por la separación en planos de bits, sólo se necesitaría un pequeño programa que ejecutase varias veces (tantas como planos) la misma rutina de descompresión de una imagen binaria y después hiciese la IDCT o IMDCT de los valores resultantes.
Se puede tratar de comprimir aún más las señales haciendo uso del algoritmo descrito hasta ahora, utilizando diferentes técnicas, las cuales se describen brevemente a continuación:
Codificación mediante diccionario
Una forma muy sencilla de aumentar la tasa de compresión de los valores cuantificados del modo descrito es averiguar la probabilidad de ocurrencia de cada uno de dichos valores, ordenarlos de mayor a menor probabilidad y asignar a cada uno un código adecuado, por ejemplo, utilizando codificación Huffman, o sencillamente los números en binario natural en orden ascendente. De este modo, si tenemos, digamos 120 valores distintos que cuantificar, para lo cual estamos usando 16 bits, podríamos utilizar tan solo 7 bits, y además los valores más probables tendrían casi todos sus bits puestos a cero. Se puede demostrar experimentalmente que, por ejemplo, el RAR comprime más de este modo que si utilizamos directamente los valores cuantificados con 16 bits. La desventaja es que perderíamos la capacidad de escalado, a no ser que descomprimiésemos y volviésemos a comprimir (lo cual, en cualquier caso, sería muy rápido, puesto que existen algoritmos, como el PPMD capaces de comprimir y descomprimir muy eficientemente a una velocidad de varios MB/s; es decir, una canción de unos 4 minutos se descomprimiría, reescalaría y recomprimiría en 1 segundo aproximadamente). De nuevo, podríamos comprimir los valores directamente con su signo correspondiente, puesto que ello puede ser más eficiente que comprimir los signos por separado, siempre y cuando el valor 0 corresponda al0 en el diccionario también (lo cual ocurre en la práctica siempre, puesto que el 0 es el valor más probable en casi cualquier espectrograma). Asimismo, se podría utilizar la técnica de separación en planos de bits, con la ventaja de que en lugar de 16 planos en este caso tendríamos sólo 7 u 8.
Codificación predictiva
Teniendo en cuenta que las señales musicales suelen tener una alta redundancia tanto temporal como frecuencial, como ya se ha dicho, cabe pensar que utilizando técnicas de predicción se podría conseguir comprimir la señal aún más. Hay múltiples formas de aplicar codificación predictiva: a) en el dominio del tiempo, antes de obtener las imágenes, b) en el dominio de la frecuencia, antes de cuantificar, c) en el dominio de la frecuencia, cuantificando el residuo y reajustando la predicción, d) en el dominio de la frecuencia a partir de los valores ya cuantificados, e) utilizar predicción en cada plano de bits.
a)
Predicción en el tiempo. La idea seria utilizar algún método de predicción lineal (por ejemplo, estimar cada muestra basándose en una combinación lineal de muestras anteriores) de modo que sólo hubiese que codificar perceptualmente el residuo de predicción. Sin embargo, esto tiene un grave inconveniente: para recuperar la señal original en el decodificador se necesitarían los valores originales de la señal en el tiempo (que sirven para elaborar la predicción para las muestras siguientes), pero no dispondríamos de ellos exactamente, ya que hemos codificado el residuo con pérdidas, y por tanto, la combinación lineal de valores anteriores necesaria para regenerar la predicción de la muestra actual no seria la misma que se utilizó para predecir en el codificador, y se irían arrastrando los errores hacia delante. En cualquier caso, suponiendo que se pudiera elaborar en destino la predicción sin ningún tipo de error, o que ese error se pudiese mantener dentro de unos límites tolerables, todo lo que tendríamos que hacer seria codificar el residuo con el mismo umbral de enmascaramiento de la propia señal (nótese que, de poderse recuperar la predicción sin error, el único error seria el correspondiente al de cuantificación del residuo), lo cual seria muy ventajoso, porque la energía del residuo seria mucho menor, los valores espectrales en general más pequeños, y por tanto, el margen de libertad que permite el umbral de enmascaramiento seria proporcionalmente mayor, y la codificación más eficiente.
Es por ello que sería interesante utilizar, en vez de LPC, alguna otra forma de predecir la señal que no dependa de la recuperación exitosa de muestras anteriores, sino que se pueda generar de forma independiente. Por ejemplo, se podría elaborar (automática o manualmente) una predicción paramétrica de cada instrumento, por ejemplo a partir de muestras de los mismos (bombo, caja, charles, etc. en una batería) o mediante modelado físico (por ejemplo, averiguar los modos de vibración de un determinado instrumento resolviendo la correspondiente ecuación diferencial y codificar solamente los parámetros necesarios para modelar su sonido a partir de dichos modos). En el caso extremo, se puede de elaborar un modelo de la señal musical a codificar utilizando un lenguaje paramétrico estructurado como MIDI o SAOL (ver estándar MPEG-4) tratando de imitar en lo posible la señal natural original. Una vez conseguido dicho modelo, se resta a la señal original, y se codifica la diferencia (residuo) utilizando el umbral de enmascaramiento de la señal original, siendo necesario codificar también los parámetros del modelo. Esto tiene la ventaja añadida de que el modelo suena bastante "natural" por si mismo, y el residuo se puede codificar con muy pocos bits sin que haya una distorsión notable.
b)
Predicción en el dominio de la frecuencia, antes de cuantificar. Si observamos la imagen del espectrograma de una señal musical se puede ver claramente una repetición espacial de patrones temporales que coinciden con las partes musicales que son parecidas, por ejemplo, compases sucesivos. Esto hace pensar que su codificación sencillamente como imágenes o datos sin ningún tipo de estructura es de algún modo ineficiente. En cualquier caso, la predicción lineal tendría un funcionamiento equivalente y los mismos problemas que la predicción en el dominio del tiempo, pero en este caso se haría la predicción en cada fila y/o columna de la imagen del espectrograma.
c)
Predicción en el dominio de la frecuencia cuantificando el residuo y reajustando la predicción. En este caso sí se puede solventar el problema de no poder recuperar exactamente las muestras de la predicción lineal a partir de las muestras anteriores, puesto que ahora sí que disponemos de las mismas cuantificadas definitivamente a partir del modelo perceptual. Se propone para ello el siguiente procedimiento:
\bullet
Utilizar algún algoritmo para identificar las similitudes de la señal a codificar consigo misma para cada frecuencia (para cada fila del espectrograma), por ejemplo, la autocorrelación, la información mutua, etc., de modo que se pueda establecer una relación de distancias medias entre la muestra actual y aquellas que son más parecidas a ella. En la práctica las más parecidas suelen ser las más cercanas (i.e. las N anteriores). Sin embargo, en determinados pasajes musicales, como golpes de batería, por ejemplo, se da el caso de que las muestras más parecidas, además de las anteriores, suelen ser las del compás anterior (alejadas, digamos, una distancia de cientos de muestras), puesto que éstos se van repitiendo periódicamente en gran medida. Utilizando los algoritmos tradicionales de predicción lineal, nunca llegaríamos a explotar del todo esta característica inherente de la música (esta macro-periodicidad a nivel de notas o compases) puesto que el cálculo de cientos o miles de coeficientes para un filtro de predicción es computacionalmente prohibitivo, a no ser que sepamos de antemano de alguna manera a qué distancia está, digamos, el compás anterior y sólo calculemos coeficientes para muestras a esa distancia de la actual, y no para las cientos de muestras intermedias.
\bullet
Una vez identificadas la distancias medias entre la muestra actual y aquellas anteriores más parecidas (que serán la mismas para todas las muestras, una vez establecidas: por ejemplo, si en una pieza musical un compás dura 100 columnas del espectrograma, la muestra n se estimaría, por ejemplo, a partir de una combinación lineal de las muestras n-1, n-2, n-3, n-4, n-100, n-101, 1-102, n-200, n-201, etc.) se procedería a elaborar la predicción. Esto se haría típicamente a través de la realización de un filtro cuyos coeficientes serian los pesos de la combinación lineal. Estos pesos se establecerían siguiendo algún criterio adecuado, por ejemplo, minimizar la energía del error de predicción (residuo), o podrían ser, por ejemplo, los valores de la autocorrelación, normalizados convenientemente, correspondientes a cada punto elegido. Sin embargo en este caso no se puede proceder de este modo (utilizando el filtro), puesto que al cuantificar cada columna del espectrograma estamos modificando a su vez la predicción de los valores siguientes. Por ello habría que proceder paso a paso, elaborando la predicción no a partir de los valores del espectrograma original, sino a través de la suma de la predicción y el residuo cuantificado de las muestras anteriores que correspondan.
d)
Predicción en el dominio de la frecuencia a partir de los valores ya cuantificados. Seria similar a la del apartado b) pero con la ventaja de que el residuo de predicción no puede tomar cualquier valor, sino solo aquellos que sean diferencia entre dos que sean posibles valores de cuantificación. Este tipo de predicción tiene más sentido si utilizamos previamente lo que he llamado Codificación mediante diccionario puesto que los distintos valores estarían distribuidos de forma lineal y las diferencias entre ellos serian constantes. Veamos esto con un ejemplo: si el valor 32768 corresponde en el diccionario al 10, por ejemplo, el 16384 al 9 y el 8192 al 8, en el caso de que el valor de la predicción para los tres casos fuese 16384, los errores de predicción serian, si codificamos directamente: 16384, 0 y -8192, y si utilizamos el diccionario: 1,0 y -1. La ganancia en la codificación se produciría siempre que al codificar el residuo de predicción en lugar de las muestras cuantificadas originales el archivo final ocupase menos bits.
e)
Predicción en cada plano de bits. Si observamos las imágenes binarias que resultan de separar en planos de bits la imagen del espectrograma cuantificado, se puede ver también claramente una repetición espacial de patrones temporales que coinciden con las partes musicales que son parecidas, por ejemplo, compases sucesivos. De nuevo, esto hace pensar que la codificación de estas imágenes sencillamente como imágenes binarias sin ningún tipo de estructura es de algún modo ineficiente. Hacer una predicción en este caso cuenta además con la ventaja de que sólo se puede acertar o fallar en la predicción, es decir, el residuo de predicción seria, por ejemplo, una imagen negra (aciertos) con puntos blancos donde la predicción hubiese fallado. De este modo, con una sencilla operación "xor" entre la predicción y la imagen de fallos podríamos obtener la imagen original. Para obtener una ganancia de compresión, a priori, simplemente se necesitaría acertar en más puntos que si la predicción fuese simplemente una imagen de ceros o de unos (i.e. no predecir). La predicción se podría elaborar de modo semejante a lo sugerido en los apartados a), b) o c), fijando un umbral a partir del cual la predicción se considera 1 ó 0.
Nótese que algunas de estas técnicas no son excluyentes, y que se pueden aplicar en cascada. Por ejemplo, se puede hacer una predicción en el tiempo, cuantificar el residuo y volver a hacer codificación predictiva sobre los valores cuantificados o sobre los planos de bits, puesto que el residuo suele estar aún bastante correlado con la señal, y exhibe parecidos rasgos de redundancia frecuencial y temporal.
Ordenación del espectro y modelado de ruido
Si observamos la imagen del espectrograma de una señal muy armónica (por ejemplo una nota de violín sostenida durante varios segundos) se aprecia que tiene una serie de máximos periódicos en frecuencia y que se sostienen a su vez en el tiempo. Es decir, que en el espectrograma aparecen una serie de bandas blancas horizontales más o menos equiespaciadas, correspondientes a los tonos armónicos que constituyen la mayor parte de la energía del sonido, mas una serie de valores intermedios que podrían considerarse "inarmónicos", es decir, ruido, de alguna manera. Este fenómeno se produce también en el espectrograma de la voz humana, siendo bien conocido y explotado en los codificadores predictivos de voz.
Se puede tratar de mejorar la compresión de las muestras cuantificadas del modo siguiente:
\bullet
Se hace una estimación del espectro a lo largo de varios segundos. Por ejemplo, haciendo simplemente la media aritmética de las filas, obteniendo un vector columna de la misma longitud que las columnas del espectrograma.
\bullet
Se añade a la matriz del espectrograma un vector columna auxiliar que sea monótonamente decreciente y del mismo tamaño que las columnas del mismo.
\bullet
Se utiliza el vector de estimación para ordenar todas las columnas del espectrograma en función de éste. Nótese que el vector auxiliar quedará a su vez desordenado, de forma que si ordenamos ahora el espectrograma en función de dicho vector auxiliar, recuperamos el espectrograma original. Por tanto ese vector también habrá que codificarlo, para que el decodificador lo pueda utilizar.
\bullet
Si el espectrograma tiene suficiente correlación temporal, tendremos que en la nueva imagen ordenada, las bandas blancas correspondientes a los armónicos se sitúan juntas en la parte superior del espectrograma, y el resto es una sucesión mas o menos ruidosa de valores espectrales. El vector de estimación espectral ordenado, típicamente tiene una estructura suavemente decreciente a partir de determinada frecuencia. Es decir, lo que sería un ruido blanco ligeramente coloreado. Si se puede asumir que esta situación es mas o menos estacionaria (lo cual no ocurre si, por ejemplo, hay instrumentos de percusión) se podría codificar solamente la parte superior del espectrograma y modelar como ruido la parte inferior, codificando los parámetros de dicho modelo en lugar de los valores originales.
\bullet
En el caso de que sí haya instrumentos de percusión en la señal, se puede utilizar otro método: una vez ordenado el espectrograma como se ha descrito, seleccionar, una de cada N columnas y repetirla N veces a partir de cierta frecuencia (se buscará aquella frecuencia a partir de la cual los valores comiencen a ser claramente más pequeños). De este modo sólo tendremos que codificar una de cada N columnas (a partir de determinada frecuencia) consiguiendo relaciones de compresión de más o menos 1:N adicional, a partir de dicha frecuencia. De este modo, aunque haya fuertes ataques (golpes de caja, por ejemplo) estos se mantienen unos milisegundos (típicamente N sería 2, 3 ó 4 para una MDCT de 256 puntos), y no se percibe excesivamente la repetición, máxime si tenemos en cuenta que podemos guardar los signos originales, con lo cual, realmente sólo estaríamos repitiendo la envolvente del espectro. En vez de simplemente repetir, también se podrían interpolar los valores intermedios.
\bullet
Es bien conocido también, y se utiliza en la codificación joint stereo que el oído es poco sensible a cambios de fase a altas frecuencias, con lo que también podría prescindirse de los signos a partir de determinada frecuencia, pudiéndose sustituir por otros generados aleatoriamente en el decodificador.
\bullet
Finalmente, si la señal temporal tiene un carácter marcadamente percusivo, en el espectrograma se apreciarán bandas blancas verticales más o menos equiespaciadas correspondientes a los golpes rítmicos en el tiempo. Se puede hacer en este caso una estimación a lo largo del tiempo y ordenar el espectrograma en sentido horizontal, de forma que los valores más grandes se acumulen a la izquierda, y aplicar las técnicas expuestas para aumentar aún más la compresión.
Sustitución de valores con módulo nulo por otros más favorables a la codificación
Si se opta por codificar los signos de forma que se expresen tanto los valores positivos como los negativos y los nulos (para lo cual necesitaríamos 2 bits), gran parte de la información del módulo de la DCT o MDCT seria redundante: en concreto la localización de los valores nulos. Aprovechando esto se puede hacer que dichos puntos tomen valores más favorables. Por ejemplo, si toman el valor del punto situado a su izquierda se favorece que haya varios valores iguales seguidos. Si se hace esto varias veces tanto en sentido vertical como en horizontal se tenderá a sustituir zonas con muchos "altibajos" por zonas más densas, lo cual puede ser beneficioso en una codificación runlengh por ejemplo, y también para mejorar la predicción lineal. En el decodificador, los valores que se han cambiado se multiplicarán por cero y se recuperará la imagen del espectrograma original.

Claims (9)

1. Un método para codificar/decodificar señales de audio (o imágenes en su caso) haciendo uso de un modelo para la eliminación de información perceptualmente irrelevante, caracterizado por: dividir y enventanar la señal en segmentos más pequeños, adecuados para utilizar alguna transformación matemática que haga corresponder cada ventana temporal con una serie de coeficientes espectrales en un dominio más adecuado para la aplicación de un modelo de irrelevancia perceptual. Ordenar los posibles valores de cuantificación estableciendo una jerarquía, de modo que los coeficientes espectrales se cuantifican individualmente tratando de que su valor cuantificado sea aquel que ocupe el lugar más alto posible en la jerarquía, siempre que el umbral de enmascaramiento calculado para ese coeficiente lo permita, esto es, que el error de cuantificación permanezca por debajo de dicho umbral; se establecen de este modo una serie de valores privilegiados de cuantificación, que son los que se toman con mayor probabilidad, y que estadísticamente corresponderán a valores que ocupan los lugares más altos de la jerarquía. Realizar una codificación de entropía que explote el hecho de que los valores privilegiados se tomarán con mayor probabilidad que el resto, para codificar dichos valores con menos bits. Aprovechar asimismo la estructura de las palabras binarias mediante las que se expresan los valores cuantificados para separarlas en planos de bits y dotar al sistema de escalabilidad en la decodificación. Aplicar de forma opcional modelos de predicción temporal sobre los coeficientes espectrales para aumentar así la capacidad de compresión del sistema.
2. El método de la reivindicación 1 cuando se utiliza una jerarquía de valores de cuantificación establecida mediante sucesivas particiones del rango dinámico de los valores espectrales, escogiendo cada vez un escalón de cuantificación más pequeño, y tratando, siempre que el umbral de enmascaramiento lo permita, de que los coeficientes espectrales tomen al ser cuantificados un valor de cuantificación que utilice el escalón más grande posible. De este modo los valores que sean múltiplos de los escalones más grandes serán privilegiados con respecto a los que son múltiplos de los escalones más pequeños.
3. Una realización particular del método de la reivindicación 2, en la que la cuantificación de los coeficientes se realiza mediante el siguiente algoritmo:
a)
Normalizar el espectro, por ejemplo utilizando el rango dinámico que permiten 16 bits de cuantificación, de forma que el máximo corresponda a 65535 y el mínimo a 0.
b)
Hacer la misma operación con los umbrales de enmascaramiento correspondientes a cada valor espectral.
c)
Definir como escalón inicial de cuantificación el total del rango dinámico, en este caso 65535.
d)
Cada coeficiente espectral se dividirá por dicho escalón y separando el cociente y el resto. Si el resto es mayor que la mitad del escalón de cuantificación, se define un nuevo resto como: resto = escalón-resto, y se aumenta el cociente en una unidad (con esto último lo que hacemos es cuantificar al escalón más cercano, por encima o por debajo).
e)
Ese resto será el error de cuantificación en caso de que utilicemos dicho escalón para cuantificar. Por tanto, si dicho resto es menor que el umbral de enmascaramiento, cuantificamos el coeficiente al valor que resulte de multiplicar el cociente por el escalón actual. En caso contrario, se divide el escalón por 2 (1os sucesivos escalones serían 32768, 16384, 8192,...,2,1) y se vuelve al paso d) hasta que todos los coeficientes estén cuantificados.
4. El método de la reivindicación 1 cuando los valores cuantificados según alguno de los métodos de las reivindicaciones 1, 2 ó 3, y codificados en lenguaje binario natural, se separen en planos de bits y estos planos se compriman por separado (utilizando, por ejemplo un compresor de matrices o imágenes binarias), y se ordenen de modo que se pueda seleccionar solamente un subconjunto del total de planos de bits (los planos correspondientes a los bits más significativos) para su decodificación, dotando al sistema de escalabilidad.
5. El método de la reivindicación 4 cuando se utiliza la escalabilidad para conseguir una tasa de bits de transmisión o decodificación constante, fijando dicha tasa y seleccionado por orden los planos de bits más significativos, hasta completar el número de bits disponible para cada unidad de tiempo.
6. El método de la reivindicación 1 cuando, como paso previo a la transformación de las muestras del dominio del tiempo al dominio espectral, se realice una predicción mediante un modelo de la señal musical a codificar, utilizando un sistema o lenguaje paramétrico, como por ejemplo, MIDI o SAOL (ver estándar MPEG-4), etc. haciendo uso de modelado físico de instrumentos o voz humana, o utilizando muestras de los mismos, tratando de imitar en lo posible la señal natural original. Dicha predicción puede generarse de forma automática o manual. En cualquier caso, la señal de entrada al codificador descrito en la reivindicación 1 es el residuo de predicción, esto es, la diferencia entre la señal original y la predicha. El método utilizará, sin embargo, el umbral de enmascaramiento calculado a partir de la señal original, puesto que la predicción se puede recuperar sin error alguno en el decodificador, y el único error de cuantificación existente será el que resulte de la codificación con pérdidas del residuo. Los parámetros (o muestras de sonido en su caso) necesarios para la reelaboración de la predicción en el decodificador se comprimen y envían al decodificador como información colateral.
7. El método de la reivindicación 1 cuando se hace uso de un método de predicción de las filas del espectrograma formado por los coeficientes espectrales, ya sea éste generado mediante FFT, DCT, MDCT, Wavelet o cualquier otra transformada, consistente en: para los coeficientes de cada fila del espectrograma, seleccionar un conjunto de coeficientes anteriores en el tiempo (de la misma fila o no) y establecer los pesos de la combinación lineal que mejor aproxima dicho coeficiente a partir de los anteriores siguiendo algún criterio, como por ejemplo minimizar el error de predicción (residuo) a lo largo de las filas; seguir un proceso iterativo en el que se recorren los coeficientes de cada fila de izquierda a derecha en el espectrograma realizando dicha predicción para cada uno de los coeficientes, obteniendo el residuo, y cuantificando dicho residuo de acuerdo con el umbral de enmascaramiento original (por ejemplo, utilizando el método de la reivindicación 3) en ese punto; para la predicción de los valores siguientes se utilizan no los valores originales anteriores sino el resultado de sumar la predicción más el residuo cuantificado en cada punto.
8. El método de la reivindicación 1 cuando se hace uso de un método de ordenación de las filas del espectrograma de acuerdo a su importancia perceptual o contenido en energía de la señal, en el cual se utilice una estimación de las columnas del espectrograma -p.ej. el vector columna de la media de las filas- para ordenar las filas del mismo en función de dicha estimación, buscando que los valores más importantes (que corresponderán típicamente a tonos sostenidos en el tiempo) se sitúen, por ejemplo, en la parte superior del espectrograma, y considerando como ruido la parte inferior.
9. El método de ordenación de la reivindicación 8 cuando se utilice para modelar la parte inferior del espectrograma ordenado como ruido con unas determinadas características, o, en su caso, codificar solamente algunas columnas del espectrograma ordenado a partir de una fila dada, de modo que el decodificador pueda obtener el espectrograma completo replicando dichas columnas varias veces o interpolando los valores de las columnas que falten.
ES200503001A 2005-12-02 2005-12-02 Metodo escalable de compresion de audio e imagenes. Expired - Fee Related ES2296489B1 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
ES200503001A ES2296489B1 (es) 2005-12-02 2005-12-02 Metodo escalable de compresion de audio e imagenes.
PCT/ES2006/070190 WO2007077280A1 (es) 2005-12-02 2006-12-03 Sistema y método para cuantificación perceptual rápida y codificación escalable de señales de audio

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES200503001A ES2296489B1 (es) 2005-12-02 2005-12-02 Metodo escalable de compresion de audio e imagenes.

Publications (2)

Publication Number Publication Date
ES2296489A1 true ES2296489A1 (es) 2008-04-16
ES2296489B1 ES2296489B1 (es) 2009-04-01

Family

ID=38227941

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200503001A Expired - Fee Related ES2296489B1 (es) 2005-12-02 2005-12-02 Metodo escalable de compresion de audio e imagenes.

Country Status (2)

Country Link
ES (1) ES2296489B1 (es)
WO (1) WO2007077280A1 (es)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020111801A1 (en) * 1999-05-27 2002-08-15 America Online, Inc., A Delaware Corporation Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US20050231396A1 (en) * 2002-05-10 2005-10-20 Scala Technology Limited Audio compression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5040217A (en) * 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020111801A1 (en) * 1999-05-27 2002-08-15 America Online, Inc., A Delaware Corporation Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US20050231396A1 (en) * 2002-05-10 2005-10-20 Scala Technology Limited Audio compression

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BOSI M et al. ISO/IEC MPEG-2 advanced audio coding. Journal of the Audio Engineering Society. Oct. 1997, Vol 45, páginas 789-812. ISSN 0004-7554. Páginas 789-803. *
BOSI M et al. ISO/IEC MPEG-2 advanced audio coding. Journal of the Audio Engineering Society. Oct. 1997, Vol 45, páginas 789-812. ISSN 0004-7554. Páginas 789-803. \\ A 6 *
BRANDENBURG K. OCF-A new coding algorithm for high quality sound signals. Proceedings: ICASSP 87. 1987 International Conference on Acoustics, Speech, and Signal Processing (Cat. No. 87CH2396-0) 1987, páginas 141-144 vol. 1. Todo el documento. *
BRANDENBURG K. OCF-A new coding algorithm for high quality sound signals. Proceedings: ICASSP 87. 1987 International Conference on Acoustics, Speech, and Signal Processing (Cat. No. 87CH2396-0) 1987, páginas 141-144 vol. 1. Todo el documento. \\ A 3-5 *

Also Published As

Publication number Publication date
ES2296489B1 (es) 2009-04-01
WO2007077280A1 (es) 2007-07-12

Similar Documents

Publication Publication Date Title
RU2326450C2 (ru) Способ и устройство для векторного квантования с надежным предсказанием параметров линейного предсказания в кодировании речи с переменной битовой скоростью
CN101199121B (zh) 编码输入信号方法和编码器/译码器
EP2255358B1 (en) Scalable speech and audio encoding using combinatorial encoding of mdct spectrum
US8010348B2 (en) Adaptive encoding and decoding with forward linear prediction
JP4781153B2 (ja) オーディオデータ符号化及び復号化装置、並びにオーディオデータ符号化及び復号化方法
US7660720B2 (en) Lossless audio coding/decoding method and apparatus
CA2704812C (en) An encoder for encoding an audio signal
CN101335004B (zh) 一种多级量化的方法及装置
JP5596800B2 (ja) 符号化方法、周期性特徴量決定方法、周期性特徴量決定装置、プログラム
CA2704807A1 (en) Audio coding apparatus and method thereof
JP3824607B2 (ja) 時間−周波数相関性を利用した改善されたオーディオ符号化及び/または復号化方法とその装置
CN101821800A (zh) 矢量量化装置、矢量反量化装置和其方法
JPWO2007114290A1 (ja) ベクトル量子化装置、ベクトル逆量子化装置、ベクトル量子化方法及びベクトル逆量子化方法
US20060277040A1 (en) Apparatus and method for coding and decoding residual signal
WO2011045926A1 (ja) 符号化装置、復号装置およびこれらの方法
US20100292986A1 (en) encoder
ES2296489B1 (es) Metodo escalable de compresion de audio e imagenes.
US20100280830A1 (en) Decoder
JP2002091497A (ja) オーディオ信号符号化方法、復号化方法及びそれらの方法を実行するプログラム記憶媒体
AU2011205144B2 (en) Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
Moreau Tools for Signal Compression: Applications to Speech and Audio Coding
Liu The perceptual impact of different quantization schemes in G. 719
AU2011221401B2 (en) Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
Adistambha et al. Embedded lossless audio coding using linear prediction and cascade coding
Kumbhar et al. Sound data compression using different methods

Legal Events

Date Code Title Description
EC2A Search report published

Date of ref document: 20080416

Kind code of ref document: A1

FG2A Definitive protection

Ref document number: 2296489B1

Country of ref document: ES

FD2A Announcement of lapse in spain

Effective date: 20180809