ES2354743T3 - Dispositivo y método para el procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio. - Google Patents
Dispositivo y método para el procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio. Download PDFInfo
- Publication number
- ES2354743T3 ES2354743T3 ES07818557T ES07818557T ES2354743T3 ES 2354743 T3 ES2354743 T3 ES 2354743T3 ES 07818557 T ES07818557 T ES 07818557T ES 07818557 T ES07818557 T ES 07818557T ES 2354743 T3 ES2354743 T3 ES 2354743T3
- Authority
- ES
- Spain
- Prior art keywords
- spectral
- block
- spectral values
- sequence
- values
- 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.)
- Active
Links
Classifications
-
- 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
-
- 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/26—Pre-filtering or post-filtering
-
- 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
-
- 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- 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/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/26—Pre-filtering or post-filtering
- G10L19/265—Pre-filtering, e.g. high frequency emphasis prior to encoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
- Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
Abstract
Codificador para codificar una señal de audio, que comprende: un dispositivo (10) para el procesamiento posterior de valores espectrales basándose en un primer algoritmo (16) de transformación para convertir una señal de audio en una representación espectral, comprendiendo el dispositivo (10) para el procesamiento posterior: medios (12) para proporcionar una secuencia de bloques de los valores espectrales que representa una secuencia de bloques de muestras de la señal de audio; y un combinador (13) para sumar de manera ponderada valores espectrales de la secuencia de bloques de valores espectrales con el fin de obtener una secuencia de bloques de valores espectrales procesados posteriormente, en el que el combinador (13) está implementado para usar, para el cálculo de un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo, y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en el que el combinador (13) está implementado para usar tales factores de ponderación cuando realiza la suma ponderada, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales tal como se obtienen mediante un segundo algoritmo (17) de transformación para convertir la señal de audio en una representación espectral, en el que el segundo algoritmo (17) de transformación es diferente del primer algoritmo (16) de transformación; medios (23) para calcular una secuencia de bloques de valores espectrales según el segundo algoritmo (17) de transformación a partir de la señal de audio; medios (22) para formar una diferencia por valor espectral entre la secuencia de bloques debido al segundo algoritmo de transformación y la secuencia de bloques de valores espectrales procesados posteriormente.
Description
- 1.
- Campo de la invención:
La presente invención se refiere a la codificación/decodificación de audio y en particular a los conceptos de codificador/decodificador ajustables a escala que tienen una capa base y una capa de extensión.
- 2.
- Descripción de la técnica relacionada:
Los codificadores/decodificadores de audio se conocen desde hace mucho tiempo. En particular, los codificadores/decodificadores de audio que funcionan según la norma ISO/IEC 11172-3, conociéndose esta norma también como norma MP3, se denominan codificadores de transformación. Un codificador MP3 de este tipo recibe una secuencia de muestras de tiempo como señal de entrada que se someten a una función ventana. La función ventana lleva a bloques secuenciales de muestras de tiempo que entonces se convierten en una representación espectral por bloques. Según la norma MP3, aquí se realiza una conversión con un denominado banco de filtros híbrido. La primera fase del banco de filtros híbrido es un banco de filtros que tiene 32 canales con el fin de generar 32 señales de subbanda. Los filtros de subbanda de esta primera fase comprenden bandas de paso solapadas, razón por la que este filtrado tiende al solapamiento (aliasing). La segunda fase es una fase de MDCT para dividir las 32 señales de subbanda en 576 valores espectrales. A continuación se cuantifican los valores espectrales considerando el modelo psicoacústico y posteriormente se aplica codificación Huffman para obtener finalmente una secuencia de bits que incluye un flujo de palabras de código de Huffman e información complementaria necesaria para la decodificación.
En el lado del decodificador, las palabras de código de Huffman se calculan entonces de vuelta a índices de cuantificación. Una recuantificación lleva a valores espectrales que entonces se alimentan a un banco de filtros de síntesis híbrido que está implementado de manera análoga al banco de filtros de análisis para obtener de nuevo bloques de muestras de tiempo de la señal de audio codificada y de nuevo decodificada. Todas las etapas en el lado del codificador y en el lado del decodificador se presentan en la norma MP3. Con respecto a la terminología se indica que a continuación también se hace referencia a una “cuantificación inversa”. Aunque no puede invertirse una cuantificación, porque implica una pérdida de datos irrecuperable, a menudo se usa la expresión cuantificación inversa para indicar una recuantificación presentada anteriormente.
En la técnica también se conoce un algoritmo de codificador/decodificador de audio denominado AAC (AAC = codificación de audio avanzada). Un codificador de este tipo normalizado en la norma internacional ISO/IEC 13818-7 funciona de nuevo basándose en muestras de tiempo de una señal de audio. Las muestras de tiempo de la señal de audio se someten de nuevo a una función ventana con el fin de obtener bloques secuenciales de muestras de tiempo a las que se ha aplicado una función ventana. A diferencia del codificador MP3 en el que se usa un banco de filtros híbrido, en el codificador AAC se realiza una única transformación MDCT con el fin de obtener una secuencia de bloques de valores espectrales de MDCT. Estos valores espectrales de MDCT se cuantifican entonces de nuevo basándose en un modelo psicoacústico y finalmente se aplica codificación de Huffman a los valores espectrales cuantificados. En el lado del decodificador el procesamiento es correspondiente. Se decodifican las palabras de código de Huffman y entonces los índices de cuantificación o valores espectrales cuantificados, respectivamente, obtenidos a partir de éstos se recuantifican o cuantifican de manera inversa, respectivamente, para obtener finalmente valores espectrales que pueden suministrarse a un banco de filtros de síntesis de MDCT para obtener finalmente de nuevo muestras de tiempo codificadas/decodificadas.
Ambos métodos funcionan con bloques solapados y funciones ventana adaptativas tal como se describe en la publicación especializada “Codierung von Audiosignalen mit überlappender Transformation und adaptiven Fensterfunktionen” (“Codificación de señales de audio con transformación solapada y funciones ventana adaptativas”), Bernd Edler, Frequenz, vol. 43, 1989, págs. 252-256.
En particular, cuando se determinan zonas transitorias en la señal de audio, se realiza un cambio de funciones de ventana larga a funciones de ventana corta con el fin de obtener una resolución de frecuencia reducida a favor de una mejor resolución de tiempo. Una secuencia de ventanas cortas se introduce mediante una ventana de inicio y una secuencia de ventanas cortas se termina mediante una ventana de detención. De este modo puede conseguirse una transición sin espacios entre funciones de ventana larga solapadas y funciones de ventana corta solapadas. Dependiendo de la implementación, la zona solapada con ventanas cortas es menor que la zona solapada con ventana largas, lo que es razonable en vista del hecho de que en la señal de audio están presentes partes de señales transitorias, aunque no tiene que ser el caso necesariamente. Por tanto, secuencias de ventanas cortas así como secuencias de ventanas largas pueden implementarse con un solapamiento del 50 por ciento. Sin embargo, en particular con ventanas cortas, para mejorar la codificación de partes de señales transitorias, puede seleccionarse un ancho de solapamiento reducido, como por ejemplo de sólo el 10 por ciento o incluso menor, en lugar del 50 por ciento.
Tanto en la norma MP3 como en la norma AAC existe la función ventana con ventanas largas y cortas y las ventanas de inicio o las ventanas de detención, respectivamente, se ajustan a escala de modo que en general siempre puede mantenerse la misma trama de bloques. Para la norma MP3 esto significa que para cada bloque largo se generan 576 valores espectrales y que tres bloques cortos corresponden a un bloque largo. Esto significa que un bloque corto genera 192 valores espectrales. Con un solapamiento del 50 por ciento, para la función ventana se usa por tanto una longitud de ventana de 1152 muestras de tiempo, ya que debido al principio de solapamiento y suma de un solapamiento del 50 por ciento dos bloques de muestras de tiempo siempre llevan a un bloque de valores espectrales.
Tanto con los codificadores MP3 como con los codificadores AAC tiene lugar una compresión con pérdidas. Las pérdidas se introducen porque tiene lugar una cuantificación de los valores espectrales. Los valores espectrales se cuantifican en particular de modo que las distorsiones introducidas por la cuantificación, también denominadas ruido de cuantificación, tienen una energía que está por debajo del umbral de enmascaramiento psicoacústico.
Cuanto más basta sea la cuantificación de una señal de audio, es decir cuanto mayor sea el tamaño de paso del cuantificador, mayor será el ruido de cuantificación. Por otro lado, sin embargo, para una cuantificación más basta debe considerarse un menor conjunto de valores de salida de cuantificador, de modo que a los valores cuantificados de manera más basta se les puede aplicar una codificación de entropía usando menos bits. Esto significa que una cuantificación más basta lleva a una mayor compresión de datos, sin embargo, simultáneamente, lleva a mayores pérdidas de señal.
Estas pérdidas de señal no son problemáticas si están por debajo del umbral de enmascaramiento. Incluso aunque el umbral de enmascaramiento psicoacústico sólo se supere ligeramente, posiblemente esto puede no llevar aún a interferencias audibles para oyentes inexpertos. Sin embargo, de cualquier modo, tiene lugar una pérdida de información que puede no ser deseable por ejemplo debido a artefactos que pueden ser audibles en ciertas situaciones.
En particular con conexiones de datos de banda ancha o cuando la tasa de transmisión de datos no es el parámetro decisivo, respectivamente, o cuando están disponibles redes de datos tanto de banda ancha como de banda estrecha, puede ser deseable tener una presentación comprimida, no con pérdidas sino sin pérdidas o prácticamente sin pérdidas, de una señal de audio.
Por la publicación especializada “INTMDCT -A Link Between Perceptual and Losless Audio Coding”, Ralf Geiger, Jürgen Herre, Jürgen Koller, Karlheinz Brandenburg, Int. Conference on Acoustics Speech and Signal Processing (ICASSP), 13 -17 de mayo, 2002, Orlando, Florida, se conocen un codificador ajustable a escala de este tipo ilustrado esquemáticamente en la figura 7 y un decodificador asociado ilustrado esquemáticamente en la figura 8. Una tecnología similar se describe en la patente europea EP 1 495 464 B1. Los elementos 71, 72, 73, 74 ilustran un codificador AAC con el fin de generar un flujo de bits codificado con pérdidas denominado “flujo de bits codificado perceptivamente” en la figura 7. Este flujo de bits representa la capa base. En particular, el bloque 71 en la figura 7 designa el banco de filtros de análisis incluyendo la función ventana con ventanas largas y cortas según la norma AAC. El bloque 73 representa la cuantificación/codificación según la norma AAC y el bloque 74 representa la generación del flujo de bits de modo que el flujo de bits en el lado de salida no sólo incluye palabras de código de Huffman de valores espectrales cuantificados sino también la información complementaria necesaria, como por ejemplo factores de ajuste a escala, etc., de modo que pueda realizarse una decodificación. La cuantificación con pérdidas en el bloque 73 se controla en este caso mediante el modelo psicoacústico designado como “modelo perceptivo” 72 en la figura 7.
Como ya se ha indicado, la señal de salida del bloque 74 es una capa de ajuste a escala base que requiere relativamente pocos bits y, sin embargo, es sólo una representación con pérdidas de la señal de audio original y puede comprender artefactos de codificador. Los bloques 75, 76, 77, 78 representan los elementos adicionales necesarios para generar un flujo de bits de extensión sin pérdidas o prácticamente sin pérdidas, como se indica en la figura 7. En particular, la señal de audio original se somete a una MDCT de número entero (IntMDCT) en la entrada 70, como se ilustra mediante el bloque 75. Además, los valores espectrales cuantificados, generados mediante el bloque 73, en los que ya se han introducido pérdidas de codificador, se someten a una cuantificación inversa y a un redondeo posterior con el fin de obtener valores espectrales redondeados. Estos se suministran a un formador 77 de diferencia que forma una diferencia por valor espectral que entonces se somete a una codificación de entropía en el bloque 78 con el fin de generar un flujo de bits de mejora sin pérdidas del esquema de ajuste a escala en la figura 7. Un espectro de valores diferenciales en la salida del bloque 77 representa por tanto la distorsión introducida por la cuantificación psicoacústica en el bloque 73.
En el lado del decodificador, el flujo de bits codificado con pérdidas o el flujo de bits codificado perceptivamente se suministra a un decodificador 81 de flujo de bits. En el lado de salida, el bloque 81 proporciona una secuencia de bloques de valores espectrales cuantificados que entonces se someten a una cuantificación inversa en un bloque 82. En la salida del bloque 82 están presentes los valores espectrales cuantificados así de manera inversa, que ahora, a diferencia de los valores en la entrada del bloque 82, ya no representan índices de cuantificador, sino que ahora son por así decir valores espectrales “correctos” que, sin embargo, son diferentes de los valores espectrales antes de la codificación en el bloque 73 de la figura 7 debido a la cuantificación con pérdidas. Estos valores espectrales cuantificados se suministran ahora a un banco de filtros de síntesis o una transformación MDCT inversa (MDCT inversa), respectivamente, en el bloque 83 para obtener una señal de audio codificada y de nuevo decodificada psicoacústicamente (audio perceptivo) que es diferente de la señal de audio original en la entrada 70 de la figura 7 debido a los errores de codificación introducidos por el codificador de la figura 7. Con el fin de obtener no sólo una compresión con pérdidas sino incluso una compresión sin pérdidas, la señal de audio del bloque 82 se suministra a un redondeo en un bloque 84. En un sumador 85 los valores espectrales cuantificados de manera inversa, redondeados, se suman ahora a los valores diferenciales que se generaron mediante el formador 77 de diferencia, realizándose en un bloque 86 una decodificación de entropía para decodificar las palabras de código de entropía contenidas en el flujo de bits de extensión que contienen la información sin pérdidas o prácticamente sin pérdidas, respectivamente.
En la salida del bloque 85, están presentes por tanto valores espectrales de IntMDCT que en el caso óptimo son idénticos a los valores espectrales de MDCT en la salida del bloque 75 del codificador de la figura 7. Éstos se someten entonces a una MDCT de número entero inversa (IntMDCT inversa), para obtener una señal de audio sin pérdidas o una señal de audio prácticamente sin pérdidas codificada (audio sin pérdidas) en la salida del bloque 87.
La MDCT de número entero (IntMDCT) es una aproximación de la MDCT, pero que genera valores de salida de número entero. Se deriva de la MDCT usando el esquema de actualización (lifting scheme). Esto funciona en particular cuando la MDCT se divide en denominadas rotaciones de Givens. Entonces se obtiene como resultado un algoritmo de dos fases con rotaciones de Givens y una DCT-IV posterior como la MDCT de número entero en el lado del codificador y con una DCT-IV y un número descendente de rotaciones de Givens en el lado del decodificador. Así, en el esquema de la figura 7 y la figura 8, el espectro MDCT cuantificado generado en el codificador AAC se usa para predecir el espectro de MDCT de número entero. En general, la MDCT de número entero es por tanto un ejemplo de una transformación de número entero que genera valores espectrales de número entero y de nuevo muestras de tiempo a partir de los valores espectrales de número entero, sin que se introduzcan pérdidas por errores de redondeo. Además de la MDCT de número entero existen otras transformaciones de número entero.
El esquema de ajuste a escala indicado en las figuras 7 y 8 sólo es lo suficientemente eficaz cuando las diferencias en la salida del formador 77 de diferencia son pequeñas. Éste es el caso en el esquema ilustrado en la figura 7, porque la MDCT y la MDCT de número entero son similares y porque la IntMDCT en el bloque 75 se deriva de la MDCT en el bloque 71, respectivamente. En caso contrario, el esquema ilustrado en la misma no sería adecuado, porque entonces los valores diferenciales serían en muchos casos mayores que los valores de MDCT originales o incluso mayores que los valores de IntMDCT originales. Entonces el esquema de ajuste a escala en la figura 7 ha perdido su valor porque la salida de capa de ajuste a escala de extensión mediante el bloque 78 tiene una alta redundancia respecto a la capa de ajuste a escala base.
Los esquemas de ajustabilidad a escala son siempre óptimos cuando la capa base comprende un número de bits y cuando la capa de extensión comprende un número de bits y cuando la suma de los bits en la capa base y en la capa de extensión es igual a un número de bits que se obtendría si la capa base ya fuera una codificación sin pérdidas. Este caso óptimo nunca se consigue en los esquemas de ajustabilidad a escala prácticos, puesto que para la capa de extensión se requieren bits de señalización adicionales. Sin embargo, este caso óptimo se busca en la medida de lo posible. Puesto que las transformaciones en los bloques 71 y 75 son relativamente similares en la figura 7, el concepto ilustrado en la figura 7 está próximo a ser óptimo.
Sin embargo, este concepto de ajustabilidad a escala simple no puede aplicarse tal cual a la señal de salida de un codificador MP3, porque el codificador MP3, tal como se ilustró, no comprende un banco de filtros MDCT puro como banco de filtros, sino el banco de filtros híbrido que tiene una primera fase de banco de filtros para generar diferentes señales de subbanda y una MDCT aguas abajo para descomponer adicionalmente las señales de subbanda, en el que además, como también se indica en la norma MP3, se implementa una fase de cancelación de solapamiento adicional del banco de filtros híbrido. Puesto que la MDCT de número entero en el bloque 75 de la figura 7 tiene pocas similitudes con el banco de filtros híbrido según la norma MP3, una aplicación directa del concepto mostrado en la figura 7 a una señal de salida de MP3 llevaría a valores diferenciales muy altos en la salida del formador 77 de diferencia, lo que da como resultado un concepto de ajustabilidad a escala extremadamente poco eficaz ya que la capa de extensión requiere demasiados bits con el fin de codificar de manera razonable los valores diferenciales en la salida del formador 77 de diferencia.
Una posibilidad para generar el flujo de bits de extensión para una señal de salida de MP3 se ilustra en la figura 9 para el codificador y en la figura 10 para el decodificador. Un codificador 90 de MP3 codifica una señal de audio y proporciona una capa 91 base en el lado de salida. La señal de audio con codificación MP3 se suministra entonces a un decodificador 92 de MP3 que proporciona una señal de audio con pérdidas en el rango del tiempo. Esta señal se suministra entonces a un bloque de IntMDCT que, en principio, puede configurarse justo igual que el bloque 75 en la figura 7, proporcionando este bloque 75 entonces valores espectrales de IntMDCT en el lado de salida que se suministran a un formador 77 de diferencia que también incluye valores espectrales de IntMDCT como valores de entrada adicionales, que sin embargo, no se generaron mediante la señal de audio con decodificación MP3 sino mediante la señal de audio original que se suministró al codificador 90 de MP3.
En el lado del decodificador, la capa base se suministra de nuevo a un decodificador 92 de MP3 para proporcionar una señal de audio decodificada con pérdidas en una salida 100 que correspondería a la señal en la salida del bloque 83 de la figura 8. Esta señal tendría que someterse entonces a una MDCT 75 de número entero para codificarse entonces junto con la capa 93 de extensión que se generó en la salida del formador 77 de diferencia. Entonces, el espectro sin pérdidas estaría presente en una salida 101 del sumador 102 y sólo tendría que convertirse mediante una IntMDCT 103 inversa en el rango del tiempo con el fin de obtener una señal de audio decodificada sin pérdidas que correspondería al “audio sin pérdidas” al inicio del bloque 87 de la figura
8.
El concepto ilustrado en la figura 9 y en la figura 10, que proporciona una capa de extensión codificada de manera relativamente eficaz al igual que los conceptos ilustrados en las figuras 7 y 8, es caro tanto en el lado del codificador (figura 9) como en el lado del decodificador (figura 10), respectivamente. A diferencia del concepto en la figura 7, se requieren un decodificador 92 de MP3 completo y una IntMDCT 75 adicional.
Otra desventaja en este esquema es que tendría que definirse un decodificador de MP3 con precisión de bits. Sin embargo esto no está previsto, porque la norma MP3 no representa una especificación con precisión de bits sino que sólo tiene que cumplirse dentro del ámbito de una “conformidad” por un decodificador.
En el lado del decodificador se requiere además una fase 75 de IntMDCT completa adicional. Los dos elementos adicionales provocan una sobrecarga computacional y son desventajosos en particular para su uso en dispositivos móviles tanto con respecto al consumo de chips como al consumo de corriente y también con respecto al retardo asociado.
En resumen, las ventajas del concepto ilustrado en la figura 7 y la figura 8 son que, en comparación con los métodos en el dominio del tiempo, no se requiere una decodificación completa de la señal codificada con adaptación de audio, y que se obtiene una codificación eficaz mediante la codificación adicional de una representación del error de cuantificación en el rango de frecuencia. Por tanto, el método normalizado mediante la norma MPEG-4 ISO/IEC Scalable Lossless Coding (SLS) usa este enfoque, tal como se describe en R. Geiger, R. Yu, J. Herre, S. Rahardja, S. Kim, X. Lin, M. Schmidt, “ISO/IEC MPEG-4 High-Definition Scalable Advanced Audio Coding”, 120th AES meeting, 20 – 23 de mayo, 2006, Paris, Francia, versión preliminar 6791. Por tanto, se obtiene una extensión sin pérdidas, retrocompatible, de métodos de codificación de audio, por ejemplo MPEG-2/4 AAC, que usan la MDCT como banco de filtros.
Sin embargo, este enfoque no puede aplicarse directamente al método usado ampliamente de MPEG-1/2 Capa 3 (MP3), porque el banco de filtros híbrido usado en este método, a diferencia de la MDCT, no es compatible con la IntMDCT u otra transformación de número entero. Por tanto, una formación de diferencia entre los valores espectrales decodificados y los valores de IntMDCT correspondientes en general no lleva a pequeños valores diferenciales y por tanto, no lleva a una codificación eficaz de los valores diferenciales. El meollo del problema en este caso son los desplazamientos de tiempo entre las funciones de modulación correspondientes de la IntMDCT y el banco de filtros híbrido MP3. Estos llevan a desplazamientos de fase que en casos desfavorables llevan incluso al hecho de que los valores diferenciales comprendan valores mayores que los valores de IntMDCT. También es problemática una aplicación de los principios subyacentes a la IntMDCT, como por ejemplo el esquema de actualización, al banco de filtros híbrido de MP3, porque con respecto a su enfoque básico, a diferencia de la MDCT, el banco de filtros híbrido es un banco de filtros que no proporciona una reconstrucción perfecta.
El documento WO2004/013839 A1 da a conocer a disposición de bancos de filtros para la generación de una representación espectral compleja de una señal discreta en el tiempo. La disposición de bancos de filtros comprende un dispositivo para generar una serie temporal de coeficientes espectrales reales. La serie se introduce en un dispositivo para el procesamiento posterior de la serie temporal de bloques de coeficientes espectrales reales con el fin de dar una representación espectral compleja aproximada con bloques en serie. Un coeficiente espectral aproximado complejo puede representarse mediante un primer coeficiente espectral parcial y un segundo coeficiente espectral parcial, determinándose al menos o bien el primero o bien el segundo coeficiente espectral parcial por una combinación de al menos dos coeficientes espectrales reales.
SUMARIO DE LA INVENCIÓN
Es un objeto de la presente invención proporcionar un concepto eficaz para procesar datos de audio y, en particular, para codificar o decodificar datos de audio.
Este objeto se consigue mediante un codificador según la reivindicación 1, un decodificador según la reivindicación 23 o un método según la reivindicación 24 ó 25 o un programa informático según la reivindicación 26.
La presente invención se basa en el hallazgo de que unos valores espectrales, por ejemplo los que representan la capa base de un esquema de ajuste a escala, es decir por ejemplo valores espectrales de MP3, se someten a un procesamiento posterior, para obtener valores a partir de los mismos que son compatibles con valores correspondientes obtenidos según un algoritmo de transformación alternativo. Según la invención, por tanto, un procesamiento posterior de este tipo se realiza usando sumas ponderadas de valores espectrales de modo que el resultado del procesamiento posterior sea lo más similar posible a un resultado obtenido cuando la misma señal de audio no se convierte en una representación espectral usando el primer algoritmo de transformación sino usando el segundo algoritmo de transformación, que, en realizaciones preferidas de la presente invención, es un algoritmo de transformación de número entero.
Por tanto se ha encontrado que, incluso con un primer algoritmo de transformación y un segundo algoritmo de transformación considerablemente incompatibles, mediante una suma ponderada de ciertos valores espectrales del primer algoritmo de transformación se consigue una compatibilidad de los valores procesados posteriormente con los resultados de la segunda transformación que es tan buena que puede formarse una capa de extensión eficaz con valores diferenciales, sin que sean necesarias la codificación y decodificación caras y, por tanto, desventajosas del concepto en la figura 9 y la figura 10. En particular, se realiza la suma ponderada de modo que se genera un valor espectral procesado posteriormente a partir de una suma ponderada de un valor espectral y un valor espectral adyacente en la salida del primer algoritmo de transformación, utilizándose preferiblemente los dos valores espectrales de rangos de frecuencia adyacentes y también los valores espectrales de bloques de tiempo
o periodos de tiempo adyacentes, respectivamente. Mediante la suma ponderada de valores espectrales adyacentes se considera que en el primer algoritmo de transformación se solapan los filtros adyacentes de un banco de filtros, como es el caso prácticamente con todos los bancos de filtros. Mediante el uso de valores espectrales temporalmente adyacentes, es decir mediante la suma ponderada de valores espectrales (por ejemplo de la misma frecuencia o una frecuencia sólo ligeramente diferente) de dos bloques posteriores de valores espectrales de la primera transformación, se considera además que se usan algoritmos de transformación típicos en los que se usa un solapamiento de bloque.
Preferiblemente, los factores de ponderación se programan permanentemente tanto en el lado del codificador como en el lado del decodificador, de modo que no son necesarios bits adicionales para transferir los factores de ponderación. En lugar de ello, los factores de ponderación se ajustan una vez y por ejemplo se almacenan como una tabla o se implementan firmemente en hardware, ya que los factores de ponderación no dependen de la señal sino que sólo dependen del primer algoritmo de transformación y del segundo algoritmo de transformación. En particular, se prefiere ajustar los factores de ponderación de modo que una respuesta impulsional de la construcción a partir del primer algoritmo de transformación y del procesamiento posterior sea igual a una respuesta impulsional del segundo algoritmo de transformación. A este respecto, puede emplearse una optimización de los factores de ponderación de forma manual o mediante ordenador usando métodos de optimización conocidos, por ejemplo, usando ciertas señales de prueba representativas o, como se indica, usando directamente las respuestas impulsionales de los filtros resultantes.
Puede usarse el mismo dispositivo de procesamiento posterior tanto en el lado del codificador como en el lado del decodificador con el fin de adaptar valores espectrales realmente incompatibles del primer algoritmo de transformación a los valores espectrales del segundo algoritmo de transformación, de modo que los dos bloques de valores espectrales puedan someterse a una formación de diferencia para proporcionar finalmente una capa de extensión para una señal de audio que es por ejemplo una señal con codificación MP3 en la capa base y que comprende la extensión sin pérdidas como capa de extensión.
También debe indicarse que la presente invención no está limitada a la combinación de MP3 y MDCT de número entero, sino que la presente invención puede usarse siempre que deban procesarse en conjunto valores espectrales de algoritmos de transformación realmente incompatibles, por ejemplo para una formación de diferencia, una suma o cualquier otra operación de combinación en un codificador de audio o un decodificador de audio. El uso preferido del dispositivo de procesamiento posterior según la invención es, sin embargo, proporcionar una capa de extensión para una capa base en la que se codifica una señal de audio con una cierta calidad, sirviendo la capa de extensión, junto con la capa base, para conseguir una decodificación de mayor calidad, donde esta decodificación de mayor calidad ya es preferiblemente una decodificación sin pérdidas, pero que, sin embargo, también puede ser una decodificación prácticamente sin pérdidas, siempre que se mejore la calidad de la señal de audio decodificada usando la capa de extensión en comparación con la decodificación usando sólo la capa base.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
A continuación se explican realizaciones preferidas de la presente invención con más detalle con referencia a los dibujos adjuntos, en los que:
la figura 1 muestra un dispositivo según la invención para el procesamiento posterior de valores espectrales;
la figura 2 muestra un lado del codificador de un concepto de codificador según la invención;
la figura 3 muestra un lado del decodificador de un concepto de decodificador según la invención;
la figura 4 muestra una ilustración detallada de una realización preferida del procesamiento posterior y la formación de diferencia para bloques largos según la invención;
la figura 5a muestra una implementación preferida del dispositivo de procesamiento posterior según la invención para bloques cortos según una primera variante;
la figura 5b muestra una ilustración esquemática de bloques de valores correspondientes entre sí para el concepto mostrado en la figura 5a;
la figura 5c muestra una secuencia de ventanas para la variante mostrada en la figura 5a;
la figura 6a muestra una implementación preferida del dispositivo de procesamiento posterior según la invención y la formación de diferencias para bloques cortos según una segunda variante de la presente invención;
la figura 6b muestra una ilustración de diversos valores para la variante ilustrada en la figura 6a;
la figura 6c muestra una trama de bloques para la variante ilustrada en la figura 6a;
la figura 7 muestra una ilustración de codificador anterior para generar un flujo de datos ajustado a escala;
la figura 8 muestra una ilustración de decodificador anterior para procesar un flujo de datos ajustado a escala;
la figura 9 muestra una variante de codificador ineficaz; y
la figura 10 muestra una variante de decodificador ineficaz.
DESCRIPCIÓN DE LAS REALIZACIONES PREFERIDAS
La figura 1 muestra un dispositivo según la invención para el procesamiento posterior de valores espectrales que son preferiblemente una representación con pérdidas de una señal de audio, en el que los valores espectrales tienen un primer algoritmo de transformación subyacente para convertir la señal de audio en una representación espectral independientemente del hecho de si es con pérdidas o no. El dispositivo según la invención ilustrado en la figura 1 o el método también ilustrado esquemáticamente en la figura 1, respectivamente, se distinguen, con referencia al dispositivo, por los medios 12 para proporcionar una secuencia de bloques de valores espectrales que representa una secuencia de bloques de muestras de la señal de audio. En una realización preferida de la presente invención que se ilustrará más adelante, la secuencia de bloques proporcionada por los medios 12 es una secuencia de bloques generada por un banco de filtros de MP3. La secuencia de bloques de valores espectrales se suministra a un combinador 13 según la invención, en el que el combinador está implementado para realizar una suma ponderada de valores espectrales de la secuencia de bloques de valores espectrales para obtener, en el lado de salida, una secuencia de bloques de valores espectrales procesados posteriormente, tal como se ilustra mediante la salida 14. En particular, el combinador 13 está implementado para usar, para calcular un valor espectral procesado posteriormente para una banda de frecuencia y un periodo de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y el periodo de tiempo y un valor espectral para una banda de frecuencia adyacente y/o un periodo de tiempo adyacente. Además, el combinador está implementado para usar tales factores de ponderación para ponderar los valores espectrales usados, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales obtenidos mediante un segundo algoritmo de transformación para convertir la señal de audio en una representación espectral, en el que, sin embargo, el segundo algoritmo de transformación es diferente del primer algoritmo de transformación.
Esto se ilustra mediante la ilustración esquemática en la figura 1 en la parte inferior. Un primer algoritmo de transformación se representa mediante un número de referencia 16. El procesamiento posterior, realizado por el combinador, se representa por el número de referencia 13, y el segundo algoritmo de transformación se representa por un número de referencia 17. De los bloques 16, 13 y 17, los bloques 16 y 17 son fijos y normalmente obligatorios debido a condiciones externas. Sólo los factores de ponderación de los medios 13 de procesamiento posterior o el combinador 13, respectivamente, representados por el número de referencia 18, puede ajustarlos el usuario. A este respecto, esto no depende de la señal sino que, sin embargo, depende del primer algoritmo de transformación y el segundo algoritmo de transformación. Mediante los factores 18 de ponderación puede ajustarse además cuántos valores espectrales adyacentes respecto a la frecuencia o valores espectrales adyacentes en el tiempo se combinan entre sí. Si un factor de ponderación, como se explicará con referencia a las figuras 4 a 6, se ajusta a 0, el valor espectral asociado con este factor de ponderación no se considera en la combinación.
En realizaciones preferidas de la presente invención, para cada valor espectral se proporciona un conjunto de factores de ponderación. Por tanto, resulta una cantidad considerable de factores de ponderación. Esto no es problemático, sin embargo, ya que los factores de ponderación no tienen que transferirse sino que sólo tienen que programarse permanentemente en el lado del codificador y en el lado del decodificador. Si el codificador y el decodificador han acordado por tanto el mismo conjunto de factores de ponderación para cada valor espectral y, en su caso, para cada periodo de tiempo, o, tal como se ilustrará a continuación, para cada subbloque o posición de ordenamiento, respectivamente, no tiene que usarse señalización para la presente invención, de modo que el concepto según la invención consigue una reducción sustancial de la tasa de transmisión de datos en la capa de extensión sin señalización de información adicional, sin ninguna pérdida de calidad asociada.
La presente invención proporciona por tanto una compensación de los desplazamientos de fase entre valores de frecuencia, cuando se obtienen mediante el primer algoritmo de transformación, y valores de frecuencia, cuando se obtienen mediante el segundo algoritmo de transformación, pudiendo presentarse esta compensación de los desplazamientos de fase a través de una representación espectral compleja. Para ello, el concepto descrito en el documento DE 10234130 se incluye por razones de claridad, en el que para calcular partes imaginarias a partir de valores de salida de bancos de filtros reales se obtienen combinaciones lineales de valores espectrales temporal y espectralmente adyacentes. Si se usara este procedimiento para valores espectrales de MP3 decodificados, se obtendría una representación espectral de valor complejo. Cada uno de los valores espectrales complejos resultantes puede modificarse ahora en su posición de fase mediante una multiplicación por un factor de corrección de valor complejo de modo que, según la presente invención, se aproxima lo más posible al segundo algoritmo de transformación, es decir preferiblemente al valor de IntMDCT correspondiente, y por tanto es adecuado para una formación de diferencia. Además, según la invención, también se realiza una corrección de amplitud posiblemente requerida. Según la invención, estas etapas para la formación de la representación espectral de valor complejo y la corrección de fase o suma, respectivamente, se resumen de modo que mediante la combinación lineal de valores espectrales basándose en el primer algoritmo de transformación y sus vecinos espectrales y temporales se forma un valor espectral nuevo que minimiza la diferencia respecto al valor de IntMDCT correspondiente. Según la invención, a diferencia del documento DE 10234130, no se realiza un procesamiento posterior de valores de salida de bancos de filtros usando factores de ponderación con el fin de obtener partes reales e imaginarias. En su lugar, según la invención se realiza un procesamiento posterior usando tales factores de ponderación que, como se ilustró en la figura 1 en la parte inferior, una combinación del primer algoritmo 16 de transformación y el procesamiento 13 posterior se ajusta mediante los factores de ponderación de modo que el resultado corresponde a un segundo algoritmo de transformación en la medida de lo posible.
La figura 2 y la figura 3 muestran un campo de uso preferido del concepto según la invención ilustrado en la figura 1 tanto en el lado del codificador (figura 2) como en el lado del decodificador (figura 3) de un codificador ajustable a escala. Un flujo 20 de bits de MP3 o, en general, un flujo de bits, respectivamente, tal como puede obtenerse mediante un primer algoritmo de transformación, se alimenta a un bloque 21 con el fin de generar los valores espectrales a partir del flujo de bits que son por ejemplo valores espectrales de MP3. La decodificación de los valores espectrales en el bloque 21 incluirá por tanto normalmente una decodificación de entropía y una cuantificación inversa.
Entonces, en el bloque 10, se realiza un cálculo de valores de aproximación, realizándose el cálculo de los valores de aproximación o de los bloques de valores espectrales procesados posteriormente, respectivamente, tal como se ilustró en la figura
1. A continuación se realiza una formación de diferencia en un bloque 22, usando valores espectrales de IntMDCT, tal como se obtienen mediante una conversión de IntMDCT en un bloque 23. El bloque 23 obtiene por tanto una señal de audio como una señal de entrada a partir de la cual se obtuvo por codificación el flujo de bits de MP3, tal como se alimenta a la entrada 20. Preferiblemente, los espectros diferenciales, tal como se obtienen mediante el bloque 22, se someten a una codificación 24 sin pérdidas que por ejemplo incluye una codificación delta, una codificación de Huffman, una codificación aritmética o cualquier otra codificación de entropía mediante la que se reduce la tasa de transmisión de datos, pero sin que se introduzcan pérdidas en una señal.
En el lado del decodificador, el flujo 20 de bits de MP3, tal como también se alimentó a la entrada 20 de la figura 2, se somete de nuevo a una decodificación de los valores espectrales mediante un bloque 21, que puede corresponder al bloque 21 de la figura 2. A continuación, los valores espectrales de MP3 obtenidos en la salida del bloque 21 se procesan de nuevo según la figura 1 o el bloque 10. En el lado del decodificador, sin embargo, los bloques de valores espectrales procesados posteriormente, tal como se proporcionan por el bloque 10, se suministran a una fase 30 de suma, que obtiene valores diferenciales de IntMDCT en su otra entrada, tal como se obtienen mediante una decodificación 31 sin pérdidas a partir del flujo de bits de extensión sin pérdidas que se proporcionó por el bloque 24 en la figura 2. Entonces, mediante la suma de los valores diferenciales de IntMDCT proporcionados por el bloque 31 y los valores espectrales procesados proporcionados por el bloque 10, en una salida 32 de la fase 30 de suma se obtienen bloques de valores espectrales de IntMDCT que son una representación sin pérdidas de la señal de audio original, es decir de la señal de audio que se introdujo en el bloque 23 de la figura 2. Entonces se genera la señal de salida de audio sin pérdidas mediante un bloque 33 que realiza una IntMDCT inversa con el fin de obtener una señal de salida de audio sin pérdidas o prácticamente sin pérdidas. En general, la señal de salida de audio en la salida del bloque 33 tiene una mejor calidad que la señal de audio que se obtendría si la señal de salida del bloque 21 se procesara con un banco de filtros híbrido de síntesis de MP3. Dependiendo de la implementación, la señal de salida de audio en la salida 33 puede ser por tanto una reproducción idéntica de la señal de audio que se introdujo en el bloque 23 de la figura 2, o una representación de esta señal de audio, que no es idéntica, es decir, no es completamente sin pérdidas, pero que ya tiene una mejor calidad que una señal de audio con codificación MP3 normal.
En este punto debe indicarse que, como primer algoritmo de transformación, se prefiere el algoritmo de transformación de MP3 con su banco de filtros híbrido, y que como segundo algoritmo de transformación se prefiere el algoritmo de IntMDCT como algoritmo de transformación de número entero. Sin embargo, la presente invención ya es ventajosa siempre que dos algoritmos de transformación son diferentes entre sí, sin que los dos algoritmos de transformación tengan que ser necesariamente algoritmos de transformación de número entero dentro del alcance de la transformación IntMDCT, sino que también pueden ser algoritmos de transformación normales que, dentro del alcance de una MDCT, no son necesariamente una transformación de número entero invertible.
Sin embargo, según la invención, se prefiere que el primer algoritmo de transformación sea un algoritmo de transformación no de número entero y que el segundo algoritmo de transformación sea un algoritmo de transformación de número entero, siendo el procesamiento posterior según la invención particularmente ventajoso cuando el primer algoritmo de transformación proporciona espectros que, en comparación con los espectros proporcionados por el segundo algoritmo de transformación, están desplazados en fase y/o cambiados con respecto a sus magnitudes. En particular, cuando el primer algoritmo de transformación ni siquiera realiza una reconstrucción prefecta, el procesamiento posterior simple según la invención mediante una combinación lineal es especialmente ventajoso y puede usarse de manera eficaz.
La figura 4 muestra una implementación preferida del combinador 13 dentro de un codificador. La implementación dentro de un decodificador es idéntica, sin embargo, si el sumador 22, como en la figura 4, no realiza una formación de diferencia, como se ilustra mediante el signo menos por encima del sumador 22, sino que realiza una operación de suma, como se ilustra en el bloque 30 de la figura 3. En cada caso los valores que se alimentan a la entrada 40 son valores tal como se obtienen mediante el segundo algoritmo 23 de transformación de la figura 2 para la implementación del codificador o tal como se obtienen por el bloque 31 de la figura 3 en la implementación del decodificador.
En una realización preferida de la presente invención, el combinador incluye tres secciones 41, 42, 43. Cada sección incluye tres multiplicadores 42a, 42b, 42c, donde cada multiplicador está asociado con un valor espectral con un índice de frecuencia k-1, k o k+1. Por tanto, el multiplicador 42a está asociado con el índice de frecuencia k-1. El multiplicador 42b está asociado con el índice de frecuencia k y el multiplicador 42c está asociado con el índice de frecuencia k+1.
Cada rama sirve por tanto para ponderar valores espectrales de un bloque actual con el índice de bloque v o n+1, n o n-1, respectivamente, con el fin de obtener valores espectrales ponderados para el bloque actual.
Por tanto, la segunda sección 42 sirve para ponderar valores espectrales de un bloque temporalmente precedente o un bloque temporalmente posterior. Con respecto a la sección 41, la sección 42 sirve para ponderar valores espectrales del bloque n que sigue temporalmente al bloque n+1, y la sección 43 sirve para ponderar el bloque n-1 que sigue al bloque n. Para indicar esto, se indican elementos 44 de retardo en la figura
4. Por motivos de claridad, sólo se designa un elemento de retardo “z-1” mediante el número de referencia 44.
En particular, a cada multiplicador se le proporciona un factor de ponderación dependiente del índice espectral c0(k) a c8(k). Por tanto, en la realización preferida de la presente invención, resultan nueve valores espectrales ponderados, a partir de los que
se calcula un valor espectral procesado posteriormente y ∧ para el índice de frecuencia k 5 y el bloque de tiempo n. Estos nueve valores espectrales ponderados se suman en un bloque 45. El valor espectral procesado posteriormente para el índice de frecuencia k y el índice de tiempo n se calcula por tanto mediante la suma de valores espectrales ponderados posiblemente de diferente manera del bloque temporalmente precedente (n10 1) y el bloque temporalmente posterior (n+1) y usando valores espectrales adyacentes respectivamente hacia arriba (k+1) y hacia abajo (k-1). Sin embargo, representaciones más simples pueden ser sólo que un valor espectral para el índice de frecuencia k se combine sólo con un valor espectral adyacente k+1 o k-1 del mismo bloque, donde este valor espectral que se combina con el valor espectral del índice de frecuencia k, no tiene 15 que ser necesariamente directamente adyacente sino que también puede ser un valor espectral diferente del bloque. Debido al solapamiento típico de bandas adyacentes se prefiere, sin embargo, realizar una combinación con el valor espectral directamente adyacente hacia arriba y/o hacia abajo. Además, alternativa o adicionalmente, cada valor espectral con un valor espectral 20 para una duración de tiempo diferente, es decir un índice de bloque diferente, puede combinarse con el valor espectral correspondiente del bloque n, donde este valor espectral de un bloque diferente no tiene que tener necesariamente el mismo índice de frecuencia sino que puede tener un índice de frecuencia diferente, por ejemplo, adyacente. Preferiblemente, sin embargo, al menos el valor espectral con el mismo 25 índice de frecuencia de un bloque diferente se combina con el valor espectral del bloque considerado en ese momento. De nuevo, este otro bloque no tiene que ser necesariamente el temporalmente adyacente de manera directa, aunque esto es especialmente preferible cuando el primer algoritmo de transformación y/o el segundo algoritmo de transformación tienen una característica de solapamiento de bloque, como 30 es típico para codificadores de MP3 o codificadores de AAC. Esto significa, cuando se consideran los factores de ponderación de la figura 4, que al menos el factor de ponderación c4(k) no es igual a 0, y que al menos un segundo factor de ponderación no es igual a 0, mientras que todos los demás factores de ponderación también pueden ser igual a 0, lo que también puede proporcionar ya un 35 procesamiento que, sin embargo, debido al bajo número de factores de ponderación no
iguales a 0, sólo puede ser una aproximación relativamente basta del segundo algoritmo de transformación, si de nuevo se considera la mitad inferior de la figura 1. Con el fin de considerar más de nueve valores espectrales, pueden añadirse ramas adicionales para bloques más en el futuro o más en el pasado. Además, también pueden añadirse multiplicadores adicionales y factores de ponderación correspondientes adicionales para valores espectrales más alejados espectralmente, para generar un campo a partir del campo de 3x3 de la figura 4, que comprenda más de tres filas y/o más de tres columnas. Sin embargo, se ha encontrado que cuando se admiten nueve factores de ponderación para cada valor espectral, en comparación con un menor número de factores de ponderación, se consiguen mejoras sustanciales, mientras que cuando se aumenta el número de factores de ponderación, no se obtienen mejoras adicionales sustanciales respecto a la disminución de valores diferenciales en las salidas del bloque 22, de modo que un mayor número de factores de ponderación con algoritmos de transformación típicos con un solapamiento de filtros de subbanda adyacentes y un solapamiento temporal de bloques adyacentes no conlleva mejoras sustanciales.
Respecto al solapamiento del 50 por ciento usado en la secuencia de bloques largos, se hace referencia a la ilustración esquemática de la figura 5c en 45 a la izquierda de la figura, donde se ilustran esquemáticamente dos bloques largos posteriores. El concepto de combinador ilustrado en la figura 4 se usa por tanto, según la invención, siempre que se usa una secuencia de bloques largos, en el que la longitud de bloque del algoritmo 23 de IntMDCT y el grado de solapamiento del algoritmo de IntMDCT se ajustan igual al grado de solapamiento del filtro de análisis de MP3 y la longitud de bloque del filtro de análisis de MP3. En general se prefiere ajustar el solapamiento de bloque y la longitud de bloque de ambos algoritmos de transformación del mismo modo, lo que no presenta una limitación especial, que el segundo algoritmo de transformación, es decir por ejemplo la IntMDCT 23 de la figura 2 puede ajustarse fácilmente con respecto a esos parámetros, mientras que no es fácilmente posible con el primer algoritmo de transformación, en particular cuando el primer algoritmo de transformación está normalizado con respecto al ejemplo de MP3 y se usa con frecuencia y por tanto no puede cambiarse.
Como ya se ilustró con referencia a la figura 2 y la figura 3, el decodificador asociado en la figura 3 invierte la formación de diferencia de nuevo mediante una suma de los mismos valores de aproximación, es decir los valores diferenciales de IntMDCT en la salida del bloque 22 de la figura 2 o en la salida del bloque 31 de la figura 3.
Según la invención, este método puede aplicarse por tanto en general a la formación de diferencia entre representaciones espectrales obtenidas usando diferentes bancos de filtros, es decir cuando un banco de filtros/transformación subyacente al primer algoritmo de transformación es diferente de un banco de filtros/transformación subyacente al segundo algoritmo de transformación.
Un ejemplo de aplicación concreta es el uso de los valores espectrales de MP3 del “bloque largo” con respecto a una IntMDCT, como se describió con referencia a la figura 4. Puesto que la resolución de frecuencia del banco de filtros híbrido en este caso es de 576, la IntMDCT también comprenderá una resolución de frecuencia de 576, de modo que la longitud de ventana puede comprender un máximo de 1152 muestras de tiempo.
En el ejemplo descrito a continuación, sólo se usan los vecinos espectrales y temporales directos, mientras que en el caso general también (o alternativamente) pueden usarse valores más alejados.
Si el valor espectral de la banda de orden k en el bloque de MP3 de orden n se designa mediante x(k,n) y el valor espectral correspondiente de la IntMDCT se designa mediante y(k,n), la diferencia se calcula tal como se ilustra en la figura 4 para d(k,n). y(k,n) es el valor de aproximación para y(k,n) obtenido mediante la combinación lineal, y se determina tal como se ilustra mediante la ecuación larga bajo la figura 4.
También debe indicarse en este caso que, debido a la diferencia de fase diferente para cada una de las 576 subbandas, puede requerirse un conjunto de coeficientes distinto. En la realización práctica, tal como se ilustra en la figura 4, para un acceso a valores espectrales temporalmente adyacentes se usan los retardos 44 cuyos valores de salida corresponden respectivamente a valores de entrada en un bloque precedente correspondiente. Para permitir un acceso a valores espectrales temporalmente posteriores, por tanto también se retardan los valores espectrales de IntMDCT tal como se aplican a la entrada 40 mediante un retardo 46.
La figura 5a muestra un procedimiento algo modificado cuando el banco de filtros híbrido de MP3 proporciona bloques cortos, en el que se generan tres subbloques respectivamente por 192 valores espectrales, prefiriéndose en este caso aparte de la primera variante de la figura 5a también una segunda variante en la figura 6a según la invención.
La primera variante se basa en una triple aplicación de una IntMDCT con una resolución de frecuencia de 192 para formar bloques correspondientes de valores espectrales. En este caso, los valores de aproximación pueden formarse a partir de los tres valores correspondientes a un índice de frecuencia y sus vecinos espectrales correspondientes. Para cada subbloque, en este caso se requiere un conjunto distinto de coeficientes. Para describir el procedimiento se introduce por tanto un índice de subbloque u, de modo que n corresponde de nuevo al índice de un bloque completo de longitud 576. Expresado como una ecuación, se obtiene como resultado por tanto el sistema de ecuaciones de la figura 5a. Una secuencia de bloques de este tipo se ilustra en la figura 5b con referencia a los valores y en la figura 5c con referencia a las ventanas. El codificador de MP3 proporciona bloques de MP3 cortos, tal como se ilustran en 50. La primera variante también proporciona bloques de IntMDCT cortos y(u0), y(u1) e y(u2), tal como se ilustra en 51 en la figura 5b. De este modo pueden calcularse tres bloques 52 diferenciales cortos de modo que se obtiene como resultado una representación 1:1 entre un correspondiente valor espectral a la frecuencia k en los bloques 50, 51 y 52.
A diferencia de la figura 4 debe indicarse que en la figura 5a no se indican los retardos 44. Esto se desprende del hecho de que el procesamiento posterior sólo puede realizarse cuando se han calculado los tres subbloques 0, 1, 2 para un bloque n. Si el subbloque con el índice 0 es el primer subbloque desde el punto de vista temporal, y si el siguiente subbloque con el índice 1 es el bloque posterior desde el punto de vista temporal, y si el índice u=2 es de nuevo el bloque corto posterior desde el punto de vista temporal, entonces se calcula el bloque diferencial para el índice u=0 usando valores espectrales del subbloque u0, el subbloque u1 y el subbloque u2. Esto significa que sólo con referencia al subbloque actualmente calculado con el índice 0 se usan subbloques 1 y 2 futuros, sin embargo, ningún valor espectral del pasado. Esto es razonable ya que se realizó un cambio a bloques cortos porque hubo un resultado transitorio en la señal de audio, tal como se conoce y por ejemplo como se ilustra en la publicación especializada mencionada anteriormente de Edler. Los valores procesados posteriormente para el subbloque que tienen el índice 1 usados para obtener los valores diferenciales que tienen el índice 1 de subbloque se calculan, sin embargo, a partir de un subbloque precedente desde el punto de vista temporal, actual desde el punto de vista temporal y posterior desde el punto de vista temporal, mientras que los valores espectrales procesados posteriormente para el tercer subbloque con el índice 2 no se calculan usando subbloques futuros, sino sólo usando subbloques pasados que tienen el índice 1 y el índice 0, lo que también es técnicamente razonable en la medida en que, de nuevo, como se indica en la figura 5c, puede iniciarse fácilmente un cambio de ventana a ventanas largas mediante una ventana de detención, de modo que posteriormente de nuevo puede realizarse un cambio directamente al esquema de bloques largos de la figura 4.
La figura 5 aclara por tanto que, en particular con bloques cortos, aunque también en general, puede ser razonable mirar sólo al pasado o al futuro y no siempre, como se indica en la figura 4, al pasado y al futuro, para obtener valores espectrales que proporcionen un valor espectral procesado posteriormente después de una ponderación y una suma.
A continuación, con referencia a las figuras 6a, 6b y 6c se ilustra la segunda variante para bloques cortos. En la segunda variante, la resolución de frecuencia de la IntMDCT sigue siendo 576, de modo que tres valores espectrales de IntMDCT espectralmente adyacentes se sitúan cada uno en el rango de frecuencia de un valor espectral de MP3. Por tanto, para cada uno de esos tres valores espectrales de IntMDCT, para una formación de diferencia se forma una combinación lineal distinta a partir de los tres valores espectrales de subbloque posteriores desde el punto de vista temporal y sus vecinos espectrales, donde el índice s, al que también se hace referencia como índice de orden, indica ahora la posición dentro de cada grupo de tres. Por tanto, se obtiene como resultado la ecuación tal como se ilustra en la figura 6a bajo el diagrama de bloques. Esta segunda variante es especialmente adecuada si se usa una función ventana con una zona de solapamiento pequeña en la IntMDCT, ya que entonces la sección de señal considerada corresponde adecuadamente a la de los tres subbloques. En este caso, al igual que con la primera variante, se prefiere adaptar las formas de ventana de la IntMDCT de bloques largos precedentes o posteriores, respectivamente, de modo que se obtenga como resultado una reconstrucción perfecta. En la figura 5c se ilustra un diagrama de bloques correspondiente para la primera variante. Un diagrama correspondiente para la segunda variante se ilustra en la figura 6c, en la que ahora sólo se genera un único bloque de IntMDCT largo mediante la ventana 63 larga, comprendiendo ahora este bloque de IntMDCT largo k bloques triples de valores espectrales, siendo el ancho de banda de un bloque triple de este tipo, que se obtiene a partir de s=0, s=1 y s=2, igual al ancho de banda de un bloque k de los bloques 60 de MP3 cortos en la figura 6b. A partir de la figura 6a puede observarse que, para una resta del primer valor espectral con s=0 para un bloque triple con el índice k, de nuevo se usan los valores del subbloque 0, 1, 2 actual, futuro y el futuro siguiente, pero no se usan valores pasados. Para calcular un valor diferencial para el segundo valor s=1 de un grupo triple, sin embargo, se usan valores espectrales del subbloque precedente y el subbloque futuro, mientras que para calcular un valor espectral diferencial con el índice de orden s=2 sólo se usan subbloques precedentes, tal como se ilustra mediante las ramas 41 y 42 que están en el pasado con respecto a la rama 43 en la figura 6a.
En este punto debe indicarse que con todas las reglas de cálculo los términos que superan los límites del rango de frecuencia, es decir por ejemplo el índice de frecuencia -1 ó 576 ó 192, respectivamente, se omiten en cada caso. En estos casos, en el ejemplo general en las figuras 4 a 6 se reduce por tanto la combinación lineal a 6 en lugar de 9 términos.
A continuación se hace referencia en detalle a las secuencias de ventanas en la figura 5c y la figura 6c. Las secuencias de ventanas consisten en una secuencia de bloques largos, cuando se procesan por el escenario de la figura 4. A continuación sigue una ventana 56 de inicio que tiene una forma asimétrica, puesto que se “convierte” de una zona de solapamiento largo al inicio de la ventana de inicio en una zona de solapamiento corto al final de la ventana de inicio. De manera análoga, existe una ventana 57 de detención que se convierte de nuevo de una secuencia de bloques cortos en una secuencia de bloques largos y por tanto comprende una zona de solapamiento corto al inicio y una zona de solapamiento largo al final.
Se selecciona un cambio de ventana, tal como se ilustra en publicación especializada mencionada de Edler, si mediante un codificador se detecta una duración de tiempo en la señal de audio que comprende una señal transitoria.
Una señalización de este tipo está ubicada en el flujo de bits de MP3, de modo que cuando la IntMDCT, según la figura 2 y según la primera variante de la figura 5c, también cambia a bloques cortos, no es necesaria una detección de transitorios distinta, sino que tiene lugar una detección de transitorios basándose sólo en una observación de ventana corta en el flujo de bits de MP3. Para el procesamiento posterior de valores en la ventana de inicio se prefiere, debido a la zona de solapamiento largo con la ventana precedente, usar bloques con el índice de bloque precedente n-1, mientras que los bloques con el índice de bloque posterior sólo se ponderan ligeramente o en general no se usan debido a la zona de solapamiento corto. De manera análoga, la ventana de detención para el procesamiento posterior sólo considerará valores con un índice de bloque futuro n+1 además de los valores para el bloque actual n, pero sólo realizará una ligera ponderación o una ponderación igual a 0, es decir no usará nada del pasado, es decir, por ejemplo, del tercer bloque corto.
Cuando, tal como se muestra en la figura 6c, la secuencia de ventanas tal como se implementa por la IntMDCT 23, es decir el segundo algoritmo de transformación, no realiza ningún cambio a ventanas cortas, sino que implementa el cambio de ventana usado preferiblemente, entonces se prefiere iniciar o terminar, respectivamente, la ventana con el solapamiento corto, designada por 63 en la figura 6c, también mediante una ventana 56 de inicio y mediante una ventana 57 de detención.
Aunque en la realización ilustrada en la figura 6c la IntMDCT de la figura 2 no cambia al modo de ventana corta, la señalización de ventanas cortas en el flujo de bits de MP3 puede usarse de todos modos para activar el cambio de ventana con una ventana de inicio, ventana con solapamiento corto, tal como se indica en la figura 6c en 63, y ventana de detención.
Además debe indicarse que en particular las secuencias de ventanas ilustradas en la norma AAC, adaptadas a la longitud de bloque de MP3 o la alimentación de MP3, respectivamente, de 576 valores para bloques largos y 192 valores para bloques cortos, y en particular también las ventanas de inicio y las ventanas de detención ilustradas en la misma, son especialmente adecuadas para una implementación de la IntMDCT en el bloque 23 de la presente invención.
A continuación, se hace referencia a la precisión de la aproximación del primer algoritmo de transformación y el procesamiento posterior.
Para 576 señales de entrada que tienen respectivamente un impulso en la posición 0… 575 en un bloque, se realizaron las siguientes etapas:
-calcular el banco de filtros híbrido + aproximación
-calcular la MDCT
-calcular la suma de cuadrados de las componentes espectrales de MDCT
-calcular la suma de cuadrados de las desviaciones entre las componentes
espectrales de MDCT y la aproximación. En este caso se determina la
desviación cuadrática máxima por las 576 señales.
La desviación cuadrática relativa máxima por todas las posiciones fue,
cuando se usaron
-bloques largos según la figura 4, de aproximadamente el 3,3 %
-bloques cortos (híbridos) y bloques largos (MDCT) según la figura 6, de
aproximadamente el 20,6 %.
Por tanto podría decirse que con un impulso en las entradas de las dos transformaciones, la suma de cuadrados de las desviaciones entre la aproximación y las componentes espectrales de la segunda transformación no debería ser mayor del 30% (y preferiblemente incluso no mayor del 25% o el 10% respectivamente) de la suma de cuadrados de las componentes espectrales de la segunda transformación, independientemente de la posición del impulso en el bloque de entrada. Para calcular las sumas de cuadrados, deberían considerarse todos los bloques de componentes espectrales sobre los que influye el impulso.
Debe indicarse que, en la inspección de errores anterior (MDCT frente a BF híbrido + procesamiento posterior), siempre se consideró el error relativo independiente de la señal.
En la IntMDCT (frente a MDCT), sin embargo, el error absoluto es independiente de la señal y se encuentra en un intervalo de aproximadamente -2 a 2 de los valores de número entero redondeados. A partir de esto resulta que el error relativo se vuelve dependiente de la señal. Con el fin de eliminar esta dependencia de la señal, se supone preferiblemente un impulso completamente controlado (por ejemplo el valor 32767 a PCM de 16 bits).
5 Esto dará como resultado entonces un espectro casi plano con una amplitud promedio de aproximadamente 32767/raíz cuadrada (576) = 1365 (conservación de energía). El error cuadrático medio sería entonces de aproximadamente 2^2/1365^2=0,0002%, es decir insignificante.
Con un impulso muy bajo en la entrada, el error sería sin embargo, grave. Un 10 impulso de amplitud 1 ó 2 se perdería casi por completo en el error de aproximación de IntMDCT.
El criterio de error de la precisión de la aproximación, es decir el valor deseado para los factores de ponderación, puede compararse por tanto de la mejor manera cuando se indica para un impulso completamente controlado.
15 Dependiendo de las circunstancias, el método según la invención puede implementarse en hardware o en software. La implementación puede tener lugar en un medio de almacenamiento digital, en particular un disquete o un CD con señales de control legibles electrónicamente, que puede actuar conjuntamente con un sistema informático programable para llevar a cabo el método. En general, la invención consiste
20 por tanto también en un producto de programa informático con un código de programa almacenado en un soporte legible por máquina par llevar a cabo el método según la invención cuando el producto de programa informático se ejecuta en un ordenador. Dicho de otro modo, la invención puede realizarse por tanto como programa informático con un código de programa para llevar a cabo el método, cuando el programa
25 informático se ejecuta en un ordenador.
Claims (27)
- REIVINDICACIONES1. Codificador para codificar una señal de audio, que comprende:un dispositivo (10) para el procesamiento posterior de valores espectrales basándose en un primer algoritmo (16) de transformación para convertir una señal de audio en una representación espectral, comprendiendo el dispositivo (10) para el procesamiento posterior:medios (12) para proporcionar una secuencia de bloques de los valores espectrales que representa una secuencia de bloques de muestras de la señal de audio; y un combinador (13) para sumar de manera ponderada valores espectrales de la secuencia de bloques de valores espectrales con el fin de obtener una secuencia de bloques de valores espectrales procesados posteriormente, en el que el combinador (13) está implementado para usar, para el cálculo de un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo, y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en el que el combinador (13) está implementado para usar tales factores de ponderación cuando realiza la suma ponderada, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales tal como se obtienen mediante un segundo algoritmo (17) de transformación para convertir la señal de audio en una representación espectral, en el que el segundo algoritmo (17) de transformación es diferente del primer algoritmo (16) de transformación;medios (23) para calcular una secuencia de bloques de valores espectrales según el segundo algoritmo (17) de transformación a partir de la señal de audio; medios (22) para formar una diferencia por valor espectral entre la secuencia de bloques debido al segundo algoritmo de transformación y la secuencia de bloques de valores espectrales procesados posteriormente.
-
- 2.
- Codificador según la reivindicación 1, en el que el primer algoritmo (16) de transformación es un algoritmo de transformación híbrido que tiene dos fases, y el segundo algoritmo (17) de transformación es un algoritmo de transformación de una fase.
-
- 3.
- Codificador según la reivindicación 1, en el que el primer algoritmo (16) de transformación comprende un banco de filtros polifásicos y una transformada de coseno discreta modificada, y en el que el segundo algoritmo (17) de transformación es una MDCT de número entero.
-
- 4.
- Codificador según la reivindicación 1, en el que el primer algoritmo (16) de transformación y el segundo algoritmo (17) de transformación se implementan de modo que proporcionan señales de salida reales.
-
- 5.
- Codificador según la reivindicación 1, en el que el combinador (13) está implementado para usar tales factores de ponderación que el primer algoritmo
- (16)
- de transformación y un procesamiento posterior realizado por el combinador
- (13)
- proporcionan en conjunto una respuesta impulsional que se aproxima a una respuesta impulsional del segundo algoritmo (17) de transformación.
-
- 6.
- Codificador según la reivindicación 5, en el que, en una aproximación a partir del primer algoritmo de transformación y el procesamiento posterior, los factores de ponderación se seleccionan de modo que, con un impulso en la entrada de las dos transformaciones, la suma de cuadrados de las desviaciones entre la aproximación y las componentes espectrales de la segunda transformación no es mayor que el 30% de la suma de cuadrados de las componentes espectrales de la segunda transformación.
-
- 7.
- Codificador según la reivindicación 1, en el que los medios (12) para proporcionar una secuencia de bloques están implementados para proporcionar bloques que son una representación con pérdidas de la señal de audio.
-
- 8.
- Codificador según la reivindicación 1, en el que el combinador (13) para un cálculo de un valor espectral procesado posteriormente para una banda de frecuencia k comprende:
una primera sección (41, 42, 43) para ponderar valores espectrales de un bloque actual para la banda de frecuencia k, una banda de frecuencia k-1o una banda de frecuencia k+1, con el fin de obtener valores espectrales ponderados para el bloque actual; una segunda sección (41, 42, 43) para ponderar valores espectrales de un bloque temporalmente precedente k-1 o un bloque temporalmente posterior k+1, con el fin de obtener valores espectrales ponderados para el bloque temporalmente precedente o el bloque temporalmente posterior; y medios (45) para sumar los valores espectrales ponderados para obtener un valor espectral procesado posteriormente para la banda de frecuenciak de un bloque actual o precedente o posterior de valores espectralesprocesados posteriormente. - 9. Codificador según la reivindicación 8, que comprende además: una tercera sección (43) para ponderar valores espectrales de un bloque precedente, en el que la primera sección se implementa para ponderar valores espectrales de un bloque posterior, y en el que la segunda sección(42) se implementa para ponderar valores espectrales de un bloque actual, y en el que el sumador (45) se implementa para sumar valores espectrales ponderados de las tres secciones con el fin de obtener un valor espectral procesado posteriormente para el bloque actual de valores espectrales procesados posteriormente.
-
- 10.
- Codificador según la reivindicación 1, en el que el primer algoritmo de transformación comprende una función de solapamiento de bloque, en el que se solapan los bloques de muestras de la señal de audio de tiempo en los que se basa la secuencia de bloques de valores espectrales.
-
- 11.
- Codificador según la reivindicación 1, en el que el combinador (13) está implementado para usar un conjunto de factores de ponderación independiente de la señal para cada valor espectral.
-
- 12.
- Codificador según la reivindicación 1, en el que la secuencia de bloques de los valores espectrales comprende un conjunto de bloques de valores espectrales que son más cortos que un bloque largo de valores espectrales que sigue tras el conjunto de bloques o que precede al conjunto de bloques, y en el que el combinador (13) está implementado para usar la misma banda de frecuencia o una banda de frecuencia adyacente de entre varios bloques del conjunto de bloques cortos para calcular un valor espectral procesado posteriormente para el conjunto de bloques de valores espectrales.
-
- 13.
- Codificador según la reivindicación 12, en el que el combinador (13) está implementado para usar sólo valores espectrales de bloques cortos y no un valor espectral de un bloque largo precedente o un bloque largo posterior para calcular valores espectrales procesados posteriormente debido a bloques cortos de valores espectrales.
-
- 14.
- Codificador según la reivindicación 1, en el que el combinador (13) está implementado para implementar la siguiente ecuación:
imagen1 en la que de frecuencia k y un índice de tiempo n, en la que x(k,n) es un valor espectral de un bloque de valores espectrales con un índice de frecuencia k y un índice de 5 tiempo n, en la que c0(k), …, c8(k) son factores de ponderación, asociados con el índice de frecuencia k, en la que k-1 es un índice de frecuencia disminuido, en la que k+1 es un índice de frecuencia aumentado, en la que n-1 es un índice de tiempo disminuido y en la que n+1 es un índice de tiempo aumentado. - 15. Codificador según la reivindicación 1, en el que el combinador (13) está 10 implementado para implementar la siguiente ecuación:
imagen2 - ∧
- en la que
- y (k,n,u) es un valor espectral procesado posteriormente para un índice
- de frecuencia k y un índice de tiempo n y un índice de subbloque u, en la que
- x(k,n,u) es un valor espectral de un bloque de valores espectrales con un índice
- 15
- de frecuencia k y un índice de tiempo n y un índice de subbloque u, en la que
- c0(k), …, c8(k) son factores de ponderación asociados con el índice de frecuencia
- k, en la que k-1 es un índice de frecuencia disminuido, en la que k+1 es un índice
- de frecuencia aumentado, en la que n-1 es un índice de tiempo disminuido y en la
- que n+1
- es un índice de tiempo aumentado, en la que u es un índice de
- 20
- subbloque que indica una posición de un subbloque en una secuencia de
- subbloques, y en la que el índice de tiempo especifica un bloque largo y el índice
- de subbloque especifica un bloque corto en comparación.
-
- 16.
- Codificador según la reivindicación 1, en el que el combinador (13) está
- implementado para implementar la siguiente ecuación:
imagen3 en la que y ∧ (k,n) es un valor espectral procesado posteriormente para un índice de frecuencia k y un índice de tiempo n, en la que x(k,n,u) es un valor espectral de un bloque de valores espectrales con un índice de frecuencia k y un índice de tiempo n y un índice de subbloque u, en la que c0(k), …, c8(k) son factores de 5 ponderación asociados con el índice de frecuencia k, en la que k-1 es un índice de frecuencia disminuido, en la que k+1 es un índice de frecuencia aumentado, en la que n-1 es un índice de tiempo disminuido y en la que n+1 es un índice de tiempo aumentado, en la que s es un índice de orden que indica una posición de un subbloque en una secuencia de subbloques, y en la que el índice de tiempo 10 especifica un bloque largo y el índice de subbloque especifica un bloque corto en comparación. - 17. Codificador según la reivindicación 1, que comprende además: medios (24) para generar un flujo de bits de extensión debido a un resultado generado por los medios (22) para una formación de diferencia15 por valor espectral.
-
- 18.
- Codificador según la reivindicación 17, en el que los medios (24) para la generación comprenden un codificador de entropía.
-
- 19.
- Codificador según la reivindicación 1, en el que la secuencia de bloques debido al primer algoritmo (16) de transformación se basa en una compresión con pérdidas,
20 y en el que la secuencia de bloques debido al segundo algoritmo (17) de transformación se basa en una compresión sin pérdidas o prácticamente sin pérdidas. - 20. Codificador según la reivindicación 1, que comprende una memoria paraalmacenar los factores de ponderación en la que los factores de ponderación 25 pueden almacenarse independientemente de una señal.
- 21. Codificador según la reivindicación 1, en el que los medios (23) para generar la secuencia de bloques usando el segundo algoritmo (17) de transformación se implementan para realizar una función ventana con una secuencia de ventana que depende de una secuencia de ventana en la que se basa la secuencia de30 bloques de los valores espectrales y que viene dada debido al primer algoritmo(16) de transformación.
- 22. Codificador según la reivindicación 21, en el que los medios (23) para proporcionar una secuencia de bloques usando el segundo algoritmo (17) de transformación se implementan para cambiar de una ventana larga con una zona35 de solapamiento largo a una ventana larga con una zona de solapamiento corto o a una pluralidad de ventanas cortas, cuando en la secuencia de bloques de los valores espectrales debido al primer algoritmo (16) de transformación tiene lugar un cambio a ventanas cortas.
- 23. Decodificador para decodificar una señal de audio codificada, que comprende: un dispositivo para el procesamiento posterior de valores espectrales derivados de la señal de audio codificada basándose en un primer algoritmo (16) de transformación para convertir una señal de audio en una representación espectral, comprendiendo el dispositivo (10) para el procesamiento posterior: medios (12) para proporcionar una secuencia de bloques de los valores espectrales que representa una secuencia de bloques de muestras de la señal de audio; y un combinador (13) para sumar de manera ponderada valores espectrales de la secuencia de bloques de valores espectrales con el fin de obtener una secuencia de bloques de valores espectrales procesados posteriormente, en el que el combinador (13) está implementado para usar, para el cálculo de un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo, y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en el que el combinador (13) está implementado para usar tales factores de ponderación cuando realiza la suma ponderada, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales tal como se obtienen mediante un segundo algoritmo (17) de transformación para convertir la señal de audio en una representación espectral, en el que el segundo algoritmo (17) de transformación es diferente del primer algoritmo (16) de transformación;medios (31) para proporcionar valores diferenciales por valor espectral entre una secuencia de bloques de valores espectrales procesados posteriormente debido al primer algoritmo (16) de transformación y una secuencia de bloques debido al segundo algoritmo (17) de transformación; medios (30) para combinar la secuencia de bloques de los valores espectrales procesados posteriormente y los valores diferenciales con elfin de obtener una secuencia de bloques de valores espectrales decombinación; y medios (33) para transformar de manera inversa la secuencia de bloques de valores espectrales de combinación según el segundo algoritmo (17) de transformación para obtener una señal de audio decodificada.
- 24. Método para codificar una señal de audio, que comprende las siguientes etapas: procesar (10) posteriormente valores espectrales basándose en un primer algoritmo (16) de transformación para convertir una señal de audio en una representación espectral, que comprende:proporcionar (12) una secuencia de bloques de los valores espectrales que representa una secuencia de bloques de muestras de la señal de audio; y sumar (13) de manera ponderada valores espectrales de la secuencia de bloques de valores espectrales con el fin de obtener una secuencia de bloques de valores espectrales procesados posteriormente, en el que el combinador (13) está implementado para usar, para el cálculo de un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo, y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en el que el combinador (13) está implementado para usar tales factores de ponderación cuando realiza la suma ponderada, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales tal como se obtienen mediante un segundo algoritmo (17) de transformación para convertir la señal de audio en una representación espectral, en el que el segundo algoritmo(17) de transformación es diferente del primer algoritmo (16) detransformación; calcular (23) una secuencia de bloques de valores espectrales según el segundo algoritmo (17) de transformación a partir de la señal de audio; formar (22) una diferencia por valor espectral entre la secuencia de bloques de valores espectrales debido al segundo algoritmo de transformación y la secuencia de bloques de valores espectrales procesados posteriormente.
- 25. Método para decodificar una señal de audio codificada, que comprende lassiguientes etapas: procesar posteriormente valores espectrales derivados de la señal de audio codificada basándose en un primer algoritmo (16) de transformación para convertir una señal de audio en una representación espectral, que comprende:proporcionar (12) una secuencia de bloques de los valores espectrales que representa una secuencia de bloques de muestras de la señal de audio; y sumar (13) de manera ponderada valores espectrales de la secuencia de bloques de valores espectrales con el fin de obtener una secuencia de bloques de valores espectrales procesados posteriormente, en el que el combinador (13) está implementado para usar, para el cálculo de un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo, y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en el que el combinador (13) está implementado para usar tales factores de ponderación cuando realiza la suma ponderada, que los valores espectrales procesados posteriormente son una aproximación a valores espectrales tal como se obtienen mediante un segundo algoritmo (17) de transformación para convertir la señal de audio en una representación espectral, en el que el segundo algoritmo(17) de transformación es diferente del primer algoritmo (16) detransformación; proporcionar (31) valores diferenciales por valor espectral entre una secuencia de bloques de valores espectrales procesados posteriormente debido al primer algoritmo (16) de transformación y una secuencia de bloques de valores espectrales debido al segundo algoritmo (17) de transformación; combinar (30) la secuencia de bloques de los valores espectrales procesados posteriormente y los valores diferenciales para obtener una secuencia de bloques de valores espectrales de combinación; y transformar (33) de manera inversa la secuencia de bloques de valores espectrales de combinación según el segundo algoritmo (17) de transformación para obtener una señal de audio decodificada.
- 26. Programa informático que tiene un código de programa para realizar el método5 según la reivindicación 24 ó 25, cuando el programa informático se ejecuta en un ordenador.
- 27. Capa de extensión de flujo de bits para su introducción en un decodificador de audio, comprendiendo la capa de extensión de flujo de bits una secuencia de bloques de valores diferenciales, en la que un bloque de valores diferenciales10 comprende, por valor espectral, una diferencia entre un bloque de valores espectrales tal como se obtiene a partir de un segundo algoritmo (17) de transformación y un bloque de valores espectrales procesados posteriormente, en la que los valores espectrales procesados posteriormente se generan mediante una suma ponderada de valores espectrales de una secuencia de bloques, tal15 como se obtienen a partir de un primer algoritmo (16) de transformación, en la que para calcular un valor espectral procesado posteriormente para una banda de frecuencia y una duración de tiempo, se usan un valor espectral de la secuencia de bloques para la banda de frecuencia y la duración de tiempo y un valor espectral para otra banda de frecuencia u otra duración de tiempo, y en la que20 para la combinación se usan factores de ponderación de modo que los valores espectrales procesados posteriormente representan una aproximación a valores espectrales tal como se obtienen mediante el segundo algoritmo (17) de transformación, en la que el segundo algoritmo (17) de transformación es diferente del primer algoritmo (16) de transformación.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102006051673 | 2006-11-02 | ||
| DE102006051673A DE102006051673A1 (de) | 2006-11-02 | 2006-11-02 | Vorrichtung und Verfahren zum Nachbearbeiten von Spektralwerten und Encodierer und Decodierer für Audiosignale |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2354743T3 true ES2354743T3 (es) | 2011-03-17 |
Family
ID=38962597
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07818557T Active ES2354743T3 (es) | 2006-11-02 | 2007-09-28 | Dispositivo y método para el procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio. |
| ES10173938T Active ES2720871T3 (es) | 2006-11-02 | 2007-09-28 | Dispositivo y método para procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10173938T Active ES2720871T3 (es) | 2006-11-02 | 2007-09-28 | Dispositivo y método para procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio |
Country Status (21)
| Country | Link |
|---|---|
| US (1) | US8321207B2 (es) |
| EP (2) | EP1964111B1 (es) |
| JP (1) | JP5301451B2 (es) |
| KR (1) | KR101090541B1 (es) |
| CN (1) | CN101553870B (es) |
| AT (1) | ATE489703T1 (es) |
| AU (2) | AU2007315373B2 (es) |
| BR (1) | BRPI0716308B1 (es) |
| CA (1) | CA2668056C (es) |
| DE (2) | DE102006051673A1 (es) |
| ES (2) | ES2354743T3 (es) |
| IL (1) | IL198192A (es) |
| MX (1) | MX2009004639A (es) |
| MY (2) | MY156427A (es) |
| NO (2) | NO341615B1 (es) |
| PL (2) | PL1964111T3 (es) |
| PT (1) | PT2264699T (es) |
| RU (1) | RU2423740C2 (es) |
| TR (1) | TR201903942T4 (es) |
| TW (1) | TWI350068B (es) |
| WO (1) | WO2008052627A1 (es) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| BRPI0718738B1 (pt) | 2006-12-12 | 2023-05-16 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Codificador, decodificador e métodos para codificação e decodificação de segmentos de dados representando uma corrente de dados de domínio de tempo |
| EP2099027A1 (en) * | 2008-03-05 | 2009-09-09 | Deutsche Thomson OHG | Method and apparatus for transforming between different filter bank domains |
| PL2301020T3 (pl) * | 2008-07-11 | 2013-06-28 | Fraunhofer Ges Forschung | Urządzenie i sposób do kodowania/dekodowania sygnału audio z użyciem algorytmu przełączania aliasingu |
| JP5914527B2 (ja) | 2011-02-14 | 2016-05-11 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 過渡検出及び品質結果を使用してオーディオ信号の一部分を符号化する装置及び方法 |
| WO2012110476A1 (en) | 2011-02-14 | 2012-08-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Linear prediction based coding scheme using spectral domain noise shaping |
| TR201903388T4 (tr) | 2011-02-14 | 2019-04-22 | Fraunhofer Ges Forschung | Bir ses sinyalinin parçalarının darbe konumlarının şifrelenmesi ve çözülmesi. |
| PL2550653T3 (pl) * | 2011-02-14 | 2014-09-30 | Fraunhofer Ges Forschung | Reprezentacja sygnału informacyjnego z użyciem transformacji zakładkowej |
| EP2676268B1 (en) | 2011-02-14 | 2014-12-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for processing a decoded audio signal in a spectral domain |
| JP6185457B2 (ja) * | 2011-04-28 | 2017-08-23 | ドルビー・インターナショナル・アーベー | 効率的なコンテンツ分類及びラウドネス推定 |
| KR20150032614A (ko) * | 2012-06-04 | 2015-03-27 | 삼성전자주식회사 | 오디오 부호화방법 및 장치, 오디오 복호화방법 및 장치, 및 이를 채용하는 멀티미디어 기기 |
| PL2959481T3 (pl) | 2013-02-20 | 2017-10-31 | Fraunhofer Ges Forschung | Urządzenie i sposób generowania zakodowanego sygnału audio lub dekodowania zakodowanego sygnału audio przy użyciu części wielozakładkowej |
| EP2830058A1 (en) | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Frequency-domain audio coding supporting transform length switching |
| SG11201601298WA (en) | 2013-08-23 | 2016-03-30 | Fraunhofer Ges Forschung | Apparatus and method for processing an audio signal using an aliasing error signal |
| EP3483881B1 (en) | 2013-11-13 | 2024-10-02 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder for encoding an audio signal, audio transmission system and method for determining correction values |
| EP3998605A1 (en) * | 2014-06-10 | 2022-05-18 | MQA Limited | Digital encapsulation of audio signals |
| MY196436A (en) * | 2016-01-22 | 2023-04-11 | Fraunhofer Ges Forschung | Apparatus and Method for Encoding or Decoding a Multi-Channel Signal Using Frame Control Synchronization |
| US10448053B2 (en) * | 2016-02-15 | 2019-10-15 | Qualcomm Incorporated | Multi-pass non-separable transforms for video coding |
| US10390048B2 (en) | 2016-02-15 | 2019-08-20 | Qualcomm Incorporated | Efficient transform coding using optimized compact multi-pass transforms |
| US10349085B2 (en) | 2016-02-15 | 2019-07-09 | Qualcomm Incorporated | Efficient parameter storage for compact multi-pass transforms |
| EP3382701A1 (en) * | 2017-03-31 | 2018-10-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for post-processing an audio signal using prediction based shaping |
| US11348594B2 (en) * | 2020-06-11 | 2022-05-31 | Qualcomm Incorporated | Stream conformant bit error resilience |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0386418B1 (de) | 1989-03-06 | 1994-12-21 | Robert Bosch Gmbh | Verfahren zur Datenreduktion bei digitalen Tonsignalen und zur genäherten Rückgewinnung der digitalen Tonsignale |
| SE9700772D0 (sv) | 1997-03-03 | 1997-03-03 | Ericsson Telefon Ab L M | A high resolution post processing method for a speech decoder |
| US6131084A (en) * | 1997-03-14 | 2000-10-10 | Digital Voice Systems, Inc. | Dual subframe quantization of spectral magnitudes |
| CN100350749C (zh) * | 1998-04-09 | 2007-11-21 | 皇家菲利浦电子有限公司 | 通过传输介质发送/接收数字信息信号的发送/接收装置和方法 |
| EP1080462B1 (en) | 1998-05-27 | 2005-02-02 | Microsoft Corporation | System and method for entropy encoding quantized transform coefficients of a signal |
| JP4263412B2 (ja) * | 2002-01-29 | 2009-05-13 | 富士通株式会社 | 音声符号変換方法 |
| JP4290917B2 (ja) * | 2002-02-08 | 2009-07-08 | 株式会社エヌ・ティ・ティ・ドコモ | 復号装置、符号化装置、復号方法、及び、符号化方法 |
| US7275036B2 (en) * | 2002-04-18 | 2007-09-25 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data |
| DE10217297A1 (de) * | 2002-04-18 | 2003-11-06 | Fraunhofer Ges Forschung | Vorrichtung und Verfahren zum Codieren eines zeitdiskreten Audiosignals und Vorrichtung und Verfahren zum Decodieren von codierten Audiodaten |
| JP4238535B2 (ja) * | 2002-07-24 | 2009-03-18 | 日本電気株式会社 | 音声符号化復号方式間の符号変換方法及び装置とその記憶媒体 |
| DE10234130B3 (de) | 2002-07-26 | 2004-02-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen einer komplexen Spektraldarstellung eines zeitdiskreten Signals |
| DE10236694A1 (de) * | 2002-08-09 | 2004-02-26 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren |
| JP4292767B2 (ja) * | 2002-09-03 | 2009-07-08 | ソニー株式会社 | データレート変換方法及びデータレート変換装置 |
| US7318027B2 (en) | 2003-02-06 | 2008-01-08 | Dolby Laboratories Licensing Corporation | Conversion of synthesized spectral components for encoding and low-complexity transcoding |
| JP4849466B2 (ja) * | 2003-10-10 | 2012-01-11 | エージェンシー フォー サイエンス, テクノロジー アンド リサーチ | デジタル信号をスケーラブルビットストリームにエンコードする方法、及びスケーラブルビットストリームをデコードする方法 |
| JPWO2005106848A1 (ja) | 2004-04-30 | 2007-12-13 | 松下電器産業株式会社 | スケーラブル復号化装置および拡張レイヤ消失隠蔽方法 |
| DE102004021403A1 (de) * | 2004-04-30 | 2005-11-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Informationssignalverarbeitung durch Modifikation in der Spektral-/Modulationsspektralbereichsdarstellung |
| US8843378B2 (en) * | 2004-06-30 | 2014-09-23 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Multi-channel synthesizer and method for generating a multi-channel output signal |
| EP1883067A1 (en) * | 2006-07-24 | 2008-01-30 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream |
| EP1903559A1 (en) * | 2006-09-20 | 2008-03-26 | Deutsche Thomson-Brandt Gmbh | Method and device for transcoding audio signals |
| EP2080270A4 (en) * | 2006-10-06 | 2010-11-17 | Agency Science Tech & Res | ENCODING METHOD, DECODING METHOD, ENCODER, DECODER, AND COMPUTER PROGRAM PRODUCTS |
-
2006
- 2006-11-02 DE DE102006051673A patent/DE102006051673A1/de not_active Ceased
-
2007
- 2007-09-28 CN CN2007800403496A patent/CN101553870B/zh active Active
- 2007-09-28 TR TR2019/03942T patent/TR201903942T4/tr unknown
- 2007-09-28 MY MYPI20091684A patent/MY156427A/en unknown
- 2007-09-28 ES ES07818557T patent/ES2354743T3/es active Active
- 2007-09-28 KR KR1020097009139A patent/KR101090541B1/ko active Active
- 2007-09-28 WO PCT/EP2007/008477 patent/WO2008052627A1/en not_active Ceased
- 2007-09-28 PT PT10173938T patent/PT2264699T/pt unknown
- 2007-09-28 DE DE602007010721T patent/DE602007010721D1/de active Active
- 2007-09-28 RU RU2009117571/09A patent/RU2423740C2/ru active
- 2007-09-28 MX MX2009004639A patent/MX2009004639A/es active IP Right Grant
- 2007-09-28 MY MYPI2015002126A patent/MY181471A/en unknown
- 2007-09-28 CA CA2668056A patent/CA2668056C/en active Active
- 2007-09-28 EP EP07818557A patent/EP1964111B1/en active Active
- 2007-09-28 PL PL07818557T patent/PL1964111T3/pl unknown
- 2007-09-28 BR BRPI0716308-8A patent/BRPI0716308B1/pt active IP Right Grant
- 2007-09-28 EP EP10173938.1A patent/EP2264699B1/en active Active
- 2007-09-28 AU AU2007315373A patent/AU2007315373B2/en active Active
- 2007-09-28 US US12/446,772 patent/US8321207B2/en active Active
- 2007-09-28 JP JP2009534996A patent/JP5301451B2/ja active Active
- 2007-09-28 PL PL10173938T patent/PL2264699T3/pl unknown
- 2007-09-28 ES ES10173938T patent/ES2720871T3/es active Active
- 2007-09-28 AT AT07818557T patent/ATE489703T1/de not_active IP Right Cessation
- 2007-10-23 TW TW096139650A patent/TWI350068B/zh active
-
2009
- 2009-04-19 IL IL198192A patent/IL198192A/en active IP Right Grant
- 2009-05-29 NO NO20092125A patent/NO341615B1/no unknown
-
2011
- 2011-02-07 AU AU2011200509A patent/AU2011200509B2/en active Active
-
2017
- 2017-07-14 NO NO20171179A patent/NO343261B1/no unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2354743T3 (es) | Dispositivo y método para el procesamiento posterior de valores espectrales y codificador y decodificador para señales de audio. | |
| ES2312025T3 (es) | Esquema de codificador/descodificador de multicanal casi transparente o transparente. | |
| ES2380177T3 (es) | Banco de filtros de análisis, banco de filtros de síntesis, codificador, descodificador, mezclador y sistema de conferencia | |
| ES2604983T3 (es) | Ajuste de nivel en el dominio del tiempo para decodificación o codificación de señales de audio | |
| ES2914474T3 (es) | Método de decodificación de una señal de audio estéreo codificada usando una dirección de predicción variable | |
| ES3031957T3 (en) | Audio signal decoder, corresponding method and computer program | |
| ES2994675T3 (en) | Audio decoder, audio encoder, and related methods using joint coding of scale parameters for channels of a multi-channel audio signal | |
| CN103814406B (zh) | 用于变换编码或解码的分析或合成加权窗口的自适应 | |
| ES2992248T3 (es) | Decodificación con reducción de escala | |
| WO2015096789A1 (zh) | 一种用于音频信号的矢量量化编解码方法及装置 | |
| WO2009125588A1 (ja) | 符号化装置および符号化方法 | |
| ES2363190T3 (es) | Codificación de señales audio-digitales. | |
| HK1151882A (en) | Device and method for postprocessing spectral values and encoder and decoder for audio signals | |
| HK1120328B (en) | Device and method for postprocessing spectral values and encoder and decoder for audio signals | |
| HK1151882B (en) | Device and method for postprocessing spectral values and encoder and decoder for audio signals |