BR112018016898B1 - Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema - Google Patents
Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema Download PDFInfo
- Publication number
- BR112018016898B1 BR112018016898B1 BR112018016898-0A BR112018016898A BR112018016898B1 BR 112018016898 B1 BR112018016898 B1 BR 112018016898B1 BR 112018016898 A BR112018016898 A BR 112018016898A BR 112018016898 B1 BR112018016898 B1 BR 112018016898B1
- Authority
- BR
- Brazil
- Prior art keywords
- channels
- channel
- multichannel
- decoded
- previous
- Prior art date
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims description 79
- 238000006243 chemical reaction Methods 0.000 title description 53
- 230000003595 spectral effect Effects 0.000 claims abstract description 239
- 238000002156 mixing Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 130
- 230000008569 process Effects 0.000 claims description 33
- 230000005236 sound signal Effects 0.000 claims description 33
- 238000013139 quantization Methods 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000001228 spectrum Methods 0.000 description 117
- 239000000203 mixture Substances 0.000 description 33
- 230000009467 reduction Effects 0.000 description 29
- 230000011664 signaling Effects 0.000 description 22
- 238000011049 filling Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000013459 approach Methods 0.000 description 8
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000002238 attenuated effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000000136 cloud-point extraction Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 102000000429 Factor XII Human genes 0.000 description 1
- 108010080865 Factor XII Proteins 0.000 description 1
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
Trata-se de um aparelho para decodificar um sinal multicanal codificado de um quadro atual para obter três ou mais canais de saída de áudio atuais. Um processador multicanal é adaptado para selecionar dois canais decodificados dentre três ou mais canais decodificados dependendo dos primeiros parâmetros multicanais. Além disso, o processador multicanal é adaptado para gerar um primeiro grupo de dois ou mais canais processados com base nos ditos canais selecionados. Um módulo de carregamento de ruído é adaptado para identificar por pelo menos um dos canais selecionados, uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar um canal de mistura com o uso de, dependendo de informações secundárias, um subconjunto apropriado de três ou mais canais de saída de áudio anteriores que foram decodificados, e para carregar as linhas espectrais de bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com o ruído gerado com o uso de linhas espectrais do canal de mistura.
Description
[001] A presente invenção refere-se à conversão em código de sinal de áudio e, em particular, a um aparelho e método para carregamento estéreo em conversão em código multicanal.
[002] A conversão em código de áudio é o domínio de compressão que lida com a exploração de redundância e irrelevância em sinais de áudio.
[003] Em MPEG USAC (consultar, por exemplo, [3]), a conversão em código estéreo conjunta de dois canais é realizada com o uso de predição complexa, MPS 21-2 ou estéreo unificado com sinais residuais limitados por banda ou de banda completa. MPEG surround (consultar, por exemplo, [4]) combina hierarquicamente Uma A Duas (OTT) e Duas a Três (TTT) caixas para conversão em código conjunta de áudio multicanal com ou sem transmissão de sinais residuais.
[004] Em MPEG-H, os Elementos de Canal Quádruplo aplicam hierarquicamente caixas estéreo MPS 2-1-2 seguidas por predição complexa/caixas estéreo MS que constroem uma árvore de remix 4x4 fixa, (consultar, por exemplo, [1]).
[005] AC4 (consultar, por exemplo, [6]) introduz elementos de 3, 4 e 5 canais novos que permitem a remixagem de canais transmitidos por meio de uma matriz de mixagem transmitida e informações de conversão em código estéreo conjunta subsequente. Adicionalmente, as publicações anteriores sugerem o uso de transformadas ortogonais, como Transformada de Karhunen-Loève (KLT) para conversão em código de áudio multicanal intensificada (consultar, por exemplo, [7]).
[006] Por exemplo, no contexto de áudio 3D, os canais alto-falantes são distribuídos em diversas camadas de altura, resultando em pares de canal horizontal e vertical. A conversão em código conjunta de apenas dois canais conforme definido em USAC não é suficiente para considerar as relações espacial e de percepção entre canais. MPEG Surround é aplicado em uma etapa de pré/pós-processamento adicional, sinais residuais são transmitidos individualmente sem a possibilidade de conversão em código estéreo conjunta, por exemplo, para explorar as dependências entre sinais residuais verticais esquerdo e direito. Em AC-4, N elementos de canal dedicados são introduzidos, os quais permitem a codificação eficaz de conversão em código conjunta parâmetros, mas falham por definições de alto-falante genérico com mais canais conforme proposto por novas situações de reprodução de imersão (7,1+4, 22,2). O elemento de Canal Quádruplo MPEG-H também é restrito a apenas 4 canais e não pode ser dinamicamente aplicado a canais arbitrários, mas apenas a um número pré-configurado e fixo de canais.
[007] A Ferramenta de Conversão em Código Multicanal MPEG-H permite a criação de uma árvore arbitrária de caixas estéreo distintamente convertidas em código, isto é, pares de canal conjuntamente convertidos em código, consultar [2].
[008] Um problema que surge frequentemente em conversão em código de sinal de áudio é causado por quantização, por exemplo, quantização espectral. A quantização pode resultar possivelmente em orifícios espectrais. Por exemplo, todos os valores espectrais, uma banda de frequência em particular, pode ser definida em zero no lado de codificador como resultado de quantização. Por exemplo, o valor exato de tais linhas espectrais antes da quantização pode ser relativamente baixo e a quantização pode, então, levar a uma situação, em que os valores espectrais de todas as linhas espectrais, por exemplo, em uma banda de frequência particular, foram definidos em zero. No lado de decodificador, durante a decodificação, isso pode levar a orifícios espectrais indesejáveis.
[009] Os sistemas de conversão em código de áudio/fala de domínio de frequência, como o codec Opus/Celt do IETF [9], MPEG-4 (HE-)AAC [10] ou, em particular, MPEG-D xHE-AAC (USAC) [11], oferecem meios para converter os quadros de áudio em código com o uso de uma transformada longa - um bloco longo - ou oito transformadas curtas sequenciais - blocos curtos - dependendo da estaticidade temporal do sinal. Além disso, para conversão em código de baixa taxa de bits, esses esquemas fornecem ferramentas para reconstruir coeficientes de frequência de um canal com o uso de ruído pseudoaleatório ou coeficientes de frequência mais baixos do mesmo canal. Em xHE-AAC, essas ferramentas são conhecidas por carregamento de ruído e replicação de banda espectral, respectivamente.
[010] Entretanto, para inserção estereofônica muito tonal ou transiente, o carregamento de ruído e/ou a replicação de banda espectral limitam, sozinhos, uma qualidade de conversão em código alcançável em taxas de bits muito baixas, principalmente visto que muitos coeficientes espectrais de ambos os canais não precisam ser transmitidos explicitamente.
[011] O Carregamento Estéreo MPEG-H é uma ferramenta paramétrica que depende do uso de uma mixagem de redução de quadro anterior para melhorar o carregamento de orifícios espectrais causado por quantização no domínio de frequência. Semelhante ao carregamento de ruído, o Carregamento Estéreo opera diretamente no domínio MDCT do conversor em código de núcleo MPEG-H, consultar [1], [5], [8].
[012] Entretanto, o uso de MPEG Surround e Carregamento Estéreo em MPEG- H é restrito aos elementos de par de canal fixados e, portanto, não podem explorar dependências intercanal variantes de tempo.
[013] A Ferramenta de Codificação Multicanal (MCT) em MPEG-H permite a adaptação a dependências intercanal variáveis, mas, devido ao uso de elementos de canal únicos em configurações de operação típicas, a mesma não permite Carregamento Estéreo. A técnica anterior não revela maneiras otimizadas de modo perceptivo para gerar mixagens de redução de quadro anteriores no caso de pares de canal conjuntamente convertidos em código arbitrários variantes em tempo. O uso de carregamento de ruído como um substituto para carregamento estéreo em combinação com o MCT para carregar orifícios espectrais levaria aos artefatos de ruído, especialmente para sinais tonais.
[014] O objetivo da presente invenção é fornecer conceitos de conversão em código de áudio melhorados. O objetivo da presente invenção é resolvido por um aparelho para decodificação, conforme definido na reivindicação 1, por um aparelho for codificação, conforme definido na reivindicação 15, por um método para decodificação, conforme definido na reivindicação 18, por um método para codificação, conforme definido na reivindicação 19, por um programa de computador, conforme definido na reivindicação 20 e por um sinal multicanal codificado, conforme definido na reivindicação 21.
[015] Um aparelho para decodificar um sinal multicanal codificado de um quadro atual para obter três ou mais canais de saída de áudio atuais é fornecido. Um processador multicanal é adaptado para selecionar dois canais decodificados dentre três ou mais canais decodificados dependendo dos primeiros parâmetros multicanais. Além disso, o processador multicanal é adaptado para gerar um primeiro grupo de dois ou mais canais processados com base nos ditos canais selecionados. Um módulo de carregamento de ruído é adaptado para identificar por pelo menos um dos canais selecionados, uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar um canal de mistura com o uso de, dependendo de informações secundárias, um subconjunto apropriado de três ou mais canais de saída de áudio anteriores que foram decodificados, e para carregar as linhas espectrais de bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com o ruído gerado com o uso de linhas espectrais do canal de mistura.
[016] De acordo com modalidades, um aparelho para decodificar um sinal multicanal codificado anterior de um quadro anterior para obter três ou mais canais de saída de áudio anteriores, e para decodificar um sinal multicanal codificado atual de um quadro atual para obter três ou mais canais de saída de áudio atuais é fornecido.
[017] O aparelho compreende uma interface, um decodificador de canal, um processador multicanal para gerar os três ou mais canais de saída de áudio atuais, e um módulo de carregamento de ruído.
[018] A interface é adaptada para receber o sinal multicanal codificado atual, e para receber informações secundárias que compreendem primeiros parâmetros multicanais.
[019] O decodificador de canal é adaptado para decodificar o sinal multicanal codificado atual do quadro atual para obter um conjunto de três ou mais canais decodificados do quadro atual.
[020] O processador multicanal é adaptado para selecionar um primeiro par selecionado de dois canais decodificados do conjunto de três ou mais canais decodificados dependendo dos primeiros parâmetros multicanais.
[021] Além disso, o processador multicanal é adaptado para gerar um primeiro grupo de dois ou mais canais processados com base no dito primeiro par selecionado de dois canais decodificados para obter um conjunto atualizado de três ou mais canais decodificados.
[022] Antes do processador multicanal gerar o primeiro par de dois ou mais canais processados com base no dito primeiro par selecionado de dois canais decodificados, o módulo de carregamento de ruído é adaptado para identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados, uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar um canal de mistura com o uso de dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e para carregar as linhas espectrais da uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com o uso de linhas espectrais do canal de mistura, em que o módulo de carregamento de ruído é adaptado para selecionar os dois ou mais canais de saída de áudio anteriores que são usados para gerar o canal de mistura dos três ou mais canais de saída de áudio anteriores dependendo das informações secundárias.
[023] Um conceito particular de modalidades que pode ser empregado pelo módulo de carregamento de ruído que especifica como gerar e carregar ruído é denominado Carregamento Estéreo.
[024] Além disso, um aparelho para codificar um sinal multicanal que tem pelo menos três canais é fornecido.
[025] O aparelho compreende um processador de iteração adaptado para calcular, em uma primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais, para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar e para processar o par selecionado com o uso de uma operação de processamento multicanal para derivar os parâmetros multicanais iniciais para o par selecionado e para derivar os primeiros canais processados.
[026] O processador de iteração é adaptado para realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados para derivar parâmetros multicanais adicionais e segundos canais processados.
[027] Além disso, o aparelho compreende um canal codificador adaptado para codificar canais resultantes de um processamento de iteração realizado pelo processador de iteração para obter canais codificados.
[028] Adicionalmente, o aparelho compreende uma interface de saída adaptada para gerar um sinal multicanal codificado que tem os canais codificados, os parâmetros multicanais iniciais e os parâmetros multicanais adicionais e que tem uma informação que indica se um aparelho para decodificação deve ou não carregar as linhas espectrais de um ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[029] Além disso, um método para decodificar um sinal multicanal codificado anterior de um quadro anterior para obter três ou mais canais de saída de áudio anteriores, e para decodificar um sinal multicanal codificado atual de um quadro atual para obter três ou mais canais de saída de áudio atuais é fornecido. O método compreende: - Receber o sinal multicanal codificado atual e receber informações secundárias que compreendem primeiros parâmetros multicanais. - Decodificar o sinal multicanal codificado atual do quadro atual para obter um conjunto de três ou mais canais decodificados do quadro atual. - Selecionar um primeiro par selecionado de dois canais decodificados do conjunto de três ou mais canais decodificados dependendo dos primeiros parâmetros multicanais. - Gerar um primeiro grupo de dois ou mais canais processados com base no dito primeiro par selecionado de dois canais decodificados para obter um conjunto atualizado de três ou mais canais decodificados.
[030] Antes do primeiro par de dois ou mais canais processados ser gerado com base no dito primeiro par selecionado de dois canais decodificados, as etapas a seguir são conduzidas: - Identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados, uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero e gerar um canal de mistura com o uso de dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e carregar as linhas espectrais da uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com o uso de linhas espectrais do canal de mistura, em que a seleção dos dois ou mais canais de saída de áudio anteriores que são usados para gerar o canal de mistura dos três ou mais canais de saída de áudio anteriores é conduzida dependendo das informações secundárias.
[031] Adicionalmente, um método para codificar um sinal multicanal que tem pelo menos três canais é fornecido. O método compreende: - Calcular, em uma primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais, para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar, e processar o par selecionado com o uso de uma operação de processamento multicanal para derivar os parâmetros multicanais iniciais para o par selecionado e para derivar os primeiros canais processados. - Realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados para derivar parâmetros multicanais adicionais e segundos canais processados. - Codificar canais resultantes de um processamento de iteração realizado pelo processador de iteração para obter canais codificados. E: - Gerar um sinal multicanal codificado que tem os canais codificados, os parâmetros multicanais iniciais e os parâmetros multicanais adicionais e que tem uma informação que indica se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[032] Além disso, programas de computador são fornecidos, em que cada dos programas de computador é configurado para implantar um dentre os métodos descritos acima quando executados em um computador ou processador de sinal, para que cada um dos métodos descritos acima seja implantado por um dentre os programas de computador.
[033] Adicionalmente, um sinal multicanal codificado é fornecido. O sinal multicanal codificado compreende canais codificados e parâmetros multicanais e informações que indicam se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com dados espectrais gerados com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[034] A seguir, as modalidades da presente invenção são descritas em mais detalhes com referência às Figuras, em que: A Figura 1a mostra um aparelho para decodificação, de acordo com uma modalidade; A Figura 1b mostra um aparelho para decodificação de acordo com outra modalidade; A Figura 2 mostra um diagrama de blocos de um decodificador de domínio de frequência paramétrico, de acordo com uma modalidade do presente pedido; A Figura 3 mostra um diagrama esquemático que ilustra a sequência de espectros que formam os espectrogramas de canais de um sinal de áudio multicanal a fim de facilitar o entendimento da descrição do decodificador da Figura 2; A Figura 4 mostra um diagrama esquemático que ilustra espectros atuais dos espectrogramas mostrados na Figura 3 em prol de suavizar o entendimento da descrição da Figura 2; As Figuras 5a e 5b mostram um diagrama de blocos de um decodificador de áudio de domínio de frequência paramétrico de acordo com uma modalidade alternativa de acordo com a qual a mixagem de redução do quadro anterior é usada como uma base para o carregamento de ruído intercanal; A Figura 6 mostra um diagrama de blocos de um codificador de áudio de domínio de frequência paramétrico, de acordo com uma modalidade; A Figura 7 mostra um diagrama de blocos esquemático de um aparelho para codificar um sinal multicanal que tem pelo menos três canais, de acordo com uma modalidade; A Figura 8 mostra um diagrama de blocos esquemático de um aparelho para codificar um sinal multicanal que tem pelo menos três canais, de acordo com uma modalidade; A Figura 9 mostra um diagrama de blocos esquemático de uma caixa estéreo, de acordo com uma modalidade; A Figura 10 mostra um diagrama de blocos esquemático de um aparelho para decodificar um sinal multicanal codificado que tem canais codificados e pelo menos dois parâmetros multicanais, de acordo com uma modalidade; A Figura 11 mostra um fluxograma de um método para codificar um sinal multicanal que tem pelo menos três canais, de acordo com uma modalidade; A Figura 12 mostra um fluxograma de um método para decodificar um sinal multicanal codificado que tem canais codificados e pelo menos dois parâmetros multicanais, de acordo com uma modalidade; A Figura 13 mostra um sistema de acordo com uma modalidade; A Figura 14 mostra na situação (a) uma geração de canais de combinação para um primeiro quadro na situação, e na situação (b) uma geração de canais de combinação para um segundo quadro que sucede o primeiro quadro de acordo com uma modalidade; e A Figura 15 mostra um esquema de indexação para os parâmetros multicanais, de acordo com modalidades.
[035] Elementos iguais ou equivalentes ou elementos com funcionalidade igual ou equivalente são denotados na descrição a seguir por numerais de referência iguais ou equivalentes.
[036] Na descrição a seguir, uma pluralidade de detalhes é apresentada para fornecer uma explicação mais completa de modalidades da presente invenção. Entretanto, será evidente para aqueles versados na técnica que as modalidades da presente invenção podem ser praticadas sem esses detalhes específicos. Em outros exemplos, estruturas e dispositivos bem conhecidos são mostrados em forma de diagrama de blocos em vez de em detalhes a fim de evitar o obscurecimento das modalidades da presente invenção. Além disso, recursos das modalidades diferentes descritas doravante podem ser combinados entre si, a mesmos que especificamente observado de outro modo.
[037] Antes de descrever o aparelho 201 para decodificação da Figura 1a, em primeiro, o carregamento de ruído para conversão em código de áudio multicanal é descrito. Em modalidades, o módulo de carregamento de ruído 220 da Figura 1a pode ser, por exemplo, configurado para conduzir uma ou mais das tecnologias abaixo que são descritas em relação ao carregamento de ruído para conversão em código de áudio multicanal.
[038] A Figura 2 mostra um decodificador de áudio de domínio de frequência, de acordo com uma modalidade do presente pedido. O decodificador é geralmente indicado com o uso da referência numérica 10 e compreende um identificador de banda de fator de escala 12, um dequantizador 14, uma carga de ruído 16 e um transformador inverso 18, assim como um extrator de linha espectral 20 e um extrator de fator de escala 22. Os elementos adicionais opcionais que podem ser compreendidos pelo decodificador 10 abrangem um preditor estéreo complexo 24, um decodificador MS (tamanho médio) 26 e uma ferramenta de filtro de TNS (Modelagem de Ruído Temporal) inversa cujas duas instanciações 28a e 28b são mostradas na Figura 2. Além disso, um provedor de mixagem de redução é mostrado e destacado em mais detalhes abaixo com o uso da referência numérica 30.
[039] O decodificador de áudio de domínio de frequência 10 da Figura 2 é um decodificador paramétrico que sustenta o carregamento de ruído de acordo com o qual certa banda de fator de escala quantizada a zero é carregada com o ruído com o uso do fator de escala daquela banda de fator de escala como um meio para controlar o nível do ruído carregado nessa banda de fator de escala. Além disso, o decodificador 10 da Figura 2 representa um decodificador de áudio multicanal configurado para reconstruir um sinal de áudio multicanal de um fluxo de dados recebidos 30. Entretanto, a Figura 2 concentra nos elementos do decodificador 10 envolvidos na reconstrução de um dos sinais de áudio multicanal convertidos em código em fluxo de dados 30 e emite esse canal (de saída) em uma saída 32. Uma referência numérica 34 indica que o decodificador 10 pode compreender elementos adicionais ou pode compreender algum controle de operação de pipeline responsável por reconstruir os outros canais do sinal de áudio multicanal em que a descrição trouxe abaixo indica como a reconstrução do decodificador 10 do canal de interesse na saída 32 interage com a decodificação dos outros canais.
[040] O sinal de áudio multicanal representado pelo fluxo de dados 30 pode compreender dois ou mais canais. A seguir, a descrição das modalidades do presente pedido se concentra no invólucro estéreo, em que o sinal de áudio multicanal compreende meramente dois canais, mas, em princípio, as modalidades trazidas a seguir podem ser prontamente transferidas para modalidades alternativas em relação a sinais de áudio multicanal e sua conversão em código que compreende mais do que dois canais.
[041] Conforme será evidente a partir da descrição da Figura 2 abaixo, o decodificador 10 da Figura 2 é um decodificador de transformada. Isto é, de acordo com a técnica de conversão em código subjacente ao decodificador 10, os canais são convertidos em código em um domínio de transformada, como com o uso de uma transformada com sobreposição dos canais. Além disso, dependendo do criador do sinal de áudio, há fases de tempo durante as quais os canais do sinal de áudio representam grandemente o mesmo conteúdo de áudio, que desviam entre si meramente por mudanças menores ou determinísticas entre os mesmos, como amplitudes e/ou fase diferentes a fim de representar uma cena de áudio em que as diferenças entre os canais possibilitam o posicionamento virtual de uma fonte de áudio da cena de áudio em relação às posições de alto-falante virtual associadas aos canais de saída do sinal de áudio multicanal. Em algumas outras fases temporais, entretanto, os canais diferentes do sinal de áudio podem ser mais ou menos não correlacionados entre si e podem até mesmo representar, por exemplo, fontes de áudio completamente diferentes.
[042] A fim de considerar a relação possivelmente variável em tempo entre os canais do sinal de áudio, o codec de áudio subjacente ao decodificador 10 da Figura 2 permite um uso variável em tempo de medidas diferentes para explorar redundâncias intercanal. Por exemplo, a conversão em código MS permite a troca entre representar os canais esquerdo e direito de um sinal de áudio estéreo em seu estado ou como um par de canais M (médios) e S (laterais) que representam a mixagem de redução dos canais esquerdo e direito e a diferença na metade dos mesmos, respectivamente. Isto é, há continuamente - em um sentido espectrotemporal - espectrogramas de dois canais transmitidos por fluxo de dados 30, mas o significado dos mesmos canais (transmitidos) pode mudar em tempo e em relação aos canais de saída, respectivamente.
[043] A predição estéreo complexa - outra ferramenta de exploração de redundância intercanal - possibilita, no domínio espectral, prever coeficientes de domínio de frequência ou linhas espectrais de um canal com o uso de linhas colocalizadas de modo espectral de outro canal. Mais detalhes em relação a isso são descritos abaixo.
[044] A fim de facilitar o entendimento da descrição subsequente da Figura 2 e seus componentes mostrados nos mesos, a Figura 3 mostra, para o caso exemplificativo de um sinal de áudio estéreo representado pelo fluxo de dados 30, uma maneira possível de como os valores de amostra para as linhas espectrais dos dois canais pode ser convertido em código em fluxo de dados 30 de modo a ser processado pelo decodificador 10 da Figura 2. Em particular, enquanto na metade superior da Figura 3 o espectrograma 40 de um primeiro canal do sinal de áudio estéreo é representado, a metade inferior da Figura 3 ilustra o espectrograma 42 do outro canal do sinal de áudio estéreo. Novamente, é vantajoso observar que o “significado” de espectrogramas 40 e 42 pode mudar ao longo do tempo para, por exemplo, uma troca variável no tempo entre um domínio convertido em código MS e um domínio convertido em código não MS. No primeiro exemplo, os espectrogramas 40 e 42 se referem a um canal M e S, respectivamente, enquanto os espectrogramas de último caso 40 e 42 se referem aos canais esquerdo e direito. A troca entre domínio convertido em código MS e domínio convertido em código MS não convertido em código pode ser sinalizada no fluxo de dados 30.
[045] A Figura 3 mostra que os espectrogramas 40 e 42 podem ser convertidos em código para o fluxo de dados 30 em uma resolução espectrotemporal variável em tempo. Por exemplo, ambos os canais (transmitidos) podem ser, de uma maneira alinhada em tempo, subdivididos em uma sequência de quadros indicada com o uso de chaves superiores 44 que podem ser igualmente longos e estarem em contiguidade um com o outro sem sobreposição. Conforme mencionado, a resolução espectral na qual os espectrogramas 40 e 42 são representados no fluxo de dados 30 pode mudar ao longo do tempo. De modo preliminar, supõe-se que as mudanças de resolução espectrotemporal em tempo igualmente para os espectrogramas 40 e 42, mas uma extensão dessa simplificação também é praticável, conforme se tornará evidente a partir da descrição a seguir. A mudança da resolução espectrotemporal é, por exemplo, sinalizada no fluxo de dados 30 em unidades dos quadros 44. Isto é, as mudanças de resolução espectrotemporal em unidades de quadros 44. A mudança na resolução espectrotemporal dos espectrogramas 40 e 42 é alcançada trocando-se o comprimento de transformada e o número de transformadas usadas para descrever os espectrogramas 40 e 42 em cada quadro 44. No exemplo da Figura 3, os quadros 44a e 44b exemplificam quadros em que uma transformada longa foi usada a fim de amostrar os canais do sinal de áudio no mesmo, assim resultando em resolução espectral mais alta com um valor de amostra de linha espectral por linha espectral para cada um dos tais quadros per canal. Na Figura 3, os valores de amostra das linhas espectrais são indicados com o uso de pequenos xis nas caixas, em que as caixas, por sua vez, são dispostas em fileiras e colunas e devem representar uma grade temporal espectral com cada fileira correspondente a uma linha espectral e cada coluna correspondente a subintervalos de quadros 44 correspondentes às transformadas mais curtas envolvidas na formação de espectrogramas 40 e 42. Em particular, a Figura 3 ilustra, por exemplo, para o quadro 44d, que um quadro pode ser alternativamente submetido a transformadas consecutivas de comprimento mais curto, assim resultando, para tais quadros, como o quadro 44d, em diversos espectros temporalmente sucedentes de resolução espectral reduzida. Oito transformadas curtas são usadas de modo exemplificativo para o quadro 44d, resultando em uma amostragem espectrotemporal dos espectrogramas 40 e 42 naquele quadro 42d, em linhas espectrais separadas uma da outra para que meramente toda oitava linha espectral seja preenchida, mas com um valor de amostra para cada uma dentre as oito janelas de transformada ou transformadas de comprimento mais curto usadas para transformar o quadro 44d. Com propósitos de ilustração, é mostrado na Figura 3 que outros números de transformadas para um quadro também seriam praticáveis, como o uso de duas transformadas de um comprimento de transformada que é, por exemplo, metade do comprimento de transformada das transformadas longas para os quadros 44a e 44b, assim resultando na amostragem da grade espectrotemporal ou espectrogramas 40 e 42 em que os dois valores de amostra de linha espectral sejam obtidos para cada segunda linha espectral, em que uma se refere à transformada anterior, a outra se refere à transformada posterior.
[046] As janelas de transformada para as transformas em que os quadros são subdivididos são ilustradas na Figura 3 abaixo de cada espectrograma com o uso de linhas semelhantes a janela em sobreposição. A sobreposição temporal serve, por exemplo, com propósitos de TDAC (Cancelamento de Sobreposição de Domínio de Tempo).
[047] Embora as modalidades descritas adicionalmente abaixo também possam ser implantadas de outra maneira, a Figura 3 ilustra o caso em que a troca entre resoluções espectrotemporais diferentes para os quadros individuais 44 é realizada de uma maneira, de modo que, para cada quadro 44, o mesmo número de valores de linha espectral indicado pelos pequenos xis na Figura 3 resulte para o espectrograma 40 e espectrograma 42, em que a diferença reside meramente na maneira que as linhas amostram de modo espectrotemporal o respectivo bloco espectrotemporal correspondente ao respectivo quadro 44, estendido de modo temporal ao longo do tempo do respectivo quadro 44 e estendido de modo espectral da frequência zero para a frequência máxima fmax.
[048] Com o uso das setas na Figura 3, a Figura 3 ilustra em relação ao quadro 44d que aqueles espectros similares podem ser obtidos para todos os quadros 44 distribuindo-se adequadamente os valores de amostra de linha espectral que pertencem à mesma linha espectral, mas as janelas de transformada curtas em um quadro de um canal, nas linhas espectrais não ocupadas (vazias) nesse quadro até a próxima linha espectral ocupada desse mesmo quadro. Tais espectros resultantes são chamados “espectros intercalados” a seguir. Na intercalação de n transformadas de um quadro de um canal, por exemplo, os valores de linha espectral colocalizados de modo espectral das n transformadas curtas seguem um ao outro antes do conjunto de n valores de linha espectral colocalizados de modo espectral das n transformadas curtas da linha espectral sucedente de modo espectral seguir. Uma forma intermediária de intercalação também seria praticável: em vez de intercalar todos os coeficientes de linha espectral de um quadro, seria praticável intercalar meramente os coeficientes de linha espectral de um subconjunto apropriado das transformadas curtas de um quadro 44d. Em qualquer caso, quando os espectros de quadros dos dois canais correspondentes a espectrogramas 40 e 42 forem discutidos, esses espectros podem se referir àqueles intercalados ou não intercalados.
[049] A fim de converter em código de modo eficaz os coeficientes de linha espectral que representam os espectrogramas 40 e 42 por meio de fluxo de dados 30 passados para o decodificador 10, os mesmos são quantizados. A fim de controlar o ruído de quantização de modo espectrotemporal, o tamanho de etapa de quantização é controlado por meio de fatores de escala que são definidos em uma certa grade espectrotemporal. Em particular, dentro de cada um dentre a sequência de espectros de cada espectrograma, as linhas espectrais são agrupadas em grupos de fator de escala não sobrepostos consecutivos de modo espectral. A Figura 4 mostra um espectro 46 do espectrograma 40 na metade superior do mesmo, e um espectro cotemporal 48 fora do espectrograma 42. Conforme mostrado na mesma, os espectros 46 e 48 são subdivididos em bandas de fator de escala ao longo do eixo geométrico espectral f de modo a agrupar as linhas espectrais em grupos não sobrepostos. As bandas de fator de escala são ilustradas na Figura 4 com o uso de chaves superiores 50. Por questão de simplicidade, supõe-se que as delimitações entre as bandas de fator de escala coincidem entre os espectros 46 e 48, mas isso não precisa ser necessariamente o caso.
[050] Isto é, por meio da conversão em código no fluxo de dados 30, os espectrogramas 40 e 42 são subdivididos, cada um, em uma temporal sequência de espectros e cada um desses espectros é subdividido de modo espectral em bandas de fator de escala, e para cada banda de fator de escala o fluxo de dados 30 converte em código ou transporta as informações sobre um fator de escala correspondente à respectiva banda de fator de escala. Os coeficientes de linha espectral em uma respectiva banda de fator de escala 50 são quantizados com o uso do respectivo fator de escala ou, no que se refere ao decodificador 10, podem ser dequantizados com o uso do fator de escala da banda de fator de escala correspondente.
[051] Antes de mudar novamente para a Figura 2 e a descrição da mesma, deve ser considerado a seguir que o canal especificamente tratado, isto é, aquele cuja decodificação envolve os elementos específicos do decodificador da Figura 2, exceto 34, é o canal transmitido de espectrograma 40 que, conforme já declarado acima, pode representar um dentre os canais esquerdo e direito, um canal M ou um canal S com a suposição que o sinal de áudio multicanal convertido em código no fluxo de dados 30 é um sinal de áudio estéreo.
[052] Embora o extrator de linha espectral 20 seja configurado para extrair os dados de linha espectral, isto é, os coeficientes de linha espectral para os quadros 44 a partir do fluxo de dados 30, o extrator de fator de escala 22 é configurado para extrair para cada quadro 44 os fatores de escala correspondentes. Para esse fim, os extratores 20 e 22 podem usar a decodificação de entropia. De acordo com uma modalidade, o extrator de fator de escala 22 é configurado para extrair sequencialmente os fatores de escala de, por exemplo, espectro 46 na Figura 4, isto é, os fatores de escala de bandas de fator de escala 50, a partir do fluxo de dados 30 com o uso de decodificação de entropia adaptativa de contexto. A ordem da decodificação sequencial pode seguir a ordem espectral definida dentre as bandas de fator de escala que levam, por exemplo, da frequência baixa à frequência alta. O extrator de fator de escala 22 pode usar decodificação de entropia adaptativa de contexto e pode determinar o contexto para cada fator de escala dependendo de fatores de escala já extraídos em uma adjacência espectral de um fator de escala atualmente extraído, como dependendo do fator de escala da banda de fator de escala imediatamente anterior. Alternativamente, o extrator de fator de escala 22 pode decodificar de modo preditivo os fatores de escala do fluxo de dados 30 como, por exemplo, com o uso de decodificação diferencial enquanto prediz um fator de escala atualmente decodificado com base em qualquer um dentre os fatores de escala anteriormente decodificados, como o imediatamente anterior. De modo notável, esse processo de extração de fator de escala é independente em relação a um fator de escala que pertence a uma banda de fator de escala preenchida por linhas espectrais quantizadas a zero exclusiva, ou preenchida por linhas espectrais dentre as quais pelo menos uma é quantizada a um valor não zero. Um fator de escala que pertence a uma banda de fator de escala preenchida por linhas espectrais quantizadas a zero apenas pode servir tanto como uma base de predição para um fator de escala decodificado subsequente que pertence possivelmente a uma banda de fator de escala preenchida por linhas espectrais dentre as quais uma é não zero, quanto ser previsto como base em um fator de escala anteriormente decodificado que pertence possivelmente a uma banda de fator de escala preenchida por linhas espectrais dentre as quais uma é não zero.
[053] Apenas por questão de completude, é observado que o extrator de linha espectral 20 extrai os coeficientes de linha espectral cujas bandas de fator de escala 50 são preenchidas de modo semelhante com o uso de, por exemplo, conversão em código de entropia e/ou conversão em código preditiva. A conversão em código de entropia pode usar adaptação de contexto com base em coeficientes de linha espectral em uma adjacência espectrotemporal de um coeficiente de linha espectral atualmente decodificado e, de modo semelhante, a predição pode ser uma predição espectral, uma predição temporal ou uma predição espectrotemporal que prediz um coeficiente de linha espectral atualmente decodificado com base em coeficientes de linha espectral anteriormente decodificados em uma adjacência espectrotemporal do mesmo. Por questão de uma eficácia de conversão em código aumentada, o extrator de linha espectral 20 pode ser configurado para realizar a decodificação das linhas espectrais ou coeficientes de linha em tuplas, as quais coletam ou agrupam linhas espectrais ao longo do eixo geométrico de frequência.
[054] Desse modo, na saída de extrator de linha espectral 20, os coeficientes de linha espectral são fornecidos como, por exemplo, em unidades de espectros, como o espectro 46 que coleta, por exemplo, todos os coeficientes de linha espectral de um quadro correspondente, ou coleta alternativamente todos os coeficientes de linha espectral de certas transformadas curtas de um quadro correspondente. Na saída de extrator de fator de escala 22, por sua vez, os fatores de escala correspondentes dos respectivos espectros são emitidos.
[055] O identificador de banda de fator de escala 12, assim como o dequantizador 14, tem entradas de linha espectral acopladas à saída de extrator de linha espectral 20, e o dequantizador 14 e a carga de ruído 16 têm entradas de fator de escala acopladas à saída de extrator de fator de escala 22. O identificador de banda de fator de escala 12 é configurado para identificar as chamadas bandas de fator de escala quantizadas a zero em um espectro atual 46, isto é, bandas de fator de escala em que todas as linhas espectrais são quantizadas a zero, como a banda de fator de escala 50c na Figura 4, e as bandas de fator de escala restantes do espectro no qual pelo menos uma linha espectral é quantizada a não zero. Em particular, na Figura 4, os coeficientes de linha espectral são indicados com o uso de áreas hachuradas na Figura 4. É visível a partir disso que, no espectro 46, todas as bandas de fator de escala, mas a banda de fator de escala 50b têm pelo menos uma linha espectral, cujo coeficiente de linha espectral é quantizado a um valor não zero. Posteriormente, se tornará claro que as bandas de fator de escala quantizadas a zero, como 50d formam a matéria do carregamento de ruído intercanal descrito adicionalmente abaixo. Antes de avançar com a descrição, observa-se que o identificador de banda de fator de escala 12 pode restringir sua identificação em meramente um subconjunto apropriado das bandas de fator de escala 50, como nas bandas de fator de escala acima de uma frequência de início 52. Na Figura 4, isso restringiria o procedimento de identificação em bandas de fator de escala 50d, 50e e 50f.
[056] O identificador de banda de fator de escala 12 informa a carga de ruído 16 naquelas bandas de fator de escala que são bandas de fator de escala quantizadas a zero. O dequantizador 14 usa os fatores de escala associados a um espectro recebido 46 de modo a dequantizar, ou escala, os coeficientes de linha espectral das linhas espectrais do espectro 46 de acordo com os fatores de escala associados, isto é, os fatores de escala associados às bandas de fator de escala 50. Em particular, o dequantizador 14 dequantiza e escala coeficientes de linha espectral que estão em uma respectiva banda de fator de escala com o fator de escala associado à respectiva banda de fator de escala. A Figura 4 deve ser interpretada como mostrando o resultado da dequantização das linhas espectrais.
[057] A carga de ruído 16 obtém as informações nas bandas de fator de escala quantizadas a zero que formam a matéria do carregamento de ruído a seguir, o espectro dequantizado assim como os fatores de escala de pelo menos aquelas bandas de fator de escala identificadas como bandas de fator de escala quantizadas a zero e uma sinalização obtida a partir de fluxo de dados 30 para o quadro atual que revela se o carregamento de ruído intercanal deve ser realizado para o quadro atual.
[058] O processo de carregamento de ruído intercanal descrito no exemplo a seguir envolve atualmente dois tipos de carregamento de ruído, a saber, a inserção de um piso de ruído 54 pertencente a todas as linhas espectrais que foram quantizadas a zero independentemente de sua associação potencial a qualquer banda de fator de escala quantizada a zero, e o procedimento de carregamento de ruído intercanal real. Embora essa combinação seja descrita doravante, deve ser enfatizado que a inserção de piso de ruído pode ser omitida de acordo com uma modalidade alternativa. Além disso, a sinalização em relação a ligar a desligar o carregamento de ruído em relação ao quadro atual e obtido a partir de fluxo de dados 30 pode se relacionar apenas ao carregamento de ruído intercanal, ou pode controlar a combinação de ambas as ordenações de carregamento de ruído.
[059] No que se refere à inserção de piso de ruído, a carga de ruído 16 pode operar conforme a seguir. Em particular, a carga de ruído 16 pode empregar a geração de ruído artificial, como um gerador de número pseudoaleatório ou alguma outra fonte de aleatoriedade a fim de carregar linhas espectrais, cujos coeficientes de linha espectral foram zero. O nível do piso de ruído 54 inserido, desse modo, nas linhas espectrais quantizadas a zero pode ser definido de acordo com uma sinalização explícita no fluxo de dados 30 para o quadro atual ou o espectro atual 46. O “nível” de piso de ruído 54 pode ser determinado com o uso de uma raiz do valor quadrado médio (RMS) ou medida de energia, por exemplo.
[060] A inserção de piso de ruído representa, desse modo, um tipo de pré- carregamento para aquelas bandas de fator de escala que foram identificadas como quantizadas a zero, como banda de fator de escala 50d na Figura 4. Isso também afeta outras bandas de fator de escala além das quantizadas a zero, mas as últimas são adicionalmente submetidas ao carregamento de ruído intercanal a seguir. Conforme descrito abaixo, o processo de carregamento de ruído intercanal é carregar as bandas de fator de escala quantizadas a zero até um nível que é controlado por meio do fator de escala da respectiva banda de fator de escala quantizada a zero. O último pode ser diretamente usado para esse fim devido a todas as linhas espectrais da respectiva banda de fator de escala quantizada a zero que é quantizada a zero. Independentemente, o fluxo de dados 30 pode conter uma sinalização adicional de um parâmetro, para cada quadro ou cada espectro 46, que se aplica comumente aos fatores de escala de todas as bandas de fator de escala quantizadas a zero do quadro ou espectro correspondente 46 e resulta, quando aplicado aos fatores de escala das bandas de fator de escala quantizadas a zero pela carga de ruído 16, em um respectivo nível de carga que é individual para as bandas de fator de escala quantizadas a zero. Isto é, a carga de ruído 16 pode modificar, com o uso da mesma função de modificação, para cada banda de fator de escala quantizada a zero do espectro 46, o fator de escala da respectiva banda de fator de escala com o uso do parâmetro mencionado contido no fluxo de dados 30 para esse espectro 46 do quadro atual de modo a obter um nível-alvo de carga para a respectiva medição de banda de fator de escala quantizada a zero, em termos de energia ou RMS, por exemplo, o nível até o qual o processo de carregamento de ruído intercanal deve carregar a respectiva banda de fator de escala quantizada a zero com (opcionalmente) ruído adicional (além do piso de ruído 54).
[061] Em particular, a fim de realizar o carregamento de ruído intercanal 56, a carga de ruído 16 obtém a de modo espectral uma porção colocalizada do outro espectro 48 de canal, em um estado já amplamente ou completamente decodificado, e copia a porção obtida de espectro 48 para a banda de fator de escala quantizada a zero à qual essa porção foi colocalizada de modo espectral, escalada de tal maneira que o nível de ruído geral resultante naquela banda de fator de escala quantizada a zero - derivada por uma integração por meio das linhas espectrais da respectiva banda de fator de escala - se iguala ao nível-alvo de carga supracitado obtido a partir do fator de escala da banda de fator de escala quantizada a zero. Por essa medida, a tonalidade do ruído carregado na respectiva banda de fator de escala quantizada a zero é melhorada em comparação com o ruído artificialmente gerado, como o que forma a base do piso de ruído 54, e também melhor do que uma cópia/replicação espectral não controlada de linhas de frequência muito baixa no mesmo espectro 46.
[062] Para ser ainda mais preciso, a carga de ruído 16 localiza, para uma banda atual, como 50d, uma porção colocalizada de modo espectral no espectro 48 do outro canal, escala as linhas espectrais da mesma dependendo do fator de escala da banda de fator de escala quantizada a zero 50d de uma maneira descrita envolvendo, opcionalmente, algum deslocamento adicional ou parâmetro de fator de ruído contido em fluxo de dados 30 para o quadro atual ou espectro 46, de modo que o resultado do mesmo carregue a respectiva banda de fator de escala quantizada a zero 50d até o nível desejado, conforme pelo fator de escala da banda de fator de escala quantizada a zero 50d. Na presente modalidade, isso significa que a carga é feita de maneira aditiva em relação ao piso de ruído 54.
[063] De acordo com uma modalidade simplificada, o espectro carregado em ruído resultante 46 seria diretamente admitido na entrada de transformador inverso 18 de modo a obter, para cada janela de transformada à qual os coeficientes de linha espectral de espectro 46 pertencem, uma porção de domínio de tempo do respectivo sinal de tempo de áudio de canal, mediante o qual (não mostrado na Figura 2) um processo de adicionar sobreposição pode combinar essas porções de domínio de tempo. Isto é, se o espectro 46 é um espectro não intercalado, os coeficientes de linha espectral que pertencem meramente a uma transformada, então, o transformador inverso 18 submete aquela transformada de modo a resultar em uma porção de domínio de tempo e cujas extremidades anterior e posterior seriam submetidas a um processo de adicionar sobreposição com porções de domínio de tempo anterior e posterior obtidas por transformação inversa de transformadas inversas anteriores e sucedentes de modo a realizar, por exemplo, cancelamento de sobreposição de domínio de tempo. Entretanto, se o espectro 46 intercalou no mesmo coeficientes de linha espectral de mais do que uma transformada consecutiva, então, o transformador inverso 18 submeteria o mesmo a transformações inversas separadas de modo a obter uma porção de domínio de tempo por transformação inversa, e de acordo com a ordem temporal definida entre os mesmos, essas porções de domínio de tempo seriam submetidas a um processo de adicionar sobreposição entre as mesmas, assim como em relação a porções de domínio de tempo anterior e sucedente de outros espectros ou quadros.
[064] Entretanto, por questão de completude, deve ser observado que o processamento adicional pode ser realizado no espectro carregado de ruído. Conforme mostrado na Figura 2, o filtro de TNS inverso pode realizar uma filtração de TNS inversa para o espectro carregado de ruído. Isto é, controlado por meio de coeficientes de filtro de TNS para o quadro atual ou espectro 46, o espectro obtido até então é submetido a uma filtração linear ao longo da direção espectral.
[065] Com ou sem filtração de TNS inversa, o complexo estéreo de preditor 24 pode, então, tratar o espectro como uma predição residual de uma predição intercanal. Mais especificamente, o preditor intercanal 24 pode usar uma porção colocalizada de modo espectral do outro canal para predizer o espectro 46 ou pelo menos um subconjunto das bandas de fator de escala 50 dos mesmos. O processo de predição de complexo é ilustrado na Figura 4 com a caixa tracejada 58 em relação à banda de fator de escala 50b. Isto é, o fluxo de dados 30 pode conter parâmetros de predição intercanal que controla, por exemplo, qual dentre as bandas de fator de escala 50 deve ser predita de modo intercanal e que não deve ser predita de tal maneira. Adicionalmente, os parâmetros de predição intercanal no fluxo de dados 30 pode compreender adicionalmente os fatores de predição intercanal complexos aplicados pelo preditor intercanal 24 de modo a obter o resultado de predição intercanal. Esses fatores podem ser contidos em fluxo de dados 30 individualmente para cada banda de fator de escala, ou alternativamente cada grupo de uma ou mais bandas de fator de escala, para os quais a predição intercanal é ativada ou sinalizada para ser ativada no fluxo de dados 30.
[066] A fonte de predição intercanal pode ser, conforme indicado na Figura 4, o espectro 48 do outro canal. Para ser mais preciso, a fonte de predição intercanal pode ser a porção colocalizada de modo espectral do espectro 48, colocalizada à banda de fator de escala 50b a ser prevista de modo intercanal, estendida por uma estimativa de sua parte imaginária. A estimativa da parte imaginária pode ser realizada com base na porção colocalizada de modo espectral 60 de espectro 48 em si, e/ou pode usar uma mixagem de redução dos canais já decodificados do quadro anterior, isto é, o quadro imediatamente anterior ao quadro atualmente decodificado ao qual o espectro 46 pertence. Em efeito, o preditor intercanal 24 adiciona às bandas de fator de escala a serem previstas intercanal, como a banda de fator de escala 50b na Figura 4, o sinal de predição obtido conforme descrito.
[067] Conforme já observado na descrição anterior, o canal ao qual o espectro 46 pertence pode ser um MS convertido em código canal, ou pode ser um canal relacionado a alto-falante, como um canal esquerdo ou direito de um sinal de áudio estéreo. Consequentemente, opcionalmente um decodificador de MS 26 submete o espectro predito opcionalmente intercanal 46 para decodificação de MS, em que o mesmo realiza, por linha espectral ou espectro 46, uma adição ou subtração com linhas espectrais correspondentes de modo espectral do outro canal correspondente ao espectro 48. Por exemplo, embora não mostrado na Figura 2, o espectro 48 conforme mostrado na Figura 4 foi obtido por meio da porção 34 do decodificador 10 em uma maneira análoga à descrição trazida acima em relação ao canal ao qual o espectro 46 pertence, e o módulo de decodificação de MS 26, na realização de decodificação de MS, submete os espectros 46 e 48 à adição em linha espectral ou subtração em linha espectral, com ambos os espectros 46 e 48 no mesmo estágio na linha de processamento, o que significa que ambos foram obtidos por predição intercanal , por exemplo, ou ambos foram obtidos por carregamento de ruído ou filtração de TNS inversa.
[068] Observa-se que, opcionalmente, a decodificação de MS pode ser realizada de uma maneira globalmente relativa ao espectro total 46, ou individualmente ativável por fluxo de dados 30 em unidades de, por exemplo, bandas de fator de escala 50. Em outras palavras, a decodificação de MS pode ser ligada ou desligada com o uso da respectiva sinalização em fluxo de dados 30 em unidades de, por exemplo, quadros ou alguma resolução espectrotemporal mais fina como, por exemplo, individualmente para as bandas de fator de escala dos espectros 46 e/ou 48 dos espectrogramas 40 e/ou 42, em que supõe-se que as delimitações idênticas de ambas as bandas de fator de escala dos canais sejam definidas.
[069] Conforme ilustrado na Figura 2, a filtração de TNS inversa por filtro de TNS inversa 28 também pode ser realizada após qualquer processamento intercanal, como predição intercanal 58 ou a decodificação de MS pelo decodificador de MS 26. O desempenho em frente a, ou a jusante de, o processamento intercanal pode ser fixado ou pode ser controlado por meio de uma respectiva sinalização para cada quadro em fluxo de dados 30 ou em algum outro nível de granularidade. Quando a filtração de TNS inversa é realizada, os respectivos coeficientes de filtro de TNS presentes no fluxo de dados para o espectro atual 46 controlam um filtro de TNS, isto é, um filtro de predição linear que percorre ao longo da direção espectral de modo a filtrar de modo linear o espectro recebido no respectivo módulo de filtro de TNS inversa 28a e/ou 28b.
[070] Desse modo, o espectro 46 que chega na entrada de transformador inverso 18 pode ter sido submetido ao processamento adicional, conforme descrito. Novamente, a descrição acima não é destinada a ser entendida de tal maneira que todas essas ferramentas opcionais estejam presentes concomitantemente ou não. Essas ferramentas podem estar presentes no decodificador 10 parcial ou coletivamente.
[071] Em qualquer caso, o espectro resultante na entrada do transformador inverso representa a reconstrução final do sinal de saída do canal e forma a base da mixagem de redução supracitada para o quadro atual que serve, conforme descrito em relação à predição complexa 58, como a base para a estimativa de parte imaginária potencial para o próximo quadro a ser decodificado. O mesmo pode servir adicionalmente como a reconstrução final para a predição intercanal de um canal diferente àquele que os elementos se referem, exceto 34, na Figura 2.
[072] A respectiva mixagem de redução é formada pelo provedor de mixagem de redução 31 combinando-se esse espectro final 46 com a respectiva versão final de espectro 48. A última entidade, isto é, a respectiva versão final de espectro 48, formada a base para a predição intercanal complexa no preditor 24.
[073] A Figura 5 mostra uma alternativa em relação à Figura 2 na medida em que a base para o carregamento de ruído intercanal é representado pela mixagem de redução de linhas espectrais colocalizadas de modo espectral de um quadro anterior de modo que, no caso opcional de usar a predição intercanal complexa, a fonte dessa predição intercanal complexa seja usada duas vezes, como uma fonte para o carregamento de ruído intercanal, assim como uma fonte para a estimativa de parte imaginária na predição intercanal complexa. A Figura 5 mostra um decodificador 10 incluindo a porção 70 que pertence à decodificação do primeiro canal ao qual o espectro 46 pertence, assim como a estrutura interna da outra porção supracitada 34, a qual é envolvida na decodificação do outro canal que compreende o espectro 48. A mesma referência numérica foi usada para os elementos internos de porção 70 por um lado e 34 por outro lado. Conforme pode ser visto, a construção é a mesma. Na saída 32, um canal do sinal de áudio estéreo é emitido, e na saída do transformador inverso 18 da segunda porção de decodificador 34, o outro canal (de saída) do sinal de áudio estéreo é resultante, com essa saída indicada pela referência numérica 74. Novamente, as modalidades descritas acima podem ser facilmente transferidas para um caso de usar mais de dois canais.
[074] O provedor de mixagem de redução 31 é coutilizado por ambas as porções 70 e 34 e recebe de modo temporal os espectros colocalizados 48 e 46 de espectrogramas 40 e 42 de modo a formar uma mixagem de redução com base no mesmo somando-se esses espectros em uma linha espectral por base de linha espectral, potencialmente com a formação da média da mesma dividindo-se a soma em cada linha espectral pelo número de canais submetidos à mixagem de redução, isto é, dois, no caso da Figura 5. Na saída do provedor de mixagem de redução 31, a mixagem de redução do quadro anterior é resultante dessa medição. É observado nesse aspecto que, no caso de o quadro anterior conter mais do que um espectro em qualquer um dentre os espectrogramas 40 e 42, possibilidades diferentes existem em relação a como o provedor de mixagem de redução 31 opera nesse caso. Por exemplo, caso o provedor de mixagem de redução 31 possa usar o espectro das transformadas posteriores do quadro atual, ou possa usar um resultado intercalado de intercalar todos os coeficientes de linha espectral do quadro atual de espectrograma 40 e 42. O elemento de atraso 74 mostrado na Figura 5 conforme conectado à saída de provedor de mixagem de redução 31, mostra que a mixagem de redução fornecida desse modo na saída do provedor de mixagem de redução 31 forma a mixagem de redução do quadro anterior 76 (consultar Figura 4 em relação ao carregamento de ruído intercanal 56 e predição complexa 58, respectivamente). Desse modo, a saída de elemento de atraso 74 é conectada às entradas de preditores intercanais 24 de porções de decodificador 34 e 70 por um lado, e as entradas de filtros de ruído 16 de porções de decodificador 70 e 34, por outro lado.
[075] Isto é, enquanto na Figura 2, a carga de ruído 16 recebe o outro espectro colocalizado finalmente reconstruído de modo temporal 48 do canal do mesmo quadro atual como uma base do carregamento de ruído intercanal, na Figura 5, o carregamento de ruído intercanal é realizado em vez de com base na mixagem de redução do quadro anterior conforme fornecido pelo provedor de mixagem de redução 31. A maneira em que o carregamento de ruído intercanal é realizado permanece a mesma. Isto é, uma carga de ruído intercanal 16 coleta uma porção colocalizada de modo espectral do respectivo espectro do outro espectro de canal do quadro atual, no caso da Figura 2, e o espectro final amplamente ou completamente decodificado, conforme obtido a partir do quadro anterior que representa a mixagem de redução do quadro anterior, no caso da Figura 5, e adiciona a mesma porção de “fonte” às linhas espectrais na banda de fator de escala para serem carregadas por ruído, como 50d na Figura 4, escaladas de acordo com um nível de ruído-alvo determinado pelo respectivo fator de escala da banda de fator de escala.
[076] Concluindo a discussão acima de modalidades que descrevem o carregamento de ruído intercanal em um decodificador de áudio, deve ser evidente para leitores versados na técnica que, antes de adicionar a porção colocalizada de modo temporal ou coletada de modo espectral do espectro de “fonte” às linhas espectrais da banda de fator de escala “alvo”, um certo pré-processamento pode ser aplicado às linhas espectrais de “fonte” sem divergir do conceito geral do carregamento intercanal. Em particular, pode ser benéfico aplicar uma operação de filtração como, por exemplo, um achatamento espectral, ou remoção de inclinação, às linhas espectrais da região de “fonte” a ser adicionada à banda de fator de escala “alvo”, como 50d na Figura 4, a fim de melhorar a qualidade de áudio do processo de carregamento de ruído intercanal. De modo semelhante, e como um exemplo de um espectro decodificado amplamente (em vez de completamente), a porção de “fonte” supracitada pode ser obtida a partir de um espectro que ainda não foi filtrado por um filtro de TNS inversa disponível (isto é, síntese).
[077] Desse modo, as modalidades acima se relacionaram a um conceito de um carregamento de ruído intercanal. A seguir, uma possibilidade é descrita a como o conceito acima de carregamento de ruído intercanal pode ser construído em um codec existente, a saber, xHE-AAC, de uma maneira compatível semirretrógrada. Em particular, doravante, uma implantação preferida das modalidades acima é descrita, de acordo com a qual uma ferramenta de carregamento estéreo é construída em um xHE-AAC com base em codec de áudio de uma maneira de sinalização compatível semirretrógrada. Por uso da implantação descrita adicionalmente abaixo, para certos sinais estéreo, o carregamento estéreo de coeficientes de transformada em qualquer um dos dois canais em um codec de áudio com base em um MPEG-D xHE-AAC (USAC) é praticável, assim melhorando a qualidade de conversão em código de certos sinais de áudio especialmente em baixas taxas de bits. A ferramenta de carregamento estéreo é sinalizada de modo compatível semirretrógrado, de modo que os decodificadores de xHE-AAC obsoletos possam analisar e decodificar os fluxos de bits sem erros de áudio óbvios ou quedas. Conforme já descrito acima, uma qualidade geral melhor pode ser alcançada se um conversor em código de áudio puder usar uma combinação de coeficientes anteriormente decodificados/quantizados de dois canais estéreo para reconstruir coeficientes quantizados a zero (não transmitidos) de qualquer dentre os canais atualmente decodificados. Portanto, é desejável permitir que tal carregamento estéreo (de coeficientes de canal anteriores a presentes) além da replicação de banda espectral (de coeficientes de canal de baixa a alta frequência) e carregamento de ruído (de uma fonte pseudoaleatória não correlacionada) em conversores em código de áudio, especialmente xHE-AAC ou conversores em áudio com base nos mesmos.
[078] Para permitir que os fluxos de convertidos em código bits com carregamento estéreo sejam lidos e analisados por decodificadores de xHE-AAC obsoletos, a ferramenta de carregamento estéreo desejada deve ser usada em uma maneira compatível semirretrógrada: sua presença não deve fazer com que os decodificadores obsoletos interrompam - ou nem iniciem - a decodificação. A legibilidade do fluxo de bits por infraestrutura de xHE-AAC também pode facilitar a adesão de mercado.
[079] Para alcançar o desejo supracitado por compatibilidade semirretrógrada por uma ferramenta de carregamento estéreo no contexto de xHE-AAC ou seus derivados potenciais, a implantação a seguir envolve a funcionalidade de carregamento estéreo, assim como a habilidade para sinalizar o mesmo por meio de sintaxe no fluxo de dados realmente relacionado ao carregamento de ruído. A ferramenta de carregamento estéreo funcionaria em linha com a descrição acima. Em um par de canal com configuração de janela comum, um coeficiente de uma banda de fator de escala quantizada a zero é, quando a ferramenta de carregamento estéreo é ativada, como uma alternativa ao (ou, conforme descrito, além de) carregamento de ruído, reconstruído por uma soma ou diferença dos coeficientes do quadro anterior em qualquer um dos dois canais, preferencialmente o canal direito. O carregamento estéreo é realizado similar ao carregamento de ruído. A sinalização seria feita por meio da sinalização de carregamento de ruído de xHE-AAC. O carregamento estéreo é transportado por meio das informações secundárias de carregamento de ruído de 8 bits. Isso é praticável devido ao padrão MPEG-D USAC [3] que declara que todos os 8 bits são transmitidos até mesmo se o nível de ruído a ser aplicado é zero. Nessa situação, alguns dos bits de carga de ruído podem ser reusados para a ferramenta de carregamento estéreo.
[080] A compatibilidade semirretrógrada em relação à análise de fluxo de bits e reprodução por decodificadores xHE-AAC obsoletos é garantida conforme a seguir. O carregamento estéreo é sinalizado por meio de um nível de ruído de zero (isto é, os primeiros três bits de carga de ruído, em que todos têm um valor de zero) seguido por cinco bits não zero (os quais representam tradicionalmente um deslocamento de ruído) que contêm informações secundárias para a ferramenta de carregamento estéreo, assim como o nível de ruído ausente. Desde que um decodificador de xHE- AAC obsoleto desconsidera um valor do deslocamento de ruído de 5 bits se o nível de ruído de 3 bits for zero, a presença da sinalização de ferramenta de carregamento estéreo tem apenas um efeito no carregamento de ruído no decodificador obsoleto: o carregamento de ruído é desligado visto que os primeiros três bits são zero, e o restante da operação de decodificação é executada conforme pretendido. Em particular, o carregamento estéreo não é realizado devido ao fato de que é operado como o processo de carga de ruído, que é desativado. Então, um decodificador obsoleto ainda oferece decodificação “suave” do fluxo de bits intensificado 30 devido ao fato de que não precisa silenciar o sinal de saída ou até mesmo abortar a decodificação mediante alcançar um quadro com carregamento estéreo ligado. Naturalmente, entretanto, o mesmo não tem capacidade para fornecer uma reconstrução pretendida correta de coeficientes de linhas carregadas estéreo, levando a uma qualidade deteriorada em quadros afetados em comparação com a decodificação por um decodificador apropriado com capacidade para lidar apropriadamente com a nova ferramenta de carregamento estéreo. Independentemente, supor que a ferramenta de carregamento estéreo é usada conforme pretendido, isto é, apenas em entrada estéreo em baixas taxas de bits, a qualidade através dos decodificadores xHE-AAC deveria ser melhor do que se os quadros afetados sofressem quedas devido ao silenciamento ou levassem a outros erros de reprodução óbvios.
[081] A seguir, uma descrição detalhada é apresentada em relação a como uma ferramenta de carregamento estéreo pode ser construída, como uma extensão, no codec de xHE-AAC.
[082] Quando construída no padrão, a ferramenta de carregamento estéreo pode ser descrita conforme a seguir. Em particular, tal ferramenta de carregamento estéreo (SF) representaria uma ferramenta nova na parte de domínio de frequência (FD) de áudio 3D MPEG-H. Alinhado à discussão acima, o objetivo de tal ferramenta de carregamento estéreo seria a reconstrução paramétrica de coeficientes espectrais de MDCT em baixas taxas de bits, similar ao que já pode ser alcançado com carregamento de ruído de acordo com a seção 7.2 do padrão descrito em [3]. Entretanto, diferente do carregamento de ruído, que emprega uma fonte de pseudoaleatória para gerar valores espectrais de MDCT de qualquer canal de FD, SF também estaria disponível para reconstruir os valores de MDCT do canal direito de um par de canais estéreo conjuntamente convertido em código com o uso de uma mixagem de redução dos espectros de MDCT esquerdo e direito do quadro anterior. SF, de acordo com a implantação apresentada abaixo, é sinalizado de modo compatível e semirretrógrado por meio das informações secundárias de carregamento de ruído que podem ser analisadas corretamente por um decodificador de MPEG-D USAC obsoleto.
[083] A descrição de ferramenta também pode ser conforme o seguinte. Quando SF está ativo em um quadro de FD estéreo conjunto, os coeficientes de MDCT de bandas de fatores de escala vazias (isto é, completamente quantizadas a zero) do canal direito (segundo), como 50d, são substituídos por uma soma ou diferença dos coeficientes de MDCT dos canais esquerdo e direito decodificados correspondentes do quadro anterior (se FD). Se o carregamento de ruído obsoleto for ativo para o segundo canal, os valores pseudoaleatórios também são adicionados a cada coeficiente. Os coeficientes resultantes de cada banda de fator de escala são, então, escalados de modo que a RMS (raiz quadrada do coeficiente médio) de cada banda corresponda ao valor transmitido por meio daquele fator de escala da banda. Consultar a seção 7.3 do padrão em [3].
[084] Algumas restrições operacionais podem ser fornecidas para o uso da ferramenta de SF nova no padrão MPEG-D USAC. Por exemplo, a ferramenta de SF pode estar disponível para uso apenas no canal de FD direito de um par de canal de FD comum, isto é, um elemento de par de canal que transmite um StereoCoreToolInfo() com common_window == 1. Além disso, devido à sinalização compatível semirretrógrada, a ferramenta de SF pode estar disponível para uso apenas quando noiseFilling == 1 no receptor de sintaxe UsacCoreConfig(). Se qualquer um dos canais no par estiver em LPD core_mode, a ferramenta de SF pode não ser usada, até mesmo se o canal direito estiver no modo de FD.
[085] Os termos e as definições a seguir são usados doravante a fim de descrever mais claramente a extensão do padrão conforme descrito em [3].
[086] Em particular, no que se refere aos elementos de dados, o elemento de dados a seguir é recém-introduzido: stereo_filling sinalizador binário que indica se SF é utilizado no quadro e canal atual
[087] Adicionalmente, novos elementos auxiliares são introduzidos: noise_offset deslocamento de carga de ruído para modificar os fatores de escala de bandas quantizadas a zero (seção 7.2) noise_level nível de carga de ruído que representa a amplitude de ruído de espectro adicionado (seção 7.2) downmix_prev[ ] mixagem de redução (isto é, soma ou diferença) dos canais esquerdo e direito do quadro anterior sf_index[g][sfb] índice de fator de escala (isto é, número inteiro transmitido) para grupo de janela g e banda sfb
[088] O processo de decodificação do padrão seria estendido da maneira a seguir. Em particular, a decodificação de um canal de FD convertido em código estéreo conjunto com a ferramenta de SF ativada é executada em três etapas sequenciais conforme a seguir:
[089] Primeiramente, a decodificação do sinalizador stereo_filling ocorreria.
[090] stereo_filling não representa um elemento de fluxo de bits independente, mas é derivado dos elementos de carga de ruído, noise_offset e noise_level, em um UsacChannelPairElement() e o sinalizador common_window em StereoCoreToolInfo(). Se noiseFilling == 0 ou common_window == 0 ou o canal atual for o (primeiro) canal esquerdo no elemento, stereo_filling é 0, e o processo de carregamento estéreo termina. De outro modo, if ((noiseFilling != 0) && (common_window != 0) && (noise_level == 0)) { stereo_filling = (noise_offset & 16) / 16; noise_level = (noise_offset & 14) / 2; noise_offset = (noise_offset & 1) * 16; } else { stereo_filling = 0; }
[091] Em outras palavras, se noise_level == 0, noise_offset contém o sinalizador stereo_filling seguido por 4 bits de dados de carregamento de ruído, os quais são, então, redispostos. Visto que essa operação altera os valores de noise_level e noise_offset, a mesma precisa ser realizada antes do processo de carregamento de ruído da seção 7.2. Além disso, o pseudocódigo acima não é executado no canal esquerdo (primeiro) de um UsacChannelPairElement() ou qualquer outro elemento.
[092] Então, o cálculo de downmix_prev ocorreria.
[093] downmix_prev[ ], a mixagem de redução espectral que deve ser usada para carregamento estéreo é idêntica ao dmx_re_prev[ ] usado para a estimativa de espectro de MDST na predição de estéreo de complexo (seção 7.7.2.3). Isso significa que • Todos os coeficientes de downmix_prev[ ] devem ser zero se qualquer um dos canais do quadro e elemento com os quais a mixagem de redução é realizada - isto é, o quadro antes do atualmente decodificado - usar core_mode == 1 (LPD) ou os canais usam comprimentos de transformada desiguais (split_transform == 1 ou troca de bloco para window_sequence == EIGHT_SHORT_SEQUENCE em apenas um canal) ou usacIndependencyFlag == 1. • Todos os coeficientes de downmix_prev[ ] devem ser zero durante o processo de carregamento estéreo se o comprimento de transformada do canal mudou do último para o quadro atual (isto é, split_transform == 1 antecedido por split_transform == 0, ou window_sequence == EIGHT_SHORT_SEQUENCE antecedido por window_sequence != EIGHT_SHORT_SEQUENCE, ou resp. vice- versa) no elemento atual. • Se a divisão de transformada é aplicada nos canais do quadro anterior ou atual, downmix_prev[ ] representa uma mixagem de redução espectral intercalada linha por linha. Consultar a ferramenta de divisão de transformada para detalhes. • Se a predição estéreo complexa não for utilizada no quadro e elemento atual, pred_dir é igual a 0.
[094] Consequentemente, a mixagem de redução anterior deve ser apenas computada uma vez para ambas as ferramentas, salvo complexidade. A única diferença entre downmix_prev[ ] e dmx_re_prev[ ] na seção 7.7.2 é o comportamento quando a predição estéreo complexa não for atualmente usada, ou quando for ativa, mas use_prev_frame == 0. Nesse caso, downmix_prev[ ] é computado para decodificação de carregamento estéreo de acordo com a seção 7.7.2.3 até mesmo dmx_re_prev[ ] não é necessário para a decodificação de predição estéreo complexa e é, portanto, não definido/zero.
[095] Posteriormente, o carregamento estéreo de bandas de fator de escala vazias seria realizado.
[096] Se stereo_filling == 1, o procedimento a seguir é executado após o processo de carregamento de ruído em todas as bandas de fator de escala inicialmente vazias sfb[ ] abaixo de max_sfb_ste, isto é, todas as bandas em que todas as linhas de MDCT foram quantizadas a zero. Primeiro, as energias do dado sfb[ ] e as linhas correspondentes em downmix_prev[ ] são computadas por meio de somas nos quadrados de linha. Então, dado sfbWidth que contém o número de linhas por sfb[ ], if (energy[sfb] < sfbWidth[sfb]) { /* nível de ruído não é o máximo, ou banda começa abaixo da região de carga de ruído*/ facDmx = sqrt((sfbWidth[sfb] - energy[sfb]) / energy_dmx[sfb]); factor = 0,0; /* se a mixagem de redução anterior não for vazia, adicionar as linhas de mixagem de redução escaladas de modo que a banda alcance a energia de unidade*/ for (index = swb_offset[sfb]; index < swb_offset[sfb+1]; index++) { spectrum[window][index] += downmix_prev[window][index] * facDmx; factor += spectrum[window][index] * spectrum[window][index]; } if ((factor != sfbWidth[sfb]) && (factor > 0)) { /* energia de unidade não é alcançada, então, modificar a banda */ factor = sqrt(sfbWidth[sfb] / (factor + 1e-8)); for (index = swb_offset[sfb]; index < swb_offset[sfb+1]; index++) { spectrum[window][index] *= factor; } } } para o espectro de cada janela de grupo. Então, os fatores de escala são aplicados no espectro resultante como na seção 7.3, com os fatores de escala das bandas vazias processados como fatores de escala regulares.
[097] Uma alternativa para a extensão acima do padrão de xHE-AAC usaria um método de sinalização compatível semirretrógrado implícito.
[098] A implantação acima na estrutura de código xHE-AAC descreve uma abordagem que emprega um bit em um fluxo de bits para uso de sinal de ferramenta de carregamento estéreo nova, contida em stereo_filling, para um decodificador, de acordo com a Figura 2. Mais precisamente, tal sinalização (chamada sinalização compatível semirretrógrada explícita) permite que os dados de fluxo de bits obsoletos a seguir - aqui, as informações secundárias de carregamento de ruído - sejam usados independentemente da sinalização de SF: Na presente modalidade, os dados de carregamento de ruído não dependem das informações de carregamento estéreo, e vice-versa. Por exemplo, os dados de carregamento de ruído que consistem em zeros (noise_level = noise_offset = 0) podem ser transmitidos enquanto stereo_filling pode sinalizar qualquer valor possível (um sinalizador binário, 0 ou 1).
[099] Em casos em que a independência estrita entre os dados fluxo de bits obsoletos e os dados de fluxo de bits da invenção não é necessária e o sinal da invenção é uma decisão binária, a transmissão explícita de um bit de sinalização pode ser evitada, e a dita decisão binária pode ser sinalizada pela presença ou ausência do que pode ser chamado sinalização compatível semirretrógrada implícita. Considerando novamente a modalidade acima como um exemplo, o uso de carregamento estéreo pode ser transmitido empregando-se simplesmente a sinalização nova: Se noise_level for zero e, ao mesmo tempo, noise_offset não for zero, o sinalizador stereo_filling é definido igual a 1. Se tanto noise_level quanto noise_offset não forem zero, stereo_filling é igual a 0. Um dependente desse sinal implícito no sinal de carga de ruído obsoleto ocorre quando tanto o noise_level quanto o noise_offset são zero. Nesse caso, é pouco claro se a sinalização implícita de SF obsoleta ou nova é usada. Para evitar tal ambiguidade, o valor de stereo_filling deve ser definido de modo adiantado. No presente exemplo, é apropriado definir stereo_filling = 0 se os dados de carregamento de ruído consistem em todos zeros, visto que isso é o que codificadores obsoletos sem sinal de capacidade de carregamento estéreo durante o carregamento de ruído não devem ser aplicados em um quadro.
[0100] O problema que permanece para ser resolvido no caso de sinalização compatível semirretrógrada implícita é como sinalizar stereo_filling == 1 e nenhum carregamento de ruído ao mesmo tempo. Conforme explicado, os dados de carregamento de ruído não devem ser todos zeros, e se uma magnitude de ruído de zero for solicitada, noise_level ((noise_offset & 14)/2 conforme mencionado acima) deve se igualar a 0. Isso deixa apenas um noise_offset ((noise_offset & 1)*16 conforme mencionado acima) maior do que 0 como uma solução. O noise_offset, entretanto, é considerado no caso de carregamento estéreo durante a aplicação dos fatores de escala, até mesmo se noise_level for zero. Felizmente, um codificador pode compensar pelo fato de que um noise_offset de zero não deve ser transmissível alterando-se os fatores de escala afetados de modo que, mediante gravação de fluxo de bits, os mesmos contenham um deslocamento que é desfeito no decodificador por meio de noise_offset. Isso permite a dita sinalização implícita na modalidade acima no custo de um aumento potencial em fator de escala data rate. Então, a sinalização de carregamento estéreo no pseudocódigo da descrição acima pode ser mudada conforme a seguir, com o uso do bit de sinalização de SF salvo para transmitir noise_offset com 2 bits (4 valores) em vez de 1 bit: if ((noiseFilling) && (common_window) && (noise_level == 0) && (noise_offset > 0)) { stereo_filling = 1; noise_level = (noise_offset & 28) / 4; noise_offset = (noise_offset & 3) * 8; } else { stereo_filling = 0; }
[0101] Por questão de completude, a Figura 6 mostra um codificador de áudio paramétrico de acordo com uma modalidade do presente pedido. Primeiro, o codificador da Figura 6 que é geralmente indicado com o uso de referência numérica 90 compreende um transformador 92 para realizar a transformação da versão não distorcida original do sinal de áudio reconstruído na saída 32 da Figura 2. Conforme descrito em relação à Figura 3, uma transformada com sobreposição pode ser usada com uma troca entre comprimentos de transformada diferentes com janelas de transformada correspondentes em unidades de quadros 44. O comprimento de transformada diferente e as janelas de transformada correspondentes são ilustradas na Figura 3 com o uso de referência numérica 104. De uma maneira similar à Figura 2, a Figura 6 se concentra em uma porção de codificador 90 responsável por codificar um canal do sinal de áudio multicanal, enquanto outra porção de domínio de canal de decodificador 90 é geralmente indicada com o uso de referência numérica 96 na Figura 6.
[0102] Na saída de transformador 92, as linhas espectrais e fatores de escala são não quantizados e substancialmente nenhuma perda de conversão em código ocorreu ainda. A saída de espectrograma pelo transformador 92 entra em um quantizador 98 que é configurado para quantizar as linhas espectrais da saída de espectrograma pelo transformador 92, espectro por espectro, definição e com o uso de fatores de escala preliminares das bandas de fator de escala. Isto é, na saída do quantizador 98, os fatores de escala preliminares e resultado de coeficientes de linha espectral correspondentes, e uma sequência de uma carga de ruído 16’, um filtro de TNS opcional inversa 28a’, preditor intercanal 24’, decodificador de MS 26’ e filtro de TNS inversa 28b’ são sequencialmente conectados de modo a fornecer o codificador 90 da Figura 6 com a habilidade para obter uma versão final reconstruída do espectro atual conforme obtenível no lado de decodificador na entrada do provedor de mixagem de redução (consultar Figura 2). No caso de uso de predição intercanal 24’ e/ou uso do carregamento de ruído intercanal na versão que forma o ruído intercanal com o uso da mixagem de redução do quadro anterior, o codificador 90 também compreende um provedor de mixagem de redução 31’ de modo a formar uma mixagem de redução das versões finais reconstruídas dos espectros dos canais do sinal de áudio multicanal. Obviamente, para economizar as computações, em vez da versão final, as versões não quantizadas originais dos ditos espectros dos canais podem ser usadas pelo provedor de mixagem de redução 31’ na formação da mixagem de redução.
[0103] O codificador 90 pode usar as informações na versão final reconstruída disponível dos espectros a fim de realizar a predição espectral interquadro, como a versão possível supracitada de realizar a predição intercanal com o uso de uma estimativa de parte imaginária, e/ou a fim de realizar o controle de taxa, isto é, a fim de determinar, em um ciclo de controle de taxa, que os parâmetros possíveis finalmente convertidos em código no fluxo de dados 30 pelo codificador 90 são definidos em um sentido otimizado de taxa/distorção.
[0104] Por exemplo, um tal conjunto de parâmetros em tal ciclo de predição e/ou ciclo de controle de taxa de codificador 90 é, para cada banda de fator de escala quantizada a zero identificada pelo identificador 12’, o fator de escala da respectiva banda de fator de escala que foi meramente definida de modo preliminar pelo quantizador 98. Em uma predição e/ou laço de controle de taxa de codificador 90, o fator de escala das bandas de fator de escala quantizadas a zero é definido em algum sentido otimizado de modo psicoacústico ou de taxa/distorção de modo a determinar o nível de ruído alvo supracitado juntamente com, conforme descrito acima, um parâmetro de modificação opcional também transportado pelo fluxo de dados para o quadro correspondente para o lado de decodificador. Deve ser observado que esse fator de escala pode ser computado com o uso de apenas as linhas espectrais do espectro e o canal ao qual pertence (isto é, o espectro “alvo”, conforme descrito anteriormente) ou, alternativamente, pode ser determinado com o uso tanto das linhas espectrais do espectro de canal “alvo” e, além disso, as linhas espectrais do outro espectro de canal ou do espectro de mixagem de redução do quadro anterior (isto é, o “espectro de fonte, conforme introduzido anteriormente) obtido a partir do provedor de mixagem de redução 31’. Em particular, para estabilizar o nível de ruído alvo e para reduzir as flutuações de nível temporal nos canais de áudio decodificados nos quais o carregamento de ruído intercanal é aplicado, o fator de escala alvo pode ser computado com o uso de uma relação entre uma medida de energia das linhas espectrais na banda de fator de escala “alvo”, e uma medida de energia das linhas espectrais colocalizadas na região de fonte correspondente. Finalmente, conforme observado acima, essa região de “fonte” pode se originar de uma versão final reconstruída de outro canal ou da mixagem de redução do quadro anterior, ou se a complexidade de codificador deve ser reduzida, a versão não quantizada original do mesmo outro canal ou a mixagem de redução das versões não quantizadas originais dos espectros do quadro anterior.
[0105] A seguir, a codificação multicanal e a decodificação multicanal de acordo com as modalidades são explicadas. Em modalidades, o processador multicanal 204 do aparelho 201 para decodificação da Figura 1a pode ser, por exemplo, configurado para conduzir uma ou mais das tecnologias abaixo que são descritas em relação à decodificação multicanal de ruído.
[0106] Entretanto, primeiro, antes de descrever a decodificação multicanal, a codificação multicanal de acordo com modalidades é explicada com referência à Figura 7 até a Figura 9 e, então, a decodificação multicanal é explicada com referência à Figura 10 e à Figura 12.
[0107] Agora, a codificação multicanal de acordo com as modalidades é explicada com referência à Figura 7 até a Figura 9 e a Figura 11:
[0108] A Figura 7 mostra um diagrama de blocos esquemáticos de um aparelho (codificador) 100 para codificar um sinal multicanal 101 que tem pelo menos três canais CH1 a CH3.
[0109] O aparelho 100 compreende um processador de iteração 102, um codificador de canal 104 e uma interface de saída 106.
[0110] O processador de iteração 102 é configurado para calcular, em uma primeira etapa de iteração, os valores de correlação intercanal entre cada par dos pelo menos três canais CH1 a CH3 para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar, e para processar o par selecionado com o uso de uma operação de processamento multicanal para derivar os parâmetros multicanais MCH_PAR1 para o par selecionado e para derivar os primeiros canais processados P1 e P2. A seguir, tais canais processados P1 e tal canal processado P2 também pode ser denominado como o canal de combinação P1 e um canal de combinação P2, respectivamente. Adicionalmente, o processador de iteração 102 é configurado para realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados P1 ou P2 para derivar os parâmetros multicanais MCH_PAR2 e os segundos canais processados P3 e P4.
[0111] Por exemplo, conforme indicado na Figura 7, o processador de iteração 102 pode calcular na primeira etapa de iteração um valor de correlação intercanal entre um primeiro par dos pelo menos três canais CH1 a CH3, em que o primeiro par consiste em um primeiro canal CH1 e um segundo canal CH2, um valor de correlação intercanal entre um segundo par dos pelo menos três canais CH1 a CH3, em que o segundo par consiste no segundo canal CH2 e um terceiro canal CH3, e um valor de correlação intercanal entre um terceiro par dos pelo menos três canais CH1 a CH3, em que o terceiro para consiste no primeiro canal CH1 e no terceiro canal CH3.
[0112] Na Figura 7, supõe-se que, na primeira etapa de iteração, o terceiro par que consiste no primeiro canal CH1 e no terceiro canal CH3 compreende o valor de correlação intercanal mais alto, de modo que o processador de iteração 102 selecione, na primeira etapa de iteração, o terceiro par que tem o valor de correlação intercanal mais alto e processe o par selecionado, isto é, o terceiro par, com o uso de uma operação de processamento multicanal para derivar os parâmetros multicanais MCH_PAR1 para o par selecionado e para derivar os primeiros canais processados P1 e P2.
[0113] Adicionalmente, o processador de iteração 102 pode ser configurado para calcular, na segunda etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais CH1 a CH3 e os canais processados P1 e P2, para selecionar, na segunda etapa de iteração, um par que tem um valor de correlação intercanal mais alto ou que tem um valor acima de um limiar. Assim, o processador de iteração 102 pode ser configurado para não selecionar o par selecionado da primeira etapa de iteração na segunda etapa de iteração (ou em qualquer etapa de iteração adicional).
[0114] Com referência ao exemplo mostrado na Figura 7, o processador de iteração 102 pode calcular adicionalmente um valor de correlação intercanal entre um quarto par de canais que consistem no primeiro canal CH1 e no primeiro canal processado P1, um valor de correlação intercanal entre um quinto par que consiste no primeiro canal CH1 e o segundo canal processado P2, um valor de correlação intercanal entre um sexto par que consiste no segundo canal CH2 e o primeiro canal processado P1, um valor de correlação intercanal entre um sétimo par que consiste no segundo canal CH2 e no segundo canal processado P2, um valor de correlação intercanal entre um oitavo par que consiste no terceiro canal CH3 e o primeiro canal processado P1, um valor de intercorrelação entre um nono par que consiste no terceiro canal CH3 e o segundo canal processado P2, e um valor de correlação intercanal entre um décimo par que consiste no primeiro canal processado P1 e no segundo canal processado P2.
[0115] Na Figura 7, supõe-se que na segunda etapa de iteração, o sexto par que consiste no segundo canal CH2 e o primeiro canal processado P1 compreende o valor de correlação intercanal mais alto, de modo que o processador de iteração 102 selecione na segunda etapa de iteração o sexto par e processe o par selecionado, isto é, o sexto par, com o uso de uma operação de processamento multicanal para derivar parâmetros multicanais MCH_PAR2 para o par selecionado e para derivar segundos canais processados P3 e P4.
[0116] O processador de iteração 102 pode ser configurado para selecionar apenas um par quando a diferença de nível do par for menor do que um limiar, em que o limiar é menor do que 40 dB, 25 dB, 12 dB ou menor do que 6 dB. Assim, os limiares de 25 ou 40 dB correspondem aos ângulos de rotação de 3 ou 0,5 graus.
[0117] O processador de iteração 102 pode ser configurado para calcular valores de correlação de número inteiro normalizado, em que o processador de iteração 102 pode ser configurado para selecionar um par, quando o valor de correlação de número inteiro é maior do que, por exemplo, 0,2 ou preferencialmente 0,3.
[0118] Adicionalmente, o processador de iteração 102 pode fornecer os canais resultantes a partir do processamento multicanal até o canal codificador 104. Por exemplo, com referência à Figura 7, o processador de iteração 102 pode fornecer o terceiro canal processado P3 e o quarto canal processado P4 resultante do processamento multicanal realizado na segunda etapa de iteração e no segundo canal processado P2 resultante do processamento multicanal realizado na primeira etapa de iteração para o canal codificador 104. Assim, o processador de iteração 102 pode fornecer apenas aqueles canais processados ao canal codificador 104 os quais não são processados (adicionalmente) em uma etapa de iteração subsequente. Conforme mostrado na Figura 7, o primeiro canal processado P1 não é fornecido ao canal codificador 104 visto que é adicionalmente processado na segunda etapa de iteração.
[0119] O canal codificador 104 pode ser configurado para codificar os canais P2 a P4 resultantes a partir do processamento de iteração (ou processamento multicanal) realizado pelo processador de iteração 102 para obter os canais codificados E1 a E3.
[0120] Por exemplo, o canal codificador 104 pode ser configurado para usar codificadores mono (ou caixas mono, ou ferramentas mono) 120_1 a 120_3 para codificar os canais P2 a P4 resultantes do processamento de iteração (ou processamento multicanal). As caixas mono podem ser configuradas para codificar os canais de modo que menos bits sejam necessários para codificar um canal que tem menos energia (ou uma amplitude menor) do que para codificar um canal que tem mais energia (ou uma amplitude mais alta). As caixas mono 120_1 a 120_3 podem ser, por exemplo, codificadores de áudio com base em transformação. Adicionalmente, o canal codificador 104 pode ser configurado para usar codificadores estéreo (por exemplo, codificadores estéreo paramétricos, ou codificadores estéreo com perdas) para codificar os canais P2 a P4 resultantes do processamento de iteração (ou processamento multicanal).
[0121] A interface de saída 106 pode ser configurada para gerar e sinal multicanal codificado 107 que tem os canais codificados E1 a E3 e os parâmetros multicanais MCH_PAR1 e MCH_PAR2.
[0122] Por exemplo, a interface de saída 106 pode ser configurada para gerar o sinal multicanal codificado 107 como um sinal em série ou corrente de bits em série, e para que os parâmetros multicanais MCH_PAR2 estejam no sinal codificado 107 antes dos parâmetros multicanais MCH_PAR1. Desse modo, um decodificador, uma modalidade que será descrita posteriormente em relação à Figura 10, receberá os parâmetros multicanais MCH_PAR2 antes dos parâmetros multicanais MCH-PAR1.
[0123] Na Figura 7, o processador de iteração 102 realiza de modo exemplificativo duas operações de processamento multicanal, uma operação de processamento multicanal na primeira etapa de iteração e uma operação de processamento multicanal na segunda etapa de iteração. Naturalmente, o processador de iteração 102 também pode realizar as operações de processamento multicanal adicionais em etapas de iteração subsequentes. Assim, o processador de iteração 102 pode ser configurado para realizar as etapas de iteração até um critério de terminação de iteração ser alcançado. O critério de terminação de iteração pode ser aquele que um número máximo de etapas de iteração seja igual ou mais alto do que um número total de canais do sinal multicanal 101 por dois, ou em que o critério de terminação de iteração é, quando os valores de correlação intercanal não têm um valor maior do que o limiar, o limiar é preferencialmente maior do que 0,2 ou o limiar preferencialmente é 0,3. Em modalidades adicionais, o critério de terminação de iteração pode ser aquele que um número máximo de etapas de iteração é igual a ou mais alto do que um número total de canais do sinal multicanal 101, ou em que o critério de terminação de iteração é, quando os valores de correlação intercanal não têm um valor maior do que o limiar, o limiar é preferencialmente maior do que 0,2 ou o limiar é preferencialmente 0,3.
[0124] Com propósitos de ilustração, as operações de processamento multicanal realizadas pelo processador de iteração 102 na primeira etapa de iteração e a segunda etapa de iteração são ilustradas de modo exemplificativo na Figura 7 processando-se as caixas 110 e 112. As caixas de processamento 110 e 112 podem ser implantadas em hardware ou software. As caixas de processamento 110 e 112 podem ser caixas estéreo, por exemplo.
[0125] Assim, a dependência de sinal intercanal pode ser explorada aplicando-se hierarquicamente as ferramentas de conversão em código estéreo conjunta. Em contraste com abordagens de MPEG anteriores, os pares de sinal a serem processados não são predeterminados por um trajeto de sinal fixado (por exemplo, árvore de conversão em código estéreo), mas podem ser mudados dinamicamente para adaptar para inserir características de sinal. As entradas da caixa estéreo real podem ser (1) canais não processados, como os canais CH1 a CH3, (2) saídas de uma caixa estéreo anterior, como os sinais processados P1 a P4, ou (3) um canal de combinação de um canal não processado e uma saída de uma caixa estéreo anterior.
[0126] O processamento dentro da caixa estéreo 110 e 112 pode ter base em predição (como a caixa de predição complexa em USAC) ou base em KLT/PCA (os canais de entrada são girados (por exemplo, por meio de uma matriz de rotação 2x2) no codificador para maximizar a compactação de energia, isto é, concentrar a energia de sinal em um canal, no decodificador, em que os sinais girados serão transformados novamente para as direções de sinal de entrada original).
[0127] Em uma possível implantação do codificador 100, (1) o codificador calcula uma correlação de intercanal entre cada par de canal e seleciona um par de sinal adequado dos sinais de entrada e aplica a ferramenta estéreo aos canais selecionados; (2) o codificador recalcula a correlação intercanal entre todos os canais (os canais não processados, assim como os canais de saída intermediários processados) e seleciona um par de sinais adequado dos sinais de entrada e aplica a ferramenta estéreo aos canais selecionados; e (3) o codificador repete a etapa (2) até toda a correlação intercanal estar abaixo de um limiar ou se um número máximo de transformações for aplicado.
[0128] Conforme já mencionado, os pares de sinal a serem processados pelo codificador 100, ou mais precisamente, o processador de iteração 102, não são predeterminados por um trajeto de sinal fixo (por exemplo, árvore de conversão em código estéreo), mas podem ser mudados dinamicamente para se adaptar a características de sinal de entrada. Assim, o codificador 100 (ou o processador de iteração 102) pode ser configurado para construir a árvore estéreo em dependência dos pelo menos três canais CH1 a CH3 do sinal multicanal (entrada) 101. Em outras palavras, o codificador 100 (ou o processador de iteração 102) pode ser configurado para construir a árvore estéreo com base em uma correlação intercanal (por exemplo, calculando-se, na primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais CH1 a CH3, para selecionar, na primeira etapa de iteração, um par que tem o valor mais alto ou um valor acima de um limiar, e calculando-se, em uma segunda etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais e canais anteriormente processados, para selecionar, na segunda etapa de iteração, um par que tem o valor mais alto ou um valor acima de um limiar). De acordo com uma abordagem, uma matriz de correlação pode ser calculada para possivelmente cada iteração que contém as correlações de todos, em iterações anteriores, os canais possivelmente processados.
[0129] Conforme indicado acima, o processador de iteração 102 pode ser configurado para derivar parâmetros multicanais MCH_PAR1 para o par selecionado na primeira etapa de iteração e para derivar parâmetros multicanais MCH_PAR2 para o par selecionado na segunda etapa de iteração. Os parâmetros multicanais MCH_PAR1 podem compreender uma primeira identificação de par de canais (ou índice) que identifica (ou sinaliza) o par de canais selecionado na primeira etapa de iteração, em que os parâmetros multicanais MCH_PAR2 podem compreender uma segunda identificação de par de canal (ou índice) que identifica (ou sinaliza) o par de canais selecionados na segunda etapa de iteração.
[0130] A seguir, uma indexação eficaz de sinais de entrada é descrita. Por exemplo, os pares de canal podem ser sinalizados de modo eficaz com o uso de um índice único para cada par, dependente do número total de canais. Por exemplo, a indexação de pares para seis canais pode ser conforme mostrado na tabela a seguir:
[0131] Por exemplo, na tabela acima, o índice 5 pode sinalizar o par que consiste no primeiro canal e no segundo canal. De modo similar, o índice 6 pode sinalizar o par que consiste no primeiro canal e no terceiro canal.
[0132] O número total de índices de par de canais possíveis para n canais pode ser calculado para: numPairs = numChannels*(numChannels-1)/2 Então, o número de bits necessário para sinalizar um par de canais se acumula a: numBits = piso(log2(numPairs-1))+1
[0133] Adicionalmente, o codificador 100 pode usar uma máscara de canal. A configuração da ferramenta multicanal pode conter uma máscara de canal que indica para quais canais a ferramenta está ativa. Desse modo, LFEs (LFE = efeitos de baixa frequência/canais de intensificação) podem ser removidos da indexação de par de canais, o que permite uma codificação mais eficaz. Por exemplo, para uma definição 11.1, isso reduz o número de índices de par de canais de 12*11/2=66 a 11*10/2 = 55, que permite sinalizar com 6 em vez de 7 bits. Esse mecanismo também pode ser usado para excluir os canais destinados a serem objetos mono (por exemplo, faixas de múltiplas linguagens). Na decodificação da máscara de canal (channelMask), um mapa de canal (channelMap) pode ser gerado para permitir o remapeamento de índices de par de canais para canais de decodificador.
[0134] Além disso, o processador de iteração 102 pode ser configurado para derivar, para um primeiro quadro, uma pluralidade de indicações de par selecionado, em que a interface de saída 106 pode ser configurada para incluir, no sinal multicanal 107, para um segundo quadro, que segue o primeiro quadro, um indicador mantido, que indica que o segundo quadro tem a mesma pluralidade de indicações de par selecionado como o primeiro quadro.
[0135] O indicador mantido ou o sinalizador de árvore mantido pode ser usado para sinalar que nenhuma árvore nova é transmitida, mas a última árvore estéreo deve ser usada. Isso pode ser usado para evitar múltiplas transmissões da mesma configuração árvore estéreo, se as propriedades de correlação de canal permanecerem estacionárias por um tempo mais longo.
[0136] A Figura 8 mostra um diagrama de blocos esquemático de uma caixa estéreo 110, 112. A caixa estéreo 110, 112 compreende entradas para um primeiro sinal de entrada I1 e um segundo sinal de entrada I2, e saídas para um primeiro sinal de saída O1 e um segundo sinal de saída O2. Conforme indicado na Figura 8, as dependências dos sinais de saída O1 e O2 dos sinais de entrada I1 e I2 podem ser descritas pelos parâmetros s S1 a S4.
[0137] O processador de iteração 102 pode usar (ou compreender) caixas estéreo 110,112 a fim de realizar as operações de processamento multicanal nos canais de entrada e/ou canais processados a fim de derivar (adicionalmente) os canais processados. Por exemplo, o processador de iteração 102 pode ser configurado para usar caixas estéreo de rotação com base em predição ou com base em KLT genéricas (Transformação de Karhunen-Loève) 110,112.
[0138] Um codificador genérico (ou caixa estéreo de lado de codificador) pode ser configurado para codificar os sinais de entrada I1 e I2 para obter os sinais de saída O1 e O2 com base na equação:
[0139] Um decodificador genérico (ou caixa estéreo de lado de decodificador) pode ser configurado para decodificar os sinais de entrada I1 e I2 para obter os sinais de saída O1 e O2 com base na equação:
[0140] Um codificador com base em predição (ou caixa estéreo de lado decodificador) pode ser configurado para codificar os sinais de entrada I1 e I2 para obteros sinais de saída O1 e O2 com base na equaçãoem que p é o coeficiente de predição.
[0141] Um decodificador com base em predição (ou caixa estéreo de lado de decodificador) pode ser configurado para decodificar os sinais de entrada I1 e I2 para obter os sinais de saída O1 e O2 com base na equação:
[0142] Um codificador de rotação com base em KLT (ou caixa estéreo de lado de codificador) pode ser configurado para codificar os sinais de entrada I1 a I2 para obter os sinais de saída O1 e O2 com base na equação:
[0143] Um decodificador de rotação com base em KLT (ou caixa estéreo de lado de decodificador) pode ser configurado para decodificar os sinais de entrada I1 e I2 para obter os sinais de saída O1 e O2 com base na equação (rotação inversa):
[0144] A seguir, um cálculo do ângulo de rotação α para a rotação com base em KLT é descrito.
[0145] O ângulo de rotação a para a rotação com base em KLT pode ser definido como: com cxy sendo as entradas de uma matriz de correlação não normalizada, em que c11( c22 são as energias de canal.
[0146] Isso pode ser implantado com o uso da função atan2 para permitir a diferenciação entre correlações negativas no numerador e diferença de energia negativa no denominador: alfa = 0,5*atan2(2*correlação[ch1][ch2], (correlação[ch1][ch1] - correlação[ch2][ch2]));
[0147] Adicionalmente, o processador de iteração 102 pode ser configurado para calcular uma correlação intercanal com o uso de um quadro de cada canal que compreende uma pluralidade de bandas para que um valor de correlação intercanal único para a pluralidade de bandas seja obtido, em que o processador de iteração 102 pode ser configurado para realizar o processamento multicanal para cada uma dentre a pluralidade de bandas para que os parâmetros multicanais sejam obtidos a partir de cada uma dentre a pluralidade de bandas.
[0148] Assim, o processador de iteração 102 pode ser configurado para calcular parâmetros estéreo no processamento multicanal, em que o processador de iteração 102 pode ser configurado para realizar apenas um processamento estéreo em bandas, em que um parâmetro estéreo é mais alto do que um limiar quantizado a zero definido por um quantizador estéreo (por exemplo, codificador de rotação com base em KLT). Os parâmetros estéreo podem ser, por exemplo, MS Ligado/Desligado ou ângulos de rotação ou coeficientes de predição).
[0149] Por exemplo, o processador de iteração 102 pode ser configurado para calcular ângulos de rotação no processamento multicanal, em que o processador de iteração 102 pode ser configurado para realizar apenas um processamento de rotação em bandas, em que um ângulo de rotação é mais alto do que um limiar quantizado a zero definido por um quantizador de ângulo de rotação (por exemplo, codificador de rotação com base em KLT).
[0150] Desse modo, o codificador 100 (ou interface de saída 106) pode ser configurado para transmitir as informações de transformação/rotação como um parâmetro para o espectro completo (caixa de banda completa) ou como parâmetros dependentes de múltiplas frequências para partes do espectro.
[0151] O codificador 100 pode ser configurado para gerar o fluxo de bits 107 com base nas tabelas a seguir:TABELA 1 — SINTAXE DE mpegh3daExtElementConfig()
TABELA 21 — SINTAXE DE MCCConfig(),
TABELA 32 — SINTAXE DE MultichannelCodingBoxBandWise()
TABELA 4 — SINTAXE DE MultichannelCodingBoxFullband()
TABELA 5 — SINTAXE DE MultichannelCodingFrame()
TABELA 6 — VALOR DE usacExtElementTypeTABELA 7 — INTERPRETAÇÃO DE BLOCOS DE DADOS PARA DECODIFICAÇÃO DE CARGA ÚTIL DE EXTENSÃO
[0152] A Figura 9 mostra um diagrama de blocos esquemático de um processador de iteração 102, de acordo com uma modalidade. Na modalidade mostrada na Figura 9, o sinal multicanal 101 é um sinal de canal 5.1 que tem seis canais: um canal esquerdo L, um canal direito R, um canal surround esquerdo Ls, um canal surround direito Rs, um canal central C e um canal de efeitos de baixa frequência LFE.
[0153] Conforme indicado na Figura 9, o canal LFE não é processado pelo processador de iteração 102. Isso pode ser o caso visto que os valores de correlação intercanal entre o canal LFE e cada um dos outros cinco canais L, R, Ls, Rs, e C são pequenos, ou visto que a máscara de canal indica para não processar o canal LFE, o que será suposto a seguir.
[0154] Em uma primeira etapa de iteração, o processador de iteração 102 calcula os valores de correlação intercanal entre cada par dos cinco canais L, R, Ls, Rs, e C, para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar. Na Figura 9, supõe-se que o canal esquerdo L e o canal direito R que tem o valor mais alto, de modo que o processador de iteração 102 processe o canal esquerdo L e o canal direito R com o uso de uma caixa estéreo (ou ferramenta estéreo) 110, que realiza a operação de processamento multicanal, para derivar o primeiro e o segundo canais processados P1 e P2.
[0155] Em uma segunda etapa de iteração, o processador de iteração 102 calcula valores de correlação intercanal entre cada par dos cinco canais L, R, Ls, Rs, e C e os canais processados P1 e P2, para selecionar, na segunda etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar. Na Figura 9, supõe-se que o canal surround esquerdo Ls e o canal surround direito Rs têm o valor mais alto, de modo que o processador de iteração 102 processe o canal surround esquerdo Ls e o canal surround direito Rs com o uso da caixa estéreo (ou ferramenta estéreo) 112, para derivar o terceiro e o quarto canais processados P3 e P4.
[0156] Em uma terceira etapa de iteração, o processador de iteração 102 calcula os valores de correlação intercanal entre cada par dos cinco canais L, R, Ls, Rs, e C e os canais processados P1 a P4, para selecionar, na terceira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar. Na Figura 9, supõe-se que o primeiro canal processado P1 e o terceiro canal processado P3 têm o valor mais alto, de modo que o processador de iteração 102 processe o primeiro canal processado P1 e o terceiro canal processado P3 com o uso da caixa estéreo (ou ferramenta estéreo) 114, para derivar o quinto e o sexto canais processados P5 e P6.
[0157] Em uma quarta etapa de iteração, o processador de iteração 102 calcula os valores de correlação intercanal entre cada par dos cinco canais L, R, Ls, Rs, e C e os canais processados P1 a P6, para selecionar, na quarta etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar. Na Figura 9, supõe-se que o quinto canal processado P5 e o canal central C têm o valor mais alto, de modo que o processador de iteração 102 processe o quinto canal processado P5 e o canal central C com o uso da caixa estéreo (ou ferramenta estéreo) 115, para derivar o sétimo e o oitavo canais processados P7 e P8.
[0158] As caixas estéreo 110 a 116 podem ser caixas estéreo de MS, isto é, caixas de estereofonia médias/laterais configuradas para fornecer um canal médio e um canal lateral. O canal médio pode ser a soma dos canais de entrada da caixa estéreo, em que o canal lateral pode ser a diferença entre os canais de entrada da caixa estéreo. Adicionalmente, as caixas estéreo 110 e 116 podem ser caixas de rotação ou caixas de predição estéreo.
[0159] Na Figura 9, o primeiro canal processado P1, o terceiro canal processado P3 e o quinto canal processado P5 podem ser canais médios, em que o segundo canal processado P2, o quarto canal processado P4 e o sexto canal processado P6 podem ser canais laterais.
[0160] Adicionalmente, conforme indicado na Figura 9, o processador de iteração 102 pode ser configurado para realizar o cálculo, a seleção e o processamento na segunda etapa de iteração e, se aplicável, em qualquer etapa de iteração adicional com o uso dos canais de entrada L, R, Ls, Rs, e C e (apenas) os canais médios P1, P3 e P5 dos canais processados. Em outras palavras, o processador de iteração 102 pode ser configurado para não usar os canais laterais P1, P3 e P5 dos canais processados no cálculo, na seleção e no processamento na segunda etapa de iteração e, se aplicável, em qualquer etapa de iteração adicional.
[0161] A Figura 11 mostra um fluxograma de um método 300 para codificar um sinal multicanal que tem pelo menos três canais. O método 300 compreende uma etapa 302 de calcular, em uma primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais, selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar, e processar o par selecionado com o uso de uma operação de processamento multicanal para derivar os parâmetros multicanais MCH_PAR1 para o par selecionado e para derivar os primeiros canais processados; uma etapa 304 de realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados para derivar os parâmetros multicanais MCH_PAR2 e os segundos canais processados; uma etapa 306 de codificar canais resultantes de um processamento de iteração realizado pelo processador de iteração para obter canais codificados; e uma etapa 308 de gerar um sinal multicanal codificado que tem os canais codificados e o primeiro e os parâmetros multicanais MCH_PAR2.
[0162] A seguir, a decodificação multicanal é explicada.
[0163] A Figura 10 mostra um diagrama de blocos esquemático de um aparelho (decodificador) 200 para decodificar um sinal multicanal codificado 107 que tem canais codificados E1 a E3 e pelo menos dois parâmetros multicanais MCH_PAR1 e MCH_PAR2.
[0164] O aparelho 200 compreende um decodificador de canal 202 e um processador multicanal 204.
[0165] O decodificador de canal 202 é configurado para decodificar os canais codificados E1 a E3 para obter os canais decodificados em D1 a D3.
[0166] Por exemplo, o decodificador de canal 202 pode compreender pelo menos três decodificadores mono (ou caixas mono, ou ferramentas mono) 206_1 a 206_3, em que cada um dos decodificadores mono 206_1 a 206_3 pode ser configurado para decodificar um dos pelo menos três canais codificados E1 a E3, para obter o respectivo canal decodificado E1 a E3. Os decodificadores mono 206_1 a 206_3 podem ser, por exemplo, decodificadores de áudio com base em transformação.
[0167] O processador multicanal 204 é configurado para realizar um processamento multicanal com o uso de um segundo par dos canais decodificados identificados pelos parâmetros multicanais MCH_PAR2 e com o uso dos parâmetros multicanais MCH_PAR2 para obter os canais processados, e para realizar um processamento multicanal adicional com o uso de um primeiro par de canais identificados pelos parâmetros multicanais MCH_PAR1 e com o uso dos parâmetros multicanais MCH_PAR1, em que o primeiro par de canais compreende pelo menos um canal processado.
[0168] Conforme indicado na Figura 10 a título de exemplo, os parâmetros multicanais MCH_PAR2 podem indicar (ou sinalizar) que o segundo par de canais decodificados consiste no primeiro canal decodificado D1 e no segundo canal decodificado D2. Desse modo, o processador multicanal 204 realiza um processamento multicanal com o uso do segundo par dos canais decodificados que consiste no primeiro canal decodificado D1 e no segundo canal decodificado D2 (identificado pelos parâmetros multicanais MCH_PAR2) e com o uso dos parâmetros multicanais MCH_PAR2, para obter os canais processados P1* e P2*. Os parâmetros multicanais MCH_PAR1 podem indicar que o primeiro par de canais decodificados consiste no primeiro canal processado P1* e no terceiro canal decodificado D3. Desse modo, o processador multicanal 204 realiza o processamento multicanal adicional com o uso desse primeiro par de canais decodificados que consiste no primeiro canal processado P1* e no terceiro canal decodificado D3 (identificado pelos parâmetros multicanais MCH_PAR1) e com o uso dos parâmetros multicanais MCH_PAR1, para obter os canais processados P3* e P4*.
[0169] Adicionalmente, o processador multicanal 204 pode fornecer o terceiro canal processado P3* como o primeiro canal CH1, o quarto canal processado P4* como o terceiro canal CH3 e o segundo canal processado P2* como o segundo canal CH2.
[0170] Supondo-se que o decodificador 200 mostrado na Figura 10 receba o sinal multicanal codificado 107 a partir do codificador 100 mostrado na Figura 7, o primeiro canal decodificado D1 do decodificador 200 pode ser equivalente ao terceiro canal processado P3 do codificador 100, em que o segundo canal decodificado D2 do decodificador 200 pode ser equivalente ao quarto canal processado P4 do codificador 100, e em que o terceiro canal decodificado D3 do decodificador 200 pode ser equivalente ao segundo canal processado P2 do codificador 100. Adicionalmente, o primeiro canal processado P1* do decodificador 200 pode ser equivalente ao primeiro canal processado P1 do codificador 100.
[0171] Adicionalmente, o sinal multicanal codificado 107 pode ser um sinal em série, em que os parâmetros multicanais MCH_PAR2 são recebidos, no decodificador 200, antes dos parâmetros multicanais MCH_PAR1. Nesse caso, o processador multicanal 204 pode ser configurado para processar os canais decodificados em uma ordem, na qual os parâmetros multicanais MCH_PAR1 e MCH_PAR2 são recebidos pelo decodificador. No exemplo mostrado na Figura 10, o decodificador recebe os parâmetros multicanais MCH_PAR2 antes dos parâmetros multicanais MCH_PAR1, e realiza, desse modo, o processamento multicanal com o uso do segundo par dos canais decodificados (que consiste no primeiro e no segundo canais decodificados D1 e D2) identificados pelos parâmetros multicanais MCH_PAR2 antes de realizar o processamento multicanal com o uso do primeiro par dos canais decodificados (que consiste no primeiro canal processado P1* e no terceiro canal decodificado D3) identificado pelo parâmetro multicanal MCH_PAR1.
[0172] Na Figura 10, o processador multicanal 204 realiza de modo exemplificativo duas operações de processamento multicanal. Com propósitos de ilustração, as operações de processamento multicanal realizadas pelo processador multicanal 204 são ilustradas na Figura 10 por caixas de processamento 208 e 210. As caixas de processamento 208 e 210 podem ser implantadas em hardware ou software. As caixas de processamento 208 e 210 podem ser, por exemplo, caixas estéreo, conforme discutido acima com referência ao codificador 100, como decodificadores genéricos (ou caixas estéreo de lado de decodificador), decodificadores com base em predição (ou caixas estéreo de lado de decodificador) ou decodificadores de rotação com base em KLT (ou caixas estéreo de lado de decodificador).
[0173] Por exemplo, o codificador 100 pode usar codificadores de rotação com base em KLT (ou caixas estéreo de lado de codificador). Nesse caso, o codificador 100 pode derivar os parâmetros multicanais MCH_PAR1 e MCH_PAR2 de modo que os parâmetros multicanais MCH_PAR1 e MCH_PAR2 compreendam ângulos de rotação. Os ângulos de rotação podem ser codificados de modo diferencial. Portanto, o processador multicanal 204 do decodificador 200 pode compreender um decodificador diferencial para decodificar de modo diferencial os ângulos de rotação codificados de modo diferencial.
[0174] O aparelho 200 pode compreender adicionalmente uma interface de entrada 212 configurada para receber e processar o sinal multicanal codificado 107, para fornecer os canais codificados E1 a E3 para o decodificador de canal 202 e os parâmetros multicanais MCH_PAR1 e MCH_PAR2 para o processador multicanal 204.
[0175] Conforme já mencionado, um indicador mantido (ou sinalizador de árvore mantido) pode ser usado para sinalizar que nenhuma árvore nova é transmitida, mas a última árvore estéreo deve ser usada. Isso pode ser usado para evitar múltiplas transmissões da mesma configuração árvore estéreo, se as propriedades de correlação de canal permanecerem estacionárias por um tempo mais longo.
[0176] Portanto, quando o sinal multicanal codificado 107 compreende, para um primeiro quadro, os parâmetros multicanais MCH_PAR1 e MCH_PAR2 e, para um segundo quadro, que segue o primeiro quadro, o indicador mantido, o processador multicanal 204 pode ser configurado para realizar o processamento multicanal ou o processamento multicanal adicional no segundo quadro para o mesmo segundo par ou o mesmo primeiro par de canais conforme usado no primeiro quadro.
[0177] O processamento multicanal e o processamento multicanal adicional podem compreender um processamento estéreo com o uso de um parâmetro estéreo, em que, para bandas de fator de escala individuais ou grupos de bandas de fator de escala dos canais decodificados D1 a D3, um primeiro parâmetro estéreo é incluído no parâmetro multicanal MCH_PAR1 e um segundo parâmetro estéreo é incluído no parâmetro multicanal MCH_PAR2. Assim, o primeiro parâmetro estéreo e o segundo parâmetro estéreo podem ser do mesmo tipo, como ângulos de rotação ou coeficientes de predição. Naturalmente, o primeiro parâmetro estéreo e o segundo parâmetro estéreo podem ser de tipos diferentes. Por exemplo, o primeiro parâmetro estéreo pode ser um ângulo de rotação, em que o segundo parâmetro estéreo pode ser um coeficiente de predição, ou vice-versa.
[0178] Adicionalmente, os parâmetros multicanais MCH_PAR1 e MCH_PAR2 podem compreender uma máscara de processamento multicanal que indica quais bandas de fator de escala são processadas em multicanal e quais bandas de fator de escala não são processadas em multicanal. Assim, o processador multicanal 204 pode ser configurado para não realizar o processamento multicanal nas bandas de fator de escala indicadas pela máscara de processamento multicanal.
[0179] Os parâmetros multicanais MCH_PAR1 e MCH_PAR2 podem incluir, cada um, uma identificação de par de canal (ou índice), em que o processador multicanal 204 pode ser configurado para decodificar as identificações de par de canais (ou índices) com o uso de uma regra de decodificação predefinida ou uma regra de decodificação indicada no sinal multicanal codificado.
[0180] Por exemplo, os pares de canal podem ser sinalizados de modo eficaz com o uso de um índice único para cada par, dependente do número total de canais, conforme descrito acima com referência ao codificador 100.
[0181] Adicionalmente, a regra de decodificação pode ser uma regra de decodificação de Huffman, em que o processador multicanal 204 pode ser configurado para realizar uma decodificação de Huffman das identificações de par de canais.
[0182] O sinal multicanal codificado 107 pode compreender adicionalmente um indicador de permissão de processamento multicanal que indica apenas um subgrupo dos canais decodificados, para os quais o processamento multicanal é permitido e que indica pelo menos um canal decodificado para o qual o processamento multicanal não é permitido. Assim, o processador multicanal 204 pode ser configurado para não realizar qualquer processamento multicanal para o pelo menos um canal decodificado, para o qual o processamento multicanal não é permitido, conforme indicado pelo indicador de permissão de processamento multicanal.
[0183] Por exemplo, quando o sinal multicanal é um sinal de canal 5.1, o indicador de permissão de processamento multicanal pode indicar que o processamento multicanal é apenas permitido para os 5 canais, isto é, direito R, esquerdo L, direito surround Rs, esquerdo surround LS e central C, em que o processamento multicanal não é permitido para o canal LFE.
[0184] Para o processo de decodificação (decodificação de índices de par de canais), o código c a seguir pode ser usado. Assim, para todos os pares de canais, o número de canais com processamento de KLT ativo (nChannels) assim como o número de pares de canais (numPairs) do quadro atual é necessário. maxNumPairIdx = nChannels*(nChannels-1)/2 - 1; numBits = floor(log2(maxNumPairIdx)+1; pairCounter = 0; for (chan1=1; chan1 < nChannels; chan1++) { for (chan0=0; chan0 < chan1; chan0++) { if (pairCounter == pairIdx) { channelPair[0] = chan0; channelPair[1] = chan1; return; } else pairCounter++; } } }
[0185] Para decodificar os coeficientes de predição para ângulos não em bandas, o código c a seguir pode ser usado. for(pair=0; pair<numPairs; pair++) { mctBandsPerWindow = numMaskBands[pair]/windowsPerFrame; if(delta_code_time[pair] > 0) { lastVal = alpha_prev_fullband[pair]; } else { lastVal = DEFAULT_ALPHA; } newAlpha = lastVal + dpcm_alpha[pair][0]; if(newAlpha >= 64) { newAlpha -= 64; } for (band=0; band < numMaskBands; band++){ /* definir todos os ângulos para ângulo de banda completa */ pairAlpha[pair][band] = newAlpha; /* definir ângulos anteriores de acordo com mctMask */ if(mctMask[pair][band] > 0) { alpha_prev_frame[pair][band%mctBandsPerWindow] = newAlpha; } else { alpha_prev_frame[pair][band%mctBandsPerWindow] = DEFAULT_ALPHA; } } alpha_prev_fullband[pair] = newAlpha; for(band=bandsPerWindow ; band<MAX_NUM_MC_BANDS; band++) { alpha_prev_frame[pair][band] = DEFAULT_ALPHA; } }
[0186] Para decodificar os coeficientes de predição para ângulos KLT não em bandas, o código c a seguir pode ser usado. for(pair=0; pair<numPairs; pair++) { mctBandsPerWindow = numMaskBands[pair]/windowsPerFrame; for(band=0; band<numMaskBands[pair]; band++) { if(delta_code_time[pair] > 0) { lastVal = alpha_prev_frame[pair][band%mctBandsPerWindow]; } else { if ((band % mctBandsPerWindow) == 0) { lastVal = DEFAULT_ALPHA; } } if (msMask[pair][band] > 0) { newAlpha = lastVal + dpcm_alpha[pair][band]; if(newAlpha >= 64) { newAlpha -= 64; } pairAlpha[pair][band] = newAlpha; alpha_prev_frame[pair][band%mctBandsPerWindow] = newAlpha; lastVal = newAlpha; } else { alpha_prev_frame[pair][band%mctBandsPerWindow] = DEFAULT_ALPHA; /* -45° */ } /* redefinir ângulo de banda completa */ alpha_prev_fullband[pair] = DEFAULT_ALPHA; } for(band=bandsPerWindow ; band<MAX_NUM_MC_BANDS; band++) { alpha_prev_frame[pair][band] = DEFAULT_ALPHA; } }
[0187] Para evitar as diferenças de ponto de flutuação de funções trigonométricas em plataformas diferentes, as tabelas de consulta a seguir para converter índices de ângulo diretamente para sen/cos devem ser usadas: tabIndexToSinAlpha[64] = { -1,000000f,-0,998795f,-0,995185f,-0,989177f,-0,980785f,-0,970031f,- 0,956940f,-0,941544f, -0,923880f,-0,903989f,-0,881921f,-0,857729f,-0,831470f,-0,803208f,- 0,773010f,-0,740951f, -0,707107f,-0,671559f,-0,634393f,-0,595699f,-0,555570f,-0,514103f,- 0,471397f,-0,427555f, -0,382683f,-0,336890f,-0,290285f,-0,242980f,-0,195090f,-0,146730f,- 0,098017f,-0,049068f, 0,000000f, 0,049068f, 0,098017f, 0,146730f, 0,195090f, 0,242980f, 0,290285f, 0,336890f, 0,382683f, 0,427555f, 0,471397f, 0,514103f, 0,555570f, 0,595699f, 0,634393f, 0,671559f, 0,707107f, 0,740951f, 0,773010f, 0,803208f, 0,831470f, 0,857729f, 0,881921f, 0,903989f, 0,923880f, 0,941544f, 0,956940f, 0,970031f, 0,980785f, 0,989177f, 0,995185f, 0,998795f }; tabIndexToCosAlpha[64] = { 0,000000f, 0,049068f, 0,098017f, 0,146730f, 0,195090f, 0,242980f, 0,290285f, 0,336890f, 0,382683f, 0,427555f, 0,471397f, 0,514103f, 0,555570f, 0,595699f, 0,634393f, 0,671559f, 0,707107f, 0,740951f, 0,773010f, 0,803208f, 0,831470f, 0,857729f, 0,881921f, 0,903989f, 0,923880f, 0,941544f, 0,956940f, 0,970031f, 0,980785f, 0,989177f, 0,995185f, 0,998795f, 1,000000f, 0,998795f, 0,995185f, 0,989177f, 0,980785f, 0,970031f, 0,956940f, 0,941544f, 0,923880f, 0,903989f, 0,881921f, 0,857729f, 0,831470f, 0,803208f, 0,773010f, 0,740951f, 0,707107f, 0,671559f, 0,634393f, 0,595699f, 0,555570f, 0,514103f, 0,471397f, 0,427555f, 0,382683f, 0,336890f, 0,290285f, 0,242980f, 0,195090f, 0,146730f, 0,098017f, 0,049068f };
[0188] Para decodificação da conversão em código multicanal, o código c a seguir pode ser usado para a abordagem com base em rotação de KLT. decode_mct_rotation() { for (pair=0; pair < self->numPairs; pair++) { mctBandOffset = 0; /* rotação de MCT inversa */ for (win = 0, group = 0; group <num_window_groups; group++) { for (groupwin = 0; groupwin < window_group_length[group]; groupwin++, win++) { *dmx = spectral_data[ch1][win]; *res = spectral_data[ch2][win]; apply_mct_rotation_wrapper(self,dmx,res,&alphaSfb[mctBandOffset], &mctMask[mctBandOffset],mctBandsPerWindow, alpha, totalSfb,pair,nSamples); } mctBandOffset += mctBandsPerWindow; } } }
[0189] Para processamento em bandas, o código c a seguir pode ser usado. apply_mct_rotation_wrapper(self, *dmx, *res, *alphaSfb, *mctMask, mctBandsPerWindow, alpha, totalSfb, pair, nSamples) { sfb = 0; if (self->MCCSignalingType == 0) { } else if (self->MCCSignalingType == 1) { /* aplicar caixa de banda completa */ if (!self->bHasBandwiseAngles[pair] && !self->bHasMctMask[pair]) { apply_mct_rotation(dmx, res, alphaSfb[0], nSamples); } else { /* aplicar processamento em bandas */ for (i = 0; i< mctBandsPerWindow; i++) { if (mctMask[i] == 1) { startLine = swb_offset [sfb]; stopLine = (sfb+2<totalSfb)? swb_offset [sfb+2] : swb_offset [sfb+1]; nSamples = stopLine-startLine; apply_mct_rotation(&dmx[startLine], &res[startLine], alphaSfb[i], nSamples); } sfb += 2; /* quebrar condição */ if (sfb >= totalSfb) { break; } } } } else if (self->MCCSignalingType == 2) { } else if (self->MCCSignalingType == 3) { apply_mct_rotation(dmx, res, alpha, nSamples); } }
[0190] Para uma aplicação de rotação de KLT, o código c a seguir pode ser usado. apply_mct_rotation(*dmx, *res, alpha, nSamples) { for (n=0;n<nSamples;n++) { L = dmx[n] * tabIndexToCosAlpha [alphaIdx] - res[n] * tabIndexToSinAlpha [alphaIdx]; R = dmx[n] * tabIndexToSinAlpha [alphaIdx] + res[n] * tabIndexToCosAlpha [alphaIdx]; dmx[n] = L; res[n] = R; } }
[0191] A Figura 12 mostra um fluxograma de um método 400 para decodificar um sinal multicanal codificado que tem canais codificados e pelo menos dois parâmetros multicanais MCH_PAR1, MCH_PAR2. O método 400 compreende uma etapa 402 de decodificar os canais codificados para obter canais decodificados; e uma etapa 404 de realizar um processamento multicanal com o uso de um segundo par dos canais decodificados identificados pelos parâmetros multicanais MCH_PAR2 e com o uso dos parâmetros multicanais MCH_PAR2 para obter os canais processados, e realizar um processamento multicanal adicional com o uso de um primeiro par de canais identificados pelos parâmetros multicanais MCH_PAR1 e com o uso dos parâmetros multicanais MCH_PAR1, em que o primeiro par de canais compreende pelo menos um canal processado.
[0192] A seguir, o carregamento estéreo em conversão em código multicanal de acordo com modalidades é explicado:
[0193] Conforme já destacado, um efeito indesejável de quantização espectral pode ser que a quantização pode resultar possivelmente em orifícios espectrais. Por exemplo, todos os valores espectrais, uma banda de frequência em particular, pode ser definida em zero no lado de codificador como resultado de quantização. Por exemplo, o valor exato de tais linhas espectrais antes da quantização pode ser relativamente baixo e a quantização pode, então, levar a uma situação, em que os valores espectrais de todas as linhas espectrais, por exemplo, em uma banda de frequência particular, foram definidos em zero. No lado de decodificador, durante a decodificação, isso pode levar a orifícios espectrais indesejáveis.
[0194] A Ferramenta de Codificação Multicanal (MCT) em MPEG-H permite a adaptação a dependências intercanal variáveis, mas, devido ao uso de elementos de canal únicos em configurações de operação típicas, a mesma não permite Carregamento Estéreo.
[0195] Conforme pode ser visto na Figura 14, a Ferramenta de Conversão em Código Multicanal combina os três ou mais canais que são codificados de uma maneira hierárquica. Entretanto, a maneira como a Ferramenta de Conversão em Código Multicanal (MCT) combina os canais diferentes durante a codificação varia de quadro para quadro dependendo das propriedades de sinal atuais dos canais.
[0196] Por exemplo, na Figura 14, a situação (a), para gerar um primeiro quadro de sinal de áudio codificado, a Ferramenta de Conversão em Código Multicanal (MCT) pode combinar um primeiro canal Ch1 e um segundo canal CH2 para obter um primeiro canal de combinação (canal processado) P1 e um segundo canal de combinação P2. Então, a Ferramenta de Conversão em Código Multicanal (MCT) pode combinar o primeiro canal de combinação P1 e o terceiro canal CH3 para obter um terceiro canal de combinação P3 e um quarto canal de combinação P4. A Ferramenta de Conversão em Código Multicanal (MCT) pode codificar, então, o segundo canal de combinação P2, o terceiro canal de combinação P3 e o quarto canal de combinação P4 para gerar o primeiro quadro.
[0197] Então, por exemplo, na situação (b) da Figura 14, para gerar um segundo quadro de sinal de áudio codificado (de modo temporal) que sucede o primeiro quadro de sinal de áudio codificado, a Ferramenta de Conversão em Código Multicanal (MCT) pode combinar o primeiro canal CH1‘ e o terceiro canal CH3‘ para obter um primeiro canal de combinação P1‘ e um segundo canal de combinação P2‘. Então, a Ferramenta de Conversão em Código Multicanal (MCT) pode combinar o primeiro canal de combinação P1 ‘ e o segundo canal CH2‘ para obter um terceiro canal de combinação P3‘ e um quarto canal de combinação P4‘. A Ferramenta de Conversão em Código Multicanal (MCT) pode codificar, então, o segundo canal de combinação P2‘, o terceiro canal de combinação P3‘ e o quarto canal de combinação P4‘ para gerar o segundo quadro.
[0198] Conforme pode ser visto a partir da Figura 14, a maneira em que o segundo, terceiro e quarto canais combinatórios do primeiro quadro foram gerados na situação da Figura 14 (a) difere de modo significativo da maneira em que o segundo, terceiro e quarto canais combinatórios do segundo quadro, respectivamente, foram gerados na situação da Figura 14 (b), visto que combinações diferentes de canais foram usadas para gerar os respectivos canais de combinação P2, P3 e P4 e P2‘, P3‘, P4‘, respectivamente.
[0199] Inter alia, as modalidades da presente invenção têm base nas constatações a seguir:
[0200] Conforme pode ser visto na Figura 7 e na Figura 14, os canais de combinação P3, P4 e P2 (ou P2‘, P3‘ e P4‘ na situação (b) da Figura 14) são alimentados no canal codificador 104. Inter alia, o canal codificador 104 pode, por exemplo, conduzir a quantização, de modo que os valores espectrais dos canais P2, P3 e P4 possam ser definidos a zero devido à quantização. As amostras espectrais colocadas lado a lado de modo espectral podem ser codificadas como uma banda espectral, em que cada banda espectral pode compreender um número de amostras espectrais.
[0201] O número de amostras espectrais de uma banda de frequência pode ser diferente para bandas de frequência diferentes. Por exemplo, as bandas de frequência em uma faixa de frequência mais baixa podem, por exemplo, compreender menos amostras espectrais, (por exemplo, 4 amostras espectrais) do que as bandas de frequência em uma faixa de frequência mais alta, que podem, por exemplo, compreender 16 amostras de frequência. Por exemplo, as bandas críticas de escala de Bark podem definir as bandas de frequência usadas.
[0202] Uma situação particularmente indesejável pode surgir, quando todas as amostras espectrais de uma banda de frequência foram definidas a zero após a quantização. Se tal situação pode surgir, de acordo com a presente invenção, é aconselhável conduzir o carregamento estéreo. Além disso, a presente invenção tem base na constatação de que pelo menos não apenas o ruído pseudoaleatório deve ser gerado.
[0203] Em vez de ou além de adicionar ruído (pseudo) aleatório, de acordo com modalidades da presente invenção, se, por exemplo, na Figura 14, situação (b), todos os valores espectrais de uma banda de frequência de canal P4‘ foram definidos a zero, um canal de combinação que teria de ser gerado na mesma maneira ou similar em relação ao canal P3‘ seria uma base muito adequada para gerar ruído para carregamento na banda de frequência que foi quantizada a zero.
[0204] Entretanto, de acordo com modalidades da presente invenção, é preferencial não usar os valores espectrais do canal de combinação P3‘ do quadro atual/do ponto no tempo atual como uma base para carregar uma banda de frequência do canal de combinação P4‘, o qual compreende apenas valores espectrais que são zero, devido ao fato de que tanto o canal de combinação P3‘ quanto o canal de combinação P4‘ forem gerados com base no canal P1 ‘ e P2‘ e, desse modo, o uso do canal de combinação P3‘ do ponto no tempo atual resultaria em um mero movimento panorâmico.
[0205] Por exemplo, se P3‘ for um canal médio de P1 ‘ e P2‘ (por exemplo, P3‘ = 0,5 * (P1 ‘ + P2‘)) e P4‘ se for um canal lateral de P1 ‘ e P2‘ (por exemplo, P4‘ = 0,5 * (P1‘ - P2‘)), então, introduzir, por exemplo, valores espectrais atenuados de P3‘ em uma banda de frequência de P4‘ resultaria meramente em um movimento panorâmico.
[0206] Em vez disso, o uso de canais de um ponto no tempo anterior para gerar valores espectrais para carregar os orifícios espectrais no canal de combinação P4‘ atual seria preferido. De acordo com as constatações da presente invenção, uma combinação de canais de um quadro anterior que corresponde ao canal de combinação P3‘ do quadro atual seria uma base desejável para gerar as amostras espectrais para carregar os orifícios espectrais de P4‘.
[0207] Entretanto, o canal de combinação P3 que foi gerado na situação da Figura 10 (a) para o quadro anterior não corresponde ao canal de combinação P3‘ do quadro atual, visto que o canal de combinação P3 do quadro anterior foi gerado de maneira diferente em relação ao canal de combinação P3‘ do quadro atual.
[0208] De acordo com constatações de modalidades da presente invenção, uma aproximação do canal de combinação P3‘ deve ser gerada com base nos canais reconstruídos de um quadro anterior no lado de decodificador.
[0209] A Figura 10 (a) ilustra uma situação de codificador em que os canais CH1, CH2 e CH3 são codificados para um quadro anterior gerando-se E1, E2 e E3. O decodificador recebe os canais E1, E2, e E3 e reconstrói os canais CH1, CH2 e CH3 que foram codificados. Alguma perda de conversão em código pode ter ocorrido, mas ainda assim, os canais gerados CH1*, CH2* e CH3* que aproximam CH1, CH2 e CH3 serão relativamente similares aos canais originais CH1, CH2 e CH3, para que CH1* « CH1; CH2* « CH2 e CH3* « CH3. De acordo com modalidades, o decodificador mantém os canais CH1*, CH2* e CH3*, gerados para um quadro anterior em um armazenamento temporário para usar os mesmos para carregamento de ruído em um quadro atual.
[0210] A Figura 1a, que ilustra um aparelho 201 para decodificação de acordo com modalidades, é agora descrito em mais detalhes:
[0211] O aparelho 201 da Figura 1a é adaptado para decodificar um sinal multicanal codificado anterior de um quadro anterior para obter três ou mais canais de saída de áudio anteriores, e é configurado para decodificar um sinal multicanal codificado atual 107 de um quadro atual para obter três ou mais canais de saída de áudio atuais.
[0212] O aparelho compreende uma interface 212, um decodificador de canal 202, um processador multicanal 204 para gerar os três ou mais canais de saída de áudio atuais CH1, CH2, CH3, e um módulo de carregamento de ruído 220.
[0213] A interface 212 é adaptada para receber um sinal multicanal codificado atual 107, e para receber as informações secundárias que compreendem os primeiros parâmetros multicanais MCH_PAR2.
[0214] O decodificador de canal 202 é adaptado para decodificar o sinal multicanal codificado atual do quadro atual para obter um conjunto de três ou mais canais decodificados D1, D2, D3 do quadro atual.
[0215] O processador multicanal 204 é adaptado para selecionar um primeiro par selecionado de dois canais decodificados D1, D2 do conjunto de três ou mais canais decodificados D1, D2, D3 dependendo dos primeiros parâmetros multicanais MCH_PAR2.
[0216] Como exemplo, isso é ilustrado na Figura 1a pelos dois canais D1, D2 que são alimentados na caixa de processamento (opcional) 208.
[0217] Além disso, o processador multicanal 204 é adaptado para gerar um primeiro grupo de dois ou mais canais processados P1*, P2* com base no dito primeiro par selecionado de dois canais decodificados D1, D2 para obter um conjunto atualizado de três ou mais canais decodificados D3, P1*, P2*.
[0218] No exemplo, em que os dois canais D1 e D2 são alimentados na caixa (opcional) 208, dois canais processados P1* e P2* são gerados a partir dos dois canais selecionados D1 e D2. O conjunto atualizado dos três ou mais canais decodificados compreendem, então, o canal D3 que foi deixado e não modificado e compreende adicionalmente P1* e P2* que foram gerados a partir de D1 e D2.
[0219] Antes do processador multicanal 204 gerar o primeiro par de dois ou mais canais processados P1*,P2* com base no dito primeiro par selecionado de dois canais decodificados D1, D2, o módulo de carregamento de ruído 220 é adaptado para identificar o pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados D1, D2, uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar um canal de mistura com o uso de dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e para carregar as linhas espectrais da uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com o uso de linhas espectrais do canal de mistura, em que o módulo de carregamento de ruído 220 é adaptado para selecionar os dois ou mais canais de saída de áudio anteriores que são usados para gerar o canal de mistura dos três ou mais canais de saída de áudio anteriores dependendo das informações secundárias.
[0220] Desse modo, o módulo de carregamento de ruído 220 analisa se há bandas de frequência que têm apenas valores espectrais que são zero, e carrega adicionalmente as bandas de frequência vazias encontradas com ruído gerado. Por exemplo, uma banda de frequência pode, por exemplo, ter 4 ou 8 ou 16 linhas espectrais e, quando todas as linhas espectrais de uma banda de frequência foram quantizadas a zero, então, o módulo de carregamento de ruído 220 carrega o ruído gerado.
[0221] Um conceito particular de modalidades que pode ser empregado pelo módulo de carregamento de ruído 220 que especifica como gerar e carregar ruído é denominado Carregamento Estéreo.
[0222] Nas modalidades da Figura 1a, o módulo de carregamento de ruído 220 interage com o processador multicanal 204. Por exemplo, em uma modalidade, quando o módulo de carregamento de ruído deseja processar dois canais, por exemplo, por uma caixa de processamento, o mesmo alimenta esses canais ao módulo de carregamento de ruído 220, e o módulo de carregamento de ruído 220 verifica se as bandas de frequência foram quantizadas a zero, e carrega tais bandas de frequência, se detectadas.
[0223] Em outras modalidades ilustradas pela Figura 1b, o módulo de carregamento de ruído 220 interage com o decodificador de canal 202. Por exemplo, já quando o decodificador de canal decodifica o sinal multicanal codificado para obter os três ou mais canais decodificados D1, D2 e D3, o módulo de carregamento de ruído pode, por exemplo, verificar se as bandas de frequência foram quantizadas a zero, e, por exemplo, carrega tais bandas de frequência, se detectadas. Em tal modalidade, o processador multicanal 204 pode garantir que todos os orifícios espectrais já foram fechados antes carregando-se o ruído.
[0224] Em modalidades adicionais (não mostradas), o módulo de carregamento de ruído 220 pode tanto interagir com o decodificador de canal quanto com o processador multicanal. Por exemplo, quando o decodificador de canal 202 gera os canais decodificados D1, D2 e D3, o módulo de carregamento de ruído 220 já pode verificar se as bandas de frequência foram quantizadas a zero, logo após o decodificador de canal 202 ter gerado as mesmas, mas pode apenas gerar o ruído e carregar as respectivas bandas de frequência, quando o processador multicanal 204 processa realmente esses canais.
[0225] Por exemplo, o ruído aleatório, uma operação computacional barata pode ser inserida e qualquer uma das bandas de frequência que foram quantizadas a zero, mas o módulo de carregamento de ruído pode carregar o ruído que foi gerado a partir de canais de saída de áudio anteriormente gerados apenas se forem realmente processados pelo processador multicanal 204. Em tais modalidades, entretanto, antes de inserir o ruído aleatório, uma detecção se os orifícios espectrais devem existir deve ser feita ates de inserir ruído aleatório, e essas informações devem ser mantidas na memória, devido ao fato de que, após inserir o ruído aleatório, as respectivas bandas de frequência têm, então, valores espectrais diferentes de zero, devido ao fato de que o ruído aleatório foi inserido.
[0226] Em modalidades, o ruído aleatório é inserido em bandas de frequência que foram quantizadas a zero além do ruído gerado com base nos sinais de saída de áudio anteriores.
[0227] Em algumas modalidades, a interface 212 pode ser, por exemplo, adaptada para receber o sinal multicanal codificado atual 107, e para receber as informações secundárias que compreendem os primeiros parâmetros multicanais MCH_PAR2 e segundo parâmetros multicanais MCH_PAR1.
[0228] O processador multicanal 204 pode ser, por exemplo, adaptado para selecionar um segundo par selecionado de dois canais decodificados P1*, D3 a partir do conjunto atualizado de três ou mais canais decodificados D3, P1*, P2* dependendo dos segundos parâmetros multicanais MCH_PAR1, em que pelo menos um canal P1* do segundo par selecionado dentre dois canais decodificados (P1*, D3) é um canal do primeiro par de dois ou mais canais processados P1*,P2*, e
[0229] O processador multicanal 204 pode, por exemplo, ser adaptado para gerar um segundo grupo de dois ou mais canais processados P3*,P4* com base no dito segundo par selecionado de dois canais decodificados P1*, D3 para atualizar adicionalmente o conjunto atualizado de três ou mais canais decodificados.
[0230] Um exemplo para tal modalidade pode ser visto nas Figuras 1a e 1b, quando a caixa de processamento (opcional) 210 recebe o canal D3 e o canal processado P1* e processa os mesmos para obter os canais processados P3* e P4* para que o conjunto atualizado adicional dos três canais decodificados compreenda P2*, que não foi modificado pela caixa de processamento 210, e o P3* e o P4* gerados.
[0231] As caixas de processamento 208 e 210 foram marcadas na Figura 1a e na Figura 1b como opcionais. Isso é para mostrar que, embora seja uma possibilidade usar caixas de processamento 208 e 210 para implantar o processador multicanal 204, várias outras possibilidades existem, como implantar exatamente o processador multicanal 204. Por exemplo, em vez de usar uma caixa de processamento diferente 208, 210 para cada processamento diferente de dois (ou mais) canais, a mesma caixa de processamento pode ser reusada, ou o processador multicanal 204 pode implantar o processamento de dois canais sem o uso de caixas de processamento 208, 210 (como subunidades do processador multicanal 204).
[0232] De acordo com uma modalidade adicional, o processador multicanal 204 pode, por exemplo, ser adaptado para gerar o primeiro grupo de dois ou mais canais processados P1*, P2* gerando-se um primeiro grupo de exatamente dois canais processados P1*, P2* com base no dito primeiro par selecionado de dois canais decodificados D1, D2. O processador multicanal 204 pode, por exemplo, ser adaptado para substituir o dito primeiro par selecionado de dois canais decodificados D1, D2 no conjunto de três de mais canais decodificados D1, D2, D3 pelo primeiro grupo de exatamente dois canais processados P1*,P2* para obter o conjunto atualizado de três ou mais canais decodificados D3, P1*, P2*. O processador multicanal 204 pode, por exemplo, ser adaptado para gerar o segundo grupo de dois ou mais canais processados P3*,P4* gerando-se um segundo grupo de exatamente dois canais processados P3*,P4* com base no dito segundo par selecionado de dois canais decodificados P1*, D3. Adicionalmente, o processador multicanal 204 pode, por exemplo, ser adaptado para substituir o dito segundo par selecionado de dois canais decodificados P1*, D3 no conjunto atualizado de três de mais canais decodificados D3, P1*, P2* pelo segundo grupo de exatamente dois canais processados P3*,P4* para atualizar adicionalmente o conjunto atualizado de três ou mais canais decodificados.
[0233] Em tal modalidade, dos dois canais selecionados (por exemplo, os dois canais de entrada de uma caixa de processamento 208 ou 210) exatamente dois canais processados são gerados e exatamente esses dois canais processados substituem os canais selecionados no conjunto dos três ou mais canais decodificados. Por exemplo, a caixa de processamento 208 do processador multicanal 204 substitui os canais selecionados D1 e D2 por P1* e P2*.
[0234] Entretanto, em outras modalidades, uma mixagem de aumento pode ocorrer no aparelho 201 para decodificação, e mais de dois canais processados podem ser gerados a partir dos dois canais selecionados, ou nem todos os canais selecionados podem ser deletados do conjunto atualizado de canais decodificados.
[0235] Uma questão adicional é como gerar o canal de mistura que é usado para gerar o ruído gerado pelo módulo de carregamento de ruído 220.
[0236] De acordo com algumas modalidades, o módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para gerar o canal de mistura com o uso de exatamente dois dentre os três ou mais canais de saída de áudio anteriores em relação aos dois ou mais dos três ou mais canais de saída de áudio anteriores; em que o módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dentre os três ou mais canais de saída de áudio anteriores dependendo das informações secundárias.
[0237] O uso de apenas dois dentre os três ou mais canais de saída anterior auxilia a reduzir a complexidade computacional de calcular o canal de mistura.
[0238] Entretanto, em outras modalidades, mais do que dois canais dentre os canais de saída de áudio anteriores são usados para gerar um canal de mistura, mas o número de canais de saída de áudio anteriores que é considerado é menor do que o número total dos três ou mais canais de saída de áudio anteriores.
[0239] Em modalidades, quando apenas dois dos canais de saída anteriores são considerados, o canal de mistura pode, por exemplo, ser calculado conforme o seguinte:
[0240] Em uma modalidade, o módulo de carregamento de ruído 220 é adaptado para gerar o canal de mistura com o uso de exatamente canais de saída de áudio anteriores com base na fórmula d ou com base na formula em que Dch é o canal de mistura; em que e um primeiro dentre os exatamente dois canais de saída de áudio anteriores; em que é um segundo dentre os exatamente dois canais de saída de áudio anteriores, diferente do primeiro dentre os exatamente dois canais de saída de áudio anteriores, e em que d é um escalar positivo real.
[0241] Em situações típicas, um canal médio’ d pode ser um canal de mistura adequado. Tal abordagem calcula o canal de mistura como um canal médio dos dois canais de saída de áudio anteriores que são considerados.
[0242] Entretanto, em algumas situações, um canal de mistura próximo de zero pode ocorrer quando aplica’ d , por exemplo, quando . Então, pode ser, por exemplo, preferencial usar ’ d como o sinal de mistura. Desse modo, então, um canal lateral (para fora de canais de entrada de fase) usado.
[0243] De acordo com uma abordagem alternativa, o módulo de carregamento de ruído 220 é adaptado para gerar o canal de mistura com o uso de exatamente dois canais de saída de áudio anteriores com base na formula em que é o canal de mistura, em que é um primeiro dentre os exatamente dois canais de saída de áudio anteriores, em que é um segundo dentre os exatamente dois canais de saída de áudio anteriores, diferente do primeiro dentre os exatamente dois canais de saída de áudio anteriores, e em que α é um ângulo de rotação.
[0244] Tal abordagem calcula o canal de mistura conduzindo-se uma rotação dos dois canais de saída de áudio anteriores que são considerados.
[0245] O ângulo de rotação α pode, por exemplo, estar na faixa: -90° < α < 90°.
[0246] Em uma modalidade, o ângulo de rotação pode, por exemplo, estar na faixa: 30° < α < 60°.
[0247] Novamente, em situações típicas, um canal pode ser um canal de mistura adequado. Tal abordagem calcula o canal de mistura como um canal médio dos dois canais de saída de áudio anteriores que são considerados.
[0248] Entretanto, em algumas situações, u canal de mistura próximo de zero pode ocorrer durante a aplicação de por exemplo, quando . Então, pode ser, por exemplo, preferencial usar como o sinal de mistura.
[0249] De acordo com a particular modalidade, as informações secundárias podem, por exemplo, ser informações secundárias atuais atribuídas ao quadro atual, em que a interface 212 pode, por exemplo, ser adaptada para receber informações secundárias anteriores atribuídas ao quadro anterior, em que as informações secundárias anteriores compreendem um ângulo anterior; em que a interface 212 pode ser, por exemplo, adaptada para receber as informações secundárias atuais que compreendem um ângulo atual, e em que o módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para usar o ângulo atual das informações secundárias atuais como o ângulo de rotação a, e é adaptado para não usar o ângulo anterior das informações secundárias anteriores como o ângulo de rotação a.
[0250] Desse modo, em tal modalidade, até mesmo se o canal de mistura for calculado com base nos canais de saída de áudio anteriores, ainda assim, o ângulo atual que é transmitido nas informações secundárias é usado como ângulo de rotação e não um ângulo de rotação anteriormente recebido, embora o canal de mistura seja calculado com base em canais de saída de áudio anteriores que foram gerados com base em um quadro anterior.
[0251] Outro aspecto de algumas modalidades da presente invenção se refere a fatores de escala.
[0252] As bandas de frequência podem, por exemplo, ser bandas de fator de escala.
[0253] De acordo com algumas modalidades, antes do processador multicanal 204 gerar o primeiro par dentre dois ou mais canais processados P1*,P2* com base no dito primeiro par selecionado dentre dois canais decodificados (D1, D2), o módulo de carregamento de ruído (220) pode, por exemplo, ser adaptado para identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados D1, D2, um ou mais bandas de fator de escala sendo a uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e pode, por exemplo, ser adaptado para gerar o canal de mistura com o uso dos ditos dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e para carregar as linhas espectrais da uma ou mais bandas de fator de escala, em que todas as linhas espectrais são quantizadas a zero, com o ruído gerado com o uso das linhas espectrais do canal de mistura dependendo de um fator de escala de cada uma da uma ou mais bandas de fator de escala em que todas as linhas espectrais são quantizadas a zero.
[0254] Em tais modalidades, um fator de escala pode, por exemplo, ser atribuído a cada uma dentre as bandas de fator de escala, e esse fator de escala é considerado durante a geração do ruído com o uso do canal de mistura.
[0255] Em uma modalidade particular, a interface de recebimento 212 pode, por exemplo, ser configurada para receber o fator de escala de cada uma dentre a dita uma ou mais bandas de fator de escala, e o fator de escala de cada uma dentre a dita uma ou mais bandas de fator de escala indica uma energia das linhas espectrais da dita banda de fator de escala antes da quantização. O módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para gerar o ruído de cada uma dentre a uma ou mais bandas de fator de escala, em que todas as linhas espectrais são quantizadas a zero, para que uma energia das linhas espectrais após adicionar o ruído em uma das bandas de frequência corresponda à energia indicada pelo fator de escala para a dita banda de fator de escala.
[0256] Por exemplo, um canal de mistura pode indicar por valores espectrais para quatro linhas espectrais de uma banda de fator de escala em que o ruído deve ser inserido, e esses valores espectrais podem, por exemplo, ser: 0,2; 0,3; 0,5; 0,1.
[0257] Uma energia dessa banda de fator de escala do canal de mistura pode, por exemplo, ser calculada conforme o seguinte: (0,2)2 + (0,3)2 + (0,5)2 + (0,1)2 = 0,39
[0258] Entretanto, o fator de escala para essa banda de fator de escala do canal cujo ruído deve ser carregado pode, por exemplo, ser apenas 0,0039.
[0259] Um fator de atenuação pode, por exemplo, ser calculado conforme o seguinte:
[0260] Desse modo, no exemplo acima,
[0261] Em uma modalidade, cada um dos valores espectrais da banda de fator de escala do canal de mistura que deve ser usado como ruído, é multiplicado com o fator de atenuação:
[0262] Desse modo, cada um dentre os quatro valores espectrais da banda de fator de escala do exemplo acima é multiplicado pelo fator de atenuação e que resulta em valores espectrais atenuados: 0,2 • 0,01 = 0,002 0,3 • 0,01 = 0,003 0,5 • 0,01 = 0,005 0,1 • 0,01 = 0,001
[0263] Esses valores espectrais atenuados podem, por exemplo, ser, então, inseridos na banda de fator de escala do canal cujo ruído deve ser carregado.
[0264] O exemplo acima é igualmente aplicável nos valores logarítmicos substituindo-se as operações acima por suas operações logarítmicas correspondentes, por exemplo, substituindo-se a multiplicação por adição, etc.
[0265] Além disso, além da descrição de modalidades particulares fornecidas acima, outras modalidades do módulo de carregamento de ruído 220 aplicam um, alguns ou todos os conceitos descritos com referência à Figura 2 até a Figura 6.
[0266] Outro aspecto das modalidades da presente invenção se refere à questão com base nas quais os canais de informações dos canais de saída de áudio anteriores são selecionados para serem usados para gerar o canal de mistura para obter o ruído a ser inserido.
[0267] De acordo com uma modalidade, o aparelho de acordo com o módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dentre os três ou mais canais de saída de áudio anteriores dependendo dos primeiros parâmetros multicanais MCH_PAR2.
[0268] Desse modo, em tal modalidade, os primeiros parâmetros multicanais que orientam quanto a quais canais devem ser selecionados para serem processados, também orientam quanto a quais dentre os canais de saída de áudio anteriores devem ser usados para gerar o canal de mistura para gerar o ruído a ser inserido.
[0269] Em uma modalidade, os primeiros parâmetros multicanais MCH_PAR2 podem, por exemplo, indicar dois canais decodificados D1, D2 a partir do conjunto de três ou mais canais decodificados; e o processador multicanal 204 é adaptado para selecionar o primeiro par selecionado de dois canais decodificados D1, D2 a partir do conjunto de três ou mais canais decodificados D1, D2, D3 selecionando-se os dois canais decodificados D1, D2 indicados pelos primeiros parâmetros multicanais MCH_PAR2. Além disso, os segundos parâmetros multicanais MCH_PAR1 podem, por exemplo, indicar dois canais decodificados P1*, D3 a partir do conjunto atualizado de três ou mais canais decodificados. O processador multicanal 204 pode, por exemplo, ser adaptado para selecionar o segundo par selecionado de dois canais decodificados P1*, D3 a partir do conjunto atualizado de três ou mais canais decodificados D3, P1*, P2* selecionando-se os dois canais decodificados P1*, D3 indicados pelos segundos parâmetros multicanais MCH_PAR1.
[0270] Desse modo, em tal modalidade, os canais que são selecionados para o primeiro processamento, por exemplo, o processamento de caixa de processamento 208 na Figura 1a ou Figura 1b não dependem apenas dos primeiros parâmetros multicanais MCH_PAR2. Mais do que isso, esses dois canais selecionados são explicitamente especificados nos primeiros parâmetros multicanais MCH_PAR2.
[0271] De modo semelhante, em tal modalidade, os canais que são selecionados para o segundo processamento, por exemplo, o processamento de caixa de processamento 210 na Figura 1a ou Figura 1b não dependem apenas dos segundos parâmetros multicanais MCH_PAR1. Mais do que isso, esses dois canais selecionados são explicitamente especificados nos segundos parâmetros multicanais MCH_PAR1.
[0272] As modalidades da presente invenção introduzem um esquema de indexação sofisticado para os parâmetros multicanais que são explicados com referência à Figura 15.
[0273] A Figura 15 (a) mostra uma codificação de cinco canais, a saber, os canais Esquerdo, Direito, Central, Esquerdo Surround e Direito Surround, em um lado de codificador. A Figura 15 (b) mostra uma decodificação dos canais codificados E0, E1, E2, E3, E4 para reconstruir os canais Esquerdo, Direito, Central, Esquerdo Surround e Direito Surround.
[0274] Supõe-se que um índice é atribuído a cada um dos cinco canais Esquerdo, Direito, Central, Esquerdo Surround e Direito Surround, a saber NOME DE CANAL DE ÍNDICE 0 Esquerdo 1 Direito 2 Central 3 Esquerdo Surround 4 Direito Surround
[0275] Na Figura 15 (a), no lado de codificador, a primeira operação que é conduzida pode, por exemplo, ser a mistura de canal 0 (Esquerdo) e canal 3 (Esquerdo Surround) na caixa de processamento 192 para obter dois canais processados. Supõe-se que um dos canais processados é um canal médio e o outro canal é um canal lateral. Entretanto, outros conceitos de formar dois canais processados também podem ser aplicados, por exemplo, determinar os dois canais processados conduzindo-se uma operação de rotação.
[0276] Agora, os dois canais processados gerados obtêm os mesmos índices que os índices dos canais que foram usados para o processamento. A saber, um primeiro dentre os canais processados tem índice 0 e um segundo dentre os canais processados tem índice 3. Os parâmetros multicanais determinados para esse processamento podem, por exemplo, ser (0; 3).
[0277] A segunda operação no lado de codificador que é conduzida pode, por exemplo, ser a mistura de canal 1 (Direito) e canal 4 (Direito Surround) na caixa de processamento 194 para obter dois canais processados adicionais. Novamente, os dois canais processados gerados adicionais obtêm os mesmos índices que os índices dos canais que foram usados para o processamento. A saber, um primeiro dentre os canais processados adicionais tem índice 1 e um segundo dentre os canais processados tem índice 4. Os parâmetros multicanais determinados para esse processamento podem, por exemplo, ser (1; 4).
[0278] A terceira operação no lado de codificador que é conduzida pode, por exemplo, ser a mistura de canal processado 0 e canal processado 1 na caixa de processamento 196 para obter outros dois canais processados. Novamente, esses dois canais processados gerados obtêm os mesmos índices que os índices dos canais que foram usados para o processamento. A saber, um primeiro dentre os canais processados adicionais tem índice 0 e um segundo dentre os canais processados tem índice 1. Os parâmetros multicanais determinados para esse processamento podem, por exemplo, ser (0; 1).
[0279] Os canais codificados E0, E1, E2, E3 e E4 são distinguidos por seus índices, a saber, E0 tem índice 0, E1 tem índice 1, E2 tem índice 2, etc.
[0280] As três operações no lado de codificador resultam nos três parâmetros multicanais: (0; 3), (1; 4), (0; 1).
[0281] Visto que o aparelho para decodificação deve realizar as operações de codificador em ordem inversa, a ordem dos parâmetros multicanais pode, por exemplo, ser invertida quando transmitida para o aparelho para decodificação, resultando nos parâmetros multicanais: (0; 1), (1; 4), (0; 3).
[0282] Para o aparelho para decodificação, (0; 1) pode ser denominado primeiros parâmetros multicanais, (1; 4) pode ser denominado segundos parâmetros multicanais e (0; 3) pode ser denominado terceiros parâmetros multicanais.
[0283] No lado de decodificador mostrado na Figura 15 (b), a partir do recebimento dos primeiros parâmetros multicanais (0; 1), o aparelho para decodificação conclui que como uma primeira operação de processamento no lado de decodificador, os canais 0 (E0) e 1 (E1) devem ser processados. Isso é conduzido na caixa 296 da Figura 15 (b). Ambos os canais processados gerados herdam os índices dos canais E0 e E1 que foram usados para gerar os mesmos e, desse modo, os canais processados gerados também têm os índices 0 e 1.
[0284] A partir do recebimento dos segundos parâmetros multicanais (1; 4), o aparelho para decodificação conclui que como uma segunda operação de processamento no lado de decodificador, o canal processado 1 e o canal 4 (E4) devem ser processados. Isso é conduzido na caixa 294 da Figura 15 (b). Ambos os canais processados gerados herdam os índices dos canais 1 e 4 que foram usados para gerar os mesmos e, desse modo, os canais processados gerados também têm os índices 1 e 4.
[0285] A partir do recebimento dos terceiros parâmetros multicanais (0; 3), o aparelho para decodificação conclui que como uma terceira operação de processamento no lado de decodificador, o canal processado 0 e o canal 3 (E3) devem ser processados. Isso é conduzido na caixa 292 da Figura 15 (b). Ambos os canais processados gerados herdam os índices dos canais 0 e 3 que foram usados para gerar os mesmos e, desse modo, os canais processados gerados também têm os índices 0 e 3.
[0286] Como resultado do processamento do aparelho para decodificação, os canais Esquerdo (índice 0), Direito (índice 1), Central (índice 2), Esquerdo Surround (índice 3) e Direito Surround (índice 4) são reconstruídos.
[0287] Supõe-se que, no lado de decodificador, devido à quantização, todos os valores de canal E1 (índice 1) em uma certa banda de fator de escala foram quantizados a zero. Quando o aparelho para decodificação deseja conduzir o processamento na caixa 296, um canal carregado de ruído 1 (canal E1) é desejado.
[0288] Conforme já destacado, as modalidades usam, agora, dois sinais de saída de áudio anteriores para carregamento de ruído do orifício espectral de canal 1.
[0289] Em uma modalidade particular, se um canal com o qual uma operação deve ser conduzida tem bandas de fator de escala que são quantizadas a zero, então, os dois canais de saída de áudio anteriores são usados para gerar o ruído que tem o mesmo número de índice que os dois canais com os quais o processamento deve ser conduzido. No exemplo, se um orifício espectral de canal 1 é detectado antes do processamento na caixa de processamento 296, então, os canais de saída de áudio anteriores que têm índice 0 (canal Esquerdo anterior) e que têm índice 1 (canal Direito anterior) são usados para gerar o ruído para carregar o orifício espectral do canal 1 no lado de decodificador.
[0290] Visto que todos os índices são consistentemente herdados pelos canais processados que resultariam de um processamento, pode se supor que os canais de saída anteriores teriam uma função de gerar os canais que fazem parte do processamento real do lado de decodificador, se os canais de saída de áudio anteriores fossem os canais de saída de áudio atuais. Desse modo, uma estimativa satisfatória para a banda de fator de escala que foi quantizada a zero pode ser alcançada.
[0291] De acordo com modalidades, o aparelho pode, por exemplo, ser adaptado para atribuir um identificador de um conjunto de identificadores para cada canal de saída de áudio anterior dos três ou mais canais de saída de áudio anteriores, para que cada canal de saída de áudio anterior dos três ou mais canais de saída de áudio anteriores seja atribuído a exatamente um identificador do conjunto de identificadores, e para que cada identificador do conjunto de identificadores seja atribuído a exatamente um canal de saída de áudio anterior dentre os três ou mais canais de saída de áudio anteriores. Além disso, o aparelho pode, por exemplo, ser adaptado para atribuir um identificador a partir do dito conjunto de identificadores a cada canal do conjunto dos três ou mais canais decodificados, para que cada canal do conjunto dos três ou mais canais decodificados seja atribuído a exatamente um identificador do conjunto de identificadores, e para que cada identificador do conjunto de identificadores seja atribuído a exatamente um canal do conjunto dos três ou mais canais decodificados.
[0292] Adicionalmente, os primeiros parâmetros multicanais MCH_PAR2 podem, por exemplo, indicar um primeiro par de dois identificadores do conjunto dos três ou mais identificadores. O processador multicanal 204 pode, por exemplo, ser adaptado para selecionar o primeiro par selecionado de dois canais decodificados D1, D2 do conjunto de três ou mais canais decodificados D1, D2, D3 selecionando-se os dois canais decodificados D1, D2 atribuídos aos dois identificadores do primeiro par de dois identificadores.
[0293] O aparelho pode, por exemplo, ser adaptado para atribuir um primeiro dentre os dois identificadores do primeiro par de dois identificadores a um primeiro canal processado do primeiro grupo de exatamente dois canais processados P1*,P2*. Além disso, o aparelho pode, por exemplo, ser adaptado para atribuir um segundo dentre os dois identificadores do primeiro par de dois identificadores a um segundo canal processado do primeiro grupo de exatamente dois canais processados P1*,P2*.
[0294] O conjunto de identificadores, pode, por exemplo, ser um conjunto de índices, por exemplo, um conjunto de números inteiros não negativos (por exemplo, um conjunto que compreende os identificadores 0; 1; 2; 3 e 4).
[0295] Em particular modalidades, os segundos parâmetros multicanais MCH_PAR1 podem, por exemplo, indicar um segundo par de dois identificadores do conjunto dos três ou mais identificadores. O processador multicanal 204 pode, por exemplo, ser adaptado para selecionar o segundo par selecionado de dois canais decodificados P1*, D3 do conjunto atualizado de três ou mais canais decodificados D3, P1*, P2* selecionando-se os dois canais decodificados (D3, P1*) atribuídos aos dois identificadores do segundo par de dois identificadores. Além disso, o aparelho pode, por exemplo, ser adaptado para atribuir um primeiro dentre os dois identificadores do segundo par de dois identificadores a um primeiro canal processado do segundo grupo de exatamente dois canais processados P3*, P4*. Adicionalmente, o aparelho pode, por exemplo, ser adaptado para atribuir um segundo dentre os dois identificadores do segundo par de dois identificadores a um segundo canal processado do segundo grupo de exatamente dois canais processados P3*, P4*.
[0296] Em uma modalidade particular, os primeiros parâmetros multicanais MCH_PAR2 podem, por exemplo, indicar o dito primeiro par de dois identificadores do conjunto dos três ou mais identificadores. O módulo de carregamento de ruído 220 pode, por exemplo, ser adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dos três ou mais canais de saída de áudio anteriores selecionando-se os dois canais de saída de áudio anteriores atribuídos aos dois identificadores do dito primeiro par de dois identificadores.
[0297] Conforme já destacado, a Figura 7 ilustra um aparelho 100 para codificar um sinal multicanal 101 que tem pelo menos três canais (CH1:CH3) de acordo com uma modalidade.
[0298] O aparelho compreende um processador de iteração 102 que é adaptado para calcular, em uma primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais (CH:CH3) para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar, e para processar o par selecionado com o uso de uma operação de processamento multicanal 110,112 para derivar os parâmetros multicanais iniciais MCH_PAR1 para o par selecionado e para derivar os primeiros canais processados P1,P2.
[0299] O processador de iteração 102 é adaptado para realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados P1 para derivar os parâmetros multicanais adicionais MCH_PAR2 e segundos canais processados P3, P4.
[0300] Além disso, o aparelho compreende um canal codificador adaptado para codificar canais (P2:P4) resultante a partir de um processamento de iteração realizado pelo processador de iteração 104 para obter os canais codificados (E1:E3).
[0301] Adicionalmente, o aparelho compreende uma interface de saída 106 adaptada para gerar um sinal multicanal codificado 107 que tem os canais codificados (E1:E3), os parâmetros multicanais iniciais e os parâmetros multicanais adicionais MCH_PAR1, MCH_PAR2.
[0302] Além disso, o aparelho compreende uma interface de saída 106 adaptada para gerar o sinal multicanal codificado 107 para compreende uma informação que indica se um aparelho para decodificação deve ou não carregar as linhas espectrais de um ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[0303] Desse modo, o aparelho para codificação tem capacidade para sinalizar se um aparelho para decodificação deve ou não carregar linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[0304] De acordo com uma modalidade, cada um dos parâmetros multicanais iniciais e os parâmetros multicanais adicionais MCH_PAR1, MCH_PAR2 indicam exatamente dois canais, em que cada um dentre os exatamente dois canais é um dentre os canais codificados (E1:E3) ou um dentre o primeiro ou o segundo canais processados P1, P2, P3, P4 ou um dentre os pelo menos três canais (CH1:CH3).
[0305] A interface de saída 106 pode, por exemplo, ser adaptada para gerar o sinal multicanal codificado 107, para que as informações que indicam se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, compreendem informações que indicam para cada um dos parâmetros iniciais e dos parâmetros multicanais MCH_PAR1, MCH_PAR2, se para o pelo menos um canal dentre os exatamente dois canais que são indicados pelo dito um dos parâmetros iniciais e dos parâmetros multicanais adicionais MCH_PAR1, MCH_PAR2, o aparelho para decodificação deve ou não carregar linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, do dito pelo menos um canal, com os dados espectrais gerados com base nos canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[0306] Adicionalmente abaixo, as modalidades particulares são descritas, em que tais informações são transmitidas com o uso de um valor de hasStereoFilling[pair] que indica se o Carregamento Estéreo em par de canais de MCT atualmente processados deve ser aplicado ou não.
[0307] A Figura 13 ilustra um sistema de acordo com as modalidades.
[0308] O sistema compreende um aparelho 100 para codificação conforme descrito acima, e um aparelho 201 para decodificação de acordo com uma dentre as modalidades descritas acima.
[0309] O aparelho 201 para decodificação é configurado para receber o sinal multicanal codificado 107, gerado pelo aparelho 100 para codificação, a partir do aparelho 100 para codificação.
[0310] Adicionalmente, um sinal multicanal codificado 107 é fornecido.
[0311] O sinal multicanal codificado compreende - canais codificados (E1:E3), e - parâmetros multicanais MCH_PAR1, MCH_PAR2, e - informações que indicam se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com dados espectrais gerados com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[0312] De acordo com uma modalidade, o sinal multicanal codificado pode, por exemplo, compreender como os parâmetros multicanais MCH_PAR1, MCH_PAR2 dois ou mais parâmetros multicanais.
[0313] Cada um dentre os dois ou mais parâmetros multicanais MCH_PAR1, MCH_PAR2 pode, por exemplo, indicar exatamente dois canais, em que cada um dentre os exatamente dois canais é um dos canais codificados (E1:E3) ou um dentre uma pluralidade de canais processados P1, P2, P3, P4 ou um dentre pelo menos três canais (por exemplo, não processados) originais (CH:CH3).
[0314] As informações que indicam se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, pode, por exemplo, compreender as informações que indicam para cada um dentre os dois ou mais parâmetros multicanais MCH_PAR1, MCH_PAR2, se, para pelo menos um canal dentre os exatamente dois canais que são indicados pelo dito um dentre os dois ou mais parâmetros multicanais, o aparelho para decodificação deve carregar ou não as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, do dito pelo menos um canal, com os dados espectrais gerados com base nos canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
[0315] Conforme já destacado adicionalmente abaixo, as modalidades particulares são descritas, em que tais informações são transmitidas com o uso de um valor de hasStereoFilling[pair] que indica se o Carregamento Estéreo no par de canais de MCT atualmente processado deve ser aplicado ou não.
[0316] A seguir, os conceitos gerais e as modalidades particulares são descritas em mais detalhes.
[0317] As modalidades realizam um modo de conversão em código de taxa de bits paramétrica com a flexibilidade do uso de árvores estéreo arbitrárias da combinação de Carregamento Estéreo e MCT.
[0318] As dependências de sinal de intercanal são exploradas aplicando-se hierarquicamente as ferramentas de conversão em código estéreo conjunta conhecidas. Para taxas de bits mais baixas, as modalidades estendem a MCT para usar uma combinação de caixas de conversão em código estéreo discretas e caixas de carregamento estéreo. Desse modo, a conversão em código semiparamétrica pode ser aplicada, por exemplo para canais com conteúdo similar, isto é, pares de canais com a correlação mais alta, enquanto os canais diferentes podem ser convertidos em código independentemente ou por meio de uma representação não paramétrica. Portanto, a sintaxe de fluxo de bits de MCT é estendida para poder sinalizar se o Carregamento Estéreo é permitido e onde é ativo.
[0319] As modalidades realizam uma geração de uma mixagem de redução anterior para pares de carregamento estéreo arbitrários.
[0320] O Carregamento Estéreo depende do uso da mixagem de redução do quadro anterior para melhorar o carregamento de orifícios espectrais causado por quantização no domínio de frequência. Entretanto, em combinação com da MCT, permite-se agora que o conjunto de pares estéreo conjuntamente convertidos em código seja variante em tempo. Consequentemente, dois canais conjuntamente convertidos em código podem não ter sido conjuntamente convertidos em código no quadro anterior, isto é, quando a configuração de árvore mudou.
[0321] Para estimar uma mixagem de redução anterior, os canais de saída anteriormente decodificados são salvos e processados com uma operação estéreo inversa. Para uma dada caixa estéreo, isso é feito com o uso dos parâmetros do quadro atual e os canais de saída decodificados do quadro anterior correspondentes aos índices de canal da caixa estéreo processada.
[0322] Se um sinal de canal de saída anterior não estiver disponível, por exemplo, devido a um quadro independente (um quadro que pode ser decodificado sem considerar dados de quadro anterior) ou uma mudança de comprimento de transformada, o armazenamento temporário de canal anterior do canal correspondente é definido a zero. Desse modo, uma mixagem de redução anterior não zero ainda pode ser computada, enquanto pelo menos um dos sinais de canal anteriores estiver disponível.
[0323] Se a MCT for configurada para usar caixas estéreo com base em predição, a mixagem de redução anterior é calculada com uma operação de MS inversa especificada para pares de carregamento estéreo, preferencialmente com o uso de uma dentre as duas equações a seguir com base em um sinalizador de direção de predição (pred_dir na Sintaxe de MPEG-H). em que d é um real arbitrário e escalar positivo.
[0324] Se a MCT é configurada para usar as caixas estéreo com base em rotação, a mixagem de redução anterior é calculada com o uso de uma rotação com o ângulo de rotação negado.
[0325] Desse modo, para uma rotação dada como: a rotação inversa é calculada como: com sendo a mixagem de redução anterior desejada dos canais de saída anteriores
[0326] As modalidades realizam uma aplicação de Carregamento Estéreo em MCT.
[0327] A aplicação de Carregamento Estéreo para uma caixa estéreo única é descrita em [1], [5].
[0328] Quanto a caixa estéreo única, o Carregamento Estéreo é aplicado ao segundo canal de um dado par de canais de MCT.
[0329] Inter alia, as diferenças de Carregamento Estéreo em combinação com MCT são conforme o seguinte:
[0330] A configuração de árvore de MCT é estendida por um bit de sinalização por quadro a para poder sinalizar se o carregamento estéreo é permitido no quadro atual.
[0331] Na modalidade preferida, se o carregamento estéreo é permitido no quadro atual, um bit adicional para ativar o carregamento estéreo em uma caixa estéreo é transmitido para cada caixa estéreo. Isso é a modalidade preferida visto que permite o controle de lado de codificador sobre o qual as caixas devem ter carregamento estéreo aplicado no decodificador.
[0332] Em uma segunda modalidade, se o carregamento estéreo é permitido no quadro atual, o carregamento estéreo é permitido em todas as caixas estéreo e nenhum bit adicional é transmitido para cada caixa estéreo individual. Nesse caso, a aplicação seletiva de carregamento estéreo nas caixas de MCT individuais é controlada pelo decodificador.
[0333] Os conceitos adicionais e modalidades detalhadas são descritos a seguir:
[0334] As modalidades melhoram a qualidade para pontos operacionais multicanal de baixa taxa de bits.
[0335] Em um elemento de par de canais convertidos em código (CPE) de domínio de frequência (FD), o padrão de Áudio MPEG-H 3D permite o uso de uma ferramenta de Carregamento Estéreo, descrita na subcláusula 5.5.5.4.9 de [1], para carregamento melhorado de modo perceptivo de orifícios espectrais causados por uma quantização vulgar no codificador. Essa ferramenta demonstrou ser benéfica especialmente para estéreo de dois canais convertido em código em taxas de bits média e baixa.
[0336] A ferramenta de Conversão em Código Multicanal (MCT), descrita na seção 7 de [2], foi introduzida, a qual possibilita as definições adaptativas de sinal flexível de pares de canal conjuntamente convertidos em código em uma base por quadro para explorar as dependências intercanal variantes em tempo em uma definição multicanal. O mérito do MCT é particularmente significante quando usado para a conversão em código conjunta dinâmica eficaz de definições multicanal em que cada canal reside em seu elemento de canal único individual (SCE) visto que, diferente de configurações CPE + SCE (+ LFE) tradicionais que devem ser estabelecidas a priori, o mesmo permite que a conversão em código de canal conjunta seja submetida à cascata e/ou reconfigurada de um quadro para o próximo.
[0337] A conversão em código multicanal de som surround sem o uso de CPEs porta atualmente a desvantagem de que as ferramentas de estéreo conjuntas apenas disponíveis em CPEs - conversão em código de M/S preditiva e Carregamento Estéreo - não podem ser exploradas, o que é especialmente desvantajoso em taxas de bits média e baixa. A MCT pode atuar como um substituto para a ferramenta de M/S, mas um substituto para a ferramenta de Carregamento Estéreo está atualmente indisponível.
[0338] As modalidades permitem o uso da ferramenta de Carregamento Estéreo também nos pares de canais do MCT estendendo-se a sintaxe de fluxo de bits de MCT com um respectivo bit de sinalização e generalizando-se a aplicação de Carregamento Estéreo a pares de canais arbitrários independentemente dos seus tipos de elemento de canal.
[0339] Algumas podem, por exemplo, realizar a sinalização de Carregamento Estéreo na MCT conforme a seguir:
[0340] Em um CPE, o uso da ferramenta de Carregamento Estéreo é sinalizado nas informações de carregamento de ruído de FD para o segundo canal, conforme descrito na subcláusula 5.5.5.4.9.4 de [1]. Durante a utilização da MCT, todo canal é potencialmente um “segundo canal” (devido à possibilidade de pares de canais de elemento cruzado). Portanto, é proposto sinalizar explicitamente o Carregamento Estéreo por meio de um bit adicional por par de canais convertidos em código de MCT. Para evitar a necessidade por esse bit adicional, quando o Carregamento Estéreo não é empregado em qualquer par de canais de um exemplo de “árvore” de MCT específico, as duas entradas atualmente reservadas de elemento MCTSignalingType em MultichannelCodingFrame() [2] são utilizadas para sinalizar a presença do bit adicional supracitado por par de canais.
[0341] Uma descrição detalhada é fornecida abaixo.
[0342] Algumas modalidades podem, por exemplo, realizar o cálculo da mixagem de redução anterior conforme a seguir:
[0343] O Carregamento Estéreo em um CPE carrega certas bandas de fator de escala “vazias” do segundo canal por adição dos respectivos coeficientes de MDCT da mixagem de redução do quadro anterior, escaladas de acordo com os fatores de escala transmitidos das bandas correspondentes (que são não usados, de outro modo, visto que as ditas bandas são completamente quantizadas a zero). O processo de adição ponderada, controlado com o uso das bandas de fator de escala do canal- alvo, pode ser empregado de modo idêntico no contexto da MCT. O espectro de fonte para Carregamento Estéreo, isto é, a mixagem de redução do quadro anterior, entretanto, deve ser computada de maneira diferente do que aquela em CPEs, particularmente visto que a configuração de “árvore” de MCT pode ser variante em tempo.
[0344] Na MCT, a mixagem de redução anterior pode ser derivada dos canais de saída decodificados do último quadro (que são armazenados após a decodificação de MCT) com o uso dos parâmetros de MCT do quadro atual para o dado par de canais conjunto. Para um par que aplica a conversão em código conjunta com base em M/S preditiva, a mixagem de redução anterior é igual, como em Carregamento Estéreo de CPE, à soma ou diferença dos espectros de canal apropriados, dependendo do indicador de direção do quadro atual. Para um par estéreo com o uso de conversão em código conjunta com base em rotação de Karhunen-Loève, a mixagem de redução anterior representa uma rotação inversa computada com o ângulo de rotação (ou ângulos de rotação) do quadro atual. Novamente, uma descrição detalhada é fornecida abaixo.
[0345] Uma avaliação de complexidade mostra que não espera-se o Carregamento Estéreo na MCT, sendo uma ferramenta de taxa de bits média e baixa, aumente na pior complexidade possível quando medida tanto por taxas de bits baixa/média quanto altas. Além disso, o uso de Carregamento Estéreo coincide tipicamente com mais coeficientes espectrais quantizados a zero, assim aumentando a complexidade algorítmica do aritmético com base em contexto. Supondo o uso de, no máximo, N/3 canais de Carregamento Estéreo em uma configuração surround de canal N e 0,2 WMOPS adicionais por execução de Carregamento Estéreo, a complexidade de pico aumenta por apenas 0,4 WMOPS para canais 5.1 e por 0,8 WMOPS para canais 11.1 quando a taxa de amostragem de conversor em código é 48 kHz e a ferramenta IGF opera apenas acima de 12 kHz. Isso se acumula a menos do que 2% da complexidade de decodificador total.
[0346] As modalidades implantam um elemento de MultichannelCodingFrame() conforme a seguir:
[0347] O Carregamento Estéreo na MCT pode, de acordo com algumas modalidades, ser implantado conforme a seguir:
[0348] Semelhante ao Carregamento Estéreo para IGF em um elemento de par de canais, descrito na subcláusula 5.5.5.4.9 de [1], o Carregamento Estéreo na Ferramenta de Conversão em Código Multicanal (MCT) carrega as bandas de fator de escala “vazias” (as quais são completamente quantizadas a zero) em e acima da frequência de início de carregamento de ruído com o uso de uma mixagem de redução dos espectros de saída do quadro anterior.
[0349] Quando o Carregamento Estéreo está ativo em um par de canais conjunto de MCT (hasStereoFilling[pair] + 0 na Tabela AMD4.4), todas bandas de fator de escala “vazias” na região de carregamento de ruído (isto é que começam em ou acima de noiseFillingStartOffset) do segundo canal do par são carregadas a uma energia- alvo específica com o uso de uma mixagem de redução dos espectros de saída correspondentes (após aplicação de MCT) do quadro anterior. Isso é feito após o carregamento de ruído de FD (consultar a subcláusula 7.2 em ISO/IEC 23003-3:2012) e anterior ao fator de escala e aplicação estéreo conjunta de MCT. Todos os espectros de saída após completarem o processamento de MCT são salvos para Carregamento Estéreo potencial no próximo quadro.
[0350] As restrições operacionais podem, por exemplo, ser tais que a execução em cascata de algoritmo de Carregamento Estéreo (hasStereoFilling[pair] + 0) em bandas vazias do segundo canal não é suportada por qualquer par estéreo de MCT a seguir com hasStereoFilling[pair] + 0 se o segundo canal for o mesmo. Em um elemento de par de canais, o Carregamento Estéreo de IGF ativo no segundo canal (residual) de acordo com a subcláusula 5.5.5.4.9 de [1 ] tem prioridade sobre - e, desse modo, desabilita - qualquer aplicação subsequente de Carregamento Estéreo de MCT no mesmo canal do mesmo quadro.
[0351] Os Termos e Definições podem, por exemplo, ser definidos conforme a seguir: hasStereoFilling[pair] indica o uso de Carregamento Estéreo em par de canais de MCT atualmente processados ch1, ch2 índices de canais em par de canais de MCT atualmente processados spectral_data[ ][ ] coeficientes espectrais de canais em par de canais de MCT atualmente processados spectral_data_prev[ ][ ] espectros de saída após completarem processamento de MCT em quadro anterior downmix_prev[ ][ ] mixagem de redução estimada de canais de saída do quadro anterior com índices dados por par de canais de MCT atualmente processados num_swb número total de bandas de fator de escala, consultar ISO/IEC 23003-3, subcláusula 6.2.9.4 ccfl coreCoderFrameLength, comprimento de transformada, consultar ISO/IEC 23003-3, subcláusula 6.1. noiseFillingStartOffset linha de início de Carregamento de Ruído, definido dependendo de ccfl em ISO/IEC 23003-3, Tabela 109. igf_WhiteningLevel Balanceamento espectral em IGF, consultar ISO/IEC 23008-3, subcláusula 5.5.5.4.7 seed[ ] Semente de carregamento de ruído usado por randomSign(), consultar ISO/IEC 23003-3, subcláusula 7.2. Para algumas modalidades particulares, o processo de decodificação pode, por exemplo, ser descrito conforme o seguinte: O Carregamento Estéreo de MCT é realizado com o uso de quatro operações consecutivas, as quais são descritas a seguir:
[0352] Se o indicador de Carregamento Estéreo para o dado par de canais de MCT, hasStereoFilling[pair], for igual a zero, o Carregamento Estéreo não é usado e as etapas a seguir não são executadas. De outro modo, a aplicação de fator de escala é desfeita se foi anteriormente aplicada ao segundo espectro de canal do par, spectral_data[ch2].
[0353] A mixagem de redução anterior é estimada a partir dos sinais de saída do quadro anterior spectral_data_prev[ ][ ] que foram armazenados após a aplicação de processamento de MCT. Se um sinal de canal de saída anterior não estiver disponível, por exemplo, devido a um quadro independente (indepFlag>0), uma mudança de comprimento de transformada ou core_mode == 1, o armazenamento temporário de canal anterior do canal correspondente deve ser definido a zero.
[0354] Para pares estéreo de predição, isto é, MCTSignalingType == 0, a mixagem de redução é calculada a partir dos canais de saída anteriores como downmix_prev[ ][ ] definidos na etapa 2 de subcláusula 5.5.5.4.9.4 de [1], pelos quais o spectrum[window][ ] é representado por spectral_data[ ][window].
[0355] Para pares estéreo de rotação, isto é, MCTSignalingType == 1, a mixagem de redução anterior é calculada a partir dos canais de saída anteriores invertendo-se a operação de rotação definida na subcláusula 5.5.X.3.7.1 de [2]. apply_mct_rotation_inverse(*R, *L, *dmx, aIdx, nSamples) { for (n=0; n<nSamples; n++) { dmx = L[n] * tabIndexToCosAlpha[aIdx] + R[n] * tabIndexToSinAlpha[aIdx]; } } com o uso de L = spectral_data_prev[ch1][ ], R = spectral_data_prev[ch2][ ], dmx = downmix_prev[ ] do quadro anterior e com o uso de aIdx, nSamples de quadro atual e par de MCT.
[0356] O Carregamento Estéreo é aplicado no segundo canal do par de MCT como na etapa 3 de subcláusula 5.5.5.4.9.4 de [1], pelo qual o spectrum[window] é representado por spectral_data[ch2][window] e max_sfb_ste é dado por num_swb.
[0357] Como após a etapa 3 de subcláusula 5.5.5.4.9.4 de [1], os fatores de escala são aplicados no espectro resultante como em 7.3 de ISO/IEC 23003-3, com os fatores de escala de bandas vazias processados como fatores de escala regulares. No caso de um fator de escala não ser definido, por exemplo, devido ao fato de que é localizado acima de max_sfb, seu valor deve ser igual a zero. Se IGF for usado, igf_WhiteningLevel for igual a 2 em qualquer um dos blocos do segundo canal, e ambos os canais não empregarem oito transformações curtas, as energias espectrais de ambos os canais no par de MCT são computadas na faixa de índice noiseFillingStartOffset ao índice ccfl/2 - 1 antes de executar decode_mct(). Se a energia computada do primeiro canal for de mais do que oito vezes maior do que a energia do segundo canal, a semente o seed[ch2] do segundo canal é definido igual ao seed[ch1] do primeiro canal.
[0358] Embora alguns aspectos tenham sido descritos no contexto de um aparelho, é claro que esses aspectos também representam uma descrição do método correspondente, em que um bloco ou dispositivo corresponde a uma etapa de método ou um recurso de uma etapa de método. De modo análogo, os aspectos descritos no contexto de uma etapa de método também representam uma descrição de um bloco correspondente ou item ou recurso de um aparelho correspondente. Parte de ou todas as etapas de 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 das etapas de método de maior importância podem ser executadas por tal aparelho.
[0359] Dependendo de tais necessidades de implantação, as modalidades da invenção podem ser implantadas em hardware ou em software ou pelo menos parcialmente em hardware ou pelo menos parcialmente em software. A implantação pode ser realizada com o uso de um meio de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma ROM, uma PROM, uma EPROM, uma EEPROM ou uma memória FLASH, que tem os sinais de controle eletronicamente legíveis armazenados nos mesmos, que cooperam (ou têm capacidade para cooperar) com um sistema de computador programável de modo que o respectivo método seja realizado. Portanto, o meio de armazenamento digital pode ser legível por computador.
[0360] Algumas modalidades de acordo com a invenção compreendem uma portadora de dados que têm sinais de controle eletronicamente legíveis, os quais têm capacidade para cooperar com um sistema de computador programável, de modo que um dentre os métodos descritos no presente documento seja realizado.
[0361] Geralmente, as modalidades da presente invenção podem ser implantadas como um produto de programa de computador com um código de programa, em que o código de programa é operacional para realizar um dos métodos quando o produto de programa de computador é executado em um computador. O código de programa pode ser, por exemplo, armazenado em uma portadora legível por máquina.
[0362] Outras modalidades compreendem o programa de computador para realizar um dentre os métodos descritos no presente documento, armazenado em uma portadora legível por máquina.
[0363] 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 dos métodos descritos no presente documento, quando o programa de computador é executado em um computador.
[0364] Uma modalidade adicional dos métodos inventivos é, portanto, uma portadora de dados (ou um meio de armazenamento digital, ou um meio legível por computador) que compreende, registrado na mesma, o programa de computador para realizar um dos métodos descritos no presente documento. A portadora de dados, o meio de armazenamento digital ou o meio registrado são tipicamente tangíveis e/ou não transitórios.
[0365] 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 ser, por exemplo, configurado para ser transferido por meio de uma conexão de comunicação de dados, por exemplo, por meio da Internet.
[0366] Uma modalidade adicional compreende um meio de processamento, por exemplo, um computador, ou um dispositivo de lógica programável, configurado para ou adaptado para realizar um dentre os métodos descritos no presente documento.
[0367] Uma modalidade adicional compreende um computador que tem instalado no mesmo o programa de computador para realizar um dos métodos descritos no presente documento.
[0368] Uma modalidade adicional de acordo com a invenção compreende um aparelho ou um sistema configurado para transferir (por exemplo, de modo óptico ou eletrônico) um programa de computador para realizar um dos métodos descritos no presente documento para 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 pode, por exemplo, compreender um servidor de arquivo para transferir o programa de computador ao receptor.
[0369] Em algumas modalidades, um dispositivo de lógica programável (por exemplo, um arranjo de porta programável em campo) pode ser usado para realizar parte ou todas as funcionalidades dos métodos descritos no presente documento. Em algumas modalidades, um arranjo de porta programável em campo pode cooperar com um microprocessador a fim de realizar um dos métodos descritos no presente documento. Geralmente, os métodos são preferencialmente realizados por qualquer aparelho de hardware.
[0370] O aparelho descrito no presente documento pode ser implantado com o uso de um aparelho de hardware, ou com o uso de um computador, ou com o uso de uma combinação de um aparelho de hardware e um computador.
[0371] Os métodos descritos no presente documento podem ser realizados com o uso de um aparelho de hardware, ou com o uso de um computador, ou com o uso de uma combinação de um aparelho de hardware e um computador.
[0372] As modalidades descritas acima são meramente ilustrativas com os princípios da presente invenção. É entendido que as modificações e variações das disposições e os detalhes descritos no presente documento serão evidentes para outros versados na técnica. Pretende-se, portanto, se limitar apenas pelo escopo das reivindicações da patente iminente e não pelos detalhes específicos apresentados por meio de descrição e explicação das modalidades no presente documento. REFERÊNCIAS [1] ISO/IEC padrão internacional 23008-3:2015, “Information technology - High efficiency coding and media deliverly in heterogeneous environments - Part 3: 3D audio”, março de 2015 [2] ISO/IEC emenda 23008-3:2015/PDAM3, “Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 3: 3D audio, Amendment 3: MPEG-H 3D Audio Phase 2”, julho de 2015 [3] International Organization for Standardization, ISO/IEC 23003-3:2012, “Information Technology - MPEG audio - Part 3: Unified speech and audio coding,” Geneva, janeiro de 2012 [4] ISO/IEC 23003-1:2007 - Information technology - MPEG audio technologies Part 1: MPEG Surround [5] C. R. Helmrich, A. Niedermeier, S. Bayer, B. Edler, “Low-Complexity Semi-Parametric Joint-Stereo Audio Transform Coding,” em Proc. EUSIPCO, Nice, setembro de 2015 [6] ETSI TS 103 190 V1.1.1 (2014-04) - Padrão de Compressão de Áudio Digital (AC-4) [7] Yang, Dai e Ai, Hongmei e Kyriakakis, Chris e Kuo, C.-C. Jay, 2001: Adaptive Karhunen-Loeve Transform for Enhanced Multichannel Audio Coding, http://ict.usc.edu/pubs/Adaptive%20Karhunen-Loeve%20Transform%20for %20Enhanced%20Multichannel%20Audio%20Coding.pdf [8] Publicação de Pedido de Patente no EP 2 830 060 A1: “Noise filling in multichannel audio coding”, publicado em 28 de janeiro de 2015 [9] Internet Engineering Task Force (IETF), RFC 6716, “Definition of the Opus Audio Codec,” Int. Standard, setembro de 2012. Disponível online em: http://tools.ietf.org/html/rfc6716 [10] International Organization for Standardization, ISO/IEC 14496-3:2009, “Information Technology - Coding of audio-visual objects - Part 3: Audio,” Geneva, Suíça, Agosto de 2009 [11] M. Neuendorf et al., “MPEG Unified Speech and Audio Coding - The ISO/MPEG Standard for High-Efficiency Audio Coding of All Content Types”, em Proc. 132nd AES Convention, Budapeste, Hungria, abril de 2012. Também em Journal of the AES, 2013
Claims (17)
1. Aparelho (201) para decodificar um sinal multicanal codificado anterior de um quadro anterior para obter três ou mais canais de saída de áudio anteriores e para decodificar um sinal multicanal codificado atual (107) de um quadro atual para obter três ou mais canais de saída de áudio atuais, sendo que o aparelho (201) compreende uma interface (212), um decodificador de canal (202), um processador multicanal (204) para gerar os três ou mais canais de saída de áudio atuais e um módulo de carregamento de ruído (220), em que a interface (212) é adaptada para receber o sinal multicanal codificado atual (107), e para receber informações secundárias que compreendem primeiros parâmetros multicanais (MCH_PAR2), em que o decodificador de canal (202) é adaptado para decodificar o sinal multicanal codificado atual do quadro atual para obter um conjunto de três ou mais canais decodificados (D1, D2, D3) do quadro atual, em que cada canal decodificado de três ou mais canais decodificados (D1, D2, D3) compreende informações sobre uma pluralidade de blocos espectrotemporais do dito canal decodificado, em que o processador multicanal (204) é adaptado para selecionar um primeiro par selecionado de dois canais decodificados (D1, D2) a partir do conjunto de três ou mais canais decodificados (D1, D2, D3) dependendo dos primeiros parâmetros multicanais (MCH_PAR2), em que o processador multicanal (204) é adaptado para gerar um primeiro grupo de dois ou mais canais processados (P1*,P2*) com base no dito primeiro par selecionado de dois canais decodificados (D1, D2) para obter um conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*), em que cada canal decodificado do conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*) compreende informações sobre uma pluralidade de blocos espectrotemporais do dito canal decodificado, caracterizado por, antes do processador multicanal (204) gerar o primeiro grupo de dois ou mais canais processados (P1*,P2*) com base no dito primeiro par selecionado de dois canais decodificados (D1, D2), o módulo de carregamento de ruído (220) ser adaptado para identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados (D1, D2), uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar um canal de mistura com o uso de dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e para carregar as linhas espectrais da uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com o uso de linhas espectrais do canal de mistura, em que o módulo de carregamento de ruído (220) é adaptado para selecionar os dois ou mais canais de saída de áudio anteriores que são usados para gerar o canal de mistura dos três ou mais canais de saída de áudio anteriores dependendo das informações secundárias.
2. Aparelho (201), de acordo com a reivindicação 1, caracterizado por o módulo de carregamento de ruído (220) ser adaptado para gerar o canal de mistura com o uso de exatamente dois canais de saída de áudio anteriores dos três ou mais canais de saída de áudio anteriores como os dois ou mais dos três ou mais canais de saída de áudio anteriores; em que o módulo de carregamento de ruído (220) é adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dos três ou mais canais de saída de áudio anteriores dependendo das informações secundárias.
3. Aparelho (201), de acordo com a reivindicação 2, caracterizado por o módulo de carregamento de ruído (220) ser adaptado para gerar o canal de mistura com o uso de exatamente dois canais de saída de áudio anteriores com base na fórmula em que Dch é o canal de mistura, em que é um primeiro canal dentre os exatamente dois canais de saída de áudio anteriores, em que é um segundo canal dentre os exatamente dois canais de saída de áudio anteriores, que é diferente do primeiro canal dos exatamente dois canais de saída de áudio anteriores, e em que d é um escalar positivo real.
4. Aparelho (201), de acordo com a reivindicação 2, caracterizado por o módulo de carregamento de ruído (220) ser adaptado para gerar o canal de mistura com o uso de exatamente dois canais de saída de áudio anteriores com base na formula em que é o canal de mistura, T em que é um primeiro canal dentre os exatamente dois canais de saída de áudio anteriores, em que é um segundo canal dentre os exatamente dois canais de saída de áudio anteriores, que é diferente do primeiro canal dos exatamente dois canais de saída de áudio anteriores, e em que α é um ângulo de rotação.
5. Aparelho (201), de acordo com a reivindicação 4, caracterizado por as informações secundárias serem informações secundárias atuais atribuídas ao quadro atual, em que a interface (212) é adaptada para receber as informações secundárias anteriores atribuídas ao quadro anterior, em que as informações secundárias anteriores compreendem um ângulo anterior, em que a interface (212) é adaptada para receber as informações secundárias atuais que compreendem um ângulo atual, e em que o módulo de carregamento de ruído (220) é adaptado para usar o ângulo atual das informações secundárias atuais como o ângulo de rotação α , e é adaptado para não usar o ângulo anterior das informações secundárias anteriores como o ângulo de rotação α .
6. Aparelho (201), de acordo com qualquer uma das reivindicações 2 a 5, caracterizado por o módulo de carregamento de ruído (220) ser adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dos três ou mais canais de saída de áudio anteriores dependendo dos primeiros parâmetros multicanais (MCH_PAR2).
7. Aparelho (201), de acordo com qualquer uma das reivindicações 2 a 6, caracterizado por a interface (212) ser adaptada para receber o sinal multicanal codificado atual (107), e para receber as informações secundárias que compreendem os primeiros parâmetros multicanais (MCH_PAR2) e os segundos parâmetros multicanais (MCH_PAR1), em que o processador multicanal (204) é adaptado para selecionar um segundo par selecionado de dois canais decodificados (P1*, D3) do conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*) dependendo dos segundos parâmetros multicanais (MCH_PAR1), sendo que pelo menos um canal (P1*) do segundo par selecionado de dois canais decodificados (P1*, D3) é um canal do primeiro grupo de dois ou mais canais processados (P1*,P2*), e em que o processador multicanal (204) é adaptado para gerar um segundo grupo de dois ou mais canais processados (P3*,P4*) com base no dito segundo par selecionado de dois canais decodificados (P1*, D3) para atualizar adicionalmente o conjunto atualizado de três ou mais canais decodificados.
8. Aparelho (201), de acordo com a reivindicação 7, caracterizado por o processador multicanal (204) ser adaptado para gerar o primeiro grupo de dois ou mais canais processados (P1*,P2*) gerando-se um primeiro grupo de exatamente dois canais processados (P1*,P2*) com base no dito primeiro par selecionado de dois canais decodificados (D1, D2); em que o processador multicanal (204) é adaptado para substituir o dito primeiro par selecionado de dois canais decodificados (D1, D2) no conjunto de três de mais canais decodificados (D1, D2, D3) pelo primeiro grupo de exatamente dois canais processados (P1*,P2*) para obter o conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*); em que o processador multicanal (204) é adaptado para gerar o segundo grupo de dois ou mais canais processados (P3*,P4*) gerando-se um segundo grupo de exatamente dois canais processados (P3*,P4*) com base no dito segundo par selecionado de dois canais decodificados (P1*, D3), e em que o processador multicanal (204) é adaptado para substituir o dito segundo par selecionado de dois canais decodificados (P1*, D3) no conjunto atualizado de três de mais canais decodificados (D3, P1*, P2*) pelo segundo grupo de exatamente dois canais processados (P3*,P4*) para atualizar adicionalmente o conjunto atualizado de três ou mais canais decodificados.
9. Aparelho (201), de acordo com a reivindicação 8, caracterizado por os primeiros parâmetros multicanais (MCH_PAR2) indicarem dois canais decodificados (D1, D2) do conjunto de três ou mais canais decodificados; em que o processador multicanal (204) é adaptado para selecionar o primeiro par selecionado de dois canais decodificados (D1, D2) do conjunto de três ou mais canais decodificados (D1, D2, D3) selecionando-se os dois canais decodificados (D1, D2) indicados pelos primeiros parâmetros multicanais (MCH_PAR2); em que os segundos parâmetros multicanais (MCH_PAR1) indicam dois canais decodificados (P1*, D3) do conjunto atualizado de três ou mais canais decodificados; em que o processador multicanal (204) é adaptado para selecionar o segundo par selecionado de dois canais decodificados (P1*, D3) do conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*) selecionando-se os dois canais decodificados (P1*, D3) indicados pelos segundos parâmetros multicanais (MCH_PAR1).
10. Aparelho (201), de acordo com a reivindicação 9, sendo que o aparelho (201) é caracterizado por ser adaptado para atribuir um identificador de um conjunto de identificadores a cada canal de saída de áudio anterior dos três ou mais canais de saída de áudio anteriores, de modo que cada canal de saída de áudio anterior dos três ou mais canais de saída de áudio anteriores seja atribuído a exatamente um identificador do conjunto de identificadores, e de modo que cada identificador do conjunto de identificadores seja atribuído a exatamente um canal de saída de áudio anterior dos três ou mais canais de saída de áudio anteriores, em que o aparelho (201) é adaptado para atribuir um identificador do dito conjunto de identificadores a cada canal do conjunto dos três ou mais canais decodificados (D1, D2, D3), de modo que cada canal do conjunto dos três ou mais canais decodificados seja atribuído a exatamente um identificador do conjunto de identificadores, e de modo que cada identificador do conjunto de identificadores seja atribuído a exatamente um canal do conjunto dos três ou mais canais decodificados (D1, D2, D3), em que os primeiros parâmetros multicanais (MCH_PAR2) indicam um primeiro par de dois identificadores do conjunto dos três ou mais identificadores, em que o processador multicanal (204) é adaptado para selecionar o primeiro par selecionado de dois canais decodificados (D1, D2) do conjunto de três ou mais canais decodificados (D1, D2, D3) selecionando-se os dois canais decodificados (D1, D2) atribuídos aos dois identificadores do primeiro par de dois identificadores; em que o aparelho (201) é adaptado para atribuir um primeiro identificador dentre os dois identificadores do primeiro par de dois identificadores a um primeiro canal processado do primeiro grupo de exatamente dois canais processados (P1*,P2*), e em que o aparelho (201) é adaptado para atribuir um segundo identificador dentre os dois identificadores do primeiro par de dois identificadores a um segundo canal processado do primeiro grupo de exatamente dois canais processados (P1*,P2*).
11. Aparelho (201), de acordo com a reivindicação 10, caracterizado por os segundos parâmetros multicanais (MCH_PAR1) indicarem um segundo par de dois identificadores do conjunto dos três ou mais identificadores, em que o processador multicanal (204) é adaptado para selecionar o segundo par selecionado de dois canais decodificados (P1*, D3) do conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*) selecionando-se os dois canais decodificados (D3, P1*) atribuídos aos dois identificadores do segundo par de dois identificadores; em que o aparelho (201) é adaptado para atribuir um primeiro identificador dentre os dois identificadores do segundo par de dois identificadores a um primeiro canal processado do segundo grupo de exatamente dois canais processados (P3*, P4*), e em que o aparelho (201) é adaptado para atribuir um segundo identificador dentre os dois identificadores do segundo par de dois identificadores a um segundo canal processado do segundo grupo de exatamente dois canais processados (P3*, P4*).
12. Aparelho (201), de acordo com a reivindicação 10 ou 11, caracterizado por os primeiros parâmetros multicanais (MCH_PAR2) indicarem o dito primeiro par de dois identificadores do conjunto dos três ou mais identificadores, e em que o módulo de carregamento de ruído (220) é adaptado para selecionar os exatamente dois canais de saída de áudio anteriores dos três ou mais canais de saída de áudio anteriores selecionando-se os dois canais de saída de áudio anteriores atribuídos aos dois identificadores do dito primeiro par de dois identificadores.
13. Aparelho (201), de acordo com qualquer uma das reivindicações 1 a 12, caracterizado por, antes do processador multicanal (204) gerar o primeiro grupo de dois ou mais canais processados (P1*,P2*) com base no dito primeiro par selecionado de dois canais decodificados (D1, D2), o módulo de carregamento de ruído (220) ser adaptado para identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados (D1, D2), uma ou mais bandas de fator de escala que são a uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e para gerar o canal de mistura com o uso dos ditos dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e para carregar as linhas espectrais da uma ou mais bandas de fator de escala, em que todas as linhas espectrais são quantizadas a zero, com o ruído gerado com o uso das linhas espectrais do canal de mistura dependendo de um fator de escala de cada uma dentre a uma ou mais bandas de fator de escala, em que todas as linhas espectrais são quantizadas a zero.
14. Aparelho (201), de acordo com a reivindicação 13, caracterizado por a interface de recebimento (212) ser configurada para receber o fator de escala de cada uma dentre a dita uma ou mais bandas de fator de escala, e em que o fator de escala de cada uma dentre a dita uma ou mais bandas de fator de escala indica uma energia das linhas espectrais da dita banda de fator de escala antes da quantização, e em que o módulo de carregamento de ruído (220) é adaptado para gerar o ruído para cada uma dentre a uma ou mais bandas de fator de escala, em que todas as linhas espectrais são quantizadas a zero, de modo que uma energia das linhas espectrais após adicionar o ruído a uma das bandas de frequência corresponda à energia indicada pelo fator de escala para a dita banda de fator de escala.
15. Sistema caracterizado por compreender: um aparelho (100) para codificar um sinal multicanal (101) que tem pelo menos três canais (CH1:CH3), e um aparelho (201) para decodificação, conforme definido em qualquer uma das reivindicações 1 a 14, em que o aparelho (201) para decodificação é configurado para receber um sinal multicanal codificado (107), gerado pelo aparelho (100) para codificação, do aparelho (100) para codificação, em que o aparelho (100) para codificar o sinal multicanal (101) compreende: um processador de iteração (102) adaptado para calcular, em uma primeira etapa de iteração, valores de correlação intercanal entre cada par dos pelo menos três canais (CH:CH3), para selecionar, na primeira etapa de iteração, um par que tem um valor mais alto ou que tem um valor acima de um limiar e para processar o par selecionado com o uso de uma operação de processamento multicanal (110,112) para derivar os parâmetros multicanais iniciais (MCH_PAR1) para o par selecionado e para derivar os primeiros canais processados (P1,P2), em que o processador de iteração (102) é adaptado para realizar o cálculo, a seleção e o processamento em uma segunda etapa de iteração com o uso de pelo menos um dos canais processados (P1) para derivar parâmetros multicanais adicionais (MCH_PAR2) e segundos canais processados (P3,P4); um codificador de canal adaptado para codificar canais (P2:P4) resultantes a partir de um processamento de iteração realizado pelo processador de iteração (104) para obter canais codificados (E1:E3); e uma interface de saída (106) adaptada para gerar o sinal multicanal codificado (107) que tem os canais codificados (E1:E3), os parâmetros multicanais iniciais e os parâmetros multicanais adicionais (MCH_PAR1,MCH_PAR2) e que tem uma informação que indica se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com base em canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
16. Sistema, de acordo com a reivindicação 15, caracterizado por cada um dos parâmetros multicanais iniciais e os parâmetros multicanais adicionais (MCH_PAR1, MCH_PAR2) indicarem exatamente dois canais, em que cada um dos exatamente dois canais é um dos canais codificados (E1:E3) ou é um dentre o primeiro ou o segundo canais processados (P1, P2, P3, P4) ou é um dos pelo menos três canais (CH:CH3), e em que a interface de saída (106) do aparelho (100) para codificar o sinal multicanal (101) é adaptada para gerar o sinal multicanal codificado (107), de modo que as informações que indicam se um aparelho para decodificação deve ou não carregar as linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, compreendam informações que indicam para cada um dos parâmetros iniciais e dos parâmetros multicanais (MCH_PAR1, MCH_PAR2), para pelo menos um canal dos exatamente dois canais que são indicados pelo dito um dos parâmetros iniciais e dos parâmetros multicanais adicionais (MCH_PAR1, MCH_PAR2), se o aparelho para decodificação deve ou não carregar linhas espectrais de uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, do dito pelo menos um canal, com os dados espectrais gerados com base nos canais anteriormente decodificados de saída de áudio que foram anteriormente decodificados pelo aparelho para decodificação.
17. Método para decodificação de um sinal multicanal codificado anterior de um quadro anterior para obter três ou mais canais de saída de áudio anteriores, e para decodificar um sinal multicanal codificado atual (107) de um quadro atual para obter três ou mais canais de saída de áudio atuais, sendo que o método compreende: receber o sinal multicanal codificado atual (107) e receber as informações secundárias que compreendem os primeiros parâmetros multicanais (MCH_PAR2); decodificar o sinal multicanal codificado atual do quadro atual para obter um conjunto de três ou mais canais decodificados (D1, D2, D3) do quadro atual, em que cada canal decodificado de três ou mais canais decodificados (D1, D2, D3) compreende informações sobre uma pluralidade de blocos espectrotemporais do dito canal decodificado; selecionar um primeiro par selecionado de dois canais decodificados (D1, D2) do conjunto de três ou mais canais decodificados (D1, D2, D3) dependendo dos primeiros parâmetros multicanais (MCH_PAR2); gerar um primeiro grupo de dois ou mais canais processados (P1*,P2*) com base no dito primeiro par selecionado de dois canais decodificados (D1, D2) para obter um conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*), em que cada canal decodificado do conjunto atualizado de três ou mais canais decodificados (D3, P1*, P2*) compreende informações sobre uma pluralidade de blocos espectrotemporais do dito canal decodificado,; caracterizado por, antes do primeiro grupo de dois ou mais canais processados (P1*,P2*) ser gerado com base no dito primeiro par selecionado de dois canais decodificados (D1, D2), as etapas a seguir serem conduzidas: identificar por pelo menos um dentre os dois canais do dito primeiro par selecionado de dois canais decodificados (D1, D2), uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, e gerar um canal de mistura com o uso de dois ou mais, mas não todos os três ou mais canais de saída de áudio anteriores, e carregar as linhas espectrais da uma ou mais bandas de frequência, em que todas as linhas espectrais são quantizadas a zero, com ruído gerado com o uso de linhas espectrais do canal de mistura, em que a seleção dos dois ou mais canais de saída de áudio anteriores que são usados para gerar o canal de mistura dos três ou mais canais de saída de áudio anteriores é conduzida dependendo das informações secundárias.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BR122023025309-4A BR122023025309A2 (pt) | 2016-02-17 | 2017-02-14 | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |
BR122023025322-1A BR122023025322A2 (pt) | 2016-02-17 | 2017-02-14 | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |
BR122023025300-0A BR122023025300A2 (pt) | 2016-02-17 | 2017-02-14 | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |
BR122023025319-1A BR122023025319A2 (pt) | 2016-02-17 | 2017-02-14 | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |
BR122023025314-0A BR122023025314A2 (pt) | 2016-02-17 | 2017-02-14 | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16156209.5A EP3208800A1 (en) | 2016-02-17 | 2016-02-17 | Apparatus and method for stereo filing in multichannel coding |
EP16156209.5 | 2016-02-17 | ||
PCT/EP2017/053272 WO2017140666A1 (en) | 2016-02-17 | 2017-02-14 | Apparatus and method for stereo filling in multichannel coding |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112018016898A2 BR112018016898A2 (pt) | 2018-12-26 |
BR112018016898B1 true BR112018016898B1 (pt) | 2024-04-24 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR122023025309A2 (pt) | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema | |
US11594235B2 (en) | Noise filling in multichannel audio coding | |
CN109509478B (zh) | 音频处理装置 | |
WO2009048239A2 (en) | Encoding and decoding method using variable subband analysis and apparatus thereof | |
BR112018016898B1 (pt) | Aparelho e método para carregamento estéreo em conversão em código multicanal e sistema |