BRPI0715516B1 - sistemas, métodos e equipamentos para limitar fator de ganho - Google Patents

sistemas, métodos e equipamentos para limitar fator de ganho Download PDF

Info

Publication number
BRPI0715516B1
BRPI0715516B1 BRPI0715516A BRPI0715516B1 BR PI0715516 B1 BRPI0715516 B1 BR PI0715516B1 BR PI0715516 A BRPI0715516 A BR PI0715516A BR PI0715516 B1 BRPI0715516 B1 BR PI0715516B1
Authority
BR
Brazil
Prior art keywords
value
index
gain factor
signal
quantization
Prior art date
Application number
Other languages
English (en)
Inventor
A Kandhadai Ananthapadmanabhan
Krishnan Venkatesh
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0715516A2 publication Critical patent/BRPI0715516A2/pt
Publication of BRPI0715516B1 publication Critical patent/BRPI0715516B1/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band

Landscapes

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

Abstract

sistemas, métodos e equipamentos para limitar fator de ganho. a gama de configurações descritas inclui métodos em que sub-bandas de um sinal de fala são codificadas separadaniente, com a excitação de unia primeira sub-banda sendo derivada a partir de uma segunda sub-banda. são calculados fatores de ganho para indicar uma relação variável em tempo entre envelopes da primeira sub-banda original e da primeira sub-banda sintetizada. os fatores de ganho são quantizados e os valores quantizados que superem os valores pré-quantizados são recodificados.

Description

"SISTEMAS, MÉTODOS E EQUIPAMENTOS PARA LIMITAR FATOR DE GANHO" CAMPO A presente invenção está relacionada à encodificação de fala.
FUNDAMENTOS
As comunicações de voz através da rede de telefonia pública comutada (PSTN) eram tradicionalmente limitadas em largura de banda à banda de frequências de 300 a 3400 kHz. As novas redes para comunicação de voz, tais como as de telefonia celular e de voz sobre Protocolo Internet (VoIP) podem não possuir os mesmos limites de largura de banda, e pode ser desejável transmitir e receber comunicações de voz que incluem uma gama de frequências de banda larga através de tais redes. Como exemplo, pode ser desejável suportar a uma faixa de frequências de áudio que se estende de 50 Hz até 7 ou 8 kHz. Pode também ser desejável suportar outras aplicações, tais como áudio de alta qualidade ou áudio/vídeo conferência, que podem apresentar conteúdo de fala de áudio em faixas fora dos limites tradicionais da PSTN. A extensão da faixa suportada por um codificador de fala até frequências mais elevadas pode melhorar a inteligibilidade. Como exemplo, as informações que diferenciam fricativas tais como "s" e "f" se encontram, em grande parte, nas frequências elevadas. A extensão de banda alta pode também melhorar outras características da fala, tais como a "presença". Como exemplo, mesmo uma vogal falada pode possuir energia espectral muito acima do limite da PSTN.
Uma abordagem para codificação de fala em banda larga envolve escalonar uma técnica de codificação de fala de banda estreita (por exemplo, uma que esteja configurada para encodificar a faixa de 0 a 4 kHz) para cobrir o espectro de banda larga. Como exemplo, um sinal de fala pode ser amostrado em uma taxa mais elevada de modo a incluir componentes em altas frequências e uma técnica de codificação em banda estreita pode ser reconfigurada para utilizar mais coeficientes de filtro para representar tal sinal de banda larga. No entanto, as técnicas de codificação de banda estreita, tais como a CELP (predição linear excitada por livro-código), são computacionalmente trabalhosas e um codificador CELP de banda larga pode demandar muitos ciclos de processamento para ser viável para muitas aplicações em telefonia móvel e outras incorporadas. A encodificação de todo o espectro de um sinal de banda larga com uma qualidade desejada utilizando tal técnica pode também levar a um aumento inaceitavelmente grande de largura de banda. Ademais, seria necessária a transcodificação de tal sinal encodificado antes mesmo que sua parte de banda estreita pudesse ser transmitida para e/ou decodificada por um sistema que somente suporta codificação de banda estreita.
Pode ser desejável implementar codificação de fala em banda larga de tal forma que pelo menos a parte de banda estreita do sinal encodificado possa ser enviada através de um canal de banda estreita (tal como um canal da PSTN) sem transcodificação ou outra modificação significativa. Pode também ser desejável maior eficiência da extensão de codificação em banda larga, por exemplo, para evitar uma redução significativa do número de usuários que podem ser servidos em aplicações tais como a telefonia celular sem fio e difusão (broadcasting) através de canais cabeados e sem fio.
Outra abordagem para codificação de fala em banda larga envolve a codificação das partes de banda estreita e banda alta de um sinal de fala na forma de sub-bandas separadas. Em um sistema deste tipo, pode ser obtida uma maior eficiência através da derivação de uma excitação para o filtro de síntese de banda alta a partir de informações já disponíveis no decodif icador, tais como o sinal de excitação de banda estreita. A qualidade pode ser melhorada em tal sistema através da inclusão no sinal encodificado de uma série de fatores de ganho que indicam uma relação variável no tempo entre um nível no sinal de banda alta original e um nível do sinal de banda alta sintetizado.
SUMÁRIO
Um método para processar fala de acordo com uma modalidade inclui calcular um fator de ganho com base em uma relação entre (a) uma parte no tempo de um primeiro sinal baseado em uma primeira sub-banda de um sinal de fala e (b) uma parte correspondente no tempo de um segundo sinal baseado em um componente derivado a partir de uma segunda sub-banda do sinal de fala; e selecionar, de acordo com o valor de fator de ganho, um primeiro índice para um conjunto ordenado de valores de quantização. 0 método inclui avaliar uma relação entre o valor de fator de ganho e um valor de quantização indicado pelo primeiro índice; e selecionar, de acordo com um resultado da avaliação, um segundo índice para o conjunto ordenado de valores de quantização.
Um equipamento para processar fala de acordo com outra modalidade inclui um calculador configurado para calcular um valor de fator de ganho baseado em uma relação entre (a) uma parte no tempo de um primeiro sinal baseado em uma primeira sub-banda de um sinal de fala e (b) uma parte correspondente no tempo de um segundo sinal baseado em um componente derivado a partir de uma segunda sub-banda do sinal de fala; e um quantizador configurado para selecionar, de acordo com o valor de fator de ganho, um primeiro índice para um conjunto ordenado de valores de quantização. 0 equipamento inclui um limitador configurado (a) para avaliar uma relação entre o valor de fator de ganho e um valor de quantização indicado pelo primeiro índice e (b) para selecionar, de acordo com um resultado da avaliação, um segundo índice para o conjunto ordenado de valores de quantização.
Um equipamento para processar fala de acordo com outra modalidade inclui mecanismos para calcular um valor de fator de ganho baseado em uma relação entre (a) uma parte no tempo de um primeiro sinal baseado em uma primeira sub-banda de um sinal de fala e (b) uma parte correspondente no tempo de um segundo sinal baseado em um componente derivado a partir de uma segunda sub-banda do sinal de fala; e mecanismos para selecionar, de acordo com o valor de fator de ganho, um primeiro índice para um conjunto ordenado de valores de quantização. O equipamento inclui mecanismos para avaliar uma relação entre o valor de fator de ganho e um valor de quantização indicado pelo primeiro índice e para selecionar, de acordo com um resultado da avaliação, um segundo índice para o conjunto ordenado de valores de quantização.
BREVE DESCRIÇÃO DOS DESENHOS A Figura ia apresenta um diagrama de blocos de um encodificador de fala de banda larga alOO. A Figura lb apresenta um diagrama de blocos de uma implementação al02 do encodif icador de fala de banda larga alOO. A Figura 2a apresenta um diagrama de blocos de um decodificador de fala de banda larga blOO. A Figura 2b apresenta um diagrama de blocos de uma implementação bl02 do encodif icador de fala de banda larga blOO. A Figura 3a apresenta a cobertura de largura de banda das bandas baixa e alta para um exemplo do banco de filtros allO. A Figura 3b apresenta a cobertura de largura de banda das bandas baixa e alta para outro exemplo do banco de filtros allO. A Figura 4a apresenta um exemplo de uma curva de frequência versus log-amplitude para um sinal de fala. A Figura 4b apresenta um diagrama de blocos de um sistema de codificação por predição linear básico. A Figura 5 apresenta um diagrama de blocos de uma implementação al22 do encodificador de banda estreita al20. A Figura 6 apresenta um diagrama de blocos de uma implementação bll2 do decodificador de banda estreita bllO. A Figura 7a apresenta um exemplo de uma curva de frequência versus log-amplitude para um sinal residual para fala com voz. A Figura 7b apresenta um exemplo de uma curva de tempo versus log-amplitude para um sinal residual para fala com voz. A Figura 8 apresenta um diagrama de blocos de um sistema de codificação por predição linear básico que também efetua predição de longo prazo. A Figura 9 apresenta um diagrama de blocos de uma implementação a202 do encodificador de banda alta a200. A Figura 10 apresenta um fluxograma para um método mlO para encodificar uma parte de banda alta. A Figura 11 apresenta um fluxograma para uma tarefa de cálculo de ganho t200. A Figura 12 apresenta um fluxograma para uma implementação t210 da tarefa de cálculo de ganho t200. A Figura 13a apresenta um diagrama de uma função de janela (windowing). A Figura 13b apresenta uma aplicação de uma função de janela tal como apresentada na Figura 13a para sub-quadros de um sinal de fala. A Figura 14a apresenta um diagrama de blocos de uma implementação a232 do calculador de fator de ganho de banda alta a230. Ά Figura 14b apresenta um diagrama de blocos de uma disposição incluindo o calculador de fator de ganho de banda alta a232. A Figura 15 apresenta um diagrama de blocos de uma implementação a234 do calculador de fator de ganho de banda alta a232. A Figura 16 apresenta um diagrama de blocos de uma outra implementação a236 do calculador de fator de ganho de banda alta a232. A Figura 17 apresenta um exemplo de um mapeamento unidimensional tal como pode ser realizado por um quantizador escalar. A Figura 18 apresenta um exemplo simples de um mapeamento multidimensional tal como realizado por um quantizador vetorial. A Figura 19a apresenta outro exemplo de um mapeamento unidimensional tal como pode ser realizado por um quantizador escalar. A Figura 19b apresenta um exemplo de um mapeamento de um espaço de entrada para regiões de quantização de diferentes tamanhos. A Figura 19c ilustra um exemplo em que o valor quantizado para um valor de fator de ganho R é maior do que o valor original. A Figura 20a apresenta um fluxograma para um método mlOO para limitação de fator de ganho de acordo com uma implementação geral. A Figura 20b apresenta um fluxograma para uma implementação mllO do método mlOO. A Figura 20c apresenta um fluxograma para uma implementação ml20 do método mlOO. A Figura 20d apresenta um fluxograma para uma implementação ml30 do método mlOO. A Figura 21 apresenta um diagrama de blocos de uma implementação a203 do encodificador de banda alta a202. A Figura 22 apresenta um diagrama de blocos de uma implementação a204 do encodificador de banda alta a203. A Figura 23a apresenta um diagrama operacional para uma implementação 112 do limitador 110. A Figura 23b apresenta um diagrama operacional para outra implementação 114 do limitador 110. A Figura 23c apresenta um diagrama operacional para outra implementação 116 do limitador 110. A Figura 24 apresenta um diagrama de blocos de uma implementação b202 do decodificador de banda alta b200.
DESCRIÇÃO DETALHADA
Um artefato audível pode ocorrer quando, por exemplo, a distribuição de energia entre as sub-bandas de um sinal decodificado não for acurada. Tal artefato pode ser perceptivelmente desagradável para um usuário e, portanto, pode reduzir a qualidade percebida do codificador. A menos de limitação expressa por seu contexto, o termo "calcular" é aqui utilizado para indicar quaisquer de seus significados normais, tais como computar, gerar e selecionar dentre uma lista de valores. Quando o termo "compreender" é usado na presente descrição e nas reivindicações, ele não exclui outros elementos ou operações. A expressão "A é baseado em B" é usada para indicar quaisquer de seus significados normais, incluindo os casos (i) "A é igual a B" e (ii) "A é baseado em pelo menos B". O termo "Protocolo Internet" inclui a versão 4, tal como descrita na RFC (Request For Comments) 791 do IETF (Internet Engineering Task Force), e nas versões subsequentes, tais como a versão 6. A Figura la apresenta um diagrama de blocos de um encodif icador de fala de banda larga alOO que pode ser configurado para realizar um método tal como aqui descrito. O banco de filtros allO está configurado para filtrar um sinal de fala de banda larga slO para produzir um sinal de banda estreita s20 e um sinal de banda alta s30. 0 encodificador de banda estreita al20 está configurado para encodificar o sinal de banda estreita s20 para produzir parâmetros de filtro de banda estreita (NB) s40 e um sinal residual de banda estreita s50. Tal como será descrito em maiores detalhes mais adiante, o encodificador de banda estreita al20 está tipicamente configurado para produzir parâmetros de filtro de banda estreita s40 e o sinal de excitação de banda estreita encodificado s50 na forma de índices de livro-código, ou em outra forma quantificada. 0 encodificador de banda alta a200 está configurado para encodificar o sinal de banda alta s30 de acordo com as informações no sinal de excitação de banda estreita encodificado s50 para produção de parâmetros de codificação de banda alta s60. Como será descrito em maiores detalhes mais adiante, o encodificador de banda alta a200 está tipicamente configurado para produção de parâmetros de codificação de banda alta S60 na forma de índices de livro-código ou em outra forma quantizada. Um exemplo específico do encodif icador de fala de banda larga alOO está configurado para encodificar o sinal de fala de banda larga slO em uma taxa de cerca de 8,55 kbps (quilobits por segundo), com cerca de 7,55 kbps sendo usados para parâmetros de filtro de banda estreita s40 e para o sinal de excitação de banda estreita encodificado s50, e cerca de 1 kbps sendo usado para parâmetros de codificação de banda alta s60.
Pode ser desejado combinar os sinais de banda estreita e banda alta encodifiçados em um único fluxo de bits. Como exemplo, pode ser desejado multiplexar os sinais codificados para transmissão conjunta (por exemplo, através de um canal de transmissão cabeado, óptico, ou sem fio), ou para armazenamento, na forma de um sinal de fala de banda larga codificado. A Figura lb apresenta um diagrama de blocos de uma implementação a!02 do encodificador de fala de banda larga alOO que inclui um multiplexador al30 configurado para combinar os parâmetros de filtro de banda estreita s40, o sinal de excitação de banda estreita encodificado s50 e os parâmetros de filtro de banda alta s60 em um sinal multiplexado s70.
Um equipamento incluindo encodificador a!02 pode também incluir conjunto de circuitos configurados para transmitir o sinal multiplexado s70 para um canal de transmissão, tal como um canal cabeado, óptico ou sem fio. Tal equipamento pode também estar configurado para realizar uma ou mais operações de encodificação de canal, tais como encodificação para correção de erros (por exemplo, encodificação convolucional compatível com taxa) e/ou encodificação para detecção de erros (por exemplo, encodificação por redundância cíclica) e/ou uma ou mais camadas de encodificação de protocolo de rede (por exemplo, Ethernet, TCP/IP, cdma2000).
Pode ser desejável que o multiplexador al30 esteja configurado de modo a embutir o sinal de banda estreita encodificado (incluindo os parâmetros de filtro de banda estreita s40 e o sinal de excitação de banda estreita encodificado s50) na forma de um sub-fluxo separável do sinal multiplexado s70, de tal forma que o sinal de banda estreita encodificado possa ser recuperado e decodificado independentemente de outra parte do sinal multiplexado s70, tal como um sinal de banda alta e/ou banda baixa. Como exemplo, o sinal multiplexado s70 pode estar configurado de tal forma que o sinal de banda estreita encodificado possa ser recuperado por extração dos parâmetros de filtro de banda alta s60. Um vantagem potencial de tal recurso consiste em evitar a necessidade de transcodificação do sinal de banda larga encodificado antes de passá-lo para um sistema que suporte decodificação do sinal de banda estreita mas não suporte decodificação da parte de banda alta. A Figura 2a apresenta um diagrama de blocos de um decodificador de fala de banda larga blOO que pode ser usado para decodificar um sinal encodificado pelo encodificador de fala de banda larga alOO. 0 decodificador de banda estreita blíO está configurado para decodificar parâmetros de filtro de banda estreita s40 e o sinal de excitação de banda estreita encodificado s50 para produção de um sinal de banda estreita s90. O decodificador de banda alta b200 está configurado para decodificar parâmetros de codificação de banda alta s60 de acordo com um sinal de excitação de banda estreita s80, com base no sinal de excitação de banda estreita encodificado s50, para produção de um sinal de banda alta slOO. Neste exemplo, o decodificador de banda estreita bllO está configurado para prover o sinal de excitação de banda estreita s80 para o decodificador de banda alta b200. O banco de filtros bl20 está configurado para combinar o sinal de banda estreita s90 e o sinal de banda alta slOO para produção de um sinal de fala de banda larga sllO. A Figura 2b apresenta um diagrama de blocos de uma implementação bl02 do decodificador de fala de banda larga bl02 que inclui um demultiplexador bl30 configurado para a produção dos sinais encodificados s40, s50 e s60 a partir do sinal multiplexado s70. Um equipamento incluindo o decodificador bl02 pode incluir conjunto de circuitos configurados para receber o sinal multiplexado s70 a partir de um canal de transmissão, tal como um canal cabeado, óptico ou sem fio. Tal equipamento pode também estar configurado para realizar uma ou mais operações de decodificação de canal sobre o sinal, tais como decodificação para correção de erros (por exemplo, decodificação convolucional compatível com taxa) e/ou decodificação para detecção de erros (por exemplo, decodificação por redundância cíclica) e/ou uma ou mais camadas de decodificação de protocolo de rede (por exemplo, Ethernet, TCP/IP, cdma2000). 0 banco de filtros allO está configurado para filtrar um sinal de entrada de acordo com um esquema de banda dividida para a produção de uma sub-banda de baixa frequência e uma sub-banda de alta frequência. Dependendo dos critérios de projeto para a aplicação específica, as sub-bandas de emissão podem possuir larguras de banda iguais ou desiguais e ser sobrepostas ou não-sobrepostas. É também possível uma configuração do banco de filtros allO que produza mais do que duas sub-bandas. Como exemplo, tal banco de filtros pode estar configurado para a produção de um ou mais sinais de banda baixa que incluem componentes em uma faixa de frequências abaixo daquela do sinal de banda estreita s20 (tal como a faixa de 50 a 300 Hz) . É também possível que tal banco de filtros esteja configurado para a produção de um ou mais sinais de banda alta adicionais que incluem componentes em uma faixa de frequências acima daquela do sinal de banda alta s30 (tal como uma faixa de 14 a 20, 16 a 20, ou 16 a 32 kHz) . Em tal caso, o encodificador de fala de banda larga alOO pode ser implementado para encodificar tal sinal ou sinais separadamente, e o multiplexador al30 pode estar configurado para incluir o sinal ou sinais encodifiçados adicionais no sinal multiplexado s70 (por exemplo, como uma parte separável).
As Figuras 3a e 3b apresentam larguras de banda relativas do sinal de fala de banda larga slO, do sinal de banda estreita s20 e do sinal de banda alta s30 em dois exemplos de implementação diferentes. Nestes dois exemplos específicos, o sinal de fala de banda larga slO possui uma taxa de amostragem de 16 kHz (representando componentes de frequência dentro da faixa de 0 a 8 kHz) , e o sinal de banda estreita s20 possui uma taxa de amostragem de 8 kHz (representando componentes de frequência dentro da faixa de 0 a 4 kHz), apesar de tais taxas e faixas não constituírem limites sobre os princípios aqui descritos, os quais podem ser aplicados a quaisquer outras taxas de amostragem e/ou faixas de frequências.
No exemplo da Figura 3a, não ocorre qualquer sobreposição significativa entre as duas sub-bandas. Um sinal de banda alta s30 como neste exemplo pode ser subamostrado (downsampled) até uma taxa de amostragem de 8 kHz. No exemplo alternativo da Figura 3b, as sub-bandas superior e inferior apresentam uma sobreposição apreciável, de tal forma a que a região de 3,5 a 4 kHz seja descrita por ambos os sinais de sub-banda. Um sinal de banda alta s30, tal como neste exemplo, pode ser subamostrado até uma taxa de amostragem de 7 kHz. 0 provimento de uma sobreposição entre as sub-bandas, tal como no exemplo da Figura 3b, pode permitir a um sistema de codificação utilizar um filtro passa-baixa e/ou um filtro passa-alta possuindo um rolloff suave pela região superposta e/ou pode aumentar a qualidade das componentes de frequência reproduzidas na região sobreposta.
Em um típico aparelho para comunicação telefônica, um ou mais dentre os transdutores (isto é, o microfone e o fone ou alto falante) não apresenta uma resposta apreciável na faixa de frequências de 7 a 8 kHz. No exemplo da Figura 3b, a parte do sinal de fala de banda larga slO entre 7 e 8 kHz não é incluída no sinal encodificado. Outros exemplos específicos do filtro de passagem alta 130 possuem bandas de passagem de 3,5 a 7,5 kHz e 3,5 a 8 kHz.
Um codificador pode estar configurado para produzir um sinal sintetizado que é perceptivamente similar ao sinal original, mas que na realidade difere de forma significativa em relação ao sinal original. Como exemplo, um codificador que deriva a excitação de banda alta a partir do residual de banda estreita tal como aqui descrito pode produzir tal sinal, dado que o residual de banda alta real pode estar completamente ausente do sinal decodificado. Em tais casos, o provimento de uma sobreposição entre as sub-bandas pode suportar uma combinação suave de banda baixa e banda alta que pode levar a um menor número de artefatos audíveis e/ou a uma transição menos notável de uma banda para a outra.
As trajetórias de banda baixa e banda alta dos bancos de filtros allO e bl20 podem estar configuradas de modo a possuir espectros que são completamente não relacionados com a sobreposição das duas bandas. A Requerente define a sobreposição das duas bandas como a distância a partir do ponto em que a resposta em frequência do filtro de banda alta cai para -20 dB até o ponto em que a resposta em frequência do filtro de banda baixa cai para -20 dB. Em vários exemplos dos bancos de filtros allO e/ou bl20, tal sobreposição varia de cerca de 200 Hz até cerca de 1 kHz. A faixa de cerca de 400 a cerca de 600 Hz pode representar um equilíbrio aceitável entre a eficiência de codificação e suavidade perceptiva. Em um exemplo específico, tal como acima mencionado, a sobreposição ocorre em torno de 500 Hz.
Pode ser desejável a implementação dos bancos de filtros allO e/ou b!20 para calcular sinais de sub-banda, tal como ilustrado nas Figuras 3a e 3b, em vários estágios. Uma descrição adicional e figuras relacionadas a respostas de elementos de implementações específicas dos bancos de filtros allO e bl20 podem ser encontradas no Pedido de Patente U.S. de Vos et al. intitulado "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING", depositado em 3 de abril de 2006, nas Figuras 3a, 3b, 4c, 4d e 33 a 39b e no texto pertinente, sendo tal material aqui incorporado pela presente referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada aos bancos de filtros allO e/ou bl20. 0 sinal de banda alta s30 pode incluir pulsos de alta energia ("rajadas") que possam ser prejudiciais para a encodif icação. Um encodif icador de fala tal como o encodificador de fala de banda larga alOO pode ser implementado de modo a incluir um supressor de rajadas (por exemplo, tal como descrito no Pedido de Patente U.S. de Vos et al. intitulado "SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND BURST SUPRESSION", depositado em 3 de abril de 2006) para filtrar o sinal de banda alta s30 antes da encodificação (por exemplo, pelo encodificador de banda alta a200). O encodificador de banda estreita al20 e o encodificador de banda alta a200 são, cada um, tipicamente implementados de acordo com um modelo de filtro-fonte que encodifica o sinal de entrada como (a) um conjunto de parâmetros que descrevem um filtro e (b) um sinal de excitação que aciona o filtro descrito a produzir uma reprodução sintetizada do sinal de entrada. A Figura 4a mostra um exemplo de um envelope espectral de um sinal de fala. Os picos que caracterizam tal envelope espectral representam ressonâncias do trato vocal e são designados como "formantes". A maioria dos codificadores de fala encodificam pelo menos tal estrutura espectral grosseira na forma de um conjunto de parâmetros tais como coeficientes de filtro. A Figura 4b apresenta um exemplo de uma disposição filtro-fonte tal como aplicada à codificação do envelope espectral do sinal de banda estreita s20. Um módulo de análise calcula um conjunto de parâmetros que caracterizam um filtro correspondente ao som da fala durante um período de tempo (tipicamente 20 milissegundos (ms)). Um filtro branqueador (também designado como um filtro de análise ou predição de erro) configurado de acordo com tais parâmetros de filtro remove o envelope espectral para comprimir (flatten) espectralmente o sinal. 0 sinal branqueado resultante (também designado como um residual) possui menos energia e, portanto, menos variância, sendo mais fácil de encodificar do que o sinal de fala original. Os erros resultantes da codificação do sinal residual podem também ser espalhados de forma mais uniforme pelo espectro. Os parâmetros de filtro e o residual são tipicamente quantizados para transmissão eficiente através do canal. No decodificador, um filtro de síntese configurado de acordo com os parâmetros de filtro é excitado por um sinal baseado no residual para a produção de uma versão sintetizada do som de fala original. 0 filtro de síntese está tipicamente configurado para possuir uma função de transferência que é o inverso da função de transferência do filtro branqueador. Ά Figura 5 apresenta um diagrama de blocos de uma implementação básica al22 do encodificador de banda estreita al20. Neste exemplo, um módulo de análise de codificação de predição linear (LPC) 210 encodifica o envelope espectral do sinal de banda estreita s20 na forma de um conjunto de coeficientes de predição linear (LP) (por exemplo, os coeficientes de um filtro de todos os pólos (all-pole filter) 1/A(z)). O módulo de análise tipicamente processa o sinal de entrada como uma série de quadros sem sobreposição, com um novo conjunto de coeficientes sendo calculado para cada quadro. O período de quadros é de um modo geral um período durante o qual espera-se que o sinal fique localmente estacionário, um exemplo comum é de 20 milissegundos (equivalente a 160 amostras a uma taxa de amostragem de 8 kHz). Como exemplo, o módulo de análise LPC 210 está configurado para calcular um conjunto de dez coeficientes de filtro LP para caracterizar a estrutura de formantes de cada quadro de 20 milissegundos. É também possível a implementação do módulo de análise para processar o sinal de entrada como uma série de quadros com sobreposição. 0 módulo de análise pode estar configurado para analisar as amostras de cada quadro diretamente, ou as amostras podem ser primeiramente ponderadas de acordo com uma função de janela (por exemplo, uma janela Hamming). A análise também pode ser realizada em uma janela que é maior do que o quadro, tal como uma janela de 30 ms. Tal janela pode ser simétrica (por exemplo, 5-20-5, de tal forma que ela inclua os 5 ms imediatamente antes e após o quadro de 20 ms), ou assimétrica (por exemplo, 10-20, de forma a incluir os últimos 10 ms do quadro anterior). Um módulo de análise LPC é tipicamente configurado para calcular os coeficientes de filtro LP usando uma recursão de Levinson-Durbin ou o algoritmo de Leroux-Gueguen. Em outra implementação, o módulo de análise pode ser configurado para calcular um conjunto de coeficientes cepstrais para cada quadro, em lugar de um conjunto de coeficientes de filtro LP. A taxa de emissão de encodificador al20 pode ser significativamente reduzida, com efeito relativamente pequeno sobre a qualidade de reprodução, por quantização dos parâmetros de filtro. Os coeficientes de filtro de predição linear são difíceis de quantizar eficientemente e são usualmente mapeados para outra representação, tal como pares de linha espectrais (LSP), ou frequências de linha espectrais (LSF), para quantização e/ou codificação por entropia. No exemplo da Figura 5, a transformada de coeficiente de filtro LP para LSF 220 transforma o conjunto de coeficientes de filtro LP em um conjunto correspondente de LSF. Outras representações um a um de coeficientes de filtro LP incluem coeficientes PARCOR, valores de razão log-área, pares de imitância espectral (ISP) e frequências de imitância espectral (ISF), que são usados no CODEC GSM (Sistema Global para Telecomunicações Móveis) AMR-WB (Banda Larga de Multi-taxa Adaptativa). Tipicamente, uma transformada entre um conjunto de coeficientes de filtro LP e um conjunto correspondente de LSFs é reversível, porém as configurações compreendem também implementações do encodificador al20 no qual a transformada não é reversível sem erro. 0 quantizador 230 está configurado para quantizar o conjunto de LSFs de banda estreita (ou outra representação de coeficientes) e o encodificador de banda estreita al22 está configurado para emitir o resultado de tal quantização na forma dos parâmetros de filtro de banda estreita s40. Tal quantizador inclui tipicamente um quantizador de vetor que encodifica o vetor de entrada como um índice para uma entrada vetorial correspondente em uma tabela ou livro código. A Figura 9 apresenta um diagrama de blocos de uma implementação a202 do encodificador de banda alta a200. O módulo de análise a210, a transformada 410 e o quantizador 420 do encodif icador de banda alta a202 podem ser implementados de acordo com as descrições dos elementos correspondentes do encodificador de banda estreita al22 tal como acima descrito (isto é, o módulo de análise LPC 210, a transformada 220 e o quantizador 230, respectivamente), apesar de poder ser desejável usar uma análise LPC de ordem mais baixa para a banda alta. É até mesmo possível que tais elementos de encodificador de banda estreita e banda alta sejam implementados usando-se as mesmas estruturas (por exemplo, arranjos de portas) e/ou conjuntos de instruções (por exemplo, linhas de código) em diferentes momentos. Como será descrito mais adiante, as operações do encodificador de banda estreita al20 e do encodificador de banda alta a200 diferem com referência ao processamento do sinal residual.
Como pode ser visto na Figura 5, o encodificacLor de banda estreita a!22 também gera um sinal residual pela passagem do sinal de banda estreita s20 através de um filtro branqueador 260 (também designado como um filtro de erro de predição ou análise) que está configurado de acordo com o conjunto de coeficientes de filtro. Neste exemplo específico, o filtro branqueador 260 é implementado na forma de um filtro FIR, embora implementações IIR também possam ser usadas. Tal sinal residual irá conter tipicamente informações perceptivamente importantes do quadro de fala, tais como a estrutura de longo prazo relacionada ao "pitch", que não estão representadas nos parâmetros de filtro de banda estreita s40. 0 quantizador 270 está configurado para calcular uma representação quantizada deste sinal residual para emissão na forma do sinal de excitação de banda estreita encodificado s50. Tal quantizador inclui tipicamente um quantizador de vetor que encodifica o vetor de entrada como um índice para uma entrada vetorial correspondente em uma tabela ou livro código. Alternativamente, tal quantizador pode estar configurado para enviar um ou mais parâmetros a partir dos quais o vetor pode ser gerado dinamicamente no decodificador, em lugar de ser recuperado a partir de armazenamento, tal como em método de livro código espaçado. Tal método é usado em esquemas de codificação tais como CELP (predição linear de excitação por livro código) algébrico e CODECs tais como o 3GPP2 (3rd Generation Partnership Project 2) EVRC (CODEC de taxa variável ampliado). É desejável que o encodificador de banda estreita al20 gere o sinal de excitação de banda estreita encodificado de acordo com os mesmos valores de parâmetros de filtro que estarão disponíveis para o correspondente decodificador de banda estreita. Dessa forma, o sinal de excitação de banda estreita encodificado resultante pode já compensar em certo nível de não idealidades em tais valores de parâmetros, tais como o erro de quantização. Assim sendo, é desejável configurar o filtro branqueador usando-se os mesmos valores de coeficientes que estarão disponíveis no decodificador. No exemplo básico do encodificador al22, tal como mostrado na Figura 5, o quantizador inverso 240 dequantiza os parâmetros de codificação de banda estreita s40, a transformada de coeficiente de filtro LSF para LP 250 mapeia os valores resultantes de volta para um conjunto correspondente de coeficientes de filtro LP e tal conjunto de coeficientes é usado para configurar o filtro branqueador 260 para gerar o sinal residual que é quantizado pelo quantizador 270.
Algumas implementações do encodificador de banda estreita al20 estão configuradas para calcular o sinal de excitação de banda estreita s50 por identificação de um dentre um conjunto de vetores de livro código que melhor coincida (match) com o sinal residual. No entanto, deve ser notado que o encodificador de banda estreita al20 pode também ser implementado para calcular uma representação quantizada de sinal residual sem realmente gerar o sinal residual. Como exemplo, o encodificador de banda estreita al20 pode estar configurado para usar um certo número de vetores de livro código para gerar os correspondentes sinais sintetizados (por exemplo, de acordo com um conjunto atual de parâmetros de filtro) e para selecionar o vetor de livro código associado ao sinal gerado que melhor coincida com o sinal de banda estreita original s20 em um domínio perceptivamente ponderado.
Mesmo após o filtro branqueador ter removido o envelope espectral grosseiro do sinal de banda estreita s20, pode restar uma quantidade considerável de estrutura harmônica fina, especialmente para fala com voz. A Figura 7a apresenta uma curva espectral de um exemplo de um sinal residual, tal como pode ser produzido por um filtro branqueador, para um sinal com voz, tal como uma vogal. A estrutura periódica visível em tal exemplo está relacionada ao pitch e diferentes sons com voz falados pelo mesmo locutor podem possuir diferentes estruturas de formantes, porém estruturas de pitch similares. A Figura 7b apresenta uma curva no domínio de tempo de um exemplo de tal sinal residual que apresenta uma sequência de pulsos de pitch no tempo. 0 encodificador de banda estreita al20 pode incluir um ou mais módulos configurados para encodificar a estrutura harmônica de longo prazo do sinal de banda estreita s20. Tal como é mostrado na Figura 8, um típico modelo CELP que pode ser usado inclui um módulo de análise LPC em malha aberta, que encodifica as características de curto prazo ou envelope espectral grosseiro, seguido por um estágio de análise de predição de longo prazo de malha fechada, que encodifica a estrutura harmônica ou pitch fino. As características de curto prazo são encodifiçadas na forma de coeficientes de filtro e as características de longo prazo são encodifiçadas como valores para parâmetros tais como o atraso de pitch e ganho de pitch. Como exemplo, o encodificador de banda estreita al20 pode estar configurado para emitir o sinal de excitação de banda estreita encodificado s50 em uma forma que inclui um ou mais índices de livro código (por exemplo, um índice de livro código fixo e um índice de livro código adaptável) e os correspondentes valores de ganho, 0 cálculo de tal representação quantizada do sinal residual de banda estreita (por exemplo, pelo quantizador 270) pode incluir a seleção de tais índices e o cálculo de tais valores. A encodificação da estrutura de pitch pode também incluir uma interpolação de uma forma de onda protótipo de pitch, operação esta que pode incluir o cálculo de uma diferença entre pulsos de pitch sucessivos. A modelagem da estrutura de longo prazo pode ser desabilitada para os quadros correspondentes à fala sem voz, os quais são tipicamente semelhantes a ruído e não estruturados. Ά Figura 6 apresenta um diagrama de blocos de uma implementação bll2 do decodificador de banda estreita bllO. 0 quantizador inverso 310 dequantiza os parâmetros de filtro de banda estreita s40 (neste caso para um conjunto de LSF) e a transformada de coeficiente de filtro LSF para LP 320 transforma os LSFs em um conjunto de coeficientes de filtro (por exemplo, tal como foi acima descrito com referência ao quantizador inverso 240 e à transformada 250 do encodificador de banda estreita al22). O quantizador inverso 340 dequantiza o sinal residual de banda estreita s40 para a produção de um sinal de excitação de banda estreita s80. Com base nos coeficientes de filtro e no sinal de excitação de banda estreita s80, o filtro de síntese de banda estreita 330 sintetiza o sinal de banda estreita s90. Dito de outra forma, o filtro de síntese de banda estreita 330 está configurado para dispor espectralmente o sinal de excitação de banda estreita s80 de acordo com os coeficientes de filtro dequantizados para a produção do sinal de banda estreita s90. O decodificador de banda estreita bll2 também provê o sinal de excitação de banda estreita s80 para o encodificador de banda alta a200, que o utiliza para derivar o sinal de excitação de banda alta sl20, tal como aqui descrito. Em algumas implementações, tal como descrito mais adiante, o decodificador de banda estreita bllO pode estar configurado para prover informações adicionais para o decodificador de banda alta b200 que estão relacionadas ao sinal de banda estreita, tais como inclinação espectral, atraso e ganho de pitch e modo de fala. O sistema de encodificador de banda estreita al22 e decodificador de banda estreita bll2 constitui um exemplo básico de um CODEC de fala de análise por síntese. A codificação por predição linear de excitação por livro código (CELP) constitui uma família bem conhecida de codificação de análise por síntese e as implementações de tais codificadores podem realizar a encodificação de forma de onda do residual, incluindo operações tais como a seleção de entradas provenientes de livros código fixos e adaptáveis, operações de minimização de erros e/ou operações de ponderação de percepção. Outras implementações de codificação de análise por síntese incluem a predição linear por excitação mista (MELP), CELP algébrica (ACELP), CELP por relaxamento (RCELP), excitação por pulso regular (RPE), CELP multipulso (MPE) e codificação por predição linear excitada por soma de vetores (VSELP). Os métodos de codificação correlacionados incluem a excitação multibanda (MBE) e a codificação por interpolação de forma de onda protótipo (PWI) . Os exemplos de codecs de fala de análise por síntese padronizados incluem o CODEC de taxa total ETSI (European Telecommunications Standards Institute) - GSM (GSM 06.10), que utiliza a predição linear excitada por residual (RELP) , o CODEC de taxa total GSM ampliado (ETSI GSM 06.60), o codificador do padrão ITU (International Telecommunication Union) 11,8 kb/s G.729 Anexo E, os CODECs do IS (padrão provisório) 641 para o IS-136 (um esquema de múltiplo acesso por divisão de tempo), os CODECs GSM multitaxa adaptáveis (GSM-AMR) e o CODEC 4GV™ (Fourth Generation Vocoder ™) (da QUALCOMM Incorporated, de San Diego, CA, EUA). O encodificador de banda estreita al20 e o decodificador bllO correspondente podem ser implementados de acordo com qualquer uma dentre tais tecnologias, ou qualquer outra tecnologia de codificação de fala (seja conhecida ou a ser desenvolvida) que represente um sinal de fala como (a) um conjunto de parâmetros que descrevem um filtro e (b) um sinal de excitação usado para acionar o filtro descrito para reprodução do sinal de fala. 0 encodificador de banda alta a200 está configurado para encodificar o sinal de banda alta s30 de acordo com um modelo filtro-fonte. Como exemplo, o encodificador de banda alta a200 é tipicamente configurado para realizar uma análise LPC do sinal de banda alta s30 para obtenção de um conjunto de parâmetros de filtro que descreve um envelope espectral do sinal. Quanto ao lado de banda estreita, o sinal fonte usado para excitar tal filtro pode ser derivado do ou, caso contrário, baseado no residual da análise LPC. Entretanto, o sinal· de banda alta s30 é tipicamente menos significativo em termos de percepção do que o sinal de banda estreita s20 e seria custoso para o sinal de fala encodificado incluir dois sinais de excitação. Para redução da taxa de bits necessária para transferir o sinal de fala de banda larga encodificado, pode ser desejável ao invés disso o uso de um sinal de excitação modelado para a banda alta. Como exemplo, a excitação para o filtro de banda alta pode ser baseada no sinal de excitação de banda estreita encodificado s50. A Figura 9 apresenta um diagrama de blocos de uma implementação a202 do encodificador de banda alta a200 que está configurado para a produção de um fluxo de parâmetros de codificação de banda alta s60, incluindo os parâmetros de filtro de banda alta s60 e fatores de ganho de banda alta s60b. 0 gerador de excitação de banda alta a300 deriva um sinal de excitação de banda alta sl20 a partir do sinal de excitação de banda estreita encodificado s50. 0 módulo de análise al20 produz um conjunto de valores de parâmetros que caracterizam o envelope espectral do sinal de banda alta s30. Neste exemplo especifico, o módulo de análise al20 está configurado para realizar a análise LPC para a produção de um conjunto de coeficientes de filtro LP para cada quadro do sinal de banda alta s30. A transformada de coeficiente de filtro de predição linear para LSF 410 transforma o conjunto de coeficientes de filtro LP em um conjunto correspondente de LSFs. Como foi acima mencionado com referência ao módulo de análise 210 e à transformada 220, o módulo de análise a210 e/ou a transformada 410 podem estar configurados para uso de outros conjuntos de coeficientes (por exemplo, coeficientes cepstrais) e/ou representações de coeficientes (por exemplo, ISPs). 0 quantizador 420 está configurado para quantizar o conjunto de LSFs de banda alta (ou outra representação de coeficientes, tal como ISPs) e o encodif icador de banda alta a202 está configurado para emitir o resultado de tal quantização na forma dos parâmetros de filtro de banda alta s60a. Tal quantizador inclui tipicamente um quantizador vetorial que encodifica o vetor de entrada na forma de um índice para uma entrada vetorial correspondente em uma tabela ou livro código. O encodificador de banda alta a202 compreende também um filtro de síntese a220 configurado para produzir um sinal de banda alta sintetizado sl30 de acordo com o sinal de excitação de banda alta sl20 e o envelope espectral encodificado (por exemplo, o conjunto de coeficientes de filtro LP) produzidos pelo módulo de análise a210. O filtro de síntese a220 é tipicamente implementado na forma de um filtro IIR, apesar de poderem também ser usadas implementações FIR. Em um exemplo específico, o filtro de síntese a220 é implementado na forma de um filtro linear auto-regressivo de sexta ordem.
Em uma implementação do encodificador de fala de banda larga alOO de acordo com um modelo tal como apresentado na Figura 8, o encodificador de banda alta a200 pode estar configurado para receber o sinal de excitação de banda estreita tal como produzido pelo filtro branqueador ou pela análise de curto prazo. Dito de outra forma, o encodificador de banda estreita al20 pode estar configurado para emitir o sinal de excitação de banda estreita para o encodificador de banda alta a200 antes de encodificar a estrutura de longo prazo. No entanto, é desejável que o encodif icador de banda alta a200 receba do canal de banda estreita as mesmas informações de codificação que serão recebidas pelo decodificador de banda alta b200, de tal forma que os parâmetros de codificação produzidos pelo encodificador de banda alta a200 possam já compensar em certo nivel as não idealidades em tais informações. Dessa forma, pode ser preferível que o encodif icador de banda alta a200 reconstrua o sinal de excitação de banda estreita s80 a partir do mesmo sinal de excitação de banda estreita encodificado quantizado e/ou parametrizado s50 a ser emitido pelo encodificador de fala de banda larga alOO. Uma vantagem potencial desta abordagem consiste de um cálculo mais acurado dos fatores de ganho de banda alta s60b descrito mais adiante. O calculador de fator de ganho de banda alta a230 calcula uma ou mais diferenças entre os níveis do sinal de banda alta original s30 e do sinal de banda alta sintetizado sl30 para especificar um envelope de ganho para o quadro. 0 quantizador 430, que pode ser implementado como um quantizador vetorial que encodifica o vetor de entrada na forma de um índice para uma entrada vetorial correspondente em uma tabela ou livro código, quantiza o valor ou valores que especificam o envelope de ganho, e o encodificador de banda alta a202 está configurado para emitir o resultado de tal quantização na forma de fatores de ganho de banda alta s60b.
Um ou mais dentre os quantizadores dos elementos aqui descritos (por exemplo, os quantizadores 230, 420, ou 430) podem estar configurados para realizar quantização vetorial classificada. Como exemplo, tal quantizador pode estar configurado para selecionar um dentre um conjunto de livros código com base em informações que já foram codificadas dentro do mesmo quadro no canal de banda estreita e/ou no canal de banda alta. Tal técnica provê tipicamente maior eficiência de codificação ao custo de armazenamento de livro código adicional.
Em uma implementação do encodificador de banda alta a200 tal como apresentado na Figura 9, o filtro de síntese a220 está configurado para receber os coeficientes de filtro a partir do módulo de análise a210. Uma implementação alternativa do encodificador de banda alta a202 inclui um quantizador inverso e uma transformada inversa, configurados para decodificar os coeficientes de filtro a partir dos parâmetros de filtro de banda alta s60a e, neste caso, o filtro de síntese a220 está configurado para receber os coeficientes de filtro decodificados. Tal disposição alternativa pode suportar um cálculo mais acurado do envelope de ganho pelo calculador de ganho de banda alta a230.
Em um exemplo específico, o módulo de análise a210 e o calculador de ganho de banda alta a230 emitem um conjunto de seis LSFs e um conjunto de cinco valores de ganho por quadro, respectivamente, de tal forma que uma extensão de banda larga do sinal de banda estreita s20 possa ser obtida com apenas onze valores adicionais por quadro. Como outro exemplo, outro valor de ganho é adicionado para cada quadro para prover uma extensão de banda larga com apenas doze valores adicionais por quadro. 0 ouvido tende a ser menos sensível a erros em frequência nas frequências elevadas, de tal forma que a codificação de banda alta em uma ordem LPC baixa possa produzir um sinal possuindo uma qualidade percebida comparável à codificação de banda estreita em uma ordem LPC mais elevada. Uma implementação típica do encodificador de banda alta a200 pode estar configurada para emitir 8 a 12 bits por quadro para reconstrução de alta qualidade do envelope espectral e outros 8 a 12 bits por quadro para reconstrução de alta qualidade do envelope temporal. Como outro exemplo, o módulo de análise a210 emite um conjunto de oito LSFs por quadro.
Algumas implementações do encodificador de banda alta a200 estão configuradas para produzir o sinal de excitação de banda alta sl20 através da geração de um sinal de ruído aleatório possuindo componentes de frequência de banda alta e modulação em amplitude do sinal de ruído de acordo com o envelope no domínio do tempo do sinal de banda estreita s20, do sinal de excitação de banda estreita s80, ou do sinal de banda alta s30. Em tal caso, pode ser desejável que o estado do gerador de ruído seja uma função determinística de outras informações no sinal de fala encodificado (por exemplo, informações no mesmo quadro, tais como os parâmetros de filtro de banda estreita s40 ou uma parte dos mesmos e/ou o sinal de excitação de banda estreita encodificado s50 ou uma parte do mesmo), de forma a que os geradores de ruído correspondentes nos geradores de excitação de banda alta do encodificador e decodificador possam apresentar os mesmos estados. No entanto, apesar de um método baseado em ruído poder produzir resultados adequados para sons sem voz, pode não ser desejável para sons com voz, cujos residuais são usualmente harmônicos e, consequentemente, possuem uma certa estrutura periódica. O gerador de excitação de banda alta a300 está configurado para obter sinal de excitação de banda estreita s80 (por exemplo, por dequantização do sinal de excitação de banda estreita encodificado s50) e para gerar sinal de excitação de banda alta sl20 com base no sinal de excitação de banda estreita s80. Como exemplo, o gerador de excitação de banda alta a300 pode ser implementado para realizar uma ou mais técnicas tais como a extensão de largura de banda harmônica, dobragem espectral, translação espectral e/ou síntese harmônica usando processamento não linear do sinal de excitação de banda estreita s80. Como exemplo específico, o gerador de excitação de banda alta a300 está configurado para gerar sinal de excitação de banda alta s!20 por extensão de largura de banda não linear do sinal de excitação de banda estreita s80 combinada com mistura adaptável do sinal estendido com um sinal de ruído modulado. 0 gerador de excitação de banda alta a300 pode também estar configurado para realizar filtragem anti-espalhamento do sinal estendido e/ou misturado.
Uma descrição adicional e figuras relacionadas ao gerador de excitação de banda alta a300 e à geração do sinal de excitação de banda alta sl20 podem ser encontradas no Pedido de Patente U.S. N- de Série 11/397 870, intitulado "SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND EXCITATION GENERATION" (de Vos et al.), depositado em 3 de abril de 2006, nas Figuras 11 a 20 e no texto pertinente, sendo tal material aqui incorporado pela presente referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada ao gerador de excitação de banda alta a300 e/ou à geração de um sinal de excitação para uma sub-banda a partir de um sinal de excitação encodificado para outra sub-banda. A Figura 10 apresenta um fluxograma para um método mlO para encodificar uma parte de banda alta de um sinal de fala possuindo uma parte de banda estreita e a parte de banda alta. A tarefa xlOO calcula um conjunto de parâmetros de filtro que caracterizam um envelope espectral da porção de banda alta. A tarefa x200 calcula um sinal espectralmente estendido pela aplicação de uma função não linear a um sinal derivado a partir da parte de banda estreita. A tarefa x300 gera um sinal de banda alta sintetizado de acordo com (a) o conjunto de parâmetros de filtro e (b) um sinal de excitação de banda alta baseado no sinal espectralmente estendido. A tarefa x400 calcula um envelope de ganho com base em uma relação entre (c) a energia da parte de banda alta e (d) a energia de um sinal derivado a partir da parte de banda estreita.
Será tipicamente desejável que as características temporais de um sinal decodificado se assemelhem àquelas do sinal original que ele representa. Além disso, para um sistema no qual diferentes sub-bandas são encodifiçadas separadamente, pode ser desejável que as características temporais relativas das sub-bandas no sinal decodificado se assemelhem às características temporais das sub-bandas no sinal original. Para a reprodução acurada do sinal de fala encodificado, pode ser desejável que a razão entre os níveis das partes de banda alta e banda estreita do sinal de fala de banda larga sintetizado slOO seja similar àquela no sinal de fala de banda larga original slO. 0 encodificador de banda alta a200 pode estar configurado para incluir informações no sinal de fala encodificado que descrevam, ou estejam de outra forma baseadas em, um envelope temporal do sinal de banda alta original. Para um caso em que o sinal de excitação de banda alta é baseado em informações provenientes de outra sub-banda, tal como o sinal de excitação de banda estreita encodificado s50, pode ser desejável, em particular para os parâmetros encodificados, a inclusão de informações descrevendo uma diferença entre os envelopes temporais do sinal de banda alta sintetizado e o sinal de banda alta original.
Além das informações relacionadas ao envelope espectral do sinal de banda alta s30 (isto é, tal como descrito pelos coeficientes LPC ou valores de parâmetros similares), pode ser desejável que os parâmetros encodificados de um sinal de banda larga incluam informações temporais do sinal de banda alta s30. Além de um envelope espectral tal como representado pelos parâmetros de codificação de banda alta s60a, por exemplo, o encodificador de banda alta a200 pode estar configurado para caracterizar o sinal de banda alta s30 através da especificação de um envelope de ganho ou temporal. Tal como apresentado na Figura 9, o encodificador de banda alta a202 inclui um calculador de fator de ganho de banda alta a230 que- está configurado e disposto para calcular um ou mais fatores de ganho de acordo com uma relação entre o sinal de banda alta s30 e o sinal de banda alta sintetizado sl30, tal como uma diferença ou razão entre as energias dos dois sinais em um quadro ou alguma parte do mesmo. Em outras implementações do encodificador de banda alta a202, o calculador de ganho de banda alta a230 pode estar configurado de forma similar, porém disposto para calcular o envelope de ganho de acordo com tal relação variável com o tempo entre o sinal de banda alta s30 e o sinal de excitação de banda estreita s80 ou o sinal de excitação de banda alta sl20.
Os envelopes temporais do sinal de excitação de banda estreita s80 e do sinal de banda alta s30 provavelmente serão similares. Portanto, um envelope de ganho que é baseado em uma relação entre o sinal de banda alta s30 e o sinal de excitação de banda estreita s80 (ou um sinal dele derivado, tal como o sinal de excitação de banda alta sl20 ou o sinal de banda alta sintetizado sl30) estará de um modo geral melhor adequado para encodificação do que um envelope de ganho com base apenas no sinal de banda alta s30. 0 encodificador de banda alta a202 inclui um calculador de fator de ganho de banda alta a230 configurado para calcular um ou mais fatores de ganho para cada quadro do sinal de banda alta s30, em que cada fator de ganho é baseado em uma relação entre envelopes temporais de partes correspondentes do sinal de banda alta sintetizado sl30 e do sinal de banda alta s30. Como exemplo, o calculador de fator de ganho de banda alta a230 pode estar configurado para calcular cada fator de ganho na forma de uma razão entre envelopes de amplitude dos sinais, ou de uma razão entre envelopes de energia dos sinais. Em uma implementação típica, o encodificador de banda alta a202 está configurado para emitir um índice quantizado de oito a doze bits que especifica cinco fatores, de ganho para cada quadro (por exemplo, um para cada cinco sub-quadros consecutivos). Em outra implementação, o encodificador de banda alta a202 está configurado para emitir um índice quantizado adicional que especifica um fator de ganho no nível de quadro para cada quadro.
Um fator de ganho pode ser calculado como um fator de normalização, tal como uma razão R entre uma medida de energia do sinal original e uma medida de energia do sinal sintetizado. A razão R pode ser expressa na forma de um valor linear ou um valor logarítmico (por exemplo, em uma escala de decibéis). 0 calculador de fator de ganho de banda alta a230 pode estar configurado para calcular tal fator de normalização para cada quadro. Alternativa ou adicionalmente, o calculador de fator de ganho de banda alta a230 pode estar configurado para calcular uma série de fatores de ganho para cada um dentre um certo número de sub-quadros de cada quadro. Como exemplo, o calculador de fator de ganho de banda alta a230 está configurado para calcular a energia de cada quadro (e/ou sub-quadro) como uma raiz quadrada de uma soma de quadrados. 0 calculador de fator de ganho de banda alta a230 pode estar configurado para realizar o cálculo do fator de ganho como uma tarefa que inclui uma ou mais séries de subtarefas. A Figura 11 apresenta um fluxograma de um exemplo t200 para tal tarefa que calcula um valor de ganho para uma parte correspondente do sinal de banda alta encodificado (por exemplo, um quadro ou sub-quadro) de acordo com as energias relativas de partes correspondentes do sinal de banda alta s30 e do sinal de banda alta sintetizado sl30. As tarefas 220a e 220b calculam as energias das partes correspondentes dos respectivos sinais. Como exemplo, as tarefas 220a e 220b podem ser configuradas para calcular a energia como uma soma dos quadrados das amostras das respectivas partes. A tarefa t230 calcula um fator de ganho como a raiz quadrada da razão de tais energias. Neste exemplo, a tarefa t230 calcula um fator de ganho para a parte como a raiz quadrada da razão da energia do sinal de banda alta s30 na parte pela energia do sinal de banda alta sintetizado sl30 na parte.
Pode ser desejável que o calculador de fator de ganho de banda alta a230 esteja configurado para calcular as energias de acordo com uma função de janela. A Figura 12 apresenta um fluxograma para tal implementação t210 da tarefa de cálculo de fator de ganho t200. A tarefa t215a aplica uma função de janela ao sinal de banda alta s30 e a tarefa t215b aplica a mesma função de janela ao sinal de banda alta sintetizado sl30. As implementações 222a e 222b das tarefas 220a e 220b calculam as energias das respectivas janelas e a tarefa t230 calcula um fator de ganho para a parte como a raiz quadrada da razão das energias.
Ao calcular um fator de ganho para um quadro, pode ser desejável a aplicação de uma função de janela que sobreponha quadros adjacentes. Ao calcular um fator de ganho para um sub-quadro, pode ser desejável a aplicação de uma função de janela que sobreponha sub-quadros adjacentes. Como exemplo, uma função de janela que produza fatores de ganho que podem ser aplicados de uma forma a sobrepor -somar pode auxiliar a reduzir ou evitar descontinuidades entre sub-quadros. Como exemplo, o calculador de fator de ganho de banda alta a230 está configurado para aplicar uma função de janela trapezoidal, tal como mostrado na Figura 13a, em que a janela sobrepõe cada um dos dois sub-quadros adjacentes por um milissegundo. A Figura 13b apresenta uma aplicação de tal função de janela a cada um dos cinco sub-quadros de um quadro de 20 milissegundos. Outras implementações do calculador de fator de ganho de banda alta a230 podem ser configuradas para aplicar funções de janela possuindo diferentes períodos de sobreposição e/ou diferentes formatos de janela (por exemplo, retangular, Hamming) que podem ser simétricas ou assimétricas. É também possível que uma implementação do calculador de fator de ganho de banda alta a230 seja configurada para aplicar diferentes funções de janela a diferentes sub-quadros dentro de um quadro e/ou que um quadro inclua sub-quadros de diferentes comprimentos. Em uma implementação específica, o calculador de fator de ganho de banda alta a230 está configurado para calcular fatores de ganho de sub-quadros usando uma função de janela trapezoidal, tal como mostrado nas Figuras 13a e 13b, estando também configurado para calcular um fator de ganho no nível de quadro sem usar uma função de janela.
Sem qualquer limitação, os valores a seguir são apresentados como exemplos para implementações específicas. Presume-se um quadro de 20 ms para tais casos, apesar de poder ser usada qualquer outra duração. Para um sinal de banda alta amostrado a 7 kHz, cada quadro possui 140 amostras. Caso tal quadro esteja dividido em cinco sub-quadros de igual tamanho, cada sub-quadro terá 28 amostras e a janela, tal como mostrada na Figura 13a, terá largura de 42 amostras. Para um sinal de banda alta amostrado a 8 kHz, cada quadro possui 160 amostras. Caso tal quadro seja dividido em cinco sub-quadros de igual tamanho, cada sub-quadro terá 32 amostras e a janela, tal como mostrada na Figura 13a, terá largura de 48 amostras. Em outras implementações, podem ser usados sub-quadros de qualquer largura, e é até mesmo possível que uma implementação do calculador de ganho de banda alta a230 seja configurada para produzir um fator de ganho diferente para cada amostra de um quadro.
Como foi acima mencionado, o encodificador de banda alta a202 pode incluir um calculador de fator de ganho de banda alta a230 que está configurado para calcular uma série de fatores de ganho de acordo com uma relação variável com o tempo entre o sinal de banda alta s30 e um sinal baseado em sinal de banda estreita s20 (tal como o sinal de excitação de banda estreita s80, o sinal de excitação de banda alta sl20, ou o sinal de banda alta sintetizado sl30). A Figura 14a ilustra um diagrama de blocos de uma implementação a232 do calculador de fator de ganho de banda alta a230. 0 calculador de fator de ganho de banda alta a232 inclui uma implementação glOa do calculador de envelope glO que está configurado para calcular um envelope de um primeiro sinal e uma implementação glOb do calculador de envelope glO que está configurado para calcular um envelope de um segundo sinal. Os calculadores de envelope glOa e glOb podem ser idênticos ou podem ser casos de diferentes implementações do calculador de envelope glO. Em alguns casos, os calculadores de envelope glOa e glOb podem ser implementados como a mesma estrutura (por exemplo, um arranjo de portas) e/ou conjunto de instruções (por exemplo, linhas de código) configurada para processar diferentes sinais em diferentes momentos.
Os calculadores de envelope glOa e glOb podem, cada um, estar configurados para calcular um envelope de amplitude (por exemplo, de acordo com uma função de valor absoluto) ou um envelope de energia (por exemplo, de acordo com uma função de elevação ao quadrado). Tipicamente, cada calculador de envelope glOa e glOb está configurado para calcular um envelope que é sub-amostrado com relação ao sinal de entrada (por exemplo, um envelope possuindo um valor para cada quadro ou sub-quadro do sinal de entrada). Como foi acima descrito com referência, por exemplo, às Figuras 11 a 13b, os calculadores de envelope glOa e/ou glOb podem estar configurados para calcular o envelope de acordo com uma função de janela, a qual pode estar configurada para sobrepor quadros e/ou sub-quadros adjacentes. 0 calculador de fator g20 está configurado para calcular uma série de fatores de ganho de acordo com uma relação variável com o tempo entre os dois envelopes ao longo do tempo. Como exemplo, tal como acima descrito, o calculador de fator g20 calcula cada fator de ganho como a raiz quadrada da razão dos envelopes durante um sub-quadro correspondente. Alternativamente, o calculador de fator g20 pode estar configurado para calcular cada fator de ganho com base em uma distância entre os envelopes, tal como uma diferença, ou uma diferença ao quadrado assinada entre os envelopes durante um sub-quadro correspondente. Pode ser desejável configurar o calculador de fator g20 para emitir os valores calculados dos fatores de ganho em uma forma escalonada em decibéis ou logarítmica. Como exemplo, o calculador de fator g20 pode ser configurado para calcular um logaritmo da razão de dois valores de energia como a diferença dos logaritmos dos valores de energia. A Figura 14b apresenta um diagrama de blocos de uma disposição generalizada incluindo o calculador de fator de ganho de banda alta a232 em que o calculador de envelope glOa está configurado para calcular um envelope de um sinal com base no sinal· de banda estreita s20, o calculador de envelope glOb está configurado para calcular um envelope do sinal de banda alta s30 e o calculador de fator g20 está configurado para emitir os fatores de ganho de banda alta s60b (por exemplo, para o quantizador 430). Neste exemplo, o calculador de envelope glOa está configurado para calcular um envelope de um sinal recebido proveniente do processamento intermediário Pl, o qual pode incluir estruturas e/ou instruções tal como aqui descrito que são configuradas para realizar o cálculo do sinal de excitação de banda estreita s80, geração do sinal de excitação de banda alta sl20 e/ou síntese do sinal de banda alta sl30. Por conveniência, é presumido que o calculador de envelope glOa está configurado para calcular um envelope do sinal de banda alta sintetizado sl30, embora as implementações nas quais o calculador de envelope glOa é configurado para calcular um envelope do sinal de excitação de banda estreita s80, ou do sinal de excitação de banda alta sl20, sejam expressamente contempladas e aqui descritas.
Como foi acima mencionado, pode ser desejável a obtenção de fatores de ganho com duas ou mais resoluções de tempo diferentes. Como exemplo, pode ser desejável que o calculador de fator de ganho de banda alta a230 esteja configurado para calcular tanto fatores de ganho no nível de quadros como uma série de fatores de ganho de sub-quadros para cada quadro do sinal de banda alta s30 a ser encodificado. A Figura 15 apresenta um diagrama de blocos de uma implementação a234 do calculador de fator de ganho de banda alta a232 que inclui as implementações glOaf, glOas do calculador de envelope glO que estão configuradas para calcular envelopes no nível de quadro e no nível de sub-quadro, respectivamente, de um primeiro sinal (por exemplo, o sinal de banda alta sintetizado sl30, embora as implementações nas quais os calculadores de envelope glOaf, glOas são configurados para calcular envelopes do sinal de excitação de banda estreita s80 ou sinal de excitação de banda alta sl20 sejam expressamente contempladas e aqui descritas) . 0 calculador de fator de ganho de banda alta a234 compreende também as implementações glObf e glObs do calculador de envelope glOb que estão configuradas para calcular envelopes no nível de quadro e de sub-quadro, respectivamente, de um segundo sinal (por exemplo, o sinal de banda alta s30) .
Os calculadores de envelope glOaf e glObf podem ser idênticos ou podem constituir casos de diferentes implementações do calculador de envelope glO. Em alguns casos, os calculadores de envelope glOaf e glObf podem ser implementados como a mesma estrutura (por exemplo, um arranjo de portas) e/ou um conjunto de instruções (por exemplo, linhas de código) configurada para processar diferentes sinais em diferentes momentos. De forma similar, os calculadores de envelope glOas e glObs podem ser idênticos, podem ser casos de diferentes implementações do calculador de envelope glO, ou podem ser implementados como a mesma estrutura e/ou conjunto de instruções. É até mesmo possível que todos os quatro geradores de envelope glOaf, glOas, glObf e glObs, sejam implementados como a mesma estrutura e/ou conjunto de instruções configuráveis em diferentes momentos.
As implementações g20f, g20s do calculador de fator g20 tal como aqui descrito estão configuradas para calcular os fatores de ganho no nível de quadro e de sub-quadro s60bf e s60bs com base nos respectivos envelopes. 0 normalizador nlO, que pode ser implementado na forma de um multiplicador ou divisor para se adequar ao esquema específico, está configurado para normalizar cada conjunto de fatores de ganho de sub-quadro s60bs de acordo com o fator de ganho de nível de quadro s60bf correspondente (por exemplo, antes que os fatores de ganho de sub-quadro sejam quantizados) . Em alguns casos, pode ser desejado obter um resultado possivelmente mais acurado pela quantização do fator de ganho de nível de quadro s60bf e a seguir usar o valor dequantizado correspondente para normalizar os fatores de ganho de sub-quadro s60bs. A Figura 16 apresenta um diagrama de blocos de outra implementação a236 do calculador de fator de ganho de banda alta a232. Em tal implementação, vários envelopes e calculadores de ganho tal como mostrados na Figura 15 são reorganizados de tal forma que a normalização seja realizada sobre o primeiro sinal antes que o envelope seja calculado. 0 normalizador n20 pode ser implementado como um multiplicador ou divisor para se adequar ao esquema específico. Em alguns casos, pode ser desejado obter um resultado possivelmente mais acurado pela quantização do fator de ganho de nível de quadro s60bf e a seguir usar o valor dequantizado correspondente para normalizar o primeiro sinal. 0 quantizador 430 pode ser implementado de acordo com quaisquer técnicas conhecidas ou a serem desenvolvidas para realizar um ou mais métodos de quantização escalar e/ou vetorial considerados adequados para o esquema específico. O quantizador 430 pode ser configurado para quantizar os fatores de ganho de nível de quadro separadamente dos fatores de ganho de sub-quadros. Como exemplo, cada fator de ganho de nível de quadro s60bf é quantizado usando-se um quantizador de tabela de consulta de quatro bits e o conjunto de fatores de ganho de sub-quadro s60bs para cada quadro é quantizado vetorialmente usando-se quatro bits. Tal esquema é usado no codificador EVRC-WB para quadros de fala com voz (tal como mencionado na seção 4.18.4 do documento 3GPP2 C.S0014-C versão 0.2, disponível em www.3gpp2.org). Como outro exemplo, cada fator de ganho de nível de quadro s60bf é quantizado usando-se um quantizador escalar de sete bits e o conjunto de fatores de ganho de sub-quadros s60bs para cada quadro é quantizado vetorialmente usando-se um quantizador vetorial multi-estágio com quatro bits por estágio. Tal esquema é usado no codificador EVRC-wb para quadros de fala sem voz (tal como mencionado na seção 4.18.4 do documento 3GPP2 C.S0014-C versão 0.2, acima mencionado). É também possível que em outros esquemas, cada fator de ganho de nível de quadro seja quantizado em conjunto com os fatores de ganho de sub-quadros para tal quadro.
Um quantizador é tipicamente configurado para mapear um valor de entrada para um dentre um conjunto de valores de saída individuais. Um número limitado de valores de saída está disponível, de tal forma que uma gama de valores de entrada seja mapeada em um único valor de saída. A quantização aumenta a eficiência de codificação pois um índice que indica o valor de saída correspondente pode ser transmitido em menos bits do que o valor de entrada original. A Figura 17 apresenta um exemplo de um mapeamento unidimensional tal como pode ser realizado por um quantizador escalar, em que valores de entrada entre (2«£>-l)/2 e (2«D + l)/ 2 são mapeados para um valor de saída nD (para n inteiro).
Um quantizador pode também ser implementado como um quantizador vetorial. Como exemplo, o conjunto de fatores de ganho de sub-quadros para cada quadro é tipicamente quantizado usando-se um quantizador vetorial. A Figura 18 apresenta um exemplo simples de um mapeamento multidimensional tal como realizado por um quantizador vetorial. Neste exemplo, o espaço de entrada está dividido em um certo número de regiões Voronoi (por exemplo, de acordo com um critério de vizinho mais próximo). A quantização mapeia cada valor de entrada para um valor que representa a região Voronoi correspondente (tipicamente o centróide), aqui mostrado como um ponro. Neste exemplo, o espaço de entrada está dividido em seis regiões, de tal forma que qualquer valor de entrada possa ser representado por um índice possuindo apenas seis estados diferentes. A Figura 19a apresenta outro exemplo de um mapeamento unidimensional tal como pode ser realizado por um quantizador escalar. Neste exemplo, um espaço de entrada que se estende de algum valor- inicial (por exemplo, 0 dB) até algum valor terminal b (por exemplo, 6 dB) é dividido em n regiões. Os valores em cada uma das n regiões são representados por um valor correspondente dentre n valores de quantização q [0] a q[n-l] . Em uma aplicação típica, o conjunto de n valores de quantização está disponível para o encodificador e decodificador, de tal forma que a transmissão do índice de quantização (0 a n-1) seja suficiente para transferência do valor quantizado a partir do encodificador para o decodificador. Como exemplo, o conjunto de valores ' de quantização pode ser armazenado em uma tabela, livro código, ou lista ordenada dentro de cada dispositivo.
Apesar de a Figura 19a apresentar um espaço de entrada dividido em n regiões de igual tamanho, pode ser desejável dividir o espaço de entrada usando regiões de diferentes tamanhos. É possível que um resultado médio mais acurado seja obtido pela distribuição dos valores de quantização de acordo com uma distribuição esperada dos dados de entrada. Como exemplo, pode ser desejável a obtenção de uma resolução mais alta (isto é, regiões de quantização menores) em áreas do espaço de entrada que se espera que sejam observadas mais frequentemente e uma resolução mais baixa em outros locais. A Figura 19b apresenta um exemplo de tal mapeamento. Como outro exemplo, os tamanhos das regiões de quantização aumentam a medida que a amplitude cresce de a para b (por exemplo, de forma logarítmica). Também podem ser usadas regiões de quantização de diferentes tamanhos na quantização vetorial (por exemplo, tal como mostrado na Figura 18) . Na quantização de fatores de ganho de nível de quadro s60bf, o quantizador 430 pode estar configurado para aplicar um mapeamento que é uniforme ou não uniforme, conforme desejado. De forma similar, na quantização de fatores de ganho de sub-quadros s60bs, o quantizador 430 pode estar configurado para aplicação de um mapeamento que é uniforme ou não uniforme, conforme desejado. O quantizador 430 pode ser implementado de modo a incluir quantizadores separados para os fatores s60bf e s60bs e/ou pode ser implementado para usar a mesma estrutura configurável e/ou o conjunto de instruções para quantizar os diferentes fluxos de fatores de ganho em momentos diferentes.
Como foi acima descrito, os fatores de ganho de banda alta s60b encodificam uma relação variável com o tempo entre um envelope do sinal de banda alta original s30 e um envelope de um sinal baseado no sinal de excitação de banda estreita s80 (por exemplo, o sinal de banda alta sintetizado sl30). Tal relação pode ser reconstruída no decodificador de tal forma que os níveis relativos dos sinais de banda estreita e banda alta decodificados se aproximem daqueles componentes de banda estreita e banda alta do sinal de fala de banda larga original slO.
Um artefato audível pode ocorrer caso os níveis relativos das várias sub-bandas em um sinal de fala decodificado não sejam acurados. Como exemplo, um artefato que pode ser notado pode ocorrer quando um sinal de banda alta decodificado possui um nível mais alto (por exemplo, uma energia maior) com referência a um sinal de banda estreita decodificado correspondente do que no sinal de fala original. Os artefatos audíveis podem prejudicar a experiência do usuário e reduzir a qualidade percebida do codificador. Para se obter um resultado perceptivamente bom, pode ser desejável que o encodif icador de sub-banda (por exemplo, o encodificador de banda alta a200) seja conservador na alocação de energia para o sinal sintetizado. Como exemplo, pode ser desejável o uso de um método de quantização conservador para encodificar um valor de fator de ganho para o sinal sintetizado.
Um artefato resultante de desequilíbrio de nível pode ser especialmente objetávei para uma situação em que a excitação para a sub-banda amplificada seja derivada a partir de outra sub-banda. Tal artefato pode ocorrer quando, por exemplo, um fator de ganho de banda alta s60b é quantizado para um valor maior do que seu valor originai. A Figura 19c ilustra um exemplo em que o valor quantizado para um valor de fator de ganho R é maior do que o valor original. 0 valor quantizado é aqui denotado como q[ÍR], onde iR indica o índice de quantização associado ao valor R e q[·] indica a operação de obtenção do valor de quantização identificado pelo índice em questão. A Figura 20a apresenta um fluxograma para um método mlOO para limitar fator de ganho de acordo com uma implementação geral. A tarefa tqlO calcula um valor R para um fator de ganho de uma parte (por exemplo, um quadro ou sub-quadro) de um sinal de sub-banda. Como exemplo, a tarefa tqlO pode ser configurada para calcular o valor R como a relação da energia do quadro de sub-banda original pela energia de um quadro de sub-banda sintetizado. Alternativamente, o valor de fator de ganho R pode ser um logaritmo (por exemplo, de base 10) de tal relação. A tarefa tqlO pode ser realizada por uma implementação do calculador de fator de ganho de banda alta a230 tal como acima descrito. A tarefa tq20 quantiza o valor de fator de ganho R. Tal quantização pode ser realizada por qualquer método de quantização escalar (por exemplo, tal como aqui descrito) ou qualquer outro método considerado adequado para o esquema de codificador específico, tal como um método de quantização vetorial. Em uma aplicação típica, a tarefa tq20 é configurada para identificar um índice de quantização iR correspondente ao valor de entrada R. Como exemplo, a tarefa tq20 pode ser configurada para selecionar o índice pela comparação do valor de R com entradas em uma lista, tabela, ou livro código de quantização, de acordo com um esquema de busca desejado (por exemplo, um algoritmo de erro mínimo). Neste exemplo é presumido que a tabela ou lista de quantização está configurada em ordem decrescente do esquema de busca (isto é, de tal modo que ^[z-l]<ç[z]) . A tarefa tq30 avalia uma relação entre o valor de ganho quantizado e o valor original. Neste exemplo, a tarefa tq30 compara o valor de ganho quantizado com o valor original. Caso a tarefa tq30 constate que o valor quantizado de R não é maior do que o valor de entrada de R, então o método mlOO termina. No entanto, caso a tarefa tq30 constate que o valor quantizado de R excede aquele de R, a tarefa tq50 é executada para selecionar um índice de quantização diferente para R. Como exemplo, a tarefa tq50 pode ser configurada para selecionar um índice que indique um valor de quantização menor do que ç[zR] .
Em uma implementação típica, a tarefa tq50 seleciona o próximo valor mais baixo na lista, tabela, ou livro código de quantização. A Figura 20b apresenta um fluxograma para uma implementação mllO do método mlOO que inclui tal implementação tq52 da tarefa tq50, em que a tarefa tq52 está configurada para decrementar o índice de quantização.
Em alguns casos, pode ser desejável permitir que o valor quantizado de R exceda o valor de R por uma certa quantidade nominal. Como exemplo, pode ser desejável permitir que o valor quantizado de R exceda o valor de R por uma certa quantidade ou proporção que se espera ter um efeito aceitavelmente baixo sobre a qualidade percebida. A Figura 20c apresenta um fluxograma para tal implementação ml20 do método mlOO. O método ml20 inclui uma implementação tq32 da tarefa tq30 que compara o valor quantizado de R com um limite superior maior do que R. Neste exemplo, a tarefa tq32 compara «/[zjj com o produto de R e um limite Τχ, em que Τχ possui um valor maior do que a, porém próximo à, unidade (por exemplo, 1,1 ou 1,2). Caso a tarefa tq32 constate que o valor quantizado é menor do que (alternativamente, não maior do que) o produto, então uma implementação da tarefa tq50 é executada. Outras implementações da tarefa tq30 podem estar configuradas para determinar se uma diferença entre o valor de R e o valor quantizado de R é igual ou maior do que um limite. É possível em alguns casos que a seleção de um valor de quantização mais baixo para R cause uma maior discrepância entre os sinais decodificados do que o valor de quantização original. Como exemplo, tal situação pode ocorrer quando ^[ζβ-ΐ] for muito menor do que o valor de R. Outras implementações do método mlOO incluem métodos em que a execução ou configuração da tarefa tq50 é contingente ao testar o valor de quantização candidato (por exemplo, <l[iR -Φ · A Figura 20d apresenta um fluxograma para tal implementação ml30 do método mlOO. 0 método ml30 inclui uma tarefa tq40 que compara o valor de quantização candidato (por exemplo, #[/Λ-ΐ]) com um limite baixo menor do que R. Neste exemplo, a tarefa tq40 compara ^[ζβ] com o produto de R e um limite T2, em que T2 possui um valor menor, porém próximo à unidade (por exemplo, 0,8 ou 0,9). Caso a tarefa tq40 constate que o valor de quantização candidato não é maior (alternativamente, é menor) que o produto, então o método ml30 termina. Caso a tarefa tq40 constate que o valor quantizado é maior (alternativamente, não é menor) que o produto, então uma implementação da tarefa tq50 é executada. Outras implementações da tarefa tq40 podem ser configuradas para determinar se uma diferença entre o valor de quantização candidato e o valor de R é igual que e/ou excede um limite.
Uma implementação do método mlOO pode ser aplicada aos fatores de ganho de nível de quadro s60bf e/ou aos fatores de ganho de sub-quadros s60bs. Em uma aplicação típica, tal método é aplicado somente aos fatores de ganho de nível de quadro. No caso do método selecionar um novo índice de quantização para um fator de ganho de nível de quadro, pode ser desejável recalcular os fatores de ganho de sub-quadros s60bs correspondentes com base no novo valor quantizado do fator de ganho de nível de quadro.
Alternativamente, o cálculo dos fatores de ganho de sub-quadros s60bs pode ser configurado para ocorrer após um método para limitar fator de ganho ter sido realizado sobre o correspondente fator de ganho de nível de quadro. A Figura 21 apresenta um diagrama de blocos de uma implementação a203 do encodificador de banda alta a202. 0 encodificador a203 inclui um limitador de fator de ganho 110 que está configurado para receber os valores de fator de ganho quantizados e seus valores originais (isto é, pré-quantização) . O limitador 110 está configurado para emitir fatores de ganho de banda alta s60b de acordo com uma relação entre tais valores. Como exemplo, o limitador 110 pode estar configurado para realizar uma implementação do método mlOO tal como aqui descrito para emitir fatores de ganho de banda alta s60b na forma de um ou mais fluxos de índices de quantização. A Figura 22 apresenta um diagrama de blocos de uma implementação a204 do encodificador de banda alta a203 que está configurado para emitir fatores de ganho de sub-quadros s60bs tal como produzidos pelo quantizador 430 e para emitir fatores de ganho de nível de quadro sôObf via limitador 110. A Figura 23a apresenta um diagrama operacional para uma implementação 112 do limitador 110. 0 limitador 112 compara os valores pré e pós-quantização de R para determinar se ^[ζΛ] é maior que R. Caso tal expressão seja verdadeira, então o limitador 112 seleciona outro índice de quantização, decrementando o valor do índice iR em um para produzir um novo valor quantizado para R. Caso contrário, o valor do índice iR não é modificado. A Figura 23b apresenta um diagrama operacional para outra implementação 114 do limitador 110. Neste exemplo, o valor quantizado é comparado ao produto do valor de R e um limite Ti, em que 1j possui um valor maior, porém próximo à unidade (por exemplo, 1,1 ou 1,2) . Caso #[ζΛ] seja maior (alternativamente, não menor) que TiR, o limitador 114 decrementa o valor do índice iR . A Figura 23c apresenta um diagrama operacional para outra implementação 116 do limitador 110, que está configurado para determinar se o valor de quantização proposto para substituir o valor atual está próximo o suficiente ao valor original de R. Como exemplo, o limitador 116 pode estar configurado para realizar uma comparação adicional para determinar se o próximo menor valor de quantização indexado (por exemplo, q\iR -1]) está dentro de uma distância especificada, ou dentro de uma proporção especificada, do valor pré-quantizado de R. Neste exemplo específico, o valor de quantização candidato é comparado ao produto do valor de R e um limite T2, em que T2 possui um valor menor, porém próximo à unidade (por exemplo, 0,8 ou 0,9) . Caso q[iR-l] seja menor (alternativamente, não maior) que T2R, a comparação falha. Caso qualquer das comparações realizadas com ^[ζΛ] e q[iR-l] falhe, o valor do índice iR não é modificado. É possível que variações entre fatores de ganho dêem origem a artefatos no sinal decodificado, podendo ser desejável configurar o encodificador de banda alta a200 para realizar um método para uniformização do fator de ganho (por exemplo, pela aplicação de um filtro de uniformização tal como um filtro IIR de uma derivação). Tal uniformização pode ser aplicada a fatores de ganho de nível de quadro s60bf e/ou fatores de ganho de sub-quadros s60bs. Em tal caso, uma implementação do limitador 110 e/ou do método mlOO tal como aqui descrito pode ser configurada para comparar o valor quantizado iR com o valor pré-uniformizado de R. Uma descrição adicional e figuras relacionadas a tal uniformização de fator de ganho podem ser encontradas no Pedido de Patente U.S. N- de Série 11/408 390 (de Vos et al.), intitulado "SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR SMOOTHING", depositado em 21 de abril de 2006, nas Figuras 48 a 55b e no texto correspondente, sendo tal material aqui incorporado pela presente referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada à uniformização de fator de ganho.
Caso um sinal de entrada para um quantizador seja muito uniforme, algumas vezes pode acontecer da emissão quantizada ser muito menos uniforme, de acordo com um "degrau" mínimo entre valores no espaço de emissão da quantização. Tal efeito pode levar a artefatos audíveis, e pode ser desejável reduzir este efeito para fatores de ganho. Em alguns casos, o desempenho de quantização de fator de ganho pode ser melhorado pela implementação do quantizador 430 para incorporar formatação de ruído temporal. Tal formatação pode ser aplicada aos fatores de ganho de nível de quadro s60bf e/ou aos fatores de ganho de sub-quadros s60bs. Uma descrição adicional e figuras relacionadas à quantização de fatores de ganho utilizando formatação de ruído temporal podem ser encontradas no Pedido de Patente U.S. N2 de Série 11/408 390, nas Figuras 48 a 55b e no texto correspondente, sendo tal material aqui incorporado por referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada à quantização de fatores de ganho utilizando-se formatação de ruído temporal.
Para um caso em que o sinal de excitação de banda alta sl20 é derivado a partir de um sinal de excitação que foi regularizado, pode ser desejado distorcer temporalmente o envelope temporal do sinal de banda alta s30 de acordo com a distorção temporal do sinal de excitação fonte. Uma descrição adicional e figuras relacionadas a tal distorção de tempo podem ser encontradas no Pedido de Patente U.S. de Vos et al. Intitulado "SYSTEMS, METHODS, AND APPARATUS FOR HIGH BAND TIME WARPING", depositado em 3 de abril de 2006, nas Figuras 25 a 29 e no texto correspondente sendo tal material aqui incorporado pela presente referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada à distorção temporal do envelope temporal do sinal de banda alta s30.
Um certo grau de similaridade entre o sinal de banda alta s30 e o sinal de banda alta sintetizado sl30 pode indicar quão bem o sinal de banda alta decodificado slOO será semelhante ao sinal de banda alta s30. Especificamente, uma similaridade entre os envelopes temporais do sinal de banda alta s30 e do sinal de banda alta sintetizado sl30 pode indicar que o sinal de banda alta decodificado slOO deve possuir uma boa qualidade de som e ser percept ivamente similar ao sinal de banda alta s30. Uma grande variação ao longo do tempo entre os envelopes pode ser tomada como uma indicação de que o sinal sintetizado é muito diferente do original e, em tal caso, pode ser desejável identificar e atenuar tais fatores de ganho antes da quantização. Uma descrição adicional e figuras relacionadas a tal atenuação de fator de ganho podem ser encontradas no Pedido de Patente U.S. de Vos et al. Intitulado "SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR ATTENUATION", depositado em 21 de abril de 2006, nas Figuras 34 a 39 e no texto correspondente, sendo tal material aqui incorporado por referência, nos EUA e em qualquer outra jurisdição que permita tal incorporação por referência, com o propósito de prover uma descrição adicional relacionada à atenuação de fator de ganho. A Figura 24 apresenta um diagrama de blocos de uma implementação b202 do decodificador de banda alta b200. 0 decodificador de banda alta b202 inclui um gerador de excitação de banda alta b300 que está configurado para a produção do sinal de excitação de banda alta sl20 com base no sinal de excitação de banda estreita s80. Dependendo das escolhas específicas do projeto do sistema, o gerador de excitação de banda alta b300 pode ser implementado de acordo com qualquer uma das implementações do gerador de excitação de banda alta b300 aqui descritas. Tipicamente, é desejável implementar o gerador de excitação de banda alta b300 de modo a possuir a mesma resposta que o gerador de excitação de banda alta do encodificador de banda alta do sistema de codificação específico. No entanto, dado que o decodificador de banda estreita bllO irá tipicamente realizar a dequantização do sinal de excitação de banda estreita encodificado s50, na maioria dos casos o gerador de excitação de banda alta b300 pode ser implementado para receber o sinal de excitação de banda estreita s80 a partir do decodificador de banda estreita bllO e não necessita incluir um quantizador inverso configurado para dequantizar o sinal de excitação de banda estreita encodificado s50. É também possível que o decodificador de banda estreita bllO seja implementado para incluir um caso do filtro anti-espalhamento 600 configurado para filtrar o sinal de excitação de banda estreita dequantizado antes que ele seja inserido em um filtro de síntese de banda estreita tal como o filtro 330. O quantizador inverso 560 está configurado para dequantizar os parâmetros de filtro de banda alta s60a (neste exemplo para um conjunto de LSFs) e a transformada de coeficiente de filtro LP para LSF 570 está configurada para transformar os LSFs em um conjunto de coeficientes de filtro (por exemplo, tal como acima descrito com referência ao quantizador inverso 240 e transformada 250 do encodificador de banda estreita al22) . Em outras implementações, como foi acima mencionado, podem ser usados diferentes conjuntos de coeficientes (por exemplo, coeficientes cepstrais) e/ou representações de coeficientes (por exemplo, ISPs). O filtro de síntese de banda alta b200 está configurado para a produção de um sinal de banda alta sintetizado de acordo com o sinal de excitação de banda alta sl20 e o conjunto de coeficientes de filtro. Para um sistema em que o encodificador de banda alta inclui um filtro de síntese (por exemplo, tal como no caso do encodificador a202 acima descrito), pode ser desejável implementar o filtro de síntese de banda alta b200 de modo a possuir a mesma resposta (por exemplo, a mesma função de transferência) que aquele filtro de síntese. O decodificador de banda alta b202 inclui também um quantizador inverso 580 configurado para dequantizar os fatores de ganho de banda alta s60b e um elemento de controle de ganho 590 (por exemplo, um multiplicador ou amplificador) configurados e dispostos para aplicar os fatores de ganho dequantizados ao sinal de banda alta sintetizado para produzir o sinal de banda alta slOO. Para um caso em que o envelope de ganho de um quadro é especificado por mais de um fator de ganho, o elemento de controle de ganho 590 pode incluir uma lógica configurada para aplicar os fatores de ganho aos respectivos sub-quadros, possivelmente de acordo com uma função de janela que pode ser a mesma ou uma função de janela diferente da aplicada por um calculador de ganho (por exemplo, o calculador de ganho de banda alta a230) do encodificador de banda alta correspondente. Em outras implementações do decodificador de banda alta b202, o elemento de controle de ganho 590 está configurado de modo similar, porém está disposto para a aplicação dos fatores de ganho dequantizados ao sinal de excitação de banda estreita s80 ou ao sinal de excitação de banda alta sl20. O elemento de controle de ganho 590 pode também ser implementado para a aplicação de fatores de ganho em mais de uma resolução temporal (por exemplo, para normalizar o sinal de entrada de acordo com um fator de ganho de nível de quadro e para formatar o sinal resultante de acordo com um conjunto de fatores de ganho de sub-quadros).
Uma implementação do decodificador de banda estreita bllO de acordo com um modelo tal como o apresentado na Figura 8 pode estar configurada para emitir o sinal de excitação de banda estreita s80 para o decodificador de banda alta b200 após a estrutura de longo prazo (estrutura harmônica ou de pitch) ter sido restaurada. Como exemplo, tal decodificador pode estar configurado para emitir o sinal de excitação de banda estreita s80 como uma versão dequantizada do sinal de excitação de banda estreita encodificado s50. Naturalmente, é também possível implementar o decodificador de banda estreita bllO de tal forma que o decodificador de banda alta b200 efetue a dequantização do sinal de excitação de banda estreita encodificado s50 para obtenção do sinal de excitação de banda estreita s80.
Apesar de serem em grande parte descritos como aplicados à encodificação de banda alta, os princípios aqui descritos podem ser aplicados a qualquer codificação de uma sub-banda de um sinal de fala em relação a outra sub-banda do sinal de fala. Como exemplo, o banco de filtros do encodificador pode estar configurado para emitir um sinal de banda baixa para um encodificador de banda baixa (como alternativa ou em adição a um ou mais sinais de banda alta), e o encodificador de banda baixa pode estar configurado para realizar uma análise espectral do sinal de banda baixa, para estender o sinal de excitação de banda estreita encodificado e para calcular um envelope de ganho para o sinal de banda baixa encodificado em relação ao sinal de banda baixa original. Para cada uma de tais operações, é expressamente contemplado e aqui descrito que o encodificador de banda baixa pode estar configurado para realizar tal operação de acordo com qualquer uma dentre a ampla gama de variações aqui descritas. A apresentação acima das configurações descritas é provida para permitir que os técnicos na área efetuem ou façam uso dos princípios e estruturas aqui descritos. Várias modificações são possíveis para tais configurações e os princípios genéricos aqui apresentados podem ser também aplicados a outras configurações. Como exemplo, uma configuração pode ser implementada em parte ou no todo na forma de um circuito conectado (hard-wired) , na forma de uma configuração de circuito produzida em um circuito integrado de aplicação específica, ou na forma de um programa de firmware carregado em armazenamento não volátil, ou um programa de software carregado a partir de ou em um meio para armazenamento de dados na forma de um código legível por máquina, tal código consistindo de instruções executáveis por um arranjo de elementos lógicos, tal como um microprocessador ou outra unidade de processamento de sinais digitais. 0 meio para armazenamento de dados pode ser um arranjo de elementos de armazenamento tais como uma memória de semicondutor (a qual pode incluir, sem qualquer limitação, uma RAM (memória de acesso aleatório) dinâmica ou estática), ROM (memória somente de leitura) e/ou RAM flash) ou uma memória ferro-elétrica, magneto-resistiva, ovônica, polimérica, ou de mudança de fase; ou um meio de disco, tal como um disco magnético ou óptico. 0 termo "software" deve ser considerado como incluindo um código fonte, um código de linguagem Assembly, um código de máquina, um código binário, firmware, macrocódigo, microcódigo, qualquer um dentre um ou mais conjuntos ou sequências de instruções executáveis por um arranjo de elementos lógicos, bem como quaisquer combinações de tais exemplos.
Os vários elementos de implementações do calculador de fator de ganho de banda alta a230, do encodificador de banda alta a200, do decodificador de banda alta b200, do encodif icador de fala de banda larga alOO e do decodificador de fala de banda larga blOO podem ser implementados na forma de dispositivos ópticos e/ou eletrônicos residentes, por exemplo, no mesmo chip ou entre dois ou mais chips em um conjunto de chips, apesar de outras disposições sem tal limitação serem também contempladas. Um ou mais elementos de tal equipamento (por exemplo, o calculador de fator de ganho de banda alta a230, o quantizador 430 e/ou o limitador 110) podem ser implementados no todo ou em parte como um ou mais conjuntos de instruções dispostos para execução em um ou mais arranjos fixos ou programáveis de elementos lógicos (por exemplo, transistores, portas) tais como microprocessadores, processadores embutidos, núcleos IP, processadores de sinais digitais, arranjos de porta programáveis em campo (FPGAs), produtos padrão de aplicações específicas (ASSPs) e circuitos integrados de aplicações específicas (ASICs). É também possível que um ou mais de tais elementos possuam uma estrutura em comum (por exemplo, um processador usado para executar partes de um código correspondente a diferentes elementos em momentos diferentes, um conjunto de instruções executadas para realizar tarefas correspondentes a diferentes elementos em diferentes momentos, ou uma disposição de dispositivos ópticos e/ou eletrônicos efetuando operações para diferentes elementos em momentos diferentes). Além disso, é possível que um ou mais de tais elementos sejam usados para realizar tarefas ou executar outros conjuntos de instruções que não estão diretamente relacionados a uma operação do equipamento, tal como uma tarefa relacionada a outra operação de um dispositivo ou sistema em que o equipamento está embutido.
As configurações incluem também métodos adicionais de codificação de fala, encodificação e decodificação tal como expressamente aqui descritos, por exemplo por descrições de estruturas configuradas para realizar tais métodos. Cada um de tais métodos pode também estar incorporado (por exemplo, em um ou mais meios de armazenamento de dados tal como acima descritos) na forma de um ou mais conjuntos de instruções legíveis e/ou executáveis por uma máquina, incluindo um arranjo de elementos lógicos (por exemplo, um processador, um microprocessador, um micro-controlador, ou outra máquina de estado finito). Dessa forma, a presente invenção não deve ser limitada às configurações acima descritas, mas deve receber o escopo mais amplo consistente com os princípios e características novas aqui descritos em qualquer forma, inclusive nas reivindicações anexas tal como depositadas, as quais fazem parte da descrição original.
REIVINDICAÇÕES

Claims (13)

1. Método de codificação de um sinal de fala de banda larga (S10) incluindo gerar um valor de fator de ganho quantizado (S60b), o método compreendendo: calcular um valor de fator de ganho (TQ10) com base em uma taxa ou uma diferença entre (A) um envelope temporal de uma parte no tempo de um primeiro sinal de banda alta (S30) do sinal de fala de banda larga (S10) e (B) um envelope temporal de uma parte no tempo correspondente a um segundo sinal baseado em um sinal de excitação codificado (S50) derivado a partir de um sinal de banda estreita (S20) do sinal de fala de banda larga (S10); selecionar um primeiro índice a partir de um conjunto ordenado de valores de quantização correspondente ao valor de fator de ganho (TQ20); o método caracterizado por compreender adicionalmente: determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado (TQ30, TQ32); e se o valor de quantização indicado pelo primeiro índice é maior que o valor baseado no valor de fator de ganho calculado, selecionar um segundo índice a partir do conjunto ordenado de valores de quantização, o segundo índice tendo um valor de quantização menor do que o do primeiro índice e utilizando o segundo índice como o valor de fator de ganho quantizado (TQ50, TQ52); ou se o valor de quantização indicado pelo primeiro índice não é maior do que o valor baseado no valor de fator de ganho calculado, utilizar o primeiro índice como o valor de fator de ganho quantizado.
2. Método, de acordo com a reivindicação 1, caracterizado por determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreender determinar se o valor de quantização indicado pelo primeiro índice excede o valor do fator de ganho (TQ30).
3. Método, de acordo com a reivindicação 1, caracterizado por determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreender determinar se o valor de quantização indicado pelo primeiro índice excede o valor de fator de ganho em uma quantidade específica.
4. Método, de acordo com a reivindicação 1, caracterizado por determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreender determinar se o valor de quantização indicado pelo primeiro índice excede o valor de fator de ganho em uma proporção específica do valor de fator de ganho (TQ32).
5. Método, de acordo com a reivindicação 1, caracterizado pelo primeiro índice selecionado a partir do conjunto ordenado de valores de quantização corresponder ao valor de fator de ganho ser o índice indicando o valor de quantização entre o conjunto ordenado que é mais próximo ao valor de fator de ganho.
6. Método, de acordo com a reivindicação 5, caracterizado pelo segundo índice ser o índice no conjunto ordenado que tem o próximo valor de quantização mais baixo comparado ao valor de quantização para o primeiro índice (TQ52).
7. Memória legível por computador caracterizada por compreender instruções para realizar o método conforme definido em qualquer uma das reivindicações 1 a 6.
8. Equipamento para codificação de um sinal de fala de banda larga (S10) incluindo gerar um valor de fator de ganho quantizado (S60b), o equipamento compreendendo: meios (A230) para calcular um valor de fator de ganho baseado em uma taxa ou uma diferença entre (A) um envelope temporal de uma parte no tempo de um primeiro sinal de banda alta (S30) do sinal de fala de banda larga (S10) e (B) um envelope temporal de uma parte no tempo correspondente de um segundo sinal baseado em um sinal de excitação codificado (S50) derivado a partir de um sinal de banda estreita (S20) do sinal de fala de banda larga(S10); meios (430) para selecionar um primeiro índice a partir de um conjunto ordenado de valores de quantização correspondendo ao valor de fator de ganho; o equipamento caracterizado por compreender ainda: meios (L10) para determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado; meios (L10) para selecionar um segundo índice a partir do conjunto ordenado de valores de quantização se o valor de quantização indicado pelo primeiro índice é maior que o valor baseado no valor de fator de ganho calculado, o segundo índice tendo um valor de quantização menor do que o do primeiro índice e selecionar o segundo índice como o valor de fator de ganho quantizado; e meios (L10) para selecionar o primeiro índice como o valor de fator de ganho quantizado se o valor de quantização indicado pelo primeiro índice não é maior do que o valor baseado no valor de fator de ganho calculado.
9. Equipamento, de acordo com a reivindicação 8, caracterizado pelos meios para determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreenderem meios para determinar se o valor de quantização indicado pelo primeiro índice excede o valor de fator de ganho.
10. Equipamento, de acordo com a reivindicação 8, caracterizado pelos meios para determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreenderem meios para determinar se o valor de quantização indicado pelo primeiro índice excede o valor de fator de ganho por uma quantidade específica.
11. Equipamento, de acordo com a reivindicação 8, caracterizado pelos meios para determinar se o valor de quantização indicado pelo primeiro índice não é maior que um valor baseado no valor de fator de ganho calculado compreenderem meios para determinar se o valor de quantização indicado pelo primeiro índice excede o valor de fator de ganho por uma proporção específica do valor de fator de ganho.
12. Equipamento, de acordo com a reivindicação 8, caracterizado pelo primeiro índice selecionado a partir do conjunto ordenado de valores de quantização corresponder ao valor de fator de ganho ser o índice indicando o valor de quantização entre o conjunto ordenado que é mais próximo do valor de fator de ganho.
13. Equipamento, de acordo com a reivindicação 12, caracterizado pelo segundo índice ser o índice no conjunto ordenado que tem o próximo valor de quantização mais baixo comparado ao valor de quantização para o primeiro índice.
BRPI0715516-6A2 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para limitar fator de ganho BRPI0715516B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US83465806P 2006-07-31 2006-07-31
US60/834,658 2006-07-31
US11/610,104 2006-12-13
US11/610,104 US9454974B2 (en) 2006-07-31 2006-12-13 Systems, methods, and apparatus for gain factor limiting
PCT/US2007/074794 WO2008030673A2 (en) 2006-07-31 2007-07-31 Systems, methods, and apparatus for gain factor limiting

Publications (2)

Publication Number Publication Date
BRPI0715516A2 BRPI0715516A2 (pt) 2013-07-09
BRPI0715516B1 true BRPI0715516B1 (pt) 2019-12-10

Family

ID=38987459

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0715516-6A2 BRPI0715516B1 (pt) 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para limitar fator de ganho

Country Status (11)

Country Link
US (1) US9454974B2 (pt)
EP (1) EP2047466B1 (pt)
JP (1) JP5290173B2 (pt)
KR (1) KR101078625B1 (pt)
CN (1) CN101496101B (pt)
BR (1) BRPI0715516B1 (pt)
CA (1) CA2657910C (pt)
ES (1) ES2460893T3 (pt)
RU (1) RU2420817C2 (pt)
TW (1) TWI352972B (pt)
WO (1) WO2008030673A2 (pt)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989548B (zh) * 2004-07-20 2010-12-08 松下电器产业株式会社 语音解码装置及补偿帧生成方法
KR20080047443A (ko) * 2005-10-14 2008-05-28 마츠시타 덴끼 산교 가부시키가이샤 변환 부호화 장치 및 변환 부호화 방법
KR101413968B1 (ko) * 2008-01-29 2014-07-01 삼성전자주식회사 오디오 신호의 부호화, 복호화 방법 및 장치
EP2255534B1 (en) * 2008-03-20 2017-12-20 Samsung Electronics Co., Ltd. Apparatus and method for encoding using bandwidth extension in portable terminal
KR101614160B1 (ko) 2008-07-16 2016-04-20 한국전자통신연구원 포스트 다운믹스 신호를 지원하는 다객체 오디오 부호화 장치 및 복호화 장치
JP4932917B2 (ja) * 2009-04-03 2012-05-16 株式会社エヌ・ティ・ティ・ドコモ 音声復号装置、音声復号方法、及び音声復号プログラム
WO2011045927A1 (ja) * 2009-10-14 2011-04-21 パナソニック株式会社 符号化装置、復号装置およびこれらの方法
EP2510515B1 (en) 2009-12-07 2014-03-19 Dolby Laboratories Licensing Corporation Decoding of multichannel audio encoded bit streams using adaptive hybrid transformation
AU2011358654B2 (en) * 2011-02-09 2017-01-05 Telefonaktiebolaget L M Ericsson (Publ) Efficient encoding/decoding of audio signals
ES2727131T3 (es) * 2011-02-16 2019-10-14 Dolby Laboratories Licensing Corp Decodificador con filtros configurables
CN103295578B (zh) 2012-03-01 2016-05-18 华为技术有限公司 一种语音频信号处理方法和装置
CN104321815B (zh) * 2012-03-21 2018-10-16 三星电子株式会社 用于带宽扩展的高频编码/高频解码方法和设备
CN105551497B (zh) * 2013-01-15 2019-03-19 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
US9601125B2 (en) * 2013-02-08 2017-03-21 Qualcomm Incorporated Systems and methods of performing noise modulation and gain adjustment
US9818424B2 (en) * 2013-05-06 2017-11-14 Waves Audio Ltd. Method and apparatus for suppression of unwanted audio signals
FR3007563A1 (fr) * 2013-06-25 2014-12-26 France Telecom Extension amelioree de bande de frequence dans un decodeur de signaux audiofrequences
FR3008533A1 (fr) * 2013-07-12 2015-01-16 Orange Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences
EP2830061A1 (en) * 2013-07-22 2015-01-28 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an encoded audio signal using temporal noise/patch shaping
US9384746B2 (en) 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
KR102271852B1 (ko) * 2013-11-02 2021-07-01 삼성전자주식회사 광대역 신호 생성방법 및 장치와 이를 채용하는 기기
CN104681032B (zh) * 2013-11-28 2018-05-11 中国移动通信集团公司 一种语音通信方法和设备
US10163447B2 (en) * 2013-12-16 2018-12-25 Qualcomm Incorporated High-band signal modeling
US9564141B2 (en) * 2014-02-13 2017-02-07 Qualcomm Incorporated Harmonic bandwidth extension of audio signals
CN105336336B (zh) * 2014-06-12 2016-12-28 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器
US9984699B2 (en) * 2014-06-26 2018-05-29 Qualcomm Incorporated High-band signal coding using mismatched frequency ranges
CN105225671B (zh) * 2014-06-26 2016-10-26 华为技术有限公司 编解码方法、装置及系统
US9595269B2 (en) 2015-01-19 2017-03-14 Qualcomm Incorporated Scaling for gain shape circuitry
US10020002B2 (en) * 2015-04-05 2018-07-10 Qualcomm Incorporated Gain parameter estimation based on energy saturation and signal scaling
US10499165B2 (en) * 2016-05-16 2019-12-03 Intricon Corporation Feedback reduction for high frequencies
TWI594231B (zh) * 2016-12-23 2017-08-01 瑞軒科技股份有限公司 分頻壓縮電路,音訊處理方法以及音訊處理系統

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2893691B2 (ja) 1988-11-25 1999-05-24 ソニー株式会社 デイジタル信号処理装置
JPH0828875B2 (ja) 1989-08-21 1996-03-21 三菱電機株式会社 符号化装置および復号化装置
IT1257431B (it) * 1992-12-04 1996-01-16 Sip Procedimento e dispositivo per la quantizzazione dei guadagni dell'eccitazione in codificatori della voce basati su tecniche di analisi per sintesi
JP3498375B2 (ja) 1994-07-20 2004-02-16 ソニー株式会社 ディジタル・オーディオ信号記録装置
JPH08123500A (ja) 1994-10-24 1996-05-17 Matsushita Electric Ind Co Ltd ベクトル量子化装置
DE19680399T1 (de) 1995-04-19 1997-09-18 Motorola Inc Verfahren und Vorrichtung zur niederratigen Kodierung und Dekodierung
JP3707116B2 (ja) 1995-10-26 2005-10-19 ソニー株式会社 音声復号化方法及び装置
JP3353266B2 (ja) 1996-02-22 2002-12-03 日本電信電話株式会社 音響信号変換符号化方法
EP0878790A1 (en) * 1997-05-15 1998-11-18 Hewlett-Packard Company Voice coding system and method
US6260010B1 (en) * 1998-08-24 2001-07-10 Conexant Systems, Inc. Speech encoder using gain normalization that combines open and closed loop gains
US6397178B1 (en) * 1998-09-18 2002-05-28 Conexant Systems, Inc. Data organizational scheme for enhanced selection of gain parameters for speech coding
US6324505B1 (en) * 1999-07-19 2001-11-27 Qualcomm Incorporated Amplitude quantization scheme for low-bit-rate speech coders
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US7260523B2 (en) * 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US6704711B2 (en) 2000-01-28 2004-03-09 Telefonaktiebolaget Lm Ericsson (Publ) System and method for modifying speech signals
US6732070B1 (en) * 2000-02-16 2004-05-04 Nokia Mobile Phones, Ltd. Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching
US6947888B1 (en) * 2000-10-17 2005-09-20 Qualcomm Incorporated Method and apparatus for high performance low bit-rate coding of unvoiced speech
CA2327041A1 (en) * 2000-11-22 2002-05-22 Voiceage Corporation A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
US7003454B2 (en) * 2001-05-16 2006-02-21 Nokia Corporation Method and system for line spectral frequency vector quantization in speech codec
DE60217522T2 (de) * 2001-08-17 2007-10-18 Broadcom Corp., Irvine Verbessertes verfahren zur verschleierung von bitfehlern bei der sprachcodierung
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US6988066B2 (en) * 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for narrow-band speech
US20040002856A1 (en) * 2002-03-08 2004-01-01 Udaya Bhaskar Multi-rate frequency domain interpolative speech CODEC system
US7047188B2 (en) * 2002-11-08 2006-05-16 Motorola, Inc. Method and apparatus for improvement coding of the subframe gain in a speech coding system
US7242763B2 (en) * 2002-11-26 2007-07-10 Lucent Technologies Inc. Systems and methods for far-end noise reduction and near-end noise compensation in a mixed time-frequency domain compander to improve signal quality in communications systems
EP1618557B1 (en) * 2003-05-01 2007-07-25 Nokia Corporation Method and device for gain quantization in variable bit rate wideband speech coding
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
FI118550B (fi) 2003-07-14 2007-12-14 Nokia Corp Parannettu eksitaatio ylemmän kaistan koodaukselle koodekissa, joka käyttää kaistojen jakoon perustuvia koodausmenetelmiä
US7613607B2 (en) * 2003-12-18 2009-11-03 Nokia Corporation Audio enhancement in coded domain
FI119533B (fi) * 2004-04-15 2008-12-15 Nokia Corp Audiosignaalien koodaus
JP4977472B2 (ja) 2004-11-05 2012-07-18 パナソニック株式会社 スケーラブル復号化装置
DK1875463T3 (en) * 2005-04-22 2019-01-28 Qualcomm Inc SYSTEMS, PROCEDURES AND APPARATUS FOR AMPLIFIER FACTOR GLOSSARY
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding

Also Published As

Publication number Publication date
CA2657910C (en) 2015-04-28
EP2047466B1 (en) 2014-03-26
TWI352972B (en) 2011-11-21
EP2047466A2 (en) 2009-04-15
KR101078625B1 (ko) 2011-11-01
JP2009545775A (ja) 2009-12-24
US9454974B2 (en) 2016-09-27
US20080027718A1 (en) 2008-01-31
CN101496101B (zh) 2013-01-23
RU2009107198A (ru) 2010-09-10
ES2460893T3 (es) 2014-05-14
KR20090025349A (ko) 2009-03-10
RU2420817C2 (ru) 2011-06-10
CA2657910A1 (en) 2008-03-13
BRPI0715516A2 (pt) 2013-07-09
JP5290173B2 (ja) 2013-09-18
WO2008030673A3 (en) 2008-06-26
WO2008030673A2 (en) 2008-03-13
CN101496101A (zh) 2009-07-29
TW200820219A (en) 2008-05-01

Similar Documents

Publication Publication Date Title
BRPI0715516B1 (pt) sistemas, métodos e equipamentos para limitar fator de ganho
US10885926B2 (en) Classification between time-domain coding and frequency domain coding for high bit rates
ES2705589T3 (es) Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
US8069040B2 (en) Systems, methods, and apparatus for quantization of spectral envelope representation
US9899032B2 (en) Systems and methods of performing gain adjustment

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according art. 34 industrial property law
B06T Formal requirements before examination
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: G10L 21/02

Ipc: G10L 21/038 (2013.01), G10L 25/18 (2013.01), G10L

B09A Decision: intention to grant
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 10/12/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 10/12/2019, OBSERVADAS AS CONDICOES LEGAIS