BRPI1105248B1 - método de operar um decodificador de áudio, meio de armazenamento legível por computador que armazena um método e aparelho de processamento de dados de áudio para decodificar os dados de áudio - Google Patents

método de operar um decodificador de áudio, meio de armazenamento legível por computador que armazena um método e aparelho de processamento de dados de áudio para decodificar os dados de áudio Download PDF

Info

Publication number
BRPI1105248B1
BRPI1105248B1 BRPI1105248-1A BRPI1105248A BRPI1105248B1 BR PI1105248 B1 BRPI1105248 B1 BR PI1105248B1 BR PI1105248 A BRPI1105248 A BR PI1105248A BR PI1105248 B1 BRPI1105248 B1 BR PI1105248B1
Authority
BR
Brazil
Prior art keywords
data
downmixing
channels
channel
audio data
Prior art date
Application number
BRPI1105248-1A
Other languages
English (en)
Inventor
Robin Thesing
James M. Silva
Robert L. Andersen
Original Assignee
Dolby Laboratories Licensing Corporation
Dolby International Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby Laboratories Licensing Corporation, Dolby International Ab filed Critical Dolby Laboratories Licensing Corporation
Publication of BRPI1105248A2 publication Critical patent/BRPI1105248A2/pt
Publication of BRPI1105248B1 publication Critical patent/BRPI1105248B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R5/00Stereophonic arrangements
    • H04R5/02Spatial or constructional arrangements of loudspeakers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S3/00Systems employing more than two channels, e.g. quadraphonic
    • H04S3/008Systems employing more than two channels, e.g. quadraphonic in which the audio signals are in digital form, i.e. employing more than two discrete digital channels

Abstract

DECODIFICADOR DE ÁUDIO E MÉTODO DE DECODIFICAÇÃO QUE UTILIZAM DOWNMIXING EFICIENTE. A presente invenção refere-se a um método, a um aparelho, a um meio de armazenamento legível por computador configurado com instruções para realizar um método, e uma lógica codificada em um ou mais meios tangíveis legíveis por computador para realizar ações. O método consiste em decodificar os dados de áudio que incluem N.n canais a M.m canais de áudio decodificado, que inclui desempacotar os metadados e desempacotar e decodificar os dados de espoente e mantissa de domínio de frequência; determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; transformar inversamente os dados de domínio de frequência: e no caso onde M

Description

REFERÊNCIA REMISSIVA AOS PEDIDOS DE DEPÓSITO CORRELATOS
[0001] Reivindica-se prioridade ao Pedido de Patente Provisório Norte-Americano No. 61/305.871, depositado em 18 de fevereiro de 2010, e ao Pedido de Patente Provisório Norte-Americano No. 61/359.763, depositado em 29 de junho de 2010, ambos se encontram aqui incorporados em suas totalidades a título de referência.
CAMPO DA INVENÇÃO
[0002] A presente descrição refere-se, em geral, ao processamento de sinal de áudio.
ANTECEDENTES
[0003] A compactação de dados de áudio digital se tornou uma técnica importante na indústria de áudio. Introduziram-se novos formatos que permitem uma reprodução de áudio em alta qualidade sem a necessidade de uma alta largura de banda de dados que seria necessária utilizando-se as técnicas tradicionais. AC-3 e, mais recentemente, a tecnologia de codificação AC-3 Aprimorada (E-AC-3) foram adotadas pelo Advanced Television Systems Committee (ATSC) como o padrão de serviço de áudio para Televisão de Alta Definição (HDTV) nos Estados Unidos. E-AC-3 também encontrou aplicações em mídias de consumidor (disco de vídeo digital) e radiodifusão direta por satélite. E-AC-3 é um exemplo de codificação perceptual, e proporciona a codificação de múltiplos canais de áudio digital a um fluxo de bits de áudio codificado e metadados.
[0004] Há um interesse na decodificação eficiente de um fluxo de bits de áudio codificador. Por exemplo, a vida útil da bateria de dispositivos portáteis é principalmente limitada pelo consumo de energia de sua unidade de processamento principal. O consumo de energia de uma unidade de processamento é estritamente relacionado à complexidade computacional de suas tarefas. Portanto, a redução da complexidade computacional média de um sistema de processamento de áudio portátil deve estender a vida útil da bateria de tal sistema.
[0005] O termo x86 é comumente compreendido pelos indivíduos versados na técnica por se referir a uma família de arquiteturas de conjunto de instruções de processador cujas origens retrocedem ao processador Intel 8086. Como resultado da ubiquidade da arquitetura de conjunto de instruções x86, também há interesse em decodificar de modo eficiente um fluxo de bits de áudio codificado em um processador ou sistema de processamento que tenha uma arquitetura de conjunto de instruções x86. Muitas implementações de decodificador são gerais por natureza, enquanto outras são especificamente designadas para processadores embutidos. Os novos processadores, tal como AMD's Geode e o novo Intel Atom são exemplos de projetos de 32-bit e 64-bit que usam o conjunto de instruções x86 e são usados em pequenos dispositivos portáteis.
BREVE DESCRIÇÃO DOS DESENHOS
[0006] A figura 1 mostra um pseudocódigo 100 para instruções que, quando executadas, realizam um processo de decodificação AC- 3 típico.
[0007] As figuras 2A-2D mostram, sob a forma de um diagrama de blocos simplificado, algumas configurações de decodificador diferentes que possam usar vantajosamente um ou mais módulos comuns.
[0008] A figura 3 mostra um pseudocódigo e um diagrama de blocos simplificado de uma modalidade de um módulo de decod ificação front-end.
[0009] A figura 4 mostra um diagrama de fluxo de dados simplificado para a operação de uma modalidade de um módulo de decod ificação front-end.
[00010] A figura 5A mostra um pseudocódigo e um diagrama de blocos simplificado de uma modalidade de um módulo de decodificação back-end.
[00011] A figura 5B mostra um pseudocódigo e um diagrama de blocos simplificado de outra modalidade de um módulo de decodificação back-end.
[00012] A figura 6 mostra um diagrama de fluxo de dados simplificado para a operação de uma modalidade de um módulo de decodificação back-end.
[00013] A figura 7 mostra um diagrama de fluxo de dados simplificado para a operação de outra modalidade de um módulo de decodificação back-end.
[00014] A figura 8 mostra um fluxograma de uma modalidade de processamento para um módulo de decodificação back-end, tal como aquele mostrado na figura 7.
[00015] A figura 9 mostra um exemplo de processamento de cinco blocos que inclui downmixing de 5.1 a 2.0 utilizando-se uma modalidade da presente invenção para o caso de uma transformada de não-sobreposição que inclui downmixing de 5.1 a 2.0.
[00016] A figura 10 mostra outro exemplo de processamento de cinco blocos que inclui downmixing de 5.1 a 2.0 utilizando-se uma modalidade da presente invenção para o caso de uma transformada de sobreposição.
[00017] A figura 11 mostra um pseudocódigo simplificado para uma modalidade de downmixing de domínio de tempo.
[00018] A figura 12 mostra um diagrama de blocos simplificado de uma modalidade de um sistema de processamento que inclui pelo menos um processador e que pode realizar decodificação, incluindo um ou mais recursos da presente invenção.
DESCRIÇÃO DAS MODALIDADES EXEMPLIFICADORAS Visão Geral
[00019] As modalidades da presente invenção incluem um método, um aparelho, e uma lógica codificada em um ou mais meios tangíveis legíveis por computador para realizar ações.
[00020] As modalidades particulares incluem um método de operação de um decodificador de áudio para decodificar dados de áudio que incluem blocos codificados de Nn canais de dados de áudio para formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados. O método compreende aceitar os dados de áudio que incluem blocos de N n canais de dados de áudio codificados por um método de codificação que inclui transformar N n canais de dados de áudio digital, e formar e empacotar dados de expoente e mantissa de domínio de frequência; e decodificar os dados de áudio aceitos. A decodificação inclui: desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência; determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; inverter a transformação dos dados de domínio de frequência e aplicar um processamento adicional para determinar os dados de áudio amostrados; e realizar downmixing de domínio de tempo em pelo menos alguns blocos dos dados de áudio amostrados determinados de acordo com os dados de downmixing para o caso M<N. Pelo menos um entre A1, B1, e C1 é verdadeiro:
[00021] A1 sendo aquele que a decodificação inclui determinar bloco por bloco se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo, e se for determinado para um bloco particular que se aplique downmixing de domínio de frequência, aplicar downmixing de domínio de frequência ao bloco particular,
[00022] B1 sendo aquele que o downmixing de domínio de tempo inclui testar se os dados de downmixing são alterados a partir de dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e realizar downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e se permanecerem inalterados, realizar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing, e
[00023] C1 sendo aquele que o método inclui identificar um ou mais canais não-contribuintes dos Nn canais de entrada, em que um canal não-contribuinte é um canal que não contribui para os M m canais, e que o método não realiza uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não-contribuintes identificados.
[00024] As modalidades particulares da invenção incluem um meio de armazenamento legível por computador que armazena instruções de decodificação que quando executadas por um ou mais processadores de um sistema de processamento faz com que o sistema de processamento realize uma decodificação de dados de áudio que inclui blocos codificados de Nn canais de dados de áudio para formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados. As instruções de decodificação incluem: instruções que quando executadas causam a aceitação dos dados de áudio que incluem blocos de Nn canais de dados de áudio codificado codificados por um método de codificação, em que o método de codificação inclui transformar Nn canais de dados de áudio digital, e formar e empacotar os dados de expoente e mantissa de domínio de frequência; e instruções que quando executadas causam a decodificação dos dados de áudio aceitos. As instruções que quando executadas causam uma decodificação incluem: instruções que quando executadas causam o desempacotamento e a decodificação dos dados de expoente e mantissa de domínio de frequência; instruções que quando executadas causam a determinação dos coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; instruções que quando executadas causam uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional para determinar os dados de áudio amostrados; e instruções que quando executadas causam a verificação se M<N e instruções que quando executadas causam downmixing de domínio de tempo em pelo menos alguns blocos dos dados de áudio amostrados determinados de acordo com os dados de downmixing se M<N. Pelo menos um entre A2, B2, e C2 é verdadeiro:
[00025] A2 sendo aquele que as instruções que quando executadas causam uma decodificação incluem instruções que quando executadas causam a determinação bloco por bloco se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo, e instruções que quando executadas causam a aplicação de downmixing de domínio de frequência se for determinado para um bloco particular aplicar downmixing de domínio de frequência,
[00026] B2 sendo aquele que o downmixing de domínio de tempo inclui testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e realizar downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e se permanecerem inalterados, realizar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing, e
[00027] C2 sendo aquele que as instruções que quando executadas causam uma decodificação incluem identificar um ou mais canais não- contribuintes dos N n canais de entrada, em que um canal não- contribuinte é um canal que não contribui para os M m canais, e que o método não realiza uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não-contribuintes identificados.
[00028] As modalidades particulares incluem um aparelho para processamento de dados de áudio que serve para decodificar os dados de áudio que incluem os blocos codificados de N n canais de dados de áudio para formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados. O aparelho compreende: meios para aceitar os dados de áudio que incluem blocos de N n canais de dados de áudio codificados por um método de codificação, em que o método de codificação inclui transformar Nn canais de dados de áudio digital, e formar e empacotar os dados de expoente e mantissa de domínio de frequência; e meios para decodificar os dados de áudio aceitos. Os meios para decodificação incluem: meios para desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência; meios para determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; meios para transformar inversamente os dados de domínio de frequência e aplicar um processamento adicional para determinar os dados de áudio amostrados; e meios para downmixing de domínio de tempo pelo menos alguns blocos dos dados de áudio amostrados determinados de acordo com os dados de downmixing para o caso M<N. Pelo menos um entre A3, B3, e C3 é verdadeiro:
[00029] A3 sendo aquele que o meio para decodificação inclui meios para determinar bloco por bloco se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo, e meios para aplicar downmixing de domínio de frequência, em que os meios para aplicar downmixing de domínio de frequência aplicam downmixing de domínio de frequência para o bloco particular se for determinado para um bloco particular aplicar downmixing de domínio de frequência,
[00030] B3 sendo aquele que o meio para downmixing de domínio de tempo realiza um teste se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e, se permanerecem inalterados, aplicar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing, e
[00031] C3 sendo aquele que o aparelho inclui meios para identificar um ou mais canais não-contribuintes dos N n canais de entrada, em que um canal não-contribuinte é um canal que não contribui para os M m canais, e que o aparelho não realiza uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não- contribuintes identificados.
[00032] As modalidades particulares incluem um aparelho para processamento de dados de áudio que inclui N n canais de dados de áudio codificado para formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n=0 ou 1 sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m=0 ou 1 sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados. O aparelho compreende: meios para aceitar os dados de áudio que incluem N n canais de dados de áudio codificados por um método de codificação, em que o método de codificação compreende transformar os N n canais de dados de áudio digital de modo que a transformação inversa e o processamento adicional possam recuperar amostras de domínio de tempo sem suavizar erros, formar e empacotar dados de expoente e mantissa de domínio de frequência, e formar e empacotar metadados relacionados aos dados de expoente e mantissa de domínio de frequência, em que os metadados incluem opcionalmente metadados relacionados a um processamento de pré-ruído transiente; e meios para decodificar os dados de áudio aceitos. Os meios para decodificação compreendem: um ou mais meios para decodificação front-end e um ou mais meios para decodificação back-end. Os meios para decodificação front-end incluem meios para desempacotar os metadados, desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência. Os meios para decodificação back-end incluem meios para determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; para transformar inversamente os dados de domínio de frequência; para aplicar operações de janelamento e adição de sobreposição para determinar os dados de áudio amostrados; para aplicar qualquer decodificação requerida de processamento de pré-ruído transiente de acordo com os metadados relacionados ao processamento de pré-ruído transiente; e para realizar downmixing de domínio de tempo de acordo com os dados de downmixing, em que o downmixing é configurado para realizar downmix de domínio de tempo em pelo menos alguns blocos de dado de acordo com os dados de downmixing no caso M<N. Pelo menos um entre A4, B4, e C4 é verdadeiro:
[00033] A4 em que aquele que os meios para decodificação back- end incluem meios para determinar bloco por bloco se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo, e meios para aplicar downmixing de domínio de frequência, em que os meios para aplicar downmixing de domínio de frequência aplicam downmixing de domínio de frequência para o bloco particular se for determinado para um bloco particular aplicar downmixing de domínio de frequência,
[00034] B4 sendo aquele que os meios para downmixing de domínio de tempo realizam um teste se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e, se permanecerem inalterados, aplicar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing, e
[00035] C4 sendo aquele que o aparelho inclui meios para identificar um ou mais canais não-contribuintes dos Nn canais de entrada, em que um canal não-contribuinte é um canal que não contribui para os M m canais, e que os meios para decodificação backend não realizam uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não-contribuintes identificados.
[00036] As modalidades particulares incluem um sistema para decodificar os dados de áudio que incluem N n canais de dados de áudio codificado para formar os dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados. O sistema compreende: um ou mais processadores; e um subsistema de armazenamento acoplado a um ou mais processadores. O sistema serve para aceitar os dados de áudio que incluem blocos de N n canais de dados de áudio codificados por um método de codificação, em que o método de codificação inclui transformar N n canais de dados de áudio digital, e formar e empacotar os dados de expoente e mantissa de domínio de frequência; e decodificar, ainda, os dados de áudio aceitos, incluindo: desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência; determinar coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; transformar inversamente os dados de domínio de frequência e aplicar um processamento adicional para determinar os dados de áudio amostrados; e realizar downmix de domínio de tempo em pelo menos alguns blocos dos dados de áudio amostrados determinados de acordo com os dados de downmixing para o caso M<N. Pelo menos um entre A5, B5, e C5 é verdadeiro:
[00037] A5 sendo aquele que a decodificação inclui determinar bloco por bloco se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo, e se for determinado para um bloco particular aplicar downmixing de domínio de frequência, aplicar downmixing de domínio de frequência para o bloco particular,
[00038] B5 sendo aquele que o downmixing de domínio de tempo inclui testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e realizar downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e se permanecerem inalterados, realizar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing, e
[00039] C5 sendo aquele que o método inclui identificar um ou mais canais não-contribuintes dos N n canais de entrada, em que um canal não-contribuinte é um canal que não contribui para os M m canais, e que o método não realiza uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não-contribuintes identificados.
[00040] Em algumas versões da modalidade do sistema, os dados de áudio aceitos se encontram sob a forma de um fluxo de bits de quadros de dados codificados, e o subsistema de armazenamento é configurado com instruções que quando executadas por um ou mais processadores do sistema de processamento, causam uma decodificação dos dados de áudio aceitos.
[00041] Algumas versões da modalidade do sistema incluem um ou mais subsistemas que são ligados em rede através de um link de rede, em que cada subsistema inclui pelo menos um processador.
[00042] Em algumas modalidades nas quais A1, A2, A3, A4 ou A5 é verdadeiro, a determinação se é aplicado downmixing de domínio de frequência ou downmixing de domínio de tempo inclui determinar se existe algum processamento de pré-ruído transiente, e determinar se algum dos N canais tem um tipo de bloco diferente de tal modo que o downmixing de domínio de frequência é aplicado apenas para um bloco que tenha o mesmo tipo de bloco nos N canais, nenhum processamento de pré-ruído transiente, e M<N.
[00043] Em algumas modalidades onde A1, A2, A3, A4 ou A5 é verdadeiro, e onde a transformação no método de codificação usa uma transformada sobreposta e o processamento adicional inclui aplicar operações de janelamento e adição de sobreposição para determinar os dados de áudio amostrados, (i) aplicar downmixing de domínio de frequência para o bloco particular inclui determinar se o downmixing para o bloco anterior ocorreu por downmixing de domínio de tempo e, se o downmixing para o bloco anterior ocorreu por downmixing de domínio de tempo, aplicar downmixing de domínio de tempo (ou downmixing em um pseudo-domínio de tempo) aos dados do bloco anterior que deve ser sobreposto aos dados decodificados do bloco particular, e (ii) aplicar downmixing de domínio de tempo para um bloco particular inclui determinar se o downmixing para o bloco anterior ocorreu por downmixing de domínio de frequência, e se o downmixing para o bloco anterior ocorreu por downmixing de domínio de frequência, processar o bloco particular diferentemente do que se o downmixing para o bloco anterior não tivesse ocorrido por downmixing de domínio de frequência.
[00044] Em algumas modalidades onde B1, B2, B3, B4 ou B5 é verdadeiro, utiliza-se pelo menos um processador x86 cujo conjunto de instruções inclui extensões de transmissão contínua de única instrução e múltiplos dados (SSE) que compreendem instruções vetoriais, e o downmixing de domínio de tempo inclui instruções vetoriais de execução pelo menos em um ou mais processadores x86.
[00045] Em algumas modalidades onde C1, C2, C3, C4 ou C5 é verdadeiro, n=1 e m=0, de tal modo que uma transformação inversa e a aplicação de um processamento adicional não sejam realizadas no canal de efeito de frequência baixa. Além disso, em algumas modalidades onde C é verdadeiro, os dados de áudio que incluem blocos codificados incluem informações que definem o downmixing, e a identificação de um ou mais canais não-contribuintes usa as informações que definem o downmixing. Além disso, em algumas modalidades onde C é verdadeiro, a identificação de um ou mais canais não-contribuintes inclui, ainda, identificar se um ou mais canais têm uma quantidade insignificante de conteúdos em relação a um ou mais outros canais, em que um canal tem uma quantidade insignificante de conteúdos em relação a outro canal se sua energia ou nível absoluto for pelo menos 15 dB abaixo daquela do outro canal. Para alguns casos, um canal tem uma quantidade insignificante de conteúdos relação a outro canal se sua energia ou nível absoluto for pelo menos 18 dB abaixo daquela do outro canal, enquanto para outras aplicações, um canal tem uma quantidade insignificante de conteúdos em relação a outro canal se sua energia ou nível absoluto for pelo menos 25 dB abaixo daquela do outro canal.
[00046] Em algumas modalidades, os dados de áudio codificado são codificados de acordo com um dos conjuntos de padrões que consistem em padrão AC-3, padrão E-AC-3, um padrão compatível com tecnologias anteriores ao padrão E-AC-3, padrão MPEG-2 AAC, e padrão HE-A AC.
[00047] Em algumas modalidades da invenção, a transformação no método de codificação usa uma transformada sobreposta, e o processamento adicional inclui aplicar operações de janelamento e adição de sobreposição para to determinar os dados de áudio amostrados.
[00048] Em algumas modalidades da invenção, o método de codificação inclui formar e empacotar metadados relacionados aos dados de expoente e mantissa de domínio de frequência, em que os metadados incluem opcionalmente metadados relacionados ao processamento de pré-ruído transiente e ao downmixing.
[00049] As modalidades particulares podem proporcionar todos, alguns, ou nenhum dos aspectos, recursos, ou vantagens. As modalidades particulares podem proporcionar um ou mais outros aspectos, recursos, ou vantagens, em que um ou mais destes podem ser prontamente aparentes a um indivíduo versado na técnica a partir das figuras, descrições, e concretizações contidas no presente documento.
Decodificação de um fluxo codificado
[00050] As modalidades da presente invenção são descritas para decodificar o áudio que foi codificado de acordo com o padrão AC-3 Estendido (E-AC-3) a um fluxo de bit codificado. Os padrões E-AC-3 e AC-3 são descritos em detalhes no Advanced Television Systems Committee, Inc., (ATSC), "Digital Audio Compression Standard (AC-3, E-AC- 3)," Revisão B, Documento A/52B, 14 de junho de 2005, salvo em 1 de dezembro de 2009 em World Wide Web da Internet em
[00051] wwwAdotAatscAdotAorg/standards/a_52bAdotApdf,
[00052] (onde AdotA denota o período (".") no endereço real da Web). No entanto, a invenção não se limita à decodificação de um fluxo de bits codificado em E-AC-3, e pode ser aplicada a um decodificador e para decodificação de um fluxo de bits codificado de acordo com outro método de codificação, e a métodos de tal decodificação, aparelhos para decodificação, sistemas que realizam tal decodificação, em software que quando executado faz com que um ou mais processadores realizem tal decodificação, e/ou em meios de armazenamento tangível nos quais se armazena tal software. Por exemplo, as modalidades da presente invenção também são aplicáveis para decodificar o áudio que foi codificado de acordo com os padrões MPEG-2 AAC (ISO/IEC 13818-7) e MPEG-4 Audio (ISO/IEC 14496-3). O padrão MPEG-4 Audio inclui uma codificação AAC de Alta Eficiência versão 1 (HE- AAC vl) e uma codificação AAC de Alta Eficiência versão 2 (HE- AAC v2), coletivamente referidas no presente documento como HE-AAC.
[00053] AC-3 e E-AC-3 também são conhecidos como DOLBY® DIGITAL e DOLBY® DIGITAL PLUS. Uma versão de HE-AAC que incorpora alguns aperfeiçoamentos compatíveis adicionais também é conhecida como DOLBY® PULSE. Estes são marcas registradas de Dolby Laboratories Licensing Corporation, o requerente da presente invenção, e podem ser registradas em uma ou mais jurisdições. E-AC- 3 é compatível com AC-3 e inclui uma funcionalidade adicional.
Arquitetura x86
[00054] O termo x86 é comumente compreendido pelos indivíduos versados na técnica por se referir a uma família de arquiteturas de conjunto de instruções de processador cujas origens retrocedem ao processador Intel 8086. A arquitetura foi implementada em processadores de companhias como Intel, Cyrix, AMD, VIA, e muitas outras. Em geral, compreende-se que o termo implica uma compatibilidade binária com o conjunto de instruções de 32-bit do processador Intel 80386. Atualmente (início de 2010), a arquitetura x86 é ubíqua entre computadores desktop e notebook, assim como uma maioria crescente entre servidores e estações de trabalho. Uma grande quantidade de software suporta a plataforma, incluindo sistemas operacionais como MS-DOS, Windows, Linux, BSD, Solaris, e Mac OS X.
[00055] Conforme o uso em questão, o termo x86 significa uma arquitetura de conjunto de instruções de processador x86 que também suporta uma extensão de conjunto de instruções (SSE) de instrução única e múltiplos dados (SIMD). SSE é uma extensão de conjunto de instruções de instrução única e múltiplos dados (SIMD) à arquitetura x86 original introduzida em 1999 nos processadores da série Pentium III da Intel, e agora comuns em arquiteturas x86 produzidas por muitos vendedores.
Fluxos de bits AC-3 e E-AC-3
[00056] Um fluxo de bits AC-3 de um sinal de áudio de múltiplos canais é composto por quadros, que representam um intervalo de tempo constante de 1536 amostras moduladas de código de pulso (PCM) do sinal de áudio em todos os canais codificados. Até cinco canais principais e, opcionalmente, um canal de efeitos de baixa frequência (LFE) denotado ".1" são proporcionados, ou seja, até 5.1 canais de áudio são proporcionados. Cada quadro tem um tamanho fixo, que depende apenas da taxa de amostra e da taxa de dados codificados.
[00057] Resumidamente, a codificação AC-3 inclui utilizar uma transformada sobreposta - a transformada discreta modificada de cosseno (MDCT) como uma janela derivada de Kaiser Bessel (KBD) com 50% de sobreposição - para converter dados de tempo em dados de frequência. Os dados de frequência são perceptivamente codificados para compactar os dados de modo a formar um fluxo de bits compactado de quadros, em que cada um inclui dados de áudio codificados e metadados. Cada quadro AC-3 consiste em uma entidade independente, que não compartilha dados com os quadros anteriores além da sobreposição de transformada inerente no MDCT usado para converter dados de tempo em dados de frequência.
[00058] No início de cada quadro AC-3 encontram-se os campos SI (Informações de Sync) e BSI (Informações de Fluxo de Bits). Os campos SI e BSI descrevem a configuração de fluxo de bits, que inclui taxa amostrai, taxa de dados, número de canais codificados, e vários outros elementos de nível de sistemas. Da mesma forma, existem duas palavras CRC (código de redundância cíclica) por quadro, uma no início e uma no fim, que proporcionam um meio de detecção de erros.
[00059] Dentro de cada quadro existem seis blocos de áudio, em que cada um representa 256 amostras PCM por canal codificado de dados de áudio. O bloco de áudio contém indicadores de comutação de bloco, coordenadas de acoplamento, expoentes, parâmetros de alocação de bits, e mantissas. Permite o compartilhamento de dados dentro de um quadro, de tal modo que as informações apresentadas no Bloco 0 possam ser reutilizadas nos blocos subsequentes.
[00060] Um campo opcional de dados auxiliares fica localizado no fim do quadro. Este campo permite que os programadores do sistema incorporem informações privadas de controle ou status no fluxo de bits AC-3 para transmissão por sistemas.
[00061] E-AC-3 preserva estrutura de quadro AC-3 de seis transformadas de coeficiente 256, enquanto também permite quadros menores compostos por um, dois, e três blocos de transformada de coeficiente 256. Isto permite o transporte de áudio em taxas de dados maiores que 640 Kbps. Cada quadro E-AC-3 inclui metadados e dados de áudio.
[00062] E-AC-3 permite um número significativamente maior de canais do que 5.1 do AC-3, em particular, E-AC-3 permite o transporte de 6.1 e 7.1 áudio comum atualmente, e o transporte de pelo menos 13.1 canais para suportar, por exemplo, trilhas sonoras de áudio de múltiplos canais. Os canais adicionais além de 5.1 são obtidos associando-se o fluxo de bits de programa de áudio principal com até oito subfluxos dependentes adicionais, em que todos esses são multiplexados em um fluxo de bits E-AC-3. Isto permite que o programa de áudio principal transporte o formato de canal 5.1 de AC- 3, enquanto a capacidade de canal adicional é proveniente de fluxos de bits dependentes. Isto significa que uma versão de canal 5.1 e os vários downmixes convencionais sempre estejam disponíveis e que os instrumentos de codificação induzidos por subtração matricial sejam eliminados pelo uso de um processo de substituição de canal.
[00063] O suporte de múltiplos programas também está disponível através da capacidade de transportar mais sete fluxos de áudio independentes, cada um com possíveis subfluxos dependentes associados, para aumentar capacidade de transporte do canal de cada programa além dos 5.1 canais.
[00064] AC-3 usa ma transformada relativamente curta e uma quantização escalar simples para codificar perceptivamente o material de áudio. E-AC-3, enquanto compatível com AC-3, proporciona uma resolução espectral aperfeiçoada, uma quantização aperfeiçoada, e uma codificação aperfeiçoada. Com E-AC- 3, a eficiência de codificação aumentou a partir daquela de AC-3 para permitir o uso benéfico de taxas menores de dados. Isto é realizado utilizando-se um banco de filtro aperfeiçoado para converter dados de tempo em dados de domínio de frequência, quantização aperfeiçoada, acoplamento de canal aprimorado, extensão espectral, e uma técnica denominada processamento de pré-ruído transiente (TPNP).
[00065] Além da transformada sobreposta MDCT para converter dados de tempo em dados de frequência, E-AC-3 usa uma transformada híbrida adaptativa (AHT) para sinais de áudio estacionários. O AHT inclui o MDCT com a janela derivada de Kaiser Bessel (KBD) de sobreposição, seguido, para sinais estacionários, por uma transformada secundária de bloco sob a forma de uma transformada discreta de cosseno (DCT) tipo II não-janelada e não- sobreposta. Portanto, aAHT adiciona um DCT de segundo estágio após o filtro de banco AC-3 MDCT/KBD existente quando o áudio com características estacionárias estiver presente converter os seis blocos de transformada de coeficiente 256 em um único bloco de transformada híbrida de coeficiente 1536 com uma resolução de frequência aumentada. Esta resolução de frequência aumentada é combinada com uma quantização vetorial de 6 dimensões (VQ) e uma quantização adaptativa de ganho (GAQ) para aperfeiçoar a eficiência de codificação para alguns sinais, por exemplo, sinais "difíceis de se codificar". Utiliza-se VQ para codificar eficientemente as bandas de frequência que requerem precisões inferiores, enquanto GAQ proporciona uma eficiência maior quando a quantização de precisão superior for requerida.
[00066] A eficiência de codificação aperfeiçoada também é obtida através do uso de acoplamento de canal com preservação de fase. Este método se expande no método de acoplamento de canal AC-3 de utilizar um canal mono compósito de alta frequência que reconstitui a porção de alta frequência de cada canal na decodificação. A adição de informações de fase e processamento controlado de codificador de informações de amplitude espectral enviadas no fluxo de bits aperfeiçoa a fidelidade deste processo de tal modo que o canal mono compósito possa ser estendido a frequências menores em relação àquelas previamente possíveis. Isto diminui a largura de banda efetiva codificada, e, portanto, aumenta a eficiência de codificação.
[00067] E-AC-3 também inclui extensão espectral. A extensão espectral inclui substituir os coeficientes de transformada de frequência por segmentos espectrais de frequência inferior transladados em frequência. As características espectrais dos segmentos transladados são combinadas com as características originais através de modulação espectral dos coeficientes de transformada, e também através da mistura de componentes de ruído conformados com segmentos espectrais de frequência inferior.
[00068] E-AC-3 inclui um canal de efeitos de frequência baixa (LFE). Este consiste em um canal único opcional de largura de banda limitada (<120 Hz), que é destinado a ser reproduzido em um nível +10 dB em relação aos canais de largura de banda completa. O canal LFE opcional permite que níveis de pressão sonora alta sejam proporcionados para sons de frequência baixa. Outros padrões de codificação, por exemplo, AC-3 e HE-AAC também incluem um canal LFE opcional.
[00069] Uma técnica adicional de aperfeiçoar a qualidade de áudio em baixas taxas de dados é o uso de um processamento de pré-ruído transiente, descrito mais adiante.
Decodificação AC-3
[00070] Em implementações típicas do decodificador AC-3, com a finalidade de manter os requerimentos de memória e latência de decodificador os menores possíveis, cada quadro AC-3 é decodificado em uma série de loops aninhados.
[00071] Uma primeira etapa estabelece um alinhamento de quadro. Isto envolve descobrir a palavra de sincronização AC-3, e, então, conformar que as palavras de detecção de erros CRC não indicam erros. Uma vez que a sincronização de quadro for encontrada, os dados BSI são desempacotados para determinar informações importantes de quadro, tal como o número de canais codificados. Um dos canais pode ser um canal LFE. O número de canais codificados é denotado por Nn, onde n é o número de canais LFE, e N é o número de canais principais. Em padrões de codificação atualmente usados, n=0 ou 1. No futuro, estes podem ser os casos onde n>1
[00072] A próxima etapa na decodificação consiste em desempacotar cada um dos seis blocos de áudio. Com a finalidade de minimizar os requerimentos de memória dos buffers de dados modulados de código de pulso de saída (PCM), os blocos de áudio são desempacotados um de cada vez. No fim de cada período de bloco, os resultados PCM são, em muitas implementações, copiados para emitir buffers, que para uma operação em tempo real em um decodificador de hardware tipicamente são armazenados em buffer duas vezes ou de modo circular para um acesso de interrupção direta por um conversor analógico para digital (DAC).
[00073] O processamento de bloco de áudio de decodificador AC-3 pode ser dividido em dois estágios distintos, aqui referidos como processamento de entrada e saída. O processamento de entrada inclui todo o desempacotamento de fluxo de bits e a manipulação de canal codificado. O processamento de saída se refere primariamente aos estágios de janelamento e adição de sobreposição da transformada MDCT inversa.
[00074] Esta distinção é realizada por causa do número de canais principais de saída, aqui denotado por M>1, gerado por um decodificador AC-3 não é necessariamente compatível ao número de canais principais de entrada, aqui denotado por N, N>1 codificado no fluxo de bits, tipicamente com, mas não necessariamente, N>M. Através do uso de downmixing, um decodificador pode aceitar um fluxo de bits com qualquer número N de canais codificados e produzir um número arbitrário M, M>1, de canais de saída. Nota-se que, em geral, o número de canais de saída é denotado no presente documento por M m, onde M é o número de canais principais, e m é o número de canais de saída LFE. Em aplicações atuais, m=0 ou 1. Pode ser possível que se tenha m>1 no futuro.
[00075] Nota-se que no downmixing, nem todos os canais codificados são incluídos nos canais de saída. Por exemplo, em um 5.1 para downmix estéreo, as informações de canal LFE geralmente são descartadas. Portanto, em algum downmixing, n=1 e m=0, ou seja, não existem canais LFE de saída.
[00076] A figura 1 mostra um pseudocódigo 100 para instruções, que quando executadas, realizam um processo típico de decodificação AC-3.
[00077] O processamento de entrada em decodificação AC-3 tipicamente começa quando o decodificador desempacotar os dados fixos de bloco de áudio, que consiste em uma coleção de parâmetros e indicadores localizados no início do bloco de áudio. Estes dados fixos incluem itens como indicadores de comutação de bloco, informações de acoplamento, expoentes, e parâmetros de alocação de bits. O termo "dados fixos" se refere ao fato de que os tamanhos de palavra para estes elementos de fluxo de bits são conhecidos a priori, e, portanto, não é necessário que um processo de decodificação de comprimento variável recupere esses elementos.
[00078] Os expoentes constituem o maior campo único na região de dados fixos, já que estes incluem todos os expoentes a partir de cada canal codificado. Dependendo do modo de codificação, em AC-3, pode existir até um expoente por mantissa, até 253 mantissas por canal. Ao invés de desempacotar todos esses expoentes à memória local, multas implementações de decodificador salvam apontadores aos campos de expoente, e os desempacotam conforme a necessidade, um canal de cada vez.
[00079] Uma vez que os dados forem desempacotados, muitos decodificadores AC-3 conhecidos começam a processar cada canal codificado. Primeiramente, os expoentes para o dado canal são desempacotados a partir do quadro de entrada. Um cálculo de alocação de bits é, então, tipicamente realizado, que adota os expoentes e parâmetros de alocação de bits e computa os tamanhos de palavra para cada mantissa empacotada. As mantissas são, então, tipicamente desempacotadas a partir do quadro de entrada. As mantissas são escalonadas de modo a proporcionar um controle de faixa dinâmica, e, se necessário, desfazer a operação de acoplamento, e, então, desnormalizada pelos expoentes. Finalmente, uma transformada inversa é computada para determinar os dados de pré- adição de sobreposição, dados em o que são denominados como "domínio de janela," e os resultados são submetidos a downmix em buffers de downmix apropriados para um processamento de saída subsequente.
[00080] Em algumas implementações, os expoentes para o canal individual são desempacotados em um buffer com 256 amostras de comprimento, denominado como "buffer MDCT." Esses expoentes são, então, agrupados em até 50 bandas por propósitos de alocação de bits. O numero de expoentes em cada banda aumenta em direção às frequências de áudio maiores, aproximadamente seguindo uma divisão logarítmica que modela as bandas criticas fotoacústicas.
[00081] Para cada uma dessas bandas de alocação de bits, os expoentes e os parâmetros de alocação de bits são combinados para gerar um tamanho de palavra de mantissa para cada mantissa nesta banda. Esses tamanhos de palavra são armazenados em um buffer de banda com 24 amostras de comprimento, com a banda mais larga de alocação de bits constituída por 24 bins de frequência. Uma vez que os tamanhos de palavra tiverem sido computados, as mantissas correspondentes são desempacotadas a partir do quadro de entrada e armazenadas em posição de volta ao buffer de banda. Essas mantissas são escalonadas e desnormalizadas pelo expoente correspondente, e gravadas, por exemplo, gravadas em posição de volta ao buffer MDCT. Após todas as bandas tiverem sido processadas, e todas as mantissas desempacotadas, quaisquer locais restantes no buffer MDCT são tipicamente gravados com zeros.
[00082] Realiza-se uma transformada inversa, por exemplo, realizada em posição no buffer MDCT.
[00083] A saída deste processamento, os dados de domínio de janela, podem então ser submetidos a downmix nos buffers de downmix apropriados de acordo com os parâmetros de downmix, determinados de acordo com os metadados, por exemplo, buscados a partir de dados predefinidos de acordo com os metadados.
[00084] Uma vez que o processamento estiver completo e os buffers de downmix tiverem sido completamente gerados com dados submetidos a downmix de domínio de janela, o decodificador pode realizar o processamento de saída. Para cada canal de saída, um buffer de downmix e seu buffer de retardo de meio bloco com 128 amostras de comprimento são janelados e combinados para produzir 256 amostras de saída PCM. Em um sistema sonoro de hardware que inclui um decodificador de um ou mais DACs, essas amostras são arredondadas para a largura de palavra DAC e copiadas ao buffer de saída. Uma vez que isto for realizado, metade do buffer de downmix é, então, copiada a seu buffer de retardo correspondente, proporcionando 50% de informações de sobreposição necessárias para uma reconstrução apropriada do próximo bloco de áudio.
Decodificação E-AC-3
[00085] As modalidades particulares da presente invenção incluem um método de operação de um decodificador de áudio para decodificar os dados de áudio que incluem um número, denotado como N n de canais de dados de áudio codificado, por exemplo, um decodificador de áudio E-AC-3 para decodificar os dados de áudio codificado E-AC-3 de modo a formar os dados de áudio decodificados que incluem M m canais de áudio decodificado, n=0 ou 1, m=0 ou 1, e M>1. n=1 indica um canal LFE de entrada, m=1 indica um canal LFE de saída. M<N indica downmixing, M>N indica upmixing.
[00086] O método inclui aceitar os dados de áudio que incluem N n canais de dados de áudio codificado, codificar pelo método de codificação, por exemplo, através de um método de codificação que inclui transformar utilizando-se uma N canais de dados de áudio digital de transformada sobreposta, formar e empacotar os dados de expoente e mantissa de domínio de frequência, e formar e empacotar os metadados relacionados aos dados de expoente e mantissa de domínio de frequência, em que os metadados opcionalmente incluem metadados relacionados ao processamento de pré-ruído transiente, por exemplo, através de um método de codificação E-AC-3.
[00087] Algumas modalidades descritas no presente documento são projetadas para aceitar os dados de áudio codificados de acordo com o padrão E-AC-3 ou de acordo com um padrão compatível com tecnologias anteriores ao padrão E-AC-3, e podem incluir mais de 5 canais principais codificados.
[00088] Conforme será descrito em maiores detalhes abaixo, o método inclui decodificar os dados de áudio aceitos, em que a decodificação inclui: desempacotar os metadados e empacotar e decodificar os dados de expoente e mantissa de domínio de frequência; determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; transformar inversamente os dados de domínio de frequência; aplicar um janelamento e uma adição de sobreposição para determinar os dados de áudio amostrados; aplicar qualquer decodificação necessária de processamento de pré-ruído transiente aos metadados relacionados ao processamento de pré- ruído transiente; e, no caso onde M<N, realizar downmixing de acordo com os dados de downmixing. O downmixing inclui testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e realizar downmixing de acordo com os dados de downmixing com fading cruzado, e se permanecerem inalterados, realizar downmixing diretamente de acordo com os dados de downmixing.
[00089] Em algumas modalidades da presente invenção, o decodificador usa pelo menos um processador x86 que executa extensões de conjunto de instruções (SSE) de instrução única e múltiplos dados (SIMD), incluindo instruções vetoriais. Nessas modalidades, o downmixing inclui instruções vetoriais de execução em pelo menos um entre um ou mais processadores x86.
[00090] Em algumas modalidades da presente invenção, o método de decodificação para o áudio E-AC-3, que pode ser áudio AC-3, é particionado em módulos de operações que podem ser aplicadas mais de uma vez, isto é, instanciados mais de uma vez em diferentes implementações de decodificador. No caso de um método que inclui decodificar, a decodificação é particionada em um conjunto de operações de decodificação front-end (FED), e em um conjunto de operações de decodificação back-end (BED). Conforme será detalhado mais adiante, as operações de decodificação front-end que incluem desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência de um quadro de um fluxo de bits AC-3 ou E-AC-3 em dados de expoente e mantissa de domínio de frequência desempacotados e decodificados para o quadro, e os metadados anexos do quadro. As operações de decodificação back-end incluem determinar os coeficientes de transformada, transformar inversamente os coeficientes de transformada determinados, aplicar operações de janelamento e adição de sobreposição, aplicar qualquer decodificação necessária de processamento de pré-ruído transiente, e aplicar downmixing no caso onde existirem menos canais de saída do que canais codificados no fluxo de bits.
[00091] Algumas modalidades da presente invenção incluem um meio de armazenamento legível por computador que armazena instruções que quando executadas por um ou mais processadores de um sistema de processamento fazem com que o sistema de processamento realize uma decodificação de dados de áudio que inclui N n canais de dados de áudio codificado, de modo a formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1. Nos padrões atuais, n=0 ou 1 e m=0 ou 1, porém, a invenção não se limita a isto. As instruções incluem instruções que quando executadas causam a aceitação dos dados de áudio que incluem N n canais de dados de áudio codificados através de um método de codificação, por exemplo, AC-3 ou E-AC-3. As instruções incluem, ainda, instruções que quando executadas causam a decodificação dos dados de áudio aceitos.
[00092] Em algumas dessas modalidades, os dados de áudio aceitos se encontram sob a forma de um fluxo de bits de quadros AC-3 ou E-AC-3 de dados codificados. As instruções que quando executadas causam a decodificação dos dados de áudio aceitos são particionadas em um conjunto de módulos reutilizáveis de instruções, que incluem um nódulo de decodificação front-end (FED), e um módulo de decodificação back-end (BED). O módulo de decodificação front-end inclui instruções que quando executadas induzem a realização do desempacotamento e decodificação dos dados de expoente e mantissa de domínio de frequência de um quadro do fluxo de bits nos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados para o quadro, e os metadados anexos do quadro. O módulo de decodificação back-end inclui instruções que quando executadas induzem determinar os coeficientes de transformada, transformar inversamente, aplicar as operações de janelamento e adição de sobreposição, aplicar qualquer decodificação necessária de processamento de pré-ruído transiente, e aplicar downmixing no caso onde existirem menos canais de saída do que canais de entrada codificados.
[00093] As figuras 2A-2D mostra em formas de diagrama de blocos simplificado algumas configurações de decodificador diferentes que podem vantajosamente usar um ou mais módulos comuns. A figura 2A mostra um diagrama de blocos simplificado de um decodificador E-AC- 3 exemplificador 200 para um áudio 5.1 codificador AC-3 ou E-AC-3. Naturalmente, o uso do termo "bloco" quando se refere a blocos em um diagrama de blocos não é igual a um bloco de dados de áudio, em que o último se refere a uma quantidade de dados de áudio. O decodificador 200 inclui um módulo de decodificação front-end (FED) 201 que serve para aceitar quadros AC-3 ou E-AC-3 e realizar, quadro por quadro, um desempacotamento dos metadados do quadro e uma decodificação dos dados de áudio do quadro aos dados de expoente e mantissa de domínio de frequência. O decodificador 200 também inclui um módulo de decodificação back-end (BED) 203 que aceita os dados de expoente e mantissa de domínio de frequência a partir do módulo de decodificação front-end 201 e o decodifica em até 5.1 canais de dados de áudio PCM.
[00094] A decomposição do decodificador em um módulo de decodificação front-end e em um módulo de decodificação back-end consiste em uma escolha de projeto, não em um particionamento necessário. Esse particionamento não proporcionar benefícios de ter módulos comuns em várias configurações alternativas. O módulo FED pode ser comum a essas configurações alternativas, e muitas configurações têm em comum o desempacotamento dos metadados do quadro e a decodificação dos dados de áudio do quadro aos dados de expoente e mantissa de domínio de frequência conforme realizado pior um módulo FED.
[00095] Como um exemplo de uma configuração alternativa, a figura 2B mostra um diagrama de blocos simplificado de um decodificador/conversor E-AC-3 210 para um áudio 5.1 codificado E- AC-3 que decodifica o áudio 5.1 codificado AC-3 ou E-AC-3, e também converte um quadro codificado E-AC-3 de até 5.1 canais de áudio em um quadro codificado AC-3 de até 5.1 canais. O decodificador/conversor 210 inclui um módulo de decodificação front- end (FED) 201 que aceita os quadros AC-3 ou E-AC-3 e realiza, quadro por quadro, o desempacotamento dos metadados do quadro e a decodificação dos dados de áudio do quadro aos dados de expoente e mantissa de domínio de frequência. O decodificador/conversor 210 também inclui um módulo de decodificação back-end (BED) 203 que seja igual ou similar ao módulo BED 203 do decodificador 200, e que aceita os dados de expoente e mantissa de domínio de frequência a partir do módulo de decodificação front-end 201 e os decodifica em até 5.1 canais de dados de áudio PCM. O decodificador/conversor 210 também inclui um módulo conversor de metadados 205 que converte os metadados e um módulo de codificação back-end 207 que aceita os dados de expoente e mantissa de domínio de frequência a partir do módulo de decodificação front-end 201 e codifica os dados como um quadro AC-3 de até 5.1 canais de dados de áudio em uma taxa de dados máxima não maior que 640 kbps possível com AC-3.
[00096] Como um exemplo de uma configuração alternativa, a figura 2C mostra um diagrama de blocos simplificado de um decodificador E-AC-3 que decodifica um quadro AC-3 de até 5.1 canais de áudio codificado e também decodifica um quadro codificado E-AC-3 de até 7.1 canais de áudio. O decodificador 220 inclui um módulo de análise de informações de quadro 221 que desempacota os dados BSI e identifica os quadros e os tipos de quadros e proporciona os quadros aos elementos de decodificar front-end apropriados. Em uma implementação típica que inclui um ou mais processadores e a memória na qual as instruções são armazenadas que quando executadas causam a realização da funcionalidade dos módulos, múltiplas instanciações de um módulo de decodificação front-end, e múltipas instanciações de um módulo de decodificação back-end podem ser operacionais. Em algumas modalidades de um decodificador E-AC-3, a funcionalidade de desempacotamento BSI é separada do módulo de decodificação front-end para considerar os dados BSI. Isto permite que módulos comuns sejam usados em várias implementações alternativas. A figura 2C mostra um diagrama de blocos simplificado de um decodificador com tal arquitetura adequada para até 7.1 canais de dados de áudio. A figura 2D mostra um diagrama de blocos simplificado de um decodificador 5.1 240 com tal arquitetura. O decodificador 240 inclui um módulo de análise de informações de quadro 241, um módulo de decodificação front-end 243, e um módulo de decodificação back-end 245. Esses módulos FED e BED podem ser similares em estrutura aos módulos FED e BED usados na arquitetura da figura 2C.
[00097] Voltando-se à figura 2C, o módulo de análise de informações de quadro 221 proporciona os dados de um quadro codificado AC-3/E-AC3 independente de até 5.1 canais a um módulo de decodificação front-end 223 que aceita os quadros AC-3 ou E-AC-3 e realiza, quadro por quadro, o desempacotamento dos metadados do quadro e a decodificação dos dados de áudio do quadro aos dados de expoente e mantissa de domínio de frequência. Os dados de expoente e mantissa de domínio de frequência são aceitos por um módulo de decodificação back-end 225 que é igual ou similar ao BED module 203 do decodificador 200, e este aceita os dados de expoente e mantissa de domínio de frequência a partir do módulo de decodificação front- end 223 e decodifica os dados até 5.1 canais de dados de áudio PCM. Qualquer quadro codificado AC-3/E-AC3 dependente de dados de canal adicionais é proporcionado a outro módulo de decodificação front-end 227 que seja similar ao outro módulo FED, e, logo, desempacota os metadados do quadro e decodifica os dados de áudio do quadro em dados de expoente e mantissa de domínio de frequência. Um módulo de decodificação back-end 229 que aceita os dados a partir do módulo FED 227 e decodifica os dados em dados de áudio PCM de quaisquer canais adicionais. Um módulo mapeador de canal PCM 231 é usado para combinar os dados decodificados a partir dos respectivos módulos BED para proporcionar até 7.1 canais de dados PCM.
[00098] Se existirem mais de 5 canais principais codificados, isto é, caso N>5, por exemplo, existem 7.1 canais codificados, o fluxo de bit codificado inclui um quadro independente de até 5.1 canais codificados e pelo menos um quadro dependente de dados codificados. Em modalidades de software para este caso, por exemplo, as modalidades compreendendo um meio legível por computador que armazena instruções para execução, as instruções são dispostas como uma pluralidade de 5.1 módulos de decodificação de canal, cada 5.1 módulo de decodificação de canal que inclui uma respectiva instanciação de um módulo de decodificação front-end e uma respectiva instanciação de um módulo de decodificação back- end. A pluralidade de 5.1 módulos de decodificação de canal inclui um primeiro 5.1 módulo de decodificação de canal que quando executado causa a decodificação do quadro independente, e um ou mais outros módulos de decodificação de canal para cada respectivo quadro dependente. Em algumas dessas modalidades, as instruções incluem um módulo de análise de informações de quadro de instruções que quando executadas causar o desempacotamento do campo Informações de Fluxo de Bit (BSI) a partir de cada quadro para identificar os quadros e os tipos de quadro e proporcionam os quadros identificados à instanciação de módulo decodificador front-end apropriada, e um módulo mapeador de canal de instruções que quando executadas e no caso N>5 causam a combinação dos dados decodificados a partir dos respectivos módulos de decodificação back- end para formar os N canais principais de dados decodificados.
Método para operar um conversor de decodificador duplo AC-3/E-AC-3
[00099] Uma modalidade da invenção se encontra sob a forma de um conversor de decodificador duplo (DDC) que decodifica dois fluxos de bits de entrada AC-3/E-AC-3, designados como "principal" e "associado,"com até 5.1 canais cada, ao áudio PCM, e no caso de conversão, converte o fluxo de bits de áudio principal a partir de E-AC- 3 em AC-3, e no caso de decodificação, decodifica o fluxo de bits principal e, se presente, o fluxo de bits associado. O conversor de decodificador duplo mixa, opcionalmente, as duas saídas PCM utilizando-se metadados de mixagem extraídos do fluxo de bits de áudio associado.
[000100] Uma modalidade do conversor de decodificador duplo realiza um método de operar um decodificador para realizar os processos incluídos na decodificação e/ou conversão de até dois fluxos de bits de entrada AC-3/E-AC-3. Outra modalidade se encontra sob a forma de um meio de armazenamento tangível tendo instruções, por exemplo, instruções de software, que quando executadas por um ou mais processadores de um sistema de processamento, faz com que o sistema de processamento realize os processos incluídos na decodificação e/ou conversão de até dois fluxos de bits de entrada AC- 3/E-AC-3.
[000101] Uma modalidade do conversor de decodificador duplo AC- 3/E-AC-3 tem seis subcomponentes, alguns desses incluem subcomponentes comuns. Os módulos são:
[000102] Decodificador-conversor: O decodificador-conversor é configurado quando executado a decodificar um fluxo de bits de entrada AC-3/E-AC-3 (até 5.1 canais) ao áudio PCM, e/ou converter o fluxo de bits de entrada a partir de E-AC-3 em AC-3. O decodificador- conversor tem três subcomponentes principais, e podem implementar uma modalidade 210 mostrada na figura 2B anterior. Os subcomponentes principais são:
[000103] Decodificação front-end: O módulo FED é configurado, quando executado a decodificar um quadro de um fluxo de bits AC- 3/E-AC-3 em dados de áudio de domínio de frequência bruta e seus metadados anexos.
[000104] Decodificação back-end: O BED consiste em um módulo que é configurado, quando executado, a completar o restante do processo de decodificação que foi iniciado pelo módulo FED. Em particular, o módulo BED decodifica os dados de áudio (em formato de mantissa e expoente) em dados de áudio PCM.
[000105] Codificação back-end: O módulo de codificação back-end é configurado, quando executado a codificar um quadro AC-3 utilizando- se seis blocos de dados de áudio a partir do FED. O módulo de codificação back-end também é configurado, quando executado a sincronizar, resolver e converter metadados E-AC-3 em metadados Dolby Digital utilizando-se um módulo conversor de metadados incluídos.
[000106] Decodificador 5.1: O módulo decodificador 5.1 é configurado quando executado a decodificar um fluxo de bits de entrada AC-3/E-AC-3 (até 5.1 canais) ao áudio PCM. O decodificador 5.1 também emite, opcionalmente, metadados de mixagem para uso por um aplicativo externo para mixar dois fluxos de bits AC-3/E-AC-3. O módulo decodificador inclui dois subcomponentes principais: um módulo FED conforme descrito no presente documento e um módulo BED conforme descrito anteriormente. Um diagrama de blocos de um decodificador 5.1 exemplificador é mostrado na figura 2D.
[000107] Informações de quadro: O módulo de informações de quadro é configurado quando executado a analisar um quadro AC-3/E- AC-3 e desempacotar suas informações de fluxo de bits. Uma verificação CRC é realizada no quadro como parte do processo de desempacotamento.
[000108] Descritores de buffer: O módulo de descritores de buffer contém AC-3, E-AC-3 e descrições e funções de buffer PCM para operações de buffer.
[000109] Conversor de taxa de amostragem: O módulo conversor de taxa de amostragem é opcional, e configurado, quando executado a amostrar ascendentemente o áudio PCM por um fato de dois.
[000110] Mixador externo: O módulo mixador externo é opcional, e configurado quando executado a mixar um programa de áudio principal e um programa de áudio associado em um único programa de áudio de saída utilizando-se metadados de mixagem fornecidos no programa de áudio associado.
Projeto de módulo de decodificação front-end
[000111] O módulo de decodificação front-end decodifica dados de acordo com os métodos AC-3, e de acordo com os aspectos de decodificação adicionais E-AC-3, incluindo decodificar os dados AHT para sinais estacionários, acoplamento de canal aprimorado E-AC-3, e extensão espectral.
[000112] No caso de uma modalidade sob a forma de um meio de armazenamento tangível, o módulo de decodificação front-end compreende instruções de software armazenadas em um meio de armazenamento tangível que quando executado por um ou mais processadores de um sistema de processamento, causa as ações descritas nos detalhes aqui fornecidos para a operação do módulo de decodificação front-end. Em uma implementação de hardware, o módulo de decodificação front-end inclui elementos que são configurados em operação para realizar as ações descritas nos detalhes aqui fornecidos para a operação do módulo de decodificação front-end.
[000113] Na decodificação AC-3, a decodificação bloco-por-bloco é possível. Com E-AC-3, o primeiro bloco de áudio-bloco de áudio 0 de um quadro inclui as mantissas AHT de todos os 6 blocos.
[000114] Portanto, a decodificação bloco-por-bloco tipicamente não é usada, porém, de preferência, vários blocos são processados de uma vez. No entanto, o processamento dos dados reais é naturalmente realizado em cada bloco.
[000115] Em uma modalidade, com a finalidade de usar um método uniforme de decodificação/arquitetura de um decodificador independentemente se o AHT é usado, o módulo FED realiza, canal- por-canal, duas passagens. Uma primeira passagem inclui desempacotar os metadados bloco-por-bloco e salvar os apontadores onde os dados de expoente e mantissa empacotados são armazenados, e uma segunda passagem inclui usar os apontadores salvos aos expoentes e mantissas empacotados, e desempacotar e decodificar os dados de expoente e mantissa canal-por-canal.
[000116] A figura 3 mostra um diagrama de blocos simplificado de uma modalidade de um módulo de decodificação front-end, por exemplo, implementado como um conjunto de instruções armazenadas em uma memória que quando executada faz com que o processamento FED seja realizado. A figura 3 também mostra um pseudocódigo para instruções para a primeira passagem de um módulo de decodificação front-end de duas passagens 300, assim como um pseudocódigo para instruções para a segunda passagem de um módulo de decodificação front-end de duas passagens. O módulo FED inclui os módulos a seguir, cada um desses inclui instruções, em que algumas das instruções são definíveis já que definem estruturas e parâmetros:
[000117] Canal: O módulo de canal define as estruturas para representar um canal de áudio na memória e proporciona instruções para desempacotar e decodificar um canal de áudio a partir de um fluxo de bits AC-3 ou E-AC-3.
[000118] Alocação de bits: O módulo de alocação de bits proporciona instruções para calcular a curva de mascaramento e calcular a alocação de bits para dados codificados.
[000119] Operações de fluxo de bits: O módulo de operações de fluxo de bits proporciona instruções para desempacotar dados a partir de um fluxo de bits AC-3 ou E-AC-3.
[000120] Expoentes: O módulo de expoentes define as estruturas que servem para representar os expoentes na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam expoentes a partir de um fluxo de bits AC-3 ou E-AC-3.
[000121] Expoentes e mantissas: O módulo de expoentes e mantissas define estruturas que servem para representar expoentes e mantissas na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam os expoentes e mantissas a partir de um fluxo de bits AC-3 ou E-AC-3.
[000122] Matriciamento: O método de matriciamento fornece instruções configuradas que quando executadas suportam o desmatriciamento dos canais matriciados.
[000123] Dados auxiliares: O módulo de dados auxiliares define estruturas de dados auxiliares usadas no módulo FED para realizar um processamento FED.
[000124] Mantissas: O módulo de mantissas define estruturas que servem para representar mantissas na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam as mantissas a partir de um fluxo de bits AC-3 ou E-AC-3.
[000125] Transformada híbrida adaptativa: O módulo AHT proporciona instruções configuradas que quando executadas desempacotam e decodificam dados de transformada híbrida adaptativa a partir de um fluxo de bits E-AC-3.
[000126] Quadro de áudio: O módulo de quadro de áudio define estruturas que servem para representar um quadro de áudio na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam um quadro de áudio a partir de um fluxo de bits AC-3 ou E-AC-3.
[000127] Acoplamento aprimorado: O módulo de acoplamento aprimorado define estruturas que servem para representar um canal de acoplamento aprimorado na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam um canal de acoplamento aprimorado a partir de um fluxo de bits AC-3 ou E-AC-3. O acoplamento aprimorado estende um acoplamento tradicional em um fluxo de bits E-AC-3 proporcionando-se informações de fase e caos.
[000128] Bloco de áudio: O módulo de bloco de áudio define estruturas que servem para representar um bloco de áudio na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam um bloco de áudio a partir de um fluxo de bits AC-3 ou E-AC-3.
[000129] Extensão espectral: O módulo de extensão espectral proporciona suporte para decodificação de extensão espectral em um fluxo de bits E-AC-3.
[000130] Acoplamento: O método de acoplamento define estruturas que servem para representar um canal de acoplamento na memória e proporciona instruções configuradas que quando executadas desempacotam e decodificam um canal de acoplamento a partir de um fluxo de bits AC-3 ou E-AC-3.
[000131] A figura 4 mostra um diagrama de fluxo de dados simplificado para a operação de uma modalidade do módulo de decodificação front-end 300 da figura 3 que descreve como o pseudocódigo e os elementos de sub-módulos mostrados na figura 3 cooperam para realizar as funções de um módulo de decodificação front-end. Por um elemento funcional entende-se um elemento que realiza uma função de processamento. Cada elemento pode ser um elemento de hardware, ou um sistema de processamento e um meio de armazenamento que inclui instruções que quando executadas realizam a função. Um elemento funcional de desempacotamento de fluxo de bits 403 aceita um quadro AC-3/E-AC-3 e gera parâmetros de alocação de bits para um elemento funcional de alocação de bits padrão e/ou AHT 405 que produzem dados adicionais para o desempacotamento de fluxo de bits de modo a gerar essencialmente dados de expoente e mantissa para um elemento funcional de desacoplamento padrão/aprimorado 407. O elemento funcional 407 gera dados de expoente e mantissa para um elemento funcional de rematriciamento incluído 409 para realizar qualquer rematriciamento necessário. O elemento funcional 409 gera dados de expoente e mantissa para um elemento funcional de decodificação de extensão espectral incluída 411 para realizar qualquer extensão espectral necessária. Os elementos funcionais 407 a 411 usam os dados obtidos pela operação de desempacotamento do elemento funcional 403. O resultado da decodificação front-end consiste em dados de expoente e mantissa assim como parâmetros de quadro de áudio desempacotado adicional e parâmetros de bloco de áudio.
[000132] Referindo-se, em maiores detalhes, ao pseudocódigo de primeira e segunda passagem mostrado na figura 3, as instruções de primeira passagem são configuradas, quando executadas para desempacotar os metadados a partir de um quadro AC-3/E-AC-3. Em particular, a primeira passagem inclui desempacotar as informações BSI, e desempacotar as informações de quadro de áudio. Para cada bloco, iniciando-se com o bloco 0 até o bloco 5 (para 6 blocos por quadro), os dados fixos são desempacotados, e para cada canal, um apontador aos expoentes empacotados no fluxo de bits é salvo, os expoentes são desempacotados, e a posição no fluxo de bits no qual residem as mantissas empacotadas é salva. A alocação de bits é computada, e, com base na alocação de bits, as mantissas podem ser omitidas.
[000133] As segundas instruções de passagem são configuradas, quando executadas, para decodificar os dados de áudio a partir de um quadro de modo a formar dados de mantissa e expoente. Para cada bloco iniciando como bloco 0, o desempacotamento inclui carregar o apontador salvo aos expoentes empacotados, e desempacotar os expoentes apontados pelo menos, computar a alocação de bits, carregar o apontador salvo às mantissas empacotadas, e desempacotar as mantissas apontadas pelo mesmo. A decodificação inclui realizar um desacoplamento padrão e aperfeiçoado e gerar a(s) banda(s) de extensão espectral, e, com a finalidade de ser independente dos outros módulos, transferir os dados resultantes em uma memória, por exemplo, uma memória externa à memória interna da passagem, de tal modo que os dados resultantes possam ser acessados por outros módulos, por exemplo, o módulo BED. Por conveniência, esta é denominada como memória "externa", embora possa ser, conforme seria claro aos indivíduos versados na técnica, parte de uma única estrutura de memória para todos os módulos.
[000134] Em algumas modalidades, para um desempacotamento de expoente, os expoentes desempacotados durante a primeira passagem não são salvos com a finalidade de minimizar as transferências de memória. Se o AHT estiver em uso para um canal, os expoentes são desempacotados a partir do bloco 0 e copiados aos outros cinco blocos, numerados de 1 a 5. Se o AHT não estiver em uso para um canal, os apontadores aos expoentes empacotados são salvos. Se a estratégia de expoente de canal for reutilizar expoentes, os expoentes são novamente desempacotados utilizando-se apontadores salvos.
[000135] Em algumas modalidades, para acoplar um desempacotamento de mantissa, se o AHT for usado para o canal de acoplamento, todos os seis blocos de mantissas de canal de acoplamento AHT são desempacotados no bloco 0, e o pontilhamento regenerado para cada canal que seja um canal acoplado de modo a produzir um pontilhamento não-corrigido. Se o AHT não for usado para o canal de acoplamento, os apontadores às mantissas de acoplamento são salvos. Estes apontadores salvos são usados para re- desempacotar as mantissas para cada canal que consiste em um canal acoplado em um determinado bloco.
Projeto de módulo de decodificação back-end
[000136] O módulo de decodificação back-end (BED) é operacional em coletar dados de expoente e mantissa de domínio de frequência e decodificá-los em dados de áudio PCM. Os dados de áudio PCM são renderizados com base nos modos selecionados pelo usuário, compactação de faixa dinâmica, e modos de downmix.
[000137] Em algumas modalidades, nas quais o módulo de decodificação front-end armazena dados de expoente e mantissa em uma memória- denominada como memória externa - separada da memória de trabalho do módulo front-end, o módulo BED usa um processamento de quadro bloco-por-bloco para minimizar os requerimentos de buffer de downmix e retardo, e, para que seja compatível à saída do módulo front-end, usa as transferências a partir da memória para acessar os dados de expoente e mantissa para processar.
[000138] No caso de uma modalidade sob a forma de um meio de armazenamento tangível, o módulo de decodificação back-end compreende instruções de software armazenadas em um meio de armazenamento tangível que quando executado por um ou mais processadores de um sistema de processamento, causa as ações descritas nos detalhes aqui proporcionados para a operação do módulo de decodificação back-end. Em uma implementação de hardware, o módulo de decodificação back-end inclui elementos que são configurados em operação para realizar as ações descritas nos detalhes aqui proporcionados para a operação do módulo de decodificação back-end.
[000139] A figura 5A mostra um diagrama de blocos simplificado de uma modalidade de um módulo de decodificação back-end 500 implementado como um conjunto de instruções armazenado em uma memória, que quando executada, faz com que o processamento BED seja realizado. A figura 5A também mostra um pseudocódigo para instruções ao módulo de decodificação back-end 500. O módulo BED 500 inclui os seguintes módulos, cada um incluindo instruções, em que algumas dessas instruções são definíveis:
[000140] Controle de faixa dinâmica: O módulo de controle de faixa dinâmica proporciona instruções, que quando executadas, causam a realização de funções para controlar a faixa dinâmica do sinal decodificado, incluindo aplicar uma variação de ganho, e aplicar um controle de faixa dinâmica.
[000141] Transformada: O módulo de transformada proporciona instruções, que quando executadas, causam a realização das transformadas inversas, que incluem realizar uma transformada discreta inversa de cosseno modificada (IMDCT), que inclui realizar uma pré-rotação usada para calcular a transformada DCT inversa, realizar uma pós-rotação usada para calcular a transformada DCT inversa, e determinar a transformada rápida inversa de Fourier (IFFT).
[000142] Processamento de pré-ruído transiente: O módulo de processamento de pré-ruído transiente proporciona instruções, que quando executadas causa a realização de um processamento de pré- ruído transiente.
[000143] Janelamento e adição de sobreposição: O módulo de janelamento e adição de sobreposição com buffer de retardo proporciona instruções, que quando executadas, causam a realização do janelamento, e a operação de adição de sobreposição a reconstruir amostras de saída a partir das amostras transformadas inversas.
[000144] Downmix de domínio de tempo (TD): O módulo de downmix TD proporciona instruções, que quando executadas causa a realização de downmixing no domínio de tempo conforme a necessidade para um número menor de canais.
[000145] A figura 6 mostra um diagrama de fluxo de dados simplificado para a operação de uma modalidade do módulo de decodificação back-end 500 da figura 5A que descreve como os elementos de código e sub-módulos mostrados na figura 5A cooperam para realizar as funções de um módulo de decodificação back-end. Um elemento funcional de controle de ganho 603 aceita dados de expoente e mantissa a partir do módulo de decodificação front-end 300 e aplica qualquer controle de faixa dinâmica requerida, normalização de diálogo, e variação de ganho de acordo com os metadados. Os dados de expoente e mantissa resultantes são aceitos por uma mantissa de desnormalização pelo elemento funcional de expoentes 605 que gera os coeficientes de transformada para transformação inversa. Um elemento funcional de transformada inversa 607 aplica o IMDCT aos coeficientes de transformada para gerar amostras de tempo que consistem em pré-janelamento e adição de sobreposição. Essas amostras de domínio de tempo de adição de sobreposição são denominadas como amostras de "pseudo-domínio de tempo", e essas amostras se encontram onde se denomina pseudo-domínio de tempo. Estes são aceitos por um elemento funcional de janelamento e adição de sobreposição 609 que gera amostras PCM aplicando-se operações de janelamento e adição de sobreposição às amostras de pseudo- domínio de tempo. Qualquer processamento de pré-ruído transiente é aplicado por um processamento de pré-ruído transiente elemento funcional 611 de acordo com os metadados. Se especificado, por exemplo, nos metadados ou de outro modo, as amostras resultantes de pós-processamento de pré-ruído transiente PCM são submetidos a downmix ao número M m de canais de saída de amostras PCM por um elemento funcional de downmixing 613.
[000146] Reportando-se novamente à figura 5 A, o pseudocódigo para o processamento de módulo BED inclui, para cada bloco de dados, transferir os dados de mantissa e expoente para os blocos de um canal proveniente da memória externa, e, para cada canal: aplicar qualquer controle de faixa dinâmica requerido, normalização de diálogo, e variação de ganho de acordo com os metadados; desnormalizar as mantissas por expoentes para gerar os coeficientes de transformada para transformação inversa; computar um IMDCT aos coeficientes de transformada para gerar amostras de pseudo-domínio de tempo; aplicar operações de janelamento e adição de sobreposição às amostras de pseudo-domínio de tempo; aplicar qualquer processamento de pré-ruído transiente de acordo com os metadados; e, se necessário, realizar downmixing de domínio de tempo ao número M m de canais de saída de amostras PCM.
[000147] As modalidades de decodificação mostradas na figura 5 A incluem realizar tais ajustes de ganho aplicando deslocamentos de normalização de diálogo de acordo com os metadados, e aplicar fatores de ganho de controle de faixa dinâmica de acordo com os metadados. A realização desses ajustes de ganho no estádio onde os dados são proporcionados sob a forma de mantissa e expoente no domínio de frequência é vantajosa. As alterações de ganho podem variar com o passar do tempo, e tais alterações de ganho realizadas no domínio de frequência resultam em fading cruzado suave uma vez que a transformada inversa e as operações de janelamento/adição de sobreposição tiverem ocorrido.
Processamento de pré-ruído transiente
[000148] A codificação e a decodificação E-AC-3 foram projetadas para operar e proporcionar uma qualidade de áudio melhor em taxas de dados menores do que em AC-3. Em taxas de dados menores, a qualidade do áudio codificado pode ser negativamente impactada, especialmente para um material transiente relativamente difícil de se codificar. Este impacto na qualidade de áudio ocorre primariamente devido ao número limitado de bits de dados disponíveis para codificar precisamente estes tipos de sinais. Os instrumentos de codificação de transientes são exibidos como uma redução na definição do sinal transiente assim como o instrumento de "pré-ruído transiente" que mancha um ruído audível ao longo da janela de codificação devido a erros de quantização de codificação.
[000149] Conforme descrito anteriormente e nas figuras 5 e 6, o BED proporciona um processamento de pré-ruído transiente. A codificação E-AC-3 inclui uma codificação de processamento de pré-ruído transiente, para reduzir os instrumentos de pré-ruído transiente que possam ser introduzidos quando o áudio contendo transientes for codificado substituindo-se o segmento de áudio apropriado por um áudio que é sintetizado utilizando-se o áudio localizado antes do pré- ruído transiente. O áudio é processado utilizando-se uma síntese de escalonamento de tempo de tal modo que sua duração seja aumentada para que tenha um comprimento apropriado para substituir o áudio contendo o pré-ruído transiente. O buffer de síntese de áudio é analisado utilizando-se uma análise de cena de áudio e um processamento de similaridade máxima e, então, escalonado por tempo, de tal modo que sua duração seja aumentada o suficiente para substituir o áudio que contém o pré-ruído transiente. O áudio sintetizado de comprimento aumentado é usado para substituir o pré- ruído transiente e submetido a fading cruzado em um pré-ruído transiente existente logo antes do local do transiente de modo a garantir uma transição suave a partir do áudio sintetizado nos dados de áudio originalmente codificados. Utilizando-se o processamento de pré-ruído transiente, o comprimento do pré-ruído transiente pode ser dramaticamente reduzido ou removido, mesmo para o caso quando a comutação de blocos for desabilitada.
[000150] Em uma modalidade de codificador E-AC-3, a análise de síntese de escalonamento de tempo e o processamento para a ferramenta de processamento de pré-ruído transiente são realizados nos dados de domínio de tempo para determinar as informações de metadados, por exemplo, incluindo parâmetros de escalonamento de tempo. As informações de metadados são aceitas pelo decodificador junto ao fluxo de bit codificado. Os metadados de pré-ruído transiente transmitidos são usados para realizar um processamento de domínio de tempo no áudio decodificado de modo a reduzir ou remover o pré- ruído transiente introduzido por uma codificação de áudio de taxa de bits baixa em taxas de dados baixas.
[000151] O codificador E-AC-3 realiza uma análise de síntese de escalonamento de tempo e determina os parâmetros de escalonamento de tempo, com base no conteúdo de áudio, para cada transiente detectado. Os parâmetros de escalonamento de tempo são transmitidos como metadados adicionais, junto aos dados de áudio codificado.
[000152] Em um decodificador E-AC-3, os parâmetros de escalonamento de tempo ótimos proporcionados em metadados E-AC- 3 são aceitos como parte dos metadados E-AC-3 aceitos para uso no processamento de pré-ruído transiente. O decodificador realiza uma divisão de buffer de áudio e um fading cruzado utilizando-se os parâmetros de escalonamento de tempo transmitidos obtidos a partir dos metadados E-AC-3.
[000153] Utilizando-se as informações de escalonamento de tempo ótimas e aplicando-as com o processamento de fading cruzado apropriado, o pré-ruído transiente introduzido por codificação de áudio de taxa de bits baixa pode ser dramaticamente reduzido ou removido na decodificação.
[000154] Portanto, o processamento de pré-ruído transiente sobrescreve o pré-ruído com um segmento de áudio que mais se parece com o conteúdo original. As instruções de processamento de pré-ruído transiente, quando executadas, mantêm um buffer de retardo de quatro blocos para uso em cópias. As instruções de processamento de pré-ruído transiente, quando executadas, no caso onde ocorre uma sobrescrita, induz a realização de um aumento ou diminuição cruzada gradual no pré-ruído sobrescrito.
Downmixinq
[000155] Denotado por N n, o número de canais codificados no fluxo de bits E-AC-3, onde N é o número de canais principais, e n=0 ou 1 é o número de canais LFE. Geralmente, deseja-se realizar downmix nos N canais principais em um número menor, denotado por M, de canais principais de saída. O downmixing de N a M canais, M<N é suportado pelas modalidades da presente invenção. Um upmixing também é possível, em que neste caso M>N.
[000156] Portanto, em uma implementação mais geral, as modalidades de decodificador de áudio são operacionais para decodificar os dados de áudio que incluem N n canais de dados de áudio codificado para decodificar os dados de áudio que incluem M m canais de áudio decodificado, e M>1, com n, m indicando o número de canais LFE na entrada, na saída respectivamente. O downmixing é o caso M<N e, de acordo com um conjunto de coeficientes de downmixing, incluído no caso case M<N.
Domínio de frequência vs. downmixinq de dominio de tempo
[000157] O downmixing pode ser totalmente realizado no dominio de frequência, antes da transformada inversa, no dominio de tempo após a transformada inversa, porém, no caso de um processamento de bloco de adição de sobreposição antes das operações de janelamento e adição de sobreposição, ou no domínio de tempo após a operação de janelamento e adição de sobreposição.
[000158] O downmixing de domínio de frequência (FD) é muito mais eficiente do que o downmixing de domínio de tempo. Sua eficiência se origina, por exemplo, a partir do fato de que quaisquer etapas de processamento subsequentes à etapa de downmixing são somente realizadas no número restante de canais, que é geralmente menor após o downmixing. Portanto, a complexidade computacional de todas as etapas de processamento subsequentes à etapa de downmixing é reduzida pelo menos em uma razão entre os canais de entrada e os canais de saída.
[000159] Como um exemplo, considera-se um canal 5.0 para downmix estéreo. Neste caso, a complexidade computacional de qualquer etapa de processamento subsequente será reduzida em aproximadamente um fator de 5/2 = 2,5.
[000160] O downmixing de domínio de tempo (TD) é usado em decodificadores E-AC-3 típicos e nas modalidades descritas anteriormente e ilustradas pelas figuras 5A e 6. Existem três razões principais para que os decodificadores E-AC-3 típicos utilizem downmixing de domínio de tempo:
Canais com diferentes tipos de bloco
[000161] Dependendo do conteúdo de áudio a ser codificado, um codificador E-AC-3 pode escolher entre dois tipos de bloco diferentes - bloco curto e bloco longo - para segmentar os dados de áudio. Os dados de áudio harmônicos e lentamente alterados são tipicamente segmentados e codificados utilizando-se os blocos longos, enquanto os sinais transientes são segmentados e codificados em blocos curtos. Como resultado, a representação de domínio de frequência de blocos curtos e blocos longos é inerentemente diferente e não pode ser combinada em uma operação de downmixing de domínio de frequência.
[000162] Somente depois que as etapas de codificação específica por tipo de bloco forem desfeitas no decodificador, os canais podem ser misturados. Portanto, no caso de transformadas comutadas por bloco, utiliza-se um processo de transformada inversa parcial diferente, e os resultados das duas transformadas não pode ser diretamente combinado logo antes do estágio de janela.
[000163] No entanto, os métodos são conhecidos por converter primeiramente os dados de transformada de comprimento curto em dados de domínio de frequência mais longos, neste caso, o downmixing pode ser realizado no domínio de frequência. Todavia, na maioria das implementações de decodificador conhecidas, o downmixing é realizado após a transformação inversa de acordo com os coeficientes de downmixing.
Upmix
[000164] Se o número de canais principais de saída for maior que o número de canais principais de entrada, M>N, uma abordagem de mixagem de domínio de tempo é benéfica, à medida que move a etapa de upmixing em direção ao fim do processamento, reduzindo o número de canais no processamento.
TPNP
[000165] Os blocos que são submetidos ao processamento de pré- ruído transiente (TPNP) podem não ser submetidos a downmix no domínio de frequência, porque o TPNP opera no domínio de tempo. O TPNP requer um histórico de até quatro blocos de dados PCM (1024 amostras), que deve estar presente para o canal no qual o TPNP é aplicado. A comutação ao downmix de domínio de tempo é, portanto, necessária para preencher o histórico de dados PCM e realizar s substituição de pré-ruído.
[000166] Downmixing híbrido que utiliza tanto downmixing de domínio de frequência como downmixing de domínio de tempo
[000167] Os inventores reconhecem que os canais na maioria dos sinais de áudio codificado usam o mesmo tipo de bloco durante mais de 90% do tempo. Isto significa que o downmixing de domínio de frequência mais eficiente funcionaria para mais de 90% dos dados em um áudio codificado típico, supondo que não exista TPNP. Os 10% restantes ou menos requerem que o downmixing de domínio de tempo ocorra em decodificadores E-AC-3 típicos da técnica anterior.
[000168] As modalidades da presente invenção incluem uma lógica de seleção do método de downmix para determinar bloco-por-bloco qual método de downmixing aplicar, e tanto a lógica de downmixing de domínio de tempo, como a lógica de downmixing de domínio de frequência aplicam o método de downmixing particular conforme apropriado. Portanto, uma modalidade do método inclui determinar bloco por bloco se aplica um downmixing de domínio de frequência ou um downmixing de domínio de tempo. A lógica de seleção do método de downmix opera para determinar se aplica um downmixing de domínio de frequência ou um downmixing de domínio de tempo, e inclui determinar se existe algum processamento de pré-ruído transiente, e determinar se algum dos N canais tem um tipo de bloco diferente. A lógica de seleção determina que o downmixing de domínio de frequência deve ser aplicado apenas para um bloco que tenha o mesmo tipo de bloco nos N canais, no processamento de pré-ruído transiente, e M<N.
[000169] A figura 5B mostra um diagrama de blocos simplificado de uma modalidade de um módulo de decodificação back-end 520 implementado como um conjunto de instruções armazenadas em uma memória que quando executada faz com que o processamento BED seja realizado. A figura 5B também mostra um pseudocódigo para instruções ao módulo de decodificação back-end 520. O módulo BED 520 inclui os módulos mostrados na figura 5A que usam apenas o downmixing de domínio de tempo, e os módulos adicionais a seguir, em que cada um inclui instruções, em que algumas dessas instruções são definíveis:
[000170] O módulo de seleção do método de downmix que verifica (i) a alteração do tipo de bloco; (ii) se não existe nenhum downmixing verdadeiro (M<N), mas, de preferência, upmixing, e (iii) se o bloco é submetido a TPNP, e se nenhum desses for verdadeiro, selecionar o downmixing de domínio de frequência. Este módulo realiza a determinação bloco por bloco se aplica um downmixing de domínio de frequência ou um downmixing de domínio de tempo.
[000171] O módulo de downmix de domínio de frequência que realiza, após a desnormalização das mantissas por expoentes, realiza downmixing de domínio de frequência. Nota-se que o módulo de downmix de domínio de frequência também inclui um módulo de lógica de transição de domínio de tempo para domínio de frequência que verifica se o bloco anterior usou o downmix de domínio de tempo, em que neste caso o bloco é manipulado diferentemente conforme descrito em maiores detalhes mais adiante. Além disso, o módulo de lógica de transição também lida com as etapas de processamento associadas a determinados eventos recorrentes não-regulares, por exemplo, alterações de programa, tal como os canais de diminuição gradual.
[000172] O módulo de lógica de transição de downmix FD a TD que verifica se o bloco anterior usou o downmix de domínio de frequência, em que neste caso o bloco é manipulado diferente conforme descrito em maiores detalhes mais adiante. Além disso, o módulo de lógica de transição também lida com as etapas de processamento associadas a determinados eventos recorrentes não-regulares, por exemplo, alterações de programa, tal como os canais de diminuição gradual.
[000173] Além disso, os módulos que se encontram na figura 5A devem se comportar diferentemente nas modalidades que incluem um downmixing híbrido, isto é, tanto o downmixing FD como o downmixing TD dependem de uma ou mais condições para o bloco atual.
[000174] Reportando-se ao pseudocódigo da figura 5B, algumas modalidades do método de decodificação back-end incluem, após transferir os dados de um quadro de blocos a partir da memória externa, certificar se downmixing FD ou downmixing TD. Para downmixing FD, em cada canal, o método inclui (i) aplicar um controle de faixa dinâmica e normalização de diálogo, porém, conforme discutido mais adiante, desabilita a variação de ganho; (ii) desnormalizar as mantissas por expoentes; (iii) realiza um downmixing FD; e (iv) certificar se existem canais de diminuição gradual ou se o bloco anterior foi submetido a downmix através do downmixing de domínio de tempo, em que neste caso o processamento é realizado diferentemente conforme descrito mais adiante em maiores detalhes. Para o caso de downmixing TD, e também para dados submetidos a downmix FD, o processo inclui para cada canal: (i) processar diferentemente os blocos a serem submetidos a downmix TD no caso onde o bloco anterior foi submetido a downmix FD e também manipula quaisquer alterações de programa; (ii) determinar a transformada inversa; (iii) realizar uma adição de sobreposição de janela; e, no caso de downmixing TD, (iv) realizar qualquer TPNP e realizar downmixing ao canal de saída apropriado.
[000175] A figura 7 mostra um diagrama de fluxo de dados simples. O bloco 701 corresponde à lógica de seleção do método de downmix que testa três condições: alteração do tipo de bloco, TPNP, ou upmixing, e qualquer condição é verdadeira, direciona o fluxo de dados a uma ramificação de downmixing TD 721 que inclui em 723 uma lógica de transição de downmix FD para processar diferentemente um bloco que ocorre imediatamente após um bloco processado por downmixing FD, processamento de alteração de programa, e em 725 desnormalizar a mantissa por expoentes. O fluxo de dados após o bloco 721 é processado por um bloco de processamento comum 731. Se o bloco de lógica de seleção do método de downmix 701 for testado, determina-se que o bloco serve para realizar downmixing FD das ramificações de fluxo de dados ao processamento de downmixing FD 711 que inclui um processo de downmix de domínio de frequência 713 que desabilita a variação de ganho, e para cada canal, desnormaliza as mantissas por expoentes e realiza um downmixing FD, e um bloco de lógica de transição de downmix TD 715 para determinar se o bloco anterior foi processado por downmixing TD, e processar tal bloco diferentemente, e, também, detectar e manusear quaisquer alterações de programa, tal como os canais de diminuição gradual. O fluxo de dados após o bloco de transição de downmix TD 715 é igual ao bloco de processamento comum 731.
[000176] O bloco de processamento comum 731 inclui transformação inversa e qualquer processamento de domínio de tempo adicional. O processamento de domínio de tempo adicional inclui desfazer a variação de ganho, e o processamento de janelamento e adição de sobreposição. Se o bloco for proveniente do bloco de downmixing TD 721, o processamento de domínio de tempo adicional inclui, ainda, qualquer processamento TPNP e downmixing de domínio de tempo.
[000177] A figura 8 mostra um fluxograma de uma modalidade de processamento para um módulo de decodificação back-end, tal como aquele mostrado na figura 7. O fluxograma é particionado da seguinte forma, com as mesmas referências numéricas usadas na figura 7 para os respectivos blocos de fluxo de dados funcionais similares: uma seção de lógica de seleção de método de downmix 701 na qual um indicador lógico FD_dmx é usado para indicar quando tal downmixing de domínio de frequência é usado para o bloco; um seção de lógica de downmixing TD 721 que inclui uma seção de lógica de transição de downmix FD e lógica de alteração de programa 723 para processar diferentemente um bloco que ocorre imediatamente após um bloco processado por downmixing FD e realiza um processamento de alteração de programa, e uma seção para desnormalizar a mantissa por expoentes para cada canal de entrada. O fluxo de dados após o bloco 721 é processado por uma seção de processamento comum 731. Se o bloco de lógica de seleção do método de downmix 701 determinar que o bloco serve para downmixing FD, o fluxo de dados se ramifica à seção de processamento de downmixing FD 711 que inclui um processo de downmix de domínio de frequência que desabilita a variação de ganho, e para cada canal, desnormaliza as mantissas por expoentes e realiza um downmixing FD, e uma seção de lógica de transição de downmix TD 715 para determinar para cada canal do bloco anterior se existe um canal de diminuição gradual ou se o bloco anterior foi processado por downmixing TD, e processar tal bloco diferentemente. O fluxo de dados após a seção de transição de downmix TD 715 serve para a mesma seção de lógica de processamento comum 731. A seção de lógica de processamento comum 731 inclui para cada canal uma transformação inversa e qualquer processamento adicional de domínio de tempo. O processamento adicional de domínio de tempo inclui desfazer a variação de ganho, e o processamento de janelamento e adição de sobreposição. Se FD_dmx for igual a 0, indicando downmixing TD, o processamento adicional de domínio de tempo em 731 também inclui qualquer processamento TPNP e downmixing de domínio de tempo.
[000178] Nota-se que após o downmixing FD, na seção de lógica de transição de downmix TD 715, em 817, o número de canais de entrada N é ajustado como sendo igual ao número de canais de saída M, de tal modo que o restante do processamento, por exemplo, o processamento em uma seção de lógica de processamento comum 731 seja realizado nos dados submetidos a downmix. Isto reduz a quantidade de computação. Naturalmente, o downmixing de domínio de tempo dos dados a partir do bloco anterior quando existir uma transição a partir de um bloco que foi submetido a downmix TD - esse downmixing TD mostrado como 819 na seção 715- é realizado em todos aqueles N canais de entrada que são envolvidos no downmixing.
Manipulação de transição
[000179] Na decodificação, é necessário ter transições suaves entre os blocos de áudio. E- AC-3 e muitos outros métodos de codificação usam uma transformada sobreposta, por exemplo, uma sobreposição de 50% de MDCT. Portanto, ao processar um bloco atual, existe 50% de sobreposição com o bloco anterior, e, além disso, será 50% sobreposto com o bloco seguinte no domínio de tempo. Algumas modalidades da presente invenção usam uma lógica de adição de sobreposição que inclui um buffer de adição de sobreposição. Ao se processar um bloco presente, o buffer de adição de sobreposição contém dados provenientes do bloco de áudio anterior. Devido ao fato de ser necessário ter transições suaves entre os blocos de áudio, a lógica é incluída par manipular diferentemente as transições a partir de downmixing TD para downmixing FD, e a partir de downmixing FD para downmixing TD.
[000180] A figura 9 mostra um exemplo de processamento de cinco blocos, denotados como bloco k, k+1, k+4 de cinco canais de áudio que incluem comumente: canais esquerdo, central, direito, surround esquerdo e surround direito, denotados como L, C, R, LS, e RS, respectivamente, e downmixing a uma mixagem estéreo utilizando-se a fórmula: Saída esquerda denotada como L-aC+bL+cLS, e Saída direita denotada como R'= aC+bR+cRS.
[000181] A figura 9 supõe que uma transformada não-sobreposta seja usada. Cada retângulo representa os conteúdos de áudio de um bloco. Os eixos geométricos horizontais da esquerda para direita representam os blocos k, ... , k+4 e os eixos geométricos verticais de cima para baixo representam o progresso de decodificação de dados. Supõe-se que o bloco k seja processado por downmixing TD, os blocos k+1 e k+2 processados por downmixing FD, e os blocos k+3 e k+4 por downmixing TD. Conforme se pode observar, para cada um dos blocos de downmixing TD, o downmixing não ocorre até após o downmixing de domínio de tempo em direção à parte inferior após a qual os conteúdos são os canais L' e R' submetidos a downmix, enquanto para o bloco submetido a downmix FD, os canais esquerdo e direito no domínio de frequência já se encontram submetidos a downmix após o downmixing de domínio de frequência, e os dados de canal C, LS, e RS são ignorados. Visto que não existem sobreposições entre os blocos, nenhuma manipulação de caso especial é requerida ao se comutar a partir de downmixing TD para downmixing FD ou a partir de downmixing FD para downmixing TD.
[000182] A figura 10 descreve o caso de transformadas 50% sobrepostas. Supõe-se que uma adição de sobreposição seja realizada por uma decodificação de adição de sobreposição utilizando- se um buffer de adição de sobreposição. Neste diagrama, quando o bloco de dados for mostrado como dois triângulos, o triângulo inferior esquerdo consiste nos dados no buffer de adição de sobreposição a partir do bloco anterior, enquanto o triângulo superior direito mostra os dados a partir do bloco atual.
Manipulação de transição para uma transição de downmix TD para downmix FD
[000183] Considera-se o bloco k+1 que consiste em um bloco de downmixing FD que segue imediatamente um bloco de downmixing TD. Após o downmixing TD, o buffer de adição de sobreposição contém os dados L, C, R, LS, e RS a partir do último bloco que precisa ser incluído para o presente bloco. Da mesma forma, inclui-se a contribuição do bloco atual k+1, já submetido a downmix FD. Com a finalidade de determinar apropriadamente os dados PCM submetidos a downmix para saída, tanto os dados do bloco presente como os dados do bloco anterior precisam estar incluídos. Para isto, os dados do bloco anterior precisam ser apagados e, visto que ainda não foram submetidos a downmix, são submetidos a downmix no domínio de tempo. As duas contribuições precisam ser adicionadas para determinar os dados PCM submetidos a downmix para saída. Este processamento está incluído na lógica de transição de downmix TD 715 das figuras 7 e 8, e pelo código na lógica de transição de downmix TD incluído no módulo de downmix FD mostrado na figura 5B. O processamento realizado é resumido na seção de lógica de transição de downmix TD 715 da figura 8. Em maiores detalhes, a manipulação de transição para uma transição de downmix TD para downmix FD inclui: • Apagar os buffers de sobreposição colocando-se zeros na lógica de adição de sobreposição e realizando-se um janelamento e uma adição de sobreposição. Copiar a saída apagada a partir da lógica de adição de sobreposição. Estes são os dados PCM do bloco anterior do canal particular antes de realizar downmixing. O buffer de sobreposição agora contém zeros. • Realizar downmix de domínio de tempo nos dados PCM a partir dos buffers de sobreposição para gerar dados PCM do downmix TD do bloco anterior. • Realizar downmix de domínio de frequência dos novos dados a partir do bloco atual. Realizar uma transformada inversa e carregar novos dados após o downmixing FD e uma transformada inversa na lógica de adição de sobreposição, e assim por diante, com os novos dados para gerar dados PCM do downmix FD do bloco atual. • Adicionar os dados PCM do downmix TD e do downmix FD para gerar uma saída PCM.
[000184] Nota-se que em uma modalidade alternativa, supondo-se que não exista um TPNP no bloco anterior, os dados nos buffers de adição de sobreposição são submetidos a downmix, então, realiza-se uma operação de adição de sobreposição nos canais de saída submetidos a downmix. Isto evita a necessidade de realizar uma operação de adição de sobreposição para cada canal de bloco anterior. Além disso, conforme descrito anteriormente para decodificação AC-3, quando um buffer de downmix e seu buffer de retardo de meio bloco com 128 amostras de comprimento correspondente for usado, janelado e combinado para produzir 256 amostras de saída PCM, a operação de downmix é mais simples porque o buffer de retardo tem apenas 128 amostras ao invés de 256. Este aspecto reduzir a complexidade computacional de pico que é inerente ao processamento de transição. Portanto, em algumas modalidades, para um bloco particular que é submetido a downmix FD seguindo um bloco cujos dados foram submetidos a downmix TD, o processamento de transição inclui aplicar downmixing no pseudo- domínio de tempo aos dados do bloco anterior que deve ser sobreposto aos dados decodificados do bloco particular.
[000185] Manipulação de transição para uma transição de downmix FD para downmix TD
[000186] Considera-se o bloco k+3 que consiste em um bloco de downmixing FD que segue imediatamente um bloco k+2 de downmixing TD. Devido ao fato de o bloco anterior ter sido um bloco de downmixing de domínio FD, o buffer de adição de sobreposição nos estágios anteriores, por exemplo, antes de o downmixing TD conter os dados submetidos a downmix nos canais esquerdo e direito, e nenhum dado nos outros canais. As contribuições do bloco atual não são submetidas a downmix até após o downmixing TD. Com a finalidade de determine apropriadamente os dados PCM submetidos a downmix para saída, tanto os dados do bloco presente como os dados do bloco anterior precisam estar incluídos. Para isto, os dados do bloco anterior precisam ser incluídos. Para isto, os dados do bloco anterior precisam ser apagados. Os dados do bloco presente precisam ser submetidos a downmix no domínio de tempo e adicionados aos dados de transformada inversa que foram apagados para determinar os dados PCM submetidos a downmix para saída. Este processamento é incluído na lógica de transição de downmix FD 723 das figuras 7 e 8, e pelo código no módulo de lógica de transição de downmix FD mostrado na figura 5B. O processamento realizado é resumido na seção de lógica de transição de downmix FD 723 da figura 8. Em maiores detalhes, supondo-se que existem buffers PCM de saída para cada canal de saída, a manipulação de transição para uma transição de downmix FD para downmix TD inclui: • Apagar os buffers de sobreposição colocando-se zeros na lógica de adição de sobreposição e realizando-se um janelamento e uma adição de sobreposição. Copiar a saída no buffer PCM de saída. Os dados apagados são os dados PCM do downmix FD do bloco anterior. O buffer de sobreposição agora contém zeros. • Realizar uma transformação inversa dos novos dados do bloco atual para gerar dados de pré-downmixing do bloco atual. Carregar estes novos dados de domínio de tempo (após a transformada) na lógica de adição de sobreposição. • Realizar um janelamento e uma adição de sobreposição, TPNP se existir, e realizar downmix TD com os novos dados a partir do bloco atual para gerar dados PCM do downmix TD do bloco atual. • Adicionar os dados PCM do downmix TD e do downmix FD para gerar uma saída PCM.
[000187] Além das transições a partir do downmixing de domínio de tempo para o downmixing de domínio de frequência, as alterações de programa são manipuladas no manipulador de lógica de transição de downmix de domínio de tempo e alteração de programa. Os canais recentemente emergentes são automaticamente incluídos no downmix e, portanto, não precisam de nenhum tratamento especial. Os canais que já não estão mais presentes no novo programa precisam ser diminuídos gradualmente. Isto é realizado, conforme mostrado na seção 715 na figura 8 para o caso de downmixing FD, apagando-se os buffers de sobreposição dos canais de fading. O apagamento é realizado colocando-se zeros na lógica de adição de sobreposição e realizando-se um janelamento e uma adição de sobreposição.
[000188] Nota-se que o fluxograma mostrado e, em algumas modalidades, a seção de lógica de downmix de domínio de frequência 711 inclui desabilitar o recurso de variação de ganho opcional para todos os canais que fazem patê do downmix de domínio de frequência. Os canais podem ter diferentes parâmetros de variação de ganho que induzem um escalonamento diferente de coeficientes espectrais de um canal, evitando, assim, um downmix.
[000189] Em uma implementação alternativa, a seção de lógica de downmixing FD 711 é modificada de tal modo que o mínimo de todos os ganhos seja usado para realizar uma variação de ganho para um canal submetido a downmix (domínio de frequência).
[000190] Downmixing de domínio de tempo com coeficientes de downmixing de alteração e necessidade por um fading cruzado explícito
[000191] O downmixing pode criar vários problemas. As diferentes equações de downmix são exigidas em diferentes circunstâncias, portanto, os coeficientes de downmix podem precisar ser alterados dinamicamente com base nas condições de sinal. Os parâmetros de metadados disponíveis são aqueles que permitem personalizar os coeficientes de downmix para resultados ótimos.
[000192] Portanto, os coeficientes de downmixing podem se alterar com o passar do tempo. Quando existir uma alteração a partir de um primeiro conjunto de coeficientes de downmixing para um segundo conjunto de coeficientes de downmixing, os dados devem ser submetidos a um fading cruzado a partir do primeiro conjunto para o segundo conjunto.
[000193] Quando um downmixing for realizado no domínio de frequência, e também em muitas implementações de decodificador, por exemplo, em um decodificador AC-3 da técnica anterior, tal como aquele mostrado na figura 1, o downmixing é realizado antes das operações de janelamento e adição de sobreposição. A vantagem de realizar um downmixing no domínio de frequência, ou no domínio de tempo antes do janelamento e adição de sobreposição é que existe um fading cruzado inerente como resultado das operações de adição de sobreposição. Portanto, em muitos decodificadores AC-3 conhecidos e métodos de decodificação onde o downmixing é realizado no domínio de janela após a transformação inversa, ou no domínio de frequência nas implementações de downmixing híbrido, não existe uma operação de fading cruzado explícita.
[000194] No caso de downmixing de dominio de tempo e processamento de pré-ruído transiente (TPNP), existe um retardo de bloco na decodificação de processamento de pré-ruído transiente causada por problemas na alteração do programa, por exemplo, em um decodificador 7.1. Portanto, nas modalidades da presente invenção, quando um downmixing for realizado no domínio de tempo e um TPNP for usado, o downmixing de domínio de tempo é realizado após o janelamento e a adição de sobreposição. A ordem de processamento no caso de downmixing de domínio de tempo ser usado é a seguinte: realizar uma transformada inversa, por exemplo, MDCT, realizar um janelamento e uma adição de sobreposição, realizar qualquer decodificação de processamento de pré-ruído transiente (sem retardos), e, então, realizar um downmixing de domínio de tempo.
[000195] Neste caso, o downmixing de domínio de tempo requer um fading cruzado e dados de downmixing anteriores e atuais, por exemplo, coeficientes de downmixing ou tabelas de downmixing para garantir que qualquer alteração nos coeficientes de downmix seja suavizada.
[000196] Uma opção consiste em realizar uma operação de fading cruzado para computar o coeficiente resultante. Denotar por c[/] o coeficiente de mixagem para uso, onde / denota o índice de tempo de 256 amostras de domínio de tempo, de tal modo que a faixa seja i=0,...,255. Denotar por w2[i] uma função de janelamento positivo de tal modo que w2[i] + w2 [255 - i] = 1 para i=0, ... ,255. Denotar por coid o coeficiente de mixagem de atualização e por cnew o coeficiente de mixagem atualizada. A operação de fading cruzado a ser aplicada é: c[i] = w2[i] - Cnew + W2[255 - Í] - Cold pdfâ 255.
[000197] Após cada passagem através da operação de fading cruzado de coeficiente, os coeficientes antigos são atualizados com o novo, como coid <= Cnew-
[000198] Na próxima passagem, se os coeficientes não forem atualizados, c[i] = w2[i] Cnew + w2[255-i] Cnew ~ Cnew-
[000199] Em outras palavras, a influência do coeficiente antigo ajustado foi completamente excluída!
[000200] Os inventores observaram que em muitos fluxos de áudio e situações de downmixing, os coeficientes de mixagem geralmente não se alteram. Objetivando aperfeiçoar a performance do processo de downmixing de domínio de tempo, as modalidades do módulo de downmixing de domínio de tempo incluem testar para certificar se os coeficientes de downmixing foram alterados a partir de seu valor anterior, e, caso negativo, realizar downmixing, de outro modo, se foram alterados, realizar um fading cruzado dos coeficientes de downmixing de acordo com uma função de janela positiva pré- selecionada. Em uma modalidade, a função de janela é igual a função de janela usada nas operações de janelamento e adição de sobreposição. Em outra modalidade, utiliza-se uma função de janela diferente.
[000201] A figura 11 mostra um pseudocódigo simplificado para uma modalidade de downmixing. O decodificador para tal modalidade usa pelo menos um processador x86 que executa instruções vetoriais SSE. O downmixing inclui certificar se os novos dados de downmixing são inalterados a partir de dados de downmixing antigos. Caso positivo, o downmixing inclui configurações para executar instruções vetoriais SSE em pelo menos um entre um ou mais processadores x86, e o downmixing que usa os dados de downmixing inalterados inclui executar pelo menos uma instrução vetorial SSE de execução. Caso contrário, se os novos dados de downmixing forem alterados a partir dos dados de downmixing antigos, o método inclui determinar os dados de downmixing com fading cruzado através de uma operação de fading cruzado.
Exclusão de dados desnecessários de processamento
[000202] Em algumas situações de downmixing, existe pelo menos um canal que não contribui para a saída submetida a downmix. Por exemplo, em muitos casos de downmixing a partir de áudio 5.1 para estéreo, o canal LFE não é incluído, de tal modo que o downmix seja 5.1 a 2.0. A exclusão do canal LFE a partir do downmix pode ser inerente ao formato de codificação, conforme no caso para AC-3, ou controlado por metadados, conforme o caso para E-AC-3. Em E-AC-3, o parâmetro Ifemixlevcode determina se o canal LFE está incluído ou não no downmix. Quando o parâmetro Ifemixlevcode for 0, o canal LFE não é incluído no downmix.
[000203] Recordar que o downmixing pode ser realizado no domínio de frequência, no pseudo-domínio de tempo após a transformação inversa, mas antes da operação de janelamento e adição de sobreposição, ou no domínio de tempo após a transformação inversa e após a operação de janelamento e adição de sobreposição. O downmixing de domínio de tempo é realizado em muitos decodificadores E-AC-3 conhecidos, e, em algumas modalidades da presente invenção, é vantajoso, por exemplo, por causa da presença de TPNP, o downmixing de pseudo-domínio de tempo é realizado em muitos decodificadores AC-3 e, em algumas modalidades da presente invenção, é vantajoso porque a operação de adição de sobreposição proporciona um fading cruzado inerente que é vantajoso para quando os coeficientes de downmixing forem alterados, e o downmixing de domínio de frequência é realizado em algumas da presente invenção quando as condições permitirem.
[000204] Conforme discutido no presente documento, o downmixing de domínio de frequência é o método de downmixing mais eficiente, visto que minimiza o número de operações de transformada inversa e operações de janelamento e adição de sobreposição necessárias para produzir uma saída de 2 canais a partir de uma entrada de canal 5.1. Em algumas modalidades da presente invenção, quando um downmixing FD for realizado, por exemplo, na figura 8, na seção de loop de downmix FD 711 no loop que se inicia com o elemento 813, termina com 814 e incrementa em 815 ao próximo canal, estes canais não incluídos no downmix são excluídos no processamento.
[000205] O downmixing no pseudo-domínio de tempo após a transformada inversa, mas antes do janelamento e adição de sobreposição, ou no domínio de tempo após a transformada inversa e o janelamento e adição de sobreposição é menos computacionalmente eficiente do que no domínio de frequência. Em muitos decodificadores atuais, tais como os decodificadores AC-3 atuais, o downmixing é realizado no pseudo-domínio de tempo. A operação de transformada inversa é realizada independentemente da operação de downmixing, por exemplo, em módulos separados. A transformada inversa em tais decodificadores é realizada em todos os canais de entrada. Esta é relativamente ineficiente de modo computacional, porque, no caso de o canal LFE não estar incluído, a transformada inversa ainda é realizada para este canal. Este processamento desnecessário é significativo porque, apesar de o canal LFE ter largura de banda limitada, a aplicação de uma transformada inversa ao canal LFE requer tanta computação quanto a aplicação da transformada inversa a qualquer canal de largura de banda. Os inventores reconheceram esta ineficiência. Algumas modalidades da presente invenção incluem identificar um ou mais canais não-contribuintes dos N n canais de entrada, em que um canal não-contribuinte é um canal que não contribui para os M m canais de saída de áudio decodificado. Em algumas modalidades, a identificação usa informações, por exemplo, metadados que definem o downmixing. No exemplo de downmixing 5.1 a 2.0, o canal LFE é identificado como um canal não-contribuinte. Algumas modalidades da invenção incluem uma transformação de frequência em tempo em cada canal que contribui para os M m canais de saída, e não realizam nenhuma transformação de frequência em tempo em cada canal identificado que não contribua para o M m sinal de canal. No exemplo 5.1 a 2.0 onde o canal LFE não contribui para o downmix, a transformada inversa, por exemplo, um IMCDT somente é realizado nos cinco canais de largura de banda completa, de tal modo que a porção de transformada inversa seja realizada com uma redução aproximadamente de 16% dos recursos computacionais requeridos para todos os 5.1 canais. Visto que o IMDCT é uma fonte significativa de complexidade computacional no método de decodificação, esta redução pode ser significativa.
[000206] Em muitos decod ificadores atuais, tais como os decodificadores E-AC-3 atuais, o downmixing é realizado no domínio de tempo. A operação de transformada inversa e as operações de adição de sobreposição são realizadas antes de qualquer TPNP e antes do downmixing, independentemente da operação de downmixing, por exemplo, em módulos separados. A transformada inversa e as operações de janelamento e adição de sobreposição nesses decodificadores são realizadas em todos os canais de entrada. Estas são relativamente ineficientes de modo computacional, porque, no caso de o canal LFE não estar incluído, a transformada inversa e o janelamento/adição de sobreposição ainda são realizados para este canal. Este processamento desnecessário é significativo porque, apesar de o canal LFE ter largura de banda limitada, a aplicação de uma transformada inversa e de uma adição de sobreposição ao canal LFE requer tanta computação quanto a aplicação da transformada inversa e janelamento/adição de sobreposição a qualquer canal de largura de banda completa. Em algumas modalidades da presente invenção, o downmixing é realizado no domínio de tempo, e, em outras modalidades, o downmixing pode ser realizado no domínio de tempo dependendo do resultado de aplicar a lógica de seleção de método de downmix. Algumas modalidades da presente invenção nas quais se utiliza um downmixing TD incluem identificar um ou mais canais não-contribuintes dos N n canais de entrada. Em algumas modalidades, a identificação usa informações, por exemplo, metadados que definem o downmixing. No exemplo de downmixing 5.1 a 2.0, o canal LFE é identificado como um canal não-contribuinte. Algumas modalidades da invenção incluem realizar uma transformada inversa, isto é, uma transformação de frequência para tempo em cada canal que contribui aos M m canais de saída, e não realizar uma transformação de frequência para tempo e outro processamento de domínio de tempo em cada canal identificado que não contribua ao sinal de canal M m. No exemplo 5.1 a 2.0 no qual o canal LFE não contribui para o downmix, a transformada inversa, por exemplo, um IMCDT, a adição de sobreposição, e o TPNP são realizados apenas nos cinco canais de largura de banda completa, de tal modo que a transformada inversa e as porções de janelamento/adição de sobreposição sejam realizadas com uma redução aproximadamente de 16% dos recursos computacionais necessários para todos os 5.1 canais. No fluxograma da figura 8, na seção de lógica de processamento comum 731, um recurso de algumas modalidades que inclui o processamento no loop que começa com o elemento 833, continua até 834, e inclui o incremento ao próximo elemento de canal 835 é realizado para todos os canais exceto para os canais não- contribuintes. Isto acontece inerentemente para um bloco que seja submetido a downmix FD.
[000207] Muito embora em algumas modalidades, o LFE seja um canal não-contribuinte, isto é, não incluído nos canais de saída submetida a downmix, conforme é comum em AC-3 e E-AC-3, em outras modalidades, um canal além do LFE também é um canal não- contribuinte e não está incluído na saída submetida a downmix. Algumas modalidades da invenção incluem verificar essas condições para identificar quais entre um ou mais canais, se existirem, são não- contribuintes onde tal canal não está incluído no downmix, e, no caso de downmixing de domínio de tempo, não realiza um processamento através de transformada inversa e operações de adição de sobreposição de janela para qualquer canal não-contribuinte identificado.
[000208] Por exemplo, em AC-3 e E-AC-3, existem determinadas condições onde os canais circundantes e/ou o canal central não estão incluídos nos canais de saída submetida a downmix. Essas condições são definidas por metadados incluídos no fluxo de bit codificado adotando valores predefinidos. Os metadados, por exemplo, podem incluir informações que definem o downmixing que inclui parâmetros de nível de mixagem.
[000209] Alguns exemplos de tais parâmetros de nível de mixagem serão agora descritos por propósitos de ilustração para o caso de E- AC-3. Em downmixing para estéreo em E-AC-3, dois tipos de downmixing são proporcionados: downmix a um par estéreo codificado com modo surround de matriz LtRt e downmix a um sinal estéreo convencional, LoRo. O sinal estéreo submetido a downmix (LoRo, ou LtRt) pode ser adicionalmente mixado ao mono. Um código de nível de mixagem surround LtRt de 3-bits denotado por Itrtsurmixlev, e um código de nível de mixagem surround LoRo de 3-bits denotado por lorosurmixlev indicam o nível de downmix nominal dos canais surround em relação aos canais esquerdo e direito em um downmix LtRt, ou LoRo, respectivamente. Um valor binário de '111' indica um nível de downmix igual a 0, isto é, -∞ dB. Os códigos de nível de mixagem central de 3-bits LtRt e LoRo Itrtcmixlev, lorocmixlev indicam o nível de downmix nominal do canal central em relação aos canais esquerdos e direitos em um downmix LtRt e LoRo, respectivamente. Um valor binário '111' indica um nível de downmix igual a 0, isto é, -∞ dB.
[000210] Existem condições nas quais os canais surround não são incluídos nos canais de saída submetida a downmix. Em E-AC-3, essas condições são identificadas por metadados. Essas condições incluem os casos onde surmixlev= '10' (AC-3 apenas), ltrtsurmixlev= '111', e lorosurmixlev= '111'. Para essas condições, em algumas modalidades, um decodificador inclui usar os metadados de nível de mixagem para identificar que tais metadados indicam que os canais surround não estão incluídos no downmix, e não processam os canais surround através dos estágios de transformada inversa e janelamento/adição de sobreposição. Adicionalmente, existem condições nas quais o canal central não é incluído nos canais de saída submetida a downmix, identificados por ltrtcmixlev== '111', lorocmixlev== '111'. Para essas condições, em algumas modalidades, um decodificador inclui usar os metadados de nível de mixagem para identificar que tais metadados indicam que o canal central não está incluído no downmix, e não processa o canal central através dos estágios de transformada inversa e janelamento/adição de sobreposição.
[000211] Em algumas modalidades, a identificação de um ou mais canais não-contribuintes depende do conteúdo. Como um exemplo, a identificação inclui identificar se um ou mais canais têm uma quantidade insignificante de conteúdos em relação a um ou mais outros canais. Utiliza-se uma medição de quantidade de conteúdo. Em uma modalidade, a medição de quantidade de conteúdo é a energia, enquanto em outra modalidade, a medição de quantidade de conteúdo é o nível absoluto. A identificação inclui comparar a diferença da medição da quantidade de conteúdo entre os pares de canais e um limite configurável. Como um exemplo, em uma modalidade, identificar um ou mais canais não-contribuintes inclui certificar se a quantidade de conteúdo de canal surround de um bloco é menor que cada quantidade de conteúdo de canal frontal em pelo menos um limite configurável com a finalidade de certificar se o canal surround é um canal não-contribuinte.
[000212] De modo ideal, o limite é selecionado como sendo o menor possível sem introduzir instrumentos visíveis na versão submetida a downmix do sinal com a finalidade de maximizar a identificação de canais como não-contribuintes para reduzir a quantidade de computação necessária, enquanto minimiza a perda de qualidade. Em algumas modalidades, os diferentes limites são proporcionados para diferentes aplicações de decodificação, com a escolha do limite para uma aplicação de decodificação particular representando um equilíbrio aceitável entre a qualidade de downmix (limites maiores) e redução de complexidade computacional (limites menores) para a aplicação específica.
[000213] Em algumas modalidades da presente invenção, um canal é considerado insignificante em relação a outro canal se sua energia ou nível absoluto estiver pelo menos 15 dB abaixo daquela para o outro canal. De modo ideal, um canal é insignificante em relação a outro canal se sua energia ou nível absoluto estiver pelo menos 25 dB abaixo daquela do outro canal.
[000214] Utilizando-se um limite para a diferença entre dois canais denotados A e B que seja equivalente a 25dB é aproximadamente equivalente a dizer que o nível da soma dos valores absolutos dos dois canais está dentro de 0,5 dB do nível do canal dominante. Ou seja, se o canal A estiver em -6 dBFS (dB em relação à escala completa) e o canal B estiver em -31 dBFS, a soma dos valores absolutos do canal A e B será aproximadamente -5,5 dBFS, ou cerca de 0,5 dB maior que o nível do canal A.
[000215] Se o áudio tiver uma qualidade relativamente baixa, e para aplicações de baixo custo, pode ser aceitável sacrificar a qualidade para reduzir a complexidade, o limite pode ser menor que 25 dB. Em um exemplo, utiliza-se um limite de 18dB. Nesse caso, a soma dos dois canais pode estar dentro de cerca de 1 dB do nível do canal com o nível maior. Isto pode ser audível em determinados casos, porém, não deve ser muito censurável. Em outra modalidade, utiliza-se um limite de 15 dB, em que neste caso a soma dos dois canais está dentro de 1,5 dB do nível do canal dominante.
[000216] Em algumas modalidades, utilizam-se vários limites, por exemplo, 15dB, 18dB, e 25dB.
[000217] Nota-se que embora a identificação de canais não- contribuintes seja descrita anteriormente para AC-3 e E-AC-3, a identificação do recurso de canal não-contribuinte da invenção não se limita a esses formatos. Outros formatos, por exemplo, também proporcionam informações, por exemplo, metadados referentes ao downmixing que é utilizável para identificar um ou mais canais não- contribuintes. Tanto MPEG-2 AAC (ISO/IEC 13818-7) como Áudio MPEG-4 (ISO/IEC 14496-3) são capazes de transmitir o que se refere pelo padrão como um "coeficiente de mixagem com redução de canal por matriz." Algumas modalidades da invenção para decodificar tais formatos usam este coeficiente para construir um sinal estéreo ou mono a partir de um 3/2, isto é, sinal Esquerdo, Central, Direito, Surround a Esquerda, Surround a Direita. O coeficiente de mixagem com redução de canal por matriz determina como os canais surround são mixados com os canais frontais para construir a saída estéreo ou mono. Quatro valores possíveis do surround são possíveis de acordo com cada um desses padrões, um desses é igual a 0. Um valor igual a 0 resulta nos canais surround não sendo incluídos no downmix. Algumas modalidades do decodificador MPEG-2 AAC ou decodificador de áudio MPEG-4 da invenção incluem gerar um downmix estéreo ou mono a partir de um sinal 3/2 utilizando-se os coeficientes de mixagem com redução de canal por matriz sinalizados no fluxo de bits, e incluem, ainda, identificar um canal não-contribuinte através de um coeficiente de mixagem com redução de canal por matriz igual a 0, em que neste caso, o processamento de transformada inversa e janelamento/adição de sobreposição não é realizado.
[000218] A figura 12 mostra um diagrama de blocos simplificado de uma modalidade de um sistema de processamento 1200 que inclui pelo menos um processador 1203. Neste exemplo, mostra-se um processador x86 cujo conjunto de instruções inclui instruções vetoriais SSE. Da mesma forma, mostra-se sob a forma de um bloco simplificado um subsistema de barramento 1205 através do qual os vários componentes do sistema de processamento são acoplados. O sistema de processamento inclui um subsistema de armazenamento 1211 acoplado ao(s) processador(es), por exemplo, através do subsistema de barramento 1205, em que o subsistema de armazenamento 1211 tem um ou mais dispositivos de armazenamento, que incluem pelo menos um memória e, em algumas modalidades, um ou mais outros dispositivos de armazenamento, tais como componentes de armazenamento magnético e/ou óptico. Algumas modalidades também incluem pelo menos uma interface de rede 1207, e um subsistema de entrada/saída de áudio 1209 que pode aceitar dados PCM e que inclui um ou mais DACs para converter os dados PCM em formas de onda elétrica para acionar um conjunto de alto-falantes ou fones de ouvido. Outros elementos também podem ser incluídos no sistema de processamento, e seriam claros aos indivíduos versados na técnica, e que não são mostrados na figura 12 por motivos de simplicidade.
[000219] O subsistema de armazenamento 1211 inclui as instruções 1213 que quando executadas no sistema de processamento, fazem com que o sistema de processamento realizem uma decodificação de dados de áudio que incluem N n canais de dados de áudio codificado, por exemplo, dados E-AC-3 para formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1 e, para o caso de downmixing, M<N. Para os formatos de codificação conhecidos atuais, n=0 ou 1 e m=0 ou 1, porém, a invenção não se limita a estes. Em algumas modalidades, as instruções 1211 são particionadas em módulos. Outras instruções (outro software) 1215 também são tipicamente incluídas no subsistema de armazenamento. A modalidade mostrada inclui os seguintes módulos nas instruções 1211: dois módulos decodificadores: um módulo decodificador de canal 5.1 de quadro independente 1223 que inclui um módulo de decodificação front-end 1231 e um módulo de decodificação back-end 1233, um módulo decodificador de quadro dependente 1225 que inclui um módulo de decodificação front-end 1235 e um módulo de decodificação back-end 1237, um módulo de análise de informações de quadro de instruções 1221 que quando executadas causam o desempacotamento dos dados de campo de Informações de Fluxo de Bit (BSI) a partir de cada quadro para identificar os quadros e os tipos de quadros e proporcionar os quadros identificados às instanciações apropriadas de módulo decodificador front-end 1231 ou 1235, e um módulo mapeador de canal de instruções 1227 que quando executadas e no caso onde N>5 causam a combinação dos dados decodificados a partir dos respectivos módulos de decodificação back- end para formar os N n canais de dados decodificados.
[000220] As modalidades alternativas de sistema de processamento podem incluir um ou mais processadores acoplados através de pelo menos um link de rede, isto é, podem ser distribuídas. Ou seja, um ou mais módulos podem estar em outros sistemas de processamento acoplados a um sistema de processamento principal através de um link de rede. Essas modalidades alternativas seriam claras aos indivíduos versados na técnica. Portanto, em algumas modalidades, o sistema compreende um ou mais subsistemas que são ligados em rede através de um link de rede, em que cada subsistema inclui pelo menos um processador.
[000221] Portanto, o sistema de processamento da figura 12 forma uma modalidade de um aparelho para processar dados de áudio que incluam N n canais de dados de áudio codificado para formar dados de áudio decodificados que incluam Mm canais de áudio decodificado, M>1, no caso de downmixing, M<N, e para upmixing, M>N. Embora para os padrões atuais, n=0 ou 1 e m=0 ou 1, outras modalidades são possíveis. O aparelho inclui vários elementos funcionais funcionalmente expressos como um meio para realizar uma função. Um elemento funcional significa um elemento que realiza uma função de processamento. Cada um desses elementos pode ser um elemento de hardware, por exemplo, hardware para propósitos especiais, ou um sistema de processamento que inclua um meio de armazenamento que inclui instruções que quando executadas realizem a função. O aparelho da figura 12 inclui meios para aceitar os dados de áudio que incluem N canais de dados de áudio codificados por um método de codificação, por exemplo, um método de codificação E-AC- 3, e em termos mais gerais, um método de codificação que compreende transformar utilizando-se N canais de dados de áudio digital por transformada sobreposta, formar e empacotar os dados de expoente e mantissa de domínio de frequência, e formar e empacotar os metadados relacionados aos dados de expoente e mantissa de domínio de frequência, em que os metadados incluem opcionalmente metadados relacionados ao processamento de pré-ruído transiente.
O aparelho inclui meios para decodificar os dados de áudio aceitos
[000222] Em algumas modalidades, os meios para decodificar incluem meios para desempacotar os metadados e meios para desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência, meios para determinar coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; meios para transformação inversa dos dados de domínio de frequência; meios para aplicar operações de janelamento e adição de sobreposição de modo a determinar os dados de áudio amostrados; meios para aplicar qualquer decodificação necessária de processamento de pré-ruído transiente de acordo com os metadados relacionados ao processamento de pré-ruído transiente; e meios para downmixing TD de acordo com os dados de downmixing. Os meios para downmixing TD, no caso onde M<N, realiza downmix de acordo com os dados de downmixing, que incluem em algumas modalidades, testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e downmixing de acordo com os dados de downmixing com fading cruzado, e se não forem alterados, realizar downmix diretamente de acordo com os dados de downmixing.
[000223] Algumas modalidades incluem meios para certificar para um bloco se é utilizado downmixing TD ou downmixing FD, e meios para downmixing FD que seja ativado se os meios para certificar para um bloco se downmixing TD ou downmixing FD é usado certificarem um downmixing FD, que inclui meios para um processamento de transição de downmix TD a FD. Essas modalidades também incluem meios para um processamento de transição de downmix FD a TD. A operação desses elementos decorre conforme descrito no presente documento.
[000224] Em algumas modalidades, o aparelho inclui meios para identificar um ou mais canais não-contribuintes dos N n canais de entrada, em que um canal não-contribuinte é um canal que não contribui aos M m canais. O aparelho não realiza uma transformação inversa dos dados de domínio de frequência e aplica um processamento adicional, tal como TPNP ou adição de sobreposição em um ou mais canais não-contribuintes identificados.
[000225] Em algumas modalidades, o aparelho inclui pelo menos um processador x86 cujo conjunto de instruções inclui extensões de transmissão contínua de única instrução e múltiplos dados (SSE) que compreendem instruções vetoriais. Os meios para downmixing em operação executam instruções vetoriais em pelo menos um entre um ou mais processadores x86.
[000226] Os aparelhos alternativos àqueles mostrados na figura 12 também são possíveis. Por exemplo, um ou mais elementos podem ser implementados por dispositivos de hardware, enquanto outros podem ser implementados operando-se um processador x86. Essas variações seriam óbvias aos indivíduos versados na técnica.
[000227] Em algumas modalidades do aparelho, os meios para decodificação incluem um ou mais meios para decodificação front-end e um ou mais meios para decodificação back-end. Os meios para decodificação front-end incluem os meios para desempacotar os metadados e os meios para desempacotar e decodificar os dados de expoente e mantissa de domínio de frequência. Os meios para decodificação back-end incluem os meios para certificar para um bloco se downmixing TD ou downmixing FD é usado, os meios para downmixing FD que incluem os meios para um processamento de transição de downmix TD a FD, os meios para processamento de transição de downmix FD a TD, os meios para determinar os coeficientes de transformada a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; para transformação inversa dos dados de domínio de frequência; aplicar as operações de janelamento e adição de sobreposição de modo a determinar os dados de áudio amostrados; aplicar qualquer decodificação necessária de processamento de pré-ruído transiente de acordo com os metadados relacionados ao processamento de pré- ruído transiente; e realizar downmixing de domínio de tempo de acordo com os dados de downmixing. O downmixing de domínio de tempo, no caso onde M<N, realiza downmix de acordo com os dados de downmixing, incluindo, em algumas modalidades, testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado de modo a determinar os dados de downmixing com fading cruzado e downmixing de acordo com os dados de downmixing com fading cruzado, e se não forem alterados, realizar downmixing de acordo com os dados de downmixing.
[000228] Para processar os dados E-AC-3 com mais de 5.1 canais de dados codificados, os meios para decodificação incluem múltiplos casos dos meios para decodificação front-end e dos meios para decodificação back-end, incluindo o primeiro meio para decodificação front-end e um primeiro meio para decodificação back-end que serve para decodificar o quadro independente de até 5.1 canais, um segundo meio para decodificação front-end e um segundo meio para decodificação back-end que serve para decodificar um ou mais quadros dependentes de dados. O aparelho também inclui meios para desempacotar os dados de campo de informações de fluxo de bits para identificar os quadros e os tipos de quadros e proporcionar os quadros identificados ao meio apropriado de decodificação front-end, e meios para combinar os dados decodificados a partir dos respectivos meios para decodificação back-end de modo a formar N canais de dados decodificados.
[000229] Nota-se que embora E-AC-3 e outros métodos de codificação usem uma transformada de adição de sobreposição, e na transformação inversa, incluem operações de janelamento e adição de sobreposição, sabe-se que são possíveis outras formas de transformadas que operem de modo que a transformação inversa e o processamento adicional possam recuperar amostras de domínio de tempo sem erros de descontinuidade. Portanto, a invenção não se limita às transformadas de adição de sobreposição, e sempre que forem mencionados os dados de domínio de frequência de transformação inversa e realizem uma operação de adição de sobreposição de janelamento para determinar amostras de domínio de tempo, os indivíduos versados na técnica compreenderão que em geral, essas operações podem ser declaradas como "transformação inversa dos dados de domínio de frequência e aplicação de um processamento adicional para determinar os dados de áudio amostrados."
[000230] Embora os termos "expoente" e "mantissa"sejam usados ao longo da descrição porque estes são termos usados em AC-3 e E- AC-3, outros formados de codificação podem usar outros termos, por exemplo, fatores de escala e coeficientes espectrais no caso de HE- AAC, e o uso dos termos expoente e mantissa não limita o escopo da invenção em formatos que usem os termos expoente e mantissa.
[000231] Exceto onde especificamente declarado em contrário, conforme aparente a partir da descrição a seguir, avalia-se que ao longo das discussões do relatório descritivo que utilizam termos como "processamento,""computação,""cálculo,""determinação,""geração"ou similares, se referem à ação e/ou a processos de um elemento de hardware, por exemplo, um computador ou sistema computacional, um sistema de processamento, ou um dispositivo computacional eletrônico similar, que manipule e/ou transforme os dados representados como físicos, tais como eletrônicos, quantidades em outros dados similarmente representadas como quantidades físicas.
[000232] De modo similar, o termo "processador" pode se referir a qualquer dispositivo ou porção de um dispositivo que processe dados eletrônicos, por exemplo, a partir de registros e/ou memórias para transformar tais dados eletrônicos em outros dados eletrônicos que, por exemplo, possam ser armazenados em registros e/ou em memórias. Um "sistema de processamento" ou "computador" ou uma "máquina computacional" ou uma "plataforma computacional" podem incluir um ou mais processadores.
[000233] Nota-se que quando um método for descrito incluindo vários elementos, por exemplo, diversas etapas, não se implicam ordenações desses elementos, por exemplo, etapas, exceto onde especificamente declarado.
[000234] Em algumas modalidades, um meio de armazenamento legível por computador é configurado, por exemplo, codificado, por exemplo, armazena instruções que quando executadas por um ou mais processadores de um sistema de processamento, tal como um dispositivo de processamento de sinal digital ou subsistema que inclua pelo menos um elemento de processador e um subsistema de armazenamento, induz a realização de um método conforme descrito no presente documento. Nota-se que a descrição anterior, quando for declarado que as instruções são configuradas, quando executadas, realizam um processo, deve-se compreender que isto significa que as instruções, quando executadas, fazem com que um ou mais processadores operem de tal modo que um aparelho de hardware, por exemplo, o sistema de processamento realize o processo.
[000235] As metodologias descritas no presente documento são, em algumas modalidades, realizáveis por um ou mais processadores que aceitam instruções lógicas codificadas em uma ou mais mídias legíveis por computador. Quando executadas por um ou mais processadores, as instruções induzem a realização de pelo menos um dos métodos descritos no presente documento. Inclui-se qualquer processador capaz de executar um conjunto de instruções (sequencial ou não) que especificam ações a serem tomadas. Portanto, um exemplo consiste em um sistema de processamento típico que inclui um ou mais processadores. Cada processador pode incluir um ou mais entre uma CPU ou elemento similar, uma unidade de processamento gráfico (GPU), e/ou uma unidade DSP programável. O sistema de processamento inclui, ainda, um subsistema de armazenamento com pelo menos um meio de armazenamento, que pode incluir uma memória embutida em um dispositivo semicondutor, ou um subsistema de memória separada que inclui uma RAM principal e/ou uma RAM estática, e/ou ROM, e também uma memória cache. O subsistema de armazenamento pode incluir, ainda, um ou mais outros dispositivos de armazenamento, tais como dispositivos de armazenamento magnético e/ou óptico e/ou outros dispositivos de armazenamento em estado sólido. Um subsistema de barramento pode ser incluído para comunicação entre os componentes. O sistema de processamento adicional pode ser um sistema de processamento distribuído com processadores acoplados por uma rede, por exemplo, através de dispositivos de interface de rede ou dispositivos de rede sem fio. Se o sistema de processamento requerer uma tela, essa tela pode ser incluída, por exemplo, uma tela de cristal líquido (LCD), uma tela emissora de luz orgânica (OLED), ou uma tela de tubo de raios catódicos (CRT). Se a entrada de dados manual for requerida, o sistema de processamento também inclui um dispositivo de entrada, tal como um ou mais entre uma unidade de entrada alfanumérica, tal como um teclado, um dispositivo de controle de apontamento, tal como um mouse, e assim por diante. Os termos dispositivo de armazenamento, subsistema de armazenamento, ou unidade de memória conforme o uso em questão, se estiverem claros a partir do contexto exceto onde especificamente declarado em contrário, também abrangem um sistema de armazenamento, tal como uma unidade de disco. O sistema de processamento em algumas configurações pode incluir um dispositivo de saída de som, e um dispositivo de interface de rede.
[000236] Portanto, o subsistema de armazenamento inclui um meio legível por computador que seja configurado, por exemplo, codificado por instruções, por exemplo, lógica, por exemplo, software que quando executadas por um ou mais processadores, induzem a realização de uma ou mais etapas do método descrito no presente documento. O software pode residir no disco rígido, ou também pode residir, completamente ou pelo menos parcialmente, na memória, tal como RAM e/ou em uma memória interna ao processador durante a execução da mesma pelo sistema computacional. Portanto, a memória e o processador que incluem uma memória também constituem um meio legível por computador no qual as instruções são codificadas.
[000237] Além disso, um meio legível por computador pode formar um produto de programa computacional, ou ser incluído em um produto de programa computacional.
[000238] Em modalidades alternativas, um ou mais processadores operam como um dispositivo autônomo ou podem ser conectados, por exemplo, ligados em rede a outro(s) processador(es), em uma implantação em rede, um ou mais processadores podem operar na capacidade de um servidor ou de uma máquina de cliente no ambienta de rede ser servidor-cliente, ou como uma máquina peer em um ambiente de rede par-a-par ou distribuído. O termo sistema de processamento abrange todas essas possibilidades, exceto onde explicitamente excluídas no presente documento. Um ou mais processadores podem formar um computador pessoal (PC), um dispositivo de reprodução de mídias, um PC tablete, um decodificador de sinais (STB), um assistente pessoal digital (PDA), uma máquina de jogos, um telefone celular, um instrumento da Web, um roteador de rede, comutador ou ponte, ou qualquer máquina capaz de executar um conjunto de instruções (sequencial ou não) que especifiquem as ações a serem tomadas portal máquina.
[000239] Nota-se que embora alguns diagramas mostram apenas um único processador e um único subsistema de armazenamento, por exemplo, uma única memória que armazena as instruções incluindo lógica, os indivíduos versados na técnica compreenderão que muitos outros componentes descritos anteriormente são incluídos, mas não explicitamente mostrados ou descritos com a finalidade de não ocultar o aspecto inventivo. Por exemplo, embora apenas uma única máquina seja ilustrada, o termo "máquina" também, deve ser adotado para incluir qualquer coleção de máquinas que executem individual ou coletivamente um conjunto (ou múltiplos conjuntos) de instruções para realizar qualquer uma ou mais metodologias discutidas no presente documento.
[000240] Portanto, uma modalidade de cada um dos métodos aqui descritos se encontra sob a forma de um meio legível por computador configurado com um conjunto de instruções, por exemplo, um programa computacional que quando executado em um ou mais processadores, por exemplo, um ou mais processadores que sejam parte de um dispositivo de mídia, induza a realização das etapas do método. Algumas modalidades se encontram sob a forma da própria lógica. Portanto, conforme será avaliado pelos indivíduos versados na técnica, as modalidades da presente invenção podem ser incorporadas como um método, um aparelho tal como um aparelho para propósitos especiais, um aparelho tal como um sistema de processamento de dados, uma lógica, por exemplo, incorporada em um meio de armazenamento legível por computador, ou um meio de armazenamento legível por computador que seja codificado com instruções, por exemplo, um meio de armazenamento legível por computador configurado como um produto de programa computacional. O meio legível por computador é configurado com um conjunto de instruções que quando executadas por um ou mais processadores induza a realização das etapas do método. Consequentemente, os aspectos da presente invenção podem assumir a forma de um método, uma modalidade totalmente de hardware que inclui vários elementos funcionais, onde um elemento funcional significa que realiza uma função de processamento. Cada elemento pode ser um elemento de hardware, por exemplo, um hardware para propósitos especiais, ou um sistema de processamento que inclui um meio de armazenamento que inclui instruções que quando executadas realizam a função. Os aspectos da presente invenção podem assumir a forma de uma modalidade totalmente de software ou uma modalidade que combine aspectos de software e hardware. Além disso, a presente invenção pode assumir a forma de uma lógica de programa, por exemplo, em um meio legível por computador, por exemplo, um programa computacional em um meio de armazenamento legível por computador, ou o meio legível por computador configurado com um código de programa legível por computador, por exemplo, um produto de programa computacional. Nota-se que no caso de um hardware para propósitos especiais, a definição da função do hardware é suficiente para permitir que um indivíduo versado na técnica escreva uma descrição funcional que possa ser processada por programas que, então, determinam automaticamente a descrição de hardware para gerar hardware de modo a realizar a função. Portanto, a descrição do presente documento é suficiente para definir tal hardware para propósitos especiais.
[000241] Muito embora o meio legível por computador seja mostrado em uma modalidade exemplificadora a ser um único meio, o termo "meio" deve incluir um único meio ou múltiplas mídias (por exemplo, várias memórias, um banco de dados centralizado ou distribuído, e/ou caches e servidores associados) que armazenam um ou mais conjuntos de instruções. Um meio legível por computador pode assumir muitas formas, que incluem, mas não se limitam a, uma mídia não-volátil e uma mídia volátil. Uma mídia não-volátil inclui, por exemplo, discos óptico-magnéticos, e discos magneto-ópticos. A mídia volátil inclui uma memória dinâmica, tal como uma memória principal.
[000242] Compreende-se, também que as modalidades da presente invenção não são limitadas a nenhuma técnica de programação ou implementação particular e que a invenção pode ser implementada utilizando-se quaisquer técnicas para implementar a funcionalidade descrita no presente documento. Além disso, as modalidades não se limitam a nenhuma linguagem de programação ou sistema operacional particular.
[000243] A referência ao longo deste relatório descritivo para "uma modalidade" significa que um recurso, estrutura ou característica particular descritos de acordo com a modalidade são incluídos em pelo menos uma modalidade da presente invenção. Portanto, nem todas as aparições da frase "em uma modalidade" em várias partes deste relatório descritivo se referem necessariamente à mesma modalidade, mas podem. Além disso, os recursos, estruturas ou características particulares podem ser combinados de qualquer forma adequada, conforme fica aparente a um indivíduo tendo conhecimento comum na técnica a partir desta descrição, em uma ou mais modalidades.
[000244] De modo semelhante, deve-se avaliar que na descrição anterior das modalidades exemplificadoras da invenção, vários recursos da invenção são algumas vezes agrupados em uma única modalidade, figura, ou descrição dos mesmos para o propósito de simplificar a descrição e auxiliar na compreensão de um ou mais vários aspectos inventivos. No entanto, este método de descrição não deve ser interpretado como refletindo a intenção que a invenção reivindicada requer mais recursos do que aqueles expressamente recitados em cada concretização. De preferência, assim como as concretizações refletem, os aspectos inventivos se adéquam em menos que todos os recursos de uma única modalidade descrita anterior. Portanto, as concretizações seguindo a DESCRIÇÃO DAS MODALIDADES EXEMPLIFICADORAS são expressamente incorporadas nesta DESCRIÇÃO DAS MODALIDADES EXEMPLIFICADORAS, com cada concretização permanecendo como uma modalidade separada desta invenção.
[000245] Além disso, embora algumas modalidades aqui descritas incluam alguns, mas não outros recursos incluídos em outras modalidades, as combinações de recursos de diferentes modalidades devem se encontrar no escopo da invenção, e formar diferentes modalidades, conforme compreendido pelos indivíduos versados na técnica. Por exemplo, nas concretizações, qualquer uma das modalidades reivindicadas pode ser usada em qualquer combinação.
[000246] Além disso, algumas das modalidades são descritas no presente documento como um método ou combinação de elementos de um método que possam ser implementadas por um processador de um sistema computacional ou por outros meios de realizar a função. Portanto, um processador com as instruções necessárias para realizar tal método ou elemento de um método formar um meio para realizar o método ou elemento de um método. Além disso, um elemento descrito no presente documento de um aparelho modalidade consiste em um exemplo de um meio para realizar a função realizada pelo elemento para o propósito de realizar a invenção.
[000247] Na descrição aqui fornecida, apresentam-se vários detalhes específicos. No entanto, compreende-se que as modalidades da invenção podem ser praticadas sem estes detalhes específicos. Em outros casos, os métodos, estruturas e técnicas bem conhecidos não foram mostrados em detalhes com a finalidade de não ocultar a compreensão desta descrição.
[000248] Conforme o uso em questão, exceto onde especificado em contrário, o uso dos adjetivos ordinais "primeiro", "segundo", "terceiro", etc., que servem para descrever um objeto comum, meramente indicam que diferentes casos de objetos semelhantes estão sendo referidos, e não se pretende que implique que os objetos descritos devem estar em uma determinada sequência, seja temporal, espacialmente, em uma classificação, ou em qualquer outra maneira.
[000249] Deve-se avaliar que embora a invenção tenha sido descrita no contexto do padrão E-AC-3, a invenção não se limita a tais contextos e pode ser utilizada para decodificar os dados codificados por outros métodos que usam técnicas que apresentam alguma similaridade ao E-AC-3. Por exemplo, as modalidades da invenção são aplicáveis da mesma forma para decodificar áudio codificado que seja compatível com tecnologias anteriores ao E-AC-3. Outras modalidades são aplicáveis para decodificar áudio codificado que seja codificado de acordo com o padrão HE-AAC, e para decodificar o áudio codificado que seja compatível com tecnologias anteriores ao HE-AAC. Outros fluxos codificados também podem ser vantajosamente decodificados utilizando-se as modalidades da presente invenção.
[000250] Todas as patentes U.S., pedidos de patente U.S., e pedidos de patente internacional (PCT) que designem os Estados Unidos citados no presente documento se encontram aqui incorporados a título de referência. No caso de Regras e Estatutos de Patente não permitirem a incorporação a título de referência do material que incorpora as informações a título de referência, a incorporação a título de referência do material do presente documento exclui quaisquer informações incorporadas a título de referência em tal material incorporado a título de referência, a não ser que essas informações sejam explicitamente incorporadas no presente documento a título de referência.
[000251] Qualquer discussão da técnica anterior neste relatório descritivo não deve ser considerada de forma alguma como uma admissão que tal técnica anterior é amplamente conhecida, publicamente conhecida, ou forma parte do conhecimento geral no campo.
[000252] Nas concretizações a seguir e na descrição anterior, qualquer um dos termos "compreendendo", "compreendido" ou "que compreende" consiste em um termo aberto que significa inclui pelo menos os elementos/recursos que se seguem o termo, mas não excluindo outros. Portanto, o termo "que compreende" quando usado nas concretizações, não deve ser interpretado como sendo limitativo aos meios, elementos ou etapas listadas a seguir. Por exemplo, o escopo da expressão "um dispositivo que compreende A e B" não deve ser limitado a dispositivos que constituem apenas os elementos A e B. Qualquer um dos termos "incluindo" ou "que inclui" conforme o uso em questão também consiste em um termo aberto que também significa incluir pelo menos os elementos/recursos que seguem o termo, mas não excluindo outros. Portanto, incluir é sinônimo e significa compreender.
[000253] De modo semelhante, deve-se noticiar que o termo "acoplado", quando usado nas concretizações, não deve ser interpretado como sendo limitativo apenas às conexões diretas. Os termos "acoplado" e "conectado," junto a seus derivados, podem ser usados. Deve-se compreende que esses termos não são pretendidos como sinônimos entre si. Portanto, o escopo da expressão "um dispositivo A acoplado a um dispositivo B" não deve se limitar a dispositivos ou sistemas onde uma saída do dispositivo A é diretamente conectada a uma entrada do dispositivo B. Isto significa que existe uma trajetória entre uma saída de A e uma entrada de B que pode ser uma trajetória que inclui outros dispositivos ou meios. "Acoplado" pode significar que dois ou mais elementos se encontram em contato físico ou elétrico direto, ou que dois ou mais elementos não se encontram em contato direto entre si, mas ainda cooperam ou interagem entre si.
[000254] Portanto, embora tenha sido descrito o que se acreditam ser as modalidades preferenciais da invenção, os indivíduos versados na técnica reconhecerão que outras modificações podem ser realizadas a estas sem que se divirja do espírito da invenção, e pretende-se que reivindique todas essas alterações e modificações incluídas no escopo da invenção. Por exemplo, quaisquer fórmulas dadas anteriormente são meramente representativas de procedimentos que podem ser usados. Uma funcionalidade pode ser adicionada ou deletada a partir dos diagramas de bloco e as operações podem ser intercambiadas entre os elementos funcionais. As etapas podem ser adicionadas ou deletadas aos métodos descritos no escopo da presente invenção.

Claims (14)

1. Método de operar um decodificador de áudio (200) para decodificar dados de áudio que incluem blocos codificados de N n canais de dados de áudio de modo a formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados, o método caracterizado pelo fato de que compreende as etapas de: aceitar os dados de áudio que incluem blocos de N n canais de dados de áudio codificados através de um método de codificação, sendo que o método de codificação inclui transformar N n canais de dados de áudio digital, e formar e empacotar dados de expoente e mantissa de domínio de frequência; e decodificar os dados de áudio aceitos, a decodificação inclui: desempacotar e decodificar (403) os dados de expoente e mantissa de domínio de frequência; determinar os coeficientes de transformada (605) a partir dos dados de expoente e mantissa de domínio de frequência desempacotados e decodificados; transformar inversamente (607) os dados de domínio de frequência e aplicar um processamento adicional para determinar os dados de áudio amostrados; e realizar um downmixing de domínio de tempo (613) em pelo menos alguns blocos dos dados de áudio amostrados determinados de acordo com os dados de downmixing para o caso onde M<N, em que o downmixing de domínio de tempo inclui (1100) testar se os dados de downmixing são alterados a partir dos dados de downmixing previamente usados, e, se forem alterados, aplicar um fading cruzado para determinar os dados de downmixing com fading cruzado e realizar downmixing de domínio de tempo de acordo com os dados de downmixing com fading cruzado, e se permanecerem inalterados, realizar diretamente downmixing de domínio de tempo de acordo com os dados de downmixing.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método inclui identificar (835) um ou mais canais não contribuintes dos N n canais de entrada, sendo que um canal não contribuinte é um canal que não contribui aos M m canais, e que o método não realiza uma transformação inversa dos dados de domínio de frequência e a aplicação de um processamento adicional em um ou mais canais não contribuintes identificados.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a transformação no método de codificação usa uma transformada sobreposta, e em que o processamento adicional inclui aplicar operações de janelamento e adição de sobreposição (609) para determinar os dados de áudio amostrados.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o método de codificação inclui formar e empacotar os metadados relacionados aos dados de expoente e mantissa de domínio de frequência, sendo que os metadados incluem opcionalmente os metadados relacionados ao processamento de pré-ruído transiente ao downmixing.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que o decodificador (200) usa pelo menos um processador x86 cujo conjunto de instruções inclui extensões de transmissão contínua de única instrução e múltiplos dados (SSE) que compreendem instruções vetoriais, e em que o downmixing de dominio de tempo inclui instruções vetoriais de execução em pelo menos um ou mais processadores x86.
6. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que n=1 e m=0, de tal modo que a transformação inversa e a aplicação de um processamento adicional não sejam realizadas no canal de efeito de frequência baixa.
7. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que os dados de áudio que incluem os blocos codificados incluem informações que definem o downmixing, e em que a identificação de um ou mais canais não-contribuintes usa as informações que definem o downmixing.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que as informações que definem o downmixing incluem parâmetros de nível de mixagem tendo valores predefinidos que indicam que um ou mais canais são canais não-contribuintes.
9. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a identificação de um ou mais canais não- contribuintes inclui, ainda, identificar se um ou mais canais têm uma quantidade insignificante de conteúdos em relação a um ou mais outros canais, em que a identificação se um ou mais canais têm uma quantidade insignificante de conteúdos em relação a um ou mais outros canais inclui comparar a diferença de uma medição da quantidade de conteúdos entre os pares de canais a um limite configurável e/ou em que um canal tem uma quantidade insignificante de conteúdos em relação a outro canal se sua energia ou nível absoluto estiver pelo menos 15 dB abaixo daquela do outro canal ou se sua energia ou nível absoluto estiver pelo menos 18 dB abaixo daquela do outro canal ou se sua energia ou nível absoluto estiver pelo menos 25 dB abaixo daquela do outro canal.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que os dados de áudio aceitos se encontram sob a forma de um fluxo de bits de quadros de dados codificados, e em que uma decodificação é particionada em um conjunto de operações de decodificação front-end (201), e em um conjunto de operações de decodificação back-end (203), sendo que as operações de decodificação front-end incluem o desempacotamento e a decodificação dos dados de expoente e mantissa de domínio de frequência de um quadro do fluxo de bits em dados de expoente e mantissa de domínio de frequência desempacotados e decodificados para o quadro, e os metadados anexos do quadro, sendo que as operações de decodificação back- end incluem a determinação dos coeficientes de transformada, a transformação inversa e a aplicação de um processamento adicional, a aplicação de qualquer decodificação necessária de processamento de pré-ruído transiente, e um downmixing no caso onde M<N.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que as operações de decodificação front- end são realizadas em uma primeira passagem seguida por uma segunda passagem, sendo que a primeira passagem compreende desempacotar os bloco-por-bloco e salvar os apontadores onde os dados de expoente e mantissa empacotados são armazenados, e a segunda passagem compreende usar os apontadores salvos aos expoentes e mantissas empacotados, e desempacotar e decodificar os dados de expoente e mantissa canal-por-canal.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que os dados de áudio codificado são codificados de acordo com um ou mais conjunto de padrões que consistem em um padrão AC-3, um padrão E-AC-3, e um padrão HE-AAC.
13. Meio de armazenamento legível por computador que armazena um método, caracterizado pelo fato de que, quando executado por um ou mais processadores de um sistema de processamento, faz com que o sistema de processamento realize o método conforme definido em qualquer uma das reivindicações 1 a 12.
14. Aparelho (1200) de processamento de dados de áudio para decodificar os dados de áudio que incluem blocos codificados de N n canais de dados de áudio de modo a formar dados de áudio decodificados que incluem M m canais de áudio decodificado, M>1, n sendo o número de canais de efeitos de frequência baixa nos dados de áudio codificado, e m sendo o número de canais de efeitos de frequência baixa nos dados de áudio decodificados, caracterizado pelo fato de que o aparelho compreende meios para realizar o método de acordo com qualquer uma das reivindicações 1 a 12.
BRPI1105248-1A 2010-02-18 2011-02-03 método de operar um decodificador de áudio, meio de armazenamento legível por computador que armazena um método e aparelho de processamento de dados de áudio para decodificar os dados de áudio BRPI1105248B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US30587110P 2010-02-18 2010-02-18
US61/305,871 2010-02-18
US35976310P 2010-06-29 2010-06-29
US61/359,763 2010-06-29
PCT/US2011/023533 WO2011102967A1 (en) 2010-02-18 2011-02-03 Audio decoder and decoding method using efficient downmixing

Publications (2)

Publication Number Publication Date
BRPI1105248A2 BRPI1105248A2 (pt) 2016-05-03
BRPI1105248B1 true BRPI1105248B1 (pt) 2020-10-27

Family

ID=43877072

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1105248-1A BRPI1105248B1 (pt) 2010-02-18 2011-02-03 método de operar um decodificador de áudio, meio de armazenamento legível por computador que armazena um método e aparelho de processamento de dados de áudio para decodificar os dados de áudio

Country Status (36)

Country Link
US (3) US8214223B2 (pt)
EP (2) EP2698789B1 (pt)
JP (2) JP5501449B2 (pt)
KR (2) KR101327194B1 (pt)
CN (2) CN102428514B (pt)
AP (1) AP3147A (pt)
AR (2) AR080183A1 (pt)
AU (1) AU2011218351B2 (pt)
BR (1) BRPI1105248B1 (pt)
CA (3) CA2794047A1 (pt)
CO (1) CO6501169A2 (pt)
DK (1) DK2360683T3 (pt)
EA (1) EA025020B1 (pt)
EC (1) ECSP11011358A (pt)
ES (1) ES2467290T3 (pt)
GE (1) GEP20146086B (pt)
GT (1) GT201100246A (pt)
HK (2) HK1160282A1 (pt)
HN (1) HN2011002584A (pt)
HR (1) HRP20140506T1 (pt)
IL (3) IL215254A (pt)
MA (1) MA33270B1 (pt)
ME (1) ME01880B (pt)
MX (1) MX2011010285A (pt)
MY (1) MY157229A (pt)
NI (1) NI201100175A (pt)
NZ (1) NZ595739A (pt)
PE (1) PE20121261A1 (pt)
PL (1) PL2360683T3 (pt)
PT (1) PT2360683E (pt)
RS (1) RS53336B (pt)
SG (1) SG174552A1 (pt)
SI (1) SI2360683T1 (pt)
TW (2) TWI557723B (pt)
WO (1) WO2011102967A1 (pt)
ZA (1) ZA201106950B (pt)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948406B2 (en) * 2010-08-06 2015-02-03 Samsung Electronics Co., Ltd. Signal processing method, encoding apparatus using the signal processing method, decoding apparatus using the signal processing method, and information storage medium
US20120033819A1 (en) * 2010-08-06 2012-02-09 Samsung Electronics Co., Ltd. Signal processing method, encoding apparatus therefor, decoding apparatus therefor, and information storage medium
TWI716169B (zh) 2010-12-03 2021-01-11 美商杜比實驗室特許公司 音頻解碼裝置、音頻解碼方法及音頻編碼方法
KR101809272B1 (ko) * 2011-08-03 2017-12-14 삼성전자주식회사 다 채널 오디오 신호의 다운 믹스 방법 및 장치
WO2013101137A1 (en) * 2011-12-30 2013-07-04 Intel Corporation On die/off die memory management
KR101915258B1 (ko) * 2012-04-13 2018-11-05 한국전자통신연구원 오디오 메타데이터 제공 장치 및 방법, 오디오 데이터 제공 장치 및 방법, 오디오 데이터 재생 장치 및 방법
US10083700B2 (en) 2012-07-02 2018-09-25 Sony Corporation Decoding device, decoding method, encoding device, encoding method, and program
CA2843226A1 (en) * 2012-07-02 2014-01-09 Sony Corporation Decoding device, decoding method, encoding device, encoding method, and program
KR20150012146A (ko) * 2012-07-24 2015-02-03 삼성전자주식회사 오디오 데이터를 처리하기 위한 방법 및 장치
PL2880654T3 (pl) * 2012-08-03 2018-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder i sposób realizacji uogólnionej parametrycznej koncepcji kodowania przestrzennych obiektów audio dla przypadków wielokanałowego downmixu/upmixu
JP6242916B2 (ja) 2013-01-21 2017-12-06 ドルビー ラボラトリーズ ライセンシング コーポレイション メタデータのトランスコード
KR102473260B1 (ko) * 2013-01-21 2022-12-05 돌비 레버러토리즈 라이쎈싱 코오포레이션 상이한 재생 디바이스들에 걸친 라우드니스 및 동적 범위의 최적화
KR20140117931A (ko) 2013-03-27 2014-10-08 삼성전자주식회사 오디오 디코딩 장치 및 방법
KR102586356B1 (ko) 2013-03-28 2023-10-06 돌비 레버러토리즈 라이쎈싱 코오포레이션 임의적 라우드스피커 배치들로의 겉보기 크기를 갖는 오디오 오브젝트들의 렌더링
TWI530941B (zh) 2013-04-03 2016-04-21 杜比實驗室特許公司 用於基於物件音頻之互動成像的方法與系統
BR112015025092B1 (pt) * 2013-04-05 2022-01-11 Dolby International Ab Sistema de processamento de áudio e método para processar um fluxo de bits de áudio
TWI557727B (zh) 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
CN108806704B (zh) * 2013-04-19 2023-06-06 韩国电子通信研究院 多信道音频信号处理装置及方法
US8804971B1 (en) * 2013-04-30 2014-08-12 Dolby International Ab Hybrid encoding of higher frequency and downmixed low frequency content of multichannel audio
CN104143334B (zh) * 2013-05-10 2017-06-16 中国电信股份有限公司 可编程图形处理器及其对多路音频进行混音的方法
EP2804176A1 (en) * 2013-05-13 2014-11-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio object separation from mixture signal using object-specific time/frequency resolutions
EP2973551B1 (en) 2013-05-24 2017-05-03 Dolby International AB Reconstruction of audio scenes from a downmix
MY178342A (en) 2013-05-24 2020-10-08 Dolby Int Ab Coding of audio scenes
US11146903B2 (en) 2013-05-29 2021-10-12 Qualcomm Incorporated Compression of decomposed representations of a sound field
TWM487509U (zh) * 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
EP2830043A3 (en) 2013-07-22 2015-02-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for Processing an Audio Signal in accordance with a Room Impulse Response, Signal Processing Unit, Audio Encoder, Audio Decoder, and Binaural Renderer
EP2830047A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for low delay object metadata coding
CN105531759B (zh) * 2013-09-12 2019-11-26 杜比实验室特许公司 用于下混合音频内容的响度调整
ES2641538T3 (es) 2013-09-12 2017-11-10 Dolby International Ab Codificación de contenido de audio multicanal
US10095468B2 (en) 2013-09-12 2018-10-09 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
EP2866227A1 (en) 2013-10-22 2015-04-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for decoding and encoding a downmix matrix, method for presenting audio content, encoder and decoder for a downmix matrix, audio encoder and audio decoder
US9502045B2 (en) * 2014-01-30 2016-11-22 Qualcomm Incorporated Coding independent frames of ambient higher-order ambisonic coefficients
WO2015124597A1 (en) * 2014-02-18 2015-08-27 Dolby International Ab Estimating a tempo metric from an audio bit-stream
RU2646320C1 (ru) 2014-04-11 2018-03-02 Самсунг Электроникс Ко., Лтд. Способ и устройство для рендеринга звукового сигнала и компьютерно-читаемый носитель информации
US10770087B2 (en) 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
JP6683618B2 (ja) * 2014-09-08 2020-04-22 日本放送協会 音声信号処理装置
US9886962B2 (en) * 2015-03-02 2018-02-06 Google Llc Extracting audio fingerprints in the compressed domain
US9837086B2 (en) * 2015-07-31 2017-12-05 Apple Inc. Encoded audio extended metadata-based dynamic range control
ES2956344T3 (es) * 2015-08-25 2023-12-19 Dolby Laboratories Licensing Corp Descodificador de audio y procedimiento de descodificación
US10015612B2 (en) 2016-05-25 2018-07-03 Dolby Laboratories Licensing Corporation Measurement, verification and correction of time alignment of multiple audio channels and associated metadata
SG10202100336WA (en) * 2017-01-10 2021-02-25 Fraunhofer Ges Forschung Audio decoder, audio encoder, method for providing a decoded audio signal, method for providing an encoded audio signal, audio stream, audio stream provider and computer program using a stream identifier
US10210874B2 (en) * 2017-02-03 2019-02-19 Qualcomm Incorporated Multi channel coding
US11582383B2 (en) 2017-11-10 2023-02-14 Koninklijke Kpn N.V. Obtaining image data of an object in a scene
TWI681384B (zh) * 2018-08-01 2020-01-01 瑞昱半導體股份有限公司 音訊處理方法與音訊等化器
US11765536B2 (en) 2018-11-13 2023-09-19 Dolby Laboratories Licensing Corporation Representing spatial audio by means of an audio signal and associated metadata
CN110035299B (zh) * 2019-04-18 2021-02-05 雷欧尼斯(北京)信息技术有限公司 沉浸式对象音频的压缩传输方法与系统
CN110417978B (zh) * 2019-07-24 2021-04-09 广东商路信息科技有限公司 菜单配置方法、装置、设备及存储介质
JP7314398B2 (ja) * 2019-08-15 2023-07-25 ドルビー・インターナショナル・アーベー 変更オーディオビットストリームの生成及び処理のための方法及び装置
CN113035210A (zh) * 2021-03-01 2021-06-25 北京百瑞互联技术有限公司 一种lc3音频混合方法、装置及存储介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274740A (en) 1991-01-08 1993-12-28 Dolby Laboratories Licensing Corporation Decoder for variable number of channel presentation of multidimensional sound fields
JP4213708B2 (ja) * 1995-09-29 2009-01-21 ユナイテッド・モジュール・コーポレーション オーディオ復号装置
US5867819A (en) 1995-09-29 1999-02-02 Nippon Steel Corporation Audio decoder
US6128597A (en) * 1996-05-03 2000-10-03 Lsi Logic Corporation Audio decoder with a reconfigurable downmixing/windowing pipeline and method therefor
SG54379A1 (en) 1996-10-24 1998-11-16 Sgs Thomson Microelectronics A Audio decoder with an adaptive frequency domain downmixer
SG54383A1 (en) * 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
US5986709A (en) 1996-11-18 1999-11-16 Samsung Electronics Co., Ltd. Adaptive lossy IDCT for multitasking environment
US6005948A (en) * 1997-03-21 1999-12-21 Sony Corporation Audio channel mixing
TW405328B (en) * 1997-04-11 2000-09-11 Matsushita Electric Ind Co Ltd Audio decoding apparatus, signal processing device, sound image localization device, sound image control method, audio signal processing device, and audio signal high-rate reproduction method used for audio visual equipment
US5946352A (en) 1997-05-02 1999-08-31 Texas Instruments Incorporated Method and apparatus for downmixing decoded data streams in the frequency domain prior to conversion to the time domain
EP0990368B1 (en) 1997-05-08 2002-04-24 STMicroelectronics Asia Pacific Pte Ltd. Method and apparatus for frequency-domain downmixing with block-switch forcing for audio decoding functions
US6141645A (en) 1998-05-29 2000-10-31 Acer Laboratories Inc. Method and device for down mixing compressed audio bit stream having multiple audio channels
US6246345B1 (en) 1999-04-16 2001-06-12 Dolby Laboratories Licensing Corporation Using gain-adaptive quantization and non-uniform symbol lengths for improved audio coding
JP2002182693A (ja) 2000-12-13 2002-06-26 Nec Corp オーディオ符号化、復号装置及びその方法並びにその制御プログラム記録媒体
US7610205B2 (en) 2002-02-12 2009-10-27 Dolby Laboratories Licensing Corporation High quality time-scaling and pitch-scaling of audio signals
CN1312662C (zh) 2001-05-10 2007-04-25 杜比实验室特许公司 通过降低前噪声改善音频编码系统的瞬时性能的方法
US20030187663A1 (en) 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
US7450727B2 (en) * 2002-05-03 2008-11-11 Harman International Industries, Incorporated Multichannel downmixing device
US7447631B2 (en) 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
JP2004194100A (ja) * 2002-12-12 2004-07-08 Renesas Technology Corp オーディオ復号再生装置
KR20040060718A (ko) * 2002-12-28 2004-07-06 삼성전자주식회사 오디오 스트림 믹싱 방법, 그 장치 및 그 정보저장매체
CA2514682A1 (en) * 2002-12-28 2004-07-15 Samsung Electronics Co., Ltd. Method and apparatus for mixing audio stream and information storage medium
US7318027B2 (en) 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
US7318035B2 (en) 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
JP2007526687A (ja) * 2004-02-19 2007-09-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変ブロック長信号の復号化スキーム
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
EP2065885B1 (en) * 2004-03-01 2010-07-28 Dolby Laboratories Licensing Corporation Multichannel audio decoding
US7983922B2 (en) * 2005-04-15 2011-07-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for generating multi-channel synthesizer control signal and apparatus and method for multi-channel synthesizing
WO2006126844A2 (en) * 2005-05-26 2006-11-30 Lg Electronics Inc. Method and apparatus for decoding an audio signal
KR20070003593A (ko) * 2005-06-30 2007-01-05 엘지전자 주식회사 멀티채널 오디오 신호의 인코딩 및 디코딩 방법
US8494667B2 (en) * 2005-06-30 2013-07-23 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
KR100760976B1 (ko) 2005-08-01 2007-09-21 (주)펄서스 테크놀러지 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
KR100771401B1 (ko) 2005-08-01 2007-10-30 (주)펄서스 테크놀러지 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
KR100803212B1 (ko) * 2006-01-11 2008-02-14 삼성전자주식회사 스케일러블 채널 복호화 방법 및 장치
JP4801174B2 (ja) * 2006-01-19 2011-10-26 エルジー エレクトロニクス インコーポレイティド メディア信号の処理方法及び装置
CN101361117B (zh) * 2006-01-19 2011-06-15 Lg电子株式会社 处理媒体信号的方法和装置
RU2407226C2 (ru) * 2006-03-24 2010-12-20 Долби Свидн Аб Генерация пространственных сигналов понижающего микширования из параметрических представлений мультиканальных сигналов
JP5134623B2 (ja) * 2006-07-07 2013-01-30 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 複数のパラメータ的に符号化された音源を合成するための概念
JP2008236384A (ja) * 2007-03-20 2008-10-02 Matsushita Electric Ind Co Ltd 音声ミキシング装置
JP4743228B2 (ja) * 2008-05-22 2011-08-10 三菱電機株式会社 デジタル音声信号解析方法、その装置、及び映像音声記録装置
RU2495503C2 (ru) * 2008-07-29 2013-10-10 Панасоник Корпорэйшн Устройство кодирования звука, устройство декодирования звука, устройство кодирования и декодирования звука и система проведения телеконференций

Also Published As

Publication number Publication date
AP2011005900A0 (en) 2011-10-31
EA025020B1 (ru) 2016-11-30
US20120016680A1 (en) 2012-01-19
TW201142826A (en) 2011-12-01
ME01880B (me) 2014-12-20
BRPI1105248A2 (pt) 2016-05-03
CN102428514A (zh) 2012-04-25
JP5501449B2 (ja) 2014-05-21
AR080183A1 (es) 2012-03-21
IL215254A0 (en) 2011-12-29
CN103400581A (zh) 2013-11-20
CA2757643A1 (en) 2011-08-25
TW201443876A (zh) 2014-11-16
SI2360683T1 (sl) 2014-07-31
US8868433B2 (en) 2014-10-21
KR101327194B1 (ko) 2013-11-06
HK1170059A1 (en) 2013-02-15
ES2467290T3 (es) 2014-06-12
IL227702A (en) 2015-01-29
CA2757643C (en) 2013-01-08
CO6501169A2 (es) 2012-08-15
AU2011218351A1 (en) 2011-10-20
RS53336B (en) 2014-10-31
US9311921B2 (en) 2016-04-12
EP2360683A1 (en) 2011-08-24
KR101707125B1 (ko) 2017-02-15
HRP20140506T1 (hr) 2014-07-04
AR089918A2 (es) 2014-10-01
CN102428514B (zh) 2013-07-24
NZ595739A (en) 2014-08-29
EP2698789A2 (en) 2014-02-19
MX2011010285A (es) 2011-12-16
CN103400581B (zh) 2016-05-11
ECSP11011358A (es) 2012-01-31
JP2012527021A (ja) 2012-11-01
ZA201106950B (en) 2012-12-27
DK2360683T3 (da) 2014-06-16
NI201100175A (es) 2012-06-14
EP2698789B1 (en) 2017-02-08
CA2794047A1 (en) 2011-08-25
EA201171268A1 (ru) 2012-03-30
IL227701A (en) 2014-12-31
TWI557723B (zh) 2016-11-11
HK1160282A1 (en) 2012-08-10
PL2360683T3 (pl) 2014-08-29
GEP20146086B (en) 2014-05-13
IL227702A0 (en) 2013-09-30
CA2794029C (en) 2018-07-17
US8214223B2 (en) 2012-07-03
KR20130055033A (ko) 2013-05-27
CA2794029A1 (en) 2011-08-25
JP5863858B2 (ja) 2016-02-17
JP2014146040A (ja) 2014-08-14
GT201100246A (es) 2014-04-04
WO2011102967A1 (en) 2011-08-25
MA33270B1 (fr) 2012-05-02
EP2360683B1 (en) 2014-04-09
HN2011002584A (es) 2015-01-26
US20120237039A1 (en) 2012-09-20
AP3147A (en) 2015-03-31
PE20121261A1 (es) 2012-09-14
KR20120031937A (ko) 2012-04-04
IL215254A (en) 2013-10-31
SG174552A1 (en) 2011-10-28
TWI443646B (zh) 2014-07-01
AU2011218351B2 (en) 2012-12-20
US20160035355A1 (en) 2016-02-04
IL227701A0 (en) 2013-09-30
EP2698789A3 (en) 2014-04-30
PT2360683E (pt) 2014-05-27
MY157229A (en) 2016-05-13

Similar Documents

Publication Publication Date Title
BRPI1105248B1 (pt) método de operar um decodificador de áudio, meio de armazenamento legível por computador que armazena um método e aparelho de processamento de dados de áudio para decodificar os dados de áudio
EP3444815B1 (en) Multiplet-based matrix mixing for high-channel count multichannel audio
BR122019023924B1 (pt) Sistema codificador, sistema decodificador, método para codificar um sinal estéreo para um sinal de fluxo de bits e método para decodificar um sinal de fluxo de bits para um sinal estéreo
AU2013201583B2 (en) Audio decoder and decoding method using efficient downmixing
Chandramouli et al. Implementation of AC-3 Decoder on TMS320C62x

Legal Events

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 03/02/2011, OBSERVADAS AS CONDICOES LEGAIS.

B25G Requested change of headquarter approved

Owner name: DOLBY LABORATORIES LICENSING CORPORATION (US) ; DOLBY INTERNATIONAL AB (IE)