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

Metodo escalable de compresion de audio e imagenes. Download PDF

Info

Publication number
ES2296489B1
ES2296489B1 ES200503001A ES200503001A ES2296489B1 ES 2296489 B1 ES2296489 B1 ES 2296489B1 ES 200503001 A ES200503001 A ES 200503001A ES 200503001 A ES200503001 A ES 200503001A ES 2296489 B1 ES2296489 B1 ES 2296489B1
Authority
ES
Spain
Prior art keywords
values
quantification
prediction
spectral
quantified
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.)
Expired - Fee Related
Application number
ES200503001A
Other languages
English (en)
Other versions
ES2296489A1 (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
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

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 señales de audio 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 perceptual de audio, sobradamente conocidos: muestreo y digitalización de segmentos cortos de audio en el dominio del tiempo; transformación de éstos al dominio de la frecuencia utilizando FFT, DCT, MDCT, transformada 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 (ver, por ejemplo, [OCF] o [MPEG-2]).
En los codificadores más conocidos, el proceso de cuantificación y codificació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 cuya velocidad de lectura es fija, o desde un enlace de red a una tasa de transmisión constante. Sin embargo, la codificación a tasa de bits constante no es necesaria 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 desde los que se lee una canción codificada en MP3) o si la transmisión es a través de una red de conmutación de paquetes no orientada a conexión (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 en general los codificadores de audio más extendidos (MP3, AAC) se han diseñado pensando en un funcionamiento a tasa de bits constante más que a calidad constante.
Por otro lado, en los estándares de codificación de audio actuales más importantes no se contempla 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. Se han desarrollado recientemente algunos sistemas de codificación escalable [BSAC] [SCALA], pero en general no consiguen tasas de compresión tan elevadas como los algoritmos no escalables.
En determinadas aplicaciones, otra característica deseable de un codificador de audio es que tenga un retardo de codificación lo más bajo posible. Por ejemplo para sistemas de comunicación bidireccional, redes de distribución radiofónica, altavoces inalámbricos, etc. El retardo de un codificador perceptual de audio vendrá limitado en última instancia por el tamaño de la ventana de análisis utilizada para la transformación de la señal de audio al dominio de la frecuencia y la aplicación del correspondiente modelo de enmascaramiento auditivo. Cuanto menor sea dicha ventana, más cortos podrán ser los segmentos de audio que entran al codificador y, por tanto, más corto el tiempo mínimo necesario para que dichos segmentos lleguen comprimidos al decodificador y éste pueda decodificarlos.
Finalmente, teniendo en cuenta que las señales de audio musical y las de voz (precisamente las que más frecuentemente son objeto de compresión) presentan una notable redundancia tanto temporal como espectral, cabe pensar que la aplicación de métodos de predicción, ya sea en el dominio del tiempo o de la frecuencia, puede mejorar la tasa de compresión de las mismas.
En la presente invención se propone un método que pretende reunir todas las características deseables de un codificador de audio expuestas: 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 una jerarquía de bits más o menos importantes perceptualemente; utilización de ventanas de análisis cortas para conseguir retardo mínimo sin sacrificar la calidad; codificación predictiva explotando la periodicidad de las señales de audio, particularmente de las señales de música.
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 a un 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:
- Dividir la señal a codificar en segmentos de longitud fija, 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.
- Generar, a partir del módulo de los valores espcectrales de los segmentos transformados, la imagen del espectrograma. Para señales de audio, lo más indicado es utilizar la MDCT, separando los valores en módulo + signo. De este modo, obtenemos unos valores espectrales similares a los del módulo de la FFT, pero cuya fase (signos) será, en general, más fácil de codificar que la fase de la FFT. Teniendo esto en cuenta, y dado que los modelos de enmascaramiento prescinden de la fase, el resto del algoritmo se centrará en cuantificar y codificar el módulo de la transformada correspondiente.
- 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.
- Una vez que se tienen la imagen del espectrograma de la señal y la del umbral de enmascaramiento, el siguiente paso es cuantificar el módulo de los valores espectrales 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. Si utilizamos N bits para cuantificar los valores espectrales tendremos en principio 2^{N} 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ía ser sencillamente las potencias de dos:
\bullet
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 es ideal para cualquier compresor binario, puesto que el símbolo 0 es mucho más probable que el 1, lo que se traduce en una potencial reducción de entropía.
\bullet
Los valores privilegiados serían pocos: en concreto N+1.
\bullet
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.
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 sería el siguiente:
\bullet
Normalizar y escalar el módulo de los valores espectrales a N bits, de forma que el máximo corresponda a 2^{N-1} y el mínimo a 0.
\bullet
Hacer la misma operación con los umbrales de enmascaramiento correspondientes a cada coeficiente espectral.
\bullet
Definir sucesivamente un escalón de cuantificación cada vez más pequeño, empezando por 2^{N-1} y acabando en 1. El conjunto elegido de escalones de cuantificación determinará los valores privilegiados.
\bullet
Para cada escalón de cuantificación, dividir cada coeficiente 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). Ese resto va a ser el error de cuantificación en caso de que utilicemos dicho escalón para cuantificar. Por tanto, si para un coeficiente dado dicho resto es menor que el umbral de enmascaramiento, cuantificamos ese coeficiente 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 todos los coeficientes estén cuantificados.
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 binaria interesante, por ejemplo:
256
(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.
Una vez tenemos la señal cuantificada de este modo, se puede observar experimentalmente, por ejemplo para N=16, que de los 2^{N} = 65536 valores de cuantificación posibles, sólo se toman en tomo a 100-200. Además, un alto porcentaje de los mismos corresponde 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, se pueden obtener relaciones de compresión muy altas.
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 pueda decodificar aún a expensas de introducir inevitablemente cierta cantidad de distorsión. Tal como tenemos cuantificados los valores, esto se puede hacer de forma directa sencillamente eliminando los bits menos significativos. El proceso de escalado así descrito puede realizarse de varias formas, entre las que destacan por su sencillez las dos siguientes:
\bullet
O bien partiendo de las muestras comprimidas con un compresor binario sin pérdidas, 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.
\bullet
O bien separando previamente las muestras en planos de bits (p. ej. 16 planos) y comprimiendo cada uno por separado. 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 de bits son sencillamente ceros o contienen muy pocos unos, con lo cual, la compresión sigue siendo muy eficiente.
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, por ejemplo, 32Kbps y 160 Kbps en pasos de 1 Kbps. En el sistema propuesto no sería difícil conseguir dicha característica: bastaría ir transmitiendo los planos de bits más significativos hasta completar la tasa requerida en cada unidad de tiempo.
Nótese que a diferencia de otros métodos de cuantificación perceptual a nivel de sub-banda (o banda crítica) [MPEG-2][SCALA][OCF], en el método propuesto en la presente invención cada coeficiente espectral se cuantifica individualmente, esto es, su escalón de cuantificación podrá ser diferente al del resto de coeficientes espectrales de la banda crítica a la que dicho coeficiente pertenezca. Mediante una definición adecuada de los valores privilegiados se consigue que su compresión sin pérdidas sea especialmente eficiente sin que sea necesario agrupar los coeficientes en bandas con el mismo escalón de cuantificación (o "factor de escala", según la terminología utilizada por el MPEG), de forma que no es necesario transmitir dichos factores de escala como información colateral al decodificador, sino solamente los propios valores espectrales cuantificados y codificados en lenguaje binario natural y, posteriormente, comprimidos sin pérdidas. Cuantificar cada valor espectral individualmente hace posible también la aplicación de los modelos de enmascaramiento en frecuencia con la mayor resolución posible que permita el número de puntos de la ventana de análisis, pudiéndose establecer un umbral de enmascaramiento particular para cada coeficiente y no solo a nivel de banda crítica. Todo esto permite, en última instancia, que la codificación obtenida utilizando el método propuesto en la presente invención sea eficiente incluso con tamaños de ventana de análisis muy pequeños (64 o 128 muestras), lo que permite la elaboración de codificadores de audio de muy bajo retardo (aproximadamente 1 o 2 milisegundos manteniendo una calidad comparable a la del MP3).
Cabe destacar que el algoritmo de compresión descrito en la presente invención es perfectamente extensible al caso de compresión de imágenes (se puede interpretar, como se ha dicho, como la compresión de la imagen del espectrograma) siempre y cuando se cuente con un modelo adecuado de enmascaramiento visual en lugar de auditivo.
Para recuperar los coeficientes espectrales 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 serán necesarios, puesto que muchos valores se cuantifican al nivel 0.
Decodificar la señal de audio es extremadamente sencillo: basta descomprimir los coeficientes espectrales, multiplicarlos por su signo correspondiente, y realizar la transformada inversa a la realizada en el codificador.
Se puede tratar de comprimir aún más las señales haciendo uso de técnicas adicionales de predicción temporal o frecuencial, las cuales se describen brevemente a continuación.
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 cuantificar, 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, antes de cuantificar. La idea sería 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 el residuo se codifica con pérdidas, y por tanto, la combinación lineal de valores anteriores necesaria para regenerar la predicción de la muestra actual no sería 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 el decodificador 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 sería 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 sería el correspondiente al de cuantificación del residuo), lo cual sería muy ventajoso, porque la energía del residuo sería mucho menor, los valores espectrales en general más pequeños, y por tanto, el margen de libertad que permite el umbral de enmascaramiento sería proporcionalmente mayor, y la codificación más eficiente.
Es por ello que sería interesante utilizar, en vez de predicción lineal, 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, para señales de música, se podría elaborar una predicción paramétrica de cada instrumento mediante modelado físico (por ejemplo, averiguando los modos de vibración de un determinado instrumento y codificando solamente los parámetros necesarios para modelar su sonido a partir de dichos modos). Una vez conseguido dicho modelado, 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.
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, notas sostenidas en el tiempo o 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 en las filas y/o columnas de la imagen del espectrograma tendría un funcionamiento equivalente y los mismos problemas que la predicción en el dominio del tiempo.
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 dispondremos 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), 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).
\bullet
Una vez identificadas las distancias medias entre la muestra actual y aquellas anteriores más parecidas se procede a elaborar la predicción. Esto se haría típicamente a través de la realización de un filtro cuyos coeficientes serían los pesos de una combinación lineal. Estos pesos se establecen siguiendo algún criterio adecuado, por ejemplo, minimizar la energía del error de predicción (residuo). 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. Sería 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.
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. 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 sería, 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. 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. Si . en el espectrograma el color blanco representa valores espectrales grandes y el negro valores pequeños, veremos una serie de "bandas blancas" horizontales más o menos equiespaciadas, correspondientes a los tonos armónicos que representan la mayor parte de la energía del sonido, más 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 espectrograma.
\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 y enviarlo al decodificador.
\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. 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.
Referencias
[MPEG-2] BOSI M et al. ISO/IEC MPEG-2 Advanced audio coding. Journal of the Audio Engineering Society. Oct. 1997, Vol 45.
[OCF] BRANDENBURG K. OCF-A new coding algorithm for high quality sound signals. Proceedings: ICASSP 87.
[BSAC] S. Park, Y. Kim, S. Kim, y Y. Seo, "Bit-Rate Scalable Audio coding", 103rd AES Convention, 1997.
[SCALA] US 2005231396 Al (SCALA TECHNOLOGY LIMITED) 20.10.2005.

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 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. Establecer a priori una jerarquía de los posibles valores de cuantificación de modo que exista un subconjunto reducido de los mismos -valores privilegiados de cuantificación- que podrán ser comprimidos de forma mucho más eficiente que el resto en una etapa posterior. Cuantificar individualmente cada coeficiente espectral tratando de que su valor cuantificado sea aquel que ocupe el lugar más alto posible en dicha 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 busca, por tanto, que los valores privilegiados de cuantificación sean los que se toman con mayor probabilidad, de modo que, globalmente, la compresión sea lo más eficiente posible. 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. Cada coeficiente espectral se cuantificará individualmente, esto es, su escalón de cuantificación podrá ser diferente al del resto de coeficientes espectrales de la banda crítica a la que dicho coeficiente pertenezca. Los coeficientes cuantificados se codifican en lenguaje binario natural con el objetivo de poder prescindir de los bits menos significativos si fuera necesario (i.e.: dotar al sistema de escalabilidad). Una elección adecuada de los valores privilegiados permitirá que su compresión sin pérdidas sea particularmente eficiente en una etapa
posterior.
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 N bits de cuantificación, de forma que el valor espectral que corresponda al máximo del rango dinámico corresponda a 2^{N}-1 y el mínimo a 0 (se escoge 2^{N}-1 en lugar de 2^{N} puesto que para codificar éste último valor necesitaríamos N+1 bits).
b)
Hacer la misma operación de normalizació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 2^{N}-1.
d)
Cada coeficiente espectral se divide por dicho escalón y se se calcula 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)
El resto obtenido en d) 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 (el coeficiente cuantificado se codifica, al igual que el coeficiente original, en lenguaje binario natural). En caso contrario, se divide el escalón por 2 (los sucesivos escalones serían 2^{N-1}, 2^{N-2}, 2^{N-3},..., 2, 1) y se vuelve al paso d) hasta que todos los coeficientes estén cuantificados.
Mediante este algoritmo se define una jerarquía en la que los valores privilegiados son las potencias de 2 y sus múltiplos. Los valores cuantificados resultantes codificados en lenguaje binario natural presentarán una estructura en la que el símbolo "0" será mucho más probable que el "1", característica que se puede explotar para conseguir una codificación de entropía eficiente en una etapa posterior utilizando, por ejemplo, codificación runlength.
4. El método de la reivindicación 1 cuando los valores cuantificados según alguno de los métodos de las reivindicaciones 2 ó 3, y codificados en lenguaje binario natural, se separen en planos de bits y estos planos se compriman por separado, ordenados 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.
\newpage
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 seleccionando por orden los planos de bits más significativos codificados, 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, haciendo uso de modelado físico de instrumentos o voz humana, 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 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 éste 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 ES2296489A1 (es) 2008-04-16
ES2296489B1 true 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)

Family Cites Families (3)

* 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
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
GB2388502A (en) * 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals

Non-Patent Citations (2)

* 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. *
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. *

Also Published As

Publication number Publication date
WO2007077280A1 (es) 2007-07-12
ES2296489A1 (es) 2008-04-16

Similar Documents

Publication Publication Date Title
RU2459282C2 (ru) Масштабируемое кодирование речи и аудио с использованием комбинаторного кодирования mdct-спектра
JP4081447B2 (ja) 時間離散オーディオ信号を符号化する装置と方法および符号化されたオーディオデータを復号化する装置と方法
RU2522020C1 (ru) Способ и система иерархического кодирования и декодирования звуковой частоты, способ иерархического кодирования и декодирования частоты для переходного сигнала
US7660720B2 (en) Lossless audio coding/decoding method and apparatus
KR101139172B1 (ko) 스케일러블 음성 및 오디오 코덱들에서 양자화된 mdct 스펙트럼에 대한 코드북 인덱스들의 인코딩/디코딩을 위한 기술
ES2650492T3 (es) Dispositivo y método de cuantificación de filtro LPC de múltiples referencias
US7599833B2 (en) Apparatus and method for coding residual signals of audio signals into a frequency domain and apparatus and method for decoding the same
US20100274555A1 (en) Audio Coding Apparatus and Method Thereof
WO2002103685A1 (fr) Appareil et procede de codage, appareil et procede de decodage et programme
CN101925950A (zh) 音频编码器和解码器
CN103843062A (zh) 用于产生带宽扩展信号的设备和方法
JP3824607B2 (ja) 時間−周波数相関性を利用した改善されたオーディオ符号化及び/または復号化方法とその装置
JPWO2007114290A1 (ja) ベクトル量子化装置、ベクトル逆量子化装置、ベクトル量子化方法及びベクトル逆量子化方法
JP2004531151A (ja) 時間離散オーディオサンプル値を処理する方法と装置
TW201209805A (en) Device and method for efficiently encoding quantization parameters of spectral coefficient coding
JPWO2009125588A1 (ja) 符号化装置および符号化方法
WO2011045926A1 (ja) 符号化装置、復号装置およびこれらの方法
US20110135007A1 (en) Entropy-Coded Lattice Vector Quantization
ES2296489B1 (es) Metodo escalable de compresion de audio e imagenes.
CN101308657B (zh) 一种基于先进音频编码器的码流合成方法
US20100280830A1 (en) Decoder
KR100765747B1 (ko) 트리 구조 벡터 양자화를 이용한 스케일러블 음성 부호화장치
Malvar Lossless and near-lossless audio compression using integer-reversible modulated lapped transforms
Ramprashad Sparse bit-allocations based on partial ordering schemes with application to speech and audio coding
KR101260285B1 (ko) 다원화된 확률 모형에 기반한 비.에스.에이.씨 산술 복호화방법

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