ES2960582T3 - Cuantificador vectorial - Google Patents

Cuantificador vectorial Download PDF

Info

Publication number
ES2960582T3
ES2960582T3 ES19167463T ES19167463T ES2960582T3 ES 2960582 T3 ES2960582 T3 ES 2960582T3 ES 19167463 T ES19167463 T ES 19167463T ES 19167463 T ES19167463 T ES 19167463T ES 2960582 T3 ES2960582 T3 ES 2960582T3
Authority
ES
Spain
Prior art keywords
vector
code
vectors
class
centroid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19167463T
Other languages
English (en)
Inventor
Volodya Grancharov
Toftgård Tomas Jansson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2960582T3 publication Critical patent/ES2960582T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un método de codificación de audio y un códec de audio para codificar un número variable de vectores objetivo por segmento de tiempo, representando un vector objetivo una región de pico espectral de un segmento de una señal de audio. El método comprende comparar un vector objetivo de entrada con una pluralidad de centroides, representando cada centroide una clase respectiva de vectores de código en un libro de códigos. Además, se determina un punto de partida para una búsqueda relacionada con el vector objetivo de entrada en el libro de códigos, basándose en el resultado de la comparación. Los vectores de código en el libro de códigos se ordenan según una medida de distorsión que refleja la distancia entre cada vector de código y los centroides de las clases. El método permite que se pueda buscar primero la clase de vectores de código que comprende los vectores de código candidatos más probables con respecto al vector de entrada. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Cuantificador vectorial
Campo técnico
La tecnología sugerida se relaciona generalmente con la cuantificación vectorial (VQ), y especialmente con la precisión y complejidad computacional de la misma.
Antecedentes
Hay dos clases principales de algoritmos de cuantificación, a saber: cuantificadores escalares (SQ), que procesan un vector de entrada elemento por elemento, y cuantificadores vectoriales (VQ), que cuantifican un vector de entrada como una unidad (todas las dimensiones del vector se cuantifican conjuntamente). A una tasa de bits dada, los VQ son superiores a los SQ, pero a costa de una mayor complejidad computacional y almacenamiento de memoria.
Sea el vector objetivo a cuantificarMdimensional: s = [s(1) s(2)...s { M ) ] .El algoritmo de VQ realiza una búsqueda en
un libro de códigos (CB) de tamañoÍC}K-k , k j k ~ 1 ó evectores de código /Wdimensional prealmacenadoC k = [C k(1) Ck(2)...C k (M ) ].Tal búsqueda devuelve el índice del vector de libro de códigos que proporciona la mejor coincidenciak °pten base a una medida de distorsiónd (s , C k).Las ecuaciones (1-2) a continuación describen esta operación, suponiendo que el criterio de búsqueda se basa en un error cuadrático:
k ° v t = a r g m i n d { s , c k )(1)
k
El índice óptimok °ptse transmite al decodificador, y el vector de código correspondiente se extrae del CB (CB idénticos están disponibles tanto en el codificador como en el decodificador) y se utiliza para reconstruir el vector objetivo. El CB típicamente se entrena fuera de línea y captura las propiedades estadísticas de los datos. En muchos casos, el error cuadrático simple (véase la ecuación (2)) se modifica con ponderaciones, de manera que:
<d(s, ck) =>HLi<w(m)>• (<s(m>)<- ck(m>))2<(3)>
donde las ponderaciones w(m) son dependientes de la aplicación. Para simplificar la presentación en la presente memoria, en la descripción adicional solo se utilizará el error cuadrático, definido en la ecuación (2). Sin embargo, se debería señalar que los principios discutidos en la presente memoria también son válidos cuando se usan criterios más sofisticados, tales como el de la ecuación (3).
Como se puede concluir a partir de la descripción anterior, la precisión o calidad de la señal objetivo reconstruida es dependiente del tamañokdel libro de códigos; donde un CB grande conduce a una mayor precisión y, de este modo, a una mejor calidad que un CB más pequeño. Al mismo tiempo, a partir de la ecuación (1) se puede concluir que la principal complejidad computacional también está relacionada con el tamaño del CB, suponiendo que la dimensionalidad del vector está fijada por la aplicación.
Típicamente, los sistemas de transmisión de audio se construyen bajo las restricciones de una complejidad computacional limitada. Es decir, la complejidad del peor de los casos no debería exceder un cierto nivel predefinidoL max.Por ejemplo, la complejidad computacional de un códec de audio típicamente se mide por medio de Millones de Operaciones Ponderadas por Segundo (WMOPS), pero como consideramos un módulo de VQ, la complejidad está directamente relacionada con el tamaño del espacio de búsqueda (tamaño del CB). Un VQ típicamente es el módulo más complejo de un códec y, además, la búsqueda de CB (número de comparaciones con vectores de CB) es lo que hace que el VQ sea tan complejo.
Si un sistema de VQ es para cuantificar un vector objetivosa la vez, el espacio de búsquedaktiene que ser optimizado de manera que la complejidad no excedaL max.Algunas técnicas de optimización fuera de línea, tales como el VQ dividido y de múltiples etapas, pueden proporcionar cierta reducción de la complejidad (y el almacenamiento), dadas las propiedades del vectorsy los requisitos de calidad para el vector reconstruido.
Si el sistema de VQ es para cuantificar múltiples vectores objetivo (de entrada)'Í•SJ7lJ}Nn=1 a la vez, con un númerovariable de vectoresN ,las técnicas de optimización fuera de línea mencionadas anteriormente no son capaces de mantener las restricciones de complejidad y calidad. En tales casos, la optimización fuera de línea tiene que encontrar un equilibrio entre los requisitos contradictorios de A) limitar la complejidad (=limitar la búsqueda) cuando un gran número de vectores de entrada se van a cuantificar simultáneamente, y B) mantener una alta precisión (=buscar en un libro de códigos grande) cuando se va a cuantificar un número bajo de vectores, lo cual no es una tarea sencilla. Los artículos "Fast codebook search algorithm for unconstrained vector quantisation" de C.-Q. Chen et al y "Application of sorted codebook vector quantization to spectral coding of speech" de H.R.S. Mohammadi et al describen la técnica anterior relevante.
Compendio
La invención está definida por las reivindicaciones adjuntas.
La tecnología descrita en la presente memoria es aplicable, por ejemplo, para sistemas de compresión/transmisión de audio y video que realizan compresión con pérdida en el flujo de entrada, y se podría describir en una serie de aspectos diferentes. La tecnología descrita en la presente memoria implica un libro de códigos, que se divide en clases y se ordena, y la clasificación de un vector objetivo de entrada a ser cuantificado en una de dichas clases. La tecnología descrita en la presente memoria permite que la clase de vectores de código, en el libro de códigos, que comprende el conjunto más probable de vectores de código candidatos con respecto al vector de entrada, se busque primero de las clases en el libro de códigos. Por tanto, el vector de código de mejor coincidencia para el vector de entrada se puede encontrar al principio de una búsqueda, y se puede reducir la complejidad computacional.
Según un primer aspecto, se proporciona un método de codificación de audio para codificar un número variable de vectores objetivo por segmento de tiempo. Un vector objetivo representa una región de pico espectral de un segmento de una señal de audio. El método comprende obtener un vector objetivo de entrada que comprende coeficientes de transformación en ambos lados de un pico espectral, comparando el vector objetivo de entrada con una pluralidad de centroides, es decir, vectores de referencia, donde cada centroide representa una clase respectiva de vectores de código en un libro de códigos. El método comprende además determinar un punto de inicio, en un libro de códigos, donde el punto de inicio se determina en base al resultado de la comparación, y realizar una búsqueda en el libro de códigos, comenzando en el punto de inicio determinado, para identificar un vector de código que mejor coincida con el vector objetivo de entrada. El espacio de búsqueda se ajusta dinámicamente de manera que el tamaño del espacio de búsqueda depende del número de vectores objetivo de entrada. Los vectores de código en el libro de códigos se clasifican según una medida de distorsión que refleja la distancia entre cada vector de código y los centroides. El método permite que la clase de vectores de código, en el libro de códigos, que comprende el conjunto más probable de vectores de código candidatos con respecto al vector de entrada, se busque primero de las clases en el libro de códigos.
Según un segundo aspecto, se proporciona un códec de audio adaptado para realizar la codificación de un número variable de vectores objetivo por segmento de tiempo, que comprende medios para ejecutar el método según el primer aspecto. El códec de audio comprende medios para obtener un vector objetivo de entrada que comprende coeficientes de transformación en ambos lados de un pico espectral y medios para comparar el vector objetivo de entrada con una pluralidad de centroides, cada centroide que representa una clase respectiva de vectores de código en un libro de códigos. El códec de audio comprende además medios para determinar un punto de inicio para una búsqueda en el libro de códigos, en base al resultado de la comparación, y para ajustar dinámicamente un espacio de búsqueda de manera que el tamaño del espacio de búsqueda dependa del número de vectores objetivo de entrada. Los vectores de código en el libro de códigos se clasifican según una medida de distorsión que refleja la distancia entre cada vector de código y los centroides. El códec de audio permite que la clase de vectores de código que comprende los vectores de código candidatos más probables con respecto al vector de entrada se busquen primero de las clases en el libro de códigos.
Según un tercer aspecto, se proporciona un terminal móvil que comprende un códec de audio según el segundo aspecto anterior.
El tamaño de una región de búsqueda en el libro de códigos, en el que se realiza una búsqueda, se puede adaptar en base a un número de vectores objetivo de entrada y una restricción de complejidad máxima. El número de vectores objetivo de entrada por unidad de codificación puede ser variable. Además, la restricción de máxima complejidad se puede establecer dinámicamente. Además, se podría realizar una búsqueda en el libro de códigos en el espacio de búsqueda determinado, comenzando en el punto de inicio determinado, donde la búsqueda entrega la mejor coincidencia con el vector objetivo de entrada. Por "mejor coincidencia" se entiende aquí la coincidencia más cercana, la distancia más corta, con respecto a una medida de distancia entre el vector objetivo de entrada y un vector candidato en el libro de códigos, es decir, una mejor coincidencia es un vector de código que tiene la distancia más corta al vector objetivo de entrada, según la medida de la distancia.
Breve descripción de los dibujos
La tecnología sugerida se describirá ahora con más detalle por medio de realizaciones ejemplares y con referencia a los dibujos adjuntos, en los que:
La figura 1a y 1b muestra la estructura de un CB ordenado según una solución descrita en la presente memoria. La búsqueda comienza desde el punto 0 o punto 1 hacia el otro extremo del CB.
La figura 2 muestra un ejemplo de estructura de CB que explota la simetría. Solo los vectores de código deC<0>y C<1>se almacenan en una memoria ROM.
La figura 3 ilustra una unidad funcional ejemplar para determinar una clase óptima para un vector de entradascomparando el vector de entradascon cada uno de un número de centroides {C<0>C<1 C j,v o lte a r C 0, v o l te a r>}, cada uno asociado con una clase en un libro de códigos.
La figura 4 ilustra una unidad funcional para determinar el tamaño de una región de búsqueda en un libro de códigos en base a un número de picos espectrales detectados en una trama actual, y posiblemente en la tasa de bits del códec.
La figura 5 es una tabla que ilustra que una región de búsqueda aumenta a medida que disminuye el número de picos por trama. En el ejemplo; con 17 picos (=17 vectores de entrada) la búsqueda se realiza solo en el CB de 7 bits (definido que es el espacio de búsqueda mínimo en este ejemplo), pero con 8 picos o menos, la búsqueda se realiza en el CB de 8 bits (espacio de búsqueda máximo), dado que esto se puede "permitir" bajo la restricción de máxima complejidad.
Las figuras 6a-d muestran ejemplos de diferentes regiones de búsqueda.
La figura 7 ilustra que la complejidad permitidaL maxse puede señalar al sistema desde una entidad externa. El parámetroL maxse podría basar, por ejemplo, en la carga de la CPU o estado de la batería.
La figura 8 es un diagrama de flujo que ilustra las acciones en un procedimiento para crear un libro de códigos, CB, a ser usado en la tecnología sugerida.
Las figuras 9a-c son diagramas de flujo que ilustran acciones en procedimientos para cuantificación vectorial, VQ, según ejemplos de la tecnología sugerida en la presente memoria.
La figura 10 es un diagrama de bloques que ilustra un cuantificador vectorial, según un ejemplo de la tecnología sugerida en la presente memoria.
La figura 11 es un diagrama de bloques que ilustra un códec que comprende un cuantificador vectorial, según un ejemplo de la tecnología sugerida en la presente memoria.
La figura 12 es un diagrama de bloques que ilustra una disposición para la cuantificación de vectores, según un ejemplo de la tecnología sugerida en la presente memoria.
Descripción detallada
Brevemente descrita, la solución descrita en la presente memoria se relaciona con la adaptación dinámica del espacio de búsqueda de un VQ, de manera que, para cualquier número de vectores objetivo (de entrada) (por bloque o intervalo de tiempo), se logre una cuantificación de alta precisión y, por tanto, de calidad dentro de una restricción de complejidad dada. Es decir, los requisitos de complejidad computacional (véaseL max)no van a ser violados. Esto se logra porque la búsqueda se realiza en un CB especial clasificado y ordenado. El punto de inicio en el espacio de búsqueda para cada vector objetivo se basa en un procedimiento de clasificación, y el tamaño del espacio de búsqueda se aumenta o reduce, en base al número de vectores objetivo. El algoritmo de<v>Q descrito en la presente memoria se puede considerar como una "herramienta" para la compresión de datos, independientemente de cuáles sean los datos, es decir, los datos podrían ser, por ejemplo, vídeo y/o audio. En esta descripción, el VQ se describe en el contexto de un códec de audio, pero el concepto descrito en la presente memoria no se limita a códecs de audio. Por ejemplo, también se podría implementar en códecs de video.
El algoritmo descrito en la presente memoria se basa en un CB especialmente diseñado. Algunas variantes de dicho libro de códigos se describirán con más detalle a continuación. Primero se describirá un caso básico, y más adelante se discutirá un esquema más avanzado. Los vectores de código del CB se pueden disponer según la solución descrita en la presente memoria en un modo fuera de línea.
Con el fin de crear una versión básica del CB ventajoso especialmente diseñado, los vectores de código de un CB se dividen en dos clases, aquí indicadasC<0>y C<1>(esta notación se utilizará tanto para los nombres de las clases, como para los correspondientes centroides, véase la figura 1). Para dividir los datos en dos clases, se puede utilizar el denominado algoritmo K-medias (algoritmo de Lloyd generalizado). Es una técnica bien conocida, que toma un conjunto de datos completo como entrada, y el número deseado de clases, y emite los centroides del número deseado de clases. Por ejemplo, el algoritmo emite 2 vectores centroides si el número deseado de clases se ha indicado en 2. Tenga en cuenta que estos centroides, cuando se usa un algoritmo de K-medias, son vectores de la misma dimensión que los vectores del conjunto de datos, pero no pertenecen al conjunto de datos. Es decir, los vectores centroides están fuera del CB y no necesitan coincidir con algunos vectores de código existentes. Por "centroide" se entiende en la presente memoria generalmente un vector de referencia que representa una clase de vectores.
Todos los vectores de código en el CB se clasifican luego según una medida de distorsión, por ejemplo, como la definida en la ecuación (4)
La medida de distorsión anterior da como resultado, o supone, valores negativos grandes para vectores de código cercanos a C0, y valores positivos grandes para vectores de código cercanos a C<1>. Los vectores de código que están igualmente distanciados de los centroides (C0 y C<1>) de las dos clases producen una medida de distorsión d que es cercana a cero. En el CB, los vectores de código están ordenados, por ejemplo, aumentando la medida de distorsión, como se ilustra en la figura 1a y 1b.
Cada vector de destino de entrada se compara con los dos centroides (el centroide respectivo de las dos clases) y, dependiendo del resultado, se asigna, es decir, se concluye o se determina que pertenece a cualquiera de la clase C<0>o la clase C<1>. En base a esa clasificación, el punto de inicio de la búsqueda se selecciona para que sea o bien el punto más alto (figura 1a) o el punto0más a la izquierda (figura 1b) (cuando el vector objetivo pertenece a la clase C0) o bien el punto más bajo (figura 1a) o el punto1más a la derecha (figura 1b) (cuando el vector objetivo pertenece a la clase C<1>. Ahora, el tamaño del espacio de búsqueda se debería hacer dependiente del número de vectores objetivo de entradaNpor bloque o segmento/intervalo de tiempo. Si redefinimos que el espacio de búsquedaKno sea del tamaño de todo el CB, sino que sea variable, el concepto detrás de la adaptación descrita en la presente memoria se puede definir en la ecuación (5)
NxK«comí(5)
En otras palabras# C u a n t i f ic a d o r e sx# O p e r a c io n e s _ p o r _ c u a n t i f ic a d o r«c o n s t ,donde "Cuantificador" se puede considerar como el algoritmo que mapea un vector de entrada a uno de los vectores de código.
En la presente memoria, como ejemplo, el VQ se describe en el contexto de un códec de transformación que codifica picos espectrales, o estrictamente, las regiones alrededor de los picos espectrales. En el contexto de tal códec, un vector objetivo de entrada puede reflejar un pico espectral (región) de un segmento de la señal de audio que se está procesando. El número de picos espectrales en el espectro de señal de un segmento de tiempo, por ejemplo, 30 ms, de una señal de audio depende de las propiedades espectrales de la señal de audio en ese segmento de tiempo. Dado que las propiedades espectrales de una señal de audio pueden variar con el tiempo y son diferentes, por ejemplo, para diferentes tipos de audio, el número de picos espectrales puede variar entre diferentes segmentos de tiempo y entre diferentes señales de audio. Por tanto, cuando se usa un codificador de transformación que codifica regiones de pico espectral, el número de vectores de entrada, por bloque o segmento de tiempo, variará para el VQ. En los ejemplos en la presente memoria, el número máximo de vectores de entrada, correspondientes a un número de picos espectrales en un segmento de tiempo de una señal de audio, es 17. Sin embargo, este número es solo un ejemplo y no se debería interpretar como una limitación de la solución en general.
Efectivamente, el esquema descrito anteriormente mantiene el número de operaciones requeridas para el VQ en un rango estrecho (o casi constante); es decir, cuando aumenta el número de VQ, es decir, aumenta el número de vectores objetivo de entrada, disminuye el número de operaciones por VQ (el tamaño del espacio de búsqueda disminuye/solo se busca una parte del CB), de manera que los requisitos de complejidad (es decir, restricciones) no se violan. Con una disminución deN ,el espacio de búsquedakse puede aumentar, como máximo, hasta el tamaño de todo el CB, lo que conduce a una mayor precisión y, por tanto, calidad del vector reconstruido. La precisión de un cuantificador vectorial se puede medir como un error cuadrático entre una señal original y los datos reconstruidos correspondientes.
De esta forma, no necesita ser diseñado el libro de códigos del VQ para el peor de los casos (es decir, el número máximo de vectores objetivo de entrada). En su lugar, se podría diseñar, por ejemplo, en el mejor de los casos, comprendiendo por tanto más vectores de código de los que se podrían buscar para el número máximo de vectores objetivo de entrada dentro de la restricción de máxima complejidad L<max>.. El requisito de máxima complejidad se cumplirá si la extensión de la búsqueda, es decir, el tamaño del espacio de búsqueda, en el CB depende del número de vectores objetivo de entrada. Sin embargo, si esto se hiciera "a ciegas", por ejemplo, sin el Cb sugerido en la presente memoria, la calidad de la cuantificación sufriría enormemente, dado que no habría forma de saber dónde se sitúa el vector de "mejor coincidencia" en el CB, o si este vector de mejor coincidencia se sitúa en una parte del libro de códigos que se buscará cuando se reduzca el espacio de búsqueda. Este problema se resuelve mediante el diseño especial del libro de códigos, que se describe en la presente memoria. Se debería señalar que el diseño de CB descrito en la presente memoria también es beneficioso para aplicaciones en las que el número de vectores de entrada, por unidad de codificación, es constante.
Ejemplo de realización 1: VQ restringido en regiones de picos espectrales
Un conjunto de vectores objetivo s representan regiones de picos espectrales en una codificación de audio de dominio de transformación, por ejemplo, coeficientes de transformación en la vecindad de los picos de MDCT. Por tanto, en este contexto, el número de vectores objetivo varía con el tiempo, dado que el número de picos espectrales varía de un bloque de tiempo a otro.
En este tipo de aplicación (codificación de región de pico), los vectores objetivo s exhiben ciertas simetrías que se pueden utilizar para optimizar aún más el CB. Por ejemplo, los coeficientes de transformación en ambos lados de un pico espectral tienen estadísticas similares. Si asumimos que los vectores objetivo s están centrados en la posición pico, la simetría descrita anteriormente permite añadir una estructura adicional en el CB ordenado de la figura 1a y 1b. La estructura de tal CB nuevo y mejorado además se ilustra en la figura 2. La figura 2 ilustra un CB en el que los vectores de código de la parte izquierda se almacenan en una memoria, tal como una memoria de solo lectura. Sin embargo, no hay vectores de código almacenados previamente para el lado derecho del CB, es decir, para las clasesCi,voltearyC<0,voltear.>Los vectores de código de estas clases son versiones volteadas de los vectores de código del lado derecho del CB. Por tanto, cuando se realiza una búsqueda en las clasesC<0 ,voltear>yC<1,voltear>la búsqueda se realiza en los vectores de código del lado izquierdo, que se almacenan en la memoria, pero con los elementos de los vectores de código volteados alrededor del centro, de manera que los vectores de códigoCk. voltearestán dados por la ecuación (6)
dondeCk ( m )son los elementos vectoriales de la clase Cj correspondiente en el CB almacenado (es decir, C<0>o C<1>). Es decir, si los elementos de un cierto vector de código en C<0>son {C<01>C<02>C<03>C<04>}, los elementos de un vector de código correspondiente en C<0>,voltearson {C<04>C<03>C<02>C<01>}
Cuando se usa un CB como el ilustrado en la figura 2, un vector objetivo de entrada se compara con cuatro centroides y se asigna a una clase con el fin de determinar un punto de inicio para la búsqueda, es decir, la clase óptima para el vector objetivo de entrada se determina comparando el vector de entrada s con cada uno de los centroides {C<0>C<1 C 1,voltear Cc,voitear}.>Esto se ilustra en la figura 3, donde un vector objetivo s se introduce a una unidad de asignación de clase 302, que entrega un indicador de clase, Cj, como salida. Los centroides C<1>,volteary C<0>,voltearno se almacenan en una tabla, sino que se "crean" volteando los elementos de los centroides C<0>y C<1>. Los elementos no necesitan ser volteados literalmente; en su lugar, una operación de búsqueda modificada puede leer los elementos de C<0>y C<1>en el orden inverso cuando se leen C<0>,voltearyC<1,voltear,>es decir, tanto centroides como vectores de libro de códigos. De esta forma, el CB se puede extender para comprender dos veces el número de vectores de código, en comparación con lo que se almacena físicamente en el CB, lo que significa un ahorro de recursos de memoria. Esto es posible debido a que se explota la simetría de las regiones de picos, como se describió anteriormente. Más específicamente, la solución se basa en la observación de que la simetría se puede explotar si un vector de código válido invertido también es un vector de código válido.
La región de búsqueda se adapta al número de picos espectrales, que corresponde al número de vectores objetivo de entrada. Esto se ejemplifica en la figura 4, que muestra una unidad funcional 402 que toma un indicador de un número de picos/vectores como entrada, y que produce un indicador de una región de búsqueda como salida. La figura 4 ilustra además que, por ejemplo, la tasa de bits de un códec que aplica el VQ se podría tener en cuenta cuando se determina la región de búsqueda (espacio de búsqueda). Por ejemplo, puede haber diferentes requisitos de calidad para diferentes tasas de bits, por ejemplo, cuanto mayor sea la tasa de bits, mayor será la calidad esperada. Además, la complejidad máxima permitida puede cambiar con la tasa de bits, por ejemplo, dado que a diferentes velocidades de bits se activan diferentes módulos en un códec, que no son igualmente complejos, es decir, la complejidad permitida restante para el VQ, a partir de una restricción de complejidad máxima en todo el procedimiento de codificación, podría no ser la misma. Es decir, la información de tasa de bits refleja cambios en los requisitos de calidad y complejidad, que se pueden tener en cuenta en la cuantificación del vector.
La tabla de la figura 5 ilustra cómo se adapta la región de búsqueda al número de picos. En la figura 5, la región de búsqueda se indica como el número de coeficientes (vectores de código) en la búsqueda por vector de entrada. Los números en la tabla de la figura 5 se derivan bajo la suposición de que el CB de la figura 2 comprende cuatro segmentos de 7 bits (cuatro segmentos con 128 vectores de código cada uno) de los cuales dos son "normales" o "físicos" y dos están "volteados" o son "virtuales").
La lógica detrás de la tabla en la figura 5 es que cuando hay un pico menos a codificar, por ejemplo, 16 en lugar de 17, las 128 comparaciones "ahorradas" se pueden distribuir entre los picos restantes. En algún momento, la longitud de búsqueda se satura, porque alcanza el tamaño físico del CB. En el ejemplo ilustrado en la figura 5, este punto se alcanza cuando el número de picos es 8 o menos. Es decir, en el ejemplo ilustrado en la figura 5, cuando el número de picos es 8 o menos, se podría hacer una búsqueda completa de todos los vectores objetivo de entrada (es decir, picos) sin llegar a la complejidad máxima permitida.
Los ejemplos del procedimiento de búsqueda se ilustran en la figura 6a-d. En la práctica, es el mismo tipo de búsqueda que la descrita anteriormente junto con la figura 1 a-b, pero con una clasificación adicional en segmentos/clases de CB "normales" y "volteados".
En el ejemplo mostrado en la figura 6a, el vector de entrada s pertenece a la claseC<1>(posición indicada con la flecha hacia abajo). El espacio de búsqueda se limita entonces a tamaños entre la clase C<1>solamente, y el espacio conjunto de las clases C<0>y C<1>. En la figura 6a, esto se ilustra con tres flechas discontinuas que indican espacios de búsqueda de diferentes tamaños. La figura 6b ilustra el caso donde un vector de entrada pertenece a la clase C<0>(posición indicada con flecha hacia abajo), en cuyo caso la búsqueda tiene un punto de inicio diferente.
Análogamente, como se ilustra en las figuras 6c-d, la búsqueda se puede realizar en clases C<1>,volteary/o C<0>,voltearsi el vector de entrada pertenece a una de estas clases. No se realizan búsquedas en el espacio conjunto de C<1>y C<1>,voltear.La razón de esto es que el espacio conjunto de una clase normal y una volteada no corresponde a un conjunto de datos reales (sus estadísticas no corresponden a estadísticas de datos reales). Por tanto, no es muy probable que se pueda encontrar una buena coincidencia para un vector de entrada en tal espacio.
Realización ejemplar 2: sistema de comunicación con control externo de máxima complejidad permitida
El concepto de un VQ que tiene una complejidad que se ajusta dinámicamente al número de vectores objetivoNse puede extender al caso cuando el límite de complejidad no está predeterminado, pero puede variar, por ejemplo, en base a algún criterio, y se puede señalar al VQ y/o a la entidad en la que se aplica el VQ. Esto se ilustra en el diagrama de bloques esquemático de la figura 7, que muestra una unidad funcional 702 que toma un indicador o el número de picos/vectores como entrada y, además, que toma una restricción de complejidad L<max>como entrada. La unidad funcional 702 entrega un indicador de un espacio de búsqueda/una región del CB, véanse las flechas discontinuas en las figuras 6a-d.
El algoritmo de VQ presentado en la presente memoria con complejidad ajustable da el equilibrio óptimo entre precisión de cuantificación (es decir, calidad) y mantenimiento de la complejidad computacional por debajo de un umbral predefinido.
Procedimiento ejemplar para lograr una estructura de CB
A continuación, con referencia a la figura 8, se describirá un procedimiento ejemplar para diseñar u organizar un CB para uso en un VQ. El procedimiento es para crear un CB para uso en un VQ que proporciona cuantificación en codificador de audio transformado, tal como, por ejemplo, un codificador de MDCT.
El procedimiento descrito a continuación se relaciona con las partes de un procedimiento de creación de CB que se desvían y/o son adicionales a la creación u organización de un CB de VQ convencional.
El CB se divide en clases en una acción 802, por ejemplo, mediante el uso de un denominado algoritmo de K-medios, como se describió anteriormente. Los vectores de código del CB se ordenan luego en el CB en base a una medida de distorsión, por ejemplo, como la descrita en la ecuación (4). La medida de distorsión para cada vector de código depende de una relación entre el vector de código y los centroides que representan cada clase de CB, como se describió anteriormente.
Esta organización del CB permite la adaptación del espacio de búsqueda y, por tanto, de la complejidad de búsqueda en VQ, con una calidad de VQ altamente conservada (por ejemplo, calidad de los vectores objetivo reconstruidos).
Procedimiento de VQ ejemplar
A continuación se describirá un procedimiento ejemplar en un cuantificador vectorial (VQ), con referencia a la figura 9a. El procedimiento es adecuado para uso en un codificador de audio transformado, tal como, por ejemplo, un codificador de MDCT que codifica, por ejemplo, regiones de pico espectral. La señal de audio podría comprender, por ejemplo, habla y/o música.
Un número N de vectores objetivo de entrada se reciben por el VQ, como se describió anteriormente. A continuación, se describirán las acciones asociadas con uno de los vectores objetivo de entrada, por razones de simplicidad.
Un vector objetivo de entrada s se compara con una serie de vectores de código, cada uno que representa una clase de CB (véanse las clases C<0>y C<1>, etc. descritas anteriormente), preferiblemente el centroide de cada clase. La comparación se ilustra como acción 902 en la figura 9a-c. La acción 902 se podría considerar alternativamente como integrada con una acción 904, ilustrada en la figura 9c. Dependiendo del resultado de las comparaciones, al vector objetivo de entrada s se le asigna una de las clases, o secciones, del CB, en una acción 904. Al vector objetivo de entrada s se le asigna, o se concluye que pertenece a, la clase a la que tiene la distancia más corta, es decir, a la que es más similar, según alguna medida de distancia (medida de error). El punto de inicio de la búsqueda en el CB se determina en una acción 906, en base a la asignación de clase o medida de distancia.
Se puede realizar una búsqueda en el libro de códigos en una acción 910. La búsqueda se inicia en el punto de inicio seleccionado, y se realiza sobre un espacio de búsqueda, que puede ser de un tamaño determinado, que comprende una o más clases, o partes de las mismas. Debido al CB ventajosamente diseñado y organizado, la probabilidad de que la mejor coincidencia, de todos los vectores de código candidatos dentro de todo el CB, para el vector objetivo de entrada s se encuentre dentro del espacio de búsqueda es muy alta, incluso cuando el espacio de búsqueda está limitado A, por ejemplo, la mitad del CB. En un caso en el que el espacio de búsqueda comprendiera todo el libro de códigos, el vector de código de mejor coincidencia se encontraría pronto en la búsqueda cuando se inicia la búsqueda en el punto de inicio determinado.
Cuando se encuentra la mejor coincidencia dentro del espacio de búsqueda determinado, se proporciona el índice del vector de código de mejor coincidencia, como resultado del VQ, en una acción 912, por ejemplo, para uso en un decodificador de audio.
Además, el tamaño del espacio de búsqueda se puede determinar en una acción 908 ilustrada en la figura 9c. El espacio de búsqueda se puede describir como el número de vectores de código en el CB que se deberían evaluar en la búsqueda de la mejor coincidencia para el vector objetivo de entrada s. El tamaño del espacio de búsqueda se determina en base al número de vectores objetivo de entrada y una restricción sobre la complejidad computacional L<max>.<Por tanto, el tamaño del espacio de búsqueda se puede determinar, por ejemplo, una vez por cada bloque de>codificación, o algún otro intervalo de tiempo, dependiendo, por ejemplo, de las características de la señal a ser<cuantificada y/o los atributos de un códec. Si el número de vectores objetivo de entrada y la restricción>L<max son>constantes o semiconstantes con el tiempo, el tamaño del espacio de búsqueda también se puede mantener constante durante el tiempo correspondiente.
Luego, disposición de VQ ejemplar
A continuación, se describirá con referencia a la figura 10 una disposición de VQ ejemplar adecuada para uso en un codificador/códec de transformación. El códec de transformación podría ser, por ejemplo, un códec de MDCT. El VQ está adaptado para realizar las acciones del procedimiento descrito anteriormente.
El VQ 1001 se ilustra para comunicarse con otras entidades (por ejemplo, un códec de audio) a través de una unidad de comunicación 1002. El VQ puede comprender además otras unidades funcionales 1016, tales como, por ejemplo, unidades funcionales que proporcionan funciones regulares, y pueden comprender además una o más unidades de almacenamiento 1014.
El VQ 1001 se podría implementar, por ejemplo, por uno o más de: un procesador o un microprocesador y software adecuado con almacenamiento adecuado, por lo tanto, un Dispositivo Lógico Programable (PLD) u otro componente o componentes y/o circuitos electrónicos.
Se supone que la unidad de comunicación 1002 comprende unidades funcionales para obtener los parámetros<adecuados, tales como vectores objetivo de entrada y>L<max.>,<proporcionados, por ejemplo, desde una entidad de>codificación.
El VQ puede comprender una unidad de comparación 1004, que está adaptada para comparar un vector objetivo de entrada s con vectores que representan cada clase del CB, por ejemplo, el vector centroide de cada clase. Además, el VQ puede comprender una unidad de asignación 1006, que está adaptada para asignar una clase al vector objetivo de entrada s (o asignar el vector s a una clase), es decir, concluir a qué clase pertenece el vector, en base a la comparación. Además, el VQ puede comprender una unidad de determinación 1008, adaptada para determinar un punto de inicio adecuado para una búsqueda en el CB, en base a la clase asignada al vector s. La unidad de determinación se puede adaptar además para determinar el tamaño de un espacio de búsqueda en el CB, en base, por ejemplo, a un número de vectores objetivo de entrada recibidos y una restricción de complejidad computacional.
Además, el VQ puede comprender una unidad de búsqueda 1010, que está adaptada para realizar una búsqueda en el CB, comenzando en el punto de inicio determinado y buscando en el espacio de búsqueda determinado. La búsqueda debe dar como resultado uno o más índices de CB que apunten al vector de código que mejor coincida con el vector objetivo de entrada s. El VQ puede comprender además una unidad de suministro 1012, que está adaptada para proporcionar dicho índice o índices a otra entidad, por ejemplo, a (o para uso por) un códec de transformación.
Disposición ejemplar
La figura 12 muestra esquemáticamente una realización de una disposición 1200 adecuada para uso, por ejemplo, en un decodificador de audio transformado, que también puede ser una forma alternativa de describir una realización del VQ ilustrado en la figura 5. Comprendida en la disposición 1200 están aquí una unidad de procesamiento 1206, por ejemplo, con un DSP (Procesador de Señal Digital). La unidad de procesamiento 1206 puede ser una sola unidad o una pluralidad de unidades para realizar diferentes pasos de los procedimientos descritos en la presente memoria. La disposición 1200 también puede comprender la unidad de entrada 1202 para recibir señales, tales como los vectores objetivo de entrada e indicadores de, por ejemplo, la tasa de bits y/o restricción de complejidad; y además la unidad de salida 1204 para señal o señales de salida, tales como los índices de CB para los vectores de código de mejor coincidencia. La unidad de entrada 1202 y la unidad de salida 1204 se pueden disponer como una sola en el hardware de la disposición.
Además, la disposición 1200 comprende al menos un producto de programa informático 1208 en forma de memoria no volátil, por ejemplo, una EEPROM, una memoria flash y un disco duro. El producto de programa informático 1208 comprende un programa informático 1210, que comprende medios de código que, cuando se ejecutan en la unidad de procesamiento 1206 en la disposición 1200, hacen que la disposición realice las acciones de un procedimiento descrito anteriormente junto con las figuras 9a-c.
Por lo tanto, en las realizaciones ejemplares descritas, los medios de código en el programa informático 1210 de la disposición 1200 pueden comprender un módulo de comparación 1210a para comparar un vector objetivo de entrada con centroides de clase de un CB. El programa informático puede comprender un módulo de asignación 1210b para asignar una clase al vector objetivo de entrada. El programa informático 1210 puede comprender además una unidad de determinación 1210c para determinar un punto de inicio para una búsqueda en el CB; y además para determinar un espacio o región de búsqueda en base a parámetros de entrada. El programa informático 1210 puede comprender además una unidad de búsqueda 121 0d para buscar el CB según lo anterior. Además, el programa informático 1210 puede comprender un módulo de suministro 1210e, para proporcionar índices, que se emiten desde la búsqueda a otras entidades.
El programa informático 1210 tiene la forma de un código de programa informático estructurado en módulos de programas informáticos. Los módulos 1210a-e pueden realizar esencialmente las acciones del flujo ilustrado en cualquiera de las figuras 9a-c para emular al menos parte del VQ 1001 ilustrado en la figura 10. En otras palabras, cuando los diferentes módulos 1210a-d se ejecutan en la unidad de procesamiento 1206, corresponden al menos a las unidades 1004-1012 de la figura 10.
Aunque los medios de código en la realización descrita anteriormente en conjunto con la figura 12 se implementan como módulos de programas informáticos que, cuando se ejecutan en la unidad de procesamiento, hacen que la disposición y/o el codificador de audio transformado realice los pasos descritos anteriormente en conjunto con las figuras mencionadas anteriormente, en al menos uno de los medios de código se puede implementar en realizaciones alternativas al menos parcialmente como circuitos de hardware.
Si bien la tecnología sugerida se ha descrito con referencia a realizaciones de ejemplo específicas, la descripción en general solo se pretende que ilustre el concepto y no se debería considerar como limitante del alcance de la tecnología descrita en la presente memoria. Las diferentes características de las realizaciones ejemplares anteriores se pueden combinar de diferentes formas según la necesidad, los requisitos o la preferencia.
La solución descrita anteriormente se puede utilizar siempre que se apliquen los VQ, por ejemplo, en códecs en dispositivos tales como terminales móviles, tabletas, ordenadores, teléfonos inteligentes, etc.
Se ha de entender que la elección de unidades o módulos que interactúan, así como la denominación de las unidades, son solo con fines ejemplares, y los nodos adecuados para ejecutar cualquiera de los métodos descritos anteriormente se pueden configurar en una pluralidad de formas alternativas con el fin de ser capaces de ejecutar las acciones de proceso sugeridas.
Las funciones de los diversos elementos, incluyendo los bloques funcionales, incluyendo, pero no limitado a, los etiquetados o descritos como "unidad funcional", "procesador" o "controlador", se pueden proporcionar a través del uso de hardware, como hardware de circuito y/o hardware capaz de ejecutar software en forma de instrucciones codificadas almacenadas en un medio legible por ordenador. Por tanto, tales funciones y bloques funcionales ilustrados se han de entender como que están implementados en hardware y/o implementados por ordenador y, por tanto, implementados en máquina.
En términos de implementación de hardware, los bloques funcionales pueden incluir o abarcar, sin limitación, hardware de procesador de señal digital (DSP), procesador de conjunto de instrucciones reducido, circuitería de hardware (por ejemplo, digital o analógica) incluyendo, pero no limitada a, circuito o circuitos integrados de aplicaciones específicas (ASIC), y (cuando sea apropiado) máquinas de estado capaces de realizar tales funciones.
Abreviaturas
SQ Cuantificación escalar
VQ Cuantificación vectorial
CB Libro de códigos
WMOPS Millones de Operaciones por Segundo Ponderadas
MDCT Transformada de Coseno Discreta Modificada

Claims (11)

  1. REIVINDICACIONES 1. Un método de codificación de audio para codificar un número variable de vectores objetivo por segmento de tiempo, un vector objetivo que representa una región de pico espectral de un segmento de una señal de audio, el método que se realiza por un códec de audio, el método que comprende: - obtener un vector objetivo de entrada que comprende coeficientes de transformada en ambos lados de un pico espectral; - comparar (902) el vector objetivo de entrada con cuatro centroides C<0>, C<1>, C<0>,volteary C<1>,voltear,en donde el centroideC<0,voltear>es una versión volteada del centroide C<0>y centroide C<1>,volteares una versión volteada del centroide C<1>, en donde los elementos del centroide Ci,voltearse definen como Ci,voltear=[C i(M )C/(M-1)... Ci(1)], en dondeC i(m )son elementos vectoriales del centroide Ci,Mes una longitud del vector e i es un índice del centroide, cada centroide que representa una clase respectiva de vectores de código en un libro de códigos; - determinar (906) un punto de partida para una búsqueda basada en el resultado de la comparación; - realizar (910) una búsqueda en el libro de códigos, comenzando en el punto de inicio determinado, para identificar un vector de código que mejor coincida con el vector objetivo de entrada, en donde un espacio de búsqueda se ajusta dinámicamente de manera que el tamaño del espacio de búsqueda depende del número de vectores objetivo de entrada, y en donde el libro de códigos se ha creado de manera que los vectores de código en el libro de códigos se ordenen según una medida de distorsión que refleja la distancia entre cada vector de códigos y dichos centroides C<0>y C<1>; y - proporcionar (912) un índice del vector de código para la transmisión a un decodificador.
  2. 2. El método según la reivindicación 1, en donde el espacio de búsqueda se ajusta dinámicamente aumentando o reduciendo el tamaño del espacio de búsqueda en base al número de vectores objetivo de entrada.
  3. 3. El método según la reivindicación 1 o 2, en donde los vectores de código en el libro de códigos se ordenan de manera que las palabras de código más cercanas a un primer centroide C<0>y más distanciadas a un segundo centroide C<1>estén en una clase del libro de códigos, mientras que las palabras de código más cercanas a C<1>y más distanciadas de C<0>se agrupan en la otra clase del libro de códigos.
  4. 4. El método según cualquiera de las reivindicaciones anteriores, en donde los vectores de código para la clase C<0>,voltearson versiones volteadas de vectores de código para la clase C<0>y vectores de código para la clase C1,voitearson versiones volteadas de vectores de código para la clase C<1>.
  5. 5. El método según la reivindicación 4, en donde los elementos de los vectores de códigock,voitearen la clase Cj,voltearse definen como:
    dondec k (m )son elementos vectoriales del vector de código en la clase Cj y M es una longitud del vector de código y k es un índice del vector de código.
  6. 6. Un códec de audio (1100) adaptado para realizar la codificación de un número variable de vectores objetivo por segmento de tiempo, un vector objetivo que representa una región de pico espectral de un segmento de una señal de audio, el códec de audio que comprende: - medios (1002, 1102) para obtener un vector objetivo de entrada que comprende coeficientes de transformada a ambos lados de un pico espectral; - medios (1004, 1104) para comparar el vector objetivo de entrada con cuatro centroides C<0>, C<1>,Cü,volteary C<1>,voltear,en donde el centroide C<0>,volteares una versión volteada del centroide C<0>y centroide C<1>,volteares una versión volteada del centroide C<1>, en donde los elementos del centroide Ci,voltearse definen comoCi,voltear= [Ci(M)C ( M -1)...Ci(1)], dondeC ( m )son elementos vectoriales del centroide Ci,Mes una longitud del vector eies un índice del centroide, cada centroide que representa una clase respectiva de vectores de código en un libro de códigos; - medios (1008, 1108) para determinar un punto de inicio para una búsqueda en el libro de códigos, en base al resultado de la comparación, y para ajustar dinámicamente un espacio de búsqueda de manera que el tamaño del espacio de búsqueda dependa del número de vectores objetivo de entrada; - medios (1010, 1110), para realizar una búsqueda en el libro de códigos, comenzando en el punto de inicio determinado, para identificar un vector de código que mejor coincida con el vector objetivo de entrada, y en donde los vectores de código en el libro de códigos (1014, 1114) se clasifican según a una medida de distorsión que refleja la distancia entre cada vector de código y dichos centroides C<0>y C<1>; y - medios (1012, 1112) para proporcionar un índice del vector de código para transmisión a un decodificador.
  7. 7. El códec de audio según la reivindicación 6, en donde los medios (1008, 1108) para ajustar el espacio de búsqueda están configurados para ajustar dinámicamente el espacio de búsqueda aumentando o reduciendo el tamaño del espacio de búsqueda en base al número de vectores objetivo de entrada.
  8. 8. El códec de audio según la reivindicación 6 o 7, en donde los vectores de código en el libro de códigos se clasifican de tal manera que las palabras de código más cercanas a un primer centroide C<0>y más distanciadas a un segundo centroide C<1>están en una clase del libro de códigos, mientras que las palabras de código más cercanas a C<1>y más distanciadas de C<0>se agrupan en la otra clase del libro de códigos.
  9. 9. El códec de audio según cualquiera de las reivindicaciones 6 a 8, en donde los vectores de código para la clase C<0>,voltearson versiones volteadas de vectores de código para la clase C<0>y vectores de código para la clase C1,voltearson versiones volteadas de vectores de código para la clase C<1>.
  10. 10. El códec de audio según la reivindicación 9, en donde los elementos de los vectores de código ck,voltearen la clase Cj,voltearse definen como: ... ct (l)], dondec k (m )son elementos vectoriales del vector de código en la clase Cj y M es una longitud del vector de código y k es un índice del vector de código
  11. 11. Un terminal móvil que comprende el códec de audio según cualquiera de las reivindicaciones 6 a 10.
ES19167463T 2012-03-29 2012-12-12 Cuantificador vectorial Active ES2960582T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201261617151P 2012-03-29 2012-03-29

Publications (1)

Publication Number Publication Date
ES2960582T3 true ES2960582T3 (es) 2024-03-05

Family

ID=47631684

Family Applications (2)

Application Number Title Priority Date Filing Date
ES19167463T Active ES2960582T3 (es) 2012-03-29 2012-12-12 Cuantificador vectorial
ES12821073T Active ES2745143T3 (es) 2012-03-29 2012-12-12 Cuantificador vectorial

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES12821073T Active ES2745143T3 (es) 2012-03-29 2012-12-12 Cuantificador vectorial

Country Status (12)

Country Link
US (5) US9401155B2 (es)
EP (3) EP3547261B1 (es)
CN (2) CN104221287B (es)
BR (1) BR112014022848B1 (es)
DK (1) DK2831757T3 (es)
ES (2) ES2960582T3 (es)
FI (1) FI3547261T3 (es)
IN (1) IN2014DN07726A (es)
PL (1) PL2831757T3 (es)
RU (3) RU2624586C2 (es)
TR (1) TR201911121T4 (es)
WO (1) WO2013147667A1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TR201911121T4 (tr) * 2012-03-29 2019-08-21 Ericsson Telefon Ab L M Vektör niceleyici.
MY177842A (en) * 2014-07-28 2020-09-23 Ericsson Telefon Ab L M Pyramid vector quantizer shape search
US11710492B2 (en) * 2019-10-02 2023-07-25 Qualcomm Incorporated Speech encoding using a pre-encoded database
CN111798532B (zh) * 2020-08-03 2021-03-16 广州市宝绅科技应用有限公司 一种基于质心重合的网屏编码方法及***

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63217878A (ja) 1987-03-06 1988-09-09 Nippon Telegr & Teleph Corp <Ntt> 予測木探索ベクトル量子化方式
US5195168A (en) * 1991-03-15 1993-03-16 Codex Corporation Speech coder and method having spectral interpolation and fast codebook search
JP3042886B2 (ja) * 1993-03-26 2000-05-22 モトローラ・インコーポレーテッド ベクトル量子化器の方法および装置
US5664055A (en) * 1995-06-07 1997-09-02 Lucent Technologies Inc. CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity
US5819213A (en) * 1996-01-31 1998-10-06 Kabushiki Kaisha Toshiba Speech encoding and decoding with pitch filter range unrestricted by codebook range and preselecting, then increasing, search candidates from linear overlap codebooks
JP3335841B2 (ja) * 1996-05-27 2002-10-21 日本電気株式会社 信号符号化装置
DE69712538T2 (de) * 1996-11-07 2002-08-29 Matsushita Electric Industrial Co., Ltd. Verfahren zur Erzeugung eines Vektorquantisierungs-Codebuchs
KR100886062B1 (ko) * 1997-10-22 2009-02-26 파나소닉 주식회사 확산 펄스 벡터 생성 장치 및 방법
US6148283A (en) * 1998-09-23 2000-11-14 Qualcomm Inc. Method and apparatus using multi-path multi-stage vector quantizer
WO2000033297A1 (en) * 1998-12-01 2000-06-08 The Regents Of The University Of California Enhanced waveform interpolative coder
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
EP1164580B1 (en) * 2000-01-11 2015-10-28 Panasonic Intellectual Property Management Co., Ltd. Multi-mode voice encoding device and decoding device
US7171355B1 (en) * 2000-10-25 2007-01-30 Broadcom Corporation Method and apparatus for one-stage and two-stage noise feedback coding of speech and audio signals
EP1339040B1 (en) * 2000-11-30 2009-01-07 Panasonic Corporation Vector quantizing device for lpc parameters
US7610198B2 (en) * 2001-08-16 2009-10-27 Broadcom Corporation Robust quantization with efficient WMSE search of a sign-shape codebook using illegal space
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US7337110B2 (en) * 2002-08-26 2008-02-26 Motorola, Inc. Structured VSELP codebook for low complexity search
CA2415105A1 (en) * 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
WO2006107837A1 (en) * 2005-04-01 2006-10-12 Qualcomm Incorporated Methods and apparatus for encoding and decoding an highband portion of a speech signal
US7587314B2 (en) * 2005-08-29 2009-09-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
EP1946447B1 (en) * 2005-09-23 2014-06-04 Telefonaktiebolaget LM Ericsson (publ) Successively refinable lattice vector quantization
US20070129946A1 (en) * 2005-12-06 2007-06-07 Ma Changxue C High quality speech reconstruction for a dialog method and system
JP4981122B2 (ja) * 2006-03-21 2012-07-18 フランス・テレコム 抑制されたベクトル量子化
CN101198041B (zh) * 2006-12-05 2010-12-08 华为技术有限公司 矢量量化方法及装置
CN101335558B (zh) * 2007-06-29 2012-07-04 华为技术有限公司 多输入多输出信道的码本生成方法及装置
US8050919B2 (en) * 2007-06-29 2011-11-01 Microsoft Corporation Speaker recognition via voice sample based on multiple nearest neighbor classifiers
WO2009047911A1 (ja) * 2007-10-12 2009-04-16 Panasonic Corporation ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法
PL3367381T3 (pl) * 2008-02-15 2020-12-14 Nokia Technologies Oy Kwantyfikacja dźwięku poprzez redukcję złożoności indeksowania wektorów
CN102144256B (zh) * 2008-07-17 2013-08-28 诺基亚公司 用于针对矢量量化器的快速最近邻搜索的方法和设备
US20100174539A1 (en) * 2009-01-06 2010-07-08 Qualcomm Incorporated Method and apparatus for vector quantization codebook search
EP2398149B1 (en) * 2009-02-13 2014-05-07 Panasonic Corporation Vector quantization device, vector inverse-quantization device, and associated methods
WO2011000567A1 (de) * 2009-07-02 2011-01-06 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zur vektor-quantisierung eines merkmalsvektors
RU2435214C2 (ru) 2010-02-01 2011-11-27 Государственное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ быстрого поиска в кодовой книге при векторном квантовании
CN102436815B (zh) * 2011-09-13 2012-12-19 东南大学 一种应用于英语口语网络机考***的语音识别装置
TR201911121T4 (tr) * 2012-03-29 2019-08-21 Ericsson Telefon Ab L M Vektör niceleyici.
WO2013147666A1 (en) * 2012-03-29 2013-10-03 Telefonaktiebolaget L M Ericsson (Publ) Transform encoding/decoding of harmonic audio signals
KR101740219B1 (ko) * 2012-03-29 2017-05-25 텔레폰악티에볼라겟엘엠에릭슨(펍) 고조파 오디오 시그널의 대역폭 연장
KR101870594B1 (ko) * 2013-10-18 2018-06-22 텔레폰악티에볼라겟엘엠에릭슨(펍) 스펙트럼의 피크 위치의 코딩 및 디코딩
CN110708075B (zh) * 2013-11-12 2023-01-06 瑞典爱立信有限公司 划分的增益形状向量编码

Also Published As

Publication number Publication date
CN104221287B (zh) 2017-05-31
EP2831757B1 (en) 2019-06-19
US20210241779A1 (en) 2021-08-05
US20150051907A1 (en) 2015-02-19
BR112014022848A2 (pt) 2017-06-20
RU2017121373A (ru) 2019-01-29
IN2014DN07726A (es) 2015-05-15
BR112014022848A8 (pt) 2021-05-25
US9401155B2 (en) 2016-07-26
CN107170459A (zh) 2017-09-15
BR112014022848B1 (pt) 2021-07-20
US20160300581A1 (en) 2016-10-13
DK2831757T3 (da) 2019-08-19
EP2831757A1 (en) 2015-02-04
FI3547261T3 (fi) 2023-09-26
CN107170459B (zh) 2020-08-04
US20180061429A1 (en) 2018-03-01
WO2013147667A1 (en) 2013-10-03
ES2745143T3 (es) 2020-02-27
PL2831757T3 (pl) 2019-11-29
RU2020115683A (ru) 2021-11-12
EP3547261B1 (en) 2023-08-09
RU2726158C2 (ru) 2020-07-09
US11017786B2 (en) 2021-05-25
RU2624586C2 (ru) 2017-07-04
EP3547261A1 (en) 2019-10-02
RU2014143442A (ru) 2016-05-20
US9842601B2 (en) 2017-12-12
RU2020115683A3 (es) 2022-02-21
US20190378526A1 (en) 2019-12-12
CN104221287A (zh) 2014-12-17
US10468044B2 (en) 2019-11-05
EP4274235A3 (en) 2024-01-10
TR201911121T4 (tr) 2019-08-21
RU2017121373A3 (es) 2020-03-12
EP4274235A2 (en) 2023-11-08
US11741977B2 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
US11741977B2 (en) Vector quantizer
BR112019005074B1 (pt) Método para um dispositivo para codificação de dados com um código polar, dispositivo para codificação de dados com um código polar, método de decodificação para um dispositivo, dispositivo para decodificação com um código polar, e meio legível por computador
ES2388942T3 (es) Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel
KR101660190B1 (ko) 데이터 압축 및 관리
ES2688103T3 (es) Codificador, decodificador, sistema y métodos de codificación y decodificación
ES2808997T3 (es) Codificador de audio para codificar una señal de audio, método para codificar una señal de audio y programa informático en consideración de una región espectral del pico detectada en una banda de frecuencia superior
WO2014025536A1 (en) Single-read based soft-decision decoding of non-volatile memory
KR20140090671A (ko) 메모리 시스템들을 위한 소프트 정보 생성
ES2718049T3 (es) Búsqueda de forma de cuantificador de vector en pirámide
US10454495B2 (en) Apparatus and method for mapping binary to ternary and its reverse
CN110649925B (zh) 划分的增益形状向量编码
US9954559B2 (en) Fixed point conversion of LLR values based on correlation
JP2010009101A (ja) メモリシステム及びメモリアクセス方法
US10198316B2 (en) Systems and methods for efficient flash memory access
US11855772B2 (en) High throughput polar ECC decoding via compressed successive cancellation algorithm
US9792053B2 (en) Controller for nonvolatile semiconductor memory
ES2786198T3 (es) Codificador de señal de audio
TWI647700B (zh) 使用數據編碼以減少記憶體裝置之編程時間的方法和系統
JP2013191227A (ja) メモリアクセス装置