BR112012009445B1 - 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 detecção de um grupo de valores espectrais previamente decodificados - Google Patents

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 detecção de um grupo de valores espectrais previamente decodificados Download PDF

Info

Publication number
BR112012009445B1
BR112012009445B1 BR112012009445-9A BR112012009445A BR112012009445B1 BR 112012009445 B1 BR112012009445 B1 BR 112012009445B1 BR 112012009445 A BR112012009445 A BR 112012009445A BR 112012009445 B1 BR112012009445 B1 BR 112012009445B1
Authority
BR
Brazil
Prior art keywords
value
spectral
audio
decoded
spectral values
Prior art date
Application number
BR112012009445-9A
Other languages
English (en)
Other versions
BR112012009445A2 (pt
Inventor
Guillaume Fuchs
Vignesh Subbaraman
Nikolaus Rettelbach
Markus Multrus
Marc Gayer
Patrick Warmbold
Christian GRIEBEL
Oliver Weiss
Original Assignee
Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. filed Critical Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V.
Publication of BR112012009445A2 publication Critical patent/BR112012009445A2/pt
Publication of BR112012009445B1 publication Critical patent/BR112012009445B1/pt

Links

Images

Classifications

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

Abstract

CODIFICADOR DE ÁUDIO, DECODIFICADOR DE ÁUDIO, MÉTODO PARA CODIFICAR UMA INFORMAÇÃO DE ÁUDIO, MÉTODO PARA DECODIFICAR UMA INFORMAÇÃO DE ÁUDIO E PROGRAMA DE COMPUTADOR QUE UTILIZA UMA DETECÇÃO DE UM GRUPO DE VALORES ESPECTRAIS PREVIAMENTE DECODIFICADOS Um decodificador de áudio (200) para prover uma informação de áudio decodificado (212) com base em uma informação de áudio codificada (210) compreende um decodifi-cador aritmético (230) para prover uma pluralidade de valores espectrais decodificados (232) com base em uma representação aritmeticamente codificada (222) dos valores espectrais e um conversor de domínio de frequência para domínio de tempo (260) para prover uma representação de áudio de domínio de tempo (262) utilizando os valores espectrais decodificados, a fim de obter as informações de áudio decodificado. O decodificador aritmético (230) é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor de código em um código de símbolo em dependência de um estado de contexto. O decodificador aritmético é configurado para determinar ou modificar o estado de contexto atual em dependência de uma pluralidade de valores espectrais previamente decodificados.

Description

CAMPO TÉCNICO
As realizações, de acordo com a invenção, são relacionadas a um decodificador de áudio para prover uma informação de áudio decodificado com base em uma informação de áudio codificada, um codificador de áudio para prover uma informação de áudio codificada com base em uma informação de áudio de entrada, um método para prover uma informação de áudio decodificado com base em uma informação de áudio codificada, um método para prover uma informação de áudio codificada com base em uma informação de áudio de entrada e um programa de computador.
As realizações, de acordo com a invenção, são relacionadas a uma codificação silenciosa espectral melhorada, que pode ser utilizada em um codificador ou decodificador de áudio, como, por exemplo, um denominado codificador de fala e áudio unificado (USAC).
HISTÓRICO DA INVENÇÃO
A seguir, o histórico da invenção será brevemente explicado 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 do Padrão Internacional ISO/IEC 14496-3. A parte 3 desse padrão se refere a uma codificação e decodificação de conteúdos de áudio, e a subparte 4 da parte 3 é relacionada à codificação de áudio em geral. ISO/IEC 14496 parte 3, subparte 4 define um conceito para codificar e decodificar 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 no dito Padrão, um sinal de áudio de domínio de tempo é convertido em uma representação de frequência de tempo. A transformação do domínio de tempo para o domínio de frequência de tempo é tipicamente realizada utilizando blocos de transformação, que também são designados como “estruturas”, das amostras de domínio de tempo. Descobriu-se que é vantajoso utilizar estruturas de sobreposição, que são alteradas, por exemplo, pela metade de uma estrutura, porque a sobreposição permite evitar de modo eficiente (ou pelo menos reduzir) artefatos. Além disso, descobriu-se que um janelamento deve ser realizado a fim de evitar os artefatos que se originam desse processamento de estruturas temporariamente limitadas.
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 espectrais compreendam uma magnitude significativamente maior que uma pluralidade de outros valores espectrais. Da mesma forma, há, em muitos casos, um número comparativamente pequeno de valores espectrais tendo uma magnitude, que está significativamente acima de uma magnitude média dos valores espectrais. Um exemplo típico de uma transformação de domínio de tempo para domínio de frequência de tempo que resulta em uma compactação de energia é a denominada transformada do cosseno discreta modificada (MDCT).
Os valores espectrais 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 espectrais psicoacusticamente mais importantes e sejam comparativamente maiores para valores espectrais psicoacusticamente menos importantes. Os valores espectrais 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 espectrais quantificados é descrito no Padrão Internacional ISO/IEC 14496-3:2005(E), parte 3, subparte 4.
Entretanto, descobriu-se que a qualidade da codificação dos valores espectrais tem um impacto significativo na taxa de bits necessária. Também, descobriu-se que a complexidade de um decodificador de áudio, que é geralmente implementado em um 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 espectrais.
Tendo em vista essa situação, há uma necessidade de um conceito para uma codificação e decodificação de um conteúdo de áudio, que provê uma troca melhorada entre a eficiência de taxa de bits e eficiência do recurso.
SUMÁRIO DA INVENÇÃO
Uma realização, de acordo com a invenção, cria um decodificador de áudio para prover uma informação de áudio decodificado (ou representação de áudio decodificado) com base em uma informação de áudio codificada (ou representação de áudio codificado). O decodificador de áudio compreende um decodificador aritmético para prover uma pluralidade de valores espectrais decodificados com base em uma representação aritmeticamente codificada dos valores espectrais. O decodificador de áudio também compreende um conversor de domínio de frequência para domínio de tempo para prover uma representação de áudio de domínio de tempo utilizando os valores espectrais decodificados, a fim de obter as informações de áudio decodificado. O decodificador aritmético é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor de código em um código de símbolo em dependência de um estado de contexto. O decodificador aritmético é configurado para determinar o estado de contexto atual em dependência de uma pluralidade de valores espectrais previamente decodificados. O decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais previamente decodificados, que atenda, individualmente ou considerado juntamente, uma condição predeterminada em relação a suas magnitudes e para determinar ou modificar o estado de contexto atual em dependência de um resultado da detecção.
Essa realização, de acordo com a invenção, tem base na descoberta de que a presença de um grupo de uma pluralidade de valores espectrais previamente decodificados (preferencial, mas não necessariamente, adjacentes), que atendam à condição predeterminada em relação a suas magnitudes, permite uma determinação particularmente eficiente do estado de contexto atual, uma vez que esse grupo de valores espectrais previamente decodificados (preferencialmente, adjacentes) é um aspecto característico dentro da representação espectral e pode, portanto, ser utilizado para facilitar a determinação do estado de contexto atual. Ao detectar um grupo de uma pluralidade de valores espectrais previamente decodificados (preferencialmente, adjacentes) que compreendem, por exemplo, uma magnitude particularmente pequena, é possível reconhecer partes de amplitude comparativamente baixa dentro do espectro e ajustar (determinar ou modificar) o estado de contexto atual da mesma forma, de modo que valores espectrais adicionais possam ser codificados e decodificados com boa eficiência de codificação (em termos de taxa de bits). De modo alternativo, grupos de uma pluralidade de valores espectrais adjacentes previamente decodificados que compreendem uma amplitude comparativamente grande podem ser detectados e o contexto pode ser adequadamente ajustado (determinado ou modificado) para aumentar a eficiência da codificação e decodificação. Além disso, a detecção de grupos de uma pluralidade de valores espectrais previamente decodificados (preferencialmente, adjacentes) que atendam, individualmente ou considerados juntamente, à condição predeterminada, é geralmente executável com esforço computacional menor que uma computação de contexto na qual muitos valores espectrais previamente decodificados são combinados. Para resumir, a realização discutida acima, de acordo com a invenção, permite uma computação de contexto simplificada e permite um ajuste do contexto para especificar constelações de sinal nas quais há grupos de valores espectrais comparativamente pequenos adjacentes ou grupos de valores espectrais comparativamente grandes adjacentes.
Em uma realização preferida, o decodificador aritmético é configurado para determinar ou modificar o estado de contexto atual independente dos valores espectrais previamente decodificados em resposta à detecção de que a condição predeterminada é atendida. Da mesma forma, um mecanismo eficiente particularmente de modo computacional é obtido para a derivação de um valor que descreve o contexto. Descobriu-se que uma adaptação significativa do contexto pode ser alcançada se uma detecção de um grupo de uma pluralidade de valores espectrais previamente decodificados, que atende à condição predeterminada, resultar em um mecanismo simples que não precise de uma combinação numérica de demanda computacional de valores espectrais previamente decodificados. Assim, o esforço computacional é reduzido quando comparado a outras abordagens. Também, uma aceleração da derivação de contexto pode ser alcançada ao omitir etapas de cálculo complexas que são dependentes da detecção, porque esse conceito é tipicamente ineficiente em uma implementação em software executada em um processador.
Em uma realização preferida, o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes.
Em uma realização preferida, o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que, individualmente ou considerado juntamente, compreende uma magnitude que é menor que uma magnitude limite predeterminada, e para determinar o estado de contexto atual em dependência do resultado da detecção. Descobriu-se que um grupo de uma pluralidade de valores espectrais comparativamente baixos adjacentes pode ser utilizado para selecionar um contexto que é bem adaptado para essa situação. Se houver um grupo de valores espectrais comparativamente pequenos adjacentes, há uma probabilidade significativa de que o valor espectral a ser codificado depois também compreenda um valor comparativamente pequeno. Da mesma forma, um ajuste do contexto provê uma boa eficiência de codificação e pode auxiliar na evasão de computações de contexto que levam tempo.
Em uma realização preferida, o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, em que cada um dos valores espectrais previamente decodificados é um valor zero, e para determinar o estado de contexto em dependência do resultado da detecção. Descobriu-se que, devido a efeitos de encobrimento espectral ou temporal, há geralmente grupos de valores espectrais adjacentes que consideram um valor zero. A realização descrita provê uma administração eficiente para essa situação. Além disso, a presença de um grupo de valores espectrais adjacentes, que são quantificados a zero, torna muito provável que o valor espectral a ser decodificado depois seja um valor zero ou um valor espectral comparativamente grande, o que resulta no efeito de encobrimento.
Em uma realização preferida, o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que compreende um valor de soma que é menor que um valor limite predeterminado, e para determinar o estado de contexto em dependência de um resultado da detecção. Descobriu-se que, além dos grupos de valores espectrais adjacentes que são zero, também, grupos de valores espectrais adjacentes que são quase zero em uma média (isto é, um valor de soma que é menor que um valor limite predeterminado), constituem um aspecto característico de uma representação espectral (por exemplo, uma representação de frequência de tempo do conteúdo de áudio) que pode ser utilizado para a adaptação do contexto.
Em uma realização preferida, o decodificador aritmético é configurado para ajustar o estado de contexto atual a um valor predeterminado em resposta à detecção da condição predeterminada. Descobriu-se que essa reação é muito simples de implementar e ainda resulta em uma adaptação do contexto que provê uma boa eficiência de codificação.
Em uma realização preferida, o decodificador aritmético é configurado para omitir seletivamente um cálculo do estado de contexto atual em dependência dos valores numéricos de uma pluralidade de valores espectrais previamente decodificados em resposta da detecção da condição predeterminada. Da mesma forma, a computação de contexto é significativamente simplificada em resposta da detecção de um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que atenda à condição predeterminada. Ao evitar o esforço computacional, um consumo de energia do decodificador de sinal de áudio também é reduzido, o que provê vantagens significativas em dispositivos móveis.
Em uma realização preferida, o decodificador aritmético é configurado para ajustar o estado de contexto atual a um valor que sinalize a detecção da condição predeterminada. Ao ajustar o estado de contexto a esse valor, que pode estar dentro de uma variação predeterminada de valores, a avaliação posterior do estado de contexto pode ser controlada. Entretanto, deve ser observado que o valor ao qual o estado de contexto atual está ajustado pode ser dependente de outros critérios também, apesar de o valor poder estar em uma variação característica de valores que sinaliza a detecção da condição predeterminada.
Em uma realização preferida, o decodificador aritmético é configurado para mapear um código de símbolo em um valor espectral decodificado.
Em uma realização preferida, o decodificador aritmético é configurado para avaliar valores espectrais de uma primeira região de frequência de tempo, para detectar um grupo de uma pluralidade de valores espectrais que atenda, individualmente ou considerado juntamente, à condição predeterminada em relação a suas magnitudes. O decodificador aritmético é configurado para obter um valor numérico que representa o estado de contexto, em dependência de valores espectrais de uma segunda região de frequência de tempo, que é diferente da primeira região de frequência de tempo, se a condição predeterminada não for atendida. Descobriu-se que é recomendável detectar um grupo de uma pluralidade de valores espectrais que atenda à condição predeterminada em relação à magnitude dentro de uma região que difere da região normalmente utilizada para a computação de contexto. Isso se deve ao fato de que uma extensão, por exemplo, uma extensão de frequência, de regiões compreendendo valores espectrais comparativamente pequenos ou valores espectrais comparativamente grandes, é tipicamente maior que uma dimensão de uma região de valores espectrais que devem ser considerados para um cálculo numérico de um valor numérico que representa o estado de contexto. Da mesma forma, é recomendável analisar as diferentes regiões para a detecção de um grupo de uma pluralidade de valores espectrais que atenda à condição predeterminada e para a computação numérica de um valor numérico que representa o estado de contexto (em que o cálculo numérico pode somente ser esperado em uma segunda etapa se a detecção não prover um bit).
Em uma realização preferida, o decodificador aritmético é configurado para avaliar uma ou mais tabelas de dispersão para selecionar uma regra de mapeamento em dependência do estado de contexto. Descobriu-se que a seleção da regra de mapeamento pode ser controlada pelo mecanismo de detecção de uma pluralidade de valores espectrais adjacentes que atenda à condição predeterminada.
Uma realização, de acordo com a invenção, cria um codificador de áudio para prover uma informação de áudio codificada, com base em uma informação de áudio de entrada. O codificador de áudio compreende um conversor de domínio de compactação de e nergia para domínio de tempo para frequência para prover uma representação de áudio de domínio de frequência, com base em uma representação de domínio de tempo da informação de áudio de entrada, de modo que a representação de áudio de domínio de frequência compreenda um conjunto de valores espectrais. O codificador de áudio também compreende um codificador aritmético configurado para codificar um valor espectral ou uma versão pré- processada dele, utilizando uma senha de extensão variável. O codificador aritmético é configurado para mapear um valor espectral ou um valor de um plano de bits mais significativo de um valor espectral em um valor de código. O codificador aritmético é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor espectral ou de um plano de bits mais significativo de um valor espectral em um valor de código em dependência do estado de contexto. O codificador aritmético é configurado para determinar o estado de contexto atual em dependência de uma pluralidade de valores espectrais adjacentes previamente codificados. O codificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados, que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes e para determinar o estado de contexto atual em dependência de um resultado da detecção.
Esse codificador de sinal de áudio tem base nas mesmas descobertas que o decodificador de sinal de áudio discutidas acima. Descobriu-se que o mecanismo para adaptação do contexto, que apresentou ser eficiente para a decodificação de um conteúdo de áudio, também deve ser aplicado no lado do codificador, a fim de permitir um sistema consistente.
Uma realização, de acordo com a invenção, cria um método para prover informações de áudio decodificado com base na informação de áudio codificada.
Ainda, outra realização, de acordo com a invenção, cria um método para prover informação de áudio codificada com base em uma informação de áudio de entrada. Outra realização, de acordo com a invenção, cria um programa de computador para realizar um dos ditos métodos.
Os métodos e o programa de computador têm base nas mesmas descobertas que a do decodificador de áudio descrito acima e do codificador de áudio descrito acima.
BREVE DESCRIÇÃO DAS FIGURAS
As realizações, 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 realização da invenção;
A Figura 2 apresenta um diagrama de blocos esquemático de um decodificador de áudio, de acordo com uma realização da invenção;
A Figura 3 apresenta uma representação de código de pseudo-programa de um algoritmo “value_decode()” para decodificar um valor espectral; A Figura 4 apresenta uma representação esquemática de um contexto para um cálculo de estado;
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 í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 í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 decodificar aritmeticamente um símbolo de uma senha 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 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 controle “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 espectrais aritmeticamente codificados; A Figura 6g apresenta uma representação de sintaxe para decodificar um conjunto de valores espectrais;
A Figura 7 apresenta um diagrama de blocos esquemático de um codificador de áudio, de acordo com outra realização da invenção;
A Figura 8 apresenta um diagrama de blocos esquemático de um decodificador de áudio, de acordo com outra 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 do padrão 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 do padrão 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 realizações, 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 do padrão 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 do padrão 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 decodificador USAC total, de acordo com a presente invenção e de acordo com o conceito de acordo com o projeto de trabalho 4 do padrão 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 do padrão de projeto da USAC e um decodificador aritmético, de acordo com uma realização da presente invenção;
A Figura 13b apresenta uma representação de tabela de um controle 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 do padrão de projeto da USAC e o codificador aritmético de acordo com uma 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 do padrão de projeto da USAC, e de acordo com uma realização da presente invenção;
A Figura 15 apresenta uma representação de tabela de taxas de bits mínimas, máximas e médias de USAC na base de uma estrutura;
A Figura 16 apresenta uma representação de tabela dos melhores e piores casos na base de estrutura;
DESCRIÇÃO DETALHADA DAS REALIZAÇÕES 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 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 domínio de tempo para domínio de frequência de compactação de energia 720 que é configurado para prover uma representação de áudio de domínio de frequência 722 com base em uma representação de domínio de tempo da informação de áudio de entrada 710, de modo que a representação de áudio de domínio de frequência 722 compreenda um conjunto de valores espectrais. O codificador de áudio 700 também compreende um codificador aritmético 730 configurado para codificar um valor espectral (fora do conjunto de valores espectrais que forma a representação de áudio de domínio de frequência 722), ou uma versão pré-processada dele, utilizando uma senha de extensão variável para obter a informação de áudio codificada 712 (que pode compreender, por exemplo, uma pluralidade de senhas de extensão variável).
O codificador aritmético 730 é configurado para mapear um valor espectral ou um valor de um plano de bits mais significativo de um valor espectral em um valor de código (isto é, em uma senha de extensão variável), em dependência de um estado de contexto. O codificador aritmético 730 é configurado para selecionar uma regra de mapeamento que descreve um mapeamento de um valor espectral ou de um plano de bits mais significativo de um valor espectral em um valor de código, em dependência de um estado de contexto. O codificador aritmético é configurado para determinar o estado de contexto atual em dependência de uma pluralidade de valores espectrais previamente codificados (preferencial, mas não necessariamente, adjacentes). Para este fim, o codificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados, que atenda, individualmente ou considerada juntamente, a uma condição predeterminada em relação a suas magnitudes, e determinar o estado de contexto atual em dependência de um resultado da detecção.
Como pode ser visto, o mapeamento de um valor espectral ou de um plano de bits mais significativo de um valor espectral em um valor de código pode ser realizado por uma codificação de valor espectral 740 utilizando uma regra de mapeamento 742. Um rastreador de estado 750 pode ser configurado para rastrear o estado de contexto e pode compreender um detector de grupo 752 para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados que atenda, individualmente ou considerada juntamente, à condição predeterminada em relação a suas magnitudes. O rastreador de estado 750 também é preferencialmente configurado para determinar o estado de contexto atual em dependência do resultado da dita detecção realizada pelo detector de grupo 752. Da mesma forma, o rastreador 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 espectral ou de um plano de bits mais significativo de um valor espectral em um 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 espectral 740.
Para resumir o dito 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 dependência de valores espectrais previamente codificados. Da mesma forma, valores espectrais adjacentes no tempo e/ou frequência (ou pelo menos, dentro de um ambiente predeterminado) entre si e/ou ao valor espectral atualmente codificado (isto é, valores espectrais dentro de um ambiente predeterminado do valor espectral 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 detecção é realizada a fim de detectar se há um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados que atenda, individualmente ou considerado juntamente, à condição predeterminada em relação a suas magnitudes. O resultado dessa detecção é aplicado na seleção do estado de contexto atual, isto é, na seleção de uma regra de mapeamento. Ao detectar se há um grupo de uma pluralidade de valores espectrais que são particularmente pequenos ou particularmente grandes, é possível reconhecer aspectos 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 aspectos especiais como, por exemplo, um grupo de uma pluralidade de valores espectrais 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 detecção do grupo de valores espectrais adjacentes que atenda à condição predeterminada, que é tipicamente utilizada em combinação a uma avaliação de contexto alternativa com base em uma combinação 19/112 de uma pluralidade de valores espectrais 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. DECODIFICADOR DE ÁUDIO, DE ACORDO COM A FIGURA 8
A Figura 8 apresenta um diagrama de blocos esquemático de um decodificador de áudio 800. O decodificador de áudio 800 é configurado para receber uma informação de áudio codificada 810 e para prover, com base nisso, uma informação de áudio decodificado 812. O decodificador de áudio 800 compreende um decodificador aritmético 820 que é configurado para prover uma pluralidade de valores espectrais decodificados 822 com base em uma representação aritmeticamente codificada 821 dos valores espectrais. O decodificador de áudio 800 também compreende um conversor de domínio de frequência para domínio de tempo 830 que é configurado para receber os valores espectrais decodificados 822 e para prover a representação de áudio de domínio de tempo 812, que pode constituir as informações de áudio decodificado, utilizando os valores espectrais decodificados 822, a fim de obter uma informação de áudio decodificado 812.
O decodificador aritmético 820 compreende um determinador de valor espectral 824 que é configurado para mapear um valor de código da representação aritmeticamente codificada 821 de valores espectrais em um código de símbolo que representa um ou mais dos valores espectrais decodificados ou pelo menos uma parte (por exemplo, um plano de bits mais significativo) de um ou mais dos valores espectrais decodificados. O determinador de valor espectral 824 pode ser configurado para realizar o mapeamento em dependência de uma regra de mapeamento, que pode ser descrita por uma informação de regra de mapeamento 828a.
O decodificador 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 espectrais) em um código de símbolo (que descreve um ou mais valores espectrais) em dependência de um estado de contexto (que pode ser descrito pela informação de estado de contexto 826a). O decodificador aritmético 820 é configurado para determinar o estado de contexto atual em dependência de uma pluralidade de valores espectrais previamente decodificados 822. Para esse fim, um rastreador de estado 826 pode ser utilizado, que recebe uma informação que descreve os valores espectrais previamente decodificados. O decodificador aritmético também é configurado para detectar um grupo de uma pluralidade de valores espectrais previamente decodificados (preferencial, mas não necessariamente, adjacentes), que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, e para determinar o estado de contexto atual (descrito, por exemplo, pela informação de estado de contexto 826a) em dependência de um resultado da detecção.
A detecção do grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que atenda à condição predeterminada em relação a suas magnitudes pode, por exemplo, ser realizada por um detector de grupo, que é parte do rastreador 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 828, 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 espectral 824.
Em relação à funcionalidade do decodificador de sinal de áudio 800, deve ser observado que o decodificador aritmético 820 é configurado para selecionar uma regra de mapeamento (por exemplo, uma tabela de frequências cumulativas) que é, em uma média, bem adaptada ao valor espectral a ser decodificado, uma vez que a regra de mapeamento é selecionada em dependência do estado de contexto atual, que por sua vez é determinado em dependência de uma pluralidade de valores espectrais previamente decodificados. Da mesma forma, dependências estatísticas entre valores espectrais adjacentes a serem decodificados podem ser exploradas. Ademais, ao detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, é possível adaptar a regra de mapeamento a condições especiais (ou padrões) de valores espectrais previamente decodificados. Por exemplo, uma regra de mapeamento específica pode ser selecionada se um grupo de uma pluralidade de valores espectrais comparativamente pequenos adjacentes previamente decodificados for identificado ou se um grupo de uma pluralidade de valores espectrais comparativamente grandes adjacentes previamente decodificados for identificado. Descobriu-se que a presença de um grupo de valores espectrais comparativamente grandes ou de um grupo de valores espectrais 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 detecção desse um grupo de uma pluralidade de valores espectrais. Também, podem ser consideradas características de um conteúdo de áudio que não poderiam ser consideradas facilmente sem aplicar o conceito mencionado acima. Por exemplo, a detecção de um grupo de uma pluralidade de valores espectrais que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, pode ser realizada com base em um conjunto de valores espectrais diferente, quando comparado ao conjunto de valores espectrais 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 realização da presente invenção. A Figura 1 apresenta um diagrama de blocos esquemático desse um 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 espectrais. Por exemplo, o transformador de sinal 130 pode ser configurado para receber uma estrutura 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 espectrais que representa o conteúdo de áudio da respectiva estrutura de áudio. Além disso, o transformador de sinal 130 pode ser configurado para receber uma pluralidade de estruturas 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 espectrais, um conjunto de valores espectrais associado a cada estrutura.
O transformador de sinal de domínio de tempo para domínio de frequência de compactação de energia 130 pode conter um banco de filtro de compactação de energia, que provê valores espectrais 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 uma estrutura sua) utilizando uma janela de transformação e para realizar uma transformada do cosseno discreta modificada da informação de áudio de entrada janelada 110, 110a (ou de sua estrutura janelada). Da mesma forma, a representação de áudio de domínio de frequência 132 pode compreender um conjunto de, por exemplo, 1024 valores espectrais na forma de coeficientes de MDCT associados a uma estrutura da informação de áudio de entrada.
O codificador de áudio 100 pode ainda, opcionalmente, compreender um pós-processador espectral 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 espectral 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 espectral 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 controle opcional, que pode ser utilizada para o controle do transformador de sinal de domínio de tempo para domínio de frequência de compactação de energia 130, para o controle do pós-processador espectral opcional 140 e/ou para o controle 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 percepçã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 percepção do conteúdo de áudio. Da mesma forma, o processador de modelo psicoacústico 160 pode prover informação de controle, 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/quantificador 150 e/ou a resolução de quantificação aplicada pelo escalonador/quantificador 150. Consequentemente, faixas de fator de escala perceptualmente importantes (isto é, grupos de valores espectrais adjacentes que são particularmente importantes para a percepção humana do conteúdo de áudio) são escalonadas com um fator de escalonamento grande e quantificado com resolução comparativamente alta, enquanto faixas de fator de escala perceptualmente menos importantes (isto é, grupos de valores espectrais 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 espectrais escalonados de frequências mais importantes são tipicamente maiores de modo significativo que valores espectrais de frequências perceptualmente 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) e para prover informações de senha aritméticas 172a com base nisso, de modo que as informações de senha aritméticas representem a representação de áudio de domínio de frequência 152.
O 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 senha 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 controle. 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 espectrais escalonados, quantificados e pós-processados da representação de áudio de domínio de frequência 132. O codificador aritmético compreende um extrator de plano de bits mais significativo 174, 27/112 que é configurado para extrair um plano de bits mais significativo m de um valor espectral. 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 espectral. Assim, o extrator de plano de bits mais significativo 174 provê um valor de plano de bits mais significativo 176 de um valor espectral.
O codificador aritmético 170 também compreende um primeiro determinador de senha 180, que é configurado para determinar uma senha aritmética acod_m [pki][m] que representa o valor de plano de bits mais significativo m. Opcionalmente, o determinador de senha 180 também pode prover uma ou mais senhas de escape (também aqui designadas com “ARITH_ESCAPE”) 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 senha 180 pode ser configurado para prover a senha 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 rastreador de estado 182, que é configurado para rastrear o estado do codificador aritmético, por exemplo, ao observar quais valores espectrais foram codificados anteriormente. O rastreador 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 senha 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 senha. 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 senha. Assim, o determinador de senha 180 pode utilizar a tabela de frequências cumulativas selecionada para a provisão da senha acod_m[pki][m] do valor de plano de bits mais significativo m, de modo que a senha real acod_m[pki][m] que codifica o valor de plano de bits mais significativo m é dependente do valor de m e do índice 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 senha 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 domínio de frequência escalonada e quantificada 152, se um ou mais dos valores espectrais 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 senha 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 senhas “acod_r” que representam o conteúdo de 0, 1 ou mais planos de bits menos significativos. O segundo determinador de senha 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 senhas 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 dependência do valor dos valores espectrais escalonados e quantificados 152, de modo que possa não haver mais plano de bits menos significativo, se o valor espectral escalonado e quantificado a ser codificado for comparativamente pequeno, de modo que possa haver um plano de bits menos significativo se o valor espectral 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 espectral 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 espectrais 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 espectral) é codificado para obter uma senha 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 senhas “acod_r”. Ao codificar o plano de bits mais significativo, o valor m do plano de bits mais significativo é mapeado a uma senha 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 dependência de um estado do codificador aritmético 170, isto é, em dependência de valores espectrais previamente codificados. Da mesma forma, a senha “acod_m[pki][m]” é obtida. Além disso, uma ou mais senhas “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 índice 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 decodificação aritmética em um decodificador 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. DECODIFICADOR DE ÁUDIO
A seguir, um decodificador de áudio, de acordo com uma realização da invenção, será descrito. A Figura 2 apresenta um diagrama de blocos esquemático desse um decodificador de áudio 200.
O decodificador 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 decodificador de áudio 200 provê uma informação de áudio decodificado 212 com base no fluxo de bits 210.
O decodificador 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 espectrais aritmeticamente codificados como, por exemplo, uma senha aritmética “acod_m [pki][m]” que representa o valor de plano de bits mais significativo m de um valor espectral a e uma senha “acod_r” que representa o conteúdo de um plano de bits menos significativo do valor espectral 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 espectrais. O desformatador de carga útil de fluxo de bits 220 é ainda configurado para extrair do fluxo de bits informações adicionais de controle, 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 decodificador de áudio 200 compreende um decodificador aritmético 230, que também é designado como “decodificador silencioso espectral”. O decodificador 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 decodificador aritmético 230 também é configurado para prover uma representação de áudio de domínio de frequência decodificada 232, que pode compreender uma representação decodificada de valores espectrais. Por exemplo, a representação de áudio de domínio de frequência decodificada 232 pode compreender uma representação decodificada de valores espectrais, que são descritos pela representação de áudio de domínio de frequência codificada 220.
O decodificador 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 decodificada 232 e para prover, com base nisso, uma representação de áudio de domínio de frequência quantificada inversamente e re-escalonada 242.
O decodificador de áudio 200 ainda compreende um pré-processador espectral 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 re-escalonada 242. O decodificador 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 decodificada 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 decodificador 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 decodificado 212 utilizando um pós-processamento de domínio de tempo. Entretanto, 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 decodificado 212.
Deve ser observado aqui que o quantificador inverso/re-escalonador 240, o pré-processador espectral 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 dependência da informação de controle, que é extraída do fluxo de bits 210 pelo desformatador de carga útil de fluxo de bits 220.
Para resumir a funcionalidade geral do decodificador de áudio 200, uma representação de áudio de domínio de frequência decodificada 232, por exemplo, um conjunto de valores espectrais associado a uma estrutura 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 decodificador aritmético 230. Subsequentemente, o conjunto de, por exemplo, 1024 valores espectrais, que podem ser coeficientes de MDCT, são inversamente quantificados, re-escalonados e pré- processados. Da mesma forma, um conjunto de valores espectrais quantificados inversamente, re-escalonados e pré-processados espectralmente (por exemplo, 1024 coeficientes de MDCT) é obtido. Posteriormente, uma representação de domínio de tempo de uma estrutura de áudio é derivada do conjunto de valores de domínio de frequência quantificados inversamente, re-escalonados e pré- processados espectralmente (por exemplo, coeficientes de MDCT). Da mesma forma, uma representação de domínio de tempo de uma estrutura de áudio é obtida. A representação de domínio de tempo de uma determinada estrutura de áudio pode ser combinada às representações de domínio de tempo de estruturas de áudio anteriores e/ou subsequentes. Por exemplo, uma sobreposição e adição entre as representações de domínio de tempos de estruturas de áudio subsequentes pode ser realizada a fim de suavizar as transições entre as representações de domínio de tempo das estruturas de áudio adjacentes e a fim de obter um cancelamento de aliasing. Para detalhes em relação à reconstrução das informações de áudio decodificado 212 com base na representação de áudio de domínio de frequência decodificada de tempo 232, é feita referência, por exemplo, ao Padrão Internacional ISO/IEC 14496-3, parte 3, subparte 4, no qual é dada uma discussão detalhada. Entretanto, outros esquemas de sobreposição e cancelamento de aliasing mais elaborados podem ser utilizados.
A seguir, alguns detalhes em relação ao decodificador aritmético 230 serão descritos. O decodificador aritmético 230 compreende um determinador de plano de bits mais significativo 284, que é configurado para receber a senha 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 senha aritmética “acod_m [pki][m]”.
O determinador plano de bits mais significativo 284 é configurado para derivar valores 286 de um plano de bits mais significativo de valores espectrais com base na senha acod_m. O decodificador aritmético 230 ainda compreende um determinador de plano de bits menos significativo 288, que é configurado para receber uma ou mais senhas “acod_r” que representam um ou mais planos de bits menos significativos de um valor espectral. Da mesma forma, o determinador de plano de bits menos significativo 288 é configurado para prover valores decodificados 290 de um ou mais planos de bits menos significativos. O decodificador de áudio 200 também compreende um combinador de plano de bits 292, que é configurado para receber os valores decodificados 286 do plano de bits mais significativo dos valores espectrais e os valores decodificados 290 de um ou mais planos de bits menos significativos dos valores espectrais se esses planos de bits menos significativos estiverem disponíveis para os valores espectrais atuais. Da mesma forma, o combinador de plano de bits 292 provê valores espectrais decodificados, que são parte da representação de áudio de domínio de frequência decodificada 232. Naturalmente, o decodificador aritmético 230 é tipicamente configurado para prover uma pluralidade de valores espectrais a fim de obter um conjunto completo de valores espectrais decodificados associado a uma estrutura atual do conteúdo de áudio.
O decodificador 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 dependência de um índice de estado 298 que descreve um estado do decodificador aritmético. O decodificador aritmético 230 ainda compreende um rastreador de estado 299, que é configurado para rastrear um estado do decodificador aritmético em dependência dos valores espectrais previamente decodificados. A informação de estado pode opcionalmente ser reajustada a uma informação de estado 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 índice (por exemplo, pki) de uma tabela de frequências cumulativas selecionada ou uma tabela de frequências cumulativas selecionada em si, para aplicação na decodificação do valor de plano de bits mais significativo m em dependência da senha “acod_m”.
Para resumir a funcionalidade do decodificador de áudio 200, o decodificador 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 decodificada com base nisso. No decodificador aritmético 230, que é utilizado para obter a representação de áudio de domínio de frequência decodificada 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 espectrais adjacentes é explorada ao utilizar um decodificador aritmético 280, que é configurado para aplicar uma tabela de frequências cumulativas. Em outras palavras, as dependências estatísticas entre valores espectrais são exploradas ao selecionar diferentes tabelas de frequências cumulativas fora de um conjunto compreendendo 64 diferentes tabelas de frequências cumulativas em dependência de um índice de estado 298, que é obtido ao observar os valores espectrais decodificados previamente computados.
5. VISÃO GERAL DA FERRAMENTA DE CODIFICAÇÃO SILENCIOSA ESPECTRAL
A seguir, detalhes em relação ao algoritmo de codificação e decodificação, que é realizada, por exemplo, pelo codificador aritmético 170 e pelo decodificador aritmético 230 serão explicados.
É colocado foco na descrição do algoritmo de 38/112 decodificação. Deve ser observado; entretanto, que um algoritmo de codificação correspondente pode ser realizado de acordo com os ensinamentos do algoritmo de decodificação, em que os mapeamentos são inversos.
Deve ser observado que a decodificação, que será discutida a seguir, é utilizada a fim de permitir uma denominada “codificação silenciosa espectral” de valores espectrais, tipicamente pré-processados, escalonados e quantificados. A codificação silenciosa espectral é utilizada em um conceito de codificação/decodificação de áudio para reduzir adicionalmente a redundância do espectro 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 espectral, que é utilizado nas realizações da invenção, tem base em uma codificação aritmética em conjunto com um contexto dinamicamente adaptado. A codificação silenciosa é alimentada por (originais ou representações codificadas de) valores espectrais quantificados e utiliza, dependendo do contexto, as tabelas de frequências cumulativas derivadas, por exemplo, de uma pluralidade de valores espectrais próximos previamente decodificados. 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 decodificador aritmético para derivar valores decodificados 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 símbolos em dependência das respectivas probabilidades. O código binário é gerado ao mapear um intervalo de probabilidade, no qual o conjunto de símbolos existe, para uma senha.
A seguir, outra breve visão geral da ferramenta de codificação silenciosa espectral será dada. A codificação silenciosa espectral é utilizada para reduzir adicionalmente a redundância do espectro quantificado. O esquema da codificação silenciosa espectral tem base na codificação aritmética em conjunto a um contexto dinamicamente adaptado. A codificação silenciosa é alimentada pelos valores espectrais quantificados e utiliza o contexto dependendo das tabelas de frequências cumulativas derivadas de, por exemplo, sete valores espectrais próximos previamente decodificados
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.
O codificador aritmético produz um código binário para um determinado conjunto de símbolos e suas respectivas probabilidades. O código binário é gerado ao mapear um intervalo de probabilidade, onde o conjunto de símbolos existe para uma senha.
6. PROCESSO DE DECODIFICAÇÃO 6.1 VISÃO GERAL DO PROCESSO DE DECODIFICAÇÃO
A seguir, uma visão geral do processo de decodificação de um valor espectral será dado fazendo referência à Figura 3, que apresenta uma representação de código de pseudo- programa do processo de decodificação de uma pluralidade de valores espectrais.
O processo de decodificação de uma pluralidade de valores espectrais compreende uma inicialização 310 de um contexto. A inicialização 310 do contexto compreende uma derivação do contexto atual 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 de um contexto anterior serão discutidos abaixo.
A decodificação de uma pluralidade de valores espectrais também compreende uma iteração de uma decodificação do valor espectral 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 decodificação do valor espectral 312 e a atualização de contexto 314 são repetidas lg vezes, em que lg indica o número de valores espectrais a serem decodificados (por exemplo, para uma estrutura de áudio). A decodificação do valor espectral 312 compreende um cálculo de valor de contexto 312a, uma decodificaçã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 nível “lev0” e de um valor de nível “lev”, esses valores de nível “lev0”, „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 decodificação de plano de bits mais significativo 312b compreende uma execução iterativa de um algoritmo de decodificação 312ba, em que uma variável j é inicializada a 0 antes de uma primeira execução do algoritmo 312ba.
O 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 dependência do segundo valor de estado t, e também em dependência dos valores de nível „lev” e lev0, utilizando uma função “arith_get_pk()”, que é discutida abaixo. O algoritmo 312ba também compreende a seleção de uma tabela de frequências cumulativas em dependência 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 dependência 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 decodificados. 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 decodificaçã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 decodificado. 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 espectral 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 decodificado 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 decodificado m ser diferente do símbolo de escape aritmético.
Assim que a decodificação de plano de bits mais significativo é concluída, isto é, um valor de plano de bits mais significativo m diferente do símbolo de escape aritmético for decodificado, o valor espectral 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 espectral, um dos dois valores binários é decodificado. Por exemplo, um valor de plano de bits menos significativo r é obtido. Subsequentemente, o valor espectral variável „a” é atualizado ao trocar o conteúdo do valor espectral variável „a” para a esquerda em 1 bit e ao adicionar o valor de plano de bits menos significativo decodificado atualmente r como um bit menos significativo. Entretanto, 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 realizações, a decodificação de quaisquer planos de bits menos significativos pode até ser omitida. De modo alternativo, diferentes algoritmos de decodificação podem ser utilizados para este fim.
6.2 ORDEM DA DECODIFICAÇÃO, DE ACORDO COM A FIGURA 4
A seguir, a ordem de decodificação dos valores espectrais será descrita. Coeficientes espectrais 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 no ISO/IEC 14496, parte 3, subparte 4) são armazenados em um arranjo chamado “x_ac_quant[g][win][sfb][bin]”, e a ordem de transmissão da senha de codificação silenciosa (por exemplo acod_m, acod_r) se de modo que, quando eles forem decodificados na ordem recebida e armazenada no arranjo, “caixa” (o índice de frequência), seja o índice de incrementação mais rápida e “g” seja o índice de incrementação mais rápida.
Coeficientes espectrais associados a uma frequência menor são codificados antes dos coeficientes espectrais associados a uma frequência maior.
Coeficientes da excitação codificada de transformação (tcx) são armazenados diretamente em um arranjo x_tcx_invquant[win][bin], e a ordem da transmissão das senhas de codificação silenciosa é de modo que, quando eles são decodificados na ordem recebida e armazenados no arranjo, “caixa” é o índice de incrementação mais rápida e “win” é o índice de incrementação mais devagar. Em outras palavras, se os valores espectrais descrevem uma excitação codificada de transformação do filtro de previsão linear de um codificador de fala, os valores espectrais a são associados a frequências adjacentes e de aumento da excitação codificada de transformação.
Coeficientes espectrais associados a uma frequência menor são codificados antes dos coeficientes espectrais associados a uma frequência maior.
Notavelmente, o decodificador de áudio 200 pode ser configurado para aplicar a representação de áudio de domínio de frequência decodificada 232, que é provida pelo decodificador aritmético 230, tanto para uma geração “direta” de um sinal de áudio de representação de domínio de tempo utilizando uma transformação 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 decodificador 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.
Em outras palavras, o decodificador aritmético 200, cuja funcionalidade é aqui discutida em detalhes, é bem adequado para decodificar valores espectrais 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 decodificar um sinal de fala decodificado no domínio de previsão linear. Assim, o decodificador aritmético é bem adequado para uso em um decodificador 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 transformação).
6.3 . INICIALIZAÇÃO DE CONTEXTO, DE ACORDO COM AS TABELAS 5A E 5B
A seguir, a inicialização de contexto (também designada como um “mapeamento de contexto”), que é realizada em uma 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 Tabela 5.
A Tabela 5a apresenta a representação de código de pseudo-programa de um algoritmo “arith_map_context ()” para mapear um contexto;
Como pode ser visto, o contexto atual é armazenado em uma 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 em uma 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 espectrais de um contexto anterior.
A variável “lg” descreve um número de coeficientes espectrais para decodificar na estrutura. A variável “previous_lg” descreve um número anterior de linhas espectrais de uma estrutura anterior.
Um mapeamento do contexto pode ser realizado de acordo com o algoritmo “arith_map_context()”. 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 espectrais associado à estrutura de áudio atual (por exemplo, codificada por domínio de frequência) for idêntico ao número de valores espectrais associado à estrutura anterior de áudio para i=0 a i=lg-1.
Entretanto, um mapeamento mais complicado é realizado se o número de valores espectrais associado à estrutura de áudio atual for diferente do número de valores espectrais associado à estrutura anterior de áudio. Entretanto, 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 Tabela 5a abaixo para detalhes.
Figure img0001
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, 15 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 espectrais, tanto ao longo do tempo como de frequência. Uma abscissa 410 descreve o tempo, e uma ordenada 412 descreve a frequência. Como pode ser visto na Figura 4, um valor espectral 420 para decodificar, é associado a um índice de tempo t0 e um índice de frequência i. Como pode ser visto, para o índice de tempo t0, os tuplos tendo índices de frequência i-1, i-2 e i-3 já são decodificados no momento em que o valor espectral 420 tendo o índice de frequência i deve ser decodificado. Como pode ser visto da Figura 4, um valor espectral 430 tendo um índice de tempo t0 e um índice de frequência i-1 já é decodificado antes de o valor espectral 420 ser decodificado, e o valor espectral 430 é considerado para o contexto que é utilizado para a decodificação do valor espectral 420. Semelhantemente, um valor espectral 434 tendo um índice de tempo t0 e um índice de frequência i-2, já é decodificado antes de o valor espectral 420 ser decodificado, e o valor espectral 434 é considerado para o contexto que é utilizado para decodificar o valor espectral 420. Semelhantemente, um valor espectral 440 tendo um índice de tempo t-1 e um índice de frequência de i-2, um valor espectral 444 tendo um índice de tempo t-1 e um índice de frequência i-1, um valor espectral 448 tendo um índice de tempo t-1 e um índice de frequência i, um valor espectral 452 tendo um índice de tempo t-1 e um índice de frequência i+1 e um valor espectral 456 tendo um índice de tempo t-1 e um índice de frequência i+2, já são decodificados antes de o valor espectral 420 ser decodificado, e são considerados para a determinação do contexto, que é utilizado para decodificar o valor espectral 420. Os valores espectrais (coeficientes) já decodificados no momento em que o valor espectral 420 é decodificado e considerados para o contexto são apresentados por quadrados sombreados. Ao contrário, alguns outros valores espectrais já decodificados (no momento em que o valor espectral 420 é decodificado), que são representados por quadrados tendo linhas tracejadas, e outros valores espectrais, que ainda não são decodificados (no momento em que o valor espectral 420 é decodificado) e que são apresentados por círculos tendo linhas tracejadas, não são utilizados para determinar o contexto para decodificar o valor espectral 420.
Entretanto, deve ser observado que alguns desses valores espectrais, que não são utilizados para a computação “regular” (ou “normal”) do contexto para decodificar o valor espectral 420 podem, todavia, ser avaliados para uma detecção de uma pluralidade de valores espectrais adjacentes previamente decodificados que atende, individualmente ou considerada juntamente, à condição predeterminada em relação a suas magnitudes.
Tendo como referência agora às Figuras 5b e 5c, que apresentam a funcionalidade da função “arith_get_context()” 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_context()” recebe, como variáveis de entrada, um índice i do valor espectral para decodificar. 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 uma 50/112 estrutura de áudio atual). Uma variável N descreve um número de linhas da transformação. 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 lev0.
A função “arith_get_context()” utiliza variáveis inteiras a0, c0, c1, c2, c3, c4, c5, c6, lev0, e “região”. A função “arith_get_context()” compreende como blocos funcionais principais, um primeiro processamento de reajuste aritmético 510, uma detecção 512 de um grupo de uma pluralidade de valores espectrais zero adjacentes previamente decodificados, 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 nível 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 índice do valor espectral para decodificar é igual a zero. Nesse caso, um valor de contexto de zero é retornado e a função é abortada.
Na detecção 512 de um grupo de uma pluralidade de valores espectrais zero previamente decodificados, que é somente realizada se a sinalização de reajuste aritmético estiver inativa e o índice i do valor espectral para decodificar 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 espectral que deve ser avaliada é determinada, conforme apresentado no número de referência 512b. Subsequentemente, a região de valores espectrais, 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 espectrais zero previamente decodificados, um valor de contexto de 1 é retornado, conforme apresentado no número de referência 512d. Por exemplo, um limite de índice de frequência superior “lim_max” é ajustado a i+6, a menos que o índice i do valor espectral a ser decodificado esteja próximo a um índice 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. Ademais, um limite de índice de frequência inferior “lim_min” é ajustado a -5, a menos que o índice i do valor espectral para decodificar 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 espectrais determinada na etapa 512b, uma avaliação é primeiro realizada para índices de frequência negativos k entre o limite de índice de frequência inferior lim_min e zero. Para índices 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, entretanto, ambos os valores de contexto q[0][k].c e q[1][k].c forem diferentes de zero para quaisquer índices de frequência k entre lim_min e zero, conclui-se que não há grupo de valores espectrais zero suficientes e a avaliação 512c é abortada. Subsequentemente, valores de contexto q[0][k].c para índices 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 índices de frequência entre zero e lim_max é diferente de zero, conclui-se que não há grupo de valores espectrais zero previamente decodificados suficiente, e a avaliação 512c é abortada. Se, entretanto, descobriu-se que para todos os índices 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 índice de frequência k entre zero e lim_max, conclui-se que há um grupo de valores espectrais zero previamente decodificados suficiente. Da mesma forma, um valor de contexto de 1 é retornado nesse caso para indicar essa condição, sem qualquer cálculo adicional. Em 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. Em outras palavras, o valor de contexto retornado, que descreve o estado de contexto (s), é determinado independente dos valores espectrais previamente decodificados em resposta da detecçã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 índice i do valor espectral a ser decodificado for menor que 1, a variável a0 é inicializada para obter o valor de contexto q[1][i-1], e a variável c0 é inicializada para obter o valor absoluto da variável a0. A variável „lev0” é inicializada para obter o valor zero. Subsequentemente, as variáveis „lev0” e c0 são aumentadas se a variável a0 compreender um valor absoluto comparativamente grande, isto é, for menor que -4 ou maior ou igual a 4. O aumento das variáveis „lev0” e c0 é realizado iterativamente, até que o valor da variável a0 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 c0 e „lev0” são limitadas a valores máximos de 7 e 3, respectivamente (etapa 514c).
Se o índice i do valor espectral a ser decodificado 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 c0 e lev0 (etapa 514d). Da mesma forma, somente um único valor espectral previamente decodificado tendo o mesmo índice de tempo que o valor espectral para decodificar e tendo um índice de frequência que é menor, em 1, que o índice de frequência i do valor espectral a ser decodificado é 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 c0 e „lev0” são inicializadas em dependência de um valor espectral previamente decodificado, decodificado para a mesma estrutura que o valor espectral a ser atualmente decodificado e para uma caixa espectral anterior i-1. A variável c4 é inicializada em dependência de um valor espectral previamente decodificado, decodificado para uma estrutura anterior de áudio (tendo índice 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 espectral a ser atualmente decodificado.
A segunda configuração de variável 516 que é executada seletivamente se (e somente se) o índice de frequência do valor espectral a ser atualmente decodificado for maior que 1, compreende uma inicialização das variáveis c1 e c6 e uma atualização da variável lev0. A variável c1 é atualizada em dependência de um valor de contexto q[1][i-2].c associado a um valor espectral previamente decodificado da estrutura de áudio atual, uma frequência que é menor (por exemplo, por duas caixas de frequência) que uma frequência de um valor espectral a ser decodificado atualmente. Semelhantemente, a variável c6 é inicializada em dependência de um valor de contexto q[0][i-2].c, que descreve um valor espectral previamente decodificado de uma estrutura 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 espectral a ser decodificado atualmente. Além disso, a variável de nível „lev0” é ajustada a um valor de nível q[1][i-2].l associado a um valor espectral previamente decodificado da estrutura atual, uma frequência associada que é menor (por exemplo, por duas caixas de frequência) que uma frequência associada ao valor espectral a ser decodificado atualmente, se q[1][i-2].l for maior que lev0.
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 espectral a ser decodificado for maior que 2. Na adaptação de nível 518, a variável de nível „lev0” é aumentada a um valor de q[1][i-3].l, se o valor de nível q[1][i- 3].l que é associado a um valor espectral previamente decodificado da estrutura atual, uma frequência associada que é menor (por exemplo, por três caixas de frequência) que a frequência associada ao valor espectral a ser decodificado atualmente, for maior que o valor de nível lev0.
Na configuração de valor de região 520, uma variável de “região” é ajustada em dependência de uma avaliação, na qual a região espectral, fora de uma pluralidade de regiões espectrais, o valor espectral a ser decodificado atualmente é disposto. Por exemplo, se for descoberto que o valor espectral a ser atualmente decodificado é 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 espectral a ser decodificado atualmente for associado a uma caixa de frequência que está em um segundo quarto das caixas de frequência associadas à estrutura atual (N/4 ^ i < N/2), a região variável é ajustada a um valor 1. De outra forma, isto é, se o valor espectral a ser decodificado 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 dependência de uma avaliação à qual a região de frequência do valor espectral a ser decodificado 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 espectral a ser decodificado atualmente compreender um índice espectral que é maior que 3. Nesse caso, a variável de nível „lev0” é aumentada (ajustada ao valor q[1][i- 4].l), se o valor de nível q[i][i-4].l, que é associado a um valor espectral previamente decodificado da estrutura atual, que é associada a uma frequência que é menor, por exemplo, por quatro caixas de frequência, que uma frequência associada ao valor espectral a ser decodificado atualmente for maior que o nível atual „lev0” (etapa 522). A variável de nível „lev0” se limita ao valor máximo de 3 (etapa 524).
Se uma condição de reajuste aritmético for detectada e o índice i do valor espectral a ser decodificado atualmente for maior que 1, o valor de estado é retornado em dependência das variáveis c0, c1, lev0, assim como em dependência da variável de “região” da região (etapa 526). Da mesma forma, os valores espectrais previamente decodificados de quaisquer estruturas 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 espectral previamente decodificado da estrutura anterior de áudio (tendo índice de tempo t-1), esse valor espectral previamente decodificado é associada à mesma frequência que o valor espectral a ser decodificado atualmente.
Na quarta configuração de variável 530, a variável c3 é ajustada ao valor de contexto q[0][i+1].c, que é associado a um valor espectral previamente decodificado da estrutura anterior de áudio tendo um índice de frequência i+1, a menos que o valor espectral a ser decodificado 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 espectral previamente decodificado da estrutura anterior de áudio tendo índice de frequência i+2, a menos que o índice de frequência i do valor espectral a ser decodificado 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 nível „lev0” é realizada se o índice de frequência i for igual a zero (isto é, se o valor espectral a ser decodificado atualmente for o mais baixo valor espectral). Nesse caso, a variável de nível „lev0” é aumentada de zero para 1, se a variável c2 ou c3 tiver um valor de 3, o que indica que um valor espectral previamente decodificado de uma estrutura anterior de áudio, que é associada à mesma frequência ou mesmo a uma frequência maior, quando comparada à frequência associada ao valor espectral a ser codificado atualmente, tem um valor comparativamente maior.
Na computação de valor de retorno seletiva 536, o valor de retorno é computado em dependência de se o índice i dos valores espectrais a ser decodificado atualmente tem o valor zero, 1 ou um valor maior. O valor de retorno é computado em dependência da variáveis c2, c3, c5 e lev0, conforme indicado no número de referência 536a, se o índice i tiver o valor zero. O valor de retorno é computado em dependência das variáveis c0, c2, c3, c4, c5, e „lev0”, conforme apresentado no número de referência 536b, se o índice i tiver o valor 1. O valor de retorno é computado em dependência da variável c0, c2, c3, c4, c1, c5, c6, “região” e lev0, se o índice 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 detecção 512 de um grupo de uma pluralidade de valores espectrais zero previamente decodificados (ou pelo menos, valores espectrais suficientemente pequenos). Se um grupo de valores espectrais zero previamente decodificados suficiente for encontrado, a presença de um contexto especial é indicado ao ajustar o valor de retorno a 1. De outra forma, o valor de computação de contexto é realizado. Pode ser geralmente dito que no valor de computação de contexto, o valor de índice i é avaliado a fim de decidir quantos valores espectrais previamente decodificados devem ser avaliados. Por exemplo, um número de valores espectrais previamente decodificados avaliados é reduzido se um índice de frequência i do valor espectral a ser decodificado 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 índice de frequência i do valor espectral a ser decodificado atualmente estiver suficientemente longe de um valor mínimo, diferentes regiões espectrais são diferenciadas pela configuração de valor de região 520. Da mesma forma, diferentes propriedades estatísticas de diferentes regiões espectrais (por exemplo, a primeira região de frequência espectral baixa, segunda região de frequência espectral média e terceira região de frequência espectral 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 espectral a ser decodificado atualmente está em uma primeira região de frequência predeterminada ou em uma 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 em um código de símbolo, será descrita. A seleção da regra de mapeamento é feita em dependência 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 TABELAS 17(1) e 17(2), e uma tabela “ari_gs_hash”[225], de acordo com a TABELA 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”, „lev0”, 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 em um valor índice 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, entretanto, 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” em uma 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 índice 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 índice da regra de mapeamento são descritos pelos bits menores (por exemplo, bits 0 a 7) da dita entrada da tabela. O limite inferior i_min ou o limite superior i_max são adaptados em dependência 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; entretanto, 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 índice 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 índice variável i for igual à variável de índice 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 índice 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 índice variável i for diferente do índice 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 índice de regra de mapeamento descrito pelos 8 bits menos significativos da dita entrada da tabela “ari_s_hash[i_max]” é retornado como um valor de retorno da função “get_pk” nesse caso. Entretanto, 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 o 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 em uma localização da tabela determinada pelo índice variável i (546b). Em 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). Em 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, entretanto, 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. Entretanto, 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 detectado (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 dita 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 dependência 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 símbolos 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: Em um 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 índice 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” em uma representação, de acordo com a linguagem de programação 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 de acordo com a Tabela 20 “ari_s_hash”, e a tabela 18 “ari_gs_hash”.
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 escaneamento linear é feito na tabela ari_s_hash, para obter uma entrada j=ari_s_hash[i] da dita 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 dita 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 em uma 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 escaneamento 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 índice de regra de mapeamento descrito pelos 8 bits menos significativos da dita 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; entretanto, 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 escaneamento em todas as entradas da tabela ari_gs_hash é continuado ao aumentar o índice de tabela i. Se; entretanto, 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 índice 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. Em uma 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; entretanto, 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 índice de regra de mapeamento “pki” descrito pelos 8 bits menos significativos da entrada da tabela j=ari_gs_hash[i] é retornado.
6.5.3 SELEÇÃO DA REGRA DE MAPEAMENTO UTILIZANDO O ALGORITMO, DE ACORDO COM A TABELA 5F
A Tabela 5f é uma representação de código de pseudo-programa de um algoritmo “get_pk(unsigned long s)” para derivar um valor índice da tabela de frequências cumulativas „pki” de um valor de estado.
A função “get_pk”, de acordo com a Tabela 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 Tabela 5f.
Deve ser observado que a função „get_pk”, de acordo com a Tabela 5f, pode tomar o lugar da função “arith_get_pk” chamada na função “value_decode” da Figura 3.
Figure img0002
6.6 . FUNÇÃO “ARITH DECODE()”, DE ACORDO COM A FIGURA 5G
A seguir, a funcionalidade da função 5 “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 símbolo da sequência e FALSO, de outra forma. A função “arith_decode()” também utiliza a 10 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 “baixa”, “alta” e “valor”. Ainda, a função “arith_decode()” recebe, como uma variável de entrada, a variável 15 “cum_freq[]”, que aponta para uma primeira entrada ou elemento (tendo índice de elemento ou índice 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 decodificado. A inicialização de valor 550a inicializa a variável “valor” em dependência 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 “valor” toma o valor representado pelos ditos bits. Também, a variável “baixa” é inicializada para tomar o valor de 0 e a variável “alta” é inicializada para tomar o valor de 1048575.
Em uma segunda etapa 570b, a variável “variação” é ajustada a um valor, que é maior, em 1, que a diferença entre os valores das variáveis “alta” e “baixa”. A variável “cum” é ajustada a um valor que representa uma posição relativa do valor da variável “valor” entre o valor da variável “baixa” e o valor da variável “alta”. Da mesma forma, a variável “cum” toma, por exemplo, um valor entre 0 e 216 em dependência do valor da variável “valor”.
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 em um 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 respectivo é 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 ditos 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 “símbolo”.
O algoritmo “arith_decode” também compreende uma adaptação 570e das variáveis “alta” e “baixa”. Se o valor de símbolo representado pela variável “símbolo” for diferente da 0, a variável “alta” é atualizada, conforme apresentado no número de referência 570e. Também, o valor da variável “baixa” é atualizado, conforme apresentado no número de referência 570e. A variável “alta” é ajustada a um valor que é determinado pelo valor da variável “baixa”, a variável “variação” e a entrada tendo o índice “símbolo -1” da tabela de frequências cumulativas selecionada. A variável “baixa” é aumentada, em que a magnitude do aumento é determinada pela variável “variação” e a entrada da tabela de frequências cumulativas selecionada tendo o índice “símbolo”. Da mesma forma, a diferença entre os valores das variáveis “baixa” e “alta” é ajustada em dependência 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 detectado, o intervalo entre os valores das variáveis “baixa” e “alta” é reduzido a uma amplitude estreita. Ao contrário, se o valor de símbolo detectado compreender uma probabilidade relativamente ampla, a amplitude do intervalo entre os valores das variáveis “baixa” e “alta” é ajustada a um valor comparativamente grande. Novamente, a amplitude do intervalo entre os valores da variável “baixa” e “alta” é dependente do símbolo detectado 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 “alta” 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; entretanto, a variável “alta” não for menor que 524286 e a variável “baixa” for maior ou igual a 524286, as variáveis “valores”, “baixa” e “alta” são todas reduzidas em 524286, de modo que um intervalo definido pelas variáveis “baixa” e “alta” é trocado para baixo, e de modo que o valor da variável “valor” também é trocado para baixo. Se; entretanto, for descoberto que o valor da variável “alta” não é menor que 524286 e que a variável “baixa” não é maior ou igual a 524286 e que a variável “baixa” é maior ou igual a 262143 e que a variável “alta” é menor que 786429, as variáveis “valor”, “baixa” e “alta” são todas reduzidas em 262143, trocando assim para baixo o intervalo entre os valores das variáveis “alta” e “baixa” e também o valor da variável “valor”. Se; entretanto, nenhuma das condições acima for atendida, a normalização de intervalo é abortada. Se; entretanto, 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 “baixa” é dobrado. Também, o valor da variável “alta” é dobrado e o resultado da duplicação é aumentado em 1. Também, o valor da variável “valor” é dobrado (trocado para a esquerda em um 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 “baixa” e “alta” é aproximadamente dobrado, e a precisão da variável “valor” é 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 “baixa” e “alta” seja grande o suficiente.
Em relação à funcionalidade do algoritmo “arith_decode()”, deve ser observado que o intervalo entre os valores das variáveis “baixa” e “alta” é reduzido na etapa 570e em dependência 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 “baixa” e “alta”, 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 “baixa” e “alta”, que é obtido na etapa 570e, será comparativamente grande.
Consequentemente, se o intervalo entre os valores das variáveis “baixa” e “alta”, 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 “valor”. 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 “baixa” e “alta” 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 “valor” e para preparar uma decodificação de um próximo símbolo.
Para resumir o mencionado acima, se um símbolo for decodificado, 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 decodificação de um símbolo subsequente. Ao contrário, se um símbolo for decodificado, 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 decodificaçã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 decodificar uma sequência de símbolos. Ao variar a tabela de frequências cumulativas em dependência de um contexto, isto é, em dependência de símbolos previamente decodificados (ou valores espectrais), por exemplo, ao selecionar diferentes tabelas de frequências cumulativas em dependência 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 “símbolo” de retorno).
1.7 MECANISMO DE ESCAPE
Enquanto o valor de plano de bits mais significativo decodificado 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 é decodificado 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 decodificados.
Se um símbolo de escape “ARITH_ESCAPE” for decodificado, 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 mais altos (24 bits e mais) seja aumentado para as próximas iterações do algoritmo 312ba.
1.8 ATUALIZAÇÃO DE CONTEXTO, DE ACORDO COM A FIGURA 5H
Uma vez que o valor espectral é completamente decodificado (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 dita função.
A função “arith_update_context()” recebe, como variáveis de entrada, o coeficiente espectral quantificado decodificado a, o índice i do valor espectral a ser decodificado (ou do valor espectral decodificado) e o número lg de valores espectrais (ou coeficientes) associados à estrutura de áudio atual.
Em uma etapa 580, o valor espectral (ou coeficiente) quantificado atualmente decodificado 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 a. Também, a variável “a0” é ajustada ao valor de “a”.
Em uma etapa 582, o valor de nível q[1][i].l da tabela de contexto q é determinado. Pelo padrão, o valor de nível q[1][i].l da tabela de contexto q é ajustado a zero. Entretanto, se o valor absoluto do valor espectral atualmente codificado for maior que 4, o valor de nível q[1][i].l é incrementado. Com cada incremento, a variável “a” é trocada para a direita em um bit. O incremento do valor de nível q[1][i].l é repetido até que o valor absoluto da variável a0 seja menor ou igual a 4.
Em uma 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 espectral decodificado atualmente a for igual a zero. De outra forma, se o valor absoluto do valor espectral decodificado a for menor ou igual a 1, o valor de contexto de 2 bits q[1][i].c é ajustado a 1. De outra forma, se o valor absoluto do valor espectral atualmente decodificado a for menor ou igual a 3, o valor de contexto de 2 bits q[1][i].c é ajustado a 2. De outra forma, isto é, se o valor absoluto do valor espectral decodificado atualmente a for maior que 3, o valor de contexto de 2 bits q[1][i].c é ajustado a 3. Da mesma forma, o valor de contexto de 2 bits q[1][i].c é obtido por uma quantificação muito bruta do coeficiente espectral decodificado atualmente a.
Em uma etapa subsequente 586, que é somente realizada se o índice i do valor espectral decodificado atualmente for igual ao número lg de coeficientes (valores espectrais) na estrutura (isto é, se o último valor espectral da estrutura for decodificado) e o modo central for um modo central de domínio de previsão linear (que é indicado por “core_mode==1”), 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 espectrais na estrutura 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, entretanto, 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 espectral decodificado 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 mínimo entre o valor de 1024 e o número lg de valores espectrais na estrutura.
6. RESUMO DO PROCESSO DE DECODIFICAÇÃO
A seguir, o processo de decodificação será brevemente resumido. Para detalhes, é feita referência à discussão acima em relação a Tabela 5a e também às Figuras 3, 4, 5b, 5c, 5da, 5d2, 5e, 5g1, 5g2, 5h e Tabela 5i.
Os coeficientes quantificados espectrais a são codificados silenciosamente e transmitidos, começando do menor coeficiente de frequência e progredindo ao 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 senhas de codificação silenciosa é de modo que quando eles forem decodificados na ordem recebida e armazenada no arranjo, a caixa seja o índice de incrementação mais rápida e g seja o índice de incrementação mais lenta. A caixa de índice designa caixas de frequência. O índice “sfb” designa faixas de fator de escala. O índice “win” designa janelas. O índice “g” designa estruturas de áudio.
Os coeficientes da excitação codificada de transformação são armazenados diretamente em um arranjo “x_tcx_invquant[win][bin]”, e a ordem da transmissão das senhas de codificação silenciosa é de modo que quando eles forem decodificados na ordem recebida e armazenados no arranjo, a “caixa” seja o índice de incrementação mais rápida e “win” é o índice 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 da estrutura atual q (armazenado na tabela ou arranjo de contexto q). O contexto anterior “qs” é armazenado em 2 bits por linha de frequência (ou por caixa de frequência).
O mapeamento entre o contexto anterior salvo armazenado na tabela de contexto “qs” e o contexto da estrutura 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. O decodificador silencioso produz coeficientes quantificados espectrais assinalados “a”.
Primeiro, o estado do contexto é calculado com base nos coeficientes espectrais previamente decodificados que circundam os coeficientes quantificados espectrais a decodificar. O estado do contexto s corresponde aos 24 primeiros bits do valor retornado pela função “arith get context()”. Os bits acima do 24o bit do valor retornado correspondem ao nível de plano de bits previsto lev0. A variável „lev” é inicializada a lev0. 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 nível previsto „lev0” são conhecidos, o plano sensato de dois bits mais significativos m é decodificado 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 Tabela 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.
O valor m é decodificado utilizando a função “arith_decode()” chamada com a tabela de frequências cumulativas, “arith_cf_m[pki][], onde „pki” corresponde ao índice retornado pela função “arith_get_pk()” (ou, de modo alternativo, pela função “get_pk()”).
O 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 decodificado m for o símbolo de escape, “ARITH_ESCAPE”, outro valor m é decodificado e a variável „lev” é incrementada em 1. Uma vez que o valor m não é o símbolo de escape, “ARITH_ESCAPE”, os planos de bits restantes são então decodificados 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 dita tabela de frequências cumulativas “arith_cf_r[] pode, por exemplo, descrever uma distribuição de probabilidade constante.
Os planos de bits decodificados r permitem a refinação do valor previamente decodificado m da seguinte maneira: a = m; para (i=0; i<lev;i++) { r = arith_decode (arith_cf_r,2); a = (a<<1) | (r&1); }
Uma vez que o coeficiente quantificado espectral a é completamente decodificado, 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 espectrais a decodificar.
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 Tabela 5i a seguir.
Figure img0003
7. TABELAS DE MAPEAMENTO
Em uma 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 17(1)e 17(2) “ARISHASH[387]”
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 17. Deve ser observado que a tabela 17 lista as 387 entradas da tabela “ari_s_hash[387]”. Também deve ser observado que a representação de tabela 17 apresenta os elementos na ordem dos índices de elemento, de modo que o primeiro valor “0x00000200” corresponda a uma entrada da tabela “ari_s_hash[0]” tendo índice de elemento (ou índice de tabela) 0, de modo que o último valor “0x03D0713D” corresponda a uma entrada da tabela “ari_s_hash[386]” tendo índice de elemento ou índice de tabela 386. Deve ser adicionalmente observado aqui que “0x” indica que as entradas de tabela da tabela “ari_s_hash” são representadas em um formato hexadecimal. Além disso, as entradas de tabela 17 da tabela “ari_s_hash”, 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 índice da regra de mapeamento pki. Assim, as entradas da tabela “ari_s_hash” descrevem um mapeamento de “atingimento direto” de um valor de 5 estado em um valor índice de regra de mapeamento “pki”.
Figure img0004
Figure img0005
7.2 TABELA 18 “ARI GS HASH[225]”;
Um conteúdo de uma realização particularmente vantajosa da tabela “ari gs hash” é apresentado na tabela 18. Deve 5 ser observado aqui que a tabela 18 lista as entradas da tabela “ari_gs_hash”. As ditas entradas são mencionadas por um índice de entrada de tipo inteiro unidimensional (também designado como “índice de elemento” ou “índice de arranjo” ou “índice 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 em uma ordem crescente do índice de tabela i para o índice de tabela valores i entre zero e 224. O termo “0x” indica que as entradas de tabela são descritas em um formato hexadecimal. Da mesma forma, a primeira entrada da tabela “0X00000401” corresponde à entrada da tabela “ari_gs_hash[0]” tendo índice 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 em uma 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.
Figure img0006
7.3 TABELAS 19(1) E 19(2) “ARICFM [64][9]”
As Tabelas 19(1) e 19(2) apresentam 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 decodificador de áudio 200, 800, por exemplo, para a execução da função “arith_decode”, isto é, para a decodificação do valor de plano de bits mais significativo. A selecionada das 64 tabelas de frequências cumulativas apresentada nas Tabelas 19 toma a função da tabela “cum_freq[]” na execução da função “arith_decode()”.
Como pode ser visto nas Tabelas 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=1”. Por fim, uma 64a linha 1964 representa as 9 entradas de uma tabela de frequências cumulativas para “pki=63”. Assim, as Tabelas 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 ditas 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 das tabelas 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 decodificação dos coeficientes espectrais atuais.
Figure img0007
Figure img0008
7.4 TABELAS 20(1) e 20(2) “ARISHASH”
As Tabelas 20 apresentam uma alternativa para a 5 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 com a Tabela 5f.
As tabelas 20 “ari_s_hash”, compreendem 386 entradas, que são listadas na Tabela 20 em uma ordem crescente do 10 índice 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 15 representadas em uma 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” 5 descrevem um mapeamento de estados significativos em valores índice da regra de mapeamento “pki”.
Figure img0009
Figure img0010
8. AVALIAÇÃO DE DESEMPENHO E VANTAGENS
As realizações, de acordo com a invenção, usam funções (ou algoritmos) atualizadas e um conjunto atualizado de 5 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 realizações, de acordo com a invenção, criam uma codificação silenciosa espectral melhorada.
A presente descrição descreve realizações para CE em codificação silenciosa espectral melhorada de coeficientes espectrais. O esquema proposto tem base no esquema de codificação com base no contexto “original”, conforme descrito no projeto de trabalho 4 do padrão 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 transcodificaçã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 do padrão de projeto da USAC) provou ser possível. O esquema aqui descrito é, em geral, escalonável, permitindo compensações adicionais alternativas entre exigências de memória e desempenho de codificação. As realizações, de acordo com a invenção, visam a substituição do esquema de codificação silenciosa espectral conforme utilizado no projeto de trabalho 4 do padrão de projeto da USAC.
O esquema de codificação aritmética aqui descrito tem base no esquema como no modelo de referência 0 (RM0) ou no projeto de trabalho 4 (WD4) do padrão de projeto da USAC. Os coeficientes espectrais 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 decodificador). Comparado à realização, de acordo com WD4, a modelagem do contexto é adicionalmente melhorada e as tabelas que possuem as probabilidades de símbolo foram reclassificadas. O número de diferentes modelos de probabilidades foi aumentado de 32 para 64.
As realizações, 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 realizações, de acordo com WD4, do padrão de projeto da USAC requerem 16894,5 palavras ou 76578 bytes. A demanda RAM estática é reduzida, em algumas realizações, 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 transcodificados em uma maneira sem perda sem afetar as restrições do reservatório de bits.
O esquema proposto, de acordo com as realizações 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 do padrão de projeto da USAC, é 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 espectrais. Como contexto, os coeficientes espectrais decodificados são utilizados, que são anteriores em frequência e tempo. De acordo com WD4, um número máximo de 16 coeficientes espectrais é utilizado como contexto, 12 dos quais são anteriores no tempo. Ambos, os coeficientes espectrais utilizados para o contexto e para serem decodificados, são agrupados como 4 tuplos (isto é, quatro coeficientes espectrais próximos em frequência, vide Figura 10a). O contexto é reduzido e mapeado em uma tabela de frequências cumulativas, que é então utilizada para decodificar os próximos 4 tuplos de coeficientes espectrais.
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 a próxima estrutura.
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 decodificador 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á em uma variação típica de 8 a 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 98/112 acesso aleatório rápido aos dados. Isso faz com que todo o processo de decodificaçã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 do padrão de projeto da USAC. Como um esquema de codificação aritmética com base no contexto, ele tem base no esquema de WD4 do padrão de projeto da USAC, mas os aspectos 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 espectral (oposto a 4 tuplos, como em WD4 do padrão de projeto da USAC). No total, 7 coeficientes espectrais 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 detecçã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 11b que descreve as tabelas conforme utilizadas no esquema de codificação proposto).
Comparada à demanda de ROM do esquema de codificação silenciosa em WD4 do padrão 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 do padrão de projeto da USAC). Isso reduz a demanda de ROM geral de um decodificador 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 decodificador de USAC total, de acordo com WD4 do padrão 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 na próxima estrutura (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 índice 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 (decodificador WD4 de USAC completo: aproximadamente 10000 a 17000 palavras).
O novo esquema, que é utilizado nas realizações, de acordo com a invenção, reduz as informações persistentes a somente 2 bits por coeficiente espectral, que soma até 72 palavras (288 Bytes) no total por canal de codificador central. TA 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 realizações, de acordo com a nova proposta, foi comprada em relação à aos fluxos de bits de qualidade de referência, de acordo com WD3 do padrão de projeto da USAC. A comparação foi realizada por meio de um transcodificador, com base em um decodificador de software de referência. Para detalhes em relação à comparação da codificação silenciosa, de acordo com WD3 do padrão 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 realizações de acordo com a invenção quando comparado a realizações de acordo com WD3 ou WD4 do padrão 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 realização da invenção.
Pela medida do nível 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 controle 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 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 em uma base de estrutura e um melhor/pior desempenho de caso em uma 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 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 em uma base de estrutura, e em que a tabela da Figura 16 apresenta uma representação de tabela do melhor e do pior caso em uma base de estrutura.
Além disso, deve ser observado que as realizações de acordo com a presente invenção provêem uma boa capacidade de escalonação. 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 ESPECTRAL
A seguir, alguns detalhes sem relação a cargas úteis do codificador silencioso espectral serão descritos. Em algumas realizações, 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 em uma 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 em uma 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 espectrais 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. O 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 decodificaçã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 espectrais codificadas aritmeticamente serão descritas tendo como referência as Tabelas 6a e 6h e as Figuras 6b a 6g.
A Tabela 6a a seguir apresenta uma representação de sintaxe de um Bloco de dados brutos da codificação de fala e áudio unificada (USAC) (“usac_raw_data_block()”).
Figure img0011
O 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. O 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 dependência 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_mode0”, “core_mode1”). 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 domínio 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 espectrais 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 espectrais aritmeticamente codificados (“ac_spectral_data ()”), que representam os valores espectrais codificados aritmeticamente.
Os dados espectrais 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 espectrais aritmeticamente codificados compreendem uma pluralidade de blocos de dados aritméticos (“arith_data”), que carregam valores espectrais codificados aritmeticamente. A estrutura 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.
A estrutura do bloco de dados codificados aritmeticamente será descrita tendo como referência a Figura 6g, que apresenta uma representação de sintaxe dos ditos blocos de dados codificados aritmeticamente. A representação de dados dentro do bloco de dados codificados aritmeticamente depende do número lg de valores espectrais a ser codificado, o status da sinalização de reajuste aritmético e também do contexto, isto é, os valores espectrais previamente codificados.
O contexto para a codificação do conjunto de valores espectrais 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 senhas, cada conjunto de senhas representando um valor espectral. Um conjunto de senhas compreende uma senha aritmética “acod_m [pki][m]” representando um valor de plano de bits mais significativo m do valor espectral utilizando entre 1 e 20 bits. Além disso, o conjunto de senhas compreende uma ou mais senhas “acod_r[r]” se o valor espectral precisar de mais planos de bits que o plano de bits mais significativo para uma representação correta. A senha “acod_r [r]” representa um plano de bits menos significativo utilizando entre 1 e 20 bits. Se; entretanto, um ou mais planos de bits menos significativos forem necessários (além do plano de bits mais significativos) para uma representação adequada do valor espectral, isso é sinalizado ao utilizar uma ou mais senhas de escape aritméticas (“ARITH_ESCAPE”). Assim, pode ser dito de modo geral que para um valor espectral, 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 senhas 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 senhas de escape aritméticas são incluídas no fluxo de bits. Depois da uma ou mais senhas de escape aritméticas, uma senha 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 senhas de escape aritméticas), e em que m designa o valor de plano de bits mais significativo do valor espectral a ser codificado ou decodificado.
Conforme discutido acima, a presença de quaisquer planos de bits menos significativos resulta na presença de uma ou mais senhas “acod_r [r]”, cada uma das quais representa um bit do plano de bits menos significativo. A uma ou mais senhas “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 espectral, conforme apresentado no número de referência 668, de modo que o contexto 5 seja tipicamente diferente para a codificação dos dois valores espectrais subsequentes.
A Tabela 6h apresenta uma legenda de definições e elementos e variáveis de dados de ajuda que definem a sintaxe do bloco de dados codificados aritmeticamente.
Figure img0012
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 decodificador de áudio 200. O fluxo de bits dos valores espectrais codificados aritmeticamente é codificado de modo a ajustar o algoritmo de decodificação discutido acima.
Além disso, deve ser observado, de modo geral, que a codificação é a operação inversa da decodificaçã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 decodificador. De modo geral, pode ser dito que um técnico no assunto que conhece o algoritmo de decodificaçã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 decodificador aritmético.
10. ALTERNATIVAS DE IMPLEMENTAÇÃO
Apesar de alguns aspectos terem sido descritos no contexto de um equipamento, é claro que esses aspectos 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 aspectos descritos no contexto de uma etapa do método também representam uma descrição de um bloco ou item ou característica 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 realizações, alguma ou mais das etapas mais importantes do método podem ser executadas por esse equipamento.
O sinal de áudio codificado inventivo pode ser armazenado em um meio de armazenamento digital ou pode ser transmitido em um 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 realizações 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 controle legíveis eletronicamente armazenados nele, que cooperam (ou são capazes de cooperar) com um sistema de computador programável, de modo que o respectivo método seja realizado. Portanto, o meio de armazenamento digital pode ser legível por computador.
Algumas realizações, de acordo com a invenção, compreendem um carregador de dados tendo sinais de controle 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 realizações 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 em um computador. O código de programa pode, por exemplo, ser armazenado em um carregador legível pela máquina.
Outras realizações compreendem o programa de computador para realizar um dos métodos aqui descritos, armazenado em um carregador legível pela máquina.
Em outras palavras, uma 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 em um computador.
Uma 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 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. O 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 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 realização adicional compreende um computador tendo instalado nele o programa de computador para realizar um dos métodos aqui descritos.
Em algumas realizações, 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 realizações, 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 realizações 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 título de descrição e explicação das realizações aqui.
Embora o acima mencionado tenha sido particularmente apresentado e descrito com referência às realizações 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 espírito e escopo. Deve ser entendido que diversas alterações podem ser feitas na adaptação de diferentes realizações sem se desviar do conceito mais amplo aqui revelado e compreendido pelas reivindicações que seguem.
11. CONCLUSÃO
Para concluir, pode ser observado que as realizações, de acordo com a invenção, criam um esquema de codificação silenciosa espectral melhorada. As realizações, 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% em uma 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 do padrão de projeto da USAC) é possível. Da mesma forma, uma realização, de acordo com a invenção, é obtida ao adotar a decodificação silenciosa aqui descrita no próximo projeto de trabalho do padrão de projeto da USAC.
Para resumir, em uma 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 espectral, conforme escrito acima e conforme apresentado na Figura 5h, em relação à codificação silenciosa espectral, 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 Tabela 5i,em relação ao processo de decodificação, conforme descrito com referência às Figuras 5a, 5b, 5c, 5e, 5g, 5h e em relação às tabelas,conforme apresentado nas Tabelas 17, 18, 20 e com relação à função “get_pk”,conforme apresentado nas Figuras 5. De modo alternativo; entretanto,a tabela “ari_s_hash”, de acordo com a Figura 20, pode ser utilizada em vez da Tabela 17 “ari_s_hash”, e a função “get_pk” da Tabela 5f pode ser utilizada em vez da função “get_pk”, de acordo com as Figuras 5d1 e 5d2.

Claims (18)

1. DECODIFICADOR DE ÁUDIO (200;800) PARA PROVER UMA INFORMAÇÃO DE ÁUDIO DECODIFICADO (212;812) COM BASE EM UMA INFORMAÇÃO DE ÁUDIO CODIFICADA (210;810), o decodificador de áudio é caracterizado por compreender: um decodificador aritmético (230;820) para prover uma pluralidade de valores espectrais decodificados (232;822) com base em uma representação aritmeticamente codificada (222;821) dos valores espectrais; e um conversor de domínio de frequência para domínio de tempo (260;830) para prover uma representação de áudio de domínio de tempo (262;812) utilizando os valores espectrais decodificados (232;822), a fim de obter as informações de áudio decodificado (212;812); em que o decodificador aritmético (230;820) é configurado para selecionar uma regra de mapeamento (297; cum_freq[]) que descreve um mapeamento de um valor de código (valor) em um código de símbolo (símbolo) em dependência de um estado de contexto (s); e em que o decodificador aritmético (230;820) é configurado para determinar o estado de contexto atual (s) em dependência de uma pluralidade de valores espectrais previamente decodificados, em que o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais previamente decodificados, que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, e para determinar ou modificar o estado de contexto atual (s) em dependência de um resultado da detecção; em que o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que compreende um valor de soma que é menor que um valor limite predeterminado e para determinar ou modificar o estado atual (s) em dependência de um resultado da detecção; em que o decodificador de áudio é implementado usando um aparelho de hardware, ou usando um computador, ou usando uma combinação de um aparelho de hardware e um computador.
2. DECODIFICADOR DE ÁUDIO (200; 800), de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para determinar ou modificar o estado de contexto atual (s) independente dos valores espectrais previamente decodificados em resposta da detecção que a condição predeterminada é atendida.
3. DECODIFICADOR DE ÁUDIO (200; 800), de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que atenda, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes.
4. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, em que o decodificador aritmético (230) é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que, individualmente ou considerado juntamente, é caracterizado por compreender uma magnitude que é menor que uma magnitude limite predeterminada e para determinar ou modificar o estado de contexto atual (s) em dependência de um resultado da detecção.
5. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, em que cada um dos valores espectrais previamente decodificados é um valor zero e para determinar ou modificar o estado de contexto (s) em dependência de um resultado da detecção.
6. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para ajustar o estado de contexto atual (s) a um valor predeterminado em resposta à detecção que um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes.
7. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 6, caracterizado por o decodificador aritmético (230) ser configurado para omitir seletivamente um cálculo do estado de contexto (s) em dependência de valores numéricos de uma pluralidade de valores espectrais previamente decodificados em resposta à detecção que um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes.
8. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para ajustar o estado de contexto atual (s) para estar dentro de uma variação de valores que sinaliza a detecção de um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados que atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, em resposta à detecção.
9. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para mapear um código de símbolo (símbolo; m) em um valor espectral decodificado (a).
10. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para avaliar valores espectrais previamente decodificados de uma primeira região de frequência de tempo e para detectar um grupo de uma pluralidade de valores espectrais que atende, individualmente ou considerado juntamente, à condição predeterminada em relação a suas magnitudes, e em que o decodificador aritmético é configurado para obter um valor numérico que representa o estado de contexto (s) se a condição predeterminada não for atendida, em dependência de valores espectrais previamente decodificados de uma segunda região de frequência de tempo que é diferente da primeira região de frequência de tempo.
11. DECODIFICADOR DE ÁUDIO, de acordo com a reivindicação 1, caracterizado por o decodificador aritmético ser configurado para avaliar uma ou mais tabelas de dispersão (ari_s_hash, ari_gs_hash) para selecionar uma regra de mapeamento (ari_cf_m[pki][9]) em dependência do estado de contexto (s).
12. CODIFICADOR DE ÁUDIO (100;700) PARA PROVER UMA INFORMAÇÃO DE ÁUDIO CODIFICADA (112;712) COM BASE EM UMA INFORMAÇÃO DE ÁUDIO DE ENTRADA (110;710), o codificador de áudio é caracterizado por compreender: um conversor de domínio de tempo para domínio de frequência de compactação de energia (130;720) para prover uma representação de áudio de domínio de frequência (132;722) com base em uma representação de domínio de tempo (110;710) da informação de áudio de entrada, de modo que a representação de áudio de domínio de frequência (132;722) compreenda um conjunto de valores espectrais; e um codificador aritmético (170;730) configurado para codificar um valor espectral (a) ou uma versão sua pré- processada, utilizando uma senha de extensão variável (acod_m, acod_r), em que o codificador aritmético (170) é configurado para mapear um valor espectral (a) ou um valor (m) de um plano de bits mais significativo de um valor espectral (a) em um valor de código (acod_m), em que o codificador aritmético é configurado para selecionar uma regra de mapeamento que escreve um mapeamento de um valor espectral ou de um plano de bits mais significativo de um valor espectral, em um valor de código, em dependência de um estado de contexto (s); e em que o codificador aritmético é configurado para determinar o estado de contexto atual (s) em dependência de uma pluralidade de valores espectrais previamente codificados, em que o codificador aritmético é configurado para detectar um grupo de uma pluralidade de valores espectrais previamente codificados, que atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes, e para determinar ou modificar o estado de contexto atual (s) em dependência de um resultado da detecção; em que o codificador de áudio é implementado usando um aparelho de hardware, ou usando um computador, ou usando uma combinação de um aparelho de hardware e um computador.
13. CODIFICADOR DE ÁUDIO (100; 700), de acordo com a reivindicação 12, caracterizado por o codificador aritmético ser configurado para determinar ou modificar o estado de contexto atual (s) independente dos valores espectrais previamente codificados em resposta à detecção que a condição predeterminada é atendida.
14. CODIFICADOR DE ÁUDIO (100; 700), de acordo com a reivindicação 12, caracterizado por o codificador aritmético ser configurado para detectar um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados, que atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes.
15. MÉTODO PARA PROVER UMA INFORMAÇÃO DE ÁUDIO DECODIFICADO COM BASE EM UMA INFORMAÇÃO DE ÁUDIO CODIFICADO, o método é caracterizado por compreender: a provisão de uma pluralidade de valores espectrais decodificados com base em uma representação aritmeticamente codificada dos valores espectrais; e a provisão de uma representação de áudio de domínio de tempo utilizando os valores espectrais decodificados, a fim de obter a informações de áudio decodificado; em que a provisão da pluralidade de valores espectrais decodificados 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 espectral ou um plano de bits mais significativo de um valor espectral, em uma forma codificada em um código de símbolo (símbolo) que representa um valor espectral ou um plano de bits mais significativo de um valor espectral, em uma forma decodificada, em dependência de um estado de contexto; e em que o estado de contexto atual é determinado em dependência de uma pluralidade de valores espectrais previamente decodificados, em que um grupo de uma pluralidade de valores espectrais previamente decodificados, que atende, individualmente ou considerado juntamente, a uma condição predeterminada em relação a suas magnitudes é detectado, e em que o estado de contexto atual é determinado ou modificado em dependência de um resultado da detecção; em que um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que compreende um valor de soma que é menor que um valor limite predeterminado é detectado, e em que o estado atual (s) é determinado ou modificado em dependência de um resultado da detecção;
16. MÉTODO PARA PROVER UMA INFORMAÇÃO DE ÁUDIO CODIFICADO COM BASE EM UMA INFORMAÇÃO DE ÁUDIO DE ENTRADA, o método é caracterizado por compreender: a provisão de uma representação de áudio de domínio de frequência com base em uma representação de domínio de tempo da informação de áudio de entrada utilizando uma conversão de domínio de tempo para domínio de frequência de compactação de energia, de modo que a representação de áudio de domínio de frequência compreenda um conjunto de valores espectrais; e a codificação aritmética de um valor espectral, ou uma versão sua pré-processada, utilizando uma senha de extensão variável, em que um valor espectral ou um valor de um plano de bits mais significativo de um valor espectral é mapeado em um valor de código; em que uma regra de mapeamento que descreve um mapeamento de um valor espectral ou de um plano de bits mais significativo de um valor espectral, em um valor de código é selecionada em dependência de um estado de contexto; e em que um estado de contexto atual é determinado em dependência de uma pluralidade de valores espectrais adjacentes previamente codificados; e em que um grupo de uma pluralidade de valores espectrais previamente decodificados, que atende, individual ou juntamente, a uma condição predeterminada em relação a suas magnitudes, é detectado e o estado de contexto atual é determinado ou modificado em dependência de um resultado da detecção; em que um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados, que compreende um valor de soma que é menor que um valor limite predeterminado é detectado, e em que o estado atual (s) é determinado ou modificado em dependência de um resultado da detecção;
17. Meio não transitório legível por máquina compreendendo instruções para realizar o método para fornecer uma informação de áudio decodificada com base em uma informação de áudio codificada, o método caracterizado por compreender: fornecer uma pluralidade de valores espectrais decodificados com base em uma representação codificada aritmeticamente dos valores espectrais; e fornecer uma representação de áudio no domínio do tempo usando os valores espectrais decodificados, a fim de adquirir as informações de áudio decodificadas; em que fornecer a pluralidade de valores espectrais decodificados compreende selecionar uma regra de mapeamento que descreve um mapeamento de um valor de código representando um valor espectral, ou um plano de bits mais significativo de um valor espectral, de uma forma codificada em um código de símbolo representando um valor espectral, ou um plano de bits mais significativo de um valor espectral, em uma forma decodificada, na dependência de um estado de contexto; e em que um estado de contexto atual é determinado em dependência de uma pluralidade de valores espectrais previamente decodificados, em que é detectado um grupo de uma pluralidade de valores espectrais previamente decodificados, que cumprem, individualmente ou em conjunto, uma condição predeterminada em relação às suas magnitudes, e em que o estado de contexto atual é determinado ou modificado na dependência de um resultado da detecção, em que um grupo de uma pluralidade de valores espectrais adjacentes previamente decodificados, que compreendem um valor de soma que é menor do que um valor de limiar predeterminado, é detectado e em que o estado atual é determinado ou modificado em dependência de um resultado da detecção quando o programa é executado em um processador.
18. Meio não transitório legível por máquina, caracterizado pelo fato de que compreende instruções para executar o método para fornecer uma informação de áudio codificada com base em uma informação de áudio de entrada, o método compreendendo: fornecer uma representação de áudio no domínio da frequência com base em uma representação no domínio do tempo das informações de áudio de entrada usando uma conversão de domínio do tempo para o domínio da frequência de compactação de energia, de modo que a representação de áudio no domínio da frequência compreenda um conjunto de valores espectrais; e codificar aritmeticamente um valor espectral, ou versão sua pré-processada, usando uma senha de comprimento variável, em que um valor espectral ou um plano de bits mais significativo de um valor espectral é mapeado em um valor de código; em que uma regra de mapeamento que descreve um mapeamento de um valor espectral, ou de um plano de bits mais significativo de um valor espectral, em um valor de código é selecionada em dependência de um estado de contexto; e em que um estado de contexto atual é determinado na dependência de uma pluralidade de valores espectrais adjacentes previamente codificados; e em que um grupo de uma pluralidade de valores espectrais previamente decodificados, que cumprem, individualmente ou em conjunto, uma condição predeterminada em relação às suas magnitudes, é detectado e o estado de contexto atual é determinado ou modificado em dependência de um resultado da detecção, em que um grupo de uma pluralidade de valores espectrais adjacentes previamente codificados, que compreendem um valor de soma que é menor do que um valor de limiar predeterminado, é detectado e em que o estado atual é determinado ou modificado em dependência de um resultado da detecção quando o programa é executado em um processador.
BR112012009445-9A 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados BR112012009445B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US25345909P 2009-10-20 2009-10-20
US61/253,459 2009-10-20
PCT/EP2010/065725 WO2011048098A1 (en) 2009-10-20 2010-10-19 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

Publications (2)

Publication Number Publication Date
BR112012009445A2 BR112012009445A2 (pt) 2022-03-03
BR112012009445B1 true BR112012009445B1 (pt) 2023-02-14

Family

ID=43259832

Family Applications (6)

Application Number Title Priority Date Filing Date
BR112012009445-9A BR112012009445B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR122022013482-3A BR122022013482B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR112012009448A BR112012009448A2 (pt) 2009-10-20 2010-10-19 Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
BR122022013454-8A BR122022013454B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR122022013496-3A BR122022013496B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR112012009446-7A BR112012009446B1 (pt) 2009-10-20 2010-10-19 Método e aparelho de armazenamento de dados

Family Applications After (5)

Application Number Title Priority Date Filing Date
BR122022013482-3A BR122022013482B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR112012009448A BR112012009448A2 (pt) 2009-10-20 2010-10-19 Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
BR122022013454-8A BR122022013454B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR122022013496-3A BR122022013496B1 (pt) 2009-10-20 2010-10-19 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 detecção de um grupo de valores espectrais previamente decodificados
BR112012009446-7A BR112012009446B1 (pt) 2009-10-20 2010-10-19 Método e aparelho de armazenamento de dados

Country Status (19)

Country Link
US (6) US8706510B2 (pt)
EP (3) EP2491554B1 (pt)
JP (3) JP5589084B2 (pt)
KR (3) KR101411780B1 (pt)
CN (3) CN102667921B (pt)
AR (3) AR078706A1 (pt)
AU (1) AU2010309820B2 (pt)
BR (6) BR112012009445B1 (pt)
CA (4) CA2778323C (pt)
ES (3) ES2454020T3 (pt)
HK (2) HK1175290A1 (pt)
MX (3) MX2012004569A (pt)
MY (3) MY188408A (pt)
PL (3) PL2491552T3 (pt)
PT (1) PT2491553T (pt)
RU (3) RU2596596C2 (pt)
TW (3) TWI426504B (pt)
WO (3) WO2011048099A1 (pt)
ZA (3) ZA201203610B (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3300076B1 (en) 2008-07-11 2019-04-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
CA2778323C (en) 2009-10-20 2016-09-20 Fraunhofer-Gesellschaft Zur Foerderung 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 detection of a group of previously-decoded spectral values
SG182467A1 (en) 2010-01-12 2012-08-30 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
AU2011287747B2 (en) * 2010-07-20 2015-02-05 Fraunhofer-Gesellschaft Zur Foerderung 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 an optimized hash table
CN106409299B (zh) 2012-03-29 2019-11-05 华为技术有限公司 信号编码和解码的方法和设备
MY182016A (en) 2012-07-02 2021-01-18 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
WO2015037969A1 (ko) * 2013-09-16 2015-03-19 삼성전자 주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
PL3046104T3 (pl) * 2013-09-16 2020-02-28 Samsung Electronics Co., Ltd. Sposób kodowania sygnału oraz sposób dekodowania sygnału
CN111968656B (zh) 2014-07-28 2023-11-10 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
JP6724782B2 (ja) * 2014-09-04 2020-07-15 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
TWI693595B (zh) * 2015-03-13 2020-05-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
TWI693594B (zh) * 2015-03-13 2020-05-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
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
CN110476207B (zh) * 2017-01-10 2023-09-01 弗劳恩霍夫应用研究促进协会 音频解码器、音频编码器、提供解码的音频信号的方法、提供编码的音频信号的方法、音频流提供器和计算机介质
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
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
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
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
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
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
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
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
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 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
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

Family Cites Families (147)

* 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
US5829007A (en) 1993-06-24 1998-10-27 Discovision Associates Technique for implementing a swing buffer in a memory array
US5659659A (en) 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
US6449596B1 (en) * 1996-02-08 2002-09-10 Matsushita Electric Industrial Co., Ltd. Wideband audio signal encoding apparatus that divides wide band audio data into a number of sub-bands of numbers of bits for quantization based on noise floor information
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
US7197190B1 (en) * 1997-09-29 2007-03-27 Canon Kabushiki Kaisha Method for digital data compression
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
CA2246532A1 (en) 1998-09-04 2000-03-04 Northern Telecom 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
EP1062813A1 (en) 1999-01-13 2000-12-27 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
US7174135B2 (en) 2001-06-28 2007-02-06 Koninklijke Philips Electronics N. V. Wideband signal transmission system
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 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
DK1487113T3 (da) * 2002-05-02 2006-11-20 Fraunhofer Ges Forschung Kodning og afkodning af transformationskoefficienter i billede- eller videokodere
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 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
ATE428167T1 (de) * 2002-07-19 2009-04-15 Nec Corp Audiodekodierungseinrichtung, dekodierungsverfahren und programm
DK1400954T3 (da) 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
CN100401778C (zh) * 2002-09-17 2008-07-09 弗拉迪米尔·切佩尔科维奇 具有高压缩率和最小必需资源的快速codec
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
US7876966B2 (en) 2003-03-11 2011-01-25 Spyder Navigations L.L.C. 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 符号化装置、プログラム、およびデータ処理方法
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 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
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
CA2992065C (en) 2004-03-01 2018-11-20 Dolby Laboratories Licensing Corporation Reconstructing audio signals with multiple decorrelation techniques
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
AU2004321469B2 (en) 2004-07-14 2009-08-20 Agency For Science, Technology And Research Context-based encoding and decoding of signals
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
EP1810182A4 (en) 2004-08-31 2010-07-07 Kumar Gopalakrishnan METHOD AND SYSTEM FOR PROVIDING INFORMATION SERVICES RELEVANT TO VISUAL IMAGE
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 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
EP1836858A1 (en) 2005-01-14 2007-09-26 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
PL1866915T3 (pl) 2005-04-01 2011-05-31 Qualcomm Inc Sposób i urządzenie do przeciwrozproszeniowego filtrowania sygnału pobudzającego predykcji mowy rozciągniętego na szerokość pasma
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)
PL2088580T3 (pl) 2005-07-14 2012-07-31 Koninl Philips Electronics Nv Kodowanie sygnałów audio
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
KR100851970B1 (ko) * 2005-07-15 2008-08-12 삼성전자주식회사 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치
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
EP1932361A1 (en) * 2005-10-03 2008-06-18 Nokia Corporation Adaptive variable length codes for independent variables
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
EP1995974B1 (en) 2005-12-05 2015-05-20 Huawei Technologies Co., Ltd. Method for realizing arithmetic coding
US8665943B2 (en) * 2005-12-07 2014-03-04 Sony Corporation Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program
KR101237413B1 (ko) * 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080211A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
WO2007080225A1 (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
ATE496365T1 (de) 2006-08-15 2011-02-15 Dolby Lab Licensing Corp Arbiträre formung einer temporären rauschhüllkurve ohne nebeninformation
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 キヤノン株式会社 復号装置及び復号方法
US20080243518A1 (en) 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
DE102007017254B4 (de) 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
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
EP2101318B1 (en) 2006-12-13 2014-06-04 Panasonic Corporation Encoding device, decoding device and corresponding methods
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 算術復号化装置及びその方法
RU2439719C2 (ru) 2007-04-26 2012-01-10 Долби Свиден АБ Устройство и способ для синтезирования выходного сигнала
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
JP4748113B2 (ja) 2007-06-04 2011-08-17 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
EP2278582B1 (en) * 2007-06-08 2016-08-10 LG Electronics Inc. A method and an apparatus for processing an audio signal
RU2439721C2 (ru) 2007-06-11 2012-01-10 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Аудиокодер для кодирования аудиосигнала, имеющего импульсоподобную и стационарную составляющие, способы кодирования, декодер, способ декодирования и кодированный аудиосигнал
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
EP2077550B8 (en) * 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
US8483854B2 (en) 2008-01-28 2013-07-09 Qualcomm Incorporated Systems, methods, and apparatus for context processing using multiple microphones
JP4893657B2 (ja) 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
EP2259253B1 (en) 2008-03-03 2017-11-15 LG Electronics Inc. Method and apparatus for processing audio signal
EP2293295A3 (en) 2008-03-10 2011-09-07 Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. Device and method for manipulating an audio signal having a transient event
EP2251861B1 (en) * 2008-03-14 2017-11-22 Panasonic Intellectual Property Corporation of America Encoding device and method thereof
US8340451B2 (en) 2008-04-28 2012-12-25 Osaka Prefecture University Public Corporation Method for constructing image database for object recognition, processing apparatus and processing program
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
EP3300076B1 (en) 2008-07-11 2019-04-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
CA2871268C (en) * 2008-07-11 2015-11-03 Nikolaus Rettelbach Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
PT2146344T (pt) * 2008-07-17 2016-10-13 Fraunhofer Ges Forschung Esquema de codificação/descodificação de áudio com uma derivação comutável
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
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
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
EP2446539B1 (en) 2009-06-23 2018-04-11 Voiceage Corporation Forward time-domain aliasing cancellation with application in weighted or original signal domain
BR122021023896B1 (pt) 2009-10-08 2023-01-10 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
CA2778323C (en) 2009-10-20 2016-09-20 Fraunhofer-Gesellschaft Zur Foerderung 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 detection of a group of previously-decoded spectral values
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
SG182467A1 (en) * 2010-01-12 2012-08-30 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
AU2011287747B2 (en) * 2010-07-20 2015-02-05 Fraunhofer-Gesellschaft Zur Foerderung 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 an optimized hash table
EP2619758B1 (en) 2010-10-15 2015-08-19 Huawei Technologies Co., Ltd. Audio signal transformer and inverse transformer, methods for audio signal analysis and synthesis
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
EP2491553B1 (en) 2016-10-12
TWI430262B (zh) 2014-03-11
JP5245014B2 (ja) 2013-07-24
EP2491554A1 (en) 2012-08-29
RU2012122278A (ru) 2013-11-27
AR078707A1 (es) 2011-11-30
CA2907353A1 (en) 2011-04-28
JP5589084B2 (ja) 2014-09-10
CA2778325A1 (en) 2011-04-28
US20120330670A1 (en) 2012-12-27
MX2012004564A (es) 2012-06-08
BR112012009445A2 (pt) 2022-03-03
PL2491552T3 (pl) 2015-06-30
HK1175289A1 (en) 2013-06-28
TW201137857A (en) 2011-11-01
RU2012122277A (ru) 2013-11-27
CA2778325C (en) 2015-10-06
JP2013508762A (ja) 2013-03-07
CA2778368C (en) 2016-01-26
CA2778323C (en) 2016-09-20
PL2491553T3 (pl) 2017-05-31
US20180174593A1 (en) 2018-06-21
BR112012009446A2 (pt) 2021-12-07
CA2907353C (en) 2018-02-06
BR122022013496B1 (pt) 2023-05-16
ZA201203607B (en) 2013-01-30
JP2013508763A (ja) 2013-03-07
US8655669B2 (en) 2014-02-18
AU2010309820A1 (en) 2012-06-07
KR20120074310A (ko) 2012-07-05
RU2605677C2 (ru) 2016-12-27
CN102667922B (zh) 2014-09-10
RU2591663C2 (ru) 2016-07-20
BR112012009448A2 (pt) 2022-03-08
US8612240B2 (en) 2013-12-17
MY188408A (en) 2021-12-08
CA2778323A1 (en) 2011-04-28
CN102667923A (zh) 2012-09-12
ES2531013T3 (es) 2015-03-10
ZA201203609B (en) 2013-01-30
US20230162742A1 (en) 2023-05-25
TWI426504B (zh) 2014-02-11
US11443752B2 (en) 2022-09-13
PT2491553T (pt) 2017-01-20
ZA201203610B (en) 2013-01-30
EP2491553A1 (en) 2012-08-29
BR122022013482B1 (pt) 2023-04-04
US8706510B2 (en) 2014-04-22
BR122022013454B1 (pt) 2023-05-16
WO2011048100A1 (en) 2011-04-28
BR112012009446B1 (pt) 2023-03-21
AR078706A1 (es) 2011-11-30
KR101419151B1 (ko) 2014-07-11
ES2610163T3 (es) 2017-04-26
KR101411780B1 (ko) 2014-06-24
US20120265540A1 (en) 2012-10-18
MX2012004569A (es) 2012-06-08
PL2491554T3 (pl) 2014-08-29
US20140081645A1 (en) 2014-03-20
HK1175290A1 (en) 2013-06-28
CA2778368A1 (en) 2011-04-28
US9978380B2 (en) 2018-05-22
TWI451403B (zh) 2014-09-01
AU2010309821A1 (en) 2012-06-07
JP5707410B2 (ja) 2015-04-30
CN102667922A (zh) 2012-09-12
JP2013508764A (ja) 2013-03-07
KR20120074306A (ko) 2012-07-05
AU2010309898A1 (en) 2012-06-07
US20120278086A1 (en) 2012-11-01
KR101419148B1 (ko) 2014-07-11
AU2010309820B2 (en) 2014-05-08
CN102667923B (zh) 2014-11-05
CN102667921B (zh) 2014-09-10
WO2011048099A1 (en) 2011-04-28
ES2454020T3 (es) 2014-04-09
MX2012004572A (es) 2012-06-08
EP2491554B1 (en) 2014-03-05
KR20120074312A (ko) 2012-07-05
RU2012122275A (ru) 2013-11-27
TW201129969A (en) 2011-09-01
EP2491552A1 (en) 2012-08-29
EP2491552B1 (en) 2014-12-31
AR078705A1 (es) 2011-11-30
TW201137858A (en) 2011-11-01
WO2011048098A1 (en) 2011-04-28
MY160813A (en) 2017-03-31
RU2596596C2 (ru) 2016-09-10
CN102667921A (zh) 2012-09-12
MY160807A (en) 2017-03-31

Similar Documents

Publication Publication Date Title
BR112012009445B1 (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 detecção de um grupo de valores espectrais previamente decodificados
BR122021008576B1 (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 que utiliza uma tabela hash que descreve tanto valores de estado significativos como limites de intervalo
AU2010309898B2 (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
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
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

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 19/10/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.