PT2491553T - Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo - Google Patents

Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo Download PDF

Info

Publication number
PT2491553T
PT2491553T PT107680191T PT10768019T PT2491553T PT 2491553 T PT2491553 T PT 2491553T PT 107680191 T PT107680191 T PT 107680191T PT 10768019 T PT10768019 T PT 10768019T PT 2491553 T PT2491553 T PT 2491553T
Authority
PT
Portugal
Prior art keywords
value
context
spectral
audio
hash
Prior art date
Application number
PT107680191T
Other languages
English (en)
Inventor
Gayer Marc
Multrus Markus
Fuchs Guillaume
Griebel Christian
Subbaraman Vignesh
Rettelbach Nikolaus
Warmbold Patrick
Weiss Oliver
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of PT2491553T publication Critical patent/PT2491553T/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech 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 using subband decomposition
    • G10L19/0208Subband vocoders

Landscapes

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

Description

DESCRIÇÃO
CODIFICADOR DE ÁUDIO, DESCODIFICADOR DE ÁUDIO, MÉTODO PARA CODIFICAR UMA INFORMAÇÃO DE ÁUDIO, MÉTODO PARA DESCODIFICAR UMA INFORMAÇÃO DE ÁUDIO E PROGRAMA DE COMPUTADOR QUE UTILIZA UMA REDUÇÃO ITERATIVA DE TAMANHO DE INTERVALO
CAMPO TÉCNICO
As formas de realização, de acordo com a invenção, são relacionadas a um descodificador de áudio para prover uma informação de áudio descodificada com base numa informação de áudio codificada, um codificador de áudio para prover uma informação de áudio codificada com base numa informação de áudio de entrada, um método para prover uma informação de áudio descodificada com base numa informação de áudio codificada, um método para prover uma informação de áudio codificada com base numa informação de áudio de entrada e um programa de computador.
As formas de realização, de acordo com a invenção, são relacionadas a uma codificação silenciosa espetral melhorada, que pode ser utilizada num codificador ou descodificador de áudio, como, por exemplo, um denominado codificador de fala e áudio unificado (USAC).
ANTECEDENTES DA INVENÇÃO A seguir, os antecedentes da invenção serão brevemente explicados a fim de facilitar o entendimento da invenção e as suas vantagens. Durante a última década, foram envidados grandes esforços para criar a possibilidade de armazenar digitalmente e distribuir conteúdos de áudio com boa eficiência de taxa de bits. Uma conquista importante sobre essa forma é a definição da Norma Internacional ISO/IEC 14496-3. A parte 3 desta Norma refere-se a uma codificação e descodificação de conteúdos de áudio, e a subparte 4 da parte 3 é relacionada à codificação de áudio em geral. A ISO/IEC 14496 parte 3, subparte 4 define um conceito para codificar e descodificar conteúdo de áudio em geral. Além disso, melhorias adicionais foram propostas a fim de melhorar a qualidade e/ou reduzir a taxa de bits necessária.
De acordo com o conceito descrito na referida Norma, um sinal de áudio de domínio de tempo é convertido numa representação de frequência de tempo. A transformada do domínio de tempo para o domínio de frequência de tempo é tipicamente realizada utilizando blocos de transformada, que também são designados como "quadros", das amostras de domínio de tempo. Descobriu-se que é vantajoso utilizar quadros de sobreposição, que são alterados, por exemplo, pela metade de um quadro, porque a sobreposição permite evitar de modo eficiente (ou pelo menos reduzir) artefactos. Além disso, descobriu-se que um janelamento deve ser realizado a fim de evitar os artefactos que se originam desse processamento de quadros temporariamente limitados.
Ao transformar uma parte janelada do sinal de áudio de entrada do domínio de tempo para o domínio de frequência de tempo, uma compactação de energia é obtida em muitos casos, de modo que alguns dos valores espetrais compreendam uma magnitude significativamente maior que uma pluralidade de outros valores espetrais. Da mesma forma, há, em muitos casos, um número comparativamente pequeno de valores espetrais tendo uma magnitude, que está significativamente acima de uma magnitude média dos valores espetrais. Um exemplo típico de uma transformada de domínio de tempo para domínio de frequência de tempo que resulta numa compactação de energia é a denominada transformada do cosseno discreta modificada (MDCT).
Os valores espetrais são geralmente escalonados e quantificados de acordo com um modelo psicoacústico, de modo que erros de quantificação sejam comparativamente menores para valores espetrais psicoacusticamente mais importantes e sejam comparativamente maiores para valores espetrais psicoacusticamente menos importantes. Os valores espetrais escalonados e quantificados são codificados a fim de prover sua representação de taxa de bits eficiente.
Por exemplo, o uso de uma denominada codificação de Huffman de coeficientes espetrais quantificados é descrito na Norma Internacional ISO/IEC 14496-3:2005 (E), parte 3, subparte 4. O artigo "Improved Quantization and Lossless Coding for Subband Audio Coding" de N. Meine et al. (Pré-impressões de artigos apresentados na 118a Convenção AES, Barcelona, Espanha, vol. 1-4, 31 de maio de 2005, páginas 1-9) descreve um algoritmo de codificação de fonte baseado no modelo clássico de Markov, que usa a quantificação de vetores e a codificação aritmética em conjunto com um contexto dinamicamente adaptado de indices espetrais previamente codificados. O núcleo do algoritmo é o mapeamento numericamente otimizado de um grande número de estados fonte para um pequeno número de diferentes tabelas codificadas. Isto permite a sua aplicação à codificação de áudio.
No entanto, descobriu-se que a qualidade da codificação dos valores espetrais tem um impacto significativo na taxa de bits necessária. Também, descobriu-se que a complexidade de um descodificador de áudio, que é geralmente implementado num dispositivo de consumidor portátil e que deve, portanto, ser barato e de baixo consumo de energia, é dependente da codificação utilizada para codificar os valores espetrais.
Tendo em vista essa situação, há uma necessidade de um conceito para uma codificação e descodificação de um conteúdo de áudio, que provê uma troca melhorada entre a eficiência de taxa de bits e esforço computacional.
SUMÁRIO DA INVENÇÃO O objeto da invenção é atingido pelas reivindicações independentes. As formas de realização especificas são definidas nas reivindicações dependentes. A invenção tem base na descoberta que é possivel prover um valor numérico de contexto atual que descreve um estado de contexto atual de um descodificador aritmético para descodificar valores espetrais de um conteúdo de áudio, esse valor numérico de contexto atual é bem adequado para a derivação de um valor indice de regra de mapeamento, em que o valor índice de regra de mapeamento descreve uma regra de mapeamento a ser selecionada no descodificador aritmético, utilizando uma redução iterativa de tamanho de intervalo com base numa tabela. Descobriu-se que uma busca de tabela utilizando uma redução iterativa de tamanho de intervalo é bem adequada para selecionar uma regra de mapeamento (descrita por um valor índice de regra de mapeamento) fora de um número comparativamente pequeno de regras de mapeamento, em função de um valor numérico de contexto atual, que é tipicamente computado para descrever um número comparativamente grande de diferentes estados de contexto, em que o número de possíveis regras de mapeamento é tipicamente menor, pelo menos num fator de dez, que um número de possíveis estados de contexto descritos pelo valor numérico de contexto atual. Uma análise detalhada mostrou que uma seleção de uma regra de mapeamento adequada pode ser realizada com alta eficiência computacional ao utilizar uma redução iterativa de tamanho de intervalo. Um número de acessos da tabela pode ser mantido comparativamente pequeno por esse conceito, mesmo no pior caso. Isso demonstrou ser muito positivo ao fazer uma tentativa de implementar a descodificação de áudio num ambiente em tempo real. Para além disso, descobriu-se que uma redução iterativa de tamanho de intervalo pode ser aplicada para a deteção se um valor numérico de contexto atual é idêntico a um valor de contexto da tabela descrito por uma entrada da tabela e para uma deteção se um valor numérico de contexto atual existe dentro de um intervalo descrito pelas entradas da tabela.
Para resumir, descobriu-se que o uso de uma redução iterativa de tamanho de intervalo é bem adequado para forma de realização de um algoritmo de dispersão para selecionar uma regra de mapeamento para uma descodificação aritmética de um conteúdo de áudio em função de um valor numérico de contexto atual, em que tipicamente um número de possíveis valores do valor numérico de contexto atual é significativamente maior que um número de regras de mapeamento para manter as exigências de memória para o armazenamento das regras de mapeamento significativamente pequeno.
BREVE DESCRIÇÃO DAS FIGURAS
As formas de realização, de acordo com a presente invenção, serão subsequentemente descritas tendo como referência as figuras anexas, nas quais: A Figura 1 apresenta um diagrama de blocos esquemático de um codificador de áudio, de acordo com uma forma de realização da invenção; A Figura 2 apresenta um diagrama de blocos esquemático de um descodificador de áudio, de acordo com uma forma de realização da invenção; A Figura 3 apresenta uma representação de código de pseudo-programa de um algoritmo "value decode()" para descodificar um valor espetral; A Figura 4 apresenta uma representação esquemática de um contexto para um cálculo de estado; A Figura 5a apresenta a representação de código de pseudo-programa de um algoritmo "arith_map context ()" para mapear um contexto;
As Figuras 5b e 5c apresentam uma representação de código de pseudo-programa de um algoritmo "arith get_context ()" para obter um valor de estado de contexto; A Figura 5d apresenta uma representação de código de pseudo-programa de um algoritmo "get_pk(s)" para derivar um valor de índice da tabela de frequências cumulativas "pki" de uma variável de estado; A Figura 5e apresenta uma representação de código de pseudo-programa de um algoritmo "arith_get_pk(s)" para derivar um valor de índice da tabela de frequências cumulativas „pki" de um valor de estado; A Figura 5f apresenta uma representação de código de pseudo-programa de um algoritmo "get_pk(unsigned long s) " para derivar um valor de índice da tabela de frequências cumulativas "pki" de um valor de estado; A Figura 5g apresenta uma representação de código de pseudo-programa de um algoritmo "arith_decode ()" para descodificar aritmeticamente um símbolo de uma palavra de código de extensão variável; A Figura 5h apresenta uma representação de código de pseudo-programa de um algoritmo "arith_update_context ()" para atualizar o contexto; A Figura 5i apresenta uma legenda de definições e variáveis; A Figura 6a apresenta uma representação de sintaxe de um bloco de dados brutos da codificação de fala e áudio unificada (USAC); A Figura 6b apresenta uma representação de sintaxe de um elemento de canal único; A Figura 6c apresenta a representação de sintaxe de um elemento de par de canais; A Figura 6d apresenta uma representação de sintaxe de uma informação de controlo "ics"; A Figura 6e apresenta uma representação de sintaxe de uma corrente de canal de domínio de frequência; A Figura 6f apresenta uma representação de sintaxe de dados espetrais aritmeticamente codificados; A Figura 6g apresenta uma representação de sintaxe para descodificar um conjunto de valores espetrais; A Figura 6h apresenta uma legenda de elementos e variáveis de dados; A Figura 7 apresenta um diagrama de blocos esquemático de um codificador de áudio, de acordo com outra forma de realização da invenção; A Figura 8 apresenta um diagrama de blocos esquemático de um descodificador de áudio, de acordo com outra forma de realização da invenção; A Figura 9 apresenta uma disposição para uma comparação de uma codificação silenciosa, de acordo com o projeto de trabalho 3 da norma de projeto da USAC com um esquema de codificação, de acordo com a presente invenção: A Figura 10a apresenta uma representação esquemática de um contexto para um cálculo de estado, conforme é utilizado, de acordo com o projeto de trabalho 4 da norma de projeto da USAC; A Figura 10b apresenta uma representação esquemática de um contexto para um cálculo de estado, conforme é utilizado nas formas de realização, de acordo com a invenção; A Figura 11a apresenta uma visão geral da tabela, conforme utilizada no esquema de codificação aritmética, de acordo com o projeto de trabalho 4 da norma de projeto da USAC; A Figura 11b apresenta uma visão geral da tabela, conforme utilizada no esquema de codificação aritmética, de acordo com a presente invenção; A Figura 12a apresenta uma representação gráfica de uma demanda de memória de somente leitura para os esquemas de codificação silenciosa, de acordo com a presente invenção e de acordo com o projeto de trabalho 4 da norma de projeto da USAC; A Figura 12b apresenta uma representação gráfica de uma demanda de memória de somente leitura de dados do descodificador USAC total, de acordo com a presente invenção e de acordo com o conceito de acordo com o projeto de trabalho 4 da norma de projeto da USAC; A Figura 13a apresenta uma representação de tabela de taxas de bits médias que são utilizadas por um codificador de codificação de fala e áudio unificada, utilizando um codificador aritmético, de acordo com o projeto de trabalho 3 da norma de projeto da USAC e um descodificador aritmético, de acordo com uma forma de realização da presente invenção; A Figura 13b apresenta uma representação de tabela de um controlo de reservatório de bits para um codificador de codificação de fala e áudio unificada, utilizando o codificador aritmético de acordo com o projeto de trabalho 3 da norma de projeto da USAC e o codificador aritmético de acordo com uma forma de realização da presente invenção; A Figura 14 apresenta uma representação de tabela de taxas de bits médias para um codificador de USAC, de acordo com o projeto de trabalho 3 da norma de projeto da USAC, e de acordo com uma forma de realização da presente invenção; A Figura 15 apresenta uma representação de tabela de taxas de bits minimas, máximas e médias de USAC numa base de quadros; A Figura 16 apresenta uma representação de tabela dos melhores e piores casos na base de quadro;
As Figuras 17 (1) e 17 (2) apresentam uma representação de tabela de um conteúdo de uma tabela "ari_s_hash[387]"; A Figura 18 apresenta uma representação de tabela de um conteúdo de uma tabela "ari_gs_hash[225]";
As Figuras 19(1) e 19(2) apresentam uma representação de tabela de um conteúdo de uma tabela "ari_cf_m[64][9]"; e
As Figuras 20(1) e 20(2) apresentam uma representação de tabela de um conteúdo de uma tabela "ari s hash[387]; A Figura 21 apresenta um diagrama de blocos esquemático de um codificador de áudio, de acordo com uma forma de realização da invenção; e A Figura 22 apresenta um diagrama de blocos esquemático de um descodif icador de áudio, de acordo com uma forma de realização da invenção.
DESCRIÇÃO DETALHADA DAS FORMAS DE REALIZAÇÃO 1. CODIFICADOR DE ÁUDIO, DE ACORDO COM A FIGURA 7 A Figura 7 apresenta um diagrama de blocos esquemático de um codificador de áudio, de acordo com uma forma de realização da invenção. O codificador de áudio 700 é configurado para receber uma informação de áudio de entrada 710 e para prover, em sua base, uma informação de áudio codificada 712. O codificador de áudio compreende um conversor de tempo para dominio de frequência de dominio de compactação de energia 720 que é configurado para prover uma representação de áudio de dominio de frequência 722 com base numa representação de dominio de tempo da informação de áudio de entrada 710, de modo que a representação de áudio de dominio de frequência 722 compreenda um conjunto de valores espetrais. O codificador de áudio 700 também compreende um codificador aritmético 730 configurado para codificar um valor espetral (fora do conjunto de valores espetrais que forma a representação de áudio de dominio de frequência 722), ou uma versão pré-processada dele, utilizando uma palavra de código de extensão variável para obter a informação de áudio codificada 712 (que pode compreender, por exemplo, uma pluralidade de palavras de código de extensão variável). O codificador aritmético 730 é configurado para mapear um valor espetral ou um valor de um plano de bits mars significativo de um valor espetral num valor de código (isto é, numa palavra de código de extensão variável), em função de um estado de contexto. O codificador aritmético 730 é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor espetral ou de um plano de bits mars significativo de um valor espetral num valor de código, em função de um estado de contexto. O codificador aritmético é configurado para determinar o estado de contexto atual em função de uma pluralidade de valores espetrais previamente codificados (preferencial, mas não necessariamente, adjacentes). Para este fim, o codificador aritmético é configurado para detetar um grupo de uma pluralidade de valores espetrais adjacentes previamente codificados, que atenda, individualmente ou considerada juntamente, a uma condição predeterminada em relação às suas magnitudes, e determinar o estado de contexto atual em função de um resultado da deteção.
Como pode ser visto, o mapeamento de um valor espetral ou de um plano de bits mais significativo de um valor espetral num valor de código pode ser realizado por uma codificação de valor espetral 740 utilizando uma regra de mapeamento 742. Um dispositivo de rastreio de estado 750 pode ser configurado para rastrear o estado de contexto e pode compreender um detetor de grupo 7 52 para detetar um grupo de uma pluralidade de valores espetrais adjacentes previamente codificados que atenda, individualmente ou considerada juntamente, à condição predeterminada em relação às suas magnitudes. O dispositivo de rastreio de estado 750 também é preferencialmente configurado para determinar o estado de contexto atual em função do resultado da referida deteção realizada pelo detetor de grupo 752. Da mesma forma, o dispositivo de rastreio de estado 750 provê uma informação 754 que descreve o estado de contexto atual. Um seletor de regra de mapeamento 760 pode selecionar uma regra de mapeamento, por exemplo, uma tabela de frequências cumulativas, que descreve um mapeamento de um valor espetral ou de um plano de bits mais significativo de um valor espetral num valor de código. Da mesma forma, o seletor de regra de mapeamento 760 provê as informações de regra de mapeamento 742 à codificação espetral 740.
Para resumir o referido acima, o codificador de áudio 700 realiza uma codificação aritmética de uma representação de áudio de domínio de frequência provida pelo conversor de domínio de tempo para domínio de frequência. A codificação aritmética é dependente do contexto, de modo que uma regra de mapeamento (por exemplo, uma tabela de frequências cumulativas) seja selecionada em função de valores espetrais previamente codificados. Da mesma forma, valores espetrais adjacentes no tempo e/ou frequência (ou pelo menos, dentro de um ambiente predeterminado) entre si e/ou ao valor espetral atualmente codificado (isto é, valores espetrais dentro de um ambiente predeterminado do valor espetral atualmente codificado) são considerados na codificação aritmética para ajustar a distribuição de probabilidade avaliada pela codificação aritmética. Ao selecionar uma regra de mapeamento adequada, uma deteção é realizada a fim de detetar se há um grupo de uma pluralidade de valores espetrais adjacentes previamente codificados que atenda, individualmente ou considerado juntamente, à condição predeterminada em relação às suas magnitudes. 0 resultado dessa deteção é aplicado na seleção do estado de contexto atual, isto é, na seleção de uma regra de mapeamento. Ao detetar se há um grupo de uma pluralidade de valores espetrais que são particularmente pequenos ou particularmente grandes, é possível reconhecer aspetos especiais dentro da representação de áudio de domínio de frequência, que podem ser uma representação de frequência de tempo. Os aspetos especiais como, por exemplo, um grupo de uma pluralidade de valores espetrais particularmente pequenos ou particularmente grandes, indicam que um estado de contexto específico deve ser utilizado, uma vez que esse estado de contexto específico pode prover uma eficiência de codificação particularmente boa. Assim, a deteção do grupo de valores espetrais adjacentes que atenda à condição predeterminada, que é tipicamente utilizada em combinação a uma avaliação de contexto alternativa com base numa combinação de uma pluralidade de valores espetrais previamente codificados, provê um mecanismo que permite uma seleção eficiente de um contexto adequado se a informação de áudio de entrada considerar alguns estados especiais (por exemplo, compreender uma variação de frequência encoberta ampla).
Da mesma forma, uma codificação eficiente pode ser alcançada enquanto mantém o cálculo do contexto suficientemente simples. 2. DESCODIFICADOR DE ÁUDIO, DE ACORDO COM A FIGURA 8 A Figura 8 apresenta um diagrama de blocos esquemático de um descodificador de áudio 800. O descodificador de áudio 800 é configurado para receber uma informação de áudio codificada 810 e para prover, com base nisso, uma informação de áudio descodificada 812. O descodificador de áudio 800 compreende um descodificador aritmético 820 que é configurado para prover uma pluralidade de valores espetrais descodificados 822 com base numa representação aritmeticamente codificada 821 dos valores espetrais. O descodificador de áudio 800 também compreende um conversor de dominio de frequência para dominio de tempo 830 que é configurado para receber os valores espetrais descodificados 822 e para prover a representação de áudio de dominio de tempo 812, que pode constituir as informações de áudio descodificadas, utilizando os valores espetrais descodificados 822, a fim de obter uma informação de áudio descodificada 812. O descodificador aritmético 820 compreende um determinador de valor espetral 824 que é configurado para mapear um valor de código da representação aritmeticamente codificada 821 de valores espetrais num código de símbolo que representa um ou mais dos valores espetrais descodificados ou pelo menos uma parte (por exemplo, um plano de bits mais significativo) de um ou mais dos valores espetrais descodificados. O determinador de valor espetral 824 pode ser configurado para realizar o mapeamento em função de uma regra de mapeamento, que pode ser descrita por uma informação de regra de mapeamento 828a. O descodificador aritmético 820 é configurado para selecionar uma regra de mapeamento (por exemplo, uma tabela de frequências cumulativas) que descreve um mapeamento de um valor de código (descrito pela representação aritmeticamente codificada 821 de valores espetrais) num código de símbolo (que descreve um ou mais valores espetrais) em função de um estado de contexto (que pode ser descrito pela informação de estado de contexto 826a). 0 descodificador aritmético 820 é configurado para determinar o estado de contexto atual em função de uma pluralidade de valores espetrais previamente descodificados 822. Para esse fim, um dispositivo de rastreio de estado 826 pode ser utilizado, que recebe uma informação que descreve os valores espetrais previamente descodificados. O descodificador aritmético também é configurado para detetar um grupo de uma pluralidade de valores espetrais previamente descodificados (preferencial, mas não necessariamente, adjacentes), que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação às suas magnitudes, e para determinar o estado de contexto atual (descrito, por exemplo, pela informação de estado de contexto 826a) em função de um resultado da deteção. A deteção do grupo de uma pluralidade de valores espetrais adjacentes previamente descodificados que atenda à condição predeterminada em relação às suas magnitudes pode, por exemplo, ser realizada por um detetor de grupo, que é parte do dispositivo de rastreio de estado 826. Da mesma forma, uma informação de estado de contexto atual 826a é obtida. A seleção da regra de mapeamento pode ser realizada por um seletor de regra de mapeamento 82 8, que deriva uma informação de regra de mapeamento 828a da informação de estado de contexto atual 826a, e que provê a informação de regra de mapeamento 828a ao determinador de valor espetral 824.
Em relação à funcionalidade do descodificador de sinal de áudio 800, deve ser observado que o descodificador aritmético 820 é configurado para selecionar uma regra de mapeamento (por exemplo, uma tabela de frequências cumulativas) que é, numa média, bem adaptada ao valor espetral a ser descodificado, uma vez que a regra de mapeamento é selecionada em função do estado de contexto atual, que por sua vez é determinado em função de uma pluralidade de valores espetrais previamente descodificados. Da mesma forma, dependências estatisticas entre valores espetrais adjacentes a serem descodificados podem ser exploradas. Para além disso, ao detetar um grupo de uma pluralidade de valores espetrais adjacentes previamente descodificados que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação às suas magnitudes, é possivel adaptar a regra de mapeamento a condições especiais (ou padrões) de valores espetrais previamente descodificados. Por exemplo, uma regra de mapeamento específica pode ser selecionada se um grupo de uma pluralidade de valores espetrais comparativamente pequenos adjacentes previamente descodificados for identificado ou se um grupo de uma pluralidade de valores espetrais comparativamente grandes adjacentes previamente descodificados for identificado. Descobriu-se que a presença de um grupo de valores espetrais comparativamente grandes ou de um grupo de valores espetrais comparativamente pequenos pode ser considerada uma indicação significativa de que uma regra de mapeamento dedicada, especialmente adaptada para essa condição, deve ser utilizada. Da mesma forma, uma computação de contexto pode ser facilitada (ou acelerada) ao explorar a deteção de um tal grupo de uma pluralidade de valores espetrais. Também, podem ser consideradas caracteristicas de um conteúdo de áudio que não poderiam ser consideradas facilmente sem aplicar o conceito mencionado acima. Por exemplo, a deteção de um grupo de uma pluralidade de valores espetrais que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação às suas magnitudes, pode ser realizada com base num conjunto de valores espetrais diferente, quando comparado ao conjunto de valores espetrais utilizado para uma computação de contexto normal.
Detalhes adicionais serão descritos abaixo 3. CODIFICADOR DE ÁUDIO, DE ACORDO COM A FIGURA 1 A seguir, será descrito um codificador de áudio, de acordo com uma forma de realização da presente invenção. A Figura 1 apresenta um diagrama de blocos esquemático de tal codificador de áudio 100. O codificador de áudio 100 é configurado para receber uma informação de áudio de entrada 110 e para prover, com base nisso, um fluxo de bits 112, que constitui uma informação de áudio codificada. O codificador de áudio 100 opcionalmente compreende um pré-processador 120, que é configurado para receber a informação de áudio de entrada 110 e para prover, com base nisso, uma informação de áudio de entrada pré-processada 110a. O codificador de áudio 100 também compreende um transformador de sinal de domínio de tempo para domínio de frequência de compactação de energia 130, que também é designado como conversor de sinal. O conversor de sinal 130 é configurado para receber a informação de áudio de entrada 110, 110a e para prover, com base nisso, uma informação de áudio de domínio de frequência 132, que preferencialmente toma forma de um conjunto de valores espetrais. Por exemplo, o transformador de sinal 130 pode ser configurado para receber um quadro da informação de áudio de entrada 110, 110a (por exemplo, um bloco de amostras de domínio de tempo) e para prover um conjunto de valores espetrais que representa o conteúdo de áudio do respetivo quadro de áudio. Além disso, o transformador de sinal 130 pode ser configurado para receber uma pluralidade de quadros de áudio, de sobreposição ou sem sobreposição, subsequentes da informação de áudio de entrada 110, 110a e para prover, com base nisso, uma representação de áudio de domínio de frequência de tempo, que compreende uma sequência de conjuntos subsequentes de valores espetrais, um conjunto de valores espetrais associado a cada quadro. 0 transformador de sinal de domínio de tempo para domínio de frequência de compactação de energia 130 pode compreender um banco de filtro de compactação de energia, que provê valores espetrais associados a diferentes variações de frequência, de sobreposição ou sem sobreposição, diferentes. Por exemplo, o transformador de sinal 130 pode compreender um transformador de MDCT de janelamento 130a, que é configurado para janelar a informação de áudio de entrada 110, 110a (ou um quadro seu) utilizando uma janela de transformada e para realizar uma transformada do cosseno discreta modificada da informação de áudio de entrada janelada 110, 110a (ou do seu quadro janelado).
Da mesma forma, a representação de áudio de domínio de frequência 132 pode compreender um conjunto de, por exemplo, 1024 valores espetrais na forma de coeficientes de MDCT associados a um quadro da informação de áudio de entrada. O codificador de áudio 100 pode ainda, opcionalmente, compreender um pós-processador espetral 140, que é configurado para receber a representação de áudio de domínio de frequência 132 e para prover, com base nisso, uma representação de áudio de domínio de frequência pós-processada 142. O pós-processador espetral 140 pode, por exemplo, ser configurado para realizar uma formação de ruído temporal e/ou uma previsão de longo prazo e/ou qualquer pós-processamento espetral conhecido na técnica. O codificador de áudio ainda compreende, opcionalmente, um escalonador/quantificador 150, que é configurado para receber a representação de áudio de domínio de frequência 132 ou a sua versão pós-processada 142 e para prover uma representação de áudio de domínio de frequência escalonada e quantificada 152. O codificador de áudio 100 ainda compreende, opcionalmente, um processador de modelo psicoacústico 160, que é configurado para receber a informação de áudio de entrada 110 (ou sua versão pós-processada 110a) e para prover, com base nisso, uma informação de controlo opcional, que pode ser utilizada para o controlo do transformador de sinal de domínio de tempo para domínio de frequência de compactação de energia 130, para o controlo do pós-processador espetral opcional 140 e/ou para o controlo do escalonador/quantificador opcional 150. Por exemplo, o processador de modelo psicoacústico 160 pode ser configurado para analisar a informação de áudio de entrada, para determinar quais componentes da informação de áudio de entrada 110, 110a são particularmente importantes para a perceção humana do conteúdo de áudio e quais componentes da informação de áudio de entrada 110, 110a são menos importantes para a perceção do conteúdo de áudio. Da mesma forma, o processador de modelo psicoacústico 160 pode prover informação de controlo, que é utilizada pelo codificador de áudio 100 a fim de ajustar o escalonamento da representação de áudio de domínio de frequência 132, 142 pelo escalonador/quantif icador 150 e/ou a resolução de quantificação aplicada pelo escalonador/quantificador 150. Consequentemente, faixas de fator de escala percetualmente importantes (isto é, grupos de valores espetrais adjacentes que são particularmente importantes para a perceção humana do conteúdo de áudio) são escalonadas com um fator de escalonamento grande e quantificados com resolução comparativamente alta, enquanto faixas de fator de escala percetualmente menos importantes (isto é, grupos de valores espetrais adjacentes) são escalonadas com um fator de escalonamento comparativamente menor e quantificadas com uma resolução de quantificação comparativamente menor. Da mesma forma, os valores espetrais escalonados de frequências mais importantes são tipicamente maiores de modo significativo que valores espetrais de frequências percetualmente menos importantes. O codificador de áudio também compreende um codificador aritmético 170, que é configurado para receber a versão escalonada e quantificada 152 da representação de áudio de domínio de frequência 132 (ou, de modo alternativo, a versão pós-processada 142 da representação de áudio de domínio de frequência 132 ou até a representação de áudio de domínio de frequência 132 em si mesma) e para prover informações de palavra de código aritméticas 172a com base nisso, de modo que as informações de palavra de código aritméticas representem a representação de áudio de dominio de frequência 152. 0 codificador de áudio 100 também compreende um formatador de carga útil de fluxo de bits 190, que é configurado para receber as informações de palavra de código aritméticas 172a. O formatador de carga útil de fluxo de bits 190 também é tipicamente configurado para receber informações adicionais, como, por exemplo, informações de fator de escala que descrevem quais fatores de escala foram aplicados pelo escalonador/quantificador 150. Além disso, o formatador de carga útil de fluxo de bits 190 pode ser configurado para receber outras informações de controlo. O formatador de carga útil de fluxo de bits 190 é configurado para prover o fluxo de bits 112 com base nas informações recebidas pela montagem do fluxo de bits de acordo com uma sintaxe de fluxo de bits desejada, que será discutida abaixo. A seguir, serão descritos detalhes em relação ao codificador aritmético 170. O codificador aritmético 170 é configurado para receber uma pluralidade de valores espetrais escalonados, quantificados e pós-processados da representação de áudio de dominio de frequência 132. O codificador aritmético compreende um extrator de plano de bits mais significativo 174, que é configurado para extrair um plano de bits mais significativo m de um valor espetral. Deve ser observado aqui que o plano de bits mais significativo pode compreender um ou até mais bits (por exemplo, dois ou três bits), que são os bits mais significativos do valor espetral. Assim, o extrator de plano de bits mais significativo 174 provê um valor de plano de bits mais significativo 176 de um valor espetral. O codificador aritmético 170 também compreende um primeiro determinador de palavra de código 180, que é configurado para determinar uma palavra de código aritmética acod_m [pki][m] que representa o valor de plano de bits mais significativo m. Opcionalmente, o determinador de palavra de código 180 também pode prover uma ou mais palavras de código de escape (também aqui designadas com "ARITH_E S CAPE") indicando, por exemplo, quantos planos de bits menos significativos estão disponíveis (e, consequentemente, indicando a ponderação numérica do plano de bits mais significativo). O primeiro determinador de palavra de código 180 pode ser configurado para prover a palavra de código associada a um valor de plano de bits mais significativo m utilizando uma tabela de frequências cumulativas selecionada tendo (ou sendo mencionada por) um índice de tabela de frequências cumulativas pki. A fim de determinar como qual tabela de frequências cumulativas deve ser selecionada, o codificador aritmético preferencialmente compreende um dispositivo de rastreio de estado 182, que é configurado para rastrear o estado do codificador aritmético, por exemplo, ao observar quais valores espetrais foram codificados anteriormente. O dispositivo de rastreio de estado 182 provê consequentemente uma informação de estado 184, por exemplo, um valor de estado designado com "s" ou "t". O codificador aritmético 170 também compreende um seletor de tabela de frequências cumulativas 186, que é configurada para receber a informação de estado 184 e para prover uma informação 188 que descreve a tabela de frequências cumulativas selecionada ao determinador de palavra de código 180. Por exemplo, o seletor de tabela de frequências cumulativas 186 pode prover um índice de tabela de frequências cumulativas "pki" que descreve qual tabela de frequências cumulativas, fora de um conjunto de 64 tabelas de frequências cumulativas, é selecionada para uso pelo determinador de palavra de código. De modo alternativo, o seletor de tabela de frequências cumulativas 186 pode prover toda a tabela de frequências cumulativas selecionada ao determinador de palavra de código. Assim, o determinador de palavra de código 180 pode utilizar a tabela de frequências cumulativas selecionada para a provisão da palavra de código acod m[pki] [m] do valor de plano de bits mais significativo m, de modo que a palavra de código real acod_m[pki] [m] que codifica o valor de plano de bits mais significativo m é dependente do valor de m e do indice de tabela de frequências cumulativas pki e, consequentemente, da informação de estado atual 184. Detalhes adicionais em relação ao processo de codificação e o formato de palavra de código obtido serão descritos abaixo. O codificador aritmético 170 ainda compreende um extrator de plano de bits menos significativo 189a, que é configurado para extrair um ou mais planos de bits menos significativos da representação de áudio de dominio de frequência escalonada e quantificada 152, se um ou mais dos valores espetrais a serem codificados excederem a variação de valores codificáveis utilizando o plano de bits mais significativo somente. Os planos de bits menos significativos podem compreender um ou mais bits, conforme desejado. Da mesma forma, o extrator de plano de bits menos significativo 189a provê uma informação de plano de bit menos significativo 189b. O codificador aritmético 170 também compreende um segundo determinador de palavra de código 189c, que é configurado para receber a informação de plano de bit menos significativo 189d e para prover, com base nisso, 0, 1 ou mais palavras de código "acod_r" que representam o conteúdo de 0, 1 ou mais planos de bits menos significativos. O segundo determinador de palavra de código 189c pode ser configurado para aplicar um algoritmo de codificação aritmética ou qualquer outro algoritmo de codificação a fim de derivar as palavras de código de plano de bits menos significativos "acod_r" da informação de plano de bit menos significativo 189b.
Deve ser observado aqui que o número de planos de bits menos significativos pode variar em função do valor dos valores espetrais escalonados e quantificados 152, de modo que possa não haver mais plano de bits menos significativo, se o valor espetral escalonado e quantificado a ser codificado for comparativamente pequeno, de modo que possa haver um plano de bits menos significativo se o valor espetral escalonado e quantificado atual a ser codificado for de uma variação média e de modo que haja mais de um plano de bits menos significativo se o valor espetral escalonado e quantificado a ser codificado considerar um valor comparativamente grande.
Para resumir o mencionado acima, o codificador aritmético 170 é configurado para codificar valores espetrais escalonados e quantificados, que são descritos pela informação 152, utilizando um processo de codificação hierárquico. O plano de bits mais significativo (compreendendo, por exemplo, um, dois ou três bits por valor espetral) é codificado para obter uma palavra de código aritmética "acod_m[pki][m]" de um valor de plano de bits mais significativo. Um ou mais planos de bits menos significativos (cada um dos planos de bits menos significativos compreendendo, por exemplo, um, dois ou três bits) são codificados para obter uma ou mais palavras de código "acod_r". Ao codificar o plano de bits mais significativo, o valor m do plano de bits mais significativo é mapeado a uma palavra de código acod_m[pki] [m] . Para este fim, 64 diferentes tabelas de frequências cumulativas estão disponíveis para a codificação do valor m em função de um estado do codificador aritmético 170, isto é, em função de valores espetrais previamente codificados. Da mesma forma, a palavra de código "acod_m[pki][m]" é obtida. Além disso, uma ou mais palavras de código "acod_r" são providas e incluídas no fluxo de bits se um ou mais planos de bits menos significativos estiverem presentes.
DESCRIÇÃO DO REAJUSTE O codificador de áudio 100 pode opcionalmente ser configurado para decidir se uma melhoria na taxa de bits pode ser obtida ao reajustar um contexto, por exemplo, ao ajustar o indice de estado a um valor padrão. Da mesma forma, o codificador de áudio 100 pode ser configurado para prover uma informação de reajuste (por exemplo, chamada de "arith_reset_flag") que indica se o contexto para a codificação aritmética é reajustado e também que indica se o contexto para a descodificação aritmética num descodificador correspondente deve ser reajustada.
Os detalhes em relação ao formato de fluxo de bits e as tabelas de frequências cumulativas aplicadas serão discutidos abaixo.
4. DESCODIFICADOR DE ÁUDIO A seguir, um descodificador de áudio, de acordo com uma forma de realização da invenção, será descrito. A Figura 2 apresenta um diagrama de blocos esquemático desse um descodificador de áudio 200. O descodificador de áudio 200 é configurado para receber um fluxo de bits 210, que representa uma informação de áudio codificada e que pode ser idêntico ao fluxo de bits 112 provido pelo codificador de áudio 100. O descodificador de áudio 200 provê uma informação de áudio descodificada 212 com base no fluxo de bits 210. O descodificador de áudio 200 compreende um formatador de carga útil de fluxo de bits opcional 220, que é configurado para receber o fluxo de bits 210 e para extrair do fluxo de bits 210 uma representação de áudio de domínio de frequência codificada 222. Por exemplo, o formatador de carga útil de fluxo de bits 220 pode ser configurado para extrair do fluxo de bits 210 dados espetrais aritmeticamente codificados como, por exemplo, uma palavra de código aritmética "acod_m [pki][m]" que representa o valor de plano de bits mais significativo m de um valor espetral a e uma palavra de código "acod_r" que representa o conteúdo de um plano de bits menos significativo do valor espetral a da representação de áudio de domínio de frequência. Assim, a representação de áudio de domínio de frequência codificada 222 constitui (ou compreende) uma representação aritmeticamente codificada de valores espetrais. 0 desformatador de carga útil de fluxo de bits 220 é ainda configurado para extrair do fluxo de bits informações adicionais de controlo, que não são apresentadas na Figura 2. Além disso, o desformatador de carga útil de fluxo de bits é opcionalmente configurado para extrair do fluxo de bits 210 uma informação de reajuste de estado 224, que também é designada como sinalização de reajuste aritmético ou "arith_reset_flag". O descodificador de áudio 200 compreende um descodificador aritmético 230, que também é designado como "descodificador silencioso espetral". O descodificador aritmético 230 é configurado para receber a representação de áudio de domínio de frequência codificada 220 e, opcionalmente, a informação de reajuste de estado 224. O descodificador aritmético 230 também é configurado para prover uma representação de áudio de domínio de frequência descodificada 232, que pode compreender uma representação descodificada de valores espetrais. Por exemplo, a representação de áudio de domínio de frequência descodificada 232 pode compreender uma representação descodificada de valores espetrais, que são descritos pela representação de áudio de domínio de frequência codificada 220. O descodificador de áudio 200 também compreende um quantificador inverso/re-escalonador opcional 240, que é configurado para receber a representação de áudio de domínio de frequência descodificada 232 e para prover, com base nisso, uma representação de áudio de domínio de frequência quantificada inversamente e re-escalonada 242. 0 descodificador de áudio 200 ainda compreende um pré-processador espetral opcional 250, que é configurado para receber a representação de áudio de domínio de frequência quantificada inversamente e re-escalonada 242 e para prover, com base nisso, uma versão pré-processada 252 da representação de áudio de domínio de frequência quantificada inversamente e reescalonada 242. O descodificador de áudio 200 também compreende um transformador de sinal de domínio de frequência para domínio de tempo 260, que também é designado como "conversor de sinal". O transformador de sinal 260 é configurado para receber a versão pré-processada 252 da representação de áudio de domínio de frequência quantificada inversamente e re-escalonada 242 (ou, de modo alternativo, a representação de áudio de domínio de frequência quantificada inversamente e re-escalonada 242 ou a representação de áudio de domínio de frequência descodificada 232) e para prover, com base nisso, uma representação de domínio de tempo 262 das informações de áudio. O transformador de sinal de domínio de frequência para domínio de tempo 260 pode, por exemplo, compreender um transformador para realizar uma transformada de cosseno discreta modificada inversa (IMDCT) e um janelamento adequado (assim como outras funcionalidades auxiliares, como, por exemplo, uma sobreposição e adição). O descodificador de áudio 200 pode ainda compreender um pós-processador de domínio de tempo opcional 270, que é configurado para receber a representação de domínio de tempo 262 das informações de áudio e para obter as informações de áudio descodificadas 212 utilizando um pós-processamento de domínio de tempo. No entanto, se o pós-processamento for omitido, a representação de domínio de tempo 262 pode ser idêntica às informações de áudio descodificadas 212.
Deve ser observado aqui que o quantificador inverso/re-escalonador 240, o pré-processador espetral 250, o transformador de sinal de domínio de frequência para domínio de tempo 260 e o pós-processador de domínio de tempo 270 podem ser controlados em função da informação de controlo, que é extraída do fluxo de bits 210 pelo desformatador de carga útil de fluxo de bits 220.
Para resumir a funcionalidade geral do descodificador de áudio 200, uma representação de áudio de domínio de frequência descodificada 232, por exemplo, um conjunto de valores espetrais associado a um quadro de áudio da informação de áudio codificada, pode ser obtido com base na representação de domínio de frequência codificada 222 utilizando o descodificador aritmético 230. Subsequentemente, o conjunto de, por exemplo, 1024 valores espetrais, que podem ser coeficientes de MDCT, são inversamente quantificados, re-escalonados e pré-processados. Da mesma forma, um conjunto de valores espetrais quantificados inversamente, re-escalonados e pré-processados espetralmente (por exemplo, 1024 coeficientes de MDCT) é obtido. Posteriormente, uma representação de domínio de tempo de um quadro de áudio é derivada do conjunto de valores de domínio de frequência quantificados inversamente, re-escalonados e pré-processados espetralmente (por exemplo, coeficientes de MDCT). Da mesma forma, uma representação de domínio de tempo de um quadro de áudio é obtida. A representação de domínio de tempo de um determinado quadro de áudio pode ser combinada às representações de domínio de tempo de quadros de áudio anteriores e/ou subsequentes. Por exemplo, uma sobreposição e adição entre as representações de domínio de tempos de quadros de áudio subsequentes pode ser realizada a fim de suavizar as transições entre as representações de domínio de tempo doa quadros de áudio adjacentes e a fim de obter um cancelamento de aliasing. Para detalhes em relação à reconstrução das informações de áudio descodificadas 212 com base na representação de áudio de domínio de frequência descodificada de tempo 232, é feita referência, por exemplo, à Norma Internacional ISO/IEC 14496-3, parte 3, subparte 4, no qual é dada uma discussão detalhada. No entanto, outros esquemas de sobreposição e cancelamento de aliasing mais elaborados podem ser utilizados. A seguir, alguns detalhes em relação ao descodificador aritmético 230 serão descritos. O descodificador aritmético 230 compreende um determinador de plano de bits mais significativo 284, que é configurado para receber a palavra de código aritmética acod_m [pki] [m] que descreve o valor de plano de bits mais significativo m. O determinador de plano de bits mais significativo 284 pode ser configurado para utilizar uma tabela de frequências cumulativas fora de um conjunto compreendendo uma pluralidade de 64 tabelas de frequências cumulativas para derivar o valor de plano de bits mais significativo m da palavra de código aritmética "acod_m [pki][m]". O determinador de plano de bits mais significativo 284 é configurado para derivar valores 286 de um plano de bits mais significativo de valores espetrais com base na palavra de código acod_m. O descodificador aritmético 230 ainda compreende um determinador de plano de bits menos significativo 288, que é configurado para receber uma ou mais palavras de código "acod_r" que representam um ou mais planos de bits menos significativos de um valor espetral. Da mesma forma, o determinador de plano de bits menos significativo 288 é configurado para prover valores descodificados 290 de um ou mais planos de bits menos significativos. O descodificador de áudio 200 também compreende um combinador de plano de bits 292, que é configurado para receber os valores descodificados 286 do plano de bits mais significativo dos valores espetrais e os valores descodificados 290 de um ou mais planos de bits menos significativos dos valores espetrais se esses planos de bits menos significativos estiverem disponíveis para os valores espetrais atuais. Da mesma forma, o combinador de plano de bits 292 provê valores espetrais descodificados, que são parte da representação de áudio de dominio de frequência descodificada 232. Naturalmente, o descodificador aritmético 230 é tipicamente configurado para prover uma pluralidade de valores espetrais a fim de obter um conjunto completo de valores espetrais descodificados associado a um quadro atual do conteúdo de áudio. O descodificador aritmético 230 ainda compreende um seletor de tabela de frequências cumulativas 296, que é configurado para selecionar uma das 64 tabelas de frequências cumulativas em função de um indice de estado 298 que descreve um estado do descodificador aritmético. O descodificador aritmético 230 ainda compreende um dispositivo de rastreio de estado 299, que é configurado para rastrear um estado do descodificador aritmético em função dos valores espetrais previamente descodificados. A informação de estado pode opcionalmente ser reajustada a uma informação de estada padrão em resposta à informação de reajuste de estado 224. Da mesma forma, o seletor de tabela de frequências cumulativas 296 é configurado para prover um indice (por exemplo, pki) de uma tabela de frequências cumulativas selecionada ou uma tabela de frequências cumulativas selecionada em si mesma, para aplicação na descodificação do valor de plano de bits mais significativo m em função da palavra de código "acod_m".
Para resumir a funcionalidade do descodificador de áudio 200, o descodificador de áudio 200 é configurado para receber uma representação de áudio de domínio de frequência codificada eficientemente da taxa de bits 222 e para obter uma representação de áudio de domínio de frequência descodificada com base nisso. No descodificador aritmético 230, que é utilizado para obter a representação de áudio de domínio de frequência descodificada 232 com base na representação de áudio de domínio de frequência codificada 222, uma probabilidade de diferentes combinações de valores do plano de bits mais significativo de valores espetrais adjacentes é explorada ao utilizar um descodificador aritmético 280, que é configurado para aplicar uma tabela de frequências cumulativas. Por outras palavras, as dependências estatísticas entre valores espetrais são exploradas ao selecionar diferentes tabelas de frequências cumulativas fora de um conjunto compreendendo 64 diferentes tabelas de frequências cumulativas em função de um índice de estado 298, que é obtido ao observar os valores espetrais descodificados previamente computados.
5. VISÃO GERAL DA FERRAMENTA DE CODIFICAÇÃO SILENCIOSA ESPETRAL A seguir, detalhes em relação ao algoritmo de codificação e descodificação, que é realizada, por exemplo, pelo codificador aritmético 170 e pelo descodificador aritmético 230 serão explicados. É colocado foco na descrição do algoritmo de descodificação. Deve ser observado, no entanto, que um algoritmo de codificação correspondente pode ser realizado de acordo com os ensinamentos do algoritmo de descodificação, em que os mapeamentos são inversos.
Deve ser observado que a descodificação, que será discutida a seguir, é utilizada a fim de permitir uma denominada "codificação silenciosa espetral" de valores espetrais, tipicamente pré-processados, escalonados e quantificados. A codificação silenciosa espetral é utilizada num conceito de codificação/descodificação de áudio para reduzir adicionalmente a redundância do espetro quantificado, que é obtido, por exemplo, por um transformador de domínio de tempo para um domínio de frequência de compactação de energia. O esquema da codificação silenciosa espetral, que é utilizado nas formas de realização da invenção, tem base numa codificação aritmética em conjunto com um contexto dinamicamente adaptado. A codificação silenciosa é alimentada por (originais ou representações codificadas de) valores espetrais quantificados e utiliza, dependendo do contexto, as tabelas de frequências cumulativas derivadas, por exemplo, de uma pluralidade de valores espetrais próximos previamente descodificados. Aqui, a proximidade tanto em tempo como em frequência é considerada conforme ilustrado na Figura 4. As tabelas de frequências cumulativas (que serão explicadas abaixo) são então utilizadas pelo codificador aritmético para gerar um código binário de extensão variável e pelo descodificador aritmético para derivar valores descodificados de um código binário de extensão variável.
Por exemplo, o codificador aritmético 170 produz um código binário para um determinado conjunto de simbolos em função das respetivas probabilidades. O código binário é gerado ao mapear um intervalo de probabilidade, no qual o conjunto de simbolos existe, numa palavra de código. A seguir, outra breve visão geral da ferramenta de codificação silenciosa espetral será dada. A codificação silenciosa espetral é utilizada para reduzir adicionalmente a redundância do espetro quantificado. O esquema da codificação silenciosa espetral tem base numa codificação aritmética em conjunto com um contexto dinamicamente adaptado. A codificação silenciosa é alimentada pelos valores espetrais quantificados e utiliza o contexto dependendo das tabelas de frequências cumulativas derivadas de, por exemplo, sete valores espetrais próximos previamente descodificados.
Aqui, a proximidade em ambos, tempo e frequência, é considerada, conforme ilustrado na Figura 4. As tabelas de frequências cumulativas são então utilizadas pelo codificador aritmético para gerar um código binário de extensão variável. 0 codificador aritmético produz um código binário para um determinado conjunto de simbolos e suas respetivas probabilidades. 0 código binário é gerado ao mapear um intervalo de probabilidade, onde o conjunto de simbolos existe para uma palavra de código.
6. PROCESSO DE DESCODIFICAÇÃO
6.1 VISÃO GERAL DO PROCESSO DE DESCODIFICAÇÃO A seguir, uma visão geral do processo de descodificação de um valor espetral será dada fazendo referência à Figura 3, que apresenta uma representação de código de pseudo-programa do processo de descodificação de uma pluralidade de valores espetrais. 0 processo de descodificação de uma pluralidade de valores espetrais compreende uma inicialização 310 de um contexto. A inicialização 310 do contexto compreende uma derivação do contexto atual a partir de um contexto anterior utilizando a função "arith_map_context (lg)". A derivação do contexto atual de um contexto anterior pode compreender um reajuste do contexto. Tanto o reajuste do contexto como a derivação do contexto atual a partir de um contexto anterior serão discutidos abaixo. A descodificação de uma pluralidade de valores espetrais também compreende uma iteração de uma descodificação do valor espetral 312 e uma atualização de contexto 314, essa atualização de contexto é realizada por uma função "Arith_update_context (a,i,lg)" que é descrita abaixo. A descodificação do valor espetral 312 e a atualização de contexto 314 são repetidas lg vezes, em que lg indica o número de valores espetrais a serem descodificados (por exemplo, para um quadro de áudio). A descodificação do valor espetral 312 compreende um cálculo de valor de contexto 312a, uma descodificação de plano de bits mais significativo 312b e uma adição de plano de bits menos significativo 312c. A computação do valor de estado 312a compreende a computação de um primeiro valor de estado s utilizando a função "arith_get_context(i, lg, arith_reset_flag, N/2)", essa função retorna o primeiro valor de estado s. A computação do valor de estado 312a também compreende uma computação de um valor de nivel "levO" e de um valor de nivel "lev", esses valores de nível "levO", „lev" são obtidos ao trocar o primeiro valor de estado s para a direita em 24 bits. A computação do valor de estado 312a também compreende uma computação de um segundo valor de estado t de acordo com a fórmula apresentada na Figura 3 no número de referência 312a. A descodificação de plano de bits mais significativo 312b compreende uma execução iterativa de um algoritmo de descodificação 312ba, em que uma variável j é inicializada a 0 antes de uma primeira execução do algoritmo 312ba. 0 algoritmo 312ba compreende uma computação de um índice de estado "pki" (que também serve como um índice de tabela de frequências cumulativas) em função do segundo valor de estado t, e também em função dos valores de nível „lev" e levO, utilizando uma função "arith_get_pk()", que é discutida abaixo. 0 algoritmo 312ba também compreende a seleção de uma tabela de frequências cumulativas em função do índice de estado pki, em que uma variável "cum_freq" pode ser ajustada a um endereço de início de uma das 64 tabelas de frequências cumulativas em função do índice de estado pki. Também, uma variável "cfl" pode ser inicializada a uma extensão da tabela de frequências cumulativas selecionada, que é, por exemplo, igual ao número de símbolos no alfabeto, isto é, o número de diferentes valores que podem ser descodificados. As extensões de todas as tabelas de frequências cumulativas de "arith_cf_m[pki = 0] [9]" a "arith_cf_m[pki = 63] [9]" disponíveis para a descodificação do valor de plano de bits mais significativo m é 9, uma vez que oito diferentes valores de plano de bits mais significativo e um símbolo de escape pode ser descodificado. Subsequentemente, um valor de plano de bits mais significativo m pode ser obtido ao executar uma função "arith_decode()", levando em consideração a tabela de frequências cumulativas selecionada (descrita pela variável "cum_freq" e pela variável "cfl") . Ao derivar o valor de plano de bits mais significativo m, os bits chamados "acod_m" do fluxo de bits 210 podem ser avaliados (vide, por exemplo, a Figura 6g) . O algoritmo 312ba também compreende a verificação se o valor de plano de bits mais significativo m é igual a um símbolo de escape "ARITH_ESCAPE" ou não. Se o valor de plano de bits mais significativo m não for igual ao símbolo de escape aritmético, o algoritmo 312ba é abortado (condição de "rompimento") e as instruções remanescentes do algoritmo 312ba são, portanto, puladas. Da mesma forma, a execução do processo é continuada com o ajuste do valor espetral a para ser igual ao valor de plano de bits mais significativo m (instrução "a=m"). Ao contrário, se o valor de plano de bits mais significativo descodificado m for idêntico ao símbolo de escape aritmético "ARITH_ESCAPE", o valor de nível „lev" é aumentado em um. Conforme mencionado, o algoritmo 312ba é, então, repetido até o valor de plano de bits mais significativo descodificado m ser diferente do símbolo de escape aritmético.
Assim que a descodificação de plano de bits mais significativo for concluída, isto é, um valor de plano de bits mais significativo m diferente do símbolo de escape aritmético for descodificado, o valor espetral variável „a" é ajustado para ser igual ao valor de plano de bits mais significativo m. Subsequentemente, os planos de bits menos significativos são obtidos, por exemplo, conforme apresentado no número de referência 312c na Figura 3. Para cada plano de bits menos significativo do valor espetral, um dos dois valores binários é descodificado. Por exemplo, um valor de plano de bits menos significativo r é obtido. Subsequentemente, o valor espetral variável „a" é atualizado ao trocar o conteúdo do valor espetral variável „a" para a esquerda em 1 bit e ao adicionar o valor de plano de bits menos significativo descodificado atualmente r como um bit menos significativo. No entanto, deve ser observado que o conceito para obter os valores dos planos de bits menos significativos não é de relevância particular para a presente invenção. Em algumas formas de realização, a descodificação de quaisquer planos de bits menos significativos pode até ser omitida. De modo alternativo, diferentes algoritmos de descodificação podem ser utilizados para este fim. 6.2 ORDEM DA DESCODIFICAÇÃO, DE ACORDO COM A FIGURA 4 A seguir, a ordem de descodificação dos valores espetrais será descrita.
Coeficientes espetrais são codificados silenciosamente e transmitidos (por exemplo, no fluxo de bits) começando com o coeficiente de menor frequência e progredindo para o coeficiente de maior frequência.
Os coeficientes de uma codificação de áudio avançada (por exemplo, obtidos utilizando uma transformada do cosseno discreta modificada, conforme discutido na ISO/IEC 14496, parte 3, subparte 4) são armazenados num arranjo chamado "x_ac_quant[g][win][sfb][bin]", e a ordem de transmissão da palavra de código de codificação silenciosa (por exemplo acod_m, acod_r) é tal que, quando eles forem descodificados na ordem recebida e armazenados no arranjo, "bin" (o índice de frequência), seja o indice de incrementação mais rápida e "g" seja o índice de incrementação mais rápida.
Coeficientes espetrais associados a uma frequência menor são codificados antes dos coeficientes espetrais associados a uma frequência maior.
Coeficientes da excitação codificada de transformada (tcx) são armazenados diretamente num arranjo x tcx invquant[win][bin], e a ordem da transmissão das palavras de código de codificação silenciosa é tal que, quando eles são descodificados na ordem recebida e armazenados no arranjo, "bin" é o indice de incrementação mais rápida e "win" é o índice de incrementação mais lenta. Por outras palavras, se os valores espetrais descrevem uma excitação codificada de transformada do filtro de previsão linear de um codificador de fala, os valores espetrais a são associados a frequências adjacentes e de aumento da excitação codificada de transformada.
Coeficientes espetrais associados a uma frequência menor são codificados antes dos coeficientes espetrais associados a uma frequência maior.
Notavelmente, o descodificador de áudio 200 pode ser configurado para aplicar a representação de áudio de domínio de frequência descodificada 232, que é provida pelo descodificador aritmético 230, tanto para uma geração "direta" de um sinal de áudio de representação de domínio de tempo utilizando uma transformada de sinal de domínio de frequência para domínio de tempo como para uma provisão "indireta" de uma representação de sinal de áudio utilizando tanto um descodificador de domínio de frequência para domínio de tempo como um filtro de previsão linear excitado pela saída do transformador de sinal de domínio de frequência para domínio de tempo.
Por outras palavras, o descodificador aritmético 200, cuja funcionalidade é aqui discutida em detalhes, é bem adequado para descodificar valores espetrais de uma representação de domínio de frequência de tempo de um conteúdo de áudio codificado no domínio de frequência e para a provisão de uma representação de domínio de frequência de tempo de um sinal de estímulo para um filtro de previsão linear adaptado para descodificar um sinal de fala descodificado no domínio de previsão linear. Assim, o descodificador aritmético é bem adequado para uso num descodificador de áudio que é capaz de administrar tanto o conteúdo de áudio codificado por domínio de frequência quanto o conteúdo de áudio codificado por domínio de frequência de previsão linear (modo de domínio de previsão linear de excitação codificada de transformada).
6.3. INICIALIZAÇÃO DE CONTEXTO, DE ACORDO COM AS FIGURAS 5A
E 5B A seguir, a inicialização de contexto (também designada como um "mapeamento de contexto"), que é realizada numa etapa 310, será descrita. A inicialização de contexto compreende um mapeamento entre um contexto anterior e um contexto atual, de acordo com o algoritmo "arith_map_ contextO", que é apresentado na Figura 5a. Como pode ser visto, o contexto atual é armazenado numa variável global q[2] [n_context] que toma forma de um arranjo tendo uma primeira dimensão de dois e uma segunda dimensão de n context. Um contexto anterior é um armazenado numa variável qs [n context], que toma a forma de uma tabela tendo uma dimensão de n context. A variável "previous_lg" descreve um número de valores espetrais de um contexto anterior. A variável "lg" descreve um número de coeficientes espetrais para descodificar no quadro. A variável "previous_lg" descreve um número anterior de linhas espetrais de um quadro anterior.
Um mapeamento do contexto pode ser realizado de acordo com o algoritmo "arith map contextO". Deve ser observado aqui que a função "arith_map_context()" ajusta as entradas q [ 0] [i] do arranjo de contexto atual q aos valores qs[i] do arranjo de contexto anterior qs, se o número de valores espetrais associado ao quadro de áudio atual (por exemplo, codificada por domínio de frequência) for idêntico ao número de valores espetrais associado ao quadro anterior de áudio para i=0 a i=lg-l.
No entanto, um mapeamento mais complicado é realizado se o número de valores espetrais associado ao quadro de áudio atual for diferente do número de valores espetrais associado ao quadro anterior de áudio. No entanto, detalhes em relação ao mapeamento, nesse caso, não são particularmente relevantes para a ideia principal da presente invenção, de modo que é feita referência ao código de pseudo-programa da Figura 5a para mais detalhes.
6.4 COMPUTAÇÃO DO VALOR DE ESTADO, DE ACORDO COM AS FIGURAS 5B E 5C A seguir, a computação do valor de estado 312a será descrita em mais detalhes.
Deve ser observado que o primeiro valor de estado s (conforme apresentado na Figura 3) pode ser obtido como um valor de retorno da função "arith_get_context(i, lg, arith_reset_flag, N/2)", uma representação de código de pseudo-programa que é apresentada nas Figuras 5b e 5c.
Em relação à computação do valor de estado, é feita referência à Figura 4, que apresenta o contexto utilizado para uma avaliação de estado. A Figura 4 apresenta uma representação bidimensional de valores espetrais, tanto ao longo do tempo como de frequência. Uma abcissa 410 descreve o tempo, e uma ordenada 412 descreve a frequência. Como pode ser visto na Figura 4, um valor espetral 420 para descodificar, é associado a um índice de tempo tO e um índice de frequência i. Como pode ser visto, para o índice de tempo tO, os tuplos tendo índices de frequência i-1, i-2 e i-3 já são descodificados no momento em que o valor espetral 420 tendo o indice de frequência i deve ser descodificado. Como pode ser visto da Figura 4, um valor espetral 430 tendo um indice de tempo tO e um indice de frequência i-1 já é descodificado antes de o valor espetral 420 ser descodificado, e o valor espetral 430 é considerado para o contexto que é utilizado para a descodificação do valor espetral 420. Semelhantemente, um valor espetral 434 tendo um indice de tempo tO e um indice de frequência i-2, já é descodificado antes de o valor espetral 420 ser descodificado, e o valor espetral 434 é considerado para o contexto que é utilizado para descodificar o valor espetral 420. Semelhantemente, um valor espetral 440 tendo um indice de tempo t-1 e um indice de frequência de i-2, um valor espetral 444 tendo um indice de tempo t-1 e um indice de frequência i-1, um valor espetral 448 tendo um indice de tempo t-1 e um indice de frequência i, um valor espetral 452 tendo um indice de tempo t-1 e um indice de frequência i + 1 e um valor espetral 456 tendo um indice de tempo t-1 e um indice de frequência i+2, já são descodificados antes de o valor espetral 420 ser descodificado, e são considerados para a determinação do contexto, que é utilizado para descodificar o valor espetral 420. Os valores espetrais (coeficientes) já descodificados no momento em que o valor espetral 420 é descodificado e considerados para o contexto são apresentados por quadrados sombreados. Ao contrário, alguns outros valores espetrais já descodificados (no momento em que o valor espetral 420 é descodificado), que são representados por quadrados tendo linhas tracejadas, e outros valores espetrais, que ainda não são descodificados (no momento em que o valor espetral 420 é descodificado) e que são apresentados por circulos tendo linhas tracejadas, não são utilizados para determinar o contexto para descodificar o valor espetral 420.
No entanto, deve ser observado que alguns desses valores espetrais, que não são utilizados para a computação "regular" (ou "normal") do contexto para descodificar o valor espetral 420 podem, todavia, ser avaliados para uma deteção de uma pluralidade de valores espetrais adjacentes previamente descodificados que atende, individualmente ou considerada juntamente, à condição predeterminada em relação às suas magnitudes.
Tendo como referência agora às Figuras 5b e 5c, que apresentam a funcionalidade da função "arith_get contextO" na forma de um código de pseudo-programa, alguns detalhes a mais em relação ao cálculo do primeiro valor de contexto "s", que é realizado pela função "arith_get_context()", serão descritos.
Deve ser observado que a função "arith get contextO" recebe, como variáveis de entrada, um índice i do valor espetral para descodificar. O índice i é tipicamente um índice de frequência. Uma variável de entrada lg descreve um número (total) de coeficientes quantificados esperados (para um quadro de áudio atual) . Uma variável N descreve um número de linhas da transformada. Um sinalizador "arith_reset_flag" indica se o contexto deve ser reajustado. A função "arith get context" provê, como um valor de saída, uma variável „t", que representa um índice de estado concatenado s e um nível de plano de bits previsto levO . A função "arith get_context()" utiliza variáveis inteiras aO, cO, cl, c2, c3, c4, c5, c6, levO, e "região". A função "arith_get_context()" compreende como blocos funcionais principais, um primeiro processamento de reajuste aritmético 510, uma deteção 512 de um grupo de uma pluralidade de valores espetrais zero adjacentes previamente descodificados, um primeira configuração de variável 514, uma segunda configuração de variável 516, uma adaptação de nível 518, uma configuração de valor de região 520, uma adaptação de nível 522, uma limitação de nível 524, um processamento de reajuste aritmético 526, uma terceira configuração de variável 528, uma quarta configuração de variável 530, uma quinta configuração de variável 532, uma adaptação de nivel 534 e uma computação de valor de retorno seletiva 536.
No primeiro processamento de reajuste aritmético 510, é verificado se a sinalização de reajuste aritmético "arith reset_flag" está ajustada, enquanto o indice do valor espetral para descodificar é igual a zero. Nesse caso, um valor de contexto de zero é retornado e a função é abortada.
Na deteção 512 de um grupo de uma pluralidade de valores espetrais zero previamente descodificados, que é somente realizada se a sinalização de reajuste aritmético estiver inativa e o indice i do valor espetral para descodificar for diferente de zero, uma variável chamada "sinalização" é inicializada em 1, conforme apresentado no número de referência 512a, e uma região de valor espetral que deve ser avaliada é determinada, conforme apresentado no número de referência 512b. Subsequentemente, a região de valores espetrais, que é determinada conforme apresentado no número de referência 512b, é avaliada, conforme apresentado no número de referência 512c. Se for descoberto que há uma região suficiente de valores espetrais zero previamente descodificados, um valor de contexto de 1 é retornado, conforme apresentado no número de referência 512d. Por exemplo, um limite de indice de frequência superior "lim max" é ajustado a i + 6, a menos que o indice i do valor espetral a ser descodificado esteja próximo a um indice de frequência máximo lg-1, em cujo caso uma configuração especial do limite de índice de frequência superior é feita, conforme apresentado no número de referência 512b. Para além disso, um limite de índice de frequência inferior "lim_min" é ajustado a -5, a menos que o índice i do valor espetral para descodificar esteja próximo a zero (i + lim_min<0), em cujo caso uma computação especial do limite de índice de frequência inferior lim_min é realizada, conforme apresentado no número de referência 512b. Ao avaliar a região de valores espetrais determinada na etapa 512b, uma avaliação é primeiro realizada para indices de frequência negativos k entre o limite de indice de frequência inferior lim min e zero. Para indices de frequência k entre lim__min e zero, é verificado se pelo menos um dos valores de contexto q [ 0 ] [k] .c e q [ 1 ] [k] .c é igual a zero. Se, no entanto, ambos os valores de contexto q [ 0 ] [k] .c e q [ 1 ] [k] .c forem diferentes de zero para quaisquer indices de frequência k entre lim_min e zero, conclui-se que não há grupo de valores espetrais zero suficientes e a avaliação 512c é abortada. Subsequentemente, valores de contexto q[0] [k].c para indices de frequência entre zero e lim_max são avaliados. Se for descoberto que qualquer um dos valores de contexto q [ 0 ] [k].c para qualquer um dos indices de frequência entre zero e lim_max é diferente de zero, conclui-se que não há grupo de valores espetrais zero previamente descodificados suficiente, e a avaliação 512c é abortada. Se, no entanto, descobriu-se que para todos os indices de frequência k entre lim min e zero, há pelo menos um valor de contexto q [ 0 ] [k] .c ou q [ 1 ] [k] .c que é igual a zero e se houver um valor de contexto zero q [ 0 ] [k].c para cada indice de frequência k entre zero e lim_max, conclui-se que há um grupo de valores espetrais zero previamente descodificados suficiente. Da mesma forma, um valor de contexto de 1 é retornado nesse caso para indicar essa condição, sem qualquer cálculo adicional. Por outras palavras, os cálculos 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536 são pulados, se um grupo de uma pluralidade de valores de contexto suficiente q[0 ] [k].c, q [ 1 ] [k] .c tendo um valor de zero for identificado. Por outras palavras, o valor de contexto retornado, que descreve o estado de contexto (s), é determinado independente dos valores espetrais previamente descodificados em resposta da deteção que a condição predeterminada é atendida.
De outra forma, isto é, se não houver grupo de valores de contexto suficiente [q][0][k].c, [q][1][k].c, que são zero, pelo menos algumas das computações 514, 516, 518, 520, 522, 524,526, 528, 530, 532, 534, 536 são executadas.
Se a primeira configuração de variável 514, que é executada seletivamente se (e somente se) o indice i do valor espetral a ser descodificado for menor que 1, a variável ao é inicializada para obter o valor de contexto q [ 1 ] [i — 1 ] , e a variável cO é inicializada para obter o valor absoluto da variável aO. A variável „lev0" é inicializada para obter o valor zero. Subsequentemente, as variáveis „lev0" e cO são aumentadas se a variável aO compreender um valor absoluto comparativamente grande, isto é, for menor que -4 ou maior ou igual a 4. O aumento das variáveis „lev0" e cO é realizado iterativamente, até que o valor da variável aO seja trazido a uma variação entre -4 e 3 por uma operação de troca para a direita (etapa 514b).
Subsequentemente, as variáveis cO e „lev0" são limitadas a valores máximos de 7 e 3, respetivamente (etapa 514c).
Se o indice i do valor espetral a ser descodificado for igual a 1 e a sinalização de reajuste aritmético ("arith_reset_flag") estiver ativa, um valor de contexto é retornado, que é computado meramente com base nas variáveis cO e levO (etapa 514d). Da mesma forma, somente um único valor espetral previamente descodificado tendo o mesmo indice de tempo que o valor espetral para descodificar e tendo um indice de frequência que é menor, em 1, que o indice de frequência i do valor espetral a ser descodificado é considerado para a computação de contexto (etapa 514d). De outra forma, isto é, se não houver funcionalidade de reajuste aritmético, a variável c4 é inicializada (etapa 514e).
Para concluir, na primeira configuração de variável 514, as variáveis cO e „lev0" são inicializadas em função de um valor espetral previamente descodificado, descodificado para o mesmo quadro que o valor espetral a ser atualmente descodificado e para uma caixa espetral anterior i-1. A variável c4 é inicializada em função de um valor espetral previamente descodificado, descodificado para um quadro anterior de áudio (tendo indice de tempo t-1) e tendo uma frequência que é menor (por exemplo, por uma caixa de frequência) que a frequência associada ao valor espetral a ser atualmente descodificado. A segunda configuração de variável 516 que é executada seletivamente se (e somente se) o índice de frequência do valor espetral a ser atualmente descodificado for maior que 1, compreende uma inicialização das variáveis cl e c6 e uma atualização da variável levO. A variável cl é atualizada em função de um valor de contexto q [ 1 ] [i-2].c associado a um valor espetral previamente descodificado do quadro de áudio atual, uma frequência que é menor (por exemplo, por duas caixas de frequência) que uma frequência de um valor espetral a ser descodificado atualmente. Semelhantemente, a variável c6 é inicializada em função de um valor de contexto q [ 0 ] [i-2].c, que descreve um valor espetral previamente descodificado de um quadro anterior (tendo índice de tempo t-1), uma frequência associada que é menor que (por exemplo, por duas caixas de frequência) que uma frequência associada ao valor espetral a ser descodificado atualmente. Além disso, a variável de nível „levO" é ajustada a um valor de nível q [ 1 ] [i — 2 ] .1 associado a um valor espetral previamente descodificado do quadro atual, uma frequência associada que é menor (por exemplo, por duas caixas de frequência) que uma frequência associada ao valor espetral a ser descodificado atualmente, se q[1] [i — 2] .1 for maior que levO. A adaptação de nível 518 e a configuração de valor de região 520 são seletivamente executadas, se (e somente se) o índice i do valor espetral a ser descodificado for maior que 2. Na adaptação de nível 518, a variável de nível „lev0" é aumentada a um valor de q[l] [ i — 3 ] .1, se o valor de nível q [ 1 ] [ i — 3 ] .1 que é associado a um valor espetral previamente descodificado do quadro atual, uma frequência associada que é menor (por exemplo, por três caixas de frequência) que a frequência associada ao valor espetral a ser descodificado atualmente, for maior que o valor de nível levO.
Na configuração de valor de região 520, uma variável de "região" é ajustada em função de uma avaliação, na qual a região espetral, fora de uma pluralidade de regiões espetrais, o valor espetral a ser descodificado atualmente é disposto. Por exemplo, se for descoberto que o valor espetral a ser atualmente descodificado é associado a uma caixa de frequência (tendo o índice de caixa de frequência i) que está no primeiro (o menor) quarto das caixas de frequência (0 ^ i < N/4), a variação de "região" da região é ajustada a zero. De outra forma, se o valor espetral a ser descodificado atualmente for associado a uma caixa de frequência que está num segundo quarto das caixas de frequência associadas ao quadro atual (N/4 < i < N/2), a região variável é ajustada a um valor 1. De outra forma, isto é, se o valor espetral a ser descodificado atualmente for associado a uma caixa de frequência que está na segunda (superior) metade das caixas de frequência (N/2 < i < N), a região variável é ajustada a 2. Assim, a região variável é ajustada em função de uma avaliação à qual a região de frequência do valor espetral a ser descodificado atualmente está associada. Duas ou mais regiões de frequência podem ser diferenciadas.
Uma adaptação de nível adicional 522 é executada se (e somente se) o valor espetral a ser descodificado atualmente compreender um índice espetral que é maior que 3. Nesse caso, a variável de nível „lev0" é aumentada (ajustada ao valor q [ 1 ] [i-4 ] . 1) , se o valor de nível q[i][i-4].l, que é associado a um valor espetral previamente descodificado do quadro atual, que é associada a uma frequência que é menor, por exemplo, por quatro caixas de frequência, que uma frequência associada ao valor espetral a ser descodificado atualmente for maior que o nivel atual „levO" (etapa 522) . A variável de nivel „levO" se limita ao valor máximo de 3 (etapa 524).
Se uma condição de reajuste aritmético for detetada e o índice i do valor espetral a ser descodificado atualmente for maior que 1, o valor de estado é retornado em função das variáveis cO, cl, levO, assim como em função da variável de "região" da região (etapa 526). Da mesma forma, os valores espetrais previamente descodificados de quaisquer quadros anteriores são deixados fora de consideração se uma condição de reajuste aritmético for determinada.
Na terceira configuração de variável 528, a variável c2 é ajustada ao valor de contexto q[0] [i].c, que é associado a um valor espetral previamente descodificado do quadro anterior de áudio (tendo índice de tempo t-1), esse valor espetral previamente descodificado é associado à mesma frequência que o valor espetral a ser descodificado atualmente.
Na quarta configuração de variável 530, a variável c3 é ajustada ao valor de contexto q[0][i+l].c, que é associado a um valor espetral previamente descodificado do quadro anterior de áudio tendo um índice de frequência i + 1, a menos que o valor espetral a ser descodificado atualmente estiver associado ao maior índice de frequência possível lg-1.
Na quinta configuração de variável 532, a variável c5 é ajustada ao valor de contexto q[0] [i+2].c, que é associado a um valor espetral previamente descodificado do quadro anterior de áudio tendo índice de frequência i + 2, a menos que o índice de frequência i do valor espetral a ser descodificado atualmente estiver bem próximo ao valor índice de frequência máximo (isto é, tiver o valor de índice de frequência lg-2 ou lg-1).
Uma adaptação adicional da variável de nivel ,,levO" é realizada se o indice de frequência i for igual a zero (isto é, se o valor espetral a ser descodificado atualmente for o mais baixo valor espetral) . Nesse caso, a variável de nivel ,,levO" é aumentada de zero para 1, se a variável c2 ou c3 tiver um valor de 3, o que indica que um valor espetral previamente descodificado de um quadro anterior de áudio, que é associada à mesma frequência ou mesmo a uma frequência maior, quando comparada à frequência associada ao valor espetral a ser codificado atualmente, tem um valor comparativamente maior.
Na computação de valor de retorno seletiva 536, o valor de retorno é computado em função de se o indice i dos valores espetrais a ser descodificado atualmente tem o valor zero, 1 ou um valor maior. 0 valor de retorno é computado em função da variáveis c2, c3, c5 e levO, conforme indicado no número de referência 536a, se o indice i tiver o valor zero. 0 valor de retorno é computado em função das variáveis cO, c2, c3, c4, c5, e „levO", conforme apresentado no número de referência 536b, se o indice i tiver o valor 1. 0 valor de retorno é computado em função da variável cO, c2, c3, c4, cl, c5, c6, "região" e levO, se o indice i tiver um valor que é diferente de zero ou 1 (número de referência 536c).
Para resumir o mencionado acima, o valor de computação de contexto "arith_get_context() " compreende uma deteção 512 de um grupo de uma pluralidade de valores espetrais zero previamente descodificados (ou pelo menos, valores espetrais suficientemente pequenos). Se um grupo de valores espetrais zero previamente descodificados suficiente for encontrado, a presença de um contexto especial é indicada ao ajustar o valor de retorno a 1. De outra forma, o valor de computação de contexto é realizado. Pode ser geralmente referido que no valor de computação de contexto, o valor de indice i é avaliado a fim de decidir quantos valores espetrais previamente descodificados devem ser avaliados. Por exemplo, um número de valores espetrais previamente descodificados avaliados é reduzido se um indice de frequência i do valor espetral a ser descodificado atualmente estiver próximo a um limite inferior (por exemplo, zero) ou próximo a um limite superior (por exemplo, lg-1). Além disso, mesmo se o indice de frequência i do valor espetral a ser descodificado atualmente estiver suficientemente longe de um valor minimo, diferentes regiões espetrais são diferenciadas pela configuração de valor de região 520. Da mesma forma, diferentes propriedades estatísticas de diferentes regiões espetrais (por exemplo, a primeira região de frequência espetral baixa, segunda região de frequência espetral média e terceira região de frequência espetral alta) são consideradas. O valor de contexto, que é calculado com um valor de retorno, é dependente da variável de "região", de modo que o valor de contexto retornado dependa se um valor espetral a ser descodificado atualmente está numa primeira região de frequência predeterminada ou numa segunda região de frequência predeterminada (ou em qualquer outra região de frequência predeterminada).
6.5 SELEÇÃO DA REGRA DE MAPEAMENTO A seguir, a seleção de uma regra de mapeamento, por exemplo, uma tabela de frequências cumulativas, que descreve um mapeamento de um valor de código num código de símbolo, será descrita. A seleção da regra de mapeamento é feita em função do estado de contexto, que é descrito pelo valor de estado s ou t.
6.5.1 SELEÇÃO DA REGRA DE MAPEAMENTO UTILIZANDO O ALGORITMO, DE ACORDO COM A FIGURA 5D A seguir, a seleção de uma regra de mapeamento utilizando a função "get_pk", de acordo com a Figura 5d, será descrita. Deve ser observado que a função "get_pk" pode ser realizada para obter o valor de "pki" no sub-algoritmo 312ba do algoritmo da Figura 3. Assim, a função "get_pk" pode tomar o lugar da função "arith_get_pk" no algoritmo da Figura 3.
Também deve ser observado que uma função "get_pk", de acordo com a Figura 5d, pode avaliar a tabela "ari_s_hash[387]", de acordo com as Figuras 17(1) e 17(2), e uma tabela "ari_gs_hash"[225], de acordo com a Figura 18. A função „get_pk" recebe, como uma variável de entrada, um valor de estado s, que pode ser obtido por uma combinação da variável „t", de acordo com a Figura 3 e as variáveis "lev", „levO", de acordo com a Figura 3. A função „get_pk" também é configurada para retornar, como um valor de retorno, um valor de uma variável "pki", que designa uma regra de mapeamento ou uma tabela de frequências cumulativas. A função „get_pk" é configurada para mapear o valor de estado s num valor indice de regra de mapeamento "pki". A função „get_pk" compreende uma primeira avaliação de tabela 540 e uma segunda avaliação de tabela 544. A primeira avaliação de tabela 540 compreende uma inicialização de variável 541 na qual as variáveis i_min, i_max, e i são inicializadas, conforme apresentado no número de referência 541. A primeira avaliação de tabela 540 também compreende uma busca de tabela iterativa 542, no curso da qual uma determinação é feita em relação a saber se há uma entrada da tabela "ari_s_hash" que corresponda ao valor de estado s. Se essa correspondência for identificada durante a busca de tabela iterativa 542, a função get_pk é abortada, em que um valor de retorno da função é determinado pela entrada da tabela "ari_s_hash" que corresponde ao valor de estado s, conforme será explicado em mais detalhes. Se, No entanto, não for encontrada a correspondência perfeita entre o valor de estado s e uma entrada da tabela "ari_s_hash" durante o curso da busca de tabela iterativa 542, uma verificação de entrada limite 543 é realizada.
Retornando agora aos detalhes da primeira avaliação de tabela 540, pode ser visto que um intervalo de busca é definido pelas variáveis i_min e i_max. A busca de tabela iterativa 542 é repetida, contando que o intervalo definido pelas variáveis i_min e i_max seja suficientemente amplo, que pode ser verdadeira se a condição i_max-i_min > 1 for atendida. Subsequentemente, a variável i é ajustada, pelo menos aproximadamente, para designar o meio do intervalo (i=i_min+(i_max-i_min)/2). Subsequentemente, uma variável j é ajustada a um valor que é determinado pelo arranjo "ari_s_hash" numa posição de arranjo designada pela variável i (número de referência 542) . Deve ser observado aqui que cada entrada da tabela "ari_s_hash" descreve tanto um valor de estado, que é associado à entrada da tabela, como um valor indice de regra de mapeamento, que é associado à entrada da tabela. O valor de estado, que é associado à entrada da tabela, é descrito pelos bits mais significativos (bits 8 a 31) da entrada da tabela, enquanto os valores indice da regra de mapeamento são descritos pelos bits menores (por exemplo, bits 0 a 7) da referida entrada da tabela. O limite inferior i_min ou o limite superior i_max são adaptados em função de se o valor de estado s é menor que um valor de estado descrito pelos 24 bits mais significativos da entrada "ari_s_hash[i]" da tabela "ari_s_hash" mencionada pela variável i. Por exemplo, se o valor de estado s for menor que o valor de estado descrito pelos 24 bits mais significativos da entrada "ari_s_hash[i]", o limite superior i_max do intervalo da tabela é ajustado ao valor i. Da mesma forma, o intervalo da tabela para a próxima iteração da busca de tabela iterativa 542 é restrita à metade inferior do intervalo da tabela (de i_min a i_max) utilizado para a atual iteração da busca de tabela iterativa 542. Se, ao contrário, o valor de estado s for maior que os valores de estado descritos pelos 24 bits mais significativos da entrada da tabela "ari_s_hash[i]", então, o limite inferior i_min do intervalo da tabela para a próxima iteração da busca de tabela iterativa 542 é ajustado ao valor i, de modo que a metade superior do intervalo da tabela atual (entre i min e i_max) seja utilizada como o intervalo da tabela para a próxima busca de tabela iterativa. Se, no entanto, for descoberto que o valor de estado s é idêntico ao valor de estado descrito pelos 24 bits mais significativos da entrada da tabela "ari_s_hash[i]", o valor indice de regra de mapeamento descrito pelos 8 bits menos significativos da entrada da tabela "ari_s_hash[i]" é retornado pela função "get_pk" e a função é abortada. A busca de tabela iterativa 542 é repetida até que o intervalo da tabela definido pelas variáveis i_min e i_max seja suficientemente pequeno. A verificação de entrada limite 543 é (opcionalmente) executada para suplementar a busca de tabela iterativa 542. Se o indice variável i for igual à variável de indice i_max após a conclusão da busca de tabela iterativa 542, é feita uma verificação final se o valor de estado s é igual a um valor de estado descrito pelos 24 bits mais significativos de uma entrada da tabela "ari_s_hash[i_min]", e um valor indice de regra de mapeamento descrito pelos 8 bits menos significativos da entrada "ari_s_hash[i_min]" é retornado, nesse caso, como um resultado da função "get_pk". Ao contrário, se o indice variável i for diferente do indice variável i_max, então uma verificação é realizada quanto a saber se um valor de estado s é igual a um valor de estado descrito pelos 24 bits mais significativos da entrada da tabela "ari_s_hash[i_max]", e um valor indice de regra de mapeamento descrito pelos 8 bits menos significativos da referida entrada da tabela "ari_s_hash[i_max]" é retornado como um valor de retorno da função "get_pk" nesse caso.
No entanto, deve ser observado que a verificação de entrada limite 543 pode ser considerada opcional em sua integridade.
Subsequente à primeira avaliação de tabela 540, a segunda avaliação de tabela 544 é realizada, a menos que um "atingimento direto" tenha ocorrido durante a primeira avaliação de tabela 540, em que o valor de estado s é idêntico a um dos valores de estado descritos pelas entradas da tabela "ari_s_hash" (ou, mais precisamente, pelos seus 24 bits mais significativos). A segunda avaliação de tabela 544 compreende uma inicialização de variável 545, na qual as variáveis de índice i_min, i e i_max são inicializados, conforme apresentado no número de referência 545. A segunda avaliação de tabela 544 também compreende uma busca de tabela iterativa 546, no curso da qual a tabela "ari_gs_hash" é pesquisada em relação a uma entrada que represente um valor de estado idêntico ao valor de estado s. Por fim, a segunda busca de tabela 544 compreende uma determinação de valor de retorno 547. A busca de tabela iterativa 546 é repetida, contanto que o intervalo da tabela definido pelas variáveis de índice i_min e i_max seja amplo o suficiente (por exemplo, contando que i_max -i_min > 1) . Na iteração da busca de tabela iterativa 546, a variável i é ajustada ao centro do intervalo da tabela definido por i_min e i_max (etapa 546a). Subsequentemente, uma entrada j da tabela "ari_gs_hash" é obtida numa localização da tabela determinada pelo índice variável i (546b). Por outras palavras, a entrada da tabela "ari_gs_hash[i]" é uma entrada da tabela no centro do intervalo da tabela atual definido pelos índices da tabela i_min e i_max. Subsequentemente, o intervalo da tabela para a próxima iteração da busca de tabela iterativa 546 é determinado. Para esse fim, o valor de índice i_max que descreve o limite superior do intervalo da tabela é ajustado ao valor i, se o valor de estado s for menor que um valor de estado descrito pelos 24 bits mais significativos da entrada da tabela "j=ari_gs_hash[i]" (546c). Por outras palavras, a metade inferior do intervalo atual da tabela é selecionada como um novo intervalo da tabela para a próxima iteração da busca de tabela iterativa 546 (etapa 546c). De outra forma, se o valor de estado s for maior que um valor de estado descrito pelos 24 bits mais significativos da entrada da tabela "j=ari_gs_hash[i]", o valor de índice i_min é ajustado ao valor i. Da mesma forma, a metade superior do intervalo atual da tabela é selecionada como um novo intervalo da tabela para a próxima iteração da busca de tabela iterativa 546 (etapa 546d). Se, No entanto, for descoberto que o valor de estado s é idêntico a um valor de estado descrito pelos 24 bits mais elevados da entrada da tabela "j=ari_gs_hash[i]", o índice variável i_max é ajustado ao valor i+1 ou ao valor 224 (se i+1 for maior que 224), e a busca de tabela iterativa 546 é abortada. No entanto, se o valor de estado s for diferente do valor de estado descrito pelos 24 bits mais significativos de "j=ari_gs_hash[i]", a busca de tabela iterativa 546 é repetida com o intervalo da tabela recentemente ajustado definido pelos valores índice atualizados i_min e i_max, a menos que o intervalo da tabela seja bem pequeno (i_max - i_min < 1). Assim, o tamanho do intervalo do intervalo da tabela (definido por i_min e i_max ) é iterativamente reduzido até um "atingimento direto" ser detetado (s==(j >>8)) ou o intervalo alcançar um tamanho permitido mínimo (i_max - i_min < 1) . Por fim, após um aborto da busca de tabela iterativa 546, uma entrada da tabela "j=ari_gs_hash[i_max]" é determinada e um valor índice de regra de mapeamento, que é descrito pelos 8 bits menos significativos da referida entrada da tabela "j=ari_gs_hash[i_max]", é retornado ao valor de retorno da função "get_pk". Da mesma forma, o valor índice de regra de mapeamento é determinado em função do limite superior i_max do intervalo da tabela (definido por i_min e i_max) após a conclusão ou aborto da busca de tabela iterativa 546.
As avaliações de tabela descritas acima 540, 544, ambas usam a busca de tabela iterativa 542, 546, permitem o exame das tabelas "ari_s_hash" e "ari_gs_hash" em relação à presença de um determinado estado significativo com eficiência computacional muito alta. Em particular, um número de operações de acesso de tabela pode ser mantido razoavelmente pequeno, mesmo no pior caso. Descobriu-se que um ordenamento numérico das tabelas "ari_s_hash" e "ari_gs_hash" permite a aceleração da busca para um valor de dispersão adequado. Além disso, um tamanho de tabela pode ser mantido pequeno, uma vez que a inclusão de simbolos de escape nas tabelas "ari_s_hash" e "ari_gs_hash" não é necessário. Assim, um mecanismo de dispersão de contexto eficiente é estabelecido mesmo se houver um amplo número de diferentes estados: num primeiro estágio (primeira avaliação de tabela 540), uma busca por um atingimento direto é conduzida (s— (j»8) ) .
No segundo estágio (segunda avaliação de tabela 544), variações do valor de estado s podem ser mapeadas em valores indice da regra de mapeamento. Assim, uma administração bem balanceada dos estados particularmente significativos, para a qual há uma entrada associada na tabela "ari_s_hash", e estados menos significativos, para os quais há uma administração com base na variação, pode ser realizada. Da mesma forma, a função "get pk" constitui uma implementação eficiente de uma seleção de regra de mapeamento.
Para quaisquer detalhes adicionais, é feita referência ao código de pseudo-programa da Figura 5d, que representa a funcionalidade da função "get_pk" numa representação, de acordo com a linguagem de programação C bem conhecida.
6.5.2 SELEÇÃO DE REGRA DE MAPEAMENTO UTILIZANDO O ALGORITMO, DE ACORDO COM A FIGURA 5E A seguir, outro algoritmo para uma seleção da regra de mapeamento será descrito tendo como referência a Figura 5e. Deve ser observado que o algoritmo "arith_get_pk", de acordo com a Figura 5e, recebe, como uma variável de entrada, um valor de estado s que descreve um estado do contexto. A função "arith_get_pk" provê, como um valor de saída ou valor de retorno, um índice "pki" de um modelo de probabilidade, que pode ser um índice para a seleção de uma regra de mapeamento, (por exemplo, uma tabela de frequências cumulativas).
Deve ser observado que a função „arith_get_pk", de acordo com a Figura 5e, pode tomar a funcionalidade da função "arith get pk" da função "value_decode" da Figura 3.
Também deve ser observado que a função "arith_get_pk" pode, por exemplo, avaliar a tabela ari_s_hash, de acordo com a Figura 20, e a tabela ari_gs_hash, de acordo com a Figura 18. A função "arith_get_pk", de acordo com a Figura 5e, compreende uma primeira avaliação de tabela 550 e uma segunda avaliação de tabela 560. Na primeira avaliação de tabela 550, um varrimento linear é feito na tabela ari_s_hash, para obter uma entrada j=ari_s_hash[i] da referida tabela. Se um valor de estado descrito pelos 24 bits mais significativos de uma entrada da tabela j=ari_s_hash[i] da tabela ari_s_hash for igual ao valor de estado s, um valor índice de regra de mapeamento „pki" descrito pelos 8 bits menos significativos da referida entrada da tabela identificada j=ari_s_hash [ i] é retornado e a função "arith get_pk" é abortada. Da mesma forma, todas as 387 entradas da tabela ari_s_hash são avaliadas numa sequência ascendente a menos que um "atingimento direto" (valor de estado s igual ao valor de estado descrito pelos 24 bits mais significativos de uma entrada da tabela j) seja identificado.
Se um atingimento direto não for identificado dentro da primeira avaliação de tabela 550, uma segunda avaliação de tabela 560 é executada. No curso da segunda avaliação de tabela, um varrimento linear com índices de entrada i que aumentam linearmente de zero a um valor máximo de 224 é realizado.
Durante a segunda avaliação de tabela, uma entrada "ari_gs_hash[i] " da tabela "ari_gs_hash" para a tabela i é lida, e a entrada da tabela "j=ari_gs_hash[i] " é avaliada de modo que seja determinado se o valor de estado representado pelos 24 bits mais significativos da entrada da tabela j é maior que o valor de estado s. Se esse for o caso, um valor indice de regra de mapeamento descrito pelos 8 bits menos significativos da referida entrada da tabela j é retornado como o valor de retorno da função "arith_get_pk", e a execução da função "arith_get_pk" é abortada. Se, no entanto, o valor de estado s não for menor que o valor de estado descrito pelos 24 bits mais significativos da entrada da tabela atual j=ari_gs_hash[i], o varrimento em todas as entradas da tabela ari_gs_hash é continuado ao aumentar o indice de tabela i. Se, no entanto, o valor de estado s for maior ou igual a qualquer um dos valores de estado descritos pelas entradas da tabela ari_gs_hash, um valor indice de regra de mapeamento „pki" definido pelos 8 bits menos significativos da última entrada da tabela ari_gs_hash é retornado como o valor de retorno da função "arith_get_pk".
Para resumir, a função "arith_get_pk", de acordo com a Figura 5e, realiza uma dispersão de duas etapas, numa primeira etapa, uma busca de um atingimento direto é realizada, em que é determinado se o valor de estado s é igual ao valor de estado definido por qualquer uma das de uma primeira tabela "ari_s_hash". Se um atingimento direto for identificado na primeira avaliação de tabela 550, um valor de retorno é obtido da primeira tabela "ari_s_hash" e a função "arith_get_pk" é abortada. Se; No entanto, nenhum atingimento direto for identificado na primeira avaliação de tabela 550, a segunda avaliação de tabela 560 é realizada. Na segunda avaliação de tabela, uma avaliação com base na variação é realizada. As entradas subsequentes da segunda tabela "ari_gs_hash" define as variações. Se for descoberto que o valor de estado s existe dentro dessa variação (que é indicado pelo fato de que o valor de estado descrito pelos 24 bits mais significativos da entrada da tabela atual "j=ari_gs_hash[i]" é maior que o valor de estado s) , o valor indice de regra de mapeamento "pki" descrito pelos 8 bits menos significativos da entrada da tabela j=ari_gs_hash[i] é devolvido.
6.5.3 SELEÇÃO DA REGRA DE MAPEAMENTO UTILIZANDO O ALGORITMO, DE ACORDO COM A FIGURA 5F A função "get_pk", de acordo com a Figura 5f, é substancialmente equivalente à função "arith_get_pk", de acordo com a Figura 5e. Da mesma forma, é feita referência à discussão acima. Para detalhes adicionais, é feita referência à representação de pseudo-programa na Figura 5f.
Deve ser observado que a função „get_pk", de acordo com a Figura 5f, pode tomar o lugar da função "arith_get_pk" chamada na função "value_decode" da Figura 3.
6.6. FUNÇÃO "ARITH_DECODED", DE ACORDO COM A FIGURA 5G A seguir, a funcionalidade da função "arith_decode()" será discutida em detalhes tendo como referência a Figura 5g. Deve ser observado que a função "arith_decode()" utiliza a função auxiliadora "arith_first_symbol (void)", que retorna VERDADEIRO, se for o primeiro simbolo da sequência e FALSO, de outra forma. A função "arith_decode()" também utiliza a função auxiliadora "arith_get_next_bit(void)", que obtém e provê o próximo bit do fluxo de bits.
Além disso, a função "arith_decode()" utiliza as variáveis globais "low", "high" e "value". Ainda, a função "arith decode()" recebe, como uma variável de entrada, a variável "cum_freq[]", que aponta para uma primeira entrada ou elemento (tendo indice de elemento ou indice de entrada 0) da tabela de frequências cumulativas selecionada. Também, a função "arith decode()" utiliza a variável de entrada "cfl", que indica a extensão da tabela de frequências cumulativas selecionada designada pela variável "cum_freq[]". A função "arith_decode ()" compreende, como uma primeira etapa, uma inicialização de variável 570a, que é realizada se a função auxiliadora "arith_first_symbol()" indicar que um primeiro símbolo da sequência de símbolos está sendo descodificado. A inicialização de valor 550a inicializa a variável "value" em função de uma pluralidade de, por exemplo, 20 bits, que são obtidos do fluxo de bits utilizando a função auxiliadora "arith_get_next_bit", de modo que a variável "value" toma o valor representado pelos referidos bits. Também, a variável "low" é inicializada para tomar o valor de 0 e a variável "high" é inicializada para tomar o valor de 1048575.
Em uma segunda etapa 570b, a variável "range" é ajustada a um valor, que é maior, em 1, que a diferença entre os valores das variáveis "high" e "low". A variável "cum" é ajustada a um valor que representa uma posição relativa do valor da variável "value" entre o valor da variável "low" e o valor da variável "high". Da mesma forma, a variável "cum" toma, por exemplo, um valor entre 0 e 216 em função do valor da variável "value". O apontador p é inicializado a um valor que é menor, em 1, que o endereço de início da tabela de frequências cumulativas selecionada. O algoritmo "arith_decode()" também compreende uma busca de tabela de frequências cumulativas iterativa 570c. A busca de tabela de frequências cumulativas iterativa é repetida até que a variável cfl é menor ou igual a 1. Na busca de tabela de frequências cumulativas iterativa 570c, a variável de apontador q é ajustada a um valor, que é igual à soma do valor atual da variável de apontador p e metade do valor da variável "cfl". Se o valor da entrada *q da tabela de frequências cumulativas selecionada, essa entrada é endereçada pela variável de apontador q, é maior que o valor da variável "cum", a variável de apontador p é ajustada ao valor da variável de apontador q, e a variável "cfl" é incrementada. Por fim, a variável "cfl" é trocada para direita num bit, com isso, dividindo efetivamente o valor da variável "cfl" em 2 e negligenciando a parte do módulo.
Da mesma forma, a busca de tabela de frequências cumulativas iterativa 570c compara efetivamente o valor da variável "cum" a uma pluralidade de entradas da tabela de frequências cumulativas selecionada, a fim de identificar um intervalo dentro da tabela de frequências cumulativas selecionada, que é ligado pelas entradas da tabela de frequências cumulativas, de modo que o valor cum exista dentro do intervalo identificado. Da mesma forma, as entradas da tabela de frequências cumulativas selecionada definem intervalos, em que um valor de símbolo respetivo é associado a cada um dos intervalos da tabela de frequências cumulativas selecionada. Também, as amplitudes dos intervalos entre dois valores adjacentes da tabela de frequências cumulativas definem probabilidades dos símbolos associados aos referidos intervalos, de modo que a tabela de frequências cumulativas selecionada defina em sua integridade a distribuição de probabilidade dos diferentes símbolos (ou valores de símbolo). Detalhes em relação às tabelas de frequências cumulativas disponíveis serão discutidos abaixo tendo como referência a Figura 19.
Tendo como referência novamente a Figura 5g, o valor de símbolo é derivado do valor da variável de apontador p, em que o valor de símbolo é derivado conforme apresentado no número de referência 570d. Assim, a diferença entre o valor da variável de apontador p e o endereço de início "cum_freq" é avaliada a fim de obter o valor de símbolo, que é representado pela variável "symbol". O algoritmo "arith_decode" também compreende uma adaptação 57Oe das variáveis "high" e "low". Se o valor de símbolo representado pela variável "symbol" for diferente da 0, a variável "high" é atualizada, conforme apresentado no número de referência 570e. Também, o valor da variável "low" é atualizado, conforme apresentado no número de referência 57Oe. A variável "high" é ajustada a um valor que é determinado pelo valor da variável "low", a variável "range" e a entrada tendo o índice "symbol -1" da tabela de frequências cumulativas selecionada. A variável "low" é aumentada, em que a magnitude do aumento é determinada pela variável "range" e a entrada da tabela de frequências cumulativas selecionada tendo o índice "symbol". Da mesma forma, a diferença entre os valores das variáveis "low" e "high" é ajustada em função da diferença numérica entre duas entradas adjacentes da tabela de frequências cumulativas selecionada.
Da mesma forma, se um valor de símbolo tendo uma baixa probabilidade for detetado, o intervalo entre os valores das variáveis "low" e "high" é reduzido a uma amplitude estreita. Ao contrário, se o valor de símbolo detetado compreender uma probabilidade relativamente ampla, a amplitude do intervalo entre os valores das variáveis "low" e "high" é ajustada a um valor comparativamente grande. Novamente, a amplitude do intervalo entre os valores da variável "low" e "high" é dependente do símbolo detetado e as entradas correspondentes da tabela de frequências cumulativas. O algoritmo "arith decode()" também compreende uma normalização de intervalo 570f, na qual o intervalo determinado na etapa 570e é iterativamente trocado e escalonado até que a condição de "quebra" seja alcançada. Na normalização de intervalo 570f, uma operação descendente da troca seletiva 570fa é realizada. Se a variável "high" for menor que 524286, nada é feito e a normalização de intervalo continua com uma operação de aumento do tamanho do intervalo 570fb. Se, no entanto, a variável "high" não for menor que 524286 e a variável "low" for maior ou igual a 524286, as variáveis "valores", "low" e "high" são todas reduzidas em 524286, de modo que um intervalo definido pelas variáveis "low" e "high" é trocado para baixo, e de modo que o valor da variável "value" também é trocado para baixo. Se, no entanto, for verificado que o valor da variável "high" não é menor que 524286 e que a variável "low" não é maior ou igual a 524286 e que a variável "low" é maior ou igual a 262143 e que a variável "high" é menor que 786429, as variáveis "value", "low" e "high" são todas reduzidas em 262143, trocando assim para baixo o intervalo entre os valores das variáveis "high" e "low" e também o valor da variável "value". Se, no entanto, nenhuma das condições acima for atendida, a normalização de intervalo é abortada.
Se, no entanto, qualquer uma das condições mencionadas acima, que são avaliadas na etapa 570fa, for atendida, a operação de aumento do intervalo 570fb é executada. Na operação de aumento do intervalo 570fb, o valor da variável "low" é dobrado. Também, o valor da variável "high" é dobrado e o resultado da duplicação é aumentado em 1. Também, o valor da variável "value" é dobrado (trocado para a esquerda num bit) e um bit do fluxo de bits, que é obtido pela função auxiliadora "arith_get_next_bit" é utilizado como o bit menos significativo. Da mesma forma, o tamanho do intervalo entre os valores das variáveis "low" e "high" é aproximadamente dobrado, e a precisão da variável "value" é aumentada ao utilizar um novo bit do fluxo de bits. Conforme mencionado acima, as etapas 570fa e 570fb são repetidas até que a condição de "quebra" seja atingida, isto é, até que o intervalo entre os valores das variáveis "low" e "high" seja grande o suficiente.
Em relação à funcionalidade do algoritmo "arith_decode()", deve ser observado que o intervalo entre os valores das variáveis "low" e "high" é reduzido na etapa 57Oe em função de duas entradas adjacentes da tabela de frequências cumulativas mencionadas pela variável "cum_freq". Se um intervalo entre dois valores adjacentes da tabela de frequências cumulativas selecionada for pequeno, isto é, se os valores adjacentes estiverem comparativamente próximos juntos, o intervalo entre os valores das variáveis "low" e "high", que é obtido na etapa 570e, será comparativamente pequeno. Ao contrário, se duas entradas adjacentes da tabela de frequências cumulativas forem espaçadas adicionalmente, o intervalo entre os valores das variáveis "low" e "high", que é obtido na etapa 570e, será comparativamente grande.
Consequentemente, se o intervalo entre os valores das variáveis "low" e "high", que é obtido na etapa 570e, for comparativamente pequeno, um amplo número de etapas de renormalização de intervalo será executado para re-escalonar o intervalo a um tamanho "suficiente" (de modo que nenhuma das condições da avaliação de condição 570fa seja atendida). Da mesma forma, um número comparativamente grande de bits do fluxo de bits será utilizado a fim de aumentar a precisão da variável "value". Se, ao contrário, o tamanho do intervalo obtido na etapa 570e for comparativamente grande, somente um número menor de repetições das etapas de normalização do intervalo 570fa e 570fb será necessário a fim de normalizar novamente o intervalo entre os valores das variáveis "low" e "high" a um tamanho "suficiente". Da mesma forma, somente um número comparativamente pequeno de bits do fluxo de bits será utilizado para aumentar a precisão da variável "value" e para preparar uma descodificação de um próximo simbolo.
Para resumir o mencionado acima, se um simbolo for descodificado, que compreende uma probabilidade comparativamente alta, e ao qual um intervalo grande é associado pelas entradas da tabela de frequências cumulativas selecionada, somente um número comparativamente pequeno de bits será lido do fluxo de bits a fim de permitir a descodificação de um simbolo subsequente. Ao contrário, se um símbolo for descodificado, que compreende uma probabilidade comparativamente pequena e ao qual um intervalo pequeno é associado pelas entradas da tabela de frequências cumulativas selecionada, um número comparativamente grande de bits será considerado do fluxo de bits a fim de preparar uma descodificação do próximo símbolo.
Da mesma forma, as entradas das tabelas de frequências cumulativas refletem as probabilidades dos diferentes símbolos e também refletem um número de bits necessário para descodificar uma sequência de símbolos. Ao variar a tabela de frequências cumulativas em função de um contexto, isto é, em função de símbolos previamente descodificados (ou valores espetrais), por exemplo, ao selecionar diferentes tabelas de frequências cumulativas em função do contexto, dependências estocásticas entre os diferentes símbolos podem ser exploradas, o que permite uma codificação de taxa de bits particular eficiente dos símbolos subsequentes (ou adjacentes).
Para resumir o mencionado acima, a função "arith decode()", que foi descrita com referência à Figura 5g, é chamada com a tabela de frequências cumulativas "arith_cf_m[pki][]", correspondente ao índice "pki" retornado pela função ",,arith_get_pk () " para determinar o valor de plano de bits mais significativo m (que pode ser ajustado ao valor de símbolo representado pela variável "symbol" de retorno).
6.7 MECANISMO DE ESCAPE
Enquanto o valor de plano de bits mais significativo descodificado m (que é retornado como um valor de símbolo pela função "arith_decode ()") é o símbolo de escape "ARITH_ESCAPE", um valor de plano de bits mais significativo adicional m é descodificado e a variável "lev" é incrementada em 1. Da mesma forma, uma informação é obtida sobre a significância numérica do valor de plano de bits mais significativo m, assim como o número de planos de bits menos significativos a serem descodificados.
Se um símbolo de escape "ARITH_ESCAPE" for descodificado, a variável de nível "lev" é aumentada em 1. Da mesma forma, o valor de estado que é inserido à função "arith_get_pk" também é modificado, de modo que um valor representado pelos bits mars altos (24 bits e mars) seja aumentado para as próximas iterações do algoritmo 312ba.
6.8 ATUALIZAÇÃO DE CONTEXTO, DE ACORDO COM A FIGURA 5H
Uma vez que o valor espetral é completamente descodificado (isto é, todos os planos de bits menos significativos foram adicionados, as tabelas de contexto q e qs são atualizadas ao chamar a função "arith_update_context(a, i, lg) )". A seguir, detalhes em relação à função "arith_update_context(a,i,lg)" serão descritos tendo como referência a Figura 5h, que apresenta a representação de código de pseudo-programa da referida função. A função "arith_update_context()" recebe, como variáveis de entrada, o coeficiente espetral quantificado descodificado a, o índice i do valor espetral a ser descodificado (ou do valor espetral descodificado) e o número lg de valores espetrais (ou coeficientes) associados ao quadro de áudio atual.
Numa etapa 580, o valor espetral (ou coeficiente) quantificado atualmente descodificado a é copiado na tabela de contexto ou arranjo de contexto q. Da mesma forma, a entrada q [ 1 ] [i] da tabela de contexto q é ajustada para a. Também, a variável "a0" é ajustada para o valor de "a".
Numa etapa 582, o valor de nível q [ 1 ] [i] .1 da tabela de contexto q é determinado. Pelo padrão, o valor de nível q[1][i].1 da tabela de contexto q é ajustado a zero. No entanto, se o valor absoluto do valor espetral atualmente codificado for maior que 4, o valor de nível q[1][i].1 é incrementado. Com cada incremento, a variável "a" é trocada para a direita num bit. 0 incremento do valor de nivel q[ 1 ] [i] .1 é repetido até que o valor absoluto da variável aO seja menor ou igual a 4.
Numa etapa 584, um valor de contexto de 2 bits q[ 1] [i].c da tabela de contexto q é ajustado. O valor de contexto de 2 bits q [ 1 ] [i] .c é ajustado ao valor zero se o valor espetral descodificado atualmente a for igual a zero. De outra forma, se o valor absoluto do valor espetral descodificado a for menor ou igual a 1, o valor de contexto de 2 bits q [ 1 ] [i] .c é ajustado para 1. De outra forma, se o valor absoluto do valor espetral atualmente descodificado a for menor ou igual a 3, o valor de contexto de 2 bits q [ 1 ] [i] .c é ajustado para 2. De outra forma, isto é, se o valor absoluto do valor espetral descodificado atualmente a for maior que 3, o valor de contexto de 2 bits q[ 1] [i].c é ajustado para 3. Da mesma forma, o valor de contexto de 2 bits q [ 1 ] [i] .c é obtido por uma quantificação muito bruta do coeficiente espetral descodificado atualmente a.
Numa etapa subsequente 586, que é somente realizada se o indice i do valor espetral descodificado atualmente for igual ao número lg de coeficientes (valores espetrais) no quadro (isto é, se o último valor espetral do quadro for descodificado) e o modo central for um modo central de domínio de previsão linear (que é indicado por "core_mode==l") , as entradas q[1] [j] .c são copiadas na tabela de contexto qs[k]. A cópia é realizada conforme apresentado no número de referência 586, de modo que o número lg de valores espetrais no quadro atual seja considerado para a cópia das entradas q [ 1 ] [ j ] . c à tabela de contexto qs[k] . Além disso, a variável "previous_lg" toma o valor 1024.
De modo alternativo, no entanto, as entradas q [ 1 ] [j] .c da tabela de contexto q são copiadas na tabela de contexto qs[j] se o índice i do coeficiente espetral descodificado atualmente atingir o valor de lg e o modo central for um domínio de frequência modo central (indicado por "core_mode==0").
Nesse caso, a variável "previous_lg" é ajustada ao minimo entre o valor de 1024 e o número lg de valores espetrais no quadro.
6. RESUMO DO PROCESSO DE DESCODIFICAÇÃO A seguir, o processo de descodificação será brevemente resumido. Para detalhes, é feita referência à discussão acima e também às Figuras 3, 4 e 5a a 5i.
Os coeficientes quantificados espetrais a são codificados silenciosamente e transmitidos, começando do menor coeficiente de frequência e progredindo para o maior coeficiente de frequência.
Os coeficientes da codificação de áudio avançada (AAC) são armazenados no arranjo "x_ac_quant[g][win][sfb][bin]", e a ordem de transmissão das palavras de código de codificação silenciosa é de modo que quando eles forem descodificados na ordem recebida e armazenada no arranjo, a caixa seja o indice de incrementação mais rápida e g seja o indice de incrementação mais lenta. A caixa de indice designa caixas de frequência. O indice "sfb" designa faixas de fator de escala. O indice "win" designa janelas. O indice "g" designa quadros de áudio.
Os coeficientes da excitação codificada de transformação são armazenados diretamente num arranjo "x_tcx_invquant[win][bin]", e a ordem da transmissão das palavras de código de codificação silenciosa é de modo que quando eles forem descodificados na ordem recebida e armazenados no arranjo, a "bin" seja o indice de incrementação mais rápida e "win" é o indice de incrementação mais lenta.
Primeiro, é feito um mapeamento entre o contexto anterior salvo armazenado na tabela ou arranjo de contexto "qs" e o contexto do quadro atual q (armazenado na tabela ou arranjo de contexto q). 0 contexto anterior "qs" é armazenado em 2 bits por linha de frequência (ou por caixa de frequência). 0 mapeamento entre o contexto anterior salvo armazenado na tabela de contexto "qs" e o contexto do quadro atual armazenado na tabela de contexto "q" é realizado utilizando a função "arith_map_context ()", uma representação de código de pseudo-programa que é apresentada na Figura 5a. 0 descodificador silencioso produz coeficientes quantificados espetrais assinalados "a".
Primeiro, o estado do contexto é calculado com base nos coeficientes espetrais previamente descodificados que circundam os coeficientes quantificados espetrais a descodificar. 0 estado do contexto s corresponde aos 24 primeiros bits do valor retornado pela função "arith_get context()". Os bits acima do 24-bit do valor retornado correspondem ao nivel de plano de bits previsto levO. A variável „lev" é inicializada a levO. Uma representação de código de pseudo-programa da função "arith_get_context" é apresentada nas Figuras 5b e 5c.
Uma vez que o estado s e o nivel previsto „levO" são conhecidos, o plano sensato de 2 bits mars significativos m é descodificado utilizando a função "arith_decode()", alimentado com a tabela de frequências cumulativas adequada correspondente ao modelo de probabilidade correspondente ao estado de contexto. É feita correspondência pela função "arith_get_pk()". A representação de código de pseudo-programa da função "arith_get_pk()" é apresentada na Figura 5e.
Um código de pseudo-programa de outra função "get pk" que pode tomar o lugar da função "arith_get_pk()" é apresentado na Figura 5f. Um código de pseudo-programa de outra função "get_pk", que pode tomar o lugar da função "arith_get_pk()" é apresentado na Figura 5d. 0 valor m é descodificado utilizando a função "arith_decode()" chamada com a tabela de frequências cumulativas, "arith_cf_m[pki][], onde „pki" corresponde ao indice retornado pela função "arith_get_pk()" (ou, de modo alternativo, pela função "get_pk()").
0 codificador aritmético é uma implementação inteira utilizando o método de gerador de indicação com escalonamento (vide, por exemplo, K. Sayood "Introduction to Data Compression" third edition, 2006, Elsevier Inc.). O código pseudo-C apresentado na Figura 5g descreve o algoritmo utilizado.
Quando o valor descodificado m for o símbolo de escape, "ARITH ESCAPE", outro valor m é descodificado e a variável „lev" é incrementada em 1. Uma vez que o valor m não é o símbolo de escape, "ARI TH_E SCAPE", os planos de bits restantes são então descodificados a partir do nível mais significativo ao menos significativo, ao chamar „lev" vezes a função "arith_decode()" com a tabela de frequências cumulativas "arith_cf_r[]". A referida tabela de frequências cumulativas "arith_cf_r[] pode, por exemplo, descrever uma distribuição de probabilidade constante.
Os planos de bits descodificados r permitem a refinação do valor previamente descodificado m da seguinte maneira: a = m; para (i=0; i<lev;i++) { r = arith_decode (arith_cf_r,2)/ a = (a«l) | (r&amp;l) ; }
Uma vez que o coeficiente quantificado espetral a é completamente descodificado, as tabelas de contexto q ou o contexto armazenado qs são atualizados pela função "arith_update_context()", para os próximos coeficientes quantificados espetrais a descodificar. A representação de código de pseudo-programa da função "arith_update_context()" é apresentada na Figura 5h.
Além disso, uma legenda de definições é apresentada na Figura 5i.
7. TABELAS DE MAPEAMENTO
Numa forma de realização, de acordo com a invenção, as tabelas particularmente vantajosas "ari_s_hash" e "ari_gs_hash" e "ari_cf_m" são utilizadas para a execução da função "get_pk", que foi discutida com referência à Figura 5d ou para a execução da função "arith_get_pk", que foi discutida com referência à Figura 5e ou para a execução da função "get_pk", que foi discutida com referência a 5f e para a execução da função "arith_decode" que foi discutida com referência à Figura 5g. 7.1. TABELA "ARI_S_HASH[387]", DE ACORDO COM A FIGURA 17
Um conteúdo de uma implementação particularmente vantajosa da tabela "ari_s_hash", que é utilizada pela função "get_pk" que foi descrita com referência à Figura 5d, é apresentado na tabela da Figura 17. Deve ser observado que a tabela da Figura 17 lista as 387 entradas da tabela "ari_s_hash[387 ] ". Também deve ser observado que a representação de tabela da Figura 17 apresenta os elementos na ordem dos indices de elemento, de modo que o primeiro valor "0x00000200" corresponda a uma entrada da tabela "ari_s_hash [ 0]" tendo indice de elemento (ou indice de tabela) 0, de modo que o último valor "0x03D0713D" corresponda a uma entrada da tabela "ari_s_hash[386]" tendo indice de elemento ou indice de tabela 386. Deve ser adicionalmente observado aqui que "Ox" indica que as entradas de tabela da tabela "ari_s_hash" são representadas num formato hexadecimal. Além disso, as entradas de tabela da tabela "ari_s_hash", de acordo com a Figura 17, são dispostas em ordem numérica a fim de permitir a execução da primeira avaliação de tabela 540 da função "get_pk".
Deve ser ainda observado que os 24 bits mais significativos das entradas de tabela da tabela "ari_s_hash" representam valores de estado, enquanto os 8 bits menos significativos representam valores indice da regra de mapeamento pki.
Assim, as entradas da tabela "ari_s_hash" descrevem um mapeamento de "atingimento direto" de um valor de estado num valor indice de regra de mapeamento "pki". 7.2 TABELA "ARI_GS_HASH", DE ACORDO COM A FIGURA 18
Um conteúdo de uma forma de realização particularmente vantajosa da tabela "ari_gs_hash" é apresentado na tabela da Figura 18. Deve ser observado aqui que a tabela 18 lista as entradas da tabela "ari_gs_hash". As referidas entradas são mencionadas por um indice de entrada de tipo inteiro unidimensional (também designado como "indice de elemento" ou "indice de arranjo" ou "indice de tabela"), que é, por exemplo, designado com "i". Deve ser observado que a tabela "ari_gs_hash" que compreende um total de 225 entradas, é bem adequada para uso pela segunda avaliação de tabela 544 da função "get_pk" descrita na Figura 5d.
Deve ser observado que as entradas da tabela "ari_gs_hash" são listadas numa ordem crescente do indice de tabela i para o indice de tabela valores i entre zero e 224. O termo "0x" indica que as entradas de tabela são descritas num formato hexadecimal. Da mesma forma, a primeira entrada da tabela "0X00000401" corresponde à entrada da tabela "ari gs hash[0]" tendo indice de tabela 0 e a última entrada da tabela "0Xffffff3f" corresponde à entrada da tabela "ari_gs_hash[224]" tendo índice de tabela 224.
Também deve ser observado que as entradas de tabela são ordenadas numa maneira numericamente crescente, de modo que as entradas de tabela sejam bem adequadas para a segunda avaliação de tabela 544 da função "get_pk". Os 24 bits mais significativos das entradas de tabela da tabela "ari_gs_hash" descrevem limites entre as variações de valores de estado, e os 8 bits menos significativos das entradas descrevem valores índice da regra de mapeamento "pki" associados às variações de valores de estado definidas pelos 24 bits mais significativos. 7.3 TABELA "ARI_CF_M", DE ACORDO COM A FIGURA 19 A Figura 19 apresenta um conjunto de 64 tabelas de frequências cumulativas "ari_cf_m[pki][9]", uma das quais é selecionada por um codificador de áudio 100, 700, ou um descodificador de áudio 200, 800, por exemplo, para a execução da função "arith_decode", isto é, para a descodificação do valor de plano de bits mais significativo. A selecionada das 64 tabelas de frequências cumulativas apresentada na Figura 19 toma a função da tabela "cum_freq[]" na execução da função "arith_decode ()".
Como pode ser visto na Figura 19, cada linha representa uma tabela de frequências cumulativas tendo 9 entradas. Por exemplo, uma primeira linha 1910 representa as 9 entradas de uma tabela de frequências cumulativas para "pki=0". Uma segunda linha 1912 representa as 9 entradas de uma tabela de frequências cumulativas para "pki=l". Por fim, uma 64- linha 1964 representa as 9 entradas de uma tabela de frequências cumulativas para "pki=63". Assim, a Figura 19 representa efetivamente 64 diferentes tabelas de frequências cumulativas para "pki=0" a um "pki=63", em que cada uma das 64 tabelas de frequências cumulativas é representada por uma única linha e em que cada uma das referidas tabelas de frequências cumulativas compreende 9 entradas .
Dentro de uma linha (por exemplo, uma linha 1910 ou uma linha 1912 ou uma linha 1964), um valor mais à esquerda descreve uma primeira entrada de uma tabela de frequências cumulativas e um valor mais à direita descreve a última entrada de uma tabela de frequências cumulativas.
Da mesma forma, cada linha 1910, 1912, 1964 da representação de tabela da Fiqura 19 representa as entradas de uma tabela de frequências cumulativas para uso pela função "arith_decode", de acordo com a Figura 5g. A variável de entrada "cum_freq[]" da função "arith_decode" descreve qual das 64 tabelas de frequências cumulativas (representadas por linhas individuais de 9 entradas) da tabela "ari_cf_m" deve ser utilizada para a descodificação dos coeficientes espetrais atuais. 7.4 TABELA "ARI_S_HASH", DE ACORDO COM A FIGURA 20 A Figura 20 apresenta uma alternativa para a tabela "ari_s_hash", que pode ser utilizada em combinação à função alternativa "arith_get_pk()" ou "get_pk()", de acordo com a Figura 5e ou 5f. A tabela "ari_s_hash", de acordo com a Figura 20, compreende 386 entradas, que são listadas na Figura 20 numa ordem crescente do indice de tabela. Assim, o primeiro valor da tabela "0x0090D52E" corresponde à entrada da tabela "ari_s_hash[0]" tendo índice de tabela 0 e a última entrada da tabela "0x03D0513C" corresponde à entrada da tabela "ari_s_hash[386]" tendo índice de tabela 386. O "0x" indica que as entradas de tabela são representadas numa forma hexadecimal. Os 24 bits mais significativos das entradas da tabela "ari_s_hash" descrevem estados significativos e os 8 bits menos significativos das entradas da tabela "ari_s_hash" descrevem valores índice da regra de mapeamento.
Da mesma forma, as entradas da tabela "ari s hash" descrevem um mapeamento de estados significativos em valores índice da regra de mapeamento "pki".
8. AVALIAÇÃO DE DESEMPENHO E VANTAGENS
As formas de realização, de acordo com a invenção, usam funções (ou algoritmos) atualizadas e um conjunto atualizado de tabelas, conforme discutido acima, a fim de obter uma troca melhorada entre a complexidade da computação, exigências de memória e eficiência de codificação.
Falando de modo geral, as formas de realização, de acordo com a invenção, criam uma codificação silenciosa espetral melhorada. A presente descrição descreve formas de realização para CE em codificação silenciosa espetral melhorada de coeficientes espetrais. 0 esquema proposto tem base no esquema de codificação com base no contexto "original", conforme descrito no projeto de trabalho 4 da norma de projeto da USAC, mas reduz significativamente as exigências de memória (RAM, ROM), enquanto mantém um desempenho de codificação silenciosa. Uma transcodif icação sem perda de WD3 (isto é, da saída de um codificador de áudio que provê um fluxo de bits, de acordo com o projeto de trabalho 3 da norma de projeto da USAC) provou ser possível. 0 esquema aqui descrito é, em geral, escalonável, permitindo compensações adicionais alternativas entre exigências de memória e desempenho de codificação. As formas de realização, de acordo com a invenção, visam a substituição do esquema de codificação silenciosa espetral conforme utilizado no projeto de trabalho 4 da norma de projeto da USAC. 0 esquema de codificação aritmética aqui descrito tem base no esquema como no modelo de referência 0 (RMO) ou no projeto de trabalho 4 (WD4) da norma de projeto da USAC. Os coeficientes espetrais anteriores na frequência ou no modelo de tempo de um contexto. Esse contexto é utilizado para a seleção de tabelas de frequências cumulativas para o codificador aritmético (codificador ou descodificador). Comparado à forma de realização, de acordo com WD4, a modelagem do contexto é adicionalmente melhorada e as tabelas que possuem as probabilidades de símbolo foram reclassifiçadas. 0 número de diferentes modelos de probabilidades foi aumentado de 32 para 64 .
As formas de realização, de acordo com a invenção, reduzem os tamanhos de tabela (demanda ROM de dados) para 900 palavras de extensão de 32 bits ou 3600 bytes. Ao contrário, as formas de realização, de acordo com WD4, da norma de projeto da USAC requerem 16894,5 palavras ou 76578 bytes. A demanda RAM estática é reduzida, em algumas formas de realização, de acordo com a invenção, de 666 palavras (2664 bytes) para 72 (288 bytes) por canal de codificador central. Ao mesmo tempo, preserva completamente o desempenho de codificação e pode até atingir um ganho de aproximadamente 1,04% a 1,39%, comparado à taxa de dados gerais sobre todos os 9 pontos de operação. Todos os fluxos de bits do projeto de trabalho 3 (WD3) podem ser transcodifiçados numa maneira sem perda sem afetar as restrições do reservatório de bits. O esquema proposto, de acordo com as formas de realização da invenção, é escalonável: compensações flexíveis da demanda de memória e desempenho de codificação são possíveis. Ao aumentar, os tamanhos de tabela ao ganho de codificação podem ser adicionalmente aumentados. A seguir, uma breve discussão do conceito da codificação, de acordo com WD4 da norma de projeto da USAC, será provida para facilitar o entendimento das vantagens do conceito aqui descrito. Em USAC WD4, um esquema de codificação aritmética com base no contexto é utilizado para a codificação silenciosa de coeficientes quantificados espetrais. Como contexto, os coeficientes espetrais descodificados são utilizados, que são anteriores em frequência e tempo. De acordo com WD4, um número máximo de 16 coeficientes espetrais é utilizado como contexto, 12 dos quais são anteriores no tempo. Ambos, os coeficientes espetrais utilizados para o contexto e para serem descodificados, são agrupados como 4 tuplos (isto é, quatro coeficientes espetrais próximos em frequência, vide Figura 10a). O contexto é reduzido e mapeado numa tabela de frequências cumulativas, que é então utilizada para descodificar os próximos 4 tuplos de coeficientes espetrais.
Para o esquema de codificação silenciosa WD4 completo, uma demanda de memória (ROM) de 16894,5 palavras (67578 bytes) é necessária. Adicionalmente, 666 palavras (2664 bytes) de ROM estática por canal de codificador central são necessárias para armazenar os estados para o próximo quadro. A representação de tabela da Figura 11a descreve as tabelas, conforme utilizadas no esquema de codificação aritmética WD4 de USAC.
Uma demanda de memória total de um descodificador WD4 de USAC completo é estimada para ser 37000 palavras (148000 bytes) para ROM de dados sem um código de programa e 10000 a 17000 palavras para RAM estática. Pode ser claramente visto que tabelas de codificador silencioso consomem aproximadamente 45% da demanda de ROM de dados totais. A maior tabela individual já consome 4096 palavras (16384 bytes).
Descobriu-se que ambos, o tamanho da combinação de todas as tabelas e as amplas tabelas individuais, excedem tamanhos de cache típicos, conforme providos pelos chips de ponto fixo para dispositivos portáteis de orçamento baixo, que está numa variação típica de 8 - 32 kBytes (por exemplo, ARM9e, TIC64xx etc.)· Isso significa que o conjunto de tabelas pode não ser provavelmente armazenado na RAM de dados rápidos, o que permite um acesso aleatório rápido aos dados. Isso faz com que todo o processo de descodificação seja desacelerado. A seguir, o novo esquema proposto será brevemente descrito.
Para superar os problemas mencionados acima, um esquema de codificação silenciosa melhorado é proposto para substituir o esquema como em WD4 da norma de projeto da USAC. Como um esquema de codificação aritmética com base no contexto, ele tem base no esquema de WD4 da norma de projeto da USAC, mas os aspetos de um esquema modificado para derivação de tabelas de frequências cumulativas do contexto. Além disso, a derivação de contexto e codificação de símbolo é realizada na granularidade de um único coeficiente espetral (oposto a 4 tuplos, como em WD4 da norma de projeto da USAC). No total, 7 coeficientes espetrais são utilizados para o contexto (pelo menos em alguns casos). Pela redução no mapeamento, um dos 64 modelos de probabilidades no total ou tabelas de frequências cumulativas (em WD4: 32) é selecionado. A Figura 10b apresenta uma representação gráfica de um contexto para o cálculo de estado, conforme utilizado no esquema proposto (em que um contexto utilizado para a região deteção zero não é apresentado na Figura 10b). A seguir, será provida uma breve discussão em relação à redução da demanda de memória, que pode ser alcançada ao utilizar o esquema de codificação proposto. O novo esquema proposto apresenta uma demanda de ROM total de 900 palavras (3600 Bytes) (vide a tabela da Figura lib que descreve as tabelas conforme utilizadas no esquema de codificação proposto) .
Comparada à demanda de ROM do esquema de codificação silenciosa em WD4 da norma de projeto da USAC, a demanda de ROM é reduzida em 15994,5 palavras (64978 Bytes)(vide também a Figura 12a, essa figura apresenta uma representação gráfica da demanda de ROM do esquema de codificação silenciosa, conforme proposto e do esquema de codificação silenciosa em WD4 da norma de projeto da USAC) . Isso reduz a demanda de ROM geral de um descodificador de USAC completo de aproximadamente 37000 palavras para aproximadamente 21000 palavras ou em mais de 43% (vide Figura 12b, que apresenta a representação gráfica de uma demanda de ROM de dados de descodif icador de USAC total, de acordo com WD4 da norma de projeto da USAC, assim como de acordo com a presente proposta).
Além disso, a quantidade de derivação de contexto de informações necessárias no próximo quadro (RAM estática) também é reduzida. De acordo com WD4, o conjunto completo de coeficientes (maximamente 1152) uma resolução de tipicamente 16 bits adicionais a um indice de grupo por 4 tuplos de 10 bits de resolução que precisa ser armazenado, que soma até 666 palavras (2664 Bytes) por canal de codificador central (descodificador WD4 de USAC completo: aproximadamente 10000 a 17000 palavras). O novo esquema, que é utilizado nas formas de realização, de acordo com a invenção, reduz as informações persistentes a somente 2 bits por coeficiente espetral, que soma até 72 palavras (288 Bytes) no total por canal de codificador central. A demanda na memória estática pode ser reduzida em 594 palavras (2376 Bytes). A seguir, alguns detalhes em relação a um possível aumento de eficiência de codificação serão descritos. A eficiência de codificação das formas de realização, de acordo com a nova proposta, foi comprada em relação à aos fluxos de bits de qualidade de referência, de acordo com WD3 da norma de projeto da USAC. A comparação foi realizada por meio de um transcodificador, com base num descodificador de software de referência. Para detalhes em relação à comparação da codificação silenciosa, de acordo com WD3 da norma de projeto da USAC e o esquema de codificação proposto, é feita referência à Figura 9, que apresenta a representação esquemática de uma disposição de teste.
Embora a demanda de memória seja drasticamente reduzida em formas de realização de acordo com a invenção quando comparado a formas de realização de acordo com WD3 ou WD4 da norma de projeto da USAC, a eficiência de codificação não é somente mantida, mas discretamente aumentada. A eficiência de codificação está na média aumentada em 1,04% a 1,39%. Para detalhes, é feita referência à tabela da Figura 13a, que apresenta a representação de tabela de taxas de bits médias produzida pelo codificador de USAC utilizando o projeto de trabalho codificador aritmético e um codificador de áudio (por exemplo, codificador de áudio USAC), de acordo com uma forma de realização da invenção.
Pela medida do nivel de preenchimento de recipiente de bits, foi apresentado que a codificação silenciosa proposta é capaz de transcodificar sem perda o fluxo de bits de WD3 para cada ponto de operação. Para detalhes, é feita referência à tabela da Figura 13b que apresenta a representação de tabela de um controlo de reservatório de bits para um codificador de áudio de acordo com o WD3 de USAC e um codificador de áudio de acordo com uma forma de realização da presente invenção.
Detalhes sobre taxas de bits médias por modo de operação, taxas de bits mínimas, máximas e médias numa base de estrutura e um melhor/pior desempenho de caso numa base de estrutura podem ser encontrados nas tabelas das Figuras 14, 15, e 16, em que a tabela da Figura 14 apresenta uma representação de tabela de taxas de bits médias para um codificador de áudio de acordo com o WD3 de USAC e para um codificador de áudio de acordo com uma forma de realização da presente invenção, em que a tabela da Figura 15 apresenta uma representação de tabela de taxas de bits mínimas, máximas e médias de um codificador de áudio USAC numa base de estrutura, e em que a tabela da Figura 16 apresenta uma representação de tabela do melhor e do pior caso numa base de estrutura.
Além disso, deve ser observado que as formas de realização de acordo com a presente invenção proveem uma boa capacidade de escalonamento. Ao adaptar o tamanho da tabela, uma compensação entre exigências de memória, complexidade computacional e eficiência de codificação pode ser ajustada de acordo com as exigências.
9. SINTAXE DE FLUXO DE BITS
9.1. CARGAS ÚTEIS DO CODIFICADOR SILENCIOSO ESPETRAL A seguir, alguns detalhes sem relação a cargas úteis do codificador silencioso espetral serão descritos. Em algumas formas de realização, há uma pluralidade de diferentes modos de codificação, como por exemplo, um denominado domínio de previsão linear, "modo de codificação" e um modo de codificação de "domínio de frequência". No modo de codificação de domínio de previsão linear, uma formação de ruído é realizada com base numa análise de previsão linear do sinal de áudio e um sinal formado por ruído é codificado no domínio de frequência. No modo de domínio de frequência, uma formação de ruído é realizada com base numa análise psicoacústica e uma versão formada por ruído do conteúdo de áudio é codificada no domínio de frequência.
Coeficientes espetrais de ambos, um sinal codificado de "domínio de previsão linear" e um sinal codificado de "domínio de frequência" são quantificados escalonares e, então, codificados silenciosamente por uma codificação aritmética de contexto adaptativamente dependente. Os coeficientes quantificados são transmitidos da menor frequência à maior frequência. Cada coeficiente quantificado individual é dividido em plano sensato de 2 bits mais significativos m e os planos de bits menos significativos restantes r. 0 valor m é codificado de acordo com a proximidade dos coeficientes. Os planos de bits menos significativos restantes r são codificados por entropia, sem considerar o contexto. Os valores m e r formam os símbolos do codificador aritmético.
Um procedimento de descodificação aritmética detalhado é aqui descrito.
9.2. ELEMENTOS DE SINTAXE A seguir, a sintaxe do fluxo de bits de um fluxo de bits que carrega as informações espetrais codificadas aritmeticamente serão descritas tendo como referência as Figuras 6a a 6h. A Figura 6a apresenta uma representação de sintaxe do denominado Bloco de dados brutos USAC ("usac_raw_data_block()"). 0 bloco de dados brutos USAC compreende um ou mais elementos de canal único ("single_channel_element()") e/ou um ou mais elementos de par de canais ("channel_pair_element()").
Tendo como referência agora a Figura 6b, a sintaxe de um elemento de canal único é descrita. 0 elemento de canal único compreende uma corrente de canais de domínio de previsão linear ("lpd_channel_stream ()") ou uma corrente de canal de domínio de frequência ("fd_channel_stream ()") em função do modo central. A Figura 6c apresenta uma representação de sintaxe de um elemento de par de canais. Um elemento de par de canais compreende informações de modo central ("core_modeO", "core model") . Além disso, o elemento de par de canais pode compreender uma informação de configuração "ics_info ()". Adicionalmente, dependendo da informação de modo central, o elemento de par de canais compreende uma corrente de canais de dominio de previsão linear ou uma corrente de canais de domínio de frequência associada com um primeiro dos canais, e o elemento de par de canais também compreende uma corrente de canais de domínio de previsão linear ou uma corrente de canal de domínio de frequência associada ao segundo dos canais.
As informações de configuração "ics_info()", uma representação de sintaxe que é apresentada na Figura 6d, compreende uma pluralidade de diferentes itens de informações de configuração, que não são de relevância particular para a presente invenção.
Uma corrente de canais de domínio de frequência ("fd_channel_stream ()"), uma representação de sintaxe da qual é apresentada na Figura 6e, compreende uma informação de ganho ("global gain") e uma informação de configuração ("ics_info ()"). Além disso, a corrente de canal de domínio de frequência compreende dados de fator de escala ("scale_factor_data ()"), que descrevem fatores de escala utilizados para o escalonamento de valores espetrais de diferentes faixas de fator de escala e que são aplicados, por exemplo, pelo escalonador 150 e pelo re-escalonador 240. A corrente de canais de domínio de frequência também compreende dados espetrais aritmeticamente codificados ("ac_spectral_data ()"), que representam os valores espetrais codificados aritmeticamente.
Os dados espetrais aritmeticamente codificados ("ac_spectral_data()") , uma representação de sintaxe dos quais é apresentada na Figura 6f, compreende uma sinalização de reajuste aritmético ideal ("arith_reset_flag") , que é utilizada para reconfigurar seletivamente o contexto, conforme descrito acima.
Além disso, os dados espetrais aritmeticamente codificados compreendem uma pluralidade de blocos de dados aritméticos ("arith_data"), que carregam valores espetrais codificados aritmeticamente. 0 quadro dos blocos de dados codificados aritmeticamente depende do número de faixas de frequência (representadas pela variável "num__bands") e também do estado da sinalização de reajuste aritmético, conforme será discutido a seguir. 0 quadro do bloco de dados codificados aritmeticamente será descrita tendo como referência a Figura 6g, que apresenta uma representação de sintaxe dos referidos blocos de dados codificados aritmeticamente. A representação de dados dentro do bloco de dados codificados aritmeticamente depende do número lg de valores espetrais a ser codificado, o status da sinalização de reajuste aritmético e também do contexto, isto é, os valores espetrais previamente codificados. 0 contexto para a codificação do conjunto de valores espetrais atual é determinado de acordo com o algoritmo de determinação de contexto apresentado no número de referência 660. Detalhes em relação ao algoritmo de determinação de contexto foram discutidos acima tendo como referência a Figura 5a. O bloco de dados codificados aritmeticamente compreende lg conjuntos de palavras de código, cada conjunto de palavras de código representando um valor espetral. Um conjunto de palavras de código compreende uma palavra de código aritmética "acod_m [pki] [m] " representando um valor de plano de bits mais significativo m do valor espetral utilizando entre 1 e 20 bits. Além disso, o conjunto de palavras de código compreende uma ou mais palavras de código "acod_r[r]" se o valor espetral precisar de mais planos de bits que o plano de bits mais significativo para uma representação correta. A palavra de código "acod_r [r]" representa um plano de bits menos significativo utilizando entre 1 e 20 bits.
Se, no entanto, um ou mais planos de bits menos significativos forem necessários (além do plano de bits mais significativos) para uma representação adeguada do valor espetral, isso é sinalizado ao utilizar uma ou mais palavras de código de escape aritméticas ("ARITH_ESCAPE"). Assim, pode ser referido de modo geral gue para um valor espetral, determina-se quantos planos de bits (o plano de bits mais significativo e, possivelmente, um ou mais planos de bits menos significativos adicionais) são necessários. Se um ou mais planos de bits menos significativos forem necessários, isso é sinalizado por uma ou mais palavras de código de escape aritméticas "acod_m [pki] [ARITH_ESCAPE]", que são codificadas de acordo com uma tabela de frequências cumulativas atualmente selecionada, um índice da tabela de frequências cumulativas da qual é dado pela variável pki. Além disso, o contexto é adaptado, como pode ser visto nos números de referência 664, 662, se uma ou mais palavras de código de escape aritméticas são incluídas no fluxo de bits. Depois da uma ou mais palavras de código de escape aritméticas, uma palavra de código aritmética "acod_m [pki][m]" é incluída no fluxo de bits, conforme apresentado no número de referência 663, em que pki designa o índice de modelo de probabilidade atualmente válido (levando em consideração a adaptação de contexto causada pela inclusão das palavras de código de escape aritméticas), e em que m designa o valor de plano de bits mais significativo do valor espetral a ser codificado ou descodificado.
Conforme discutido acima, a presença de quaisquer planos de bits menos significativos resulta na presença de uma ou mais palavras de código "acod_r [r]", cada uma das quais representa um bit do plano de bits menos significativo. A uma ou mais palavras de código "acod_r[r]" são codificadas de acordo com uma tabela de frequências cumulativas correspondente, que é constante e independente do contexto.
Além disso, deve ser observado que o contexto é atualizado após a codificação de cada valor espetral, conforme apresentado no número de referência 668, de modo que o contexto seja tipicamente diferente para a codificação dos dois valores espetrais subsequentes. A Figura 6h apresenta uma legenda de definições e elementos de ajuda que definem a sintaxe do bloco de dados codificados aritmeticamente.
Para resumir o mencionado acima, um formato de fluxo de bits foi descrito, que pode ser provido pelo codificador de áudio 100 e que pode ser avaliado pelo descodif icador de áudio 200. O fluxo de bits dos valores espetrais codificados aritmeticamente é codificado de modo a ajustar o algoritmo de descodificação discutido acima.
Além disso, deve ser observado, de modo geral, que a codificação é a operação inversa da descodificação, de modo que se possa presumir geralmente que o codificador realiza uma pesquisa da tabela utilizando as tabelas discutidas acima, que é aproximadamente inversa à pesquisa da tabela realizada pelo descodif icador. De modo geral, pode ser referido que um técnico no assunto que conhece o algoritmo de descodificação e/ou a sintaxe de fluxo de bits desejada será facilmente capaz de projetar um codificador aritmético, que provê os dados definidos na sintaxe de fluxo de bits e necessários pelo descodificador aritmético. 10. FORMAS DE REALIZAÇÃO ADICIONAIS, DE ACORDO COM AS FIGURAS 21 E 22 A seguir, algumas formas de realização adicionais simplificada, de acordo com a invenção, serão descritas. A Figura 21 apresenta um diagrama de blocos esquemático de um codificador de áudio 2100, de acordo com uma forma de realização da invenção. O codificador de áudio 2100 é configurado para receber uma informação de áudio de entrada 2110 e para prover, com base nisso, uma informação de áudio codificada 2112. O codificador de áudio 2100 compreende um conversor de dominio de tempo para dominio de frequência de compactação de energia 2120, que é configurado para receber uma representação de dominio de tempo 2122 da informação de áudio de entrada 2110 e para prover, com base nisso, uma representação de áudio de dominio de frequência 2124, de modo que a representação de áudio de dominio de frequência compreenda um conjunto de valores espetrais (por exemplo, valores espetrais a) . O codificador de sinal de áudio 2100 também compreende um codificador aritmético 2130, que é configurado para codificar valores espetrais 2124 ou uma versão pré-processada deles utilizando uma palavra de código de extensão variável. O codificador aritmético 2130 é configurado para mapear um valor espetral ou um valor de plano de bits mais significativo num valor de código (por exemplo, um valor de código que representa a palavra de código de extensão variável). O codificador aritmético 2130 compreende uma seleção de regra de mapeamento 2132 e uma determinação de valor de contexto 2136. O codificador aritmético é configurado para selecionar uma regra de mapeamento que descreve o mapeamento de um valor espetral 2124 ou de um plano de bits mais significativo de um valor espetral 2124 num valor de código (que pode representar uma palavra de código de extensão variável) em função de um valor de contexto numérico atual 2134 que descreve um estado de contexto. O descodificador aritmético é configurado para determinar um valor de contexto numérico atual 2134 que é utilizado para a seleção de regra de mapeamento 2132 em função de uma pluralidade de valores espetrais previamente codificados. O codificador aritmético ou, mais precisamente, a seleção da regra de mapeamento 2132 é configurada para avaliar pelo menos uma tabela utilizando uma redução iterativa de tamanho de intervalo para determinar se o valor numérico de contexto atual 2134 é idêntico a um valor de contexto de tabela descrito por uma entrada da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela, a fim de derivar um valor indice de regra de mapeamento 2133 que descreve uma regra de mapeamento selecionada. Da mesma forma, o mapeamento 2131 pode ser selecionado com alta eficiência computacional em função do valor numérico de contexto atual 2134. A Figura 22 apresenta um diagrama de blocos esquemático de um descodificador de sinal de áudio 2200, de acordo com outra forma de realização da invenção. O descodificador de sinal de áudio 2200 é configurado para receber uma informação de áudio codificada 2210 e para prover, com base nisso, uma informação de áudio descodificada 2212. O descodificador de sinal de áudio 2200 compreende um descodificador aritmético 2220, que é configurado para receber uma representação codificada aritmeticamente 2222 dos valores espetrais e para prover, com base nisso, uma pluralidade de valores espetrais descodificados 2224 (por exemplo, valores espetrais descodificados a) . O descodificador de sinal de áudio 2200 também compreende um conversor de dominio de frequência para domínio de tempo 2230, que é configurado para receber os valores espetrais descodificados 2224 e para prover uma representação de áudio de domínio de tempo utilizando os valores espetrais descodificados, a fim de obter as informações de áudio descodificadas 2212. O descodificador aritmético 2220 compreende um mapeamento 2225 que é utilizado para mapear o valor de código (por exemplo, um valor de código extraído de um fluxo de bits que representa uma informação de áudio codificada) num código de símbolo (esse código de símbolo pode descrever por exemplo, um valor espetral descodificado ou um plano de bits mais significativo do valor espetral descodificado). O descodificador aritmético ainda compreende uma seleção de regra de mapeamento 2226 que provê uma informação de seleção de regra de mapeamento 2227 para ser o mapeamento 2225. O descodificador aritmético 2220 também compreende uma determinação de valor de contexto 222 8 que prove um valor de contexto numérico atual 2229 à seleção de regra de mapeamento 2226. O descodificador aritmético 2220 é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor de código (por exemplo, um valor de código extraído de um fluxo de bits que representa as informações de áudio codificadas) num código de símbolo (por exemplo, um valor numérico que representa o valor espetral descodificado ou um valor numérico que representa um plano de bits mais significativo do valor espetral descodificado) em função de um estado de contexto. O descodificador aritmético é configurado para determinar um valor de contexto numérico atual que descreve o contexto atual em função de uma pluralidade de valores espetrais descodificados anteriormente. Para além disso, o descodificador aritmético (ou, mais precisamente, a seleção de regra de mapeamento 2226) é configurado para avaliar pelo menos uma tabela utilizando uma redução iterativa de tamanho de intervalo para determinar se o valor numérico de contexto atual 2229 é idêntico a um valor de contexto de tabela descrito por uma entrada da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela, a fim de derivar um valor índice de regra de mapeamento 2227 que descreve uma regra de mapeamento selecionada. Da mesma forma, a regra de mapeamento aplicada no mapeamento 2225 pode ser selecionada de modo computacionalmente eficiente.
11. ALTERNATIVAS DE IMPLEMENTAÇÃO
Apesar de alguns aspetos terem sido descritos no contexto de um equipamento, é claro que esses aspetos também representam uma descrição do método correspondente, no qual um bloco ou dispositivo corresponde a uma etapa do método ou uma característica de uma etapa do método. De maneira análoga, os aspetos descritos no contexto de uma etapa do método também representam uma descrição de um bloco ou item ou caracteristica correspondente de um equipamento correspondente. Algumas ou todas as etapas do método podem ser executadas por (ou utilizando) um equipamento de hardware, como, por exemplo, um microprocessador, um computador programável ou um circuito elétrico. Em algumas formas de realização, alguma ou mais das etapas mais importantes do método podem ser executadas por esse equipamento. 0 sinal de áudio codificado inventivo pode ser armazenado num meio de armazenamento digital ou pode ser transmitido num meio de transmissão, como um meio de transmissão sem fio ou um meio de transmissão por fio, como a Internet.
Dependendo de determinadas exigências de implementação, as formas de realização da invenção podem ser implementadas em hardware ou em software. A implementação pode ser realizada utilizando um meio de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma ROM, uma PROM, uma EPROM, uma EEPROM ou uma memória FLASH, tendo sinais de controlo legiveis eletronicamente armazenados nele, que cooperam (ou são capazes de cooperar) com um sistema de computador programável, de modo que o respetivo método seja realizado. Portanto, o meio de armazenamento digital pode ser legível por computador.
Algumas formas de realização, de acordo com a invenção, compreendem um carregador de dados tendo sinais de controlo legíveis eletronicamente, que são capazes de cooperar com um sistema de computador programável, de modo que um dos métodos aqui descritos seja realizado.
De modo geral, as formas de realização da presente invenção podem ser implementadas como um produto de programa de computador com um código de programa, o código de programa sendo operado para realizar um dos métodos quando o produto de programa de computador executar num computador. 0 código de programa pode, por exemplo, ser armazenado num carregador legível pela máquina.
Outras formas de realização compreendem o programa de computador para realizar um dos métodos aqui descritos, armazenado num carregador legível pela máquina.
Por outras palavras, uma forma de realização do método inventivo é; portanto, um programa de computador tendo um código de programa para realizar um dos métodos aqui descritos, quando o programa de computador executar num computador.
Uma forma de realização adicional dos métodos inventivos é, portanto, um carregador de dados (ou um meio de armazenamento digital ou meio legível por computador) compreendendo, gravado em si, o programa de computador para realizar um dos métodos aqui descritos.
Uma forma de realização adicional do método inventivo é, portanto, um fluxo de dados ou uma sequência de sinais que representam o programa de computador para realizar um dos métodos aqui descritos. 0 fluxo de dados ou a sequência de sinais pode, por exemplo, ser configurado para ser transferido por meio de uma conexão de comunicação de dados, por exemplo, por meio da Internet.
Uma forma de realização adicional compreende um meio de processamento, por exemplo, um computador, ou um dispositivo de lógica programável, configurado ou adaptado para realizar um dos métodos aqui descritos.
Uma forma de realização adicional compreende um computador tendo instalado nele o programa de computador para realizar um dos métodos aqui descritos.
Em algumas formas de realização, um dispositivo de lógica programável (por exemplo, uma matriz de porta de campo programável) pode ser utilizado para realizar alguma ou todas as funcionalidades dos métodos aqui descritos. Em algumas formas de realização, uma matriz de porta de campo programável pode cooperar com um microprocessador a fim de realizar um dos métodos aqui descritos. De modo geral, os métodos são preferencialmente realizados por qualquer equipamento de hardware.
As formas de realização descritas acima são meramente ilustrativas para os princípios da presente invenção. É entendido que modificações e variações das disposições e detalhes aqui descritos serão aparentes aos outros técnicos no assunto. Pretende-se, portanto, limitar-se somente pelo escopo das reivindicações da patente iminentes e não pelos detalhes específicos apresentados a titulo de descrição e explicação das formas de realização aqui.
Embora o acima mencionado tenha sido particularmente apresentado e descrito com referência às formas de realização particulares acima, deve ser entendido pelos técnicos no assunto que diversas outras alterações nas formas e detalhes podem ser feitas sem se desviar de seu espirito e escopo. Deve ser entendido que diversas alterações podem ser feitas na adaptação de diferentes formas de realização sem se desviar do conceito mais amplo aqui revelado e compreendido pelas reivindicações que seguem.
12. CONCLUSÃO
Para concluir, pode ser observado que as formas de realização, de acordo com a invenção, criam um esquema de codificação silenciosa espetral melhorada. As formas de realização, de acordo com a nova proposta, permitem a redução significativa da demanda de memória de 16894,5 palavras para 900 palavras (ROM) e de 666 palavras para 72 (RAM estática por canal de codificador central). Isso permite a redução da demanda de ROM de dados do sistema completo em aproximadamente 43% numa forma de realização. Simultaneamente, o desempenho de codificação não é só completamente mantido, mas uma média até melhorada. Provou-se que uma transcodificação sem perda de WD3 (ou de um fluxo de bits provido de acordo com WD3 da norma de projeto da USAC) é possivel. Da mesma forma, uma forma de realização, de acordo com a invenção, é obtida ao adotar a descodificação silenciosa aqui descrita no próximo projeto de trabalho da norma de projeto da USAC.
Para resumir, numa forma de realização, a nova codificação silenciosa proposta pode gerar as modificações no projeto de trabalho de USAC MPEG em relação à sintaxe do elemento de fluxo de bits "arith_data()", conforme apresentado na Figura 6g, em relação às cargas úteis do codificador silencioso espetral, conforme escrito acima e conforme apresentado na Figura 5h, em relação à codificação silenciosa espetral, conforme descrito acima, em relação ao contexto para o cálculo de estado, conforme apresentado na Figura 4, em relação às definições, conforme apresentado na Figura 5i, em relação ao processo de descodificação, conforme descrito com referência às Figuras 5a, 5b, 5c, 5e, 5g, 5h e em relação às tabelas, conforme apresentado nas Figuras 17, 18, 20 e com relação à função "get_pk", conforme apresentado na Figura 5d. De modo alternativo, no entanto, a tabela "ari_s_hash", de acordo com a Figura 20, pode ser utilizada em vez da tabela "ari_s_hash" da Figura 17, e a função "get_pk" da Figura 5f pode ser utilizada em vez da função "get_pk", de acordo com a Figura 5d.
Lisboa, 10 de janeiro de 2017

Claims (14)

  1. REIVINDICAÇÕES
    1. Descodificador de áudio (200; 800; 2200) para prover uma informação de áudio descodificada (212,-812) com base numa informação de áudio codificada (210; 810), o descodificador de áudio compreendendo: um descodificador aritmético (230; 820; 2220) para prover uma pluralidade de valores espetrais descodificados (232; 822; 2224) com base numa representação aritmeticamente codificada (222; 821; 2222) dos valores espetrais; e um conversor de domínio de frequência para domínio de tempo (2 60; 830; 2230) para prover uma representação de áudio de domínio de tempo (262; 812; 2212) utilizando os valores espetrais descodificados (232; 822; 2224), a fim de obter as informações de áudio descodificadas (212; 812; 2212); em que o descodificador aritmético (230; 820; 2220) é configurado para selecionar uma regra de mapeamento (297; cum freq[]) que descreve um mapeamento de um valor de código (valor) da representação aritmeticamente ecodificada dos valores espetrais num código de símbolo (símbolo) que representa um ou mais dos valores espetrais descodificados, ou pelo menos uma porção de um ou mais dos valores espetrais descodificados, em função de um valor numérico de contexto atual (s) que descreve um estado de contexto atual, em que o descodificador aritmético é configurado para determinar o valor numérico de contexto atual (s) em função de uma pluralidade de valores espetrais previamente descodificados (a) ; em que o descodificador aritmético é configurado para avaliar pelo menos uma tabela (ari s hash [387];air_gs_hash[225]) utilizando uma redução iterativa de tamanho de intervalo (542; 546) para determinar se o valor numérico de contexto atual (s) é idêntico a um valor de contexto de tabela descrito por uma entrada (j, ari s hash[i],ari s hash[i]) da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela, e para derivar um valor indice e regra de mapeamento (pki) que descreve uma regra de mapeamento selecionada (arith_cf_[pki][9]).
  2. 2. Descodificador de áudio (200; 800), de acordo com a reivindicação 1, em que o descodificador aritmético (230; 820) é configurado para inicializar uma variável de limite de intervalo inferior (i_min) para designar um limite inferior de um intervalo de tabela inicial, para inicializar uma variável de limite de intervalo superior (i_max) para designar um limite superior do intervalo de tabela inicial, para avaliar uma entrada de tabela (ari_s_hash[i], ari_gs_hash [i] ) , um índice de tabela (i) da qual está disposto num centro do intervalo de tabela inicial para comparar o valor numérico de contexto atual (s) com um valor de contexto de tabela (j>>8) representado pela entrada de tabela avaliada o "hcioVíf-il 2^1 rr o Ví^oVíf-lT\ para adaptar a variável de limite de intervalo inferior (i_min) ou a variável de limite de intervalo superior (i max) em função de um resultado da comparação para obter um intervalo de tabela atualizado, e para repetir a avaliação da uma entrada de tabela e a adaptação da variável de limite de intervalo inferior ou da variável de limite de intervalo superior com base num ou mais intervalos de tabela atualizados até que um valor de contexto de tabela seja igual ao valor numérico de contexto atual (s) ou um tamanho do intervalo de tabela definido pelas variáveis de limite de intervalo atualizadas (i_min, i_max) atinja ou caia abaixo de um tamanho de intervalo de tabela limite.
  3. 3. Descodificador de áudio (200; 800), de acordo com a reivindicação 2, em que o descodificador aritmético (230; 820) é configurado para prover um valor indice de regra de mapeamento (pki) descrito por uma determinada entrada (ari_s_hash[i], ari_gs_hash[i]) da tabela em resposta a uma descoberta que a determinada entrada da tabela (ari_s_hash, ari_gs_hash) representa um valor de contexto de tabela (j>>8) que é igual ao valor numérico de contexto atual (s).
  4. 4. Descodificador de áudio (200; 800), de acordo com uma das reivindicações 1 a 3, em que o descodificador aritmético (230; 820) é configurado para realizar o seguinte algoritmo: a) ajustar a variável de limite de intervalo inferior i_min a -1; b) ajustar a variável de limite de intervalo superior i_max -¾ -1-i-iVi τλ/ιτΥιΑ τ“Λ /~i /“\ ΑΛ·|- -¾ C· Ί“ ϋ V"\ íti Ί Cl ΤΤιΔτΊ λ ο 1 · c) verificar se uma diferença entre a i_max e a i min é maior que 1 e repetir as seguintes etapas até que essa condição não seja mais cumprida ou uma condição de aborto seja alcançada: cl) ajustar a variável i a i_min = ((i_max - i_min)/2). c2) ajustar a variável de limite de intervalo superior i_max a i se um valor de contexto de tabela descrito pela entrada de tabela que tem o indice de tabela i for maior que o valor numérico de contexto atual e ajustar a variável de limite de intervalo inferior i_min a i se um contexto de tabela descrito por uma entrada de tabela que tem o indice de tabela i for menor que um valor numérico de contexto atual; e c3) abortar a repetição de (c) se um valor de contexto de tabela descrito por uma entrada de tabela que tem o índice de tabela i for igual ao valor numérico de contexto atual, retornando, como um resultado do algoritmo, um valor indice de regra de mapeamento (pki) descrito pela entrada de tabela que tem o índice de tabela i.
  5. 5. Descodificador de áudio (200;800), de acordo com uma das reivindicações 1 a 4, em que o descodificador aritmético é configurado para obter o valor numérico de contexto atual (s) com base numa combinação ponderada de valores de magnitude (cO, cl, c2, c3, c4, c5, c6) que descrevem magnitudes de valores espetrais previamente descodificados (a).
  6. 6. Descodificador de áudio (200; 800), de acordo com uma das reivindicações 1 a 5, em que a tabela (ari_s_hash, ari_gs_hash) compreende uma pluralidade de entradas, - ^ ιιλλλ Λ -> y\l nv^i 1 i Ηδογ-τ'Δττδ ππί ττο 1 r\ r* de contexto de tabela (j>>8) e um valor índice de regra de mapeamento associado (j&amp; OxFF, pki), e em que as entradas da tabela são numericamente ordenadas de acordo com os valores de contexto de tabela.
  7. 7. Descodificador de áudio (200; 800), de acordo com uma das reivindicações 1 a 5, em que a tabela compreende uma pluralidade de entradas, em que cada uma da pluralidade de entradas descreve um valor de contexto de tabela que define um valor de limite de um intervalo de valor de contexto e um valor índice de regra de mapeamento (pki) associado ao intervalo de valor de contexto.
  8. 8. Descodificador de áudio (200; 800), de acordo com uma das reivindicações 1 a 7, em que o descodificador aritmético (230; 820) é configurado para realizar uma seleção de duas etapas de uma regra de mapeamento em função do valor numérico de contexto atual (s); em que o descodificador aritmético é configurado para verificar, numa primeira etapa de seleção (540), se o valor numérico de contexto atual (s) ou um valor derivado dele é igual a um valor de estado significativo (j»8) descrito por uma entrada (j, ari_s_hash[i]) de uma tabela de atingimento direto (ari_s_hash); e em que o descodificador aritmético é configurado para determinar, numa segunda etapa de seleção (544), que é somente executada se o valor numérico de contexto atual (s) ou o valor derivado dele for diferente dos valores de estado significativos f λο τ^λΊ λο Λτ-if Ί 2 Η Δ ^ i--1 Π(*ΤΊ ΤΠΟΡ Ή Λ Hl fOf Λ (ari s hash) , em qual intervalo, fora de uma pluralidade de intervalos, o valor numérico de contexto atual (s) existe; e em que o descodificador aritmético é configurado para avaliar a tabela de atingimento direto (ari_s_hash) utilizando a redução iterativa de tamanho de intervalo (542) para determinar se o valor numérico de contexto atual (s) é idêntico a um valor de contexto de tabela (j >> 8) descrito por uma entrada (ari_s_hash[i]) da tabela de atingimento direto (ari_s_hash).
  9. 9. Descodificador de áudio (200; 800), de acordo com a reivindicação 8, em que o descodificador aritmético é configurado para avaliar, na segunda etapa de seleção (544), uma tabela de mapeamento de intervalo (ari_gs_hash) , as entradas que descrevem valores limites de intervalos de valor de contexto utilizando uma redução iterativa de tamanho de intervalo (546).
  10. 10. Descodificador de áudio, de acordo com a reivindicação 9, em que o descodificador aritmético (230; 820) é configurado para reduzir iterativamente um tamanho de um intervalo de tabela em função de uma comparação entre os valores de contexto de limite de intervalo (j >> 8) representados pelas entradas (ari gs hahsh[i]) e o valor numérico de contexto atual (s) , até que um tamanho do intervalo de tabela atinja ou caia abaixo de um tamanho de intervalo de tabela limite predeterminado ou o valor de contexto de limite de intervalo descrito por uma entrada de tabela (j, ari_gs_hash[i]) num centro da tabela seja igual ao valor numérico de contexto atual (s); e em que o descodificador aritmético é configurado para prover /~\ tt -¾ 1 v π τλ /^1 -Ϊ r\ A νΆ/τν^ λ τηοΐΛΛ2τΤιΔη·|-Λ /r^Vΐ^ λτ*τί -F ί π υί ^ 2 ητΠ2 configuração de um limite de intervalo do intervalo de tabela quando a redução iterativa do tamanho do intervalo de tabela for abortado.
  11. 11. Codificador de áudio (100;700; 2100) para prover uma informação de áudio codificada (112;712; 2112) com base numa informação de áudio de entrada (110;710; 2110), o codificador de áudio compreendendo: um conversor de dominio de compactação de energia para dominio de tempo para frequência (130;720; 2120) para prover uma representação de áudio de dominio de frequência com base numa representação de dominio de tempo da informação de áudio de entrada, de modo que a representação de áudio de dominio de frequência (132;722; 2124) compreenda um conjunto de valores espetrais; e um codificador aritmético (170;730; 2130) configurado para codificar um valor espetral (a) ou uma versão sua pré-processada, utilizando uma palavra de código de extensão variável (acod_m, acod_r), em que o codificador aritmético (170) é configurado para mapear um valor espetral (a) ou um valor (m) de um plano de bits mais significativo de um valor espetral (a), num valor de código (acod_m), em que o codificador aritmético é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor espetral ou de um plano de bits mais significativo de um valor espetral, num valor de código, em função de um valor numérico de r-Atif Avf λ iifnal / o \ rfnô H ^ o ^ >*δττδ nm λοΉρΗλ Ho γάπΉουΉλ λ Ή ι ί λ 1 · Ο em que o codificador aritmético é configurado para determinar o valor numérico de contexto atual (s) em função de uma pluralidade de valores espetrais previamente codificados; em que o codificador aritmético é configurado para avaliar pelo menos uma tabela (ari_s_hash, ari_gs_hash) utilizando uma redução iterativa de tamanho de intervalo para determinar se o valor numérico de contexto atual (s) é idêntico a um valor de contexto descrito por uma entrada (ari_s_hash[i], ari gs hash[i]) da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela, e para derivar um valor indice de regra de mapeamento (pki) que descreve uma regra de mapeamento selecionada.
  12. 12. Método para prover uma informação de áudio descodificada com base numa informação de áudio codificada, o método compreendendo: a provisão de uma pluralidade de valores espetrais descodificados com base numa representação aritmeticamente codificada dos valores espetrais; e a provisão de uma representação de áudio de domínio de tempo utilizando os valores espetrais descodificados, a fim de obter informações de áudio descodificadas; em que a provisão da pluralidade de valores espetrais descodificados compreende a seleção de uma regra de mapeamento que descreve um mapeamento de um valor de código (acod_m; valor), que representa um valor espetral (a) ou um plano de bits mais significativo (m) de um valor espetral, numa forma -F-i mim ολΗ i rtr\ H ^ ct 1 λ /o utyíKa 1 \ m ι δ -τδτϊ -r δ ο δ τί +- λ πτύϊ valor espetral (a) ou um plano de bits mars significativo (m) de um valor espetral, numa forma descodificada, em função de um valor numérico de contexto atual (s) que descreve um estado de contexto atual; e em que o valor numérico de contexto atual é determinado em função de uma pluralidade de valores espetrais previamente descodificados; em que pelo menos uma tabela é avaliada utilizando uma redução iterativa de tamanho de intervalo para determinar se o valor numérico de contexto atual é idêntico a um valor de contexto de tabela descrito por uma entrada da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela, e para derivar um valor indice de regra de mapeamento que descreve uma regra de mapeamento selecionada.
  13. 13. Método para prover uma informação de áudio codificada com base numa informação de áudio de entrada, o método compreendendo: a provisão de uma representação de áudio de domínio de frequência com base numa representação de domínio de tempo da informação de áudio de entrada utilizando uma conversão de domínio de frequência para domínio de tempo de compactação de energia, de modo que a representação de áudio de domínio de frequência compreenda um conjunto de valores espetrais; e a codificação aritmética de um valor espetral, ou uma versão sua pré-processada, utilizando uma palavra de código de extensão variável, em que um valor espetral ou um valor de um plano de w.—-ΐ -F -ϊ /“’•ΞιΗ—i ττλ Ηδ π m ττ Ί /'ν ν ο+- r δ Ί Δ τυιδλδ δ Ηλ ηπτη ττδ 1 av· de código; em que uma regra de mapeamento que descreve um mapeamento de um valor espetral ou de um plano de bits mais significativo de um valor espetral, num valor de código é selecionada em função de um valor numérico de contexto atual que descreve um estado de contexto atual; em que o valor numérico de contexto atual é determinado em função de uma pluralidade de valores espetrais previamente descodificados; e em que pelo menos uma tabela é avaliada utilizando uma redução iterativa de tamanho de intervalo para determinar se o valor numérico de contexto atual é idêntico a um valor de contexto de tabela descrito pela entrada da tabela ou existe dentro de um intervalo descrito pelas entradas da tabela e para determinar um valor indice de regra de mapeamento que descreve uma regra de mapeamento selecionada.
  14. 14. Programa de computador adaptado para realizar o método, de acordo com a reivindicação 12 ou reivindicação 13, quando o programa é executado num computador. Lisboa, 10 de janeiro de 2017
PT107680191T 2009-10-20 2010-10-19 Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo PT2491553T (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US25345909P 2009-10-20 2009-10-20

Publications (1)

Publication Number Publication Date
PT2491553T true PT2491553T (pt) 2017-01-20

Family

ID=43259832

Family Applications (1)

Application Number Title Priority Date Filing Date
PT107680191T PT2491553T (pt) 2009-10-20 2010-10-19 Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo

Country Status (18)

Country Link
US (10) US8706510B2 (pt)
EP (3) EP2491554B1 (pt)
JP (3) JP5707410B2 (pt)
KR (3) KR101411780B1 (pt)
CN (3) CN102667921B (pt)
AR (3) AR078705A1 (pt)
AU (1) AU2010309820B2 (pt)
BR (5) BR122022013482B1 (pt)
CA (4) CA2907353C (pt)
ES (3) ES2531013T3 (pt)
MX (3) MX2012004564A (pt)
MY (3) MY160813A (pt)
PL (3) PL2491553T3 (pt)
PT (1) PT2491553T (pt)
RU (3) RU2596596C2 (pt)
TW (3) TWI451403B (pt)
WO (3) WO2011048100A1 (pt)
ZA (3) ZA201203607B (pt)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3573056T3 (pl) 2008-07-11 2022-12-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio i dekoder audio
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
EP2491554B1 (en) 2009-10-20 2014-03-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule
JP5622865B2 (ja) * 2010-01-12 2014-11-12 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および以前の数値コンテキスト値の数値表現の修正を用いたコンピュータプログラム
KR101573829B1 (ko) * 2010-07-20 2015-12-02 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 최적화된 해시 테이블을 사용하는 컴퓨터 프로그램
CN110706715B (zh) 2012-03-29 2022-05-24 华为技术有限公司 信号编码和解码的方法和设备
AU2013285752B2 (en) 2012-07-02 2016-02-11 Samsung Electronics Co., Ltd. Method and apparatus for entropy coding video and method and apparatus for entropy decoding video
TWI557727B (zh) * 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
EP2830055A1 (en) * 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Context-based entropy coding of sample values of a spectral envelope
CN110634495B (zh) * 2013-09-16 2023-07-07 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
KR102315920B1 (ko) * 2013-09-16 2021-10-21 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
CN106233112B (zh) * 2014-02-17 2019-06-28 三星电子株式会社 信号编码方法和设备以及信号解码方法和设备
KR20170037970A (ko) 2014-07-28 2017-04-05 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
WO2016035731A1 (ja) * 2014-09-04 2016-03-10 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
TWI890652B (zh) * 2015-03-13 2025-07-11 瑞典商杜比國際公司 音訊處理單元、用於將經編碼的音訊位元流解碼之方法以及非暫態電腦可讀媒體
TWI693595B (zh) * 2015-03-13 2020-05-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
EP3107096A1 (en) * 2015-06-16 2016-12-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Downscaled decoding
WO2017050398A1 (en) * 2015-09-25 2017-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for signal-adaptive switching of the overlap ratio in audio transform coding
US10812550B1 (en) * 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
CN117037806A (zh) 2017-01-10 2023-11-10 弗劳恩霍夫应用研究促进协会 音频解码器和编码器、提供解码的音频信号的方法、提供编码的音频信号的方法、使用流标识符的音频流、音频流提供器和计算机程序
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
KR20200000649A (ko) * 2018-06-25 2020-01-03 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
TWI765164B (zh) * 2018-07-06 2022-05-21 弗勞恩霍夫爾協會 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式
TWI672911B (zh) * 2019-03-06 2019-09-21 瑞昱半導體股份有限公司 解碼方法及相關電路
CN111757168B (zh) * 2019-03-29 2022-08-19 腾讯科技(深圳)有限公司 音频解码方法、装置、存储介质及设备
US11024322B2 (en) * 2019-05-31 2021-06-01 Verizon Patent And Licensing Inc. Methods and systems for encoding frequency-domain data
KR102841237B1 (ko) * 2023-12-13 2025-08-05 정후근 후 알고리즘

Family Cites Families (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222189A (en) 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
US5768629A (en) 1993-06-24 1998-06-16 Discovision Associates Token-based adaptive video processing arrangement
US5659659A (en) 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
KR19990082402A (ko) * 1996-02-08 1999-11-25 모리시타 요이찌 광대역 오디오신호 부호장치, 광대역 오디오신호 복호장치, 광대역 오디오신호 부호 복호장치 및 광대역 오디오신호 기록매체
JP3305190B2 (ja) * 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置
US6269338B1 (en) 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
JP3367370B2 (ja) 1997-03-14 2003-01-14 三菱電機株式会社 適応符号化方法
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
JPH11225078A (ja) * 1997-09-29 1999-08-17 Canon Inf Syst Res Australia Pty Ltd データ圧縮方法及び装置
RU2214047C2 (ru) * 1997-11-19 2003-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для масштабируемого кодирования/декодирования аудиосигналов
KR100335611B1 (ko) * 1997-11-20 2002-10-09 삼성전자 주식회사 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6704705B1 (en) 1998-09-04 2004-03-09 Nortel Networks Limited Perceptual audio coding
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
AU1984100A (en) 1999-01-13 2000-08-01 Koninklijke Philips Electronics N.V. Embedding supplemental data in an encoded signal
DE19910621C2 (de) * 1999-03-10 2001-01-25 Thomas Poetter Vorrichtung und Verfahren zum Verbergen von Informationen und Vorrichtung und Verfahren zum Extrahieren von Informationen
US6751641B1 (en) 1999-08-17 2004-06-15 Eric Swanson Time domain data converter with output frequency domain conversion
US6978236B1 (en) 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
JP2001119302A (ja) 1999-10-15 2001-04-27 Canon Inc 符号化装置、復号装置、情報処理システム、情報処理方法、及び記憶媒体
US7260523B2 (en) 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US20020016161A1 (en) 2000-02-10 2002-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for compression of speech encoded parameters
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
US6538583B1 (en) * 2001-03-16 2003-03-25 Analog Devices, Inc. Method and apparatus for context modeling
CN1235192C (zh) 2001-06-28 2006-01-04 皇家菲利浦电子有限公司 传输系统以及用于接收窄带音频信号的接收机和方法
US20030093451A1 (en) 2001-09-21 2003-05-15 International Business Machines Corporation Reversible arithmetic coding for quantum data compression
DE10204617B4 (de) * 2002-02-05 2005-02-03 Siemens Ag Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
JP2003255999A (ja) 2002-03-06 2003-09-10 Toshiba Corp 符号化デジタルオーディオ信号の変速再生装置
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
JP4313757B2 (ja) * 2002-05-02 2009-08-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
KR100462611B1 (ko) * 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
JP3579047B2 (ja) * 2002-07-19 2004-10-20 日本電気株式会社 オーディオ復号装置と復号方法およびプログラム
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
EP2282310B1 (en) 2002-09-04 2012-01-25 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
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
AU2003272833A1 (en) * 2002-09-17 2004-04-08 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
FR2846179B1 (fr) 2002-10-21 2005-02-04 Medialive Embrouillage adaptatif et progressif de flux audio
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
AU2003208517A1 (en) 2003-03-11 2004-09-30 Nokia Corporation Switching between coding schemes
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7562145B2 (en) 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
JP2005130099A (ja) 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP2005184511A (ja) * 2003-12-19 2005-07-07 Nec Access Technica Ltd デジタル画像符号化装置及びその方法並びにデジタル画像復号化装置及びその方法
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
DE102004007200B3 (de) * 2004-02-13 2005-08-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
CA2457988A1 (en) 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
KR20050087956A (ko) 2004-02-27 2005-09-01 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
CA3026267C (en) 2004-03-01 2019-04-16 Dolby Laboratories Licensing Corporation Reconstructing audio signals with multiple decorrelation techniques and differentially coded parameters
US20090299756A1 (en) 2004-03-01 2009-12-03 Dolby Laboratories Licensing Corporation Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
KR100561869B1 (ko) * 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
US7577844B2 (en) 2004-03-17 2009-08-18 Microsoft Corporation Systems and methods for encoding randomly distributed features in an object
JP4842265B2 (ja) * 2004-07-14 2011-12-21 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ 信号の状況(コンテキスト)ベース符号化及び復号化
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
WO2006036442A2 (en) 2004-08-31 2006-04-06 Gopalakrishnan Kumar Method and system for providing information services relevant to visual imagery
RU2387024C2 (ru) 2004-11-05 2010-04-20 Панасоник Корпорэйшн Кодер, декодер, способ кодирования и способ декодирования
US7903824B2 (en) 2005-01-10 2011-03-08 Agere Systems Inc. Compact side information for parametric coding of spatial audio
KR100829558B1 (ko) * 2005-01-12 2008-05-14 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
WO2006075901A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
JP5129117B2 (ja) 2005-04-01 2013-01-23 クゥアルコム・インコーポレイテッド 音声信号の高帯域部分を符号化及び復号する方法及び装置
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7196641B2 (en) 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
KR101492826B1 (ko) 2005-07-14 2015-02-13 코닌클리케 필립스 엔.브이. 다수의 출력 오디오 채널들을 생성하기 위한 장치 및 방법과, 그 장치를 포함하는 수신기 및 오디오 재생 디바이스, 데이터 스트림 수신 방법, 및 컴퓨터 판독가능 기록매체
KR100851970B1 (ko) * 2005-07-15 2008-08-12 삼성전자주식회사 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치
US7539612B2 (en) 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
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
US20070036228A1 (en) 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
US20080221907A1 (en) 2005-09-14 2008-09-11 Lg Electronics, Inc. Method and Apparatus for Decoding an Audio Signal
JP2009510962A (ja) * 2005-10-03 2009-03-12 ノキア コーポレイション 独立変数のための適応性可変長コード
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
US7272504B2 (en) * 2005-11-15 2007-09-18 Baker Hughes Incorporated Real-time imaging while drilling
CN101167368B (zh) 2005-12-05 2012-03-28 华为技术有限公司 一种实现算术编解码的方法及装置
KR101237413B1 (ko) * 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
CN101133649B (zh) * 2005-12-07 2010-08-25 索尼株式会社 编码装置、编码方法以及解码装置、解码方法
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080225A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
WO2007080211A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
KR100774585B1 (ko) 2006-02-10 2007-11-09 삼성전자주식회사 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
US8027479B2 (en) 2006-06-02 2011-09-27 Coding Technologies Ab Binaural multi-channel decoder in the context of non-energy conserving upmix rules
US7948409B2 (en) 2006-06-05 2011-05-24 Mediatek Inc. Automatic power control system for optical disc drive and method thereof
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
EP1883067A1 (en) * 2006-07-24 2008-01-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream
CN101501761B (zh) 2006-08-15 2012-02-08 杜比实验室特许公司 无需边信息对时域噪声包络的任意整形
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
JP4785706B2 (ja) 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
DE102007017254B4 (de) 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
US20080243518A1 (en) 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
KR100868763B1 (ko) 2006-12-04 2008-11-13 삼성전자주식회사 오디오 신호의 중요 주파수 성분 추출 방법 및 장치와 이를이용한 오디오 신호의 부호화/복호화 방법 및 장치
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
KR101412255B1 (ko) 2006-12-13 2014-08-14 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치 및 이들의 방법
JP4745445B2 (ja) * 2006-12-27 2011-08-10 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 変換係数ブロックを符号化するための装置と方法
CN101231850B (zh) 2007-01-23 2012-02-29 华为技术有限公司 编解码方法及装置
KR101365989B1 (ko) 2007-03-08 2014-02-25 삼성전자주식회사 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법
US7498960B2 (en) * 2007-04-19 2009-03-03 Analog Devices, Inc. Programmable compute system for executing an H.264 binary decode symbol instruction
JP2008289125A (ja) 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
AU2008243406B2 (en) 2007-04-26 2011-08-25 Dolby International Ab Apparatus and method for synthesizing an output signal
JP4748113B2 (ja) 2007-06-04 2011-08-17 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
EP2158587A4 (en) * 2007-06-08 2010-06-02 Lg Electronics Inc METHOD AND DEVICE FOR PROCESSING AUDIO SIGNAL
KR101196506B1 (ko) 2007-06-11 2012-11-01 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 임펄스형 부분 및 정적 부분을 갖는 오디오 신호를 인코딩하는 오디오 인코더 및 인코딩 방법, 디코더, 디코딩 방법 및 인코딩된 오디오 신호
US8521540B2 (en) 2007-08-17 2013-08-27 Qualcomm Incorporated Encoding and/or decoding digital signals using a permutation value
WO2009027606A1 (fr) 2007-08-24 2009-03-05 France Telecom Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
TWI351180B (en) * 2007-09-29 2011-10-21 Novatek Microelectronics Corp Data encoding/decoding method and related apparatus capable of lowering signal power spectral density
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8527265B2 (en) 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
US7714753B2 (en) 2007-12-11 2010-05-11 Intel Corporation Scalable context adaptive binary arithmetic coding
US8631060B2 (en) 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
DE602008005250D1 (de) * 2008-01-04 2011-04-14 Dolby Sweden Ab Audiokodierer und -dekodierer
US8554550B2 (en) 2008-01-28 2013-10-08 Qualcomm Incorporated Systems, methods, and apparatus for context processing using multi resolution analysis
JP4893657B2 (ja) 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
CN101965612B (zh) 2008-03-03 2012-08-29 Lg电子株式会社 用于处理音频信号的方法和装置
TR201910850T4 (tr) 2008-03-10 2019-08-21 Fraunhofer Ges Forschung Geçici bir olayı olan bir ses sinyalini değiştirmek için cihaz ve metot
KR101570550B1 (ko) * 2008-03-14 2015-11-19 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치 및 이러한 방법
EP2284796A4 (en) 2008-04-28 2012-10-31 Univ Osaka Prefect Public Corp METHOD FOR GENERATING AN IMAGE DATABASE FOR OBJECT DETECTION, PROCESSING DEVICE AND PROCESSING PROGRAM
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
EP2346029B1 (en) * 2008-07-11 2013-06-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for encoding an audio signal and corresponding computer program
PL3573056T3 (pl) 2008-07-11 2022-12-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio i dekoder audio
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
EP2146344B1 (en) * 2008-07-17 2016-07-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoding/decoding scheme having a switchable bypass
US20110137661A1 (en) 2008-08-08 2011-06-09 Panasonic Corporation Quantizing device, encoding device, quantizing method, and encoding method
US20100088090A1 (en) * 2008-10-08 2010-04-08 Motorola, Inc. Arithmetic encoding for celp speech encoders
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
GB2466666B (en) * 2009-01-06 2013-01-23 Skype Speech coding
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US8457975B2 (en) 2009-01-28 2013-06-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio decoder, audio encoder, methods for decoding and encoding an audio signal and computer program
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
JP5699141B2 (ja) 2009-06-23 2015-04-08 ヴォイスエイジ・コーポレーション 重み付けされた信号領域またはオリジナルの信号領域で適用される順方向時間領域エイリアシング取り消し
BR112012007803B1 (pt) 2009-10-08 2022-03-15 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Decodificador de sinal de áudio multimodal, codificador de sinal de áudio multimodal e métodos usando uma configuração de ruído com base em codificação de previsão linear
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
EP2491554B1 (en) 2009-10-20 2014-03-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
JP5622865B2 (ja) * 2010-01-12 2014-11-12 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および以前の数値コンテキスト値の数値表現の修正を用いたコンピュータプログラム
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
KR101573829B1 (ko) * 2010-07-20 2015-12-02 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 최적화된 해시 테이블을 사용하는 컴퓨터 프로그램
CN103282958B (zh) 2010-10-15 2016-03-30 华为技术有限公司 信号分析器、信号分析方法、信号合成器、信号合成方法、变换器和反向变换器
US20120207400A1 (en) * 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US8170333B2 (en) * 2011-10-13 2012-05-01 University Of Dayton Image processing systems employing image compression

Also Published As

Publication number Publication date
CN102667921A (zh) 2012-09-12
US20140081645A1 (en) 2014-03-20
BR122022013454B1 (pt) 2023-05-16
PL2491553T3 (pl) 2017-05-31
JP5245014B2 (ja) 2013-07-24
ZA201203609B (en) 2013-01-30
EP2491554B1 (en) 2014-03-05
US20120330670A1 (en) 2012-12-27
WO2011048099A1 (en) 2011-04-28
RU2012122277A (ru) 2013-11-27
JP2013508764A (ja) 2013-03-07
JP5589084B2 (ja) 2014-09-10
KR101411780B1 (ko) 2014-06-24
KR20120074310A (ko) 2012-07-05
US11443752B2 (en) 2022-09-13
JP5707410B2 (ja) 2015-04-30
JP2013508762A (ja) 2013-03-07
JP2013508763A (ja) 2013-03-07
MY160807A (en) 2017-03-31
ZA201203610B (en) 2013-01-30
HK1175289A1 (en) 2013-06-28
BR112012009446B1 (pt) 2023-03-21
CA2778368C (en) 2016-01-26
ZA201203607B (en) 2013-01-30
PL2491552T3 (pl) 2015-06-30
US20230162742A1 (en) 2023-05-25
TW201129969A (en) 2011-09-01
KR101419151B1 (ko) 2014-07-11
HK1175290A1 (en) 2013-06-28
RU2012122278A (ru) 2013-11-27
US20120278086A1 (en) 2012-11-01
TWI451403B (zh) 2014-09-01
CN102667923B (zh) 2014-11-05
EP2491553A1 (en) 2012-08-29
US9978380B2 (en) 2018-05-22
AR078707A1 (es) 2011-11-30
CA2907353C (en) 2018-02-06
ES2454020T3 (es) 2014-04-09
EP2491552B1 (en) 2014-12-31
BR122022013482B1 (pt) 2023-04-04
AU2010309820B2 (en) 2014-05-08
US8706510B2 (en) 2014-04-22
KR20120074306A (ko) 2012-07-05
CA2778325C (en) 2015-10-06
KR20120074312A (ko) 2012-07-05
US20120265540A1 (en) 2012-10-18
RU2596596C2 (ru) 2016-09-10
BR112012009445B1 (pt) 2023-02-14
CA2778325A1 (en) 2011-04-28
KR101419148B1 (ko) 2014-07-11
BR122022013496B1 (pt) 2023-05-16
US20240412742A1 (en) 2024-12-12
TWI426504B (zh) 2014-02-11
WO2011048100A1 (en) 2011-04-28
MY160813A (en) 2017-03-31
CA2907353A1 (en) 2011-04-28
EP2491552A1 (en) 2012-08-29
TW201137858A (en) 2011-11-01
AU2010309820A1 (en) 2012-06-07
BR112012009446A2 (pt) 2021-12-07
AR078705A1 (es) 2011-11-30
MX2012004564A (es) 2012-06-08
RU2591663C2 (ru) 2016-07-20
MX2012004572A (es) 2012-06-08
US20240412740A1 (en) 2024-12-12
TW201137857A (en) 2011-11-01
EP2491553B1 (en) 2016-10-12
CA2778368A1 (en) 2011-04-28
AR078706A1 (es) 2011-11-30
US8655669B2 (en) 2014-02-18
RU2012122275A (ru) 2013-11-27
ES2610163T3 (es) 2017-04-26
CN102667922B (zh) 2014-09-10
EP2491554A1 (en) 2012-08-29
PL2491554T3 (pl) 2014-08-29
CN102667923A (zh) 2012-09-12
AU2010309821A1 (en) 2012-06-07
ES2531013T3 (es) 2015-03-10
WO2011048098A1 (en) 2011-04-28
BR112012009445A2 (pt) 2022-03-03
AU2010309898A1 (en) 2012-06-07
RU2605677C2 (ru) 2016-12-27
US20240412741A1 (en) 2024-12-12
CN102667921B (zh) 2014-09-10
US20180174593A1 (en) 2018-06-21
CA2778323A1 (en) 2011-04-28
MX2012004569A (es) 2012-06-08
US8612240B2 (en) 2013-12-17
US12080300B2 (en) 2024-09-03
TWI430262B (zh) 2014-03-11
CA2778323C (en) 2016-09-20
BR112012009448A2 (pt) 2022-03-08
US20240412743A1 (en) 2024-12-12
CN102667922A (zh) 2012-09-12
MY188408A (en) 2021-12-08

Similar Documents

Publication Publication Date Title
PT2491553T (pt) Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
ES2532203T3 (es) Codificador de audio, decodificador de audio, método para codificar y decodificar una información de audio y programa de computación que obtiene un valor de contexto de sub-región basado en una norma de valores espectrales previamente decodificados
ES2937066T3 (es) Decodificador de audio, procedimiento y programa informático para decodificación de audio
BR112012009448B1 (pt) Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio que utiliza uma redução iterativa de tamanho de intervalo
BR122024007444A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio
BR112013001535B1 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio e método de decodificação de uma informação de áudio
BR122021003398A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio e programa de computador que utiliza uma tabela hash otimizada
BR122021003390A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio e programa de computador que utiliza uma tabela hash otimizada
HK1175291B (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction
BR122024007438A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio e método de decodificação de uma informação de áudio.
BR122021003398B1 (pt) Método para prover uma informação de áudio decodificada
BR122024007446A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio
BR122021003390B1 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio
BR122024007449A2 (pt) Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, método de decodificação de uma informação de áudio
BR122024007438B1 (pt) Decodificador de áudio, para prover uuma informação de áudio decodificada
BR122024007444B1 (pt) Decodificador de áudio, para prover uuma informação de áudio decodificada
BR122024007446B1 (pt) Decodificador de áudio, para prover uuma informação de áudio decodificada
BR122024007449B1 (pt) Decodificador de áudio, para prover uuma informação de áudio decodificada
HK1175289B (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
HK1175290B (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule