BR112015025139B1 - Codificador e decodificador de fala, método para codificar e decodificar um sinal de fala, método para codificar um sinal de áudio, e método para decodificar um fluxo de bits - Google Patents

Codificador e decodificador de fala, método para codificar e decodificar um sinal de fala, método para codificar um sinal de áudio, e método para decodificar um fluxo de bits Download PDF

Info

Publication number
BR112015025139B1
BR112015025139B1 BR112015025139-0A BR112015025139A BR112015025139B1 BR 112015025139 B1 BR112015025139 B1 BR 112015025139B1 BR 112015025139 A BR112015025139 A BR 112015025139A BR 112015025139 B1 BR112015025139 B1 BR 112015025139B1
Authority
BR
Brazil
Prior art keywords
envelope
blocks
transform coefficients
transform
block
Prior art date
Application number
BR112015025139-0A
Other languages
English (en)
Other versions
BR112015025139A2 (pt
Inventor
Per Hedelin
Lars Villemoes
Janusz Klejsa
Original Assignee
Dolby International Ab
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 Dolby International Ab filed Critical Dolby International Ab
Publication of BR112015025139A2 publication Critical patent/BR112015025139A2/pt
Publication of BR112015025139B1 publication Critical patent/BR112015025139B1/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
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • 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
    • 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/04Speech 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 predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients

Abstract

CODIFICADOR E DECODIFICADOR DE ÁUDIO. Sistema de codificação e decodificação de áudio (sistema de codec de áudio), por transformada, adequado acodificação/decodificação de voz. Codificador (100, 170) de fala por transformada configurado para codificar sinal de fala em fluxo de bits. compreendendo unidade de enquadramento (101) para receber conjunto (132, 332) de blocos, compreendendo pluralidade de blocos sequenciais (131) de coeficientes de transformada indicativa de amostras do sinal; onde bloco (131) compreende coeficientes de transformada para índices de frequência (301); e o codificador (100, 170) compreende unidade de estimação de envelope (102) para determinar envelope atual (133) com base na pluralidade de blocos sequenciais (131) de coeficientes de transformada; onde o envelope atual (133) indica pluralidade de valores de energia espectral (303) para a pluralidade correspondente de índices de frequência (301); e compreende unidade de interpolação de envelope (104) para determinar envelopes interpolados (136) para blocos (131) de coeficientes de transformada utilizando envelope atual (133); ainda compreende unidade de aplanamento (108) para determinar pluralidade de blocos (140) de coeficientes de transformada aplanados da pluralidade de blocos correspondente (131) de coeficientes de transformada utilizando envelopes interpolados (136); onde o fluxo de bits é determinado pela pluralidade de blocos (140) de coeficientes de transformada aplanados.

Description

CAMPO TÉCNICO
[0001] O presente documento refere-se a um sistema de codifica ção e decodificação de áudio (referido como um sistema de codec de áudio). Em particular, o presente documento se refere a um sistema de codec de áudio a base de transformada que é particularmente bem adequado para a codificação/decodificação de áudio.
ANTECEDENTES
[0002] Os codificadores de áudio perceptivos para fins gerais al cançam ganhos de codificação relativamente altos com o uso de trans-formadas como a Transformada de Cosseno Distinta Modificada (MDCT) com tamanhos de bloco de amostras que cobrem diversas dezenas de milissegundos (por exemplo, 20 ms). Um exemplo para tal sistema de codec de áudio a base de transformada é a Codificação de Áudio Avançada (AAC) ou (HE)-AAC de Alta Eficiência. No entanto, quando se usa tais sistemas de codec de áudio a base de transformada para sinais de voz, a qualidade dos sinais de voz diminui mais rápido do que a dos sinais musicais no sentido das taxas de bit inferiores, especialmente no caso de sinais de fala secos (não reverberantes).
[0003] Por isso, os sistemas de codec de áudio a base de trans formada não são inerentemente bem adequados para a codificação de sinais de voz ou para a codificação de sinais de áudio que compreendem um componente de voz. Em outras palavras, os sistemas de codec de áudio a base de transformada exibem uma assimetria com relação ao ganho de codificação alcançado para sinais musicais comparado ao ganho de codificação alcançado para sinais de voz. Pode-se influenciar positivamente nessa assimetria fornecendo-se complementos para a codificação à base de transformada, em que os complementos visam uma moldagem espectral aprimorada ou equiparação de sinal. Os exemplos para tais complementos são a pré/pós-moldagem, Moldagem de Ruído Temporal (TNS) e Tempo Distorcido MDCT. Ademais, pode-se influenciar positivamente nessa assimetria através da incorporação de um codificador de fala por domínio de tempo clássico baseado em filtragem por previsão de curto prazo (LPC) e previsão de longo prazo (LTP).
[0004] Pode-se mostrar que os aprimoramentos obtidos fornecen do-se complementos à codificação à base de transformada são tipicamente não suficientes para uniformizar a lacuna de desempenho entre a codificação de sinais de música e sinais de fala. Por outro lado, a incorporação de um codificador de fala por domínio de tempo clássico preenche a lacuna de desempenho, no entanto, até o ponto em que a assimetria de desempenho é invertida para a direção oposta. Isso é devido ao fato de que os codificadores de fala por domínio de tempo clássicos moldam o sistema de produção de fala humana e foram otimizados para a codificação de sinais de fala.
[0005] Tendo em vista o supracitado, um codec de áudio a base de transformada pode ser usado em combinação com um codec de fala por domínio de tempo clássico, em que o codec de fala por domínio de tempo clássico é usado para segmentos de fala de um sinal de áudio e em que o codec a base de transformada é usado para os segmentos do sinal de áudio restantes. No entanto, a coexistência de um domínio de tempo e um codec por domínio de transformada em um único sistema de codec de áudio exige ferramentas confiáveis para comutar entre os diferentes codecs, com base nas propriedades do sinal de áudio. Além disso, a comutação real entre um codec por domínio de tempo (para conteúdo de fala) e um codec por domínio de transforma- da (para o conteúdo restante) pode ser difícil de implantar. Em particular, pode ser difícil garantir uma transição suave entre o codec por domínio de tempo e o codec por domínio de transformada (e vice-versa). Ademais, as modificações no codec por domínio de tempo podem ser necessárias a fim de tornar o codec por domínio de tempo mais robusto para a codificação ocasional inevitável de sinais de não-fala, por exemplo, para a codificação de uma voz de canto com fundo instrumental.
[0006] O presente documento lida com os problemas técnicos mencionados acima de sistemas de codec de áudio. Em particular, o presente documento descreve um sistema de codec de áudio que traduz apenas os recursos críticos de um codec de fala e, desse modo, alcança um desempenho uniforme para fala e música, enquanto se mantém na arquitetura de codec a base de transformada. Em outras palavras, o presente documento descreve um codec de áudio a base de transformada que é particularmente bem adequado para a codificação de fala ou sinais de voz.
SUMÁRIO
[0007] De acordo com um aspecto, um codificador de fala a base de transformada é descrito. O codificador de fala é configurado para codificar um sinal de fala em um fluxo de bits. Deve-se notar, a seguir, que vários aspectos de um tal codificador de fala a base de transformada são descritos. É explicitamente indicado que esses aspectos podem ser combinados com um outro de várias maneiras. Em particular, os aspectos descritos em dependência de diferentes reivindicações independentes podem ser combinados com as outras reivindicações independentes. Ademais, os aspectos descritos no contexto de um codificador são aplicáveis de uma maneira análoga ao decodifica- dor correspondente.
[0008] O codificador de fala pode compreender uma unidade de enquadramento configurada para receber um conjunto de blocos. O conjunto de blocos pode corresponder ao conjunto de blocos deslocado descrito na descrição detalhada do presente documento. Alternativamente, o conjunto de blocos pode corresponder ao conjunto de blocos atual descrito na descrição detalhada do presente documento. O conjunto de blocos compreende uma pluralidade de blocos sequenciais de coeficientes de transformada e a pluralidade de blocos sequenciais é indicativa de amostras do sinal de fala. Em particular, o conjunto de blocos pode compreender quatro ou mais blocos de coeficientes de transformada. Um bloco da pluralidade de blocos sequenciais pode ter sido determinado a partir do sinal de fala com o uso de uma unidade de transformada que é configurada para transformar um número predeterminado de amostras do sinal de fala a partir do domínio de tempo em domínio de frequência. Em particular, a unidade de transformada pode ser configurada para realizar um domínio de tempo para transformada de domínio de frequência como uma Transformada de Cosseno Distinta Modificada (MDCT). Como tal, um bloco de coeficientes de transformada pode compreender uma pluralidade de coeficientes de transformada (também referidos como coeficientes de frequência ou coeficientes espectrais) para uma pluralidade correspondente de índices de frequência. Em particular, um bloco de coeficientes de transformada pode compreender coeficientes de MDCT.
[0009] O número de índices de frequência ou o tamanho de um bloco depende tipicamente do tamanho da transformada realizada pela unidade de transformada. Em um exemplo preferencial, os blocos da pluralidade de blocos sequenciais correspondem a denominados blocos curtos, que compreende, por exemplo, 256 índices de frequência. Além dos blocos curtos, a unidade de transformada pode ser configurada para gerar os denominados blocos longos, que compreendem, por exemplo, 1.024 índices de frequência. Os blocos longos podem ser usados por um codificador de áudio para codificar segmentos estacionários de um sinal de áudio de entrada. No entanto, a pluralidade de blocos sequenciais usados para codificar o sinal de fala (ou um segmento de fala compreendido no sinal de áudio de entrada) pode compreender apenas blocos curtos. Em particular, os blocos de coeficientes de transformada podem compreender 256 coeficientes de transformada em 256 índices de frequência.
[0010] Em termos mais gerais, o número de índices de frequência ou o tamanho de um bloco pode ser tal que um bloco de coeficientes de transformada cubra na faixa de 3 a 7 milissegundos do sinal de fala (por exemplo, 5 ms do sinal de fala). O tamanho do bloco pode ser selecionado de tal modo que o codificador de fala possa operar em sincronização com quadros de vídeo codificados por um codificador de vídeo. A unidade de transformada pode ser configurada para gerar blocos de coeficientes de transformada que têm um número de índices de frequência diferente. Por meio de exemplo, a unidade de transformada pode ser configurada para gerar blocos que têm 1920, 960, 480, 240, 120 índices de frequência em 48 kHz de taxa de amostragem. O tamanho de bloco que cobre na faixa de 3 a 7 ms do sinal de fala pode ser usado para o codificador de fala. No exemplo acima, o bloco que compreende 240 índices de frequência pode ser usado para o codifi-cador de fala.
[0011] O codificador de fala pode compreender adicionalmente uma unidade de estimação de envelope configurado para determinar um envelope atual baseado na pluralidade de blocos sequenciais de coeficientes de transformada. O envelope atual pode ser determinado com base na pluralidade de blocos sequenciais do conjunto de blocos. Os blocos adicionais podem ser levados em consideração, por exemplo, blocos de um conjunto de blocos diretamente precedente ao conjunto de blocos. Alternativa ou adicionalmente, os denominados blocos look-ahead podem ser levados em consideração. No geral, isso pode ser benéfico para fornecer continuidade entre os conjuntos de blocos seguintes. O envelope atual pode ser indicativo de uma pluralidade de valores de energia espectral para a pluralidade correspondente de índices de frequência (302). Em outras palavras, o envelope atual pode ter a mesma dimensão que cada bloco na pluralidade de blocos sequenciais. E ainda outras palavras, um único envelope atual pode ser determinado para uma pluralidade de (isto é, para mais do que um) blocos do sinal de fala. Isso é vantajoso a fim de fornecer estatística significativa com relação aos dados espectrais compreendidos na pluralidade de blocos sequenciais.
[0012] O envelope atual pode ser indicativo de uma pluralidade de valores de energia espectral para uma pluralidade correspondente de bandas de frequência. Uma banda de frequência compreende um ou mais índices de frequência. Em particular, uma ou mais das bandas de frequência podem compreender mais do que um índice de frequência. O número de índices de frequência por banda de frequência pode aumentar com a frequência crescente. Em outras palavras, o número de índices de frequência por banda de frequência pode depender das considerações psicoacústicas. A unidade de estimação de envelope pode ser configurada para determinar um valor de energia espectral para uma banda de frequência particular com base nos coeficientes de transformada da pluralidade de blocos sequenciais abrangidos pela banda de frequência particular. Em particular, a unidade de estimação de envelope pode ser configurada para determinar o valor de energia espectral para a banda de frequência particular com base em um valor de raiz quadrática média dos coeficientes de transformada da pluralidade de blocos sequenciais abrangidos pela banda de frequência particular. Como tal, o envelope atual pode ser indicativo de um envelope espectral médio dos envelopes espectrais da pluralidade de blocos sequenciais. Ademais, o envelope atual pode ter uma resolução de frequência de banda.
[0013] O codificador de fala pode compreender adicionalmente uma unidade de interpolação de envelope configurada para determinar uma pluralidade de envelopes interpolados para a pluralidade de blocos sequenciais de coeficientes de transformada, respectivamente, com base no envelope atual. Em particular, a pluralidade de envelopes interpolados pode ser determinada com base em um envelope atual quantificado, que também está disponibilizado em um decodificador correspondente. Ao fazer isso, garante-se que a pluralidade de envelopes interpolados possa ser determinada da mesma maneira no codificador de fala e no decodificador de fala correspondente. Por isso, os recursos da unidade de interpolação de envelope descritos no contex-to do decodificador de fala também são aplicáveis ao codificador de fala e vice-versa. Em geral, a unidade de interpolação de envelope pode ser configurada para determinar uma aproximação do envelope espectral de cada um da pluralidade de blocos sequenciais (isto é, o envelope interpolado), com base no envelope atual.
[0014] O codificador de fala pode compreender adicionalmente uma unidade de aplanamento configurada para determinar uma pluralidade de blocos de coeficientes de transformada aplanados aplanando-se a pluralidade de blocos correspondentes de coeficientes de transformada com o uso da pluralidade correspondente de envelopes interpolados, respectivamente. Em particular, o envelope interpolado para um bloco em particular (ou um envelope derivado do mesmo) pode ser usado para aplanar, isto é, remover o formato espectral dos coeficientes de transformada compreendidos com o bloco em particular. Deve-se notar que esse processo de aplanamento é diferente de uma operação de branqueamento aplicada ao bloco específico de coeficientes de transformada. Ou seja, os coeficientes de transformada apla- nados não podem ser interpretados como os coeficientes de transformada de um sinal branqueado por domínio de tempo conforme tipicamente produzido pela análise de LPC (codificação preditiva linear) de um codificador de fala clássico. Apenas o aspecto de criar um sinal com um espectro de força relativamente plano é compartilhado. No entanto, o processo de obter tal espectro de força plano é diferente. Conforme será esboçado no presente documento, o uso de um envelope espectral estimado para o aplanamento do bloco de coeficientes de transformada é benéfico, devido ao fato de o envelope espectral estimado poder ser usado para fins de alocação de bit.
[0015] O codificador de fala a base de transformada pode compre ender adicionalmente uma unidade de determinação de ganho de envelope configurada para determinar uma pluralidade de ganhos de envelope para a pluralidade de blocos de coeficientes de transformada, respectivamente. Ademais, o decodificador de fala a base de transformada pode compreender uma unidade de refinamento de envelope configurada para determinar uma pluralidade de envelopes ajustados deslocando-se a pluralidade de envelope interpolados de acordo com a pluralidade de ganhos de envelope, respectivamente. A unidade de determinação de ganho de envelope pode ser configurada para determinar um primeiro ganho de envelope para um primeiro bloco de coeficientes de transformada (a partir da pluralidade de blocos sequenciais), de tal modo que uma variância dos coeficientes de transformada aplanados de um primeiro bloco correspondente de coeficientes de transformada aplanados derivados com o uso de um primeiro envelope ajustado é reduzido em comparação com uma variância dos coeficientes de transformada aplanados de um primeiro bloco correspondente de coeficientes de transformada aplanados derivados com o uso de um primeiro envelope interpolado. O primeiro envelope ajustado pode ser determinado deslocando-se o primeiro envelope interpolado com o uso do primeiro ganho de envelope. O primeiro envelope interpolado pode ser o envelope interpolado da pluralidade de envelopes interpolados para o primeiro bloco de coeficientes de transformada da pluralidade de blocos de coeficientes de transformada.
[0016] Em particular, a unidade de determinação de ganho de en velope pode ser configurada para determinar o primeiro ganho de envelope para o primeiro bloco de coeficientes de transformada, de modo que a variância dos coeficientes de transformada aplanados do primeiro bloco correspondente de coeficientes de transformada aplanados derivado com o uso do primeiro envelope ajustado seja um. A unidade de aplanamento pode ser configurada para determinar a pluralidade de blocos de coeficientes de transformada aplanados aplanando-se a pluralidade de blocos correspondente de coeficientes de transformada com o uso da pluralidade correspondente de envelopes ajustados, respectivamente. Como resultado, os blocos de coeficientes de transformada aplanados podem ter cada um uma variância de um.
[0017] A unidade de determinação de ganho de envelope pode ser configurada para inserir dados de ganho indicativos da pluralidade de ganhos de envelope no fluxo de bits. Como um resultado, o decodifi- cador correspondente é possibilitado de determinar a pluralidade de envelopes ajustados da mesma maneira que o codificador.
[0018] O codificador de fala pode ser configurado para determinar o fluxo de bits com base na pluralidade de blocos de coeficientes de transformada aplanados. Em particular, o codificador de fala pode ser configurado para determinar os dados de coeficiente com base na pluralidade de blocos de coeficientes de transformada aplanados, em que os dados de coeficiente são inseridos no fluxo de bits. Os meios exemplificativos para determinar os dados de coeficiente com base na pluralidade de blocos de coeficientes de transformada aplanados são descritos abaixo.
[0019] O codificador de fala a base de transformada pode compre ender uma unidade de quantificação de envelope configurado para determinar um envelope atual quantificado quantificando-se o envelope atual. Ademais, a unidade de quantificação de envelope pode ser configurada para inserir os dados de envelope no fluxo de bits, em que os dados de envelope são indicativos do envelope atual quantificado. Como um resultado, o decodificador correspondente pode estar ciente do envelope atual quantificado decodificando-se os dados de envelope. A unidade de interpolação de envelope pode ser configurada para determinar a pluralidade de envelopes interpolados, com base no envelope atual quantificado. Ao fazer isso, pode-se garantir que o codificador e o decodificador sejam configurados para determinar a mesma pluralidade de envelopes interpolados.
[0020] O codificador de fala a base de transformada pode ser con figurado para operar em uma pluralidade de modos diferentes. Os modos diferentes podem compreender um modo de passo curto e um modo de passo longo. A unidade de enquadramento, a unidade de estimação de envelope e a unidade de interpolação de envelope são configuradas para processar o conjunto de blocos que compreende a pluralidade de blocos sequenciais de coeficientes de transformada, quando o codificador de fala a base de transformada for operado no modo de passo curto. Por isso, quando no modo de passo curto, o codificador pode ser configurado para subdividir um segmento/quadro de um sinal de áudio em uma sequência de blocos sequenciais, que são processados pelo codificador de uma maneira sequencial.
[0021] Por outro lado, a unidade de enquadramento, a unidade de estimação de envelope e a unidade de interpolação de envelope podem ser configuradas para processar o conjunto de blocos que compreende apenas um único bloco de coeficientes de transformada, quando o codificador de fala a base de transformada for operado no modo de passo longo. Por isso, quando no modo de passo longo, o codificador pode ser configurado para processar um segmento / quadro completo do sinal de áudio, sem subdivisão nos blocos. Isso pode ser benéfico para segmentos e/ou quadros curtos de um sinal de áudio e/ou para sinais de música. Quando no modo de passo longo, a unidade de estimação de envelope pode ser configurada para determinar um envelope atual do único bloco de coeficientes de transformada compreendido no conjunto de blocos. A unidade de interpolação de envelope pode ser configurada para determinar um envelope interpolado para o único bloco de coeficientes de transformada como o enve-lope atual do único bloco de coeficientes de transformada. Em outras palavras, a interpolação de envelope descrita no presente documento pode ser desviada, quando no modo de passo longo e o envelope atual do único bloco pode ser definido para ser o envelope interpolado (para o processamento adicional).
[0022] De acordo com outro aspecto, um decodificador de fala a base de transformada configurado para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito. Conforme já indicado acima, o decodificador pode compreender componentes que são análogos aos componentes de codificador correspondente. O de- codificador pode compreender uma unidade de decodificação de envelope configurado para determinar um envelope atual quantificado a partir dos dados de envelope compreendidos no fluxo de bits. Conforme indicado acima, o envelope atual quantificado pode ser tipicamente indicativo de uma pluralidade de valores de energia espectral para uma pluralidade correspondente de índices de frequência de bandas de frequência. Ademais, o fluxo de bits pode compreender dados (por exemplo, os dados de coeficiente) indicativos de uma pluralidade de blocos sequenciais de coeficientes de transformada aplanados reconstruídos. A pluralidade de blocos sequenciais de coeficientes de trans- formada aplanados reconstruídos é tipicamente associada à pluralidade correspondente de blocos sequenciais de coeficientes de transformada aplanados no codificador. A pluralidade de blocos sequenciais pode corresponder à pluralidade de blocos sequenciais de um conjunto de blocos, por exemplo, do conjunto de blocos deslocado descrito abaixo. Um bloco de coeficientes de transformada aplanados reconstruídos pode compreender uma pluralidade de coeficientes de transformada aplanados reconstruídos para a pluralidade correspondente de índices de frequência.
[0023] O decodificador pode compreender adicionalmente uma unidade de interpolação de envelope configurada para determinar uma pluralidade de envelopes interpolados para a pluralidade de blocos sequenciais de coeficientes de transformada aplanados reconstruídos, respectivamente, com base no envelope atual quantificado. A unidade de interpolação de envelope do decodificador opera, tipicamente, da mesma maneira que a unidade de interpolação de envelope do codificador. A unidade de interpolação de envelope pode ser configurada para determinar a pluralidade de envelopes interpolados, adicionalmente com base um envelope anterior quantificado. O envelope anterior quantificado pode ser associado a uma pluralidade de blocos anteriores de coeficientes de transformada reconstruídos, precedendo dire-tamente a pluralidade de blocos de coeficientes de transformada re-construídos. Como tal, o envelope anterior quantificado pode ter sido recebido pelo decodificador à medida que os dados de envelope para um conjunto de blocos anterior de coeficientes de transformada (por exemplo, no caso de um denominado P-quadro). Alternativa ou adicionalmente, os dados de envelope para o conjunto de blocos podem ser indicativos do envelope anterior quantificado além de ser indicativo do envelope atual quantificado (por exemplo, no caso de um denominado I-quadro). Isso possibilita que o I-quadro seja decodificado sem conhe- cimento de dados anteriores.
[0024] A unidade de interpolação de envelope pode ser configura da para determinar um valor de energia espectral para um índice de frequência particular de um primeiro envelope interpolado interpolando-se os valores de energia espectral para o índice de frequência particular do envelope atual quantificado e do envelope anterior quantificado no primeiro instante de tempo intermediário. O primeiro envelope interpolado é associado ou corresponde a um primeiro bloco da pluralidade de blocos sequenciais de coeficientes de transformada aplanados reconstruídos. Conforme esboçado acima, os envelopes atuais e anteriores quantificados são tipicamente envelopes de banda. Os valores de energia espectral para uma banda de frequência em particular são tipicamente constantes para todos os índices de frequência compreendidos na banda de frequência.
[0025] A unidade de interpolação de envelope pode ser configura da para determinar o valor de energia espectral para o índice de frequência particular do primeiro envelope interpolado quantificando-se a interpolação entre os valores de energia espectral para o índice de frequência particular do envelope atual quantificado e do envelope anterior quantificado. Como tal, a pluralidade de envelopes interpolados pode ser envelopes interpolados quantificados.
[0026] A unidade de interpolação de envelope pode ser configura da para determinar um valor de energia espectral para o índice de frequência particular de um segundo envelope interpolado interpolando- se os valores de energia espectral para o índice de frequência particular do envelope atual quantificado e do envelope anterior quantificado em um segundo instante de tempo intermediário. O segundo envelope interpolado pode ser associado ou corresponder a um segundo bloco da pluralidade de blocos sequenciais de coeficientes de transformada aplanados reconstruídos. O segundo bloco de coeficientes de trans- formada aplanados reconstruídos pode ser subsequente ao primeiro bloco de coeficientes de transformada aplanados reconstruídos e o segundo instante de tempo intermediário pode ser subsequente ao primeiro instante de tempo intermediário. Em particular, uma diferença entre o segundo instante de tempo intermediário e o primeiro instante de tempo intermediário pode corresponder a um intervalo de tempo entre o segundo bloco de coeficientes de transformada aplanados reconstruídos e o primeiro bloco de coeficientes de transformada aplanados reconstruídos.
[0027] A unidade de interpolação de envelope pode ser configura da para realizar uma ou mais dentre: uma interpolação linear, uma interpolação geométrica e uma interpolação harmônica. Ademais, a unidade de interpolação de envelope pode ser configurada para a interpolação em um domínio de logaritmo.
[0028] Ademais, o codificador de fala pode compreender uma unidade de aplanamento inversa é configurada para determinar uma pluralidade de blocos de coeficientes de transformada reconstruídos fornecendo-se a pluralidade de blocos correspondentes de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes interpolados, respectivamente.
[0029] Conforme indicado acima, o fluxo de bits pode ser indicativo de uma pluralidade de ganhos de envelope (nos dados de ganho) para a pluralidade de blocos de coeficientes de transformada aplanados re-construídos, respectivamente. O decodificador de fala a base de transformada pode compreender adicionalmente uma unidade de refinamento de envelope configurada para determinar uma pluralidade de envelopes ajustados aplicando-se a pluralidade de ganhos de envelope à pluralidade de envelopes interpolados, respectivamente.
[0030] A unidade de aplanamento inverso pode ser configurada para determinar a pluralidade de blocos de coeficientes de transformada reconstruídos fornecendo-se a pluralidade de blocos correspondente de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes ajustados, respectivamente.
[0031] O decodificador pode ser configurado para determinar o si nal de fala reconstruído com base na pluralidade de blocos de coeficientes de transformada reconstruídos.
[0032] De acordo com outro aspecto, um codificador de fala a base de transformada configurado para codificar um sinal de fala em um fluxo de bits é descrito. O codificador pode compreender qualquer um dentre os recursos relacionados e/ou componentes descritos no presente documento. Em particular, o codificador de fala pode compreender uma unidade de enquadramento configurada para receber uma pluralidade de blocos sequenciais de coeficientes de transformada. A pluralidade de blocos sequenciais compreende um bloco atual e um ou mais blocos anteriores. Conforme indicado acima, a pluralidade de blocos sequenciais é indicativa de amostras do sinal de fala.
[0033] Ademais, o codificador pode compreender uma unidade de aplanamento configurada para determinar um bloco atual e um ou mais blocos anteriores de coeficientes de transformada aplanados aplanando-se o bloco atual correspondente (131) e os um ou mais blocos anteriores de coeficientes de transformada com o uso de um envelope de bloco atual correspondente e correspondendo a um ou mais envelopes de bloco anterior, respectivamente. Os envelopes de bloco podem corresponder aos envelopes ajustados mencionados acima.
[0034] Além disso, o codificador compreende um previsor configurado para determinar um bloco atual de coeficientes de transformada aplanados estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um ou mais parâmetros de previsor. O um ou mais blocos anteriores de coeficientes de transformada reconstruídos podem ter sido derivados de um ou mais blocos anteriores de coeficientes de transformada aplanados, respectivamente (por exemplo, com o uso do previsor).
[0035] O previsor pode compreender um extrator configurado para determinar um bloco atual de coeficientes de transformada estimados com base nos um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base nos um ou mais parâmetros de previsor. Como tal, o extrator pode operar no domínio não aplanado (isto é, o extrator pode operar nos blocos de coeficientes de transformada que tem um formato espectral). Isso pode ser benéfico em relação a um modelo de sinal usado pelo extrator para determinar o bloco atual de coeficientes de transformada estimados.
[0036] Ademais, o previsor pode compreender um conformador espectral configurado para determinar o bloco atual de coeficientes de transformada aplanados estimados com base no bloco atual de coeficientes de transformada estimados, com base em pelo menos um dos envelopes de bloco anterior e com base em pelo menos um dentre os um ou mais parâmetros de previsor. Como tal, o conformador espectral pode ser configurado para converter o bloco atual de coeficientes de transformada estimados no domínio aplanado para fornecer o bloco atual de coeficientes de transformada aplanados estimados. Conforme esboçado no contexto do decodificador correspondente, o conforma- dor espectral pode fazer uso da pluralidade de envelopes ajustados (ou da pluralidade de envelopes de bloco) para esse fim.
[0037] Conforme indicado acima, o previsor (em particular, o extra tor) pode compreender um previsor baseado em modelo com o uso de um modelo de sinal. O modelo de sinal pode compreender um ou mais parâmetros de modelo e os um ou mais parâmetros de previsor podem ser indicativos dos um ou mais parâmetros de modelo. O uso de um previsor baseado em modelo pode ser benéfico para fornecer os meios eficazes de taxa de bit para descrever os coeficientes de previsão usados pelo previsor de sub-banda (ou índice de frequência). Em particular, pode ser possível determinar um conjunto completo de coeficientes de previsão com o uso apenas de alguns parâmetros de modelo, que podem ser transmitidos como dados de previsor para o decodifi- cador correspondente de uma maneira eficiente em termos de taxa de bit. Como tal, o previsor baseado em modelo pode ser configurado para determinar os um ou mais parâmetros de modelo do modelo de sinal (por exemplo, com o uso de um algoritmo de Durbin-Levinson). Ademais, o previsor baseado em modelo pode ser configurado para determinar um coeficiente de previsão a ser aplicado a um primeiro coeficiente de transformada reconstruído em um primeiro índice de frequência de um bloco anterior de coeficientes de transformada re-construídos, com base no modelo de sinal e com base nos um ou mais parâmetros de modelo. Em particular, uma pluralidade de coeficientes de previsão para uma pluralidade de coeficientes de transformada reconstruídos pode ser determinada. Ao fazer isso, uma estimativa de um primeiro coeficiente de transformada estimado no primeiro índice de frequência do bloco atual de coeficientes de transformada estimados pode ser determinada aplicando-se o coeficiente de previsão ao primeiro coeficiente de transformada reconstruído. Em particular, ao fazer isso, os coeficientes de transformada estimados do bloco atual de coeficientes de transformada estimados podem ser determinados.
[0038] Por meio de exemplo, o modelo de sinal pode compreender um ou mais componentes de modelo sinusoidal e os um ou mais parâmetros de modelo podem ser indicativos de uma frequência dos um ou mais componentes de modelo sinusoidal. Em particular, os um ou mais parâmetros de modelo podem ser indicativos de uma frequência fundamental de um modelo de sinal multissinusoidal. Tal frequência fundamental pode corresponder a um atraso no domínio de tempo.
[0039] O previsor pode ser configurado para determinar os um ou mais parâmetros de previsor tais como um valor quadrado médio dos coeficientes de erro de previsão do bloco atual de coeficientes de erro de previsão é reduzido (por exemplo, minimizado). Isso pode ser alcançado com o uso, por exemplo, de um algoritmo de Durbin- Levinson. O previsor pode ser configurado para inserir os dados de previsor indicativos dos um ou mais parâmetros de previsor no fluxo de bits. Como um resultado, o decodificador correspondente é possibilitado de determinar o bloco atual de coeficientes de transformada aplanados estimados da mesma maneira que o codificador.
[0040] Ademais, o codificador pode compreender uma unidade de diferença configurada para determinar um bloco atual de coeficientes de erro de previsão com base no bloco atual de coeficientes de transformada aplanados e com base no bloco atual de coeficientes de transformada aplanados estimados. O fluxo de bits pode ser determinado com base no bloco atual de coeficientes de erro de previsão. Em particular, os dados de coeficiente do fluxo de bits podem ser indicativos do bloco atual de coeficientes de erro de previsão.
[0041] De acordo com um aspecto adicional, um decodificador de fala a base de transformada configurado para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito. O decodifi- cador pode compreender qualquer um dentre os recursos e/ou componentes relacionados a decodificador descritos no presente documento. Em particular, o decodificador pode compreender um previsor configurado para determinar um bloco atual de coeficientes de transformada aplanados estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um ou mais parâmetros de previsor derivados a partir do (dos dados de previsor de) fluxo de bits. Conforme esboçado no contexto do codi- ficador correspondente, o previsor pode compreender um extrator configurado para determinar um bloco atual de coeficientes de transformada estimados com base em pelo menos um dentre os um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em pelo menos um dentre os um ou mais parâmetros de previsor. Ademais, o previsor pode compreender um conformador espectral configurado para determinar o bloco atual de coeficientes de transformada aplanados estimados com base no bloco atual de coeficientes de transformada estimados, com base em um ou mais envelopes de bloco anterior (por exemplo, os envelopes ajustados anteriores) e com base nos um ou mais parâmetros de previsor.
[0042] Os um ou mais parâmetros de previsor podem compreender um parâmetro de retardo de bloco r. O parâmetro de retardo de bloco pode ser indicativo de inúmeros blocos precedendo o bloco atual de coeficientes de transformada aplanados estimados. Em particular, o parâmetro de retardo de bloco 7 pode ser indicativo de uma periodicidade do sinal de fala. Como tal, o parâmetro de retardo de bloco 7 pode indicar quais dentre os um ou mais dos blocos anteriores de coeficientes de transformada reconstruídos são (os mais) semelhantes ao bloco atual de coeficientes de transformada, e podem, portanto, ser usados para prever o bloco atual de coeficientes de transformada, isto é, pode ser usado para determinar o bloco atual de coeficientes de transformada estimados.
[0043] O conformador espectral pode ser configurado para aplanar o bloco atual de coeficientes de transformada estimados com o uso de um envelope estimado atual. Ademais, o conformador espectral pode ser configurado para determinar o envelope estimado atual com base em pelo menos um dentre os um ou mais envelopes de bloco anterior e com base no parâmetro de retardo de bloco. Em particular, o con- formador espectral pode ser configurado para determinar um valor de retardo integral < com base no parâmetro de retardo de bloco r. O valor de retardo integral < pode ser determinado arredondando-se o parâmetro de retardo de bloco 7 para o número inteiro mais próximo. Ademais, o conformador espectral pode ser configurado para determinar o envelope estimado atual como o envelope de bloco anterior (por exemplo, o envelope ajustado anterior) do bloco anterior de coeficientes de transformada reconstruídos que predizem o bloco atual de coeficientes de transformada aplanados estimados por um número de blocos que correspondem ao valor de retardo integral. Deve-se notar que os recursos descritos para o conformador espectral do decodificador também são aplicáveis ao conformador espectral do codificador.
[0044] O extrator pode ser configurado para determinar um bloco atual de coeficientes de transformada estimados com base em pelo menos um dentre os um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base nos parâmetros de retardo de bloco ". Para essa finalidade, o extrator pode fazer uso de um previsor baseado em modelo, conforme esboçado no contexto do codificador correspondente. Nesse contexto, parâmetro de retardo de bloco 7 pode ser indicativo de uma frequência fundamental de um modelo multis- sinusoidal.
[0045] Ademais, o decodificador de fala pode compreender um de- codificador de espectro configurado para determinar um bloco atual de coeficientes de erro de previsão quantificados com base nos dados de coeficiente compreendido no fluxo de bits. Para essa finalidade, o de- codificador de espectro pode fazer uso de quantificadores conforme descrito no presente documento. Além disso, o decodificador de fala pode compreender uma unidade de adição configurada para determinar um bloco atual de coeficientes de transformada aplanados reconstruídos com base no bloco atual de coeficientes de transformada aplanados estimados e com base no bloco atual de coeficientes de erro de previsão quantificados. Além disso, o decodificador de fala pode compreender uma unidade de aplanamento inversa configurada para determinar um bloco atual de coeficientes de transformada reconstruídos fornecendo-se o bloco atual de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso de um envelope de bloco atual. Ademais, a unidade de aplanamento pode ser configurada para determinar o um ou mais blocos anteriores de coeficientes de transformada reconstruídos fornecendo-se um ou mais blocos anteriores de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso dos um ou mais envelopes de bloco anterior (por exemplo, envelopes ajustados anteriores), respectivamente. O decodificador de fala pode ser configurado para de-terminar o sinal de fala reconstruído com base nos blocos atuais e nos um ou mais anteriores de coeficientes de transformada reconstruídos.
[0046] O decodificador de fala a base de transformada compreen de um armazenamento temporário de envelope configurado para armazenar um ou mais envelopes de bloco anterior. O conformador espectral pode ser configurado para determinar o valor de retardo integral < limitando-se o valor de retardo integral < a inúmeros envelopes de bloco anterior armazenados no armazenamento temporário de envelope. O número de envelopes de bloco anterior que são armazenados no armazenamento temporário de envelope pode variar (por exemplo, no começo de um I-quadro). O conformador espectral pode ser configurado para determinar o número de envelopes anteriores que são armazenados no armazenamento temporário de envelope e para limitar o valor de retardo integral dessa maneira. Ao fazer isso, os loop-ups de envelope errôneo podem ser evitados.
[0047] O conformador espectral pode ser configurado para aplanar o bloco atual de coeficientes de transformada estimados, de modo que, antes da aplicação dos um ou mais parâmetros de previsor (nota- velmente antes da aplicação do ganho de previsor), o bloco atual de coeficientes de transformada estimados aplanados exibe a variância de unidade (por exemplo, em algumas ou em todas as bandas de frequência). Para essa finalidade, o fluxo de bits pode compreender um parâmetro de ganho de variância e o conformador espectral pode ser configurado para aplicar o parâmetro de ganho de variância ao bloco atual de coeficientes de transformada estimados. Isso pode ser benéfico com relação à qualidade de previsão.
[0048] De acordo com um aspecto adicional, um codificador de fala a base de transformada configurado para codificar um sinal de fala em um fluxo de bits é descrito. Conforme já indicado acima, o codificador pode compreender qualquer um dentre os recursos relacionados e/ou componentes descritos no presente documento. Em particular, o codificador de fala pode compreender uma unidade de enquadramento configurada para receber uma pluralidade de blocos sequenciais de coeficientes de transformada. A pluralidade de blocos sequenciais compreende um bloco atual e um ou mais blocos anteriores. Ademais, a pluralidade de blocos sequenciais é indicativa de amostras do sinal de fala.
[0049] Além disso, o codificador de fala pode compreender uma unidade de aplanamento configurada para determinar um bloco atual de coeficientes de transformada aplanados aplanando-se o bloco atual correspondente de coeficientes de transformada com o uso de um envelope de bloco atual correspondente (por exemplo, o envelope ajustado correspondente). Ademais, o codificador de fala pode compreender um previsor configurado para determinar um bloco atual de coeficientes de transformada aplanados estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um ou mais parâmetros de previsor (que compreendem, por exemplo, um ganho de previsor). Conforme esboçado, os um ou mais blocos anteriores de coeficientes de transformada reconstruídos podem ter sido derivados de um ou mais blocos anteriores de coeficientes de transformada. Adicionalmente, o codificador de fala pode compreender uma unidade de diferença configurada para determinar um bloco atual de coeficientes de erro de previsão com base no bloco atual de coeficientes de transformada aplanados e com base no bloco atual de coeficientes de transformada aplanados estimados.
[0050] O previsor pode ser configurado para determinar o bloco atual de coeficientes de transformada aplanados estimados com o uso de um critério de erro quadrático médio ponderado (por exemplo, minimizando-se um critério de erro quadrático médio ponderado). O critério de erro quadrático médio ponderado pode levar em consideração o envelope de bloco atual ou alguma função predefinida do envelope de bloco atual como ponderações. No presente documento, vários modos diferentes para determinar o ganho de previsor com o uso de um critério de erro quadrático médio ponderado são descritos.
[0051] Ademais, o codificador de fala pode compreender uma unidade de quantificação de coeficiente configurada para quantificar coeficientes derivados do bloco atual de coeficientes de erro de previsão, com o uso de um conjunto de quantificadores predeterminados. A unidade de quantificação de coeficiente pode ser configurada para determinar o conjunto de quantificadores predeterminados em dependência de pelo menos um dentre os um ou mais parâmetros de previsor. Isso significa que o desempenho do previsor pode ter um impacto nos quantificadores usados pela unidade de quantificação de coeficiente.
[0052] A unidade de quantificação de coeficiente pode ser configu rada para determinar os dados de coeficiente para o fluxo de bits com base nos coeficientes quantificados. Como tal, os dados de coeficiente podem ser indicativos de uma versão quantificada do bloco atual de coeficientes de erro de previsão.
[0053] O codificador de fala a base de transformada pode compre ender adicionalmente uma unidade de dimensionamento configurada para determinar um bloco atual de coeficientes de erro dimensionados com base no bloco atual de coeficientes de erro de previsão com o uso de uma ou mais regras de dimensionamento. O bloco atual de coeficiente de erro dimensionado pode ser determinado de modo que as uma ou mais regras de dimensionamento possam ser tais que, na média, uma variância dos coeficientes de erro dimensionados do bloco atual de coeficientes de erro dimensionados seja maior do que uma variância dos coeficientes de erro de previsão do bloco atual de coeficientes de erro de previsão. Em particular, as uma ou mais regras de dimensionamento podem ser tais que a variância dos coeficientes de erro de previsão está mais perto do unitário para todos os índices de frequência ou bandas de frequência. A unidade de quantificação de coeficiente pode ser configurada para quantificar os coeficientes de erro dimensionados do bloco atual de coeficientes de erro dimensionados, para fornecer os dados de coeficiente.
[0054] O bloco atual de coeficientes de erro de previsão compre ende tipicamente uma pluralidade de coeficientes de erro de previsão para a pluralidade correspondente de índices de frequência. Os ganhos de dimensionamento que são aplicados pela unidade de dimensionamento aos coeficientes de erro de previsão de acordo com a regra de dimensionamento podem ser dependentes dos índices de frequência dos respectivos coeficientes de erro de previsão. Ademais, a regra de dimensionamento pode ser dependente dos um ou mais parâmetros de previsor, por exemplo, no ganho de previsor. Alternativa ou adicionalmente, a regra de dimensionamento pode ser dependente do envelope de bloco atual. No presente documento, vários modos diferentes para determinar um índice de frequência - regra de dimensionamento dependente - são descritos.
[0055] O codificador de fala a base de transformada pode compre ender adicionalmente uma unidade de alocação de bit configurada para determinar um vetor de alocação com base no envelope de bloco atual. O vetor de alocação pode ser indicativo de um primeiro quantifi- cador do conjunto de quantificadores predeterminados a ser usado para quantificar um primeiro coeficiente derivado do bloco atual de coeficientes de erro de previsão. Particularmente, o vetor de alocação pode ser indicativo de quantificadores a serem usados para quantificar todos os coeficientes derivados do bloco atual de coeficientes de erro de previsão, respectivamente. A título de exemplo, o vetor de alocação pode ser indicativo de um quantificador diferente a ser usado para cada banda de frequência.
[0056] A unidade de alocação de bits pode ser configurada para determinar o vetor de alocação de modo que os dados de coeficiente para o bloco atual de coeficientes de erro de previsão não excedam um número predeterminado de bits. Ademais, a unidade de alocação de bits pode ser configurada para determinar um valor de desvio indicativo de um desvio a ser aplicado a um envelope de alocação derivado do envelope de bloco atual (por exemplo, derivado a partir do envelope ajustado atual). O valor de desvio pode ser incluído no fluxo de bits para possibilitar que o decodificador correspondente identifique os quantificadores que foram usados para determinar os dados de coeficiente. De acordo com outro aspecto, um decodificador de fala à base de transformada configurado para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito.
[0057] O decodificador de fala pode compreender qualquer um dos recursos e/ou componentes descritos no presente documento. Particu-larmente, o decodificador pode compreender um previsor configurado para determinar um bloco atual de coeficientes de transformada aplanados estimados à base de um ou mais blocos anteriores de coeficien- tes de transformada reconstruídos e à base de um ou mais parâmetros de previsor derivados do fluxo de bits. Ademais, o decodificador de fala pode compreender um decodificador de espectro configurado para determinar um bloco atual de coeficientes de erro de previsão quantificados (ou uma versão redimensionada dos mesmos) à base de dados de coeficiente compreendidos no fluxo de bits, com o uso de um conjunto de quantificadores predeterminados. Particularmente, o decodifi- cador de espectro pode usar um conjunto de quantificadores inversos predeterminados correspondentes ao conjunto de quantificadores predeterminados usados pelo codificador de fala correspondente.
[0058] O decodificador de espectro pode ser configurado para de terminar o conjunto de quantificadores predeterminados (e/ou o conjunto de quantificadores inversos predeterminados correspondente) dependendo do um ou mais parâmetros de previsor. Particularmente, o decodificador de espectro pode realizar o mesmo processo de seleção para o conjunto de quantificadores predeterminados como a unidade de quantificação de coeficiente do codificador de fala correspondente. Tornando-se o conjunto de quantificadores predeterminados dependente de um ou mais parâmetros de previsor, a qualidade per- ceptiva do sinal de fala reconstruído pode ser aprimorada.
[0059] O conjunto de quantificadores predeterminados pode com preender quantificadores diferentes com diferentes razões de sinal para ruído (e taxas de bit diferentes associadas). Ademais, o conjunto de quantificadores predeterminados pode compreender pelo menos um quantificador com dither. O um ou mais parâmetros de previsor podem compreender um ganho de previsor .. O ganho de previsor pode ser indicativo de um grau de relevância do um ou mais blocos anteriores de coeficientes de transformada reconstruídos para o bloco atual de coeficientes de transformada reconstruídos. De tal modo, o ganho de previsor pode fornecer uma indicação da quantidade de informações compreendidas no bloco atual de coeficientes de erro de previsão. Um ganho de previsor * relativamente alto pode ser indicativo de uma quantidade relativamente baixa de informações e vice-versa. Diversos quantificadores com dither compreendidos no conjunto de quantifica- dores predeterminados pode depender do ganho de previsor. Particularmente, a quantidade de quantificadores com dither compreendidos no conjunto de quantificadores predeterminados pode diminuir com o ganho de previsor crescente.
[0060] O decodificador de espectro pode ter acesso a um primeiro conjunto e um segundo conjunto de quantificadores predeterminados. O segundo conjunto pode compreender uma quantidade de quantifica- dores com dither mais baixa do que o primeiro conjunto de quantifica- dores. O decodificador de espectro pode ser configurado para determinar um rfu de critério de conjunto com base no ganho de previsor .. O decodificador de espectro pode ser configurado para usar o primeiro conjunto de quantificadores predeterminados se o rfu de critério de conjunto for menor do que um limite predeterminado; e. Ademais, o decodificador de espectro pode ser configurado para usar o segundo conjunto de quantificadores predeterminados se o rfu de critério de conjunto for maior ou igual ao limite predeterminado. O critério de conjunto pode ser L-“ = T-Jr-:: ;::, em que o ganho de previsor é .. Tal rfu de critério de conjunto admite valores maiores ou iguais a zero e menores ou iguais a um. O limite predeterminado pode ser 0,75.
[0061] Conforme indicado acima, o critério de conjunto pode de pender do parâmetro de controle predeterminado, 1 -- Em um exemplo alternativo, o rfu de parâmetro de controle pode ser determinado com o uso das seguintes condições: rfu= 1,0 para g < -1,0; rfu = -g para - 1,0 < g < 0,0; rfu = g para 0,0 < g < 1,0; rfu = 2,0 - g para 1,0 < g < 2,0; e/ou rfu = 0,0 para g > 2,0. Ademais, o decodificador de fala pode compreender uma unidade de adição configurada para determinar um bloco atual de coeficientes de transformada aplanados reconstruídos com base no bloco atual de coeficientes de transformada aplanados estimados e com base no bloco atual de coeficientes de erro de previsão quantificados. Ademais, o decodificador de fala pode compreender uma unidade de aplanamento inversa configurada para determinar um bloco atual de coeficientes de transformada reconstruídos através do fornecimento do bloco atual de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso de um envelope de bloco atual. O sinal de fala reconstruído pode ser determinado com base no bloco atual de coeficientes de transformada reconstruídos (por exemplo, com o uso de uma unidade de transformada inversa).
[0062] O decodificador de fala à base de transformada pode com preender uma unidade de dimensionamento inverso configurada para redimensionar os coeficientes de erro de previsão quantificados do bloco atual de coeficientes de erro de previsão quantificados com o uso de uma regra de dimensionamento inverso, para fornecer um bloco atual de coeficientes de erro de previsão redimensionados. Os ganhos de dimensionamento que são aplicados pela unidade de dimensionamento inverso aos coeficientes de erro de previsão quantificados de acordo com a regra de dimensionamento inverso podem ser dependentes de índices de frequência dos respectivos coeficientes de erro de previsão quantificados. Em outras palavras, a regra de dimen-sionamento inverso pode ser dependente de frequência, isso é, os ganhos de dimensionamento podem ser dependentes da frequência. A regra de dimensionamento inverso pode ser configurada para ajustar a variância dos coeficientes de erro de previsão quantificados para os diferentes índices de frequência.
[0063] A regra de dimensionamento inverso é, tipicamente, o inverso da regra de dimensionamento aplicada pela unidade de dimen- sionamento do codificador de fala correspondente à base de transformada. Portanto, os aspectos, que são descritos neste documento em relação à determinação e às propriedades da regra de dimensionamento, também são aplicáveis (de uma maneira análoga) para a regra de dimensionamento inverso.
[0064] A unidade de adição pode ser configurada para determinar o bloco atual de coeficientes de transformada aplanados reconstruídos adicionando-se o bloco atual de coeficientes de erro de previsão redi- mensionados ao bloco atual de coeficientes de transformada aplanados estimados.
[0065] O um ou mais parâmetros de controle podem compreender um sinalizador de preservação de variância. O sinalizador de preservação de variância pode ser indicativo de como uma variância do bloco atual de coeficientes de erro de previsão quantificados deve ser conformada. Em outras palavras, o sinalizador de preservação de variância pode ser indicativo do processamento a ser realizado pelo de- codificador, que tem um impacto sobre a variância do bloco atual de coeficientes de erro de previsão quantificados.
[0066] A título de exemplo, o conjunto de quantificadores predeterminados pode ser determinado em dependência do sinalizador de preservação de variância. Particularmente, o conjunto de quantificado- res predeterminados pode compreender um quantificador de síntese de ruído. Um ganho ruído do quantificador de síntese de ruído pode ser dependente do sinalizador de preservação de variância. Alternativa ou adicionalmente, o conjunto de quantificadores predeterminados compreende um ou mais quantificadores com dither que cobrem uma faixa de SNR. A faixa de SNR pode ser determinada em dependência do sinalizador de preservação de variância. Pelo menos um dentre o um ou mais quantificadores com dither pode ser configurado para aplicar um pós-ganho :•’, ao determinar um coeficiente de erro de previsão quantificado. O pós-ganho pode ser dependente do sinalizador de preservação de variância.
[0067] O decodificador de fala à base de transformada pode com preender uma unidade de dimensionamento inverso configurada para redimensionar os coeficientes de erro de previsão quantificados do bloco atual de coeficientes de erro de previsão quantificados, para fornecer um bloco atual de coeficientes de erro de previsão redimensio- nados. A unidade de adição pode ser configurada para determinar o bloco atual de coeficientes de transformada aplanados reconstruídos tanto adicionando-se o bloco atual de coeficientes de erro de previsão redimensionados quanto adicionando-se o bloco atual de coeficientes de erro de previsão quantificados ao bloco atual de coeficientes de transformada aplanados estimados, dependendo do sinalizador de preservação de variância.
[0068] O sinalizador de preservação de variância pode ser usado para adaptar o grau de ruído dos quantificadores à qualidade da previsão. Como um resultado disso, a qualidade perceptiva do codec pode ser aprimorada.
[0069] De acordo com outro aspecto, um codificador de áudio à base de transformada é descrito. O codificador de áudio é configurado para codificar um sinal de áudio que compreende um primeiro segmento (por exemplo, um segmento de fala) em um fluxo de bits. Particularmente, o codificador de áudio pode ser configurado para codificar um ou mais segmentos de fala do sinal de áudio com o uso de um codificador de fala à base de transformada. Ademais, o codificador de áudio pode ser configurado para codificar um ou mais segmentos de não-fala do sinal de áudio com o uso de um codificador de áudio genérico à base de transformada.
[0070] O codificador de áudio pode compreender um classificador de sinal configurado para identificar o primeiro segmento (por exemplo, o segmento de fala) a partir do sinal de áudio. Em termos mais gerais, o classificador de sinal pode ser configurado para determinar um segmento a partir do sinal de áudio que deve ser codificado através de um codificador de fala à base de transformada. O primeiro segmento determinado pode ser chamado de um segmento de fala (embora o segmento possa não compreender, necessariamente, uma fala real). Particularmente, o classificador de sinal pode ser configurado para classificar diferentes segmentos (por exemplo, quadros ou blocos) do sinal de áudio em fala ou não-fala.
[0071] Conforme esboçado acima, um bloco de coeficientes de transformada pode compreender uma pluralidade de coeficientes de transformada para uma pluralidade correspondente de índices de frequência. Ademais, o codificador de áudio pode compreender uma unidade de transformada configurada para determinar uma pluralidade de blocos sequenciais de coeficientes de transformada com base no primeiro segmento. A unidade de transformada pode ser configurada para transformar segmentos de fala e segmentos de não-fala.
[0072] A unidade de transformada pode ser configurada para determinar blocos longos que compreendem uma primeira quantidade de coeficientes de transformada e blocos curtos que compreendem uma segunda quantidade de coeficientes de transformada. A primeira quantidade de amostrar pode ser maior do que a segunda quantidade de amostras. Particularmente, a primeira quantidade de amostras pode ser 1.024 e a segunda quantidade de amostras pode ser 256. Os blocos da pluralidade de blocos sequenciais podem ser blocos curtos. Particularmente, o codificador de áudio pode ser configurado para transformar todos os segmentos do sinal de áudio, que foram classifi-cados como fala, em blocos curtos.
[0073] Ademais, o codificador de áudio pode compreender um codificador de fala à base de transformada (conforme descrito no presen te documento) configurado para codificar a pluralidade de blocos sequenciais no fluxo de bits. Além disso, o codificador de áudio pode compreender um codificador de áudio genérico à base de transformada configurado para codificar um segmento do sinal de áudio diferente do primeiro segmento (por exemplo, um segmento de não-fala). O codificador de áudio genérico à base de transformada pode ser um AAC (Advanced Audio Coder) ou um HE codificador de AAC (de Alta Eficácia). Conforme já foi esboçado acima, a unidade de transformada pode ser configurada para realizar uma MDCT. De tal modo, o codificador de áudio pode ser configurado para codificar o sinal de áudio de entrada completo (que compreende segmentos de fala e segmentos de não-fala) no domínio de transformada (com o uso de uma única unidade de transformada).
[0074] De acordo com outro aspecto, um decodificador de áudio à base de transformada correspondente configurado para decodificar um fluxo de bits indicativo de um sinal de áudio que compreende um segmento de fala (isso é, um segmento que foi codificado com o uso de um codificador de fala à base de transformada) é descrito. O decodifi- cador de áudio pode compreender um decodificador de fala à base de transformada configurada para determinar uma pluralidade de blocos sequenciais de coeficientes de transformada reconstruídos com base nos dados (por exemplo, os dados de envelope, os dados de ganho, os dados de previsor e os dados de coeficiente) compreendidos no fluxo de bits. Ademais, o fluxo de bits pode indicar que os dados recebidos sejam decodificados com o uso de um decodificador de fala.
[0075] Além disso, o decodificador de áudio pode compreender uma unidade de transformada inversa configurada para determinar um segmento de fala reconstruído com base na pluralidade de blocos sequenciais de coeficientes de transformada reconstruídos. Um bloco de coeficientes de transformada reconstruídos pode compreender uma pluralidade de coeficientes de transformada reconstruídos para uma pluralidade correspondente de índices de frequência. A unidade de transformada inversa pode ser configurada para processar blocos longos que compreendem uma primeira quantidade de coeficientes de transformada reconstruídos e blocos curtos que compreendem uma segunda quantidade de coeficientes de transformada reconstruídos. A primeira quantidade de amostras pode ser maior do que a segunda quantidade de amostras. Os blocos da pluralidade de blocos sequenciais podem ser blocos curtos.
[0076] De acordo com um aspecto adicional, um método para codi ficar um sinal de fala em um fluxo de bits é descrito. O método pode compreender receber um conjunto de blocos. O conjunto de blocos pode compreender uma pluralidade de blocos sequenciais de coeficientes de transformada. A pluralidade de blocos sequenciais pode ser indicativa de amostras do sinal de fala. Ademais, um bloco de coeficientes de transformada pode compreender uma pluralidade de coeficientes de transformada para uma pluralidade correspondente de índices de frequência. O método pode seguir na determinação de um envelope atual com base na pluralidade de blocos sequenciais de coeficientes de transformada.
[0077] O envelope atual pode ser indicativo de uma pluralidade de valores de energia espectral para a pluralidade correspondente de índices de frequência. Ademais, o método pode compreender determinar uma pluralidade de envelopes interpolados para a pluralidade de blocos de coeficientes de transformada, respectivamente, com base no envelope atual. Além disso, o método pode compreender determinar uma pluralidade de blocos de coeficientes de transformada aplanados através do aplanamento da pluralidade correspondente de blocos de coeficientes de transformada com o uso da pluralidade correspondente de envelopes interpolados, respectivamente. O fluxo de bits pode ser determinado com base na pluralidade de blocos de coeficientes de transformada aplanados.
[0078] De acordo com outro aspecto, um método para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito. O método pode compreender determinar um envelope atual quantificado a partir de dados de envelope compreendidos no fluxo de bits. O envelope atual pode ser indicativo de uma pluralidade de valores de energia espectral para uma pluralidade correspondente de índices de frequência; O fluxo de bits pode compreender dados (por exemplo, os dados de coeficiente e/ou dados de previsor) indicativos de uma pluralidade de blocos sequenciais de coeficientes de transformada aplanados reconstruídos. Um bloco de coeficientes de transformada aplanados reconstruídos pode compreender uma pluralidade de coeficientes de transformada aplanados reconstruídos para a pluralidade correspondente de índices de frequência. Ademais, o método pode compre-ender determinar uma pluralidade de envelopes interpolados para a pluralidade de blocos de coeficientes de transformada aplanados reconstruídos, respectivamente, com base no envelope atual quantificado. O método pode dar continuidade à determinação em uma pluralidade de blocos de coeficientes de transformada reconstruídos através do fornecimento da pluralidade correspondente de blocos de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes interpolados, respectivamente. O sinal de fala reconstruído pode ter por base a pluralidade de blocos de coeficientes de transformada reconstruídos. De acordo com outro aspecto, um método para codificar um sinal de fala em um fluxo de bits é descrito. O método pode compreender receber uma pluralidade de blocos sequenciais de coeficientes de transformada que compreendem um bloco atual e um ou mais blocos ante-riores. A pluralidade de blocos sequenciais pode ser indicativa de amostras do sinal de fala. O método pode dar continuidade à determinação de um bloco atual e um ou mais blocos anteriores de coeficientes de transformada aplanados através do aplanamento do bloco atual correspondente e o correspondente um ou mais blocos anteriores de coeficientes de transformada com o uso de um envelope de bloco atual correspondente e o correspondente um ou mais envelopes de bloco anteriores, respectivamente.
[0079] Ademais, o método pode compreender determinar um bloco atual de coeficientes de transformada aplanados estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um parâmetro de previsor. Isso pode ser arquivado com o uso de técnicas de previsão. O um ou mais blocos anteriores de coeficientes de transformada reconstruídos podem ter sido derivados de um ou mais blocos anteriores de coeficientes de transformada aplanados, respectivamente. A etapa de determinação do bloco atual de coeficientes de transformada aplanados estimados pode compreender determinar um bloco atual de coeficientes de transformada estimados com base no um ou mais blocos anteriores de coe-ficientes de transformada reconstruídos e com base no parâmetro de previsor e determinar o bloco atual de coeficientes de transformada aplanados estimados com base no bloco atual de coeficientes de transformada estimados, com base no um ou mais envelopes de bloco anteriores e com base no parâmetro de previsor.
[0080] Ademais, o método pode compreender determinar um bloco atual de coeficientes de erro de previsão com base no bloco atual de coeficientes de transformada aplanados e com base no bloco atual de coeficientes de transformada aplanados estimados. O fluxo de bits pode ser determinado com base no bloco atual de coeficientes de erro de previsão.
[0081] De acordo com um aspecto adicional, um método para de- codificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito. O método pode compreender determinar um bloco atual de coeficientes de transformada aplanados estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um parâmetro de previsor derivado do fluxo de bits. A etapa de determinação do bloco atual de coeficientes de transformada aplanados estimados pode compreender determinar um bloco atual de coeficientes de transformada estimados com base no um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base no parâmetro de previsor; e determinar o bloco atual de coeficientes de transformada aplanados estimados com base no bloco atual de coeficientes de transformada estimados, com base em um ou mais envelopes de bloco anteriores e com base no parâmetro de previsor.
[0082] Ademais, o método pode compreender determinar um bloco atual de coeficientes de erro de previsão quantificados com base nos dados de coeficiente compreendidos no fluxo de bits. O método pode dar continuidade à determinação de um bloco atual de coeficientes de transformada aplanados reconstruídos com base no bloco atual de coeficientes de transformada aplanados estimados e com base no bloco atual de coeficientes de erro de previsão quantificados. Um bloco atual de coeficientes de transformada reconstruídos pode ser determinado através do fornecimento do bloco atual de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso de e um envelope de bloco atual (por exemplo, o envelope ajustado atual). Ademais, o um ou mais blocos anteriores de coeficientes de transformada reconstruídos podem ser determinados através do fornecimento de um ou mais blocos anteriores de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso do um ou mais envelopes de bloco anteriores (por exemplo, o um ou mais envelopes ajustados anteriores), respectivamente. Além disso, o método pode compreender determinar o sinal de fala reconstruído com base no atual e nos um ou mais blocos anteriores de coeficientes de transformada reconstruídos.
[0083] De acordo com um aspecto adicional, um método para codi ficar um sinal de fala em um fluxo de bits é descrito. O método pode compreender receber uma pluralidade de blocos sequenciais de coeficientes de transformada que compreendem um bloco atual e um ou mais blocos anteriores. A pluralidade de blocos sequenciais pode ser indicativa de amostras do sinal de fala.
[0084] Ademais, o método pode compreender determinar um bloco atual de coeficientes de transformada estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um parâmetro de previsor. O um ou mais blocos anteriores de coeficientes de transformada reconstruídos podem ter sido derivados de um ou mais blocos anteriores de coeficientes de transformada. O método pode dar continuidade na determinação de um bloco atual de coeficientes de erro de previsão com base no bloco atual de coeficientes de transformada e com base no bloco atual de coeficientes de transformada estimados.
[0085] Ademais, o método pode compreender quantificar coefici entes derivados do bloco atual de coeficientes de erro de previsão, com o uso de um conjunto de quantificadores predeterminados. O conjunto de quantificadores predeterminados pode ser dependente do parâmetro de previsor. Ademais, o método pode compreender determinar dados de coeficiente para o fluxo de bits com base nos coeficientes quantificados.
[0086] De acordo com outro aspecto, um método para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído é descrito. O método pode compreender determinar um bloco atual de coeficien- tes de transformada estimados com base em um ou mais blocos anteriores de coeficientes de transformada reconstruídos e com base em um parâmetro de previsor derivado do fluxo de bits. Ademais, o método pode compreender determinar um bloco atual de coeficientes de erro de previsão quantificados com base nos dados de coeficiente compreendidos no fluxo de bits, com o uso de um conjunto de quantifi- cadores predeterminados. O conjunto de quantificadores predeterminados pode ser uma função do parâmetro de previsor. O método pode dar continuidade à determinação de um bloco atual de coeficientes de transformada reconstruídos com base no bloco atual de coeficientes de transformada estimados e com base no bloco atual de coeficientes de erro de previsão quantificados. O sinal de fala reconstruído pode ser determinado com base no bloco atual de coeficientes de transfor-mada reconstruídos.
[0087] De acordo com um aspecto adicional, um método para co dificar um sinal de áudio que compreende um segmento de fala em um fluxo de bits está descrito. O método pode compreender identificar o segmento de fala a partir do sinal de áudio. Ademais, o método pode compreender determinar uma pluralidade de blocos sequenciais de coeficientes de transformada com base no segmento de fala, com o uso de uma unidade de transformada. A unidade de transformada pode ser configurada para determinar blocos longos que compreendem uma primeira quantidade de coeficientes de transformada e blocos curtos que compreendem uma segunda quantidade de coeficientes de transformada. A primeira quantidade pode ser maior do que a segunda quantidade. Os blocos da pluralidade de blocos sequenciais podem ser blocos curtos. Além disso, o método pode compreender codificar a pluralidade de blocos sequenciais no fluxo de bits.
[0088] De acordo com outro aspecto, um método para decodificar um fluxo de bits indicativo de um sinal de áudio que compreende um segmento de fala é descrito. O método pode compreender determinar uma pluralidade de blocos sequenciais de coeficientes de transformada reconstruídos com base em dados compreendidos no fluxo de bits. Ademais, o método pode compreender determinar um segmento de fala reconstruído com base na pluralidade de blocos sequenciais de coeficientes de transformada reconstruídos, com o uso de uma unidade de transformada inversa. A unidade de transformada inversa pode ser configurada para processar blocos longos que compreendem uma primeira quantidade de coeficientes de transformada reconstruídos e blocos curtos que compreendem uma segunda quantidade de coeficientes de transformada reconstruídos. A primeira quantidade pode ser maior do que a segunda quantidade. Os blocos da pluralidade de blocos sequenciais podem ser blocos curtos.
[0089] De acordo com um aspecto adicional, um programa de sof tware é descrito. O programa de software pode ser adaptado para a execução em um processador e para realizar as etapas do método esboçadas no presente documento quando executado no processador.
[0090] De acordo com outro aspecto, um meio de armazenamento é descrito. O meio de armazenamento pode compreender um programa de software adaptado para a execução em um processador e para realizar as etapas do método esboçadas no presente documento quando executadas no processador.
[0091] De acordo com um aspecto adicional, um produto de pro grama de computador é descrito. O programa de computador pode compreender instruções executáveis para realizar as etapas do método esboçadas no presente documento quando executado em um computador.
[0092] Deve-se observar que os métodos e sistemas que incluem suas modalidades preferenciais conforme esboçadas no presente pedido de patente podem ser usados de modo independente ou em combinação com outros métodos e sistemas revelados neste documento. Ademais, todos os aspectos dos métodos e sistemas esboçados no presente pedido de patente podem ser combinados de várias formas. Particularmente, os recursos das reivindicações podem ser combinados entre si de uma maneira arbitrária.
BREVE DESCRIÇÃO DAS FIGURAS
[0093] A invenção é explicada abaixo de uma maneira exemplifica- tiva com referência aos desenhos anexos, em que:
[0094] a Figura 1a mostra um diagrama de blocos de um codifica dor de áudio exemplificativo que fornece um fluxo de bits em uma taxa de bits constante;
[0095] a Figura 1b mostra um diagrama de blocos de um codifica dor de áudio exemplificativo que fornece um fluxo de bits em uma taxa de bits variável;
[0096] a Figura 2 ilustra a geração de um envelope exemplificativo com base em uma pluralidade de blocos de coeficientes de transformada;
[0097] a Figura 3a ilustra envelopes exemplificativos de blocos de coeficientes de transformada;
[0098] a Figura 3b ilustra a determinação de um envelope exempli- ficativo interpolado;
[0099] a Figura 4 ilustra conjuntos exemplificativos de quantificado- res;
[00100] a Figura 5a mostra um diagrama de blocos de um decodifi- cador de áudio exemplificativo;
[00101] a Figura 5b mostra um diagrama de blocos de um decodifi- cador de envelope exemplificativo do decodificador de áudio da Figura 5a;
[00102] a Figura 5c mostra um diagrama de blocos de um previsor de sub-banda exemplificativo do decodificador de áudio da Figura 5a; e
[00103] a Figura 5d mostra um diagrama de blocos de um decodifi- cador de espectro exemplificativo do decodificador de áudio da Figura 5a.
DESCRIÇÃO DETALHADA
[00104] Conforme esboçado na seção de antecedentes, é desejável fornecer um codec de áudio à base de transformada que exibe ganhos de codificação relativamente altos para sinais de fala ou de voz. Tal codec de áudio à base de transformada pode ser chamado de codec de fala à base de transformada ou um codec de voz à base de transformada. Um codec de fala à base de transformada pode ser convenientemente combinado com um codec de áudio à base de transformada genérico, tal como AAC ou AAC de HE, devido ao fato de que o mesmo também opera no domínio de transformada. Ademais, a classificação de um segmento (por exemplo, um quadro) de um sinal de áudio de entrada em fala ou não-fala e a comutação subsequente entre o codec de áudio genérico e o codec de fala específico podem ser simplificadas devido ao fato de que ambos os codecs operam no domínio de transformada.
[00105] A Figura 1a mostra um diagrama de blocos de um codificador de fala à base de transformada 100 exemplificativo. O codificador 100 recebe, como uma entrada, um bloco 131 de coeficientes de transformada (também chamado de uma unidade de codificação). O bloco 131 de coeficiente de transformada pode ter sido obtido através de uma unidade de transformada configurada para transformar uma sequência de amostras do sinal de áudio de entrada a partir do domínio de tempo para o domínio de transformada. A unidade de transformada pode ser configurada para realizar um MDCT. A unidade de transformada pode ser uma parte de um codec de áudio genérico, tal como AAC ou AAC de HE. Tal codec de áudio genérico pode usar di- ferentes tamanhos de bloco, por exemplo, um bloco longo e um bloco curto. Os tamanhos de bloco exemplificativos são 1.024 amostras para um bloco longo e 256 amostras para um bloco curto. Presumindo-se uma taxa de amostragem de 44,1 kHz e uma sobreposição de 50%, um bloco longo cobre aproximadamente 20 ms do sinal de áudio de entrada e um bloco curto cobre aproximadamente 5 ms do sinal de áudio de entrada. Os blocos longos são tipicamente usados para segmentos estacionários do sinal de áudio de entrada e os blocos curtos são tipicamente usados para segmentos transitórios do sinal de áudio de entrada.
[00106] Os sinais de fala podem ser considerados estacionários em segmentos temporais de cerca de 20 ms. Em particular, o envelope espectral de um sinal de fala pode ser considerado estacionário em segmentos temporais de cerca de 20 ms. A fim de poder derivar estatísticas significativas no domínio de transformada para tais segmentos de 20 ms, pode ser útil fornecer o codificador de fala à base de transformada 100 com blocos curtos 131 de coeficientes de transformada (que têm um comprimento de, por exemplo, 5 ms). Dessa forma, uma pluralidade de blocos curtos 131 pode ser usada para derivar as estatísticas a respeito de segmentos de tempo de, por exemplo, 20 ms (por exemplo, o segmento de tempo de um bloco longo ou quadro). Ademais, isso tem a vantagem de fornecer uma resolução de tempo adequada para sinais de fala.
[00107] Por esse motivo, a unidade de transformada pode ser configurada para fornecer blocos curtos 131 de coeficientes de transformada, se um segmento atual do sinal de áudio de entrada for classificado como fala. O codificador 100 pode compreender uma unidade de enquadramento 101 configurada para extrair uma pluralidade de blocos 131 de coeficientes de transformada, chamados de conjunto 132 de blocos 131. O conjunto 132 de blocos também pode ser chamado de quadro. A título de exemplo, o conjunto 132 de blocos 131 pode compreender quatro blocos curtos de 256 coeficientes de transformada, cobrindo assim, aproximadamente um segmento de 20 ms do sinal de áudio de entrada.
[00108] O codificador de fala à base de transformada 100 pode ser configurado para operar em uma pluralidade de modos diferentes, por exemplo, em um modo de passo curto e em um modo de passo longo. Ao ser operado no modo de passo curto, o codificador de fala à base de transformada 100 pode ser configurado para subdividir um segmento ou um quadro do sinal de áudio (por exemplo, o sinal de fala) em um conjunto 132 de blocos curtos 131 (conforme esboçado acima). Por outro lado, ao ser operado no modo de passo longo, o codificador de fala à base de transformada 100 pode ser configurado para processar diretamente o segmento ou o quadro do sinal de áudio.
[00109] A título de exemplo, quando operado no modo de passo curto, o codificador 100 pode ser configurado para processar quatro blocos 131 por quadro. Os quadros do codificador 100 podem ser relativamente curtos em tempo físico para determinadas configurações de uma operação síncrona de quadro de vídeo. Isso é particularmente o caso para uma frequência de quadro de vídeo aumentada (por exemplo, 100 Hz vs. 50 Hz), o que leva a uma redução do comprimento temporal do segmento ou do quadro do sinal de fala. Em tais casos, a subdivisão do quadro em uma pluralidade de blocos (curtos) 131 pode ser desvantajosa, devido à resolução reduzida no domínio de transformada. Por esse motivo, um modo de passo longo pode ser usado para exigir o uso de apenas um bloco 131 por quadro. O uso de um único bloco 131 por quadro também pode ser benéfico para codificar os sinais de áudio que compreendem música (até mesmo para quadros relativamente longos). Os benefícios podem ser devido à resolução aumentada no domínio de transformada, ao usar apenas um único bloco 131 por quadro ou ao usar uma quantidade reduzida de blocos 131 por quadro.
[00110] A seguir, a operação do codificador 100 no modo de passo curto é descrito em maiores detalhes. O conjunto 132 de blocos pode ser fornecido a uma unidade de estimativa de envelope 102. A unidade de estimativa de envelope 102 pode ser configurada para determinar um envelope 133 com base no conjunto 132 de blocos. O envelope 133 pode ter por base valores quadráticos (RMS) de coeficientes de transformada correspondentes da pluralidade de blocos 131 compreendida no conjunto 132 de blocos. Um bloco 131, tipicamente, fornece uma pluralidade de coeficientes de transformada (por exemplo, 256 coeficientes de transformada) em uma pluralidade correspondente de índices de frequência 301 (consulte a Figura 3a). A pluralidade de índices de frequência 301 pode ser agrupada em uma pluralidade de bandas de frequência 302. A pluralidade de bandas de frequência 302 pode ser selecionada à base de considerações psicoacústicas. A título de exemplo, os índices de frequência 301 podem ser agrupados em bandas de frequência 302 de acordo com uma escala logarítmica ou uma escala de Bark. O envelope 134 que foi determinado à base de um conjunto atual 132 de blocos pode compreender uma pluralidade de valores de energia para a pluralidade de bandas de frequência 302, respectivamente. Um valor de energia específico para uma banda de frequência específica 302 pode ser determinado com base nos coeficientes de transformada dos blocos 131 do conjunto 132, que correspondem a índices de frequência 301 abrangidos pela banda de frequência específica 302. O valor de energia específico pode ser determinado com base no valor RMS de tais coeficientes de transformada. De tal modo, um envelope 133 para um conjunto atual 132 de blocos (chamado de um envelope atual 133) pode ser indicativo de um envelope médio dos blocos 131 de coeficientes de transformada compre- endidos no conjunto atual 132 de blocos ou pode ser indicativo de um envelope médio de blocos 132 de coeficientes de transformada usados para determinar o envelope 133.
[00111] Deve-se observar que o envelope atual 133 pode ser determinado à base de um ou mais blocos 131 adicionais de coeficientes de transformada adjacentes ao conjunto atual 132 de blocos. Isso é ilustrado na Figura 2, em que o envelope atual 133 (indicado pelo envelope atual quantificado 134) é determinado com base nos blocos 131 do conjunto atual 132 de blocos e com base no bloco 201 do conjunto de blocos que antecede o conjunto atual 132 de blocos. No exemplo ilustrado, o envelope atual 133 é determinado à base de cinco blocos 131. Considerando-se blocos adjacentes ao determinar o envelope atual 133, uma continuidade dos envelopes de conjuntos adjacentes 132 de blocos pode ser garantido.
[00112] Ao determinar o envelope atual 133, os coeficientes de transformada dos diferentes blocos 131 podem ser pesados. Em particular, os blocos mais externos 201, 202 que são levados em consideração para determinar o envelope atual 133 podem ter um peso mais baixo do que os blocos 131 remanescentes. A título de exemplo, os coeficientes de transformada dos blocos mais externos 201, 202 podem ser pesados com 0,5, em que os coeficientes de transformada dos outros blocos 131 podem ser pesados com 1.
[00113] Deve-se observar que de uma maneira similar à consideração dos blocos 201 de um conjunto antecedente 132 de blocos, um ou mais blocos (assim chamados blocos look-ahead) de um conjunto diretamente seguinte 132 de blocos podem ser considerados para determinar o envelope atual 133.
[00114] Os valores de energia do envelope atual 133 podem ser representados em uma escala logarítmica (por exemplo, em uma escala dB). O envelope atual 133 pode ser fornecido a uma unidade de quan- tificação de envelope 103 que é configurado para quantificar os valores de energia do envelope atual 133. A unidade de quantificação de envelope 103 pode fornecer uma resolução de quantificador pré- determinada, por exemplo, uma resolução de 3dB. Os índices de quantificação do envelope 133 podem ser fornecidos como dados de envelope 161 dentro de um fluxo de bits gerado pelo codificador 100. Ademais, o envelope quantificado 134, isso é, o envelope que compreende os valores de energia quantificados do envelope 133, pode ser fornecido a uma unidade de interpolação 104.
[00115] A unidade de interpolação 104 é configurada para determinar um envelope para cada bloco 131 do conjunto atual 132 de blocos com base no envelope atual quantificado 134 e com base no envelope anterior quantificado 135 (que foi determinado para o conjunto 132 de blocos que antecede diretamente o conjunto atual 132 de blocos). A operação da unidade de interpolação 104 é ilustrada nas Figuras 2, 3a e 3b. A Figura 2 mostra uma sequência de blocos 131 de coeficientes de transformada. A sequência de blocos 131 é agrupada em conjuntos sucessores 132 de blocos, em que cada conjunto 132 de blocos é usado para determinar um envelope quantificado, por exemplo, o envelope atual quantificado 134 e o envelope anterior quantificado 135. A Figura 3a mostra exemplos de um envelope anterior quantificado 135 e de um envelope atual quantificado 134. Conforme indicado acima, os envelopes podem ser indicativos de energia espectral 303 (por exemplo, em uma escala dB). Os valores de energia correspondentes 303 do envelope anterior quantificado 135 e do envelope atual quantificado 134 para a mesma banda de frequência 302 podem ser interpolados (por exemplo, com o uso de interpolação linear) para determinar um envelope interpolado 136. Em outras palavras, os valores de energia 303 de uma banda de frequência específica 302 podem ser interpolados para fornecer o valor de energia 303 do envelope interpolado 136 na banda de frequência específica 302.
[00116] Deve-se observar que o conjunto de blocos para o qual os envelopes interpolados 136 são determinados e aplicados podem ser diferentes do conjunto atual 132 de blocos, à base do qual o envelope atual quantificado 134 é determinado. Isso é ilustrado na Figura 2 que mostra um conjunto deslocado 332 de blocos, que é deslocado em comparação com o conjunto atual 132 de blocos e que compreende os blocos 3 e 4 do conjunto anterior 132 de blocos (indicados através de numerais de referência 203 e 201, respectivamente) e os blocos 1 e 2 do conjunto atual 132 de blocos (indicados através dos numerais de referência 204 e 205, respectivamente). Na realidade, os envelopes interpolados 136 determinados com base no envelope atual quantifi-cado 134 e com base no envelope anterior quantificado 135 podem ter uma relevância aumentada para os blocos do conjunto deslocado 332 de blocos, em comparação com a relevância para os blocos do conjunto atual 132 de blocos.
[00117] Por esse motivo, os envelopes interpolados 136 mostrados na Figura 3b podem ser usados para aplanar os blocos 131 do conjunto deslocado 332 de blocos. Isso é mostrado através da Figura 3b em combinação com a Figura 2. Pode-se observar que o envelope interpolado 341 da Figura 3b pode ser aplicado ao bloco 203 da Figura 2, que o envelope interpolado 342 da Figura 3b pode ser aplicado ao bloco 201 da Figura 2, que o envelope interpolado 343 da Figura 3b pode ser aplicado ao bloco 204 da Figura 2 e que o envelope interpolado 344 da Figura 3b (que, no exemplo ilustrado, corresponde ao envelope atual quantificado 136) pode ser aplicado ao bloco 205 da Figura 2. De tal modo, o conjunto 132 de blocos para determinar o envelope atual quantificado 134 pode ser diferente do conjunto deslocado 332 de blocos para o qual os envelopes interpolados 136 são determinados e ao qual os envelopes interpolados 136 são aplicados (para propósito de planificação). Em particular, o envelope atual quantificado 134 pode ser determinado com o uso de um determinado look-ahead em relação aos blocos 203, 201, 204, 205 do conjunto deslocado 332 de blocos, que devem ser aplanados com o uso do envelope atual quantificado 134. Isso é benéfico a partir de um ponto de vista de continuidade.
[00118] A interpolação de valores de energia 303 para determinar envelopes interpolados 136 é ilustrada na Figura 3b. Pode-se observar que, através da interpolação entre um valor de energia do envelope anterior quantificado 135 até o valor de energia correspondente, os valores de energia do envelope atual quantificado 134 dos envelopes interpolados 136 podem ser determinados para os blocos 131 do conjunto deslocado 332 de blocos. Em particular, para cada bloco 131 do conjunto deslocado 332, um envelope interpolado 136 pode ser determinado, fornecendo assim, uma pluralidade de envelopes interpolados 136 para a pluralidade de blocos 203, 201, 204, 205 do conjunto deslocado 332 de blocos. O envelope interpolado 136 de um bloco 131 de coeficiente de transformada (por exemplo, de qualquer um dos blocos 203, 201, 204, 205 do conjunto deslocado 332 de blocos) pode ser usado para codificar o bloco 131 de coeficientes de transformada. Deve-se observar que os índices de quantificação 161 do envelope atual 133 são fornecidos a um decodificador correspondente no fluxo de bits. Consequentemente, o decodificador correspondente pode ser configurado para determinar a pluralidade de envelopes interpolados 136 de uma maneira análoga à unidade de interpolação 104 do codificador 100.
[00119] A unidade de quadro 101, a unidade de estimativa de envelope 102, a unidade de quantificação de envelope 103e a unidade de interpolação 104 operam em um conjunto de blocos (isso é, o conjunto atual 132 de blocos e/ou o conjunto deslocado 332 de blocos). Por outro lado, a codificação real do coeficiente de transformada pode ser realizada à base de bloco para bloco. A seguir, é feita referência à codificação de um bloco atual 131 de coeficientes de transformada, que pode ser qualquer um dentre a pluralidade de blocos 131 do conjunto deslocado 332 de blocos (ou, possivelmente, o conjunto atual 132 de blocos em outras implantações do codificador de fala à base de transformada 100).
[00120] Ademais, deve-se observar que o codificador 100 pode ser operado no, assim chamado, modo de passo longo. Desse modo, um quadro de segmento do sinal de áudio não é subdividido e é processado como um único bloco. Por esse motivo, apenas um único bloco 131 de coeficientes de transformada é determinado por quadro. Durante a operação no modo de passo longo, a unidade de quadro 101 pode ser configurada para extrair o único bloco atual 131 de coeficientes de transformada para o segmento ou o quadro do sinal de áudio. A unidade de estimativa de envelope 102 pode ser configurada para determinar o envelope atual 133 para o bloco atual 131 e a unidade de quantificação de envelope 103 pode ser configurada para quantificar o único envelope atual 133 para determinar o envelope atual quantificado 134 (e para determinar os dados de envelope 161 para o bloco atual 131). Quando no modo de passo longo, a interpolação de envelope é tipicamente obsoleta. Por esse motivo, o envelope interpolado 136 para o bloco atual 131 tipicamente corresponde ao envelope atual quantificado 134 (quando o codificador 100 é operado no modo de passo longo).
[00121] O envelope atual interpolado 136 para o bloco atual 131 pode fornecer uma aproximação do envelope espectral dos coeficientes de transformada do bloco atual 131. O codificador 100 pode compreender uma unidade pré-planificação 105 e uma unidade de determinação de ganho de envelope 106 que são configuradas para determinar um envelope ajustado 139 para o bloco atual 131, com base no envelope atual interpolado 136 e com base no bloco atual 131. Em particular, um ganho de envelope para o bloco atual 131 pode ser determinado de modo que uma variância dos coeficientes de transformada aplanados do bloco atual 131 seja ajustada. . -:, = - • K podem ser os coeficientes de transformada do bloco atual 131 (com, por exemplo, K = —•) e -:-<:, = : K podem ser os valores de energia espectrais médios 303 do envelope atual interpolado 136 (em que os valores de energia - de uma mesma banda de frequência 302 são iguais). O ganho de envelope - pode ser determinado, de modo que a x(fc) = variância dos coeficientes de transformada aplanados ;
Figure img0001
seja ajustada. Em particular, o ganho de envelope - pode ser determinado de modo que a variância seja um.
[00122] Deve-se observar que o ganho de envelope - pode ser determinado para uma subfaixa da faixa de frequência completa do bloco atual 131 de coeficientes de transformada. Em outras palavras, o ganho de envelope - pode ser determinado apenas à base um subconjunto dos índices de frequência 301 e/ou apenas à base de um subconjunto das bandas de frequência 302. A título de exemplo, o ganho de envelope - pode ser determinado à base dos índices de frequência 301 maiores do que um índice de frequência de início 304 (em que o índice de frequência de início é maior do que 0 ou 1). Como uma con-sequência, o envelope ajustado 139 para o bloco atual 131 pode ser determinado aplicando-se o ganho de envelope - apenas aos valores de energia espectrais médios 303 do envelope atual interpolado 136 que são associados a índices de frequência 301 situados acima do índice de frequência de início 304. Por esse motivo, o envelope ajustado 139 para o bloco atual 131 pode corresponder ao envelope atual interpolado 136, para índices de frequência 301 no índice de frequência de início e baixo do mesmo, e pode corresponder ao envelope atu- al interpolado 136 desviado pelo ganho de envelope S para índices de frequência 301 acima do índice de frequência de início. Isso é ilustrado na Figura 3a pelo envelope ajustado 339 (mostrado em linhas pontilhadas).
[00123] A aplicação do ganho de envelope ;; 137 (que também chamado de um ganho de correção de nível) ao envelope atual interpolado 136 corresponde a um ajuste ou um desvio do envelope atual interpolado 136, rendendo assim, um envelope ajustado 139, conforme ilustrado através da Figura 3a. O ganho de envelope ;; 137 pode ser codificado conforme dados de ganho 162 no fluxo de bits.
[00124] O codificador 100 pode compreender adicionalmente uma unidade de refinamento de envelope 107 que é configurada para determinar o envelope ajustado 139 com base no ganho de envelope - 137 e com base no envelope atual interpolado 136. O envelope ajustado 139 pode ser usado para o processamento de sinal do bloco 131 de coeficiente de transformada. O ganho de envelope - 137 pode ser quantificado para uma resolução superior (por exemplo, nas etapas de 1dB) em comparação com o envelope atual interpolado 136 (que pode ser quantificado nas etapas de 3dB). De tal modo, o envelope ajustado 139 pode ser quantificado para a resolução superior do ganho de envelope - 137 (por exemplo, nas etapas 1dB).
[00125] Ademais, a unidade de refinamento de envelope 107 pode ser configurada para determinar um envelope de alocação 138. O envelope de alocação 138 pode corresponder a uma versão quantificada do envelope ajustado 139 (por exemplo, quantificado para níveis de quantificação de 3dB). O envelope de alocação 138 pode ser usado para propósitos de alocação de bit. Em particular, o envelope de alocação 138 pode ser usado para determinar - para um coeficiente de transformada específico do bloco atual 131 - um quantificador específico a partir de um conjunto de quantificadores predeterminados, em que o quantificador específico deve ser usado para quantificar o coeficiente de transformada específico.
[00126] O codificador 100 compreende uma unidade de planificação 108 configurada para aplanar o bloco atual 131 com o uso do envelope ajustado 139, rendendo assim, o bloco 140 de coeficientes de transformada aplanados -: ; O bloco 140 de coeficientes de transformada aplanados - : ■ pode ser codificado com o uso de um ciclo de previsão no domínio de transformada. De tal modo, o bloco 140 pode ser codificado com o uso de um previsor de sub-banda 117. O ciclo de previsão compreende uma unidade de diferença 115 configurada para determinar um bloco 141 de coeficientes de erro de previsão com base no bloco 140 de coeficientes de transformada aplanados - : < ; e com base em um bloco 150 de coeficientes de transformada estimados -: ■, por exemplo, Δ:- = -: _ : <:. Deve-se observar que devido ao fato de que o bloco 140 compreende coeficientes de transformada aplanados, isso é coeficientes de transformada que foram normalizados ou aplanados com o uso dos valores de energia 303 do envelope ajustado 139, em que o bloco 150 de coeficientes de transformada estimados também compreende estimativas de coeficientes de transformada aplanados. Em outras palavras, a unidade de diferença 115 opera no, assim chamado, domínio. Por consequência, o bloco 141 de coeficientes de erro de previsão -L<: é representado no domínio aplanado.
[00127] O bloco 141 de coeficientes de erro de previsão pode exibir uma variância que é diferente de um. O codificador 100 pode compreender uma unidade de redimensionamento 111 configurada para redimensionar os coeficientes de erro de previsão para ren der um bloco 142 de coeficientes de erro redimensionados. A unidade de redimensionamento 111 pode usar uma ou mais normas heurísticas predeterminadas para realizar o redimensionamento. Como um resul- tado, o bloco 142 de coeficientes de erro redimensionados exibe uma variância que é (em média) mais próxima de um (em comparação com o bloco 141 de coeficientes de erro de previsão). Isso pode ser benéfico à quantificação e codificação subsequentes.
[00128] O codificador 100 compreende uma unidade de quantificação de coeficiente 112 configurada para quantificar o bloco 141 de coeficientes de erro de previsão ou o bloco 142 de coeficientes de erro redimensionados. A unidade de quantificação de coeficiente 112 pode compreender ou pode usar de um conjunto de quantificadores predeterminados. O conjunto de quantificadores predeterminados pode fornecer quantificadores com diferentes graus de precisão ou uma resolução diferente. Isso é ilustrado na Figura 4 em que diferentes quantifi- cadores 321, 322, 323 são ilustrados. Os diferentes quantificadores podem fornecer diferentes níveis de precisão (indicados pelos diferentes valores de dB). Um quantificador específico da pluralidade de quantificadores 321, 322, 323 pode corresponder a um valor específico do envelope de alocação 138. De tal modo, um valor de energia do envelope de alocação 138 pode apontar a um quantificador correspondente da pluralidade de quantificadores. De tal modo, a determinação de um envelope de alocação 138 pode simplificar o processo de seleção de um quantificador para ser usado para um coeficiente de erro específico. Em outras palavras, o envelope de alocação 138 pode simplificar o processo de alocação de bit.
[00129] O conjunto de quantificadores pode compreender um ou mais quantificadores 322 que usa ditherização para randomizar o erro de quantificação. Isso é ilustrado na Figura 4 que mostra um primeiro conjunto 326 de quantificadores predeterminados que compreende um subconjunto 324 de quantificadores com dither e quantificadores predeterminados de um segundo conjunto 327 que compreende um subconjunto 325 de quantificadores com dither. De tal modo, a unidade de quantificação de coeficiente 112 pode usar diferentes conjuntos 326, 327 de quantificadores predeterminados, em que o conjunto de quanti- ficadores predeterminados, que é usado pela unidade de quantificação de coeficiente 112 pode depender de um parâmetro de controle 146 fornecido pelo previsor 117. Em particular, a unidade de quantificação de coeficiente 112 pode ser configurada para selecionar um conjunto 326, 327 de quantificadores predeterminados para quantificar o bloco 142 de coeficiente de erro redimensionado, com base no parâmetro de controle 146, em que o parâmetro de controle 146 pode depender de um ou mais parâmetros de previsores fornecidos pelo previsor 117. O um ou mais parâmetros de previsores podem ser indicativos da qualidade do bloco 150 de coeficientes de transformada estimados fornecidos pelo previsor 117.
[00130] Os coeficientes de erro quantificados podem ser codificados por entropia, com o uso, por exemplo, de um código de Huffman, rendendo assim, dados de coeficientes 163 a serem incluídos no fluxo de bits gerado pelo codificador 100.
[00131] O codificador 100 pode ser configurado para realizar um processo de alocação de bit. Para tal propósito, o codificador 100 pode compreender unidades de alocação de bit 109, 110. A unidade de alocação de bit 109 pode ser configurada para determinar a quantidade total de bits 143 que estão disponíveis para a codificação do bloco atual 142 de coeficientes de erro redimensionados. A quantidade total de bits 143 pode ser determinada com base no envelope de alocação 138. A unidade de alocação de bit 110 pode ser configurada para fornecer uma alocação relativa de bits para os diferentes coeficientes de erro redimensionados, dependendo do valor de energia correspondente no envelope de alocação 138.
[00132] O processo de alocação de bit usa um procedimento de alocação iterativa. No curso do procedimento de alocação, o envelope de alocação 138 pode ser desviado com o uso de um parâmetro de desvio, selecionando assim, quantificadores com resolução aumentada / diminuída. De tal modo, o parâmetro de desvio pode ser usado para refinar ou para tornar mais bruta uma quantificação geral. O parâmetro de desvio pode ser determinado de modo que os dados de coeficientes 163, que são obtidos com o uso dos quantificadores fornecidos pelo parâmetro de desvio e o envelope de alocação 138, compreende diversos bits que correspondem a (ou não excedem) a quantidade total de bits 143 atribuída ao bloco atual 131. O parâmetro de desvio que foi usado pelo codificador 100 para codificar o bloco atual 131 é incluído conforme dados de coeficientes 163 em um fluxo de bits. Como uma consequência, o decodificador correspondente é habilitado para determinar os quantificadores que foram usados pela unidade de quantificação de coeficiente 112 para quantizar o bloco 142 de coeficientes de erro redimensionados.
[00133] Como um resultado de quantificação dos coeficientes de erro redimensionados, um bloco 145 de coeficientes de erro quantificados é obtido. O bloco 145 de coeficientes de erro quantificados corresponde ao bloco de coeficientes de erro que estão disponíveis no decodificador correspondente.
[00134] Consequentemente, o bloco 145 de coeficientes de erro quantificados pode ser usado para determinar um bloco 150 de coeficientes de transformada estimados. O codificador 100 pode compreender uma unidade de redimensionamento inverso 113 configurada para realiza o inverso das operações de redimensionamento realizado pela unidade de redimensionamento 113, rendendo assim um bloco 147 de coeficientes de erro quantificados dimensionados. Uma unidade de adição 116 pode ser usada para determinar um bloco 148 de coeficientes aplanados reconstruídos, adicionando-se o bloco 150 de coeficientes de transformada estimados para o bloco 147 de coeficien- tes de erro quantificados dimensionados. Ademais, uma unidade de planificação inversa 114 pode ser usada para aplicar o envelope ajustado 139 ao bloco 148 de coeficientes aplanados reconstruídos, rendendo assim, um bloco 149 de coeficientes reconstruídos. O bloco 149 de coeficientes reconstruídos corresponde à versão do bloco 131 de coeficientes de transformada que está disponível no decodificador correspondente. Por consequência, o bloco 149 dos coeficientes reconstruídos pode ser usado no previsor 117 para determinar o bloco 150 de coeficientes estimados.
[00135] O bloco 149 de coeficientes reconstruídos é representado no domínio não aplanado, isso é, o bloco 149 de coeficientes reconstruídos também é representativo do envelope espectral do bloco atual 131. Conforme esboçado abaixo, isso pode ser benéfico para o desempenho do previsor 117.
[00136] O previsor 117 pode ser configurado para estimar o bloco 150 de coeficientes de transformada estimados com base em um ou mais blocos anteriores 149 de coeficientes reconstruídos. Em particular, o previsor 117 pode ser configurado para determinar um ou mais parâmetros de previsores, de modo que um critério de erro de previsão predeterminado é reduzido (por exemplo, minimizado). A título de exemplo, o um ou mais parâmetros de previsores podem ser determinados de modo que uma energia ou uma energia perceptivelmente pesada do bloco 141 de coeficientes de erro de previsão seja reduzida (por exemplo, minimizada). O um ou mais parâmetros de previsores podem ser incluídos como dados de previsores 164 no fluxo de bits gerado através do codificador 100.
[00137] Os dados de previsores 164 podem ser indicativos do um ou mais parâmetros de previsores. Conforme será esboçado no presente documento, o previsor 117 pode ser usado apenas para um subconjunto de quadros ou blocos 131 de um sinal de áudio. Em parti cular, o previsor 117 não pode ser usado para o primeiro bloco 131 de um I-quadro (quadro independente), que tipicamente é codificado de uma maneira independente de um bloco anterior. Além disso, os dados de previsores 164 podem compreende uma ou mais sinalizadores que são indicativos da presença de um previsor 117 para um bloco específico 131. Para os blocos, onde a contribuição do previsor é virtualmente insignificante (por exemplo, quando o ganho de previsor é quantificado para zero), pode ser benéfico usar o sinalizador de presença do previsor para sinalizar tal situação que tipicamente exige uma quantidade significativamente reduzida de bits em comparação com a transmissão do ganho zero). Em outras palavras, os dados de previsores 164 para um bloco 131 pode compreender um ou mais si-nalizadores de presença de previsor que indicam se um ou mais parâmetros de previsores foram determinados (e são compreendidos nos dados de previsores 164). O uso de um ou mais sinalizadores de presença de previsor pode economizar bits, se o previsor 117 não for usado para um bloco específico 131. Por esse motivo, dependendo da quantidade de blocos 131 que são codificados sem o uso de um previsor 117, o uso de um ou mais sinalizadores de presença de previsor pode ser mais eficaz quanto à taxa de bits (em média) do que a transmissão de parâmetros de previsores-padrão (por exemplo, com valor zero).
[00138] A presença de um previsor 117 pode ser explicitamente transmitida à base de bloco. Isso permite a economia de bits quando a previsão não é usada. A título de exemplo, para I-quadros, apenas três sinalizadores de presença de previsor podem ser usados, devido ao fato de que o primeiro bloco do I-quadro não pode usar a previsão. Em outras palavras, sabe-se que um bloco específico 131 é o primeiro bloco de um I-quadro, então, nenhum sinalizador de presença do previsor pode precisar ser transmitido para esse bloco específico 131 (nesse momento, o decodificador correspondente já sabe que o bloco específico 131 não usa um previsor 117).
[00139] O previsor 117 pode usar um modelo de sinal, conforme descrito no Pedido de Patente no U.S. 61750052 e os pedidos de patente que reivindicam sua prioridade, cujo conteúdo se encontra incorporado, a título de referência. O um ou mais parâmetros de previsores pode corresponder a um ou mais parâmetros de modelo do modelo de sinal.
[00140] A Figura 1b mostra um diagrama de blocos de um codificador exemplificativo adicional de fala à base de transformada 170. O codificador de fala à base de transformada 170 da Figura 1b compreende muitos dos componentes do codificador 100 da Figura 1a. Entretanto, o codificador de fala à base de transformada 170 da Figura 1b é configurado para gerar um fluxo de bits que tem uma taxa de bits variável. Para tal propósito, o codificador 170 compreende uma unidade de estado de Taxa de Bits Média (ABR) 172 configurada para rastrear a taxa de bits que foi usada pelo fluxo de bits para blocos anteriores 131.
[00141] A unidade de alocação de bit 171 usa tais informações para determinar a quantidade total de bits 143 que está disponível para a codificação do bloco atual 131 dos coeficientes de transformada.
[00142] Em geral, os codificadores de fala à base de transformada 100, 170 são configurados para gerar um fluxo de bits que é indicativo de ou que compreende: • os dados de envelope 161 indicativos de um envelope atual quantificado 134. O envelope atual quantificado 134 é usado para descrever o envelope dos blocos de um conjunto atual 132 ou um conjunto deslocado 332 de blocos de coeficientes de transformada; • os dados de ganho 162 indicativos de um ganho de correa ção de nível para ajustar o envelope interpolado 136 de um bloco atual 131 de coeficientes de transformada. Tipicamente, um ganho dia ferente é fornecido para cada bloco 131 do conjunto atual 132 ou do conjunto deslocado 332 de blocos; • os dados de coeficientes 163 indicativos do bloco 141 de coeficientes de erro de previsão para o bloco atual 131. Em particular, os dados de coeficientes 163 são indicativos do bloco 145 de coeficientes de erro quantificados. Ademais, os dados de coeficientes 163 podem ser indicativos de um parâmetro de desvio que pode ser usado para determinar os quantificadores para realizar uma quantificação inversa no decodificador; • os dados de previsores 164 indicativos de um ou mais co-eficientes de previsor a serem usados para determinar um bloco 150 de coeficientes estimados a partir de blocos anteriores 149 de coeficientes reconstruídos.
[00143] A seguir, um decodificador de fala à base de transformada correspondente 500 é descrito no contexto das Figuras 5a a 5d. A Figura 5a mostra um diagrama de blocos de um decodificador de fala à base de transformada 500 exemplificativo. O diagrama de blocos mostra um banco de filtro de síntese 504 (também chamado de unidade de transformada inversa) que é usado para converter um bloco 149 de coeficientes reconstruídos a partir do domínio de transformada no domínio de tempo, rendendo assim, amostras do sinal de áudio decodificado. O banco de filtro de síntese 504 pode usar um MDCT inverso com um passo predeterminado (por exemplo, um passo de aproximadamente 5 ms ou 256 amostras).
[00144] O enlace principal do decodificador 500 opera em unidades de tal passo. Cada etapa produz um vetor de domínio de transformada (também chamado de um bloco) que tem um comprimento ou dimensão que corresponde a uma configuração de largura de banda predeterminada do sistema. Mediante um zero-preenchimento até o tama- nho de transformada do banco de filtro de síntese 504, o vetor de domínio de transformada será usado para sintetizar uma atualização de sinal de domínio de tempo de um comprimento predeterminado (por exemplo, 5 ms) ao processo de sobreposição/adição do banco de filtro de síntese 504.
[00145] Conforme indicado acima, os codecs de áudio à base de transformada genéricos tipicamente empregam quadros com sequências de blocos curtos na faixa de 5 ms para manuseio transitório. De tal modo, os codecs de áudio à base de transformada genéricos fornecem as transformadas necessárias e ferramentas de comutação de janela para uma coexistência contínua de blocos curtos e longos. Uma frontend espectral de voz definida através da omissão do banco de filtro de síntese 504 da Figura 5a pode, portanto, ser convenientemente integrado ao codec de áudio à base de transformada para fins gerais, sem a necessidade de introduzir ferramentas de comutação adi-cionais. Em outras palavras, o decodificador de fala à base de transformada 500 da Figura 5a pode ser convenientemente combinado com um decodificador de áudio à base de transformada genérico. Em particular, o decodificador de fala à base de transformada 500 da Figura 5a pode usar o banco de filtro de síntese 504 fornecido pelo decodificador de áudio à base de transformada genérico (por exemplo, o decodifica- dor AAC ou HE-AAC).
[00146] A partir do fluxo de bits de entrada (em particular, a partir dos dados de envelope 161 e a partir dos dados de ganho 162 compreendidos no fluxo de bits), um envelope de sinal pode ser determinado através de um envelope decodificador 503. Em particular, o envelope decodificador 503 pode ser configurado para determinar o envelope ajustado 139 com base nos dados de envelope 161 e nos dados de ganho 162). De tal modo, o envelope decodificador 503 pode realizar tarefas similares à unidade de interpolação 104 e à unidade de refinamento de envelope 107 do codificador 100, 170. Conforme esboçado acima, o envelope ajustado 109 representa um modelo da variância de sinal em um conjunto de bandas de frequência predefinidas 302.
[00147] Ademais, o decodificador 500 compreende uma unidade de planificação inversa 114 que está configurada para aplicar o envelope ajustado 139 a um vetor de domínio aplanado, cujas entradas podem ser nominalmente de variância um. O vetor de domínio aplanado corresponde ao bloco 148 de coeficientes aplanados reconstruídos descritos no contexto do codificador 100, 170. Na saída da unidade de planificação inversa 114, o bloco 149 de coeficientes reconstruídos é obtido. O bloco 149 de coeficientes reconstruídos é fornecido ao banco de filtro de síntese 504 (para gerar o sinal de áudio decodificado) e ao previsor de sub-banda 517.
[00148] O previsor de sub-banda 517 opera de uma maneira similar ao previsor 117 do codificador 100, 170. Em particular, o previsor de sub-banda 517 está configurado para determinar um bloco 150 de coeficientes de transformada estimados (no domínio aplanado) com base em um ou mais blocos anteriores 149 de coeficientes reconstruídos (com o uso do um ou mais parâmetros de previsores sinalizados no fluxo de bits). Em outras palavras, o previsor de sub-banda 517 é configurado para emitir um vetor de domínio aplanado previsto a partir de um armazenador temporário de vetores de saída decodificados anteriormente e envelopes de sinal, com base nos parâmetros de previso- res, tais como atraso de previsor e um ganho de previsor. O decodifi- cador 500 compreende um previsor decodificador 501 configurado para decodificar os dados de previsores 164 para determinar o um ou mais parâmetros de previsores.
[00149] O decodificador 500 compreende adicionalmente um deco- dificador de espectro 502 que é configurado para fornecer uma corre- ção aditiva ao vetor de domínio aplanado previsto, tipicamente com base na maior parte do fluxo de bits (isto é, com base nos dados de coeficientes 163). O processo de decodificação de espectro é controlado principalmente por um vetor de alocação, que é derivado a partir do envelope e um parâmetro de controle de alocação transmitido (também chamado de parâmetro de desvio). Conforme ilustrado na Figura 5a, pode ser uma dependência direta do decodificador de espectro 502 nos parâmetros de previsores 520. De tal modo, o decodifi- cador de espectro 502 pode ser configurado para determinar o bloco 147 de coeficientes de erro quantificados dimensionados com base nos dados de coeficientes recebidos 163. Conforme esboçado no contexto do codificador 100, 170, os quantificadores 321, 322, 323 usados para quantizar o bloco 142 de coeficientes de erro redimensionados tipicamente dependem do envelope de alocação 138 (que pode ser derivado a partir do envelope ajustado 139) e do parâmetro de desvio. Ademais, os quantificadores 321, 322, 323 podem depender de um parâmetro de controle 146 fornecido através do previsor 117. O parâmetro de controle 146 pode ser derivado através do decodificador 500 com o uso dos parâmetros de previsores 520 (de uma maneira análoga ao codificador 100, 170).
[00150] Conforme indicado acima, o fluxo de bits recebido compreende dados de envelope 161 e dados de ganho 162 que podem ser usados para determinar o envelope ajustado 139. Em particular, a unidade 531 do envelope decodificador 503 pode ser configurado para determinar o envelope atual quantificado 134 a partir dos dados de envelope 161. A título de exemplo, o envelope atual quantificado 134 pode ter uma resolução de 3 dB em bandas de frequência predefinidas 302 (conforme indicado na Figura 3a). O envelope atual quantificado 134 pode ser atualizado para todo conjunto 132, 332 de blocos (por exemplo, a cada quatro unidades de codificação, isso é, blocos, ou a cada 20 ms), em particular, para todo conjunto deslocado 332 de blocos. As bandas de frequência 302 do envelope atual quantificado 134 podem compreender uma quantidade crescente de índices de frequência 301 como uma função de frequência, a fim de se adaptar às propriedades da audição humana.
[00151] O envelope atual quantificado 134 pode ser interpolado linearmente a partir de um envelope anterior quantificado 135 em envelopes interpolados 136 para cada bloco 131 do conjunto deslocado 332 de blocos (ou, possivelmente, do conjunto atual 132 de blocos). Os envelopes interpolados 136 podem ser determinados no domínio quantificado 3 dB. Isso significa que os valores de energia interpolados 303 podem ser arredondados para o nível de 3dB mais próximo. Um envelope interpolado exemplificativo 136 é ilustrado através do gráfico pontilhado da Figura 3a. Para cada envelope atual quantificado 134, quatro ganhos de correção de nível - 137 (também chamados de ganhos de envelope) são fornecidos como dados de ganho 162. A unidade de decodificação de ganho 532 pode ser configurada para determinar os ganhos de correção de nível - 137 a partir dos dados de ganho 162. Os ganhos de correção de nível podem ser quantificados nas etapas de 1 dB. Cada ganho de correção de nível é aplicado ao envelope interpolado correspondente 136 a fim de para fornecer os envelopes ajustados 139 para os blocos diferentes 131. Devido à resolução aumentada dos ganhos de correção de nível 137, o envelope ajustado 139 pode ter uma resolução aumentada (por exemplo, uma resolução de 1dB).
[00152] A Figura 3b mostra uma interpolação linear ou geométrica entre o envelope anterior quantificado 135 e o envelope atual quantificado 134. Os envelopes 135, 134 podem ser separados em uma parte de nível média e uma parte de formato do espectro logarítmico. Tais partes podem ser interpoladas com estratégias independentes, tais como uma estratégia linear, uma geométrica ou uma harmônica (resis- tores paralelos). De tal modo, diferentes esquemas de interpolação podem ser usados para determinar os envelopes interpolados 136. O esquema de interpolação usado pelo decodificador 500 tipicamente corresponde ao esquema de interpolação usado para o codificador 100, 170.
[00153] A unidade de refinamento de envelope 107 do envelope de- codificador 503 pode ser configurado para determinar um envelope de alocação 138 a partir do envelope ajustado 139 quantificando-se o envelope ajustado 139 (por exemplo, em etapas de 3 dB). O envelope de alocação 138 pode ser usado em conjunto com o parâmetro de controle de alocação ou parâmetro de desvio (compreendido com os dados de coeficientes 163) para criar um vetor de alocação nominal inteiro usado para controlar a decodificação espectral, isto é, a decodificação dos dados de coeficientes 163. Em particular, o vetor de alocação nominal inteiro pode ser usado para determinar um quantificador para quantificação inversa dos índices de quantificação compreendidos no interior dos dados de coeficientes 163. O envelope de alocação 138 e o vetor de alocação nominal inteiro podem ser determinados de uma maneira análoga no codificador 100, 170 e no decodificador 500.
[00154] A fim de permitir que um decodificador 500 seja sincronizado com um fluxo de bits recebido, diferentes tipos de quadros podem ser transmitidos. Um quadro pode corresponder a um conjunto 132, 332 de blocos, em particular a um bloco deslocado 332 de blocos. Em particular, os assim chamados P-quadros podem ser transmitidos, que são codificados de uma maneira relativa em relação a um quadro anterior. Na descrição acima, foi presumido que o decodificador 500 está ciente do envelope anterior quantificado 135. O envelope anterior quantificado 135 pode ser fornecido dentro de um quadro anterior, de modo que o conjunto atual 132 ou o conjunto deslocado corresponden- te 332 pode corresponder a um P-quadro. Entretanto, em um cenário de inicialização, o decodificador 500 é tipicamente inconsciente do envelope anterior quantificado 135. Para tal propósito, um I-quadro pode ser transmitido (por exemplo, mediante a inicialização ou regularmente). O I-quadro pode compreender dois envelopes, em que um dos quais é usado como o envelope anterior quantificado 135 e o outro é usado como o envelope atual quantificado 134. Os I-quadros podem ser usados para caso de inicialização do frontend espectral de voz (isso é, do decodificador de fala à base de transformada 500), por exemplo, quando seguindo um quadro que emprega um modo de codificação de áudio diferente e/ou como uma ferramenta para possibilitar de modo explícito um ponto de emenda do fluxo de bits de áudio.
[00155] A operação do previsor de sub-banda 517 é ilustrada na Figura 5d. No exemplo ilustrado, os parâmetros de previsores 520 são um parâmetro de atraso e um parâmetro de ganho de previsor .. Os parâmetros de previsores 520 podem ser determinados a partir dos dados de previsores 164 com o uso de uma tabela predeterminada de valores possíveis para o parâmetro de atraso e o parâmetro de ganho de previsor. Isso possibilita a transmissão eficaz de taxa de bits dos parâmetros de previsores 520.
[00156] O um ou mais vetores de coeficiente de transformada anteriormente decodificados (isso é, o um ou mais blocos anteriores 149 dos coeficientes reconstruídos) podem ser armazenados em um arma- zenador temporário de sinal de sub-banda (ou MDCT) 541. O armaze- nador temporário 541 pode ser atualizado de acordo com o passo (por exemplo, a cada 5 ms). O extrator de previsor 543 pode ser configurado para operar no armazenador temporário 541, dependendo de um parâmetro de atraso normalizado r. O parâmetro de atraso normalizado 7 pode ser determinado normalizando-se o parâmetro de atraso 520 para unidades de passo (por exemplo, para unidades de passo de MDCT). Se o parâmetro de atraso j for um número inteiro, o extrator 543 pode fornecer uma ou mais unidades de tempo de vetores de coeficiente de transformada anteriormente decodificados 7 no armazena- dor temporário 541. Em outras palavras, o parâmetro de atraso 7 pode ser indicativo de quais dentro o um ou mais blocos anteriores 149 de coeficientes reconstruídos devem ser usados para determinar o bloco 150 de coeficientes de transformada estimados. Uma discussão detalhada a respeito da possível implantação do extrator 543 é fornecida no Pedido de Patente no U.S. 61750052 e dos pedidos de patente que reivindicam a prioridade do mesmo, cujo conteúdo está incorporado, a título de referência.
[00157] O extrator 543 pode operar sobre vetores (ou blocos) que portam envelopes de sinal completos. Por outro lado, o bloco 150 de coeficientes de transformada estimados (a serem fornecidos pelo previsor de sub-banda 517) é representado no domínio aplanado. Consequentemente, a saída do extrator 543 pode ser conformada em um vetor de domínio aplanado. Isso pode ser alcançado com o uso de um conformador 544 que usa os envelopes ajustados 139 do um ou mais blocos anteriores 149 dos coeficientes reconstruídos. Os envelopes ajustados 139 do um ou mais blocos anteriores 149 de coeficientes reconstruídos podem ser armazenados em um armazenador temporário de envelope 542. A unidade conformadora 544 pode ser configurada para buscar um envelope de sinal atrasado para ser usado no To aplanamento das unidades de tempo no armazenamento temporário To T de envelope 542, em que é o número inteiro mais próximo a . Então, o vetor de domínio aplanado pode ser dimensionado pelo parâme- g tro de ganho para render o bloco 150 de coeficientes de transformada estimados (no domínio aplanado).
[00158] A unidade conformadora 544 pode ser configurada para de- terminar um vetor de domínio aplanado de modo que os vetores de domínio aplanado na saída da unidade conformadora 544 exiba variância de unidade em cada banda de frequência. A unidade conforma- dora 544 pode depender completamente dos dados no armazenamento temporário de envelope 542 para alcançar seu alvo. A título de exemplo, a unidade conformadora 544 pode ser configurada para selecionar a envelope de sinal atrasado de modo que os vetores de domínio aplanados na saída da unidade conformadora 544 exibam variância de unidade em cada banda de frequência. Alternativa ou adicionalmente, a unidade conformadora 544 pode ser configurada para medir a variância dos vetores de domínio aplanado na saída da unidade conformadora 544 e para ajustar a variância dos vetores em direção à propriedade de variância de unidade. Um tipo possível de normalização pode usar um único ganho de banda larga (por partição) que normaliza os vetores de domínio aplanado em vetor de variância de unidade. Os ganhos podem ser transmitidos a partir de um codificador 100 para um decodificador correspondente 500 (por exemplo, de forma quantificada e codificada) no fluxo de bits.
[00159] Como uma alternativa, o processo de aplanamento atrasado realizado pelo conformador 544 pode ser omitido com o uso de um previsor de sub-banda 517 que opera no domínio aplanado, por exemplo, um previsor de sub-banda 517 que opera nos blocos 148 de coeficientes aplanados reconstruídos. Entretanto, constatou-se que uma sequência de vetores de domínio aplanado (ou blocos) não mapeia bem para sinais de tempo devido aos aspectos alternativos de tempo da transformada (por exemplo, a transformada de MDCT). Como uma consequência, o ajuste ao modelo de sinal subjacente do extrator 543 é reduzido e um nível superior de ruído de codificação resulta da estrutura alternativa. Em outras palavras, constatou-se que os modelos de sinal (por exemplo, modelos sinusoidais ou periódicos) usados pelo previsor de sub-banda 517 rendem um desempenho maior no domínio não aplanado (em comparação ao domínio aplanado).
[00160] Deve-se observar que em um exemplo alternativo, a saída do 517 (isto é, o bloco 150 de coeficientes de transformada estimados) pode ser adicionado na saída da unidade de aplanamento inverso 114 (isto é, ao bloco 149 dos coeficientes reconstruídos) (consulte a Figura 5a). A unidade conformadora 544 da Figura 5c pode, então, ser configurada para realizar a operação combinada de aplanamento atrasado e aplanamento inverso.
[00161] Os elementos no fluxo de bits recebido podem controlar a descarga ocasional do armazenamento temporário de sub-banda 541 e do armazenamento temporário de envelope 542, por exemplo, no caso de uma primeira unidade de codificação (isto é, um primeiro bloco) de um I-quadro. Isso possibilita a decodificação de um I-quadro sem conhecimento dos dados anteriores. A primeira unidade de codificação não terá, tipicamente, a capacidade de usar uma contribuição preditiva, mas pode, independentemente, usar um número relativamente menor de bits para transmitir as informações de previsor 520. A perda de ganho de predição pode ser compensada alocando-se mais bits para a codificação de erro de predição dessa primeira unidade de codificação. Tipicamente, o previsor contribuição é novamente substancial para a segunda unidade de codificação (isto é, um segundo bloco) de um I-quadro. Devido a esses aspectos, a qualidade pode ser mantida com um aumento relativamente pequeno na taxa de bits, até mesmo com um uso muito frequente de I-quadros.
[00162] Em outras palavras, os conjuntos 132, 332 de blocos (também chamados de quadros) compreendem uma pluralidade de blocos 131 que pode ser codificada com o uso de codificação preditiva. Quando de codifica um I-quadro, somente o primeiro bloco 203 de um conjunto 332 de blocos não pode ser codificado com o uso do ganho de codificação alcançado por um codificador preditivo. Já o bloco diretamente seguinte 201 pode usar os benefícios da codificação preditiva. Isso significa que as desvantagens de um I-quadro em relação à eficiência de codificação são limitadas à codificação do primeiro bloco 203 de coeficientes de transformada do quadro 332, e não se aplicam aos outros blocos 201, 204, 205 do quadro 332. Por esse motivo, o esquema de codificação de fala à base de transformada descrito no presente documento permite um uso relativamente frequente de I-quadros sem impacto significativo sobre a eficiência de codificação. De tal modo, o esquema de codificação de fala à base de transformada presentemente descrito é particularmente adequado para aplicações que requerem uma sincronização relativamente rápida e/ou uma sincronização relativamente frequente entre o decodificador e codificador.
[00163] Conforme indicado acima, durante a inicialização de um I- quadro, o armazenamento temporário de sinal de previsor, isto é, o armazenamento temporário de sub-banda 541, pode ser descarregado com zeros e o armazenamento temporário de envelope 542 pode ser preenchido com somente uma partição de tempo de valores, isto é, pode ser preenchido com somente um único envelope ajustado 139 (correspondente ao primeiro bloco 131 do I-quadro). O primeiro bloco 131 do I-quadro não irá, tipicamente, usar predição. O segundo bloco 131 tem acesso a somente duas partições de tempo do armazenamento temporário de envelope 542 (isto é, aos envelopes 139 do primeiro e segundo blocos 131), o terceiro bloco para somente três partições de tempo (isto é, aos envelopes 139 de três blocos 131), e o quarto bloco 131 para somente quatro partições de tempo (isto é, aos envelopes 139 de quatro blocos 131).
[00164] A regra de aplanamento atrasado do conformador espectral 544 (para identificar um envelope para determinar o bloco 150 de coeficientes de transformada estimados (no domínio aplanado)) é basea- To da em um valor de retardo de número inteiro determinado arredon- T dando-se o parâmetro de retardo de previsor em unidades de tama- K nho de bloco (em que a unidade de um tamanho de bloco pode chamada de partição de tempo ou como uma partição) ao número inteiro mais próximo. Entretanto, no caso de um I-quadro, esse valor de To retardo de número inteiro não poderia apontar para entradas indisponíveis no armazenamento temporário de envelope 542. Em vista disso, o conformador espectral 544 pode ser configurado para deter- To minar o valor de retardo de número inteiro de modo que o valor de To retardo de número inteiro seja limitado ao número de envelopes 139 que são armazenados no armazenamento temporário de envelope To 542, isto é, de modo que o valor de retardo de número inteiro não aponte para envelopes 139 que não estão disponíveis no armazenamento temporário de envelope 542. Para tal propósito, o valor de reTo tardo de número inteiro pode ser limitado a um valor que é uma função do índice de bloco dentro do quadro atual. A título de exemplo, o To valor de retardo de número inteiro pode ser limitado ao valor de índice do bloco atual 131 (que deve ser codificado) no quadro atual (por exemplo, para 1 para o primeiro bloco 131, para 2 para o segundo bloco 131, para 3 para o terceiro bloco 131 e para 4 para o quarto bloco 131 de um quadro). Fazendo-se isso, estados e/ou distorções indesejáveis devido ao processo de aplanamento podem ser evitados.
[00165] A Figura 5d mostra um diagrama de blocos de um decodifi- cador de espectro exemplificativo 502. O decodificador de espectro 502 compreende um decodificador sem perda 551 que é configurado para decodificar os dados de coeficientes codificados por entropia 163. Ademais, o decodificador de espectro 502 compreende um quantifica- dor inverso 552 que é configurado para atribuir valores de coeficiente aos índices de quantificação compreendidos nos dados de coeficientes 163. Conforme destacado no contexto do codificador 100, 170, coeficientes de transformada diferentes podem ser quantificados com o uso de quantificadores diferentes selecionados a partir de um conjunto de quantificadores predeterminados, por exemplo, conjunto finito de quan- tificadores escalares à base de modelo. Conforme mostrado na Figura 4, um conjunto de quantificadores 321, 322, 323 pode compreender tipos diferentes de quantificadores. O conjunto de quantificadores pode compreender um quantificador 321 que fornece síntese de ruído (no caso de taxa de bits de zero), um ou mais quantificadores com dither 322 (para razões de sinal para ruído relativamente baixas, SNRs, e para taxas de bits intermediárias) e/ou um ou mais quantificadores planos 323 (para SNRs relativamente altas e para taxas de bits relativamente altas).
[00166] A unidade de refinamento de envelope 107 pode ser configurada para fornecer o envelope de alocação 138 que pode ser combinado com o parâmetro de desvio compreendido nos dados de coeficientes 163 para render um vetor de alocação. O vetor de alocação contém um valor de número inteiro para cada banda de frequência 302. O valor de número inteiro para uma banda de frequência específica 302 aponta para o ponto de distorção de taxa a ser usado para a quantificação inversa dos coeficientes de transformada da banda particular 302. Em outras palavras, o valor de número inteiro para a banda de frequência específica 302 aponta para o quantificador a ser usado para a quantificação inversa dos coeficientes de transformada da banda particular 302. Um aumento do valor de número inteiro por um corresponde a um aumento de 1,5 dB em SNR. Para os quantificadores com dither 322 e os quantificadores planos 323, um modelo de distri- buição de probabilidade de Laplacian pode ser usado na codificação sem perda, que pode empregar codificação aritmética. Um ou mais quantificadores com dither 322 podem ser usados para preencher o vão de forma contínua entre casos de taxas de bits baixas e altas. Os quantificadores com dither 322 podem ser benéficos na criação de qualidade de áudio suficientemente suave para sinais similares a ruído estacionário.
[00167] Em outras palavras, o quantificador inverso 552 pode ser configurado para receber os índices de quantificação de coeficiente de um bloco atual 131 de coeficientes de transformada. Os um ou mais índices de quantificação de coeficiente de uma banda de frequência específica 302 foram determinados com o uso de um quantificador correspondente de um conjunto de quantificadores predeterminados. O valor do vetor de alocação (que pode ser determinado desviando-se o envelope de alocação 138 com o parâmetro de desvio) para a banda de frequência específica 302 indica o quantificador que foi usado para determinar os um ou mais índices de quantificação de coeficiente da banda de frequência específica 302. Ao se identificado o quantificador, os um ou mais índices de quantificação de coeficiente podem ser quantificados inversamente para render o bloco 145 de coeficientes de erro quantificados.
[00168] Ademais, o decodificador espectral 502 pode compreender uma unidade de redimensionamento inverso 113 para fornecer o bloco 147 de coeficientes de erro quantificados dimensionados. As ferramentas adicionais e interconexões ao redor do decodificador sem perda 551 e o quantificador inverso 552 da Figura 5d podem ser usados para adaptar a decodificação espectral ao seu uso no decodificador geral 500 mostrado na Figura 5a, em que a saída do decodificador espectral 502 (isto é, o bloco 145 de coeficientes de erro quantificados) é usada para fornecer uma correção aditiva a um vetor de domínio aplanado previsto (isto é, ao bloco 150 de coeficientes de transformada estimados). Em particular, as ferramentas adicionais podem garantir que o processamento realizado pelo decodificador 500 corresponda ao processo realizado pelo codificador 100, 170.
[00169] Em particular, o decodificador espectral 502 pode compreender uma unidade de dimensionamento heurística 111. Conforme mostrado em conjunção com o codificador 100, 170, a unidade de dimensionamento heurística 111 pode ter um impacto sobre a alocação de bits. No codificador 100, 170, os blocos atuais 141 de coeficientes de erro de previsão podem ser dimensionadas para cima para a variância de unidade por uma regra heurística. Como uma consequência, a alocação padrão pode levar a uma quantificação muito refinada da saída de dimensão reduzida da unidade de dimensionamento heurística 111. Por esse motivo a alocação deveria ser modificada de forma semelhante à modificação dos coeficientes de erro de previsão.
[00170] Entretanto, conforme destacado abaixo, pode ser benéfico evitar a redução de recursos de codificação para um ou mais dos índices de frequência baixa (ou bandas de frequência baixa). Em particular, isso pode ser benéfico para anular o artefato de ruído/ressoante de LF (frequência baixa) que por acaso é mais proeminente em situações com voz (isto é, para o sinal que tem um parâmetro de controle relativamente grande 146, rfu). De tal modo, a alocação de bits / seleção de quantificador em função do parâmetro de controle 146, que é descrito abaixo, pode ser considerada um "reforço de qualidade de LF adapta- tivo de voz".
[00171] O decodificador espectral pode depender de um parâmetro rfu de controle 146 nomeado que pode ser uma versão limitada do ga. . .9 . nho de previsor , por exemplo: rfu = min(l, maxQj, 0)).
[00172] Métodos alternativos para determinar o parâmetro de controle 146, rfu, podem ser usados. Em particular, o parâmetro de controle 146 pode ser determinado com o uso do pseudocódigo dado na Tabela 1.
Figure img0002
TABELA 1
[00173] O f_gain e f_pred_gain variáveis podem ser definidos iguais. Em particular, o f_gain variável pode corresponder ao ganho de g previsor . O parâmetro de controle 146, rfu, é chamado de f_rfu na Tabela 1. O ganho f_gain pode ser um número real.
[00174] Em comparação com a primeira definição do parâmetro de controle 146, a definição posterior (de acordo com a Tabela 1) reduz o parâmetro de controle 146, rfu, para ganhos de previsor acima de 1 e aumenta o parâmetro de controle 146, rfu, para ganhos de previsor negativos.
[00175] Com o uso do parâmetro de controle 146, o conjunto de quantificadores usado na unidade de quantificação de coeficiente 112 do codificador 100, 170 e usado no quantificador inverso 552 pode ser adaptado.
[00176] Em particular, o ruído do conjunto de quantificadores pode ser adaptado com base no parâmetro de controle 146. A título de rfu exemplo, um valor do parâmetro de controle 146, , próximo a 1 po de desencadear uma limitação da faixa de níveis de alocação com o uso de quantificadores com dither e pode desencadear uma redução da variância do nível de síntese de ruído. Em um exemplo, um limite rfu = 0.75 1 — rfu de decisão de dither em e um ganho de ruído igual a pode ser definido. A adaptação de dither pode afetar tanto a decodifi- cação sem perda quanto o quantificador inverso, enquanto a adaptação de ganho de ruído tipicamente afeta apenas o quantificador inverso.
[00177] É possível presumir que a contribuição de previsor é substancial para situações com voz/tonais. De tal modo, um ganho de pre- 3 visor relativamente alto (isso é, um parâmetro de controle relativamente alto 146) pode ser indicativo de um sinal de fala com voz ou tonal. Em tais situações, a adição de ruído relacionado a dither ou explícito (caso de alocação de zero) mostrou empiricamente que é contra produtivo à qualidade buscada do sinal codificado. Como uma consequência, a quantidade de quantificadores com dither 322 e/ou o tipo de ruído usado para o quantificador de síntese de ruído 321 pode ser adaptado com base no ganho de previsor 9, aprimorando assim, a qualidade buscada do sinal de fala codificado.
[00178] De tal modo, o parâmetro de controle 146 pode ser usado para modificar a faixa 324, 325 de SNRs para as quais os quantifica- dores com dither 322 são usados. A título de exemplo, se o parâmetro rfu <0,75 de controle 146 , a faixa 324 para quantificadores com dither pode ser usada. Em outras palavras, se o parâmetro de controle 146 forem abaixo de um limite predeterminado, o primeiro conjunto 326 de quantificadores pode ser usado. Por outro lado, se o parâmetro de rfu >0,75 controle 146 , a faixa 325 para quantificadores com dither pode ser usada. Em outras palavras, se o parâmetro de controle 146 for maior ou igual ao limite predeterminado, o segundo conjunto 327 de quantificadores pode ser usado.
[00179] Ademais, o parâmetro de controle 146 pode ser usado para a modificação da variância e alocação de bits. A razão para isso, é que, tipicamente, uma predição bem-sucedida irá exigir uma correção menor, especialmente, na faixa de frequência mais baixa a partir de 0 a 1 kHz. Pode ser vantajoso tornar o quantificador explicitamente consciente de tal desvio do modelo de variância de unidade a fim de liberar os recursos de codificação para bandas de frequência mais alta 302. Isso está descrito no contexto da Figura 17c, painel iii do documento WO2009/086918, cujo conteúdo está incorporado através da referência. No decodificador 500, essa modificação pode ser implantada através da modificação do vetor de alocação nominal de acordo com uma norma de dimensionamento heurística (aplicado através do uso da unidade de dimensionamento 111) e, ao mesmo tempo, dimensiona a saída do quantificador inverso 552 de acordo com uma norma de dimensionamento heurística inversa com o uso da unidade de dimensão inversa 113. Seguindo a teoria do documento WO2009/086918, a norma de dimensionamento heurística e a norma de dimensionamento heurística inversa devem ser proximamente compatíveis. Entretanto, constatou-se empiricamente que é vantajoso cancelar a modificação de alocação para uma ou mais bandas de frequência mais baixa 302, a fim de neutralizar problemas ocasionais com ruído de LF (baixa frequência) para componentes de sinal de voz. O cancelamento da modificação de alocação pode ser realizado em dependência do valor do ganho de previsor e/ou do parâmetro de controle 146. Em particular, o cancelamento da modificação de aloca- ção pode ser realizado apenas se o parâmetro de controle 146 exceder o limite de decisão de dither.
[00180] Conforme esboçado acima, um codificador 100, 170 e/ou um decodificador 500 pode compreender uma unidade de dimensionamento 111 que é configurado para redimensionar os coeficientes de Δ(fc) erro de previsão para render um bloco 142 de coeficientes de erro redimensionados. A unidade de redimensionamento 111 pode usar uma ou mais normas heurísticas predeterminadas para realizar o redimensionamento. Em um exemplo, a unidade de redimensionamento 111 pode usar uma norma de dimensionamento heurística que com- d(f) preende o ganho , por exemplo,
Figure img0003
[00181] onde uma frequência de ruptura pode ser definida para, por exemplo, 1.000 Hz. Por esse motivo, a unidade de redimensionamento 111 pode ser configurada para aplicar um ganho dependente de d(f) frequência aos coeficientes de erro de previsão para render o bloco 142 de coeficientes de erro redimensionados. A unidade de re- dimensionamento inverso 113 pode ser configurada para aplicar um d(f) inverso do ganho dependente de frequência . d(f)
[00182] O ganho dependente de frequência pode ser depen dente do rfu de parâmetro de controle 146. No exemplo acima, o ga- d(f) nho exibe um caráter de passa-baixa, de modo que os coeficien tes de erro de previsão sejam mais atenuados em altas frequências do que em frequências mais baixas e/ou de modo que os coeficientes de erro de previsão sejam mais enfatizados em frequências mais baixas d(f) do que em frequências mais altas. O ganho mencionado acima é sempre maior ou igual a um. Por esse motivo, em uma modalidade preferencial, a norma de dimensionamento heurística é de modo que os coeficientes de erro de previsão sejam enfatizados por um fator um ou mais (dependendo da frequência).
[00183] Deve-se observar que o ganho dependente de frequência pode ser indicativo de uma potência ou uma variância. Em tais casos, a norma de dimensionamento e a norma de dimensionamento inverso deve ser derivado com base em uma raiz quadrada do ganho depen...... . . dente de frequência, por exemplo, com base em .
[00184] O grau de ênfase e/ou atenuado pode depender da quali- dade da previsão alcançada pelo previsor 117. O ganho de previsor e/ou o rfu de parâmetro de controle 146 pode ser indicativo da qualidade da previsão. Em particular, um valor relativamente baixo do rfu de parâmetro de controle 146 (relativamente próximo ao zero) pode ser indicativo de uma qualidade baixa de previsão. Em tais casos, deve-se esperar que os coeficientes de erro de previsão tenham valores (absoluto) relativamente altos ao longo de todas as frequências. Um valor relativamente alto do rfu de parâmetro de controle 146 (relativamente próximo a um) pode ser indicativo de uma qualidade alta de previsão. Em tais casos, deve-se esperar que os coeficientes de erro de previsão tenham valores (absolutos) relativamente altos para frequências altas (que são mais difíceis para prever). Por esse motivo, a fim de alcançar a variância de unidade na saída da unidade de redi- d(f) mensionamento 111, o ganho pode ser de modo que no caso de d(f) uma qualidade relativamente baixa de previsão, o ganho é subs tancialmente plano para todas as frequências, enquanto no caso de uma qualidade relativamente alta de previsão, o ganho tenha um caráter de passa-baixa, para aumentar ou incentivar a variância em frequências baixas. Esse é o caso para o ganho dependente de rfu d(f) mencionado acima .
[00185] Conforme esboçado acima, a unidade de alocação de bit 110 pode ser configurada para fornecer uma alocação relativa de bits para os diferentes coeficientes de erro redimensionados, dependendo do valor de energia correspondente no envelope de alocação 138. A unidade de alocação de bit 110 pode ser configurada para considerar a norma de redimensionamento heurística. A norma de redimensionamento heurística pode ser dependente da qualidade da previsão. No caso de uma qualidade relativamente alta de previsão, pode ser mais benéfico atribuir uma quantidade relativamente aumentada de bits à codificação dos coeficientes de erro de previsão (ou ao bloco 142 de coeficientes de erro redimensionados) em frequências altas do que à codificação dos coeficientes em frequências baixas. Isso pode ser de-vido ao fato de que no caso de uma qualidade alta de previsão, os coeficientes de baixa frequência já são bem previstas, enquanto os coeficientes de alta frequência são, tipicamente, menos bem previstos. Por outro lado, no caso de uma qualidade relativamente baixa de previsão, a alocação de bits deve permanecer inalterada.
[00186] O comportamento acima pode ser implantado aplicando-se um inverso das regras heurísticas / ganho :: ? ao envelope ajustado atual 139, a fim de determinar um envelope de alocação 138 que leva em conta a qualidade de predição.
[00187] O envelope ajustado 139, os coeficientes de erro de predição e o ganho ::: ? podem ser representados no log ou domínio de dB. Nesse caso, a aplicação do ganho :: ? aos coeficientes de erro de predição pode corresponder a uma operação de "adição" e a aplicação do inverso do ganho ::: ao envelope ajustado 139 pode corresponder a uma operação de "subtração".
[00188] Deveria ser notado que várias variantes das regras heurísticas / ganho :: í: são possíveis. Em particular, a curva dependente de (1 + í-)3') frequência fixa de caráter de passa-baixo pode ser substi tuída por uma função que depende dos dados de envelope (por exemplo, do envelope ajustado 139 para o bloco atual 131). As regras heurísticas modificadas podem depender tanto do parâmetro de controle rfu 146 e dos dados de envelope.
[00189] A seguir formas diferentes para determinar um ganho de previsor p , que podem corresponder ao ganho de previsor ,, são descritas. O ganho de previsor p pode ser usado como uma indicação da qualidade da predição. O vetor residual de predição (isto é, o bloco 141 de coeficientes de erro de predição ∑ pode ser dado por: z = x ~ py ’ quando x é o vetor alvo (por exemplo, o bloco atual 140 de coeficientes de transformada aplanados ou o bloco atual 131 de coeficientes de transformada), y é um vetor que representa o candidato escolhido para a predição (por exemplo, blocos anteriores 149 de coeficientes reconstruídos), e p é o (escalar) ganho de previsor.
[00190] w ^0 pode ser um vetor de peso usado para a determinação do ganho de previsor p . Em algumas modalidades, o vetor de peso é uma função do envelope de sinal (por exemplo, uma função do envelope ajustado 139, que pode ser estimada no codificador 100, 170 e então transmitida para o decodificador 500). O vetor de peso tem, tipicamente, a mesma dimensão que o vetor alvo e o vetor candidato. Uma i-ésima entrada do vetor x pode ser denotada por xi (por exemplo, i=1, ,,. ,K).
[00191] Há formas diferentes para definir o ganho de previsor p . Em uma modalidade, o ganho de previsor p é um ganho de MMSE (erro quadrático médio mínimo) definido de acordo com o critério de erro quadrático médio mínimo. Nesse caso, o ganho de previsor p pode ser computado com o uso da seguinte fórmula:
Figure img0004
[00192] esse ganho de previsor ptipicamente minimiza o erro qua drático médio definido como
Figure img0005
[00193] É frequentemente (perceptivamente) benéfico introduzir ponderação à definição do erro quadrático médio D . A ponderação pode ser usada para enfatizar a importância de uma correspondência entre x e y para porções perceptivamente importantes do espectro de sinal e não enfatizar a importância de uma correspondência entre x e y para porções do espectro de sinal que são relativamente menos importantes. Tal abordagem resulta no seguinte critério de erro:
Figure img0006
, que leva à seguinte definição do ganho de previsor ótimo (no sentido do erro quadrático médio ponderado):
Figure img0007
[00194] A definição acima do ganho de previsor resulta, tipicamente, em um ganho que é ilimitado. Conforme indicado acima, os pesos do vetor de peso podem ser determinados com base no envelope ajustado 139. Por exemplo, o vetor de peso w pode ser determinado com o uso de uma função predefinida do envelope ajustado 139. A função predefinida pode ser conhecida no codificador e no decodifica- dor (que também é o caso para o envelope ajustado 139). Por conseguinte, o vetor de peso pode ser determinado da mesma forma no codificador e no decodificador.
[00195] Outra fórmula de ganho de previsor possível é dada por
[00196] em que i ,
Figure img0008
. Essa defini- ção do ganho de previsor rende um ganho que está sempre dentro do intervalo [-1, 1]. Um recurso importante do ganho de previsor especifi- cado pela fórmula anterior é que o ganho de previsor p facilita uma relação tratável entre a energia do sinal alvo x e a energia do sinal residual z . A energia residual de LTP pode ser expressa como:
Figure img0009
[00197] O parâmetro de controle rfu 146 pode ser determinado com base no ganho de previsor * com o uso das fórmulas mencionadas acima. O ganho de previsor pode ser igual ao ganho de previsor p , determinado com o uso de qualquer uma das fórmulas mencionadas acima.
[00198] Conforme destacado, o codificador 100, 170 é configurado para quantificar e codificador o vetor residual z (isto é, o bloco 141 de coeficientes de erro de predição). O processo de quantificação é tipicamente guiado pelo envelope sinal (por exemplo, pelo envelope de alocação 138) de acordo com um modelo perceptivo subjacente a fim de distribuir os bits disponíveis dentre os componentes espectros do sinal de forma perceptivamente significativa. O processo de alocação de taxa é guiado pelo envelope de sinal (por exemplo, pelo envelope de alocação 138), que é derivado a partir do sinal de entrada (por exemplo, do bloco 131 de coeficientes de transformada). A operação do previsor 117 muda tipicamente o envelope de sinal. A unidade de quantificação 112 usa, tipicamente, os quantificadores que são projetados assumindo a operação em uma fonte de variância de unidade. Notavelmente no caso de predição de alta qualidade (isto é, quando o previsor 117 é bem sucedido), a propriedade de variância de unidade pode não ser mais o caso, isto é, o bloco 141 de coeficientes de erro de predição pode não exibir a variância de unidade.
[00199] Não é, tipicamente, eficiente estimar o envelope do bloco 141 de coeficientes de erro de predição (isto é, para o residual z ) e para transmitir esse envelope para o decodificador (e para re-aplanar o bloco 141 de coeficientes de erro de predição com o uso do envelope estimado). Em vez disso, o codificador 100 e o decodificador 500 podem usar uma regra heurística para redimensionar o bloco 141 de coeficientes de erro de predição (conforme destacado acima). A regra heurística pode ser usada para redimensionar o bloco 141 de coeficientes de erro de predição, de modo que o bloco 142 de coeficientes redimensionados se aproxime da variância de unidade. Como um resultado disso, o resultado de quantificação pode ser aprimorado (com o uso de quantificadores que assumem a variância de unidade).
[00200] Ademais, como já foi destacado, a regra heurística pode ser usada para modificar o envelope de alocação 138, que é usado para o processo de alocação de bit. A modificação do envelope de alocação 138 e o redimensionamento do bloco 141 de coeficientes de erro de predição são tipicamente realizados pelo codificador 100 e pelo deco- dificador 500 da mesma forma (com o uso da mesma regra heurística).
[00201] Uma regra heurística possível ::: ? foi descrita acima. A seguir, outra abordagem para determinar uma regra heurística é descrita. Um inverso do ganho de predição de energia de domínio ponderado pode ser dado por .3 :. de modo que 2 •' = ' ", em que I I indica a energia quadrática do vetor residual (isto é, o bloco 141 de coeficientes de erro de predição) no domínio ponderado e em que II indica a energia quadrática do vetor alvo (isto é, o bloco 140 de coeficientes de transformada aplanados) no domínio ponderado.
[00202] As seguintes suposições podem ser feitas:
[00203] 1. As entradas do vetor alvo ' têm variância de unidade. Essas podem ser um resultado do aplanamento realizado pela unidade de aplanamento 108. Essa suposição é cumprida dependendo da qualidade do envelope com base no aplanamento realizado pela unidade de aplanamento 108.
[00204] 2. A variância das entradas do vetor residual de predição ∑
Figure img0010
. _ está na forma de ? para - - ■ - e para alguns 7 “. Essa suposição é baseada na heurística que uma busca de pre visor orientado por menos quadrados leva a uma contribuição de erro distribuída igualmente no domínio ponderado, de modo que o vetor residual ' - seja mais ou menos plano. Ademais, pode ser esperado que o previsor candidato esteja próximo a plano o que leva à limitação razoável 5 ∑ : : :J -. Deveria ser observado que várias modificações dessa segunda suposição podem ser usadas.
[00205] A fim de estimar o parâmetro 7, podem-se inserir as duas suposições mencionadas acima na fórmula de erro de predição (por exemplo, i i i i ) e assim fornecer a equação do "tipo de nível de água"
Figure img0011
[00206] pode ser mostrado que há uma solução para a equação acima no intervalo 7 :.. A equação para encontrar o pa râmetro 7 pode ser resolvida com o uso de rotinas de classificação.
[00207] A regra heurística pode, então, ser dado por (W(O -1 )
Figure img0012
Í ?, em que _ - ■ - identifica o indice de frequência. O inverso da regra de dimensionamento heurística é dado por
Figure img0013
O inverso da regra de dimensionamento heurística é aplicado pela unidade de dimensionamento inverso 113. A regra de dimensionamento dependente de frequência depende dos pesos '::: = ■‘•’.. Conforme indicado acima, os pesos ::podem ser dependentes de ou podem corresponder ao bloco atual 131 de coeficientes de transformada (por exemplo, o envelope ajustado 139, ou alguma função predefinida do envelope ajustado 139).
[00208] Pode ser mostrado que quando se usa a fórmula
Figure img0014
Ex+ Ey para determinar o ganho de previsor, a seguinte relação se aplica: = '-~
[00209] Por conseguinte, uma regra de dimensionamento heurística pode ser determinada de várias formas. Foi mostrado, experimentalmente, que a regra de dimensionamento que é determinada com base nas duas suposições mencionadas acima (chamadas de método de dimensionamento B) é vantajosa em comparação à regra de dimensionamento fixa Em particular, a regra de dimensionamento que é determinada com base nas duas suposições pode levar em conta o efeito da ponderação usada no curso de uma busca de previsor candidato. O método de dimensionamento B é convenientemente combina- do com a definição do ganho
Figure img0015
, por conta da relação analiti camente tratável entre a variância do residual e a variância do sinal (que facilita a derivação de p conforme destacado acima).
[00210] A seguir, um aspecto adicional para aprimorar o desempenho do codificador de áudio à base de transformada é descrito. Em particular, o uso de um assim chamado sinalizador de preservação de variância é proposto. O sinalizador de preservação de variância pode ser determinado e transmitido em uma base por bloco 131. O sinalizador de preservação de variância pode ser indicativo da qualidade da predição. Em uma modalidade, o sinalizador de preservação de variância está desativado, no caso de uma qualidade relativamente alta de predição, e o sinalizador de preservação de variância está ativado, no caso de uma qualidade relativamente baixa de predição. O sinalizador de preservação de variância pode ser determinado pelo codificador 100, 170, por exemplo, com base no ganho de predição ° e/ou com base no ganho de previsor .. A título de exemplo, o sinalizador de preservação de variância pode ser ajustado para "ativado" se o ganho de previsor -° ou 5 (ou um parâmetro derivado a partir do mesmo) está abaixo de um limite predeterminado (por exemplo 2dB) e vice versa. Conforme destacado acima, o inverso do ganho de predição de energia de domínio ponderado depende tipicamente do ganho de previsor, por exemplo = '- ~ •-’. O inverso do parâmetro pode ser usado para determinar um valor do sinalizador de preservação de variância. A título de exemplo, (por exemplo expresso em dB) pode ser com parado a um limite predeterminado (por exemplo 2dB), a fim de determinar o valor do sinalizador de preservação de variância. Se -for maior do que o limite predeterminado, o sinalizador de preservação de variância pode ser ajustado para "desativado" (indicando uma qualidade relativamente alta de predição), e vice versa.
[00211] O sinalizador de preservação de variância pode ser usado para controlar várias definições diferentes do codificador 100 e do de- codificador 500. Em particular, o sinalizador de preservação de variância pode ser usado para controlar o grau de ruídos da pluralidade de quantificadores 321, 322, 323. Em particular, o sinalizador de preservação de variância pode afetar um ou mais das seguintes definições:
[00212] • O ganho de ruído adaptativo para alocação de zero bit. Em outras palavras, o ganho de ruído do quantificador de síntese de ruído 321 pode ser afetado pelo sinalizador de preservação de variância.
[00213] • Alcance dos quantificadores com dither. Em outras pala vras, o alcance 324, 325 de SNRs para os quais os quantificadores com dither 322 são usados podem ser afetados pelo sinalizador de preservação de variância.
[00214] • Pós-ganho dos quantificadores com dither. Um pós-ganho pode ser aplicado à saída dos quantificadores com dither, a fim de afetar o desempenho de erro quadrático médio dos quantificadores com dither. O pós-ganho pode ser dependente do sinalizador de preservação de variância.
[00215] • Aplicação de dimensionamento heurístico. O uso de di mensionamento heurístico use (na unidade de redimensionamento 111 e na unidade de dimensionamento inverso 113) pode ser dependente do sinalizador de preservação de variância.
[00216] Um exemplo de como o sinalizador de preservação de variância pode mudar uma ou mais definições do codificador 100 e/ou do decodificador 500 é fornecido na Tabela 2.
Figure img0016
TABELA 2
[00217] Na fórmula para o pós-ganho, °X = EX 2 J é uma variância de um ou mais dos coeficientes do bloco 141 de coeficientes de erro de predição (que serão quantificados), e quantificador de um quantificador escalar (612) do quantificador com dither para o qual o pós-ganho é aplicado.
[00218] Como pode ser visto a partir do exemplo da Tabela 2, o ganho de ruído do quantificador de síntese de ruído 321 (isto é, a variância do quantificador de síntese de ruído 321) pode depender do sinalizador de preservação de variância. Conforme destacado acima, o parâmetro de controle rfu 146 pode estar na faixa [0, 1], em que um valor relativamente baixo de rfu indica uma qualidade relativamente baixa de predição e um valor relativamente alto de rfu indica uma qualidade relativamente alta de predição. Para os valores de rfu na faixa de [0, 1], a fórmula da coluna esquerda fornece ganhos de ruído inferiores *.••• em relação à fórmula da coluna direita. Por conseguinte, quando o sinalizador de preservação de variância está ativado (indicando uma qualidade relativamente baixa de predição), um ganho de ruído superior é usado em relação a quando o sinalizador de preservação de variância está desativado (indicando uma qualidade relativamente alta de predição). Mostrou-se, experimentalmente, que isso aprimora a qualidade preceptiva geral.
[00219] Conforme destacado acima, a faixa de SNR de 324, 325 dos quantificadores com dither 322 pode variar dependendo do parâmetro de controle rfu. De acordo com a Tabela 2, quando o sinalizador de preservação de variância está ativado (indicando uma qualidade relativamente baixa de predição), uma faixa grande fixa de quantifica- dores com dither 322 é usada (por exemplo, a faixa 324). Por outro lado, quando o sinalizador de preservação de variância está desativado (indicando uma qualidade relativamente alta de predição), faixas diferentes 324, 325 são usadas, dependendo do parâmetro de controle rfu.
[00220] A determinação do bloco 145 de coeficientes de erro quantificados pode envolver a aplicação de um pós-ganho 7 aos coeficien- tes de erro quantificados, que foi quantificado com o uso de um quanti- ficador com dither 322. O pós-ganho 7 pode ser derivado para aprimorar o desempenho de MSE de um quantificador com dither 322 (por exemplo, um quantificador com um dither subtrativo).
[00221] O pós-ganho pode ser dado por:
Figure img0017
[00222] Mostrou-se, experimentalmente, que a qualidade de codifi cação perceptiva pode ser aprimorada, quando se faz o pós-ganho dependente do sinalizador de preservação de variância. O pós ganho ótimo de MSE mencionado acima é usado, quando o sinalizador de preservação de variância é desativado (indicando uma qualidade relativamente alta de predição). Por outro lado, quando o sinalizador de preservação de variância está desativado (indicando uma qualidade relativamente baixa de predição), pode ser benéfico usar um pós- ganho superior (determinado de acordo com a fórmula do lado direito da Tabela 2).
[00223] Conforme destacado acima, o dimensionamento heurístico pode ser usado para fornecer blocos 142 de coeficientes de erro redi- mensionados que são mais próximas à propriedade de variância de unidade em do que os blocos 141 de coeficientes de erro de predição. As regras de dimensionamento heurísticas podem ser feitas dependentes do parâmetro de controle 146. Em outras palavras, as regras de dimensionamento heurísticas podem ser feitas dependentes da qualidade de predição. O dimensionamento heurístico pode ser particularmente benéfico no caso de uma qualidade relativamente alta de predição, enquanto que os benefícios podem ser limitados no caso de uma qualidade relativamente baixa de predição. Em vista disso, pode ser benéfico somente usar o dimensionamento heurístico quando o sinalizador de preservação de variância está desativado (indicando uma qualidade relativamente alta de predição).
[00224] No presente documento, um codificador de fala à base de transformada 100, 170 e um decodificador de fala à base de transformada correspondente 500 foi descrito. O codec de fala à base de transformada pode usar vários aspectos que permite o aprimoramento da qualidade de sinais de fala codificados. O codec de fala pode usar blocos relativamente curtos (também chamado de unidades de codificação), por exemplo, na faixa de 5 ms, assegurando assim uma resolução de tempo adequado e estatísticas significativas para sinais de fala. Ademais, o codec de fala pode fornecer uma descrição adequada de um envelope espectral de variação de tempo das unidades de codificação. Além disso, o codec de fala pode usar a predição no domínio de transformada, em que a predição pode levar em conta os envelo-pes espectrais das unidades de codificação. Por conseguinte, o codec de fala pode fornecer atualizações preditivas cientes de envelope para as unidades de codificação. Ademais, o codec de fala pode usar quan- tificadores predeterminados que se adaptam aos resultados da predição. Em outras palavras, o codec de fala pode usar quantificadores escalares adaptativos de predição.
[00225] Os métodos e sistemas descritos no presente documento podem ser implantados como software, firmware e/ou hardware. Determinados componentes podem, por exemplo, ser implantados como software em execução em um microprocessador ou processador de sinal digital. Outros componentes podem, por exemplo, ser implantados como hardware e ou como circuitos integrados específicos de aplicação. Os sinais encontrados nos métodos e sistemas descritos podem ser armazenados em mídia como memória de acesso aleatório ou mídia de armazenamento óptico. Os mesmos podem ser transferidos por meio de redes, como redes de rádio, redes de satélite, redes sem fio ou redes com fio, por exemplo, a Internet. Os dispositivos típi- cos que usam os métodos e sistemas descritos no presente documento são dispositivos eletrônicos portáteis ou outro equipamento de consumidor que são usados para armazenar e/ou renderizar sinais de áudio.

Claims (20)

1. Codificador de fala à base de transformada (100, 170) configurado para codificar um sinal de fala em um fluxo de bits caracterizado pelo fato de que compreende: - uma unidade de enquadramento (101) configurada para receber um conjunto (132, 332) de blocos; em que o conjunto (132, 332) de blocos compreende uma pluralidade de blocos sequenciais (131) de coeficientes de transformada; em que a pluralidade de blocos (131) é indicativa de amostras do sinal de fala; em que um bloco (131) de coeficientes de transformada compreende uma pluralidade de coeficientes de transformada para uma pluralidade correspondente de índices de frequência (301); - uma unidade de estimação de envelope (102) configurada para determinar um envelope atual (133) com base na pluralidade de blocos sequenciais (131) de coeficientes de transformada; em que o envelope atual (133) é indicativo de uma pluralidade de valores de energia espectral (303) para a pluralidade correspondente de índices de frequência (301); - uma unidade de quantificação de envelope (103) configurada para determinar um envelope atual quantificado (134) quantificando-se o envelope atual (133); - uma unidade de interpolação de envelope (104) configurada para determinar uma pluralidade de envelopes interpolados (136) para a pluralidade de blocos (131) de coeficientes de transformada, respectivamente, com base no envelope atual quantificado (134) e com base em um envelope quantificado anterior (134); e - uma unidade de aplanamento (108) configurada para determinar uma pluralidade de blocos (140) de coeficientes de transformada aplanados aplanando-se a pluralidade correspondente de blocos (131) de coeficientes de transformada com o uso da pluralidade cor- respondente de envelopes interpolados (136), respectivamente; em que o fluxo de bits é determinado com base na pluralidade de blocos (140) de coeficientes de transformada aplanados.
2. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 1, caracterizado pelo fato de que: - o codificador de fala à base de transformada (100, 170) compreende adicionalmente uma unidade de determinação de ganho de envelope (105, 106) configurada para determinar uma pluralidade de ganhos de envelope (137) para a pluralidade de blocos (131) de coeficientes de transformada, respectivamente; - o codificador de fala à base de transformada (100, 170) compreende adicionalmente uma unidade de refinamento de envelope (107) configurada para determinar uma pluralidade de envelopes ajustados (139) deslocando-se valores de energia espectral (303) da pluralidade de envelopes interpolados (136) de acordo com a pluralidade de ganhos de envelope (137), respectivamente; - a unidade de aplanamento (108) é configurada para determinar a pluralidade de blocos (140) de coeficientes de transformada aplanados aplanando-se a pluralidade de blocos correspondente (131) de coeficientes de transformada com o uso da pluralidade correspondente de envelopes ajustados (139), respectivamente.
3. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 2, caracterizado pelo fato de que uma unidade de determinação de ganho de envelope (105, 106) é configurada para determinar um primeiro ganho de envelope (137) para um primeiro bloco (131) de coeficientes de transformada, de modo que uma variância dos coeficientes de transformada aplanados de um primeiro bloco correspondente (140) de coeficientes de transformada aplanados derivados com o uso de um primeiro envelope ajustado (139) seja ajustada em comparação a uma variância dos coeficientes de transformada aplanados de um primeiro bloco correspondente (140) de coeficientes de transformada aplanados derivado com o uso de um primeiro envelope interpolado (139).
4. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 3, caracterizado pelo fato de que a unidade de determinação de ganho de envelope (105, 106) é configurada para determinar o primeiro ganho de envelope (137) para o primeiro bloco (131) de coeficientes de transformada, de modo que a variância dos coeficientes de transformada aplanados do primeiro bloco correspondente (140) de coeficientes de transformada aplanados derivado com o uso do primeiro envelope ajustado (139) é um.
5. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 2, caracterizado pelo fato de que a unidade de determinação de ganho de envelope (105, 106) é configurada para inserir dados de ganho (162) indicativos da pluralidade de ganhos de envelope (137) no fluxo de bits.
6. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 1, caracterizado pelo fato de que: - o envelope atual (133) é indicativo de uma pluralidade de valores de energia espectral (303) para uma pluralidade correspondente de bandas de frequência (302); - uma banda de frequência (302) compreende um ou mais índices de frequência (301); - a unidade de estimação de envelope (102) é configurada para determinar um valor de energia espectral (303) para uma banda de frequência particular (302) com base nos coeficientes de transformada da pluralidade de blocos sequenciais (131) para a banda de frequência particular (302).
7. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 1, caracterizado pelo fato de que a unidade de quantificação (103) é configurada para inserir os dados de envelope (161) no fluxo de bits indicativos do envelope atual quantificado (134).
8. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 1, caracterizado pelo fato de que: - um bloco (131) de coeficientes de transformada compreende coeficientes de MDCT; e/ou - um bloco (131) de coeficientes de transformada compreende 256 coeficientes de transformada em 256 índices de frequência (301); e/ou - um conjunto (132, 332) de blocos compreende quatro ou mais blocos (131) de coeficientes de transformada.
9. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 1, caracterizado pelo fato de que: - codificador de fala à base de transformada (100, 170) é configurado para operar em uma pluralidade de modos diferentes que compreendem um modo de passo curto e um modo de passo longo; - a unidade de enquadramento (101), a unidade de estimação de envelope (102) e a unidade de interpolação de envelope (104) são configuradas para processar o conjunto (132, 332) de blocos que compreende a pluralidade de blocos sequenciais (131) de coeficientes de transformada, quando o codificador de fala à base de transformada (100, 170) é operado no modo de passo curto; e - a unidade de enquadramento (101), a unidade de estimação de envelope (102) e a unidade de interpolação de envelope (104) são configuradas para processar um conjunto (132, 332) de blocos que compreende um único bloco (131) de coeficientes de transformada, quando o codificador de fala à base de transformada (100, 170) é operado no modo de passo longo.
10. Codificador de fala à base de transformada (100, 170), de acordo com a reivindicação 9, caracterizado pelo fato de que, no modo de passo longo, - a unidade de estimação de envelope (102) é configurada para determinar um envelope atual (133) do único bloco (131) de coeficientes de transformada compreendidos dentro do conjunto (132, 133) de blocos; e - a unidade de interpolação de envelope (104) é configurada para determinar um envelope interpolado (136) para o único bloco (131) de coeficientes de transformada como o envelope atual (133) do único bloco (131) de coeficientes de transformada.
11. Decodificador de fala à base de transformada (500) con-figurado para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído caracterizado pelo fato de que compreende - uma unidade de decodificação de envelope (531) configurada para determinar um envelope atual quantificado (134) a partir dos dados de envelope (161) compreendidos no fluxo de bits; em que o envelope atual quantificado (134) é indicativo de uma pluralidade de valores de energia espectral (303) para uma pluralidade correspondente de índices de frequência (301); em que o fluxo de bits compreende dados (163, 164) indicativos de uma pluralidade de blocos sequenciais (148) de coeficientes de transformada aplanados reconstruídos; em que um bloco (148) de coeficientes de transformada aplanados reconstruídos compreende uma pluralidade de coeficientes de transformada aplanados reconstruídos para a pluralidade correspondente de índices de frequência (301); - uma unidade de interpolação de envelope (104) configurada para determinar uma pluralidade de envelopes interpolados (136) para a pluralidade de blocos (148) de coeficientes de transformada aplanados reconstruídos, respectivamente, com base no envelope atual quantificado (134) e com base em um envelope quantificado an- terior (134); e - uma unidade de aplanamento inverso (108) configurada para determinar uma pluralidade de blocos (149) de coeficientes de transformada reconstruídos fornecendo-se a pluralidade de blocos correspondente (148) de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes interpolados (136), respectivamente; em que o sinal de fala reconstruído é determinado com base na pluralidade de blocos (149) de coeficientes de transformada reconstruídos.
12. Decodificador de fala à base de transformada (500), de acordo com a reivindicação 11, caracterizado pelo fato de que o envelope anterior quantificado (134) é associado a uma pluralidade de blocos anteriores (149) de coeficientes de transformada reconstruídos, precedendo diretamente a pluralidade de blocos (149) de coeficientes de transformada reconstruídos.
13. Decodificador de fala à base de transformada (500), de acordo com reivindicação 11, caracterizado pelo fato de que: - a pluralidade de blocos sequenciais (148) de coeficientes de transformada aplanados reconstruídos compreende um primeiro bloco (148) de coeficientes de transformada aplanados reconstruídos em um primeiro instante de tempo intermediário; - a unidade de interpolação de envelope (104) é configurada para determinar um valor de energia espectral (303) para um índice de frequência particular (301) de um primeiro envelope interpolado (136) interpolando-se os valores de energia espectral (303) para o índice de frequência particular (301) do envelope atual quantificado (135) e do envelope anterior quantificado (134) no primeiro instante de tempo intermediário; - o primeiro envelope interpolado (136) é associado ao primeiro bloco (148) de coeficientes de transformada aplanados recons- truídos.
14. Decodificador de fala à base de transformada (500), de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de interpolação de envelope (104) é configurada para determinar o valor de energia espectral (303) para o índice de frequência particular (301) do primeiro envelope interpolado (136) quantificando-se a interpolação entre os valores de energia espectral (303) para o índice de frequência particular (301) do envelope atual quantificado (135) e do envelope anterior quantificado (134).
15. Decodificador de fala à base de transformada (500), de acordo com a reivindicação 13, caracterizado pelo fato de que: - a pluralidade de blocos sequenciais (148) de coeficientes de transformada aplanados reconstruídos compreende um segundo bloco (148) de coeficientes de transformada aplanados reconstruídos em um segundo instante de tempo intermediário; - a unidade de interpolação de envelope (104) é configurada para determinar um valor de energia espectral (303) para o índice de frequência particular (301) de um segundo envelope interpolado (136) interpolando-se os valores de energia espectral (303) para o índice de frequência particular (301) do envelope atual quantificado (135) e do envelope anterior quantificado (134) no segundo instante de tempo intermediário; - o segundo envelope interpolado (136) é associado ao segundo bloco (148) de coeficientes de transformada aplanados reconstruídos; - o segundo bloco (148) de coeficientes de transformada aplanados reconstruídos é subsequente ao primeiro bloco (148) de coeficientes de transformada aplanados reconstruídos; e - o segundo instante de tempo intermediário é subsequente ao primeiro instante de tempo intermediário, em que uma diferença entre o segundo instante de tempo intermediário e o primeiro instante de tempo intermediário corresponde a um intervalo de tempo entre o segundo bloco de coeficientes de transformada aplanados reconstruídos e o primeiro bloco (148) de coeficientes de transformada aplanados reconstruídos.
16. Decodificador de fala à base de transformada (500), de acordo com a reivindicação 11, caracterizado pelo fato de que: - o fluxo de bits é indicativo de uma pluralidade de ganhos de envelope (137) para a pluralidade de blocos (148) de coeficientes de transformada aplanados reconstruídos, respectivamente; - o decodificador de fala à base de transformada (500) compreende adicionalmente uma unidade de refinamento de envelope (107) configurada para determinar uma pluralidade de envelopes ajustados (139) aplicando-se a pluralidade de ganhos de envelope (137) à pluralidade de envelopes interpolados (136), respectivamente; - a unidade de aplanamento inverso (108) é configurada para determinar a pluralidade de blocos (149) de coeficientes de transformada reconstruídos fornecendo-se a pluralidade de blocos correspondente (148) de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes ajustados (139), respectivamente.
17. Método para codificar um sinal de fala em um fluxo de bits caracterizado pelo fato de que compreende: - receber um conjunto (132, 332) de blocos; em que o conjunto (132, 332) de blocos compreende uma pluralidade de blocos sequenciais (131) de coeficientes de transformada; em que a pluralidade de blocos sequenciais (131) é indicativa de amostras do sinal de fala; em que um bloco (131) de coeficientes de transformada compreende uma pluralidade de coeficientes de transformada para uma pluralidade correspondente de índices de frequência (301); determinar um envelope atual (133) com base na pluralidade de blocos sequenciais (131) de coeficientes de transformada; em que o envelope atual (133) é indicativo de uma pluralidade de valores de energia espectral (303) para a pluralidade correspondente de índices de frequência (301); - determinar um envelope atual quantificado (134) quantificando-se o envelope atual (133); - determinar uma pluralidade de envelopes interpolados (136) para a pluralidade de blocos (131) de coeficientes de transformada, respectivamente, com base no envelope atual quantificado (133) e com base em um envelope quantificado anterior (134); - determinar uma pluralidade de blocos (140) de coeficientes de transformada aplanados aplanando-se a pluralidade de blocos correspondente (131) de coeficientes de transformada com o uso da pluralidade correspondente de envelopes interpolados (136), respectivamente; e - determinar o fluxo de bits com base na pluralidade de blocos (140) de coeficientes de transformada aplanados.
18. Método para decodificar um fluxo de bits para fornecer um sinal de fala reconstruído caracterizado pelo fato de que compreende: - determinar um envelope atual quantificado (134) a partir dos dados de envelope (161) compreendidos no fluxo de bits; em que o envelope atual quantificado (134) é indicativo de uma pluralidade de valores de energia espectral (303) para uma pluralidade correspondente de índices de frequência (301); em que o fluxo de bits compreende dados (163, 164) indicativos de uma pluralidade de blocos sequenciais (148) de coeficientes de transformada aplanados reconstruídos; em que um bloco (148) de coeficientes de transformada aplanados reconstruídos compreende uma pluralidade de coeficientes de transfor- mada aplanados reconstruídos para a pluralidade correspondente de índices de frequência (301); - para determinar uma pluralidade de envelopes interpolados (136) para a pluralidade de blocos (148) de coeficientes de transformada aplanados reconstruídos, respectivamente, com base no envelope atual quantificado (134) e com base em um envelope quantificado anterior (134); - determinar uma pluralidade de blocos (149) de coeficientes de transformada reconstruídos fornecendo-se a pluralidade de blocos correspondente (148) de coeficientes de transformada aplanados reconstruídos com um formato espectral, com o uso da pluralidade correspondente de envelopes interpolados (136), respectivamente; e - determinar o sinal de fala reconstruído com base na plura-lidade de blocos (149) de coeficientes de transformada reconstruídos.
19. Método para codificar um sinal de áudio que compreende um segmento de fala em um fluxo de bits caracterizado pelo fato de que compreende: - identificar o segmento de fala a partir do sinal de áudio; - determinar uma pluralidade de blocos sequenciais (131) de coeficientes de transformada com base no segmento de fala, com o uso de uma unidade de transformada; em que um bloco (131) de coeficientes de transformada compreende uma pluralidade de coeficientes de transformada para uma pluralidade correspondente de índices de frequência (301); em que a unidade de transformada é configurado para determinar blocos longos que compreendem um primeiro número de coeficientes de transformada e blocos curtos que compreendem um segundo número de coeficientes de transformada; em que o primeiro número é maior do que o segundo número; em que os blocos (131) da pluralidade de blocos sequenciais (131) são blocos curtos; e - codificar a pluralidade de blocos sequenciais (131) no flu- xo de bits, como definido na reivindicação 17.
20. Método para decodificar um fluxo de bits indicativo de um sinal de áudio que compreende a segmento de fala caracterizado pelo fato de que compreende: - determinar uma pluralidade de blocos sequenciais (149) de coeficientes de transformada reconstruídos com base nos dados (161, 162, 163, 164) compreendidos no fluxo de bits, como definido na reivindicação 18; e - determinar um segmento de fala reconstruído com base na pluralidade de blocos sequenciais (149) de coeficientes de trans-formada reconstruídos, com o uso de uma unidade de transformada inversa; em que um bloco (149) de coeficientes de transformada re-construídos compreende uma pluralidade de coeficientes de transfor-mada reconstruídos para uma pluralidade correspondente de índices de frequência (301); em que a unidade de transformada inversa (504) é configurada para processar blocos longos que compreendem um primeiro número de coeficientes de transformada reconstruídos e blocos curtos que compreendem um segundo número de coeficientes de transformada reconstruídos; em que o primeiro número é maior do que o segundo número; em que os blocos (149) da pluralidade de blocos sequenciais (149) são blocos curtos.
BR112015025139-0A 2013-04-05 2014-04-04 Codificador e decodificador de fala, método para codificar e decodificar um sinal de fala, método para codificar um sinal de áudio, e método para decodificar um fluxo de bits BR112015025139B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361808675P 2013-04-05 2013-04-05
US61/808,675 2013-04-05
US201361875553P 2013-09-09 2013-09-09
US61/875,553 2013-09-09
PCT/EP2014/056851 WO2014161991A2 (en) 2013-04-05 2014-04-04 Audio encoder and decoder

Publications (2)

Publication Number Publication Date
BR112015025139A2 BR112015025139A2 (pt) 2017-07-18
BR112015025139B1 true BR112015025139B1 (pt) 2022-03-15

Family

ID=50439392

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122020017853-1A BR122020017853B1 (pt) 2013-04-05 2014-04-04 Sistema e aparelho para codificar um sinal de voz em um fluxo de bits, e método e aparelho para decodificar sinal de áudio
BR112015025139-0A BR112015025139B1 (pt) 2013-04-05 2014-04-04 Codificador e decodificador de fala, método para codificar e decodificar um sinal de fala, método para codificar um sinal de áudio, e método para decodificar um fluxo de bits
BR122020017837-0A BR122020017837B1 (pt) 2013-04-05 2014-04-04 Método e aparelho para codificar sinal de áudio, e meio de armazenamento

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122020017853-1A BR122020017853B1 (pt) 2013-04-05 2014-04-04 Sistema e aparelho para codificar um sinal de voz em um fluxo de bits, e método e aparelho para decodificar sinal de áudio

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122020017837-0A BR122020017837B1 (pt) 2013-04-05 2014-04-04 Método e aparelho para codificar sinal de áudio, e meio de armazenamento

Country Status (20)

Country Link
US (4) US10043528B2 (pt)
EP (3) EP2981958B1 (pt)
JP (1) JP6227117B2 (pt)
KR (5) KR102150496B1 (pt)
CN (2) CN105247614B (pt)
AU (6) AU2014247000B2 (pt)
BR (3) BR122020017853B1 (pt)
CA (6) CA3029041C (pt)
DK (1) DK2981958T3 (pt)
ES (1) ES2665599T3 (pt)
HK (2) HK1218802A1 (pt)
HU (1) HUE039143T2 (pt)
IL (5) IL278164B (pt)
MX (1) MX343673B (pt)
MY (1) MY176447A (pt)
PL (1) PL2981958T3 (pt)
RU (3) RU2740359C2 (pt)
SG (1) SG11201507703SA (pt)
UA (1) UA114967C2 (pt)
WO (1) WO2014161991A2 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2665599T3 (es) 2013-04-05 2018-04-26 Dolby International Ab Codificador y descodificador de audio
EP3696816B1 (en) * 2014-05-01 2021-05-12 Nippon Telegraph and Telephone Corporation Periodic-combined-envelope-sequence generation device, periodic-combined-envelope-sequence generation method, periodic-combined-envelope-sequence generation program and recording medium
BR112017000629B1 (pt) * 2014-07-25 2021-02-17 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschug E.V. aparelho de codificação de sinal de áudio e método de codificação de sinal de áudio
US9530400B2 (en) * 2014-09-29 2016-12-27 Nuance Communications, Inc. System and method for compressed domain language identification
US10210871B2 (en) * 2016-03-18 2019-02-19 Qualcomm Incorporated Audio processing for temporally mismatched signals
CN106782573B (zh) * 2016-11-30 2020-04-24 北京酷我科技有限公司 一种编码生成aac文件的方法
ES2922155T3 (es) * 2017-06-19 2022-09-09 Rtx As Codificación y decodificación de señales de audio
CN110764422A (zh) * 2018-07-27 2020-02-07 珠海格力电器股份有限公司 电器的控制方法和装置
EP3751567B1 (en) 2019-06-10 2022-01-26 Axis AB A method, a computer program, an encoder and a monitoring device
WO2021104623A1 (en) * 2019-11-27 2021-06-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder, encoding method and decoding method for frequency domain long-term prediction of tonal signals for audio coding
CN112201283B (zh) * 2020-09-09 2022-02-08 北京小米松果电子有限公司 音频播放方法及装置
US11935546B2 (en) * 2021-08-19 2024-03-19 Semiconductor Components Industries, Llc Transmission error robust ADPCM compressor with enhanced response
WO2023056920A1 (en) * 2021-10-05 2023-04-13 Huawei Technologies Co., Ltd. Multilayer perceptron neural network for speech processing

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
JP3123286B2 (ja) * 1993-02-18 2001-01-09 ソニー株式会社 ディジタル信号処理装置又は方法、及び記録媒体
US5684920A (en) * 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
JP3087814B2 (ja) * 1994-03-17 2000-09-11 日本電信電話株式会社 音響信号変換符号化装置および復号化装置
US5751903A (en) 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE506379C3 (sv) * 1995-03-22 1998-01-19 Ericsson Telefon Ab L M Lpc-talkodare med kombinerad excitation
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US7039581B1 (en) * 1999-09-22 2006-05-02 Texas Instruments Incorporated Hybrid speed coding and system
US6978236B1 (en) 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
US6954800B2 (en) * 2000-04-07 2005-10-11 Broadcom Corporation Method of enhancing network transmission on a priority-enabled frame-based communications network
JP5037772B2 (ja) * 2000-04-24 2012-10-03 クゥアルコム・インコーポレイテッド 音声発話を予測的に量子化するための方法および装置
SE0001926D0 (sv) 2000-05-23 2000-05-23 Lars Liljeryd Improved spectral translation/folding in the subband domain
JP3590342B2 (ja) 2000-10-18 2004-11-17 日本電信電話株式会社 信号符号化方法、装置及び信号符号化プログラムを記録した記録媒体
US6636830B1 (en) * 2000-11-22 2003-10-21 Vialta Inc. System and method for noise reduction using bi-orthogonal modified discrete cosine transform
US6658383B2 (en) * 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6963842B2 (en) 2001-09-05 2005-11-08 Creative Technology Ltd. Efficient system and method for converting between different transform-domain signal representations
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US6988066B2 (en) * 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for narrow-band speech
US7599835B2 (en) * 2002-03-08 2009-10-06 Nippon Telegraph And Telephone Corporation Digital signal encoding method, decoding method, encoding device, decoding device, digital signal encoding program, and decoding program
AU2003234763A1 (en) * 2002-04-26 2003-11-10 Matsushita Electric Industrial Co., Ltd. Coding device, decoding device, coding method, and decoding method
KR101001170B1 (ko) * 2002-07-16 2010-12-15 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 코딩
SG108862A1 (en) * 2002-07-24 2005-02-28 St Microelectronics Asia Method and system for parametric characterization of transient audio signals
US7634399B2 (en) * 2003-01-30 2009-12-15 Digital Voice Systems, Inc. Voice transcoder
US7318027B2 (en) * 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
US7876966B2 (en) 2003-03-11 2011-01-25 Spyder Navigations L.L.C. Switching between coding schemes
US8359197B2 (en) * 2003-04-01 2013-01-22 Digital Voice Systems, Inc. Half-rate vocoder
WO2004097796A1 (ja) * 2003-04-30 2004-11-11 Matsushita Electric Industrial Co., Ltd. 音声符号化装置、音声復号化装置及びこれらの方法
US7460684B2 (en) * 2003-06-13 2008-12-02 Nielsen Media Research, Inc. Method and apparatus for embedding watermarks
US7325023B2 (en) 2003-09-29 2008-01-29 Sony Corporation Method of making a window type decision based on MDCT data in audio encoding
US8484036B2 (en) * 2005-04-01 2013-07-09 Qualcomm Incorporated Systems, methods, and apparatus for wideband speech coding
DK1760696T3 (en) * 2005-09-03 2016-05-02 Gn Resound As Method and apparatus for improved estimation of non-stationary noise to highlight speech
JP5089394B2 (ja) * 2005-09-30 2012-12-05 パナソニック株式会社 音声符号化装置および音声符号化方法
RU2427978C2 (ru) * 2006-02-21 2011-08-27 Конинклейке Филипс Электроникс Н.В. Кодирование и декодирование аудио
US7590523B2 (en) 2006-03-20 2009-09-15 Mindspeed Technologies, Inc. Speech post-processing using MDCT coefficients
US20070270987A1 (en) * 2006-05-18 2007-11-22 Sharp Kabushiki Kaisha Signal processing method, signal processing apparatus and recording medium
US7930173B2 (en) 2006-06-19 2011-04-19 Sharp Kabushiki Kaisha Signal processing method, signal processing apparatus and recording medium
US8135047B2 (en) * 2006-07-31 2012-03-13 Qualcomm Incorporated Systems and methods for including an identifier with a packet associated with a speech signal
US7987089B2 (en) 2006-07-31 2011-07-26 Qualcomm Incorporated Systems and methods for modifying a zero pad region of a windowed frame of an audio signal
EP2095560B1 (en) * 2006-10-11 2015-09-09 The Nielsen Company (US), LLC Methods and apparatus for embedding codes in compressed audio data streams
KR101406113B1 (ko) * 2006-10-24 2014-06-11 보이세지 코포레이션 스피치 신호에서 천이 프레임을 코딩하기 위한 방법 및 장치
PL3288027T3 (pl) 2006-10-25 2021-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Urządzenie i sposób do generowania wartości podpasm audio o wartościach zespolonych
WO2008053970A1 (fr) 2006-11-02 2008-05-08 Panasonic Corporation Dispositif de codage de la voix, dispositif de décodage de la voix et leurs procédés
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
US8214200B2 (en) 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
AU2008261287B2 (en) * 2007-06-11 2010-12-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder for encoding an audio signal having an impulse- like portion and stationary portion, encoding methods, decoder, decoding method; and encoded audio signal
KR101411901B1 (ko) 2007-06-12 2014-06-26 삼성전자주식회사 오디오 신호의 부호화/복호화 방법 및 장치
EP2015293A1 (en) * 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
EP2186087B1 (en) * 2007-08-27 2011-11-30 Telefonaktiebolaget L M Ericsson (PUBL) Improved transform coding of speech and audio signals
EP2191467B1 (en) 2007-09-12 2011-06-22 Dolby Laboratories Licensing Corporation Speech enhancement
KR101373004B1 (ko) * 2007-10-30 2014-03-26 삼성전자주식회사 고주파수 신호 부호화 및 복호화 장치 및 방법
US9177569B2 (en) * 2007-10-30 2015-11-03 Samsung Electronics Co., Ltd. Apparatus, medium and method to encode and decode high frequency signal
CN101465122A (zh) 2007-12-20 2009-06-24 株式会社东芝 语音的频谱波峰的检测以及语音识别方法和系统
EP2077550B8 (en) 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
CN101527138B (zh) * 2008-03-05 2011-12-28 华为技术有限公司 超宽带扩展编码、解码方法、编解码器及超宽带扩展系统
JP2011518345A (ja) * 2008-03-14 2011-06-23 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション スピーチライク信号及びノンスピーチライク信号のマルチモードコーディング
CN101572586B (zh) * 2008-04-30 2012-09-19 北京工业大学 编解码方法、装置及系统
AU2009267525B2 (en) * 2008-07-11 2012-12-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal synthesizer and audio signal encoder
CN102150201B (zh) * 2008-07-11 2013-04-17 弗劳恩霍夫应用研究促进协会 提供时间扭曲激活信号以及使用该时间扭曲激活信号对音频信号编码
KR20100007738A (ko) * 2008-07-14 2010-01-22 한국전자통신연구원 음성/오디오 통합 신호의 부호화/복호화 장치
US8463603B2 (en) * 2008-09-06 2013-06-11 Huawei Technologies Co., Ltd. Spectral envelope coding of energy attack signal
US8407046B2 (en) 2008-09-06 2013-03-26 Huawei Technologies Co., Ltd. Noise-feedback for spectral envelope quantization
WO2010028301A1 (en) 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control
US8352279B2 (en) 2008-09-06 2013-01-08 Huawei Technologies Co., Ltd. Efficient temporal envelope coding approach by prediction between low band signal and high band signal
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
EP2392005B1 (en) * 2009-01-28 2013-10-16 Dolby International AB Improved harmonic transposition
US8848788B2 (en) * 2009-05-16 2014-09-30 Thomson Licensing Method and apparatus for joint quantization parameter adjustment
MY163358A (en) * 2009-10-08 2017-09-15 Fraunhofer-Gesellschaft Zur Förderung Der Angenwandten Forschung E V Multi-mode audio signal decoder,multi-mode audio signal encoder,methods and computer program using a linear-prediction-coding based noise shaping
MY167980A (en) * 2009-10-20 2018-10-09 Fraunhofer Ges Forschung Multi- mode audio codec and celp coding adapted therefore
JP5316896B2 (ja) 2010-03-17 2013-10-16 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム
US8600737B2 (en) * 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
EP4120248B1 (en) * 2010-07-08 2023-12-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder using forward aliasing cancellation
US9047875B2 (en) 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
US8560330B2 (en) 2010-07-19 2013-10-15 Futurewei Technologies, Inc. Energy envelope perceptual correction for high band coding
KR101826331B1 (ko) * 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
CN102436820B (zh) 2010-09-29 2013-08-28 华为技术有限公司 高频带信号编码方法及装置、高频带信号解码方法及装置
CN103229235B (zh) * 2010-11-24 2015-12-09 Lg电子株式会社 语音信号编码方法和语音信号解码方法
ES2529025T3 (es) 2011-02-14 2015-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para procesar una señal de audio decodificada en un dominio espectral
CN103582913B (zh) * 2011-04-28 2016-05-11 杜比国际公司 有效内容分类及响度估计
EP2727105B1 (en) * 2011-06-30 2015-08-12 Telefonaktiebolaget LM Ericsson (PUBL) Transform audio codec and methods for encoding and decoding a time segment of an audio signal
WO2013066238A2 (en) * 2011-11-02 2013-05-10 Telefonaktiebolaget L M Ericsson (Publ) Generation of a high band extension of a bandwidth extended audio signal
ES2762325T3 (es) * 2012-03-21 2020-05-22 Samsung Electronics Co Ltd Procedimiento y aparato de codificación/decodificación de frecuencia alta para extensión de ancho de banda
WO2014046526A1 (ko) * 2012-09-24 2014-03-27 삼성전자 주식회사 프레임 에러 은닉방법 및 장치와 오디오 복호화방법 및 장치
SG10201709631PA (en) 2013-01-08 2018-01-30 Dolby Int Ab Model based prediction in a critically sampled filterbank
ES2665599T3 (es) * 2013-04-05 2018-04-26 Dolby International Ab Codificador y descodificador de audio
US9487224B1 (en) * 2015-09-22 2016-11-08 Siemens Industry, Inc. Mechanically extendable railroad crossing gate

Also Published As

Publication number Publication date
AU2017201872A1 (en) 2017-04-06
US20230238011A1 (en) 2023-07-27
BR122020017853B1 (pt) 2023-03-14
RU2015147276A (ru) 2017-05-16
BR122020017837B1 (pt) 2022-08-23
EP3352167B1 (en) 2019-10-02
US10515647B2 (en) 2019-12-24
SG11201507703SA (en) 2015-10-29
KR102245916B1 (ko) 2021-04-30
HK1250836A1 (zh) 2019-01-11
KR20160125540A (ko) 2016-10-31
IL258331A (en) 2018-05-31
CA2908625C (en) 2017-10-03
US20160064007A1 (en) 2016-03-03
IL294836A (en) 2022-09-01
EP3352167A1 (en) 2018-07-25
EP2981958A2 (en) 2016-02-10
UA114967C2 (uk) 2017-08-28
RU2630887C2 (ru) 2017-09-13
RU2017129552A (ru) 2019-02-04
US20180322886A1 (en) 2018-11-08
RU2017129566A3 (pt) 2020-11-02
AU2023200174B2 (en) 2024-02-22
JP6227117B2 (ja) 2017-11-08
AU2017201874A1 (en) 2017-04-06
CA2908625A1 (en) 2014-10-09
CA2948694A1 (en) 2014-10-09
RU2017129552A3 (pt) 2020-11-02
AU2018260843B2 (en) 2020-09-03
AU2014247000B2 (en) 2017-04-20
MY176447A (en) 2020-08-10
KR20190112191A (ko) 2019-10-02
RU2740690C2 (ru) 2021-01-19
IL252640B (en) 2018-04-30
KR20150127654A (ko) 2015-11-17
AU2020281040A1 (en) 2021-01-07
AU2017201874B2 (en) 2018-08-09
HUE039143T2 (hu) 2018-12-28
HK1218802A1 (zh) 2017-03-10
CA3029033C (en) 2021-03-30
US10043528B2 (en) 2018-08-07
CN109712633A (zh) 2019-05-03
AU2018260843A1 (en) 2018-11-22
CN105247614A (zh) 2016-01-13
CA2997882C (en) 2020-06-30
KR20210046846A (ko) 2021-04-28
IL241739A (en) 2017-06-29
PL2981958T3 (pl) 2018-07-31
RU2740359C2 (ru) 2021-01-13
CA2997882A1 (en) 2014-10-09
IL241739A0 (en) 2015-11-30
KR102028888B1 (ko) 2019-11-08
CN105247614B (zh) 2019-04-05
ES2665599T3 (es) 2018-04-26
CN109712633B (zh) 2023-07-07
CA3029037A1 (en) 2014-10-09
AU2014247000A1 (en) 2015-10-08
IL252640A0 (en) 2017-07-31
EP3671738A1 (en) 2020-06-24
CA2948694C (en) 2019-02-05
KR20200103881A (ko) 2020-09-02
AU2020281040B2 (en) 2022-10-13
CA3029041C (en) 2021-03-30
MX343673B (es) 2016-11-16
WO2014161991A3 (en) 2015-04-23
US11621009B2 (en) 2023-04-04
MX2015013927A (es) 2015-12-11
US20200126574A1 (en) 2020-04-23
WO2014161991A2 (en) 2014-10-09
IL258331B (en) 2020-11-30
JP2016514857A (ja) 2016-05-23
KR102383819B1 (ko) 2022-04-08
CA3029037C (en) 2021-12-28
CA3029033A1 (en) 2014-10-09
EP2981958B1 (en) 2018-03-07
KR101739789B1 (ko) 2017-05-25
IL278164B (en) 2022-08-01
IL278164A (en) 2020-11-30
RU2017129566A (ru) 2019-02-05
AU2017201872B2 (en) 2018-08-09
AU2023200174A1 (en) 2023-02-16
CA3029041A1 (en) 2014-10-09
DK2981958T3 (en) 2018-05-28
KR102150496B1 (ko) 2020-09-01
BR112015025139A2 (pt) 2017-07-18

Similar Documents

Publication Publication Date Title
AU2023200174B2 (en) Audio encoder and decoder

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]
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 04/04/2014, OBSERVADAS AS CONDICOES LEGAIS.

B25G Requested change of headquarter approved

Owner name: DOLBY INTERNATIONAL AB (IE)