ES2428572T3 - Dispositivo de codificación de audio y método de codificación de audio - Google Patents
Dispositivo de codificación de audio y método de codificación de audio Download PDFInfo
- Publication number
- ES2428572T3 ES2428572T3 ES08776896T ES08776896T ES2428572T3 ES 2428572 T3 ES2428572 T3 ES 2428572T3 ES 08776896 T ES08776896 T ES 08776896T ES 08776896 T ES08776896 T ES 08776896T ES 2428572 T3 ES2428572 T3 ES 2428572T3
- Authority
- ES
- Spain
- Prior art keywords
- section
- search
- pulses
- values
- pulse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 57
- 239000013598 vector Substances 0.000 description 51
- 230000003044 adaptive effect Effects 0.000 description 45
- 238000012545 processing Methods 0.000 description 40
- 230000005284 excitation Effects 0.000 description 36
- 230000015572 biosynthetic process Effects 0.000 description 16
- 238000003786 synthesis reaction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 238000007781 pre-processing Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000011002 quantification Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000001755 vocal effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 241001237745 Salamis Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 235000015175 salami Nutrition 0.000 description 1
- 239000004065 semiconductor Substances 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/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
- G10L19/107—Sparse pulse excitation, e.g. by using algebraic codebook
-
- 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
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (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
Un aparato de codificación de habla que comprende: una sección de cálculo (221) que calcula unos valores de correlación en unas posiciones de impulso decandidata usando una señal objetivo y una pluralidad de impulsos que forman un libro de códigos fijo, y calcula,de una forma por impulsos, unos valores representativos de los impulsos usando los valores máximos de losvalores de correlación; y una sección de clasificación (222) que clasifica los valores representativos adquiridos de una forma porimpulsos; caracterizado por agrupar, la sección de clasificación (222), los impulsos que se corresponden con los valores representativosclasificados en una pluralidad de subconjuntos predeterminados de al menos dos impulsos, y determinar unprimer subconjunto en el que ha de buscarse en primer lugar entre la pluralidad de subconjuntos usando losvalores representativos que se corresponden con los impulsos agrupados; y una sección de búsqueda (224) que busca en el libro de códigos fijo usando el primer subconjunto y adquiereun código que indica las posiciones y las polaridades de la pluralidad de impulsos para minimizar la distorsiónde codificación.
Description
Dispositivo de codificación de audio y método de codificación de audio
La presente invención se refiere a un aparato de codificación de habla y a un método de codificación de habla. En particular, la presente invención se refiere a un aparato de codificación de habla y a un método de codificación de habla para realizar una búsqueda de libro de códigos fijo.
En la comunicación móvil, la codificación de compresión para la información digital acerca del habla y las imágenes es esencial para un uso eficiente de las bandas de transmisión. En especial, las expectativas para las técnicas de
15 códec (codificación y descodificación) de habla que se usan ampliamente para los teléfonos móviles son altas, y se demanda una mejora adicional de la calidad de sonido para una codificación de alta eficiencia convencional del rendimiento de alta compresión.
Recientemente, se encuentra en curso la normalización de códec escalonables que tienen una configuración de múltiples capas por, por ejemplo, UIT-T (Unión Internacional de las Telecomunicaciones -Sector de Normalización de las Telecomunicaciones) y MPEG (Moving Picture Expert Group, Grupo de Expertos en Imágenes en Movimiento), y se demanda un códec de habla más eficiente y de una calidad más alta.
El rendimiento de la técnica de codificación de habla, que ha mejorado de forma significativa mediante el esquema
25 básico “CELP (Code Excited Linear Prediction, Predicción Lineal Excitada por Código)”, el modelado del sistema vocal del habla y la adopción de una cuantificación de vectores con habilidad, se mejora adicionalmente mediante unas técnicas de excitación fijas usando un pequeño número de impulsos, tal como el libro de códigos algebraico que se divulga en el Documento no de Patente 1. La recomendación G.729 de la UIT-T y la norma AMR (Adaptive Multi-Rate, Múltiples Velocidades Adaptativas) de ETSI (European Telecommunication Standard Institute, Instituto Europeo de Normas de Telecomunicaciones) proponen un códec de CELP representativo usando un libro de códigos algebraico, y se usan ampliamente por todo el planeta.
En el caso de realizar la codificación de habla usando un libro de códigos algebraico, teniendo en cuenta la influencia mutua entre los impulsos que forman el libro de códigos algebraico, es deseable buscar en todas las
35 combinaciones de los impulsos (en lo sucesivo en el presente documento “búsqueda completa”). No obstante, cuando el número de impulsos aumenta, la cantidad de cálculos que se requieren para una búsqueda aumenta de manera exponencial. Como contraste con esto, el Documento no de Patente 2 divulga, por ejemplo, una búsqueda parcial, una búsqueda por eliminación y una búsqueda de Viterbi como métodos de búsqueda de libro de códigos algebraico para reducir la cantidad de cálculos de forma significativa y mantener sustancialmente el rendimiento en el caso de la búsqueda completa al mismo tiempo.
Entre estas, en especial, la búsqueda parcial es el método más simple que proporciona un efecto de reducción de la cantidad de cálculos de forma significativa. En el presente caso, la búsqueda parcial es el método de dividir un lazo cerrado en una pluralidad de lazos cerrados más pequeños y de realizar una búsqueda de lazo abierto en la
45 pluralidad de lazos cerrados. En esta búsqueda parcial, es posible reducir la cantidad de cálculos de forma significativa de acuerdo con el número de divisiones. Asimismo, la búsqueda parcial se usa en los esquemas de las normas internacionales y en la búsqueda de libro de códigos algebraico de la norma AMR de ETSI, que es el códec convencional de los teléfonos móviles de tercera generación, la búsqueda parcial se realiza después de dividir cuatro impulsos en dos subconjuntos.
Por ejemplo, si hay cuatro impulsos que tienen ocho posiciones de candidata, hay 84 (es decir, 4096) combinaciones de los impulsos que es necesario evaluar, para buscar cuatro impulsos en un lazo cerrado. Como contraste con esto, la norma AMR de ETSI divide cuatro impulsos en dos subconjuntos de dos impulsos y realiza una búsqueda en sus lazos cerrados de forma individual. Por lo tanto, el número de combinaciones de los impulsos que van a
55 evaluarse en la norma AMR de ETSI es 2 x 82 (es decir, 128), que es una trigésima segunda parte de la cantidad de cálculos en el caso de la búsqueda completa. Además, la evaluación en la norma AMR de ETSI se realiza para dos impulsos, que son menos de cuatro impulsos, de tal modo que la cantidad de cálculos se reduce adicionalmente.
El documento EP 2 116 996 A 1 describe un dispositivo de codificación para realizar una búsqueda de libro de códigos de fuente de sonido fija con una pequeña cantidad de cálculos incluso en una codificación de sonido de velocidad de bits baja sin hacer que baje la eficiencia de la codificación.
Una unidad de cálculo de valores umbral evalúa un valor de correlación de las posiciones de candidata clasificados en cada canal a lo largo de una pluralidad de canales con el fin de identificar la posición de candidata de cada canal 65 y añade los valores de correlación de las posiciones de candidata de los canales respectivos con el fin de obtener un valor umbral. Una unidad de clasificación de posiciones de candidata clasifica las posiciones de candidata de
impulso de acuerdo con la correlación entre un sonido combinada de los impulsos dispuestos en una posición de impulso de cada canal y un objetivo de cuantificación.
Una unidad de control de búsqueda realiza un control de tal modo que la búsqueda se realiza en la posición de
5 candidata de impulso clasificada. Si la suma de los valores de correlación que ya se han buscado en el canal en el que ha de buscarse se encuentra por debajo del valor umbral, una señal de control se emite a una unidad de terminación de búsqueda. La unidad de terminal de búsqueda termina la búsqueda en la candidata de posición de impulso por la señal de control introducida a partir de la unidad de control de búsqueda.
10 Documento no de Patente 1: Salami, Laflamme, Adoul, “8kbit/s ACELP Coding of Speech with 10ms Speech-Frame: a Candidate for CCITT Standardization”, IEEE Proc. ICASSP94, págs. II-97n Documento no de Patente 2: T. Nomura, K. Ozawa, M. Serizawa, “Efficient pulse excitation search methods in CELP”, Proc. of the 1996 spring meeting of the Acoustic Society of Japan. 2-P-5, págs. 311-312, marzo de 1996
Divulgación de la invención
20 No obstante, en general, el rendimiento de la codificación de habla mediante una búsqueda parcial de libro de códigos algebraico es más bajo que en el caso de la búsqueda completa, debido a que las posiciones de dos impulsos que se determinan en un primer lugar no siempre son óptimas.
Por lo tanto, en la búsqueda parcial, el rendimiento de la codificación de habla puede mejorarse adicionalmente
25 dependiendo de qué impulsos se seleccionan para formar un subconjunto en el que ha de buscarse en primer lugar. Por ejemplo, es posible adoptar el método de seleccionar dos impulsos de entre cuatro impulsos de una forma aleatoria y de realizar una búsqueda y, después de que este proceso se repita varias veces, encontrar el par de los impulsos mediante el cual el rendimiento de codificación es el más alto. Por ejemplo, mediante la provisión de cuatro tipos de pares de subconjunto y mediante la búsqueda en estos cuatro pares de forma individual, es posible hacer
30 que el rendimiento de la codificación de habla se acerque al rendimiento de codificación en la búsqueda completa. En el presente caso, se requieren 128 (82 ! 2) ! 4 (es decir, 512) patrones de cálculos, lo que es un octavo de la cantidad de cálculos en el caso de la búsqueda completa. En el presente caso, en los ejemplos anteriores, los subconjuntos se forman de una forma arbitraria, y no hay razón específica alguna para que haya de buscarse en primer lugar en par alguno entre cuatro tipos de pares. Por lo tanto, si se realiza una búsqueda en una pluralidad de
35 casos de forma individual, el rendimiento de codificación resultante muestra grandes variaciones, y el rendimiento de codificación total es insuficiente.
Por lo tanto, un objeto de la presente invención es la provisión de un aparato de codificación de habla y un método de codificación de habla para realizar una búsqueda parcial de libro de códigos algebraico y mejorar el rendimiento
40 de codificación. El presente objeto se consigue mediante la presente invención tal como se reivindica en las reivindicaciones independientes. Las realizaciones ventajosas y preferidas de la presente invención se definen mediante las reivindicaciones dependientes.
El aparato de codificación de habla de acuerdo con un ejemplo emplea una configuración que tiene: una sección de
45 cálculo que calcula unos valores de correlación en unas posiciones de impulso de candidata usando una señal objetivo y una pluralidad de impulsos que forman un libro de códigos fijo, y calcula, de una forma por impulsos, unos valores representativos de los impulsos usando los valores máximos de los valores de correlación; una sección de clasificación que clasifica los valores representativos adquiridos de una forma por impulsos, agrupa los impulsos que se corresponden con los valores representativos clasificados en una pluralidad de subconjuntos predeterminados y
50 determina un primer subconjunto en el que ha de buscarse en primer lugar entre la pluralidad de subconjuntos; y una sección de búsqueda que busca en el libro de códigos fijo usando el primer subconjunto y adquiere un código que indica las posiciones y las polaridades de la pluralidad de impulsos para minimizar la distorsión de codificación.
El método de codificación de habla de acuerdo con un ejemplo incluye las etapas de: calcular unos valores de
55 correlación en unas posiciones de impulso de candidata usando una señal objetivo y una pluralidad de impulsos que forman un libro de códigos fijo, y calcular, de una forma por impulsos, unos valores representativos de los impulsos usando los valores máximos de los valores de correlación; clasificar los valores representativos adquiridos de una forma por impulsos, agrupar los impulsos que se corresponden con los valores representativos clasificados en una pluralidad de subconjuntos predeterminados y determinar un primer subconjunto en el que ha de buscarse en primer
60 lugar entre la pluralidad de subconjuntos; y buscar en el libro de códigos fijo usando el primer subconjunto y generar un código que indica las posiciones y las polaridades de la pluralidad de impulsos para minimizar la distorsión de codificación.
De acuerdo con la presente invención, tras realizar una búsqueda parcial de libro de códigos fijo en la codificación de habla, el subconjunto en el que ha de buscarse en primer lugar se determina usando unos valores 5 representativos en relación con impulsos tales como los valores máximos de correlación, de tal modo que es posible realizar una búsqueda parcial de libro de códigos algebraico y mejorar el rendimiento de codificación.
la figura 1 es un diagrama de bloques que muestra la configuración de un aparato de codificación de CELP de acuerdo con la realización 1 de la presente invención; la figura 2 es un diagrama de bloques que muestra la configuración en el interior de una sección de minimización de distorsión de acuerdo con la realización 1 de la presente invención; la figura 3 es un diagrama de flujo que muestra las etapas de calcular el valor máximo de correlación de cada
15 impulso en una sección de cálculo de valor máximo de correlación de acuerdo con la realización 1 de la presente invención; la figura 4 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación sobre el valor máximo de correlación de cada impulso en una sección de clasificación de acuerdo con la realización 1 de la presente invención; la figura 5 es un diagrama de flujo que muestra las etapas de una búsqueda parcial de libro de códigos fijo en una sección de búsqueda de acuerdo con la realización 1 de la presente invención; la figura 6 es otro diagrama de flujo que muestra las etapas de una búsqueda parcial de libro de códigos fijo en una sección de búsqueda de acuerdo con la realización 1 de la presente invención; la figura 7 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación sobre el valor
25 máximo de correlación de cada impulso en una sección de clasificación de acuerdo con la realización 2 de la presente invención; la figura 8 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación sobre el valor máximo de correlación de cada impulso en una sección de clasificación de acuerdo con la realización 3 de la presente invención; y la figura 9 es un diagrama de flujo que muestra las etapas del procesamiento de reorganización sobre el orden de los impulsos en una sección de clasificación de acuerdo con la realización 3 de la presente invención.
35 Las realizaciones de la presente invención se explicarán en lo sucesivo con detalle, con referencia a los dibujos adjuntos.
(Realización 1)
La figura 1 es un diagrama de bloques que muestra la configuración del aparato de codificación de CELP 100 de acuerdo con la realización 1 de la presente invención. En el presente caso, se explicará un caso a modo de ejemplo usando un aparato de codificación de CELP como el aparato de codificación de habla de acuerdo con la presente invención.
45 En la figura 1, para la señal de habla S11 que está compuesta por una información de tracto vocal y una información de excitación, el aparato de codificación de CELP 100 codifica la información de tracto vocal mediante el cálculo de unos parámetros de LPC (Linear Prediction Coefficient, Coeficiente de Predicción Lineal) y codifica la información de excitación mediante la determinación de un índice que especifica qué modelo de habla almacenado por adelantado usar. Es decir, la información de excitación se codifica mediante la determinación de un índice que especifica qué vector de excitación (vector de códigos) generar en el libro de códigos adaptativo 103 y el libro de códigos fijo 104.
Para ser más específico, las secciones del aparato de codificación de CELP 100 realizan las siguientes operaciones.
La sección de análisis de LPC 101 realiza un análisis de predicción lineal de la señal de habla S11, calcula unos 55 parámetros de LPC que son información de envolvente de espectro y emite los parámetros de LPC a la sección de cuantificación de LPC 102 y la sección de ponderación perceptual 111.
La sección de cuantificación de LPC 102 cuantifica los parámetros de LPC que se emiten a partir de la sección de análisis de LPC 101, y emite los parámetros de LPC cuantificados resultantes al filtro de síntesis de LPC 109 y un índice de los parámetros de LPC cuantificados al exterior del aparato de codificación de CELP 100.
Por otro lado, el libro de códigos adaptativo 103 almacena las excitaciones pasadas usadas en el filtro de síntesis de LPC 109, y genera un vector de excitación de una subtrama a partir de las excitaciones almacenadas de acuerdo con el retardo de libro de códigos adaptativo que está asociado con un índice que se designa a partir de la sección
65 de minimización de distorsión 112 que se describe posteriormente. Este vector de excitación se emite al multiplicador 106 como un vector de libro de códigos adaptativo.
El libro de códigos fijo 104 almacena por adelantado una pluralidad de vectores de excitación de una forma predeterminada, y emite un vector de excitación que está asociado con un índice que se designa a partir de la sección de minimización de distorsión 112 al multiplicador 107 como un vector de libro de códigos fijo. En el
5 presente caso, el libro de códigos fijo 104 es una excitación algebraica, y se explicará un caso en el que se usa un libro de códigos algebraico. Asimismo, una excitación algebraica es una excitación que se adopta en muchos códec convencionales.
Además, el libro de códigos adaptativo 103 anterior se usa para representar las componentes más periódicas como 10 habla con voz, mientras que el libro de códigos fijo 104 se usa para representar las componentes menos periódicas como ruido blanco.
De acuerdo con la designación a partir de la sección de minimización de distorsión 112, el libro de códigos de ganancia 105 genera una ganancia para el vector de libro de códigos adaptativo que se emite a partir del libro de
15 códigos adaptativo 103 (es decir, la ganancia de libro de códigos adaptativo) y una ganancia para el vector de libro de códigos fijo que se emite a partir del libro de códigos fijo 104 (es decir, la ganancia de libro de códigos fijo), y emite estas ganancias a los multiplicadores 106 y 107, respectivamente.
El multiplicador 106 multiplica el vector de libro de códigos adaptativo que se emite a partir del libro de códigos 20 adaptativo 103 por la ganancia de libro de códigos adaptativo que se emite a partir del libro de códigos de ganancia 105, y emite el resultado al sumador 108.
El multiplicador 107 multiplica el vector de libro de códigos fijo que se emite a partir del libro de códigos fijo 104 por la ganancia de libro de códigos fijo que se emite a partir del libro de códigos de ganancia 105, y emite el resultado al 25 sumador 108.
El sumador 108 añade el vector de libro de códigos adaptativo que se emite a partir del multiplicador 106 y el vector de libro de códigos fijo que se emite a partir del multiplicador 107, y emite el vector de excitación resultante al filtro de síntesis de LPC 109 como una excitación.
30 El filtro de síntesis de LPC 109 genera una señal de síntesis usando una función de filtro que incluye los parámetros de LPC cuantificados que se emiten a partir de la sección de cuantificación de LPC 102 como un coeficiente de filtro y los vectores de excitación que se generan en el libro de códigos adaptativo 103 y el libro de códigos fijo 104 como excitaciones, es decir, usando un filtro de síntesis de LPC. Esta señal de síntesis se emite al sumador 110.
35 El sumador 110 calcula una señal de error n mediante la sustracción de la señal de síntesis que se genera en el filtro de síntesis de LPC 109 con respecto a la señal de habla S11, y emite esta señal de error a la sección de ponderación perceptual 111. En el presente caso, esta señal de error es equivalente a la distorsión de codificación.
40 La sección de ponderación perceptual 111 realiza la ponderación perceptual para la distorsión de codificación que se emite a partir del sumador 110, y emite el resultado a la sección de minimización de distorsión 112.
La sección de minimización de distorsión 112 encuentra los índices del libro de códigos adaptativo 103, el libro de códigos fijo 104 y el libro de códigos de ganancia 105 de una forma por subtramas, con el fin de minimizar la 45 distorsión de codificación que se emite a partir de la sección de ponderación perceptual 111, y emite estos índices al exterior del aparato de codificación de CELP 100 como una información codificada. Para ser más específico, la sección de minimización de distorsión 112 genera una señal de síntesis sobre la base del libro de códigos adaptativo 103 y el libro de códigos fijo 104 anteriores. En el presente caso, una serie de procesamientos para encontrar la distorsión de codificación de esta señal forma un control de lazo cerrado (control de realimentación). Además, la
50 sección de minimización de distorsión 112 busca en los libros de códigos cambiando de forma diversa los índices que designan los libros de códigos en una subtrama, y emite los índices resultantes de los libros de códigos que minimizan la distorsión de codificación.
Asimismo, la excitación cuando la distorsión de codificación se minimiza se realimenta al libro de códigos adaptativo 55 103 de una forma por subtramas. El libro de códigos adaptativo 103 actualiza las excitaciones almacenadas mediante esta realimentación.
El método de la búsqueda en el libro de códigos fijo 104 se explicará en lo sucesivo. En primer lugar, se realizan una búsqueda de vectores de excitación y un cálculo de códigos mediante la búsqueda de un vector de excitación para 60 minimizar la distorsión de codificación en la siguiente ecuación 1.
[1] en la que:
E: distorsión de codificación;
5 x: objetivo de codificación;
p: ganancia de vector de libro de códigos adaptativo;
H: filtro de síntesis de ponderación perceptual;
a: vector de libro de códigos adaptativo;
q: ganancia de vector de libro de códigos fijo; y
s: vector de libro de códigos fijo
En general, un vector de libro de códigos adaptativo y un vector de libro de códigos fijo se buscan en lazos abiertos (es decir, en lazos separados) y, por consiguiente, un código del libro de códigos adaptativo 104 se obtiene mediante la búsqueda de un vector de libro de códigos fijo para minimizar la distorsión de codificación que se
15 muestra en la siguiente ecuación 2.
[2]
en la que:
E: distorsión de codificación
x: objetivo de codificación (señal de habla promediada de forma perceptual);
p: ganancia de vector de libro de códigos adaptativo óptima; 25 H: filtro de síntesis de ponderación perceptual;
a: vector de libro de códigos adaptativo;
q: ganancia de vector de libro de códigos fijo;
s: vector de libro de códigos fijo; y
y: vector objetivo en una búsqueda de libro de códigos fijo
En el presente caso, las ganancias p y q se determinan después de que se busque un código de excitación, de tal modo que una búsqueda se realiza usando unas ganancias óptimas. Entonces, la ecuación 2 anterior puede expresarse mediante la siguiente ecuación 3.
[3] 35
Además, minimizar esta ecuación de distorsión es equivalente a maximizar la función C de la siguiente ecuación 4.
[4]
Por lo tanto, en el caso de la búsqueda de una excitación que está compuesta por un pequeño número de impulsos tal como una excitación de libro de códigos algebraico, mediante el cálculo de yH y HH por adelantado, es posible
45 calcular la función C anterior con una pequeña cantidad de cálculos. En el presente caso, los elementos del vector yH se corresponden con los valores de correlación específica del impulso. Es decir, un elemento de yH adquirido mediante la realización de una síntesis inversa en el tiempo del objetivo y, es equivalente al valor de correlación entre una señal de síntesis del impulso que se eleva en esa posición y la señal objetivo.
La figura 2 es un diagrama de bloques que muestra la configuración en el interior de la sección de minimización de distorsión 112 de acuerdo con la presente realización. En el presente caso, se explicará un caso a modo de ejemplo en el que, en una búsqueda de libro de códigos fijo en la sección de minimización de distorsión 112, cuatro impulsos que forman un libro de códigos algebraico se dividen en dos subconjuntos de dos impulsos y se busca en los mismos. Asimismo, supóngase que cada impulso tiene ocho posiciones de candidata.
55 En la figura 2, la sección de minimización de distorsión 112 se provee con la sección de búsqueda de libro de códigos adaptativo 201, la sección de búsqueda de libro de códigos fijo 202 y la sección de búsqueda de libro de códigos de ganancia 203. Asimismo, la sección de búsqueda de libro de códigos fijo 202 se provee con una sección de cálculo de valor máximo de correlación 221, una sección de clasificación 222, una sección de preprocesamiento
5 223 y una sección de búsqueda 224.
La sección de búsqueda de libro de códigos adaptativo 201 busca en el libro de códigos adaptativo 103 usando una distorsión de codificación que está sometida a una ponderación perceptual en la sección de ponderación perceptual
111. La sección de búsqueda de libro de códigos adaptativo 201 emite el código de vector de libro de códigos adaptativo adquirido en la etapa de búsqueda al libro de códigos adaptativo 103, emite el código de vector de libro de códigos adaptativo adquirido como un resultado de búsqueda a la sección de cálculo de valor máximo de correlación 221 en la sección de búsqueda de libro de códigos fijo 202 y al exterior del aparato de codificación de CELP 100.
15 La sección de búsqueda de libro de códigos fijo 202 realiza una búsqueda parcial de libro de códigos adaptativo usando una distorsión de codificación que está sometida a una ponderación perceptual en la sección de ponderación perceptual 111 y el código de vector de libro de códigos adaptativo que se recibe como entrada a partir de la sección de búsqueda de libro de códigos adaptativo 201. Además, la sección de búsqueda de libro de códigos fijo 202 emite el código de vector de libro de códigos fijo adquirido en la etapa de búsqueda al libro de códigos fijo 104, y emite el código de vector de libro de códigos fijo adquirido como un resultado de búsqueda al exterior del aparato de codificación de CELP 100 y a la sección de búsqueda de libro de códigos de ganancia 203.
La sección de búsqueda de libro de códigos de ganancia 203 busca en un libro de códigos de ganancia sobre la base del código de vector de libro de códigos fijo que se recibe como entrada a partir de la sección de búsqueda 224
25 en la sección de búsqueda de libro de códigos fijo 202, la distorsión de codificación que está sometida a una ponderación perceptual en la sección de ponderación perceptual 111 y el código de vector de libro de códigos adaptativo que se recibe como entrada a partir de la sección de búsqueda de libro de códigos adaptativo 201. Además, la sección de búsqueda de libro de códigos de ganancia 203 emite la ganancia de libro de códigos adaptativo y la ganancia de libro de códigos fijo adquiridas en la etapa de búsqueda al libro de códigos de ganancia 105, y emite la ganancia de libro de códigos adaptativo y la ganancia de libro de códigos fijo adquiridas como resultados de búsqueda al exterior del aparato de codificación de CELP 100.
La sección de cálculo de valor máximo de correlación 221 calcula un vector de libro de códigos adaptativo usando el código de vector de libro de códigos adaptativo que se recibe como entrada a partir de la sección de búsqueda de
35 libro de códigos adaptativo 201, y calcula el vector objetivo y que se muestra en la ecuación 2. Además, usando el coeficiente de filtro de síntesis H en la sección de ponderación perceptual 111, la sección de cálculo de valor máximo de correlación 221 calcula y emite el valor de correlación específica del impulso yH en cada posición de candidata a la sección de preprocesamiento 223. Además, usando el valor de correlación específica del impulso yH en cada posición de candidata, la sección de cálculo de valor máximo de correlación 221 calcula y emite los valores máximos de correlación de los impulsos individuales a la sección de clasificación 222. En el presente caso, el cálculo de los valores máximos de correlación en la sección de cálculo de valor máximo de correlación 221 se describirá posteriormente con detalle.
La sección de clasificación 222 clasifica los valores máximos de correlación de los impulsos individuales que se
45 reciben como entrada a partir de la sección de cálculo de valor máximo de correlación 221, en orden a partir del valor máximo de correlación más grande (a lo que se hace referencia en lo sucesivo en el presente documento como “procesamiento de clasificación”). Además, sobre la base del resultado de clasificación, la sección de clasificación 222 divide cuatro impulsos en dos subconjuntos de dos impulsos y emite los resultados de división a la sección de búsqueda 224. El procesamiento de clasificación en la sección de clasificación 222 se describirá posteriormente con detalle.
La sección de preprocesamiento 223 calcula una matriz HH usando el coeficiente de filtro de síntesis H en la sección de ponderación perceptual 111. Además, a partir de las polaridades (+ y -) de los elementos del vector yH que se reciben como entrada a partir de la sección de cálculo de valor máximo de correlación 221, la sección de
55 preprocesamiento 223 determina y emite las polaridades de los impulsos, pol, a la sección de búsqueda 224. Para ser más específico, en la sección de preprocesamiento 223, las polaridades de los impulsos individuales que se elevan en las posiciones respectivas se coordinan con las polaridades de los valores de yH en esas posiciones, y las polaridades de los valores de yH se almacenan en una secuencia diferente. Después de que las polaridades en estas posiciones se almacenen en una secuencia diferente, la sección de preprocesamiento 223 hace la totalidad de los valores de yH unos valores absolutos, es decir, la sección de preprocesamiento 223 convierte los valores de yH en valores positivos. Además, para convertir las polaridades de los valores de HH, la sección de preprocesamiento 223 multiplica los valores de HH por las polaridades en coordinación con las polaridades almacenadas en esas posiciones. Los yH y HH calculados se emiten a la sección de búsqueda 224.
65 La sección de búsqueda 224 realiza una búsqueda parcial de libro de códigos fijo usando los resultados de división que se reciben como entrada a partir de la sección de clasificación 222, la distorsión de codificación que está sometida a una ponderación perceptual en la sección de ponderación perceptual 111, y yH y HH que se reciben como entrada a partir de la sección de preprocesamiento 223. La sección de búsqueda 224 emite el código de vector de libro de códigos fijo adquirido en la etapa de búsqueda al libro de códigos fijo 104 y emite el código de vector de libro de códigos fijo adquirido como un resultado de búsqueda al exterior del aparato de codificación de
5 CELP 100 y la sección de búsqueda de libro de códigos de ganancia 203. Asimismo, la búsqueda parcial de libro de códigos fijo en la sección de búsqueda 224 se describirá posteriormente con detalle.
A continuación, el proceso de cálculo del valor máximo de correlación de cada impulso en la sección de cálculo de valor máximo de correlación 221 se explicará con detalle.
10 La figura 3 es un diagrama de flujo que muestra las etapas de calcular el valor máximo de correlación de cada impulso en la sección de cálculo de valor máximo de correlación 221. En el presente caso, se explicará un ejemplo de procesamiento en el que la sección de cálculo de valor máximo de correlación 221 encuentra dos posiciones de candidata en las que el valor del impulso 0 (yH) es el más alto y, sobre la base de estas posiciones, calcula el valor
15 máximo de correlación del impulso 0.
En primer lugar, la sección de cálculo de valor máximo de correlación 221 asegura la secuencia ici0 [8] de estas posiciones de candidata predeterminadas del impulso 0 y la secuencia yH [32] adquirida mediante la conversión del valor de correlación yH que se usa para buscar en un valor positivo (ST 1010).
20 A continuación, la sección de cálculo de valor máximo de correlación 221 inicializa el valor máximo max00, el valor semi-máximo (es decir, el segundo valor más alto) max01 y el contador i (ST 1020), y la etapa se mueve al lazo formado con ST 1030 a ST 1080.
25 En este lazo, cuando el valor del contador i es igual a, o mayor que, 8 (“SÍ” en ST 1040), la sección de cálculo de valor máximo de correlación 221 decide que el procesamiento en lazo para cada posición de candidata se ha finalizado por completo, y finaliza el proceso. Por el contrario, cuando el valor del contador i es menor que 8 (“NO” en ST 1040), la sección de cálculo de valor máximo de correlación 221 decide que el procesamiento en lazo no se ha finalizado por completo, y la etapa se mueve a ST 1050.
30 A continuación, si el valor de correlación yH [ici0 [i] ] en una posición indicada por el contador i es mayor que el valor máximo max00 (“SÍ” en ST 1050), la sección de cálculo de valor máximo de correlación 221 almacena el valor máximo max00 como un valor semi-máximo max01, asigna el valor de correlación yH [ici0 [i] ] en la posición indicada por el contador i a un valor máximo max00 (ST 1060), y devuelve la etapa a ST 1030. Si el valor de
35 correlación yH [ici0 [i] ] en la posición indicada por el contador i es igual a, o menor que, el valor máximo max00 (“NO” en ST 1050), la sección de cálculo de valor máximo de correlación 221 mueve la etapa a ST 1070.
A continuación, si el valor de correlación yH [ici0 [i] ] en una posición indicada por el contador i es mayor que el valor semi-máximo max01 (“SÍ” en ST 1070), la sección de cálculo de valor máximo de correlación 221 asigna el valor de
40 correlación yH [ici0 [i] ] en la posición indicada por el contador i al valor semi-máximo max01 (ST 1060), y devuelve la etapa a ST 1030 (ST 1080). Por el contrario, si el valor de correlación yH [ici0 [i] ] en una posición indicada por el contador i es igual a, o menor que, el valor semi-máximo max01 (“NO” en ST 1070), la sección de cálculo de valor máximo de correlación 221 devuelve la etapa a ST 1030.
45 A continuación, en ST 1030, la sección de cálculo de valor máximo de correlación 221 incrementa el contador i en uno y devuelve la etapa a ST 1040.
Por lo tanto, la sección de cálculo de valor máximo de correlación 221 calcula el valor máximo max00 y el valor semi-máximo max01 entre los valores de correlación del único impulso 0 en las posiciones de candidata. Además,
50 usando las etapas que se muestran en la figura 3, la sección de cálculo de valor máximo de correlación 221 encuentra dos posiciones de candidata en las que los valores de correlación (yH) de los impulsos individuales 1, 2 y 3 son los más altos. Es decir, la sección de cálculo de valor máximo de correlación 221 encuentra max10, max11, max20, max21, max30 y max31, que representan los valores máximos y los valores semi-máximos de los impulsos individuales 1, 2 y 3.
55 A continuación, usando los valores máximos y los valores semi-máximos entre los valores de correlación de los impulsos individuales 0, 1, 2 y 3, la sección de cálculo de valor máximo de correlación 221 calcula los valores máximos de correlación S [0], S [1], S2 [2] y S [3] de los impulsos individuales de acuerdo con la siguiente ecuación
5. Tal como se muestra en la figura 5, la sección de cálculo de valor máximo de correlación 221 encuentra los
60 valores máximos de correlación estable que están asociados con los impulsos individuales mediante la adición del valor semi-máximo del valor de correlación a una velocidad determinada al valor máximo del valor de correlación de una forma por impulsos.
S [0] = max00 + max01 ! 0,05 S [1] = max10 + max11 ! 0,05 S [2] = max20 + max21 ! 0,05 S [3] = max30 + max31 ! 0,05 ... (Ecuación 5)
5 A continuación, el procesamiento de clasificación sobre el valor máximo de correlación de cada impulso en la sección de clasificación 222 se explicará con detalle.
La figura 4 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación de los valores 10 máximos de correlación de los impulsos individuales en la sección de clasificación 222.
En primer lugar, la sección de clasificación 222 recibe como entrada el valor máximo de correlación S [j] (j = 0, 1, 2, 3) de cada impulso a partir de la sección de cálculo de valor máximo de correlación 221, y restablece, a 0, el contador i que indica hasta qué grado se ha completado la clasificación (ST 2010).
15 A continuación, cuando el valor del contador i es igual a, o mayor que, 4 (“SÍ” en ST 2030), la sección de clasificación 222 decide que la clasificación se ha finalizado por completo, y mueve la etapa a ST 2100. Por el contrario, cuando el valor del contador i es menor que 4 (“NO” en ST 2030), la sección de clasificación 222 asigna 0 al número de impulso N [i], restablece el contador j para contar el número de lazos en los que el i-ésimo valor
20 máximo de correlación S [N (i) ] se busca, a 0, y restablece la variable “max” que almacena el valor máximo a 0 (ST 2040).
A continuación, cuando el valor del contador j es menor que 4 (“NO” en ST 2060), la sección de clasificación 222 mueve la etapa a ST 2070.
25 A continuación, cuando el valor máximo de correlación S [j] es mayor que la variable “max” (“SÍ” en ST 2070), la sección de clasificación 222 asigna el valor máximo de correlación S [j] a la variable “max”, asigna el valor del contador j al número de impulso N [i] que se corresponde con el i-ésimo valor máximo de correlación S [N [i] ] (ST 2080), y mueve la etapa a ST 2050. Por el contrario, cuando el valor máximo de correlación S [j] es igual a, o menor
30 que, la variable “max” (“NO” en ST 2070), la sección de clasificación 222 mueve la etapa a ST 2050. A continuación, en ST 2050, la sección de clasificación 222 incrementa el contador j en uno y devuelve la etapa a ST 2060.
Por el contrario, cuando el valor del contador j es igual a, o mayor que, 4 en ST 2060 (“SÍ” en ST 2060), la sección de clasificación 222 decide que termina el lazo formado con ST 2050 a ST 2080 para buscar el i-ésimo valor máximo
35 de correlación S [N [i]], y asigna “-1” al i-ésimo valor máximo de correlación S [N [i]] (ST 2090). De este modo, el iésimo valor máximo de correlación S [N [i]] se excluye del objetivo del procesamiento en lazo para buscar el (i + 1)ésimo valor máximo de correlación S [N [i + 1]]. A continuación, la sección de clasificación 222 incrementa el contador i en uno en ST 2020 y devuelve la etapa a ST 2030.
40 Por lo tanto, la sección de clasificación 222 clasifica los valores máximos de correlación S [0], S [1], S [2] y S [3] de los impulsos individuales en un orden descendente, y adquiere N [i] que indica el resultado de clasificación. En lo sucesivo, se explicará un caso a modo de ejemplo en el que la sección de clasificación 222 adquiere N [i] = {2, 0, 3, 1}. Es decir, supóngase que el número de impulso N [0] que se corresponde con el valor máximo de correlación más alto S [N [0] ] es 2, seguido por 0, 3 y 1, en orden.
45 A continuación, en ST 2100, la sección de clasificación 222 determina el orden de búsqueda de los impulsos mediante la agrupación de cuatro números de impulso, N [i], que se corresponden con los valores máximos de correlación clasificados, en dos patrones de división de subconjuntos predeterminados, y emite el orden de búsqueda resultante a la sección de búsqueda 224. Es decir, antes de la búsqueda parcial de libro de códigos fijo en
50 la sección de búsqueda 224, la sección de clasificación 222 determina los números de dos impulsos que han de buscarse en primer lugar y los números de dos impulsos que han de buscarse a continuación. En la sección de clasificación 222, tres patrones de candidata de la orden de búsqueda que se muestra en la siguiente ecuación 6 se ajustan por adelantado.
55 {Primer subconjunto} {Segundo subconjunto} Primera candidata: { N [0], N [1] } { N [2], N [3] } Segunda candidata: { N [0], N [2] } { N [3], N [1] } Tercera candidata: { N [0], N [3] } { N [1], N [2] }
... (ecuación 6)
60 En la búsqueda parcial, hay muchos tipos de patrones de división para el subconjunto en el que ha de buscarse en primer lugar (es decir, el primer subconjunto) y para el subconjunto en el que ha de buscarse a continuación (es decir, el segundo subconjunto). De estos patrones de división, tal como se muestra en la ecuación 6, mediante la adopción del patrón de división cuando el impulso N [0] del valor máximo de correlación más alto se incluye en el
65 subconjunto en el que ha de buscarse en primer lugar (es decir, el primer subconjunto), es posible proporcionar un buen rendimiento de codificación.
En cada orden de búsqueda de candidatas en la ecuación 6, una búsqueda se realiza en el orden desde el subconjunto en el que ha de buscarse en primer lugar (el primer subconjunto) hasta el subconjunto en el que ha de buscarse en segundo lugar (el segundo subconjunto).
5 Si N [i] en la ecuación 6 se expresa mediante unos valores específicos adquiridos mediante clasificación, se adquiere la siguiente ecuación 7, y una búsqueda se realiza en el orden desde la primera candidata, la segunda candidata a la tercera candidata.
{Primer subconjunto} {Segundo subconjunto}
Primera candidata: { 2, 0 } { 3, 1 }
Segunda candidata: { 2, 3 } { 1, 0 }
Tercera candidata: { 2, 1 } { 0, 3 }
... (ecuación 7)
15 Las tres órdenes de búsqueda que se muestran en la ecuación 7 pueden agruparse en M [3] [4] que se muestra en la siguiente ecuación 8. En el presente caso, M [3] [4] representa el orden de búsqueda de los impulsos en el caso de realizar una búsqueda parcial para un conjunto de cuatro impulsos tres veces.
M[3][4]={{2, 0, 3, 1},{2, 3, 1, 0},{2, 1, 0, 3}} ... (Ecuación8)
Es decir, la sección de clasificación 222 emite M [3] [4] a la sección de búsqueda 224 como el orden de búsqueda.
A continuación, una búsqueda parcial de libro de códigos fijo en la sección de búsqueda 224 se explicará con detalle.
25 La figura 5 y la figura 6 son unos diagramas de flujo que muestran las etapas de una búsqueda parcial de libro de códigos fijo en la sección de búsqueda 224. En el presente caso, los parámetros de un libro de códigos algebraico que se muestran en lo sucesivo.
- (1)
- el número de bits: 16 bits
- (2)
- unidad de procesamiento (longitud de subtrama): 32
- (3)
- el número de impulsos: 4
Con estos parámetros, se designa el siguiente libro de códigos algebraico.
35 ici0 [8] = {0, 4, 8, 12, 16, 20, 24, 28} ici1 [8] = {1, 5, 9, 13, 17, 21, 25, 29} ici2 [8] = {2, 6, 10, 14, 18, 22, 26, 30} ici3 [8] = {3, 7, 11, 15, 19, 23, 27, 31}
En primer lugar, en ST 3010, la sección de búsqueda 224 prepara las secuencias ici0 [8], ici1 [8], ici2 [8] e ici3 [8] que indican las posiciones de candidata de los cuatro impulsos del libro de códigos fijo, y prepara la secuencia yH [32] adquirida mediante la conversión de yH en valores positivos, la secuencia HH [32] [32] adquirida mediante el ajuste de las polaridades de HH, y el vector pol [32] que almacena los valores de polaridad (-1, + 1) de yH antes de que yH se convierta en los valores positivos. A continuación, en ST 3020, se inicializan las variables que se usan en
45 el lazo de búsqueda subsiguiente.
La sección de búsqueda 224 compara “j” y el valor “3” en ST 3030 y, si “j” es igual a, o mayor que, 3, mueve la etapa a ST 3250 para finalizar una búsqueda y, si “j” es menor que 3, mueve la etapa a la inicialización ST 3050. En ST 3040, “j” se incrementa en uno. De este modo, la sección de búsqueda 224 realiza una búsqueda parcial para un conjunto de dos subconjuntos tres veces, de acuerdo con las tres órdenes de búsqueda que se muestran en el orden de búsqueda M [3] [4] que se reciben como entrada a partir de la sección de clasificación 222.
ST 3050 a ST 3130 muestran el procesamiento en lazo de búsqueda del primer subconjunto. Para ser más específico, en ST 3050, el lazo de búsqueda para el primer subconjunto se inicializa. A continuación, en ST 3060, la
55 sección de búsqueda 224 compara 10 y el valor “8” y, si 10 es igual a, o mayor que, 8, mueve la etapa a ST 3140 para la inicialización del siguiente lazo de búsqueda o, si 10 es menor que 8, mueve la etapa a la etapa ST 3070. En ST 3070, se calculan el valor de correlación sy0 y la potencia de excitación sh0 de un impulso indicado por M [j] [0] (j = 0, 1, 2). Además, el contador i1 se inicializa a cero. A continuación, en ST 3080, i0 se incrementa en uno. De este modo, la sección de búsqueda 224 realiza el procesamiento en lazo ocho veces para ocho posiciones de impulso de candidata indicadas por M [j] [0] (J = 0, 1, 2). De forma similar, en ST 3090 a ST 3130, la sección de búsqueda 224 realiza el procesamiento en lazo ocho veces para ocho posiciones de impulso de candidata indicadas por M[j] [1](j =0, 1, 2).
En primer lugar, “i1” y el valor “8” se comparan en la decisión ST 3090 y, si “i1” es igual a, o mayor que, 8, la etapa
65 se mueve a la etapa de incremento ST 3080 o, si “i1” es menor que 8, la etapa se mueve a la etapa ST 3100. En ST 3100, la sección de búsqueda 224 calcula el valor de correlación sy1 y la potencia de excitación sh1 de un impulso indicado por M [j] [1] (j = 0, 1, 2) usando el valor de correlación sy0 y la potencia de excitación sh0 que se calculan en ST 3070 además de yH y HH que se reciben como entrada a partir de la sección de preprocesamiento 223.
En ST 3120, la sección de búsqueda 224 calcula y compara los valores de la función C de acuerdo con la ecuación
5 4, usando los valores de correlación y las potencias de excitación de los impulsos individuales que son los objetivos de procesamiento en el primer subconjunto, sobreescribe y guarda i0 e i1 de los valores de función más altos en ii0 e ii1, y sobreescribe y guarda adicionalmente el término de numerador y el término de denominador de la función C (ST 3130). En el presente caso, en ST 3120, se evita una división que requiera una gran cantidad de cálculos, y el cálculo y la comparación se realizan mediante la multiplicación cruzada de los términos de denominador y los términos de numerador. En la decisión anterior, si los valores de correlación son bajos o si los valores de correlación son superiores y se realiza el procesamiento en ST 3130, la etapa se mueve a la etapa de incremento ST 3110. En la etapa de incremento ST 3110, “i1” se incrementa en uno.
ST 3140 a ST 3220 muestra el procesamiento en lazo de búsqueda del segundo subconjunto. En el presente caso,
15 el procesamiento en lazo de búsqueda del segundo subconjunto adopta básicamente las mismas etapas que en el procesamiento en lazo de búsqueda del primer subconjunto que se muestra en ST 3050 a ST 3130. En el presente caso, se describirán solo las diferencias con respecto al procesamiento en lazo de búsqueda del primer subconjunto. En primer lugar, en ST 3140, la inicialización del procesamiento en lazo de búsqueda del segundo subconjunto se realiza usando el resultado del procesamiento en lazo de búsqueda del primer subconjunto. Asimismo, el objetivo de procesamiento del procesamiento en lazo de búsqueda del segundo subconjunto son los impulsos indicados por M [j] [2] (j = 0, 1, 2) y M [j] [3] (j = 0, 1, 2). Asimismo, en ST 3160, el valor de correlación sy2 y la potencia de excitación sh2 del impulso 2 se calculan usando la información de contador ii0 e ii1 que se buscan y se almacenan en el lazo de búsqueda para el primer subconjunto. Asimismo, de forma similar, en ST 3190, el valor de correlación sy3 y la potencia de excitación sh3 del impulso 3 se calculan usando la información de contador ii0 e ii1 que se
25 buscan y se almacenan en el lazo de búsqueda para el primer subconjunto.
A continuación, en ST 3230 y ST 3240, la sección de búsqueda 224 encuentra la combinación de las posiciones de impulso en la que el valor de la función C es el más alto en la búsqueda parcial completa.
A continuación, en ST 3250, la sección de búsqueda 224 decide ii0, ii1, ii2 e ii3 como la información de posición de los impulsos. Asimismo, el valor de la secuencia pol representa una polaridad (±1), y la sección de búsqueda 224 convierte las polaridades p0, p1, p2 y p3 en 0 o 1 de acuerdo con la siguiente ecuación 9, y codifica los resultados mediante un bit.
35 p0=(pol[ichi0[ii0]]+1)/2 p1 =( pol [ ichi1[ii1] ] +1) / 2 p2 =( pol [ ichi2[ii2] ] +1) / 2 p3=(pol[ichi3[ii3]]+1)/2 ... (ecuación9)
En el presente caso, como el método de descodificación de la información de posición y las polaridades, las posiciones de impulso se descodifican usando ichi0 [ii0], ichi1 [ii1], ichi2 [ii2] e ichi3 [ii3], y un vector de libro de códigos fijo se descodifica usando las posiciones y las polaridades descodificadas.
Tal como se muestra en la figura 5 y la figura 6, la sección de búsqueda 224 realiza una búsqueda parcial para dos
45 subconjuntos, de tal modo que es posible reducir la cantidad de cálculos de forma significativa, en comparación con el caso de una búsqueda completa. Para ser más específico, mientras que los procesamientos en lazo se realizan 4096 (84) veces en una búsqueda completa, de acuerdo con el método que se muestra en la figura 5 y la figura 6, los procesamientos en lazo se realizan 64 (82) veces para buscar en cada dos subconjuntos. Además, de acuerdo con M [3] [4], una búsqueda parcial para un conjunto de dos subconjuntos se realiza tres veces y, como resultado, el procesamiento en lazo se realiza 384 (64 ! 2 (subconjuntos) ! 3) veces en total. Esto es un décimo de la cantidad de cálculos en el caso de una búsqueda completa.
Por lo tanto, de acuerdo con la presente realización, se realiza una búsqueda parcial de libro de códigos fijo, de tal modo que es posible reducir la cantidad de cálculos, en comparación con el caso de realizar una búsqueda
55 completa.
Además, de acuerdo con la presente realización, en una búsqueda parcial, tras dividir los impulsos que forman un libro de códigos fijo en un subconjunto en el que ha de buscarse en primer lugar y un subconjunto en el que ha de buscarse a continuación, el subconjunto en el que ha de buscarse en primer lugar se forma usando el impulso del valor máximo de correlación más alto, de tal modo que es posible suprimir la distorsión de codificación causada por una búsqueda parcial. Es decir, incluso en el caso de realizar una búsqueda completa, es probable que se adopte un impulso en una posición de un valor máximo superior de correlación, de tal modo que es posible suprimir la distorsión de codificación mediante la búsqueda del impulso por adelantado en una búsqueda parcial.
65 Asimismo, a pesar de que anteriormente se ha descrito un caso con la presente realización en el que el número de impulsos es cuatro y el número de divisiones es dos, la presente invención no depende del número de impulsos o el número de divisiones y, mediante la determinación del orden de los impulsos que han de buscarse sobre la base de un resultado de la clasificación de los valores máximos de correlación de los impulsos individuales, es posible proporcionar el mismo efecto que la presente realización.
5 Asimismo, anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que la sección de cálculo de valor máximo de correlación 221 calcula el valor máximo de correlación mediante la adición del valor semi-máximo del valor de correlación a una velocidad determinada al valor máximo del valor de correlación de una forma por impulsos. No obstante, la presente invención no se limita a esto, y es igualmente posible calcular los valores máximos de correlación mediante la adición de los terceros valores más altos de correlación a una velocidad determinada a los valores anteriores en los impulsos individuales, o es igualmente posible usar el valor máximo entre los valores de correlación de los impulsos individuales tal cual para los valores máximos de correlación.
Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que las posiciones de candidata de cada impulso no se seleccionan de manera preliminar, la presente invención no
15 se limita a esto, y es igualmente posible realizar la clasificación después de que las posiciones de candidata de cada impulso se seleccionen de manera preliminar. De este modo, es posible mejorar la eficiencia de la clasificación.
Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que un libro de códigos algebraico se usa como un libro de códigos fijo, la presente invención no se limita a esto, y es igualmente posible usar un libro de códigos de múltiples impulsos como un libro de códigos fijo. Es decir, es posible implementar la presente realización usando una información de posición y una información de polaridad de múltiples impulsos.
Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el
25 que el esquema de codificación de CELP se usa como un esquema de codificación de habla, la presente invención no se limita a esto, y un requisito esencial es adoptar un esquema de codificación usando un libro de códigos que almacena los vectores de excitación, en el que el número de los vectores de excitación es conocido. Esto se debe a que una búsqueda parcial de acuerdo con la presente invención se realiza solo para la búsqueda de libro de códigos fijo, y no depende de si un libro de códigos adaptativo se encuentra presente o no, y si el método de análisis de una envolvente de espectro es, o no, uno de LPC, FFT y un banco de filtros.
(Realización 2)
La realización 2 de la presente invención es básicamente la misma que la realización 1, y difiere de la realización 1
35 solo en el procesamiento de clasificación en la sección de clasificación 222 (véase la figura 4). En lo sucesivo, a la sección de clasificación en la presente realización se asigna el número de referencia “422” y esta se coloca en lugar de la sección de clasificación 222, y solo se explicará el proceso de clasificación en la sección de clasificación 422 (que no se muestra).
La figura 7 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación del valor máximo de correlación de cada impulso en la sección de clasificación 422 de acuerdo con la presente realización. En el presente caso, las etapas que se muestran en la figura 7 incluyen básicamente las mismas etapas que en la figura 4 y, por consiguiente, se asignarán los mismos números de referencia a las mismas etapas y se omitirán sus explicaciones.
45 En ST 4040, la sección de clasificación 422 asigna “0” al número de impulso N [i], restablece el contador j que cuenta el número de lazos para buscar el i-ésimo valor máximo de correlación S [N [i]] a “0”, restablece la variable “max” que almacena el valor máximo a “0” y asigna “0” a la variable L [i] para almacenar el i-ésimo valor máximo de correlación S [N [i]].
En ST 4090, la sección de clasificación 422 asigna el i-ésimo valor máximo de correlación S [N [i]] a L [i] y asigna “1” a S [N [i]]. De este modo, el i-ésimo valor máximo de correlación S [N [i]] se almacena en L [i] y también se excluye del objetivo del procesamiento en lazo para buscar el (i + 1)-ésimo valor máximo de correlación S [N [i + 1]].
55 Mediante el procesamiento en ST 2010 a ST 4090, la sección de clasificación 422 clasifica los valores máximos de correlación S [0], S [1], S [2] y S [3] de los impulsos individuales en un orden descendente, y adquiere N [i] y L [i] que indican el resultado de clasificación.
En ST 4100, la sección de clasificación 422 determina el orden de búsqueda de los impulsos mediante la agrupación de cuatro números de impulso, N [i], que se corresponden con los valores máximos de correlación clasificados en dos patrones de división de subconjuntos predeterminados, y emite el orden de búsqueda resultante a la sección de búsqueda 224. Es decir, antes de una búsqueda parcial de libro de códigos fijo en la sección de búsqueda 224, la sección de clasificación 422 determina los números de dos impulsos que han de buscarse en primer lugar y los números de dos impulsos que han de buscarse a continuación. En la sección de clasificación 422, tres patrones de 65 candidata de orden de búsqueda se ajustan por adelantado. En el presente caso, la diferencia con respecto a la
sección de clasificación 222 de la realización 1 es que, para la tercera candidata, el orden de búsqueda se determina usando L [i] que almacena los valores máximos de correlación.
Para ser más específico, en primer lugar, la sección de clasificación 422 ajusta dos órdenes de búsqueda de
5 candidatas de la primera candidata y la segunda candidata que se muestran en la siguiente ecuación 10, usando el resultado de clasificación N [i]. Es decir, tal como se muestra en la ecuación 10, la sección de clasificación 422 incluye el impulso del valor máximo de correlación más alto en el subconjunto en el que ha de buscarse en primer lugar en la primera candidata y la segunda candidata, mejorando de ese modo el rendimiento de codificación.
10 {Primer subconjunto} {Segundo subconjunto} Primera candidata: { N [0], N [1] } { N [2], N [3] } Segunda candidata: { N [0], N [2] } { N [3], N [1] } ... (ecuación 10)
15 [0101] A continuación, la sección de clasificación 422 ajusta un tercer orden de búsqueda de candidatas usando el resultado de clasificación N [i] y L [i] tal como sigue. Es decir, la sección de clasificación 422 decide si L [2] + L [3] es igual a, o mayor que, (L [0] + L [1] ) ! 0,91 o no y, si L[2]+L[3] es igual a, o mayor que, (L[0]+L[1]) ! 0,91, adopta {N [2], N [3] } {N [0], N [1] } como una tercera candidata. Si L [2] + L [3] es menor que (L [0] + L [1] ) ! 0,91, la sección de clasificación 422 decide a continuación si L [1] + L [3] es igual a, o mayor que, (L [0] + L [2] ) ! 0,94 o no.
20 SiL[1]+L[3] esigual a, o mayor que, (L[0]+L[2]) ! 0,94, la sección de clasificación 422 adopta {N [1], N [3] } {N [2], N [0] } como una tercera candidata. Si L [1] + L [3] es menor que (L [0] + L [2] ) ! 0,94, la sección de clasificación 422 decide a continuación si L [0] + L [3] es igual a, o mayor que, L [1] + L [2] o no. Si L [0] + L [3] es igual a, o mayor que, L [1] + L [2], la sección de clasificación 422 genera {N [0], N [3] } {N [1], N [2] } como una tercera candidata o, si L [0] + L [3] es menor que L [1] + L [2], adopta {N [1], N [2] } {N [3], N [0] } como una tercera
25 candidata.
Tras la adopción de un tercer orden de búsqueda de candidatas, cuando las diferencias entre los valores máximos de correlación clasificados de los impulsos son pequeñas, la sección de clasificación 422 forma el subconjunto en el que ha de buscarse en primer lugar, lo que no siempre incluye el impulso del valor máximo de correlación más alto,
30 para reducir la redundancia de la búsqueda en la sección de búsqueda 224 subsiguiente. Es decir, la sección de clasificación 442 forma una pluralidad de combinaciones de los valores máximos de correlación clasificados de los impulsos individuales sobre la base del resultado de clasificación N [i], y agrupa cuatro impulsos en dos subconjuntos sobre la base de un resultado de la comparación de la pluralidad de combinaciones formadas multiplicadas por un coeficiente.
35 Por ejemplo, cuando N [i] = {2, 0, 3, 1} y L [i] = {9,5, 9,0, 8,5, 8,0} se encuentran como un resultado de clasificación, L[2]+L[3] esmenor que (L[0]+L[1]) ! 0,91 y L[1]+L[3] es igual a, o mayor que, (L[0]+L[2]) ! 0,94. Por lo tanto, la sección de clasificación 422 adopta {N [1], N [3] } {N [2], N [0] } como una tercera candidata.
40 Cuando N [i] se representa mediante unos valores específicos, las candidatas primera, segunda y tercera se expresan en la siguiente ecuación 11.
{Primer subconjunto} {Segundo subconjunto}
Primera candidata: { 2, 0 } { 3, 1 }
45 Segunda candidata: { 2, 3 } { 1, 0 } Tercera candidata: { 0, 1 } { 3, 2 } ... (ecuación 11)
Las tres órdenes de búsqueda de candidatas que se muestran en la ecuación 11 pueden agruparse en M [3] [4] que 50 se muestra en la siguiente ecuación 12.
M[3][4]={{2, 0, 3, 1},{2, 3, 1, 0},{0, 1, 3,2}} ...(Ecuación12)
La sección de clasificación 422 emite M [3] [4] a la sección de búsqueda 224 como órdenes de búsqueda de 55 candidatas.
Por lo tanto, de acuerdo con la presente realización, tras dividir los impulsos que forman un libro de códigos fijo en el subconjunto en el que ha de buscarse en primer lugar y el subconjunto en el que ha de buscarse a continuación en la búsqueda parcial, el subconjunto en el que ha de buscarse en primer lugar, lo que no siempre incluye el impulso
60 del valor máximo de correlación más alto, se forma no solo sobre la base del orden de los valores máximos de correlación clasificados de los impulsos individuales sino también de los valores de los valores máximos de correlación clasificados de estos impulsos. De este modo, es posible reducir la redundancia de la búsqueda en la búsqueda parcial.
Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que unos coeficientes tal como 0,91 y 0,94 se usan para adoptar un tercer orden de búsqueda de candidatas, la presente invención no se limita a esto, y es igualmente posible usar otros coeficientes que se determinan de manera estadística por adelantado.
5 Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que L [i] se usa adicionalmente además de N [i] para adoptar un tercer orden de búsqueda de candidatas, la presente invención no se limita a esto, y es igualmente posible usar tanto N [i] como L [i] incluso en el caso de la adopción de un primer orden de búsqueda de candidatas o un segundo orden de búsqueda de candidatas.
(Realización 3)
La realización 3 es básicamente la misma que la realización 1, y difiere de la realización 1 solo en que los impulsos agrupados en subconjuntos se reorganizan adicionalmente de acuerdo con un orden predeterminado. Es decir, la
15 presente realización difiere de la realización 1 solo en parte del procesamiento de clasificación que se muestra en la figura 4. En lo sucesivo, a la sección de clasificación en la presente realización se asigna el número de referencia “522” y esta se coloca en lugar de la sección de clasificación 222, y solo se explicará el proceso de clasificación en la sección de clasificación 522 (que no se muestra).
La figura 8 es un diagrama de flujo que muestra las etapas del procesamiento de clasificación de los valores máximos de correlación de los impulsos individuales en la sección de clasificación 522 de acuerdo con la presente realización. En el presente caso, las etapas que se muestran en la figura 8 incluyen básicamente las mismas etapas que en la figura 4 y, por consiguiente, se asignarán los mismos números de referencia a las mismas etapas y se omitirán sus explicaciones.
25 En ST 5100 en la figura 8, a pesar de que la sección de clasificación 522 realiza básicamente el mismo procesamiento que el procesamiento en ST 2100 en la figura 4 que se realiza por la sección de clasificación 222 de acuerdo con la realización 1, la sección de clasificación 522 difiere de la sección de clasificación 222 en no emitir la M [3] [4] resultante tal cual y en emitir esta a la sección de búsqueda 224 después del siguiente procesamiento en ST 5110 en su lugar.
En ST 5110, la sección de clasificación 522 forma M’[6] [2] mediante la agrupación de los elementos que se incluyen en M [3] [4] en pares de dos impulsos, y realiza un ajuste de la reorganización del orden de dos impulsos que se incluyen en M’[6] [2] a uno de {0, 1}, {1, 2}, {2, 3}, {3, 0}, {0, 2} y {1, 3}.
35 La figura 9 es un diagrama de flujo que muestra las etapas en la sección de clasificación 522 en ST 5110 que se muestra en la figura 8.
En primer lugar, en ST 6010, la sección de clasificación 522 inicializa la variable “i” a “0”.
A continuación, en ST 6020, la sección de clasificación 522 decide si “i” es igual a “6” o no.
Si se decide en ST 6020 que “i” es igual a “6” (“SÍ” en ST 6020), la sección de clasificación 522 finaliza el proceso que se muestran en la figura 9 (es decir, el procesamiento en ST 5110).
45 Por el contrario, si se decide en ST 6020 que “i” no es igual a “6” (“NO” en ST 6020), la sección de clasificación 522 mueve la etapa a ST 6030.
En ST 6030, la sección de clasificación 522 decide si M’ [i] [1] = “2” y M’ [i] [2] = “1” o no.
Si se decide en ST 6030 que M’ [i] [1] = “2” y M’ [i] [2] = “1” (“SÍ” en ST 6030), la sección de clasificación 522 ajusta M’ [i] [1] a “1” y M’ [i] [2] a “2” en ST 6040, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6030 que las dos condiciones M’ [i] [1] = “2” y M’ [i] [2] = “1” no se cumplen al 55 mismo tiempo (“NO” en ST 6030), la sección de clasificación 522 mueve la etapa a ST 6050.
En ST 6050, la sección de clasificación 522 decide si M’ [i] [1] = “3” y M’ [i] [2] = “2” o no.
Si se decide en ST 6050 que M’ [i] [1] = “3” y M’ [i] [2] = “2” (“SÍ” en ST 6050), la sección de clasificación 522 ajusta M’ [i] [1] a “1” a “2” y M’ [i] [2] a “3” en ST 6060, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6050 que las dos condiciones M’ [i] [1] = “3” y M’ [i] [2] = “2” no se cumplen al mismo tiempo (“NO” en ST 6050), la sección de clasificación 522 mueve la etapa a ST 6070.
65 En ST 6070, la sección de clasificación 522 decide si M’ [i] [1] = “4” y M’ [i] [2] = “3” o no.
Si se decide en ST 6070 que M’ [i] [1] = “4” y M’ [i] [2] = “3” (“SÍ” en ST 6070), la sección de clasificación 522 ajusta M’ [i] [1] a “3” y M’ [i] [2] a “4” en ST 6080, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6070 que las dos condiciones M’ [i] [1] = “4” y M’ [i] [2] = “3” no se cumplen al 5 mismo tiempo (“NO” en ST 6070), la sección de clasificación 522 mueve la etapa a ST 6090.
En ST 6090, la sección de clasificación 522 decide si M’ [i] [1] = “1” y M’ [i] [2] = “4” o no.
Si se decide en ST 6090 que M’ [i] [1] = “1” y M’ [i] [2] = “4” (“SÍ” en ST 6090), la sección de clasificación 522 ajusta M’ [i] [1] a “4” y M’ [i] [2] a “1” en ST 6100, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6090 que las dos condiciones M’ [i] [1] = “1” y M’ [i] [2] = “4” no se cumplen al mismo tiempo (“NO” en ST 6090), la sección de clasificación 522 mueve la etapa a ST 6110.
15 En ST 6110, la sección de clasificación 522 decide si M’ [i] [1] = “3” y M’ [i] [2] = “1” o no.
Si se decide en ST 6110 que M’ [i] [1] = “3” y M’ [i] [2] = “1” (“SÍ” en ST 6110), la sección de clasificación 522 ajusta M’ [i] [1] a “1” y M’ [i] [2] a “3” en ST 6120, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6110 que las dos condiciones M’ [i] [1] = “3” y M’ [i] [2] = “1” no se cumplen al mismo tiempo (“NO” en ST 6110), la sección de clasificación 522 mueve la etapa a ST 6130.
En ST 6130, la sección de clasificación 522 decide si M’ [i] [1] = “4” y M’ [i] [2] = “2” o no.
25 Si se decide en ST 6130 que M’ [i] [1] = “4” y M’ [i] [2] = “2” (“SÍ” en ST 6130), la sección de clasificación 522 ajusta M’ [i] [1] a “2” y M’ [i] [2] a “4” en ST 6140, y mueve la etapa a ST 6150.
Por el contrario, si se decide en ST 6130 que las dos condiciones M’ [i] [1] = “4” y M’ [i] [2] = “2” no se cumplen al mismo tiempo (“NO” en ST 6130), la sección de clasificación 522 mueve la etapa a ST 6150.
En ST 6150, la sección de clasificación 522 incrementa “i” en uno y mueve la etapa a ST 6020.
Por ejemplo, si la sección de clasificación 522 forma M’ [6] [2] = { {2, 0}, {3, 1}, {2, 3}, {1, 0}, {2, 1}, {0, 3} } usando M [3] [4] = { {2, 0, 3, 1}, {2, 3, 1, 0}, {2, 1, 0, 3} }, y ajusta adicionalmente el orden de los pares de dos impulsos que
35 se incluyen en M’ [6] [2] de acuerdo con las etapas que se muestran en la figura 9, M’ [6] [2] = { {0, 2}, {1, 3}, {2, 3}, {0, 1}, {1, 2}, {3, 0} } se encuentra. Además, la sección de clasificación 522 forma M [3] [4] = { {0, 2, 1, 3}, {2, 3, 0, 1}, {1, 2, 3, 0} } de nuevo usando M’ [6] [2] = { {0, 2}, {1, 3}, {2, 3}, {0, 1}, {1, 2}, {3, 0} } adquirida por ajuste, y emite esta a la sección de búsqueda 224.
El efecto del procesamiento de ajuste en la sección de clasificación 522 que se muestra en la figura 9 se explicará en lo sucesivo.
Una búsqueda de los impulsos que forman un libro de códigos fijo se realiza mediante la búsqueda de las posiciones de impulso y las polaridades mediante las cuales se maximiza la función C en la ecuación 4 anterior. Por lo tanto,
45 tras la búsqueda, es necesaria una memoria (RAM: Random Access Memoria, Memoria de Acceso Aleatorio) para la matriz HH del término de denominador en la ecuación 4. Por ejemplo, cuando la longitud de un vector de excitación es 32, es necesaria una memoria que soporte la mitad de una matriz de 32 ! 32 que incluye el vector diagonal. Es decir, es necesaria una memoria de (32 ! 32 / 2 + 16) bytes = 528 bytes. En el presente caso, es necesaria una memoria que soporte una matriz completa (32 ! 32 bytes = 1024 bytes) para reducir la cantidad de cálculos que se requieren para acceder a un índice que se designa tras el cálculo y, por consiguiente, es necesaria una memoria más grande.
Como contraste con esto, como la presente invención, mediante la división por adelantado de los impulsos que forman un libro de códigos fijo en pares del subconjunto en el que ha de buscarse en primer lugar y el subconjunto
55 en el que ha de buscarse a continuación y mediante la búsqueda de los impulsos de una forma por pares, solo se requiere una matriz 8 ! 8 (el cuadrado del número de entradas por par), de tal modo que es posible mantener la capacidad de memoria en 8 ! 8 ! 6 = 384 bytes. En el presente caso, esta matriz no es una matriz simétrica y, por consiguiente, la matriz varía si se invierte el orden de los números de impulso. Como resultado, es necesario preparar adicionalmente una matriz inversa (lo que dobla la capacidad de memoria), cambiar el método de acceso tras la búsqueda (lo que aumenta la cantidad de cálculos) o preparar un programa por combinación de pares (lo que aumenta la capacidad de memoria y la cantidad de cálculos). Por lo tanto, la presente realización reorganiza el orden de los impulsos tras la búsqueda por par, y limita la búsqueda completa a seis pares. De este modo, es posible limitar la capacidad de memoria que se requiere para la búsqueda de impulsos a 384 bytes tal como anteriormente, y reducir la cantidad de cálculos.
65 Por lo tanto, de acuerdo con la presente realización, después de agrupar los impulsos que forman un libro de códigos fijo en pares, los impulsos que van a agruparse se reorganizan en un orden predeterminado y se buscan de una forma por pares, de tal modo que es posible reducir la capacidad de memoria y la cantidad de cálculos, que se requieren para una búsqueda de libro de códigos fijo.
5 Asimismo, a pesar de que anteriormente se ha descrito un caso a modo de ejemplo con la presente realización en el que los pares de los impulsos que han de buscarse se limitan a seis patrones de {0, 1}, {1, 2}, {2, 3}, {3, 0}, {0, 2} y {1, 3}, la presente invención no se limita a esto, y es igualmente posible invertir el orden de los impulsos que se incluyen en los pares anteriores, lo que no cambia el rendimiento promedio de la búsqueda de impulsos.
10 Las realizaciones de la presente invención se han descrito anteriormente.
Asimismo, puede hacerse referencia al libro de códigos fijo de acuerdo con las realizaciones anteriores como un “libro de códigos de ruido”, “libro de códigos estocástico” o “libro de códigos aleatorio”.
15 Asimismo, puede hacerse referencia a un libro de códigos adaptativo como un “libro de códigos de excitación adaptativo”, y puede hacerse referencia a un libro de códigos fijo como un “libro de códigos de excitación fijo”.
Asimismo, puede hacerse referencia al LSP como “LSF (Line Spectral Frequency, Frecuencia Espectral de Línea)”, y
20 puede sustituirse LSP por LSF. Asimismo, a pesar de que es posible un caso en el que se codifican ISP (Immittance Spectrum Pairs, Pares de Espectro de Inmitancia) como parámetros espectrales en lugar de LSP, en el presente caso, mediante la sustitución de los LSP por unos ISP, es posible implementar las realizaciones anteriores como un aparato de codificación de ISP.
25 A pesar de que anteriormente se ha descrito un caso con las realizaciones anteriores como un ejemplo en el que la presente invención se implementa con soporte físico, la presente invención puede implementarse con soporte lógico.
Además, cada bloque de función empleado en la descripción de cada una de las realizaciones que se han mencionado anteriormente puede implementarse típicamente como un LSI constituido por un circuito integrado.
30 Estos pueden ser unas microplacas individuales o contenidas, en su totalidad o en parte, en una única microplaca. “LSI” se adopta en el presente caso pero también puede hacerse referencia a este como “IC”, “LSI de sistema”, “súper LSI”, o “ultra LSI” dependiendo de diferentes grados de integración.
Además, el método de integración de circuitos no se limita a LSI, y también es posible una implementación que use
35 una circuitería dedicada o procesadores de propósito general. Después de la fabricación de LSI, también es posible la utilización de una FPGA (Field Programmable Gate Array, matriz de puertas programable en campo) o un procesador reconfigurable en el que pueden reconfigurarse las conexiones y los ajustes de las células de circuito en un LSI.
40 Además, si resultara que la tecnología de circuitos integrados sustituyera a las LSI como resultado del progreso en la tecnología de los semiconductores o de otra tecnología derivada, también es posible, naturalmente, llevar a cabo una integración de funciones de bloque usando esta tecnología. También es posible la aplicación de biotecnología.
45 El aparato de codificación de habla y el método de codificación de habla de acuerdo con la presente invención permiten la codificación de habla mediante un libro de códigos fijo con un uso eficiente de bits, y pueden aplicarse, por ejemplo, a los teléfonos móviles en un sistema de comunicación móvil.
Claims (5)
- REIVINDICACIONES1. Un aparato de codificación de habla que comprende:5 una sección de cálculo (221) que calcula unos valores de correlación en unas posiciones de impulso de candidata usando una señal objetivo y una pluralidad de impulsos que forman un libro de códigos fijo, y calcula, de una forma por impulsos, unos valores representativos de los impulsos usando los valores máximos de los valores de correlación; y una sección de clasificación (222) que clasifica los valores representativos adquiridos de una forma por10 impulsos;caracterizado poragrupar, la sección de clasificación (222), los impulsos que se corresponden con los valores representativos clasificados en una pluralidad de subconjuntos predeterminados de al menos dos impulsos, y determinar un primer subconjunto en el que ha de buscarse en primer lugar entre la pluralidad de subconjuntos usando los15 valores representativos que se corresponden con los impulsos agrupados; y una sección de búsqueda (224) que busca en el libro de códigos fijo usando el primer subconjunto y adquiere un código que indica las posiciones y las polaridades de la pluralidad de impulsos para minimizar la distorsión de codificación.
- 20 2. El aparato de codificación de habla de acuerdo con la reivindicación 1, donde:
la sección de cálculo (221) calcula un valor máximo de correlación de cada impulso como los valores representativos que están asociados con el impulso.- 25 3. El aparato de codificación de habla de acuerdo con la reivindicación 1 o la reivindicación 2, donde la sección de clasificación (222) ajusta un subconjunto que incluye un impulso que se corresponde con un valor representativo más alto entre los valores representativos adquiridos de una forma por impulsos, como el primer subconjunto.
- 4. El aparato de codificación de habla de acuerdo con la reivindicación 1, donde:30 la sección de clasificación (222) agrupa los impulsos que se corresponden con los valores representativos clasificados en una pluralidad de combinaciones de una pluralidad de subconjuntos predeterminados, y determina los primeros subconjuntos en la pluralidad de combinaciones, respectivamente; y la sección de búsqueda (224) busca en el libro de códigos fijo usando los primeros subconjuntos y adquiere el35 código para minimizar la distorsión de codificación.
- 5. El aparato de codificación de habla de acuerdo con la reivindicación 1, donde la sección de cálculo (221) calcula, como un valor representativo que está asociado con el impulso, un valor máximo de correlación de cada impulso mediante la adición de un segundo valor más alto de correlación multiplicado por una velocidad determinada a un40 valor máximo del valor de correlación de una forma por impulsos.
- 6. El aparato de codificación de habla de acuerdo con la reivindicación 1, donde la sección de clasificación (222) genera una pluralidad de combinaciones de los valores representativos que se corresponden con los impulsos agrupados, y determina el primer subconjunto sobre la base de un resultado de comparación de las combinaciones45 multiplicadas por un valor predeterminado.
- 7. El aparato de codificación de habla de acuerdo con la reivindicación 1, donde la sección de clasificación (222) reorganiza los impulsos que van a agruparse en la pluralidad de subconjuntos en un orden predeterminado.50 8. Un método de codificación de habla que comprende las etapas de:calcular unos valores de correlación en unas posiciones de impulso de candidata usando una señal objetivo y una pluralidad de impulsos que forman un libro de códigos fijo, y calcular, de una forma por impulsos, unos valores representativos de los impulsos usando los valores máximos de los valores de correlación55 clasificar los valores representativos adquiridos de una forma por impulsos;caracterizado poragrupar los impulsos que se corresponden con los valores representativos clasificados en una pluralidad de subconjuntos predeterminados de al menos dos impulsos y determinar un primer subconjunto en el que ha de buscarse en primer lugar entre la pluralidad de subconjuntos usando los valores representativos que se60 corresponden con los impulsos agrupados; y buscar en el libro de códigos fijo usando el primer subconjunto y generar un código que indica las posiciones y las polaridades de la pluralidad de impulsos para minimizar la distorsión de codificación.
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007196782 | 2007-07-27 | ||
| JP2007196782 | 2007-07-27 | ||
| JP2007260426 | 2007-10-03 | ||
| JP2007260426 | 2007-10-03 | ||
| JP2008007418 | 2008-01-16 | ||
| JP2008007418 | 2008-01-16 | ||
| PCT/JP2008/001999 WO2009016816A1 (ja) | 2007-07-27 | 2008-07-25 | 音声符号化装置および音声符号化方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2428572T3 true ES2428572T3 (es) | 2013-11-08 |
Family
ID=40304060
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES08776896T Active ES2428572T3 (es) | 2007-07-27 | 2008-07-25 | Dispositivo de codificación de audio y método de codificación de audio |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US8620648B2 (es) |
| EP (1) | EP2172928B1 (es) |
| JP (1) | JP5388849B2 (es) |
| KR (1) | KR101369064B1 (es) |
| CN (1) | CN101765880B (es) |
| AU (1) | AU2008283697B2 (es) |
| BR (1) | BRPI0814129A2 (es) |
| ES (1) | ES2428572T3 (es) |
| WO (1) | WO2009016816A1 (es) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5981909B2 (ja) | 2011-06-15 | 2016-08-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | パルス位置探索装置、符号帳探索装置、及びこれらの方法 |
| CN103377653B (zh) * | 2012-04-20 | 2016-03-16 | 展讯通信(上海)有限公司 | 语音编码中代数码表的搜索方法及装置,语音编码方法 |
| US10021130B2 (en) * | 2015-09-28 | 2018-07-10 | Verizon Patent And Licensing Inc. | Network state information correlation to detect anomalous conditions |
| CN114023338B (zh) * | 2020-07-17 | 2025-06-03 | 华为技术有限公司 | 多声道音频信号的编码方法和装置 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5701392A (en) | 1990-02-23 | 1997-12-23 | Universite De Sherbrooke | Depth-first algebraic-codebook search for fast coding of speech |
| JP3285185B2 (ja) * | 1995-06-16 | 2002-05-27 | 日本電信電話株式会社 | 音響信号符号化方法 |
| US6385576B2 (en) | 1997-12-24 | 2002-05-07 | Kabushiki Kaisha Toshiba | Speech encoding/decoding method using reduced subframe pulse positions having density related to pitch |
| JP3579276B2 (ja) | 1997-12-24 | 2004-10-20 | 株式会社東芝 | 音声符号化/復号化方法 |
| CA2252170A1 (en) * | 1998-10-27 | 2000-04-27 | Bruno Bessette | A method and device for high quality coding of wideband speech and audio signals |
| US7389227B2 (en) * | 2000-01-14 | 2008-06-17 | C & S Technology Co., Ltd. | High-speed search method for LSP quantizer using split VQ and fixed codebook of G.729 speech encoder |
| JP3808270B2 (ja) | 2000-02-17 | 2006-08-09 | 三菱電機株式会社 | 音声符号化装置、音声復号化装置及び符号語配列方法 |
| CA2327041A1 (en) * | 2000-11-22 | 2002-05-22 | Voiceage Corporation | A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals |
| JP2002366199A (ja) | 2001-06-11 | 2002-12-20 | Matsushita Electric Ind Co Ltd | Celp型音声符号化装置 |
| JP3881946B2 (ja) * | 2002-09-12 | 2007-02-14 | 松下電器産業株式会社 | 音響符号化装置及び音響符号化方法 |
| AU2003234763A1 (en) | 2002-04-26 | 2003-11-10 | Matsushita Electric Industrial Co., Ltd. | Coding device, decoding device, coding method, and decoding method |
| JP3887598B2 (ja) * | 2002-11-14 | 2007-02-28 | 松下電器産業株式会社 | 確率的符号帳の音源の符号化方法及び復号化方法 |
| KR100503414B1 (ko) * | 2002-11-14 | 2005-07-22 | 한국전자통신연구원 | 고정 코드북의 집중 검색 방법 및 장치 |
| CA2457988A1 (en) * | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
| US20050256702A1 (en) * | 2004-05-13 | 2005-11-17 | Ittiam Systems (P) Ltd. | Algebraic codebook search implementation on processors with multiple data paths |
| JP4871501B2 (ja) * | 2004-11-04 | 2012-02-08 | パナソニック株式会社 | ベクトル変換装置及びベクトル変換方法 |
| SG123639A1 (en) * | 2004-12-31 | 2006-07-26 | St Microelectronics Asia | A system and method for supporting dual speech codecs |
| CN100498934C (zh) | 2005-10-31 | 2009-06-10 | 连展科技(天津)有限公司 | 一种新型的快速固定码本搜索方法 |
| CN101000768B (zh) * | 2006-06-21 | 2010-12-08 | 北京工业大学 | 嵌入式语音编解码的方法及编解码器 |
| EP2116996A4 (en) * | 2007-03-02 | 2011-09-07 | Panasonic Corp | ENCODING DEVICE AND ENCODING METHOD |
| US8046214B2 (en) * | 2007-06-22 | 2011-10-25 | Microsoft Corporation | Low complexity decoder for complex transform coding of multi-channel sound |
-
2008
- 2008-07-25 ES ES08776896T patent/ES2428572T3/es active Active
- 2008-07-25 WO PCT/JP2008/001999 patent/WO2009016816A1/ja not_active Ceased
- 2008-07-25 KR KR1020107001665A patent/KR101369064B1/ko not_active Expired - Fee Related
- 2008-07-25 US US12/670,777 patent/US8620648B2/en not_active Expired - Fee Related
- 2008-07-25 AU AU2008283697A patent/AU2008283697B2/en not_active Ceased
- 2008-07-25 BR BRPI0814129-0A2A patent/BRPI0814129A2/pt not_active IP Right Cessation
- 2008-07-25 JP JP2009525276A patent/JP5388849B2/ja not_active Expired - Fee Related
- 2008-07-25 EP EP08776896.6A patent/EP2172928B1/en not_active Not-in-force
- 2008-07-25 CN CN2008801008018A patent/CN101765880B/zh not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP2172928A4 (en) | 2011-07-13 |
| EP2172928A1 (en) | 2010-04-07 |
| JPWO2009016816A1 (ja) | 2010-10-14 |
| KR101369064B1 (ko) | 2014-02-28 |
| US20100191526A1 (en) | 2010-07-29 |
| BRPI0814129A2 (pt) | 2015-02-03 |
| US8620648B2 (en) | 2013-12-31 |
| AU2008283697A1 (en) | 2009-02-05 |
| WO2009016816A1 (ja) | 2009-02-05 |
| KR20100049562A (ko) | 2010-05-12 |
| CN101765880B (zh) | 2012-09-26 |
| AU2008283697B2 (en) | 2012-05-10 |
| JP5388849B2 (ja) | 2014-01-15 |
| CN101765880A (zh) | 2010-06-30 |
| EP2172928B1 (en) | 2013-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2716652T3 (es) | Codificador para la codificación de una señal de audio, sistema de transmisión de audio y procedimiento para la determinación de valores de corrección | |
| CN101911185B (zh) | 矢量量化装置、矢量反量化装置及其方法 | |
| WO2001029825A1 (en) | Variable bit-rate celp coding of speech with phonetic classification | |
| ES2404408T3 (es) | Dispositivo de codificación y método de codificación | |
| EP2254110B1 (en) | Stereo signal encoding device, stereo signal decoding device and methods for them | |
| KR20080068942A (ko) | 확산 펄스 벡터 생성 장치 및 방법 | |
| RU2586597C2 (ru) | Кодирование и декодирование позиций импульсов дорожек аудиосигнала | |
| CN101821800A (zh) | 矢量量化装置、矢量反量化装置和其方法 | |
| ES2428572T3 (es) | Dispositivo de codificación de audio y método de codificación de audio | |
| EP2618331B1 (en) | Quantization device and quantization method | |
| JPWO2009090875A1 (ja) | ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法 | |
| US20090240494A1 (en) | Voice encoding device and voice encoding method | |
| EP2116996A1 (en) | Encoding device and encoding method | |
| EP2099025A1 (en) | Audio encoding device and audio encoding method | |
| ES2646021T3 (es) | Método y aparato para codificación, procesamiento y decodificación de envolvente de señal de audio mediante modelado de una representación de suma acumulativa que emplea cuantificación de distribución y codificación | |
| US20090164211A1 (en) | Speech encoding apparatus and speech encoding method | |
| RU2458413C2 (ru) | Устройство кодирования аудио и способ кодирования аудио | |
| US20130166306A1 (en) | Pulse location search device, codebook search device, and methods therefor | |
| KR100955126B1 (ko) | 벡터 양자화 장치 |