BRPI0517176B1 - Método para criar uma representação de um resultado de cálculo linearmente dependente de um quadrado de um valor - Google Patents
Método para criar uma representação de um resultado de cálculo linearmente dependente de um quadrado de um valor Download PDFInfo
- Publication number
- BRPI0517176B1 BRPI0517176B1 BRPI0517176-8A BRPI0517176A BRPI0517176B1 BR PI0517176 B1 BRPI0517176 B1 BR PI0517176B1 BR PI0517176 A BRPI0517176 A BR PI0517176A BR PI0517176 B1 BRPI0517176 B1 BR PI0517176B1
- Authority
- BR
- Brazil
- Prior art keywords
- representation
- bit
- spectral
- logarithmic
- group
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/032—Quantisation or dequantisation of spectral components
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
MÉTODO PARA CRIAR UMA REPRESENTAÇÃO DE UM RESULTADO DE CÁLCULO LINEARMENTE DEPENDENTE DE UM QUADRADO DE UM VALOR. Na transição para a faixa logarítmica, não deve ser considerada a largura de bit inteira do resultado linearmente dependente do quadrado do valor. Ao invés disso, é possível escalonar o resultado de um valor com x bits, de modo que uma representação com menos que x bits do resultado seja suficiente para obter a representação logarítmica baseada neste. O efeito do fator de escala na representação logarítmica resultante pode ser compensado pela adição ou subtração de um valor de correção obtido pela função de logaritmo aplicada ao fator de escala ou da representação logarítmica escalonada sem qualquer perda de dinâmica. Desta maneira, são providos um método e um equipamento para criar uma representação de um resultado linearmente dependente de um quadrado de um valor, de modo que o cálculo é simples e/ou possível com pouca despesa com hardware.
Description
[001] A presente invenção se refere à criação de uma representação de um resultado de cálculo linearmente dependente de um quadrado de um valor, tal como a soma de quadrados de um grupo de valores conforme é requerido, por exemplo, em alguns codificadores de áudio, nos quais, de acordo com um modelo psicoacústico, linhas de freqüência são combinadas para formar grupos de freqüência de modo a executar a codificação adicional por meio das energias de sinal dos grupos de freqüência.
[002] Em métodos modernos de codificação de áudio baseados em banco de filtro, tais como MPEG Layer-3 ou MPEG AAC, um modelo psicoacústico é usado no codificador. Neste modelo psicoacústico, o espectro total do sinal de áudio transformado na faixa de freqüência é dividido em grupos de freqüência individuais de várias larguras e/ou números variados de linhas de freqüência por grupo de freqüência. Para o cálculo dos limites de audição psicoacústicos, para escolher se a codificação estéreo central/lateral deve ser usada, e para a avaliação e/ou cálculo dos fatores de escala no módulo de quantização do codificador de áudio, as energias de sinal das porções de sinal de áudio nos grupos de freqüência individuais são calculadas no modelo psicoacústico. Isto é efetuado pela elevação ao quadrado de cada linha de freqüência individual, resultando nas energias de linha, e soma subseqüente de todas as energias de linha em um grupo de freqüência para formar a energia de banda de um grupo de freqüência, dos quais podem existir aproximadamente 40 a 60 por canal de áudio no caso, por exemplo, de MPEG AAC.
[003] A seguir, a aplicação especial de uma implementação deste método em um processador de ponto fixo deve ser considerada.
[004] Na representação de ponto fixo, as linhas de freqüência são representadas com uma largura de palavra de, por exemplo, 24 bits ou 32 bits. Uma largura de palavra de apenas 16 bits não é suficiente. Um fator de escala global ou um fator de mudança é usado, que pode ser aplicado a todas as linhas de freqüência de um canal de áudio e também a todas as linhas de freqüência de todos os canais de áudio processados em um codificador, e que determina em quantas posições cada valor de linha de freqüência deve ser mudado para a esquerda ou para a direita, de modo que o escalonamento original possa, novamente, ser obtido, o que é referido como representação de ponto de flutuação de bloco. Isto equivale a dizer que todas as linhas de freqüência de pelo menos um canal de áudio são igualmente suprimidas (“gated out”) e/ou estão no mesmo nível de escalonamento. Em consideração à dinâmica geralmente elevada das amplitudes individuais das linhas de freqüência, algumas das linhas de freqüência são representadas com uma precisão relativamente alta, tal como, por exemplo, 22 bits válidos com uma largura de palavra de 24 bits ou 30 bits válidos com uma largura de palavra de 32 bits, enquanto outras são representadas com apenas poucos bits válidos e, portanto, de maneira bastante imprecisa.
[005] Na implementação em um processador de ponto fixo do método de codificação de áudio baseada no banco de filtro mencionado acima, surgirão problemas conforme descrito abaixo.
[006] Primeiramente, os problemas se referem à representação das próprias energias de sinal. Por meio de elevação ao quadrado, as energias de sinal, isto é, os quadrados somados das linhas de freqüência, obtiveram dinâmicas duplas em relação às linhas de freqüência se a precisão total tiver que ser mantida.
[007] Existem, na verdade, várias possibilidades para representar as energias de sinal. Uma possibilidade é a representação das energias de sinal por um tipo de dados tendo uma largura de palavra dupla em relação àquela do tipo de dados usada para a representação das linhas de freqüência, isto é, por exemplo, um tipo de dados com uma largura de 48 bits ou 64 bits. Imagine, por exemplo, uma linha de freqüência com 22 bits válidos representados por um tipo de dado de 24 bits. Com base na soma, a energia de sinal teria, juntamente com as outras linhas de freqüência, pelo menos 44 bits válidos e seria representada em um tipo de dado de 48 bits. Este procedimento, entretanto, não é praticável pelo menos para energias de 64 bits, que são, em alguns casos, nas quais as linhas de freqüência são representadas em um tipo de dado de 32 bits, visto que os processadores de ponto fixo mais convencionais tanto não suportam um tipo de dado de 64 bits quanto operações de acesso de memória, e os cálculos usando o tipo de dado de 64 bits são extremamente lentos se comparados, por exemplo, a operações e cálculos de acesso de 32 bits. Além disso, o consumo de memória é significativamente mais elevado no caso de dados de 64 bits.
[008] Uma outra possibilidade da representação das energias de sinal é a representação por um tipo de dado de ponto de flutuação por meio de mantissa e expoente. Novamente é presumido o caso exemplificativo mencionado acima, de que uma linha de freqüência com 22 bits válidos é representada em um tipo de dado de 24 bits. A energia de sinal do respectivo grupo seria, então, representada em um tipo de dados de ponto de flutuação padronizado ou proprietário com mantissa de 16 bits, incluindo o bit de sinal e expoente de 8 bits. Aqui, é secundário se um tipo de dados de ponto de flutuação padronizado, tal como IEEE-P754, ou se um tipo de dados de ponto de flutuação proprietário com larguras de mantissa e expoente escolhidas arbitrariamente, é considerado. Em um processador de ponto fixo sem uma unidade de cálculo de ponto de flutuação, cálculos com tipos de dados de ponto de flutuação terão sempre que ser emulados por várias etapas de cálculo e serão, portanto, extremamente lentos, de modo que este procedimento não é prático.
[009] Um campo problemático adicional na implementação do método de codificação de áudio baseado em banco de filtro mencionado acima, em um processador de ponto fixo, é o reprocessamento das energias de sinal no curso do método de codificação. As energias de sinal e os limites de audição derivados destes são usados em uma rotina adicional do codificador de áudio em vários locais diferentes no algoritmo, por exemplo, de modo a calcular proporções ou quocientes, por exemplo, entre a energia de sinal e o limite de audição. A divisão requerida não é fácil de executar em um processador de ponto fixo.
[0010] Uma possibilidade para executar uma divisão em um processador de ponto fixo é o uso de comandos de divisão de bit único, que são implementados em alguns processadores de ponto fixo e suprem um bit adicional de precisão do quociente por chamada. Para divisão com uma precisão, por exemplo, de 48 bits, 48 comandos de divisão individuais para uma divisão única de duas energias de sinal ou de uma energia de sinal, e um limite de audição, seriam necessários. Isto não é praticável e é muito ineficiente devido à grande quantidade de tempo de cálculo envolvida.
[0011] Uma outra possibilidade para implementar uma divisão em um processador de ponto fixo é o uso de tabelas, possivelmente com relação às etapas subseqüentes de iteração para aumentar a precisão dos resultados de divisão. Este procedimento, entretanto, freqüentemente não é praticável quanto à precisão requerida do resultado da divisão, tanto uma tabela muito grande deve ser usada quanto as etapas de iteração subseqüentes terão, por sua vez, uma alta demanda de tempo de cálculo.
[0012] Ambos os métodos mencionados podem ser usados em um processador de ponto fixo em conexão com tipos de dados de ponto fixo ou tipos de dados de ponto de flutuação emulados por software, que, entretanto, em nenhum dos casos, provê uma aplicação suficientemente eficiente com relação ao tempo de cálculo e consumo de memória com precisão de resultado simultânea.
[0013] Os problemas mencionados acima não ocorreriam se um GPP (Processador de Objetivo Geral) fosse usado. Para muitas aplicações, entretanto, o uso de processadores tendo melhor desempenho que processadores de ponto fixo sem uma unidade de cálculo de ponto de flutuação, está automaticamente fora de questão devido à alta pressão de preços e ao elevado número de peças. Exemplos destas aplicações são telefones móveis e PDAs.
[0014] A Patente Norte Americana No 6.754.618 B1 responde ao problema do cálculo de SMR, isto é, o cálculo da proporção entre a energia do sinal e o limite de audição, e faz assim contra o “pano de fundo” do uso de chips DSP de ponto fixo. De acordo com seu procedimento proposto, primeiramente a janela usual e a transformação de Fourier subseqüente para a decomposição de um sinal de áudio em seus constituintes espectrais são executadas, após o que a energia de cada sinal de entrada e/ou sinal de linha de freqüência, isto é, a energia de linha, é calculado das porções reais e imaginárias do respectivo valor de linha de freqüência. Sem avançar adicionalmente na criação de energias de sinal dos grupos de linhas de freqüência, o método poderia também ser continuado com base nas energias de sinal destes grupos. O teor deste documento é a tentativa de remover o problema de que os dados de entrada, isto é, as energias, na maioria das vezes, têm faixa dinâmica que é muito grande, visto que a maioria dos chips DSP de ponto fixo compreendem uma largura de dados de apenas 16 a 24 bits, enquanto o padrão MPEG requereria uma largura de dados de 34 bits, isto é, uma faixa dinâmica de 101 dB. Portanto, as energias primeiramente teriam que estar escalonadas. Em especial, é feita uma proposição para desviar do procedimento anterior e usar dois valores de escalonamento diferentes. Mais precisamente, de acordo com este documento, a energia é comparada a um limite e escalonada para cima e para baixo, respectivamente, de modo a poder representar o resultado de logaritmo com 16 bits suficientes em uma transição para uma faixa de logaritmo, e de modo a ser capaz de calcular a proporção SMR na faixa logarítmica com 16 bits. Dependendo se um escalonamento para cima ou para baixo é executado, é utilizada uma tabela diferente para os limites. Para obter o logaritmo, um logaritmo comum vezes 10 é usado, de modo que a unidade dB será obtida. Se o resultado de obtenção do logaritmo das energias de linha escalonadas para cima for zero, a proporção SMR será calculada para obter o logaritmo da energia de linha escalonada para cima menos o logaritmo da energia de limite vezes 10. Por outro lado, os resultados da energia de linha escalonada para cima e da energia de linha escalonada para baixo são combinados entre si.
[0015] O procedimento proposto na Patente Norte Americana No 6.754.618 B1 evita alguns dos problemas mencionados acima com relação ao reprocessamento das energias de sinal pela proposta para calcular a proporção SMR na faixa de logaritmo. Isto remove o cálculo de divisão complexo. Este procedimento, entretanto, é desvantajoso pelo cálculo do logaritmo ser ainda relativamente complexo, visto que a faixa de valor para uma representação de ponto fixo de 16 bits é adequada para processadores de ponto fixo DSP de 16 bits, é disposto apenas após o cálculo do logaritmo, enquanto a obtenção do logaritmo como tal é ainda executada nas energias presentes com dinâmica elevada, o que resulta na necessidade de tanto quanto duas obtenções de logaritmo por valor de energia.
[0016] É, portanto, desejável simplificar a transição na faixa logarítmica também, sem a ocorrência de perda na dinâmica.
[0017] A Patente Norte Americana No 5.608.663 trata da execução rápida das multiplicações paralelas de números de ponto de flutuação por meio da conversão em um formato de ponto fixo logarítmico, adição na faixa logarítmica e conversão de retorno subseqüente.
[0018] A Patente Norte Americana No 5.197.024 geralmente se refere a um cálculo exponencial/logarítmico e um equipamento respectivo.
[0019] A Patente Norte Americana No 6.732.071 se refere a uma solução eficiente para um controle de taxa na codificação de áudio, e para a determinação do valor de parâmetro de quantização usa uma iteração de circuito com uma condição de término, de acordo com a qual o valor de parâmetro de quantização é comparado a um termo derivado de um logaritmo duplo de um termo dependendo de um valor de linha de freqüência máximo.
[0020] A Patente Norte Americana No 6.351.730 descreve o uso de um logaritmo duplo para um cálculo de ganho dentro de codificação de áudio. Os valores de ganho são usados para a alocação de bit em um codec de áudio codificado por MDCT.
[0021] A Patente Norte Americana No 5.764.698 descreve o uso de um logaritmo para a representação de energias de sinal de áudio. Uma descrição mais detalhada da transição na faixa de logaritmo não é provida.
[0022] É um objetivo da presente invenção prover um método e um equipamento para criar uma representação de um resultado linearmente dependente mediante um quadrado de um valor, de modo que o cálculo seja mais simples ou possível com uma despesa menor de hardware.
[0023] Este objetivo é atingido por um equipamento de acordo com a reivindicação 1 e um método de acordo com a reivindicação 18.
[0024] O equipamento inventivo, para criar uma representação de um resultado de cálculo linearmente dependente mediante um quadrado de um valor, o resultado de cálculo estando presente em uma representação de x-bit sem tomar o logaritmo, inclui
[0025] meios de processamento para executar um processamento da representação de x-bit sem obtenção de logaritmo do valor, de modo a obter o resultado de cálculo linearmente dependente do valor, onde os meios de processamento são configurados para usar um fator de escala efetivo, de modo que o resultado do cálculo seja escalonado dependendo do fator de escala efetivo,
[0026] meios para obter o logaritmo para aplicação a uma função de logaritmo a uma representação de y-bit do resultado de cálculo, do qual nenhum logaritmo é obtido e que é obtido tanto indiretamente quanto diretamente do processamento pelos meios de processamento - isto é, por exemplo, escolhendo posições de bit, de modo a obter uma representação escalonada com o logaritmo obtido do resultado do cálculo e/ou uma representação com o logaritmo obtido do resultado do cálculo escalonado, onde y é menor que 2 vezes x; e
[0027] meios de reescalonamento para adicionar ou subtrair um valor de correção, respectivamente, da representação logarítmica escalonada, que corresponde à função do logaritmo, tal como um logaritmo escalonado, aplicado ao fator de escala efetivo, de modo a obter uma representação com o logaritmo obtido do resultado de cálculo, agora não mais escalonado.
[0028] A descoberta da presente invenção é que na transição para a faixa logarítmica, não é necessário levar em consideração a largura inteira de bits do resultado linearmente dependente do quadrado de um valor. Ao invés disso, é possível escalonar o resultado de um valor com x bits de modo que uma representação com menos que x bits do resultado seja suficiente para obter, baseada neste, a representação logarítmica. O efeito do fator de escala na representação logarítmica resultante pode ser cancelado pela adição ou subtração de um valor de correção, obtido pela função do logaritmo aplicada ao fator de escala, para ou da representação logarítmica escalonada, respectivamente, sem qualquer perda de dinâmica.
[0029] É, portanto, uma vantagem da presente invenção que na maneira inventiva, uma pluralidade de resultados possa ser transferida para uma representação logarítmica de uma maneira tal que, subsequentemente, o nível de escalonamento será igual para todos, com a dinâmica substancialmente mantida.
[0030] De acordo com uma configuração da presente invenção, o processamento da representação de x-bit do valor consiste na criação de uma soma de quadrados de um grupo de valores, de modo a obter o resultado de cálculo linearmente dependente do valor. Ao invés de executar o fator de escala efetivo apenas após o cálculo da soma de quadrados, entretanto, as representações de x-bit são escalonadas previamente com um fator de escala comum. O fator de escala comum é determinado do número de valores e/ou por meio do maior número de posições válidas entre as representações de x-bit dos valores. Este procedimento torna possível permanecer constantemente, iniciando da situação inicial com representações de x-bit dos valores, no formato de representação de x-bit. Isto se aplica igualmente aos quadrados dos valores individuais e à soma dos quadrados individuais. Aqui, o fator de escala comum é determinado de modo que a soma dos quadrados não está sujeita a estouro como um resultado da soma. De acordo com esta configuração, a função de logaritmo é executada em uma seção da representação de x-bit sem logaritmo obtido da soma de quadrados. Nesta configuração, também, é mantida a vantagem do procedimento poder ser usado para vários grupos de valores, de modo que, por um lado, os valores dos grupos individuais são escalonados com um fator de escala comum diferente, e ainda por outro lado, o nível de escalonamento subseqüente é igual para a representação logarítmica de todas as somas de quadrados.
[0031] De acordo com uma outra configuração preferida da presente invenção, um logaritmo duplo é usado como a função de logaritmo, juntamente com um fator que é menor ou igual a 1/y. Desta maneira, é possível executar o mapeamento entre a representação de y-bit do resultado de cálculo e da representação escalonada com o logaritmo obtido do resultado de cálculo de uma maneira que idealmente utiliza as faixas de valor de ambas as representações.
[0032] De acordo com uma outra configuração da presente invenção, para codificação de áudio, os valores de linhas espectrais de um grupo são submetidos a uma criação de somas de quadrados da maneira “grupo a grupo” mencionada acima, que é por escalonamento dos valores de linha espectrais antes do cálculo das somas de quadrados, onde os valores de linha de freqüência estão presentes em um formato de dados de ponto fixo de x-bit sem logaritmo obtido, pela soma dos quadrados únicos resultantes, que, também, devem estar presentes apenas no formato de dados de ponto fixo de x-bit, pela aplicação da função de logaritmo compreendendo a obtenção do logaritmo com o logaritmo duplo e o escalonamento com o fator menor ou igual a 1/x em relação à soma de quadrados, e pela adição ou subtração de um valor de correção obtido do valor de escalonamento comum pela função de logaritmo para ou de, respectivamente, a representação de ponto fixo de x-bit do resultado de obtenção do logaritmo. Desta maneira, as energias de sinal de todos os grupos espectrais são mantidas no mesmo nível de escalonamento sem redução da dinâmica. Além disso, cada uma das operações de cálculo podem ser executadas por meio de uma unidade de cálculo configurada para processamento de números de ponto fixo com apenas x bits. Esta configuração é, portanto, vantajosa por possibilitar a implementação de um codificador de áudio em um DSP de ponto fixo de 16 ou 24 bits sem a necessidade de programação complexa com a despesa de tempo de cálculo aumentada resultante.
[0033] A seguir, configurações preferidas da presente invenção são discutidas em maiores detalhes com relação aos desenhos em anexo, nos quais:
[0034] A Figura 1 é uma representação esquematizada para ilustrar a estrutura de um formato de dados de ponto fixo de 32 bits;
[0035] A Figura 2a e a Figura 2b são representações esquematizadas de um quadrado de um valor de dados de ponto fixo de 32 bits para ilustrar o efeito de valores muito pequenos no resultado de ponto fixo de 64 bits;
[0036] A Figura 3 é um gráfico de uma função de logaritmo de acordo com uma configuração da presente invenção;
[0037] A Figura 4 é um diagrama de bloco esquematizado de um equipamento para criar uma soma de quadrados de acordo com uma configuração da presente invenção;
[0038] A Figura 5 é um diagrama de bloco de uma implementação possível do equipamento da Figura 4;
[0039] A Figura 6 é um fluxograma para ilustrar a função do equipamento de acordo com a Figura 5; e
[0040] A Figura 7 é um diagrama de bloco esquematizado para ilustrar um codificador de áudio de acordo com uma configuração da presente invenção.
[0041] A seguir, a presente invenção é descrita com referência às figuras e freqüentemente contra o ‘pano de fundo’ do processamento de sinal de áudio e especificamente codificações de sinal de áudio. Como será explicado em maiores detalhes, após a descrição das figuras, a presente invenção não é limitada a este campo de aplicação, mas esta definição predominantemente serve para facilitar a compreensão.
[0042] Antes das configurações da presente invenção serem explicadas em maiores detalhes, é apresentada, a seguir, uma introdução a estas configurações, que é um tipo de análise geral e torna as vantagens das configurações a seguir mais bem compreendidas, com referência as Figuras 1-3.
[0043] A Figura 2 mostra a estrutura de um possível formato de dados de ponto fixo de 32 bits, que é a base exemplificativa das configurações discutidas a seguir. O formato de dados de 32 bits representado pode facilmente ser aplicado a outras contagens de bit, também. Como pode ser visto, um valor armazenado no formato de dados de ponto fixo de 32 bits compreende 32 bits. Um registro de 32 bits, portanto, é suficiente para armazenar este valor no formato de dados de ponto fixo de 32 bits. Este registro é designado na Figura 1 pelo numeral 10. As posições de 32 bits são sugeridas, nas quais quadrados individuais numerados X0 ... X31 do bit menos significativo (LSB) para o bit mais significativo (MSB). Os significados das posições de bit individuais de acordo com o formato de dados de ponto fixo de 32 bits são sugeridos abaixo das posições de bit individuais. Como pode ser visto, o bit mais significativo representa o sinal do valor, isto é, + ou -. Os bits X30 - X0 remanescentes expressam a magnitude do valor. De acordo com a configuração da Figura 1, estes bits representam uma fração verdadeira, isto é, o formato de dados 10 é um formato de dados de ponto fixo fracionário, no qual, por convenção, o ponto ou a vírgula é posicionado na localização mais à esquerda, isto é, na lateral à esquerda antes do bit X30. O valor no registro 10 pode, portanto, ser expresso como
[0045] Como pode ser facilmente visto, a faixa de valor representável do formato de dados de ponto fixo fracionário se estende aproximadamente de exclusivamente -1 a exclusivamente 1.
[0046] Como foi discutido na introdução da descrição da presente invenção, energias de sinal, por exemplo, são obtidas por meio do quadrado das linhas de freqüência e somando todas as linhas de freqüência quadradas, isto é, as energias de linhas, em um grupo de freqüência. O número das linhas contidas em um grupo de freqüência varia de 4 a 96 no exemplo de MPEG Layer-3 e MPEG AAC.
[0047] Como foi, também, discutido na introdução à descrição do presente pedido, é possível representar os valores de linha de freqüência em um formato de dados do ponto fixo pelo uso de um fator de escala global que se aplica a todas as linhas de freqüência de um canal de áudio e, ainda, a todas as linhas de freqüência de todos os canais de áudio processado em um codificador, e que determina em quantas posições cada valor de linha de freqüência deve ser trocado para a esquerda ou direita no lado do codificador, de modo que o escalonamento original pode ser obtido novamente. De modo a submeter estes valores de dados de ponto fixo de 32 bits, em um processador de ponto fixo com uma largura de palavra de dados de 32 bits, à soma de quadrados para o cálculo das energias de sinal de áudio, os requisitos básicos a seguir devem ser atendidos para uma implementação eficiente do cálculo das energias de sinal de áudio, os requisitos básicos a seguir devem ser atendidos para uma implementação eficiente do cálculo das energias de sinal de áudio a partir das linhas de freqüência:
[0048] - As linhas de freqüência devem ser representadas com uma largura de palavra de 32 bits. 16 bits não são suficientes.
[0049] - As energias de sinal de áudio devem, também, ser representadas em um formato de dados de ponto fixo e não em um formato de dados de ponto de flutuação.
[0050] - As energias de sinal de áudio devem ser representadas em um tipo de dado com uma largura de palavra não superior a 32 bits. Isto resulta, também, em uma largura de palavra de 32 bits para as energias de sinal de áudio
[0051] As configurações especiais da presente invenção descritas a seguir atendem a todos estes requisitos básicos, embora deva ser observado que uma implementação menos eficiente pode ser obtida se nem todos destes requisitos básicos forem atendidos. Como será discutido posteriormente, não é, por exemplo, absolutamente necessário que as energias de sinal de áudio sejam limitadas em sua largura de palavra a 32 bits. O reprocessamento das energias de sinal de áudio apenas deve ser limitado a uma representação de ponto fixo de 32 bits.
[0052] Em decorrência dos requisitos acima, surge o problema a seguir no cálculo das energias de sinal de áudio. A elevação ao quadrado dos valores de linhas de freqüência de 32 bits primeiramente resulta em energias de linha com uma largura de palavra de 64 bits, onde, entretanto, os 32 bits - no caso das configurações a seguir, os 32 bits inferiores - são descartados no processamento adicional, e a aritmética fracionária continua apenas com os 32 bits superiores.
[0053] De modo a ilustrar isto, é feito referência às Figuras 2a e 2b. Elas mostram dois registros de entrada 12a e 12b de um multiplicador usado como um elevador ao quadrado, escrevendo os mesmos valores nos registros do multiplicando de entrada 12a e 12b. Ambos os registros 12a e 12b são registros de 32 bits. Adicionalmente, as Figuras 2a e 2b mostram um registro de saída de 64 bits 14 consistindo de uma porção superior 14a e uma porção inferior 14b.
[0054] O multiplicador que não é representado nas Figuras 2a e 2b, é configurado para ler o conteúdo do registro dos registros 12a e 12b no formato de dados de ponto fixo de 32 bits e para multiplicar 16 os dois valores, de modo que um resultado de 64 bits seja obtido, que é enviado para o registro de saída 14 em um formato de dados de ponto fixo de 64 bits. Dessa maneira, a porção superior 14a do registro de saída 14 cobre as primeiras 31 posições binárias após a vírgula, enquanto a porção inferior 14b cobre as posições binárias restantes.
[0055] As Figuras 2a e 2b mostram situações nas quais valores de linha de freqüência diferentes foram escritos nos registros de entrada 12a e 12b, de modo que resultados divergentes são obtidos no registro de saída 14.
[0056] A Figura 2a mostra especificamente uma situação na qual o valor de linha de freqüência é alto, isto é, 0x12345678. Contanto que os valores de linha de freqüência sejam suprimidos (“gated out”) em um nível elevado, isto é, ocupem um grande número de bits válidos em uma palavra de dados de 32 bits, os 32 bits superiores do resultado real amplo de 64 bits no registro de saída 14 são suficientemente precisos para expressar o resultado e/ou o quadrado. O erro que ocorre quando apenas a porção superior 14a é usada, ao invés do resultado completo, resulta em apenas 0x000000003be9b080 no caso da Figura 2a.
[0057] A Figura 2b mostra o caso de um pequeno valor de linha de freqüência nos registros de entrada 12a e 12b, respectivamente, isto é, 0x00004321. Estes valores de linha de freqüência também ocorrem, como já foi observado, visto que todas as linhas de freqüência de pelo menos um canal de áudio têm fator de escala global e, portanto, tipicamente um grande número de linhas de freqüência ocupa um pequeno número de bits válidos em apenas uma palavra de dados de 32 bits, isto é, possuem uma amplitude pequena. Como pode ser visto da Figura 2b, no caso de pequenos valores de linha de freqüência, os 32 bits superiores do registro de saída 14 não expressam o resultado da elevação ao quadrado com precisão suficiente. A soma de várias destas energias de linha para formar um valor de energia de sinal, em especial, irá, portanto, suprir um resultado incorreto, isto é, por exemplo,zero, que no curso final da codificação de áudio resultará em uma qualidade de áudio reduzida. No exemplo da Figura 2b, a porção superior do registro de saída irá, por exemplo, indicar um resultado de zero, enquanto o valor de resultado real seria 0x0000000023349482.
[0058] Em vista dos exemplos das Figuras 2a e 2b, parece ser necessário, primeiramente, considerar todos os 64 bits do registro de saída 14 em processamentos subseqüentes das energias de sinal. Isto necessitaria, entretanto, de numerosas operações complicadas de dados de 64 bits, isto é, operações com operandos de 64 bits, e prejudicaria os requisitos básicos mencionados acima para uma implementação eficiente.
[0059] Se, entretanto, a porção de 32 bits superiores de cada valor de energia de sinal no registro de saída 14 for, realmente, ser usada unicamente, um melhoramento pode ser atingido pela mudança de todos os valores de linha de freqüência em um grupo de freqüência à esquerda pelo mesmo número de bits antes da elevação ao quadrado, através do qual os resultados, dessa maneira, contêm um número maior de bits válidos na porção de 32 bits superiores do resultado de 64 bits, ou pela mudança do resultado no registro de resultado 14.
[0060] A porção superior 14a de cada valor de energia de sinal poderia, então, ser convertida em uma faixa logarítmica pela aplicação de uma unidade de cálculo para o cálculo de uma função de logaritmo para a respectiva porção superior 14a das energias de sinal. A unidade de cálculo teria apenas que ser capaz de obter o logaritmo de um valor de dados de ponto fixo de 32 bits de modo a obter um valor de dados de ponto fixo de 32 bits. A função de logaritmo que converte o valor x no valor y, poderia ser y = log2(x)/64, cujo curso de função é ilustrado na Figura 3. A Figura 3 apenas mostra a seção da função de logaritmo com que é o único relevante para os valores de energia de sinal elevados ao quadrado no formato de dados de ponto fixo de 32 bits. Aqui, o fator de escala 1/64 garante que o menor valor possível, isto é, um valor de sinal de energia de 2-63 (pelo menos 1 bit é reservado para o sinal) também cobre a faixa de valor de saída possível, que se estende de -1 a 1 exclusivamente no caso de representações de ponto fixo, mesmo se os valores de sinal de energia, que de acordo com a função de logaritmo da Figura 3, são obtidas do logaritmo, são valores de ponto fixo de 64 bits.
[0061] Este procedimento não seria, entretanto, muito satisfatório, visto que nas etapas de processamento adicional da codificação de áudio dentro de um codificador de áudio, todas as energias de sinal deveriam, de todas as maneiras, ter o mesmo escalonamento e, portanto, a mudança para à esquerda e/ou o fator de escala que aumenta a precisão interferiria exatamente com o mesmo nível de escalonamento.
[0062] Exatamente neste ponto, é mostrado o efeito de uma propriedade positiva da obtenção do logaritmo. Conforme observado acima, a representação das energias de linha é maximamente precisa por meio da mudança prescrita para a esquerda, por exemplo, ‘s’ posições de bit na linha de freqüência e/ou domínio de amplitude, e/ou pelo escalonamento efetivo por 22s no domínio de energia de sinal sujeito à referida distância de segurança. Temporariamente, o número de mudanças para a esquerda executado neste grupo de freqüência, isto é, o valor ‘s’, deve ser observado. Se o valor de energia de sinal da função de logaritmo mostrado na Figura 3, a seguir referido como LD64(), que foi calculado com esta alta precisão, é agora convertido na faixa logarítmica — a seguir algumas vezes referido como formato LD64 - então este ainda está presente com a máxima precisão possível. Uma mudança das linhas de freqüência para a esquerda em 1 bit, corresponde agora, por exemplo, a uma mudança para a esquerda de 2 bits nas energias de sinal na faixa linear, não logarítmica, isto é, após a elevação ao quadrado, e isto, por sua vez, corresponde a uma adição de 2/64 na faixa logarítmica, visto que 2/64 = log2(22)64 = LD64(22).
[0063] De modo a recuperar o escalonamento original nas energias de sinal no formato LD64, apenas uma subtração com 2*s/64 de ser efetuada, onde ‘s’ corresponde à mudança previamente observada para a esquerda dos valores de linha de freqüência do grupo. Esta subtração, entretanto, não resulta em uma perda de precisão, visto que nenhum bit válido é perdido e/ou trocado, como seria o caso com uma mudança para a direita na faixa linear. Dessa maneira, as energias de sinal estão presentes no formato LD64, que, como será explicado a seguir, é vantajoso para os cálculos adicionais no codificador de áudio, com uma alta precisão e o mesmo escalonamento para todos os valores de energia de sinal.
[0064] Após a discussão acima dos princípios e vantagens das configurações da presente invenção, a seguir, as configurações preferidas da presente invenção serão explicadas em maiores detalhes com relação às Figuras 4-7.
[0065] A Figura 4 primeiramente mostra uma representação esquematizada de um equipamento adequado para cálculo da soma de quadrados de um grupo de N valores de ponto fixo de x bits, enquanto por um lado mantém a faixa dinâmica e por outro lado mantém a despesa de hardware dentro de limites razoáveis. O equipamento é baseado nas considerações anteriores.
[0066] O equipamento da Figura 4, que é geralmente designado pelo numeral 20, inclui registros de x-bits 221, 222 ... 22N para armazenar os valores de ponto fixo de N-bits, um meio de soma de quadrados 24 para determinar a soma de quadrados de valores nos registros 221 - 22N na faixa não logarítmica, escalonado por um fator de escala efetivo ajustável, um primeiro registro de resultado 26 para engatar o resultado dos meios de soma de quadrados 24, meios para obter o logaritmo 28 para converter o resultado no registro de resultados 26 no formato LD64, um segundo registro de resultado 30 para engatar o resultado dos meios para obter o logaritmo 28, meios de reescalonamento 32 para reescalonar e/ou reverter o reescalonamento do resultado no registro de resultado 30, um registro de saída 34 para engatar o resultado final conforme ele é enviado pelos meios de reescalonamento 32, e meios de controle 36 para garantir que o escalonamento efetuado pelos meios de soma de quadrados 24 seja revertido pelo reescalonamento nos meios de reescalonamento 32, e adicionalmente determinando o fator de escala comum.
[0067] Após os componentes individuais do equipamento 20 terem sido descritos, sua cooperação na criação de somas de quadrados será descrita a seguir, onde cada interação é indicada pelas respectivas setas.
[0068] Como já foi mencionado, os valores a serem submetidos à soma de quadrados estão primeiramente presentes nos registros 221 — 22N no formato de ponto fixo de x-bits. Como foi, também, previamente explicado, estes valores, que podem ser valores de linha de freqüência, podem divergir claramente entre si com relação ao número de seus bits válidos.
[0069] Os meios de soma de quadrados 24, agora, recebem estes valores nos registros 221 - 22N de modo a submetê-los à criação de uma soma de quadrados de maneira que finalmente uma soma de quadrados dos valores nos registros 221 - 22N estará presente em uma representação de ponto fixo no registro 26, escalonada por um fator de escala efetivo ajustável, pelo menos indiretamente, pelos meios de controle 36. Aqui, não é absolutamente necessário que o registro de resultado 26, no qual os meios de soma de quadrados 24 escrevem o resultado de soma de quadrados, tenha 2x bits. Ao invés disso, será suficiente, como é sugerido pela representação em linhas pontilhadas parcial do registro 26, que os meios de soma de quadrados 24 supram uma representação de ponto fixo de y-bit do resultado, onde, preferivelmente, y = x.
[0070] A seguir, duas possibilidades, em especial, serão selecionadas para mostrar como os meios de soma de quadrados 24 podem considerar a informação de fator de escala dos meios de controle 36, de modo a enviar o resultado escalonado para o registro 26, e como os meios de controle 36 podem determinar a informação de fator de escala e/ou o fator de escala efetivo, através do qual o resultado no registro de resultado 26 é escalonado, de modo que nenhum bit válido será perdido por estouro.
[0071] Com base na descrição anterior, a primeira possibilidade consiste de meios de controle 36 que analisam o conteúdo dos registros 221 - 22N de modo a determinar previamente o valor de escalonamento efetivo, de maneira que nenhum estouro ocorra pela soma subseqüente dos quadrados dos valores nos registros 221 - 22N. Isto ocorreria se nenhum bit de estouro estivesse presente em uma unidade de cálculo de adição dos meios de soma de quadrados 24, indicada na Figura 4 pelo numeral 38, ou no máximo quando o quadrado de “estouro” e/ou valor de energia estiver escrito em uma célula de memória que não ofereça quaisquer bits de estouro, como é o caso, por exemplo, do registro 26. Portanto, os meios de controle 36 ajustam as informações de fator de escala de acordo com o número N e o número máximo de bits livres nos registros 221 - 22N e/ou no máximo de x menos o número de posições válidas dos valores individuais nos registros 221 - 22N, de maneira que nenhum estouro ocorra em uma saída no registro 26 e/ou o resultado não deixará a faixa de valor de -1 a 1, exclusivamente.
[0072] Em especial, os meios de controle 36 podem, como foi previamente mencionado, ajustar o fator de escala efetivo, através do qual o resultado no registro 26 é escalonado, por meio de um fator de escala comum, que os meios de soma de quadrados 24 utilizam para escalonar o conteúdo do registro 221 - 22N no início, isto é, antes da elevação ao quadrado 40. Em especial, o fator de escala comum, conforme foi previamente explicado, pode corresponder a uma força de 2, de modo que o escalonamento prévio dos valores nos registros 221 - 22N pode ser atingido por uma operação de mudança para a esquerda. Neste caso, não seria necessário, como foi explicado anteriormente, que os meios de soma de quadrados 24 adicionem 38 aos resultados intermediários das elevações ao quadrado 40 do conteúdo de registro escalonado individual em um formato de dados de ponto fixo 2x, de modo a enviar o resultado para o registro de resultado 26; ao invés disso, os meios de soma de quadrados 24 necessitariam de uma representação de ponto fixo de y-bit apenas dos resultados de elevações ao quadrado intermediárias 421 ... 42N. A soma 38 de todos os resultados de elevação ao quadrado intermediária 421 - 42N resulta no resultado final dos meios de soma de quadrados 24 no registro 26.
[0073] Uma outra possibilidade adicional para determinar e considerar o fator de escala seria os meios de soma de quadrados 24 primeiramente submeterem o conteúdo do registro 221 - 22N à elevação ao quadrado 40 um após o outro, de modo a obter resultados intermediários 421 - 42N no formato de dados de ponto fixo 2x. Estes seriam, então, submetidos à soma 38 pelos meios de soma de quadrados 24. O resultado de soma de quadrados de ponto fixo 2x resultante seria, então, examinado quanto ao número de bits não usados e/ou quanto à diferença entre 2x e o número de posições válidas pelos meios de controle 36, de modo a ter executada uma operação de mudança correspondente para a esquerda pelo número respectivo de bits neste resultado de soma de quadrados de 2x bits pelos meios de soma de quadrado 24, antes do último inserir o resultado ao registro de resultado 26. A desvantagem neste procedimento, comparado àquele descrito primeiramente, é que a despesa de cálculo interno nos meios de soma de quadrados 24 seria aumentada, visto que os valores 421 - 42N teriam que ser processados com uma largura de palavra de 2x, e em especial teriam que ser submetidos à soma 38. Para isto, tanto uma unidade de cálculo de adição com capacidade de desempenho aumentada seria requerida, quanto uma unidade de cálculo de adição de formato de dados de ponto fixo de y-bit, tendo um bit de estouro alocado, deveria ser controlada mais freqüentemente. Com esta possibilidade, os meios de soma de quadrados 24 primeiramente elevariam ao quadrado os valores nos registros 221 - 22N individualmente e, então, somariam 38 (SIC) os valores de quadrado de ponto fixo de 2x-bit 421 - 42N e, a seguir, escalonariam o resultado de acordo com a informação de fator de escala da unidade de controle 36 e o enviariam para o registro 26.
[0074] Em uma configuração, que é preferivelmente implementada com x = 24 bits, o registro 26 tem um comprimento de y = posições 2x. Em uma outra configuração, que é preferivelmente implementada com x = 32 bits, uma redução de posição para x posições é executada como na elevação ao quadrado em um meio 421 - 42N, de uma maneira como durante a elevação ao quadrado ou após a elevação ao quadrado, mas antes da armazenagem no registro. Então, a soma é efetuada com uma largura de palavra de x bits. Aqui, o registro 26, dessa maneira, compreende apenas y = x posições. Os meios para obter o logaritmo podem, então, compreender também, preferivelmente, x posições.
[0075] Por meio do fator de escala efetivo, o número de bits válidos no registro de resultado 26 pode ser ajustado quase que de forma ideal. Agora, os meios para obter o logaritmo 28 recebem a representação de ponto fixo de y-bit a partir do registro 26, onde, se necessário, as posições de bit remanescentes de uma precisão mais elevada são descontadas, e as submetem à conversão de formato LD64 discutida acima com relação à Figura 3, de modo a inserir o resultado no registro 30 no formato de dados de ponto fixo de z-bit, onde, preferivelmente, z = y, e preferivelmente, y = x.
[0076] O resultado no registro de resultado 30 representa uma representação logarítmica escalonada da soma de quadrados dos valores nos registros 221 - 22N. Os meios de reescalonamento 32 agora revertem o escalonamento pela subtração do valor escalonado no registro 30, um valor de correção 44, que eles recebem dos meios de controle 36. No caso do formato LD64, o valor de correção, conforme mencionado anteriormente, resulta em LD64(s), onde s é o fator de escala efetivo com o qual a soma de quadrados no registro de resultado 26 é escalonada.
[0077] O resultado é, então, enviado para o registro 34 no formato de dados de ponto fixo pelos meios de reescalonamento 32.
[0078] Com referência à Figura 4, um esboço foi provido da função de uma configuração preferida da presente invenção, sem incluir uma possível implementação de hardware. A Figura 5 mostra uma possível implementação do equipamento da Figura 4 de forma um pouco mais detalhada. O equipamento da Figura 5, que é geralmente designado por 60, inclui uma memória 62, meios de controle 64, meios de mudança 66, um dispositivo de elevação ao quadrado 68, um somador 70, um dispositivo de obtenção de logaritmo 72, um divisor 74 e um subtrator 76. Todos os módulos 62 - 76 são conectados em comunicação entre si, por exemplo, por um barramento ou um programa de interface 78. Os meios 66 - 76 podem ser implementados no hardware, mas podem, também, parcialmente, ser códigos de programa respectivos executados pelos meios de controle 64, de modo a executar as respectivas tarefas. Cada um dos módulos 66 - 76 deve ser capaz de processar apenas operandos de formato de dados de ponto fixo de x-bit. Entre os módulos 66 - 76, os módulos 66 - 70 formam os meios de soma de quadrados 80, enquanto o dispositivo de obtenção de logaritmo 72 e o divisor 74 são combinados para formar os meios para obter o logaritmo 82.
[0079] Os meios de controle 64 são, por exemplo, controlados por programa e causam a criação de soma de quadrados de valores, que são depositados no formato de dados de ponto fixo de x-bit na memória 62 nos locais de memória de x-bit 841 ... 84N, a serem executados. A função exata dos meios de controle 64 é discutida com relação à Figura 6. Aqui, é especificamente presumido que os valores de ponto fixo de x-bit nos locais de memória 841 - 84N são valores de linha de freqüência de um grupo de freqüência.
[0080] Primeiramente, os meios de controle 100 examinam os valores de linha de freqüência do grupo nos locais de memória 841 - 84N e ajustam um fator de escala comum. O ajuste na etapa 100 é efetuado, como foi explicado acima, com base no número N e no número mínimo de posições de bits não usadas nos locais de memória 841 - 84N. Especificamente, ele ajusta o fator de escala comum para uma força de 2, tal como 2s. Alternativamente, os meios de controle 64 ajustam um valor de mudança s, que corresponde ao fator de escala 2s. Os meios de controle inserem o valor s ou 2s em um registro interno ou externo 101 para engate.
[0081] Em uma etapa subseqüente 102, os meios de controle 64 fazem que os meios de mudança 66 mudem o conteúdo dos locais de memória 841 - 84N com os valores de linha de freqüência do grupo à esquerda em s posições de bit de acordo com o fator de escala comum e/ou o valor de mudança.
[0082] Em uma etapa 104, os meios de controle 64, então, fazem que o dispositivo de elevação ao quadrado 68 eleve ao quadrado cada valor nos locais de memória 841 - 84N e escreva a metade superior do resultado de 2x-bit de volta no respectivo local de memória 841 - 84N. O dispositivo de elevação ao quadrado 68 é, por exemplo, um multiplicador, onde os meios de controle 104 escrevem o valor respectivo a ser elevado ao quadrado de um dos locais de memória 841 - 84N em ambos os registros do multiplicando x-bit do multiplicador. O dispositivo de elevação ao quadrado pode incluir internamente, por exemplo, um registro de resultado de 2x- bit, onde os meios de controle, entretanto, certificam-se que apenas a metade superior, isto é, um valor de elevação ao quadrado de ponto fixo de x-bit, seja escrito de volta no respectivo local de memória 841 - 84N. Alternativamente, o dispositivo de elevação ao quadrado calcula apenas uma representação de x-bit previamente e, portanto, tem apenas um registro de saída de x-bit.
[0083] Em seguida, em uma etapa 106, os meios de controle 64 criam uma soma de todo o conteúdo das posições de memória 841 - 84N por meio do somador 70. Esta pode começar com a soma dos dois primeiros valores e gravação do resultado em um registro de soma de x-bit 86 no formato de dados de ponto fixo de x-bit. A seguir, os meios de controle 64 podem usar o somador 70 de modo a adicionar o valor com a posição de memória 86 aos valores subseqüentes um após o outro e sobrescrever cada valor prévio no local de memória 86 com a soma resultante. Alternativamente, os meios de controle 64 podem certificar-se de que a soma seja gravada em uma das posições de memória 841 - 84N e acumulada nestas.
[0084] Em uma etapa 108, os meios de controle 64, então, instruem o dispositivo de obtenção de logaritmo 72 para obter o logaritmo da soma no local de memória 86, e a seguir, o divisor 74 divide o resultado por 64. O resultado intermediário do dispositivo de obtenção de logaritmo 72 é, por exemplo, gravado de volta no local de memória 86, como é, por exemplo, o resultado do divisor 74. Se o divisor for uma força de 2, o divisor será implementado como um meio de mudança simples.
[0085] Após a etapa 108, uma representação escalonada com o logaritmo obtido da soma de quadrados está, portanto, presente no local de memória 86. Em uma etapa 110, os meios de controle, portanto, instruem o subtrator 76 a subtrair do valor no local de memória 86, que é dividido e o logaritmo do qual é obtido, um valor dependendo do fator de escala s armazenado no engate 101, isto é, o valor 2*s/64.
[0086] Após as configurações preferidas da presente invenção terem sido descritas acima com relação às Figuras 4 - 6, a seguir uma configuração para um codificador de áudio é discutida, na qual um equipamento de acordo com estas configurações é implementado.
[0087] O codificador de áudio da Figura 7, que é geralmente designado como 150, inclui meios de transformação 152, meios de cálculo de energia de grupo 154 e um gerador de corrente de código 156, que são conectados em série entre uma entrada 158 e uma saída 160 do codificador 150. O gerador de corrente de código 156 usa um modelo psicoacústico 162 de modo a emitir informação de irrelevância, por exemplo, de um sinal de áudio 164 a ser codificado e presente na entrada 158, a distância da qual afeta ligeiramente ou não afeta a qualidade de áudio da saída de corrente de dados codificada na saída 160. Embora não mostrado na Figura 7, poderia ocorrer que o gerador de corrente de código 156 estivesse acoplado aos meios de transformação 152 ou aos meios de cálculo de energia de grupo 154 através de um caminho de retroalimentação.
[0088] O sinal de áudio 164 presente na entrada 158 está presente, por exemplo, como uma seqüência de valores de amostragem de áudio, que foram amostrados com uma freqüência de amostragem predeterminada. O sinal de áudio 164 pode, por exemplo, estar presente em um formato PCM. No sinal de áudio 164, o sinal de áudio é representado conforme plotado em relação ao tempo t, onde o eixo vertical representa a amplitude A em unidades arbitrárias.
[0089] Então, os meios de transformação 152 transformam o sinal de áudio 164 de uma faixa de tempo para uma faixa espectral pela decomposição do sinal de áudio 164 em seus constituintes espectrais. Os meios de transformação 152 podem, por exemplo, consistirem especificamente de um banco de filtro de análise tendo 32 filtros de passagem de banda. Mais precisamente, os meios de transformação 152 decompõem o sinal de áudio 164 em componentes espectrais, seção por seção. As seções ou quadros 166, para os quais a decomposição espectral é efetuada, se sobrepõem no tempo, por exemplo, em 50%. Em cada componente espectral, um valor espectral e/ou valor de linha de freqüência é criado para cada quadro sucessivo, que é ilustrado por meio de pontos no espectrograma 168 gerado pelos meios de transformação 152. Desta maneira, uma linha de freqüência de uma seqüência de valores de linha de freqüência é criada por componente espectral, onde as linhas de freqüência são indicadas em 168 com setas horizontais, que são visualmente separadas em valores de linha de freqüência apenas para os três quadros indicados 166. No espectrograma 168, um número arbitrário de linhas de freqüência é arranjado ao longo do eixo espectral ou eixo de freqüência f, embora, entretanto, o número real de linhas de freqüência seja maior.
[0090] Com base no espectrograma 168 assim criado, o gerador de corrente de código 156 gerará a corrente de dados codificada. Para este fim, o gerador de corrente de código 156, entretanto, não requer ou nem sempre requer a decomposição espectral de todos os componentes espectrais. Ao invés disso, as linhas de freqüência são divididas de acordo com os aspectos psicoacústicos nos grupos 170, conforme é indicado pelos círculos.
[0091] Para a geração de corrente de código para cada grupo 170, o gerador de corrente de código 156 requer agora, especificamente, para cada um dos quadros 166, o valor de energia de sinal associado, isto é, a soma dos quadrados dos valores de amplitude, isto é, a soma de quadrados dos valores de linha de freqüência.
[0092] Este cálculo é executado pelos meios de cálculo de energia de grupo 154. A energia do sinal é calculada para cada grupo 170 de linhas de freqüência como a soma de quadrados das linhas de freqüência, onde os meios de cálculo de energia de grupo 154 são, por exemplo, configurados conforme mostrado nas Figuras 4 e 5 e/ou funcionam conforme descrito nas Figuras 4-6. O resultado dos meios de cálculo de energia de grupo 154 são as seqüências 172 de valores de energia de sinal, isto é, uma seqüência 172 por grupo 170. Portanto, as seqüências de energia de sinal 172 têm um valor de energia de sinal por quadro 166, que é ilustrado ao longo das setas 172 através de um traço.
[0093] Com base nestas seqüências 172 de valores de energia de sinal, o gerador de corrente de código 156, então, gera a corrente de dados codificados 160 com base no modelo psicoacústico 162. Aqui, uma vantagem no reprocessamento dos valores de energia de sinal nos meios 156 não é apenas o fato dos valores estarem presentes em formato de dados de ponto fixo tendo o mesmo número de bits que os valores de linhas de freqüência que estavam presentes, mas também os valores estarem presentes na faixa logarítmica, visto que esta faixa permite execução mais simples de multiplicações, exponenciações e divisões, visto que estas operações de cálculo transferem para adições/subtrações e multiplicações/divisões mais simples na faixa logarítmica.
[0094] Como ilustração, considere o caso do codificador da Figura 7 que envia uma corrente de dados MPEG.
[0095] O codificador de áudio da Figura 7 é, por exemplo, um codificador MPEG AAC. Neste caso, o gerador de corrente de código 156 inclui um módulo TNS (formato de ruído temporal), no qual o gerador de corrente de código 156 executa um cálculo eficiente do espectro de energia pesada. O módulo TNS, em especial, executa um cálculo com as energias de sinal SE do tipo x = √SE. Isto pode ser efetuado mais facilmente com as energias de sinal estando no formato logarítmico LD64, como elas são usadas pelos meios de cálculo de energia de grupo 154. O módulo TNS simplesmente calcula X no LD64-1 (-LD64_SE >> 1), onde um >> b indica uma operação de mudança para a direita do operando a no lado esquerdo pelo número b de bits no lado direito, enquanto LD64-1() for uma função inversa da função de logaritmo LD64 (), e LD64_SE for o valor de energia de sinal no formato LD64 logarítmico, conforme ele é enviado pelos meios de cálculo de energia de grupo 154. “>> 1”, portanto, designa uma mudança para a direita em 1 bit, que corresponde a uma divisão por 2. A divisão por 2, conforme ela é efetuada na faixa logarítmica, corresponde a uma raiz quadrada na faixa linear. O sinal de menos corresponde à função inversa 1/x na faixa linear. O cálculo da função LD64-1 pode ser realizado com menor complexidade do que o cálculo da raiz e inversão do resultado, que seria requerido se as energias de sinal fossem alimentadas para o gerador de corrente de código 156 na faixa linear.
[0096] O gerador de corrente de código 156 poderia também gerar uma corrente de dados MPEG 4 AAC codificada e poderia, então, incluir um módulo PNS (substituição perceptual de ruído). O módulo PNS calcula internamente a distância entre o limite de audição e a energia do sinal em um grupo de freqüência 170. O módulo PNS determina especificamente, através da distância entre o limite de audição e a energia de sinal, se uma substituição de ruído pode ou deve ser executada. A dinâmica maior e a precisão relacionada da representação logarítmica das energias de sinal, conforme elas são enviadas pela unidade de cálculo de energia de grupo 154, e os limites de audição, que são, também, providos na representação logarítmica LD64 no gerador de corrente de código 156, são a contribuição essencial para a determinação PNS correta. Em especial, em uma função de coerência no módulo PNS, ocorrem uma divisão e um cálculo de raiz na forma de Y = (SE1/ √SE2.SE3) , onde SE1, SE2 e SE3 são saídas de energias de sinal pelos meios de cálculo de energia de grupo 154. A representação logarítmica da energia de sinal facilita e acelera grandemente este cálculo. Especificamente, o módulo PNS no gerador da corrente de código 156 pode executar o cálculo de LD64_Y, isto é, de Y no formato LD64, pelo cálculo do seguinte:
[0097] LD64_Y = LD64_SE1 - ((LD64_SE2 + LD64_SE3) >> 1),
[0098] onde LD64_SE# é a representação logarítmica do respectivo valor da energia de sinal SE#, conforme ele é enviado pelos meios de cálculo de energia de grupo 154.
[0099] O gerador de corrente de código 156 pode, por exemplo, compreender também um módulo estéreo central/lateral executando uma decisão de codificação central/lateral. Neste módulo CS, numerosas divisões são calculadas, isto é, do limite de audição para a energia de sinal, para escolher se uma codificação central/lateral (CS) deve ser usada ou não. Pelo uso do formato LD64, como ele é enviado pelos meios de cálculo de energia de grupo 154, estas divisões transferem para subtrações simples. Os limites, dos quais uma codificação CS deve ser usada, são constantes e podem, portanto, ser convertidos na faixa logarítmica já no código de fonte, onde nenhum tempo de cálculo adicional é requerido em adição à operação do programa. Isto se aplica a muitas outras constantes usadas no código modificado em conexão com os cálculos LD64. O descrito acima também se aplica ao módulo de estéreo de intensidade de um codificador MPEG Layer-3 ou AAC.
[00100] O gerador de corrente de código 156 pode, adicionalmente, compreender um dispositivo de estimativa de fator de escala que executa um cálculo de um volume de som. No dispositivo de estimativa de fator de escala, que está, por exemplo, localizado em um módulo de quantização do gerador de corrente de código 156, um cálculo da quarta raiz dos limites de audição, isto é, o cálculo do volume de som, é efetuado. Representando o limite de audição por meio de um formato de dados logarítmicos, isto é, o LD64, o cálculo desta quarta raiz pode ser executado muito eficientemente simplesmente pela troca dos limites médios logarítmicos para a direita em 2 bits. A etapa inversa, isto é, uma involução em 4, pode também ser executada de uma maneira bastante simples através da mudança para a esquerda em 2 bits.
[00101] No dispositivo de estimativa de fator de escala do gerador da corrente de código 156, adicionalmente, por exemplo, um cálculo dos fatores de escala SCF, constituindo parte da largura da etapa de quantização, pode ser calculado dos limites de audição modificados LT e das energias de sinal SE. O cálculo inclui uma etapa de cálculo do tipo SCF = log(k*LT/SE), onde log() é um logaritmo comum e k é uma constante. Este cálculo pode ser atingido de forma bastante elegante e eficiente pelo uso do formato LD64 e de uma conversão correspondente da fórmula original. O dispositivo de estimativa do fator de escala executaria o cálculo especificamente como tal: SCF = log(k) + log2*64* (LD64_LT - LD64_SE).
[00102] Os exemplos acima de módulos possíveis dentro do gerador da corrente de código 156 mostram que o uso do formato de dados logarítmicos LD64 facilita um aumento na eficiência de processadores de ponto fixo. O formato de dados logarítmicos LD64 em muitos casos torna possível a implementação de um codec de áudio com alta qualidade de áudio nestas plataformas, se certa qualidade de áudio for suficiente.
[00103] Os exemplos acima para módulos possíveis no gerador de corrente de código 156, mostraram, em especial, que a representação das energias de sinal, limites de audição e valores de energia adicionais em um formato de dados logarítmicos é extremamente apropriada, visto que no processamento das energias de sinais e limites de audição, a maioria das etapas de cálculo são executadas por meio de uma divisão ou multiplicação. Uma divisão, portanto, é transferida em uma subtração e uma multiplicação em uma adição, que resulta em uma representação e um processamento eficientes das energias de sinal e dos limites de audição, em um codificador de áudio por meio do formato de dados logarítmicos ilustrado. As energias de sinal na faixa linear, isto é, na faixa não logarítmica, são representadas no formato de dados de ponto fixo fracionários, que tem uma faixa de valor de -1,0 a +0,99999
[00104] Nas configurações acima, um logaritmo para a base de 2, o logaritmo duplo LD, foi usado. Em um logaritmo duplo, um valor de energia de sinal de 0,25 na faixa linear corresponde a um valor LD de -2. Um valor de energia de sinal de 0,3 na faixa linear corresponde a um valor LD de -1,7369656. Como em um processador de ponto fixo, tipicamente tanto valores inteiros quanto valores fracionários, mas não valores mistos, podem ser representados nas configurações acima, os valores LD foram escalonados no contexto do formato LD64 em que apenas valores fracionários são obtidos. Obviamente, uma outra possibilidade poderia ser escolher o escalonamento de modo que apenas valores inteiros fossem obtidos. Um escalonamento com um fator 1/64 foi especificamente escolhido, visto que este fator é aplicável a todas as larguras de palavra até 64 bits e, portanto, também abrange as larguras de palavra convencionais de 48 bits e 32 bits. O cálculo do logaritmo duplo escalonado com 1/64, isto é, o formato LD64, é executado de acordo com a fórmula y = log2(x)/64 = LD64(x). Renunciando a portabilidade estendida, este fator poderia, obviamente, ser também aumentado, isto é, até 1/y, onde y é o número de bits da soma escalonada de quadrados com o logaritmo não obtido.
[00105] A Figura 3 mostra o gráfico da função de logaritmo. Aqui, as características da função de logaritmo podem ser reconhecidas, que para menores, isto é, em uma representação de ponto fixo realmente mais imprecisa, valores de entrada x (mais próximos de 0,0) oferecem um número maior de valores de saída y, isto é, uma resolução menor, na faixa logarítmica, que, visto que são maiores em magnitude, isto é, mais próximos de -1,0, são, portanto, mais precisos em uma representação de ponto fixo. De acordo com as configurações acima, uma perda de precisão no cálculo de energias de sinal antes da transição para a faixa logarítmica, foi evitada pelo fator de escala comum e/ou pelo valor de mudança comum antes da elevação ao quadrado.
[00106] A configuração da Figura 7, portanto, representa um codificador usando um formato de dados logarítmicos escalonados ou regulares não escalonados no modelo psicoacústico e/ou no módulo de quantização para a representação e processamento das energias de sinal e limites de audição. Deve ser entendido, entretanto, que a descrição acima do logaritmo duplo e do escalonamento com 1/64 é apenas um exemplo. Em qualquer caso, a representação logarítmica serve para atingir uma execução mais rápida de numerosos cálculos, tal como no módulo de decisão central/lateral e no dispositivo de estimativa de fator de escala do módulo de quantização, visto que, como foi explicado, pelo uso do formato logarítmico, as divisões originalmente presentes são transferidas em subtrações simples, que podem ser executadas muitas vezes mais rápido em um processador de ponto fixo. O mesmo se aplica a cálculos de raiz, tal como cálculo de uma raiz quadrada, uma quarta raiz etc., que são transferidos com mudanças simples para direita. A despesa de cálculo a ser considerada para a transferência para a faixa logarítmica é de longe compensada pelo ganho de velocidade nas etapas posteriores do algoritmo. Portanto, as vantagens das configurações acima, especificamente, estão na precisão mais elevada dos valores representados de forma logarítmica, assim como na maior velocidade de processamento no uso da representação logarítmica.
[00107] Com referência à descrição acima, deve ser entendido que a presente invenção não está limitada aos formatos de dados de ponto fixo. As configurações acima relacionadas com a criação de somas de quadrados de valores podem, também, ser, de forma razoável, aplicadas a valores que estão presentes não no formato de dados de ponto fixo, mas em um formato de dados inteiros. Neste caso, o valor mais elevado de y-bit do resultado de soma de quadrados 2x-bit seria suprido para obtenção do logaritmo.
[00108] De acordo com as configurações acima, uma função para obter o logaritmo foi usada na qual um escalonamento em 1/64 foi executado. Este fator é razoável se uma e a mesma codificação for operada em plataformas diferentes com formatos de dados de ponto fixo diferentes. É, entretanto, também possível que o fator na função logarítmica possa apenas ser maior que x, isto é, maior que o número dos bits dos valores que são supridos para a soma de quadrados.
[00109] Adicionalmente, deve ser entendido com relação às configurações anteriores, que a presente invenção não está limitada à criação de somas de quadrados. A presente invenção poderia, por exemplo, ser vantajosa também se existissem grupos de apenas um valor, de modo que apenas uma codificação fosse executada. Neste caso, os meios de controle 36 não teriam, obviamente, que antecipar as informações de fator de escala de qualquer maneira. Ao invés disso, neste caso, o fator de escala usado para escalonamento do valor antes da elevação ao quadrado, resultaria automaticamente do número de bits válidos e/ou do número de bits não usados. De forma bastante geral, a presente invenção pode ser usada para a criação de uma representação de um resultado linearmente dependente do quadrado de um valor.
[00110] Com referência à descrição acima, deve ser entendido também que a presente invenção não é, obviamente, limitada a um uso no contexto de codificação de áudio. As mesmas vantagens descritas acima com relação à codificação de áudio, isto é, que atingem o mesmo nível de escalonamento para as energias de sinal individuais com a faixa dinâmica mantida e redução simultânea do gasto de codificação de áudio, podem também ser obtidas em outros campos de aplicação, por exemplo, para prover um arquivo de áudio com uma marca d’água ou similar.
[00111] Deve ser especificamente entendido que, dependendo das circunstâncias, o esquema inventivo pode também ser implementado em software. A implementação pode ser efetuada em um meio de armazenagem digital, em especial um disquete ou um CD com sinais de controle eletronicamente legíveis cooperando com um sistema de computador programável, de modo que o respectivo método seja executado. Em geral, a invenção, portanto, também consiste de um produto de programa de computador com um código de programa para executar o método inventivo armazenado em um transportador legível por máquina, quando o produto de programa de computador operar em um computador. Em outras palavras, a invenção, pode, portanto, ser executada como um programa de computador com um código de programa para executar o método, quando o programa de computador operar em um computador.
Claims (10)
1. Um codificador de áudio, caracterizado por: um aparelho implementado em um processor de ponto fixo para calcular as energias do grupo espectral de um sinal de áudio, compreendendo: um transformador para decompor o sinal de áudio em estruturas em um domínio de tempo e para transformar o sinal de áudio em cada estrutura do domínio de tempo para um domínio espectral a fim de obter um grupo de componentes espectrais para cada estrutura, cada componente espectral compreendendo um valor de amplitude em uma representação de x bits não logarítmica, tal que uma série de resultados de valores de amplitudes que são divididos em diferentes grupos espectrais; uma calculadora de energia de grupo para calcular a energia de grupo espectral para cada grupo espectral na respectiva estrutura como uma soma de niveladores dos valores de amplitude, a referida calculadora de energia de grupo compreendendo: um controlador para configurar um respectivo fator de dimensão para cada grupo espectral na dependência do número de valores de amplitude do respectivo grupo espectral e o menor número de posições de bits não utilizadas nas representações de x bits dos valores de amplitude do respectivo grupo espectral; um dimensionador para dimensionar a representação de x bits não logarítmica de cada valor de amplitude para cada grupo espectral com o respectivo fator de dimensão a fim de obter valores de amplitude dimensionados em uma representação de x bits; um nivelador para nivelar os valores de am plitude dimensionados na representação de x bits a fim de obter valores de amplitudes nivelados dimensionados em uma representação de 2x bits; um somador para somar os valores de amplitudes nivelados dimensionados para cada grupo espectral a fim de obter uma respectiva soma de niveladores em uma representação não logarítmica; um meio de logaritmo para aplicar uma função logarítmica para y bits da representação não logarítmica de cada soma de niveladores para cada grupo espectral a fim de obter uma respectiva representação logarítmica dimensionada, compreendido pelo y ser menor que 2x; um redimensionador para adicionar ou subtrair um respectivo valor de correção que resulta em aplicar a função logarítmica ao nivelador do respectivo fator de dimensão, para ou a partir de, respectivamente, a representação logarítmica dimensionada para cada representação logarítmica, a fim de obter a representação logarítmica de cada energia de grupo espectral, as energias de grupo espectral de todos os grupos espectrais compreendendo o mesmo nível de dimensão; e um gerador de fluxo de código MPEG para gerar, com base nas energias de grupo espectral dos grupos espectrais em uma representação logarítmica que compreenda o mesmo nível de dimensão, um codificador de fluxo de dados MPEG representando uma versão codificada do sinal de áudio.
2. O codificador de áudio de acordo com a reivindicação 1, caracterizado pelo controlador ser adaptado para ajustar o respectivo fator de dimensão a uma potência késima de 2 e pelo dimensionador ser adaptado para mudar a representação de x bits de um valor de amplitude do grupo em um registro de valor de x bits pelo k bits.
3. O codificador de áudio de acordo com a reivindicação 1 ou 2, caracterizado pelo nivelador compreender um registro de resultado 2x e ser adaptado para depositar um valor predeterminado de amplitude nivelado e dimensionado de valores de amplitudes nivelados e dimensionados na representação de 2x bits no registro de resultado 2x, e o somador ser adaptado para ler uma seção de y bits da representação de 2x bits do registro de resultado 2x, enquanto desconsidera o restante de bits no registro de resultado 2x, a fim de somar a seção de y bits junto às seções de y bits de outros valores de amplitudes nivelados dimensionados e escrever a soma de niveladores em um registro de y bits.
4. O codificador de áudio de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo logaritimizador ser adaptado ao processo de y bits da representação não logarítmica, tal que a representação logarítmica dimensionada corresponda a uma representação de y bits dos algoritmos para a base 2 da representação de y bits não algorítmica dividida por um número maior ou igual a y, e o redimensionador ser adaptado para adicionar a representação logarítmica dimensionada ou subtrair dela uma quantidade correspondente aos algoritmos para a base 2 do nivelador do respectivo fator de dimensão dividido pelo número.
5. O codificador de áudio de acordo com a reivindicação 4, caracterizado pelo número ser 64 e y = x = 32.
6. O codificador de áudio de acordo com qualquer uma das reivindicações anteriores, caracterizado por y ser igual a x.
7. O codificador de áudio de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo gerador de fluxo de código ser adaptado para gerar, ainda, o fluxo de dados codificados com base em um modelo psicoacústico.
8. O codificador de áudio de acordo com a reivindicação 7, caracterizado pelo gerador de fluxo de código ser um codificador MPEG 1/2 Layer-3 ou um codificador MPEG 2/4 AAC.
9. O codificador de áudio de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo gerador de fluxo de código compreender um módulo TNS, um módulo PNS para executar o cálculo e um estimador de fator de dimensão.
10. Um método de codificação de áudio, caracterizado por: calcular as energias do grupo espectral de um sinal de áudio por meio de um processor de ponto fixo enquanto; decompor o sinal de áudio em estruturas em um domínio de tempo; transformar o sinal de áudio em cada estrutura do domínio de tempo a um domínio espectral, a fim de obter um grupo de componentes espectrais para cada estrutura, cada uma compreendendo um valor de amplitude em uma representação de x bits não logarítmica, tal que uma série de resultados de valores de amplitudes que são divididos em diferentes grupos espectrais; calcular a energia espectral de grupo para cada grupo espectral na respectiva estrutura como uma soma de niveladores dos valores de amplitudes ao; configurar um respectivo fator de dimensão para cada grupo espectral na dependência do número de valores de amplitude do respectivo grupo espectral, e o menor número de posições de bits não utilizado nas representações de x bits dos valores de amplitude do respectivo grupo espectral; dimensionar a representação de x bits não logarítmica de cada valor de amplitude para cada grupo espectral com o respectivo fator de dimensão, a fim de obter valores de amplitude dimensionados em uma representação de x bits; nivelar os valores de amplitude dimensionados na representação de x bits, a fim de obter valores de amplitudes nivelados e dimensionados em uma representação de 2x bits; somar os valores de amplitudes nivelados e dimensionados para cada grupo espectral, a fim de obter uma respectiva soma de niveladores em uma representação não logarítmica; aplicar uma função logarítmica ao y bits da representação não logarítmica de cada soma de niveladores para cada grupo espectral, a fim de obter uma respectiva representação logarítmica dimensionada, compreendido pelo y ser menor que 2x; e adicionar ou subtrair um respectivo valor de correção que resulte em aplicar a função logarítmica ao nivelador do respectivo fator de dimensão à, ou a partir da, respectivamente, representação logarítmica dimensionada para cada representação logarítmica, a fim de obter a representação logarítmica de cada energia espectral de grupo, as energias espectrais de grupo de todos os grupos espectrais compreendendo o mesmo nível de dimensão; e gerar, com base nas energias de grupo espectrais dos grupos espectrais em uma representação logarítmica que compreende o mesmo nível de dimensão, um fluxo de dados MPEG codificado representando uma versão codificada do sinal de áudio.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102004059979.3 | 2004-12-13 | ||
| DE102004059979A DE102004059979B4 (de) | 2004-12-13 | 2004-12-13 | Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals |
| PCT/EP2005/013383 WO2006063797A2 (de) | 2004-12-13 | 2005-12-13 | Verfahren zum bilden einer darstellung eines von einem quadrat eines wertes linear abhängigen berechnungsergebnisses |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0517176A BRPI0517176A (pt) | 2008-09-30 |
| BRPI0517176B1 true BRPI0517176B1 (pt) | 2022-05-17 |
Family
ID=36390168
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0517176-8A BRPI0517176B1 (pt) | 2004-12-13 | 2005-12-13 | Método para criar uma representação de um resultado de cálculo linearmente dependente de um quadrado de um valor |
Country Status (18)
| Country | Link |
|---|---|
| US (1) | US8037114B2 (pt) |
| EP (2) | EP1843246A3 (pt) |
| JP (2) | JP4954087B2 (pt) |
| KR (1) | KR100921795B1 (pt) |
| CN (1) | CN101147122B (pt) |
| AU (1) | AU2005315826B2 (pt) |
| BR (1) | BRPI0517176B1 (pt) |
| CA (1) | CA2590509C (pt) |
| DE (1) | DE102004059979B4 (pt) |
| ES (1) | ES2596275T3 (pt) |
| IL (1) | IL183835A (pt) |
| IN (1) | IN266829B (pt) |
| MX (1) | MX2007006805A (pt) |
| NO (1) | NO341726B1 (pt) |
| PL (1) | PL1825356T3 (pt) |
| PT (1) | PT1825356T (pt) |
| RU (1) | RU2375743C2 (pt) |
| WO (1) | WO2006063797A2 (pt) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102004059979B4 (de) | 2004-12-13 | 2007-11-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals |
| GB0817977D0 (en) * | 2008-10-01 | 2008-11-05 | Craven Peter G | Improved lossy coding of signals |
| US8311843B2 (en) * | 2009-08-24 | 2012-11-13 | Sling Media Pvt. Ltd. | Frequency band scale factor determination in audio encoding based upon frequency band signal energy |
| EP2490006A4 (en) * | 2009-10-14 | 2018-05-02 | Nippon Paper Industries Co., Ltd. | Method for measuring degree of contaminant deposition |
| JP2012235832A (ja) * | 2011-05-10 | 2012-12-06 | Canon Inc | 被検体情報取得装置 |
| EP2980801A1 (en) | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method for estimating noise in an audio signal, noise estimator, audio encoder, audio decoder, and system for transmitting audio signals |
| US10020002B2 (en) * | 2015-04-05 | 2018-07-10 | Qualcomm Incorporated | Gain parameter estimation based on energy saturation and signal scaling |
| US10559315B2 (en) * | 2018-03-28 | 2020-02-11 | Qualcomm Incorporated | Extended-range coarse-fine quantization for audio coding |
| DE102022200283A1 (de) * | 2022-01-13 | 2023-07-13 | Robert Bosch Gesellschaft mit beschränkter Haftung | Radarsystem und Verfahren zum Betreiben eines Radarsystems |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3587251T2 (de) * | 1984-12-20 | 1993-07-15 | Gte Laboratories Inc | Anpassbares verfahren und vorrichtung fuer sprachkodierung. |
| JPS61188624A (ja) * | 1985-02-15 | 1986-08-22 | Fujitsu Ltd | 固定小数点演算装置 |
| US5197024A (en) | 1989-06-14 | 1993-03-23 | Pickett Lester C | Method and apparatus for exponential/logarithmic computation |
| JP2948378B2 (ja) * | 1991-09-28 | 1999-09-13 | 富士ゼロックス株式会社 | 重力多体系および電気力多体系用相互作用力計算用処理装置 |
| JP3217576B2 (ja) * | 1993-02-22 | 2001-10-09 | テキサス インスツルメンツ インコーポレイテツド | 集積オーディオデコーダ装置及び動作方法 |
| US5764698A (en) * | 1993-12-30 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for efficient compression of high quality digital audio |
| US5570454A (en) * | 1994-06-09 | 1996-10-29 | Hughes Electronics | Method for processing speech signals as block floating point numbers in a CELP-based coder using a fixed point processor |
| JPH08237497A (ja) * | 1995-02-23 | 1996-09-13 | Canon Inc | 画像処理装置及び方法 |
| US5608663A (en) * | 1995-03-03 | 1997-03-04 | Motorola, Inc. | Computational array circuit for providing parallel multiplication |
| KR0154387B1 (ko) * | 1995-04-01 | 1998-11-16 | 김주용 | 음성다중 시스템을 적용한 디지탈 오디오 부호화기 |
| US5699485A (en) * | 1995-06-07 | 1997-12-16 | Lucent Technologies Inc. | Pitch delay modification during frame erasures |
| US5719998A (en) | 1995-06-12 | 1998-02-17 | S3, Incorporated | Partitioned decompression of audio data using audio decoder engine for computationally intensive processing |
| JP3110288B2 (ja) * | 1995-07-21 | 2000-11-20 | 日本電気株式会社 | 指数対数変換回路 |
| US5864802A (en) * | 1995-09-22 | 1999-01-26 | Samsung Electronics Co., Ltd. | Digital audio encoding method utilizing look-up table and device thereof |
| KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
| JPH11242585A (ja) * | 1998-02-24 | 1999-09-07 | Sony Corp | 除算回路およびグラフィック演算装置 |
| AU3372199A (en) * | 1998-03-30 | 1999-10-18 | Voxware, Inc. | Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment |
| DE19826252C2 (de) * | 1998-06-15 | 2001-04-05 | Systemonic Ag | Verfahren zur digitalen Signalverarbeitung |
| JP3515903B2 (ja) * | 1998-06-16 | 2004-04-05 | 松下電器産業株式会社 | オーディオ符号化のための動的ビット割り当て方法及び装置 |
| JP2000151414A (ja) * | 1998-11-12 | 2000-05-30 | Matsushita Electric Ind Co Ltd | ディジタルオーディオ符号化装置、同符号化方法、及び同符号化プログラムを記録した記録媒体 |
| US6341300B1 (en) * | 1999-01-29 | 2002-01-22 | Sun Microsystems, Inc. | Parallel fixed point square root and reciprocal square root computation unit in a processor |
| US6516049B1 (en) * | 2000-06-06 | 2003-02-04 | Ikanos Communications, Inc. | Method and apparatus for insertion loss estimation in wireline communications |
| US6754618B1 (en) * | 2000-06-07 | 2004-06-22 | Cirrus Logic, Inc. | Fast implementation of MPEG audio coding |
| JP2002196792A (ja) * | 2000-12-25 | 2002-07-12 | Matsushita Electric Ind Co Ltd | 音声符号化方式、音声符号化方法およびそれを用いる音声符号化装置、記録媒体、ならびに音楽配信システム |
| US6732071B2 (en) | 2001-09-27 | 2004-05-04 | Intel Corporation | Method, apparatus, and system for efficient rate control in audio encoding |
| DE10217297A1 (de) * | 2002-04-18 | 2003-11-06 | Fraunhofer Ges Forschung | Vorrichtung und Verfahren zum Codieren eines zeitdiskreten Audiosignals und Vorrichtung und Verfahren zum Decodieren von codierten Audiodaten |
| DE10234130B3 (de) * | 2002-07-26 | 2004-02-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen einer komplexen Spektraldarstellung eines zeitdiskreten Signals |
| SG135920A1 (en) * | 2003-03-07 | 2007-10-29 | St Microelectronics Asia | Device and process for use in encoding audio data |
| DE102004059979B4 (de) | 2004-12-13 | 2007-11-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals |
-
2004
- 2004-12-13 DE DE102004059979A patent/DE102004059979B4/de not_active Expired - Fee Related
-
2005
- 2005-12-13 CA CA2590509A patent/CA2590509C/en not_active Expired - Lifetime
- 2005-12-13 EP EP07013279A patent/EP1843246A3/de not_active Ceased
- 2005-12-13 ES ES05850069.5T patent/ES2596275T3/es not_active Expired - Lifetime
- 2005-12-13 KR KR1020077013249A patent/KR100921795B1/ko not_active Expired - Lifetime
- 2005-12-13 PL PL05850069T patent/PL1825356T3/pl unknown
- 2005-12-13 WO PCT/EP2005/013383 patent/WO2006063797A2/de not_active Ceased
- 2005-12-13 RU RU2007126655/09A patent/RU2375743C2/ru active
- 2005-12-13 JP JP2007545932A patent/JP4954087B2/ja not_active Expired - Lifetime
- 2005-12-13 AU AU2005315826A patent/AU2005315826B2/en not_active Expired
- 2005-12-13 PT PT58500695T patent/PT1825356T/pt unknown
- 2005-12-13 BR BRPI0517176-8A patent/BRPI0517176B1/pt active IP Right Grant
- 2005-12-13 CN CN2005800480525A patent/CN101147122B/zh not_active Expired - Lifetime
- 2005-12-13 EP EP05850069.5A patent/EP1825356B1/de not_active Expired - Lifetime
- 2005-12-13 IN IN2141KON2007 patent/IN266829B/en unknown
- 2005-12-13 MX MX2007006805A patent/MX2007006805A/es active IP Right Grant
-
2007
- 2007-06-07 NO NO20072916A patent/NO341726B1/no unknown
- 2007-06-11 IL IL183835A patent/IL183835A/en active IP Right Grant
- 2007-06-13 US US11/762,690 patent/US8037114B2/en active Active
- 2007-08-16 JP JP2007212119A patent/JP4953978B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8037114B2 (en) | Method for creating a representation of a calculation result linearly dependent upon a square of a value | |
| CN104541327B (zh) | 用于高频音频内容的有效恢复的方法及系统 | |
| BRPI1001241B1 (pt) | Equipamento e método para a determinação de diversos centros degravidade local das frequências de um espectro de um sinal de áudio | |
| BR122019025142B1 (pt) | Sistema e método para gerar um sinal de tempo alongado e/ou um sinal de frequência transposta a partir de um sinal de entrada e meio de armazenamento legível por computador não transitório | |
| Malossi et al. | Fast exponential computation on simd architectures | |
| BR122022002977A2 (pt) | Codificador de áudio com um número dependente de sinal e controle de precisão, decodificador de áudio e métodos e programas de computador relacionados | |
| CN119249050A (zh) | 基于系数查找表的非线性激活函数快速计算装置及方法 | |
| Nersessian et al. | On a rational linear approximation of Fourier series for smooth functions | |
| Rothweiler | A rootfinding algorithm for line spectral frequencies | |
| Vinyals et al. | A hardware-independent fast logarithm approximation with adjustable accuracy | |
| US20090319589A1 (en) | Using fractional exponents to reduce the computational complexity of numerical operations | |
| ES2635026T3 (es) | Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución | |
| JP4822816B2 (ja) | オーディオ信号符号化装置および方法 | |
| KR102867672B1 (ko) | 단일한 하드웨어 구조로 복수의 활성화 함수를 연산하기 위한 방법 | |
| JP2000183753A (ja) | 信号変換装置及び信号変換方法 | |
| HK1109941A (en) | Method for creating a representation of a calculation result depending linearly on the square a value | |
| HK1105233B (en) | Method for producing a representation of a calculation result that is linearly dependent on the square of a value | |
| HK1254916A1 (en) | Method, system, encoder, decoder and medium for determining noise blending factor | |
| HK1254916B (en) | Method, system, encoder, decoder and medium for determining noise blending factor | |
| Dąbrowski et al. | Extended precision accumulation of floating-point data for digital signal generation and processing | |
| US20080133634A1 (en) | 0.75-power computing apparatus and method | |
| JPS63236132A (ja) | 対数値算出器 | |
| JPH10145185A (ja) | ディジタルフィルタ装置 | |
| JP2003303096A (ja) | 除算回路 | |
| JPS62131334A (ja) | 除算装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B15K | Others concerning applications: alteration of classification |
Ipc: G10L 19/032 (2013.01), G06F 7/544 (2006.01) |
|
| B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
| B09B | Patent application refused [chapter 9.2 patent gazette] | ||
| B12B | Appeal against refusal [chapter 12.2 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 13/12/2005, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |

