BR112014024648B1 - Método e sistema para codificar por celp um sinal de áudio/voz e método de busca rápida de um livro-código mixado - Google Patents

Método e sistema para codificar por celp um sinal de áudio/voz e método de busca rápida de um livro-código mixado Download PDF

Info

Publication number
BR112014024648B1
BR112014024648B1 BR112014024648-3A BR112014024648A BR112014024648B1 BR 112014024648 B1 BR112014024648 B1 BR 112014024648B1 BR 112014024648 A BR112014024648 A BR 112014024648A BR 112014024648 B1 BR112014024648 B1 BR 112014024648B1
Authority
BR
Brazil
Prior art keywords
codebook
vector
entry
group
mixed
Prior art date
Application number
BR112014024648-3A
Other languages
English (en)
Other versions
BR112014024648A2 (pt
BR112014024648A8 (pt
Inventor
Yang Gao
Original Assignee
Huawei Technologies Co., Ltd
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 Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112014024648A2 publication Critical patent/BR112014024648A2/pt
Publication of BR112014024648A8 publication Critical patent/BR112014024648A8/pt
Publication of BR112014024648B1 publication Critical patent/BR112014024648B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/087Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters using mixed excitation models, e.g. MELP, MBE, split band LPC or HVXC
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/26Pre-filtering or post-filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

SISTEMA E MÉTODO PARA CODIFICAR UM SINAL DE ÁUDIO/VOZ E MÉTODO DE BUSCA RÁPIDA DE UM LIVRO-CÓDIGO MIXADO. De acordo com uma concretização, um método para codificar um sinal de áudio/voz inclui determinar um vetor de livro-código (702, 802, 902, 1002, 1102, 1202) baseado em um sinal de áudio/voz que chega, onde o vetor de livro-código mixado inclui a soma de uma primeira entrada de livro-código de um primeiro livro-código (704, 804, 904, 1004, 1104, 1204) com uma segunda entrada de livro-código de um segundo livro-código (705, 805, 905, 1005, 1105, 1205). O método adicionalmente inclui gerar um sinal de áudio codificado com base no vetor de livro-código mixado determinado, e transmitir o índice de excitação codificado do vetor de livro-código mixado determinado.

Description

CAMPO TÉCNICO
[0001] A presente invenção refere-se geralmente ao campo de codificação de sinal. Em particular, a presente invenção se encontra no campo de codificação de voz com taxa de bit baixa.
ANTECEDENTE
[0002] Tradicionalmente, todos os métodos paramétricos para codificação de voz utilizam a redundância inerente ao sinal de voz para reduzir a quantidade de informação que deve ser enviada, e para estimar os parâmetros de amostras de voz de um sinal em intervalos curtos. Qual redundância primariamente surge a partir da repetição de formas de onda de voz em uma taxa quase periódica, e do envelope espectral de mudança lenta do sinal de voz.
[0003] A redundância das formas de onda de voz pode ser considerada com respeito a diversos diferentes tipos de sinal de voz, tal como voz falada ou não falada. Para uma voz falada, o sinal de voz é essencialmente periódico, no entanto, esta periodicidade pode ser variável ao longo de duração de um segmento de voz, e a forma da onda periódica usualmente muda gradualmente de segmento para segmento. Uma codificação de voz com uma taxa de bit baixa poderia se beneficiar grandemente explorando tal periodicidade. O período de voz falada também é chamado passo (pitch), e a previsão do passo frequentemente é chamada “Previsão de Longo Prazo” (LTP de Long Term Prediction). Para uma voz não falada, o sinal é mais parecido com um ruído randômico e tem uma quantidade menor de previsibilidade.
[0004] Em qualquer caso, codificação paramétrica pode ser usada para reduzir a redundância dos segmentos de voz, separando o componente de excitação do sinal de voz do componente de envelope espectral. O envelope espectral de mudança lenta pode ser representado pela Codificação de Previsão Linear (LPC de Linear Prediction Coding) também chamada Previsão de Curto Prazo (STP de Short Term Prediction). Uma codificação de voz com taxa de bit baixa também pode se beneficiar da Previsão de Prazo Curto. A vantagem da codificação deriva da taxa lenta com que o parâmetro muda. Ainda é raro que os parâmetros sejam significativamente diferentes dos valores mantidos em poucos milissegundos. Assim, em uma taxa de amostragem de 8, 12,8, ou 16 kHz, o algoritmo de codificação de voz é tal que a duração do quadro (frame) nominal fica na faixa de dez a trinta milissegundos, sendo que uma duração de quadro de vinte milissegundos é a mais comum. Em normas mais recentes bem conhecidas, tais como G,723,1, G,729, G,718, EFR, SMV, AMR, VMR-WB ou AMR-WB, sendo que a Técnica de Previsão Linear Excitada por Código (“CELP” de Code Excited Linear Prediction Technic) vem sendo adotada, que é comumente entendido como uma combinação técnica de Excitação Codificada, Previsão de Longo Prazo, e Previsão de Curto Prazo. A Codificação de Som por Previsão Linear Excitada por Código (CELP de Code-Excited Linear Prediction) é um princípio de algoritmo muito popular na compressão de voz, embora os detalhes do CELP para diferentes CODECS sejam significativamente diferentes.
[0005] A FIGURA 1 ilustra um codificador CELP convencional, onde o erro ponderado 109 entre a voz sintetizada 102 e a voz original 101 é minimizado, frequentemente usando a chamada solução de análise por síntese. W(z) é um filtro de ponderação de erro 110, 1/B(z) um filtro de previsão linear de longo prazo 105, e 1/A(z) um filtro de previsão linear de curto prazo 103. A excitação codificada 108, também chamada excitação de livro-código (codebook) fixo, é amplificada por um ganho Gc 106, antes de prosseguir através de filtros lineares. O filtro de previsão linear de curto prazo 103 é obtido analisando o sinal original 101 e sendo representado por um conjunto de coeficientes:
Figure img0001
[0006] O filtro de ponderação 110 em alguma extensão é relacionado ao filtro linear de curto prazo acima. Uma forma típica do filtro de ponderação é dada por:
Figure img0002
onde β< a , 0 < β< , 0 <a - 1. No CODEC padrão ITU-T Grupo 718 o filtro de ponderação perceptivo tem a seguinte forma:
Figure img0003
onde,
Figure img0004
e β1 é igual a 0,68.
[0007] A previsão de longo prazo 105 depende do passo (pitch) e ganho de passo (pitch gain). Um passo pode ser estimado, por exemplo, a partir do sinal original ou a partir de um sinal original ponderado. A função de previsão de longo prazo no principal pode ser expressa por:
Figure img0005
[0008] A excitação codificada 108 em geral compreende um sinal tipo pulso ou sinal tipo ruído, matematicamente formados ou armazenados em um livro-código. Finalmente, o índice de excitação codificado, índice de ganho quantizado, índice de parâmetro de previsão de longo prazo quantizado, e índice de parâmetro de previsão de curto prazo quantizado são transmitidos para o decodificador.
[0009] A FIGURA 2 ilustra um decodificador inicial que adiciona um bloco de pós-processamento 207 depois da voz sintetizada 206. O decodificador é uma combinação de diversos blocos que são excitação codificada 201, ganho de excitação 202, previsão de longo prazo 203, previsão de curto prazo 205, e pós-processamento 207. Todos eles, exceto bloco de pós-processamento 207, tendo a mesma definição usada para o codificador da FIGURA 1. O bloco de pós- processamento 207 também pode incluir pós-processamento de curto prazo e pós-processamento de longo prazo.
[00010] A FIGURA 3 mostra um codificador CELP básico que executa a previsão periódica de longo prazo, usando o livro-código adaptativo 307 contendo excitação sintetizada anterior 304 ou repetindo o ciclo de passo de excitação anterior em um período de passo. Um atraso de passo pode ser codificado em um valor inteiro, quando grande ou longo. E um atraso de passo pode ser codificado em um valor fracional mais preciso se pequeno ou curto. A informação periódica do passo é empregada para gerar o componente adaptativo da excitação. Este componente de excitação então é amplificado pelo ganho Gp 305 (“ganho de passo”). O segundo componente de excitação é gerado pelo bloco de excitação codificado 308 amplificado usando ganho Gc 306. Gc também é chamado “ganho de livro-código fixo”, uma vez que a excitação codificada frequentemente provém de um livro-código fixo. Os dois componentes de excitação amplificados são adicionados em conjunto antes de seguirem através do filtro de previsão linear de curto prazo 303. Os dois ganhos (Gp e Gc) são quantizados e enviados a um decodificador.
[00011] A FIGURA 4 ilustra um decodificador convencional que corresponde ao codificador da FIGURA 3, que adiciona um bloco de pós-processamento 408 depois da voz sintetizada 407. Este decodificador é similar àquele da FIGURA 2 com adição do livro- código adaptativo 307. O decodificador é uma combinação de diversos blocos que são excitação codificada 402, livro-código adaptativo 401, previsão de curto prazo 406, e pós-processamento 408. Todos os blocos, exceto bloco de pós-processamento 408, têm a mesma definição usada para o codificador da FIGURA 3. O bloco de pós- processamento 408 pode adicionalmente incluir pós-processamento de curto prazo e longo prazo.
[00012] A previsão de longo prazo desempenha um papel muito importante para a codificação de voz falada, porque a voz falada tem forte periodicidade. Os ciclos de passo adjacentes de voz falada são similares, o que significa matematicamente que o ganho de passo Gp na expressão de excitação abaixo é alto ou próximo de 1,
Figure img0006
onde, ep(n) é um subquadro de séries de amostra indexadas por n, vindo do livro-código adaptativo 307, que compreende a excitação anterior 304; ep(n) pode ser adaptavelmente filtrado passa-baixa, uma vez que a área de frequência baixa frequentemente é mais periódica ou mais harmônica que a área de alta frequência; ec(n) vem do livro- código de excitação codificada 308 (também chamado “livro-código fixo”) que é a contribuição da excitação corrente; e ec(n) também pode ser intensificado usando amplificação de filtro passa-alta, amplificação de passo, amplificação por dispersão, amplificação formant; etc. Para voz falada, a contribuição de ep(n) vindo do livro-código adaptativo pode ser dominante, e o ganho de passo Gp 305 pode ser um valor em torno de 1. A excitação usualmente é atualizada para cada subquadro. Um tamanho de quadro típico é 20 milissegundos, enquanto o tamanho típico de subquadro é 5 milissegundos.
SUMÁRIO DA INVENÇÃO
[00013] De acordo com uma concretização, um método para codificar um sinal de áudio/voz compreende determinar um vetor de livro-código, baseado em um sinal de áudio/voz de entrada, sendo que o vetor de livro-código misturado compreende uma soma de uma primeira entrada de livro-código de um primeiro livro-código e uma segunda entrada de livro-código de um segundo livro-código. O método adicionalmente inclui gerar um sinal de áudio codificado com base no vetor de livro-código mixado determinado, e transmitir o índice de excitação codificado do vetor de livro-código mixado determinado.
[00014] De acordo com um primeiro aspecto, uma concretização da presente invenção provê um método para codificar um sinal de áudio/voz, o método compreendendo : determinar um vetor de livro-código mixado baseado em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo a soma de uma primeira entrada de livro-código de um primeiro livro-código e uma segunda entrada de livro-código de um segundo livro-código, onde o primeiro livro-código compreende entradas tipo pulso e o segundo livro-código compreende entradas tipo ruído; gerar um sinal de áudio codificado baseado no vetor de livro-código mixado determinado, e transmitir um índice de excitação codificado do vetor de livro-código mixado determinado, onde a determinação e a geração são realizadas usando um codificador de áudio baseado em hardware;
[00015] Em uma primeira maneira possível de implementação do primeiro aspecto, onde os primeiro e segundo livros-código compreendem livros-código fixos.
[00016] Em uma segunda maneira possível de implementação do primeiro aspecto, onde a determinação do vetor de livro-código mixado compreende: computar uma primeira correlação entre um vetor alvo filtrado e as entradas filtradas no primeiro livro-código, onde o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo das primeiras correlações mais altas; computar as correlações entre um vetor alvo filtrado e as entradas filtradas no segundo livro-código; determinar um segundo grupo de segundas correlações mais altas; e computar uma primeira função de critério de combinações dos primeiro e segundo grupos, onde a primeira função de critério compreende uma função de uma do primeiro grupo das primeiras correlações mais altas, uma do segundo grupo de segundas correlações mais altas, e a energia das correspondentes entradas a partir do primeiro livro-código e do segundo livro-código.
[00017] Referindo-se à segunda maneira possível de implementação do primeiro aspecto, em uma terceira maneira possível de implementação, adicionalmente compreendendo: determinar um terceiro grupo de correlações candidatas baseado nas primeiras funções de critério computadas mais altas; e selecionar o vetor de livro-código mixado baseado em uma segunda função de critério para o terceiro grupo, onde o vetor de livro- código mixado corresponde às entradas de livro-código a partir do primeiro livro-código e do segundo livro-código associados ao valor mais alto da segunda função de critério.
[00018] Referindo-se à terceira maneira possível de implementação do primeiro aspecto, em uma quarta maneira possível de implementação, onde: a primeira função de critério é:
Figure img0007
onde, RCB1(i) é a correlação entre o vetor alvo filtrado e a i-ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e a j-ésima entrada do segundo livro-código, ECB1(i) é a energia da i-ésima entrada do primeiro livro-código, e ECB2(j) é a energia da j-ésima entrada do segundo livro-código,
Figure img0008
é um número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0009
é o número de entradas de segundo livro-código no segundo grupo, e a segunda função de critério é
Figure img0010
onde zCB1(ik) é um vetor filtrado da i-ésima entrada do primeiro livro- código, e zCB2(jk) é o vetor filtrado da j-ésima entrada do segundo livro- código, e k é o número de entradas no terceiro grupo.
[00019] Referindo-se à segunda maneira possível de implementação do primeiro aspecto em uma quinta maneira possível de implementação, onde seleciona o vetor de livro-código mixado baseado na primeira função de critério computada mais alta.
[00020] Referindo-se à quinta maneira possível de implementação do primeiro aspecto, em uma sexta maneira possível de implementação, onde a primeira função de critério é:
Figure img0011
onde, RCB1(i) é a correlação entre o primeiro vetor alvo filtrado e a i- ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e a j-ésima entrada do segundo livro-código, ECB1(i) é a energia da i-ésima entrada do primeiro livro-código, e ECB2(j) é a energia da j-ésima entrada do segundo livro-código,
Figure img0012
é um número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0013
é o número de entradas de segundo livro-código no segundo grupo.
[00021] Referindo-se à segunda maneira possível de implementação do primeiro aspecto, em uma sétima maneira possível de implementação, adicionalmente compreendendo calcular as energias das correspondentes entradas a partir do primeiro livro- código e do segundo livro-código.
[00022] Referindo-se à segunda maneira possível de implementação do primeiro aspecto, em uma oitava maneira possível de implementação, onde a energia das entradas correspondentes a partir do primeiro livro-código e do segundo livro-código são armazenadas na memória.
[00023] Referindo-se à segunda maneira possível de implementação do primeiro aspecto, em uma nona maneira possível de implementação, onde o primeiro grupo compreende mais entradas que o segundo grupo.
[00024] Em uma décima maneira possível de implementação do primeiro aspecto, adicionalmente compreendendo: aplicar a primeira função de ênfase à primeira entrada de livro-código; e aplicar uma segunda função de ênfase à segunda entrada de livro-código.
[00025] Referindo-se à décima maneira possível de implementação do primeiro aspecto, em uma décima primeira maneira possível de implementação, onde: a primeira função de ênfase compreende uma função de filtragem passa-baixa; a segunda função de ênfase compreende uma função de filtragem passa-alta.
[00026] Em uma décima segunda maneira possível de implementação do primeiro aspecto, onde o codificador de áudio baseado em hardware compreende um processador.
[00027] Em uma décima terceira maneira possível de implementação do primeiro aspecto, onde o codificador de áudio baseado no hardware compreende um hardware dedicado.
[00028] De acordo com um segundo aspecto, uma concretização da presente invenção provê um sistema para codificar um sinal de áudio/voz, o sistema compreendendo : um codificador de áudio baseado em hardware configurado para: determinar um vetor de livro-código mixado, baseado em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo a soma de uma primeira entrada de livro-código de um livro-código tipo pulso e uma segunda entrada de livro-código de um livro-código tipo ruído; gerar um sinal de áudio/voz codificado baseado no vetor de livro-código mixado determinado, e transmitir um índice de código de excitação do vetor de livro-código mixado determinado.
[00029] Em uma primeira maneira possível de implementação do segundo aspecto, em que o codificador de áudio baseado em hardware é adicionalmente configurado para: computar primeiras correlações entre um vetor alvo filtrado e as entradas no livro-código tipo pulso, onde o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo das primeiras correlações mais altas; computar as correlações entre um vetor alvo filtrado e as entradas no livro-código tipo ruído; determinar um segundo grupo das correlações mais altas; e computar uma primeira função de critério de combinações dos primeiro e segundo grupos, onde a primeira função de critério compreende uma função de uma do primeiro grupo de primeiras correlações mais altas, uma do segundo grupo de segundas correlações mais altas e a energia das correspondentes entradas a partir do livro-código tipo pulso e do livro-código tipo ruído.
[00030] Referindo-se à primeira maneira possível de implementação do segundo aspecto, em uma segunda maneira possível de implementação, adicionalmente compreendendo uma memória configurada para armazenar os valores da energia das correspondentes entradas a partir do livro-código tipo pulso e do livro- código tipo ruído.
[00031] Referindo-se à primeira maneira possível de implementação do segundo aspecto, em uma terceira maneira possível de implementação, onde o codificador de áudio baseado em hardware é adicionalmente configurado para selecionar o vetor de livro-código mixado baseado na primeira função de critério computada mais alta.
[00032] Referindo-se à primeira maneira possível de implementação do segundo aspecto, em uma quarta maneira possível de implementação, onde a primeira função de critério é:
Figure img0014
onde, RCB1(i) é a correlação entre o vetor alvo filtrado e a i-ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e a j-ésima entrada do segundo livro-código, ECB1(i) é a energia da i-ésima entrada do primeiro livro-código, e ECB2(j) é a energia da j-ésima entrada do segundo livro-código,
Figure img0015
é um número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0016
é o número de entradas de segundo livro-código no segundo grupo.
[00033] Em uma quinta maneira possível de implementação do segundo aspecto, onde o codificador de áudio baseado em hardware compreende um processador.
[00034] Em uma sexta maneira possível de implementação do segundo aspecto, onde o codificador de áudio baseado em hardware compreende um hardware dedicado.
[00035] De acordo com o terceiro aspecto, uma concretização da presente invenção provê um método de busca rápida de um livro- código mixado para codificar um sinal de áudio/voz, o método compreendendo: determinar um vetor de livro-código mixado baseado em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo a soma de uma primeira entrada de livro-código de um primeiro livro-código e uma segunda entrada de livro-código de um segundo livro-código; computar as primeiras correlações entre um vetor alvo filtrado e as entradas filtradas no primeiro livro-código, onde o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo de primeiras correlações mais altas; computar as correlações entre um vetor alvo filtrado e as entradas filtradas no segundo livro-código; determinar um segundo grupo das segundas correlações mais altas; computar uma primeira função de critério de combinações dos primeiro e segundo grupos, onde a primeira função de critério compreende uma função de uma do primeiro grupo de primeiras correlações mais altas, uma do segundo grupo de segundas correlações mais altas, e a energia das correspondentes entradas a partir do primeiro livro-código e do segundo livro-código; determinar um terceiro grupo de correlações candidatas baseado nas primeiras funções de critério computadas mais altas, selecionar o vetor de livro-código mixado baseado na aplicação de uma segunda função de critério no terceiro grupo, onde o vetor de livro-código mixado corresponde às entradas de livro-código a partir do primeiro livro-código e do segundo livro-código, associadas ao valor mais alto da segunda função de critério; gerar um sinal de áudio codificado baseado no vetor de livro-código mixado determinado; e transmitir um índice de excitação codificado do vetor de livro-código mixado determinado, onde a determinação e a geração são realizadas usando um codificador de áudio baseado em hardware.
[00036] Em uma primeira maneira possível de implementação do terceiro aspecto, onde: a primeira função de critério é:
Figure img0017
onde, RCB1(i) é a correlação entre o primeiro vetor alvo filtrado e a i- ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e a j-ésima entrada do segundo livro-código, ECB1(i) é a energia da i-ésima entrada do primeiro livro-código, e ECB2(j) é a energia da j-ésima entrada do segundo livro-código,
Figure img0018
é um número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0019
é o número de entradas de segundo livro-código no segundo grupo; e a segunda função de critério é:
Figure img0020
onde, zCB1(ik) é um vetor filtrado da i-ésima entrada do primeiro livro- código e zCB2( jk) é o vetor filtrado da j-ésima entrada do segundo livro- código, e k é o número de entradas no terceiro grupo.
[00037] Em uma segunda maneira possível de implementação do terceiro aspecto, onde o primeiro livro-código compreende um livro- código tipo pulso e o segundo livro-código compreende um livro-código tipo ruído.
BREVE DESCRIÇÃO DOS DESENHOS
[00038] Para um entendimento mais completo da presente invenção e de suas vantagens, faz-se referência à descrição que se segue, que deve ser tomada em conjunção com desenhos anexos, nos quais:
[00039] a FIGURA 1 ilustra um codificador de voz CELP convencional;
[00040] a FIGURA 2 ilustra um decodificador de voz CELP convencional;
[00041] a FIGURA 3 ilustra um decodificador de voz CELP convencional que utiliza um livro-código adaptativo;
[00042] a FIGURA 4 ilustra um decodificador CELP convencional que utiliza um livro-código adaptativo;
[00043] a FIGURA 5 ilustra uma estrutura FCB convencional, que contém vetores candidatos tipo ruído para construir uma excitação codificada;
[00044] a FIGURA 6 ilustra uma estrutura FCB convencional, que contém vetores candidatos tipo pulso para construir excitação codificada;
[00045] a FIGURA 7 ilustra uma estrutura de concretização de FCB mixado pulso-ruído;
[00046] a FIGURA 8 ilustra uma estrutura de concretização de FCB mixado pulso-ruído;
[00047] a FIGURA 9 ilustra uma estrutura geral de uma concretização de FCB mixado pulso-ruído;
[00048] a FIGURA 10 ilustra uma estrutura geral adicional de uma concretização de FCB mixado pulso-ruído;
[00049] a FIGURA 11 ilustra uma estrutura geral adicional de uma concretização de FCB mixado pulso-ruído;
[00050] a FIGURA 12 ilustra uma estrutura mais geral de uma concretização de FCB mixado;
[00051] a FIGURA 13 ilustra um diagrama de blocos de um sistema de codificação de excitação;
[00052] a FIGURA 14 ilustra um diagrama de blocos de uma concretização de sistema de codificação de excitação baseado em livro-código mixado;
[00053] as FIGURAS 15a e 15b ilustram fluxogramas de métodos da concretização; e
[00054] a FIGURA 16 ilustra um sistema de comunicação da concretização.
[00055] Os correspondentes, números, e símbolos nas diferentes FIGURAS geralmente referem-se a partes correspondentes, a menos que indicado de modo diferente. As FIGURAS são desenhadas para ilustrar claramente os aspectos relevantes das concretizações preferidas e não estão desenhados em escala. Para ilustrar certas concretizações, de modo mais claro, uma letra indicando variações de material, estrutura, ou Etapa de processo, segue o número da figura.
DESCRIÇÃO DETALHADA DAS CONCRETIZAÇÕES ILUSTRATIVAS
[00056] A execução e a utilização das concretizações presentemente preferidas serão discutidas em detalhes. No entanto, deve ser apreciado que a presente invenção provê muitos conceitos inventivos aplicáveis, que podem ser incorporados via uma ampla variedade de contextos específicos. As concretizações específicas discutidas aqui têm um caráter meramente ilustrativo de meios específicos para executar e usar a presente invenção, sem, no entanto, limitar o escopo da mesma.
[00057] A presente invenção será descrita com respeito às concretizações em um contexto específico, especificamente, para um codificador e decodificador de áudio baseado em CELP. Deve ser entendido que as concretizações da presente invenção também poderão ser direcionadas a outros sistemas.
[00058] Como mencionado, CELP é principalmente usado para codificar um sinal de voz, se beneficiando das características específicas da voz humana ou modelo de produção de voz vocal humana. O algoritmo CELP é uma tecnologia muito popular, que vem sendo usada em vários padrões ITU-T, MPEG, 3GPP, e 3GPP2. Para codificar sinais de voz mais eficientemente, um sinal de voz pode ser classificado em diferentes classes, e cada classe pode ser codificada de maneiras diferentes. Por exemplo, em alguns padrões, tais como G.718, VMR-WB ou AMR-WB, um sinal de voz pode ser classificado em UNVOICED, TRANSITION, GENERIC, VOICED, e NOISE. Para cada classe, um filtro LPC ou STP é sempre usado para representar um envelope espectral, mas a excitação para um filtro LPC pode ser diferente. UNVOICE e NOISE podem ser codificados com excitação de ruído, e alguma amplificação de excitação. TRANSITION pode ser codificado com excitação de pulso e alguma amplificação de excitação, sem usar livro-código adaptativo ou LTP. GENERIC pode ser codificado com uma solução CELP tradicional, tal como CELP Algébrico, como usado em G.729 ou AMR-WB, onde um quadro de 20 milissegundos contém quatro subquadros de 5 milissegundos, sendo que ambos componentes de excitação de livro-código e componente de excitação de livro-código fixo são produzidos com alguma amplificação de excitação para cada subquadro, atrasos de passo para o livro-código adaptativo nos primeiro e terceiro subquadros são codificados em uma faixa total de um limite de passo mínimo PIT_MIN para um limite de passo máximo PIT_MAX, e atrasos de passos para o livro-código adaptativo nos segundo e quarto subquadros são codificados diferentemente do atraso de passo codificado anterior. Um sinal da classe VOICED pode ser codificado ligeiramente diferentemente de GENERIC, onde o atraso de passo no primeiro subquadro é codificado na faixa total de um limite de passo mínimo PIT_MIN, limite de passo máximo PIT_MAX, e os atrasos de passos (pitch-lag) nos demais subquadros são codificados diferentemente do atraso de passo codificado anterior.
[00059] Os blocos Código-Excitação 402 na FIGURA 4 e 308 na FIGURA 3 mostram a localização do livro-código fixo (FCB) para uma codificação CELP geral; um vetor de código selecionado de FCB é amplificado por um ganho frequentemente indicado como Gc. Para sinal de classe NOISE ou UNVOICED, um FCB contendo vetores do tipo ruído pode ser a melhor estrutura com vista à qualidade de percepção, porque a contribuição do livro-código adaptativo ou a contribuição LTP seria pequena ou mesmo não existente, e porque a contribuição de excitação principal se baseia no componente FCB para sinal de classe NOISE ou UNVOICE. Neste caso, se um FCB tipo pulso como aquele mostrado na FIGURA 6 for usado, o sinal de voz sintetizado de saída pode soar agudo, devido aos muitos zeros encontrados no vetor de código selecionado do FCB tipo pulso, projetado para uma codificação de taxa de bit baixa. A FIGURA 5 ilustra uma estrutura FCB contendo vetores candidatos tipo ruído para formar uma excitação codificada. 501 é um FCB tipo ruído; e 502 um vetor de código tipo ruído, sendo que o vetor de código selecionado é amplificado por um ganho 503.
[00060] Para sinal de classe VOICED, um FCB tipo pulso produz uma saída de qualidade mais alta que um FCB tipo ruído com vista à percepção porque a contribuição de livro-código adaptativo ou CNC LTP é dominante para um sinal de classe VOICE altamente periódico, e a contribuição da excitação principal não se baseia no componente FCB para sinal de classe VOICED. Neste caso, se usado um FCB tipo ruído, o sinal de voz sintetizado de saída pode soar ruidoso ou menos periódico, porque é mais difícil ter uma boa correspondência de forma de onda usando o vetor de código selecionado a partir do FCB tipo ruído projetado para uma codificação de taxa de bit baixa. A FIGURA 6 ilustra uma estrutura FCB contendo vetores candidatos tipo pulso para formar excitação codificada. 601 representa FCB tipo pulso e 602 representa vetor de código tipo pulso. O vetor de código selecionado é amplificado por um ganho 603.
[00061] A maior parte dos CODECs CELP trabalha bem para sinais de voz normal; no entanto, CODECs CELP para taxas de bit baixa podem falhar na presença de sinais de voz especialmente ruidosos ou sinais da classe GENERIC. Como já descrito, um FCB tipo ruído pode ser a melhor escolha para sinal de classe NOISE e UNVOICE e um FCB tipo pulso pode ser a melhor escolha para sinal de classe VOICED. A classe GENERIC se encontra entre a classe VOICED e a classe UNVOICED. Estatisticamente, o ganho LTP ou ganho de passo para a classe GENERIC pode ser mais baixo que da classe VOICED, mas mais alto que da classe UNVOICED. A classe GENERIC pode conter ambos - sinal de componente tipo ruído e sinal de zona periódico. Em taxas de bit baixas, se usado FCB tipo pulso um sinal de classe GENERIC, o sinal de voz sinterizado de saída pode ainda soar agudo, porque há uma quantidade de zeros no vetor de código selecionado no FCB tipo pulso projetado para uma codificação para taxa de bit baixa. Por exemplo, quando CODECs de 6800 bps ou 7600 bps codificam um sinal de voz amostrado em 12,8 kHz, um vetor de código do livro-código tipo pulso pode suportar apenas dois pulsos não-zero, daí provendo um som agudo para voz ruidosa. Se usado um FCB tipo ruído para um sinal da classe GENERIC, o sinal de voz sinterizado de saída pode não ter uma forma de onda suficientemente boa correspondente para gerar um componente periódico. Assim, uma nova estrutura FCB, entre tipo ruído e tipo pulso, pode ser requerida para codificar a classe GENERIC para taxas de bit baixas.
[00062] Uma das soluções para uma melhor codificação de voz com taxas de bit baixas para um sinal de voz GENERIC é usar um FCB mixado pulso-ruído, ao invés de FCB tipo pulso ou FCB tipo ruído. A FIGURA 7 ilustra uma concretização da estrutura de FCB mixado pulso-ruído. 701 indica o FCB mixado pulso-ruído. O vetor de código selecionado 702 é gerado combinando (adicionando) um vetor a partir de um sub- livro-código tipo pulso 704 com um vetor de um sub- livro-código tipo ruído 705. O vetor de código selecionado 702, então, é amplificado pelo ganho Gc 703. Por exemplo, 6 bits são designados ao sub- livro-código tipo pulso 704, dos quais 5 bits se destinam a codificar uma posição de pulso e 1 bit se destina a codificar um sinal dos vetores tipo pulso; 6 bits são designados ao sub- livro- código tipo ruído 705, dos quais 5 bits se destinam a codificar 32 vetores tipo ruído diferentes, e 1 bit se destina a codificar um sinal dos vetores tipo ruído.
[00063] A FIGURA 8 ilustra uma estrutura da concretização de um FCB mixado pulso-ruído 801. Uma vez que o vetor de código de um FCB mixado pulso-ruído é uma combinação de vetor de um sub-livro- código tipo pulso com um vetor de um sub- livro-código tipo ruído, um número de diferentes amplificações pode ser aplicado, respectivamente, ao vetor a partir do sub- livro-código tipo pulso e vetor a partir do sub- livro-código tipo ruído. Por exemplo, um filtro passa-baixa pode ser aplicado ao vetor a partir do sub-livro-código tipo pulso; porque a área de baixa frequência frequentemente é mais periódica que a área de alta frequência e a área de baixa frequência precisa de mais excitação tipo pulso que a área de alta frequência; um filtro passa-alta pode ser aplicado ao vetor a partir do sub- livro-código tipo ruído; porque a área de alta frequência frequentemente é mais ruidosa que a área de baixa frequência, e a área de alta frequência precisa de mais excitação tipo ruído que a área de baixa frequência. O vetor de código 802 selecionado é gerado combinando (adicionando) um vetor filtrado passa-baixa a partir do sub- livro-código tipo pulso 804 com um vetor filtrado passa-alta a partir do sub- livro-código tipo ruído 805. 806 indica o filtro passa-baixa quer fixo ou adaptativo. Por exemplo, um filtro de primeira ordem (1 + 0.4 Z 1) é usado para um quadro de voz GENERIC perto do sinal de voz falada e o filtro de primeira ordem (1 + 0.3 Z1) é usado para um quadro de voz GENERIC perto do sinal de voz não falado. 807 indica o filtro passa- alta quer fixo ou adaptativo; por exemplo, o filtro de primeira ordem (1 - 0.4Z 1) é usado para um quadro de voz GENERIC perto do sinal de voz não-falado, e o filtro de primeira ordem ( 1 0.3Z 1 ) é usado para um quadro de voz GENERIC perto do sinal de voz falada. Filtros de amplificação 806, 807 normalmente não gastam bits para codificar os coeficientes de filtro, e os coeficientes dos filtros de amplificação podem ser adaptativos a parâmetros disponíveis em ambos - codificador e decodificador. O vetor de código selecionado 802, então, é amplificado por um ganho FCB Gc 803. Como no exemplo da FIGURA 8, se 12 bits forem disponíveis para codificar um FCB mixado pulso-ruído, na FIGURA 8, 6 bits podem ser designados ao sub- livro-código tipo pulso 804 dos quais 5 bits se destinam a codificar uma posição de pulso, e 1 bit se destina a codificar um sinal de vetores tipo pulso. Por exemplo, 6 bits podem ser designados ao sub- livro-código tipo ruído 805, dos quais 5 bits se destinam a codificar 32 diferentes vetores tipo ruído e 1 bit se destina a codificar um sinal dos vetores tipo ruído.
[00064] A FIGURA 9 ilustra uma estrutura mais geral de uma concretização FCB mixado pulso-ruído. Uma vez que vetor de código do FCB mixado pulso-ruído na FIGURA 9 é uma combinação do vetor de sub- livro-código tipo pulso com o vetor a partir do sub- livro-código tipo ruído, um número de diferentes amplificações pode ser aplicado, respectivamente ao vetor a partir do sub- livro-código tipo pulso e ao vetor a partir do sub- livro-código tipo ruído. Por exemplo, uma amplificação incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante pode ser aplicado ao vetor a partir do sub- livro-código tipo pulso, similarmente uma amplificação incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante pode ser aplicada ao vetor a partir do sub- livro-código tipo ruído. O vetor de código selecionado 902 é gerado combinando (adicionando) um vetor amplificado a partir do sub- livro-código tipo pulso 904 com um vetor amplificado a partir do sub- livro-código tipo ruído 905. Sendo que 906 indica uma amplificação para os vetores tipo pulso que podem ser fixos ou adaptativos. 907 indica uma amplificação para vetores tipo ruído, que também podem ser fixos ou adaptativos. As amplificações 906, 907 normalmente não gastam bit para codificar parâmetros de amplificação. Os parâmetros de amplificação podem ser adaptativos aos parâmetros disponíveis em ambos codificador e decodificador. O vetor de código selecionado 902, então, é amplificado pelo ganho FCB Gc 903. Como no exemplo da FIGURA 9, se forem disponíveis 12 bits para codificar FCB mixado pulso-ruído na FIGURA 9, 6 bits podem ser designados ao sub- livro-código tipo pulso 904, dos quais 5 bits se destinam a codificar uma posição de pulso e 1 bit se destina a codificar um sinal dos vetores tipo pulso; e 6 bits podem ser designados ao sub- livro-código tipo ruído 905 dos quais 5 bits se destinam, a codificar 32 diferentes vetores tipo ruído e 1 bit se destina a codificar um sinal dos vetores tipo ruído.
[00065] A FIGURA 10 ilustra uma estrutura geral adicional de uma concretização de FCB mixado pulso-ruído. Uma vez que o vetor de código a partir do FCB mixado pulso-ruído da FIGURA 10 é uma combinação de vetor de sub- livro-código tipo pulso com o vetor de sub- livro-código tipo ruído, um número de diferentes amplificações pode ser aplicado, respectivamente, aos vetores do sub- livro-código tipo pulso e vetores do sub- livro-código tipo ruído. Por exemplo, uma primeira amplificação incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante, pode ser aplicada a um vetor a partir do sub- livro-código tipo pulso, similarmente uma segunda amplificação incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante, pode ser aplicado ao vetor a partir do sub- livro-código tipo ruído. 1001 indica FCB mixado pulso-ruído inteiro. O vetor de código selecionado 1002 é gerado combinando (adicionando) um primeiro vetor melhorado a partir do sub- livro-código tipo pulso 1004 e um segundo vetor amplificado do sub- livro-código tipo ruído 1005. 1006 indica a primeira amplificação para vetores tipo pulso, quer fixos ou adaptativos. 1007 indica segunda amplificação para vetores tipo ruído também quer fixos ou adaptativos. 1008 indica terceira amplificação para vetores combinados pulso-ruído, também quer fixos ou adaptativos. As amplificações 1006, 1007, 1008 normalmente não gastam bits para codificar parâmetros de amplificação; porque os parâmetros da amplificação podem ser adaptativos aos parâmetros em ambos - codificador e decodificador. O vetor de código selecionado 1002, então, é amplificado pelo ganho FCB Gc 1003. Como no exemplo da FIGURA 10, se forem disponíveis 12 bits para codificar FCB pulso-ruído mixado, 6 bits podem ser designados ao sub- livro- código tipo pulso 1004 dos quais 5 bits se destinam a codificar uma posição de pulso e 1 bit se destina a codificar um sinal dos vetores tipo pulso; 6 bits podem ser designados ao sub- livro-código tipo ruído 1005, dos quais 5 bits se destinam a codificar 32 diferentes vetores tipo ruído e 1 bit se destina a codificar o sinal dos vetores tipo ruído. Se o ganho FCB Gc for assinalado, apenas um de sinal para vetores tipo pulso e o sinal para vetores tipo ruído precisa ser codificado.
[00066] A FIGURA 11 ilustra uma estrutura geral adicional de uma concretização de FCB mixado pulso-ruído. Uma vez que vetor de código do FCB mixado pulso-ruído na FIGURA 11 é uma combinação de vetor de sub- livro-código tipo pulso e um vetor de sub- livro-código tipo ruído, um número de diferentes amplificações pode ser aplicado respectivamente ao vetor a partir do sub- livro-código tipo pulso e vetor a partir do sub- livro-código de tipo ruído. Por exemplo, uma primeira amplificação H1(z) incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante pode ser aplicada ao vetor a partir do sub- livro-código tipo pulso, e similarmente uma segunda amplificação H2(z) incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante pode ser aplicada ao vetor a partir do sub- livro-código tipo ruído. 1101 indica FCB mixado pulso-ruído inteiro. O vetor de código selecionado 1102 é gerado combinando adicionando um primeiro vetor melhorado de sub- livro-código tipo pulso 1104 e um segundo vetor melhorado do sub- livro-código tipo ruído 1105. 1106 indica uma primeira amplificação H1(z) para vetores tipo pulso quer fixos ou adaptativos. 1107 indica uma segunda amplificação H2(z) para vetores tipo ruído também quer fixos ou adaptativos. 1108 indica uma terceira amplificação H3(z) para vetores tipo ruído também quer fixos ou adaptativos. Normalmente, nenhum bit é gasto para codificar parâmetros de amplificação para amplificações 1106, 1107, 1108; porque os parâmetros de amplificação podem ser adaptativos a parâmetros disponíveis em ambos - codificador e decodificador. O vetor de código selecionado 1102, então, é amplificado pelo ganho FCB Gc 1103. Como no exemplo da FIGURA 11, se forem disponíveis 12 bits para codificar um FCB mixado pulso-ruído na FIGURA 11, 6 bits podem ser designados ao sub- livro-código tipo pulso 1104, dos quais 5 bits se destinam a codificar uma posição de pulso, e 1 bit se destina a codificar um sinal dos vetores tipo pulso; e 6 bits podem ser designados para o sub- livro-código tipo ruído 1105 dos quais 5 bits se destinam a codificar 32 diferentes vetores tipo ruído e 1 bit se destina a codificar um sinal dos vetores de tipo ruído. Se o ganho FCB Gc 1103 for assinalado, apenas um dentre sinal para vetores tipo pulso e sinal para vetores tipo ruído precisa ser codificado.
[00067] A FIGURA 12 mostra uma estrutura mais geral de uma concretização de FCB mixado. A principal diferença entre as FIGURAS 12 e 11 que o livro-código 1 no bloco 1204 pode conter vetores tipo pulso ou tipo ruído e o livro-código 2 no bloco 1205 também pode conter vetores tipo pulso e tipo ruído; isto significa que o livro-código mixado pode ser qualquer combinação de vetores tipo pulso e vetores tipo ruído. Uma vez que o vetor de código a partir do FCB mixado na FIGURA 12 é uma combinação de um vetor do livro-código 1 com um vetor do livro-código 2, um número de diferentes amplificações pode ser aplicada respectivamente ao vetor a partir do livro-código 1 e vetor a partir do livro-código 2. Por exemplo, uma amplificação H1(z) incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante, pode ser aplicada ao vetor do livro-código 1. Similarmente, uma amplificação H2(z) incluindo filtro passa-baixa, filtro passa-alta, filtro de passo, e filtro formante pode ser aplicada ao vetor a partir do livro-código 2. 1201 indica FCB mixado inteiro. O vetor de código selecionado 1202 é gerado combinando (adicionando) um vetor amplificado a partir do livro-código 1 e um vetor amplificado a partir do livro-código 2. 1206 indica amplificação H1(z) para vetores a partir do livro-código 1, quer fixos ou adaptativos. 1207 indica amplificação H2(z) para os vetores a partir do livro-código 2, também quer fixos ou adaptativos. 1208 indica terceira amplificação H3(z) para vetores combinados também quer fixos ou adaptativos. As amplificações 1206, 1207, 1208 normalmente não gastam bits para codificar parâmetros de amplificação; uma vez que os parâmetros de amplificação podem ser adaptativos a parâmetros disponíveis em ambos -codificador e decodificador. O vetor de código selecionado 1202, então, é amplificado pelo ganho FCB Gc 1203.
[00068] Supondo que a estrutura de livro-código fixo, como mostrado na FIGURA 11, e o sinal de excitação seja codificado por subquadros de 64 amostras, isto é, quatro vezes per quadro; esta seção provê uma rápida solução de busca para um livro-código mixado pulso-ruído. O princípio da codificação por excitação está mostrado em um diagrama esquemático na FIGURA 13, similar ao princípio mostrado na FIGURA 3. Teoricamente, a FIGURA 3 provê uma otimização conjunta do componente de excitação de livro-código adaptativo e componente de excitação de livro-código fixo (isto é, componente Código-Excitação). Na prática, por razões de simplicidade, o componente de excitação de livro-código adaptativo é frequentemente determinado primeiro, então, a seguir, o componente de excitação de livro-código fixo.
[00069] Para cada subquadro, LP residual é dado por:
Figure img0021
onde s(n) é o sinal de entrada 1301, que frequentemente é pré- enfatizado, e usado para codificação de voz de banda larga mas não para codificação de voz de banda estreita. Por exemplo, o filtro de pré- ênfase pode ser
Figure img0022
e P 0,68. Alternativamente, P pode ter outros valores.
[00070] O sinal alvo 1303 x(n) para busca de livro-código adaptativo 1307 pode ser computado subtraindo uma resposta de entrada zero (não mostrado na FIGURA 13) do filtro de síntese ponderado W(z)/A(z) a partir do sinal de entrada ponderado pré-enfatizado, obtido filtrando o sinal de entrada 1301 s(n) através do filtro de ponderação 1302. Isto é feito baseado em subquadro. Um procedimento similar para computar o sinal alvo é filtrar o sinal residual r(n) através da combinação do filtro de síntese 1/A(z) e filtro de ponderação W(z).
[00071] A resposta de impulso h(n) do filtro de síntese ponderado W(z)/A(z) é computada para cada subquadro. Na Equação acima A(z) é o filtro LP quantizado. A resposta de impulso h(n) é requerida para busca de livros-código adaptativos e fixos. A busca de livro-código adaptativo inclui realizar uma busca de passo de laço fechado, e, então, computar o vetor de código adaptativo, ep(n), interpolando a excitação anterior em um atraso de passo fracional selecionado P. O ep(n) pode ser amplificado, por exemplo, aplicando um filtro passa- baixa adaptativo. Os parâmetros de livro-código adaptativo (ou parâmetros de passo) são o passo de laço fechado P e ganho de passo 1305, gp (ganho de livro-código adaptativo) calculados para cada subquadro. Y(n) indica a contribuição de livro-código adaptado filtrado antes de o ganho de passo 1305 ser aplicado. Detalhes com respeito ao cálculo de parâmetros de livro-código adaptativo não serão discutidos aqui, uma vez que esta seção se atém a descrever a busca de FCB mixado (livro-código mixado).
[00072] Depois de a contribuição de livro-código adaptativo ter sido filtrada e amplificada, o sinal de diferença obtido x2(n) 1304 se torna o segundo sinal alvo para determinar a contribuição de excitação de código. O Código-Excitação ec(n) 1308 e correspondente ganho Gc 1306 são determinados via minimização 1309 do erro ponderado 1310.
[00073] A FIGURA 14 mostra estrutura similar àquela da FIGURA 13, exceto com respeito ao fato de o livro-código fixo ou Código- Excitação na FIGURA 14 ser agora especificamente uma estrutura de livro-código mixado. O sinal alvo 1403 x(n) para busca de livro-código adaptativo 1407 é computado subtraindo uma resposta de entrada zero (não mostrada na FIGURA 14) do filtro de síntese ponderado W(z)A(z) a partir do sinal de entrada ponderado pré-enfatizado; e o sinal de entrada ponderado pré-enfatizado é obtido filtrando o sinal de entrada s(n) 1401 através do filtro de ponderação 1402. Os parâmetros de livro-código adaptativo (ou parâmetros de passo) são o passo de laço fechado (closed loop) e o ganho de passo 1405, gp (ganho de livro-código adaptativo) calculado para cada subquadro. Y(n) indica a contribuição de livro-código adaptativo filtrado antes de o ganho de passo 1405 ser aplicado. Depois de a contribuição de livro- código adaptativo filtrado e intensificado ser subtraída do sinal alvo 1403 x(n), o sinal de diferença obtido x2(n) 1404 se torna o segundo sinal alvo, para determinar a contribuição de excitação de livro-código mixado. A excitação de livro-código mixado 1408 ec(n) e correspondente ganho 1406 Gc são determinados via minimização 1409 do erro ponderado 1410. z(n) indica contribuição de livro-código mixado filtrado antes de o ganho 1406 Gc ser aplicado.
[00074] Supõe-se que o CB1 no livro-código mixado 1408 um livro- código tipo pulso e CB2 no livro-código mixado 2 um livro-código tipo ruído. H1(z) em 1408 indica o filtro de amplificação para vetores CB1, H2(z) em 1408 indica o filtro de amplificação para vetores CB2, e H3(z) em 1408 indica filtro de amplificação para ambos os vetores CB1 e CB2. Por conveniência, a resposta de impulso de H1(z), H2(z), ou H3(z) é indicada por h1(n), h2(n), ou h3(n), respectivamente.
[00075] O índice CB1 de livro-código tipo pulso ou palavra código representa a posição de pulso e sinais. Por conseguinte, nenhum armazenamento de livro-código será necessário, porque os vetores de código podem ser formados no decodificador, pelas informações contidas no próprio índice (sem precisar recorrer à tabela de busca). Os diferentes livros-código tipo pulso podem ser construídos colocando um número de pulsos assinalados em um número de pistas. Uma busca independente ou temporal do livro-código tipo pulso pode ser feita, primeiro combinando filtros de amplificação H1(z) e H2(z) com o filtro de síntese ponderado W(z0/A(z) antes da busca de livro- código. Assim, a resposta de impulso h(n) do filtro de síntese ponderado h(n) do filtro de síntese ponderado é modificada para incluir os filtros de amplificação H1(z) e H3(z), como expresso por:
Figure img0023
[00076] O índice CB2 do livro-código tipo ruído ou palavra código representa vetores de ruído e sinais. O livro-código tipo ruído é normalmente armazenado na memória. Para reduzir o tamanho da memória, os vetores de ruído podem ser sobrepostos e gerados trocando posição de vetor de ruído. A busca independente e temporal do livro-código tipo ruído pode ser realizada primeiro combinando os filtros de amplificação H2(z) e H3(z) com o filtro de síntese ponderada W(z)/A(z) antes da busca de livro-código. Assim, a resposta de impulso h(n) do filtro de síntese ponderada é modificada para incluir os filtros de amplificação H2(z) e H3(z), como expresso por:
Figure img0024
uma vez que H3(z) é comumente usado para ambos - vetores tipo pulso e vetores tipo ruído - a resposta de impulso da combinação do filtro de síntese 1/A(z), filtro de ponderação W(z), e filtro de amplificação H3(z) é especificamente expressa por:
Figure img0025
[00077] O livro-código mixado é buscado minimizando o erro entre um sinal alvo atualizado 1404 x2 (n) e um vetor de código filtrado amplificado. O sinal alvo atualizado é expresso por:
Figure img0026
onde, y(n) = ep(n)*h(n) é o vetor de código filtrado e Gp é o ganho de livro-código adaptativo. Fazer a matriz H ser definida como matriz de convolução Toeplitz triangular inferior com a diagonal principal hh(0) e diagonais inferiores hh(1),..., hh(63), e d=HTx2 (também chamado vetor alvo filtrado reverso) a correlação entre o sinal atualizado x2(n) e a resposta de impulso hh(n). Ademais, fazer Φ = HTH a matriz de correlação de hh(n). Teoricamente, os elementos do vetor d(n) podem ser computados por:
Figure img0027
e os elementos da matriz simétrica Φ podem ser computados por:
Figure img0028
Em algumas concretizações, a Equação (13) pode ser calculada usando filtragem reversa (backward filtering) mais simples e a Equação (14) não será necessária na corrente caso para busca rápida do livro-código tipo ruído mixado.
[00078] Fazer ck(n) um vetor de código mixado, expresso por:
Figure img0029
Aqui, cp(n) é um vetor candidato do livro-código tipo pulso e cn(n) é um vetor candidato do livro-código tipo ruído. A excitação de livro-código mixado ck(n) ou ec(n) =ck(n)*h3(n) e correspondente ganho 1103 Gc da excitação de livro-código mixado podem ser determinados via minimização 1109 do erro ponderado 1110: 63
Figure img0030
[00079] A minimização de (16) é equivalente à maximização do seguinte critério:
Figure img0031
Em (17), zk é a contribuição filtrada do livro-código de excitação mixado:
Figure img0032
Em algumas concretizações, o vetor d(n) e matriz Φ são computados antes da busca de livro-código. Em algumas concretizações, o cálculo da matriz Φ pode não ser necessário, e, por conseguinte, omitido.
[00080] A correlação no numerador da Equação (17) é dada por:
Figure img0033
Em (19),
Figure img0034
podem ser pré-calculados por simples filtragem reversa d(n) nos filtro H1(z) e H2(z). Se H1(z) e H2(z) forem implementados com filtros de primeira ordem, os processos de filtragem reversa são simples. A energia no denominador da Equação (17) é dada por:
Figure img0035
Em (20), Hp -HH1 and Hn -HH2 podem ser pré-calculados pelos seguintes processos ou convolações de filtragem
Figure img0036
[00081] Em algumas concretizações, H1(z) e H2(z) podem ser implementados com filtros de primeira ordem, assim, o processo de filtragem em (21) ou (22) é tão simples quanto hh(n) como calculado acima em (11).
[00082] Em (20), zp é a contribuição de pulso filtrado:
Figure img0037
e zn é a contribuição de ruído filtrado:
Figure img0038
A Equação (20) pode ser adicionalmente expressa por:
Figure img0039
onde,
Figure img0040
é a energia da contribuição de pulso filtrado e
Figure img0041
é a energia da contribuição de ruído filtrado.
[00083] Supondo que o vetor de código cp(n) em (15) a partir do sub- livro-código tipo ruído também seja um vetor assinalado
Figure img0042
e que o vetor de código cn(n) em (15) a partir do sub- livro-código tipo ruído também seja um vetor assinalado:
Figure img0043
onde vp(ip) indica ip-ésimo vetor de pulso da dimensão 64 (tamanho do subquadro), que consiste em um ou diversos pulsos; vn(in) indica o in- ésimo vetor de ruído da dimensão 64 (tamanho de subquadro) tomado na tabela de ruído; e sp e sn são sinais iguais a -1 ou 1, e ip e in são os índices que definem os vetores.
[00084] O objetivo do procedimento de busca consiste em encontrar índices ip e in dos dois melhores vetores e seus correspondentes sinais sp e sn. Isto é conseguido maximizando o critério de busca (17), onde o numerador é calculado usando Equação (19) e o denominador é calculado usando Equação (25). Olhando o numerador (19) e o denominador (25), a computação mais complexa vem do termo médio do denominador (25),
Figure img0044
que contém todas as possíveis combinações de correlações cruzadas. Por exemplo, se cp tiver kp possibilidades e cn tiver kn possibilidades, o termo médio
Figure img0045
pode ter até (Kp • Kn) possibilidades.
[00085] A FIGURA 15a ilustra um fluxograma 1500 de um método da concretização de busca rápida de livro-código mixado. Na Etapa 1502, a correlação é computada entre um vetor de livro-código e cada vetor alvo filtrado para o livro-código de pulso e livro-código de ruído. Em um exemplo, depois de computar os vetores d1 and d2 em (19), um processo de pré-determinação é usado para identificar
Figure img0046
de todos os kp vetores de pulso possíveis e
Figure img0047
de todos kn vetores de ruído possíveis, de modo que o processo de busca se restrinja àqueles
Figure img0048
vetores de pulso possíveis e
Figure img0049
vetores de ruído possíveis.
[00086] A predeterminação de pulso é feita testando
Figure img0050
em (19) para Kp vetores de pulso tendo o maior produto de ponto absoluto (quadrado de produto de ponto) entre d1 e cp. Ou seja, os índices dos
Figure img0051
vetores de pulso que provêem dos
Figure img0052
valores mais altos de
Figure img0053
são retidos. Estes índices são armazenados no vetor índice mi, i = 0.
Figure img0054
. Para adicionalmente simplificar a busca, a informação de sinal que corresponde a cada predeterminado vetor também é pré-ajustada. O sinal que corresponde a cada vetor predeterminado é dado pelo sinal Rp (i) para aquele vetor. Estes sinais pré-ajustados são armazenados no vetor de sinal sp(i), i = 0...
Figure img0055
. Uma vez que os vetores candidatos contêm muitos zeros, a predeterminação acima pode ser computacionalmente muito simples em algumas concretizações.
[00087] A predeterminação de ruído é feita testando
Figure img0056
em (19) para Kn vetores de ruído tendo o maior produto de ponto absoluto (quadrado de produto de ponto) entre d1 e cp. Ou seja, os índices dos
Figure img0057
vetores de pulso provêem dos
Figure img0058
valores mais altos de
Figure img0059
ficam retidos. Estes índices ficam armazenados no
Figure img0060
vetor índice nj, j= 0 Para adicionalmente simplificar a busca, a informação de sinal que corresponde a cada pré-determinado vetor também é pré-ajustada. O sinal que corresponde a cada vetor predeterminado é dado pelo sinal Rp( j) para aquele vetor. Estes sinais K0 1 pré-ajustados ficam armazenados no vetor de sinal sn(j), j= 0...
Figure img0061
.
[00088] Uma vez que o livro-código de excitação mixado é frequentemente usado para codificação de voz com taxas de bit baixas, Kp ou Kn não é grande; neste caso o processo de predeterminação toma todos
Figure img0062
vetores de pulso possíveis como candidatos e todos
Figure img0063
vetores de ruído possíveis como candidatos.
[00089] Na Etapa 1504, a energia de cada vetor de livro-código filtrado é determinada para o livro-código de pulso e livro-código de ruído. Por exemplo, o termo de energia
Figure img0064
dos vetores de K0 pulso filtrados na Equação (25) é computado para os
Figure img0065
vetores de pulso possíveis limitados a partir da Etapa 1502, e armazenados com o
Figure img0066
vetor de índice mi, i=0 Em algumas concretizações, os vetores de pulso contêm apenas poucos pulsos diferentes de zero, daí fazendo a computação de zp na Equação (23) relativamente simples. Por exemplo, se os valores de pulso contiverem apenas um pulso, a computação do termo de energia pode ser simplesmente feita usando um meio recursivo e trocando a posição de pulso da esquerda para direita.
[00090] O termo de energia
Figure img0067
dos vetores de ruído filtrados em (25) é computado para
Figure img0068
vetores de ruído possíveis limitados da Etapa 1502 e armazenados no
Figure img0069
vetor de índice nj, j= 0 Se todos os vetores de ruído forem armazenados na tabela de maneira sobreposta, a computação de zn na Equação (24) pode ser feita de maneira recursiva, trocando a posição de vetor de ruído na tabela de ruído.
[00091] A seguir, na Etapa 1506, um primeiro grupo de correlações mais altas de vetores alvo filtrados é computado, e, na Etapa 1508, um segundo grupo de correlações mais altas de vetores alvo filtrados e vetores de pulso-ruído filtrados, é computado. Por exemplo, em uma concretização, as K possíveis combinações de construções pulso- ruído mixadas são as
Figure img0070
possíveis combinações, que são obtidas da Etapa 1502 e 1504 são computadas e escolhidas. Em uma concretização, K é muito menor que
Figure img0071
, ou seja,
Figure img0072
Em um exemplo, quatro vetores de ruído e seis vetores de pulso são escolhidos para K possíveis combinações, com isso fazendo um total de 24 combinações a serem testadas. Em outro exemplo, outros números de vetores de ruído e vetores de pulso também podem ser selecionados. Em uma concretização, o número de vetores de pulso candidatos pode exceder o número de vetores de ruído candidatos, uma vez que o cálculo nos vetores de pulso pode ser mais eficiente computacionalmente que o cálculo de vetores de ruído devido à natureza esparsa de alguns vetores de pulso (isto é, muitos elementos dentro dos vetores de pulso podem ser ajustados em zero).
[00092] A seguir, uma primeira função de critério se aplica a estas combinações dos primeiro e segundo grupos na Etapa 1510. Em uma concretização, a seleção das combinações possíveis K pode ser conseguida maximizando o seguinte critério simplificado de (17),
Figure img0073
Na expressão acima, Rp(i) e Rn(j) foram computados na Etapa 1502; Ep(i) e En(j) na Etapa 1504.
[00093] A seguir, na Etapa 1512, um primeiro grupo de combinações de vetor de pulso e vetor de ruído foi determinado com base nas primeiras funções de critério mais altas. Por exemplo, em uma concretização, os índices das K combinações, que resultam nos K valores maiores de Q(i, j) , são retidos. Estes índices ficam armazenados na matriz [ik , jk], k = 0,1,..., K -1. Sendo que K é muito menor que o número total de possíveis combinações de vetores de pulso e vetores de ruído.
[00094] A seguir, uma segunda função de critério é aplicada ao terceiro grupo de combinações de vetor de pulso e vetor de ruído na Etapa 1514, e os índices do vetor de pulso e vetor de ruído tendo o segundo critério mais alto é selecionado. Por exemplo, em uma concretização uma vez as K combinações mais promissoras dos vetores de pulso e de ruído e seus correspondentes sinais são predeterminados nas Etapas 1502, 1504, 1506, 1508, 1510, 1512, a busca avança para uma seleção do vetor de pulso e vetor de ruído dentre as combinações K, que maximizam o critério de busca total Qk de (17):
Figure img0074
Em (32), Rp(ik), Rn(jk), Ep(ik) e En(jk) foram obtidos nas etapas 1503 e 1504, e zp(ik) e zn(jk) foram computados na etapa 1504. No caso em que os vetores de pulso contiver apenas um pulso, o vetor de pulso filtrado zp(ik) em (32) inclui os zeros do primeiro elemento do vetor, para a posição de pulso, que adicionalmente pode simplificar a computação.
[00095] Em algumas concretizações da presente invenção, as etapas 1510 e 1512 podem ser omitidas em concretizações tendo um número relativamente pequeno de entradas de livro-código. Em tal concretização, as combinações candidatas dos primeiro e segundo grupos são aplicadas diretamente à função de critério, por exemplo, equações (32) e (33), e os índices que correspondem ao valor máximo da segunda função de critério são selecionados.
[00096] Se não houver nenhuma limitação com respeito ao fato de CB1 contiver vetores de pulso e CB2 contiver vetores de ruído, o livro- código geral mixado pode ser rapidamente buscado de maneira similar à descrição acima, com respeito ao livro-código, usando vetores de pulso e ruído. A resposta de impulso para e excitação CB1 sendo expressa por,
Figure img0075
A resposta de impulso para excitação CB2 é expressa por,
Figure img0076
Fazendo ck(n) um vetor de código mixado, como expresso por
Figure img0077
[00097] A excitação de livro-código mixado ck(n) ou ec(n) ck(n)*h3(n) e o correspondente ganho 1406 Gc podem ser determinados via minimização do critério:
Figure img0078
onde,
Figure img0079
supondo que os vetores de código cCB1 e cCB2 são os vetores assinalados:
Figure img0080
O objetivo do procedimento de busca é encontrar índices iCB1 e iCB2 dos dois melhores vetores e correspondentes sinais sCB1 e sCB2.
[00098] A FIGURA 15b ilustra o método da concretização 1550 para realizar uma busca rápida de um livro-código mixado geral. Deve ser apreciado que o método 1500 da FIGURA 15a, descrita acima, pode ser considerado um caso especial do método 1550 em algumas concretizações.
[00099] Em uma concretização, na Etapa 1552, depois de computar os vetores d1 and d2 em (37), um processo de predeterminação é usado para identificar
Figure img0081
de todos KCBI vetores CB1 possíveis e
Figure img0082
de todos KCB2 vetores CB2 possíveis. A predeterminação de CB1 é realizada testando
Figure img0083
na Equação (37) para os vetores KCB1 CB1 tendo o maior produto de ponto absoluto (ou quadrado do produto de ponto) entre d1 e cCB1. Ou seja, os índices
Figure img0084
nos vetores CB1, que provêem maiores valores
Figure img0085
de
Figure img0086
ficam retidos. Estes índices ficam armazenados no vetor índice, mi, i = K0 1 0...,
Figure img0087
. Para simplificar adicionalmente a busca, a informação de sinal que corresponde a cada predeterminado vetor também é pré- ajustada. O sinal que corresponde a cada vetor predeterminado é dado pelo sinal RCB1(i) para aquele vetor. Estes sinais pré-ajustados K0 1 ficam armazenados nos vetores de sinal SCBI(Í), i= 0...,
Figure img0088
[000100] Em uma concretização, a predeterminação de CB2 é realizada testando
Figure img0089
na Equação (37) para KCB2 vetores CB2 tendo o maior produto de ponto absoluto (ou quadrado do K0 produto de ponto) entre d2 e cCB2. Ou seja, os índices dos
Figure img0090
vetores que provêem os
Figure img0091
maiores valores de
Figure img0092
são retidos. Estes índices ficam armazenados no vetor de índice nj, j= 0...,
Figure img0093
. Para simplificar adicionalmente a busca, a informação de sinal que corresponde a cada predeterminado vetor também é pré-ajustada. O sinal que corresponde a cada vetor predeterminado é dado pelo sinal RCB2 ( j) para aquele vetor. Estes sinais pré-ajustados são armazenados no vetor de sinal RcB2(j), j= 0...,
Figure img0094
[000101] Uma vez que o livro-código de excitação mixado é usado frequentemente na codificação de voz com baixa taxa de bit, KcB1 ou KcB2 não é grande. Neste caso, o processo de predeterminação simplesmente toma possíveis candidatos todos os possíveis vetores CB1
Figure img0095
e todos os possíveis vetores CB2
Figure img0096
como candidatos.
[000102] A seguir, na Etapa 1554, os termos de energia ECB1 e ECB2 são computados. Em uma concretização, o termo
Figure img0097
dos vetores filtrados CB1 na Equação (40) é computado para os possíveis vetores CB1
Figure img0098
limitados da Etapa 1552, armazenados com vetor índice mi, i=0...,
Figure img0099
[000103] O termo de EnergiaECB2(j) zCB2 zCB2 dos vetores CB2 filtrados na Equação (41) também é computado para vetores possíveis CB2
Figure img0100
limitados da Etapa 1552, armazenados com vetor índice nj, 0 j= 0...,
Figure img0101
. Em algumas concretizações, os termos ECB1 e ECB2 podem ser pré-computados e armazenados na memória.
[000104] Na Etapa 1556, são computadas e escolhidas as possíveis K combinações de contribuições de livro-código mixado a partir das possíveis
Figure img0102
combinações obtidas nas Etapas 1552 e 1554. Em algumas concretizações, K é menor que
Figure img0103
, ou seja,
Figure img0104
. A seleção das possíveis k combinações é conseguida maximizando o seguinte critério simplificado de (37),
Figure img0105
Na expressão acima, RCB1(i) e RCB2(j) foram computados na Etapa 1552, e ECB1(i) e ECB2(j) na Etapa 1554. Os índices de K combinações que resultam dos K maiores valores de Q(i, j) são retidos. Estes índices são armazenados na matriz índice [ik, jk], k0θ,1,...,K_1. K é muito menor que o número total de combinações possíveis dos vetores de livro-código mixado.
[000105] A seguir, na Etapa 1558, um vetor é selecionado das possíveis K combinações determinadas na Etapa 1556. Por exemplo, uma vez que as K combinações mais promissoras dos vetores do livro- código mixado e seus correspondentes sinais são predeterminadas nas Etapas 1552, 1554, 1556, a busca avança para seleção de vetores CB1 e CB2 dentre aquelas K combinações que maximizam o critério de busca total Qk de (37):
Figure img0106
Em (46), RCB1(ik), RCB2(jk), ECB1(ik) e ECB2(jk) foram obtidos na Etapa 1556; e zCB1(ik) e zCB2(jk) computados na Etapa 1554.
[000106] Em algumas concretizações, a computação das Equações (44) e (45) podem ser omitidas, e as Equações (46) e (47) podem ser usadas para determinar o vetor do livro-código mixado diretamente para concretizações que tenham um livro-código de tamanho relativamente pequeno.
[000107] As Etapas 1510 e 1512 podem ser omitidas em concretizações que tenham um número relativamente pequeno de entradas de livro-código. Em tais concretizações, as combinações candidatas dos primeiro e segundo grupos são aplicadas diretamente à segunda função de critério, por exemplo, Equações (32) e (33), e os índices correspondentes ao valor máximo da segunda função de critério são selecionados e avaliados abaixo:
Figure img0107
As Equações (48) e (49) também podem ser aplicadas aos métodos 1500 discutidos acima em algumas concretizações.
[000108] A razão Sinal: Ruído (SNR de Signal Noise Ratio) é um método de medição de teste objetivo para codificação de voz. A razão SNR ponderada segmental (WsegSNR) é uma medição objetivo. A razão WsegSNR pode ser ligeiramente mais próxima da medição de qualidade de percepção real que a razão SNR. Uma pequena diferença na razão SNR ou WsegSNR pode não ser audível, enquanto uma grande diferença em razão SNR ou WsegSNR, obviamente é audível. Para um sinal de voz limpo, a razão SNR ou WsegSNR obtida com FCB pulso-ruído mixado pode ser equivalente àquela obtida usando FCB tipo pulso com FCB de mesmo tamanho. Para um sinal de voz ruidoso, a razão SNR ou WsegSNR obtida com FCB tipo pulso mixado, pode ser ligeiramente mais alta que aquelas obtidas usando FCB tipo pulso com FCB de mesmo tamanho. Ademais, para todos os tipos de sinal de voz, as razões SNR ou WsegSNR obtidas com busca rápida com FCB mixado fica muito próxima daquelas com busca de FCB mixado total.
[000109] Em algumas concretizações, o teste de audição indica que a qualidade de percepção de sinal de voz de ruído é claramente melhorada usando FCB pulso-ruído mixado ao invés de FCB tipo pulso, que soa mais suave, mais natural, e menos agudo. Em adição, os resultados do teste mostram que a qualidade de percepção com busca rápida com FCB mixado é equivalente àquela obtida com uma busca FCB mixado total.
[000110] A FIGURA 16 ilustra um sistema de comunicação 10 de acordo com a presente invenção. O sistema de comunicação 10 tem dispositivos de acesso de áudio 6 e 8 acoplados à rede 36 via links de comunicação 38 e 40. Em uma concretização, os dispositivos de acesso a áudio 6 e 8 são dispositivos de protocolo de voz por internet (VOIP), e a rede 36 é uma Rede de Área Estendida (WAN de Wide Area Network) Rede Pública Telefônica (PTSN de Public Switched Telephone Network) e/ou a própria Internet. Links de comunicação 38 e 40 são conexões cabeadas e/ou sem fio. Em uma concretização alternativa, dispositivos de acesso a áudio 6 e 8 podem ser telefones celulares ou móveis, os links 38 e 40 são canais de telefone móvel sem fio, e a rede 36 representa uma rede telefônica móvel.
[000111] Dispositivo de acesso a áudio 6 usa microfone 12 para converter sons, tal como música ou voz humana, em sinal de entrada de áudio analógico 28. A interface de microfone 16 converte um sinal de entrada de áudio analógico 28 em sinal de entrada de áudio diagonal 32 para introduzir o sinal em um codificador 22 de CODEC 20. O codificador 22 produz um sinal de áudio codificado TX para transmitir para a rede 26 via interface de rede 26, de acordo com concretizações da presente invenção. O decodificador 24 no CODEC 20 recebe um sinal de áudio codificado RX da rede 36 via interface de rede 26 e converte o sinal de áudio codificado RX em sinal de áudio digital 34. A interface de alto-falante 18 converte o sinal de áudio digital 34 em sinal de áudio 30, adequado para alto-falante 14.
[000112] Nas concretizações da presente invenção, quando o dispositivo de acesso a áudio 6 é um protocolo VOIP, uma parte ou todos os componentes no dispositivo de acesso a áudio 6 serão implementados em um aparelho portátil (handset). Em algumas concretizações, no entanto, o microfone 12 e alto-falante 14 são unidades separadas, e a interface do microfone 16, a interface de alto- falante 18, o CODEC 20, e a interface de rede 26, são implementados em um microcomputador. O CODEC 20 pode ser implementado quer por software executado em computador ou processador dedicado ou hardware dedicado, por exemplo, em um Circuito Integrado de Aplicação Específica (ASIC de Application Specific Integrated Circuit). A interface de microfone 16 é implementada por um conversor analógico-para-digital (A/D), assim como outras circuitagens de interface localizadas no aparelho portátil ou em um computador. Similarmente, a interface de alto-falante 18 é implementada por um conversor digital para analógico e outras circuitagens de interface localizadas no aparelho portátil ou em um computador. Em concretizações adicionais, o dispositivo de acesso a áudio 6 pode ser implementado e particionado de outras maneiras conhecidas na técnica.
[000113] Em concretizações da presente invenção, onde o dispositivo de acesso a áudio 6 é um celular ou telefone sem fio, os elementos dentro do dispositivo de acesso a áudio 6 são implementados em um aparelho celular portátil. O CODEC 20 é implementado com software executado no aparelho portátil ou hardware dedicado. Em uma concretização adicional da presente invenção, o dispositivo de acesso a áudio pode ser implementado em outros dispositivos, por exemplo, sistemas de comunicação digital por cabo ou sem fio de ponto-a-ponto (peer-to-peer), tal como intercoms e aparelhos de rádio. Em algumas aplicações, tais como dispositivos de áudio de consumidor, o dispositivo de acesso a áudio pode conter um CODEC com apenas um codificador 22 ou decodificador 24, por exemplo, em um sistema de microfone digital, ou player. Em outras concretizações, o CODEC 20 pode ser usado sem microfone 12 e alto- falante 14, por exemplo, em estações base que acessam PSTN.
[000114] De acordo com uma concretização, um método para codificar um sinal de áudio/voz inclui determinar um vetor de livro- código mixado com base no sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo a soma da primeira entrada de livro-código de um primeiro livro-código com uma segunda entrada de livro-código de um segundo livro-código. O método, adicionalmente, inclui gerar um sinal de áudio codificado, com base no vetor de livro- código mixado determinado e transmitir um índice de excitação de codificado do vetor de livro-código mixado determinado. Em uma concretização, o primeiro livro-código inclui entradas tipo pulso, e o segundo livro-código inclui entradas tipo ruído. Em algumas concretizações, os primeiro e segundo livros-código incluem livros- código fixos. As etapas de determinação e geração podem ser realizadas com um codificador de áudio baseado em hardware. O codificador de áudio baseado em hardware pode incluir um processador e/ou hardware dedicado.
[000115] Em uma concretização, a determinação do vetor de livro- código mixado inclui computar primeiras correlações entre um vetor alvo filtrado e entradas filtradas no primeiro livro-código, determinar um primeiro grupo de primeiras correlações mais altas, computar correlações entre um vetor alvo filtrado e entradas filtradas no segundo livro-código, determinar um segundo grupo das segundas correlações mais altas, e computar uma primeira função de critério de combinações dos primeiro e segundo grupos. A primeira função de critério inclui uma função de uma do primeiro grupo de primeiras correlações mais altas, uma do segundo grupo de correlações mais altas, e energia das correspondentes entradas do primeiro livro-código e segundo livro-código. O primeiro vetor filtrado se baseia no sinal de áudio de entrada.
[000116] Em uma concretização, o método adicionalmente inclui determinar um terceiro grupo de correlações candidatas com base nas primeiras funções de critério mais altas computadas, e selecionar o vetor de livro-código mixado com base na aplicação de uma segunda função de critério ao terceiro grupo. O vetor de livro-código mixado corresponde às entradas de livro-código do primeiro livro-código e segundo livro-código associadas ao valor mais alto da segunda função de critério.
[000117] Em uma concretização, a primeira função de critério é expressa por:
Figure img0108
onde, RCB1(i) é uma correlação entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código, e ECB1(i) é a energia da i-ésima entrada do primeiro livro-código e ECB2(j) é a energia da j-ésima entrada do segundo livro-código,
Figure img0109
é o número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0110
é o número de entradas de segundo livro-código no segundo grupo. O segundo critério pode ser expresso por:
Figure img0111
onde, zCB1(ik) é um vetor filtrado da i-ésima entrada do primeiro livro- código e zCB2(jk) é um vetor filtrado da j-ésima entrada do segundo livro-código, e K é número de entradas no terceiro grupo.
[000118] Em algumas concretizações, o método inclui selecionar o vetor de livro-código mixado da primeira função de critério mais alta computada. A primeira função de critério mais alta computada pode ser:
Figure img0112
onde, RCB1(i) é uma correlação entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código, enquanto RCB2(j) é a correlação entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código, e ECB1(i) é a energia da i-ésima entrada do primeiro livro-código e ECB2(j) é a energia da j-ésima entrada do K0 segundo livro-código, e
Figure img0113
é o número de entradas de primeiro livro- código no primeiro grupo e
Figure img0114
é o número de entradas de segundo livro-código no segundo grupo.
[000119] Em uma concretização, o método adicionalmente inclui calcular as energias das correspondentes entradas a partir do primeiro livro-código e segundo livro-código. Em alguns casos, a energia das correspondentes entradas a partir dos primeiro e segundo livros- código é armazenada na memória. Ademais, o primeiro grupo pode incluir mais entradas que o segundo grupo.
[000120] Em uma concretização, o método adicionalmente inclui aplicar uma primeira função de ênfase à entrada do primeiro livro- código e uma segunda função de ênfase à entrada do segundo livro- código. A primeira função de ênfase pode incluir uma função de filtragem passa-baixa e a segunda função de ênfase pode incluir uma função de filtragem passa-alta.
[000121] De acordo com uma concretização adicional, um sistema configurado para determinar um vetor de livro-código mixado baseado em um sinal de áudio/voz de entrada, gera um sinal de áudio/voz codificado com base no vetor de livro-código mixado determinado, e transmite o índice de excitação codificado do vetor de livro-código mixado determinado. O vetor de livro-código mixado inclui a soma de uma entrada do primeiro livro-código a partir de um livro-código tipo pulso com uma entrada de segundo livro-código a partir de um livro- código tipo ruído. O codificador de áudio baseado em hardware pode incluir um processador e/ou hardware dedicado.
[000122] Em uma concretização, o codificador de áudio baseado em hardware, é adicionalmente configurado para computar primeiras correlações entre um vetor alvo filtrado e entradas no livro-código tipo pulso, determinar um primeiro grupo das primeiras correlações mais altas entre o vetor alvo filtrado e as entradas no livro-código tipo ruído, determinar um segundo grupo das segundas correlações mais altas e computar a primeira função de critério das combinações dos primeiro e segundo grupos. A primeira função de critério inclui uma função de um do primeiro grupo das correlações mais altas, um do segundo grupo das segundas correlações mais altas, e a energia das correspondentes entradas a partir do livro-código tipo pulso e livro- código tipo ruído. Ademais, o vetor alvo filtrado se baseia no sinal de áudio de entrada. Em algumas concretizações, o sistema adicionalmente inclui uma memória configurada para armazenar os valores da energia que correspondem às entradas do livro-código tipo pulso e livro-código tipo ruído.
[000123] Em uma concretização o codificador de áudio baseado em hardware pode ser adicionalmente configurado para selecionar um vetor de livro-código mixado com base na primeira função de critério mais alta computada. Esta primeira função de critério pode ser expressa por:
Figure img0115
[000124] onde, RCB1(i) é uma correlação entre o vetor alvo filtrado e a i-ésima primeira entrada do primeiro livro-código, RCB2(j) é a correlação entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro- código, ECB1(i) a energia da i-ésima entrada do primeiro livro-código e ECB2(j) é a energia da j-ésima entrada do segundo livro-código, e
Figure img0116
é o número de entradas de primeiro livro-código no primeiro grupo, e
Figure img0117
é o número de entradas de segundo livro-código no segundo grupo.
[000125] De acordo com uma concretização adicional, um método de busca rápida de um livro-código mixado para codificar um sinal de áudio/voz inclui determinar um vetor de livro-código mixado baseado em sinal de áudio/voz de entrada, onde o vetor livro-código mixado inclui a soma da primeira entrada de livro-código de um primeiro livro-código e uma segunda entrada de livro-código de um segundo livro-código. O método adicionalmente inclui computar as primeiras correlações entre um vetor alvo filtrado e entradas filtradas no primeiro livro-código, determinar um primeiro grupo de primeiras correlações mais altas, computar correlações entre um vetor alvo filtrado e entradas filtradas no segundo livro-código, determinar um segundo grupo de segundas correlações mais altas, e computar uma primeira função de critério das combinações dos primeiro e segundo grupos. A primeira função de critério inclui a função de uma do primeiro grupo de correlações mais altas, uma do segundo grupo de correlações mais altas, e energia que corresponde às entradas do primeiro livro-código e segundo livro-código e vetor de alvo filtrado se baseia no sinal de áudio de entrada. O método adicionalmente inclui determinar um terceiro grupo de correlações candidatas, com base na primeira função de critério computada mais alta, selecionar o vetor de livro-código mixado com base na aplicação de uma segunda função de critério ao terceiro grupo, onde o vetor do livro- código mixado corresponde às entradas de livro-código a partir do primeiro livro-código e segundo livro-código associadas ao valor mais alto da segunda função de critério. Em adição, o método adicionalmente inclui gerar um sinal de áudio codificado com base no vetor de livro- código mixado determinado, e transmitir o índice de excitação codificado do vetor de livro-código mixado determinado, onde a determinação e geração são realizadas usando codificador de áudio baseado em hardware. O codificador de áudio baseado em hardware pode incluir processador e hardware dedicados.
[000126] Em uma concretização, a primeira função de critério é dada por:
Figure img0118
onde, RCB1(i) é uma correlação entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código, enquanto RCB2(j) é a correlação entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código, ECB1(i) é a energia da i-ésima entrada do primeiro livro-código e ECB2(j) é a energia da j-ésima entrada do segundo livro-código, e
Figure img0119
é o número de entradas de primeiro livro- código no primeiro grupo e
Figure img0120
é o número de entradas de segundo livro-código no segundo grupo. A segunda função de critério é dada por:
Figure img0121
[000127] onde, z (i )é um vetor filtrado da i-ésima entrada do primeiro livro-código e z (j )é um vetor filtrado da j-ésima entrada do segundo livro-código, e K é um número de entradas no terceiro grupo. Em algumas concretizações, o primeiro livro-código é um livro-código tipo pulso e o segundo livro-código um livro-código tipo ruído.
[000128] Uma vantagem do sistema da concretização que usa excitação pulso-ruído mixado inclui a condição de produzir uma qualidade perceptível de sinal de voz GENERIC melhor que aquela obtida quando se usa excitação somente pulso ou excitação somente ruído. Ademais, em certas concretizações, uma busca rápida de excitação pulso-ruído produz um sistema de baixa complexidade, daí tornando o algoritmo de excitação pulso-ruído mais atraente.
[000129] Conquanto a presente invenção tenha sido descrita fazendo referência a um número de concretizações ilustrativas, a especificação não pretende ser construída em caráter limitante. Ademais, várias modificações e combinações das concretizações ilustrativas, assim como outras concretizações da presente invenção, serão aparentes àqueles habilitados na técnica, à luz dos ensinamentos constantes na presente especificação. Assim, a presente invenção pretende que concretizações anexas incluam todas tais modificações ou concretizações.

Claims (22)

1. Método para codificar por CELP um sinal de áudio/voz, o método caracterizado pelo fato de que compreende: determinar um componente de excitação de livro-código adaptativo e um vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) com base em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo uma soma de uma primeira entrada de livro-código de um primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) e uma segunda entrada de livro-código de um segundo livro-código (705, 805, 905, 1005, 1105, ou 1205), em que o primeiro livro-código compreende entradas tipo pulso e o segundo livro-código compreende entradas tipo ruído, e o componente de excitação de livro-código adaptativo sendo obtido a partir de um livro- código adaptativo (1407); gerar um sinal de áudio codificado (407) com base no vetor de livro-código mixado (402) determinado; e transmitir um índice de excitação codificado do vetor de livro-código mixado determinado, em que as determinação e geração são realizadas usando um codificador de áudio baseado em hardware; em que os primeiro (704, 804, 904, 1004, 1104, ou 1204) e segundo livros-código (705, 805, 905, 1005, 1105, ou 1205) são livros- código fixos (402, 308).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar o vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) compreende: computar primeira correlações (1502) entre um vetor alvo filtrado e entradas filtradas no primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204), em que o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo de primeiras correlações mais altas (1506); computar correlações entre um vetor alvo filtrado e entradas filtradas no segundo livro-código (705, 805, 905, 1005, 1105, ou 1205); determinar um segundo grupo de segundas correlações mais altas (1508); computar uma primeira função de critério de combinações dos primeiro e segundo grupos, em que a primeira função de critério (1510) compreende uma função de um dentre o primeiro grupo de primeiras correlações mais altas, um dentre o segundo grupo de segundas correlações mais altas e uma energia de entradas correspondentes do primeiro livro-código e do segundo livro-código.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende: determinar um terceiro grupo de correlações candidatas com base em primeiras funções de critério (1510) mais altas computadas; e selecionar o vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) com base em aplicar uma segunda função de critério (1514) ao terceiro grupo, em que o vetor de livro-código mixado corresponde a entradas de livro-código do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) e do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205) associadas com um valor mais alto da segunda função de critério.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que: a primeira função de critério (1510) é
Figure img0122
onde RCB1(i) é uma correlação entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204), RCB2(j) é uma correlação entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205), ECB1(i) é uma energia da i-ésima entrada do primeiro livro-código e ECB2(j) é uma energia da j-ésima entrada do segundo livro-código,
Figure img0123
é um número de entradas de primeiro livro- 0 código no primeiro grupo e
Figure img0124
é um número de entradas de segundo livro-código no segundo grupo; e a segunda função de critério (1514) é
Figure img0125
onde zCB1(ik) é um vetor filtrado da i-ésima entrada do primeiro livro-código e zCB2(jk) é um vetor filtrado da j-ésima entrada do segundo livro-código, e K é um número de entradas no terceiro grupo.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que selecionar o vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) com base em uma primeira função de critério (1510) mais alta computada.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a primeira função de critério (1510) é
Figure img0126
onde RCB1(i) é uma correlação (1502) entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204), RCB2(j) é uma correlação (1502) entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205), ECB1(i) é uma energia da i-ésima entrada do primeiro livro-código e ECB2(j) é uma energia da j-ésima entrada do segundo livro-código, e
Figure img0127
é um número de entradas de 0 primeiro livro-código no primeiro grupo e
Figure img0128
é um número de entradas de segundo livro-código no segundo grupo.
7. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende calcular energias das entradas correspondentes do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) e do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205).
8. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a energia de entradas correspondentes do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) e do segundo livro- código (705, 805, 905, 1005, 1105, ou 1205) são armazenadas em memória.
9. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que o primeiro grupo compreende mais entradas do que o segundo grupo.
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: aplicar uma primeira função de ênfase à primeira entrada de livro-código (704, 804, 904, 1004, 1104, ou 1204); e aplicar uma segunda função de ênfase à segunda entrada de livro-código (705, 805, 905, 1005, 1105, ou 1205).
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que: a primeira função de ênfase compreende uma função de filtragem passa-baixa; e a segunda função de ênfase compreende uma função de filtragem passa-alta.
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o codificador de áudio baseado em hardware compreende um processador.
13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o codificador de áudio baseado em hardware compreende um hardware dedicado.
14. Sistema para codificar por CELP um sinal de áudio/voz, o sistema caracterizado pelo fato de que compreende: um codificador de áudio baseado em hardware configurado para: determinar um componente de excitação de livro-código adaptativo e um vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) com base em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo uma soma de uma primeira entrada de livro-código (704, 804, 904, 1004, 1104, ou 1204) de um livro-código tipo pulso e uma segunda entrada de livro-código (705, 805, 905, 1005, 1105, ou 1205) de um livro-código tipo ruído, em que os primeiro e segundo livros- código são livros-código fixos, e o componente de excitação de livro-código adaptativo sendo obtido a partir de um livro- código adaptativo (1407); gerar um sinal de áudio/voz codificado com base no vetor de livro-código mixado determinado; e transmitir um índice de excitação codificado do vetor de livro-código mixado determinado.
15. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o codificador de áudio baseado em hardware é ainda configurado para: computar primeiras correlações (1502) entre um vetor alvo filtrado e entradas no livro-código tipo pulso, em que o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo de primeiras correlações mais altas (1506); computar correlações entre um vetor alvo filtrado e entradas no livro-código tipo ruído; determinar um segundo grupo de segundas correlações mais altas (1508); e computar uma primeira função de critério (1510) de combinações de primeiro e segundo grupos, em que a primeira função de critério compreende uma função de um dentre o primeiro grupo de primeiras correlações mais altas, um dentre o segundo grupo de segundas correlações mais altas e uma energia de entradas correspondentes do livro-código tipo pulso e do livro-código tipo ruído.
16. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que ainda compreende uma memória configurada para armazenar valores da energia de entradas correspondentes do livro-código tipo pulso e do livro-código tipo ruído.
17. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que o codificador de áudio baseado em hardware é ainda configurado para selecionar o vetor de livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) com base na primeira função de critério (1510) mais alta computada.
18. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que a primeira função de critério é
Figure img0129
onde RCB1(i) é uma correlação (1502) entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204), RCB2(j) é uma correlação (1502) entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205), ECB1(i) é uma energia da i-ésima entrada do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) e ECB2(j) é uma energia da j-ésima entrada do segundo livro-código, e
Figure img0130
é um número de entradas de primeiro livro-código no primeiro grupo e
Figure img0131
é um número de entradas de segundo livro-código no segundo grupo.
19. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o codificador de áudio baseado em hardware compreende um processador.
20. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que o codificador de áudio baseado em hardware compreende um hardware dedicado.
21. Método de busca rápida de um livro-código mixado (702, 802, 902, 1002, 1102, ou 1202) para codificar por CELP um sinal de áudio/voz, o método caracterizado pelo fato de que compreende: determinar um vetor de livro-código mixado com base em um sinal de áudio/voz de entrada, o vetor de livro-código mixado compreendendo uma soma de uma primeira entrada de livro-código (704, 804, 904, 1004, 1104, ou 1204) de um primeiro livro-código e uma segunda entrada de livro-código (705, 805, 905, 1005, 1105, ou 1205) de um segundo livro-código, em que os primeiro e segundo livros-código são livros-código fixos; computar primeiras correlações (1502) entre um vetor alvo filtrado e entradas filtradas no primeiro livro-código, em que o vetor alvo filtrado é baseado no sinal de áudio de entrada; determinar um primeiro grupo de primeiras correlações mais altas (1506); computar correlações entre um vetor alvo filtrado e entradas filtradas no segundo livro-código; determinar um segundo grupo de segundas correlações mais altas (1508); computar uma primeira função de critério (1510) de combinações dos primeiro e segundo grupos, em que a primeira função de critério compreende uma função de um dentre o primeiro grupo de primeiras correlações mais altas, um dentre o segundo grupo de segundas correlações mais altas e uma energia de entradas correspondentes do primeiro livro-código e do segundo livro-código; determinar um terceiro grupo de correlações candidatas com base em primeiras funções de critério mais altas computadas; selecionar o vetor de livro-código mixado com base em aplicar uma segunda função de critério (1514) ao terceiro grupo, em que o vetor de livro-código mixado corresponde a entradas de livro- código do primeiro livro-código e do segundo livro-código associadas com um valor mais alto da segunda função de critério; gerar um sinal de áudio codificado com base no vetor de livro-código mixado determinado; e transmitir um índice de excitação codificado do vetor de livro-código mixado determinado, em que as determinação e geração são realizadas usando um codificador de áudio baseado em hardware; em que o primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204) compreende um livro-código tipo pulso e o segundo livro- código (705, 805, 905, 1005, 1105, ou 1205) compreende um livro- código tipo ruído.
22. Método, de acordo com a reivindicação 21, caracterizado pelo fato de que: a primeira função de critério (1510) é
Figure img0132
onde RCB1(i) é uma correlação (1502) entre o vetor alvo filtrado e uma i-ésima primeira entrada do primeiro livro-código (704, 804, 904, 1004, 1104, ou 1204), RCB2(j) é uma correlação (1502) entre o vetor alvo filtrado e uma j-ésima entrada do segundo livro-código (705, 805, 905, 1005, 1105, ou 1205), ECB1(i) é uma energia da i-ésima entrada do primeiro livro-código e ECB2(j) é uma energia da j-ésima entrada do segundo livro-código,
Figure img0133
é um número de entradas de primeiro livro-código no primeiro grupo e
Figure img0134
é um número de entradas de segundo livro-código no segundo grupo; e a segunda função de critério (1514) é
Figure img0135
onde zCB1(ik) é um vetor filtrado da i-ésima entrada do primeiro livro-código e zCB2(jk) é um vetor filtrado da j-ésima entrada do segundo livro-código, e K é um número de entradas no terceiro grupo.
BR112014024648-3A 2013-02-15 2013-07-29 Método e sistema para codificar por celp um sinal de áudio/voz e método de busca rápida de um livro-código mixado BR112014024648B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/768,814 2013-02-15
US13/768,814 US9972325B2 (en) 2012-02-17 2013-02-15 System and method for mixed codebook excitation for speech coding
PCT/CN2013/080268 WO2014124577A1 (en) 2013-02-15 2013-07-29 System and method for mixed codebook excitation for speech coding

Publications (3)

Publication Number Publication Date
BR112014024648A2 BR112014024648A2 (pt) 2017-06-20
BR112014024648A8 BR112014024648A8 (pt) 2021-06-22
BR112014024648B1 true BR112014024648B1 (pt) 2022-08-09

Family

ID=48982948

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014024648-3A BR112014024648B1 (pt) 2013-02-15 2013-07-29 Método e sistema para codificar por celp um sinal de áudio/voz e método de busca rápida de um livro-código mixado

Country Status (18)

Country Link
US (1) US9972325B2 (pt)
EP (2) EP3214619B1 (pt)
JP (2) JP6395612B2 (pt)
KR (2) KR101727577B1 (pt)
CN (1) CN104126201B (pt)
AU (1) AU2013378636B2 (pt)
BR (1) BR112014024648B1 (pt)
CA (2) CA2864247C (pt)
ES (2) ES2627581T3 (pt)
HK (1) HK1199542A1 (pt)
IN (1) IN2014KN01667A (pt)
MX (1) MX350290B (pt)
MY (1) MY172894A (pt)
PT (1) PT3214619T (pt)
RU (2) RU2633105C1 (pt)
SG (1) SG11201404753QA (pt)
WO (1) WO2014124577A1 (pt)
ZA (1) ZA201406064B (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2727106B1 (en) * 2011-07-01 2019-08-21 Nokia Technologies Oy Multiple scale codebook search
JP6366705B2 (ja) 2013-10-18 2018-08-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 確定的及びノイズ状情報を用いてオーディオ信号を符号化/復号化する概念
JP6366706B2 (ja) 2013-10-18 2018-08-01 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン スピーチ関連のスペクトル整形情報を使用したオーディオ信号符号化と復号化の概念
EP3079151A1 (en) * 2015-04-09 2016-10-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and method for encoding an audio signal
CN108028045A (zh) 2015-07-06 2018-05-11 诺基亚技术有限公司 用于音频信号解码器的位错误检测器
EP3413308A1 (en) * 2017-06-07 2018-12-12 Nokia Technologies Oy Efficient storage of multiple structured codebooks
EP3429230A1 (en) * 2017-07-13 2019-01-16 GN Hearing A/S Hearing device and method with non-intrusive speech intelligibility prediction
US11086843B2 (en) 2017-10-19 2021-08-10 Adobe Inc. Embedding codebooks for resource optimization
US10942914B2 (en) * 2017-10-19 2021-03-09 Adobe Inc. Latency optimization for digital asset compression
US11120363B2 (en) 2017-10-19 2021-09-14 Adobe Inc. Latency mitigation for encoding data

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6053999A (ja) 1983-09-05 1985-03-28 日本電気株式会社 音声合成器
US5602961A (en) * 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
JPH08179796A (ja) 1994-12-21 1996-07-12 Sony Corp 音声符号化方法
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
CN1167047C (zh) * 1996-11-07 2004-09-15 松下电器产业株式会社 声源矢量生成装置及方法
EP1734512B1 (en) 1997-10-22 2015-09-09 Godo Kaisha IP Bridge 1 CELP encoder and a method of CELP encoding
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US6714907B2 (en) * 1998-08-24 2004-03-30 Mindspeed Technologies, Inc. Codebook structure and search for speech coding
US6449313B1 (en) 1999-04-28 2002-09-10 Lucent Technologies Inc. Shaped fixed codebook search for celp speech coding
US6980948B2 (en) * 2000-09-15 2005-12-27 Mindspeed Technologies, Inc. System of dynamic pulse position tracks for pulse-like excitation in speech coding
JP3404016B2 (ja) * 2000-12-26 2003-05-06 三菱電機株式会社 音声符号化装置及び音声符号化方法
KR100464369B1 (ko) * 2001-05-23 2005-01-03 삼성전자주식회사 음성 부호화 시스템의 여기 코드북 탐색 방법
US6789059B2 (en) 2001-06-06 2004-09-07 Qualcomm Incorporated Reducing memory requirements of a codebook vector search
US7054807B2 (en) * 2002-11-08 2006-05-30 Motorola, Inc. Optimizing encoder for efficiently determining analysis-by-synthesis codebook-related parameters
EP1604352A4 (en) * 2003-03-15 2007-12-19 Mindspeed Tech Inc SINGLE NOISE DELETION MODEL
EP1496500B1 (en) 2003-07-09 2007-02-28 Samsung Electronics Co., Ltd. Bitrate scalable speech coding and decoding apparatus and method
US7519532B2 (en) * 2003-09-29 2009-04-14 Texas Instruments Incorporated Transcoding EVRC to G.729ab
WO2006009074A1 (ja) 2004-07-20 2006-01-26 Matsushita Electric Industrial Co., Ltd. 音声復号化装置および補償フレーム生成方法
KR100657916B1 (ko) * 2004-12-01 2006-12-14 삼성전자주식회사 주파수 대역간의 유사도를 이용한 오디오 신호 처리 장치및 방법
EP1854095A1 (en) * 2005-02-15 2007-11-14 BBN Technologies Corp. Speech analyzing system with adaptive noise codebook
AU2006232361B2 (en) 2005-04-01 2010-12-23 Qualcomm Incorporated Methods and apparatus for encoding and decoding an highband portion of a speech signal
US20060253421A1 (en) 2005-05-06 2006-11-09 Fang Chen Method and product for searching title metadata based on user preferences
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7991611B2 (en) * 2005-10-14 2011-08-02 Panasonic Corporation Speech encoding apparatus and speech encoding method that encode speech signals in a scalable manner, and speech decoding apparatus and speech decoding method that decode scalable encoded signals
JP5127170B2 (ja) 2006-07-07 2013-01-23 株式会社東芝 復号装置およびスペクトル整形方法
PT2102619T (pt) 2006-10-24 2017-05-25 Voiceage Corp Método e dispositivo para codificação de tramas de transição em sinais de voz
US8175870B2 (en) * 2006-12-26 2012-05-08 Huawei Technologies Co., Ltd. Dual-pulse excited linear prediction for speech coding
US8515767B2 (en) 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
EP2144230A1 (en) 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Low bitrate audio encoding/decoding scheme having cascaded switches
JPWO2010016270A1 (ja) * 2008-08-08 2012-01-19 パナソニック株式会社 量子化装置、符号化装置、量子化方法及び符号化方法
CN101557367B (zh) 2009-02-27 2011-10-05 东南大学 多点有限协同多输入多输出通信系统预编码方法
KR20110022252A (ko) 2009-08-27 2011-03-07 삼성전자주식회사 스테레오 오디오의 부호화, 복호화 방법 및 장치
CN102006144B (zh) 2009-09-01 2014-01-08 华为技术有限公司 预编码方法、装置及频域均衡方法、装置
SG192721A1 (en) 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Apparatus and method for encoding and decoding an audio signal using an aligned look-ahead portion

Also Published As

Publication number Publication date
KR101810020B1 (ko) 2017-12-18
CA2864247C (en) 2020-09-08
AU2013378636A1 (en) 2014-09-11
KR20170042816A (ko) 2017-04-19
KR20150091516A (ko) 2015-08-11
US20130218578A1 (en) 2013-08-22
CA3069661A1 (en) 2014-08-21
ES2716462T3 (es) 2019-06-12
KR101727577B1 (ko) 2017-04-17
JP2017134436A (ja) 2017-08-03
RU2014140195A (ru) 2016-04-20
EP2805324A4 (en) 2014-12-03
MX2014011964A (es) 2015-02-10
EP3214619B1 (en) 2018-11-14
ES2627581T3 (es) 2017-07-28
SG11201404753QA (en) 2014-10-30
ZA201406064B (en) 2015-04-29
PT3214619T (pt) 2019-02-06
BR112014024648A2 (pt) 2017-06-20
IN2014KN01667A (pt) 2015-10-23
JP6392409B2 (ja) 2018-09-19
RU2633105C1 (ru) 2017-10-11
HK1199542A1 (en) 2015-07-03
MY172894A (en) 2019-12-13
EP2805324A1 (en) 2014-11-26
CN104126201A (zh) 2014-10-29
CA3069661C (en) 2022-05-03
RU2604425C2 (ru) 2016-12-10
MX350290B (es) 2017-09-04
AU2013378636B2 (en) 2016-05-26
CA2864247A1 (en) 2014-08-21
CN104126201B (zh) 2017-08-04
EP3214619A1 (en) 2017-09-06
BR112014024648A8 (pt) 2021-06-22
JP2015515644A (ja) 2015-05-28
JP6395612B2 (ja) 2018-09-26
EP2805324B1 (en) 2017-04-19
US9972325B2 (en) 2018-05-15
WO2014124577A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
US10249313B2 (en) Adaptive bandwidth extension and apparatus for the same
BR112014024648B1 (pt) Método e sistema para codificar por celp um sinal de áudio/voz e método de busca rápida de um livro-código mixado
CA2918345C (en) Unvoiced/voiced decision for speech processing
AU2015296315A1 (en) Improving classification between time-domain coding and frequency domain coding
US9418671B2 (en) Adaptive high-pass post-filter

Legal Events

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 29/07/2013, OBSERVADAS AS CONDICOES LEGAIS