ES2865725T3 - Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión - Google Patents
Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión Download PDFInfo
- Publication number
- ES2865725T3 ES2865725T3 ES08160878T ES08160878T ES2865725T3 ES 2865725 T3 ES2865725 T3 ES 2865725T3 ES 08160878 T ES08160878 T ES 08160878T ES 08160878 T ES08160878 T ES 08160878T ES 2865725 T3 ES2865725 T3 ES 2865725T3
- Authority
- ES
- Spain
- Prior art keywords
- vector
- code
- sign
- initial
- absolute
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 372
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000013459 approach Methods 0.000 description 16
- 238000013139 quantization Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computational Linguistics (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 vectores, que comprende: descomponer (101) un vector inicial para obtener un vector de signo y un vector absoluto inicial, donde el vector inicial corresponde a un líder; codificar (102) el vector de signo para obtener un código de signo; realizar (103) la codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto; y combinar (104) el código de signo y el código de vector absoluto para obtener un código del vector inicial sumando el código de vector absoluto desplazado a la izquierda con el número de bits del código de signo al código de signo; en donde codificar el vector de signo para obtener un código de signo comprende: codificar signos en el vector de signo que corresponden a elementos distintos de cero del vector ingresado en orden, para obtener el código de signo donde 1 representa un signo positivo y 0 representa un signo negativo, o 0 representa un signo positivo y 1 representa un signo negativo para cada elemento distinto de cero; en donde realizar una codificación basada en la permutación multinivel en el vector absoluto inicial comprende: (a) eliminar del vector absoluto inicial cualquier elemento según un orden de descomposición en el que el orden de descomposición está configurado para eliminar el elemento más frecuente del vector absoluto inicial, o eliminar el elemento más pequeño si existen dos o más elementos más frecuentes del vector absoluto inicial, construyendo de este modo un nuevo vector absoluto con elementos no eliminados, en el que el orden de descomposición lo determina el líder; (b) realizar la codificación de permutación en posiciones de los elementos no eliminados en el vector absoluto inicial para obtener un código de posición; (c) proceder con la codificación basada en la permutación multinivel repitiendo los pasos (a) y (b) en el nuevo vector absoluto si el número de elementos en el nuevo vector absoluto es mayor que 1, hasta que el número de elementos en el nuevo vector absoluto es uno; y (d) obtener el código de vector absoluto combinando todos los códigos de posición obtenidos en la codificación basada en la permutación multinivel si el número de elementos en el nuevo vector absoluto es 1.
Description
DESCRIPCIÓN
Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión
Campo de la invención
La presente invención se refiere a tecnologías de códecs y, en particular, a un método y aparato de codificación/decodificación de vectores y un reproductor multimedia de transmisión.
Antecedentes de la invención
Las tecnologías de cuantificación vectorial generalmente se implementan en la codificación multimedia de transmisión, una de las tecnologías comunes es la cuantificación de vector reticular, que se usa ampliamente en escenarios de baja velocidad. En la codificación de audio, por ejemplo, la tecnología de cuantificación implementada en la Excitación de Código de T ransformada (TCX), que forma parte del algoritmo de codificación de audio del códec de banda ancha de frecuencia múltiple adaptable (AMR-WB+), ampliamente utilizado, es una técnica de cuantificación de vector reticular de frecuencia múltiple construida en RE8.
En la parte TCX del algoritmo de codificación de audio AMR-WB+, se aplica el método de cuantificación de vector reticular de múltiples velocidades como método de cuantificación. El enfoque de cuantificación de vector reticular de múltiples velocidades se aplica en datos espectrales preformados por grupos, cada uno de los cuales consta de ocho valores, y cuantifica los ocho valores como elementos en el conjunto RE8 en base a un principio de proximidad. En el algoritmo, se selecciona un conjunto de elementos del RE8 con la cuantificación, que se define como RE8 = 2D8 u {2D8 (1, ..., 1)}, donde D8 = {(xi, X2,---, X8) e Z8 |xi+ ■■■+ X8 es par}. Por tanto, la suma de todos los elementos del conjunto RE8 es un múltiplo de 4. Por lo tanto, el enfoque de cuantificación incluye buscar en conjunto 2D8 para un elemento más cercano a los datos originales, buscar el conjunto 2D8+(1,1,1, ..., 1) para un elemento más cercano a los datos originales, y comparar los dos elementos buscados para obtener un resultado, es decir, un vector inicial, que es un grupo de datos enteros (xo, X1, ..., Xn-1) denotado por ck. Debido a que los datos ingresados se dividen en grupos, cada uno de ellos constaba de ocho valores, la ck resultante es en realidad (xo, X1, ...,X7).
Posteriormente, se buscan los libros de códigos básicos de Qo, Q2, Q3, Q4 para la ck. Si no se encuentra la ck en los libros de códigos básicos, los libros de códigos básicos se amplían con el ck a través de la extensión Voronoi, de modo que se determine un índice de libro de códigos básico correspondiente y un índice de libro de códigos extendido. Los libros de códigos básicos de Qo, Q2, Q3, Q4 se muestran en la Tabla 1 a continuación.
Tabla 1 Libros de códigos básicos
Los libros de códigos característicos que se muestran en la Tabla 1, es decir, los líderes, se distribuyen en las esferas respectivas. El campo Esfera indica el tamaño de una esfera, el campo Tamaño indica un número de palabras de código derivadas de la permutación y combinación del campo líder, y el campo Ka identifica a los respectivos líderes, siendo cada líder identificado por un valor de Ka diferente. El valor de Esfera (S) es una cuarta parte de la suma de todos los componentes del campo líder cada uno a la potencia de cuatro, es decir
i
S = — (x4 x4 ... x4 Xg).
4 Cada líder corresponde a una S que tiene un valor diferente. En la codificación, cada valor de S corresponde a un valor de ka. En el caso de un vector de 8 dimensiones, se puede buscar un ka correspondiente con solo el valor calculado de S del vector de 8 dimensiones y, por lo tanto, puede determinarse un líder al que pertenece el valor de S a partir del valor de ka . Los libros de códigos básicos de los líderes se muestran además en la Tabla 1. Los libros de códigos básicos se dividen en Q0, Q2, Q3 y Q4. El Q0 contiene solo un lí Q4 contienen 3, 8 y 28 líderes respectivamente, donde Q2 c Q3, y Q3 <£ Q4, como se muestra en la Tabla 1.
Después de que se determina el libro de códigos básico al que pertenece ck , asumiendo que el ck es una muestra de un conjunto de elementos (a0, a1, ...,aq-1) y w(i) es el número de elemento ai en la muestra, por lo tanto, el número de posibles estados del Líder L es k(l) dado de la siguiente manera:
W;
Si d(k) = I, Xk = a¡,y 1 es el número de elemento a¡ en (xo, xi, ..., xn-i), un índice del (xo, xi, ..., xn-i) se codifica de la siguiente manera:
En decodificación, el vector d(k) se obtiene en secuencia utilizando la fórmula siguiente, donde k = 0, ... 7:
k - 1
i ( d ( k ) - i , k ) < t - ,£ i ( d ( j ) - i j ) < i ( d ( k ) , k )
7=0
Entonces (x0, x1, ..., xn-1) se deriva de d(k) en base a que d(k) = I y xk = ai.
La solución anterior es desventajosa al menos porque se calculan múltiples factoriales irregulares durante la codificación y decodificación, además, el cálculo de estos factoriales aleatorios difícilmente puede simplificarse mediante el proceso de búsqueda, lo que resulta en una alta complejidad de cálculo.
El documento US2007/0162236 proporciona una propiedad de estructuración complementaria según una unión de códigos de permutación y un índice de esta unión de códigos de permutación se utiliza en la implementación de los siguientes pasos:
CP1) sobre la base de una señal de entrada, se forman un vector de entrada y definido por su vector | y | absoluto y por un vector £ de signo con £ = ±1,
CP2) los componentes del vector | y | se clasifican por valores decrecientes, por permutación, para obtener un vector líder | y |,
CP3) se determina un vecino xj ' más cercano del vector | j | líder a partir del vector líder del diccionario Dji, de dimensión j,
CP4) se determina un índice del rango de dicho vecino xj' más cercano en el diccionario Dji, ,
CP5) y se aplica un valor efectivo de codificación/decodificación al vector de entrada, que depende de dicho índice determinado en el paso CP4), de dicha permutación determinada en el paso CP2) y de dicho vector de signo determinado en el paso CP1).
Compendio de la invención
Una realización de la presente invención proporciona un método y aparato de codificación/decodificación de vectores y un reproductor multimedia de transmisión, reduciendo así la complejidad del cálculo
Una realización de la presente invención proporciona un método de codificación de vectores, que incluye: descomponer un vector inicial para obtener un vector de signo y un vector absoluto inicial, donde el vector inicial corresponde a un líder;
codificar el vector de signo para obtener un código de signo;
realizar una codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto;
combinar el código de signo y el código de vector absoluto para obtener un código del vector inicial sumando el código de vector absoluto desplazado a la izquierda por el número de bits del código de signo al código de signo; y codificar un valor que identifique de forma única al líder;
en donde codificar el vector de signo para obtener un código de signo comprende: codificar signos en el vector de signo que corresponden a elementos distintos de cero del vector ingresado en orden, para obtener el código de signo, donde cada elemento 1 representa un signo positivo y 0 representa un signo negativo, o 0 representa un signo positivo y 1 representa un signo negativo;
en donde realizar una codificación basada en la permutación multinivel en el vector absoluto inicial comprende: (a) eliminar del vector absoluto inicial cualquier elemento según un orden de descomposición, en el que el orden de descomposición es eliminar el elemento más frecuente del vector absoluto inicial, o eliminar el elemento más pequeño si existen dos o más elementos más frecuentes del vector absoluto inicial., construyendo así un nuevo vector absoluto con elementos no eliminados, en el que el orden de descomposición lo determina el líder;
(b) realizar la codificación en las posiciones de los elementos no eliminados en el vector absoluto inicial para obtener un código de posición;
(c) proceder con la codificación basada en la permutación multinivel repitiendo los pasos (a) y (b) en el nuevo vector absoluto si el número de elementos en el nuevo vector absoluto es mayor que 1, hasta que el número de elementos en el nuevo vector absoluto es uno; y
(d) obtener el código de vector absoluto combinando todos los códigos de posición obtenidos en la codificación basada en la permutación multinivel si el número de elementos en el nuevo vector absoluto es 1.Una realización de la presente invención proporciona un aparato de codificación de vectores, configurado para realizar cualquiera de los métodos según las reivindicaciones 1 a 3.
Como puede verse en la solución técnica anterior, no se realiza ningún cálculo que utilice una fórmula compleja para codificar un vector absoluto con un enfoque de codificación basada en la permutación multinivel, de modo que se reduce la complejidad del cálculo.
Breve descripción de los dibujos
La Figura 1 es un diagrama de flujo del método de codificación de vectores según una primera realización de la presente invención;
La Figura 2 es un diagrama de flujo del método de codificación de vectores según una segunda realización de la presente invención;
La Figura 3a es un diagrama esquemático de un ejemplo de tabla de códigos de posición de index83 según una realización de la presente invención;
La Figura 3b es un diagrama esquemático de un ejemplo de tabla de códigos de posición de index32 según una realización de la presente invención;
La Figura 4 es un diagrama de flujo del método de codificación de vectores según una tercera realización de la presente invención;
La Figura 5 es un diagrama de flujo del método de decodificación de vectores según una primera realización de la presente invención;
La Figura 6 es un diagrama de flujo del método de decodificación de vectores según una segunda realización de la presente invención;
La Figura 7 es un diagrama estructural que ilustra un ejemplo del aparato de codificación de vectores según una realización de la presente invención; y
La Figura 8 es un diagrama estructural que ilustra un ejemplo del aparato de decodificación de vectores según una realización de la presente invención.
Descripción detallada de las realizaciones
La presente invención se describe en detalle a continuación de forma ilustrativa con referencia a los dibujos para una mejor comprensión de los objetos, soluciones y ventajas de la presente invención.
Como se muestra en la Figura 1, el método de codificación de vectores según una realización de la presente invención incluye los siguientes pasos. Cabe señalar que los medios de transmisión en la descripción se refieren a tecnologías de transmisión que aplican a multimedia, como video y audio. En aras de la descripción, solo se describe el audio en la descripción, y los procesos en otros medios de transmisión, como el video, son similares a los del audio.
Paso 101. Se descompone un vector inicial para obtener un vector de signo y un vector absoluto inicial.
Un signo de un elemento en el vector inicial puede ser positivo o negativo, y existen numerosas combinaciones posibles de los signos positivos y negativos. Por lo tanto, al descomponer el vector inicial para obtener el vector de signo, se puede reducir el número de combinaciones de elementos en el vector inicial, reduciendo así la cantidad de cálculo posterior.
Paso 102. Se obtiene un código de signo codificando el vector de signo.
Se puede recoger directamente una señal de cada uno de todos los elementos. De manera alternativa, se pueden recoger los signos de sólo elementos distintos de cero después de eliminar un signo de cualquier elemento cero, y así se reducen los bits de datos que van a ser ocupados por el valor entero del vector de signo.
Se puede obtener el valor entero del vector de signo usando un esquema proporcionado en una realización de la presente invención. En el esquema, se elimina un signo de cualquier elemento en el vector inicial que tiene un valor de cero del vector de signo, los signos de los elementos distintos de cero se ordenan en un orden en el que los elementos distintos de cero se disponen en el vector inicial, y así se obtiene un código de signo, con "1" representando un signo positivo y "0" representando un signo negativo, o "0" representando el signo positivo y "1" representando el signo negativo, de modo que se obtiene el código de signo correspondiente al vector de signo del vector inicial y el número de bits del código de signo es igual al número de elementos distintos de cero en el vector inicial. Como se describió anteriormente, mientras que "1" y "0" se usan en el caso de binario, se pueden usar otros valores en el caso de, por ejemplo, octal, decimal, etc. El orden de disposición en la descripción se describe de izquierda. a derecha. Sin embargo, en la práctica, el orden de disposición puede ser de derecha a izquierda o de centro a derecha e izquierda, y los procesos son similares a los del caso del orden de disposición de izquierda a derecha y la descripción de los mismos se omite aquí.
Además, en la práctica, se requiere un postproceso para el código de signo, porque existe una restricción en el diseño de un libro de códigos básico para un proceso de cuantificación, en otras palabras, una suma de valores de todos los elementos en un vector debe ser un múltiplo de 4. Si una varianza de la suma de los valores de todos los elementos debido a un cambio en un signo de cualquier elemento individual es un múltiplo de 4, los signos de los elementos individuales son independientes; de lo contrario, los signos de los elementos individuales son dependientes, lo que significa que existe correlación y redundancia entre los signos, y la redundancia entre los signos debe eliminarse con el fin de una codificación eficiente. Debido a que cualquier signo dependiente del vector inicial puede ser determinado por otros bits de signo, un enfoque simple para eliminar la redundancia es no codificar el signo del último elemento distinto de cero del vector inicial entre los signos dependientes, es decir, eliminar el último bit del código de signo obtenido, a fin de satisfacer la condición de que la suma de los valores de todos los elementos en un vector debe ser un múltiplo de 4. El signo del elemento restante puede derivarse directamente de los signos conocidos de otros elementos del vector.
Paso 103. La codificación basada en la permutación multinivel se realiza en el vector absoluto inicial para obtener un código de vector absoluto.
La codificación basada en la permutación multinivel consiste en eliminar nivel por nivel un elemento del vector absoluto inicial que satisface una condición preestablecida, por ejemplo, un elemento correspondiente al valor del elemento más frecuente. Si están presentes dos o más valores de elementos más frecuentes, los elementos correspondientes a estos pueden eliminarse en el orden de sus valores. Por supuesto, los elementos también pueden seleccionarse y eliminarse utilizando otros medios dependiendo del entorno de aplicación específico. En la práctica, se pueden eliminar todos los elementos correspondientes a dos o más valores de elementos más frecuentes.
En la codificación basada en la permutación multinivel, para los elementos que permanecen en el nivel actual, los datos sobre sus posiciones en un nivel superior constituyen una permutación de posición, un valor posible de la permutación de posición es el número de elementos que pertenecen al nivel superior, y se codifica la permutación de
posición obtenida en el nivel actual. De esta manera, la codificación basada en la permutación multinivel se realiza en el vector absoluto hasta que un elemento en el nivel de descomposición corresponde a solo un valor de elemento, como resultado, se obtienen una serie de valores codificados en base a niveles y se obtiene el código de vector absoluto combinando los valores codificados en base a niveles. En la práctica, en la codificación basada en la permutación multinivel, los valores codificados en base a niveles pueden combinarse nivel por nivel, o combinarse en un momento después de que se hayan obtenido todos los valores codificados en base a niveles. En la descripción de la presente invención a continuación, la forma en que los valores codificados en base a niveles se combinan nivel por nivel se toma como ejemplo a modo de ilustración.
Paso 104. El código de signo y el código de vector absoluto se combinan para obtener un código del vector inicial.
El código del vector inicial puede obtenerse combinando el código de signo y el código de vector absoluto, de modo que en la decodificación, el vector absoluto y el vector de signo de los elementos del vector absoluto pueden decodificarse a partir del código del vector inicial. Un proceso de combinación específico incluye: después de determinar el número de bits del código de signo, combinar el código de vector absoluto desplazado a la izquierda por el número y el código de signo, obteniendo así el código del vector inicial.
En la práctica, también es posible combinar el código de vector absoluto desplazado a la derecha y el código de signo. De manera alternativa, es posible combinar el código de signo desplazado hacia la izquierda o hacia la derecha y el código de vector absoluto después de que se determina el número de bits del código de vector absoluto. La presente invención no se limita a un enfoque particular de combinar el código de vector absoluto y el código de signo, y todos los enfoques de derivar un código de signo y un código de vector absoluto a partir de un código de un vector inicial en la decodificación están destinados a caer dentro del alcance de la presente invención.
Como puede verse a partir de la descripción anterior, no se realiza ningún cálculo utilizando una fórmula compleja para codificar un vector absoluto con un enfoque de codificación basada en la permutación multinivel en las realizaciones de la presente invención, de modo que se reduce la complejidad del cálculo.
En la práctica, pueden estar presentes múltiples libros de códigos de características, en otras palabras, existen al menos dos libros de códigos de características en el espacio del libro de códigos. En este caso, después de obtener un valor codificado del vector inicial, que pertenece a un libro de códigos de características, se requiere proceder con:
obtener un valor de característica del libro de códigos de características al que pertenece el vector inicial en el espacio del libro de códigos, combinar el valor de característica y el código del vector inicial que pertenece al libro de códigos de características, y obtener un código resultante del vector inicial.
Los valores de características de los libros de códigos de características individuales en el espacio del libro de códigos son diferentes, y el valor de característica puede ser un valor completamente desplazado del libro de códigos de características en el espacio del libro de códigos, u otro valor que pueda identificar de forma única el libro de códigos de características en el espacio del libro de códigos, como un número de serie del libro de códigos de características. Por consiguiente, combinando el código del vector inicial que pertenece al libro de códigos de características y el valor de característica, el código se hace corresponder al libro de códigos de características, de modo que el libro de códigos correspondiente puede usarse para decodificar. El procedimiento específico de la combinación es el mismo que el de combinar un valor entero de un vector de signo y un código de un vector inicial. En la práctica, cuando un valor completamente desplazado de un libro de códigos de características en el espacio del libro de códigos se utiliza como valor de característica, debido a un intervalo entre valores completamente desplazados de los respectivos libros de códigos de características en el espacio del libro de códigos, se puede obtener un valor codificado final sumando el código del vector inicial que pertenece al libro de códigos de características y el valor completamente desplazado si el intervalo es suficientemente grande.
Después de los pasos anteriores, un vector inicial puede hacerse corresponder en un libro de códigos de características correspondiente en el caso de libros de códigos de características múltiples.
Cuando el método según la realización de la presente invención se implementa en una codificación de cuantificación de vector reticular de dominio de transformación en un estándar de audio de voz, debido a que todos los libros de códigos básicos para la codificación de cuantificación de vector reticular son constantes, se determinan los tipos de elementos de cada Líder y el número de elementos de cada tipo, y se puede determinar de antemano un orden de codificación basada en la permutación multinivel, parámetros de configuración, etc., según el Líder. En el caso del libro de códigos de los libros de códigos básicos que se muestran en la Tabla 1, por ejemplo, el orden de la codificación basada en la permutación multinivel y los parámetros de configuración según una realización de la presente invención se muestran en la Tabla 2, donde se elimina un elemento correspondiente al valor de elemento más frecuente, nivel por nivel.
Tabla 2 Orden de los parámetros de configuración y de la codificación basada en la permutación multinivel
La Tabla 2 muestra un orden de descomposición correspondiente a cada Líder, es decir, los valores de los elementos eliminados nivel por nivel, como se muestra en la columna de orden de descomposición. Cada elemento del Líder se elimina nivel por nivel en función de un valor del elemento según los datos de la columna de orden de descomposición de izquierda a derecha. Los datos de m1, m2 y m3 en la última columna denotan respectivamente valores de números (m) de elementos para la codificación basada en la permutación en los niveles 1,2 y 3, m en un nivel superior igual a un valor de un número (n) de elementos en el nivel actual, y un valor de n de la codificación basada en la permutación en el primer nivel es una dimensión del vector reticular (por ejemplo, n es 8 para REs). Los datos Vc en la última columna indican el número de tipos de elementos en términos de un valor absoluto en el Líder, es decir, el número de niveles de la codificación basada en la permutación multinivel. Los datos Sn en la última columna denotan el número de bits de un código de signo.
El método de codificación de vectores según una realización de la presente invención se describe a continuación en una realización específica. Como se muestra en la Figura 2, se describen los datos calculados en cada etapa de la codificación del vector que pertenece al Líder 20.
Descomponiendo elementos en el vector de (0, -2, 0, 0, 4, 0, 6, 0) pertenecientes al Líder 20, se obtienen un vector absoluto de (0, 2, 0, 0, 4, 0, 6, 0) y un vector de signo de (0, -1,0, 0, 1,0, 1,0).
Después de eliminar los 0s del vector de signo, se obtiene un código de signo binario de 100 con "1" que representa el signo negativo y "0" que representa el signo positivo. El 100 binario es un 4 decimal, por lo que el código de signo Signo = 4.
Con referencia a la Tabla 2, para realizar una codificación basada en la permutación multinivel en el vector absoluto, los elementos que tienen un valor de 0 en el vector absoluto se eliminan para obtener un vector absoluto de (2, 4, 6). Para los elementos 2, 4 y 6, los datos sobre sus posiciones en un nivel superior son 1,4 y 6 respectivamente. En este caso, se seleccionan tres elementos de ocho elementos según un principio de combinación, y se puede calcular un código de posición correspondiente con una fórmula preestablecida, es decir
donde pO indica los datos de posición de "2", p1 indica los datos de posición de "4" y p2 indica los datos de posición de "6". De manera alternativa, el código de posición se puede buscar en una tabla de códigos de posición preestablecida, un ejemplo de la cual en una realización de la presente invención se muestra en la Figura 3a. El código de posición correspondiente a los datos de posición respectivos de 1, 4 y 6 es 31, como puede verse en la Figura 3a.Posteriormente, se procede a la codificación basada en la permutación
multinivel en el vector absoluto obtenido que tiene tres elementos. Debido a que los tres elementos corresponden a tres valores de elementos diferentes, un elemento se elimina de los tres elementos en orden. Con referencia a la Tabla 2, se elimina un elemento que tiene un valor de 2, obteniendo un vector absoluto de (4, 6) que tiene dos elementos. Debido a que el código de posición en el nivel superior es 31, un código de posición combinado de 31*3+ 2 = 95 se obtiene combinando el código de posición en el nivel actual y el código de posición en el nivel superior. El motivo del cronometraje 3 es que el número de combinaciones obtenidas al seleccionar dos elementos de tres elementos es 3, y el motivo para sumar 2 es que los datos de posiciones en el vector de (2, 4, 6) para los elementos de 4 y 6 del vector absoluto obtenido de (4, 6) es 1 y 2 y se obtiene un código de posición de 2 de acuerdo con una fórmula de
.vFi - ¿onde pg denota los datos de posición del elemento de "4" y p1 denota los datos de posición del elemento de "6". Por supuesto, el código de posición también se puede buscar en una tabla de códigos de posición preestablecida, un ejemplo de la cual se muestra en la Figura 3b en una realización de la presente invención. El código de posición correspondiente a los datos de posición respectivos de 1 y 2 es 2, como puede verse en la Figura 3b.
Asimismo, se procede a la codificación basada en la permutación multinivel en el vector absoluto obtenido que tiene dos elementos. Con referencia a la Tabla 2, se elimina un elemento que tiene un valor de 4, obteniendo un vector absoluto de (6) que tiene solo un elemento. El código de posición en el nivel superior es 95, el número de combinaciones obtenidas al seleccionar un elemento de dos elementos es 2, y los datos sobre la posición en el vector de (4, 6) para el elemento de 6 es 1, por lo tanto, se obtiene un código de posición de 1 de acuerdo con una fórmula de
índice 21 =C¡ - C ,■ 1 donde pO denota los datos sobre la posición en el vector de (4, 6) para el elemento de "6". Como resultado, el código de posición combinado es 95*2+1 =191.
En este punto, la codificación basada en la permutación multinivel se completa porque el número de valor del elemento en el vector absoluto obtenido es 1. Ya que el número de elementos distintos de cero entre los elementos iniciales en el vector absoluto es 3, en otras palabras, el número de bits del valor entero del vector de signo es 3, para combinar el código de signo y el código de vector absoluto, el código de vector absoluto se desplaza a la izquierda en 3 bits y se agrega al código de signo, de modo que el código de vector absoluto y el código de signo se combinan y almacenan, y se obtiene un valor codificado del vector inicial que pertenece al Líder 20 como 191 *(23)+4=191 *8+4=1532, donde 4 es el código de signo. Posteriormente, se combinan el código perteneciente al Líder 20 y el valor totalmente desplazado del Líder 20 en el espacio del libro de códigos, y el valor codificado final obtenido es 59260 dado que el valor totalmente desplazado del Líder 20 en el espacio del libro de códigos es 57728. El valor del Líder 20 en el espacio del libro de códigos depende de la posición de almacenamiento del Líder 20 en un sistema y puede variar de un sistema a otro, pero es constante en un sistema.
Como puede verse en la descripción anterior, no se calcula ningún factorial complejo y la cantidad de cálculo es baja. Además, es necesario almacenar solo una tabla que se muestra como Tabla 2, fórmulas para calcular un código de posición o una tabla de códigos de posición utilizada en la búsqueda de un código de posición y unos pocos datos temporales en una realización, por lo tanto, no hay mucho espacio de almacenamiento ocupado. En la realización, cualquier elemento correspondiente a un valor de elemento se elimina en cada nivel; sin embargo, en la práctica, con muchos valores de elementos, los elementos correspondientes a múltiples valores de elementos pueden eliminarse en cada nivel.
El método según la tercera realización de la presente invención se muestra en la Figura 4, y el método incluye los siguientes pasos.
Paso 401. Se obtienen un vector de signo y un vector absoluto descomponiendo un vector inicial.
Paso 402. Los signos de los elementos distintos de cero se disponen en un orden en el que los elementos distintos de cero se disponen en el vector inicial, y así se obtiene un código de signo, con "1" representando el signo positivo y "0" representando el signo negativo.
En la práctica, el código de signo se puede obtener con "0" que representa el signo positivo y "1" que representa el signo negativo, o de otro modo.
Paso 403. Se determina si los signos de los elementos en el vector inicial son independientes. Si los signos son independientes, el método pasa al Paso 405, de lo contrario, el método pasa al Paso 404.
Paso 404. Se elimina el último bit del código de signo.
Paso 405. Cualquier elemento que corresponda al valor del elemento correspondiente a la mayoría de los elementos se elimina del vector absoluto.
En la realización, se implementa un enfoque en el que cualquier elemento que corresponda al valor del elemento correspondiente a la mayoría de los elementos se elimine del vector absoluto. Sin embargo, en la práctica, se puede implementar un enfoque en el que cualquier elemento que corresponda al valor del elemento correspondiente al mínimo de elementos se elimine del vector absoluto.
Paso 406. Para los elementos que corresponden a valores de elementos que no corresponden a la mayoría de los elementos, se obtienen sus datos sobre las posiciones en el vector absoluto, y se obtiene un código de posición mediante un enfoque preestablecido.
El enfoque preestablecido puede ser que el código de posición se calcule usando una fórmula para calcular un código de posición o se busque en una tabla de códigos de posición preestablecida.
Paso 407. Se determina si el número de valores de los elementos que no corresponden a la mayoría de los elementos es 1; y si el número es 1, el proceso pasa al Paso 409; de lo contrario, el proceso pasa al Paso 408.
Paso 408. Los elementos correspondientes a los valores de los elementos que no corresponden a la mayoría de los elementos se retienen en orden, para construir un nuevo vector absoluto, y el proceso pasa al Paso 405.
Paso 409. Los códigos de posición obtenidos se combinan en un código de posición combinado, que se desplaza a la izquierda por el número de bits del código de signo y se combina con el código de signo, para obtener un código del vector inicial que pertenece al libro de códigos de características determinado a partir del vector inicial.
Paso 410. Se combinan el código que pertenece al libro de códigos de características y el valor completamente desplazado del libro de códigos de características en el espacio del libro de códigos, para obtener un valor codificado final del vector inicial.
La codificación basada en la permutación multinivel se implementa en la realización, no se calcula ningún factorial complejo y la cantidad de cálculo es baja. Además, no es necesario almacenar muchos datos temporales en la realización y, por lo tanto, no se ocupa mucho espacio de almacenamiento.
En una realización de la presente invención se proporciona un método de decodificación de vectores correspondiente al método de codificación de vectores. Después de recibir el código resultante de un vector inicial, un lado de decodificación descompone un valor para ser decodificado de acuerdo con un enfoque opuesto a la codificación, obtiene valores de decodificación basados en la permutación de las partes respectivas, obtiene información de posición por decodificación y se realiza el reemplazo multinivel, para obtener el vector inicial resultante. La decodificación incluye: (1) buscar el rango del valor codificado para obtener un Líder al que pertenece el vector reticular, obteniendo así un valor de desplazamiento del código y restando el valor de desplazamiento del valor codificado para obtener un valor codificado en el Líder; (2) descomponer el valor codificado en el Líder, para obtener un valor de código de signo y un valor de código basado en la permutación multinivel; (3) descomponer nivel por nivel el valor del código basado en la permutación multinivel para obtener valores de código basados en la permutación en cada nivel, obtener vectores de posición en cada nivel mediante análisis mediante un módulo de decodificación basado en la permutación y restaurar valores de elementos en todas las posiciones en el vector inicial usando un enfoque de reemplazo de niveles múltiples.
Como se muestra en la Figura 5, el método de decodificación de vectores según una realización de la presente invención incluye:
Paso 501. Se descompone un código de vector para obtener un código de signo y un código de vector absoluto.
Se puede obtener un libro de códigos de características correspondiente al vector a partir del código de vector, y el número de bits del código de signo correspondiente al código de vector se puede buscar en una tabla de decodificación preestablecida.
El código de signo indica los signos de elementos en el vector inicial. Se conoce el número de elementos en cada libro de códigos de características, por lo tanto, el número de bits del código de signo se determina a partir del libro de códigos de características determinado, y todos estos pueden almacenarse en la tabla de decodificación preestablecida.
Los datos sobre bits de un código de signo se extraen del código vectorial para obtener el código de signo. Debido a que el código de vector se construye conjuntamente mediante el código de vector absoluto y el código de signo, si el valor codificado del libro de códigos de características se obtiene combinando el código de vector absoluto desplazado a la izquierda y el código de signo en la codificación, los diversos bits más a la derecha del código de vector es el código de signo.
Para obtener el código de vector absoluto, el código de vector del que se han extraído los datos de los bits del código de signo se desplaza a la derecha por el número de bits del código de signo. Una vez extraído el código de signo, los datos de los que se ha extraído el código de signo se desplazan a la derecha por el número de bits, obteniendo así el código de vector absoluto, que es inverso al procedimiento de codificación.
Paso 502. El código de signo se decodifica para obtener un vector de signo.
El valor entero obtenido del vector de signo se convierte en binario. Los signos de los elementos se determinan dependiendo de si "0" representa el signo positivo y "1" representa el signo negativo o "0" representa el signo negativo y "1" representa el signo positivo en la codificación. En esta realización, el código de signo se describe como determinado a partir de los signos de elementos distintos de cero.
Paso 503. La decodificación basada en la permutación multinivel se realiza en el código de vector absoluto, para obtener un vector absoluto inicial.
Un procedimiento específico de decodificación basada en la permutación multinivel incluye lo siguiente.
El valor del vector absoluto se descompone para obtener códigos de posición de los elementos del vector absoluto en el vector absoluto de nivel superior. En realidad, el código de vector absoluto consta de códigos de posición obtenidos en la codificación basada en la permutación multinivel, por lo que los códigos de posición relacionados con los niveles respectivos pueden obtenerse descomponiendo directamente el código de vector absoluto en la decodificación.
Los códigos de posición se decodifican, obteniendo así datos sobre las posiciones en el vector absoluto de nivel superior para los elementos del vector absoluto.
El número de elementos del vector absoluto en el nivel superior y cualquier valor de elemento de los elementos eliminados para obtener el vector absoluto se buscan en la tabla de decodificación preestablecida.
Los elementos del vector absoluto están dispuestos en el vector absoluto en el nivel superior de acuerdo con los datos sobre la posición, y el valor del elemento de los elementos eliminados se proporciona en la posición restante, de modo que se obtiene el vector absoluto en el nivel superior.
Si el vector absoluto en el nivel superior no es el vector absoluto inicial, el método procede con la decodificación basada en la permutación multinivel de acuerdo con los pasos anteriores, hasta que se obtiene el vector absoluto inicial.
Paso 504. Se combinan el vector de signo y el vector absoluto inicial, obteniendo así un vector inicial.
En particular, los signos se proporcionan en orden para los elementos distintos de cero en el vector absoluto inicial.
Es posible que el último bit del código de signo se elimine en la codificación debido a la dependencia de los signos de elementos, por lo tanto, al reconstruir el vector inicial, si el elemento distinto de cero más a la derecha del vector inicial se proporciona sin signo de elemento, se puede determinar un signo de elemento del elemento distinto de cero más a la derecha de acuerdo con el principio de que la suma de los valores de todos los elementos en el vector inicial es un múltiplo de 4. Por supuesto, también es posible que se proporcione el elemento distinto de cero más a la izquierda del vector inicial sin signo de elemento, dependiendo del elemento distinto de cero del cual se elimina el signo en la codificación.
Como puede verse en esta realización, no se calcula ningún factorial irregular y la cantidad de cálculo es baja en la decodificación usando la solución según la realización. Además, los datos temporales son similares a los de la codificación y, por lo tanto, no se ocupa mucho espacio de almacenamiento.
En la práctica, si el código obtenido es un código final combinado con un valor de característica del libro de códigos de características en el espacio del libro de códigos, se requiere descomponer el código final con los siguientes pasos:
determinar un libro de códigos de características correspondiente al vector inicial a partir del código final del vector inicial, obteniendo así un valor de característica del libro de códigos de características en el espacio del libro de códigos; y
determinar un código de vector del vector inicial que pertenece al libro de códigos de características a partir del código final y el valor de característica.
El valor de característica puede ser un valor completamente desplazado. Debido a que una posición de almacenamiento de cada libro de códigos de características en el espacio del libro de códigos es fija, el valor completamente desplazado del libro de códigos de características en el espacio del libro de códigos es fijo, y el libro de códigos de características donde se encuentra el valor codificado puede determinarse a partir del rango donde se valor codificado está después de que se obtenga el código. En particular, puede almacenarse en un sistema, una tabla, en la que se registra cada libro de códigos de características y su valor de desplazamiento. La tabla se puede buscar para decodificar. Asimismo, se realiza un proceso similar para el caso en el que el valor de característica es un número de serie del libro de códigos de características.
En particular, si el código se obtiene sumando un código del vector que pertenece al libro de códigos de características y el valor completamente desplazado en la codificación, el valor codificado perteneciente al libro de códigos de características puede obtenerse restando el valor completamente desplazado del código.
Con los pasos anteriores, el código del vector que pertenece al libro de códigos de características se puede obtener descomponiendo el código final, descomponiendo así el valor codificado del vector que pertenece al libro de códigos de características para obtener el vector inicial.
El método de decodificación de vectores según la segunda realización de la presente invención se muestra en la Figura 6 e incluye lo siguiente.
Paso 61. Se obtienen un Líder y una Compensación del rango donde está el valor codificado final.
Dado el valor codificado de 59260, se puede determinar que el valor codificado pertenece al Líder 20 y el Desplazamiento es 57728.
Paso 62. Se puede obtener un valor codificado del vector inicial que pertenece al Líder restando el Desplazamiento del valor codificado final.
Un valor codificado de 1532 que pertenece al Líder 20 se obtiene restando 57728 de 59260.
Paso 63. Se obtienen un código de signo y un código de vector absoluto descomponiendo el valor codificado del vector inicial que pertenece al Líder.
Un código de signo de 4 y un código de vector absoluto de 1528 se obtienen descomponiendo 1532.
Paso 64. Los signos de elementos de los elementos en el vector absoluto se restauran a partir del código de signos. Un 4 decimal se convierte en un 100 binario dado que "1" representa el signo negativo y "0" representa el signo positivo en la codificación, por lo tanto, los signos de elementos correspondientes a los elementos distintos de cero indican respectivamente "-", "+" y " "de izquierda a derecha.
Paso 65. Se realiza la decodificación basada en la permutación multinivel, que incluye:
Paso 651. Se descompone un código de nivel n del código de vector absoluto.
La n indica el número de niveles de codificación basada en la permutación multinivel utilizados en la codificación. El valor de n puede variar con un libro de códigos de características diferente, y puede obtenerse directamente del elemento Vc en la Tabla 2.Esta realización se describe tomando como ejemplo el Líder 20. Como puede verse en la Tabla 2, hay 4 niveles, cualquier elemento que tenga un valor de elemento de 0 se elimina en el nivel 1, cualquier elemento que tenga un valor de elemento de 2 se elimina en el nivel 2 y cualquier elemento que tenga un valor de elemento de 4 se elimina en el nivel 3, como resultado, el nivel 4 tiene un elemento que tiene un valor de 6. Se observará que los bits de signo del código de vector absoluto se desplazan a la derecha en 3 bits (correspondiente al desplazamiento de 3 bits en la codificación) antes de la descomposición, y obtiene 191 de 1528/(23)=1528/8.
Paso 652. Se descompone el código de nivel 3 del código de vector absoluto.
Por ejemplo, en el caso del Líder 20, hay 4 niveles, pero la descomposición no se llevará a cabo en el nivel 4, y solo se llevan a cabo 3 niveles de codificación basada en la permutación para el Líder 20, en consecuencia, la decodificación comienza con el nivel 3. Debido a que cualquier elemento correspondiente a un valor de elemento se elimina en cada nivel durante la codificación, cualquier elemento correspondiente a un valor de elemento se restaura correspondientemente en cada nivel durante la decodificación. Como se puede ver en la Tabla 2 que m3 es 1, m2 es 2 y m1 es 3, el número de combinaciones obtenidas de la selección de elementos cuyo número es el número de elementos en el nivel 2 de los elementos cuyo número es el número de elementos en el nivel 3, es decir, 1 de 2, es 2. Por lo tanto, según un cálculo de 191%2, el cociente obtenido es 95, que es un código de posición basado en la permutación para los niveles 1 y 2, el resto es 1, que es un código de posición de un elemento del vector absoluto en el nivel 3 en el vector absoluto en el nivel 2, y los datos de posición correspondientes al código de posición son 1. Paso 653. Se descompone el código de nivel 2 del código de vector absoluto.
De manera similar, según un cálculo del 95%3, el código de posición obtenido para el nivel 1 es 31, el resto es 2, que es un código de posición de un elemento del vector absoluto en el nivel 2 en el vector absoluto en el nivel 1, y los datos de posición correspondientes al código de posición son 1 y 2.
Paso 654. Se descompone el código de nivel 1 del código de vector absoluto.
Debido a que el nivel 1 es el último nivel, se obtiene un código de posición de un elemento del vector absoluto de nivel 1 en el vector inicial. Además, m1 es 3 y el número de bits de los datos iniciales es 8, por lo que los datos de posición 1,4 y 6 que corresponden al código de posición 31 se buscan en la tabla mostrada en la Figura 3a. Se apreciará que los datos de posición también se pueden calcular con una fórmula.
Paso 655. Los datos en la posición a determinar en el nivel 1 se reemplazan con un resultado decodificado en el nivel 2.
Como se muestra en la Tabla 2, el valor del elemento eliminado primero es 0, por lo tanto, 0 se establece en posiciones en el vector absoluto distintas de las posiciones 1,4 y 6.
Paso 656. Los datos en la posición a determinar en el nivel 2 se reemplazan con un resultado decodificado en el nivel 3.
Como se muestra en la Tabla 2, el valor del elemento eliminado en segundo lugar es 2, y las posiciones 4 y 6 entre las posiciones 1, 4 y 6 en el vector absoluto se retienen en el nivel inferior, por lo que el valor del elemento 2 se proporciona en la posición 1.
En consecuencia, el valor del elemento de 4 se proporciona en la posición 4 y el valor del elemento de 6 se proporciona en la posición 6, obteniendo así el vector absoluto inicial de (0, 2, 0, 0, 4, 0, 6, 0).No se lleva a cabo ningún paso para los niveles 4 a n porque la decodificación de 3 niveles solo se requiere para el Líder 20. En la práctica, para un Líder determinado correspondiente a muchos niveles, el proceso para cada nivel es similar y la descripción del mismo se omite aquí.
Paso 657. Los datos en la posición a determinar en el nivel n-1 se reemplazan con un resultado decodificado en el nivel n.
Paso 66. Los signos de los elementos distintos de cero en el vector absoluto se restauran de izquierda a derecha.
Los signos obtenidos de los elementos distintos de cero son, respectivamente, "-", "+" y "+" de izquierda a derecha, por lo que se obtiene un vector inicial de (0, -2, 0, 0, 4, 0, 6, 0).
Paso 67. Si no se ha determinado el signo del elemento distinto de cero más a la derecha en el vector inicial, el signo de este elemento distinto de cero puede determinarse según el principio de que la suma de los valores de todos los elementos en el vector inicial es un múltiplo de 4.
En la práctica, es posible que el bit de signo para el elemento distinto de cero más a la derecha se elimine debido a la dependencia de los signos del vector inicial, por lo tanto, en la decodificación, si se proporciona el elemento distinto de cero más a la derecha del vector inicial obtenido sin valor de signo, el signo del elemento distinto de cero más a la derecha se puede determinar de acuerdo con el principio de que la suma de los valores de todos los elementos en el vector inicial es un múltiplo de 4.
Como puede verse en la realización, no se calcula ningún factorial irregular y la cantidad de cálculo es baja en la decodificación usando la solución de acuerdo con la realización. Además, los datos temporales son similares a los de la codificación y, por lo tanto, no se ocupa mucho espacio de almacenamiento.
Se proporciona un aparato de codificación de vectores según una realización de la presente invención, como se muestra en la Figura 7, y el aparato incluye:
una unidad 71 de descomposición, adaptada para descomponer un vector inicial para obtener un vector de signo y un vector absoluto inicial;
una unidad 72 de codificación de signos, adaptada para codificar el signo para obtener un código de signo;
una unidad 73 de codificación basada en la permutación multinivel, adaptada para realizar una codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto. La unidad 73 de codificación basada en la permutación multinivel puede incluir: una unidad de eliminación de elementos adaptada para eliminar un elemento del vector absoluto inicial que tiene un valor que satisface una condición preestablecida; una unidad de retención de elementos adaptada para retener en orden cualquier elemento que no satisfaga la condición preestablecida para construir un nuevo vector absoluto; una unidad de codificación de posición adaptada para codificar la posición del elemento que no satisface la condición preestablecida en el vector absoluto inicial para obtener un código de posición, y activar la unidad de eliminación de elementos para eliminar cualquier elemento en el nuevo vector absoluto del cual el valor del elemento no satisface la condición preestablecida si el número de valores de los elementos en el nuevo vector absoluto es mayor que 1; y una unidad de código de vector absoluto adaptada para combinar los códigos de posición individuales obtenidos en la codificación basada en la permutación multinivel para obtener un código de vector absoluto si el número de los valores de los elementos en el nuevo vector absoluto es mayor que 1;
donde la unidad de codificación de posición puede calcular el código de posición con una fórmula de cálculo de código de posición preestablecida, o buscar una tabla de códigos de posición preestablecida para el código de posición. En la práctica, la unidad 73 de codificación basada en la permutación multinivel puede incluir además una unidad de almacenamiento de tabla de códigos preestablecidos adaptada para almacenar la tabla de códigos preestablecidos en la que se almacena la condición preestablecida, y la unidad de eliminación de elementos busca la tabla de códigos preestablecidos para cualquier elemento a ser eliminado; y
una unidad 74 de combinación, adaptada para combinar el código de signo y el código de vector absoluto para obtener un código de vector inicial; La unidad 74 de combinación puede incluir: una unidad de determinación del número de
bits adaptada para determinar el número de bits de un código de signo; y una unidad de combinación adaptada para desplazar a la izquierda el código de vector absoluto por el número de bits del código de signo y combinar el código de signo para obtener el código de vector inicial.
Como puede verse, el vector absoluto se codifica usando un enfoque de codificación basada en la permutación multinivel en la realización, de modo que no se realiza ningún cálculo con fórmulas complejas y se reduce la complejidad del cálculo.
En la práctica, si el número de libro de códigos de características en un espacio de libro de códigos es al menos dos, el código del vector inicial debe hacerse corresponder en el libro de códigos de características. Con este fin, el aparato de codificación de vectores según la realización de la presente invención incluye además:
una unidad de determinación de libro de códigos de características adaptada para determinar un libro de códigos de características al que pertenece el vector inicial; y
una unidad de obtención de valor codificado final adaptada para obtener un valor de característica del libro de códigos de características y combinar el valor de característica y el código del vector inicial para obtener un código final del vector inicial.
La unidad de obtención de valor codificado final puede usarse para hacer corresponder el vector inicial con un libro de códigos de características correspondiente si están presentes múltiples libros de códigos de características.
Se proporciona un aparato de decodificación de vectores según una realización de la presente invención, como se muestra en la Figura 8, y el aparato incluye:
una unidad 81 de descomposición adaptada para descomponer un código de vector para obtener un código de signo y un código de vector absoluto;
donde la unidad 81 de descomposición puede incluir: una unidad de determinación de número de bit de código de signo adaptada para determinar el número de bits de un código de signo de un libro de códigos de características al que pertenece el vector inicial; una unidad de extracción de código de signo adaptada para extraer datos sobre bits del código de signo del código vectorial para obtener el código de signo; y una unidad de obtención de código de vector absoluto adaptada para desplazar a la derecha el código de vector del que se han extraído los datos sobre los bits del código de signo por el número de bits del código de signo para obtener un código de vector absoluto;
una unidad 82 de decodificación de signos adaptada para decodificar el código de signo para obtener un vector de signo;
una unidad 83 de decodificación basada en la permutación multinivel adaptada para realizar decodificación basada en la permutación multinivel en el código de vector absoluto para obtener un vector absoluto inicial;
donde la unidad 83 de decodificación basada en la permutación multinivel puede incluir: una unidad de descomposición de código de vector absoluto, adaptada para descomponer el código de vector absoluto para obtener un código de posición de un elemento del vector absoluto en un vector absoluto en un nivel superior, y un código de vector absoluto en el nivel superior; una unidad de obtención de datos de posición adaptada para decodificar el código de posición para obtener datos de posición en un vector absoluto de nivel superior para un elemento del vector absoluto; una unidad de búsqueda de datos adaptada para buscar en una tabla de decodificación preestablecida el número de elementos en un vector absoluto en el nivel superior, y un valor de elemento del elemento eliminado al obtener el vector absoluto; y una unidad de obtención de vector absoluto adaptada para disponer elementos del vector absoluto en un vector absoluto en el nivel superior de acuerdo con los datos de posición y proporcionar el valor de elemento del elemento eliminado en la posición restante para obtener el vector absoluto en el nivel superior y activar la unidad de obtención de datos de posición para decodificar el código de posición correspondiente al vector absoluto en el nivel superior si el vector absoluto en el nivel superior no es el vector absoluto inicial; la unidad de obtención de datos de posición puede calcular el código de posición con una fórmula de descodificación de datos de posición preestablecida, o buscar en una tabla de descodificación de datos de posición preestablecida los datos de posición; y
una unidad 84 de combinación adaptada para combinar el vector de signo y el vector absoluto inicial para obtener un vector inicial.
Como puede verse, el vector absoluto se codifica usando un enfoque de codificación basada en la permutación multinivel en la realización, de modo que no se realiza ningún cálculo con fórmulas complejas y se reduce la complejidad del cálculo.
En la práctica, si una pluralidad de libros de códigos de características está involucrada en la codificación, el valor codificado final del vector inicial se obtiene en la decodificación, por lo que el aparato de decodificación de vectores según una realización de la presente invención puede incluir además:
una unidad de determinación de libro de códigos de características adaptada para determinar un libro de códigos de características al que corresponde el vector inicial, y obtener un valor de característica del libro de códigos de características en el espacio del libro de códigos; y
una unidad de determinación de valor codificado adaptada para descomponer un código final del vector inicial de acuerdo con el valor de característica para obtener un código del vector inicial.
Una vez obtenido el código del vector inicial, la unidad de descomposición puede comenzar a decodificar el vector. Se proporciona un reproductor multimedia de transmisión que incluye un aparato de decodificación de vectores según una realización de la presente invención, y el aparato de decodificación de vectores incluye:
una unidad de descomposición adaptada para descomponer un código de vector para obtener un código de signo y un código de vector absoluto;
una unidad de decodificación de signos adaptada para decodificar el código de signo para obtener un vector de signos; una unidad de decodificación basada en la permutación multinivel adaptada para realizar decodificación basada en la permutación multinivel en el código de vector absoluto para obtener un vector absoluto inicial; y
una unidad de combinación adaptada para combinar el vector de signo y el vector absoluto inicial para obtener un vector inicial.
Como puede verse, el vector absoluto se codifica usando un enfoque de codificación basada en la permutación multinivel en la realización, de modo que no se realiza ningún cálculo con fórmulas complejas y se reduce la complejidad del cálculo.
Los expertos en la técnica apreciarán que todos o parte de los pasos anteriores del método según las realizaciones pueden lograrse con un programa que dé instrucciones al hardware relacionado, y el programa puede almacenarse en un medio de almacenamiento legible por ordenador , y llevar a cabo los siguientes pasos cuando se ejecute: descomponer un vector inicial para obtener un vector de signo y un vector absoluto inicial; codificar el vector de signo para obtener un código de signo; realizar una codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto; y combinar el código de signo y el código de vector absoluto para obtener un código del vector inicial.
El medio de almacenamiento mencionado anteriormente puede ser una ROM, un disco magnético, un CD, etc. Se han descrito en detalle el método de codificación/decodificación de vectores, el aparato y el reproductor multimedia de transmisión según las realizaciones de la presente invención. Las realizaciones se describen con el fin de comprender mejor el método y su concepto en la presente invención.
Claims (4)
1. Un método de codificación de vectores, que comprende:
descomponer (101) un vector inicial para obtener un vector de signo y un vector absoluto inicial, donde el vector inicial corresponde a un líder;
codificar (102) el vector de signo para obtener un código de signo;
realizar (103) la codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto; y
combinar (104) el código de signo y el código de vector absoluto para obtener un código del vector inicial sumando el código de vector absoluto desplazado a la izquierda con el número de bits del código de signo al código de signo; en donde codificar el vector de signo para obtener un código de signo comprende:
codificar signos en el vector de signo que corresponden a elementos distintos de cero del vector ingresado en orden, para obtener el código de signo donde 1 representa un signo positivo y 0 representa un signo negativo, o 0 representa un signo positivo y 1 representa un signo negativo para cada elemento distinto de cero;
en donde realizar una codificación basada en la permutación multinivel en el vector absoluto inicial comprende: (a) eliminar del vector absoluto inicial cualquier elemento según un orden de descomposición en el que el orden de descomposición está configurado para eliminar el elemento más frecuente del vector absoluto inicial, o eliminar el elemento más pequeño si existen dos o más elementos más frecuentes del vector absoluto inicial, construyendo de este modo un nuevo vector absoluto con elementos no eliminados, en el que el orden de descomposición lo determina el líder;
(b) realizar la codificación de permutación en posiciones de los elementos no eliminados en el vector absoluto inicial para obtener un código de posición;
(c) proceder con la codificación basada en la permutación multinivel repitiendo los pasos (a) y (b) en el nuevo vector absoluto si el número de elementos en el nuevo vector absoluto es mayor que 1, hasta que el número de elementos en el nuevo vector absoluto es uno; y
(d) obtener el código de vector absoluto combinando todos los códigos de posición obtenidos en la codificación basada en la permutación multinivel si el número de elementos en el nuevo vector absoluto es 1.
2. El método según la reivindicación 1, que comprende además:
determinar un libro de códigos de características al que pertenece el vector inicial, antes de descomponer un vector inicial; y
obtener un valor de característica del libro de códigos de características y combinar el valor de característica y el código del vector inicial para obtener un código final del vector inicial, después de obtener el código del vector inicial.
3. El método de la reivindicación 1 o 2, el código de posición se calcula usando una fórmula de cálculo de código de posición preestablecida, o se busca en una tabla de códigos de posición preestablecida.
4. Un aparato de codificación de vectores, configurado para realizar cualquiera de los métodos según las reivindicaciones 1 a 3.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710129604A CN100583649C (zh) | 2007-07-23 | 2007-07-23 | 矢量编/解码方法、装置及流媒体播放器 |
PCT/CN2008/071481 WO2009012681A1 (fr) | 2007-07-23 | 2008-06-30 | Procédé, dispositif et lecture de contenu multimédia pour codage/décodage de vecteurs |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2865725T3 true ES2865725T3 (es) | 2021-10-15 |
Family
ID=40113995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08160878T Active ES2865725T3 (es) | 2007-07-23 | 2008-07-22 | Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión |
Country Status (10)
Country | Link |
---|---|
US (3) | US7738559B2 (es) |
EP (1) | EP2023341B1 (es) |
JP (1) | JP4601690B2 (es) |
KR (1) | KR100984234B1 (es) |
CN (1) | CN100583649C (es) |
ES (1) | ES2865725T3 (es) |
HU (1) | HUE054385T2 (es) |
PL (1) | PL2023341T3 (es) |
PT (1) | PT2023341T (es) |
WO (1) | WO2009012681A1 (es) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609680B (zh) | 2009-06-01 | 2012-01-04 | 华为技术有限公司 | 压缩编码和解码的方法、编码器和解码器以及编码装置 |
WO2011003233A1 (zh) * | 2009-07-07 | 2011-01-13 | 华为技术有限公司 | 编码方法、装置与系统、解码方法、装置与系统 |
US8280729B2 (en) * | 2010-01-22 | 2012-10-02 | Research In Motion Limited | System and method for encoding and decoding pulse indices |
CN102623012B (zh) | 2011-01-26 | 2014-08-20 | 华为技术有限公司 | 矢量联合编解码方法及编解码器 |
US9008184B2 (en) | 2012-01-20 | 2015-04-14 | Blackberry Limited | Multiple sign bit hiding within a transform unit |
US8904453B2 (en) * | 2012-06-10 | 2014-12-02 | Apple Inc. | Systems and methods for seamlessly switching between media streams |
CN108417219B (zh) * | 2018-02-22 | 2020-10-13 | 武汉大学 | 一种适应于流媒体的音频对象编解码方法 |
CN113766237B (zh) * | 2021-09-30 | 2024-07-02 | 咪咕文化科技有限公司 | 一种编码方法、解码方法、装置、设备及可读存储介质 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4896361A (en) * | 1988-01-07 | 1990-01-23 | Motorola, Inc. | Digital speech coder having improved vector excitation source |
EP0388043B1 (en) * | 1989-02-28 | 1995-12-06 | Canon Kabushiki Kaisha | System for processing a quantized vector |
JPH03117991A (ja) | 1989-09-29 | 1991-05-20 | Victor Co Of Japan Ltd | 動きベクトル符号化装置及び復号化装置 |
US5295203A (en) * | 1992-03-26 | 1994-03-15 | General Instrument Corporation | Method and apparatus for vector coding of video transform coefficients |
CA2121667A1 (en) | 1994-04-19 | 1995-10-20 | Jean-Pierre Adoul | Differential-transform-coded excitation for speech and audio coding |
JP2956473B2 (ja) * | 1994-04-21 | 1999-10-04 | 日本電気株式会社 | ベクトル量子化装置 |
KR100191318B1 (ko) * | 1996-03-26 | 1999-06-15 | 윤종용 | 고속의 동벡터 복호회로 |
US6097771A (en) | 1996-07-01 | 2000-08-01 | Lucent Technologies Inc. | Wireless communications system having a layered space-time architecture employing multi-element antennas |
US7206346B2 (en) | 1997-06-25 | 2007-04-17 | Nippon Telegraph And Telephone Corporation | Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs |
KR100527217B1 (ko) * | 1997-10-22 | 2005-11-08 | 마츠시타 덴끼 산교 가부시키가이샤 | 확산 벡터 생성 방법, 확산 벡터 생성 장치, celp형 음성 복호화 방법 및 celp형 음성 복호화 장치 |
KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
KR100257191B1 (ko) * | 1997-12-31 | 2000-05-15 | 구자홍 | 움직임 벡터 디코더 |
JP3507686B2 (ja) * | 1998-01-16 | 2004-03-15 | 日本電気株式会社 | 音声認識機能を有する通信装置及び通信方法 |
US6728413B2 (en) * | 1998-01-19 | 2004-04-27 | Canon Kabushiki Kaisha | Lattice vector quantization in image compression and decompression |
US7430257B1 (en) * | 1998-02-12 | 2008-09-30 | Lot 41 Acquisition Foundation, Llc | Multicarrier sub-layer for direct sequence channel and multiple-access coding |
US6314125B1 (en) * | 1998-12-09 | 2001-11-06 | Qualcomm Incorporated | Method and apparatus for the construction and transmission of binary quasi orthogonal vectors |
FR2791167B1 (fr) * | 1999-03-17 | 2003-01-10 | Matra Nortel Communications | Procedes de codage, de decodage et de transcodage audio |
JP2000324498A (ja) * | 1999-05-13 | 2000-11-24 | Nec Corp | 動画像符号化装置 |
US6680974B1 (en) * | 1999-12-02 | 2004-01-20 | Lucent Technologies Inc. | Methods and apparatus for context selection of block transform coefficients |
US6717990B1 (en) | 2000-01-05 | 2004-04-06 | General Dynamics Decision Systems, Inc. | Communication system and method for multi-rate, channel-optimized trellis-coded quantization |
US6771828B1 (en) * | 2000-03-03 | 2004-08-03 | Microsoft Corporation | System and method for progessively transform coding digital data |
US6760385B1 (en) * | 2000-05-30 | 2004-07-06 | Adtran, Inc. | Universal parallel processing decoder |
US7221761B1 (en) * | 2000-09-18 | 2007-05-22 | Sharp Laboratories Of America, Inc. | Error resilient digital video scrambling |
US6999472B2 (en) * | 2001-05-30 | 2006-02-14 | Nokia Mobile Phones Limited | Apparatus, and associated method, for space-time encoding, and decoding, data at a selected code rate |
US20030043908A1 (en) | 2001-09-05 | 2003-03-06 | Gao Cheng Wei | Bandwidth scalable video transcoder |
US7154936B2 (en) * | 2001-12-03 | 2006-12-26 | Qualcomm, Incorporated | Iterative detection and decoding for a MIMO-OFDM system |
JP4114859B2 (ja) * | 2002-01-09 | 2008-07-09 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
JP4130783B2 (ja) * | 2002-04-23 | 2008-08-06 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
US7589729B2 (en) * | 2002-05-15 | 2009-09-15 | Mental Images Gmbh | Image synthesis by rank-1 lattices |
CA2388358A1 (en) * | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for multi-rate lattice vector quantization |
JP3887598B2 (ja) * | 2002-11-14 | 2007-02-28 | 松下電器産業株式会社 | 確率的符号帳の音源の符号化方法及び復号化方法 |
WO2004077733A2 (en) | 2003-02-26 | 2004-09-10 | Flarion Technologies, Inc. | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation |
US7233622B2 (en) * | 2003-08-12 | 2007-06-19 | Lsi Corporation | Reduced complexity efficient binarization method and/or circuit for motion vector residuals |
KR101190875B1 (ko) | 2004-01-30 | 2012-10-15 | 프랑스 뗄레콤 | 차원 벡터 및 가변 분해능 양자화 |
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 |
EP1575299A1 (en) * | 2004-03-12 | 2005-09-14 | Thomson Licensing S.A. | Motion-compensated spatio-temporal wavelet compression of video data with optimised permutation of the frames |
JP4445328B2 (ja) | 2004-05-24 | 2010-04-07 | パナソニック株式会社 | 音声・楽音復号化装置および音声・楽音復号化方法 |
US7644335B2 (en) * | 2005-06-10 | 2010-01-05 | Qualcomm Incorporated | In-place transformations with applications to encoding and decoding various classes of codes |
JP2007081720A (ja) * | 2005-09-13 | 2007-03-29 | Sanyo Electric Co Ltd | 符号化方法 |
CN1984336A (zh) * | 2005-12-05 | 2007-06-20 | 华为技术有限公司 | 一种二进制化方法及装置 |
US8184712B2 (en) | 2006-04-30 | 2012-05-22 | Hewlett-Packard Development Company, L.P. | Robust and efficient compression/decompression providing for adjustable division of computational complexity between encoding/compression and decoding/decompression |
US8712766B2 (en) * | 2006-05-16 | 2014-04-29 | Motorola Mobility Llc | Method and system for coding an information signal using closed loop adaptive bit allocation |
US7953595B2 (en) * | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
WO2008099417A1 (en) | 2007-02-13 | 2008-08-21 | Council Of Scientific & Industrial Research | An improved sol-gel process for the preparation of nanocrystalline ceti2o6 powder |
-
2007
- 2007-07-23 CN CN200710129604A patent/CN100583649C/zh active Active
-
2008
- 2008-06-30 WO PCT/CN2008/071481 patent/WO2009012681A1/zh active Application Filing
- 2008-07-22 ES ES08160878T patent/ES2865725T3/es active Active
- 2008-07-22 HU HUE08160878A patent/HUE054385T2/hu unknown
- 2008-07-22 EP EP08160878.8A patent/EP2023341B1/en active Active
- 2008-07-22 PL PL08160878T patent/PL2023341T3/pl unknown
- 2008-07-22 PT PT81608788T patent/PT2023341T/pt unknown
- 2008-07-23 KR KR1020080071877A patent/KR100984234B1/ko active IP Right Grant
- 2008-07-23 JP JP2008190226A patent/JP4601690B2/ja active Active
- 2008-12-23 US US12/343,424 patent/US7738559B2/en active Active
- 2008-12-23 US US12/343,390 patent/US7738558B2/en active Active
- 2008-12-23 US US12/343,450 patent/US7746932B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2009012681A1 (fr) | 2009-01-29 |
PT2023341T (pt) | 2021-05-05 |
HUE054385T2 (hu) | 2021-09-28 |
JP4601690B2 (ja) | 2010-12-22 |
US20090097587A1 (en) | 2009-04-16 |
EP2023341A1 (en) | 2009-02-11 |
US7746932B2 (en) | 2010-06-29 |
KR20090010932A (ko) | 2009-01-30 |
US20090097565A1 (en) | 2009-04-16 |
CN101304254A (zh) | 2008-11-12 |
JP2009199048A (ja) | 2009-09-03 |
US7738558B2 (en) | 2010-06-15 |
PL2023341T3 (pl) | 2021-08-30 |
EP2023341B1 (en) | 2021-03-03 |
KR100984234B1 (ko) | 2010-09-28 |
US7738559B2 (en) | 2010-06-15 |
CN100583649C (zh) | 2010-01-20 |
US20090097595A1 (en) | 2009-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2865725T3 (es) | Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión | |
ES2821432T3 (es) | Cuantificación de audio mediante indexación de vectores de complejidad reducida | |
ES2817906T3 (es) | Método de codificación de impulsos de las señales de excitación | |
ES2558508T3 (es) | Método de codificación, codificador, método de determinación de la cantidad de una característica periódica, aparato de determinación de la cantidad de una característica periódica, programa y medio de grabación | |
JP5722420B2 (ja) | 縮退故障を有するメモリセル内にビットを記憶するための技術 | |
BRPI0910796B1 (pt) | Codificador de áudio e decodificador de áudio | |
US20180181706A1 (en) | Method for Compressing Genomic Data | |
TW201212029A (en) | Method for performing data shaping, and associated memory device and controller thereof | |
US7126502B2 (en) | Techniques for using interleaved encoders to obtain modulation constraints | |
JP5805727B2 (ja) | 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化 | |
ES2785041T3 (es) | Búsqueda de forma de cuantificador de vector en pirámide | |
JP2014510302A (ja) | オーディオ信号のトラックのパルス位置の符号化および復号化 | |
KR20010041154A (ko) | 엔-비트 소스어를 대응하는 엠-비트 채널어로 인코딩하고, 엠-비트 채널어를 대응하는 엔-비트 소스어로 디코딩하는 장치 | |
RU2015145970A (ru) | Устройство обработки данных и способ обработки данных | |
US9998149B2 (en) | Constant hamming weight coding | |
CN102904579B (zh) | 基于逐次逼近法的编码压缩方法 | |
CN103119649B (zh) | 用于基于上下文进行无损编码和解码的方法和设备 | |
CN103944584A (zh) | 一种二维码译码的方法及其装置 | |
TWI524681B (zh) | 霍夫曼解碼器及其解碼方法 | |
CN115249509A (zh) | 基于脱氧核糖核酸技术的数据编码方法及解码方法 | |
EP4307567A1 (en) | Low complexity optimal parallel huffman encoder and decoder | |
TWI430100B (zh) | 儲存資料於記憶體之方法以及電子裝置 | |
JP3565147B2 (ja) | 復号装置 | |
US7536395B2 (en) | Efficient dynamic register file design for multiple simultaneous bit encodings | |
US9558109B2 (en) | Method and apparatus for flash memory arithmetic encoding and decoding |