MX2008010490A - Codificacion/decodificacion mejoradas de señales digitales, especialmente en cuantificacion de vector con codigos de permutacion. - Google Patents

Codificacion/decodificacion mejoradas de señales digitales, especialmente en cuantificacion de vector con codigos de permutacion.

Info

Publication number
MX2008010490A
MX2008010490A MX2008010490A MX2008010490A MX2008010490A MX 2008010490 A MX2008010490 A MX 2008010490A MX 2008010490 A MX2008010490 A MX 2008010490A MX 2008010490 A MX2008010490 A MX 2008010490A MX 2008010490 A MX2008010490 A MX 2008010490A
Authority
MX
Mexico
Prior art keywords
decomposition
exponents
vector
range
permutation
Prior art date
Application number
MX2008010490A
Other languages
English (en)
Inventor
Claude Lamblin
Stephane Ragot
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of MX2008010490A publication Critical patent/MX2008010490A/es

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Landscapes

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

Abstract

La invención se refiere a la codificación/decodificación de señales digitales, especialmente usando códigos de permutación que involucran un cálculo de expresiones combinatorias. De acuerdo con la invención, las expresiones combinatorias están representadas por descomposiciones de potencia de factor primo, y determinadas mediante una lectura preliminar de representaciones pre-registradas de descomposiciones de enteros seleccionados.

Description

CODIFICACION/DECODIFICACION MEJORADAS DE SEÑALES DIGITALES. ESPECIALMENTE EN CUANTIFICACION DE VECTOR CON CODIGOS DE PERMUTACIÓN La presente invención se refiere a la codificación/decodificación de señales digitales tales como las señales de audio, video y, más generalmente, las señales de multimedia para su almacenamiento o su transmisión. Propone en particular una solución de los problemas que tienen la codificación y decodificación de códigos de permutaciones. Típicamente, la presente invención se aplica también al dual de la codificación: la codificación de canal o "modulación'' . La codificación/decodificación de señales digitales en el sentido de la invención puede ser muy útil para la cuantificación de los coeficientes de transformadas de codificadores de frecuencias de las señales de palabra y/o audio. Cuantificación vectorial Una solución muy generalizada en la compresión de las señales digitales es la cuantificación vectorial. La cuantificación vectorial representa un vector de entrada por un vector de la misma dimensión seleccionada de un conjunto finito. Un cuantificador de M niveles (o "vectores-códigos") es una aplicación biyectiva del conjunto de los vectores de entrada, generalmente el espacio real euclidiano de n dimensiones Rn o un subconjunto de R" en un subconjunto finito Y de R" de M elementos distintos: Y = {y0, yi, ... yu-i}. Y se denomina alfabeto de reproducción o "diccionario" o aun "repertorio", y sus elementos de los vectores-códigos, las "palabras de código" (o "puntos de salida" o aun "representantes"). La capacidad por dimensión r del cuantificador (o su "resolución") está definida por la relación: r = -log2 A/ n En la cuantificación vectorial, un bloque de n muestras se trata como un vector de dimensión n. De acuerdo con la teoría de la codificación de fuente, cuando la dimensión se vuelve muy grande, el desempeño de la cuantificación vectorial se aproxima al límite de producción-distorsión de la fuente. Los diccionarios de cuantificadores vectoriales pueden ser concebidos a partir de métodos estadísticos tales como el algoritmo «de . -Lloyd generalizado (o "GLA" por "Algoritmo de Lloyd Generalizado"), con base en las condiciones necesarias de optimización de un cuantificador vectorial. Los cuantificadores vectoriales de estadísticas así obtenidos no tienen ninguna estructura, lo que hace su exploración costosa en recursos de cálculos y de almacenamiento, pues la complejidad tanto de la codificación como del almacenamiento es proporcional a n2nr. Haciendo referencia a la Figura 1 A, tres operaciones principales ponen en acción un cuantificador vectorial: dos a la codificación y una a la decodificación. Un vector de entrada se codifica (etapa COD) al seleccionar de antemano un vector-código en un diccionario. Se trata del vector-código que más "se le parece" (operación OPI de la Figura 1 A). Después, se determina el índice de este vector-código (etapa IND) para ser transmitido o almacenado (operación OP2 de la Figura 1 A). En el decodificador (etapa DEC) el vector-código es determinado a partir de su índice (operación OP3 de la Figura 1 A). En modulación, se encuentran las tres operaciones OP1 , OP2 y OP3 de la Figura 1 A, pero en un orden diferente. Haciendo referencia a la Figura 1 B, que ilustra esta dualidad modulación/cuantificación, se prevé el paso de un Indice a un vector código (etapa COD' de la Figura 1 B correspondiente a la operación OP3 de la Figura 1A). Enseguida, después de la transmisión en un canal sonorizado, se busca el vector-código más próximo al vector recibido (etapa DEC de la Figura 1 B correspondiente a la operación OPI de la Figura 1A). Finalmente, la decodificación del índice del vector código es la tercera etapa (etapa IND' de la Figura 1 B correspondiente a la operación OP2 de la Figura 1A). El crecimiento exponencial de la complejidad, en función de la dimensión de ios vectores y de la producción, limita el empleo de los cuantificadores vectoriales no estructurados a los de dimensiones bajas y/o producciones bajas para poder ejecutarlos en tiempo real. Para un cuantificador vectorial no estructurado, la busca del vecino más próximo (operación OP1) requiere una búsqueda exhaustiva entre todos los elementos del diccionario para seleccionar el elemento del diccionario que minimiza una medida de distancia entre él y el vector de entrada. Las dos últimas operaciones (indexación OP2 y operación inversa OP3) se efectúan generalmente por lecturas simples de tablas, pero sin embargo son costosas en espacio de memoria. Para liberar de las tensiones de tamaño y de dimensión, se han estudiado varias variantes de la cuantificación vectorial. Tienden a remediar la ausencia de estructura del diccionario y logran así una reducción de la complejidad, pero en detrimento de la calidad. Sin embargo, se mejora el compromiso rendimiento/complejidad , lo que permite aumentar la zona de resoluciones y/o de dimensiones en la cual puede aplicarse eficientemente en costo la cuantificación vectorial. Se han propuesto muchos esquemas de cuantificadores vectoriales estructurados y, en particular, el cuantificador vectorial que emplea un "código de permutación" presentado más adelante en la presente. Códigos de permutación En el cuantificador vectorial "código de permutación", los vectores-códigos se obtienen por permutaciones de los componentes del primer vector-código (en el sentido del "orden lexicográfico") llamado "leader" (o aun "vector-director"). Estos componentes toman sus valores de un alfabeto A = {a0, ai , .... aq.i} de tamaño q (alfabeto A q-zona de manera que a¡ ?a¡ para i ?j). Los componentes a¡ son reales (o enteros). El peso w' (donde es un Índice que va de 0 a q-1) es el número de repeticiones de la letra ai del alfabeto. Los pesos w' son enteros positivos tales que^T u-' = n Por convención, los valores del alfabeto satisfacen a0>ai>... >aq- . Los n componentes del leader van disminuyendo de la postelón 0 hasta la posición (n-1). El vector-leader y0 es entonces un vector de dimensión n de la forma: [aú,..., 0,al ,...,ai ,...,a¡l_l 1...,all_] ) ^ Se comprende que se podría seleccionar un orden diferente de los componentes, por ejemplo a0<ai< .. <aq-i . El vector leader se denomina "leader firmado" y el código de permutación se dice que es "de tipo . Los otros vectores-códigos se obtienen por permutaciones de ios componentes de y0- El número total M de permutaciones es: Existe otro tipo de código de permutación (tipo II) . El vector leader tiene aún la misma forma que la anterior, pero sus componentes deben ser positivos (a0>a > ... >aq. i =0). Los otros vectores-códigos son obtenidos también por permutaciones de los componentes de yo en su asignación de todas las combinaciones de signos posibles. El número total M de permutaciones es: M = 2* — — (3) i en donde h = n si aq- >0 y h = n-wq'1 si no. En este caso, el vector-leader también se denomina leader absoluto.
El cuantificador vectorial "código de permutación" se ha extendido al compuesto o (o la unión) de códigos de permutación y recientemente, esta estructura en unión de códigos de permutación ha sido generalizada a la cuantificación vectorial de dimensión y resolución variables (en el documento WO-04/002 9 a nombre de la solicitante). Los códigos de permutación no se utilizan solamente en cuantificación vectorial estadística. También se les encuentra en cuantificación vectorial algebraica, la cual utiliza diccionarios fuertemente estructurados, resultados de redes regulares de puntos o de los códigos correctores de error. Los códigos de permutación se emplean también en modulación.
La explotación de la estructura con código de permutación permite el desarrollo de algoritmos de búsqueda del vecino más próximo (operación OP 1 sobre la figura 1 A) óptimos y rápidos. Sin embargo, la indexación (o numeración) de los vectores-códigos (operación OP2 de la figura 1 A) y la operación inversa de decodificación (operación OP3 de la figura 1 A) necesita más cálculos que en el caso de los cuantificadores vectoriales no estructurados. Existen varias maneras de enumerar las permutaciones. El algoritmo de Schalkwijk constituye una de estas manera: "An algorithm for source coding", por Schalkwijk J . P. M . , en I EEE Trans. , sobre Teoría de la Información, vol. IT-18, No.3, pp. 395-399, mayo de 1972. Utilizando análisis conminatorio, estas técnicas permiten indexar un vector-código de un código de permutación (operación OP2) y también efectuar la operación inversa-decodificación del Indice (operación OP3) . Entre los algoritmos de indexación de permutaciones, se recuerda en la presente más adelante el algoritmo de Schalkwijk utilizado comúnmente, por ejemplo en las normas: - [3GPP TS 26.273] (ANSI-C código para el Punto Fijo Extendido AM R -Banda Ancha (AMR-WB+) codee; V6.1.0 (2005-06) (Entrega 6)) , - y [3GPP TS 26.304] (Extended Adaptive Multi-Rate - Wideband (AM R-WB+) codee; código Floating-point ANSI-C; V6.3.0 (2005-06) (Reléase 6) , junio 2005) . Cálculo del rango de una permutación de codificación (operación OP2 de la Figura 1 A) Se busca un ordenador e indexar todas las permutaciones posibles de los componentes del vector y = (y0, yi..., yn-i)- El orden es lexicográfico y el índice se denomina aquí "rango". Calcular el rango del vector y corresponde a calcular el rango del vector D = (d0, di..., dn-1) asociado a y tal que dk tiene un valor de índice d sí y solamente sí yk = ad. Por ejemplo, un vector y, de dimensión n = 8, tiene los siguientes componentes: y = (4, 2, 4, 0, 0, 4, 4, 2) El alfabeto de q = 3 letras (componentes de valores diferentes) se da por A = {4, 2, 0} con a0 = 4, a, = 2 y a2 = 0. Se asocia entonces al vector y el vector D = (0, 1, 0, 2, 2, 0, 0, 1) de los que los componentes son simplemente los índices de q letras del alfabeto A. Los rangos de y y D son idénticos, pero la definición del vector O permite reducirse al cálculo del rango de una secuencia D que tiene sus valores en un conjunto {0, 1, q 1} (que lleva el mismo número de elementos que el alfabeto {a0, a a</-i})- Los pesos de los vectores y y D son idénticos ya que las ocurrencias de sus componentes respectivos son idénticas. Se define igualmente el peso intermedio (w°k, w , wq' ) como el peso del vector de componentes (y*, y*+i, ···> yn-i) y que corresponde así al vector y truncado al dejar las posiciones k de n-1. Así: u' ¿(rfjtrf) (4) donde d(?, y) es el operador de Kronecker (d(?, y) - 1 si x = y y 0 si no). Se tiene: (w°0, w ,..., wq' ) = (w°, tv1 iv"'1). El rango f del vector y se puede calcular, en análisis combina torio, mediante la fórmula: 1-0 Esta fórmula se puede simplificar así: Esta última formulación que se utiliza frecuentemente y que se adaptará por eso a la presente. En la siguiente, ldkk se denominará "rango parcial del orden k", con: Decodificación del rango (operación OP3): Determinación de la permutación a partir de su índice La decodificación del rango t consiste en encontrar el vector D = {d0, ??,..., dn-i) asociado a y. Un método de búsqueda secuencial de las dk se describe más adelante en la presente. Antes se determina el componente do, después el componente d1t ... hasta el componente dn-i. * Determinación de d0: Para encontrar d0 se utiliza la fórmula que lleva las desigualdades: Los términos (n-1 )!, t, J~ (w'0í) y los valores wd0 para d = 0, ... , q-1 son i -0 conocidos. Para encontrar el valor de d0, se parte de d0 = 0, d0 se incrementa sucesivamente desde 1 hasta que se verifique la fórmula (8). Cuando la fórmula (8) se escribe con los rangos parciales, el valor d0 es tal que: * Determinación de o Para encontrar d1 f se emplea la relación: Los valores de w \ para d = 0, ... , Q-1 se deducen de aquellos de w 0 como sigue: - wd = wd0 -1 si d = d0 - wrfi = wd0 si d ? d0 (entonces ivrf0 se repite mientras d sea diferente de d0). Se vuelve al mismo problema que la determinación del componente d0. Para encontrar el valor de d- , se parte de d} = 0 y se incrementa sucesivamente d, desde 1 hasta que se verifique la desigualdad (9) {ld1 i=(t-/<,00I)</<',+ ).
* Determinación de otros dk: El cálculo de los dk siguientes se deduce de los casos tratados más adelante en la presente. Para encontrar el valor de dk, se parte de dk = 0 y se incrementa sucesivamente desde 1 hasta que se verifica la desigualdad : Una vez que se decodifica el vector D = (d0 dn - i ) , se deduce el vector y por simple transposición del alfabeto. Estado de la Técnica v Problemas Planteados La indexación de un código de permutación y la operación inversa son operaciones complejas. Los algoritmos utilizados emplean el análisis combinatorio. La indexación de las combinaciones y la operación inversa requieren divisiones de productos de factoriales. Complejidad de la División A pesar del progreso en circuitos integrados y de procesadores de tratamiento de señal, la división sigue siendo una operación compleja .
Típicamente, la división de un número entero representado por 16 bits entre un número entero representado por 16 bits cuesta 18 veces más que su multiplicación. El peso de la división de un número entero de 32 bits entre un número entero de 16 bits es de 32 cuando el peso de su multiplicación es de 5. Encuadramiento de las Variables El costo de la división no es el único problema. El encuadramiento de las variables es otro como se ilustra en la Tabla 1 más adelante en la presente.
Solamente los factoriales de números enteros i nferiores o iguales a 8 pueden ser representados en términos enteros de 16 bits. Para números más grandes que 12, la representación de factoriales en térmi nos enteros de 32 bits ya no es posible. Además, la complejidad de las operaciones aumenta también con el n úmero de bits utilizados para representar las variables. Así , la división entre un entero de 16 bits de un entero de 32 bits es casi dos veces más compleja (peso 32) que la división de un entero de 16 bits (peso 1 8) . n n! Log2(n!) 0 1 0 1 1 0 2 2 1 3 6 2.5849625 4 24 4.5849625 5 1 20 6.9068906 6 720 9.4918531 7 5040 12.299208 8 40320 15.299208 9 362880 18.469133 1 0 3628800 21 .791 061 1 1 1 39916800 25.2504927 1 2 479001600 28.8354552 1 3 6227020800 32.535895 14 871 78291200 36.3432499 (continuación de tabla) Tabla 1 : Factoriales de números enteros Se han propuesto soluciones para red ucir la complej idad de l a operación O P 1 . Se puede tratar el problema de la complejidad de l as operaciones OP2 y OP3. Si n em bargo, particularmente en el codificador/decodificador TDAC de la Solicitante o en el codificador 3GPP-AM R-WB+ , se han aportado simplificaciones a los algoritmos de codificación y de decodificación mediante la fórmula de Schalkwijk. Simplificaciones de la enumeración de las permutaciones v de la operación Inversa (operaciones OP2 v OP3) El cálculo del rango t de una perm utación y la operación inversa se han acelerado gracias a las sim plificaciones descritas más adel ante en la presente del cálculo de n términos ldkk, de lo que se recuerda, a continuación en la presente, la definición: Los dos primeros sirven para reducir la complejidad tanto de la codificación como de la decodificación . El tercero se utiliza en la codificación y los dos últimos en la decodificación. La técnica de codificación se ilustra en las Figuras 2 y 3. E n particular la Figura 3 apunta al cálculo del rango mediante la fórmula de Schalkwijk en el sentido de la técnica anterior, mientras que la Figura 2 ilustra las etapas preliminares (aludidas como "EP-n", para la nésima etapa preliminar de la Figura 2). En referencia a la Figura 2, el tratamiento comienza por la etapa EP- 1 en la cual se recuperan los componentes del vector y = (yo, . . , y La etapa general E P-2 siguiente apunta al cálculo de los elementos del alfabeto que interviene para este vector A = (a0, ... , aq. i ) , así como la determinación del índice máximo q. Para hacer esto, después de una etapa de iniciación EP-21 donde se fija q = 1 , a0 - y0, se efectúa un ciclo en el índice k comprendido entre 1 y n-1 (prueba de fin de EP-26 e incremento si no EP-27) apuntando a la búsqueda de los elementos a, como sigue: - si el componente yk del índice corriente k no está ya entre los elementos {a0 aq- í} (prueba EP-22) , es necesario atribuir un nuevo elemento aq tal que aq = yk (etapa EP-23) al conjunto {a0, ... . aQ-J} e incrementar q de 1 (etapa EP-25) . La etapa preliminar general siguiente EP-3 es un cálculo del vector D = (d0 d„. i ) como sigue: - para k que va de 0 a n-1 (etapa EP-31 de iniciación de k a 0, prueba de fin EP-37 de k e incremento EP-38 si no), se encuentra el valor d dentro del conjunto de índices (0, g-1 ) tal que yk = (prueba EP-33 en el ciclo de d e incremento EP-36 con d = d + 1 si no). En referencia a la Figura 3, se describen ahora las etapas de cálculo del rango f que sigue al tratamiento preliminar ilustrado en la Figura 2. Las etapas ilustradas en la Figura aludidas "CA-n" para designar una nsima etapa de codificación en el sentido de la técnica anterior. La etapa CA- 1 es una iniciación del rango de t a 0, de la variable P a 1 (denominador que interviene en el cálculo del rango de la etapa CA-13) y de q pesos w0 wq-i a 0. Aquí, se disminuye el valor de k de n- a 0 (etapa CA-2 de iniciación de k de n-1, prueba de fin de CA-14 y disminución de CA-15 si no). El interés de tal selección se describe más adelante. Enseguida se utiliza los componentes dk del vector D obtenido en la etapa preliminar EP-3 y se fijan, para un k corriente, d = dk (etapa CA-3). Se pone en claro el peso asociado wd (wd = wd + 1 de la etapa CA-4) para estimar el término P (P = Pxwd de la etapa CA-5). Se inicia en 0 (etapa CA-6) la suma S que interviene en el numerador en el cálculo del rango correspondiente a la etapa CA-13 y se hace correr enseguida un ciclo del índice i de los pesos w¡ (prueba de fin CA-9 e incremento de CA-10 si no, hasta d - 1) para poner en claro la suma S (S = S + w¡ en la etapa CA-8). Antes de calcular el rango f de la etapa CA-13, se verifica que la suma S no sea nula (prueba CA-11). El interés de esta realización se describe más adelante. El cálculo del rango t (etapa CA-13) hace intervenir el término factorial (n-/c-1)! como sigue: f = t + (S/P)(n-/c-1)l En lugar de calcular el término (n-c-1)! cada vez que se pone en claro el rango f, se prefiere pre-registrar en memoria estos valores y tener el recurso de un simple acceso de memoria (etapa CA-12) para obtener el valor corriente de (n-fc-1)!. Asi, ciertas ventajas del tratamiento ilustrado en la Figura 3 serán retomadas en la realización de la presente invención. Estas ventajas se precisan en la presente más adelante.
* Almacenamiento de factoriales Para evitar calcular los términos (n-fc-1 ) ! y w'k\ en tiempo real, se precalculan los valores de n + 1 factoriales (0!, 1 ! n\) y se almacenan .
SI la dimensión n varia de modo limitado (n=nmax) se precalculan y se almacenan los valores 0! , 1 ! nmax . * Prueba sobre el cúmulo de pesos intermedios para evitar la división Ahora bien, este término se vuelve nulo en particular para las últimas posiciones (k próximo a n-1 ). Además de una prueba sobre la nulidad de este término (prueba CA-1 1 de la Figura 3), se puede evitar una división (y una multiplicación) . El cálculo de una división que es netamente más compleja que una prueba, la ganancia de complejidad es importante. * Inversión del rizo sobre las posiciones de la codificación Los pesos wdk (con d = 0, 1 , q-1 ) se deducen de los pesos ivd*+ i al aumentar de wdki(+ 1 de 1 y al repetir los otros valores w para d dk. Se puede realizar entonces un ciclo (etapas CA-2, CA-14, CA- 15 de la Figura 3) que parte de la última posición (k = n-1 ) del vector hasta la primera {k -0). Este ciclo "inverso" permite calcular, después de una iniciación en 1 , el término Pk tal que: con solamente un incremento y una multiplicación por repetición, sea: - wdkk = w<\+1 + 1 Se puede además tratar las dos últimas posiciones en parte (k = n- 1 y /( = n-2). En efecto, • para la última posición (k = n-1 ), wt-, = 0 luego = o • para la penúltima posición ( = entonces /RF«--2 = ] , si no (dn-2 =c/„.,), = 0 con P„-2 = 2 si dn-2 = d„., y Pn-2 = 1 si no. Se pueden prever también otros detalles de realización ventajosos, descritos en la presente más adelante. * Supresión de una división de decodificación Con el fin de evitar divisiones de decodificación en el momento de la búsqueda de d0, la desigualdad (8) puede ser reformulada en la forma: ( «fr ? («-l)! x ?>,? | =? ? !) «« -1)?? ? Igualmente, se suprimen las divisiones en el momento de la búsqueda de di al reformular la desigualdad (9) en la forma: R es necesario hacer notar que sí es posible también suprimir las divisiones en el momento de la búsqueda de los dk (0=/ =n-1 ), es necesario efectuar siempre (n-1 ) divisiones para calcular los (0=/c=n-3). * Prueba de los pesos de decodificación En las últimas posiciones, para ciertos valores de d, w"k = 0 (para los wdo componentes de valor d que ocupan las posiciones precedentes a la posición k) . Es inútil entonces calcular los términos de las desigualdades (8) y (9) para estos valores de d. Otro problema de la técnica anterior: el ajuste de las variables El problema del ajuste de las variables ha sido abordado en el codificador TDAC de la Solicitante. Una primera solución consiste en distinguir los tratamientos de las dimensiones superiores a 12 de aquellas dimensiones más pequeñas. Para las pequeñas dimensiones (n< 12) , los cálculos se efectúan en enteros no sellados de 32 bits. Para las dimensiones más grandes, se utilizan variables flotantes de doble precisión al precio de un incremento de la complejidad de cálculo (las operaciones en doble precisión flotante son más costosas que sus equivalentes en precisión entera) y la capacidad de memoria requerida. Además, sf la precisión máxima está limitada a los enteros de 32 bits no sellados (realización mediante un procesador de coma fija) , los factoriales de enteros superiores a 12 no pueden ser preaimacenados directamente y los vectores de dimensión superior a 12 deben ser codificados en parte. Para resolver este problema, una solución más elaborada utiliza una representación de coma seudo flotante mediante mantisa y que expone a los factoriales n! en la forma 2' x r. Esta descomposición se detalla en la Tabla 2 a continuación. El almacenamiento de n! (para n inferior o igual a 16) se reduce a almacenar r con una precisión de 30 bits como máximo asi como el exponente j que corresponde a una simple diferencia de bits.
Tabla 2: Factorización de los factoriales Así, las técnicas de la técnica anterior, en la mayoría, no resuelven el problema del ajuste de las variables en precisión limitada, en particular en coma fija. La realización en el codificador TDAC, sí ella misma permite regular el problema de ajuste, no evita las divisiones costosas de dos enteros. Además, para las dimensiones elevadas, los cálculos intermedios (por ejemplo el numerador y el denominador de rangos parciales ldkk) pueden aproximarse a la saturación. En este caso, las simplificaciones presentadas en la presente más adelante no pueden ser utilizadas en el tratamiento de decodificación y es necesario regresar a las formulaciones de las desigualdades (8) y (9) , y entonces reintroducir numerosas divisiones. Las técnicas de enumeración diferentes a las de Schalk ijk sufren de los mismos problemas. Puesto que utilizan también el análisis combina torio, necesitan el cálculo de productos de factoriales así como sus divisiones. La presente invención viene a mejorar la situación. Propone antes que todo para este efecto un procedimiento de codificación/decodificación de signos numéricos, que utilizan códigos de permutación que hacen intervenir un cálculo de expresiones combinatorias, en el cual estas expresiones combinatorias se representan por descomposiciones en potencias de factores primeros, y determinadas por una lectura de informe de representaciones prerregistradas de descomposiciones de números enteros seleccionados. La presente invención proporciona entonces una solución eficaz de los problemas vinculados además a la indexación de un código de permutación como a la operación inversa. Resuelve, conjuntamente, los dos problemas de ajuste de las variables y de divisiones. En efecto, en una modalidad ventajosa , las representaciones prerregistradas lleva n los valores representativos de exponentes, almacenados respectivamente en correspondencia de valores representativos de números primos sucesivos, para cada uno de dichos enteros seleccionados. Se soluciona asi el problema vinculado al ajuste de variables de la técnica anterior. Este problema de ajuste de variables se incrementa otro tanto cuando se trata de manipular términos factoriales. En una modalidad ventajosa , para manipular las expresiones com binatorias cuando llevan valores de factoriales de enteros, las representaciones prerregistradas llevan por lo menos representaciones de descom posiciones de valores de factoriales. Esta realización permite entonces eliminar la presión del ajuste de variables y, además, rechazar los límites habitualmente fijados en cuanto a la dimensión n de códigos de permutación considerados. De acuerdo con otra característica ventajosa, por lo menos una de dichas expresiones combinatorias lleva un cociente de un numerador entero entre un denominador entero, y este cociente está representado por una descom posición de potencias de factores primos, por lo que cada potencia es una diferencia de exponentes asociados respectivamente al numerador y al denominador y afectados por un mismo número primo. Se resuelve así el problema vinculado al cálculo de divisiones de la técnica anterior, mediante el reem plazo de este cálculo por un sim ple cálculo de sustracciones.
En una primera modalidad, se prevé un direccionamiento de informe para encontrar una descomposición prerregistrada de uno de los enteros seleccionados antes mencionados. Para este efecto, la representación prerregistrada de un número entero seleccionado se almacena en una memoria direccionable, un direccionamiento de dicha memoria que da una sucesión de exponentes para afectar a números primos respectivos para recomponer el entero seleccionado. Preferiblemente, la representación prerregistrada de un número entero seleccionado será almacenada en la forma de una sucesión de direcciones que dan, cada una, para un número primo, un exponente para afectar a este número primo para recomponer el entero seleccionado. Se denomina, en la presente más adelante, esta realización de acuerdo con el primer modo para los términos, "representación manifiesta de descomposiciones". En una variante, en una segunda modalidad, las representaciones prerregistradas son almacenadas en la forma de palabras que llevan una sucesión de grupos de bits, cada grupo que tiene: - una función de peso de un número primo, y - Una función de Valor de un exponente para asociar a este número primo. Preferiblemente, la determinación de las potencias de factores primos se efectúa entonces mediante aplicaciones sucesivas de por lo menos una máscara parcial a la palabra de bits, con diferencias sucesivas en función de los pesos de bits y lecturas de bits restantes. Se denomina, después en la presente, esta realización de acuerdo con la segunda modalidad por los términos "representación compacta de descomposiciones". El desarrollo mismo del procedimiento, para el cálculo de una expresión combinatoria, puede ser, de modo general, conducido de acuerdo con las etapas: - identificación, entre dichos números enteros seleccionados, de términos que aparecen en un producto y/o un cociente que forman dicha expresión combinatoria, - lectura de informe de exponentes que intervienen en las descomposiciones en factores primos de dichos términos, - adición y/o sustracción respectivamente de exponentes lus para determinar los exponentes que intervienen en la descomposición en potencias de factores primos de dicha expresión combinatoria, y, de allí, calcular dicha expresión combinatoria a partir de su descomposición en potencias de factores primos. Con respecto al cálculo de un producto a efectuar de modo recurrente y que hace intervenir a cada recurrencia un nuevo término, puede ser ventajoso almacenar temporalmente la descomposición de un cálculo de producto efectuado para una recurrencia anterior. Asi, sí el procedimiento lleva una etapa recurrente de cálculo de un producto que hace intervenir con cada recurrencia un término se multiplica por un producto determinado para una recurrencia anterior: - dicho producto determinado para una recurrencia anterior se conserva ventajosamente en memoria en la forma de una descomposición en potencias de factores primos, - dicho término se multiplica en producto es de preferencia uno de los enteros seleccionados del cual está prerregistrada la descomposición, y - para determinar dicho producto con una recurrencia corriente, es suficiente de adicionar, uno por uno de un par de números primos, los exponentes resultantes de las descomposiciones respectivas de dicho producto determinado para una recurrencia anterior y dicho término se multiplican por el producto. Igualmente, si el procedimiento lleva una etapa recurrente de cálculo de una división que hace intervenir en cada recurrencia un término que divide un cociente determinado para una recurrencia anterior: - dicho cociente determinado para una recurrencia anterior se conserva ventajosamente en memoria en la forma de una descomposición en potencias de factores primos, - dicho término que divide el cociente es de preferencia uno de los enteros seleccionados del que está prerregistrada la descomposición, y - para determinar dicha división para una recurrencia corriente, se sustraen, uno por uno de un par de números primos, los exponentes resultantes de la descomposición de dicho término de los exponentes resultantes de la descomposición de dicho cociente determinado para una recurrencia anterior. Este almacenamiento temporal de descomposiciones intermedias de los productos y/o de los cocientes calculados de modo recurrente se comprobará particularmente de manera ventajosa para la determinación de rangos parciales recurrentes de los que el acumulado es representativo de un rango de una permutación. Asi , en una modalidad ventajosa de la invención, los códigos de permutación hacen intervenir el cálculo de una cantidad representativa de un rango de una permutación que lleva un cúmulo de rangos parciales, cada rango parcial que corresponde entonces a una de dichas expresiones combinatorias. El cálculo del rango de una permutación puede intervenir entonces, a la codificación de señales digitales en cuantificación vectorial, para indexar las permutaciones de los componentes de un vector director (operación OP2 de la Figura 1 A), estas permutaciones se han efectuado en una etapa previa (operación OP 1 ) para determinar un vector-código el más próximo a un vector de entrada. Igualmente, en la codificación de señales digitales en cuantificación vectorial, la estimación de un rango de una permutación interviene desde entonces a partir de un valor dado de un rango de permutación: - se calcula por lo menos una cantidad representativa de un rango de permutación (operación OP3 de la Figura 1 A) que se aproxima a dicho valor dado, en función de por lo menos un componente asumido de un vector-código a construir, - Se valida la selección del componente asumido si esta cantidad verifica una condición de proximidad con el valor dado del rango.
En un ejemplo de modalidad, esta condición de proximidad se verifica sf el valor dado del rango puede ser enmarcado por los cúmulos de rangos parciales hasta el rango parcial asociado al componente asumido, por una parte, y hasta el rango parcial asociado a un componente que corresponde a un incremento del componente asumido, por otra parte. Esta condición de proximidad puede corresponder entonces a una formulación general de las desigualdades (8) descritas en la presente más adelante en el caso de una enumeración de Schalkwijk. Asi, la presente invención se puede aplicar ventajosamente a la codificación/decodificación de fuente con cuantificación vectorial en el sentido de la Figura 1 A. Sin embargo, la codificación/decodificación puede ser también del tipo de codificación/decodificación de canal, en modulación, en el sentido de la Figura 1 B, puesto que comprende: - antes de la transmisión, la determinación de un vector-código a partir del rango de una permutación (misma operación OP3 de la Figura 1 A y de la Figura 1 B) , y - en recepción, el cálculo del rango de una permutación a partir de un vector-código que corresponde a un vector recibido (misma operación OP2 de la Figura 1 A y la Figura 1 B). El cálculo de un rango parcial hace intervenir los términos (en un producto o un cociente) que, por regla general como se verá más adelante, permanecen inferiores o iguales a la dimensión máxima n de códigos de permutación. Así, en una modalidad ventajosa, los números enteros seleccionados de los que están prerregistradas las descomposiciones comprenden por lo menos: - los enteros comprendidos entre 1 y la dimensión máxima n, - el valor factorial del entero 0, - y, de preferencia, los valores factoriales de los enteros comprendidos entre 1 y la dimensión máxima n. En una modalidad particular facultativa, los números enteros seleccionados pueden comprender además el valor de 0. Asi , sí el código de permutación utiliza una enumeración de Schalkwijk, un rango parcial ldkk asociado al truncamiento (y*, yn- í) de un vector-código (y0, y„.t) se escribe: - la notación J~| representa un producto para un índice entero i que va de 0 a m, - la notación ? representa una suma para un índice i que va de 0 a m, - la notación /! es el valor factorial del entero / con /! = 1 x2x3x... x(/- 1 ) x /, para />0 y 0! = 1 , - el entero n es la dimensión del código de permutación, que corresponde al número total de componentes que comprende un vector-código, - el entero k, comprendido entre 0 y n-1 , es el índice del kieslmo componente yk del vector-código, investigado a partir de un valor de rango en la decodificación de fuente (respectivamente en codificación de canal) o en la que se busca indexar las permutaciones en codificación de fuente (respectivamente en decodificación de canal), - el entero q es el número de componentes distintos que comprende el vector-código, y - un término w"k (denominado "peso intermedio") representa el número de componentes de índices comprendidos entre fe y n- 1 y que tienen un valor igual a aquel de un mismo componente de índice d. En este caso, los números enteros seleccionados de los que están prerregistradas las descomposiciones y que se buscará entonces identificar en la expresión del rango parcial l kk, en un producto y/o un cociente, son de preferencia: - los términos factoriales (n- 1 -/c) ! , para todos los enteros k y comprendidos entre 0 y n-1 , (es decir los valores de los factoriales para todos los enteros entre 0 y (n-1 )), - el valor de cada término w'k y/o su valor factorial, que interviene en el i 1 producto Pk = j~J (»v¿!) , cada término w'k que está comprendido entre 0 y n, ,/, -? - los términos St = ^ »' comprendidos, cada uno, entre 1 y n-1 , para todos los enteros k comprendidos entre 0 y n-1 . Siempre, en el caso particular de la enumeración de Schalkwijk, el almacenamiento temporal de las descomposiciones intermedias se aplica ventajosamente como sigue: la suma de los exponentes en la descomposición del término P = fj(w|!) se almacena temporalmente en J-u memoria para un índice k precedente, para ajusfarlo o sustraerlo de los exponentes de la descomposición de un término w'k para un índice k corriente. Otras características y ventajas de la invención serán aparentes por el examen de la descripción detallada en la presente más adelante, y los dibujos anexos en los cuales, además de las Figuras 1 A, 1 B, 2 y 3 descritas en la presente anteriormente: La Figura 4 ilustra los principios de la codificación/decodificación del rango de una permutación en el aprovechamiento de la invención. La Figura 5 ilustra un tratamiento para la codificación de un rango de una permutación en el aprovechamiento de la invención de acuerdo con una primera modalidad, en el cual se prevé una representación en fragmentos de los exponentes de la descomposición en potencias de números primos de términos que intervienen en este cálculo. La Figura 6 ilustra un tratamiento para la codificación de un rango de una permutación en el aprovechamiento de la invención de acuerdo con una segunda modalidad , en el cual se prevé una representación compacta de los exponentes de la descomposición. La Figura 7 ilustra un tratamiento para la decodificación de un rango de una permutación de la invención de acuerdo con una primera modalidad , en el cual se prevé una representación en fragmentos de los exponentes de la descomposición; y La Figura 8 ilustra un tratamiento para la decodificación de un rango de una permutación de la invención de acuerdo con una segunda modalidad, en el cual se prevé una representación compacta de los exponentes de la descomposición. La Figura 9 representa esquemáticamente un dispositivo de codificación/decodificación que efectúa la presente invención. Es conveniente insistir para recordar (en particular en referencia a las Figuras 4 a 8 después en la presente) que: - el término "codificación" enfoca el cálculo del rango f (operación OP2 de las Figuras 1 A y 1 B), y - El término "decodificación" enfoca la determinación de la permutación a partir de este rango t (operación OP3 de las Figuras 1 A y 1 B). Estas operaciones serán mencionadas asi en referencia a la codificación/decodificación de fuente con cuantificación vectorial. Se recuerda que estas operaciones pueden ser conducidas también en codificación/decodificación de canal, en modulación. Para ilustrar de entrada el principio de la invención, se describe en la presente más adelante la factorización en potencias de números primos. La descomposición de un número entero positivo K no nulo, en potencias de números primos, se escribe así: donde p, es un i sim0 número primo (Po = 1 , i = 2, p2 = 3, p3 = 5, p4 = 7, p5 = 1 1 , Pe = 1 3, p7 = 17, etc.). Se nota e'k el exponente de p, en la descomposición del número entero y mK el Indice del factor primo más grande que interviene en la descomposición de K del exponente no nulo. Por ejemplo, el número K = 120 (o sea 5!) se escribe: 120 = 1 .23.31.51 y k = 3 aquí pues el factor más grande "5" es de índice 3 (p3 = 5). Se tiene entonces: e°5! = 1 , e15| = 3, e2 Si = 1 y e35! = 1 . En la práctica, el número " 1 " que es el elemento neutro de la multiplicación, se puede suprimir p0 de la descomposición, o sea: Bien entendido, K = 0 no puede ser descompuesto en potencias de factores primos. La descomposición en productos de potencias de números primos de enteros positivos inferiores o iguales a 16 se da en la Tabla 3a , la descom posición de sus factoriales en la Tabla 3b. Esta descomposición hace intervenir 6 números primos (2 , 3 , 5 , 7, 1 1 y 13) . Las columnas que están indexadas por el número primo p, y los reng lones por n, el elemento de la Tabla 3a (respectivamente 3b) en la intersección de la columna p, I del renglón n es el exponente e'n, (respectivamente e'n¡) del número primo p, en la descomposición en producto de potencias de números primos del número n (respectivamente n ) . Para todo número entero positivo n> 1 , el número mn! de factores pri mos de n! es tal que: Se ha indicado el número mn ! (respectivamente el número m„) en la última columna (respectivamente penúltima) de la Tabla 3b (respectivamente 3a) . Se nota la desigualdad siguiente: mn=mn l. Como lo muestra la Tabla 3a , números de exponentes de la descomposición de un número n son nulos. En la última columna de la Tabla 3a, se ha anotado el número m '„ de exponentes no nulos en la descomposición de n. La ausencia de descomposición (y por lo tanto de exponentes) para n = 0 está indicada en el renglón n = 0 de la tabla 3a por el signo n 1 p 2 3 5 7 1 1 13 m„ m '„ 0 - - - - - - 0 - 1 0 0 0 0 0 0 1 0 2 1 0 0 0 0 0 1 1 3 0 1 0 0 0 0 2 1 4 2 0 0 0 0 0 1 1 5 0 0 1 0 0 0 3 1 6 1 1 0 0 0 0 2 2 7 0 0 0 1 0 0 4 1 8 3 0 0 0 0 0 1 1 9 0 2 0 0 0 0 2 1 10 1 0 1 0 0 0 3 2 1 1 0 0 0 0 1 0 5 1 12 2 1 0 0 0 0 2 2 13 0 0 0 0 0 1 6 1 14 1 0 0 1 0 0 4 2 15 0 1 1 0 0 0 3 2 16 4 0 0 0 0 0 1 1 Tabla 3a: Descom posición en potencias de números primos de un entero positivo n (n=17) n n! / p; 2 3 5 7 1 1 13 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 1 3 6 1 1 0 0 0 0 2 4 24 3 1 0 0 0 0 2 5 120 3 1 1 0 0 0 3 6 720 4 2 1 0 0 0 3 7 5040 4 2 1 1 0 0 4 8 40320 7 2 1 1 0 0 4 9 362880 7 4 1 1 0 0 4 10 3628800 8 4 2 1 0 0 4 1 1 39916800 8 4 2 1 1 0 5 12 479001600 10 5 2 1 1 0 5 13 62277020800 10 5 2 1 1 1 6 14 87178291200 1 1 5 2 2 1 1 6 15 307674368000 1 1 6 3 2 1 1 6 16 20922789888000 15 · 6 3 2 1 1 6 Tabla 3b: Descomposición en potencias de números primos de n\ (n< 17) Se describe a continuación la aplicación de tal descomposición para el cálculo de un rango parcial de un código de permutación, en el caso de la fórmula de Schalkwijk en un primer momento, después en el caso general. Se recuerda que el rango parcial, anotado ldkk, es dado por la relación (7) anterior: de manera que tres términos pueden ser descompuestos en potencias de números primos. Se trata de los términos: A partir de los exponentes de las descomposiciones de (?-1-fc)!, de Pk y de Sfc, se calcula por simples adiciones y sustracciones, los exponentes de la descomposición de ldkk. En efecto, el exponente <? de un factor primo p, en la descomposición de ldkk se calcula a partir de tres exponentes de p, en las descomposiciones de tres exponentes de p, en las descomposiciones de tres términos (?-1-Jc)!, S* y Pk. El exponente e es igual a la suma de los exponentes de p¡ de los dos primeros términos (numerador de ldkk) a la cual se sustrae el exponente de p, del último término (denominador de /"**). Esta observación, una vez formalizada, se escribe: En la Figura 4 se han representado las etapas generales (aludidas "G-n" para la nésima etapa general) que pueden intervenir en un tratamiento en el sentido de la invención bien para la codificación como para la decodificación. Asi, en referencia a la Figura 4, a partir de un índice corriente k (etapa G-1) y vía algunas etapas intermedias que serán descritas en detalle más adelante, se retendrá especialmente como se prevé en referencia a las tablas prerregistradas (anotadas D, y Du en la etapa G-2 ilustrada a título de ejemplo en la Figura 4) para calcular el exponente e'„ global según la relación (10) a continuación (etapa G-3), este exponente que es propio para la descomposición del rango intermedio ldkk en potencias de factores primos. Se deduce entonces el valor del rango intermedio ld (etapa G-4), eventualmente en la conducción de un ciclo en el Indice / apropiado para los factores primos. El cálculo de este rango intermedio se puede seguir entonces por una actualización del rango total f de la permutación (etapa G-5): - con una relación del tipo t = t + /"** para la codificación del rango con disminución del Indice (etapa G-6) , - o con una relación del tipo í = í - ldkk para la decodificación del rango con disminución del índice k (etapa G-6) , como se verá más adelante. Finalmente, se obtiene el rango f de la permutación, en la codificación en la etapa G-7, o, en la decodificación (líneas punteadas de la Figura 4) , se deducen las desigualdades de la Fórmula (8) a continuación los componentes dk del vector D en la etapa G-8 y, de ahí, las del vector Y por la relación yk = ad a continuación. En el caso general e independientemente de la enumeración de Schalkwijk, sí un rango parcial V (t'>0) de una permutación está en la forma de un numerador de ??· términos p¡ (1 =/=Df ) y de un denominador de Dt-términos p¡ (1 =y=D/ ) , de manera que: entonces los exponentes e't- de la descomposición del rango parcial r' determinan a partir de las descomposiciones intermedias que son descomposiciones de Nv v¡ y de Dr p¡, que se escriben: También se utilizará más tarde la descomposición en factores de números primos para una formulación en productos de cocientes de números enteros de un rango parcial De manera general todavía, sí / V Volviendo al caso particular de la enumeración de Schalkwijk, para calcular entonces un rango parcial ldkk a partir de su descomposición, una vez que se determina esta descomposición, se puede proceder como sigue.
Conservando el espíritu de la relación e' =e{'^ =el._ .k) .+es' ~ep' , el rango parcial ldkk se calcula simplemente multiplicando las potencias correspondiente: "'<;" <·', Aquí se indica que los términos {n-1-k)\ y Pk son enteros estrictamente positivos, pero el término Sk puede ser nulo y por tanto no se puede descomponer. En este caso, el rango parcial idkk es nulo. Se preverá entonces una prueba del valor del término Sk (Sk = 0?) Para no calcular el rango parcial ldkk como sí Sk ? 0, como se describe a continuación (etapa CA-11 de la Figura 3).
Entonces la factorización en factores primos de términos que componen un rango parcial permite suprimir las divisiones reemplazándolas por multiplicaciones de potencias de factores primos, en particular, con simples adiciones y sustracciones de exponentes asociados a estos números primos. Asi , en el contexto de la presente invención, se prevén las etapas siguientes, a partir de un número limitado de descomposiciones en factores primos de números enteros, almacenados en memoria (mencionadas anteriormente como "descomposiciones de base"): - determinación de descomposiciones en factores primos de términos (tales •H /. -l como (;j - l - fc)! , /i = ]~[ w ! y S. = ) que aparecen en el rango de una permutación (mencionadas anteriormente como "descom posiciones intermedias") , en el contexto de la etapa G-2 de la Figura 4. - determinación, a partir de estas descomposiciones intermedias, de la descomposición en factores primos de un rango parcial t'(l k ) de una permutación, particularmente mediante el cálculo de exponentes que intervienen en la descomposición de este rango parcial (con por ejemplo una relación del tipo «?)-·.· = e „ + e^' - e), ), en el contexto de la etapa G-3 de la Figura 4, y - cálculo del rango parcial ) a partir de su descomposición (por ejemplo al utilizar una relación del tipo = | ¡[ ( >,·) ' ) . en el contexto de la etapa G-4 de la Figura 4. Bien entendidas, las descomposiciones de base para almacenar son, de preferencia, el objeto de una selección ventajosa. En una modalidad preferida, pero no limitativa, las descomposiciones de base para almacenar serán seleccionadas en función de la dimensión máxima de los códigos de permutación considerados (esa dimensión máxima que se denota n). Así , las descomposiciones de base son de preferencia: - las descomposiciones de los factoriales de un entero / (indicados /!), el entero / que es tal que 0=l=n, - y las descomposiciones del entero / mismo, con esta vez 1 =/=n, donde se recuerda que n es la dimensión máxima de los códigos de permutación considerados. Se puede identificar entonces una descomposición de base mediante un número m que da: - el número m de factores primos a considerar, - estos m factores primos por sí mismos, - y sus exponentes respectivos. Los ejemplos de esta realización serán descritos más adelante con referencia a las tablas 4a a 4d , en el marco de una representación llamada "destacada", de las descomposiciones. Se indica que una representación llamada "compacta", descrita en detalle más adelante, consiste en almacenar una palabra simple con la que los bits dan todos los exponentes que intervienen en una descomposición. Se pueden definir entonces diferentes juegos de descomposiciones de base, así como los procedimientos de representación y de almacenamiento de estas descomposiciones de base. Por otro lado, la selección de los términos de los cuales se determinan las composiciones intermedias, así como la determinación propiamente dicha de estas descomposiciones intermedias, son el objeto de realizaciones ventajosas que serán descritas más adelante. La descomposición de un rango parcial y el cálculo de un rango parcial a partir de su descomposición son también el objeto de realizaciones ventajosas descritas más adelante. Ahora se describe la selección de composiciones de base para almacenar. De manera general e independientemente de la técnica de enumeración de un código de permutación de dimensión n, el cálculo del rango de una permutación utiliza los números enteros / (0=/=n) y sobre todo sus factoriales /! (0=/=n). En una modalidad preferida, las descomposiciones de base son las descomposiciones de los factoriales de /! (0=/=n) donde n es la dimensión máxima de los códigos de permutación considerados, como se indica anteriormente. Se prevé entonces en esta modalidad preferida, (2n- 1 ) descomposiciones de base. Sin embargo, son posibles otras modalidades. Por ejemplo, no se puede prever que (n+ 1 ) descomposiciones de base, a saber aquellas de / (0=/=n) y de 0! . Así, sí una descomposición de /! (/>0) es necesaria en el cálculo de un rango parcial, se calcula en la etapa de determinación de las descomposiciones intermedias a partir de / descomposiciones de base y'(1 =/=/) de con ^', - ^ ' . Inversamente, no se pueden prever sino las (n+ 1 ) descom posiciones de /I (0=/=n). Sí una descomposición de / (/>0) es necesaria en el cálculo de un rango parcial, se calcula en la etapa de determinación de las descomposiciones intermedias a partir de dos descomposiciones de base de /! y ( ) ! Y a partir de la relación: Se entiende entonces que la selección del juego de descomposiciones de base puede resultar ventajosamente de un compromiso entre la minimización de la memoria necesaria para el almacenamiento de las representaciones de estas descomposiciones de base y de la minimización de la complejidad de la etapa de determinación de las descomposiciones intermedias. Se describe anteriormente en la presente una representación de descomposiciones en el contexto de la invención. Como se indica más adelante, una descomposición (que sea de rango parcial , intermedio o de base) se define mediante un número m que da el número de factores primos a considerar, estos m factores primos y sus exponentes respectivos. Se proponen más adelante diferentes soluciones para representar las descomposiciones y almacenar las dadas para las descomposiciones de base. Representación destacada de los exponentes * Representación de factoriales /! (0=/=n) El número nn de factores primos que intervienen en la descomposición del valor /! aumenta con el número /. Una primera solución para representar la descomposición de /! (0=/=n) consiste en almacenar para cada valor de / (0=l=n) el número mn y los m/t exponentes de potencias de p¡ (1 = =m/i) . Se notará que los m/? exponentes de /! son nulos. En una variante más ventajosa, el juego de descomposiciones de base comparte el mismo número mnl de factores primos y se almacenan m„ i exponentes para cada descomposición de base, siendo nulos los exponentes de la descomposición de base de /I de índice superior a mn. Esta solución permite tener recurso a un cuadro de exponentes en previsión de un direccionamiento regular de este cuadro. Sin embargo, tal modalidad necesita un tamaño de memoria consiguiente. Este cuadro comprende x valores y el exponente e' se almacena en la dirección (mn I + ( )) de este cuadro, donde la notación (x, y) conduce al cajón de este cuadro en el renglón x y en la columna y. Bien entendido, se comprenderá que se pueden considerar otras convenciones. Así, en lugar de considerar un cuadro de dos dimensiones con m columnas y N renglones que comprenden entonces m x N cajones (o elementos) , se puede considerar un cuadro con una dimensión que tiene m x N elementos, el elemento de la dirección (x, y) del cuadro de dos dimensiones se encuentra entonces en la dirección mx x + y del cuatro de una dimensión. El exponente e'n almacenado en la dirección (/, ( -1 )) del cuadro de dos dimensiones está almacenado entonces en la dirección (m„ i x / + (/- 1 )) del cuadro de una dimensión. Por ejemplo, los exponentes de las descomposiciones de factoriales de números 0 a 8 pueden ser almacenados en el cuadro de dos dimensiones que comprende 36 elementos, compuesto de 4 columnas (columnas p¡ = 2, 3, 5, 7) de la Tabla 3b y de 9 renglones (renglones n = 0, ...8). Estos mismos exponentes pueden ser almacenados en un cuadro monodimensional D/l de 36 elementos, dados más adelante (anexo A-1 1). El elemento de la dirección ((x, y) del primer cuadro que es igual al elemento de la dirección OH*. 4X x+y. Se puede prever, como complemento, almacenar los (n+ 1 ) valores de m¡\ para poder reducir los cálculos de las descomposiciones intermedias que utilizan la descomposición de base de /!. * Representación de enteros I (1 =/=n) Para representar la descomposición de base / (1 =/=n) , se pueden prever también varias soluciones. Una primera solución consiste en almacenar para cada valor / el número m, y los m, exponentes de potencias de p¡ (1 =/=m,) de /. En una variante, se puede preferir almacenar tantos exponentes como para /! (m;, o mnl) exponentes. Las descomposiciones de base de / y /! comparten entonces el mismo número m. En otra variante, se puede explotar el hecho de que el número m'i de exponentes no nulos de la descomposición de / sea bajo. Por ejem plo, en la tabla 3a se muestra que este número m', es como máximo de 2 (para l=16). Así , es posible no almacenar sino este número y los valores correspondientes / de estos factores primos de potencia no nulos pues no son ya reconocidos implícitamente por la dirección del exponente correspondiente en el cuadro. * Representación de una descomposición diferente a una descomposición de base La representación de una descomposición intermedia depende de la representación de las descomposiciones de base a partir de las cuales es determinada. Igualmente, la representación de una descomposición de un rango parcial depende de la representación de las descomposiciones intermedias a partir de las cuales es determinada. * Almacenamiento de las descomposiciones de base Típicamente, se pueden ilustrar cuatro soluciones posibles de almacenamiento a título de ejemplo mediante las tablas 4a a 4d después en la presente para un código de permutación de dimensión 8 (n = 8) o cuatro (m8i = 4) números primos (2, 3, 5 y 7) son considerados. Estos ejemplos pueden ser aplicados al codificador 3GPP AMR-WB+ [3GPPTS26.3041).
Este codificador utiliza una cuantificación vectorial algebraica cuyo diccionario es una unión de los códigos de permutación de la red de Gosset RE8 de dimensión 8. Las tres primeras soluciones (tablas 4a-4c) representan y almacenan las descomposiciones de base de /! de la misma manera. Se prevé en efecto un almacenamiento de m y de mt! exponentes de las potencias de p¡ (1 = =m„) de /!. Son diferentes en la representación y el almacenamiento de las descomposiciones de base de /. La Tabla 4a muestra una primera solución que conduce al almacenamiento de m, y de mi exponentes de las potencias de p, (1 =/=m,/) de /I . La Tabla 4b muestra una segunda solución que conduce al almacenamiento de m» exponentes de las potencias de p¡ (1 =í=m„) de /!.
Tabla 4a: Primera solución para un almacenamiento de descomposición en potencias de números primos de / y /I y para un código de permutación de dimensión 8 (/ que va de 0 a 8) Tabla 4b : Seg unda solución para el almacenamiento de la descomposición en potencias de nú meros primos de / y /! y para u n código de permutación de dimensión 8 (/ q ue va de 0 a 8) La Tabla 4c más adelante muestra una tercera solución que cond uce al almacenamiento del número m'; de exponentes no nulos de las potencias de p, de /, de los Indices i correspondientes, asi como sus exponentes. En la tabla representada, para más claridad, estos son los factores primos p¡ que están indicados. 2 1 - - - 1 2 1 - - 1 3 1 1 - - 2 3 1 - - 1 4 3 1 - - 2 2 2 - - 1 5 3 1 1 - 3 5 1 - - 1 6 4 2 1 - 3 2 1 3 1 2 7 4 2 1 1 4 7 1 - - 1 8 7 2 1 1 4 2 3 - - 1 Tabla 4c: Tercera sol ución para el almacenam iento de la descomposición en potencias de números primos de / y /! y para u n cód igo de permutación de dimensión 8 (/ q ue va de 0 a 8) E n una cuarta solución (ilustrada por la Tabla 4d más adelante) , se representa el juego de descomposiciones de base mediante el número mn! y , para cada descom posición de base (/ o /!) , se almacenan mn! exponentes. La Tabla 4d es extracto de las cuatro colum nas (p, = 2, 3, 5 y 7) y de los renglones (n = 0 a 8) de las tablas 3a y 3b dadas anteriormente.
/! / / / P, 2 3 5 7 2 3 5 7 0 0 0 0 0 - - - - 1 0 0 0 0 0 0 0 0 2 1 0 0 0 1 0 0 0 3 1 1 0 0 0 1 0 0 4 3 1 0 0 2 0 0 0 5 3 1 1 0 0 0 1 0 6 4 2 1 0 1 1 0 0 7 4 2 1 1 0 0 0 1 8 7 2 1 1 3 0 0 0 Tabla 4c: Cuarta solución para el almacenamiento de la descomposición en potencias de números primos de / y /! y para un código de permutación de dimensión 8 (/ que va de 0 a 8) En el codificador TDAC que utiliza una cuantificación vectorial estadística de dimensión y resolución variables de dimensión máxima 15, se consideran seis (m^5^ = 6) números primos: 2, 3, 5, 7, 1 1 y 13. Las 6 columnas (p¡ = 2, 3, 5, 7, 1 1 y 13) y los 16 renglones (n = 0 a 15) de las Tablas 3a y 3b pueden asi ilustrar el almacenamiento del juego de representaciones de base para la cuarta solución. Representación compacta de los exponentes Se describe más adelante en la presente otra solución ventajosa que minimiza el almacenamiento y que consiste en representar de manera compacta los exponentes de una descomposición de base en un número limitado de palabras. En esta variante de representación de las descomposiciones de base, las descomposiciones intermedias y aquellas de los rangos parciales se representan también de modo compacto. Ventajosamente, esta solución minimiza también la complejidad de la determinación de estas descomposiciones, como se verá. * Representación compacta de las descomposiciones Se busca determinar, para cada factor primo p„ un limite superior ß, de valor máximo de su exponente en el numerador de los rangos parciales. Este límite da el número máximo de valores posibles del exponente de p„ sea ß? + 1. Al anotar b'„, el número entero de bits para representar de modo binario el valor (0, + 1), se tiene: o [x] indica el entero inmediatamente superior o igual a x([x]-1 <x=[x]). Los exponentes de la descomposición en factores primos de un término K que interviene en un rango parcial pueden ser representados de manera compacta por una palabra eK de S„ bits (Bu = ¿ ), siendo esa palabra eK tal que: í=l La notación "<<S° representa una diferencia a la izquierda de 8 bits.
Se debe notar que sí el número n es grande, es posible que B„ sea superior al número de bits B0 utilizado para representar los enteros (16, 32 o 40 bits). En este caso, los exponentes de la descomposición en factores primos de un entero K que interviene en G Son representados en la forma de M palabras enteras eK (m), 0=m=M (con, bien entendido, M>1). Ventajosamente, las M palabras pueden están formadas de la manera siguiente: • ?? (0) comprende los i0 primeros exponentes (exponentes de p¡ a pl0)' • e« (1) comprende los exponentes de ??.+? a pf «( ?: -£L-*1) o {B¡fl - B¡ i)<,B0=(BÍ+2 -B +l) • esta última relación puede ser generalizada para toda m, hasta componer la última palabra que comprende el exponente de >„,„,.
Se debe entender que se pueden ensayar otras variantes. Por ejemplo, una variante consiste en almacenar aparte el exponente de p1 f y aplicar el tratamiento más adelante a partir del exponente de p2. • Determinación del límite superior Los límites p\ pueden ser determinados de varias maneras.
Aprovechando las informaciones sobre el código de permutación (tamaño q del alfabeto, peso w' o=i=q), el valor máximo de cada exponente del numerador de un rango parcial puede ser determinado explícitamente. Si se utilizan varios códigos de permutación (eventualmente de dimensiones diferentes), se selecciona de preferencia, para cada exponente, el más grande de los valores máximos. La presente invención propone ventajosamente un tratamiento general para la determinación del límite superior en el cuadro de la enumeración de Schalkwijk. El tratamiento no aprovecha ninguna información a priori sobre los códigos de permutación utilizados además de la dimensión máxima. Se aprovecha simplemente la relación: max«e.(. . + eS'i ) < maxfc^ ) + max(e¡ ) = + max(<? ) Para seleccionar entonces ß, = £,'„.,,, + max(e,') . Ií.'<:fl Este tratamiento muy general está particularmente bien adaptado cuando se utiliza una gran variedad de códigos de permutación. La Tabla 5a da los limites superiores de los valores máximos de los exponentes en los numeradores de i 1 para las dimensiones 8 y 1 5. La Tabla 5b da el número de bits b'„ para representar estos exponentes para las dimensiones 8 y 15 así como su suma B„ (última columna). En la dimensión 8, el exponente del factor primo 2 está representado en 3 bits, los exponentes de otros factores primos (3, 5 y 7) que están representad os por 2 bits. En la dimensión 1 5, el exponente del factor primo 2 está representado por 4 bits, el exponente del factor primo 3 por 3 bits, los exponentes de otros factores pri mos (5, 7, 1 1 y 1 3) q ue están representados por 2 bits.
Tabla 5a: Límites superiores de los exponentes de numeradores para los códigos de permutación de dimensiones 8 y 15 Tabla 5b: Número de bits para representar los exponentes para los códigos de permutación de dimensiones 8 y 15 La Tabla 6a (respectivamente 6b) da la representación compacta de los exponentes de / y /i para la dimensión n igual a (respectivamente 5) .
Tabla 6a: Representación compacta de los exponentes para los códigos de permutación de dimensión 8 / 0 1 2 3 4 5 6 7 ß; - 0 1 16 2 128 17 512 ß?! 0 0 1 17 19 147 164 676 ß,? 8 9 1 0 1 1 12 13 14 1 5 e, 3 32 1 29 2048 18 8192 51 3 144 679 71 1 840 2888 2906 1 1098 1 161 1 1 1755 Tabla 6b: Representación compacta de los exponentes para los códigos de permutación de dimensión 15 A manera de ejemplo puramente ilustrativo, se buscará determinar la descomposición del entero / = 12 con la ayuda de la Tabla 6b. De preferencia, en la Tabla 6b, como la dimensión máxima de los códigos es n = 1 5, el exponente de "2" está representado por 4 bits, el de "3" por 3 bits y los otros factores primos 5, 7, 1 1 y 1 3 por 2 bits. En la tabla, en la columna / = 12, se lee su exponente compacto e12 = 18. Apoyándose en la lectura del cuadro a continuación, la representación binaria de 18 (= 16+2) por B15 = 1 5 es: 000 0000 0001 0010, sea 00 00 00 00 001 0010 al reagrupar los bits asociados a un mismo número primo.
Los 4 bits de pesos bajos (pesos i = 0 a 3) son el exponente del factor primo 2, sea: 0010 = 2, lo que significa que 2 es el exponente para afectar al número primo 2. Los 3 bits siguientes (pesos i = 4 a 6) son el exponente del factor primo 3, sea: 001 = 1 , lo que significa que 1 es el exponente para afectar al número primo 3. Los 2 bits siguientes (pesos i = 7 a 8) son el exponente del factor primo 5, sea: 00 = 0. Los 2 bits siguientes (pesos i = 9 a 10) son el exponente del factor primo 7, sea: 00 = 0. Los 2 bits siguientes (pesos i = 7 a 12) son el exponente del factor primo 1 1 , sea: 00 = 0. Los 2 bits siguientes (pesos i = 1 3 a 14) son el exponente del factor primo 13, sea: 00 = 0. El procedimiento de extracción consiste en ocultar los bits de pesos fuertes para recuperar el exponente del factor primo contenido en los bits de peso bajo, después en desplazar el exponente compacto del número de bits recuperados para pasar al exponente del factor primo siguiente. Así, en la dimensión 15, hay 6 exponentes para extraer comenzando por el exponente de 2. La representación binaria del exponente de 2 corresponde a los 4 bits de peso bajo de 18, sea 0 0 1 0 que corresponde a 2. Para recuperarlos, se ocultan los bits de peso fuerte de 18 con 15 (anotado 18 y 15), lo que equivale a: 24 - 1 = 1 1 1 1. Se obtiene ei 2 = 18 & (2<<4 - 1 ) = 2, lo que significa que 2 es el exponente para afectar al número primo 2.
Después se desplaza 18 de 4 bits hacia la derecha, se obtiene: 000 0000 0001 = 1 . La representación binaria del exponente de 3 corresponde a los 3 bits de peso bajo de 1 , sea 0 0 1 (= 1 ). Para recuperarlos, se ocultan los bits de peso fuerte de 1 con 7 (anotado 1 & 7 y que vale 23 - 1 = 1 1 1 ) . Se obtiene e\2 = 1 & (2<<3 - 1 ) = 1 , lo que significa que 1 es el exponente para afectar al número primo 3. Después se desplaza 1 de 2 bits hacia la derecha, se obtiene enseg uida: 0000 0000 = 0 para todos los otros bits de peso fuerte. Se deduce luego que las potencias de / = 12 son: - 2 para el número primo 2, y - 1 para el número primo 3, Sea I = 12 = 22 x 31 * Límite superior para el denominador Se supone aquí que, para cada factor primo, su exponente en el denominador de un rango parcial V es inferior o igual a su exponente en el numerador de V. Tal es el caso sí V es estrictamente positivo porque se tiene e. = ~ e'^.-, ) = 0 , sea entonces <?j\ .. = 'lh ) . En la práctica, con la fórmula de Schalkwijk y sí el valor ß'(„.^\ Es un límite superior del valor máximo ß? del exponente del denominador Pk (Pk = (n-1 ) ! si q> 1 ). Es suficiente entonces verificar la desigualdad < 2 " , lo que ya está hecho por el tratamiento que determina el valor de expuesto anteriormente. En los otros casos, se podrá buscar explícitamente ß', y calcular b'„ gracias al máximo de 3, y ß',. En el caso donde qf = 1 , se comprenderá que un sólo término de código de rango conocido (t = 0) interviene en el código y es por lo tanto inútil a priori para efectuar los cálculos de rango y las operaciones inversas correspondientes. Sin embargo, sí no se desea tratar aparte este caso particular, se puede prever siempre calcular el valor b'„ mediante el máximo de ß, y e'ni . La Tabla 7 a continuación ilustra este caso para n = 16.
Tabla 7: Cálculo del límite superior del numerador fi¡ y de b'ie ( 1 </<6) para los códigos de permutación de dimensión 16 Se describen ahora brevemente las capacidades de memorias necesarias para el almacenamiento de las descomposiciones de base. Independientemente de la solución seleccionada para la representación de las descomposiciones de base, el almacenamiento de las descomposiciones de base se efectúa en las tablas y se recurre entonces a un direccionamiento de estas tablas entonces de las operaciones de codificación y de decodificación del rango. SI la descomposición de 0 no es posible (y, además, no utilizada) , puede ser preferible almacenar los exponentes "artificiales" para la descomposición de 0 (por ejemplo 0 o 1 ), para simplificar el cálculo de la di rección. La Tabla 8 a continuación resume el tamaño de memoria necesario para el almacenamiento de datos relativos a las descomposiciones de base para las cinco soluciones presentadas para estos dos casos (almacenamiento o no de la descom posición artificial de 0) .
Tabla 8 : Memoria necesaria para almacenamiento de las descomposiciones de base En la quinta solución, se ha tenido en cuenta el almacenam iento (+m„i) de los números de bits b'„. Sin embargo, en la práctica , más bien que leer en una memoria, éstos serán "cableados de fábrica" (estando su valor fijado en un programa de cálculo sin ser declarado en calidad de variable) , como se verá en las modalidades más adelante. Parece entonces inútil almacenarlos en la práctica. La Tabla 9 proporciona la memoria necesaria para el almacenamiento de los datos relativos a los exponentes de la descomposición de estas cinco soluciones para nmax = 8 y 15 (con almacenamiento artificial de 0).
Tabla 9: Memoria requerida para el almacenamiento de las descomposiciones de base para los códigos de permutación de dimensiones 8 y 15 Se describe el almacenamiento de las potencias de factores primos. Aparte de las descomposiciones de base, la invención utiliza las potencias de factores primos para calcular el rango parcial a partir de su descomposición. Se puede calcular, a partir de una tabla de estos factores primos, sus potencias en tiempo real ("en línea"). De preferencia, las potencias de los números primos diferentes a 2 son precalculados y almacenados y sólo las potencias de 2 son calculadas en tiempo real. La Tabla 10a a continuación da las potencias de 3, 5 y 7 necesarias para un código de permutación de dimensión 8 (como las utilizadas en el codificador AMR-WB+). La Tabla 10b da las potencias de 3, 5, 7, 11 y 13 necesarias para los códigos de permutación permutación de dimensión máxima 15 (como las utilizadas en el codificador TOAC). 7 1 7 49 - Tabla 10a: Potencias de los factores primos para los códigos de permutación de dimensión 8 Tabla 10b: Potencias de factores primos para los códigos de permutación de dimensión 15. La variable Npfp designa aquí el número de potencias de factores primos a almacenar. Entonces, no se podrá almacenar sino el número necesario de potencias para cada factor primo. En una variante, se prefiere no disponer sino de una sola tabla de potencias que se puede direccionar regularmente, puede ser previsto almacenar, para cada factor primo, tantos valores como el número de potencias de p2 necesarias (p2 = 3). Para las potencias no utilizadas, se puede utilizar, bien entendido, un almacenamiento de valores artificiales tales como 1 o 0. Se describe ahora el cálculo del rango de una permutación para realizar una codificación de acuerdo con la invención. > Existen varias variantes de acuerdo con el juego de descomposiciones de base seleccionadas y su representación. Para mayor concisión, la exposición de las modalidades posibles a continuación está limitada al caso de la modalidad preferida para el conjunto de descomposiciones de base, con descomposiciones de factoriales de /! y /.
A continuación, la solución de representación destacada de los exponentes con exponentes por descomposición de base, que es el caso más general, se expone en primer lugar. Las variantes de representación destacada de los exponentes se describen en seguida. Es decir, se expone la solución de representación compacta de los exponentes de las descomposiciones de base, asi como algunas de sus variantes. Será aparente entonces que la invención se aplica perfectamente a un tratamiento de codificación del rango de una permutación. El algoritmo de Schalkwijk se retoma a continuación, como ejemplo de tratamiento de enumeración. Representación destacada de los exponentes de la descomposición Sea n la dimensión máxima de códigos de permutación utilizados, y m„\ El número de factores primos que intervienen en la descomposición de la magnitud n!. Se describe a continuación una primera modalidad de una codificación que utiliza una representación destacada de exponentes de la descomposición. Codificación de acuerdo con una primera modalidad Aquí, los exponentes de las descomposiciones de base de / y /! son almacenados de preferencia de acuerdo con la "cuarta" solución de la Tabla 4d anterior, con almacenamiento artificial para / = 0 en dos tablas monodimensionales indicadas respectivamente D, y D que tienen p?] x (n+1 ) elementos. Como se mencionó antes, se podrá considerar también las tablas dimensionales que tienen mnl columnas y (n+ 1 ) renglones. Los exponentes de / (respectivamente /!) que se almacenan regularmente (cada uno con m„ valores), las operaciones de lectura de los exponentes de una descomposición de base necesitan un cálculo de dirección en la tabla D, (respectivamente Dn). Para leer los exponentes de la descomposición de /! (respectivamente /) , es necesario señalar una dirección (/ x m„\) de la tabla Dn (respectivamente Di), y conducir así la dirección del exponente e /( (respectivamente e\), el exponente e2n (respectivamente e2,) que está en una dirección siguiente (/ x mn! + 1 ) y más generalmente el exponente e'n (respectivamente e'¡) que está en la dirección (/ x mn! + - 1 ). Como se mencionó anteriormente, en las tablas bidimensionales, el exponente e'n (o e'i) está en la dirección ((/;(/-1 )) (columna /-1 ) y renglón /). Se debe notar que sí no está previsto el almacenamiento artificial para / = 0, el cálculo de dirección en la tabla D¡ de las n descomposiciones de base de / (/>0) es: (/ - 1 ) x m„i. Iniciación • Se inician en cero los m„i exponentes de la descomposición intermedia de Pk (almacenados en una tabla P que tiene m„\ elementos que está de preferencia actualizada en cada posición, como se verá con referencia a la etapa C-3 a continuación). Así, las instrucciones son las siguientes: · Se inicia también en cero el rango f y los q pesos w k (almacenados en una tabla w que tiene q elementos que será actualizada en cada posición (etapa C-2 a continuación)) . Las instrucciones son las siguientes: - t = 0 - w[i] = 0, 0=i=q - k = n- 1 Repeticiones en el índice k Haciendo referencia a la Figura 5 para seguir la repetición en las n posiciones (con un ciclo en la variable k). La letra "C" en las notaciones de las etapas C-n de la Figura 5 designa el término "codificación". En la etapa C- 1 , se lee la variable dk. La etapa C-2 consiste de una actualización del elemento dk de la tabla w: w[dk] = w[dk] + 1 . La etapa C-3 es una actualización de los exponentes de la descomposición de Pk (tabla P), con, en particular: - una lectura de los m„i exponentes e»<\<i ) ^e l a descomposición de base w[oV] en la tabla D¡ a partir de la dirección mn, x w[dk] (etapa C-31 ), y - una actualización: P[i] = [ i] + e tl , para 1 =/'=n„i (etapaC-32). Así, para la realización de la etapa C-31 , el primer exponente de la descomposición de base w[dk] en la tabla Di, anotado , está en la dirección mnl x w[dk], el segundo, anotado en la dirección (mn\ x w[dk] + 1 ) , y así sucesivamente. Más generalmente, el exponente | estará en la dirección mnl x w[dk] + . Paralelamente, en la etapa C-4, se calcula Sk a partir de la relación habitual: La etapa C-5 es una prueba del valor de Sk. Sí Sk es nulo (flecha O) , lo que implica que el rango parcial ldkk es nulo (fórmula (7) anterior) y que el rango t no está modificado, el tratamiento se continúa por la etapa C-11 más adelante. Sino (flecha N con S* ? 0), el tratamiento se continua por la etapa C-6 en la cual se leen los ?7„, exponentes e's* de la descomposición de base Sfc en la tabla D, en la dirección mn( x Sk.
Paralelamente, la etapa C-7 consiste en leer los mn\ exponentes de la descomposición de base (?-1-fc) en la tabla Dn en la dirección (mn\ x (?-1-fc). Se indica que la etapa C-7 se efectúa sí la suma S* es no nula (salida N de la prueba C-5) de manera de evitar la lectura inútil en la tabla D sí, de todos modos, el rango /"** parcial es nulo. En la etapa C-8, los resultados de las diferentes lecturas de las tablas pueden ser reagrupados para calcular antes los exponentes m„i de la descomposición del rango parcial ldkk, de acuerdo con la relación: e',;-> - +< -P[i], para 1= =mn!. Finalmente, en la etapa C-9, se calcula el mismo rango parcial ldkk para la relación: Se recuerda que el término w[dk] es un peso necesariamente inferior o igual a la dimensión máxima n del código de permutación considerado. Igualmente, la suma de tales pesos permanece inferior a la dimensión máxima n y es igualmente, como se entiende, para (?-1-k). Las descomposiciones de w[dk], Sk y (n-1-k)\ están bien almacenadas en las tablas de descomposiciones de enteros o de los factoriales de enteros que van hasta la dimensión máxima n, como en la tabla 4d. A partir de la descomposición w[dk] almacenada en una tabla y de la descomposición de PJ determinada en el ciclo precedente (k-1) y guardado en memoria, se determina la descomposición de Pk. A manera de ejemplo puramente ilustrativo, las etapas del cálculo del rango parcial de la Figura 5, se considera un código de permutación de dimensión n=8 y q=4. En este ejemplo, los exponentes son almacenados en una tabla bidimensional de cuatro columnas y nueve renglones, que comprende por lo tanto 36 elementos. Puede extraerse entonces de la tabla 4d dada anteriormente donde se tiene p¡ = 2, 3, 5, 7 en columnas y / = 0 8 en renglones. En este ejemplo, se supone que en una posición precedente k=3, la tabla de pesos w es {1, 1, 0, 3} y entonces P3=1! 1 0! 3! = 6. La tabla P de los exponentes de la descomposición de P3 (=21x31x5°x7°) es entonces {1, 1. 0, 0}. En la posición k=2, para la etapa C- , se supone que se tiene lu d2=2. En este ejemplo, en la etapa C-2, se actualiza el elemento w[2] en el incremento de 1 (w[2] = 0+1 = 1). En la etapa C-31, se leen los cuatro exponentes de la descomposición de 1(=w[2]), sea 0, 0, 0, 0 (ver en la tabla 4d, 6B a 9a columnas y 3o renglón /=1). Después (etapa C-32), se actualiza la tabla P, se obtiene entonces P={1, 1, 0, 0}. En la etapa C-4, se calcula Sk: Sk = w[0] + w[1] = 1 + 1 = 2. Sk no es nulo entonces (prueba C-5). Se leen (etapa C-6) los cuatro exponentes de la descomposición de Sk (en referencia siempre a la tabla 4d, 6a a 9a columnas, pero 4° renglón 1=2): para pi = 2 (6a columna), el exponente es 1, y para = 3, 5, 7 (7a a 9a columnas), el exponente es nulo. Se leen (etapa C-7) los cuatro exponentes de la descomposición de 5! (que corresponden a (?-1-k)!) en referencia siempre a la tabla 4d, pero esta vez en las 2a a 5a columnas y 7o renglón /=5. Para Pi = 2 (2a columna), el exponente es 3. Para p2 = 3 (3a columna), el exponente esN 1 y para p3 = 5 (4a columna), el exponente es también 1. En cambio, para p4 = 7 (5a columna), el exponente es nulo. En la etapa C-8, se calculan los cuatro exponentes de la descomposición del rango parcial /* : • para p, = 2, e){i = ,_I-AW + , - P[1] = 3 + 1 - 1 = 3 • para p2 = 3, e)., = e¡n_ .ky - p[2] = 1 + 0 - 1 = 0 • para p3 = 5, e** = í?¿,_,_t), + e - P[3] = 1 + 0 - 0 = 1 • para p4 = 7, e*« = <?(,H-*)< + <? - P[4] = 0 + 0 - 0 = 0 En la etapa C-9, se calcula el rango parcial ldkk a partir de los exponentes de su descomposición: 23x3°x51x7°=40. Haciendo referencia otra vez a la Figura 5, se determina sólo el rango t global de la permutación mediante actualización (con adición del rango parcial ldkk encontrado en la etapa C-9) de acuerdo con la relación t = t + ldkk, en la etapa C-10. La etapa C-11 conduce en seguida a la disminución de la variable k (fc=/r-1) y la etapa C-12 es una prueba del valor de k para obtener o no el tratamiento. Así, sf k=0 (flecha O en la salida de la prueba C-12), se reiteran las etapas del tratamiento a partir de la primera etapa C-1, con un valor de k disminuido en una unidad. Si no (flecha N al salir de la prueba C- 12), el tratamiento se termina en la etapa de fin ("END"). Así, se comprenderá que la etapa C-9 anterior calcula un rango parcial a partir de su descomposición determinada en la etapa C-8, determinada ella misma a partir de tres descomposiciones intermedias: - (n-1 -/c) ! - S„, y - PH. La determinación de dos de entre ellas, (?- 1 -Jc) ! y Sk, efectuada en las etapas C-6 y C-7, consiste en una simple lectura en las tablas respectivas de las descomposiciones de base D, y D . La determinación de la tercera descomposición intermedia (la de PK) puede efectuarse también simplemente a partir de q descomposiciones de base de w[d]i en la tabla D de acuerdo con una relación del tipo: q -\ = ?e iW , l=i= nla...
Variantes inmediatas La etapa C-3 presenta una variante más bien ventajosa de determinación de esta descomposición intermedia. La descomposición intermedia de PK puede ser determinada en efecto a partir de una descomposición de base en la tabla D, y otra descomposición intermedia (la de Pk+t ) calculada para otro rango parcial (/"VH), por ejemplo el rango parcial precedente en la repetición de k. Más generalmente, en una variante de la invención, se puede deducir también una descomposición intermedia de por lo menos una descomposición intermedia determinada de manera precedente para por lo menos otro rango parcial.
Anteriormente, se ha efectuado el cálculo del rango para un ciclo de la última posición (k=n- 1 ) en la primera posición (fc=0) . Sin embargo, la invención se aplica también, como se entenderá, a un ciclo de la primera a la última posición. Es suficiente cambiar la fase de iniciación y adaptar las etapas C-2 y C-3 y su orden. Para este efecto, la tabla de los pesos w puede ser iniciada con los q pesos wd0. Después, para d que fluctúa entre 0 y q- 1 , se leen los m„i exponentes de la descomposición de w[d] en la tabla O/t, para calcular por adición acumulativa los mnl valores de la tabla de la descomposición intermedia (exponentes de la descomposición de P0) . La etapa C-3 interviene entonces después de la etapa C- 1 0 y antes de la etapa C-2. La descomposición intermedia de P se actualiza mediante sustracción de P[i] del exponente de la descomposición de base w[dk] [P[i] = P[i] - e'wf<jk], para 1 = =mnl). Después, la etapa C-2 puede ser conducida en disminución desde 1 al valor de w[dk] (w[di<] = w[dk] - 1 ) . La etapa C- 1 1 puede conducir al aumento de la variable IÍ de 1 y la etapa C- 1 2 prueba simplemente sí k = n. Se indica brevemente que, para los códigos de permutación de dimensión n variable, en lugar de efectuar mnmax\ operaciones, puede ser preferible leer m„\ al inicio para no efectuar las operaciones sino „\ veces. Variantes generales de la primera modalidad Más generalmente, la realización representada en la Figura 5 para una codificación en el contexto de la invención admite numerosas variantes. Así, en una primera variante, cada descomposición de base (de / o /!) contiene también el número mn. La lectura del número mn (0=l=n) presenta ventajas. En efecto, las etapas C-3 y C-6 a C- 10 ya no se efectúan m„¡ veces cada una, sino solamente: - mW[dk]t veces para la etapa C-3, - veces para la etapa C-6 y para la adición ß'(„.·, -» ! + e'sk de la etapa C-8, y - m(n^ .k) veces para las etapas C-7 y C-9 y para la sustracción = -!-*)· + 4 ~ ñ.i\ de la etapa C-8. S í , por otra parte, se ha almacenado también los valores m¡, no queda más que efectuar. - mw[dk] veces la etapa C-3, y - mSk veces la etapa C-6 y la adición de la etapa C-8. En otra variante de la codificación, se utiliza además el almacenamiento de los exponentes de la descomposición de base de / de acuerdo con la tercera solución (tabla 4c anterior) , la etapa C-3 puede ser efectuada para m'Sk valores. En la etapa C-8, en lugar de prever /r>(n-i -*)i adiciones y m(n. ¦, .,,), Sustracciones, el número de sustracciones a efectuar permanece m(/1- 1.*)i, pero solamente m'Sk adiciones son necesarias. En particular: = ,-,-.í; - ^ , para 1 =i=m(n.->.k) l • y eAl> = + ¿tJ> , para 1 =/=m'Sk En una tercera variante, en lugar de descom poner un rango parcial en tres términos (dos en el numerador y uno en el denominador) , se le descompone en dos términos donde uno es un cociente. Así , el rango parcial l"kk se descompone en los términos: - la suma Sk, («-!-*)! - y un cociente = Este cociente puede actualizarse mediante la relación siguiente: Así, más bien que determinar la descomposición de Rk a partir de qr+1 descomposiciones de base (las de (n-1-k) y de q w[dk]\ en la tabla Dn), se determina una descomposición intermedia de Rk a partir de la descomposición intermedia de R^,*^ y las descomposiciones de base de (n-*\-k) y de w[dk] (aquellas dos descomposiciones de base que están en la tabla Di), que se escribe: e'R¡ =e/f( +en'-\-k ~ew' -i ¦ Con relación a las variantes precedentes, en lugar de determinar y de almacenar la descomposición intermedia del denominador de ldkk (tabla P), se determina, después se almacena la descomposición intermedia del cociente Rk (en prevención a este efecto una tabla R). Se remplazan la iniciación de cero de la tabla P por aquella de la tabla R de los exponentes de esta relación. La etapa C-3 se vuelve una etapa de simple actualización de la tabla R (con una lectura de los exponentes de las descomposiciones de base de (?-?-k) y w[dk])), lo que se escribe: De acuerdo con la opción de almacenamiento, esta actualización puede hacerse con mnl adiciones y sustracciones o adiciones (respectivamente sustracciones), o aun m(n-1-fc) (respectivamente mw[dk] sustracciones), o solamente para los exponentes no nulos de w[dk] y (?-1-k): m'(n.i- adiciones y m'w dk] sustracciones. La etapa C-8 no com prende ya sino las adiciones del tipo: De acuerdo con la opción de almacenamiento, se cuentan entonces adiciones o adiciones, o aun msk adiciones, o solamente para los exponentes no nulos de S¾: m adiciones. Se notará que este producto R no es forzosamente entero, lo que sig nifica que los exponentes R[i] pueden ser negativos. E n esta variante, la descom posición de los factoriales en la codificación (luego de la tabla D/i) ya no es útil, de manera q ue un sim ple juego de (n+ 1 ) descom posiciones de base de enteros / (l=n) puede ser utilizado en no almacenar si no la tabla DI. Representación compacta de los exponentes de la descomposición Se describe ahora una segunda modalidad de una codificación , con base en una representación compacta de los exponentes de la descomposición . Los exponentes de las descomposiciones de base son representados de manera compacta y ya no más en forma destacada como se describe anteriormente con referencia a la pri mera modalidad . Para m ayor precisión, no se expone sino el caso donde la representación compacta de los exponentes cabe en un solo término. Estos términos son por lo tanto almacenados como se describe anteriormente, con almacenam iento de un término artificial para /=0 en dos tablas indicadas respectivamente D ', y D'n de (n+ 1 ) elementos. El cálculo de la dirección en estas dos tablas de un término que contiene los exponentes de una descomposición de base está dirigido entonces, para leer el término de la descomposición de /! (respectivamente /), es suficiente señalar a la dirección / de la tabla D'„ (respectivamente D't). Se remarcará que sin almacenamiento de un término artificial para /=0, el término que corresponde a una descomposición de base / (con />0) está en la dirección (M ) en la tabla D',. Codificación de acuerdo con una segunda modalidad I niciación • Se inicia en cero el término ep que contiene la representación compacta de m„i exponentes de la descomposición intermedia de Pk: ep = O.
El término ep será actualizado en cada posición (etapa CC-3 más adelante) . • Como anteriormente, se inicia también con el valor cero el rango t y los q pesos wdk almacenados en una tabla w que tiene q elementos que serán actualizados en cada posición (etapa CC-2 más adelante) . Las instrucciones correspondientes son: - f = 0 - w[i] = 0, 0=/'«7. - fc = n-1 . Repetición en las posiciones (ciclo sobre k) Se hace referencia ahora a la Figura 6 para seguir con las etapas principales de la codificación en esta segunda modalidad. Las letras "CC" en las notaciones de las etapas CC-n de la Figura 6 designan el término "codificación" con una "representación compacta" . En la etapa CC-1 , se lee la variable dk. La etapa CC- 12 consiste en una actualización de la variable w: w[dk] = w[dk] + 1. La etapa CC-3 es una actualización del término ep con, en particular: - en la etapa CC-31, las lectura del término ewldk] que contiene la representación compacta de los exponentes de la descomposición de w[dk) en la tabla D'¡ después, - en la etapa CC-32, la actualización propiamente dicha del término ep = ep + e„i . Paralelamente, en la etapa CC-4, se calcula la suma Sk: st - T ¾{< ]. La etapa siguiente CC-5 es una prueba del valor de S*. Sí la suma Sk es nula (flecha N), se disminuye directamente el Indice k. Sino (flecha O a la salida déla prueba de CC-5), el tratamiento se sigue por la lectura del término es* que contiene la representación compacta de los exponentes de la descomposición de Sk en la tabla D', en la etapa CC-6. Paralelamente (y ventajosamente de acuerdo con el resultado de la prueba CC-5), se lee el término que contiene la representación compacta de los exponentes de (n-1-/c) en la tabla D'n, en la etapa CC-7. En la etapa CC-8, se reagrupan los resultados expedidos en las diferentes etapas CC-3, CC-6, CC-7 para calcular el término que contiene la representación compacta de la descomposición del rango parcial ldkk, por dos operaciones simples (de preferencia una adición seguido por una sustracción): e ,i>. 55 e (n-i-kY. + eSt después =e/;., -ep La etapa CC-9 conduce a la extracción de m„i exponentes ¿ . de la descomposición del rango parcial ldkk y contenido en el término e ,. mediante el desplazamiento apropiado de los bits del término como se describe anteriormente. Para este efecto, se prevé un ciclo en el índice / que va de 1 a (iniciación de CC-91 de / a 1, prueba de CC-93 en el valor de e incremento de CC-94 tanto que no alcanza el valor de Se aplica entonces en cada ciclo de las instrucciones de CC-92 del tipo: i'1) =eJ &(0« i'2) e = í> »b Se recuerda que las notaciones "<<b" y ">>b" designan respectivamente un desplazamiento a la izquierda y un desplazamiento a la derecha de b bits. Por otra parte, la notación "&" designa el operador lógico bit a bit "ET". La instrucción i'1) consiste en recuperar los b'„ bits de peso bajo de e¡^. En la práctica, las máscaras correspondientes a la instrucción u((1<<b'n)-1)n son cableadas en fábrica. En otros términos, se aplica al inicio (para el índice de ciclo / igual a 1) una máscara ((1<<?'?)-1) de bits de peso fuerte de manera de no recuperar antes sino los b bits de peso bajo de e „ que da el exponente asociado e);« al primer factor primo p^ Después: - se desplazan los bits de e „, de b1n "a la derecha" para recuperar los bits de peso más fuerte que dan los exponentes asociados al factor primo siguiente p2 (máscara ((1<<>2„) - 1) de bits de peso fuerte, - se extrae entonces el exponente e¡j< , - después, se aplica un desplazamiento a la derecha de o2„ bits, y así sin interrupción hasta i = mnt. La etapa siguiente CC-10 consiste en calcular el rango parcial ldkk como sigue: Después, se adición a el rango parcial ldkk al rango total t (f = t+ldkk a la etapa CC-11). El valor del índice k es disminuido en la etapa siguiente CC-12 (k = k- 1) y, antes de recomenzar las etapas CC-4, CC-1, CC-7 y siguientes con este valor disminuido, se verifica en la prueba CC-13 sí el valor de k no ha alcanzado -1 (k<0), en cual caso se termina el tratamiento (etapa CC-14). Así, independientemente de la representación de las descomposiciones, la presente invención permite calcular eficazmente los rangos parciales. La etapa CC-10 conduce al cálculo de un rango parcial a partir de su descomposición determinada en las etapas precedentes CC-8 y CC-9. Se utilizan tres descomposiciones intermedias (de los términos (n-1-k) , Sk y Pk). La determinación de dos de entre ellas ((n-1-/c)! y S ) efectuadas en las etapas CC-6 y CC-7 consiste en una simple lectura de su representación compacta en las tablas D' y DV La determinación de la tercera descomposición intermedia (Pk) efectuada en la etapa CC-3 necesita también una lectura de la tabla D'¡ siguiente de una actualización de la representación compacta de esta descomposición intermedia mediante adición de la representación compacta de la descomposición de base que se ha ligado. Como se indica anteriormente con referencia a la primera modalidad, el almacenamiento de los valores mn {0=l=n) permite reducir la complejidad de las etapas CC-9 y CC-10. El ciclo de extracción de los exponentes de la descomposición de un rango parcial ldkk se efectúa en la m(n. k) vez en lugar de la mn t vez. Igualmente, la etapa CC-1 0 no comprende ya m„, multiplicaciones sino m(n . k) multiplicaciones. Se descri be ahora la decodificación del rango de una perm utación de acuerdo con la invención. Existen aun varias variantes de acuerdo con la solución de representación de las descomposiciones de base (destacada o compacta) .
Se describe después una primera moda lidad de la decodificación , homólog a a la primera modalidad descrita anteriormente para la codificación que utiliza la presentación destacada de las descom posiciones y su almacenamiento de acuerdo con la cuarta solución relativa a la tabla 4d dada anteriormente. Es aparente que la invención se aplica perfectamente a una decodificación del rango de una permutación tomando como ejem plo el algoritmo de Schalkwijk. Decodificación de acuerdo con una primera modalidad La decodificación que utiliza una representación destacada de los exponentes de la descomposición comienza de preferencia por una iniciación de datos como sigue. Iniciación • La tabla de valores w se inicia con los q pesos wd0 (w se actualiza al fin del ciclo en cada posición de la etapa 0- 1 9 que será descrita posteriormente) . Una instrucción apropiada puede ser del tipo: • Se calculan los m„i exponentes de la descomposición del térm i no P0 (almacenados en una tabla P que tiene elementos también actualizados en cada posición al fin del ciclo de cada posición en la etapa D-18 descrita después). Las instrucciones apropiadas pueden ser del tipo: • Ciclo de d = 0 a q-1 Lectura de m„t exponentes ß· de la descom posición de w"a\ en la tabla D„. Después P[i] = P[i] + e[ , , con 1 =/'=m„i • se inicia finalmente k = o. Ahora se hace referencia a la Figura 7 para seguir las etapas principales de la decodificación de acuerdo con la primera modalidad . La letra "D" en las notaciones de las etapas D-n de la Figura 7 designan el término "decodificación". Repetición en las n posiciones (ciclo en el índice k) La primera etapa D-1 consiste en una lectura de los mn exponentes e'(n-i -/,) i de la descomposición de (p-1-fc)! en la tabla D». La etapa siguiente D-2 fija los valores dk = 0 y ldkk = 0. Se procede enseguida a la búsqueda del primer valor dK del alfabeto de manera que w[dk] ? 0. Se prevé para este efecto una prueba D-3 que verifica si w[dk] = 0, en cuyo caso (flecha 0) se incrementa! valor de dK (dK = K+ I ) y se reitera la prueba D-3 hasta encontrar un valor w[dk] no nulo. Si tal valor ha sido encontrado (flecha N para w[dk] ? 0), la etapa siguiente es una prueba D-5 en el valor del rango t. Si el rango es nulo (flecha O a la salida de la prueba D-5), la realización de las etapas siguientes es inútil hasta la actualización de los exponentes de PK (etapa D-18). Sí el rango no es nulo (flecha N a la salida de la prueba D-5), el tratamiento se continúa por las siguientes etapas D-6 y D-7 en las cuales se fija respectivamente Sk = O y un valor intermedio lk a lk = / La etapa siguiente D-8 es un cálculo de actualización de la suma S* = Sk + w[dk]. Es seguida por la lectura de la tabla D, (etapa D-9) de los exponentes e'sk de la descomposición de la suma encontrada Sk. La etapa D-10 conduce el cálculo de los mn, exponentes e' de la descomposición del rango parcial, a partir de la relación: - P[i], con 1=/'=m„!. Los exponentes P[i], iniciados como se describe anteriormente, se actualizan en la etapa D-18 que será descrita más adelante, al final del ciclo corriente y para un ciclo siguiente. Una etapa D-11 conduce el cálculo del rango parcial: íf' Las tres etapas siguientes conducen a una prueba sobre el valor del rango total t, en comparación con el valor del rango parcial. Para hacer esto, en la etapa D-12, se incrementa el valor de dk {dk - d*+1) y la prueba D-13 es la siguiente: r - /"\=0? Sí se verifica la desigualdad (flecha O), se reiteran las etapas D-7 a D-13 con el nuevo valor de dk incrementado. Si no (flecha N), el tratamiento se continúa por la etapa D-14 de disminución del valor de d (d - dk - 1) para regresar al valor de d antes de la etapa D-12. Para este valor de dk, el rango parcial ldkk toma el valor intermedio lk antes citado (etapa D-15: /"**). Enseguida, se actualiza el rango f, el cual se convierte t = t-l"kk (etapa D-16), y se actualizan los exponentes de Pk (en la tabla P) por la lectura de los mni exponentes e'w (¡k] de la descomposición de w[dk] en la tabla D, (etapa D-17), seguido por la actualización propiamente dicha de los exponentes P[i] = P[i] - e'wldk] para 1=/=mnl (etapa D-18). Se disminuye enseguida el valor de w[dk] (w[dk] = w[dk] - 1: etapa D-19) y se incrementa el del índice k (k = /+1: etapa D-20) para preparar el ciclo siguiente. Antes de reciclar en la primera etapa D-1, se verifica que los n componentes no han sido tratados todos. Para hacer esto, se prevé la prueba D-21 en el valor de k, comparándola con n (k<n). En tanto que el índice k no alcance el valor n (flecha O a la salida de la prueba D-21), se recomienza el tratamiento en la etapa D-1 para un valor siguiente de k. Si no (flecha N a la salida de la prueba D-21), el tratamiento se termina en la etapa de fin D-22. La etapa D-11 apunta al cálculo de un rango parcial utilizando su descomposición determinada en la etapa D-10 a partir de tres descomposiciones intermedias de los términos respectivos (n-1-/c)!, Sk y Pk. Las determinaciones de los de entre ellas ((?-1-fc)! y Sk) efectuadas en las etapas Dn y Dt. La determinación de la tercera descomposición intermedia (Pk) efectuada en la etapa D-18 se efectúa también mediante una lectura de la tabla D¡ (etapa D-17) seguida por una actualización por los exponentes de esta descomposición intermedia por sustracción de los exponentes de la descomposición de base relacionada (etapa D-18). La iniciación descrita anteriormente de esta descomposición intermedia necesita q lecturas de la tabla D¡, Seguida por una actualización por los exponentes de esta descomposición intermedia por adición de los exponentes de las q descomposiciones de base relacionadas. Como para la codificación descrita anteriormente, el tratamiento de la Figura 7 admite las variantes que permiten, llegado el caso, reducir la complejidad de ciertas etapas.
Una variante que consiste en utilizar los exponentes del producto Rk (como se describe anteriormente) es particularmente interesante. En efecto, en el tratamiento de decodificación descrito anteriormente con referencia a la Figura 7, se calcula para una posición dada k, para varios valores de d. Para cada valor de o* probado, las otras variantes necesitan para cada exponente una sustracción y una adición = e[„.}.tv. ~ eP'¡ + ^ ).
Sin embargo, la variante que utiliza los exponentes del producto Rk no requiere más que una adición ( e' . = R[i\ + es! ) pues solos la suma Sk y sus exponentes e'Sk varían en función de d para una posición k dada. Decodificación de acuerdo con una segunda modalidad Se describe a continuación, en referencia ahora a la Figura 8, un ejemplo de cómo llevar a cabo una decodificación que utiliza la representación compacta de las descomposiciones. Previamente, se prevé una iniciación de datos como sigue. Iniciación • Se hace referencia en primer lugar a la tabla w que tiene q elementos para determinar los términos w[¡] = w'0 para 0=i=q. • Se calcula el término ep que contiene la representación compacta de los m„[ Exponentes de la descomposición de Pk. Para hacer esto: • se fija ep = 0. • y se prevé un ciclo de d = 0 a g- 1 : ° con lectura del término e conteniendo la representación compacta de los w„\ exponentes de ? >! en la tabla D ° y actualizar ep = et, +e . • Se fija en seguida k - 0.
Repetición de las n posiciones (ciclo de k) Las letras "DC en las notaciones de las etapas DC-n de la Figura 8 designan el término "decodificación" con una "representación compacta". La etapa DC-1 consiste en leer el término e(n. .k)i Que contiene la representación compacta de los mni exponentes del término (p-1-fr)! en la tabla D'II- Las etapas DC-2 a DC-8 son similares a las etapas D-2 a D-8 descritas anteriormente con referencia a la Figura 7. En cambio, en la etapa DC-9, se lee el término eSk que contiene la representación compacta de los mnl exponentes de la suma S* en la tabla D'i. Después, en la etapa DC-10, se calcula el término que contiene la representación compacta de los exponentes del rango parcial l kk, de preferencia como sigue: e,¿. = *,„-¦- o- + Sm puis e =e;J, -eP La etapa general DC-11 consiste de manera global en una extracción de los exponentes del rango parcial /" . Para este efecto, se prevé: - un ciclo en /' (1=/=m,i) (Iniciación de i=1 en la etapa DC-111 y después la extracción del exponente descrito más adelante (etapa DC- 112), comparación (prueba DC-113) del índice de ciclo i del valor mn\ Con incremento del índice i (etapa DC-114) mientras que no se haya obtenido el valor mnl). - Extracción del exponente e'rf, (etapa DC-112): Representado en los bits de peso bajo del exponente e' compacto 'i mediante ocultación de los bits de pesos fuertes de el dji mediante la máscara ((1«fc'„)-1): =eJ¿l &((?«?;)-?) Este enmascaramiento que es seguido de un desplazamiento a la derecha de b'n bits del exponente compacto e : Esta etapa general DC-11 es similar a la etapa general CC-9 de la Figura 6 para la codificación. Las etapas DC-12 a DC-17 son, en cuanto a ellas, similares a las etapas D-11 a D-16 descritas anteriormente en referencia a la Figura 7 propia para la decodificación en representación destacada. La actualización de los exponentes de Pk (tabla P) de la etapa general DC-18 se hace, en cambio, en la etapa DC-181, al leer el término eW[dk) que contiene la representación compacta de los exponentes de w[dk] en la tabla D'i y la actualización propiamente dicha de los exponentes de Pk (ep = ep - e*^*]) se efectúa en seguida de la etapa DC-182. Después, las etapas DC-19 a DC-22 son similares a las etapas D-19 a D-22 de la Figura 7 propia para la decodificación que utiliza una descomposición destacada. Se describen ahora las diferentes ventajas que ofrecen las variantes expuestas anteriormente. Las variantes de la primera modalidad con representación destacada, que utilizan las tablas de m» (y/o m, o m'¡), comprenden menos operaciones de adiciones/sustracciones que la modalidad principal que no utiliza sino la tabla de valores mnt. En este caso, la ganancia en complejidad es importante sobre todo para las últimas posiciones (es decir, cuando m{n.k)l o m¡ son muy inferiores a m„i) Sin embargo, esta ganancia en complejidad es acompañada de un crecimiento de la complejidad de las etapas de lectura en memoria (etapas C-31 , C-6 y C-7) . Sf el número de valores a leer es menor, el cálculo de la dirección, en cambio, es más complicado. Un compromiso interesante consiste entonces en almacenar regularmente las descomposiciones de base (con mn! exponentes) para facilitar el direccionamiento de las tablas D¡ y D„ y de almacenar entonces los valores En una tabla Dm de (n+1 ) elementos. Conviene entonces almacenar también los valores m, para reducir eficazmente el número de adiciones/sustracciones. No obstante, esta medida se acompaña necesariamente de una lectura de valores ms* (respectivamente mw[dk}) , antes de las etapas C-6 y C-9 (respectivamente C-3 y D- 19) mientras que el valor n?(„.fc)i no debe ser relacionado sino al comienzo de cada repetición de k. Por otra parte, las ventajas proporcionadas por la representación compacta con respecto a la representación destacada son las siguientes: - la etapa de actualización de la tabla P no comprende ya ahora sino una sola adición (respectivamente sustracción) para la codificación (respectivamente a la decodificación), - El cálculo del exponente no necesita también sino una sola adición y una sola sustracción, - Los cálculos de dirección para la lectura de los términos eK son directos y no necesitan, para cada valor K, sino un solo acceso y lectura de memoria. Por el contrario, la representación compacta necesita una extracción d e los exponentes del rango parcial I k contenido en el térmi no Q , (etapas CC-9 y DC- 1 1 ) . Si n embargo, esta operación no es forzosamente u n inconveniente para el cálculo del rango parcial a partir de su descom posición en factores primos, como se verá más adelante. Se describen a continuación las ventajas de tales variantes para el cálculo del rango parcial a partir de su descomposición en factores primos.
La complejidad de la etapa de cálculo del producto de las potencias de los factores primos, en el contexto de las etapas C-9 y CC- 1 0 (respectivamente D- 1 1 y DC- 1 2) en la codificación (respectivamente en l a decodificación) aumenta de manera importante con el número de factores, ig ual si permanece m uy inferior a la complejidad de la división en el contexto de la técnica anterior. Ahora bien, en la práctica, muchos de los exponentes de la descomposición de un rango parcial son nulos y por lo tanto las potencias correspondientes son iguales a 1 . Frecuentemente, todos los exponentes son nulos o los primeros exponentes solamente no son nulos. Por lo tanto es útil poder detectar y no guarda r sino las potencias de exponentes no nulos. En la representación detallada , está detección no se puede efectuar sino media nte pruebas (una por factor primo) . Ventajosamente, la representación compacta permite probar con una sola prueba sí todos los exponentes son n ulos (sí e ^ = 0) y en este caso , el rango V = 1 . Además, la detección del bit de peso fuerte de et- permite obtener el índice del factor primo m ás grande de exponente no nulo en el rango V y reducir el número de repeticiones del ciclo de la etapa CC-9 (respectivamente DC-1 1 ) en la codificación (respectivamente en la decodificación). Se debe notar, sin embargo, que la detección de los exponentes no nulos, en representación detallada como en representación compacta , aumenta la complejidad. Sí todos los exponentes son no nulos, la complejidad de la multiplicación de las potencias de los factores primos sigue siendo la misma y se agrega entonces a esa complejidad del procedimiento de detección de los exponentes no nulos. Asi , en otra variante, la detección de los exponentes nulos puede ser conducida únicamente sí el número posible de factores primos se vuelve grande (k muy inferior a n) y que la complejidad de la multiplicación de sus potencias sea superior a la complejidad del procedimiento de detección. Para hacer esto, los ciclos diferentes de acuerdo con las posiciones pueden ser previstos, lo mismo sí está implementación se efectúa en detrimento de un crecimiento de los renglones de instrucción. También es posible combinar las representaciones destacada y compacta. Para las últimas posiciones (el valor m„ que es bajo), el cálculo de las descomposiciones intermedias necesita pocas operaciones. Se favorece la entonces la utilización de una representación destacada que no necesita extracción de los exponentes de un rango parcial. En cambio, para las primeras posiciones, se favorecerá más bien la utilización de una representación compacta. Se describen ahora algunos ejemplos de realización en los codificadores/decodificadores existentes. Codificador 3GPP A R-WB+ El codificador 3GPP A R-WB+ (norma [3GPPTS26.304] utiliza una cuantificación de la que la biblioteca es una unión de los códigos de permutación de la red de Gosset RE8 de dimensión 8. La técnica TCX corresponde a una codificación predictiva por transformada. Más precisamente, se trata de un método de codificación para transformada FFT aplicada después de filtración de ponderación perceptual . En la norma [3GPPTS26.304] , el espectro de FFT obtenido es recortado en sub-bandas (o sub-vectores) de dimensión n = 8, estos sub-vectores se codifican por separado. La cuantificación de sub-vectores utiliza la red regular de puntos RE8. Las enciclopedias de cuantificación en dimensión 8 están compuestas por una unión de códigos de permutación de tipo I procedentes de la red de puntos RE8. En el codificador TCX de acuerdo con la norma [3GPPTS26.3041, cada código de permutación corresponde a un vector líder firmado dado en dimensión n = 8. RR el índice de cuantificación de un punto de la red RE8 se calcula mediante una fórmula del tipo: Indice = desviación de cardinalidad + rango de la permutación El rango se calcula mediante la fórmula de Schalkwijk mientras que la desviación de cardinalidad se tabula. Sin embargo, estos líderes firmados están representados por intermedio de sus líderes absolutos con el fin de optimizar el almacenamiento y la búsqueda en los códigos de permutaciones. La lista de los líderes absolutos asociados se encuentra en la referencia: "Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s" por Ragot S., Bessette B. , Lefebvre R. , en Proc. ICASSP, vol. 1 , mayo 2004, pp. 501 -4. Para ilustrar las diferentes variantes de la invención, se presentan a continuación tres ejemplos de realización. Los dos primeros ejemplos de realización conciernen al cálculo del rango de una permutación (codificación) , una que utiliza una representación destacada de las descom posiciones y la otra una representación compacta. En estos ejemplos de realización a continuación y los anexos correspondientes, las tablas R y P están indexadas de R[0] a R[m„r '\ ] y de P[0] a P[mnl-1 ] (y no de 1 a m„i como se describe a manera de ejemplo anteriormente), y esto, sin ninguna incidencia particular en el tratamiento o para el cálculo del rango. Primer ejemplo de realización (codificación) En esta modalidad , se utiliza una representación destacada de las descomposiciones de base. Se almacenan sus exponentes en dos tablas de 36 elementos (=(8x1 )x4) . Se trata de tablas dadas en el anexo A- e indicadas D, [36] (que contienen los exponentes de las descomposiciones de los enteros / (0=/=8), pero con almacenamiento de una descomposición artificial para 0) y D,¡ [36] (que contienen los exponentes de las descomposiciones de sus factoriales). Se almacenan también lastres tablas de potencias de 3, 5 y 7: Pow3[4] = {1 , 3, 9, 27}; Pow5[3] = {1 , 5, 25}; Pow7[3] = {1 , 7, 49}; En esta modalidad, la descomposición de un rango parcial se determina a partir de dos descomposiciones intermedias, una que es la descomposición de base del entero Sk y la otra que es la descomposición intermedia del cociente: _ ü- k)\ Kt ? ') Como se indicó anteriormente, más bien que determinar la descomposición intermedia de Rk a partir de descomposiciones de base correspondientes a (q+ 1 ) descomposiciones de base de (7-k) ! y se determina esta descomposición intermedia a partir de la descomposición intermedia de Rk+i y de las dos descomposiciones de base de (7-k) y de wd<k)k. Los cuatro exponentes de esta descomposición intermedia son almacenados en una tabla R.
Tabla 11 : máximo de m, o de m;, para las descomposiciones de los términos de un rango parcial en la posición k y para los códigos de permutación de dimensión 8 La invención aprovecha el conocimiento de m{7.k) í y de los máximos de y de irisa indicados para cada posición en la Tabla 1 1 anterior para no calcular los exponentes de los factores primos de índices más grandes que estos límites. El tratamiento correspondiente se da en el anexo A-12. Se nota que el ciclo en las posiciones está destacado. Se nota también que el exponente del factor primo p¡ del cociente está almacenado en el elemento R[i-1 ] de la tabla R de 4 elementos. Segundo ejemplo de realización (codificación) En una variante con el codificador 3GPP AM R-WB+, las descomposiciones de base están representadas de manera compacta. Se almacenan los términos que contienen sus exponentes en dos tablas de 9 elementos (=(8+ 1 )). Haciendo referencia al anexo A-21 , la tabla D', contiene los términos para las descomposiciones de los enteros / (0=/=8) (pero con almacenamiento artificial de la descomposición para / = 0) y la tabla D'n contiene los términos para las descomposiciones de sus factoriales. Se almacenan también las potencias de 3, 5 y 7 en una tabla Pow[1 2] de 12 elementos (con almacenamiento artificial de 0 para las potencias no utilizadas). La descomposición de un rango parcial se determina a partir de tres descomposiciones intermedias, dos que son las descomposiciones de base del entero Sk y del factorial (7-k) \ y la tercera que es una descomposición intermedia del denominador del rango parcial: Como se indicó anteriormente, más bien que determinar la descomposición intermedia de Pk a partir de q descomposiciones de base de (w'*!),^ se determina esta descomposición a partir de la descomposición intermedia de - El término compacto que contiene los cuatro exponentes de esta descomposición intermedia está indicado "eP" en el anexo A-22. Además, se indica "el" al término compacto que contiene los cuatro exponentes de la descomposición de un rango parcial. Ahora se aprovecha el conocimiento de mi7.k) í para no extraer sino m(7-fc)! exponentes del término compacto que representa la descomposición de un rango parcial. El tratamiento correspondiente forma el objeto del anexo A-22. ahí todavía, el ciclo en las posiciones está en explosión. Tercer Ejemplo de Realización (decodificación) El tercer ejemplo de realización trata de la decodificación del rango de una permutación , en codificación 3GPP AM R-WB+ . Se utiliza de preferencia una representación en explosión de las descomposiciones de base como en el primer ejemplo de realización y una descomposición del rango parcial en tres términos como en el segundo ejemplo de realización. Sin embargo, el ciclo en las posiciones no está en explosión. Como se indica anteriormente, antes de determinar la descomposición intermedia de Pk a partir de descomposiciones de base, se la determina a partir de una descomposición intermedia de Pk-1 y de la descomposición de base de wdkk. Los cuatro exponentes de esta descomposición intermedia son almacenados en una tabla P. Igualmente, a partir de la descomposición intermedia de Pk y de la descomposición de base de (7-k) !, Se calcula otra descomposición intermedia (la del cociente) en la que los exponentes son almacenados en una tabla R. El tratamiento correspondiente es el objeto del anexo A-3. Se nota que el exponente del factor primo p¡ del cociente (respectivamente del producto) se almacena en el elemento R[i-1 ] (respectivamente P[i-1 ]) de cuatro elementos. Así, el primer ejemplo más adelante en la presente utiliza una descomposición del rango parcial en dos términos (de los cuales un cociente), los dos otros ejemplos utilizan una descomposición en tres términos (dos para el numerador y uno para el denominador) . El modo para la decodificación no utiliza sino m8,(=4) términos mientras que los dos modos para la codificación utilizan un tratamiento separado de las posiciones para aprovechar los m„ o m¡ términos que no son manifestados sí no inscritos "en duro" en el algoritmo en explosión del ciclo en las 8 posiciones de un punto de la red de Gosset. Ejemplo de realización para el codificador TDAC Un último ejemplo de realización involucra el codificador frecuencial perceptual TDAC de la solicitante utilizado para codificar las señales de audio digitales muestreadas a 16 kHz (banda ensanchada), cuyo principio está descrito más adelante. El codificador de TDAC utiliza una cuantificación vectorial estadística con dimensión y resolución variables de dimensión máxima 15. En el caso de códigos de permutación de la red regular de puntos RE8 de dimensión 8, la invención permite reducir esencialmente la complejidad . Por el contrario, en el caso del codificador TDAC, que utiliza códigos de permutación de dimensión superior a 12, la invención se verifica muy ventajosamente pues permite no solamente la reducción de la complejidad sino también una realización del codificador en los procesadores en coma fija en donde la precisión máxima está limitada a enteros de 32 bits no firmados. Sin la invención, tal realización seria extremadamente compleja. El principio de este codificador es el siguiente. Una señal de audio limitada en banda de 7 kHz Se muestrea a 16 kHz, se recorta en tramos de 320 muestras (20 ms). Se aplica una transformada en coseno discreto modificado (o "M DCT") en los bloques de la señal de entrada de 640 muestras con una recuperación de 50% (la que corresponde una restauración del análisis de M DCT todos los 20 ms). Se limita el espectro a 7225 Hz fijando en cero los 31 últimos coeficientes (solos cuando los 289 primeros coeficientes son diferentes de 0). Se determina una curva de enmascaramiento a partir de este espectro y todos los coeficientes enmascarados se ponen en cero. El espectro está dividido en 32 bandas de longitudes desiguales. Las bandas eventuales enmascaradas son determinadas en función de los coeficientes transformados de las señales. Para cada banda del espectro, se calcula la energía de los coeficientes M DCT (para evaluar los factores de escala) . Los 32 factores de escala constituyen la envoltura espectral de la señal que se cuantifica, se codifica y se trasmite enseguida en la trama. La ubicación dinámica de los bits se basa en una curva de enmascaramiento con banda calculada a partir de la versión decuantificada de la envoltura espectral, de manera de obtener una compatibilidad entre la ubicación binaria del codificador y del decodificador. Los coeficientes MDCT normalizados en cada banda se cuantifican enseguida con los cuantificadores vectoriales que utilizan las bibliotecas entrelazadas en tamaño, las bibliotecas que están compuestas de una unión de códigos de permutación del tipo II.
Finalmente, las informaciones sobre el tono y el habla así como la envoltura espectral y los coeficientes codificados se multiplican y transmiten en trama. El ejemplo de realización para el cálculo del rango de una permutación (codificación) utiliza aquí una representación compacta de descomposiciones. La dimensión de los códigos de permutación utilizada que es variable, el ciclo en las posiciones no está en explosión. Este modo de realización ilustra un procedimiento de detección de exponentes no nulos de la descomposición de un rango parcial. Aquí , las descomposiciones de base están representadas de manera compacta. Se almacenan los términos que contienen sus exponentes en dos tablas de 16 elementos (=(15+ 1 )). En el anexo B-1 , la tabla D', contiene los términos para las descomposiciones de los enteros (0=/=15) y la tabla D'„ contiene los términos para las descomposiciones de sus factoriales. Se almacenan también las potencias de 3 en una tabla de ocho elementos (indicada Pow3) y tas potencias de 5, 7, 1 1 y 13 en una tabla (indicada Pow) de 20 elementos (con almacenamiento artificial de 0 para las potencias no utilizadas). El tratamiento correspondiente se transcribe otra vez en el anexo B-2. Bien entendida, la presente invención no se limita a las formas de realización descritas más adelante a título de ejemplo; se extiende a otras variantes. En el conocimiento de la solicitante, la presente invención consiste en la primera utilización de las descomposiciones en potencias de factores primos en los códigos de permutación. Esta utilización es, por lo tanto, particularmente ventajosa puesto que los cálculos de expresiones combinatorias son previstos, como en la cuantificación vectorial con códigos de permutación. Así, de manera general, la presente invención visualiza esta utilización de las descomposiciones en potencias de factores primos para toda expresión combinatoria, misma diferente de un rango de una permutación, en codificación/decodificación por uno o los códigos de permutación. La presente invención encuentra una aplicación ventajosa en codificación/decodificación de señales de palabra, por ejemplo en las terminales de telefonía particularmente celular. Sin embargo, se aplica a la codificación/decodificación de señales de todo tipo, particularmente de señales de imagen o vídeo así como en modulación codificada. La presente invención visualiza también un programa informático destinado a ser almacenado en la memoria de un dispositivo de codificación/decodificación de señales digitales, utilizando códigos de permutaciones. Este programa lleva entonces las instrucciones para efectuar las etapas del procedimiento en el contexto de la invención . Típicamente, las Figuras 4 a 8 descritas más adelante pueden corresponder a los organigramas de algoritmos que pueden comprender tal programa. La presente invención visualiza también un dispositivo de codificación/decodificación de señales digitales, utilizando códigos de permutaciones, y que comprenden, con referencia a la Figura 9: - una unidad de memoria MEM para almacenar las instrucciones de un programa informático del tipo antes mencionado, así como de representaciones pre-registradas de descomposiciones de números enteros seleccionados, y - Un módulo de cálculo PROC que accede a esta unidad de memoria MEM para efectuar el procedimiento en el contexto de la invención. Estos medios MEM, PROC pueden ser previstos: • para dar el rango f de una permutación a partir del vector-código y seleccionado (flechas en líneas sólidas de la Figura 9): o en un modo de indexación de un codificador de fuente, o o en un módulo de indexación de un decodificador de canal, • o para dar el vector-código y para reconstruir a partir del rango r de una permutación (flechas en lineas punteadas de la Figura 9): o en un módulo de decodificación de un decodificador de fuente, o o en un modo de codificación de un codificador de canal. Bien entendidas, las representaciones prerregistradas en la memoria MEM pueden estar en forma de contenidos de direcciones (representación en explosión) o en la forma de términos de bits (representación compacta). Anexos A-11 D,[36] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 , 0, 0, 0, O, 1, O, O, 2, O, O, O, 0, O, 1, O, 1. 1, O, O, 0.0, 0, 1, 3, 0, 0, 0}; D„[36] = { 0, 0, 0, 0, /* 0! */ 0, 0, 0, 0, ?! */ 1, 0, 0, 0, /* 2! */ 1, 1, 0, 0, /* 3! */ 3, 1, 0, 0, /* 4! */ 3, 1, 1, 0, /· 5! */ 4, 2, 1, 0, /* 6! ·/ 4, 2, 1, 1, /* 7! */ 7, 2, 1, 1, /* 8! */}; A-12 Iniciación: • t = 0 · w[i] = O, 0=i=q • R[0] = O Tratamiento de las posiciones ' Posición K = 7: o d = d[7]; w[d7] = 1 · Posición K = 6: o d = d[6]; w[d] = w[d] + 1 o Si (d = d7) entonces R[0] = 1 Si no si (d>d7) r = 1 • Posición K = 5: o d = d[5]; w[d] = w[d] + 1 o R[0] = R[0] + D,[4*2] - D,[4*w[d]] o R[1] = -D,[4*w[d] + 1] o S = 0; ciclo dey = 0 a d- 1: S = S + o Probar si S>0; si es: · i2 = R[0] + D,[4*S] ¦ t = f + (1«i2) • Posiciones k = 4 después 3: o d = d[k]; w[d] = w[d] + 1 o R[0] = f?[0] + D,[4*(7-k)] - D,[4*iv[d]] o ?[1] = /?[1] + D,[4*(7-k) + 1] - D,[4*w[d] + 1] o S = 0; ciclo de/= 0 a d- 1: S = S + w[j] o Probar si S>0; si es: ¦ i2 = R[0] + D,[4*S] ¦ t = t + pow3[i3]*(1«¡2) • R[2) = D,[4*w[dl + 2] • Posiciones k = 2 después 1: o R[0] = R[0] + D,l4*(7-k)] - D,[4*w[d]] o R[1] = R[1] + D,[4*(7-k) + 1] - D,[4*wtd] + 1] o R[2] = R[2] + D,[4*(7-k) + 2] - D,[4*w[d] + 2] o S - 0; ciclo dey'= 0 a d- 1: S = S + w[j] o Probar si S>0; si es: • i2 = R[0] + D,[4*S] - ¡3 = R[1] + D,[4*S + 1] • ¡5 = R[2] + D,[4*S + 2] • r = t + pow5[i5]*(1«¡2) • R[3] = D,[4*w[d] + 3] • Posición k = 0. o d = d[0]; w[d] = w[ó] + 1 o [1] = R[1] + D,[4*7-k] - D,[4*w[d] + 1] o R[2] = R[2] + D,[4*7+ 2] - D,[4*iv[d] + 2] o R[3] = R[3] + D,[4*7+3] - D,[A*w[á] + 3] o S = 0; ciclo de y = 0 a cf - 1 : S = S + w[j] o Probar si S>0; si es: ¦ i2 = R[0] + D,[4*S] > i3 = R[1] + D,[4*S + 1] • ¡5 = R[2] + D/[4*S + 2] ¦ i7 = R[3] + D,[4*S + 3] ¦ r = r + pow7[i7]*pow5[¡5]*pow3[i3]*(1«¡2) A-21 D'i = {0, 0, 1, 8, 2, 32, 9, 128, 3} D'„ = {0, 0, 1, 9, 11, 43, 52, 180, 183} Pow[12l = { 1, 3, 9, 27, 1, 5, 25, O, 1. 7, 49, 0}; A-22 Iniciación: • t = 0 • w[i] = 0, 0=i=q • eP = 0 Tratamiento de las posiciones Posición k = 7: o d7 = d[7]; w[d7] = 1 Posición k = 6: o d = d[6]; w[d] = w[d] + 1 o Si (d = d7) entonces eP = 1 Si no si (d>d7) t = 1 Posición k = 5: o d = d[5J; w[d] = w[dj + 1 o eP = eP + D',[w[d]] o S = 0; ciclo dej' = 0 a d - 1: S = S + w\J] o Probar si S>0; si es: ¦ ¡2 = D'„[2] + D'„[S) ¦ i2 = iP-eP ¦ t = t + (1«i2) • Posiciones k = 4 después 3: o d = d[k]; w[d] = w[d] + 1 o eP = eP + D',[w[d]] S = 0; ciclo de y = 0 a o* - 1 : S = S + w[j] Probar si S>0; si es: ¦ el = D'„[(7-k)] + D',[S] • el = el-eP ¦ i2 = el & (0x7) ¦ ¡3 = el >>3 • f = t + pow[i3]*(K<i2) Posiciones k = 2 después 1: d = d[k w[d]] = w[ó) + 1 eP = eP + D',[iv[d]] S = 0; ciclo de = 0 a d- 1: S = S + w[j) Probar si S>0; si es: ¦ el = D'„[(7-k)] + D',[S] • el = el-eP • i2 = el & (0x7) - el = el »3 • ¡3 = el & (0x3) - el = el »2 - i5 = el & (0x3) ¦ t = r + pow[4+i5]*po [i3]*(1<<¡2) Posiciones k = 0: d = d[0]; w[d) = w[d] + 1 eP = eP + D',[w[d}] S = 0; ciclo dey' = 0 a d - 1: S = S + w[j] Probar si S>0; si es: el = D'„[(7)] + D',[S] el = el-eP ¡2 = el & (0x7) el = el >>3 ¡3 = el & (0x3) el = el >>2 ¡5 = el & (0x3) el = el >>2 ?7 = el & (0x3) f = t + pow[8+i7]*pow[4+¡5]*pow[i3]*(1«i2) A-3 Iniciación: o Ciclo de i = 0 a 3, P[\] = D/,[4*iv[0] + 1] o Ciclo de d = 1 a q-1 : ¦ Ciclo de i = 0 a 3, P[i] = P[i] + D„[4*w[d] + 1] Tratamiento de las posiciones * Ciclo de k = 0 a 7: o Ciclo de i » 0 a 3; R[i] = D„[4*(7-k) + 1] - P[i] o / = 0 o d = 0 o Repetir mientras w[d] = 0, d = d + 1 o R[0] = R[0) + D,[4*(7-k)] - D,[4*w[d]] o [1] = [1] + D,[4*(7-k) + 1] - D,[4*w[d] + 1] o R[2] = R[2) + D,[4*(7-k)+2] - D;[4*wld] + 2] o S = 0 o Repetir mientras (f-/>0) • /' = / ¦ S = S + w[d] ¦ ¡2 = R[0] + D,[4*S] ¦ ¡3 = + D,[4*S + 1] • i5 = R[2] + 0,[4*S + 2] • i7 = R[3] + D,[4*S + 3] ¦ / = pow7[i7]*pow5[i5]*pow3[i3]*(1«i2) ¦ d = d + 1 o d = d-1 o / = /' o t = t-l o Ciclo de i = 0 a 3; P[\] = P[ ) - D,[4*w[d] + i] o w[d] = w[d] - 1 o x[k] = a[d] B-1 D'i = {0, 0, 1, 16, 2, 128, 17, 512, 3, 32, 129, 2048, 18, 8192, 513, }; D'i = {0, 0, 1, 17, 19, 147, 164, 676, 679, 711, 840, 2888, 2906, 098, 11611, 11755}; Pow3[8] = {1, 3, 9, 27, 81, 243, 729, 2187} Pow[4*5] = {1, 5, 25, 125, 625, 1, 7, 49, 343, 0, 1, 11, 121, 0, 0, 1, , 169, 0, 0} B-2 Iniciación: • f = O • w[i] = 0, 0=/'=Q Tratamiento de las posiciones · Posición k = n-1 o dn1 = d[n-1]; w[dn1] = 1 • Posición k = n-2 o d = d[n-2]; w[cf3 = w[d] + 1 o Si (d = dní) entonces eP = 1 o Si (d>dn1) t = 1 • Posiciones de k - n-3 a 0 o d = d[k] o w[d] = w[d] + 1 o eP = eP + D';[iv[d]] o S = 0; ciclo de / = 0 a d-1: S = S + w[j] o Probar si S>0; si es: ¦ t = 1 • el = D'/;[(7-k)l+D',[S] • el = el-eP ¦ Probar si (el>0); si es: • ¡2 = el & (OxF) • Pow[0] = 1; • mi = 0 • ¡3 = (el»4) & 0x7 · si (i3>0) o pow[0] = Pow3[i3] o mi = mi + 1 • el = el>>7 • si el>0 - mi' = ( 16-norm_s(el))» 1 - ciclo de j=0 a mi' • i = el & 0x3 • si i >0 ¦ si i >0 • pow[ml] = Pow[i+5*j] • mi = mi + 1 ¦ el = el>>2 • ciclo de i = 0 a (ml-1 ): f = f x pow[i] . t" = t'«¡2 t + V

Claims (1)

  1. REIVINDICACIONES 1 . Método de codificación/decodificación de señales digitales, que utiliza códigos de permutación que hacen intervenir un cálculo de expresiones combinatorias, caracterizado porque dichas expresiones combinatorias son representadas por las descomposiciones en potencias de factores primos, y determinadas por una lectura de memoria de representaciones prerregistradas de descomposiciones de números enteros seleccionados. 2. Método de acuerdo con la reivindicación 1 , caracterizado porque las representaciones prerregistradas comprenden valores representativos de exponentes, almacenados respectivamente en correspondencia con valores representativos de números primos sucesivos, para cada uno de dichos enteros seleccionados. 3. Método de acuerdo con una de las reivindicaciones 1 y 2, caracterizado porque dichas expresiones combinatorias comprenden valores factoriales (//) de enteros (/), y porque dichas representaciones prerregistradas comprenden por lo menos las representaciones de descomposiciones de valores factoriales (/ ). 4. Método de acuerdo con cualquiera de las reivindicaciones precedentes, caracterizado porque por lo menos una de dichas expresiones combinatorias (f) comprende un cociente de un número entero (D) entre un denominador entero (p), y en donde dicho cociente está representado por una descomposición de potencias de factores primos, en donde cada potencia es una diferencia de exponentes (e'0-e'p) asociados respectivamente al numerador (o) y al denominador (p) y afectados por un mismo número primo (p¡). 5. Método de acuerdo con cualquiera de las reivindicaciones precedentes, caracterizado porque la representación prerregistrada de un número entero seleccionado se almacena en una memoria dirigible, y en donde una dirección de dicha memoria da una sucesión de exponentes para afectar con los números primos respectivos para recomponer el entero seleccionado. 6. Método de acuerdo con la reivindicación 5, caracterizado porque la representación prerregistrada de un número entero seleccionado se almacena en la forma de una sucesión de direcciones que dan cada una, para un número primo, un exponente para afectar a este número primo para recomponer el entero seleccionado. 7. Método de acuerdo con cualquiera de las reivindicaciones 1 a 4, caracterizado porque las representaciones prerregistradas se almacenan en la forma de términos que comprenden una sucesión de grupos de bits, cada grupo que tiene: - un peso función de un número primo, y - un valor función de un exponente para asociar con este número primo. 8. Método de acuerdo con la reivindicación 7, caracterizado porque la determinación de las potencias de factores primos se efectúa mediante aplicaciones sucesivas de por lo menos una máscara parcial al término de bits, con diferencias sucesivas en función de los pesos de los bits y lecturas de los bits restantes. 9. Método de acuerdo con la reivindicación 2, caracterizado porque en comprende, para el cálculo de una expresión combinatoria, las etapas: - identificación, entre dichos números enteros seleccionados, de términos ((n- ' -k) ] , SK, PK) que aparecen en un producto y/o un cociente que forman dicha expresión combinatoria (/"**) . - lectura de memoria de los exponentes (e „.,.k) í, e's*, e'Pk) que intervienen en las descom posiciones en factores primos de dichos términos, - adición y/o sustracción respectivamente de los exponentes leídos (e'{n. (c) !+e's/ -e'p/t) para determinar los exponentes e que intervienen en la ' i descomposición en potencias de factores primos de dicha expresión combinatoria, y, de ahi , calcular d icha expresión combinatoria a partir de su descom posición en potencias de factores primos. 1 0. Método de acuerdo con cualquiera de las reivindicaciones 2 y 9, que comprende una etapa recurrente de cálculo de un producto que hace intervenir en cada ocurrencia un término que se multiplica por un producto determinado de una recurrencia anterior, caracterizado porque: - dicho prod ucto determinado en una recurrencia anterior se conserva en memoria en la forma de una descomposición en potencias de factores primos, - dicho término que se multiplica con el producto es uno de los enteros seleccionados del cual se prerregistra la descomposición, y - para determinar dicho producto en una recurrencia corriente, se adiciona , uno a uno por número pri mo, los exponentes emitidos de las descomposiciones respectivas de dicho producto determinado en una recurrencia anterior y dicho término se multiplica con el prod ucto. 1 1 . Método de acuerdo con cualquiera de las reivindicaciones 2 y 9, que comprende una etapa recurrente de cálculo de una d ivisión que hace intervenir en cada recurrencia un término que divide un cociente determinado en una recurrencia anterior, caracterizado porque: - dicho cociente determinado en una recurrencia anterior se conserva en memoria en la forma de una descomposición en potencias de factores primos, - dicho término que divide el cociente es uno de los enteros seleccionados del que se prerregistra la descomposición, y - para determinar dicha división en una recurrencia corriente, se sustrae, uno a uno por número primo, los exponentes emitidos de la descomposición de dicho término de los exponentes emitidos de la descomposición de dicho cociente determinado en una recurrencia anterior. 12. Método de acuerdo con cualquiera de las reivindicaciones precedentes, caracterizado porque los códigos de permutación hacen intervenir el cálculo de una cantidad representativa de un rango de una permutación (0 que comprende un cúmulo de rangos parciales cada rango parcial que corresponde a una de dichas expresiones combinatorias. 13. Método de acuerdo con la reivindicación 12, caracterizado porque el cálculo del rango de una permutación (OP2) que interviene, en la codificación de signos digitales en cuantificación vectorial, para indexar las permutaciones de los componentes de un vector director, estas permutaciones que han sido efectuadas en una etapa previa (OP 1 ) para determinar un vector-código el más próximo a un vector de entrada. 14. Método de acuerdo con cualquiera de las reivindicaciones 12 y 1 3, caracterizado porque, en la decodificación de signos digitales en cuantificación vectorial, a partir de un valor dado de un rango de permutación (f): - se calcula por lo menos una cantidad representativa de un rango de permutación (OP3) que se aproxima a dicho valor dado, en función de por lo menos un componente presunto (dk) de un vector-código a construir, - se valida la selección del componente presunto (dk) sea dicha cantidad representativa verifica una condición de proximidad con el valor dado del rango. 1 5. Método de acuerdo con la reivindicación 14, caracterizado porque dicha condición de proximidad se verifica sí el valor dado del rango (f) puede ser enmarcado por los cúmulos de rangos parciales hasta el rango parcial asociado al componente presunto (dk) , por una parte, y hasta el rango parcial asociado a un componente que corresponde a un incremento del componente presunto (?*+1 ), por otra parte. 16. Método de acuerdo con cualquiera de las reivindicaciones 13 a 15, caracterizado porque la codificación/decodificación es de tipo codificación/decodificación de fuente con cuantificación vectorial. 17. Método de acuerdo con la reivindicación 12, caracterizado porque la codificación/decodificación es de tipo codificación/decodificación de canal, en modulación, y porque comprende: - antes de la transmisión, la determinación de un vector-código a partir del rango de una permutación (OP3), y - en recepción, el cálculo del rango de una permutación a partir de un vector-código que corresponde a un vector recibido (OP2). 18. Método de acuerdo con cualquiera de las reivindicaciones 1 2 a 17, tomadas en combinación con la reivindicación 3, en la cual los códigos de permutación tienen una dimensión máxima n, caracterizado porque dichos números enteros seleccionados comprenden por lo menos: - los enteros comprendidos entre 1 y la dimensión máxima n, - el valor factorial del entero 0, - y, de preferencia, los valores factoriales de los enteros comprendidos entre 1 y la dimensión máxima n. 19. Método de acuerdo con la reivindicación 18, caracterizado porque dichos números enteros seleccionados comprenden además el valor de 0. 20. Método de acuerdo con cualquiera de las reivindicaciones 12 a 19, caracterizado porque el código de permutación utiliza una enumeración de Schalkwijk, y porque un rango parcial l"kk asociado a un truncamiento (/*»-·· yn-í) de un vector-código (y0, ... yn-i) se escribe: ° J donde: - la notación Jj representa un producto para un índice entero i que va de 0 a m, - la notación ? representa una suma para un índice i que va de 0 a m, - la notación / es el valor factorial del entero / con // = 1x2x3x... x(/-1)x/, para />0 y con 0! = 1, - el entero n es la dimensión del código de permutación, que corresponde al número total de componentes que comprende un vector-código, - el entero l, comprendido entre 0 y n-1, es el índice del ké8im0 componente y* del vector-código, - el entero q es el número de componentes distintos que comprende el vector-código, y - el término wdk representa el número de componentes de índices comprendidos entre k y n-1 y que tienen un valor igual a aquel de un mismo componente de índice d. 21. Método de acuerdo con la reivindicación 20, tomada en combinación con la reivindicación 9, caracterizado porque dichos números enteros, identificados y que aparecen en un producto y/o un cociente forman el rango parcial (ldk ) como expresión combinatoria, son: - los términos factoriales (?-1-fc)!, para todos los enteros k y comprendidos entre 0 y n-1, - el valor de cada término w'k y/o su valor factorial que interviene en el producto cada término w'k que está comprendido entre 0 y n, y - los términos ¿ ,* = 2_-Mf*. cada uno comprendido entre 1 y n-1, para todos k los enteros comprendidos entre 0 y n-1. 22. Método de acuerdo con cualquiera de las reivindicaciones 20 y 21, tomadas en combinación con la reivindicación 13, caracterizado porque el cálculo del rango que interviene en la codificación al determinar el cúmulo de rangos parciales ldkk, cada uno estimado en función de un truncamiento (y*,... y„-i) del vector-código (y0, ... yn-1), para un índice que va desde n-1 hasta 0. 23. Método de acuerdo con la reivindicación 22, caracterizado porque se lleva a cabo una prueba del valor del término * · = 2_·? para rf-u evitar la estimación del rango parcial l kk sí el término Sk es nulo. 24. Método de acuerdo con cualquiera de las reivindicaciones 20 y 21 , tomadas en combinación con una de las reivi ndicaciones 14 y 1 5, caracterizado porque el cálculo de una cantidad representativa de un a des acumul ación de los rangos parciales ld que intervienen en la decodificación para determinar los componentes y* del vector-código, del I ndice k q ue va desde 0 hasta n- 1 . 25. Método de acuerdo con cualquiera de las reivindicaciones 22 a 24, tomadas en combinación con una de las reivi ndicaciones 1 0 y 1 1 , caracterizado porque la suma de los exponentes en la descomposición del término: se al macena temporal mente en memoria para un I ndice k precedente pa ra ser ag regado o sustraído de los exponentes de la descomposición de un término w'k para un índice k corriente. 26. Programa informático destinado a ser almacenado en memoria de un dispositivo de codificación/decodificación de signos numéricos , utilizando los códigos de permutaciones, caracterizado porque comprende las instrucciones para llevar a cabo las etapas del método de acuerdo con cualquiera de las reivindicaciones 1 a 25. 27. Dispositivo de codificación/decodificación de signos numéricos, que utiliza los códigos de permutaciones, caracterizado porque com prende: - una unidad de memoria para almacenar las instrucciones de un programa informático de acuerdo con la reivindicación 26 y las representaciones prerregistradas de las descomposiciones de números enteros seleccionados, y - un módulo de cálculo que accede a dicha unidad de memoria para efectuar el método de acuerdo con cualquiera de las reivindicaciones 1 a 25.
MX2008010490A 2006-02-17 2007-02-13 Codificacion/decodificacion mejoradas de señales digitales, especialmente en cuantificacion de vector con codigos de permutacion. MX2008010490A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0601435A FR2897742A1 (fr) 2006-02-17 2006-02-17 Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
PCT/FR2007/050778 WO2007093730A2 (fr) 2006-02-17 2007-02-13 Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation

Publications (1)

Publication Number Publication Date
MX2008010490A true MX2008010490A (es) 2008-11-27

Family

ID=37665434

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008010490A MX2008010490A (es) 2006-02-17 2007-02-13 Codificacion/decodificacion mejoradas de señales digitales, especialmente en cuantificacion de vector con codigos de permutacion.

Country Status (10)

Country Link
US (3) US7994944B2 (es)
EP (3) EP2009800A3 (es)
JP (3) JP4846809B2 (es)
KR (3) KR101358070B1 (es)
CN (3) CN101447792B (es)
BR (3) BRPI0707839A2 (es)
FR (1) FR2897742A1 (es)
MX (1) MX2008010490A (es)
RU (3) RU2437207C2 (es)
WO (1) WO2007093730A2 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2461079C2 (ru) * 2008-02-15 2012-09-10 Нокиа Корпорейшн Упрощенная индексация и деиндексация векторов
US8079160B2 (en) * 2008-09-26 2011-12-20 Nike, Inc. Articles with retractable traction elements
CN101430881B (zh) 2008-11-10 2013-04-17 华为技术有限公司 一种编码、解码、编解码方法、编解码系统以及相关装置
US20100324913A1 (en) * 2009-06-18 2010-12-23 Jacek Piotr Stachurski Method and System for Block Adaptive Fractional-Bit Per Sample Encoding
US9240192B2 (en) 2010-07-06 2016-01-19 Panasonic Intellectual Property Corporation Of America Device and method for efficiently encoding quantization parameters of spectral coefficient coding
RU2497277C2 (ru) * 2010-07-29 2013-10-27 Российская Федерация, от имени которой выступает государственный заказчик-Государственная корпорация по атомной энергии "Росатом" Способ сжатия двоичных данных в виде структурированных информационных блоков
GB201320983D0 (en) * 2013-11-28 2014-01-15 Ibm Data encoding in solid-state storage apparatus
US9838700B2 (en) * 2014-11-27 2017-12-05 Nippon Telegraph And Telephone Corporation Encoding apparatus, decoding apparatus, and method and program for the same
SE543293C2 (en) 2015-04-17 2020-11-17 Kelicomp Ab Improved compression of a file
TWI581579B (zh) * 2015-12-30 2017-05-01 義守大學 通訊接收裝置、其訊號接收方法、訊號處理方法及訊號傳送方法
CN105680992B (zh) * 2016-01-26 2019-05-03 华中科技大学 一种通信信道编码方法及置换码集合产生器
CN107784621A (zh) * 2016-08-25 2018-03-09 苏州创新通用色谱仪器有限公司 一种液相色谱数据分块压缩方法
US10950251B2 (en) * 2018-03-05 2021-03-16 Dts, Inc. Coding of harmonic signals in transform-based audio codecs

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2441452C3 (de) * 1973-08-31 1980-01-17 Hitachi, Ltd., Tokio Anordnung zur Ultraschall-Nachrichtenübertragung
JPH0318820A (ja) * 1989-06-15 1991-01-28 Matsushita Electric Ind Co Ltd アクティブマトリックスアレイの駆動方法
SU1750061A1 (ru) * 1989-12-11 1992-07-23 Омский Институт Инженеров Железнодорожного Транспорта Устройство дл исправлени ошибок
JPH06266315A (ja) * 1993-03-17 1994-09-22 Fujitsu Ltd 液晶表示装置
FR2759806B1 (fr) * 1997-02-19 1999-04-23 Gemplus Card Int Systeme cryptographique comprenant un systeme de chiffrement et dechiffrement et un systeme de sequestre de cles, et les appareils et dispositifs associes
US5832443A (en) * 1997-02-25 1998-11-03 Alaris, Inc. Method and apparatus for adaptive audio compression and decompression
KR100373965B1 (ko) * 1998-08-17 2003-02-26 휴우즈 일렉트로닉스 코오포레이션 최적 성능을 갖는 터보 코드 인터리버
RU2199826C2 (ru) * 2000-09-25 2003-02-27 Государственное унитарное предприятие Специализированный центр программных систем "Спектр" Способ итеративного шифрования блоков цифровых данных
RU2222868C2 (ru) * 2001-12-26 2004-01-27 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Вектор" Способ итеративного шифрования блоков цифровых данных
CA2388358A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
CA2489526C (en) 2002-06-20 2012-03-20 Novalar Pharmaceuticals, Inc. Stabilized formulations of alpha adrenergic receptor antagonists and uses thereof
US7680670B2 (en) * 2004-01-30 2010-03-16 France Telecom Dimensional vector and variable resolution quantization

Also Published As

Publication number Publication date
CN101447792A (zh) 2009-06-03
US7973679B2 (en) 2011-07-05
FR2897742A1 (fr) 2007-08-24
JP4805365B2 (ja) 2011-11-02
EP2009800A3 (fr) 2013-06-19
JP4846809B2 (ja) 2011-12-28
RU2437207C2 (ru) 2011-12-20
RU2008139888A (ru) 2010-04-20
EP2009801A3 (fr) 2013-06-19
CN101385245B (zh) 2012-09-26
CN101385245A (zh) 2009-03-11
US20090207934A1 (en) 2009-08-20
RU2008139887A (ru) 2010-04-20
KR20090005084A (ko) 2009-01-12
RU2008137122A (ru) 2010-03-27
CN101447791A (zh) 2009-06-03
WO2007093730A2 (fr) 2007-08-23
CN101447791B (zh) 2012-11-28
US7994945B2 (en) 2011-08-09
WO2007093730A3 (fr) 2008-11-13
RU2494536C2 (ru) 2013-09-27
KR20090007294A (ko) 2009-01-16
BRPI0707839A2 (pt) 2011-05-10
US7994944B2 (en) 2011-08-09
US20100228551A1 (en) 2010-09-09
JP2009105947A (ja) 2009-05-14
CN101447792B (zh) 2012-10-10
EP2009801A2 (fr) 2008-12-31
BRPI0722375A2 (pt) 2012-05-22
BRPI0722374A2 (pt) 2012-05-22
JP2009527171A (ja) 2009-07-23
KR20090005083A (ko) 2009-01-12
KR101358070B1 (ko) 2014-02-06
US20090207933A1 (en) 2009-08-20
EP2009800A2 (fr) 2008-12-31
EP2002546A2 (fr) 2008-12-17
JP2009153157A (ja) 2009-07-09
JP4805364B2 (ja) 2011-11-02
KR101368478B1 (ko) 2014-03-06
RU2494537C2 (ru) 2013-09-27
KR101370019B1 (ko) 2014-03-14
EP2002546B1 (fr) 2020-04-01

Similar Documents

Publication Publication Date Title
MX2008010490A (es) Codificacion/decodificacion mejoradas de señales digitales, especialmente en cuantificacion de vector con codigos de permutacion.
RU2326450C2 (ru) Способ и устройство для векторного квантования с надежным предсказанием параметров линейного предсказания в кодировании речи с переменной битовой скоростью
US6662154B2 (en) Method and system for information signal coding using combinatorial and huffman codes
KR101456641B1 (ko) 오디오 인코더 및 오디오 디코더
EP1974349A1 (en) Audio coding
US7426462B2 (en) Fast codebook selection method in audio encoding
CN1663128A (zh) 一种用于可变长解码的方法和系统以及一种用于代码字定位的设备
Xie et al. Fast and low-complexity LSF quantization using algebraic vector quantizer
Merazka et al. Vector quantization of LSP parameters by split
JPH11163737A (ja) 情報源の符号化及び復号化の高速化装置

Legal Events

Date Code Title Description
FG Grant or registration