BR112017019179B1 - Decodificador para decodificar um sinal de áudio codificado e codificador para codificar um sinal de áudio - Google Patents

Decodificador para decodificar um sinal de áudio codificado e codificador para codificar um sinal de áudio Download PDF

Info

Publication number
BR112017019179B1
BR112017019179B1 BR112017019179-2A BR112017019179A BR112017019179B1 BR 112017019179 B1 BR112017019179 B1 BR 112017019179B1 BR 112017019179 A BR112017019179 A BR 112017019179A BR 112017019179 B1 BR112017019179 B1 BR 112017019179B1
Authority
BR
Brazil
Prior art keywords
transform
group
multichannel
blocks
transform kernels
Prior art date
Application number
BR112017019179-2A
Other languages
English (en)
Other versions
BR112017019179A2 (pt
Inventor
Christian Helmrich
Bernd Edler
Original Assignee
Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E.V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP15172542.1A external-priority patent/EP3067889A1/en
Application filed by Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E.V filed Critical Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E.V
Publication of BR112017019179A2 publication Critical patent/BR112017019179A2/pt
Publication of BR112017019179B1 publication Critical patent/BR112017019179B1/pt

Links

Abstract

DECODIFICADOR PARA DECODIFICAR UM SINAL DE ÁUDIO CODIFICADO E CODIFICADOR PARA CODIFICAR UM SINAL DE ÁUDIO. Trata-se de um diagrama de blocos esquemático de um decodificador 2 para decodificar um sinal de áudio codificado 4. O decodificador compreende um conversor de espectro e tempo adaptativo 6 e um processador de adição e sobreposição 8. O conversor de espectro e tempo adaptativo converte blocos sucessivos de valores espectrais 4 em blocos sucessivos de valores de tempo 10, por exemplo, por meio de uma transformada de frequência em tempo. Adicionalmente, o conversor de espectro e tempo adaptativo 6 recebe informações de controle 12 e comuta, em resposta às informações de controle 12, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada. Além disso, o processador de adição e sobreposição 8 sobrepõe e adiciona os blocos sucessivos de valores de tempo 10 para obter valores de áudio decodificados 14, que podem ser um sinal de áudio decodificado.

Description

[001] A presente invenção refere-se a um decodificador para decodificar um sinal de áudio codificado e um codificador para codificar um sinal de áudio. As modalidades mostram um método e um aparelho para comutação de kernel de transformada adaptativa a sinal em conversão em código de áudio. Em outras palavras, a presente invenção se refere à conversão em código de áudio e, em particular, à conversão em código de áudio perceptual por meio de transformadas sobrepostas, de modo que, por exemplo, a transformada de cosseno distinta modificada (MDCT) [1].
[002] Todos os codecs de áudio perceptuais simultâneos, que incluem MP3, Opus (Celt), a família HE-AAC e os novos codecs de Áudio de 3D de MPEG-H e Serviços de Voz Melhorados de 3GPP (EVS), empregam a MDCT para quantização de domínio espectral e conversão em código de um ou mais formas de onda de canal. A versão de síntese dessa transformada sobreposta, com o uso de um spec de espectro de comprimento M [] é dado porem que M = N/2 e N é o comprimento de janela de tempo. Após janelamento, a saída de tempo xi,n é combinada com a saída de tempo anterior xi-1,n por meio de um processo de sobreposição e adição (OLA). C pode ser um parâmetro constante que é maior que 0 ou menor que ou igual a 1, tal como, por exemplo, 2/N.
[003] Enquanto a MDCT de (1) trabalha bem para conversão em código de áudio de alta qualidade de arbitrariamente de diversos canais em várias taxas de bits, há dois casos em que a qualidade de conversão em código pode ser insuficiente. Esses são, por exemplo, • sinais altamente harmônicos com determinadas frequências fundamentais que são, por meio de MDCT, amostradas, de modo que cada harmônico seja representado por mais que um binário de MDCT. Isso resulta em compactação de energia subideal no domínio espectral, isto é, baixo ganho de codificação. • sinais estéreos com aproximadamente 90 graus de alteração de fase entre os binários de MDCT dos canais, que não podem ser explorados por conversão em código de canal conjunto com base em estéreo M/S tradicional. A conversão em código de estéreo mais sofisticada envolve conversão em código de diferença de fase entre canais (IPD) pode ser alcançada, por exemplo, com o uso de Estéreo Paramétrico do HE-AAC ou MPEG Surround, porém tais ferramentas operam em um domínio de banco de filtro separado, que aumenta a complexidade.
[004] Diversos trabalhos e artigos científicos mencionam operações de MDCT ou semelhantes a MDST, algumas vezes com nomeação diferente, tal como “transformada ortogonal sobreposta (LOT)”, “transformada sobreposta estendida (ELT)” ou “transformada sobreposta modulada (MLT)”. Apenas [4] menções diversas transformadas sobrepostas diferentes ao mesmo tempo, porém, não supera as desvantagens mencionadas anteriormente da MDCT.
[005] Portanto, há uma necessidade de uma abordagem aprimorada.
[006] É um objetivo da presente invenção aprimorar um conceito aprimorado para processar um sinal de áudio. Esse objetivo é solucionado pela matéria das reivindicações independentes.
[007] A presente invenção com base nas constatações de que uma alteração ou substituição adaptativa a sinal do kernel de transformada pode superar os tipos de problemas mencionados anteriormente da presente conversão em código de MDCT. De acordo com modalidades, a presente invenção aborda os dois problemas relacionados à conversão em código de transformada convencional generalizando-se o princípio de conversão em código de MDCT para incluir três outras transformadas semelhantes. Após a formulação de síntese de (1), essa generalização proposta deve ser definida como
[008] Observe que a ^ constante foi substituída por uma constante ko e que a função cos(...) foi totalmente substituída por uma função cs(...). Tanto k0 quanto cs(...) são escolhidos por adaptabilidade um sinal e contexto.
[009] De acordo com modalidades, a modificação proposta do paradigma de conversão em código de MDCT pode se adaptar a características de entrada instantâneas em base uma por quadro, de modo que, por exemplo, os problemas ou casos descritos anteriormente sejam abordados.
[010] As modalidades mostram um decodificador para decodificar um sinal de áudio codificado. O decodificador compreende um conversor de espectro e tempo adaptativo para converter blocos sucessivos de valores espectrais em blocos sucessivos de valores de tempo, por exemplo, por meio de uma transformada de frequência em tempo. O decodificador compreende adicionalmente um processador de adição e sobreposição para sobrepor e adicionar blocos sucessivos de valores de tempo para obter valores de áudio decodificados. O conversor de espectro e tempo adaptativo é configurado para receber informações de controle e comutar, em resposta às informações de controle, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada. O primeiro grupo de kernels de transformada pode compreender um ou mais kernels de transformada que têm uma simetria ímpar em um lado esquerdo e uma simetria par no lado direito do kernel de transformada ou vice-versa, tal como, por exemplo, um kernel de transformada de MDCT-IV inversa ou um kernel de transformada de MDST-IV inversa. O segundo grupo de kernels de transformada pode compreender kernels de transformada que têm uma simetria par em ambos os lados do kernel de transformada ou uma simetria ímpar em ambos os lados do kernel de transformada, tal como, por exemplo, um kernel de transformada de MDCT-II inversa ou um kernel de transformada de MDST-II inversa. Os tipos II e IV de kernel de transformada serão descritos em maiores detalhes a seguir.
[011] Portanto, para sinais altamente harmônicos que têm um passo pelo menos aproximadamente igual a um múltiplo de número inteiro da resolução de frequência da transformada, que pode ser a largura de banda de um binário de transformada no domínio espectral, é vantajoso usar um kernel de transformada do segundo grupo de kernels de transformada, por exemplo, a MDCT-II ou a MDST-II, para converter em código o sinal em comparação à conversão em código do sinal com a MDCT clássica. Em outras palavras, com o uso de uma dentre a MDCT-II ou a MDST-II é vantajoso codificar um sinal altamente harmônico que está mais próximo de um múltiplo de número inteiro da resolução de frequência da transformada em comparação à MDCT-IV.
[012] As modalidades adicionadas mostraram que o decodificador é configurado para decodificar sinais de multicanal, tal como, por exemplo, sinais estéreos. Para sinais estéreos, por exemplo, um processamento estéreo intermediário/lateral (M/S)- é, frequentemente, superior ao processamento de estéreo esquerdo/direito clássico (L/R). No entanto, essa abordagem não trabalha ou é, pelo menos inferior, se ambos os sinais tiverem uma alteração de fase de 90° ou 270°. De acordo com modalidades, é vantajoso codificar um dentre os dois canais com uma conversão em código com base em MDST-IV e ainda usar a conversão em código de MDCT-IV clássica para codificar o segundo canal. Isso resulta em uma alteração de fase de 90° entre aqueles dois canais incorporados pelo esquema de codificação que compensa a alteração de fase de 90° ou 270° dos canais de áudio.
[013] As modalidades adicionais mostraram um codificador para codificar um sinal de áudio. O codificador compreende um conversor de tempo e espectro adaptativo para converter blocos de sobreposição de valores de tempo em blocos sucessivos de valores espectrais. O codificador compreende adicionalmente um controlador para controlar o conversor de tempo e espectro para comutar entre kernels de transformada de um primeiro grupo de kernels de transformada e kernels de transformada de um segundo grupo de kernels de transformada. Portanto, o conversor de tempo e espectro adaptativo recebe informações de controle e comuta, em resposta às informações de controle, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada. O codificador pode ser configurado para aplicar os kernels de transformada diferentes com relação a uma análise do sinal de áudio. Portanto, o codificador pode aplicar os kernels de transformada em uma forma já descrita com relação AO decodificador, em que, de acordo com as modalidades, o codificador aplica as operações de MDCT ou MDST e o decodificador aplica as operações inversas relacionadas, a saber, as transformadas de IMDCT ou IMDST. Os kernels de transformada diferentes serão descritos em detalhes a seguir.
[014] De acordo com a modalidade adicional, o codificador compreende uma interface de saída para gerar um sinal de áudio codificado que tem, para um quadro atual, informações de controle que indicam uma simetria do kernel de transformada usada para gerar o quadro atual. A interface de saída pode gerar as informações de controle para o decodificador que tem a capacidade para decodificar o sinal de áudio codificado com o kernel de transformada correto. Em outras palavras, o decodificador deve aplicar o kernel de transformada inversa do kernel de transformada usado pelo codificador para codificar o sinal de áudio em cada quadro e canal. Essas informações podem ser armazenadas nas informações de controle e transmitidas a partir do codificador para o decodificador, por exemplo, com o uso de uma seção de dados de controle de um quadro do sinal de áudio codificado.
[015] As modalidades da presente invenção serão discutidas subsequentemente com referência aos desenhos anexos, nos quais: A Figura 1 mostra um diagrama de blocos esquemático de um decodificador para decodificar um sinal de áudio codificado; A Figura 2 mostra um diagrama de blocos esquemático que ilustra o fluxo de sinal no decodificador, de acordo com uma modalidade; A Figura 3 mostra um diagrama de blocos esquemático de um codificador para codificar um sinal de áudio, de acordo com uma modalidade; A Figura 4a mostra uma sequência esquemática de blocos de valores espectrais obtidos por um codificador de MDCT exemplificativo. A Figura 4b mostra uma representação esquemática de um sinal de domínio de tempo que é inserido em um codificador de MDCT exemplificativo; A Figura 5a mostra um diagrama de blocos esquemático de um codificador de MDCT exemplificativo, de acordo com uma modalidade; A Figura 5b mostra um diagrama de blocos esquemático de um decodificador de MDCT exemplificativo, de acordo com uma modalidade; A Figura 6 ilustra esquematicamente a propriedade de dobra implícita e simetrias das quatro transformadas sobrepostas descritas; A Figura 7 mostra esquematicamente duas modalidades de um caso de uso em que a comutação de kernel de transformada adaptativa a sinal é aplicada ao kernel de transformada a partir de um quadro para o próximo quadro enquanto permite a reconstrução perfeita; A Figura 8 mostra um diagrama de blocos esquemático de um decodificador para decodificar um sinal de áudio de multicanal, de acordo com uma modalidade; A Figura 9 mostra um diagrama de blocos esquemático do codificador da Figura 3 que é estendido ao processamento de multicanal, de acordo com uma modalidade; A Figura 10 ilustra a codificador de áudio esquemático para codificar um sinal de áudio de multicanal que tem dois ou mais sinais de canal, de acordo com uma modalidade; A Figura 11a mostra um diagrama de blocos esquemático de um calculador de codificador, de acordo com uma modalidade; A Figura 11b mostra um diagrama de blocos esquemático de um calculador de codificador alternativo, de acordo com uma modalidade; A Figura 11c mostra um diagrama esquemático de uma regra de combinação exemplificativa de um primeiro e um segundo canal no combinador, de acordo com uma modalidade; A Figura 12a mostra um diagrama de blocos esquemático de um calculador de decodificador, de acordo com uma modalidade; A Figura 12b mostra um diagrama de blocos esquemático de um calculador de matriz, de acordo com uma modalidade; A Figura 12c mostra um diagrama esquemático de uma regra de combinação inversa exemplificativa para a regra de combinação da Figura 11c, de acordo com uma modalidade; A Figura 13a ilustra um diagrama de blocos esquemático de uma implantação de um codificador de áudio, de acordo com uma modalidade; A Figura 13b ilustra um diagrama de blocos esquemático de um decodificador de áudio correspondente ao codificador de áudio ilustrado na Figura 13a, de acordo com uma modalidade; A Figura 14a ilustra um diagrama de blocos esquemático de uma implantação adicional de um codificador de áudio, de acordo com uma modalidade; A Figura 14b ilustra um diagrama de blocos esquemático de um decodificador de áudio correspondente ao codificador de áudio ilustrado na Figura 14a, de acordo com uma modalidade; A Figura 15 mostra um diagrama de blocos esquemático de um método para decodificar um sinal de áudio codificado; A Figura 16 mostra um diagrama de blocos esquemático de um método para codificar um sinal de áudio.
[016] A seguir, as modalidades da invenção serão descritas em maiores detalhes. Os elementos mostrados nas respectivas Figuras que têm a mesma funcionalidade ou funcionalidade semelhante terão associados a esses os mesmos sinais de referência.
[017] A Figura 1 mostra um diagrama de blocos esquemático de um decodificador 2 para decodificar um sinal de áudio codificado 4. O decodificador compreende um conversor de espectro e tempo adaptativo 6 e um processador de adição e sobreposição 8. O conversor de espectro e tempo adaptativo converte blocos sucessivos de valores espectrais 4’ em blocos sucessivos de valores de tempo 10, por exemplo, por meio de uma transformada de frequência em tempo. Adicionalmente, o conversor de espectro e tempo adaptativo 6 recebe informações de controle 12 e comuta, em resposta às informações de controle 12, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada. Além disso, o processador de adição e sobreposição 8 sobrepõe e adiciona os blocos sucessivos de valores de tempo 10 para obter valores de áudio decodificados 14, que podem ser um sinal de áudio decodificado.
[018] De acordo com modalidades, as informações de controle 12 podem compreender um bit atual que indica uma simetria atual para um quadro atual, em que o conversor de espectro e tempo adaptativo 6 é configurado para não se comutar do primeiro grupo para o segundo grupo quando o bit atual indicar que a mesma simetria, conforme foi usado em um quadro anterior. Em outras palavras, se, por exemplo, as informações de controle 12 indicarem o uso de um kernel de transformada do primeiro grupo para o quadro anterior e se o quadro atual e o quadro anterior compreenderem a mesma simetria, por exemplo, indicada se o bit atual do quadro atual e o quadro anterior tiverem o mesmo estado, um kernel de transformada do primeiro grupo é aplicado, em que significa que o conversor de espectro e tempo adaptativo não se comuta do primeiro para o segundo grupo de kernels de transformada. De outro modo, isto é, permanecer no segundo grupo ou não se comutar do segundo grupo para o primeiro grupo, em que o bit atual indica a simetria atual para o quadro atual indica uma simetria diferente conforme foi usado no quadro anterior. Em outras palavras, se a simetria atual e a simetria anterior forem iguais e se o quadro anterior tiver sido codificado com o uso de um kernel de transformada do segundo grupo, o quadro atual é decodificado com o uso de um kernel de transformada inversa do segundo grupo.
[019] Adicionalmente, se o bit atual que indica uma simetria atual para o quadro atual indicar que uma simetria diferente conforme foi usado no quadro anterior, o conversor de espectro e tempo adaptativo 6 é configurado para se comutar do primeiro grupo para o segundo grupo. Mais especificamente, o conversor de espectro e tempo adaptativo 6 é configurado para se comutar do primeiro grupo para o segundo grupo quando o bit atual que indica uma simetria atual para o quadro atual indicar uma simetria diferente conforme foi usado no quadro anterior. Adicionalmente, o conversor de espectro e tempo adaptativo 6 pode comutar o segundo grupo para o primeiro grupo, quando o bit atual que indica uma simetria atual para o quadro atual indicar a mesma simetria conforme foi usado no quadro anterior. Mais especificamente, se um quadro atual e um quadro anterior compreenderem a mesma simetria, e se o quadro anterior tiver sido codificado com o uso de um kernel de transformada do segundo grupo de kernels de transformada, o quadro atual pode ser decodificado com o uso de um kernel de transformada do primeiro grupo de kernels de transformada. As informações de controle 12 podem ser derivadas do sinal de áudio codificado 4 ou recebidas por meio de um canal de transmissão separado ou sinal de portadora, conforme será esclarecido a seguir. Além disso, o bit atual que indica uma simetria atual de um quadro atual pode ser uma simetria do lado direito dos kernels de transformada.
[020] O artigo de 1986 por Princen e Bradley [2] descreve duas transformadas sobrepostas que empregam uma função trigonométrica que é a função de cosseno ou a função de seno. A primeira, que é chamada de “com base em DCT” em tal artigo, pode ser obtida com o uso de (2) configurando-se cs() = cos() e k0 = 0, a segunda, chamada de “com base em DST”, é definida por (2) quando cs() = sin() e k0 = 1. Devido às suas respectivas semelhantes à DCT- II e à DST-II frequentemente usadas em conversão em código de imagem, esses casos particulares da formulação geral de (2) devem ser declarados como transformadas de “MDCT tipo II” e “MDST tipo II”, respectivamente, neste documento. Princen e Bradley continuarem suas investigações em um artigo de 1987 [3] no qual os mesmos propuseram o caso comum de (2) com cs() = cos() e k0 = 0,5, que foi introduzido em (1) e que é conhecido de modo geral como “a MDCT”. Para fins de esclarecimento e devido a sua relação com a DCT-IV, essa transformada deve ser chamada de “MDCT tipo IV” no presente documento. O leitor atento identificará imediatamente uma combinação possível restante, chamada de “MDST tipo IV”, que tem como base a DST-IV e é obtida com o uso de (2) com cs() = sin() e k0 = 0,5. As modalidades descrevem quando e como comutar o sinal de modo adaptável entre essas quatro transformadas.
[021] Deve-se definir algumas regras sobre como a comutação inventiva entre os quatro kernels de transformada diferentes pode ser alcançada, de modo que a propriedade de reconstrução perfeita (reconstrução idêntica do sinal de entrada após a transformação de análise e síntese na ausência de quantização espectral ou outra introdução de serrilhamento), conforme observado em [1-3], seja retida. Para esse propósito, uma observação das propriedades de extensão simétricas das transformadas de síntese, de acordo com (2), é útil, que é ilustrada com relação à Figura 6. • A MDCT-IV mostra a simetria ímpar em seu lado esquerdo e simetria par em seu lado direito; um sinal sintetizado é invertido em seu lado esquerdo durante sinal o desdobramento dessa transformada. • A MDST-IV mostra a simetria par em seu lado esquerdo e a simetria ímpar em seu lado direito; um sinal sintetizado é invertido em seu lado direito durante o desdobramento de sinal dessa transformada. • A MDCT-II mostra a simetria par em seu lado esquerdo e a simetria par em seu lado direito; um sinal sintetizado não é invertido em qualquer lado durante o desdobramento de sinal dessa transformada. • A MDST-II exibe a simetria ímpar em seu lado esquerdo e a simetria ímpar em seu lado direito; um sinal sintetizado é invertido em ambos os lados durante o desdobramento de sinal dessa transformada.
[022] Adicionalmente, são descritas duas modalidades para derivar as informações de controle 12 no decodificador. As informações de controle podem compreender, por exemplo, um valor de k0 e cs() para indicar uma dentre as quatro transformadas mencionadas acima. Portanto, o conversor de espectro e tempo adaptativo pode ler a partir do sinal de áudio codificado, as informações de controle para um quadro anterior e as informações de controle para um quadro atual após o quadro anterior do sinal de áudio codificado em uma seção de dados de controle para o quadro atual. Opcionalmente, o conversor de espectro e tempo adaptativo 6 pode ler as informações de controle 12 da seção de dados de controle para o quadro atual e recuperar as informações de controle para o quadro anterior de uma seção de dados de controle do quadro anterior ou de uma configuração de decodificador aplicada ao quadro anterior. Em outras palavras, as informações de controle podem ser derivadas diretamente da seção de dados de controle, por exemplo, em um cabeçalho, do quadro atual ou da configuração de decodificador do quadro anterior.
[023] A seguir, as informações de controle trocadas entre um codificador e o decodificador são descritas de acordo com uma modalidade preferida. Esta seção descreve como as informações de lado (isto é, informações de controle) podem ser sinalizadas em um fluxo de bits convertido em código e usadas para derivar e aplicar os kernels de transformada adequados de uma forma robusta (por exemplo, contra perda de quadro).
[024] De acordo com uma modalidade preferida, a presente invenção pode ser integrada a MPEG-D USAC (HE-AAC Estendida) ou Codec de Áudio MPEG- H 3D. As determinadas informações de lado podem ser transmitidas em um chamado elemento fd_channel_stream, que é disponibilizado para cada canal e quadro de domínio da frequência (FD). Mais especificamente, um sinalizador de currAliasingSymmetry de um bit é gravado (por um codificador) e lido (por um decodificador) lodo depois ou antes do elemento de fluxo de bits de scale_factor_data(). Se o determinado quadro for um quadro independente, isto é, indepFlag==1, outro bit, prevAliasingSymmetry, é gravado e lido. Isso garante que tanto as simetrias de lado esquerdo quanto de lado direito, e, desse modo, o kernel de transformada resultante a ser usado nos ditos quadro e canal, possam ser identificadas no decodificador (e adequadamente decodificadas) mesmo se o quadro anterior for perdido durante a transmissão de fluxo de bits. Se o quadro não for um quadro independente, prevAliasingSymmetry não é gravado e lido, porém, configurado como igual ao valor que currAliasingSymmetry manteve no quadro anterior. De acordo com modalidades adicionais, bits ou sinalizadores diferentes podem ser usados para indicar as informações de controle (isto é, as informações de lado).
[025] Em seguida, os respectivos valores para cs() e k0 são derivados dos sinalizadores currAliasingSymmetry e prevAliasingSymmetry, conforme especificado na Tabela 1, em que currAliasingSymmetry é abreviado como symmi e prevAliasingSymmetry é abreviado como symmi-1. Em outras palavras, symmi são as informações de controle para o quadro atual no índice i e symmi-1 são as informações de controle para o quadro anterior no índice i-1. A Tabela 1 mostra uma matriz de decisão de lado de decodificado que especifica os valores de k0 e cs(...) com base em informações de lado transmitidas e/ou informações de lado derivadas de outra forma com relação à simetria. Portanto, o conversor de espectro e tempo adaptativo pode aplicar o kernel de transformada com base na Tabela 1.TABELA 1
[026] Por último, uma vez que cs() e k0 tenham sido determinados no decodificador, a transformada inversa para o determinado quadro e canal pode ser realizada com o kernel adequado com o uso da equação (2). Antes e depois dessa transformada de síntese, o decodificador pode operar como normalmente no estado da técnica, também com relação à janelamento.
[027] A Figura 2 mostra um diagrama de blocos esquemático que ilustra o fluxo de sinal no decodificador de acordo com uma modalidade, em que uma linha contínua indica o sinal e uma linha tracejada indica as informações de lado, i indica um índice de quadro, e xi indica uma saída de sinal de tempo de quadro. O demultiplexador de fluxo de bits 16 recebe os blocos sucessivos de valores espectrais 4’ e as informações de controle 12. De acordo com uma modalidade, os blocos sucessivos de valores espectrais 4’ e as informações de controle 12 são multiplexadas em um sinal comum, sendo que o demultiplexador de fluxo de bits é configurado para derivar os blocos sucessivos de valores espectrais e as informações de controle do sinal comum. Os blocos sucessivos de valores espectrais podem ser adicionalmente inseridos em um decodificador espectral 18. Adicionalmente, as informações de controle para um quadro atual 12 e um quadro anterior 12’ são inseridas no mapeador 20 para aplicar o mapeamento mostrado na tabela 1. De acordo com modalidades, as informações de controle para o quadro anterior 12’ podem ser derivadas de o sinal de áudio codificado, isto é, o bloco anterior de valores espectrais, ou com o uso da predefinição atual do decodificador que foi aplicado ao quadro anterior. Os blocos sucessivos decodificados de modo espectral de valores espectrais 4’’ e as informações de controle processadas 12’ que compreendem os parâmetros cs e k0 são inseridos em um transformador sobreposto de kernel adaptativa inversa, que pode ser o conversor de espectro e tempo adaptativo 6 da Figura 1. A saída pode ser os blocos sucessivos de valores de tempo 10, que podem ser opcionalmente processados com o uso de uma janela de síntese 7, por exemplo, para superar descontinuidades nos limiares dos blocos sucessivos de valores de tempo, antes de serem inseridos no processador de adição e sobreposição 8 para realizar um algoritmo de adição e sobreposição para derivar o valor de áudio decodificado 14. O mapeador 20 e o conversor de espectro e tempo adaptativo 6 podem ser movidos adicionalmente para outra posição da decodificação do sinal de áudio. Portanto, a localização desses blocos é apenas uma proposta. Além disso, as informações de controle podem ser calculadas com o uso de um codificador correspondente, uma modalidade dessa é, por exemplo, descrita com relação à Figura 3.
[028] A Figura 3 mostra um diagrama de blocos esquemático de um codificador para codificar um sinal de áudio, de acordo com uma modalidade. O codificador compreende um conversor de tempo e espectro adaptativo 26 e um controlador 28. O conversor de tempo e espectro adaptativo 26 converte blocos de sobreposição de valores de tempo 30, que compreende, por exemplo, blocos 30’ e 30’’, em blocos sucessivos de valores espectrais 4’. Adicionalmente, o conversor de tempo e espectro adaptativo 26 recebe informações de controle 12a e comuta, em resposta às informações de controle, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada. Além disso, um controlador 28 é configurado para controlar o conversor de tempo e espectro para comutar entre kernels de transformada de um primeiro grupo de kernels de transformada e kernels de transformada de um segundo grupo de kernels de transformada. Opcionalmente, o codificador 22 pode compreender uma interface de saída 32 para gerar um sinal de áudio codificado para ter, para um quadro atual, informações de controle 12 que indicam uma simetria do kernel de transformada usada para gerar o quadro atual. Um quadro atual pode ser um bloco atual dos blocos sucessivos de valores espectrais. A interface de saída pode incluir, em uma seção de dados de controle do quadro atual, informações de simetria para o quadro atual e para o quadro anterior, em que o quadro atual é um quadro independente, ou incluir, na seção de dados de controle do quadro atual, apenas informações de simetria para o quadro atual e nenhuma informação de simetria para o quadro anterior, quando o quadro atual for um quadro dependente. Um quadro independente compreende, por exemplo, um cabeçalho de quadro independente, que garante que um quadro atual possa ser lido sem o conhecimento do quadro anterior. Os quadros dependentes ocorrem, por exemplo, em arquivos de vídeo que têm uma comutação de taxa de bits variável. Um quadro dependente é, portanto, apenas legível com o conhecimento de um ou mais quadros anteriores.
[029] O controlador pode ser configurado para analisar o sinal de áudio 24, por exemplo, com relação às frequências fundamentais que estão pelo menos próximas de um múltiplo de número inteiro da resolução de frequência da transformada. Portanto, o controlador pode derivar as informações de controle 12 que alimentam o conversor de tempo e espectro adaptativo 26 e, opcionalmente, a interface de saída 32 com as informações de controle 12. As informações de controle 12 podem indicar kernels de transformada adequados do primeiro grupo de kernels de transformada ou do segundo grupo de kernels de transformada. O primeiro grupo de kernels de transformada pode ter um ou mais kernels de transformada que têm uma simetria diferente em um lado esquerdo do kernel e uma simetria uniforme no lado direito do kernel ou vice- versa. O segundo grupo de kernels de transformada pode compreender um ou mais kernels de transformada que têm uma simetria uniforme em ambos os lados ou uma simetria diferente em ambos os lados do kernel. Em outras palavras, o primeiro grupo de kernels de transformada pode compreender um kernel de transformada de MDCT-IV ou um kernel de transformada de MDST-IV, ou o segundo grupo de kernels de transformada pode compreender um kernel de transformada de MDCT-II ou um kernel de transformada de MDST-II. Para decodificar os sinais de áudio codificados, o decodificador pode aplicar a respectiva transformada inversa aos kernels de transformada do codificador. Portanto, o primeiro grupo de kernels de transformada do decodificador pode compreender um kernel de transformada de MDCT-IV inversa ou um kernel de transformada de MDST-IV inversa, ou o segundo grupo de kernels de transformada pode compreender um kernel de transformada de MDCT-II inversa ou um kernel de transformada de MDST-II inversa.
[030] Em outras palavras, as informações de controle 12 podem compreender um bit atual que indica uma simetria atual para um quadro atual. Adicionalmente, o conversor de espectro e tempo adaptativo 6 pode ser configurado para não comutar do primeiro grupo para o segundo grupo de kernels de transformada, quando o bit atual indicar a mesma simetria conforme foi usado em um quadro anterior, e sendo que o conversor de espectro e tempo adaptativo é configurado para comutar do primeiro grupo para o segundo grupo de kernels de transformada, quando o bit atual indicar uma simetria diferente conforme foi usado no quadro anterior.
[031] Adicionalmente, o conversor de espectro e tempo adaptativo 6 pode ser configurado para não comutar do segundo grupo para o primeiro grupo de kernels de transformada, quando o bit atual indicar uma simetria diferente conforme foi usado em um quadro anterior, e sendo que o conversor de espectro e tempo adaptativo é configurado para comutar do segundo grupo para o primeiro grupo de kernels de transformada, quando o bit atual indicar a mesma simetria conforme foi usado no quadro anterior.
[032] Subsequentemente, é feita referência às Figuras 4a e 4b a fim de ilustrar a relação de porções e blocos de tempo no codificador ou no lado de análise ou no decodificador ou lado de síntese.
[033] A Figura 4b ilustra uma representação esquemática de uma 0-ésima porção de tempo para uma terceira porção de tempo e cada porção de tempo dentre essas porções de tempo subsequentes tem uma faixa de sobreposição 170. Com base nessas porções de tempo, os blocos da sequência de blocos que representam as porções de tempo de sobreposição são gerados pelo processamento discutido em maiores detalhes com relação à Figura 5a que mostra um lado de análise de uma operação de transformada que introduz serrilhamento.
[034] Em particular, o sinal de domínio de tempo ilustrado na Figura 4b, quando a Figura 4b se aplica ao lado de análise, é janelado por um janelador 201 que aplica uma janela de análise. Dessa forma, a fim de obter a 0-ésima porção de tempo, por exemplo, o janelador aplica a janela de análise a, por exemplo, 2048 amostras, e, especificamente, da amostra 1 a amostra 2048. Portanto, N é igual a 1024 e uma janela tem um comprimento de 2N amostras, que, no exemplo, é de 2048. Então, o janelador aplica uma operação de análise adicional, não para a amostra 2049 como a primeira amostra do bloco, mas sim para a amostra 1025 como a primeira amostra no bloco a fim de obter a primeira porção de tempo. Dessa forma, é obtida a primeira faixa de sobreposição 170, que é de 1024 amostras de comprimento para uma sobreposição de 50%. Esse procedimento é aplicado adicionalmente à segunda e à terceira porções de tempo, mas sempre com uma sobreposição a fim de obter uma determinada faixa de sobreposição 170.
[035] Deve-se enfatizar que a sobreposição não precisa ter necessariamente uma sobreposição de 50%, mas a sobreposição pode ser superior e inferior e pode até mesmo haver uma multissobreposição, isto é, uma sobreposição de mais que duas janelas, de modo que uma amostra do sinal de domínio de tempo de áudio não contribua com duas janelas e, consequentemente, blocos de valores espectrais apenas, porém, uma amostra, então, contribui com ainda mais que duas janelas/ dois blocos de valores espectrais. Por outro lado, aqueles versados na técnica compreenderão adicionalmente que existem outros formatos de janela que podem ser aplicados pelo janelador 201 da Figura 5a, que tem 0 porções e/ou porções que têm valores de unidade. Para tais porções que têm de unidade, parece que tais porções tipicamente se sobrepõem com 0 porções de janelas anteriores ou subsequentes e, portanto, uma determinada amostra de áudio localizada em uma porção constante de uma janela que tem valores de unidade contribui com um único bloco de valores espectrais apenas.
[036] As porções de tempo janeladas, conforme obtidas pela Figura 4b, são, então, encaminhadas a um dobrador 202 para realizar uma operação de dobramento. Essa operação de dobramento pode, por exemplo, realizar um dobramento de modo que na saída do dobrador 202, apenas os blocos de valores de amostragem que têm N amostras por bloco existam. Então, subsequente à operação de dobragem realizada pelo dobrador 202, é aplicado um conversor de tempo e frequência que é, por exemplo, um conversor de DCT- IV que converte N amostras por bloco na entrada em N valores espectrais na saída do conversor de tempo e frequência 203.
[037] Desse modo, a sequência de blocos de valores espectrais obtida na saída de bloco 203 é ilustrada na Figura 4a, especificamente, mostrando o primeiro bloco 191 com um primeiro valor de modificação associado ilustrado em 102 nas Figuras 1a e 1b e com um segundo bloco 192 com o segundo valor de modificação associado tal como 106 ilustrado nas Figuras 1a e 1b. Naturalmente, a sequência tem mais blocos 193 ou 194, anteriores ao segundo bloco ou mesmo posteriores ao primeiro bloco, conforme ilustrado. O primeiro e o segundo blocos 191, 192 são, por exemplo, obtidos transformando-se a primeira porção de tempo janelada da Figura 4b para obter o primeiro bloco e o segundo bloco é obtido transformando-se a segunda porção de tempo janelada da Figura 4b pelo conversor de tempo e frequência 203 da Figura 5a. Dessa forma, ambos os blocos de valores espectrais que são adjacentes em tempo na sequência de blocos de valores espectrais representam uma faixa de sobreposição que cobre a primeira porção de tempo e a segunda porção de tempo.
[038] Subsequentemente, a Figura 5b é discutida a fim de ilustrar um processamento de lado de síntese ou lado de decodificador do resultado do processamento de codificador ou lado de análise da Figura 5a. A sequência de blocos de valores espectrais emitida pelo conversor de frequência 203 da Figura 5a é inserida em um modificador 211. Conforme destacado, cada bloco de valores espectrais tem N valores espectrais para o exemplo ilustrado nas Figuras 4a a 5b (observa-se que esse é diferente das equações (1) e (2), em que M é usado). Cada bloco tem associado seus valores de modificação, tais como 102, 104 ilustrados nas Figuras 1a e 1b. Então, em uma operação de IMDCT típica ou transformada de síntese de redução de redundância, as operações ilustradas por um conversor de frequência e tempo 212, um dobrador 213 para desdobrar, um janelador 214 para aplicar uma janela de síntese e uma operação de sobreposição/adicionador ilustrada pelo bloco 215 são realizados a fim de obter o sinal de domínio de tempo na faixa de sobreposição. O mesmo tem, no exemplo, 2N valores por bloco, de modo que após cada operação de sobreposição e adição, N novas amostras de domínio de tempo livre de serrilhamento são obtidas em que os valores de modificação 102, 104 não são variáveis ao longo do tempo ou da frequência. No entanto, se tais valores forem variáveis ao longo do tempo e da frequência, então, o sinal de saída do bloco 215 não é livre de serrilhamento, mas esse problema é abordado pelo primeiro e pelo segundo aspectos da presente invenção conforme discutido no contexto das Figuras 1b e 1a e conforme discutido no contexto das outras Figuras no relatório descritivo.
[039] Subsequentemente, uma ilustração adicional dos procedimentos realizada pelos blocos na Figura 5a e Figura 5b é dada.
[040] A ilustração é exemplificada a título de referência pela MDCT, mas outras transformadas de introdução de serrilhamento podem ser processadas de uma maneira semelhante e análoga. Como uma transformada sobreposta, a MDCT é um pouco diferente em comparação a outras transformadas de Fourier relacionadas em que o número de saídas é metade do número de entradas (em vez de o mesmo número). Em particular, a mesma é uma função linear F : R2N ^ RN (em que R denota o conjunto de números reais). Os números reais 2N x0, . .., x2N-1 são transformados nos números reais N X0, ..., XN-1 de acordo com a fórmula:
[041] (O coeficiente de normalização na parte da frente dessa transformada, aqui, unidade, é uma convenção arbitrária e diferente entre tratamentos. Apenas o produto das normalizações da MDCT e da IMDCT, abaixo, é restringido.)
[042] A MDCT inversa é conhecida como IMDCT. Devido ao fato de haver números diferentes de entradas e saídas, pode parecer, à primeira vista, que a MDCT não deva ser invertível. No entanto, a capacidade de inversão perfeita é alcançada adicionando-se IMDCTs sobrepostas de blocos de sobreposição de tempo adjacente, que fazem com que os erros cancelem e os dados originais sejam recuperados; essa técnica é conhecida como cancelamento de serrilhamento de domínio de tempo (TDAC).
[043] Os números reais N de transformadas de IMDCT X0, ..., XN-1 em números reais 2N y0, ..., y2N-1, de acordo com a fórmula:
[044] (Como para a DCT-IV, uma transformada ortogonal, a inversa tem a mesma forma que a transformada direta.)
[045] No caso de uma janelada de MDCT com a normalização de janela usual (consultar abaixo), o coeficiente de normalização na parte frontal da IMDCT deve ser multiplicado por 2 (isto é, se tornando 2/N).
[046] Em aplicações de compressão de sinal típicas, as propriedades de transformada são aprimoradas adicionalmente com o uso de 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 limiares n = 0 e 2N fazendo com que a função se torne suave a zero em alguns pontos. (Isto é, uma janela os dados antes da MDCT e após a IMDCT.) Em princípio, x e y podem ter funções de janela diferentes, e a função de janela também pode se altear de um bloco para o próximo (especialmente para o caso em que blocos de dados de tamanhos diferentes são combinados), mas, para simplicidade, considera-se o caso comum de funções de janela idênticas para blocos de tamanhos iguais.
[047] A transformada permanece invertível (isto é, TDAC funciona), para uma janela simétrica wn = w2N-1-n, contanto que w satisfaça a condição de Princen-Bradley:
[048] Várias funções de janela são usadas. Uma janela que produz uma forma conhecida como uma transformada sobreposta modulada é determinada por e é usada para MP3 e MPEG-2 AAC, e para Vorbis. AC-3 usa uma janela de derivada de Kaiser-Bessel (KBD), e MPEG- 4 AAC também pode usar uma janela de KBD.
[049] Observa-se que as janelas aplicadas à MDCT são diferentes das janelas usadas por alguns outros tipos de análise de sinal, visto que os mesmos devem cumprir a condição de Princen-Bradley. Uma das razões para essa diferença é que as janelas de MDCT são aplicadas duas vezes, tanto a MDCT (análise) quanto para a IMDCT (síntese).
[050] Conforme pode ser observado pela inspeção das definições, para N pares a MDCT é essencialmente equivalente a uma DCT-IV, em que a entrada é alterada por N/2 e dois blocos N de dados são transformados de uma vez.Examinando-se essa equivalência mais cuidadosamente, as propriedades importantes como TDAC podem ser facilmente derivadas.
[051] A fim de definir a relacionamento preciso à DCT-IV, deve-se observar que a DCT-IV corresponde a condições de limiar par/ímpar alternativas (isto é, condições de simetria): par em seu limiar esquerdo (em torno de n=-1/2), ímpar em seu limiar direito (em torno de n=N-1/2), e assim por diante (em vez de limiares periódicos, como para uma DFT). Isso se segue das identidades
[052] Desse modo, se suas entradas forem um arranjo x de comprimento N, pode-se imaginar estender esse arranjo a (x, -xR, -x, xR, ...) e, assim por diante, em que xR denota x na ordem reversa.
[053] Considera-se uma MDCT com 2N entradas e N saídas, em que se dividem as entradas em quatro blocos (a, b, c, d), cada um de tamanho N/2. Se uma pessoa alterar esses para o lado direito por N/2 (do termo +N/2 na definição de MDCT), então, (b, c, d) se estende além do fim das entradas de N DCT-IV inputs, dessa forma, uma pessoa deve “desdobrar” os mesmos, de acordo com as condições de limiar descritas acima.
[054] Desse modo, a MDCT de 2N entradas (a, b, c, d) é exatamente equivalente a uma DCT-IV das N entradas: (-cR-d, a-bR), em que R denota a reversão, conforme acima.
[055] Isso é exemplificado para a função de janela 202 na Figura 5a. Em que a é a porção 204b, b é a porção 205a, c é a porção 205b e d é a porção 206a.
[056] (Dessa forma, qualquer algoritmo para computar a DCT-IV pode ser aplicado trivialmente à MDCT.)
[057] De modo semelhante, a fórmula de IMDCT acima é precisamente 1/2 da DCT-IV (que é sua própria inversão), em que a saída é estendida (por meio das condições de limiar) a um 2N comprimento e alterada de volta para o lado esquerdo por N/2. A DCT-IV inversa simplesmente forneceria de volta as entradas (-cR-d, a-bR) do acima. Quando isso é estendido por meio das condições de limiar e alterado, obtém-se:IMDCT(MDCT(a, b, c, d)) = (a-bR, b-aR, c+dR, d+cR) / 2.
[058] Metade das saídas de IMDCT são, desse modo, redundantes, visto que b-aR = -(a-bR)R, e semelhantes para os dois últimos termos. Agrupando- se a entrada em blocos maiores A,B de tamanho N, em que A=(a, b) e B=(c, d), pode-se gravar esse resultado de uma maneira mais simples: IMDCT(MDCT(A, B)) = (A-AR, B+BR) / 2
[059] Pode-se agora entender como TDAC trabalha. Supõe-se que uma pessoa computa a MDCT do bloco 2N de tempo adjacente, 50% sobreposto (B, C). A IMDCT, então, gerará, de modo análogo ao acima: (B-BR, C+CR) / 2. Quando esse for adicionado com o resultado de IMDCT anterior na metade de sobreposição, os termos revertidos são cancelados e obtém-se simplesmente B, recuperando os dados originais.
[060] A origem do termo “cancelamento de serrilhamento de domínio de tempo” se torna agora clara. O uso de dados de entrada que se estendem além dos limiares da DCT-IV lógica faz com que os dados sejam serrilhados da mesma forma (com relação à simetria de extensão) que as frequências além da frequência de Nyquist sejam serrilhados a frequências inferiores, exceto pelo fato de que esse serrilhamento ocorre no domínio de tempo em vez do domínio de frequência: uma pessoa não pode distinguir as contribuições de a e de bR à MDCT de (a, b, c, d), ou, de modo equivalente, 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 para cancelar quando as mesmas forem adicionadas.
[061] Para N ímpar (que são raramente usados na prática), N/2 não é mais um número inteiro, dessa forma, a MDCT não é simplesmente uma permutação de alteração de uma DCT-IV. Nesse caso, a alteração adicional em metade de uma amostra significa que a MDCT/IMDCT se torna equivalente à DCT-III/II, e a análise é análoga ao acima.
[062] Observou-se acima que a MDCT de 2N entradas (a, b, c, d) é equivalente a uma DCT-IV das N entradas (-cR-d, a-bR). A DCT-IV é projetada para o caso em que a função no limiar direito é ímpar, e, portanto, os valores próximos do limiar direito são próximos de 0. Se o sinal de entrada for suave, nesse 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. Observando-se a parte intermediária do intervalo: regrava-se 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 na parte intermediária. No entanto, no primeiro termo, (-d, a), há uma descontinuidade em potencial em que a extremidade direita de -d encontra a extremidade esquerda de a. Esse é o motivo para usar uma função de janela que reduz os componentes próximos dos limiares da sequência de entrada (a, b, c, d) para 0.
[063] Acima, a propriedade de TDAC foi provada para a MDCT comum, em que mostra que adicionar IMDCTs de blocos de tempo adjacente em sua metade de sobreposição recupera os dados originais. A derivação dessa propriedade inversa para janelada de MDCT é apenas ligeiramente mais complicada.
[064] Considera-se que dois conjuntos consecutivos de sobreposição de 2N entradas (A,B) e (B,C), para blocos A,B,C de tamanho N. Retoma-se, a partir do IMDCT, e adicionados em suas metades de sobreposição, obtém-se (B+BR)/2+(B-BR)/2=B , os dados originais.
[065] Supõe-se agora que uma pessoa multiplica tanto as entradas de MDCT quanto as saídas de IMDCT por uma função de janela de 2N comprimento. Como acima, uma pessoa presume uma função de janela simétrica, que é, portanto, da forma (W,WR ) em que W é um vetor de comprimento N e R denota a reversão, conforme anteriormente. Então, a condição de Princen-Bradley pode ser escrita como W2 +WR2 = (1, 1,...), com as raízes quadradas e as adições realizadas em relação ao elemento.
[066] Portanto, em vez de realizar uma MDCT (A,B), realiza-se agora MDCTs (WA,WRB) com todas as multiplicações realizadas em relação ao elemento. Quando essa é inserida em uma IMDCT e multiplicada novamente (em relação ao elemento) pela função de janela, a última metade de N se torna:WR • ( WRB +( WRB) R)= WR • ( WRB + WBR)=WR2B+ WWRBR
[067] (Observa-se que não há mais a multiplicação por 1/2, devido à normalização de IMDCT diferir em um fator de 2 no caso janelado.)
[068] De modo semelhante, a janelada de MDCT e IMDCT de (B,C) gera, em sua primeira metade de N: W -(WB - WRBR ) = W2B - WWRBR
[069] Quando se adiciona essas duas metades juntas, se recuperam os dados originais. A reconstrução também é possível no contexto de comutação de janela, quando as duas metades de janela de sobreposição cumprem a condição de Princen-Bradley. O cancelamento de serrilhamento pode, nesse caso, ser realizado exatamente da mesma forma que descrito acima. Para transformadas com múltiplas sobreposições, seriam exigidas mais que duas ramificações com o uso de todos os valores de ganho envolvidos.
[070] Anteriormente descreveram-se as simetrias ou condições de limiar da MDCT, ou, mais especificamente, a MDCT-IV. A descrição também é válida para outros kernels de transformada referidos neste documento, a saber, a MDCT-II, a MDST-II e a MDST-IV. No entanto, observou-se que a simetria diferente ou as condições de limiar dos outros kernels de transformada foram levadas em consideração.
[071] A Figura 6 ilustra esquematicamente as propriedade e simetrias de desdobramento implícitas (isto é, as condições de limiar) das quatro transformadas sobrepostas descritas. As transformadas são derivadas de (2) por meio da primeira função-base de síntese para cada uma dentre as quatro transformadas. A IMDCT-IV 34a, a IMDCT-II 34b, a IMDST-IV 34c e a IMDST-II 34d são retratadas em um diagrama esquemático das amostras de amplitude ao longo do tempo. A Figura 6 indica claramente as simetrias pares e ímpares dos kernels de transformada no eixo geométrico de simetria 35 (isto é, pontos de dobramento), entre o kernel de transformada, conforme descrito acima.
[072] A propriedade de cancelamento de serrilhamento de domínio de tempo (TDAC) declara que tal serrilhamento é cancelado quando extensões simétricas pares e ímpares forem somadas durante processamento de OLA (sobreposição e adição). Em outras palavras, uma transformada com uma simetria de lado direito ímpar deve ser seguida por uma transformada com uma simetria de lado esquerdo par, e vice-versa, a fim de TDAC ocorrer. Desse modo, pode-se declarar que • A MDCT-IV (inversa) deve ser seguida por uma MDCT-IV (inversa) ou MDST-II (inversa). • A MDST-IV (inversa) deve ser seguida por uma MDST-IV (inversa) ou MDCT-II (inversa). • A MDCT-II (inversa) deve ser seguida por uma MDCT-IV (inversa) ou MDST-II (inversa). • A MDST-II (inversa) deve ser seguida por uma MDST-IV (inversa) ou MDCT-II (inversa).
[073] As Figuras 7a, 7b retratam esquematicamente duas modalidades de um caso de uso em que a comutação de kernel de transformada adaptativa a sinal é aplicada ao kernel de transformada a partir de um quadro para o próximo quadro enquanto permite uma reconstrução perfeita. Em outras palavras, duas sequências possíveis das sequências de transformadas mencionadas acima são exemplificadas na Figura 7. Nessa, linhas contínuas (tal como a linha 38c) indicam a janela de transformada, linhas tracejadas 38a indicam a simetria de serrilhamento de lado esquerdo da janela de transformada e linhas pontilhadas 38b indicam a simetria de serrilhamento de lado direito da janela de transformada. Adicionalmente, picos de simetria indicam simetria par e vales de simetria indicam simetria ímpar. Na Figura 7a, o quadro i 36a e o quadro i +1 36b é um kernel de transformada de MDCT-IV, em que no quadro i + 2 36c uma MDST-II é usada como uma transição para o kernel de transformada de MDCT- II usada no quadro i + 3 36d. O quadro i + 4 36e usa novamente uma MDST-II, por exemplo, resultando em uma MDST-IV ou novamente em uma MDCT-II no quadro i + 5, que não é mostrado na Figura 7a. No entanto, a Figura 7a claramente indica que linhas tracejadas 38a e linhas pontilhadas 38b compensam por kernels de transformada subsequentes. Em outras palavras, somando-se a simetria de serrilhamento de lado esquerdo de um quadro atual e a simetria de serrilhamento de lado direito de um quadro anterior resulta em um cancelamento de serrilhamento de domínio de tempo perfeito (TDAC), visto que a soma das linhas tracejadas e das pontilhadas é igual 0. As simetrias de serrilhamento de lado esquerdo e lado direito (ou condições de limiar) se referem à propriedade de dobramento descrita, por exemplo, na Figura 5a e na Figura 5b e é um resultado da MDCT que gera uma saída que compreende N amostras de uma entrada que compreende 2N amostras.
[074] A Figura 7b é semelhante à Figura 7a, apenas com o uso de uma sequência diferente de kernels de transformada para o quadro i a quadro i + 4. Para o quadro i 36a, é usada uma MDCT-IV, sendo que o quadro i + 1 36b usa uma MDST-II como uma transição para a MDST-IV usada no quadro i + 2 36c. O quadro i + 3 usa um kernel de transformada de MDCT-II como uma transição do kernel de transformada de MDST-IV usado no quadro i + 2 36d para o kernel de transformada de MDCT-IV no quadro i + 4 36e.
[075] A matriz de decisão relacionada às sequências de transformadas é ilustrada na tabela 1.
[076] As modalidades mostram adicionalmente como a comutação de kernel de transformada adaptativa proposta pode ser empregada vantajosamente em um codec de áudio semelhante a HE-AAC para minimizar ou mesmo evitar os dois problemas mencionados no início. Serão abordados a seguir sinais altamente harmônicos convertidos em código de modo subideal pela MDCT clássica. Uma transição adaptativa para a MDCT-II ou MDST-II pode ser realizada por um codificador com base, por exemplo, na frequência fundamental do sinal de entrada. Mais especificamente, quando o passo do sinal de entrada for exatamente, ou muito próximo de, um múltiplo de número inteiro da resolução de frequência da transformada (isto é, a largura de banda de um binário de transformada no domínio espectral), a MDCT-II ou MDST-II pode ser empregada para os quadros e canais afetados. Uma transição direta da MDCT- IV ao kernel de transformada de MDCT-II, no entanto, não é possível, ou pelo menos não é garantido, o cancelamento de serrilhamento de domínio de tempo (TDAC). Portanto, uma MDCT-II deve ser utilizada como uma transformada de transição entre as duas em tal caso. Por outro lado, para uma transição da MDST-II à MDCT-IV tradicional (isto é, comutação de volta para a conversão em código de MDCT tradicional), uma MDCT-II intermediária é vantajosa.
[077] Até o momento, a comutação de kernel de transformada adaptativa proposta foi descrita para um único sinal de áudio, visto que melhora a codificação de sinais de áudio altamente harmônicos. Adicionalmente, a mesma pode ser facilmente adaptada para sinais de multicanal, tal como, por exemplo, sinais estéreos. Aqui, a comutação de kernel de transformada adaptativa também é vantajosa, se, por exemplo, dois ou mais canais de um sinal de multicanal tiverem uma alteração de fase de aproximadamente ±90° entre si.
[078] Para o processamento de áudio de multicanal, pode ser adequado usar conversão em código de MDCT-IV para um canal de áudio e conversão em código de MDST-IV para um segundo canal de áudio. Especificamente, se ambos os canais de áudio compreenderem uma alteração de fase de aproximadamente ±90 graus antes da conversão em código, seu conceito é vantajoso. Visto que a MDCT-IV e a MDST-IV aplicam uma alteração de fase de 90 graus a um sinal codificado quando comparadas entre si, uma alteração de fase de ±90 graus entre dois canais de um sinal de áudio é compensada após a codificação, isto é, é convertida em uma alteração de fase de 0 ou 180 graus por meio da diferença de fase de 90 graus entre as funções base de cosseno da MDCT-IV e as funções base de seno da MDST-IV. Portanto, com o uso, por exemplo, de conversão em código de estéreo de M/S, ambos os canais do sinal de áudio podem ser codificados no sinal intermediário, em que apenas o mínimo de informações residuais precisa ser codificado no sinal lateral, no caso da conversão supracitada em alteração de fase de 0 graus, ou vice-versa (mínimo de informações no sinal intermediário) no caso da conversão em uma alteração de fase de 180 graus, dessa forma, alcançado uma compactação de canal máxima. Isso pode alcançar uma redução de largura de banda em até 50% em comparação a uma conversão em código de MDCT-IV clássica de ambos os canais de áudio enquanto ainda usa esquemas de codificação com perdas. Adicionalmente, pode-se pensar em usar a conversão em código de estéreo de MDCT em combinação com uma previsão de estéreo complexa. Ambas as abordagens calculam, codificam e transmitem um sinal residual a partir de dois canais do sinal de áudio. Além disso, a predição complexa calcula os parâmetros de predição para codificar o sinal de áudio, em que o decodificador usa os parâmetros transmitidos para decodificar o sinal de áudio. No entanto, a conversão em código de M/S que usa, por exemplo, a MDCT-IV e a MDST-IV para codificar os dois canais de áudio, como já descritos acima, apenas as informações relacionadas a um esquema de conversão em código usado (MDCT-II, MDST-II, MDCT-IV ou MDST-IV) devem ser transmitidas para permitir que o decodificador aplique o esquema de codificação relacionado. Visto que os parâmetros de previsão de estéreo complexa devem ser quantizados com o uso de uma resolução comparativamente alta, as informações relacionadas ao esquema de conversão em código usado podem ser codificadas em, por exemplo, 4 bits, visto que, teoricamente, o primeiro e o segundo canal podem, cada um, ser codificado com o uso de um dentre os quatro esquemas de conversão em código diferentes, que resulta em 16 estados possíveis diferentes.
[079] Portanto, a Figura 8 mostra um diagrama de blocos esquemático de um decodificador 2 para decodificar um sinal de áudio de multicanal. Em comparação ao decodificador da Figura 1, o decodificador compreende adicionalmente um processador de multicanal 40 para receber blocos de valores espectrais 4a’’’, 4b’’’ que representam o primeiro e segundo multicanal, e para processar, de acordo com a técnica de processamento de multicanal de ligação, os blocos recebidos para obter blocos de valores espectrais processados 4a’, 4b’ para o primeiro multicanal e o segundo multicanal, e sendo que o processador de espectro e tempo adaptativo é configurado para processar os blocos processados 4a’ do primeiro multicanal com o uso de informações de controle 12a para o primeiro multicanal e os blocos processados 4b’ para o segundo multicanal com o uso de informações de controle 12b para o segundo multicanal. O processador de multicanal 40 pode aplicar, por exemplo, um processamento de estéreo esquerdo/direito, ou um processamento de estéreo intermediário/lateral, ou o processador de multicanal aplica uma predição complexa com o uso de informações de controle de predição complexa associadas aos blocos de valores espectrais que representam o primeiro e o segundo multicanais. Portanto, o processador de multicanal pode compreender uma predefinição fixa ou obter informações, por exemplo, das informações de controle, que indicam qual processamento foi usado para codificar o sinal de áudio. Além de um bit ou palavra separada nas informações de controle, o processador de multicanal pode obter essas informações das informações de controle presentes, por exemplo, por uma ausência ou uma presença de parâmetros de processamento de multicanal. Em outras palavras, o processador de multicanal 40 pode aplicar a operação inversa a um processamento de multicanal realizada no codificador para recuperar os canais separados do sinal de multicanal. Técnicas de processamento de multicanal adicionais são descritas com relação às Figuras 10 a 14. Adicionalmente, os sinais de referência foram adaptados ao processamento de multicanal, em que os sinais de referência estendidos pela letra “a” indicam um primeiro multicanal e os sinais de referência estendidos pela letra “b” indicam um segundo multicanal. Além disso, o multicanal não é limitado a dois canais, ou processamento estéreo, mas pode ser aplicado a três ou mais canais estendendo-se o processamento retratado de dois canais.
[080] De acordo com modalidades, o processador de multicanal do decodificador pode processar, de acordo com a técnica de processamento de multicanal de ligação, os blocos recebidos. Adicionalmente, os blocos recebidos podem compreender um sinal residual codificado de uma representação do primeiro multicanal e uma representação do segundo multicanal. Além disso, o processador de multicanal pode ser configurado para calcular o primeiro sinal de multicanal e o segundo sinal de multicanal com o uso do sinal residual e de um sinal codificado adicional. Em outras palavras, o sinal residual pode ser o sinal lateral de um sinal de áudio codificado de M/S ou um resíduo entre um canal do sinal de áudio e uma predição do canal com base em um canal adicional do sinal de áudio quando usar, por exemplo, previsão de estéreo complexa. O processador de multicanal pode, portanto, converter o sinal de áudio previsto de M/S ou complexo em um sinal de áudio de L/R para o processamento adicional, tal como, por exemplo, aplicar os kernels de transformada inversa. Portanto, o processador de multicanal pode usar o sinal residual e o sinal de áudio codificado adicional que pode ser o sinal intermediário de um sinal de áudio codificado de M/S ou (por exemplo, MDCT codificada) um canal do sinal de áudio ao usar a predição complexa.
[081] A Figura 9 mostra o codificador 22 da Figura 3 estendido ao processamento de multicanal. Apesar de as Figuras anteciparem que as informações de controle 12 são incluídas no sinal de áudio codificado 4, as informações de controle 12 podem, ademais, ser transmitidas com o uso de, por exemplo, canal de informações de controle separado. O controlador 28 do codificador de multicanal pode analisar os blocos de sobreposição de valores de tempo 30a, 30b do sinal de áudio, que têm um primeiro canal e um segundo canal, para determinar o kernel de transformada para um quadro do primeiro canal e um quadro correspondente do segundo canal. Portanto, o controlador pode tentar cada combinação de kernels de transformada para derivar tal opção de kernels de transformada que minimiza o sinal residual (ou sinal lateral em termos de conversão em código de M/S) de, por exemplo, conversão em código ou predição complexa de M/S. Um sinal residual minimizado é, por exemplo, tal sinal residual com a energia mais baixa em comparação aos sinais residuais restantes. Isso é, por exemplo, vantajoso, se uma quantização adicional do sinal residual usa menos bits para quantizar um sinal pequeno em comparação à quantização de um sinal maior. Além disso, o controlador 28 pode determinar primeiras informações de controle 12a para um primeiro canal e segundas informações de controle 12b para um segundo canal que são inseridas no conversor de tempo e espectro adaptativo 26 que aplica um dentre os kernels de transformada descritos anteriormente. Portanto, o conversor de tempo e espectro 26 pode ser configurado para processar um primeiro canal e um segundo canal de um sinal de multicanal. Além disso, o codificador de multicanal pode compreender adicionalmente um processador de multicanal 42 para processar os blocos sucessivos de valores espectrais 4a’, 4b’ do primeiro canal e do segundo canal com o uso de uma técnica de processamento de multicanal de ligação, tal como, por exemplo, conversão em código de estéreo de lado esquerdo/direito, conversão em código de estéreo intermediário/lateral, ou predição complexa, para obter blocos de valores espectrais processados 40a’’’’, 40b’’’’. O codificador pode compreender adicionalmente um processador de codificação 46 para processar os blocos de valores espectrais processados para obter canais codificados 40a’’’, 40b’’’. O processador de codificação pode encode o sinal de áudio com o uso de, por exemplo, uma compressão de áudio com perda ou um esquema de compressão de áudio sem perda, tal como, por exemplo, quantização escalar de linhas espectrais, conversão em código por entropia, conversão em código de Huffman, conversão em código de canal, códigos de bloco ou códigos de convolucionais, ou aplicar correção de erro direta ou solicitação de repetição automática. Adicionalmente, a compressão de áudio com perda pode se referir ao uso de uma quantização com base em um modelo psicoacústico.
[082] De acordo com modalidades adicionais, os primeiros blocos de valores espectrais processados representam uma primeira representação codificada da técnica de processamento de multicanal de ligação e os segundos blocos de valores espectrais processados representam uma segunda representação codificada da técnica de processamento de multicanal de ligação. Portanto, o processador de codificação 46 pode ser configurado para processar os primeiros blocos processados com o uso de quantização e codificação por entropia para formar uma primeira representação codificada e para processar os segundos blocos processados com o uso de quantização e codificação por entropia para formar uma segunda representação codificada. A primeira representação codificada e a segunda representação codificada podem ser formadas em um fluxo de bits que representa o sinal de áudio codificado. Em outras palavras, os primeiros blocos processados podem compreender o sinal intermediário de um sinal de áudio codificado de M/S ou (por exemplo, MDCT) canal codificado de um sinal de áudio codificado com o uso de previsão de estéreo complexa. Além disso, os segundos blocos processados podem compreender parâmetros ou um sinal residual para predição complexa ou o sinal lateral de um sinal de áudio codificado de M/S.
[083] A Figura 10 ilustra um codificador de áudio para codificar um sinal de áudio de multicanal 200 que tem dois ou mais sinais de canal, em que um primeiro sinal de canal é ilustrado em 201 e um segundo canal pé ilustrado em 202. Ambos os sinais são inseridos em um calculador de codificador 203 para calcular uma primeiro sinal de combinação 204 e uma sinal residual de predição 205 com o uso do primeiro sinal de canal 201 e do segundo sinal de canal 202 e das informações de predição 206, de modo que o sinal residual de predição 205, quando combinado com um sinal de predição derivado do primeiro sinal de combinação 204 e das informações de predição 206 resulta em um segundo sinal de combinação, em que o primeiro sinal de combinação e o segundo sinal de combinação são deriváveis do primeiro sinal de canal 201 e do segundo sinal de canal 202 com o uso de uma regra de combinação.
[084] As informações de predição são geradas por um otimizador 207 para calcular as informações de predição 206 de modo que o sinal residual de predição atenda a um alvo de otimização 208. O primeiro sinal de combinação 204 e o sinal residual 205 são inseridos em um sinal codificador 209 para codificar o primeiro sinal de combinação 204 para obter um primeiro sinal de combinação codificado 210 e para codificar o sinal residual 205 para obter um sinal residual codificado 211. Ambos os sinais codificados 210, 211 são inseridos em uma interface de saída 212 para a combinação do primeiro sinal de combinação codificado 210 com o sinal residual de predição codificado 211 e as informações de predição 206 para obter um sinal de multicanal codificado 213.
[085] Dependendo da implantação, o otimizador 207 recebe o primeiro sinal de canal 201 e o segundo sinal de canal 202, ou, conforme ilustrado pelas linhas 214 e 215, o primeiro sinal de combinação 214 e o segundo sinal de combinação 215 derivados de um combinador 2031 da Figura 11a, que serão discutidos posteriormente.
[086] Um alvo de otimização é ilustrado na Figura 10, na qual o ganho de conversão em código é maximizado, isto é, a taxa de bits é reduzida o máximo possível. Nesse alvo de otimização, o sinal residual D é minimizado em relação a α. Isso significa, em outras palavras, que as informações de predição α são escolhidas de modo que ||S - αM||2 seja minimizado. Isso resultam em uma solução para α ilustrado na Figura 10. Os sinais S, M são dados em relação ao bloco e são sinais de domínio espectral, em que a notação ||...|| significa a norma 2 do argumento, e em que <...> ilustra o produto de ponto, como sempre. Quando primeiro sinal de canal 201 e o segundo sinal de canal 202 são inseridos no otimizador 207, então, o otimizador deve aplicar a regra de combinação, sendo que uma regra de combinação exemplificativa é ilustrada na Figura 11c. Quando, no entanto, o primeiro sinal de combinação 214 e o segundo sinal de combinação 215 são inseridos no otimizador 207, então, o otimizador 207 não precisa implantar a regra de combinação por si só.
[087] Outros alvos de otimização podem se referir à qualidade perceptual. Um alvo de otimização pode ser que uma qualidade perceptual máxima seja obtida. Então, o otimizador necessitaria de informações adicionais de uma modelo perceptual. Outras implantações do alvo de otimização podem se referir a obter uma taxa de bits mínima ou uma taxa bits fixa. Então, o otimizador 207 seria implantado para realizar uma operação de quantização/conversão em código por entropia a fim de determinar a taxa de bits necessária para determinados valores de α de modo que o α possa ser definido para atender as exigências, tais como uma taxa de bits mínima, ou, alternativamente, uma taxa de bits fixa. Outras implantações do alvo de otimização podem se referir a um uso mínimo de recursos de codificador ou decodificador. No caso de uma implantação de tal alvo de otimização, as informações sobre os recursos necessários para uma determinada otimização estariam disponibilizadas no otimizador 207. Adicionalmente, uma combinação desses alvos de otimização ou de outros alvos de otimização pode ser aplicada para controlar o otimizador 207 que calcula as informações de predição 206.
[088] O calculador de codificador 203 na Figura 10 pode ser implantado de diferentes formas, em que uma primeira implantação exemplificativa é ilustrada na Figura 11a, em que uma regra de combinação explícita é realizada no combinador 2031. Uma implantação exemplificativa alternativa é ilustrada na Figura 11b, em que um calculador de matriz 2039 é usado. O combinador 2031 na Figura 11a pode ser implantado para realizar a regra de combinação ilustrada na Figura 11c, que é, exemplificativamente, a regra de codificação intermediária/lateral bem conhecida, em que um fator de ponderação de 0,5 é aplicado a todas as ramificações. No entanto, outros fatores de ponderação ou nenhum fator de ponderação podem ser implantados dependendo da implantação. Adicionalmente, deve-se observar que outras regras de combinação, tais como outras regras de combinação linear ou regras de combinação não linear podem ser aplicadas, contanto que haja uma regra de combinação inversa correspondente que pode ser aplicada no decodificador combinador 1162 ilustrado na Figura 12a, que aplica uma regra de combinação que é inversa à regra de combinação aplicada pelo codificador. Devido à predição de estéreo conjunto, qualquer regra de predição invertível pode ser usada, visto que a influência sobre a forma de onda é “equilibrada” pela predição, isto é, qualquer erro é incluído no sinal residual transmitido, visto que a operação de predição realizada pelo otimizador 207 em combinação com o calculador de codificador 203 é um processo de conservação de forma de onda.
[089] O combinador 2031 emite o primeiro sinal de combinação 204 e um segundo sinal de combinação 2032. O primeiro sinal de combinação é inserido em um preditor 2033 e o segundo sinal de combinação 2032 é inserido no calculador residual 2034. O preditor 2033 calcula um sinal de predição 2035, que é combinado com o segundo sinal de combinação 2032 para finalmente obter o sinal residual 205. Particularmente, o combinador 2031 é configurado para combinar os dois sinais de canal 201 e 202 do sinal de áudio de multicanal de duas formas diferentes para obter o primeiro sinal de combinação 204 e o segundo sinal de combinação 2032, sendo que as duas formas diferentes são ilustradas em uma modalidade exemplificativa na Figura 11c. O preditor 2033 é configurado para aplicar as informações de predição ao primeiro sinal de combinação 204 ou a um sinal derivado do primeiro sinal de combinação para obter o sinal de predição 2035. O sinal derivado do sinal de combinação pode ser derivado por qualquer operação não linear ou linear, em que uma transformada de real para imaginário/ transformada de imaginário para real é vantajosa, que pode ser implantada com uso de um filtro linear, tal como um filtro de FIR que realiza adições ponderadas de determinados valores.
[090] O calculador residual 2034 na Figura 11a pode realizar uma operação de subtração de modo que o sinal de predição 2035 seja subtraído do segundo sinal de combinação. No entanto, outras operações no calculador residual são possíveis. Correspondentemente, o sinal de combinação calculador 1161 na Figura 12a pode realizar uma operação de adição em que o sinal residual decodificado 114 e o sinal de predição 1163 são adicionais em conjunto para obter o segundo sinal de combinação 1165.
[091] O calculador de decodificador 116 pode ser implantado de maneiras diferentes. Uma primeira implantação é ilustrada na Figura 12a. Essa implantação compreende um preditor 1160, um sinal de combinação calculador 1161 e um combinador 1162. O preditor recebe o primeiro sinal de combinação decodificado 112 e as informações de predição 108 e emite um sinal de predição 1163. Especificamente, o preditor 1160 é configurado para aplicar as informações de predição 108 ao primeiro sinal de combinação decodificado 112 ou um sinal derivado do primeiro sinal de combinação decodificado. A regra de derivação para derivar o sinal ao qual as informações de predição 108 são aplicadas pode ser uma transformada de real para imaginário, ou, igualmente, uma transformada de imaginário para real ou uma operação de ponderação, ou, dependendo da implantação, uma operação de alteração de fase ou uma operação de ponderação combinada/alteração de fase. O sinal de predição 1163 é inserido em conjunto com o sinal residual decodificado no sinal de combinação calculador 1161 a fim de calcular o segundo sinal de combinação decodificado 1165. Os sinais 112 e 1165 são ambos inseridos no combinador 1162, que combina o primeiro sinal de combinação decodificado e o segundo sinal de combinação para obter o sinal de áudio de multicanal decodificado que tem o primeiro sinal de canal decodificado e o segundo sinal de canal decodificado nas linhas de saída 1166 e 1167, respectivamente. Alternativamente, o calculador de decodificador é implantado como um calculador de matriz 1168 que recebe, como entrada, o primeiro sinal de combinação decodificado ou sinal M, o sinal residual decodificado ou sinal D e as informações de predição α 108. O calculador de matriz 1168 aplica uma matriz de transformada ilustrada como 1169 para os sinais M, D para obter os sinais de saída L, R, em que L é o primeiro sinal de canal decodificado e R é o segundo sinal de canal decodificado. A notação na Figura 12b se assemelha a uma notação de estéreo com um canal esquerdo L e um canal direito R. Essa notação foi aplicado a fim de fornecer um entendimento mais fácil, mas é evidente àqueles versados na técnica que os sinais L, R podem ser qualquer combinação de dois sinais de canal em um sinal de multicanal que tem mais que dois sinais de canal. A operação de matriz 1169 unifica as operações in blocos 1160, 1161 e 1162 da Figura 12a em um tipo de cálculo de matriz de única "vez", e as entradas no circuito da Figura 12a e as saídas do circuito da Figura 12a são idênticas ás entradas no calculador de matriz 1168 e as saídas do calculador de matriz 1168, respectivamente.
[092] A Figura 12c ilustra um exemplo de uma regra de combinação inversa aplicada pelo combinador 1162 na Figura 12a. Particularmente, a regra de combinação é semelhante ao lado de decodificador regra de combinação em conversão em código intermediária/lateral bem conhecida, em que L = M + S, e R = M - S. Deve-se entender que o sinal S usado pela regra de combinação inversa na Figura 12c é o sinal calculado pelo sinal de combinação calculador, isto é, a combinação do sinal de predição na linha 1163 e o sinal residual decodificado na linha 114. Deve-se entender que neste relatório específico, os sinais nas linhas são, algumas vezes, nomeados pelas referências numéricas para as linhas ou são, algumas vezes, indicados pelas referências numéricas dos mesmos, que foram atribuídas às linhas. Portanto, a notação é tal que uma linha que tem um determinado sinal indique o próprio sinal. Uma linha pode ser uma linha física em uma implantação com fio. Em uma implantação computadorizada, no entanto, uma linha física não existe, mas o sinal representado pela linha é transmitido a partir de um módulo de cálculo para o outro módulo de cálculo.
[093] A Figura 13a ilustra uma implantação de um codificador de áudio. Em comparação ao codificador de áudio ilustrado na Figura 11a, o primeiro sinal de canal 201 é uma representação espectral de um primeiro sinal de canal de domínio de tempo 55a. Correspondentemente, o segundo sinal de canal 202 é uma representação espectral de um sinal de canal de domínio de tempo 55b. A conversão do domínio de tempo na representação espectral é realizada por um conversor de tempo/frequência 50 para o primeiro sinal de canal e um conversor de tempo/frequência 51 para o segundo sinal de canal. Vantajosamente, porém, de modo não necessário, os conversores espectrais 50, 51 são implantados como conversores de valor real. O algoritmo de conversão pode ser a transformada de cosseno distinta, uma transformada de FFT, em que apenas a parte real é usada, uma MDCT ou qualquer outra transformada que fornece valores espectrais de valor real. Alternativamente, ambas as transformadas podem ser implantadas como uma transformada imaginária, tal como uma DST, uma MDST ou uma FFT em que apenas a parte imaginária é usada e a parte real é descartada. Qualquer outra transformada que fornece apenas valores imaginários também pode ser usada. Um propósito de usar uma transformada de valor real pura ou uma transformada imaginária pura tem complexidade computacional, visto que, para cada valor espectral, apenas um único valor, tal como magnitude ou a parte real deve ser processado, ou, alternativamente, a fase ou a parte imaginária. Em contraste a uma transformada completamente complexa, tal como uma FFT, dois valores, isto é, a parte real e a parte imaginária para cada linha espectral seriam processadas, que é um aumento de complexidade computacional em um fator de pelo menos 2. Outra razão para usar uma transformada de valor real aqui é que tal sequência de transformada é, frequentemente, amostrada de modo crítico mesmo na presença de sobreposição entre transformadas, e dessa forma, fornece um domínio adequado (e comumente usado) para quantização e conversão em código por entropia de sinal (o paradigma “conversão em código de áudio perceptual” padrão implantado em “MP3”, AAC ou sistemas de conversão em código de áudio semelhantes).
[094] A Figura 13a ilustra adicionalmente o calculador residual 2034 como um adicionador que recebe o sinal lateral em sua entrada “positiva” e que recebe a saída de sinal de predição pelo preditor 2033 em sua entrada “negativa”. Adicionalmente, a Figura 13a ilustra a situação em que as informações de controle de preditor são encaminhadas a partir do otimizador para o multiplexador 212 que emite um fluxo de bits multiplexado que representa o sinal de áudio de multicanal codificado. Particularmente, a operação de predição é realizada de modo que o sinal lateral seja predito a partir do sinal intermediário, conforme ilustrado pelas Equações à direita da Figura 13a.
[095] As informações de controle de preditor 206 são um fator conforme ilustrado à direita na Figura 11b. Em uma modalidade na qual as informações de predição de controle compreendem apenas uma porção real, tal como uma parte real de um α de valor complexo ou uma magnitude do α de valor complexo, em que essa porção é correspondente a um fator diferente de zero, um ganho de conversão em código significativo pode ser obtido quando o sinal intermediário e o sinal lateral forem semelhantes entre si devido as suas estruturas de forma de onda, mas têm amplitudes diferentes.
[096] Quando, no entanto, as informações de predição de controle compreenderem apenas uma segunda porção que pode ser a parte imaginária de um fator de valor complexo ou das informações de fase do fator de valor complexo, em que a parte imaginária ou as informações de fase são diferentes de zero, a presente invenção obtém um ganho de conversão em código significativo para sinais que têm fase alterada entre si por um valor diferente de 0° ou 180°, e que têm, além da alteração de fase, características de forma de onda semelhantes e relações de amplitude semelhantes.
[097] Informações de predição de controle tem valores complexos. Então, um ganho de conversão em código significativo pode ser obtido para sinais que são diferentes em amplitude e têm fase alterada. Em uma situação em que as transformadas de tempo/frequência fornecem espectros complexos, a operação 2034 seria uma operação complexa na qual a parte real das informações de controle de preditor é aplicada à parte real do espectro complexo M e a parte imaginária das informações de predição complexa é aplicada à parte imaginária do espectro complexo. Então, no adicionador 2034, o resultado dessa operação de predição é um espectro real predito e um espectro imaginário predito, e o espectro real predito seria subtraído do espectro real do sinal lateral S (em relação a banda), e o espectro imaginário predito seria subtraído da parte imaginária do espectro de S para obter um espectro residual complexo D.
[098] Os sinais de domínio de tempo L e R são sinais de valor real, mas os sinais de domínio de frequência podem ser de valores reais ou complexos. Quando os sinais de domínio de frequência são de valores reais, então, a transformada é uma transformada de valor real. Quando os sinais de domínio de frequência são complexos, então, a transformada é uma transformada de valor complexo. Isso significa que a entrada às transformadas de tempo para frequência e a saída das transformadas de frequência para tempo são de valores reais, enquanto os sinais de domínio de frequência podem, por exemplo, ser de sinais de domínio de QMF de valor complexo.
[099] A Figura 13b ilustra um decodificador de áudio correspondente ao codificador de áudio ilustrado na Figura 13a.
[100] A saída de fluxo de bits pelo multiplexador de fluxo de bits 212 na Figura 13a é inserida em um demultiplexador de fluxo de bits 102 na Figura 13b. O demultiplexador de fluxo de bits 102 demultiplexa o fluxo de bits no sinal de mixagem de redução M e o sinal residual D. O sinal de mixagem de redução M é inserido em um desquantizador 110a. O sinal residual D é inserido em um desquantizador 110b. Adicionalmente, o demultiplexador de fluxo de bits 102 demultiplexa informações de controle de preditor 108 do fluxo de bits e insere as mesmas no preditor 1160. O preditor 1160 emite um sinal lateral predito α M e o combinador 1161 combina a saída de sinal residual pelo desquantizador 110b com o sinal lateral predito a fim de finalmente obter o sinal lateral reconstruído S. O sinal lateral é, então, inserido no combinador 1162 que realiza, por exemplo, um processamento de soma/diferença, conforme ilustrado na Figura 12c em relação à codificação intermediária/lateral. Particularmente, o bloco 1162 realiza uma decodificação intermediária/lateral (inversa) para obter uma representação de domínio de frequência do canal esquerdo e uma representação de domínio de frequência do canal direito. A representação de domínio de frequência é, então, convertida em uma representação de domínio de tempo pelos conversores de frequência/tempo correspondentes 52 e 53.
[101] Dependendo da implantação do sistema, os conversores de frequência/tempo 52, 53 são conversores de frequência/tempo de valor real quando a representação de domínio de frequência for uma representação em valor real, ou conversores de frequência/tempo de valor complexo quando a representação de domínio de frequência for uma representação em valor complexo.
[102] Para aumentar a eficácia, no entanto, realizar uma transformada de valor real é vantajoso, conforme ilustrado em outra implantação na Figura 14a para o codificador e na Figura 14b para o decodificador. As transformadas de valor real 50 e 51 são implantadas por uma MDCT, isto é, uma MDCT-IV, ou alternativamente, e de acordo com a presente invenção, uma MDCT-II ou MDST- II ou uma MDST-IV. Adicionalmente, as informações de predição são calculadas como um valor complexo que tem uma parte real e uma parte imaginária. Visto que ambos os espectros M, S são espectros de valor real, e visto que, portanto, nenhuma parte imaginária do espectro existe, um conversor de real para imaginário 2070 é fornecido em que calcula um espectro imaginário estimado 600 do espectro de valor real de sinal M. Essa transformada de real para imaginário 2070 é uma parte do otimizador 207, e o espectro imaginário 600 estimado pelo bloco 2070 é inserido no estágio de otimizador α 2071 em conjunto com o espectro real M a fim de calcular as informações de predição 206, que agora têm um fator de valor real indicado em 2073 e um fator imaginário indicado em 2074. Agora, de acordo com essa modalidade, o espectro de valor real do primeiro sinal de combinação M é multiplicado pela parte real αR 2073 para obter o sinal de predição que é, então, subtraído do espectro lateral de valor real. Adicionalmente, o espectro imaginário 600 é multiplicado pela parte imaginária αI ilustrada em 2074 para obter o sinal de predição adicional, sendo que esse sinal de predição é, então, subtraído do espectro lateral de valor real, conforme indicado em 2034b. Então, o sinal residual de predição D é quantizado em um quantizador 209b, enquanto o espectro de valor real de M é quantizado/codificado no bloco 209a. Adicionalmente, é vantajoso quantizar e codificar as informações de predição α no quantizador/codificador por entropia 2072 para obter o valor α complexo codificado que é encaminhado para o multiplexador de fluxo de bits 212 da Figura 13a, por exemplo, e que é finalmente inserido em um fluxo de bits como as informações de predição.
[103] Com relação à posição do módulo de quantização/conversão em código (Q/C) 2072 para α, deve-se observar que os multiplicadores 2073 e 2074 usam exatamente o mesmo α (quantizado) que também será usado no decodificador. Dessa forma, pode-se mover 2072 diretamente para a saída de 2071, ou pode-se considerar que a quantização de α já é levada em consideração no processo de otimização em 2071.
[104] Embora uma pessoa possa calcular um espectro complexo no lado de codificador, visto que todas as informações estão disponíveis, é vantajoso realizar a transformada de real para complexo no bloco 2070 no codificador de modo que condições semelhantes com relação a um decodificador ilustrado na Figura 14b sejam produzidas. O decodificador recebe um espectro codificado de valor real do primeiro sinal de combinação e uma representação em valor real espectral do sinal residual codificado. Adicionalmente, informações de predição complexa codificadas são obtidas em 108, e uma decodificação por entropia e uma desquantização são realizadas no bloco 65 para obter a parte real αR ilustrada em 1160b e a parte imaginária αI ilustrada em 1160c. Os sinais médios emitidos por elementos de ponderação 1160b e 1160c são adicionados ao sinal residual de predição decodificado e desquantizado. Particularmente, os valores espectrais inseridos em ponderador 1160c, em que a parte imaginária do fator de predição complexa é usada como o fator de ponderação, são derivados do espectro de valor real M pelo conversor de real para imaginário 1160a, que é implantado da mesma foram que o bloco 2070 da Figura 14a, com relação ao lado de codificador. No lado de decodificador, uma representação em valor complexo do sinal intermediário ou do sinal lateral não está disponível, que é diferente do lado de codificador. O motivo é que apenas espectros de valor real codificados foram transmitidos do codificador ao decodificador devido a taxas de bits e motivos de complexidade.
[105] A transformada de real para imaginário 1160a ou o bloco correspondente 2070 da Figura 14a pode ser implantado conforme o publicado no documento WO2004/013839 A1 ou WO2008/014853 A1 ou na Patente noU.S.6.980.933. Alternativamente, qualquer outra implantação conhecida na técnica pode ser aplicada.
[106] As modalidades mostram adicionalmente como a comutação de kernel de transformada adaptativa proposto pode ser empregada vantajosamente em um codec de áudio semelhante a HE-AAC para minimizar ou até mesmo evitar os dois problemas mencionados na seção “Declaração de Problema”. A seguir, serão abordados sinais estéreos com aproximadamente 90 graus de alteração de fase entre canais. Dessa forma, uma comutação para uma conversão em código com base em MDST-IV pode empregada em um dentre os dois canais, enquanto a conversão em código de MDCT-IV anterior pode ser usada no outro canal. Alternativamente, a conversão em código de MDCT-II pode ser usada em um canal e a conversão em código de MDST-II no outro canal. Dado que as funções de cosseno e seno são variantes de fase alterada de 90 graus umas das outras (cos(x) = sin(x + π/2)), uma alteração de fase correspondente entre os espectros de canal de entrada pode, dessa forma, ser convertidos em uma alteração de fase de 0 grau ou 180 graus, que pode ser convertida em código de modo muito eficaz por meio de conversão em código de estéreo em conjunto com base em M/S tradicional. Como no caso anterior para sinais altamente harmônicos convertidos em código de modo subideal pela MDCT clássica, as transformadas de transição intermediária podem ser vantajosas no canal afetado.
[107] Em ambos os casos, para sinais altamente harmônicos e sinais estéreos com aproximadamente 90° de alteração de fase entre canais, o codificador seleciona um dentre os 4 kernels para cada transformada (consultar também a Figura 7). Um respectivo decodificador que aplica a comutação de kernel de transformada inventiva pode usar os mesmos kernels de modo que o mesmo possa reconstruir adequadamente o sinal. A fim de tal um decodificador saber qual kernel de transformada usar em uma ou mais transformadas inversas em um determinado quadro, as informações de lado descrevem a escolha de kernel de transformada ou, alternativamente, simetria de lado esquerdo e direito, devem ser transmitidas pelo codificador correspondente pelo menos uma vez a cada quadro. A próxima seção descreve uma integração idealizada em (isto é, emendada em) Codec de Áudio MPEG-H 3D.
[108] As modalidades adicionais se referem a conversão em código de áudio e, em particular, a conversão em código de áudio perceptual de baixa taxa por meio de transformadas sobrepostas, tais como a transformada de cosseno distinta modificada (MDCT). As modalidades se refere a dois problemas específicos relacionados à conversão em código de transformada convencional generalizando-se o princípio de conversão em código de MDCT para incluir outras três transformadas semelhantes. As modalidades mostram adicionalmente uma comutação adaptável um sinal e contexto entre esses quatro kernels de transformada em cada canal ou quadro convertido em código, ou, separadamente, para cada transformada em cada canal ou quadro convertido em código. Para sinalizar a escolha de kernel para um decodificador correspondente, as respectivas informações de lado podem ser transmitidas no fluxo de bits convertido em código.
[109] A Figura 15 mostra um diagrama de blocos esquemático de um método 1500 para decodificar um sinal de áudio codificado. O método 1500 compreende uma etapa 1505 de converter blocos sucessivos de valores espectrais em blocos de sobreposição sucessivos de valores de tempo, uma etapa 1510 para sobrepor e adicionar blocos sucessivos de valores de tempo para obter valores de áudio decodificados, e uma etapa 1515 de receber informações de controle e comutação, em resposta às informações de controle e à conversão, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
[110] A Figura 16 mostra um diagrama de blocos esquemático de um método 1600 para codificar um sinal de áudio. O método 1600 compreende uma etapa 1605 para converter blocos de sobreposição de valores de tempo em blocos sucessivos de valores espectrais, uma etapa 1610 para controlar o conversão de tempo e espectro para comutar entre kernels de transformada de um primeiro grupo de kernels de transformada e kernels de transformada de um segundo grupo de kernels de transformada, e uma etapa 1615 para receber informações de controle e comutação, em resposta às informações de controle e à conversão, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
[111] Deve-se entender que neste relatório específico, os sinais nas linhas são, algumas vezes, nomeados pelas referências numéricas para as linhas ou são, algumas vezes, indicados pelas referências numéricas dos mesmos, que foram atribuídas às linhas. Portanto, a notação é tal que uma linha que tem um determinado sinal indique o próprio sinal. Uma linha pode ser uma linha física em uma implantação com fio. Em uma implantação computadorizada, no entanto, uma linha física não existe, mas o sinal representado pela linha é transmitido a partir de um módulo de cálculo para o outro módulo de cálculo.
[112] Embora a presente invenção tenha sido descrita no contexto de diagramas de blocos em que os blocos representam componentes de hardware reais ou lógicos, a presente invenção também pode ser implantada por um método implantado por computador. No último caso, os blocos representam etapas do método correspondentes, sendo que as etapas significam as funcionalidades realizadas pelos blocos de hardware lógicos ou físicos correspondentes.
[113] Embora alguns aspectos tenham sido descritos no contexto de um aparelho, é evidente que esses aspectos também representam uma descrição do método correspondente, em que um bloco ou dispositivo corresponde a uma etapa do método ou um recurso de uma etapa do método. De modo análogo, os aspectos descritos no contexto de uma etapa do método também representam uma descrição de um bloco ou item ou recurso correspondente de um aparelho correspondente. Algumas ou todas dentre as etapas do método podem ser executadas por (ou com o uso de) um aparelho de hardware, como, por exemplo, um microprocessador, um computador programável ou um circuito eletrônico. Em algumas modalidades, uma ou mais dentre as etapas mais importantes do método podem ser executadas por tal aparelho.
[114] O sinal transmitido ou codificado inventivo pode ser armazenado em uma mídia de armazenamento digital ou pode estar em uma mídia de transmissão, tal como uma mídia de transmissão sem fio ou uma mídia de transmissão com fio, tal como a Internet.
[115] Dependendo de determinadas exigências de implantação, as modalidades da invenção podem ser implantadas em hardware ou em software. A implantação pode ser realizada com o uso de uma mídia de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma memória ROM, uma PROM e EPROM, uma EEPROM ou uma memória FLASH, que têm sinais de controle eletronicamente legíveis armazenados na mesma, os quais cooperam (ou têm a capacidade para cooperar) com um sistema de computador programável de modo que o respectivo método seja realizado. Portanto, a mídia de armazenamento digital pode ser legível por computador.
[116] Algumas modalidades, de acordo com a invenção, compreendem uma portadora de dados que tem sinais de controle eletronicamente legíveis, que têm a capacidade para cooperar com um sistema de computador programável, de modo que um dentre os métodos descritos no presente documento seja realizado.
[117] De modo geral, as modalidades da presente invenção podem ser implantadas como um produto de programa de computador com um código de programa, sendo que o código de programa é operacional para realizar um dentre os métodos quando o produto de programa de computador for executado em um computador. O código de programa pode ser armazenado, por exemplo, em uma portadora legível por máquina.
[118] Outras modalidades compreendem o programa de computador para realizar um dentre os métodos descritos no presente documento armazenados em uma portadora legível por máquina.
[119] Em outras palavras, uma modalidade do método da invenção é, portanto, um programa de computador que tem um código de programa para realizar um dentre os métodos descritos no presente documento, quando o programa de computador é executado em um computador.
[120] Uma modalidade adicional do método inventivo é, portanto, uma portadora de dados (ou uma mídia de armazenamento não transitória, tal como uma mídia de armazenamento digital, ou uma mídia legível por computador) que compreende, gravado na mesma, o programa de computador para realizar um dentre os métodos descritos no presente documento. A portadora de dados, a mídia de armazenamento digital ou a mídia gravada são tipicamente tangíveis e/ou não transitórios.
[121] Uma modalidade adicional do método da invenção é, portanto, um fluxo de dados ou uma sequência de sinais que representa o programa de computador para realizar um dentre os métodos descritos no presente documento. O fluxo de dados ou a sequência de sinais pode, por exemplo, ser configurado para ser transferido por meio de uma conexão de comunicação de dados, por exemplo, por meio da Internet.
[122] Uma modalidade adicional compreende um meio de processamento, por exemplo, um computador ou um dispositivo de lógica programável, configurado ou adaptado para realizar um dentre os métodos descritos no presente documento.
[123] Uma modalidade adicional compreende um computador que tem instalados no mesmo o programa de computador para realizar um dentre os métodos descritos no presente documento.
[124] Uma modalidade adicional de acordo com a invenção compreende um aparelho ou um sistema configurado para transferir (por exemplo, de maneira eletrônica ou óptica) um programa de computador para realizar um dentre os métodos descritos no presente documento a um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou semelhantes. O aparelho ou sistema podem, por exemplo, compreender um servidor de arquivo para transferir o programa de computador para o receptor.
[125] Em algumas modalidades, um dispositivo de lógica programável (por exemplo, uma matriz de portas programável em campo) pode ser usado para realizar algumas ou todas as funcionalidades dos métodos descritos no presente documento. Em algumas modalidades, uma matriz de portas programável em campo pode cooperar com um microprocessador a fim de realiza um dentre os métodos descritos no presente documento. De modo geral, os métodos são realizados, de preferência, por qualquer aparelho de hardware.
[126] As modalidades descritas acima são apenas ilustrativas para os princípios da presente invenção. Deve-se entender que modificações e variações dos arranjos e os detalhes descritos no presente documento serão evidentes às outras pessoas versadas na técnica. Deseja-se, portanto, ser limitada apenas pelo escopo das reivindicações de patente iminentes e não pelos detalhes específicos apresentados a título de descrição e explicação das modalidades no presente documento. REFERÊNCIAS [1] H. S. Malvar, Signal Processing with Lapped Transforms, Norwood: Artech House, 1992. [2] J. P. Princen and A. B. Bradley, “Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation, “IEEE Trans. Acoustics, Speech, and Signal Proc.”, 1986. [3] J. P. Princen, A. W. Johnson, and A. B. Bradley, “Subband/transform coding using filter bank design based on time domain aliasing cancellation,” in IEEE ICASSP, volume 12, 1987. [4] H. S. Malvar, “Lapped Transforms for Efficient Transform/Subband Coding,” IEEE Trans. Acoustics, Speech, and Signal Proc., 1990. [5] http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform

Claims (30)

1. Decodificador (2) para decodificar um sinal de áudio codificado (4), sendo que decodificador é caracterizado por compreender: um conversor de espectro e tempo adaptativo (6) para converter blocos sucessivos de valores espectrais (4’, 4’’) em blocos sucessivos de valores de tempo (10); e um processador de adição e sobreposição (8) para sobrepor e adicionar blocos sucessivos de valores de tempo (10) para adquirir valores de áudio decodificados (14), em que o conversor de espectro e tempo adaptativo (6) é configurado para receber informações de controle (12) e comutar, em resposta às informações de controle, entre kernels de transformada de um primeiro grupo de kernels de transformada que tem um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
2. Decodificador (2), de acordo com a reivindicação 1, caracterizado por o primeiro grupo de kernels de transformada ter um ou mais kernels de transformada que têm uma simetria ímpar em um lado esquerdo e uma simetria par no lado direito do kernel ou vice-versa.
3. Decodificador (2), de acordo com a reivindicação 1, caracterizado por o primeiro grupo de kernels de transformada compreender um kernel de transformada de MDCT-IV inversa ou um kernel de transformada de MDST- IV inversa.
4. Decodificador (2), de acordo com a reivindicação 1, caracterizado por o kernel de transformada do primeiro grupo e do segundo grupo ter como base a seguinte equação: em que o pelo menos um kernel de transformada do primeiro grupo é com base nos parâmetros: cs( ) = cos( ) e k0 = 0,5 ou cs( ) = sin( ) e k0 = 0,5, ou em que o pelo menos um kernel de transformada do segundo grupo é com base nos parâmetros: cs( ) = cos( ) e k0 = 0; ou cs( ) = sin( ) e k0 = 1, em que xi,n é uma saída de domínio de tempo, C é um parâmetro constante, N é um comprimento de janela de tempo, spec são valores espectrais que têm M valores para um bloco, sendo que M é igual a N/2, i é um índice de bloco de tempo, k é um índice espectral que indica valores espectrais, n é um índice de tempo que indica um valor de tempo em um bloco i, e no é um parâmetro constante que é um número inteiro ou zero.
5. Decodificador (2), de acordo com a reivindicação 1, caracterizado por as informações de controle (12) compreenderem um bit atual que indica uma simetria atual para um quadro atual, e em que o conversor de espectro e tempo adaptativo (6) é configurado para não comutar do primeiro grupo para o segundo grupo quando o bit atual indicar a mesma simetria que foi usada em um quadro anterior, e em que o conversor de espectro e tempo adaptativo é configurado para comutar do primeiro grupo para o segundo grupo quando o bit atual indicar uma simetria diferente da que foi usada no quadro anterior.
6. Decodificador (2), de acordo com a reivindicação 1, caracterizado por o conversor de espectro e tempo adaptativo (6) ser configurado para comutar o segundo grupo no primeiro grupo, quando um bit atual que indica uma simetria atual para um quadro atual indicar a mesma simetria que foi usada no quadro anterior, e em que o conversor de espectro e tempo adaptativo (6) é configurado para não comutar do segundo grupo no primeiro grupo, quando o bit atual indicar uma simetria atual para o quadro atual que tem uma simetria diferente da que foi usada no quadro anterior.
7. Decodificador (2), de acordo com a reivindicação 1,caracterizado por o conversor de espectro e tempo adaptativo (6) ser configurado para ler a partir do sinal de áudio codificado (4) as informações de controle (12) para um quadro anterior e informações de controle (12) para um quadro atual após o quadro anterior do sinal de áudio codificado em uma seção de dados de controle para o quadro atual, ou em que o conversor de espectro e tempo adaptativo (6) é configurado para ler as informações de controle (12) da seção de dados de controle para o quadro atual e recuperar as informações de controle (12) para o quadro anterior de uma seção de dados de controle do quadro anterior ou de uma configuração de decodificador aplicada ao quadro anterior.
8. Decodificador (2), de acordo com a reivindicação 1, caracterizado por o conversor de espectro e tempo adaptativo (6) ser configurado para aplicar o kernel de transformada com base na seguinte tabela:em que symmi são as informações de controle para o quadro atual no índice i, e em que symm,-i são as informações de controle para o quadro anterior no índice i-1.
9. Decodificador (2), de acordo com a reivindicação 1, caracterizado por compreender adicionalmente um processador de multicanal (40) para receber blocos de valores espectrais que representam um primeiro e um segundo multicanal e para processar, de acordo com uma técnica de processamento de multicanal de ligação, os blocos recebidos para adquirir blocos de valores espectrais processados para o primeiro multicanal e o segundo multicanal, e em que o processador de espectro e tempo adaptativo (6) é configurado para processar os blocos processados para o primeiro multicanal com o uso de informações de controle para o primeiro multicanal e os blocos processados para o segundo multicanal com o uso de informações de controle para o segundo multicanal.
10. Decodificador (2), de acordo com a reivindicação 9, caracterizado por o processador de multicanal (40) ser configurado para aplicar predição complexa com o uso de informações de controle de predição complexa associadas aos blocos de valores espectrais que representam o primeiro e o segundo multicanais.
11. Decodificador, de acordo com a reivindicação 9, caracterizado por o processador de multicanal ser configurado para processar, de acordo com a técnica de processamento de multicanal de ligação, os blocos recebidos, em que os blocos recebidos compreendem um sinal residual codificado de uma representação do primeiro multicanal e uma representação do segundo multicanal e em que o processador de multicanal é configurado para calcular os blocos de valores espectrais processados para o primeiro multicanal e os blocos de valores espectrais processados para o segundo multicanal com o uso do sinal residual e um sinal codificado adicional.
12. Codificador (22) para codificar um sinal de áudio (24), sendo que o codificador é caracterizado por compreender: conversor de tempo e espectro adaptativo para converter blocos de sobreposição de valores de tempo (30) em blocos sucessivos de valores espectrais (4’, 4’’); e um controlador (28) para controlar o conversor de tempo e espectro para comutar entre kernels de transformada de um primeiro grupo de kernels de transformada e kernels de transformada de um segundo grupo de kernels de transformada, em que o conversor de tempo e espectro adaptativo é configurado para receber informações de controle (12) e comutar, em resposta às informações de controle, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
13. Codificador (22), de acordo com a reivindicação 12, caracterizado por compreender adicionalmente uma interface de saída (32) para gerar um sinal de áudio codificado (4) que tem, para um quadro atual, informações de controle (12) indicando uma simetria do kernel de transformada usada para gerar o quadro atual.
14. Codificador (22), de acordo com a reivindicação 12, caracterizado por a interface de saída (32) ser configurada para incluir, em uma seção de dados de controle do quadro atual, informações de simetria para o quadro atual e para o quadro anterior, quando o quadro atual for um quadro independente, ou para incluir, na seção de dados de controle, do quadro atual, apenas informações de simetria para o quadro atual e nenhuma informação de simetria para o quadro anterior, quando o quadro atual for um quadro dependente.
15. Codificador (22), de acordo com a reivindicação 12, caracterizado por o primeiro grupo de kernels de transformada ter um ou mais kernels de transformada que têm uma simetria ímpar em um lado esquerdo e uma simetria par no lado direito ou vice- versa.
16. Codificador, de acordo com a reivindicação 12, caracterizado por o primeiro grupo de kernels de transformada compreender um kernel de transformada de MDCT-IV ou um kernel de transformada de MDST-IV.
17. Codificador (22), de acordo com a reivindicação 12, caracterizado por o controlador (28) ser configurado de modo que uma MDCT-IV deva ser seguida por uma MDCT-IV ou uma MDST-II, ou em que uma MDST-IV deva ser seguida por uma MDST-IV ou uma MDCT-II, ou em que a MDCT-II deva ser seguida por uma MDCT-IV ou uma MDST-II, ou em que a MDST-II deva ser seguida por uma MDST-IV ou uma MDCT-II.
18. Codificador (22), de acordo com a reivindicação 12, caracterizado por o controlador (28) ser configurado para analisar os blocos de sobreposição de valores de tempo (30) que tem um primeiro canal e um segundo canal para determinar o kernel de transformada para um quadro do primeiro canal e um quadro correspondente do segundo canal.
19. Codificador (22), de acordo com a reivindicação 12, caracterizado por o conversor de tempo e espectro (26) ser configurado para processar um primeiro canal e um segundo canal de um sinal de multicanal e em que o codificador (22) compreende adicionalmente um processador de multicanal (40) para processar os blocos sucessivos de valores espectrais do primeiro canal e do segundo canal com o uso de uma técnica de processamento de multicanal de ligação para adquirir blocos de valores espectrais processados, e um processador de codificação (46) para processar os blocos de valores espectrais processados para adquirir canais codificados.
20. Codificador (22), de acordo com a reivindicação 12, caracterizado por os primeiros blocos de valores espectrais processados representarem uma primeira representação codificada da técnica de processamento de multicanal de ligação e os segundos blocos de valores espectrais processados representam uma segunda representação codificada da técnica de processamento de multicanal de ligação, sendo que o processador de codificação (46) é configurado para processar os primeiros blocos processados com o uso de quantização e codificação por entropia para formar uma primeira representação codificada e em que o processador de codificação (46) é configurado para processar os segundos blocos processados com o uso de quantização e codificação por entropia para formar uma segunda representação codificada, sendo que o processador de codificação é configurado para formar um fluxo de bits do sinal de áudio codificado com o uso da primeira representação codificada e da segunda representação codificada.
21. Método (1500) para decodificar um sinal de áudio codificado, sendo que o método é caracterizado por compreender: converter blocos sucessivos de valores espectrais em blocos sucessivos de valores de tempo; e sobrepor e adicionar blocos sucessivos de valores de tempo para adquirir valores de áudio decodificados, receber informações de controle e comutar, em resposta às informações de controle e na conversão, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
22. Método (1600) para codificar um sinal de áudio, sendo que o método é caracterizador por compreender:conversão de blocos de sobreposição de valores de tempo em blocos sucessivos de valores espectrais; e controlar a conversão de tempo e espectro para comutar entre kernels de transformada de um primeiro grupo de kernels de transformada e kernels de transformada de um segundo grupo de kernels de transformada,receber informações de controle e comutar, em resposta às informações de controle e na conversão de tempo e espectro, entre kernels de transformada de um primeiro grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm simetrias diferentes nas laterais de um kernel, e um segundo grupo de kernels de transformada que compreende um ou mais kernels de transformada que têm as mesmas simetrias nas laterais de um kernel de transformada.
23. Decodificador (2) de acordo com a reivindicação 1, caracterizado por processamento de multicanal significar um processamento estéreo de ligação ou um processamento de ligação de mais de dois canais, e em que um sinal de multicanal compreende dois canais ou mais de dois canais.
24. Codificador (22) de acordo com a reivindicação 12, caracterizado por processamento de multicanal significar um processamento estéreo de ligação ou um processamento de ligação de mais de dois canais, e em que um sinal de multicanal compreende dois canais ou mais de dois canais.
25. Método (1500) de acordo com a reivindicação 21, caracterizado por processamento de multicanal significar um processamento estéreo de ligação ou um processamento de ligação de mais de dois canais, e em que um sinal de multicanal compreende dois canais ou mais de dois canais.
26. Método (1600) de acordo com a reivindicação 22, caracterizado por processamento de multicanal significar um processamento estéreo de ligação ou um processamento de ligação de mais de dois canais, e em que um sinal de multicanal compreende dois canais ou mais de dois canais.
27. Decodificador (2) de acordo com a reivindicação 1,caracterizado por o segundo grupo de kernels de transformada compreender um ou mais kernels de transformada que têm uma simetria par nos dois lados ou uma simetria ímpar nos dois lados do kernel.
28. Decodificador (2) de acordo com a reivindicação 1, caracterizado por o segundo grupo de kernels de transformada compreender um kernel de transformada de MDCT-II inversa ou um kernel de transformada de MDST-II inversa.
29. Codificador (22) de acordo com a reivindicação 12, caracterizado por o segundo grupo de kernels de transformada compreender um ou mais kernels de transformada que têm uma simetria par nos dois lados ou uma simetria ímpar nos dois lados.
30. Codificador (22) de acordo com a reivindicação 12, caracterizado por o segundo grupo de kernels de transformada compreender um kernel de transformada de MDCT-II ou um kernel de transformada de MDST-II.
BR112017019179-2A 2015-03-09 2016-03-08 Decodificador para decodificar um sinal de áudio codificado e codificador para codificar um sinal de áudio BR112017019179B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP15158236 2015-03-09
EP15158236.8 2015-03-09
EP15172542.1A EP3067889A1 (en) 2015-03-09 2015-06-17 Method and apparatus for signal-adaptive transform kernel switching in audio coding
EP15172542.1 2015-06-17
PCT/EP2016/054902 WO2016142376A1 (en) 2015-03-09 2016-03-08 Decoder for decoding an encoded audio signal and encoder for encoding an audio signal

Publications (2)

Publication Number Publication Date
BR112017019179A2 BR112017019179A2 (pt) 2018-04-24
BR112017019179B1 true BR112017019179B1 (pt) 2023-09-19

Family

ID=

Similar Documents

Publication Publication Date Title
US11854559B2 (en) Decoder for decoding an encoded audio signal and encoder for encoding an audio signal
ES2953085T3 (es) Decodificador de audio y métodos relacionados para procesar señales de audio multicanal usando una dirección de predicción variable
TWI550600B (zh) 使用一多重疊部分來產生一編碼過的信號或用於解碼一編碼過的音頻信號之設備、電腦程式及方法
TW200947419A (en) Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
CA2956010C (en) Processor and method for processing and audio signal using truncated analysis or synthesis window overlap portions
ES2922975T3 (es) Codificador, decodificador y procedimientos para la conmutación de señal adaptable de la relación de superposición en la codificación por transformada de audio
BR112017019179B1 (pt) Decodificador para decodificar um sinal de áudio codificado e codificador para codificar um sinal de áudio
PT3028275T (pt) Aparelho e método para processamento de um sinal de áudio utilizando uma combinação numa faixa de sobreposição