ES2296489B1 - Metodo escalable de compresion de audio e imagenes. - Google Patents
Metodo escalable de compresion de audio e imagenes. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/032—Quantisation 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.
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.
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.
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.
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.
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.
[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.
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.
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)
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 |
-
2005
- 2005-12-02 ES ES200503001A patent/ES2296489B1/es not_active Expired - Fee Related
-
2006
- 2006-12-03 WO PCT/ES2006/070190 patent/WO2007077280A1/es active Application Filing
Non-Patent Citations (2)
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 |