BR112017001630B1 - Processador e método para processamento de um sinal de áudio utilizando análise truncada ou partes de sobreposição da janela de síntese - Google Patents
Processador e método para processamento de um sinal de áudio utilizando análise truncada ou partes de sobreposição da janela de síntese Download PDFInfo
- Publication number
- BR112017001630B1 BR112017001630B1 BR112017001630-3A BR112017001630A BR112017001630B1 BR 112017001630 B1 BR112017001630 B1 BR 112017001630B1 BR 112017001630 A BR112017001630 A BR 112017001630A BR 112017001630 B1 BR112017001630 B1 BR 112017001630B1
- Authority
- BR
- Brazil
- Prior art keywords
- window
- overlapping
- length
- overlapping part
- asymmetric
- Prior art date
Links
Abstract
Um processador para processamento de um sinal de áudio (200) compreende: um analisador (202) para derivação de um sinal de controle de janela (204) a partir do sinal de áudio (200), indicando uma mudança de uma primeira janela assimétrica (1400) para uma segunda janela (1402) ou indicando uma mudança de uma terceira janela (1450) para uma quarta janela assimétrica (1452), em que a segunda janela (1402) é mais curta do que a primeira janela (1400) ou em que a terceira janela (1450) é mais curta do que a quarta janela (1452); um construtor de janela (206) para construção da segunda janela (1402), utilizando uma primeira parte de sobreposição (800) da primeira janela assimétrica (1400), em que o construtor de janela (206) é configurado para determinar uma primeira parte de sobreposição (1000) da segunda janela (1402) utilizando uma primeira parte de sobreposição truncada da primeira janela assimétrica ou em que o construtor de janela é configurado para calcular uma segunda parte de sobreposição (1330) da terceira janela (1450) utilizando uma segunda parte de sobreposição truncada (814) da quarta janela assimétrica (1452); e um janelador (208) para aplicação da primeira e segunda janelas ou da terceira e quarta janelas para obter partes do sinal de áudio janeladas (210).
Description
[0001] A presente invenção se refere ao processamento de áudio e, particularmente, ao processamento de áudio com janelas de sobreposição para um lado de análise ou lado de síntese de uma cadeia de processamento do sinal de áudio.
[0002] Codificadores de áudio de frequência-domínio mais modernos com base nas transformadas de sobreposição, como a MDCT, empregam algum tipo de comutação de tamanho da transformada para adaptar a resolução de tempo e frequência às propriedades atuais do sinal. Diferentes abordagens foram desenvolvidas para controlar a comutação entre os tamanhos de transformada disponíveis e seus formatos de janela correspondentes. Algumas abordagens inserem uma janela de transição entre as molduras codificadas utilizando diferentes comprimentos de transformada, por exemplo, MPEG-4 (HE-)AAC [1]. A desvantagem das janelas de transição é a necessidade de um codificador elevado olhar para frente, tornando-o inadequado para aplicações de baixo atraso. Outros empregam uma baixa sobreposição de janela fixa para todos os tamanhos de transformada a fim de evitar a necessidade de janelas de transições, por exemplo, CELT [2]. Entretanto, a baixa sobreposição reduz a separação de frequência que degrada a eficiência de codificação para sinais tonais. Uma abordagem de comutação instantânea melhorada que emprega diferentes comprimentos de transformada e sobreposição para sobreposições simétricas é dada em [3]. [6] mostra um exemplo para comutação instantânea entre diferentes comprimentos de transformada utilizando janelas de seno de baixa sobreposição.
[0003] Por outro lado, codificadores de áudio de baixo atraso geralmente empregam janelas de MDCT assimétricas, pois elas exibem um bom compromisso entre a separação de atraso e de frequência. No lado do codificador uma sobreposição encurtada com a estrutura subsequente é utilizada para reduzir o atraso do olhar para frente, enquanto uma sobreposição longa com a estrutura anterior é utilizada para melhorar a separação de frequência. No lado do decodificador uma versão espelhada da janela do codificador é utilizada. O janelamento assimétrico de análise e síntese é representado nas figuras de 8a a 8c.
[0004] É um objeto da presente invenção fornecer um conceito melhorado para processamento de um sinal de áudio.
[0005] Esse objeto é alcançado por um processador para processamento de um sinal de áudio de acordo com a reivindicação 1, um método para processamento de um sinal de áudio de acordo com a reivindicação 17 ou um programa de computador de acordo com a reivindicação 18.
[0006] A presente invenção se baseia na constatação de que janelas de transformada assimétricas são úteis para atingir a boa eficiência de codificação para sinais fixos em um atraso reduzido. Por outro lado, a fim de ter uma estratégia flexível de comutação de tamanho da transformada, as janelas de atraso e síntese para uma transição de um tamanho do bloco para um tamanho de bloco diferente possibilitam o uso de partes de sobreposição truncadas das janelas assimétricas, como bordas da janela ou como uma base para as bordas da janela sem perturbar a perfeita propriedade de reconstrução.
[0007] Assim, as partes truncadas de uma janela assimétrica, como a longa parte de sobreposição da janela assimétrica, podem ser utilizadas dentro da janela de transição. Entretanto, a fim de cumprir com o comprimento necessário da janela de transição, esta parte de sobreposição ou borda da janela assimétrica ou flanco é truncado em um comprimento permissível dentro das restrições da janela de transição. Entretanto, isto não viola a perfeita propriedade de reconstrução. Assim, esse truncamento das partes de sobreposição da janela das janelas assimétricas possibilita janelas de transição de comutação curta e instantânea sem qualquer penalidade do lado da reconstrução perfeita.
[0008] Em aplicações adicionais, prefere-se não utilizar a parte de sobreposição truncada diretamente, mas nivelar ou realizar um aumento gradual (fade-in) ou diminuição gradual (fade-out) da descontinuidade incorrida pelo truncamento da parte de sobreposição da janela assimétrica sob consideração.
[0009] Aplicações adicionais dependem de uma implementação de economia de memória alta devido ao fato de que apenas uma quantidade mínima das bordas da janela ou flancos da janela é armazenada na memória, e mesmo para um aumento gradual ou diminuição gradual, uma certa borda da janela é utilizada. Essas implementações eficientes de memória adicionalmente constroem bordas decrescentes de janela a partir de uma borda da janela crescente ou vice-versa por meio de operações lógicas ou aritméticas, de modo que apenas uma única borda, como uma borda crescente ou uma decrescente, tenha que ser armazenada e a outra possa ser derivada rapidamente.
[0010] Uma aplicação compreende um processador ou um método para processamento de um sinal de áudio. O processador tem um analisador para derivação de um sinal de controle de janela a partir do sinal de áudio indicando uma mudança de uma primeira janela assimétrica para uma segunda janela em um processamento de análise do sinal de áudio. De modo alternativo ou adicional, o sinal de controle de janela indica uma mudança de uma terceira janela para uma quarta janela assimétrica no caso de, por exemplo, um processamento de sinal de síntese. Particularmente, para o lado de análise, a segunda janela é mais curta do que a primeira janela ou, no lado de síntese, a terceira janela é mais curta do que a quarta janela.
[0011] O processador adicionalmente compreende um construtor de janela para construção da segunda janela ou da terceira janela, utilizando uma primeira parte de sobreposição da primeira janela assimétrica. Particularmente, o construtor de janela é configurado para determinar a primeira parte de sobreposição da segunda janela utilizando uma primeira parte de sobreposição truncada da primeira janela assimétrica. De modo alternativo ou adicional, o construtor de janela é configurado para calcular uma segunda parte de sobreposição da terceira janela utilizando uma segunda parte de sobreposição da quarta janela assimétrica.
[0012] Finalmente, o processador tem um janelador para aplicação da primeira e da segunda janelas, particularmente para um processamento de análise ou para aplicação da terceira e da quarta janelas no caso de um processamento de síntese para obter partes do sinal de áudio em janela.
[0013] Conforme conhecido, um janelamento de análise ocorre logo no começo de um codificador de áudio, onde um fluxo de amostras de sinal de áudio discreto no tempo e subsequente ao tempo é janelado pela sequência de janelas e, por exemplo, uma comutação de uma janela longa para uma janela curta é realizada quando o analisador de fato detecta um transiente no sinal de áudio. Então, subsequente ao janelamento, uma conversão de domínio de tempo em domínio de frequência é realizada e, nas aplicações preferidas, essa conversão é realizada utilizando a transformada discreta de cosseno modificada (MDCT | modified discrete cosine transform). A MDCT utiliza uma operação de dobramento e uma transformada de DCT IV subsequente, a fim de gerar, a partir de um conjunto de 2N amostras de domínio de tempo, um conjunto de N amostras de domínio de frequência e estes valores de domínio de frequência são, então, posteriormente processados.
[0014] No lado de síntese, o analisador não realiza uma análise de sinal real do sinal de áudio, mas o analisador deriva o sinal de controle de janela de uma informação adicional ao sinal de áudio codificado indicando uma certa sequência de janela determinada por um analisador do lado do codificador e transmitida para a implementação do lado do processador do decodificador. O janelamento de síntese é realizado logo no final do processamento do lado do decodificador, ou seja, subsequente a uma conversão de frequência-tempo e operação de desdobramento que gera, a partir de um conjunto de N valores espectrais, um conjunto de 2N valores de domínio de tempo que são, então, janelados e, subsequentes ao janelamento de síntese utilizando as bordas da janela truncada inventiva, uma adição por sobreposição, conforme requerido, é realizada. Preferivelmente, uma sobreposição de 50% é aplicada para o posicionamento das janelas de análise e para a adição por sobreposição real subsequente ao janelamento de síntese utilizando as janelas de síntese.
[0015] Assim, as vantagens da presente invenção são que a presente invenção se baseia em janelas de transformada assimétrica que têm boa eficiência de codificação para sinais fixos em um atraso reduzido. Por outro lado, a presente invenção possibilita uma estratégia flexível da comutação de tamanho da transformada para uma codificação eficiente de sinais transientes que não aumentam o atraso total do codificador. Assim, a presente invenção depende de uma combinação de janelas assimétricas para transformadas longas e um conceito flexível de comutação de comprimento por transformada/sobreposição para faixas de sobreposição simétricas de janelas curtas. As janelas curtas podem ser completamente simétricas tendo a mesma sobreposição simétrica em ambos os lados, ou podem ser assimétricas tendo uma primeira sobreposição simétrica com uma janela precedente e uma segunda sobreposição simétrica diferente com uma janela subsequente.
[0016] A presente invenção é especificamente vantajosa em que, pelo uso da parte de sobreposição truncada da janela longa simétrica, qualquer atraso do codificador ou análise prévia requerida do codificador não é aumentado(a) devido ao fato de que qualquer transição de janelas com diferentes tamanhos de bloco não exige a inserção de nenhuma janela de transição longa adicional.
[0017] Aplicações preferidas da presente invenção serão subsequentemente discutidas com relação aos desenhos anexos, nos quais:
[0018] A Figura 1a ilustra um aspecto para codificação no contexto de partes de sobreposição truncadas;
[0019] A Figura 1b ilustra um aparelho para decodificação no contexto de utilização das partes de sobreposição truncadas;
[0020] A Figura 1c mostra uma ilustração mais detalhada do lado de síntese;
[0021] A Figura 1d ilustra uma implementação de um dispositivo móvel, tendo um codificador, um decodificador e uma memória;
[0022] A Figura 2 ilustra uma aplicação preferida da presente invenção para o lado de análise (caso A) ou o lado de síntese (caso B);
[0023] A Figura 3 ilustra uma implementação preferida do construtor de janela;
[0024] A Figura 4 ilustra uma ilustração esquemática do conteúdo de memória da figura 3;
[0025] A Figura 5 ilustra um procedimento preferido para determinação da primeira parte de sobreposição e da segunda parte de sobreposição de uma janela de transição de análise;
[0026] A Figura 6 ilustra um procedimento preferido para determinação de uma janela de transição de síntese;
[0027] A Figura 7 ilustra um procedimento adicional com um truncamento menor do que o comprimento máximo;
[0028] A Figura 8a ilustra uma janela de análise assimétrica;
[0029] A Figura 8b ilustra uma janela de síntese assimétrica;
[0030] A Figura 8c ilustra uma janela de análise assimétrica com partes de dobramento;
[0031] A Figura 9a ilustra uma janela de análise/síntese
[0032] simétrica; A Figura 9b ilustra uma janela de análise/síntese adicional com simétrica, mas diferentes partes de sobreposição;
[0033] A Figura 9c ilustra uma janela adicional com partes de sobreposição simétricas, tendo diferentes comprimentos;
[0034] A Figura 10a ilustra uma janela de transição de análise, como a segunda janela, com uma primeira parte de sobreposição truncada;
[0035] A Figura 10b ilustra uma segunda janela com uma primeira parte de sobreposição truncada e aumentada gradualmente;
[0036] A Figura 10c ilustra a segunda janela da figura 10a no contexto das partes de sobreposição correspondentes das janelas precedentes e subsequentes;
[0037] A Figura 10d ilustra a situação da figura 10c, mas com uma primeira parte de sobreposição aumentada gradualmente;
[0038] A Figura 11a ilustra uma janela de transição diferente com um aumento gradual para o lado de análise;
[0039] A Figura 11b ilustra uma janela de transição de análise adicional com um truncamento mais alto do que o necessário e uma modificação adicional correspondente;
[0040] A Figuras 12a,12b ilustram janelas de transição de análise para uma transição de um tamanho de bloco pequeno a um alto;
[0041] A Figuras 13a,13b ilustram janelas de transição de síntese de um tamanho de bloco alto a um tamanho de bloco baixo;
[0042] A Figura 13c ilustra uma janela de transição de síntese com uma segunda parte de sobreposição truncada como a terceira janela;
[0043] A Figura 13d ilustra a janela da figura 13c, mas sem diminuição gradual;
[0044] Figura 14a ilustra uma certa sequência da janela de análise;
[0045] A Figura 14b ilustra uma sequência da janela de síntese correspondente;
[0046] A Figura 15a ilustra uma certa sequência da janela de análise;
[0047] A Figura 15b ilustra uma sequência da janela de síntese correspondente combinada com a figura 15a; e
[0048] A Figura 16 ilustra um exemplo para comutação instantânea entre diferentes comprimentos de transformada, utilizando apenas sobreposições simétricas.
[0049] As aplicações se referem aos conceitos para comutação instantânea de uma transformada de MDCT longa, utilizando uma janela assimétrica, a uma transformada mais curta com janelas simetricamente sobrepostas, sem a necessidade de inserir uma estrutura intermediária.
[0050] Ao construir o formato da janela para a primeira estrutura que emprega um comprimento de transformada mais curto, duas restrições são um problema: • A parte de sobreposição esquerda da janela precisa corresponder ao formato da janela assimétrica anterior, de modo que uma reconstrução perfeita ou quase perfeita seja obtida. • O comprimento das partes de sobreposição é restrito devido ao comprimento de transformada mais curto.
[0051] A parte de sobreposição esquerda da janela assimétrica longa satisfaria a primeira condição, mas é muito longa para as transformadas mais curtas, o que geralmente têm metade do tamanho ou tamanho menor da transformada longa. Portanto, um formato da janela mais curta precisa ser escolhido.
[0052] Assume-se aqui que a análise assimétrica e as janelas de síntese são simétricas entre si, ou seja, a janela de síntese é uma versão espelhada da janela de análise. Neste caso, a janela w tem que atender a seguinte equação para reconstrução perfeita: onde L representa o comprimento de transformada e n o índice de amostra.
[0053] Para redução de atraso, a sobreposição do lado direito da janela de análise longa assimétrica foi encurtada, o que significa que todas as amostras de janela do lado mais direito têm um valor de zero. A partir da equação acima, pode ser visto que se uma amostra de janela wn tem um valor de zero, um valor arbitrário pode ser escolhido para a amostra simétrica w2L-1-n . Se as amostras m mais à direita da janela forem zero, as amostras m mais à esquerda podem, portanto, ser substituídas por zeros também sem perder a reconstrução perfeita, ou seja, a parte de sobreposição esquerda pode ser truncada abaixo do comprimento da parte de sobreposição direita.
[0054] Se o comprimento de sobreposição truncada for curto o suficiente, de modo que o comprimento de sobreposição suficiente permaneça para a parte direita da primeira janela de transformada curta, isto fornece uma solução para um formato da primeira janela de transformada curta, atendendo ambas as condições acima. A extremidade esquerda da parte de sobreposição da janela assimétrica é truncada e combinada com a sobreposição simétrica utilizada para janelas curtas subsequentes. Um exemplo do formato resultante da janela é representado na figura 10c.
[0055] Utilizar uma versão truncada da sobreposição da janela longa existente evita a necessidade de projetar um formato de janela completamente novo para a transição. Ainda reduz a demanda de ROM/RAM para hardware no qual o algoritmo é implementado, pois nenhuma tabela de janela adicional é necessária para a transição.
[0056] Para janelamento de síntese no lado do decodificador, uma abordagem simétrica é utilizada. A janela de síntese assimétrica tem a longa sobreposição no lado direito. Uma versão truncada da parte de sobreposição direita é, portanto, utilizada para a parte da janela direita da última transformada curta antes de comutar de volta às transformadas longas com janela assimétricas, conforme representado na figura 13d.
[0057] Conforme mostrado acima, o uso de uma versão truncada da janela longa possibilita a reconstrução perfeita do sinal de domínio de tempo, se os dados espectrais não estiverem modificados entre a transformada de análise e síntese. Entretanto, em um codificador de áudio, a quantização é aplicada aos dados espectrais. Na transformada de síntese, o ruído de quantização resultante é modulado pela janela de síntese. Como o truncamento da janela longa introduz uma etapa no formato da janela, descontinuidades podem ocorrer no ruído de quantização do sinal de saída. Estas descontinuidades podem se tornar audíveis como perturbações do tipo clique.
[0058] A fim de evitar tais perturbações, uma diminuição gradual pode ser aplicada na extremidade da janela truncada para nivelar a transição a zero. A diminuição gradual pode ser realizada em várias formas diferentes, por exemplo, poderia ser em forma linear, seno ou cosseno. O comprimento da diminuição gradual deveria ser escolhido grande o suficiente, de modo que nenhuma perturbação audível ocorresse. O comprimento máximo disponível para a diminuição gradual sem perder a reconstrução perfeita é determinado pelo comprimento de transformada curta e pelo comprimento das sobreposições da janela. Em alguns casos, o comprimento disponível pode ser zero ou muito pequeno para suprimir as perturbações. Para tais casos, pode ser útil estender o comprimento da diminuição gradual e aceitar pequenos erros de reconstrução, pois estes erros geralmente são menos perturbantes do que as descontinuidades no ruído de quantização. Sintonizar cuidadosamente o comprimento da diminuição gradual, possibilita comutar erros de reconstrução por descontinuidades de erro de quantização, a fim de atingir a melhor qualidade de áudio.
[0059] A figura 10d representa um exemplo para uma sobreposição truncada com uma diminuição gradual curta pela multiplicação da extremidade truncada da janela com uma função de seno.
[0060] A seguir, a figura 2 é discutida com a finalidade de descrever um processador para processamento de um sinal de áudio, de acordo com as aplicações da presente invenção. O sinal de áudio é fornecido em uma entrada 200 em um analisador 202. O analisador é configurado para derivação de um sinal de controle de janela 204 a partir do sinal de áudio na entrada 200, onde o sinal de controle de janela indica uma mudança de uma primeira janela assimétrica para uma segunda janela como, por exemplo, ilustrada pela primeira janela 1400 ou 1500 na figura 14a ou na figura 15a, onde a segunda janela, nessa aplicação, é a janela 1402 na figura 14a ou 1502 na figura 15a. O sinal de controle de janela 204 novamente, de modo alternativo, e com relação a uma operação em um lado de síntese indica, de forma exemplar, uma mudança de uma terceira janela como 1450 na figura 14b ou 1550 na figura 5b em uma terceira janela como 1452 na figura 14b ou 1552 na figura 15b. Conforme ilustrado, a segunda janela como 1402 é mais curta do que a primeira janela 1400 ou a terceira janela como 1450 ou 1550 é mais curta do que a quarta janela como 1452 ou 1552.
[0061] O processador compreende, ainda, um construtor de janela 206 para construção da segunda janela, utilizando uma primeira parte de sobreposição de uma primeira janela assimétrica, em que este construtor de janela é configurado para determinar uma primeira parte de sobreposição da segunda janela utilizando uma primeira parte de sobreposição truncada da primeira janela assimétrica para o lado de síntese, ou seja, caso B na figura 2. O construtor de janela é configurado para calcular uma segunda parte de sobreposição da terceira janela como 1502 ou 1550 utilizando uma segunda parte de sobreposição truncada da primeira janela, ou seja, a janela assimétrica.
[0062] Essas janelas, como a segunda janela no lado de análise ou a terceira janela no lado de síntese e, certamente, as janelas precedentes e/ou subsequentes são transmitidas do construtor de janela 206 a um janelador 208. O janelador 208 aplica a primeira e a segunda janelas ou a terceira e a quarta janelas em um sinal de áudio a fim de obter as partes do sinal em uma saída 210.
[0063] O caso A é relacionado ao lado de análise. Aqui, a entrada é um sinal de áudio e o analisador real 202 realiza uma análise do sinal de áudio real como uma análise transiente, etc. A primeira e a segunda janelas são janelas de análise e o sinal em janela é o lado do codificador processado, conforme será discutido posteriormente com relação à figura 1A.
[0064] Assim, um processador do decodificador 214 ilustrado na figura 2 é suplantado ou, de fato, não está presente no caso A.
[0065] No caso B, ou seja, quando o processamento inventivo é aplicado em um lado de síntese, a entrada é o sinal de áudio codificado como um fluxo contínuo de dados tendo informação do sinal de áudio e informação adicional e o analisador 202 realiza uma análise do fluxo contínuo de dados ou um fluxo contínuo de dados ou análise do sinal codificado a fim de recuperar, do sinal de áudio codificado, um sinal de controle de janela indicando a sequência de janela aplicada pelo codificador, do qual a sequência de janela a ser aplicada pelo decodificador pode ser derivada.
[0066] Então, a terceira e a quarta janelas são janelas de síntese e o sinal em janela é submetido a um processamento de adição por sobreposição para a finalidade de uma síntese do sinal de áudio, conforme ilustrado na figura 1B ou 1C.
[0067] A figura 1a ilustra um aparelho para codificação de um sinal de áudio 100. O aparelho para codificação de um sinal de áudio compreende um janelador controlável 102 para janelamento do sinal de áudio 100 fornecer uma sequência de blocos de amostras janeladas em 103. O codificador compreende, ainda, um conversor 104 para conversão da sequência de blocos de amostras janeladas 103 em uma representação espectral compreendendo uma sequência de estruturas de valores espectrais indicados em 105. Além disso, um detector de localização transiente 106 é fornecido. O detector é configurado para identificação de uma localização de um transiente dentro de uma região de olhar em frente transiente de uma estrutura. Além disso, um controlador 108 para controle do janelador controlável é configurado para aplicação de uma janela específica tendo um comprimento de sobreposição especificado ao sinal de áudio 100 em resposta a uma localização identificada do transiente ilustrado em 107. Além disso, o controlador 108 é, em uma aplicação, configurado para fornecer informação da janela 112 não apenas ao janelador controlável 102, mas também a uma interface de saída 114 que fornece, em sua saída, o sinal de áudio codificado 115. A representação espectral compreendendo a sequência de estruturas de valores espectrais 105 é inserida em um processador de codificação 110 que pode realizar qualquer tipo de operação de codificação como uma operação de previsão, uma operação de modulação de ruído temporal, uma operação de quantização, preferivelmente, com relação a um modelo psicoacústico ou, pelo menos, com relação aos princípios psicoacústicos ou pode compreender uma operação de codificação de redução de redundância como uma operação de codificação Huffman ou uma operação de codificação aritmética. A saída do processador de codificação 110 é, então, encaminhado à interface de saída 114 e a interface de saída 114, então, finalmente fornece o sinal de áudio codificado tendo associado, a cada estrutura codificada, uma certa informação da janela 112.
[0068] O controlador 108 é configurado para selecionar a janela específica de um grupo de, pelo menos, três janelas. O grupo compreende uma primeira janela, tendo um primeiro comprimento de sobreposição, uma segunda janela, tendo um segundo comprimento de sobreposição, e uma terceira janela, tendo um terceiro comprimento de sobreposição ou nenhuma sobreposição. O primeiro comprimento de sobreposição é maior do que o segundo comprimento de sobreposição e o segundo comprimento de sobreposição é maior do que uma sobreposição zero. A janela específica é selecionada pelo janelador controlável 102 com base na localização transiente, de modo que uma das duas janelas de sobreposição adjacentes ao tempo tenha os coeficientes primários da janela na localização do transiente e a outra das duas janelas de sobreposição adjacentes ao tempo tenha coeficientes secundários da janela na localização do transiente e os coeficientes secundários da janela são, pelo menos, nove vezes maiores do que os coeficientes primários. Isto garante que o transiente seja substancialmente suprimido pela primeira janela tendo os coeficientes primários (pequenos) e o transiente seja bastante inalterado pela segunda janela tendo os coeficientes secundários da janela. Preferivelmente, os coeficientes primários da janela são iguais a 1 dentro de uma tolerância de mais/menos 5%, como entre 0,95 e 1,05 e os coeficientes secundários da janela são preferivelmente iguais a 0 ou, pelo menos, menores do que 0,05. Os coeficientes da janela podem ser negativos também e, neste caso, as relações e as quantidades dos coeficientes da janela estão relacionadas à magnitude absoluta.
[0069] Além disso, de modo alternativo ou adicional, o controlador 108 compreende as funcionalidades do construtor de janela 206, conforme discutido no contexto da figura 2, e será discutido posteriormente. Além disso, o detector de localização transiente 106 pode ser implementado e pode ter as funcionalidades do analisador 202 da figura 2 para o caso A, ou seja, para a aplicação das janelas no lado de análise.
[0070] Além disso, os blocos 104 e 110 ilustram o processamento a ser realizado pelo sinal de áudio janelado 210, o que corresponde ao sinal de áudio janelado 103 na figura 1A. Além disso, o construtor de janela 206, embora não especificamente indicado na figura 2, fornece a informação da janela 112 da figura 1A à interface de saída 114 que pode, então, ser recuperada do sinal codificado pelo analisador 202 operando no lado do decodificador, ou seja, para o caso B.
[0071] Como conhecido na técnica do processamento de MDCT, de modo geral, o processamento que utiliza uma transformada de introdução de distorção, esta transformada de introdução de distorção pode ser separada em uma etapa de dobramento e uma etapa de transformada subsequente utilizando uma certa transformada de introdução sem distorção. Em um exemplo, as seções são dobradas em outras seções e o resultado da operação de dobramento é, então, transformado em domínio espectral utilizando uma transforma como uma transformada DCT. No caso de uma MDCT, uma transformada DCT IV é aplicada.
[0072] A seguir, isto é exemplificado pela referência à MDCT, mas outras transformadas de introdução de distorção podem ser processadas de uma forma similar e análoga. Como uma transformada revestida, a MDCT é um pouco incomum comparado a outras transformadas relacionadas à Fourier pelo fato de possuir metade de saídas e entradas iguais (em vez do mesmo número) . Em particular, é uma função linear F : R2N ^RN (onde R denota o conjunto de números reais). Os números reais 2N x0, . .., x2N-1 são transformados em números reais N X0, ..., XN- 1 de acordo com a fórmula: 2N-1
[0073] (O coeficiente de normalização na frente desta transformada, aqui unidade, é uma convenção arbitrária e difere entre os tratamentos. Apenas o produto das normalizações da MDCT e da IMDCT, abaixo, é limitado.)
[0074] A MDCT inversa é conhecida como IMDCT. Por haver diferentes números de entradas e saídas, à primeira vista, pode ser visto que a MDCT não deveria ser invertível. Entretanto, a perfeita capacidade de inversão 'obtida pela adição das IMDCTs sobrepostas de blocos de sobreposição adjacentes ao tempo, fazendo com que os erros cancelem e os dados originais sejam recuperados; esta técnica é conhecida como cancelamento de distorção de domínio de tempo (TDAC | time-domain aliasing cancellation).
[0075] A IMDCT transforma N números reais X0, ...,
[0076] (Como para DCT-IV, uma transformada ortogonal, a inversa tem a mesma forma que a transformada adiante.)
[0077] No caso de uma MDCT janelada com a normalização de janela comum (vide abaixo), o coeficiente de normalização na frente da IMDCT deveria ser multiplicado por 2 (ou seja, se tornando 2/N).
[0078] Em aplicações típicas de compressão por sinal, as propriedades de transformada são, ainda, melhoradas utilizando uma função de janela wn (n = 0, ..., 2N-1) que é multiplicada por xn e yn nas fórmulas de MDCT e IMDCT acima, a fim de evitar descontinuidades nos limites n = 0 e 2N fazendo a função chegar, de modo nivelado, a zero nestes pontos. (Isto é, nós janelamos os dados antes da MDCT e após a IMDCT.) A princípio, x e y poderiam ter diferentes funções de janela e a função de janela poderia, também, mudar de um bloco ao próximo (especialmente para o caso onde blocos de dados de diferentes tamanhos são combinados), mas para simplicidade consideramos o caso comum de funções de janela idênticas para blocos com tamanho igual.
[0079] A transformada permanece invertível (isto é, operações de TDAC), para uma janela simétrica wn = w2N-1-n, desde que w atenda a Condição de Princen-Bradley: várias funções de janela são utilizadas. Uma janela que produz uma forma conhecida como uma transformada revestida modulada é dada por para Vorbis. AC-3 utiliza uma janela derivada de Kaiser-Bessel (KBD | Kaiser-Bessel derived) e MPEG-4 AAC também pode utilizar uma janela KBD.
[0080] Observe que as janelas aplicadas à MDCT são diferentes das janelas utilizadas para alguns outros tipos de análise de sinal, visto que elas devem cumprir com a condição de Princen-Bradley. Uma das razões para esta diferença é que as janelas de MDCT são aplicadas duas vezes, para ambas a MDCT (análise) e a IMDCT (síntese).
[0081] Como pode ser visto pela inspeção das definições, para N par a MDCT é essencialmente equivalente a uma DCT-IV, onde a entrada é comutada por N/2 e dois N-blocos de dados são transformados de uma vez só. Pela avaliação desta equivalência mais cuidadosamente, propriedades importantes como TDAC podem ser facilmente derivadas.
[0082] A fim de definir a relação precisa para DCT- IV, deve-se perceber que a DCT-IV corresponde às condições de limite par/ímpar alternadas: par em seu limite esquerdo (aproximadamente n=-1/2), ímpar em seu limite direito (aproximadamente n=N-1/2), e assim por diante (em vez de limites periódicos como para DFT). Isto segue a partir das identidades:
[0083] Assim, se suas entradas são uma matriz x de comprimento N, podemos imaginar estender esta matriz para (x, -xR, -x, xR, ...) e assim por diante, onde xR denota x na ordem reversa.
[0084] Considere uma MDCT com 2N entradas e N saídas, onde dividimos as entradas em quatro blocos (a, b, c, d), cada um com tamanho N/2. Se comutarmos estes à direita por N/2 (do termo +N/2 na definição da MDCT), então, (b, c, d) estendem- se pelas N entradas de DCT-IV, assim nós devemos “dobrar” de volta, de acordo com as condições de limite descritas acima.
[0085] Assim, a MDCT de 2N entradas (a, b, c, d) é exatamente equivalente a uma DCT-IV de N entradas: (-cR-d, a-bR), onde R denota reversão conforme acima.
[0086] (Dessa forma, qualquer algoritmo para calcular a DCT-IV pode ser geralmente aplicado à MDCT.)
[0087] De modo similar, a fórmula de IMDCT acima é precisamente 1/2 da DCT-IV (que está em seu inverso), onde a saída é estendida (através das condições de limite) a um 2N comprimento e retornada à esquerda por N/2. A DCT-IV inversa, simplesmente, devolveria as entradas (-cR-d, a-bR) de cima. Quanto esta é estendida através das condições de limite e mudada, obtém-se: IMDCT(MDCT(a, b, c, d)) = (a-bR, b-aR, c+dR, d+cR) / 2.
[0088] Metade das saídas de IMDCT são, então, redundantes, como b-aR = -(a-bR)R, e, do mesmo modo, para os dois últimos termos. Se agruparmos a entrada em blocos A,B maiores em tamanho N, onde A=(a, b) e B=(c, d), podemos escrever esse resultado em uma forma simples: IMDCT(MDCT(A, B)) = (A-AR, B+BR) / 2
[0089] Agora pode-se entender como o TDAC funciona. Supomos que se calcula a MDCT do 2N bloco adjacente ao tempo com 50% de sobreposição (B, C). A IMDCT, então, produzirá, análoga à acima: (B-BR, C+CR) / 2. Quando isto é adicionado com o resultado da IMDCT prévia na metade de sobreposição, os termos revertidos cancelam e obtém-se simplesmente B, recuperando os dados originais.
[0090] A origem do termo “cancelamento de distorção de domínio de tempo” agora está clara. O uso de dados de entrada que se estendem além dos limites da DCT-IV lógica faz com que os dados sejam distorcidos da mesma forma que as frequências além da frequência de Nyquist sejam distorcidas em frequências menores, exceto que esta distorção ocorre no domínio de tempo em vez do domínio de frequência: não podemos distinguir as contribuições de a e de bR para MDCT de (a, b, c, d), ou equivalentemente ao resultado de IMDCT(MDCT(a, b, c, d)) = (a-bR, b-aR, c+dR, d+cR) / 2. As combinações c-dR e, assim por diante, têm precisamente os sinais corretos para as combinações cancelarem quando são adicionados.
[0091] Para ímpar N (que são raramente utilizados na prática), N/2 não é um número inteiro, assim, a MDCT não é simplesmente uma permutação de comutação de uma DCT-IV. Neste caso, a comutação adicional por metade de uma amostra significa que a MDCT/IMDCT se torna equivalente à DCT-III/II e a análise é análoga à acima.
[0092] Vimos acima que a MDCT de 2N entradas (a, b, c, d) é equivalente a uma DCT-IV de N entradas (-cR-d, a-bR). A DCT-IV é projetada para o caso onde a função no limite direito é ímpar e, portanto, os valores perto do limite direito estão próximos a 0. Se o sinal de entrada for suave, este é o caso: os componentes mais à direita de a e bR são consecutivos na sequência de entrada (a, b, c, d) e, portanto, sua diferença é pequena. Vamos olhar no meio do intervalo: se reescrevermos a expressão acima como (-cR-d, a-bR) = (-d, a)-(b,c)R, o segundo termo, (b,c)R, fornece uma transição suave no meio. Entretanto, no primeiro termo, (-d, a), há uma descontinuidade potencial onde a extremidade direita de -d chega à extremidade esquerda de a. Esta é a razão para utilizar uma função de janela que reduz os componentes perto dos limites da sequência de entrada (a, b, c, d) em direção ao 0.
[0093] Acima, a propriedade de TDAC foi provada para a MDCT comum, mostrando que adicionar IMDCTs de blocos adjacentes ao tempo em sua metade de sobreposição recupera os dados originais. A derivação desta propriedade inversa para a MDCT janelada é apenas levemente mais complicada.
[0094] Considere dois conjuntos consecutivos de sobreposição de 2N entradas (A,B) e (B,C), para blocos A,B,C de tamanho N. Recordamos lá de cima que quando (A, B) e (B, C) emprega-se MDCT, IMDCT e adicionadas em sua metade de sobreposição, obtemos (B + BR) /2 + (B - BR) /2 = B , os dados originais.
[0095] Agora supomos que multiplicamos ambas as entradas de MDCT e as saídas de IMDCT por uma função de janela de comprimento 2N. Como acima mencionado, assumimos uma função de janela simétrica que é, portanto, a forma (W ,WR ) onde W é um vetor de comprimento N e R denota a reversão como antes. Então a condição de Princen-Bradley pode ser escrita como W +WR2 = (1, 1,...) , com os quadrados e adições realizados por elementos.
[0096] Portanto, em vez de empregar a MDCT (A,B), pode-se empregar as MDCTs (WA,WRB) com todas as multiplicações realizadas por elementos. Quando a IMDCT for empregada e multiplicada novamente (por elemento) pela função de janela, a última N metade se torna:
[0097] (Observe que nós não temos mais a multiplicação por 1/2, pois a normalização da IMDCT difere por um fator de 2 no caso janelado.)
[0098] De modo semelhante, a MDCT e a IMDCT janeladas de (B,C) produz, em sua primeira N metade:
[0099] Quando se adiciona estas duas metades juntas, uma recupera os dados originais.
[0100] A discussão da MDCT acima descreve as janelas de análise/síntese idênticas. Para janelas assimétricas, as janelas de síntese/análise são diferentes, mas preferivelmente simétricas entre si; neste caso a condição de Princen-Bradley muda para a equação mais geral:
[0101] A figura 1b ilustra uma implementação do decodificador, tendo uma entrada 150 para um sinal codificado, uma interface de entrada 152 que fornece um sinal de áudio 154, por um lado, que está na forma codificada e que fornece informação adicional ao analisador 202, por outro lado. O analisador 202 extrai informação da janela 160 do sinal codificado 150 e fornece esta informação da janela ao construtor de janela 206. Além disso, o sinal de áudio codificado 154 é inserido em um decodificador ou um processador de decodificação 156, que corresponde ao processador do decodificador 214 na figura 2 e o construtor de janela 206 fornece as janelas ao conversor controlável 158 que é configurado par realização de uma IMDCT ou uma IMDST ou qualquer outra transformada sendo inversa a uma transformada adiante de introdução de distorção.
[0102] A figura 1c ilustra uma implementação preferida do lado do decodificador do conversor controlável 158. Em particular, o conversor controlável 158 compreende um conversor de tempo-frequência 170, um janelador de síntese subsequentemente conectado 172 e um somador por sobreposição final 174. Especificamente, o conversor de tempo-frequência realiza a transformada como uma transformada DCT-IV e uma operação subsequente de desdobramento, de modo que a saída do conversor de tempo-frequência 170 tenha, para uma primeira ou janela longa, 2N amostras enquanto a entrada ao conversor de tempo-frequência foi, de forma exemplar, N valores espectrais. Por outro lado, quando a entrada ao conversor de tempo- frequência são N/8 valores espectrais, então a saída são N/4 valores de domínio de tempo para uma operação de MDCT, de forma exemplar.
[0103] Então, a saída do conversor de tempo- frequência 170 é inserida em um janelador de síntese que aplica a janela de síntese sendo preferivelmente simétrica à janela do lado do codificador. Assim, cada amostra é, antes de uma adição por sobreposição ser realizada, janelada por duas janelas, de modo que o “janelamento total” seja o produto dos coeficientes da janela de análise e dos coeficientes da janela de síntese de modo que a condição de Princen-Bradley, conforme discutido previamente, seja cumprida.
[0104] Finalmente, o somador por sobreposição 174 realiza a adição por sobreposição correta correspondente a fim de finalmente obter o sinal de áudio decodificado na saída 175.
[0105] A figura 1d ilustra uma aplicação adicional da presente invenção implementada com um dispositivo móvel, onde o dispositivo móvel compreende, por um lado, um codificador 195 e, por outro lado, um decodificador 196. Além disso, de acordo com uma aplicação preferida da presente invenção, ambos o codificador 105 e o decodificador 106 recuperam a mesma informação da janela de apenas uma única memória 197, visto que as janelas utilizadas no codificador 195 e as janelas utilizadas no decodificador 196 são simétricas entre si. Assim, o decodificador tem uma memória somente leitura 197 ou uma memória de acesso aleatório ou, geralmente, qualquer memória 197, na qual apenas um único conjunto de sequência de janelas ou janelas é armazenado para utilização no codificador e no decodificador. Isto é vantajoso devido ao fato que os diferentes coeficientes da janela para as diferentes janelas não têm que ser armazenados duas vezes, com um conjunto para o codificador e um conjunto para o decodificador. Em vez disso, devido ao fato que, de acordo com a presente invenção, janelas idênticas e e sequência de janelas são utilizadas no codificador e no decodificador, apenas um único conjunto de coeficientes da janela deve ser armazenado. Assim, a utilização da memória do dispositivo móvel inventivo ilustrado na figura 1d é substancialmente reduzida com relação a um diferente conceito no qual o codificador e o decodificador têm janelas diferentes ou no qual certo pós-processamento com processamento diferente das operações de janela é realizado.
[0106] Subsequentemente, uma janela preferida é discutida com relação à figura 8a. Ela tem uma primeira parte de sobreposição 800, uma segunda parte de sobreposição 802, uma parte adicional 804 com valores altos e uma parte adicional 806 com valores baixos. Os valores altos da parte 804 são valores de 1,0 ou são, pelo menos, menores do que 0,95, e os valores baixos na parte baixa 806 são iguais a 0,0 e são preferivelmente mais baixos do que 0,1. Na aplicação, o comprimento de janela de análise assimétrica é 40ms e isto resulta em um tamanho de bloco de 20ms devido ao fato que uma adição por sobreposição de 50% é preferivelmente utilizada. Entretanto, outros índices de sobreposição, etc. podem ser utilizados também.
[0107] Nesta implementação específica, a primeira parte de sobreposição 800 é maior do que a segunda parte de sobreposição 802 que possibilita uma implementação de baixo atraso e adicionalmente no contexto do fato que a parte baixa 806 precede a segunda parte de sobreposição, a janela de análise assimétrica ilustrada na figura 8a possibilita uma filtragem de baixo atraso devido à parte zero e à segunda parte de sobreposição curta 802 e adicionalmente tem uma separação muito boa devido à primeira parte de sobreposição longa 800. Esta sobreposição longa, entretanto, não causa qualquer atraso adicional devido ao fato que a parte de sobreposição longa está na primeira metade da janela de análise assimétrica. Na aplicação específica, a primeira parte de sobreposição 800 é igual a 14,375ms, a segunda parte sem sobreposição ou parte alta é igual a 11,25ms, a terceira parte ou a segunda parte de sobreposição 802 é igual a 8,75ms e a quarta parte final ou parte baixa é igual a 5,625ms.
[0108] A figura 8b ilustra uma janela de síntese assimétrica correspondente que agora tem, como a primeira parte 810, o zero ou a parte baixa, que então tem a primeira parte de sobreposição 812, a segunda parte de sobreposição 814 e a parte constante ou alta 816 indicada entre a primeira parte de sobreposição 812 e a segunda parte de sobreposição 814.
[0109] O comprimento exemplar das partes correspondentes é indicado, mas é geralmente preferido que a primeira parte de sobreposição 812 seja mais curta do que a segunda parte de sobreposição 814 e é ainda mais preferido que o comprimento da parte constante ou alta 816 esteja entre o comprimento da primeira parte de sobreposição e da segunda parte de sobreposição e é ainda mais preferido que o comprimento da primeira parte 810 ou da parte zero seja menor do que o comprimento da primeira parte de sobreposição 812.
[0110] Conforme ilustrado na figura 8a, é preferido que o comprimento da primeira parte de sobreposição 800 seja mais alto do que o comprimento da segunda parte de sobreposição 802 e o comprimento da parte alta 804 esteja entre o comprimento da segunda parte de sobreposição 802 e da primeira parte de sobreposição 800 e o comprimento da quarta parte 806 seja menor do que o comprimento da segunda parte de sobreposição 802.
[0111] A figura 8a e a figura 8b, além disso, ilustram a sobreposição com uma janela de análise assimétrica precedente 807 e com uma janela de análise subsequente 808 para o caso quando apenas blocos longos são utilizados e qualquer comutação não seja indicada pelo sinal de controle de janela 204 da figura 2.
[0112] Analogamente, a figura 8b ilustra uma sequência de síntese correspondente com uma janela de síntese precedente 819 e uma janela de síntese subsequente 820.
[0113] Além disso, a figura 8c ilustra a mesma janela de análise da figura 8a, mas agora com partes dobradas 821, 822 que são dobradas na operação de dobramento no lado do codificador ou que são “desdobradas” na operação de desdobramento no lado do decodificador. Essas dobras 821, 822 podem ser consideradas ocorrer ao longo das linhas de dobramento 823 e 824 e estas linhas também são ilustradas na figura 8a, 8b e parece que as linhas de dobramento não coincidem diretamente com os pontos de cruzamento das janelas na figura 8a e 8b. Isto é devido à característica assimétrica da janela de análise na figura 8a ou da janela de síntese na figura 8b.
[0114] A figura 9a ilustra uma janela de análise/síntese simétrica com uma sobreposição de 3,75ms para um comprimento de bloco de 10ms. A janela simétrica de análise compreende uma primeira parte baixa ou zero 900, uma primeira parte de sobreposição 902, uma segunda parte de sobreposição 904, uma parte alta ou constante 906 e uma parte baixa ou zero adicional 908. Além disso, a figura 9a ilustra linhas de dobramento 910, 911, onde a operação de dobramento necessária pela transformada de introdução de distorção como a MDCT ou MDST é realizada. Particularmente, uma operação de dobramento- in é realizada no processamento do lado do codificador e um processamento de dobramento-out é realizado no processamento de áudio do lado do decodificador. Assim, as linhas 912, 913 ilustram as partes de dobramento que têm parte decrescente e uma parte zero subsequente correspondente às partes 900 com relação ao lado esquerdo e 908 com relação ao lado direito. Assim, o marcador 915 ilustra a borda entre a parte de dobramento esquerda 912 e a parte de dobramento direita 913.
[0115] Neste contexto, é descrito que a figura 9a ilustra uma janela de análise ou síntese verdadeiramente simétrica, pois a parte esquerda de sobreposição e a parte direita de sobreposição são simétricas entre si, ou seja, têm o mesmo comprimento de sobreposição de, nesta aplicação, 3,75 ms. Geralmente, prefere-se ter as partes zero 900, 908 menores do que as partes de sobreposição 902, 904 e, consequentemente, a parte alta 906 tem duas vezes o comprimento de uma única parte zero, quando ambas as partes zero 900, 908 têm o mesmo comprimento.
[0116] A figura 9b ilustra uma janela com uma sobreposição simétrica que, entretanto, é diferente no lado esquerdo e no lado direito. Em particular, esta janela tem, em analogia à figura 9a, uma parte zero 920, uma primeira parte de sobreposição 922, uma parte constante ou alta 924, uma segunda parte de sobreposição 926 e um segundo zero ou parte baixa 928. Novamente, as linhas de dobramento 910 e 911 são indicadas e, novamente, o marcador 915 indica a borda entre a parte de dobramento esquerda 929 e a parte de dobramento direita 930. Conforme ilustrado, a parte esquerda de sobreposição 922 é para uma curta sobreposição como 1,25ms e a parte direita de sobreposição 926 é para uma sobreposição mais longa como 3,75ms. Assim, esta janela é uma janela de transição do janelamento com uma janela de curta sobreposição para uma janela de sobreposição mais alta, mas ambas as janelas são janelas com sobreposições simétricas.
[0117] A figura 9c ilustra uma janela adicional, mas com um tamanho de bloco de 5ms correspondente a uma duração de tempo de 10ms, conforme indicado. Esta janela é análoga à figura 9b, mas com comprimentos de tempo substancialmente diferentes e a janela na figura 9, portanto, tem uma duração mais curta, mas mais uma vez tem uma sequência de uma parte zero, uma parte esquerda de sobreposição com uma curta sobreposição, uma parte alta, uma segunda parte de sobreposição subsequente e uma parte zero final. Além disso, as linhas de dobramento e as partes de dobramento etc., são, novamente, indicadas na figura 9c.
[0118] De modo geral, a maioria das figuras de janela da figura 8a a 15b indicaram linhas de dobramento como 910 e 911 da figura 9a e adicionalmente têm as partes da janela desdobrada como 912 e 913 na figura 9a.
[0119] Além disso, é representado que o comprimento de transformação correspondente corresponde à distância entre os pontos de dobramento. Por exemplo, quando a figura 9a é considerada, fica claro que o comprimento de transformação corresponde a 10ms que tem a diferença entre 15ms e 5ms. Assim, o comprimento de transformada corresponde à notação de um “bloco” na figura 9a e em outras figuras. Entretanto, por outro lado, a parte de tempo de fato janelada é duas vezes o comprimento da transformada ou do bloco como 20ms na aplicação da figura 9a.
[0120] Correspondentemente, a janela na figura 9c tem um comprimento de transformada de 5ms que corresponde a um comprimento da parte de tempo da janela de 10ms, conforme ilustrado na figura 9c.
[0121] No caso assimétrico ilustrado na figura 8a, o comprimento de transformada ou tamanho de bloco é novamente a distância entre as linhas de dobramento como 823 e 824 e é, portanto, 20ms e o comprimento da parte do tempo da janela é 40ms.
[0122] Necessário para a reconstrução perfeita é manter a linha de dobramento ou o ponto de dobramento quando a parte de sobreposição longa ou a margem da janela da janela assimétrica como 800 ou 814 (para o lado da síntese) estiver truncada.
[0123] Além disso, conforme será representado especificamente com relação à figura 4, a presente aplicação utiliza seis taxas de amostragem diferentes e o comprimento das margens da janela ou flancos da janela são selecionados de modo que o comprimento corresponda a um número inteiro de valores de amostragem para cada uma das taxas de amostragem.
[0124] Além disso, é representado que para transformadas de 10ms, as sobreposições de 3,75ms ou sobreposições de 1,25ms s]ao utilizadas. Assim, ainda mais combinações do que é ilustrado nas figuras da janela de figura 8a a figura 15b são possíveis e úteis e podem ser sinalizadas pelo sinal de controle de janela a fim de garantir que uma sequência de janela ideal é selecionada para um certo sinal de áudio tendo partes transientes nas partes específicas.
[0125] A figura 10a ilustra esta janela de transição ou segunda janela seguindo uma primeira janela mais longa. Na figura 10a, o lado esquerdo foi truncado em um comprimento de 8,75ms do comprimento original da margem longa da janela de análise assimétrica 800 que era 14,375ms. Assim, a figura 10a ilustra uma primeira parte de sobreposição 1000 derivada por um truncamento da primeira parte de sobreposição 800 da primeira janela assimétrica. Além disso, na figura 10a, a janela de transição de análise adicionalmente compreende uma parte direita de sobreposição de 1,25ms, ou seja, uma parte de sobreposição curta 1002. A janela é para um tamanho de bloco de 5ms correspondente a um comprimento de janela de 10ms. As linhas de dobramento são indicadas em 4,375ms, ou seja, 1004 e 9,375ms ilustradas em 1006. Além disso, as partes de dobramento 1008 para a linha de dobramento esquerda 1004 e 1010 para a linha de dobramento direta 1006 são ilustradas.
[0126] A figura 10b ilustra uma implementação de uma aplicação preferida onde um aumento gradual é utilizado. Assim, a primeira parte de sobreposição tem uma primeira parte diferente 1012 e uma segunda parte não modificada 1014 que correspondem à primeira parte de sobreposição 1000 da figura 10a. A janela não é diferente com relação à figura 10a. Preferivelmente, a fim de calcular a primeira parte da primeira parte de sobreposição indicada em 1012 na figura 10b uma parte de sobreposição de seno de 1,25 ms é utilizada, ou seja, a parte, por exemplo, indicada em 922 na figura 9b. Assim, uma característica de aumento gradual muito boa é obtida na qual a primeira parte de sobreposição 922 para a janela curta é, em um sentido, “reciclada”. Assim, esta parte da janela não é apenas utilizada para janelamento como no caso de figura 9b, mas adicionalmente para um cálculo real da janela de transição de análise a fim de reduzir as perturbações incorridas pelo truncamento. Embora a propriedade de reconstrução perfeita seja apenas obtida quando a primeira parte de sobreposição truncada 1000 da figura 10a é, de fato, utilizada, observou- se que a qualidade do áudio pode ser, independentemente, elevada utilizando a janela de transição na figura 10b que tem a parte de aumento gradual. Essa parte de aumento gradual, embora viole a propriedade de reconstrução perfeita, independentemente resulta em uma melhor qualidade do áudio em comparação com a aplicação da figura 10a devido ao fato que a descontinuidade no lado esquerdo da parte esquerda de sobreposição 1000 na figura 10a é eliminada. Independentemente, outras características de aumento gradual ou (com relação ao lado da síntese) diminuição gradual diferentes de uma função de seno podem ser utilizadas, se disponíveis e úteis.
[0127] A figura 10c ilustra uma representação da janela da figura 10a, mas agora em uma situação de sobreposição indicando a parte direita de sobreposição 1020 da janela precedente e a parte esquerda de sobreposição da janela subsequente em 1022. Tipicamente, a parte direita de sobreposição 1020 é a parte direita 802 da janela de análise assimétrica da figura 8a e 1022 da próxima ou a janela subsequente é a primeira parte de sobreposição de uma janela ou é a parte esquerda de sobreposição de uma janela de transição adicional, como pode ser o caso.
[0128] A figura 10d ilustra uma situação semelhante à figura 10b, mas novamente com a segunda parte de sobreposição 1020 da janela precedente e a primeira parte de sobreposição 1022 da janela seguinte indicada.
[0129] A figura 11a ilustra uma janela adicional de transição de análise, mas em comparação com a figura 10a, onde uma transição de um bloco de 20ms em um bloco de 5ms é indicado, para uma transição de um bloco de 20ms em um bloco de 10ms. De modo geral, o bloco de 20ms pode ser considerado como um bloco longo, o bloco de 5ms pode ser considerado como um bloco curto e o bloco de 10ms pode ser considerado como um bloco intermediário. A primeira parte de sobreposição 1100 foi truncada, mas apenas uma quantidade curta e o truncamento é indicado por 1150. Entretanto, a fim de melhorar mais a qualidade do áudio, um aumento gradual obtido pela multiplicação de uma margem de seno de 1,25ms já é aplicada e o aumento gradual é indicado pela linha sólida. Além disso, a janela tem uma parte alta 1101 e uma segunda parte de sobreposição 1102 que é, neste caso, uma parte de sobreposição longa com 3,75ms. Assim, a figura 11a ilustra uma janela de transição de análise ideal correspondente à “segunda janela” da figura 2 de um comprimento de transformada de 20ms a um comprimento de transformada de 10ms onde a parte esquerda de sobreposição 1100 é obtida por um truncamento menor possível da margem longa 800 da janela assimétrica e onde adicionalmente um aumento gradual é realizado pela multiplicação da margem truncada 1050 pela margem de seno de 1,25ms. Conforme representado, a sobreposição direita é 3,75ms.
[0130] A figura 11b ilustra uma janela de transição de análise alternativa para uma transição de um comprimento de transformada de 20ms a um comprimento de transformada de 10ms, ou seja, geralmente de um longo comprimento de transformada ao curto short comprimento de transformada. A sobreposição esquerda, entretanto, é apenas 8,75ms pelo truncamento da margem da janela assimétrica esquerda e adicionalmente pela realização de um aumento gradual por multiplicação utilizando a margem de seno de 1,25ms. Assim, a sobreposição ou a parte esquerda de sobreposição 1130 agora tem 8,75ms, como no caso de figura 10a. A fim de aplicar esta janela, modificações adicionais são realizadas. Estas modificações são a primeira parte baixa ou zero 1131, a segunda parte alta ou constante 1132 e a terceira ou parte baixa 1133 e a segunda parte de sobreposição 1134 é similar como a parte correspondente 1102 na figura 11a, mas mudada para a esquerda devido à quarta zero ou parte baixa 1133. Além disso, as linhas de dobramento 1104, 1106 são indicadas e as partes dobradas onde o marcador 1135 indica a borda entre a parte dobrada esquerda 1136 e a parte dobrada direita 1137. Os comprimentos das partes 1131, 1132, 1133 são determinados pelo fato que o truncamento é realizado mais do que o mínimo possível como na figura 11a. De forma exemplar, a parte 1131 poderia ser definida a zero e o comprimento de 1132 e 1133 poderia ser correspondentemente elevado. Por outro lado, o comprimento de 1133 poderia ser conjunto de zero e, portanto, o comprimento de 1131 poderia ser correspondentemente elevado ou todas as partes 1131, 1132, 1133 são diferentes de zero, mas os comprimentos correspondentes são diferentes da aplicação da figura 11b. Em todas estas implementações de janela diferentes, deve-se garantir que o dobramento através das linhas de dobramento 1104, 1106 é correspondentemente possível e b tem a vantagem com relação à figura 11a que o cálculo da primeira parte de sobreposição 1130 é similar ao cálculo da parte esquerda 1014, 1012 da figura 10b facilitando a implementação prática. Entretanto, quando estas questões não são tão proeminentes, então pode-se utilizar a janela da figura 11a, visto que a sobreposição mais longa da primeira parte de sobreposição realiza uma melhor característica de reconstrução e está ainda mais perto da lei de propriedade de reconstrução perfeita.
[0131] As figuras 12a e 12b ilustram janelas adicionais de transição de análise de comprimentos de janela mais curtos para comprimentos da janela mais altos. Tal janela de transição de análise é ilustrada na figura 12a para uma transição de 5ms a 20ms. A parte esquerda de sobreposição 1200 é para uma curta sobreposição de, por exemplo, 1,25ms e a parte direita de sobreposição é para uma sobreposição longa como 8,75ms e é ilustrada em 1202. A figura 12b ilustra uma janela adicional de transição de análise de um bloco de 10ms para um bloco de 20ms. A parte esquerda de sobreposição é indicada em 1210 e a parte direita de sobreposição é indicada em 1212. A parte esquerda de sobreposição é para a sobreposição média de 3,75ms e a parte direita de sobreposição é para uma sobreposição longa ou alta de 8,75ms. Novamente, as linhas de dobramento e as partes de dobramento são ilustradas. A figura 12b torna claro que a janela de transição de análise de 10 a 20ms tem, além das partes de sobreposição 1210, 1212, uma parte esquerda baixa ou zero 1214, uma parte alta média ou constante 1216 e uma parte direita baixa ou zero 1218,
[0132] A parte direita de sobreposição 1202 da figura 12a e a parte direita de sobreposição 1212 na figura 12b corresponde à margem curta da janela de análise assimétrica indicada em 802 na figura 8a.
[0133] As figuras 13a, 13b, 13c e 13d ilustram uma situação no lado de síntese, ou seja, ilustram a construção de uma terceira janela nos termos da figura 2 ou Caso B. Além disso, a situação na figura 13a é análoga à situação na figura 12a. A situação na figura 13b é análoga à situação na figura 12b. A situação na figura 13c é análoga à figura 10b e a situação na figura 13d é análoga à figura 10c.
[0134] Em particular, a figura 13a ilustra uma janela de transição de síntese de um bloco longo a um bloco curto tendo uma parte esquerda de sobreposição longa 1300 e uma parte direita de sobreposição 1302 e linhas de dobramento e partes de dobramento correspondentes, conforme indicado.
[0135] A figura 13b ilustra uma janela de transição de síntese de um bloco de 20ms a um bloco de 10ms, onde a sobreposição esquerda é mais uma vez uma sobreposição longa indicada em 1310 e a sobreposição direita é 1312 w adicionalmente uma primeira parte baixa 1314, uma segunda parte alta 1316 e uma terceira parte baixa 1318 é fornecida, conforme necessário.
[0136] A figura 13c ilustra uma terceira janela de síntese, conforme ilustrado no contexto da figura 2, Caso B, onde a segunda parte de sobreposição 1330 é indicada. Foi truncada a um comprimento de 8,75, ou seja, ao comprimento da direita ou da segunda parte de sobreposição da janela de síntese assimétrica da figura 8b, ou seja, a parte direita de sobreposição 814 foi truncada para obter a parte direita de sobreposição 1330 da janela de transição de síntese e, na situação da figura 13c, uma diminuição gradual adicional foi realizado basicamente semelhante ao que foi discutido no lado de análise com relação à figura 10b. Isto ilustra a situação da segunda parte de sobreposição 1330 da terceira janela nos termos da figura 2, Caso B, mas apenas com truncamento em vez de qualquer diminuição gradual. Assim, a primeira parte 1331 na figura 13c é semelhante à primeira parte correspondente da figura 13d, mas a segunda parte 1332 é diferente devido à diminuição gradual que multiplica uma margem de seno de 1,25ms decrescente pela janela truncada da figura 13d.
[0137] Além disso, a figura 13d ilustra a primeira parte de sobreposição 1340 da próxima janela de síntese correspondente à “quarta janela” no contexto da figura 2 e, além disso, a figura 13d ilustra a segunda parte de sobreposição 1342 da janela precedente, ou seja, a janela antes da terceira janela que consiste na segunda parte de sobreposição 1330 e uma primeira parte de sobreposição 1331 correspondente a uma sobreposição curta de 1,25ms, por exemplo.
[0138] Embora não ilustrado, uma janela de síntese correspondente à situação nas figuras 11a, 11b é útil, ou seja, uma janela de síntese tendo um truncamento mínimo com ou sem aumento gradual em analogia à figura 11a ou uma janela de síntese tendo o mesmo tipo de truncamento que na figura 13d, mas agora com a primeira e a segunda partes zero ou baixas e uma parte intermediária constante.
[0139] A figura 14a ilustra uma sequência da janela de análise com janelas com bloco de tamanhos longo, longo, curto, curto, intermediário, longo e a sequência da janela de síntese correspondente ilustrada na figura 14b. A segunda janela nos termos da figura 2 é indicada em 1402 e esta janela corresponde à janela ilustrada na figura 10b. Correspondentemente, a janela de síntese correspondente à terceira função de janela 1450 da figura 14b nos termos da figura 2 é a função de síntese não ilustrada na figura específica, mas para a função de análise da figura 11b.
[0140] Além disso, na figura 15a, o 1502 é especificamente ilustrado na figura 11b e a terceira função de janela 1550 da figura 15b corresponde à função de janela de síntese da figura 13c.
[0141] Assim, a figura 14a ilustra uma transição de uma primeira janela muito longa assimétrica com 20ms indicada em 1406 para a função da primeira janela assimétrica 1400 onde, especificamente, a parte zero 806 da figura 8a também é ilustrada. Na figura 14a, então segue a janela longa assimétrica 1400 e, subsequentemente, a segunda função de janela com a primeira parte de sobreposição truncada 1402 é ilustrada. A janela seguinte 1408 é similar à janela na figura 9b e a janela seguinte 1410 corresponde à janela da figura 9c e, finalmente, a janela 1412 é mais uma vez a janela de análise assimétrica da figura 8a.
[0142] A figura 14b ilustra uma janela longa de síntese 1454 correspondente à figura 8b e janela adicional de síntese assimétrica 1456 novamente correspondente à figura 8b e, então, uma janela curta de transição 1458 é ilustrada, o que corresponde à figura 13a. A janela seguinte 1460 também é uma janela curta tendo um tamanho de bloco de 5ms que corresponde à figura 9c.
[0143] As figuras 15a e 15b ilustram uma sequência de janela semelhante, mas com uma transição de uma janela longa a uma janela intermediária tendo um comprimento de 10ms e a transição oposta correspondente. As janelas 1504 e 1500 correspondem à figura 8a. A janela inventiva truncada e aumentada gradualmente 1502 segue sendo seguida pela janela 1506, 1508 e 1510 na ordem ilustrada. A janela 1506 corresponde à janela na figura 9b, mas com a sobreposição longa ao lado esquerda e a sobreposição curta ao lado direito. A janela 1508 corresponde à janela na figura 12a e a janela 1510 é mais uma vez a janela longa assimétrica.
[0144] Referente à sequência de janela de síntese na figura 15b, há janelas 1554, 1556, 1558 e 1560, 1554 corresponde à janela de síntese da figura 8b e a mesma é verdadeira para a janela 1556. A janela 1558 é uma transição de 20 a 10 e corresponde à figura 13b. A janela 1560 é uma transição de 10 a 5 e corresponde à figura 9b, mas, mais uma vez, com a sobreposição longa ao lado esquerdo sobreposto ao lado direito. A janela de diminuição gradual e truncada de forma inventiva 1550 segue sendo novamente seguida pela janela longa de síntese assimétrica.
[0145] Subsequentemente, uma implementação preferida do construtor de janela 206 é discutida no contexto da figura 3. Em particular, o construtor de janela preferivelmente compreende uma memória 300, um truncador da parte da janela 302 e um regulador de transição 304. Dependendo da informação de controle da janela ilustrada no item 310 indicando uma transição, por exemplo, da primeira janela à segunda janela ou da terceira janela à quarta janela, o truncador da parte da janela 302 é ativado. O truncador acessa a memória a fim de recuperar a parte 800 da janela assimétrica ou recuperar a segunda parte de sobreposição 814 da quarta janela. A parte é recuperada pela linha de recuperação 308 da memória 300 ao truncador da parte da janela. O truncador da parte da janela 302 realiza um truncamento em um certo comprimento como o comprimento máximo de truncamento, conforme discutido, ou mais curto do que o comprimento máximo. A parte de sobreposição truncada ou margem da janela 316 é, então, seguida até o regulador de transição 304. O regulador de transição, então, realiza uma operação de aumento gradual ou diminuição gradual, ou seja, a operação para chegar na janela na figura 10b, por exemplo, da janela na figura 10c que ilustra a janela truncada sem aumento gradual. Para esta finalidade, o regulador de transição acessa a memória através da linha de acesso 314 da memória da parte de sobreposição curta através da linha de recuperação 312. O regulador de transição 304, então, realiza a operação de aumento gradual ou diminuição gradual com a parte da janela truncada da linha 316, por exemplo, multiplicando a parte truncada com a parte de sobreposição. A saída é a parte truncada e transicionada na linha de saída 318.
[0146] A figura 4 ilustra uma implementação preferida da memória 300, a construção da janela pelo construtor de janela e as diferentes formas e possibilidades das janelas são otimizadas para ter uma utilização mínima de memória. Uma aplicação preferida da presente invenção possibilita a utilização de seis taxas de amostragem de 48 kHz, 32 kHz, 25,6 kHz, 16 kHz, 12,8 kHz ou 8 kHz. Para cada taxa de amostragem um conjunto de coeficientes da janela ou partes da janela é armazenado. Esta é uma primeira parte da janela assimétrica de 20ms, da segunda parte da janela assimétrica de 20ms, de uma única parte da janela simétrica 10ms como a parte de sobreposição 3,75ms e a única parte da janela simétrica de 5ms como a parte de sobreposição de 1,25ms. Tipicamente, a única parte da janela simétrica de 10ms pode ser a margem da janela crescente e, então, pela operação direta aritmética ou lógica como espelhamento, a parte decrescente pode ser calculada. De modo alternativo, quando a parte decrescente é armazenada na memória 300 como a única parte, então a crescente parte pode ser calculada pelo espelhamento ou, de modo geral, pelas operações aritméticas ou lógicas. O mesmo é verdadeiro para a única parte da janela simétrica de 5ms. Naturalmente, devido ao fato que todas as janelas tendo comprimentos de 5 ou 190ms podem ter, em cada lado, a parte de sobreposição média como 3,75ms ou a parte de sobreposição curta tendo, por exemplo, um comprimento de 1,25ms.
[0147] Além disso, o construtor de janela é configurado para determinar, sozinho de acordo com as regras predefinidas correspondentes, o comprimento e a posição da parte baixa ou zeros e as partes altas ou de uma das janelas específicas, conforme ilustrado nos gráficos da figura 8a a 15b.
[0148] Assim, apenas uma quantidade mínima de exigências de memória é necessária para a finalidade de implementar um codificador e um decodificador. Assim, distante do fato que o codificador e o decodificador dependendo entre si e a mesma memória 300, mesmo uma quantidade gasta de diferentes janelas e janelas de transição etc., pode ser implementada apenas pelo armazenamento de quatro conjuntos de coeficientes da janela para cada taxa de amostragem.
[0149] A comutação de janela de transformada representada acima foi implementada em um sistema de codificação de áudio utilizando janelas assimétricas para transformadas longas e janelas de seno de baixa sobreposição para transformadas curtas. O comprimento do comprimento é 20ms para blocos longos e 10ms ou 5ms para blocos curtos. A sobreposição esquerda da janela de análise assimétrica tem um comprimento de 14,375ms, o comprimento de sobreposição direita é 8,75ms. As janelas curtas utilizam as sobreposições de 3,75ms e 1,25ms. Para a transição de comprimento de transformada de 20ms a 10ms ou 5ms no lado do codificador a parte de sobreposição esquerda da janela de análise assimétrica é truncada a 8,75ms e utilizada para a parte da janela esquerda da primeira transformada curta. Um aumento gradual em formato de seno de 1,25ms aplicado pela multiplicação da extremidade esquerda da janela truncada com a sobreposição da janela curta crescente de 1,25ms. Reutilizar o formato da janela de sobreposição de 1,25ms para aumento gradual evita a necessidade de uma tabela ROM/RAM adicional, bem como a complexidade para computação imediata do formato de aumento gradual. A figura 14a representa a sequência de janela resultante para um exemplo com a sequência do comprimento de transformada de 20ms, 5ms, 5ms, 10ms, 20ms.
[0150] No lado do decodificador para a transição de comprimento de transformada de 10ms ou 5ms a 20ms, a parte de sobreposição direita da janela de síntese assimétrica é truncada a 8,75ms e utilizada para a parte direita da janela da última transformada curta. Uma diminuição gradual em formato de seno de 1,25ms similar ao aumento gradual no lado do codificador é aplicado à extremidade truncada da janela. A sequência de janela do decodificador para o exemplo acima é representada na figura 14b.
[0151] A figura 5 ilustra o fluxograma de uma aplicação adicional para determinação da segunda janela, ou seja, uma janela de transição de análise para o Caso A da figura 2. Na etapa 500, a primeira e a segunda partes da janela assimétrica são recuperadas. Na etapa 502, a primeira janela de análise assimétrica é criada. Assim, a janela de análise 1400 da figura 14B ou 1500 da figura 15A é gerada. Na etapa 504, a primeira parte da janela assimétrica é recuperada por uma linha de recuperação, por exemplo, ilustrada na figura 3 em 308. Na etapa 506, o comprimento de truncamento é determinado e o truncamento é realizado como pelo truncador da parte da janela 302 na figura 3. Na etapa 508, uma única parte da janela simétrica de 5ms é recuperada como Item 401 armazenado na memória 300. Na etapa 510, o aumento gradual da parte truncada é calculado, por exemplo, pela operação do regulador de transição 304 na figura 3. Agora, a primeira parte de sobreposição está completa. Na etapa 512, a única parte da janela simétrica de 5ms é recuperada, por exemplo, para uma transição de uma janela longa a uma janela curta ou a única parte de uma janela simétrica de 10ms é recuperada para uma transição de uma janela longa para uma janela intermediária. Finalmente, a segunda parte é determinada por operações lógicas ou aritméticas dos dados recuperados na etapa 512 que são indicados pela etapa 514. Observe, entretanto, que a etapa 514 não é necessária quando a única parte da janela simétrica recuperada correspondente pela etapa 512 da memória 300 na figura 4 já pode ser utilizada como a segunda parte, ou seja, como a margem da janela decrescente.
[0152] Embora não ilustrado explicitamente na figura 5, uma etapa adicional é necessária para a finalidade de outras transições como a transição ilustrada na figura 15a. Aqui, a primeira parte zero, a segunda parte zero e a parte alta intermediária devem ser adicionalmente inseridas pelo construtor de janela, enquanto esta inserção pode ser feita antes ou subsequente à determinação da primeira e da segunda partes de sobreposição da segunda janela.
[0153] A figura 6 ilustra uma implementação preferida do procedimento para construção de uma janela de transição de síntese correspondente como a terceira janela. Para esta finalidade, o procedimento das etapas na figura 6a pode ser realizado. Na etapa 600, uma primeira parte de sobreposição da terceira janela é recuperada da memória ou, se não especificamente disponível desta forma, calculada por operações aritméticas ou lógicas a partir dos dados na memória e isto é realizado com base na janela precedente, visto que a primeira parte de sobreposição da janela de síntese já é fixada pela sobreposição da janela precedente. A segunda parte da janela assimétrica, ou seja, a parte longa da janela de síntese assimétrica é recuperada e na etapa 604, um comprimento de truncamento é determinado. Na etapa 606, esta primeira parte é, se necessário, espelhada e, então, o truncamento é realizado utilizando o comprimento de truncamento determinado. Na etapa 608, a única parte da parte de sobreposição de 5ms da janela simétrica é recuperada e, subsequentemente à etapa 608, a diminuição gradual da parte truncada é realizado, conforme ilustrado na etapa 610. A segunda parte de sobreposição da terceira janela é contemplada e, subsequentemente, a segunda e a quarta partes da quarta função de janela assimétrica são recuperadas e aplicadas para, finalmente, obter a quarta janela, conforme indicado pela etapa 612.
[0154] A figura 7 ilustra um procedimento preferido para determinação do comprimento de truncamento. Conforme representado previamente com relação às figuras 10b e 11b, diferentes comprimentos de truncamento podem ser realizados. Pode haver um truncamento para o comprimento máximo de truncamento, ou seja, a situação na figura 11a ou um truncamento para um comprimento menor do que o comprimento máximo de truncamento, conforme ilustrado na figura 11b, para a mesma situação. Para esta finalidade, o procedimento na figura 7 começa com uma indicação do comprimento de janela de transição ilustrada na etapa 700. A etapa 700, portanto, fornece a informação se a janela de transição é para um tamanho de bloco de 10ms, ou seja, com um comprimento de 20ms ou é mais curta, ou seja, uma janela para um comprimento de 10ms para um tamanho de bloco de 5ms.
[0155] Então, na etapa 702 o comprimento da parte de sobreposição simétrica da janela é determinado. Para o lado da análise isto significa que o comprimento da segunda parte de sobreposição é determinado enquanto, para o lado da síntese, isto significa que o comprimento para a primeira parte de sobreposição é determinado. A etapa 702 garante que a situação fixa” da janela de transição é reconhecida, ou seja, que a janela de transição tem uma sobreposição simétrica. Agora, na etapa 704, a segunda margem da janela ou a outra parte de sobreposição da janela é determinada. Basicamente, o comprimento máximo de truncamento é a diferença entre o comprimento de janela de transição e o comprimento da parte de sobreposição simétrica. Quando este comprimento é maior do que o comprimento da margem longa da janela assimétrica, então nenhum truncamento é necessário. Entretanto, quando esta diferença é menor do que a margem longa da janela assimétrica, então um truncamento é realizado. O comprimento máximo de truncamento, ou seja, o comprimento pelo qual um truncamento mínimo é obtido é igual a esta diferença. Onde necessário, um truncamento para este comprimento máximo, ou seja, um truncamento mínimo, pode ser realizado e uma certa transição suave pode ser aplicada, conforme ilustrado na figura 11a ou 10b. Conforme ilustrado na figura 11a, um certo número de um é necessário a fim de garantir que o dobramento ao longo das linhas de dobramento 1104, 1106 seja possível devido ao fato que estas linhas de dobramento não deveriam ser mudadas em certas aplicações. Assim, um certo número de um, conforme indicado em 1101 na figura 11a, é necessário para a janela de transição de análise de 20 a 10ms, mas estes uns não são necessários para a janela de transição de 20 a 5ms da figura 10b.
[0156] A etapa 704, entretanto, pode ser desviada conforme ilustrado por 708. Um truncamento a um comprimento menor do que um comprimento máximo é, então, realizado na etapa 710 levando à situação da figura 11b. A parte da janela remanescente deve ser preenchido com zeros e uns e, em particular, deve ser explicada pela inserção de zeros no começo e no final da janela indicada nas partes 1131 e 1133 na etapa 712. Além disso, uma inserção de um número correspondente de uns para obter a parte alta 1132 deve ser realizada, conforme indicado em 714, a fim de garantir que o dobramento ao redor dos pontos de dobramento 1104 e 1106 opere corretamente, como ilustrado na figura 11b.
[0157] Assim, o número de zeros da parte 1131 é igual a um número de zeros imediatamente próximo à primeira parte de sobreposição 1130, um número de zeros na parte 1133 da figura 11b corresponde a um número de zeros imediatamente adjacente à segunda parte de sobreposição 1134 da figura 11b. Então, o dobramento com o marcador 1135 ao redor das linhas de dobramento 1104 e 1106 funciona corretamente.
[0158] Embora as aplicações preferidas tenham sido descritas com comprimento de janela de 40ms e comprimento de transformada de 20ms como uma janela longa, um tamanho de bloco de 10ms para janelas intermediárias e um tamanho de bloco de 5ms para uma janela curta, deve ser enfatizado que um tamanho de bloco ou janela diferente pode ser aplicado. Além disso, deve ser enfatizado que a presente invenção também é útil apenas para dois tamanhos diferentes de bloco, mas três tamanhos de blocos diferentes são preferidos, de modo a ter uma colocação muito boa de funções de janela curta com relação a um transiente como, por exemplo, o discutido em detalhes no PCT/EP2014/053287, adicionalmente discutindo partes múltiplas de sobreposição, ou seja, uma sobreposição entre mais do que duas janelas que ocorrem nas sequências nas figuras 15a e 15b ou 14a e 14b.
[0159] Embora a presente invenção tenha sido descrita no contexto de diagramas de blocos, onde os blocos representam componentes de hardware lógicos ou reais, a presente invenção também pode ser implementada por um método implementado por computador. Neste último caso, os blocos representam etapas correspondentes do método, em que essas etapas representam as funcionalidades realizadas pelos blocos de hardware físicos ou lógicos correspondentes.
[0160] Embora alguns aspectos tenham sido descritos no contexto de um aparelho, é evidente que estes aspectos também representam uma descrição do método correspondente, onde um bloco ou dispositivo corresponde a uma etapa do método ou característica de uma etapa do método. De forma análoga, aspectos descritos no contexto de uma etapa do método também representam uma descrição de um bloco ou item ou característica correspondente de um aparelho correspondente. Algumas ou todas as etapas do método podem ser executadas por (ou utilizando) um aparelho de hardware, tal como, por exemplo, um microprocessador, um computador programável ou um circuito eletrônico. Em algumas aplicações, uma ou mais da(s) etapa(s) mais importante(s) do método pode(m) ser executada(s) pelo referido aparelho.
[0161] O sinal codificado ou transmitido inventivo pode ser armazenado em um meio de armazenamento digital ou pode ser transmitido por um meio de transmissão, tal como um meio de transmissão sem frio ou um meio de transmissão cabeado, tal como a internet.
[0162] Dependendo de certas exigências de implementação, as aplicações da invenção podem ser implementadas em hardware ou em software. A implementação pode ser realizada utilizando um meio de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma memória ROM, uma PROM, uma EPROM, uma EEPROM ou a memória flash, tendo sinais de controle eletronicamente legíveis armazenados nele, que cooperam (ou são capazes de cooperar) com um sistema de computador programável, de modo que o respectivo método seja realizado. Assim, o meio de armazenamento digital pode ser legível por computador.
[0163] Algumas aplicações de acordo com a invenção compreendem um transportador de dados, tendo sinais de controle eletronicamente legíveis, que podem cooperar com um sistema de computador programável, de modo que um dos métodos descritos aqui seja realizado.
[0164] Geralmente, as aplicações da presente invenção podem ser implementadas como um produto do programa de computador com um código de programa, o código de programa sendo operativo para realizar um dos métodos quando o produto do programa de computador é executado em um computador. O código de programa pode, por exemplo, ser armazenado em um transportador legível por máquina.
[0165] Outras aplicações compreendem o programa de computador para realizar um dos métodos descritos aqui, armazenados em um transportador legível por máquina.
[0166] Em outras palavras, uma aplicação do método inventivo é, portanto, um programa de computador tendo um código de programa para realizar um dos métodos descritos aqui, quando o programa de computador é executado em um computador.
[0167] Outra aplicação do método inventivos é, portanto, um transportador de dados (ou um meio de armazenamento não transitório, tal como um meio de armazenamento digital ou um meio legível por computador) compreendendo, gravado nele, o programa de computador para realizar um dos métodos descritos aqui. O transportador de dados, o meio de armazenamento digital ou o meio gravado são tipicamente tangíveis e/ou não transitórios.
[0168] Outra aplicação do método inventivo é, portanto, um fluxo de dados ou uma sequência de sinais representando o programa de computador para realizar um dos métodos descritos aqui. O fluxo de dados ou a sequência de sinais pode, por exemplo, ser configurado para ser transferido através de uma conexão de comunicação de dados, por exemplo, através da Internet.
[0169] Outra aplicação compreende um meio de processamento, por exemplo, um computador ou um dispositivo de lógica programável, configurado para ou adaptado para realizar um dos métodos descritos aqui.
[0170] Outra aplicação compreende um computador, tendo instalado nele o programa de computador para realizar um dos métodos descrito aqui.
[0171] Outra aplicação, de acordo com a invenção, compreende um aparelho ou um sistema configurado para transferir (por exemplo, eletrônica ou opticamente) um programa de computador para realizar um dos métodos descritos aqui a um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou semelhante. O aparelho ou sistema pode, por exemplo, compreender um servidor de arquivo para transferir o programa de computador ao receptor.
[0172] Em algumas aplicações, um dispositivo de lógica programável (por exemplo, um arranjo de portas programáveis de campo) pode ser utilizado para realizar algumas ou todas as funcionalidades dos métodos descritos aqui. Em algumas aplicações, um arranjo de portas programáveis de campo pode cooperar com um microprocessador, a fim de realizar um dos métodos descritos aqui. Geralmente, os métodos são preferivelmente realizados por qualquer aparelho de hardware.
[0173] As aplicações descritas acima são meramente ilustrativas dos princípios da presente invenção. Entende-se que modificações e variações das disposições e os detalhes descritos serão evidentes a outros especialistas na técnica. É intenção, portanto, ser limitada apenas pelo escopo das reivindicações de patente iminentes e não pelos detalhes específicos apresentados em forma de descrição e explicação das aplicações neste documento. REFERÊNCIAS [1] International Organization for Standardization, ISO/IEC 14496-3, “Information Technology - Coding of audio-visual objects - Part 3: Audio”, Genebra, Suíça, ago/2009. [2] Internet Engineering Task Force (IETF), RFC 6716, “Definition of the Opus Audio Codec”, set/2012. [3] C. R. Helmrich, G. Markovic e B. Edler, “Improved Low- Delay MDCT-Based Coding of Both Stationary and Transient Audio Signals,” in Proceedings of the IEEE 2014 Int. Conference on Acoustics, Speech and Signal Processing (ICASSP), 2014 ou PCT/EP2014/053287.
Claims (17)
1. Processador para processamento de um sinal de áudio (200), caracterizado por compreender: um analisador (202) para derivação de um sinal de controle de janela (204) do sinal de áudio (200), indicando uma mudança de uma primeira janela assimétrica (1400) para uma segunda janela (1402) ou para indicação de uma mudança de uma terceira janela (1450) para uma quarta janela assimétrica (1452), em que a segunda janela (1402) é mais curta do que a primeira janela (1400) ou em que a terceira janela (1450) é mais curta do que a quarta janela (1452); um construtor de janela (206) para construção da segunda janela (1402), utilizando uma primeira parte de sobreposição (800) da primeira janela assimétrica (1400), em que o construtor de janela (206) é configurado para determinar uma primeira parte de sobreposição (1000) da segunda janela (1402), utilizando uma primeira parte de sobreposição truncada da primeira janela assimétrica, ou em que o construtor de janela é configurado para calcular uma segunda parte de sobreposição (1330) da terceira janela (1450), utilizando uma segunda parte de sobreposição truncada (814) da quarta janela assimétrica (1452); e um janelador (208) para aplicação da primeira e da segunda janela ou da terceira e da quarta janela para obter as partes do sinal de áudio em janela (210).
2. Processador de acordo com a reivindicação 1, caracterizado pela primeira e segunda janelas serem janelas de análise ou pela terceira e quarta janelas serem janelas de síntese, em que o processador compreende, ainda, um codificador de áudio (110) para processamento adicional de amostras em janela pela primeira e segunda janelas ou em que o processador compreende, ainda, um somador por sobreposição (174) para adição por sobreposição de amostras em janela pela terceira e quarta janelas.
3. Processador de acordo com a reivindicação 1 e 2, caracterizado pelo construtor de janela (206) ser configurado para derivar a primeira parte de sobreposição (1000) da segunda janela pelo truncamento da primeira parte de sobreposição da primeira janela e por aumento gradual da parte truncada, ou em que o construtor de janela (206) é configurado para derivar a segunda parte de sobreposição da terceira janela pelo truncamento da segunda parte de sobreposição da quarta janela e por diminuição gradual da parte truncada.
4. Processador de acordo com a reivindicação 3, caracterizado pelo construtor de janela (206) ser configurado para realização de aumento gradual ou diminuição gradual, utilizando uma função de aumento gradual de seno ou uma função de diminuição gradual de seno.
5. Processador de acordo com a reivindicação 3 e 4, caracterizado pelo construtor de janela (206) ser configurado para calcular o aumento gradual ou diminuição gradual, utilizando uma parte de sobreposição de qualquer outra janela utilizada pelo processador.
6. Processador de acordo com a reivindicação 5, caracterizado pelo construtor de janela (206) ser configurado para calcular o aumento gradual ou diminuição gradual (304), utilizando uma parte de sobreposição (401) de todas as partes de sobreposição utilizadas.
7. Processador de acordo com qualquer uma das reivindicações anteriores, caracterizado por compreender, ainda, uma memória (300), tendo armazenado nela, para uma determinada taxa de amostragem, a primeira parte de sobreposição (800) da primeira janela assimétrica, uma segunda parte de sobreposição (802) da primeira janela assimétrica e uma terceira parte de sobreposição para uma janela adicional mais curta do que a primeira janela, em que o construtor de janela (206) é configurado para recuperação (308) da primeira parte de sobreposição da primeira janela assimétrica da memória (300), para truncamento (302) da primeira parte de sobreposição em um comprimento mais curto do que o comprimento da primeira parte de sobreposição, para recuperação (312) da terceira parte de sobreposição, e para multiplicação (304) da primeira parte truncada pela terceira parte de sobreposição para gerar a primeira parte de sobreposição da segunda janela; ou em que o construtor de janela (206) é configurado para recuperação da segunda parte de sobreposição da quarta janela assimétrica a partir da memória (300), para truncamento da segunda parte de sobreposição recuperada em um comprimento mais curto do que o comprimento da segunda parte de sobreposição (302), para recuperação da terceira parte de sobreposição (312); e para multiplicação da segunda parte de sobreposição truncada pela terceira parte de sobreposição para gerar a segunda parte de sobreposição da terceira janela.
8. Processador de acordo com a reivindicação 7, caracterizado pela memória (300) ter adicionalmente armazenada uma quarta parte de sobreposição (402) de uma outra janela adicional, a outra janela adicional tendo um comprimento entre um comprimento da primeira janela e um comprimento de janela adicional.
9. Processador de acordo com a reivindicação 8, caracterizado pelo construtor de janela (206) ser configurado para construir, dependendo do sinal de controle de janela (204), uma sequência compreendendo a primeira janela (1400), a segunda janela (1402), uma janela adicional construída utilizando a terceira parte de sobreposição e a quarta parte de sobreposição, ou utilizando apenas a terceira parte de sobreposição e uma outra janela adicional (1410) utilizando a terceira parte de sobreposição e a segunda parte de sobreposição da primeira janela.
10. Processador de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo construtor de janela (206) ser configurado para determinar a primeira parte de sobreposição de uma segunda janela (1402), utilizando a primeira parte de sobreposição truncada da primeira janela assimétrica (1400), sendo truncada em um comprimento de uma segunda parte de sobreposição da primeira janela assimétrica, ou para determinar a segunda parte de sobreposição da terceira janela utilizando uma segunda parte de sobreposição da quarta janela truncada a um comprimento da primeira parte de sobreposição da quarta janela assimétrica.
11. Processador de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo construtor de janela (206) ser configurado para determinar a segunda janela utilizando a primeira parte de sobreposição da segunda janela (1402) e uma segunda parte de sobreposição (1002) da segunda janela (1402) correspondente a uma primeira parte de sobreposição (1022) de uma janela adicional seguindo a segunda janela, ou em que o construtor de janela (206) é configurado para construir a terceira janela utilizando uma primeira parte de sobreposição (1331) da terceira janela correspondente a uma segunda parte de sobreposição (1342) de uma janela adicional precedentes à terceira janela (1450).
12. Processador de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo construtor de janela (206) ser configurado para truncar a primeira parte de sobreposição da primeira janela assimétrica ou a segunda parte de sobreposição da quarta janela assimétrica em um comprimento de truncamento mais curto ou igual a um comprimento de janela da segunda ou da terceira janelas menos um comprimento da primeira parte de sobreposição de uma janela adicional seguindo a segunda janela ou um comprimento de uma segunda parte de sobreposição de uma janela adicional precedente à terceira janela (706, 710).
13. Processador de acordo com a reivindicação 12, caracterizado por, quando o comprimento de truncamento for menor do que o comprimento de janela menos o comprimento da primeira parte de sobreposição da janela adicional ou da segunda parte de sobreposição da janela, o construtor de janela (206) ser configurado para inserir (712) zeros (1131, 1133) antes ou subsequentemente à primeira e à segunda partes de sobreposição da segunda ou da terceira janela e em que o construtor de janela é configurado, ainda, para inserir um número de valores “1” (714; 1132) entre a primeira e a segunda partes de sobreposição da segunda janela ou da terceira janela.
14. Processador de acordo com as reivindicações de 1 a 3, caracterizado pela primeira janela assimétrica ter uma primeira parte de sobreposição, uma segunda parte de sobreposição, uma primeira parte de valor alto entre a primeira e a segunda partes de sobreposição e uma segunda parte de valor baixo subsequente à segunda parte de sobreposição, em que os valores na parte de valor alto são maiores do que 0,9 e os valores na parte de valor baixo são menores do que 0,1, e em que o comprimento da segunda parte de sobreposição é menor do que um comprimento da primeira parte de sobreposição.
15. Processador de acordo com uma das reivindicações anteriores, caracterizado por ser configurado para operar em uma pluralidade de diferentes taxas de amostragem, e em que o processador é configurado para armazenar, para cada taxa de amostragem, a primeira e a segunda partes de sobreposição da primeira ou da quarta janela (403, 404), uma parte de sobreposição simétrica de uma janela adicional (402) e uma parte de sobreposição simétrica adicional (401) de uma outra janela adicional mais curta do que a janela adicional; e em que a parte de sobreposição simétrica e a parte de sobreposição simétrica adicional são armazenadas apenas como uma parte crescente ou uma parte decrescente e em que o construtor de janela (206) é configurado para derivar uma parte decrescente ou uma parte crescente a partir da parte crescente ou decrescente armazenada por operações aritméticas ou lógicas.
16. Processador de acordo com qualquer uma das reivindicações anteriores, caracterizado pela primeira janela ser configurado para um comprimento de transformada de 20 ms, em que o construtor de janela é configurado para utilizar, ainda, janelas adicionais para o comprimento de transformada de 10 ms ou 5 ms, e em que a segunda janela é uma janela de transição do comprimento de transformada de 20 ms ao comprimento de transformada de 10 ms ou 5 ms, ou em que a quarta janela é configurada para o comprimento de transformada de 20 ms e em que a terceira janela é uma janela de transição do comprimento de transformada de 5 ms a 20 ms ou do comprimento de transformada de 10 ms a 20 ms.
17. Método para processamento de um sinal de áudio (200), caracterizado por compreender: derivação (202) de um sinal de controle de janela (204) a partir do sinal de áudio (200), indicando uma mudança de uma primeira janela assimétrica (1400) para uma segunda janela (1402) ou para indicação de uma mudança de uma terceira janela (1450) para uma quarta janela assimétrica (1452), em que a segunda janela (1402) é mais curta do que a primeira janela (1400) ou em que a terceira janela (1450) é mais curta do que a quarta janela (1452); construção (206) da segunda janela (1402), utilizando uma primeira parte de sobreposição (800) da primeira janela assimétrica (1400), em que o construtor de janela (206) é configurado para determinar uma primeira parte de sobreposição (1000) da segunda janela (1402) utilizando uma primeira parte de sobreposição truncada da primeira janela assimétrica ou em que o construtor de janela é configurado para calcular uma segunda parte de sobreposição (1330) da terceira janela (1450) utilizando uma segunda parte de sobreposição truncada (814) da quarta janela assimétrica (1452); e um janelador (208) para aplicação da primeira e da segunda janelas ou da terceira e da quarta janelas para obter as partes do sinal de áudio em janela (210).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14178774.7 | 2014-07-28 | ||
EP14178774.7A EP2980791A1 (en) | 2014-07-28 | 2014-07-28 | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
PCT/EP2015/066997 WO2016016120A1 (en) | 2014-07-28 | 2015-07-24 | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112017001630A2 BR112017001630A2 (pt) | 2017-11-21 |
BR112017001630B1 true BR112017001630B1 (pt) | 2023-07-11 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11664036B2 (en) | Processor and method for processing an audio signal using truncated analysis or synthesis window overlap portions | |
BR112015019270B1 (pt) | aparelho e método para criar um sinal de áudio ou de imagem codificado na presença de transientes, aparelho e método para descodificar um sinal de áudio ou de imagem codificado na presença de transientes | |
BR112016000337B1 (pt) | Método de extensão de banda realizado por um dispositivo de extensãode banda para formar um sinal de saída com artefatos reduzidos, dispositivo dedeterminação de um fator de escala otimizado para aplicar em um sinal deexcitação ou em um filtro em um dispositivo de extensão de banda de frequênciade um sinal e decodificador de sinal de audiofrequência | |
BR112012022898B1 (pt) | procesador de sinal, provedor de janela, sinal de mídia codificado, método para processar um sinal e método para prover uma janela | |
BR112017001630B1 (pt) | Processador e método para processamento de um sinal de áudio utilizando análise truncada ou partes de sobreposição da janela de síntese | |
TWI570708B (zh) | 用於使用重疊範圍組合處理音訊信號之裝置及方法 | |
BR112017019179B1 (pt) | Decodificador para decodificar um sinal de áudio codificado e codificador para codificar um sinal de áudio |