ES2941677T3 - Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor - Google Patents

Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor Download PDF

Info

Publication number
ES2941677T3
ES2941677T3 ES09776891T ES09776891T ES2941677T3 ES 2941677 T3 ES2941677 T3 ES 2941677T3 ES 09776891 T ES09776891 T ES 09776891T ES 09776891 T ES09776891 T ES 09776891T ES 2941677 T3 ES2941677 T3 ES 2941677T3
Authority
ES
Spain
Prior art keywords
codebook
codeword
symbol
subsymbols
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES09776891T
Other languages
English (en)
Inventor
Markus Multrus
Nikolaus Rettelbach
Stefan Bayer
Bernhard Grill
Manuel Jander
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2941677T3 publication Critical patent/ES2941677T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Error Detection And Correction (AREA)

Abstract

En un método para codificar un símbolo, se determina si el símbolo puede codificarse mediante una palabra de código de un primer libro de códigos. En caso de que esto sea cierto, la palabra de código apropiada para el símbolo se selecciona del primer libro de códigos. De lo contrario, se selecciona una palabra de código del primer libro de códigos que indica que el símbolo no puede codificarse mediante una palabra de código del primer libro de códigos y el símbolo se divide en una pluralidad de primeros subsímbolos y para al menos uno de los primeros subsímbolos una palabra de código se selecciona de un segundo libro de códigos. También se describe un método correspondiente para la decodificación. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor
[0001] La invención se relaciona con el campo de la codificación/decodificación de un símbolo y, más específicamente, con un procedimiento para la codificación de un símbolo que comprende una pluralidad de valores, un procedimiento para la decodificación de un símbolo que comprende una pluralidad de valores y codificados por una o más palabras codificadas, un procedimiento para la transmisión de un símbolo de un transmisor a un receptor, un programa informático para desarrollar el procedimiento de acuerdo con la invención, un codificador, un decodificador y un sistema para transmitir un símbolo de un transmisor a un receptor. Más específicamente, las realizaciones de la invención se relacionan con un nuevo procedimiento de codificación/decodificación de entropía basado en la codificación de Huffman y utiliza palabras codificadas multidimensionales para aprovechar las dependencias estadísticas entre los símbolos vecinos y para adaptar la longitud de la palabra codificada de una mejor manera a las probabilidades del símbolo.
[0002] En la técnica los distintos procedimientos para codificar señales se conocen para codificar señales de audio o vídeo o se utilizan para codificar procesos en un ámbito de telecomunicaciones. También se conocen estrategias de decodificación correspondientes. Por ejemplo, en el campo de la codificación de audio AAC/MP3 se utilizan códigos de Huffman modificados (o apilados) de acuerdo con Henke, Robert, "Simulation eines Audiocodierverfahrens für professionelle Anwendungen", Diplomarbeit, Friedrich-Alexander Universitat Erlangen-Nürnberg, Erlangen 1992, Brandenburg, Karlheinz, Henke, Robert, "Near-Lossless Coding of High Quality Digital Audio: First Results", ICASSP-93, IEEE Conferencia Internacional sobre Acústica, Voz, y Procesamiento de la Señal, vol. 1, Abril 27-30, 1993, páginas 193-196, y documento EP 0393526 A.
[0003] Los códigos de Huffman se utilizan para codificar los coeficientes espectrales cuantizados. Los coeficientes espectrales pueden obtenerse de una señal en el dominio del tiempo por medio de un banco de filtros o transformación. En una codificación de audio del estado de la técnica, se utiliza típicamente una MDCT como transformación (MDCT = sigla en inglés correspondiente a la traducción de transformada de coseno discreta modificada). Para la cuantización se utiliza típicamente un cuantizador escalar. Si se utilizan códigos de Huffman para codificar valores espectrales cuantizados, un solo valor espectral cuantizado o múltiples valores espectrales cuantizados son referidos como símbolo. Los símbolos asociados a códigos de Huffman se restringen en el intervalo de valores a un valor absoluto mayor (LAV, por su sigla en inglés), como lo describe Huffman, D.A., en "A Method for the Construction of Minimum-Redundancy Codes", Proceedings of the IRE, Sept. 1952, vol. 40, emisión 9, páginas 1098-1101. Por ejemplo, en una codificación AAC, en caso de un símbolo que excede el LAV, el símbolo no está asociado a una sola palabra codificada sino a una secuencia de dos palabras codificadas. Una de las palabras codificadas es la llamada “secuencia de escape” que señala la presencia de una palabra codificada adicional. La segunda palabra codificada es la llamada “palabra codificada de terminación”. Del lado del decodificador, el símbolo puede ser sólo decodificado utilizando todas las palabras codificadas desde la secuencia, principalmente la palabra codificada de escape y la palabra codificada de terminación. La palabra codificada de terminación es típicamente una codificación de longitud de tirada que utiliza un código de Golomb modificado y señala la diferencia entre el valor absoluto mayor y el valor del símbolo codificado. La dimensionalidad de los símbolos se restringe a un máximo de cuatro, es decir, un máximo de cuatro coeficientes espectrales vecinos se combinan para un símbolo. En consecuencia, la dimensionalidad de un símbolo indica la cantidad de valores combinados en un símbolo para los cuales luego la palabra codificada es determinada para su transmisión a un decodificador. El mecanismo de escape se utiliza por coeficiente espectral, no por símbolo, es decir, en caso de que un coeficiente espectral exceda el LAV y el resto de los coeficientes espectrales no, un mecanismo de escape se utiliza sólo para el coeficiente espectral que exceda el LAV.
[0004] En el campo de la codificación de vídeo de acuerdo con la especificación de codificación de vídeo ITU-T H.263 (01/2005) se utiliza una combinación de una codificación de Huffman de una dimensión (VLC = Variable Length Coding, Codificación de Longitud Variable) y un mecanismo de escape. Este mecanismo se utiliza para codificar coeficientes cuantizados de DCT (DCT = discrete cosine transformation, transformada de coseno discreta) de manera similar a las estrategias de codificación de audio. En el campo de las telecomunicaciones, la especificación de telefax ITU-T (ITU-T Rec. T.4 (07/2003)) describe el uso de los códigos de Huffman modificados, es decir, las longitudes de tirada se codifican utilizando codificación de Huffman. En caso de que la longitud de tirada exceda el LAV, se transmite el llamado "código de marcado". Por medio de estos códigos de marcado se pueden representar múltiplos enteros de 64. En longitudes de tirada mayores a 63 se transmite el próximo código de marcado menor. La diferencia de la longitud de tirada original es enviada como palabra codificada de terminación.
[0005] Las estrategias de la técnica anterior descritas anteriormente basadas en la codificación de Huffman restringen la dimensionalidad y el intervalo de los valores para el símbolo con el fin de mantener bajos los requerimientos de memoria. Además, es necesario mantener los libros de códigos de Huffman o tablas de palabras codificadas de menor tamaño para que las palabras codificadas comprendan una longitud que no excedan un límite predefinido para que la transmisión de las palabras codificadas pueda realizarse de acuerdo con las condiciones preestablecidas. En caso de que los valores individuales excedan el intervalo de valores, se utilizan mecanismos de escape para estos símbolos individuales.
[0006] Al restringir la dimensionalidad del símbolo, las longitudes de la palabra codificada no son, en general, óptimas. Para codificaciones binarias de Huffman, sólo las probabilidades del símbolo p de (1/2)n pueden ser codificadas de modo óptimo utilizando códigos de Huffman, ya que la longitud resultante de la palabra codificada 1 es restringida a un valor entero. Si H(p) es la entropía del símbolo, se aplica la siguiente restricción: H(p) < l < H(p)+1. Los efectos negativos de esta restricción pueden ser aliviados incrementando la dimensionalidad del símbolo a N: 1/N • H(p) < 1 < H(p) 1/N. Sin embargo, pueden ocurrir, especialmente para velocidades de transferencia de datos bajas, pueden producirse símbolos multidimensionales que tienen una probabilidad mayor al 0,5 y para dichos símbolos la dimensionalidad óptima del símbolo sería por ejemplo de 16. Sin embargo, una tabla con 16 dimensiones con cuatro valores por subsímbolo requeriría de una memoria para almacenar 416 = 4294967296 = 232 palabras codificadas y las longitudes de las palabras codificadas que tendrían un gran impacto en los requerimientos de la memoria. Además, la longitud de la palabra codificada excedería para muchas de las palabras codificadas un intervalo aceptable.
[0007] Las palabras codificadas con múltiples símbolos son beneficiosas si los símbolos a codificar poseen dependencias estadísticas. Dichas dependencias estadísticas pueden resultar por ejemplo, de las características de la transformada de frecuencia y ventana de análisis utilizadas.
[0008] Para dos símbolos estadísticamente independientes, la probabilidad condicional de que b siga a a es P[ct | b } — P(íi) - P(b) danc|o p0r resultado una longitud de código óptima \^ )~ 2 ( ít) L(b) s¡enc|0 \a s u m a de las palabras codificadas óptimas de los símbolos individuales, mientras que para símbolos estadísticamente dependientes, la probabilidad condicional será diferente. Por ejemplo, si existe una alta probabilidad de que el símbolo
b siga al símbolo a, entonces la probabilidad condicional ^ a I ^ ^ ' ^ (¿ 9 será mayor al caso estadísticamente
independiente y, en consecuencia, la longitud de código óptima
Figure imgf000003_0001
ser£ menor a \a suma de dos longitudes de palabras codificadas L(a) y L(b) independientes óptimas.
[0009] Cuanto mayor sea la dimensionalidad del libro de códigos utilizado, mayor será el orden de probabilidad
dependiente que pueda ser capturado.
[0010] Un documento adicional del estado de la técnica US 2006/106870 A1 (FRANASZEK PETER A [US] Y COL., 18 de mayo de 2006) describe el uso de una jerarquía anidada de diccionarios. Codifica un "índice de estado" para recuperar información sobre cómo los diferentes diccionarios se utilizan para codificar segmentos de datos de distinto tamaño.
[0011] Los documentos US 5408 234 A (CHU KE-CHIANG [US], 18 de abril de 1995), "Multiple-dictionary compression using partial matching" (HOANG, D.T.; LONG, P.M.; VITTER, J.S.; PROCEEDINGS OF THE DATA COMPRESSION CONFERENCE, 1995. DCC '95., 30 de marzo de 1995, páginas 272-281, Piscataway, NJ, EE.UU.), y EP 0286 719 A2 (IBM [US] 19 de octubre de 1988) describen el uso de un símbolo "esc" en los datos codificados para señalar una conmutación de un libro de códigos común utilizado para codificar a otro en un esquema multidiccionario.
[0012] Un objeto de la presente invención es proporcionar una estrategia mejorada para la codificación y decodificación de un símbolo donde la estrategia permita la explotación de dependencias estadísticas entre valores vecinos dentro del símbolo lo suficientemente bien.
[0013] Este objeto se resuelve mediante un procedimiento según la reivindicación 1, 7 y 12, mediante un programa informático según la reivindicación 13, mediante un codificador según la reivindicación 14, mediante un decodificador según la reivindicación 15, y mediante un sistema según la reivindicación 16.
[0014] Las realizaciones de la presente invención proporcionan un esquema de codificación de Huffman flexible, jerárquico y multidimensional que permite la ampliación de la dimensionalidad del símbolo con sólo un aumento menor en la demanda de memoria. Esto se logra introduciendo símbolos multidimensionales con sólo un intervalo limitado de valores y (en general) secuencias de escape multidimensionales. Estos mecanismos de escape pueden aplicarse a subsímbolos individuales o múltiples. Todos los subsímbolos que no pueden ser codificados en forma directa son marcados con código de escape y se lleva a cabo una nueva etapa de codificación. Este proceso es repetido en forma jerárquica hasta que todos los subsímbolos sean codificados. Por ejemplo, para la próxima etapa jerárquica, el intervalo de valores en la misma dimensionalidad de la palabra codificada es incrementado, o la dimensionalidad de la palabra codificada es disminuida en el mismo intervalo de valores, o el intervalo de valores de la palabra codificada es incrementado y la dimensionalidad de la palabra codificada es disminuida.
[0015] La estrategia de la invención tiene ventaja sobre las estrategias convencionales, ya que el incremento en la dimensionalidad del símbolo permite una mejor adaptación de la longitud de la palabra codificada a las probabilidades del símbolo y para una mejor explotación de dependencias estadísticas entre subsímbolos vecinos. Además, las dependencias estadísticas entre subsímbolos vecinos, que no se encuentran en el intervalo de los valores, pueden ser explotadas.
[0016] Al utilizar secuencias de escape multidimensionales se reducen además los requerimientos de memoria para libros de códigos multidimensionales. Por ejemplo, para permitir un libro de códigos en 16 dimensiones que representan el valor 0 en forma directa y valores distintos a 0 a través de secuencias de escape, la cantidad de palabras codificadas sería 216=65536, mientras que teniendo secuencias de escape para 4 símbolos vecinos y un libro de códigos subsecuente en 4 dimensiones con secuencias de escape por símbolo se reduciría la cantidad de entradas a 24+24=16 solamente.
[0017] Si una combinación de símbolos no puede ser representada en forma directa en un libro de códigos multidimensional debido al intervalo limitado del libro de códigos, las secuencias de escape multidimensionales permitirán la explotación de dependencias estadísticas con un orden inferior presente en los subsímbolos dimensionales inferiores.
[0018] Las realizaciones de la invención se utilizan en el campo de la codificación de entropía, codificación de audio/vídeo y telecomunicaciones.
[0019] Las realizaciones de la invención se describirán en detalle a continuación con referencia a los dibujos adjuntos, en los que:
La Fig. 1 es un diagrama de flujo que representa un esquema de codificador de acuerdo con una realización de la invención;
La Fig. 2 muestra diferentes tablas de palabras codificadas (libros de códigos) utilizadas en un esquema de codificación de acuerdo con una realización de la invención, donde la Fig. 2(a) es la tabla de palabras codificadas para una tabla con un símbolo de 16 dimensiones (símbolo de 16 dimensiones = un símbolo que comprende 16 valores), donde la Fig. 2(b) es una tabla de palabras codificadas para un símbolo de 8 dimensiones, y donde la Fig. 2(c) es la tabla de palabras codificadas para un símbolo de 4 dimensiones;
La Fig. 3 ilustra el esquema de codificación que utiliza las tablas de palabras codificadas de la Fig. 2;
La Fig. 4 ilustra un esquema de codificación de acuerdo con otra realización de la invención;
La Fig. 5 es un ejemplo de una tabla de palabras codificadas con nivel 0 utilizada para el esquema de codificación de la Fig. 4;
La Fig. 6 es un diagrama de flujo que representa un esquema de decodificador de acuerdo con una realización de la invención;
La Fig. 7 ilustra el esquema de decodificación que utiliza las tablas de palabras codificadas de la Fig. 2;
La Fig. 8 ilustra el esquema de decodificación para un símbolo codificado de acuerdo con la realización de la Fig. 6; La Fig. 9 es un diagrama de bloque de un codificador ilustrativo que utiliza el esquema de codificación de acuerdo con las realizaciones de la invención;
La Fig. 10 es un diagrama de bloque de un decodificador ilustrativo que utiliza el esquema de decodificación de acuerdo con las realizaciones de la invención; y
La Fig. 11 ilustra un sistema para transmitir un símbolo de un transmisor a un receptor.
[0020] A continuación, las realizaciones de la invención se describen teniendo en cuenta las figuras que muestran diagramas de flujo y diagramas de bloque. En lo que respecta a las figuras que ilustran los diagramas de bloque de un aparato, se observa que en estas figuras también se ilustra un procedimiento, donde las funcionalidades del bloque corresponden a las etapas del procedimiento.
[0021] La Fig. 1 es un diagrama de flujo que representa un esquema de codificador que opera de acuerdo con una realización de la invención. En una etapa S100 comienza la estrategia de codificación y un nivel de codificación L se establece en 0. Se proporciona el símbolo Y(L,m) con una dimensión N donde la dimensión N indica que el símbolo comprende valores N, y m indica el índice de subsímbolo en el nivel L, donde m < M con M indicando la cantidad de subsímbolos para el nivel actual. Los subsímbolos se obtienen dividiendo el símbolo Y en un nivel. En la etapa S100 M se establece en 1 y en forma correspondiente m se establece en 0, para que el símbolo proporcionado al comienzo del proceso de codificación sea el símbolo original Y(0,0)=(Sü, Sv -,Sn).
[0022] En la etapa S102, la dimensión del libro de códigos I se establece en N, es decir, un libro de códigos o tablas de palabras codificadas se selecciona(n) para la codificación del símbolo Y en n-dimensiones.
[0023] En la etapa S104 se verifica si el símbolo Y(L,m) puede ser representado por completo por el libro de códigos actual con la dimensión I. En caso de que esto sea posible, una palabra codificada C(L,m) apropiada es seleccionada del libro de códigos en la etapa S106 la cual se transmite, por ejemplo, a un decodificador. En la etapa S107, se determina si las palabras codificadas fueron seleccionadas para todos los símbolos Y(L,m) en el nivel de codificación actual L. En caso de que las palabras codificadas hayan sido seleccionadas para todos los símbolos, el proceso de codificación se completa y finaliza. De lo contrario, m es incrementado (m++) en uno, es decir, el próximo símbolo (subsímbolo) en el nivel L es seleccionado y el procedimiento vuelve a la etapa S104.
[0024] En caso de que el símbolo Y(L,m) no pueda ser representado por una palabra codificada del libro de códigos, el procedimiento procede a la etapa S108 donde una palabra codificada es seleccionada del libro de códigos que incluye al menos al menos un mecanismo de escape. En la etapa S110 se determina qué subsímbolos del nivel actual no están representados y estos subsímbolos determinan el "nuevo" símbolo. En caso de que los subsímbolos "no-codificados" persistan, significa que el codificador debe utilizar un nuevo libro de códigos de menor dimensionalidad que el libro de códigos actual. En la etapa S112, se determina la nueva dimensión J del símbolo, 1<J< N. En la etapa S114 se selecciona el nuevo libro de códigos, y se selecciona la dimensión I del nuevo libro de códigos para que sea 1<I<J.
[0025] En la etapa S114, la dimensión del libro de códigos puede mantenerse en la dimensión anterior en caso de que una pluralidad de subsímbolos de la misma dimensión deba ser codificada utilizando, por ejemplo, el mismo libro de códigos, como se describe en detalle más adelante. En tal caso, en la etapa S116 se determina que la dimensión del símbolo no exceda la dimensión del libro de códigos para este nivel y el procedimiento vuelve a la etapa S104.
[0026] En forma alternativa, en la etapa S114, la dimensión I del nuevo libro de códigos puede seleccionarse a un valor menor que la dimensión J del nuevo símbolo. Por ejemplo, la dimensión del nuevo libro de códigos puede determinarse a la mitad de la dimensión J del nuevo símbolo. En tal caso, se determina en la etapa S116 que la dimensión J del nuevo símbolo exceda la dimensión I del nuevo libro de códigos para que en la etapa S118 el nivel se incremente en uno (nivel++) y el símbolo es dividido en una pluralidad de subsímbolos para que se ajuste a la dimensión del libro de códigos I seleccionada en la etapa S114. Además, M se incrementa indicando la cantidad de subsímbolos en los cuales se divide el (sub)símbolo previo. El procedimiento luego vuelve a la etapa S104 y las etapas S104 a S118 se repiten para todos los subsímbolos del próximo nivel L para que por medio del proceso de jerarquías descrito anteriormente, el símbolo es finalmente codificado por una o más palabras codificadas que pueden ser entonces transmitidas.
[0027] A continuación, se describe una realización del esquema de codificación con mayor detalle con respecto a las Fig. 2 y 3. Un esquema de jerarquía que comprende palabras codificadas de 16 dimensiones, 8 dimensiones, 4 dimensiones y 1 dimensión optimizado para un escenario donde un símbolo de 16 "0" vecinos posee una probabilidad de 0,5. La Fig. 2 muestra las diferentes tablas de palabras codificadas. La Fig. 2(a) muestra la tabla de palabras codificadas para un símbolo de 16 dimensiones. Las palabras codificadas de 16 dimensiones son las siguientes:
Palabras codificadas de 16 dimensiones
Figure imgf000005_0001
donde
• VZ: signo de un valor (1 bit)
• XXXX: 4 bits para codificar la posición de un valor "1" en el símbolo
[0028] Esto da por resultado la tabla de palabras codificadas mostrada en la Fig. 2(a).
[0029] La Fig. 2(b) muestra la tabla de palabras codificadas para un símbolo de 8 dimensiones, y las palabras codificadas de 8 dimensiones son las siguientes:
Palabras codificadas de 8 dimensiones
Figure imgf000005_0002
donde
• VZ: signo de un valor (1 bit)
• XXX: 3 bits para codificar la posición del valor "1" en el símbolo
[0030] Esto da por resultado la tabla de palabras codificadas mostrada en la Fig. 2(b).
[0031] La Fig. 2(c) representa la tabla de palabras codificadas para el símbolo de 4 dimensiones. Para el símbolo de 4 dimensiones S=(S0,S1,S2,S3), las respectivas palabras codificadas S son las siguientes:
• en caso de que todos los valores para Sn, n={0,1,2,3}, se encuentren dentro de [-1;1], el símbolo S=(S0,S1,S2,S3) puede estar representado en forma directa,
• en caso de que algunos de los valores para Sn no se encuentren dentro de [-1;1], aquellos valores para Sn que no se encuentren dentro de [-1;1] están representados por palabras de escape (ESC4), y
• en caso de que todos los valores para Sn no se encuentren dentro de [-1;1], el símbolo S=(So,S-i,S2,S3) se encuentra presente por una sola palabra de escape (ESC4).
[0032] Por ejemplo, un símbolo S=(-1,0,0,-1) estará representado en forma directa por una palabra codificada CW4 de la tabla de palabras codificadas en la Fig. 2(c), un símbolo S=(-2,3,4,-5) estará representado sólo por una palabra codificada CW4=ESC4, y un símbolo S=(-1,3,0,-5) estará representado por una palabra codificada CW4=(-1,ESC4,0,ESC4).
[0033] Los símbolos de una dimensión que pueden eventualmente ser obtenidos son codificados cada uno por una 1 dimensión respectiva o palabras codificadas de 1 dimensión utilizadas para codificar en forma directa 1 dimensión o símbolo de 1 dimensión, por ejemplo, mediante codificación de longitud de tirada.
[0034] Teniendo en cuenta los libros de códigos descritos anteriormente o tablas de palabras codificadas, un símbolo de 16 dimensiones será codificado. En la etapa S100 (véase la Fig. 1), L se establece en 0, m se establece en 0, y N se establece en 16 y M se establece en 1. El símbolo presentado en la etapa S100, principalmente el símbolo Y(0,0) incluye 16 valores S0...S15. La dimensión I del libro de códigos se establece también en 16, es decir, se utiliza la tabla de palabras codificadas de la Fig. 2(a).
[0035] En la etapa S104 se determina si la entrada del libro de códigos está disponible para el símbolo de 16 dimensiones. Si así fuera, una palabra codificada correspondiente es seleccionada en la etapa S106 y, por ejemplo, transmitida para que el proceso de codificación llegue a su fin. En esta situación, se completa el proceso de codificación.
[0036] En caso de que se determine en la etapa S104 que no hay disponibles entradas para el libro de códigos para el símbolo de 16 dimensiones, la palabra de escape es seleccionada en la etapa S108 y transmitida. De esta manera, los subsímbolos aún no representados por la palabra codificada transmitida son todos subsímbolos de 16 dimensiones, como se determina en la etapa S110 y la dimensión del nuevo símbolo permanece en 16, es decir J=16 en la etapa S112. En la etapa S114, un nuevo libro de códigos con una dimensión de 8 es seleccionado. Como esta dimensión del libro de códigos es menor a la dimensión del nuevo símbolo J en la etapa S116, el procedimiento pasa a la etapa S118 donde el símbolo de 16 dimensiones es subdividido en símbolos o subsímbolos de 8 dimensiones, M se establece en el valor de 2 indicando que ahora existen dos subsímbolos, y el nivel L aumenta (nivel++) al nivel 1.
[0037] Las etapas S104-S118 se repiten a continuación para todos los subsímbolos del nivel 1, es decir para los dos subsímbolos en los cuales el símbolo original fue dividido en la etapa S118, principalmente los dos símbolos de 8 dimensiones. En la etapa S104 se verifica nuevamente si ambos símbolos de 8 dimensiones pueden ser codificados en forma directa, es decir, si para cada uno de ellos una palabra codificada correspondiente está contenida dentro de la tabla de palabras codificadas de la Fig. 2(b). Si así fuera, para cada símbolo de 8 dimensiones la palabra codificada correspondiente es seleccionada y transmitida en la etapa S108. El proceso de codificación es entonces completado. De lo contrario, es decir, en caso de que el primer y/o segundo símbolos de 8 dimensiones no pueda ser representado por una palabra codificada del libro de códigos de 8 dimensiones, una palabra de escape apropiada es seleccionada del libro de códigos y transmitida.
[0038] En la etapa S114, un nuevo libro de códigos de dimensión 4 es a continuación seleccionado, y en la etapa S118, el/los símbolo(s) de 8 dimensiones aún no codificado(s) es/son dividido/s en dos símbolos de 4 dimensiones y se repiten las etapas S104-S118. A continuación, si fuera aplicable, se verificará si los símbolos de 4 dimensiones pueden ser codificados en forma directa, es decir, si la palabra codificada de 4 dimensiones correspondiente está contenida dentro de la tabla de palabras codificadas de la Fig. 2(c). Si así fuera, la palabra codificada correspondiente es seleccionada y transmitida en la etapa S108. De lo contrario, una palabra de escape puede transmitirse para todo el símbolo de 4 dimensiones o para subsímbolos del mismo. Con respecto a los otros casos, el símbolo de 4 dimensiones puede ser sometido a un escape como símbolo completo y luego ser subdividido en cuatro símbolos de 1 dimensión que son codificados en la próxima etapa de codificación utilizando un esquema de codificación como lo describe Henke, Robert, en "Simulation eines Audiocodierverfahrens für professionelle Anwendungen", Diplomarbeit, Friedrich-Alexander Universitat Erlangen-Nürnberg, Erlangen 1992, Brandenburg, Karlheinz, Henke, Robert, "Near-Lossless Coding of High Quality Digital Audio: First Results”, ICASSP-93, IEEE Conferencia Internacional sobre Acústica, Voz, y Procesamiento de Señal, vol. 1, 27-30 Abril 1993, páginas 193-196, y documento EP 0393526 A. También se pueden enviar códigos de escape teniendo en cuenta los subsímbolos, por ejemplo para el 1er y 4° subsímbolo solamente, mientras que el 2° y 3er subsímbolo pueden ser codificados en forma directa con palabras codificadas de 4 dimensiones. El proceso de codificación se completa tan pronto como todos los subsímbolos puedan ser representados por medio de secuencias de escape y terminación.
[0039] La realización anterior se describirá a continuación con mayor detalle teniendo en cuenta un ejemplo para la codificación del símbolo de 6 dimensiones Y(0,0)=(0,0,0,-1,0,0,0,0,4,0,-1,-5,-4,4,7,5).
Nivel 0:
[0040] En el nivel 0, la dimensionalidad I del libro de códigos se establece en 16 y la cantidad de subsímbolos M se establece en 1, el índice m establecido en consecuencia en 0 para que Y(0,0) tenga la forma anterior, como se esquematiza también en la Fig. 3 en 100. En la etapa S104 se determina si un símbolo Y(0,0) puede ser completamente representado por una palabra codificada del libro de códigos de 16 dimensiones como se muestra en la Fig. 2(a). Como se observa en la Fig. 2(a) no hay palabra codificada correspondiente para el símbolo Y(0,0), es decir, el intervalo de palabras codificadas disponibles está excedido. De esta manera, la palabra codificada C(0,0) seleccionada es la palabra codificada para la secuencia de escape ESC16. Esta palabra codificada es seleccionada y transmitida en la etapa S108. De esta manera, los símbolos restantes no representados por la palabra codificada C(0,0) son S0-S15.
Nivel 1:
[0041] De acuerdo con la etapa S112 de la Fig. 1 se determina que la dimensión J del nuevo símbolo permanece en 16. Como en la etapa S108, la palabra codificada para ESC16 fue seleccionada, se sabe que el símbolo con dimensión J que corresponde a la dimensión actual no puede ser codificada por el libro de códigos actual de modo que en la etapa S114 un nuevo libro de códigos es seleccionado con dimensión I=8. Más específicamente, el libro de códigos o tabla de palabras codificadas como se observa en la Fig. 2(b) es seleccionado y, dado que se determina en la etapa S116 que la dimensión J excede la dimensión I del nuevo libro de códigos, en la etapa S118, el nivel se incrementa al nivel 1 (nivel++), el símbolo 100 que se observa en la Fig. 3 es dividido en el primer símbolo de 8 dimensiones Y(1,0) y el segundo símbolo de 8 dimensiones Y(1,1) como se observa en 102 y 104 en la Fig. 3, y M se establece en 2 indicando que ahora existen dos subsímbolos. De esta manera, el símbolo fue subdividido para ajustarse a la nueva dimensión I del libro de códigos:
Y ( 1, 0> = S 0...S7: { 0 , 0 , 0 , - 1 , 0 , 0 , 0 , 0)
Y {1 , 1) = SEE.S15 ¡ ( 4 , 0 , - 1, - 5 , - 4 , 4 , 7 , 5)
[0042] Las etapas 104 en adelante se repiten para los dos símbolos 102 y 104. Para Y(1,0) se determina que puede ser representado por una palabra codificada del libro de códigos de 8 dimensiones para que la palabra codificada respectiva C(1,0) sea seleccionada y transmitida en la etapa S106 como se indica en la Fig. 3 en el nivel 1. En consecuencia, se selecciona la palabra codificada CW8 para (0,0,0,-1,0,0,0,0), principalmente la palabra codificada "11 1100".
[0043] Como se determina en la etapa S107 que no se ha seleccionado un palabra codificada para todos los símbolos del nivel actual, el procedimiento vuelve a la etapa S104 y además para el segundo símbolo de 8 dimensiones Y(1,1) se determina que (4,0,-1,-5,-4,4,7,5) no puede ser representado por la palabra codificada de 8 dimensiones del libro de códigos de 8 dimensiones que muestra la Fig. 2(b). Por lo tanto, la palabra codificada que indica la secuencia de escape ESC8, principalmente la palabra codificada "0" es seleccionada como lo muestra la Fig. 3 en el nivel 1 y transmitida de acuerdo con la etapa S108. Y los símbolos restantes no representados todavía por una palabra codificada son símbolos S8-S15, principalmente (4,0,-1,-5,-4,4,7,5).
Nivel 2:
[0044] En la etapa S112, la dimensión del nuevo símbolo se establece en 8, es decir, corresponde a la cantidad de símbolos aún no codificados del nivel actual. Nuevamente, como en la etapa S108 la palabra codificada para ESC8 fue seleccionada, se sabe que el símbolo con dimensión J que corresponde a la dimensión actual no puede ser codificado por el libro de códigos actual de modo que en la etapa S114 se selecciona un nuevo libro de códigos con dimensión I=4. A través de la etapa S116 y S118 el nivel se incrementa al nivel 2 (nivel++), el símbolo 104 del nivel 1 no representado por completo por la palabra codificada del libro de códigos de 8 dimensiones es dividido en dos símbolos de 4 dimensiones 106 y 108, principalmente símbolos Y(2,0) y Y(2,1), y M se establece en 2 indicando que existen dos subsímbolos para el nivel 2. En consecuencia, el símbolo fue subdividido para ajustarse a la nueva dimensión I del libro de códigos:
Figure imgf000008_0001
[0045] En la etapa S104 se verifica si el símbolo Y(2,0) puede ser completamente representado por el libro de códigos de 4 dimensiones de la Fig. 2(c). El símbolo Y(2,0) no puede ser completamente representado por una sola palabra codificada, sin embargo, como no todos los valores del símbolo Y(2,0) son diferentes de 1, 0 o -1, el símbolo Y(2,0) es representado por la palabra codificada C(2,0) que corresponde a la palabra codificada en la cual los símbolos "4", "-5" son representados por la secuencia de escape produciendo la palabra codificada CW4=(ESC4,0,-1,ESC4). Esta palabra codificada es seleccionada y transmitida en la etapa S108.
[0046] En la etapa S110 se determina que para el nivel actual L=2 permanecen los subsímbolos para los cuales no se ha seleccionado una palabra codificada, principalmente S12...S15. La dimensión J de este nuevo símbolo es 4, es decir, corresponde a la dimensión actual (etapa 112) de modo que en la etapa S114 la dimensión del libro de códigos se mantiene y el procedimiento procede por la etapa S116 de regreso a la etapa S104 sin dividir la nueva palabra codificada. En consecuencia, Y(2,1) se determina en la etapa S104 si puede ser representada por una palabra codificada de la tabla de la Fig. 2(c). Como los símbolos (-4,4,7,5) no pueden ser representados por el libro de códigos de 4 dimensiones y como ninguno de los valores de este símbolo es -1, 0, o 1, sólo la secuencia de escape es transmitida como palabra codificada C(2,1)=ESC4 en la etapa S108.
[0047] En la etapa S110, los subsímbolos del nivel 2 no representados aún por una palabra codificada son determinados como símbolos Se, su, S12, S13, S14, y S15. En la etapa S114, el próximo libro de códigos con menor dimensión, libro de códigos de 1 dimensión, es seleccionado. A través de las etapas S116 y S118, los símbolos que restan del nivel 2 son divididos en símbolos individuales como se indica en los signos de referencia 110 a 120 en la Fig. 3, es decir, el símbolo fue subdividido para que se ajuste a la nueva dimensión I del libro de códigos:
Y { 3 , 0} = Se: (4)
Y { 3 , 1 } = S u r ( - 5
Figure imgf000008_0002
Y { 3 , 3 ) = S 13: [4)
Y ( 3 , 4 ) - Su : [7)
Y { 3 , 5 ) - S u : (5)
[0048] Cada uno de los símbolos Y(3,0) a Y(3,5) es codificado utilizando uno de los esquemas de codificación descritos anteriormente. En consecuencia, todo el símbolo ha sido ahora codificado por las respectivas palabras codificadas seleccionadas durante los diferentes niveles de codificación y estas palabras codificadas seleccionadas pueden ser combinadas para representar el símbolo en forma codificada.
[0049] Otra realización que utiliza el esquema de codificación de la invención se describe a continuación teniendo en cuenta las Fig. 4 y 5. Sólo se utilizan las palabras codificadas de 16 dimensiones y las palabras codificadas de 4 dimensiones, donde las palabras codificadas de 16 dimensiones pueden representar 16 subsímbolos (valores) "0" vecinos o transmitir información, de los cuales los símbolos de 4 dimensiones subyacentes contienen "0" solamente o contienen símbolos distintos a "0". En caso de que los subsímbolos distintos a "0" estén presentes en la palabra codificada de 16 dimensiones, estos símbolos están representados por una palabra codificada de 4 dimensiones. Como se observa en la Fig. 4, en el nivel 0 en la etapa S200, el símbolo que comprende los subsímbolos 0-15 se presenta para su codificación (véase también la etapa S100 de la Fig. 1). En la etapa S202 se verifica si 16 subsímbolos vecinos de todo el símbolo pueden ser representados por una palabra codificada de 16 dimensiones, es decir, si estos subsímbolos son todos "0" (véase también la etapa S104 de la Fig. 1). Si así fuera, una primera palabra codificada CW1 será seleccionada y transmitida, y el procedimiento de codificación es completado (véanse también las etapas S106 y S107 de la Fig. 1). En caso de que la etapa S202 indique que no todos los subsímbolos o valores del símbolo proporcionado en la etapa S200 son "0", una segunda palabra codificada CW2 es emitida (véase también la etapa S108 de la Fig. 1). Se determina que algunos de los símbolos permanecen sin codificar (véase también la etapa S110 de la Fig. 1), la dimensión de los nuevos símbolos se establece en 4 (véase también la etapa S112 de la Fig. 1), y se selecciona el libro de códigos de 4 dimensiones (véase también la etapa S114 de la Fig. 1). Como la dimensión del libro de códigos y la dimensión del nuevo símbolo no es la misma, el símbolo es dividido (véanse también las etapas S116 y S118 de la Fig. 1) en cuatro grupos de subsímbolos como se indica en las etapas S204 a S210, el nivel es incrementado al nivel 1 y M se establece en 4.
[0050] La palabra codificada CW2 seleccionada y transmitida no sólo indica, por ejemplo, por medio de un mecanismo de escape, que debe transmitirse información adicional, sino que además contiene información sobre cuáles de los símbolos de 4 dimensiones mostrados en las etapas S204 a S210 consiste en subsímbolos/valores "0" solamente y cuáles símbolos de 4 dimensiones de las etapas S204 a S210 contiene subsímbolos diferentes a "0". La palabra codificada CW2 indica por consiguiente que deben transmitirse palabras codificadas adicionales sólo para los símbolos de 4 dimensiones que contienen subsímbolos diferentes a "0". En las etapas S212 a S218 se determina si los subsímbolos respectivos de las etapas S204 a S210 incluyen sólo "0" o no. En caso que se determine en la etapa S212 que un subsímbolo sólo incluye "0", no se necesita una acción adicional. De lo contrario (véase la etapa S104 de la Fig. 1) una o más palabras codificadas CW3, CW4, CW5, CW6 son emitidas (véanse las etapas S106 y S107 de la Fig. 1).
[0051] En consecuencia, en caso de que la palabra codificada CW2 señale que quedan subsímbolos que contienen valores diferentes a "0", para cada uno de estos símbolos de 4 dimensiones se transmite una palabra codificada CW3, CW4, CW5 y/o CW6 como se muestra en el nivel 1 en la Fig. 4. Estas palabras pueden ser palabras codificadas de terminación o pueden contener un mecanismo de escape. En consecuencia, por medio de las palabras codificadas CW3-CW6, los subsímbolos respectivos pueden ser decodificados. De manera alternativa, sería de preferencia codificar los subsímbolos del nivel 1 de manera la similar descrita anteriormente con respecto a la primera realización, principalmente utilizando la tabla de palabras codificadas de 4 dimensiones y la tabla de palabras codificadas de 1 dimensión.
[0052] La Fig. 5 muestra un ejemplo de una tabla de palabras codificadas que puede utilizarse para la codificación del símbolo en el nivel 0 que muestra la Fig. 4. Una primera palabra codificada CW1 con valor específico se utiliza en caso de que todos los valores del símbolo sean "0". De lo contrario, se utiliza la palabra codificada CW2 indicando que no todos los símbolos son "0" e incluyendo información adicional sobre cuál de los cuatro subsímbolos incluye "0" solamente, el cual será representado proporcionando un "0" para el término xn. De lo contrario, en caso de que los subsímbolos incluyan valores diferentes a "0", la posición xn respectiva podrá ser codificada utilizando un "1".
[0053] A continuación se describirá un ejemplo del proceso de codificación de acuerdo con la segunda realización descrita anteriormente de la invención teniendo en cuenta el símbolo de la primera realización.
Nivel 0:
[0054] La dimensionalidad del símbolo es 16 y el símbolo Y(0,0)=(0,0,0,-1,0,0,0,0,4,0,-1,-5,-4,4,7,5) es proporcionado en la etapa S200. En la etapa S204 se verifica si el símbolo Y(0,0) puede ser representado con la palabra codificada del libro de códigos de la Fig. 5. Se determina que no hay palabra codificada disponible y por ende la palabra codificada CW2 es transmitida indicando que no todos los valores del símbolo son "0". Además, se incluye información sobre cuál de los subsímbolos 0-3, 4-7, 8-9 y 12-15 incluye sólo "0" o incluye valores diferentes a "0". Los primeros subsímbolos proporcionados en la etapa S204 son símbolos (0,0,0,-1), los segundos subsímbolos son (0,0,0,0), los terceros subsímbolos son (4,0,-1,-5) y los cuartos subsímbolos son (-4,4,7,5). En consecuencia, la palabra codificada CW2 de acuerdo con la Fig. 5 es "11 1011" indicando que el símbolo completo no incluye valores diferentes a "0" y que los subsímbolos 4-7 incluyen sólo "0".
Nivel 1:
[0055] La dimensión de la palabra codificada se selecciona ahora en 4 y aquellos subsímbolos indicados por la palabra codificada 2 con un "1" requieren otra codificación. En consecuencia, los primeros, terceros y cuartos subsímbolos son codificados por la palabra codificada CW3, CW5 y CW6, respectivamente ya que la salida de la etapa S212 indica que los subsímbolos proporcionados en la etapa S204 incluye símbolos diferentes a "0".
[0056] A continuación se describirán realizaciones del esquema de decodificación de acuerdo con la invención. La Fig. 6 es un diagrama de flujo que representa una realización del esquema de decodificación de la invención. En el decodificador, se recibe una corriente de bits en la etapa S300 y el nivel para la decodificación se establece en 0. El decodificador tiene conocimiento de la dimensión del símbolo recibido en forma codificada y establece en la etapa S302 la dimensión I del libro de códigos a la dimensión N del símbolo. Se supone que todas las palabras codificadas que representan un símbolo a decodificar se encuentran presentes o son recibidas en el decodificador. En la etapa S304, la próxima palabra codificada es decodificada y se determina en la etapa S306 si un símbolo está completamente representado por la palabra codificada C(L,m) decodificada y en caso de que lo esté, en la etapa S308 se selecciona una entrada del libro de códigos presente utilizando la palabra codificada produciendo así el símbolo. En la etapa S309 se determina si todas las palabras codificadas para el nivel actual fueron decodificadas (lo que significa que todo el símbolo fue decodificado). Si es así, el proceso de decodificación estará completo. De lo contrario, el procedimiento vuelve a la etapa S304 para la decodificación de la próxima palabra codificada del nivel actual.
[0057] En caso de que la entrada asociada con la palabra codificada en el libro de códigos indique que la misma no representa todo el símbolo, el procedimiento procede con la etapa S310. En la etapa S310, el símbolo es decodificado de acuerdo con la entrada asociada con la palabra codificada C(L,m) (por ejemplo, una secuencia de escape es decodificada lo que indica que seguirán palabras codificadas adicionales), y en la etapa S312 se determina cuántos subsímbolos del nivel actual no fueron representados aún por una palabra codificada. La dimensión del nuevo símbolo se establece entre 1 y N en la etapa S314. En la etapa S316, se selecciona una nueva dimensión I del libro de códigos, si fuera necesario, y la nueva dimensión es entre 1 y la dimensión del nuevo símbolo. En consecuencia, en caso de que una pluralidad de subsímbolos de una dimensión específica necesite ser decodificada, el libro de códigos permanece en la misma dimensión en la etapa S316 para que en la etapa S318 se determine que el símbolo no excede la dimensión del libro de códigos de manera que los subsímbolos restantes del mismo nivel de decodificación puedan ser ejecutados. De lo contrario, en caso de que un nuevo libro de códigos con menor dimensión sea seleccionado se determina en la etapa S318 que los símbolos restantes exceden la dimensión del libro de códigos de manera que en la etapa S320 el nivel y M son incrementados, y se determina que el símbolo original fue dividido en una pluralidad de subsímbolos para los cuales las próximas palabras codificadas serían recibidas y decodificadas repitiendo las etapas S304-S316.
[0058] El esquema de decodificación previo será descrito a continuación teniendo en cuenta un ejemplo, más específicamente teniendo en cuenta el ejemplo dado utilizando las tablas de palabras codificadas de la Fig. 2. En la Fig. 7, se supone que un decodificador que comprende un registro 130 del decodificador proporcionado para recibir subsímbolos o valores respectivos del símbolo original fue codificado de acuerdo con las realizaciones previas.
Nivel 0:
[0059] En el decodificador, en la etapa S300, el nivel L se establece en 0 y el decodificador tiene conocimiento de que la dimensionalidad N del símbolo a ser decodificado es 16 para que la dimensionalidad del libro de códigos I sea establecida también en la etapa S302 a 16. En la etapa S304 se recibe la palabra codificada C(0,0) lo que indica un mecanismo de escape ESC16 que indica que el símbolo Y(0,0) no puede ser representado por la palabra codificada del libro de códigos de 16 dimensiones de la Fig. 2(a). Por lo tanto, todas las posiciones para S0-S15 en el registro 130 permanecen vacías ya que no existe un valor decodificado disponible aún. En consecuencia, los símbolos que restan ser decodificados son todos los 16 símbolos S0-S15. La dimensión del libro de códigos es conmutada a 8 en la etapa S314. Como los símbolos que restan ser decodificados y la dimensión del próximo libro de códigos son diferentes, en la etapa S320, el nivel se incrementa al nivel 1 y se determina que para el próximo nivel se reciban dos palabras codificadas.
Nivel 1:
[0060] En la etapa S304 se recibe la palabra codificada C(1,0) y en la etapa S306 se determina que esta palabra codificada representa por completo el primer de los subsímbolos de 8 dimensiones para el nivel 1 de modo que la entrada asociada con CW8 sea seleccionada de la tabla, poblando así las posiciones de registro para S0-S7 con los respectivos valores, en el ejemplo previo con los valores (0,0,0,-1,0,0,0,0) como se indica por los campos sombreados en la Fig. 7 en el nivel 1. Se determina luego en la etapa S309 que no todas las palabras codificadas para el nivel 1 ya han sido decodificadas de modo que el procedimiento vuelve a la etapa S304 para la decodificación de la próxima palabra codificada C(1,1) del nivel 1. La palabra codificada C(1,1) indica un mecanismo de escape, principalmente ESC8 como lo muestra la Fig. 7. En consecuencia, se determina en la etapa S308 que el símbolo no puede ser decodificado y que los símbolos restantes son símbolos S8-S15, de modo que las posiciones de registro correspondientes en el registro 130 permanecen vacías como lo indican las posiciones no sombreadas mostradas de la Fig. 7 en el nivel 1.
[0061] En la etapa S312 se determina que 8 subsímbolos del nivel 1 no pueden ser representados y en la etapa S316 el libro de códigos de 4 dimensiones es seleccionado cuya dimensión es menor a la cantidad de símbolos restantes para que en la etapa S318 el procedimiento proceda a la etapa S320 donde el nivel es incrementado.
Nivel 2:
[0062] En la etapa S304, la próxima palabra codificada C(2,0), la primera palabra codificada para el nivel 2 es recibida la cual puede ser parcialmente decodificada como símbolos Sg, S10 directamente representados y para los símbolos S8 y S11 se transmiten códigos de escape para que en la etapa S310 las porciones de registro Sg y S10 sean pobladas mientras que las porciones de registro S8 y S11 permanecen vacías. El símbolo de 8 dimensiones del nivel 1 fue sólo parcialmente decodificado y los símbolos restantes son símbolos S8 y S11. Sin embargo, la dimensión de la palabra codificada se mantiene en la etapa S316 para que en la etapa S304 la próxima palabra codificada C(2,1) sea recibida y decodificada e indique que ninguno de los símbolos S12-S15 está representado ya que sólo se transmite el mecanismo de escape. Por ende, en la etapa S312 se determina que los símbolos S12-S15 persisten.
Nivel 3:
[0063] Como no existen otras palabras codificadas para el segundo nivel, la dimensión del libro de códigos es conmutada a uno y todos esos símbolos no decodificados aún, son decodificados en el nivel 3 por medio de las respectivas palabras codificadas recibidas y decodificadas en la etapa S304 que directamente representan los respectivos símbolos poblando así todo el registro del decodificador 130 que se muestra en la Fig. 7 y produciendo así todo el símbolo decodificado.
La palabra codificada decodificada C(3,0) representa S8 en forma completa (en combinación con información transmitida para S8 en el nivel 2)
La palabra codificada decodificada C(3,1) representa S11 en forma completa (en combinación con información transmitida para S11 en el nivel 2)
La palabra codificada decodificada C(3,2) representa S12 en forma completa
La palabra codificada decodificada C(3,3) representa S13 en forma completa
La palabra codificada decodificada C(3,4) representa S14 en forma completa
La palabra codificada decodificada C(3,5) representa S15 en forma completa
[0064] Con respecto al nivel 3 de decodificación se observa que la diferencia básica entre las palabras codificadas C(3,0), C(3,1) y las palabras codificadas C(3,2)-C(3,5) radica en que las primeras palabras codificadas mencionadas basan la reconstrucción del símbolo en la palabra codificada desde el segundo nivel C(2,0), mientras que las últimas palabras codificadas mencionadas no lo hacen. En el ejemplo anterior, la palabra codificada C(2,0) señala que los símbolos S8 y S11 exceden /-1. En la palabra codificada C(2,1) se señala que ninguno de los símbolos S12-S15 es resuelto, es decir, toda la información necesaria será transmitida a través de las palabras codificadas C(3,2)-C(3,5).
[0065] En la estrategia de codificación/decodificación descrita anteriormente, la dimensión del libro de códigos para una cierta cantidad de símbolos restantes seleccionada en la etapa S316 se fija y sincroniza en el codificador y el decodificador. Por ejemplo, en el ejemplo previo en caso de que en el nivel 0 la cantidad de símbolos restantes, es decir, símbolos no decodificados, sea 16, la dimensión del libro de códigos conmuta a 8. De manera similar, cuando la cantidad de símbolos restantes, no decodificados es 8, la dimensión conmuta a 4. Además, el orden en el cual las palabras codificadas son proporcionadas por el codificador y por el cual son decodificadas se fija en el codificador/decodificador, es decir, todas las palabras codificadas por nivel son codificadas/decodificadas o todos los niveles por palabra codificada.
[0066] La Fig. 8 ilustra el esquema de decodificación de acuerdo con la invención teniendo en cuenta la decodificación de un símbolo que fue codificado de acuerdo con la realización de la Fig. 4. En la etapa S300, el nivel se establece en 0 y la dimensión del libro de códigos se establece en 16, es decir, se selecciona el libro de códigos de la Fig. 5. En la etapa S304 se recibe la primera palabra codificada C(0,0) que es la palabra codificada CW2(111011). Esto indica que no todos los símbolos del símbolo de 16 dimensiones son "0", sin embargo, el segundo grupo de subsímbolos, principalmente subsímbolos 4-7 son 0 mientras que todos los demás grupos de subsímbolos incluyen valores diferentes a 0. En consecuencia, en la etapa S306 se determina que el símbolo Y(0,0) no puede ser completamente decodificado, sin embargo, en la etapa S310 se determina que el símbolo puede ser parcialmente decodificado para que en las posiciones de registro del decodificador S4-S7, se introduzcan "0" como se indica en la Fig. 8 por medio de las porciones sombreadas del registro 130.
[0067] Se determinan los subsímbolos restantes, principalmente los símbolos S0-S3 y S8-S15 y el libro de códigos es conmutado en S316 a un libro de códigos de 4 dimensiones y las próximas tres palabras codificadas recibidas son decodificadas y representan los símbolos respectivos S0-S3, S8-S11 y S12-S15 por medio de las palabras codificadas CW3, CW5 y CW6 poblando así las posiciones de registro restantes del decodificador como lo muestra la Fig. 8 en el nivel 1. La decodificación en el nivel 1 se realiza utilizando la información adicional de la palabra codificada C(0,0) del nivel 0 a partir del cual se conoce para qué grupos de subsímbolos se utilizan las palabras codificadas recibidas para el nivel 1.
[0068] A continuación, se hace referencia a las Fig. 9 y 10 que ilustran un codificador y decodificador ilustrativos que operan de acuerdo con los esquemas del codificador y decodificador de las realizaciones de la invención.
[0069] De acuerdo con el codificador ilustrativos mostrado en la Fig. 9 una señal mono, una señal estéreo o una señal multicanal es introducida en una etapa común de preprocesamiento 200. La etapa de preprocesamiento común 200 puede tener una funcionalidad de estéreo conjunto, una funcionalidad envolvente, y/o una funcionalidad de ampliación de ancho de banda. En la salida de la etapa 200 se encuentra un canal mono, un canal estéreo o múltiples canales que se introducen en uno o más conmutadores 202. El conmutador 202 puede proporcionarse para cada salida de la etapa 200, cuando la etapa 200 posee dos o más salidas, es decir, cuando la etapa 200 emite una señal estéreo o una señal multicanal. Por ejemplo, el primer canal de una señal estéreo podrá ser un canal de voz y el segundo canal de la señal estéreo podría ser un canal de música. En esta situación, la decisión en la etapa de decisión 204 puede ser diferente entre los dos canales para el mismo instante. El conmutador 202 es controlado por la etapa de decisión 204. La etapa de decisión comprende un discriminador y recibe, como entrada, una entrada de señal en la etapa 200 o una salida de señal por la etapa 200. En forma alternativa, la etapa de decisión 204 puede también recibir una información colateral incluida en la señal mono, la señal estéreo o la señal multicanal o al menos está asociada con dicha señal, donde existe la información, la cual fue, por ejemplo, generada al producirse originalmente la señal mono, la señal estéreo o la señal multicanal.
[0070] En una realización, la etapa de decisión no controla la etapa de preprocesamiento 200, y la flecha entre la etapa 204 y 200 no existe. En otra realización, el procesamiento en la etapa 200 es controlado hasta un cierto grado por la etapa de decisión 204 con el fin de determinar uno o más parámetros en la etapa 200 basados en la decisión. Sin embargo, esto no influirá en el algoritmo general de la etapa 200 para que la principal funcionalidad en la etapa 200 se encuentre activa irrespectivamente de la decisión en la etapa 204.
[0071] La etapa de decisión 204 activa el conmutador 202 con el fin de suministrar la salida de la etapa de preprocesamiento común en la porción de codificación de frecuencia 204 ilustrada en una ramificación superior de la Fig. 9 o una porción de codificación en el dominio LPC (sigla en inglés que corresponde a la traducción Codificación de Predicción Lineal) 206 ilustrada en una ramificación inferior en la Fig. 9.
[0072] En una realización, el conmutador 202 conmuta entre las dos ramificaciones de codificación 206, 208. En otra realización, pueden existir ramificaciones de codificación adicionales como una tercera ramificación de codificación o incluso una cuarta ramificación de codificación o incluso más ramificaciones de codificación. En una realización con tres ramificaciones de codificación, la tercera ramificación de codificación puede ser similar a la segunda ramificación de codificación, pero incluye un codificador de excitación diferente del codificador de excitación 210 en la segunda ramificación 208. En esta realización, la segunda ramificación comprende la etapa LPC 212 y un libro de codificación basado en un codificador de excitación 210 como en ACELP (sigla en inglés que corresponde a la traducción predicción lineal con excitación por código algebraico), y la tercera ramificación comprende una etapa LPC y un codificador de excitación que opera en una representación espectral de la señal de salida de la etapa LPC.
[0073] La ramificación de codificación en el dominio de la frecuencia comprende un bloque de conversión espectral 214 el cual es operativo para convertir una señal de salida de la etapa de preprocesamiento común en el dominio espectral. El bloque de conversión espectral puede incluir un algoritmo MDCT (sigla en inglés correspondiente a la traducción transformada de coseno discreta modificada), un algoritmo QMF (sigla en inglés correspondiente a la traducción filtro espejo en cuadratura), un algoritmo FFT (sigla en inglés correspondiente a la traducción protocolo de transferencia de ficheros), un análisis Wavelet o un banco de filtros como un banco de filtros tomado por muestreo en forma crítica con una cierta cantidad de canales de banco de filtros, donde las señales de subbandas en este banco de filtros pueden ser señales de valor real o valor complejo. La salida del bloque de conversión espectral 214 se codifica utilizando un codificador de audio espectral 216, el cual puede operar de acuerdo con el esquema de codificación de las realizaciones de la invención.
[0074] La ramificación de codificación inferior 208 comprende un analizador de modelo fuente como la LPC 212, que emite dos tipos de señales. Una señal es una señal de información LPC utilizada para controlar las características de filtrado de un filtro de síntesis LPC. Esta información LPC se transmite a un decodificador. La otra señal de salida 212 de la etapa LPC es una señal de excitación o señal en dominio LPC, que es introducida en un codificador de excitación 210. El codificador de excitación 210 puede operar de acuerdo con el esquema de codificación de las realizaciones de la invención.
[0075] La decisión en la etapa de decisión 204 puede ser una señal adaptativa para que la etapa de decisión 204 realice una discriminación de música/voz y controle el conmutador 202 de modo que las señales de música se introduzcan en la ramificación superior 206, y las señales de voz en la ramificación inferior 208. En una realización, la etapa de decisión 202 suministra su información de decisión en una corriente de bits de salida, para que un decodificador pueda utilizar esta información de decisión con el fin de realizar las operaciones de decodificación correctas.
[0076] Dicho decodificador se ilustra en la Fig. 10. Después de la transmisión, la salida de la señal por el codificador de audio espectral 216 se introduce en un decodificador de audio espectral 218. La salida de señal del decodificador de audio espectral 218 se introduce en un conversor en el dominio del tiempo 220. La salida del codificador de excitación 210 de la Fig. 9 se introduce en el decodificador de excitación 222 que emite la señal de dominio LPC. Los decodificadores 218 y 222 pueden operar de acuerdo con el esquema de decodificación de las realizaciones de la invención. La señal de dominio LPC se introduce en una etapa de síntesis LPC 224, que recibe, como entrada adicional, la información LPC generada por la etapa de análisis LPC correspondiente 212. La salida del conversor de dominio en el tiempo 220 y/o la salida de la etapa de síntesis LPC 224 se introducen en un conmutador 226. El conmutador 226 es controlado a través de una señal de control del conmutador que fue, por ejemplo, generada por la etapa de decisión 202, o que fue proporcionada en forma externa por medio de un creador de la señal mono, señal estéreo o señal multicanal original.
[0077] La salida del conmutador 226 es una señal mono completa que, subsecuentemente, se introduce en una etapa de posprocesamiento común 228, que puede realizar un procesamiento estéreo conjunto o procesamiento de ampliación de ancho de banda, etc. En forma alternativa, la salida del conmutador podría ser también una señal estéreo o una señal multicanal. Se trata de una señal estéreo, cuando el preprocesamiento incluye una reducción del canal a dos canales. Puede ser también incluso una señal multicanal, cuando existe una reducción del canal a tres canales o no hay reducción de canal pero sólo se realiza una replicación de banda espectral.
[0078] Dependiendo de la funcionalidad específica de la etapa de posprocesamiento común, una señal mono, una señal estéreo o una señal multicanal es emitida la cual, cuando la etapa de posprocesamiento común 228 realiza una operación de ampliación de ancho de banda, posee un mayor ancho de banda que la entrada de la señal en el bloque 228.
[0079] En una realización, el conmutador 226 conmuta entre las dos ramificaciones de decodificación 218, 220 y 222, 224. En otra realización, pueden existir ramificaciones de decodificación adicionales como una tercera ramificación de decodificación o incluso una cuarta ramificación de decodificación o incluso más ramificaciones de decodificación. En una realización con tres ramificaciones de decodificación, la tercera ramificación de decodificación puede ser similar a la segunda ramificación de decodificación, pero incluye un decodificador de excitación diferente del decodificador de excitación 222 en la segunda ramificación 222, 224. En esta realización, la segunda ramificación comprende la etapa LPC 224 y un libro de codificación basado en un decodificador de excitación como en ACELP, y la tercera ramificación comprende una etapa LPC y un decodificador de excitación que opera en una representación espectral de la señal de salida de la etapa LPC 224.
[0080] En otra realización, la etapa de preprocesamiento común comprende un bloque estéreo envolvente/conjunto el cual genera, como salida, parámetros de estéreo conjunto y una señal de salida mono, generada al mezclar en forma descendente la señal de entrada con dos o más canales. Generalmente, la señal en la salida del bloque 200 puede también ser una señal con más canales, pero debido a la operación de mezcla en forma descendente, la cantidad de canales en la salida del bloque 200 será menor a la cantidad de canales introducidos en el bloque 200. En esta realización, la ramificación de codificación de frecuencia comprende una etapa de conversión espectral y una etapa de cuantización/codificación conectada en forma subsecuente. La etapa de cuantización/codificación puede incluir cualquiera de las funcionalidades conocidas de los codificadores modernos en el dominio de la frecuencia como el codificador AAC. Además, la operación de cuantización en la etapa de cuantización/codificación puede ser controlada a través de un módulo psicoacústico que genera información psicoacústica como un valor umbral de enmascaramiento psicoacústico sobre la frecuencia, donde esta información se introduce en la etapa. Preferentemente, la conversión espectral se realiza utilizando una operación MDCT, la cual, con mayor preferencia, consiste en la operación MDCT con deformación temporal, donde la fuerza o, generalmente, la fuerza de deformación puede ser controlada entre cero y una alta fuerza de deformación. En una fuerza de deformación cero, la operación MDCT es una operación MDCt sencilla conocida en la técnica. El codificador en el dominio LPC puede incluir un núcleo ACELP que calcula una ganancia de tono, un retardo de tono y/o información del libro de códigos como un índice del libro de códigos y ganancia del código.
[0081] La presente invención no se limita al escenario anterior. En cambio, la estrategia de la invención puede también utilizarse en codificadores y decodificadores convencionales MP3 o AAC.
[0082] La Fig. 11 ilustra un sistema para transmitir un símbolo de un transmisor a un receptor. El sistema mostrado de la Fig. 11 comprende un transmisor 300 que incluye un codificador 302, por ejemplo, un codificador como lo muestra la Fig. 9. En general, el codificador 302 opera de acuerdo con las realizaciones descritas previamente, es decir, una señal de entrada recibida en la entrada 304 del transmisor 300 incluye un símbolo S codificado por el codificador 302 de acuerdo con las realizaciones descritas anteriormente para proporcionar en una salida 306 del transmisor una señal de salida que incluye una o más palabras codificadas CW. El sistema comprende un enlace de comunicación, por ejemplo, una red 308 a través de la cual la señal que incluye las palabras codificadas CW es transmitida a un receptor 310. El receptor 310 comprende una entrada 312 para recibir una señal de entrada que incluye la pluralidad de palabras codificadas proporcionadas a un decodificador 314. El decodificador 314 puede, por ejemplo, ser un decodificador como lo muestra la Fig. 10 u otro tipo de decodificador que opera de acuerdo con las realizaciones de la invención. Como se describe previamente, el decodificador 314 es operativo para generar, teniendo en cuenta las palabras codificadas recibidas CW, el símbolo S, emitido por una señal de salida a través de una salida 316 del receptor 310. El símbolo decodificado puede utilizarse para otros procesamientos, como la generación de señales de audio, vídeo o de otro tipo.
[0083] En las realizaciones previas se han descrito configuraciones específicas de libros de códigos, sin embargo, la invención no se limita a dichas realizaciones. En cambio, se pueden utilizar diferentes configuraciones de libros de códigos.
[0084] En otras realizaciones, dicha configuración puede comprender palabras codificadas con una menor dimensión, mientras que el intervalo de valores representados por las palabras codificadas del segundo libro de códigos es mayor que el intervalo de valores representado por el primer libro de códigos.
[0085] En otra realización, el subsecuente libro de códigos puede comprender palabras codificadas con menor dimensionalidad, donde el intervalo de valores representado por las palabras codificadas del segundo libro de códigos y el primer libro de códigos es el mismo.
[0086] En otra realización más, el segundo libro de códigos puede comprender palabras codificadas con la misma dimensionalidad como las palabras codificadas del primer libro de códigos, donde el intervalo de valores representado por el segundo libro de códigos es mayor al intervalo de valores representado por el primer libro de códigos.
[0087] Las realizaciones previas han sido descritas en el contexto de un esquema de codificación/decodificación para la codificación/decodificación de valores espectrales cuantizados. Sin embargo, la presente invención no se limita a dicho ambiente, en cambio, cualquier tipo de señal de información puede codificarse/decodificarse de acuerdo con los principios de la presente invención.
[0088] Aunque algunos aspectos han sido descritos en el contexto de un aparato, resulta evidente que estos aspectos también representan una descripción del procedimiento correspondiente, donde un bloque o dispositivo corresponde a una etapa del procedimiento, o rasgo de una etapa del procedimiento. En forma análoga, los aspectos descritos en el contexto de una etapa del procedimiento representan además una descripción de un bloque o elemento correspondiente o rasgo de un aparato correspondiente.
[0089] Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención pueden implementarse en hardware o software. La implementación puede realizarse utilizando un medio de almacenamiento digital, por ejemplo, un disquete, DVD, CD, memoria ROM, PROM, EPROM, EEPROM o FLASH, con señales de control capaces de ser leídas en forma electrónica almacenadas en ellos, que cooperan (o son capaces de cooperar) con un sistema informático programable tal que se lleve a cabo el procedimiento respectivo. Algunas realizaciones de acuerdo con la invención comprenden un portador de datos con señales de control capaces de ser leídas en forma electrónica, capaces de cooperar con un sistema informático programable tal que se lleve a cabo uno de los procedimientos descritos.
[0090] Generalmente, las realizaciones de la presente invención pueden implementarse como un producto de programa informático con un código de programa, siendo el código de programa operativo para desarrollar uno de los procedimientos cuando el producto de programa informático es utilizado en un ordenador. El código de programa puede, por ejemplo, ser almacenado en un portador capaz de ser leído por una máquina. Otras realizaciones comprenden el programa informático para desarrollar uno de los procedimientos descritos en esta invención, almacenado en un portador capaz de ser leído por una máquina. En consecuencia, una realización del procedimiento de la invención consiste, por lo tanto, en un programa informático con un código de programa para desarrollar uno de los procedimientos descritos en esta invención, cuando el programa informático es ejecutado en un ordenador. Otra realización del procedimiento de la invención consiste, por lo tanto, en un portador de datos (o medio de almacenamiento digital, o medio capaz de ser leído por un ordenador) que comprende, el programa informático grabado en los mismos, para desarrollar uno de los procedimientos descritos en esta invención. Otra realización del procedimiento de la invención consiste, por lo tanto, en una corriente de datos o secuencia de señales que representan el programa informático para desarrollar uno de los procedimientos descritos en esta invención. La corriente de datos o secuencia de señales puede, por ejemplo, ser configurada para ser transferida a través de una conexión de comunicación de datos, por ejemplo, por Internet. Otra realización comprende un medio de procesamiento, por ejemplo, un ordenador, o un dispositivo de lógica programable, configurado o adaptado para desarrollar uno de los procedimientos descritos en esta invención. Otra realización comprende un ordenador con programa informático instalado en el mismo, para desarrollar uno de los procedimientos descritos en esta invención.
[0091] En algunas realizaciones, un dispositivo de lógica programable (por ejemplo una matriz de puertas programables en campo) puede utilizarse para desarrollar una de las funcionalidades de los procedimientos descritos en esta invención. En algunas realizaciones, una matriz de puertas programables en campo puede cooperar con un microprocesador con el fin de desarrollar uno de los procedimientos descritos en esta invención. Generalmente, los procedimientos son preferentemente desarrollados por cualquier aparato de hardware.
[0092] Las realizaciones descritas anteriormente son meramente ilustrativas para los principios de la presente invención. Se entiende que las modificaciones y variaciones de las disposiciones y los detalles descritos en esta invención resultarán evidentes para los expertos en la materia. Por lo tanto, se intenta limitar sólo por el alcance de las reivindicaciones de la patente inminentes y no por los detalle específicos presentados a modo de descripción y explicación de las realizaciones de esta invención.

Claims (16)

REIVINDICACIONES
1. Un procedimiento para la codificación de un símbolo original que comprende una cantidad predefinida de valores (S0-SN-1), comprendiendo el procedimiento:
a) determinar (S104) si el símbolo puede ser codificado por una palabra codificada de un primer libro de códigos; incluyendo el primer libro de códigos palabras codificadas para una pluralidad de símbolos y una palabra codificada predefinida que indica que un símbolo no puede ser codificado por una palabra codificada del primer libro de códigos;
b) en caso de que el símbolo pueda ser codificado por una palabra codificada del primer libro de códigos, seleccionar y transmitir (S106) la palabra codificada asociada con el símbolo del primer libro de códigos; y c) en caso de que el símbolo no pueda ser codificado por una palabra codificada del primer libro de códigos:
c.1) seleccionar del primer libro de códigos y transmitir (S108) la palabra codificada predefinida, y c.2) dividir (S118) el símbolo en una pluralidad de primeros subsímbolos, comprendiendo cada uno de los primeros subsímbolos una cantidad predefinida de valores del símbolo original, y seleccionary transmitir (S106) una palabra codificada para cada uno de los primeros subsímbolos a partir de un segundo libro de códigos,
donde el símbolo codificado está representado únicamente por la palabra codificada seleccionada en la etapa b) del primer libro de códigos, o por la palabra codificada predefinida seleccionada en la etapa c.1) del primer libro de códigos y la pluralidad de palabras codificadas seleccionadas en la etapa c.2) del segundo libro de códigos.
2. El procedimiento de la reivindicación 1, que comprende además, en caso de que se haya seleccionado, para uno o más de los primeros subsímbolos, una palabra codificada del segundo libro de códigos que indique que el primer subsímbolo respectivo no puede ser codificado por una palabra codificada del segundo libro de códigos: d) para cada primer subsímbolo que no puede ser codificado por una palabra codificada del segundo libro de códigos:
dividir el primer subsímbolo en una pluralidad de segundos subsímbolos, comprendiendo cada uno de los segundos subsímbolos una cantidad predefinida de valores del primer subsímbolo, y
seleccionar una palabra codificada para cada uno de los segundos subsímbolos a partir de un tercer libro de códigos.
3. El procedimiento de la reivindicación 2, donde
el segundo o el tercer libro de códigos comprende una primera palabra codificada que indica que un subsímbolo no puede ser codificado por una palabra codificada de los segundo o tercer libros de códigos;
el subsímbolo está representado por una segunda palabra codificada de los segundo o tercer libros de códigos en caso de que cada valor del subsímbolo se encuentre dentro de un intervalo predefinido de valores,
el subsímbolo está representado por medio de una combinación de uno o más valores del subsímbolo y de la primera palabra codificada, donde esos valores del subsímbolo que no se encuentran en el intervalo predefinido están representados por la palabra codificada, y
el subsímbolo está representado por medio de la palabra codificada únicamente en caso de que ninguno de los valores de los subsímbolos se encuentre dentro del intervalo predefinido.
4. El procedimiento de la reivindicación 3, que comprende además:
en caso que el subsímbolo o uno o más valores del subsímbolo estén representados por la palabra codificada específica, seleccionar, para cada valor del subsímbolo representado por la palabra codificada específica, una palabra codificada de otro libro de códigos.
5. El procedimiento de una de las reivindicaciones 2 a 4, donde, en la etapa d)
una palabra codificada es seleccionada del segundo libro de códigos indicando que un primer subsímbolo no puede ser codificado por una palabra codificada del segundo libro de códigos, y una palabra codificada es seleccionada del tercer libro de códigos para cada uno de los segundos subsímbolos.
6. El procedimiento de una de las reivindicaciones 1 a 4, donde
en la etapa c), la palabra codificada seleccionada del primer libro de códigos indica además cuál de los primeros subsímbolos comprende una combinación predefinida de valores, y
en la etapa c), para esos primeros subsímbolos que no comprenden la combinación predefinida de valores, una palabra codificada es seleccionada del segundo libro de códigos.
7. Un procedimiento para la decodificación, a partir de una corriente de bits, de una o más palabras codificadas que codifican un símbolo original que comprende una cantidad predefinida de valores, comprendiendo el procedimiento:
a) determinar (S306) si una primera palabra codificada puede representar por completo el símbolo original utilizando un primer libro de códigos; incluyendo el primer libro de códigos palabras codificadas para una pluralidad de símbolos y una palabra codificada predefinida que indica que un símbolo no puede ser codificado por una palabra codificada del primer libro de códigos;
b) en caso de que la primera palabra codificada pueda representar por completo el símbolo original utilizando el primer libro de códigos, seleccionar (S308) el símbolo original del primer libro de códigos utilizando la primera palabra codificada; y
c) en caso de que la primera palabra codificada no pueda representar por completo el símbolo original utilizando el primer libro de códigos, seleccionar (S316) un segundo libro de códigos para la decodificación de los primeros subsímbolos del símbolo original, donde cada uno de los primeros subsímbolos comprende una cantidad predefinida de valores del símbolo original, y seleccionar una entrada para cada uno de los primeros subsímbolos del segundo libro de códigos utilizando una segunda palabra codificada,
donde el símbolo original está representado por los valores asociados únicamente con la palabra codificada del primer libro de códigos, o asociados con una combinación de la palabra codificada predefinida seleccionada del primer libro de códigos y de la pluralidad de palabras codificadas seleccionadas del segundo libro de códigos, y donde en la etapa c) el primer libro de códigos indica, para la primera palabra codificada, que el símbolo original no puede ser decodificado del primer libro de códigos y, para cada uno de los primeros subsímbolos, una entrada es seleccionada del segundo libro de códigos.
8. El procedimiento de la reivindicación 7, que comprende además:
d) en caso de que el segundo libro de códigos no pueda representar por completo uno de los primeros subsímbolos:
seleccionar un tercer libro de códigos para la decodificación de los segundos subsímbolos del primer subsímbolo, donde cada uno de los segundos subsímbolos comprende una cantidad predefinida de valores del primer subsímbolo, y
seleccionar una entrada para cada uno de los segundos subsímbolos del tercer libro de códigos utilizando una tercera palabra codificada.
9. El procedimiento de la reivindicación 8, donde
en la etapa d), el segundo libro de códigos indica, para una segunda palabra codificada de un primer subsímbolo, que el primer subsímbolo no puede ser decodificado por el segundo libro de códigos y, para cada uno de los segundos subsímbolos, una entrada es seleccionada del tercer libro de códigos.
10. El procedimiento de las reivindicaciones 7 u 8, donde
en la etapa c), el primer libro de códigos indica, para la primera palabra codificada, que el símbolo original no puede ser decodificado a partir del primer libro de códigos y cuál de los primeros subsímbolos comprende una combinación predefinida de valores, y
en la etapa c), para aquellos subsímbolos que no comprenden la combinación predefinida de valores, una entrada es seleccionada del segundo libro de códigos.
11. El procedimiento de una de las reivindicaciones 1 a 10, donde el segundo libro de códigos comprende las palabras codificadas con la misma dimensionalidad que las palabras codificadas en el primer libro de códigos, donde el intervalo de los valores representado por las palabras codificadas del segundo libro de códigos es mayor al intervalo de los valores representado por el primer libro de códigos, o
donde el segundo libro de códigos comprende palabras codificadas de menor dimensionalidad que las palabras codificadas del primer libro de códigos, donde el intervalo de valores representado por las palabras codificadas del segundo libro de códigos y del primer libro de códigos es el mismo, o
donde el segundo libro de códigos comprende palabras codificadas de menor dimensionalidad que las palabras codificadas del primer libro de códigos, donde el intervalo de valores representado por el segundo libro de códigos es mayor al intervalo de valores representado por el primer libro de códigos.
12. Un procedimiento para la transmisión de un símbolo de un transmisor (300) a un receptor (310), comprendiendo el procedimiento:
codificar el símbolo según una de las reivindicaciones 1 a 6,
transmitir las palabras codificadas seleccionadas del transmisor (300) al receptor (310),
decodificar las palabras codificadas recibidas según una de las reivindicaciones 7 a 11 para obtener el símbolo; y proporcionar el símbolo para el procesamiento adicional.
13. Un programa informático para desarrollar, al ser ejecutado en un ordenador, el procedimiento de una de las reivindicaciones 1 a 12.
14. Un codificador, que comprende:
una entrada para recibir una señal de entrada que comprende un símbolo;
un circuito codificador (210, 216) para la codificación del símbolo a partir de la señal de entrada, donde el circuito codificador está configurado para codificar el símbolo de acuerdo con el procedimiento de una de las reivindicaciones 1 a 6; y
una salida para proporcionar una señal de salida que comprende las palabras codificadas seleccionadas que representan el símbolo.
15. Un decodificador, que comprende:
una entrada para recibir una señal de entrada que comprende una pluralidad de palabras codificadas que representan un símbolo;
un circuito decodificador (218, 222) para la decodificación de las palabras codificadas a partir de la señal de entrada, donde el circuito decodificador está configurado para decodificar las palabras codificadas de acuerdo con el procedimiento de una de las reivindicaciones 7 a 11; y
una salida para proporcionar una señal de salida que comprende el símbolo.
16. Un sistema para transmitir un símbolo, de un transmisor a un receptor, comprendiendo el sistema:
un codificador de la reivindicación 14;
un transmisor (300) acoplado al codificador;
un enlace de comunicación (308) acoplado al transmisor (300);
un receptor (310) acoplado al enlace de comunicación (308); y
un decodificador de la reivindicación 15 acoplado al receptor (310).
ES09776891T 2008-07-11 2009-06-30 Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor Active ES2941677T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7985308P 2008-07-11 2008-07-11
PCT/EP2009/004718 WO2010003574A1 (en) 2008-07-11 2009-06-30 Method for encoding a symbol, method for decoding a symbol, method for transmitting a symbol from a transmitter to a receiver, encoder, decoder and system for transmitting a symbol from a transmitter to a receiver

Publications (1)

Publication Number Publication Date
ES2941677T3 true ES2941677T3 (es) 2023-05-24

Family

ID=41198571

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09776891T Active ES2941677T3 (es) 2008-07-11 2009-06-30 Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor

Country Status (18)

Country Link
US (1) US8547255B2 (es)
EP (1) EP2297856B1 (es)
JP (1) JP5106684B2 (es)
KR (1) KR101226566B1 (es)
CN (1) CN102124655B (es)
AR (1) AR072499A1 (es)
AU (1) AU2009267477B2 (es)
BR (1) BRPI0910787B1 (es)
CA (1) CA2730202C (es)
DK (1) DK2297856T3 (es)
ES (1) ES2941677T3 (es)
FI (1) FI2297856T3 (es)
MX (1) MX2011000374A (es)
PL (1) PL2297856T3 (es)
PT (1) PT2297856T (es)
RU (1) RU2493651C2 (es)
TW (1) TWI453734B (es)
WO (1) WO2010003574A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2011000375A (es) * 2008-07-11 2011-05-19 Fraunhofer Ges Forschung Codificador y decodificador de audio para codificar y decodificar tramas de una señal de audio muestreada.
CN102891927A (zh) * 2011-07-17 2013-01-23 白壮 一种基于音频空气传输的手机近距离通信方法
KR101857123B1 (ko) 2011-10-31 2018-05-14 한국전자통신연구원 로봇 소프트웨어간 통신을 위한 데이터 인코딩 및 디코딩 장치와 그 방법
WO2014013294A1 (en) * 2012-07-19 2014-01-23 Nokia Corporation Stereo audio signal encoder
EP2779467B1 (en) * 2013-03-15 2020-05-13 Hughes Network Systems, LLC Staged data compression, including block-level long-range compression, for data streams in a communications system
AU2015258241B2 (en) 2014-07-28 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for selecting one of a first encoding algorithm and a second encoding algorithm using harmonics reduction
WO2016101461A1 (zh) * 2014-12-22 2016-06-30 华为技术有限公司 传输指示信息的方法和装置
RU2668112C1 (ru) 2014-12-22 2018-09-26 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ передачи информации указания
US9503122B1 (en) 2015-05-11 2016-11-22 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that sorts hash chains based on node string match probabilities
US9509337B1 (en) 2015-05-11 2016-11-29 Via Alliance Semiconductor Co., Ltd. Hardware data compressor using dynamic hash algorithm based on input block type
US9509336B1 (en) 2015-05-11 2016-11-29 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that pre-huffman encodes to decide whether to huffman encode a matched string or a back pointer thereto
US9628111B2 (en) 2015-05-11 2017-04-18 Via Alliance Semiconductor Co., Ltd. Hardware data compressor with multiple string match search hash tables each based on different hash size
US9515678B1 (en) 2015-05-11 2016-12-06 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that directly huffman encodes output tokens from LZ77 engine
US10027346B2 (en) 2015-05-11 2018-07-17 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that maintains sorted symbol list concurrently with input block scanning
US9509335B1 (en) 2015-05-11 2016-11-29 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that constructs and uses dynamic-prime huffman code tables
US10756755B2 (en) * 2016-05-10 2020-08-25 Immersion Networks, Inc. Adaptive audio codec system, method and article
US10531099B2 (en) * 2016-09-30 2020-01-07 The Mitre Corporation Systems and methods for distributed quantization of multimodal images
US11196594B2 (en) * 2019-02-28 2021-12-07 Nokia Solutions And Networks Oy Probabilistic signal shaping using multiple codebooks
US11380343B2 (en) 2019-09-12 2022-07-05 Immersion Networks, Inc. Systems and methods for processing high frequency audio signal
US10917109B1 (en) * 2020-03-06 2021-02-09 Centre National De La Recherche Scientifique Methods for storing digital data as, and for transforming digital data into, synthetic DNA

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843389A (en) * 1986-12-04 1989-06-27 International Business Machines Corp. Text compression and expansion method and apparatus
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
JP2998532B2 (ja) * 1993-02-03 2000-01-11 日本電気株式会社 二次元符号化テーブルのアドレス生成回路
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
CA2156889C (en) * 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
DE69739536D1 (de) * 1996-11-06 2009-09-24 Panasonic Corp Methode zur Bilddekodierung mit Kodes variabler Länge
US6622145B2 (en) * 2001-03-30 2003-09-16 Sharp Laboratories Of America Huffman coding for infinite symbol sets
FI110729B (fi) * 2001-04-11 2003-03-14 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
FI110373B (fi) * 2001-04-11 2002-12-31 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
TW584835B (en) * 2002-12-13 2004-04-21 Univ Nat Chiao Tung Method and architecture of digital coding for transmitting and packing audio signals
TWI246255B (en) * 2003-11-14 2005-12-21 Univ Nat Taiwan Parallel embedded block encoder
JP4447903B2 (ja) * 2003-12-11 2010-04-07 キヤノン株式会社 信号処理装置、信号処理方法、記録媒体及びプログラム
TWI242935B (en) * 2004-10-21 2005-11-01 Univ Nat Sun Yat Sen Encode system, decode system and method
US20060106870A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Data compression using a nested hierarchy of fixed phrase length dictionaries
US7209059B2 (en) 2004-12-06 2007-04-24 Matsushita Electric Industrial Co., Ltd. Decoding method and encoding method
US7788106B2 (en) * 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
TW200746655A (en) * 2005-11-18 2007-12-16 Sony Corp Encoding device and method, decoding device and method, and transmission system

Also Published As

Publication number Publication date
WO2010003574A1 (en) 2010-01-14
BRPI0910787A2 (pt) 2016-08-02
US20110200125A1 (en) 2011-08-18
BRPI0910787B1 (pt) 2019-12-03
EP2297856A1 (en) 2011-03-23
US8547255B2 (en) 2013-10-01
AU2009267477A1 (en) 2010-01-14
RU2493651C2 (ru) 2013-09-20
AU2009267477B2 (en) 2013-06-20
CN102124655A (zh) 2011-07-13
CA2730202C (en) 2015-01-20
RU2011104005A (ru) 2012-08-20
PL2297856T3 (pl) 2023-05-08
EP2297856B1 (en) 2023-01-04
JP5106684B2 (ja) 2012-12-26
MX2011000374A (es) 2011-03-15
TW201007706A (en) 2010-02-16
DK2297856T3 (da) 2023-03-20
TWI453734B (zh) 2014-09-21
AR072499A1 (es) 2010-09-01
KR20110038033A (ko) 2011-04-13
CN102124655B (zh) 2014-08-27
CA2730202A1 (en) 2010-01-14
JP2011527540A (ja) 2011-10-27
PT2297856T (pt) 2023-04-10
FI2297856T3 (fi) 2023-03-30
KR101226566B1 (ko) 2013-01-28

Similar Documents

Publication Publication Date Title
ES2941677T3 (es) Procedimiento para codificar un símbolo, procedimiento para decodificar un símbolo, procedimiento para transmitir un símbolo de un transmisor a un receptor, codificador, decodificador y sistema para transmitir un símbolo de un transmisor a un receptor
RU2141166C1 (ru) Способ цифрового кодирования для передачи и/или накопления акустических сигналов
ES2223591T3 (es) Codificacion eficaz de envolvente especial utilizando una resolucion tiempo/frecuencia variable.
EP0826275B1 (en) Method of and device for coding a digital information signal
US8046236B2 (en) Apparatus and method for producing a data stream and apparatus and method for reading a data stream
US7756698B2 (en) Sound decoder and sound decoding method with demultiplexing order determination
CA2601821A1 (en) Planar multiband antenna
CN1322405A (zh) 信息字的平均信息量编码设备和方法,平均信息量编码信息字的解码设备和方法
EP1854218B1 (en) Lossless encoding of information with guaranteed maximum bitrate
KR20010012571A (ko) 다중 채널 정보신호의 연산 인코딩/디코딩
JP4179638B2 (ja) デジタル情報信号の算術エンコーディング/デコーディング
CN102077468A (zh) 混合Golomb-Elias Gamma编码方法
KR100390693B1 (ko) 직교부호를 이용한 이진 선형 복/부호 방법 및 그 복/부호기
JPH0728500A (ja) 音声符号器及び音声復号器