ES3047823T3 - Audio encoder with a signal-dependent number and precision control, related methods and computer programs - Google Patents

Audio encoder with a signal-dependent number and precision control, related methods and computer programs

Info

Publication number
ES3047823T3
ES3047823T3 ES23171372T ES23171372T ES3047823T3 ES 3047823 T3 ES3047823 T3 ES 3047823T3 ES 23171372 T ES23171372 T ES 23171372T ES 23171372 T ES23171372 T ES 23171372T ES 3047823 T3 ES3047823 T3 ES 3047823T3
Authority
ES
Spain
Prior art keywords
frame
audio data
value
refinement
audio
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
Application number
ES23171372T
Other languages
English (en)
Inventor
Jan Büthe
Markus Schnell
Stefan Döhla
Bernhard Grill
Martin Dietz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES3047823T3 publication Critical patent/ES3047823T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/22Mode decision, i.e. based on audio signal content versus external parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/028Noise substitution, i.e. substituting non-tonal spectral components by noisy source
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/03Spectral prediction for preventing pre-echo; Temporary noise shaping [TNS], e.g. in MPEG2 or MPEG4
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/20Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/032Quantisation or dequantisation of spectral components

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un codificador de audio para codificar datos de entrada de audio (11) comprende: un preprocesador (10) para preprocesar los datos de entrada de audio (11) para obtener datos de audio a codificar; un procesador codificador (15) para codificar los datos de audio a codificar; y un controlador (20) para controlar el procesador codificador (15) de modo que, dependiendo de una primera característica de señal de un primer fotograma de los datos de audio a codificar, un número de elementos de datos de audio de los datos de audio a codificar por el procesador codificador (15) para el primer fotograma se reduce en comparación con una segunda característica de señal de un segundo fotograma, y un primer número de unidades de información utilizadas para codificar el número reducido de elementos de datos de audio para el primer fotograma se mejora más fuertemente en comparación con un segundo número de unidades de información para el segundo fotograma. (Traducción automática con Google Translate, sin valor legal)

Description

[0001] DESCRIPCIÓN
[0003] Codificador de audio con un número dependiente de la señal y control de precisión, y métodos y programas informáticos relacionados
[0005] Especificación
[0007] La presente invención se refiere a procesamiento de señal de audio y, particularmente, a codificadores/decodificadores de audio que aplican un número dependiente de la señal y control de precisión.
[0009] Los codificadores de audio modernos basados en transformación aplican una serie de procesamientos motivados psicoacústicamente a una representación espectral de un segmento de audio (una trama) para obtener un espectro residual. Este espectro residual se cuantifica y los coeficientes se codifican utilizando codificación entrópica.
[0011] En este proceso, el tamaño de paso de cuantificación, que generalmente se controla mediante una ganancia global, tiene un impacto directo en el consumo de bits del codificador por entropía y necesita seleccionarse de tal forma que se cumpla el presupuesto de bits, que generalmente está limitado y a menudo es fijo. Ya que el consumo de bits del codificador por entropía, y en particular un codificador aritmético, no se conoce exactamente antes de la codificación, el cálculo de la ganancia global óptima sólo se puede hacer en una iteración de bucle cerrado de cuantificación y codificación. Sin embargo, esto no es factible bajo determinadas restricciones de complejidad ya que la codificación aritmética trae consigo una complejidad computacional significativa.
[0013] Por lo tanto, los codificadores del estado de la técnica, como se pueden encontrar en el códec de 3GPP EVS presentan generalmente un estimador de consumo de bits para derivar un primer estimado de ganancia global, que generalmente opera en el espectro de potencia de la señal residual. Dependiendo de la restricción de complejidad, esto puede ser seguido por un bucle de tasa para refinar el primer estimado. Utilizar tal estimado solo o conjuntamente con una capacidad de corrección muy limitada reduce la complejidad, pero también reduce la precisión que lleva a sub- o sobreestimaciones significativas del consumo de bits.
[0015] La sobreestimación del consumo de bits lleva a bits en exceso después de la primera etapa de codificación. Los codificadores del estado de la técnica utilizan estos para refinar la cuantificación de los coeficientes codificados y en una segunda etapa de codificación denominada como codificación residual. La codificación residual es fundamentalmente diferente de la primera etapa de codificación ya que funciona en granularidad de bits y por lo tanto no incorpora ninguna codificación entrópica. Además, la codificación residual generalmente sólo se aplica en frecuencias con valores cuantificados diferentes de cero, dejando zonas muertas que no se mejoran más.
[0017] Por otro lado, una subestimación del consumo de bits lleva inevitablemente a una pérdida parcial de coeficientes espectrales, generalmente las frecuencias más altas. En codificadores del estado de la técnica, este efecto se mitiga aplicando sustitución de ruido en el decodificador, lo cual se basa en la suposición de que el contenido de alta frecuencia es generalmente ruidoso.
[0019] En esta configuración es evidente, que es deseable codificar tantas señal como sea posible en el primer paso de codificación, que utiliza codificación entrópica y es por lo tanto más eficiente que la etapa de codificación residual. Por lo tanto, a uno le gustaría seleccionar la ganancia global con un estimado de bits lo más cercano posible al presupuesto de bits disponible. Si bien el estimador basado en el espectro de potencia funciona bien para la mayoría de contenido de audio, puede provocar problemas para señales altamente tonales, la estimación de primera etapa se basa principalmente en lóbulos laterales irrelevantes de la descomposición de frecuencia del banco de filtros mientras los componentes importantes se pierden debido a una subestimación del consumo de bits.
[0021] El documento WO 2010/040503 A2 divulga un decodificador de audio para proporcionar una información de audio decodificada basándose en una información de audio codificada por entropía que comprende un decodificador de entropía basado en contexto configurado para decodificar la información de audio codificada por entropía dependiendo de un contexto, cuyo contexto se basa en una información de audio decodificada previamente en un estado de funcionamiento sin reinicio. El decodificador de entropía basado en contexto está configurado para seleccionar una información de mapeo, para derivar la información de audio decodificada a partir de la información de audio codificada, dependiendo del contexto. El decodificador de entropía basado en contexto comprende un reinicializador de contexto configurado para reiniciar el contexto para seleccionar la información de mapeo a un contexto predeterminado, cuyo contexto predeterminado es independiente de la información de audio previamente decodificada, en respuesta a una información secundaria de la información de audio codificada. Un codificador correspondiente comprueba el número requerido de bits para codificar usando un contexto anterior y usando un contexto por defecto y usó el modo de codificación que requiere el menor número de bits y establece un indicador de restablecimiento de contexto en la información secundaria.
[0023] El documento US 2017/223356 A1 divulga un método de codificación de espectro que incluye cuantificar datos espectrales de una banda actual basándose en un primer esquema de cuantificación, generar un bit inferior de la banda actual usando los datos espectrales y los datos espectrales cuantificados, cuantificar una secuencia de bits inferiores que incluye el bit inferior de la banda actual basándose en un segundo esquema de cuantificación, y generar un flujo de bits basándose en un bit superior que excluye N bits, donde N es 1 o mayor, a partir de los datos espectrales cuantificados y la secuencia cuantificada de bits inferiores. Una decisión de modo de codificación entre un codificador de dominio de transformada o un codificador de dominio de tiempo se realiza de acuerdo con una característica de señal.
[0025] Un objetivo de la presente invención es proporcionar un concepto mejorado para codificación o decodificación de audio que, sin embargo, es eficiente y obtiene una buena calidad de audio.
[0027] Este objetivo se consigue mediante un codificador de audio de la reivindicación 1, un método de codificación de datos de entrada de audio de la reivindicación 17 o un programa informático de la reivindicación 19.
[0029] La presente invención se basa en el hallazgo de que, con el fin de mejorar la eficiencia particularmente con respecto a la tasa de bits por un lado y la calidad de audio por el otro lado, es necesario un cambio dependiente de la señal con respecto a la situación típica que está dada por consideraciones psicoacústicas. Los modelos psicoacústicos o consideraciones psicoacústicas típicos dan como resultado una buena calidad de audio en una tasa de bits baja para todas las clases de señal en promedio, es decir, para todas las tramas de señal de audio independientemente de su característica de señal, cuando se contempla un resultado promedio. Sin embargo, se ha descubierto que para determinadas clases de señal o para señales que tienen determinadas características de señal tales como las señales bastante tonales, el modelo psicoacústico directo o el control psicoacústico directo del codificador solamente da resultados subóptimos con respecto a la calidad de audio (cuando se mantiene constante la tasa de bits), o con respecto a la tasa de bits (cuando se mantiene constante la calidad de audio).
[0031] Por lo tanto, con el fin de abordar este inconveniente de consideraciones psicoacústicas típicas, la presente invención proporciona, en el contexto de un codificador de audio con un preprocesador para preprocesar los datos de entrada de audio para obtener datos de audio que se van a codificar, y un procesador de codificador para codificar los datos de audio que se van a codificar, un controlador para controlar el procesador de codificador de modo que, dependiendo de una determinada característica de señal de la trama, se reduzca un número de elementos de datos de audio de los datos de audio que se van a codificar por el procesador de codificador en comparación con resultados directos típicos obtenidos por medio de las consideraciones psicoacústicas del estado de la técnica. Además, esta reducción del número de elementos de datos de audio se hace en una forma dependiente de la señal de modo que, para una trama con una cierta primera característica de señal, el número se reduce más que para otra trama con otra característica de señal que difiere de la característica de señal de la primera trama. Esta reducción en el número de elementos de datos de audio se puede considerar como una reducción en el número absoluto o una reducción en el número relativo, aunque esto no es decisivo. Sin embargo, es una característica que las unidades de información que se “ahorran” por la reducción intencional del número de elementos de datos de audio no se pierden simplemente, sino que se utilizan para codificar de manera más precisa el número restante de elementos de datos, es decir, los elementos de datos que no han sido eliminados por la reducción intencional del número de elementos de datos de audio.
[0033] De acuerdo con la invención, el controlador para controlar el procesador de codificador opera de modo que, dependiendo de la primera característica de señal de una primera trama de los datos de audio que se van a codificar, un número de elementos de datos de audio de los datos de audio que se van a codificar por medio del procesador de codificador para la primera trama se reduce en comparación con una segunda característica de señal de una segunda trama, y, al mismo tiempo, un primer número de unidades de información utilizadas para codificar el número reducido de elementos de datos de audio para la primera trama se mejora más en comparación con un segundo número de unidades de información para la segunda trama.
[0035] En una realización preferida, la reducción se hace de modo que, para tramas de señal más tonal, se lleva a cabo una reducción más fuerte y, al mismo tiempo, se mejora más el número de bits para las líneas individuales en comparación con una trama que es menos tonal, es decir, que es más ruidosa. Aquí, el número no se reduce en tal grado elevado y, correspondientemente, el número de unidades de información utilizadas para codificar los elementos de datos de audio menos tonales no se aumenta mucho.
[0037] La presente invención proporciona un entorno donde, en una forma dependiente de la señal, se violan más o menos las consideraciones psicoacústicas proporcionadas generalmente. Sin embargo, por otro lado, esta violación no se trata como en codificadores normales, donde una violación de consideraciones psicoacústicas se hace, por ejemplo, en una situación de emergencia tal como una situación donde, con el fin de mantener una tasa de bits requerida, las porciones de frecuencia más alta se establecen en cero. En cambio, de acuerdo con la presente invención, tal violación de consideraciones psicoacústicas normales se hace independientemente de cualquier situación de emergencia y las unidades de información “ahorradas” se aplican para refinar más los elementos de datos de audio “sobrevivientes”.
[0038] En realizaciones preferidas, se utiliza un procesador de codificador de dos etapas que tiene, como etapa de codificación inicial, por ejemplo, un codificador por entropía tal como un codificador aritmético, o un codificador de longitud variable tal como un codificador de Huffman. La segunda etapa de codificación sirve como una etapa de refinamiento y este segundo codificador se implementa generalmente en realizaciones preferidas como un codificador residual o un codificador de bits que opera en una granularidad de bits que puede, por ejemplo, implementarse sumando un cierto desfase definido en caso de un primer valor de una unidad de información o restando un desfase en caso de un valor opuesto de la unidad de información. En una realización, este codificador de refinamiento se implementa preferiblemente como un codificador residual sumando un desfase en caso de un primer valor de bit y restando un desfase en caso de un segundo valor de bit. En una realización preferida, la reducción del número de elementos de datos de audio da como resultado una situación en que la distribución de los bits disponibles en un escenario típico de frecuencia de tramas fija se cambia de tal forma que la etapa de codificación inicial recibe un presupuesto de bits más bajo que la etapa de codificación de refinamiento. Hasta ahora, el paradigma era que la etapa de codificación inicial era recibir un presupuesto de bits que fuera tan alto como sea posible independientemente de la característica de señal, ya que se creía que la etapa de codificación inicial tal como una etapa de codificación aritmética tiene la eficiencia más alta y, por lo tanto, codifica mucho mejor que una etapa de codificación residual desde un punto de vista de entropía. Sin embargo, de acuerdo con la presente invención, este paradigma se remueve, ya que se ha descubierto que para determinadas señales tales como, por ejemplo, señales con una tonalidad más alta, la eficiencia del codificador por entropía, tal como un codificador aritmético, no es tan alta como una eficiencia obtenida por un codificador residual conectado posteriormente, tal como un codificador de bits. Sin embargo, si bien es cierto que la etapa de codificación entrópica es altamente eficiente para señales de audio en promedio, la presente invención ahora aborda este problema al no ver el promedio, sino al reducir el presupuesto de bits para la etapa de codificación inicial en una forma dependiente de la señal y, preferiblemente, para porciones de señal tonal.
[0040] En una realización preferida, el desplazamiento del presupuesto de bits de la etapa de codificación inicial a la etapa de codificación de refinamiento con base en la característica de señal de los datos de entrada se hace de tal forma que al menos dos unidades de información de refinamiento están disponibles para al menos uno, y preferiblemente el 50 % e incluso más preferiblemente todos los elementos de datos que han sobrevivido a la reducción del número de elementos de datos. Además, se ha descubierto que un procedimiento particularmente eficiente para calcular estas unidades de información de refinamiento en el lado del codificador y aplicar estas unidades de información de refinamiento en el lado del decodificador es un procedimiento iterativo donde, en un cierto orden tal como desde una frecuencia baja hasta una frecuencia alta, los bits restantes del presupuesto de bits para la etapa de codificación de refinamiento se consumen uno tras otro. Dependiendo del número de elementos de datos de audio sobrevivientes y dependiendo del número de unidades de información para la etapa de codificación de refinamiento, el número de iteraciones puede ser significativamente mayor que dos y, se ha descubierto que para tramas de señal fuertemente tonal, el número de iteraciones puede ser cuatro, cinco o incluso más.
[0042] En una realización preferida, la determinación de un valor de control por medio del controlador se hace de una forma indirecta, es decir, sin una determinación explícita de la característica de señal. Para este fin, el valor de control se calcula con base en datos de entrada manipulados, donde estos datos de entrada manipulados son, por ejemplo, los datos de entrada que se van a cuantificar o datos relacionados con la amplitud derivados a partir de los datos que se van a cuantificar. Aunque el valor de control para el procesador de codificador se determina con base en datos manipulados, la cuantificación/codificación real se lleva a cabo sin esta manipulación. De tal forma, el procedimiento dependiente de la señal se obtiene determinando un valor de manipulación para la manipulación en una forma dependiente de la señal, donde esta manipulación influye más o menos en la reducción obtenida del número de elementos de datos de audio, sin conocimiento explícito la característica de señal específica.
[0044] En otra implementación, se puede aplicar el modo directo en el cual se estima directamente una cierta característica de señal y dependiendo del resultado de este análisis de señal, se lleva a cabo una cierta reducción del número de elementos de datos con el fin de obtener una precisión superior para los elementos de datos sobrevivientes.
[0046] En una implementación adicional, se puede aplicar un procedimiento separado con el fin de reducir los elementos de datos de audio. En el procedimiento separado, se obtiene un cierto número de elementos de datos por medio de una cuantificación controlada por un control cuantificador generalmente accionado psicoacústicamente y con base en la señal de audio de entrada, los elementos de datos de audio ya cuantificados se reducen con respecto a su número y, preferiblemente, esta reducción se hace eliminando los elementos de datos de audio más pequeños con respecto a su amplitud, su energía, o su potencia. El control para la reducción se puede obtener, nuevamente, por medio de una determinación de característica de señal directa/explícita o por medio de un control de señal indirecto o no explícito.
[0047] En una realización preferida adicional, se aplica el procedimiento integrado, en el cual el cuantificador variable es controlado para llevar a cabo una sola cuantificación pero con base en datos manipulados donde, al mismo tiempo, se cuantifican los datos no manipulados. Se calcula un valor de control de cuantificador tal como una ganancia global utilizando datos manipulados dependientes de la señal mientras se cuantifican los datos sin esta manipulación y se codifica el resultado de la cuantificación utilizando todas las unidades de información disponibles de modo que, en el caso de una codificación de dos etapas, se mantenga una cantidad generalmente alta de unidades de información para la codificación de refinamiento.
[0048] Las realizaciones proporcionan una solución al problema de pérdida de calidad para contenido altamente tonal que se basa en una modificación del espectro de potencia que se utiliza para estimar el consumo de bits del codificador por entropía. Esta modificación consta de un sumador de ruido de fondo adaptativo a la señal que mantiene el estimado para el contenido de audio común con un espectro residual plano prácticamente sin cambios mientras aumenta el estimado de presupuesto de bits para contenido altamente tonal. El efecto de esta modificación es del doble. Primeramente, provoca que el ruido del banco de filtros y los lóbulos laterales irrelevantes de componentes armónicos, que se superponen por el ruido de fondo, se cuantifiquen como cero. En segundo lugar, desplaza bits de la primera etapa de codificación a la etapa de codificación residual. Si bien tal desplazamiento no es deseable para la mayoría de las señales, es completamente eficiente para señales altamente tonales ya que los bits se utilizan para aumentar la precisión de cuantificación de componentes armónicos. Esto significa que se utilizan para codificar bits con baja importancia que generalmente siguen una distribución uniforme y por lo tanto se codifican completamente de manera eficiente con una representación binaria. Además, el procedimiento es computacionalmente económico haciendo que sea una herramienta muy efectiva para resolver el problema mencionado anteriormente.
[0049] A continuación se divulgan realizaciones preferidas de la presente invención con respecto a los dibujos de acompañamiento, en los cuales:
[0050] la figura 1 es una realización de un codificador de audio;
[0051] la figura 2 ilustra una implementación preferida del procesador de codificador de la figura 1;
[0052] la figura 3 ilustra una implementación preferida de una etapa de codificación de refinamiento;
[0053] la figura 4a ilustra una sintaxis de trama ejemplar para una primera o segunda trama con bits de refinamiento de iteración;
[0054] la figura 4b ilustra una implementación preferida de un reductor de elementos de datos de audio como un cuantificador variable;
[0055] la figura 5 ilustra una implementación preferida del codificador de audio con un preprocesador de espectro;
[0056] la figura 6 ilustra una realización preferida de un decodificador de audio con un pos-procesador de tiempo;
[0057] la figura 7 ilustra una implementación del procesador de codificador del decodificador de audio de la figura 6;
[0058] la figura 8 ilustra una implementación preferida de la etapa de decodificación de refinamiento de la figura 7;
[0059] la figura 9 ilustra una implementación de un modo indirecto para el cálculo de valor de control;
[0060] la figura 10 ilustra una implementación preferida del calculador de valor de manipulación de la figura 9;
[0061] la figura 11 ilustra un cálculo de valor de control de modo directo;
[0062] la figura 12 ilustra una implementación de la reducción de elemento de datos de audio separada; y
[0063] la figura 13 ilustra una implementación de la reducción de elemento de datos de audio integrada.
[0064] La figura 1 ilustra un codificador de audio para codificar datos de entrada de audio 11. El codificador de audio comprende un preprocesador 10, un procesador de codificador 15 y un controlador 20. El preprocesador 10 preprocesa los datos de entrada de audio 11 con el fin de obtener datos de audio por trama o datos de audio que se van a codificar ilustrados en el elemento 12. Los datos de audio que se van a codificar se introducen en el procesador de codificador 15 para codificar los datos de audio que se van a codificar, y el procesador de codificador da salida a los datos de audio codificados. El controlador 20 se conecta, con respecto a su entrada, a los datos de audio por trama del preprocesador pero, alternativamente, el controlador también se puede conectar para recibir los datos de entrada de audio sin preprocesamiento alguno. El controlador está configurado para reducir el número de elementos de datos de audio por trama dependiendo de la señal en la trama y, al mismo tiempo, el controlador aumenta un número de unidades de información o, preferiblemente, bits para el número de elementos de datos de audio dependiendo de la señal en la trama. El controlador está configurado para controlar el procesador de codificador 15 de modo que, dependiendo de la primera característica de señal de una primera trama de los datos de audio que se van a codificar, un número de elementos de datos de audio de los datos de audio que se van a codificar por medio del procesador de codificador para la primera trama se reduce en comparación con una segunda característica de señal de una segunda trama, y un número de unidades de información utilizadas para codificar el número reducido de elementos de datos de audio para la primera trama se mejora más en comparación con un segundo número de unidades de información para la segunda trama.
[0065] La figura 2 ilustra una implementación preferida del procesador de codificador. El procesador de codificador comprende una etapa de codificación inicial 151 y una etapa de codificación de refinamiento 152. En una implementación, la etapa de codificación inicial comprende un codificador por entropía tal como un codificador aritmético o de Huffman. En otra realización, la etapa de codificación de refinamiento 152 comprende un codificador de bits o un codificador residual que funciona en una granularidad de unidad de información o de bits. Además, la funcionalidad con respecto a la reducción del número de elementos de datos de audio se incorpora en la figura 2 por medio del reductor de elementos de datos de audio 150 que se puede implementar, por ejemplo, como un cuantificador variable en el modo de reducción integrada que se ilustra en la figura 13 o, alternativamente, como un elemento separado que opera en elementos de datos de audio ya cuantificados como se ilustra en el modo de reducción separado 902 y, en una realización no ilustrada adicional, el reductor de elementos de datos de audio también puede operar en elementos no cuantificados estableciendo en cero tales elementos no cuantificados o ponderando los elementos de datos que serán eliminados con un cierto número de ponderación de modo que los elementos de datos de audio se cuantifiquen en cero y, por lo tanto, se eliminen en un cuantificador conectado posteriormente. El reductor de elementos de datos de audio 150 de la figura 2 puede operar en elementos de datos no cuantificados o cuantificados en un procedimiento de reducción separado o se puede implementar por medio de un cuantificador variable controlado específicamente por un valor de control dependiente de la señal como se ilustra en el modo de reducción integrada de la figura 13.
[0067] El controlador 20 de la figura 1 está configurado para reducir el número de elementos de datos de audio codificados por la etapa de codificación inicial 151 para la primera trama, y la etapa de codificación inicial 151 está configurada para codificar el número reducido de elementos de datos de audio para la primera trama utilizando un número de unidades de información iniciales de primera trama, y los bits/unidades calculados del número de unidades de información iniciales se proporcionan por el bloque 151 como se ilustra en la figura 2, elemento 151.
[0069] Además, la etapa de codificación de refinamiento 152 está configurada para utilizar un número de unidades de información restantes de primera trama para una codificación de refinamiento para el número reducido de elementos de datos de audio para la primera trama, y el número de unidades de información iniciales de primera trama sumado al número de unidades de información restantes de primera trama da como resultado un número predeterminado de unidades de información para la primera trama. Particularmente, la etapa de codificación de refinamiento 152 da salida al número de bits restantes de primera trama y el número de bits restantes de segunda trama y existen al menos dos bits de refinamiento para al menos uno o preferiblemente al menos el 50 % o incluso más preferiblemente todos los elementos de datos de audio diferentes de cero, es decir, los elementos de datos de audio que sobreviven a la reducción de elementos de datos de audio y que se codifican inicialmente por la etapa de codificación inicial 151.
[0070] Preferiblemente, el número predeterminado de unidades de información para la primera trama es igual al número predeterminado de unidades de información para la segunda trama o muy cercano al número predeterminado de unidades de información para la segunda trama de modo que se obtiene una operación de tasa de bits constante o sustancialmente constante para el codificador de audio.
[0072] Como se ilustra en la figura 2, el reductor de elementos de datos de audio 150 reduce elementos de datos de audio más allá del número accionado psicoacústicamente en una forma dependiente de la señal. Por lo tanto, para una característica de señal, el número se reduce sólo ligeramente por encima del número accionado psicoacústicamente y en una trama con una segunda característica de señal, por ejemplo, el número se reduce más allá de un número accionado psicoacústicamente. Y, preferiblemente, el reductor de elementos de datos de audio elimina elementos de datos con las amplitudes/potencias/energías más pequeñas, y esta operación se lleva a cabo preferiblemente por medio de una selección indirecta obtenida en el modo integrado, donde la reducción de elementos de datos de audio se lleva a cabo cuantificando a cero determinados elementos de datos de audio. En una realización, la etapa de codificación inicial solamente codifica elementos de datos de audio que no han sido cuantificados a cero y la etapa de codificación de refinamiento 152 solamente refina elementos de datos de audio ya procesados por la etapa de codificación inicial, es decir, los elementos de datos de audio que no han sido cuantificados a cero por el reductor de elementos de datos de audio 150 de la figura 2.
[0074] En una realización preferida, la etapa de codificación de refinamiento está configurada para asignar iterativamente el número de unidades de información restantes de primera trama al número reducido de elementos de datos de audio de la primera trama en al menos dos iteraciones realizadas secuencialmente. Particularmente, se calculan los valores de las unidades de información asignadas para dichas al menos dos iteraciones realizadas secuencialmente y los valores calculados de la unidad de información para dichas al menos dos iteraciones realizadas secuencialmente se introducen en la trama de salida codificada en un orden predeterminado. Particularmente, la etapa de codificación de refinamiento está configurada para asignar secuencialmente una unidad de información para cada elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama en un orden desde una información de baja frecuencia para el elemento de datos de audio a una información de alta frecuencia para el elemento de datos de audio en la primera iteración. Particularmente, los elementos de datos de audio pueden ser valores espectrales individuales obtenidos por una conversión de tiempo/espectral. Alternativamente, los elementos de datos de audio pueden ser tuplas de dos o más líneas espectrales que generalmente son adyacentes entre sí en el espectro. El cálculo de los valores de bits se lleva a cabo desde un cierto valor de inicio con una información de frecuencia baja hasta un cierto valor final con la información de frecuencia más alta y, en una iteración adicional, se lleva a cabo el mismo procedimiento, es decir, nuevamente el procesamiento desde valores/tuplas de información espectral baja hasta valores/tuplas de información espectral alta. Particularmente, la etapa de codificación de refinamiento 152 está configurada para verificar, si un número de unidades de información ya asignadas es más bajo que un número de unidades de información predeterminado para la primera trama menor que el número de unidades de información iniciales de primera trama y la etapa de codificación de refinamiento también está configurada para detener la segunda iteración en caso de un resultado de verificación negativo, o en caso de un resultado de verificación positivo, para llevar a cabo un número de iteraciones adicionales, hasta obtener un resultado de verificación negativo, donde el número de iteraciones adicionales es 1,2 ... Preferiblemente, el número máximo de iteraciones está limitado por un número de dos dígitos tal como un valor entre 10 y 30 y preferiblemente 20 iteraciones. En una realización alternativa, se puede omitir una verificación para un número máximo de iteraciones, si las líneas espectrales diferentes de cero se contaran primero y el número de bits residuales se ajustarán en consecuencia para cada iteración o para todo el procedimiento. Por lo tanto, cuando hay, por ejemplo, 20 tuplas espectrales sobrevivientes y 50 bits residuales, uno puede, sin verificación alguna durante el procedimiento en el codificador o decodificador, determinar que el número de iteraciones es tres y en la tercera iteración, se debe calcular un bit de refinamiento o está disponible en el flujo de bits para las primeras diez líneas/tuplas espectrales. Por lo tanto, esta alternativa no requiere una verificación durante el procesamiento de iteración, ya que la información sobre el número de elementos de audio diferentes de cero o sobrevivientes se conoce después del procesamiento de la etapa inicial en el codificador o el decodificador.
[0076] La figura 3 ilustra una implementación preferida del procedimiento iterativo realizado por la etapa de codificación de refinamiento 152 de la figura 2 que se hace posible debido al hecho de que, contrario a los otros procedimientos, el número de bits de refinamiento para una trama se ha aumentado significativamente para determinadas tramas debido a la reducción correspondiente de elementos de datos de audio para dichas determinadas tramas.
[0078] En la etapa 300, se determinan los elementos de datos de audio sobrevivientes. Esta determinación se puede llevar a cabo automáticamente operando en los elementos de datos de audio que ya han sido procesados por la etapa de codificación inicial 151 de la figura 2. En la etapa 302, el inicio del procedimiento se hace en un elemento de datos de audio predefinido tal como el elemento de datos de audio con la información espectral más baja. En la etapa 304, se calculan los valores de bits para cada elemento de datos de audio en una secuencia predefinida, donde esta secuencia predefinida es, por ejemplo, la secuencia desde los valores/tuplas espectrales bajos a los valores/tuplas espectrales altos. El cálculo en la etapa 304 se hace utilizando un desfase de inicio 305 y bajo el control 314 de que los bits de refinamiento todavía están disponibles. En el elemento 316, se da salida a las unidades de información de refinamiento de primera iteración, es decir, un patrón de bits que indica un bit por cada elemento de datos de audio sobreviviente donde el bit indica, si se debe sumar o se debe restar un desfase, es decir, el desfase de inicio 305 o, alternativamente, si se debe sumar o no se debe sumar el desfase de inicio.
[0080] En la etapa 306, el desfase se reduce con una regla predeterminada. Esta regla predeterminada puede ser, por ejemplo, que el desfase se divida a la mitad, es decir, que el nuevo desfase sea la mitad el desfase original. Sin embargo, también se pueden aplicar otras reglas de reducción de desfase que son distintas a la ponderación de 0,5.
[0081] En la etapa 308, se calculan nuevamente los valores de bits para cada elemento en la secuencia predefinida, pero ahora en la segunda iteración. Como una entrada en la segunda iteración, se introducen los elementos refinados después de la primera iteración ilustrada en 307. Por lo tanto, para el cálculo en la etapa 314, el refinamiento representado por las unidades de información de refinamiento de primera iteración ya está aplicado y bajo el prerrequisito de que los bits de refinamiento todavía están disponibles como se indica en la etapa 314, las unidades de información de refinamiento de segunda iteración se calculan y se proporcionan en 318.
[0083] En la etapa 310, se reduce nuevamente el desfase con una regla predeterminada para que esté listo para la tercera iteración y la tercera iteración se basa nuevamente en los elementos refinados después de la segunda iteración ilustrada en 309 y nuevamente bajo el prerrequisito de que los bits de refinamiento todavía están disponibles como se indica en 314, las unidades de información de refinamiento de tercera iteración se calculan y se proporcionan en 320.
[0084] La figura 4a ilustra una sintaxis de trama ejemplar con las unidades o bits de información para la primera trama o la segunda trama. Una porción de los datos de bits para la trama está compuesta por el número de bits iniciales, es decir, el elemento 400. Adicionalmente, los bits de refinamiento de primera iteración 316, los bits de refinamiento de segunda iteración 318 y los bits de refinamiento de tercera iteración 320 también se incluyen en la trama. Particularmente, de acuerdo con la sintaxis de trama, el decodificador está en la posición para identificar cuáles bits de la trama son el número de bits iniciales, cuáles bits son los bits de refinamiento de primera, segunda o tercera iteración 316, 318, 320 y cuáles bits en la trama son otros bits 402 tales como información complementaria que también puede incluir, por ejemplo, una representación codificada de una ganancia global (gg) por ejemplo que se puede calcular, por ejemplo, por medio del controlador 200 directamente o que se puede influenciar, por ejemplo, por el controlador por medio de una información de salida de controlador 21. Dentro de la sección 316, 318, 320, se da una determinada secuencia de unidades de información individual. Esta secuencia es preferiblemente tal que los bits en la secuencia de bits se aplican a los elementos de datos de audio decodificados inicialmente que se van a decodificar. Ya que no es útil, con respecto a los requisitos de tasa de bits, señalar explícitamente cualquier cosa con respecto a los bits de refinamiento de primera, segunda y tercera iteración, el orden de los bits individuales en los bloques 316, 318, 320 debe ser el mismo que el orden correspondiente de los elementos de datos de audio sobrevivientes. En vista de eso, se prefiere utilizar el mismo procedimiento de iteración en el lado del codificador que se ilustra en la figura 3 y en el lado del decodificador que se ilustra en la figura 8. No es necesario señalar ninguna designación de bit o asociación de bit específica al menos en los bloques 316 a 320.
[0086] Además, los números del número de bits iniciales por un lado y el número de bits restantes por el otro son solamente a modo de ejemplo. Generalmente, el número de bits iniciales que codifican generalmente la porción de bits más significativa del elemento de datos de audio tal como los valores o espectrales o tuplas de valores espectrales es mayor que los bits de refinamiento de iteración que representan la porción menos significativa de los elementos de datos de audio “sobrevivientes”. Además, el número de bits iniciales 400 se determina generalmente por medio de un codificador de entropía o codificador aritmético, pero los bits de refinamiento de iteración se determinan utilizando un codificador residual o de bits que opera en una granularidad de unidad de información. Aunque la etapa de codificación de refinamiento no lleva a cabo ninguna codificación entrópica o similar, la codificación de la porción de bits menos significativa de los elementos de datos de audio se hace, no obstante, de manera más eficiente por medio de la etapa de codificación de refinamiento, ya que uno puede suponer que la porción de bits menos significativa de los elementos de datos de audio tal como los valores espectrales se distribuyen de manera igual y, por lo tanto, cualquier codificación entrópica con un código de longitud variable o un código aritmético junto con un determinado contexto no introduce ninguna ventaja adicional, sino que por el contrario introduce incluso sobrecarga adicional.
[0088] En otras palabras, para la porción de bits menos significativa de los elementos de datos de audio, el uso de un codificador aritmético sería menos eficiente que el uso de un codificador de bits, ya que el codificador de bits no requiere ninguna tasa de bits para un determinado contexto. La reducción intencional de elementos de datos de audio como se induce por medio del controlador no solamente mejora la precisión de las líneas espectrales dominantes o tuplas de línea, sino que adicionalmente, proporciona una operación de codificación altamente eficiente para el propósito de refinar las porciones de MSB de estos elementos de datos de audio representados por el código aritmético o de longitud variable.
[0090] En vista de eso, se obtienen varias y, por ejemplo, las siguientes ventajas por medio de la implementación del procesador de codificador 15 de la figura 1 como se ilustra en la figura 2 con la etapa de codificación inicial 151 por un lado y la etapa de codificación de refinamiento 152 por el otro.
[0092] Se propone un esquema de codificación eficiente de dos etapas, que comprende una primera etapa de codificación entrópica y una segunda etapa de codificación residual basada en codificación de un solo bit (no entrópica).
[0094] El esquema emplea un estimador de ganancia global de baja complejidad que incorpora un estimador de consumo de bits basado en energía para la primera etapa de codificación que presenta un sumador de ruido de fondo adaptativo a la señal.
[0096] El sumador de ruido de fondo transfiere de manera efectiva bits de la primera etapa de codificación a la segunda etapa de codificación para señales altamente tonales mientras que deja el estimado para otros tipos de señal sin cambios. Este desplazamiento de bits desde una etapa de codificación entrópica a una etapa de codificación no entrópica es completamente eficiente para señales altamente tonales.
[0098] La figura 4b ilustra una implementación preferida del cuantificador variable que se puede implementar, por ejemplo, para llevar a cabo la reducción de elementos de datos de audio de una forma controlada preferiblemente en el modo de reducción integrada que se ilustra con respecto a la figura 13. Para este fin, el cuantificador variable comprende un ponderador 155 que recibe los datos de audio (no manipulados) que se van a codificar que se ilustran en la línea 12. Estos datos también se introducen en el controlador 20, y el controlador está configurado para calcular una ganancia global 21, pero con base en los datos no manipulados como entrada en el ponderador 155, y utilizando una manipulación dependiente de la señal. La ganancia global 21 se aplica en el ponderador 155, y la salida del ponderador se introduce en un núcleo de cuantificador 157 que se basa en un tamaño de paso de cuantificación fijo. El cuantificador variable 150 se implementa como un ponderador controlado donde el control se hace utilizando la ganancia global (gg) 21 y el núcleo de cuantificador 157 de tamaño de paso de cuantificación fijo conectado posteriormente. Sin embargo, también se podrían llevar a cabo otras implementaciones tales como un núcleo de cuantificador que tiene un tamaño de paso de cuantificación variable que es controlado por medio de un valor de salida del controlador 20.
[0099] La figura 5 ilustra una implementación preferida del codificador de audio y, particularmente, una determinada implementación del procesador 10 de la figura 1. Preferiblemente, el procesador comprende un generador de ventanas 13 que genera, a partir de los datos de entrada de audio 11, una trama de datos de audio en el dominio del tiempo en ventana utilizando una cierta ventana de análisis que puede ser, por ejemplo, una ventana de coseno. La trama de datos de audio en el dominio del tiempo se introduce en un convertidor de espectro 14 que se puede implementar para llevar a cabo una transformada de coseno discreta modificada (MDCT, Modified Discrete Cosine Transform) o cualquier otra transformada tal como FFT o MDST o cualquier otra conversión de espectro en el tiempo. Preferiblemente, el generador de ventanas opera con un determinado control de avance de modo que se hace una generación de trama de superposición. En caso de una superposición del 50 %, el valor de avance del generador de ventanas es de la mitad del tamaño de la ventana de análisis aplicada por el generador de ventanas 13. Una trama (no cuantificada) de valores espectrales proporcionados por el convertidor de espectro se introduce en un procesador espectral 15 que se implementa para llevar a cabo algún tipo de procesamiento espectral tal como realizando una operación de conformación de ruido temporal, una operación de conformación de ruido espectral, o cualquier otra operación tal como una operación de blanqueamiento espectral, por medio de la cual los valores espectrales modificados generados por el procesador espectral tienen una envolvente espectral que es más plana que una envolvente espectral de los valores espectrales antes del procesamiento por medio del procesador espectral 15. Los datos de audio que se van a codificar (por trama) se reenvían a través de la línea 12 al procesador de codificador 15 y al controlador 20, donde el controlador 20 proporciona la información de control a través de la línea 21 al procesador de codificador 15. El procesador de codificador proporcionar sus datos a escritor 30 que se implementa, por ejemplo, como un multiplexor de flujo de bits, y las tramas codificadas se proporcionan en la línea 35.
[0101] Con respecto a un procesamiento del lado del decodificador, se hace referencia a la figura 6. El flujo de bits proporcionado por el bloque 30 se puede introducir, por ejemplo, directamente al lector de flujo de bits 40 después de algún tipo de almacenamiento o transmisión. Naturalmente, se puede llevar a cabo cualquier otro procesamiento entre el codificador y el decodificador tal como un procesamiento de transmisión de acuerdo con un protocolo de transmisión inalámbrica tal como un protocolo de DECT o el protocolo de Bluetooth o cualquier otro protocolo de transmisión inalámbrica. Los datos introducidos en el decodificador de audio mostrado en la figura 6 se introducen en un lector de flujo de bits 40. El lector de flujo de bits 40 lee los datos y reenviar los datos al procesador de codificador 50 que es controlado por medio de un controlador 60. Particularmente, el lector de flujo de bits recibe datos codificados, donde los datos de audio codificados comprenden, para una trama, un número de unidades de información iniciales de trama y un número de unidades de información restantes de trama. El procesador de codificador 50 procesa los datos de audio codificados, y el procesador de codificador 50 comprende una etapa de decodificación inicial y una etapa de decodificación de refinamiento como se ilustra en la figura 7 en el elemento 51 para la etapa de decodificación inicial y en el elemento 52 para la etapa de decodificación de refinamiento ambas de las cuales son controladas por medio del controlador 60. El controlador 60 está configurado para controlar la etapa de decodificación de refinamiento 52 para utilizar, cuando se refinan elementos de datos decodificados inicialmente como proporcionados por la etapa de decodificación inicial 51 de la figura 7, al menos dos unidades de información del número de unidades de información restantes para refinar uno y el mismo elemento de datos decodificados inicialmente. Adicionalmente, el controlador 60 está configurado para controlar el procesador de codificador de tal manera que la etapa de codificación inicial utilice el número de unidades de información iniciales de trama para obtener elementos de datos decodificados inicialmente en el bloque de conexión de línea 51 y 52 en la figura 7, donde, preferiblemente, el controlador 60 recibe una indicación del número de unidades de información iniciales de trama por un lado y el número de unidades de información restantes iniciales de trama del lector de flujo de bits 40 como se indica por la línea de entrada en el bloque 60 de la figura 6 o la figura 7. El pos-procesador 70 procesa los elementos de datos de audio refinados para obtener datos de audio decodificados 80 en la salida del pos-procesador 70.
[0103] En una implementación preferida para un decodificador de audio que corresponde al codificador de audio de la figura 5, el pos-procesador 70 comprende como una etapa de entrada, un procesador espectral 71 que lleva a cabo una operación de conformación de ruido temporal inversa, o una operación de conformación de ruido espectral inversa o una operación de blanqueamiento espectral inversa o cualquier otra operación que reduzca algún tipo de procesamiento aplicado por el procesador espectral 15 de la figura 5. La salida del procesador espectral se introduce en un convertidor de tiempo 72 que opera para llevar a cabo una conversión de un dominio espectral a un dominio del tiempo y preferiblemente, el convertidor de tiempo 72 coincide con el convertidor de espectro 14 de la figura 5. La salida del convertidor de tiempo 72 se introduce en una etapa de superposición-suma 73 que lleva a cabo una operación de superposición/suma para un número de tramas de superposición tales como al menos dos tramas de superposición con el fin de obtener los datos de audio decodificados 80. Preferiblemente, la etapa de superposiciónsuma 73 aplica una ventana de síntesis a la salida del convertidor de tiempo 72, donde esta ventana de síntesis coincide con la ventana de análisis aplicada por el generador de ventanas el análisis 13. Además, la operación de superposición llevada a cabo por el bloque 73 coincide con la operación de avance de bloque realizada por el generador de ventanas 13 de la figura 5.
[0105] Como se ilustra en la figura 4a, el número de unidades de información restantes de trama comprende valores calculados de unidades de información 316, 318, 320 para al menos dos iteraciones secuenciales en un orden predeterminado, donde, en la realización de la figura 4a, se ilustran incluso tres iteraciones. Además, el controlador 60 está configurado para controlar la etapa de decodificación de refinamiento 52 para utilizar, para una primera iteración, los valores calculados tales como el bloque 316 para la primera iteración de acuerdo con el orden predeterminado y para utilizar, para una segunda iteración, los valores calculados del bloque 318 para la segunda iteración en el orden predeterminado.
[0106] Posteriormente, una implementación preferida de la etapa de decodificación de refinamiento bajo el control del controlador 60 se ilustra con respecto a la figura 8. En la etapa 800, el controlador o la etapa de decodificación de refinamiento 52 de la figura 7 determina los elementos de datos de audio que se van a refinar. Estos elementos de datos de audio son generalmente todos los elementos de datos de audio que se proporcionan por medio del bloque 51 de la figura 7. Como se indica en la etapa 802, se realiza un inicio en un elemento de datos de audio predefinido tal como la información espectral más baja. Utilizando un desfase de inicio 805, las unidades de información de refinamiento de primera iteración recibidas del flujo de bits o del controlador 16, por ejemplo, los datos en el bloque 316 de la figura 4a se aplican 804 para cada elemento en una secuencia predefinida donde la secuencia predefinida se extiende desde un valor espectral/tupla espectral/información espectral bajo a uno alto. Los resultados son elementos de datos de audio refinados después de la primera iteración como se ilustra por medio de la línea 807. En la etapa 808, se aplican los valores de bits para cada elemento en la secuencia predefinida, donde los valores de bits vienen de las unidades de información de refinamiento de segunda iteración como se ilustra en 818, y estos bits se reciben del lector de flujo de bits o el controlador 60 dependiendo de la implementación específica. El resultado de la etapa 808 son los elementos refinados después de la segunda iteración. Nuevamente, en la etapa 810, el desfase se reduce en línea con la regla de reducción de desfase predeterminada que ya ha sido aplicada en el bloque 806. Con el desfase reducido, los valores de bits para cada elemento en la secuencia predefinida se aplican como se ilustra en 812 utilizando las unidades de información de refinamiento de tercera iteración recibidas, por ejemplo, del flujo de bits o del controlador 60. Las unidades de información de refinamiento de tercera iteración se describen en el flujo de bits en el elemento 320 de la figura 4a. El resultado del procedimiento en el bloque 812 son los elementos refinados después de la tercera iteración como se indica en 821.
[0108] Este procedimiento se continúa hasta que se procesen todos los bits de refinamiento de iteración incluidos en el flujo de bits para una trama. Esto se verifica por el controlador 60 por medio de la línea de control 814 que controla una disponibilidad de bits de refinamiento restantes preferiblemente para cada iteración pero al menos para la segunda y la tercera iteraciones procesadas en los bloques 808, 812. En cada iteración, el controlador 60 controla la etapa de decodificación de refinamiento para verificar, si un número de unidades de información ya leídas es menor que el número de unidades de información en las unidades de información restantes de trama para la trama para detener la segunda iteración en caso de un resultado de verificación negativo, o en caso de un resultado de verificación positivo, para llevar a cabo un número de iteraciones adicionales hasta que se obtenga un resultado de verificación negativo. El número de iteraciones adicionales es al menos uno. Debido a la aplicación de procedimientos similares en el lado del codificador que se comenta en el contexto de la figura 3 y en el lado del decodificador como se describe en la figura 8, cualquier señalización específica no es necesaria. Más bien, el procesamiento de refinamiento de múltiples iteraciones se lleva a cabo de una manera altamente eficiente sin ninguna sobrecarga específica. En una realización alternativa, se puede omitir una verificación para un número máximo de iteraciones, si las líneas espectrales diferentes de cero se contaran primero y el número de bits residuales se ajustarán en consecuencia para cada iteración.
[0110] En la implementación preferida, la etapa de decodificación de refinamiento 52 está configurada para sumar un desfase al elemento de datos de codificado inicialmente, cuando una unidad de datos de información leída del número de unidades de información restantes de trama tiene un primer valor y para restar un desfase del elemento decodificado inicialmente, cuando la unidad de datos de información leída del número de unidades de información restantes de trama tiene un segundo valor. Este desfase es, para la primera iteración, el desfase de inicio 805 de la figura 8. En la segunda iteración como se ilustra en 808 en la figura 8, un desfase reducido como generado por el bloque 806 se utiliza para una suma de un desfase reducido o segundo desfase a un resultado de la primera iteración, cuando una unidad de datos de información leída del número de unidades de información restantes de trama tiene un primer valor, y para una resta del segundo desfase del resultado de la primera iteración, cuando la unidad de datos de información leída del número de unidades de información restantes de trama tiene un segundo valor. Generalmente, el segundo desfase es menor que el primer desfase y se prefiere que el segundo desfase este entre 0,4 y 0,6 veces el primer desfase y más preferiblemente en 0,5 veces el primer desfase.
[0112] En una implementación preferida de la presente invención utilizando un modo indirecto que se ilustra en la figura 9, no es necesaria ninguna determinación de característica de señal explícita. Más bien, se calcula un valor de manipulación utilizando preferiblemente la realización ilustrada en la figura 9. Para el modo indirecto, el controlador 20 se implementa como se indica en la figura 9. Particularmente, el controlador comprende un preprocesador de control 22, un calculador de valor de manipulación 23, un combinador 24 y un calculador de ganancia global 25 que, al final, calcula una ganancia global para el reductor de elementos de datos de audio 150 de la figura 2 que se implementa como un cuantificador variable que se ilustra en la figura 4b. Particularmente, el controlador 20 está configurado para analizar los datos de audio de la primera trama para determinar un primer valor de control para el cuantificador variable para la primera trama y para analizar los datos de audio de la segunda trama para determinar un segundo valor de control para el cuantificador variable para la segunda trama, el segundo valor de control siendo diferente del primer valor de control. El análisis de los datos de audio de una trama se lleva a cabo por medio del calculador de valor de manipulación 23. El controlador 20 está configurado para llevar a cabo una manipulación de los datos de audio de la primera trama. En esta operación, el procesador de control 20 que se ilustra en la figura 9 no está ahí y, por lo tanto, la línea de derivación para el bloque 22 está activa.
[0113] Sin embargo, cuando la manipulación no se lleva a cabo en los datos de audio de la primera trama o la segunda trama, pero se aplica a valores relacionados con la amplitud derivados de los datos de audio de la primera trama o la segunda trama, el preprocesador de control 22 está ahí y la línea de derivación es inexistente. La manipulación real se lleva a cabo por medio del combinador 24 que combina el valor de manipulación producido desde el bloque 23 a los valores relacionados con la amplitud derivados de los datos de audio de una determinada trama. En la salida del combinador 24, existen datos manipulados (preferiblemente energía), y con base en estos datos manipulados, un calculador de ganancia global 25 calcula una ganancia global o al menos un valor de control para la ganancia global indicada en 404. El calculador de ganancia global 25 tiene que aplicar restricciones con respecto a un presupuesto de bits permitido para el espectro de tal manera que se obtenga una cierta tasa de datos o un cierto número de unidades de información permitidas.
[0115] En el modo directo que se ilustra en la figura 11, el controlador 20 comprende un analizador 201 para la determinación de característica de señal por trama y el analizador 208 da salida, por ejemplo, a información de característica de señal cuantitativa tal como información de tonalidad y controla un calculador de valor de control 202 utilizando estos datos cuantitativos preferiblemente. Un procedimiento para calcular la tonalidad de una trama es calcular la medida de planitud espectral (SFM, Spectral Flatness Measure) de una trama. Se puede llevar a cabo cualquier otro procedimiento de determinación de tonalidad o cualquier otro procedimiento de determinación de característica de señal por medio del bloque 201 y se debe llevar a cabo una traducción de un determinado valor característico de señal a un cierto valor de control con el fin de obtener una reducción pretendida del número de elementos de datos de audio para una trama. La salida del calculador de valor de control 202 para el modo directo de la figura 11 puede ser un valor de control para el procesador de codificador tal como para el cuantificador variable o, alternativamente, para la etapa de codificación inicial. Cuando se da un valor de control al cuantificador variable, se lleva a cabo el modo de reducción integrada mientras que, cuando se da el valor de control a la etapa de codificación inicial, se lleva a cabo una reducción separada. Otra implementación de la reducción separada sería remover o influir elementos de datos de audio no cuantificados seleccionados específicamente presentes antes de la cuantificación real de modo que, por medio de un cierto cuantificador, tales elementos de datos de audio influenciados se cuantifiquen en cero y, por lo tanto, se eliminen para el propósito de codificación entrópica y codificación de refinamiento posterior.
[0117] Aunque el modo indirecto de la figura 9 se ha mostrado junto con la reducción integrada, es decir, que el calculador de ganancia global 25 está configurado para calcular la ganancia global variable, los datos manipulados producidos por el combinador 24 también se pueden utilizar para controlar directamente la etapa de codificación inicial para remover cualquier elemento de datos de audio cuantificado determinado de tal manera que los elementos de datos cuantificados más pequeños o, alternativamente, el valor de control también se puedan enviar a una etapa de influencia de datos de audio no ilustrada que influencia los datos de audio antes de la cuantificación real utilizando un valor de control de cuantificación variable que se ha determinado sin manipulación de datos y, por lo tanto, obedece generalmente reglas psicoacústicas que, sin embargo, se violan intencionalmente por los procedimientos de la presente invención.
[0119] Como se ilustra en la figura 11 para el modo directo, el controlador está configurado para determinar la primera característica de tonalidad como la primera característica de señal y para determinar una segunda característica de tonalidad como la segunda característica de señal de tal forma que se aumente un presupuesto de bits para la etapa de codificación de refinamiento en caso de una primera característica de tonalidad comparada con el presupuesto de bits para la etapa de codificación de refinamiento en caso de una segunda característica de tonalidad, en donde la primera característica de tonalidad indica una mayor tonalidad que la segunda característica de tonalidad.
[0121] La presente invención no resulta en una cuantificación más aproximada que lo que se obtiene generalmente aplicando una mayor ganancia global. Más bien, este cálculo de la ganancia global basada en datos manipulados dependientes de la señal sólo resulta en un desplazamiento de presupuesto de bits desde la etapa de codificación inicial que recibe un presupuesto de bits más pequeño a la etapa de decodificación de refinamiento que recibe un presupuesto de bits más alto, pero este desplazamiento de presupuesto de bits se hace de una forma dependiente de la señal y es mayor para una porción de señal de tonalidad más alta.
[0123] Preferiblemente, el procesador de control 22 de la figura 9 calcula valores relacionados con la amplitud como una pluralidad de valores de potencia derivados de uno o más valores de audio de los datos de audio. Particularmente, son estos valores de potencia los que se manipulan utilizando una suma de un valor de manipulación idéntico por medio del combinador 24, y este valor de manipulación idéntico que se ha determinado por medio del calculador de valor de manipulación 23 se combina con todos los valores de potencia de la pluralidad de valores de potencia para una trama.
[0125] Alternativamente, como se indica por medio de la línea de derivación, los valores obtenidos por la misma magnitud del valor de manipulación calculado por medio del bloque 23, pero preferiblemente con signos aleatorizados, y/o los valores obtenidos por medio de una resta de términos ligeramente diferentes de la misma magnitud (pero preferiblemente con signos aleatorizados) o valor de manipulación compleja o, más generalmente, los valores obtenidos como muestras de una cierta distribución de probabilidad normalizada escalada utilizando la magnitud compleja o real calculada del valor de manipulación se suman a todos los valores de audio de una pluralidad de valores de audio incluidos en la trama. El procedimiento realizado por medio del procesador de control 22 tal como el cálculo de un espectro de potencia y reducción de resolución se puede incluir dentro del calculador de ganancia global 25. Por lo tanto, preferiblemente, se suma un ruido de fondo ya sea a los valores de audio espectrales directamente o alternativamente a los valores relacionados con la amplitud derivados a partir de los datos de audio por trama, es decir, la salida del preprocesador de control 22. Preferiblemente, el procesador del controlador calcula un espectro de potencia de resolución reducida que corresponde al uso de una exponenciación con un valor de exponente que es igual a 2. Alternativamente, sin embargo, se puede utilizar un valor de exponente diferente mayor que 1. De manera ejemplar, un valor de exponente que es igual a 3 representaría una sonoridad más que una potencia. Pero, se pueden utilizar también otros valores de exponente tales como valores de exponente más pequeño o más grande.
[0127] En la implementación preferida que se ilustra en la figura 10, el calculador de valor de manipulación 23 comprende un buscador 26 para buscar un valor espectral máximo en una trama y al menos uno del cálculo de una contribución independiente de la señal indicada por el elemento 27 de la figura 10 o un calculador para calcular uno o más momentos por trama como se ilustra por el bloque 28 de la figura 10. Básicamente, cualquiera del bloque 26 o el bloque 28 está ahí con el fin de proporcionar una influencia dependiente de la señal en el valor de manipulación para la trama. Particularmente, el buscador 26 está configurado para buscar un valor máximo de la pluralidad de elementos de datos de audio o de los valores relacionados con la amplitud o para buscar un valor máximo de una pluralidad de datos de audio de resolución reducida o una pluralidad de valores relacionados con la amplitud de resolución reducida para la trama correspondiente. El cálculo real se hace por medio del bloque 29 utilizando la salida de los bloques 26, 27 y 28, donde los bloques 26, 28 representan en realidad un análisis de señal.
[0129] Preferiblemente, la contribución independiente de la señal se determina por medio de una tasa de bits para una sesión de codificador real, una duración de trama o una frecuencia de muestreo para una sesión de codificador real. Además, el calculador 28 para calcular uno o más momentos por trama está configurado para calcular un valor de ponderación dependiente de la señal derivado de al menos una primera suma de magnitudes de los datos de audio o datos de audio de resolución reducida dentro de la trama, la segunda suma de magnitudes de los datos de audio o los datos de audio de resolución reducida dentro de la trama multiplicados por un índice asociado con cada magnitud y el cociente de la segunda suma y la primera suma.
[0131] En una implementación preferida llevada a cabo por el calculador de ganancia global 25 de la figura 9, se calcula un estimado de bits requerido para cada valor de energía dependiendo del valor de energía y el valor candidato para el valor de control real. Los estimados de bits requeridos para los valores de energía y el valor candidato para el valor de control se acumulan y se verifica, si un estimado de bits acumulado para el valor candidato para el valor de control cumple con un criterio de consumo de bits permitido como se ilustra, por ejemplo, en la figura 9 como el presupuesto de bits para el espectro introducido en el calculador de ganancia global 25. En caso de que no se cumpla el criterio de consumo de bits permitido, se modifica el valor candidato para el valor de control y se repite el cálculo del estimado de bits requerido, la acumulación de la tasa de bits requerida y la verificación del cumplimiento del criterio de consumo de bits permitido para un valor candidato modificado para el valor de control. Tan pronto como se encuentre tal valor de control óptimo, este valor se proporcionan en la línea 404 de la figura 9.
[0133] A continuación, se ilustran realizaciones preferidas.
[0135] Descripción detallada del codificador (por ejemplo, figura 5)
[0137] Notación
[0139] Denotamos porfsla frecuencia de muestreo subyacente en Hz, porNmsla duración de trama subyacente en milisegundos y porbrla tasa de bits subyacente en bits por segundo.
[0141] Derivación de espectro residual (por ejemplo, preprocesador 10)
[0143] La realización opera en un espectro residual realXf(k),k = 0..N- 1, que normalmente se deriva de una transformación de tiempo a frecuencia como una MDCT seguida de
[0145] modificaciones motivadas como la conformación de ruido temporal (TNS) para eliminar la estructura temporal y la conformación de ruido espectral (SNS) para eliminar la estructura espectral. Para contenido de audio con envolvente espectral que varía lentamente, la envolvente del espectro residualXf(k)es por lo tanto plana.
[0147] Estimación de ganancia global (por ejemplo, Figura 9)
[0149] La cuantificación del espectro se controla mediante una ganancia global
por medio de
[0150]
[0152] El estimado de ganancia global inicial (elemento 22 de la Figura 9) derivado del espectro de potencia X(k)2 después de la reducción de resolución por un factor de 4,
[0154] PXlp( k ) = X f ( A ! i ) 2 Xf (A kl ) 2Xf (4 k 2 ) 2+Xf ( 4 k3)2
[0155] y un ruido de fondo adaptativo a la señalN(Xf)que está dado por
[0157] N(Xf ) = max|A>(fc)| * 2~rê Bits- lowBits.
[0158] k (por ejemplo, el elemento 23 de la Figura 9)
[0159] El parámetroregBitsdepende de la tasa de bits, la duración de la trama y la frecuencia de muestreo y se calcula como regBits= [ - ^ ]+C (N ms,f s)
[0160] (por ejemplo, el elemento 27 de la Figura 10)
[0161] conC(Nms,fs)como se especifica en la tabla siguiente.
[0163]
[0165] El parámetrolowBitsdepende del centro de masa de los valores absolutos del espectro residual y se calcula como
[0167] towBits= (2Nms -min (^ ,2 /V ,„s) ),
[0168] (por ejemplo el elemento 28, figura 10) donde
[0170] y
[0172] son momentos del espectro absoluto.
[0173] La ganancia global se estima en la forma
[0175] 39ind 39off
[0176] 9glob= 10 28
[0178] de los valores
[0179] E ( k )= lO lo g io ÍP A U /c )N(Xf )2 " 31).
[0180] vp \ i s s(por ejemplo, salida del combinador 24 de la figura 9) dondeggofres un desfase dependiente de la tasa de bits y la frecuencia de muestreo.
[0181] Se debe observar que sumar el término de ruido de fondo N(xf) aPXip(k)da el resultado esperado de sumar un ruido de fondo correspondiente al espectro residualXf(k),por ejemplo, sumar o restar aleatoriamente el término 0.5VN(Xf) a cada línea espectral, antes de calcular el espectro de potencia.
[0183] Los estimados basados en espectro de potencia puro ya pueden encontrarse, por ejemplo, en el códec de 3GPP EVS (3GPP TS 26.445, sección 5.3.3.2.8.1). En ejemplos, se hace la suma del ruido de fondo N(xf). El ruido de fondo es adaptativo a la señal de dos formas.
[0185] En primer lugar, se escala con la amplitud máxima deXf.Por lo tanto, el impacto en la energía de un espectro plano, donde todas las amplitudes son cercanas a la amplitud máxima, es muy pequeño. Pero para señales altamente tonales, donde el espectro, y en extensión también las características de espectro residuales, presenta un número de fuertes picos, la energía total se aumenta significativamente, lo cual aumenta el estimado de bits en el cálculo de ganancia global como se describe más adelante.
[0187] En segundo lugar, el ruido de fondo se disminuye mediante el parámetrolowBitssi el espectro exhibe un centro de masa bajo. En este caso, un contenido de frecuencias bajas es dominante, por lo cual la pérdida de componentes de frecuencia alta es probablemente no tan crítica como para contenido tonal de tono alto.
[0189] El estimado real de la ganancia global se lleva a cabo (por ejemplo, bloque 25 de la figura 9) por medio de una búsqueda de bisección de baja complejidad como se describe en el código C más adelante, dondenbitsSpecdenota el presupuesto de bits para codificar el espectro. El estimado de consumo de bits (acumulado en la variable tmp) se basa en los valores de energíaE(k)tomando en cuenta una dependencia de contexto en el codificador aritmético utilizado para la codificación de etapa 1.
[0191] fac = 256;
[0192] ddind— 255,
[0193] para (iter = 0; ¡ter < 8; ¡ter++)
[0194] {
[0195] fa c > > = 1 ;
[0196] SSm
[0197] tmp
[0198] ¡sze
[0199] para (
[0200] {
[0201] si (E[i]*28/2Ü < (g9ind+ggoff))
[0202] {
[0203] Sl {iszero == 0)
[0204] {
[0205] tmp = 2.7*28/20;
[0206] }
[0207] }
[0208] si no
[0209] {
[0210] Sl (Í99in^99off) < E|i]*28/20 - 43*28/20)
[0211] {
[0212] tmp « 2*E[i]*28/20 - 2'(9gind+ggoff) - 36*28/20;
[0213] }
[0214] si no
[0215] {
[0216] tmp = E[i]*28/20 - (ggind+ggoff) + 7*28/20;
[0217] }
[0218] iszero = 0;
[0219] }
[0220] \
[0221] si (tmp >nbits^gc*1.4*28/20 && iszero -— 0)
[0222] {
[0223] 99ind+ = fe c ;
[0224] }
[0225] }
[0226] Codificación residual (por ejemplo, figura 3)
[0228] La codificación residual utiliza los bits en exceso que están disponibles después de la codificación aritmética del espectro cuantificadoXq(k)..Dejar queBdenote el número de bits en exceso y dejar queKdenote el número de coeficientes diferentes de cero codificadosXq(k).Además, dejar queki,i = 1..K,denote la enumeración de estos coeficientes diferentes de cero desde la frecuencia más baja a la más alta. Los bits residualesbi(j)(que toman valores 0 y 1) para el coeficientekise calculan para minimizar el error
[0230]
[0231] Si (1) es verdadero, entonces el n-ésimo bit residualbi(n)para el coeficientekise establece en 0 y de otra forma se establece en 1. El cálculo de bits residuales se lleva a cabo calculando un primer bit residual por cadakiy después un segundo bit y así sucesivamente hasta gastar todos los bits residuales o hasta llevar a cabo un número máximonmaxde iteraciones. Esto deja
[0234]
[0237] bits residuales para el coeficienteXq (ki).Este esquema de codificación residual mejora el esquema de codificación residual que se aplica en el códec de 3GPP EVS que gasta como mucho un bit por coeficiente diferente de cero.
[0238] El cálculo de bits residuales connmax= 20 se ilustra por medio del siguiente pseudocódigo, donde gg denota la ganancia global:
[0240] ¡ter = 0¡
[0241] ribfts_residual = 0,
[0242] offset = 025;
[0243] mientras (nbits_residual < nbitsresidual_max && ¡ter < 20)
[0244] {
[0245] k = ü;
[0247] mientras (k <Ne&& nbitsjresiduai < nbits_residual_max)
[0248] {
[0249] SI(Xu[k]!= 0)
[0250] í
[0251] si (Ay[k] >= Aq[k]*gg)
[0252] í
[0253] res_bits[nbits_resídua[] = 1;
[0254] Xf[k]-= offset * gg;
[0256] }
[0257] si no
[0258] í
[0259] res_bits[nbits_residua(] = 0;
[0260] Jf/[k] = offset* gg;
[0261] }
[0262] nb¡ts_residual++;
[0263] >
[0264] k++;
[0265] }
[0266] ¡ter++;
[0267] offset 2;
[0268] }
[0270] Descripción del codificador (por ejemplo, figura 6)
[0273] V
[0274] En el decodificador, el espectro codificado por entropía 9 se obtiene mediante decodificación por entropía. Los bits residuales se utilizan para refinar este espectro como lo demuestra el siguiente pseudocódigo (véase también, por ejemplo, la figura 8).
[0275] iter = n = 0;
[0276] offeet = 0.25;
[0277] mientras (iter < 20 && n < nResBits)
[0278] [
[0279] k = 0;
[0280] mientras (k < JVE && n < nResBits)
[0282] El espectro residual decodificado se da por
[0285]
[0287] Conclusiones:
[0289] • Se propone un esquema de codificación eficiente de dos etapas, que comprende una primera etapa de codificación entrópica y una segunda etapa de codificación residual basada en codificación de un solo bit (no entrópica).
[0291] • El esquema emplea un estimador de ganancia global de baja complejidad que incorpora un estimador de consumo de bits basado en energía para la primera etapa de codificación que presenta un sumador de ruido de fondo adaptativo a la señal.
[0293] • El sumador de ruido de fondo transfiere de manera efectiva bits de la primera etapa de codificación a la segunda etapa de codificación para señales altamente tonales mientras que deja el estimado para otros tipos de señal sin cambios. Se argumenta que este desplazamiento de bits desde una etapa de codificación entrópica a una etapa de codificación no entrópica es completamente eficiente para señales altamente tonales.
[0295] La figura 12 ilustra un procedimiento para reducir el número de elementos de datos de audio de una manera dependiente de la señal usando una reducción separada. En la etapa 901, se realiza una cuantificación usando una información no manipulada tal como ganancia global tal como se calcula a partir de los datos de señal sin ninguna manipulación. Para ello, se requiere el presupuesto de bits (total) para los elementos de datos de audio y, en la salida del bloque 901, se obtienen elementos de datos cuantificados. En el bloque 902, el número de elementos de datos de audio se reduce eliminando una cantidad (controlada) de preferentemente los elementos de datos de audio más pequeños basándose en un valor de control dependiente de señal. En la salida del bloque 902, se ha obtenido un número reducido de elementos de datos y, en el bloque 903 se aplica la etapa de codificación inicial y con el presupuesto de bits para los bits residuales que permanecen debido a la reducción controlada, se aplica una etapa de codificación de refinamiento como se ilustra en 904.
[0297] Alternativamente al procedimiento en la figura 12, el bloque de reducción 902 también puede realizarse antes de la cuantificación real usando un valor de ganancia global o, generalmente, un cierto tamaño de paso de cuantificador que se ha determinado usando datos de audio no manipulados. Por lo tanto, esta reducción de elementos de datos de audio también se puede realizar en el dominio no cuantificado estableciendo a cero determinados valores preferentemente pequeños o ponderando determinados valores con factores de ponderación que, al final, dan como resultado valores cuantificados a cero. En la implementación de reducción separada, se realiza una etapa de cuantificación explícita por un lado y una etapa de reducción explícita por otro lado donde el control para la cuantificación específica se realiza sin ninguna manipulación de datos.
[0299] Por el contrario, la figura 13 ilustra el modo de reducción integrado de acuerdo con una realización de la presente invención. En el bloque 911, la información manipulada se determina por el controlador 20 tal como, por ejemplo, la ganancia global ilustrada en la salida del bloque 25 de la figura 9. En el bloque 912, se realiza una cuantificación de los datos de audio no manipulados usando la ganancia global manipulada o, generalmente, la información manipulada calculada en el bloque 911. En la salida del procedimiento de cuantificación del bloque 912 se obtiene un número reducido de elementos de datos de audio que se codifican inicialmente en el bloque 903 y se codifican de refinamiento en el bloque 904. Debido a la reducción dependiente de la señal de los elementos de datos de audio, quedan bits residuales para al menos una única iteración completa y para al menos una parte de una segunda iteración y preferiblemente para incluso más de dos iteraciones. Se realiza un desplazamiento del presupuesto de bits desde la etapa de codificación inicial hasta la etapa de codificación de refinamiento según la presente invención y de una manera dependiente de la señal.
[0301] La presente invención se puede implementar al menos en cuatro modos diferentes. La determinación del valor de control puede realizarse en el modo directo con una determinación de característica de señal explícita o en un modo indirecto sin una determinación de característica de señal explícita pero con la adición de un suelo de ruido dependiente de señal a los datos de audio o a datos de audio derivados como un ejemplo para una manipulación. Al mismo tiempo, la reducción de elementos de datos de audio se realiza de manera integrada o de manera separada. También se puede realizar una determinación indirecta y una reducción integrada o una generación indirecta del valor de control y una reducción separada. Además, también se puede realizar una determinación directa junto con una reducción integrada y una determinación directa del valor de control junto con una reducción separada. Con el fin de una baja eficiencia, se prefiere una determinación indirecta del valor de control junto con una reducción integrada de los elementos de datos de audio.
[0303] Se mencionará aquí que todas las alternativas o aspectos como se analizó anteriormente y todos los aspectos como se definen por reivindicaciones independientes en las siguientes reivindicaciones se pueden usar individualmente, es decir, sin ninguna otra alternativa u objeto que la alternativa, objeto o reivindicación independiente contemplada. Sin embargo, en otras realizaciones, se pueden combinar dos o más de las alternativas o los aspectos o las reivindicaciones independientes entre sí y, en otras realizaciones, se pueden combinar todos los aspectos o alternativas y todas las reivindicaciones independientes entre sí.
[0305] Una señal de audio codificada puede almacenarse en un medio de almacenamiento digital o en un medio de almacenamiento no transitorio, o puede transmitirse en un medio de transmisión, como un medio de transmisión inalámbrico o un medio de transmisión por cable, como Internet.
[0307] Si bien se han descrito algunos aspectos en el contexto de un aparato, es obvio que estos aspectos también representan una descripción del método correspondiente, en donde un bloque o dispositivo corresponde a una etapa del método o a una característica de una etapa del método. De manera análoga, los aspectos descritos en el contexto de una etapa del método también representan una descripción de un bloque o elemento correspondiente o de una característica de un aparato correspondiente.
[0309] Dependiendo de determinados requisitos de implementación, las realizaciones de la invención se pueden implementar en hardware o en software. La implementación se puede realizar utilizando un medio de almacenamiento digital, por ejemplo, un disquete, un DVD, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria FLa Sh , que tenga señales de control electrónicamente legibles almacenadas en el mismo, que cooperan (o sean capaces de cooperar) con un sistema informático programable de manera que se realiza el método respectivo.
[0311] Algunas realizaciones de acuerdo con la invención comprenden un transportador no transitorio de datos que comprende señales de control legibles electrónicamente, con capacidad para cooperar con un sistema informático programable de tal manera que se ejecute uno de los métodos descritos en el presente documento.
[0313] En general, las realizaciones de la presente invención pueden ser implementadas en forma de producto de programa informático con un código de programa, donde el código de programa cumple la función de ejecutar uno de los métodos al ejecutarse el programa informático en un ordenador. El código de programa puede ser almacenado, por ejemplo, en un portador legible por una máquina.
[0315] Otras realizaciones comprenden el programa informático para realizar uno de los métodos descritos en el presente documento, almacenado en un portador legible por máquina o un medio de almacenamiento no transitorio.
[0317] En otras palabras, una realización del método de la invención es, por lo tanto, un programa informático que tiene un código de programa para realizar uno de los métodos descriptos en el presente documento, cuando el programa informático se ejecuta en un ordenador.
[0319] Una realización adicional de los métodos inventivos es, por lo tanto, un portador de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, grabado en el mismo, el programa informático para realizar uno de los métodos descritos en el presente documento.
[0321] Otra realización del método inventivo es, por lo tanto, un flujo de datos o una secuencia de señales que representan el programa informático para realizar uno de los métodos descritos en el presente documento. El flujo de datos o la secuencia de señales pueden estar configurados, por ejemplo, para ser transferida a través de una conexión de comunicación de datos, por ejemplo a través de Internet.
[0323] Otra realización comprende un medio de procesamiento, por ejemplo un ordenador o un dispositivo lógico programable, configurado o adaptado para realizar uno de los métodos descritos en el presente documento.
[0325] Otra realización comprende un ordenador que tiene instalado en él el programa informático para realizar uno de los métodos descritos en el presente documento.
[0327] En algunas realizaciones, se puede utilizar un dispositivo lógico programable (por ejemplo, una matriz de puertas programable en campo) para realizar algunas o todas las funcionalidades de los métodos descritos en el presente documento. En algunas realizaciones, una matriz de puertas programables en campo puede cooperar con un microprocesador para realizar uno de los métodos descritos en el presente documento. Por lo general, los métodos son ejecutados preferentemente por cualquier aparato de hardware.
[0329] Las realizaciones anteriormente descritas son meramente ilustrativas de los principios de la presente
[0330] invención. Se entiende que modificaciones de las disposiciones y los detalles aquí descritos resultarán evidentes para los expertos en la técnica. Es la intención, por consiguiente, limitarse sólo por el alcance de las reivindicaciones de patente que siguen y no por los detalles específicos presentados a modo de descripción y explicación de las realizaciones en el presente documento.

Claims (1)

1. REIVINDICACIONES
Un codificador de audio para codificar datos de entrada de audio (11), que comprende:
un preprocesador (10) para preprocesar los datos de entrada de audio (11) para obtener datos de audio que se van a codificar;
un procesador de codificador (15) para codificar los datos de audio que se van a codificar; y
un controlador (20) para controlar el procesador de codificador (15) de modo que, dependiendo de una primera característica de señal de una primera trama de los datos de audio que se van a codificar, un número de elementos de datos de audio de los datos de audio que se van a codificar por medio del procesador de codificador (15) para la primera trama se reduce en comparación con una segunda característica de señal de una segunda trama, y un primer número de unidades de información utilizadas para codificar el número reducido de elementos de datos de audio para la primera trama se mejora más en comparación con un segundo número de unidades de información para la segunda trama.
El codificador de audio de la reivindicación 1,
en donde el procesador de codificador (15) comprende una etapa de codificación inicial (151) y una etapa de codificación de refinamiento (152),
en donde el controlador (20) está configurado para reducir el número de elementos de datos de audio codificados por medio de la etapa de codificación inicial (151) para la primera trama,
en donde la etapa de codificación inicial (151) está configurada para codificar el número reducido de elementos de datos de audio para la primera trama utilizando un número de unidades de información iniciales de primera trama, y
en donde la etapa de codificación de refinamiento (152) está configurada para utilizar un número de unidades de información restantes de primera trama para una codificación de refinamiento para el número reducido de elementos de datos de audio para la primera trama, en donde el número de unidades de información iniciales de primera trama sumado al número de unidades de información restantes de primera trama da como resultado un número predeterminado de unidades de información para la primera trama.
El codificador de audio de la reivindicación 2,
en donde el controlador (20) está configurado para reducir el número de elementos de datos de audio codificados por medio de la etapa de codificación inicial (151) para la segunda trama a un número más alto de elementos de datos de audio en comparación con la primera trama,
en donde la etapa de codificación inicial (151) está configurada para codificar el número reducido de elementos de datos de audio para la segunda trama utilizando un número de unidades de información iniciales de segunda trama, el número de unidades de información iniciales de segunda trama siendo mayor que el número de unidades de información iniciales de primera trama, y
en donde la etapa de codificación de refinamiento (152) está configurada para utilizar un número de unidades de información restantes de segunda trama para una codificación de refinamiento para el número reducido de elementos de datos de audio para la segunda trama, en donde el número de unidades de información iniciales de segunda trama sumado al número de unidades de información restantes de segunda trama da como resultado el número predeterminado de unidades de información para la primera trama.
El codificador de audio de una cualquiera de las reivindicaciones anteriores,
en donde el procesador de codificador (15) comprende una etapa de codificación inicial (151) y una etapa de codificación de refinamiento (152),
en donde la etapa de codificación inicial (151) está configurada para codificar el número reducido de elementos de datos de audio para la primera trama utilizando un número de unidades de información iniciales de primera trama,
en donde la etapa de codificación de refinamiento (152) está configurada para utilizar un número de unidades de información restantes de primera trama para una codificación de refinamiento para el número reducido de elementos de datos de audio para la primera trama, en donde el número de unidades de información iniciales
de primera trama sumado al número de unidades de información restantes de primera trama da como resultado un número predeterminado de unidades de información para la primera trama, y
en donde el controlador (20) está configurado para controlar el procesador de codificador (15) de tal manera que la etapa de codificación de refinamiento (152) lleve a cabo una codificación de refinamiento de al menos uno del número reducido de elementos de datos de audio de la primera trama utilizando al menos dos unidades de información, o de tal manera que la etapa de codificación de refinamiento (152) lleve a cabo una codificación de refinamiento de más del 50 por ciento del número reducido de elementos de datos de audio utilizando al menos dos unidades de información para cada elemento de datos de audio, o
en donde el controlador (20) está configurado para controlar el procesador de codificador (15) de tal manera que la etapa de codificación de refinamiento (152) lleve a cabo una codificación de refinamiento de todos los elementos de datos de audio de la segunda trama utilizando menos de dos unidades de información, o de tal manera que la etapa de codificación de refinamiento lleve a cabo una codificación de refinamiento de menos del 50 por ciento del número reducido de elementos de datos de audio utilizando al menos dos unidades de información para cada elemento de datos de audio.
El codificador de audio de una cualquiera de las reivindicaciones anteriores,
en donde el procesador de codificador (15) comprende una etapa de codificación inicial (151) y una etapa de codificación de refinamiento (152),
en donde la etapa de codificación inicial (151) está configurada para codificar el número reducido de elementos de datos de audio para la primera trama utilizando un número de unidades de información iniciales de primera trama,
en donde la etapa de codificación de refinamiento (152) está configurada para utilizar un número de unidades de información restantes de primera trama para una codificación de refinamiento para el número reducido de elementos de datos de audio para la primera trama,
en donde la etapa de codificación de refinamiento (152) está configurada para asignar iterativamente (300, 302) el número de unidades de información restantes de primera trama al número reducido de elementos de datos de audio en al menos dos iteraciones realizadas secuencialmente, para calcular (304, 308, 312) valores de las unidades de información asignadas para dichas al menos dos iteraciones realizadas secuencialmente e introducir (316, 318, 320) los valores calculados de las unidades de información para dichas al menos dos iteraciones realizadas secuencialmente en una trama de salida codificada en un orden predeterminado.
El codificador de audio de la reivindicación 5, en donde la etapa de codificación de refinamiento (152) está configurada para calcular secuencialmente (304) una unidad de información para cada elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama en un orden desde una información de baja frecuencia para el elemento de datos de audio a una información de alta frecuencia para el elemento de datos de audio en una primera iteración,
en donde la etapa de codificación de refinamiento (152) está configurada para calcular secuencialmente (308) una unidad de información para cada elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama en un orden desde una información de baja frecuencia para el elemento de datos de audio a una información de alta frecuencia para el elemento de datos de audio en una segunda iteración, y
en donde la etapa de codificación de refinamiento 152 está configurada para verificar (314), si un número de unidades de información ya asignadas es más bajo que un número de unidades de información predeterminado para la primera trama menor que el número de unidades de información iniciales de primera trama y para detener la segunda iteración en caso de un resultado de verificación negativo, o en caso de un resultado de verificación positivo, para llevar a cabo (312) un número de iteraciones adicionales, hasta obtener un resultado de verificación negativo, el número de iteraciones adicionales siendo al menos uno, o
en donde la etapa de codificación de refinamiento (152) está configurada para contar un número de elementos de audio diferentes de cero, y para determinar el número de iteraciones del número de elementos de audio diferentes de cero y un número predeterminado de unidades de información para la primera trama menor que el número de unidades de información iniciales de primera trama.
El codificador de audio de una cualquiera de las reivindicaciones anteriores,
en donde el procesador de codificador (15) comprende una etapa de codificación inicial (151) y una etapa de
codificación de refinamiento (152),
en donde la etapa de codificación inicial (151) está configurada para codificar un número de unidades de información más significativas para cada elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama utilizando un número de unidades de información iniciales de primera trama, el número siendo mayor que uno, y
en donde la etapa de codificación de refinamiento (152) está configurada para utilizar un número de unidades de información restantes de primera trama para codificar un número de unidades de información menos significativas para cada elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama, el número siendo mayor que uno para al menos un elemento de datos de audio del número reducido de elementos de datos de audio para la primera trama.
El codificador de audio de una cualquiera de las reivindicaciones anteriores,
en donde la primera característica de señal es un primer valor de tonalidad, en donde la segunda característica de señal es un segundo valor de tonalidad, y en donde el primer valor de tonalidad indica una tonalidad mayor que el segundo valor de tonalidad, y
en donde el controlador (20) está configurado para reducir el número de elementos de datos de audio para la primera trama a un primer número que es menor que el número de elementos de datos de audio para la segunda trama, y para aumentar un número promedio de unidades de información utilizadas para codificar cada elemento de datos de audio del número reducido de elementos de datos de audio de la primera trama para que sea mayor que un número promedio de unidades de información utilizadas para codificar cada elemento de datos de audio del número reducido de elementos de datos de audio de la segunda trama.
El codificador de audio de una cualquiera de las reivindicaciones anteriores, en donde el procesador de codificador (15) comprende:
un cuantificador variable (150) para cuantificar los datos de audio de la primera trama para obtener datos de audio cuantificados para la primera trama y para cuantificar los datos de audio de la segunda trama para obtener datos de audio cuantificados para la segunda trama;
una etapa de codificación inicial (151) para codificar los datos de audio cuantificados de la primera trama o la segunda trama;
una etapa de codificación de refinamiento (152) para codificar datos residuales de la primera trama y la segunda trama;
en donde el controlador (20) está configurado para analizar (26, 28) los datos de audio de la primera trama para determinar un primer valor de control (21) para el cuantificador variable (150) para la primera trama y para analizar (26, 28) los datos de audio de la segunda trama para determinar un segundo valor de control para el cuantificador variable (150) para la segunda trama, el segundo valor de control siendo diferente del primer valor de control (21), y
en donde el controlador (20) está configurado para llevar a cabo (23, 24) una manipulación de los datos de audio de la primera trama o la segunda trama o de valores relacionados con la amplitud derivados de los datos de audio de la primera trama o la segunda trama dependiendo de los datos de audio para determinar el primer valor de control (21) o el segundo valor de control (21), y en donde el cuantificador variable (150) está configurado para cuantificar los datos de audio de la primera trama o la segunda trama sin la manipulación.
El codificador de audio de una cualquiera de las reivindicaciones 1 a 9, en donde el procesador de codificador (15) comprende:
un cuantificador variable (150) para cuantificar los datos de audio de la primera trama para obtener datos de audio cuantificados para la primera trama y para cuantificar los datos de audio de la segunda trama para obtener datos de audio cuantificados para la segunda trama;
una etapa de codificación inicial (151) para codificar los datos de audio cuantificados de la primera trama o la segunda trama;
una etapa de codificación de refinamiento (152) para codificar datos residuales de la primera trama y la segunda trama;
en donde el controlador (20) está configurado para analizar los datos de audio de la primera trama para determinar un primer valor de control (21) para el cuantificador variable (150), para la etapa de codificación inicial (151) o para un reductor de elementos de datos de audio (150) para la primera trama y para analizar los datos de audio de la segunda trama para determinar un segundo valor de control para el cuantificador variable (150), para la etapa de codificación inicial (151) o para un reductor de elementos de datos de audio (150) para la segunda trama, el segundo valor de control siendo diferente del primer valor de control, y en donde el controlador (20) está configurado (201) para determinar una primera característica de tonalidad como la primera característica de señal para determinar el primer valor de control, y una segunda característica de tonalidad como la segunda característica de señal para determinar el segundo valor de control de modo que se aumente un presupuesto de bits para la etapa de codificación de refinamiento (152) en caso de una primera característica de tonalidad comparada con el presupuesto de bits para la etapa de codificación de refinamiento (152)en caso de una segunda característica de tonalidad,
o
en donde la etapa de codificación inicial (151) es una etapa de codificación por entropía para codificación por entropía, o la etapa de codificación de refinamiento (152) es una etapa de codificación residual o binaria para codificar datos residuales de la primera trama y la segunda trama, o
en donde el controlador (20) está configurado para determinar el primer o segundo valor de control de modo que un primer presupuesto de unidades de información para la etapa de codificación inicial (151) es inferior o igual a un valor predefinido, y en el que el controlador (20) está configurado para derivar un segundo presupuesto de unidades de información para la etapa de codificación de refinamiento (152) usando el primer presupuesto de unidades de información y el número máximo de unidades de información para la primera o segunda trama o el valor predefinido,
en donde el controlador (20) se configura para calcular (22) los valores relacionados con la amplitud como una pluralidad de valores de potencia derivados de uno o más valores de audio de los datos de audio y para manipular (24) los valores de potencia usando una adición de un valor de manipulación idéntico a todos los valores de potencia de la pluralidad de valores de potencia,
o
en donde el controlador (20) está configurado para
sumar o restar aleatoriamente (24) un valor de manipulación idéntico a o de todos los valores de audio de una pluralidad de valores de audio incluidos en la trama, o,
sumar o restar valores obtenidos por la misma magnitud del valor de manipulación pero preferiblemente con signos aleatorizados, o
sumar o restar valores obtenidos por una resta de minas ligeramente diferentes de la misma magnitud sumar o restar valores obtenidos como muestras de una distribución de probabilidad normalizada escalada utilizando la magnitud compleja o real calculada del valor de manipulación, o
en donde el controlador (20) está configurado para calcular (22) los valores relacionados con la amplitud utilizando una exponenciación de los datos de audio de la primera o segunda trama o de datos de audio de resolución reducida de la primera o segunda trama con un valor de exponente, el valor de exponente siendo mayor que 1,
o
en donde el controlador (20) está configurado para calcular (23) un valor de manipulación para la manipulación utilizando un valor máximo (26) de la pluralidad de datos de audio o de los valores relacionados con la amplitud o utilizando un valor máximo de una pluralidad de datos de audio de resolución reducida o una pluralidad de valores relacionados con la amplitud de resolución reducida para la primera o segunda trama,
en donde el controlador (20) está configurado para calcular (23) un valor de manipulación para la manipulación utilizando adicionalmente un valor de ponderación independiente de la señal (27), el valor de ponderación independiente de la señal dependiendo de al menos uno de una tasa de bits para la primera o segunda trama, una duración de trama, y una frecuencia de muestreo,
o
en donde el controlador (20) está configurado para calcular (23, 29) un valor de manipulación para la manipulación utilizando un valor de ponderación dependiente de la señal derivado de al menos uno de una primera suma de magnitudes de los datos de audio o datos de audio de resolución reducida dentro de la trama, una segunda suma de magnitudes de los datos de audio o los datos de audio de resolución reducida dentro de la trama multiplicados por un índice asociado con cada magnitud, y un cociente de la segunda suma y la primera suma,
o
en donde el controlador (20) está configurado para calcular (29) el valor de manipulación para la manipulación con base en la siguiente ecuación:
N (X f ) =m a x |A > (fc ) | *2 ~re3Bits- lowBits
en donde k es un índice de frecuencia, en donde Xf(k) es un valor de datos de audio para el índice de frecuencia k antes de la cuantificación, en donde max es la función máxima, en donderegBitses un primer valor de ponderación independiente de la señal, y en dondelowBitses un segundo valor de ponderación dependiente de la señal.
El codificador de audio de una cualquiera de las reivindicaciones anteriores, en donde el procesador (10) comprende además:
un convertidor de tiempo-frecuencia (14) para convertir datos de audio en el dominio del tiempo en valores espectrales de una trama; y
un procesador espectral (15) para calcular valores espectrales modificados que tienen una envolvente espectral que es más plana que una envolvente espectral de los valores espectrales, en donde los valores espectrales modificados representan los datos de audio de la primera o la segunda trama que se va a codificar por medio del procesador de codificador (15).
El codificador de audio de la reivindicación 11, en donde el procesador espectral (15) está configurado para llevar a cabo al menos una de una operación de conformación de ruido temporal, una operación de conformación de ruido espectral, y una operación de blanqueamiento espectral.
El codificador de audio de una cualquiera de las reivindicaciones 9 a 12, en donde el controlador (20) está configurado para calcular el valor de control utilizando una pluralidad de valores de energía como los valores relacionados con la amplitud para la trama, en donde cada valor de energía se deriva (22, 23, 24) de un valor de potencia como un valor relacionado con la amplitud y un valor de manipulación dependiente de la señal para la manipulación.
El codificador de audio de la reivindicación 13 en donde el controlador (20) está configurado
Para calcular un estimado de bits requerido de cada valor de energía dependiendo del valor de energía y un valor candidato para el valor de control,
acumular los estimados de bits requeridos para los valores de energía y el valor candidato para el valor de control,
verificar, si un estimado de bits acumulado para el valor candidato para el valor de control cumple con un criterio de consumo de bits permitido, y
modificar el valor candidato para el valor de control en caso de que el criterio de consumo de bits permitido no se cumpla y repetir el cálculo del estimado de bits requerido, la acumulación de la tasa de bits requerida y la verificación hasta encontrar un cumplimiento del criterio de consumo de bits permitido para un valor candidato modificado para el valor de control,
o
en donde el controlador (20) está configurado para calcular la pluralidad de valores de energía con base en la siguiente ecuación:
E(k) - 10 loglo(P *ip (/0 N(Xf ) + 2 -31),
en dondeE(k)es un valor de energía para un índicek,en dondePXiP(k)es un valor de potencia para un índicekcomo el valor relacionado con la amplitud, y en dondeN(Xf)es el valor de manipulación dependiente de la señal.
El codificador de audio de una cualquiera de las reivindicaciones 9 a 14, en donde el controlador (20) está configurado para calcular el primer o segundo valor de control con base en una estimación de unidades de información acumuladas requeridas para cada valor de datos de audio manipulado o valor relacionado con la amplitud manipulado, o
en donde el controlador (20) está configurado para manipular de tal forma que debido a la manipulación, se aumente un presupuesto de bits para la etapa de codificación inicial (151) o se disminuya un presupuesto de bits para la etapa de codificación de refinamiento (152),
o
en donde el controlador (20) está configurado para manipular de tal forma que una manipulación resulte en un presupuesto de bits más alto de la etapa de codificación residual para una señal con una primera tonalidad en comparación con una señal con una segunda tonalidad, en donde la segunda tonalidad es menor que la primera tonalidad,
o
en donde el controlador (20) está configurado para manipular de tal forma que una energía de los datos de audio, a partir de los cuales se calcula un presupuesto de bits para la etapa de codificación inicial (151), se aumente con respecto a la energía de los datos de audio que se van a cuantificar por medio del cuantificador variable (150).
El codificador de audio de una cualquiera de las reivindicaciones anteriores, en donde el procesador de codificador (15) comprende un cuantificador variable (150) para cuantificar los datos de audio de la primera trama para obtener datos de audio cuantificados para la primera trama y para cuantificar los datos de audio de la segunda trama para obtener datos de audio cuantificados para la segunda trama,
en donde el controlador (20) está configurado para calcular una ganancia global para la primera o la segunda trama, y
en donde el cuantificador variable (150) comprende: un ponderador (155) para ondear con la ganancia global; y un núcleo de cuantificador (157) que tiene un tamaño de paso de cuantificación fijo,
en donde el procesador de codificador (15) comprende una etapa de codificación inicial (151) y una etapa de codificación de refinamiento (152),
en donde la etapa de codificación de refinamiento (152) está configurada para calcular bits de refinamiento para valores de audio cuantificados en una pluralidad de iteraciones, en donde, en cada iteración, un bit de refinamiento indica una cantidad diferente, o
en donde un bit de refinamiento en una iteración menor indica una cantidad más alta que un bit de refinamiento en una iteración mayor, o
en donde la cantidad es una cantidad fraccional que es una fracción de un tamaño de paso de cuantificador indicado por el valor de control,
en donde el procesador de codificador (15) comprende una etapa de codificación de refinamiento (152), en donde la etapa de codificación de refinamiento (152) está configurada (304, 308, 312)
para llevar a cabo un procesamiento iterativo que tenga al menos dos iteraciones,
verificar, si un valor de audio cuantificado o el valor de audio cuantificado junto con una primera cantidad potencial asociada con un bit de refinamiento para el valor de audio cuantificado en una primera iteración, sumado a o restado de una segunda cantidad para la segunda iteración cuando se pondera por medio de
una ganancia global es mayor o menor que un valor de audio no cuantificado, y
establecer un bit de refinamiento para la segunda iteración dependiendo de un resultado de la verificación, o
en donde el procesador de codificador (15) comprende un cuantificador variable (150) y una etapa de codificación de refinamiento (152), en donde la etapa de codificación de refinamiento (152) está configurada para calcular un bit de refinamiento solo para valores de audio que no están cuantificados en cero por medio del cuantificador variable (150),
o
en donde el controlador (20) está configurado para reducir un impacto de una manipulación para los datos de audio que tienen un centro de masa en una frecuencia más baja, y
en donde una etapa de codificación inicial (151) del procesador de codificador (15) está configurada para remover valores espectrales de alta frecuencia de los datos de audio en caso de que se determine que un presupuesto de bits para la primera o la segunda trama no es suficiente para codificar los datos de audio cuantificados de la trama,
o
en donde el controlador (20) está configurado para llevar a cabo una búsqueda de bi-sección para cada trama individualmente utilizando valores de energía espectral manipulados para la primera o la segunda trama como valores relacionados con la amplitud manipulados para la primera o la segunda trama.
Un método para codificar datos de entrada de audio, que comprende:
preprocesar los datos de entrada de audio (11) para obtener datos de audio que se van a codificar; codificar los datos de audio que se van a codificar; y
controlar la codificación de modo que, dependiendo de una primera característica de señal de una primera trama de los datos de audio que se van a codificar, un número de elementos de datos de audio de los datos de audio que se van a codificar para la primera trama se reduce en comparación con una segunda característica de señal de una segunda trama, y un primer número de unidades de información utilizadas para codificar el número reducido de elementos de datos de audio para la primera trama se mejora más en comparación con un segundo número de unidades de información para la segunda trama.
El método de la reivindicación 17, en donde la codificación comprende:
cuantificar de manera variable los datos de audio de una trama para obtener datos de audio cuantificados; codificar por entropía los datos de audio cuantificados de la trama; y
codificar datos residuales de la trama;
en donde el control comprende determinar un valor de control para la cuantificación variable, la determinación comprende: analizar los datos de audio de la primera o la segunda trama; y llevar a cabo una manipulación de los datos de audio de la primera o la segunda trama o valores relacionados con la amplitud derivados de los datos de audio de la primera o la segunda trama dependiendo de los datos de audio para determinar el valor de control, en donde la cuantificación variable cuantifica los datos de audio de la trama sin la manipulación, o
en donde el control comprende determinar una primera o segunda característica de tonalidad de los datos de audio y determinar el valor de control de modo que se aumente un presupuesto de bits para la codificación residual en caso de la primera característica de tonalidad comparada con el presupuesto de bits para la etapa de codificación residual en caso de la segunda característica de tonalidad, en donde la primera característica de tonalidad indica una tonalidad mayor que la segunda característica de tonalidad.
Programa informático para realizar, cuando se ejecuta en un ordenador o un procesador, el método de la reivindicación 17 o la reivindicación 18.
ES23171372T 2019-06-17 2020-06-10 Audio encoder with a signal-dependent number and precision control, related methods and computer programs Active ES3047823T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/065897 WO2020253941A1 (en) 2019-06-17 2019-06-17 Audio encoder with a signal-dependent number and precision control, audio decoder, and related methods and computer programs

Publications (1)

Publication Number Publication Date
ES3047823T3 true ES3047823T3 (en) 2025-12-05

Family

ID=67137900

Family Applications (2)

Application Number Title Priority Date Filing Date
ES23171372T Active ES3047823T3 (en) 2019-06-17 2020-06-10 Audio encoder with a signal-dependent number and precision control, related methods and computer programs
ES20730662T Active ES3062638T3 (en) 2019-06-17 2020-06-10 Audio decoder, and related methods and computer programs

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES20730662T Active ES3062638T3 (en) 2019-06-17 2020-06-10 Audio decoder, and related methods and computer programs

Country Status (15)

Country Link
US (3) US12175991B2 (es)
EP (2) EP4235663B1 (es)
JP (2) JP7518863B2 (es)
KR (1) KR102903434B1 (es)
CN (2) CN114974272A (es)
AU (2) AU2020294839B2 (es)
BR (2) BR122022002977A2 (es)
CA (1) CA3143574A1 (es)
ES (2) ES3047823T3 (es)
MX (2) MX2021015564A (es)
MY (1) MY208869A (es)
PL (1) PL4235663T3 (es)
TW (1) TWI751584B (es)
WO (2) WO2020253941A1 (es)
ZA (2) ZA202110219B (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2980795A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoding and decoding using a frequency domain processor, a time domain processor and a cross processor for initialization of the time domain processor
CN114900246B (zh) * 2022-05-25 2023-06-13 中国电子科技集团公司第十研究所 噪声基底估计方法、装置、设备及存储介质
CN117713998B (zh) * 2023-11-27 2025-06-13 深圳市微合科技有限公司 解码方法、装置、电子设备和存储介质
CN120783775B (zh) * 2025-09-08 2025-12-09 科大讯飞股份有限公司 音频编解码方法、电子设备及程序产品

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3186489B2 (ja) * 1994-02-09 2001-07-11 ソニー株式会社 ディジタル信号処理方法及び装置
US6687668B2 (en) * 1999-12-31 2004-02-03 C & S Technology Co., Ltd. Method for improvement of G.723.1 processing time and speech quality and for reduction of bit rate in CELP vocoder and CELP vococer using the same
CN1717576A (zh) * 2002-11-27 2006-01-04 皇家飞利浦电子股份有限公司 用于将声音帧分离成为正弦分量和残余噪声的方法
JP2004361731A (ja) 2003-06-05 2004-12-24 Nec Corp オーディオ復号装置及びオーディオ復号方法
JP2005004119A (ja) 2003-06-16 2005-01-06 Victor Co Of Japan Ltd 音響信号符号化装置及び音響信号復号化装置
US7668712B2 (en) 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7895034B2 (en) 2004-09-17 2011-02-22 Digital Rise Technology Co., Ltd. Audio encoding system
KR100647290B1 (ko) * 2004-09-22 2006-11-23 삼성전자주식회사 합성된 음성의 특성을 이용하여 양자화/역양자화를선택하는 음성 부호화/복호화 장치 및 그 방법
DE602006015294D1 (de) * 2005-03-30 2010-08-19 Dolby Int Ab Mehrkanal-audiocodierung
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
FR2888699A1 (fr) 2005-07-13 2007-01-19 France Telecom Dispositif de codage/decodage hierachique
WO2007080225A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
WO2007080211A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
US9009057B2 (en) 2006-02-21 2015-04-14 Koninklijke Philips N.V. Audio encoding and decoding to generate binaural virtual spatial signals
RU2427978C2 (ru) 2006-02-21 2011-08-27 Конинклейке Филипс Электроникс Н.В. Кодирование и декодирование аудио
JP4871894B2 (ja) * 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
KR101513028B1 (ko) 2007-07-02 2015-04-17 엘지전자 주식회사 방송 수신기 및 방송신호 처리방법
US20090099851A1 (en) * 2007-10-11 2009-04-16 Broadcom Corporation Adaptive bit pool allocation in sub-band coding
DE602008005250D1 (de) * 2008-01-04 2011-04-14 Dolby Sweden Ab Audiokodierer und -dekodierer
RU2536679C2 (ru) * 2008-07-11 2014-12-27 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Передатчик сигнала активации с деформацией по времени, кодер звукового сигнала, способ преобразования сигнала активации с деформацией по времени, способ кодирования звукового сигнала и компьютерные программы
EP2346029B1 (en) * 2008-07-11 2013-06-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for encoding an audio signal and corresponding computer program
CN102105930B (zh) * 2008-07-11 2012-10-03 弗朗霍夫应用科学研究促进协会 用于编码采样音频信号的帧的音频编码器和解码器
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
WO2011048094A1 (en) * 2009-10-20 2011-04-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-mode audio codec and celp coding adapted therefore
CN102222505B (zh) * 2010-04-13 2012-12-19 中兴通讯股份有限公司 可分层音频编解码方法系统及瞬态信号可分层编解码方法
BR122021000241B1 (pt) * 2011-04-21 2022-08-30 Samsung Electronics Co., Ltd Aparelho de quantização de coeficientes de codificação preditiva linear
GB2490879B (en) * 2011-05-12 2018-12-26 Qualcomm Technologies Int Ltd Hybrid coded audio data streaming apparatus and method
WO2012106926A1 (zh) * 2011-07-25 2012-08-16 华为技术有限公司 一种参数域回声控制装置和方法
WO2013035257A1 (ja) 2011-09-09 2013-03-14 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
KR20140085453A (ko) * 2011-10-27 2014-07-07 엘지전자 주식회사 음성 신호 부호화 방법 및 복호화 방법과 이를 이용하는 장치
FR2984580A1 (fr) * 2011-12-20 2013-06-21 France Telecom Procede de detection d'une bande de frequence predeterminee dans un signal de donnees audio, dispositif de detection et programme d'ordinateur correspondant
US9111524B2 (en) * 2011-12-20 2015-08-18 Dolby International Ab Seamless playback of successive multimedia files
US8527264B2 (en) 2012-01-09 2013-09-03 Dolby Laboratories Licensing Corporation Method and system for encoding audio data with adaptive low frequency compensation
US9832575B2 (en) * 2012-01-20 2017-11-28 Sonova, AG Wireless sound transmission and method
TWI538000B (zh) * 2012-05-10 2016-06-11 杜比實驗室特許公司 多階段過濾器,音頻編碼器,音頻解碼器,施行多階段過濾的方法,用以編碼音頻資料的方法,用以將編碼音頻資料解碼的方法,及用以處理編碼位元流的方法和裝置
EP4521400A3 (en) 2012-06-08 2025-04-30 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR CONCEALING FRAME ERRORS AND METHOD AND APPARATUS FOR DECODING AUDIO
TWI553628B (zh) 2012-09-24 2016-10-11 三星電子股份有限公司 訊框錯誤隱藏方法
ES2659177T3 (es) 2013-01-29 2018-03-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificador de audio, descodificador de audio, método para proveer una información de audio codificada, método para proveer una información de audio descodificada, programa informático y representación codificada utilizando una ampliación de ancho de banda adaptable a la señal
EP2830054A1 (en) * 2013-07-22 2015-01-28 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder and related methods using two-channel processing within an intelligent gap filling framework
US10688129B2 (en) * 2013-11-26 2020-06-23 Central Biomedia, Inc. Method of producing a designer blood product, method of using a designer blood product, and diet for selectively enhancing blood profile
KR102386738B1 (ko) * 2014-02-17 2022-04-14 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
US10090004B2 (en) * 2014-02-24 2018-10-02 Samsung Electronics Co., Ltd. Signal classifying method and device, and audio encoding method and device using same
US9564136B2 (en) * 2014-03-06 2017-02-07 Dts, Inc. Post-encoding bitrate reduction of multiple object audio
SG11201609834TA (en) * 2014-03-24 2016-12-29 Samsung Electronics Co Ltd High-band encoding method and device, and high-band decoding method and device
WO2016018058A1 (ko) * 2014-07-28 2016-02-04 삼성전자 주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
KR102742778B1 (ko) * 2014-07-28 2024-12-16 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
EP2980793A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder, system and methods for encoding and decoding
TWI602172B (zh) * 2014-08-27 2017-10-11 弗勞恩霍夫爾協會 使用參數以加強隱蔽之用於編碼及解碼音訊內容的編碼器、解碼器及方法
US10629184B2 (en) * 2014-12-22 2020-04-21 Intel Corporation Cepstral variance normalization for audio feature extraction
EP3067886A1 (en) 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder for encoding a multichannel signal and audio decoder for decoding an encoded audio signal
US9959880B2 (en) 2015-10-14 2018-05-01 Qualcomm Incorporated Coding higher-order ambisonic coefficients during multiple transitions
AU2017210021B2 (en) 2016-01-19 2019-07-11 Sphereo Sound Ltd. Synthesis of signals for immersive audio playback
KR102299193B1 (ko) 2016-04-12 2021-09-06 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 상부 주파수 대역에서 검출된 피크 스펙트럼 영역을 고려하여 오디오 신호를 부호화하는 오디오 인코더, 오디오 신호를 부호화하는 방법, 및 컴퓨터 프로그램
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits

Also Published As

Publication number Publication date
US12512107B2 (en) 2025-12-30
AU2021286443A1 (en) 2022-01-20
BR112021025582A2 (pt) 2022-03-03
CA3143574A1 (en) 2020-12-24
EP3984025C0 (en) 2026-01-28
US20220101868A1 (en) 2022-03-31
ES3062638T3 (en) 2026-04-13
MX2021015562A (es) 2022-03-11
MX2021015564A (es) 2022-03-11
AU2020294839A1 (en) 2022-01-20
CN114258567A (zh) 2022-03-29
US12159641B2 (en) 2024-12-03
AU2020294839B2 (en) 2023-03-16
US12175991B2 (en) 2024-12-24
US20220101866A1 (en) 2022-03-31
US20240185873A1 (en) 2024-06-06
CN114974272A (zh) 2022-08-30
EP4235663A3 (en) 2023-09-06
BR122022002977A2 (pt) 2022-03-29
RU2022101245A (ru) 2022-02-11
MY208869A (en) 2025-06-05
WO2020254168A1 (en) 2020-12-24
EP4235663C0 (en) 2025-09-24
CN114258567B (zh) 2026-01-09
JP2022537033A (ja) 2022-08-23
ZA202110219B (en) 2022-07-27
JP2022127601A (ja) 2022-08-31
JP7518863B2 (ja) 2024-07-18
WO2020253941A1 (en) 2020-12-24
EP4235663B1 (en) 2025-09-24
PL4235663T3 (pl) 2026-02-23
JP7422966B2 (ja) 2024-01-29
AU2021286443B2 (en) 2023-01-05
EP3984025A1 (en) 2022-04-20
TW202101428A (zh) 2021-01-01
KR20220019793A (ko) 2022-02-17
EP3984025B1 (en) 2026-01-28
EP4235663A2 (en) 2023-08-30
KR102903434B1 (ko) 2025-12-23
TWI751584B (zh) 2022-01-01
ZA202201443B (en) 2023-03-29

Similar Documents

Publication Publication Date Title
ES3047823T3 (en) Audio encoder with a signal-dependent number and precision control, related methods and computer programs
ES2983192T3 (es) Codificador y decodificador de audio
ES2379761T3 (es) Proporcinar una señal de activación de distorsión de tiempo y codificar una señal de audio con la misma
ES2698023T3 (es) Decodificador de audio y método relacionado que usan procesamiento de dos canales dentro de un marco de relleno inteligente de huecos
ES3006734T3 (en) Audio encoder for encoding an audio signal, method for encoding an audio signal and computer program under consideration of a detected peak spectral region in an upper frequency band
ES2701456T3 (es) Codificación de señales de audio multicanal usando predicción compleja y codificación diferencial
ES2628127T3 (es) Cuantificador avanzado
ES2807241T3 (es) Método de codificación, codificador, programa y medio de grabación
RU2845923C2 (ru) Аудиокодер с зависимым от сигнала управлением точностью и числом, аудиодекодер и связанные способы и компьютерные программы
KR102857969B1 (ko) 신호의존적 수 및 정밀도 제어가 가능한 오디오 인코더, 오디오 디코더 및 관련 방법 및 컴퓨터 프로그램
RU2782182C1 (ru) Аудиокодер с зависимым от сигнала управлением точностью и числом, аудиодекодер и связанные способы и компьютерные программы
HK40065484B (en) Audio decoder, and related methods and computer programs
HK40065484A (en) Audio decoder, and related methods and computer programs
ES2707473T3 (es) Codificación de audio de multicanal utilizando predicción compleja y señalización de estimación explícita