ES2628127T3 - Cuantificador avanzado - Google Patents
Cuantificador avanzado Download PDFInfo
- Publication number
- ES2628127T3 ES2628127T3 ES14715894.3T ES14715894T ES2628127T3 ES 2628127 T3 ES2628127 T3 ES 2628127T3 ES 14715894 T ES14715894 T ES 14715894T ES 2628127 T3 ES2628127 T3 ES 2628127T3
- Authority
- ES
- Spain
- Prior art keywords
- quantifiers
- coefficients
- block
- coefficient
- snr
- 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
- 238000011002 quantification Methods 0.000 claims abstract description 143
- 238000013179 statistical model Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 101
- 238000013139 quantization Methods 0.000 claims description 73
- 230000003595 spectral effect Effects 0.000 claims description 72
- 239000013598 vector Substances 0.000 claims description 62
- 230000001755 vocal effect Effects 0.000 claims description 52
- 230000002441 reversible effect Effects 0.000 claims description 13
- 230000008030 elimination Effects 0.000 claims description 6
- 238000003379 elimination reaction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 43
- 230000005236 sound signal Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 230000009286 beneficial effect Effects 0.000 description 21
- 230000001419 dependent effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 238000012546 transfer Methods 0.000 description 16
- 230000015572 biosynthetic process Effects 0.000 description 15
- 238000003786 synthesis reaction Methods 0.000 description 13
- 238000001228 spectrum Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001143 conditioned effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 239000003623 enhancer Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/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/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- 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/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
- G10L19/025—Detection of transients or attacks for time/frequency resolution switching
-
- 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/028—Noise substitution, i.e. substituting non-tonal spectral components by noisy source
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/20—Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Una unidad (112) de cuantificación configurada para cuantificar un primer coeficiente de un bloque (141) de coeficientes; en la que el bloque (141) de coeficientes comprende una pluralidad de coeficientes para una pluralidad de períodos (301) de frecuencia correspondientes; en la que la unidad (112) de cuantificación está configurada para - proporcionar un conjunto (326, 327) de cuantificadores; en la que el conjunto (326, 327) de cuantificadores comprende un número limitado de cuantificadores (321, 322, 323) asociados a diferentes relaciones señal-ruido, referidas como SNR, respectivamente; en la que los diferentes cuantificadores del conjunto de cuantificadores están ordenados de acuerdo con su SNR; el conjunto (326, 327) de cuantificadores (321, 322, 323) incluye - un cuantificador (321) de relleno de ruido; en el que el cuantificador (321) de relleno de ruido está configurado para cuantificar el primer coeficiente reemplazando un valor del primer coeficiente por un valor aleatorio generado de acuerdo con un modelo estadístico predeterminado; - uno o más cuantificadores (322) distorsionados; y - uno o más cuantificadores (323) deterministas no distorsionados; - determinar una indicación de SNR indicativa de una SNR atribuida al primer coeficiente; - seleccionar un primer cuantificador del conjunto (326, 327) de cuantificadores, basándose en la indicación de SNR; y - cuantificar el primer coeficiente usando el primer cuantificador.
Description
5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Cuantificador avanzado.
Referencia a solicitudes relacionadas
La presente invencion reclama prioridad sobre la solicitud de patente provisional de EE. UU. n.° 61/808.673, presentada el 5 de abril de 2013 y la solicitud de patente provisional de EE. UU. n.° 61/875.817, presentada el 10 de septiembre de 2013.
Campo tecnico
El presente documento guarda relacion con un sistema de codificacion y descodificacion de audio (al que se hace referencia como sistema codec de audio). En concreto, el presente documento guarda relacion con un sistema codec de audio basado en transformadas que es especialmente adecuado para la codificacion y descodificacion de voz.
Antecedentes
Los codificadores de audio perceptuales para usos generales logran ganancias de codificacion relativamente altas usando transformadas como la Transformada modificada de coseno discreto (MDCT, por su sigla en ingles) con tamanos de bloque en muestras que cubren varias decimas de milisegundo (p. ej. 20 ms). Un ejemplo de dicho sistema codec de audio basado en transformadas es Advanced Audio Coding (aAc) o High Efficiency (HE)-AAC. Sin embargo, cuando se usan dichos sistemas codec de audio basados en transformadas para senales de voz, la calidad de las senales de voz se degrada mas rapido que la de las senales musicales hacia velocidades de transmision mas bajas, especialmente en el caso de senales vocales secas (no reverberantes).
El presente documento describe un sistema codec de audio basado en transformadas que es especialmente adecuado para la codificacion de senales vocales. Ademas, el presente documento describe un esquema de cuantificacion que puede usarse en dicho sistema codec de audio basado en transformadas. Pueden usarse diversos esquemas de cuantificacion en conjuncion con los sistemas codec de audio basados en transformadas. Ejemplos de ello son la cuantificacion vectorial (p. ej. la cuantificacion vectorial doble), distribucion que preserva la cuantificacion, cuantificacion distorsionada, cuantificacion escalar con compensacion aleatoria, y cuantificacion escalar combinada con un relleno de ruido (p. ej., el cuantificador descrito en el documento US7447631). Estos diferentes esquemas de cuantificacion presentan diversas ventajas e inconvenientes por lo que respecta a una o mas de las siguientes caractensticas:
• complejidad operativa (codificador), que normalmente incluye la complejidad computacional de la cuantificacion y de generacion del tren de bits (p. ej., codificacion de longitud variable);
• rendimiento perceptual, que puede estimarse de acuerdo con consideraciones teoricas (rendimiento con distorsion de la velocidad) y con caractensticas del comportamiento de relleno de ruido (p. ej. a velocidades de transferencia de bits que se corresponden de hecho con la codificacion de senales de voz con transformadas de baja velocidad);
• complejidad del proceso de asignacion de velocidad de bits en presencia de una limitacion de velocidad de bits global (por ejemplo, numero maximo de bits); y/o
• flexibilidad por lo que se refiere a permitir diferentes velocidades de datos y diferentes niveles de distorsion.
En el presente documento, se describe un esquema de cuantificacion que contempla al menos algunas de las caractensticas mencionadas. En concreto, se describe un esquema de cuantificacion que ofrece rendimiento mejorado con respecto a todas las caractensticas mencionadas o parte de ellas.
La descripcion de la patente US 2007/016404 (por ejemplo parrafos 0014 a 0016, 0063 y 0078 a 0080) muestra como se extraen importantes componentes espectrales que utilizan relaciones senal-marca (SMR) o relaciones senal-ruido, calculando y cuantificando coeficientes MDCT, proporcionando un conjunto de cuantificadores que estan asociados a la SMR, seleccionando un primer cuantificador del conjunto, y cuantificando el primer coeficiente utilizando el primer cuantificador. La descripcion de la patente EP2077550 (por ejemplo, parrafos 0015 a 0017, 0084, 0085, 0090 y 0109) muestra como se lleva a cabo la cuantificacion usando un «paso de tamano adaptable» basado en la «varianza de las senales de entrada», usando un cuantificador de relleno de ruido, la importancia del relleno de ruido a bajas velocidades de bits, seleccionando un cuantificador en el que cada cuantificador es compensado por su propio valor de compensacion exclusivo, y la conmutacion de la estrategia de cuantificacion como funcion del tamano del grupo de bits. La descripcion de la patente WO 2006/111294 (p. ej. pagina 16, lmea 29 a pagina 17, lmea 16; pagina 18, lmea 29 a pagina 19, lmea 12; figuras 2a a 2c) muestra como se selecciona un cuantificador usando la relacion entre la energfa local de un canal de audio (o par de canales) y la energfa total de una senal de audio multicanal, y usando cuantificacion fina, media o gruesa de acuerdo con la relacion entre energfa local y total.
5
10
15
20
25
30
35
40
45
50
55
60
Compendio
Segun un aspecto, se describe una unidad de cuantificacion (tambien referida en el presente documento como una unidad de cuantificacion de coeficientes) configurada para cuantificar un primer coeficiente de un bloque de coeficientes. El bloque de coeficientes puede corresponder a o derivarse de un bloque de coeficientes residuales de prediccion (tambien referido como un bloque de coeficientes de error de prediccion). Como tal, la unidad de cuantificacion puede ser parte de un codificador de audio basado en transformadas que emplea prediccion de subbanda, como se describe con mas detalle mas adelante. En terminos generales, el bloque de coeficientes puede comprender una pluralidad de coeficientes para una pluralidad de periodos de frecuencia correspondientes. El bloque de coeficientes puede derivarse de un bloque de coeficientes de transformadas, en el que el bloque de coeficientes de transformadas se ha determinado convirtiendo una senal de audio (p. ej. una senal vocal) del dominio temporal al dominio frecuencial usando una transformada de dominio temporal a dominio frecuencial (p. ej. una transformada modificada de coseno discreto, MDCT).
Debe senalarse que el primer coeficiente del bloque de coeficientes puede corresponder a uno o mas de los coeficientes del bloque del bloque de coeficientes. El bloque de coeficientes puede comprender coeficientes K (K>1, p. ej. K = 256). El primer coeficiente puede corresponder a cualquiera de los coeficientes de frecuencia k = 1, ..., K. Tal como se expondra a continuacion, la pluralidad de periodos de frecuencia K puede agruparse en una pluralidad de bandas de frecuencia L, con 1 <L< K. Puede asignarse un coeficiente del bloque de coeficientes a una de las diversas bandas de frecuencia (l = 1, ..., L). Los coeficientes q, con q = 1, ..., Q y 0<Q<K, que estan asignados a una banda de frecuencias concreta l pueden cuantificarse usando el mismo cuantificador. El primer coeficiente puede corresponder al coeficiente qesimo de la banda de frecuencias /®sima, para cualquier q = 1, ... Q, y para cualquier l = 1, ..., L.
La unidad de cuantificacion puede configurarse de modo que proporcione un conjunto de cuantificadores. Dicho conjunto de cuantificadores puede comprender una pluralidad de cuantificadores diferentes asociados a una pluralidad de relaciones senal-ruido (SNR, por su sigla en ingles) diferentes o una pluralidad de niveles de distorsion diferentes, respectivamente. Como tales, los diferentes cuantificadores del conjunto de cuantificadores pueden producir SNR o niveles de distorsion respectivos. Los cuantificadores dentro del conjunto de cuantificadores pueden ordenarse de acuerdo con la pluralidad de SNR asociadas a la pluralidad de cuantificadores. En concreto, los cuantificadores pueden ordenarse de tal modo que la SNR que se obtiene usando un cuantificador concreto se incrementa en comparacion con la SNR que se obtiene usando un cuantificador adyacente inmediatamente anterior.
Se puede hacer tambien referencia al conjunto de cuantificadores como un conjunto de cuantificadores admisible. Normalmente, el numero de cuantificadores incluidos en el conjunto de cuantificadores se limita a un numero R de cuantificadores. El numero R de cuantificadores incluidos en el conjunto de cuantificadores puede seleccionarse en funcion de un abanico global de SNR que debe cubrir un conjunto de cuantificadores (p. ej. un abanico de SNR desde aprox. 0 dB a 30 dB). Ademas, el numero R de cuantificadores depende normalmente de una diferencia objetivo de SNR entre cuantificadores adyacentes dentro de un conjunto de cuantificadores ordenado. El valor tfpico para el numero R de cuantificadores oscila entre 10 y 20 cuantificadores.
La pluralidad de cuantificadores diferentes puede comprender un cuantificador de relleno de ruido, uno o mas cuantificadores distorsionados, y/o uno o mas cuantificadores no distorsionados. En un ejemplo preferido, la pluralidad de cuantificadores diferentes comprende un cuantificador de relleno de ruido unico, uno mas cuantificadores distorsionados y uno mas cuantificadores no distorsionados. Tal como se expondra en el presente documento, es beneficioso usar un cuantificador de relleno de ruido para una situacion de velocidad de bits cero (p. ej. en lugar de usar un cuantificador distorsionado con un paso de cuantificacion de tamano grande). El cuantificador de relleno de ruido se asocia a la SNR relativamente mas baja de la pluralidad de SNR, y el cuantificador o los cuantificadores distorsionados pueden asociarse a la SNR o las SNR relativamente mas altas de la pluralidad de SNR. El cuantificador o los cuantificadores distorsionados pueden asociarse a una o mas SNR intermedias, que son mas altas que la SNR relativamente mas baja y que son mas bajas que la SNR o las SNR relativamente mas altas de la pluralidad de SNR. Como tal, el conjunto de cuantificadores ordenado puede comprender un cuantificador de relleno de ruido para la SNR mas baja (p. ej. inferior o igual a 0 dB), seguido de uno o mas cuantificadores distorsionados para SNR intermedias, y seguido de uno o mas cuantificadores no distorsionados para SNR relativamente altas. De este modo puede mejorarse la calidad perceptual de una senal de audio reconstruida (derivada del bloque de coeficientes cuantificados, cuantificados utilizando el conjunto de cuantificadores). En concreto, es posible reducir los artefactos audibles causados por agujeros espectrales, manteniendo al mismo tiempo elevado el rendimiento en MSE (error medio cuadratico) de la unidad de cuantificacion.
El cuantificador de relleno de ruido puede incluir un generador de numeros aleatorios configurado para generar numeros aleatorios de acuerdo con un modelo estadfstico predeterminado. El modelo estadfstico predeterminado del generador de numeros aleatorios del cuantificador de relleno de ruido puede depender de la informacion adjunta (p. ej. un indicador de conservacion de la varianza se encuentra en el codificador y en un descodificador correspondiente). El cuantificador de relleno de ruido puede configurarse para cuantificar el primer coeficiente (o cualquiera de los coeficientes del bloque de coeficientes) sustituyendo el primer coeficiente por un numero aleatorio generado por el generador de numeros aleatorios. El generador de numeros aleatorios usados en la unidad de cuantificacion (p. ej. en un descodificador local incluido en un codificador) puede estar en sincronizacion con un
5
10
15
20
25
30
35
40
45
50
generador de numeros aleatorios en una unidad de cuantificacion inversa (en un descodificador correspondiente). Como tal, la salida del cuantificador de relleno de ruido puede ser independiente del primer coeficiente, de forma que la salida del cuantificador de relleno de ruido puede que no requiera la transmision de ningun mdice de cuantificacion. El cuantificador de relleno de ruido puede asociarse a una SNR que tenga un valor proximo o similar a 0 dB. Durante el proceso de asignacion de velocidad, puede considerarse que el cuantificador de relleno de ruido proporciona una sNr de 0 dB aunque en la practica, su SNR pueda desviarse ligeramente de cero (p. ej. puede ser ligeramente inferior a 0 dB (debido a la smtesis de una senal que sea independiente de la senal de entrada)).
La SNR del cuantificador de relleno de ruido puede ajustarse en funcion de uno o mas parametros adicionales. Por ejemplo, la varianza del cuantificador de relleno de ruido puede ajustarse configurando la varianza de la senal sintetizada (es decir, la varianza de los coeficientes que se han cuantificado usando el cuantificador de relleno de ruido) de acuerdo con una funcion predefinida de la ganancia del predictor. Opcionalmente o ademas, la varianza de la senal sintetizada puede configurarse mediante un indicador que se transmite en el tren de bits. En concreto, la varianza del cuantificador de relleno de ruido puede ajustarse mediante una de las dos funciones predefinidas de la ganancia del predictor p (que se indica mas adelante en este documento), donde una de estas funciones puede seleccionarse para hacer que la senal sintetizada sea dependiente del indicador (p. ej. dependiente del indicador de conservacion de la varianza). A modo de ejemplo, la varianza de la senal generada por el cuantificador de relleno de ruido puede ajustarse de tal modo que la SNR del cuantificador de relleno de ruido corresponda al intervalo [-3,0 dB a 0 dB]. Una SNR de 0 dB es normalmente beneficiosa desde un punto de vista de MMSE (error medio cuadratico mmimo). Por otra parte, la calidad perceptual puede incrementarse cuando se utiliza SNR mas bajas (p. ej. reducidas hasta -3,0 dB).
El cuantificador o los cuantificadores distorsionados son preferiblemente cuantificadores distorsionados sustractivos. En concreto, un cuantificador distorsionado del grupo de cuantificadores distorsionados puede comprender una unidad de aplicacion de distorsion configurada para determinar un primer coeficiente distorsionado aplicando un valor de distorsion (tambien referido como numero de distorsion) al primer coeficiente. Ademas, el cuantificador distorsionado puede comprender un cuantificador escalar configurado para determinar un primer mdice de cuantificacion asignando el primer coeficiente distorsionado a un intervalo del cuantificador escalar. Como tal, el cuantificador distorsionado puede generar un primer mdice de cuantificacion basado en el primer coeficiente. De modo similar, es posible cuantificar uno o mas de los coeficientes del bloque de coeficientes.
Un cuantificador distorsionado del grupo de cuantificadores distorsionados puede comprender ademas un cuantificador escalar inverso configurado para asignar un primer valor de reconstruccion al primer mdice de cuantificacion. Ademas, el cuantificador distorsionado puede comprender una unidad de eliminacion de distorsion configurada para determinar un primer coeficiente no distorsionado eliminando el valor de distorsion (es decir, el mismo valor de distorsion que ha sido aplicado por la unidad de aplicacion de distorsion) del primer valor de reconstruccion.
Ademas, el cuantificador distorsionado puede comprender una unidad de aplicacion de post-ganancia configurada para determinar un primer coeficiente distorsionado aplicando una post-ganancia de cuantificador y al primer coeficiente no distorsionado. Al aplicar la post-ganancia y al primer coeficiente no distorsionado, puede mejorarse el rendimiento en MSE del cuantificador distorsionado. La post-ganancia y del cuantificador puede expresarse mediante la formula
siendo
7~ =4y2}
una varianza de uno o mas de los coeficientes del bloque de coeficientes, y siendo A un
tamano de paso de cuantificador del cuantificador escalar del cuantificador distorsionado.
Como tal, el cuantificador distorsionado puede configurarse para efectuar cuantificacion inversa a fin de producir un coeficiente cuantificado. Este puede usarse en el descodificador local de un codificador, lo que facilita una prediccion de bucle cerrado, p. ej. aquella en que el bucle de prediccion del codificador se mantiene en sincroma con el bucle de prediccion del descodificador.
La unidad de aplicacion de distorsion puede configurarse para sustraer el valor de distorsion del primer coeficiente, y la unidad de eliminacion de distorsion puede configurarse para anadir el valor de distorsion al primer valor de reconstruccion. Opcionalmente, la unidad de aplicacion de distorsion puede configurarse para anadir el valor de distorsion al primer coeficiente, y la unidad de eliminacion de distorsion puede configurarse para sustraer el valor de distorsion del primer valor de reconstruccion.
La unidad de cuantificacion puede comprender ademas un generador de distorsion configurado para generar un bloque de valores de distorsion. Para facilitar la sincronizacion entre el codificador y el descodificador, los valores de distorsion pueden ser numeros seudoaleatorios. El bloque de valores de distorsion puede comprender una pluralidad
5
10
15
20
25
30
35
40
45
50
55
60
de valores de distorsion para la pluralidad de periodos de frecuencia, respectivamente. Como tal, el generador de distorsion puede configurarse para generar un valor de distorsion para cada uno de los coeficientes del bloque de coeficientes, que debe cuantificarse, independientemente de si un coeficiente en particular debe cuantificarse usando uno de los cuantificadores distorsionados o no. Esto es beneficioso para mantener la sincronicidad entre un generador de distorsion usado en un codificador y otro usado en un descodificador correspondiente.
El cuantificador escalar del cuantificador distorsionado tiene un tamano de paso de cuantificador A predeterminado. Como tal, el cuantificador escalar del cuantificador distorsionado puede ser un cuantificador uniforme. Los valores de distorsion pueden asumir valores de un intervalo de distorsion predeterminado. El intervalo de distorsion predeterminado puede tener una longitud igual o menor que el tamano de paso de cuantificador A predeterminado. Ademas, el bloque de valores de distorsion puede componerse de realizaciones de una variable aleatoria distribuida uniformemente dentro del intervalo de distorsion predeterminado. Por ejemplo, el generador de distorsion esta configurado para generar un bloque de valores de distorsion que estan extrafdos de un intervalo de distorsion normalizado (p. ej. [0, 1] o [-0,5, 0,5)). En ese sentido, la longitud de un intervalo de distorsion normalizado puede ser uno. El bloque de valores de distorsion puede a continuacion multiplicarse por el tamano de paso de cuantificador A predeterminado del cuantificador distorsionado concreto. De este modo, puede obtenerse una realizacion de distorsion adecuada para usarse con el cuantificador que tiene un tamano de paso A. En concreto, de este modo se obtiene un cuantificador que cumple las asf llamadas condiciones de Schuchman (L. Schuchman, "Dither signals and their effect on quantization noise", IEEE TCOM, pag. 162-165, dic. 1964).
El generador de distorsion puede configurarse para seleccionar una de M realizaciones de distorsion predeterminadas, donde M es un numero entero mayor que uno. Ademas, el generador de distorsion puede configurarse para generar el bloque de valores de distorsion basado en la realizacion de la distorsion seleccionada. En concreto, en algunas implementaciones, el numero de realizaciones de distorsion puede ser limitado. A modo de ejemplo, el numero M de realizaciones de distorsion predeterminadas puede ser 10, 5, 4 o menor. Esto puede ser beneficioso con respecto a la subsiguiente codificacion de entropfa de los indices de cuantificacion que se han obtenido usando el cuantificador o los cuantificadores distorsionados. En concreto, el uso de un numero limitado M de realizaciones de distorsion permite entrenar un codificador entropico para los indices de cuantificacion basandose en el numero limitado de realizaciones de distorsion. De este modo, puede usarse un codigo instantaneo (como, por ejemplo, la codificacion Huffman multidimensional), en lugar de codigo aritmetico, lo que puede ser ventajoso en terminos de complejidad operativa.
Un cuantificador no distorsionado del grupo de cuantificadores no distorsionados puede ser un cuantificador escalar con un tamano de paso de cuantificador uniforme predeterminado. En ese sentido, el grupo de cuantificadores no distorsionados puede consistir en cuantificadores deterministas, que no utilizan una distorsion (seudo)aleatoria.
Tal como se ha expuesto, el conjunto de cuantificadores puede ser ordenado, lo que puede resultar beneficioso, en vista de que el proceso de asignacion de bits es eficiente. En concreto, la ordenacion del conjunto de cuantificadores permite seleccionar un cuantificador del conjunto de cuantificadores basandose en un mdice de numeros enteros. El conjunto de cuantificadores puede ordenarse de tal modo que el incremento en SNR entre cuantificadores adyacentes sea, al menos aproximadamente, constante. Dicho de otro modo, una diferencia de SNR entre dos cuantificadores puede venir de la diferencia de las SNR asociadas a un par de cuantificadores adyacentes del conjunto de cuantificadores ordenado. Las diferencias de SNR para todos los pares de cuantificadores adyacentes de la pluralidad de cuantificadores ordenados pueden corresponder a un intervalo de diferencias de SNR predeterminado centrado en torno a una diferencia objetivo de sNr predeterminada. Una longitud del intervalo de diferencia de SNR predeterminado puede ser inferior al 10 % o el 5 % de la diferencia objetivo de SNR predeterminada. La diferencia objetivo de SNR puede fijarse de tal modo que un conjunto de cuantificadores relativamente pequeno pueda operar en una gama de SNR global relativamente grande. Por ejemplo, en aplicaciones tfpicas el conjunto de cuantificadores puede facilitar el funcionamiento dentro de un intervalo entre 0 dB SNR y 30 dB SNR. La diferencia objetivo de SNR predeterminada puede fijarse en 1,5 dB o 3 dB, permitiendo asf cubrir la gama de SNR global de 30 dB con un conjunto de cuantificadores que comprenden de 10 a 20 cuantificadores. En ese sentido, un incremento del mdice de numeros enteros de un cuantificador del conjunto de cuantificadores ordenados se traduce directamente en un incremento de SNR correspondiente. Esta relacion umvoca es beneficiosa para la implementacion de un proceso de asignacion de bits eficiente, que asigna un cuantificador con una SNR concreta a una banda de frecuencia concreta de acuerdo con una limitacion de velocidad de transferencia de bits dada.
La unidad de cuantificacion puede configurarse para determinar una indicacion de SNR indicativa de una SNR atribuida al primer coeficiente. La SNR atribuida al primer coeficiente puede determinarse usando un proceso de asignacion de velocidad (tambien referida como un proceso de asignacion de bits). Tal como se ha indicado antes, la SNR atribuida al primer coeficiente puede identificar directamente un cuantificador del conjunto de cuantificadores. En cuanto tal, la unidad de cuantificacion puede configurarse para seleccionar un primer cuantificador del conjunto de cuantificadores, basandose en la indicacion de SNR. Ademas, la unidad de cuantificacion puede configurarse para cuantificar el primer coeficiente usando el primer cuantificador. En concreto, la unidad de cuantificacion puede configurarse para determinar un primer mdice de cuantificacion para el primer coeficiente. El primer mdice de cuantificacion puede tener codificacion entropica y puede transmitirse como datos de coeficientes dentro de un tren
5
10
15
20
25
30
35
40
45
50
55
60
de bits a una unidad de cuantificacion inversa correspondiente (de un descodificador correspondiente). Ademas, la unidad de cuantificacion puede configurarse para determinar un primer coeficiente cuantificado a partir del primer coeficiente. El primer coeficiente cuantificado puede usarse dentro de un indicador del codificador.
El bloque de coeficientes puede asociarse a una envolvente de bloque espectral (p.ej. una envolvente de corriente o una envolvente de corriente cuantificada, tal como se describe mas adelante). En concreto, el bloque de coeficientes puede obtenerse suavizando un bloque de coeficientes de transformadas (derivado de un segmento de la senal de audio de entrada) usando la envolvente de bloque espectral. La envolvente de bloque espectral puede ser indicativa de una pluralidad de valores de energfa espectral para la pluralidad de penodos de frecuencia. En concreto, la envolvente de bloque espectral puede ser indicativa de la importancia relativa de los coeficientes del bloque de coeficientes. En cuanto tal, la envolvente de bloque espectral (o una envolvente derivada de la envolvente de bloque espectral, como la envolvente de la asignacion descrita mas adelante) puede usarse a efectos de asignacion de velocidad de transferencia. En concreto, la indicacion de SNR puede depender de la envolvente de bloque espectral. La indicacion de SNR puede depender ademas de un parametro de compensacion para compensar la envolvente de bloque espectral. Durante un proceso de asignacion de velocidad de transferencia, el parametro de compensacion puede incrementarse/reducirse hasta que los datos de coeficientes generados a partir del bloque de coeficientes cuantificados y codificados cumpla un lfmite de transferencia de bits predeterminado (p. ej. el parametro de compensacion puede seleccionarse lo mas grande posible de tal forma que el bloque de coeficientes codificado no exceda un numero de bits predeterminado). Por lo tanto, el parametro de compensacion puede depender de un numero predeterminado de bits disponible para codificar el bloque de coeficientes.
La senal SNR que es indicativa de la SNR atribuida al primer coeficiente puede determinarse compensando un valor derivado de la envolvente del bloque espectral asociada al penodo de frecuencia del primer coeficiente usando el parametro de compensacion. En concreto, puede usarse una formula de asignacion de bits tal como se describe en el presente documento para determinar la senal SNR. La formula de asignacion de bits puede ser una funcion de una envolvente de asignacion derivada de la envolvente del bloque espectral y del parametro de compensacion.
Como tal, la senal SNR puede depender de una envolvente de asignacion derivada de la envolvente de bloque espectral. La envolvente de asignacion puede tener una resolucion de asignacion (p. ej. una resolucion de 3 dB). La asignacion de resolucion preferiblemente depende de la diferencia de SNR entre cuantificadores adyacentes del conjunto de cuantificadores. En concreto, la resolucion de asignacion y la diferencia de SNR pueden corresponder a otro. En un ejemplo, la diferencia de SNR es 1,5 dB y la resolucion de asignacion es 3 dB. Al seleccionar la resolucion de asignacion y la diferencia de SNR correspondientes (p. ej. al seleccionar una resolucion de asignacion que sea el doble de la diferencia de SNR, en el dominio de decibelios), puede simplificarse el proceso de asignacion de bits y/o el proceso de seleccion de cuantificador (usando por ejemplo la formula de asignacion de bits descrita en el presente documento).
Puede asignarse la pluralidad de coeficientes del bloque de coeficientes a una pluralidad de bandas de frecuencias. Una banda de frecuencias puede comprender uno o mas penodos de frecuencia. En ese sentido, puede asignarse mas de uno de los coeficientes a la misma banda de frecuencias. Normalmente, el numero de penodos de frecuencia por banda de frecuencias se incrementa con la frecuencia. En concreto, la estructura de bandas de frecuencias (p. ej. el numero de penodos de frecuencia por banda de frecuencias) puede seguir consideraciones psicoacusticas. La unidad de cuantificacion puede configurarse para seleccionar un cuantificador del conjunto de cuantificadores para cada una de las bandas de frecuencias, de forma que los coeficientes que se asignen a una misma banda de frecuencias se cuantifiquen usando el mismo cuantificador. El cuantificador que se use para cuantificar una banda de frecuencias concreta puede determinarse basandose en uno o mas de los valores de energfa espectral de la envolvente de bloque espectral dentro de la banda de frecuencias concreta. El uso de una estructura de banda de frecuencias a efectos de cuantificacion puede ser beneficioso por lo que respecta al rendimiento psicoacustico del esquema de cuantificacion.
La unidad de cuantificacion puede configurarse para recibir informacion anexa indicativa de una propiedad del bloque de coeficientes. A modo de ejemplo, la informacion anexa puede incluir una ganancia predictiva determinada por un indicador incluido dentro de un codificador que incluye la unidad de cuantificacion. La ganancia predictiva puede ser indicativa del contenido tonal del bloque de coeficientes. Opcionalmente o ademas, la informacion anexa puede incluir un coeficiente de reflexion espectral derivado basado en el bloque de coeficientes y/o en la envolvente del bloque espectral. El coeficiente de reflexion espectral puede ser indicativo del contenido fricativo del bloque de coeficientes. La unidad de cuantificacion puede configurarse para extraer la informacion anexa de los datos, que esta disponible tanto en el codificador como en el descodificador, y comprende la unidad de cuantificacion en un descodificador correspondiente que incluye una unidad de cuantificacion inversa correspondiente. Como tal, la transmision de la informacion anexa desde el codificador al descodificador puede que no requiera bits adicionales.
La unidad de cuantificacion puede configurarse para determinar el conjunto de cuantificadores en dependencia de la informacion anexa. En concreto, una serie de cuantificadores distorsionados dentro del conjunto de cuantificadores puede depender de la informacion anexa. Y mas en concreto, el numero de cuantificadores distorsionados comprendidos en el conjunto de cuantificadores puede disminuir al disminuir la ganancia predictiva, y viceversa. Al hacer que el conjunto de cuantificadores dependa de la informacion anexa, puede mejorarse el rendimiento perceptual del esquema de cuantificacion.
5
10
15
20
25
30
35
40
45
50
55
La informacion anexa puede incluir un senalizador de conservacion de la varianza. El senalizador de conservacion de la varianza puede ser indicativo de como debe ajustarse una varianza del bloque de coeficientes. Dicho de otro modo, el senalizador de conservacion de la varianza puede ser indicativo del procesamiento que debe realizar el descodificador, que afecta a la varianza del bloque de coeficientes que debe ser reconstruido por el cuantificador.
A modo de ejemplo, puede determinarse que el conjunto de cuantificadores dependa del senalizador de conservacion de la varianza. En concreto, una ganancia de ruido del cuantificador de relleno de ruido puede depender del senalizador de conservacion de la varianza. Opcionalmente o ademas, el o los cuantificadores distorsionados pueden cubrir una gama de SNR y puede determinarse que la gama de SNR dependa del senalizador de conservacion de la varianza. Ademas, la post-ganancia y puede depender del senalizador de conservacion de la varianza. Opcionalmente o ademas, puede determinarse que la post-ganancia y del cuantificador distorsionado dependa de un parametro que es una funcion predefinida de la ganancia predictiva.
El senalizador de conservacion de la varianza puede usarse para adaptar el grado de ruidosidad de los codificadores a la calidad de la prediccion. A modo de ejemplo, puede determinarse que la post-ganancia y del cuantificador distorsionado dependa de un parametro que es una funcion predefinida de la ganancia predictiva. Opcionalmente o ademas, la post-ganancia y puede determinarse mediante una comparacion de una post-ganancia que preserva la varianza escalada mediante una funcion predefinida de la ganancia predictiva a una post-ganancia optima con error medio cuadratico y seleccionando la mayor de las dos ganancias. En concreto, la funcion predefinida de la ganancia predictiva puede reducir la varianza de la senal reconstruida a medida que se incrementa la ganancia predictiva. Como resultado de ello, puede mejorarse la calidad perceptual del codec.
Segun un aspecto mas, se describe una unidad de cuantificacion inversa (tambien referida en el presente documento como un descodificador espectral) configurada para descodificar un primer mdice de cuantificacion de un bloque de indices de cuantificacion. Dicho de otro modo, la unidad de cuantificacion inversa puede configurarse para determinar valores de reconstruccion para un bloque de coeficientes, basandose en los datos de coeficientes (p. ej. basandose en los indices de cuantificacion). Debe senalarse que todas las caractensticas y aspectos que se han descrito en el presente documento en el contexto de una unidad de cuantificacion son tambien aplicables a la unidad de cuantificacion inversa correspondiente. En concreto, esto se aplica a las caractensticas relacionadas con la estructura y el diseno del conjunto de cuantificadores, a la dependencia del conjunto de cuantificadores de la informacion anexa, al proceso de asignacion de bits, etc.
Los indices de cuantificacion pueden asociarse a un bloque de coeficientes que comprende una pluralidad de coeficientes para una pluralidad de penodos de frecuencia correspondientes. En concreto, los indices de cuantificacion pueden asociarse a coeficientes cuantificados (o valores de reconstruccion) de un bloque correspondiente de coeficientes cuantificados. Tal como se ha expuesto en el contexto de la unidad de cuantificacion correspondiente, el bloque de coeficientes cuantificados puede corresponder a o derivarse de un bloque de coeficientes residuales de prediccion. De modo mas generico, el bloque de coeficientes cuantificados puede haberse derivado de un bloque de coeficientes de transformadas, que se ha obtenido de un segmento de una senal de audio usando una transformada de dominio temporal a dominio frecuencial.
La unidad de cuantificacion inversa puede configurarse para proporcionar un conjunto de cuantificadores. Como se ha expuesto antes, el conjunto de cuantificadores puede redactarse o generarse basandose en informacion anexa que esta disponible en la unidad de cuantificacion inversa y en la unidad de cuantificacion correspondiente. El conjunto de cuantificadores comprende normalmente una pluralidad de cuantificadores diferentes asociados a una pluralidad de relaciones senal-ruido (SNR) diferentes, respectivamente. Ademas, el conjunto de cuantificadores puede ordenarse segun el aumento o disminucion de la SNR tal como se ha expuesto. El incremento o disminucion de la SNR entre cuantificadores adyacentes puede ser basicamente constante.
La pluralidad de cuantificadores diferentes puede incluir un cuantificador de relleno de ruido que corresponde al cuantificador de relleno de ruido de la unidad de cuantificacion. En un ejemplo preferido, la pluralidad de cuantificadores diferentes incluye un cuantificador de relleno de ruido unico. El cuantificador de relleno de ruido de la unidad de cuantificacion inversa esta configurado para proporcionar una reconstruccion del primer coeficiente usando una realizacion de una variable aleatoria generada de acuerdo con un modelo estadfstico prescrito. En ese sentido, debe senalarse que el bloque de indices de cuantificacion normalmente no incluye ningun mdice de cuantificacion para los coeficientes que deben reconstruirse usando el cuantificador de relleno de ruido. Por lo tanto, los coeficientes que deben reconstruirse usando el cuantificador de relleno de ruido estan asociados a una velocidad de transferencia de bits cero.
Ademas, la pluralidad de cuantificadores diferentes puede incluir uno o mas cuantificadores distorsionados. El o los cuantificadores distorsionados pueden incluir uno o mas cuantificadores escalares inversos respectivos configurados para asignar un primer valor de reconstruccion al primer mdice de cuantificacion. Ademas, el o los cuantificadores distorsionados pueden incluir una o mas unidades de eliminacion de distorsion respectivos configurados para determinar un primer coeficiente no distorsionado eliminando el valor de distorsion del primer valor de reconstruccion. El generador de distorsion de la unidad de cuantificacion inversa esta normalmente en sincroma con el generador de distorsion de la unidad de cuantificacion. Tal como se ha expuesto en el contexto de la unidad de
5
10
15
20
25
30
35
40
45
50
55
cuantificacion, el o los cuantificadores distorsionados preferiblemente aplican una post-ganancia de cuantificador, a fin de mejorar el rendimiento en MSE de los cuantificadores distorsionados.
Ademas, la pluralidad de cuantificadores puede incluir uno o mas cuantificadores distorsionados. Estos pueden incluir cuantificadores escalares uniformes respectivos que estan configurados para asignar valores de reconstruccion respectivos al primer mdice de cuantificacion (sin llevar a cabo una eliminacion de distorsion subsiguiente ni aplicar una post-ganancia de cuantificador).
Ademas, la unidad de cuantificacion inversa puede configurarse para determinar una senal SNR indicativa de una SNR atribuida a un primer coeficiente del bloque de coeficientes (o a un primer coeficiente cuantificado del bloque de coeficientes cuantificados). La senal SNR puede determinarse basandose en la envolvente de bloque espectral (que normalmente tambien esta disponible en el descodificador que incluye la unidad de cuantificacion inversa) y basandose en el parametro de compensacion (que se incluye normalmente en el tren de bits transmitido desde el codificador al descodificador). En concreto, la senal SNR puede ser indicativa de un numero de mdice de un cuantificador inverso (o un cuantificador) que debe seleccionarse del conjunto de cuantificadores. La unidad de cuantificacion inversa puede proceder seleccionando un primer cuantificador del conjunto de cuantificadores, basandose en la senal SNR. Tal como se ha expuesto en el contexto de la unidad de cuantificacion correspondiente, este proceso de seleccion puede implementarse de manera eficiente, al utilizar un conjunto de cuantificadores ordenado. Ademas, la unidad de cuantificacion inversa puede configurarse para determinar un primer coeficiente cuantificado para el primer coeficiente usando el primer cuantificador seleccionado.
Segun otro aspecto, se describe un codificador de audio basado en transformadas configurado para codificar una senal de audio en un tren de bits. El codificador puede incluir una unidad de cuantificacion configurada para determinar una pluralidad de indices de cuantificacion cuantificando una pluralidad de coeficientes de un bloque de coeficientes. La unidad de cuantificacion puede incluir uno o mas cuantificadores distorsionados. La unidad de cuantificacion puede incluir cualquiera de las caractensticas relacionadas de la unidad de cuantificacion que se describen en el presente documento.
La pluralidad de coeficientes puede asociarse a una pluralidad de penodos de frecuencia correspondientes. Como se ha expuesto antes, el bloque de coeficientes puede haberse obtenido de un segmento de la senal de audio. En concreto, el segmento de la senal de audio puede haberse transformado desde el dominio temporal al dominio frecuencial para producir un bloque de coeficientes de transformadas. El bloque de coeficientes que son cuantificados por la unidad de cuantificacion puede haberse derivado del bloque de coeficientes de transformadas.
El codificador puede incluir ademas un generador de distorsion para seleccionar una realizacion de distorsion. Ademas, el codificador puede incluir un codificador entropico configurado para seleccionar una palabra de codigo basada en un modelo estadfstico predefinido de un coeficiente de transformadas, en el que el modelo estadfstico (es decir, la funcion de distribucion de probabilidad) de los coeficientes de transformadas puede condicionarse ademas a la realizacion de la distorsion. Tal modelo estadfstico puede usarse entonces para calcular la probabilidad de un mdice de cuantificacion, especialmente una probabilidad del mdice de cuantificacion condicionado a la realizacion de la distorsion correspondiente al coeficiente. La probabilidad del mdice de cuantificacion puede usarse para generar una palabra de codigo binario que este asociada a este mdice de cuantificacion. Ademas, puede codificarse conjuntamente una secuencia de indices de cuantificacion basandose en sus probabilidades respectivas, donde las probabilidades respectivas pueden estar condicionadas a las realizaciones de distorsion respectivas. Por ejemplo, dicha codificacion conjunta de una secuencia de indices de cuantificacion puede llevarse a cabo mediante una codificacion aritmetica o codificacion de intervalo.
Segun otro aspecto, el codificador puede incluir un generador de distorsion configurado para seleccionar una realizacion de distorsion predeterminada de entre varias. La pluralidad de realizaciones de distorsion predeterminadas puede comprender M realizaciones de distorsion predeterminadas diferentes. Ademas, el generador de distorsion puede configurarse para generar una pluralidad de valores de distorsion para cuantificar la pluralidad de coeficientes, basandose en la realizacion de distorsion seleccionada. M puede ser un numero entero superior a uno. En concreto, el numero M de realizaciones de distorsion predeterminadas puede ser 10, 5, 4 o inferior. El generador de distorsion puede incluir cualquiera de las caractensticas relacionadas del generador de distorsion descritas en el presente documento.
Ademas, el codificador puede incluir un codificador entropico configurado para seleccionar una lista de codigos de entre M listas de codigos predeterminadas. El codificador entropico puede configurarse ademas para codificar entropicamente la pluralidad de indices de cuantificacion usando la lista de codigos seleccionada. Las M listas de codigos predeterminadas pueden asociarse a las M realizaciones de distorsion predeterminadas, respectivamente. En concreto, las M listas de codigos predeterminadas se pueden haber entrenado usando las M realizaciones de distorsion predeterminadas, respectivamente. Las M listas de codigos predeterminadas pueden incluir palabras de codigo Huffman de longitud variable.
El codificador entropico puede configurarse para seleccionar la lista de codigos asociada a la realizacion de distorsion seleccionada por el generador de distorsion. Dicho de otro modo, el codificador entropico puede seleccionar una lista de codigos para codificacion entropica, que se asocia a (p. ej. que ha sido entrenado para) la
5
10
15
20
25
30
35
40
45
50
55
realizacion de distorsion usada para generar la pluralidad de mdices de cuantificacion. De este modo, puede mejorarse (p. ej. al optimizarse) la ganancia de codificacion del codificador entropico, incluso al usar diferentes cuantificadores. Se ha observado por parte de los inventores que los beneficios perceptuales de utilizar diferentes cuantificadores pueden lograrse incluso al usar un numero relativamente pequeno M de realizaciones de distorsion. Consiguientemente, solo debe proporcionarse un numero relativamente pequeno M de listas de codigos para permitir una codificacion entropica optimizada.
Los datos de coeficientes indicativos de los indices de cuantificacion codificada entropica se insertan normalmente en el tren de bits, para su transmision o suministro al descodificador correspondiente.
Segun otro aspecto, se describe un descodificador de audio configurado para descodificar un tren de bits para proporcionar una senal de audio reconstruida. Debe senalarse que las caractensticas y aspectos descritos en el contexto del codificador de audio correspondiente son tambien aplicables al descodificador de audio. En concreto, los aspectos relativos al uso de un numero limitado M de realizaciones distorsionadas y un numero limitado M de listas de codigos correspondiente son tambien aplicables al descodificador de audio.
El descodificador de audio incluye un generador de distorsion configurado para seleccionar una de M realizaciones de distorsion predeterminadas. Las M realizaciones de distorsion predeterminadas son las mismas que las M realizaciones de distorsion predeterminadas usadas por el codificador correspondiente. Ademas, el generador de distorsion puede configurarse para generar una pluralidad de valores de distorsion basandose en la realizacion de distorsion seleccionada. M puede ser un numero entero mayor que uno. A modo de ejemplo, M puede encontrarse en la escala de 10 o 5. La pluralidad de valores de distorsion puede ser usada por una unidad de cuantificacion inversa que incluya uno o mas cuantificadores distorsionados que estan configurados para determinar una pluralidad correspondiente de coeficientes cuantificados basandose en una pluralidad correspondiente de indices de cuantificacion. El generador de distorsion y la unidad de cuantificacion inversa pueden incluir cualquiera de las caractensticas del generador de distorsion relacionado y la unidad de cuantificacion inversa relacionada descritas en el presente documento, respectivamente.
Por otra parte, el descodificador de audio puede incluir un descodificador entropico configurado para seleccionar una lista de codigos a partir de M listas de codigos predeterminadas. Las M listas de codigos predeterminadas son las mismas que las listas de codigos usadas por el codificador correspondiente. Ademas, el descodificador entropico puede configurarse para descodificar entropicamente datos de coeficientes del tren de bits usando la lista de codigos seleccionada, para proporcionar la pluralidad de indices de cuantificacion. Las M listas de codigos predeterminadas pueden asociarse a las realizaciones de distorsion predeterminadas M, respectivamente. El descodificador entropico puede configurarse para seleccionar la lista de codigos asociada a la realizacion de distorsion seleccionada por el generador de distorsion. La senal de audio reconstruida se determina basandose en la pluralidad de coeficientes cuantificados.
Segun otro aspecto, se describe un codificador vocal basado en transformadas configurado para codificar una senal vocal en un tren de bits. Tal como se ha indicado antes, el codificador puede incluir cualquiera de las caractensticas y componentes relacionados con el codificador que se han descrito en el presente documento. En concreto, el codificador puede incluir una unidad de estructuracion configurada para recibir una pluralidad de bloques secuenciales de coeficientes de transformadas. La pluralidad de los bloques secuenciales comprende un bloque actual y uno o mas bloques anteriores. Por otra parte, la pluralidad de bloques secuenciales es indicativa de muestras de la senal vocal. En concreto, la pluralidad de bloques secuenciales puede haberse determinado usando una transformada de dominio temporal a dominio frecuencial, como la Transformada modificada de coseno discreto (MDCT). Como tal, un bloque de coeficientes de transformadas puede comprender coeficientes de MDCT. El numero de coeficientes de transformadas puede ser limitado. A modo de ejemplo, un bloque de coeficientes de transformadas puede comprender 256 coeficientes de transformadas en 256 periodos de frecuencia.
Ademas, el codificador vocal puede incluir una unidad de nivelacion configurada para determinar un bloque actual de coeficientes de transformadas planas suavizando el correspondiente bloque actual de coeficientes de transformadas usando una envolvente de bloque actual (espectral) correspondiente (p. ej. la envolvente ajustada correspondiente). Por otra parte, el codificador vocal puede incluir un predictor configurado para predecir un bloque actual de coeficientes de transformadas planas estimados basandose en uno o mas parametros del predictor. Ademas, el codificador vocal puede incluir una unidad diferencial configurada para determinar un bloque actual de coeficientes de error de prediccion basandose en el bloque actual de coeficientes de transformadas planas y en el bloque actual de coeficientes de transformadas planas estimados.
El predictor puede configurarse para determinar el bloque actual de coeficientes de transformadas planas estimados aplicando un criterio de error medio cuadratico ponderado (p. ej. minimizando un criterio de error medio cuadratico ponderado). El criterio de error medio cuadratico ponderado puede tener en cuenta la actual envolvente de bloque o alguna funcion predefinida de la actual envolvente de bloque como ponderaciones. En el presente documento, se describe diversos modos diferentes de determinar la ganancia del predictor aplicando un criterio de error cuadratico con medias ponderadas.
5
10
15
20
25
30
35
40
45
50
55
60
Ademas, el codificador vocal puede incluir una unidad de cuantificacion configurada para cuantificar coeficientes derivados del bloque actual de coeficientes de error de prediccion, usando un conjunto de cuantificadores predeterminados. La unidad de cuantificacion puede incluir cualquiera de las caractensticas relacionadas con la cuantificacion que se describen en el presente documento. En concreto, la unidad de cuantificacion puede configurarse para determinar datos de coeficientes para el tren de datos basandose en los coeficientes cuantificados. En ese sentido, los datos de coeficientes pueden ser indicativos de una version cuantificada del bloque actual de coeficientes de error de prediccion.
El codificador vocal basado en transformadas puede incluir ademas una unidad de escalado configurada para determinar un bloque actual de coeficientes residuales de prediccion reescalados (tambien referido como un bloque de coeficientes de error reescalados) basandose en el bloque actual de coeficientes de error de prediccion aplicando una o mas reglas de escalado. El bloque actual de coeficiente de error reescalado puede determinarse como la o las reglas de escalado de modo que en promedio una varianza de los coeficientes de error reescalados del bloque actual de coeficientes de error reescalados sea mayor que una varianza de los coeficientes de error de prediccion del bloque actual de coeficientes de error de prediccion. En concreto, la o las reglas de escalado pueden ser tales que la varianza de los coeficientes de error de prediccion este mas cerca de la unidad para todos los periodos de frecuencia o bandas de frecuencias. La unidad de cuantificacion puede configurarse para cuantificar los coeficientes residuales de prediccion de error reescalados del bloque actual de coeficientes de error reescalados, con el fin de proporcionar los datos de coeficientes (es decir, indices de cuantificacion para los coeficientes).
El bloque actual de coeficientes de error de prediccion comprende normalmente una pluralidad de coeficientes de error de prediccion para la pluralidad de periodos de frecuencia correspondiente. Las ganancias de escalado que aplica la unidad de escalado a los coeficientes de error de prediccion de acuerdo con la regla de escalado pueden depender de los periodos de frecuencia de los coeficientes de error de prediccion respectivos. Por otra parte, la regla de escalado puede depender del parametro o los parametros del predictor, p. ej. de la ganancia del predictor. Opcionalmente o ademas, la regla de escalado puede depender de la actual envolvente de bloque. En el presente documento se describe diversos modos diferentes de determinar una regla de escalado dependiente del periodo de frecuencia.
El codificador vocal basado en transformadas puede incluir ademas una unidad de asignacion de bits configurada para determinar un vector de asignacion basandose en la actual envolvente de bloque. El vector de asignacion puede ser indicativo de un primer cuantificador del conjunto de cuantificadores que debe usarse para cuantificar un primer coeficiente derivado del bloque actual de coeficientes de error de prediccion. En concreto, el vector de asignacion puede ser indicativo de los cuantificadores que deben usarse para cuantificar todos los coeficientes derivados del bloque actual de coeficientes de error de prediccion, respectivamente. A modo de ejemplo, el vector de asignacion puede ser indicativo de un cuantificador diferente que debe usarse para cada banda de frecuencias (l = 1, ..., L).
Dicho de otro modo, la unidad de asignacion de bits puede configurarse para determinar un vector de asignacion basandose en la actual envolvente de bloque y partiendo de una limitacion de velocidad de transferencia de bits maxima. La unidad de asignacion de bits puede configurarse para determinar el vector de asignacion basandose tambien en la regla o las reglas de escalado. La dimensionalidad del vector de asignacion de velocidad es normalmente igual al numero L de bandas de frecuencias. Una entrada del vector de asignacion puede ser indicativa de un mdice de un cuantificador del conjunto de cuantificadores que debe usarse para cuantificar los coeficientes pertenecientes a una banda de frecuencias asociada a la respectiva entrada del vector de asignacion de velocidad. En concreto, el vector de asignacion puede ser indicativo de los cuantificadores que deben usarse para cuantificar todos los coeficientes derivados del bloque actual de coeficientes de error de prediccion, respectivamente.
La unidad de asignacion de bits puede configurarse para determinar el vector de asignacion de tal modo que el dato de coeficiente para el bloque actual de coeficientes de error de prediccion no exceda un numero de bits predeterminado. Ademas, la unidad de asignacion de bits puede configurarse para determinar un parametro de compensacion indicativo de una compensacion que debe aplicarse a una envolvente de asignacion derivada de la actual envolvente de bloque (p. ej. derivada de una envolvente ajustada actual). El parametro de compensacion puede incluirse en el tren de bits para permitir al descodificador correspondiente identificar los cuantificadores que se han usado para determinar los datos de coeficiente.
El codificador vocal basado en transformadas puede incluir ademas un codificador entropico configurado para codificar entropicamente los indices de cuantificacion asociados a los coeficientes cuantificados. El codificador entropico puede configurarse para codificar los indices de cuantificacion usando un codificador aritmetico. Opcionalmente, el codificador entropico puede configurarse para codificar los indices de cuantificacion usando una pluralidad de listas de codigos predeterminadas M (tal como se describe en el presente documento).
Segun otro aspecto, se describe un descodificador vocal basado en transformadas configurado para descodificar un tren de bits a fin de proporcionar una senal vocal reconstruida. El descodificador vocal puede incluir cualquiera de las caractensticas y/o componentes descritos en el presente documento. En concreto, el descodificador puede incluir un predictor configurado para determinar un bloque actual de coeficientes de transformadas planas estimados basandose en uno o mas bloques anteriores de coeficientes de transformadas reconstruidos y en uno o mas
5
10
15
20
25
30
35
40
45
50
55
60
parametros del predictor derivados del tren de bits. Ademas, el descodificador vocal puede incluir una unidad de cuantificacion inversa configurada para determinar un bloque actual de coeficientes de error de prediccion cuantificados (o una version reescalada del mismo) basandose en datos de coeficiente comprendidos dentro del tren de bits, usando un conjunto de cuantificadores. En concreto, la unidad de cuantificacion inversa puede emplear un conjunto de cuantificadores (inversos) correspondiente al conjunto de cuantificadores usados por el codificador vocal correspondiente.
La unidad de cuantificacion inversa puede configurarse para determinar que el conjunto de cuantificadores (y/o el conjunto de cuantificadores inversos correspondiente) dependa de informacion anexa derivada del tren de bits recibido. En concreto, la unidad de cuantificacion inversa puede efectuar el mismo proceso de seleccion para el conjunto de cuantificadores que la unidad de cuantificacion del codificador vocal correspondiente. Al hacer que el conjunto de cuantificadores dependa de la informacion anexa, la calidad perceptual de la senal vocal reconstruida puede mejorarse.
Segun otro aspecto, se describe un metodo para cuantificar un primer coeficiente de un bloque de coeficientes. El bloque de coeficientes comprende una pluralidad de coeficientes para una pluralidad de penodos de frecuencia correspondientes. El metodo puede incluir la prestacion de un conjunto de cuantificadores, en el que el conjunto de cuantificadores comprende una pluralidad de cuantificadores diferentes asociados a una pluralidad de relaciones senal-ruido (SNR) diferentes, respectivamente. La pluralidad de cuantificadores diferentes puede comprender un cuantificador de relleno de ruido, uno mas cuantificadores distorsionados, y uno mas cuantificadores no distorsionados. El metodo puede incluir ademas la determinacion de una senal SNR indicativa de una SNR atribuida al primer coeficiente. Ademas, el metodo puede incluir la seleccion de un primer cuantificador del conjunto de cuantificadores, basandose en la senal SNR, y la cuantificacion del primer coeficiente usando el primer cuantificador.
Segun otro aspecto, se describe un metodo para descuantificar indices de cuantificacion. Dicho de otro modo, el metodo puede estar dirigido a determinar valores de reconstruccion (tambien referidos como coeficientes cuantificados) para un bloque de coeficientes, que se han cuantificado usando un metodo de cuantificacion correspondiente. Un valor de reconstruccion puede determinarse basandose en un mdice de cuantificacion. Debe senalarse, no obstante, que algunos de los coeficientes del bloque de coeficientes pueden haberse cuantificado usando un cuantificador de relleno de ruido. En este caso, los valores de reconstruccion para estos coeficientes pueden determinarse de forma independiente de un mdice de cuantificacion.
Como se ha senalado antes, los indices de cuantificacion se asocian a un bloque de coeficientes que comprende una pluralidad de coeficientes para una pluralidad de penodos de frecuencia correspondientes. En concreto, los indices de cuantificacion pueden corresponder en una relacion umvoca a aquellos coeficientes del bloque de coeficientes que no se han cuantificado usando el cuantificador de relleno de ruido. El metodo puede incluir la prestacion de un conjunto de cuantificadores (o cuantificadores inversos). El conjunto de cuantificadores puede comprender una pluralidad de cuantificadores diferentes asociados a una pluralidad de relaciones senal-ruido (SNR) diferentes, respectivamente. La pluralidad de cuantificadores diferentes puede incluir un cuantificador de relleno de ruido, uno o mas cuantificadores distorsionados, y/o uno o mas cuantificadores no distorsionados. El metodo puede incluir la determinacion de una senal SNR indicativa de una SNR atribuida a un primer coeficiente del bloque de coeficientes. El metodo puede continuar seleccionando un primer cuantificador del conjunto de cuantificadores, basandose en la senal sNr, y determinando un primer coeficiente cuantificado (es decir, un valor de reconstruccion) para el primer coeficiente del bloque de coeficientes.
Segun otro aspecto, se describe un metodo para codificar una senal de audio en un tren de bits. El metodo incluye determinar una pluralidad de indices de cuantificacion cuantificando una pluralidad de coeficientes de un bloque de coeficientes usando un cuantificador distorsionado. La pluralidad de coeficientes puede asociarse a una pluralidad de penodos de frecuencia correspondientes. El bloque de coeficientes puede derivarse de la senal de audio. El metodo puede incluir seleccionar una de M realizaciones de distorsion predeterminadas, y generar una pluralidad de valores de distorsion para cuantificar la pluralidad de coeficientes, basandose en la realizacion de distorsion seleccionada; en el que M es un numero entero mayor que uno. Ademas, el metodo puede incluir seleccionar una lista de codigos a partir de M listas de codigos predeterminadas, y codificar entropicamente la pluralidad de indices de cuantificacion usando la lista de codigos seleccionada. Las M listas de codigos predeterminadas pueden asociarse a las M realizaciones de distorsion predeterminadas, respectivamente, y la lista de codigos seleccionada puede asociarse a la realizacion de distorsion seleccionada. Ademas, el metodo puede incluir la insercion de datos de coeficientes indicativos de los indices de cuantificacion codificados entropicamente en el tren de bits.
Segun otro aspecto, se describe un metodo para descodificar un tren de bits a fin de proporcionar una senal de audio reconstruida. El metodo puede incluir seleccionar una de M realizaciones de distorsion predeterminadas, y generar una pluralidad de valores de distorsion basandose en la realizacion de distorsion seleccionada; en el que M es un numero entero mayor que uno. La pluralidad de valores de distorsion puede ser usada por una unidad de cuantificacion inversa que incluye un cuantificador distorsionado para determinar una pluralidad de coeficientes cuantificados correspondiente basandose en una pluralidad de indices de cuantificacion correspondiente. Como tal, el metodo puede incluir determinar la pluralidad de coeficientes cuantificados usando un cuantificador distorsionado (inverso). Ademas, el metodo puede incluir seleccionar una lista de codigos de M listas de codigos predeterminadas, y descodificar entropicamente datos de coeficientes del tren de datos usando la lista de codigos seleccionada, para
5
10
15
20
25
30
35
40
45
50
proporcionar la pluralidad de mdices de cuantificacion. Las M listas de codigos predeterminadas pueden asociarse a las M realizaciones de distorsion predeterminadas, respectivamente, y la lista de codigos seleccionada puede asociarse a la realizacion de distorsion seleccionada. Ademas, el metodo puede incluir determinar la senal de audio reconstruida basandose en la pluralidad de coeficientes cuantificados.
Segun otro aspecto, se describe un metodo para codificar una senal vocal en un tren de bits. El metodo puede incluir la recepcion de una pluralidad de bloques secuenciales de coeficientes de transformadas que incluye un bloque actual y uno o mas bloques anteriores. La pluralidad de bloques secuenciales puede ser indicativa de muestras de la senal vocal. Ademas, el metodo puede incluir la determinacion de un bloque actual de coeficientes de transformadas estimados basandose en uno o mas bloques anteriores de coeficientes de transformadas reconstruidos y en un parametro del predictor. El bloque o los bloques anteriores de coeficientes de transformadas reconstruidos puede haberse derivado del bloque o los bloques anteriores de coeficientes de transformadas. El metodo puede continuar determinando un bloque actual de coeficientes de error de prediccion basandose en el bloque actual de coeficientes de transformadas y en el bloque actual de coeficientes de transformadas estimados. Ademas el metodo puede incluir la cuantificacion de coeficientes derivados del bloque actual de coeficientes de error de prediccion, usando un conjunto de cuantificadores. El conjunto de cuantificadores puede tener algunas de las caractensticas descritas en el presente documento. Por otra parte, el metodo puede incluir la determinacion de datos de coeficientes para el tren de bits basandose en los coeficientes cuantificados.
Segun otro aspecto, se describe un metodo para descodificar un tren de bits para proporcionar una senal vocal reconstruida. El metodo puede incluir determinar un bloque actual de coeficientes de transformadas estimados basandose en uno o mas bloques anteriores de coeficientes de transformadas reconstruidos y en un parametro del predictor derivado del tren de bits. Por otra parte, el metodo puede incluir determinar un bloque actual de coeficientes residuales de prediccion cuantificados basandose en datos de coeficientes incluidos en el tren de bits, usando un conjunto de cuantificadores. El conjunto de cuantificadores puede tener cualquiera de las caractensticas descritas en el presente documento. El metodo puede continuar determinando un bloque actual de coeficientes de transformadas reconstruidos basandose en el bloque actual de coeficientes de transformadas estimados y en el bloque actual de coeficientes de error de prediccion cuantificados. La senal vocal reconstruida puede determinarse basandose en el bloque actual de coeficientes de transformadas reconstruidos.
Segun otro aspecto, se describe un programa informatico. El programa informatico puede adaptarse para ser ejecutado en un procesador y para llevar a cabo los pasos del metodo descritos en el presente documento al ejecutarse en el procesador.
Segun otro aspecto, se describe un medio de almacenamiento. El medio de almacenamiento puede incluir un programa informatico adaptado para ser ejecutado en un procesador y para llevar a cabo los pasos del metodo descritos en el presente documento al ejecutarse en el procesador.
Segun otro aspecto, se describe un programa de ordenador. Dicho programa de ordenador puede comprender instrucciones ejecutables para llevar a cabo los pasos del metodo descritos en el presente documento al ejecutarse en un ordenador.
Debe senalarse que los metodos y sistemas, incluidos sus realizaciones preferidas tal como se describen en la presente solicitud de patente, pueden usarse de forma independiente o en combinacion con los otros metodos y sistemas descritos en este documento. Ademas, todos los aspectos de los metodos y sistemas descritos en la presente solicitud de patente pueden combinarse de diversos modos. En concreto, las funciones descritas en las reivindicaciones pueden combinarse entre sf de manera arbitraria.
Breve descripcion de las figuras
Se explica a continuacion la invencion de forma ejemplificativa haciendo referencia a los dibujos de acompanamiento, en la que
la figura 1a muestra un diagrama de bloque de un ejemplo de codificador de audio que proporciona un tren de bits a una velocidad de transferencia de bits constante;
la figura 1b muestra un diagrama de bloque de un ejemplo de codificador de audio que proporciona un tren de bits a una velocidad de transferencia de bits variable;
la figura 2 ilustra la generacion de una envolvente tipo basada en una pluralidad de bloques de coeficientes de transformadas;
la figura 3a ilustra ejemplos de envolventes de bloques de coeficientes de transformadas; la figura 3b ilustra la determinacion de un ejemplo de envolvente interpolada; la figura 4 ilustra ejemplos de conjuntos de cuantificadores;
5
10
15
20
25
30
35
40
45
50
la figura 5a muestra un diagrama de bloque de un ejemplo de descodificador de audio;
la figura 5b muestra un diagrama de bloque de un ejemplo de descodificador de envolvente del descodificador de audio de la figura 5a;
la figura 5c muestra un diagrama de bloque de un ejemplo de predictor de subbandas del descodificador de audio de la figura 5a;
la figura 5d muestra un diagrama de bloque de un ejemplo de descodificador de espectros del descodificador de audio de la figura 5a;
la figura 6a muestra un diagrama de bloque de un ejemplo de conjunto de cuantificadores admisibles; la figura 6b muestra un diagrama de bloque de un ejemplo de cuantificador distorsionado;
la figura 6c ilustra un ejemplo de seleccion de cuantificadores basada en el espectro de un bloque de coeficientes de transformadas;
la figura 7 ilustra un ejemplo de esquema para determinar un conjunto de cuantificadores en un codificador y en un descodificador correspondiente;
la figura 8 muestra un diagrama de bloque de un ejemplo de esquema para descodificar indices de cuantificacion codificados entropicamente que se han determinado usando un cuantificador distorsionado;
las figuras 9a a 9c muestran ejemplos de resultados experimentales; y
la figura 10 ilustra un ejemplo de proceso de asignacion de bits.
Descripcion detallada
Tal como se ha expuesto en la seccion de antecedentes, es deseable disponer de un codec de audio basado en transformadas que tenga ganancias de codificacion relativamente altas para senales vocales. Dicho codec de audio basado en transformadas puede denominarse un codec vocal basado en transformadas o un codec de voz basado en transformadas. Un codec vocal basado en transformadas puede combinarse convenientemente con un codec de audio basado en transformadas generico como puede ser AAC o HE-AAC, ya que tambien opera en el dominio de las transformadas. Por otra parte, la clasificacion de un segmento (p. ej. una unidad de informacion) de una senal de audio de entrada en voz o no voz, y la subsiguiente conmutacion entre el codec de audio generico y el codec vocal espedfico puede simplificarse, debido a que ambos codecs operan en el dominio de las transformadas.
La figura 1a muestra un diagrama de bloque de un ejemplo de codificador vocal basado en transformadas 100. El codificador 100 recibe como entrada un bloque 131 de coeficientes de transformadas (referido tambien como una unidad de codificacion). El bloque 131 de coeficientes de transformadas puede haberse obtenido por una unidad de transformadas configurado para transformar una secuencia de muestras de la senal de audio de entrada del dominio temporal en el dominio de las transformadas. La unidad de transformadas puede configurarse para llevar a cabo un MDCT. La unidad de transformadas puede formar parte de un codec de audio generico como AAC o HE-AAC. Tal codec de audio generico puede hacer uso de diferentes tamanos de bloque, p. ej. un bloque largo y un bloque corto. Como ejemplos de tamanos de bloque puede citarse 1024 muestras para un bloque largo y 256 muestras para un bloque corto. Partiendo de una velocidad de muestreo de 44,1 kHz y un solapamiento del 50 %, un bloque largo cubre aproximadamente 20 m de la senal de audio de entrada y un bloque corto aproximadamente 5 m de la senal de audio de entrada. Los bloques largos se suelen usar para segmentos fijos de la senal de audio de entrada y los bloques cortos para segmentos provisionales de la senal de audio de entrada.
Puede considerarse que las senales vocales son fijas en segmentos temporales de unos 20 m. En concreto, la envolvente espectral de una senal vocal puede considerarse que es fija en segmentos temporales de unos 20 m. Para poder extraer estadfsticas significativas en el dominio de las transformadas para tales segmentos de 20 m, puede ser util dotar al codificador 100 vocal basado en transformadas de bloques cortos 131 de coeficientes de transformadas (con una longitud de p. ej. 5 m). De este modo, puede usarse una pluralidad de bloques cortos 131 para extraer estadfsticas sobre segmentos temporales de p. ej. 20 m (p. ej. el segmento temporal de un bloque largo). Esto ademas tiene la ventaja de ofrecer una resolucion temporal adecuada para las senales vocales.
Por consiguiente, la unidad de transformadas puede configurarse para proporcionar bloques cortos 131 de coeficientes de transformadas, si un segmento actual de la senal de audio de entrada se clasifica como habla. El codificador 100 puede incluir una unidad de estructuracion 101 configurada para extraer una pluralidad de bloques 131 de coeficientes de transformadas, referida como un conjunto 132 de bloques 131. El conjunto 132 de bloques puede referirse tambien como una unidad de informacion. A modo de ejemplo, el conjunto 132 de bloques 131 puede comprender cuatro bloques cortos de 256 coeficientes de transformadas, cubriendo por lo tanto aproximadamente un segmento de 20 m de la senal de audio de entrada.
5
10
15
20
25
30
35
40
45
50
55
60
El conjunto 132 de bloques puede proporcionarse para una unidad 102 de estimacion de envolventes. La unidad 102 de estimacion de envolventes puede configurarse para determinar una envolvente 133 basandose en el conjunto
132 de bloques. La envolvente 133 puede basarse en valores de media cuadratica de coeficientes de transformadas correspondientes de la pluralidad de bloques 131 comprendidos en el conjunto 132 de bloques. Un bloque 131 proporciona normalmente una pluralidad de coeficientes de transformadas (p. ej. 256 coeficientes de transformadas) en una pluralidad correspondiente de periodos 301 de frecuencia (vease la fig. 3a). La pluralidad de periodos 301 de frecuencia puede agruparse en una pluralidad de bandas 302 de frecuencias. La pluralidad de bandas 302 de frecuencias puede seleccionarse basandose en consideraciones psicoacusticas. A modo de ejemplo, los periodos 301 de frecuencia pueden agruparse en bandas 302 de frecuencias de acuerdo con una escala logantmica o escala de Bark. La envolvente 134 que se ha determinado basandose en un conjunto 132 actual de bloques puede comprender una pluralidad de valores energeticos para la pluralidad de bandas 302 de frecuencias, respectivamente. Puede determinarse un valor energetico concreto para una banda 302 de frecuencias basandose en los coeficientes de transformadas de los bloques 131 del conjunto 132, que corresponde a bandas 301 de frecuencias que se encuentran dentro de la banda 302 de frecuencias concreta. El valor energetico concreto puede determinarse basandose en el valor de media cuadratica de estos coeficientes de transformadas. En cuanto tal, una envolvente 133 para un conjunto 132 actual de bloques (referido como una envolvente 133 actual) puede ser indicativa de una envolvente media de los bloques 131 de coeficientes de transformadas comprendidos en el conjunto 132 actual de bloques, o puede ser indicativa de una envolvente media de bloques 132 de coeficientes de transformadas usados para determinar la envolvente 133.
Debe senalarse que la envolvente 133 actual puede determinarse basandose en uno o mas bloques 131 adicionales de coeficientes de transformadas adyacentes al conjunto 132 actual de bloques. Esto se ilustra en la fig. 2, donde la envolvente 133 actual (indicada por la envolvente 134 actual cuantificada) se determina basandose en los bloques
131 del conjunto 132 actual de bloques y basandose en el bloque 201 del conjunto de bloques que precede al conjunto 132 actual de bloques. En el ejemplo ilustrado, la envolvente 133 actual se determina basandose en cinco bloques 131. Al tener en cuenta bloques adyacentes a la hora de determinar la envolvente133 actual, puede garantizarse una continuidad de las envolventes de conjuntos 132 adyacentes de bloques.
Al determinarse la envolvente 133 actual, puede ponderarse los coeficientes de transformadas de los diferentes bloques 131. En concreto, los bloques 201, 202 mas externos que se tienen en cuenta para determinar la envolvente
133 actual pueden tener un peso inferior a los bloques 131 restantes. A modo de ejemplo, los coeficientes de transformadas de los bloques 201, 202 mas externos pueden ponderarse con 0,5, en el que los coeficientes de transformadas de los otros bloques 131 pueden ponderarse con 1.
Debe senalarse que de modo similar a considerar los bloques 201 de un conjunto 132 precedente de bloques, puede considerarse uno o mas bloques (asf llamados bloques prospectivos) de un conjunto 132 de bloques directamente siguientes para determinar la envolvente 133 actual.
Los valores energeticos de la envolvente 133 actual pueden representarse en una escala logantmica (p. ej. en una escala de decibelios). La envolvente 133 actual puede proporcionarse para una unidad 103 de cuantificacion de envolventes que este configurada para cuantificar los valores energeticos de la envolvente 133 actual. La unidad 103 de cuantificacion de envolventes puede proporcionar una resolucion de cuantificador predeterminado, p. ej. una resolucion de 3 dB. Los indices de cuantificacion de la envolvente 133 pueden proporcionarse como datos 161 de envolvente dentro de un tren de bits generado por el codificador 100. Ademas, la envolvente 134 cuantificada, es decir, la envolvente que comprende los valores energeticos cuantificados de la envolvente 133, puede proporcionarse a una unidad 104 de interpolacion.
La unidad 104 de interpolacion esta configurada para determinar una envolvente para cada bloque 131 del conjunto
132 actual de bloques basandose en la envolvente 134 actual cuantificada y en la envolvente 135 anterior cuantificada (que se ha determinado para el conjunto 132 de bloques que precede directamente al conjunto 132 actual de bloques). El funcionamiento de la unidad 104 de interpolacion se ilustra en las figuras 2, 3a y 3b. La figura 2 muestra una secuencia de bloques 131 de coeficientes de transformadas. La secuencia de bloques 131 se agrupa en conjuntos 132 sucesivos de bloques, en la que cada conjunto 132 de bloques se usa para determinar una envolvente cuantificada, p. ej. la envolvente 134 actual cuantificada y la envolvente 135 anterior cuantificada. La figura 3a muestra ejemplos de una envolvente 135 anterior cuantificada y una envolvente 134 actual cuantificada. Como se ha indicado antes, las envolventes pueden ser indicativas de energfa 303 espectral (p. ej. en una escala de decibelios). Los valores 303 energeticos correspondientes de la envolvente 135 anterior cuantificada y de la envolvente 134 actual cuantificada para la misma banda 302 de frecuencias pueden interpolarse (p. ej. usando interpolacion lineal) para determinar una envolvente 136 interpolada. Dicho de otro modo, los valores 303 energeticos de una banda 302 de frecuencias concreta pueden interpolarse para proporcionar el valor 303 energetico de la envolvente 136 interpolada dentro de la banda 302 de frecuencias concreta.
Debe senalarse que el conjunto de bloques para los que se ha determinado y aplicado las envolventes 136 interpoladas puede diferir del conjunto 132 actual de bloques, basandose en cual de las envolventes 134 actuales cuantificadas se determina. Esto se ilustra en la fig. 2, que muestra un conjunto 332 de bloques desplazado, que esta desplazado en comparacion con el conjunto 132 actual de bloques y que comprende los bloques 3 y 4 del conjunto 132 anterior de bloques (indicado con los numeros de referencia 203 y 201, respectivamente) y los bloques
5
10
15
20
25
30
35
40
45
50
55
60
1 y 2 del conjunto 132 actual de bloques (indicado con los numeros de referencia 204 y 205, respectivamente). De hecho, las envolventes 136 interpoladas determinadas en funcion de la envolvente 134 actual cuantificada y de la envolvente 135 anterior cuantificada pueden tener mayor relevancia para los bloques del conjunto 332 de bloques desplazado, en comparacion con la relevancia de los bloques del conjunto 132 de bloques actual.
Por consiguiente, las envolventes 136 interpoladas mostradas en la figura 3b pueden usarse para nivelar los bloques 131 del conjunto 332 de bloques desplazado. Esto se muestra en la figura 3b en combinacion con la figura 2. Puede verse que la envolvente 341 interpolada de la figura 3b puede aplicarse al bloque 203 de la figura 2, que la envolvente 342 interpolada de la figura 3b puede aplicarse al bloque 201 de la figura 2, que la envolvente 343 interpolada de la figura 3b puede aplicarse al bloque 204 de la figura 2, y que la envolvente 344 interpolada de la figura 3b (que en el ejemplo ilustrado corresponde a la envolvente 136 actual cuantificada) puede aplicarse al bloque 205 de la figura 2. Como tal, el conjunto 132 de bloques para determinar la envolvente 134 actual cuantificada puede diferir del conjunto 332 de bloques desplazado para el que se determina las envolventes 136 interpoladas y al que se aplica las envolventes 136 interpoladas (a efectos de nivelacion). En concreto, la envolvente 134 actual cuantificada puede determinarse usando un determinado registro de anticipacion con respecto a los bloques 203, 201, 204, 205 del conjunto 332 de bloques desplazado, que deben nivelarse usando la envolvente 134 actual cuantificada. Esto es beneficioso desde el punto de vista de la continuidad.
La interpolacion de valores 303 energeticos para determinar envolventes 136 interpoladas se ilustra en la figura 3b. Puede verse que mediante interpolacion entre un valor energetico de la envolvente 135 anterior cuantificada al valor energetico correspondiente de la envolvente 134 actual cuantificada pueden determinarse valores energeticos de las envolventes 136 interpoladas para los bloques 131 del conjunto 332 de bloques desplazado. En concreto, para cada bloque 131 del conjunto 332 desplazado puede determinarse una envolvente 136 interpolada, proporcionando por lo tanto una pluralidad de envolventes 136 interpoladas para la pluralidad de bloques 203, 201, 204, 205 del conjunto 332 de bloques desplazado. La envolvente 136 interpolada de un bloque 131 de coeficientes de transformadas (p. ej. cualquiera de los bloques 203, 201, 204, 205 del conjunto 332 de bloques desplazado) puede usarse para codificar el bloque 131 de coeficientes de transformadas. Debe senalarse que los indices 161 de cuantificacion de la envolvente 133 actual se proporcionan a un descodificador correspondiente dentro del tren de bits. Consiguientemente, el descodificador correspondiente puede configurarse para determinar la pluralidad de envolventes 136 interpoladas de manera analoga a la unidad de interpolacion 104 del codificador 100.
La unidad 101 de estructuracion, la unidad 103 de estimacion de envolvente, la unidad 103 de cuantificacion de envolventes, y la unidad 104 de interpolacion operan en un conjunto de bloques (es decir, el conjunto 132 de bloques actual y/o el conjunto 332 de bloques desplazado). Por otra parte, la actual codificacion del coeficiente de transformadas puede llevarse a cabo bloque a bloque. A continuacion, se hace referencia a la codificacion de un bloque 131 actual de coeficientes de transformadas, que puede formar parte de la pluralidad del bloque 131 del conjunto 332 de bloques desplazado (o posiblemente el conjunto 132 de bloques actual en otras implementaciones del codificador 100 vocal basado en transformadas).
La envolvente 136 interpolada actual para el bloque 131 actual puede ofrecer una aproximacion de la envolvente espectral de los coeficientes de transformadas del bloque 131 actual. El codificador 100 puede incluir una unidad 105 de prenivelacion y una unidad 106 de determinacion de ganancia de envolvente que estan configurados para determinar una envolvente 139 ajustada para el bloque 131 actual, basandose en la envolvente 136 interpolada actual y en el bloque 131 actual. En concreto, puede determinarse una ganancia de envolvente para el bloque 131 actual de modo que se ajuste una varianza de los coeficientes de transformadas suavizados del bloque 131 actual. X(k), k = 1, ..., K pueden ser los coeficientes de transformadas del bloque 131 actual (con p. ej. K = 256), y E(k), k = 1, ..., K puede ser los valores 303 energeticos espectrales medios de la envolvente 136 interpolada actual (siendo iguales los valores energeticos E(k) de una misma banda 302 de frecuencias). La ganancia de envolvente a puede determinarse de tal modo que se ajuste la varianza de los coeficientes de transformadas suavizados
X0c) = -!§=
5rtw. En concreto, la ganancia de envolvente a puede determinarse de tal modo que la varianza sea
uno.
Debe senalarse que la ganancia de envolvente a puede determinarse para una subgama de la gama de frecuencia completa del bloque 131 actual de coeficientes de transformadas. Dicho de otro modo, la ganancia de envolvente a puede determinarse basandose solo en un subconjunto de los penodos 301 de frecuencia y/o en un subconjunto de las bandas 302 de frecuencias. A modo de ejemplo, la ganancia de envolvente a puede determinarse basandose en los penodos 301 de frecuencia superiores a un periodo 304 de frecuencia de inicio (siendo el penodo de frecuencia de inicio superior a 0 o 1). En consecuencia, la envolvente 139 ajustada para el bloque 131 actual puede determinarse aplicando la ganancia de envolvente a solo a los valores 303 energeticos espectrales medios de la envolvente 136 interpolada actual que se asocian a penodos 301 de frecuencia situados por encima del penodo 304 de frecuencia de inicio. Por lo tanto, la envolvente 139 ajustada para el bloque 131 actual puede corresponder a la envolvente 136 interpolada actual, para penodos 301 de frecuencia en y por debajo del penodo de frecuencia de inicio, y puede corresponder a la envolvente 136 interpolada actual compensada por la ganancia de envolvente a, para periodos 301 de frecuencia por encima del periodo de frecuencia de inicio. Esto se ilustra en la Fig. 3a mediante la envolvente 339 ajustada (mostrada en lmeas discontinuas).
5
10
15
20
25
30
35
40
45
50
55
60
La aplicacion de la ganancia de envolvente a 137 (a la que tambien se denomina ganancia de correccion de nivel) a la envolvente 136 interpolada actual corresponde a un ajuste o una compensacion de la envolvente 136 interpolada actual, produciendo por lo tanto una envolvente 139 ajustada, tal como ilustra la fig. 3a. La ganancia de envolvente a 137 puede codificarse como datos 162 de ganancia en el tren de bits.
El codificador 100 puede incluir ademas una unidad 107 de ajuste de envolventes que esta configurada para determinar la envolvente 139 ajustada basandose en la ganancia de envolvente a 137 y en la envolvente 136 interpolada actual. La envolvente 139 ajustada puede usarse para procesamiento de senales del bloque 131 de coeficientes de transformadas. La ganancia de envolvente a 137 puede cuantificarse a una resolucion mayor (p. ej. en pasos de 1 dB) en comparacion con la envolvente 136 interpolada actual (que puede cuantificarse en pasos de 3 dB). Como tal, la envolvente 139 ajustada puede cuantificarse a la resolucion mayor de la ganancia de envolvente a 137 (p. ej. en etapas de 1 dB).
Por otra parte, la unidad 107 de ajuste de envolventes puede configurarse para determinar una envolvente 138 de asignacion. La envolvente 138 de asignacion puede corresponder a una version cuantificada de la envolvente 139 ajustada (p. ej. cuantificada a niveles de cuantificacion de 3 dB). La envolvente 138 de asignacion puede usarse con fines de asignacion de bits. En concreto, la envolvente 138 de asignacion puede usarse para determinar —para un coeficiente de transformadas concreto del bloque 131 actual— un cuantificador concreto de un conjunto de cuantificadores predeterminado, en el que el cuantificador concreto debe usarse para cuantificar el coeficiente de transformadas concreto.
El codificador 100 incluye una unidad 108 de nivelacion configurada para nivelar el bloque 131 actual utilizando la envolvente 139 ajustada, produciendo por lo tanto el bloque 140 de coeficientes de transformadas suavizados X(k). El bloque 140 de coeficientes de transformadas suavizados X(k) puede codificarse usando un bucle de prediccion dentro del dominio de transformadas. Como tal, el bloque 140 puede codificarse usando un predictor 117 de subbandas. El bucle de prediccion comprende una unidad 115 diferencial configurada para determinar un bloque 141 de coeficientes de prediccion de error A(k), basandose en el bloque 140 de coeficientes de transformadas suavizados X(k)y en un bloque 150 de coeficientes de transformadas estimados X(k), p. ej. A(k) = X(k) -X(k). Debe senalarse que debido al hecho de que el bloque 140 comprende coeficientes de transformadas suavizados es decir, coeficientes de transformadas que se han normalizado o suavizado usando los valores 303 energeticos de la envolvente 139 ajustada, el bloque 150 de coeficientes de transformadas estimados comprende tambien estimaciones de coeficientes de transformadas suavizados. Dicho de otro modo, la unidad 115 diferencial opera en el asf denominado dominio plano. En consecuencia, el bloque 141 de coeficientes de error de prediccion A(k) esta representado en el dominio plano.
El bloque 141 de coeficientes de error de prediccion A(k) puede mostrar una varianza que difiere de uno. El codificador 100 puede incluir una unidad 111 de reescalado configurada para reescalar los coeficientes de error de prediccion A(k) para producir un bloque 142 de coeficientes de error reescalados. La unidad 111 de reescalado puede hacer uso de una o mas reglas heunsticas predeterminadas para efectuar el reescalado. Como resultado, el bloque 142 de coeficientes de error reescalados muestra una varianza que esta (por termino medio) mas proxima a uno (comparado con el bloque 141 de coeficientes de error de prediccion). Esto puede ser beneficioso para la posterior cuantificacion y codificacion.
El codificador 100 incluye una unidad 112 de cuantificacion de coeficientes configurada para cuantificar el bloque 141 de coeficientes de error de prediccion o el bloque 142 de coeficientes de error reescalados. La unidad 112 de cuantificacion de coeficientes puede incluir o utilizar un conjunto de cuantificadores predeterminados. El conjunto de cuantificadores predeterminados puede proporcionar cuantificadores con diferentes grados de precision o diferente resolucion. Esto se ilustra en la figura 4, en la que se ilustra diferentes cuantificadores 321, 322, 323. Los diferentes cuantificadores pueden proporcionar diferentes niveles de precision (indicados por los diferentes valores en decibelios). Un cuantificador concreto de la pluralidad de cuantificadores 321, 322, 323 puede corresponder a un valor concreto de la envolvente 138 de asignacion. Como tal, un valor energetico de la envolvente 138 de asignacion puede apuntar a un cuantificador correspondiente de la pluralidad de cuantificadores. En ese sentido, la determinacion de una envolvente 138 de asignacion puede simplificar el proceso de seleccion de un cuantificador que debe usarse para un coeficiente de error concreto. Dicho de otro modo, la envolvente 138 de asignacion puede simplificar el proceso de asignacion de bits.
El conjunto de cuantificadores puede comprender uno o mas cuantificadores 322 que emplea distorsion para aleatorizar el error de cuantificacion. Esto se ilustra en la Figura 4, que muestra un primer conjunto 326 de cuantificadores predeterminados que comprende un subconjunto 324 de cuantificadores distorsionados y un segundo conjunto 327 de cuantificadores predeterminados que comprende un subconjunto 325 de cuantificadores distorsionados. Como tal, la unidad 112 de cuantificacion de coeficientes puede utilizar diferentes conjuntos 326, 327 de cuantificadores predeterminados, en la que el conjunto de cuantificadores predeterminados, que debe usar la unidad 112 de cuantificacion de coeficientes, puede depender de un parametro 146 de control proporcionado por el predictor 117 y/o determinado de acuerdo con otra informacion lateral disponible en el codificador y en el descodificador correspondiente. En concreto, la unidad 112 de cuantificacion de coeficientes puede configurarse para seleccionar un conjunto 326, 327 de cuantificadores predeterminados para cuantificar el bloque 142 de coeficiente de error reescalado, basandose en el parametro 146 de control, en la que el parametro 146 de control
5
10
15
20
25
30
35
40
45
50
55
puede depender de uno o mas parametros del predictor proporcionados por el predictor 117. Dichos parametros del predictor pueden ser indicativos de la calidad del bloque 150 de coeficientes de transformadas estimados proporcionados por el predictor 117.
Los coeficientes de error cuantificados pueden codificarse entropicamente, usando p. ej. un codigo de Huffman, produciendo por lo tanto datos 163 de coeficientes que deben incluirse en el tren de bits generado por el codificador 100.
Se describe a continuacion detalles adicionales relativos a la seleccion o determinacion de un conjunto 326 de cuantificadores 321, 322, 323. Un conjunto 326 de cuantificadores puede corresponder a una coleccion 326 ordenada de cuantificadores. La coleccion 326 ordenada de cuantificadores puede comprender N cuantificadores, en la que cada cuantificador puede corresponder a un nivel de distorsion diferente. Como tal, la coleccion 326 de cuantificadores puede proporcionar N niveles de distorsion posibles. Los cuantificadores de la coleccion 326 pueden ordenarse de acuerdo con la distorsion decreciente (o de forma equivalente segun SNR creciente). Ademas, los cuantificadores pueden etiquetarse con etiquetas de numeros enteros. A modo de ejemplo, los cuantificadores pueden etiquetarse 0, 1, 2, etc., en el que una etiqueta de numero entero creciente puede indicar una SNR creciente.
La coleccion 326 de cuantificadores puede ser de tal modo que una diferencia de SNR entre dos cuantificadores consecutivos sea al menos aproximadamente constante. Por ejemplo, la SNR del cuantificador con una etiqueta “1” puede ser 1,5 dB, y la SNR del cuantificador con una etiqueta “2” puede ser 3,0 dB. Por lo tanto, los cuantificadores de la coleccion ordenada 326 de cuantificadores pueden ser de tal modo que al cambiar de un primer cuantificador a un segundo cuantificador adyacente, la SNR (relacion senal-ruido) se incremente en un valor basicamente constante (p. ej. 1,5 dB), para todos los pares de primeros y segundos cuantificadores.
La coleccion 326 de cuantificadores puede comprender
• un cuantificador 321 de relleno de ruido que puede proporcionar una SNR que es ligeramente
inferior o igual a 0 dB, que para el proceso de asignacion de velocidad puede aproximarse a 0 dB;
• Ndist. cuantificadores 322 que pueden utilizar distorsion sustractiva y que tfpicamente corresponden
a niveles de SNR intermedios (p. ej. Ndist> 0);y
• Ncc cuantificadores 323 clasicos que no usan distorsion sustractiva y que tipicamente
corresponden a niveles de SNR relativamente altos (p. ej. Ncc> 0). Los cuantificadores 323 no
distorsionados pueden corresponder a cuantificadores escalares.
El numero total N de cuantificadores se expresa como N = 1 + Ndist. + Ncc.
En la figura 6a se muestra un ejemplo de una coleccion 326 de cuantificadores. El cuantificador 321 de relleno de ruido de la coleccion 326 de cuantificadores puede implementarse, por ejemplo, usando un generador de numeros aleatorios que produce una variable aleatoria de acuerdo con un modelo estadfstico predefinido. Una posible implementacion de tal generador de numeros aleatorios puede implicar el uso de una tabla fija con muestras aleatorias del modelo estadfstico predefinido y posiblemente una renormalizacion subsiguiente. El generador de numeros aleatorios que se usa en el codificador 100 esta en sincroma con el generador de numeros aleatorios del descodificador correspondiente. La sincronicidad de los generadores de numeros aleatorios puede obtenerse usando la semilla comun para inicializar los generadores de numeros aleatorios, y/o restaurando estados de los generadores de numeros un numero fijo de veces. Opcionalmente, los generadores pueden implementarse como tablas de consulta que contienen datos aleatorios generados de acuerdo con un modelo estadfstico prescrito. En especial, si el predictor esta activo, puede garantizarse que la salida del cuantificador 321 de relleno de ruido sea la misma en el codificador 100 y en el descodificador correspondiente.
Ademas, la coleccion 326 de cuantificadores puede comprender uno o mas cuantificadores 322 distorsionados. Dichos cuantificadores distorsionados pueden generarse usando una realizacion de una senal 602 de distorsion de seudonumeros tal como se muestra en la Figura 6a. La senal 602 de distorsion de seudonumeros puede corresponder a un bloque 602 de valores de distorsion de seudonumeros. El bloque 602 de numeros de distorsion puede tener la misma dimensionalidad que la dimensionalidad del bloque 142 de coeficientes de error reescalados, que debe cuantificarse. La senal 602 de distorsion (o el bloque 602 de valores de distorsion) puede generarse usando un generador 601 de distorsion. En concreto, la senal 602 de distorsion puede generarse usando una tabla de consulta que contiene muestras aleatorias uniformemente distribuidas.
Como se mostrara en el contexto de la Figura 6b, se aplica valores 632 de distorsion individuales del bloque 602 de valores de distorsion para aplicar una distorsion a un coeficiente correspondiente que debe cuantificarse (p. ej. a un coeficiente de error reescalado correspondiente del bloque 142 de coeficientes de error reescalados). El bloque 142 de coeficientes de error reescalados puede comprender un total de K coeficientes de error reescalados. De modo similar, el bloque 602 de valores de distorsion puede comprender K valores 632 de distorsion. El valor 632 de distorsion kesim°, con k = 1, ..., K del bloque 602 de valores de distorsion puede aplicarse al coeficiente de error reescalado kesimo del bloque 142 de coeficientes de error reescalados.
5
10
15
20
25
30
35
40
45
50
55
60
Como se ha senalado antes, el bloque 602 de valores de distorsion pueden tener la misma dimension que el bloque 142 de coeficientes de error reescalados, que deben cuantificarse. Esto es beneficioso, ya que permite usar un unico bloque 602 de valores de distorsion para todos los cuantificadores 322 distorsionados de una coleccion 326 de cuantificadores. Dicho de otro modo, para cuantificar y codificar un bloque 142 de coeficientes de error reescalados determinado, la distorsion 602 seudoaleatoria puede generarse solo una vez para todas las colecciones 326, 327 de cuantificadores admisibles y para todas las posibles asignaciones para la distorsion. Esto facilita lograr la sincronicidad entre el codificador 100 el descodificador correspondiente, ya que el uso de la senal 602 de distorsion unica no necesita senalizarse explfcitamente al descodificador correspondiente. En concreto, el codificador 100 y el descodificador correspondiente pueden utilizar el mismo generador 601 de distorsion que esta configurado para generar el mismo bloque 602 de valores de distorsion para el bloque 142 de coeficientes de error reescalados.
La composicion de la coleccion 326 de cuantificadores se basa preferiblemente en consideraciones psicoacusticas. La codificacion de transformadas de baja velocidad puede conducir a artefactos espectrales que incluyen agujeros espectrales y limitacion de banda causados por la naturaleza del proceso de llenado de agua inverso que tiene lugar en esquemas de cuantificacion convencionales que se aplican a los coeficientes de transformadas. La audibilidad de los agujeros espectrales puede reducirse inyectando ruido en aquellas bandas 302 de frecuencia que quedaron por debajo del nivel del agua durante un penodo de tiempo corto y a las que por lo tanto se les asigno una velocidad de transferencia de bits cero.
La cuantificacion gruesa de coeficientes en el dominio frecuencial puede conducir a artefactos de codificacion espedficos (p. ej. agujeros espectrales profundos, llamados «senales espurias») que se generan en una situacion en la que los coeficientes de una banda 302 de frecuencia concreta se cuantifican a cero (en el caso de los agujeros espectrales profundos) en una unidad de informacion y a valores de no cero en la siguiente unidad de informacion, y cuando todo el proceso se repite durante decenas de milisegundos. Cuanto mas gruesos son los cuantificadores, mas propensos son a producir tal comportamiento. Este problema tecnico puede abordarse aplicando un relleno de ruido a los indices de cuantificacion usados para la reconstruccion de senales en el nivel 0 (tal como se expone p. ej. en la patente US7447631). La solucion descrita en la patente US7447631 facilita una reduccion de los artefactos ya que reduce la audibilidad de los agujeros espectrales profundos asociados a la cuantificacion de nivel 0; no obstante, los artefactos asociados a los agujeros espectrales mas superficiales permanecen. Se podna aplicar tambien el metodo de relleno de ruido a los indices de cuantificacion de cuantificador grueso. No obstante, esto degradana significativamente el problema del rendimiento en MSE de estos cuantificadores. Los inventores han observado que este inconveniente puede abordarse mediante el uso de cuantificadores distorsionados. En el presente documento, se propone usar cuantificadores 322 con distorsion sustractiva para niveles bajos de SNR, a fin de abordar el problema del rendimiento en MSE. Ademas, el uso de cuantificadores 322 con distorsion sustractiva facilita las propiedades de relleno de ruido para todos los niveles de reconstruccion. Puesto que un cuantificador 322 distorsionado es analtticamente manejable en cualquier velocidad de transferencia de bits, es posible reducir (p. ej. minimizar) la perdida de rendimiento debida a la distorsion obteniendo post-ganancias 614, que son utiles en niveles de alta distorsion (es decir, velocidades bajas).
En general, es posible lograr una velocidad de transferencia de bits arbitrariamente baja con un cuantificador 322 distorsionado. Por ejemplo, en el caso escalar se puede elegir usar un tamano de paso de cuantificacion muy grande. No obstante, el funcionamiento con velocidad de transferencia de bits cero no es factible en la practica, porque impondna requisitos exigentes en cuanto a la precision numerica necesaria para permitir el funcionamiento del cuantificador con un codificador de longitud variable. Esto proporciona la motivacion para aplicar un cuantificador
321 de relleno de ruido generico al nivel de distorsion de SNR de 0 dB, mas que aplicar un cuantificador 322 distorsionado. La coleccion 326 propuesta de cuantificadores esta disenada de forma que los cuantificadores 322 distorsionados se usan para niveles de distorsion que estan asociados a tamanos de paso relativamente pequenos, de forma que la codificacion de longitud variable pueda incrementarse sin tener que abordar problemas relacionados con el mantenimiento de la precision numerica.
Para el caso de la cuantificacion escalar, los cuantificadores 322 con distorsion sustractiva pueden incrementarse usando post-ganancias que proporcionen un rendimiento en MSE cuasi optimo. En la Figura 6b se muestra un ejemplo de un cuantificador 322 escalar distorsionado sustractivamente. El cuantificador 322 distorsionado comprende un cuantificador Q 612 escalar uniforme que se usa dentro de una estructura de distorsion sustractiva. La estructura de distorsion sustractiva comprende una unidad 611 de sustraccion de distorsion que esta configurada para sustraer un valor 632 de distorsion (del bloque 602 de valores de distorsion) de un coeficiente de error correspondiente (del bloque 142 de coeficientes de error reescalados). Ademas, la estructura de distorsion sustractiva incluye una unidad 613 de adicion correspondiente que esta configurada para anadir el valor 632 de distorsion (del bloque 602 de valores de distorsion) al coeficiente de error cuantificado escalar correspondiente. En el ejemplo ilustrado, la unidad 611 de sustraccion de distorsion se coloca antes del cuantificador escalar Q 612 y la unidad 613 y adicion de distorsion se coloca despues del cuantificador escalar Q 612. Los valores 632 de distorsion del bloque 602 de valores de distorsion pueden corresponder a los valores del intervalo [-0,5,0,5) o [0,1) veces el tamano de paso del cuantificador escalar 612. Debe senalarse que en una realizacion alternativa del cuantificador
322 distorsionado, la unidad 611 de sustraccion de distorsion y la unidad 613 de adicion de distorsion pueden intercambiarse.
5
10
15
20
25
30
35
40
45
50
55
La estructura de distorsion sustractiva puede ir seguida de una unidad 614 de escalado que esta configurada para reescalar los coeficientes de error cuantificados mediante una post-ganancia y. Tras el escalado de los coeficientes de error cuantificados, se obtiene el bloque 145 de coeficientes de error cuantificados. Debe observarse que la entrada X al cuantificador 322 distorsionado corresponde tipicamente a los coeficientes del bloque 142 de coeficientes de error reescalados que corresponden a la banda de frecuencias concreta que debe cuantificarse usando el cuantificador 322 distorsionado. De modo similar, la salida del cuantificador 322 distorsionado corresponde tipicamente a los coeficientes cuantificados del bloque 145 de coeficientes de error cuantificados que corresponden a la banda de frecuencias concreta.
Se puede suponer que la entrada X al cuantificador 322 distorsionado es de media cero y que la varianza
de la entrada X se conoce. (Por ejemplo, la varianza de la serial puede determinarse a partir de la envolvente de la senal). Por otra parte, puede suponerse que un bloque Z 602 de distorsion seudoaleatoria que comprende valores 632 de distorsion esta disponible para el codificador 100 y para el descodificador correspondiente. Ademas, puede suponerse que los valores 632 de distorsion son independientes de la entrada X. Pueden usarse diversas distorsiones 602 diferentes, pero se parte por lo que se expone a continuacion de que la distorsion Z 602 esta uniformemente distribuida entre 0 y A, lo que puede indicar U(0,A). En la practica, puede usarse cualquier distorsion que cumpla las asf llamadas condiciones de Schuchman (p. ej. una distorsion 602 que este uniformemente distribuida entre [-0,5,0,5) veces el tamano de paso A del cuantificador escalar 612). El cuantificador Q 612 puede ser una reticula y la extension de su celula Voronoi puede ser A. En este caso, la senal de distorsion tendria una distribucion uniforme por la extension de la celula Voronoi de la reticula que se utiliza.
La post-ganancia y del cuantificador puede obtenerse dada la varianza de la senal y el tamano de paso de cuantificacion, ya que el cuantificador de distorsion es anatiticamente manejable para cualquier tamano de paso (es decir, velocidad de transferencia de bits). En concreto, la post-ganancia puede obtenerse para mejorar el rendimiento en MSE de un cuantificador con una distorsion sustractiva. La post-ganancia puede expresarse como:
Aunque aplicando la post-ganancia y, el rendimiento en MSE del cuantificador distorsionado 322 puede mejorarse, un cuantificador 322 distorsionado normalmente tiene un rendimiento en MSE inferior a un cuantificador sin distorsion (si bien esta perdida de rendimiento se desvanece a medida que aumenta la velocidad de transferencia de bits). En consecuencia, por lo general, los cuantificadores distorsionados son mas ruidosos que sus versiones no distorsionadas. Por lo tanto, puede ser deseable usar cuantificadores 322 distorsionados solo cuando la utilizacion de cuantificadores 322 distorsionados se justifique por la propiedad de relleno de ruido perceptualmente beneficiosa de los cuantificadores 322 distorsionados.
Por lo tanto, puede proporcionarse una coleccion 326 de cuantificadores que comprende tres tipos de cuantificadores. La coleccion 326 de cuantificadores ordenados puede incluir un cuantificador 321 de relleno de ruido unico, uno o mas cuantificadores 322 con distorsion sustractiva y uno o mas cuantificadores 323 clasicos (no distorsionados). Los cuantificadores 321, 322, 323 consecutivos pueden proporcionar mejoras incrementales a la SNR. Las mejoras incrementales entre un par de cuantificadores adyacentes de la coleccion 326 de cuantificadores ordenados pueden ser basicamente constantes para algunos o la totalidad de los pares de cuantificadores adyacentes.
Una coleccion 326 concreta de cuantificadores puede definirse por el numero de cuantificadores 322 distorsionados y por el numero de cuantificadores 323 no distorsionados incluidos en la coleccion 326 concreta. Ademas, la coleccion 326 concreta de cuantificadores puede definirse por una realizacion concreta de la senal 602 de distorsion. La coleccion 326 puede disenarse para proporcionar una cuantificacion perceptualmente eficiente de la extraccion de coeficientes de transformadas: relleno de ruido con velocidad cero (que produce una SNR ligeramente inferior o igual a 0 dB); relleno de ruido por distorsion sustractiva en nivel de distorsion intermedio (SNR intermedia); y ausencia de relleno de ruido con niveles de distorsion bajos (SNR elevada). La coleccion 326 proporciona un conjunto de cuantificadores admisibles que pueden seleccionarse durante un proceso de asignacion de velocidad. Durante el proceso de asignacion de velocidad se determina la aplicacion de un cuantificador concreto de la coleccion 326 de cuantificadores a los coeficientes de una banda 302 de frecuencias concreta. Normalmente no se sabe a priori que cuantificador se usara para cuantificar los coeficientes de una banda 302 de frecuencias concreta. No obstante, normalmente se sabe a priori cual es la composicion de la coleccion 326 de los cuantificadores.
El aspecto de usar diferentes tipos de cuantificadores para diferentes bandas 302 de frecuencias de un bloque 142 de coeficientes de error se ilustra en la Figura 6c, en la que se muestra un resultado a modo de ejemplo del proceso de asignacion de velocidad. En dicho ejemplo, se parte de que la asignacion de velocidad sigue el asf llamado principio de llenado de agua inverso. La Figura 6c ilustra el espectro 625 de una senal de entrada (o la envolvente del bloque de coeficientes que debe cuantificarse). Puede verse que la banda 623 de frecuencias posee una energfa espectral relativamente alta y esta cuantificada usando un cuantificador 323 clasico que proporciona niveles de
5
10
15
20
25
30
35
40
45
50
55
60
distorsion relativamente bajos. Las bandas 622 de frecuencias muestran una ene^a espectral por encima del nivel 624 del agua. Los coeficientes en estas bandas 622 de frecuencias pueden cuantificarse usando los cuantificadores 322 distorsionados que proporcionan niveles de distorsion intermedio. Las bandas 621 de frecuencias muestran una energfa espectral por debajo del nivel 624 del agua. Los coeficientes en estas bandas 621 de frecuencias pueden cuantificarse usando relleno de ruido con velocidad cero. Los diferentes cuantificadores usados para cuantificar el bloque de coeficientes concreto (representados por el espectro 625) pueden formar parte de una coleccion 326 concreta de cuantificadores, que se ha determinado para el bloque de coeficientes concreto.
Por lo tanto, los tres diferentes tipos de cuantificadores 321, 322, 323 pueden aplicarse selectivamente (por ejemplo selectivamente en relacion con la frecuencia). La decision de la aplicacion de un tipo de cuantificador en concreto puede determinarse en el contexto de un procedimiento de asignacion de velocidad, que se describe a continuacion. El procedimiento de asignacion de velocidad puede utilizar un criterio perceptual que puede extraerse de la envolvente RMS de la senal de entrada (o, por ejemplo, de la densidad espectral de potencia de la senal). El tipo de cuantificador que debe aplicarse en una banda 302 de frecuencias concreta no requiere senalizarse explfcitamente al descodificador correspondiente. La necesidad de senalizar el tipo seleccionado de cuantificador se elimina, ya que el descodificador correspondiente es capaz de determinar el conjunto 326 de cuantificadores concreto que se uso para cuantificar un bloque de la senal de entrada desde el criterio perceptual subyacente (p. ej. la envolvente 138 de asignacion), a partir de la composicion predeterminada de la coleccion de los cuantificadores (p. ej. un conjunto predeterminado de colecciones de cuantificadores diferentes), y a partir de un parametro unico de asignacion de velocidad global (tambien referido como un parametro de compensacion).
La determinacion en el descodificador de la coleccion 326 de cuantificadores, que se ha usado por parte del codificador 100, se facilita disenando la coleccion 326 de los cuantificadores de tal forma que los cuantificadores esten ordenados segun su distorsion (p. ej. SNR). Cada cuantificador de la coleccion 326 puede disminuir la distorsion (puede afinar la SNR) del cuantificador precedente en un valor constante. Ademas, una coleccion 326 concreta de cuantificadores puede asociarse a una realizacion unica de una senal 602 de distorsion seudoaleatoria, durante todo el proceso de asignacion de velocidad. Consiguientemente, el resultado del procedimiento de asignacion de velocidad no afecta a la realizacion de la senal 602 de distorsion. Esto es beneficioso para garantizar una convergencia del procedimiento de asignacion de velocidad. Ademas, permite al descodificador llevar a cabo la descodificacion si el descodificador conoce la realizacion unica de la senal 602 de distorsion. El descodificador puede tener constancia de la realizacion de la senal 602 de distorsion mediante el uso del mismo generador 601 de distorsion seudoaleatoria en el codificador 100 y en el descodificador correspondiente.
Como se ha indicado antes, el codificador 100 puede configurarse para llevar a cabo un proceso de asignacion de bits. Con este fin, el codificador 100 puede incluir unidades 109, 110 de asignacion de bits. La unidad 109 de asignacion de bits puede configurarse para determinar el numero total de bits 143 que estan disponibles para codificar el bloque 142 actual de coeficientes de error reescalados. El numero total de bits 143 puede determinarse basandose en la envolvente 138 de asignacion. La unidad 110 de asignacion de bits puede configurarse para proporcionar una asignacion de bits relativa a los diferentes coeficientes de error reescalados, dependiendo del valor energetico correspondiente en la envolvente 138 de asignacion.
El proceso de asignacion de bits puede hacer uso de un procedimiento de asignacion iterativo. En el curso del procedimiento de asignacion, la envolvente 138 de asignacion puede compensarse aplicando un parametro de compensacion, por lo tanto seleccionando cuantificadores con resolucion incrementada o disminuida. Como tal, el parametro de compensacion puede usarse para afinar o engrosar la cuantificacion global. El parametro de compensacion puede determinarse de forma que los datos 163 de coeficientes, que se obtienen usando los cuantificadores determinados por el parametro de compensacion y la envolvente 138 de asignacion, comprendan un numero de bits que se corresponda con (o no supere) el numero total de bits 143 asignado al bloque 131 actual. El parametro de compensacion que ha utilizado el codificador 100 para codificar el bloque 131 actual se incluye como datos 163 de coeficientes en el tren de bits. En consecuencia, se hace posible que el descodificador correspondiente determine los cuantificadores que ha usado la unidad 112 de cuantificacion de coeficientes para cuantificar el bloque 142 de coeficientes de error reescalados.
Como tal, el proceso de asignacion de velocidad puede efectuarse en el codificador 100, y su objetivo es distribuir los bits 143 disponibles de acuerdo con un modelo perceptual. El modelo perceptual puede depender de una envolvente 138 de asignacion extrafda del bloque 131 de coeficientes de transformadas. El algoritmo de asignacion de velocidad distribuye los bits 143 disponibles entre los diferentes tipos de cuantificadores, es decir, el relleno de ruido 321 con velocidad cero, el o los cuantificadores 322 distorsionados y el o los cuantificadores 323 no distorsionados clasicos. La decision ultima sobre el tipo de cuantificador que debe usarse para cuantificar los coeficientes de una banda 302 de frecuencias concreta del espectro puede depender del modelo de senal perceptual, de la realizacion de la distorsion seudoaleatoria y de la limitacion de la velocidad de transferencia de bits.
En el descodificador correspondiente, la asignacion de bits (indicada por la envolvente 138 de asignacion y por el parametro de compensacion) puede usarse para determinar las probabilidades de los indices de cuantificacion a fin de facilitar la descodificacion sin perdidas. Puede usarse un metodo de computacion de probabilidades de indices de cuantificacion, que emplea el uso de una realizacion de la distorsion 602 seudoaleatoria de banda completa, el modelo perceptual parametrizado por la envolvente 138 de la senal y el parametro de asignacion de velocidad (es
5
10
15
20
25
30
35
40
45
50
55
decir, el parametro de compensacion). Utilizando la envolvente 138 de asignacion, el parametro de compensacion y el conocimiento relativo al bloque 602 de valores de distorsion, la composicion de la coleccion 326 de cuantificadores en el descodificador puede estar en sincroma con la coleccion 326 usada en el codificador 100.
Como se ha senalado antes, la limitacion de velocidad de transferencia de bits puede especificarse en terminos de un numero maximo de bits permitido por unidad de informacion 143. Esto se aplica p. ej. a indices de cuantificacion que se codifican entropicamente posteriormente usando p. ej. un codigo de Huffman. En concreto, esto se aplica en supuestos de codificacion en los que el tren de bits se genera de forma secuencial, donde se cuantifica un unico parametro de una sola vez y donde el mdice de cuantificacion correspondiente se convierte a una palabra de codigo binario, que se anexa al tren de bits.
Si se emplea codificacion aritmetica (o codificacion de intervalo), el principio es diferente. En el contexto de la codificacion aritmetica, normalmente se asigna una palabra de codigo unica a una secuencia larga de indices de cuantificacion. Normalmente no es posible asociar exactamente una porcion concreta del tren de bits a un parametro concreto. En particular, en el contexto de la codificacion aritmetica, el numero de bits que se requiere para codificar una realizacion aleatoria de una senal normalmente se desconoce. Esto es asf incluso si el modelo estadfstico de la senal se conoce.
Para abordar el mencionado problema tecnico, se propone hacer que el codificador aritmetico forme parte del algoritmo de asignacion de velocidad. Durante el proceso de asignacion de velocidad el codificador intenta cuantificar y codificar un conjunto de coeficientes de una o mas bandas 302 de frecuencias. Para cada uno de estos intentos, es posible observar el cambio del estado del codificador aritmetico y computar el numero de posiciones que deben avanzarse en el tren de bits (en vez de computar un numero de bits). Si se fija una limitacion de velocidad de transferencia de bits maxima, dicha limitacion de velocidad de transferencia de bits maxima puede usarse en el procedimiento de asignacion de velocidad. El coste de los bits de terminacion del codigo aritmetico puede incluirse en el coste del ultimo parametro codificado y, en general, el coste de los bits de terminacion variara en funcion del estado del codificador aritmetico. No obstante, una vez que se disponga del coste de terminacion, es posible determinar el numero de bits necesario para codificar los indices de cuantificacion correspondientes al conjunto de coeficientes de la banda o las bandas 302 de frecuencias.
Debe decirse que en el contexto de la codificacion aritmetica, una realizacion unica de la distorsion 602 puede usarse para la totalidad del proceso de asignacion de velocidad (de un bloque 142 de coeficientes concreto). Como se ha senalado antes, el codificador aritmetico puede usarse para calcular el coste de velocidad de transferencia de bits de una seleccion de cuantificadores concreta dentro del procedimiento de asignacion de velocidad. El cambio del estado del codificador aritmetico puede observarse y dicho cambio de estado puede usarse para computar un numero de bits necesario para llevar a cabo la cuantificacion. Ademas, el proceso de terminacion del codigo aritmetico puede usarse dentro del proceso de asignacion de velocidad.
Como se ha indicado antes, los indices de cuantificacion pueden codificarse usando un codigo aritmetico o un codigo entropico. Si los indices de cuantificacion se codifican entropicamente, la distribucion de probabilidad de los indices de cuantificacion puede tenerse en cuenta para asignar palabras de codigo de longitud variable a indices de cuantificacion individuales o grupos de estos. El uso de distorsion puede repercutir en la distribucion de probabilidad de los indices de cuantificacion. Especialmente, la realizacion concreta de una senal 602 de distorsion puede repercutir en la distribucion de probabilidad de los indices de cuantificacion. Debido al numero practicamente ilimitado de realizaciones de la senal 602 de distorsion, en el caso general, no se conocen a priori las probabilidades de palabras de codigo y no es posible usar codificacion Huffman.
Los inventores han observado que es posible reducir el numero de posibles realizaciones de distorsion a un conjunto de realizaciones de la senal 602 de distorsion relativamente pequeno y manejable. A modo de ejemplo, puede proporcionarse para cada banda 302 de frecuencias un conjunto limitado de valores de distorsion. Con este fin, el codificador 100 (asf como el descodificador correspondiente) puede incluir un generador 801 de distorsion discreta configurado para generar la senal 602 de distorsion seleccionando una de M realizaciones de distorsion predeterminadas (vease la Figura 8). A modo de ejemplo, puede usarse M realizaciones de distorsion predeterminadas diferentes por cada banda 302 de frecuencias. El numero M de realizaciones de distorsion predeterminadas puede ser M<5 (p. ej. M=4 o M=3).
Debido al numero limitado de M realizaciones de distorsion, es posible entrenar una lista de codigos de Huffman (posiblemente multidimensional) para cada realizacion de distorsion, produciendo una coleccion 803 de M listas de codigos. El codificador 100 puede incluir una unidad 802 de seleccion de listas de codigos que esta configurada para seleccionar uno de la coleccion 803 de M listas de codigos predeterminadas, basandose en la realizacion de distorsion seleccionada. De ese modo, se garantiza que la codificacion entropica este en sincroma con la generacion de distorsion. La lista de codigos 811 seleccionado puede usarse para codificar indices de cuantificacion individuales o grupos de estos que se han cuantificado usando la realizacion de distorsion seleccionada. En consecuencia, puede mejorarse la ejecucion de la codificacion entropica, al utilizar cuantificadores distorsionados.
La coleccion 803 de listas de codigos predeterminadas y el generador 801 de distorsion discreta pueden tambien usarse en el descodificador correspondiente (tal como se ilustra en la Figura 8). La descodificacion es factible si se
5
10
15
20
25
30
35
40
45
50
55
usa una distorsion seudoaleatoria y si el descodificador permanece en sincroma con el codificador 100. En este caso, el generador 801 de distorsion discreta y el codificador generan la senal 602 de distorsion, y la realizacion de distorsion concreta se asocia de modo exclusivo a una lista de codigos 811 de Huffman concreto de la coleccion 803 de listas de codigos. Dado el modelo psicoacustico (por ejemplo, representado por la envolvente 138 de asignacion y el parametro de asignacion de velocidad) y la lista de codigos 811 seleccionada, el descodificador puede llevar a cabo la descodificacion usando el descodificador 551 de Huffman para producir los indices 812 de cuantificacion descodificados.
Como tal, puede usarse un conjunto 803 relativamente pequeno de listas de codigos de Huffman en vez de codificacion aritmetica. El uso de una lista de codigos 811 concreta del conjunto 813 de listas de codigos de Huffman puede depender de una realizacion predeterminada de la senal 602 de distorsion. Al mismo tiempo, puede usarse un conjunto limitado de valores de distorsion admisibles que forman M realizaciones de distorsion predeterminadas. El proceso de asignacion de velocidad puede suponer entonces el uso de cuantificadores no distorsionados, de cuantificadores distorsionados y de codificacion de Huffman.
Como resultado de la cuantificacion de los coeficientes de error reescalados, se obtiene un bloque 145 de coeficientes de error cuantificados. El bloque 145 de coeficientes de error cuantificados corresponde al bloque de coeficientes de error que estan disponibles en el descodificador correspondiente. Consiguientemente, el bloque 145 de coeficientes de error cuantificados puede usarse para determinar un bloque 150 de coeficientes de transformadas estimados. El codificador 100 puede incluir una unidad 113 de reescalado inverso configurado para efectuar la inversion de las operaciones de reescalado realizadas por la unidad 113 de reescalado, produciendo por lo tanto un bloque 147 de coeficientes de error cuantificados reescalados. Puede usarse una unidad 116 de adicion para determinar un bloque 148 de coeficientes suavizados reconstruidos, anadiendo el bloque 150 de coeficientes de transformadas estimados al bloque 147 de coeficientes de error cuantificados escalados. Ademas, puede usarse una unidad 114 de aplanamiento inverso para aplicar la envolvente 139 ajustada al bloque 148 de coeficientes suavizados reconstruidos, produciendo por lo tanto un bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos corresponde a la version del bloque 131 de coeficientes de transformadas que esta disponible en el descodificador correspondiente. En consecuencia, el bloque 149 de coeficientes reconstruidos puede usarse en el predictor 117 para determinar el bloque 150 de coeficientes estimados.
El bloque 149 de coeficientes reconstruidos se representa en el dominio no nivelado, es decir, el bloque 149 de coeficientes reconstruidos es tambien representativo de la envolvente espectral del bloque 131 actual. Como se expone mas adelante, esto puede ser beneficioso para el rendimiento del predictor 117.
El predictor 117 puede configurarse para calcular el bloque 150 de coeficientes de transformadas estimados basandose en uno o mas bloques 149 previos de coeficientes reconstruidos. En concreto, el predictor 117 puede configurarse para determinar uno o mas parametros del predictor de tal forma que se reduzca un criterio de error de prediccion predeterminado (p. ej. se minimice). A modo de ejemplo, el o los parametros del predictor pueden determinarse de tal forma que una energfa, o una energfa perceptualmente ponderada, del bloque 141 de coeficientes de error de prediccion se reduzca (p. ej. se minimice). El o los parametros del predictor pueden incluirse como datos 164 del predictor en el tren de bits generado por el codificador 100.
El predictor 117 puede emplear un modelo de senales, tal como se describe en la solicitud de patente US61750052 y en las solicitudes de patente que reclaman prioridad sobre esta, cuyo contenido se incorpora como referencia. El o los parametros del predictor pueden corresponder a uno o mas parametros modelo del modelo de senales.
La Figura 1b muestra un diagrama de bloque de un ejemplo adicional de codificador 170 vocal basado en transformadas. El codificador 170 vocal basado en transformadas de la Figura 1b comprende muchos de los componentes del codificador 100 de la Figura 1a. No obstante, el codificador 170 vocal basado en transformadas de la Figura 1b esta configurado para generar un tren de bits que tiene una velocidad de transferencia de bits variable. Con este fin, el codificador 170 incluye una unidad 172 de estado de frecuencia de bits media (ABR, por su sigla en ingles) configurada para hacer un seguimiento de la velocidad de transferencia de bits que ha consumido el tren de bits para los bloques 131 precedentes. La unidad 171 de asignacion de bits usa esta informacion para determinar el numero total de bits 143 que esta disponible para codificar el bloque 131 actual de coeficientes de transformadas.
En general, los codificadores 100, 170 vocales basados en transformadas estan configurados para generar un tren de bits que es indicativo de o que comprende
• Datos de envolvente 161 indicativos de una envolvente 134 actual cuantificada. La envolvente 134 actual cuantificada se usa para describir la envolvente de los bloques de un conjunto 132 actual o un conjunto 332 desplazado de bloques de coeficientes de transformadas.
• Datos de ganancia 162 indicativos de una ganancia a de correccion de nivel para ajustar la envolvente 136 interpolada de un bloque 131 actual de coeficientes de transformadas. Tfpicamente se proporciona una ganancia a diferente para cada bloque 131 del conjunto 132 o el conjunto 332 desplazado de bloques.
• Datos de coeficientes 163 indicativos del bloque 141 de coeficientes de error de prediccion para el bloque 131 actual. En concreto, los datos 163 de coeficientes son indicativos del bloque 145 de
5
10
15
20
25
30
35
40
45
50
55
60
coeficientes de error cuantificados. Ademas, los datos 163 de coeficientes pueden ser indicativos de un parametro de compensacion que puede usarse para determinar los cuantificadores para llevar a cabo cuantificacion inversa en el descodificador.
• Datos 164 de predictores indicativos de uno o mas coeficientes de predictor que deben usarse para determinar un bloque 150 de coeficientes calculados de bloques 149 previos de coeficientes reconstruidos.
Se describe a continuacion un descodificador 500 vocal basado en transformadas en el contexto de las figuras 5a a 5d. La fig. 5a muestra un diagramas de bloque de un ejemplo de descodificador 500 vocal basado en transformadas. El diagrama de bloque muestra un banco 504 de filtros de smtesis (referido tambien como una unidad de transformadas inversas) que se usa para convertir un bloque 149 de coeficientes reconstruidos del dominio de transformadas al dominio temporal, produciendo de ese modo muestras de la senal de audio descodificada. El banco 504 de filtros de smtesis puede emplear un MDCT inverso con un avance predeterminado (p. ej. un avance de aproximadamente 5 ms o 256 muestras).
El bucle principal del descodificador 500 opera en unidades de este avance. Cada paso produce un vector de dominio de transformadas (tambien referido como un bloque) con una longitud o dimension que corresponde a una configuracion de bando de ancha del sistema predeterminada. Con rellenamiento cero al tamano de transformadas del banco 504 de filtros, se usara el vector de dominio de transformadas para sintetizar una actualizacion de senal del dominio temporal de una longitud predeterminada (p. ej. 5 ms) al proceso de solapamiento/adicion del banco 504 de filtros de smtesis.
Como se ha indicado antes, los codecs de audio basados en transformadas genericos emplean tfpicamente unidades de informacion con secuencias de bloques cortos en el intervalo de 5 ms para manejo transitorio. Como tales, los codecs de audio basados en transformadas genericos proporcionan las transformadas y las herramientas de conmutacion de ventanas necesarias para una coexistencia perfecta de bloques cortos y largos. Un terminal de entrada espectral de voz definido por omision del banco 504 de filtros de smtesis de la Fig. 5a puede por lo tanto integrarse convenientemente en el codec de audio basado en transformadas de uso general, sin necesidad de introducir herramientas de conmutacion adicionales. Dicho de otro modo, el descodificador 500 vocal basado en transformadas de la Fig. 5a puede combinarse convenientemente con un descodificador de audio basado en transformadas generico. En concreto, el descodificador 500 vocal basado en transformadas de la Fig. 5a puede utilizar el banco 504 de filtros de smtesis proporcionado por el descodificador de audio basado en transformadas generico (p. ej. el descodificador AAC o HE-AAC).
Desde el tren de bits entrante (en concreto desde los datos 161 de envolvente y desde los datos 162 de ganancia incluidos en el tren de bits), puede determinarse una envolvente de senal mediante un descodificador 503 de envolvente. En concreto, el descodificador 503 de envolvente puede configurarse para determinar la envolvente 139 ajustada basandose en los datos 161 de envolvente y los datos 162 de ganancia). Como tal, el descodificador 503 de envolvente puede realizar tareas similares a la unidad 104 de interpolacion y la unidad 107 de afinamiento de envolventes del codificador 100, 170. Como se ha senalado antes, la envolvente 109 ajustada representa un modelo de la varianza de senal en un conjunto de bandas 302 de frecuencias predefinidas.
Por otra parte, el descodificador 500 incluye una unidad 114 de aplanamiento inverso que esta configurada para aplicar la envolvente 139 ajustada a un vector de dominio nivelado, cuyas entradas pueden ser nominalmente de varianza uno. El vector de dominio nivelado corresponde al bloque 148 de coeficientes suavizados reconstruidos descrito en el contexto del codificador 100, 170. En la salida de la unidad 114 de aplanamiento inverso, se obtiene el bloque 149 de coeficientes reconstruidos. El bloque 149 de coeficientes reconstruidos se proporciona al banco 504 de filtros de smtesis (para generar la senal de audio descodificada) y al predictor 517 de subbanda.
El predictor 517 de subbanda opera de modo similar al predictor 117 del codificador 100, 170. En concreto, el predictor 517 de subbanda esta configurado para determinar un bloque 150 de coeficientes de transformadas estimados (en el dominio nivelado) basandose en uno o mas bloques 149 previos de coeficientes reconstruidos (usando el parametro o los parametros del predictor senalizados dentro del tren de bits). Dicho de otro modo, el predictor 517 de subbanda esta configurado para generar un vector de dominio nivelado predicho desde una memoria intermedia o vectores de salida descodificador previamente y envolventes de senal, basandose en los parametros del predictor como puede ser un retardo del predictor y una ganancia del predictor. El descodificador 500 comprende un descodificador 501 del predictor configurado para descodificar los datos 164 del predictor a fin de determinar el parametro o los parametros del predictor.
El descodificador 500 comprende ademas un descodificador 502 espectral que esta configurado para proporcionar una correccion aditiva al vector de dominio nivelado predicho, basado en tfpicamente la parte mas grande del tren de bits (es decir, basado en los datos 163 de coeficiente). El proceso de descodificacion del espectro es controlado principalmente por un vector de asignacion, que se obtiene de la envolvente, y un parametro de control de asignacion transmitido (tambien referido como el parametro de compensacion). Tal como se ilustra en la Figura 5a, puede haber una dependencia directa del descodificador 502 espectral de los parametros 520 del predictor. Como tal, el descodificador 502 espectral puede configurarse para determinar el bloque 147 de coeficientes de error cuantificados reescalados basandose en los datos 163 de coeficientes. Tal como se ha expuesto en el contexto del
5
10
15
20
25
30
35
40
45
50
55
60
codificador 100, 170, los cuantificadores 321, 322, 323 usados para cuantificar el bloque 142 de coeficientes de error reescalados dependen tipicamente de la envolvente 138 de asignacion (que puede obtenerse de la envolvente 139 ajustada) y del parametro de compensacion. Ademas, los cuantificadores 321, 322, 323 pueden depender de un parametro 146 de control proporcionado por el predictor 117. El parametro 146 de control puede ser obtenido por el descodificador 500 usando los parametros 520 del predictor (de forma analoga al codificador 100, 170).
Como se ha indicado antes, el tren de bits recibido comprende datos 161 de envolvente y datos 162 de ganancia que pueden usarse para determinar la envolvente 139 ajustada. En concreto, la unidad 531 del descodificador 503 de envolventes puede configurarse para determinar la envolvente 134 actual cuantificada a partir de los datos 161 de envolvente. A modo de ejemplo, la envolvente 134 actual cuantificada puede tener una resolucion de 3 dB en bandas 302 de frecuencias predefinidas (tal como se indica en la figura 3a). La envolvente 134 actual cuantificada puede actualizarse por cada conjunto 132, 332 de bloques (p. ej. cada cuatro unidades de codificacion, es decir bloques, o cada 20 ms), en concreto por cada conjunto 332 desplazado de bloques. Las bandas 302 de frecuencias de la envolvente 134 actual cuantificada pueden comprender un numero creciente de penodos 301 de frecuencia como una funcion de la frecuencia, para adaptarse a las propiedades del ofdo humano.
La envolvente 134 actual cuantificada puede interpolarse linealmente desde una envolvente 135 cuantificada en envolventes 136 interpoladas por cada bloque 131 del conjunto 332 desplazado de bloques (o posiblemente, del conjunto 132 actual de bloques). Las envolventes 136 interpoladas pueden determinarse en el dominio de 3 dB cuantificado. Esto significa que los valores 303 energeticos interpolados pueden redondearse al nivel de 3 dB mas proximo. Un ejemplo de envolvente 136 interpolada se ilustra en el grafico de puntos de la figura 3a. Para cada envolvente 134 actual cuantificada, se proporcionan cuatro ganancias a 137 de correccion de nivel (tambien referidas como ganancia de envolvente) a modo de datos 162 de ganancia. La unidad 532 de descodificacion de la ganancia puede configurarse para determinar las ganancias a 137 de correccion de nivel a partir de los datos 162 de ganancia. Las ganancias de correccion de nivel pueden cuantificarse en pasos de 1 dB. Cada ganancia de correccion de nivel se aplica a la envolvente 136 interpolada correspondiente a fin de proporcionar las envolventes 139 ajustadas para los diferentes bloques 131. Debido a la resolucion aumentada de las ganancias 137 de correccion de nivel, la envolvente 139 ajustada puede tener una resolucion aumentada (p. ej. una resolucion de 1 dB).
La Figura 3b muestra un ejemplo lineal de interpolacion geometrica entre la envolvente 135 previa cuantificada y la envolvente 134 actual cuantificada. Las envolventes 135, 134 pueden separarse en una parte de nivel medio y una parte de forma del espectro logantmico. Estas partes pueden interpolarse con estrategias independientes tales como una estrategia lineal, una geometrica o una armonica (resistores paralelos). En ese sentido, pueden usarse diferentes esquemas de interpolacion para determinar las envolventes 136 interpoladas. El esquema de interpolacion usado por el descodificador 500 corresponde tfpicamente al esquema de interpolacion usado por el codificador 100, 170.
La unidad 107 de afinamiento de envolvente del descodificador 503 de envolventes puede configurarse para determinar una envolvente 138 de asignacion a partir de la envolvente 139 ajustada cuantificando la envolvente 139 ajustada (p. ej. en etapas de 3 dB). La envolvente 138 de asignacion puede usarse en conjuncion con el parametro de control de asignacion o parametro de compensacion (incluido en los datos 163 de coeficientes) para crear un vector de asignacion de numero entero nominal usado para controlar la descodificacion espectral, es decir, la descodificacion de los datos 163 de coeficientes. En concreto, el vector de asignacion de numero entero nominal puede usarse para determinar un cuantificador para cuantificar inversamente los indices de cuantificacion comprendidos en los datos 163 de coeficientes. La envolvente 138 de asignacion y el vector de asignacion de numero entero nominal pueden determinarse de manera analoga en el codificador 100, 170 y en el descodificador 500.
La Figura 10 ilustra un ejemplo de proceso de asignacion de bits basado en la envolvente 138 de asignacion. Como se ha senalado antes, la envolvente 138 de asignacion puede cuantificarse de acuerdo con una resolucion predeterminada (p. ej. una resolucion de 3 dB). Cada valor energetico espectral cuantificado de la envolvente 138 de asignacion puede asignarse a un valor de numero entero correspondiente, en el que los valores de numero entero adyacentes pueden representar una diferencia en la energfa espectral correspondiente a la resolucion predeterminada (p. ej. diferencia de 3 dB). El conjunto resultante de numeros enteros puede referirse como una envolvente 1004 de asignacion de numeros enteros (referida como iEnv). La envolvente 1004 de asignacion de numeros enteros puede compensarse con el parametro de compensacion para producir el vector de asignacion de numero entero nominal (referido como iAsig) que proporciona una indicacion directa del cuantificador que debe usarse para cuantificar el coeficiente de una banda 302 de frecuencias concreta (identificada por un mdice de banda de frecuencias, bandIdx).
La Fig. 10 muestra en diagrama 1003 la envolvente de asignacion de numero entero 1004 como una funcion de las bandas 302 de frecuencia. Puede verse que por banda 1002 de frecuencia (bandIdx = 7) la envolvente 1004 de asignacion de numero entero adopta el valor de numero entero -17 (iEnv[7]=-17). La envolvente 1004 de asignacion de numero entero puede limitarse a un valor maximo (referido como iMax, p. ej. iMax = -15). El proceso de asignacion de bits puede emplear la formula de asignacion de bits que proporcione un mdice 1006 de cuantificador (referido como iAsig [bandIdx]) como una funcion de la envolvente 1004 de asignacion de numero entero y del
5
10
15
20
25
30
35
40
45
50
55
60
parametro de compensacion (referido como AsigCompensacion). Como se ha senalado antes, el parametro de compensacion (es decir, AsigCompensacion) se transmite al descodificador 500 correspondiente, permitiendo por lo tanto al descodificador 500 determinar los indices 1006 de cuantificador usando la formula de asignacion de bits. La formula de asignacion de bits puede expresarse como
iAsig[bandIdx] = IEnv[bandIdx] -(iMax- COMPENSACION_CONSTANTE)+AsigCompensacion,
en la que COMPENSACION_CONSTANTE puede ser una compensacion constante, p. ej. COMPENsAcION_CONSTANTE=20. A modo de ejemplo, si el proceso de asignacion de bits ha determinado que la limitacion de velocidad de transferencia de bits puede lograrse usando un parametro de compensacion AsigCompensacion=-13, el mdice 1007 de cuantificador de la septima banda de frecuencias puede obtenerse como iAsig[7] = -17 - (-15-20) - 13 = 5. Usando la formula de asignacion de bits mencionada para todas las bandas 302 de frecuencias, pueden determinarse los indices 1006 de cuantificador (y en consecuencia los cuantificadores 321, 322, 323) para todas las bandas de frecuencias. Un mdice de cuantificador inferior a cero puede redondearse a un mdice de cuantificador cero. De modo similar, un mdice de cuantificador superior al mdice de cuantificador disponible maximo puede rebajarse al mdice de cuantificador disponible maximo.
Por otra parte, la Figura 10 muestra un ejemplo de envolvente 1011 de ruido que puede lograrse usando el esquema de cuantificacion descrito en el presente documento. La envolvente 1011 de ruido muestra la envolvente de ruido de cuantificacion que se introduce durante la cuantificacion. Si se traza juntamente con la envolvente de senal (representada por la envolvente 1004 de asignacion de numero entero en la Figura 10), la envolvente 1011 de ruido ilustra el hecho de que la distribucion de ruido de cuantificacion se optimiza perceptualmente con respecto a la envolvente de senal.
Para permitir que un descodificador 500 se sincronice con un tren de bits recibido, puede transmitirse diferentes tipos de unidades de informacion. Una unidad de informacion puede corresponder a un conjunto 132, 332 de bloques, en concreto a un bloque 332 desplazado de bloques. En concreto, pueden transmitirse las asf llamadas P- tramas, que se codifican de forma relativa con respecto a una trama previa. En la anterior descripcion, se partfa de que el descodificador 500 tiene constancia de la envolvente 135 previa cuantificada. La envolvente 135 previa cuantificada puede proporcionarse dentro de una trama anterior, de forma que el conjunto 132 actual o el conjunto 332 desplazado correspondiente pueda corresponder a una P-trama. Sin embargo, en un escenario de puesta en funcionamiento, el descodificador 500 normalmente no tiene constancia de la envolvente 135 previa cuantificada. Con ese fin, puede transmitirse una I-trama (p. ej. en el momento de la puesta en funcionamiento o con regularidad). La I-trama puede constar de dos envolventes, una de las cuales se usa como la envolvente 135 previa cuantificada y la otra como la envolvente 134 actual cuantificada. Pueden usarse I-tramas para el caso de puesta en funcionamiento del terminal de entrada espectral de voz (es decir, del descodificador 500 vocal basado en transformadas), p. ej. cuando se sigue a una trama que emplea un modo de codificacion de audio diferente y/o como herramienta para permitir de forma expresa un punto de empalme del tren de bits de audio.
El funcionamiento del predictor 517 de subbanda se ilustra en la Figura 5d. En el ejemplo ilustrado, los parametros 520 del predictor son un parametro de retardo y un parametro g de ganancia del predictor. Los parametros 520 del predictor pueden determinarse a partir de los datos 164 del predictor usando una tabla predeterminada de posibles valores para el parametro de retardo y el parametro de ganancia del predictor. Esto permite la transmision eficaz en cuanto a velocidad de transferencia de bits de los parametros 520 del predictor.
El o los vectores de coeficientes de transformadas descodificados previamente (es decir, el o los bloques 149 previos de coeficientes reconstruidos) pueden almacenarse en una memoria 541 intermedia de senales de subbanda (o MDCT). La memoria 541 intermedia puede actualizarse de acuerdo con el avance (p. ej. cada 5 ms). El extractor 543 del predictor puede configurarse para operar en la memoria 541 intermedia dependiendo de un parametro de retardo T normalizado. El parametro de retardo T normalizado puede determinarse normalizando el parametro 520 de retardo a unidades de avance (p. ej. a unidades de avance MDCT). Si el parametro de retardo T es un numero entero, el extractor 543 puede buscar y cargar una o mas unidades de tiempo de vectores T de coeficientes de transformadas descodificados previamente en la memoria 541 intermedia. Dicho de otro modo, el parametro de retardo T puede ser indicativo de cuales de los bloques 149 previos de coeficientes reconstruidos deben usarse para determinar el bloque 150 de coeficientes de transformadas estimados. Se ofrece una exposicion detallada acerca de una posible implementacion del extractor 543 en la solicitud de patente US61750052 y en las solicitudes de patente que reclaman prioridad sobre esta, cuyo contenido se incorpora como referencia.
El extractor 543 puede operar en vectores (o bloques) que llevan envolventes de senal completas. Por otra parte, el bloque 150 de coeficientes de transformadas estimados (que debe proporcionar el predictor 517 de subbanda) se representa en el dominio nivelado. Consiguientemente, la salida del extractor 543 puede configurarse como un vector de dominio nivelado. Esto puede lograrse usando un circuito 544 de formacion que utilice las envolventes 139 ajustadas del bloque o los bloques 149 previos de coeficientes reconstruidos. Las envolventes 139 ajustadas del bloque o los bloques 149 previos de coeficientes reconstruidos pueden almacenarse en una memoria 542 intermedia de envolventes. La unidad formadora 544 puede configurarse para buscar y cargar una envolvente de senal retardada que debe usarse en el aplanamiento de To unidades de tiempo en la memoria intermedia 542 de envolventes, donde To es el numero entero mas proximo a T. Luego, el vector de dominio nivelado puede ser
5
10
15
20
25
30
35
40
45
50
55
60
escalado por el parametro de ganancia g para producir el bloque 150 de coeficientes de transformadas estimados (en el dominio nivelado).
Como alternativa, el proceso de aplanamiento retardado realizado por el circuito de formacion 544 puede omitirse usando un predictor 517 de subbanda que opere en el dominio nivelado, p. ej. un predictor 517 de subbanda que opere en los bloques 148 de coeficientes suavizados reconstruidos. No obstante, se ha hallado que una secuencia de vectores de dominio nivelado (o bloques) no se transforma bien en senales de tiempo debido a los aspectos de solapamiento temporal de la transformada (p. ej. la transformada MDCT). Como consecuencia, el encaje con el modelo de senal subyacente del extractor 543 se reduce y se produce un nivel mayor de ruido de codificacion desde la estructura alternativa. Dicho de otro modo, se ha hallado que los modelos de senal (p. ej. sinusoidal o modelos periodicos) usados por el predictor 517 de subbanda producen un mayor rendimiento en el dominio no nivelado (comparado con el dominio nivelado).
Debe senalarse que en un ejemplo alternativo, la salida del predictor 517 (es decir, el bloque 150 de coeficientes de transformadas estimados) puede anadirse a la salida de la unidad 114 de aplanamiento inverso (es decir, al bloque 149 de coeficientes reconstruidos) (vease la Figura 5a). La unidad formadora 544 de la Figura 5c puede entonces configurarse para llevar a cabo la operacion combinada de aplanamiento retardado y aplanamiento inverso.
Unos elementos en el tren de bits recibido pueden controlar la descarga ocasional de la memoria 541 intermedia de subbanda y de la memoria 541 intermedia de la envolvente, por ejemplo en caso de una primera unidad de codificacion (es decir, un primer bloque) de una I-trama. Esto permite la descodificacion de una I-trama sin que se conozcan los datos previos. La primera unidad de codificacion normalmente no podra hacer uso de una contribucion predictiva, pero no obstante podra usar un numero relativamente inferior de bits para trasladar la informacion 520 del predictor. La perdida de ganancia de prediccion puede compensarse asignando mas bits a la codificacion de error de prediccion de esta primera unidad de codificacion. Tfpicamente, la contribucion del predictor es de nuevo basica para la segunda unidad de codificacion (es decir, un segundo bloque) de una I-trama. Debido a estos aspectos, la calidad puede mantenerse con un aumento relativamente pequeno en la velocidad de transferencia de bits, incluso con un uso muy frecuente de I-tramas.
Dicho de otro modo, los conjuntos 132, 332 de bloques (tambien referidos como tramas) comprenden una pluralidad de bloques 131 que pueden codificarse usando codificacion predictiva. Al codificar una I-trama, solo el primer bloque 203 de un conjunto 332 de bloques no puede codificarse usando la ganancia de codificacion lograda por un codificador predictivo, pero ya el bloque 201 directamente siguiente puede aprovechar los beneficios de la codificacion predictiva. Esto significa que los inconvenientes de una unidad de informacion I con respecto a la eficiencia de la codificacion se limitan a la codificacion del primer bloque 203 de coeficientes de transformadas de la unidad 332 de informacion, y no son aplicables a los otros bloques 201, 204, 205 de la unidad de informacion 332. Por lo tanto, el esquema de codificacion vocal basado en transformadas descrito en el presente documento permite un uso relativamente frecuente de I-tramas sin impacto significativo en la eficiencia de la codificacion. Como tal, el esquema de codificacion vocal basado en transformadas aqrn descrito es especialmente adecuado para aplicaciones que requieren una sincronizacion relativamente rapida y/o relativamente frecuente entre el descodificador y el codificador.
La Figura 5d muestra un diagrama de bloque de un ejemplo de descodificador 502 espectral. El descodificador 502 espectral comprende un descodificador 551 sin perdidas que esta configurado para descodificar los datos 163 de coeficientes codificados entropicamente. Ademas, el descodificador 502 espectral comprende un cuantificador 552 inverso que esta configurado para asignar valores de coeficiente a los indices de cuantificacion incluidos en los datos 163 de coeficientes. Como se ha senalado en el contexto del codificador 100, 170, puede cuantificarse diferentes coeficientes de transformadas usando diferentes cuantificadores seleccionados de un conjunto de cuantificadores predeterminado, p. ej. un conjunto finito de cuantificadores escalares basados en modelos. Tal como se muestra en la figura 4, un conjunto de cuantificadores 321, 322, 323 puede comprender diferentes tipos de cuantificadores. El conjunto de cuantificadores puede comprender un cuantificador 321 que proporciona smtesis de ruido (en caso de velocidad de transferencia de bits cero), uno o mas cuantificadores 322 distorsionados (para relaciones senal-ruido, SNR, relativamente bajas y para velocidades de transferencia de bits intermedias) y/o uno o mas cuantificadores 323 ordinarios (para sNr relativamente altas y para velocidades de transferencia de bits relativamente altas).
La unidad 107 de afinamiento de envolvente puede configurarse para proporcionar la envolvente 138 de asignacion que puede combinarse con el parametro de compensacion incluido en los datos 163 de coeficientes para producir un vector de asignacion. El vector de asignacion contiene un valor de numero entero para cada banda 302 de frecuencias. El valor de numero entero para una banda 302 de frecuencias concreta senala al punto de distorsion de velocidad que debe usarse para la cuantificacion inversa de los coeficientes de transformadas de la banda 302 concreta. Dicho de otro modo, el valor de numero entero para la banda 302 de frecuencias concreta senala el cuantificador que debe usarse para la cuantificacion inversa de los coeficientes de transformadas de la banda 302 concreta. Un aumento del valor de numero entero en uno corresponde a un aumento de 1,5 dB en SNR. Para los cuantificadores 322 distorsionados y los cuantificadores 323 ordinarios, puede usarse un modelo de distribucion de probabilidad laplaciano en la codificacion sin perdidas, que puede emplear codificacion aritmetica. Puede usarse uno o mas cuantificadores 322 distorsionados para salvar la brecha de forma continuada entre los casos de baja y alta
5
10
15
20
25
30
35
velocidad de transferencia de bits. Los cuantificadores 322 distorsionados pueden ser beneficiosos a la hora de crear una calidad de audio de salida suficientemente uniforme para senales similares a ruido fijas.
Dicho de otro modo, el cuantificador 552 inverso puede configurarse para recibir los indices de cuantificacion de coeficientes de un bloque 131 actual de coeficientes de transformadas. El mdice o los indices de cuantificacion de coeficientes de una banda 302 de frecuencias concreta se han determinado usando un cuantificador correspondiente de un conjunto de cuantificadores predeterminado. El valor del vector de asignacion (que puede determinarse compensando la envolvente 138 de asignacion con el parametro de compensacion) para la banda 302 de frecuencias concreta indica el cuantificador que se ha usado para determinar el mdice o los indices de cuantificacion de coeficientes de la banda 302 de frecuencias concreta. Una vez identificado el cuantificador, el mdice o los indices de cuantificacion de coeficientes pueden cuantificarse inversamente para producir el bloque 145 de coeficientes de error cuantificados.
Por otra parte, el descodificador 502 espectral puede incluir una unidad 113 de reescalado inverso para proporcionar el bloque 147 de coeficientes de error cuantificados escalados. Las herramientas e interconexiones adicionales en torno al descodificador 551 sin perdidas y el cuantificador 552 inverso de la Figura 5d puede usarse para adaptar la descodificacion espectral a su uso en el descodificador 500 general mostrado en la Figura 5a, donde la salida del descodificador 502 espectral (es decir, el bloque 145 de coeficientes de error cuantificados) se usa para proporcionar una correccion aditiva a un vector de dominio nivelado predicho (es decir, al bloque 150 de coeficientes de transformadas estimados). En concreto, las herramientas adicionales pueden garantizar que el procesamiento llevado a cabo por el descodificador 500 se corresponda con el procesamiento llevado a cabo por el codificador 100, 170.
En concreto, el descodificador 502 espectral puede incluir una unidad 111 de escalado heunstico. Tal como se muestra en conjuncion con el codificador 100, 170, la unidad 111 de escalado heunstico puede tener efecto sobre la asignacion de bits. En el codificador 100, 170, los bloques 141 actuales de coeficientes de error de prediccion pueden escalarse a varianza unitaria mediante una regla heunstica. Como consecuencia, la asignacion predeterminada puede conducir a una cuantificacion demasiado fina de la salida reducida final de la unidad 111 de escalado heunstico. Por lo tanto la asignacion debena modificarse de manera similar a la modificacion de los coeficientes de error de prediccion.
Sin embargo, como se senala mas adelante, puede ser beneficioso evitar la reduccion de recursos de codificacion para uno o mas de los periodos de frecuencia baja (o bandas de frecuencia baja). En concreto, esto puede ser beneficioso para contrarrestar un artefacto de ruido sordo/ruido de baja frecuencia, que se suele dar mas en situaciones de emision de voz (es decir, para senales que tienen un parametro 146 de control relativamente amplio, rfu). Como tal, la asignacion de bits/seleccion de cuantificador en funcion del parametro 146 de control, que se describe mas adelante, puede considerarse que es un «reforzador de calidad en baja frecuencia adaptable a la voz humana».
El descodificador espectral puede depender de un parametro 146 de control llamado rfu que puede ser una version limitada de la ganancia g del predictor, p. ej.
rfu = mm(1, max(g,0)).
Pueden usarse metodos alternativos para determinar el parametro 146 de control, rfu. En concreto, el parametro 146 de control puede determinarse usando el seudocodigo que se muestra en la Tabla 1.
f_ganancia = f_pred_ganancia; si (f_ganancia < -1,0) f_rfu = 1,0; si (f_ganancia < 0.0)
f_rfu = -f_ganancia; si hay alguna (f_ganancia < 1,0) f_rfu = f_ganancia; si hay alguna (f_ganancia < 2,0) f_rfu = 2,0 - f_ganancia; alguna // f_ganancia >= 2,0 f_rfu = 0,0.
5
10
15
20
25
30
35
40
45
50
55
Tabla 1
Las variables f_ganancia y f_pred_ganancia pueden configurarse iguales. En concreto, la variable f_ganancia puede corresponder a la ganancia g del predictor. El parametro 146 de control, rfu, es referido como f_rfu en la Tabla 1. La ganancia f_ganancia puede ser un numero real.
Comparado con la primera definicion del parametro 146 de control, esta ultima definicion (segun la Tabla 1) reduce el parametro 146 de control, rfu, para las ganancias del predictor por encima de 1 y aumenta el parametro 146 de control, rfu, para las ganancias del predictor negativas.
Usando el parametro 146 de control, puede adaptarse el conjunto de cuantificadores usados en la unidad 112 de cuantificacion de coeficientes del codificador 100, 170 y usados en el cuantificador 552 inverso. En concreto, la ruidosidad del conjunto de cuantificadores puede adaptarse basandose en el parametro 146 de control. A modo de ejemplo, un valor del parametro 146 de control, rfu, proximo a 1, puede disparar una limitacion del intervalo de niveles de asignacion usando cuantificadores distorsionados y puede disparar una reduccion de la varianza del nivel de smtesis de ruido. En un ejemplo, puede fijarse un umbral de decision de distorsion en rfu = 0,75 y una ganancia de ruido igual a 1. La adaptacion de distorsion puede afectar tanto a la descodificacion sin perdidas como al cuantificador inverso, mientras que la adaptacion de ganancia de ruido normalmente solo afecta al cuantificador inverso.
Puede suponerse que la contribucion del predictor es basica para situaciones de voz o tonales. En ese sentido, una ganancia g del predictor relativamente alta (es decir, un parametro 146 de control relativamente altos) puede ser indicativo de una senal vocal de voz o tonal. En tales situaciones, la adicion de ruido relacionado con distorsion o ruido explfcito (caso de asignacion cero) ha demostrado empmcamente que es contraproducente para la calidad percibida de la senal codificada. Como consecuencia, el numero de cuantificadores 322 distorsionados y/o el tipo de ruido usado para el cuantificador 321 de smtesis de ruido pueden adaptarse basandose en la ganancia g del predictor, mejorando asf la calidad percibida de la senal vocal codificada.
Como tal, el parametro 146 de control puede usarse para modificar el intervalo 324, 325 de relaciones senal-ruido para las que se usan cuantificadores 322 distorsionados. A modo de ejemplo, si el parametro 146 de control rfu < 0,75, puede usarse el intervalo 324 para cuantificadores distorsionados. Dicho de otro modo, si el parametro 146 de control esta por debajo de un umbral predeterminado, puede usarse el primer conjunto 326 de cuantificadores. Por otra parte, si el parametro 146 de control rfu > 0,75, puede usarse el intervalo 325 para cuantificadores distorsionados. Dicho de otro modo, si el parametro 146 de control es superior o igual al umbral predeterminado, puede usarse el segundo conjunto 327 de cuantificadores.
Ademas, el parametro 146 de control puede usarse para modificacion de la varianza y la asignacion de bits. La razon de ello es que normalmente una prediccion con exito requerira una correccion mas pequena, especialmente en el intervalo de frecuencias mas bajas desde 0-1 kHz. Puede ser ventajoso hacer que el cuantificador sea expresamente consciente de esta desviacion del modelo de varianza unitario para liberar recursos de codificacion a bandas 302 de frecuencias mas altas. Esto se describe en el contexto de la figura 17c panel iii de WO2009/086918, cuyo contenido se incorpora como referencia. En el descodificador 500, esta modificacion puede incrementarse modificando el vector de asignacion nominal de acuerdo con la regla de escalado heunstico (aplicada usando la unidad 111 de escalado), y al mismo tiempo escalando la salida del cuantificador 552 inverso de acuerdo con una regla de escalado heunstico inverso usando la unidad 113 de escalado inverso. Siguiendo la teona de WO2009/086918, la regla de escalado heunstico y la regla de escalado heunstico inverso debenan ser muy similares. Sin embargo, se ha hallado que es empmcamente ventajoso cancelar la modificacion de asignacion para la banda o las bandas 302 de frecuencias mas bajas, para contrarrestar problemas ocasionales con ruido de baja frecuencia para componentes de senal de voz. La cancelacion de la modificacion de asignacion puede llevarse a cabo en funcion del valor de la ganancia g del predictor y/o del parametro 146 de control. En concreto, la cancelacion de la modificacion de asignacion puede efectuarse solo si el parametro 146 de control excede el umbral de decision de distorsion.
Por lo tanto, el presente documento describe medios para ajustar la composicion de la coleccion 326 de cuantificadores (p. ej. el numero de cuantificadores 323 no distorsionados y/o el numero de cuantificadores 322 distorsionados) basandose en informacion anexa (p. ej. el parametro 146 de control) que esta disponible en el codificador 100, 170 y en el descodificador 500 correspondiente. La composicion de la coleccion 326 de cuantificadores puede ajustarse en presencia de la ganancia g del predictor (p. ej. basandose en el parametro 146 de control). En concreto, el numero Ndist de cuantificadores 322 distorsionados puede incrementarse y el numero Ncc de cuantificadores 323 no distorsionados puede reducirse, si la ganancia g del predictor es relativamente baja. Ademas, el numero de bits asignados puede reducirse seleccionando cuantificadores relativamente mas gruesos. Por otra parte, el numero Ndist de cuantificadores 322 distorsionados puede reducirse y el numero Ncc de cuantificadores 323 no distorsionados puede incrementarse, si la ganancia g del predictor es relativamente grande. Ademas, el numero de bits asignados puede reducirse seleccionando cuantificadores relativamente mas gruesos.
Opcionalmente o ademas, la composicion de la coleccion 326 de cuantificadores puede ajustarse en presencia de un coeficiente de reflexion espectral. En concreto, el numero Ndist de cuantificadores 322 distorsionados puede
5
10
15
20
25
30
35
40
45
50
incrementarse en el caso de senales de siseo. Ademas, el numero de bits asignados puede reducirse seleccionando cuantificadores relativamente mas gruesos.
Se describe a continuacion un esquema ejemplificativo para determinar un coeficiente de reflexion espectral Rfc indicativo de una propiedad de siseo del extracto actual de la senal de entrada. Debe senalarse que el coeficiente de reflexion espectral Rfc es diferente del «coeficiente de reflexion» usado en el contexto de la modelizacion de fuente autorregresiva. El bloque 131 de coeficientes de transformadas puede dividirse en bandas 302 de frecuencias L. Puede definirse un vector Bw L-dimensional, en el que la entrada I®sima del vector Bw puede ser igual al numero de penodos 301 de transformadas que pertenecen a la banda 302 de frecuencias Iesima (I = 1, ..., L). De modo similar, puede definirse un , vector K-dimensional F, en el que la entrada I®sima puede ser igual al punto medio de la banda 302 de frecuencias I®sima, que se obtiene computando la media del mdice mas pequeno de un penodo 301 de transformadas y el mdice mas largo de un penodo 301 de transformadas que pertenecen a la banda 302 de frecuencias I®sima. Ademas, puede definirse un vector L-dimensional Spsd, en el que el vector Spsd puede comprender valores de la densidad espectral de potencia de la senal, que puede obtenerse convirtiendo los indices de cuantificacion relacionados con la envolvente de la escala de decibelios a la escala lineal. Ademas, puede definirse un mdice de penodos maximo Nnucieo que es el mdice de penodos mas amplio perteneciente a la banda 302 de frecuencias fesima. Puede determinarse un coeficiente de reflexion escalar Rfc como
Donde l designa una entrada Iesima de un vector L-dimensional.
En general, Rfc>0 indica un espectro dominado por su parte de alta frecuencia, y Rfc<0 indica un espectro dominado por su parte de baja frecuencia. El parametro Rfc puede usarse del modo siguiente: si el valor Rfu es bajo (es decir, si la ganancia de prediccion es baja) y si el Rfc > 0, cero indica un espectro correspondiente a una fricativa (es decir, sibilante sin voz). En este caso, puede usarse un numero relativamente mayor Ndist de cuantificadores 322 distorsionados dentro de la coleccion 326, 722 de cuantificadores.
En terminos generales, la coleccion 326 de cuantificadores (y los cuantificadores inversos correspondientes) pueden ajustarse basandose en informacion anexa (p. ej. el parametro 146 de control y/o el coeficiente de reflexion espectral) que esta disponible en el codificador 100 y en el descodificador 500 correspondiente. La informacion anexa puede extraerse de los parametros disponibles en el codificador 100 y el descodificador 500. Como se ha senalado antes, la ganancia g del predictor puede transmitirse al descodificador 500 y puede usarse antes de la cuantificacion inversa de los coeficientes de transformadas, para seleccionar la coleccion 326 apropiada de cuantificadores inversos. Opcionalmente o ademas, puede calcularse el valor aproximado de un coeficiente de reflexion basandose en la envolvente espectral que se transmite al descodificador 500.
La Fig. 7 muestra un diagrama de bloque de un metodo ejemplificativo para determinar una coleccion 326 de cuantificadores /cuantificadores inversos en el codificador 100 y en el descodificador 500 correspondiente. La informacion 721 anexa relevante (como el parametro g del predictor y/o el coeficiente de reflexion) pueden extraerse 701 del tren de bits. La informacion 721 anexa puede usarse para determinar 702 una coleccion 722 de cuantificadores que deben usarse para cuantificar los coeficientes del bloque actual y/o para cuantificar inversamente los indices de cuantificacion correspondientes. Aplicando el proceso 703 de asignacion de velocidad se usa un cuantificador concreto de la coleccion 722 de cuantificadores determinada para cuantificar los coeficientes de una banda 302 de frecuencias concreta y/o para cuantificar inversamente los indices de cuantificacion correspondientes. La seleccion 723 de cuantificador resultante del proceso 703 de asignacion de bits se usa dentro del proceso 703 de cuantificacion para producir los indices de cuantificacion y/o se usa dentro del proceso 713 de cuantificacion inversa para producir los coeficientes cuantificados.
Las Figuras 9a a 9c muestran ejemplos de resultados experimentales que pueden lograrse usando el sistema de codecs basados en transformadas descrito en el presente documento. En concreto, las Figuras 9a a 9c ilustran los beneficios de usar una coleccion 326 de cuantificadores ordenada que comprende uno o mas cuantificadores 322 distorsionados. La Figura 9a muestra el espectrograma 901 de una senal original. Puede verse que el espectrograma 901 incluye un contenido espectral de la gama de frecuencias identificadas por el cmculo blanco. La Figura 9b muestra el espectrograma 902 de una version cuantificada de la senal original (cuantificada a 22 kps). En el caso de la Figura 9b se uso relleno de ruido para la asignacion con velocidad cero y cuantificadores escalares. Puede verse que el espectrograma 902 muestra bloques espectrales relativamente grandes en la gama de frecuencias identificadas con un cfrculo blanco que se asocian a agujeros espectrales superficiales (denominados «espurios»). Estos bloques normalmente producen artefactos audibles. La Figura 9c muestra el espectrograma 903
5
10
15
20
25
30
35
40
45
50
55
de otra version cuantificada de la senal original (cuantificada a 22 kps). En el caso de la figura 9c se uso relleno de ruido para la asignacion con velocidad cero, cuantificadores distorsionados y cuantificadores escalares (tal como se describe en el presente documento). Puede verse que el espectrograma 903 no muestra grandes bloques espectrales asociados a agujeros espectrales en la gama de frecuencias identificadas por el cfrculo blanco. Las personas familiarizadas con la tecnica saben que la ausencia de tales bloques de cuantificacion es un indicio del mejor rendimiento perceptual del sistema de codecs basados en transformadas descrito en el presente documento.
Se describe a continuacion diversos aspectos adicionales de un codificador 100, 170 y/o un descodificador 500. Como se ha senalado antes, un codificador 100, 170 y/o un descodificador 500 pueden incluir una unidad 111 de reescalado que esta configurada para reescalar los coeficientes de error de prediccion A(k) para producir un bloque 142 de coeficientes de error reescalados. La unidad 111 de reescalado puede emplear una o mas reglas heunsticas predeterminadas para llevar a cabo el reescalado. En un ejemplo, la unidad 111 de reescalado puede emplear una regla heunstica de escalado que incluye la ganancia d(f), p. ej.
donde puede fijarse una frecuencia de ruptura f<0 en p. ej. 1000 Hz. Por lo tanto, la unidad 111 de reescalado puede configurarse para aplicar una ganancia d(f) dependiente de la frecuencia a los coeficientes de error de prediccion para producir el bloque 142 de coeficientes de error reescalados. La unidad 113 de reescalado inverso puede configurarse para aplicar una inversa de la ganancia d(f) dependiente de la frecuencia. La ganancia d(f) dependiente de la frecuencia puede depender del parametro de control rfu 146. En el anterior ejemplo, la ganancia d(f) muestra un caracter de paso bajo, de forma que los coeficientes de error de prediccion se atenuan mas con frecuencias altas que con frecuencias mas bajas y/o de forma que los coeficientes de error de prediccion se enfatizan mas con frecuencias mas bajas que con frecuencias mas altas. La ganancia d(f) antes mencionada es simple superior o igual a uno. Por lo tanto, en una realizacion preferida, la regla de escalado heunstico se aplica tal modo que los coeficientes de error de prediccion se enfatizan mediante un factor uno o mas (dependiendo de la frecuencia).
Debe senalarse que la ganancia dependiente de la frecuencia puede ser indicativa de una potencia o una varianza. En tales casos, la regla de escalado y la regla de escalado inverso deben obtenerse basandose en una raiz
cuadrada de la ganancia dependiente de la frecuencia, p. ej. basandose en
Mo
El grado de enfasis y/o atenuacion puede depender de la calidad de la prediccion lograda por el predictor 117. La ganancia g del predictor y/o el parametro de control rfu 146 pueden ser indicativos de la calidad de la prediccion. En concreto, un valor relativamente bajo del parametro de control rfu 146 (relativamente proximo a cero) puede ser indicativo de una baja calidad de la prediccion. En tales casos, cabe esperar que los coeficientes de error de prediccion tengan valores relativamente altos (absolutos) para todas las frecuencias. Un valor relativamente alto del parametro de control rfu 146 (relativamente proximo a uno) puede ser indicativo de una prediccion de alta calidad. En tales casos, se ha de esperar que los coeficientes de error de prediccion tengan valores relativamente altos (absolutos) para frecuencias altas (que son mas diffciles de predecir). Por lo tanto, para lograr la varianza unitaria en la salida de la unidad 111 de reescalado, la ganancia d(f) puede ser tal que en caso de una calidad de prediccion relativamente baja, la ganancia d(f) es basicamente plana para todas las frecuencias, si bien en caso de una calidad de prediccion relativamente alta, la ganancia d(f) tiene un caracter de paso bajo, para aumentar o potenciar la varianza en frecuencias bajas. Esto sucede asf para la ganancia d(f) dependiente de rfu antes mencionada.
Como se ha senalado antes, la unidad 110 de asignacion de bits puede configurarse para proporcionar una asignacion de bits relativa a los diferentes coeficientes de error reescalados, dependiendo del valor energetico correspondiente en la envolvente 138 de asignacion. La unidad 110 de asignacion de bits puede configurarse para tener en cuenta la regla de reescalado heunstico. La regla de reescalado heunstico puede depender de la calidad de la prediccion. En caso de una calidad de prediccion relativamente alta, puede ser beneficioso asignar un numero de bits relativamente mayor a la codificacion de los coeficientes de error de prediccion (o el bloque 142 de coeficientes de error reescalados) en altas frecuencias que a la codificacion de los coeficientes en bajas frecuencias. Esto puede deberse al hecho de que en caso de una prediccion de alta calidad, los coeficientes de baja frecuencia estan ya bien predichos, mientras que los coeficientes de alta frecuencia normalmente estan peor predichos. Por otra parte, en caso de una calidad de prediccion relativamente baja, la asignacion de bits debena permanecer sin cambios.
El comportamiento senalado puede implementarse aplicando una inversa de las reglas heunsticas/ ganancia d(f) a la envolvente 139 ajustada actual, para determinar una envolvente 138 de asignacion que tenga en cuenta la calidad de prediccion.
La envolvente 139 ajustada, los coeficientes de error de prediccion y la ganancia d(f) pueden representarse en el dominio de registro o de decibelios. En tal caso, la aplicacion de la ganancia d(f) a los coeficientes de error de prediccion puede corresponder a una operacion de «anadir» y la aplicacion de la inversa de la ganancia d(f) a la envolvente 139 ajustada puede corresponder a una operacion de «sustraer».
10
15
20
25
30
35
Debe senalarse que son posibles diversas variantes de las reglas heuristicas / ganancia d(f). En concreto, la curva
dependiente de frecuencia fija del caracter de paso bajo ^ Kfo/ 7 puede reemplazarse por una funcion que depende de los datos de envolvente (p. ej. de la envolvente 139 ajustada para el bloque 131 actual). Las reglas heunsticas modificadas pueden depender tanto del parametro de control rfu 146 como de los datos de envolvente.
Se describe a continuacion diferentes formas de determinar una ganancia p del predictor, que pueden corresponder a la ganancia g del predictor. La ganancia p del predictor puede usarse como indicio de la calidad de la prediccion. El vector residual de prediccion (es decir, el bloque 141 de coeficientes de error de prediccion z puede expresarse como: z = x - py, donde x es el vector objetivo (p. ej. el bloque 140 actual de coeficientes de transformadas suavizados o el bloque 131 actual de coeficientes de transformadas), y es un vector que representa el candidato elegido para la prediccion (p. ej. un bloque 149 previo de coeficientes de transformadas), y p es la ganancia del predictor (escalar).
w > 0 puede ser un vector de ponderacion usado para la determinacion de la ganancia p del predictor. En algunas realizaciones, el vector de ponderacion es una funcion de la envolvente de senal (p. ej. una funcion de la envolvente 139 ajustada, que puede calcularse en el codificador 100, 170 y luego transmitirse al descodificador 500). El vector de ponderacion normalmente tiene la misma dimension que el vector objetivo y el vector candidato. Una entrada i- esima del vector x puede indicarse como Xi (p. ej. i=1, ,,. ,K).
Hay diferentes modos de definir la ganancia p del predictor. En una realizacion, la ganancia p del predictor es una ganancia de MMSE (error medio cuadratico mmimo) definida segun el criterio de error medio cuadratico mmimo. En este caso, la ganancia p del predictor puede calcularse mediante la siguiente formula:
Esta ganancia p del predictor tfpicamente minimiza el error medio cuadratico definido como
Suele ser (perceptualmente) beneficioso introducir ponderacion en la definicion del error medio cuadratico D. la ponderacion puede usarse para enfatizar la importancia de una correspondencia entre x e y para partes perceptualmente importantes del espectro de la senal y desenfatizar la importancia de una correspondencia entre x e y para partes del espectro de la senal que son relativamente menos importantes. Tal enfoque deriva en el
D = ^:-pyifw,,
siguiente criterio de error: ‘ que Neva a la siguiente definicion de la ganancia del predictor
optima (en el sentido del error medio cuadratico ponderado):
La anterior definicion de la ganancia del predictor tfpicamente da como resultado una ganancia que es ilimitada. Como se ha indicado antes, los coeficientes de ponderacion Wj del vector de ponderacion pueden determinarse basandose en la envolvente 139 ajustada. Por ejemplo, el vector de ponderacion w puede determinarse usando una funcion predefinida de la envolvente 139 ajustada. La funcion predefinida puede conocerse en el codificador y el descodificador (lo que es el caso tambien para la envolvente 139 ajustada). Por lo tanto, el vector de ponderacion puede determinarse de la misma manera en el codificador y en el descodificador.
Otra posible formula de ganancia del predictor se expresa como
2C P =
E, + Ey
C = Z Wi > £*=Z WiXi Ey = Z W ■
donde * i y i Esta definicion de la ganancia del predictor produce una
ganancia que esta siempre dentro del intervalo [-1, 1]. Una importante caractenstica de la ganancia del predictor especificada por esta ultima formula es que la ganancia p del predictor facilita una relacion manejable entre la
5
10
15
20
25
30
35
40
45
energia de la serial objetivo xy la energia de la serial residual z. La energia residual LTP puede expresarse como:
El parametro de control rfu 146 puede determinarse basandose en la ganancia g del predictor mediante las formulas antes mencionadas. La ganancia g del predictor puede ser igual a la ganancia p del predictor, determinada mediante cualquiera de las formulas antes mencionadas.
Como se ha senalado antes, el codificador 100, 170 esta configurado para cuantificar y codificar el vector residual z (es decir, el bloque 141 de coeficientes de error de prediccion). El proceso de cuantificacion es orientado tipicamente por la envolvente de senal (p. ej. la envolvente 138 de asignacion) segun un modelo perceptual subyacente para distribuir los bits disponibles entre los componentes espectrales de la senal de un modo perceptualmente significativo. El proceso de asignacion de bits es guiado por la envolvente de senal (p. ej. por la envolvente 138 de asignacion), que se obtiene de la senal de entrada (p. ej. del bloque 131 de coeficientes de transformadas). El funcionamiento del predictor 117 normalmente cambia la envolvente de senal. La unidad 112 de cuantificacion tipicamente utiliza cuantificadores que estan disenados partiendo de un funcionamiento en una fuente de varianza unitaria. Especialmente en el caso de prediccion de alta calidad (es decir, cuando el predictor 117 tiene exito), la propiedad de varianza unitaria puede no ser ya el caso, es decir, el bloque 141 de coeficientes de error de prediccion puede que no muestre varianza unitaria.
Tfpicamente no resulta eficiente calcular la envolvente del bloque 141 de coeficientes de error de prediccion (es decir, para la residual z) y transmitir esta envolvente al descodificador (y reaplanar el bloque 141 de coeficientes de error de prediccion usando la envolvente estimada). En vez de eso, el codificador 100 y el descodificador 500 pueden emplear una regla heunstica para reescalar el bloque 141 de coeficientes de error de prediccion (como se ha senalado antes). La regla heunstica puede usarse para reescalar el bloque 141 de coeficientes de error de prediccion, de forma que el bloque 142 de coeficientes reescalados se aproxime a la varianza unitaria. Como resultado de ello, pueden mejorarse los resultados de la cuantificacion (usando cuantificadores que partan de varianza unitaria).
Ademas, como ya se ha senalado, la regla heunstica puede usarse para modificar la envolvente 138 de asignacion, que se usa para el proceso de asignacion de bits. La modificacion de la envolvente 138 de asignacion y el reescalado del bloque 141 de coeficientes de error de prediccion son realizados tipicamente por el codificador 100 y por el descodificador 500 de la misma manera (aplicando la misma regla heunstica).
Se ha descrito antes una posible regla heunstica d(f). Se describe a continuacion otro enfoque para determinar una regla heunstica. Puede expresarse una inversa de la ganancia de prediccion energetica de dominio ponderado con p
e [0,1], de forma que
I2 -
l w
= p\\x\\l
’en la que HzHwindica la energia cuadratica del vector residual (es decir, el
Ill’llw indica la energia
bloque 141 de coeficientes de error de prediccion) en el dominio ponderado y en la que
cuadratica del vector objetivo (es decir, el bloque 140 de coeficientes de transformadas suavizados) en el dominio ponderado.
Puede partirse de los siguientes supuestos:
1. Las entradas del vector objetivo x tienen varianza unitaria. Esto puede ser resultado del aplanamiento realizado por la unidad 108 de aplanamiento. Esta premisa se cumple dependiendo de la calidad del aplanamiento basado en la envolvente llevado a cabo por la unidad 108 de aplanamiento.
2. La varianza de las entradas del vector residual de prediccion z tiene la forma de
para / = 1, ..., K y para algunos t > 0. Este supuesto se basa en la heunstica de que una busqueda del predictor orientada a minimos cuadrados conduce a una contribucion de error
distribuido uniformemente en el dominio ponderado, de forma que el vector residual Jwz es mas o menos plano. Por otra parte, puede esperarse que el candidato del predictor sea proximo a plano, lo que conduce al lfmite razonable E{z2(/)} < 1. Debe senalarse que pueden usarse diversas modificaciones de este segundo supuesto.
Para calcular el parametro t, se puede insertar los dos supuestos mencionados en la formula de error de prediccion (p. ej. < ) y proporcionar por lo tanto la ecuacion de «tipo nivel del agua»
2jntn {t,w(0) = p^w(i)
5
10
15
20
25
30
35
40
45
50
Puede verse que existe una solucion para la ecuacion expuesta en el intervalo t E [0, max(w(i))]. La ecuacion para encontrar el parametro t puede resolverse usando rutinas de seleccion.
dCO
Esta regla heunstica puede entonces expresarse como
W4
en la que i = 1,
K identifica el
mm
~7FT\ = WO
1=5-4
periodo de frecuencias. La inversa de la regia de escalado heuristico se expresa como <0 ' La
inversa de la regla de escalado heuristico es aplicada por la unidad 113 de reescalado inverso. La regla de escalado dependiente de la frecuencia depende de los coeficientes de ponderacion w(i) = w. Como se ha indicado antes, los coeficientes de ponderacion w(i) pueden depender de o corresponder al bloque 131 actual de coeficientes de transformadas (p. ej. la envolvente 139 ajustada, o alguna funcion predefinida de la envolvente 139 ajustada).
2C
p =----------
E + E
Puede verse que cuando se usa la formula 1 -v para determinar la ganancia del predictor, se aplica la
siguiente relacion: p = 1 - p2
Por lo tanto, una regla de escalado heunstico puede determinarse de diversas maneras. Se ha demostrado experimentalmente que la regla de escalado que se determina basandose en los dos supuestos antes mencionados (referidos como metodo de escalado B) es ventajosa comparado con la regla de escalado fijo d(f). En concreto, la regla de escalado que se determina basandose en los dos supuestos puede tener en cuenta el efecto de sopesado usado en el curso de una busqueda de candidato del predictor. El metodo de escalado B se combina
2 C
convenientemente con la definicion de la ganancia ■ .>■■ debido a la relacion analiticamente manejable entre
la varianza de la residual y la varianza de la senal (que facilita la obtencion de p como se ha senalado antes).
Se describe a continuacion un aspecto mas para mejorar el rendimiento del codificador de audio basado en transformadas. En concreto, se propone el uso de un asf llamado indicador de conservacion de varianza. El indicador de conservacion de varianza puede determinarse y transmitirse por bloques 131. El indicador de conservacion de varianza puede ser indicativo de la calidad de la prediccion. En una realizacion, el indicador de conservacion de varianza esta desactivado en caso de una calidad de prediccion relativamente alta, y esta activado en caso de una calidad de prediccion relativamente baja. El indicador de conservacion de varianza puede ser determinado por el codificador 100, 170, p. ej. basandose en la ganancia p del predictor y/o basandose en la ganancia g del predictor. A modo de ejemplo, el indicador de conservacion de varianza puede establecerse en «activado» si la ganancia p o g del predictor (o un parametro derivado de estas) esta por debajo de un umbral predeterminado (p. ej. 2 dB) y viceversa. Como se ha senalado antes, la inversa de la ganancia p de prediccion energetica de dominio ponderado depende normalmente de la ganancia del predictor, p. ej. p = 1 - p2. La inversa del parametro p puede usarse para determinar un valor del indicador de conservacion de varianza. A modo de ejemplo, 1/p (p. ej. expresado en decibelios) puede compararse con un umbral predeterminado (p. ej. 2 dB), para determinar el valor del indicador de conservacion de varianza. Si 1/p es superior al umbral predeterminado, el indicador de conservacion de varianza puede establecerse en «desactivado» (lo que indica una calidad de prediccion relativamente alta), y viceversa.
El indicador de conservacion de varianza puede usarse para controlar diversas configuraciones del codificador 100 y del descodificador 500. En concreto, el indicador de conservacion de varianza puede usarse para controlar el grado de ruidosidad de la pluralidad de cuantificadores 321, 322, 323. En concreto, el indicador de conservacion de varianza puede afectar a una o mas de las siguientes configuraciones:
• Ganancia de ruido adaptativa para asignacion de bits cero. Dicho de otro modo, la ganancia de ruido del cuantificador 321 de smtesis de ruido puede verse afectada por el indicador de conservacion de varianza.
• Intervalo de cuantificadores distorsionados. Dicho de otro modo, el intervalo 324, 325 de relaciones senal-ruido para el que se usa cuantificadores 322 distorsionados puede verse afectado por el indicador de conservacion de varianza.
• Post-ganancia de los cuantificadores distorsionados. Puede aplicarse una post-ganancia a la salida de los cuantificadores distorsionados, para afectar al rendimiento en cuanto a error medio cuadratico de los cuantificadores distorsionados. La post-ganancia puede depender del indicador de conservacion de varianza.
• Aplicacion de escalado heunstico. El uso de escalado heuristico (en la unidad 111 de reescalado y en la unidad 113 de reescalado inverso) puede depender del indicador de conservacion de varianza.
En la tabla 2 se proporciona un ejemplo de como el indicador de conservacion de varianza puede cambiar una o mas configuraciones del codificador 100 y/o el descodificador 500.
5
10
15
20
25
30
35
- Tipo de configuracion
- Conservacion de varianza desactivado Conservacion de varianza activado
- Ganancia de ruido
- gN = (1 - rfu) 9n = V(1 - rfu2)
- Intervalo de cuantificadores distorsionados
- Depende del parametro de control rfu Esta fijado a un intervalo relativamente amplio (p. ej. al intervalo mas amplio posible )
- Post-ganancia de los cuantificadores distorsionados.
- Yo= 'Ta: JXi =yfh cr; + — -Y 12
- II 3 Y = max(Yo,gN'Y1)
- Regla de escalado heunstico
- Activado Desactivado
Tabla 2
2 _ 1
En la formula para la post-ganancia, x ~ J es una varianza de uno o mas de los coeficientes del bloque 141 de coeficientes de error de prediccion (que deben cuantificarse), y A es un tamano de paso de cuantificador de un cuantificador (612) escalar del cuantificador distorsionado al que se aplica la post-ganancia.
Como puede verse en el ejemplo de la Tabla 2, la ganancia gN del cuantificador 321 de smtesis de ruido (es decir, la varianza del cuantificador 321 de smtesis de ruido) puede depender del indicador de conservacion de varianza. Como se ha senalado antes, el parametro de control rfu 146 puede encontrarse en el intervalo [0, 1], en el que un valor de rfu relativamente bajo indica una calidad de prediccion relativamente baja y un valor de rfu relativamente alto indica una calidad de prediccion relativamente alta. Para valores de rfu en el intervalo de [0, 1], la formula de la columna izquierda proporciona ganancias de ruido gN mas bajas que la formula de la columna derecha. Por lo tanto, cuando el indicador de conservacion de varianza esta activado (lo que indica una calidad de prediccion relativamente baja), se usa una ganancia de ruido mas alta que cuando el indicador de conservacion de varianza esta desactivado (lo que indica una calidad de prediccion relativamente alta). Se ha demostrado experimentalmente que esto mejora la calidad perceptual global.
Como se ha senalado antes, la gama de relaciones senal-ruido de 324, 325 de los cuantificadores 322 distorsionados puede variar dependiendo del parametro de control rfu. Segun la Tabla 2, cuando el indicador de conservacion de variacion esta activado (lo que indica una calidad de prediccion relativamente baja), se usa un intervalo amplio fijo de cuantificadores 322 distorsionados (p. ej. el intervalo 324). Por otra parte, cuando el indicador de conservacion de varianza esta desactivado (lo que indica una calidad de prediccion relativamente alta), se usa diferentes intervalos 324, 325, dependiendo del parametro de control rfu.
Como se ha senalado antes, la determinacion del bloque 145 de coeficientes de error cuantificados puede implicar la aplicacion de una post-ganancia y a los coeficientes de error cuantificados, que se han cuantificado usando un cuantificador 322 distorsionado. La post-ganancia y puede obtenerse para mejorar el rendimiento en MSE de un cuantificador 322 distorsionado (p. ej. un cuantificador con una distorsion sustractiva).
Se ha demostrado experimentalmente que la calidad de codificacion perceptual puede mejorarse cuando se hace que la post-ganancia dependa del indicador de conservacion de varianza. Se usa la post-ganancia optima MSE antes mencionada, cuando el indicador de conservacion de varianza esta desactivado (lo que indica una calidad de prediccion relativamente alta). Por otra parte, cuando el indicador de conservacion de varianza esta activado (lo que indica una calidad de prediccion relativamente baja), puede ser beneficioso usar una post-ganancia mas alta (determinada de acuerdo con la formula del lado derecho de la Tabla 2).
Como se ha senalado antes, puede usarse escalado heunstico para proporcionar bloques 142 de coeficientes de error reescalados que estan mas proximos a la propiedad de varianza unitaria que los bloques 141 de coeficientes de error de prediccion. Las reglas de escalado heunstico pueden hacerse depender del parametro 146 de control. Dicho de otro modo, las reglas de escalado heunstico pueden hacerse depender de la calidad de prediccion. El escalado heunstico puede ser especialmente beneficioso en caso de una calidad de prediccion relativamente alta, mientras que los beneficios pueden ser limitados en caso de una calidad de prediccion relativamente baja. En vista de esto, puede ser beneficioso usar unicamente escalado heunstico cuando el indicador de conservacion de varianza este desactivado (lo que indica una calidad de prediccion relativamente alta).
5
10
15
20
25
30
En el presente documento, se ha descrito un codificador 100, 170 vocal basado en transformadas y un descodificador 500 vocal basado en transformadas correspondiente. El codec vocal basado en transformadas puede utilizar diversos aspectos que permiten mejorar la calidad de las senales vocales codificadas. En concreto, el codec vocal puede configurarse para crear una coleccion ordenada de cuantificadores que comprende cuantificadores clasicos (no distorsionado), cuantificadores con distorsion sustractiva, y relleno de ruido con «velocidad cero». La coleccion ordenada de cuantificadores puede crearse de tal modo que la coleccion ordenada facilite el proceso de asignacion de velocidad de acuerdo con un modelo perceptual parametrizado por la envolvente de senal y por el parametro de asignacion de velocidad. La composicion de la coleccion de cuantificadores puede configurarse en presencia de informacion anexa (p. ej. la ganancia del predictor) para mejorar el rendimiento perceptual del esquema de cuantificacion. Puede usarse un algoritmo de asignacion, que facilita el uso de la coleccion ordenada de cuantificadores sin necesidad de senalizacion adicional para el descodificador, p. ej. senalizacion adicional relacionada con una composicion particular de la coleccion de cuantificadores que se uso en el codificador y/o relacionada con la senal de distorsion que se uso para implementar los cuantificadores distorsionados. Ademas, puede usarse un algoritmo de asignacion de velocidad, que facilita el uso de un codificador aritmetico (o un codificador de intervalos) en presencia de una limitacion de velocidad de transferencia de bits (p. ej. una limitacion en el numero maximo permitido de bits y/o una limitacion en la longitud maxima permisible del mensaje). Ademas, la coleccion ordenada de cuantificadores facilita el uso de cuantificadores distorsionados, mientras que permite la asignacion de 0 bits a bandas de frecuencias concretas. Por otra parte, puede usarse un algoritmo de asignacion de velocidad, que facilita el uso de la coleccion ordenada de cuantificadores en conjuncion con codificacion de Huffman.
Los metodos y sistemas descritos en el presente documento pueden implementarse como software, firmware y/o hardware. Determinados componentes pueden p. ej. implementarse como software ejecutable en un procesador o microprocesador de senales digitales. Otros componentes pueden p. ej. implementarse como hardware y como circuitos integrados espedficos de aplicaciones. Las senales presentes en los metodos y sistemas descritos pueden almacenarse en medios tales como memoria de acceso aleatorio o medios de almacenamiento optico. Pueden transferirse por redes, tales como redes de radio, redes satelitales, redes inalambricas o redes cableadas, p. ej. Internet. Los dispositivos tfpicos que emplean los metodos y sistemas descritos en el presente documento son los dispositivos electronicos portatiles u otros equipos de consumidores que se usan para almacenar y/o reproducir senales de audio.
Claims (15)
- 51015202530354045REIVINDICACIONES1. Una unidad (112) de cuantificacion configurada para cuantificar un primer coeficiente de un bloque (141) de coeficientes; en la que el bloque (141) de coeficientes comprende una pluralidad de coeficientes para una pluralidad de penodos (301) de frecuencia correspondientes; en la que la unidad (112) de cuantificacion esta configurada para- proporcionar un conjunto (326, 327) de cuantificadores; en la que el conjunto (326, 327) de cuantificadores comprende un numero limitado de cuantificadores (321, 322, 323) asociados a diferentes relaciones senal-ruido, referidas como SNR, respectivamente; en la que los diferentes cuantificadores del conjunto de cuantificadores estan ordenados de acuerdo con su SNR; el conjunto (326, 327) de cuantificadores (321, 322, 323) incluye- un cuantificador (321) de relleno de ruido; en el que el cuantificador (321) de relleno de ruido esta configurado para cuantificar el primer coeficiente reemplazando un valor del primer coeficiente por un valor aleatorio generado de acuerdo con un modelo estadfstico predeterminado;- uno o mas cuantificadores (322) distorsionados; y- uno o mas cuantificadores (323) deterministas no distorsionados;- determinar una indicacion de SNR indicativa de una SNR atribuida al primer coeficiente;- seleccionar un primer cuantificador del conjunto (326, 327) de cuantificadores, basandose en la indicacion de SNR; y- cuantificar el primer coeficiente usando el primer cuantificador.
- 2. La unidad (112) de cuantificacion de la reivindicacion 1, en la que- el cuantificador (321) de relleno de ruido esta asociado a la relacion senal-ruido relativamente mas baja de las diferentes SNR;- el cuantificador o los cuantificadores (323) deterministas no distorsionados estan asociados a una o mas SNR relativamente mas altas de las diferentes SNR; y- el cuantificador o los cuantificadores (322) distorsionados estan asociados a una o mas SNR intermedias, mayores que la SNR relativamente mas baja y menores que la SNR o las SNR relativamente mas altas de las diferentes SNR.
- 3. La unidad (112) de cuantificacion de cualquier reivindicacion anterior, en la que el conjunto de cuantificadores esta ordenado de acuerdo con SNR crecientes asociadas a los diferentes cuantificadores.
- 4. La unidad (112) de cuantificacion de la reivindicacion 3, en la que- una diferencia de SNR viene dada por la diferencia de las SNR asociadas a un par de cuantificadores adyacentes del conjunto de cuantificadores ordenado; y- las diferencias de SNR para todos los pares de cuantificadores adyacentes de los diferentes cuantificadores corresponden a un intervalo de diferencias de SNR predeterminado centrado alrededor de una diferencia objetivo de SNR predeterminada.
- 5. La unidad (112) de cuantificacion de cualquier reivindicacion anterior, en la que un cuantificador (322) distorsionado concreto del cuantificador o los cuantificadores (322) distorsionados comprende- una unidad (611) de aplicacion de distorsion configurada para determinar un primer coeficiente distorsionado aplicando un valor de distorsion al primer coeficiente; y- un cuantificador (612) escalar configurado para determinar un primer mdice de cuantificacion asignando el primer coeficiente distorsionado a un intervalo del cuantificador (612) escalar.
- 6. La unidad (112) de cuantificacion de la reivindicacion 5, en la que el cuantificador (322) distorsionado concreto del cuantificador o los cuantificadores (322) distorsionados comprende ademas- un cuantificador (612) escalar inverso configurado para asignar un primer valor de reconstruccion al primer mdice de cuantificacion;- una unidad (613) de eliminacion de distorsion configurada para determinar un primer coeficiente no distorsionado eliminando el valor de distorsion del primer valor de reconstruccion.
- 7. La unidad (112) de cuantificacion de cualquier reivindicacion anterior, en la que3651015202530354045- el bloque (141) de coeficientes se asocia a una envolvente (136) de bloque espectral;- la envolvente (136) de bloque espectral es indicativa de una pluralidad de valores (303) energeticos espectrales para la pluralidad de penodos (301) de frecuencia; y- la indicacion de SNR depende de la envolvente (136) de bloque espectral.
- 8. Una unidad (552) de cuantificacion inversa configurada para descuantificar indices de cuantificacion; en la que los indices de cuantificacion estan asociados a un bloque de coeficientes que comprende una pluralidad de coeficientes para una pluralidad de penodos (301) de frecuencia correspondientes; en la que la unidad (552) de cuantificacion inversa esta configurada para- proporcionar un conjunto (326, 327) de cuantificadores; en la que el conjunto (326, 327) de cuantificadores comprende un numero limitado de cuantificadores (321, 322, 323) diferentes asociados a diferentes relaciones senal-ruido, referidas como SNR, respectivamente; en la que los diferentes cuantificadores del conjunto (326, 327) de cuantificadores estan ordenados de acuerdo con su SNR; el conjunto (326, 327) de cuantificadores (321, 322, 323) incluye- un cuantificador (321) de relleno de ruido; en el que el cuantificador (321) de relleno de ruido esta configurado para cuantificar un coeficiente reemplazando un valor del coeficiente por un valor aleatorio generado de acuerdo con un modelo estadfstico predeterminado;- uno o mas cuantificadores (322) distorsionados; y- uno o mas cuantificadores (323) deterministas no distorsionados;- determinar una indicacion de SNR indicativa de una SNR atribuida a un primer coeficiente del bloque de coeficientes;- seleccionar un primer cuantificador del conjunto (326, 327) de cuantificadores, basandose en la indicacion de SNR; y- descodificar un mdice de cuantificacion asociado a un primer coeficiente cuantificado para el primer coeficiente que utiliza el primer cuantificador.
- 9. Un codificador (100, 170) vocal basado en transformadas configurado para codificar una senal vocal en un tren de bits; el codificador (100, 170) comprende- una unidad (101) de estructuracion configurada para recibir una pluralidad de bloques (131) secuenciales de coeficientes de transformadas que comprende un bloque (131) actual y uno o mas bloques (131) previos; en la que la pluralidad de bloques (131) secuenciales es indicativa de muestras de la senal vocal;- una unidad (108) de aplanamiento configurada para determinar un bloque (140) actual de coeficientes de transformadas suavizados aplanando el bloque (131) actual correspondiente de coeficientes de transformadas mediante una envolvente (136) del bloque actual correspondiente;- un predictor (117) configurado para determinar un bloque (150) actual de coeficientes de transformadas suavizados estimados basandose en uno o mas bloques (149) previos de coeficientes de transformadas reconstruidos y en uno o mas parametros (520) del predictor; en el que el bloque o los bloques (149) previos de coeficientes de transformadas reconstruidos se han obtenido del bloque o los bloques (131) previos de coeficientes de transformadas;- una unidad (115) diferencial configurada para determinar un bloque (141) actual de coeficientes de error de prediccion basandose en el bloque (140) actual de coeficientes de transformadas suavizados y basandose en el bloque (150) actual de coeficientes de transformadas suavizados estimados; y- una unidad (112) de cuantificacion de acuerdo con cualquiera de las reivindicaciones 1 a 7, configurada para cuantificarcoeficientes obtenidos del bloque (141) actual de coeficientes de error de prediccion; en la que los datos (163) de coeficiente para el tren de bits se determinan basandose en indices de cuantificacion asociados a los coeficientes cuantificados, en la que opcionalmente- un bloque (131) de coeficientes de transformadas comprende coeficientes MDCT; y/o- un bloque (131) de coeficientes de transformadas comprende 256 coeficientes de transformadas en 256 penodos (301) de frecuencias.5101520253035404550
- 10. El codificador (100, 170) vocal basado en transformadas de la reivindicacion 9, que comprende ademas una unidad (111) de escalado configurada para determinar un bloque (142) actual de coeficientes de error reescalados basandose en el bloque (141) actual de coeficientes de error de prediccion mediante una o mas reglas de escalado, de tal forma que por termino medio una varianza de los coeficientes de error reescalados del bloque (142) actual de coeficientes de error reescalados es mayor que una varianza de los coeficientes de error de prediccion del bloque (141) actual de coeficientes de error de prediccion, en el que- el bloque (141) actual de coeficientes de error de prediccion comprende una pluralidad de coeficientes de error de prediccion para una correspondiente pluralidad de penodos (301) de frecuencia; y- Las ganancias de escalado que son aplicadas por la unidad (111) de escalado a los coeficientes de error de prediccion de acuerdo con la regla o las reglas de escalado dependen de los penodos (301) de frecuencia de los coeficientes de error de prediccion respectivos.
- 11. El codificador (100, 170) vocal basado en transformadas de cualquiera de las reivindicaciones 9 o 10, en el que- el predictor (117) esta configurado para determinar el bloque (150) actual de coeficientes de transformadas suavizados estimados aplicando un criterio de error medio cuadratico ponderado; y- el criterio de error medio cuadratico ponderado tiene en cuenta la envolvente (136) del bloque actual como coeficientes de ponderacion.
- 12. El codificador (100, 170) vocal basado en transformadas de cualquiera de las reivindicaciones 9 a 11, en el que- el codificador (100, 170) vocal basado en transformadas comprende ademas una unidad (109, 110, 171, 172) de asignacion de bits configurada para determinar un vector de asignacion basado en la envolvente (136) del bloque actual; y- el vector de asignacion es indicativo de un primer cuantificador del conjunto (326, 327) de cuantificadores predeterminados que deben usarse para cuantificar un primer coeficiente derivado del bloque (141) actual de coeficientes de error de prediccion.
- 13. Un descodificador (500) vocal basado en transformadas configurado para descodificar un tren de bits para proporcionar una senal vocal reconstruida; el descodificador (500) comprende- un predictor (517) configurado para determinar un bloque (150) actual de coeficientes de transformadas suavizados estimados basandose en uno o mas bloques (149) previos de coeficientes de transformadas reconstruidos y basandose en uno o mas parametros (520) del predictor obtenidos del tren de bits;- una unidad (552) de cuantificacion inversa de acuerdo con la reivindicacion 8, configurada para determinar un bloque (147) actual de coeficientes de error de prediccion cuantificados basandose en datos (163) de coeficiente incluidos en el tren de bits, usando un conjunto (326, 327) de cuantificadores predeterminados;- una unidad (116) de adicion configurada para determinar un bloque (148) actual de coeficientes de transformadas suavizados reconstruidos basandose en el bloque (150) actual de coeficientes de transformadas suavizados estimados y basandose en el bloque (147) actual de coeficientes de error de prediccion cuantificados; y- una unidad (114) de aplanamiento inverso configurada para determinar un bloque (149) actual de coeficientes de transformadas reconstruidos proporcionando al bloque (148) actual de coeficientes de transformadas suavizados reconstruidos una forma espectral, usando una envolvente (136) de bloque actual; en la que la senal vocal reconstruida se determina basandose en el bloque (149) actual de coeficientes de transformadas reconstruidos.
- 14. Un metodo para cuantificar un primer coeficiente de un bloque (141) de coeficientes; en el que el bloque (141) de coeficientes comprende una pluralidad de coeficientes para una pluralidad de penodos (301) de frecuencia correspondientes; en el que el metodo comprende- proporcionar un conjunto (326, 327) de cuantificadores; en el que el conjunto (326, 327) de cuantificadores comprende una pluralidad de cuantificadores (321, 322, 323) diferentes asociados a una pluralidad de relaciones senal-ruido diferentes, referidas como SNR, respectivamente, y la pluralidad de cuantificadores (321, 322, 323) incluye- un cuantificador (321) de relleno de ruido; en el que el cuantificador (321) de relleno de ruido esta configurado para cuantificar el primer coeficiente reemplazando un valor del primer coeficiente por un valor aleatorio generado de acuerdo con un modelo estadfstico predeterminado;- uno o mas cuantificadores (322) distorsionados; y38101520- uno o mas cuantificadores (323) deterministas no distorsionados;- determinar una indicacion de SNR indicativa de una SNR atribuida al primer coeficiente;- seleccionar un primer cuantificador del conjunto (326, 327) de cuantificadores, basandose en la indicacion de SNR; y- cuantificar el primer coeficiente usando el primer cuantificador.
- 15. Un metodo para descuantificar indices de cuantificacion; en el que los indices de cuantificacion se asocian a un bloque (141) de coeficientes que comprende una pluralidad de coeficientes para una pluralidad de penodos (301) de frecuencia correspondientes; en el que el metodo comprende- proporcionar un conjunto (326, 327) de cuantificadores; en el que el conjunto (326, 327) de cuantificadores comprende una pluralidad de cuantificadores (321, 322, 323) diferentes asociados a una pluralidad de relaciones senal-ruido diferentes, referidas como SNR, respectivamente, y la pluralidad de cuantificadores (321, 322, 323) diferentes incluye- un cuantificador (321) de relleno de ruido; en el que el cuantificador (321) de relleno de ruido esta configurado para cuantificar un coeficiente reemplazando un valor del coeficiente por un valor aleatorio generado de acuerdo con un modelo estadfstico predeterminado;- uno o mas cuantificadores (322) distorsionados; y- uno o mas cuantificadores (323) deterministas no distorsionados;- determinar una indicacion de SNR indicativa de una SNR atribuida a un primer coeficiente del bloque (141) de coeficientes;- seleccionar un primer cuantificador del conjunto (326, 327) de cuantificadores, basandose en la indicacion de SNR; y- descuantificar un mdice de cuantificacion asociado a un primer coeficiente cuantificado para el primer coeficiente usando el primer cuantificador.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361808673P | 2013-04-05 | 2013-04-05 | |
US201361808673P | 2013-04-05 | ||
US201361875817P | 2013-09-10 | 2013-09-10 | |
US201361875817P | 2013-09-10 | ||
PCT/EP2014/056855 WO2014161994A2 (en) | 2013-04-05 | 2014-04-04 | Advanced quantizer |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2628127T3 true ES2628127T3 (es) | 2017-08-01 |
Family
ID=50442507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES14715894.3T Active ES2628127T3 (es) | 2013-04-05 | 2014-04-04 | Cuantificador avanzado |
Country Status (10)
Country | Link |
---|---|
US (2) | US9940942B2 (es) |
EP (2) | EP3217398B1 (es) |
JP (3) | JP6158421B2 (es) |
KR (3) | KR102072365B1 (es) |
CN (1) | CN105144288B (es) |
BR (1) | BR112015025009B1 (es) |
ES (1) | ES2628127T3 (es) |
HK (1) | HK1215751A1 (es) |
RU (2) | RU2640722C2 (es) |
WO (1) | WO2014161994A2 (es) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102072365B1 (ko) * | 2013-04-05 | 2020-02-03 | 돌비 인터네셔널 에이비 | 고급 양자화기 |
BR112017000629B1 (pt) * | 2014-07-25 | 2021-02-17 | Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschug E.V. | aparelho de codificação de sinal de áudio e método de codificação de sinal de áudio |
WO2016162283A1 (en) * | 2015-04-07 | 2016-10-13 | Dolby International Ab | Audio coding with range extension |
US10321164B2 (en) * | 2015-09-29 | 2019-06-11 | Apple Inc. | System and method for improving graphics and other signal results through signal transformation and application of dithering |
GB2547877B (en) * | 2015-12-21 | 2019-08-14 | Graham Craven Peter | Lossless bandsplitting and bandjoining using allpass filters |
CN108496221B (zh) | 2016-01-26 | 2020-01-21 | 杜比实验室特许公司 | 自适应量化 |
WO2018133043A1 (zh) * | 2017-01-20 | 2018-07-26 | 华为技术有限公司 | 量化器与量化方法 |
EP3544005B1 (en) * | 2018-03-22 | 2021-12-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio coding with dithered quantization |
CA3128973A1 (en) | 2019-03-04 | 2020-09-10 | Bhaskar Bhattacharyya | Data compression and communication using machine learning |
CN114019449B (zh) * | 2022-01-10 | 2022-04-19 | 南京理工大学 | 信号源的波达方向估计方法、装置、电子设备及存储介质 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388181A (en) | 1990-05-29 | 1995-02-07 | Anderson; David J. | Digital audio compression system |
CA2483322C (en) | 1991-06-11 | 2008-09-23 | Qualcomm Incorporated | Error masking in a variable rate vocoder |
SE506379C3 (sv) * | 1995-03-22 | 1998-01-19 | Ericsson Telefon Ab L M | Lpc-talkodare med kombinerad excitation |
GB9509831D0 (en) | 1995-05-15 | 1995-07-05 | Gerzon Michael A | Lossless coding method for waveform data |
US5956674A (en) | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
US5805228A (en) | 1996-08-09 | 1998-09-08 | U.S. Robotics Access Corp. | Video encoder/decoder system |
US5990815A (en) * | 1997-09-30 | 1999-11-23 | Raytheon Company | Monolithic circuit and method for adding a randomized dither signal to the fine quantizer element of a subranging analog-to digital converter (ADC) |
US6170052B1 (en) | 1997-12-31 | 2001-01-02 | Intel Corporation | Method and apparatus for implementing predicated sequences in a processor with renaming |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
US6253165B1 (en) | 1998-06-30 | 2001-06-26 | Microsoft Corporation | System and method for modeling probability distribution functions of transform coefficients of encoded signal |
US6370502B1 (en) * | 1999-05-27 | 2002-04-09 | America Online, Inc. | Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec |
US7110953B1 (en) * | 2000-06-02 | 2006-09-19 | Agere Systems Inc. | Perceptual coding of audio signals using separated irrelevancy reduction and redundancy reduction |
US6662155B2 (en) * | 2000-11-27 | 2003-12-09 | Nokia Corporation | Method and system for comfort noise generation in speech communication |
CA2388358A1 (en) | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for multi-rate lattice vector quantization |
US7447631B2 (en) | 2002-06-17 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Audio coding system using spectral hole filling |
US7536305B2 (en) * | 2002-09-04 | 2009-05-19 | Microsoft Corporation | Mixed lossless audio compression |
US6812876B1 (en) * | 2003-08-19 | 2004-11-02 | Broadcom Corporation | System and method for spectral shaping of dither signals |
DE602005005640T2 (de) * | 2004-03-01 | 2009-05-14 | Dolby Laboratories Licensing Corp., San Francisco | Mehrkanalige audiocodierung |
WO2006031737A2 (en) * | 2004-09-14 | 2006-03-23 | Gary Demos | High quality wide-range multi-layer compression coding system |
DE602006000239T2 (de) | 2005-04-19 | 2008-09-18 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Energieabhängige quantisierung für effiziente kodierung räumlicher audioparameter |
US7885809B2 (en) | 2005-04-20 | 2011-02-08 | Ntt Docomo, Inc. | Quantization of speech and audio coding parameters using partial information on atypical subsequences |
US7805314B2 (en) * | 2005-07-13 | 2010-09-28 | Samsung Electronics Co., Ltd. | Method and apparatus to quantize/dequantize frequency amplitude data and method and apparatus to audio encode/decode using the method and apparatus to quantize/dequantize frequency amplitude data |
KR100851970B1 (ko) * | 2005-07-15 | 2008-08-12 | 삼성전자주식회사 | 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치 |
CN1964244B (zh) * | 2005-11-08 | 2010-04-07 | 厦门致晟科技有限公司 | 一种用声码器收发数字信号的方法 |
GB0600141D0 (en) | 2006-01-05 | 2006-02-15 | British Broadcasting Corp | Scalable coding of video signals |
DE102006060338A1 (de) * | 2006-12-13 | 2008-06-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Haftfester Metall-Keramik-Verbund und Verfahren zu seiner Herstellung |
EP1981170A1 (en) | 2007-04-13 | 2008-10-15 | Global IP Solutions (GIPS) AB | Adaptive, scalable packet loss recovery |
EP2077550B8 (en) * | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
CA2729751C (en) | 2008-07-10 | 2017-10-24 | Voiceage Corporation | Device and method for quantizing and inverse quantizing lpc filters in a super-frame |
ES2642906T3 (es) * | 2008-07-11 | 2017-11-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Codificador de audio, procedimientos para proporcionar un flujo de audio y programa de ordenador |
GB2466675B (en) | 2009-01-06 | 2013-03-06 | Skype | Speech coding |
JP2012522459A (ja) * | 2009-03-31 | 2012-09-20 | アギア システムズ インコーポレーテッド | デルタシグマ変調器を用いてrf信号を直接合成するための方法および装置 |
US7834788B2 (en) * | 2009-03-31 | 2010-11-16 | Lsi Corporation | Methods and apparatus for decorrelating quantization noise in a delta-sigma modulator |
US7868798B2 (en) * | 2009-03-31 | 2011-01-11 | Lsi Corporation | Methods and apparatus for whitening quantization noise in a delta-sigma modulator using dither signal |
CN102081927B (zh) * | 2009-11-27 | 2012-07-18 | 中兴通讯股份有限公司 | 一种可分层音频编码、解码方法及*** |
EP2372699B1 (en) | 2010-03-02 | 2012-12-19 | Google, Inc. | Coding of audio or video samples using multiple quantizers |
JP5316896B2 (ja) * | 2010-03-17 | 2013-10-16 | ソニー株式会社 | 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム |
WO2012012244A2 (en) * | 2010-07-19 | 2012-01-26 | Massachusetts Institute Of Technology | Time varying quantization-based linearity enhancement of signal converters and mixed-signal systems |
US9009036B2 (en) | 2011-03-07 | 2015-04-14 | Xiph.org Foundation | Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding |
EP3176784B1 (en) | 2013-01-08 | 2020-01-01 | Dolby International AB | Model based prediction in a filterbank |
KR102072365B1 (ko) * | 2013-04-05 | 2020-02-03 | 돌비 인터네셔널 에이비 | 고급 양자화기 |
US9503120B1 (en) * | 2016-02-29 | 2016-11-22 | Analog Devices Global | Signal dependent subtractive dithering |
-
2014
- 2014-04-04 KR KR1020197023624A patent/KR102072365B1/ko active IP Right Grant
- 2014-04-04 EP EP17164112.9A patent/EP3217398B1/en active Active
- 2014-04-04 KR KR1020157027505A patent/KR101754094B1/ko active IP Right Grant
- 2014-04-04 WO PCT/EP2014/056855 patent/WO2014161994A2/en active Application Filing
- 2014-04-04 BR BR112015025009-2A patent/BR112015025009B1/pt active IP Right Grant
- 2014-04-04 CN CN201480019363.8A patent/CN105144288B/zh active Active
- 2014-04-04 RU RU2015141996A patent/RU2640722C2/ru active
- 2014-04-04 JP JP2016505843A patent/JP6158421B2/ja active Active
- 2014-04-04 ES ES14715894.3T patent/ES2628127T3/es active Active
- 2014-04-04 EP EP14715894.3A patent/EP2981961B1/en active Active
- 2014-04-04 KR KR1020177017734A patent/KR102069493B1/ko active IP Right Grant
- 2014-04-04 US US14/781,700 patent/US9940942B2/en active Active
-
2016
- 2016-03-30 HK HK16103658.9A patent/HK1215751A1/zh unknown
-
2017
- 2017-06-07 JP JP2017112284A patent/JP6452759B2/ja active Active
- 2017-12-13 RU RU2017143614A patent/RU2752127C2/ru active
-
2018
- 2018-03-22 US US15/933,108 patent/US10311884B2/en active Active
- 2018-12-11 JP JP2018231463A patent/JP6779966B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2014161994A3 (en) | 2014-11-27 |
RU2017143614A3 (es) | 2021-01-22 |
US20160042744A1 (en) | 2016-02-11 |
WO2014161994A2 (en) | 2014-10-09 |
EP2981961B1 (en) | 2017-05-10 |
JP2019079057A (ja) | 2019-05-23 |
KR102072365B1 (ko) | 2020-02-03 |
US9940942B2 (en) | 2018-04-10 |
JP2017182087A (ja) | 2017-10-05 |
EP2981961A2 (en) | 2016-02-10 |
HK1215751A1 (zh) | 2016-09-09 |
RU2752127C2 (ru) | 2021-07-23 |
KR20170078869A (ko) | 2017-07-07 |
BR112015025009A2 (pt) | 2017-07-18 |
KR101754094B1 (ko) | 2017-07-05 |
EP3217398A1 (en) | 2017-09-13 |
JP2016519787A (ja) | 2016-07-07 |
CN105144288A (zh) | 2015-12-09 |
EP3217398B1 (en) | 2019-08-14 |
US10311884B2 (en) | 2019-06-04 |
KR20150139518A (ko) | 2015-12-11 |
JP6158421B2 (ja) | 2017-07-05 |
JP6452759B2 (ja) | 2019-01-16 |
KR102069493B1 (ko) | 2020-01-28 |
JP6779966B2 (ja) | 2020-11-04 |
CN105144288B (zh) | 2019-12-27 |
BR112015025009B1 (pt) | 2021-12-21 |
RU2640722C2 (ru) | 2018-01-11 |
RU2015141996A (ru) | 2017-04-13 |
US20180211677A1 (en) | 2018-07-26 |
KR20190097312A (ko) | 2019-08-20 |
RU2017143614A (ru) | 2019-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2628127T3 (es) | Cuantificador avanzado | |
ES2665599T3 (es) | Codificador y descodificador de audio | |
RU2696292C2 (ru) | Аудиокодер и декодер | |
ES2604983T3 (es) | Ajuste de nivel en el dominio del tiempo para decodificación o codificación de señales de audio | |
ES2223591T3 (es) | Codificacion eficaz de envolvente especial utilizando una resolucion tiempo/frecuencia variable. | |
ES2358213T3 (es) | Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio. | |
ES2302530T3 (es) | Procedimiento de codificacion y descodificacion de audio con flujo variable. | |
JP2023169294A (ja) | 符号化及び復号化のための符号化装置、復号化装置、システム及び方法 | |
WO2011045926A1 (ja) | 符号化装置、復号装置およびこれらの方法 | |
RU2823174C2 (ru) | Усовершенствованный квантователь |