ES2934646T3 - Sistema de procesamiento de audio - Google Patents
Sistema de procesamiento de audio Download PDFInfo
- Publication number
- ES2934646T3 ES2934646T3 ES14717713T ES14717713T ES2934646T3 ES 2934646 T3 ES2934646 T3 ES 2934646T3 ES 14717713 T ES14717713 T ES 14717713T ES 14717713 T ES14717713 T ES 14717713T ES 2934646 T3 ES2934646 T3 ES 2934646T3
- Authority
- ES
- Spain
- Prior art keywords
- signal
- stage
- audio
- mode
- domain representation
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 117
- 230000003595 spectral effect Effects 0.000 claims abstract description 85
- 230000005236 sound signal Effects 0.000 claims abstract description 65
- 238000005070 sampling Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 51
- 230000010076 replication Effects 0.000 claims description 24
- 230000015572 biosynthetic process Effects 0.000 claims description 18
- 238000003786 synthesis reaction Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000002156 mixing Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 7
- 238000011144 upstream manufacturing Methods 0.000 claims description 7
- 230000010363 phase shift Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims 2
- 238000013139 quantization Methods 0.000 abstract description 59
- 108091006146 Channels Proteins 0.000 description 63
- 239000013598 vector Substances 0.000 description 32
- 238000009432 framing Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 26
- 238000001228 spectrum Methods 0.000 description 14
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000009499 grossing Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 238000007792 addition Methods 0.000 description 7
- 238000012952 Resampling Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011049 filling Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
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/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/20—Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04S—STEREOPHONIC SYSTEMS
- H04S3/00—Systems employing more than two channels, e.g. quadraphonic
- H04S3/008—Systems employing more than two channels, e.g. quadraphonic in which the audio signals are in digital form, i.e. employing more than two discrete digital channels
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stereophonic System (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
Un sistema de procesamiento de audio (100) comprende un componente frontal (102, 103), que recibe componentes espectrales cuantificados y realiza una cuantificación inversa, produciendo una representación en el dominio del tiempo de una señal intermedia. El sistema de procesamiento de audio comprende además una etapa de procesamiento en el dominio de la frecuencia (104, 105, 106, 107, 108), configurada para proporcionar una representación en el dominio del tiempo de una señal de audio procesada, y un convertidor de frecuencia de muestreo (109), que proporciona una imagen reconstruida. señal de audio muestreada en una frecuencia de muestreo objetivo. Las tasas de muestreo internas respectivas de la representación en el dominio del tiempo de la señal de audio intermedia y de la representación en el dominio del tiempo de la señal de audio procesada son iguales. En realizaciones particulares, (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Sistema de procesamiento de audio
Campo técnico
La presente invención se refiere a un sistema de procesamiento de audio, a un método para procesar un flujo de bits de audio y a un producto de programa informático que comprende un medio legible por ordenador con instrucciones para realizar el método.
Esta divulgación generalmente se relaciona con la codificación y decodificación de audio. Diversas realizaciones proporcionan sistemas de codificación y decodificación de audio (denominados sistemas de códec de audio) particularmente adecuados para la codificación y decodificación de voz.
Antecedentes
Los sistemas tecnológicos complejos, incluidos los sistemas de códec de audio, típicamente evolucionan de forma acumulativa durante un período de tiempo prolongado y, a menudo, por esfuerzos no coordinados en equipos de investigación y desarrollo independientes. Como resultado, tales sistemas pueden incluir combinaciones raras de componentes que representan diferentes paradigmas de diseño y/o niveles desiguales de progreso tecnológico. El deseo frecuente de preservar la compatibilidad con los equipos heredados impone una restricción adicional a los diseñadores y puede resultar en una arquitectura de sistema menos coherente. En los sistemas de códecs de audio multicanal paramétricos, la compatibilidad con versiones anteriores puede implicar, en particular, proporcionar un formato codificado en el que la señal de mezcla descendente devolverá una salida de sonido razonable cuando se reproduzca en un sistema de reproducción mono o estéreo sin capacidades de procesamiento.
Los formatos de codificación de audio disponibles que representan el estado de la técnica incluyen sonido envolvente MPEG, USAC y AAC v2 de alta eficiencia. Estos han sido ampliamente descritos y analizados en la literatura.
El documento EP 2360683 A1 divulga un decodificador de audio que usa una mezcla descendente eficiente, en el que el decodificador determina bloque por bloque si se aplica una mezcla descendente en el dominio frecuencia o una mezcla descendente en el dominio tiempo.
Sería deseable proponer un sistema de códec de audio versátil pero arquitectónicamente uniforme con un rendimiento razonable, especialmente para señales de voz.
Sumario
La invención se define como se establece en las reivindicaciones independientes.
Breve descripción de los dibujos
Ahora se describirán en detalle realizaciones dentro del concepto inventivo, con referencia a los dibujos adjuntos, en los que
la figura 1 es un diagrama de bloques generalizado que muestra una estructura general de un sistema de procesamiento de audio de acuerdo con una realización de ejemplo;
la figura 2 muestra rutas de procesamiento para dos modos de decodificación mono diferentes del sistema de procesamiento de audio;
la figura 3 muestra rutas de procesamiento para dos modos de decodificación estéreo paramétricos diferentes, uno sin aumento posterior a la mezcla ascendente y otro que incluye contenido de baja frecuencia codificado en forma de onda,
la figura 4 muestra una ruta de procesamiento para un modo de decodificación, en el que el sistema de procesamiento de audio procesa una señal estéreo totalmente codificada en forma de onda con canales codificados discretamente; la figura 5 muestra una ruta de procesamiento para un modo de decodificación en el que el sistema de procesamiento de audio proporciona una señal de cinco canales mediante la mezcla ascendente paramétrica de una señal de mezcla descendente de tres canales después de aplicar la replicación de banda espectral;
la figura 6 muestra la estructura de un sistema de procesamiento de audio de acuerdo con un ejemplo de realización, así como el funcionamiento interno de un componente del sistema;
la figura 7 es un diagrama de bloques generalizado de un sistema de decodificación de acuerdo con una realización de ejemplo;
la figura 8 ilustra una primera parte del sistema de decodificación de la figura 7;
la figura 9 ilustra una segunda parte del sistema de decodificación de la figura 7;
la figura 10 ilustra una tercera parte del sistema de decodificación de la figura 7;
la figura 11 es un diagrama de bloques generalizado de un sistema de decodificación de acuerdo con una realización de ejemplo;
la figura 12 ilustra una tercera parte del sistema de decodificación de la figura 11; y
la figura 13 es un diagrama de bloques generalizado de un sistema de decodificación de acuerdo con una realización de ejemplo;
la figura 14 ilustra una primera parte del sistema de decodificación de la figura 13;
la figura 15 ilustra una segunda parte del sistema de decodificación de la figura 13;
la figura 16 ilustra una tercera parte del sistema de decodificación de la figura 13;
la figura 17 es un diagrama de bloques generalizado de un sistema de codificación de acuerdo con una primera realización de ejemplo;
la figura 18 es un diagrama de bloques generalizado de un sistema de codificación de acuerdo con una segunda realización de ejemplo;
la figura 19a muestra un diagrama de bloques de un codificador de audio de ejemplo que proporciona un flujo de bits a una tasa de bits constante;
la figura 19b muestra un diagrama de bloques de un codificador de audio de ejemplo que proporciona un flujo de bits a una tasa de bits variable;
la figura 20 ilustra la generación de una envolvente de ejemplo basada en una pluralidad de bloques de coeficientes de transformada;
la figura 21a ilustra envolventes de ejemplo de bloques de coeficientes de transformada;
la figura 21b ilustra la determinación de un ejemplo de envolvente interpolada;
la figura 22 ilustra ejemplos de conjuntos de cuantizadores;
la figura 23a muestra un diagrama de bloques de un decodificador de audio de ejemplo;
la figura 23b muestra un diagrama de bloques de un decodificador de envolvente de ejemplo del decodificador de audio de la figura 23a;
la figura 23c muestra un diagrama de bloques de un predictor de subbanda de ejemplo del decodificador de audio de la figura 23a;
la figura 23d muestra un diagrama de bloques de un decodificador de espectro de ejemplo del decodificador de audio de la figura 23a;
la figura 24a muestra un diagrama de bloques de un conjunto de cuantizadores admisibles de ejemplo;
la figura 24b muestra un diagrama de bloques de un cuantizador con tramado de ejemplo;
la figura 24c ilustra una selección de ejemplo de cuantizadores basada en el espectro de un bloque de coeficientes de transformada;
la figura 25 ilustra un esquema de ejemplo para determinar un conjunto de cuantizadores en un codificador y en un decodificador correspondiente;
la figura 26 muestra un diagrama de bloques de un esquema de ejemplo para decodificar índices de cuantización codificados por entropía que se han determinado usando un cuantizador con tramado; y
la figura 27 ilustra un proceso de asignación de bits de ejemplo.
Todas las figuras son esquemáticas y generalmente solo muestran partes que son necesarias para aclarar la invención, mientras que otras partes pueden omitirse o simplemente sugerirse.
Descripción detallada
Un sistema de procesamiento de audio acepta un flujo de bits de audio segmentado en tramas que transportan datos de audio. Los datos de audio pueden haberse preparado muestreando una onda de sonido y transformando las muestras de tiempo electrónicas así obtenidas en coeficientes espectrales, que luego se cuantizan y codifican en un formato adecuado para su transmisión o almacenamiento. El sistema de procesamiento de audio está adaptado para reconstruir la onda de sonido muestreada, en formato monocanal, estéreo o multicanal. Como se usa en el presente documento, una señal de audio puede relacionarse con una señal de audio pura o la parte de audio de una señal de video, audiovisual o multimedia.
El sistema de procesamiento de audio generalmente se divide en un componente frontal, una etapa de procesamiento y un convertidor de frecuencia de muestreo. El componente frontal incluye: una etapa de descuantización adaptada para recibir coeficientes espectrales cuantizados y para emitir una primera representación del dominio frecuencia de una señal intermedia; y una etapa de transformada inversa para recibir la primera representación del dominio frecuencia de la señal intermedia y sintetizar, basándose en ella, una representación del dominio tiempo de la señal intermedia. La etapa de procesamiento, que puede ser posible omitir por completo en algunas realizaciones, incluye: un banco de filtros de análisis para recibir la representación del dominio tiempo de la señal intermedia y generar una segunda representación del dominio frecuencia de la señal intermedia; al menos un componente de procesamiento para recibir dicha segunda representación del dominio frecuencia de la señal intermedia y emitir una representación del dominio frecuencia de una señal de audio procesada; y un banco de filtros de síntesis para recibir la representación del dominio frecuencia de la señal de audio procesada y emitir una representación del dominio tiempo de la señal de audio procesada. El convertidor de frecuencia de muestreo, finalmente, está configurado para recibir la representación del dominio tiempo de la señal de audio procesada y para generar una señal de audio reconstruida muestreada en una frecuencia de muestreo de destino.
De acuerdo con una realización de ejemplo, el sistema de procesamiento de audio es una arquitectura de tasa única, en la que las tasas de muestreo internas respectivas de la representación del dominio tiempo de la señal de audio intermedia y de la representación del dominio tiempo de la señal de audio procesada son iguales.
En realizaciones de ejemplo concretas en las que la etapa frontal comprende un codificador central y la etapa de procesamiento comprende una etapa de mezcla ascendente paramétrica, el codificador central y la etapa de mezcla ascendente paramétrica funcionan a la misma frecuencia de muestreo. Adicional o alternativamente, el codificador central puede extenderse para manejar un rango más amplio de longitudes de transformada y el convertidor de tasa de muestreo puede configurarse para que coincida con las tasas de tramas de video estándar para permitir la decodificación de trama de audio videosincrónica. Esto se describirá con mayor detalle a continuación en la sección de codificación del modo de audio.
En aún otras realizaciones de ejemplo particulares, el componente frontal es operable en un modo de audio y un modo de voz diferente del modo de audio. Debido a que el modo de voz está específicamente adaptado para el contenido de voz, tales señales se pueden reproducir con mayor fidelidad. En el modo de audio, el componente frontal puede funcionar de manera similar a lo que se divulga en la figura 6 y las secciones asociadas de esta descripción. En el modo de voz, el componente frontal puede funcionar como se explica en particular a continuación en la sección de codificación del modo de voz.
En realizaciones de ejemplo, hablando en general, el modo de voz difiere del modo de audio del componente frontal en que la etapa de transformada inversa funciona a una longitud de trama más corta (o tamaño de transformada). Se ha demostrado que una longitud de trama reducida captura el contenido de voz de manera más eficiente. En algunas realizaciones de ejemplo, la longitud de la trama es variable dentro del modo de audio y dentro del modo de video; puede, por ejemplo, reducirse intermitentemente para capturar transitorios en la señal. En tales circunstancias, un cambio de modo del modo de audio al modo de voz implicará, todos los demás factores siendo iguales, una reducción de la longitud de trama de la etapa de transformada inversa. Dicho de otra manera, dicho cambio de modo del modo de audio al modo de voz implicará una reducción de la longitud máxima de trama (fuera de las longitudes de trama seleccionables dentro de cada modo de audio y modo de voz). En particular, la duración de la trama en el modo de voz puede ser una fracción fija (por ejemplo, 1/8) de la duración de la trama actual en el modo de audio.
En una realización de ejemplo, una línea de derivación paralela a la etapa de procesamiento permite que la etapa de procesamiento se omita en modos de decodificación en los que no se desea procesamiento en el dominio frecuencia. Esto puede ser adecuado cuando el sistema decodifica señales estéreo o multicanal codificadas discretamente, en
particular señales en las que el rango espectral completo está codificado en forma de onda (por lo que es posible que no se requiera la replicación de la banda espectral). Para evitar cambios de tiempo en ocasiones en las que la línea de derivación conmuta dentro o fuera de la ruta de procesamiento, la línea de derivación puede comprender preferiblemente una etapa de retardo que coincida con el retardo (o retardo algorítmico) de la etapa de procesamiento en su modo actual. En realizaciones en las que la etapa de procesamiento está dispuesta para tener un retardo constante (algorítmico) independientemente de su modo operativo actual, la etapa de retardo en la línea de derivación puede sufrir un retardo constante predeterminado; de lo contrario, la etapa de retardo en la línea de derivación es preferiblemente adaptativa y varía de acuerdo con el modo operativo actual de la etapa de procesamiento.
En una realización de ejemplo, la etapa de mezcla ascendente paramétrica funciona en un modo en el que recibe una señal de mezcla descendente de 3 canales y devuelve una señal de 5 canales. Opcionalmente, se puede disponer un componente de replicación de banda espectral aguas arriba de la etapa de mezcla ascendente paramétrica. En una configuración de canales de reproducción con tres canales frontales (por ejemplo, L, R, C) y dos canales de sonido envolvente (por ejemplo, Ls, Rs) y donde la señal codificada es 'pesada en la parte delantera', esta realización de ejemplo puede lograr una codificación más eficiente. De hecho, el ancho de banda disponible del flujo de bits de audio se gasta principalmente en un intento de codificar en forma de onda tanto como sea posible los tres canales frontales. Un dispositivo de codificación que prepara el flujo de bits de audio para ser decodificado por el sistema de procesamiento de audio puede seleccionar de forma adaptativa la decodificación en este modo midiendo las propiedades de la señal de audio que se va a codificar. Una realización de ejemplo del procedimiento de mezcla ascendente de mezcla ascendente de un canal de mezcla descendente en dos canales y el procedimiento de mezcla descendente correspondiente se explica a continuación bajo el título Codificación estéreo.
En un desarrollo adicional de la realización del ejemplo anterior, dos de los tres canales en la señal de mezcla descendente corresponden a canales codificados conjuntamente en el flujo de bits de audio. Tal codificación conjunta puede implicar que, por ejemplo, el ajuste de un canal se exprese en comparación con el otro canal. Se ha implementado un enfoque similar en la codificación estéreo de intensidad AAC, en la que se pueden codificar dos canales como un elemento de par de canales. Se ha demostrado mediante experimentos de escucha que, a una tasa de bits dada, la calidad percibida de la señal de audio reconstruida mejora cuando algunos canales de la señal de mezcla descendente se codifican conjuntamente.
En una realización de ejemplo, el sistema de procesamiento de audio comprende además un módulo de replicación de banda espectral. El módulo de replicación de banda espectral (o etapa de reconstrucción de alta frecuencia) se explica con mayor detalle a continuación bajo el título Codificación estéreo. El módulo de replicación de banda espectral está preferiblemente activo cuando la etapa de mezcla ascendente paramétrica realiza una operación de mezcla ascendente, es decir, cuando devuelve una señal con un número de canales mayor que la señal que recibe. Sin embargo, cuando la etapa de mezcla ascendente paramétrica actúa como un componente de paso, el módulo de replicación de banda espectral puede funcionar independientemente del modo actual particular de la etapa de mezcla ascendente paramétrica; es decir, en modos de decodificación no paramétricos, la funcionalidad de replicación de banda espectral es opcional.
En una realización de ejemplo, al menos dicho componente de procesamiento incluye además una etapa de codificación en forma de onda, que se describe con mayor detalle a continuación en la sección de codificación multicanal.
En una realización de ejemplo, el sistema de procesamiento de audio funciona para proporcionar una señal de mezcla descendente adecuada para equipos de reproducción heredados. Más precisamente, una señal de mezcla descendente estéreo se obtiene agregando contenido de canal de sonido envolvente en fase al primer canal en la señal de mezcla descendente y agregando contenido de canal de sonido envolvente desplazado en fase (por ejemplo, 90 grados) al segundo canal. Esto permite que el equipo de reproducción obtenga el contenido del canal de sonido envolvente mediante una operación combinada de cambio de fase inversa y sustracción. La señal de mezcla descendente puede ser aceptable para equipos de reproducción configurados para aceptar una señal de mezcla descendente total izquierda/total derecha. Preferiblemente, la funcionalidad de cambio de fase no es una configuración predeterminada del sistema de procesamiento de audio, pero se puede desactivar cuando el sistema de procesamiento de audio prepara una señal de mezcla descendente no destinada a equipos de reproducción de este tipo. De hecho, hay tipos de contenido especiales conocidos que se reproducen mal con señales de sonido envolvente con cambio de fase; en particular, el sonido grabado desde una fuente con una extensión espacial limitada que posteriormente se panoramiza entre una señal frontal izquierda y una señal de sonido envolvente izquierda no se percibirá, como se esperaba, como ubicado entre los altavoces frontal izquierdo y envolvente izquierdo correspondientes, pero según muchos oyentes no estará asociado a una ubicación espacial bien definida. Este artefacto se puede evitar implementando el cambio de fase del canal de sonido envolvente como una funcionalidad opcional no predeterminada.
En una realización de ejemplo, el componente frontal comprende un predictor, un decodificador de espectro, una unidad de suma y una unidad de aplanamiento inverso. Estos elementos, que mejoran el rendimiento del sistema cuando procesa señales de tipo voz, se describirán con mayor detalle a continuación bajo el título de codificación de modo de voz.
En una realización de ejemplo, el sistema de procesamiento de audio comprende además un decodificador Lfe para preparar al menos un canal adicional basado en información en el flujo de bits de audio. Preferiblemente, el decodificador Lfe proporciona un canal de efectos de baja frecuencia que está codificado en forma de onda, separado de los otros canales transportados por el flujo de bits de audio. Si el canal adicional se codifica discretamente con los otros canales de la señal de audio reconstruida, la ruta de procesamiento correspondiente puede ser independiente del resto del sistema de procesamiento de audio. Se entiende que cada canal adicional se suma al número total de canales en la señal de audio reconstruida; por ejemplo, en un caso de uso en el que una etapa de mezcla ascendente paramétrica, si se proporciona, funciona en un modo N = 5 y donde hay un canal adicional, el número total de canales en la señal de audio reconstruida será N 1 = 6.
Realizaciones de ejemplo adicionales proporcionan un método que incluye pasos correspondientes a las operaciones realizadas por el sistema de procesamiento de audio anterior cuando está en uso, y un producto de programa informático para hacer que una computadora programable realice dicho método.
El concepto inventivo se refiere además a un sistema de procesamiento de audio de tipo codificador para codificar una señal de audio en un flujo de bits de audio que tiene un formato adecuado para decodificar en el sistema de procesamiento de audio (de tipo decodificador) descrito anteriormente. El primer concepto inventivo abarca además métodos de codificación y productos de programas informáticos para preparar un flujo de bits de audio.
La figura 1 muestra un sistema 100 de procesamiento de audio de acuerdo con una realización de ejemplo. Un decodificador central 101 recibe un flujo de bits de audio y emite, al menos, coeficientes espectrales cuantizados, que se suministran a un componente frontal que comprende una etapa 102 de descuantización y una etapa 103 de transformada inversa. El componente frontal puede ser de un tipo de modo dual en algunas realizaciones de ejemplo. En esas realizaciones, se puede operar selectivamente en un modo de audio de propósito general y un modo de audio específico (por ejemplo, un modo de voz). Aguas abajo del componente frontal, una etapa de procesamiento está delimitada, en su extremo aguas arriba, por un banco 104 de filtros de análisis y, en su extremo aguas abajo, por un banco 108 de filtros de síntesis. Los componentes dispuestos entre el banco 104 de filtros de análisis y el banco 108 de filtros de síntesis realizan el procesamiento en el dominio frecuencia. En la realización del primer concepto que se muestra en la figura 1, estos componentes incluyen:
un componente 105 de compresión;
un componente combinado 106 para reconstrucción de alta frecuencia, estéreo paramétrico y mezcla ascendente; y
un componente 107 de control de rango dinámico.
El componente 106 puede, por ejemplo, realizar una mezcla ascendente como se describe a continuación en la sección de codificación estéreo de la presente descripción.
Aguas abajo de la etapa de procesamiento, el sistema 100 de procesamiento de audio comprende además un convertidor 109 de frecuencia de muestreo configurado para proporcionar una señal de audio reconstruida muestreada en una frecuencia de muestreo de destino.
En el extremo de aguas abajo, el sistema 100 puede incluir opcionalmente un componente de limitación de señal (no mostrado) responsable de cumplir una condición de no recorte.
Además, opcionalmente, el sistema 100 puede comprender una ruta de procesamiento en paralelo para proporcionar uno o más canales adicionales (por ejemplo, un canal de efectos de baja frecuencia). La ruta de procesamiento en paralelo puede implementarse como un decodificador Lfe (que no se muestra en ninguna de las figuras 1 y 3-11) que recibe los flujos de bits de audio o una porción de los mismos y que está dispuesto para insertar los canales adicionales así preparados en la señal de audio reconstruida; el punto de inserción puede estar inmediatamente aguas arriba del convertidor 109 de frecuencia de muestreo.
La figura 2 ilustra dos modos de decodificación mono del sistema de procesamiento de audio que se muestra en la figura 1 con el etiquetado correspondiente. Más precisamente, la figura 2 muestra los componentes del sistema que están activos durante la decodificación y que forman la ruta de procesamiento para preparar la señal de audio (mono) reconstruida basándose en el flujo de bits de audio. Se observa que las rutas de procesamiento en la figura 2 incluyen además un componente de limitación de señal final ("Lim") dispuesto para reducir la escala de los valores de la señal para cumplir con una condición de no recorte. El modo de decodificación superior en la figura 2 usa reconstrucción de alta frecuencia, mientras que el modo de decodificación inferior en la figura 2 decodifica un canal completamente codificado en forma de onda. En el modo de decodificación inferior, por lo tanto, el componente de reconstrucción de alta frecuencia ("HFR") ha sido reemplazado por una etapa de retardo ("Retardo") que incurre en un retardo igual al retardo algorítmico del componente HFR.
Como sugiere la parte inferior de la figura 2, también es posible omitir la etapa de procesamiento ("QMF", "Retardo", "DRC", "QMF-1") por completo; esto puede ser aplicable cuando no se realiza ningún procesamiento de control de rango dinámico (DRC) en la señal. Omitir la etapa de procesamiento elimina cualquier posible deterioro de la señal debido al análisis de QMF seguido de la síntesis de QMF, que puede implicar una reconstrucción no perfecta. La línea de derivación incluye una segunda etapa de línea de retardo configurada para retardar la señal en una cantidad igual al retardo total (algorítmico) de la etapa de procesamiento.
La figura 3 ilustra dos modos de decodificación estéreo paramétricos. En ambos modos, los canales estéreo se obtienen aplicando reconstrucción de alta frecuencia a un primer canal, produciendo una versión decorrelacionada de este usando un decorrelacionador ("D"), y luego formando una combinación lineal de ambos para obtener una señal estéreo. La combinación lineal es calculada por la etapa de mezcla ascendente ("mezcla ascendente") dispuesta aguas arriba de la etapa DRC. En uno de los modos, el que se muestra en la porción inferior del dibujo, el flujo de bits de audio transporta además contenido de baja frecuencia codificado en forma de onda para ambos canales (área sombreada por "\ \ \"). Los detalles de implementación del último modo se describen en las figuras 7 a 10 y las secciones correspondientes de la presente descripción.
La figura 4 ilustra un modo de decodificación en el que el sistema de procesamiento de audio procesa una señal estéreo totalmente codificada en forma de onda con canales codificados discretamente. Este es un modo estéreo de alta tasa de bits. Si no se considera necesario el procesamiento de DRC, la etapa de procesamiento se puede omitir por completo, usando las dos líneas de derivación con las respectivas etapas de retardo que se muestran en la figura 4. Las etapas de retardo incurren en un retardo igual al de la etapa de procesamiento cuando se encuentran en otros modos de decodificación, de modo que el cambio de modo puede ocurrir continuamente con respecto al contenido de la señal.
La figura 5 ilustra un modo de decodificación en el que el sistema de procesamiento de audio proporciona una señal de cinco canales mezclando de forma ascendente paramétricamente una señal de mezcla descendente de tres canales después de aplicar la replicación de banda espectral. Como ya se mencionó, es ventajoso codificar dos de los canales (área sombreada por "/ / /") conjuntamente (por ejemplo, como un elemento de par de canales) y el sistema de procesamiento de audio está diseñado preferiblemente para manejar un flujo de bits con esta propiedad. Para este propósito, el sistema de procesamiento de audio comprende dos secciones de recepción, la inferior configurada para decodificar el elemento del par de canales y la superior para decodificar el canal restante (área sombreada por "\ \ \"). Después de la reconstrucción de alta frecuencia en el dominio QMF, cada canal del par de canales se decorrelaciona por separado, después de lo cual una primera etapa de mezcla ascendente forma una primera combinación lineal de un primer canal y una versión decorrelacionada del mismo y una segunda etapa de mezcla ascendente forma una segunda combinación lineal del segundo canal y una versión decorrelacionada del mismo. Los detalles de implementación de este procesamiento se describen en las figuras 7 a 10 y las secciones correspondientes de la presente descripción. A continuación, el total de cinco canales se somete a procesamiento DRC antes de la síntesis QMF.
Codificación del modo de audio
La figura 6 es un diagrama de bloques generalizado de un sistema 100 de procesamiento de audio que recibe un flujo de bits de audio codificado P y con una señal de audio reconstruida, que se muestra como un par de señales de banda base estéreo L, R en la figura 6, como su salida final. En este ejemplo, se supondrá que el flujo de bits P comprende datos de audio de dos canales codificados por transformada y cuantizados. El sistema 100 de procesamiento de audio puede recibir el flujo de bits de audio P desde una red de comunicación, un receptor inalámbrico o una memoria (no mostrada). La salida del sistema 100 puede suministrarse a los altavoces para reproducción, o puede volver a codificarse en el mismo formato o en uno diferente para su transmisión adicional a través de una red de comunicación o enlace inalámbrico, o para almacenamiento en una memoria.
El sistema 100 de procesamiento de audio comprende un decodificador 108 para decodificar el flujo de bits P en coeficientes espectrales cuantizados y datos de control. Un componente frontal 110, cuya estructura se analizará con mayor detalle a continuación, descuantiza estos coeficientes espectrales y proporciona una representación del dominio tiempo de una señal de audio intermedia para ser procesada por la etapa 120 de procesamiento. La señal de audio intermedia es transformada por los bancos 122l, 122r de filtros de análisis en un segundo dominio frecuencia, diferente al asociado a la transformada de codificación mencionada anteriormente; la segunda representación del dominio frecuencia puede ser una representación de filtro espejo en cuadratura (QMF), en cuyo caso los bancos 122l, 122r de filtros de análisis pueden proporcionarse como bancos de filtros QMF. Aguas abajo de los bancos 122l, 122r de filtros de análisis, un módulo 124 de replicación de banda espectral (SBR) responsable de la reconstrucción de alta frecuencia y un módulo 126 de control de rango dinámico (DRC) procesan la segunda representación del dominio frecuencia de la señal de audio intermedia. Aguas abajo del mismo, los bancos 128l, 128r de filtros de síntesis producen una representación del dominio tiempo de la señal de audio así procesada. Como se dará cuenta el experto en la técnica después de estudiar esta divulgación, ni el módulo 124 de replicación de banda espectral ni el módulo 126 de control de rango dinámico son elementos necesarios de la invención; por el contrario, un sistema de procesamiento de audio de acuerdo con una realización de ejemplo diferente puede incluir módulos adicionales o alternativos dentro de la etapa 120 de procesamiento. Aguas abajo de la etapa 120 de procesamiento, se puede operar
un convertidor 130 de frecuencia de muestreo para ajustar la frecuencia de muestreo de la señal de audio procesada en una frecuencia de muestreo de audio deseada, como 44,1 kHz o 48 kHz, para la cual se diseña el equipo de reproducción previsto (no mostrado). Es conocido en sí mismo en la técnica cómo diseñar un convertidor 130 de frecuencia de muestreo con una cantidad baja de artefactos en la salida. El convertidor 130 de frecuencia de muestreo puede desactivarse en momentos en los que no se necesita la conversión de frecuencia de muestreo, es decir, cuando la etapa 120 de procesamiento suministra una señal de audio procesada que ya tiene la frecuencia de muestreo de destino. Un módulo 140 de limitación de señal opcional dispuesto aguas abajo del convertidor 130 de frecuencia de muestreo está configurado para limitar los valores de la señal de banda base según sea necesario, de acuerdo con una condición de no recorte, que nuevamente puede elegirse en vista del equipo de reproducción previsto particular.
Como se muestra en la porción inferior de la figura 6, el componente frontal 110 comprende una etapa 114 de descuantización, que puede funcionar en uno de varios modos con diferentes tamaños de bloque, y una etapa de transformada inversa 118l, 118r, que puede funcionar en diferentes tamaños de bloque también. Preferiblemente, los cambios de modo de la etapa 114 de descuantización y la etapa 118l, 118r de transformada inversa son síncronos, de modo que el tamaño del bloque coincida en todos los puntos en el tiempo. Aguas arriba de estos componentes, el componente frontal 110 comprende un demultiplexor 112 para separar los coeficientes espectrales cuantizados de los datos de control; típicamente, envía los datos de control a la etapa 118l, 118r de transformada inversa y envía los coeficientes espectrales cuantizados (y opcionalmente, los datos de control) a la etapa 114 de descuantización. La etapa 114 de descuantización realiza un mapeo desde una trama de índices de cuantización (típicamente representados como números enteros) a una trama de coeficientes espectrales (típicamente representados como números de punto flotante). Cada índice de cuantización está asociado con un nivel de cuantización (o punto de reconstrucción). Suponiendo que el flujo de bits de audio se haya preparado usando cuantización no uniforme, como se discutió anteriormente, la asociación no es única a menos que se especifique a qué banda de frecuencia se refiere el índice de cuantización. Dicho de otra manera, el proceso de descuantización puede seguir un libro de códigos diferente para cada banda de frecuencia, y el conjunto de libros de códigos puede variar en función de la longitud de la trama y/o la tasa de bits. En la figura 6, esto se ilustra esquemáticamente, en el que el eje vertical indica la frecuencia y el eje horizontal indica la cantidad asignada de bits de codificación por unidad de frecuencia. Téngase en cuenta que las bandas de frecuencia típicamente son más anchas para frecuencias más altas y terminan en la mitad de la frecuencia de muestreo interna fi. La frecuencia de muestreo interna puede asignarse a una frecuencia de muestreo física numéricamente diferente como resultado del nuevo muestreo en el convertidor 130 de frecuencia de muestreo; por ejemplo, un sobremuestreo del 4,3 % asignará fi = 46,034 kHz a la frecuencia física aproximada de 48 kHz y aumentará los límites de la banda de frecuencia inferior por el mismo factor. Como sugiere la figura 6, el codificador que prepara el flujo de bits de audio típicamente asigna diferentes cantidades de bits de codificación a diferentes bandas de frecuencia, de acuerdo con la complejidad de la señal codificada y las variaciones de sensibilidad esperadas del sentido del oído humano.
Los datos cuantitativos que caracterizan los modos operativos del sistema 100 de procesamiento de audio, y en particular el componente frontal 110, se dan en la tabla 1.
Las tres columnas destacadas en la tabla 1 contienen valores de cantidades controlables, mientras que las cantidades restantes pueden considerarse dependientes de estas. Se observa además que los valores ideales del factor de remuestreo (SRC) son (24/25) * (1000/1001) = 0,9560, 24/25 = 0,96 y 1000/1001 = 0,9990. Los valores del factor SRC enumerados en la tabla 1 están redondeados, al igual que los valores de tasa de trama. El factor de remuestreo 1.000 es exacto y corresponde a que el SRC 130 esté desactivado o completamente ausente. En realizaciones de ejemplo, el sistema 100 de procesamiento de audio funciona en al menos dos modos con diferentes longitudes de trama, uno o más de los cuales pueden coincidir con las entradas en la tabla 1.
Los modos a-d, en los que la longitud de trama del componente frontal se establece en 1920 muestras, se usan para manejar tasas de trama (audio) de 23,976, 24,000, 24,975 y 25,000 Hz, seleccionadas para que coincidan exactamente con las tasas de trama de video de formatos de codificación generalizados. Debido a las diferentes longitudes de trama, la frecuencia de muestreo interna (tasa de trama * longitud de trama) variará de aproximadamente 46,034 kHz a 48,000 kHz en los modos a-d; asumiendo un muestreo crítico e intervalos de frecuencia espaciados uniformemente, esto corresponderá a valores de ancho de intervalo en el rango de 11,988 Hz a 12,500 Hz (media frecuencia de muestreo interna/longitud de trama). Debido a que la variación en las frecuencias de muestreo internas es limitada (es de alrededor del 5 %, como consecuencia de que el rango de variación de las frecuencias de trama es de alrededor del 5 %), se considera que el sistema 100 de procesamiento de audio proporcionará una calidad de salida razonable en los cuatro modos a-d a pesar de la coincidencia no exacta de la frecuencia de muestreo física para la que se preparó el flujo de bits de audio entrante.
Continuando aguas abajo del componente frontal 110, el banco 122 de filtros de análisis (QMF) tiene 64 bandas, o 30 muestras por trama QMF, en todos los modos a-d. En términos físicos, esto corresponderá a un ancho ligeramente variable de cada banda de frecuencia de análisis, pero la variación es nuevamente tan limitada que puede despreciarse; en particular, los módulos 124, 126 de procesamiento SBR y DRC pueden ser independientes del modo actual sin detrimento de la calidad de salida. Sin embargo, el SRC 130 depende del modo y usará un factor de remuestreo específico, elegido para que coincida con el cociente de la frecuencia de muestreo externa de destino y la frecuencia de muestreo interna, para garantizar que cada trama de la señal de audio procesada contenga una cantidad de muestras correspondientes a una frecuencia de muestreo externa de destino de 48 kHz en unidades físicas.
En cada uno de los modos a-d, el sistema 100 de procesamiento de audio coincidirá exactamente tanto con la tasa de trama del video como con la frecuencia de muestreo externa. El sistema 100 de procesamiento de audio puede entonces manejar las partes de audio de los flujos de bits multimedia T1 y T2, donde las tramas A11, A12, A13, ...; A22, A23, A24, ... de audio y tramas V11, V12, V13, ...; V22, V23, V24 de video coinciden en el tiempo dentro de cada flujo. Entonces es posible mejorar la sincronicidad de los flujos T1, T2 eliminando una trama de audio y una trama de video asociado en el flujo principal. Alternativamente, una trama de audio y una trama de video asociada en el flujo desfasado se duplican e insertan junto a la posición original, posiblemente en combinación con medidas de interpolación para reducir los artefactos perceptibles.
Los modos e y f, destinados a manejar frecuencias de trama de 29,97 Hz y 30,00 Hz, se pueden distinguir como un segundo subgrupo. Como ya se explicó, la cuantización de los datos de audio se adapta (u optimiza) para una frecuencia de muestreo interna de aproximadamente 48 kHz. En consecuencia, debido a que cada trama es más corta, la longitud de la trama del componente frontal 110 se establece en las 1536 muestras de menor valor, de modo que resultan frecuencias de muestreo internas de aproximadamente 46,034 y 46,080 kHz. Si el banco 122 de filtros de análisis es independiente del modo con 64 bandas de frecuencia, cada trama QMF contendrá 24 muestras.
Del mismo modo, las tasas de trama de 50 Hz y 60 Hz o alrededor de ellos (correspondientes al doble de la frecuencia de actualización en formatos de televisión estandarizados) y 120 Hz están cubiertas por los modos g-i (longitud de trama 960 muestras), modos j-k (longitud de trama 768 muestras) y modo l (longitud de trama 384 muestras), respectivamente. Se observa que la frecuencia de muestreo interna se mantiene cerca de 48 kHz en cada caso, por lo que cualquier ajuste psicoacústico del proceso de cuantización mediante el cual se produjo el flujo de bits de audio seguirá siendo al menos aproximadamente válido. Las longitudes de trama QMF respectivas en un banco de filtros de 64 bandas serán de 15, 12 y 6 muestras.
Como se mencionó, el sistema 100 de procesamiento de audio puede funcionar para subdividir tramas de audio en subtramas más cortas; una razón para hacer esto puede ser capturar transitorios de audio de manera más eficiente.
Para una frecuencia de muestreo de 48 kHz y los ajustes proporcionados en la tabla 1, las tablas 2 a 4 a continuación muestran los anchos de intervalo y las longitudes de trama resultantes de la subdivisión en 2, 4, 8 y 16 subtramas. Se cree que los ajustes de acuerdo con la tabla 1 logran un equilibrio ventajoso de resolución de tiempo y frecuencia.
Las decisiones relativas a la subdivisión de una trama pueden tomarse como parte del proceso de preparación del flujo de bits de audio, como en un sistema de codificación de audio (no mostrado). Como se ilustra mediante el modo m en la tabla 1, el sistema 100 de procesamiento de audio puede habilitarse además para operar a una frecuencia de muestreo externa incrementada de 96 kHz y con 128 bandas QMF, correspondientes a 30 muestras por trama QMF. Debido a que la frecuencia de muestreo externo coincide incidentalmente con la frecuencia de muestreo interno, el factor SRC es la unidad, lo que corresponde a que no es necesario un nuevo muestreo.
Codificación multicanal
Tal como se usa en esta sección, una señal de audio puede ser una señal de audio pura, una parte de audio de una señal audiovisual o una señal multimedia o cualquiera de estas en combinación con metadatos.
Tal como se usa en esta sección, la mezcla descendente de una pluralidad de señales significa combinar la pluralidad de señales, por ejemplo, formando combinaciones lineales, de modo que se obtenga un número menor de señales. La operación inversa a la mezcla descendente se denomina mezcla ascendente, es decir, realizar una operación en un número menor de señales para obtener un número mayor de señales.
La figura 7 es un diagrama de bloques generalizado de un decodificador 100 en un sistema de procesamiento de audio multicanal para reconstruir M canales codificados. El decodificador 100 comprende tres partes conceptuales 200, 300, 400 que se explicarán con mayor detalle junto con la figura 17-19 a continuación. En la primera parte conceptual 200, el codificador recibe N señales de mezcla descendente codificadas en forma de onda y M señales codificadas en forma de onda que representan la señal de audio multicanal a decodificar, en donde 1<N<M. En el ejemplo ilustrado, N se establece en 2. En la segunda parte conceptual 300, las M señales codificadas en forma de onda se mezclan de forma descendente y se combinan con las N señales codificadas en forma de onda. A continuación, se realiza la reconstrucción de alta frecuencia (HFR) para las señales de mezcla descendente combinadas. En la tercera parte conceptual 400, las señales reconstruidas de alta frecuencia se mezclan de forma ascendente y las señales codificadas en forma de onda M se combinan con las señales de mezcla ascendente para reconstruir canales codificados M.
En la realización de ejemplo descrita junto con las figuras 8-10, se describe la reconstrucción de un sonido envolvente 5.1 codificado. Cabe señalar que la señal de efecto de baja frecuencia no se menciona en la realización descrita ni en los dibujos. Esto no significa que se descuiden los efectos de baja frecuencia. Los efectos de baja frecuencia (Lfe) se agregan a los 5 canales reconstruidos de cualquier forma adecuada bien conocida por un experto en la técnica.
También se puede observar que el decodificador descrito es igualmente adecuado para otros tipos de sonido envolvente codificado, como sonido envolvente 7.1 o 9.1.
La figura 8 ilustra la primera parte conceptual 200 del decodificador 100 de la figura 7. El decodificador comprende dos etapas 212, 214 de recepción. En la primera etapa 212 de recepción, un flujo 202 de bits se descodifica y descuantiza en dos señales de mezcla descendente codificadas en forma de onda 208a-b. Cada una de las dos señales 208a-b de mezcla descendente codificadas en forma de onda comprende coeficientes espectrales correspondientes a frecuencias entre una primera frecuencia de cruce ky y una segunda frecuencia de cruce kx .
En la segunda etapa 214 de recepción, el flujo 202 de bits se decodifica y descuantiza en cinco señales codificadas en forma de onda 210a-e. Cada una de las cinco señales 210a-e de mezcla descendente codificadas en forma de onda comprende coeficientes espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce kx .
A modo de ejemplo, las señales 210a-e comprenden dos elementos de pares de canales y un elemento de un solo canal para el canal central. Los elementos del par de canales pueden ser, por ejemplo, una combinación de la señal frontal izquierda y envolvente izquierda y una combinación de la señal frontal derecha y envolvente derecha. Otro ejemplo es una combinación de las señales delantera izquierda y delantera derecha y una combinación de la señal de sonido envolvente izquierda y derecha. Estos elementos de pares de canales pueden codificarse, por ejemplo, en un formato de suma y diferencia. Las cinco señales 210a-e se pueden codificar usando transformadas de ventanas superpuestas con ventanas independientes y todavía pueden ser decodificadas por el decodificador. Esto puede permitir una calidad de codificación mejorada y, por lo tanto, una calidad mejorada de la señal decodificada.
A modo de ejemplo, la primera frecuencia de cruce ky es de 1,1 kHz. A modo de ejemplo, la segunda frecuencia de cruce kx se encuentra dentro del rango de 5,6-8 kHz. Cabe señalar que la primera frecuencia de cruce ky puede variar, incluso en una señal individual, es decir, el codificador puede detectar que un componente de señal en una señal de salida específica puede no ser reproducido fielmente por las señales 208a-b de mezcla descendente estéreo y puede para esa instancia de tiempo particular aumentar el ancho de banda, es decir, la primera frecuencia de cruce ky , de la señal codificada en forma de onda relevante, es decir, 210a-e, para realizar la codificación en forma de onda adecuada del componente de señal.
Como se describirá más adelante en esta descripción, las etapas restantes del codificador 100 típicamente funcionan en el dominio filtro espejo en cuadratura (QMF). Por esta razón, cada una de las señales 208a-b, 210a-e recibidas por la primera y segunda etapa 212, 214 de recepción, que se reciben en forma de transformada de coseno discreta modificada (MDCT), se transforman al dominio tiempo aplicando una MDCT inversa 216. Después, cada señal se vuelve a transformar al dominio frecuencia aplicando una transformada QMF 218.
En la figura 9, las cinco señales codificadas en forma de onda 210 se mezclan de forma descendente en dos señales 310, 312 de mezcla descendente que comprenden coeficientes espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce ky en una etapa 308 de mezcla descendente. Estas señales 310, 312 de mezcla descendente pueden formarse realizando una mezcla descendente en las señales multicanal 210a-e de paso bajo usando el mismo esquema de mezcla descendente que se usó en un codificador para crear las dos señales 208a-b de mezcla descendente que se muestran en la figura 8.
Las dos nuevas señales 310, 312 de mezcla descendente se combinan luego en una primera etapa 320, 322 de combinación con la señal 208a-b de mezcla descendente correspondiente para formar señales 302a-b de mezcla descendente combinadas. Cada una de las señales 302a-b de mezcla descendente combinadas comprende, por lo tanto, coeficientes espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce ky que se origina a partir de las señales 310, 312 de mezcla descendente y coeficientes espectrales correspondientes a frecuencias entre la primera frecuencia de cruce ky y la segunda frecuencia de cruce kx que se origina a partir de las dos señales 208a-b de mezcla descendente codificadas en forma de onda recibidas en la primera etapa 212 de recepción (mostrada en la figura 8).
El codificador comprende además una etapa 314 de reconstrucción de alta frecuencia (HFR). La etapa HFR está configurada para extender cada una de las dos señales 302a-b de mezcla descendente combinadas desde la etapa de combinación a un rango de frecuencia por encima de la segunda frecuencia de cruce kx realizando una reconstrucción de alta frecuencia. La reconstrucción de alta frecuencia realizada puede comprender, de acuerdo con algunas realizaciones, realizar la replicación de banda espectral, SBR. La reconstrucción de alta frecuencia puede realizarse usando parámetros de reconstrucción de alta frecuencia que pueden ser recibidos por la etapa HFR 314 de cualquier forma adecuada.
La salida de la etapa 314 de reconstrucción de alta frecuencia son dos señales 304a-b que comprenden las señales 208a-b de mezcla descendente con la extensión HFR 316, 318 aplicada. Como se describió anteriormente, la etapa HFR 314 está realizando una reconstrucción de alta frecuencia basada en las frecuencias presentes en la señal 210ae de entrada desde la segunda etapa 214 de recepción (que se muestra en la figura 8) combinada con las dos señales 208a-b de mezcla descendente. Algo simplificado, el rango HFR 316, 318 comprende partes de los coeficientes espectrales de las señales 310, 312 de mezcla descendente que se han copiado hasta el rango HFR 316, 318. En
consecuencia, partes de las cinco señales codificadas en forma de onda 210a-e aparecerán en el rango HFR 316, 318 de la salida 304 de la etapa HFR 314.
Cabe señalar que la mezcla descendente en la etapa 308 de mezcla descendente y la combinación en la primera etapa 320, 322 de combinación antes de la etapa 314 de reconstrucción de alta frecuencia se pueden realizar en el dominio tiempo, es decir, después de que cada señal se haya transformado en el dominio tiempo aplicando una transformada 216 de coseno discreta modificada inversa (MDCT) (mostrada en la figura 8). Sin embargo, dado que las señales codificadas en forma de onda 210a-e y las señales 208a-b de mezcla descendente codificadas en forma de onda pueden codificarse mediante un codificador en forma de onda usando transformadas de ventanas superpuestas con ventanas independientes, las señales 210a-e y 208a-b no pueden ser combinadas sin inconvenientes en un dominio tiempo. Por lo tanto, se logra un escenario mejor controlado si al menos la combinación en la primera etapa 320, 322 de combinación se realiza en el dominio QMF.
La figura 10 ilustra la tercera y última parte conceptual 400 del codificador 100. La salida 304 de la etapa HFR 314 constituye la entrada a una etapa 402 de mezcla ascendente. La etapa 402 de mezcla ascendente crea una salida de cinco señales 404a-e realizando una mezcla ascendente paramétrica en las señales extendidas 304a-b de frecuencia. Cada una de las cinco señales 404a-e de mezcla ascendente corresponde a uno de los cinco canales codificados en el sonido envolvente 5.1 codificado para frecuencias por encima de la primera frecuencia de cruce ky . De acuerdo con un procedimiento de ejemplo de mezcla ascendente paramétrica, la etapa 402 de mezcla ascendente recibe primero parámetros de mezcla paramétrica. La etapa 402 de mezcla ascendente genera además versiones decorrelacionadas de las dos señales 304a-b de mezcla descendente combinadas extendidas de frecuencia. La etapa 402 de mezcla ascendente somete además las señales 304a-b de mezcla descendente combinadas extendidas de dos frecuencias y las versiones decorrelacionadas de las señales 304a-b de mezcla descendente combinadas extendidas de dos frecuencias a una operación matricial, en la que los parámetros de la operación matricial están dados por los parámetros de mezcla ascendente. Alternativamente, se puede aplicar cualquier otro procedimiento de mezcla ascendente paramétrico conocido en la técnica. Los procedimientos de mezcla ascendente paramétrica aplicables se describen, por ejemplo, en "Sonido envolvente MPEG: el estándar ISO/MPEG para la codificación de audio multicanal eficiente y compatible" (Herre et al., Journal of the Audio Engineering Society, vol. 56, N° 11, noviembre de 2008).
La salida 404a-e de la etapa 402 de mezcla ascendente no comprende, por lo tanto, frecuencias por debajo de la primera frecuencia de cruce ky. Los coeficientes espectrales restantes correspondientes a frecuencias hasta la primera frecuencia de cruce ky existen en las cinco señales codificadas en forma de onda 210a-e que han sido retrasadas por una etapa 412 de retardo para coincidir con la sincronización de las señales 404 de mezcla ascendente.
El codificador 100 comprende además una segunda etapa 416, 418 de combinación. La segunda etapa 416, 418 de combinación está configurada para combinar las cinco señales 404a-e de mezcla ascendente con las cinco señales codificadas en forma de onda 210a-e que recibió la segunda etapa 214 de recepción (que se muestra en la figura 8).
Cabe señalar que cualquier señal Lfe presente puede agregarse como una señal separada a la señal combinada resultante 422. Después, cada una de las señales 422 se transforma al dominio tiempo aplicando una transformada QMF inversa 420. La salida de la transformada QMF inversa 414 es, por lo tanto, la señal de audio de canal 5.1 completamente decodificada.
La figura 11 ilustra un sistema 100' de decodificación que es una modificación del sistema 100 de decodificación de la figura 7. El sistema 100' de decodificación tiene partes conceptuales 200', 300' y 400' correspondientes a las partes conceptuales 100, 200 y 300 de la figura 16. La diferencia entre el sistema 100' de decodificación de la figura 11 y el sistema de decodificación de la figura 7 es que existe una tercera etapa 616 de recepción en la parte conceptual 200' y una etapa 714 de intercalado en la tercera parte conceptual 400'.
La tercera etapa 616 de recepción está configurada para recibir otra señal codificada en forma de onda. La señal codificada en forma de onda adicional comprende coeficientes espectrales correspondientes a un subconjunto de las frecuencias por encima de la primera frecuencia de cruce. La señal codificada en forma de onda adicional puede transformarse en el dominio tiempo aplicando una MDCT 216 inversa. Luego puede volver a transformarse al dominio frecuencia aplicando una transformada QMF 218.
Debe entenderse que la señal codificada en forma de onda adicional puede recibirse como una señal separada. Sin embargo, la señal codificada en forma de onda adicional también puede formar parte de una o más de las cinco señales codificadas en forma de onda 210a-e. En otras palabras, la señal codificada en forma de onda adicional puede codificarse conjuntamente con una o más de las cinco señales codificadas en forma de onda 201a-e, por ejemplo, usando la misma transformada MCDT. Si es así, la tercera etapa 616 de recepción corresponde a la segunda etapa de recepción, es decir, la otra señal codificada en forma de onda se recibe junto con las cinco señales codificadas en forma de onda 210a-e a través de la segunda etapa 214 de recepción.
La figura 12 ilustra con más detalle la tercera parte conceptual 300' del decodificador 100' de la figura 11. La señal codificada en forma de onda adicional 710 se introduce en la tercera parte conceptual 400' además de las señales 304a-b de mezcla descendente extendidas de alta frecuencia y las cinco señales codificadas en forma de onda 210ae. En el ejemplo ilustrado, la otra señal codificada en forma de onda 710 corresponde al tercer canal de los cinco canales. La señal codificada en forma de onda adicional 710 comprende además coeficientes espectrales correspondientes a un intervalo de frecuencia que comienza desde la primera frecuencia de cruce ky . Sin embargo, la forma del subconjunto del rango de frecuencia por encima de la primera frecuencia de cruce cubierta por la señal codificada en forma de onda adicional 710 puede, por supuesto, variar en diferentes realizaciones. También cabe señalar que se puede recibir una pluralidad de señales codificadas en forma de onda 710a-e, donde las diferentes señales codificadas en forma de onda pueden corresponder a diferentes canales de salida. El subconjunto del rango de frecuencia cubierto por la pluralidad de otras señales codificadas en forma de onda 710a-e puede variar entre diferentes señales de la pluralidad de otras señales codificadas en forma de onda 710a-e.
La señal codificada en forma de onda adicional 710 puede retrasarse mediante una etapa 712 de retardo para que coincida con la sincronización de las señales 404 de mezcla ascendente que se emiten desde la etapa 402 de mezcla ascendente. Las señales 404 de mezcla ascendente y la otra señal codificada en forma de onda 710 se introducen luego en una etapa 714 de intercalado. La etapa 714 de intercalado intercala, es decir, combina las señales 404 de mezcla ascendente con la señal codificada en forma de onda adicional 710 para generar una señal intercalada 704. En el presente ejemplo, la etapa 714 de intercalado intercala así la tercera señal 404c de mezcla ascendente con la otra señal codificada en forma de onda 710. El intercalado se puede realizar sumando las dos señales juntas. Sin embargo, típicamente, el intercalado se realiza reemplazando las señales 404 de mezcla ascendente con la señal codificada en forma de onda adicional 710 en el rango de frecuencia y el rango de tiempo donde las señales se superponen.
La señal intercalada 704 luego se introduce en la segunda etapa 416, 418 de combinación, donde se combina con las señales codificadas en forma de onda 201a-e para generar una señal 722 de salida de la misma manera que se describe con referencia a la figura 19. Cabe señalar que el orden de la etapa 714 de intercalado y la segunda etapa 416, 418 de combinación puede invertirse para que la combinación se realice antes que el intercalado.
Además, en la situación en la que la señal codificada en forma de onda adicional 710 forma parte de una o más de las cinco señales codificadas en forma de onda 210a-e, la segunda etapa 416, 418 de combinación y la etapa 714 de intercalado pueden combinarse en una sola etapa. Específicamente, tal etapa combinada usaría el contenido espectral de las cinco señales codificadas en forma de onda 210a-e para frecuencias hasta la primera frecuencia de cruce ky . Para frecuencias por encima de la primera frecuencia de cruce, la etapa combinada usaría las señales 404 de mezcla ascendente intercaladas con la señal codificada en forma de onda adicional 710.
La etapa 714 de intercalado puede operar bajo el control de una señal de control. Para este propósito, el decodificador 100' puede recibir, por ejemplo a través de la tercera etapa 616 de recepción, una señal de control que indica cómo intercalar la otra señal codificada en forma de onda con una de las M señales de mezcla ascendente. Por ejemplo, la señal de control puede indicar el rango de frecuencia y el rango de tiempo para el cual la señal codificada en forma de onda adicional 710 se intercalará con una de las señales 404 de mezcla ascendente. Por ejemplo, el rango de frecuencia y el rango de tiempo pueden expresarse en términos de losetas de tiempo/frecuencia para los que se va a realizar el intercalado. Las losetas de tiempo/frecuencia pueden ser losetas de tiempo/frecuencia con respecto a la cuadrícula de tiempo/frecuencia del dominio QMF donde tiene lugar el intercalado.
La señal de control puede usar vectores, tales como vectores binarios, para indicar las losetas de tiempo/frecuencia para los que se va a realizar el intercalado. Específicamente, puede haber un primer vector relacionado con una dirección de frecuencia, que indica las frecuencias para las que se va a realizar el intercalado. La indicación puede realizarse, por ejemplo, indicando un uno lógico para el intervalo de frecuencia correspondiente en el primer vector. También puede haber un segundo vector relacionado con una dirección de tiempo, que indica los intervalos de tiempo para los que se va a realizar el intercalado. La indicación puede realizarse, por ejemplo, indicando un uno lógico para el intervalo de tiempo correspondiente en el segundo vector. Para este propósito, una trama de tiempo se divide típicamente en una pluralidad de intervalos de tiempo, de manera que la indicación de tiempo se puede realizar sobre la base de una subtrama. Mediante la intersección del primer y el segundo vector, se puede construir una matriz de tiempo/frecuencia. Por ejemplo, la matriz de tiempo/frecuencia puede ser una matriz binaria que comprende un uno lógico para cada loseta de tiempo/frecuencia para el que el primer y el segundo vector indican un uno lógico. La etapa 714 de intercalado puede entonces usar la matriz de tiempo/frecuencia al realizar el intercalado, por ejemplo, de modo que una o más de las señales 704 de mezcla ascendente se reemplacen por la señal codificada en forma de onda adicional 710 para las losetas de tiempo/frecuencia que se indican, como por un uno lógico, en la matriz tiempo/frecuencia.
Se observa que los vectores pueden usar otros esquemas además de un esquema binario para indicar las losetas de tiempo/frecuencia para las que se va a realizar el intercalado. Por ejemplo, los vectores podrían indicar mediante un primer valor como un cero que no se va a realizar ningún intercalado, y mediante un segundo valor que se va a realizar un intercalado con respecto a un determinado canal identificado por el segundo valor.
Codificación estéreo
Como se usa en esta sección, la codificación o codificación izquierda-derecha significa que las señales estéreo izquierda (L) y derecha (R) se codifican sin realizar ninguna transformación entre las señales.
Como se usa en esta sección, la codificación o codificación de suma y diferencia significa que la suma M de las señales estéreo izquierda y derecha se codifica como una señal (suma) y la diferencia S entre la señal estéreo izquierda y derecha se codifica como una señal (diferencia). La codificación de suma y diferencia también puede denominarse codificación central-lateral. La relación entre la forma izquierda-derecha y la forma de suma-diferencia es, por lo tanto, M = L R y S = L - R. Cabe señalar que son posibles diferentes normalizaciones o escalas cuando se transforman las señales estéreo izquierda y derecha en la suma y diferencia de forma y viceversa, siempre que la transformada en ambas direcciones coincida. En esta divulgación, se usa principalmente M = L R y S = L - R, pero un sistema que usa una escala diferente, por ejemplo, M = (L R)/2 y S = (L - R)/2 funcionan igualmente bien.
Como se usa en esta sección, la codificación o codificación mezcla descendente-complementaria (dmx/comp) significa someter la señal estéreo izquierda y derecha a una multiplicación de matriz dependiendo de un parámetro de ponderación a antes de la codificación. La codificación dmx/comp también puede denominarse codificación dmx/comp/a. La relación entre la forma mezcla descendente-complementaria, la forma izquierda-derecha y la forma de suma-diferencia es típicamente dmx = L R = M, y comp = (1 - a)L -(1 a)R = -aM S. En particular, la señal de mezcla descendente en la representación de mezcla descendente-complementaria es equivalente a la señal de suma M de la representación de suma y diferencia.
Como se usa en esta sección, una señal de audio puede ser una señal de audio pura, una parte de audio de una señal audiovisual o una señal multimedia o cualquiera de estas en combinación con metadatos.
La figura 13 es un diagrama de bloques generalizado de un sistema 100 de decodificación que comprende tres partes conceptuales 200, 300, 400 que se explicarán con mayor detalle junto con la figura 14-16 a continuación. En la primera parte conceptual 200, se recibe un flujo de bits y se decodifica en una primera y una segunda señal. La primera señal comprende una primera señal codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias hasta una primera frecuencia de cruce y una señal de mezcla descendente codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias por encima de la primera frecuencia de cruce. La segunda señal solo comprende una segunda señal codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce.
En la segunda parte conceptual 300, en caso de que las partes codificadas en forma de onda de la primera y segunda señal no estén en forma de suma y diferencia, por ejemplo, en una forma M/S, las partes codificadas en forma de onda de la primera y segunda señal se transforman a la forma de suma y diferencia. Después de eso, la primera y la segunda señal se transforman en el dominio tiempo y luego en el dominio filtro espejo en cuadratura, QMF. En la tercera parte conceptual 400, la primera señal es reconstruida de alta frecuencia (HFR). Tanto la primera como la segunda señal se mezclan de forma ascendente para crear una salida de señal estéreo izquierda y derecha que tiene coeficientes espectrales correspondientes a la banda de frecuencia completa de la señal codificada que está siendo decodificada por el sistema 100 de decodificación.
La figura 14 ilustra la primera parte conceptual 200 del sistema 100 de decodificación de la figura 13. El sistema 100 de decodificación comprende una etapa 212 de recepción. En la etapa 212 de recepción, una trama de flujo 202 de bits se descodifica y se descuantiza en una primera señal 204a y una segunda señal 204b. La trama de flujo 202 de bits corresponde a una trama de tiempo de las dos señales de audio que se están decodificando. La primera señal 204a comprende una primera señal codificada en forma de onda 208 que comprende datos espectrales correspondientes a frecuencias hasta una primera frecuencia de cruce ky y una señal de mezcla descendente codificada en forma de onda 206 que comprende datos espectrales correspondientes a frecuencias por encima de la primera frecuencia de cruce ky. A modo de ejemplo, la primera frecuencia de cruce ky es de 1,1 kHz.
De acuerdo con algunas realizaciones, la señal 206 de mezcla descendente codificada en forma de onda comprende datos espectrales correspondientes a frecuencias entre la primera frecuencia de cruce ky y una segunda frecuencia de cruce kx . A modo de ejemplo, la segunda frecuencia de cruce kx se encuentra dentro del rango de 5,6-8 kHz.
La primera y la segunda señal codificada en forma de onda recibidas 208, 210 pueden codificarse en forma de onda en una forma izquierda-derecha, una forma de suma-diferencia y/o una forma de mezcla descendente-complementaria en la que la señal complementaria depende de un parámetro de ponderación a que se adapta a la señal. La señal 206 de mezcla descendente codificada en forma de onda corresponde a una mezcla descendente adecuada para estéreo paramétrico que, de acuerdo con lo anterior, corresponde a una forma de suma. Sin embargo, la señal 204b no tiene contenido por encima de la primera frecuencia de cruce ky . Cada una de las señales 206, 208, 210 se representa en un dominio transformada de coseno discreta modificada (MDCT).
La figura 15 ilustra la segunda parte conceptual 300 del sistema 100 de decodificación de la figura 13. El sistema 100 de decodificación comprende una etapa 302 de mezcla. El diseño del sistema 100 de decodificación requiere que la entrada a la etapa de reconstrucción de alta frecuencia, que se describirá con mayor detalle a continuación, debe estar en un formato de suma. En consecuencia, la etapa de mezcla está configurada para comprobar si la primera y la
segunda señal codificada en forma de onda 208, 210 están en forma de suma y diferencia. Si la primera y la segunda señal codificada en forma de onda 208, 210 no están en forma de suma y diferencia para todas las frecuencias hasta la primera frecuencia de cruce ky , la etapa 302 de mezcla transformará toda la señal codificada en forma de onda 208, 210 en forma de suma y diferencia. En caso de que al menos un subconjunto de las frecuencias de las señales de entrada 208, 210 a la etapa 302 de mezcla esté en una forma de mezcla descendente-complementaria, el parámetro de ponderación a se requiere como entrada a la etapa 302 de mezcla. Puede observarse que las señales 208, 210 de entrada pueden comprender varios subconjuntos de frecuencias codificadas en una forma de mezcla descendentecomplementaria y que en ese caso cada subconjunto no tiene que codificarse con el uso del mismo valor del parámetro de ponderación a. En este caso, se requieren varios parámetros de ponderación a como entrada para la etapa 302 de mezcla.
Como se mencionó anteriormente, la etapa 302 de mezcla siempre emite una representación de suma y diferencia de las señales 204a-b de entrada. Para poder transformar las señales representadas en el dominio MDCT en la representación de suma y diferencia, la ventana de las señales codificadas MDCT debe ser la misma. Esto implica que, en caso de que la primera y la segunda señal codificada en forma de onda 208, 210 estén en una forma L/R o de mezcla descendente-complementaria, la ventana para la señal 204a y la ventana para la señal 204b no pueden ser independientes.
En consecuencia, en caso de que la primera y la segunda señal codificada en forma de onda 208, 210 estén en forma de suma y diferencia, la ventana para la señal 204a y la ventana para la señal 204b pueden ser independientes.
Después de la etapa 302 de mezcla, la señal de suma y diferencia se transforma en el dominio tiempo aplicando una transformada 312 de coseno discreta modificada inversa (MDCT-1).
Las dos señales 304a-b luego se analizan con dos bancos QMF 314. Dado que la señal 306 de mezcla descendente no comprende las frecuencias más bajas, no hay necesidad de analizar la señal con un banco de filtros Nyquist para aumentar la resolución de frecuencia. Esto se puede comparar con los sistemas en los que la señal de mezcla descendente comprende frecuencias bajas, por ejemplo, decodificación estéreo paramétrica convencional como MPEG-4 estéreo paramétrico. En esos sistemas, la señal de mezcla descendente debe analizarse con el banco de filtros Nyquist para aumentar la resolución de frecuencia más allá de lo que se logra con un banco QMF y, por lo tanto, coincidir mejor con la selectividad de frecuencia del sistema auditivo humano, como por ejemplo, representado por la escala de frecuencia de Bark.
La señal 304 de salida de los bancos QMF 314 comprende una primera señal 304a que es una combinación de una señal 308 de suma codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce ky y la señal 306 de mezcla descendente codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias entre la primera frecuencia de cruce ky y la segunda frecuencia de cruce kx . La señal 304 de salida comprende además una segunda señal 304b que comprende una señal 310 de diferencia codificada en forma de onda que comprende datos espectrales correspondientes a frecuencias hasta la primera frecuencia de cruce ky . La señal 304b no tiene contenido por encima de la primera frecuencia de cruce ky .
Como se describirá más adelante, una etapa 416 de reconstrucción de alta frecuencia (que se muestra junto con la figura 16) usa las frecuencias más bajas, es decir, la primera señal codificada en forma de onda 308 y la señal 306 de mezcla descendente codificada en forma de onda de la señal 304 de salida, para reconstruir las frecuencias por encima de la segunda frecuencia de cruce kx . Es ventajoso que la señal sobre la que funciona la etapa 416 de reconstrucción de alta frecuencia sea una señal de tipo similar en las frecuencias más bajas. Desde esta perspectiva, es ventajoso tener la etapa 302 de mezcla para generar siempre una representación de suma y diferencia de la primera y la segunda señal codificada en forma de onda 208, 210, ya que esto implica que la primera señal codificada en forma de onda 308 y la señal 306 de mezcla descendente codificada en forma de onda de la primera señal emitida 304a son de carácter similar.
La figura 16 ilustra la tercera parte conceptual 400 del sistema 100 de decodificación de la figura 13. La etapa 416 de reconstrucción de alta frecuencia (HRF) está extendiendo la señal 306 de mezcla descendente de la primera señal 304a de entrada de señal a un rango de frecuencia por encima de la segunda frecuencia de cruce kx realizando una reconstrucción de alta frecuencia. Dependiendo de la configuración de la etapa 416 de HFR, la entrada a la etapa 416 de HFR es la señal completa 304a o solo la señal 306 de mezcla descendente. La reconstrucción de alta frecuencia se realiza usando parámetros de reconstrucción de alta frecuencia que pueden ser recibidos por la etapa 416 de reconstrucción de alta frecuencia de cualquier forma adecuada. De acuerdo con una realización, la reconstrucción de alta frecuencia realizada comprende realizar la replicación de banda espectral, SBR.
La salida de la etapa 314 de reconstrucción de alta frecuencia es una señal 404 que comprende la señal 406 de mezcla descendente con la extensión SBR 412 aplicada. La señal reconstruida 404 de alta frecuencia y la señal 304b se alimentan luego a una etapa 420 de mezcla ascendente para generar una señal estéreo izquierda L y derecha R 412ab. Para los coeficientes espectrales correspondientes a frecuencias por debajo de la primera frecuencia de cruce ky, la mezcla ascendente comprende realizar una transformación inversa de suma y diferencia de la primera y la segunda señal 408, 310. Esto simplemente significa pasar de una representación central-lateral a una representación de
izquierda a derecha como se describió anteriormente. Para los coeficientes espectrales correspondientes a las frecuencias por encima de la primera frecuencia de cruce ky , la señal 406 de mezcla descendente y la extensión SBR 412 se alimentan a través de un decorrelator 418. La señal 406 de mezcla descendente y la extensión SBR 412 y la versión decorrelacionada de la señal 406 de mezcla descendente y la extensión SBR 412 se mezclan de forma ascendente luego usando parámetros de mezcla paramétricos para reconstruir los canales izquierdo y derecho 416, 414 para frecuencias por encima de la primera frecuencia de cruce ky. Se puede aplicar cualquier procedimiento de mezcla ascendente paramétrico conocido en la técnica.
Cabe señalar que en la realización 100 de ejemplo anterior del codificador, que se muestra en las figuras 13-16, se necesita la reconstrucción de alta frecuencia ya que la primera señal recibida 204a solo comprende datos espectrales correspondientes a frecuencias hasta la segunda frecuencia de cruce kx . En realizaciones adicionales, la primera señal recibida comprende datos espectrales correspondientes a todas las frecuencias de la señal codificada. De acuerdo con esta realización, no se necesita la reconstrucción de alta frecuencia. El experto en la técnica sabe cómo adaptar el codificador 100 de ejemplo en este caso.
La figura 17 muestra a modo de ejemplo un diagrama de bloques generalizado de un sistema 500 de codificación de acuerdo con una realización.
En el sistema de codificación, una primera y una segunda señal 540, 542 a codificar son recibidas por una etapa de recepción (no mostrada). Estas señales 540, 542 representan una trama de tiempo de los canales de audio estéreo izquierdo 540 y derecho 542. Las señales 540, 542 están representadas en el dominio tiempo. El sistema de codificación comprende una etapa 510 de transformada. Las señales 540, 542 se transforman en un formato 544, 546 de suma y diferencia en la etapa 510 de transformada.
El sistema de codificación comprende además una etapa 514 de codificación en forma de onda configurada para recibir la primera y la segunda señal transformada 544, 546 desde la etapa 510 de transformada. La etapa de codificación en forma de onda típicamente funciona en un dominio MDCT. Por esta razón, las señales transformadas 544, 546 se someten a una transformada MDCT 512 antes de la etapa 514 de codificación en forma de onda. En la etapa de codificación en forma de onda, la primera y la segunda señal transformada 544, 546 se codifican en forma de onda en una primera y una segunda señal codificada en forma de onda 518, 520, respectivamente.
Para frecuencias por encima de una primera frecuencia de cruce ky, la etapa 514 de codificación en forma de onda está configurada para codificar en forma de onda de la primera señal transformada 544 en una señal de código en forma de onda 552 de la primera señal codificada en forma de onda 518. La etapa 514 de codificación en forma de onda puede configurarse para establecer la segunda señal codificada en forma de onda 520 en cero por encima de la primera frecuencia de cruce ky o para no codificar estas frecuencias en absoluto. Para frecuencias por encima de la primera frecuencia de cruce ky, la etapa 514 de codificación en forma de onda está configurada para codificar en forma de onda la primera señal transformada 544 en una señal codificada en forma de onda 552 de la primera señal codificada en forma de onda 518.
Para frecuencias por debajo de la primera frecuencia de cruce ky, se toma una decisión en la etapa 514 de codificación en forma de onda sobre qué tipo de codificación estéreo usar para las dos señales 548, 550. Dependiendo de las características de las señales transformadas 544, 546 por debajo de la primera frecuencia de cruce ky , se pueden tomar diferentes decisiones para diferentes subconjuntos de la señal codificada en forma de onda 548, 550. La codificación puede ser codificación izquierda/derecha, codificación medio/lateral, es decir, codificación de suma y diferencia, o codificación dmx/comp/a. En el caso de que las señales 548, 550 se codifiquen en forma de onda mediante una codificación de suma y diferencia en la etapa 514 de codificación en forma de onda, las señales codificadas en forma de onda 518, 520 se pueden codificar usando transformadas de ventanas superpuestas con ventanas independientes para las señales 518, 520, respectivamente.
Una primera frecuencia de cruce a modo de ejemplo ky es 1,1 kHz, pero esta frecuencia puede variar dependiendo de la tasa de transmisión de bits del sistema de audio estéreo o dependiendo de las características del audio a codificar.
Por lo tanto, se emiten al menos dos señales 518, 520 desde la etapa 514 de codificación en forma de onda. En el caso de que uno o varios subconjuntos, o toda la banda de frecuencias, de las señales por debajo de la primera frecuencia de cruce ky se codifiquen en forma de mezcla descendente/complementaria mediante la realización de una operación matricial, dependiendo del parámetro de ponderación a, este parámetro también se emite como señal 522. En el caso de que se codifiquen varios subconjuntos en una forma de mezcla descendente/complementaria, no es necesario codificar cada subconjunto usando el mismo valor del parámetro de ponderación a. En este caso, se emiten varios parámetros de ponderación como la señal 522.
Estas dos o tres señales 518, 520, 522 se codifican y cuantizan 524 en una única señal compuesta 558.
Para poder reconstruir los datos espectrales de la primera y la segunda señal 540, 542 para frecuencias por encima de la primera frecuencia de cruce en un lado del decodificador, los parámetros estéreo paramétricos 536 deben extraerse de las señales 540, 542. Para este propósito, el codificador 500 comprende una etapa 530 de codificación
estéreo paramétrica (PS). La etapa 530 de codificación PS típicamente funciona en un dominio QMF. Por lo tanto, antes de entrar en la etapa 530 de codificación PS, la primera y la segunda señal 540, 542 se transforman en un dominio QMF mediante una etapa 526 de análisis QMF. La etapa 530 de codificador PS está adaptada para extraer únicamente parámetros estéreo paramétricos 536 para frecuencias por encima de la primera frecuencia de cruce ky .
Puede observarse que los parámetros estéreo paramétricos 536 reflejan las características de la señal que se codifica en estéreo paramétrico. Por lo tanto, son selectivos en frecuencia, es decir, cada parámetro de los parámetros 536 puede corresponder a un subconjunto de las frecuencias de la señal 540, 542 de entrada izquierda o derecha. La etapa 530 de codificación PS calcula los parámetros estéreo paramétricos 536 y los cuantiza de forma uniforme o no uniforme. Los parámetros son, como se mencionó anteriormente, selectivos de frecuencia calculados, donde todo el rango de frecuencia de las señales 540, 542 de entrada se divide en, por ejemplo, 15 bandas de parámetros. Estos pueden estar espaciados de acuerdo con un modelo de resolución de frecuencia del sistema auditivo humano, por ejemplo, una escala de Bark.
En la realización de ejemplo del codificador 500 que se muestra en la figura 17, la etapa 514 de codificación en forma de onda está configurada para codificar en forma de onda la primera señal transformada 544 para frecuencias entre la primera frecuencia de cruce ky y una segunda frecuencia de cruce kx y la configuración la primera señal codificada en forma de onda 518 a cero por encima de la segunda frecuencia de cruce kx . Esto se puede hacer para reducir aún más la tasa de transmisión requerida del sistema de audio en el que el codificador 500 es una parte. Para poder reconstruir la señal por encima de la segunda frecuencia de cruce kx , es necesario generar parámetros 538 de reconstrucción de alta frecuencia. De acuerdo con esta realización de ejemplo, esto se hace mezclando las dos señales 540, 542, representadas en el dominio QMF, en una etapa 534 de mezcla descendente. La señal de mezcla descendente resultante, que por ejemplo es igual a la suma de las señales 540, 542, se somete luego a una codificación de reconstrucción de alta frecuencia en una etapa 532 de codificación de reconstrucción de alta frecuencia, HFR, para generar los parámetros 538 de reconstrucción de alta frecuencia. Los parámetros 538 pueden incluir, por ejemplo, una envolvente espectral de las frecuencias por encima de la segunda frecuencia de cruce kx , información de adición de ruido, etc., como bien conoce el experto en la técnica.
Una segunda frecuencia de cruce kx de ejemplo es de 5,6 a 8 kHz, pero esta frecuencia puede variar dependiendo de la tasa de transmisión de bits del sistema de audio estéreo o dependiendo de las características del audio a codificar.
El codificador 500 comprende además una etapa de generación de flujo de bits, es decir, multiplexor 524 de flujo de bits. De acuerdo con la realización de ejemplo del codificador 500, la etapa de generación de flujo de bits está configurada para recibir la señal codificada y cuantizada 544, y las dos señales 536, 538 de parámetros. Estos son convertidos en un flujo de bits 560 por la etapa 562 de generación de flujo de bits, para ser distribuidos adicionalmente en el sistema de audio estéreo.
De acuerdo con otra realización, la etapa 514 de codificación en forma de onda está configurada para codificar en forma de onda de la primera señal transformada 544 para todas las frecuencias por encima de la primera frecuencia de cruce ky . En este caso, la etapa 532 de codificación HFR no es necesaria y, en consecuencia, no se incluyen parámetros 538 de reconstrucción de alta frecuencia en el flujo de bits.
La figura 18 muestra a modo de ejemplo un diagrama de bloques generalizado de un sistema 600 de codificador de acuerdo con otra realización.
Codificación del modo de voz
La figura 19a muestra un diagrama de bloques de un codificador 100 de voz basado en transformada de ejemplo. El codificador 100 recibe como entrada un bloque 131 de coeficientes de transformada (también denominado unidad de codificación). El bloque 131 de coeficiente de transformada puede haber sido obtenido por una unidad de transformada configurada para transformar una secuencia de muestras de la señal de audio de entrada desde el dominio tiempo al dominio transformada. La unidad de transformada puede configurarse para realizar una MDCT. La unidad de transformada puede ser parte de un códec de audio genérico como AAC o HE-AAC. Dicho códec de audio genérico puede hacer uso de diferentes tamaños de bloque, por ejemplo, un bloque largo y un bloque corto. Los tamaños de bloque de ejemplo son 1024 muestras para un bloque largo y 256 muestras para un bloque corto. Suponiendo una frecuencia de muestreo de 44,1 kHz y una superposición del 50 %, un bloque largo cubre aproximadamente 20 ms de la señal de audio de entrada y un bloque corto cubre aproximadamente 5 ms de la señal de audio de entrada. Los bloques largos se usan típicamente para segmentos estacionarios de la señal de audio de entrada y los bloques cortos se usan típicamente para segmentos transitorios de la señal de audio de entrada.
Las señales de voz pueden considerarse estacionarias en segmentos temporales de unos 20 ms. En particular, la envolvente espectral de una señal de voz puede considerarse estacionaria en segmentos temporales de unos 20 ms. Para poder derivar estadísticas significativas en el dominio transformada para dichos segmentos de 20 ms, puede ser útil proporcionar al codificador 100 de voz basado en transformada bloques cortos 131 de coeficientes de transformada (que tengan una longitud de, por ejemplo, 5 ms). Al hacer esto, se puede usar una pluralidad de bloques cortos 131 para obtener estadísticas con respecto a segmentos de tiempo de, por ejemplo, 20 ms (por ejemplo, el segmento de
tiempo de un bloque largo). Además, esto tiene la ventaja de proporcionar una resolución de tiempo adecuada para las señales de voz.
Por lo tanto, la unidad de transformada puede configurarse para proporcionar bloques cortos 131 de coeficientes de transformada, si un segmento actual de la señal de audio de entrada se clasifica como voz. El codificador 100 puede comprender una unidad 101 de trama configurada para extraer una pluralidad de bloques 131 de coeficientes de transformada, denominados un conjunto 132 de bloques 131. El conjunto 132 de bloques también puede denominarse trama. A modo de ejemplo, el conjunto 132 de bloques 131 puede comprender cuatro bloques cortos de 256 coeficientes de transformada, cubriendo así aproximadamente un segmento de 20 ms de la señal de audio de entrada.
El conjunto 132 de bloques se puede proporcionar a una unidad 102 de estimación de envolvente. La unidad 102 de estimación de envolvente puede configurarse para determinar una envolvente 133 basándose en el conjunto 132 de bloques. La envolvente 133 puede basarse en los valores de raíz cuadrada media (RMS) de los coeficientes de transformada correspondientes de la pluralidad de bloques 131 comprendidos dentro del conjunto 132 de bloques. Un bloque 131 típicamente proporciona una pluralidad de coeficientes de transformada (por ejemplo, 256 coeficientes de transformada) en una pluralidad correspondiente de intervalos 301 de frecuencia (véase la figura 21a). La pluralidad de intervalos 301 de frecuencia se puede agrupar en una pluralidad de bandas 302 de frecuencia. La pluralidad de bandas 302 de frecuencia puede seleccionarse basándose en consideraciones psicoacústicas. A modo de ejemplo, los intervalos 301 de frecuencia pueden agruparse en bandas 302 de frecuencia de acuerdo con una escala logarítmica o una escala Bark. La envolvente 134 que ha sido determinada basándose en un conjunto actual 132 de bloques puede comprender una pluralidad de valores de energía para la pluralidad de bandas 302 de frecuencia, respectivamente. Un valor de energía particular para una banda 302 de frecuencia particular puede determinarse basándose en los coeficientes de transformada de los bloques 131 del conjunto 132, que corresponden a los intervalos 301 de frecuencia que caen dentro de la banda 302 de frecuencia particular. El valor de energía particular puede determinarse basándose en el valor RMS de estos coeficientes de transformada. Como tal, una envolvente 133 para un conjunto actual 132 de bloques (denominada envolvente actual 133) puede ser indicativa de una envolvente promedio de los bloques 131 de coeficientes de transformada incluidos dentro del conjunto actual 132 de bloques, o puede ser indicativa de una envolvente promedio de bloques 132 de coeficientes de transformada usados para determinar la envolvente 133.
Cabe señalar que la envolvente actual 133 puede determinarse basándose en uno o más bloques adicionales 131 de coeficientes de transformada adyacentes al conjunto actual 132 de bloques. Esto se ilustra en la figura 20, donde la envolvente actual 133 (indicada por la envolvente actual cuantizada 134) se determina basándose en los bloques 131 del conjunto actual 132 de bloques y en función del bloque 201 del conjunto de bloques que preceden al actual conjunto 132 de bloques. En el ejemplo ilustrado, la envolvente actual 133 se determina basándose en cinco bloques 131. Teniendo en cuenta los bloques adyacentes cuando se determina la envolvente actual 133, se puede asegurar la continuidad de las envolventes de los conjuntos 132 de bloques adyacentes.
Al determinar la envolvente actual 133, se pueden ponderar los coeficientes de transformada de los diferentes bloques 131. En particular, los bloques más exteriores 201,202 que se tienen en cuenta para determinar la envolvente actual 133 pueden tener un peso menor que los bloques restantes 131. A modo de ejemplo, los coeficientes de transformada de los bloques más exteriores 201, 202 pueden ponderarse con 0,5, donde los coeficientes de transformada de los otros bloques 131 pueden ponderarse con 1.
Cabe señalar que, de manera similar a la consideración de los bloques 201 de un conjunto 132 de bloques precedente, se pueden considerar uno o más bloques (los denominados bloques de anticipación) de un conjunto 132 de bloques directamente siguiente para determinar la envolvente actual 133.
Los valores de energía de la envolvente actual 133 pueden representarse en una escala logarítmica (por ejemplo, en una escala de dB). La envolvente actual 133 se puede proporcionar a una unidad 103 de cuantización de envolvente que está configurada para cuantizar los valores de energía de la envolvente actual 133. La unidad 103 de cuantización de envolvente puede proporcionar una resolución de cuantizador predeterminada, por ejemplo, una resolución de 3dB. Los índices de cuantización de la envolvente 133 pueden proporcionarse como datos 161 de envolvente dentro de un flujo de bits generado por el codificador 100. Además, la envolvente cuantizada 134, es decir, la envolvente que comprende los valores de energía cuantizados de la envolvente 133, puede proporcionarse a una unidad 104 de interpolación.
La unidad 104 de interpolación está configurada para determinar una envolvente para cada bloque 131 del conjunto actual 132 de bloques en función de la envolvente actual cuantizada 134 y en función de la envolvente anterior cuantizada 135 (que se ha determinado para el conjunto 132 de bloques que preceden directamente al conjunto actual 132 de bloques). El funcionamiento de la unidad 104 de interpolación se ilustra en las figuras 20, 21a y 21b. La figura 20 muestra una secuencia de bloques 131 de coeficientes de transformada. La secuencia de bloques 131 se agrupa en conjuntos sucesivos 132 de bloques, en los que cada conjunto 132 de bloques se usa para determinar una envolvente cuantizada, por ejemplo, la envolvente actual cuantizada 134 y la envolvente anterior cuantizada 135. La figura 21a muestra ejemplos de una envolvente anterior cuantizada 135 y de una envolvente actual cuantizada 134. Como se indicó anteriormente, las envolventes pueden ser indicativas de la energía espectral 303 (por ejemplo, en
una escala de dB). Los valores 303 de energía correspondientes de la envolvente anterior cuantizada 135 y de la envolvente actual cuantizada 134 para la misma banda 302 de frecuencia pueden interpolarse (por ejemplo, usando interpolación lineal) para determinar una envolvente interpolada 136. En otras palabras, los valores 303 de energía de una banda 302 de frecuencia particular pueden interpolarse para proporcionar el valor 303 de energía de la envolvente interpolada 136 dentro de la banda 302 de frecuencia particular.
Cabe señalar que el conjunto de bloques para el que se determinan y aplican las envolventes interpoladas 136 puede diferir del conjunto actual 132 de bloques, basándose en el cual se determina la envolvente actual cuantizada 134. Esto se ilustra en la figura 20, que muestra un conjunto desplazado 332 de bloques, que está desplazado en comparación con el conjunto actual 132 de bloques y que comprende los bloques 3 y 4 del conjunto anterior 132 de bloques (indicado por los números de referencia 203 y 201), respectivamente) y los bloques 1 y 2 del actual conjunto 132 de bloques (indicados por los números de referencia 204 y 205, respectivamente). De hecho, las envolventes interpoladas 136 determinadas basándose en la envolvente actual cuantizada 134 y basándose en la envolvente anterior cuantizada 135 pueden tener una mayor relevancia para los bloques del conjunto desplazado 332 de bloques, en comparación con la relevancia para los bloques del actual conjunto 132 de bloques.
Por lo tanto, las envolventes interpoladas 136 que se muestran en la figura 21b pueden usarse para aplanar los bloques 131 del conjunto desplazado 332 de bloques. Esto se muestra en la figura 21b en combinación con la figura 20. Puede verse que la envolvente interpolada 341 de la figura 21b puede aplicarse al bloque 203 de la figura 20, que la envolvente interpolada 342 de la figura 21 b puede aplicarse al bloque 201 de la figura 20 que la envolvente interpolada 343 de la figura 21 b puede aplicarse al bloque 204 de la figura 20, y que la envolvente interpolada 344 de la figura 21 b (que en el ejemplo ilustrado corresponde a la envolvente actual cuantizada136) puede aplicarse al bloque 205 de la figura 20. Como tal, el conjunto 132 de bloques para determinar la envolvente actual cuantizada 134 puede diferir del conjunto desplazado 332 de bloques para los que se determinan las envolventes interpoladas 136 y al que se aplican las envolventes interpoladas 136 (con fines de aplanamiento). En particular, la envolvente actual cuantizada 134 puede determinarse usando una cierta anticipación con respecto a los bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques, que se van a aplanar usando la envolvente actual cuantizada 134. Esto es beneficioso desde el punto de vista de la continuidad.
La interpolación de los valores 303 de energía para determinar las envolventes interpoladas 136 se ilustra en la figura 21b. Puede verse que por interpolación entre un valor de energía de la envolvente anterior cuantizada 135 y el valor de energía correspondiente de la envolvente actual cuantizada 134, los valores de energía de las envolventes interpoladas 136 pueden determinarse para los bloques 131 del conjunto desplazado 332 de bloques. En particular, para cada bloque 131 del conjunto desplazado 332 puede determinarse una envolvente interpolada 136, proporcionando así una pluralidad de envolventes interpoladas 136 para la pluralidad de bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques. La envolvente interpolada 136 de un bloque 131 de coeficiente de transformada (por ejemplo, cualquiera de los bloques 203, 201, 204, 205 del conjunto desplazado 332 de bloques) puede usarse para codificar el bloque 131 de coeficientes de transformada. Cabe señalar que los índices 161 de cuantización de la envolvente actual 133 se proporcionan a un decodificador correspondiente dentro del flujo de bits. En consecuencia, el decodificador correspondiente puede configurarse para determinar la pluralidad de envolventes interpoladas 136 de manera analógica a la unidad 104 de interpolación del codificador 100.
La unidad 101 de entramado, la unidad 103 de estimación de envolvente, la unidad 103 de cuantización de envolvente y la unidad 104 de interpolación funcionan en un conjunto de bloques (es decir, el conjunto actual 132 de bloques y/o el conjunto desplazado 332 de bloques). Por otro lado, la codificación real del coeficiente de transformada puede realizarse bloque por bloque. A continuación, se hace referencia a la codificación de un bloque actual 131 de coeficientes de transformada, que puede ser cualquiera de la pluralidad de bloques 131 del conjunto desplazado 332 de bloques (o posiblemente el conjunto actual 132 de bloques en otras implementaciones del codificador 100 de voz basado en transformada).
La envolvente interpolada actual 136 para el bloque actual 131 puede proporcionar una aproximación de la envolvente espectral de los coeficientes de transformada del bloque actual 131. El codificador 100 puede comprender una unidad 105 de preaplanamiento y una unidad 106 de determinación de ganancia de envolvente que están configuradas para determinar una envolvente ajustada 139 para el bloque actual 131, basándose en la envolvente interpolada actual 136 y basándose en el bloque actual 131. En particular, se puede determinar una ganancia de envolvente para el bloque actual 131 de modo que se ajuste una variación de los coeficientes de transformada aplanados del bloque actual 131. X(k), k = 1, ...,K pueden ser los coeficientes de transformada del bloque actual 131 (con, por ejemplo, K = 256), y E(k), k = 1, ...,K pueden ser los valores medios 303 de energía espectral de la envolvente interpolada actual 136 (siendo ¡guales los valores de energía E(k) de una misma banda 302 de frecuencia). La ganancia de envolvente a puede
a - j E (k ) determinarse de tal manera que se ajuste la varianza de los coeficientes de transformada aplanados X(k) = En particular, la ganancia de envolvente a puede determinarse de manera que la varianza sea uno.
Cabe señalar que la ganancia de envolvente a puede determinarse para un subrango del rango de frecuencia completo del bloque actual 131 de coeficientes de transformada. En otras palabras, la ganancia de envolvente a puede
determinarse solo en función de un subconjunto de los intervalos 301 de frecuencia y/o solo en función de un subconjunto de las bandas 302 de frecuencia. A modo de ejemplo, la ganancia de envolvente a puede determinarse basándose en los intervalos 301 de frecuencia mayores que un intervalo 304 de frecuencia de inicio (siendo el intervalo de frecuencia de inicio mayor que 0 o 1). Como consecuencia, la envolvente ajustada 139 para el bloque actual 131 puede determinarse aplicando la ganancia de envolvente a solo a los valores medios 303 de energía espectral de la envolvente interpolada actual 136 que están asociados con los intervalos 301 de frecuencia que se encuentran por encima del intervalo 304 de frecuencia de inicio. Por lo tanto, la envolvente ajustada 139 para el bloque actual 131 puede corresponder a la envolvente interpolada actual 136, para intervalos 301 de frecuencia en y por debajo del intervalo de frecuencia de inicio, y puede corresponder a la envolvente interpolada actual 136 compensada por la ganancia de envolvente a, para intervalos 301 de frecuencia por encima del intervalo de frecuencia de inicio. Esto se ilustra en la figura 21a mediante la envolvente ajustada 339 (mostrada en líneas discontinuas).
La aplicación de la ganancia 137 de envolvente a (que también se denomina ganancia de corrección de nivel) a la envolvente interpolada actual 136 corresponde a un ajuste o una compensación de la envolvente interpolada actual 136, lo que produce una envolvente ajustada 139, como se ilustra en figura 21a. La ganancia 137 de envolvente a puede codificarse como datos 162 de ganancia en el flujo de bits.
El codificador 100 puede comprender además una unidad 107 de refinamiento de envolvente que está configurada para determinar la envolvente ajustada 139 basándose en la ganancia 137 de envolvente a y en la envolvente interpolada actual 136. La envolvente ajustada 139 puede usarse para el procesamiento de señales del bloque 131 de coeficiente de transformada. La ganancia 137 de envolvente a puede cuantizarse a una resolución más alta (por ejemplo, en pasos de 1 dB) en comparación con la envolvente interpolada actual 136 (que puede cuantizarse en pasos de 3 dB). Como tal, la envolvente ajustada 139 puede cuantizarse a la resolución más alta de la ganancia 137 de envolvente a (por ejemplo, en pasos de 1 dB).
Además, la unidad 107 de refinamiento de envolvente puede configurarse para determinar una envolvente 138 de asignación. La envolvente 138 de asignación puede corresponder a una versión cuantizada de la envolvente ajustada 139 (por ejemplo, cuantizada a niveles de cuantización de 3dB). La envolvente 138 de asignación puede usarse con fines de asignación de bits. En particular, la envolvente 138 de asignación se puede usar para determinar, para un coeficiente de transformada particular del bloque actual 131, un cuantizador particular de un conjunto predeterminado de cuantizadores, donde el cuantizador particular se usará para cuantizar el coeficiente de transformada particular.
El codificador 100 comprende una unidad 108 de aplanamiento configurada para aplanar el bloque actual 131 usando la envolvente ajustada 139, produciendo así el bloque 140 de coeficientes de transformada aplanados X(k). El bloque 140 de coeficientes de transformada aplanados X(k) puede codificarse usando un bucle de predicción dentro del dominio transformada. Como tal, el bloque 140 puede codificarse usando un predictor 117 de subbanda. El bucle de predicción comprende una unidad 115 de diferencia configurada para determinar un bloque 141 de coeficientes de error de predicción A(k), basándose en el bloque 140 de coeficientes de transformada aplanados X(k) y basándose en un bloque 150 de coeficientes de transformada estimados X(k), por ejemplo, A(k) = X(k) - X(k). Cabe señalar que debido al hecho de que el bloque 140 comprende coeficientes de transformada aplanados, es decir, coeficientes de transformada que han sido normalizados o aplanados usando los valores 303 de energía de la envolvente ajustada 139, el bloque 150 de coeficientes de transformada estimados también comprende estimaciones de coeficientes de transformada aplanados. En otras palabras, la unidad 115 de diferencia funciona en el denominado dominio aplanado. En consecuencia, el bloque 141 de coeficientes de error de predicción A(k) se representa en el dominio aplanado.
El bloque 141 de coeficientes de error de predicción A(k) puede exhibir una varianza que difiere de uno. El codificador 100 puede comprender una unidad 111 de reajuste configurada para reajustar los coeficientes de error de predicción A(k) para producir un bloque 142 de coeficientes de error reajustado. La unidad 111 de reajuste puede hacer uso de una o más reglas heurísticas predeterminadas para realizar el reajuste. Como resultado, el bloque 142 de coeficientes de error reajustados muestra una varianza que está (en promedio) más cerca de uno (en comparación con el bloque 141 de coeficientes de error de predicción). Esto puede ser beneficioso para la posterior cuantización y codificación.
El codificador 100 comprende una unidad 112 de cuantización de coeficientes configurada para cuantizar el bloque 141 de coeficientes de error de predicción o el bloque 142 de coeficientes de error reajustados. La unidad 112 de cuantización de coeficientes puede comprender o puede hacer uso de un conjunto de cuantizadores predeterminados. El conjunto de cuantizadores predeterminados puede proporcionar cuantizadores con diferentes grados de precisión o diferente resolución. Esto se ilustra en la figura 22, donde se ilustran diferentes cuantizadores 321, 322, 323. Los diferentes cuantizadores pueden proporcionar diferentes niveles de precisión (indicados por los diferentes valores de dB). Un cuantizador particular de la pluralidad de cuantizadores 321,322, 323 puede corresponder a un valor particular de la envolvente 138 de asignación. Como tal, un valor de energía de la envolvente 138 de asignación puede apuntar a un cuantizador correspondiente de la pluralidad de cuantizadores. Como tal, la determinación de una envolvente 138 de asignación puede simplificar el proceso de selección de un cuantizador a usar para un coeficiente de error particular. En otras palabras, la envolvente 138 de asignación puede simplificar el proceso de asignación de bits.
El conjunto de cuantizadores puede comprender uno o más cuantizadores 322 que hacen uso de tramado para aleatorizar el error de cuantización. Esto se ilustra en la figura 22 que muestra un primer conjunto 326 de cuantizadores
predeterminados que comprende un subconjunto 324 de cuantizadores con tramado y un segundo conjunto 327 cuantizadores predeterminados que comprende un subconjunto 325 de cuantizadores con tramado. Como tal, la unidad 112 de cuantización de coeficientes puede hacer uso de diferentes conjuntos 326, 327 de cuantizadores predeterminados, donde el conjunto de cuantizadores predeterminados, que va a ser usado por la unidad 112 de cuantización de coeficientes, puede depender de un parámetro 146 de control proporcionado por el predictor 117 y/o determinado basándose en otra información secundaria disponible en el codificador y en el decodificador correspondiente. En particular, la unidad 112 de cuantización de coeficientes puede configurarse para seleccionar un conjunto 326, 327 de cuantizadores predeterminados para cuantizar el bloque 142 de coeficiente de error reajustado, en función del parámetro 146 de control, en el que el parámetro 146 de control puede depender de uno o más parámetros del predictor proporcionados por el predictor 117. Dicho o más parámetros del predictor pueden ser indicativos de la calidad del bloque 150 de coeficientes de transformada estimados proporcionados por el predictor 117.
Los coeficientes de error cuantizados pueden estar codificados por entropía, usando, por ejemplo, un código de Huffman, lo que produce datos 163 de coeficiente que se incluirán en el flujo de bits generado por el codificador 100.
A continuación se describen detalles adicionales con respecto a la selección o determinación de un conjunto 326 de cuantizadores 321, 322, 323. Un conjunto 326 de cuantizadores puede corresponder a una colección ordenada 326 de cuantizadores. La colección ordenada 326 de cuantizadores puede comprender N cuantizadores, donde cada cuantizador puede corresponder a un nivel de distorsión diferente. Como tal, la colección 326 de cuantizadores puede proporcionar N posibles niveles de distorsión. Los cuantizadores de la colección 326 pueden ordenarse de acuerdo con la disminución de la distorsión (o de manera equivalente de acuerdo con el aumento de la SNR). Además, los cuantizadores pueden etiquetarse mediante etiquetas de números enteros. A modo de ejemplo, los cuantizadores pueden etiquetarse como 0, 1, 2, etc., en los que una etiqueta de número entero creciente puede indicar una SNR creciente.
La colección 326 de cuantizadores puede ser tal que un hueco SNR entre dos cuantizadores consecutivos sea al menos aproximadamente constante. Por ejemplo, la SNR del cuantizador con la etiqueta "1" puede ser de 1,5 dB, y la SNR del cuantizador con la etiqueta "2" puede ser de 3,0 dB. Por lo tanto, los cuantizadores de la colección ordenada 326 de cuantizadores pueden ser tales que al cambiar de un primer cuantizador a un segundo cuantizador adyacente, la SNR (relación señal-ruido) aumenta en un valor sustancialmente constante (por ejemplo, 1.5dB), para todos los pares de primer y segundo cuantizador.
La colección 326 de cuantizadores puede comprender
- un cuantizador 321 de relleno de ruido que puede proporcionar una SNR que es ligeramente inferior o igual a 0dB, que para el proceso de asignación de tasa puede aproximarse a 0dB;
- Ndith cuantizadores 322 que pueden usar tramado sustractivo y que típicamente corresponden a niveles intermedios de SNR (por ejemplo, Ndith > 0); y
- Ncq cuantizadores clásicos 323 que no usan tramado sustractivo y que típicamente corresponden a niveles de SNR relativamente altos (por ejemplo, Ncq > 0). Los cuantizadores sin tramado 323 pueden corresponder a cuantizadores escalares.
El número total N de cuantizadores viene dado por N = 1 Ndith + Ncq.
En la figura 24a se muestra un ejemplo de una colección 326 de cuantizadores. El cuantizador 321 de relleno de ruido de la colección 326 de cuantizadores se puede implementar, por ejemplo, usando un generador de números aleatorios que genera una realización de una variable aleatoria de acuerdo con un modelo estadístico predefinido.
Además, la colección 326 de cuantizadores puede comprender uno o más cuantizadores con tramado 322. Dicho o más cuantizadores tramados pueden generarse usando una realización de una señal 602 de tramado de pseudonúmero como se muestra en la figura 24a. La señal 602 de tramado de pseudonúmero puede corresponder a un bloque 602 de valores de tramado pseudoaleatorios. El bloque 602 de números de tramado puede tener la misma dimensionalidad que la dimensionalidad del bloque 142 de coeficientes de error reajustados, que se va a cuantizar. La señal 602 de tramado (o el bloque 602 de valores de tramado) puede generarse usando un generador 601 de tramado. En particular, la señal 602 de tramado puede generarse usando una tabla de consulta que contiene muestras aleatorias uniformemente distribuidas.
Como se mostrará en el contexto de la figura 24b, los valores individuales 632 de tramado del bloque 602 de valores de tramado se usan para aplicar un tramado a un coeficiente correspondiente que se va a cuantizar (por ejemplo, a un coeficiente de error reajustado correspondiente del bloque 142 de coeficientes de error reajustados). El bloque 142 de coeficientes de error reajustados puede comprender un total de K coeficientes de error reajustados. De manera similar, el bloque 602 de valores de tramado puede comprender K valores 632 de tramado. El k-ésimo valor 632 de
tramado, con k = 1, K, del bloque 602 de valores de tramado puede aplicarse al k-ésimo coeficiente de error reajustado del bloque 142 de coeficientes de error reajustados.
Como se indicó anteriormente, el bloque 602 de valores de tramado puede tener la misma dimensión que el bloque 142 de coeficientes de error reajustados, que se van a cuantizar. Esto es beneficioso, ya que permite usar un único bloque 602 de valores de tramado para todos los cuantizadores con tramado 322 de una colección 326 de cuantizadores. En otras palabras, para cuantizar y codificar un bloque dado 142 de coeficientes de error reajustados, el tramado pseudoaleatorio 602 puede generarse solo una vez para todas las colecciones admisibles 326, 327 de cuantizadores y para todas las asignaciones posibles para la distorsión. Esto facilita lograr la sincronicidad entre el codificador 100 y el decodificador correspondiente, ya que el uso de la señal 602 de tramado única no necesita señalarse explícitamente al decodificador correspondiente. En particular, el codificador 100 y el decodificador correspondiente pueden hacer uso del mismo generador 601 de tramado que está configurado para generar el mismo bloque 602 de valores de tramado para el bloque 142 de coeficientes de error reajustados.
La composición de la colección 326 de cuantizadores se basa preferiblemente en consideraciones psicoacústicas. La codificación de transformada de baja tasa puede dar lugar a artefactos espectrales, incluidos agujeros espectrales y limitación de banda, que se desencadenan por la naturaleza del proceso de llenado de agua inversa que tiene lugar en los esquemas de cuantización convencionales que se aplican a los coeficientes de transformada. La audibilidad de los agujeros espectrales se puede reducir inyectando ruido en aquellas bandas 302 de frecuencia que estaban por debajo del nivel del agua durante un breve período de tiempo y que, por lo tanto, se asignaron con una tasa de bits cero.
En general, es posible lograr una tasa de bits arbitrariamente baja con un cuantizador con tramado 322. Por ejemplo, en el caso escalar, se puede optar por usar un tamaño de paso de cuantización muy grande. Sin embargo, la operación de tasa de bits cero no es factible en la práctica, porque impondría requisitos exigentes sobre la precisión numérica necesaria para permitir la operación del cuantizador con un codificador de longitud variable. Esto proporciona la motivación para aplicar un cuantizador 321 de relleno de ruido genérico al nivel de distorsión SNR de 0dB, en lugar de aplicar un cuantizador con tramado 322. La colección propuesta 326 de cuantizadores está diseñada de tal manera que los cuantizadores con tramado 322 se usan para niveles de distorsión que están asociados con tamaños de paso relativamente pequeños, de modo que la codificación de longitud variable puede implementarse sin tener que abordar problemas relacionados con el mantenimiento de la precisión numérica.
Para el caso de la cuantización escalar, los cuantizadores 322 con tramado sustractivo pueden implementarse usando postganancias que proporcionan un rendimiento de MSE casi óptimo. En la figura 24b se muestra un ejemplo de un cuantizador escalar con tramado 322 sustractivamente. El cuantizador con tramado 322 comprende un cuantizador escalar uniforme Q 612 que se usa dentro de una estructura de tramado sustractiva. La estructura de tramado sustractiva comprende una unidad 611 de sustracción de tramado que está configurada para restar un valor 632 de tramado (del bloque 602 de valores de tramado) de un coeficiente de error correspondiente (del bloque 142 de coeficientes de error reajustados). Además, la estructura de tramado sustractiva comprende una unidad 613 de suma correspondiente que está configurada para sumar el valor 632 de tramado (del bloque 602 de valores de tramado) al coeficiente de error escalar cuantizado correspondiente. En el ejemplo ilustrado, la unidad 611 de sustracción de tramado se coloca aguas arriba del cuantizador escalar Q 612 y la unidad 613 de suma de tramado se coloca aguas abajo del cuantizador escalar Q 612. Los valores de tramado 632 del bloque 602 de valores de tramado pueden tomar valores del intervalo [-0,5, 0,5) o [0,1) veces el tamaño de paso del cuantizador escalar 612. Cabe señalar que en una implementación alternativa del cuantizador 322 de tramado, la unidad 611 de sustracción de tramado y la unidad 613 de suma de tramado pueden intercambiarse entre sí.
La estructura de tramado sustractiva puede ir seguida de una unidad 614 de escalado que está configurada para reajustar los coeficientes de error cuantizados mediante una postganancia y del cuantizador. Después de ajustar los coeficientes de error cuantizados, se obtiene el bloque 145 de coeficientes de error cuantizados. Cabe señalar que la entrada X al cuantizador con tramado 322 típicamente corresponde a los coeficientes del bloque 142 de coeficientes de error reajustados que caen en la banda de frecuencia particular que se va a cuantizar usando el cuantizador con tramado 322. De manera similar, la salida del cuantizador con tramado 322 típicamente corresponde a los coeficientes cuantizados del bloque 145 de coeficientes de error cuantizados que caen dentro de la banda de frecuencia particular.
Se puede suponer que la entrada X al cuantizador con tramado 322 es de media cero y que se conoce la varianza
<T-V ~ 1 de la entrada X. (Por ejemplo, la varianza de la señal puede determinarse a partir de la envolvente de la señal). Además, se puede suponer que un bloque 602 de tramado pseudoaleatorio Z que comprende valores 632 de tramado está disponible para el codificador 100 y para el decodificador correspondiente. Además, se puede suponer que los valores 632 de tramado son independientes de la entrada X. Se pueden usar varios tramados 602 diferentes, pero se supone a continuación que el tramado Z 602 se distribuye uniformemente entre 0 y A, que puede indicarse mediante U(0, A). En la práctica, se puede usar cualquier tramado que cumpla las llamadas condiciones de Schuchman (por ejemplo, un tramado 602 que se distribuye uniformemente entre [-0,5, 0,5) veces el tamaño de paso A del cuantizador escalar 612).
El cuantizador Q 612 puede ser una red y la extensión de su celda de Voronoi puede ser A. En este caso, la señal de tramado tendría una distribución uniforme sobre la extensión de la celda de Voronoi de la red que se usa.
La postganancia y del cuantizador se puede derivar dada la varianza de la señal y el tamaño del paso de cuantización, ya que el cuantizador de tramado es tratable analíticamente para cualquier tamaño de paso (es decir, tasa de bits). En particular, la postganancia se puede derivar para mejorar el rendimiento de MSE de un cuantizador con un tramado sustractivo. La postganancia puede estar dada por:
Aunque mediante la aplicación de la postganancia y, se puede mejorar el rendimiento de MSE del cuantizador con tramado 322, un cuantizador con tramado 322 típicamente tiene un rendimiento de MSE más bajo que un cuantizador sin tramado (aunque esta pérdida de rendimiento desaparece a medida que aumenta la tasa de bits aumenta). En consecuencia, en general, los cuantizadores con tramado son más ruidosos que sus versiones sin tramado. Por lo tanto, puede ser deseable usar cuantizadores con tramado 322 solo cuando el uso de cuantizadores con tramado 322 está justificado por la propiedad de relleno de ruido perceptualmente beneficiosa de los cuantizadores con tramado 322.
Por lo tanto, se puede proporcionar una colección 326 de cuantizadores que comprende tres tipos de cuantizadores. La colección 326 de cuantizadores ordenados puede comprender un solo cuantizador 321 de relleno de ruido, uno o más cuantizadores 322 con tramado sustractivo y uno o más cuantizadores clásicos (sin tramado) 323. Los cuantizadores consecutivos 321, 322, 323 pueden proporcionar mejoras incrementales a la SNR. Las mejoras incrementales entre un par de cuantizadores adyacentes de la colección ordenada 326 de cuantizadores pueden ser sustancialmente constantes para algunos o todos los pares de cuantizadores adyacentes.
Una colección particular 326 de cuantizadores puede definirse por el número de cuantizadores con tramado 322 y por el número de cuantizadores sin tramado 323 comprendidos dentro de la colección particular 326. Además, la colección particular 326 de cuantizadores puede definirse mediante una realización particular de la señal 602 de tramado. La colección 326 puede diseñarse para proporcionar una cuantización perceptualmente eficiente del coeficiente de transformada que presenta: relleno de ruido de tasa cero (que produce una SNR ligeramente menor o igual a 0dB); relleno de ruido mediante tramado sustractivo a un nivel de distorsión intermedio (SNR intermedia); y falta de relleno de ruido a bajos niveles de distorsión (alta SNR). La colección 326 proporciona un conjunto de cuantizadores admisibles que pueden seleccionarse durante un proceso de asignación de tasa. Una aplicación de un cuantizador particular de la colección 326 de cuantizadores a los coeficientes de una banda 302 de frecuencia particular se determina durante el proceso de asignación de tasa. Por lo general, no se sabe a priori qué cuantizador se usará para cuantizar los coeficientes de una banda 302 de frecuencia particular. Sin embargo, típicamente se conoce a priori cuál es la composición de la colección 326 de los cuantizadores.
El aspecto de usar diferentes tipos de cuantizadores para diferentes bandas 302 de frecuencia de un bloque 142 de coeficientes de error se ilustra en la figura 24c, donde se muestra un resultado de ejemplo del proceso de asignación de tasa. En este ejemplo, se supone que la asignación de tasa sigue el llamado principio de llenado de agua inverso. La figura 24c ilustra el espectro 625 de una señal de entrada (o la envolvente del bloque de coeficientes a cuantizar). Puede verse que la banda 623 de frecuencia tiene una energía espectral relativamente alta y se cuantiza usando un cuantizador clásico 323 que proporciona niveles de distorsión relativamente bajos. Las bandas 622 de frecuencia exhiben una energía espectral por encima del nivel 624 del agua. Los coeficientes en estas bandas 622 de frecuencia pueden cuantizarse usando los cuantizadores con tramado 322 que proporcionan niveles de distorsión intermedios. Las bandas 621 de frecuencia exhiben una energía espectral por debajo del nivel 624 del agua. Los coeficientes en estas bandas 621 de frecuencia pueden cuantizarse usando un relleno de ruido de tasa cero. Los diferentes cuantizadores usados para cuantizar el bloque particular de coeficientes (representado por el espectro 625) pueden ser parte de una colección particular 326 de cuantizadores, que ha sido determinada para el bloque particular de coeficientes.
Por lo tanto, los tres tipos diferentes de cuantizadores 321, 322, 323 pueden aplicarse selectivamente (por ejemplo, selectivamente con respecto a la frecuencia). La decisión sobre la aplicación de un tipo particular de cuantizador puede determinarse en el contexto de un procedimiento de asignación de tasa, que se describe a continuación. El procedimiento de asignación de tasa puede hacer uso de un criterio de percepción que puede derivarse de la envolvente RMS de la señal de entrada (o, por ejemplo, de la densidad espectral de potencia de la señal). El tipo de cuantizador a aplicar en una banda 302 de frecuencia particular no necesita ser señalado explícitamente al decodificador correspondiente. Se elimina la necesidad de señalar el tipo seleccionado de cuantizador, ya que el decodificador correspondiente puede determinar el conjunto particular 326 de cuantizadores que se usó para cuantizar un bloque de la señal de entrada a partir del criterio de percepción subyacente (por ejemplo, la envolvente 138 de asignación), de la composición predeterminada de la colección de cuantizadores (por ejemplo, un conjunto
predeterminado de diferentes colecciones de cuantizadores), y de un único parámetro de asignación de tasa global (también denominado parámetro de compensación).
La determinación en el decodificador de la colección 326 de cuantizadores, que ha sido usada por el codificador 100, se facilita diseñando la colección 326 de cuantizadores de modo que los cuantizadores se ordenen de acuerdo con su distorsión (por ejemplo, SNR). Cada cuantizador de la colección 326 puede disminuir la distorsión (puede refinar la SNR) del cuantizador anterior en un valor constante. Además, una colección particular 326 de cuantizadores puede estar asociada con una sola realización de una señal 602 de tramado pseudoaleatoria, durante todo el proceso de asignación de tasa. Como resultado de esto, el resultado del procedimiento de asignación de tasa no afecta la realización de la señal 602 de tramado. Esto es beneficioso para garantizar la convergencia del procedimiento de asignación de tasa. Además, esto permite que el decodificador realice la decodificación si el decodificador conoce la realización única de la señal 602 de tramado. El decodificador puede ser consciente de la realización de la señal 602 de tramado usando el mismo generador 601 de tramado pseudoaleatorio en el codificador 100 y en el decodificador correspondiente.
Como se indicó anteriormente, el codificador 100 puede configurarse para realizar un proceso de asignación de bits. Para este propósito, el codificador 100 puede comprender unidades 109, 110 de asignación de bits. La unidad 109 de asignación de bits puede configurarse para determinar el número total de bits 143 que están disponibles para codificar el bloque actual 142 de coeficientes de error reajustados. El número total de bits 143 se puede determinar basándose en la envolvente 138 de asignación. La unidad 110 de asignación de bits puede configurarse para proporcionar una asignación relativa de bits a los diferentes coeficientes de error reajustados, dependiendo del valor de energía correspondiente en la envolvente 138 de asignación.
El proceso de asignación de bits puede hacer uso de un procedimiento de asignación iterativo. En el curso del procedimiento de asignación, la envolvente 138 de asignación puede compensarse usando un parámetro de compensación, seleccionando así cuantizadores con resolución aumentada/disminuida. Como tal, el parámetro de compensación puede usarse para refinar o embrutecer la cuantización general. El parámetro de compensación puede determinarse de tal manera que los datos 163 de coeficiente, que se obtienen usando los cuantizadores dados por el parámetro de compensación y la envolvente 138 de asignación, comprenden un número de bits que corresponde a (o no excede) el número total de bits 143 asignado al bloque actual 131. El parámetro de desplazamiento que ha sido usado por el codificador 100 para codificar el bloque actual 131 se incluye como datos 163 de coeficiente en el flujo de bits. Como consecuencia, el decodificador correspondiente está habilitado para determinar los cuantizadores que han sido usados por la unidad 112 de cuantización de coeficientes para cuantizar el bloque 142 de coeficientes de error reajustados.
Como tal, el proceso de asignación de tasa se puede realizar en el codificador 100, donde tiene como objetivo distribuir los bits disponibles 143 de acuerdo con un modelo de percepción. El modelo de percepción puede depender de la envolvente 138 de asignación derivada del bloque 131 de coeficientes de transformada. El algoritmo de asignación de tasa distribuye los bits disponibles 143 entre los diferentes tipos de cuantizadores, es decir, el relleno 321 de ruido de tasa cero, dicho o más cuantizadores con tramado 322 y dicho o más cuantizadores sin tramado clásicos 323. La decisión final sobre el tipo de cuantizador a usar para cuantizar los coeficientes de una banda 302 de frecuencia particular del espectro puede depender del modelo de señal perceptible, de la realización del tramado pseudoaleatorio y de la restricción de tasa de bits.
En el decodificador correspondiente, la asignación de bits (indicada por la envolvente 138 de asignación y por el parámetro de compensación) puede usarse para determinar las probabilidades de los índices de cuantización para facilitar la decodificación sin pérdidas. Se puede usar un método de cálculo de probabilidades de índices de cuantización, que emplea el uso de una realización del tramado pseudoaleatorio 602 de banda completa, el modelo perceptivo parametrizado por la envolvente de señal 138 y el parámetro de asignación de tasa (es decir, el parámetro de compensación). Usando la envolvente 138 de asignación, el parámetro de compensación y el conocimiento con respecto al bloque 602 de valores de tramado, la composición de la colección 326 de cuantizadores en el decodificador puede estar sincronizada con la colección 326 usada en el codificador 100.
Como se describió anteriormente, la restricción de tasa de bits se puede especificar en términos de un número máximo permitido de bits por trama 143. Esto se aplica, por ejemplo, a índices de cuantización que posteriormente se codifican en entropía usando, por ejemplo, un código de Huffman. En particular, esto se aplica en escenarios de codificación donde el flujo de bits se genera de manera secuencial, donde se cuantiza un solo parámetro a la vez y donde el índice de cuantización correspondiente se convierte en una palabra de código binaria, que se agrega al flujo de bits.
Si se usa codificación aritmética (o codificación de rango), el principio es diferente. En el contexto de la codificación aritmética, típicamente se asigna una única palabra de código a una larga secuencia de índices de cuantización. Por lo general, no es posible asociar exactamente una porción particular del flujo de bits con un parámetro particular. En particular, en el contexto de la codificación aritmética, típicamente se desconoce el número de bits que se requiere para codificar una realización aleatoria de una señal. Este es el caso incluso si se conoce el modelo estadístico de la señal.
Para abordar el problema técnico mencionado anteriormente, se propone hacer que el codificador aritmético forme parte del algoritmo de asignación de tasa. Durante el proceso de asignación de tasa, el codificador intenta cuantizar y codificar un conjunto de coeficientes de una o más bandas 302 de frecuencia. Para cada intento de este tipo, es posible observar el cambio de estado del codificador aritmético y calcular el número de posiciones para avanzar en el flujo de bits (en lugar de calcular un número de bits). Si se establece una restricción de tasa binaria máxima, esta restricción de tasa binaria máxima puede usarse en el procedimiento de asignación de tasa. El coste de los bits de terminación del código aritmético puede estar incluido en el coste del último parámetro codificado y, en general, el coste de los bits de terminación variará dependiendo del estado del codificador aritmético. No obstante, una vez disponible el costo de terminación, es posible determinar el número de bits necesarios para codificar los índices de cuantización correspondientes al conjunto de coeficientes de una o más bandas 302 de frecuencia.
Cabe señalar que, en el contexto de la codificación aritmética, se puede usar una sola realización del tramado 602 para todo el proceso de asignación de tasa (de un bloque particular 142 de coeficientes). Como se describió anteriormente, el codificador aritmético se puede usar para estimar el coste de la tasa de bits de una selección de cuantizador particular dentro del procedimiento de asignación de tasa. El cambio de estado del codificador aritmético puede observarse y el cambio de estado puede usarse para calcular una cantidad de bits necesarios para realizar la cuantización. Además, el proceso de terminación del código aritmético puede usarse dentro del proceso de asignación de tasa.
Como se indicó anteriormente, los índices de cuantización pueden codificarse usando un código aritmético o un código de entropía. Si los índices de cuantización están codificados por entropía, se puede tener en cuenta la distribución de probabilidad de los índices de cuantización, para asignar palabras de código de longitud variable a índices de cuantización individuales o grupos. El uso de tramado puede tener un impacto en la distribución de probabilidad de los índices de cuantización. En particular, la realización particular de una señal 602 de tramado puede tener un impacto en la distribución de probabilidad de los índices de cuantización. Debido al número virtualmente ilimitado de realizaciones de la señal difuminada 602, en el caso general, las probabilidades de la palabra clave no se conocen a priori y no es posible usar la codificación Huffman.
Los inventores han observado que es posible reducir el número de posibles realizaciones de tramado a un conjunto relativamente pequeño y manejable de realizaciones de la señal 602 de tramado. A modo de ejemplo, para cada banda 302 de frecuencia se puede proporcionar un conjunto limitado de valores de tramado. Para este propósito, el codificador 100 (así como el decodificador correspondiente) puede comprender un generador discreto 801 de tramado configurado para generar la señal 602 de tramado seleccionando una de M realizaciones de tramado predeterminadas (véase la figura 26). A modo de ejemplo, se pueden usar M realizaciones de tramado predeterminadas diferentes para cada banda 302 de frecuencia. El número M de realizaciones de tramado predeterminadas puede ser M<5 (por ejemplo, M=4 o M=3)
Debido al número limitado M de realizaciones de tramado, es posible entrenar un libro de códigos Huffman (posiblemente multidimensional) para cada realización de tramado, produciendo una colección 803 de M libros de códigos. El codificador 100 puede comprender una unidad 802 de selección de libro de códigos que está configurada para seleccionar uno de la colección 803 de M libros de códigos predeterminados, basándose en la realización de tramado seleccionada. Al hacer esto, se asegura que la codificación de entropía esté sincronizada con la generación de tramado. El libro 811 de códigos seleccionado puede usarse para codificar índices de cuantización individuales o grupos que han sido cuantizados usando la realización de tramado seleccionada. Como consecuencia, el rendimiento de la codificación de entropía se puede mejorar cuando se usan cuantizadores con tramado.
La colección 803 de libros de códigos predeterminados y el generador discreto 801 de tramado también se pueden usar en el decodificador correspondiente (como se ilustra en la figura 26). La decodificación es factible si se usa un tramado pseudoaleatorio y si el decodificador permanece sincronizado con el codificador 100. En este caso, el generador discreto 801 de tramado en el decodificador genera la señal 602 de tramado, y la realización particular de tramado se asocia únicamente con un libro 811 de códigos Huffman particular de la colección 803 de libros de códigos. Dado el modelo psicoacústico (por ejemplo, representado por la envolvente 138 de asignación y el parámetro de asignación de tasa) y el libro 811 de códigos seleccionado, el decodificador puede realizar la decodificación usando el decodificador Huffman 551 para producir los índices 812 de cuantización decodificados.
Como tal, se puede usar un conjunto 803 relativamente pequeño de libros de códigos Huffman en lugar de la codificación aritmética. El uso de un libro 811 de códigos particular del conjunto 813 de libros de códigos Huffman puede depender de una realización predeterminada de la señal 602 de tramado. Al mismo tiempo, se puede usar un conjunto limitado de valores de tramado admisibles que forman M realizaciones de tramado predeterminadas. El proceso de asignación de tasa puede implicar entonces el uso de cuantizadores sin tramado, cuantizadores con tramado y codificación Huffman.
Como resultado de la cuantización de los coeficientes de error reajustados, se obtiene un bloque 145 de coeficientes de error cuantizados. El bloque 145 de coeficientes de error cuantizados corresponde al bloque de coeficientes de error que están disponibles en el decodificador correspondiente. En consecuencia, el bloque 145 de coeficientes de error cuantizados puede usarse para determinar un bloque 150 de coeficientes de transformada estimados. El
codificador 100 puede comprender una unidad 113 de cambio de escala inversa configurada para realizar las operaciones de cambio de escala inversas realizadas por la unidad 113 de cambio de escala, produciendo así un bloque 147 de coeficientes de error cuantizados escalados. Puede usarse una unidad 116 de suma para determinar un bloque 148 de coeficientes aplanados reconstruidos, sumando el bloque 150 de coeficientes de transformada estimados al bloque 147 de coeficientes de error cuantizados escalados. Además, se puede usar una unidad 114 de aplanamiento inverso para aplicar la envolvente ajustada 139 al bloque 148 de coeficientes aplanados reconstruidos, produciendo así un bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos corresponde a la versión del bloque 131 de coeficientes de transformada que está disponible en la decodificación correspondiente. En consecuencia, el bloque 149 de coeficientes reconstruidos puede usarse en el predictor 117 para determinar el bloque 150 de coeficientes estimados.
El bloque 149 de coeficientes reconstruidos se representa en el dominio no aplanado, es decir, el bloque 149 de coeficientes reconstruidos también es representativo de la envolvente espectral del bloque actual 131. Como se describe a continuación, esto puede ser beneficioso para el rendimiento del predictor 117.
El predictor 117 puede configurarse para estimar el bloque 150 de coeficientes de transformada estimados basándose en uno o más bloques anteriores 149 de coeficientes reconstruidos. En particular, el predictor 117 puede configurarse para determinar uno o más parámetros del predictor de manera que se reduzca (por ejemplo, se minimice) un criterio de error de predicción predeterminado. A modo de ejemplo, dicho o más parámetros del predictor pueden determinarse de manera que se reduzca (por ejemplo, se minimice) una energía, o una energía perceptualmente ponderada, del bloque 141 de coeficientes de error de predicción. Dicho o más parámetros del predictor pueden incluirse como datos 164 del predictor en el flujo de bits generado por el codificador 100.
El predictor 117 puede hacer uso de un modelo de señal, tal como se describe en la solicitud de patente US 61750052 y las solicitudes de patente que reivindican su prioridad, cuyo contenido se incorpora por referencia. Dicho o más parámetros del predictor pueden corresponder a uno o más parámetros de modelo del modelo de señal.
La figura 19b muestra un diagrama de bloques de otro ejemplo de codificador 170 de voz basado en transformada. El codificador 170 de voz basado en transformada de la figura 19b comprende muchos de los componentes del codificador 100 de la figura 19a. Sin embargo, el codificador 170 de voz basado en transformada de la figura 19b está configurado para generar un flujo de bits que tiene una tasa de bits variable. Para este propósito, el codificador 170 comprende una unidad 172 de estado de tasa de bits promedio (ABR) configurada para realizar un seguimiento de la tasa de bits que ha consumido el flujo de bits para los bloques 131 anteriores. La unidad 171 de asignación de bits usa esta información para determinar el número total de bits 143 que está disponible para codificar el bloque actual 131 de coeficientes de transformada.
A continuación, se describe un decodificador 500 de voz basado en transformada correspondiente en el contexto de las figuras 23a a 23d. La figura 23a muestra un diagrama de bloques de un decodificador 500 de voz basado en transformada de ejemplo. El diagrama de bloques muestra un banco 504 de filtros de síntesis (también denominado unidad de transformada inversa) que se usa para convertir un bloque 149 de coeficientes reconstruidos del dominio transformada al dominio tiempo, produciendo así muestras de la señal de audio decodificada. El banco 504 de filtros de síntesis puede hacer uso de una MDCT inversa con un paso predeterminado (por ejemplo, un paso de aproximadamente 5 ms o 256 muestras).
El bucle principal del decodificador 500 funciona en unidades de este paso. Cada paso produce un vector de dominio transformada (también denominado bloque) que tiene una longitud o dimensión que corresponde a una configuración de ancho de banda predeterminada del sistema. Tras el relleno con ceros hasta el tamaño de transformada del banco 504 de filtros de síntesis, el vector de dominio transformada se usará para sintetizar una actualización de señal de dominio tiempo de una duración predeterminada (por ejemplo, 5 ms) al proceso de superposición/adición del banco 504 de filtros de síntesis.
Como se indicó anteriormente, los códecs de audio genéricos basados en transformada típicamente emplean tramas con secuencias de bloques cortos en el rango de 5 ms para el manejo de transitorios. Como tales, los códecs de audio genéricos basados en transformada proporcionan las herramientas necesarias de transformada y cambio de ventana para una coexistencia perfecta de bloques cortos y largos. Una interfaz espectral de voz definida mediante la omisión del banco 504 de filtros de síntesis de la figura 23a puede, por lo tanto, integrarse convenientemente en el códec de audio basado en transformada de uso general, sin necesidad de introducir herramientas de conmutación adicionales. En otras palabras, el decodificador 500 de voz basado en transformada de la figura 23a puede combinarse convenientemente con un decodificador de audio basado en transformada genérico. En particular, el decodificador 500 de voz basado en transformada de la figura 23a puede hacer uso del banco 504 de filtros de síntesis proporcionado por el decodificador de audio basado en transformada genérico (por ejemplo, el decodificador AAC o HE-AAC).
A partir del flujo de bits entrante (en particular, de los datos 161 de envolvente y de los datos 162 de ganancia comprendidos dentro del flujo de bits), un decodificador 503 de envolvente puede determinar una envolvente de señal. En particular, el decodificador 503 de envolvente puede configurarse para determinar la envolvente ajustada 139 basándose en los datos 161 de envolvente y los datos 162 de ganancia). Como tal, el decodificador 503 de envolvente
puede realizar tareas similares a la unidad 104 de interpolación y la unidad 107 de refinamiento de envolvente del codificador 100, 170. Como se describió anteriormente, la envolvente ajustada 109 representa un modelo de la variación de la señal en un conjunto de bandas 302 de frecuencia predefinidas.
Además, el decodificador 500 comprende una unidad 114 de aplanamiento inverso que está configurada para aplicar la envolvente ajustada 139 a un vector de dominio aplanado, cuyas entradas pueden ser nominalmente de varianza uno. El vector de dominio aplanado corresponde al bloque 148 de coeficientes aplanados reconstruidos descritos en el contexto del codificador 100, 170. A la salida de la unidad 114 de aplanamiento inverso se obtiene el bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos se proporciona al banco 504 de filtros de síntesis (para generar la señal de audio decodificada) y al predictor 517 de subbanda.
El predictor 517 de subbanda funciona de manera similar al predictor 117 del codificador 100, 170. En particular, el predictor 517 de subbanda está configurado para determinar un bloque 150 de coeficientes de transformada estimados (en el dominio aplanado) basándose en uno o más bloques anteriores 149 de coeficientes reconstruidos (usando uno o más parámetros del predictor señalados dentro del flujo de bits). En otras palabras, el predictor 517 de subbanda está configurado para generar un vector de dominio aplanado previsto desde un búfer de vectores de salida y envolventes de señal previamente decodificados, basándose en los parámetros del predictor, como un desfase del predictor y una ganancia del predictor. El decodificador 500 comprende un decodificador 501 del predictor configurado para decodificar los datos 164 del predictor para determinar uno o más parámetros del predictor.
El decodificador 500 comprende además un decodificador 502 de espectro que está configurado para proporcionar una corrección aditiva al vector de dominio aplanado previsto, basado típicamente en la mayor parte del flujo de bits (es decir, basado en los datos 163 de coeficiente). El proceso de decodificación del espectro está controlado principalmente por un vector de asignación, que se deriva de la envolvente y un parámetro de control de asignación transmitido (también denominado parámetro de compensación). Como se ilustra en la figura 23a, puede haber una dependencia directa del decodificador 502 de espectro en los parámetros 520 del predictor. Como tal, el decodificador 502 de espectro puede configurarse para determinar el bloque 147 de coeficientes de error cuantizados escalados basándose en los datos 163 de coeficiente recibidos. Como se describe en el contexto del codificador 100, 170, los cuantizadores 321, 322, 323 usados para cuantizar el bloque 142 de coeficientes de error reajustados típicamente dependen de la envolvente 138 de asignación (que se puede derivar de la envolvente ajustada 139) y del parámetro de compensación. Además, los cuantizadores 321, 322, 323 pueden depender de un parámetro 146 de control proporcionado por el predictor 117. El parámetro 146 de control puede ser derivado por el decodificador 500 usando los parámetros 520 del predictor (de manera analógica al codificador 100, 170).
Como se indicó anteriormente, el flujo de bits recibido comprende datos 161 de envolvente y datos 162 de ganancia que pueden usarse para determinar la envolvente ajustada 139. En particular, la unidad 531 del decodificador 503 de envolvente puede configurarse para determinar la envolvente actual cuantizada 134 a partir de los datos 161 de envolvente. A modo de ejemplo, la envolvente actual cuantizada 134 puede tener una resolución de 3 dB en bandas 302 de frecuencia predefinidas (como se indica en la figura 21a). La envolvente actual cuantizada 134 puede actualizarse para cada conjunto 132, 332 de bloques (por ejemplo, cada cuatro unidades de codificación, es decir, bloques, o cada 20 ms), en particular para cada conjunto desplazado 332 de bloques. Las bandas 302 de frecuencia de la envolvente actual cuantizada 134 pueden comprender un número creciente de intervalos 301 de frecuencia en función de la frecuencia, para adaptarse a las propiedades del oído humano.
La envolvente actual cuantizada 134 puede interpolarse linealmente desde una envolvente anterior cuantizada 135 a envolventes interpoladas 136 para cada bloque 131 del conjunto desplazado 332 de bloques (o posiblemente, del conjunto actual 132 de bloques). Las envolventes interpoladas 136 pueden determinarse en el dominio cuantizado de 3 dB. Esto significa que los valores 303 de energía interpolados pueden redondearse al nivel de 3dB más cercano. Una envolvente interpolada 136 de ejemplo se ilustra mediante el gráfico de puntos de la figura 21a. Para cada envolvente actual cuantizada 134, se proporcionan cuatro ganancias 137 de corrección de nivel (también denominadas ganancias de envolvente) como datos 162 de ganancia. La unidad 532 de decodificación de ganancia puede configurarse para determinar las ganancias 137 de corrección de nivel a partir de los datos 162 de ganancia. Las ganancias de corrección de nivel pueden cuantizarse en pasos de 1 dB. Cada ganancia de corrección de nivel se aplica a la correspondiente envolvente interpolada 136 para proporcionar las envolventes ajustadas 139 para los diferentes bloques 131. Debido a la resolución aumentada de las ganancias 137 de corrección de nivel, la envolvente ajustada 139 puede tener una resolución aumentada (por ejemplo, una resolución de 1dB).
La figura 21 b muestra un ejemplo de interpolación lineal o geométrica entre la envolvente anterior cuantizada 135 y la envolvente actual cuantizada 134. Las envolventes 135, 134 se pueden separar en una parte de nivel medio y una parte de forma del espectro logarítmico. Estas partes se pueden interpolar con estrategias independientes, como una estrategia lineal, geométrica o armónica (resistencias paralelas). Como tal, se pueden usar diferentes esquemas de interpolación para determinar las envolventes interpoladas 136. El esquema de interpolación usado por el decodificador 500 típicamente corresponde al esquema de interpolación usado por el codificador 100, 170.
La unidad 107 de refinamiento de envolvente del decodificador 503 de envolvente puede configurarse para determinar una envolvente 138 de asignación a partir de la envolvente ajustada 139 cuantizando la envolvente ajustada 139 (por
ejemplo, en pasos de 3 dB). La envolvente 138 de asignación se puede usar junto con el parámetro de control de asignación o el parámetro de desplazamiento (comprendido dentro de los datos 163 de coeficiente) para crear un vector de asignación de entero nominal usado para controlar la decodificación espectral, es decir, la decodificación de los datos 163 de coeficiente. En particular, el vector de asignación de enteros nominales puede usarse para determinar un cuantizador para cuantizar inversamente los índices de cuantización comprendidos dentro de los datos 163 de coeficiente. La envolvente 138 de asignación y el vector de asignación de enteros nominales pueden determinarse de forma analógica en el codificador 100, 170 y en el decodificador 500.
La figura 27 ilustra un proceso de asignación de bits de ejemplo basado en la envolvente 138 de asignación. Como se describió anteriormente, la envolvente 138 de asignación puede cuantizarse de acuerdo con una resolución predeterminada (por ejemplo, una resolución de 3 dB). Cada valor de energía espectral cuantizado de la envolvente 138 de asignación puede asignarse a un valor entero correspondiente, donde los valores enteros adyacentes pueden representar una diferencia en la energía espectral correspondiente a la resolución predeterminada (por ejemplo, una diferencia de 3dB). El conjunto resultante de números enteros puede denominarse envolvente 1004 de asignación de enteros (denominado iEnv). La envolvente 1004 de asignación de enteros puede ser compensada por el parámetro de compensación para producir el vector de asignación de enteros nominal (denominado iAlloc) que proporciona una indicación directa del cuantizador que se usará para cuantizar el coeficiente de una banda 302 de frecuencia particular (identificado por un índice de banda de frecuencia, bandIdx).
La figura 27 muestra en el diagrama 1003 la envolvente 1004 de asignación de números enteros en función de las bandas 302 de frecuencia. Puede verse que para la banda 1002 de frecuencia (bandIdx = 7) la envolvente 1004 de asignación de enteros toma el valor entero -17 (iEnv[7]=-17). La envolvente 1004 de asignación de enteros puede estar limitado a un valor máximo (denominado iMax, por ejemplo, iMax = -15). El proceso de asignación de bits puede hacer uso de una fórmula de asignación de bits que proporciona un índice 1006 de cuantizador (denominado iAlloc [bandIdx]) en función de la envolvente 1004 de asignación de enteros y del parámetro de desplazamiento (denominado AllocOffset). Como se describió anteriormente, el parámetro de compensación (es decir, AllocOffset) se transmite al decodificador 500 correspondiente, lo que permite que el decodificador 500 determine los índices 1006 de cuantizador usando la fórmula de asignación de bits. La fórmula de asignación de bits puede estar dada por
iAlloc[bandIdx] = iEnv[bandIdx] - (iMax - CO N STA N TO FFSET) AllocOffset,
donde CONSTANT_OFFSET puede ser un desplazamiento constante, por ejemplo, CONSTANT_OFFSET=20. A modo de ejemplo, si el proceso de asignación de bits ha determinado que la restricción de tasa de bits se puede lograr usando un parámetro de desplazamiento AllocOffset=-13, el índice 1007 de cuantizador de la séptima banda de frecuencia se puede obtener como iAlloc[7] = -17 - (-15-20) - 13 = 5. Usando la fórmula de asignación de bits mencionada anteriormente para todas las bandas 302 de frecuencia, se pueden determinar los índices 1006 de cuantizador (y por consiguiente los cuantizadores 321, 322, 323) para todas las bandas 302 de frecuencia. Un índice de cuantizador menor que cero puede redondearse a un índice de cuantizador cero. De manera similar, un índice de cuantizador mayor que el índice de cuantizador máximo disponible puede redondearse hacia abajo al índice de cuantizador máximo disponible.
Además, la figura 27 muestra un ejemplo de envolvente 1011 de ruido que se puede lograr usando el esquema de cuantización descrito en el presente documento. La envolvente 1011 de ruido muestra la envolvente de ruido de cuantización que se introduce durante la cuantización. Si se representa junto con la envolvente de la señal (representada por la envolvente 1004 de asignación de enteros en la figura 27), la envolvente 1011 de ruido ilustra el hecho de que la distribución del ruido de cuantización se optimiza perceptualmente con respecto a la envolvente de la señal.
Para permitir que un decodificador 500 se sincronice con un flujo de bits recibido, se pueden transmitir diferentes tipos de tramas. Una trama puede corresponder a un conjunto 132, 332 de bloques, en particular a un bloque desplazado 332 de bloques. En particular, pueden transmitirse las llamadas tramas P, que se codifican de manera relativa con respecto a una trama anterior. En la descripción anterior, se supuso que el decodificador 500 es consciente de la envolvente anterior cuantizada 135. La envolvente anterior cuantizada 135 puede proporcionarse dentro de una trama anterior, de manera que el conjunto actual 132 o el conjunto desplazado 332 correspondiente puede corresponder a una trama P. Sin embargo, en un escenario de puesta en marcha, el decodificador 500 típicamente no es consciente de la envolvente anterior cuantizada 135. Para este propósito, se puede transmitir una trama I (por ejemplo, al inicio o de forma regular). La trama 1 puede comprender dos envolventes, una de las cuales se usa como el envolvente anterior cuantizado 135 y el otro se usa como el envolvente actual cuantizado 134. Las tramas 1 se pueden usar para el caso de inicio de la interfaz espectral de voz. (es decir, del decodificador 500 de voz basado en transformada), por ejemplo, al seguir una trama empleando un modo de codificación de audio diferente y/o como una herramienta para habilitar explícitamente un punto de empalme del flujo de bits de audio.
El funcionamiento del predictor 517 de subbanda se ilustra en la figura 23d. En el ejemplo ilustrado, los parámetros 520 del predictor son un parámetro de desfase y un parámetro de ganancia del predictor g. Los parámetros 520 del predictor pueden determinarse a partir de los datos 164 del predictor usando una tabla predeterminada de valores
posibles para el parámetro de desfase y el parámetro de ganancia del predictor. Esto permite la transmisión eficiente de tasa de bits de los parámetros 520 del predictor.
Dicho o más vectores de coeficientes de transformada previamente decodificados (es decir, dicho o más bloques anteriores 149 de coeficientes reconstruidos) pueden almacenarse en un búfer 541 de señal de subbanda (o MDCT). El búfer 541 puede actualizarse de acuerdo con el paso (por ejemplo, cada 5 ms). El extractor 543 del predictor puede configurarse para funcionar en el búfer 541 dependiendo de un parámetro de desfase normalizado T. El parámetro de desfase normalizado T puede determinarse normalizando el parámetro 520 de desfase a unidades de paso (por ejemplo, a unidades de zancada MDCT). Si el parámetro de desfase T es un número entero, el extractor 543 puede recuperar uno o más vectores T de coeficientes de transformada previamente decodificados en el búfer 541. En otras palabras, el parámetro de desfase T puede ser indicativo de cuáles de uno o más bloques anteriores 149 de coeficientes reconstruidos se van a usar para determinar el bloque 150 de coeficientes de transformada estimados. Se proporciona una discusión detallada sobre una posible implementación del extractor 543 en la solicitud de patente US 61750052 y las solicitudes de patente que reivindican su prioridad, cuyo contenido se incorpora por referencia.
El extractor 543 puede operar en vectores (o bloques) que transportan envolventes de señal completas. Por otra parte, el bloque 150 de coeficientes de transformada estimados (a proporcionar por el predictor 517 de subbanda) se representa en el dominio aplanado. En consecuencia, la salida del extractor 543 puede conformarse como un vector de dominio aplanado. Esto se puede lograr usando un conformador 544 que hace uso de las envolventes ajustadas 139 de uno o más bloques anteriores 149 de coeficientes reconstruidos. Las envolventes ajustadas 139 de uno o más bloques anteriores 149 de coeficientes reconstruidos pueden almacenarse en un búfer 542 de envolvente. La unidad 544 de modelado puede configurarse para obtener una envolvente de señal retardada para usarla en el aplanamiento de T0 unidades de tiempo en el búfer 542 de envolvente, donde T0 es el número entero más cercano a T. Después, el vector de dominio aplanado se puede escalar por el parámetro de ganancia g para producir el bloque 150 de coeficientes de transformada estimados (en el dominio aplanado).
Como alternativa, el proceso de aplanamiento retrasado realizado por el conformador 544 se puede omitir usando un predictor 517 de subbanda que funciona en el dominio aplanado, por ejemplo, un predictor 517 de subbanda que funciona sobre los bloques 148 de coeficientes aplanados reconstruidos. Sin embargo, se ha encontrado que una secuencia de vectores de dominio aplanados (o bloques) no se asigna bien a las señales de tiempo debido a los aspectos de alias de tiempo de la transformada (por ejemplo, la transformada MDCT). Como consecuencia, se reduce el ajuste al modelo de señal subyacente del extractor 543 y resulta un mayor nivel de ruido de codificación de la estructura alternativa. En otras palabras, se ha encontrado que los modelos de señal (por ejemplo, modelos sinusoidales o periódicos) usados por el predictor 517 de subbanda producen un rendimiento aumentado en el dominio no aplanado (en comparación con el dominio aplanado).
Cabe señalar que, en un ejemplo alternativo, la salida del predictor 517 (es decir, el bloque 150 de coeficientes de transformada estimados) puede agregarse a la salida de la unidad 114 de aplanamiento inverso (es decir, al bloque 149 de coeficientes reconstruidos) (véase la figura 23a). La unidad 544 de conformador de la figura 23c puede configurarse entonces para realizar la operación combinada de aplanamiento retardado y aplanamiento inverso.
Los elementos en el flujo de bits recibido pueden controlar el vaciado ocasional del búfer 541 de subbanda y del búfer 541 de envolvente, por ejemplo en el caso de una primera unidad de codificación (es decir, un primer bloque) de una trama I. Esto permite la decodificación de una trama I sin conocimiento de los datos anteriores. La primera unidad de codificación típicamente no podrá hacer uso de una contribución predictiva, pero no obstante puede usar un número relativamente menor de bits para transmitir la información 520 del predictor. La pérdida de ganancia de predicción puede compensarse asignando más bits a la codificación de errores de predicción de esta primera unidad de codificación. Típicamente, la contribución del predictor vuelve a ser sustancial para la segunda unidad de codificación (es decir, un segundo bloque) de una trama I. Debido a estos aspectos, la calidad se puede mantener con un aumento relativamente pequeño en la tasa de bits, incluso con un uso muy frecuente de tramas I.
En otras palabras, los conjuntos 132, 332 de bloques (también denominados tramas) comprenden una pluralidad de bloques 131 que pueden codificarse usando codificación predictiva. Al codificar una trama I, solo el primer bloque 203 de un conjunto 332 de bloques no puede codificarse usando la ganancia de codificación lograda por un codificador predictivo. Ya el siguiente bloque 201 puede hacer uso de los beneficios de la codificación predictiva. Esto significa que los inconvenientes de una trama 1 con respecto a la eficiencia de codificación se limitan a la codificación del primer bloque 203 de coeficientes de transformada de la trama 332 y no se aplican a los otros bloques 201, 204, 205 de la trama 332. Por lo tanto, el esquema de codificación de voz basado en transformada descrito en el presente documento permite un uso relativamente frecuente de 1 trama sin un impacto significativo en la eficiencia de la codificación. Como tal, el esquema de codificación de voz basado en transformada descrito actualmente es particularmente adecuado para aplicaciones que requieren una sincronización relativamente rápida y/o relativamente frecuente entre el decodificador y el codificador.
La figura 23d muestra un diagrama de bloques de un decodificador 502 de espectro de ejemplo. El decodificador 502 de espectro comprende un decodificador sin pérdidas 551 que está configurado para decodificar los datos 163 de coeficiente codificados por entropía. Además, el decodificador 502 de espectro comprende un cuantizador inverso 552
que está configurado para asignar valores de coeficiente a los índices de cuantización incluidos dentro de los datos 163 de coeficiente. Como se describe en el contexto del codificador 100, 170, se pueden cuantizar diferentes coeficientes de transformada usando diferentes cuantizadores seleccionados de un conjunto de cuantizadores predeterminados, por ejemplo, un conjunto finito de cuantizadores escalares basados en modelos. Como se muestra en la figura 22, un conjunto de cuantizadores 321, 322, 323 puede comprender diferentes tipos de cuantizadores. El conjunto de cuantizadores puede comprender un cuantizador 321 que proporciona síntesis de ruido (en caso de tasa de bits cero), uno o más cuantizadores con tramado 322 (para relaciones señal-ruido relativamente bajas, SNR, y para tasas de bits intermedias) y/o uno o más cuantizadores simples 323 (para SNR relativamente altas y para tasas de bits relativamente altas).
La unidad 107 de refinamiento de envolvente puede configurarse para proporcionar la envolvente 138 de asignación que puede combinarse con el parámetro de compensación comprendido dentro de los datos 163 de coeficiente para producir un vector de asignación. El vector de asignación contiene un valor entero para cada banda 302 de frecuencia. El valor entero para una banda 302 de frecuencia particular apunta al punto de tasa de distorsión que se usará para la cuantización inversa de los coeficientes de transformada de la banda particular 302. En otras palabras, el valor entero para la banda 302 de frecuencia particular apunta al cuantizador que se usará para la cuantización inversa de los coeficientes de transformada de la banda particular 302. Un aumento del valor entero en uno corresponde a un aumento de 1,5 dB en la SNR. Para los cuantizadores con tramado 322 y los cuantizadores simples 323, se puede usar un modelo de distribución de probabilidad laplaciano en la codificación sin pérdidas, que puede emplear codificación aritmética. Se pueden usar uno o más cuantizadores con tramado 322 para cerrar el hueco de una manera transparente entre los casos de tasa de bits baja y alta. Los cuantizadores con tramado 322 pueden ser beneficiosos para crear una calidad de audio de salida suficientemente suave para señales estacionarias similares al ruido.
En otras palabras, el cuantizador inverso 552 puede configurarse para recibir los índices de cuantización de coeficientes de un bloque actual 131 de coeficientes de transformada. Dicho o más índices de cuantización de coeficientes de una banda 302 de frecuencia particular se han determinado usando un cuantizador correspondiente de un conjunto predeterminado de cuantizadores. El valor del vector de asignación (que puede determinarse compensando la envolvente 138 de asignación con el parámetro de compensación) para la banda 302 de frecuencia particular indica el cuantizador que se ha usado para determinar uno o más índices de cuantización de coeficiente de la banda 302 de frecuencia particular. Habiendo identificado el cuantizador, dicho o más índices de cuantización de coeficientes pueden cuantizarse inversamente para producir el bloque 145 de coeficientes de error cuantizados.
Además, el decodificador espectral 502 puede comprender una unidad 113 de reajuste inversa para proporcionar el bloque 147 de coeficientes de error cuantizados escalados. Las herramientas adicionales y las interconexiones alrededor del decodificador sin pérdidas 551 y el cuantizador inverso 552 de la figura 23d pueden usarse para adaptar la decodificación espectral a su uso en el decodificador general 500 que se muestra en la figura 23a, donde la salida del decodificador espectral 502 (es decir, el bloque 145 de coeficientes de error cuantizados) se usa para proporcionar una corrección aditiva a un vector de dominio aplanado previsto (es decir, al bloque 150 de coeficientes de transformada estimados). En particular, las herramientas adicionales pueden asegurar que el procesamiento realizado por el decodificador 500 corresponda al procesamiento realizado por el codificador 100, 170.
En particular, el decodificador espectral 502 puede comprender una unidad 111 de ajuste heurística. Como se muestra junto con el codificador 100, 170, la unidad 111 de ajuste heurística puede tener un impacto en la asignación de bits. En el codificador 100, 170, los bloques actuales 141 de coeficientes de error de predicción se pueden escalar hasta la varianza unitaria mediante una regla heurística. Como consecuencia, la asignación predeterminada puede conducir a una cuantización demasiado fina de la salida final ajustada hacia abajo de la unidad 111 de ajuste heurística. Por lo tanto, la asignación debe modificarse de manera similar a la modificación de los coeficientes de error de predicción.
Sin embargo, como se describe a continuación, puede ser beneficioso evitar la reducción de los recursos de codificación para uno o más de los intervalos de baja frecuencia (o bandas de baja frecuencia). En particular, esto puede ser beneficioso para contrarrestar un artefacto de retumbo/ruido LF (baja frecuencia) que es más prominente en situaciones de voz (es decir, para señales que tienen un parámetro 146 de control relativamente grande, rfu). Como tal, la asignación de bits/selección del cuantizador en dependencia del parámetro 146 de control, que se describe a continuación, puede considerarse como un "refuerzo de calidad de baja frecuencia adaptativo de voz".
El decodificador espectral puede depender de un parámetro 146 de control denominado rfu que es una versión limitada de la ganancia del predictor g, rfu = min (1, max (g, 0)).
Usando el parámetro 146 de control, se puede adaptar el conjunto de cuantizadores usados en la unidad 112 de cuantización de coeficientes del codificador 100, 170 y usados en el cuantizador inverso 552. En particular, el ruido del conjunto de cuantizadores puede adaptarse basándose en el parámetro 146 de control. A modo de ejemplo, un valor del parámetro 146 de control, rfu, cercano a 1 puede desencadenar una limitación del rango de niveles de asignación usando cuantizadores con tramado y puede desencadenar una reducción de la varianza del nivel de síntesis de ruido. En un ejemplo, se puede establecer un umbral de decisión de tramado en rfu = 0,75 y una ganancia de ruido igual a 1 - rfu. La adaptación de tramado puede afectar tanto a la decodificación sin pérdidas como al cuantizador inverso, mientras que la adaptación de ganancia de ruido típicamente solo afecta al cuantizador inverso.
Puede suponerse que la contribución del predictor es sustancial para situaciones sonoras/tonales. Como tal, una ganancia de predictor g relativamente alta (es decir, un parámetro 146 de control relativamente alto) puede ser indicativa de una señal de voz sonora o tonal. En tales situaciones, la adición de ruido relacionado con tramado o explícito (caso de asignación cero) ha demostrado empíricamente que es contraproducente para la calidad percibida de la señal codificada. Como consecuencia, el número de cuantizadores con tramado 322 y/o el tipo de ruido usado para el cuantizador 321 de síntesis de ruido puede adaptarse basándose en la ganancia del predictor g, mejorando así la calidad percibida de la señal de voz codificada.
Como tal, el parámetro 146 de control se puede usar para modificar el rango 324, 325 de SNR para el que se usan los cuantizadores con tramado 322. A modo de ejemplo, si el parámetro 146 de control rfu < 0,75, se puede usar el rango 324 para cuantizadores con tramado. En otras palabras, si el parámetro 146 de control está por debajo de un umbral predeterminado, se puede usar el primer conjunto 326 de cuantizadores. Por otro lado, si el parámetro 146 de control rfu > 0,75, se puede usar el rango 325 para cuantizadores con tramado. En otras palabras, si el parámetro 146 de control es mayor o igual que el umbral predeterminado, se puede usar el segundo conjunto 327 de cuantizadores.
Además, el parámetro 146 de control puede usarse para modificar la varianza y la asignación de bits. La razón de esto es que, por lo general, una predicción exitosa requerirá una corrección menor, especialmente en el rango de frecuencia más bajo de 0 a 1 kHz. Puede ser ventajoso hacer que el cuantizador sea explícitamente consciente de esta desviación del modelo de varianza unitaria para liberar recursos de codificación a bandas 302 de frecuencia más alta.
Equivalentes, ampliaciones, alternativas y varios
Otras realizaciones de la presente invención resultarán evidentes para un experto en la técnica después de estudiar la descripción anterior. Aunque la presente descripción y los dibujos divulgan realizaciones y ejemplos, la invención no se limita a estos ejemplos específicos. Se pueden realizar numerosas modificaciones y variaciones sin apartarse del alcance de la presente invención, que se define en las reivindicaciones adjuntas. Cualquier signo de referencia que aparezca en las reivindicaciones no debe entenderse como limitativo de su alcance.
Los sistemas y métodos divulgados anteriormente pueden implementarse como software, firmware, hardware o una combinación de los mismos. En una implementación hardware, la división de tareas entre unidades funcionales a la que se refiere la descripción anterior no corresponde necesariamente a la división en unidades físicas; por el contrario, un componente físico puede tener múltiples funcionalidades y una tarea puede ser realizada por varios componentes físicos en cooperación. Ciertos componentes o todos los componentes pueden implementarse como software ejecutado por un procesador o microprocesador de señal digital, o implementarse como hardware o como un circuito integrado de aplicación específica. Dicho software puede distribuirse en medios legibles por ordenador, que pueden comprender medios de almacenamiento de computadora (o medios no transitorios) y medios de comunicación (o medios transitorios). Como bien sabe un experto en la técnica, el término medios de almacenamiento informático incluye medios tanto volátiles como no volátiles, extraíbles y no extraíbles implementados en cualquier método o tecnología para el almacenamiento de información, como instrucciones legibles por ordenador, estructuras de datos, módulos de programas u otros datos. Los medios de almacenamiento informático incluyen, entre otros, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento en disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda usarse para almacenar la información deseada y al que pueda acceder un ordenador. Además, el experto en la técnica sabe bien que los medios de comunicación típicamente incorporan instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, como una onda portadora u otro mecanismo de transporte, e incluyen cualquier medio de entrega de información.
Claims (15)
1. - Un sistema de procesamiento de audio (100 en la figura 1) configurado para aceptar un flujo de bits de audio, comprendiendo el sistema de procesamiento de audio:
un componente frontal, que incluye:
- una etapa (102) de descuantización adaptada para recibir coeficientes espectrales cuantizados y para emitir una primera representación del dominio frecuencia de una señal intermedia; y
- una etapa (103) de transformada inversa para recibir la primera representación del dominio frecuencia de la señal intermedia y sintetizar, basándose en ella, una representación del dominio tiempo de la señal intermedia;
una etapa de procesamiento, que incluye:
- un banco (104) de filtros de análisis para recibir la representación del dominio tiempo de la señal intermedia y emitir una segunda representación del dominio frecuencia de la señal intermedia;
- al menos un componente (105, 106, 107) de procesamiento para recibir dicha segunda representación del dominio frecuencia de la señal intermedia y emitir una representación del dominio frecuencia de una señal de audio procesada; y
- un banco (108) de filtros de síntesis para recibir la representación del dominio frecuencia de la señal de audio procesada y emitir una representación del dominio tiempo de la señal de audio procesada; y
- un convertidor (109) de frecuencia de muestreo para recibir dicha representación del dominio tiempo de la señal de audio procesada y emitir una señal de audio reconstruida muestreada en una frecuencia de muestreo de destino, en el que las tasas de muestreo internas respectivas de la representación del dominio tiempo de la señal de audio intermedia y de la representación del dominio tiempo de la señal de audio procesada son iguales, y en el que al menos dicho componente de procesamiento incluye:
- una etapa (106) de mezcla ascendente paramétrica para recibir una señal de mezcla descendente con M canales y emitir, basándose en la misma, una señal con N canales, en la que la etapa de mezcla ascendente paramétrica funciona al menos en un modo en el que 1 < M < N y un modo en el que 1 < M = N;
caracterizado porque al menos dicho componente de procesamiento incluye además:
- una primera etapa de retardo configurada para compensar el modo actual de la etapa de mezcla ascendente paramétrica para que la etapa de procesamiento tenga un retardo total constante.
2. - El sistema de procesamiento de audio de la reivindicación 1, en el que el componente frontal funciona en un modo de audio y en un modo específico de voz, y en el que un cambio de modo del modo de audio al modo específico de voz del componente frontal incluye la reducción una longitud de trama máxima de la etapa de transformada inversa.
3. - El sistema de procesamiento de audio de la reivindicación 2, en el que el convertidor de tasa de muestra funciona para proporcionar una señal de audio reconstruida muestreada en la frecuencia de muestreo de destino que difiere hasta en un 5% de la frecuencia de muestreo interna de dicha representación del dominio tiempo de la señal de audio procesada.
4. - El sistema de procesamiento de audio de cualquiera de las reivindicaciones anteriores, que comprende además una línea de derivación dispuesta paralela a la etapa de procesamiento y que comprende una segunda etapa de retardo configurada para incurrir en un retardo igual al retardo total constante de la etapa de procesamiento.
5. - El sistema de procesamiento de audio de cualquiera de las reivindicaciones anteriores, en el que la etapa de mezcla ascendente paramétrica puede funcionar además al menos en un modo en el que M = 3 y N = 5.
6. - El sistema de procesamiento de audio de la reivindicación 5, en el que el componente frontal está configurado, en ese modo de la etapa de mezcla ascendente paramétrica donde M = 3 y N = 5, para proporcionar una señal intermedia que comprende una señal de mezcla descendente donde el componente frontal deriva dos canales de los M = 3 canales de canales codificados conjuntamente en el flujo de bits de audio.
7. - El sistema de procesamiento de audio de cualquiera de las reivindicaciones anteriores, en el que al menos dicho componente de procesamiento incluye además un módulo (106) de replicación de banda espectral dispuesto aguas arriba de la etapa de mezcla ascendente paramétrica y operable para reconstruir contenido de alta frecuencia, en el que el módulo de replicación de banda espectral
- está configurado para estar activo al menos en aquellos modos de la etapa de mezcla ascendente paramétrica donde M < N; y
- es operable independientemente del modo actual de la etapa de mezcla ascendente paramétrica cuando la etapa de mezcla ascendente paramétrica está en cualquiera de los modos donde M = N.
8. - El sistema de procesamiento de audio de la reivindicación 7, en el que al menos dicho componente de procesamiento incluye además una etapa de codificación en forma de onda (214 en la figura 8) dispuesta paralela o aguas abajo de la etapa de mezcla ascendente paramétrica y operable para aumentar cada uno de los N canales con contenido de baja frecuencia codificado en forma de onda, en el que la etapa de codificación en forma de onda se puede activar y desactivar independientemente del modo actual de la etapa de mezcla ascendente paramétrica y el módulo de replicación de banda espectral.
9. - El sistema de procesamiento de audio de la reivindicación 8, operable al menos en un modo de decodificación donde la etapa de mezcla ascendente paramétrica está en un modo M = N con M > 2.
10. - El sistema de procesamiento de audio de la reivindicación 9, operable al menos en los siguientes modos de decodificación:
i) etapa de mezcla ascendente paramétrica en modo M = N = 1;
ii) etapa de mezcla ascendente paramétrica en modo M = N = 1 y módulo de replicación de banda espectral activo; iii) etapa de mezcla ascendente paramétrica en modo M = 1, N = 2 y módulo de replicación de banda espectral activo; iv) etapa de mezcla ascendente paramétrica en modo M = 1, N = 2, módulo de replicación de banda espectral activo y etapa de codificación en forma de onda activa;
v) etapa de mezcla ascendente paramétrica en modo M = 2, N = 5 y módulo de replicación de banda espectral activo; vi) etapa de mezcla ascendente paramétrica en modo M = 2, N = 5, módulo de replicación de banda espectral activo y etapa de codificación en forma de onda activa;
vii) etapa de mezcla ascendente paramétrica en modo M = 3, N = 5 y módulo de replicación de banda espectral activo; viii) etapa de mezcla ascendente paramétrica en modo M = N = 2;
ix) etapa de mezcla ascendente paramétrica en modo M = N = 2 y módulo de replicación de banda espectral activo; x) etapa de mezcla ascendente paramétrica en modo M = N = 7;
xi) etapa de mezcla ascendente paramétrica en modo M = N = 7 y módulo de replicación de banda espectral activo.
11. - El sistema de procesamiento de audio de cualquiera de las reivindicaciones anteriores, que comprende además los siguientes componentes dispuestos aguas abajo de la etapa de procesamiento:
un componente de cambio de fase configurado para recibir la representación del dominio tiempo de la señal de audio procesada, en la que al menos un canal representa un canal de sonido envolvente, y para realizar un cambio de fase de 90 grados en al menos dicho canal de sonido envolvente; y
un componente de mezcla descendente configurado para recibir la señal de audio procesada desde el componente de cambio de fase y para emitir, basándose en ello, una señal de mezcla descendente con dos canales.
12. - El sistema de procesamiento de audio de cualquiera de las reivindicaciones anteriores, que comprende además un decodificador Lfe configurado para preparar al menos un canal adicional basado en el flujo de bits de audio e incluir dicho canal o canales adicionales en la señal de audio reconstruida.
13. - Un método para procesar un flujo de bits de audio, comprendiendo el método:
- realizar la descuantización (102) que recibe coeficientes espectrales cuantizados y emitir una primera representación del dominio frecuencia de una señal intermedia;
- realizar una transformada inversa (103) que recibe la primera representación del dominio frecuencia de la señal intermedia y sintetizar, basándose en ella, una representación del dominio tiempo de la señal intermedia;
- realizar el filtrado (104) de análisis que recibe la representación del dominio tiempo de la señal intermedia y emitir una segunda representación del dominio frecuencia de la señal intermedia;
- realizar al menos un paso (105, 106, 107) de procesamiento que recibe dicha segunda representación del dominio frecuencia de la señal intermedia y emitir una representación del dominio frecuencia de una señal de audio procesada; y
- realizar el filtrado (108) de síntesis que recibe la representación del dominio frecuencia de la señal de audio procesada y emitir una representación del dominio tiempo de la señal de audio procesada; y
- realizar la conversión (109) de frecuencia de muestreo que recibe dicha representación del dominio tiempo de la señal de audio procesada y emitir una señal de audio reconstruida muestreada a una frecuencia de muestreo de destino,
en el que las tasas de muestreo internas respectivas de la representación del dominio tiempo de la señal de audio intermedia y de la representación del dominio tiempo de la señal de audio procesada son iguales, y en el que al menos dicho paso de procesamiento incluye:
- realizar la mezcla ascendente paramétrica (106) que recibe una señal de mezcla descendente con M canales y que emite, basándose en ello, una señal con N canales, donde la mezcla ascendente paramétrica es operable al menos en un modo donde 1 < M < N y un modo donde 1 < M = N;
caracterizado porque al menos dicho paso de procesamiento incluye además:
- incurrir en un primer retardo que compensa el modo actual de la mezcla ascendente paramétrica para que la etapa de procesamiento tenga un retardo total constante.
14. - El método de la reivindicación 13, en el que dicha descuantización y transformación inversa se realizan en un componente de hardware operable al menos en un modo de audio y un modo específico de voz, en el que un cambio de modo del modo de audio al modo específico de voz incluye reducir una longitud de trama máxima de la transformada inversa.
15. - Un producto de programa informático que comprende un medio legible por ordenador con instrucciones para realizar el método de cualquiera de las reivindicaciones 14-15.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361809019P | 2013-04-05 | 2013-04-05 | |
| US201361875959P | 2013-09-10 | 2013-09-10 | |
| PCT/EP2014/056857 WO2014161996A2 (en) | 2013-04-05 | 2014-04-04 | Audio processing system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2934646T3 true ES2934646T3 (es) | 2023-02-23 |
Family
ID=50489074
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES14717713T Active ES2934646T3 (es) | 2013-04-05 | 2014-04-04 | Sistema de procesamiento de audio |
Country Status (10)
| Country | Link |
|---|---|
| US (2) | US9478224B2 (es) |
| EP (1) | EP2981956B1 (es) |
| JP (2) | JP6013646B2 (es) |
| KR (1) | KR101717006B1 (es) |
| CN (2) | CN109509478B (es) |
| BR (1) | BR112015025092B1 (es) |
| ES (1) | ES2934646T3 (es) |
| IN (1) | IN2015MN02784A (es) |
| RU (1) | RU2625444C2 (es) |
| WO (1) | WO2014161996A2 (es) |
Families Citing this family (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI557727B (zh) * | 2013-04-05 | 2016-11-11 | 杜比國際公司 | 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品 |
| ES2934646T3 (es) * | 2013-04-05 | 2023-02-23 | Dolby Int Ab | Sistema de procesamiento de audio |
| PL3186808T3 (pl) * | 2014-08-28 | 2019-08-30 | Nokia Technologies Oy | Kwantyzacja parametrów audio |
| 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 |
| EP3281196A1 (en) * | 2015-04-10 | 2018-02-14 | Thomson Licensing | Method and device for encoding multiple audio signals, and method and device for decoding a mixture of multiple audio signals with improved separation |
| EP3107096A1 (en) | 2015-06-16 | 2016-12-21 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Downscaled decoding |
| WO2017080835A1 (en) * | 2015-11-10 | 2017-05-18 | Dolby International Ab | Signal-dependent companding system and method to reduce quantization noise |
| JP6467561B1 (ja) * | 2016-01-26 | 2019-02-13 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 適応的な量子化 |
| KR102546098B1 (ko) * | 2016-03-21 | 2023-06-22 | 한국전자통신연구원 | 블록 기반의 오디오 부호화/복호화 장치 및 그 방법 |
| US20170289536A1 (en) * | 2016-03-31 | 2017-10-05 | Le Holdings (Beijing) Co., Ltd. | Method of audio debugging for television and electronic device |
| JP6976277B2 (ja) * | 2016-06-22 | 2021-12-08 | ドルビー・インターナショナル・アーベー | 第一の周波数領域から第二の周波数領域にデジタル・オーディオ信号を変換するためのオーディオ・デコーダおよび方法 |
| US10249307B2 (en) * | 2016-06-27 | 2019-04-02 | Qualcomm Incorporated | Audio decoding using intermediate sampling rate |
| US10224042B2 (en) | 2016-10-31 | 2019-03-05 | Qualcomm Incorporated | Encoding of multiple audio signals |
| PT3539127T (pt) | 2016-11-08 | 2020-12-04 | Fraunhofer Ges Forschung | Dispositivo de downmix e método para executar o downmix de pelo menos dois canais e codificador multicanal e descodificador multicanal |
| GB2559200A (en) * | 2017-01-31 | 2018-08-01 | Nokia Technologies Oy | Stereo audio signal encoder |
| US10475457B2 (en) | 2017-07-03 | 2019-11-12 | Qualcomm Incorporated | Time-domain inter-channel prediction |
| US10950251B2 (en) * | 2018-03-05 | 2021-03-16 | Dts, Inc. | Coding of harmonic signals in transform-based audio codecs |
| CN112567767B (zh) * | 2018-06-18 | 2023-01-03 | 奇跃公司 | 用于交互式音频环境的空间音频 |
| CN112352277B (zh) * | 2018-07-03 | 2024-05-31 | 松下电器(美国)知识产权公司 | 编码装置及编码方法 |
| CN112384976B (zh) * | 2018-07-12 | 2024-10-11 | 杜比国际公司 | 动态eq |
| US11216742B2 (en) | 2019-03-04 | 2022-01-04 | Iocurrents, Inc. | Data compression and communication using machine learning |
| WO2020216459A1 (en) | 2019-04-23 | 2020-10-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method or computer program for generating an output downmix representation |
| CN110335615B (zh) * | 2019-05-05 | 2021-11-16 | 北京字节跳动网络技术有限公司 | 音频数据的处理方法、装置、电子设备及存储介质 |
| WO2021004046A1 (zh) * | 2019-07-09 | 2021-01-14 | 海信视像科技股份有限公司 | 音频处理方法与装置、以及显示设备 |
| BR112022003440A2 (pt) * | 2019-09-03 | 2022-05-24 | Dolby Laboratories Licensing Corp | Codec de efeitos de baixa latência, baixa frequência |
| RU2731602C1 (ru) * | 2019-09-30 | 2020-09-04 | Ордена трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования "Московский технический университет связи и информатики" (МТУСИ) | Способ и устройство компандирования с предыскажением звуковых вещательных сигналов |
| CN113140225B (zh) * | 2020-01-20 | 2024-07-02 | 腾讯科技(深圳)有限公司 | 语音信号处理方法、装置、电子设备及存储介质 |
| CN111354365B (zh) * | 2020-03-10 | 2023-10-31 | 苏宁云计算有限公司 | 一种纯语音数据采样率识别方法、装置、系统 |
| JP7567180B2 (ja) * | 2020-03-13 | 2024-10-16 | ヤマハ株式会社 | 音響処理装置および音響処理方法 |
| JP7491395B2 (ja) * | 2020-11-05 | 2024-05-28 | 日本電信電話株式会社 | 音信号精製方法、音信号復号方法、これらの装置、プログラム及び記録媒体 |
| EP4256555B1 (en) | 2020-12-02 | 2025-10-29 | Dolby Laboratories Licensing Corporation | Immersive voice and audio services (ivas) with adaptive downmix strategies |
| WO2022158943A1 (ko) | 2021-01-25 | 2022-07-28 | 삼성전자 주식회사 | 다채널 오디오 신호 처리 장치 및 방법 |
| CN118038879A (zh) * | 2022-11-07 | 2024-05-14 | 抖音视界有限公司 | 一种音频数据的编码方法、解码方法及装置 |
| GB2624686B (en) * | 2022-11-25 | 2025-07-23 | Lenbrook Industries Ltd | Improvements to audio coding |
| US20250078845A1 (en) * | 2023-08-29 | 2025-03-06 | Samsung Electronics Co., Ltd. | Lossless audio coding for multichannel hierarchical reconstruction |
Family Cites Families (57)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3582589B2 (ja) * | 2001-03-07 | 2004-10-27 | 日本電気株式会社 | 音声符号化装置及び音声復号化装置 |
| US7292901B2 (en) | 2002-06-24 | 2007-11-06 | Agere Systems Inc. | Hybrid multi-channel/cue coding/decoding of audio signals |
| US7644003B2 (en) * | 2001-05-04 | 2010-01-05 | Agere Systems Inc. | Cue-based audio coding/decoding |
| JP4108317B2 (ja) * | 2001-11-13 | 2008-06-25 | 日本電気株式会社 | 符号変換方法及び装置とプログラム並びに記憶媒体 |
| US7657427B2 (en) | 2002-10-11 | 2010-02-02 | Nokia Corporation | Methods and devices for source controlled variable bit-rate wideband speech coding |
| KR101169596B1 (ko) * | 2003-04-17 | 2012-07-30 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 오디오 신호 합성 |
| US7412380B1 (en) * | 2003-12-17 | 2008-08-12 | Creative Technology Ltd. | Ambience extraction and modification for enhancement and upmix of audio signals |
| US7394903B2 (en) | 2004-01-20 | 2008-07-01 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and method for constructing a multi-channel output signal or for generating a downmix signal |
| GB0402661D0 (en) * | 2004-02-06 | 2004-03-10 | Medical Res Council | TPL2 and its expression |
| CA2457988A1 (en) * | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
| CN1677493A (zh) * | 2004-04-01 | 2005-10-05 | 北京宫羽数字技术有限责任公司 | 一种增强音频编解码装置及方法 |
| SE0400998D0 (sv) * | 2004-04-16 | 2004-04-16 | Cooding Technologies Sweden Ab | Method for representing multi-channel audio signals |
| TWI498882B (zh) * | 2004-08-25 | 2015-09-01 | Dolby Lab Licensing Corp | 音訊解碼器 |
| DE102004043521A1 (de) * | 2004-09-08 | 2006-03-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen eines Multikanalsignals oder eines Parameterdatensatzes |
| SE0402649D0 (sv) * | 2004-11-02 | 2004-11-02 | Coding Tech Ab | Advanced methods of creating orthogonal signals |
| US8340306B2 (en) * | 2004-11-30 | 2012-12-25 | Agere Systems Llc | Parametric coding of spatial audio with object-based side information |
| US7903824B2 (en) * | 2005-01-10 | 2011-03-08 | Agere Systems Inc. | Compact side information for parametric coding of spatial audio |
| DE602006015294D1 (de) * | 2005-03-30 | 2010-08-19 | Dolby Int Ab | Mehrkanal-audiocodierung |
| US7961890B2 (en) * | 2005-04-15 | 2011-06-14 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Multi-channel hierarchical audio coding with compact side information |
| KR101340233B1 (ko) * | 2005-08-31 | 2013-12-10 | 파나소닉 주식회사 | 스테레오 부호화 장치, 스테레오 복호 장치 및 스테레오부호화 방법 |
| US20080004883A1 (en) | 2006-06-30 | 2008-01-03 | Nokia Corporation | Scalable audio coding |
| EP2054882B1 (en) * | 2006-08-15 | 2011-01-19 | Dolby Laboratories Licensing Corporation | Arbitrary shaping of temporal noise envelope without side-information |
| CN101529501B (zh) | 2006-10-16 | 2013-08-07 | 杜比国际公司 | 音频对象编码器和音频对象编码方法 |
| JP4930320B2 (ja) * | 2006-11-30 | 2012-05-16 | ソニー株式会社 | 再生方法及び装置、プログラム並びに記録媒体 |
| US8363842B2 (en) | 2006-11-30 | 2013-01-29 | Sony Corporation | Playback method and apparatus, program, and recording medium |
| US8200351B2 (en) | 2007-01-05 | 2012-06-12 | STMicroelectronics Asia PTE., Ltd. | Low power downmix energy equalization in parametric stereo encoders |
| KR101370354B1 (ko) * | 2007-02-06 | 2014-03-06 | 코닌클리케 필립스 엔.브이. | 낮은 복잡도 파라메트릭 스테레오 디코더 |
| US8290167B2 (en) * | 2007-03-21 | 2012-10-16 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for conversion between multi-channel audio formats |
| CN101889307B (zh) * | 2007-10-04 | 2013-01-23 | 创新科技有限公司 | 相位-幅度3d立体声编码器和解码器 |
| EP2077550B8 (en) | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
| US8546172B2 (en) * | 2008-01-18 | 2013-10-01 | Miasole | Laser polishing of a back contact of a solar cell |
| 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 |
| CA2730200C (en) | 2008-07-11 | 2016-09-27 | Max Neuendorf | An apparatus and a method for generating bandwidth extension output data |
| KR101381513B1 (ko) | 2008-07-14 | 2014-04-07 | 광운대학교 산학협력단 | 음성/음악 통합 신호의 부호화/복호화 장치 |
| KR101261677B1 (ko) * | 2008-07-14 | 2013-05-06 | 광운대학교 산학협력단 | 음성/음악 통합 신호의 부호화/복호화 장치 |
| ES2592416T3 (es) * | 2008-07-17 | 2016-11-30 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Esquema de codificación/decodificación de audio que tiene una derivación conmutable |
| CN102099857B (zh) * | 2008-07-18 | 2013-03-13 | 杜比实验室特许公司 | 用于解码器中的编码音频数据的频域后滤波的方法和系统 |
| US9330671B2 (en) | 2008-10-10 | 2016-05-03 | Telefonaktiebolaget L M Ericsson (Publ) | Energy conservative multi-channel audio coding |
| JP5524237B2 (ja) * | 2008-12-19 | 2014-06-18 | ドルビー インターナショナル アーベー | 空間キューパラメータを用いてマルチチャンネルオーディオ信号に反響を適用する方法と装置 |
| WO2010075895A1 (en) | 2008-12-30 | 2010-07-08 | Nokia Corporation | Parametric audio coding |
| EP2214161A1 (en) * | 2009-01-28 | 2010-08-04 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for upmixing a downmix audio signal |
| KR101367604B1 (ko) | 2009-03-17 | 2014-02-26 | 돌비 인터네셔널 에이비 | 적응형으로 선택가능한 좌/우 또는 미드/사이드 스테레오 코딩과 파라메트릭 스테레오 코딩의 조합에 기초한 진보된 스테레오 코딩 |
| FR2947945A1 (fr) | 2009-07-07 | 2011-01-14 | France Telecom | Allocation de bits dans un codage/decodage d'amelioration d'un codage/decodage hierarchique de signaux audionumeriques |
| KR20110022252A (ko) | 2009-08-27 | 2011-03-07 | 삼성전자주식회사 | 스테레오 오디오의 부호화, 복호화 방법 및 장치 |
| KR20110049068A (ko) * | 2009-11-04 | 2011-05-12 | 삼성전자주식회사 | 멀티 채널 오디오 신호의 부호화/복호화 장치 및 방법 |
| US9117458B2 (en) * | 2009-11-12 | 2015-08-25 | Lg Electronics Inc. | Apparatus for processing an audio signal and method thereof |
| US8442837B2 (en) | 2009-12-31 | 2013-05-14 | Motorola Mobility Llc | Embedded speech and audio coding using a switchable model core |
| TWI443646B (zh) * | 2010-02-18 | 2014-07-01 | Dolby Lab Licensing Corp | 音訊解碼器及使用有效降混之解碼方法 |
| US8423355B2 (en) | 2010-03-05 | 2013-04-16 | Motorola Mobility Llc | Encoder for audio signal including generic audio and speech frames |
| EP2375409A1 (en) | 2010-04-09 | 2011-10-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder, audio decoder and related methods for processing multi-channel audio signals using complex prediction |
| US8489391B2 (en) | 2010-08-05 | 2013-07-16 | Stmicroelectronics Asia Pacific Pte., Ltd. | Scalable hybrid auto coder for transient detection in advanced audio coding with spectral band replication |
| EP2612321B1 (en) | 2010-09-28 | 2016-01-06 | Huawei Technologies Co., Ltd. | Device and method for postprocessing decoded multi-channel audio signal or decoded stereo signal |
| ES2553398T3 (es) | 2010-11-03 | 2015-12-09 | Huawei Technologies Co., Ltd. | Codificador paramétrico para codificar una señal de audio multicanal |
| JP5712288B2 (ja) | 2011-02-14 | 2015-05-07 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 重複変換を使用した情報信号表記 |
| EP2523473A1 (en) * | 2011-05-11 | 2012-11-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for generating an output signal employing a decomposer |
| USRE48258E1 (en) * | 2011-11-11 | 2020-10-13 | Dolby International Ab | Upsampling using oversampled SBR |
| ES2934646T3 (es) * | 2013-04-05 | 2023-02-23 | Dolby Int Ab | Sistema de procesamiento de audio |
-
2014
- 2014-04-04 ES ES14717713T patent/ES2934646T3/es active Active
- 2014-04-04 US US14/781,232 patent/US9478224B2/en active Active
- 2014-04-04 KR KR1020157031853A patent/KR101717006B1/ko active Active
- 2014-04-04 EP EP14717713.3A patent/EP2981956B1/en active Active
- 2014-04-04 IN IN2784MUN2015 patent/IN2015MN02784A/en unknown
- 2014-04-04 JP JP2016505845A patent/JP6013646B2/ja active Active
- 2014-04-04 WO PCT/EP2014/056857 patent/WO2014161996A2/en not_active Ceased
- 2014-04-04 BR BR112015025092-0A patent/BR112015025092B1/pt active IP Right Grant
- 2014-04-04 CN CN201910045920.8A patent/CN109509478B/zh active Active
- 2014-04-04 RU RU2015147158A patent/RU2625444C2/ru active
- 2014-04-04 CN CN201480024625.XA patent/CN105247613B/zh active Active
-
2016
- 2016-09-01 US US15/255,009 patent/US9812136B2/en active Active
- 2016-09-21 JP JP2016184272A patent/JP6407928B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2981956A2 (en) | 2016-02-10 |
| JP2016514858A (ja) | 2016-05-23 |
| KR20150139601A (ko) | 2015-12-11 |
| BR112015025092A2 (pt) | 2017-07-18 |
| RU2015147158A (ru) | 2017-05-17 |
| CN109509478A (zh) | 2019-03-22 |
| JP2017017749A (ja) | 2017-01-19 |
| US9478224B2 (en) | 2016-10-25 |
| WO2014161996A2 (en) | 2014-10-09 |
| CN105247613A (zh) | 2016-01-13 |
| RU2625444C2 (ru) | 2017-07-13 |
| BR112015025092B1 (pt) | 2022-01-11 |
| CN105247613B (zh) | 2019-01-18 |
| CN109509478B (zh) | 2023-09-05 |
| US20160055855A1 (en) | 2016-02-25 |
| EP2981956B1 (en) | 2022-11-30 |
| US20160372123A1 (en) | 2016-12-22 |
| JP6407928B2 (ja) | 2018-10-17 |
| WO2014161996A3 (en) | 2014-12-04 |
| HK1214026A1 (zh) | 2016-07-15 |
| JP6013646B2 (ja) | 2016-10-25 |
| IN2015MN02784A (es) | 2015-10-23 |
| US9812136B2 (en) | 2017-11-07 |
| KR101717006B1 (ko) | 2017-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2934646T3 (es) | Sistema de procesamiento de audio | |
| JP7269279B2 (ja) | 無相関化信号の寄与の残差信号ベースの調整を用いたマルチチャンネルオーディオデコーダ、マルチチャンネルオーディオエンコーダ、方法およびコンピュータプログラム | |
| US11238874B2 (en) | Audio encoder for encoding a multichannel signal and audio decoder for decoding an encoded audio signal | |
| US10297259B2 (en) | Advanced stereo coding based on a combination of adaptively selectable left/right or mid/side stereo coding and of parametric stereo coding | |
| JP6735053B2 (ja) | マルチチャネル符号化におけるステレオ充填装置及び方法 | |
| ES3002807T3 (en) | Mdct-based complex prediction stereo decoding | |
| ES2953084T3 (es) | Decodificador de audio para procesar audio estéreo usando una dirección de predicción variable | |
| JP2011030228A (ja) | レベル・パラメータを生成する装置と方法、及びマルチチャネル表示を生成する装置と方法 | |
| KR20180125475A (ko) | 멀티 채널 코딩 | |
| HK1214026B (zh) | 音频处理系统 | |
| HK40049313B (zh) | 用於编码的音频编码器及用於解码的音频解码器 | |
| HK40049255B (zh) | 用於编码的音频编码器及用於解码的音频解码器 |



