ES2995183T3 - Audio encoder and audio decoder - Google Patents
Audio encoder and audio decoder Download PDFInfo
- Publication number
- ES2995183T3 ES2995183T3 ES23165074T ES23165074T ES2995183T3 ES 2995183 T3 ES2995183 T3 ES 2995183T3 ES 23165074 T ES23165074 T ES 23165074T ES 23165074 T ES23165074 T ES 23165074T ES 2995183 T3 ES2995183 T3 ES 2995183T3
- Authority
- ES
- Spain
- Prior art keywords
- context
- coefficient
- audio
- segment
- segments
- 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
-
- 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
-
- 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
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- 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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stereo-Broadcasting Methods (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
Un codificador de audio (100) para codificar segmentos de coeficientes, los segmentos de coeficientes representan diferentes resoluciones de tiempo o frecuencia de una señal de audio muestreada, el codificador de audio (100) comprende un procesador (110) para derivar un contexto de codificación para un coeficiente codificado actualmente de un segmento actual en base a un coeficiente codificado previamente de un segmento anterior, el coeficiente codificado previamente representa una resolución de tiempo o frecuencia diferente a la del coeficiente codificado actualmente. El codificador de audio (100) comprende además un codificador de entropía (120) para codificar por entropía el coeficiente actual en base al contexto de codificación para obtener un flujo de audio codificado. (Traducción automática con Google Translate, sin valor legal)
Description
Codificador de audio y decodificador de audio
DESCRIPCIÓN
La presente invención se encuentra en el campo de la codificación de audio, especialmente en el campo de la codificación por entropía basada en contexto.
Los conceptos de codificación de audio tradicionales incluyen un esquema de codificación por entropía para reducción de redundancia. Típicamente, la codificación por entropía se aplica a coeficientes espectrales cuantificados para esquemas de codificación basados en el dominio de frecuencia o muestras del dominio del tiempo cuantificadas para esquemas de codificación basados en el dominio del tiempo. Estos esquemas de codificación por entropía típicamente hacen uso de la transmisión de una palabra de código en combinación con un índice de libro de códigos acorde, que posibilita que un decodificador busque una cierta página de libro de códigos para decodificar una palabra de información codificada que corresponde a la palabra de código transmitida en dicha página. En algunos conceptos de codificación, sin embargo, la transmisión del índice de libro de códigos puede no ser aleatoria, por ejemplo, para casos en los que el índice de libro de códigos puede determinarse a partir del contexto de un símbolo, que está, por ejemplo, codificado por entropía como se describe en Meine, Edler, “Improved Quantization and Lossless Coding for Subband Audio Coding” y Meine, “Vektorquantisierung und kontextabhángige arithmetische Codierung für MPEG-4 AAC”, Dissertation, Gottfried Wilhelm Leibnitz Universitat Hannover, Hanover 2007. Meine Nikolaus et al: “Improved quantization and lossless coding for subband audio coding” da a conocer un codificador por entropía de audio que usa un contexto de codificación.
Para codificación de audio basada en el dominio de la frecuencia o espectral, un contexto puede describir símbolos o propiedades estadísticas, como por ejemplo, coeficientes espectrales cuantificados, que son anteriores en tiempo y/o frecuencia. En algunos de los conceptos convencionales, estos símbolos pueden estar disponibles tanto en el lado del codificador como del decodificador, y basándose en estos símbolos, puede determinarse un libro de códigos o contexto de manera síncrona tanto en el lado del codificador como del decodificador.
La Figura 9 ilustrará un ejemplo de un contexto y sus dependencias. La Figura 9 muestra un plano de frecuencia de tiempo, en el que se indica un número de símbolos. El símbolo S<n,m>indica un símbolo en el tiempo n y frecuencia m. La Figura 9 ilustra que para codificar un cierto símbolo, se usa su contexto para determinar el libro de códigos asociado. Por ejemplo, para un símbolo S<n0,m0>esto sería todos los símbolos con
n < n0 y cualquier m, o con n = n0 y m < m0.
En implementaciones prácticas, un contexto no es infinito, pero está limitado. En el ejemplo representado en la Figura 9, el contexto para el símbolo Sü,3 podría ser, por ejemplo,
S<ü,2>, S<ü,1>, S<-1,5>, S<-1,4>, S<-1,3>, S<-1,2>, S<-1,1>, S<-2,5>, S<-2,4>, S<-2,3>, S<-2,2>, S<-2,1>.
Para codificación de audio basada en frecuencia, pueden usarse bancos de filtros adaptativos de señal variable en el tiempo o las denominadas transformaciones de bloque, como se describe, por ejemplo, en Edler, B., “Codierung von Audiosignalen mit überlappender Transformation und adaptiven Fensterfunktionen”, Frequenz, Edición 43, septiembre de 1989.
En otras palabras, los cambios de resolución de frecuencia/tiempo pueden tener lugar con el tiempo dentro de estos conceptos de codificación de audio. Un concepto de audio conocido es la denominada AAC (AAC = Codificación de Audio Avanzada), caso en el que se usan longitudes de dos bloques, para los que se codifican por ejemplo o 128 o 1024 coeficientes transformados que representan los componentes de frecuencia de 256 o 2048 muestras del dominio de tiempo en ventanas respectivamente.
Estos conceptos permiten la conmutación entre diferentes resoluciones, dependiendo de ciertas características de señal, como por ejemplo aparición de transitorios o tonalidad o si la señal es similar a música o similar a voz, etc. En el caso de la conmutación entre diferentes resoluciones de tiempo/frecuencia, como por ejemplo, entre diferentes tipos de bloque de AAC, el contexto no es consistente. Los conceptos convencionales o implementaciones del estado de la técnica pueden utilizar el reseteo del contexto, es decir, se conmuta básicamente a un estado, en el que no hay contexto disponible, en el que se crea un contexto desde cero. Este enfoque puede funcionar suficientemente bien, por ejemplo, en AAC, puesto que garantiza al menos dos bloques largos u ocho bloques cortos en una fila, donde puede suponerse que la conmutación tiene lugar únicamente raras veces. Sin embargo, los conceptos convencionales que resetean el contexto son en general subóptimos en términos de eficacia de codificación, puesto que cada vez que se resetea el contexto, la siguiente selección de libro de códigos está basada en valores, que están diseñados como soluciones de repliegue para contexto desconocido. En general, se seleccionan entonces libros de códigos subóptimos. La desventaja en la eficacia de codificación puede ser despreciable para casos en los que tiene lugar la conmutación únicamente raras veces. Sin embargo, para un escenario con conmutación más frecuente, esto conduce a una pérdida significativa en eficacia de codificación. Por una parte, se desea de manera más intensa una conmutación más frecuente para tasas de datos/tasas de muestreo inferiores, puesto que especialmente en este punto, se desea una adaptación óptima de la longitud de transformada a la característica de la señal. Por otra parte, la eficacia de codificación se reduce significativamente cuando se conmuta con frecuencia.
Es el objeto de la presente invención proporcionar un concepto para conmutar entre diferentes longitudes de transformada en codificación de audio que proporcione una eficacia de codificación mejorada.
El objeto se consigue mediante un codificador de audio de acuerdo con la reivindicación 1, un método para la codificación de audio de acuerdo con la reivindicación 8, un decodificador de audio de acuerdo con la reivindicación 9 y un método para la decodificación de audio de acuerdo con la reivindicación 16.
La presente invención está basada en el hallazgo de que en codificación basada en contexto tal como, por ejemplo, codificación por entropía basada en contexto, que puede aplicarse a diferentes resoluciones de tiempo/frecuencia, puede usarse un mecanismo de mapeo de contexto, en el caso de que la resolución de tiempo/frecuencia cambie con el tiempo, consiguiendo de esta manera una eficacia de codificación mejorada. Es un hallazgo de la presente invención que cuando se conmuta entre diferentes resoluciones de tiempo o frecuencia, los contextos para los coeficientes que tienen las nuevas resoluciones pueden derivarse de coeficientes que tienen las resoluciones antiguas. Es un hallazgo de la presente invención que puede usarse, por ejemplo, interpolación, extrapolación, submuestreo, muestreo descendente, muestreo ascendente, etc., para adaptación y/o derivación de contexto cuando se conmutan resoluciones de tiempo/frecuencia en codificación de audio.
Las realizaciones de la presente invención proporcionan un método de mapeo, que mapea los coeficientes de frecuencia o espectrales de un contexto almacenado, que hace referencia a una resolución antigua, a la resolución de frecuencia de un contexto actual o una trama actual. En otras palabras, la información de contexto anterior puede usarse para la determinación del libro de códigos, es decir para derivar nueva información de contexto. Las realizaciones pueden posibilitar con ello una conmutación más frecuente de longitud de bloque y por lo tanto una mejor adaptación a características de señal sin perder eficacia de codificación.
Las realizaciones de la presente invención se detallarán usando las figuras adjuntas, en las que
La Figura 1 muestra una realización de un codificador de audio;
La Figura 2 muestra una realización de un decodificador de audio;
La Figura 3 muestra una realización para un muestreo ascendente de contexto;
La Figura 4 muestra una realización para un muestreo descendente de contexto;
La Figura 5 ilustra resoluciones de tiempo y frecuencia de conmutación de audio;
La Figura 6 ilustra una implementación de una realización;
La Figura 7a muestra un diagrama de flujo de una realización de un método para codificación;
La Figura 7b ilustra el procedimiento de actualización de contexto general de una realización;
La Figura 7c ilustra el procedimiento de actualización de contexto de una realización para cambios de resolución; La Figura 8 muestra un diagrama de flujo de una realización de un método para decodificación; y
La Figura 9 muestra un esquema de codificación de tiempo frecuencia del estado de la técnica.
La Figura 1 muestra una realización de un codificador de audio 100 para codificar segmentos de coeficientes, representando los segmentos de coeficientes diferentes resoluciones de tiempo o frecuencia de una señal de audio muestreada. El codificador de audio 100 comprende un procesador 110 para derivar un contexto de codificación para un coeficiente actualmente codificado de un segmento actual basándose en un coeficiente previamente codificado de un segmento anterior, representando el coeficiente previamente codificado una resolución de tiempo o frecuencia diferente de la del coeficiente codificado actualmente. La realización del codificador de audio comprende adicionalmente un codificador por entropía 120 para codificación por entropía del coeficiente actual basándose en el contexto de codificación para obtener un flujo de audio codificado.
En las realizaciones los coeficientes pueden corresponder a muestras de audio, muestras de audio cuantificadas, coeficientes espectrales o de frecuencia, coeficientes escalados, coeficientes transformados o filtrados, etc., o cualquier combinación de los mismos.
En las realizaciones el codificador de audio 100 puede comprender adicionalmente un medio para proporcionar los segmentos de coeficientes de un flujo de audio, formando los coeficientes una representación espectral de una señal de audio a una resolución espectral que varía entre los coeficientes. Los medios para proporcionar los segmentos pueden adaptarse para determinar los segmentos basándose en diferentes longitudes de ventana de dominio de tiempo o diferentes tramas de audio, es decir, tramas de audio que tienen diferentes longitudes o diferentes números de coeficientes por ancho de banda, es decir una resolución espectral o de frecuencia diferente. Los medios para proporcionar pueden adaptarse para determinar segmentos de 1024 y 128 coeficientes de tiempo, frecuencia o espectrales.
El procesador 110 puede adaptarse en las realizaciones para derivar el contexto de codificación basándose en las representaciones de dominio de la frecuencia o espectral de los coeficientes o segmentos actuales y anteriores. En otras palabras, en las realizaciones los segmentos sucesivos pueden representarse en diferentes dominios de tiempo y/o frecuencia o espectrales. El procesador 110 puede adaptarse para derivar el contexto de codificación por banda de frecuencia o espectral del segmento actual, por ejemplo basándose en coeficientes espectrales vecinos de segmentos anteriores y/o el segmento actual. En las realizaciones, los segmentos pueden determinarse inicialmente en el dominio del tiempo, por ejemplo, poniendo en ventanas un flujo de audio de entrada. Basándose en estos segmentos o coeficientes de dominio de tiempo, pueden determinarse segmentos o coeficientes del dominio de la frecuencia o espectral por medio de transformación. Los segmentos pueden representarse en el dominio de la frecuencia o espectral en términos de energía, una amplitud y fase, una amplitud y signo, etc., por banda de frecuencia o espectral, es decir, los segmentos pueden subdividirse en diferentes bandas de frecuencia o espectrales. El procesador 110 puede a continuación derivar contextos de codificación por banda de frecuencia o espectral en algunas realizaciones.
El procesador 110 y el codificador por entropía 120 pueden configurarse para operar basándose en un muestreo descendente de coeficientes de frecuencia o espectrales de un segmento anterior cuando un segmento anterior que pertenece al contexto comprende una resolución espectral o de frecuencia más precisa que la del segmento actual. En las realizaciones el procesador 110 y el codificador por entropía 120 pueden configurarse para operar basándose en un muestreo ascendente de los coeficientes de frecuencia o espectrales de un segmento anterior, cuando un segmento anterior del contexto comprende una resolución espectral o de frecuencia más basta que la del segmento actual.
Las realizaciones pueden proporcionar un método para codificar segmentos de coeficientes que representan diferentes resoluciones de tiempo o frecuencia de una señal de audio muestreada. El método puede comprender una etapa de derivación de un contexto de codificación para un coeficiente codificado actualmente o actual de un segmento actual basándose en un coeficiente codificado previamente o anterior de un segmento anterior y opcionalmente también basándose en el coeficiente actualmente codificado o actual, en el que el coeficiente codificado previamente o anterior representa una resolución de tiempo o frecuencia diferente de la del coeficiente actualmente codificado o actual. El método puede comprender adicionalmente una etapa de codificación por entropía del coeficiente actual basándose en el contexto de codificación para obtener un flujo de audio codificado.
En correspondencia, las realizaciones pueden comprender un decodificador de audio 200 del cual se representa una realización en la Figura 2. El decodificador de audio 200 está adaptado para decodificar un flujo de audio codificado para obtener segmentos de coeficientes que representan diferentes resoluciones de tiempo o frecuencia de una señal de audio muestreada, el decodificador de audio 200 comprende un procesador 210 para derivar un contexto de codificación para un coeficiente decodificado actualmente o actual basándose en un coeficiente decodificado previamente o anterior, representando el coeficiente decodificado previamente o anterior una resolución de tiempo o frecuencia diferente que la del coeficiente actualmente decodificado. Adicionalmente, el decodificador de audio 200 comprende un decodificador por entropía 220 para la decodificación por entropía del coeficiente actual basándose en el contexto de codificación y el flujo de audio codificado.
En las realizaciones, el decodificador de audio 200 puede comprender un decodificador por entropía 220, que está adaptado para determinar los segmentos de coeficientes decodificados basándose en diferentes longitudes de ventana de dominio de tiempo o diferentes longitudes de trama de audio. El decodificador por entropía 220 puede adaptarse para determinar segmentos de, por ejemplo, 1024 y 128, muestras de domino de tiempo o frecuencia o coeficientes espectrales. En correspondencia, el procesador 210 puede adaptarse para derivar el contexto de codificación basándose en una representación del domino de la frecuencia o espectral de coeficientes de segmentos anteriores y/o el segmento actual.
En las realizaciones, el procesador 210 puede adaptarse para derivar el contexto de codificación por banda de frecuencia o espectral del segmento actual, por ejemplo basándose en coeficientes espectrales vecinos del segmento anterior o segmentos y opcionalmente a partir del segmento actual. En otras palabras, los segmentos pueden procesarse en el dominio de la frecuencia o espectral, que puede llevarse a cabo por banda de frecuencia o espectral. En correspondencia, el procesador 210 puede a continuación adaptarse para derivar un contexto específico de banda de frecuencia o espectral.
El decodificador por entropía 200 puede adaptarse para decodificación por entropía del coeficiente actual basándose en una regla de codificación por entropía o de longitud variable.
El procesador 210 puede adaptarse para derivar el contexto de codificación basándose en un muestreo descendente de coeficientes de frecuencia o espectrales de un segmento anterior cuando el segmento anterior comprende más coeficientes por ancho de banda (es decir una resolución espectral o de frecuencia más precisa) que la del segmento actual. En realizaciones adicionales, el procesador 210 y el codificador por entropía 220 pueden configurarse para operar basándose en un muestreo ascendente de coeficientes espectrales de un segmento anterior, cuando el segmento anterior comprende menos coeficientes por ancho de banda (es decir una resolución espectral o de frecuencia más basta) que la del segmento actual.
En consecuencia, las realizaciones pueden proporcionar un método para decodificar un flujo de audio codificado para obtener segmentos de coeficientes que representan muestras de audio decodificadas. El método para decodificar puede comprender una etapa de derivación de un contexto de codificación para un coeficiente decodificado actualmente o actual de un segmento actual basándose en un coeficiente decodificado previamente o anterior de un segmento anterior, representando el coeficiente decodificado previamente o anterior una resolución de tiempo o frecuencia diferente que la del coeficiente actualmente decodificado. Adicionalmente, el método puede comprender una etapa de decodificación por entropía el coeficiente actual basándose en el contexto de codificación y el flujo de audio codificado. Opcionalmente, el método puede comprender una etapa de determinación de los segmentos de coeficientes de audio codificados desde el flujo de audio codificado, representando los segmentos diferentes números de coeficientes de audio.
La Figura 3 ilustra cómo un procesador 110; 210 puede derivar un contexto de codificación para un segmento actual de M<c,nuevo>coeficientes basándose en un segmento anterior de M<c,antiguo>coeficientes, en el que el segmento anterior comprende un número diferente de coeficientes de audio que el del segmento actual. En la realización representada en la Figura 3, el número de coeficientes del segmento M determina la resolución de frecuencia o espectral del segmento. La realización puede comprender un método de mapeo, que mapea los M<c,antiguo>coeficientes de un segmento anterior a M<c,nuevo>coeficientes que tienen la misma resolución de frecuencia o espectral del contexto que el segmento actual. La Figura 3 muestra dos conjuntos de coeficientes en dos segmentos, es decir el segmento anterior original 310 que representa M<c,antiguo>coeficientes, S<n,0>, S<n,1>, S<n,2>, etc., y en correspondencia, el segmento anterior mapeado 320, que tiene una resolución superior, es decir, M<c,nuevo>es mayor que M<c.antiguo>, que representa M<c,nuevo>coeficientes, S<n,0>, S<n,1>, S<n,2>, S<n,3>, etc.
En general, pueden distinguirse dos realizaciones, dependiendo de si la resolución del contexto del segmento actual es superior o inferior que la resolución del contexto del segmento anterior. La Figura 3 ilustra una realización, en la que la resolución del segmento anterior de M<c.antiguo>coeficientes es inferior que la resolución del segmento actual de M<c,nuevo>coeficientes. La Figura 3 muestra los coeficientes del segmento anterior 310 y los símbolos para el segmento anterior mapeado 320. A partir de la Figura 3 puede observarse que la resolución del segmento actual de M<c,nuevo>coeficientes es superior que la resolución del segmento anterior 310 que tiene únicamente M<c,antiguo>coeficientes. En una realización el segmento anterior 310 se muestrea ascendentemente a un segmento 320 de M<c,nuevo>coeficientes para hacer coincidir la resolución de frecuencia o espectral del segmento actual. Esto puede incluir puro muestreo ascendente con mecanismos de duplicación de símbolo y decimación por ejemplo, repetir cada valor M<c,nuevo>veces antes de decimar el segmento muestreado ascendentemente resultante manteniendo únicamente 1 coeficiente cada M<c,antiguo>. Otros mecanismos de interpolación o extrapolación pueden usarse también.
En las realizaciones, el mapeo puede llevarse a cabo para todos los segmentos anteriores 310, que son necesarios para determinar los contextos para el segmento actual, por ejemplo en el tiempo n, en otras palabras, puede tenerse en cuenta múltiples segmentos anteriores, es decir, segmentos anteriores en los tiempos n-1, n-2, etc. En general, las realizaciones pueden tener en cuenta múltiples intervalos de tiempo o segmentos anteriores, el número de intervalos de tiempo necesarios para definir un contexto completo puede ser diferente para diferentes implementaciones o realizaciones.
La Figura 4 ilustra otra realización, en la que los coeficientes de un segmento anterior 410 se muestrean descendentemente a un segmento 420 usado para calcular los contextos del segmento actual, es decir, en el que el número de coeficientes M<c,antiguo>del segmento anterior 410 es superior al número de coeficientes M<c,nuevo>del segmento actual. La Figura 4 usa una ilustración similar que la Figura 3, por consiguiente se muestran múltiples coeficientes en cada segmento 410 y 420. Como se ilustra en la Figura 4, M<c,antiguo>es mayor que M<c,nuevo>. Por lo tanto, los M<c,antiguo>coeficientes se sub-muestrean, para adaptar la resolución de frecuencia o espectral del segmento actual de M<c,nuevo>coeficientes, es decir en las realizaciones los segmentos anteriores que tienen una resolución superior pueden sub-muestrearse para adaptar la resolución del segmento actual que tiene una resolución inferior. En las realizaciones esto puede incluir muestreo descendente puro con mecanismos de duplicación y decimación de coeficientes como por ejemplo, repetir cada valor M<c,nuevo>veces antes de decimar el segmento muestreado ascendentemente resultante manteniendo únicamente 1 coeficiente cada M<c,antiguo>. En otras realizaciones, pueden tenerse en cuenta operaciones de filtro, como por ejemplo promedio de dos o múltiples valores adyacentes.
La Figura 5 ilustra otra realización, en la que se lleva a cabo conmutación entre diferentes resoluciones. La Figura 5 muestra un plano de tiempo/frecuencia, en el que se muestran tres segmentos posteriores de coeficientes de audio, en concreto 510, 520 y 530. Cada uno de los segmentos 510, 520 y 530 corresponde a un único conjunto de coeficientes. En la realización ilustrada en la Figura 5, se supone que el segundo segmento 520 es el doble de largo que el primer y tercer segmentos 510 y 530. Esto puede conseguirse usando diferentes ventanas cuando se segmenta en el dominio del tiempo, como se hace por ejemplo en AAC. En la realización ilustrada en la Figura 5, se supone que la tasa de muestreo permanece constante, en otras palabras, el segundo segmento más largo 520 comprende el doble de coeficientes de audio por ancho de banda que el primer o tercer segmento 510 o 530.
La Figura 5 muestra que en este caso la resolución en el dominio de la frecuencia o espectral escala con la extensión del segmento en el dominio del tiempo. En otras palabras, cuanto más corta es la ventana en el dominio del tiempo, menor es la resolución en el dominio de la frecuencia o espectral. Cuando se evalúan contextos para codificar las muestras en el dominio de la frecuencia o espectral, la Figura 5 muestra que la codificación necesita tener una versión de resolución superior del segmento 510 cuando se codifica el segundo segmento 520 como en el ejemplo considerado, tiene que derivarse una resolución doble del segmento 510. En otras realizaciones, especialmente cuando se usan otras transformaciones de tiempo-frecuencia o bancos de filtros, pueden resultar otras relaciones entre las resoluciones del dominio del tiempo y dominio de frecuencia.
De acuerdo con una realización, los coeficientes codificados durante el primer segmento 510 proporcionan una base para determinar el contexto para el segundo segmento 520, por ejemplo, por medio de un muestreo ascendente intermedio. En otras palabras, el contenido de contexto que proviene desde el primer segmento 510 puede obtenerse mediante un muestreo ascendente del primer segmento 510, por ejemplo, en términos de interpolación o extrapolación, para derivar el contexto para el segundo segmento 520, que tiene una resolución superior.
Como se muestra en la Figura 5, cuando se conmuta desde el segundo segmento 520 al tercer segmento 530, el elemento constituyente de contexto tiene que cambiar también, a medida que la resolución se ha reducido ahora. De acuerdo con una realización, los coeficientes codificados durante el segundo segmento 520 pueden usarse para derivar el contexto para el tercer segmento, por medio de un muestreo descendente intermedio. Esto puede llevarse a cabo, por ejemplo, en términos de promedio o simplemente usando únicamente cada segundo valor y otras medidas para muestreo descendente.
Las realizaciones consiguen la ventaja de una eficacia de codificación aumentada, teniendo en cuenta el contexto pasado derivado de segmentos anteriores incluso cuando tienen lugar cambios en la resolución o longitud de ventana. Los elementos de contexto constituyentes pueden adaptarse a nuevas resoluciones, en términos de muestreo ascendente o descendente, por ejemplo, con inter- o extrapolación, filtración o promedio, etc.
A continuación se presentará una realización más específica en términos de codificación sin ruido espectral. La codificación sin ruido espectral puede usarse para reducir adicionalmente la redundancia de un espectro cuantificado en codificación de audio. La codificación sin ruido espectral puede estar basada en una codificación aritmética en conjunto con adaptación de contexto de manera dinámica.
La codificación sin ruido puede estar basada en valores espectrales cuantificados y puede usar las tablas de frecuencia acumulativas dependientes del contexto derivadas desde, por ejemplo, cuatro tuplas vecinas previamente decodificadas. La Figura 6 ilustra otra realización. La Figura 6 muestra un plano de tiempo frecuencia, en el que a lo largo del eje del tiempo se indexan tres intervalos de tiempo, n, n-1 y n-2. Adicionalmente, la Figura 6 ilustra cuatro bandas de frecuencia o espectrales que se etiquetan por m-2, m-1, m y m+1. La Figura 6 muestra dentro de cada intervalo de tiempo-frecuencia recuadros, que representan tuplas de muestras a codificarse o decodificarse. Se ilustran tres diferentes tipos de tuplas en la Figura 6, en la que los recuadros que tienen un borde discontinuo de líneas o de puntos indican tuplas restantes a codificarse o decodificarse, recuadros blancos que tienen un borde continuo indican tuplas previamente codificadas o decodificadas y recuadros grises con un borde continuo indican tuplas previamente codificadas/decodificadas, que se usan para determinar el contexto para la tupla actual a codificarse o decodificarse.
Obsérvese que los segmentos anteriores y actuales referenciados en las realizaciones anteriormente descritas pueden corresponder a una tupla en la presente realización, en otras palabras, los segmentos pueden procesarse a nivel de bandas en el dominio de la frecuencia o espectral. Como se ilustra en la Figura 6, las tuplas o segmentos en las cercanías de una tupla actual (es decir en el dominio de tiempo y de la frecuencia o espectral) pueden tenerse en cuenta para derivar un contexto. Las tablas de frecuencia acumulativa pueden a continuación usarse por el codificador aritmético para generar un código binario de longitud variable. El codificador aritmético puede producir un código binario para un conjunto dado de símbolos y sus respectivas probabilidades. El código binario puede generare mapeando un intervalo de probabilidad, donde radica el conjunto de símbolos, a una palabra de código. El codificador aritmético puede corresponder al codificador por entropía 120, respectivamente el decodificador por entropía 220 en las realizaciones anteriormente descritas.
En la presente realización la codificación aritmética basada en contexto puede llevarse a cabo basándose en 4-tuplas (es decir en cuatro índices de coeficientes espectrales), que también se etiquetan q(n,m), que representan los coeficientes espectrales después de la cuantificación, que son vecinos en el dominio de la frecuencia o espectral y que se codifican por entropía en una etapa. De acuerdo con la descripción anterior, la codificación puede llevarse a cabo basándose en el contexto de codificación. Como se indica en la Figura 6, adicionalmente a la 4-tupla, que se codifica (es decir el segmento actual) se tienen en cuenta 4-tuplas previamente codificadas para derivar el contexto. Estas cuatro 4-tuplas determinan el contexto y son anteriores en el dominio de la frecuencia y/o anteriores en el del tiempo.
La Figura 7a muestra un diagrama de flujo de un codificador aritmético dependiente del contexto de USAC (USAC = Codificador de Voz y Audio Universal) para el esquema de codificación de coeficientes espectrales. El proceso de codificación depende de la 4-tupla actual más el contexto, donde el contexto se usa para seleccionar la distribución de probabilidad del codificador aritmético y para predecir la amplitud de los coeficientes espectrales. En la Figura 7a el recuadro 705 representa determinación de contexto, que es basándose en t0, t1, t2 y t3 que corresponde a q(n-1, m), q(n,m-1), q (n-1 ,m-1) y q (n-1 ,m+1), que son los recuadros grises con bordes continuos en la Figura 6.
En general, en las realizaciones el codificador por entropía puede adaptarse para codificar el segmento actual en unidades de una 4-tupla de coeficientes espectrales y para predecir un intervalo de amplitud de la 4-tupla basándose en el contexto de codificación.
En la presente realización el esquema de codificación comprende varias etapas. En primer lugar, la palabra de código literal se codifica usando un codificador aritmético y una distribución de probabilidad específica. La palabra de código representa cuatro coeficientes espectrales vecinos (a,b,c,d), sin embargo, cada uno de a, b, c, d está limitado en el intervalo:
-5 < a,b,c,d < 4.
En general, en las realizaciones el codificador por entropía 120 puede adaptarse para dividir la 4-tupla en un factor predeterminado tan a menudo como sea necesario para adaptarse a un resultado de la división en el intervalo previsto o en un intervalo predeterminado y para codificar un número de divisiones necesarias, un resto de división y el resultado de la división cuando la 4-tupla no radica en el intervalo predeterminado, y para codificar un resto de división y el resultado de la división de otra manera.
A continuación, si el término (a,b,c,d), es decir cualquier coeficiente a, b, c, d, supera el intervalo dado en esta realización, esto puede considerarse en general dividiendo (a,b,c,d) tan a menudo por un factor (por ejemplo 2 o 4) como sea necesario, para ajustar la palabra de código resultante en el intervalo dado. La división por un factor de 2 corresponde a un desplazamiento binario al lado a la derecha, es decir (a,b,c,d)>> 1. Esta disminución se hace por una representación de número entero, es decir la información puede perderse. Los bits menos significativos, que pueden perderse por el desplazamiento a la derecha, se almacenan y más tarde se codifican usando el codificador aritmético y una distribución de probabilidad uniforme. El proceso de desplazamiento a la derecha se lleva a cabo por todos los cuatro coeficientes espectrales (a,b,c,d).
En realizaciones generales, el codificador por entropía 120 puede adaptarse para codificar el resultado de la división o la 4-tupla usando un índice de grupo ng, el índice de grupo ng que hace referencia a un grupo de una o más palabras de código para las que una distribución de probabilidad está basada en el contexto de codificación, y un índice de elemento ne en el caso de que el grupo comprenda más de una palabra de código, el índice de elemento ne hace referencia a una palabra de código dentro del grupo y el índice de elemento puede suponerse que está distribuido uniformemente, y para codificar el número de divisiones por un número de símbolos de escape, siendo un símbolo de escape un índice de grupo específico ng únicamente usado para indicar una división y para codificar los restos de las divisiones basándose en una distribución uniforme usando una regla de codificación aritmética. El codificador por entropía 120 puede adaptarse para codificar una secuencia de símbolos en el flujo de audio codificado usando un alfabeto de símbolos que comprende el símbolo de escape, y símbolos de grupo que corresponden a un conjunto de índices de grupo disponibles, un alfabeto de símbolos que comprende los correspondientes índices de elemento, y un alfabeto de símbolos que comprende los diferentes valores de los restos.
En la realización de la Figura 7a, la distribución de probabilidad para codificar la palabra de código literal y también una estimación del número de etapas de intervalo-reducción puede derivarse a partir del contexto. Por ejemplo, todas las palabras de código, en un total 84 = 4096, abarcan en total 544 grupos, que consisten en uno o más elementos. La palabra de código puede representarse en el flujo de bits como el índice de grupo ng y el elemento de grupo ne. Ambos valores pueden codificarse usando el codificador aritmético, usando ciertas distribuciones de probabilidad. En una realización la distribución de probabilidad para ng puede derivarse a partir del contexto, mientras que la distribución de probabilidad para ne puede suponerse que es uniforme. Una combinación de ng y ne puede identificar de manera inequívoca una palabra de código. El resto de la división, es decir los planos de bits desplazados, puede suponerse que están distribuidos uniformemente también.
En la Figura 7a, en la etapa 710, se proporciona la 4-tupla q(n,m), que es (a,b,c,d) o el segmento actual y se inicia un parámetro lev estableciéndolo a 0.
En la etapa 715 desde el contexto, se estima el intervalo de (a,b,c,d). De acuerdo con esta estimación, (a,b,c,d) puede reducirse por lev0 niveles, es decir dividirse por un factor de 2lev0. Los lev0 planos de bits menos significativos se almacenan para uso posterior en la etapa 750.
En la etapa 720 se comprueba si (a,b,c,d) supera el intervalo dado y en caso afirmativo, el intervalo de (a,b,c,d) se reduce en un factor de 4 en la etapa 725. En otras palabras, en la etapa 725 (a,b,c,d) se desplazan en 2 a la derecha y los planos de bits eliminados se almacenan para uso posterior en la etapa 750.
Para indicar esta etapa de reducción, ng se establece a 544 en la etapa 730, es decir ng = 544 sirve como una palabra de código de escape. Esta palabra de código se escribe a continuación en el flujo de bits en la etapa 755, donde para derivar la palabra de código en la etapa 730 se usa un codificador aritmético con una distribución de probabilidad derivada del contexto. En caso de que esta etapa de reducción se aplicara la primera vez, es decir si lev==lev0, el contexto se adapta ligeramente. En caso de que la etapa de reducción se aplique más de una vez, el contexto se descarta y se usa una distribución por defecto más adelante. El proceso a continuación continúa con la etapa 720.
Si en la etapa 720 se detecta una coincidencia para el intervalo, más específicamente si (a,b,c,d) coincide con la condición de intervalo, (a,b,c,d) se mapea a un grupo ng, y, si es aplicable, el índice de elemento de grupo ne. Este mapeo es de manera inequívoca, es decir (a,b,c,d) puede derivarse a partir de ng y ne. El índice de grupo ng se codifica a continuación por el codificador aritmético, usando una distribución de probabilidad llegada para el contexto adaptado/descartado en la etapa 735. El índice de grupo ng se inserta a continuación en el flujo de bits en la etapa 755. En una siguiente etapa 740, se comprueba si el número de elementos en el grupo es mayor que 1. Si es necesario, es decir si el grupo indexado por ng consiste en más de un elemento, el índice de elemento de grupo ne se codifica por el codificador aritmético en la etapa 745, suponiendo una distribución de probabilidad uniforme en la presente realización.
Siguiendo la etapa 745, el índice de grupo de elemento ne se inserta en el flujo de bits en la etapa 755. Finalmente, en la etapa 750, todos los planos de bits almacenados se codifican usando el codificador aritmético, suponiendo una distribución de probabilidad uniforme. Los planos de bits almacenados codificados se insertan a continuación en el flujo de bits en la etapa 755.
En las realizaciones el decodificador por entropía 220 puede adaptarse para decodificar un índice de grupo ng a partir del flujo de audio codificado basándose en una distribución de probabilidad derivada del contexto de codificación, en la que el índice de grupo ng representa un grupo de una o más palabras de código, y para, basándose en una distribución de probabilidad uniforme, decodificar un índice de elemento ne a partir del flujo de audio codificado si el índice de grupo ng indica un grupo que comprende más de una palabra de código, y para derivar una 4-tupla de coeficientes espectrales del segmento actual basándose en el índice de grupo ng y el índice de elemento ne, obteniendo de esta manera la representación de dominio espectral en tuplas de coeficientes espectrales.
En las realizaciones el decodificador por entropía 220 puede adaptarse para decodificar una secuencia de símbolos desde el flujo de audio codificado basándose en la distribución de probabilidad derivada desde el contexto de codificación usando un alfabeto de símbolo que comprende un símbolo de escape y símbolos de grupo que corresponden a un conjunto de índices de grupo disponibles ng, para derivar una 4-tupla preliminar de coeficientes espectrales basándose en un índice de grupo disponible ng al que corresponde un símbolo de grupo de la secuencia de símbolos, y basándose en el índice de elemento ne, y para multiplicar la 4-tupla preliminar con un factor que depende de un número de símbolos de escape en la secuencia de símbolos para obtener la tupla de coeficientes espectrales.
El decodificador por entropía 220 puede adaptarse adicionalmente para decodificar un resto del flujo de audio codificado basándose en una distribución de probabilidad uniforme usando una regla de codificación aritmética y para añadir el resto a la 4-tupla preliminar multiplicada para obtener la 4-tupla de coeficientes espectrales.
El decodificador por entropía 220 puede adaptarse para multiplicar la 4-tupla por un factor predeterminado tan a menudo como un símbolo de escape se decodifica desde el flujo de audio codificado, siendo un símbolo de escape un índice de grupo específico ng únicamente usado para indicar una multiplicación, y para decodificar un resto del flujo de audio codificado basándose en una distribución de probabilidad uniforme usando una regla de codificación aritmética, el decodificador por entropía 220 puede adaptarse adicionalmente para añadir el resto a la 4-tupla multiplicada para obtener el segmento actual.
A continuación se describirá una realización de un esquema de decodificación de codificador aritmético dependiente del contexto USAC. Correspondiente a la realización anterior del esquema de codificación, se consideran 4-tuplas que corresponden a coeficientes espectrales cuantificados, que se codifican de manera sin ruido. Adicionalmente, se supone que las 4-tuplas se transmiten empezando desde la frecuencia o coeficiente espectral más inferior y progresando a la frecuencia o coeficiente espectral más superior. Los coeficientes pueden corresponder, por ejemplo, a coeficientes de AAC, que se almacenan en una serie, y el orden de transmisión de las palabras de codificación sin ruido se supone que es de manera que cuando se decodifican en el orden recibido y se almacenan en la serie, bin es el índice de incremento más rápido y g es el índice de incremento más lento. En una palabra de código, el orden de decodificación es a,b,c,d.
La Figura 7b ilustra el procedimiento de actualización de contexto general de una realización. Los detalles sobre la adaptación de contexto de acuerdo con un mecanismo de predicción de profundidad de bit se considerarán en la presente realización. La Figura 7b muestra un plano 760 que presenta el posible intervalo de una 4-tupla (a,b,c,d) en términos de planos de bits. La profundidad de bits, es decir el número de planos de bits necesarios para representar una 4-tupla, puede predecirse por el contexto de la 4-tupla actual por medio del cálculo de la variable denominada lev0, que también se indica en la Figura 7b. La 4-tupla se divide a continuación por 2lev0, es decir se eliminan lev=lev0 bit planos y se almacenan para uso posterior de acuerdo con la etapa anteriormente descrita 715.
Si la 4-tupla está en el intervalo -5<a,b,c,d<4, la profundidad de bits prevista lev0 se predijo correctamente o se sobreestimó. La 4-tupla puede a continuación decodificarse por el índice de grupo ng, el índice de elemento ne y los lev planos de bits restantes, en relación con la descripción anterior. La codificación de la 4-tupla actual se finaliza a continuación. La codificación del índice de elemento ne se indica en la Figura 7b por la distribución de probabilidad uniforme 762, que se usará a continuación siempre para codificar índices de elemento, donde en la Figura 7b el parámetro r representa el resto de la 4-tupla después de la división y p(r) representa la función de densidad de probabilidad uniforme correspondiente.
Si la 4-tupla no está en el intervalo -5<a,b,c,d<4 la predicción basada en el contexto de codificación 764 es demasiado baja, se codifica 766 un símbolo de escape (ng=544) y la 4-tupla se divide por 4 y lev se incrementa por 2, de acuerdo con la etapa 730 en la Figura 7a. El contexto está adaptado como sigue. Si lev==lev0+2 el contexto está ligeramente adaptado, que corresponde a 768 en la Figura 7b. Puede establecerse una bandera en la representación de contexto, t, y se usará a continuación un nuevo modelo de distribución de probabilidad para codificar los símbolos futuros ng.
Si lev>lev0+2 se codifica otro símbolo de escape de acuerdo con la etapa 770 en la Figura 7b el contexto se resetea completamente, consúltese 772, descartado como en la etapa 730 en la Figura 7a, respectivamente. No se usa adaptación de contexto adicional puesto que se considera que no es relevante para la codificación de 4-tupla actual. El modelo de probabilidad por defecto, el usado cuando no hay disponible contexto, se usa a continuación para los futuros ng símbolos, que se indica por las etapas 774 y 776 en la Figura 7b. El proceso se repite a continuación para las otras tuplas.
Para resumir, la adaptación de contexto es un mecanismo para reducir el significado de contexto en la codificación adaptativa de contexto. La adaptación de contexto puede activarse cuando el lev0 previsto y el lev real no coinciden. Se detecta fácilmente por el número de símbolos de escape codificados (ng=544), consúltese 766 y 770 en la Figura 7b, y puede llevarse a cabo por lo tanto en el decodificador de una manera similar también.
La adaptación de contexto puede realizarse activando una bandera en la representación de estado de contexto t. El valor t se calcula por la función get_state(), como lev0, usando el contexto derivado de la trama o segmento anterior y/o actual de la 4-tupla actual, que se almacena en una tabla q[][]. El estado del contexto puede representarse, por ejemplo, por 24 bits. Existen 1905800 posibles estados en una realización. Estos estados pueden representarse por únicamente 21 bits. Los bits de orden 23 y 24 de t se reservan para adaptar el estado de contexto. De acuerdo con los valores de los bits de orden 23 y 24, get_pk() emitirá diferentes modelos de distribución de probabilidad. En una realización, el bit de orden 23 de t puede establecerse a uno cuando la 4-tupla se divide por 4 después de dividirse previamente por lev0, es decir lev==lev0+2.
En consecuencia, el mapeo entre el estado de contexto t y el modelo de distribución de probabilidad pki, es diferente para lev==lev0+2 que para lev==lev0. El mapeo entre el estado de contexto t y el modelo pki se pre-define durante una fase de entrenamiento realizando optimizaciones en las estadísticas globales de la secuencia de entrenamiento. Cuando lev>lev0+2, el contexto y t pueden establecerse a cero. Get_pk() emite a continuación el modelo de distribución de probabilidad por defecto pki, que corresponde a t=0.
A continuación se describirán los detalles de un mapeo de contexto en una realización. El mapeo de contexto es la primera operación realizada en codificación adaptativa de contexto después del reseteo eventual del contexto en la presente realización. Se hace en dos etapas.
En primer lugar, antes de la codificación, la tabla de contexto qs[] de tamaño previous_lg/4, grabada en la trama anterior, se mapea en una tabla de contexto q[0][] de tamaño lg/4 que corresponde al tamaño de la trama actual. El mapeo se realiza en la función arith_map_context, que se ejemplifica por el siguiente pseudo-código:
/*variable de entrada*/
lg/4 /*número de 4-tuplas*/
arith_map_context()
{
v=w=0
if(core_mode==1){
q[0] [v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for (j=0; j<lg/4; j++) {
k = (int) ((float)) ((j)*ratio);
q[0] [v++] = qs[w+k];
}
if(core_mode==0) {
q[0][lg/4]=qs[previous_lg/4];
}
q[0] [lg/4 1]=qs[previous_lg/4 1];
previous_lg=lg;
}
Como puede observarse a partir del pseudo-código, el mapeo puede no ser exactamente el mismo para todas las estrategias de codificación. En la presente realización, el mapeo se diferencia cuando se usa (core_mode==0) AAC (Codificación de Audio Avanzada) para un coeficiente de cuando se usa (core_mode==1) TCX (Codificación basada en Transformada). Una de las diferencias proviene de cómo se manejan los límites de las tablas. En AAC, el mapeo puede iniciarse desde el índice 0 (primer valor en la tabla), mientras que para TCX puede iniciarse desde el índice 1 (segundo valor en la tabla) conociendo que el primer valor siempre se establece a ‘desconocido’ (estado específico usado para resetear el contexto). La relación de previous_lg sobre lg determinará el orden del muestreo ascendente (ratio<1) o el muestreo descendente (ratio>1), que se realizará en la presente realización. La Figura 7c ilustra el caso de TCX cuando se convierte desde una tabla de contexto grabada de tamaño 1024/4, consúltese el lado a la izquierda 780 de la Figura 7c, a un tamaño de 512/4, consúltese el lado a la derecha 782 de la Figura 7c. Puede observarse, que mientras para la tabla de contexto actual 782 se usan incrementos graduales de 1, para la tabla de contexto grabada 780 se usan incrementos graduales de la relación anteriormente descrita.
La Figura 7c ilustra el procedimiento de actualización de contexto de una realización para cambios de resolución. Una vez que se realiza el mapeo, se realiza la codificación adaptativa de contexto. Al final de la codificación, los elementos de la trama actual se graban en la tabla qs[] para la siguiente trama. Puede realizarse en arith_update_context(), que se ejemplifica por el siguiente pseudo-código:
/*variables de entrada*/
a,b,c,d /* valor de la 4-tupla decodificada*/
i /*el índice de la 4-tupla para decodificar en el vector*/
lg/4 /*número de 4-tuplas*/
arith_update_context()
{
}
}
En la presente realización, la grabación se hace de manera diferente de acuerdo con el codificador principal (AAC o TCX). En TCX el contexto siempre se graba en una tabla qs [] de 1024/4 valores. Este mapeo adicional puede hacerse debido a la decisión de bucle cerrado del AMR-WB+ (Códec de Banda Ancha de Tasa Múltiple Adaptativa). En la decisión de bucle cerrado son necesarios varios procedimientos de copia de los estados del codificador para probar cada posible combinación de TCX y ACELP (Predicción Lineal con Excitación Aritmética por Código). La copia de estado es más fácil de implementar cuando todos los modos de TCX comparten el mismo tamaño para la tabla qs []. A continuación se usa un mapeo para convertir sistemáticamente de lg/4 a 1024/4. Por otra parte, AAC graba únicamente el contexto y no realiza mapeo durante esta fase.
La Figura 8 ilustra un diagrama de flujo de la realización del esquema de decodificación. En la etapa 805, que corresponde a la etapa 705, el contexto se deriva basándose en t0, t1, t2 y t3. En la etapa 810, el primer nivel de reducción lev0 se estima a partir del contexto, y la variable lev se establece a lev0. En la siguiente etapa 815, el grupo ng se lee a partir del flujo de bits y la distribución de probabilidad para decodificar ng se deriva a partir del contexto. En la etapa 815, el grupo ng puede decodificarse a continuación a partir del flujo de bits.
En la etapa 820 se determina si ng equivale 544, que corresponde al valor de escape. En caso afirmativo, la variable lev puede aumentarse en 2 antes de volver a la etapa 815. En caso de que esta rama se use la primera vez, es decir, si lev==lev0, el contexto puede adaptarse en consecuencia a la distribución de probabilidad respectivamente, descartarse respectivamente si la rama no se usa la primera vez, en relación con el mecanismo de adaptación de contexto anteriormente descrito, consúltese las Figuras 7b y 7c. En caso de que el índice de grupo ng no sea igual a 544 en la etapa 820, en una siguiente etapa 825 se determina si el número de elementos en un grupo es mayor que 1, y en caso afirmativo, en la etapa 830, se lee el elemento de grupo ne y se decodifica a partir del flujo de bits suponiendo una distribución de probabilidad uniforme. El índice de elemento ne se deriva a partir del flujo de bits usando codificación aritmética y una distribución de probabilidad uniforme.
En la etapa 835 la palabra de código literal (a,b,c,d) se deriva a partir de ng y ne, por ejemplo, por un proceso de búsqueda en las tablas, por ejemplo, haciendo referencia a dgroups [ng] y acod_ne[ne].
En la etapa 840 para todos los lev planos de bits faltantes, los planos se leen a partir del flujo de bits usando codificación aritmética y suponiendo una distribución de probabilidad uniforme. Los planos de bits pueden a continuación anexarse a (a,b,c,d) desplazando (a,b,c,d) a la izquierda y añadiendo el plano de bits bp: ((a,b,c,d)<<=1)|=bp. Este proceso puede repetirse lev veces.
Finalmente en la etapa 845 puede proporcionarse la 4-tupla q(n,m), es decir(a,b,c,d).
A continuación se proporcionan pseudo códigos y detalles de implementación de acuerdo con una realización. Se usarán las siguientes definiciones.
(a,b,c,d) 4-tupla para decodificar
ng índice de grupo del plano de 2 bits más significativos de la 4-tupla, donde 0 <= ng <= 544. El último valor 544 corresponde al símbolo de escape, ARITH_ESCAPE.
ne índice de elemento en un grupo. ne radica entre 0 y el cardinal de cada grupo mm. El número máximo de elementos dentro de un grupo es 73.
lev nivel de los planos de bits restantes. Corresponde al número de planos de bits menos significativos que el plano de 2 bits más significativos.
egroups [a][b][c][d] tabla de índice de grupo. Permite mapear el plano de 2 bits más significativos de la 4-tupla (a,b,c,d) en los 544 grupos.
mm cardinal del grupo
og compensación del grupo
dgroups[] mapea el índice de grupo ng al cardinal de cada grupo mm (primeros 8 bits) y la compensación del grupo op en dgvectors[] (últimos 8 bits).
dgvectors[] mapea la compensación del grupo og y el índice del elemento ne al plano de 2 bits más significativos de la 4-tupla (a,b,c,d).
arith_cf_ng_hash[] tabla de función de troceo que mapea el estado de contexto a un índice de tabla de frecuencias acumulativas pki.
arith_cf_ng[pki][545] Modelos de las frecuencias acumulativas para el índice de símbolo de grupo ng.
arith_cf_ne[] frecuencias acumulativas para el símbolo de índice de elemento ne.
r plano de bits de la 4-tupla menos significativo que el plano de 2 bits más significativos.
arith_cf_r [] frecuencias acumulativas para el símbolo r de planos de bits menos significativos
A continuación se considera en primer lugar el proceso de decodificación. Se codifican sin ruido coeficientes espectrales cuantificados de cuatro tuplas y se transmiten empezando desde el coeficiente espectral o de frecuencia más baja y progresando al coeficiente espectral o de frecuencia más alta. Los coeficientes a partir de AAC se almacenan en la serie x_ac_quant[g][win][sfb][bin], y el orden de transmisión de las palabras de codificación sin ruido es de manera que cuando se decodifican en el orden recibido y se almacenan en la serie, bin es el índice de incremento más rápido y g es el índice de incremento más lento. En una palabra de código el orden de decodificación es a, b, c, d. El coeficiente desde la TCX se almacena directamente en la serie x_tcx_invquant[win][bin], y el orden de la transmisión de las palabras de codificación sin ruido es de manera que cuando se decodifican en el orden recibido y se almacenan en la serie, bin es el índice de incremento más rápido y win es el índice de incremento más lento. En una palabra de código el orden de decodificación es a, b, c, d. En primer lugar, la bandera arith_reset_flag determina si el contexto debe resetearse. Si la bandera es VERDADERO se solicita la siguiente función:
‘variables globales*/
q[2] [290] /‘contexto actual */
qs[258] /*contexto pasado*/
previous_lg /*número de 4-tuplas del contexto pasado*/
arith_reset_context()
{
for(i=0;i<258;i++){
qs[i].a=0; qs [i].b=0; qs[i].c=0;qs [i].d=0
qs[i].v=-1;
}
for(i=0;i<290;i++){
q[0] [i].a=0; q[0] [i] .b=0; q[0][i].c=0;
q[0][i].d=0
q[0][i].v=-1;
q[1] [i] .a=0; q[1] [i] .b=0; q[1][i].c=0;
q[1][i].d=0
q[1][i].v=-1;
}
previous_lg=256;
}
De otra manera, cuando arith_reset_flag es FALSA, se realiza un mapeo entre el contexto pasado y el contexto actual: /"variable de entrada*/
lg /*número de 4-tuplas*/
arith_map_context(lg)
{
v=w=0
if(core_mode==1){
q[0] [v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for(j=0; j<lg; j++){
k = (int) ((float)) ((j)*ratio);
q[0][v++] = qs[w+k];
}
if(core_mode==0){
q[0] [lg]=qs[previous_lg];
}
q[0][ lg+1]=qs[previous_lg+1];
previous_lg=lg;
}
El decodificador sin ruido emite 4-tuplas de coeficientes espectrales cuantificados con signo. En primer lugar se calcula el estado del contexto basándose en los cuatro grupos previamente decodificados que rodean la 4-tupla para decodificar. El estado del contexto se proporciona por la función arith_get_context():
/* variables de entrada*/
i /*el índice de la 4-tupla para decodificar en el vector*/
arith_get_context(i,)
{
Una vez que se conoce el estado el grupo al que pertenece el plano de 2 bits más significativos de 4-tupla se decodifica usando arith_decode() alimentada con la tabla de frecuencias acumulativas apropiada que corresponde al estado de contexto. La correspondencia se realiza mediante la función arith_get_pk():
/*variable de entrada*/
s /* Estado del contexto*/
arith_get_pk(s)
{
psci[28] = {
247,248,249,250,251,252,253,254,254,0,254,254,254,255,250,215, 215,70,70,123,123,123,123,3,67,78,82,152
};
register unsigned char *p;
register unsigned long i,j;
i=123*s;
for (;;)
{
j=arith_cf_nq_hash [i&32767] ;
if (j==0xFFFFFFFFul ) break;
if ( (j>>8)==s) return j&255;
i++;
}
p=psci+7*(s>>22) ;
j= s & 4194303;
if (j<436961)
{
if (j<252001) return p[(j<243001)?0:1]; else return
p[ (j<288993)?2:3] ;
}
else
{
if (j<1609865) return p[(j<880865)?4:5]; else return p[6];
}
}
A continuación se solicita la función arith_decode()con la tabla de frecuencias acumulativa que corresponde al índice devuelto por arith_get_pk(). El codificador aritmético es una implementación de número entero que genera la etiqueta con escalado. El siguiente pseudo-código de C describe el algoritmo usado.
/‘funciones de ayuda*/
bool arith_first_symbol(void);
/* Devolver VERDADERO si es el primer símbolo de la secuencia, FALSO de lo contrario*/
Ushort arith_get_next_bit(void) ;
/* Obtener el siguiente bit del flujo de bits*/
/* variables globales */
low
high
value
/* variables de entrada */
cum_freq[];
cfl;
arith_decode()
{
if(arith_first_symbol())
{
value = 0;
for (i=1; i<=20; i++)
{
value = (val<<1) | arith_get_next_bit();
}
low=0;
high=1048575;
}
range = high-low+1;
cum =((((int64) (value-low+1))<<16)-((int64) 1))/((int64) range);
p = cum_freq-1;
do
{
q=p+(cfl>>1);
if ( *q > cum ) { p=q; cfl++; }
cfl>>=1;
}
while ( cfl>1 );
symbol = p-cum_freq+1;
if(symbol)
high = low (((int64)range)*((int64)cum_freq[symbol-1]))>>16 - 1;
low = (((int64) range)* ((int64) cum_freq[symbol]))>>16;
for (; ;)
{
if ( high<524286) { }
else if ( low>=524286)
{
value -=524286;
low -=524286;
high -=524286;
}
else if ( low>=262143 && high<786429)
{
value -= 262143;
low -= 262143;
high -= 262143;
}
else break;
low = low;
high = high+1;
value = (value<<1) | arith_get_next_bit();
}
return symbol;
}
Aunque el índice de grupo decodificado ng es el símbolo de escape, ARITH_ESCAPE, se decodifica un índice de grupo adicional ng y la variable lev se incrementa en dos. Una vez que el índice de grupo decodificado no es el símbolo de escape, ARITH_ESCAPE, el número de elementos, mm, en el grupo y la compensación de grupo, og, se deducen buscando la tabla dgroups[]:
mm=dgroups[nq]&255
og = dgroups[nq]>>8
El índice de elemento ne se decodifica a continuación solicitando arith_decode() con la tabla de frecuencias acumulativa (arith_cf_ne+((mm*(mm-1))>>1)[]. Una vez que se decodifica el elemento puede derivarse el plano de 2 bits más significativos de la 4-tupla con la tabla dgvector[]:
a=dgvectors[4*og+ne)]
b=dgvectors[4*og+ne)+1 ]
c=dgvectors[4*og+ne)+2]
d=dgvectors[4*og+ne)+3]
Los restantes planos de bits se decodifican a continuación a partir del nivel más significativo al menos significativo solicitando lev veces arith_decode() con la tabla de frecuencias acumulativa arith_cf_r []. El plano de bits decodificado r permite perfeccionar la 4-tupla de decodificación mediante la siguiente manera:
a = (a<<1) | (r&1)
b = (b<<1) | ((r>>1)&1)
c = (c<<1) | ((r>>2)&1)
d = (d<<1) | ((r>>3)
Una vez que la 4-tupla (a,b,c,d) está completamente decodificada, se actualizan las tablas de contexto q y qs solicitando la función arith_update_context().
arith_update_context(a,b,c,d,i,lg)
{
Dependiendo de ciertos requisitos de implementación de los métodos inventivos, los métodos inventivos pueden implementarse en hardware o en software. La implementación puede formarse usando un medio de almacenamiento digital, en particular, un disco, un DVD, o un CD, que tiene señales de control electrónicamente legibles en el mismo, que cooperan con el ordenador programable, de manera que se realizan los métodos inventivos. En general, la presente invención es por lo tanto un producto de programa informático con un código de programa para un soporte legible por máquina, siendo el código de programa operativo para realizar los métodos inventivos cuando el programa informático se ejecuta en un ordenador. En otras palabras, los métodos inventivos son, por lo tanto, un programa informático que tiene un código de programa para realizar al menos uno de los métodos inventivos cuando el programa informático se ejecuta en un ordenador.
Claims (7)
1. Un codificador de audio (100) para codificar una secuencia de segmentos de coeficientes, siendo los segmentos subsiguientes entre sí en el tiempo, comprendiendo el codificador de audio (100)
un medio para proporcionar la secuencia de segmentos de coeficientes a partir de un flujo de audio que representa una señal de audio muestreada mediante el uso de diferentes longitudes de transformación de manera que los segmentos de coeficientes para los que se utilizan diferentes longitudes de transformación, representan espectralmente la señal de audio muestreada a diferentes resoluciones de frecuencia y de manera que los segmentos sean de 1024 y 128 coeficientes espectrales, respectivamente;
un procesador (110) para derivar un contexto de codificación para un coeficiente codificado actualmente de un segmento actual en base a un coeficiente codificado previamente de un segmento anterior, correspondiendo los segmentos anterior y actual a diferentes resoluciones de frecuencia y diferentes longitudes de transformación, respectivamente; y
un codificador por entropía (120) para codificar por entropía el coeficiente actual en función del contexto de codificación para obtener un flujo de audio codificado,
en donde el procesador (110) y el codificador por entropía (120) están configurados para funcionar en función de un muestreo descendente de los coeficientes espectrales del segmento anterior, cuando el segmento anterior muestra una resolución espectral más fina que el segmento actual.
2. El codificador de audio (100) de la reivindicación 1, en el que el codificador por entropía (120) está adaptado para codificar el segmento actual en unidades de una tupla de coeficientes espectrales y para prever un intervalo de la tupla basándose en el contexto de codificación.
3. El codificador de audio (100) de la reivindicación 2, en el que el codificador por entropía (120) está adaptado para dividir la tupla por un factor predeterminado tan a menudo como sea necesario para adaptarse a un resultado de la división en un intervalo predeterminado y para codificar un número de divisiones necesarias, un resto de división y el resultado de la división cuando la tupla no radica en el intervalo previsto.
4. El codificador de audio (100) de la reivindicación 3, en el que el codificador por entropía (120) está adaptado para codificar el resultado de la división o la tupla usando un índice de grupo, haciendo referencia el índice de grupo a un grupo de una o más palabras de código para el que una distribución de probabilidad está basada en el contexto de codificación, y, basándose en una distribución de probabilidad uniforme, un índice de elemento en el caso de que el grupo comprenda más de una palabra de código, haciendo referencia el índice de elemento a una palabra de código dentro del grupo, y para codificar el número de divisiones por un número de símbolos de escape, siendo un símbolo de escape un índice de grupo específico únicamente usado para indicar una división, y para codificar los restos de las divisiones basándose en una distribución de probabilidad uniforme usando una regla de codificación aritmética.
5. El codificador de audio (100) de la reivindicación 4, en el que el codificador por entropía (120) está adaptado para codificar una secuencia de símbolos en el flujo de audio codificado usando un alfabeto de símbolos que comprende el símbolo de escape y símbolos de grupo correspondientes a un conjunto de índices de grupo disponibles, un alfabeto de símbolos que comprende los índices de elementos correspondientes y un alfabeto de símbolos que comprende los diferentes valores de los restos.
6. Un decodificador de audio (200) para decodificar un flujo de audio codificado que representa una señal de audio muestreada para obtener una secuencia de segmentos de coeficientes siendo anterioeres entre sí en el tiempo y que representan la señal de audio muestreada mediante el uso de diferentes longitudes de transformada, de modo que los segmentos de coeficientes para los que se usan diferentes longitudes de transformada, representan espectralmente la señal de audio muestreada a diferentes resoluciones de frecuencia, que comprende
un procesador (210) para derivar un contexto de codificación para un coeficiente decodificado actualmente de un segmento actual en base a un coeficiente decodificado previamente de un segmento anterior, correspondiendo los segmentos anterior y actual a diferentes resoluciones de frecuencia y diferentes longitudes de transformación, respectivamente, y de manera que los segmentos sean de 1024 y 128 coeficientes espectrales, respectivamente; y
un decodificador por entropía (220) para decodificar por entropía el coeficiente actual basándose en el contexto de codificación y el flujo de audio codificado,
en donde el procesador (210) y el decodificador por entropía (220) están configurados para funcionar basándose en un muestreo descendente de los coeficientes espectrales del segmento anterior, cuando el segmento anterior muestra una resolución espectral más fina que el segmento actual.
7. El decodificador de audio (200) de la reivindicación 6, en el que el procesador está adaptado para derivar el contexto de codificación por banda espectral para el coeficiente actual, basándose en coeficientes espectrales vecinos previamente decodificados en el segmento anterior y opcionalmente en el segmento actual.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US7984208P | 2008-07-11 | 2008-07-11 | |
| US10382008P | 2008-10-08 | 2008-10-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2995183T3 true ES2995183T3 (en) | 2025-02-07 |
Family
ID=40886050
Family Applications (8)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES24166207T Active ES3002157T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES23165074T Active ES2995183T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES24166205T Active ES2998032T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES19160283T Active ES2934052T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
| ES24166206T Active ES3002107T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES17190130T Active ES2731424T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
| ES24166208T Active ES3001990T3 (en) | 2008-07-11 | 2009-05-18 | Audio decoding method |
| ES09776624.0T Active ES2651437T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES24166207T Active ES3002157T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
Family Applications After (6)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES24166205T Active ES2998032T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES19160283T Active ES2934052T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
| ES24166206T Active ES3002107T3 (en) | 2008-07-11 | 2009-05-18 | Audio encoder and audio decoder |
| ES17190130T Active ES2731424T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
| ES24166208T Active ES3001990T3 (en) | 2008-07-11 | 2009-05-18 | Audio decoding method |
| ES09776624.0T Active ES2651437T3 (es) | 2008-07-11 | 2009-05-18 | Codificador de audio y decodificador de audio |
Country Status (21)
| Country | Link |
|---|---|
| US (10) | US8930202B2 (es) |
| EP (10) | EP3300076B1 (es) |
| JP (1) | JP5606433B2 (es) |
| KR (1) | KR101456641B1 (es) |
| CN (1) | CN102089813B (es) |
| AR (1) | AR072422A1 (es) |
| AU (1) | AU2009267543B2 (es) |
| BR (4) | BRPI0910796B1 (es) |
| CA (1) | CA2729925C (es) |
| CO (1) | CO6351831A2 (es) |
| DK (1) | DK3573056T3 (es) |
| ES (8) | ES3002157T3 (es) |
| FI (1) | FI3573056T3 (es) |
| MX (1) | MX2011000379A (es) |
| MY (1) | MY160260A (es) |
| PL (8) | PL4224471T3 (es) |
| PT (3) | PT2301019T (es) |
| RU (1) | RU2487427C2 (es) |
| TW (1) | TWI449033B (es) |
| WO (1) | WO2010003479A1 (es) |
| ZA (1) | ZA201009258B (es) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
| CA2871252C (en) * | 2008-07-11 | 2015-11-03 | Nikolaus Rettelbach | Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program |
| EP2144230A1 (en) * | 2008-07-11 | 2010-01-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Low bitrate audio encoding/decoding scheme having cascaded switches |
| ES3002157T3 (en) | 2008-07-11 | 2025-03-06 | Fraunhofer Ges Forschung | Audio encoder and audio decoder |
| AU2009267525B2 (en) | 2008-07-11 | 2012-12-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio signal synthesizer and audio signal encoder |
| KR20100136890A (ko) * | 2009-06-19 | 2010-12-29 | 삼성전자주식회사 | 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법 |
| EP2315358A1 (en) | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
| WO2011048100A1 (en) | 2009-10-20 | 2011-04-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction |
| BR112012017256B1 (pt) * | 2010-01-12 | 2021-08-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V | Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio e método de decodificação de uma informação de áudio que utiliza uma tabela hash que descreve tanto valores de estado significativos como limites de intervalo |
| US8280729B2 (en) * | 2010-01-22 | 2012-10-02 | Research In Motion Limited | System and method for encoding and decoding pulse indices |
| MX2012010439A (es) | 2010-03-10 | 2013-04-29 | Fraunhofer Ges Forschung | Decodificador de señales de audio, codificador de señales de audio, metodo para decodificar una señal de audio, metodo para codificar una señal de audio y programa de computacion que utilizan una adaptacion dependiente de la frecuencia de un contexto de codificacion. |
| PL3751564T3 (pl) | 2010-07-20 | 2023-03-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Dekoder audio, sposób dekodowania audio i program komputerowy |
| MX2013010535A (es) | 2011-03-18 | 2014-03-12 | Koninkl Philips Electronics Nv | Transmision de longitud de elemento de cuadro en la codificacion de audio. |
| TWI451746B (zh) * | 2011-11-04 | 2014-09-01 | Quanta Comp Inc | 視訊會議系統及視訊會議方法 |
| US10844689B1 (en) | 2019-12-19 | 2020-11-24 | Saudi Arabian Oil Company | Downhole ultrasonic actuator system for mitigating lost circulation |
| ES2986129T3 (es) * | 2012-05-18 | 2024-11-08 | Dolby Laboratories Licensing Corp | Sistema y método para control de rango dinámico de una señal de audio |
| JP6065452B2 (ja) * | 2012-08-14 | 2017-01-25 | 富士通株式会社 | データ埋め込み装置及び方法、データ抽出装置及び方法、並びにプログラム |
| EP2903004A4 (en) * | 2012-09-24 | 2016-11-16 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR HIDING FRAME ERRORS AND METHOD AND DEVICE FOR AUDIO DECODING |
| KR20140089871A (ko) | 2013-01-07 | 2014-07-16 | 삼성전자주식회사 | 대화형 서버, 그 제어 방법 및 대화형 시스템 |
| JP6146069B2 (ja) | 2013-03-18 | 2017-06-14 | 富士通株式会社 | データ埋め込み装置及び方法、データ抽出装置及び方法、並びにプログラム |
| MX353188B (es) * | 2013-06-10 | 2018-01-05 | Fraunhofer Ges Forschung | Aparato y método para codificación, procesamiento y decodificación de la envolvente de la señal de audio mediante división de la envolvente de la señal de audio, mediante el uso de cuantificación de distribución y codificación. |
| WO2014198726A1 (en) | 2013-06-10 | 2014-12-18 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for audio signal envelope encoding, processing and decoding by modelling a cumulative sum representation employing distribution quantization and coding |
| EP2830055A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Context-based entropy coding of sample values of a spectral envelope |
| EP2830063A1 (en) | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for decoding an encoded audio signal |
| WO2016142002A1 (en) * | 2015-03-09 | 2016-09-15 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal |
| GB2559199A (en) * | 2017-01-31 | 2018-08-01 | Nokia Technologies Oy | Stereo audio signal encoder |
| CN115050378B (zh) * | 2022-05-19 | 2024-06-07 | 腾讯科技(深圳)有限公司 | 音频编解码方法及相关产品 |
| US12380902B2 (en) | 2023-10-18 | 2025-08-05 | Cisco Technology, Inc. | Vector quantizer correction for audio codec system |
| US12308037B2 (en) | 2023-10-18 | 2025-05-20 | Cisco Technology, Inc. | Reduced multidimensional indices compression for audio codec system |
| WO2025149676A1 (en) * | 2024-01-12 | 2025-07-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Transform-based block-wise coding using prediction |
Family Cites Families (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5233055A (en) | 1991-03-19 | 1993-08-03 | Shell Oil Company | Copolymerization of polyethercyclicpolyols with epoxy resins |
| US5253055A (en) * | 1992-07-02 | 1993-10-12 | At&T Bell Laboratories | Efficient frequency scalable video encoding with coefficient selection |
| US5710562A (en) | 1995-08-31 | 1998-01-20 | Ricoh Company Ltd. | Method and apparatus for compressing arbitrary data |
| US5852806A (en) * | 1996-03-19 | 1998-12-22 | Lucent Technologies Inc. | Switched filterbank for use in audio signal coding |
| WO1998051126A1 (en) * | 1997-05-08 | 1998-11-12 | Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. | Method and apparatus for frequency-domain downmixing with block-switch forcing for audio decoding functions |
| US6226608B1 (en) * | 1999-01-28 | 2001-05-01 | Dolby Laboratories Licensing Corporation | Data framing for adaptive-block-length coding system |
| IL129345A (en) * | 1999-04-06 | 2004-05-12 | Broadcom Corp | Video encoding and video/audio/data multiplexing device |
| DE60209888T2 (de) | 2001-05-08 | 2006-11-23 | Koninklijke Philips Electronics N.V. | Kodieren eines audiosignals |
| US7240001B2 (en) * | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
| US7460993B2 (en) * | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
| ES2219589T3 (es) | 2002-02-05 | 2004-12-01 | Siemens Aktiengesellschaft | Compresion de datos. |
| US7599835B2 (en) * | 2002-03-08 | 2009-10-06 | Nippon Telegraph And Telephone Corporation | Digital signal encoding method, decoding method, encoding device, decoding device, digital signal encoding program, and decoding program |
| US7110941B2 (en) * | 2002-03-28 | 2006-09-19 | Microsoft Corporation | System and method for embedded audio coding with implicit auditory masking |
| WO2003083856A1 (en) * | 2002-03-28 | 2003-10-09 | Craven Peter G | Context coding |
| 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 |
| KR100462611B1 (ko) * | 2002-06-27 | 2004-12-20 | 삼성전자주식회사 | 하모닉 성분을 이용한 오디오 코딩방법 및 장치 |
| ATE449405T1 (de) * | 2002-09-04 | 2009-12-15 | Microsoft Corp | Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus |
| US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
| US7502743B2 (en) * | 2002-09-04 | 2009-03-10 | Microsoft Corporation | Multi-channel audio encoding and decoding with multi-channel transform selection |
| US7328150B2 (en) * | 2002-09-04 | 2008-02-05 | Microsoft Corporation | Innovations in pure lossless audio compression |
| US7299190B2 (en) * | 2002-09-04 | 2007-11-20 | Microsoft Corporation | Quantization and inverse quantization for audio |
| US7536305B2 (en) * | 2002-09-04 | 2009-05-19 | Microsoft Corporation | Mixed lossless audio compression |
| EP1574093B1 (en) | 2002-12-20 | 2009-04-01 | Nokia Corporation | Method and device for organizing user provided information with meta-information |
| DE10328777A1 (de) * | 2003-06-25 | 2005-01-27 | Coding Technologies Ab | Vorrichtung und Verfahren zum Codieren eines Audiosignals und Vorrichtung und Verfahren zum Decodieren eines codierten Audiosignals |
| US7343291B2 (en) * | 2003-07-18 | 2008-03-11 | Microsoft Corporation | Multi-pass variable bitrate media encoding |
| US7509161B2 (en) * | 2003-10-22 | 2009-03-24 | Instrumentarium Corporation | Method and apparatus for determining the cerebral state of a patient using generalized spectral entropy of the EEG signal |
| DE102004007200B3 (de) * | 2004-02-13 | 2005-08-11 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audiocodierung |
| US20050185541A1 (en) * | 2004-02-23 | 2005-08-25 | Darren Neuman | Method and system for memory usage in real-time audio systems |
| KR20050087956A (ko) * | 2004-02-27 | 2005-09-01 | 삼성전자주식회사 | 무손실 오디오 부호화/복호화 방법 및 장치 |
| KR100561869B1 (ko) * | 2004-03-10 | 2006-03-17 | 삼성전자주식회사 | 무손실 오디오 부호화/복호화 방법 및 장치 |
| TWI246256B (en) * | 2004-07-02 | 2005-12-21 | Univ Nat Central | Apparatus for audio compression using mixed wavelet packets and discrete cosine transformation |
| AU2004321469B2 (en) * | 2004-07-14 | 2009-08-20 | Agency For Science, Technology And Research | Context-based encoding and decoding of signals |
| DE602005009374D1 (de) * | 2004-09-06 | 2008-10-09 | Matsushita Electric Industrial Co Ltd | Skalierbare codierungseinrichtung und skalierbares codierungsverfahren |
| SE0402651D0 (sv) * | 2004-11-02 | 2004-11-02 | Coding Tech Ab | Advanced methods for interpolation and parameter signalling |
| US7428342B2 (en) * | 2004-12-17 | 2008-09-23 | Microsoft Corporation | Reversible overlap operator for efficient lossless data compression |
| US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
| US7788106B2 (en) * | 2005-04-13 | 2010-08-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Entropy coding with compact codebooks |
| US7196641B2 (en) * | 2005-04-26 | 2007-03-27 | Gen Dow Huang | System and method for audio data compression and decompression using discrete wavelet transform (DWT) |
| US8032240B2 (en) * | 2005-07-11 | 2011-10-04 | Lg Electronics Inc. | Apparatus and method of processing an audio signal |
| US7539612B2 (en) * | 2005-07-15 | 2009-05-26 | Microsoft Corporation | Coding and decoding scale factor information |
| US20070036228A1 (en) * | 2005-08-12 | 2007-02-15 | Via Technologies Inc. | Method and apparatus for audio encoding and decoding |
| US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
| US20070078645A1 (en) * | 2005-09-30 | 2007-04-05 | Nokia Corporation | Filterbank-based processing of speech signals |
| US7974713B2 (en) * | 2005-10-12 | 2011-07-05 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Temporal and spatial shaping of multi-channel audio signals |
| US8473298B2 (en) | 2005-11-01 | 2013-06-25 | Apple Inc. | Pre-resampling to achieve continuously variable analysis time/frequency resolution |
| KR101358700B1 (ko) * | 2006-02-21 | 2014-02-07 | 코닌클리케 필립스 엔.브이. | 오디오 인코딩 및 디코딩 |
| KR101244310B1 (ko) * | 2006-06-21 | 2013-03-18 | 삼성전자주식회사 | 광대역 부호화 및 복호화 방법 및 장치 |
| KR101346358B1 (ko) * | 2006-09-18 | 2013-12-31 | 삼성전자주식회사 | 대역폭 확장 기법을 이용한 오디오 신호의 부호화/복호화방법 및 장치 |
| US7275936B1 (en) * | 2006-09-22 | 2007-10-02 | Lotes Co., Ltd. | Electrical connector |
| US20080097757A1 (en) * | 2006-10-24 | 2008-04-24 | Nokia Corporation | Audio coding |
| CN101682772B (zh) * | 2007-03-14 | 2012-03-21 | 日本电信电话株式会社 | 码量推定方法、装置、其程序和记录介质 |
| US20080294446A1 (en) * | 2007-05-22 | 2008-11-27 | Linfeng Guo | Layer based scalable multimedia datastream compression |
| EP2015293A1 (en) * | 2007-06-14 | 2009-01-14 | Deutsche Thomson OHG | Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain |
| US7774205B2 (en) | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
| US8515767B2 (en) * | 2007-11-04 | 2013-08-20 | Qualcomm Incorporated | Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs |
| US8325800B2 (en) * | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
| US8447591B2 (en) | 2008-05-30 | 2013-05-21 | Microsoft Corporation | Factorization of overlapping tranforms into two block transforms |
| EP2144230A1 (en) * | 2008-07-11 | 2010-01-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Low bitrate audio encoding/decoding scheme having cascaded switches |
| CA2871252C (en) * | 2008-07-11 | 2015-11-03 | Nikolaus Rettelbach | Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program |
| ES3002157T3 (en) * | 2008-07-11 | 2025-03-06 | Fraunhofer Ges Forschung | Audio encoder and audio decoder |
| US8660176B2 (en) * | 2008-09-26 | 2014-02-25 | Qualcomm Incorporated | Resolving geometric relationships among video data units |
| WO2011048100A1 (en) * | 2009-10-20 | 2011-04-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction |
| BR112012017256B1 (pt) * | 2010-01-12 | 2021-08-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V | Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio e método de decodificação de uma informação de áudio que utiliza uma tabela hash que descreve tanto valores de estado significativos como limites de intervalo |
| EP2717261A1 (en) * | 2012-10-05 | 2014-04-09 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder, decoder and methods for backward compatible multi-resolution spatial-audio-object-coding |
| 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 |
| KR101831289B1 (ko) * | 2013-10-18 | 2018-02-22 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. | 오디오 신호의 스펙트럼의 스펙트럼 계수들의 코딩 |
-
2009
- 2009-05-18 ES ES24166207T patent/ES3002157T3/es active Active
- 2009-05-18 MX MX2011000379A patent/MX2011000379A/es active IP Right Grant
- 2009-05-18 EP EP17190130.9A patent/EP3300076B1/en active Active
- 2009-05-18 BR BRPI0910796-7A patent/BRPI0910796B1/pt active IP Right Grant
- 2009-05-18 KR KR1020117000610A patent/KR101456641B1/ko active Active
- 2009-05-18 ES ES23165074T patent/ES2995183T3/es active Active
- 2009-05-18 EP EP24166208.9A patent/EP4376307B1/en active Active
- 2009-05-18 PL PL23165074.8T patent/PL4224471T3/pl unknown
- 2009-05-18 CN CN2009801272072A patent/CN102089813B/zh active Active
- 2009-05-18 PL PL24166207.1T patent/PL4376306T3/pl unknown
- 2009-05-18 BR BR122021008239-1A patent/BR122021008239B1/pt active IP Right Grant
- 2009-05-18 FI FIEP19160283.8T patent/FI3573056T3/fi active
- 2009-05-18 ES ES24166205T patent/ES2998032T3/es active Active
- 2009-05-18 CA CA2729925A patent/CA2729925C/en active Active
- 2009-05-18 PL PL09776624T patent/PL2301019T3/pl unknown
- 2009-05-18 RU RU2011102424/08A patent/RU2487427C2/ru active
- 2009-05-18 EP EP09776624.0A patent/EP2301019B1/en active Active
- 2009-05-18 MY MYPI2011000097A patent/MY160260A/en unknown
- 2009-05-18 BR BR122021007798-3A patent/BR122021007798B1/pt active IP Right Grant
- 2009-05-18 ES ES19160283T patent/ES2934052T3/es active Active
- 2009-05-18 PL PL17190130T patent/PL3300076T3/pl unknown
- 2009-05-18 PT PT97766240T patent/PT2301019T/pt unknown
- 2009-05-18 EP EP23165075.5A patent/EP4224472B1/en active Active
- 2009-05-18 EP EP24166206.3A patent/EP4376305B1/en active Active
- 2009-05-18 PL PL19160283.8T patent/PL3573056T3/pl unknown
- 2009-05-18 EP EP24166207.1A patent/EP4376306B1/en active Active
- 2009-05-18 PT PT17190130T patent/PT3300076T/pt unknown
- 2009-05-18 PL PL24166205.5T patent/PL4369609T3/pl unknown
- 2009-05-18 DK DK19160283.8T patent/DK3573056T3/da active
- 2009-05-18 EP EP23165074.8A patent/EP4224471B1/en active Active
- 2009-05-18 JP JP2011516973A patent/JP5606433B2/ja active Active
- 2009-05-18 ES ES24166206T patent/ES3002107T3/es active Active
- 2009-05-18 ES ES17190130T patent/ES2731424T3/es active Active
- 2009-05-18 PL PL24166206.3T patent/PL4376305T3/pl unknown
- 2009-05-18 PL PL24166208.9T patent/PL4376307T3/pl unknown
- 2009-05-18 EP EP19160283.8A patent/EP3573056B1/en active Active
- 2009-05-18 EP EP24166205.5A patent/EP4369609B1/en active Active
- 2009-05-18 AU AU2009267543A patent/AU2009267543B2/en active Active
- 2009-05-18 PT PT191602838T patent/PT3573056T/pt unknown
- 2009-05-18 EP EP21190867.8A patent/EP3937167B1/en active Active
- 2009-05-18 BR BR122021007875-0A patent/BR122021007875B1/pt active IP Right Grant
- 2009-05-18 ES ES24166208T patent/ES3001990T3/es active Active
- 2009-05-18 ES ES09776624.0T patent/ES2651437T3/es active Active
- 2009-05-18 WO PCT/EP2009/003521 patent/WO2010003479A1/en not_active Ceased
- 2009-06-29 TW TW098121850A patent/TWI449033B/zh active
- 2009-06-30 AR ARP090102436A patent/AR072422A1/es active IP Right Grant
-
2010
- 2010-12-23 ZA ZA2010/09258A patent/ZA201009258B/en unknown
-
2011
- 2011-01-11 US US13/004,282 patent/US8930202B2/en active Active
- 2011-01-21 CO CO11006444A patent/CO6351831A2/es active IP Right Grant
-
2015
- 2015-01-05 US US14/589,881 patent/US10242681B2/en active Active
-
2019
- 2019-02-22 US US16/283,591 patent/US10685659B2/en active Active
-
2020
- 2020-05-29 US US16/888,176 patent/US11670310B2/en active Active
-
2023
- 2023-04-14 US US18/301,191 patent/US12039985B2/en active Active
- 2023-04-14 US US18/301,194 patent/US11942101B2/en active Active
-
2024
- 2024-04-05 US US18/628,632 patent/US12198708B2/en active Active
- 2024-04-05 US US18/628,556 patent/US12230285B2/en active Active
- 2024-04-05 US US18/628,500 patent/US12205603B2/en active Active
- 2024-04-05 US US18/628,590 patent/US12198707B2/en active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2995183T3 (en) | Audio encoder and audio decoder | |
| ES2993574T3 (en) | Audio decoder | |
| HK40108741B (en) | Audio encoder and audio decoder | |
| HK40096560A (en) | Audio encoder and audio decoder | |
| HK40096560B (en) | Audio encoder and audio decoder | |
| HK40108740A (en) | Audio decoding method | |
| HK40108740B (en) | Audio decoding method | |
| HK40103544A (en) | Audio encoder and audio decoder | |
| HK40103544B (en) | Audio encoder and audio decoder | |
| HK40108739A (en) | Audio encoder and audio decoder | |
| HK40108739B (en) | Audio encoder and audio decoder | |
| HK40064511B (en) | Audio encoder and audio decoder | |
| HK40064511A (en) | Audio encoder and audio decoder | |
| HK1253032B (en) | Audio encoder and audio decoder | |
| HK1155845B (en) | Audio encoder and audio decoder | |
| BR122021007770B1 (pt) | Codificador de áudio e decodificador de áudio |