ES2296489A1 - Metodo escalable de compresion de audio e imagenes. - Google Patents
Metodo escalable de compresion de audio e imagenes. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
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.
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.
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.
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:
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.
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.
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.
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.
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)
| 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)
| 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 |
-
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 not_active Ceased
Patent Citations (2)
| 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)
| 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 |