ES2933287T3 - Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior - Google Patents

Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior Download PDF

Info

Publication number
ES2933287T3
ES2933287T3 ES20168799T ES20168799T ES2933287T3 ES 2933287 T3 ES2933287 T3 ES 2933287T3 ES 20168799 T ES20168799 T ES 20168799T ES 20168799 T ES20168799 T ES 20168799T ES 2933287 T3 ES2933287 T3 ES 2933287T3
Authority
ES
Spain
Prior art keywords
frequency band
spectral
encoder
shaping
lower frequency
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
ES20168799T
Other languages
English (en)
Inventor
Markus Multrus
Christian Neukam
Markus Schnell
Benjamin Schubert
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 Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung 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 Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2933287T3 publication Critical patent/ES2933287T3/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/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
    • 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
    • G10L19/265Pre-filtering, e.g. high frequency emphasis prior to encoding
    • 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/0204Speech 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 using subband decomposition
    • 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/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
    • 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • 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
    • 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
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0316Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude
    • G10L21/0324Details of processing therefor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/15Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being formant information
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • 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/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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques

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)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un codificador de audio para codificar una señal de audio que tiene una banda de frecuencia inferior y una banda de frecuencia superior, comprende: un detector (802) para detectar una región espectral máxima en la banda de frecuencia superior de la señal de audio; un modelador (804) para dar forma a la banda de frecuencia inferior usando información de forma para la banda inferior y para dar forma a la banda de frecuencia superior usando al menos una parte de la información de forma para la banda inferior, donde el formador (804) está configurado para atenuar adicionalmente valores espectrales en la región espectral máxima detectada en la banda de frecuencia superior; y una etapa de cuantificador y codificador (806) para cuantificar una banda de frecuencia inferior conformada y una banda de frecuencia superior conformada y para codificar entropía valores espectrales cuantificados de la banda de frecuencia inferior conformada y la banda de frecuencia superior conformada. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior
La presente invención se refiere a la codificación de audio, y preferiblemente, a un método, aparato o programa informático para controlar la cuantificación de los coeficientes espectrales para TCX basada en MDCT en el códec EVS.
Un documento de referencia para el códec EVS es 3GPP TS 24.445 V13.1.0 (2016-03), proyecto de asociación de tercera generación; Memoria descriptiva Técnica de Servicios de Grupo y Aspectos del Sistema; Códec para servicios de voz mejorados (EVS); Descripción algorítmica detallada (versión 13).
Sin embargo, la presente invención es adicionalmente útil en otras versiones EVS, por ejemplo, definidas por otras versiones que la versión 13 y, adicionalmente, la presente invención es adicionalmente útil en todos los otros codificadores de audio diferentes de EVS que, sin embargo, se basan en un detector, un conformador y una etapa de cuantificador y codificador como se define, por ejemplo, en las reivindicaciones.
Adicionalmente, se debe tener en cuenta que todas las realizaciones definidas no solo por las reivindicaciones independientes, sino también definidas por las reivindicaciones dependientes, se pueden usar separadamente entre sí o juntas como se indica mediante las interdependencias de las reivindicaciones o como se discute más adelante bajo los ejemplos preferidos.
El códec EVS [1], como se especifica en 3GPP, es un códec híbrido moderno para contenido de habla y audio de banda estrecha NB), banda ancha (WB), banda super ancha (SWB) o de banda completa (FB) que puede cambiar entre varios enfoques de codificación, basándose en la clasificación de la señal:
La figura 1 ilustra un procesamiento común y diferentes esquemas de codificación en EVS. Particularmente, una porción del procesamiento común del codificador en la figura 1 comprende un bloque de remuestreo de señales 101 y un bloque de análisis de señales 102. La señal de entrada de audio se introduce en una entrada de señal de audio 103 en la porción de procesamiento común y, en particular, en el bloque de remuestreo de señales. El bloque de remuestreo de señales 101 tiene adicionalmente una entrada de línea de comandos para recibir los parámetros de la línea de comandos. La salida de la etapa de procesamiento común se introduce en diferentes elementos como se puede ver en la figura 1. En particular, la figura 1 comprende un bloque de codificación basado en predicción lineal (codificación basada en LP) 110, un bloque de codificación de dominio de frecuencia 120 y un bloque de codificación de señal inactiva/CNG 130. Los bloques 110, 120, 130 están conectados a un multiplexor del flujo de bits 140. Además, se proporciona un conmutador 150 para la conmutación, que depende de una decisión del clasificador, la salida de la etapa de procesamiento común al bloque de codificación basado en LP 110, el bloque de codificación de dominio de frecuencia 120 o el bloque de codificación de señal inactiva/CNG (generación de ruido de confort). Además, el multiplexor de flujo de bits 140 recibe una información del clasificador, es decir, si una porción actual determinada de la entrada de señal de audio entra en el bloque 103 y es procesada por la porción del procesamiento común se codifica usando cualquiera de los bloques 110, 120, 130.
- La codificación basada en LP (basada en la predicción lineal), tal como la codificación CELP, se utiliza principalmente para contenido de habla o habla dominante y contenido de audio genérico con alta fluctuación temporal.
- La codificación de dominio de frecuencia se utiliza para todos los demás contenidos de audio genéricos, tal como música o ruido de fondo.
Para proporcionar la máxima calidad para las tasas de bits bajas y medias, se realiza una conmutación frecuente entre la codificación basada en LP y la codificación del dominio de frecuencia, basándose en el análisis de señal en un módulo de procesamiento común. Para ahorrar en complejidad, el códec se optimizó para reutilizar elementos de la etapa de análisis de señal también en módulos posteriores. Por ejemplo: el módulo de análisis de señal presenta una etapa de análisis LP. Los coeficientes de filtro LP (LPC) resultantes y la señal residual se utilizan en primer lugar para varias etapas de análisis de señal, tales como el detector de actividad de voz (VAD) o el clasificador de habla/música. En segundo lugar, el LPC es también una parte elemental del esquema de codificación basado en LP y el esquema de codificación de dominio de frecuencia. Para ahorrar en complejidad, el análisis LP se realiza a la velocidad de muestreo interna del codificador CELP (SRcelp).
El codificador CELP funciona a una velocidad de muestreo interna de 12,8 o 16 kHz (SRcelp) y, por tanto, puede representar señales de ancho de banda de audio de hasta 6,4 o 8 kHz directamente. Para el contenido de audio que excede este ancho de banda en WB, SWB o FB, el contenido de audio por encima de la representación de frecuencia de CELP está codificado por un mecanismo de extensión de ancho de banda.
El TCX basado en MDCT es un submodo de la codificación del dominio de frecuencia. Al igual que para el enfoque de codificación basado en LP, la formación de ruido en TCX se realiza mediante la aplicación de factores de ganancia calculados a partir de coeficientes de filtro LP cuantificados ponderados al espectro MDCT (lado decodificador). En el lado del codificador, los factores de ganancia inversa se aplican antes del bucle de velocidad. Esto se conoce posteriormente como aplicación de ganancias de conformación de LPC. TCX funciona en la velocidad de muestreo de entrada (SRinp). Esto se aprovecha para codificar el espectro completo directamente en el dominio MDCT, sin extensión de ancho de banda adicional. La velocidad de muestreo de entrada SRinp, en la que se realiza la transformación MDCT, puede ser mayor que la tasa de muestreo CELP SRcelp, para la que se calculan los coeficientes LP. Por lo tanto, las ganancias de conformación de LPC solo se pueden calcular para la parte del espectro MDCT correspondiente al intervalo de frecuencias CELP (fCELp). Para la parte restante del espectro (si existe), se utiliza la ganancia de conformación de la banda de frecuencia más alta.
La figura 2 ilustra en un alto nivel la aplicación de ganancias de conformación de LPC y para el TCX basado en MDCT. En particular, la figura 2 ilustra un principio de formación y codificación de ruido en el bloque de codificación de TCX o de dominio de frecuencia 120 de la figura 1 en el lado del codificador.
Particularmente, la figura 2 ilustra un diagrama de bloques esquemático de un codificador. La señal de entrada 103 se introduce en el bloque de remuestreo 201 con el fin de realizar un remuestreo de la señal a la velocidad de muestreo CELP SRcelp, es decir, la velocidad de muestreo requerida por el bloque de codificación basado en LP 110 de la figura 1. Además, se proporciona un calculador 203 de LPC que calcula los parámetros de LPC en el bloque 205, se realiza una ponderación basada en LPC para que la señal sea procesada adicionalmente por el bloque de codificación basado en LP 110 en la figura 1, es decir, la señal residual LPC que se codifica usando el procesador ACELP.
Adicionalmente, se introduce la señal de entrada 103, sin ningún remuestreo, en un convertidor espectral de tiempo 207 que se ilustra a modo de ejemplo como una transformada MDCT. Además, en el bloque 209, los parámetros LpC calculados mediante el bloque 203 se aplican después de algunos cálculos. Particularmente, el bloque 209 recibe los parámetros LPC calculados a partir del bloque 203 a través de la línea 213 o alternativa o adicionalmente a partir del bloque 205 y luego deriva los factores de ponderación del MDCT o, en general, del dominio espectral para aplicar las ganancias de conformación de LPC inversas correspondientes. Entonces, en el bloque 211, se realiza una operación del cuantificador/codificador general que puede ser, por ejemplo, un bucle de velocidad que ajusta la ganancia global y, adicionalmente, realiza una cuantificación/codificación de coeficientes espectrales, preferiblemente usando la codificación aritmética como se ilustra en la memoria descriptiva del codificador EVS conocida para finalmente obtener el flujo de bits.
En contraste con el enfoque de codificación CELP, que combina un codificador central en SRcelp y un mecanismo de extensión de ancho de banda a una mayor velocidad de muestreo, los enfoques de codificación basados en MDCT funcionan directamente sobre la velocidad de muestreo de entrada SRinp y codifican el contenido del espectro completo en el dominio MDCT.
El TCX basado en MDCT codifica hasta 16 kHz de contenido de audio a bajas tasas de bits, tales como SWB de 9,6 o 13,2 kbit/s. Debido a que a tales tasas de bits bajas solo un pequeño subconjunto de los coeficientes espectrales puede ser codificado directamente por medio del codificador aritmético, los intervalos resultantes (regiones de valores cero) en el espectro están ocultados por dos mecanismos:
- Llenado de ruido, que inserta ruido aleatorio en el espectro decodificado. La energía del ruido es controlada por un factor de ganancia, que se transmite en el flujo de bits.
- Llenado de intervalo inteligente (IGF), que inserta porciones de la señal de partes de frecuencias más bajas del espectro. Las características de estas porciones de frecuencia insertadas son controladas por parámetros que se transmiten en el flujo de bits.
El llenado de ruido se utiliza para las porciones de frecuencia más baja hasta la frecuencia más alta, que puede ser controlada por el LPC transmitido (fcELp). Por encima de esta frecuencia, se utiliza la herramienta IGF, que proporciona otros mecanismos para controlar el nivel de las porciones de frecuencia insertadas.
Existen dos mecanismos para la decisión sobre qué coeficientes espectrales sobreviven al procedimiento de codificación o cuáles serán reemplazados por llenado de ruido o IGF:
1) Bucle de velocidad
Después de la aplicación de las ganancias de conformación LPC inversa, se aplica un bucle de velocidad. Para ello, se estima una ganancia global. Posteriormente, los coeficientes espectrales se cuantifican, y los coeficientes espectrales cuantificados se codifican con el codificador aritmético. Basándose en la demanda de bits real o estimada del codificador aritmético y el error de cuantificación, la ganancia global se incrementa o disminuye. Esto afecta a la precisión del cuantificador. Cuanto menor es la precisión, más coeficientes espectrales se cuantifican a cero. La aplicación de las ganancias de conformación LPC inversa utilizando un LPC ponderado antes del bucle de velocidad asegura que las líneas perceptualmente relevantes sobreviven con una probabilidad significativamente mayor que el contenido perceptivamente irrelevante.
2) Enmascaramiento tonal IGF
Por encima de fCELP, donde no está disponible LPC, se utiliza un mecanismo diferente para identificar los componentes espectrales perceptualmente relevantes: la energía de forma lineal se compara con la energía promedio en la región IGF. Se mantienen líneas espectrales predominantes, que corresponden a porciones de señales perceptualmente relevantes, todas las otras líneas se ajustan a cero. El espectro de MDCT, que se preprocesó con el enmascaramiento tonal de IGF, se alimenta posteriormente en el bucle de velocidad.
El LPC ponderado sigue la envolvente espectral de la señal. Mediante la aplicación de las ganancias de conformación LPC inversa usando el LPC ponderado se realiza un blanqueamiento perceptual del espectro. Esto reduce significativamente la dinámica del espectro MDCT antes del bucle de codificación y, por tanto, también controla la distribución de bits entre los coeficientes espectrales MDCT en el bucle de codificación.
Como se explicó anteriormente, el LPC ponderado no está disponible para frecuencias superiores a fCELP. Para estos coeficientes MDCT, se aplica la ganancia de conformación de la banda de frecuencia más alta por debajo de fCELP. Esto funciona bien en los casos donde la ganancia de conformación de la banda de frecuencias más alta por debajo de fCELP corresponde aproximadamente a la energía de los coeficientes por encima de fCELP, lo que a menudo se debe a la inclinación espectral y que se puede observar en la mayoría de las señales de audio. Por lo tanto, este procedimiento es ventajoso, ya que no es necesario calcular o transmitir la información de conformación para la banda superior.
Sin embargo, en caso de que existan componentes espectrales fuertes por encima de fCELP y la ganancia de conformación de la banda de frecuencia más alta por debajo de fCELP sea muy baja, esto da como resultado un desajuste. Este desajuste impacta fuertemente en el funcionamiento o en el bucle de velocidad, que se centra en los coeficientes espectrales que tienen la amplitud más alta. A tasas de bits bajas, esto reducirá a cero los componentes de señal restantes, especialmente en la banda baja, y producirá una calidad perceptualmente mala.
Las figuras 3-6 ilustran el problema. La figura 3 muestra el espectro MDCT absoluto antes de la aplicación de las ganancias de conformación LPC inversa, la figura 4 las ganancias de conformación LPC correspondientes. Hay picos fuertes por encima de fCELP visibles, que están en el mismo orden de magnitud que los picos más altos debajo de fCELP. Los componentes espectrales por encima de fCELP son el resultado del preprocesamiento usando el enmascaramiento tonal de IGF. La figura 5 muestra el espectro de MDCT absoluto después de aplicar las ganancias de LPC inversa, aún antes de la cuantificación. Ahora los picos por encima de fCELP exceden significativamente los picos por debajo de fCELP, con el efecto de que el bucle de velocidad se centrará principalmente en estos picos. La figura 6 muestra el resultado del bucle de velocidad a bajas tasas de bits: todos los componentes espectrales excepto los picos por encima de fCELP se cuantificaron a 0. Esto produce un resultado perceptualmente muy pobre después del proceso de decodificación completo, ya que las porciones de señal psicoacústicamente muy relevantes en las frecuencias bajas faltan por completo.
La figura 3 ilustra un espectro MDCT de una trama crítica antes de la aplicación de ganancias de conformación LPC inversa.
La figura 4 ilustra las ganancias de conformación de LPC tal como se aplican. En el lado del codificador, el espectro se multiplica con la ganancia inversa. El último valor de ganancia se utiliza para todos los coeficientes MDCT por encima de fCELP. La figura 4 indica fCELP en el borde derecho.
La figura 5 ilustra un espectro MDCT de una trama crítica de la aplicación de ganancias de conformación LPC inversa. Los altos picos por encima de fCELP son claramente visibles.
La figura 6 ilustra un espectro MDCT de una trama crítica después de la cuantificación. El espectro mostrado incluye la aplicación de la ganancia global, pero sin las ganancias de conformación LPC. Se puede observar que todos los coeficientes espectrales excepto el pico por encima de fCELP se cuantifican a 0.
El documento EP 2980794 A1 da a conocer un codificador de audio que comprende: un primer procesador de codificación para codificar una primera porción de la señal de audio en un dominio de la frecuencia, en el que el primer procesador de codificación comprende: un convertidor de frecuencia y de tiempo para convertir la primera porción de la señal de audio en una representación de un dominio de la frecuencia que tiene líneas espectrales hasta una frecuencia máxima de la primera porción de la señal de audio; un analizador para analizar la representación en el dominio de la frecuencia hasta la frecuencia máxima para determinar primeras porciones espectrales para codificar con una primera resolución espectral y segundas regiones espectrales para codificar con una segunda resolución espectral, siendo la segunda resolución espectral inferior a la primera resolución espectral; un codificador espectral para codificar las primeras porciones espectrales con la primera resolución espectral y para codificar las segundas porciones espectrales con la segunda resolución espectral; un segundo procesador de codificación para codificar una segunda porción de la señal de audio diferente en el dominio del tiempo; un controlador configurado para analizar la señal de audio y para determinar qué porción de la señal de audio es la primera porción de la señal de audio codificada en el dominio de la frecuencia y qué porción de la señal de audio es la segunda porción de la señal de audio codificada en el dominio del tiempo; y un conformador de señales codificadas para formar una señal de audio codificada que comprende una primera porción de la señal codificada para la primera porción de la señal de audio y una segunda porción de la señal codificada para la segunda porción de la señal de audio.
Un objeto de la presente invención es proporcionar un concepto de codificación de audio mejorado.
Este objeto se obtiene mediante un codificador de audio según la reivindicación 1, un método para codificar una señal de audio según la reivindicación 14 o un programa informático según la reivindicación 15.
La presente invención se basa en el hallazgo de que tales problemas de la técnica anterior se pueden resolver mediante el preprocesamiento de la señal de audio para codificar dependiendo de una característica específica de la etapa de cuantificador y codificador incluida en el codificador de audio. Con este fin, se detecta una región espectral del pico de una banda de frecuencia superior de la señal de audio. Luego, se usa un conformador para conformar la banda de frecuencia más baja usando la información de conformación para la banda más baja y para conformar la banda de frecuencia superior usando al menos una porción de la información de conformación para la banda más baja. En particular, el conformador se configura adicionalmente para atenuar los valores espectrales en una región espectral del pico detectada, es decir, en una región espectral del pico detectado por el detector de la banda de frecuencia superior de la señal de audio. Luego, la banda de frecuencia más baja conformada y la banda de frecuencia superior atenuada se cuantifican y codifican por entropía.
Debido al hecho de que la banda de frecuencia superior se ha atenuado selectivamente, es decir, dentro de la región espectral de pico detectada, esta región espectral de pico detectada ya no puede dominar completamente el comportamiento de la etapa de cuantificador y codificador.
En cambio, debido al hecho de que se ha formado una atenuación en la banda de frecuencia superior de la señal de audio, se mejora la calidad perceptual global del resultado de la operación de codificación. Particularmente a bajas tasas de bits, en las que una tasa de bits relativamente baja es un objetivo principal de la etapa de cuantificador y codificador, los picos espectrales altos en la banda de frecuencia superior pueden consumir todos los bits requeridos por la etapa de cuantificador y codificador, ya que el codificador puede ser guiado por las porciones de alta frecuencia superior y, por lo tanto, pueden usar la mayoría de los bits disponibles en estas porciones. Esto genera automáticamente una situación en la que los bits para los intervalos de frecuencia más bajos perceptualmente más importantes ya no están disponibles. De este modo, tal procedimiento puede producir una señal que solo tiene porciones de alta frecuencia codificadas, mientras que las porciones de frecuencia más baja no están codificadas en absoluto o solo están codificadas de manera muy gruesa. Sin embargo, se ha encontrado que tal procedimiento es menos agradable perceptualmente en comparación con una situación, donde se detecta tal situación problemática con regiones espectrales altas predominantes y se atenúan los picos en el intervalo de frecuencias más altas antes de realizar el procedimiento del codificador que comprende una etapa de cuantificador y codificador de entropía.
Preferiblemente, la región espectral de pico se detecta en la banda de frecuencia superior de un espectro MDCT. Sin embargo, también se pueden usar otros convertidores espectrales-temporales tales como un banco de filtros, un banco de filtros QMF, un DFT, un FFT o cualquier otra conversión tiempo-frecuencia.
Además, la presente invención es útil porque, para la banda de frecuencia superior, no se requiere calcular la información de conformación. En cambio, se usa una información de conformación originalmente calculada para la banda de frecuencia más baja para conformar la banda de frecuencia superior. En consecuencia, la presente invención proporciona un codificador muy eficiente desde el punto de vista computacional ya que también se puede usar una información de conformación de banda baja para conformar la banda alta, debido a que los problemas que pueden resultar de tal situación, es decir, altos valores espectrales en la banda de frecuencia superior, se pueden resolver mediante la atenuación adicional aplicada adicionalmente por el conformador además de la conformación sencilla típicamente basada en la envolvente espectral de la señal de banda baja que, por ejemplo, se puede caracterizar mediante unos parámetros de LPC para la señal de banda baja. Pero la envolvente espectral también se puede representar por cualquier otra medida correspondiente que sea utilizable para realizar una conformación en el dominio espectral.
La etapa de cuantificador y codificador realiza una operación de cuantificación y codificación sobre la señal conformada, es decir, sobre la señal de banda baja conformada y sobre la señal de banda alta conformada, pero la señal de banda alta conformada ha recibido adicionalmente la atenuación adicional.
Aunque la atenuación de la banda alta en la región espectral de pico detectada es una operación de preprocesamiento que no puede ser recuperada por el decodificador, el resultado del decodificador es sin embargo más agradable en comparación con una situación en la que no se aplica la atenuación adicional, debido a que la atenuación produce el hecho de que los bits permanecen para la banda de frecuencia más baja perceptualmente más importante. Por lo tanto, en situaciones problemáticas en las que una región espectral elevada con picos puede dominar el resultado de codificación entero, la presente invención proporciona una atenuación adicional de dichos picos de modo que, al final, el codificador "ve" una señal que tiene porciones de alta frecuencia atenuada y, por lo tanto, la señal codificada todavía tiene información de baja frecuencia útil y perceptualmente agradable. El "sacrificio" con respecto a la banda espectral alta no es o casi no es perceptible por los oyentes, ya que los oyentes, en general, no tienen una imagen clara del contenido de alta frecuencia de una señal, pero tienen, con una probabilidad mucho mayor, una expectativa con respecto al contenido de frecuencia baja. En otras palabras, una señal que tiene un contenido de baja frecuencia de nivel muy bajo pero un contenido de frecuencia de alto nivel significativo es una señal que se percibe típicamente como no natural.
Las realizaciones preferidas de la invención comprenden un analizador de predicción lineal para derivar los coeficientes de predicción lineal durante un marco de tiempo y estos coeficientes de predicción lineal representan la información de conformación o la información de conformación se deriva de estos coeficientes de predicción lineal.
En una realización adicional, varios factores de conformación se calculan para varias sub-bandas de la banda de frecuencia más baja, y para la ponderación en la banda de frecuencia mayor, se usa el factor de conformación calculado para la sub-banda más alta de la banda de baja frecuencia.
En una realización adicional, el detector determina una región espectral del pico en la banda de frecuencia superior cuando al menos un grupo de condiciones es válido, donde el grupo de condiciones comprende al menos una condición de amplitud de banda de baja frecuencia, una condición de distancia del pico y una condición de amplitud del pico. Aún más preferiblemente, una región espectral del pico solo se detecta cuando dos condiciones son verdaderas al mismo tiempo y aún más preferiblemente, una región espectral del pico solo se detecta cuando las tres condiciones son verdaderas.
En una realización adicional, el detector determina varios valores usados para examinar las condiciones ya sea antes o después de la operación de conformación con o sin la atenuación adicional.
En una realización, el conformador atenúa adicionalmente los valores espectrales usando un factor de atenuación, donde este factor de atenuación se deriva de una amplitud espectral máxima en la banda de frecuencia más baja multiplicada por un número predeterminado que es mayor o igual a 1 y dividida por la amplitud espectral máxima en la banda de frecuencia superior.
Además, la forma específica, en cuanto a cómo se aplica la atenuación adicional, se puede realizar de varias maneras diferentes. Una forma es que el conformador realice en primer lugar la información de ponderación usando al menos una porción de la información de conformación para la banda de frecuencia más baja con el fin de conformar los valores espectrales en la región espectral de pico detectada. A continuación, se realiza una operación de ponderación posterior usando la información de atenuación.
Un procedimiento alternativo es aplicar primero una operación de ponderación usando la información de atenuación y luego realizar una ponderación posterior usando una información de ponderación que responde a por lo menos la porción de la información de conformación para la banda de frecuencias más baja. Otra alternativa es aplicar una única información de ponderación usando una información de ponderación combinada que se deriva de la atenuación por una parte y la porción de la información de conformación para la banda de frecuencia más baja por otra parte.
En una situación donde la ponderación se realiza usando una multiplicación, la información de atenuación es un factor de atenuación y la información de conformación es un factor de conformación y la información de ponderación combinada real es un factor de ponderación, es decir, un factor de ponderación único para la información de ponderación única, donde este factor de ponderación único se deriva por multiplicación de la información de atenuación y la información de conformación para la banda más baja. En consecuencia, es evidente que el conformador se puede implementar de muchas maneras diferentes, pero no obstante, el resultado es una conformación de la banda de alta frecuencia usando información de conformación de la banda más baja y una atenuación adicional.
En una realización, la etapa de cuantificador y codificador comprende un procesador del bucle de velocidad para estimar una característica del cuantificador de modo que se obtiene la tasa de bits predeterminada de una señal de audio codificada por entropía. En una realización, esta característica del cuantificador es una ganancia global, es decir, un valor de ganancia aplicado al intervalo de frecuencia entero, es decir, aplicado a todos los valores espectrales que se van a cuantificar y codificar. Cuando parece que la tasa de bits requerida es menor que una tasa de bits obtenida usando una cierta ganancia global, entonces la ganancia global se incrementa y se determina si la tasa de bits real está ahora en línea con el requisito, es decir, ahora es menor o igual a la tasa de bits requerida. Este procedimiento se realiza cuando la ganancia global se utiliza en el codificador antes de la cuantificación de tal manera que los valores espectrales se dividen por la ganancia global. Sin embargo, cuando la ganancia global se utiliza de manera diferente, es decir, multiplicando los valores espectrales por la ganancia global antes de realizar la cuantificación, entonces la ganancia global disminuye cuando una tasa de bits real es demasiado alta o la ganancia global puede aumentar cuando la tasa de bits real es más baja que la admisible.
Sin embargo, se pueden usar otras características de etapa del codificador también en una condición de bucle de velocidad determinada. Una forma puede ser, por ejemplo, una ganancia selectiva de frecuencia. Un procedimiento adicional puede ser ajustar el ancho de banda de la señal de audio que depende de la tasa de bits requerida. Generalmente, se puede influir en diferentes características de cuantificador de manera que, al final, se obtiene una tasa de bits que está en línea con la tasa de bits requerida (típicamente baja).
Preferiblemente, este procedimiento es particularmente adecuado para combinarse con el procesamiento de llenado de intervalos inteligente (procesamiento de IGF). En este procedimiento, se aplica un procesador de enmascaramiento tonal para determinar, en la banda de frecuencias superior, un primer grupo de valores espectrales para cuantificar y codificar por entropía y un segundo grupo de valores espectrales para codificar paramétricamente mediante el procedimiento de llenado de intervalos. El procesador de enmascaramiento tonal ajusta el segundo grupo de valores espectrales de valores 0, de manera que estos valores no consumen muchos bits en la etapa de cuantificador/codificador. Por otra parte, parece que típicamente los valores pertenecientes al primer grupo de valores espectrales que han de ser cuantificados y codificados por entropía son los valores de la región espectral de pico que, bajo ciertas circunstancias, se pueden detectar y atenuar adicionalmente en caso de una situación problemática para la etapa cuantificador/codificador. Por lo tanto, la combinación de un procesador de enmascaramiento tonal dentro de una estructura de llenado de intervalos inteligente con la atenuación adicional de las regiones espectrales de pico detectadas da como resultado un procedimiento del codificador eficiente que es, además, compatible con el retorno y, no obstante, produce una calidad perceptual buena incluso a tasas de bits muy bajas.
Las realizaciones son ventajosas respecto a soluciones potenciales para tratar este problema que incluyen métodos para extender el intervalo de frecuencias de LPC u otros medios para ajustar mejor las ganancias aplicadas a frecuencias por encima de fCELP a los coeficientes espectrales MDCT reales. Este procedimiento, sin embargo, destruye la compatibilidad de retorno, cuando un códec ya está implementado en el mercado, y los métodos descritos previamente pueden romper la interoperabilidad con las implementaciones existentes.
Posteriormente, se ilustran las realizaciones preferidas de la presente invención con respecto a los dibujos adjuntos, en los que:
la figura 1 ilustra un procesamiento común y diferentes esquemas de codificación en EVS;
la figura 2 ilustra un principio de formación de ruido y codificación en TCX del lado del codificador;
la figura 3 ilustra un espectro de MDCT de una trama crítica antes de la aplicación de ganancias de conformación de LP inversas;
la figura 4 ilustra la situación de la figura 3, pero con las ganancias de conformación de LP aplicadas;
la figura 5 ilustra un espectro de MDCT de una trama crítica después de la aplicación de las ganancias de conformación de LP inversas, donde los picos altos por encima de fCELP son claramente visibles;
la figura 6 ilustra un espectro de MDCT de una trama crítica después de la cuantificación que solo tiene información de paso alto y que no tiene ninguna información de paso bajo;
la figura 7 ilustra un espectro de MDCT de una trama crítica después de la aplicación de las ganancias de conformación de LP inversas y el preprocesamiento del lado del codificador de la invención;
la figura 8 ilustra una realización preferida un codificador de audio para codificar una señal de audio;
la figura 9 ilustra la situación para el cálculo de la información de conformación diferente para bandas de frecuencia diferentes y el uso de la información de conformación la banda más baja para la banda más alta;
la figura 10 ilustra una realización preferida de un codificador de audio;
la figura 11 ilustra un diagrama de flujo para ilustrar la funcionalidad del detector para detectar la región espectral del pico;
la figura 12 ilustra una implementación preferida de la implementación de la condición de amplitud de banda baja;
la figura 13 ilustra una realización preferida de la implementación de la condición de distancia del pico;
la figura 14 ilustra una implementación preferida de la implementación de la condición de amplitud del pico;
la figura 15a ilustra una implementación preferida de la etapa de cuantificador y codificador;
la figura 15b ilustra un diagrama de flujo para ilustrar la operación de la etapa de cuantificador y codificador como un procesador del bucle de velocidad;
la figura 16 ilustra un procedimiento de determinación para determinar el factor de atenuación en una realización preferida; y
la figura 17 ilustra una implementación preferida para aplicar la información de conformación de la banda baja a la banda de frecuencia superior y la atenuación adicional de los valores espectrales conformados en dos etapas posteriores.
La figura 8 ilustra una realización preferida de un codificador de audio para codificar una señal de audio 403 que tiene una banda de frecuencia más baja y una banda de frecuencia superior. El codificador de audio comprende un detector 802 para detectar una región espectral del pico en la banda de frecuencia superior de la señal de audio 103. Además, el codificador de audio comprende un conformador 804 para conformar la banda de frecuencia más baja usando la información de conformación para la banda más baja y para conformar la banda de frecuencia superior usando al menos una porción de la información de conformación para la banda de frecuencia más baja. Además, el conformador se configura para atenuar adicionalmente valores espectrales en la región espectral del pico detectada en la banda de frecuencia superior.
En consecuencia, el conformador 804 realiza una clase de “conformación única” en la banda baja usando la información de conformación para la banda baja. Además, el conformador realiza adicionalmente una clase de una conformación “única” en la banda alta usando la información de conformación para la banda baja y normalmente, la banda baja de frecuencia más alta. Esta conformación “única” se realiza en algunas realizaciones en la banda alta donde no se ha detectado la región espectral del pico por el detector 802. Además, para la región espectral del pico dentro de la banda alta, una clase de una conformación “doble” se realiza, es decir, la información de conformación de la banda baja se aplica a la región espectral del pico y, adicionalmente, se aplica la atenuación adicional a la región espectral del pico.
El resultado del conformador 804 es una señal conformada 805. La señal conformada es una banda de frecuencia más baja conformada y una banda de frecuencia superior conformada, donde la banda de frecuencia superior conformada comprende la región espectral del pico. Esta señal conformada 805 se envía a una etapa de cuantificador y codificador 806 para cuantificar la banda de frecuencia más baja conformada y la banda de frecuencia superior conformada que incluye la región espectral del pico y para codificar por entropía los valores espectrales cuantificados de la banda de frecuencia más baja conformada y la banda de frecuencia superior conformada que comprende la región espectral del pico de nuevo para obtener la señal de audio codificada 814.
Preferiblemente, el codificador de audio comprende un analizador de codificación de predicción lineal 808 para derivar coeficientes de predicción lineal durante un marco de tiempo de la señal de audio mediante el análisis de un bloque de muestras de audio en el marco de tiempo. Preferiblemente, estas muestras de audio son de banda limitada para la banda de frecuencia más baja.
Adicionalmente, el conformador 804 se configura para conformar la banda de frecuencia más baja usando los coeficientes de predicción lineal como la información de conformación que se ilustra en 812 en la figura 8. Adicionalmente, el conformador 804 está configurado para usar al menos la porción de los coeficientes de predicción lineal derivados del bloque de muestras de audio de banda limitada para la banda de frecuencia más baja para conformar la banda de frecuencia superior en el marco de tiempo de la señal de audio.
Como se ilustra en la figura 9, la banda de frecuencia más baja preferiblemente está subdividida en una pluralidad de sub-bandas tales como, por ejemplo, cuatro sub-bandas SB1, SB2, SB3 y SB4. Además, tal como se ilustra esquemáticamente, el ancho de la sub-banda aumenta desde las sub-bandas inferiores hasta las superiores, es decir, la sub-banda SB4 es más amplia en frecuencia que la sub-banda SB1. En otras realizaciones, sin embargo, se pueden usar bandas que tienen un ancho de banda igual.
Las sub-bandas SB1 a SB4 se extienden hasta la frecuencia límite que es, por ejemplo, fcELP. En consecuencia, todas las sub-bandas por debajo de la frecuencia límite fCELP constituyen la banda más baja y el contenido de frecuencia por encima de la frecuencia límite constituye la banda más alta.
En particular, el analizador LPC 808 de la figura 8 normalmente calcula la información de conformación para cada sub-banda individualmente. En consecuencia, el analizador LPC 808 preferiblemente calcula cuatro clases diferentes de la información de sub-banda para las cuatro sub-bandas SB1 a SB4 de modo que cada sub-banda tiene su información de conformación asociada.
Además, la conformación se aplica mediante el conformador 804 para cada sub-banda SB1 a SB4 usando la información de conformación calculada para exactamente esta sub-banda y, de manera importante, también se realiza una conformación para la banda más alta, pero la información de conformación para la banda más alta no se calcula debido al hecho de que el analizador de predicción lineal que calcula la información de conformación recibe una banda de señal limitada de banda limitada a la banda de frecuencia más baja. No obstante, a fin de realizar una conformación para la banda de frecuencia mayor, la información de conformación para la sub-banda SB4 se usa para conformar la banda más alta. En consecuencia, el conformador 804 se configura para ponderar los coeficientes espectrales de la banda de frecuencia superior usando un factor de conformación calculado para una sub-banda más alta de la banda de frecuencia más baja. La sub-banda más alta correspondiente a SB4 en la figura 9 tiene una frecuencia central más alta entre todas las frecuencias centrales de las sub-bandas de la banda de frecuencia más baja.
La figura 11 ilustra un diagrama de flujo preferido para explicar la funcionalidad del detector 802. En particular, el detector 802 se configura para determinar una región espectral del pico en la banda de frecuencia superior, cuando al menos uno de un grupo de condiciones es válido, donde el grupo de condiciones comprende una condición de amplitud de banda baja 1102, una condición de distancia del pico 1104 y una condición de amplitud del pico 1106.
Preferiblemente, las diferentes condiciones se aplican exactamente en el orden ilustrado en la figura 11. En otras palabras, la condición de amplitud de banda baja 1102 se calcula antes de la condición de distancia del pico 1104, y la condición de distancia del pico se calcula antes de la condición de amplitud del pico 1106. En una situación en la que las tres condiciones deben ser verdaderas para detectar la región espectral de pico, se obtiene un detector eficiente desde el punto de vista computacional mediante la aplicación del procesamiento secuencial en la figura 11, donde, tan pronto como una cierta condición no es verdadera, es decir, es falsa, se detiene el proceso de detección para un cierto marco de tiempo y se determina que no se requiere una atenuación de una región espectral de pico en este marco de tiempo. Por lo tanto, cuando ya está determinado, durante un cierto marco de tiempo, que la condición de amplitud de banda baja 1102 no se cumple, es decir, es falsa, entonces el control procede a la decisión de que una atenuación de una región espectral de pico en este marco de tiempo no es no es necesaria y el procedimiento continúa sin ninguna atenuación adicional. Sin embargo, cuando el controlador determina para la condición 1102 que la misma es verdadera, se determina la segunda condición 1104. Esta configuración de distancia de pico se determina una vez más antes de la amplitud de pico 1106 de manera que el control determina que no se realiza la atenuación de la región espectral de pico, cuando la condición 1104 produce un resultado falso. Solo cuando la condición de distancia del pico 1104 tiene un resultado verdadero, se determina la tercera condición de amplitud de pico 1106.
En otras realizaciones, se pueden determinar más o menos condiciones, y se puede realizar una determinación secuencial o paralela, aunque la determinación secuencial ilustrada a modo de ejemplo en la figura 11 es preferible para ahorrar recursos computacionales que son particularmente valiosos en aplicaciones móviles que están alimentadas por baterías.
Las figuras 12, 13, 14 proporcionan realizaciones preferidas para las condiciones 1102, 1104 y 1106.
En la condición de amplitud de banda baja, se determina una amplitud espectral máxima en la banda más baja como se ilustra en el bloque 1202. Este valor es max_low. Además, en el bloque 1204, se determina una amplitud espectral máxima en la banda superior que se indica como max_high.
En el bloque 1206, los valores determinados de los bloques 1232 y 1234 se procesan preferiblemente juntos con un número predeterminado c1 a fin de obtener el resultado falso o verdadero de condición 1102. Preferiblemente, las condiciones en los bloques 1202 y 1204 se realizan antes de la conformación con la información de conformación de la banda más baja, es decir, antes del procedimiento realizado por el conformador espectral 804 o, con respecto a la figura 10, 804a.
Con respecto al número predeterminado c1 de la figura 12 usado en el bloque 1206, se prefiere un valor de 16, pero se ha comprobado que valores entre 4 y 30 también son útiles.
La figura 13 ilustra una realización preferida de la condición de distancia del pico. En el bloque 1302, se determina una primera amplitud espectral máxima en la banda más baja que se indica como max_low.
Además, se determina una primera distancia espectral como se ilustra en el bloque 1304. Esta primera distancia espectral se indica como dist_low. En particular, la primera distancia espectral es una distancia de la primera amplitud espectral máxima determinada por el bloque 1302 a partir de una frecuencia límite entre una frecuencia central de la banda de frecuencia más baja y una frecuencia central de la banda de frecuencia superior. Preferiblemente, la frecuencia límite es f_celp, pero esta frecuencia puede tener cualquier otro valor como se describió antes.
Además, el bloque 1306 determina una segunda amplitud espectral máxima en la banda superior que se llama max_high. Además, una segunda distancia espectral 1308 se determina e indica como dist_high. La segunda distancia espectral de la segunda amplitud espectral máxima de la frecuencia límite preferiblemente se determina una vez más con f_celp espectral como la frecuencia límite.
Además, en el bloque 1310, se determina si la condición de distancia del pico es verdadera, cuando la primera amplitud espectral máxima ponderada por la primera distancia espectral y ponderada por un número predeterminado que es mayor de 1 es mayor que la segunda amplitud espectral máxima ponderada por la segunda distancia espectral.
Preferiblemente, un número predeterminado c2 es igual a 4 en la realización más preferida. Se ha probado que los valores entre 1,5 y 8 son útiles.
Preferiblemente, la determinación en el bloque 1302 y 1306 se realiza después de la conformación con la información de conformación de la banda más baja, es decir, posterior al bloque, pero, obviamente, antes del bloque 804b de la figura 10.
La figura 14 ilustra una implementación preferida de la condición de amplitud del pico. En particular, el bloque 402 determina una primera amplitud espectral máxima en la banda más baja y el bloque 1404 determina una segunda amplitud espectral máxima en la banda superior donde el resultado del bloque 1402 se indica como max_low2 y el resultado del bloque 1404 se indica como max_high.
Luego, como se ilustra en el bloque 1406, la condición de amplitud del pico es verdadera, cuando la segunda amplitud espectral máxima es mayor que la primera amplitud espectral máxima ponderada por un número predeterminado c3 que es mayor de o igual a 1. c3 preferiblemente se ajusta a un valor de 1,5 o a un valor de 3 dependiendo de diferentes tasas donde, generalmente, se ha probado que los valores entre 1,0 y 5,0 son útiles.
Además, como se indica en la figura 14, la determinación en los bloques 1402 y 1404 tiene lugar después de la conformación con la información de conformación de banda baja, es decir, después del procesamiento ilustrado en el bloque 804a y antes del procesamiento ilustrado por el bloque 804b o, con respecto a la figura 17, después del bloque 1702 y antes del bloque 1704.
En otras realizaciones, la condición de amplitud del pico 1106 y, en particular, el procedimiento de la figura 14, bloque 1402 no se determina a partir del valor menor en la banda de frecuencia más baja, es decir, el valor de frecuencia más baja del espectro, sino que la determinación de la primera amplitud espectral máxima en la banda más baja se determina basándose en una porción de la banda más baja donde la porción se extiende desde una frecuencia de inicio predeterminada hasta una frecuencia máxima de la banda de frecuencia más baja, donde la frecuencia de inicio predeterminada es mayor de una frecuencia mínima de la banda de frecuencia más baja. En una realización, la frecuencia de inicio predeterminada es al menos 10% de la banda de frecuencia más baja por encima de la frecuencia mínima de la banda de frecuencia más baja o, en otras realizaciones, la frecuencia de inicio predeterminada está en una frecuencia que es igual a la mitad de una frecuencia máxima de la banda de frecuencia más baja dentro de un intervalo de tolerancia de más o menos 10% de la mitad de la frecuencia máxima.
Además, se prefiere que el tercer número predeterminado c3 dependa de una tasa de bits que ha de proporcionarse por la etapa de cuantificador/codificador, de manera que el número predeterminado es mayor para una tasa de bits más alta. En otras palabras, cuando la tasa de bits que tiene que ser proporcionada por la etapa de cuantificador y codificador 806 es alta, entonces c3 es alta, mientras que cuando la tasa de bits se debe determinar como baja, entonces el número predeterminado c3 es bajo. Cuando se considera la ecuación preferida en el bloque 1406, queda claro que es el número predeterminado superior c3, la región espectral de pico se determina más raramente. Sin embargo, cuando c3 es pequeño, entonces se determina con más frecuencia una región espectral de pico en la que hay valores espectrales para ser finalmente atenuados.
Los bloques 1202, 1204, 1402, 1404 o 1302 y 1306 siempre determinan una amplitud espectral. La determinación de la amplitud espectral se puede realizar de modo diferente. Una manera de determinación de la envolvente espectral es la determinación de un valor absoluto de un valor espectral del espectro real. De modo alternativo, la amplitud espectral puede ser una magnitud de un valor espectral complejo. En otras realizaciones, la amplitud espectral puede ser cualquier potencia del valor espectral del espectro real o cualquier potencia de una magnitud de un espectro complejo, donde la potencia es mayor de 1. Preferiblemente, la potencia es un número entero, pero se ha demostrado que las potencias de 1,5 o 2,5 adicionalmente son útiles. Preferiblemente, no obstante, se prefieren las potencias de 2 o 3.
En general, el conformador 804 se configura para atenuar al menos un valor espectral en la región espectral del pico detectada basándose en una amplitud espectral máxima en la banda de frecuencia superior y/o basándose en una amplitud espectral máxima en la banda de frecuencia más baja. En otras realizaciones, el conformador se configura para determinar la amplitud espectral máxima en una porción de la banda de frecuencia más baja, la porción que se extiende desde una frecuencia de inicio predeterminada de la banda de frecuencia más baja hasta una frecuencia máxima de la banda de frecuencia más baja. La frecuencia de inicio predeterminada es mayor de una frecuencia mínima de la banda de frecuencia más baja y preferiblemente es al menos 10% de la banda de frecuencia más baja por encima de la frecuencia mínima de la banda de frecuencia más baja o la frecuencia de inicio predeterminada preferiblemente está en la frecuencia que es igual a la mitad de una frecuencia máxima de la banda de frecuencia más baja dentro de una tolerancia de más o menos 10% de la mitad de la frecuencia máxima.
El conformador se configura además para determinar el factor de atenuación que determina la atenuación adicional, donde el factor de atenuación se deriva de la amplitud espectral máxima de la banda de frecuencia más baja multiplicada por un número predeterminado que es mayor de o igual a uno dividido por la amplitud espectral máxima de la banda de frecuencia superior. Para este fin, se hace referencia al bloque 1602 que ilustra la determinación de una amplitud espectral máxima de la banda más baja (preferiblemente después de la conformación, es decir, después del bloque 804a en la figura 10 o después del bloque 1702 de la figura 17).
Además, el conformador se configura para determinar la amplitud espectral máxima de la banda más alta, de nuevo preferiblemente después de la conformación, por ejemplo, como se realiza en el bloque 804a de la figura 10 o bloque 1702 en la figura 17. Entonces, en el bloque 1606, el factor de atenuación fac se calcula como se ilustra, donde el número predeterminado c3 se ajusta para ser mayor de o igual a 1. En realizaciones, c3 de la figura 16 es el mismo número predeterminado c3 que en la figura 14. Sin embargo, en otras realizaciones, c3 de la figura 16 se puede ajustar diferente de c3 en la figura 14. Adicionalmente, c3 en la figura 16 que influye directamente el factor de atenuación también es dependiente de la tasa de bits de modo que se fija un número predeterminado más alto c3 para que una tasa de bits más alta sea realizada por la etapa de cuantificador/codificador 806 como se ilustra en la figura 8.
La figura 17 ilustra una implementación preferida similar a la que se muestra en la figura 10 en los bloques 804a y 804b, es decir, que se realiza una conformación con la información de ganancia de banda baja aplicada a los valores espectrales por encima de la frecuencia límite tal como fCELP a fin de obtener valores espectrales conformados por encima de la frecuencia límite y adicionalmente en una etapa siguiente 1704, el factor de atenuación fac calculado por el bloque 1606 de la figura 16 se aplica en el bloque 1704 de la figura 17. En consecuencia, la figura 17 y la figura 10 ilustran una situación donde el conformador se configura para conformar los valores espectrales de la región espectral detectada basándose en una primera operación de ponderación usando una porción de la información de conformación para la banda de frecuencia más baja y una segunda operación de ponderación posterior usando una información de atenuación, es decir, el ejemplo del factor de atenuación fac.
En otras realizaciones, sin embargo, el orden de las etapas de la figura 17 se invierte de modo que la primera operación de ponderación tiene lugar usando la información de atenuación y la segunda operación de ponderación posterior tiene lugar usando al menos una porción de la información de conformación para la banda de frecuencia más baja. O, de modo alternativo, la conformación se realiza usando una operación de ponderación única usando una información de ponderación combinada que depende y se deriva de la información de atenuación por una parte y al menos una porción de la información de conformación para la banda de frecuencia más baja por la otra parte.
Como se ilustra en la figura 17, la información de atenuación adicional se aplica a todos los valores espectrales en la región espectral del pico detectada. De forma alternativa, el factor de atenuación solo se aplica a, por ejemplo, el valor espectral más alto o el grupo de valores espectrales más altos, donde los miembros del grupo pueden oscilar entre 2 y 10, por ejemplo. Además, las realizaciones también aplican el factor de atenuación a todos los valores espectrales de la banda de frecuencia superior para los cuales se ha detectado la región espectral del pico mediante el detector para un marco de tiempo de la señal de audio. En consecuencia, en esta realización, se aplica el mismo factor de atenuación a la banda de frecuencia superior entera cuando solo se ha determinado un valor espectral único como una región espectral del pico.
Cuando, durante un cierto marco, no se ha detectado la región espectral del pico, entonces la banda de frecuencia más baja y la banda de frecuencia superior se conforman mediante el conformador sin atenuación adicional. De este modo, se realiza una conmutación del marco de tiempo al marco de tiempo, donde, según la implementación, se prefiere algún tipo de suavizado de la información de atenuación.
Preferiblemente, la etapa del cuantificador y codificador comprende un procesador del bucle de velocidad como se ilustra en la figura 15a y la figura 15b. En una realización, la etapa de cuantificador y codificador 806 comprende un ponderador de ganancia global 1502, un cuantificador 1504 y un codificador de entropía tal como un codificador aritmético o de Huffman 1506. Además, el codificador de entropía 1506 proporciona, para un conjunto determinado de valores cuantificados para un marco de tiempo, una tasa de bits estimada o medida a un controlador 1508.
El controlador 1508 está configurado para recibir un criterio de terminación de bucle por una parte y/o una información de tasa de bits predeterminada por otra parte. Tan pronto como el controlador 1508 determina que no se obtiene una tasa de bits predeterminada y/o no se cumple un criterio de terminación, entonces el controlador proporciona una ganancia global ajustada al ponderador de ganancia global 1502. Entonces, el ponderador de ganancia global aplica la ganancia global ajustada a las líneas espectrales conformadas y atenuadas de un marco de tiempo. La salida ponderada de ganancia global del bloque 1502 se proporciona al cuantificador 1504 y el resultado cuantificado se proporciona al codificador de entropía 1506 que determina una vez más una tasa de bits estimada o medida para los datos ponderados con la ganancia global ajustada. En el caso de que se cumpla el criterio de terminación y/o se cumpla la tasa de bits predeterminada, entonces la señal de audio codificada se emite en la línea de salida 814. Sin embargo, cuando no se obtiene la tasa de bits predeterminada o no se cumple un criterio de terminación, entonces comienza de nuevo el bucle. Esto se ilustra con más detalle en la figura 15b.
Cuando el controlador 1508 determina que la tasa de bits es demasiado alta como se ilustra en el bloque 1510, entonces aumenta una ganancia global como se ilustra en el bloque 1512. En consecuencia, todas las líneas espectrales conformadas y atenuadas son más pequeñas debido que se dividen por la ganancia global aumentada y el cuantificador luego cuantifica los valores espectrales menores de modo que el codificador de entropía genera un número menor de bits requeridos para este marco de tiempo. En consecuencia, los procedimientos de ponderación, cuantificación y codificación se realizan con la ganancia global ajustada como se ilustra en el bloque 1514 en la figura 15b, y entonces una vez más se determina si la tasa de bits es demasiado alta. Si la tasa de bits es todavía demasiado alta, entonces se realizan de nuevo los bloques 1512 y 1514. Cuando, sin embargo, se determina que la tasa de bits no es demasiado alta, el control procede a la etapa 1516 que describe si se cumple un criterio de terminación. Cuando se cumple el criterio de terminación, el bucle de velocidad se detiene y la ganancia global final se introduce adicionalmente en la señal codificada a través de una interfaz de salida tal como la interfaz de salida 1014 de la figura 10.
Sin embargo, cuando se determina que el criterio de terminación no se cumple, entonces se disminuye la ganancia global como se ilustra en el bloque 1518, de manera que, al final, se utiliza la tasa de bits máxima permitida. Esto asegura que los marcos de tiempo que son fáciles de codificar están codificados con una mayor precisión, es decir, con menos pérdida. Por lo tanto, para tales casos, la ganancia global disminuye tal como se ilustra en el bloque 1518 y la etapa 1514 se realiza con la ganancia global disminuida y se realiza la etapa 1510 a fin de ver si la tasa de bits resultante es demasiado alta o no.
Naturalmente, la implementación específica en relación con el aumento de la ganancia global o la disminución del incremento se puede ajustar según sea necesario. Adicionalmente, el controlador 1508 se puede implementar para tener bloques 1510, 1512 y 1514 o para tener bloques 1510, 1516, 1518 y 1514. De este modo, según la implementación, y también según el valor de partida para la ganancia global, el procedimiento puede ser tal que se inicia desde una ganancia global muy alta hasta que se encuentra la ganancia global más baja que todavía cumple los requisitos de la tasa de bits. Por otra parte, el procedimiento se puede realizar de tal manera que se inicia a partir de una ganancia global relativamente baja y la ganancia global se incrementa hasta que se obtiene una tasa de bits permisible. Adicionalmente, como se ilustra en la figura 15b, incluso se puede aplicar también una mezcla entre ambos procedimientos.
La figura 10 ilustra la incrustación del codificador de audio de la invención que consiste en los bloques 802, 804a, 804b y 806 dentro de un escenario de codificador de dominio de frecuencia/dominio de tiempo conmutado. .
En particular, el codificador de audio comprende un procesador común. El procesador común consiste en un controlador ACELP/TCX 1004 y el limitador de banda, tal como un remuestreador 1006 y un analizador LPC 808. Esto se ilustra mediante las cajas sombreadas indicadas por 1002.
Además, el limitador de banda alimenta el analizador de LPC que ya se ha discutido con respecto a la figura 8. A continuación, la información de conformación LPC generada por el analizador LPC 808 se envía a un codificador CELP 1008 y la salida del codificador CELP 1008 se introduce en una interfaz de salida 1014 que genera la señal finalmente codificada 1020. Además, la rama de codificación de dominio de tiempo que consiste en el codificador 1008 comprende adicionalmente un codificador de extensión de ancho de banda de dominio del tiempo 1010 que proporciona información y, típicamente, información paramétrica tal como información de la envolvente espectral para al menos la banda alta de la entrada de señal de audio de banda completa en la entrada 1001. Preferiblemente, la banda alta procesada por el codificador de extensión del ancho de banda de dominio de tiempo 1010 es una banda que comienza en la frecuencia límite que también es usada por el limitador de banda 1006. De este modo, el limitador de banda realiza un filtrado de paso bajo para obtener la banda más baja y la banda alta filtrada por el limitador de banda de paso bajo 1006 es procesada por el codificador de extensión del ancho de banda de dominio de tiempo 1010.
Por otra parte, el dominio espectral o ramificación de codificación TCX comprende un convertidor del espectro de tiempo 1012 y, a modo de ejemplo, un enmascaramiento tonal como se ha discutido anteriormente con el fin de obtener un procesamiento del codificador de llenado de intervalo.
A continuación, el resultado del convertidor de espectro de tiempo 1012 y el procesamiento de enmascaramiento tonal opcional adicional se introducen en un conformador espectral 804a y el resultado del conformador espectral 804a se introduce en un atenuador 804b. El atenuador 804b está controlado por el detector 802 que realiza una detección usando los datos del dominio del tiempo o usando la salida del bloque del convertidor del espectro de tiempo 1012 como se ilustra en 1022. Los bloques 804a y 804b implementan juntos el conformador 804 de la figura 8 como se ha discutido anteriormente. El resultado del bloque 804 se introduce en la etapa de cuantificador y codificador 806, es decir, en una cierta realización, controlada por una tasa de bits predeterminada. Adicionalmente, cuando los números predeterminados aplicados por el detector también dependen de la tasa de bits predeterminada, entonces la tasa de bits predeterminada también se introduce en el detector 802 (no mostrado en la figura 10).
En consecuencia, la señal codificada 1020 recibe datos de la etapa de cuantificador y codificador, información de control del controlador 1004, información del codificador CELP 1008 e información del codificador de extensión del ancho de banda de dominio de tiempo 1010.
Posteriormente, las realizaciones preferidas de la presente invención se discuten incluso en más detalle.
Una opción que ahorra interoperabilidad y compatibilidad con versiones anteriores a las implementaciones existentes es realizar un preprocesamiento del lado del codificador. El algoritmo, como se explica posteriormente, analiza el espectro MDCT. En caso de que los componentes de señal significativos inferiores a fCELP estén presentes y se encuentren picos altos por encima de fCELP, que potencialmente destruyen la codificación del espectro completo en el bucle de velocidad, estos picos por encima de fCELP se atenúan. Aunque la atenuación no se puede revertir en el lado del decodificador, la señal decodificada resultante es más agradable de forma perceptualmente significativa que antes, en donde grandes partes del espectro fueron eliminadas por completo.
La atenuación reduce el foco del bucle de velocidad sobre los picos por encima de fCELP y permite que los coeficientes de MDCT de baja frecuencia significativa sobrevivan al bucle de velocidad.
El siguiente algoritmo describe el preprocesamiento del lado del codificador:
1) Detección del contenido de la banda baja (por ejemplo, 1102):
La detección del contenido de banda baja analiza si están presentes porciones significativas de señal de banda baja. Para esto, se buscan la amplitud máxima del espectro MDCT por debajo y por encima de fCELP en el espectro MDCT antes de la aplicación de ganancias de conformación LPC inversa. El procedimiento de búsqueda devuelve los siguientes valores:
a) max_low_pre: el coeficiente MDCT máximo por debajo de fCELP, evaluado en el espectro de valores absolutos antes de la aplicación de ganancias de conformación LPC inversa
b) max_high_pre: el coeficiente MDCT máximo por encima de fCELP, evaluado en el espectro de valores absolutos antes de la aplicación de ganancias de conformación inversa LPC. Para la decisión, se evalúa la siguiente condición:
Condición 1: c1 * max_low_pre > max_high_pre
Si la Condición 1 es verdadera, se asume una cantidad significativa de contenido de banda baja y continúa el preprocesamiento; si la Condición 1 es falsa, el preprocesamiento se interrumpe. Esto asegura que no se aplica ningún daño a señales de banda alta solamente, por ejemplo, un barrido senoidal cuando está por encima de fCELP.
Pseudo-código:
max_low_pre = 0;
para (i=0; i<LTc x (CELP);i++)
{
tmp = fabs(XM(i));
si (tmp > max_low_pre)
{
max_low_pre = tmp;
}
}
max_high_pre = 0;
para (i=0; í<Lt c x (bw) - Lt c x (c e l p );i++)
{
tmp = fabs(XM(LTCX(CELP) i));
si (tmp > max_high_pre)
{
max_high_pre = tmp;
}
}
si (c1 * max_low_pre > max_high_pre)
{
/* continuar con el preprocesamiento */
}
donde
Xm es el espectro MDCT antes de la aplicación de la conformación de ganancia LPC inversa, Ltcx(CELP) es el número de coeficientes de MCDT hasta fCELP
Ltcx(BW) es el número de coeficientes de MCDT para el espectro MDCT completo.
En un ejemplo de implementación c1 se ajusta a 16, y fabs retorna al valor absoluto.
) Evaluación de métrica pico-distancia (por ejemplo, 1104):
Una métrica de pico-distancia analiza el impacto de los picos espectrales por encima de fcELP en el codificador aritmético. Por lo tanto, la amplitud máxima del espectro MDCT por debajo y por encima de fcELP se busca en el espectro MDCT después de la aplicación de ganancias de conformación LPC inversa, es decir, en el dominio donde también se aplica el codificador aritmético. Además de la amplitud máxima, también se evalúa la distancia desde fcELP. El procedimiento de búsqueda devuelve los siguientes valores:
a) max_low: el coeficiente MCDT máximo por debajo de fcELP, evaluado en el espectro de valores absolutos después de la aplicación de ganancias de conformación de LPC inversa
b) dist_low: la distancia de max_low de fcELP
c) max_high: el coeficiente MCDT máximo por encima de fcELP, evaluado en el espectro de valores absolutos después de la aplicación de las ganancias de conformación de LPC inversa d) dist_high: la distancia de max_high de fcELP
Para la decisión, se evalúa la siguiente condición:
Condición 2: c2 * dist_high * max_high > dist_low * max_low
Si la Condición 2 es verdadera, se asume una tensión significativa para el codificador aritmético, debido a un pico espectral muy alto o una alta frecuencia de este pico. El pico alto dominará el proceso de codificación en el bucle de velocidad, la alta frecuencia penalizará al codificador aritmético, ya que el codificador aritmético siempre se ejecuta de frecuencias bajas a altas, es decir, las frecuencias más altas son ineficientes para codificar. Si la Condición 2 es verdadera, se continúa con el preprocesamiento. Si la Condición 2 es falsa, el preprocesamiento se interrumpe.
max_low = 0;
dist_low = 0;
para (i=0; í<Ltcx(ceLp); i++)
{
tmp = fabs ( ^ M (LTcx(celp) - 1-i));
si (tmp > max_low)
{
max_low = tmp;
dist_low = i;
}
}
max_high = 0;
dist_high = 0;
para (i=0; í<Ltcx(bw)- Ltcx(celp); i++)
{
tmp = fabs (^M (LTcx(celp) i));
si (tmp > max_high)
{
max_high = tmp;
dist_high = i;
}
}
si (c2 * dist_high * max_high > dist_low * max_low)
{
/* continuar con el preprocesamiento */
}
donde
% Mes el espectro MDCT después de la aplicación de la conformación de ganancia LPC inversa, Ltcx(CELP) es el número de coeficientes de MCDT hasta fcELP
Ltcx(BW) es el número de coeficientes de MCDT para el espectro MDCT completo
En un ejemplo de implementación c2 se ajusta a 4.
) Comparación de la amplitud del pico (por ejemplo, 1106):
Finalmente, se comparan las amplitudes de pico en regiones espectrales psicoacústicamente similares. Por lo tanto, la amplitud máxima del espectro MDCT por debajo y por encima de fcELP se busca en el espectro MDCT después de la aplicación de ganancias de conformación LPC inversa. La amplitud máxima del espectro MDCT por debajo de fcELP no se busca en todo el espectro, sino que solo comienza con fbajo> 0 Hz. Esto es para descartar las frecuencias más bajas, que son psicoacústicamente más importantes y usualmente tienen la mayor amplitud después de la aplicación de ganancias de conformación LPC inversa, y solo para comparar componentes con una importancia psicoacústica similar. El procedimiento de búsqueda devuelve los siguientes valores:
a) max_low2: el coeficiente MCDT máximo por debajo de fcELP, evaluado en el espectro de valores absolutos después de la aplicación de las ganancias de conformación de LPC inversa a partir de fbajo b) max_high: el coeficiente MCDT máximo por encima de fcELP, evaluado en el espectro de valores absolutos después de la aplicación de las ganancias de conformación de LPC inversa
Para la decisión, se evalúa la siguiente condición:
Condición 3: max_high > c3 * max_low2
Si la condición 3 es verdadera, se asumen coeficientes espectrales por encima de fcELP, que tienen amplitudes significativamente mayores que exactamente por debajo de fcELP, y que se asumen costosas de codificar. La constante c3 define una ganancia máxima, que es un parámetro de ajuste. Si la Condición 2 es verdadera, se continúa con el preprocesamiento. Si la Condición 2 es falsa, el preprocesamiento se interrumpe.
Pseudo-código:
max_low2 = 0;
para (i=Llow; í<Ltcx(ceLp); i++)
{
tmp = fabs(^M(i));
si (tmp > max_low2)
{
max_low2 = tmp;
}
}
max_high = 0;
para (i=0; í<Lt c x (bw) -Lt c x (c e l p );i++)
{
tmp = fabs(^M(LTcx(celp)+ i));
si (tmp > max_high)
{
max_high = tmp;
}
}
si (max_high >c3 * max_low2)
{
/* continuar con el preprocesamiento */
}
donde
Lbajo es una compensación correspondiente para fbajo
X Mes el espectro MDCT después de la aplicación de la conformación de ganancia LPC inversa,
Ltcx(CELP) es el número de coeficientes de MCDT hasta fCELP
Ltcx(BW) es el número de coeficientes de MCDT para el espectro MDCT completo En un ejemplo de implementación fbajo se ajusta a Ltcx(CELP)/2. En un ejemplo de implementación c3 se ajusta a 1,5 para las tasas de bits bajas y se ajusta a 3,0 para las tasas de bits altas.
) Atenuación de picos altos por encima de fCELP (por ejemplo, figuras 16 y 17):
Si se halla que la condición 1-3 es verdadera, se aplica una atenuación de los picos por encima de fCELP. La atenuación permite una ganancia máxima c3 en comparación con una región espectral psicoacústicamente similar. El factor de atenuación se calcula de la siguiente manera:
attenuation_factor = c3 * max_low2/max_high
El factor de atenuación posteriormente se aplica a todos los coeficientes de MCDT por encima de fCELP. ) Pseudo-código:
si ( (c1 * max_low_pre >max_high_pre) &&
(c2* dist_high * max_high >dist_low * max_low) &&
(max_high >c3 * max_low2)
)
{
fac = c3* max_low2/max_high;
para (i = Lt c x (c e l p );i< Lt c x (bw);i++)
{
* M(i) = * m(í) * fac;
}
}
donde
X m es el espectro MDCT después de la aplicación de la conformación de ganancia LPC inversa,
Ltcx(CELP) es el número de coeficientes de MCDT hasta fcELP
Ltcx(BW) es el número de coeficientes de MCDT para el espectro MDCT completo
El preprocesamiento del lado del codificador reduce significativamente la tensión para el bucle de codificación mientras que aún se mantienen los coeficientes espectrales relevantes por encima de fcELP.
La figura 7 ilustra un espectro de MDCT de una trama crítica después de la aplicación de ganancias de conformación de LPC inversa y el preprocesamiento del lado del codificador anteriormente descritos. Según los valores numéricos elegidos para c1, c2 y c3, el espectro resultante, que posteriormente se introduce en el bucle de velocidad, podría tener el aspecto anterior. Se reducen significativamente, pero todavía es probable que sobrevivan al bucle de velocidad, sin consumir todos los bits disponibles.
Aunque algunos aspectos se han descrito en el contexto de un aparato, está claro que estos aspectos también representan una descripción del método correspondiente, en el que un bloque o dispositivo corresponde a una etapa del método o una característica de una etapa del método. Análogamente, los aspectos descritos en el contexto de una etapa del método también representan una descripción de un bloque o elemento o característica correspondiente de un aparato correspondiente. Algunas o todas las etapas del método pueden ser ejecutados por (o usando) un aparato de hardware, como por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, una o más de las etapas del método más importantes se pueden ejecutar mediante tal aparato.
La señal de audio codificada de la invención se puede almacenar en un medio de almacenamiento digital o se puede transmitir en un medio de transmisión tal como un medio de transmisión inalámbrico o un medio de transmisión cableado, tal como Internet. .
Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención se pueden implementar en hardware o en software. La implementación se puede realizar usando un medio de almacenamiento no transitorio o un medio de almacenamiento digital, por ejemplo, un disquete, un DVD, un Blu-Ray, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria FLASH, que tienen señales de control legibles electrónicamente almacenadas en ellas, que actúan conjuntamente (o son capaces de actuar conjuntamente) con un sistema informático programable de tal manera que se realiza el método respectivo. Por lo tanto, el medio de almacenamiento digital puede ser legible por ordenador.
Algunas realizaciones según la invención comprenden un soporte de datos que tiene señales de control legibles electrónicamente, que son capaces de actuar conjuntamente con un sistema informático programable, de manera que se lleva a cabo uno de los métodos descritos en el presente documento.
Generalmente, las realizaciones de la presente invención se pueden implementar como un producto de programa informático con un código de programa, estando el código de programa operativo para realizar uno de los métodos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa, por ejemplo, se puede almacenar en un soporte legible por máquina.
Otras realizaciones comprenden el programa informático para realizar uno de los métodos descritos en el presente documento, almacenados en un soporte legible por máquina.
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 descritos en el presente documento, cuando el programa informático se ejecuta en un ordenador.
Una realización adicional de los métodos de la invención es, por lo tanto, un soporte 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. El soporte de datos, el medio de almacenamiento digital o el medio grabado normalmente son tangibles y/o no transitorios.
Una realización adicional del método de la invención es, por lo tanto, un flujo de datos o una secuencia de señales que representan el programa informático para llevar a cabo uno de los métodos descritos en el presente documento. El flujo de datos o la secuencia de señales, por ejemplo, se puede configurar para transferirse a través de una conexión de comunicación de datos, por ejemplo, a través de Internet.
Una realización adicional 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.
Una realización adicional comprende un ordenador que tiene instalado en el mismo el programa informático para realizar uno de los métodos descritos en el presente documento.
Una realización adicional según la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, de forma electrónica u óptica) un programa informático para realizar uno de los métodos descritos en el presente documento a un receptor. El receptor puede ser, por ejemplo, un ordenador, un dispositivo móvil, un dispositivo de memoria o similares. El aparato o sistema puede comprender, por ejemplo, un servidor de archivos para transferir el programa informático al receptor.
En algunas realizaciones, se puede usar un dispositivo lógico programable (por ejemplo, una matriz de puertas de campo programable) para realizar algunas o todas las funcionalidades de los métodos descritos en el presente documento. En algunas realizaciones, una matriz de puertas de campo programable puede actuar conjuntamente con un microprocesador con el fin de realizar uno de los métodos descritos en el presente documento. Generalmente, los métodos se realizan preferiblemente por cualquier aparato de hardware.
El aparato descrito en el presente documento se puede implementar usando un aparato de hardware, o usando un ordenador, o usando una combinación de un aparato de hardware y un ordenador.
El aparato descrito en el presente documento, o cualquiera de los componentes del aparato descrito en el presente documento, se puede implementar al menos parcialmente en hardware y/o en software.
Los métodos descritos en el presente documento se pueden realizar usando un aparato de hardware, o usando un ordenador, o usando una combinación de un aparato de hardware y un ordenador.
Los métodos descritos en el presente documento, o cualquiera de los componentes del aparato descrito en el presente documento, se pueden realizar al menos parcialmente por hardware y/o por software.
Las realizaciones descritas anteriormente son meramente ilustrativas para los principios de la presente invención. Se entiende que las modificaciones y variaciones de las disposiciones y los detalles descritos en el presente documento serán evidentes para los expertos en la técnica. Por lo tanto, la intención está limitada solo por el alcance de las reivindicaciones de patente inminentes y no por los detalles específicos presentados a modo de descripción y explicación de las realizaciones en el presente documento.
En la descripción anterior, se puede observar que varias características se agrupan juntas en realizaciones con el propósito de racionalizar la divulgación. Este método de divulgación no se debe interpretar como reflejo de una intención de que las realizaciones reivindicadas requieran más características que las que se mencionan expresamente en cada reivindicación. Más bien, como las siguientes reivindicaciones reflejan, el contenido de la invención se puede hallar en menos de todas las características de una única realización dada a conocer. Por lo tanto, las siguientes reivindicaciones se incorporan por el presente documento a la descripción detallada, donde cada reivindicación puede estar por sí sola como una realización separada. Si bien cada reivindicación puede estar por sí sola como una realización separada, se debe observar que - aunque una reivindicación dependiente se puede referir en las reivindicaciones a una combinación específica con una o más reivindicaciones adicionales - otras realizaciones también pueden incluir una combinación de la reivindicación dependiente con el contenido de cada reivindicación dependiente adicional o una combinación de cada característica con otras reivindicaciones dependientes o independientes. En el presente documento se proponen tales combinaciones a menos que se indique que no se pretende una combinación específica. Además, se pretende incluir también las características de una reivindicación a cualquier otra reivindicación independiente, incluso si esta reivindicación no se hace directamente dependiente de la reivindicación independiente.
Además, se debe observar que los métodos dados a conocer en la memoria descriptiva o en las reivindicaciones pueden implementarse mediante un dispositivo que tiene medios para realizar cada una de las etapas respectivas de estos métodos.
Además, en algunas realizaciones, una etapa única puede incluir o se puede descomponer en subetapas múltiples. Dichas subetapas se pueden incluir y formar parte de la divulgación de este etapa única a menos que se excluyan explícitamente.
Referencias
[1] 3GPP TS 26.445 - Codec for Enhanced Voice Services (EVS); Detailed algorithmic description Anexo
Posteriormente, se indican las porciones de la versión estándar anterior 13 (3GPP TS 26.445 - Codee for Enhanced Voice Services (EVS); Detailed algorithmic description). La sección 5.3..3.2.3 describe una realización preferida del conformador, la sección 5.3.3.2.7 describe una realización preferida del cuantificador de la etapa de cuantificador y codificador, y la sección 5.3.3.2.8 describe un codificador aritmético en una realización preferida del codificador en la etapa de cuantificador y codificador, en el que el bucle de velocidad preferido para la tasa de bits constante y la ganancia global se describe en la sección 5.3.2.8.I.2. Las características IGF de la realización preferida se describen en la sección 5.3.3.2.11., donde se hace referencia específica a la sección 5.3.3.2.11.5.1 Cálculo del enmascaramiento tonal IGF.
5.3.3.2.3 Conformación de LPC en el dominio MDCT
5.3.3.2.3.1 Principio general
La conformación LPC se realiza en el dominio MDCT mediante la aplicación de factores de ganancia calculados a
partir de coeficientes de filtro LP cuantificados ponderados al espectro MDCT. La tasa de muestreo de entrada sr'np ,
en la que se basa la transformada MDCT, puede ser mayor que la tasa de muestreo CELP srcelp , para la que se calculan los coeficientes LP. Por lo tanto, las ganancias de conformación de LPC solo se pueden calcular para la parte del espectro MDCT correspondiente al intervalo de frecuencias CELP. Para la parte restante del espectro (si existe) se utiliza la ganancia de conformación de la banda de frecuencia más alta.
5.3.3.2.3.2 Cálculo de las ganancias de conformación de LPC
Para calcular las 64 ganancias de conformación de LPC los coeficientes de filtro LP ponderados a primero se transforman en el dominio de frecuencia usando DFT apilado de forma extraña de longitud 128:
Figure imgf000019_0001
Las ganancias de conformación de LPC gLPC luego se calculan como los valores absolutos recíprocos de X lpc :
1
S ip c (b)- b = 0...63 (2)
\X LPc(b\
5.3.3.2.3.3 Aplicación de las ganancias de conformación de LPC al espectro MDCT
X
Los coeficientes de MCDT M correspondientes al intervalo de frecuencia de CELP se agrupan en 64 sub-bandas. Los coeficientes de cada sub-banda se multiplican por la recíproca de la correspondiente ganancia de conformación de LPC para obtener el espectro conformado M . Si el número de intervalos de MDCT correspondiente al intervalo L(celP)
de frecuencia de CELP TCX no es un múltiplo de 64, el ancho de las sub-bandas varía en un intervalo tal como se define por el siguiente pseudo-código:
Figure imgf000019_0002
además si r < 32 entonces
s =|_64/ r J wi = w w -2 = w 1
además
s =_64/(64—r)J wi = w +1 w2 = w
i = 0
para j = o. ,63
{
si j mod 5 ^ 0 entonces
w = Wi
además
w = W2
Figure imgf000020_0001
Los restantes coeficientes de MCDT por encima del intervalo de frecuencia de CELP (si hubiera) se multiplican por la recíproca de la última ganancia de conformación de LPC:
Figure imgf000020_0002
(3 )
5.3.3.2.4 Acentuación de baja frecuencia adaptativo
5.3.3.2.4.1 Principio general
El propósito de los procedimientos de desacentuación y acentuación de baja frecuencia adaptativos (ALFE) es mejorar el rendimiento subjetivo del códec TCX del dominio de frecuencia a bajas frecuencias. Con este fin, las líneas espectrales MDCT de baja frecuencia se amplifican antes de la cuantificación en el codificador, de este modo aumenta su SNR de cuantificación, y este refuerzo se deshace antes del procedimiento MDCT inverso en los decodificadores internos y externos para evitar artefactos de amplificación.
Hay dos algoritmos ALFE diferentes que se seleccionan consistentemente en codificador y decodificador basándose en la elección del algoritmo de codificación aritmética y la tasa de bits. El algoritmo ALFE 1 se utiliza a 9,6 kbps (codificador aritmético basado en envolvente) y a 48 kbps y superior (codificador aritmético basado en contexto). El algoritmo ALFE 2 se utiliza desde 13,2 hasta incl. 32 kbps. En el codificador, el ALFE funciona en las líneas espectrales en el vector x [] directamente antes (algoritmo 1) o después (algoritmo 2) de cada cuantificación MDCT, que se ejecuta varias veces dentro de un bucle de velocidad en el caso del codificador aritmético basado en contexto (ver la subcláusula 5.3.3.2.8.1).
5.3.3.2.4.2 Algoritmo de acentuación adaptativo 1
El algoritmo ALFE 1 funciona basándose en las ganancias de la banda de frecuencia LPC, lpcGains [ ]. Primero, el mínimo y el máximo de las nueve primeras ganancias -las ganancias de baja frecuencia (LF) - se encuentran usando operaciones de comparación ejecutadas dentro de un bucle sobre los índices de ganancia de 0 a 8.
Entonces, si la relación entre el mínimo y el máximo supera un umbral de 1/32, se realiza un refuerzo gradual de las líneas más bajas en x, de modo que la primera línea (DC) se amplifica por (32 min/max)025 y la 33ra línea no se amplifica:
tmp = 32 * min
si ((max < tmp) && (max > 0))
{
fac = tmp = pow(tmp/max, 1/128)
para (i = 31; i >= 0; i— )
{ /* refuerzo gradual de 32 líneas más bajas */
x[i] *= fac
fac *= tmp
}
}
5.3.3.2.4.3 Algoritmo de acentuación adaptativo 2
El algoritmo ALFE 2, a diferencia del algoritmo 1, no funciona basándose en las ganancias LPC transmitidas, sino que se señaliza mediante modificaciones a las líneas MDCT de frecuencia baja (LF) cuantificadas. El procedimiento se divide en cinco etapas consecutivas:
• Etapa 1: primero hallar la primera magnitud máxima en Índex i_max en el cuarto espectral inferior
Figure imgf000021_0001
que utiliza invGain = 2/grcx y modifica el máximo: xq[i_max] = (xq[i_max] < 0) ? -2 : 2
• Etapa 2: luego comprimir el intervalo de valores del total de x[i] hasta i_max mediante la recuantificación de todas las líneas en k = 0 ... i_max-1 como en la subcláusula que describe la cuantificación pero que usa invGain en vez de grcx como el factor de ganancia global.
• Etapa 3: primero hallar la magnitud máxima por debajo de i_max (-k ~ 0 te ¿ 14> que es la mitad de alta si i_max> -1 usando invGain = 4/grcx y que modifica el máximo: xq[i_max] = (xq[i_max] < 0) ? -2 : 2
• Etapa 4: comprimir de nuevo y cuantificar el total de [i] hasta la mitad de la altura i_max hallada en la etapa anterior, como en la etapa 2
• Etapa 5: terminar y siempre comprimir dos líneas en el último i_max hallado, es decir, en k = i_max 1, i_max 2, de nuevo utilizando invGain = 2/ grcx si el i_max inicial hallado en la etapa 1 es mayor que -1 o utilizando invGain = 4/ grcx de lo contrario. Todos los i_max se inicializan en -1. Para obtener más detalles, por favor, véase AdaptLowFreqEmph() en tcx_utils_enc.c.
5.3.3.2.5 Medición del ruido del espectro en el espectro de potencia
Para la orientación de la cuantificación en el proceso de codificación TXC, se determina una medición de ruido entre 0 (tonal) y 1 (tipo ruido) para cada línea espectral MDCT por encima de una frecuencia especificada basada en el espectro de potencia de la transformada actual. El espectro de potencia X p (k ) se calcula a partir de los coeficientes
MDCT X m (k ) y los coeficientes MDST X s(k ) en el mismo segmento de señal de dominio de tiempo y con la misma operación de ventana
Figure imgf000021_0002
Cada medición de ruido en noise agS ) se calcula entonces de la siguiente manera. En primer lugar, si la longitud de la transformada cambió (por ejemplo, después de una transformada de transición TCX después de una trama ACELP) o si la trama anterior no usó la codificación TCX20 (por ejemplo, en caso de que se usara una longitud de (bw) _ y
transformada más corta en la última trama), todos noiseFla8 Ík ) hasta TCX se ajustan de nuevo a cero. La línea
de inicio de la medición de ruido kstart se inicializa según la siguiente tabla 1.
Tabla 1: Tabla de inicialización kstart en las mediciones de ruido
Figure imgf000021_0004
Para las transiciones ACELP a TCX, kstart se escala en 1,25. Entonces si la línea de inicio de la medición de ruido (bw)
k„ es menor de TCX , la noiseFla8sk) en y por encima de kstart se derivan recursivamente de las sumas de corridas de las líneas espectrales de potencia:
Figure imgf000021_0003
1 si s(k) > (1.75-0.5 -noiseFlagi(k))-c(k)
uoiseF'ag^k) =
Figure imgf000022_0001
0 de otra manera
Además, a cada tiempo noiseFlag(k) se da el valor cero en el bucle anterior, lastTone variable se ajusta a k. Las 7 líneas superiores se tratan por separado ya que s ( k ) no se puede actualizar más (c(k), sin embargo, se calcula como antes):
Figure imgf000022_0002
k — Á bw
La línea más alta en k — l tc x) - 1se define como que es de tipo ruido, en consecuencia noiseFlag^líjbWx -1) -1 Finalmente, si lastTone variable anterior (que se inicializó a cero) es mayor de cero, entonces noiseFlag(lastTone+1) — 0. Cabe señalar que este procedimiento solo se lleva a cabo en TCX20, no en otros modos
5.3.3.2.6 Detector del factor de paso bajo
Un factor de paso bajo Clpf se determina basándose en el espectro de potencia para todas las tasas de bits por debajo de 32,0 kbps. En consecuencia, el espectro de potencia X p (k ) se compara iterativamente contra un umbral
Figure imgf000022_0003
las ventanas de transición ACELP a MDCT. La iteración se detiene tan pronto como X p (k) > tipf
cln f cl ü f 0.3 • cp f p re v + 0.7 • (k + 1 ) / i T C X ) c El factor de paso bajo p determina como pp p , donde lpf’prev es el último factor de paso bajo determinado. En la puesta en marcha del codificador, Clpf’prev se ajusta a 1,0. El factor de paso bajo Clpf se usa para determinar el intervalo de detención del llenado de ruido (véase la subcláusula 5.3.3.2.10.2).
5.3.3.2.7 Cuantificador uniforme con zona muerta adaptativa
Para una cuantificación uniforme del espectro MDCT X X M después o antes del ALFE (dependiendo del algoritmo de acentuación aplicado, véase la subcláusula 5.3.3.2.4.1), los coeficientes se dividen primero por la ganancia global gTCX (véase la subcláusula 5.3.3.2.8.1.1), que controla el tamaño de la etapa de cuantificación. Los resultados luego se redondean a cero con un desplazamiento de redondeo que se adapta para cada coeficiente basado en la magnitud del coeficiente (relativa a gTCX ) y la tonalidad (como se define por noiseFlagSk) en la subcláusula 5.3.3.2.5). Para líneas espectrales de alta frecuencia con tonalidad y magnitud bajas, se utiliza un desplazamiento de redondeado de cero, mientras que para todas las otras líneas espectrales se emplea un desplazamiento de 0,375. Más específicamente, se ejecuta el siguiente algoritmo.
k — Ábw) -A partir del coeficiente de MDCT más alto codificado en el índice k — LTCX se ajustó X m (k ) — 0 y disminución
k k en 1 si mpre que la condición n o ise F la g (k ) > 0 y X M ( k ) / gTCX < 1
e se evalúa como verdadera. Entonces hacia abajo de la primera línea en el índice k - 0 donde esta condición no se cumple (lo cual está garantizado desde )noiseFlags(k)=0), se realizan el redondeado hacia cero con un desplazamiento de redondeo de 0,375 y la limitación de los valores de número entero resultantes en el intervalo de - 32768 a 32767:
Figure imgf000022_0004
k = Abw) con k — 0..k' Finalmente, todos los coeficientes cuantificados de X m (k ) en y por encima de TCX se ajustan a cero
5.3.3.2.8 Codificador aritmético
Los coeficientes espectrales cuantificados se codifican sin ruido mediante una codificación de entropía y más particularmente mediante una codificación aritmética.
La codificación aritmética utiliza probabilidades de precisión de 14 bits para calcular su código. La distribución de probabilidad del alfabeto se puede derivar de diferentes maneras. A tasas bajas, se deriva de la envolvente de LPC, mientras que a altas tasas se deriva del contexto pasado. En ambos casos, se puede añadir un modelo armónico para refinar el modelo de probabilidades.
El siguiente pseudo-código describe la rutina de codificación aritmética, que se utiliza para codificar cualquier símbolo asociado con un modelo de probabilidad. El modelo de probabilidad está representado por una tabla de frecuencia acumulativa cum_freq[]. La derivación del modelo de probabilidad se describe en las siguientes subcláusulas.
/* variables globales */
bajo
alto
bits to follow
ar_encode(symbol, cum_freq[])
{
si (ari_first_symbol()) {
bajo = 0;
alto = 65535;
bits_to_follow = 0;
}
intervalo = alto-bajo+1;
si (símbolo > 0) {
alto = bajo ((range*cum_freq[symbol-1])>>14) - 1;
}
bajo = ((range*cum_freq[symbol-1])>>14) - 1;
para (;;) {
si (alto < 32768 ) {
write_bit(0);
mientras que ( bits_to_follow ) {
write_bit(1);
bits_to_follow— ;
}
}
además si (bajo >= 32768 ) {
write_bit(1)
mientras que ( bits_to_follow ) {
write_bit(0);
bits_to_follow— ;
}
bajo -= 32768;
alto -= 32768;
}
además si ( (bajo >= 16384) && (alto < 49152) ) {
bits_to_follow = 1;
bajo -= 16384;
alto -= 16384;
}
además break;
bajo = bajo;
alto = alto+1;
}
si (ari_last_symbol()) /* flush bits */
si ( bajo < 16384 ) {
write_bit(0);
mientras que ( bits_to_follow > 0) {
write_bit(1);
bits_to_follow— ;
}
} además {
write_bit(1);
mientras que ( bits_to_follow > 0) {
write_bit(0);
bits_to_follow— ;
}
}
}
}
Las funciones auxiliares ari_first_symbol() y ari_last_symbol() detectan el primer símbolo y el último símbolo de la palabra de código generada respectivamente.
5.3.3.2.8.1 Códec aritmético basado en el contexto
5.3.3.2.8.1.1 Estimador de ganancia global
La estimación de la ganancia global gTCX para la trama TCX se realiza en dos etapas iterativas. La primera estimación considera una ganancia de SNR de 6dB por muestra por bit de SQ. La segunda estimación refina la estimación teniendo en cuenta la codificación de entropía.
La energía de cada bloque de 4 coeficientes se calcula primero:
Figure imgf000024_0001
Una búsqueda de bisección se realiza con una resolución final de 0,125dB:
Inicialización: ajustar fac = desplazamiento = 12.8 y blanco = 0.15(target_bits - L/16)
Iteración: realizar el siguiente bloque de operaciones 10 veces
1 - fac=fac/2
2 - desplazamiento = desplazamiento - fac
Figure imgf000024_0002
3 - si (ener>target) entonces desplazamiento=desplazamiento+fac
La primera estimación de la ganancia entonces está proporcionada por:
tv _ i nO .45-1^ desplazamiento/2
8 TCX . IU
(10)
5.3.3.2.8.1.2 Bucle de velocidad para la tasa de bits constante y la ganancia global
A fin de fijar la mejor ganancia gTCX dentro de las restricciones de
Figure imgf000024_0003
_ _ se lleva a cabo un procedimiento de convergencia de gTCX y used- bits mediante el uso de los valores y constantes siguientes:
WLb y W Ub indican las ponderaciones correspondientes al límite inferior y límite superior,
SLb y 8ub indican la ganancia correspondiente al límite inferior y el límite superior, y
Lb - fo u n d y u _ fo u n d indican indicadores que indican que se halla gLb y gub , respectivamente.
V y * son variables con V = max(1>23 0.0025 * t arge t_ bits) * = 1/ p
X y v son constantes, ajustados como 10 y 0,96.
Después de la estimación inicial del consumo de bits por codificación aritmética, St0p se establece 0 cuando t arge t bits es mayor que used b its , mientras que stop se establece como used bits cuand . o used bits es mayor que t arg et bits .
Si stop es mayor que 0, esto significa que used bits es mayor que t arget bits ,
gTCX se debe modificar para ser mayor que el anterior y Lb found se fija como VERDADERO, gLb se establece como el anterior gTCX . WLb se establece como
W i b — s t o p — t arg e t __ b i t s + X , (11)
Cuando se estableció U - f o u n d , esto significa que used_ bits era menor que t a rg e t-b its , Stcx se actualiza como un valor interpolado entre límite superior y el límite inferior.
Stcx - iSib ‘wm Sm 'wLb)^ub wib) > (12) De otra manera, esto significa que u b found es FALSO, la ganancia se amplifica como
Stcx = S tcx ■ 0 / ¿ ■ {{stop! v) i t arget _bits- \ ) ) , ( 13)
con mayor relación de amplificación cuando la relación de used_ b its (= stop) y t arget J ^ its es mayor para acelerar para alcanzar gub .
Si stop equivale a 0, esto significa used bits es menor que t arg et bits ,
gTCX debe ser menor que el anterior y u - fo u n d se establece como 1, Ub se establece como el anterior gTCX y W
ub se establece como
Wfá - í arg et _ hits - used _ bits A , (14)
Si Lb - fo u n d ya se ha establecido, la ganancia se calcula como
S tcx = (Sib ’ wub Sut ' wi.b)^wüb wi t ) > O 5) de otra manera, a fin de acelerar la ganancia de banda más baja gLb , la ganancia se reduce como,
Stcx = Stcx ■ Q - q - Q -(used _ b its -v )f t arget _ b its ) ) , (16)
con mayores tasas de reducción de ganancia cuando la relación de used bits y t arge t_ bits es pequeña.
Después de la corrección anterior de ganancia, se realiza la cuantificación y se obtiene la estimación de used _ bits por codificación aritmética. Como resultado, st0p se ajusta a 0 cuando ta rget_ bits es mayor que used_ b its , y se establece como u usseedd _ b b, ittss cuando es mayor que ta rget_ b its . Si el recuento del bucle es menor de 4, el procedimiento de establecimiento del límite inferior o procedimiento de establecimiento del límite superior se lleva a cabo en el próximo bucle dependiendo del valor de stop Si el recuento del bucle es 4, se obtienen la ganancia final S t c x y la secuencia de MDCT cuantificada X,QM DCT ( k )
5.3.3.2.8.1.3 Derivación y codificación del modelo de probabilidad
Los coeficientes espectrales cuantificados X se codifican sin ruido a partir del coeficiente de menor frecuencia y progresan al coeficiente de frecuencia más alta. Están codificados por grupos de dos coeficientes a y b que se reúnen en una llamada 2-tupla {a, b}.
Cada 2-tupla {a, b} se divide en tres partes, a saber, MSB, LSB y el signo. El signo se codifica independientemente de la magnitud usando una distribución de probabilidad uniforme. La misma magnitud se divide además en dos partes, los dos bits más significativos (MSB) y los restantes al menos dos planos de bit significativos (LSBs, si corresponde). Las 2 tuplas para las cuales la magnitud de los dos coeficientes espectrales es menor o igual a 3 son codificadas directamente por la codificación MSB. De lo contrario, se transmite primero un símbolo de escape para señalizar cualquier plano de bits adicional.
En el ejemplo de la figura 1 se ilustran la relación entre 2-tupla, los valores espectrales individuales a y b de una 2 -tupla, los planos de bit más significativos m y los planos de bit menos significativos restantes r. En este ejemplo, se envían tres símbolos de escape antes del valor real m, lo que indica tres planos de bits de menor significación transmitidos.
Figure imgf000026_0001
Figura 1: ejemplo de un par codificado (2-tupla) de valores espectrales a y b y su representación como m y r. El modelo de probabilidad se deriva del contexto pasado. El contexto pasado se traduce en un índice de 12 bits y se mapea con la tabla de consulta ari_context_lookup [] con uno de los 64 modelos de probabilidad disponibles almacenados en ari_cf_m[].
El contexto pasado se deriva de dos 2-tuplas ya codificadas dentro de la misma trama. El contexto se puede derivar del vecindario directo o localizar más lejos en las frecuencias pasadas. Los contextos separados se mantienen para las regiones de pico (coeficientes que pertenecen a los picos armónicos) y otras regiones (no pico) según el modelo armónico. Si no se usa ningún modelo armónico, solo se usa el otro contexto de región (no pico).
Los valores espectrales a cero que se encuentran en la cola del espectro no se transmiten. Esto se logra mediante la transmisión del índice de la última 2-tupla no cero. Si se usa un modelo armónico, la cola del espectro se define como la cola del espectro que consiste en los coeficientes de las regiones del pico, seguidos por los otros coeficientes de región (no pico), ya que esta definición tiende a aumentar el número de ceros finales y por lo tanto mejora la eficiencia de codificación. El número de muestras para codificar se calcula de la siguiente manera:
lastnz-2{ max {(^[/p[2/c]] 2L(r/?[2Ar l]3)>0}) 2 (17) Q<k<L:2 ' '
Los siguientes datos se escriben en el flujo de bits en el siguiente orden:
log2(L )
1- lastnz/2-1 se codifica en bits.
2- Los MSB codificados por entropía junto con símbolos de escape.
3- Los signos con palabras clave de 1 bit
4- Los bits de cuantificación residual descritos en la sección cuando el presupuesto de bits no se utiliza completamente.
5- Los LSB se escriben hacia atrás desde el final del búfer de flujo de bits.
El siguiente pseudo-código describe cómo se deriva el contexto y cómo se calculan los datos de flujo de bits para los MSB, signos y LSB. Los argumentos de entrada son los coeficientes espectrales cuantificados X [], el tamaño del espectro considerado L, el presupuesto de bits target_bits, los parámetros del modelo armónico (pi, hi) y el índice del último símbolo no cero lastnz.
ari_context_encode(X[], L,target_bits,pi[],hi[],lastnz)
{
Figure imgf000027_0001
Las funciones auxiliares ari_save_states() y ari_restore_states() se usan para guardar y restaurar los estados codificadores aritméticos respectivamente. Permite cancelar la codificación de los últimos símbolos si viola el presupuesto de bits. Además y en caso de desbordamiento del presupuesto de bits, es capaz de llenar los bits restantes con ceros hasta llegar al final del presupuesto de bits o hasta procesar muestras lastnz en el espectro. Las otras funciones auxiliares se describen en las siguientes subcláusulas.
5.3.3.2.8.1.4 Obtener próximo coeficiente
(a,p,idx) = get_next_coeff(pi, hi, lastnz)
Si ((ii[0] ^ lastnz - min(#pi, lastnz)) or
(ii[1] < min(#pi, lastnz) y pi[ii[1]] < hi[ii[0]])) entonces
{
p=1
idx=ii[1]
a=pi[ii[1]]
}
además
{
p=0
idx=ii[0] #pi
a=hi[ii[0]]
}
ii[p]=ii[p] 1
Los contadores ii[0] y ii[1] se inicializan a 0 en el comienzo de ari_context_encode() (y ari_context_decode() en el decodificador).
5.3.3.2.8.1.5 Actualización del contexto
El contexto se actualiza como se describe en el siguiente pseudocódigo. Consiste en la concatenación de dos elementos de contexto de 4 bits.
Figure imgf000028_0001
5.3.3.2.8.1.6 Obtener contexto
El contexto final se enmienda de dos maneras:
t = c [p1v p2]
si mmn(idx1, idx2) > L / 2 entonces
t = t 256
si target_bií; > 400 entonces
t = t 512
El contexto t es un índice de 0 a 1023.
5.3.3.2.8.1.7 Estimación del consumo de bits
La estimación de consumo de bits del codificador aritmético basado en contexto es necesaria para la optimización del bucle de velocidad de la cuantificación. La estimación se realiza calculando el requisito de bits sin llamar al codificador aritmético. Los bits generados se pueden estimar con precisión mediante:
cum_freq= arith_cf_m[pki]+m
proba*= cum_freq[0]- cum_freq[1]
nlz=norm_l(proba) /*obtener el número de cero inicial */
nbits=nlz
proba>>=14
donde proba es un número entero inicializado a 16384 y m es un símbolo MSB.
5.3.3.2.8.1.8 Modelo armónico
Para la codificación aritmética basada tanto en el contexto como en la envolvente, se utiliza un modelo armónico para una codificación más eficiente de tramas con contenido armónico. El modelo se inhabilita si se cumple cualquiera de las siguientes condiciones:
- La tasa de bits no es de 9,6, 13,2. 16,4, 24,4, 32, 48 kbps.
- La trama anterior fue codificada por ACELP.
- Se utiliza la codificación aritmética basada en envolvente y el tipo de codificador no es de voz ni genérico.
- El indicador del modelo armónico de un solo bit en el flujo de bits se establece en cero.
Cuando el modelo está habilitado, el intervalo del dominio de frecuencia de los armónicos es un parámetro clave y comúnmente se analiza y codifica para ambas variedades de codificadores aritméticos.
5.3.3.2.8.1.8.1 Codificación del intervalo de armónicos
Cuando el retardo de tono y la ganancia se utilizan para el postprocesamiento, el parámetro de retardo se utiliza para representar el intervalo de armónicos en el dominio de frecuencia. De lo contrario, se aplica la representación normal del intervalo.
5.3.3.2.8.1.8.1.1 Codificación del intervalo dependiendo del retardo del tono del dominio de tiempo
Si la parte entera del retardo de tono en el dominio de tiempo d in t es menor que el tamaño de la trama de MDCT L^C:X, la unidad del intervalo del dominio de frecuencia (entre picos armónicos correspondientes al retardo de tono) T UNjrr con exactitud fraccional de 7 bit está dada por
T = (2 * Wcx ’ res _max) '2?
UN!T (ííjm ■ res_ max+clfr)
(18)
d max
donde fr indica la parte fraccional del retardo de tono en el dominio de tiempo, indica el número máximo de valores fraccionales permisibles cuyos valores son 4 o 6 dependiendo de las condiciones.
Debido a que T UNIT tiene intervalo limitado, el intervalo real entre los picos armónicos del dominio de frecuencia se codifica relativamente a T UNIT usando los bits especificados en la tabla 2. Entre los factores de multiplicación candidatos, R aticO dados en la tabla 3 o tabla 4, el número de multiplicación se selecciona de modo que proporciona el intervalo armónico más adecuado de coeficientes de transformación del dominio MDCT.
IndexT ~-{Tu m + 26)/27 -2 (19)
Tmdct = i.4■ tunit ■ Rati° ( lndexB<mdw¡dih, , IndexMUL)J/ 4 (20)
Tabla 2: número de bits para especificar el m ultip licador dependiendo de IndexT
Figure imgf000030_0001
Tabla 3: candidatos del multiplicador en el orden de IndexMTJL dependiendo de IndexT (NB)
Figure imgf000030_0002
Tabla 4: candidatos del multiplicador en el orden dependiendo de In d e x T (WB)
Figure imgf000030_0003
Figure imgf000031_0001
5.3.3.2.8.1.8.1.2 Codificación del intervalo sin depender del retardo de tono del dominio de tiempo
Cuando el retardo de tono y la ganancia de dominio de tiempo no se usa o la ganancia de tono es menor de o igual a 0,46, se usa la codificación normal del intervalo con resolución desigual.
T
El intervalo unitario de los picos espectrales UNjrT se codifica como
Tywit — índex + base ■ 2Rei — bias , (21)
Y el intervalo real Tm d c t se representa con resolución fraccional de Res como
t m d c t ~ t u n it í 2 Res . (22) Cada parámetro se muestra en la tabla 5, donde "tamaño pequeño" significa que el tamaño de la trama es menor de 256 de las tasas de bits deseadas es menor de o igual a 150.
Tabla 5: resolución desigual para la codificación de (0<= índice < 256)
Figure imgf000031_0002
5.3.3.2.8.1.8.2 Nulo
5.3.3.2.8.1.8.3 Búsqueda para intervalo de armónicos
En busca del mejor intervalo de armónicos, el codificador trata de encontrar el índice que puede maximizar la suma ponderada E p e m o d de la parte del pico de los coeficientes MDCT absolutos. E ABSM ( ( k ) J indica la suma de 3 muestras del valor absoluto de los coeficientes de transformada del dominio MDCT como
2
&ABSM < k ) ^ ^ a b S(X u (k i - j - ¡)) (23)
y-o
i mmt peak
e per¡od(Tmdct )=(- nu - m - _ - p - ea r k > £^^(U-W7-i((3n-2)/255)0J (24)
donde num_peak es el número máximo que Ln ' Tmdct \ alcanza el límite de las muestras en el dominio de frecuencia.
En caso de que el intervalo no se base en el retardo de tono en el dominio del tiempo, se usa la búsqueda jerárquica para ahorrar costes computacionales. Si el índice del intervalo es menor de 80, la periodicidad se comprueba mediante una etapa gruesa de 4. Después de obtener el mejor intervalo, se busca una periodicidad más fina alrededor del mejor intervalo de -2 a 2. Si el índice es igual o mayor de 80, se busca la periodicidad de cada índice.
5.3.3.2.8.1.8.4 Decisión del modelo armónico
En la estimación inicial, se obtiene el número de bits usados sin modelo armónico, used - b i ts , y uno con modelo
armónico, used b its hm y el indicador de bits consumidos Id ic a to r B se definen como
idicatorB = B„o lim ~Bhm, (25)
Bno hm ~ max{stop,used _ b its ), (26}
Bh„i = max(stoplm,used_bitshm) Index_bitshm , (27)
donde 1ndex_ bitshm indica los bits adicionales para modelar la estructura armónica, y stop y stooPhm indican los bits
consumidos cuando son más grandes que los bits objetivo. En consecuencia, cuanto mayor es el Idicato,B , más
preferible es usar el modelo armónico. La periodicidad relativa ind ica to tim se define como la suma normalizada de valores absolutos para las regiones del pico de los coeficientes de MCDT conformados como
¿A/
indicato>¡,m =LM ■ Eperiod(Tmdct max) / / , E ABSM(n) > (28)
«=1
T
donde MDCT_max es el intervalo armónico que alcanza el valor máximo de period . Cuando la puntuación de periodicidad de esta trama es mayor que el umbral como
si ((indicator¡¡ > 2) || ((cibs(indicators ) < 2) & &(indicatoif,m > 2.6)), (29)
esta trama se considera codificada por el modelo armónico. Los coeficientes de MCDT conformados divididos por la
ganancia gTCX se cuantifican para producir una secuencia de valores enteros de los coeficientes de MCDT, X 'TCX hm y se comprime por la codificación aritmética con el modelo armónico. Este procedimiento necesita el X
procedimiento de convergencia iterativa (bucle de velocidad) para obtener gTCX y TCX- hm con bits consumidos
Bhm . Al final de la convergencia, a fin de validar el modelo armónico, los bits consumidos Bno-hm por codificación
X
aritmética con el modelo normal (no armónico) para TCX_hm se calcula adicionalmente y se compara con Bhm . Si
X
B hm es mayor que B no_hm, la codificación aritmética de XTCX _hmse invierte para usar el modelo normal. D _ D
B hm B no hm se puede usar para la cuantificación residual para las mejoras adicionales. De otra manera, se usa el modelo armónico en la codificación aritmética.
En contraste, si el indicador de periodicidad de esta trama es menor o la misma que el umbral, la cuantificación y la codificación aritmética se llevan a cabo asumiendo el modelo normal para producir una secuencia de valores enteros de los coeficientes de MCDT conformados, TCX- no- hm con los bits consumidos no- hin. Después de la B
convergencia del bucle de velocidad, se calculan los bits consumidos hn por codificación aritmética con el modelo armónico para X TCX- no- hn. Si jB no- hm es mayor que B Hhm , la codificación aritmética de X TCX- nohn se cambia para usar el modelo armónico. De otra manera, el modelo normal se usa en la codificación aritmética.
5.3.3.2.8.1.9 Usos de información armónica en la codificación aritmética basada en el contexto
Para la codificación aritmética basada en el contexto, todas las regiones se clasifican en dos categorías. Una es parte th
de pico y consiste en 3 muestras consecutivas centradas en U pico ( U es un número entero positivo hasta el límite) del pico armónico de Tu ,
Tu - \P ' tmdct\ - (30)
Las otras muestras pertenecen a la parte normal o del valle. La parte del pico armónico se puede especificar mediante el intervalo de armónicos y múltiplos enteros del intervalo. La codificación aritmética utiliza diferentes contextos para las regiones de pico y valle.
Para facilitar la descripción y la implementación, el modelo armónico utiliza las siguientes secuencias de índice:
p i = (¡ e [0..¿M -1 ]: 3U : rL, -1 < / < tu ]) , (31) hi = (i e [O..Lm - 1 ] : í é p i ) , (32)
ip - (p iih i) , la concatenación de pp y h i . (1)
En caso del modelo armónico inhabilitado, estas secuencias son p i - ( ^ , y h i - ip - (0’ " ’ ’Lm ^ .^ 5.3.3.2.8.2 Codificador aritmético basado en la envolvente
En el dominio MDCT, las líneas espectrales se ponderan con el modelo perceptual W (z ) de tal manera que cada línea se puede cuantificar con la misma exactitud. La varianza de las líneas espectrales individuales sigue la forma del predictor lineal ^ (z) ponderado por el modelo perceptual, por lo que la forma ponderada es ^ (z ) - W (z )A ~ \z ) W (z )
se calcula mediante la transformación q ' ' y a las ganancias LPC del dominio de frecuencia como se detalla en las subcláusulas 5.3.3.2.4.1 y 5.3.3.2.4.2 A (z) se deriva de q después de la conversión a los coeficientes de forma directa, y la aplicación de compensación de la inclinación 1 — y ' z 1 , y finalmente la transformación a las ganancias del dominio de frecuencia l Pc . Todas las demás herramientas de conformación de frecuencia, así como S (z)
la contribución del modelo armónico, se incluirán también en esta forma de envolvente . Se debe observar que esto solo proporciona las variaciones relativas de las líneas espectrales, mientras que la envolvente global tiene escala arbitraria, por lo que se debe comenzar por escalar la envolvente.
5.3.3.2.8.2.1 Escalado de la envolvente
Se asumirá que las líneas espectrales Xk son media de cero y se distribuyen según la distribución de Laplace, por lo que la función de distribución de probabilidad es
Figure imgf000033_0001
La entropía y, por lo tanto, el consumo de bits de tal línea espectral es 1 Sk = og2 e k . Sin embargo, esta fórmula asume que el signo está codificado también para aquellas líneas espectrales cuantificadas a cero. Para compensar esta discrepancia, en cambio se usa la aproximación
Figure imgf000034_0001
que es exacta para hk k > 0.08 . Se asumirá que el consumo de bits de las líneas con hk k < 0.08 es hitsu = log2 (1.0224) que coincide con el consumo de bits a hk = 0.08 Para hk > 255 mayor se usa la entropía verdadera h tsk = log2 (2ehk ) por simplicidad.
2 2 2
La varianza de las líneas espectrales es entonces ak = k Si Sk es el k th elemento de la potencia de la forma i (zz ) '122 2 2 ^ 2 2 envolvente I 1 entonces sk k describe la energía relativa de las líneas espectrales de modo que 7 ^k k donde 7 es el coeficiente de escalado. En otras palabras sl describe solo la forma del espectro sin ninguna magnitud 2
significativa y 7 se utiliza para escalar esa forma para obtener la varianza realak .
Nuestro objetivo es que cuando se codifican todas las líneas del espectro con un codificador aritmético, entonces el N -1
B = ^ 7 hitsk
consumo de bits coincide con un nivel predefinido B , es decir, k=0 Luego se puede usar un algoritmo b isección para determinar el factor de escalado apropiado 7 de modo que se alcanza la tasa de bits B .
Una vez que la forma de la envolvente hk se ha escalado de tal manera que el consumo de bits esperado de las señales que coinciden con esa forma produce la tasa de bits objetivo, se puede proceder a cuantificar las líneas espectrales.
5.3.3.2.8.2.2 Cuantificación del bucle de velocidad
Se asume que xk se cuantifica a un número entero x k de modo que el intervalo de cuantificación es \xk ° .5, Xk ° .5] entonces la probabilidad de una línea espectral que aparece en este intervalo es para Xkl > 1
Figure imgf000034_0002
y para
Figure imgf000034_0003
De ello se deduce que el consumo de bits para estos dos casos está en el caso ideal
Figure imgf000034_0004
\ 7 7 0.5 Y
log2 1 - exp log2 1 - exp
Mediante el pre-cálculo de los términos hk y
y y V V hk J y se puede calcular de forma eficiente el consumo de bits del espectro entero.
El bucle de velocidad se puede aplicar con una búsqueda bi-sección, donde se ajusta el escalado de las líneas
espectrales por un factor ^ y se calcula el consumo de bits del espectro ^ k , hasta estar suficientemente cerca de la tasa de bits deseada. Cabe señalar que los valores de caso ideal anteriores para el consumo de bits no coinciden necesariamente de forma perfecta con el consumo de bits final, ya que el códec aritmético funciona con una aproximación de precisión finita. Este bucle de velocidad se basa, por lo tanto, en una aproximación del consumo de bits, pero con el beneficio de una implementación computacionalmente eficiente.
Cuando se ha determinado el escalado óptimo ° , el espectro se puede codificar con un codificador aritmético
estándar. Una línea espectral que se cuantifica a un valor Xk ^ 0 se codifica al intervalo
Figure imgf000035_0001
y X = 0 se codifica en el intervalo
Figure imgf000035_0002
El signo de Xk ^ 0 se codificará con un bit adicional.
Se debe observar que el codificador aritmético debe funcionar con una implementación de punto fijo de modo que los intervalos anteriores sean de bits exactos en todas las plataformas. Por lo tanto, todas las entradas al codificador aritmético, que incluyen el modelo predictivo lineal y el filtro de ponderación, se deben implementar en el punto fijo en todo el sistema.
5.3.3.2.8.2.3 Derivación y codificación del modelo de probabilidad
Cuando se ha determinado el escalado óptimo a , el espectro se puede codificar con un codificador aritmético
estándar. Una línea espectral que se cuantifica a un valor Xk ^ 0 se codifica al intervalo
Figure imgf000035_0003
y Xk = 0 se codifica en el intervalo
Figure imgf000035_0004
El signo de Xk ^ 0 se codificará con un bit adicional.
5.3.3.2.8.2.4 Modelo armónico en la codificación aritmética basada en la envolvente
En el caso de codificación aritmética basada en la envolvente, el modelo armónico se puede utilizar para mejorar la codificación aritmética. El procedimiento de búsqueda similar como en la codificación aritmética basada en el contexto se utiliza para estimar el intervalo entre armónicos en el dominio MDCT. Sin embargo, el modelo armónico se usa en combinación con la envolvente LPC como se muestra en la figura 2. La forma de la envolvente se produce según la información del análisis armónico.
La forma armónica en k en la muestra de datos de frecuencia se define como
Figure imgf000036_0001
cuando r+4 de otra manera
Figure imgf000036_0002
donde r indica la posición central de
Figure imgf000036_0003
armónico.
T = \ P ' Tmdct J (44)
h y a son altura y ancho de cada armónico que depende del intervalo unitario como se muestra,
h = 2.8 ( l. l25 -e x p (-0.07 -rAfDcr /2 ReíJ (45) <7 = 0,5(2.6 - exp{- 0.05 ■ Tmdct /2 r “ )) (46) La altura y el ancho se hacen más grandes cuando el intervalo aumenta.
La envolvente e s p e c t r a l s e modifica mediante la forma armónica
w ) = s a ) -( i g „ ™ 'e ( 9 ) .
Figure imgf000036_0004
donde la ganancia para los componentes armónicos Sha siempre se establece como 0,75 para el modo genérico, y Sha se selecciona de {0,6, 1,4, 4,5, 10,0} que minimiza E„ para el modo de voz usando 2 bits,
Figure imgf000036_0005
Figura 2: ejemplo de la envolvente armónica combinada con la envolvente de LPC usada en la codificación aritmética basada en la envolvente.
5.3.3.2.9 Codificación de la ganancia global
5.3.3.2.9.1 Optimización de la ganancia global
La ganancia global óptima gopt se calcula a partir de los coeficientes de MCDT cuantificados y no cuantificados. Para las tasas de bit hasta 32 kbps, la desacentuación de baja frecuencia adaptativa (véase la subcláusula 6.2.2.3,2) se aplica a los coeficientes de MCDT cuantificados antes de esta etapa. En caso de que el cálculo produzca una ganancia
óptima menor de o igual a cero, se usa la ganancia global gTCX determinada antes (por estimación y bucle de velocidad).
Figure imgf000037_0001
5.3.3.2.9.2 Cuantificación de ganancia global
Para la transmisión al decodificador, la ganancia global óptima gopt se cuantifica a un índice de 7 bits l TCX , gain .
Figure imgf000037_0002
La ganancia global decuantificada gTCX se obtiene como se define en la subcláusula 6.2.2.3.3).
5.3.3.2.9.3 Codificación residual
La cuantificación residual es una capa de cuantificación de refinamiento que refina la primera etapa SQ. Aprovecha los bits no usados finales target_bits-nbbits, donde nbbits es el número de bits consumidos por el codificador de entropía. La cuantificación residual adopta una estrategia ambiciosa y ninguna codificación de entropía para detener la codificación cada vez que el flujo de bits alcanza el tamaño deseado.
La cuantificación residual puede refinar la primera cuantificación por dos medios. El primer medio es el refinamiento de la cuantificación de la ganancia global. El refinamiento de la ganancia global solo se realiza para las tasas de y por
encima de 13,2kbps. Se le asignan como máximo tres bits adicionales. La ganancia cuantificada gTCX se refina secuencialmente a partir de n = 0 y aumenta n por uno después de cada iteración siguiente:
si (gop, < g rc x ) entonces
write _bit(0)
a o - / J - 2 / n o
Stcx = STCX ’ 10 “ '
además entonces
write
- _ ' , n2~"'2/28
Stcx - Stcx ' 1U
El segundo medio de refinamiento consiste en la re-cuantificación de la línea del espectro cuantificada por línea. En primer lugar, las líneas cuantificadas no cero se procesan con un cuantificador residual de 1 bit:
si {X[k~\ < X [k ]) entonces
write _bit(0)
además entonces
write _b it(l)
Finalmente, si quedan bits, las líneas de cero se consideran y cuantifican con en 3 niveles. El desplazamiento de redondeo de SQ con zona muerta se tuvo en cuenta en el diseño del cuantificador residual:
/ac_z = (1-0.375)-0.33
s i( \X [k]\<fac_z ■ X [k ]) entonces
write_bit{ 0)
además entonces
write _bit{ 1)
write _bit((\ sgn(X[k]))l2)
5.3.3.2.10 Llenado de ruido
En el lado del decodificador se aplica el llenado de ruido para llenar intervalos en el espectro MDCT donde los coeficientes se han cuantificado a cero. El llenado de ruido inserta ruido pseudo-aleatorio en los intervalos, comenzando en el intervalo ^NFstart hasta el intervalo ^NFstar t . Para controlar la cantidad de ruido insertada en el decodificador, se calcula un factor de ruido en el lado del codificador y se transmite al decodificador.
5.3.3.2.10.1 Inclinación de llenado de ruido
Para compensar la inclinación LPC, se calcula un factor de compensación de inclinación. Para las tasas de bits por debajo de 13,2 kbps, la compensación de la inclinación se calcula a partir de los coeficientes LP cuantificados en forma directa a , mientras que para las tasas de bits más altas, se usa un valor constante:
Figure imgf000038_0001
(NF - max(0.375, t'NF) L( TcC?iXp) (54)
5.3.3.2.10.2 Intervalos de inicio y detención del llenado de ruido
Los intervalos de inicio y detención del llenado de ruido se calculan de la siguiente manera:
Figure imgf000038_0002
5.3.3.2.10.3 Ancho de la transición del ruido
En cada lado de un segmento de llenado de ruido se aplica un debilitamiento de transición al ruido insertado. El ancho de las transiciones (número de intervalos) se define como:
Figure imgf000039_0001
donde H M indica que se usa el modelo armónico para el códec aritmético y prev ious ind(ica el modo de códec previo.
5.3.3.2.10.4 Cálculo de segmentos de ruido
Se determinan los segmentos de llenado de ruido, que son los segmentos de intervalos sucesivos del espectro MDCT entre kNFstan y kNFst°p,LP para los cuales todos los coeficientes están cuantificados a cero. Los segmentos se determinan tal como se define mediante el siguiente pseudo-código:
k ~ kpj/rslarl
mientras(k > kNpstar¡ / 2)y ( x M (k ) = o) hacen k = k - 1
k — k + 1
k ’NFstart ~ k
./ = o
mientras(k<kNFsloPíLP){
mientras (k < k Npstop ¡p ) y ( x M (k) st o'jhacenk = k + 1
k N F o ( j ) ~ k
mientras (k < k ypsl0„ ¿p)y ( x M (k ) = ojhacen k = k + 1
k-NF\ 0 ) ~ k
i f {kNpü { j ) < kNFs,op LP ) entonces j = j +1
}
»NF = J
donde kNF0^ ^ y kNF1^ ) son los intervalos de inicio y detención del segmento de llenado de ruido j, y nNF es el número de segmentos.
5.3.3.2.10.5 Cálculo del factor del ruido
El factor de ruido se calcula a partir de los coeficientes MDCT no cuantificados de los intervalos para los que se aplica el llenado de ruido.
Si el ancho de transición de ruido Wn f es 3 o menos intervalos, se calcula un factor de atenuación basado en la energía de los intervalos de MDCT pares e impares:
Figure imgf000039_0002
Figure imgf000040_0001
Para cada segmento se calcula un valor de error a partir de los coeficientes de MCDT no cuantificados, aplicando ganancia global, compensación de inclinación y transiciones:
Figure imgf000040_0002
Una ponderación para cada segmento se calcula basándose en el ancho del segmento:
Figure imgf000040_0003
El factor de ruido luego se calcula de la siguiente manera:
Figure imgf000040_0004
5.3.3.2.10.6 Cuantificación del factor de ruido
Para la transmisión, el factor de ruido se cuantifica para obtener un índice de 3 bit:
1 Nf = min([_10.75/^yr O.sJ, ? ) (64) 5.3.3.2.11 Llenado de intervalos inteligente
La herramienta de Llenado de intervalos inteligente (IGF) es una técnica de llenado de ruido mejorada para llenar intervalos (regiones de los valores cero) en los espectros. Estos intervalos se pueden producir debido a la cuantificación gruesa en el procedimiento de codificación en el que grandes porciones de un espectro dado se pueden ajustar a cero para cumplir con las restricciones de bits. Sin embargo, con la herramienta IGF estas porciones de señal que faltan se reconstruyen en el lado receptor (RX) con información paramétrica calculada en el lado de transmisión (TX). IGF se utiliza solo si el modo TCX está activo.
A continuación, véase la tabla 6 de todos los puntos de operación de IGF:
Tabla 6: modos de aplicación IGF
Figure imgf000040_0005
Figure imgf000041_0004
En el lado de transmisión, el IGF calcula los niveles en las bandas de factor de escala, usando un espectro de TCX de valor real o complejo. Adicionalmente, los índices de blanqueamiento espectral se calculan usando una medición de planitud espectral y un factor de cresta. Un codificador aritmético se utiliza para la codificación sin ruido y la transmisión eficiente al lado del receptor (RX).
5.3.3.2.11.1 Funciones auxiliares de IGF
5.3.3.2.11.1.1 Valores de mapeo con el factor de transición
Si existe una transición de la codificación de CELP a TCX ( isCelpToTCX - true ) o se señaliza una trama TCX 10 ( isTCX 10 - tm e ), la longitud de la trama TCX puede cambiar. En caso de cambio de longitud de trama, todos los valores que están relacionados con la longitud de trama se mapean con la tF :
Figure imgf000041_0001
donde n es un número natural, por ejemplo, un desplazamiento de banda del factor de escala, y f es un factor de transición, véase la tabla 11.
5.3.3.2.11.1.2 Espectro de potencia TCX
El espectro de potencia P 6 P de la trama TCX actual se calcula con:
P(sb):= Ii{sb)2 + /(.s&)2, sb = 0 , 1 , 2 , . —1 (66)
donde n es la longitud de ventana de TCX real, R es el vector que contiene la parte de valor real (transformada por cos) del espectro TCX actual, e 16 P n es el vector que contiene la parte imaginaria (transformada por sin) del espectro TCX actual.
5.3.3.2.11.1.3 La función de medición de la planitud espectral
Figure imgf000041_0002
Se permite que P 6 P n sea el espectro de potencia TCX calculado según la subcláusula 5.3.3.2.11.1.2 y b la línea e
de inicio y la línea de detención del intervalo de medición SFM.
La función , aplicada con IGF, se define con:
Figure imgf000041_0003
donde n es la longitud de ventana TCX real y p se define con:
Figure imgf000042_0001
5.3.3.2.11.1.4 La función del factor de cresta CREST
Se permite que P e Pn sea el espectro de potencia TCX calculado según la subcláusula 5.3.3.2.11.1.2 y b la línea de inicio y e la línea de detención del intervalo de medición del factor de cresta.
La función CREST, aplicada con IGF, se define con:
CREST: x N x N —>P,
Figure imgf000042_0002
donde n es la longitud de ventana TCX real y E se define con:
Figure imgf000042_0003
5.3.3.2.11.1.5 La función de mapeo hT
La función de mapeo hT se define con:
Figure imgf000042_0004
donde s es un valor de planitud espectral calculado y k es la banda de ruido en alcance. Para los valores umbral ThMkk ThSk k refiérase a la siguiente tabla 7.
Tabla 7: umbrales para el blanqueamiento para n T , ^ M y ThS
Figure imgf000042_0005
Figure imgf000043_0001
5.3.3.2.11.1.6 Nulo
5.3.3.2.11.1.7 Tablas del factor de escala IGF
Las tablas del factor de escala IGF están disponibles para todos los modos donde se aplica IGF.
Tabla 8: tabla de desplazamiento de la banda del factor de escala
Figure imgf000043_0002
La tabla 8 anterior se refiere a la ventana de longitud TCX 20 y un factor de transición 1,00.
Para todos las longitudes de ventana se aplican el siguiente remapeo
t { k ) : = ( F { t { k \ f \ k = 0 ,\,2 ,... ,n B (72)
donde tF es la función del mapeo del factor de transición descrito en la subcláusula 5.3.3.2.11.1.1.
5.3.3.2.11.1.8 La función de mapeo m
Tabla 9: sub-banda de fuente mínima IGF, minSb
Figure imgf000043_0003
Para cada modo se define una función de mapeo para acceder a las líneas fuente desde una línea de destino dada en el intervalo IGF.
Tabla 10: funciones de mapeo para cada modo
Figure imgf000044_0005
La función de mapeo m1 se define con:
m\{x).~ minSb-v 2t(0) - t(nB) (x - /(o)), para /(o)< x < i (hB) (73) La función de mapeo m2a se define con:
para t(o )< x < l(2 ) (74)
Figure imgf000044_0001
para l(2)< x < t(nB)
La función de mapeo m2b se define con:
m inSb+(x-t(o)) para t(0) < x < i(4)
i2¿>(x):= (75) \minSb+ tF ( i2 , f ) (x -i(4 )) para t { l) < x < t{nB)
La función de mapeo m3a se define con:
para /(())< x < t(l)
para / ( l ) < x < i(2) (76)
Figure imgf000044_0002
para i{¿ )< x <í{nB)
La función de mapeo m3b se define con:
Figure imgf000044_0003
La función de mapeo m'^ <c se define con:
Figure imgf000044_0004
La función de mapeo m3d se define con:
minSb (x - t(o)) para t(6)< x < t(4)
m3d(x):= minSb+ t(x - t(4)) para l{4 )<x< t( l) (79)
minSb+ (x-((?)) para t{l)< x < ({ni})
La función de mapeo m4 se define con:
para í(o )< jr < ¡(4)
para í(4)á x < i ( ó ) ( 80) para t (Ó )< x < 1(9)
Figure imgf000045_0001
para t(9 )< x < t(nB)
El valor f es el factor de transición apropiado, véase la tabla 11 y tF se describe en la subcláusula 5.3.3.2.11.1.1.
Por favor, obsérvese que todos los valores t(0)’ t(l) ’ " ’ t{nB) se mapearán ya con la función tF ’ como se describe en la subcláusula 5.3.3.2.11.1.1. Los valores para nB se definen en la tabla 8.
Las funciones de mapeo descritas en el presente documento se referirán en el texto como "función de mapeo m" asumiendo que se selecciona la función apropiada para el modo actual.
5.3.3.2.11.2 Elementos de entrada de IGF (TX)
El módulo codificador IGF espera los siguientes vectores e indicadores como entrada:
R : vector con parte real del espectro TCX actual M
1 T : vector con parte imaginario del espectro TCX actual °
P : vector con valores del espectro de potencia TCX P
isT ransie rt; indicador, que señaliza si la trama actual contiene un transitorio, véase la subcláusula 5.3.2.4.1.1
isTC X 10: indicador, que señaliza una trama TCX 10
isTCX20 : indicador, que señaliza una trama TCX 20
isCeepToTOC : indicador, que señaliza la transición de CELP a TCX; generar el indicador por prueba si la última trama fue CELP
is IndepF lqg : indicador, que señaliza que la trama actual es independiente de la trama previa Listado en la tabla 11, las siguientes combinaciones señalizadas a través de los indicadores isTCX10 isTCX 20 y isCelpToTCX se permiten con IGF:
Tabla 11: transiciones TCX, factor de transición f , longitud de ventana n
Figure imgf000045_0002
Figure imgf000046_0004
5.3.3.2.11.3 Funciones IGF en el lado de transmisión (TX)
Toda la declaración de la función asume que los elementos de entrada se proporcionan en forma de trama a trama. Las únicas excepciones son dos tramas consecutivas TCX 10s, donde la segunda trama está codificada dependiendo de la primera trama.
5.3.3.2.11.4 Cálculo del factor de escala IGF
Esta subcláusula describe cómo el vector del factor de escala IGF
Figure imgf000046_0001
nB 1 se calcula en el lado de transmisión (TX).
5.3.3.2.11.4.1 Cálculo de valores complejos
En caso de que el espectro de potencia TCX P está disponible, se calculan los valores g del factor de escala IGF usando P :
Figure imgf000046_0002
y se permite que m : N ^ Nt sea la función de mapeo que mapea el intervalo objetivo de IGF en el intervalo fuente de IGF descrito en la subcláusula 5.3.3.2.11.1.8. calcular:
Figure imgf000046_0003
donde t{nB) ya se mapeará con la función tF ’ véase la subcláusula 5.3.3.2.11.1.1. y nB son el número de bandas del factor de escala IGF, véase la tabla 8.
Calcular g(k) con:
s ( * M \~ 4 lo g 2
i
Figure imgf000047_0001
y limitar g (k ) en el intervalo [0,91] c Z con
Figure imgf000047_0002
Los valores g(k ), k = 0,1,...,nB -1, se transmitirán al lado del receptor (RX) después de la compresión sin pérdidas adicionales con un codificador aritmético descrito en la subcláusula 5.3.3.2.11.8.
5.3.3.2.11.4.2 Cálculo de valores reales
Si el espectro de potencia TCX no está disponible calcular:
Figure imgf000047_0003
donde t (0 ) t( l) ’ ' ' ' , t(nB) ya se mapeará con la función
Figure imgf000047_0004
véase la subcláusula 5.3.3.2.11.1.1. y nB son el número de bandas, véase la tabla 8.
Calcular g(k) con:
Figure imgf000047_0005
y limitar g (k) en el intervalo [°>91] e Z con
Figure imgf000047_0006
Los valores g(k ), k = 0 ,1 ,..,nB -1, se transmitirán al lado del receptor (RX) después de la compresión sin pérdidas adicionales con un codificador aritmético descrito en la subcláusula 5.3.3.2.11.8.
5.3.3.2.11.5 Enmascaramiento tonal IGF
Con el fin de determinar qué componentes espectrales se deben transmitir con el codificador de núcleo, se calcula un enmascaramiento tonal. Por lo tanto, todo el contenido espectral significativo se identifica mientras que el contenido que es adecuado para la codificación paramétrica a través de IGF se cuantifica a cero.
5.3.3.2.11.5.1 Cálculo del enmascaramiento tonal IGF
En el caso de que el espectro de potencia TCX P no está disponible, se suprime el contenido espectral total anterior t (0).
R(tb):= 0, t(0) < tb < t(nB) (89)
donde R es elespectro TCX de valorrealdespués de aplicarTNS y n es lalongitud de ventana TCX actual. En caso de que elespectro de potencia TCX P está disponible, calcular:
Figure imgf000048_0001
donde t (0) es laprimera líneaespectral en elintervaloIGF.
E
Dado HP,aplicarelsiguientealgoritmo:
Inicializar la s t y next:
last.= R (í(o )-l)
Figure imgf000048_0002
5.3.3.2.11.6 Cálculo de planitud espectral IGF
Tabla 12: número de mosaicos n T y ancho del mosaico
Figure imgf000048_0003
Figure imgf000048_0004
Figure imgf000049_0002
Para el cálculo de la planitud espectral de IGF se necesitan dos matrices estáticas prevF IR y prevR R , y ambos de tamaño nT son necesarios para mantener los estados de filtro sobre tramas. Adicionalmente, se necesita un indicador estático wasTrntísirnt para guardar la información del indicador de entrada isTransiert de la trama anterior.
5.3.3.2.11.6.1 Restablecimiento de los estados de filtro
Los vectores p revF ^R y p r evHR son ambos matrices estáticas de tamaño en el módulo IGF y ambas matrices se inicializan con ceros:
Figure imgf000049_0001
Esta inicialización se realizará
- con inicio de códec
- con cualquier conmutador de tasa de bits
- con cualquier conmutador de tipo códec
- con una transición de CELP a TCX, por ejemplo, isCelpToTCX - tru e
- si la trama actual tiene propiedades transitorias, por ejemplo,. i sTransiert = true
5.3.3.2.11.6.2 Restablecimiento de los niveles de blanqueamiento actuales
El vector cu r rWLevel se inicializará con cero para todos los mosaicos,
currWLevel{k) =0, k - 0,1,...,nT-1 (92) - con inicio de códec
- con cualquier conmutador de tasa de bits
- con cualquier conmutador de tipo códec
- con una transición de CELP a TCX, por ejemplo, isCelpToTCX - true
5.3.3.2.11.6.3 Cálculo de los índices de plenitud espectral
Las siguientes etapas 1) a 4) se ejecutarán de modo consecutivo:
1) Actualizar búfer de nivel previo e inicializar niveles actuales:
prevWLevel(k)’.= currWLevet{k\ k = 0,1, ...,nT -1 (93) currWLevel(k) = 0, k = 0,1, ... ,n T - \
En caso de que prevIsTransient o i sTransiert es verdadera, aplicar
currWLevel{k)-=\, k = 0,1,...,«T'-1 (94) además, si la espectro de potencia P está disponible, calcular
t tm mD prk ( k ) ) C S RF EM S T (P ( p(k),e( gk ( k + 9) k _ Q} nT_ x
j j j - * - 1 ( 95)
con
Figure imgf000050_0001
donde SFM es una función de medición de la planitud espectral, descrita en la subcláusula 5.3.3.2.11.1.3 y CREST es un factor de cresta descrito en la subcláusula 5.3.3.2.11.1.4.
Calcular:
í(í):=min[ 2.7 , tm p {k )+ p re v F IR (k )+ — p re v IIR ik ) (97)
Después del cálculo del vector s k ) los estados de filtro se actualizan con:
prevFIR.{k)— tm p{k\ k = 0,1,., . , n T - \
prevJIR(k) = s(A-), k = 0,1,.,., n T -1 (98) prevIsTransient — isTransient
2) Una función de mapeo h T : N x P
Figure imgf000050_0002
se aplica a los valores calculados para obtener un vector del índice de nivel de blanqueamiento currWLevel La función de mapeo h T : N x P ^ N se describe en la subcláusula 5.3.3.2.11.1.5.
cu rrW L eve l{k )~ hT (s {k ),k ), k = 0 , } , ... , n T - l (99)
3) Con los modos seleccionados, véase la tabla 13, aplicar el siguiente mapeo final:
currWLeveinT - l ) : = currWLeve^nT - 2)
Figure imgf000050_0003
Tabla 13: modos para la etapa 4) mapeo
Figure imgf000050_0004
Después de ejecutar la etapa 4) el vector del índice de nivel de blanqueamiento currWLevel está listo para la transmisión.
5.3.3.2.11.6.4 Codificación de los niveles de blanqueamiento de IGF
Los niveles de blanqueamiento de IGF, definidos en el vector c u r r W L e v e l ,se transmiten usando 1 o 2 bits por mosaico. El número exacto de bitstotales requeridos depende de losvalores reales contenidos en c u r r W L v e l y el valordel indicador isIndep.El proceso detallado se describe en elpseudo-código a continuación:
Figure imgf000051_0001
encod,e_w,hi.tening_leveln(, c u r r W L e v e
v n f
' j )),;
para (k = 1; k < nTiles ; k++) {
is S a m e 1;
^ c u r r W L e v e l( k ) c u r r W L e v e l( k — l)^ ^
is S a m e 0;
romper;
}
}
si (! isSame ) {
write_bit(1);
para (k = 1; k < nTiles ; k++) {
encode_whitening_level( c u r r W L e v e l( k ) );
}
} además {
write_bit(0);
}
}
donde el vector p r e v W L e v e l contiene los niveles de blanqueamiento de la trama previa y la función encode_whitening_level se ocupa delmapeo realdelnivelde blanqueamiento c u r r W L e v e l( k ) a un código binario. La función se implementa según elpseudo-código siguiente:
^ c u r r W L e v e l( k )== 1) {
write_bit(0);
} además {
write_bit(1);
si ( c u r r W L e v e l ^ )== 0) {
write_bit(0);
} además {
write_bit(1);
}
}
5.3.3.2.11.7 Indicador de la planitud temporal IGF
La envolvente temporal de la señal reconstruida por el IGF se aplana en el lado del receptor (RX) según la información transmitida sobre la planitud de la envolvente temporal, que es un indicador de planitud IGF.
La planitud temporal se mide como la ganancia de predicción lineal en el dominio de frecuencia. En primer lugar, se realiza la predicción lineal de la parte real del espectro TCX actual y luego se calcula la ganancia de predicción :
Figure imgf000052_0001
donde k = coeficiente /—th PARCOR obtenido por la predicción lineal.
A partir de la ganancia de predicción
Figure imgf000052_0002
y la ganancia de predicción ^ tns descrito en la subcláusula 5.3.3.2.2.3, el isIgfTemFlat
indicador de la plenitud temporal IGF se define como
1 ^ < 1.1 5 y r¡,ns< 1.15
isIg/TemFht ( 102)
0 de o tra manera
5.3.3.2.11.8 Codificación sin ruido IGF
El vector de factor de escala de IGF g se codifica sin ruido con un codificador aritmético con el fin de escribir una representación eficiente del vector al flujo de bits.
El módulo utiliza las funciones comunes de codificador aritmético bruto de la infraestructura, que son proporcionados por el i cod _iixf-icad ,or d ,e nú .cl ieo. i Las * funciones usad ,as son, a ri encode 14bits siembit) que codifica e .l val .or b ../t., a ri encode 14bits exnvalue,cumulativFrequencyTible) que codifica value desde un alfabeto de 27 símbolos ( SYMBOLS IN TABLE ) utilizando la tabla de frecuencia acumulativa, cumulativFrequencyTible que inicializa el codificador aritmético y a ri finish encoding \AbitsC) que finaliza el codificador aritmético.
5.3.3.2.11.8.1 Indicador de independencia IGF
El estado interno del codificador aritmético se restablece en caso de que el indicador isIndepFlag tiene el valor true. Este indicador se puede ajustar a fa s^e solo en los modos donde las ventanas TCX10 (véase la tabla 11) se usan para la segunda trama de dos tramas TCX 10 consecutivas.
5.3.3.2.11.8.2 Indicadores todo cero IGF
El indicador IGF todo cero señala que todos los factores de escala IGF son cero
Figure imgf000052_0003
El indicador a llZero se escribe en el primer flujo de bits. En el caso de que el indicador es tru e , el estado del codificador se restablece y no se escriben más datos en el flujo de bits, de lo contrario el vector del factor de escala codificado aritmético g sigue en el flujo de bits.
5.3.3.2.11.8.3 Funciones auxiliares que codifican IGF aritmético
5.3.3.2.11.8.3.1 La función de restablecimiento
Los estados codificadores aritméticos consisten en t e {0,1^ , y el vector p re v , que representa el valor del vector g conservado de la trama anterior. Al codificar el vector g , el valor 0 para medios t significa que no hay trama previa disponible, por lo tanto prev no está definido y no se usa. Por lo tanto, el valor 1 para medios t que existe una trama previa disponible prev tiene datos válidos y se utiliza, este el caso solo en los modos en los que se utilizan ventanas TCX10 (véase la tabla 11) para la segunda trama de dos tramas TCX 10 consecutivas. Para restablecer el estado del codificador aritmético, es suficiente para establecer t = 0.
Si se ha establecido una trama is1ndepFla , el estado del codificador se restablece antes de codificar el vector del factor de escala g . Cabe señalar que la combinación t = 0 y isdndepFlcS = fa lse es válida, y puede suceder para la segunda trama de dos tramas TCX 10 consecutivas, cuando la primera trama tenía allZero = 1. En este caso particular, la trama no usa información de contexto de la trama previa (el vector p re v ), porque t = 0 , y está codificado actualmente como una trama independiente.
5.3.3.2.11.8.3.2 La función arith encode bits
La función a rith _ encode_b its codifica un número entero sin signo x ,de longitud nBits bits, mediante la escritura de un bit a la vez.
arith_encode_bits(x, nBits)
{
para (i = nBits - 1; i >= 0; — i) {
bit = (x >> i) & 1;
ari_encode_14bits_sign(bit);
}
}
5.3.3.2.11.8.3.2 Las funciones guardar y restaurar del estado del codificador
El guardado del estado del codificador se obtiene usando la función i is IG F S C F 3 ic o d e rSa v C o n te x tS t(íe , que copia t y vector Prev en tSave y vector PrevSave, respectivamente. La restauración del estado del codificador se realiza usando la función complementaria i is IG F S C F F nco d e rR es0 reC o n te x S ta te , que copia de nuevo tSave y el vector r en ' y el vector ^ , respectivamente.
5.3.3.2.11.8.4 Codificación aritmética IGF
Se debe observar que el codificador aritmético debe ser capaz de contar bits solamente, por ejemplo, realizar la codificación aritmética sin escribir bits en el flujo de bits. Si se pide el codificador aritmético con una solicitud de recuent .o, mediante el uso del . parámet .ro ajust .ad ,o doRealFncoding ajust . ad , o a false , el . est . ad , o . int .erno d ,el . codificad ,or aritmético se deberá guardar antes de la llamada a la función de nivel superior y se restaurar y después de la llamada por la persona que llama. En este caso particular, los bits generados internamente por el codificador aritmético no se escriben en el flujo de bits.
Figure imgf000053_0001
La función codifica el residuo de predicción de valor entero x , usando la tabla de frecuencia acumul .at .i.va cum ulativFrequencyTble , y el . d , espl . azamient . o d , e , la t .ab ,,la tableOffset . El d ,espl .azamient .o d ,e , la t .ab ,,la tableOffset se usa para ajustar el valor x antes de codificar, a fin de minimizar la probabilidad total de que un valor muy pequeño o muy grande sea codificado usando la codificación de escape, que es ligeramente menos eficiente. Los valores que están entre M N ENC SEPÁRATE = -12
y M A X FN C SEPARATE = 12 inclusive, están codificados directamente usando la tabla de frecuencia acumulativa cumulativFrequencyTible y un tamaño de alfabeto de SYMBOLS IN TABLE= 27
Para el alfabeto anterior de símbolos SYMBOLS_IN_TABLE, los valores 0 y SYMBOLS_ ^ _ TABLE 1 están reservados como códigos de escape para indicar que un valor es demasiado pequeño o demasiado grande para caber en el intervalo predeterminado. En estos casos, el valor e x tra indica la posición del valor en una de las colas de la
distribución. El valor e x tra se codifica usando 4 bits si está en el intervalo {0 ,- ,14 } o usando 4 bits con valor 15
seguido de 6 bits extra si está en el intervalo {15 ’ " ’15 62 } , o usando 4 bits con valor 15 seguido de 6 bits extra con valor 63 seguido por 7 bits extra si es mayor o igual que 15 63. El último de los tres casos es principalmente útil para evitar la rara situación en la que una señal artificial construida a propósito puede producir una condición de valor residual inesperadamente grande en el codificador.
arith_encode_residual(x, cumulativeFrequencyTable, tableOffset)
{
x = tableOffset;
si ((x >= MIN_ENC_SEPARATE) && (x<= MAX_ENC_SEPARATE)) { ari_encode_14bits_ext((x - MIN_ENC_SEPARATE) 1, cumulativeFrequencyTable);
volver;
} además si (x < MIN_ENC_SEPARATE) {
extra = (MIN_ENC_SEPARATE - 1) - x;
ari_encode_14bits_ext(0, cumulativeFrequencyTable);
} además { /* x > MAX_ENC_SEPARATE */
extra = x - (MAX_ENC_SEPARATE 1);
ari_encode_14bits_ext(SYMBOLS_IN_TABLA - 1, cumulativeFrequencyTable);
}
si (extra < 15) {
arith_encode_bits(extra, 4);
} además { /* extra >= 15 */
arith_encode_bits(15, 4);
extra -= 15;
si (extra < 63) {
arith_encode_bits(extra, 6);
} además { /* extra >= 63 */
arith_encode_bits(63, 6);
extra -= 63;
arith_encode_bits(extra, 7);
}
}
}
La función encode_ sfe _ vector codifica el vector del factor de escala g , que consiste en valores enteros n B . El valor t y el vector p re v , que constituye el estado del codificador, se usan como parámetros adicionales para la función. Cabe señalar que la función del nivel superior iis IG F S C F E 'ic o d erE n c <ote debe llamar la función de .ini .ci .al ..ización del codificad ,or ari ..tmé ..t.ico comú ,n a ri sta rt encoding 14bits an . tes d , e , l,lamar , la f ,unción encode sfe vector , y t . amb ...n . l.lamar . la fu ,nción de , fi .na .l .iz .ac ..n de ,l . codificad ,or ari .t..t.i.co a ri done encoding 14bits d , espués.
La función quanF ccx se usa para cuantificar un valor de contexto c tx , mediante su limitación a { 3,---,3} y se define como:
quant_ctx(ctx)
{
si (abs(ctx) <= 3) {
volver ctx;
} además si (ctx > 3) {
volver 3;
} además { /* ctx < -3 */
volver -3;
}
}
Las definiciones de los nombres simbólicos indicados en los comentarios del pseudo-código, utilizados para calcular los valores de contexto, se enumeran en la siguiente tabla 14:
Tabla 14: definición de nombres simbólicos
Figure imgf000055_0001
encode_sfe_vector(t, prev, g, nB)
para (f = 0; f < nB; f++) {
si (t == 0) {
si (f == 0) {
ari_encode_14bits_ext(g[f] >> 2, cf_se00);
arith_encode_bits(g[f] & 3, 2); /* LSBs como 2 bit sin procesar*/
}
además si (f == 1) {
pred = g[f - 1]; /* pred = b */
arith_encode_residual(g[f] - pred, cf_se01, cf_off_se01);
} además { /* f >= 2 */
pred = g[f - 1]; /* pred = b */
ctx = quant_ctx(g[f - 1] - g[f - 2]); /* Q(b - e) */
arith_encode_residual(g[f] - pred, cf_se02[CTX_DESPLAZAMIENTO ctx)], cf_off_se02[IGF_CTX_DESPLAZAMIENTO ctx]);
}
}
además { /* t == 1 */
si (f == 0) {
pred = prev[f]; /* pred = a */
arith_encode_residual(x[f] - pred, cf_se10, cf_off_se10);
} además { /* (t == 1) && (f >= 1) */
pred = prev[f] g[f - 1] - prev[f - 1]; /* pred = a b - c */
ctx_f = quant_ctx(prev[f] - prev[f - 1]); /* Q(a - c) */
ctx_t = quant_ctx(g[f - 1] - prev[f - 1]); /* Q(b - c) */ arith_encode_residual(g[f] - pred,
cf_se11[CTX_OFFSET ctx_t][CTX_OFFSET ctx_f)],
cf_off_se11[CTX_OFFSET ctx_t][CTX_OFFSET ctx_f]);
}
}
}
}
Existen cinco casos en la función anterior, que dependen del valor de * y también de la posición f de un valor en el vector:
- cuando 1 = 0 y f 0 , el primer factor de escala de una trama independiente se codifica, mediante su división en los bits más significativos que están codificados usando la tabla de frecuencia acumulativa c f se 00
J - , y por lo menos dos bits significativos codificados directamente.
- cuando 1 0 y f = 1 el segundo factor de escala de una trama independiente se codifica (como un residuo de predicción) usando la tabla de frecuencia acumulativa c f _ se01
cuando t ~ 0 y f > 2 , se codifican el tercer y los siguientes factores de escala de una trama independiente c f _ se0l[CTX _ OFFSET ctx] (como residuos de predicción) usando la tabla de frecuencia acumulativa
determinado por el valor de contexto cuantificado c tx .
cuando t _ 1 y f 0 , el primer factor de escala de una trama dependiente se codifica (como un residuo de predicción) usando la tabla de frecuencia acumulativa c f se10.
cuando t = 1 y f > 1, se codifican el segundo y los siguientes factores de escala de una trama dependiente (como residuos de predicción) usando la tabla de frecuencia acumulativa c f _ se11[CTX _ OFFSET ctx _ t \C T X _ OFFSET ctx _ f ] determinado por los valores de contexto cuant ..i.f.icad ,os ctx t y ctx - J f .
Cabe señalar que las tablas de frecuencias acumulativas predefinidas c f _ se01 c f _ se02 y los desplazamientos de la tabla c f _ o ff _ se01, c f _ o ff _ se02 dependen del punto operativo actual e implícitamente de la tasa de bits, y se seleccionan del conjunto de opciones disponibles durante la inicialización del codificador para cada punto operativo determinado. La tabla de frecuencia acumulativa c J f - se00 es común para todos los puntos operativos, y tablas de frecuencia acumulativa c f _ s e 1 y c f _ s e 1 , y los correspondientes desplazamientos de la tabla c f _ o ff _ se 1 y c f _ o f f _ se11 también son comunes pero se usan solo para los puntos operativos correspondiente a las tasas de bits más grandes o iguales que 48 kbps, en el caso de las tramas TCX 10 dependientes (cuando t 1 = 11,).
5.3.3.2.11.9 Escritor de flujo de bits IGF
Los factores de escala IGF codificados aritméticamente, los niveles de blanqueamiento IGF y el indicador de planitud temporal IGF se transmiten consecutivamente al lado del decodificador a través del flujo de bits. La codificación de los factores de escala IGF se describe en la subcláusula 5.3.3.2.11.8.4. Los niveles de blanqueamiento de IGF se codifican como se presenta en la subcláusula 5.3.3.2.11.6.4. Finalmente, el indicador de planitud temporal IGF, representado como un bit, se escribe en el flujo de bits.
En el caso de una trama TCX20, es decir, isTCX20 tru e , y ninguna solicitud de recuento se señaliza al escritor del flujo de bits, la salida del escritor del flujo de bits alimenta directamente al flujo de bits. En el caso de una trama TCX10 ( isTCX10 = t rue ), en la que dos subtramas están codificadas dependientemente dentro de una trama de 20 ms, la salida del escritor de flujo de bits para cada subtrama se escribe en un búfer temporal, que produce un flujo de bits que contiene la salida del escritor del flujo de bits para las subtramas individuales. El contenido de este búfer temporal se escribe finalmente en el flujo de bits.

Claims (15)

REIVINDICACIONES
1. Codificador de audio para codificar una señal de audio que tiene una banda de frecuencia más baja y una banda de frecuencia superior, que comprende:
un detector (802) para detectar un componente de señal significativo en la banda de frecuencia más baja y una región espectral del pico en la banda de frecuencia superior de la señal de audio;
un conformador (804) para conformar la banda de frecuencia más baja usando la información de conformación para la banda de frecuencia más baja y para conformar la banda de frecuencia superior usando al menos una porción de la información de conformación para la banda de frecuencia más baja, en el que el conformador (804) se configura para atenuar adicionalmente los valores espectrales en la región espectral del pico detectada en la banda de frecuencia superior, cuando se ha detectado el componente de señal significativo en la banda de frecuencia más baja; y
una etapa de cuantificador y codificador (806) para cuantificar una banda de frecuencia más baja conformada y una banda de frecuencia superior conformada y para codificar por entropía los valores espectrales cuantificados de la banda de frecuencia más baja conformada y la banda de frecuencia superior conformada.
2. Codificador de audio según la reivindicación 1, que comprende además:
un analizador de predicción lineal (808) para derivar los coeficientes de predicción lineal para un marco de tiempo de la señal de audio mediante el análisis de un bloque de muestras de audio en el marco de tiempo, siendo las muestras de audio de banda limitada para la banda de frecuencia más baja,
en el que el conformador (804) está configurado para conformar la banda de frecuencia más baja usando los coeficientes de predicción lineal como la información de conformación, y
en el que el conformador (804) está configurado para usar al menos la porción de los coeficientes de predicción lineal derivados del bloque de muestras de audio de banda limitada a la banda de frecuencia más baja para conformar la banda de frecuencia superior en el marco de tiempo de la señal de audio.
3. Codificador de audio según la reivindicación 1 o 2, en el que el conformador (804) está configurado para calcular una pluralidad de factores de conformación para una pluralidad de sub-bandas de la banda de frecuencia más baja usando coeficientes de predicción lineal derivados de la banda de frecuencia más baja de la señal de audio,
en el que el conformador (804) está configurado para ponderar, en la banda de frecuencia más baja, los coeficientes espectrales en una sub-banda de la banda de frecuencia más baja usando un factor de conformación calculado para la correspondiente sub-banda, y
para ponderar los coeficientes espectrales en la banda de frecuencia superior usando un factor de conformación calculado para una de las sub-bandas de la banda de frecuencia más baja.
4. Codificador de audio según una de las reivindicaciones anteriores,
en el que el detector (802) está configurado para determinar una región espectral del pico en la banda de frecuencia superior, cuando al menos uno de un grupo de condiciones es válido, comprendiendo el grupo de condiciones al menos las siguientes:
una condición de distancia del pico (1104), y una condición de amplitud del pico (1106).
5. Codificador de audio según una de las reivindicaciones anteriores,
en el que el conformador (804) está configurado para atenuar al menos un valor espectral de la región espectral del pico detectada basándose en una amplitud espectral máxima en la banda de frecuencia superior o basándose en una amplitud espectral máxima en la banda de frecuencia más baja.
6. Codificador de audio según una de las reivindicaciones anteriores,
en el que el conformador (804) está configurado para conformar los valores espectrales de la región espectral del pico detectada basándose en:
una primera operación de ponderación (1702, 804a) usando al menos la porción de la información de conformación para la banda de frecuencia más baja y una segunda operación de ponderación posterior (1704, 804b) usando una información de atenuación; o
una primera operación de ponderación usando la información de atenuación y una segunda operación de ponderación posterior usando al menos una porción de la información de conformación para la banda de frecuencia más baja, o
una operación de ponderación única usando una información de ponderación combinada derivada de la información de atenuación y al menos la porción de la información de conformación para la banda de frecuencia más baja.
7. Codificador de audio según la reivindicación 6,
en el que la información de conformación para la banda de frecuencia más baja es un conjunto de factores de conformación, asociándose cada factor de conformación con una sub-banda de la banda de frecuencia más baja,
en el que la al menos la porción de la información de conformación para la banda de frecuencia más baja usada en la operación de conformación para la banda de frecuencia mayor es un factor de conformación asociado con una sub-banda de la banda de frecuencia más baja que tiene una frecuencia central más alta de todas las sub-bandas en la banda de frecuencia más baja, o
en el que la información de atenuación es un factor de atenuación aplicada al al menos un valor espectral en la región espectral detectada o a todos los valores espectrales en la región espectral detectada o a todos los valores espectrales de la banda de frecuencia superior para los cuales la región espectral del pico se ha detectado mediante el detector (802) para un marco de tiempo de la señal de audio, o
en el que el conformador (804) está configurado para realizar la conformación de la banda de frecuencia más baja y superior sin ninguna atenuación adicional cuando el detector (802) no ha detectado ninguna región espectral del pico en la banda de frecuencia superior de un marco de tiempo de la señal de audio.
8. Codificador de audio según una de las reivindicaciones anteriores,
en el que la etapa de cuantificador y codificador (806) comprende un procesador del bucle de velocidad para estimar una característica del cuantificador de modo que se obtiene una tasa de bits predeterminada de una señal de audio codificada por entropía.
9. Codificador de audio según la reivindicación 8, en el que la característica del cuantificador es una ganancia global,
en el que la etapa de cuantificador y codificador (806) comprende:
un ponderador (1502) para ponderar valores espectrales conformados en la banda de frecuencia más baja y valores espectrales conformados de la banda de frecuencia superior por la misma ganancia global,
un cuantificador (1504) para cuantificar valores ponderados por la ganancia global; y un codificador de entropía (1506) para codificar por entropía los valores cuantificados, en el que el codificador de entropía comprende un codificador aritmético o un codificador de Huffman.
10. Codificador de audio según una de las reivindicaciones anteriores, que comprende además:
un procesador de enmascaramiento tonal (1012) para determinar, en la banda de frecuencia superior, un primer grupo de valores espectrales para cuantificar y codificar por entropía y un segundo grupo de valores espectrales para codificar paramétricamente mediante un procedimiento de llenado de intervalos, en el que el procesador de enmascaramiento tonal está configurado para fijar el segundo grupo de valores espectrales a valores cero.
11. Codificador de audio según una de las reivindicaciones anteriores, que comprende además:
un procesador común (1002);
un codificador del dominio de frecuencia (1012,802, 804, 806); y
un codificador de predicción lineal (1008),
en el que el codificador del dominio de frecuencia comprende el detector (802), el conformador (804) y la etapa de cuantificador y codificador (806), y
en el que el procesador común está configurado para calcular datos para usar mediante el codificador del dominio de frecuencia y el codificador de predicción lineal.
12. Codificador de audio según la reivindicación 11,
en el que el procesador común está configurado para remuestrear (1006) la señal de audio para obtener una banda de señal de audio remuestreada limitada a la banda de frecuencia más baja para un marco de tiempo de la señal de audio, y
en el que el procesador común (1002) comprende un analizador de predicción lineal (808) para derivar coeficientes de predicción lineal para el marco de tiempo de la señal de audio mediante el análisis de un bloque de muestras de audio en el marco de tiempo, siendo las muestras de audio de banda limitada para la banda de frecuencia más baja, o
en el que el procesador común (1002) está configurado para controlar que el marco de tiempo de la señal de audio es para representar por una salida del codificador de predicción lineal o una salida del codificador del dominio de frecuencia.
13. Codificador de audio según una de las reivindicaciones 11 a 12,
en el que el codificador del dominio de frecuencia comprende un conversor tiempo-frecuencia (1012) para convertir un marco de tiempo de la señal de audio en una representación de frecuencia que comprende la banda de frecuencia más baja y la banda de frecuencia superior.
14. Método para codificar una señal de audio que tiene una banda de frecuencia más baja y una banda de frecuencia superior, que comprende:
detectar (802) una región espectral del pico en la banda de frecuencia superior de la señal de audio; conformar (804) la banda de frecuencia más baja de la señal de audio usando la información de conformación para la banda de frecuencia más baja y conformar (1702) la banda de frecuencia superior de la señal de audio usando al menos una porción de la información de conformación para la banda de frecuencia más baja, en el que la conformación de la banda de frecuencia superior comprende una atenuación adicional (1704) de un valor espectral en la región espectral del pico detectada en la banda de frecuencia superior; y cuantificar una banda de frecuencia más baja conformada y una banda de frecuencia más alta conformada y codificar por entropía valores espectrales cuantificados a partir de la banda de frecuencia más baja conformada y la banda de frecuencia más alta conformada.
15. Un programa informático que comprende instrucciones que, cuando un ordenador o un procesador ejecuta el programa, hacen que el ordenador o el procesador lleven a cabo el método de la reivindicación 14.
ES20168799T 2016-04-12 2017-04-06 Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior Active ES2933287T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP16164951 2016-04-12

Publications (1)

Publication Number Publication Date
ES2933287T3 true ES2933287T3 (es) 2023-02-03

Family

ID=55745677

Family Applications (2)

Application Number Title Priority Date Filing Date
ES20168799T Active ES2933287T3 (es) 2016-04-12 2017-04-06 Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior
ES17715745T Active ES2808997T3 (es) 2016-04-12 2017-04-06 Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES17715745T Active ES2808997T3 (es) 2016-04-12 2017-04-06 Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior

Country Status (20)

Country Link
US (3) US10825461B2 (es)
EP (3) EP3696813B1 (es)
JP (3) JP6734394B2 (es)
KR (1) KR102299193B1 (es)
CN (3) CN117316168A (es)
AR (1) AR108124A1 (es)
AU (1) AU2017249291B2 (es)
BR (1) BR112018070839A2 (es)
CA (1) CA3019506C (es)
ES (2) ES2933287T3 (es)
FI (1) FI3696813T3 (es)
MX (1) MX2018012490A (es)
MY (1) MY190424A (es)
PL (2) PL3443557T3 (es)
PT (2) PT3696813T (es)
RU (1) RU2719008C1 (es)
SG (1) SG11201808684TA (es)
TW (1) TWI642053B (es)
WO (1) WO2017178329A1 (es)
ZA (1) ZA201806672B (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3671741A1 (en) * 2018-12-21 2020-06-24 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Audio processor and method for generating a frequency-enhanced audio signal using pulse processing
JP7088403B2 (ja) * 2019-02-20 2022-06-21 ヤマハ株式会社 音信号生成方法、生成モデルの訓練方法、音信号生成システムおよびプログラム
CN110047519B (zh) * 2019-04-16 2021-08-24 广州大学 一种语音端点检测方法、装置及设备
WO2020253941A1 (en) * 2019-06-17 2020-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder with a signal-dependent number and precision control, audio decoder, and related methods and computer programs
WO2021143692A1 (zh) * 2020-01-13 2021-07-22 华为技术有限公司 一种音频编解码方法和音频编解码设备
CN113539281A (zh) * 2020-04-21 2021-10-22 华为技术有限公司 音频信号编码方法和装置
CN111613241B (zh) * 2020-05-22 2023-03-24 厦门理工学院 一种高精度高稳定度的弦乐器基波频率检测方法
CN112397043B (zh) * 2020-11-03 2021-11-16 北京中科深智科技有限公司 一种语音转化成歌曲的方法和***
CN112951251B (zh) * 2021-05-13 2021-08-06 北京百瑞互联技术有限公司 一种lc3音频混合方法、装置及存储介质

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4672670A (en) * 1983-07-26 1987-06-09 Advanced Micro Devices, Inc. Apparatus and methods for coding, decoding, analyzing and synthesizing a signal
JP3125543B2 (ja) * 1993-11-29 2001-01-22 ソニー株式会社 信号符号化方法及び装置、信号復号化方法及び装置、並びに記録媒体
DE19804581C2 (de) * 1998-02-05 2000-08-17 Siemens Ag Verfahren und Funk-Kommunikationssystem zur Übertragung von Sprachinformation
US6415253B1 (en) * 1998-02-20 2002-07-02 Meta-C Corporation Method and apparatus for enhancing noise-corrupted speech
US6975254B1 (en) * 1998-12-28 2005-12-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Methods and devices for coding or decoding an audio signal or bit stream
SE9903553D0 (sv) 1999-01-27 1999-10-01 Lars Liljeryd Enhancing percepptual performance of SBR and related coding methods by adaptive noise addition (ANA) and noise substitution limiting (NSL)
GB9917985D0 (en) * 1999-07-30 1999-09-29 Scient Generics Ltd Acoustic communication system
JP2001143384A (ja) * 1999-11-17 2001-05-25 Sharp Corp ディジタル信号処理装置およびディジタル信号処理方法
US7330814B2 (en) * 2000-05-22 2008-02-12 Texas Instruments Incorporated Wideband speech coding with modulated noise highband excitation system and method
US6587816B1 (en) * 2000-07-14 2003-07-01 International Business Machines Corporation Fast frequency-domain pitch estimation
AU2211102A (en) * 2000-11-30 2002-06-11 Scient Generics Ltd Acoustic communication system
US20020128839A1 (en) * 2001-01-12 2002-09-12 Ulf Lindgren Speech bandwidth extension
CA2388352A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
CN1328707C (zh) 2002-07-19 2007-07-25 日本电气株式会社 音频解码设备以及解码方法
US7650277B2 (en) * 2003-01-23 2010-01-19 Ittiam Systems (P) Ltd. System, method, and apparatus for fast quantization in perceptual audio coders
US7272551B2 (en) * 2003-02-24 2007-09-18 International Business Machines Corporation Computational effectiveness enhancement of frequency domain pitch estimators
WO2004090870A1 (ja) * 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
EP2221808B1 (en) 2003-10-23 2012-07-11 Panasonic Corporation Spectrum coding apparatus, spectrum decoding apparatus, acoustic signal transmission apparatus, acoustic signal reception apparatus and methods thereof
US8150683B2 (en) * 2003-11-04 2012-04-03 Stmicroelectronics Asia Pacific Pte., Ltd. Apparatus, method, and computer program for comparing audio signals
US20080260048A1 (en) * 2004-02-16 2008-10-23 Koninklijke Philips Electronics, N.V. Transcoder and Method of Transcoding Therefore
KR100721537B1 (ko) * 2004-12-08 2007-05-23 한국전자통신연구원 광대역 음성 부호화기의 고대역 음성 부호화 장치 및 그방법
UA92742C2 (ru) * 2005-04-01 2010-12-10 Квелкомм Инкорпорейтед Способ и устройство для кодирования речевых сигналов с расщеплением полосы
EP1864281A1 (en) * 2005-04-01 2007-12-12 QUALCOMM Incorporated Systems, methods, and apparatus for highband burst suppression
CN101263734B (zh) * 2005-09-02 2012-01-25 丰田自动车株式会社 麦克风阵列用后置滤波器
JPWO2007043643A1 (ja) * 2005-10-14 2009-04-16 パナソニック株式会社 音声符号化装置、音声復号装置、音声符号化方法、及び音声復号化方法
US8032371B2 (en) * 2006-07-28 2011-10-04 Apple Inc. Determining scale factor values in encoding audio data with AAC
US8135047B2 (en) * 2006-07-31 2012-03-13 Qualcomm Incorporated Systems and methods for including an identifier with a packet associated with a speech signal
US9496850B2 (en) * 2006-08-04 2016-11-15 Creative Technology Ltd Alias-free subband processing
EP2054879B1 (en) * 2006-08-15 2010-01-20 Broadcom Corporation Re-phasing of decoder states after packet loss
KR101565919B1 (ko) * 2006-11-17 2015-11-05 삼성전자주식회사 고주파수 신호 부호화 및 복호화 방법 및 장치
KR100848324B1 (ko) * 2006-12-08 2008-07-24 한국전자통신연구원 음성 부호화 장치 및 그 방법
EP2101322B1 (en) * 2006-12-15 2018-02-21 III Holdings 12, LLC Encoding device, decoding device, and method thereof
MX2010001394A (es) * 2007-08-27 2010-03-10 Ericsson Telefon Ab L M Frecuencia de transicion adaptiva entre llenado de ruido y extension de anchura de banda.
CN101843115B (zh) * 2007-10-30 2013-09-25 歌乐株式会社 听觉灵敏度校正装置
EP2345030A2 (en) * 2008-10-08 2011-07-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-resolution switched audio encoding/decoding scheme
EP2402940B9 (en) * 2009-02-26 2019-10-30 Panasonic Intellectual Property Corporation of America Encoder, decoder, and method therefor
JP4932917B2 (ja) * 2009-04-03 2012-05-16 株式会社エヌ・ティ・ティ・ドコモ 音声復号装置、音声復号方法、及び音声復号プログラム
US8751225B2 (en) * 2010-05-12 2014-06-10 Electronics And Telecommunications Research Institute Apparatus and method for coding signal in a communication system
JP6075743B2 (ja) * 2010-08-03 2017-02-08 ソニー株式会社 信号処理装置および方法、並びにプログラム
JP2012163919A (ja) * 2011-02-09 2012-08-30 Sony Corp 音声信号処理装置、および音声信号処理方法、並びにプログラム
WO2013058728A1 (en) * 2011-10-17 2013-04-25 Nuance Communications, Inc. Speech signal enhancement using visual information
KR20130047630A (ko) * 2011-10-28 2013-05-08 한국전자통신연구원 통신 시스템에서 신호 부호화 장치 및 방법
JP5915240B2 (ja) * 2012-02-20 2016-05-11 株式会社Jvcケンウッド 特殊信号検出装置、雑音信号抑制装置、特殊信号検出方法、雑音信号抑制方法
PL2831875T3 (pl) * 2012-03-29 2016-05-31 Ericsson Telefon Ab L M Rozszerzenie pasma harmonicznego sygnału audio
US9741350B2 (en) * 2013-02-08 2017-08-22 Qualcomm Incorporated Systems and methods of performing gain control
US9711156B2 (en) * 2013-02-08 2017-07-18 Qualcomm Incorporated Systems and methods of performing filtering for gain determination
JP6155766B2 (ja) * 2013-03-29 2017-07-05 凸版印刷株式会社 印刷再現色予測方法
EP2963649A1 (en) * 2014-07-01 2016-01-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio processor and method for processing an audio signal using horizontal phase correction
EP2980794A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and decoder using a frequency domain processor and a time domain processor
US9830921B2 (en) * 2015-08-17 2017-11-28 Qualcomm Incorporated High-band target signal control

Also Published As

Publication number Publication date
US12014747B2 (en) 2024-06-18
EP3696813A1 (en) 2020-08-19
CN117253496A (zh) 2023-12-19
KR20180134379A (ko) 2018-12-18
EP4134953A1 (en) 2023-02-15
BR112018070839A2 (pt) 2019-02-05
PT3443557T (pt) 2020-08-27
AU2017249291B2 (en) 2020-02-27
US20190156843A1 (en) 2019-05-23
MY190424A (en) 2022-04-21
US10825461B2 (en) 2020-11-03
JP2022009710A (ja) 2022-01-14
ZA201806672B (en) 2019-07-31
SG11201808684TA (en) 2018-11-29
TWI642053B (zh) 2018-11-21
WO2017178329A1 (en) 2017-10-19
PL3443557T3 (pl) 2020-11-16
AR108124A1 (es) 2018-07-18
JP2020181203A (ja) 2020-11-05
JP6734394B2 (ja) 2020-08-05
US20210005210A1 (en) 2021-01-07
CA3019506A1 (en) 2017-10-19
CN117316168A (zh) 2023-12-29
JP6970789B2 (ja) 2021-11-24
FI3696813T3 (fi) 2023-01-31
CN109313908A (zh) 2019-02-05
CN109313908B (zh) 2023-09-22
RU2719008C1 (ru) 2020-04-16
EP3443557B1 (en) 2020-05-20
US20230290365A1 (en) 2023-09-14
EP3443557A1 (en) 2019-02-20
JP7203179B2 (ja) 2023-01-12
MX2018012490A (es) 2019-02-21
PL3696813T3 (pl) 2023-03-06
JP2019514065A (ja) 2019-05-30
AU2017249291A1 (en) 2018-10-25
CA3019506C (en) 2021-01-19
PT3696813T (pt) 2022-12-23
EP3696813B1 (en) 2022-10-26
KR102299193B1 (ko) 2021-09-06
US11682409B2 (en) 2023-06-20
TW201802797A (zh) 2018-01-16
ES2808997T3 (es) 2021-03-02

Similar Documents

Publication Publication Date Title
ES2933287T3 (es) Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior
AU2017201874B2 (en) Audio encoder and decoder
RU2660605C2 (ru) Концепция заполнения шумом
US10311884B2 (en) Advanced quantizer
EP4336502A2 (en) Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits