PT2282310E - Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência - Google Patents

Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência Download PDF

Info

Publication number
PT2282310E
PT2282310E PT10181047T PT10181047T PT2282310E PT 2282310 E PT2282310 E PT 2282310E PT 10181047 T PT10181047 T PT 10181047T PT 10181047 T PT10181047 T PT 10181047T PT 2282310 E PT2282310 E PT 2282310E
Authority
PT
Portugal
Prior art keywords
decoding
coding
level
context
sequence
Prior art date
Application number
PT10181047T
Other languages
English (en)
Inventor
Sanjeev Mehrohtra
Chen Wei-Ge
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
Publication of PT2282310E publication Critical patent/PT2282310E/pt

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

Description

DESCRIÇÃO
"CODIFICAÇÃO ENTRÓPICA POR ADAPTAÇÃO DE MODOS DE CODIFICAÇÃO ENTRE CODIFICAÇÃO POR NÍVEL E CODIFICAÇÃO POR COMPRIMENTO/NÍVEL DE SEQUÊNCIA"
CAMPO A presente invenção refere-se a codificação entrópica adaptativa de dados de áudio. Por exemplo, um codificador de áudio alterna entre codificação de Huffman de níveis directos de dados de áudio quantificados e codificação aritmética de comprimentos e níveis de sequência de dados de áudio quantificados.
ANTECEDENTES
Com a introdução de discos compactos, redes telefónicas digitais sem fios e transmissão de áudio através da Internet, o áudio digital tornou-se comum. Os engenheiros utilizam uma variedade de técnicas para processar áudio digital de forma eficiente, mantendo, ao mesmo tempo, a qualidade do áudio digital. Entender essas técnicas ajuda a entender como é que a informação de áudio é representada e processada num computador. 1 I. Representação de Informação de Audio num Computador
Um computador processa informação de áudio como uma série de números representando a informação de áudio. Por exemplo, um único número pode representar uma amostra de áudio, que é um valor de amplitude (i. e., intensidade sonora) num momento particular. Vários factores afectam a qualidade da informação de áudio, incluindo a profundidade da amostra, a taxa de amostragem e o modo de canal. A profundidade de amostra (ou precisão) indica o intervalo de números utilizados para representar uma amostra. Quanto mais valores possíveis para a amostra, maior a qualidade, pois o número pode capturar variações mais subtis na amplitude. Por exemplo, uma amostra de 8 bits tem 256 valores possíveis, enquanto uma amostra de 16 bits tem 65536 valores possíveis. A taxa de amostragem (normalmente medida como o número de amostras por segundo) também afecta a qualidade. Quanto maior a taxa de amostragem, maior a qualidade, porque mais frequências de som podem ser representadas. Algumas taxas de amostragem comuns são de 8000, 11025, 22050, 32000, 44100, 48000 e 96000 amostras por segundo. O Quadro 1 mostra vários formatos de áudio com diferentes níveis de qualidade, juntamente com os correspondentes custos de débito binário máximo. 2
Qualidade Profundidade de Amostra (bits/amostra) Taxa de Amostragem (amostras/segundo) Modo Débito Binário Máximo Telefonia Internet 8 8000 mono 64000 Telefone 8 11025 mono 88200 CD de áudio 16 44100 estéreo 1411200 Áudio de alta qualidade 16 48000 estéreo 1536000
Quadro 1: Débitos binários para informação de áudio de diferente qualidade
Como mostrado no Quadro 1, o custo de informação de áudio de alta qualidade, tal como um CD de áudio, é um débito binário elevado. A informação de áudio de alta qualidade consome grandes quantidades de armazenamento de computador e capacidade de transmissão. No entanto, as empresas e consumidores dependem cada vez mais de computadores para criar, distribuir e reproduzir conteúdo de áudio de alta qualidade. II. Compressão e Descompressão de Áudio
Muitos computadores e redes de computadores não têm recursos para processar sinais brutos de áudio. A compressão (também denominada codificação ou processo de codificação) diminui o custo de armazenamento e transmissão de informação de áudio convertendo a informação para uma forma cujo débito binário é menor. A compressão pode ser sem perda de informação (em que a 3 qualidade não sofre) ou com perda de informação (em que a qualidade sofre, mas em que a redução do débito binário na compressão sem perda de informação é mais dramática). A descompressão (também denominada descodificação) extrai uma versão reconstruída da informação original a partir da forma comprimida.
Geralmente, o objectivo da compressão de áudio é representar, digitalmente, sinais de áudio para oferecer uma qualidade máxima do sinal com a menor quantidade possível de bits. Um sistema convencional de codificador/descodificador ["codec"] de áudio utiliza codificação por sub-banda/transformação, quantificação, controlo da frequência e codificação de comprimento variável para conseguir a sua compressão. A quantificação e outras técnicas de compressão com perda de informação introduzem ruído potencialmente audível num sinal de áudio. A audibilidade do ruído depende da quantidade de ruído existente e que parte do ruído o ouvinte consegue perceber. 0 primeiro factor refere-se, principalmente, a uma qualidade objectiva, enquanto o segundo factor depende da percepção humana do som. 0 codificador de áudio convencional, então, comprime, sem perda de informação, os dados quantificados utilizando uma codificação de comprimento variável para diminuir, ainda mais, o débito binário. A. Compressão e Descompressão de Dados de Áudio com Perda de Informação
Convencionalmente, um codificador de áudio utiliza uma variedade de diferentes técnicas de compressão com perda de informação. Estas técnicas de compressão com perda de informação 4 implicam, normalmente, transformações de frequência, modelização/ponderação perceptual e quantificação. A descompressão correspondente implica quantificação inversa, ponderação inversa e transformações de frequência inversas.
As técnicas de transformação de frequência convertem dados numa forma que facilita separar informação perceptualmente importante de informação perceptualmente sem importância. A informação menos importante pode, em seguida, ser submetida a uma compressão com mais perda de informação, enquanto a informação mais importante é preservada, de modo a proporcionar a melhor qualidade percebida para um débito binário especifico. Um transformador de frequência, tipicamente, recebe as amostras de áudio e converte-as em dados no domínio da frequência, denominados, algumas vezes, coeficientes de frequência ou coeficientes espectrais. A maior parte da energia em sons naturais, tais como a fala e música, está concentrada na gama de baixa frequência. Isto significa que, estatisticamente, as gamas de frequências mais altas terão mais coeficientes de frequência que são zero ou próximo de zero, o que reflecte a falta de energia nas gamas de frequências mais altas. A modelização perceptual envolve o processamento de dados de áudio de acordo com um modelo do sistema auditivo humano para melhorar a qualidade percebida do sinal reconstruído de áudio para um débito binário específico. Por exemplo, um modelo auditivo considera, tipicamente, a gama de audição humana e bandas críticas. Utilizando os resultados da modelização perceptual, um codificador modela ruído (e. g., ruído de quantificação) nos dados de áudio com o objectivo de minimizar a 5 audibilidade do ruído para um débito binário específico. Embora o codificador tenha que, por vezes, introduzir ruído (e. g., ruído de quantificação) para reduzir o débito binário, a ponderação permite que o codificador coloque mais ruído em bandas onde é menos audível e vice-versa. A quantificação projecta gamas de valores de entrada em valores individuais introduzindo uma perda irreversível de informação ou ruído de quantificação, mas permitindo, também, a um codificador regular a qualidade e débito binário da saída. Às vezes, o codificador executa quantificação em conjunto com um controlador de débito que ajusta a quantificação para regular o débito binário e/ou a qualidade. Existem vários tipos de quantificação, incluindo adaptativa e não adaptativa, escalar e vectorial, uniforme e não uniforme. A ponderação perceptual pode ser considerada uma forma de quantificação não-uniforme. A quantificação inversa e ponderação inversa reconstroem os dados de coeficiente de frequência quantificados e ponderados aproximando-os dos dados de coeficiente de frequência originais. 0 transformador de frequência inversa, em seguida, converte os dados de coeficiente de frequência reconstruídos em amostras de áudio reconstruídas no domínio do tempo. B. Compressão e Descompressão de Dados de Audio sem Perda de Informação
Convencionalmente, um codificador de áudio utiliza uma ou mais de uma variedade de diferentes técnicas de compressão sem perda de informação. Em geral, as técnicas de compressão sem perda de informação incluem codificação por comprimento de 6 sequência, codificação Huffman e codificação aritmética. As técnicas de descompressão correspondentes incluem descodificação por comprimento de sequência, descodificação de Huffman e descodificação aritmética. A codificação por comprimento de sequência é uma técnica de compressão simples e bem conhecida utilizada para vídeo, texto e outros tipos de conteúdo. Em geral, a codificação por comprimento de sequência substitui uma sequência de símbolos consecutivos tendo o mesmo valor pelo valor e o comprimento da sequência. Na descodificação por comprimento de sequência, a sequência de símbolos consecutivos é reconstruída a partir do valor de sequência e comprimento de sequência. Inúmeras variações de codificação/descodificação por comprimento de sequência têm sido desenvolvidas. Para obter informações adicionais sobre codificação/descodificação por comprimento de sequência e algumas das suas variações, ver, e. g., Bell et al., Text Compression, Prentice Hall PTR, páginas 105-107, 1990; Gibson et al., Digital Compression for Multimedia, Morgan Kaufmann, páginas 17-62, 1998; Patente U.S. N° 6304928 de Mairs et al.; Patente U.S. N° 5883633 de Gill et al.; e Patente U.S. N° 6233017 de Chaddha. A codificação por nível de sequência é semelhante à codificação por comprimento de sequência na medida em que sequências de símbolos consecutivos tendo o mesmo valor são substituídas por comprimentos de sequência. O valor para as sequências é o valor predominante (e. g., 0) nos dados e as sequências são separadas por um ou mais níveis tendo um valor diferente (e. g., um valor diferente de zero). 7
Os resultados da codificação por comprimento de sequência (e. g., os valores de sequência e comprimentos de sequência) ou da codificação por nível de sequência podem ser codificados pelo método de Huffman para reduzir ainda mais o débito binário. Se assim for, os dados codificados pelo método de Huffman são descodificados pelo método de Huffman antes da descodificação por comprimento de sequência. A codificação Huffman é outra técnica de compressão bem conhecida utilizada para vídeo, texto e outros tipos de conteúdo. Em geral, uma tabela de códigos Huffman associa códigos Huffman de comprimento variável com valores de símbolo único (ou combinações únicas de valores). Códigos mais curtos são atribuídos a valores de símbolos mais prováveis e códigos mais longos são atribuídos a valores de símbolos menos prováveis. As probabilidades são calculadas para exemplos típicos de algum tipo de conteúdo. Ou, as probabilidades são calculadas para dados acabados de codificar ou dados a codificar, sendo que, nesse caso, os códigos Huffman se adaptam mudando probabilidades para os valores de símbolo único.
Comparada com a codificação Huffman estática, a codificação
Huffman adaptativa reduz, geralmente, o débito binário de dados comprimidos através da incorporação de probabilidades mais precisas para os dados, mas informações suplementares especificando os códigos Huffman também podem ter que ser transmitidas.
Para codificar símbolos, o codificador de Huffman substitui valores de símbolos pelos códigos Huffman de comprimento variável associados com os valores de símbolos na tabela de códigos de Huffman. Para descodificar, o descodificador de
Huffman substitui os códigos Huffman pelos valores de símbolos associados com os códigos Huffman.
Na codificação de Huffman escalar, uma tabela de códigos de Huffman associa um único código de Huffman com um valor, por exemplo, um nível directo de um valor de dados quantificado. Na codificação de Huffman vectorial, uma tabela de códigos de Huffman associa um único código de Huffman com uma combinação de valores, por exemplo, um grupo de níveis directos de valores de dados quantificados numa ordem particular. A codificação de Huffman vectorial pode levar a uma melhor redução do débito binário do que a codificação Huffman escalar (e. g., permitindo que o codificador explore probabilidades, fraccionadamente, em códigos de Huffman binários) . Por outro lado, o livro de códigos para codificação Huffman vectorial pode ser extremamente grande quando códigos únicos representam grandes grupos de símbolos ou símbolos têm grandes gamas de valores potenciais (devido ao grande número de combinações possíveis). Por exemplo, se o tamanho do alfabeto for 256 (para valores de 0 a 255 por símbolo) e o número de símbolos por vector for 4, o número de combinações possíveis é 2564 = 4294967296. Isso consome recursos de memória e processamento no cálculo do livro de códigos e para encontrar códigos de Huffman e consome recursos de transmissão na transmissão do livro de códigos.
Desenvolveram-se inúmeras variações de codificação/descodificação de Huffman. Para obter informações adicionais sobre codificação/descodificação de Huffman e algumas das suas variações, ver, por exemplo, Bell et al., Text Compression, Prentice Hall PTR, páginas 105-107, 1990; Gibson et al., Digital Compression for Multimedia, Morgan Kaufmann, páginas 17-62, 1998. 9 A Patente U.S. N° 6223162 de Chen et al., descreve codificação multinivel de comprimento de sequência de dados de áudio. Uma transformação de frequência produz uma série de valores de coeficiente de frequência. Para partes de um espectro de frequência em que o valor predominante é zero, um codificador de multinivel de comprimento de sequência correlaciona, estatisticamente, sequências de valores zero com valores diferentes de zero adjacentes e atribui palavras de códiqo de comprimento variável. Um codificador utiliza um livro de códiqos especializado gerado em termos da probabilidade de receber uma sequência de entrada de coeficientes espectrais de valor zero seguidos por um coeficiente diferente de zero. Um descodificador correspondente associa uma palavra de código de comprimento variável com uma sequência de coeficientes de valor zero e coeficiente de valor diferente de zero adjacente. A Patente U.S. N° 6377930 de Chen et al., descreve codificação de comprimento variável para variável de dados de áudio. Um codificador atribui um código de comprimento variável a um grupo de tamanho variável de valores de coeficiente de frequência. A Patente U.S. N° 6300888 de Chen et ai., descreve comutação de modo de código de entropia para codificação de áudio no domínio da frequência. Um codificador de áudio no domínio da frequência efectua uma selecção entre diferentes modos de codificação entrópica de acordo com as características de um fluxo de entrada. Em particular, o fluxo de entrada é dividido em gamas de frequência de acordo com critérios estatísticos derivados de análise estatística de uma entrada típica ou real a codificar. A cada gama é atribuída um codificador de entropia 10 optimizado para codificar os tipos de dados dessa gama. Durante a codificação e descodificação, um selector de modo aplica o método correcto às diferentes gamas de frequência. Os limites de partição podem ser decididos com antecedência, permitindo que o descodificador saiba, implicitamente, qual o método de descodificação para aplicar a dados codificados. Ou podem utilizar-se configurações adaptativas, em que os limites são sinalizados no fluxo de saída para indicar uma mudança no modo de codificação para dados subsequentes. Por exemplo, um limite de partição separa, principalmente, coeficientes de frequência quantificados a zero de, principalmente, coeficientes quantificados diferentes de zero e, em seguida, aplica codificadores optimizados a esses dados.
Para pormenores adicionais sobre as patentes de Chen, consultar as patentes propriamente ditas. A codificação aritmética é outra técnica de compressão bem conhecida utilizada para vídeo e outros tipos de conteúdo. A codificação aritmética é, por vezes, utilizada em aplicações em que o número óptimo de bits para codificar um símbolo de entrada específico é um número fraccionário de bits e nos casos em que existe uma correlação estatística entre determinados símbolos de entrada individuais. A codificação aritmética implica, de um modo geral, representar uma sequência de entrada como um único número dentro de um determinado intervalo. Tipicamente, o número é um número fraccionário entre 0 e 1. Símbolos na sequência de entrada estão associados com intervalos ocupando partes do espaço entre 0 e 1. Os intervalos são calculados com base na probabilidade de o símbolo particular ocorrer na sequência de entrada. 0 número fraccionário utilizado para representar a sequência de entrada é construído recorrendo aos intervalos. Por 11 conseguinte, distribuições de probabilidade para símbolos de entrada são importantes em esquemas de codificação aritmética.
Na codificação aritmética em função do contexto, distribuições de probabilidade diferentes para os símbolos de entrada são associadas a diferentes contextos. A distribuição de probabilidade utilizada para codificar a sequência de entrada muda quando o contexto muda. 0 contexto pode ser calculado medindo diferentes factores que devem afectar a probabilidade de um símbolo de entrada particular aparecer numa sequência de entrada. Para obter informações adicionais sobre codificação/descodificação aritmética e algumas das suas variações, ver Nelson, The Data Compression Book, "Huffman One Better: Arithmetic Coding," Capítulo 5, p. 123-65 (1992). Vários sistemas e normas de codec utilizam compressão e descompressão sem perda de informação, incluindo versões do codificador e descodificador Windows Media Audio ["WMA"] da Microsoft Corporation. Outros sistemas de codec são fornecidos ou especificados pelo Grupo de Especialistas em Imagens com Movimento, norma Audio Layer 3 ["MP3"], Grupo de Especialistas em Imagens com Movimento 2, norma Advanced Audio Coding ["AAC"] e Dolby AC3. Para obter informações adicionais, consulte as respectivas normas ou publicações técnicas.
Quaisquer que sejam as vantagens das técnicas e sistemas anteriores para compressão sem perda de informação de dados de áudio, não têm as vantagens da presente invenção.
No documento WO 02/35849, é conhecido uma compressão de vídeo escalável tridimensional à base de wavelets. O método compreende os seguintes passos: i) aplicar uma decomposição 12 temporal e espacial tridimensional à base de wavelets para produzir uma pluralidade de sub-bandas espácio-temporais; ii) quantificar os coeficientes das sub-bandas espácio-temporais com um quantificador escalar uniforme para produzir um mapa de significância; e iii) efectuar a codificação por comprimento de sequência e aritmética adaptativa do sinal através da codificação do mapa de significância, codificação dos sinais de todos os coeficientes significativos e codificação das magnitudes de coeficientes significativos, por ordem de plano binário, a começar com o plano binário mais significativo. Códigos adaptativos para H.26L são conhecidos do artigo correspondente por D. Marpe et ai., ITU STUDY GROUP 16, Documento VCEG-L13.
SUMARIO A invenção proporciona um método de acordo com a reivindicação 1 e reivindicação 8.
Em resumo, a descrição pormenorizada refere-se a várias técnicas e ferramentas para codificação e descodificação entrópica adaptativa de dados de áudio. As várias técnicas e ferramentas podem ser utilizadas em combinação ou independentemente.
Num aspecto, um codificador recebe uma sequência de dados de áudio ou vídeo e codifica, pelo menos, parte da sequência utilizando codificação aritmética em função do contexto. Um descodificador recebe uma sequência codificada de coeficientes de dados de áudio e descodifica, pelo menos, parte da sequência 13 codificada utilizando descodificação aritmética em função do contexto.
Noutro aspecto, um codificador codifica coeficientes de dados de áudio ou vídeo utilizando codificação aritmética em função do contexto. Um ou mais contextos têm distribuições de probabilidade associadas representando probabilidades de coeficientes. 0 codificador determina, de modo adaptativo, um contexto para um coeficiente actual com base, pelo menos em parte, num modo de representação do coeficiente actual e codifica o coeficiente actual utilizando o contexto. Por exemplo, se o modo de representação for directo, o codificador determina, de modo adaptativo, o contexto com base, pelo menos em parte, nos níveis directos de coeficientes anteriores (e. g., os dois coeficientes que precedem imediatamente o coeficiente actual) . Se o modo de representação for nível de sequência, o codificador determina, de modo adaptativo, o contexto com base, pelo menos em parte, na percentagem de coeficientes de valor zero e no comprimento de sequência anterior de coeficientes de valor zero na sequência de entrada de áudio. Se o modo de representação for nível de sequência, o codificador determina, de modo adaptativo, o contexto com base, pelo menos em parte, no comprimento de sequência actual de coeficiente de valor zero, no comprimento de sequência anterior de coeficientes de valor zero e nos níveis directos de coeficientes anteriores.
As características e vantagens das técnicas de codificação e descodificação entrópica adaptativa serão evidentes a partir da descrição pormenorizada que se segue de várias formas de realização que recorrem aos desenhos em anexo. 14
BREVE DESCRIÇÃO DOS DESENHOS A Figura 1 é um diagrama de blocos de um ambiente informático adequado no qual se podem implementar formas de realização descritas. A Figura 2 é um diagrama de blocos de um codificador de áudio no qual se podem implementar formas de realização descritas. A Figura 3 é um diagrama de blocos de um descodificador de áudio no qual se podem implementar formas de realizaçao descritas. A Figura 4 é um fluxograma que mostra uma técnica de codificação de áudio multimodo generalizada. A Figura 5 é um fluxograma que mostra uma técnica de codificação de áudio multimodo com cálculo de ponto de comutação adaptativo. A Figura 6 é um fluxograma que mostra uma técnica de descodificação de áudio multimodo generalizada. A Figura 7 é um fluxograma que mostra uma técnica de codificação de Huffman vectorial generalizada de dimensão variável. A Figura 8 é um fluxograma que mostra uma técnica pormenorizada para a codificação de dados de áudio utilizando codificação Huffman vectorial de dimensão variável. 15 A Figura 9 é um fluxograma que mostra uma técnica para a codificação Huffman vectorial de dimensão variável de níveis de sinal directos, em que o codificador determina, de modo adaptativo, um ponto de comutação para mudar para a codificação de comprimentos de sequência e níveis de sinal. A Figura 10 é um fluxograma que mostra uma técnica de descodificação Huffman vectorial de dimensão variável generalizada. A Figura 11 é um fluxograma que mostra uma técnica pormenorizada para a descodificação de vectores codificados utilizando codificação Huffman vectorial de dimensão variável. A Figura 12 é um fluxograma que mostra uma técnica para descodificação Huffman vectorial de dimensão variável de níveis de sinal directos, em que o descodificador determina, de modo adaptativo, um ponto de comutação para mudar para a descodificação de comprimentos de sequência e níveis de sinal.
As Figuras 13A-13D são distribuições de probabilidade para níveis não conforme o comprimento de sequência num esquema de codificação aritmética em função do contexto.
As Figuras 14A-14H são distribuições de probabilidade para comprimentos de sequência diferentes num esquema de codificação aritmética em função do contexto.
As Figuras 15A-15H são distribuições de probabilidade para níveis codificados por comprimento de sequência num esquema de codificação aritmética em função do contexto. 16 A Figura 16 é um fluxograma que mostra uma técnica para codificação aritmética directa em função do contexto de coeficientes, em que um ponto de comutação para mudar para codificação de comprimentos de sequência e níveis é determinado de modo adaptativo pelo codificador. A Figura 17 é um fluxograma que mostra uma técnica para descodificação aritmética em função do contexto, em que o descodificador determina, de modo adaptativo, um ponto de comutação para mudar para descodificação de comprimentos de sequência e níveis de sinal.
DESCRIÇÃO DETALHADA
Em formas de realização descritas, um codificador de áudio executa várias técnicas de codificação entrópica adaptativa. As técnicas de codificação entrópica adaptativa melhoram o desempenho do codificador, reduzindo débito binário e/ou melhorando a qualidade. Um descodificador realiza técnicas de descodificação entrópica correspondentes. Embora as técnicas sejam descritas em partes aqui como parte de um sistema único, integrado, as técnicas podem ser aplicadas separadamente, possivelmente em combinação com outras técnicas. 0 codificador e descodificador de áudio processam sinais de áudio discretos. Nas formas de realização descritas, os sinais de áudio são coeficientes quantificados de sinais de áudio transformados a nível de frequência. Em alternativa, o codificador e descodificador processam outro tipo de sinal de áudio discreto ou sinal discreto representando informação de vídeo. 17
Em algumas formas de realização, um codificador de áudio efectua uma comutação, de modo adaptativo, entre codificação de níveis de sinal directos e codificação de comprimentos de sequência e níveis de sinal. 0 codificador codifica os níveis de sinal directos, utilizando codificação aritmética. Na codificação de comprimento/nível de sequência (também denominada codificação de nível de sequência), cada comprimento de sequência representa uma sequência de zeros ou mais zeros e cada nível de sinal representa um valor diferente de zero. No espaço de eventos de nível de sequência, o codificador codifica comprimentos de sequência e níveis nesse espaço de eventos utilizando codificação aritmética. Um descodificador realiza uma comutação adaptativa correspondente durante a descodificação. A comutação adaptativa ocorre quando um número limiar de níveis de valor zero é atingido. Em alternativa, o codificador e descodificador efectuam uma comutação com base em critérios adicionais ou outros.
Em alguns exemplos, um codificador de áudio utiliza codificação Huffman vectorial de dimensão variável. A codificação Huffman vectorial de dimensão variável permite que o codificador utilize códigos Huffman para representar combinações mais prováveis de símbolos utilizando vectores de maior dimensão e combinações menos prováveis de símbolos utilizando vectores ou escalares de menor dimensão. Um descodificador realiza uma descodificação Huffman de dimensão variável correspondente.
Em algumas formas de realização, um codificador de áudio utiliza codificação aritmética em função do contexto. Os contextos utilizados pelo codificador permitem uma compressão eficaz de diferentes tipos de dados de áudio. Um descodificador 18 realiza uma descodificação aritmética em função do contexto correspondente.
Em formas de realização descritas, o codificador e descodificador de áudio executam várias técnicas. Embora as operações para estas técnicas estejam, tipicamente, descritas numa ordem particular, sequencial, por uma questão de apresentação, deve compreender-se que esta forma de descrição engloba reconfigurações menores na ordem de operações. Além disso, por uma questão de simplicidade, os fluxogramas, tipicamente, não mostram as várias formas em que as técnicas particulares podem ser utilizadas em associação com outras técnicas. I. Ambiente Informático A Figura 1 ilustra um exemplo generalizado de um ambiente (100) informático adequado no qual formas de realização descritas podem ser implementadas. O ambiente (100) informático não se destina a sugerir qualquer limitação quanto ao âmbito de utilização ou funcionalidade da invenção, dado que a presente invenção pode ser implementada em diversos ambientes informáticos de utilização genérica ou para fins especiais.
No que se refere à Figura 1, o ambiente (100) informático inclui, pelo menos, uma unidade (110) de processamento e memória (120). Na Figura 1, esta configuração (130) mais básica está incluida no interior de uma linha tracejada. A unidade (110) de processamento executa de instruções executáveis por computador e pode ser um processador real ou um virtual. Num sistema de multiprocessamento, múltiplas unidades de 19 processamento executam instruções executáveis por computador para aumentar a potência de processamento. A memória (120) pode ser uma memória volátil (e. g., registos, cache, RAM), memória não-volátil (e. g., ROM, EEPROM, memória flash, etc.) ou alguma combinação das duas. A memória (120) armazena software (180) implementando um codificador/descodificador de áudio que executa codificação/descodificação entrópica adaptativa de dados de áudio.
Um ambiente informático pode ter recursos adicionais. Por exemplo, o ambiente (100) informático inclui um armazenamento (140), um ou mais dispositivos (150) de entrada, um ou mais dispositivos (160) de saída e uma ou mais conexões (170) de comunicação. Um mecanismo de interligação (não mostrado), tal como um barramento, controlador ou rede interliga os componentes do ambiente (100) informático. Tipicamente, o software do sistema operativo (não mostrado) proporciona um ambiente operativo para outro software em execução no ambiente (100) informático e coordena actividades dos componentes do ambiente (100) informático. O armazenamento (140) pode ser removível ou não-removível e inclui discos magnéticos, fitas magnéticas ou cassetes, CD-ROM, CD-RW, DVD ou qualquer outro meio que possa ser utilizado para armazenar informações e a que se possa aceder dentro do ambiente (100) informático. O armazenamento (140) armazena instruções para o software (180) implementando o codificador/descodificador de áudio que executa codificação/descodificação entrópica adaptativa de dados de áudio. 20 0(s) dispositivo(s) (150) de entrada pode(m) ser um dispositivo de introdução de dados táctil, tal como um teclado, rato, caneta ou trackball, um dispositivo de entrada de voz, um dispositivo de digitalização, adaptador de rede ou outro dispositivo que permita a introdução de dados no ambiente (100) informático. No caso de áudio, o(s) dispositivo(s) (150) de entrada pode(m) ser uma placa de som ou dispositivo semelhante que aceite a entrada de áudio em forma analógica ou digital, ou um leitor de CD-ROM que forneça amostras de áudio ao ambiente informático. 0(s) dispositivo(s) (160) de saída pode(m) ser um monitor, impressora, altifalante, gravador de CD/DVD, adaptador de rede ou outro dispositivo que permita a saída do ambiente (100) informático. A(s) conexão(ões) (170) de comunicação permite(m) a comunicação, através de um meio de comunicação, com outra entidade informática. O meio de comunicação transmite informação, tal como instruções executáveis por computador, informação de áudio comprimida ou outros dados num sinal de dados modulado. Um sinal de dados modulado é um sinal em que uma ou mais das suas características foram definidas ou alteradas para codificar informação no sinal. A título de exemplo não limitativo, meios de comunicação incluem técnicas com ou sem fios implementadas por meio eléctrico, óptico, RF, infravermelho, acústico ou por outro meio de transporte. A invenção pode ser descrita no contexto geral de meios legíveis por computador. Meios legíveis por computador são todos os meios disponíveis a que se pode aceder dentro de um ambiente informático. A título de exemplo não limitativo, no interior do ambiente (100) informático, meios legíveis por computador 21 incluem memória (120), armazenamento (140), meios de comunicação e combinações de qualquer um dos supracitados. A invenção pode ser descrita no contexto geral de instruções executáveis por computador, tais como as incluídas em módulos de programas, a executar num ambiente informático, num processador alvo real ou virtual. De um modo geral, os módulos de programas incluem rotinas, programas, bibliotecas, objectos, classes, componentes, estruturas de dados, etc., que executam tarefas particulares ou implementam tipos de dados abstractos particulares. A funcionalidade dos módulos de programas pode ser combinada ou dividida entre módulos de programas, como desejado em várias formas de realização. As instruções executáveis por computador para módulos de programas podem ser executadas no interior de um ambiente informático local ou distribuído.
Para fins de apresentação, a descrição pormenorizada utiliza termos como "analisar", "enviar", "comparar" e "verificar" para descrever operações informáticas num ambiente informático. Estes termos são abstrações de alto nível para operações executadas por um computador e não devem ser confundidos com actos realizados por um ser humano. As operações informáticas propriamente ditas correspondentes a esses termos variam dependendo da implementação. II. Codificador e Descodificador de Áudio Generalizados A Figura 2 é um diagrama de blocos de um codificador (200) de áudio generalizado no qual se podem implementar formas de realização. O codificador (200) executa codificação entrópica adaptativa de dados de áudio. A Figura 3 é um diagrama de blocos 22 de um descodif icador (300) de áudio generalizado no qual se podem implementar formas de realização. O descodificador (300) descodifica dados de áudio codificados.
As relações mostradas entre módulos dentro do codificador e descodificador indicam um fluxo de informação num codificador e descodificador exemplificativos; outras relações não são mostradas por uma questão de simplicidade. Dependendo da implementação e do tipo de compressão desejado, os módulos do codificador ou descodificador podem ser adicionados, omitidos, divididos em múltiplos módulos, combinados com outros módulos e/ou substituídos por módulos semelhantes. Em formas de realização alternativas, codificadores ou descodificadores com módulos diferentes e/ou outras configurações executam codificação e descodificação entrópica adaptativa de dados de áudio. A. Codificador de Áudio Generalizado O codificador (200) de áudio generalizado inclui um selector (208), um pré-processador (210) de multicanal, um divisor/configurador (220) de janelas, um transformador (230) de frequência, um modelador (240) de percepção, um ponderador (242), um transformador (250) de multicanal, um quantificador (260), um codificador (270) entrópico, um controlador (280), um codificador (272) misto/puro sem perda de informação e codificador (274) entrópico associado e um multiplexador ["MUX"] (290) de fluxo de bits. Segue-se uma descrição sobre alguns dos módulos do codificador (200). Para obter uma descrição sobre os outros módulos do codificador (200) 23 em algumas formas de realizaçao, ver as aplicações referenciadas na seção Dados de Aplicações Relacionadas. 0 codificador (200) recebe uma série temporal de amostras (205) de áudio de entrada com uma determinada profundidade e taxa de amostragem em formato de modulação por impulsos codificados ["PCM"]. As amostras (205) de entrada de áudio podem ser áudio multicanal (e. g., modo estéreo, envolvente) ou mono. O codificador (200) comprime as amostras (205) de áudio e multiplexa informação produzida pelos vários módulos do codificador (200) para gerar um fluxo (295) de bits num formato Windows Media Audio ["WMA"] ou Advanced Streaming Format ["ASF"]. Em alternativa, o codificador (200) funciona com outros formatos de entrada e/ou saida.
Inicialmente, o selector (208) seleciona entre múltiplos modos de codificação para as amostras (205) de áudio. Na Figura 2, o selector (208) comuta entre dois modos: um modo de codificação misto/puro sem perda de informação e um modo de codificação com perda de informação. O modo de codificação sem perda de informação inclui o codificador (272) misto/puro sem perda de informação e é, tipicamente, utilizado para compressão de alta qualidade (e débito binário elevado). O modo de codificação com perda de informação inclui componentes, tais como o ponderador (242) e quantificador (260) e é, tipicamente, utilizado para compressão de qualidade ajustável (e débito binário controlado). A decisão de selecção no selector (208) depende da introdução de dados pelo utilizador (e. g., um utilizador que selecciona codificação sem perda de informação para fazer cópias de áudio de alta qualidade) ou de outros critérios. Noutras circunstâncias (e. g., quando a compressão com perda de informação não permite obter uma qualidade adequada 24 ou produz bits em excesso), o codificador (200) pode efectuar a comutação de codificação com perda de informação para codificação mista/pura sem perda de informação para uma trama ou conjunto de tramas. O transformador (230) de frequência recebe as amostras (205) de áudio e converte-as em dados no domínio da frequência. O transformador (230) de frequência envia blocos de dados de coeficientes de frequência para o ponderador (242) e envia informação anexa, tal como tamanhos de blocos, para o MUX (290) . O transformador (230) de frequência envia os coeficientes de frequência e a informação anexa para o modelador (240) de percepção. O modelador (240) de percepção modela propriedades do sistema auditivo humano para melhorar a qualidade percebida do sinal de áudio reconstruído para um débito binário específico. De um modo geral, o modelador (240) de percepção processa os dados de áudio de acordo com um modelo auditivo e, em seguida, fornece informação ao ponderador (242), que pode ser utilizado para gerar factores de ponderação para os dados de áudio. O modelador (240) de percepção utiliza qualquer um dos vários modelos auditivos e transfere informação de excitação padrão ou outra informação para o ponderador (242).
Na forma de um ponderador de banda de quantificação, o ponderador (242) gera factores de ponderação para uma matriz de quantificação com base na informação recebida do modelador (240) de percepção e aplica os factores de ponderação aos dados recebidos do transformador (230) de frequência. O ponderador (242) envia informação anexa, tal como o conjunto de factores de ponderação, para o MUX (290) . Na forma de um 25 ponderador de canal, o ponderador (242) gera, então, factores de ponderação específicos de canal com base na informação recebida do modelador (240) de percepção e também na qualidade do sinal localmente reconstruído. Estes pesos de ponderação escalares permitem que os canais reconstruídos tenham uma qualidade aproximadamente uniforme. O ponderador (242) envia blocos ponderados de dados de coeficientes para o transformador (250) de multicanal e envia informação anexa, tal como o conjunto de factores de ponderação de canal, para o MUX (290) . Em alternativa, o codificador (200) utiliza outra forma de ponderação ou evita a ponderação.
Para dados de áudio multicanal, os múltiplos canais de dados de coeficientes de frequência em forma de ruído produzidos pelo ponderador (242) correlacionam-se muitas vezes. Para explorar esta correlação, o transformador (250) de multicanal pode aplicar uma transformação de multicanal aos dados de áudio. O transformador (250) de multicanal produz informação anexa para o MUX (290) indicando, por exemplo, as transformações de multicanal utilizadas e partes de tramas submetidas a transformação de multicanal. 0 quantificador (260) quantifica a saída do transformador (250) de multicanal produzindo dados de coeficientes quantificados para o codificador (270) entrópico e a informação anexa incluindo tamanhos de passos de quantificação para o MUX (290) . A quantificação introduz perda irreversível de informação, mas também permite que o codificador (200) regule a qualidade e o débito binário do fluxo (295) de bits de saída em associação com o controlador (280). Em algumas formas de realização, o quantificador (260) é um quantificador escalar uniforme e adaptativo. Em formas de realização alternativas, o 26 quantificador é um quantificador não uniforme, um quantificador vectorial e/ou um quantificador não adaptativo, ou utiliza uma forma diferente de quantificação escalar uniforme e adaptativa. 0 codificador (270) entrópico sem perda de informação comprime dados de coeficientes quantificados recebidos do quantificador (260). Em algumas formas de realização, o codificador (270) entrópico utiliza codificação entrópica adaptativa, como descrito nas secções que se seguem. O codificador (270) entrópico pode calcular o número de bits gastos ao codificar informação de áudio e passar essa informação para o controlador (280) de débito/qualidade. O controlador (280) funciona com o quantificador (260) para regular o débito binário e/ou a qualidade da saida do codificador (200) . O controlador (280) recebe informação de outros módulos do codificador (200) e processa a informação recebida para determinar factores de quantificação desejados dadas as condições atuais. O controlador (280) envia os factores de quantificação para o quantificador (260) com o objectivo de satisfazer os condicionalismos de qualidade e/ou débito binário. O codificador (272) misto sem perda de informação/puro sem perda de informação e codificador (274) entrópico associado comprimem dados de áudio para o modo de codificação misto/puro sem perda de informação. O codificador (200) utiliza o modo de codificação misto/puro sem perda de informação para uma sequência inteira ou efectua uma comutação entre modos de codificação trama a trama ou noutra base. O MUX (290) multiplexa a informação anexa recebida dos outros módulos do codificador (200) de áudio em conjunto com os 27 dados codificados por entropia recebidos do codificador (270) entrópico. O MUX (290) envia a informação num formato WMA ou noutro formato que um descodificador de áudio reconheça. O MUX (290) inclui uma memória tampão virtual que armazena o fluxo (295) de bits para ser enviado pelo codificador (200) . A actual amplitude da memória tampão, o ritmo de alteração da amplitude da memória tampão e outras caracteristicas da memória tampão podem ser utilizados pelo controlador (280) para regular a qualidade e/ou débito binário para diferentes aplicações (e. g., com uma qualidade constante/débito binário variável, com ou abaixo de um débito binário constante/qualidade variável). B. Descodificador de Áudio Generalizado
No que se refere à Figura 3, o descodificador (300) de áudio generalizado inclui um desmultiplexador ["DEMUX"] (310) de fluxo de bits, um ou mais descodificadores (320) entrópicos, um descodificador (322) misto/puro sem perda de informação, um descodificador (330) de configuração de janelas, um transformador (340) de multicanal inverso, um quantificador/ponderador (350) inverso, um transformador (360) de frequência inverso, um módulo (370) de sobreposição/adição e um pós-processador (380) de multicanal. O descodificador (300) é um pouco mais simples do que o codificador (300), pois o descodificador (300) não inclui módulos para controlo de qualidade/débito ou modelização de percepção. Segue-se a descrição de alguns dos módulos do descodificador (300). Para obter uma descrição sobre os outros módulos do descodificador (300) em algumas formas de realização, ver as aplicações referenciadas na secção Dados de Aplicações Relacionadas. 28 0 descodificador (300) recebe um fluxo (305) de bits de informação de áudio comprimida num formato WMA ou outro formato. O fluxo (305) de dados inclui dados codificados por entropia, bem como informação anexa, a partir do que o descodificador (300) reconstrói amostras (395) de áudio. O DEMUX (310) analisa informação no fluxo (305) de bits e envia informação para os módulos do descodificador (300). O DEMUX (310) inclui uma ou mais memórias tampão para compensar variações de curto prazo em débito binário, devido a flutuações na complexidade do áudio, instabilidade de rede e/ou outros factores. O um ou mais descodificadores (320) entrópicos descomprimem sem perda de informação códigos entrópicos recebidos do DEMUX (310). Por razões de simplicidade, um módulo de descodificador entrópico é mostrado na Figura 3, embora se possam utilizar diferentes descodificadores entrópicos para modos de codificação com perda de informação e sem perda de informação ou mesmo dentro de modos. Além disso, por uma questão de simplicidade, a Figura 3 não mostra a lógica de selecção de modos. O descodificador (320) entrópico aplica, tipicamente, o inverso da técnica de codificação entrópica utilizada no codificador (200). Ao descodificar dados comprimidos em modo de codificação com perda de informação, o descodificador (320) entrópico produz dados de coeficientes de frequência quantificados. O descodificador (322) misto/puro sem perda de informação e descodificador(es) (320) entrópico(s) associado(s) descomprimem dados de áudio codificados sem perda de informação para o modo de codificação misto/puro sem perda de informação. O descodificador (300) utiliza um modo de descodificação 29 particular para uma sequência inteira ou efectua a comutação de modos de descodificação trama a trama ou noutra base. 0 transformador (340) de multicanal inverso recebe os dados de coeficientes de frequência quantificados descodificados por entropia do(s) descodificador(es) (320) entrópico(s), bem como informação anexa do DEMUX (310) indicando, por exemplo, a transformação de multicanal e partes de tramas transformadas. O quantificador/ponderador (350) inverso recebe factores de quantificação, bem como matrizes de quantificação do DEMUX (310) e recebe dados de coeficientes de frequência quantificados do transformador (340) de multicanal inverso. O quantificador/ponderador (350) inverso descomprime a informação de factor/matriz de quantificação recebida, conforme necessário, e, em seguida, realiza a quantificação e ponderação inversa. O transformador (360) de frequência inverso recebe os dados de coeficientes de frequência enviados pelo frequência frequência quantificador/ponderador (350) inverso, bem como informação anexa do DEMUX (310). O transformador (360) de inverso aplica o inverso da transformação de utilizada no codificador e envia blocos para o módulo de sobreposição/somador (370). O módulo (370) de sobreposição/adição recebe informação descodificada do transformador (360) de frequência inverso e/ou descodificador (322) misto/puro sem perda de informação. O módulo (370) de sobreposição/adição sobrepõe e adiciona dados de áudio quando necessário e entrelaça tramas ou outras sequências de dados de áudio codificados com diferentes modos. 30 III. Comutação de Modo de Codificação/Descodificação Entrópica Adaptativa
Os métodos de codificação por nivel de sequência são muitas vezes mais eficazes do que a codificação directa de níveis quando uma sequência de entrada contém muitas ocorrências de um único valor (e. g., 0) . No entanto, dado que coeficientes de transformação quantificados diferentes de zero são comuns em sequências de entrada de dados de áudio, especialmente nas frequências mais baixas, a codificação por nível de sequência não é eficaz em toda a gama de frequências. Além disso, em áudio de qualidade superior, os coeficientes de transformação quantificados diferentes de zero tornam-se mais comuns, mesmo em frequências mais altas. (Em áudio de alta qualidade, os níveis de quantificação são, tipicamente, menores). Por conseguinte, em algumas formas de realização, um codificador, tal como o codificador (200) da Figura 2, executa uma técnica de codificação multimodo que pode utilizar codificação por nível de sequência para uma parte de uma sequência de entrada de dados de áudio e codificação directa de níveis para outra parte da sequência. Um descodificador, tal como o descodificador (300) da Figura 3, executa uma técnica de descodificação multimodo correspondente. A. Comutação de Modo de Codificação Entrópica Adaptativa
No que se refere à Figura 4, numa técnica 400 de codificação multimodo, o codificador, em primeiro lugar, codifica níveis de sinal num fluxo de entrada, directamente (410) . Por exemplo, o codificador executa codificação de Huffman de dimensão variável, 31 codificação aritmética em função do contexto ou outra técnica de codificação entrópica directamente nos niveis de sinal.
Num ponto de comutação durante a codificação, o codificador muda o esquema (420) de codificação. O codificador pode mudar o esquema de codificação num ponto de comutação predeterminado ou o codificador pode analisar os dados de entrada para determinar um ponto apropriado para alterar os esquemas de codificação. Por exemplo, o codificador pode analisar uma sequência de entrada para encontrar o melhor ponto de comutação para codificação por nivel de sequência, enviando o ponto de comutação para o descodificador no fluxo de bits de saída. Ou, o codificador pode calcular o ponto de comutação de modo adaptativo contando zeros consecutivos (ou, em alternativa, um outro valor predominante) nos dados de entrada e efectuar a comutação para codificação por nível de sequência quando um número limiar particular de zeros consecutivos for contado. O descodificador pode calcular o ponto de comutação da mesma forma, de modo a que o ponto de comutação não tenha que ser incluído no fluxo de bits. Ou o codificador e descodificador utilizam alguns outros critérios para determinar o ponto de comutação.
Depois do ponto de comutação, o codificador codifica níveis de sinal restantes utilizando codificação (430) por nível de sequência. Por exemplo, o codificador executa codificação de Huffman, codificação aritmética em função do contexto ou outra técnica de codificação entrópica nos comprimentos de sequência e níveis de sinal. O codificador pode utilizar a mesma técnica (e. g., codificação aritmética em função do contexto) antes e depois do ponto de comutação ou o codificador pode utilizar técnicas diferentes. 32
Além disso, embora a Figura 4 e várias outras figuras na aplicação mostrem um único ponto de comutação, podem utilizar-se pontos de comutação adicionais para dividir dados de entrada em mais de duas partes. Por exemplo, podem definir-se pontos de comutação adicionais adaptativos para limiares aumentados de zeros consecutivos. Podem, em seguida, aplicar-se esquemas de codificação diferentes às diferentes partes. Ou, o codificador pode experimentar com diferentes pontos de segmentação na sequência, ponderando os ganhos de eficiência de codificação para diferentes configurações de segmentação em conjunto com os custos de sinalização das diferentes configurações para o descodificador. A Figura 5 mostra uma técnica (500) de codificação multimodo com cálculo adaptativo de ponto de comutação de acordo com uma implementação. O ponto de comutação adaptativo depende de uma contagem de coeficientes de valor zero consecutivos. Os dados de entrada são níveis de sinal para coeficientes de transformação quantificados, progredindo desde o coeficiente de frequência mais baixo para o coeficiente de frequência mais alto. Na prática, a posição do ponto de comutação depende do sinal a comprimir e do débito binário/qualidade da codificação. Em alternativa, os dados de entrada são outra forma e/ou organização de dados de áudio.
Para começar, o codificador inicializa diversas variáveis. Especificamente, o codificador define uma variável de contagem de sequência para 0 (510) e define uma variável de estado de codificação para "directa" (512). O codificador recebe o coeficiente QC seguinte como entrada (520). O codificador, em seguida, verifica (530) se o 33 coeficiente QC é zero. Se o coeficiente QC for diferente de zero, o codificador reinicia a contagem (538) de sequência. Caso contrário (i. e., se o coeficiente QC for zero), o codificador incrementa a variável (532) de contagem de sequência e verifica se a contagem de sequência actual excede o limiar (534) de contagem de sequência. 0 limiar de contagem de sequência pode ser estático ou pode depender de um factor, tal como o tamanho de um bloco de coeficientes (e. g.f um limiar de contagem de sequência de 4 para uma sequência de 256 coeficientes, 8 para uma sequência de 512 coeficientes, etc.), ou pode ser adaptativo de alguma outra forma. Se a contagem de sequência exceder o limite, o codificador muda o estado de codificação para codificação de nível de sequência ["RLE"] (536). 0 codificador, depois, se for caso disso (540), codifica o coeficiente QC. (Em alguns casos, grupos de coeficientes são codificados em conjunto utilizando uma técnica, tal como codificação de Huffman vectorial. Nesses casos, o codificador pode diferir a codificação do coeficiente QC). O codificador, em seguida, verifica (550) se o codificador deve efectuar a comutação entre modos de codificação. Em particular, o codificador verifica o estado de codificação. Se o estado de codificação já não for directo (e. g., se o codificador mudou o estado de codificação para RLE em resultado de se alcançar um número limiar de coeficientes zero), o codificador inicia a codificação por nível de sequência dos coeficientes (560) . (De novo, em casos em que grupos de coeficientes são codificados em conjunto, o codificador pode diferir a decisão de comutação até se atingir um ponto de quebra conveniente para um grupo de coeficientes). 34
Se o codificador não efectuar a comutação entre modos de codificação, o codificador verifica se acabou de codificar os coeficientes (570). Se assim for, o codificador sai. Caso contrário, o codificador introduz o coeficiente (520) seguinte para continuar o processo de codificação. B. Comutação de Modo de Descodificação Entrópica Adaptativa
No que se refere à Figura 6, numa técnica (600) de descodificação multimodo, o descodificador descodifica níveis (610) de sinal directamente codificados. Por exemplo, o descodificador executa descodificação Huffman de dimensão variável, descodificação aritmética em função do contexto ou outra técnica de descodificação entrópica nos níveis de sinal directamente codificados.
Num ponto de comutação durante a descodificação, o descodificador muda o esquema (620) de descodificação. Se o ponto de comutação for predeterminado, o descodificador pode receber, na forma de uma bandeira ou outro mecanismo de notificação, dados que, explicitamente, dizem ao descodificador quando mudar esquemas de descodificação. Ou o descodificador pode calcular, de modo adaptativo, quando mudar esquemas de descodificação com base nos dados de entrada que recebe. Se o descodificador calcular o ponto de comutação, o descodificador utiliza a mesma técnica de cálculo utilizada pelo codificador para assegurar que o esquema de descodificação muda no ponto correcto. Por exemplo, o descodificador conta zeros consecutivos (ou, em alternativa, outro valor predominante) para determinar o ponto de comutação de modo adaptativo. Numa implementação, o descodificador utiliza uma técnica correspondente à técnica de 35 codificador mostrada na Figura 5. Ou o descodificador utiliza alguns outros critérios para determinar o ponto de comutação.
Depois do ponto de comutação, o descodificador descodifica níveis (630) de sinais restantes codificados por nível de sequência. Por exemplo, o descodificador executa descodificação Huffman, descodificação aritmética em função do contexto ou outra técnica de descodificação entrópica nos comprimentos de sequência e níveis de sinal codificados. O descodificador pode utilizar a mesma técnica (e. g., descodificação aritmética em função do contexto) antes e depois do ponto de comutação ou o descodificador pode utilizar técnicas diferentes. IV. Codificação e Descodificação Huffman de Dimensão Variável
Esta secção serve para perceber melhor a invenção, mas não está abrangida por esta.
Embora símbolos, tais como níveis de sinal directos possam ser codificados utilizando codificação Huffman escalar, essa abordagem é limitada quando o número ideal de bits para codificar um símbolo é um número fraccionário. A codificação Huffman escalar também é limitada pela incapacidade que os códigos Huffman escalares têm para acomodar correlação estatística entre símbolos. A codificação Huffman vectorial dá origem a uma melhor redução de débito binário do que a codificação Huffman escalar (e. g., permitindo que o codificador explore probabilidades, de modo fraccionado, em códigos Huffman binários). E, em geral, vectores de maiores dimensão dão origem a uma melhor redução de débito binário do que vectores de menor 36 dimensão. No entanto, se um código for atribuído a cada combinação de símbolos possível, o tamanho do livro de códigos aumenta exponencialmente com o aumento da dimensão vectorial. Por exemplo, num sistema de 32-bit, o número de combinações possíveis para um vector com 4 dimensões é ( 232 ) 4 . 0 tempo de pesquisa para correspondência de um vector e encontrar um código de Huffman também aumenta drasticamente à medida que aumenta o tamanho do livro de códigos.
Em algumas formas de realização, para reduzir o tamanho de um livro de códigos, um codificador, tal como o codificador (200) da Figura 2, utiliza uma técnica de codificação Huffman vectorial de dimensão variável. Em vez de atribuir um código do livro de códigos para cada combinação n-dimensional possível, são atribuídos códigos a um número limitado dos vectores com n dimensões mais prováveis. Se um vector com n dimensões particular não receber um código, o vector com n dimensões é, em vez disso, codificado como vectores de menores dimensões (e. g., dois vectores com n/2 dimensões), como escalares com códigos Huffman ou como escalares utilizando alguma técnica sem tabela para representar valores discretos. Um descodificador, tal como o descodificador (300) da Figura 3, reconstrói um vector, encontrando o(s) código(s) para o vector e encontrando os valores associados.
Por exemplo, no caso de vectores com 4 dimensões com 256 valores possíveis por símbolo, o codificador codifica os 500 vectores com 4 dimensões mais prováveis com códigos Huffman e utiliza um código de escape para indicar outros vectores. O codificador divide esses outros vectores em vectores com 2 dimensões. O codificador codifica os 500 vectores com 2 dimensões mais prováveis com códigos Huffman e utiliza um 37 código de escape para indicar outros vectores, que são divididos e codificados com códigos Huffman escalares. Assim, o codificador utiliza 501 + 501 + 256 códigos.
Em termos de determinação de que vectores ou escalares são representados com códigos Huffman numa tabela e em termos de atribuição dos próprios códigos Huffman a uma tabela, a construção de um livro de códigos pode ser estática, adaptativa a dados previamente codificados ou adaptativa a dados a codificar. A. Codificação Huffman Vectorial de Dimensão Variável
No que se refere à Figura 7, um codificador utiliza uma técnica (700) de codificação Huffman vectorial de dimensão variável ["VDVH"]. Por exemplo, o codificador utiliza a técnica (700) para codificar directamente niveis de sinal para coeficientes de frequência de dados de áudio. Em alternativa, o codificador utiliza a técnica (700) para codificar outra forma de dados de áudio. Por razões de simplicidade, a Figura 7 não mostra a construção do livro de códigos. A construção do livro de códigos pode ser estática, adaptativa a dados previamente codificados ou adaptativa a dados a codificar. 0 codificador obtém (710) o vector seguinte de n símbolos. Por exemplo, o codificador obtém os 4 símbolos seguintes em sequência. O codificador verifica (720) se o livro de códigos inclui um código para o vector. Se assim for, o codificador utiliza (730) um único código Huffman para codificar o vector. Por exemplo, 38 para determinar como codificar um vector com n dimensões, o codificador verifica uma tabela de códigos de vectores com n dimensões para um código associado com o vector. Dado gue vectores de maior dimensão dão, normalmente, origem a maior economia em termos de débito binário, o codificador utiliza códigos Huffman para os vectores com n dimensões mais prováveis. Mas, para limitar o tamanho da tabela, apenas alguns dos vectores com n dimensões têm códigos associados.
Se o livro de códigos não incluir um código para o vector, o codificador divide (740) do vector em vectores mais pequenos e/ou escalares e codifica os vectores mais pequenos e/ou escalares. Por exemplo, o codificador divide um vector de n símbolos em x vectores com n/x símbolos. Para cada vector com n/x símbolos, o codificador repete, recursivamente, a técnica de codificação, saindo quando o vector com n/x símbolos ou os seus vectores/escalares constituintes são codificados com códigos Huffman ou (para escalares) utilizando uma técnica sem tabela para representar valores discretos. O codificador, depois, verifica (750) se existem vectores adicionais a codificar. Se não, o codificador sai. Caso contrário, o codificador obtém (710) o vector seguinte de n símbolos. 1. Implementação Exemplificativa A Figura 8 mostra uma técnica (800) pormenorizada para codificação de vectores utilizando codificação VDVH numa implementação. Na técnica (800), o codificador soma os valores inteiros dos símbolos num vector de símbolos para determinar se 39 codifica o vector utilizando um único código Huffman ou divide o vector em vectores mais pequenos/escalares. Isto limita, efectivamente, o tamanho do livro de códigos e acelera a procura de códigos.
Uma tabela de livro de códigos para vectores com n dimensões ["n-dim"] inclui códigos Huffman para vectores n-dim Li. A tabela de livro de códigos também inclui um código de escape. Os códigos Li são para cada vector para o qual a soma dos componentes de vector (que são números inteiros) é inferior a um limiar Ti particular. Por exemplo, supondo que n é 4 e o limiar Ti para vectores 4-dim é 6. A tabela de livro de códigos para vectores 4-dim inclui o código de escape e 126 códigos, um para cada vector possível cuja soma de componentes (e. g., os valores absolutos de componentes) dá menos de 6 (0, 0, 0, 0), (0, 0, 0, 1), etc. A limitação do tamanho da tabela com base na soma de componentes de vectores é eficaz porque, em geral, os vectores mais prováveis são os que têm somas de componentes menores.
Se a tabela de livro de códigos para vectores n-dim não tiver um código Huffman para um vector n-dim particular, o codificador adiciona um código de escape ao fluxo de bits de saída e codifica o vector n-dim como vectores de menores dimensões ou escalares, procurando esses vectores de menor dimensão ou escalares noutras tabelas de livro de códigos. Por exemplo, a menor dimensão é n/2, a menos que n/2 seja 1, caso em que o vector n-dim é dividido em escalares. Em alternativa, o vector n-dim é dividido de alguma outra forma. A tabela de livro de códigos para os vectores de menores dimensões inclui códigos Huffman para vectores L2 de menores 40 dimensões, bem como um código de escape. Os códigos L2 são para cada vector para o qual a soma dos componentes de vector está abaixo de um limiar T2 particular para a tabela de menor dimensão. Por exemplo, supondo que a menor dimensão é 2 e o limiar T2 para vectores 2-dim é 16. A tabela de livro de códigos para vectores 2-dim inclui o código de escape e 136 códigos, um para cada vector possível cuja soma de componentes (e. g.r os valores absolutos de componentes) seja menos de 16 - (0, 0), (0, 1), etc.
Se a tabela de livro de códigos para vectores de menores dimensões não tiver um código Huffman para um vector de menor dimensão particular, o codificador adiciona um código de escape ao fluxo de bits de saída e codifica o vector como vectores de dimensão ainda menores ou escalares, utilizando outras tabelas de livro de códigos. Este processo repete-se até ao nível escalar. Por exemplo, a divisão é por uma potência de 2 até ao nível escalar. Em alternativa, o vector é dividido de alguma outra forma.
Ao nível escalar, a tabela de livro de códigos inclui códigos Huffman para escalares L3, bem como um código de escape. Os códigos L 3 são para cada escalar abaixo de um limiar T3 particular (que assume que valores pequenos são mais prováveis). Por exemplo, supondo que o limiar T3 para escalares é 100. A tabela de livro de códigos para escalares inclui 100 códigos e um código de escape. Se um escalar não tiver um código associado na tabela de códigos escalar, o escalar é codificado com o código de escape e um valor (e. g.r literal) de acordo com uma técnica sem tabela. Utilizando todos os exemplos numéricos dados nesta secção, as tabelas incluiriam um total de 126 + 1 + 136 + 1 + 100 + 1 = 365 códigos. 41
Os tamanhos das dimensões para as tabelas, factores de divisão de vector e limiares para somas de componentes de vector dependem da implementação. Outras implementações utilizam diferentes tamanhos de vectores, diferentes factores de divisão diferentes e/ou limiares. Em alternativa, um codificador utiliza critérios diferentes das somas de componentes de vector para efectuar a comutação de tamanhos de vector/tabelas de livro de códigos em codificação VDVH.
No que se refere à Figura 8, o codificador, em primeiro lugar, obtém um vector (810) n-dimensão. O vector n-dim compreende n símbolos, tendo cada símbolo, por exemplo, um valor que representa o nível quantificado para um coeficiente de frequência de dados de áudio. O codificador soma os componentes (812) de vector e compara a soma com um limiar (820) para vectores n-dim. Se a soma for inferior ou igual ao limiar, o codificador codifica o vector n-dim com um código Huffman a partir de uma tabela (822) de código e continua até que a codificação esteja concluída (824) . Se a soma for maior ou igual ao limiar, o codificador envia um código (826) de escape e divide o vector n-dim em dois vectores mais pequenos com dimensões de n/2 (830) . O codificador obtém o vector (840) η/2-dim seguinte e soma os componentes do vector (842) η/2-dim. O codificador verifica a soma comparando-a com um limiar associados com vectores (850) η/2-dim. Se a soma for inferior ou igual ao limiar, o codificador codifica o vector η/2-dim com um código Huffman a partir de uma tabela (852) de código para vectores η/2-dim e obtém o vector (840) η/2-dim seguinte se o codificador não tiver acabado de codificar os vectores (854) η/2-dim. Se a soma for 42 maior do que o limiar para vectores η/2-dim, o codificador envia outro código (856) de escape. 0 codificador segue, de um modo geral, este padrão no processamento dos vectores, ou codificando cada vector ou dividindo o vector em vectores de menores dimensões. Nos casos em que o codificador divide um vector em dois componentes (860) escalares (1-dimensão), o codificador obtém o escalar (870) seguinte e compara o valor do escalar com um limiar associado com valores (880) escalares. Se o valor escalar for inferior ou igual ao limiar (880), o codificador codifica o escalar utilizando um código Huffman a partir de uma tabela (882) de código para escalares. Se o valor escalar for maior do que o limiar, o codificador codifica o escalar utilizando uma técnica (884) sem tabela. O codificador, em seguida, obtém o escalar (870) seguinte se não tiver acabado de processar os escalares (886).
Em alternativa, o codificador utiliza tabelas com tamanhos de dimensões diferentes, divide vectores de alguma outra forma que não por potência de 2 e/ou utiliza um critério que não a soma de componentes de vector para efectuar a comutação entre tamanhos de vector/tabelas de livro de códigos em codificação VDVH. 2. Comutação Adaptativa A Figura 9 mostra uma técnica (900) para codificação VDVH de coeficientes de níveis de sinal directos em que o codificador determina, de modo adaptativo, um ponto de comutação para mudar para codificação de comprimentos de sequência e níveis de sinal 43 de acordo com uma implementação. 0 ponto de comutação adaptativo depende de uma contagem de coeficientes de valor zero consecutivos. Os dados de entrada são niveis de sinal para coeficientes de transformação quantificados, progredindo desde o coeficiente de frequência mais baixo para o coeficiente de frequência mais alto. Em alternativa, os dados de entrada são outra forma e/ou organização de dados de áudio.
Para começar, o codificador inicializa diversas variáveis. Especificamente, o codificador define uma variável de contagem de sequência para 0 (910), define uma variável de vector atual como vazia (912) e define uma variável de estado de codificação para codificação Huffman vectorial de dimensão variável directa ["DVDVH"] (914). 0 codificador recebe o coeficiente QC seguinte como entrada (920). O codificador, em seguida, verifica (930) se o coeficiente é zero. Se o coeficiente QC for diferente de zero, o codificador reinicia a contagem (938) de sequência e adiciona o coeficiente QC ao vector (940) actual. Caso contrário (i. e., se o coeficiente QC for zero), o codificador incrementa a variável (932) de contagem de sequência e verifica se a contagem de sequência actual excede o limiar (934) de contagem de sequência. O limiar de contagem de sequência pode ser estático ou pode depender de um factor, tal como o tamanho de um bloco de coeficientes (e. g., quatro zeros numa sequência de entrada de 256 coeficientes), ou pode ser adaptativo de alguma outra forma.
Por exemplo, o limiar pode ser aumentado ou diminuído, com ou sem ter em conta o número de coeficientes numa sequência de entrada. Se a contagem de sequência exceder o limiar, o codificador muda o estado de codificação para codificação (936) 44 de nível de sequência ["RLE"] e o coeficiente QC é adicionado como um componente ao vector (940) actual.
Ao adicionar-se o coeficiente QC ao vector actual, incrementa-se a dimensão do vector. O codificador determina (950) se o vector actual está pronto para codificar, comparando o número de componentes no vector actual com a dimensão máxima para o vector actual. Se assim for, o codificador codifica o vector actual utilizando codificação (960) DVDVH. Se o vector actual for menor do que a dimensão máxima, mas o coeficiente QC for o último de uma sequência, o codificador pode preencher o vector actual e codificá-lo utilizando codificação (960) DVDVH. A dimensão máxima depende da implementação. Numa implementação, é 8. No entanto, a dimensão máxima pode ser aumentada ou diminuída dependendo, por exemplo, da quantidade de recursos disponíveis para a criação, armazenamento ou transmissão de um livro de códigos.
Depois de codificar o vector, o codificador verifica o estado (970) de codificação. Se o estado de codificação já não for DVDVH (e. g., se o codificador mudou o estado de codificação para RLE pelo facto de exceder um número limiar de coeficientes zero), o codificador começa a codificação dos coeficientes como comprimentos de sequência e níveis (980). A codificação de nível de sequência pode ser realizada de várias formas, incluindo, por exemplo, codificação Huffman, codificação Huffman vectorial ou codificação aritmética em função do contexto. Em algumas formas de realização, a codificação de nível de sequência é realizada utilizando codificação Huffman com duas tabelas de códigos Huffman, em que uma tabela é utilizada para codificar dados nos quais a probabilidade de haver sequências mais curtas é maior e uma tabela é utilizada para codificar dados nos quais a 45 probabilidade de haver sequências mais compridas é maior. 0 codificador tenta cada mesa e escolhe os códigos de uma das tabelas, com um bit de sinal indicando que tabela foi utilizada pelo codificador.
Se o estado de codificação não tiver mudado ou o vector actual não estiver pronto para codificação, o codificador (990) determina se existem mais coeficientes a codificar. Se assim for, o codificador introduz o coeficiente (920) seguinte e continua o processo de codificação. B. Descodificação Huffman Vectorial de Dimensão Variável A Figura 10 mostra uma técnica (1000) de descodificação VDVH correspondente à técnica (700) de codificação VDVH mostrada na Figura 7. Por exemplo, um descodificador utiliza a técnica (1000) para descodificar níveis de sinal directamente codificados para coeficientes de frequência de dados de áudio. Em alternativa, o descodificador utiliza a técnica para descodificar outra forma de dados de áudio. O descodificador obtém (1010) o código Huffman seguinte para uma tabela de codificação Huffman vectorial de n dimensões. Por exemplo, o descodificador obtém o código Huffman seguinte para 4 símbolos em sequência. O descodificador (1020) verifica se o código Huffman é o código de escape para a tabela de codificação Huffman vectorial com n dimensões. Se não, o descodif icador obtém (1030) os n símbolos representados pelo código Huffman. Por exemplo, o 46 descodificador obtém os 4 símbolos associados com o código Huffman num livro de códigos Huffman vectorial de 4 dimensões.
Se o código for o código de escape, o livro de códigos de n dimensões não inclui um código para o vector e o descodificador obtém (1040) códigos Huffman para vectores mais pequenos e/ou escalares. Por exemplo, o descodificador obtém códigos para x vectores de n/x símbolos. Para cada vector de n/x símbolos, o descodificador repete, recursivamente, a técnica de descodificação, saindo quando o vector de n/x símbolos ou os seus vectores/escalares constituintes são descodificados. O descodificador, em seguida, verifica (1050) se existem códigos adicionais para a tabela de codificação Huffman vectorial de n dimensões para descodificar. Se não, o descodificador sai. Caso contrário, o descodificador obtém (1010) o próximo código Huffman desse tipo. 1. Implementação Exemplificativa A Figura 11 mostra uma técnica (1100) pormenorizada para descodificar vectores codificados utilizando codificação VDVH numa implementação. A técnica (1100) de descodificação corresponde à técnica (800) de codificação mostrada na Figura 8.
No que se refere à Figura 11, o descodificador obtém o código seguinte para uma tabela (1110) de códigos Huffman vectorial de n-dim. O descodificador verifica se o código é o código de escape para a tabela (1120) de códigos Huffman
vectorial de n-dim. Se não, o descodificador obtém os n símbolos representados pelo código na tabela (1122) vectorial de n-dim. O descodificador continua até que o descodificador tenha acabado de processar os dados (1124) codificados.
Se o código for o código de escape para a tabela de códigos Huffman vectorial de n-dim, o descodificador descodifica o vector n-dim como dois vectores η/2-dim utilizando uma tabela de códigos Huffman vectorial de η/2-dim. Especificamente, o descodificador obtém o código seguinte para a tabela (1130) de códigos Huffman vectorial de η/2-dim. O descodificador verifica se o código é o código de escape para a tabela (1140) de códigos Huffman vectorial de η/2-dim. Se não, o descodificador obtém os n/2 símbolos representados pelo código na tabela (1142) de códigos Huffman vectorial de η/2-dim. O descodificador continua a processar os códigos para a tabela de códigos Huffman vectorial de η/2-dim até que o processamento desses códigos esteja concluído (1144).
Se o código for o código de escape para a tabela de códigos Huffman vectorial de η/2-dim, o descodificador descodifica o vector η/2-dim como dois vectores η/4-dim, que podem ser escalares, etc. O descodificador, de um modo geral, segue este padrão de descodificação de vectores de maior dimensão como dois vectores de menor dimensão quando códigos de escape são detectados, até que os vectores a descodificar sejam escalares (vectores 1-dim). Nesse ponto, o descodificador obtém o código seguinte para uma tabela (1150) de códigos Huffman escalar. O descodificador verifica se o código é o código de escape para a tabela (1160) de códigos Huffman escalar. Se não, o descodificador obtém o escalar representado pelo código na tabela (1162) de códigos Huffman escalar. O descodificador continua o processamento dos 48 códigos para os escalares até que o processamento desses códigos esteja concluído (1164). Se o código for o código de escape para a tabela de códigos Huffman escalar, o escalar é codificado utilizando uma técnica sem tabela e o descodificador obtém o valor (1170) .
Em alternativa, o descodificador utiliza tabelas com tamanhos de dimensões diferentes e/ou utiliza tabelas que dividem vectores de alguma outra forma diferente da potência de 2 em descodificação VDVH. 2. Comutação Adaptativa A Figura 12 mostra uma técnica (1200) para descodificação de vectores codificados utilizando codificação VDVH de acordo com uma implementação, em que o descodificador determina, de modo adaptativo, um ponto de comutação para mudar para a descodificação de comprimentos de sequência e níveis de sinal. O ponto de comutação adaptativo depende de uma contagem de coeficientes de valor zero consecutivos nos dados, que são níveis de sinal para coeficientes de transformação quantificados, progredindo desde o menor coeficiente de frequência para o maior coeficiente de frequência. Em alternativa, os dados são outra forma e/ou organização de dados de áudio.
Para começar, o descodificador inicializa diversas variáveis. Especificamente, o descodificador define uma contagem de sequência para 0 (1210) e define um estado de descodificação para DVDVH (1212) . 49 0 descodificador descodifica o vector seguinte procurando o código para esse vector numa tabela (1220) de codificação Huffman. Por exemplo, o descodificador executa a técnica (1100) de descodificação mostrada na Figura 11. O descodificador, depois, actualiza a contagem de sequência com base no vector (1230) descodificado (especificamente, utilizando o número de valores zero no vector descodificado para reiniciar, incrementar ou, de qualquer outra forma, ajustar a contagem de sequência). O descodificador verifica se a contagem de sequência excede um limiar (1240) . O limiar de contagem de sequência pode ser estático ou pode depender de um factor, tal como o tamanho de um bloco de coeficientes (e. g., quatro zeros numa sequência de entrada de 256 coeficientes), ou pode ser adaptativo de alguma outra forma. Se a contagem de prazo exceder o limiar, o descodificador começa a descodificação dos coeficientes codificados utilizando descodificação (1250) por nivel de sequência. A descodificação por nivel de sequência pode ser realizada de várias formas, incluindo, por exemplo, descodificação Huffman, descodificação de Huffman vectorial ou descodificação aritmética em função do contexto.
Em algumas formas de realização, a descodificação por nivel de sequência é realizada utilizando descodificação Huffman com duas tabelas de códigos Huffman potenciais, em que uma tabela é utilizada para descodificação de dados em que sequências mais curtas são mais prováveis e uma tabela é utilizada para descodificação de dados em que sequências mais compridas são mais prováveis. Quando o descodificador recebe um código, um bit de sinal no código indica que tabela foi utilizada pelo 50 codificador e o descodificador procura o código na tabela apropriada.
Se a contagem de sequência não exceder o limiar, o descodificador continua o processamento de vectores até que a descodificação esteja concluída (1260). V. Codificação e Descodificação Aritmética em função do Contexto
Em algumas formas de realização, um codificador, tal como o codificador (200) da Figura 2, utiliza codificação aritmética em função do contexto ["CBA"] para codificar sequências de dados de áudio. Na codificação CBA, distribuições de probabilidade diferentes para os símbolos de entrada são associadas com diferentes contextos. A distribuição de probabilidade utilizada para codificar a sequência de entrada muda quando o contexto muda. O contexto pode ser calculado medindo diferentes factores que devem afectar a probabilidade de um símbolo de entrada particular aparecer numa sequência de entrada. Um descodificador, tal como o descodificador (300) da Figura 3, executa uma descodificação aritmética correspondente.
Quando se codificam coeficientes directamente (i. e., como níveis directos), o codificador utiliza factores incluindo os valores dos coeficientes anteriores na sequência para calcular o contexto. Quando se codificam coeficientes utilizando codificação por nível de sequência, o codificador utiliza factores incluindo os comprimentos da sequência actual e sequências anteriores, para além dos valores dos coeficientes anteriores, para calcular o contexto. O codificador utiliza uma 51 distribuição de probabilidade associada com o contexto calculado para determinar o código aritmético apropriado para os dados. Assim, utilizando os vários factores no cálculo dos contextos, o codificador determina contextos, de modo adaptativo, no que se refere aos dados e no que se refere ao modo (i. e., directo, nível de sequência) de representação dos dados.
Em formas de realização alternativas, o codificador pode utilizar factores adicionais, pode omitir alguns factores ou pode utilizar os factores mencionados acima em outras combinações. A. Implementação Exemplificativa de Contextos
Os Quadros 2-5 e Figuras 13A - 13D, 14A - 14H e 15A - 15H mostram contextos e distribuições de probabilidade, respectivamente, utilizados na codificação e descodificação CBA numa implementação exemplificativa. Em alternativa, a codificação e descodificação CBA utilizam diferentes contextos e/ou diferentes distribuições de probabilidades.
Apesar de a discussão que se segue se centrar no cálculo de contexto no codificador, na implementação exemplificativa, o descodificador realiza um cálculo de contexto correspondente durante a descodificação utilizando dados de áudio descodificados anteriormente.
Como mencionado acima, o codificador pode codificar coeficientes utilizando codificação CBA se o codificador estiver a codificar apenas níveis directos ou comprimentos de sequência e níveis directos. Numa implementação, no entanto, as técnicas 52 para cálculo de contextos variam, dependendo de o codificador estar apenas a codificar níveis directos ou comprimentos de sequência e níveis directos. Além disso, quando codifica comprimentos de sequência e níveis directos, o codificador utiliza diferentes contextos, dependendo de o codificador estar a codificar um comprimento de sequência ou um nível directo. 0 codificador utiliza um sistema de quatro contextos para calcular contextos durante a codificação aritmética de níveis directos utilizando contexto causal. 0 codificador calcula o contexto para um nível actual L[n] com base no valor do nível anterior (L[η—1]) e do nível imediatamente antes do nível anterior (L[n—2]) . Este cálculo de contexto baseia-se nos seguintes pressupostos: 1) se os níveis anteriores forem baixos, é provável que o nível actual seja baixo, e 2) os dois níveis anteriores tendem a ser melhores predictores do nível actual do que outros níveis. 0 Quadro 2 mostra os contextos associados com os valores dos dois níveis anteriores no sistema de quatro contextos. As Figuras 13A-13D mostram distribuições de probabilidade para níveis actuais para esses contextos.
Quadro 2: Contextos para codificação/descodificação CBA de niveis directos L[η—1] L[n-2] Contexto = 0 = 0 0 = 0 > 1 1 = 1 Qualquer 2 > 2 Qualquer 3 53
As distribuições de probabilidade nas Figuras 13A-13D assumem que quando os dois níveis anteriores são zero ou quase zero, é mais provável que o nível actual seja igual a zero ou quase zero. 0 codificador também pode utilizar codificação CBA ao realizar codificação por comprimento de sequência de níveis. Quando se codifica um comprimento de sequência, factores utilizados pelo codificador para calcular contexto incluem a percentagem de zeros na sequência de entrada (um total de sequência sobre parte ou toda a sequência) e o comprimento da sequência anterior de zeros (R[n-1]). 0 codificador calcula um índice de percentagem de zeros com base na percentagem de zeros na sequência de entrada, como mostrado abaixo no Quadro 3:
Quadro 3: índices de percentagem de zeros para codificação/descodificação CBA de comprimentos de sequência % Zeros índice de % de zeros > 90 0 > 80 1 > 60 2 < 60 3 0 codificador utiliza o índice de percentagem de zeros em conjunto com o comprimento da sequência anterior para calcular o contexto para codificar o comprimento de sequência actual, como mostrado abaixo no Quadro 4. As Figuras 14A-14H mostram distribuições de probabilidade para diferentes valores de comprimento de sequência associados a estes contextos. 54
Quadro 4: Contextos para codificação/descodificação CBA de comprimentos de sequência índice de % de zeros R[n-1] Contexto 0 = 0 0 0 O Λ 4 1 = 0 1 1 O Λ 5 2 = 0 2 2 O Λ 6 3 = 0 3 3 O Λ 7
Por exemplo, numa sequência de entrada em que 91% dos níveis são zeros (resultando num índice de percentagem de zeros de 0) e em que o comprimento da sequência anterior de zeros foi de 15, o contexto é 4. As distribuições de probabilidade nas Figuras 14A-14H mostram que quando a percentagem de zeros numa sequência de entrada é mais elevada, comprimentos de sequência mais compridos são mais prováveis. As distribuições de probabilidade também assumem que dentro de um índice de percentagem de zeros específico, os comprimentos de sequência após um comprimento de sequência de zero são provavelmente mais curtos do que comprimentos de sequência após um comprimento de sequência maior que zero.
Quando se codifica um nível em dados de nível de sequência, os factores utilizados pelo codificador para calcular contexto incluem o comprimento da sequência actual (R[n]), o comprimento da sequência anterior (R[n-1]) e os valores dos dois níveis anteriores (L[n-1] e L([n-2]). Este cálculo de contexto é baseado na observação de que o nível actual é dependente dos 55 dois níveis anteriores desde que o espaçamento (i. e., comprimentos de sequência) entre os níveis não seja muito grande. Além disso, se os níveis anteriores forem mais baixos e se as sequências anteriores forem mais curtas, é provável que o nível actual seja baixo. Quando as sequências anteriores são mais compridas, o nível anterior tem menos efeito sobre o nível actual.
Os contextos associados com os valores do comprimento de sequência actual, comprimento de sequência anterior e os dois níveis anteriores são mostrados abaixo no Quadro 5. As Figuras 15A-15H mostram distribuições de probabilidades para níveis associados a estes contextos.
Quadro 5: Contextos para codificação/descodificação CBA de níveis em codificação por nível de sequência R[n] R[n-1] L[η—1] L[n-2] Contexto > 2 Qualquer Qualquer Qualquer 0 < 2 > 2 = 1 Qualquer 1 < 2 > 2 = 2 Qualquer 2 < 2 > 2 > 2 Qualquer 3 < 2 < 2 = 1 = 1 4 < 2 < 2 = 1 > 1 5 < 2 < 2 = 2 Qualquer 6 < 2 < 2 > 2 Qualquer 7
Por exemplo, numa sequência de entrada em que o comprimento da sequência actual de zeros é 1, o comprimento da sequência anterior de zeros é 2 e ao nível anterior é 1, o contexto é 1. As distribuições de probabilidade nas Figuras 15A-15H mostram 56 que, quando os níveis anteriores são menores, e quando comprimentos de sequência actuais e anteriores são mais curtos, é mais provável que o nível actual seja zero ou quase zero. B. Comutação Adaptativa A Figura 16 mostra uma técnica (1600) para codificação CBA de coeficientes de níveis de sinal directos em que o codificador determina, de modo adaptativo, um ponto de comutação para mudar para a codificação de comprimentos de sequência e níveis de sinal de acordo com uma implementação. O ponto de comutação adaptativo depende de uma contagem de coeficientes de valor zero consecutivos. Os dados de entrada são níveis de sinal para coeficientes de transformação quantificados, progredindo desde o menor coeficiente de frequência para o maior coeficiente de frequência. Em alternativa, os dados de entrada são uma outra forma e/ou organização de dados de áudio.
Para começar, o codificador inicializa diversas variáveis. Especificamente, o codificador define uma variável de contagem de sequência para 0 (1610) e define uma variável de estado de codificação para codificação aritmética directa em função do contexto (DCBA) (1612). O codificador recebe o coeficiente QC seguinte como entrada (1620). O codificador em seguida, verifica (1630) se o coeficiente é zero. Se o coeficiente QC for diferente de zero, o codificador reinicia a contagem de sequência (1638) e codifica o coeficiente utilizando codificação DCBA (1640). 57
Caso contrário (i. e., se o coeficiente QC for zero), o codificador incrementa a variável (1632) de contagem de sequência e verifica se a contagem de sequência actual excede o limiar (1634) de contagem de sequência. 0 limiar de contagem de sequência pode ser estático ou pode depender de um factor, tal como o tamanho de um bloco de coeficientes (e. g., quatro zeros numa sequência de entrada de 256 coeficientes), ou pode ser adaptativo de alguma outra forma. Por exemplo, o limiar pode ser aumentado ou diminuído, tendo ou não em conta o número de coeficientes numa sequência de entrada. Se a contagem de sequência exceder o limiar, o codificador muda o estado de codificação para codificação (1636) por nível de sequência ["RLE"]. 0 codificador, em seguida, codifica o coeficiente utilizando codificação DCBA (1640).
Depois de codificar o coeficiente, o codificador verifica o estado (1650) de codificação. Se o estado de codificação já não for DCBA (e. g., se o codificador mudou o estado de codificação para RLE devido a ter excedido um número limiar de coeficientes zero), o codificador começa a codificação dos coeficientes como comprimentos de sequência e níveis (1660). A codificação por nível de sequência pode ser realizada de várias formas, incluindo, por exemplo, codificação Huffman, codificação Huffman vectorial ou codificação CBA (potencialmente com diferentes contextos dos da codificação CBA anterior, como descrito acima). Em algumas formas de realização, a codificação por nível de sequência é realizada utilizando codificação Huffman com duas tabelas de códigos Huffman, em que uma tabela é utilizada para codificar dados em que sequências mais curtas são mais prováveis e uma tabela é utilizada para codificar dados em que sequências mais compridas são mais prováveis. O codificador tenta cada 58 tabela e escolhe códigos de uma das tabelas, com um bit de sinal indicando que tabela foi utilizada pelo codificador.
Se o estado de codificação não tiver sido alterado, o codificador determina (1670) se há mais coeficientes a codificar. Se assim for, o codificador introduz 0 coeficiente (1620) seguinte e continua o processo de codificação. C. Descodificação Aritmética em função do Contexto A Figura 17 mostra uma técnica (1700) para descodificação dos coeficientes codificados utilizando codificação CBA de acordo com uma implementação, em que o descodificador determina, de modo adaptativo, um ponto de comutação para mudar para a descodificação de comprimentos de sequência e níveis de sinal. O ponto de comutação adaptativo depende de uma contagem de coeficientes de valor zero consecutivos nos dados, que são níveis de sinal para coeficientes de transformação quantificados, progredindo desde o menor coeficiente de frequência para o maior coeficiente de frequência. Em alternativa, os dados são outra forma e/ou organização de dados de áudio.
Para começar, o descodificador inicializa diversas variáveis. Especificamente, o descodificador define uma contagem de sequência para 0 (1710) e define um estado de descodificação para descodificação aritmética directa em função do contexto (DCBA) (1712). 59 0 descodificador descodifica o coeficiente quantificado seguinte utilizando DCBA (1720) olhando para o número que o codificador utilizou para representar o coeficiente na codificação aritmética e extraindo o valor do coeficiente a partir desse número. O descodificador, em seguida, actualiza a contagem de sequência com base no coeficiente (1730) descodificado (especificamente, com base em se o coeficiente descodificado é um valor zero para reiniciar ou incrementar a contagem de sequência). O descodificador verifica se a contagem de sequência excede um limiar (1740). O limiar de contagem de sequência pode ser estático ou pode depender de um factor, tal como o tamanho de um bloco de coeficientes (e. g., quatro zeros numa sequência de entrada de 256 coeficientes), ou pode ser adaptativo de alguma outra forma. Se a contagem de sequência exceder o limiar, o descodificador começa a descodificação dos coeficientes codificados utilizando descodificação (1750) por nível de sequência. A descodificação por nível de sequência pode ser realizada de várias formas, incluindo, por exemplo, descodificação Huffman, descodificação Huffman vectorial ou descodificação CBA (potencialmente com diferentes contextos do que a descodificação CBA anterior, como descrito acima). Em algumas formas de realização, a descodificação por nível de sequência é realizada utilizando descodificação Huffman com duas tabelas de códigos Huffman potenciais, em que uma tabela é utilizada para descodificar dados em que sequências mais curtas são mais prováveis e uma tabela é utilizada para descodificar dados em que sequências mais compridas são mais prováveis. Quando o descodificador recebe um código, um bit de sinal no código indica que tabela foi utilizada pelo codificador e o descodificador procura o código na tabela apropriada. 60
Se a contagem de sequência não exceder o limiar, o descodificador continua o processamento de coeficientes até que a descodificação esteja concluída (1760). VI. Codificação Sem Tabela
Esta secção serve para perceber melhor a invenção, mas não está abrangida por esta.
Em algumas formas de realização utilizando codificação Huffman, um codificador, tal como o codificador (200) da Figura 2, utiliza um código de escape para uma tabela de códigos Huffman para indicar que um símbolo particular (ou combinação de símbolos) não tem um código associado na tabela. Por vezes, um código de escape é utilizado para indicar que um símbolo particular (e. g., um valor escalar para um nível que não está representado numa tabela de códigos Huffman escalar para níveis, um comprimento de sequência que não está representado numa tabela de códigos Huffman escalar para comprimentos de sequência, etc.) vai ser codificado sem utilizar um código de uma tabela de Huffman. Por outras palavras, o símbolo deve ser codificado utilizando uma técnica de codificação "sem tabela".
Em algumas formas de realização utilizando codificação aritmética, um código de escape é, por vezes, utilizado para indicar que um símbolo particular não vai ser codificado aritmeticamente. O símbolo poderia ser codificado utilizando um código de uma tabela de Huffman ou também poderia ser codificado utilizando uma técnica de codificação "sem tabela". 61
Algumas técnicas de codificação sem tabela utilizam códigos de comprimento fixo para representar símbolos. No entanto, a utilização de códigos de comprimento fixo pode levar a códigos desnecessariamente longos.
Em algumas formas de realização, por conseguinte, símbolos, tais como coeficientes de transformação quantificados, são representados com códigos de comprimento variável numa técnica de codificação sem tabela quando os símbolos não são codificados de outra forma. Um descodificador, tal como o descodificador (300) da Figura 3, executa uma técnica de descodificação correspondente sem tabela.
Por exemplo, o Quadro 6 mostra um pseudo-código para uma implementação de uma técnica de codificação sem tabela desse tipo. 62
Quadro 6: Pseudo-código para técnica de codificação sem tabela numa implementação
If (valor < 28) {
Enviar "0";
Enviar valor utilizando 8 bits; } else if (valor < 216) {
Enviar "10";
Enviar valor utilizando 16 bits; } else if (valor < 224) {
Enviar "110";
Enviar valor utilizando 24 bits; } else if (valor < 231) {
Enviar "111";
Enviar valor utilizando 31 bits; } 0 número de bits que o codificador utiliza para codificar os coeficientes depende do valor do coeficiente. 0 codificador envia um valor de um, dois ou três bits para indicar o número de bits utilizado para codificar o valor e, em seguida, envia o próprio valor codificado utilizando 8, 16, 24 ou 31 bits. 0 número total de bits que o codificador utiliza para codificar o coeficiente varia entre 9 bits para um valor menor do que 28 e 34 bits para um valor maior do que ou igual a 224, mas inferior a 231. 63
Para uma série de coeficientes, os bits de média enviados serão iguais a: P(0 < C < 28) * 9 + P(2*< C< 2,e) * 18 + P(2,6< C < 224) * 27 + P(2M< C < 231) * 34, em que P(m<C<n) é a probabilidade de ocorrência, numa sequência de entrada, de um coeficiente C dentro do intervalo indicado. São, por conseguinte, possíveis, poupanças de bit significativas quando uma grande percentagem de coeficientes são pequenos (e. g., menos de 216).
Em alternativa, o codificador e descodificador utilizam outra técnica de codificação/descodificação sem tabela.
Tendo descrito e ilustrado os princípios desta invenção recorrendo às várias formas de realização descritas, deve reconhecer-se que as formas de realização descritas podem ser modificadas em termos de configuração e pormenor sem se divergir desses princípios. Deve compreender-se que os programas, processos ou métodos descritos no presente documento não estão relacionados ou limitados a qualquer tipo particular de ambiente informático, salvo indicação em contrário. Vários tipos de ambientes informáticos de utilização geral ou especializada podem ser utilizados ou realizarem operações de acordo com os ensinamentos descritos no presente documento. Elementos das formas de realização descritas mostrados em software podem ser implementados em hardware e vice-versa.
Tendo em conta as muitas formas de realização possíveis às quais os princípios desta invenção podem ser aplicados, 64 reivindica-se como a invenção todas essas formas de realização que estejam abrangidas pelo âmbito das reivindicações que se seguem e pelas equivalentes das mesmas.
Lisboa, 4 de Abril de 2012 65

Claims (14)

  1. REIVINDICAÇÕES 1. Método de codificação de dados de áudio ou video num dispositivo informático que implementa um codificador (200), compreendendo o método: realizar uma transformada (230) de frequência num bloco de múltiplas amostras para produzir múltiplos coeficientes de transformada; quantificar (260) os múltiplos coeficientes de transformada; e efectuar uma codificação entrópica dos múltiplos coeficientes de transformada quantificados, caracterizado por a codificação entrópica incluir: a codificação de um ou mais dos múltiplos coeficientes de transformada quantificados utilizando um primeiro modo de codificação, incluindo realizar uma primeira codificação aritmética adaptativa em função do contexto de um valor de nivel de um coeficiente especifico dos múltiplos coeficientes de transformada quantificados, em que a primeira codificação aritmética adaptativa em função do contexto utiliza um primeiro conjunto de múltiplos contextos e em que a primeira codificação aritmética adaptativa em função do contexto inclui seleccionar um do primeiro conjunto de múltiplos contextos com base, pelo menos em parte, em valores de nivel de dois coeficientes de transformada quantificados anteriormente codificados; 1 efectuar a comutação para um segundo modo de codificação para os coeficientes restantes dos múltiplos coeficientes de transformada quantificados; e codificar os coeficientes restantes dos múltiplos coeficientes de transformada quantificados utilizando o segundo modo de codificação, incluindo: realizar uma segunda codificação aritmética adaptativa em função do contexto de um primeiro valor de nível e de um segundo valor de nível de um primeiro coeficiente restante e segundo coeficiente restante, respectivamente, dos coeficientes de transformada quantificados restantes, em que a segunda codificação aritmética adaptativa em função do contexto utiliza um segundo conjunto de múltiplos contextos diferente do primeiro conjunto de múltiplos contextos e em que: para o primeiro valor de nível no segundo modo de codificação, a selecção de um do segundo conjunto de múltiplos contextos considera o valor de nível do coeficiente de transformada quantificado específico resultante do primeiro modo de codificação; e para o segundo valor de nível, no segundo modo de codificação, a selecção de um do segundo conjunto de múltiplos contextos considera o primeiro valor de nível.
  2. 2 2. Método da reivindicação 1, em que o primeiro modo de codificação é um modo de codificação de nível directo, em que o segundo modo de codificação é um modo de codificação de nível de sequência e em que a codificação dos coeficientes restantes dos múltiplos coeficientes de transformada quantificados utilizando o segundo modo de codificação inclui, ainda: realizar uma terceira codificação aritmética adaptativa em função do contexto aritmética de um valor de sequência, indicando o valor de sequência uma contagem de coeficientes de transformada quantificados restantes de valor zero consecutivos adjacentes ao primeiro ou segundo valor de nível no segundo modo de codificação, em que a terceira codificação aritmética adaptativa em função do contexto utiliza um terceiro conjunto de múltiplos contextos diferente do primeiro conjunto de múltiplos contextos e diferente do segundo conjunto de múltiplos contextos.
  3. 3. Método da reivindicação 2, em que a codificação entrópica inclui, ainda: seleccionar a primeira codificação aritmética adaptativa em função do contexto de entre múltiplas técnicas de codificação disponíveis para o modo de codificação de nível directo, em que as múltiplas técnicas de codificação disponíveis para o modo de codificação de nível directo incluem, ainda, codificação de comprimento variável de valores de nível; e 3 seleccionar a segunda codificação aritmética adaptativa em função do contexto e a terceira codificação aritmética adaptativa em função do contexto de entre múltiplas técnicas de codificação disponíveis para o modo de codificação de nivel de sequência, em que as múltiplas técnicas de codificação disponíveis para o modo de codificação de nível de sequência incluem, ainda, codificação de comprimento variável de valores de sequência e valores de nível.
  4. 4. Método da reivindicação 2, em que a comutação do modo de codificação de nível directo para o modo de codificação de nível de sequência acontece num ponto de comutação predeterminado.
  5. 5. Método da reivindicação 2, em que o contexto seleccionado do primeiro conjunto de múltiplos contextos muda dependendo (1) se o valor do nível de um primeiro dos dois coeficientes de transformada quantificados anteriormente codificados é zero ou diferente de zero e (2) se o valor de nível de um segundo dos dois coeficientes de transformada quantificados anteriormente codificados é zero ou diferente de zero.
  6. 6. Método da reivindicação 2, em que o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do valor de nível do coeficiente de transformada quantificado anteriormente codificado é zero, um ou maior do que um.
  7. 7. Método da reivindicação 1, em que, quando se efectua uma codificação utilizando o primeiro modo de codificação, o contexto seleccionado a partir do primeiro conjunto de múltiplos contextos muda dependendo (1) se o valor de nível 4 de um primeiro dos dois coeficientes de transformada quantificados anteriormente codificados é zero ou diferente de zero e (2) se o valor de nível de um segundo dos dois coeficientes de transformada quantificados anteriormente codificados é zero ou diferente de zero; em que, para o primeiro valor de nível no segundo modo de codificação, o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do valor de nível do coeficiente de transformada quantificado específico no primeiro modo de codificação é zero, um ou mais do que um; e em que, para o segundo valor de nível, no segundo modo de codificação, o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do primeiro valor de nível no segundo modo de codificação é zero, um ou maior do que um.
  8. 8. Método de descodificação de dados de áudio ou vídeo num dispositivo informático que implementa um descodificador, compreendendo o método: efectuar uma descodificação entrópica de múltiplos coeficientes de transformada quantificados num bloco, caracterizado por a descodificação entrópica incluir: descodificar um ou mais dos múltiplos coeficientes de transformada quantificados utilizando um primeiro modo de descodificação, incluindo a realização de uma primeira descodificação aritmética adaptativa em função do contexto 5 de um valor de nível de um coeficiente específico dos múltiplos coeficientes de transformada quantificados, em que a primeira descodificação aritmética adaptativa em função do contexto utiliza um primeiro conjunto de múltiplos contextos e em que a primeira descodificação aritmética adaptativa em função do contexto inclui seleccionar um do primeiro conjunto de múltiplos contextos com base, pelo menos em parte, em valores de nível de dois coeficientes de transformada quantificados anteriormente descodificados; efectuar a comutação para um segundo modo de descodificação para coeficientes restantes dos múltiplos coeficientes de transformada quantificados no bloco; e descodificar os coeficientes de transformada quantificados restantes utilizando o segundo modo de descodificação, incluindo: realizar uma segunda descodificação aritmética adaptativa em função do contexto de um primeiro valor de nível e de um segundo valor de nível de um primeiro coeficiente restante e segundo coeficiente restante, respectivamente, dos coeficientes de transformada quantificados restantes, em que a segunda descodificação aritmética adaptativa em função do contexto utiliza um segundo conjunto de múltiplos contextos diferente do primeiro conjunto de múltiplos contextos, e em que: para o primeiro valor de nível no segundo modo de descodificação, a selecção de um do segundo conjunto de múltiplos contextos considera o valor de nível do 6 coeficiente de transformada quantificado resultante do primeiro modo de descodificação; e para o segundo valor de nível, no segundo modo de descodificação, a selecção de um do segundo conjunto de múltiplos contextos considera o primeiro valor de nível; e quantificar inversamente (350) os múltiplos coeficientes de transformada no bloco; e realizar uma transformada (360) de frequência inversa sobre os múltiplos coeficientes de transformada para produzir um bloco de múltiplas amostras.
  9. 9. Método da reivindicação 8, em que o primeiro modo de descodificação é um modo de descodificação de nível directo, em que o segundo modo de descodificação é um modo de descodificação de nível de sequência e em que a descodificação dos coeficientes restantes utilizando o segundo modo de descodificação inclui, ainda: realizar uma terceira descodificação aritmética adaptativa em função do contexto aritmética de um valor de sequência, indicando o valor de sequência uma contagem de coeficientes de transformada quantificados restantes de valor zero consecutivos adjacentes ao primeiro ou segundo valor de nível no segundo modo de descodificação, em que a terceira descodificação aritmética adaptativa em função do contexto utiliza um terceiro conjunto de múltiplos contextos diferente do primeiro conjunto de múltiplos contextos e diferente do segundo conjunto de múltiplos contextos. 7
  10. 10. Método da reivindicação 9, em que a descodificação entrópica inclui, ainda: seleccionar a primeira descodificação aritmética adaptativa em função do contexto de entre múltiplas técnicas de descodificação disponíveis para o modo de descodificação de nível directo, em que as múltiplas técnicas de descodificação disponíveis para o modo de descodificação de nível directo incluem, ainda, descodificação de comprimento variável de valores de nível; e seleccionar a segunda descodificação aritmética adaptativa em função do contexto e a terceira descodificação aritmética adaptativa em função do contexto de entre múltiplas técnicas de descodificação disponíveis para o modo de descodificação de nível de sequência, em que as múltiplas técnicas de descodificação disponíveis para o modo de descodificação de nível de sequência incluem, ainda, descodificação de comprimento variável de valores de sequência e valores de nível.
  11. 11. Método de reivindicação 9, em que a comutação do modo de descodificação de nível directo para o modo de descodificação de nível de sequência acontece num ponto de comutação predeterminado.
  12. 12. Método da reivindicação 9, em que o contexto seleccionado a partir do primeiro conjunto de múltiplos contextos muda dependendo (1) se o valor do nível de um primeiro dos dois coeficientes de transformada quantificados anteriormente descodificados é zero ou diferente de zero e (2) se o valor de nível de um segundo dos dois coeficientes de transformada 8 quantificados anteriormente descodificados é zero ou diferente de zero.
  13. 13. Método da reivindicação 9, em que o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do valor de nível do coeficiente de transformada quantificado anteriormente descodificado é zero, um ou maior do que um.
  14. 14. Método da reivindicação 8, em que, quando se efectua uma descodificação utilizando o primeiro modo de descodificação, o contexto seleccionado a partir do primeiro conjunto de múltiplos contextos muda dependendo (1) se o valor de nível de um primeiro dos dois coeficientes de transformada quantificados anteriormente descodificados é zero ou diferente de zero e (2) se o valor de nível de um segundo dos dois coeficientes de transformada quantificados anteriormente descodificados é zero ou diferente de zero; em que, para o primeiro valor de nível no segundo modo de descodificação, o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do valor de nível do coeficiente de transformada quantificado específico no primeiro modo de descodificação é zero, um ou mais do que um; e em que, para o segundo valor de nível, no segundo modo de descodificação, o contexto seleccionado a partir do segundo conjunto de múltiplos contextos muda dependendo se o valor absoluto do primeiro valor de nível no segundo modo de descodificação é zero, um ou maior do que um. 9 15 15 armazenando realizar o instruções método de Meio legível por computador executáveis por computador para qualquer das reivindicações 1-14. Lisboa, 4 de Abril de 2012 10
PT10181047T 2002-09-04 2003-09-03 Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência PT2282310E (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40853802P 2002-09-04 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

Publications (1)

Publication Number Publication Date
PT2282310E true PT2282310E (pt) 2012-04-13

Family

ID=34067862

Family Applications (1)

Application Number Title Priority Date Filing Date
PT10181047T PT2282310E (pt) 2002-09-04 2003-09-03 Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência

Country Status (8)

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

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 (pt) 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
ES2378462T3 (es) 2012-04-12
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
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
PT2282310E (pt) Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência
US7433824B2 (en) Entropy coding by adapting coding between level and run-length/level modes
JP5688861B2 (ja) レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
JP5658307B2 (ja) ディジタルメディアの効率的コーディング用のバンドを入手するための周波数セグメント化
KR101330362B1 (ko) 오디오 인코딩 방법, 오디오 디코딩 방법 및 오디오 인코더 디바이스
US7684981B2 (en) Prediction of spectral coefficients in waveform coding and decoding
JP4963498B2 (ja) 非典型的な部分系列に関する部分情報を用いた音声及びオーディオ符号化パラメータの量子化
US20070168197A1 (en) Audio coding
JP2009501943A (ja) 適応コーディングおよびデコーディングでの複数のエントロピモデルの選択的使用
US20140006036A1 (en) Method and apparatus for coding and decoding