ES2378462T3 - Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia - Google Patents

Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia Download PDF

Info

Publication number
ES2378462T3
ES2378462T3 ES10181047T ES10181047T ES2378462T3 ES 2378462 T3 ES2378462 T3 ES 2378462T3 ES 10181047 T ES10181047 T ES 10181047T ES 10181047 T ES10181047 T ES 10181047T ES 2378462 T3 ES2378462 T3 ES 2378462T3
Authority
ES
Spain
Prior art keywords
coding
decoding
level
plural
context
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.)
Expired - Lifetime
Application number
ES10181047T
Other languages
English (en)
Inventor
Sanjeev Mehrohtra
Wei-Ge Chen
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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
Priority claimed from US10/647,923 external-priority patent/US7433824B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2378462T3 publication Critical patent/ES2378462T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4093Variable length to variable length coding
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Abstract

Un procedimiento de codificación de datos de audio o vídeo en un dispositivo informático que implementa un codificador (200), comprendiendo el procedimiento: realizar una transformación (230) de frecuencia sobre un bloque de muestras plurales para producir coeficientes de transformación plurales; cuantizar (260) los coeficientes de transformación plurales;y codificar (270) por entropía los coeficientes de transformación plurales cuantizados, caracterizado porque la codificación por entropía incluye: codificar uno o más de los coeficientes de transformación plurales cuantizados utilizando una primera modalidad de codificación, que incluye realizar una primera codificación aritmética adaptable al contexto de un valor de nivel de un coeficiente dado de los coeficientes de transformación plurales cuantizados, en donde la primera codificación aritmética adaptable al contexto utiliza un primer conjunto de contextos plurales, y en donde la primera codificación aritmética adaptable al contexto incluye seleccionar uno entre el primer conjunto de contextos plurales en base, al menos en parte, a valores de niveles de dos coeficientes de transformación cuantizados previamente codificados; conmutar a una segunda modalidad de codificación para los restantes coeficientes de los coeficientes de transformación plurales cuantizados; y codificar los restantes coeficientes de los coeficientes de transformación plurales cuantizados utilizando la segunda modalidad de codificación, que incluye: realizar la segunda codificación aritmética adaptable al contexto de un primer valor de nivel y un segundo valor de nivel de un primer coeficiente restante y de un segundo coeficiente restante, respectivamente, de los restantes coeficientes de transformación cuantizados, en donde la segunda codificación aritmética adaptable al contexto utiliza un segundo conjunto de contextos plurales distinto al primer conjunto de contextos plurales, y en donde: para el primer valor de nivel en la segunda modalidad de codificación, la selección de uno entre el segundo conjunto de contextos plurales considera el valor de nivel del coeficiente de transformación cuantizado dado proveniente de la primera modalidad de codificación;y para el segundo valor de nivel en la segunda modalidad de codificación, la selección de uno entre el segundo conjunto de contextos plurales considera el primer valor de nivel.

Description

Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud / nivel de cadencia
Campo
La presente invención se refiere a codificación entrópica adaptativa de datos de audio. Por ejemplo, un codificador de 5 audio conmuta entre codificación de Huffman de niveles directos de datos de audio cuantizados y codificación aritmética de longitudes y niveles de cadencia de datos de audio cuantizados.
Antecedentes
Con la introducción de los discos compactos, las redes de telefonía inalámbrica digital y el suministro de audio por Internet, el audio digital se ha convertido en algo trivial. Los ingenieros hacen uso de una diversidad de técnicas para procesar 10 eficazmente el audio digital mientras que a la vez mantienen la calidad del audio digital. Para entender estas técnicas, ayuda entender cómo se representa y se procesa la información de audio en un ordenador.
I. Representación de Información de Audio en un Ordenador
Un ordenador procesa la información de audio como una serie de números que representan la información de audio. Por ejemplo, un número simple puede representar una muestra de audio, que es un valor de amplitud (es decir, una intensidad 15 de sonido) en un instante particular. Diversos factores afectan a la calidad de la información de audio, incluyendo la profundidad de muestreo, la frecuencia de muestreo y la modalidad de canal.
La profundidad (o precisión) de muestreo indica la gama de números utilizados para representar una muestra. A mayor número de valores posibles para la muestra, más alta es la calidad debido a que el número puede capturar más variaciones leves de amplitud. Por ejemplo, una muestra de 8 bits tiene 256 valores posibles, mientras que una muestra
20 de 16 bits tiene 65.536 valores posibles.
La frecuencia de muestreo (medida normalmente como el número de muestras por segundo), también afecta a la calidad. Cuanto más elevada sea la frecuencia de muestreo, más alta es la calidad debido a que se pueden representar más frecuencias de sonido. Algunas frecuencias de muestreo habituales son 8.000, 11.025, 22.050, 32.000, 44.100, 48.000 y
96.000 muestras/ segundo.
25 La Tabla 1 muestra varios formatos de audio con diferentes niveles de calidad, junto con los costes correspondientes de velocidad de bits en bruto.
Tabla 1: Velocidades de bit para información de audio de calidad diferente
Calidad
Profundidad de Muestra (bits/muestra) Frecuencia de Muestreo (muestras/segundo) Modalidad Velocidad de Bits en Bruto (bits/segundo)
Telefonía de Internet
8 8.000 mono 64.000
Teléfono
8 11.025 mono 88.200
Audio de CD
16 44.100 estéreo 1.411.200
Audio de alta calidad
16 48.000 estéreo 1.536.000
Según muestra la Tabla 1, el coste de la información de audio de alta calidad tal como el audio de CD, es una alta velocidad de bits. La información de audio de alta calidad consume grandes cantidades de capacidad de almacenamiento
30 en ordenador y de transmisión. Las compañías y los consumidores dependen sin embargo crecientemente de los ordenadores, para crear, distribuir y reproducir contenidos de audio de alta calidad.
II. Compresión y Descompresión de Audio
Muchos ordenadores y redes de ordenadores carecen de recursos para procesar el audio digital en bruto. La compresión (conocida también como codificación) reduce el coste del almacenaje y la transmisión de información de audio al convertir
35 la información a una forma de velocidad de bits más baja. La compresión puede ser sin pérdidas (en la que no se ve perjudicada la calidad) o con pérdidas (en la que se ve perjudicada la calidad, pero la reducción de velocidad de bits mediante la compresión sin pérdidas es más drástica). La descompresión (también llamada descodificación) extrae una versión reconstruida de la información original a partir de la forma comprimida.
En general, el objetivo de la compresión de audio consiste en representar digitalmente las señales de audio para proporcionar una máxima calidad de señal con la menor cantidad de bits posible. Un sistema convencional de codificador/ descodificador (“códec”) de audio utiliza codificación de sub-banda/ transformación, cuantización, control de velocidad, y codificación de longitud variable, para conseguir su compresión. La cuantización y otras técnicas de compresión con pérdidas introducen ruido potencialmente audible en la señal de audio. La audibilidad del ruido depende de cuánto ruido exista y de cuánto de ese ruido perciba el oyente. El primer factor se refiere principalmente a la calidad objetiva, mientras que el segundo factor depende de la percepción humana del sonido. La codificación de audio convencional comprime entonces sin pérdidas los datos cuantizados utilizando codificación de longitud variable para reducir aún más la velocidad de bits.
A. Compresión y Descompresión de Datos de Audio con Pérdidas
Convencionalmente, un codificador de audio utiliza una diversidad de técnicas diferentes de compresión con pérdidas. Estas técnicas de compresión con pérdidas incluyen habitualmente transformaciones de frecuencia, modelación/ ponderación perceptual y cuantización. La descompresión correspondiente incluye cuantización inversa, ponderación inversa, y transformaciones inversas de frecuencia.
Las técnicas de transformación de frecuencia convierten datos en una forma que hace que sea más fácil separar la información perceptualmente importante de la información perceptualmente no importante. La información menos importante puede ser sometida entonces a compresión con más pérdidas, mientras que la información más importante se reserva, con el fin de proporcionar la calidad mejor percibida para una velocidad de bits dada. Un transformador de frecuencia recibe habitualmente las muestras de audio y las convierte en datos en el dominio de la frecuencia, denominados a veces coeficientes de frecuencia o coeficientes espectrales.
La mayor parte de la energía de los sonidos naturales, tales como la palabra y la música, se concentra en la gama de baja frecuencia. Esto significa que, estadísticamente, las gamas de frecuencias más altas tendrán más coeficientes de frecuencia que sean cero o próximos a cero, reflejando la falta de energía en las gamas de frecuencias más altas.
La modelación perceptual incluye procesar datos de audio de acuerdo con un modelo del sistema auditivo humano para mejorar la calidad percibida de la señal de audio reconstruida para una velocidad de bits dada. Por ejemplo, un modelo auditivo considera habitualmente la gama de bandas críticas y de audición humanas. Utilizando los resultados de la modelación perceptual, un codificador configura el ruido (por ejemplo, el ruido de cuantización) de los datos de audio con el objetivo de minimizar la audibilidad del ruido para una velocidad de bits dada. Mientras que el codificador debe introducir ruido a veces (por ejemplo, ruido de cuantización) para reducir la velocidad de bits, la ponderación permite que el codificador ponga más ruido en las bandas en las que es menos audible, y viceversa.
La cuantización asocia las gamas de valores de entrada a valores simples, introduciendo pérdidas irreversibles de información o de ruido de cuantización, así como permitiendo también que un codificador regule la calidad y la velocidad de bits de la salida. A veces, el codificador realiza la cuantización junto con un controlador de velocidad que ajusta la cuantización para regular la velocidad de bits y/o la calidad. Existen varias clases de cuantización, incluyendo la adaptativa y la no adaptativa, la escalar y la vectorial, la uniforme y la no uniforme. La ponderación perceptual puede ser considerada como una forma de cuantización no uniforme.
La cuantización inversa y la ponderación inversa reconstruyen los datos de coeficientes de frecuencia cuantizados y ponderados, en una aproximación de los datos de coeficientes de frecuencia originales. El transformador de frecuencia inversa convierte a continuación los datos de coeficientes de frecuencia en muestras de audio reconstruidas en el dominio del tiempo.
B. Compresión y Descompresión de Datos de Audio sin Pérdidas
Convencionalmente, el codificador de audio utiliza una o más entre una diversidad de técnicas diferentes de compresión sin pérdidas. En general, las técnicas de compresión sin pérdidas incluyen codificación de longitud de cadencia, codificación de Huffman y codificación aritmética. Las técnicas de descompresión correspondientes incluyen descodificación de longitud de cadencia, descodificación de Huffman y descodificación aritmética.
La codificación de longitud de cadencia es una técnica de compresión simple, bien conocida, utilizada para videocámaras, texto y otros tipos de contenidos. En general, la codificación de longitud de cadencia sustituye una secuencia (es decir, una cadencia) de símbolos consecutivos que tienen el mismo valor, por el valor y la longitud de la secuencia. En la descodificación de longitud de cadencia, la secuencia de símbolos consecutivos es reconstruida a partir del valor de cadencia y de la longitud de cadencia. Se han desarrollado numerosas variaciones de codificación/ descodificación de longitud de cadencia. Para una información adicional en torno a la codificación/ descodificación de longitud de cadencia y algunas de sus variaciones, véase, por ejemplo, Bell et al., Compresión de Texto, Prentice Hall PTR, páginas 105-107, 1990; Gibson et al., Compresión Digital para Multimedios, Morgan Kaufmann, páginas 17-62, 1998; Patente Estadounidense núm. 6.304.928 de Mairs, et al.; Patente Estadounidense núm. 5.883.633 de Gill et al., y Patente Estadounidense núm. 6.233.071 de Chaddha.
La codificación de nivel de cadencia es similar a la codificación de longitud de cadencia en el sentido de que secuencias de símbolos consecutivos que tienen el mismo valor, son sustituidos por longitudes de cadencias. El valor de las cadencias es el valor predominante (por ejemplo, 0) en los datos, y las cadencias están separadas por uno o más niveles que tienen un valor diferente (por ejemplo, un valor que no es cero).
Los resultados de la codificación de longitud de cadencia (por ejemplo, los valores de cadencia y las longitudes de cadencia) o de la codificación de nivel de cadencia, pueden ser codificados en Huffman para reducir aún más la velocidad de bits. Si es así, los datos codificados de Huffman son descodificados según Huffman con anterioridad a la descodificación de longitud de cadencia.
La codificación de Huffman es otra técnica de compresión bien conocida que se utiliza para videocámaras, texto y otros tipos de contenidos. En general, una tabla de códigos de Huffman asocia códigos de Huffman de longitud variable a valores únicos de símbolo (o combinaciones únicas de valores). Los códigos más cortos son asignados a valores de símbolo más probables, y los códigos más largos son asignados a valores de símbolo menos probables. Las probabilidades son calculadas para ejemplos típicos de alguna clase de contenido. O bien, las probabilidades son calculadas para datos recién codificados o datos que van a ser codificados, en cuyo caso los códigos de Huffman se adaptan a las probabilidades de cambio para los valores únicos de símbolo. En comparación con la codificación de Huffman, la codificación de Huffman adaptativa reduce normalmente la velocidad de bits de los datos comprimidos al incorporar probabilidades más precisas para los datos, pero también puede que se necesite transmitir información extra que especifique los códigos de Huffman.
Para codificar símbolos, el codificador de Huffman sustituye valores de símbolo por códigos de Huffman de longitud variable asociados a los valores de símbolo en la tabla de códigos de Huffman. Para descodificar, el descodificador de Huffman sustituye los códigos de Huffman por los valores de código asociados a los códigos de Huffman.
En la codificación escalar de Huffman, una tabla de códigos de Huffman asocia un código de Huffman único a un valor, por ejemplo, un nivel directo de un valor de dato cuantizado. En la codificación vectorial de Huffman, una tabla de códigos de Huffman asocia un código de Huffman único a una combinación de valores, por ejemplo, un grupo de niveles directos de valores de datos cuantizados en un orden particular. La codificación vectorial de Huffman puede conducir a una mejor reducción de la velocidad de bits que la codificación escalar de Huffman (por ejemplo, permitiendo que el codificador aproveche fraccionalmente las probabilidades de los códigos binarios de Huffman). Por otra parte, el código de cifrado y descifrado para la codificación vectorial de Huffman puede ser extremadamente grande cuando los códigos simples representan grandes grupos de símbolos o los símbolos tienen grandes gamas de valores potenciales (debido al gran número de combinaciones potenciales). Por ejemplo, si el tamaño del alfabeto es de 256 (para valores de 0 a 255 por símbolo), y el número de símbolos por vector es de 4, el número de combinaciones potenciales es de 2564 =
4.294.967.296. Esto consume memoria y recursos de procesamiento al calcular el código de cifrado y descifrado y hallar los códigos de Huffman, y consume recursos de transmisión al transmitir el código de cifrado y descifrado.
Se han desarrollado numerosas variaciones de codificación/ descodificación de Huffman. Para una información adicional acerca de la codificación/ descodificación de Huffman y de algunas de sus variaciones, véase, por ejemplo, Bell et al., Compresión de Texto, Prentice Hall PTR, páginas 105-107, 1990; Gibson et al., Compresión Digital para Multimedios, Morgan Kaufmann, páginas 17-62, 1998.
La Patente Estadounidense núm. 6.223.162 de Chen et al. describe codificación multi-nivel de longitud de cadencia de datos de audio. Una transformación de frecuencia produce una serie de valores de coeficientes de frecuencia. Para porciones de un espectro de frecuencia en el que el valor predominante sea cero, un codificador multi-nivel de longitud de cadencia correlaciona estadísticamente las cadencias de valores cero con valores distintos de cero, y asigna palabras de código de longitud variable. Un codificador utiliza un código de cifrado y descifrado especializado, generado con respecto a la probabilidad de recibir una cadencia de entrada de coeficientes espectrales de valor cero, seguido de un coeficiente de valor distinto de cero. Un descodificador correspondiente asocia una palabra de código de longitud variable con una cadencia de coeficientes de valor cero y de coeficientes adyacentes de valor distinto de cero.
La Patente Estadounidense núm. 6.377.930 de Chen et al. describe la codificación variable respecto a longitud variable de datos de audio. Un codificador asigna un código de longitud variable a un grupo de tamaño variable de valores de coeficientes de frecuencia.
La Patente Estadounidense núm. 6.300.888 de Chen et al. describe conmutación en modalidad de codificación entrópica para codificar audio en el dominio de la frecuencia. Un codificador de audio en el dominio de la frecuencia realiza una selección entre diferentes modalidades de codificación entrópica de acuerdo con las características de un flujo de entrada. En particular, el flujo de entrada se divide en gamas de frecuencia de acuerdo con criterios estadísticos derivados del análisis estadístico de una entrada típica o real que va a ser codificada. A cada gama se asigna un codificador de entropía optimizado para codificar el tipo de datos de esa gama. Durante la codificación y la descodificación, un selector de modalidad aplica el procedimiento correcto a las diferentes gamas de frecuencia. Los contornos de la partición pueden estar decididos por anticipado, permitiendo que el descodificador conozca implícitamente qué procedimiento de descodificación debe aplicar a los datos codificados. O bien, se pueden utilizar disposiciones adaptativas, en las que los contornos estén señalizados en el flujo de salida para indicar un cambio de modalidad de codificación para los datos posteriores. Por ejemplo, un contorno de partición separa principalmente coeficientes nulos de frecuencia cuantizados de coeficientes cuantizados principalmente no nulos, y a continuación aplica codificadores optimizados para tales datos.
Para detalles adicionales acerca de las patentes de Chen, véanse las propias patentes.
La codificación aritmética es otra técnica de compresión bien conocida utilizada para videocámaras y otros tipos de contenidos. La codificación aritmética se utiliza a veces en aplicaciones en las que el número óptimo de bits para codificar un símbolo de entrada dado, es un número fraccionario de bits, y en casos en los que existe una correlación estadística entre ciertos símbolos de entrada individuales. La codificación aritmética incluye generalmente representar una secuencia de entrada como un número único dentro de una gama dada. Habitualmente, el número es un número fraccionario entre 0 y 1. Los símbolos de la secuencia de entrada están asociados a gamas que ocupan porciones del espacio entre el 0 y el
1. Las gamas se calculan en base a la probabilidad de que ocurra el símbolo particular en la secuencia de entrada. El número fraccionario utilizado para representar la secuencia de entrada se construye con referencia a las gamas. Por lo tanto, las distribuciones de probabilidad para los símbolos de entrada son importantes en los esquemas de codificación aritmética.
En la codificación aritmética basada en contexto, las diferentes distribuciones de probabilidad para los símbolos de entrada están asociadas a diferentes contextos. La distribución de probabilidad utilizada para codificar la secuencia de entrada, cambia cuando cambia el contexto. El contexto puede ser calculado midiendo diferentes factores que se espera que afecten a la probabilidad de que aparezca un símbolo de entrada particular en una secuencia de entrada. Para información adicional acerca de la codificación / descodificación aritmética y de algunas de sus variaciones, véase Nelson, El Libro de la Compresión de Datos, “Huffman Mejorado: Codificación Aritmética”, Capítulo 5, págs. 123-65 (1992).
Diversos estándares y sistemas de códec utilizan compresión y descompresión sin pérdidas, incluyendo versiones del codificador y descodificador de Windows Media Audio [“WMA”] de Microsoft Corporation. Otros sistemas códec han sido proporcionados o especificados por el estándar Audio Layer 3 [“MP3”], de Motion Picture Experts Group, el estándar Advanced Audio Coding [“AAC”], de Motion Picture Experts Group 2, y Dolby AC3. Para información adicional, véanse los estándares respectivos o las publicaciones técnicas.
Cualesquiera que sean las ventajas de las técnicas y sistemas anteriores para la compresión sin pérdidas de datos de audio, no tienen las ventajas de la presente invención.
Se conoce una compresión de vídeo ajustable tridimensional basada en ondículas, por el documento WO 02/35849. El procedimiento comprende las etapas de: i) aplicar una descomposición temporal y espacial tridimensional basada en ondículas para producir una pluralidad de subbandas espaciales-temporales; ii) cuantizar los coeficientes de las subbandas espaciales-temporales con un cuantizador escalar uniforme para producir un mapa de significancias; y iii) codificación aritmética de longitud de cadencia y adaptativa de la señal codificando el mapa de significancias, codificación de los signos de todos los coeficientes significativos, y codificación de las magnitudes de coeficientes significativos, en orden de planos de bits, a partir del plano de bits más significativo.
Se conocen códigos adaptativos para el estándar H.26L del correspondiente artículo de D. Marpe et al., ITU STUDY GROUP 16, Documento VCEG-L13.
Resumen
La invención proporciona un procedimiento según la reivindicación 1 y la reivindicación 8.
En resumen, la descripción detallada va dirigida a diversas técnicas y herramientas para la codificación y descodificación entrópica adaptativa de datos de audio. Las diversas técnicas y herramientas pueden ser utilizadas de forma combinada o independiente.
En un aspecto, un codificador recibe una secuencia de datos de audio o vídeo y codifica al menos parte de la secuencia usando codificación aritmética basada en el contexto. Un descodificador recibe una secuencia codificada de coeficientes de datos de audio y descodifica al menos parte de la secuencia codificada usando descodificación aritmética basada en el contexto.n otro aspecto, un codificador codifica coeficientes de datos de audio o vídeo usando codificación aritmética basada en el contexto. Uno o más contextos tienen distribuciones de probabilidad asociadas que representan probabilidades de coeficientes. El codificador determina adaptativamente un contexto para un coeficiente actual en base, al menos en parte, a una modalidad de representación del coeficiente actual, y codifica el coeficiente actual usando el contexto. Por ejemplo, si la modalidad de representación es directa, el codificador determina adaptativamente el contexto en base, al menos en parte, a los niveles directos de los coeficientes previos (p. ej., los dos coeficientes inmediatamente precedentes al coeficiente actual). Si la modalidad de representación es de nivel de cadencia, el codificador determina adaptativamente el contexto en base, al menos en parte, al porcentaje de coeficientes de valor cero en la longitud de la cadencia previa de coeficientes de valor cero en la secuencia de entrada de audio. Si la modalidad de representación es de nivel de cadencia, y el codificador determina adaptativamente el contexto en base, al menos en parte, a la longitud de la cadencia actual de coeficientes de valor cero, la longitud de la cadencia previa de coeficientes de valor cero y los niveles directos de los coeficientes previos.
Las características y ventajas de las técnicas de codificación y descodificación entrópicas adaptativas se pondrán de manifiesto a partir de la descripción detallada que sigue, con referencia a los dibujos adjuntos.
Breve descripción de los dibujos
La Figura 1 es un diagrama en bloques de un entorno de computación adecuado en el que pueden ser implementadas las realizaciones descritas;
la Figura 2 es un diagrama en bloques de un codificador de audio en el que pueden ser implementadas las realizaciones descritas;
la Figura 3 es un diagrama en bloques de un descodificador de audio en el que pueden ser implementadas las realizaciones descritas;
la Figura 4 es un diagrama de flujo que muestra una técnica de codificación de audio generalizada multi-modal;
la Figura 5 es un diagrama de flujo que muestra una técnica de codificación de audio multi-modal con cálculo de punto de conmutación adaptativo;
la Figura 6 es un diagrama de flujo que muestra una técnica de descodificación de audio generalizada multi-modal;
la Figura 7 es un diagrama de flujo que muestra una técnica de codificación vectorial de Huffman generalizada de dimensión variable;
la Figura 8 es un diagrama de flujo que muestra una técnica detallada para la codificación de datos de audio utilizando codificación vectorial de Huffman de dimensión variable;
la Figura 9 es un diagrama de flujo que muestra una técnica para codificación vectorial de Huffman de dimensión variable de niveles de señal directa, donde el codificador determina adaptativamente un punto de conmutación para cambiar a la codificación de longitudes de cadencia y de niveles de señal;
la Figura 10 es un diagrama de flujo que muestra una técnica de descodificación vectorial de Huffman generalizada de dimensión variable;
la Figura 11 es un diagrama de flujo que muestra una técnica detallada para descodificar vectores codificados utilizando codificación vectorial de Huffman de dimensión variable;
la Figura 12 es un diagrama de flujo que muestra una técnica para la descodificación vectorial de Huffman, de dimensión variable, de niveles de señal directa donde el descodificador determina adaptativamente un punto de conmutación para cambiar a la descodificación de longitudes de cadencia y de niveles de señal;
las Figuras 13A – 13D son distribuciones de probabilidad para niveles de longitud no de cadencia, en un esquema de codificación aritmética basada en contexto;
las Figuras 14A – 14H son distribuciones de probabilidad para diferentes longitudes de cadencia en un esquema de codificación aritmética basada en contexto;
las Figuras 15A – 15H son distribuciones de probabilidad para niveles codificados de longitud de cadencia en un esquema de codificación aritmética basada en contexto;
la Figura 16 es un diagrama de flujo que muestra una técnica para la codificación aritmética directa, basada en contexto, de coeficientes, donde el codificador determina un punto de conmutación para cambiar a la codificación de longitudes y niveles de cadencia, y
la Figura 17 es un diagrama de flujo que muestra una técnica de descodificación aritmética basada en contexto, donde el descodificador determina adaptativamente un punto de conmutación para cambiar a la descodificación de longitudes de cadencia y de niveles de señal.
Descripción detallada
En las realizaciones descritas, un codificador de audio realiza varias técnicas de codificación entrópica adaptativa. Las técnicas de codificación entrópica adaptativa mejoran el comportamiento del codificador, reduciendo la velocidad de bits y/o mejorando la calidad. Un descodificador ejecuta las técnicas de descodificación entrópica correspondientes. Mientras que en el presente documento se han descrito las técnicas como parte de un único sistema integrado, las técnicas pueden ser aplicadas por separado, potencialmente en combinación con otras técnicas.
El codificador y el descodificador de audio procesan señales de audio discretas. En las realizaciones descritas, las señales de audio son coeficientes cuantizados a partir de señales de audio transformadas en frecuencia. Alternativamente, el codificador y el descodificador procesan otra clase de señal de audio discreta o de señal discreta que representa información de vídeo.
En algunas realizaciones, un codificador de audio conmuta adaptativamente entre codificación de niveles de señal directa y codificación de longitudes de cadencia y niveles de señal. El codificador codifica los niveles de señal directa utilizando codificación aritmética. En la codificación de longitud / nivel de cadencia (también conocida como codificación de nivel de cadencia), cada longitud de cadencia representa una secuencia de cero o más ceros, y cada nivel de señal representa un valor distinto de cero. En el espacio de sucesos de niveles de cadencia, el codificador codifica longitudes y niveles de cadencia en ese espacio de sucesos, utilizando codificación aritmética. Un descodificador realiza una conmutación adaptativa correspondiente durante la descodificación. La conmutación adaptativa ocurre cuando se alcanza un número de umbral de niveles de valor cero. Alternativamente, el codificador y el descodificador conmutan en base a criterios adicionales u otros criterios.
En algunos ejemplos, un codificador de audio hace uso de codificación vectorial de Huffman de dimensión variable. La codificación vectorial de Huffman de dimensión variable permite que el codificador utilice códigos de Huffman para representar combinaciones más probables de símbolos que utilizan vectores de mayor dimensión, y combinaciones menos probables de símbolos que utilizan vectores o escalares de dimensión más pequeña. Un descodificador realiza la correspondiente descodificación de Huffman de dimensión variable.
En algunas realizaciones, un codificador de audio utiliza codificación aritmética basada en contexto. Los contextos utilizados por el codificador permiten una compresión eficaz de diferentes tipos de datos de audio. Un descodificador realiza la correspondiente descodificación aritmética basada en contexto.
En las realizaciones descritas, el codificador y el descodificador de audio ejecutan varias técnicas. Aunque las operaciones relativas a estas técnicas se describen habitualmente en un orden secuencial particular, por motivos de presentación, se comprenderá que esta manera de descripción abarca reordenamientos menos importantes en cuanto al orden de operaciones. Además, por motivos de simplicidad, los diagramas de flujo no muestran habitualmente las diversas formas en que pueden ser usadas las técnicas particulares conjuntamente con otras técnicas.
I. Entorno Informático
La Figura 1 ilustra un ejemplo generalizado de un entorno (100) de computación adecuado en el que pueden ser implementadas las realizaciones descritas. No se pretende que el entorno (100) de computación sugiera ninguna limitación en cuanto al uso o la funcionalidad de la invención, puesto que la presente invención puede ser implementada en entornos informáticos diversos de propósito general o de propósito especial.
Con referencia a la Figura 1, el entorno informático (100) incluye al menos una unidad (110) de procesamiento, y memoria (120). En la Figura 1, la configuración (130) más básica ha sido incluida dentro de una línea de puntos. La unidad (110) de procesamiento ejecuta instrucciones ejecutables con ordenador, y puede ser un procesador real o virtual. En un sistema multi-procesamiento, múltiples unidades de procesamiento ejecutan instrucciones ejecutables con ordenador para incrementar la potencia de procesamiento. La memoria (120) puede ser memoria volátil (por ejemplo, registros, caché, RAM), memoria no volátil (por ejemplo, ROM, EEPROM, memoria flash, etc.), o cualquier combinación de las dos. La memoria (120) almacena software (180) que implementa un codificador/ descodificador de audio que realiza la codificación/ descodificación entrópica adaptativa de datos de audio.
Un entorno informático puede tener características adicionales. Por ejemplo, el entorno informático (100) incluye un dispositivo de almacenaje (140), uno o más dispositivos (150) de entrada, uno o más dispositivos (160) de salida y una o más conexiones (170) de comunicación. Un mecanismo de interconexión (no representado), tal como un bus, un controlador, o una red, interconecta los componentes del entorno informático (100). Habitualmente, el software del sistema operativo (no representado) proporciona un entorno operativo para otro software que se ejecute en el entorno informático (100), y coordina las actividades de los componentes del entorno informático (100).
El almacenaje (140) puede ser extraíble o no extraíble, e incluye discos los magnéticos, cintas o casetes magnéticos, CD-ROM, CD-RW, DVD o cualquier otro medio que pueda ser utilizado para almacenar información y al que se pueda acceder dentro del entorno informático (100). El almacenaje (140) almacena instrucciones para el software (180) que implementa el codificador/ descodificador de audio que realiza la codificación/ descodificación entrópica adaptativa de datos de audio.
El (los) dispositivo(s) (150) de entrada puede(n) ser un dispositivo táctil de entrada tal como un teclado, un ratón, un lápiz o una bola de rastreo, un dispositivo de entrada por voz, un dispositivo de escaneo, un adaptador de red, u otro dispositivo que proporcione entrada al entorno informático (100). Para el audio, el (los) dispositivo(s) (150) de entrada puede(n) ser una tarjeta de sonido o un dispositivo similar que acepte una entrada de audio en forma analógica o digital, o un lector de CD-ROM que proporcione muestras de audio al entorno informático. El (los) dispositivo(s) (160) de salida puede(n) ser una pantalla de visualización, una impresora, un altavoz, un transcriptor de CD/DVD, un adaptador de red, u otro dispositivo que proporcione una salida desde el entorno informático (100).
La(s) conexión(es) (170) de comunicación permite(n) la comunicación mediante un medio de comunicación con otra entidad informática. El medio de comunicación transporta información tal como instrucciones ejecutables con ordenador, información de audio comprimido, u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características dispuestas o cambiadas para codificar información en la señal. A título de ejemplo, y sin limitación alguna, los medios de comunicación incluyen técnicas alámbricas o inalámbricas implementadas con un portador eléctrico, óptico, de RF, de infrarrojos, acústico, o de otro tipo.
La invención puede ser descrita en el contexto general de los medios legibles con ordenador. Los medios legibles con ordenador consisten en cualquier medio disponible al que se pueda acceder dentro de un entorno informático. A título de ejemplo, y sin limitación, dentro del entorno informático (100), los medios legibles con ordenador incluyen memoria (120), medios de almacenaje (140), medios de comunicación, y combinaciones de cualesquiera de ellos.
La invención puede ser descrita en el contexto general de las instrucciones ejecutables con ordenador, tales como las incluidas en módulos de programa, que son ejecutadas en un entorno informático sobre un procesador de destino real o virtual. En general, los módulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc., que realizan tareas particulares o que implementan tipos particulares de datos abstractos. La funcionalidad de los módulos de programa puede ser combinada o dividida entre módulos de programa según se desee, en diversas realizaciones. Las instrucciones ejecutables con ordenador para módulos de programa pueden ser ejecutadas dentro de un entorno informático local o distribuido.
Por motivos de presentación, la descripción detallada utiliza términos tales como “analizar”, “enviar”, “comparar” y “comprobar” para describir operaciones de ordenador en un entorno informático. Estos términos son abstracciones de alto nivel para operaciones realizadas por un ordenador, y no deberían ser confundidos con los actos llevados a cabo por un ser humano. Las operaciones reales de ordenador que corresponden a esos términos varían según la implementación.
II. Codificador y Descodificador de Audio Generalizado
La Figura 2 es un diagrama en bloques de un codificador (200) de audio generalizado en el que pueden ser implementadas las realizaciones descritas. El codificador (200) realiza codificación entrópica adaptativa de datos de audio. La Figura 3 es un diagrama en bloques de un descodificador (300) de audio generalizado en el que pueden ser implementadas las realizaciones descritas. El descodificador (300) descodifica datos de audio codificados.
Las relaciones mostradas entre módulos del interior del codificador y del descodificador indican un flujo de información en un codificador y descodificador ejemplares; no se muestran otras relaciones por motivos de simplicidad. Según la implementación y el tipo de compresión que se desee, los módulos del codificador o del descodificador pueden ser añadidos, omitidos, divididos en múltiples módulos, combinados con otros módulos, y/o sustituidos por módulos similares. En realizaciones alternativas, codificadores o descodificadores con diferentes módulos y/o con otras configuraciones realizan la codificación y descodificación entrópica adaptativa de datos de audio.
A. Codificador de Audio Generalizado
El codificador (200) de audio generalizado incluye un selector (208), un pre-procesador (210) multi-canal, un divisor/ configurador (200) de mosaico, un transformador (230) de frecuencia, un modelador (240) de percepción, un ponderador (242), un transformador (250) multi-canal, un cuantizador (260), un codificador (260) de entropía, un controlador (280), un codificador (272) sin pérdidas mixto/ puro y un codificador (274) de entropía asociado, y un multiplexor (290) de flujos de bits [“MUX”]. A continuación se realiza la descripción de algunos de los módulos del codificador (200). Para la descripción de otros módulos del codificador (200) en algunas realizaciones, véanse las aplicaciones mencionadas en la sección de Datos de Aplicación Relacionados.
El codificador (200) recibe una serie en el tiempo de muestras (205) de audio de entrada a una profundidad y frecuencia de muestreo en formato modulado de código de pulso [“PCM”]. Las muestras (205) de audio de entrada pueden ser audio multi-canal (por ejemplo, modalidad estéreo, envolvente) o mono. El codificador (200) comprime las muestras (205) de audio y multiplexa la información producida por los diversos módulos del codificador (200) para presentar a la salida un flujo de bits (295) en un formato tal como un formato Windows Media Audio [“WMA”] o Advanced Streaming Format [“ASF”]. Alternativamente, el codificador (200) trabaja con otros formatos de entrada y/o de salida.
Inicialmente, el selector (208) elige entre las múltiples modalidades de codificación para las muestras (205) de audio. En la Figura 2, el selector (208) conmuta entre dos modalidades: una modalidad de codificación sin pérdidas mixta/ pura y una modalidad de codificación con pérdidas. La modalidad de codificación sin pérdidas incluye el codificador (272) sin pérdidas mixto/ puro, y se utiliza habitualmente para la compresión de alta calidad (y de alta velocidad de bits). La modalidad de codificación con pérdidas incluye componentes tales como el ponderador (242) y el cuantizador (260), y se utiliza habitualmente para la compresión de calidad ajustable (y velocidad de bits controlada). La decisión de selección en el selector (208) depende de la entrada de usuario (por ejemplo, un usuario que selecciona codificación sin pérdidas para realizar copias de audio de alta calidad) o de otros criterios. En otras circunstancias (por ejemplo, cuando la compresión con pérdidas falla en cuanto a la entrega de la calidad adecuada o sobre-produce bits), el codificador (200) puede conmutar desde la codificación con pérdidas a la codificación sin pérdidas mixta/ pura para una trama o un conjunto de tramas.
El transformador (230) de frecuencia recibe las muestras (205) de audio y las convierte en datos en el dominio de la frecuencia. El transformador (230) de frecuencia presenta a la salida bloques de datos de coeficientes de frecuencia para el ponderador (242), y presenta a la salida información colateral tal como tamaños de bloque para el MUX (290). El transformador (230) de frecuencia presenta a la salida los coeficientes de frecuencia y la información colateral para el modelador (240) de percepción.
El modelador (240) de percepción modela propiedades del sistema auditivo humano para mejorar la calidad percibida de la señal de audio reconstruida para una cierta velocidad de bits. En general, el modelador (240) de percepción procesa los datos de audio de acuerdo con un modelo auditivo, y a continuación proporciona información al ponderador (242) que puede ser utilizada para generar factores de ponderación para los datos de audio. El modelador (240) de percepción utiliza uno cualquiera de diversos modelos auditivos y pasa información de patrones de excitación u otra información al ponderador (242).
Como ponderador de banda de cuantización, el ponderador (242) genera factores de ponderación para una matriz de cuantización en base a la información recibida desde el modelador (240) de percepción, y aplica los factores de ponderación a los datos recibidos desde el transformador (230) de frecuencia. El ponderador (242) presenta a la salida información colateral tal como el conjunto de factores de ponderación para el MUX (290). Como ponderador de canal, el ponderador (242) genera a continuación factores de ponderación específicos del canal, en base a la información recibida desde el modelador (240) de percepción, y también en base a la calidad de la señal localmente reconstruida. Estas ponderaciones escalares permiten que los canales reconstruidos tengan una calidad aproximadamente uniforme. El ponderador (242) presenta a la salida bloques ponderados de datos de coeficientes para el transformador (250) multicanal, y presenta a la salida información colateral tal como el conjunto de factores de ponderación de canal para el MUX (290). Alternativamente, el codificador (200) utiliza otra forma de ponderación u omite la ponderación.
Para datos de audio multi-canal, los múltiples canales de datos de coeficientes de frecuencia conformados con ruido producidos por el ponderador (242), están muchas veces correlacionados. Para aprovechar esta correlación, el transformador (250) multi-canal puede aplicar una transformación multi-canal a los datos de audio. El transformador (250) multi-canal produce información colateral para el MUX (290) que indica, por ejemplo, las transformaciones multi-canal utilizadas y las partes de tramas transformadas multi-canal.
El cuantizador (260) cuantiza la salida del transformador (250) multi-canal, produciendo datos de coeficientes cuantizados para el codificador (270) de entropía e información colateral que incluye tamaños de paso de cuantización para el MUX (290). La cuantización introduce pérdidas de información irreversibles, pero también permite que el codificador (200) regule la calidad y la velocidad de bits del flujo de bits (295) de salida junto con el controlador (280). En algunas realizaciones, el cuantizador (260) es un cuantizador escalar, uniforme y adaptativo. En realizaciones alternativas, el cuantizador es un cuantizador no uniforme, un cuantizador vectorial y/o un cuantizador no adaptativo, o bien utiliza una forma diferente de cuantización escalar, uniforme y adaptativa.
El codificador (270) de entropía comprime de manera sin pérdidas, datos de coeficientes cuantizados recibidos desde el cuantizador (260). En algunas realizaciones, el codificador (270) de entropía utiliza codificación entrópica adaptativa según se describe en las secciones que siguen. El codificador (270) de entropía puede calcular el número de bits gastados en la codificación de la información de audio y pasar esta información al controlador (280) de velocidad/ calidad.
El controlador (280) trabaja con el cuantizador (260) para regular la velocidad de bits y/o la calidad de la salida del codificador (200). El controlador (280) recibe información desde otros módulos del codificador (200) y procesa la información recibida para determinar condiciones actuales dadas de los factores de cuantización deseados. El controlador
(280) presenta a la salida los factores de cuantización para el cuantizador (260) con el objetivo de satisfacer restricciones de calidad y/o de velocidad de bits.
El codificador (272) mixto sin pérdidas / puro sin pérdidas y el codificador (274) de entropía asociado comprimen datos de audio para la modalidad de codificación sin pérdidas mixta / pura. El codificador (200) utiliza la modalidad de codificación sin pérdidas mixta / pura para una secuencia completa, o conmuta entre modalidades de codificación cuadro a cuadro o por otro criterio.
El MUX (290) multiplexa la información colateral recibida desde los otros módulos del codificador (200) de audio junto con los datos codificados de entropía recibidos desde el codificador (270) de entropía. El MUX (290) presenta a la salida la información en un formato WMA o en otro formato que sea reconocido por un descodificador de audio. El MUX (290) incluye una memoria intermedia virtual que almacena el flujo de bits (295) que va a ser emitido por el codificador (200). La magnitud del llenado actual de la memoria intermedia, la velocidad de cambio de la magnitud del llenado de la memoria intermedia, y otras características de la memoria intermedia, pueden ser utilizadas por el controlador (280) para regular la calidad y/o la velocidad de bits para las diferentes aplicaciones (por ejemplo, a calidad constante/ velocidad de bits variable, a velocidad de bits constante, o no, y calidad variable).
B. Descodificador de Audio Generalizado
Con referencia a la Figura 3, el descodificador (300) de audio generalizado incluye un demultiplexor (310) de flujos de bits [“DEMUX”], uno o más descodificadores (320) de entropía, un descodificador (322) sin pérdidas mixto / puro, un descodificador (330) de configuración de mosaicos, un transformador (340) multi-canal inverso, un cuantizador/ ponderador (340) inverso, un transformador (360) de frecuencia inverso, un solapador / sumador (370), y un posprocesador (380) multi-canal. El descodificador (300) es algo más simple que el codificador (300) debido a que el descodificador (300) no incluye módulos para control de velocidad/ calidad o para modelación de percepción. A continuación se realiza la descripción de algunos de los módulos del descodificador (300). Para una descripción acerca de otros módulos del descodificador (300) en algunas realizaciones, véanse las aplicaciones mencionadas en la sección Datos de Aplicación Relacionada.
El descodificador (300) recibe un flujo de bits (305) de información de audio comprimida en un formato WMA o en otro formato. El flujo de bits (305) incluye datos codificados de entropía, así como también información colateral a partir de la cual el descodificador (300) reconstruye las muestras (395) de audio.
El DEMUX (310) analiza sintácticamente la información del flujo de bits (305) y envía información a los módulos del descodificador (300). El DEMUX (310) incluye una o más memorias intermedias para compensar las variaciones a corto plazo de la velocidad de bits debidas a las fluctuaciones en la complejidad del audio, a la arritmia de red y/o a otros factores.
El, o los, descodificador(es) (320) de entropía descomprime(n) sin pérdidas códigos de entropía recibidos desde el DEMUX (310). Por motivos de simplicidad, un módulo descodificador de entropía ha sido representado en la Figura 3, aunque se pueden utilizar diferentes descodificadores de entropía para las modalidades de codificación con pérdidas y sin pérdidas, o incluso dentro de las modalidades. También, por motivos de simplicidad, la Figura 3 no muestra la lógica de selección de modalidad. El descodificador (320) de entropía aplica habitualmente la inversa de la técnica de codificación de entropía utilizada en el codificador (200). Cuando se descodifican datos comprimidos en modalidad de codificación con pérdidas, el descodificador (320) de entropía produce datos de coeficientes de frecuencia cuantizados.
El descodificador (322) sin pérdidas mixto / puro y el (los) descodificador(es) (320) de entropía asociado(s) descomprimen datos de audio codificados sin pérdidas para la modalidad de codificación sin pérdidas mixta / pura. El descodificador (300) utiliza una modalidad de descodificación particular para una secuencia completa, o bien conmuta modalidades de descodificación cuadro a cuadro o por otro criterio.
El transformador (340) multi-canal inverso recibe los datos de coeficientes de frecuencia cuantizados descodificados de entropía desde el (los) descodificador(es) (320) de entropía, así como también información colateral desde el DEMUX
(310) que indica, por ejemplo, la transformación multi-canal utilizada y las partes de tramas transformadas.
El cuantizador / ponderador (350) inverso recibe factores de cuantización, así como también matrices de cuantización desde el DEMUX (310), y recibe datos de coeficientes de frecuencia cuantizados desde el transformador (340) multi-canal inverso. El cuantizador/ ponderador (350) inverso descomprime el factor de cuantización / información de matriz que se ha recibido según sea necesario, y a continuación realiza la cuantización y ponderación inversas.
El transformador (360) de frecuencia inverso recibe los datos de coeficientes de frecuencia presentados a la salida por el cuantizador / ponderador (350) inverso, así como también información colateral procedente del DEMUX (310). El transformador (360) de frecuencia inverso aplica la inversa de la transformación de frecuencia utilizada en el codificador y presenta a la salida bloques para el solapador / sumador (370).
El solapador / sumador (370) recibe información descodificada desde el transformador (360) de frecuencia inverso y/o desde el descodificador (322) sin pérdidas mixto / puro. El solapador / sumador (370) solapa y suma datos de audio según sea necesario, e intercala tramas u otras secuencias de datos de audio codificados en diferentes modalidades.
III. Conmutación de Modalidad de Codificación/ Descodificación de Entropía Adaptativa
Los métodos de codificación de nivel de cadencia son frecuentemente más eficaces que la codificación directa de niveles cuando una secuencia de entrada contiene muchas ocurrencias de un valor individual (por ejemplo, 0). Sin embargo, puesto que los coeficientes de transformación cuantizados no nulos son comunes en secuencias de entrada de datos de audio, especialmente a las frecuencias más bajas, la codificación de nivel de cadencia no es eficaz en toda la gama de frecuencias completa. Además, en audio de calidad más alta, los coeficientes de transformación cuantizados no nulos resultan más comunes incluso a frecuencias más altas. (En audio de calidad más alta, los niveles de cuantización son habitualmente más pequeños). Por lo tanto, en algunas realizaciones, un codificador tal como el codificador (200) de la Figura 2, realiza una técnica de codificación multi-modal que puede hacer uso de la codificación del nivel de cadencia para una porción de la secuencia de entrada de datos de audio, y codificación directa de niveles para otra porción de la secuencia. Un descodificador, tal como el descodificador (300) de la Figura 3, ejecuta una técnica de descodificación multi-modal correspondiente.
A. Conmutación de Modalidad de Codificación de Entropía Adaptativa
Con referencia a la Figura 4, en una técnica 400 de codificación multi-modal, el codificador realiza en primer lugar la codificación de niveles de señal en un flujo de entrada (410) directamente. Por ejemplo, el codificador realiza codificación de Huffman de dimensión variable, codificación aritmética basada en contexto, u otra técnica de codificación entrópica directamente sobre los niveles de señal.
En un punto de conmutación durante la codificación, el codificador cambia el esquema (420) de codificación. El codificador puede cambiar el esquema de codificación en un punto de conmutación predeterminado, o el codificador puede analizar los datos de entrada para determinar un punto apropiado para cambiar los esquemas de codificación. Por ejemplo, el codificador puede analizar una secuencia de entrada para hallar el mejor punto en el que conmutar a la codificación de nivel de cadencia, enviando el punto de conmutación al descodificador en el flujo de bits de salida. O bien, el codificador puede calcular el punto de conmutación adaptativamente contando ceros consecutivos (o alternativamente, otro valor predominante) en los datos de entrada, y conmutar a la codificación de nivel de cadencia cuando se ha contado un número umbral particular de ceros consecutivos. El descodificador puede calcular el punto de conmutación de la misma manera, de modo que el punto de conmutación no necesita ser incluido en el flujo de bits. O bien, el codificador y el descodificador utilizan algún otro criterio para determinar el punto de conmutación.
Tras el punto de conmutación, el codificador codifica los niveles de señal restantes utilizando codificación (430) de nivel de cadencia. Por ejemplo, el codificador realiza codificación de Huffman, codificación aritmética basada en contexto, u otra técnica de codificación de entropía sobre longitudes de cadencia y niveles de señal. El codificador puede usar la misma técnica (por ejemplo, codificación aritmética basada en contexto) antes y después del punto de conmutación, o bien el codificador puede usar técnicas diferentes.
Además, aunque la Figura 4 y otras varias Figuras de la aplicación muestran un solo punto de conmutación, se pueden utilizar puntos de conmutación adicionales para dividir los datos de entrada en más de dos porciones. Por ejemplo, se pueden establecer puntos adicionales de conmutación adaptativa para umbrales incrementados de ceros consecutivos. A continuación se pueden aplicar diferentes esquemas de codificación a las diferentes porciones. O bien, el codificador puede experimentar con diferentes puntos de segmentación en la secuencia, ponderando las eficiencias de codificación para las diferentes configuraciones de segmentación junto con los costes de señalizar las diferentes configuraciones para el descodificador.
La Figura 5 muestra una técnica (500) de codificación multi-modal con cálculo de punto de conmutación adaptativo de acuerdo con una implementación. El punto de conmutación adaptativo depende de un conteo de coeficientes de valor cero consecutivos. Los datos de entrada son niveles de señal para coeficientes de transformación cuantizados, que se incrementan a partir del coeficiente de frecuencia más baja hasta el coeficiente de frecuencia más alta. En la práctica, la posición del punto de conmutación depende de la señal que se está comprimiendo y de la velocidad de bits / calidad de la codificación. Alternativamente, los datos de entrada son otra forma y/u otra organización de datos de audio.
Para empezar, el codificador inicializa varias variables. Específicamente, el codificador establece una variable de conteo de cadencias en 0 (510) y establece una variable de estado de codificación en “directo” (512).
El codificador recibe el siguiente coeficiente QC como entrada (520). El codificador comprueba (530) a continuación si el coeficiente QC es cero. Si el coeficiente QC no es cero, el codificador reinicia el conteo (538) de cadencia. En otro caso (es decir, si el coeficiente QC es cero), el codificador incrementa la variable (532) de conteo de cadencias, y comprueba si el conteo actual de cadencias supera el umbral (534) de conteo de cadencias. El umbral de conteo de cadencias puede ser estático o puede depender de un factor tal como el tamaño de un bloque de coeficientes (por ejemplo, un umbral de conteo de cadencias de 4 para una secuencia de 256 coeficientes, 8 para una secuencia de 512 coeficientes, etc.), o bien puede ser adaptativo de alguna otra manera. Si el conteo de cadencias supera el umbral, el codificador cambia el estado de codificación a la codificación de nivel de cadencia [“RLE”] (536).
El codificador codifica a continuación el coeficiente QC, si corresponde (540). (En algunos casos, se codifican conjuntamente grupos de coeficientes utilizando una técnica tal como la codificación vectorial de Huffman. En esos casos, el codificador puede retrasar la codificación del coeficiente QC).
El codificador comprueba a continuación (550) si el codificador debería conmutar las modalidades de codificación. En particular, el codificador comprueba el estado de codificación. Si el estado de codificación ya no es directo (por ejemplo, si el codificador ha cambiado el estado de codificación a RLE como resultado de haber alcanzado un número de umbral de coeficientes cero), el codificador empieza la codificación de nivel de cadencia de los coeficientes (560). (De nuevo, en casos en los que se codifican conjuntamente grupos de coeficientes, el codificador puede retrasar la decisión de conmutación hasta alcanzar un punto de interrupción conveniente para un grupo de coeficientes).
Si el codificador no conmuta las modalidades de codificación, el codificador comprueba si ha acabado la codificación de los coeficientes (570). Si es así, el codificador sale. En otro caso, el codificador introduce el siguiente coeficiente (520) para que continúe el proceso de codificación.
B. Conmutación de Modalidad de Descodificación de Entropía Adaptativa
Con referencia a la Figura 6, en una técnica (600) de descodificación multi-modal, el descodificador descodifica directamente niveles (610) de señal codificados. Por ejemplo, el descodificador ejecuta la descodificación de Huffman de dimensión variable, la descodificación aritmética basada en contexto, u otra técnica de descodificación de entropía sobre niveles de señal codificados directamente.
En un punto de conmutación durante la descodificación, el descodificador cambia el esquema de descodificación (620). Si el punto de conmutación está predeterminado, el descodificador puede recibir, en forma de indicador o de otro mecanismo de notificación, datos que indican explícitamente al descodificador cuándo cambiar los esquemas de descodificación. O bien, el descodificador puede calcular adaptativamente cuándo cambiar los esquemas de descodificación en base a los datos de entrada que reciba. Si el descodificador calcula el punto de conmutación, el descodificador utiliza la misma técnica de cálculo utilizada por el codificador para asegurar que el esquema de descodificación cambie en el punto correcto. Por ejemplo, el descodificador cuenta ceros consecutivos (o alternativamente, otro valor predominante) para determinar el punto de conmutación adaptativamente. En una implementación, el descodificador utiliza una técnica correspondiente a la técnica de codificación mostrada en la Figura 5. O bien, el descodificador utiliza algún otro criterio para determinar el punto de conmutación.
Después del punto de conmutación, el descodificador descodifica los restantes niveles (630) de señal codificados por nivel de cadencia. Por ejemplo, el decodificador realiza descodificación de Huffman, descodificación aritmética basada en contexto, u otra técnica de descodificación de entropía sobre longitudes de cadencias y niveles de señal codificados. El descodificador puede usar la misma técnica (por ejemplo, descodificación aritmética basada en contexto), antes y después del punto de conmutación, o bien el descodificador puede usar técnicas diferentes.
IV. Codificación y Descodificación de Huffman de Dimensión Variable
Esta sección vale para una mejor comprensión, pero no se enmarca en la invención.
Mientras que símbolos tales como los niveles de señal directa pueden ser codificados utilizando codificación escalar de Huffman, esa alternativa está limitada cuando el número óptimo de bits para codificar un símbolo es un número fraccionario. La codificación escalar de Huffman está también limitada por la incapacidad de los códigos escalares de Huffman para dar cuenta de la correlación estadística entre símbolos. La codificación vectorial de Huffman produce una mejor reducción de velocidad de bits que la codificación escalar de Huffman (por ejemplo, permitiendo que el codificador aproveche probabilidades fraccionalmente en códigos binarios de Huffman). Y, en general, los vectores de dimensión más alta producen mejor reducción de velocidad de bits que los vectores de dimensión más pequeña. Sin embargo, si se asigna un código a cada combinación de símbolo posible, el tamaño del código de cifrado y descifrado se incrementa exponencialmente según se incrementa la dimensión del vector. Por ejemplo, en un sistema de 32 bits, el número de combinaciones posibles para un vector de 4 dimensiones es de (232)4. El tiempo de búsqueda para emparejar un vector y hallar un código de Huffman también se incrementa drásticamente según se incrementa el tamaño del código de cifrado y descifrado.
En algunas realizaciones, para reducir el tamaño del código de cifrado y descifrado, un codificador tal como el codificador
(200) de la Figura 2 utiliza una técnica de codificación vectorial de Huffman de dimensión variable. En vez de asignar un código de cifrado y descifrado a cada combinación n-dimensional posible, se asignan códigos a un número limitado de los vectores n-dimensionales más probables. Si no se asigna un código a un vector n-dimensional particular, el vector ndimensional es codificado, en cambio, en forma de vectores de dimensión más pequeña (por ejemplo, dos vectores de dimensión n/2), como escalares con códigos de Huffman, o como escalares utilizando alguna técnica sin tabla para representar valores discretos. Un descodificador tal como el descodificador (300) de la Figura 3 reconstruye un vector hallando el (los) código(s) para el vector y hallando los valores asociados.
Por ejemplo, en el caso de vectores de 4 dimensiones con 256 valores posibles por símbolo, el codificador codifica los 500 vectores de 4 dimensiones más probables con códigos de Huffman, y utiliza un código de escape para indicar otros vectores. El codificador divide otros vectores tales en vectores bidimensionales. El codificador codifica los 500 vectores de 2 dimensiones más probables con códigos de Huffman y utiliza un código de escape para indicar otros vectores, que son divididos y codificados con códigos escalares de Huffman. De ese modo, el codificador utiliza 501 + 501 + 256 códigos.
En términos de determinar qué vectores o escalares se representan con códigos de Huffman en una tabla, y en términos de asignar los propios códigos de Huffman para una tabla, la construcción del código de cifrado y descifrado puede ser estática, adaptativa para los datos previamente codificados, o adaptativa para los datos que van a ser codificados.
A. Codificación Vectorial de Huffman de Dimensión Variable
Con referencia a la Figura 7, un codificador utiliza una técnica (700) de codificación vectorial de Huffman de dimensión variable [“VDVH”]. Por ejemplo, el codificador utiliza la técnica (700) para codificar directamente niveles de señal para coeficientes de frecuencia de datos de audio. Alternativamente, el codificador utiliza la técnica (700) para codificar otra forma de datos de audio. Por motivos de simplicidad, la Figura 7 no muestra la construcción del código de cifrado y descifrado. La construcción del código de cifrado y descifrado puede ser estática, adaptativa para los datos previamente codificados, o adaptativa para los datos que van a ser codificados.
El codificador obtiene (710) el siguiente vector de n símbolos. Por ejemplo, el codificador obtiene los siguientes 4 símbolos en serie.
El codificador comprueba (720) si el código de cifrado y descifrado incluye un código para el vector. Si es así, el codificador utiliza (730) un código de Huffman simple para codificar el vector. Por ejemplo, para determinar cómo codificar un vector de n dimensiones, el codificador comprueba una tabla de códigos de vector n-dimensional para un código asociado al vector. Puesto que los vectores de mayor dimensión producen normalmente mayores ahorros de velocidad de bits, el codificador utiliza códigos de Huffman para los vectores n-dimensionales más probables. Pero, para limitar el tamaño de la tabla, solamente algunos de los vectores n-dimensionales tienen códigos asociados.
Si el código de cifrado y descifrado no incluye un código para el vector, el codificador divide (740) el vector en vectores y/o escalares más pequeños, y codifica los vectores y/o escalares más pequeños. Por ejemplo, el codificador divide un vector de n símbolos en x vectores de n/x símbolos. Para cada vector de n/x símbolos, el codificador repite recursivamente la técnica de codificación, saliendo cuando el vector de n/x símbolos o sus vectores/ escalares componentes han sido codificados con códigos de Huffman o (para los escalares) utilizando una técnica sin tabla para representar valores discretos.
El codificador comprueba (750) a continuación si existen algunos vectores adicionales para codificar. Si no es así, el codificador sale. En otro caso, el codificador obtiene (710) el siguiente vector de n símbolos.
I. Ejemplo de Implementación
La Figura 8 muestra una técnica (800) detallada para codificar vectores utilizando codificación VDVH en una implementación. En la técnica (800), el codificador suma los valores enteros de los símbolos en un vector de símbolos para determinar si debe codificar el vector utilizando un código simple de Huffman, o dividir el vector en vectores/ escalares más pequeños. Esto limita efectivamente el tamaño de código de cifrado y descifrado, y agiliza la búsqueda de códigos.
Una tabla de códigos de cifrado y descifrado para vectores n-dimensionales [“n-dim”] incluye códigos para L1 vectores ndimensionales. La tabla de códigos de cifrado y descifrado también incluye un código de escape. Los L1 códigos son para cada vector para el que la suma de los componentes del vector (que son números enteros) está por debajo de un umbral T1 particular. Por ejemplo, supóngase que n es 4 y el umbral T1 para los vectores 4-dim es 6. La tabla de códigos de cifrado y descifrado para los vectores 4-dim incluye el código de escape y 126 códigos, uno para cada vector posible cuyos componentes (por ejemplo, los valores absolutos de los componentes) sumen menos de 6 – (0, 0, 0, 0), (0, 0, 0, 1), etc. Limitar el tamaño de la tabla en base a la suma de componentes de los vectores resulta efectivo debido, en general, a que los vectores más probables son aquellos cuyas sumas de componentes son más pequeñas.
Si la tabla de códigos de cifrado y descifrado para los vectores n-dim no tiene un código de Huffman para un vector n-dim particular, el codificador añade un código de escape a la flujo de bits de salida y codifica el vector n-dim como vectores o escalares de dimensión más pequeña, buscando esos vectores o escalares de dimensión más pequeña en otras tablas de códigos de cifrado y descifrado. Por ejemplo, la dimensión más pequeña es n/2 a menos que n/2 sea 1, en cuyo caso el vector n-dim se divide en escalares. Alternativamente, el vector n-dim se divide de alguna otra manera.
La tabla de códigos de cifrado y descifrado para vectores de dimensión más pequeña incluye códigos de Huffman para L2 vectores de dimensión más pequeña, así como también un código de escape. Los L2 códigos son para cada vector para el que la suma de componentes de vector esté por debajo de un umbral T2 particular para la tabla de dimensión más pequeña. Por ejemplo, supóngase que la dimensión más pequeña es 2 y que el umbral T2 para vectores 2-dim es 16. La tabla de códigos de cifrado y descifrado para vectores 2-dim incluye el código de escape y 136 códigos, uno para cada vector posible cuyos componentes (por ejemplo, los valores absolutos de los componentes) sumen menos de 16 – (0, 0), (0, 1), etc.
Si la tabla de códigos de cifrado y descifrado para vectores de dimensión más pequeña no tiene un código de Huffman para un vector particular de dimensión más pequeña, el codificador añade un código de escape al flujo de bits de salida y codifica el vector como vectores o escales incluso más pequeños, utilizando otras tablas de códigos de cifrado y descifrado. Este proceso se repite decreciendo hasta el nivel escalar. Por ejemplo, la división es mediante una potencia de 2, descendiendo hasta el nivel escalar. Alternativamente, el vector se divide de alguna otra manera.
A nivel escalar, la tabla de códigos de cifrado y descifrado incluye códigos de Huffman para L3 escalares así como también un código de escape. Los L3 códigos son para cada escalar que esté por debajo de un umbral T3 (lo que supone que los valores pequeños son los más probables). Por ejemplo, supóngase que el umbral T3 para escalares es 100. La tabla de códigos de cifrado y descifrado para escalares incluye 100 códigos y un código de escape. Si un escalar no tiene un código asociado en la tabla de códigos escalares, el escalar es codificado con el código de escape, y con un valor (por ejemplo, literal) según una técnica sin tabla. Utilizando todos los ejemplos numéricos dados en esta sección, las tablas tendrían que incluir un total de 126 + 1 + 136 + 1 + 100 + 1 = 365 códigos.
Los tamaños dimensionales para las tablas, los factores de división de vectores, y los umbrales para las sumas de los componentes de vectores dependen de la implementación. Otras implementaciones utilizan diferentes tamaños de vector, diferentes factores de división y/o diferentes umbrales. Alternativamente, un codificador utiliza criterios distintos a las sumas de componentes de vectores para conmutar tamaños de vector/ tablas de códigos de cifrado y descifrado, en la codificación VDVH.
Con referencia a la Figura 8, el codificador obtiene en primer lugar un vector (810) n-dim. El vector n-dim comprende n símbolos, teniendo cada símbolo, por ejemplo, un valor que representa el nivel cuantizado para un coeficiente de frecuencia de datos de audio.
El codificador suma los componentes del vector (812) y compara la suma con un umbral (820) para vectores n-dim. Si la suma es menor, o igual, que el umbral, el codificador codifica el vector n-dim con un código de Huffman procedente de una tabla (822) de códigos, y continúa hasta que la codificación esté completa (824). Si la suma es mayor, o igual, que el umbral, el codificador envía un código de escape (826) y divide el vector n-dim en dos vectores más pequeños con dimensiones de n/2 (830).
El codificador obtiene el siguiente vector n/2-dim (840) y suma los componentes del vector n/2-dim (842). El codificador comprueba la suma respecto a un umbral asociado a vectores n/2-dim (850). Si la suma es menor o igual que el umbral, el codificador codifica el vector n/2-dim con un código de Huffman procedente de una tabla (852) de códigos para vectores n/2-dim, y obtiene el siguiente vector n/2-dim (840) si el codificador no ha acabado de codificar los vectores n/2-dim (854). Si la suma es mayor que el umbral para vectores n/2-dim, el codificador envía otro código (856) de escape.
El codificador sigue en general este patrón en el procesamiento de los vectores, tanto para codificar cada vector como para dividir el vector en vectores de dimensión más pequeña. En casos en los que el codificador divide un vector en dos componentes (860) escalares (de 1 dimensión), el codificador obtiene el siguiente escalar (870) y compara el valor del escalar con un umbral asociado a valores escalares (880). Si el valor escalar es menor, o igual, que el umbral (880), el codificador codifica el escalar utilizando un código de Huffman procedente de una tabla (882) de códigos para escalares. Si el valor escalar es mayor que el umbral, el codificador codifica el escalar utilizando una técnica (884) sin tabla. El codificador obtiene a continuación el siguiente escalar (870) si no ha acabado de procesar los escalares (886).
Alternativamente, el codificador utiliza tablas con diferentes tamaños dimensionales, divide vectores de alguna manera distinta al empleo de una potencia de 2 y/o utiliza un criterio distinto a la suma de componentes de vector para conmutar tamaños de vector/ tablas de códigos de cifrado y descifrado, en la codificación VDVH.
2. Conmutación Adaptativa
La Figura 9 muestra una técnica (900) para la codificación VDVH de coeficientes de niveles directos de señal, donde el codificador determina adaptativamente un punto de conmutación para cambiar a la codificación de longitudes de cadencia y de niveles de señal, de acuerdo con una implementación. El punto de conmutación adaptativo depende de un conteo de coeficientes consecutivos de valor cero. Los datos de entrada son niveles de señal para coeficientes de transformación cuantizados, que avanzan desde el coeficiente de frecuencia más baja hasta el coeficiente de frecuencia más alta. Alternativamente, los datos de entrada son otra forma y / u organización de datos de audio.
Para empezar, el codificador inicializa varias variables. Específicamente, el codificador establece una variable de conteo de cadencia en 0 (910), establece una variable de vector actual en valor vacío (912), y establece una variable de estado de codificación en el valor del vector Huffman directo de dimensión variable [“DVDVH”] (914).
El codificador recibe el siguiente coeficiente QC como entrada (920). El codificador comprueba a continuación (930) si el coeficiente es cero. Si el coeficiente QC no es cero, el codificador reinicia el conteo (938) de cadencias y suma el coeficiente QC al vector actual (940). En otro caso (es decir, si el coeficiente QC es cero), el codificador incrementa la variable (932) de conteo de cadencias y comprueba si el conteo de cadencias actual supera el umbral (934) de conteo de cadencias. El umbral de conteo de cadencias puede ser estático o puede depender de un factor tal como el tamaño de un bloque de coeficientes (por ejemplo, cuatro ceros en una secuencia de entrada de 256 coeficientes), o puede ser adaptativo de alguna otra forma. Por ejemplo, el umbral puede ser incrementado o reducido, con o sin consideración del número de coeficientes en una secuencia de entrada. Si el conteo de cadencias supera el umbral, el codificador cambia el estado de codificación a la codificación de nivel de cadencia [“RLE”] (936), y el coeficiente QC es añadido como componente al vector actual (940).
Añadir el coeficiente QC al vector actual incrementa la dimensión del vector. El codificador determina (950) si el vector actual está listo para codificar, comparando el número de componentes del vector actual con la máxima dimensión para el vector actual. Si es así, el codificador codifica el vector actual utilizando la codificación DVDVH (960). Si el vector actual es más pequeño que la dimensión máxima, pero el coeficiente QC es el último de una secuencia, el codificador puede rellenar el vector actual y codificarlo utilizando la codificación DVDVH (960). La dimensión máxima depende de la implementación. En una implementación, es 8. Sin embargo, la dimensión máxima puede ser incrementada o disminuida según, por ejemplo, la cantidad de recursos disponibles para crear, almacenar o transmitir un código de cifrado y descifrado.
Tras la codificación del vector, el codificador comprueba el estado (970) de codificación. Si el estado de codificación ya no es DVDVH (por ejemplo, si el codificador ha cambiado el estado de codificación a RLE como resultado de superar un número de umbral de coeficientes cero), el codificador empieza la codificación de los coeficientes como longitudes y niveles (980) de cadencia. La codificación de nivel de cadencia puede ser llevada a cabo de varias formas, incluyendo, por ejemplo, la codificación de Huffman, la codificación vectorial de Huffman, o la codificación aritmética basada en contexto. En algunas realizaciones, la codificación de nivel de cadencia se lleva a cabo utilizando codificación de Huffman con dos tablas de códigos de Huffman, donde una tabla se utiliza para codificar datos en los que las secuencias más cortas son las más probables, y una tabla se utiliza para codificar datos en los que las secuencias más largas son las más probables. El codificador prueba cada tabla y elige códigos de una de las tablas, indicando con un bit de señal cuál de las tablas es la que ha utilizado el codificador.
Si el estado de codificación no ha cambiado o el vector actual no está listo para codificar, el codificador determina (990) si existen o no más coeficientes que deban ser codificados. Si es así, el codificador introduce el siguiente coeficiente (920) y continúa el proceso de codificación.
B. Descodificación Vectorial de Huffman de Dimensión Variable
La Figura 10 muestra una técnica (1000) de descodificación VDVH correspondiente a la técnica (700) de codificación VDVH mostrada en la Figura 7. Por ejemplo, un descodificador utiliza la técnica (1000) para descodificar niveles de señal codificados directamente para coeficientes de frecuencia de datos de audio. Alternativamente, el descodificador utiliza la técnica para descodificar otra forma de datos de audio.
El descodificador obtiene (1010) el siguiente código de Huffman para una tabla de codificación de Huffman de vectores ndimensionales. Por ejemplo, el descodificador obtiene el siguiente código de Huffman para 4 símbolos en secuencia.
El descodificador comprueba (1020) si el código de Huffman es o no el código de escape para la tabla de codificación vectorial de Huffman n-dimensional. Si no lo es, el descodificador obtiene (1030) los n símbolos representados por el código de Huffman. Por ejemplo, el descodificador obtiene los 4 símbolos asociados al código de Huffman en un código de cifrado y descifrado de Huffman de vectores de 4 dimensiones.
Si el código es el código de escape, el código de cifrado y descifrado n-dimensional no incluye un código para el vector, y el descodificador obtiene (1040) códigos de Huffman para vectores y/o escalares más pequeños. Por ejemplo, el descodificador obtiene códigos para x vectores de n/x símbolos. Para cada vector de n/x símbolos, el descodificador repite recursivamente la técnica de descodificación, saliendo cuando el vector de n/x símbolos o sus vectores/ escalares componentes están codificados.
El descodificador comprueba a continuación (1050) si existen códigos adicionales para la tabla de codificación vectorial de Huffman n-dimensional que deban ser descodificados. Si no los hay, el descodificador sale. En otro caso, el descodificador obtiene (1010) el siguiente de tales códigos de Huffman.
I. Ejemplo de Implementación
La Figura 11 muestra una técnica (1100) detallada para descodificar vectores codificados utilizando codificación VDVH en una implementación. La técnica de descodificación (1100) corresponde a la técnica (800) de codificación mostrada en la Figura 8.
Con referencia a la Figura 11, el descodificador obtiene el siguiente código para una tabla (1110) de códigos de Huffman de vectores n-dim. El descodificador comprueba si el código es el código de escape para la tabla (1120) de códigos de Huffman de vectores n-dim. Si no lo es, el descodificador obtiene los n símbolos representados por el código en la tabla (1122) de vectores n-dim. El descodificador continúa hasta que el descodificador ha acabado de procesar los datos codificados (1124).
Si el código es el código de escape para la tabla de códigos de Huffman de vectores n-dim, el descodificador descodifica el vector n-dim como dos vectores n/2-dim utilizando una tabla de códigos de Huffman de vectores n/2–dim. Específicamente, el descodificador obtiene el siguiente código para la tabla (1130) de códigos de Huffman de vectores n/2dim. El descodificador comprueba si el código es el código de escape para la tabla (1140) de códigos de Huffman de vectores n/2-dim. Si no lo es, el descodificador obtiene los n/2 símbolos representados por el código en la tabla (1142) de códigos de Huffman de vectores n/2-dim. El descodificador continúa procesando los códigos para la tabla de códigos de Huffman de vectores n/2-dim hasta que el procesamiento de tales códigos se haya completado (1144).
Si el código es el código de escape para la tabla de códigos de Huffman de vectores n/2-dim, el descodificador descodifica el vector n/2-dim como dos vectores n/4-dim, que pueden ser escalares, etc.
El descodificador sigue generalmente este patrón de descodificación de vectores de mayor dimensión como dos vectores de dimensiones más pequeñas cuando se detectan códigos de escape, hasta que los vectores que van ser descodificados sean escalares (vectores 1-dim). En ese punto, el descodificador obtiene el siguiente código para una tabla (1150) escalar de Huffman. El descodificador comprueba si el código es el código de escape para la tabla (1160) de códigos escalares de Huffman. Si no lo es, el descodificador obtiene el escalar representado por el código en la tabla (1162) de códigos escalares de Huffman. El descodificador sigue procesando los códigos para los escalares hasta que el procesamiento de tales códigos se haya completado (1164). Si el código es el código de escape para la tabla de códigos escalares de Huffman, el escalar se codifica utilizando una técnica sin tabla y el descodificador obtiene el valor (1170).
Alternativamente, el descodificador utiliza tablas con diferentes tamaños dimensionales y/o utiliza tablas que dividen los vectores de alguna forma distinta al empleo de la potencia de 2 en la descodificación VDVH.
2. Conmutación Adaptativa
La Figura 12 muestra una técnica (1200) para descodificar vectores que han sido codificados utilizando codificación VDVH de acuerdo con una implementación, en la que el descodificador determina adaptativamente un punto de conmutación para cambiar a la descodificación de longitudes de cadencia y de niveles de señal. El punto de conmutación adaptativo depende de un conteo de coeficientes de valor cero consecutivos en los datos, que son niveles de señal para coeficientes de transformación cuantizados, que avanzan desde el coeficiente de frecuencia más baja hasta el coeficiente de frecuencia más alta. Alternativamente, los datos son otra forma y/u organización de datos de audio.
Para empezar, el descodificador inicializa varias variables. Específicamente, el descodificador fija un conteo de cadencias en 0 (1210) y establece un estado de descodificación en DVDVH (1212).
El descodificador descodifica el siguiente vector buscando el código para ese vector en una tabla (1220) de codificación de Huffman. Por ejemplo, el descodificador lleva a cabo la técnica (1100) de descodificación mostrada en la Figura 11. El descodificador actualiza a continuación el conteo de cadencias en base al vector descodificado (1230) (específicamente, utilizando el número de valores cero en el vector descodificado para reiniciar, incrementar, o ajustar de otro modo el conteo de cadencias).
El descodificador comprueba si el conteo de cadencias supera un umbral (1240). El umbral del conteo de cadencias puede ser estático o puede depender de un factor tal como el tamaño de un bloque de coeficientes (por ejemplo, cuatro ceros en una secuencia de entrada de 256 coeficientes), o puede ser adaptativo de alguna otra manera. Si el conteo de cadencias supera el umbral, el descodificador empieza a descodificar los coeficientes codificados utilizando descodificación (1250) de nivel de cadencia. La descodificación de nivel de cadencia puede ser llevada a cabo de varias formas, incluyendo, por ejemplo, la descodificación de Huffman, la descodificación vectorial de Huffman, o la descodificación aritmética basada en contexto.
En algunas realizaciones, la descodificación de nivel de cadencia se lleva a cabo utilizando descodificación de Huffman con dos tablas potenciales de códigos de Huffman, donde una tabla se utiliza para descodificar datos en los que son más probables secuencias más cortas, y una tabla se utiliza para descodificar datos en los que son más probables secuencias más largas. Cuando el descodificador recibe un código, un bit de señal presente en el código indica qué tabla ha usado el codificador, y el descodificador busca el código en la tabla apropiada.
Si el conteo de cadencias no supera el umbral, el descodificador sigue procesando vectores hasta que la descodificación haya terminado (1260).
V. Codificación y Descodificación Aritméticas Basadas en Contexto
5 En algunas realizaciones, un codificador tal como el codificador (200) de la Figura 2 utiliza codificación aritmética basada en contexto [“CBA”] para codificar secuencias de datos de audio. En codificación CBA, se asocian diferentes distribuciones de probabilidad para los símbolos de entrada con diferentes contextos. La distribución de probabilidad utilizada para codificar la secuencia de entrada cambia cuando cambia el contexto. El contexto puede ser calculado midiendo los diferentes factores que se espera que afecten a la probabilidad de que aparezca un símbolo de entrada
10 particular en una secuencia de entrada. Un descodificador tal como el descodificador (300) de la Figura 3 realiza la correspondiente descodificación aritmética.
Cuando se codifican coeficientes directamente (es decir, como niveles directos), el codificador utiliza factores que incluyen los valores de los coeficientes previos de la secuencia para calcular el contexto. Cuando se codifican coeficientes utilizando codificación de nivel de cadencia, el codificador utiliza factores que incluyen las longitudes de la cadencia actual
15 y de las cadencias previas, además de los valores de los coeficientes previos, para calcular el contexto. El codificador utiliza una distribución de probabilidad asociada al contexto calculado para determinar el código aritmético apropiado para los datos. Así, utilizando los diversos factores en el cálculo de los contextos, el codificador determina los contextos adaptativamente con respecto a los datos y con respecto a la modalidad (es decir, directa, de nivel de cadencia) de representación de los datos.
20 En realizaciones alternativas, el codificador puede utilizar factores adicionales, puede omitir algunos factores, o puede usar los factores mencionados anteriormente en otras combinaciones.
A. Ejemplo de Implementación de Contextos
Las Tablas 2-5 y las Figuras 13A – 13D, 14A – 14H y 15A – 15H, muestran contextos y distribuciones de probabilidad, respectivamente, utilizados en codificación y descodificación CBA, en un ejemplo de implementación. Alternativamente, la
25 codificación y la descodificación CBA utilizan diferentes contextos y/o diferentes distribuciones de probabilidad.
Aunque la exposición que sigue está enfocada al cálculo de contexto en el codificador según el ejemplo de implementación, el descodificador realiza el correspondiente cálculo de contexto durante la descodificación utilizando los datos de audio previamente descodificados.
Según se ha indicado anteriormente, el codificador puede codificar coeficientes utilizando codificación CBA si el
30 codificador está codificando niveles directos solamente o longitudes de cadencia y niveles directos. En una implementación, sin embargo, las técnicas para calcular contextos varían según que el codificador esté codificando niveles directos solamente o longitudes de cadencia y niveles directos. Adicionalmente, cuando se codifican longitudes de cadencia y niveles directos, el codificador utiliza diferentes contextos según que el codificador esté codificando una longitud de cadencia o un nivel directo.
35 El codificador utiliza un sistema de cuatro contextos para calcular contextos durante la codificación aritmética de niveles directos utilizando el contexto causal. El codificador calcula el contexto para un nivel L[n] actual en base al valor del nivel (L[n-1]) previo y al nivel justamente anterior al nivel previo (L[n-2]). Este cálculo de contexto se basa en las hipótesis de que: 1) si los niveles previos son bajos, el nivel actual es probable que sea bajo, y 2) los dos niveles medios es probable que sean mejores pronosticadores del nivel actual que otros niveles. La Tabla 2 muestra los contextos asociados a los
40 valores de los dos niveles previos en el sistema de cuatro contextos. Las Figuras 13A – 13D muestran distribuciones de probabilidad para niveles actuales para estos contextos.
Tabla 2: Contextos para Codificación/ Descodificación CBA de niveles directos
L[n-1]
L[n-2] Contexto
= 0
= 0
0
= 0
> 1 1
= 1
Cualquiera 2
> 2
Cualquiera 3
El codificador también puede utilizar codificación CBA cuando realiza la codificación de longitud de cadencia de los niveles. Cuando se codifica una longitud de cadencia, los factores utilizados por el codificador para calcular el contexto incluyen el porcentaje de ceros en la secuencia de entrada (un total móvil sobre parte de, o sobre toda, la secuencia) y la longitud de la cadencia previa de ceros (R[n-1]). El codificador calcula un índice de porcentaje de ceros en base al porcentaje de ceros en la secuencia de entrada, como se muestra a continuación en la Tabla 3:
Tabla 3: �?ndices de porcentaje de ceros para codificación/ descodificación CBA de longitudes de cadencia
% de Ceros
�?ndice de % de Ceros
> 90
0
> 80
1
> 60
2
< 60
3
El codificador utiliza el índice del porcentaje de ceros junto con la longitud de la cadencia previa para calcular el contexto para codificar la longitud de cadencia actual, como se muestra a continuación en la Tabla 4. Las Figuras 14A – 14H muestran distribuciones de probabilidad para diferentes valores de longitud de cadencia asociados a estos contextos.
10 Tabla 4: Contextos para codificación/ descodificación CBA de longitudes de cadencia
�?ndice de % de Ceros
R[n-1] Contexto
0
= 0
0
0
> 0 4
1
= 0
1
1
> 0 5
2
= 0
2
2
> 0 6
3
= 0
3
3
> 0 7
Por ejemplo, en una secuencia de entrada en la que el 91% de los niveles son cero (lo que da como resultado un índice de porcentaje de ceros de 0), y en la que la longitud de la cadencia previa de ceros era 15, el contexto es 4. Las distribuciones de probabilidad en las Figuras 14A – 14H muestran que cuando el porcentaje de ceros en una secuencia de entrada es más alto, son más probables las longitudes de cadencia más largas. Las distribuciones de probabilidad
15 suponen también que dentro de un índice de porcentaje de ceros dado, las longitudes de cadencia que siguen a una longitud de cadencia cero, es más probable que sean más cortas que las longitudes de cadencia que siguen a una longitud de cadencia mayor que cero.
Cuando se codifica un nivel en datos de nivel de cadencia, los factores utilizados por el codificador para calcular el contexto incluyen la longitud de la cadencia actual (R[n]), la longitud de la cadencia previa (R[n-1]), y los valores de los dos
20 niveles previos (L[n-1]) y (L[n-2]). Este cálculo de contexto está basado en la observación de que el nivel actual depende de los dos niveles previos siempre que la separación (es decir, las longitudes de cadencia) entre los niveles no sea demasiado grande. También, si los niveles previos son más bajos, y si las cadencias previas son más cortas, es probable que el nivel actual sea bajo. Cuando las cadencias previas son más largas, el nivel previo tiene menos efecto sobre el nivel actual.
25 Los contextos asociados a los valores de la longitud de cadencia actual, a la longitud de cadencia previa y a los dos niveles previos, se muestran a continuación en la Tabla 5. Las Figuras 15A – 15H muestran distribuciones de probabilidad para niveles asociados a estos contextos.
Tabla 5: Contextos para codificación / descodificación CBA de niveles en codificación de nivel de cadencia
R[n]
R[n-1] L[n-1] L[n-2] Contexto
> 2
Cualquiera Cualquiera Cualquiera 0
< 2
> 2 = 1 Cualquiera 1
< 2
> 2 = 2 Cualquiera 2
< 2
> 2 > 2 Cualquiera 3
< 2
< 2
= 1 = 1 4
< 2
< 2
= 1 > 1 5
< 2
< 2
= 1 Cualquiera 6
< 2
< 2
> 2 Cualquiera 7
Por ejemplo, en una secuencia de entrada en la que la longitud de la cadencia actual de ceros es 1, la longitud de la cadencia de ceros previa es 2, y el nivel previo es 1, el contexto es 1. Las distribuciones de probabilidad de las Figuras 15A – 15H muestran que cuando los niveles previos son más bajos, y cuando las longitudes de cadencia actual y previa son más cortas, es más probable que el nivel actual sea cero o casi cero.
5 B. Conmutación Adaptativa
La Figura 16 muestra una técnica (1600) para la codificación CBA directa de coeficientes de niveles de señal, en la que el codificador determina adaptativamente un punto de conmutación para cambiar a la codificación de longitudes de cadencia y de niveles de señal de acuerdo con una implementación. El punto de conmutación adaptativo depende del conteo de coeficientes consecutivos de valor cero. Los datos de entrada son niveles de señal para coeficientes de transformación
10 cuantizados, que avanzan desde el coeficiente de frecuencia más baja hasta el coeficiente de frecuencia más alta. Alternativamente, los datos de entrada son otra forma y / u organización de datos de audio.
Para empezar, el codificador inicializa diversas variables. Específicamente, el codificador establece una variable de conteo de cadencia en 0 (1610) y establece una variable de estado de codificación en aritmética directa basada en contexto (DCBA) (1612).
15 El codificador recibe el siguiente coeficiente QC como entrada (1620). El codificador comprueba a continuación (1630) si el coeficiente es cero. Si el coeficiente no es cero, el codificador reinicia el conteo de cadencias (1638) y codifica el coeficiente utilizando la codificación DCBA (1640).
En otro caso (es decir, si el coeficiente QC es cero), el codificador incrementa la variable (1632) de conteo de cadencias y comprueba si el conteo de cadencias actual supera el umbral (1634) de conteo de cadencias. El umbral de conteo de 20 cadencias puede ser estático o puede depender de un factor tal como el tamaño de un bloque de coeficientes (por ejemplo, cuatro ceros en una secuencia de entrada de 256 coeficientes), o puede ser adaptativo de alguna otra manera. Por ejemplo, el umbral puede ser incrementado o decrementado, con o sin consideración del número de coeficientes en una secuencia de entrada. Si el conteo de cadencias supera el umbral, el codificador cambia el estado de codificación a la codificación de nivel de cadencia [“RLE”] (1636). El codificador codifica entonces el coeficiente utilizando la codificación
25 DCBA (1640).
Tras la codificación del coeficiente, el codificador comprueba el estado (1650) de codificación. Si el estado de codificación ya no es DCBA (por ejemplo, si el codificador ha cambiado el estado de codificación a RLE como resultado de superar un número de umbral de coeficientes cero), el codificador empieza la codificación de los coeficientes como longitudes y niveles de cadencia (1660). La codificación de nivel de cadencia puede ser realizada de varias formas incluyendo, por 30 ejemplo, codificación de Huffman, codificación vectorial de Huffman o codificación CBA (potencialmente con contextos diferentes a la anterior codificación CBA, como se ha descrito anteriormente). En algunas realizaciones, la codificación de nivel de cadencia se realiza utilizando codificación de Huffman con dos tablas de código de Huffman, donde una tabla se utiliza para codificar datos en los que las secuencias más cortas son más probables, y una tabla se utiliza para codificar datos en los que las secuencias más largas son más probables. El codificador prueba cada tabla, y elige códigos de una
35 de las tablas, con un bit de señal que indica qué tabla ha usado el codificador.
Si el estado de codificación no ha cambiado, el codificador determina (1670) si existen o no más coeficientes que han de ser codificados. Si es así, el codificador introduce el siguiente coeficiente (1620) y continúa el proceso de codificación.
C. Descodificación Aritmética basada en Contexto
La Figura 17 muestra una técnica (1700) para descodificar coeficientes que han sido codificados utilizando la codificación 40 CBA de acuerdo con una implementación, en la que el descodificador determina adaptativamente un punto de conmutación para cambiar a la descodificación de longitudes de cadencia y de niveles de señal. El punto de conmutación adaptativa depende de un conteo de coeficientes consecutivos de valor cero en los datos, que son niveles de señal para coeficientes de transformación cuantizados, que avanzan desde el coeficiente de frecuencia más baja hasta el coeficiente de frecuencia más alta. Alternativamente, los datos son otra forma y/u organización de datos de audio.
Para empezar, el descodificador inicializa varias variables. Específicamente, el descodificador establece un conteo de cadencias en 0 (1710) y establece un estado de descodificación en aritmética directa basada en contexto (DCBA) (1712).
El descodificador descodifica el siguiente coeficiente cuantizado utilizando DCBA (1720) buscando el número que el codificador ha utilizado para representar el coeficiente en la codificación aritmética, y extrayendo el valor del coeficiente a partir de ese número. El descodificador actualiza a continuación el conteo de cadencias en base al coeficiente descodificado (1730) (específicamente, en base a si el coeficiente descodificado es o no un valor cero para reiniciar o incrementar el conteo de cadencias).
El descodificador comprueba si el conteo de cadencias supera un umbral (1740). El umbral de conteo de cadencias puede ser estático o puede depender de un factor tal como el tamaño de un bloque de coeficientes (por ejemplo, cuatro ceros en una secuencia de entrada de 256 coeficientes), o puede ser adaptativo de alguna otra manera. Si el conteo de cadencias supera el umbral, el descodificador empieza a descodificar los coeficientes codificados utilizando la descodificación (1750) de nivel de cadencia. La descodificación de nivel de cadencia puede ser llevada a cabo de varias formas, incluyendo, por ejemplo, la descodificación de Huffman, la descodificación vectorial de Huffman o la descodificación CBA (potencialmente con contextos diferentes a la descodificación CBA anterior, como se ha descrito en lo que antecede). En algunas realizaciones, la descodificación de nivel de cadencia se realiza utilizando descodificación de Huffman con dos tablas potenciales de códigos de Huffman, donde una tabla se utiliza para descodificar datos en los que las secuencias más cortas son más probables, y una tabla se utiliza para descodificar datos en los que las secuencias más largas son más probables. Cuando el descodificador recibe un código, un bit de señal presente en el código indica qué tabla ha sido utilizada por el codificador, y el descodificador busca el código en la tabla apropiada.
Si el conteo de cadencias no supera el umbral, el descodificador sigue procesando coeficientes hasta que la descodificación haya terminado (1760).
VI. Codificación Sin Tabla
Esta sección vale para una mejor comprensión, pero no se incluye en la invención.
En algunas realizaciones que utilizan codificación de Huffman, un codificador tal como el codificador (200) de la Figura 2, utiliza un código de escape para que una tabla de códigos de Huffman indique que un símbolo (o una combinación de símbolos) particular no tiene un código asociado en la tabla. A veces, se utiliza un código de escape para indicar que un símbolo particular (por ejemplo, un valor escalar para un nivel que no está representado en una tabla escalar de códigos de Huffman para niveles, una longitud de cadencia que no está representada en una tabla escalar de códigos de Huffman para longitudes de cadencia, etc.), debe ser codificado sin utilizar un código de una tabla de Huffman. En otras palabras, el símbolo debe ser codificado utilizando una técnica de codificación “sin tabla”.
En algunas realizaciones que utilizan codificación aritmética, se utiliza a veces un código de escape para indicar que un símbolo particular no ha de ser codificado aritméticamente. El símbolo podría ser codificado utilizando un código de una tabla de Huffman, o también podría ser codificado utilizando una técnica de codificación “sin tabla”.
Algunas técnicas de codificación sin tabla utilizan códigos de longitud fija para representar símbolos. Sin embargo, la utilización de códigos de longitud fija puede conducir a códigos innecesariamente largos.
En algunas realizaciones, por lo tanto, los símbolos tales como los coeficientes de transformación cuantizados, están representados por códigos de longitud variable en una técnica de codificación sin tabla cuando los símbolos no están codificados de otra manera. Un descodificador tal como el descodificador (300) de la Figura 3 ejecuta una técnica correspondiente de descodificación sin tabla.
Por ejemplo, la Tabla 6 muestra un seudo-código para una implementación de dicha técnica de codificación sin tabla.
Si (valor <28) {
Enviar “0”;
Enviar valor usando 8 bits;
}
o bien si (valor <216) { Enviar “10”;
Enviar valor usando 16 bits
}
o bien si (valor <224) {
5 Enviar “110”;
Enviar valor usando 24 bits;
}
o bien si (valor <231) {
Enviar “111”;
10 Enviar valor usando 31 bits;
}
Tabla 6: Seudo-código para técnica de codificación sin tabla en una implementación
El número de bits que utiliza el codificador para codificar el coeficiente depende del valor del coeficiente. El codificador envía un valor de uno, dos o tres bits para indicar el número de bits utilizados para codificar el valor, y a continuación envía
15 el propio valor codificado utilizando 8, 16, 24 ó 31 bits. El número total bits que el codificador utiliza para codificar el coeficiente está comprendido en la gama desde 9 bits para un valor menor de 28, hasta 34 bits para un valor mayor o igual a 224, pero menor que 231.
Para una serie de coeficientes, el promedio de bits enviados será igual a:
P(0 < C < 28)*9 + P(28 < C < 216)*18 + P(216 < C < 224)*27 + P(224 < C < 231)*34.
20 donde P(m < C < n) es la probabilidad de ocurrencia, en una secuencia de entrada, de un coeficiente C dentro de la franja indicada. Por lo tanto, son posibles ahorros significativos de bits cuando un gran porcentaje de los coeficientes son pequeños (por ejemplo, menos de 216).
Alternativamente, el codificador y el descodificador utilizan otra técnica de codificación/ descodificación sin tabla.
Habiendo descrito e ilustrado los principios de nuestra invención con referencia a las diversas realizaciones descritas, se
25 comprenderá que las realizaciones descritas pueden ser modificadas en cuanto a estructura y detalle sin apartarse de tales principios. Se comprenderá que los programas, procesos o procedimientos aquí descritos no están relacionados o limitados en cuanto a algún tipo particular de entorno informático, a menos que se indique otra cosa. Se pueden usar diversos tipos de entornos informáticos especializados o de propósito general con, o llevando a cabo, operaciones de acuerdo a las enseñanzas descritas en la presente memoria. Los elementos de las realizaciones descritas mostrados en
30 software pueden ser implementados en hardware, y viceversa.
En vista de las muchas realizaciones posibles a las que se pueden aplicar los principios de nuestra invención, reivindicamos como nuestra invención todas aquellas realizaciones que puedan caer dentro del alcance de las reivindicaciones que siguen y de las equivalentes de las mismas.

Claims (15)

  1. REIVINDICACIONES
    1. Un procedimiento de codificación de datos de audio o vídeo en un dispositivo informático que implementa un codificador (200), comprendiendo el procedimiento:
    realizar una transformación (230) de frecuencia sobre un bloque de muestras plurales para producir coeficientes de transformación plurales;
    cuantizar (260) los coeficientes de transformación plurales; y
    codificar (270) por entropía los coeficientes de transformación plurales cuantizados,
    caracterizado porque la codificación por entropía incluye:
    codificar uno o más de los coeficientes de transformación plurales cuantizados utilizando una primera modalidad de codificación, que incluye realizar una primera codificación aritmética adaptable al contexto de un valor de nivel de un coeficiente dado de los coeficientes de transformación plurales cuantizados, en donde la primera codificación aritmética adaptable al contexto utiliza un primer conjunto de contextos plurales, y en donde la primera codificación aritmética adaptable al contexto incluye seleccionar uno entre el primer conjunto de contextos plurales en base, al menos en parte, a valores de niveles de dos coeficientes de transformación cuantizados previamente codificados;
    conmutar a una segunda modalidad de codificación para los restantes coeficientes de los coeficientes de transformación plurales cuantizados; y
    codificar los restantes coeficientes de los coeficientes de transformación plurales cuantizados utilizando la segunda modalidad de codificación, que incluye:
    realizar la segunda codificación aritmética adaptable al contexto de un primer valor de nivel y un segundo valor de nivel de un primer coeficiente restante y de un segundo coeficiente restante, respectivamente,
    de los restantes coeficientes de transformación cuantizados, en donde la segunda codificación aritmética adaptable al contexto utiliza un segundo conjunto de contextos plurales distinto al primer conjunto de contextos plurales, y en donde:
    para el primer valor de nivel en la segunda modalidad de codificación, la selección de uno entre el segundo conjunto de contextos plurales considera el valor de nivel del coeficiente de transformación cuantizado dado proveniente de la primera modalidad de codificación; y
    para el segundo valor de nivel en la segunda modalidad de codificación, la selección de uno entre el segundo conjunto de contextos plurales considera el primer valor de nivel.
  2. 2. El procedimiento de la reivindicación 1, en el cual la primera modalidad de codificación es una modalidad de codificación de nivel directo, en el cual la segunda modalidad de codificación es una modalidad de codificación de nivel de cadencia, y en el cual la codificación de los restantes coeficientes de los coeficientes de transformación plurales cuantizados, utilizando la segunda modalidad de codificación, incluye adicionalmente:
    realizar la tercera codificación aritmética adaptable al contexto de un valor de cadencia, indicando el valor de cadencia un conteo de coeficientes consecutivos de transformación cuantizados restantes, adyacentes al primero
    o segundo valor de nivel en la segunda modalidad de codificación, en donde la tercera codificación aritmética adaptable al contexto utiliza un tercer conjunto de contextos plurales distinto al primer conjunto de contextos plurales y distinto al segundo conjunto de contextos plurales.
  3. 3. El procedimiento de la reivindicación 2, en el cual la codificación por entropía incluye adicionalmente:
    seleccionar la primera codificación aritmética adaptable al contexto entre múltiples técnicas de codificación disponibles para la modalidad de codificación de nivel directo, en donde las múltiples técnicas de codificación disponibles para la modalidad de codificación de nivel directo incluyen la codificación de longitud variable de valores de nivel; y
    seleccionar la segunda codificación aritmética adaptable al contexto y la tercera codificación aritmética adaptable al contexto entre múltiples técnicas de codificación disponibles para la modalidad de codificación de nivel de cadencia, en donde las múltiples técnicas de codificación disponibles para la modalidad de codificación de nivel de cadencia incluyen adicionalmente la codificación de longitud variable de valores de cadencia y valores de nivel.
  4. 4.
    El procedimiento de la reivindicación 2, en el cual la conmutación desde la modalidad de codificación de nivel directo a la modalidad de codificación de nivel de cadencia ocurre en un punto de conmutación predeterminado.
  5. 5.
    El procedimiento de la reivindicación 2, en el cual el contexto seleccionado entre el primer conjunto de contextos plurales cambia según (1) que el valor de nivel de un primero de los dos coeficientes de transformación cuantizados previamente codificados sea cero o no cero y (2) que el valor de nivel de un segundo de los dos coeficientes de transformación cuantizados previamente codificados sea cero o no cero.
  6. 6.
    El procedimiento de la reivindicación 2, en el cual el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del valor de nivel del coeficiente de transformación cuantizado previamente codificado sea cero, uno o mayor que uno.
  7. 7.
    El procedimiento de la reivindicación 1, en el cual, al codificar utilizando la primera modalidad de codificación, el contexto seleccionado entre el primer conjunto de contextos plurales cambia según que (1) el valor de nivel de un primero de los dos coeficientes de transformación cuantizados previamente codificados sea cero o no cero, y que (2) el valor de nivel de un segundo de los dos coeficientes de transformación cuantizados previamente codificados sea cero o no cero;
    en el cual, para el primer valor de nivel en la segunda modalidad de codificación, el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del valor de nivel del coeficiente de transformación cuantizado dado en la primera modalidad de codificación sea cero, uno o mayor que uno; y
    en el cual, para el segundo valor de nivel en la segunda modalidad de codificación, el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del primer valor de nivel en la segunda modalidad de codificación sea cero, uno o mayor que uno.
  8. 8. Un procedimiento de descodificación de datos de audio o vídeo en un dispositivo informático que implementa un descodificador (300), comprendiendo el procedimiento:
    descodificar (320) por entropía coeficientes de transformación plurales cuantizados en un bloque,
    caracterizado porque la descodificación por entropía incluye:
    descodificar uno o más de los coeficientes de transformación plurales cuantizados utilizando una primera modalidad de descodificación, que incluye realizar la primera descodificación aritmética adaptable al contexto de un valor de nivel de un coeficiente dado de los coeficientes de transformación plurales cuantizados, en donde la primera descodificación aritmética adaptable al contexto utiliza un primer conjunto de contextos plurales, y en donde la primera descodificación aritmética adaptable al contexto incluye seleccionar uno entre el primer conjunto de contextos plurales, en base, al menos en parte, a valores de nivel de dos coeficientes de transformación cuantizados previamente descodificados;
    conmutar a una segunda modalidad de descodificación para los restantes coeficientes de los coeficientes de transformación plurales cuantizados en el bloque; y
    descodificar los restantes coeficientes de transformación cuantizados utilizando la segunda modalidad de descodificación, que incluye:
    realizar una segunda descodificación aritmética adaptable al contexto de un primer valor de nivel y un segundo valor de nivel de un primer coeficiente restante y un segundo coeficiente restante, respectivamente, de los restantes coeficientes de transformación cuantizados, en donde la segunda descodificación aritmética adaptable al contexto utiliza un segundo conjunto de contextos plurales distinto al primer conjunto de contextos plurales, y en donde:
    para el primer valor de nivel en la segunda modalidad de descodificación, la selección de uno entre el segundo conjunto de contextos plurales considera el valor de nivel del coeficiente de transformación cuantizado dado proveniente de la primera modalidad de descodificación; y
    para el segundo valor de nivel en la segunda modalidad de descodificación, la selección de uno entre el segundo conjunto de contextos plurales considera el primer valor de nivel; y
    cuantizar inversamente (350) los coeficientes de transformación plurales en el bloque; y
    realizar una transformación (360) de frecuencia inversa sobre los coeficientes de transformación plurales para producir un bloque de muestras plurales.
  9. 9.
    El procedimiento de la reivindicación 8, en el cual la primera modalidad de descodificación es una modalidad de descodificación de nivel directo, en el cual la segunda modalidad de descodificación es una modalidad de descodificación de nivel de cadencia, y en el cual la descodificación de los restantes coeficientes, utilizando la segunda modalidad de descodificación, incluye adicionalmente:
    realizar la tercera descodificación aritmética adaptable al contexto de un valor de cadencia, indicando el valor de cadencia un conteo de coeficientes consecutivos de transformación cuantizados restantes, de valor cero, adyacentes al primero o segundo valor de nivel en la segunda modalidad de descodificación, en donde la tercera descodificación aritmética adaptable al contexto utiliza un tercer conjunto de contextos plurales distinto al primer conjunto de contextos plurales y distinto al segundo conjunto de contextos plurales.
  10. 10.
    El procedimiento de la reivindicación 9, en el cual la descodificación por entropía incluye adicionalmente:
    seleccionar la primera descodificación aritmética adaptable al contexto entre múltiples técnicas de descodificación disponibles para la modalidad de descodificación de nivel directo, en donde las múltiples técnicas de descodificación disponibles para la modalidad de descodificación de nivel directo incluyen la descodificación de longitud variable de valores de nivel; y
    seleccionar la segunda descodificación aritmética adaptable al contexto y la tercera descodificación aritmética adaptable al contexto entre múltiples técnicas de descodificación disponibles para la modalidad de descodificación de nivel de cadencia, en donde las múltiples técnicas de descodificación disponibles para la modalidad de descodificación de nivel de cadencia incluyen adicionalmente la descodificación de longitud variable de valores de cadencia y de valores de nivel.
  11. 11.
    El procedimiento de la reivindicación 9, en el cual la conmutación entre la modalidad de descodificación de nivel directo y la modalidad de descodificación de nivel de cadencia ocurre en un punto de conmutación predeterminado.
  12. 12.
    El procedimiento de la reivindicación 9, en el cual el contexto seleccionado entre el primer conjunto de contextos plurales cambia según que (1) el valor de nivel de un primero de los dos coeficientes de transformación cuantizados previamente descodificados sea cero o no cero, y que (2) el valor de nivel de un segundo de los dos coeficientes de transformación cuantizados previamente descodificados sea cero o no cero.
  13. 13.
    El procedimiento de la reivindicación 9, en el cual el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del valor de nivel del coeficiente de transformación cuantizado previamente descodificado sea cero, uno o mayor que uno.
  14. 14.
    El procedimiento de la reivindicación 8, en el cual, al descodificar utilizando la primera modalidad de descodificación, el contexto seleccionado entre el primer conjunto de contextos plurales cambia según que (1) el valor de nivel de un primero de los dos coeficientes de transformación cuantizados previamente descodificados sea cero o no cero, y que (2) el valor de nivel de un segundo de los dos coeficientes de transformación cuantizados previamente descodificados sea cero o no cero;
    en el cual, para el primer valor de nivel en la segunda modalidad de descodificación, el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del valor de nivel del coeficiente de transformación cuantizado dado en la primera modalidad de descodificación sea cero, uno o mayor que uno; y
    en el cual, para el segundo valor de nivel en la segunda modalidad de descodificación, el contexto seleccionado entre el segundo conjunto de contextos plurales cambia según que el valor absoluto del primer valor de nivel en la segunda modalidad de descodificación sea cero, uno o mayor que uno.
  15. 15. Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para llevar a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 14.
ES10181047T 2002-09-04 2003-09-03 Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia Expired - Lifetime ES2378462T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US40853802P 2002-09-04 2002-09-04
US408538P 2002-09-04
US10/647,923 US7433824B2 (en) 2002-09-04 2003-08-25 Entropy coding by adapting coding between level and run-length/level modes
US647923 2003-08-25

Publications (1)

Publication Number Publication Date
ES2378462T3 true ES2378462T3 (es) 2012-04-12

Family

ID=34067862

Family Applications (4)

Application Number Title Priority Date Filing Date
ES06021094T Expired - Lifetime ES2334934T3 (es) 2002-09-04 2003-09-03 Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel.
ES03020015T Expired - Lifetime ES2297083T3 (es) 2002-09-04 2003-09-03 Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel.
ES08017491T Expired - Lifetime ES2388942T3 (es) 2002-09-04 2003-09-03 Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel
ES10181047T Expired - Lifetime ES2378462T3 (es) 2002-09-04 2003-09-03 Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES06021094T Expired - Lifetime ES2334934T3 (es) 2002-09-04 2003-09-03 Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel.
ES03020015T Expired - Lifetime ES2297083T3 (es) 2002-09-04 2003-09-03 Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel.
ES08017491T Expired - Lifetime ES2388942T3 (es) 2002-09-04 2003-09-03 Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel

Country Status (8)

Country Link
US (5) US7822601B2 (es)
EP (5) EP2006840B1 (es)
AT (4) ATE543179T1 (es)
DE (3) DE20321883U1 (es)
DK (2) DK2282310T3 (es)
ES (4) ES2334934T3 (es)
HK (2) HK1152790A1 (es)
PT (1) PT2282310E (es)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20321883U1 (de) 2002-09-04 2012-01-20 Microsoft Corp. Computervorrichtung und -system zum Entropiedecodieren quantisierter Transformationskoeffizienten eines Blockes
US7684981B2 (en) 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
WO2008060246A1 (en) * 2006-11-13 2008-05-22 Agency For Science, Technology And Research Method and system for encoding a data matrix and method and system for decoding an encoded data matrix
US8184710B2 (en) 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
KR101405972B1 (ko) * 2007-07-02 2014-06-12 엘지전자 주식회사 방송 수신기 및 방송신호 처리방법
WO2009022531A1 (ja) * 2007-08-13 2009-02-19 Nec Corporation データ圧縮伸張方法
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
BR122021007798B1 (pt) 2008-07-11 2021-10-26 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E. V. Codificador de áudio e decodificador de áudio
CN101626242B (zh) * 2008-07-11 2014-04-16 数维科技(北京)有限公司 改进的霍夫曼解码方法及装置
AU2009267525B2 (en) 2008-07-11 2012-12-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal synthesizer and audio signal encoder
EP2346030B1 (en) * 2008-07-11 2014-10-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for encoding an audio signal and computer program
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
WO2010032934A2 (ko) * 2008-09-16 2010-03-25 에스케이텔레콤 주식회사 B-변환을 위한 부호화 방법 및 장치와 그를 위한 부호화 데이터
CN102171752B (zh) * 2008-10-10 2013-05-08 日本电信电话株式会社 编码方法、编码装置、解码方法、解码装置
KR101196792B1 (ko) * 2008-12-03 2012-11-05 노키아 코포레이션 Dct 계수 부호화 모드들 간의 전환
ES2531013T3 (es) 2009-10-20 2015-03-10 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, método para codificar información de audio, método para decodificar información de audio y programa de computación que usa la detección de un grupo de valores espectrales previamente decodificados
CN102792370B (zh) 2010-01-12 2014-08-06 弗劳恩霍弗实用研究促进协会 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法
HUE050955T2 (hu) 2010-04-13 2021-01-28 Ge Video Compression Llc Szignifikancia térképek és transzformációs együttható blokkok kódolása
WO2012069886A1 (en) * 2010-11-26 2012-05-31 Nokia Corporation Coding of strings
US8446301B2 (en) * 2011-04-15 2013-05-21 Research In Motion Limited Methods and devices for coding and decoding the position of the last significant coefficient
US9881625B2 (en) * 2011-04-20 2018-01-30 Panasonic Intellectual Property Corporation Of America Device and method for execution of huffman coding
US20130003859A1 (en) * 2011-06-30 2013-01-03 Qualcomm Incorporated Transition between run and level coding modes
US9532056B2 (en) 2011-07-18 2016-12-27 Thomson Licensing Method for adaptive entropy coding of tree structures
US20130099946A1 (en) 2011-10-21 2013-04-25 International Business Machines Corporation Data Compression Utilizing Variable and Limited Length Codes
US8891888B2 (en) * 2012-09-05 2014-11-18 Google Inc. Entropy coding for recompression of images
KR102446441B1 (ko) * 2012-11-13 2022-09-22 삼성전자주식회사 부호화 모드 결정방법 및 장치, 오디오 부호화방법 및 장치와, 오디오 복호화방법 및 장치
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US11146903B2 (en) 2013-05-29 2021-10-12 Qualcomm Incorporated Compression of decomposed representations of a sound field
US9978065B2 (en) * 2013-06-25 2018-05-22 Visa International Service Association Voice filter system
CN104253993B (zh) * 2013-06-28 2018-01-12 炬芯(珠海)科技有限公司 一种多媒体数据处理方法、电路及装置
EP2830065A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
US9344218B1 (en) 2013-08-19 2016-05-17 Zoom Video Communications, Inc. Error resilience for interactive real-time multimedia applications
CA2925734C (en) * 2013-10-18 2018-07-10 Guillaume Fuchs Coding of spectral coefficients of a spectrum of an audio signal
US9489955B2 (en) 2014-01-30 2016-11-08 Qualcomm Incorporated Indicating frame parameter reusability for coding vectors
US9922656B2 (en) 2014-01-30 2018-03-20 Qualcomm Incorporated Transitioning of ambient higher-order ambisonic coefficients
WO2015126228A1 (ko) * 2014-02-24 2015-08-27 삼성전자 주식회사 신호 분류 방법 및 장치, 및 이를 이용한 오디오 부호화방법 및 장치
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
US9852737B2 (en) 2014-05-16 2017-12-26 Qualcomm Incorporated Coding vectors decomposed from higher-order ambisonics audio signals
US10770087B2 (en) 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
US9620137B2 (en) * 2014-05-16 2017-04-11 Qualcomm Incorporated Determining between scalar and vector quantization in higher order ambisonic coefficients
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
WO2016123792A1 (en) 2015-02-06 2016-08-11 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
GB2538218B (en) 2015-02-11 2021-06-30 Leo Greenfield Daniel System and method for compressing data using asymmetric numeral systems with probability distributions
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
US10136132B2 (en) * 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US10699725B2 (en) 2016-05-10 2020-06-30 Immersion Networks, Inc. Adaptive audio encoder system, method and article
US10756755B2 (en) 2016-05-10 2020-08-25 Immersion Networks, Inc. Adaptive audio codec system, method and article
KR20190011742A (ko) * 2016-05-10 2019-02-07 이멀젼 서비시즈 엘엘씨 적응형 오디오 코덱 시스템, 방법, 장치 및 매체
US10770088B2 (en) 2016-05-10 2020-09-08 Immersion Networks, Inc. Adaptive audio decoder system, method and article
US10169362B2 (en) * 2016-07-07 2019-01-01 Cross Commerce Media, Inc. High-density compression method and computing system
CN107945807B (zh) * 2016-10-12 2021-04-13 厦门雅迅网络股份有限公司 基于静音游程的语音识别方法及其系统
US10417364B2 (en) 2017-01-04 2019-09-17 Stmicroelectronics International N.V. Tool to create a reconfigurable interconnect framework
CN108269224B (zh) 2017-01-04 2022-04-01 意法半导体股份有限公司 可重新配置的互连
US10361712B2 (en) * 2017-03-14 2019-07-23 International Business Machines Corporation Non-binary context mixing compressor/decompressor
US10613797B2 (en) * 2017-06-13 2020-04-07 ScaleFlux, Inc. Storage infrastructure that employs a low complexity encoder
CN107677472B (zh) * 2017-08-25 2019-07-09 中国矿业大学 面向网络变量筛选与特征熵融合的轴承状态噪声诊断算法
US11281312B2 (en) 2018-01-08 2022-03-22 Immersion Networks, Inc. Methods and apparatuses for producing smooth representations of input motion in time and space
US10735025B2 (en) * 2018-03-02 2020-08-04 Microsoft Technology Licensing, Llc Use of data prefixes to increase compression ratios
US10657094B2 (en) 2018-03-29 2020-05-19 Nvidia Corp. Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US10599606B2 (en) 2018-03-29 2020-03-24 Nvidia Corp. 424 encoding schemes to reduce coupling and power noise on PAM-4 data buses
US11159153B2 (en) 2018-03-29 2021-10-26 Nvidia Corp. Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US11966348B2 (en) 2019-01-28 2024-04-23 Nvidia Corp. Reducing coupling and power noise on PAM-4 I/O interface
EP4283877A3 (en) * 2018-06-21 2024-01-10 Sony Group Corporation Encoder and encoding method, decoder and decoding method, and program
US11019346B2 (en) * 2018-07-02 2021-05-25 Qualcomm Incorporated Coefficient coding with grouped bypass remaining levels for dependent quantization
US10623200B2 (en) 2018-07-20 2020-04-14 Nvidia Corp. Bus-invert coding with restricted hamming distance for multi-byte interfaces
US10666289B1 (en) 2019-01-16 2020-05-26 International Business Machines Corporation Data compression using dictionary encoding
CN115623208A (zh) * 2019-05-28 2023-01-17 杜比实验室特许公司 用信号发送量化参数
US20220284910A1 (en) * 2019-08-01 2022-09-08 Dolby Laboratories Licensing Corporation Encoding and decoding ivas bitstreams
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质
US11380343B2 (en) 2019-09-12 2022-07-05 Immersion Networks, Inc. Systems and methods for processing high frequency audio signal
US11593609B2 (en) 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
US11227614B2 (en) * 2020-06-11 2022-01-18 Silicon Laboratories Inc. End node spectrogram compression for machine learning speech recognition
US11531873B2 (en) 2020-06-23 2022-12-20 Stmicroelectronics S.R.L. Convolution acceleration with embedded vector decompression
WO2024012666A1 (en) * 2022-07-12 2024-01-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding or decoding ar/vr metadata with generic codebooks

Family Cites Families (234)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420771A (en) 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
DE3629434C2 (de) 1986-08-29 1994-07-28 Karlheinz Dipl Ing Brandenburg Digitales Codierverfahren
EP0260748B1 (de) 1986-09-13 1994-07-13 Philips Patentverwaltung GmbH Verfahren und Schaltungsanordung zur Bitratenreduktion
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US4968135A (en) 1987-08-17 1990-11-06 Digital Equipment Corporation System for producing pixel image data from CCITT encoded pixel data
US4792981A (en) 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
JPH0191587A (ja) 1987-10-02 1989-04-11 Kokusai Denshin Denwa Co Ltd <Kdd> 予測符号ベクトル量子化方式
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
JPH0621830Y2 (ja) 1988-03-11 1994-06-08 本田技研工業株式会社 自動車のサイドシル構造
EP0339589A3 (en) 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
DE3943879B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
FR2646978B1 (fr) 1989-05-11 1991-08-23 France Etat Procede et installation a codage de signaux sonores
US5128758A (en) 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5179442A (en) 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
JPH03108824U (es) 1990-02-22 1991-11-08
US5270832A (en) * 1990-03-14 1993-12-14 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
ATE154485T1 (de) 1990-03-15 1997-06-15 Thomson Multimedia Sa Digitale bildverarbeitung mit filterung der blockkanten
JPH0787331B2 (ja) 1990-05-07 1995-09-20 松下電器産業株式会社 圧電振動子及びその周波数調整方法
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JPH04199981A (ja) 1990-11-29 1992-07-21 Nec Corp 即時処理型1次元符号器
US5253053A (en) * 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
US5373513A (en) * 1991-08-16 1994-12-13 Eastman Kodak Company Shift correction code system for correcting additive errors and synchronization slips
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP2586260B2 (ja) 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
JP3134424B2 (ja) 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
JP2812446B2 (ja) 1991-11-21 1998-10-22 三洋電機株式会社 画像符号化方式
DE69228983T2 (de) 1991-12-18 1999-10-28 Koninkl Philips Electronics Nv System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
WO1993013603A1 (en) 1991-12-23 1993-07-08 Intel Corporation Circuitry for decoding huffman codes
JPH05199422A (ja) 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
US6680975B1 (en) * 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
CA2090052C (en) * 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
US5227788A (en) 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
US5714950A (en) * 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
CA2107727C (en) * 1992-10-07 1999-06-01 Hiroaki Ueda Synchronous compression and reconstruction system
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5367629A (en) 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5535305A (en) 1992-12-31 1996-07-09 Apple Computer, Inc. Sub-partitioned vector quantization of probability density functions
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JPH06217110A (ja) 1993-01-20 1994-08-05 Process Shizai Kk 画像変換方法
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5376968A (en) * 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
CN1038089C (zh) 1993-05-31 1998-04-15 索尼公司 信号编码或译码装置及信号编码或译码方法
US5664057A (en) * 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
KR0155784B1 (ko) * 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
JP3277677B2 (ja) * 1994-04-01 2002-04-22 ソニー株式会社 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置
US5504591A (en) 1994-04-25 1996-04-02 Microsoft Corporation System and method for compressing graphic images
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JPH08116263A (ja) 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
US5802213A (en) * 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
CN1095253C (zh) 1994-11-04 2002-11-27 皇家菲利浦电子有限公司 宽带数字信息信号的编码和解码设备和方法
US5473376A (en) 1994-12-01 1995-12-05 Motorola, Inc. Method and apparatus for adaptive entropy encoding/decoding of quantized transform coefficients in a video compression system
JPH08167852A (ja) 1994-12-13 1996-06-25 Fujitsu Ltd データ圧縮方法及び装置
US5654702A (en) 1994-12-16 1997-08-05 National Semiconductor Corp. Syntax-based arithmetic coding for low bit rate videophone
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
JP3371590B2 (ja) 1994-12-28 2003-01-27 ソニー株式会社 高能率符号化方法及び高能率復号化方法
JPH08190764A (ja) 1995-01-05 1996-07-23 Sony Corp ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体
JPH08205169A (ja) 1995-01-20 1996-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置及び復号装置
JP3238854B2 (ja) * 1995-02-21 2001-12-17 富士通株式会社 データ圧縮方法及びデータ圧縮装置、並びにデータ復元方法及びデータ復元装置
US5574449A (en) * 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
US5884269A (en) 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5796855A (en) 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5889891A (en) 1995-11-21 1999-03-30 Regents Of The University Of California Universal codebook vector quantization with constrained storage
JP3283413B2 (ja) * 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
JPH09162748A (ja) * 1995-12-01 1997-06-20 Fujitsu Ltd データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
US5831559A (en) * 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5675332A (en) * 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US6215910B1 (en) 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5850482A (en) * 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
DE69709189T2 (de) 1996-05-28 2002-08-22 Matsushita Electric Ind Co Ltd Vorrichtung zur Bildvorhersage und -decodierung
WO1998000924A1 (en) * 1996-06-28 1998-01-08 Philips Electronics N.V. High performance variable length decoder with two-word bit stream segmentation and related method
CN1097957C (zh) 1996-07-03 2003-01-01 摩托罗拉公司 用于基于边界的自适应熵编码/解码的方法和装置
DE19628293C1 (de) 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
DE19628292B4 (de) 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
US5828426A (en) 1996-08-20 1998-10-27 Samsung Electronics Co., Ltd. Apparatus for decoding variable length coded data of both MPEG-1 and MPEG-2 standards
JP3318825B2 (ja) * 1996-08-20 2002-08-26 ソニー株式会社 デジタル信号符号化処理方法、デジタル信号符号化処理装置、デジタル信号記録方法、デジタル信号記録装置、記録媒体、デジタル信号伝送方法及びデジタル信号伝送装置
US5734340A (en) * 1996-08-27 1998-03-31 Symantech Corporation Method and apparatus for storing run-intensive information in compact form
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
DE69720558T2 (de) 1996-11-06 2004-03-04 Matsushita Electric Industrial Co., Ltd., Kadoma Methode zur Bilddekodierung mit Kodes variabler Länge
EP0879465B1 (en) * 1996-11-07 2005-11-16 Koninklijke Philips Electronics N.V. Data processing of a bitstream signal
ATE246858T1 (de) * 1996-11-11 2003-08-15 Koninkl Philips Electronics Nv Datenkompression und -dekompression durch rice- kodierer/-dekodierer
US5903231A (en) * 1996-12-16 1999-05-11 Vidicast Ltd. System for encoding base N data using a multi-level coding scheme
JP3484310B2 (ja) 1997-01-17 2004-01-06 松下電器産業株式会社 可変長符号器
NL1005084C2 (nl) 1997-01-24 1998-07-27 Oce Tech Bv Werkwijze voor het uitvoeren van een beeldbewerkingsoperatie op looplengte gecodeerde bitmaps.
JP3534577B2 (ja) 1997-07-23 2004-06-07 日本電信電話株式会社 情報多重化方法、情報抽出方法及びそれらの装置
US6038536A (en) * 1997-01-31 2000-03-14 Texas Instruments Incorporated Data compression using bit change statistics
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
JPH10229340A (ja) 1997-02-14 1998-08-25 Nec Corp サブバンド信号およびウエーブレット変換係数の符号化復号方式
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
FI114248B (fi) 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US6009387A (en) * 1997-03-20 1999-12-28 International Business Machines Corporation System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US5883633A (en) 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US6259810B1 (en) 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
JP3410629B2 (ja) * 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
JP3960629B2 (ja) * 1997-07-11 2007-08-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変長符号器を使用する伝送システム
DE19730129C2 (de) 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
DE19730130C2 (de) * 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
US6421738B1 (en) 1997-07-15 2002-07-16 Microsoft Corporation Method and system for capturing and encoding full-screen video graphics
JP3884172B2 (ja) * 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
EP1809037B1 (en) 1997-10-23 2009-05-13 Mitsubishi Denki Kabushiki Kaisha Image decoding apparatus
WO1999022525A1 (en) 1997-10-23 1999-05-06 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
JPH11161782A (ja) 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6226407B1 (en) 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
US6054943A (en) 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US6408029B1 (en) * 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
KR20010071519A (ko) * 1998-06-19 2001-07-28 벤자민 에프 커틀러 제1 해상도를 가지는 인코딩된 이미지를 제2 해상도를가지는 이미지로 직접 디코딩하는 방법 및 장치
JP3413720B2 (ja) 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
JP3711762B2 (ja) 1998-09-16 2005-11-02 富士ゼロックス株式会社 画像符号化装置および方法
EP1119108A4 (en) 1998-10-06 2002-03-06 Matsushita Electric Ind Co Ltd LOSSLESS COMPRESSION CODING METHOD AND DEVICE, AND LOSSLESS COMPRESSION DECODING METHOD AND DEVICE
US6233359B1 (en) * 1998-10-29 2001-05-15 Seiko Epson Corporation File size bounded JPEG transcoder (FSBJT)
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6377930B1 (en) 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
JP3434260B2 (ja) 1999-03-23 2003-08-04 日本電信電話株式会社 オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記録媒体
US6678419B1 (en) 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
ATE272925T1 (de) 1999-03-26 2004-08-15 Microsoft Corp Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten
US6477280B1 (en) 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US7050503B2 (en) 1999-04-17 2006-05-23 Pts Corporation Segment-based encoding system using residue coding by basis function coefficients
JP3323175B2 (ja) 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6573915B1 (en) 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
JP3419371B2 (ja) 1999-12-28 2003-06-23 松下電器産業株式会社 符号長計算装置、及び符号化装置
US6771824B1 (en) 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6567781B1 (en) * 1999-12-30 2003-05-20 Quikcat.Com, Inc. Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function
JP3603000B2 (ja) 2000-02-01 2004-12-15 カネボウ株式会社 ハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体
US6552673B2 (en) 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
US6771828B1 (en) * 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
EP1294197A4 (en) * 2000-05-23 2004-11-24 Matsushita Electric Ind Co Ltd METHOD AND DEVICE FOR CODING WITH VARIABLE LENGTH
US6542863B1 (en) 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
US6373411B1 (en) 2000-08-31 2002-04-16 Agere Systems Guardian Corp. Method and apparatus for performing variable-size vector entropy coding
JP4508490B2 (ja) 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6961685B2 (en) * 2000-09-19 2005-11-01 Sy Bon K Probability model selection using information-theoretic optimization criterion
US6931068B2 (en) * 2000-10-24 2005-08-16 Eyeball Networks Inc. Three-dimensional wavelet-based scalable video compression
US6735339B1 (en) * 2000-10-27 2004-05-11 Dolby Laboratories Licensing Corporation Multi-stage encoding of signal components that are classified according to component value
US6373412B1 (en) 2000-12-15 2002-04-16 International Business Machines Corporation Fast JPEG huffman encoding and decoding
JP3580251B2 (ja) 2000-12-27 2004-10-20 日本電気株式会社 データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体
US7274671B2 (en) 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
CN100456640C (zh) * 2001-06-07 2009-01-28 日本胜利株式会社 调制和解调方法与装置、信息传输方法和装置
US6650784B2 (en) 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
US6587057B2 (en) * 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
US20030033143A1 (en) * 2001-08-13 2003-02-13 Hagai Aronowitz Decreasing noise sensitivity in speech processing under adverse conditions
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
US6959116B2 (en) 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
CN101001385B (zh) 2001-11-22 2011-06-08 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法
US6825847B1 (en) 2001-11-30 2004-11-30 Nvidia Corporation System and method for real-time compression of pixel colors
US7165028B2 (en) * 2001-12-12 2007-01-16 Texas Instruments Incorporated Method of speech recognition resistant to convolutive distortion and additive distortion
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100468844B1 (ko) 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7139703B2 (en) * 2002-04-05 2006-11-21 Microsoft Corporation Method of iterative noise estimation in a recursive framework
US6653955B1 (en) * 2002-05-09 2003-11-25 Lsi Logic Corporation Multi-symbol variable length code decoder
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
KR100846778B1 (ko) * 2002-07-16 2008-07-16 삼성전자주식회사 복수개의 주사 패턴을 이용한 부호화 방법, 복호화 방법,및 그 장치
DE10236694A1 (de) * 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
DE20321883U1 (de) * 2002-09-04 2012-01-20 Microsoft Corp. Computervorrichtung und -system zum Entropiedecodieren quantisierter Transformationskoeffizienten eines Blockes
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7299190B2 (en) * 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
AU2003290536A1 (en) 2002-10-23 2004-05-13 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7403561B2 (en) 2003-04-04 2008-07-22 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
US7324927B2 (en) * 2003-07-03 2008-01-29 Robert Bosch Gmbh Fast feature selection method and system for maximum entropy modeling
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
CN1214649C (zh) * 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7852916B2 (en) 2004-06-27 2010-12-14 Apple Inc. Efficient use of storage in encoding and decoding video data streams
KR100668302B1 (ko) 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100664932B1 (ko) * 2004-10-21 2007-01-04 삼성전자주식회사 비디오 코딩 방법 및 장치
US7809064B2 (en) 2004-11-15 2010-10-05 Industrial Technology Research Institute Systems and methods of flexible power management applicable to digital broadcasting
US20060176959A1 (en) 2005-02-07 2006-08-10 Paul Lu Method and system for encoding variable length code (VLC) in a microprocessor
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
WO2007002468A2 (en) 2005-06-23 2007-01-04 1Stworks Corporation Modeling for enumerative encoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7630882B2 (en) * 2005-07-15 2009-12-08 Microsoft Corporation Frequency segmentation to obtain bands for efficient coding of digital media
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7562021B2 (en) * 2005-07-15 2009-07-14 Microsoft Corporation Modification of codewords in dictionary used for efficient coding of digital media spectral data
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7372378B2 (en) 2005-12-01 2008-05-13 Nvidia Corporation Efficient decoding of n-tuple variable bit length symbols
JP2007300389A (ja) 2006-04-28 2007-11-15 Victor Co Of Japan Ltd 画像符号化装置および画像符号化プログラム
US9070178B2 (en) * 2006-08-11 2015-06-30 Siemens Product Lifecycle Management Software Inc. Method and system for organizing topology elements for better compression
US7756350B2 (en) 2006-11-13 2010-07-13 Global Ip Solutions, Inc. Lossless encoding and decoding of digital data
US7761290B2 (en) * 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US20080317364A1 (en) 2007-06-25 2008-12-25 Augusta Technology, Inc. Methods for determining neighboring locations for partitions of a video stream
US7885819B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
DE102010036672B4 (de) 2010-07-28 2022-12-08 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Cabriolet-Fahrzeug
US8278779B2 (en) 2011-02-07 2012-10-02 General Electric Company System and method for providing redundant power to a device

Also Published As

Publication number Publication date
ATE381090T1 (de) 2007-12-15
ES2388942T3 (es) 2012-10-19
EP2006840A1 (en) 2008-12-24
EP1400954A2 (en) 2004-03-24
HK1154302A1 (en) 2012-04-13
EP1734511B1 (en) 2009-11-18
ES2334934T3 (es) 2010-03-17
DE60317982D1 (de) 2008-01-24
US20080262855A1 (en) 2008-10-23
ATE449405T1 (de) 2009-12-15
ATE543178T1 (de) 2012-02-15
US7822601B2 (en) 2010-10-26
US8712783B2 (en) 2014-04-29
EP1734511A3 (en) 2007-06-20
EP2282310A1 (en) 2011-02-09
EP1734511A2 (en) 2006-12-20
US20140229186A1 (en) 2014-08-14
EP2006840B1 (en) 2012-07-04
ES2297083T3 (es) 2008-05-01
HK1152790A1 (en) 2012-03-09
US7840403B2 (en) 2010-11-23
US20080228476A1 (en) 2008-09-18
DK1400954T3 (da) 2008-03-31
US20110035225A1 (en) 2011-02-10
EP1400954A3 (en) 2005-02-02
PT2282310E (pt) 2012-04-13
US8090574B2 (en) 2012-01-03
EP2282310B1 (en) 2012-01-25
DE60330198D1 (de) 2009-12-31
EP1400954B1 (en) 2007-12-12
EP2267698A1 (en) 2010-12-29
DE20321883U1 (de) 2012-01-20
US9390720B2 (en) 2016-07-12
US20120069899A1 (en) 2012-03-22
DE60317982T2 (de) 2008-04-10
DK2282310T3 (da) 2012-02-20
EP2267698B1 (en) 2012-01-25
ATE543179T1 (de) 2012-02-15

Similar Documents

Publication Publication Date Title
ES2378462T3 (es) Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia
US7433824B2 (en) Entropy coding by adapting coding between level and run-length/level modes
JP5688861B2 (ja) レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
ES2627212T3 (es) Modificación de palabras de código en diccionario usado para codificación eficaz de datos espectrales de medio digital
JP5085543B2 (ja) 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用
KR101353216B1 (ko) 팩토리얼 펄스 코더를 위한 산술 인코딩
KR101353170B1 (ko) 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더
JP2013178546A (ja) ディジタルメディアの効率的コーディング用のバンドを入手するための周波数セグメント化
JPWO2002052732A1 (ja) 符号化装置および復号装置
WO2023100494A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
WO2022201632A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法