ES2768090T3 - Método de codificación, codificador, programa y soporte de registro - Google Patents

Método de codificación, codificador, programa y soporte de registro Download PDF

Info

Publication number
ES2768090T3
ES2768090T3 ES18173777T ES18173777T ES2768090T3 ES 2768090 T3 ES2768090 T3 ES 2768090T3 ES 18173777 T ES18173777 T ES 18173777T ES 18173777 T ES18173777 T ES 18173777T ES 2768090 T3 ES2768090 T3 ES 2768090T3
Authority
ES
Spain
Prior art keywords
periodicity
code
sequence
estimated
value
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
ES18173777T
Other languages
English (en)
Inventor
Takehiro Moriya
Yutaka Kamamoto
Noboru Harada
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Application granted granted Critical
Publication of ES2768090T3 publication Critical patent/ES2768090T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/035Scalar quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/20Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding

Abstract

Un método de codificación que comprende: una etapa de generación de cadena de muestra del dominio de la frecuencia para la obtención de una cadena de muestra del dominio de la frecuencia derivada de una señal de audio en cada intervalo de tiempo predeterminado; una etapa de análisis de periodicidad para el cálculo de un indicador del grado de periodicidad de la cadena de muestra del dominio de la frecuencia; una etapa de estimación de cantidad de código de ajuste de ganancia basado en periodicidad para obtener, cuando el indicador corresponde a periodicidad alta, una primera secuencia de valores enteros y un primer valor estimado de cantidad de código basado en periodicidad mediante ajuste de un valor de una primera ganancia por medio de un proceso de bucle, siendo la primera secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen al dividir cada muestra de la cadena de muestra del dominio de la frecuencia por la primera ganancia, siendo el primer valor estimado de cantidad de código basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación basado en periodicidad; una segunda etapa de estimación de cantidad de código no basada en periodicidad para obtener, cuando el indicador corresponde a periodicidad alta, un segundo valor estimado de cantidad de código no basado en periodicidad que es un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación no basado en periodicidad; una etapa de estimación de cantidad de código de ajuste de ganancia no basada en periodicidad para obtener, cuando el indicador no corresponde a periodicidad alta, una segunda secuencia de valores enteros y un primer valor estimado de cantidad de código no basado en periodicidad ajustando un valor de una segunda ganancia mediante un proceso de bucle, siendo la segunda secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen dividiendo cada muestra de la cadena de muestra del dominio de la frecuencia por la segunda ganancia, siendo el primer valor estimado de cantidad de código no basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación no basado en periodicidad; una segunda etapa de estimación de cantidad de código basada en periodicidad para obtener, cuando el indicador no corresponde a periodicidad alta, un segundo valor estimado de cantidad de código basado en periodicidad, quees un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación basado en periodicidad, y una etapa de codificación de comparación y selección para, cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código de un código correspondiente a un período para codificación usando el método de codificación basado en periodicidad, es mayor que el segundo valor estimado de cantidad de código no basado en periodicidad, codificar la primera secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros; cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período es más pequeño que el segundo valor estimado de cantidad de código no basado en periodicidad, codificar la primera secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros, cuando el primer valor estimado de cantidad de código no basado en periodicidad es mayor que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codificar la segunda secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros, y cuando el primer valor estimado de cantidad de código no basado en periodicidad es más pequeño que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codificar la segunda secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros.

Description

DESCRIPCIÓN
Método de codificación, codificador, programa y soporte de registro
[CAMPO TÉCNICO]
La presente invención se refiere a una técnica de codificación de señales de audio y, en particular, a una técnica para codificar una secuencia que se obtiene al dividir una cadena de muestra, derivada de una señal de audio, por una ganancia.
[TÉCNICA ANTERIOR]
Una codificación adaptativa para coeficientes de transformación ortogonal de una transformada tal como DFT (transformada discreta de Fourier) y MDCT (transformada coseno discreta modificada), se conoce como codificación de baja tasa de bits (por ejemplo, del orden de 10 Kbits/s o hasta 20 Kbits/s) para señales de habla y señales de audio. Por ejemplo, AMR-WB+ (Ancho de Banda Multi-Tasa Adaptativa Ampliada), que es una técnica estándar descrita en la Bibliografía No de Patentes 1, tiene modos de codificación de TCX (excitación codificada de transformación). En codificación de TCX, se decide una ganancia para una cadena de coeficientes que se obtiene al normalizar una secuencia de una señal de audio en el dominio de la frecuencia usando una secuencia de envolvente espectral de potencia de modo que una secuencia que se obtiene al dividir cada coeficiente de la cadena de coeficientes por la ganancia, puede ser codificada con un número de bits predeterminado, permitiendo con ello la codificación con un número total de bits asignados a cada trama.
<Codificador 500>
La Figura 1 ilustra un ejemplo de configuración de un codificador 500 convencional para codificación de TCX. Los componentes ilustrados en la Figura 1 van a ser descritos en lo que sigue.
<Transformador 5001 en el dominio de la frecuencia>
Un transformador 5001 en el dominio de la frecuencia transforma una señal digital de entrada de habla/audio en el dominio del tiempo (mencionada en lo que sigue como señal de audio de entrada) en cada trama, la cual es un intervalo de tiempo predeterminado, en una cadena de coeficientes X(1), ..., X(N) de MDCT en N puntos del dominio de la frecuencia y presenta a la salida la cadena de coeficientes de MDCT. En la presente, N es un número entero positivo.
<Unidad 5002 aritmética de secuencia envolvente de espectro de potencia>
Una unidad 5002 aritmética de secuencia envolvente de espectro de potencia realiza análisis de predicción lineal de una señal de audio de entrada sobre una base de trama a trama, para obtener coeficientes predictivos lineales, y utiliza los coeficientes predictivos lineales para obtener y presentar a la salida una secuencia W(1), ..., W(N) de envolvente espectral de potencia de la señal de audio de entrada en N puntos. Los coeficientes predictivos lineales se codifican usando una técnica de codificación convencional y el código de coeficiente predictivo resultante se transmite al lado de descodificación.
<Normalizador 5003 de envolvente ponderada>
Un normalizador 5003 de envolvente ponderada utiliza cada uno de los valores de una secuencia W(1), ..., W(N) de envolvente espectral de potencia, obtenidos por la unidad 5002 aritmética de secuencia de envolvente espectral de potencia, para normalizar el valor de cada uno de los coeficientes X(1), ..., X(N) en una cadena de coeficientes de MDCT obtenida por el transformador 5001 del dominio de la frecuencia y presenta a la salida una cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados. Con el fin de conseguir cuantificación que minimice auditivamente la distorsión, el normalizador 5003 de envolvente ponderada utiliza una secuencia de envolvente espectral de potencia ponderada producida por alisamiento de la envolvente espectral de potencia para normalizar cada coeficiente de la cadena de coeficientes de MDCT en cada trama. Por consiguiente, la cadena de coeficientes XN(1), ..., Xn(N) de MDCT normalizados ponderados tiene una pendiente más pequeña de amplitud y de fluctuaciones de amplitud que la cadena de coeficientes X(1), ..., X(N) de MDCT de entrada, pero tiene variaciones de magnitud similares a las de la secuencia de envolvente espectral de potencia de la señal de audio de entrada, es decir, tiene amplitudes ligeramente mayores en una región de coeficientes correspondientes a frecuencias bajas y tiene una estructura fina debido a un período de tono.
<Codificador 5100 de ajuste de ganancia>
Un codificador 5100 de ajuste de ganancia divide cada uno de los coeficientes de una cadena de coeficientes XN(1), ..., Xn(N) de MDCT normalizados ponderados de entrada por una ganancia g y presenta a la salida un código de ganancia correspondiente a la ganancia g de tal modo que el número de bits de un código de señal de número entero que se obtiene por codificación de una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, que es una secuencia de valores enteros obtenidos por cuantificación del resultado de la división, es más pequeño o igual que el número B de bits asignados, el cual es el número de bits asignados por anticipado, y tan grande como sea posible, y también presenta a la salida el código de señal de número entero.
El codificador 5100 de ajuste de ganancia comprende un inicializador 5104, un cuantificador 5105 de secuencia del dominio de la frecuencia, un codificador 5106 de longitud variable, un determinador 5107, un regulador 5108 de ganancia mínima, una primera unidad 5109 de ramificación, un primer actualizador 5110 de ganancia, un incrementador 5111 de ganancia, un regulador 5112 de ganancia máxima, una segunda unidad 5113 de ramificación, un segundo actualizador 5114 de ganancia, un reductor 5115 de ganancia, una unidad 5116 de truncamiento, y un codificador 5117 de ganancia.
<Inicializador 5104>
El inicializador 5104 establece un valor inicial de la ganancia g. El valor inicial de la ganancia puede ser decidido a partir de factores tales como la energía de una cadena de coeficientes XN(1), ..., XN(N) de MDCT normalizados ponderados y del número de bits asignados por anticipado a un código presente a la salida del codificador 5106 de longitud variable. El número de bits asignados por anticipado a un código presente a la salida del codificador 5106 de longitud variable será mencionado en lo que sigue como número B de bits asignados. El inicializador 5104 establece también 0 como valor inicial del número de actualizaciones de la ganancia.
<Cuantificador 5105 de secuencia del dominio de la frecuencia>
El cuantificador 5105 de secuencia del dominio de la frecuencia cuantifica valores que se obtienen al dividir cada uno de los coeficientes de una cadena de coeficientes XN(1), ..., XN(N) de MDCT normalizados ponderados por la ganancia g para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, la cual es una secuencia de valores enteros.
<Codificador 5106 de longitud variable>
El codificador 5106 de longitud variable codifica una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada usando codificación de longitud variable para obtener y presentar a la salida un código. El código será mencionado como código de señal de número entero. La codificación de longitud variable puede usar un método que codifique una pluralidad de coeficientes en la secuencia de coeficientes normalizados cuantificados conjuntamente, por ejemplo. El codificador 5106 de longitud variable mide el número de bits del código de señal de número entero obtenido como resultado de la codificación de longitud variable. El número de bits será mencionado en lo que sigue como número c de bits consumidos.
<Determinador 5107>
Cuando el número de actualizaciones de la ganancia sea igual a un número predeterminado o cuando el número c de bits consumidos, medidos por el codificador 5106 de longitud variable, sea igual al número B de bits asignados, el determinador 5107 presenta a la salida una ganancia, un código de señal de número entero y el número c de bits consumidos.
Cuando el número de actualizaciones de la ganancia sea más pequeño que el número de actualizaciones predeterminado, y el número c de bits consumidos medido por el codificador 5106 de longitud variable sea mayor que el número B de bits asignados, el determinador 5107 realiza un control que provoca que un regulador 5108 de ganancia mínima realice el siguiente proceso; cuando el número de actualizaciones de la ganancia sea más pequeño que el número predeterminado de actualizaciones y el número c de bits consumidos medido por el codificador 5106 de longitud variable sea menor que el número B de bits asignados, el determinador 5107 realiza un control para hacer que un regulador 5112 de ganancia máxima lleve a cabo el siguiente proceso.
<Regulador 5108 de ganancia mínima>
El regulador 5108 de ganancia mínima establece el valor normal de la ganancia g como el límite inferior gmín de la ganancia (gmín — g). El límite inferior gmín de la ganancia representa el valor mínimo admisible de la ganancia.
<Primera unidad 5109 de ramificación>
Cuando ha sido ya establecido un límite superior gmáx de la ganancia, una primera unidad 5109 de ramificación realiza un control para hacer que un primer actualizador 5110 de ganancia lleve a cabo el siguiente proceso; en otro caso, la primera unidad 5109 de ramificación lleva a cabo un control para hacer que un incrementador 5111 de ganancia lleve a cabo el siguiente proceso. Además, la primera unidad 5109 de ramificación añade 1 al número de actualizaciones de ganancia.
<Primer actualizador 5110 de ganancia>
El primer actualizador 5110 de ganancia establece el valor medio entre el valor actual de la ganancia g y el límite superior gmáx de la ganancia como un nuevo valor de la ganancia g (g — (g gmáx)/2). Esto se debe a que un valor óptimo de la ganancia está comprendido entre el valor actual de la ganancia g y el límite superior gmáx de la ganancia. Puesto que el valor actual de la ganancia g ha sido establecido como el límite inferior gmín de la ganancia, se puede decir también que el valor medio entre el límite superior gmáx de la ganancia y el límite inferior gmín de la ganancia se establece como un nuevo valor de la ganancia g (g — (gmáx + gmín)/2). La nueva ganancia g establecida se introduce en el cuantificador 5105 de secuencia del dominio de la frecuencia. <Incrementador 5111 de ganancia>
El incrementador 5111 de ganancia establece un valor mayor que el valor actual de la ganancia g como un nuevo valor de la ganancia g. Por ejemplo, el incrementador 5111 de ganancia establece el valor actual de la ganancia g más una cantidad D g por la que debe ser cambiada la ganancia, el cual es un valor positivo predeterminado, como un nuevo valor de la ganancia g (g g D g). Además, cuando se encuentra una pluralidad de veces sucesivas que el número c de bits consumidos es mayor que el número B de bits asignados sin que haya sido establecido el límite superior gmáx de la ganancia, el incrementador 5111 de ganancia usa un valor mayor que el valor predeterminado como la cantidad D g por la que debe ser cambiada la ganancia. La nueva ganancia g establecida se introduce en el cuantificador 5105 de secuencia del dominio de la frecuencia.
<Regulador 5112 de ganancia máxima>
El regulador 5112 de ganancia máxima establece el valor actual de la ganancia g como el límite superior gmáx de la ganancia (gmáx — g). El límite superior gmáx de la ganancia representa el valor máximo admisible de la ganancia.
<Segunda unidad 5113 de ramificación>
Cuando el límite inferior gmín de la ganancia ha sido ya establecido, la segunda unidad 5113 de ramificación realiza un control para hacer que el segundo actualizador 5114 de ganancia lleve a cabo el siguiente proceso; en otro caso, la segunda unidad 5113 de ramificación realiza un control para hacer que el reductor 5115 de ganancia realice el siguiente proceso. Además, la segunda unidad 5113 de ramificación añade 1 al número de actualizaciones de ganancia.
<Segundo actualizador 5114 de ganancia>
El asegundo actualizador 5114 de ganancia establece el valor medio entre el valor actual de la ganancia g y el límite inferior gmín de la ganancia como un nuevo valor de la ganancia g (g (g gmín)/2). Esto se debe a que un valor óptimo de la ganancia está comprendido entre el valor actual de la ganancia g y el límite inferior gmín de la ganancia. Dado que el valor actual de la ganancia g ha sido establecido como el límite superior gmáx de la ganancia, se puede decir también que el valor medio entre el límite superior gmáx de la ganancia y el límite inferior gmín de la ganancia ha sido establecido como un nuevo valor de la ganancia g (g (gmáx + gmín )/2). La nueva ganancia g establecida se introduce en el cuantificador 5105 de secuencia del dominio de la frecuencia. <Reductor 5115 de ganancia>
El reductor 5115 de ganancia establece un valor más pequeño que el valor actual de la ganancia g como el nuevo valor de la ganancia g. Por ejemplo, el reductor 5115 de ganancia establece el valor actual de la ganancia g menos una cantidad D g por la que debe ser cambiada la ganancia, el cual es un valor positivo predeterminado, como un nuevo valor de la ganancia g (g g - D g). Además, por ejemplo, cuando se encuentra una pluralidad de veces sucesivas que el número c de bits consumidos es más pequeño que el número B de bits asignados sin que haya sido establecido el límite inferior gmín de la ganancia, el reductor 5115 de ganancia usa un valor mayor que el valor predeterminado como la cantidad D g por la que debe ser cambiada la ganancia. La nueva ganancia g establecida se introduce en el cuantificador 5105 de secuencia del dominio de la frecuencia.
<Unidad 5116 de truncamiento>
Cuando el número c de bits consumidos presente en la salida del determinador 5107 es mayor que el número B de bits asignados, la unidad 5116 de truncamiento elimina la cantidad de código equivalente a los bits en los que el número c de bits consumidos excede al número B de bits asignados del código correspondiente a los coeficientes normalizados cuantificados en el lado de alta frecuencia en un código de señal de número entero presente a la salida del determinador 5107, y presenta a la salida el código resultante como un nuevo código de señal de número entero. Por ejemplo, la unidad 5116 de truncamiento elimina una porción de código correspondiente a coeficientes normalizados cuantificados en el lado de la alta frecuencia que corresponden al número de bits en los que el número c de bits consumidos ha superado al número B de bits asignados, c - B, del código de señal de número entero, y presenta a la salida el código restante como un nuevo código de señal de número entero. Por otra parte, cuando el número c de bits consumidos presente a la salida del determinador 5107 no es mayor que el número B de bits asignados, la unidad 5116 de truncamiento presenta a la salida el código de señal de número entero que esté presente en la salida del determinador 5107.
<Codificador 5117 de ganancia>
El codificador 5117 de ganancia codifica la ganancia a la salida del determinador 5107 usando un número predeterminado de bits para obtener y presentar a la salida un código de ganancia.
Por otra parte, la bibliografía de Patentes 1 describe un método de codificación de longitud variable que usa periodicidad para codificar eficientemente señales de número entero. En el método, una secuencia de coeficientes normalizados cuantificados se reagrupa de modo que una, o una pluralidad de muestras sucesivas que incluyen una muestra correspondiente a una frecuencia fundamental y una, o una pluralidad de muestras sucesivas que incluyen una muestra correspondiente a un múltiplo entero de la frecuencia fundamental, se disponen conjuntamente. La cadena de muestra reagrupada se codifica usando codificación de longitud variable para obtener un código de señal de número entero. Esto reduce las variaciones de amplitud de muestras adyacentes para incrementar la eficacia de la codificación de longitud variable.
La Bibliografía de Patentes 1 describe también un método para obtener un código de señal de número entero seleccionando uno de dos métodos de codificación, cualquiera que use, o que se espera que use, menos bits para un código de señal de número entero; uno de los métodos de codificación usa periodicidad y codifica una cadena de muestra reagrupada usando codificación de longitud variable para obtener un código de señal de número entero mientras que el otro método no usa periodicidad y codifica la cadena de muestra original, sin reagrupar, usando codificación de longitud variable para obtener un código de señal de número entero. Esto permite que se obtenga un código de señal de número entero que tiene unos pocos bits con el mismo grado de distorsión de codificación.
[BIBLIOGRAFÍA DE LA TÉCNICA ANTERIOR]
[BIBLIOGRAFÍA DE PATENTES]
Bibliografía de Patentes 1: Publicación internacional núm. WO 2012/046685. El documento WO 2013/180164 A1 describe un codificador adaptativo de audio basado en un transformador de MDCT.
[BIBLIOGRAFÍA NO DE PATENTES]
Bibliografía no de Patentes 1: Proyecto Partnership de 3a Generación (3GPP), Especificación Técnica (TS) 26.290, “Códec. de Banda Ancha Multi-Tasa Adaptativa Ampliada (AMR-WB+); Funciones de transcodificación”, Volumen 10.0.0 (03-2011).
[SUMARIO DE LA INVENCIÓN]
[PROBLEMAS A SER RESUELTOS POR LA INVENCIÓN]
La técnica existente descrita en la Bibliografía de Patentes 1 decide sobre una ganancia con anterioridad a la codificación de longitud variable usando cualquier método de codificación que utilice periodicidad para obtener un código de señal de número entero y el método de codificación que no usa periodicidad para obtener un código de señal de número entero. En consecuencia, aunque la técnica puede reducir el número de bits del código de señal de número entero con el mismo grado de distorsión, la técnica no proporciona consideración para conseguir tanto la reducción del número de bits mediante codificación de longitud variable, como la reducción de la distorsión de cuantificación usando un valor de ganancia tan pequeño como sea posible bajo la condición de que la cantidad de código se mantenga menor que, o igual a, un número dado de bits.
Con el fin de reducir la distorsión debida a codificación de longitud variable, la técnica existente descrita en la Bibliografía de Patentes 1 necesita ser combinada con la técnica convencional descrita en la Bibliografía no de Patentes 1. Sin embargo, las técnicas combinadas requieren el procesamiento por parte del codificador de ajuste de ganancia descrito con anterioridad en cada uno de entre el método de codificación que utilizan periodicidad y el método de codificación que no utiliza periodicidad, y por lo tanto requieren a una cantidad muy grande de cálculo.
[MEDIOS PARA RESOLVER LOS PROBLEMAS]
En vista de los problemas anteriores, la presente invención propone métodos de codificación y codificadores que tienen las características de las respectivas reivindicaciones independientes.
Se obtiene una cadena de muestra del dominio de la frecuencia deducida a partir de una señal de audio en cada intervalo de tiempo predeterminado, y se calcula un indicador del grado de periodicidad de la cadena de muestra del dominio de la frecuencia.
Cuando el indicador corresponde a periodicidad alta, se obtiene una secuencias de valores enteros que es una cadena de muestras de valores enteros que se obtienen al dividir cada muestra de la cadena de muestra del dominio de la frecuencia por una ganancia y un valor estimado de cantidad de código estimado con la suposición de que la secuencia de valores enteros está codificada usando un método de codificación basado en periodicidad o código que se obtiene codificando la secuencia de valores enteros usando un método de codificación basado en periodicidad que se obtienen ajustando la ganancia por medio de un proceso de bucle, se obtiene un valor estimado de cantidad de código estimado con la suposición de que la secuencia de valores enteros se codificas usando un método de codificación no basado en periodicidad o código que se obtiene codificando la secuencia de valores enteros usando el método de codificación no basado en periodicidad, y se presenta a la salida un código de señal de número entero que se obtiene codificando la secuencia de valores enteros usando el método de codificación que minimiza la cantidad de código o el valor estimado de la cantidad de código.
Cuando el indicador no corresponde a alta periodicidad, una secuencia de valores enteros que es una cadena de muestras de valores enteros que se obtienen al dividir cada muestra de la cadena de muestra del dominio de la frecuencia por una ganancia y un valor estimado de cantidad de código estimado con la suposición de que la secuencia de valores enteros se codifica usando un método de codificación no basado en periodicidad o código que se obtiene codificando la secuencia de valores enteros usando un método de codificación no basado en periodicidad, se obtienen ajustando la ganancia por medio de un proceso de bucle, un valor estimado de cantidad de código estimado con la suposición de que la secuencia de valores enteros se codifica usando un método de codificación basado en periodicidad o un código que se obtiene codificando la secuencia de valores enteros usando el método de codificación basado en periodicidad, y se presenta a la salida un código de señal de número entero que se obtiene codificando la secuencia de valores enteros usando el método de codificación que minimiza la cantidad de código o el valor estimado de la cantidad de código.
[EFECTOS DE LA INVENCIÓN]
Según la presente invención, se puede conseguir tanto la reducción de la distorsión de cuantificación usando un valor de ganancia tan pequeño como sea posible bajo la condición de que la cantidad de código se mantenga menor que, o igual a, un número de bits dado, como la reducción de la cantidad de un código de señal de número entero obtenida mediante codificación, con una cantidad pequeña de cálculo.
[BREVE DESCRIPCIÓN DE LOS DIBUJOS]
La Figura 1 es un diagrama de bloques que ilustra un ejemplo de configuración de un codificador convencional; La Figura 2 es un diagrama de bloques que ilustra un ejemplo de configuración de un codificador conforme a una primera realización;
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de configuración de un estimador de cantidad de código de ajuste de ganancia basado en periodicidad, según la primera realización;
La Figura 4 es un diagrama de bloques que ilustra un ejemplo de configuración de un estimador de cantidad de código de ajuste de ganancia no basado en periodicidad, según la primera realización; La Figura 5 es un diagrama de bloques que ilustra un ejemplo de configuración de un codificador conforme a una segunda realización;
La Figura 6 es un diagrama de bloques que ilustra un ejemplo de configuración de un codificador de ajuste de ganancia basado en periodicidad conforme a la segunda realización, y
La Figura 7 es un diagrama de bloques que ilustra un ejemplo de configuración de un codificador de ajuste de ganancia no basado en periodicidad, conforme a la segunda realización.
[DESCRIPCIÓN DETALLADA DE LA(S) REALIZACIÓN(ES)]
Se van a describir realizaciones de la presente invención con referencia a los dibujos. Los elementos iguales han sido designados con los mismos números de referencia y se omitirá la descripción repetida de los mismos.
[PRIMERA REALIZACIÓN]
<Codificador 100 (Figura 2)>
Una configuración y un procesamiento de un codificador 100 según una primera realización, van a ser descritos con referencia a las Figuras 2 a 4.
Según se ha ilustrado en la Figura 2, el codificador 100 conforme a la primera realización comprende un transformador 1001 del dominio de la frecuencia, una unidad 1002 aritmética de secuencia de envolvente espectral de potencia, un normalizador 1003 de envolvente ponderada, un analizador 1004 de periodicidad, un estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, un segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, un estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, un segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, un codificador 1300 de comparación y selección, y un codificador 1400 de ganancia de transmisión. El codificador 100 es un dispositivo que, por ejemplo, está configurado mediante carga de un programa predeterminado en un ordenador de propósito general o de propósito especial que incluye un procesador (un procesador de hardware) tal como una CPU (unidad central de proceso) y una memoria tal como una RAM (memoria de acceso aleatorio). La CPU es un tipo de circuitería electrónica y algunas, o todas, las partes de procesamiento que integran el codificador 100 pueden estar implementadas por medio de otra circuitería electrónica.
<Transformador 1001 del dominio de la frecuencia>
El transformador 1001 del dominio de la frecuencia transforma una señal digital de audio de entrada (mencionada en lo que sigue como una señal de audio de entrada) de cada trama, que es un intervalo de tiempo predeterminado, en una cadena de coeficientes X(1), ..., X(N) de MDCT en N puntos en el dominio de la frecuencia, y presenta a la salida la secuencia de coeficientes de MDCT. En el presente caso, N es un número entero positivo.
<Unidad 1002 aritmética de secuencia de envolvente espectral de potencia>
La unidad 1002 aritmética de secuencia de envolvente espectral de potencia realiza análisis de predicción lineal de una señal de audio de entrada sobre una base de trama a trama para obtener coeficientes predictivos lineales, y utiliza los coeficientes predictivos lineales para obtener y presentar a la salida una secuencia W(1), ..., W(N) de envolvente espectral de potencia en N puntos de la señal de audio de entrada. Los coeficientes W(1), ..., W(N) de la secuencia de envolvente espectral de potencia en el punto N se obtienen convirtiendo los coeficientes predictivos lineales en el dominio de la frecuencia. Por ejemplo, conforme a un proceso autoregresivo de orden p (donde p es un número entero positivo), que es un modelo de todos los polos, una señal x(t) de audio de entrada en el instante de tiempo t puede ser expresada mediante la Ecuación (1) con valores pasados x(t-1), ..., x(t-p) de la propia señal en los p puntos de tiempo pasados, con los residuos de predicción e(t) y con los coeficientes predictivos lineales a1, ..., ap. Los coeficientes W(n) [1 < n < N] de la secuencia de envolvente espectral de potencia, pueden ser expresados mediante la Ecuación (2), donde exp() es una función exponencial con una base de la constante de Napier, j es una unidad imaginaria, y o2 es la energía residual de predicción.
[Ecuación 1]
Figure imgf000007_0001
Obsérvese que en vez de la unidad 1002 aritmética de secuencia de envolvente espectral de potencia, otra parte, no representada, en el codificador 100 puede calcular coeficientes predictivos lineales. Puesto que un descodificador necesita obtener los mismos valores que los obtenidos en el codificador 100, se usan coeficientes predictivos lineales cuantificados y/o secuencias de envolvente espectral de potencia en el descodificador. En lo que sigue, el término “coeficiente predictivo lineal” o “secuencia de envolvente espectral de potencia” significan un coeficiente predictivo lineal cuantificado o una secuencia de envolvente espectral de potencia a menos que se indique otra cosa. Además, los coeficientes predictivos lineales se codifican usando una técnica de codificación convencional, por ejemplo, y el código de coeficiente predictivo resultante se transmite al lado de la descodificación. Ejemplos de la técnica de codificación convencional incluyen una técnica de codificación que produce un código correspondiente a los propios coeficientes predictivos lineales a modo de código de coeficiente predictivo, una técnica de codificación que convierte coeficientes predictivos lineales en parámetros de LSP y produce un código correspondiente a los parámetros de LSP como código de coeficiente predictivo, y una técnica de codificación que convierte coeficientes predictivos lineales en coeficientes PARCOR y produce un código correspondiente a los coeficientes PARCOR como código de coeficiente predictivo.
<Normalizador 1003 de envolvente ponderada>
El normalizador 1003 de envolvente ponderada usa valores en una secuencia de envolvente espectral de potencia W(1), ..., W(N) obtenidos por la unidad 1002 aritmética de secuencia de envolvente espectral de potencia para normalizar valores en una cadena de coeficientes X(1), ..., X(N) de MDCT, obtenidos por el transformador 1001 del dominio de la frecuencia, obteniendo con ello y presentando a la salida una cadena de coeficientes XN(1), ..., XN(N) de MDCT normalizados ponderados (es decir, una cadena de muestra del dominio de la frecuencia derivada de una señal de audio en cada intervalo de tiempo predeterminado). En la presente memoria, con el fin de conseguir cuantificación que minimice auditivamente la distorsión, el normalizador 1003 de envolvente ponderada usa valores en una secuencia de envolvente espectral de potencia ponderada obtenidos por alisamiento de la envolvente espectral de potencia para normalizar los coeficientes en la cadena de coeficientes de MDCT. En consecuencia, la cadena de coeficientes Xn (1), ..., Xn(N) de MDCT normalizados ponderados tiene una pendiente más pequeña de amplitud y de fluctuaciones de amplitud que la cadena de coeficientes X(1), ..., X(N) de MDCT obtenidos por el transformador 1001 del dominio de la frecuencia, pero tiene variaciones de magnitud similares a las de la secuencia de envolvente espectral de potencia de la señal de audio de entrada, es decir, tiene amplitudes ligeramente mayores en una región de coeficientes correspondiente a bajas frecuencias y tiene una estructura fina debido a un período de tono.
<Ejemplos de procesamiento de normalización de envolvente ponderada>
Aunque se proporcionan en la presente memoria dos ejemplos de procesamiento de normalización de envolvente ponderada, la presente invención no se limita a los ejemplos.
<Ejemplo 1>
El normalizador 1003 de envolvente ponderada realiza procesamiento para obtener los coeficientes Xn(1) = X(1)/ralz(WY(1)}, ..., Xn(N) = X(N)/ralz(Wy(N)) en una cadena de coeficientes de MDCT normalizados ponderados dividiendo cada uno de los coeficientes X(1), ..., X(N) en una cadena de coeficientes de MDCT por la ralz cuadrada ralz(wg(n)} de un valor de corrección Wy(N) de cada valor W(n) en una secuencia de envolvente espectral de potencia que corresponde al coeficiente. El valor de corrección Wg(n} [1 < n < N] viene dado por la ecuación (3). En la presente, g es una constante positiva más pequeña que, o igual a, 1 que alisa los coeficientes espectrales de potencia espectral.
[Ecuación 2]
Figure imgf000008_0001
<Ejemplo 2>
El normalizador 1003 de envolvente ponderada realiza procesamiento para obtener los coeficientes Xn(1) = X(1}/ralz(W(1}b), ..., XN(N) = X(N)/ralz(W(N}b) en una cadena de coeficientes de MDCT normalizados ponderados dividiendo cada coeficiente X(n) de una cadena de coeficientes de MDCT por la ralz cuadrada ralz(W(n}b} de un valor W(n}b obtenido al elevar cada valor W(n) en una secuencia de envolvente espectral de potencia que corresponda al coeficiente, a la potencia de b (0 < b < 1}.
Como resultado, se obtiene una cadena de coeficientes de MDCT normalizados ponderados en cada trama. La cadena de coeficientes de MDCT normalizados ponderados tiene una pendiente más pequeña de amplitud y de fluctuaciones de amplitud que la cadena de coeficientes de MDCT obtenida por medio del transformador 1001 del dominio de la frecuencia, pero tiene variaciones de magnitud similares a las de la envolvente espectral de potencia de la cadena de coeficientes de MDCT obtenida por el transformador 1001 del dominio de la frecuencia, es decir, tiene amplitudes ligeramente mayores en una región de coeficientes correspondiente a bajas frecuencias y tiene una estructura fina debido a un perlodo de tono.
Obsérvese que debido a que la inversa del procesamiento de normalización de envolvente ponderada, es decir un proceso para reconstruir la cadena de coeficientes de MDCT a partir de la cadena de coeficientes de MDCT normalizados ponderados, se realiza en el lado de la descodificación, el método para calcular una secuencia de envolvente espectral de potencia ponderada a partir de una secuencia de envolvente espectral de potencia necesita ser común al lado de la codificación y al lado de la descodificación.
<Analizador 1004 de periodicidad>
El analizador 1004 de periodicidad toma una entrada de una cadena de coeficientes XN(1), ..., XN(N) de MDCT normalizados ponderados presente en la salida del normalizador 1003 de envolvente ponderada, y obtiene y presenta a la salida un indicador S del grado de periodicidad de la cadena de coeficientes de MDCT normalizados ponderados (es decir, un indicador del grado de periodicidad de una secuencia de muestra en el dominio de la frecuencia) y un perlodo T de la cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados.
Adicionalmente, el analizador 1004 de periodicidad codifica el perlodo T para obtener y presentar a la salida un código de perlodo que es un código correspondiente al perlodo T. Se puede usar cualquier método para codificar el perlodo T que permita que el descodificador descodifique el código de perlodo de nuevo al mismo valor que el del periodo T. Además, el analizador 1004 de periodicidad puede codificar el indicador S para obtener y presentar a la salida un código de indicador que sea un código correspondiente al indicador S. Se puede usar cualquier método para codificar el indicador S que permita que el descodificador descodifique el código de indicador de nuevo al mismo valor que el del indicador S. Obsérvese que el analizador 1004 de periodicidad no necesita obtener ni presentar a la salida un código de indicador si el descodificador puede calcular el indicador S sin usar un código de indicador.
El indicador S del grado de periodicidad es un indicador que indica el grado al que se incrementa periódicamente la amplitud de los coeficientes de MDCT normalizados ponderados. En otras palabras, el indicador S puede ser cualquier indicador de tal modo que cuanto más grande sea el valor de S, más grande será el grado de periodicidad (más alta la periodicidad). El indicador S del grado de periodicidad se introduce en el codificador 1300 de comparación y selección. Si se genera un código de indicador correspondiente al indicador S, el código de indicador se transmite al descodificador.
El período T es información que corresponde a intervalos a los que un coeficiente de MDCT normalizado ponderado toma periódicamente un valor grande. El período T es un valor positivo. El período T puede ser un número entero o una fracción decimal (por ejemplo, 5,0, 5,25, 5,5, 5,75). Cuando el indicador S del grado de periodicidad es mayor que un umbral TH predeterminado (H: cuando el indicador S corresponde a alta periodicidad, es decir, cuando la periodicidad es alta), el período T se introduce en el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, y en el codificador 1300 de comparación y selección; cuando el indicador S del grado de periodicidad es menor o igual que el umbral TH predeterminado (L: cuando el indicador S no corresponde a alta periodicidad, es decir, cuando el indicador S corresponde a baja periodicidad, en otras palabras, cuando la periodicidad es baja), el período T se introduce en el segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad y en el codificador 1300 de comparación y selección. La determinación puede hacerse por medio del analizador 1004 de periodicidad o en otra parte, no representada. El código de periodo correspondiente al período T se transmite al descodificador.
Un ejemplo de indicador S del grado de periodicidad, va a ser proporcionado en lo que sigue. En la presente memoria, i en un coeficiente XN(i) (i = 1, 2, ..., N) de MDCT normalizado ponderado, se menciona como el índice de un coeficiente de MDCT normalizado ponderado. Cuando la amplitud de los coeficientes de MDCT normalizados ponderados se incrementa periódicamente, esto significa que el valor de un coeficiente Xn(V x Tf) (donde V es un número entero positivo), correspondiente a un índice que es un múltiplo entero de un intervalo Tf de tiempo predeterminado (donde Tf es un número entero positivo), es mayor que un coeficiente que corresponda a otro índice. Por consiguiente, cuanto mayor sea el grado de periodicidad, mayor será la suma de los valores absolutos de las amplitudes de los coeficientes de MDCT normalizados ponderados que tengan índices que sean múltiplos enteros de Tf. Por lo tanto, el indicador S del grado de periodicidad se obtiene, por ejemplo, mediante:
[Ecuación 3]
Figure imgf000009_0001
En la presente, G1(Tf) es un conjunto de índices que son múltiplos enteros de Tf, es decir, G1(Tf) = (Tf, 2Tf, 3Tf, ..., Vmáx x Tf), (criterio de intervalo 1). En la presente, Vmáx es un número entero positivo que satisface Vmáx x Tf < N. Vmáx puede ser el máximo número entero positivo que satisface Vmáx x Tf < N, o puede ser un número entero positivo que sea más pequeño que el número entero positivo máximo que satisface Vmáx x Tf < N. |XN(k)| representa el valor absoluto de XN(k). En vez del valor absoluto de la amplitud, se puede usar la suma de los cuadrados (energía) de la amplitud como indicador S.
[Ecuación 4]
S = Z keG1(Tf)X?,(k) (5)
La media de las amplitudes puede ser usada como indicador S debido a que una gran suma de los valores absolutos de las amplitudes o una gran suma de energía significa que la media de los valores absolutos de las amplitudes o la media de la energía son grandes.
[Ecuación 5]
Figure imgf000009_0002
En la presente, card(G1(Tf)) representa el número de elementos de un conjunto G1(Tf), es decir, el número total de índices incluidos en G1(Tf). Alternativamente, el indicador S puede ser la suma, el valor medio o la suma ponderada de valores de función monótonamente crecientes de las magnitudes de amplitudes XN(k) correspondientes a los índices incluidos en G1(Tf). Cuanto mayor sea el valor de cualquiera de esos indicadores S, mayor será el grado de periodicidad.
Obsérvese que cuando el grado de periodicidad es alto, es probable que coeficientes con índices que se acercan a un índice que es un múltiplo entero de Tf, por ejemplo, Xn(V x Tf - 1) y Xn(V x Tf + 1), tengan amplitudes mayores que los coeficientes con otros índices. Por lo tanto, los índices que sean cercanos a múltiplos enteros de Tf pueden ser incluidos en G1(Tf) adicionalmente a los índices que son múltiplos enteros de Tf (es decir, Tf, 2Tf, 3Tf ,, ..., Vmáx x Tf) (criterio de intervalo 2). Por ejemplo, G1(Tf) puede ser: G1(Tf) = {Tf -1, Tf, Tf + 1, 2Tf - 1, 2Tf, 2Tf + 1, ..., Vmáx x Tf - 1, Vmáx x Tf ,, Vmáx x Tf + 1}. Obsérvese que índices cercanos a un índice que sea un múltiplo entero de Tf son números enteros mayores o iguales que V x Tf - 81 , y menores o iguales que V x Tf + 82, donde 81 y 82 son números enteros positivos y 81 = G1(Tf) puede ser un conjunto de algunos índices en un conjunto formado por los índices que sean múltiplos enteros de Tf y los índices cercanos a los índices que sean los múltiplos enteros de Tf (criterio de intervalo 3).
Por ejemplo, G1(Tf) puede ser un conjunto formado por algunos de los índices que sean múltiplos enteros de Tf y algunos de los índices cercanos a los índices que son múltiplos enteros de Tf, o puede ser un conjunto formado solamente por algunos de los índices que sean múltiplos enteros de Tf o puede ser un conjunto formado solamente por índices cercanos a los índices que son múltiplos enteros de Tf, o puede ser un conjunto formado solamente por algunos de los índices cercanos a los índices que son múltiplos enteros de Tf. En este caso, se pueden seleccionar “algunos de los índices” mediante cualquier método, por ejemplo, “algunos de los índices” pueden ser índices menores o iguales que el índice que corresponda a una frecuencia predeterminada
(por ejemplo, índices que correspondan a frecuencias más bajas o iguales que una frecuencia predeterminada) o pueden ser índices mayores o iguales que el índice correspondiente a una frecuencia predeterminada (por ejemplo, índices que correspondan a frecuencias más altas o iguales que una frecuencia predeterminada).
Además, Tf puede ser una fracción decimal positiva. En ese caso, se puede establecer un conjunto G1(Tf) conforme a un criterio de intervalo en el que “Tf”, en cualquiera de los criterios de intervalo descritos con anterioridad, se sustituye por el “R(Tf) entero más cercano al que se redondea Tf” (en lo que sigue el número entero más cercano al que se redondea a se indica mediante R(a)). Se puede establecer un conjunto G1(Tf) conforme a un criterio de intervalo en el que “múltiplos enteros de Tf” en cualquiera de los criterios de intervalo descritos con anterioridad se sustituyen por los “números enteros más cercanos a los que los múltiplos enteros de Tf se puedan redondear”. Un conjunto G1(Tf) puede ser establecido conforme a un criterio de intervalo en el que “números enteros múltiplos de Tf” y “cercanos a un múltiplo entero de Tf” en cualquiera de los criterios de intervalo descritos con anterioridad, se sustituyen por los “números enteros más cercanos a los que se redondean los múltiplos enteros de Tf” y los “números enteros más próximos a los que se redondean los valores cercanos de un múltiplo entero de Tf”, respectivamente. Por ejemplo, un conjunto puede ser G1(Tf) = {R(Tf), 2R(Tf), 3R(Tf), ..., Vmáx x R(Tf)} o G1(Tf) = {R(Tf), R(2Tf), R(3Tf), ..., R(Vmáx x Tf)}, o G1(Tf) = {R R(Tf), R(Tf) 1, 2R(Tf) - 1, 2R(Tf), 2R(Tf) 1 R(Tf) - 1
{R(Tf) - 1, R(Tf), R(Tf) 1, R(2Tf) - 1, R(2Tf), R(2Tf) 1, ..., R(Vmáx x Tf) - 1, R(Vmáx x Tf), R(Vmáx x Tf) 1}, o G1(Tf) = {R(Tf - 1), R(Tf), R(Tf + 1), R(2Tf - 1), R(2Tf), R(2Tf + 1), ..., R(Vmáx x Tf - 1), R(Vmáx x Tf), R(Vmáx x Tf
+ 1).
Tf corresponde a un período de tono en el dominio de la frecuencia. El período de tono en el dominio de la frecuencia puede ser un número entero positivo o una fracción decimal positiva. Si el período de tono Tp en el dominio de la frecuencia ha sido obtenido mediante una parte, no representada, en el codificador 100, Tp puede ser presentado a la salida como período T, y Tf puede ser sustituido por Tp para obtener y presentar a la salida el indicador S descrito con anterioridad. Si una frecuencia fundamental f del dominio de la frecuencia ha sido obtenida mediante una parte, no representada, en el codificador 100, T = fs/f o T = R(fs/f) puede ser presentado a la salida como período T, donde fs es la frecuencia de muestreo y T puede ser usado como Tf para obtener y presentar a la salida el indicador S descrito con anterioridad. Si una frecuencia fundamental del dominio del tiempo o el período de tono han sido obtenidos por medio de una parte, no representada, en el codificador 100, la frecuencia fundamental en el dominio del tiempo o el período de tono pueden ser convertidos a un período del dominio de la frecuencia, el intervalo convertido T' puede ser presentado a la salida como período T, y el T (= T') puede ser usado como Tf para obtener y presentar a la salida el indicador S descrito con anterioridad. Por ejemplo, el intervalo convertido T' puede ser calculado conforme a la Ecuación
(7) u (8) que se proporcionan a continuación:
T' = N x 2/L - 1/2 (7)
V = INT(N x 2/L) (8)
donde L es el período de tono en el dominio del tiempo e INT() representa un valor en el que la parte fraccionaria del valor en () se descarta. En la presente, el intervalo convertido T' obtenido conforme a la Ecuación (7), no es necesariamente un número entero. Por otra parte, la Ecuación (8) es igual a un valor obtenido por redondeo de la Ecuación (7) hasta el número entero más cercano añadiendo 1X a la Ecuación (7) y descartando la parte fraccionaria. De ese modo, el intervalo convertido T' obtenido conforme a la Ecuación (8) es un número entero.
Además, múltiplos enteros U' x T' de un intervalo convertido T' obtenido por conversión de una frecuencia fundamental o un período de tono obtenido en el dominio del tiempo al dominio de la frecuencia y múltiplos enteros U x Tp de un período de tono Tp obtenido en el dominio de la frecuencia, pueden ser establecidos como períodos candidato, siendo los períodos candidato usados como Tf para calcular los indicadores S descritos con anterioridad, y el más grande de los indicadores S puede ser presentado a la salida como indicador S del grado de periodicidad, y el período candidato que produce el valor más grande puede ser presentado a la salida como período T. En la presente, U y U' son números enteros positivos. Específicamente, se puede llevar a cabo el proceso siguiente.
En primer lugar, el analizador 1004 de periodicidad establece U' x T' y/o U x Tp como períodos candidato para U y/o U' en un rango predeterminado, por ejemplo. El rango predeterminado puede ser un rango que incluya 1 o que excluya 1. Por ejemplo, si el rango predeterminado es desde 1 (inclusive) hasta 8 (inclusive), los períodos candidato son T', 2T', 3T', 4T', 5T', 6T', 7T', 8T' y/o Tp, 2Tp, 3Tp, 4Tp, 5Tp, 6Tp, 7Tp, 8Tp; si el rango predeterminado es desde 3 (inclusive) hasta 8 (inclusive), los períodos candidato son 3T', 4T', 5T', 6T', 7T', 8T' y/o 3Tp, 4Tp, 5Tp, 6Tp, 7Tp, 8Tp. Entonces el analizador 1004 de periodicidad decide un conjunto G1(Tf), donde Tf es el período candidato, y obtiene un indicador S para cada uno de los candidatos según se ha descrito con anterioridad. El analizador 1004 de periodicidad selecciona a continuación el mayor de los indicadores S obtenidos, presenta a la salida el indicador S más grande como indicador S del grado de periodicidad, y presenta a la salida el período candidato que produce el valor más grande como período T.
En otro ejemplo, adicionalmente a un intervalo convertido T' y a sus múltiplos enteros U' x T' y/o a un período de tono Tp y a sus múltiplos enteros U x Tp, pueden ser elegidos valores cercanos a estos valores como períodos candidato, donde los períodos candidato se usan como Tf para calcular los indicadores S descritos con anterioridad, pudiendo el más grande de los indicadores S ser presentado a la salida como indicador S del grado de periodicidad, y el período candidato que produzca el indicador S más grande puede ser presentado a la salida como período T. Por ejemplo, si el rango predeterminado es desde 1 (inclusive) hasta 8 (inclusive), los períodos candidato pueden ser T' - 1, T', T' 1, 2T' - 1, 2T', 2T' 1, 3T' - 1, 3T', 3T' 1, 4T' - 1, 4T', 4T' 1, 5T' - 1, 5T', 5T' 1, 6T'-1, 6T', 6T' 1, 7T' - 1, 7T', 7T' 1, 8T' - 1, 8T', 8T' 1, y/o Tp - 1, Tp, Tp + 1, 2Tp - 1, 2Tp, 2Tp + 1, 3Tp - 1, 3Tp, 3Tp + 1, 4Tp - 1, 4Tp, 4Tp + 1, 5Tp - 1, 5Tp, 5Tp + 1, 6Tp - 1, 6Tp, 6Tp + 1, 7Tp - 1, 7Tp, 7Tp + 1, 8Tp - 1, 8Tp, 8Tp + 1. Alternativamente, los períodos candidato pueden ser cercanos a un intervalo convertido T' y a sus múltiplos enteros U' x T' y/o cercanos a un período de tono Tp y a sus múltiplos enteros U x Tp, excluyendo el intervalo convertido T' y sus múltiplos enteros U' x T' y/o el período de tono Tp y sus múltiplos enteros U x Tp. Por ejemplo, si el rango predeterminado es desde 1 (inclusive) hasta 8 (inclusive), los períodos candidato pueden ser T' - 1, T' 1, 2T' - 1, 2T' 1, 3T' - 1, 3T' 1, 4T' - 1, 4T' 1, 5T' - 1, 5T' 1, 6T' - 1, 6T' 1, 7T' - 1, 7T' 1, 8T' - 1, 8T' 1, y/o Tp - 1, Tp + 1, 2Tp - 1, 2Tp + 1, 3Tp - 1, 3Tp + 1, 4Tp -1, 4Tp + 1, 5Tp - 1, 5Tp + 1, 6Tp - 1, 6Tp + 1, 7Tp - 1, 7Tp + 1, 8Tp -1, 8Tp + 1. Alternativamente, los períodos candidato pueden ser algunos de los elementos de un conjunto formado por un intervalo convertido T' y sus múltiplos enteros U' x T' y/o un período de tono Tp y sus múltiplos enteros U x Tp y sus valores cercanos. El rango predeterminado puede ser un rango que consista en un intervalo, o un rango que consista en una pluralidad de intervalos. Por ejemplo, el rango predeterminado puede ser un rango que consista en más de, o sea igual a, 1 pero menor o igual a 3 intervalos, y un rango que consista en más de, o sea igual a, 7 pero menor que, o igual a, 10 intervalos.
<Estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad (Figura 2)>
Se lleva a cabo un proceso por medio del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad cuando se determina por medio del analizador 1004 de periodicidad o similar, que el indicador S es mayor que el umbral TH predeterminado (la periodicidad es alta). El proceso por parte del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad toma entradas de una cadena de coeficientes Xn (1), ..., Xn(N) de MDCT normalizados ponderados y de un período T, y ajusta el valor de la ganancia g llevando a cabo un proceso de bucle de ganancia (es decir, un proceso de bucle) para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y un primer valor cH1 estimado de cantidad de código basado en periodicidad. Obsérvese que el término proceso de bucle es intercambiable con el término proceso de convergencia iterativa o bucle de velocidad.
La ganancia g es un valor para normalizar los coeficientes Xn(1), ..., Xn (N) en una cadena de coeficientes de MDCT normalizados ponderados y es equivalente a la relación entre un coeficiente XN(n) de MDCT normalizado ponderado y un coeficiente XQ(n) normalizado cuantificado (n = 1, 2, ..., N). En la presente se supone que los coeficientes Xn (1), ..., Xn(N) incluidos en una cadena de coeficientes de MDCT normalizados ponderados han sido normalizados usando una ganancia g común. Específicamente, una secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados es una secuencia de valores Xo (n) obtenidos dividiendo cada uno de los coeficientes XN(n) en una cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados por una ganancia g común, y cuantificando los valores resultantes XN(n)/g a valores enteros. La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados es equivalente a una “secuencia de valores enteros que es una secuencia de muestras de valor entero que se obtienen al dividir cada muestra de una cadena de muestra del dominio de la frecuencia por una ganancia”. Un primer valor chi estimado de cantidad de código basado en periodicidad es un valor estimado de la cantidad de código de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, estimados con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados (que es una secuencia de valores enteros), se codifica usando un método de codificación basado en periodicidad. El proceso de bucle de ganancia es un proceso que se repite mientras se incrementa el valor de la ganancia mediante un regulador 1105 de ganancia mínima, una primera unidad 1106 de ramificación, un primer actualizador 1107 de ganancia, y un incrementador 1108 de ganancia, o reduciendo el valor de la ganancia por medio de un regulador 1109 de ganancia máxima, una segunda unidad 1110 de ramificación, un segundo actualizador 1111 de ganancia, y un reductor 1112 de ganancia. Un ejemplo del proceso de bucle de ganancia ha sido usado en AMR-WB+ y otra codificación en la Bibliografía no de Patentes 1 descrita con anterioridad.
El estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad toma entradas de una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y de un período T presente a la salida del analizador 1004 de periodicidad, y ajusta la ganancia g mediante el proceso de bucle de ganancia para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados (es decir, una secuencia de valores enteros) de tal modo que un valor estimado de la cantidad de código (un número de bits estimado), estimado con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se ha codificado usando el método de codificación basado en periodicidad, es más pequeño que, o igual al, número B de bits asignados, el cual es el número de bits asignados por anticipado, y tan grande como sea posible. Adicionalmente, el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad presenta a la salida el número estimado de bits. El número estimado de bits se menciona como el “primer valor cH1 estimado de cantidad de código basado en periodicidad” puesto que el número de bits estimado presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad es un valor estimado de la cantidad de código de un método de codificación que usa periodicidad.
La Figura 3 ilustra un ejemplo detallado de configuración del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad. El estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad comprende, por ejemplo, un inicializador 1101, un cuantificador 1102 de secuencia del dominio de la frecuencia, un primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad, un determinador 1104, un regulador 1105 de ganancia mínima, una primera unidad 1106 de ramificación, un primer actualizador 1107 de ganancia, un incrementador 1108 de ganancia, un regulador 1109 de ganancia máxima, una segunda unidad 1110 de ramificación, un segundo actualizador 1111 de ganancia, y un reductor 1112 de ganancia.
<Inicializador 1101 (Figura 3)>
El inicializador 1101 establece un valor inicial de la ganancia g. El valor inicial de la ganancia puede ser decidido a partir de factores tales como la energía de una cadena de coeficientes Xn (1), ..., Xn(N) de MDCT normalizados ponderados y del número de bits asignados por anticipado a un código presente a la salida del codificador 1300 de comparación y selección. El valor inicial de la ganancia g es un valor positivo. El número de bits asignados por anticipado a un código de señal de número entero presente a la salida del codificador 1300 de comparación y selección, será mencionado en lo que sigue como número B de bits asignados. El inicializador 1101 establece también 0 como el valor inicial del número de actualizaciones de la ganancia.
<Cuantificador 1102 de secuencia del dominio de la frecuencia>
El cuantificador 1102 de secuencia del dominio de la frecuencia cuantifica valores XN(1)/g, ..., XN(N)/g que se obtienen dividiendo cada valor de una cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados por la ganancia g para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, la cual es una secuencia de valores enteros. La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de salida se introduce en el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad.
<Primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad>
El primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad obtiene un valor c estimado de la cantidad de código (un número estimado de bits) de un código de señal de número entero correspondiente a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados que se estima con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados que está presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia, se codifica usando el método de codificación basado en periodicidad como codificación de longitud variable, y presenta a la salida el número c estimado de bits y la secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados. El número c estimado de bits y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados que salen del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad, se introducen en el determinador 1104.
<Método de codificación basado en periodicidad>
Un ejemplo de codificación de longitud variable que hace uso del método de codificación basado en periodicidad, va a ser descrito a continuación. En el método de codificación basado en periodicidad, por ejemplo, el grupo de muestra Grl formado por todos, o algunos de, uno o una pluralidad de coeficientes sucesivos (en lo que sigue mencionados también como muestras), incluyendo una muestra que corresponde a un múltiplo entero de un período T, en una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, y un grupo de muestra Gr2 formado por muestras en la secuencia de coeficientes Xq (1), ..., XQ(N) normalizados cuantificados que no están incluidos en el grupo de muestra Grl, se codifican (por separado) conforme a criterios de codificación diferentes.
<Ejemplos de grupos de muestra Grl y Gr2>
El grupo de muestra Grl es un conjunto {XQ(k)|k e G1(T) y k e {1, ..., N}} formado por muestras XQ(k) correspondientes a índices k e G1(T) incluidos en un conjunto G1(T) que es G1(Tf) en el que Tf = T. El grupo de muestra Gr2, en este caso, es un conjunto {Xq (í)|í e {1, ..., N)} \ G1(T)} formado por muestras Xq (í) que corresponden a índices i e {1, ..., N} \ G1(T) que no están incluidos en el conjunto G1(T) en el conjunto de índices {1, ..., N}.
Por ejemplo, si el período T es un número entero y G1(T) = {T, 2T, 3T, ..., Vmáx x T}, entonces Grl = {Xq (T), Xq (2T), Xq (3T), ..., Xq (Vmáx x T), y Gr2 = {Xq (1), ..., Xq (T - 1), Xq (T 1), ..., Xq (2T - 1), Xq (2T 1), ..., XQ(Vmáx x T-1), XQ(Vmáx x T 1), ..., Xq (N)}. Por ejemplo, si el período T es un número entero y G1(T) = {T - 1, T, T 1, 2T - 1, 2T, 2T 1, ..., Vmáx x T - 1, Vmáx x T, Vmáx x T 1}, entonces Grl = {Xq (T - 1), Xq (T), Xq (T 1), Xq (2T - 1), Xq (2T), Xq (2T 1), ..., Xq (Vmáx x T - 1), XQ(Vmáx x T), Xq (Vmáx x T 1)} y Gr2 = {Xq (1), ..., Xq (T - 2), Xq (T 2), ..., Xq (2T - 2), Xq (2T 2), ..., XQ(Vmáx x T - 2), XQ(Vmáx x T 2), ..., Xq (N)}. Por ejemplo, si el período T es una fracción decimal positiva y G1(T) = {R(T), R(2T), R(3T), ..., R(Vmáx x T)}, entonces Grl = {Xq (R(T)), Xq (R(2T)), Xq (R(3T)), ..., Xq (R(Vmáx x T))} y Gr2 = (Xq (1), ..., Xq (R(T) - 1), Xq (R(T) 1), ..., Xq (R(2T) - 1), Xq (R(2T) 1), ..., XQ(R(Vmáx x T) - 1), XQ(R(Vmáx x T) 1), ..., XQ(n)}. Por ejemplo, si el período T es una fracción decimal positiva y G1(T) = {R(T - 1), R(T), R(T 1), R(2T - 1), R(2T), R(2T 1, ..., R(Vmáx x T-1), R(Vmáx x T), R(Vmáx x T 1), entonces Grl = {Xq (R(T - 1), Xq (R(T)), Xq (R(T 1)), Xq (R(2T - 1)), Xq (R(2T)), Xq (R(2T i )), ..., Xq (R(Vmáx x t -1)), Xq (R(Vmáx x T)), XQ(R(Vmáx x T 1))} y Gr2 = {Xq (1), ..., Xq (R(T - 1) - 1), Xq (R(T 1) 1), ..., Xq (R(2T - 1) - 1), Xq (R(2T 1) 1), ..., XQ(R(Vmáx x T - 1) - 1), XQ(R(Vmáx x T 1) 1), ..., Xq (N)}.
Obsérvese que un conjunto G1(T) puede ser establecido conforme al mismo criterio de intervalo que para un conjunto G1(Tf) para obtener un indicador S o puede ser establecido conforme a un criterio de intervalo diferente de un criterio de intervalo para el conjunto G1(Tf) para obtener un indicador S. Por ejemplo, G1(Tf) puede ser establecido conforme al criterio de intervalo 1 y g 1(T) puede ser establecido conforme al criterio de intervalo 2. Específicamente, si G1(Tf) es {Tf, 2Tf, 3Tf,, ..., Vmáx x Tf), G1(T) puede ser {T - 1, T, T 1, 2T - 1, 2T, 2T 1, ..., Vmáx x T - 1, Vmáx x T, Vmáx x T 1}. Alternativamente, el indicador S puede ser obtenido mediante un método diferente de los métodos descritos con anterioridad y el conjunto G1(T) puede ser establecido conforme a cualquiera de los criterios de intervalo descritos con anterioridad. Además, el número de muestras incluidas en cada uno de los grupos de muestra que forman el grupo de muestra de muestra G1 y los índices de muestra pueden ser variables, o la información que representa una combinación seleccionada entre diferentes combinaciones del número de muestras incluidas en cada uno de los grupos de muestra que forman el grupo de muestra Grl y los índices pueden ser presentados a la salida como información suplementaria.
<Ejemplo de método de codificación basado en periodicidad>
Las muestras incluidas en un grupo de muestra Grl tienen amplitudes más grandes que las muestras incluidas en un grupo de muestra Gr2 por término medio. En vista de ello, las muestras incluidas en el grupo de muestra Grl son codificadas usando codificación de longitud variable conforme a un criterio de codificación correspondiente a las magnitudes de las amplitudes o a las magnitudes estimadas de las amplitudes de las muestras incluidas en el grupo de muestra Grl, y las muestras incluidas en el grupo de muestra Gr2 se codifican usando codificación de longitud variable conforme a un criterio de codificación correspondiente a las magnitudes de las amplitudes o a las magnitudes estimadas de las amplitudes de las muestras incluidas en el grupo de muestra Gr2. Con esta configuración, la cantidad media de código de un código de longitud variable puede ser reducida debido a que se puede conseguir una precisión más alta de estimación de las amplitudes de las muestras que con una configuración en la que todas las muestras incluidas en la cadena de muestras sean codificadas usando codificación de longitud variable conforme al mismo criterio de codificación. En otras palabras, la codificación del grupo de muestra de Grl y del grupo de muestra Gr2 conforme a criterios de codificación diferentes, tiene el efecto de reducir la cantidad de código de la cadena de muestra. Ejemplos de la magnitud de amplitud incluyen el valor absoluto de la amplitud y la energía de la amplitud.
<Ejemplo de codificación de Rice>
Se va a describir un ejemplo en el que se usa codificación de Rice de muestra a muestra como codificación de longitud variable.
En esta codificación de longitud variable, se usa un parámetro de Rice correspondiente a la magnitud de la amplitud o a una magnitud estimada de la amplitud de cada una de las muestras incluidas en el grupo de muestra Gr1, para codificar las muestras incluidas en un grupo de muestra Gr1 sobre una base de muestra a muestra usando codificación de Rice. Se usa un parámetro de Rice correspondiente a la magnitud de la amplitud o a una magnitud estimada de la amplitud de cada una de las muestras incluidas en el grupo de muestra Gr2, para codificar las muestras incluidas en un grupo de muestra Gr2 sobre una base de muestra a muestra usando codificación de Rice. Las cadenas de código obtenidas mediante la codificación de Rice y la información suplementaria para identificar los parámetros de Rice, se presentan a la salida.
Por ejemplo, un parámetro de Rice para un grupo de muestra Gr1 en cada trama se obtiene a partir de la media de las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr1 en la trama. Por ejemplo, un parámetro de Rice para el grupo de muestra Gr2 en cada trama se obtiene a partir de la media de las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr2 en la trama. Los parámetros de Rice son números enteros mayores que, o iguales a 0. El parámetro de Rice para el grupo de muestra Gr1 en cada trama se usa para codificar las muestras incluidas en el grupo de muestra Gr1 en la trama mediante codificación de Rice; el parámetro de Rice para el grupo de muestra Gr2 se usa para codificar las muestras incluidas en el grupo de muestra Gr2 en la trama mediante codificación de Rice. Esto permite la reducción de la cantidad media de código. Esto va a ser descrito en detalle.
En primer lugar, se va a describir un ejemplo en el que las muestras incluidas en el grupo de muestra Gr1 son codificadas sobre una base de muestra a muestra usando codificación de Rice. Un código que se obtiene mediante codificación de Rice de las muestras XQ(k) incluidas en el grupo de muestra Gr1 sobre una base de muestra a muestra, incluye prefix(k) resultante de la codificación unaria de un cociente q(k) obtenido al dividir la muestra XQ(k) por un valor correspondiente al parámetro de Rice s para el grupo de muestra Gr1 y sub(k) que identifica el resto. Por así decirlo, el código correspondiente a una muestra XQ(k) en este ejemplo incluye prefix(k) y sub(k). Las muestras XQ(k) a ser codificadas usando codificación de Rice son representaciones de números enteros.
A continuación se van a describir métodos para calcular q(k) y sub(k).
Si el parámetro de Rice s > 0, el cociente q(k) se genera como sigue. En la presente, floor(c) es el máximo número entero menor que o igual a %.
q(k) - floor(XQ(k)/2s ' l ) (for XQ(k) >0) (B1)
q(k) = floor {(-XQ(k) - 1)/2S' l) (for XQ(k) < 0) (B2)
Si el parámetro de Rice s = 0, el cociente q(k) se genera como sigue:
q(k) - 2 x XQ(k) (for XQ(k) > 0) (B3)
q(k) = -2 x XnOO - 1 (for Xnflt) < 0) (B4)
Si el parámetro de Rice s > 0, sub(k) se genera como sigue:
sub(k) = XQ(k) - 2S' 1 x q(k) 2S' 1 (for XQ(k) > 0) (B5)
sub(k) = (-XQ(k) -1) - 2S' 1 x q(k) (for XQ(k) < O) (B6)
Si el parámetro de Rice s = 0, sub(k) es nulo (sub(k) = nulo).
Las ecuaciones (B1) a (B4) pueden ser generalizadas para que representen el cociente q(k) como sigue. En la presente, |-| representa el valor absoluto de:
q(k) = floor{(2 x|Xo(k)|- z)/2s} (z = 0 o 1 o 2) (B7)
En codificación de Rice, prefix(k) es un código resultante de la codificación unaria del cociente q(k), y la cantidad del código puede ser expresada usando la Ecuación (B7) como:
floor{(2 x|XQ(k)| - z)/25} 1 (B8)
En codificación de Rice, sub(k) que identifica el resto de cada una de las Ecuaciones (B5) y (B6) está representado por s bits. Por consiguiente, la cantidad total de código C(s, XQ(k), Gr1) del código (prefix(k) y sub(k)) correspondiente a las muestras XQ(k) incluidas en el grupo de muestra Gr1, puede ser expresada como:
[Ecuación 6]
C(s,XQ(k),Grl)
= X[floor{(2x |X Q(k)|-z)/2s} l s] (B9) keGrl
Aquí, mediante aproximación como floor{(2 x |XQ(k)| - z)/2s} = (2 x |XQ(k)| - z)/2s, la Ecuación (B9) puede ser aproximada como:
[Ecuación 7]
C(s, XQ (k), Grl) = 2's (2 x D - zx | Gr 11)
(l s)x | Grl| (B10)
D = S XQ(k)
keGrl
donde |Gr1| representa el número de muestras XQ(k) incluidas en el grupo de muestra Gr1 en una trama.
Supóngase que s genera 0 como resultado de la diferenciación parcial con respecto a s en la Ecuación (B10), que se indica mediante s’:
s' = log2{ln2 x (2 x D/|Grl|- z)} (B ll)
Si D/|Gr1| es suficientemente más grande que z, la Ecuación (B11) puede ser aproximada como:
s' = log2{ln2 x (2 x D/1Gt1|)} (B12)
Puesto que s' obtenida conforme a la Ecuación (B12) no es un número entero, s' se cuantifica hasta un número entero y el número entero se usa como parámetro s de Rice. El parámetro s de Rice corresponde a la media D/|Gr1| de las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr1 (véase la Ecuación (B12)) y minimiza la cantidad de código total del código correspondiente a las muestras XQ(k) incluidas en el grupo de muestra Gr1.
Lo anterior se aplica también a codificación de Rice de las muestras incluidas en el grupo de muestra Gr2. De ese modo, la cantidad de código total puede ser minimizada obteniendo un parámetro de Rice para el grupo de muestra Gr1 a partir de la media de las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr1 en cada trama, obteniendo un parámetro de Rice para el grupo de muestra Gr2 a partir de la media de las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr2, y realizando codificación de Rice del grupo de muestra Gr1 y del grupo de muestra Gr2 por separado.
Las variaciones más pequeñas en las magnitudes de las amplitudes de las muestras XQ((k) dan como resultado una evaluación más apropiada de la cantidad de código total C(s, XQ(k), Gr1) obtenida conforme a la Ecuación (B10) aproximada. En consecuencia, especialmente cuando las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr1 son sustancialmente uniformes y las magnitudes de las amplitudes de las muestras incluidas en el grupo de muestra Gr2 son sustancialmente uniformes, la cantidad de código puede reducirse de forma más significativa.
[Método para calcular un número estimado de bits de un código de señal de número entero estimado con la suposición de que se usa un método de codificación basado en periodicidad como codificación de longitud variable]
A continuación se va a describir un ejemplo de método para calcular un número c estimado de bits de un código de señal de número entero con la suposición de que se usa un método de codificación basado en periodicidad como codificación de longitud variable. Por ejemplo, cuando se usa codificación de Rice de muestra a muestra como codificación de longitud variable, la cantidad de código total puede ser estimada a partir de parámetros de Rice y del número de muestras calculando un parámetro de Rice s1 preferible para el grupo de muestra Gr1, y un parámetro de Rice s2 preferible para el grupo de muestra Gr2, y suponiendo que los valores de las muestras siguen una distribución exponencial determinada, en vez de tener que realizar realmente codificación de longitud variable. Específicamente, D en la Ecuación (B10) puede ser sustituida por un valor ~D1 estimado con la suposición de que los valores de las muestras XQ(k) incluidas en el grupo de muestra Gr1 siguen una distribución exponencial y s puede ser sustituido por s1 para obtener ~C(s1, XQ(k), Gr1) como el valor estimado de la cantidad de código del grupo de muestra Gr1. Por ejemplo, el valor estimado ~D1 es un valor obtenido al multiplicar un valor esperado de una muestra que sigue la distribución exponencial por el número de muestras XQ(k) incluidas en el grupo de muestra Gr1. Un valor estimado de la cantidad de código del grupo de muestra Gr2 puede ser obtenido de una manera similar: Gr1 en la Ecuación (B10) se sustituye por Gr2, D se sustituye por un valor ~D2 estimado con la suposición de que los valores de las muestras XQ(k) incluidas en el grupo de muestra Gr2 siguen la distribución exponencial, s se sustituye por s2 para obtener un valor estimado ~C(s2, Xq (í), Gr2) como el valor estimado de la cantidad de código del grupo de muestra Gr2. Por ejemplo, el valor estimado ~D2 es un valor obtenido al multiplicar un valor esperado de una muestra que sigue la distribución exponencial, por el número de muestras XQ(i) incluidas en el grupo de muestra Gr2. Por lo tanto, un valor estimado de la cantidad de código (un número estimado c de bits) de la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados de entrada que se estima con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se codifica usando el método de codificación basado en periodicidad, es la suma de los valores estimados de las cantidades de código, ~C(s1, XQ(k), Gr1) ~C(s2, Xq (í), Gr2) (donde XQ(k) e Gr1 y Xq (¡) e Gr2).
<Determinador 1104>
Cuando el número de actualizaciones de ganancia es igual a un número predeterminado de actualizaciones o cuando el número estimado c de bits a la salida del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad es igual al número B de bits asignados, el determinador 1104 presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y el número estimado c de bits que se introducen desde el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad. El número estimado c de bits presente a la salida del determinador 1104 es un “primer valor ch1 estimado de cantidad de código basado en periodicidad”.
La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del determinador 1104, constituye la entrada al segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad y al codificador 1300 de comparación y selección. Un primer valor ch1 estimado de cantidad de código basado en periodicidad, que es el número estimado de bits de salida desde el determinador 1104, se introduce también en el codificador 1300 de comparación y selección.
Cuando el número de actualizaciones de ganancia es más pequeño que el número predeterminado de actualizaciones y el número estimado c de bits a la salida del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad es mayor que el número B de bits asignados, el determinador 1104 realiza un control para hacer que el regulador 1105 de ganancia mínima lleve a cabo el siguiente proceso; cuando el número de actualizaciones de ganancia es más pequeño que el número predeterminado de actualizaciones y el número estimado c de bits es más pequeño que el número B de bits asignados, el determinador 1104 realiza un control para hacer que el regulador 1109 de ganancia máxima lleve a cabo el siguiente proceso.
<Regulador 1105 de ganancia mínima>
El regulador 1105 de ganancia mínima establece el valor actual de la ganancia g como el límite inferior gmín de la ganancia (gmín — g). El límite inferior gmín de la ganancia representa el valor mínimo admisible de la ganancia.
<Primera unidad 1106 de ramificación>
Tras el proceso llevado a cabo por el regulador 1105 de ganancia mínima, la primera unidad 1106 de ramificación realiza un control para hacer que el primer actualizador 1107 de ganancia lleve a cabo el siguiente proceso si el límite superior gmáx de la ganancia ha sido ya establecido; en otro caso, la primera unidad 1106 de ramificación realiza un control para hacer que el incrementador 1108 de ganancia lleve a cabo el siguiente proceso. Adicionalmente, la primera unidad 1106 de ramificación añade 1 al número de actualizaciones de ganancia.
<Primer actualizador 1107 de ganancia>
El primer actualizador 1107 de ganancia establece el valor medio entre el valor actual de la ganancia g y el límite superior gmáx de la ganancia, por ejemplo, como un nuevo valor de la ganancia g (g (g gmáx)/2). Esto se debe a que el valor óptimo de la ganancia se encuentra entre el valor actual de la ganancia g y el límite superior gmáx de la ganancia. Puesto que el valor actual de la ganancia g ha sido establecido como el límite inferior gmín de la ganancia, se puede decir también que el valor medio entre el límite superior gmáx de la ganancia y el límite inferior gmín de la ganancia se establece como un nuevo valor de la ganancia g (g (gmáx + gmín)/2). La nueva ganancia g establecida se introduce en el cuantificador 1102 de secuencia del dominio de la frecuencia.
<Incrementador 1108 de ganancia>
El incrementador 1108 de ganancia establece un valor mayor que el valor actual de la ganancia g como un nuevo valor de la ganancia g. Por ejemplo, el incrementador 1108 de ganancia establece el valor actual de la ganancia g más una cantidad D g por la que debe ser cambiada la ganancia, el cual es un valor positivo predeterminado, como un nuevo valor de la ganancia g (g g D g). Además, por ejemplo, cuando se encuentra una pluralidad de veces sucesivas que el número estimado c de bits es mayor que el número B de bits asignados sin que haya sido establecido el límite superior gmáx de la ganancia, el incrementador 1108 de ganancia usa un valor mayor que el valor predeterminado como la cantidad D g por la que debe ser cambiada la ganancia. La nueva ganancia g establecida se introduce en el cuantificador de secuencia 1102 del dominio de la frecuencia.
<Regulador 1109 de ganancia máxima>
El regulador 1109 de ganancia máxima establece el valor actual de la ganancia g como límite superior gmáx de la ganancia (gmáx — g). El límite superior gmáx de la ganancia representa el valor máximo admisible de la ganancia.
<Segunda unidad 1110 de ramificación>
Tras el proceso por parte del regulador 1109 de ganancia máxima, la segunda unidad 1110 de ramificación lleva a cabo un control para hacer que el segundo actualizador 1111 de ganancia realice el siguiente proceso si el límite inferior gmín de la ganancia ha sido ya establecido; en otro caso, la segunda unidad 1110 de ramificación realiza un control para hacer que el reductor 1112 de ganancia lleve a cabo el siguiente proceso. Adicionalmente, la segunda unidad 1110 de ramificación añade 1 al número de actualizaciones de ganancia.
<Segundo actualizador 1111 de ganancia>
El segundo actualizador 1111 de ganancia establece el valor medio entre el valor actual de la ganancia g y el límite inferior gmín de la ganancia como un nuevo valor de la ganancia g (g (g gmín)/2). Esto se debe a que un valor óptimo de la ganancia se encuentra entre el valor actual de la ganancia g y el límite inferior gmín de la ganancia. Puesto que el valor actual de la ganancia g ha sido establecido como el límite superior gmáx de la ganancia, también se puede decir que el valor medio entre el límite superior gmáx de la ganancia y el límite inferior gmín de la ganancia se establece como un nuevo valor de la ganancia g, (g — (gmáx + gmín)/2). La nueva ganancia g establecida se introduce en el cuantificador 1102 de secuencia del dominio de la frecuencia.
<Reductor 1112 de ganancia>
El reductor 1112 de ganancia establece un valor más pequeño que el valor actual de la ganancia g como nuevo valor de la ganancia g. Por ejemplo, el reductor 1112 de ganancia establece el valor actual de la ganancia g menos una cantidad Dg por la que la ganancia debe ser cambiada, el cual es un valor positivo predeterminado, como un nuevo valor de la ganancia g (g — g - Dg). Además, por ejemplo, cuando se encuentra una pluralidad de veces sucesivas que el número estimado c de bits es más pequeño que el número B de bits asignados sin que haya sido establecido el límite inferior gmín de la ganancia, el reductor 1112 de ganancia usa un valor mayor que el valor predeterminado como la cantidad Dg por la que debe ser cambiada la ganancia. La nueva ganancia g establecida se introduce en el cuantificador 1102 de secuencia del dominio de la frecuencia.
<Segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad (Figura 2)> El proceso mediante el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad se lleva a cabo cuando se determina, mediante el analizador 1104 de periodicidad o similar, que el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta). El segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad obtiene un valor estimado de la cantidad de código (un número estimado de bits) de un código de señal de número entero que corresponde a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad (es decir, una secuencia de valores enteros obtenida por el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad) con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se codifica usando un método de codificación de longitud variable no basado en periodicidad, y presenta a la salida el número estimado de bits. El valor estimado de la cantidad de código se menciona como el “segundo valor cl2 estimado de cantidad de código no basado en periodicidad” puesto que el número estimado de bits a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad es un valor estimado de la cantidad de código de un método de codificación que no usa periodicidad. El segundo valor cL2 estimado de cantidad de código no basado en periodicidad, que es el número estimado de bits a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, se introduce en el codificador 1300 de comparación y selección.
[Método para calcular un número estimado de bits de un código de señal de número entero con la suposición de que se usa un método de codificación no basado en periodicidad como codificación de longitud variable] Se va a describir un ejemplo de un método para calcular un número estimado de bits de un código de señal de número entero con la suposición de que un método de codificación no basado en periodicidad se usa como codificación de longitud variable. En el ejemplo aquí descrito, un valor estimado de la cantidad de código que se estima con la suposición de que una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada, se codifica usando codificación de Rice. Por ejemplo, el grupo de muestra Gr1 puede ser reemplazado en la Ecuación (B10) por la cadena de muestra Gr completa constituida por una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada, D puede ser sustituido por una valor estimado ~D que ha sido estimado con la suposición de que los valores de las muestras XQ(n) (donde n = 1, ..., N) incluidos en la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada siguen una distribución exponencial, y ~C(s, XQ(n), Gr) que se obtiene usando un parámetro s preferible de Rice para la cadena de muestra Gr completa puede ser obtenido como el valor estimado de la cantidad de código (un valor estimado de la cantidad de código de un código de señal de número entero que se estima con la suposición de que la secuencia de valores enteros se codifica usando el método de codificación no basado en periodicidad). Por ejemplo, el valor estimado ~D es un valor obtenido al multiplicar un valor esperado de una muestra que sigue la distribución exponencial, por el número N de XQ(n) incluido en la cadena de muestra Gr completa.
<Estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad (Figura 2)>
Un proceso por medio del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad se lleva a cabo cuando se determina por medio del analizador 1004 de periodicidad o similar que el indicador S es menor o igual que el umbral TH predeterminado (la periodicidad es baja). El estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad toma la entrada de la cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados y ajusta la ganancia g mediante un proceso de bucle de ganancia para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de tal modo que el valor estimado (el número estimado de bits) de la cantidad de código estimada con la suposición de que la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados se codifica usando un “método de codificación no basado en periodicidad”, es menor o igual que el número B de bits asignados, el cual es el número de bits asignados por anticipado, y tan grande como sea posible. La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados es equivalente a un “secuencia de valores enteros que es una cadena de muestras de valor entero que se obtienen al dividir cada muestra de una cadena de muestra del dominio de la frecuencia por la ganancia”. El estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad presenta a la salida el número estimado de bits (es decir, el valor estimado de la cantidad de código del código de señal de número entero estimado con la suposición de que la secuencia de valores enteros se codifica usando el método de codificación no basado en periodicidad). El valor estimado de la cantidad de código se menciona como el “primer valor cl 1 estimado de cantidad de código no basado en periodicidad” puesto que el número estimado de bits a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad es un valor estimado de la cantidad de código de un método de codificación que no usa periodicidad. Es decir, el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad difiere del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad en que, mientras que el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad obtiene un “número estimado de bits que ha sido estimado con la suposición de que se usa el método de codificación basado en periodicidad”, el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad obtiene un “número estimado de bits que ha sido estimado con la suposición de que se usa el método de codificación no basado en periodicidad”.
La Figura 4 ilustra un ejemplo detallado de configuración del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad. El estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad es idéntico al estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad salvo en que el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad ha sido sustituido por un primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad, y en que el determinador 1104 ha sido sustituido por un determinador 1204. En consecuencia, las funciones de las otras partes del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad son iguales que las funciones de las contrapartes del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, siendo la diferencia el hecho de que se usa un valor estimado de la cantidad de código (un valor estimado de cantidad de código no basado en periodicidad) presente a la salida del primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad en vez de un valor estimado de la cantidad de código (un valor estimado de cantidad de código basado en periodicidad) presente a la salida del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad. Por lo tanto, las partes de procesamiento que realizan en principio los mismos procesos que las del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, han sido identificadas con los mismos nombres y números de referencia. Obsérvese que las partes de procesamiento que han sido identificadas con los mismos nombres y números de referencia pueden ser físicamente las mismas partes de procesamiento o pueden ser partes de procesamiento físicamente diferentes. La descripción que sigue se enfocará a procesos que son diferentes a los del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad.
<Primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad (Figura 4)>
El primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad obtiene un valor estimado c (un número estimado de bits) de la cantidad de código de un código de señal de número entero que corresponde a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia con la suposición de que la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados se codifica usando un método de codificación no basado en periodicidad como codificación de longitud variable, y presenta a la salida el número estimado c de bits y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados. El número estimado c de bits y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presentes a la salida del primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad, se introducen en el determinador 1104. Un ejemplo del método de codificación de longitud variable no basado en periodicidad es el mismo que el método descrito en la sección sobre el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad.
El primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad difiere del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad en que, mientras que el primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad estima la cantidad de código de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia, el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad estima la cantidad de código de la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, y en que el primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad presenta a la salida la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados adicionalmente al número estimado c de bits.
<Determinador 1204>
Cuando el número de actualizaciones de ganancia es igual a un número predeterminado de actualizaciones o cuando el número estimado c de bits (valor estimado de cantidad de código no basado en periodicidad) a la salida del primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad es igual al número B de bits asignados, el determinador 1204 presenta a la salida la secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados y el número estimado c de bits. El número estimado c de bits es un “primer valor cl 1 estimado de cantidad de código no basado en periodicidad”.
La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de salida del determinador 1204, se introduce en el segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad y en el codificador 1300 de comparación y selección. El primer valor cL1 estimado de cantidad de código no basado en periodicidad, que es el número estimado de bits a la salida del determinador 1204, se introduce en el codificador 1300 de comparación y selección.
Cuando el número de actualizaciones de la ganancia es más pequeño que el número predeterminado de actualizaciones y el número estimado c de bits a la salida del primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad es mayor que el número B de bits asignados, el determinador 1204 realiza un control para provocar que el regulador 1105 de ganancia mínima lleve a cabo el proceso descrito con anterioridad; cuando el número de actualizaciones de la ganancia es más pequeño que el número predeterminado de actualizaciones y el número estimado c de bits es más pequeño que el número B de bits asignados, el determinador 1204 realiza un control para provocar que el regulador 1109 de ganancia máxima lleve a cabo el proceso descrito con anterioridad. Los procesos posteriores realizados por el regulador 1105 de ganancia mínima, por la primera unidad 1106 de ramificación, por el primer actualizador 1107 de ganancia, por el incrementador 1108 de ganancia, por el regulador 1109 de ganancia máxima, por la segunda unidad 1110 de ramificación, por el segundo actualizador 1111 de ganancia, y por el reductor 1112 de ganancia, son según se han descrito en la sección sobre el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad (Figura 2).
<Segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad (Figura 2)> Se lleva a cabo un proceso por medio del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad cuando se determina mediante el analizador 1004 de periodicidad o similar, que el indicador S es más bajo o igual que el umbral TH predeterminado (la periodicidad es baja). El segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad toma las entradas de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad y del período T presente a la salida del analizador 1004 de periodicidad, y obtiene un valor estimado de la cantidad de código (un número estimado de bits) de un código de señal de número entero que corresponde a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se codifica usando el método de codificación basado en periodicidad como codificación de longitud variable, y presenta a la salida el número estimado de bits. El número estimado de bits se menciona como el “segundo valor ch2 estimado de cantidad de código basado en periodicidad” puesto que el número estimado de bits a la salida del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad es un valor estimado de la cantidad de código de un método de codificación que usa periodicidad. El segundo valor ch2 estimado de cantidad de código basado en periodicidad, que es el número estimado de bits a la salida del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, se introduce en el codificador 1300 de comparación y selección. Un ejemplo del método de codificación basado en periodicidad es el mismo que el descrito en la sección sobre el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad.
El segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad difiere del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad en que, mientras que el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad estima la cantidad de código de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia, el segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad estima la cantidad de código de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en frecuencia, y en que el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados adicionalmente al primer valor cH1 estimado de cantidad de código basado en periodicidad.
[Propósito del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad]
El propósito del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, es el de decidir la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y el valor estimado de la cantidad de código del coeficiente normalizado cuantificado realizando un proceso de bucle de ganancia con la suposición de que se usa un método de codificación del que se espera que resulte una cantidad de código más pequeña. El método de codificación asumido en la estimación de la cantidad de código se decide sobre la base del grado de periodicidad (el indicador S del grado de periodicidad) de una señal de audio de entrada. Cuando la periodicidad de la señal de audio de entrada es alta, es más probable que un método de codificación basado en periodicidad dé como resultado una cantidad más pequeña de código y por lo tanto el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad realice el proceso de bucle de ganancia con la suposición de que se usa el método de codificación basado en periodicidad. Cuando la periodicidad de la señal de audio de entrada es baja, es más probable que un método de codificación no basado en periodicidad dé como resultado una cantidad de código más pequeña y por lo tanto el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad realice el proceso de bucle de ganancia con la suposición de que se usa el método de codificación no basado en periodicidad.
[Propósito del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad y del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad]
El propósito del segundo estimador de cantidad de código de longitud variable no basado en periodicidad y del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, consiste en sustituir (usar) la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, obtenida con la suposición de que se usa un método de codificación que se espera que dé como resultado una cantidad de código más pequeña, obteniendo con ello un valor estimado de la cantidad de código que se podría obtener con la suposición de que se use el otro método de codificación. Evitando la repetición de un proceso de bucle de ganancia, se puede reducir la cantidad de cálculo.
<Codificador 1300 de comparación y selección>
Un valor estimado de la cantidad de código producida por un método de codificación asumido en el proceso de bucle de ganancia (es decir, un método de codificación que se espera que dé como resultado una cantidad de código más pequeña), es decir, un número estimado de bits a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad o del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, será mencionado como primer valor c1 estimado de cantidad de código. Un número estimado de bits, estimado por sustitución de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida con la suposición de que se usa un método de codificación que se espera que dé como resultado una cantidad de código más pequeña, es decir, un número estimado de bits que está presente a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad o del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, se mencionará como segundo valor c2 estimado de cantidad de código. En otras palabras, cuando el indicador S del grado de periodicidad sea mayor que el umbral TH predeterminado (la periodicidad es alta), el primer valor estimado de cantidad de código es c1 = cH1 y el segundo valor estimado de cantidad de código es c2 = cL2. Cuando el indicador S del grado de periodicidad es más bajo o igual que el umbral TH predeterminado (la periodicidad es baja), el primer valor estimado de cantidad de código es c1 = cu y el segundo valor estimado de cantidad de código es c2 = cl2.
El primer valor c1 estimado de cantidad de código, el segundo valor c2 estimado de cantidad de código, la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, el período T y el indicador S del grado de periodicidad, se introducen en el codificador 1300 de comparación y selección. El codificador 1300 de comparación y selección compara el primer valor c1 estimado de cantidad de código de entrada con el segundo valor c2 estimado de cantidad de código de entrada y usa el método de codificación asumido cuando el valor estimado de cantidad de código más pequeño ha sido obtenido para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada, obteniendo con ello un código de señal de número entero.
Específicamente, cuando el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta), el codificador 1300 de comparación y selección compara el primer valor cH1 estimado de cantidad de código basado en periodicidad presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad con el segundo valor cH2 estimado de cantidad de código no basado en periodicidad presente a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, y usa el método de codificación asumido cuando el valor estimado de cantidad de código más pequeño ha sido obtenido para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, obteniendo con ello un código de señal de número entero. Adicionalmente, el codificador 1300 de comparación y selección presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad para el codificador 1400 de ganancia de transmisión.
Cuando el indicador S del grado de periodicidad es más bajo que el umbral TH predeterminado (la periodicidad es baja), el codificador 1300 de comparación y selección compara el primer valor cl 1 estimado de cantidad de código no basado en periodicidad presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad con el segundo valor cH2 estimado de cantidad de código basado en periodicidad presente a la salida del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, y usa el método de codificación asumido cuando el valor estimado de cantidad de código más pequeño ha sido obtenido para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, obteniendo con ello un código de señal de número entero. Adicionalmente, el codificador 1300 de comparación y selección presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad para el codificador 1400 de ganancia de transmisión.
Cuando el “valor estimado de cantidad de código más pequeño” es el primer valor ch1 estimado de cantidad de código basado en periodicidad o el segundo valor ch2 estimado de cantidad de código basado en periodicidad, el “método de codificación asumido cuando el valor estimado de cantidad de código más pequeño ha sido obtenido” es el método de codificación basado en periodicidad; cuando el “valor estimado de cantidad de código más pequeño” es el primer valor cL1 estimado de cantidad de código no basado en periodicidad o el segundo valor cL2 estimado de cantidad de código no basado en periodicidad, el “método de codificación asumido cuando el valor estimado de cantidad de código más pequeño ha sido obtenido” es el método de codificación no basado en periodicidad.
Específicamente, cuando el primer valor cH1 estimado de cantidad de código basado en periodicidad es mayor que el segundo valor cl2 estimado de cantidad de código no basado en periodicidad, el codificador 1300 de comparación y selección usa el método de codificación no basado en periodicidad para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida mediante el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, obteniendo con ello un código de señal de número entero. Cuando el primer valor cH1 estimado de cantidad de código basado en periodicidad es más pequeño que el segundo valor cl2 estimado de cantidad de código no basado en periodicidad, el codificador 1300 de comparación y selección usa el método de codificación basado en periodicidad para codificar la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados obtenida por el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, obteniendo con ello un código de señal de número entero. Cuando el primer valor cL1 estimado de cantidad de código no basado en periodicidad es mayor que el segundo valor ch2 estimado de cantidad de código basado en periodicidad, el codificador 1300 de comparación y selección usa el método de codificación basado en periodicidad para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida mediante el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, obteniendo con ello un código de señal de número entero. Cuando el primer valor cL1 estimado de cantidad de código no basado en periodicidad es más pequeño que el segundo valor cH2 estimado de cantidad de código basado en periodicidad, el codificador 1300 de comparación y selección usa el método de codificación no basado en periodicidad para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida por el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, obteniendo con ello un código de señal de número entero.
Obsérvese que cuando c1 = c2, en principio se puede usar cualquiera de los métodos de codificación, pero con preferencia se usa el método de codificación adoptado cuando ha sido obtenido el primer valor c estimado de cantidad de código, por ejemplo.
Además, cuando el número de bits del código de señal de número entero obtenido por codificación de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados excede el número B de bits asignados, el codificador 1300 de comparación y selección elimina la cantidad del código de señal de número entero en la que el número de bits excede del número B de bits asignados (código de truncamiento) del código de señal de número entero obtenido por codificación, y presenta a la salida el código de señal de número entero resultante. Cuando el número de bits del código de señal de número entero obtenido por codificación de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados no excede del número B de bits asignados, el codificador 1300 de comparación y selección presenta a la salida el código de señal de número entero obtenido por codificación sin truncamiento. El código de señal de número entero presente a la salida del codificador 1300 de comparación y selección se transmite al descodificador.
[PRIMERA MODIFICACIÓN]
Cuando el “número predeterminado de actualizaciones” que especifica el límite superior del número de actualizaciones de ganancia en el proceso de bucle de ganancia descrito con anterioridad, es suficientemente grande, el primer valor c1 estimado de cantidad de código no excede el número B de bits asignados debido al procesamiento llevado a cabo por el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y por el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad. Por otra parte, el segundo valor c2 estimado de cantidad de código, que es una cantidad de código estimada por sustitución de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida al realizar el proceso de bucle de ganancia, puede exceder el número B de bits asignados.
Cuando el número de bits del código de señal de número entero obtenido por codificación excede el número B de bits asignados, ocurre truncamiento de código en el codificador 1300 de comparación y selección según se ha descrito con anterioridad. Los coeficientes normalizados cuantificados correspondientes a la porción eliminada del código no pueden ser descodificados en el descodificador y la calidad de la señal de audio descodificada disminuye de manera correspondiente. Por lo tanto, es preferible que el truncamiento de código no ocurra.
En vista del hecho que se ha descrito con anterioridad, el codificador 1300 de comparación y selección puede comparar el segundo valor c2 estimado de cantidad de código con el primer valor c estimado de cantidad de código solamente cuando el segundo valor c2 estimado de cantidad de código no exceda el número B de bits asignados. En este caso, el codificador 1300 de comparación y selección lleva a cabo el siguiente proceso.
Cuando el segundo valor c2 estimado de cantidad de código es menor o igual que el número B de bits asignados y menor que el primer valor c estimado de cantidad de código, el codificador 1300 de comparación y selección usa el método de codificación asumido cuando el segundo valor c2 estimado de cantidad de código ha sido obtenido para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de entrada, obteniendo con ello y presentando a la salida un código de señal de número entero. En otro caso, el codificador 1300 de comparación y selección usa el método de codificación adoptado cuando ha sido obtenido el primer valor c1 estimado de cantidad de código para codificar la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados de entrada, obteniendo con ello y presentando a la salida un código de señal de número entero. Específicamente, se lleva a cabo un proceso para el caso de alta periodicidad y un proceso para el caso de baja periodicidad según se describe en lo que sigue.
[Cuando se determina que el indicador S del grado de periodicidad es más alto que el umbral TH predeterminado (la periodicidad es alta)]
Cuando el segundo valor cL2 estimado de cantidad de código no basado en periodicidad presente a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad es menor o igual que el número B de bits asignados y menor que el primer valor cH1 estimado de cantidad de código basado en periodicidad, el codificador 1300 de comparación y selección codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1100 de ajuste de ganancia basado en periodicidad usando el método de codificación de longitud variable no basado en periodicidad para obtener un código de señal de número entero. En otro caso, el codificador 1300 de comparación y selección codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizaos cuantificados presente a la salida del estimador 1100 de ajuste de ganancia basado en periodicidad usando el método de codificación de longitud variable basado en periodicidad para obtener un código de señal de número entero.
[Cuando se determina que el indicador S del grado de periodicidad es más bajo o igual que el umbral TH predeterminado (la periodicidad es baja)]
Cuando el segundo valor cH2 estimado de cantidad de código basado en periodicidad presente a la salida del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad es menor o igual que el número B de bits asignados y menor que el primer valor cl 1 estimado de cantidad de código no basado en periodicidad, el codificador 1300 de comparación y selección codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad usando el método de codificación de longitud variable basado en periodicidad para obtener un código de señal de número entero. En otro caso, el codificador 1300 de comparación y selección codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad usando el método de codificación de longitud variable no basado en periodicidad para obtener un código de señal de número entero.
[SEGUNDA MODIFICACIÓN]
El método de codificación basado en periodicidad necesita el período T para la codificación. Esto significa que el período T se requiere en el descodificador también para la descodificación y por lo tanto un código correspondiente al período T se transmite al descodificador. En otras palabras, en el método de codificación basado en periodicidad, el código correspondiente al período T transmitido al descodificador se añade a la cantidad de código del código de señal de número entero obtenido por codificación.
En consideración a lo anterior, el codificador 1300 de comparación y selección puede comparar el valor estimado de cantidad de código obtenido con la suposición de que se usa el método de codificación basado en periodicidad más la cantidad de código c(T) del código correspondiente al período T, con el valor estimado de cantidad de código obtenido con la suposición de que se usa el método de codificación no basado en periodicidad.
Específicamente, cuando el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta), c1 + c(T) puede ser comparado con c2; cuando el indicador S del grado de periodicidad es más bajo o igual que el umbral TH predeterminado (la periodicidad es baja), c1 puede ser comparado con c2 + c(T). En otras palabras, el proceso “cuando el primer valor estimado de cantidad de código basado en periodicidad chi = ci es mayor que el segundo valor estimado de cantidad de código no basado en periodicidad cl2 = c2” descrito con anterioridad, se puede llevar a cabo “cuando el primer valor c estimado de cantidad de código basado en periodicidad más la cantidad de código c(T), c c(T), es mayor que el segundo valor c2 estimado de cantidad de código no basado en periodicidad”; el proceso “cuando el primer valor c estimado de cantidad de código basado en periodicidad es menor que el segundo valor c2 estimado de cantidad de código no basado en periodicidad” descrito con anterioridad, se puede realizar “cuando el primer valor c estimado de cantidad de código basado en periodicidad más la cantidad de código c(T), c1 c(T), es menor que el segundo valor c2 estimado de cantidad de código no basado en periodicidad”; y el proceso “cuando c = c2” descrito con anterioridad puede ser realizado “cuando c c(T) = c2”. De forma similar, el proceso “cuando el primer valor estimado de cantidad de código no basado en periodicidad cl 1 = c es mayor que el segundo valor estimado de cantidad de código basado en periodicidad ch2 = c2” descrito con anterioridad, puede llevarse a cabo “cuando el primer valor c estimado de cantidad de código no basado en periodicidad es mayor que el segundo valor c2 estimado de cantidad de código basado en periodicidad más la cantidad de código c(T), c2 c(T),”; el proceso “cuando el primer valor c estimado de cantidad de código no basado en periodicidad es menor que el segundo valor c2 estimado de cantidad de código basado en periodicidad” descrito con anterioridad, puede llevarse a cabo “cuando el primer valor c1 estimado de cantidad de código no basado en periodicidad es menor que el segundo valor c2 estimado de cantidad de código basado en periodicidad más la cantidad de código c(T), c2 c(T)”; y, el proceso “cuando c1 = c2” descrito con anterioridad puede ser llevado a cabo cuando “c1 = c2 c(T)”. Alternativamente, cualquiera de las comparaciones que tenga en cuenta la cantidad de código c(T) del código correspondiente al período T que de esta manera, puede ser usada en el modo descrito en la sección de la primera modificación.
[Objetivo del codificador 1300 de comparación y selección]
Mientras que el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad están configurados de modo que el número c estimado de bits es más pequeño o igual que el número B de bits asignados y es tan grande como sea posible, el codificador 1300 de comparación y selección selecciona el primer valor c1 estimado de cantidad de código o el segundo valor c2 estimado de cantidad de código que son el número estimado de bits, cualquiera que represente el número estimado de bits más pequeño. La razón de todo esto va a ser descrita en lo que sigue.
El propósito del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad es el de obtener la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados con una distorsión de cuantificación pequeña. Cuanto más pequeño sea el valor de la ganancia g, mayor será el valor estimado de la cantidad de código para una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, pero más pequeña será la distorsión de cuantificación que ocurre cuando la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se obtiene a partir de la cadena de coeficientes Xn(1), ..., Xn(N) de MDCT normalizados ponderados. Por lo tanto, el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y el estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad obtienen la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de tal modo que el número estimado de bits es más pequeño o igual que el número B de bits asignado, y es tan grande como sea posible.
El valor estimado de cantidad de código presente a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad es un valor estimado de la cantidad de código para la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad. Es decir, el primer valor ch1 estimado de cantidad de código basado en periodicidad presente a la salida del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad y el segundo valor cL2 estimado de cantidad de código no basado en periodicidad presente a la salida del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, son valores estimados de la cantidad de código para la misma secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados. Puesto que con el mismo grado de distorsión de cuantificación resulta más preferible una cantidad de código más pequeña, el codificador 1300 de comparación y selección selecciona el valor estimado que represente un número estimado de bits más pequeño.
De forma similar, puesto que el primer valor cl 1 estimado de cantidad de código no basado en periodicidad, presente a la salida del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad y el segundo valor cH2 estimado de cantidad de código basado en periodicidad presente a la salida del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad son valores estimados de la cantidad de código para la misma secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados, el codificador 1300 de comparación y selección selecciona el valor estimado que represente un número estimado de bits más pequeño.
<Codificador 1400 de ganancia de transmisión>
El codificador 1400 de ganancia de transmisión calcula una ganancia de transmisión g a partir de una secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados presente a la salida del codificador 1300 de comparación y selección y de una cadena de coeficientes Xn (1), ..., Xn(N) de MDCT normalizados ponderados presente a la salida del normalizador 1003 de envolvente ponderada, y presenta a la salida un código de ganancia correspondiente a la ganancia de transmisión g calculada. Por ejemplo, el codificador 1400 de ganancia de transmisión codifica una ganancia de transmisión g obtenida mediante:
[Ecuación 8]
Figure imgf000025_0001
usando un número de bits predeterminado para obtener y presentar a la salida un código de ganancia. En resumen, el codificador 1400 de ganancia de transmisión obtiene y presenta a la salida un código correspondiente a un valor gQ cuantificado de la ganancia de transmisión g. La ganancia de transmisión g es un valor aproximado (valor estimado) de la ganancia decidida como resultado del proceso de bucle de ganancia por el codificador de ajuste de ganancia basado en periodicidad o por el codificador de ajuste de ganancia no basado en periodicidad.
[SEGUNDA REALIZACIÓN]
En la primera realización, el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad, el segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad, el primer estimador 1203 de cantidad de código de longitud variable no basado en periodicidad y el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, presentan a la salida los valores estimados de cantidad de código, y el codificador 1300 de comparación y selección hace la comparación entre los valores estimados de cantidad de código de entrada para seleccionar el método de codificación, y codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados usando el método de codificación seleccionado para obtener y presentar a la salida el código de señal de número entero. Sin embargo, se puede hacer una comparación entre “cantidades de código obtenidas por codificación real”, en vez de “valores estimados de cantidad de código”. Una realización en la que se hace una comparación entre “cantidades de código obtenidas por codificación real” va a ser descrita en lo que sigue.
La Figura 5 ilustra un ejemplo de configuración de un codificador 200 conforme a esta realización. El codificador 200 comprende un codificador 2100 de ajuste de ganancia basado en periodicidad, un codificador 2200 de ajuste de ganancia no basado en periodicidad, un segundo codificador 2120 de longitud variable no basado en periodicidad, un segundo codificador 2220 de longitud variable basado en periodicidad, y un selector de comparación 2300 en lugar del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, del estimador 1200 de cantidad de código de ajuste de ganancia no basado en periodicidad, del segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad, del segundo estimador 1220 de cantidad de código de longitud variable basado en periodicidad y del codificador 1300 de comparación y selección, respectivamente, del codificador 100. Las otras partes de procesamiento del codificador 200 son iguales a las del codificador 100 salvo en que no se necesita un analizador 1004 de periodicidad para enviar un período T al selector 2300 de comparación (que sustituye al codificador 1300 de comparación y selección) y que un codificador 1400 de ganancia de transmisión use una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del selector 2300 de comparación. La descripción que sigue se enfocará a procesos diferentes a los del codificador 100.
<Codificador 2100 de ajuste de ganancia basado en periodicidad>
Se realiza un proceso mediante el codificador 2100 de ajuste de ganancia basado en periodicidad cuando se determina mediante un analizador 1004 de periodicidad o similar, que un indicador S es mayor que un umbral TH predeterminado (la periodicidad es alta). El codificador 2100 de ajuste de ganancia basado en periodicidad toma entradas de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y del período T presente a la salida del analizador 1004 de periodicidad y ajusta la ganancia g realizando un proceso de bucle de ganancia para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados (es decir, una secuencia de valores enteros) de tal modo que el número de bits (la cantidad de código) de un código de señal de número entero obtenido por codificación de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados usando un método de codificación basado en periodicidad, es menor o igual que el número B de bits asignados, el cual es el número de bits asignados por anticipado, y tan grande como sea posible. Adicionalmente, el codificador 2100 de ajuste de ganancia basado en periodicidad presenta a la salida el código de señal de número entero. El código se menciona como el “primer código de señal de número entero basado en periodicidad” puesto que el código de señal de número entero presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad es un código obtenido por codificación usando un método de codificación basado en periodicidad.
La Figura 6 ilustra una configuración detallada del codificador 2100 de ajuste de ganancia basado en periodicidad. El codificador 2100 de ajuste de ganancia basado en periodicidad es idéntico al estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad salvo en que el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad se ha sustituido por un primer codificador 2103 de longitud variable basado en periodicidad, y en que el determinador 1104 se ha sustituido por un determinador 1104'. Por consiguiente, las otras partes tienen las mismas funciones que las del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad salvo en que se usa la cantidad de código de un código de señal de número entero presente a la salida del primer codificador 2103 de longitud variable basado en periodicidad en vez de un valor estimado de cantidad de código (un valor estimado de cantidad de código basado en periodicidad) presente a la salida del primer estimador 1103 de cantidad de código variable basado en periodicidad. Por lo tanto, las partes de procesamiento que realizan en principio los mismos procesos que los del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad, han sido designadas con los mismos nombres y números de referencia. La descripción que sigue se enfocará a procesos que sean diferentes a los del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad.
<Primer codificador 2103 de longitud variable basado en periodicidad (Figura 6)>
El primer codificador 2103 de longitud variable basado en periodicidad codifica una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida de un cuantificador 1102 de secuencia del dominio de la frecuencia, usando un método de codificación basado en periodicidad de longitud variable para obtener un código de señal de número entero correspondiente a la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados, y presenta a la salida el código de señal de número entero y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados. El código de señal de número entero y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presentes a la salida del primer codificador 2103 de longitud variable basado en periodicidad, son entradas para el determinador 1104'. Un ejemplo del método de codificación basado en periodicidad es según se ha descrito en la sección sobre el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad.
<Determinador 1104'>
Cuando el número de actualizaciones de la ganancia es igual a un número de actualizaciones predeterminado o cuando el número c' de bits del código de señal de número entero presente a la salida del primer codificador 2103 de longitud variable basado en periodicidad es igual al número B de bits asignados, el determinador 1104' presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y el código de señal de número entero que son entradas procedentes del primer codificador 2103 de longitud variable basado en periodicidad. El código de señal de número entero presente a la salida del determinador 1104' es un “primer código de señal de número entero basado en periodicidad”.
La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del determinador 1104' se introduce en el segundo codificador 2120 de longitud variable no basado en periodicidad y en el selector 2300 de comparación. Adicionalmente, el primer código de señal de número entero basado en periodicidad, que es el código de señal de número entero presente a la salida del determinador 1104', se introduce en el selector 2300 de comparación.
Cuando el número de actualizaciones de la ganancia es más pequeño que un número de actualizaciones predeterminado y el número c' de bits del código de señal de número entero a la salida del primer codificador 2103 de longitud variable basado en periodicidad es mayor que el número B de bits asignados, el determinador 1104' realiza un control para hacer que un regulador 1105 de ganancia mínima lleve a cabo el proceso descrito con anterioridad; cuando el número de actualizaciones de la ganancia es más pequeño que el número de actualizaciones predeterminado y el número c' de bits es más pequeño que el número B de bits asignados, el determinador 1104' lleva a cabo un control para hacer que el regulador 1109 de ganancia máxima realice el proceso descrito con anterioridad. Los procesos posteriores realizados por el regulador 1105 de ganancia mínima, por una primera unidad 1106 de ramificación, por un primer actualizador 1107 de ganancia, por un incrementador 1108 de ganancia, por el regulador 1109 de ganancia máxima, por una segunda unidad 1110 de ramificación, por un segundo actualizador 1111 de ganancia y por un reductor 1112 de ganancia, son como se ha descrito en la sección sobre el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad (Figura 2).
<Segundo codificador 2120 de longitud variable no basado en periodicidad (Figura 5)>
Se realiza un proceso por medio del segundo codificador 2120 de longitud variable no basado en periodicidad cuando se determina mediante un analizador 1004 de periodicidad o similar, que el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta). El segundo codificador 2120 de longitud variable no basado en periodicidad codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados (es decir, una secuencia de valores enteros obtenida por el codificador 2100 de ajuste de ganancia basado en periodicidad) presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad usando un método de codificación de longitud variable no basado en periodicidad para obtener un código de señal de número entero correspondiente a la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados y a la cantidad de código (el número de bits) del código de señal de número entero, y presenta a la salida el código de señal entero. Un ejemplo de codificación de longitud variable no basado en periodicidad es según se ha descrito en la sección sobre el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad. El código se menciona como “segundo código de señal de número entero no basado en periodicidad” puesto que el código de señal de número entero presente a la salida del segundo codificador 2120 de longitud variable no basado en periodicidad, es un código obtenido mediante codificación usando un método de codificación no basado en periodicidad. El segundo código de señal de número entero no basado en periodicidad, el cual es el código de señal de número entero presente a la salida del segundo codificador 2120 de longitud variable no basado en periodicidad, se introduce en el selector 2300 de comparación.
<Codificador 2200 de ajuste de ganancia no basado en periodicidad (Figura 5)>
Se realiza un proceso mediante el codificador 2200 de ajuste de ganancia no basado en periodicidad cuando se determina mediante el analizador 1004 de periodicidad o similar, que el indicador S es menor o igual que el umbral TH predeterminado (la periodicidad es baja). El codificador 2200 de ajuste de ganancia no basado en periodicidad toma la entrada de la cadena de coeficientes Xn (1), ..., Xn(N) de MDCT normalizados ponderados y ajusta la ganancia g mediante un proceso de bucle de ganancia para obtener y presentar a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados de tal modo que la cantidad de código (el número de bits) de un código de señal de número entero que se obtiene codificando la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados usando el método de codificación no basado en periodicidad, es menor o igual que el número B de bits asignados, el cual es el número de bits asignados por anticipado, y es tan grande como sea posible. El codificador 2200 de ajuste de ganancia no basado en periodicidad presenta a la salida el código de señal de número entero. El código se menciona como el “primer código de señal de número entero no basado en periodicidad” puesto que el código de señal de número entero presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad es un código obtenido usando un método de codificación no basado en periodicidad. Es decir, el codificador 2200 de ajuste de ganancia no basado en periodicidad difiere del codificador 2100 de ajuste de ganancia basado en periodicidad en que, mientras que el codificador 2100 de ajuste de ganancia basado en periodicidad obtiene un “código de señal de número entero que se obtiene por codificación usando un método de codificación basado en periodicidad”, el codificador 2200 de ajuste de ganancia no basado en periodicidad obtiene un “código de señal de número entero que se obtiene mediante codificación usando un método de codificación no basado en periodicidad”.
La Figura 7 ilustra un ejemplo detallado de configuración del codificador 2200 de ajuste de ganancia no basado en periodicidad. El codificador 2200 de ajuste de ganancia no basado en periodicidad es idéntico al estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad salvo en que el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad se ha sustituido por un primer codificador 2203 de longitud variable no basado en periodicidad y el determinador 1104 se ha sustituido por un determinador 1204'. En consecuencia, las demás partes tienen las mismas funciones que las del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad salvo en que se usa la cantidad de código (cantidad de código no basado en periodicidad) de un código de señal de número entero presente a la salida del primer codificador 2203 de longitud variable no basado en periodicidad en vez de un valor estimado de cantidad de código (valor estimado de cantidad de código basado en periodicidad) presente a la salida del primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad. Por lo tanto, las partes de procesamiento que realizan en principio los mismos procesos que las del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad han sido designadas con los mismos nombres y números de referencia. Las partes de procesamiento que han sido designadas con los mismos nombres y números de referencia en las Figuras 6 y 7, pueden ser físicamente las mismas partes de procesamiento o físicamente partes de procesamiento diferentes. La descripción que sigue se va a enfocar a procesos que son diferentes a los del estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad.
<Primer codificador 2203 de longitud variable no basado en periodicidad (Figura 7)>
El primer codificador 2203 de longitud variable no basado en periodicidad codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia usando el método de codificación de longitud variable no basado en periodicidad para obtener un código de señal de número entero correspondiente a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y presenta a la salida el código de señal de número entero y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados. El código de señal de número entero y la secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados presente a la salida del primer codificador 2203 de longitud variable no basado en periodicidad se introduce en el determinador 1104'. Un ejemplo de método de codificación de longitud variable no basado en periodicidad es según se ha descrito en la sección sobre el segundo estimador 1120 de cantidad de código de longitud variable no basado en periodicidad.
El primer codificador 2203 de longitud variable no basado en periodicidad difiere del segundo codificador 2120 de longitud variable no basado en periodicidad en que el primer codificador 2203 de longitud variable no basado en periodicidad codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia, mientras que el segundo codificador 2120 de longitud variable no basado en periodicidad codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad, y en que el primer codificador 2203 de longitud variable no basado en periodicidad presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados adicionalmente a un código de señal de número entero y al número c' de bits.
<Determinador 1204'>
Cuando el número de actualizaciones de ganancia es igual a un número predeterminado de actualizaciones o el número c' de bits (cantidad de código no basado en periodicidad) de un código de señal de número entero presente a la salida del primer codificador 2203 de longitud variable no basado en periodicidad es igual al número B de bits asignados, el determinador 1204' presenta a la salida una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y el código de señal de número entero. El código de señal de número entero a la salida del determinador 1204' es un “primer código de señal de número entero no basado en periodicidad”.
La secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del determinador 1204' se introduce en el segundo codificador 2220 de longitud variable basado en periodicidad y en el selector 2300 de comparación. El primer código de señal de número entero no basado en periodicidad, el cual es el código de señal de número entero presente a la salida del determinador 1204', se introduce en el selector 2300 de comparación.
Cuando el número de actualizaciones de la ganancia es menor que el número predeterminado de actualizaciones y el número c' de bits del código de señal de número entero presente a la salida del primer codificador 2203 de longitud variable no basado en periodicidad es mayor que el número B de bits asignados, el determinador 1204' realiza un control para hacer que el regulador 1105 de ganancia mínima lleve a cabo el proceso descrito con anterioridad; cuando el número de actualizaciones de ganancia es menor que el número de actualizaciones predeterminado y el número c' de bits es más pequeño que el número B de bits asignados, el determinador 1204' realiza un control para hacer que el regulador 1109 de ganancia máxima lleve a cabo el proceso descrito con anterioridad. Los procesos posteriores realizados por el regulador 1105 de ganancia mínima, por la primera unidad 1106 de ramificación, por el primer actualizador 1107 de ganancia, por el incrementador 1108 de ganancia, por el regulador 1109 de ganancia máxima, por la segunda unidad 1110 de ramificación, por el segundo actualizador 1111 de ganancia, y por el reductor 1112 de ganancia, son como se han descrito en la sección sobre el estimador 1100 de cantidad de código de ajuste de ganancia basado en periodicidad (Figura 2).
<Segundo codificador 2220 de longitud variable basado en periodicidad (Figura 5)>
Se lleva a cabo un proceso por parte del segundo codificador 2220 de longitud variable basado en periodicidad cuando se determina mediante el analizador 1004 de periodicidad o similar, que el indicador S es menor o igual que el umbral TH predeterminado (la periodicidad es baja). El segundo codificador 2220 de longitud variable basado en periodicidad toma las entradas de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad y del período T presente a la salida del analizador 1004 de periodicidad, codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados usando un método de codificación basado en periodicidad como codificación de longitud variable para obtener un código de señal de número entero correspondiente a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, y presenta a la salida el código de señal de número entero. El código de señal de número entero se menciona como el “segundo código de señal de número entero basado en periodicidad” puesto que el código de señal de número entero presente a la salida del segundo codificador 2220 de longitud variable basado en periodicidad es un código obtenido con el uso de un método de codificación basado en periodicidad. El segundo código de señal de número entero basado en periodicidad, el cual es el código de señal de número entero presente a la salida del segundo codificador 2220 de longitud variable basado en periodicidad, se introduce en el selector 2300 de comparación. Un ejemplo del método de codificación basado en periodicidad es según se ha descrito en la sección sobre el primer estimador 1103 de cantidad de código de longitud variable basado en periodicidad.
El segundo codificador 2220 de longitud variable basado en periodicidad difiere del primer codificador 2103 de longitud variable basado en periodicidad en que, mientras que el primer codificador 2103 de longitud variable basado en periodicidad codifica la secuencia de coeficientes Xq (1), Xq (N) normalizados cuantificados presente a la salida del cuantificador 1102 de secuencia del dominio de la frecuencia, el segundo codificador 2220 de longitud variable basado en periodicidad codifica la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad, y en que el primer codificador 2103 de longitud variable basado en periodicidad presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados adicionalmente a una primera cantidad cH1' de código basado en periodicidad y a un primer código de señal de número entero basado en periodicidad.
<Selector 2300 de comparación>
Un código de señal de número entero obtenido usando un método de codificación adoptado en el proceso de bucle de ganancia (es decir, un método de codificación que se espera que produzca una cantidad de código más pequeña), es decir, un código de señal de número entero presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad o del codificador 2200 de ajuste de ganancia no basado en periodicidad, va a ser mencionado como primer código. Se usa un código de señal de número entero obtenido por sustitución de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenido con la suposición de que se espera que un método de codificación produzca una cantidad de código más pequeña, es decir un código de señal de número entero presente a la salida del segundo codificador 2120 de longitud variable no basado en periodicidad o del segundo codificador 2220 de longitud variable basado en periodicidad será mencionado como segundo código. En otras palabras, cuando el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta), el primer código es el primer código de señal de número entero basado en periodicidad y el segundo código es el segundo código de señal de número entero no basado en periodicidad. Cuando el indicador S del grado de periodicidad es menor o igual que el umbral TH predeterminado (la periodicidad es baja), el primer código es un primer código de señal de número entero no basado en periodicidad y el segundo código es un segundo código de señal de número entero basado en periodicidad.
El primer código, el segundo código, la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados, el período T y el indicador S del grado de periodicidad, se introducen en el selector 2300 de comparación.
El selector 2300 de comparación compara el primer código de entrada con el segundo código de entrada, y presenta a la salida el código de señal de número entero que sea más pequeño en cuanto a cantidad de código, y la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados.
Específicamente, cuando el indicador S del grado de periodicidad es mayor que el umbral TH predeterminado (la periodicidad es alta), el selector 2300 de comparación compara el primer código de señal de número entero basado en periodicidad presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad con el segundo código de señal de número entero no basado en periodicidad presente a la salida del segundo codificador 2120 de longitud variable no basado en periodicidad, y selecciona como código de señal de número entero el código que sea más pequeño en cuanto a cantidad de código fuera del primer código de señal de número entero basado en periodicidad y del segundo código de señal de número entero no basado en periodicidad.
Cuando el indicador S del grado de periodicidad es menor que el umbral TH predeterminado (la periodicidad es baja), el selector 2300 de comparación compara el primer código de señal de número entero no basado en periodicidad presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad, con el segundo código de señal de número entero basado en periodicidad presente a la salida del segundo codificador 2220 de longitud variable basado en periodicidad, y selecciona como código de señal de número entero el código que sea más pequeño en cuanto a cantidad de código fuera del primer código de señal de número entero no basado en periodicidad y del segundo código de señal de número entero basado en periodicidad.
Específicamente, cuando la primera cantidad de código basado en periodicidad (la cantidad de código del primer código de señal de número entero basado en periodicidad) ch i ' es mayor que la segunda cantidad de código no basado en periodicidad (la cantidad de código del segundo código de señal de número entero no basado en periodicidad) cl2', el selector 2300 de comparación selecciona como código de señal de número entero el segundo código de señal de número entero no basado en periodicidad y presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad. Cuando la primera cantidad de código basado en periodicidad (la cantidad de código del primer código de señal de número entero basado en periodicidad) cH1' es más pequeña que la segunda cantidad de código no basado en periodicidad (la cantidad de código del segundo código de señal de número entero no basado en periodicidad) cl 2', el selector 2300 de comparación selecciona como código de señal de número entero el primer código de señal de número entero basado en periodicidad y presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2100 de ajuste de ganancia basado en periodicidad. Cuando la primera cantidad cl i ' de código no basado en periodicidad (la cantidad de código del primer código de señal de número entero no basado en periodicidad) es mayor que la segunda cantidad de código ch2' basado en periodicidad (la cantidad de código del segundo código de señal de número entero basado en periodicidad), el selector 2300 de comparación selecciona como código de señal de número entero el segundo código de señal de número entero basado en periodicidad y presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad. Cuando la primera cantidad de código cL1' no basado en periodicidad (la cantidad de código del primer código de señal de número entero no basado en periodicidad) es más pequeña que la segunda cantidad de código ch2' basado en periodicidad (la cantidad de código del segundo código de señal de número entero basado en periodicidad), el selector 2300 de comparación selecciona como código de señal de número entero el primer código de señal de número entero no basado en periodicidad y presenta a la salida la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados presente a la salida del codificador 2200 de ajuste de ganancia no basado en periodicidad.
Obsérvese que mientras que, en principio, cualquiera de los dos códigos puede ser seleccionado cuando c1 = c2', se supone en la presente memoria que el primer código, por ejemplo, se selecciona de manera preferente.
Además, cuando el número de bits del código de señal de número entero que sea más pequeño en cuanto a cantidad de código fuera del primer y del segundo códigos, sea mayor que el número B de bits asignados, el selector 2300 de comparación elimina la cantidad de código en la que el número de bits exceda del número B de bits asignados (un código de truncamiento) del código de señal de número entero y presenta a la salida el código de señal resultante como código de señal de número entero. Cuando el número de bits del código de señal de número entero que sea más pequeño en cuanto a cantidad de código fuera del primer y del segundo códigos de entrada no sea mayor que el número B de bits asignados, el selector 2300 de comparación presenta a la salida el código de señal de número entero sin truncamiento. El código de señal de número entero presente a la salida del selector 2300 de comparación se transmite al descodificador.
Obsérvese que mientras que se ha descrito con anterioridad una configuración en la que el codificador 2100 de ajuste de ganancia basado en periodicidad obtiene un primer código de señal de número entero basado en periodicidad y el selector 2300 de comparación calcula y usa la cantidad de código ch1 del primer código de señal de número entero basado en periodicidad de entrada, el codificador 2100 de ajuste de ganancia basado en periodicidad puede obtener la primera cantidad cHi' de código basado en periodicidad, la cual es la cantidad de código del primer código de señal de número entero basado en periodicidad, y a continuación el selector 2300 de comparación puede usar la primera cantidad cH1' de código basado en periodicidad de entrada. Esto mismo se aplica a la segunda cantidad cl2' de código no basado en periodicidad, a la primera cantidad de código cl 1 ' no basado en periodicidad y a la segunda cantidad de código ch2' basado en periodicidad: cada uno de los codificadores puede obtener una cantidad de código y a continuación el selector 2300 de comparación puede usar la cantidad de código de entrada.
[TERCERA MODIFICACIÓN]
Al igual que en la primera modificación descrita con anterioridad, cuando un número predeterminado de actualizaciones de la ganancia que especifica el número límite superior de actualizaciones de la ganancia en el proceso de bucle de ganancia descrito con anterioridad es suficientemente grande, no ocurre truncamiento de código en el codificador 2100 de ajuste de ganancia basado en periodicidad ni en el codificador 2200 de ajuste de ganancia no basado en periodicidad. Por otra parte, el truncamiento de código puede ocurrir en el segundo codificador 2120 de longitud variable no basado en periodicidad y en el segundo codificador 2220 de longitud variable basado en periodicidad, los cuales obtienen un código de señal de número entero por sustitución de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados obtenida al realizar el proceso de bucle de ganancia. Puesto que los coeficientes normalizados cuantificados correspondientes a la porción de código eliminada no pueden ser descodificados en el descodificador, la calidad de una señal de audio descodificada disminuye de manera correspondiente. Por lo tanto, es preferible que no ocurra truncamiento de código. En vista de todo ello, el selector 2300 de comparación puede comparar el primer código con el segundo código solamente cuando no ocurra truncamiento de código en el segundo codificador 2120 de longitud variable no basado en periodicidad ni en el segundo codificador 2220 de longitud variable basado en periodicidad. En este caso, el selector 2300 de comparación realiza el siguiente proceso.
Cuando el número de bits del segundo código es menor o igual que el número B de bits asignados y el segundo código es más pequeño que el primer código, el segundo código se presenta a la salida como el código de señal de número entero; en otro caso, el primer código se presenta a la salida como el código de señal de número entero. Específicamente, un proceso para el caso de alta periodicidad y un proceso para el caso de baja periodicidad se llevan a cabo según se describe en lo que sigue.
[Cuando se determina que el indicador S del grado de periodicidad es mayor que el valor de umbral TH predeterminado (la periodicidad es alta)]
Cuando el número de bits del segundo código de señal de número entero no basado en periodicidad presente a la salida del segundo codificador 2120 de longitud variable no basado en periodicidad es más pequeño o igual que el número B de bits asignados (es decir, no ocurre truncamiento de código) y la cantidad de código del segundo código de señal de número entero no basado en periodicidad es más pequeña que la cantidad de código de un primer código de señal de número entero basado en periodicidad, el selector 2300 de comparación presenta a la salida el segundo código de señal de número entero no basado en periodicidad. En otro caso, el selector 2300 de comparación presenta a la salida el primer código de señal de número entero basado en periodicidad.
[Cuando se determina que el indicador S del grado de periodicidad es menor que el umbral TH predeterminado (la periodicidad es baja)]
Cuando el número de bits de un segundo código de señal de número entero basado en periodicidad presente a la salida del segundo codificador 2220 de longitud variable basado en periodicidad es más pequeño o igual que el número B de bits asignados (es decir, no ha ocurrido truncamiento de código) y la cantidad de código del segundo código de señal de número entero basado en periodicidad es más pequeña que la cantidad de código de un primer código de señal de número entero no basado en periodicidad, el selector 2300 de comparación presenta a la salida el segundo código de señal de número entero basado en periodicidad. En otro caso, el selector 2300 de comparación presenta a la salida el primer código de señal de número entero no basado en periodicidad.
[CUARTA MODIFICACIÓN]
Al igual que en la tercera modificación descrita en lo que antecede, el selector 2300 de comparación puede comparar una cantidad de código obtenida usando un método de codificación basado en periodicidad más la cantidad de código c(T) de un código correspondiente al período T, con una cantidad de código obtenida usando un método de codificación no basado en periodicidad.
Específicamente, cuando un indicador S del grado de periodicidad es más alto que un umbral TH predeterminado (la periodicidad es alta), c1' c(T) puede ser comparado con c2', donde c1' es la cantidad de código de un primer código y c2' es la cantidad de código de un segundo código; cuando el indicador S del grado de periodicidad es menor o igual que un umbral TH predeterminado (la periodicidad es baja), c1 puede ser comparado con c2' c(T). En otras palabras, el proceso “cuando la cantidad de código ch1 = c1 del primer código de señal de número entero basado en periodicidad es mayor que la cantidad de código cl2' = c2' del segundo código de señal de número entero no basado en periodicidad” descrito con anterioridad, se puede llevar a cabo “cuando la cantidad de código c1' del primer código de señal de número entero basado en periodicidad más la cantidad de código c(T), c1' c(T), es mayor que la cantidad de código c2' del segundo código de señal de número entero no basado en periodicidad”; el proceso “cuando la cantidad de código cm‘ = c1 del primer código de señal de número entero basado en periodicidad es más pequeña que la cantidad de código cL2' = c2' del segundo código de señal de número entero no basado en periodicidad” descrito con anterioridad, se puede llevar a cabo “cuando la cantidad de código c1 del primer código de señal de número entero basado en periodicidad más la cantidad de código c(T), c1 + c(T), es más pequeña que la cantidad de código c2' del segundo código de señal de número entero no basado en periodicidad”; y el proceso “cuando c1 = c2'” descrito con anterioridad, se puede llevar a cabo “cuando c1 + c(T) = c2'”. De forma similar, el proceso “cuando la cantidad de código cL1' = c1' del primer código de señal de número entero no basado en periodicidad es mayor que la cantidad de código cH2' = c2' del segundo código de señal de número entero basado en periodicidad” descrito con anterioridad, se puede llevar a cabo “cuando la cantidad de código c1 del primer código de señal de número entero no basado en periodicidad es mayor que la cantidad de código c2' del segundo código de señal de número entero basado en periodicidad más la cantidad de código c(T)', c2' c(T)'”; el proceso “cuando la cantidad de código cl1 = c1 del primer código de señal de número entero no basado en periodicidad es más pequeño que la cantidad de código ch2‘ = c2' del segundo código de señal de número entero basado en periodicidad” descrito con anterioridad, se puede llevar a cabo “cuando la cantidad de código c1' del primer código de señal de número entero no basado en periodicidad es más pequeña que la cantidad de código c2' del segundo código de señal de número entero basado en periodicidad más la cantidad de código c(T)', c2' c(T)'”; y el proceso “cuando c1' = c2'” descrito con anterioridad, se puede llevar a cabo “cuando c1' = c2' c(T)”. Alternativamente, se puede hacer una comparación entre cantidades de código que tenga en cuenta la cantidad de código c(T) de un código correspondiente al período T según se ha descrito con anterioridad, del modo que se ha descrito en la tercera modificación.
[Otras modificaciones]
La presente invención no se limita a las realizaciones descritas en lo que antecede. Por ejemplo, el proceso de bucle de ganancia no se limita al proceso descrito con anterioridad. El proceso de bucle de ganancia puede ser cualquier proceso en el que cada uno de los coeficientes de una cadena de coeficientes XN(1), ..., Xn(N) de MDCT normalizados ponderados de entrada, se divide por una ganancia g y la cadena resultante XN(1)/g, ..., XN(N)/g se cuantifica para obtener una secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados que es una secuencia de valores enteros, y la ganancia g se halla de tal forma que un “número estimado de bits de código” o el “número de bits de código” que corresponda a la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados sea más pequeño o igual que el número B de bits asignados, el cual es el número de bits asignados por anticipado, y tan grande como sea posible. Obsérvese que el “número estimado de bits de código” cuando el indicador S del grado de periodicidad es mayor que un umbral TH predeterminado (la periodicidad es alta) es un valor estimado de la cantidad de código de la secuencia de coeficientes Xq (1), ..., XQ(N) normalizados cuantificados que se estima con la suposición de que se usa el método de codificación basado en periodicidad para codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados y el “número de bits de código” es la cantidad de código de un código que se obtiene al codificar la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados usando el método de codificación basado en periodicidad. El “número estimado de bits de código” cuando el indicador S del grado de periodicidad es menor o igual que el umbral TH predeterminado (la periodicidad es baja) es un valor estimado de la cantidad de código de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados que se estima con la suposición de que la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados se codifica usando el método de codificación no basado en periodicidad y el “número de bits de código” es la cantidad de código del código obtenido al codificar la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados usando el método de codificación no basado en periodicidad. Se puede usar cualquier proceso de bucle de ganancia de ese tipo. Por ejemplo, la ganancia g puede ser actualizada mediante una cantidad de actualización proporcional a la diferencia entre el número de bits (o un número estimado de bits) de una secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados correspondiente a la ganancia g, y el número B de bits asignados. Por ejemplo, cuando el número de bits o un número estimado de bits de la secuencia de coeficientes Xq (1), ..., Xq (N) normalizados cuantificados correspondiente a la ganancia g (mencionado en lo que sigue como el número de bits consumidos) es mayor que el número B de bits asignados y no se ha establecido ningún límite superior de la ganancia, el valor de la ganancia g puede ser actualizado de modo que cuanto mayor sea el número de algunas o de todas las muestras en la secuencia de coeficientes Xq (1), ..., XQ(N) normalizados cuantificados menos el número de muestras que permanecen después de la eliminación de los coeficientes normalizados cuantificados que correspondan a la cantidad de porción retirada de un código que corresponde al número de bits en que el número de bits consumidos excede al número de bits asignados a partir de la secuencia de coeficientes XQ(1), ..., XQ(N) normalizados cuantificados, mayor será el incremento mediante el que se actualice la ganancia g. Cuando el número de bits consumidos es más pequeño que el número B de bits asignados y no se ha establecido ningún límite inferior de la ganancia g, el valor de la ganancia puede ser actualizado de modo que cuanto mayor sea el número B de bits asignados menos el número de bits consumidos, mayor será el decremento mediante el que se actualice la ganancia. El término “proceso de bucle de ganancia” significa un proceso en el que se lleva a cabo una o más veces un procesamiento predeterminado hasta que se satisfaga una condición predeterminada. En el proceso de bucle de ganancia, el procesamiento predeterminado puede ser o no repetido.
En las realizaciones descritas con anterioridad, en vez de redondear un valor hasta el número entero más cercano, se descarta la parte fraccionaria del valor o se redondea en sentido ascendente hasta el número entero más cercano. La determinación de si a es mayor que b puede realizarse mediante la comparación de a con b para determinar si a > b o se puede hacer comparando a con g (donde g > b) para determinar si a > g. Es decir, se puede determinar si el indicador S corresponde o no a alta periodicidad sobre la base de si el indicador S es o no mayor que un umbral TH predeterminado o si el indicador S es o no mayor o igual que un umbral TH' predeterminado (donde TH' > TH). En otras palabras, “el indicador S es mayor que el umbral TH predeterminado” en las realizaciones y sus modificaciones puede ser reemplazado por “el indicador S es mayor o igual que un umbral TH' predeterminado”, y “el indicador S es mayor o igual que el umbral TH predeterminado” puede ser reemplazado por “el indicador S es mayor que el umbral TH' predeterminado”.
Los procesos descritos con anterioridad pueden ser llevados a cabo no solo en secuencia de tiempo como se ha descrito, sino también en paralelo o individualmente, dependiendo del rendimiento de los dispositivos que realizan los procesos o de los requisitos. Se debe entender que se pueden hacer modificaciones según sea apropiado.
Si las configuraciones descritas con anterioridad se implementan mediante un ordenador, el procesamiento de la función que cada dispositivo necesite incluir se describe en un programa. El programa se ejecuta en el ordenador para implementar las funciones de procesamiento descritas con anterioridad en el ordenador. El programa que describe los procesos puede estar grabado en un soporte de registro legible con ordenador. Un ejemplo de soporte de registro legible con ordenador es un soporte de registro no transitorio. Ejemplos de dicho soporte de registro incluyen soportes de registro tales como un dispositivo de registro magnético, un disco óptico, un soporte de registro magneto-óptico, y una memoria de semiconductor.
El programa puede ser distribuido, por ejemplo, mediante venta, transferencia o préstamo de un soporte de registro portátil en el que esté grabado el programa, tal como un DVD o un CD-ROM. El programa puede estar almacenado en un dispositivo de almacenaje de un ordenador de un servidor y ser transferido desde el ordenador del servidor a otros ordenadores a través de una red, distribuyendo con ello el programa.
Un ordenador que ejecuta el programa almacena primero el programa grabado en un soporte de registro portátil o el programa se transfiere desde un ordenador de un servidor hasta un dispositivo de almacenaje del ordenador. Cuando el ordenador ejecuta los procesos, el ordenador lee el programa almacenado en el dispositivo de registro del ordenador y ejecuta los procesos conforme al programa leído. En otro modo de ejecución del programa, el ordenador puede leer el programa directamente desde un soporte de registro portátil y puede ejecutar los procesos conforme al programa o puede ejecutar los procesos conforme al programa cada vez que el programa sea transferido desde un ordenador de un servidor hasta el ordenador. Alternativamente, los procesos pueden ser ejecutados usando lo que se conoce como servicio de ASP (Proveedor de Servicio de Aplicación), en donde el programa no se transfiere desde un ordenador de un servidor hasta el ordenador sino que las funciones de procesamiento son implementadas solamente mediante instrucciones para ejecutar el programa y la adquisición de los resultados de la ejecución.
Mientras que se ejecuta un programa predeterminado en un ordenador para implementar las funciones de procesamiento del dispositivo en las realizaciones descritas con anterioridad, al menos algunas de las funciones de procesamiento pueden ser implementadas mediante hardware.
[DESCRIPCIÓN DE LOS NÚMEROS DE REFERENCIA]
100, 200 Codificador
1100 Estimador de cantidad de código de ajuste de ganancia basado en periodicidad
1120 Segundo estimador de cantidad de código de longitud variable no basado en periodicidad 1200 Estimador de cantidad de código de ajuste de ganancia no basado en periodicidad
1220 Segundo estimador de cantidad de código de longitud variable basado en periodicidad 2100 Codificador de ajuste de ganancia basado en periodicidad
2120 Segundo codificador de longitud variable no basado en periodicidad
2200 Codificador de ajuste de ganancia no basado en periodicidad
2220 Segundo codificador de longitud variable basado en periodicidad

Claims (6)

REIVINDICACIONES
1. Un método de codificación que comprende:
una etapa de generación de cadena de muestra del dominio de la frecuencia para la obtención de una cadena de muestra del dominio de la frecuencia derivada de una señal de audio en cada intervalo de tiempo predeterminado;
una etapa de análisis de periodicidad para el cálculo de un indicador del grado de periodicidad de la cadena de muestra del dominio de la frecuencia;
una etapa de estimación de cantidad de código de ajuste de ganancia basado en periodicidad para obtener, cuando el indicador corresponde a periodicidad alta, una primera secuencia de valores enteros y un primer valor estimado de cantidad de código basado en periodicidad mediante ajuste de un valor de una primera ganancia por medio de un proceso de bucle, siendo la primera secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen al dividir cada muestra de la cadena de muestra del dominio de la frecuencia por la primera ganancia, siendo el primer valor estimado de cantidad de código basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación basado en periodicidad;
una segunda etapa de estimación de cantidad de código no basada en periodicidad para obtener, cuando el indicador corresponde a periodicidad alta, un segundo valor estimado de cantidad de código no basado en periodicidad que es un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación no basado en periodicidad;
una etapa de estimación de cantidad de código de ajuste de ganancia no basada en periodicidad para obtener, cuando el indicador no corresponde a periodicidad alta, una segunda secuencia de valores enteros y un primer valor estimado de cantidad de código no basado en periodicidad ajustando un valor de una segunda ganancia mediante un proceso de bucle, siendo la segunda secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen dividiendo cada muestra de la cadena de muestra del dominio de la frecuencia por la segunda ganancia, siendo el primer valor estimado de cantidad de código no basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación no basado en periodicidad;
una segunda etapa de estimación de cantidad de código basada en periodicidad para obtener, cuando el indicador no corresponde a periodicidad alta, un segundo valor estimado de cantidad de código basado en periodicidad, quees un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación basado en periodicidad, y
una etapa de codificación de comparación y selección para,
cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código de un código correspondiente a un período para codificación usando el método de codificación basado en periodicidad, es mayor que el segundo valor estimado de cantidad de código no basado en periodicidad, codificar la primera secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros;
cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período es más pequeño que el segundo valor estimado de cantidad de código no basado en periodicidad, codificar la primera secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros,
cuando el primer valor estimado de cantidad de código no basado en periodicidad es mayor que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codificar la segunda secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros, y
cuando el primer valor estimado de cantidad de código no basado en periodicidad es más pequeño que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codificar la segunda secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros.
2. El método de codificación según la reivindicación 1,
en donde la determinación de si el indicador corresponde o no a alta periodicidad se realiza sobre la base de si el indicador es mayor o no que un umbral predeterminado, o sobre la base de si el indicador es o no mayor o igual que un umbral predeterminado.
3. Un codificador (100) que comprende:
un generador (1003) de cadena de muestra del dominio de la frecuencia que obtiene una cadena de muestra del dominio de la frecuencia derivada de una señal de audio en cada intervalo de tiempo predeterminado;
un analizador (1004) de periodicidad que calcula un indicador del grado de periodicidad de la cadena de muestra del dominio de la frecuencia;
un estimador (1100) de cantidad de código de ajuste de ganancia basado en periodicidad que, cuando el indicador corresponde a alta periodicidad, obtiene una primera secuencia de valores enteros y un primer valor estimado de cantidad de código basado en periodicidad ajustando un valor de una primera ganancia por medio de un proceso de bucle, siendo la primera secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen al dividir cada muestra en la cadena de muestra del dominio de la frecuencia por la primera ganancia, siendo el primer valor estimado de cantidad de código basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación basado en periodicidad;
un segundo estimador (1120) de cantidad de código no basado en periodicidad que, cuando el indicador corresponde a alta periodicidad, obtiene un segundo valor estimado de cantidad de código no basado en periodicidad que es un valor estimado de la cantidad de código de un código correspondiente a la primera secuencia de valores enteros que se estima con la suposición de que la primera secuencia de valores enteros se codifica usando un método de codificación no basado en periodicidad;
un estimador (1200) de cantidad de código de ajuste de ganancia no basado en periodicidad que, cuando el indicador no corresponde a alta periodicidad, obtiene una segunda secuencia de valores enteros y un primer valor estimado de cantidad de código no basado en periodicidad por ajuste de un valor de una segunda ganancia por medio de un proceso de bucle, siendo la segunda secuencia de valores enteros una secuencia de muestras de valor entero que se obtienen al dividir cada muestra de la cadena de muestra del dominio de la frecuencia por la segunda ganancia, siendo el primer valor estimado de cantidad de código no basado en periodicidad un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación no basado en periodicidad;
un segundo estimador (1220) de cantidad de código basado en periodicidad que, cuando el indicador no corresponde a periodicidad alta, obtiene un segundo valor estimado de cantidad de código basado en periodicidad que es un valor estimado de la cantidad de código de un código correspondiente a la segunda secuencia de valores enteros que se estima con la suposición de que la segunda secuencia de valores enteros se codifica usando el método de codificación basado en periodicidad, y
un codificador (1300) de comparación y selección que,
cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código de un código correspondiente a un período de codificación usando el método de codificación basado en periodicidad es mayor que el segundo valor estimado de cantidad de código no basado en periodicidad, codifica la primera secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros,
cuando el primer valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período es más pequeño que el segundo valor estimado de cantidad de código no basado en periodicidad, codifica la primera secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la primera secuencia de valores enteros;
cuando el primer valor estimado de cantidad de código no basado en periodicidad es mayor que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codifica la segunda secuencia de valores enteros usando el método de codificación basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros, y
cuando el valor estimado de cantidad de código no basado en periodicidad es más pequeño que el segundo valor estimado de cantidad de código basado en periodicidad más la cantidad de código del código correspondiente al período, codifica la segunda secuencia de valores enteros usando el método de codificación no basado en periodicidad para obtener y presentar a la salida un código correspondiente a la segunda secuencia de valores enteros.
4. El codificador según la reivindicación 3,
en donde la determinación de si el indicador corresponde o no a alta periodicidad se realiza sobre la base de si el indicador es o no mayor que un umbral predeterminado o sobre la base de si el indicador es o no mayor o igual que un umbral predeterminado.
5. Un programa que está adaptado para hacer que un ordenador ejecute las etapas del método de codificación según la reivindicación 1 o 2.
6. Un soporte de registro legible con ordenador que almacena un programa que está adaptado para hacer que un ordenador ejecute las etapas del método de codificación según la reivindicación 1 ó 2.
ES18173777T 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro Active ES2768090T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014059502 2014-03-24

Publications (1)

Publication Number Publication Date
ES2768090T3 true ES2768090T3 (es) 2020-06-19

Family

ID=54194767

Family Applications (3)

Application Number Title Priority Date Filing Date
ES18173777T Active ES2768090T3 (es) 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro
ES18173792T Active ES2754706T3 (es) 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro
ES15768801.1T Active ES2689120T3 (es) 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES18173792T Active ES2754706T3 (es) 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro
ES15768801.1T Active ES2689120T3 (es) 2014-03-24 2015-01-13 Método de codificación, codificador, programa y soporte de registro

Country Status (9)

Country Link
US (3) US9911427B2 (es)
EP (3) EP3125242B1 (es)
JP (3) JP6250140B2 (es)
KR (3) KR101848899B1 (es)
CN (3) CN110491399B (es)
ES (3) ES2768090T3 (es)
PL (3) PL3385948T3 (es)
TR (1) TR201811073T4 (es)
WO (1) WO2015146224A1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3385948T3 (pl) * 2014-03-24 2020-01-31 Nippon Telegraph And Telephone Corporation Sposób kodowania, koder, program i nośnik zapisu
JP7173134B2 (ja) * 2018-04-13 2022-11-16 日本電信電話株式会社 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体
JP7139897B2 (ja) * 2018-11-07 2022-09-21 日本電信電話株式会社 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム
WO2023110082A1 (en) * 2021-12-15 2023-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive predictive encoding

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742734A (en) * 1994-08-10 1998-04-21 Qualcomm Incorporated Encoding rate selection in a variable rate vocoder
JP2000267700A (ja) * 1999-03-17 2000-09-29 Yrp Kokino Idotai Tsushin Kenkyusho:Kk 音声符号化復号方法および装置
AU2001253752A1 (en) * 2000-04-24 2001-11-07 Qualcomm Incorporated Method and apparatus for predictively quantizing voiced speech
US6732071B2 (en) * 2001-09-27 2004-05-04 Intel Corporation Method, apparatus, and system for efficient rate control in audio encoding
JP4263412B2 (ja) * 2002-01-29 2009-05-13 富士通株式会社 音声符号変換方法
CA2388439A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
JP4527369B2 (ja) * 2003-07-31 2010-08-18 富士通株式会社 データ埋め込み装置及びデータ抽出装置
JP2005181354A (ja) * 2003-12-15 2005-07-07 Sony Corp 復号装置及び方法
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7752039B2 (en) * 2004-11-03 2010-07-06 Nokia Corporation Method and device for low bit rate speech coding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
FR2898443A1 (fr) * 2006-03-13 2007-09-14 France Telecom Procede de codage d'un signal audio source, dispositif de codage, procede et dispositif de decodage, signal, produits programme d'ordinateur correspondants
JP4871894B2 (ja) * 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
EP2077551B1 (en) * 2008-01-04 2011-03-02 Dolby Sweden AB Audio encoder and decoder
EP2259253B1 (en) * 2008-03-03 2017-11-15 LG Electronics Inc. Method and apparatus for processing audio signal
PL2346030T3 (pl) * 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
KR101610765B1 (ko) * 2008-10-31 2016-04-11 삼성전자주식회사 음성 신호의 부호화/복호화 방법 및 장치
JP5337235B2 (ja) * 2009-03-10 2013-11-06 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム及び記録媒体
AU2010305383B2 (en) * 2009-10-08 2013-10-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Multi-mode audio signal decoder, multi-mode audio signal encoder, methods and computer program using a linear-prediction-coding based noise shaping
RU2510974C2 (ru) * 2010-01-08 2014-04-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования, способ декодирования, устройство кодера, устройство декодера, программа и носитель записи
EP2573766B1 (en) * 2010-07-05 2015-03-18 Nippon Telegraph And Telephone Corporation Encoding method, decoding method, encoding device, decoding device, program, and recording medium
JP5325340B2 (ja) * 2010-07-05 2013-10-23 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
WO2012008330A1 (ja) * 2010-07-16 2012-01-19 日本電信電話株式会社 符号化装置、復号装置、これらの方法、プログラム及び記録媒体
WO2012032759A1 (ja) * 2010-09-10 2012-03-15 パナソニック株式会社 符号化装置及び符号化方法
JP5612698B2 (ja) 2010-10-05 2014-10-22 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体
JP5694751B2 (ja) * 2010-12-13 2015-04-01 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体
CN103329199B (zh) * 2011-01-25 2015-04-08 日本电信电话株式会社 编码方法、编码装置、周期性特征量决定方法、周期性特征量决定装置、程序、记录介质
WO2012108798A1 (en) * 2011-02-09 2012-08-16 Telefonaktiebolaget L M Ericsson (Publ) Efficient encoding/decoding of audio signals
RU2559709C2 (ru) * 2011-02-16 2015-08-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования, способ декодирования, кодер, декодер, программа и носитель записи
WO2012122299A1 (en) * 2011-03-07 2012-09-13 Xiph. Org. Bit allocation and partitioning in gain-shape vector quantization for audio coding
WO2012137617A1 (ja) * 2011-04-05 2012-10-11 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体
JP5663461B2 (ja) * 2011-12-06 2015-02-04 日本電信電話株式会社 符号化方法、符号化装置、プログラム、記録媒体
KR101661917B1 (ko) * 2012-05-30 2016-10-05 니폰 덴신 덴와 가부시끼가이샤 부호화 방법, 부호화 장치, 프로그램 및 기록 매체
CN107359880B (zh) * 2012-10-01 2020-08-25 日本电信电话株式会社 编码方法、编码装置以及记录介质
EP3399522B1 (en) * 2013-07-18 2019-09-11 Nippon Telegraph and Telephone Corporation Linear prediction analysis device, method, program, and storage medium
KR101850523B1 (ko) * 2014-01-24 2018-04-19 니폰 덴신 덴와 가부시끼가이샤 선형 예측 분석 장치, 방법, 프로그램 및 기록 매체
PL3385948T3 (pl) * 2014-03-24 2020-01-31 Nippon Telegraph And Telephone Corporation Sposób kodowania, koder, program i nośnik zapisu
KR101860143B1 (ko) * 2014-05-01 2018-05-23 니폰 덴신 덴와 가부시끼가이샤 주기성 통합 포락 계열 생성 장치, 주기성 통합 포락 계열 생성 방법, 주기성 통합 포락 계열 생성 프로그램, 기록매체
ES2732859T3 (es) * 2014-05-01 2019-11-26 Nippon Telegraph & Telephone Codificador, descodificador, método de codificación, método de descodificación, programa de codificación, programa de descodificación y medio de grabación

Also Published As

Publication number Publication date
JPWO2015146224A1 (ja) 2017-04-13
EP3125242A1 (en) 2017-02-01
JP6595687B2 (ja) 2019-10-23
KR20160122257A (ko) 2016-10-21
EP3125242A4 (en) 2017-08-30
JP2017227904A (ja) 2017-12-28
CN106133830B (zh) 2019-08-16
CN110491398A (zh) 2019-11-22
JP6509973B2 (ja) 2019-05-08
US20180137872A1 (en) 2018-05-17
KR101848899B1 (ko) 2018-04-13
US20180137873A1 (en) 2018-05-17
KR20180015287A (ko) 2018-02-12
KR101826237B1 (ko) 2018-02-13
JP6250140B2 (ja) 2017-12-20
CN106133830A (zh) 2016-11-16
EP3385948B1 (en) 2019-08-14
CN110491399B (zh) 2022-10-21
CN110491398B (zh) 2022-10-21
US9911427B2 (en) 2018-03-06
ES2689120T3 (es) 2018-11-08
ES2754706T3 (es) 2020-04-20
PL3413306T3 (pl) 2020-04-30
EP3413306B1 (en) 2019-10-30
JP2019032551A (ja) 2019-02-28
KR20180015289A (ko) 2018-02-12
EP3413306A1 (en) 2018-12-12
WO2015146224A1 (ja) 2015-10-01
US10283132B2 (en) 2019-05-07
EP3385948A1 (en) 2018-10-10
PL3125242T3 (pl) 2018-12-31
CN110491399A (zh) 2019-11-22
US20170092283A1 (en) 2017-03-30
PL3385948T3 (pl) 2020-01-31
KR101848898B1 (ko) 2018-04-13
EP3125242B1 (en) 2018-07-11
TR201811073T4 (tr) 2018-08-27
US10290310B2 (en) 2019-05-14

Similar Documents

Publication Publication Date Title
US11074919B2 (en) Encoding method, decoding method, encoder, decoder, program, and recording medium
ES2720253T3 (es) Método de codificación, codificador, programa, y medio de grabación
ES2768090T3 (es) Método de codificación, codificador, programa y soporte de registro
ES2661504T3 (es) Método de codificación, codificador, programa y medio de grabación
JP5579932B2 (ja) 符号化方法、装置、プログラム及び記録媒体