ES2807241T3 - Método de codificación, codificador, programa y medio de grabación - Google Patents
Método de codificación, codificador, programa y medio de grabación Download PDFInfo
- Publication number
- ES2807241T3 ES2807241T3 ES19169511T ES19169511T ES2807241T3 ES 2807241 T3 ES2807241 T3 ES 2807241T3 ES 19169511 T ES19169511 T ES 19169511T ES 19169511 T ES19169511 T ES 19169511T ES 2807241 T3 ES2807241 T3 ES 2807241T3
- Authority
- ES
- Spain
- Prior art keywords
- gain
- bits
- update
- samples
- lower limit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000005236 sound signal Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000009467 reduction Effects 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 54
- 238000001228 spectrum Methods 0.000 description 41
- 239000004606 Fillers/Extenders Substances 0.000 description 35
- 238000012986 modification Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 17
- 239000003638 chemical reducing agent Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 238000010606 normalization Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/035—Scalar quantisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/083—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
Un método de codificación para una cadena de muestras derivada de una señal de audio de entrada en un intervalo de tiempo dado, la cadena de muestras que consiste en una pluralidad de muestras, obteniendo el método de codificación un código de ganancia correspondiente a una ganancia obtenida por un paso de procesamiento de bucle de actualización de ganancia de obtención la ganancia por procesamiento en bucle y un código de señal entero obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia; en donde el paso de procesamiento del bucle de actualización de ganancia comprende un paso de actualización de expansión de ganancia y un paso de actualización de reducción de ganancia; el paso de actualización de expansión de ganancia comprende: un paso de ajuste de ganancia de límite inferior de, cuando el número de bits o el número estimado de bits c en un código obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por una ganancia antes una actualización es mayor que un número predeterminado B de bits asignados, configurando la ganancia antes de la actualización como un límite inferior gmin de la ganancia; y un primer paso de actualización de ganancia de, cuando el número de bits o el número estimado de bits c es mayor que el número predeterminado B de bits asignados y se ha establecido un límite superior gmax de la ganancia, estableciendo una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso al límite inferior gmin de la ganancia o al límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B de bits asignados, una cantidad de configuración de de bits consumidos en el ajuste del límite inferior y una cantidad de configuración de bits consumidos en el ajuste del límite inferior, y la cantidad de configuración de bits consumidos en el ajuste del límite inferiores el número de bits o el número estimado de bits; y el paso de actualización de reducción de ganancia comprende: un paso de ajuste de ganancia de límite superior de, cuando el número de bits o el número estimado de bits c en un código obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia anterior una actualización es menor que el número predeterminado B de bits asignados, configurando la ganancia antes de la actualización como un límite superior gmax de la ganancia; y un segundo paso de actualización de ganancia de, cuando el número de bits o el número estimado de bits c es menor que el número predeterminado B de bits asignados y se ha establecido el límite inferior gmin de la ganancia, estableciendo una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso al límite inferior gmin de la ganancia o al límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B de bits asignados, el número de bits consumidos en el límite inferior, y el número de bits consumidos en el límite superior, y el número de bits consumidos en el límite superior se puede establecer que es el número de bits o el número estimado de bits.
Description
DESCRIPCIÓN
Método de codificación, codificador, programa y medio de grabación
[Campo técnico]
La presente invención se refiere a una técnica de codificación para señales de audio y, en particular, a una técnica de codificación para codificar una secuencia obtenida dividiendo una cadena de muestras derivada de una señal de audio por una ganancia.
[Antecedentes de la técnica]
La codificación adaptativa que codifica coeficientes ortogonales tales como coeficientes de DFT (Transformada Discreta de Fourier) y de MDCT (Transformada Discreta Coseno Modificada) es conocida como método para codificar señales de habla y señales de audio a tasas de bit bajas (por ejemplo, de alrededor de 10 a 20 Kbit/s). Por ejemplo, AMR-WB+ (Multitasa Adaptativa de Banda Ancha Extendida), que es una técnica estándar, tiene el modo de codificación TCX (excitación codificada por transformada). En codificación TCX, se determina una ganancia para una cadena de coeficientes obtenida normalizando una secuencia de señales digitales de audio en el dominio de frecuencia con una cadena de coeficientes de envolvente de espectro de potencia de modo que una secuencia obtenida dividiendo cada uno de los coeficientes en la cadena de coeficientes por la ganancia se pueda codificar con un número predeterminado de bits.
El documento de patente US 2008/065376 eneña a restringir el espacio de búsqueda para la ganancia óptima iterativamente.
<Codificador 1000 TCX>
La Figura 1 ilustra una configuración ejemplar de un codificador 1000 que realiza codificación TCX convencional. Los componentes en la Figura 1 se explicarán a continuación.
<Transformador 1001 en el dominio de frecuencia>
Un transformador 1001 en el dominio de frecuencia transforma una señal digital de audio de entrada en una cadena de coeficientes MDCT X(1), ..., X(N) en N puntos en el dominio de frecuencia sobre una base trama por trama en un periodo de tiempo dado y emite la cadena de coeficientes MDCT. Aquí, N es un número entero positivo.
<Unidad 1002 aritmética de cadena de coeficientes de envoltura de espectro de potencia>
Una unidad 1002 aritmética de cadena de coeficientes de envoltura de espectro de potencia realiza un análisis de predicción lineal de una señal digital de audio en cada trama para obtener coeficientes predictivos lineales y usa los coeficientes predictivos lineales para obtener y emitir una cadena de coeficientes de envoltura de espectro de potencia W(1), ..., W(N) de la señal digital de audio en N puntos.
<Normalización 1003 de envoltura ponderada>
Un normalizador 1003 de envoltura ponderada usa una cadena de coeficientes de envoltura de espectro de potencia obtenida por la unidad 1002 aritmética de cadena de coeficientes de envoltura de espectro de potencia para normalizar cada uno de los coeficientes en una cadena de coeficientes MDCT obtenida por el transformador 1001 en el dominio de frecuencia y emite una cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N). Aquí, con el fin de realizar cuantificación que minimiza auditivamente la distorsión, el normalizador 1003 de envoltura ponderada usa una cadena de coeficientes de envoltura de espectro de potencia ponderados obtenida moderando una envoltura de espectro de potencia para normalizar los coeficientes en las cadenas de coeficientes MDCT sobre una base trama por trama. Como resultado, la cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., XN(N) no tiene una pendiente pronunciada de amplitud o grandes variaciones de amplitud en comparación con la cadena de coeficientes MDCT de entrada pero tiene variaciones de magnitud similares a las de la cadena de coeficientes de envoltura de espectro de potencia de la señal digital de audio. Es decir, la cadena de coeficientes MDCT normalizados ponderados tiene amplitudes algo mayores en una región de coeficientes correspondiente a bajas frecuencias y tiene una estructura fina debida a un periodo de tono.
<Inicializador 1004>
Un inicializador 1004 establece un valor inicial de ganancia (ganancia global) g. El valor inicial de la ganancia se puede determinar a partir de la energía de una cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N) y el número de bits asignado de antemano a una salida codificada de un codificador 1006 de longitud variable, por ejemplo. El número de bits asignado de antemano a una salida de código del codificador 1006 de longitud variable es conocido en lo sucesivo como el número B de bits asignados. El iniciador también establece 0 como el valor inicial del número de actualizaciones de ganancia.
<Procesador 1130 de bucle de actualización de ganancia>
Un procesador 1130 de bucle de actualización de ganancia determina la ganancia de manera que una secuencia obtenida dividiendo cada coeficiente en una cadena de coeficientes MDCT normalizados ponderados Xn(1), XN(N) por la ganancia se puede codificar con un número predeterminado de bits, y emite un código de señal de número entero obtenido mediante codificación de longitud variable de la secuencia obtenida dividiendo cada coeficiente en la cadena de coeficientes MDCT normalizados ponderados Xn(1), Xn(N) por la ganancia determinada y un código de ganancia obtenido codificando la ganancia determinada.
El procesador 1130 de bucle de actualización incluye un cuantificador 1005, el codificador 1006 de longitud variable, un determinador 1007, un actualizador 1131 de expansión de ganancia, un actualizador 1132 de reducción de ganancia, una unidad 1016 de truncamiento, y un codificador 1017 de ganancia.
<Cuantificador 1005>
El cuantificador 1005 cuantifica un valor obtenido dividiendo cada coeficiente en una cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N) por la ganancia g para obtener y emitir una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N), que es una secuencia de valores enteros.
<Codificador 1006 de longitud variable>
El codificador 1006 de longitud variable codifica una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) para obtener y emitir un código. El código se conoce como código de señal de número entero. La codificación de longitud variable puede usar un método que codifica una pluralidad de coeficientes en una cadena de coeficientes normalizados cuantificados en un tiempo, por ejemplo. Además, el codificador 1006 de longitud variable mide el número de bits en el código de señal de número entero obtenido mediante la codificación de longitud variable. El número de bits se conoce en lo sucesivo como el número c de bits consumidos.
<Determinador 1007>
El determinador 1007 emite ganancia, código de señal de número entero, y el número c de bits consumidos cuando el número de actualizaciones de ganancia es igual a un número predeterminado.
Cuando el número de actualizaciones de ganancia es menor que el número predeterminado, el determinador 1007 realiza un control para hacer que un actualizador 1131 de expansión de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 1006 de longitud variable es mayor que el número B de bits asignados, o para hacer que un actualizador 1132 de reducción de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 1006 de longitud variable es menor que el número B de bits asignados. Señalar que si el número c de bits consumidos es igual al número B de bits asignados, significa que el valor actual de ganancia es óptimo y por lo tanto el determinador 1007 emite la ganancia, el código de señal de número entero y el número c de bits consumidos.
<Actualizador 1131 de expansión de ganancia>
El actualizador 1131 de expansión de ganancia establece un valor mayor que el valor actual de ganancia g como nueva ganancia g’>g. El actualizador 1131 de expansión de ganancia incluye un establecedor 1008 de ganancia de límite inferior, un primer controlador 1009 de ramificación, un primer actualizador 1010 de ganancia, y un extensor 1011 de ganancia.
<Establecedor 1008 de ganancia de límite inferior>
El establecedor 1008 de ganancia de límite inferior establece el valor actual de ganancia g como la ganancia gmin de límite inferior (gmin ^ g). La ganancia gmin de límite inferior significa el valor de ganancia más bajo permitido.
<Primer controlador 1009 de ramificación>
Cuando la ganancia gmin de límite inferior se establece por el establecedor 1008 de ganancia de límite inferior, el primer controlador 1009 de ramificación realiza un control para hacer que el primer actualizador 1010 de ganancia realice un siguiente proceso si ya se ha establecido un valor de ganancia gmax de límite superior o para hacer que el extensor 1011 de ganancia realice un siguiente proceso si no se ha establecido la ganancia gmax de límite superior. <Primer actualizador 1010 de ganancia>
El primer actualizador 1010 de ganancia establece la media del valor actual de ganancia g y la ganancia gmax de límite superior como nuevo valor de ganancia g (g ^ (g gmax )/2). Esto es debido a que un valor óptimo de ganancia está entre el valor actual de ganancia g y la ganancia gmax de límite superior. Dado que el valor actual de ganancia g se ha establecido como la ganancia gmin de límite inferior, se puede decir que la media de la ganancia gmax de límite superior y la ganancia gmin de límite inferior se establece como nuevo valor de ganancia g (g ^ (gmax gmin)/2). Entonces el control vuelve al proceso en el cuantificador 1005.
<Extensor 1011 de ganancia>
El extensor 1011 de ganancia establece un valor mayor que el valor actual de ganancia g como nuevo valor de ganancia g. Por ejemplo, el extensor 1011 de ganancia establece un valor que es igual al valor actual de ganancia g más una cantidad de cambio de ganancia Ag, que es un valor predeterminado, como nuevo valor de ganancia g (g ^ g Ag). Si no se ha establecido la ganancia gmax de límite superior y el número c de bits consumidos ha sido mayor que el número B de bits asignados sucesivas veces, por ejemplo, un valor mayor que el valor predeterminado se usa como la cantidad de cambio de ganancia Ag. Entonces el control vuelve al proceso en el cuantificador 1005. <Actualizador 1132 de reducción de ganancia>
El actualizador 1132 de reducción de ganancia establece un valor menor que el valor actual de ganancia g como nueva ganancia g’ < g. El actualizador 1132 de reducción de ganancia incluye un establecedor 1012 de ganancia de límite superior, un segundo controlador 1013 de ramificación, un segundo actualizador 1014 de ganancia, y un reductor 1015 de ganancia.
<Establecedor 1012 de ganancia de límite superior>
El establecedor 1012 de ganancia de límite superior establece el valor actual de ganancia g como la ganancia gmax de límite superior (gmax ^ g). La ganancia gmax de límite superior significa la ganancia más alta permitida.
<Segundo controlador 1013 de ramificación>
Cuando la ganancia gmax de límite superior se establece por el establecedor 1012 de ganancia de límite superior, el segundo controlador 1013 de ramificación realiza un control para hacer que el segundo actualizador 1014 de ganancia realice un siguiente proceso si ya se ha establecido el valor de ganancia gmin de límite inferior o para hacer que el reductor 1015 de ganancia realice un siguiente proceso si no se ha establecido aún la ganancia gmin de límite inferior.
<Segundo actualizador 1014 de ganancia>
El segundo actualizador 1014 de ganancia establece la media del valor actual de ganancia g y la ganancia gmin de límite inferior como nuevo valor de ganancia g (g ^ (g gmin)/2). Esto es debido a que un valor óptimo de ganancia está entre el valor actual de ganancia g y la ganancia gmin de límite inferior. Dado que el valor actual de ganancia g se ha establecido como la ganancia gmax de límite superior, se puede decir que la media de la ganancia gmax de límite superior y la ganancia gmin de límite inferior se establece como nuevo valor de ganancia g (g ^ (gmax gmin)/2). Entonces el control vuelve al proceso en el cuantificador 1005.
<Reductor 1015 de ganancia>
El reductor 1015 de ganancia establece un valor menor que el valor actual de ganancia g como nuevo valor de ganancia g. Por ejemplo, el reductor 1015 de ganancia establece un valor que es igual al valor actual de ganancia g menos una cantidad de cambio de ganancia Ag, que es un valor predeterminado, como nuevo valor de ganancia g (g ^ g - Ag). Si no se ha establecido la ganancia gmin de límite inferior y el número c de bits consumidos ha sido menor que el número B de bits asignados sucesivas veces, por ejemplo, un valor mayor que el valor predeterminado se usa como la cantidad de cambio de ganancia Ag. Entonces el control vuelve al proceso en el cuantificador 1005. <Unidad 1016 de truncamiento >
Cuando el número c de bits consumidos emitidos desde el determinador 1007 es mayor que el número B de bits asignados, la unidad de truncamiento 1016 elimina una cantidad de código equivalente a bits por los que el número c de bits consumidos excede el número B de bits asignados del código correspondiente a los coeficientes normalizados cuantificados en el lado de frecuencia alta en un código de señal de número entero emitido desde el determinador 1007 y emite el código resultante como nuevo código de señal de número entero. Es decir, la unidad 1016 de truncamiento elimina la cantidad de código equivalente al número de bits c - B por el cual el número c de bits consumidos excede el número B de bits asignados que corresponde a coeficientes normalizados cuantificados en el lado de frecuencia alta a partir del código de señal de número entero y emite el código restante como nuevo código de señal de número entero.
<Codificador 1017 de ganancia>
El codificador 1017 de ganancia codifica ganancia emitida desde el determinador 1007 con un número predeterminado de bits para obtener y emitir un código de ganancia.
[Bibliografía de la técnica anterior]
[Bibliografía no de patente]
Bibliografía no de patente 1: Proyecto de Cooperación de 3a Generación (3GPP), Especificación Técnica (TS) 26.290, “Extended Adaptative Multi-Rate - Wideband (AMR-WB+) codec; Transcoding functions”, Versión 10.0.0 (03-2011)
[Compendio de la invención]
[Problemas a ser resueltos por la invención]
El extensor 1011 de ganancia del codificador 1000 convencional establece un valor de ganancia g más una cantidad de cambio de ganancia Ag, que es un valor predeterminado, como nuevo valor de ganancia g para extender el valor de ganancia a una tasa constante.
Si no se establece la ganancia de límite superior y el proceso en el extensor 1011 de ganancia necesita ser repetido un número de veces, el valor inicial de ganancia puede ser demasiado pequeño. Por lo tanto, la cantidad de cambio de ganancia Ag necesita ser aumentada por encima del valor predeterminado para aumentar la probabilidad de que la ganancia de límite superior sea alcanzada. Como resultado, sin embargo, un valor que es significativamente mayor que una ganancia óptima se puede establecer posiblemente como nuevo valor de ganancia, el proceso puede necesitar ser repetido muchas veces para lograr convergencia, y se puede alcanzar un número especificado de tiempo antes de que se pueda obtener un valor apropiado de ganancia.
De manera similar, el reductor 1015 de ganancia del codificador 1000 convencional establece un valor de ganancia g menos una cantidad de cambio de ganancia Ag, que es un valor predeterminado, como nuevo valor de ganancia g para reducir el valor de ganancia a una tasa constante.
Si no se establece la ganancia de límite superior y el proceso en el reductor 1015 de ganancia necesita ser repetido un número de veces, el valor inicial de ganancia puede ser demasiado grande. Por lo tanto, la cantidad de cambio de ganancia Ag necesita ser aumentada por encima del valor predeterminado para aumentar la probabilidad de que la ganancia de límite superior sea alcanzada. Como resultado, sin embargo, un valor que es significativamente mayor que una ganancia óptima se puede establecer posiblemente como nuevo valor de ganancia, el proceso puede necesitar ser repetido muchas veces para lograr convergencia, y se puede alcanzar un número especificado de tiempo antes de que se pueda obtener un valor apropiado de ganancia.
Si un valor obtenido cuando se alcanza el número especificado de veces es demasiado pequeño, el número de bits en un código obtenido mediante codificación de longitud variable es mayor que el número de bits asignados y por lo tanto solamente se puede emitir parte del código obtenido mediante codificación de longitud variable como un código de señal de número entero y un código correspondiente a los coeficientes normalizados cuantificados en una banda de alta frecuencia no se emiten desde el codificador y no se proporcionan al decodificador. En consecuencia, el decodificador tiene que usar 0 como coeficientes en la banda de alta frecuencia para obtener una señal decodificada, lo que puede conducir a una distorsión grande de la señal decodificada. Si el valor de ganancia obtenido cuando se alcanza el número especificado de veces es demasiado grande, el número de bits en el código de señal de número entero es menor que el número de bits permitidos y por lo tanto no se puede lograr una calidad de señal de audio suficientemente buena.
[Medios para resolver los problemas]
La invención se define mediante las reivindicaciones adjuntas. Un valor de ganancia se actualiza de modo que cuanto mayor es la diferencia entre el número de bits o el número estimado de bits en un código obtenido codificando una cadena de muestras de valores enteros obtenidas dividiendo cada muestra en una cadena de muestras derivada de una señal de audio de entrada en un intervalo dado por la ganancia antes de la actualización y un número predeterminado B de bits asignados, mayor es la diferencia entre la ganancia antes de la actualización y la ganancia actualizada. Se obtienen un código de ganancia correspondiente a la ganancia actualizada y un código de señal de número entero obtenido codificando una cadena de muestras de valores enteros que se puede obtener dividiendo cada muestra en la cadena de muestras por la ganancia.
[Efectos de la invención]
La codificación según la presente invención facilita la convergencia de ganancia a un valor óptimo. Por consiguiente, el número de bits en un código obtenido mediante codificación de longitud variable se puede hacer más cercano al número de bits asignados que lo que es posible con la técnica convencional y se puede lograr una codificación de calidad más alta que la calidad que se puede lograr con la técnica convencional.
[Breve descripción de los dibujos]
La Figura 1 es un diagrama de bloques que ilustra una configuración de un codificador convencional;
la Figura 2 es un diagrama de bloques que ilustra una configuración de un codificador según una primera realización;
la Figura 3 es un diagrama de bloques que ilustra una configuración de un codificador según una modificación de la primera realización;
la Figura 4 es un diagrama de bloques que ilustra una configuración de un codificador según una segunda realización;
la Figura 5 es un diagrama de bloques que ilustra una configuración de un codificador según una modificación de la segunda realización; y
la Figura 6 es un diagrama de bloques que ilustra una configuración de un codificador según una tercera realización.
[Descripción detallada de las realizaciones]
Las realizaciones de la presente invención se describirán con referencia a los dibujos. Se asignan a los mismos componentes o procesos los mismos números de referencia y se puede omitir una descripción repetida de esos componentes y procesos. Señalar que las señales digitales de audio (señales de audio de entrada) manejadas en las realizaciones son señales producidas digitalizando señales de audio tales como habla o música. Se supone en las realizaciones que una señal digital de audio de entrada es una señal en el dominio de tiempo en un periodo de tiempo dado, la señal digital de audio se transforma a una señal en el dominio de frecuencia y una cadena obtenida normalizando la señal en el dominio de frecuencia usando una cadena de coeficientes de envoltura de espectro de potencia es una cadena de muestras a ser codificada (una cadena de muestras derivada de la señal de audio de entrada). Sin embargo, una señal digital de audio de entrada puede ser una señal en el dominio de tiempo en un periodo de tiempo dado y la señal digital de audio puede ser una cadena de muestras a ser codificada, o una señal residual obtenida mediante análisis de predicción lineal de la señal digital de audio puede ser una cadena de muestras a ser codificada, o una señal en el dominio de frecuencia transformada a partir de la señal digital de audio puede ser una cadena de muestras a ser codificada. Alternativamente, una señal digital de audio de entrada puede ser una señal en el dominio de frecuencia en un intervalo dado (una señal en el dominio de frecuencia correspondiente a un periodo de tiempo dado o una señal en el dominio de frecuencia en un intervalo de frecuencia dado de la señal en el dominio de frecuencia) y la señal digital de audio puede ser una cadena de muestras a ser codificada, o una señal en el dominio de tiempo transformada a partir de la señal digital de audio puede ser una cadena de muestras a ser codificada, o una señal residual obtenida mediante análisis de predicción lineal de la señal en el dominio de tiempo puede ser una cadena de muestras a ser codificada. Es decir, una señal digital de audio de entrada puede ser una señal en el dominio de tiempo o una señal en el dominio de frecuencia y una cadena de muestras a ser codificada puede ser una señal en el dominio de tiempo o una señal en el dominio de frecuencia. Además, se puede usar cualquier método de transformación de una señal en el dominio de tiempo a una señal en el dominio de frecuencia y se puede usar cualquier método de transformación de una señal en el dominio de frecuencia a una señal en el dominio de tiempo. Por ejemplo, se puede usar MDCT (Transformada Discreta Coseno Modificada) o DCT (Transformada Discreta Coseno) o una transformada inversa de cualquiera de éstas.
En base a la suposición descrita anteriormente, las realizaciones se describirán con ejemplos en los que un codificador incluye un transformador en el dominio de frecuencia, una unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia, y un normalizador de envoltura ponderada y una cadena de muestras obtenida en el normalizador de envoltura ponderada se introduce en un cuantificador. Sin embargo, si una señal digital de audio de entrada en sí misma es una cadena de muestras a ser codificada, el transformador en el dominio de frecuencia, la unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia y el normalizador de envoltura ponderada se pueden omitir y la cadena de muestras de la cadena digital de audio se puede introducir directamente en el cuantificador. Si una señal residual obtenida mediante análisis de predicción lineal de una señal digital de audio que es una señal de entrada en el dominio de tiempo es una cadena de muestras a ser codificada, el codificador puede incluir una unidad de predicción lineal que toma una entrada de una señal digital de audio y obtiene coeficientes predictivos lineales o coeficientes que se pueden transformar a coeficientes predictivos lineales y una unidad aritmética residual que obtiene residuos predictivos a partir de un filtro de predicación lineal para los coeficientes predictivos lineales y una señal digital de audio en lugar del transformador en el dominio de frecuencia, la unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia y el normalizador de envoltura ponderada, y la cadena de muestras de la señal residual se puede introducir en el cuantificador. Si una señal en el dominio de frecuencia transformada a partir de una señal digital de audio que es una señal de entrada en el dominio de tiempo es una cadena de muestras a ser codificada, la unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia y el normalizador de envoltura ponderada se pueden omitir y una cadena de muestras de una señal en el dominio de frecuencia obtenida en el transformador en el dominio de frecuencia se puede introducir en el cuantificador. Si una señal en el dominio de tiempo transformada a partir de una señal digital de audio que es una señal de entrada en el dominio de frecuencia es una cadena de muestras a ser codificada, el codificador puede incluir un transformador en el dominio de tiempo que transforma una señal digital de audio a una señal en el dominio de tiempo en lugar del transformador en el dominio de frecuencia, la unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia y el normalizador de envoltura ponderada y una cadena de muestras de la señal en el dominio de tiempo se pueden introducir en el cuantificador. Si una señal residual obtenida mediante análisis de
predicción lineal de una señal en el dominio de tiempo transformada a partir de una señal digital de audio que es una señal en el dominio de frecuencia es una cadena de muestras a ser codificada, el codificador puede incluir un transformador en el dominio de tiempo, una unidad de predicción lineal y una unidad aritmética residual en lugar del transformador en el dominio de frecuencia, la unidad aritmética de cadena de coeficientes de envoltura de espectro de potencia y el normalizador de envoltura ponderada y una cadena de muestras de la señal residual obtenida en la unidad aritmética residual se puede introducir en el cuantificador.
[Primera realización]
<Codificador 100>
Con referencia a la Figura 2, se describirá un proceso de codificación realizado por un codificador 100 según una primera realización.
<Transformador 101 en el dominio de frecuencia>
Un transformador 101 en el dominio de frecuencia transforma una señal digital de audio de entrada (señal de audio de entrada) en una cadena de coeficientes MDCT X(1), ..., X(N) en N puntos en el dominio de frecuencia sobre la base trama por trama en un periodo de tiempo dado y emite la cadena de coeficientes MDCT X(1), ..., X(N), donde N es un número entero positivo.
<Unidad 102 aritmética de cadena de coeficientes de envoltura de espectro de potencia>
Una unidad 102 aritmética de cadena de coeficientes de envoltura de espectro de potencia realiza un análisis de predicción lineal trama por trama de una señal digital de audio para obtener coeficientes predictivos lineales, usa los coeficientes predictivos lineales para obtener una cadena de coeficientes de envoltura de espectro de potencia W(1), ..., W(N) de la señal digital de audio en N puntos y emite la cadena de coeficientes de envoltura de espectro de potencia W(1), ..., W(N).
<Normalizador 103 de envoltura ponderada>
Un normalizador 103 de envoltura ponderada usa una cadena de coeficientes de envoltura de espectro de potencia obtenida por la unidad 102 aritmética de cadena de coeficientes de envoltura de espectro de potencia para normalizar cada uno de los coeficientes en una cadena de coeficientes MDCT obtenida por el transformador 101 en el dominio de frecuencia y emite una cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N). Aquí, con el fin de lograr una cuantificación que minimice la distorsión de manera auditiva, el normalizador 103 de envoltura ponderada usa una cadena de coeficientes de envoltura de espectro de potencia ponderada obtenida moderando la envoltura de espectro de potencia para normalizar los coeficientes en la cadena de coeficientes MDCT sobre una base trama por trama. Como resultado, la cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N) no tiene una pendiente pronunciada de amplitud o grandes variaciones de amplitud en comparación con la cadena de coeficientes MDCT de entrada sino que tiene variaciones de magnitud similares a las de la cadena de coeficientes de envoltura de espectro de potencia de la señal digital de audio, es decir, la cadena de coeficientes MDCT normalizados ponderados tiene amplitudes algo mayores en una región de coeficientes correspondiente a frecuencias bajas y tiene una estructura fina debido a un periodo de tono.
Ejemplos de proceso de normalización de envoltura ponderada
Los coeficientes W(1), ..., W(N) de una cadena de coeficientes de envoltura de espectro de potencia que corresponden a los coeficientes X(1), ..., X(N) de una cadena de coeficientes MDCT en N puntos se pueden obtener transformando coeficientes predictivos lineales a un dominio de frecuencia. Por ejemplo, según un proceso autorregresivo de orden p (donde p es un número entero positivo), que es un modelo de todos los polos, una señal de tiempo x(t) en un tiempo t se puede expresar por la fórmula (1) con valores pasados x(t-1), ..., x(t-p) de la señal de tiempo en sí misma en los puntos p de tiempo pasados, residuos e(t) predictivos y coeficientes a1, ..., ap predictivos lineales. Entonces, los coeficientes W(n) [1 < n <N] de la cadena de coeficientes de envoltura de espectro de potencia se pueden expresar por la fórmula (2), donde exp() es una función exponencial con una base de constante de Napier base, j es una unidad imaginaria y o2 es una energía residual predictiva.
Los coeficientes predictivos lineales se pueden obtener mediante análisis predictivo lineal por el normalizador 103 de envoltura ponderada de una señal digital de audio introducida en el transformador 101 en el dominio de frecuencia o se pueden obtener mediante análisis predictivo lineal de una señal digital de sonido por otros medios, no representados, en el codificador 100. En ese caso, el normalizador 103 de envoltura ponderada obtiene los
coeficientes W(1), W(N) en la cadena de coeficientes de envoltura de espectro de potencia usando un coeficiente predictivo lineal. Si los coeficientes W(1), W(N) en la cadena de coeficientes de envoltura de espectro de potencia ya se han obtenido con otros medios (tales como la unidad 102 aritmética de cadena de coeficientes de envoltura de espectro de potencia) en el codificador 100, el normalizador 103 de envoltura ponderada puede usar los coeficientes W(1), W(N) en la cadena de coeficientes de envoltura de espectro de potencia. Señalar que dado que un decodificador necesita obtener los mismos valores obtenidos en el codificador 100, se usan coeficientes predictivos lineales cuantificados y/o cadenas de coeficientes de envoltura de espectro de potencia. En lo sucesivo, el término “coeficiente predictivo lineal” o “cadena de coeficientes de envoltura de espectro de potencia” significan un coeficiente predictivo lineal cuantificado o una cadena de coeficientes de envoltura de espectro de potencia cuantificada a menos que se exprese de otro modo. Los coeficientes predictivos lineales se codifican usando una técnica de codificación convencional y un código de coeficientes predictivo se transmite entonces al lado de decodificación. La técnica de codificación convencional puede ser una técnica de codificación que proporciona un código correspondiente a coeficientes predictivos lineales en sí mismos como código de coeficientes predictivos, una técnica de codificación que convierte coeficientes predictivos lineales en parámetros LSP y proporciona un código correspondiente a los parámetros LSP como código de coeficientes predictivos, o una técnica de codificación que convierte los coeficientes predictivos lineales en coeficientes PARCOR y proporciona un código correspondiente a los coeficientes PARCOR como código de coeficientes predictivos, por ejemplo. Si las cadenas de coeficientes de envoltura de espectro de potencia se obtienen con otros medios proporcionados en el codificador 100, otros medios en el codificador 100 codifican los coeficientes predictivos lineales mediante una técnica de codificación convencional y transmiten un código de coeficientes predictivos al lado de decodificación.
Mientras que se dan aquí dos ejemplos de un proceso de normalización de envoltura de ponderación, la presente invención no está limitada a los ejemplos.
<Ejemplo 1>
El normalizador 103 de envoltura ponderada divide los coeficientes X(1), ..., X(N) en una cadena de coeficientes MDCT por los valores de corrección WY(1), ..., WV(N) de los coeficientes en una cadena de coeficientes de envoltura de espectro de potencia que corresponde a los coeficientes para obtener los coeficientes X(1)/Wy (1), ..., X(N)/Wy (N) en una cadena de coeficientes MDCT normalizados ponderados. Los valores de corrección WY(n) [1 < n < N] se dan por la fórmula (3), donde y es una constante positiva menor o igual a 1 y modera los coeficientes de espectro de potencia.
<Ejemplo 2>
El normalizador 103 de envoltura ponderada eleva los coeficientes en una cadena de coeficientes de envoltura de espectro de potencia que corresponden a los coeficientes X(1), ..., X(N) en una cadena de coeficientes MDCT a la potencia de orden p (0 < p <1) y divide los coeficientes X(1), ..., X(N) por los valores elevados W(1)p, ...,W(N)p para obtener los coeficientes X(1)/W(1)p, ..., X(N)/W(N)p en una cadena de coeficientes MDCT normalizados ponderados. Como resultado, se obtiene una cadena de coeficientes MDCT normalizados ponderados en una trama. La cadena de coeficientes MDCT normalizados ponderados no tiene una pendiente pronunciada de amplitud o grandes variaciones de amplitud en comparación con la cadena de coeficientes MDCT de entrada pero tiene variaciones de magnitud similares a las de la envoltura de espectro de potencia de la cadena de coeficientes MDCT de entrada, es decir, la cadena de coeficientes MDCT normalizados ponderados tiene amplitudes algo mayores en una región de coeficientes correspondientes a frecuencias bajas y tiene una estructura fina debida a un periodo de tono.
Señalar que el proceso inverso del proceso de normalización de envoltura ponderada, es decir, el proceso para reconstruir la cadena de coeficientes MDCT a partir de la cadena de coeficientes MDCT normalizados ponderados, se realiza en el lado de decodificación, los ajustes para el método para calcular cadenas de coeficientes de envoltura de espectro de potencia ponderada a partir de cadenas de coeficientes de envoltura de espectro de potencia necesitan ser comunes entre los lados de codificación y de decodificación.
<Inicializador 104>
Un inicializador 104 establece un valor inicial de ganancia (ganancia global) g. El valor inicial de la ganancia se puede determinar a partir de la energía de una cadena de coeficientes normalizados ponderados Xn(1), ..., Xn(N) y el número de bits asignados de antemano a un código emitido desde un codificador 106 de longitud variable, por ejemplo. El valor inicial de ganancia g es un valor positivo. El número de bits asignados de antemano a un código
emitido desde el codificador 106 de longitud variable se conoce en lo sucesivo como el número de bits B asignados. El inicializador también establece 0 como el valor inicial del número de actualizaciones de ganancia.
<Procesador 130 de bucle de actualización de ganancia>
Un procesador 130 de bucle de actualización de ganancia determina la ganancia de manera que una secuencia (una secuencia de muestras de valores enteros) obtenida dividiendo cada coeficiente en una cadena de coeficientes MDCT normalizados ponderados Xn(1), Xn(N) por la ganancia se puede codificar con un número predeterminado de bits, y emite un código de señal de número entero obtenido mediante codificación de longitud variable de la secuencia (la secuencia de muestras de valores enteros) obtenida dividiendo la cadena de coeficientes MDCT normalizados ponderados Xn(1), Xn(N) por la ganancia determinada y un código de ganancia (el código de ganancia correspondiente a la ganancia) obtenido codificando la ganancia determinada. El procesador 130 de bucle de actualización de ganancia actualiza el valor de ganancia de modo que cuanto mayor es la diferencia entre el número de bits en el código obtenido codificando la secuencia de muestras de valores enteros y el número dado de bits B asignados, mayor es la diferencia entre la ganancia antes de la actualización y la ganancia actualizada.
El procesador 130 de bucle de actualización de ganancia incluye un cuantificador 105, el codificador 106 de longitud variable, un determinador 107, un actualizador 131 de expansión de ganancia, un actualizador 132 de reducción de ganancia, una unidad 116 de truncamiento, y un codificador 117 de ganancia.
<Cuantificador 105>
El cuantificador 105 cuantifica un valor obtenido dividiendo cada coeficiente (cada muestra) en una cadena de coeficientes MDCT normalizados ponderados Xn(1), ..., Xn(N) (una cadena de muestras derivada de una señal de audio de entrada en un intervalo dado) por la ganancia g para obtener una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) que es una secuencia de valores enteros (muestras normalizadas cuantificadas) y emite la secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N).
El cuantificador 105 también mide el número s de muestras en el intervalo desde el coeficiente normalizado cuantificado a la frecuencia más baja al coeficiente normalizado cuantificado que no es cero a la frecuencia más alta y emite el número s de muestras.
<Codificador 106 de longitud variable>
El codificador 106 de longitud variable codifica una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) mediante codificación de longitud variable para obtener y emitir un código (código de cadena de muestras). El código se conoce como código de señal de número entero. La codificación de longitud variable puede usar un método que codifica una pluralidad de coeficientes en una cadena de coeficientes normalizados cuantificados en un tiempo, por ejemplo. Además, el codificador 106 de longitud variable mide el número de bits en el código de señal de número entero obtenido mediante la codificación de longitud variable. En esta realización, el número de bits se conoce como el número c de bits consumidos.
<Determinador 107>
El determinador 107 emite la ganancia g, el código de señal de número entero, y el número c de bits consumidos cuando el número de actualizaciones de ganancia es igual a un número predeterminado.
Cuando el número de actualizaciones de ganancia es menor que el número predeterminado, el determinador 107 realiza un control para hacer que un actualizador 131 de expansión de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 106 de longitud variable es mayor que el número B de bits asignados, o para hacer que un actualizador 132 de reducción de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 106 de longitud variable es menor que el número B de bits asignados. Señalar que cuando el número c de bits consumidos medidos por el decodificador 106 de longitud variable es igual al número B de bits asignados, el determinador 107 emite la ganancia g, el código de señal de número entero y el número c de bits consumidos.
<Actualizador 131 de expansión de ganancia>
El actualizador 131 de expansión de ganancia establece un valor mayor que el valor actual de ganancia g como nueva ganancia g’>g. El actualizador 131 de expansión de ganancia incluye un contador 118 de muestras, un establecedor 108 de ganancia de límite inferior, un primer controlador 109 de ramificación, un primer actualizador 110 de ganancia, y un extensor 111 de ganancia.
<Contador 118 de muestras>
Cuando el número c de bits consumidos es mayor que el número B de bits asignados, el contador 118 de muestras emite el número t de muestras de coeficientes normalizados cuantificados correspondientes a un código restante después de eliminar una cantidad de código correspondiente a coeficientes normalizados cuantificados en el lado de
frecuencia alta de un código de señal de número entero emitido desde el determinador 107, de modo que el número c de bits consumidos no exceda el número B de bits asignados.
Específicamente, el contador 118 de muestras emite el número t de muestras de coeficientes normalizados cuantificados que se han dejado después de eliminar los coeficientes normalizados cuantificados en el lado de frecuencia alta que corresponde a un código (código de truncamiento) correspondiente a la cantidad c - B por la cual el número c de bits consumidos excede el número B de bits asignados a partir de una cadena de coeficientes normalizados cuantificados emitida desde el cuantificador 105, es decir, el número t de muestras de coeficientes normalizados cuantificados cuyo código correspondiente no se ha eliminado. Un ejemplo de código de truncamiento es un código con un número de bits mayor o igual que c - B y el más pequeño entre el código correspondiente a uno o más coeficientes normalizados cuantificados en una región que incluye la frecuencia más alta. En otras palabras, t es el número de muestras de coeficientes normalizados cuantificados a ser codificadas cuando la longitud del código de longitud variable correspondiente es menor o igual que el número B de bits asignados y es el mayor excluyendo los coeficientes normalizados cuantificados en el lado de frecuencia alta para dejar solamente los coeficientes normalizados cuantificados en los lados de frecuencia baja como coeficientes a ser codificados.
<Establecedor 108 de ganancia de límite inferior>
Cuando el número c de bits consumidos es mayor que el número B de bits asignados, el establecedor 108 de ganancia de límite inferior establece el valor actual de ganancia g (ganancia g correspondiente al número c de bits consumidos) como la ganancia gmin de límite inferior (gmin ^ g). La ganancia gmin de límite inferior significa el valor de ganancia más bajo permitido.
<Primer controlador 109 de ramificación>
Cuando la ganancia gmin de límite inferior se establece por el establecedor 108 de ganancia de límite inferior, el primer controlador 109 de ramificación realiza un control para hacer que el primer actualizador 110 de ganancia realice un siguiente proceso si ya se ha establecido un valor de ganancia gmax de límite superior o para hacer que el extensor 111 de ganancia realice un siguiente proceso si no se ha establecido la ganancia gmax de límite superior. <Primer actualizador 110 de ganancia>
El primer actualizador 110 de ganancia establece un valor entre el valor actual de ganancia g (el valor de ganancia g correspondiente al número c de bits consumidos) y la ganancia gmax de límite superior como nuevo valor de ganancia g. Esto es debido a que un valor óptimo de ganancia está entre el valor actual de ganancia g y la ganancia gmax de límite superior. Por ejemplo, el primer actualizador 110 de ganancia establece la media del valor actual de ganancia g y la ganancia gmax de límite superior como nuevo valor de ganancia g (g ^ (g gmax)/2). Dado que el valor actual de ganancia g se ha establecido como la ganancia gmin de límite inferior, se puede decir que la media de la ganancia gmax de límite superior y la ganancia gmin de límite inferior se establece como nuevo valor de ganancia g (g ^ (gmax gmin)/2). Entonces el control vuelve al proceso en el cuantificador 105.
<Extensor 111 de ganancia>
El extensor 111 de ganancia aumenta el valor de ganancia de modo que cuanto mayor es el número s de muestras en el intervalo del coeficiente normalizado cuantificado a la frecuencia más baja al coeficiente normalizado cuantificado que no es cero a la frecuencia más alta menos el número t de muestras emitidas desde el contador 118 de muestras, u = s - t, mayor es la cantidad por la cual la ganancia actual aumenta a una nueva ganancia. Por ejemplo, el extensor 111 de ganancia aumenta el valor de ganancia de manera que la nueva ganancia g ^ ganancia actual g x (1 u/N x a), donde a es una constante positiva predeterminada.
Alternativamente, el extensor 111 de ganancia aumenta el valor de ganancia de modo que cuanto mayor es el número N de todas las muestras a ser codificadas menos el número t de muestras emitidas desde el contador 118 de muestras, v = N - t, mayor es la cantidad por la cual la ganancia actual aumenta a una nueva ganancia. Por ejemplo, el extensor 111 de ganancia aumenta el valor de ganancia de manera que la nueva ganancia g ^ ganancia actual g x (1 v/N x a).
Específicamente, cuanto mayor es el número de algunas de o todas las muestras en la cadena de muestras normalizadas cuantificadas menos el número de muestras de coeficientes normalizados cuantificados cuyo código correspondiente no se ha eliminado, mayor es la cantidad por la cual el extensor 111 de ganancia aumenta el valor de ganancia g. Entonces el control vuelve al proceso en el cuantificador 105. En otras palabras, el extensor 111 de ganancia actualiza el valor de ganancia de modo que cuanto mayor es el número de algunas de o todas las muestras en una cadena de muestras normalizadas cuantificadas menos el número de muestras de coeficientes normalizados cuantificados cuyo código correspondiente no se ha eliminado, mayor es la cantidad por la cual el valor de ganancia antes de la actualización aumenta a un valor actualizado. Entonces el extensor 111 de ganancia hace que el cuantificador 105 realice el proceso posterior.
<Actualizador 132 de reducción de ganancia>
El actualizador 132 de reducción de ganancia establece un valor menor que el valor actual de ganancia g como nueva ganancia g’ < g. El actualizador 132 de reducción de ganancia incluye un establecedor 112 de ganancia de límite superior, un segundo controlador 113 de ramificación, un segundo actualizador 114 de ganancia, y un reductor 115 de ganancia.
<Establecedor 112 de ganancia de límite superior>
Cuando el número c de bits consumidos es menor que el número B de bits asignados, el establecedor 112 de ganancia de límite superior establece el valor actual de ganancia g (el valor de ganancia g correspondiente al número c de bits consumidos) como la ganancia gmax de límite superior (gmax ^ g). La ganancia gmax de límite superior significa la ganancia más alta permitida.
<Segundo controlador 113 de ramificación>
Cuando la ganancia gmax de límite superior se establece por el establecedor 112 de ganancia de límite superior, el segundo controlador 113 de ramificación realiza un control para hacer que el segundo actualizador 114 de ganancia realice un siguiente proceso si ya se ha establecido la ganancia gmin de límite inferior o para hacer que el reductor 115 de ganancia realice un siguiente proceso si no se ha establecido aún la ganancia gmin de límite inferior.
<Segundo actualizador 114 de ganancia>
El segundo actualizador 114 de ganancia establece un valor entre el valor actual de ganancia g (el valor de ganancia g correspondiente al número c de bits consumidos) y la ganancia gmin de límite inferior como nuevo valor de ganancia g. Esto es debido a que un valor óptimo de ganancia está entre el valor actual de ganancia g y la ganancia gmin de límite inferior. Por ejemplo, el segundo actualizador 114 de ganancia establece la media del valor actual de ganancia g y la ganancia gmin de límite inferior como nuevo valor de ganancia g (g ^ (g gmin)/2). Dado que el valor actual de ganancia g se ha establecido como la ganancia gmax de límite superior, se puede decir que la media de la ganancia gmax de límite superior y la ganancia gmin de límite inferior se establece como nuevo valor de ganancia g (g ^ (gmax gmin)/2). Entonces el control vuelve al proceso en el cuantificador 105.
<Reductor 115 de ganancia>
El reductor 115 de ganancia reduce el valor de ganancia g de modo que cuanto mayor es el número de bits residuales que es el número B de bits asignados menos el número c de bits consumidos, B - c, mayor es la cantidad por la cual el valor actual de ganancia g disminuye a un nuevo valor de ganancia g. Aquí, el nuevo valor de ganancia g también es un valor positivo. Por ejemplo, nueva ganancia ^ ganancia actual g x (1 - (B - c)/B x p), donde p es una constante positiva predeterminada. Es decir, cuanto mayor es el número B de bits asignados menos el número c de bits consumidos, B - c, mayor es la cantidad por la cual el reductor 115 de ganancia disminuye el valor de ganancia g. Entonces el control vuelve al proceso en el cuantificador 105. En otras palabras, el reductor 115 de ganancia actualiza el valor de ganancia g de modo que cuanto mayor es el número B de bits asignados menos el número c de bits consumidos, B - c, mayor es la cantidad por la cual el valor de ganancia g antes de la actualización disminuye a un valor actualizado y entonces hace que el cuantificador 105 realice el proceso posterior.
<Unidad 116 de truncamiento>
Cuando el número c de bits consumidos emitidos desde el determinador 107 es mayor que el número B de bits asignados, la unidad 116 de truncamiento elimina una cantidad de código equivalente a bits por los que el número c de bits consumidos excede el número B de bits asignados del código correspondiente a los coeficientes normalizados cuantificados en el lado de frecuencia alta en un código de señal de número entero emitido desde el determinador 107 y emite el código resultante como un nuevo código de señal de número entero. Es decir, la unidad 116 de truncamiento elimina la cantidad de código (código de truncamiento) equivalente al número de bits c - B por el cual el número c de bits consumidos excede el número B de bits asignados que corresponde a los coeficientes normalizados cuantificados en el lado de frecuencia alta a partir del código de señal de número entero (código de cadena de muestras) y emite el código restante (código de cadena de muestras truncadas) como un nuevo código de señal de número entero.
<Codificador 117 de ganancia >
El codificador 117 de ganancia codifica la salida de ganancia del determinador 107 con un número predeterminado de bits para obtener y emitir un código de ganancia.
[Modificación de la primera realización]
<Codificador 150>
Un proceso de codificación realizado por un codificador 150 de una modificación de la primera realización se describirá con referencia a la Figura 3. El codificador 150 de la modificación de la primera realización difiere del
codificador 100 de la primera realización en que el codificador 150 usa, en lugar del número de bits en un código de señal de número entero obtenido mediante codificación de longitud variable, un número estimado de bits en un código de señal de número entero como el número c de bits consumidos. El codificador 150 incluye un procesador 190 de bucle de actualización de ganancia en lugar del procesador 130 de bucle de actualización de ganancia del codificador 100. El procesador 190 de bucle de actualización de ganancia incluye un estimador 156 de recuento de bits, un determinador 157, un actualizador 191 de expansión de ganancia, y un codificador 159 de longitud variable en lugar del codificador 106 de longitud variable, el determinador 107, el actualizador 131 de expansión de ganancia y la unidad 116 de truncamiento del procesador 130 de bucle de actualización de ganancia. El actualizador 191 de expansión de ganancia incluye un extensor 151 de ganancia y un contador 168 de muestras en lugar del extensor 111 de ganancia y el contador 118 de muestras del actualizador 131 de expansión de ganancia.
Las diferencias de las primeras realizaciones se describirán a continuación.
<Estimador 156 de recuento de bits>
El estimador 156 de recuento de bits obtiene un valor estimado del número de bits (número estimado de bits) en un código que se puede obtener mediante codificación de longitud variable de una secuencia de código de coeficientes normalizados Xq(1), ..., Xq(N). En la modificación de la primera realización, el número de bits estimado se conoce como el número c de bits consumidos.
<Determinador 157>
El determinador 157 emite la ganancia g y una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) cuando el número de actualizaciones de ganancia es igual a un número predeterminado.
Cuando el número de actualizaciones de ganancia es menor que el número predeterminado, el determinador 157 realiza un control para hacer que el actualizador 191 de expansión de ganancia realice un siguiente proceso si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es mayor que el número B de bits asignados, o para hacer que el actualizador 132 de reducción de ganancia realice un siguiente proceso si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es menor que el número B de bits asignados. Señalar que si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es igual al número B de bits asignados, el determinador 157 emite la ganancia g y una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N).
<Contador 168 de muestras>
Cuando el número c de bits consumidos es mayor que el número B de bits asignados, el contador 168 de muestras emite el número t de muestras de coeficientes normalizados cuantificados que se han dejado después de eliminar los coeficientes normalizados cuantificados en el lado de frecuencia alta que se dirigen a un código (código de truncamiento) correspondiente a la cantidad c - B por la cual el número c de bits consumidos excede el número B de bits asignados a partir de una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) emitida desde el cuantificador 105.
<Extensor 151 de ganancia>
El extensor 151 de ganancia es el mismo que el extensor 111 de ganancia de la primera realización, excepto que el extensor 151 de ganancia usa el número t de muestras emitidas desde el contador 168 de muestras en lugar del número t de muestras emitidas desde el contador 118 de muestras en el extensor 111 de ganancia.
El extensor 151 de ganancia aumenta el valor de ganancia de modo que cuanto mayor es el número s de muestras en el intervalo desde el coeficiente normalizado cuantificado en la frecuencia más baja al coeficiente normalizado cuantificado que no es cero a la frecuencia más alta menos el número t de muestras emitidas desde el contador 118 de muestras, u = s - t, mayor es la cantidad por la cual la ganancia actual aumenta a una nueva ganancia. Por ejemplo, el extensor 151 de ganancia aumenta el valor de ganancia de manera que la nueva ganancia g ^ ganancia actual g x (1 u/N x a), donde a es una constante positiva predeterminada.
Alternativamente, el extensor 151 de ganancia aumenta el valor de ganancia de modo que cuanto mayor es el número N de todas las muestras a ser codificadas menos el número t de muestras emitidas desde el contador 118 de muestras, v = N - t, mayor es la cantidad por la cual la ganancia actual aumenta a una nueva ganancia. Por ejemplo, el extensor 151 de ganancia aumenta el valor de ganancia de manera que nueva ganancia g ^ ganancia actual g x (1 v/N x a).
Específicamente, cuanto mayor es el número de algunas de o todas las muestras en una cadena de muestras normalizadas cuantificadas menos el número de muestras de coeficientes normalizados cuantificados cuyo código correspondiente no se ha eliminado, mayor es la cantidad por la cual el extensor 151 de ganancia aumenta el valor de ganancia g. Entonces el control vuelve al proceso en el cuantificador 105. En otras palabras, el extensor 111 de ganancia actualiza el valor de ganancia de modo que cuanto mayor es el número de algunas de o todas las muestras en una cadena de muestras normalizadas cuantificadas menos el número t de muestras de coeficientes
normalizados cuantificados dejados después de eliminar los coeficientes normalizados cuantificados en el lado de frecuencia alta que se dirigen al código de truncamiento a partir de la secuencia de coeficientes normalizados cuantificados Xq(1), Xq(N) emitida desde el cuantificador 105, mayor es la cantidad por la cual el valor de ganancia antes de la actualización aumenta a un valor actualizado y entonces hace que el cuantificador 105 realice el proceso posterior.
<Codificador 159 de longitud variable>
El codificador 159 de longitud variable codifica una secuencia de coeficientes normalizados cuantificados Xq(1), Xq(N) emitida desde el determinador 157 mediante codificación de longitud variable para obtener un código y emite el código obtenido como un código de señal de número entero (un código de cadena de muestras). Cuando el número de bits en el código obtenido mediante la codificación de longitud variable excede el número B de bits asignados, el codificador 159 de longitud variable elimina la cantidad de código por la cual el número B de bits asignados se excede desde el código correspondiente a los coeficientes normalizados cuantificados en el lado de frecuencia alta en el código obtenido mediante la codificación de longitud variable y emite el código resultante como un código de señal de número entero.
[Segunda realización]
<Codificador 200>
Un proceso de codificación realizado por un codificador 200 de una segunda realización se describirá con referencia a la Figura 4. El codificador 200 de la segunda realización difiere del codificador 100 de la primera realización en que el codificador 200 incluye un procesador 230 de bucle de actualización de ganancia en lugar del procesador 130 de bucle de actualización de ganancia, que el procesador 230 de bucle de actualización de ganancia incluye un cuantificador 205, un determinador 207, un actualizador 231 de expansión de ganancia, y una unidad 216 de truncamiento en lugar del cuantificador 105, el determinador 107, el actualizador 131 de expansión de ganancia, y la unidad 116 de truncamiento del procesador 130 de bucle de actualización de ganancia, y que el control vuelve a un proceso en el cuantificador 205 en lugar de volver al proceso en el cuantificador 105 después de que el proceso realizado por el primer actualizador 110 de ganancia, el segundo actualizador 114 de ganancia y el reductor 115 de ganancia. El actualizador 231 de expansión de ganancia no incluye el contador 118 de muestras del actualizador 131 de expansión de ganancia de la primera realización pero incluye un establecedor 108 de ganancia de límite inferior, un primer controlador 109 de ramificación, un primer actualizador 110 de ganancia y un extensor 211 de ganancia. Las diferencias de la primera realización se describirán a continuación.
<Cuantificador 205>
El cuantificador 205 cuantifica un valor obtenido dividiendo cada coeficiente (cada muestra) en una cadena de coeficientes MDCT normalizados ponderados de entrada Xn(1), ..., Xn(N) (una cadena de muestras derivada de una señal de audio de entrada en un intervalo dado) por la ganancia g para obtener una secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N) que es una secuencia de valores enteros (muestras normalizadas cuantificadas) y emite la secuencia de coeficientes normalizados cuantificados Xq(1), ..., Xq(N).
<Determinador 207>
El determinador 207 emite 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 ganancia es igual a un número predeterminado.
Cuando el número de actualizaciones de ganancia es menor que el número predeterminado, el determinador 207 realiza un control para hacer que el actualizador 231 de expansión de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 106 de longitud variable es mayor que el número B de bits asignados, o para hacer que un actualizador 132 de reducción de ganancia realice un siguiente proceso si el número c de bits consumidos medido por el codificador 106 de longitud variable es menor que el número B de bits asignados. Señalar que si el número c de bits consumidos es igual al número B de bits asignados, el determinador 207 emite la ganancia, el código de señal de número entero y el número c de bits consumidos.
<Unidad 216 de truncamiento>
Cuando el número c de bits consumidos emitidos desde el determinador 207 es mayor que el número B de bits asignados, la unidad 216 de truncamiento elimina una cantidad de código equivalente a bits por los que el número c de bits consumidos excede el número B de bits asignados del código correspondiente a los coeficientes normalizados cuantificados en el lado de frecuencia alta en un código de señal de número entero emitido desde el determinador 207 y emite el código resultante como un nuevo código de señal de número entero. Es decir, la unidad 216 de truncamiento elimina la cantidad de código (código de truncamiento) equivalente al número de bits c - B por el cual el número c de bits consumidos excede el número B de bits asignados que corresponde a coeficientes normalizados cuantificados en el lado de frecuencia alta a partir del código de señal de número entero (código de cadena de muestras) y emite el código restante (código de cadena de muestras truncadas) como nuevo código de señal de número entero.
<Extensor 211 de ganancia>
El extensor 211 de ganancia aumenta la ganancia de modo que cuanto mayor es un déficit de bits que es el número c de bits consumidos menos el número B de bits asignados, c - B, mayor es la cantidad por la cual la ganancia actual aumenta a una nueva ganancia. Por ejemplo, nueva ganancia g ^ ganancia actual g x (1 (c - B)/B x a), donde a es una constante positiva predeterminada. Es decir, cuando el número c de bits consumidos es mayor que el número B de bits asignados y no se ha fijado la ganancia gmax de límite superior, el extensor 211 de ganancia aumenta el valor de ganancia g de modo que cuanto mayor es el número c de bits consumidos menos el número B de bits asignados, c - B, mayor es la cantidad por la cual se aumenta el valor de ganancia g. Entonces el control vuelve al proceso en el cuantificador 205. En otras palabras, el extensor 211 de ganancia actualiza el valor de ganancia g de modo que cuanto mayor es el número c de bits consumidos menos el número B de bits asignados, c -B, mayor es la cantidad por la cual el valor de ganancia g antes de que aumente la actualización a un valor actualizado y hace que el cuantificador 205 realice el proceso posterior.
[Modificación de la segunda realización]
<Codificador 250>
Un proceso de codificación realizado por un codificador 250 de una modificación de la segunda realización se describirá con referencia a la Figura 5. El codificador 250 de la modificación difiere del codificador 200 de la segunda realización en que el codificador 250 usa, en lugar del número de bits en un código de señal de número entero obtenido mediante codificación de longitud variable, un número estimado de bits en un código de señal de número entero como el número c de bits consumidos. El codificador 250 incluye un procesador 290 de bucle de actualización de ganancia en lugar del procesador 230 de bucle de actualización de ganancia del codificador 200, el procesador 290 de bucle de actualización de ganancia incluye un estimador 156 de recuento de bits, un codificador 159 de longitud variable y un determinador 257 en lugar del codificador 106 de longitud variable, la unidad 216 de truncamiento y el determinador 270 del procesador 230 de bucle de actualización de ganancia. Las diferencias de la segunda realización se describirán a continuación.
<Estimador 156 de recuento de bits>
El estimador 156 de recuento de bits es el mismo que el de la modificación de la primera realización.
<Determinador 257>
Cuando el número de actualizaciones de ganancia es igual a un número predeterminado de actualizaciones, el determinador 257 emite una ganancia, una secuencia de coeficientes normalizados cuantificados, y el número c de bits consumidos.
Cuando el número de actualizaciones es menor que el número predeterminado de actualizaciones, el determinador 257 realiza un control para hacer que el actualizador 231 de expansión de ganancia realice el proceso descrito en la primera realización si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es mayor que el número B de bits asignados, o para hacer que el actualizador 132 de reducción de ganancia realice proceso descrito en la primera realización si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es menor que el número B de bits asignados. Señalar que si el número c de bits consumidos estimado por el estimador 156 de recuento de bits es igual al número B de bits asignados, el determinador 257 emite la ganancia, una secuencia de coeficientes normalizados cuantificados, y el número c de bits consumidos.
<Codificador 159 de longitud variable>
El codificador 159 de longitud variable es el mismo que el de la modificación de la primera realización.
[Tercera realización]
<Codificador 300>
Un proceso de codificación realizado por un codificador 300 de una tercera realización se describirá con referencia a la Figura 6. El codificador 300 de la tercera realización difiere del codificador 100 de la primera realización en que el codificador 300 incluye un establecedor 308 de ganancia de límite inferior, un primer actualizador 310 de ganancia, un establecedor 312 de ganancia de límite superior, un segundo actualizador 314 de ganancia, y un almacenamiento 320 de consumo de bits en lugar del establecedor 108 de ganancia de límite inferior, el primer actualizador 110 de ganancia, el establecedor 112 de ganancia de límite superior y el segundo actualizador 114 de ganancia. Un actualizador 331 de expansión de ganancia incluye un establecedor 308 de ganancia de límite inferior y un primer actualizador 310 de ganancia en lugar del establecedor 108 de ganancia de límite inferior y el primer actualizador 110 de ganancia del actualizador 131 de expansión de ganancia. Un actualizador 332 de reducción de ganancia incluye un establecedor 312 de ganancia de límite superior y un segundo actualizador 314 de ganancia en lugar del establecedor 112 de ganancia de límite superior y el segundo actualizador 114 de ganancia del actualizador 132 de reducción de ganancia. Un procesador 330 de bucle de actualización de ganancia incluye el actualizador 331 de
expansión de ganancia y el actualizador 332 de reducción de ganancia en lugar del actualizador 131 de expansión de ganancia y el actualizador 132 de reducción de ganancia del procesador 130 de bucle de actualización de ganancia. Las diferencias de la primera realización se describirán a continuación.
<Establecedor 308 de ganancia de límite inferior>
El establecedor 308 de ganancia de límite inferior establece el valor actual de ganancia g como la ganancia gmin de límite inferior (gmin ^ g). Adicionalmente, el establecedor 308 de ganancia de límite inferior almacena el número c de bits consumidos como el número cl de bits consumidos en el establecimiento de límite inferior en el almacenamiento 320 de consumo de bits. Es decir, cuando el número c de bits consumidos es mayor que el número B de bits asignados, el establecedor 308 de ganancia de límite inferior establece el número c de bits consumidos como el número cl de bits consumidos con el establecimiento de límite inferior y almacena el número cl de bits consumidos en el establecimiento de límite inferior en el almacenamiento 320 de consumo de bits además de realizar el proceso en el establecedor 108 de ganancia de límite inferior de la primera realización.
<Establecedor 312 de ganancia de límite superior>
El establecedor 312 de ganancia de límite superior establece el valor actual de ganancia g como la ganancia gmax de límite superior (gmax ^ g). Adicionalmente el establecedor 312 de ganancia de límite superior almacena el número c de bits consumidos en el almacenamiento 320 de consumo de bits como el número cu de bits consumidos en el establecimiento de límite superior. Es decir, cuando el número c de bits consumidos es menor que el número B de bits asignados, el establecedor 312 de ganancia de límite superior establece el número c de bits consumidos como el número cu de bits consumidos en el establecimiento de límite superior y almacena el número cu de bits consumidos en el establecimiento de límite superior en el almacenamiento 320 de consumo de bits además de realizar el proceso en el establecedor 112 de ganancia de límite superior de la primera realización.
<Primer actualizador 310 de ganancia>
Cuando el número c de bits consumidos es mayor que el número B de bits asignados y ya se ha establecido la ganancia gmax de límite superior, el primer actualizador 310 de ganancia obtiene al menos uno de un indicador de la probabilidad de la ganancia gmin de límite inferior y un indicador de la probabilidad de la ganancia gmax de límite superior en base al número B de bits asignados, el número cu de bits consumidos en el establecimiento de límite superior y el número cl de bits consumidos en el establecimiento de límite inferior. Señalar que el “indicador de la probabilidad” significa un indicador de la probabilidad de un valor de ganancia g.
Indicador de probabilidad de ganancia gmin de límite inferior
El primer actualizador 310 de ganancia obtiene un indicador w de la probabilidad relativa de ganancia gmin de límite inferior según la fórmula A, por ejemplo.
w = (B - Cu)/(cl - cu) (Fórmula A)
La fórmula A es la misma en significado que la fórmula B, que se basa en la diferencia entre el número B de bits asignados y el número cu de bits consumidos en el establecimiento de límite superior y la diferencia entre el número cL de bits consumidos en el establecimiento de límite inferior y el número de bits asignados B, con una modificación en el lado derecho de la fórmula B.
w = (B - cu)/(B - cu cl - B) (Fórmula B)
Por lo tanto, el indicador w se puede obtener según la fórmula B en lugar de la fórmula A.
Cuando el indicador w obtenido según la fórmula A o B es grande, la ganancia gmin de límite inferior es más probable que sea el valor de ganancia; cuando el indicador w es pequeño, la ganancia gmax de límite superior es más probable que sea el valor de la ganancia g.
Indicador de probabilidad de ganancia gmax de límite superior
La probabilidad relativa de la ganancia gmax de límite superior es (1 - w).
Es decir, el indicador (1 - w) de la probabilidad de la ganancia gmax de límite superior se puede obtener según la fórmula C en lugar de obtener el indicador w según la fórmula A o B.
(1 - w) = (cl - B)/(cl - cu) (Fórmula C)
La fórmula C es la misma en significado que la fórmula D, que se basa en la diferencia B - cu entre el número B de bits asignados y el número cu de bits consumidos en el establecimiento de límite superior y la diferencia cl - B entre el número cl de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados, con una modificación en el lado derecho de la fórmula D.
1 - w = (cl - B)/(B - cu cl - B) (Fórmula D)
Por lo tanto, el indicador (1 - w) se puede obtener según la fórmula D en lugar de la fórmula C.
Cuando el indicador (1 - w) obtenido según la fórmula A o B es grande, la ganancia gmax de límite superior es más probable que sea el valor de ganancia g; cuando el indicador (1 - w) es pequeño, la ganancia gmin de límite inferior es más probable que sea el valor de la ganancia g.
El primer actualizador 310 de ganancia entonces establece y emite una media ponderada con una ponderación mayor asignada a la ganancia gmax de límite superior o a la ganancia gmin de límite inferior, la que sea más probable que sea un nuevo valor de ganancia g (g — gmin X w gmax x (1 - w)). Es decir, cuando la diferencia entre el número B de bits asignados y el número cu de bits consumidos en el establecimiento de límite superior es mayor que la diferencia entre el número cl de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados, la ganancia gmin de límite inferior es más probable y más cercana a un valor preferible de la ganancia g. Alternativamente, el primer actualizador 310 de ganancia puede usar una constante C, que es un valor positivo, para obtener el indicador w con la ponderación disminuida como w = (B - cu C)/(cl - cu 2 x C). En este caso,
(1 - w) = (cl - B C)/(cl - cu 2 x C)
y el nuevo valor de ganancia g es el intermedio entre la media aritmética y la ganancia gmax de límite superior y la ganancia gmin de límite inferior y la media ponderada en base a la diferencia entre el número de bits consumidos y el número de bits asignados.
Señalar que si el número de muestras normalizadas cuantificadas correspondientes a un código de truncamiento (el número de muestras truncadas Tr) se ha obtenido por el contador 118 de muestras, el número Tr de muestras truncadas se puede usar en lugar de la diferencia entre el número cl de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados. Esto es debido a que cuanto mayor es la diferencia entre el número cl de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados, mayor es el número Tr de muestras truncadas. La correlación entre la diferencia entre el número de cl de los bits consumidos en el establecimiento de límite inferior y el número B de bits asignados y el número Tr de muestras truncadas se puede obtener experimentalmente de antemano y el número Tr de muestras truncadas se puede convertir aproximadamente a la diferencia entre el número cl de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados. Sustituyendo (cl - B) = y x Tr, donde y es un coeficiente determinado experimentalmente para conversión, entonces w se puede escribir como w = (B - cu)/(B - Cu Y x Tr). De manera similar, una constante C, que es un valor positivo, se puede usar para obtener el indicador w con ponderación disminuida como w = (B - cu C)/(B - cu Y x Tr 2 x C). Es decir, el primer actualizador 310 de ganancia puede usar el número B de bits asignados, el número Tr de muestras truncadas y el número cu de bits consumidos en el establecimiento de límite superior para obtener al menos uno del indicador de la probabilidad de un valor de ganancia límite inferior y del indicador de la probabilidad de un valor de la ganancia límite superior. Mientras que es deseable que sea usado el último número Tr de las muestras obtenidas en el último proceso en el contador 118 de muestras, se puede usar el número Tr de muestras obtenidas en un proceso anterior en el contador 118 de muestras.
Entonces el control vuelve al proceso en el cuantificador 105.
<Segundo actualizador 314 de ganancia>
Cuando el número c de bits consumidos es menor que el número B de bits asignados y ya se ha establecido la ganancia gmin de límite inferior, el segundo actualizador 314 de ganancia realiza la misma operación que la del primer actualizador 310 de ganancia.
El “indicador de la probabilidad” descrito anteriormente representa hacia cuál de la ganancia gmin de límite inferior y la ganancia gmax de límite superior el valor de ganancia g se debería de cambiar y cuánto con el fin de que la ganancia g se aproxime a un valor óptimo. Dado que la ganancia g se actualiza a un nuevo valor en base al indicador en esta realización, se puede reducir el número de actualizaciones necesarias para que la ganancia g converja a un valor óptimo.
El primer actualizador 310 de ganancia y el segundo actualizador 314 de ganancia de esta realización obtienen al menos uno del indicador de la probabilidad del valor de la ganancia gmin de límite inferior y el indicador de la probabilidad del valor de la ganancia gmax de límite superior, asignan una ponderación mayor a la ganancia gmin de límite inferior o a la ganancia gmax de límite superior, la que sea más probable, y establecen la media ponderada de la ganancia gmin de límite inferior y la ganancia gmax de límite superior como nuevo valor de ganancia g. Sin embargo, el primer actualizador 310 de ganancia y el segundo actualizador 314 de ganancia puede asignar una ponderación mayor a la ganancia gmin de límite inferior o a la ganancia gmax de límite superior, la que sea más probable, y la media ponderada de la ganancia gmin de límite inferior y la ganancia gmax de límite superior se puede establecer como nuevo valor de ganancia g sin obtener un indicador de la probabilidad. Por ejemplo, en base al número cu de bits consumidos en el establecimiento de límite superior y el número cl de bits consumidos en el establecimiento de
límite inferior y el número B de bits asignados, el primer actualizador 310 de ganancia y el segundo actualizador 314 de ganancia pueden establecer
como nuevo valor de ganancia g sin obtener cualquiera de los indicadores w y (1 - W). Es esencial solamente que cuanto mayor es la diferencia entre el número B de bits asignados y el número cu de bits consumidos en el establecimiento de límite superior, mayor es la ponderación que se asigna a la ganancia gmax de límite superior, o cuanto mayor es la diferencia entre el número cl de de bits consumidos en el establecimiento de límite inferior y el número B de bits asignados, mayor es la ponderación que se asigna a la ganancia gmin de límite inferior y la media ponderada de la ganancia gmin de límite inferior y la ganancia gmax de límite superior se establece como nuevo valor de ganancia g. El proceso de establecimiento de un nuevo valor de ganancia g no está limitado.
Alternativamente, si el primer actualizador 310 de ganancia y el segundo actualizador 314 de ganancia están configurados para actualizar la ganancia g en base al número Tr de muestras truncadas, el primer actualizador 310 de ganancia puede obtener
como nuevo valor de ganancia g.
Alternativamente, una ponderación se puede asignar a la ganancia gmin de límite inferior o a la ganancia gmax de límite superior y la media ponderada de la ganancia gmin de límite inferior y la ganancia gmax de límite superior se pueden establecer como nuevo valor de ganancia g. Por ejemplo,
(W1 x gmin gmax)/(W1 1)
se puede establecer como nuevo valor de ganancia g. Aquí, W1 se puede establecer para tomar un valor positivo mayor o igual a 1 cuando gmin es más probable, es decir, cuando (B - cu) > (cl - B), tomar un valor positivo menor o igual a 1 cuando gmax es más probable, es decir, cuando (B - cu) < (cl - B), y aumentar con el aumento de B - cu. Por ejemplo, W1 puede ser un valor de función monótonamente creciente con respecto a B - cu. Alternativamente,
(gmin W2 x gmax)/(1 W2)
se puede establecer como nuevo valor de ganancia g. Aquí, W2 se puede establecer para tomar un valor positivo mayor o igual a 1 cuando gmax es más probable, tomar un valor positivo menor o igual a 1 cuando g min es más probable, y aumentar con el aumento de cl - B. Por ejemplo, W2 puede ser un valor de función monótonamente creciente con respecto a cl - B. Alternativamente, cuando gmin es más probable (cuando (B - cu) > (cl - B)),
(W3 x gmin gmax)/(W3 1)
se puede establecer como nuevo valor de ganancia g, y cuando gmax es más probable (cuando (B - cu) < (cl - B))
(gmin W4 x gmax)/(1 W4)
se puede establecer como nuevo valor de ganancia g, donde W3 toma un valor positivo que es mayor o igual a 1 y es un valor de función monótonamente creciente con respecto a B - cu, y W4 toma un valor positivo que es mayor o igual a 1 y es un valor de función monótonamente creciente con respecto a cl - B.
De este modo, una media ponderada de la ganancia de límite superior y la ganancia límite inferior se puede establecer como ganancia actualizada donde una ponderación basada en al menos el número B de bits asignados, el número cl de bits consumidos en el establecimiento de límite inferior y el número cu de bits consumidos en el establecimiento de límite superior se asigna a al menos una de la ganancia gmax de límite superior y la ganancia gmin de límite inferior.
[Modificación de la tercera realización]
Aunque la tercera realización se ha descrito en donde se sustituyen el establecedor 108 de ganancia de límite inferior, el establecedor 112 de ganancia de límite superior, el primer actualizador 110 de ganancia y el segundo actualizador 114 de ganancia de la primera realización, el establecedor 108 de ganancia de límite inferior, el establecedor 112 de ganancia de límite superior, el primer actualizador 110 de ganancia y el segundo actualizador 114 de ganancia de la segunda realización se pueden sustituir con las secciones descritas en la tercera realización, o el establecedor 1008 de ganancia de límite inferior, el establecedor 1012 de ganancia de límite superior, el primer actualizador 1010 de ganancia y el segundo actualizador 1014 de ganancia del codificador 1000 para codificación TCX descrita en los [Antecedentes de la técnica] se pueden sustituir con las secciones descritas en la tercera realización.
Alternativamente, el establecedor 108 de ganancia de límite inferior, el establecedor 112 de ganancia de límite superior, el primer actualizador 110 de ganancia y el segundo actualizador 114 de ganancia de la modificación de la primera realización se pueden sustituir con las secciones descritas en la tercera realización, o el establecedor 108 de ganancia de límite inferior, el establecedor 112 de ganancia de límite superior, el primer actualizador 110 de ganancia y el segundo actualizador 114 de ganancia de la modificación de la segunda realización se pueden sustituir con las secciones descritas en la tercera realización.
Es decir, cuando el número de bits o número estimado de bits en un código, obtenido codificando una cadena de muestras de valores enteros obtenida dividiendo cada muestra en una cadena de muestras por la ganancia antes de una actualización es mayor que un número B predeterminado de bits asignados, la ganancia antes de la actualización se puede establecer como la ganancia gmin de límite inferior, el número de bits o número estimado de bits se puede establecer como el número cl de bits consumidos en el establecimiento de límite inferior; cuando el número de bits o el número estimado de bits en un código obtenido codificando una cadena de muestras de valores enteros obtenida dividiendo cada muestra en una cadena de muestras por la ganancia antes de una actualización es menor que el número B predeterminado de bits asignados, la ganancia antes de la actualización se puede establecer como la ganancia gmax de límite superior, el número de bits o el número estimado de bits se puede establecer como el número cu de bits consumidos en el establecimiento de límite superior. Una ponderación basada en al menos el número B de bits asignados, el número cl de bits consumidos en el establecimiento de límite inferior y el número cu de bits consumidos en el establecimiento del límite superior se puede asignar a al menos una de la ganancia gmax de límite superior y la ganancia gmin de límite inferior y la media ponderada de la ganancia de límite superior y la ganancia de límite inferior se puede establecer como ganancia actualizada.
<Configuración de hardware ejemplar de codificador>
un codificador según las realizaciones descritas anteriormente incluye una unidad de entrada a la que se pueden conectar un teclado y similares, una unidad de salida a la que se pueden conectar un visualizador de cristal líquido y similares, una CPu (unidad Central de Procesamiento) (que puede incluir una memoria tal como una memoria caché), memorias tales como una RAM (Memoria de Acceso Aleatorio) y una ROM (Memoria de Sólo Lectura), un almacenamiento externo, que es un disco duro, y un bus que interconecta la unidad de entrada, la unidad de salida, la CPu, la RAM, la ROM y el almacenamiento externo de tal manera que pueden intercambiar datos. un dispositivo (unidad) capaz de leer y escribir datos en un medio de grabación tal como un CD-ROM se puede proporcionar en el codificador según sea necesario.
Los programas para realizar codificación y los datos requeridos para procesamiento por los programas están almacenados en el almacenamiento externo del codificador (el almacenamiento no está limitado a un almacenamiento externo; por ejemplo los programas se pueden almacenar en un dispositivo de almacenamiento de sólo lectura tal como una ROM). Los datos obtenidos en el procesamiento de los programas se almacenan en la RAM o el dispositivo de almacenamiento externo según sea apropiado. un dispositivo de almacenamiento que almacena datos y direcciones de sus ubicaciones de almacenamiento se conocen en lo sucesivo simplemente como el “almacenamiento”. Los programas y similares para ejecutar codificación están almacenados en el almacenamiento del codificador.
En el codificador, los programas almacenados en el almacenamiento y los datos requeridos para el procesamiento de los programas se cargan en la RAM según se requiera y se interpretan y ejecutan o procesan por la CPU. Como resultado, la CPU implementa funciones dadas para implementar la codificación.
<Apéndice>
La presente invención no está limitada a las realizaciones descritas anteriormente y se pueden hacer modificaciones sin apartarse del espíritu de la presente invención. Por ejemplo, cuando el número de bits consumidos es menor que el número de bits asignados, se realiza el proceso en el actualizador de reducción de ganancia mientras que cuando el número de bits consumidos es igual al número de bits asignados, el determinador emite la ganancia y otra información. Sin embargo, el proceso en el actualizador de reducción de ganancia se puede realizar cuando el número de bits consumidos no es mayor que el número de bits asignados. Además, los procesos descritos en las realizaciones se pueden realizar no solamente en la secuencia de tiempo como se escribe o se puede realizar en paralelo uno con otro o individualmente, dependiendo del flujo máximo de los aparatos que realizan los procesos o los requisitos.
Si las funciones de procesamiento de cualquiera de las entidades de hardware (el codificador) descritas en las realizaciones se implementan por un ordenador, el procesamiento de las funciones que deberían incluir las entidades de hardware se describe en un programa. El programa se ejecuta en el ordenador para implementar las funciones de procesamiento de la entidad de hardware en el ordenador.
Los programas que describen el procesamiento se pueden grabar en un medio de grabación legible por ordenador. Un ejemplo del medio de grabación legible por ordenador es un medio de grabación no transitorio. El medio de grabación legible por ordenador puede ser cualquier medio de grabación tal como un dispositivo de grabación magnética, un disco óptico, un medio de grabación magneto-óptica, y una memoria de semiconductores. Específicamente, por ejemplo, un dispositivo de disco duro, un disco flexible, o una cinta magnética se pueden usar como dispositivo de grabación magnética, un DVD (Disco Digital Versátil), un DVD-RAM (Memoria de Acceso Aleatorio), un CD-ROM (Memoria de Sólo Lectura de Disco Compacto), o un CD-R (Grabable)/RW (Regrabable) se puede usar como disco óptico, un MO (disco Magneto-óptico) se puede usar como medio de grabación magnetoóptica, y una EEP-ROM (Memoria de Sólo Lectura Borrable y Programable Electrónicamente) se puede usar como memoria de semiconductores.
El programa se distribuye vendiendo, transfiriendo, o prestando un medio de grabación 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 almacenamiento de un ordenador servidor y se puede transferir desde el ordenador servidor a otros ordenadores sobre una red, distribuyendo por ello el programa.
Un ordenador que ejecuta el programa almacena primero el programa grabado en un medio de grabación portátil o transferido desde un ordenador servidor temporalmente a un dispositivo de almacenamiento del ordenador. Cuando el ordenador ejecuta los procesos, el ordenador lee el programa almacenado en el medio de grabación del ordenador y ejecuta el procesamiento según el programa leído. En otro modo de ejecución del programa, el ordenador puede leer el programa directamente de un medio de grabación portátil y ejecutar los procesos según el programa o puede ejecutar los procesos según el programa recibido cada vez que el programa se transfiere desde el ordenador servidor al ordenador. Alternativamente, los procesos se pueden ejecutar usando un denominado servicio ASP (Proveedor de Servicios de Aplicaciones) en el que el programa no se transfiere desde un ordenador servidor al ordenador sino que las funciones del proceso se implementan mediante instrucciones para ejecutar el programa y la adquisición de los resultados de la ejecución. Señalar que el programa en este modo abarca información que se proporciona para procesamiento por un ordenador electrónico y es equivalente al programa (tal como datos que no son comandos directos a un ordenador sino que tienen la naturaleza que define el procesamiento del ordenador).
Aunque las entidades hardware están configuradas haciendo que un ordenador ejecute un programa predeterminado en las realizaciones descritas anteriormente, al menos algunos de los procesos se pueden implementar por hardware.
Claims (6)
1. Un método de codificación para una cadena de muestras derivada de una señal de audio de entrada en un intervalo de tiempo dado, la cadena de muestras que consiste en una pluralidad de muestras, obteniendo el método de codificación un código de ganancia correspondiente a una ganancia obtenida por un paso de procesamiento de bucle de actualización de ganancia de obtención la ganancia por procesamiento en bucle y un código de señal entero obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia;
en donde el paso de procesamiento del bucle de actualización de ganancia comprende un paso de actualización de expansión de ganancia y un paso de actualización de reducción de ganancia;
el paso de actualización de expansión de ganancia comprende:
un paso de ajuste de ganancia de límite inferior de, cuando el número de bits o el número estimado de bits c en un código obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por una ganancia antes una actualización es mayor que un número predeterminado B de bits asignados, configurando la ganancia antes de la actualización como un límite inferior gmin de la ganancia; y
un primer paso de actualización de ganancia de, cuando el número de bits o el número estimado de bits c es mayor que el número predeterminado B de bits asignados y se ha establecido un límite superior gmax de la ganancia, estableciendo una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso al límite inferior gmin de la ganancia o al límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B de bits asignados, una cantidad de configuración de de bits consumidos en el ajuste del límite inferior y una cantidad de configuración de bits consumidos en el ajuste del límite inferior, y la cantidad de configuración de bits consumidos en el ajuste del límite inferiores el número de bits o el número estimado de bits; y el paso de actualización de reducción de ganancia comprende:
un paso de ajuste de ganancia de límite superior de, cuando el número de bits o el número estimado de bits c en un código obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia anterior una actualización es menor que el número predeterminado B de bits asignados, configurando la ganancia antes de la actualización como un límite superior gmax de la ganancia; y
un segundo paso de actualización de ganancia de, cuando el número de bits o el número estimado de bits c es menor que el número predeterminado B de bits asignados y se ha establecido el límite inferior gmin de la ganancia, estableciendo una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso al límite inferior gmin de la ganancia o al límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B de bits asignados, el número de bits consumidos en el límite inferior, y el número de bits consumidos en el límite superior, y el número de bits consumidos en el límite superior se puede establecer que es el número de bits o el número estimado de bits.
2. Un método de codificación para una cadena de muestra derivada de una señal de audio de entrada en un intervalo de tiempo dado, la cadena de muestra que consiste en una pluralidad de muestras, obteniendo el método de codificación un código de ganancia correspondiente a una ganancia obtenida por un paso de procesamiento de bucle de actualización de ganancia de obtención la ganancia por procesamiento en bucle, y un código de señal entero obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia;
en donde el paso de procesamiento de bucle de actualización de ganancia comprende un paso de actualización de expansión de ganancia y una reducción de ganancia paso de actualización;
el paso de actualización de expansión de ganancia comprende:
un paso de ajuste de ganancia de ganancia de límite inferior de, cuando el número de bits o el número estimado de bits c en un código obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por una ganancia antes de que una actualización sea mayor que un número predeterminado B de bits asignados, estableciendo la ganancia antes de la actualización como un límite inferior gmin de la ganancia; y
un primer paso de actualización de ganancia de, cuando el número de bits o el número estimado de bits c es mayor que el número predeterminado B de bits asignados y se ha establecido un límite superior gmax de la ganancia, estableciendo
B - ctt C c, - B C
como una ganancia actualizada, donde cl es un número de bits consumidos en el ajuste del límite inferior que es el número de bits o el número estimado de bits, cu es un número de bits consumidos en el ajuste del límite superior, y C es una constante positiva predeterminada; y
el paso de actualización de reducción de ganancia comprende:
un paso de ajuste de ganancia de límite superior de, cuando el número de bits o el número estimado de bits c en un código obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia anterior una actualización es menor que el número predeterminado B de bits asignados, configurando la ganancia antes de la actualización como el límite superior gmax de la ganancia; y
un segundo paso de actualización de ganancia de, cuando el número de bits o el número estimado de c es menor que el número predeterminado B de bits asignados y se ha establecido el límite inferior gmin de la ganancia, estableciendo
como una ganancia actualizada, donde cl es el número de bits consumidos en el límite inferior, cu es el número de bits consumidos en el límite superior, que es el número de bits o el número estimado de bits, y C es una constante positiva predeterminada.
3. Un codificador (300) que codifica una cadena de muestra derivada de una señal de audio de entrada en un intervalo de tiempo dado, la cadena de muestra consiste en una pluralidad de muestras, el codificador (300) obtiene un código de ganancia correspondiente a una ganancia obtenida por una ganancia actualizar el procesador de bucle (330) obteniendo la ganancia por procesamiento de bucle, y un código de señal entero obtenido codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia;
en donde el procesador de bucle de actualización de ganancia (330) comprende un actualizador (331) de expansión de ganancia y un actualizador de reducción de ganancia (332);
el actualizador (331) de expansión de ganancia comprende:
un establecedor de ganancia de límite inferior (308) que, cuando el número de bits o el número estimado de bits c en un código se obtiene codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia antes de una actualización es mayor que un número predeterminado B de bits asignados, establece la ganancia antes de la actualización como un límite inferior gmin de la ganancia; y
un primer actualizador de ganancia (310) que, cuando el número de bits o el número estimado de bits c es mayor que se ha establecido un número predeterminado B de bits asignados y un límite superior gmax de la ganancia, establece una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso a el límite inferior gmin de la ganancia o el límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B
de bits asignados, un número de bits consumidos en el límite inferior y un ajuste número de bits consumidos en el ajuste del límite superior, y el número de bits consumidos en el ajuste del límite inferior es el número de bits o el número estimado de bits; y
el actualizador de reducción de ganancia (332) comprende:
un configurador de ganancia de límite superior (312) que, cuando el número de bits o el número estimado de bits c en un código obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por ganancia antes de una actualización es menor que el número predeterminado B de bits asignados, establece la ganancia antes de la actualización como un límite superior gmax de la ganancia; y
un segundo actualizador de ganancia (314) que, cuando el número de bits o el número estimado de bits c es menor que se ha establecido el número predeterminado B de bits asignados y el límite inferior gmin de la ganancia, establece una media ponderada del límite superior gmax de la ganancia y el límite inferior gmin de la ganancia como una ganancia actualizada, donde se asigna un mayor peso al límite inferior gmin de la ganancia o al límite superior gmax de la ganancia, lo que sea más probable según un indicador basado en al menos el número predeterminado B de bits asignados, el número de bits consumidos en el límite inferior configuración, y el número de bits consumidos en el límite superior, y el número de bits consumidos en el límite superior es el número de bits o el número estimado de bits.
4. Un codificador (300) que codifica una cadena de muestra derivada de una señal de audio de entrada en un intervalo de tiempo dado, la cadena de muestra consiste en una pluralidad de muestras, el codificador (300) obtiene un código de ganancia correspondiente a una ganancia obtenida por una ganancia actualizar el procesador de bucle (330) obteniendo la ganancia mediante el procesamiento de bucle, y un código de señal entero obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por la ganancia;
en donde el procesador de bucle de actualización de ganancia (330) comprende un actualizador de expansión de ganancia (331) y un actualizador de reducción de ganancia (332);
el actualizador (331) de expansión de ganancia comprende:
un establecedor de ganancia de límite inferior (308) que, cuando el número de bits o el número estimado de bits c en un código se obtiene codificando una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por una ganancia antes de que una actualización sea mayor que un número predeterminado B de asignado de bits, establece la ganancia antes de la actualización como un límite inferior gmin de la ganancia; y
un primer actualizador de ganancia (310) que, cuando el número de bits o el número estimado de bits c es mayor que el número predeterminado B de bits asignados y se ha establecido un límite superior gmax de la ganancia,
B - ctt +C c, - B C
o
S
m
I
i ■n X----------—- ,-- o---- ^---b o
s
m
i
ax x -------------------+ , -C L Cy+ZXC C L Cy
20 X ^ C
como una ganancia actualizada, donde cL es un número de bits consumidos en el límite inferior, que es el número de bits o número estimado de bits, cu es un número de bits consumidos en el ajuste del límite superior, y C es una constante positiva predeterminada; y
el actualizador de reducción de ganancia (332) comprende:
un configurador de ganancia de límite superior (312) que, cuando el número de bits o el número estimado de bits c en un código obtenido al codificar una cadena de muestras de valor entero obtenidas dividiendo cada muestra en la cadena de muestra que consiste en la pluralidad de muestras por ganancia antes de que una actualización sea menor que el número predeterminado B de bits asignados, establece la ganancia antes de la actualización como el límite superior gmax de la ganancia; y
un segundo actualizador de ganancia (314) que, cuando el número de bits o el número estimado de bits c es menor que el número predeterminado B de bits asignados y se ha establecido el límite inferior gmin de la ganancia, establece
como una ganancia actualizada, donde cL es el número de bits consumidos en el ajuste del límite inferior, cU es el número de configuración de bits consumidos en el límite superior, que es el número de bits o el número estimado de bits, y C es una constante positiva predeterminada.
5. Un programa de ordenador para hacer que un ordenador ejecute los pasos del método de codificación de acuerdo con la reivindicación 1 o 2.
6. Un medio de grabación legible por ordenador que almacena un programa para hacer que un ordenador ejecute los pasos del método de codificación de acuerdo con la reivindicación 1 o 2.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012122785 | 2012-05-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2807241T3 true ES2807241T3 (es) | 2021-02-22 |
Family
ID=49673352
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13796771.7T Active ES2661504T3 (es) | 2012-05-30 | 2013-05-29 | Método de codificación, codificador, programa y medio de grabación |
ES17175244T Active ES2742481T3 (es) | 2012-05-30 | 2013-05-29 | Método de codificación, codificador, programa y medio de grabación |
ES19169511T Active ES2807241T3 (es) | 2012-05-30 | 2013-05-29 | Método de codificación, codificador, programa y medio de grabación |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13796771.7T Active ES2661504T3 (es) | 2012-05-30 | 2013-05-29 | Método de codificación, codificador, programa y medio de grabación |
ES17175244T Active ES2742481T3 (es) | 2012-05-30 | 2013-05-29 | Método de codificación, codificador, programa y medio de grabación |
Country Status (8)
Country | Link |
---|---|
US (1) | US9552821B2 (es) |
EP (3) | EP3534367B1 (es) |
JP (1) | JP5872034B2 (es) |
KR (4) | KR101762210B1 (es) |
CN (1) | CN104321813B (es) |
ES (3) | ES2661504T3 (es) |
PL (2) | PL3534367T3 (es) |
WO (1) | WO2013180164A1 (es) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112016006925B1 (pt) | 2013-12-02 | 2020-11-24 | Huawei Technologies Co., Ltd.. | Metodo e aparelho de codificaqao |
CN110491399B (zh) * | 2014-03-24 | 2022-10-21 | 日本电信电话株式会社 | 编码方法、编码装置以及记录介质 |
CN104143335B (zh) | 2014-07-28 | 2017-02-01 | 华为技术有限公司 | 音频编码方法及相关装置 |
US10276186B2 (en) | 2015-01-30 | 2019-04-30 | Nippon Telegraph And Telephone Corporation | Parameter determination device, method, program and recording medium for determining a parameter indicating a characteristic of sound signal |
WO2018225412A1 (ja) * | 2017-06-07 | 2018-12-13 | 日本電信電話株式会社 | 符号化装置、復号装置、平滑化装置、逆平滑化装置、それらの方法、およびプログラム |
US10950251B2 (en) * | 2018-03-05 | 2021-03-16 | Dts, Inc. | Coding of harmonic signals in transform-based audio codecs |
US20230121712A1 (en) * | 2021-10-18 | 2023-04-20 | S&P Global Inc. | String Alignment with Translocation Insensitivity |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732071B2 (en) * | 2001-09-27 | 2004-05-04 | Intel Corporation | Method, apparatus, and system for efficient rate control in audio encoding |
US7940839B2 (en) * | 2004-01-26 | 2011-05-10 | Diablo Technologies Inc. | Fully adaptive equalization for high loss communications channels |
US7292092B2 (en) * | 2004-08-31 | 2007-11-06 | Integration Associates Inc. | Tunable poly-phase filter and method for calibration thereof |
DE602004010509D1 (de) * | 2004-09-03 | 2008-01-17 | St Microelectronics Srl | System und Verfahren zur Bildkodierung und zugehöriges Rechnerprogrammprodukt |
KR100682890B1 (ko) * | 2004-09-08 | 2007-02-15 | 삼성전자주식회사 | 비트량 고속제어가 가능한 오디오 부호화 방법 및 장치 |
JP4639073B2 (ja) * | 2004-11-18 | 2011-02-23 | キヤノン株式会社 | オーディオ信号符号化装置および方法 |
JP4641272B2 (ja) * | 2006-03-08 | 2011-03-02 | シャープ株式会社 | デジタルデータ復号化装置 |
US8374857B2 (en) * | 2006-08-08 | 2013-02-12 | Stmicroelectronics Asia Pacific Pte, Ltd. | Estimating rate controlling parameters in perceptual audio encoders |
JP5224666B2 (ja) * | 2006-09-08 | 2013-07-03 | 株式会社東芝 | オーディオ符号化装置 |
JP5434592B2 (ja) * | 2007-06-27 | 2014-03-05 | 日本電気株式会社 | オーディオ符号化方法、オーディオ復号方法、オーディオ符号化装置、オーディオ復号装置、プログラム、およびオーディオ符号化・復号システム |
JP5264913B2 (ja) * | 2007-09-11 | 2013-08-14 | ヴォイスエイジ・コーポレーション | 話声およびオーディオの符号化における、代数符号帳の高速検索のための方法および装置 |
JP2010281965A (ja) * | 2009-06-03 | 2010-12-16 | Sony Corp | 量子化装置、再生装置、量子化方法およびプログラム |
TW201209805A (en) * | 2010-07-06 | 2012-03-01 | Panasonic Corp | Device and method for efficiently encoding quantization parameters of spectral coefficient coding |
US20150341158A1 (en) * | 2014-05-23 | 2015-11-26 | Mediatek Inc. | Loop gain calibration apparatus for controlling loop gain of timing recovery loop and related loop gain calibration method |
-
2013
- 2013-05-29 ES ES13796771.7T patent/ES2661504T3/es active Active
- 2013-05-29 ES ES17175244T patent/ES2742481T3/es active Active
- 2013-05-29 PL PL19169511T patent/PL3534367T3/pl unknown
- 2013-05-29 KR KR1020177015504A patent/KR101762210B1/ko active IP Right Grant
- 2013-05-29 KR KR1020147032029A patent/KR101661917B1/ko active IP Right Grant
- 2013-05-29 WO PCT/JP2013/064877 patent/WO2013180164A1/ja active Application Filing
- 2013-05-29 JP JP2014518696A patent/JP5872034B2/ja active Active
- 2013-05-29 PL PL17175244T patent/PL3236468T3/pl unknown
- 2013-05-29 US US14/394,158 patent/US9552821B2/en active Active
- 2013-05-29 KR KR1020167026537A patent/KR101746697B1/ko active IP Right Grant
- 2013-05-29 CN CN201380026180.4A patent/CN104321813B/zh active Active
- 2013-05-29 EP EP19169511.3A patent/EP3534367B1/en active Active
- 2013-05-29 ES ES19169511T patent/ES2807241T3/es active Active
- 2013-05-29 KR KR1020177015496A patent/KR101762205B1/ko active IP Right Grant
- 2013-05-29 EP EP13796771.7A patent/EP2827328B1/en active Active
- 2013-05-29 EP EP17175244.7A patent/EP3236468B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR101661917B1 (ko) | 2016-10-05 |
KR20170068617A (ko) | 2017-06-19 |
JP5872034B2 (ja) | 2016-03-01 |
EP3236468A1 (en) | 2017-10-25 |
EP2827328A1 (en) | 2015-01-21 |
CN104321813B (zh) | 2016-12-14 |
EP3534367B1 (en) | 2020-05-13 |
US9552821B2 (en) | 2017-01-24 |
PL3534367T3 (pl) | 2020-10-05 |
KR20160114200A (ko) | 2016-10-04 |
KR20170069294A (ko) | 2017-06-20 |
KR101746697B1 (ko) | 2017-06-14 |
ES2661504T3 (es) | 2018-04-02 |
JPWO2013180164A1 (ja) | 2016-01-21 |
KR20150003817A (ko) | 2015-01-09 |
EP2827328A4 (en) | 2016-04-13 |
PL3236468T3 (pl) | 2019-10-31 |
EP2827328B1 (en) | 2018-01-03 |
EP3236468B1 (en) | 2019-05-29 |
EP3534367A1 (en) | 2019-09-04 |
KR101762210B1 (ko) | 2017-07-27 |
ES2742481T3 (es) | 2020-02-14 |
CN104321813A (zh) | 2015-01-28 |
US20150088529A1 (en) | 2015-03-26 |
WO2013180164A1 (ja) | 2013-12-05 |
KR101762205B1 (ko) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2807241T3 (es) | Método de codificación, codificador, programa y medio de grabación | |
US11074919B2 (en) | Encoding method, decoding method, encoder, decoder, program, and recording medium | |
RU2562375C2 (ru) | Аудиокодер и декодер | |
ES2689072T3 (es) | Codificación de una señal de audio | |
JP6595687B2 (ja) | 符号化方法、符号化装置、プログラム、および記録媒体 | |
US9838700B2 (en) | Encoding apparatus, decoding apparatus, and method and program for the same |