ES2865725T3 - Vector encoding / decoding method and apparatus and streaming media player - Google Patents

Vector encoding / decoding method and apparatus and streaming media player Download PDF

Info

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
Application number
ES08160878T
Other languages
Spanish (es)
Inventor
Fuwei Ma
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2865725T3 publication Critical patent/ES2865725T3/en
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
    • 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

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.A vector coding method, comprising: decomposing (101) an initial vector to obtain a sign vector and an initial absolute vector, where the initial vector corresponds to a leader; encoding (102) the sign vector to obtain a sign code; performing (103) encoding based on multilevel permutation on the initial absolute vector to obtain an absolute vector code; and combining (104) the sign code and the absolute vector code to obtain an initial vector code by adding the left-shifted absolute vector code with the number of bits of the sign code to the sign code; where encoding the sign vector to obtain a sign code comprises: encoding signs in the sign vector that correspond to non-zero elements of the vector entered in order, to obtain the sign code where 1 represents a positive sign and 0 represents a negative sign, or 0 represents a positive sign and 1 represents a negative sign for each nonzero element; where performing an encoding based on multilevel permutation in the initial absolute vector comprises: (a) eliminating from the initial absolute vector any element according to a decomposition order in which the decomposition order is configured to eliminate the most frequent element of the absolute vector initial, or eliminate the smallest element if there are two or more more frequent elements of the initial absolute vector, thus building a new absolute vector with non-eliminated elements, in which the order of decomposition is determined by the leader; (b) performing permutation coding at positions of the non-eliminated elements in the initial absolute vector to obtain a position code; (c) proceed with encoding based on multilevel permutation by repeating steps (a) and (b) on the new absolute vector if the number of elements in the new absolute vector is greater than 1, until the number of elements in the new absolute vector is one; and (d) obtaining the absolute vector code by combining all the position codes obtained in encoding based on multilevel permutation if the number of elements in the new absolute vector is 1.

Description

DESCRIPCIÓNDESCRIPTION

Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisiónVector encoding / decoding method and apparatus and streaming media player

Campo de la invenciónField of the invention

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.The present invention relates to codec technologies and, in particular, to a vector encoding / decoding method and apparatus and a streaming media player.

Antecedentes de la invenciónBackground of the invention

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.Vector quantization technologies are generally implemented in streaming multimedia coding, one of the common technologies is lattice vector quantization, which is widely used in low-speed scenarios. In audio coding, for example, quantization technology implemented in Transformed Code Excitation (TCX), which is part of the adaptive multi-frequency wideband codec (AMR-WB +) audio coding algorithm, widely used, it is a multi-frequency trellis vector quantization technique built in 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).In the TCX part of the AMR-WB + audio coding algorithm, the multi-rate trellis vector quantization method is applied as the quantization method. The multi-speed lattice vector quantization approach is applied on preformed spectral data by groups, each of which consists of eight values, and quantifies the eight values as elements in the RE8 set based on a principle of proximity. In the algorithm, a set of elements from RE8 is selected with quantization, which is defined as RE8 = 2D8 u {2D8 (1, ..., 1)}, where D8 = {(xi, X2, ---, X8) e Z8 | xi + ■■■ + X8 is even}. Therefore, the sum of all elements in set RE8 is a multiple of 4. Therefore, the quantization approach includes searching set 2D8 for an element closest to the original data, searching set 2D8 + (1,1, 1, ..., 1) for an element closest to the original data, and compare the two elements searched to obtain a result, that is, an initial vector, which is a group of integer data (xo, X1, .. ., Xn-1) denoted by ck. Because the data entered is divided into groups, each consisting of eight values, the resulting ck is actually (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.Subsequently, the basic codebooks of Qo, Q2, Q3, Q4 are searched for the ck. If the ck is not found in the basic codebooks, the basic codebooks are expanded with the ck via the Voronoi extension, so that a corresponding basic codebook index and a codebook index are determined extended. The basic codebooks for Qo, Q2, Q3, Q4 are shown in Table 1 below.

Tabla 1 Libros de códigos básicosTable 1 Basic Codebooks

Figure imgf000002_0001
Figure imgf000002_0001

Figure imgf000003_0001
Figure imgf000003_0001

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 decirThe characteristic codebooks shown in Table 1, that is, the leaders, are distributed in the respective spheres. The Sphere field indicates the size of a sphere, the Size field indicates a number of code words derived from the permutation and combination of the leader field, and the Ka field identifies the respective leaders, each leader being identified by a different Ka value . The value of Sphere (S) is a quarter of the sum of all the components of the leading field each to the power of four, that is

ii

S = — (x4 x4 ... x4 Xg). 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.4 Each leader corresponds to an S that has a different value. In encoding, each value of S corresponds to a value of ka. In the case of an 8-dimensional vector, a corresponding ka can be found with only the calculated value of S from the 8-dimensional vector, and thus a leader to which the value of S belongs can be determined from the value of ka. The leader's basic codebooks are further shown in Table 1. The basic codebooks are divided into Q0, Q2, Q3, and Q4. Q0 contains only one li Q4 contain 3, 8 and 28 leaders respectively, where Q2 c Q3, and Q3 Q4, as shown in Table 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:After the basic codebook to which ck belongs is determined, assuming that the ck is a sample of a set of elements (a0, a1, ..., aq-1) and w (i) is the element number ai In the sample, therefore, the number of possible states of Leader L is k (l) given as follows:

Figure imgf000004_0001
Figure imgf000004_0001

W;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:If d (k) = I, Xk = a¡, and 1 is the element number a¡ in (xo, xi, ..., xn-i), an index of (xo, xi, ..., xn -i) is encoded as follows:

Figure imgf000004_0002
Figure imgf000004_0002

En decodificación, el vector d(k) se obtiene en secuencia utilizando la fórmula siguiente, donde k = 0, ... 7:In decoding, the vector d (k) is obtained in sequence using the following formula, where k = 0, ... 7:

k - 1 k - 1

i ( d ( k ) - i , k ) < t - ,£ i ( d ( j ) - i j ) < i ( d ( k ) , k ) i ( d ( k) - i, k) <t -, £ i ( d ( j) - ij) <i ( d ( k), k)

7=07 = 0

Figure imgf000004_0003
Figure imgf000004_0003

Entonces (x0, x1, ..., xn-1) se deriva de d(k) en base a que d(k) = I y xk = ai.Then (x0, x1, ..., xn-1) is derived from d (k) on the basis that d (k) = I and 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.The above solution is disadvantageous at least because multiple irregular factorials are computed during encoding and decoding, moreover, the computation of these random factorials can hardly be simplified by the search process, resulting in high computational complexity.

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:Document US2007 / 0162236 provides a complementary structuring property according to a union of permutation codes and an index of this union of permutation codes is used in the implementation of the following steps:

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,CP1) on the basis of an input signal, an input vector is formed and defined by its vector | and | absolute and by a sign vector £ with £ = ± 1,

CP2) los componentes del vector | y | se clasifican por valores decrecientes, por permutación, para obtener un vector líder | y |,CP2) vector components | and | are classified by decreasing values, by permutation, to obtain a leading vector | and |,

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,CP3) a closest neighbor xj 'of the vector is determined | j | leader from the leader vector of the dictionary Dji, of dimension j,

CP4) se determina un índice del rango de dicho vecino xj' más cercano en el diccionario Dji, ,CP4) an index of the range of said closest neighbor xj 'is determined in the dictionary 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).CP5) and an effective encoding / decoding value is applied to the input vector, which depends on said index determined in step CP4), on said permutation determined in step CP2) and on said sign vector determined in step CP1) .

Compendio de la invención Compendium of the invention

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álculoAn embodiment of the present invention provides a vector encoding / decoding method and apparatus and a streaming media player, thereby reducing computational complexity.

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;An embodiment of the present invention provides a vector coding method, including: decomposing an initial vector to obtain a sign vector and an initial absolute vector, where the initial vector corresponds to a leader;

codificar el vector de signo para obtener un código de signo;encode the sign vector to obtain a sign code;

realizar una codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto;performing multilevel permutation-based encoding on the initial absolute vector to obtain an absolute vector code;

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;combining the sign code and the absolute vector code to obtain an initial vector code by adding the absolute vector code shifted left by the number of bits of the sign code to the sign code; and encode a value that uniquely identifies the leader;

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;where encoding the sign vector to obtain a sign code comprises: encoding signs in the sign vector that correspond to non-zero elements of the vector entered in order, to obtain the sign code, where each element 1 represents a positive sign and 0 represents a negative sign, or 0 represents a positive sign and 1 represents a negative sign;

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;where performing a coding based on multilevel permutation in the initial absolute vector comprises: (a) eliminating any element from the initial absolute vector according to a decomposition order, in which the decomposition order is to eliminate the most frequent element of the initial absolute vector , or eliminate the smallest element if there are two or more more frequent elements of the initial absolute vector, thus constructing a new absolute vector with elements not eliminated, in which the order of decomposition is determined by the leader;

(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;(b) encoding the positions of the non-removed elements in the initial absolute vector to obtain a position code;

(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(c) proceed with encoding based on multilevel permutation by repeating steps (a) and (b) on the new absolute vector if the number of elements in the new absolute vector is greater than 1, until the number of elements in the new absolute vector is one; and

(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.(d) obtaining the absolute vector code by combining all the position codes obtained in multilevel permutation based coding if the number of elements in the new absolute vector is 1. An embodiment of the present invention provides a vector coding apparatus , configured to perform any of the methods according to claims 1 to 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.As can be seen from the previous technical solution, no calculation is performed using a complex formula to encode an absolute vector with a multi-level permutation based encoding approach, so the complexity of the calculation is reduced.

Breve descripción de los dibujosBrief description of the drawings

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;Figure 1 is a flow chart of the vector coding method according to a first embodiment of the present invention;

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;Figure 2 is a flow chart of the vector coding method according to a second embodiment of the present invention;

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;Figure 3a is a schematic diagram of an example index83 position code table according to an embodiment of the present invention;

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;Figure 3b is a schematic diagram of an example index32 position code table according to an embodiment of the present invention;

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;Figure 4 is a flow chart of the vector coding method according to a third embodiment of the present invention;

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;Figure 5 is a flow chart of the vector decoding method according to a first embodiment of the present invention;

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; Figure 6 is a flow chart of the vector decoding method according to a second embodiment of the present invention;

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; yFigure 7 is a structural diagram illustrating an example of the vector coding apparatus according to an embodiment of the present invention; and

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.Figure 8 is a structural diagram illustrating an example of the vector decoding apparatus according to an embodiment of the present invention.

Descripción detallada de las realizacionesDetailed description of the realizations

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.The present invention is described in detail below by way of illustration with reference to the drawings for a better understanding of the objects, solutions and advantages of the present invention.

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.As shown in Figure 1, the vector coding method according to an embodiment of the present invention includes the following steps. It should be noted that the transmission media in the description refers to transmission technologies that apply to multimedia, such as video and audio. For the sake of description, only audio is described in the description, and the processes in other streaming media, such as video, are similar to audio.

Paso 101. Se descompone un vector inicial para obtener un vector de signo y un vector absoluto inicial.Step 101. An initial vector is decomposed to obtain a sign vector and an initial absolute vector.

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.A sign of an element in the initial vector can be positive or negative, and there are many possible combinations of the positive and negative signs. Therefore, by decomposing the initial vector to obtain the sign vector, the number of combinations of elements in the initial vector can be reduced, thus reducing the amount of subsequent computation.

Paso 102. Se obtiene un código de signo codificando el vector de signo.Step 102. A sign code is obtained by encoding the sign vector.

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.A signal can be directly collected from each of all the elements. Alternatively, the signs of only non-zero elements can be collected after removing a sign from any zero element, thus reducing the data bits to be occupied by the integer value of the sign vector.

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í.The integer value of the sign vector can be obtained using a scheme provided in one embodiment of the present invention. In the schematic, a sign is removed from any element in the initial vector that has a value of zero from the sign vector, the signs of the nonzero elements are arranged in an order in which the nonzero elements are arranged in the initial vector, and thus a sign code is obtained, with "1" representing a positive sign and "0" representing a negative sign, or "0" representing the positive sign and "1" representing the negative sign, so that the sign code corresponding to the sign vector of the initial vector is obtained and the number of bits of the sign code is equal to the number of non-zero elements in the initial vector. As described above, while "1" and "0" are used in the case of binary, other values can be used in the case of, for example, octal, decimal, and so on. The order of arrangement in the description is described on the left. to the right. However, in practice, the order of arrangement can be from right to left or center to right and left, and the processes are similar to the case of the order of arrangement from left to right and the description thereof is omitted. here.

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.Also, in practice, a post-processing is required for the sign code, because there is a restriction in the design of a basic codebook for a quantization process, in other words, a sum of values of all elements in a vector must be a multiple of 4. If a variance of the sum of the values of all the elements due to a change in a sign of any individual element is a multiple of 4, the signs of the individual elements are independent; otherwise, the signs of the individual elements are dependent, which means that there is correlation and redundancy between the signs, and the redundancy between the signs must be removed in order for efficient coding. Because any sign dependent on the initial vector can be determined by other sign bits, a simple approach to eliminate redundancy is to not encode the sign of the last non-zero element of the initial vector between the dependent signs, i.e. eliminate the last bit of the obtained sign code, in order to satisfy the condition that the sum of the values of all the elements in a vector must be a multiple of 4. The sign of the remaining element can be derived directly from the known signs of other elements of the 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.Step 103. Multi-level permutation based encoding is performed on the initial absolute vector to obtain an absolute vector code.

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.Encoding based on multilevel permutation consists of eliminating level by level an element of the initial absolute vector that satisfies a preset condition, for example, an element corresponding to the value of the most frequent element. If two or more more frequent item values are present, the items corresponding to these can be removed in the order of their values. Of course, items can also be selected and removed using other means depending on the specific application environment. In practice, all elements corresponding to two or more most frequent element values can be eliminated.

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.In encoding based on multilevel permutation, for items that remain at the current level, the data about their positions at a higher level constitute a position permutation, a possible value of the position permutation is the number of items belonging to the higher level, and the permutation of position obtained at the current level. In this way, encoding based on multilevel permutation is performed on the absolute vector until one element in the decomposition level corresponds to only one element value, as a result, a series of level-based encoded values are obtained and Obtains the absolute vector code by combining the encoded values on a level basis. In practice, in multilevel permutation-based coding, level-coded values can be combined level by level, or combined at a time after all level-coded values have been obtained. In the description of the present invention below, the way in which level-coded values are combined level by level is taken as an example by way of illustration.

Paso 104. El código de signo y el código de vector absoluto se combinan para obtener un código del vector inicial. Step 104. The sign code and the absolute vector code are combined to obtain an initial vector code.

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.The initial vector code can be obtained by combining the sign code and the absolute vector code, so that in decoding, the absolute vector and the sign vector of the elements of the absolute vector can be decoded from the initial vector code. A specific combination process includes: after determining the number of bits of the sign code, combining the absolute vector code shifted left by the number and the sign code, thus obtaining the initial vector code.

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.In practice, it is also possible to combine the absolute vector code shifted to the right and the sign code. Alternatively, it is possible to combine the sign code shifted to the left or right and the absolute vector code after the number of bits of the absolute vector code is determined. The present invention is not limited to a particular approach of combining the absolute vector code and the sign code, and all approaches of deriving a sign code and an absolute vector code from a code of an initial vector in the Decoding are intended to fall within the scope of the present invention.

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.As can be seen from the above description, no calculation is performed using a complex formula to encode an absolute vector with a multi-level permutation-based encoding approach in the embodiments of the present invention, so that the complexity of the calculation.

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: In practice, multiple feature codebooks may be present, in other words, there are at least two feature codebooks in the codebook space. In this case, after obtaining a coded value of the initial vector, which belongs to a feature codebook, it is required to proceed with:

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.get a feature value from the feature codebook that the initial vector belongs to in the codebook space, combine the feature value and the code of the initial vector that belongs to the feature codebook, and get a resulting code of the initial vector.

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.The feature values of the individual feature codebooks in the codebook space are different, and the feature value can be a completely shifted value from the feature codebook in the codebook space, or another value that can uniquely identify the feature codebook in codebook space, such as a feature codebook serial number. Accordingly, by combining the initial vector code belonging to the feature codebook and the feature value, the code is matched to the feature codebook, so that the corresponding codebook can be used for decoding. The specific procedure for combining is the same as combining an integer value from a sign vector and a code from an initial vector. In practice, when a fully shifted value from a feature codebook in codebook space is used as a feature value, due to an interval between fully shifted values of the respective feature codebooks in the codebook space. codebook, a final coded value can be obtained by adding the initial vector code belonging to the feature codebook and the fully shifted value if the interval is large enough.

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.After the above steps, an initial vector can be mapped into a corresponding feature codebook in the case of multiple feature codebooks.

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. When the method according to the embodiment of the present invention is implemented in a transform domain trellis vector quantization encoding in a speech audio standard, because all the basic codebooks for trellis vector quantization encoding are constants, the types of elements of each Leader and the number of elements of each type are determined, and an encoding order based on multilevel permutation, configuration parameters, etc. can be determined in advance, depending on the Leader. In the case of the codebook of the basic codebooks shown in Table 1, for example, the order of encoding based on multilevel permutation and configuration parameters according to an embodiment of the present invention are shown in the Table 2, where an element corresponding to the most frequent element value is eliminated, level by level.

Tabla 2 Orden de los parámetros de configuración y de la codificación basada en la permutación multinivelTable 2 Order of configuration parameters and encoding based on multilevel permutation

Figure imgf000008_0001
Figure imgf000008_0001

Figure imgf000009_0001
Figure imgf000009_0001

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.Table 2 shows a decomposition order for each Leader, that is, the values of the items removed level by level, as shown in the decomposition order column. Each item in the Leader is removed level by level based on an item value based on the data in the decomposition order column from left to right. The data for m1, m2 and m3 in the last column respectively denote values of numbers (m) of elements for encoding based on permutation at levels 1,2 and 3, m at a higher level equal to a value of a number (n) of elements at the current level, and a value of n from the permutation-based encoding at the first level is one dimension of the lattice vector (eg, n is 8 for REs). The Vc data in the last column indicates the number of element types in terms of an absolute value in the Leader, that is, the number of levels of encoding based on multilevel permutation. The Sn data in the last column denotes the number of bits in a sign code.

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.The vector coding method according to an embodiment of the present invention is described below in a specific embodiment. As shown in Figure 2, the data calculated at each stage of the coding of the vector belonging to Leader 20 is described.

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).Decomposing elements in the vector of (0, -2, 0, 0, 4, 0, 6, 0) belonging to Leader 20, an absolute vector of (0, 2, 0, 0, 4, 0, 6, 0) and a sign vector of (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.After removing the 0s from the sign vector, you get a binary sign code of 100 with "1" representing the negative sign and "0" representing the positive sign. The binary 100 is a decimal 4, so the sign code Sign = 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 decirReferring to Table 2, to perform multilevel permutation-based encoding on the absolute vector, the elements that have a value of 0 in the absolute vector are removed to obtain an absolute vector of (2, 4, 6). For items 2, 4, and 6, the data about their positions at a higher level are 1,4 and 6 respectively. In this case, three elements out of eight elements are selected according to a combination principle, and a corresponding position code can be calculated with a preset formula, i.e.

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 dewhere pO indicates the position data of "2", p1 indicates the position data of "4" and p2 indicates the position data of "6". Alternatively, the location code can be looked up in a preset location code table, an example of which in one embodiment of the present invention is shown in Figure 3a. The position code corresponding to the respective position data of 1, 4 and 6 is 31, as can be seen in Figure 3a. Subsequently, we proceed to the permutation-based coding multilevel in the obtained absolute vector that has three elements. Because the three items correspond to three different item values, one item is removed from the three items in order. With reference to Table 2, an element that has a value of 2 is eliminated, obtaining an absolute vector of (4, 6) that has two elements. Because the position code at the top level is 31, a combined position code of 31 * 3 + 2 = 95 is obtained by combining the position code at the current level and the position code at the top level. The reason for timing 3 is that the number of combinations obtained by selecting two elements of three elements is 3, and the reason for adding 2 is that the position data in the vector of (2, 4, 6) for the elements of 4 y 6 of the absolute vector obtained from (4, 6) is 1 and 2 and a position code of 2 is obtained according to a formula of

.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..vFi - where pg denotes the position data of the element of "4" and p1 denotes the position data of the element of "6". Of course, the position code can also be looked up in a preset position code table, an example of which is shown in Figure 3b in one embodiment of the present invention. The position code corresponding to the respective position data of 1 and 2 is 2, as can be seen in Figure 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 deLikewise, we proceed to coding based on multilevel permutation in the absolute vector obtained that has two elements. With reference to Table 2, an element that has a value of 4 is eliminated, obtaining an absolute vector of (6) that has only one element. The position code at the top level is 95, the number of combinations obtained when selecting an element of two elements is 2, and the data about the position in the vector of (4, 6) for the element of 6 is 1, for Therefore, a position code of 1 is obtained according to a formula of

í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. index 21 = C, - C, ■ 1 where pO denotes the data about the position in the vector of (4, 6) for the element of "6". As a result, the combined position code is 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.At this point, the encoding based on multilevel permutation is completed because the value number of the element in the obtained absolute vector is 1. Since the number of nonzero elements among the initial elements in the absolute vector is 3, in other words, the number of bits of the integer value of the sign vector is 3, to combine the sign code and the absolute vector code, the absolute vector code is shifted to the left by 3 bits and added to the sign code, so that the absolute vector code and the sign code are combined and stored, and a coded value of the initial vector belonging to Leader 20 is obtained as 191 * (23) + 4 = 191 * 8 + 4 = 1532, where 4 is the sign code. Subsequently, the code belonging to Leader 20 and the fully shifted value of Leader 20 in the codebook space are combined, and the final encoded value obtained is 59260 given that the fully shifted value of Leader 20 in the codebook space is 57728. The value of Leader 20 in the codebook space depends on the storage position of Leader 20 in a system and can vary from system to system, but is constant across a system.

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.As can be seen from the description above, no complex factorial is calculated and the amount of calculation is low. Also, it is necessary to store only a table shown as Table 2, formulas to calculate a position code or a position code table used in searching for a position code and a few temporary data in one realization, therefore , there is not much storage space occupied. In the embodiment, any element corresponding to an element value is removed at each level; however, in practice, with many element values, elements corresponding to multiple element values can be removed at each level.

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.The method according to the third embodiment of the present invention is shown in Figure 4, and the method includes the following steps.

Paso 401. Se obtienen un vector de signo y un vector absoluto descomponiendo un vector inicial.Step 401. A sign vector and an absolute vector are obtained by decomposing an initial vector.

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.Step 402. The signs of the nonzero elements are arranged in an order in which the nonzero elements are arranged in the initial vector, and thus a sign code is obtained, with "1" representing the positive sign and " 0 "representing the negative sign.

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.In practice, the sign code can be obtained with "0" representing the positive sign and "1" representing the negative sign, or otherwise.

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.Step 403. It is determined whether the signs of the elements in the initial vector are independent. If the signs are independent, the method goes to Step 405, otherwise, the method goes to Step 404.

Paso 404. Se elimina el último bit del código de signo.Step 404. The last bit of the sign code is removed.

Paso 405. Cualquier elemento que corresponda al valor del elemento correspondiente a la mayoría de los elementos se elimina del vector absoluto. Step 405. Any element that corresponds to the value of the element corresponding to most of the elements is removed from the absolute vector.

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.In the embodiment, an approach is implemented in which any element that corresponds to the value of the element corresponding to the majority of the elements is removed from the absolute vector. However, in practice, an approach can be implemented in which any element that corresponds to the value of the element corresponding to the minimum number of elements is removed from the absolute vector.

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.Step 406. For the elements that correspond to element values that do not correspond to the majority of the elements, their data on the positions in the absolute vector is obtained, and a position code is obtained using a preset approach.

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.The preset approach may be that the position code is calculated using a formula to calculate a position code or it is looked up in a table of preset position codes.

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.Step 407. It is determined if the number of values of the elements that do not correspond to the majority of the elements is 1; and if the number is 1, the process goes to Step 409; otherwise, the process goes to Step 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.Step 408. The elements corresponding to the values of the elements that do not correspond to the majority of the elements are retained in order, to construct a new absolute vector, and the process proceeds to Step 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.Step 409. The obtained position codes are combined into a combined position code, which is shifted to the left by the number of bits of the sign code and combined with the sign code, to obtain a code of the initial vector that belongs to to the feature codebook determined from the initial vector.

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.Step 410. The code belonging to the feature codebook and the fully shifted value from the feature codebook in the codebook space are combined to obtain a final coded value of the initial vector.

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.Coding based on multilevel permutation is implemented in the embodiment, no complex factorial is calculated, and the amount of calculation is low. Also, it is not necessary to store a lot of temporary data in the realization and therefore it does not take up much storage space.

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.In one embodiment of the present invention, a vector decoding method corresponding to the vector coding method is provided. After receiving the resulting code from an initial vector, a decoding side decomposes a value to be decoded according to an opposite approach to encoding, obtains decoding values based on the permutation of the respective parts, obtains position information by decoding and multilevel replacement is performed, to obtain the resulting initial vector. Decoding includes: (1) searching the range of the encoded value to obtain a Leader to which the lattice vector belongs, thus obtaining an offset value of the code and subtracting the offset value from the encoded value to obtain a value encoded in the Leader; (2) decompose the encoded value in the Leader, to obtain a sign code value and a code value based on multilevel permutation; (3) decompose level by level the code value based on multilevel permutation to obtain code values based on permutation at each level, obtain position vectors at each level by analysis using a permutation-based decoding module, and restore values of elements at all positions in the initial vector using a multilevel replacement approach.

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:As shown in Figure 5, the vector decoding method according to one embodiment of the present invention includes:

Paso 501. Se descompone un código de vector para obtener un código de signo y un código de vector absoluto. Step 501. A vector code is decomposed to obtain a sign code and an absolute vector code.

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.A feature codebook corresponding to the vector can be obtained from the vector code, and the number of bits of the sign code corresponding to the vector code can be searched in a preset decoding table.

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.The sign code indicates the signs of elements in the initial vector. The number of items in each feature codebook is known, therefore, the number of bits of the sign code is determined from the given feature codebook, and all of these can be stored in the preset decoding table.

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.The bit data of a sign code is extracted from the vector code to obtain the sign code. Since the vector code is jointly constructed by the absolute vector code and the sign code, if the encoded value from the feature codebook is obtained by combining the left-shifted absolute vector code and the sign code in encoding, the various rightmost bits of the vector code is the sign code.

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. To obtain the absolute vector code, the vector code from which the data for the bits of the sign code was extracted is shifted to the right by the number of bits of the sign code. After the sign code has been extracted, the data from which the sign code has been extracted is shifted to the right by the number of bits, thus obtaining the absolute vector code, which is the reverse of the encoding procedure.

Paso 502. El código de signo se decodifica para obtener un vector de signo.Step 502. The sign code is decoded to obtain a sign vector.

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.The integer value obtained from the sign vector becomes binary. The signs of the elements are determined depending on whether "0" represents the positive sign and "1" represents the negative sign or "0" represents the negative sign and "1" represents the positive sign in the encoding. In this embodiment, the sign code is described as determined from the signs of nonzero elements.

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.Step 503. Decoding based on multilevel permutation is performed on the absolute vector code, to obtain an initial absolute vector.

Un procedimiento específico de decodificación basada en la permutación multinivel incluye lo siguiente.A specific decoding procedure based on multilevel permutation includes the following.

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. The value of the absolute vector is decomposed to obtain position codes for the elements of the absolute vector into the top-level absolute vector. Actually, the absolute vector code consists of position codes obtained in multilevel permutation-based encoding, whereby the position codes related to the respective levels can be obtained by directly decomposing the absolute vector code in decoding.

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.The position codes are decoded, thus obtaining data on the positions in the top-level absolute vector for the elements of the absolute vector.

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.The number of elements of the absolute vector at the top level and any element values of the elements removed to obtain the absolute vector are looked up in the preset decoding table.

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.The elements of the absolute vector are arranged in the absolute vector at the top level according to the data about the position, and the element value of the removed elements is given in the remaining position, so that the absolute vector is obtained in the Upper level.

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.If the absolute vector at the top level is not the initial absolute vector, the method proceeds with decoding based on multilevel permutation according to the previous steps, until the initial absolute vector is obtained.

Paso 504. Se combinan el vector de signo y el vector absoluto inicial, obteniendo así un vector inicial.Step 504. The sign vector and the initial absolute vector are combined, thus obtaining an initial vector.

En particular, los signos se proporcionan en orden para los elementos distintos de cero en el vector absoluto inicial. In particular, the signs are given in order for the nonzero elements in the initial absolute vector.

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.It is possible that the last bit of the sign code is dropped in encoding due to dependence on element signs, therefore when rebuilding the initial vector, if the rightmost non-zero element of the initial vector is provided With no element sign, an element sign of the rightmost nonzero element can be determined according to the principle that the sum of the values of all elements in the initial vector is a multiple of 4. Of course, The leftmost nonzero element of the initial unsigned element vector may also be supplied, depending on the nonzero element from which the sign is removed in encoding.

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.As can be seen in this embodiment, no irregular factorial is calculated and the amount of calculation is low in decoding using the solution according to the embodiment. Also, temporary data is similar to encoding and therefore does not take up much storage space.

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: In practice, if the obtained code is a final code combined with a feature value from the feature codebook in the codebook space, it is required to decompose the final code with the following steps:

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; ydetermining a feature codebook corresponding to the initial vector from the ending code of the initial vector, thereby obtaining a feature value from the feature codebook in the codebook space; and

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.determining a vector code of the starting vector that belongs to the feature codebook from the ending code and the feature value.

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.The characteristic value can be a completely offset value. Because a storage position of each feature codebook in the codebook space is fixed, the fully shifted value of the feature codebook in the codebook space is fixed, and the Characteristics where the encoded value is found can be determined from the range where the encoded value is after the code is obtained. In particular, a table can be stored in a system, in which each feature codebook and its offset value are recorded. The table can be searched to decode. Also, a similar process is performed for the case where the feature value is a feature codebook serial number.

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. In particular, if the code is obtained by adding a code from the vector belonging to the feature codebook and the fully shifted value in the encoding, the encoded value belonging to the feature codebook can be obtained by subtracting the fully shifted value from the code.

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.With the above steps, the vector code belonging to the feature codebook can be obtained by decomposing the final code, thus decomposing the coded value of the vector belonging to the feature codebook to obtain the initial vector.

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.The vector decoding method according to the second embodiment of the present invention is shown in Figure 6 and includes the following.

Paso 61. Se obtienen un Líder y una Compensación del rango donde está el valor codificado final.Step 61. A Leader and Compensation are obtained from the range where the final coded value is.

Dado el valor codificado de 59260, se puede determinar que el valor codificado pertenece al Líder 20 y el Desplazamiento es 57728.Given the coded value of 59260, it can be determined that the coded value belongs to Leader 20 and the Offset is 57728.

Paso 62. Se puede obtener un valor codificado del vector inicial que pertenece al Líder restando el Desplazamiento del valor codificado final.Step 62. A coded value of the initial vector belonging to the Leader can be obtained by subtracting the Offset from the final coded value.

Un valor codificado de 1532 que pertenece al Líder 20 se obtiene restando 57728 de 59260.A coded value of 1532 that belongs to Leader 20 is obtained by subtracting 57728 from 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.Step 63. A sign code and an absolute vector code are obtained by decomposing the coded value of the initial vector that belongs to the Leader.

Un código de signo de 4 y un código de vector absoluto de 1528 se obtienen descomponiendo 1532.A sign code of 4 and an absolute vector code of 1528 are obtained by decomposing 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.Step 64. The element signs of the elements in the absolute vector are restored from the sign code. A decimal 4 becomes a binary 100 since "1" represents the negative sign and "0" represents the positive sign in the encoding, therefore, the element signs corresponding to the non-zero elements indicate respectively "-" , "+" and "" from left to right.

Paso 65. Se realiza la decodificación basada en la permutación multinivel, que incluye:Step 65. Decoding based on multilevel permutation is performed, which includes:

Paso 651. Se descompone un código de nivel n del código de vector absoluto.Step 651. A level n code of the absolute vector code is decomposed.

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.The n indicates the number of levels of encoding based on multilevel permutation used in encoding. The value of n can vary with a different feature codebook, and can be obtained directly from the Vc element in Table 2. This embodiment is described taking Leader 20 as an example. As can be seen in Table 2, there are 4 levels, Any item that has an item value of 0 is removed at level 1, any item that has an item value of 2 is removed at level 2, and any item that has an item value of 4 is removed at level 3 As a result, level 4 has an element that has a value of 6. It will be seen that the sign bits of the absolute vector code are shifted to the right by 3 bits (corresponding to the 3-bit shift in encoding) before decomposition, and get 191 from 1528 / (23) = 1528/8.

Paso 652. Se descompone el código de nivel 3 del código de vector absoluto.Step 652. The level 3 code is decomposed from the absolute vector code.

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.For example, in the case of Leader 20, there are 4 levels, but decomposition will not take place at level 4, and only 3 levels of permutation-based encoding are carried out for Leader 20, consequently the Decoding begins with level 3. Because any item corresponding to an item value is removed at each level during encoding, any item corresponding to an item value is restored correspondingly at each level during decoding. As can be seen in Table 2 that m3 is 1, m2 is 2 and m1 is 3, the number of combinations obtained from the selection of elements whose number is the number of elements in level 2 of the elements whose number is the number of elements at level 3, that is, 1 of 2, is 2. Therefore, according to a calculation of 191% 2, the quotient obtained is 95, which is a permutation-based position code for levels 1 and 2, the remainder is 1, which is a position code of an element of the absolute vector at level 3 in the absolute vector at level 2, and the position data corresponding to the position code is 1. Step 653. Decompose the level 2 code of the absolute vector code.

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.Similarly, according to a 95% 3 calculation, the position code obtained for level 1 is 31, the remainder is 2, which is a position code of an element of the absolute vector at level 2 in the absolute vector at level 1, and the position data corresponding to the position code is 1 and 2.

Paso 654. Se descompone el código de nivel 1 del código de vector absoluto.Step 654. The level 1 code is decomposed from the absolute vector code.

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.Because level 1 is the last level, a position code of one element of the level 1 absolute vector is obtained in the initial vector. Furthermore, m1 is 3 and the number of bits of the initial data is 8, so the position data 1,4 and 6 corresponding to the position code 31 are searched in the table shown in Figure 3a. It will be appreciated that position data can also be calculated with a formula.

Paso 655. Los datos en la posición a determinar en el nivel 1 se reemplazan con un resultado decodificado en el nivel 2. Step 655. The data at the position to be determined at level 1 is replaced with a decoded result at level 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.As shown in Table 2, the value of the element removed first is 0, therefore 0 is set to positions in the absolute vector other than positions 1,4 and 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.Step 656. The data at the position to be determined at level 2 is replaced with a decoded result at level 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.As shown in Table 2, the value of the element removed second is 2, and positions 4 and 6 between positions 1, 4, and 6 in the absolute vector are retained at the lower level, so the value of the item 2 is provided in position 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í.Consequently, the element value of 4 is given in position 4 and the element value of 6 is given in position 6, thus obtaining the initial absolute vector of (0, 2, 0, 0, 4, 0, 6 , 0) No steps are carried out for levels 4 to n because decoding of 3 levels is only required for Leader 20. In practice, for a given Leader corresponding to many levels, the process for each level is similar and the description thereof is omitted here.

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.Step 657. The data at the position to be determined at level n-1 is replaced with a decoded result at level n.

Paso 66. Los signos de los elementos distintos de cero en el vector absoluto se restauran de izquierda a derecha. Step 66. The signs of the nonzero elements in the absolute vector are restored from left to right.

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).The signs obtained from the non-zero elements are, respectively, "-", "+" and "+" from left to right, so an initial vector of (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.Step 67. If the sign of the rightmost nonzero element in the initial vector has not been determined, the sign of this nonzero element can be determined according to the principle that the sum of the values of all elements in the initial vector is a multiple of 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.In practice it is possible that the sign bit for the rightmost nonzero element is dropped due to dependence on the signs of the initial vector, hence on decoding if the nonzero element is provided rightmost of the initial vector obtained without sign value, the sign of the rightmost nonzero element can be determined according to the principle that the sum of the values of all elements in the initial vector is a multiple of 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.As can be seen in the embodiment, no irregular factorial is calculated and the amount of calculation is low in decoding using the solution according to the embodiment. Also, temporary data is similar to encoding and therefore does not take up much storage space.

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:A vector coding apparatus is provided in accordance with one embodiment of the present invention, as shown in Figure 7, and the apparatus includes:

una unidad 71 de descomposición, adaptada para descomponer un vector inicial para obtener un vector de signo y un vector absoluto inicial;a decomposition unit 71, adapted to decompose an initial vector to obtain a sign vector and an initial absolute vector;

una unidad 72 de codificación de signos, adaptada para codificar el signo para obtener un código de signo; a sign encoding unit 72, adapted to encode the sign to obtain a sign code;

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;a multilevel permutation based coding unit 73, adapted to perform multilevel permutation based coding on the initial absolute vector to obtain an absolute vector code. The multilevel permutation-based encoding unit 73 may include: an element removal unit adapted to remove an element from the initial absolute vector having a value that satisfies a preset condition; an element retention unit adapted to retain in order any element that does not satisfy the pre-established condition for constructing a new absolute vector; a position encoding unit adapted to encode the position of the element that does not satisfy the preset condition in the initial absolute vector to obtain a position code, and activate the element removal unit to remove any element in the new absolute vector from which the value of the element does not satisfy the preset condition if the number of values of the elements in the new absolute vector is greater than 1; and an absolute vector code unit adapted to combine the individual position codes obtained in encoding based on multilevel permutation to obtain an absolute vector code if the number of the element values in the new absolute vector is greater than 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; ywhere the position coding unit can calculate the position code with a preset position code calculation formula, or look up a preset position code table for the position code. In practice, the multilevel permutation-based encoding unit 73 may further include a preset code table storage unit adapted to store the preset code table in which the preset condition is stored, and the item removal unit search the preset code table for any item to be removed; and

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.a combining unit 74, adapted to combine the sign code and the absolute vector code to obtain an initial vector code; Combination unit 74 may include: a unit for determining the number of bits adapted to determine the number of bits in a sign code; and a combining unit adapted to shift the absolute vector code by the number of bits of the sign code to the left and combine the sign code to obtain the initial vector code.

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.As can be seen, the absolute vector is encoded using a multilevel permutation-based encoding approach in the embodiment, so that no computation is performed with complex formulas and the complexity of the computation is reduced.

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:In practice, if the feature codebook number in a codebook space is at least two, the initial vector code must be matched in the feature codebook. To this end, the vector coding apparatus according to the embodiment of the present invention further includes:

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; ya feature code book determining unit adapted to determine a feature code book to which the initial vector belongs; and

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.a final coded value obtaining unit adapted to obtain a characteristic value from the characteristic codebook and combining the characteristic value and the initial vector code to obtain a final code from the initial vector.

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.The final coded value obtaining unit can be used to match the initial vector to a corresponding feature codebook if multiple feature codebooks are present.

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:A vector decoding apparatus is provided in accordance with one embodiment of the present invention, as shown in Figure 8, and the apparatus includes:

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;a decomposition unit 81 adapted to decompose a vector code to obtain a sign code and an absolute vector code;

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; wherein the decomposition unit 81 may include: a sign code bit number determining unit adapted to determine the number of bits of a sign code of a feature code book to which the initial vector belongs; a sign code extraction unit adapted to extract data on bits of the sign code from the vector code to obtain the sign code; and an absolute vector code obtaining unit adapted to shift to the right the vector code from which the data on the bits of the sign code has been extracted by the number of bits of the sign code to obtain an absolute vector code ;

una unidad 82 de decodificación de signos adaptada para decodificar el código de signo para obtener un vector de signo;a sign decoding unit 82 adapted to decode the sign code to obtain a sign vector;

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;a multilevel permutation based decoding unit 83 adapted to perform multilevel permutation based decoding on the absolute vector code to obtain an initial absolute vector;

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; ywhere the multilevel permutation-based decoding unit 83 may include: an absolute vector code decomposition unit, adapted to decompose the absolute vector code to obtain a position code of an element of the absolute vector into an absolute vector in a top level, and an absolute vector code at the top level; a position data obtaining unit adapted to decode the position code to obtain position data in a top-level absolute vector for an element of the absolute vector; a data search unit adapted to search a preset decoding table for the number of elements in an absolute vector at the top level, and an element value of the element removed by obtaining the absolute vector; and an absolute vector obtaining unit adapted to arrange elements of the absolute vector in an absolute vector in the upper level according to the position data and provide the element value of the element removed in the remaining position to obtain the absolute vector in the upper level and activating the position data obtaining unit to decode the position code corresponding to the absolute vector at the upper level if the absolute vector at the upper level is not the initial absolute vector; the position data obtaining unit can calculate the position code with a preset position data decoding formula, or search a preset position data decoding table for the position data; and

una unidad 84 de combinación adaptada para combinar el vector de signo y el vector absoluto inicial para obtener un vector inicial.a combination unit 84 adapted to combine the sign vector and the initial absolute vector to obtain an initial vector.

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.As can be seen, the absolute vector is encoded using a multilevel permutation-based encoding approach in the embodiment, so that no computation is performed with complex formulas and the complexity of the computation is reduced.

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: In practice, if a plurality of feature codebooks are involved in encoding, the final encoded value of the initial vector is obtained in decoding, whereby the vector decoding apparatus according to an embodiment of the present invention may include what's more:

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; ya feature codebook determining unit adapted to determine a feature codebook to which the initial vector corresponds, and obtaining a feature value from the feature codebook in the codebook space; and

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.a coded value determining unit adapted to decompose a final code of the initial vector according to the characteristic value to obtain a code of the initial vector.

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:Once the initial vector code has been obtained, the decomposition unit can begin to decode the vector. A streaming media player is provided that includes a vector decoding apparatus according to an embodiment of the present invention, and the vector decoding apparatus includes:

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;a decomposition unit adapted to decompose a vector code to obtain a sign code and an absolute vector code;

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; ya sign decoding unit adapted to decode the sign code to obtain a vector of signs; a decoding unit based on multilevel permutation adapted to perform decoding based on multilevel permutation on the absolute vector code to obtain an initial absolute vector; and

una unidad de combinación adaptada para combinar el vector de signo y el vector absoluto inicial para obtener un vector inicial.a combination unit adapted to combine the sign vector and the initial absolute vector to obtain an initial vector.

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.As can be seen, the absolute vector is encoded using a multilevel permutation-based encoding approach in the embodiment, so that no computation is performed with complex formulas and the complexity of the computation is reduced.

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.Those skilled in the art will appreciate that all or part of the above steps of the method according to the embodiments can be accomplished with a program that instructs the related hardware, and the program can be stored on a computer-readable storage medium, and carried out as follows. next steps when run: decompose an initial vector to obtain a sign vector and an initial absolute vector; encode the sign vector to obtain a sign code; performing multilevel permutation-based encoding on the initial absolute vector to obtain an absolute vector code; and combining the sign code and the absolute vector code to obtain an initial vector code.

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. The above-mentioned storage medium can be a ROM, a magnetic disk, a CD, etc. The vector encoding / decoding method, apparatus and streaming media player according to embodiments of the present invention have been described in detail. The embodiments are described in order to better understand the method and its concept in the present invention.

Claims (4)

REIVINDICACIONES 1. Un método de codificación de vectores, que comprende:1. A vector coding method, comprising: 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;decomposing (101) an initial vector to obtain a sign vector and an initial absolute vector, where the initial vector corresponds to a leader; codificar (102) el vector de signo para obtener un código de signo;encoding (102) the sign vector to obtain a sign code; realizar (103) la codificación basada en la permutación multinivel en el vector absoluto inicial para obtener un código de vector absoluto; yperforming (103) encoding based on multilevel permutation on the initial absolute vector to obtain an absolute vector code; and 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:combining (104) the sign code and the absolute vector code to obtain an initial vector code by adding the left-shifted absolute vector code with the number of bits of the sign code to the sign code; where encoding the sign vector to obtain a sign code comprises: 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;encode signs in the sign vector that correspond to nonzero elements of the vector entered in order, to get the sign code where 1 represents a positive sign and 0 represents a negative sign, or 0 represents a positive sign and 1 represents a sign negative for each nonzero element; 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;where performing an encoding based on multilevel permutation in the initial absolute vector comprises: (a) eliminating from the initial absolute vector any element according to a decomposition order in which the decomposition order is configured to eliminate the most frequent element of the absolute vector initial, or eliminate the smallest element if there are two or more more frequent elements of the initial absolute vector, thus building a new absolute vector with non-eliminated elements, in which the order of decomposition is determined by the leader; (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;(b) performing permutation coding at positions of the non-eliminated elements in the initial absolute vector to obtain a position code; (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(c) proceed with encoding based on multilevel permutation by repeating steps (a) and (b) on the new absolute vector if the number of elements in the new absolute vector is greater than 1, until the number of elements in the new absolute vector is one; and (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.(d) obtain the absolute vector code by combining all the position codes obtained in encoding based on multilevel permutation if the number of elements in the new absolute vector is 1. 2. El método según la reivindicación 1, que comprende además:The method according to claim 1, further comprising: determinar un libro de códigos de características al que pertenece el vector inicial, antes de descomponer un vector inicial; ydetermining a feature codebook to which the initial vector belongs, before decomposing an initial vector; and 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.get a feature value from the feature codebook and combine the feature value and the initial vector code to get a final code of the initial vector, after obtaining the initial vector code. 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.The method of claim 1 or 2, the position code is calculated using a preset position code calculation formula, or is searched in a preset position code table. 4. Un aparato de codificación de vectores, configurado para realizar cualquiera de los métodos según las reivindicaciones 1 a 3. 4. A vector coding apparatus, configured to perform any of the methods according to claims 1 to 3.
ES08160878T 2007-07-23 2008-07-22 Vector encoding / decoding method and apparatus and streaming media player Active ES2865725T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200710129604A CN100583649C (en) 2007-07-23 2007-07-23 Method and apparatus for encoding/decoding vector as well as flow medium player
PCT/CN2008/071481 WO2009012681A1 (en) 2007-07-23 2008-06-30 Method, device and streaming media player for vector coding/decoding

Publications (1)

Publication Number Publication Date
ES2865725T3 true ES2865725T3 (en) 2021-10-15

Family

ID=40113995

Family Applications (1)

Application Number Title Priority Date Filing Date
ES08160878T Active ES2865725T3 (en) 2007-07-23 2008-07-22 Vector encoding / decoding method and apparatus and streaming media player

Country Status (10)

Country Link
US (3) US7738558B2 (en)
EP (1) EP2023341B1 (en)
JP (1) JP4601690B2 (en)
KR (1) KR100984234B1 (en)
CN (1) CN100583649C (en)
ES (1) ES2865725T3 (en)
HU (1) HUE054385T2 (en)
PL (1) PL2023341T3 (en)
PT (1) PT2023341T (en)
WO (1) WO2009012681A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101609680B (en) * 2009-06-01 2012-01-04 华为技术有限公司 Compression coding and decoding method, coder, decoder and coding device
CN102422541B (en) * 2009-07-07 2013-12-04 华为技术有限公司 Method, device and system of coding, and method, device and system of decoding
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
CN102623012B (en) 2011-01-26 2014-08-20 华为技术有限公司 Vector joint coding and decoding method, and codec
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 (en) * 2018-02-22 2020-10-13 武汉大学 Audio object coding and decoding method suitable for streaming media
CN113766237B (en) * 2021-09-30 2024-07-02 咪咕文化科技有限公司 Encoding method, decoding method, device, equipment and readable storage medium

Family Cites Families (44)

* Cited by examiner, † Cited by third party
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
DE69023941T2 (en) 1989-02-28 1996-05-23 Canon Kk System for processing a quantized vector.
JPH03117991A (en) 1989-09-29 1991-05-20 Victor Co Of Japan Ltd Encoding and decoder device for movement vector
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 (en) 1994-04-21 1999-10-04 日本電気株式会社 Vector quantizer
KR100191318B1 (en) * 1996-03-26 1999-06-15 윤종용 High speed moving vector circuit
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
CA2684452C (en) * 1997-10-22 2014-01-14 Panasonic Corporation Multi-stage vector quantization for speech encoding
KR100335609B1 (en) 1997-11-20 2002-10-04 삼성전자 주식회사 Scalable audio encoding/decoding method and apparatus
KR100257191B1 (en) 1997-12-31 2000-05-15 구자홍 Motion vector decoder
JP3507686B2 (en) 1998-01-16 2004-03-15 日本電気株式会社 Communication device having voice recognition function and communication method
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 (en) * 1999-03-17 2003-01-10 Matra Nortel Communications AUDIO ENCODING, DECODING AND TRANSCODING METHODS
JP2000324498A (en) * 1999-05-13 2000-11-24 Nec Corp Animation encoding device
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 (en) * 2002-01-09 2008-07-09 松下電器産業株式会社 Motion vector encoding method and motion vector decoding method
JP4130783B2 (en) 2002-04-23 2008-08-06 松下電器産業株式会社 Motion vector encoding method and motion vector decoding method
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 (en) 2002-11-14 2007-02-28 松下電器産業株式会社 Coding method and decoding method for sound source of probabilistic codebook
CN1781254B (en) 2003-02-26 2012-03-14 高通股份有限公司 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
JP4579930B2 (en) 2004-01-30 2010-11-10 フランス・テレコム Dimensional vector and variable resolution quantization
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 (en) 2004-05-24 2010-04-07 パナソニック株式会社 Voice / musical sound decoding apparatus and voice / musical sound decoding method
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
JP2007081720A (en) 2005-09-13 2007-03-29 Sanyo Electric Co Ltd Coding method
CN1984336A (en) * 2005-12-05 2007-06-20 华为技术有限公司 Binary method and device
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

Also Published As

Publication number Publication date
EP2023341A1 (en) 2009-02-11
PL2023341T3 (en) 2021-08-30
HUE054385T2 (en) 2021-09-28
KR100984234B1 (en) 2010-09-28
CN101304254A (en) 2008-11-12
KR20090010932A (en) 2009-01-30
EP2023341B1 (en) 2021-03-03
US20090097595A1 (en) 2009-04-16
US20090097587A1 (en) 2009-04-16
JP4601690B2 (en) 2010-12-22
US20090097565A1 (en) 2009-04-16
US7738558B2 (en) 2010-06-15
JP2009199048A (en) 2009-09-03
WO2009012681A1 (en) 2009-01-29
US7738559B2 (en) 2010-06-15
CN100583649C (en) 2010-01-20
US7746932B2 (en) 2010-06-29
PT2023341T (en) 2021-05-05

Similar Documents

Publication Publication Date Title
ES2865725T3 (en) Vector encoding / decoding method and apparatus and streaming media player
ES2821432T3 (en) Audio quantification using low complexity vector indexing
ES2651437T3 (en) Audio encoder and audio decoder
ES2558508T3 (en) Coding method, encoder, method of determining the amount of a periodic characteristic, apparatus for determining the quantity of a periodic characteristic, program and recording medium
JP5722420B2 (en) Techniques for storing bits in memory cells with stuck-at faults
RU2008139888A (en) IMPROVED CODING / DECODING OF DIGITAL SIGNALS, IN PARTICULAR, WITH VECTOR QUANTIZATION WITH TRANSFERRED CODES
US20160344405A1 (en) Coding Method, Decoding Method, Coder, and Decoder
US20180181706A1 (en) Method for Compressing Genomic Data
CZ300954B6 (en) Process of and apparatus for encoding digital information signal, decoding apparatus and record carrier
US7126502B2 (en) Techniques for using interleaved encoders to obtain modulation constraints
JP5805727B2 (en) Data encoding and decoding to accommodate memory cells with stuck-at faults
ES2785041T3 (en) Pyramid Vector Quantifier Shape Search
JP2014510302A (en) Encoding and decoding the pulse positions of tracks of audio signals
KR20010041154A (en) Device for encoding n-bit source words into corresponding m-bit channel words and decoding m-bit channel words into corresponding n-bit source words
RU2015145970A (en) DATA PROCESSING DEVICE AND DATA PROCESSING METHOD
US9998149B2 (en) Constant hamming weight coding
CN102904579B (en) Coding Compression Method Based on Successive Approximation Method
JP2010009101A (en) Memory system and memory access method
CN115249509A (en) Data coding method and decoding method based on deoxyribonucleic acid technology
ES2840349T3 (en) Decoding a sound signal
CN103119649A (en) Method and apparatus for lossless encoding and decoding based on context
JP3565147B2 (en) Decryption device
US20240022260A1 (en) Low complexity optimal parallel huffman encoder and decoder
US7536395B2 (en) Efficient dynamic register file design for multiple simultaneous bit encodings
Godfrey et al. Analysis of Encoding Large Integers: Using Method-II on A123367