PT1825356T - 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 PDF

Info

Publication number
PT1825356T
PT1825356T PT58500695T PT05850069T PT1825356T PT 1825356 T PT1825356 T PT 1825356T PT 58500695 T PT58500695 T PT 58500695T PT 05850069 T PT05850069 T PT 05850069T PT 1825356 T PT1825356 T PT 1825356T
Authority
PT
Portugal
Prior art keywords
representation
logarithm
bits
group
bit
Prior art date
Application number
PT58500695T
Other languages
English (en)
Inventor
Geyersberger Stefan
Lutzky Manfred
Grill Bernhard
Disch Sascha
Gayer Marc
Hilpert Johannes
Lohwasser Markus
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of PT1825356T publication Critical patent/PT1825356T/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders

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)

Description

MÉTODO PARA CRIAR UMA REPRESENTAÇÃO DE UM RESULTADO DE CÁLCULO LINEARMENTE DEPENDENTE DE UM QUADRADO DE UM VALOR A presente invenção refere-se à codificação de áudio com cálculo de energias de grupos espetrais de um sinal de áudio, tal como necessário, por exemplo, em algumas codificações de áudio, nas quais, de acordo com um modelo psicoacústico, linhas de frequência são agrupadas em grupos de frequência, para que os grupos de frequência recebam codificação adicional com as energias de sinal.
Em métodos modernos de codificação de áudio baseados em bancos de filtro, tais como MPEG Layer-3 ou MPEG AAC, um modelo psicoacústico é usado no codificador ou encoder. Neste modelo psicoacústico, o espetro total do sinal de áudio transformado na gama de frequência é dividido em grupos de frequência individuais de diferentes larguras ou com números variados de linhas de frequência por grupo de frequê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 ou cálculo dos fatores de escalonamento no módulo de quantização do codificador de áudio, as energias de sinal das porções de sinal de áudio nos grupos de frequência individuais são calculadas no modelo psicoacústico. Isto é efetuado pela elevação ao quadrado de cada linha de frequência individual, resultando nas energias de linha, e soma subsequente de todas as energias de linha num grupo de frequência para formar a energia de banda de um grupo de frequência, dos quais podem existir aproximadamente 40 a 60 por canal de áudio no caso, por exemplo, de MPEG AAC. A seguir, a aplicação especial de uma implementação de tal método num processador de ponto fixo deve ser considerada.
Na representação de ponto fixo, as linhas de frequê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 escalonamento global ou um fator de mudança é usado, que pode ser aplicado a todas as linhas de frequência de um canal de áudio ou também a todas as linhas de frequência de todos os canais de áudio processados num codificador, e que determina em quantas posições cada valor de linha de frequê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 frequência de pelo menos um canal de áudio são igualmente suprimidas ou estão no mesmo nivel de escalonamento. Em consideração à dinâmica geralmente elevada das amplitudes individuais das linhas de frequência, algumas das linhas de frequê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.
Na implementação num 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.
Primeiramente, os problemas referem-se à 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 frequência, obtiveram dinâmicas duplas em relação às linhas de frequência se a precisão total tiver que ser mantida.
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 frequência, isto é, por exemplo, um tipo de dados com uma largura de 48 bits ou 64 bits. Imagine-se, por exemplo, uma linha de frequê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 frequência, pelo menos 44 bits válidos e seria representada num 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 frequência são representadas num 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.
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 frequência com 22 bits válidos é representada num tipo de dado de 24 bits. A energia de sinal do respetivo grupo seria, então, representada num 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. Num 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.
Um campo problemático adicional na implementação do método de codificação de áudio baseado em banco de filtro mencionado acima, num 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 numa 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 num processador de ponto fixo.
Uma possibilidade para executar uma divisão num 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.
Uma outra possibilidade para implementar uma divisão num processador de ponto fixo é o uso de tabelas, possivelmente com relação às etapas subsequentes de iteração para aumentar a precisão dos resultados de divisão. Este procedimento, entretanto, frequentemente 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 subsequentes terão, por sua vez, uma alta demanda de tempo de cálculo.
Ambos os métodos mencionados podem ser usados num 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.
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. A Patente US 6,754,618 Bl 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 subsequente para a decomposição de um sinal de áudio em seus constituintes espetrais são executadas, após o que a energia de cada sinal de entrada ou sinal de linha de frequência, isto é, a energia de linha, é calculado das porções reais e imaginárias do respetivo valor de linha de frequência. Sem avançar adicionalmente na criação de energias de sinal dos grupos de linhas de frequência, o método poderia também ser continuado com base nas energias de sinal destes grupos. 0 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, respetivamente, de modo a poder representar o resultado de logaritmo com 16 bits suficientes numa transição para uma faixa de logaritmo, e de modo a ser capaz de calcular a proporção SMR na área 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. O procedimento proposto no documento US 6,754,618 BI 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. É, portanto, desejável simplificar a transição na área logarítmica também, sem a ocorrência de perda na dinâmica. 0 documento US 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 num formato de ponto fixo logarítmico, adição na área logarítmica e conversão de retorno subsequente. O documento US 5,197,024 geralmente refere-se a um cálculo exponencial/logarítmico e um equipamento respetivo. O documento US 6,732,071 refere-se a uma solução eficiente para um controlo 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 frequência máximo. O documento US 6,351,730 descreve o uso de um logaritmo de base 2 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 num codec de áudio codificado por MDCT. O documento US 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. É 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.
Este objetivo é atingido por um equipamento de acordo com as reivindicações independentes. A descoberta da presente invenção é que na transição para a área 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. 0 efeito do fator de escalonamento 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 escalonamento, para ou da representação logarítmica escalonada, respetivamente, sem qualquer perda de dinâmica. É, 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.
De acordo com uma forma de realização da presente invenção, o processamento da representação de x bits 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 escalonamento efetivo apenas após o cálculo da soma de quadrados, entretanto, as representações de x bits são escalonadas previamente com um fator de escalonamento comum. 0 fator de escalonamento 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 bits dos valores. Este procedimento torna possível permanecer constantemente, iniciando da situação inicial com representações de x bits dos valores, no formato de representação de x bits. Isto se aplica igualmente aos quadrados dos valores individuais e à soma dos quadrados individuais. Aqui, o fator de escalonamento comum é determinado de modo que a soma dos quadrados não está sujeita a estouro como um resultado da soma. De acordo com esta forma de realização, a função de logaritmo é executada numa seção da representação de x bits sem logaritmo obtido da soma de quadrados. Nesta forma de realizaçã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 escalonamento comum diferente, e ainda por outro lado, o nível de escalonamento subsequente é igual para a representação logarítmica de todas as somas de quadrados.
De acordo com uma outra forma de realizaçã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 bits 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.
Para codificação de áudio, os valores de linhas espetrais 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 espetrais antes do cálculo das somas de quadrados, onde os valores de linha de frequência estão presentes num formato de dados de ponto fixo de x bits 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 bits, 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, respetivamente, a representação de ponto fixo de x bits do resultado de obtenção do logaritmo. Desta maneira, as energias de sinal de todos os grupos espetrais são mantidas no mesmo nivel de escalonamento sem redução da dinâmica. Além disso, cada uma das operações de cálculo pode ser executada por meio de uma unidade de cálculo configurada para processamento de números de ponto fixo com apenas x bits. Esta forma de realização é, portanto, vantajosa por possibilitar a implementação de um codificador de áudio num 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. A seguir, formas de realização preferidas da presente invenção são discutidas em maiores detalhes com relação aos desenhos em anexo, nos quais: A Fig. 1 é uma representação esquematizada para ilustrar a estrutura de um formato de dados de ponto fixo de 32 bits; A Fig. 2a e a Fig. 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; A Fig. 3 é um gráfico de uma função de logaritmo de acordo com uma forma de realização da presente invenção; A Fig. 4 é um diagrama de bloco esquematizado de um equipamento para criar uma soma de quadrados de acordo com uma forma de realização da presente invenção; A Fig.5 é um diagrama de bloco de uma implementação possível do equipamento da Fig.4; A Fig.6 é um fluxograma para ilustrar a função do equipamento de acordo com a Fig. 5; e A Fig.7 é um diagrama de bloco esquematizado para ilustrar um codificador de áudio de acordo com uma forma de realização da presente invenção.
Antes das formas de realização da presente invenção serem explicadas em maiores detalhes, é apresentada, a seguir, uma introdução a estas formas de realização, que é um tipo de análise geral e torna as vantagens das formas de realização a seguir mais bem compreendidas, com referência as Figs. 1-3. A Fig. 1 mostra a estrutura de um possível formato de dados de ponto fixo de 32 bits, que é a base exemplif icativa das formas de realização discutidas a seguir. 0 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 registo de 32 bits, portanto, é suficiente para armazenar este valor no formato de dados de ponto fixo de 32 bits. Este registo é designado na Fig. 1 pelo numeral 10. As posições de 32 bits são sugeridas, nas quais quadrados individuais numerados Xo ... 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 - Xo remanescentes expressam a magnitude do valor. De acordo com a forma de realização da Fig. 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 registo 10 pode, portanto, ser expresso como
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.
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 frequência e somando todas as linhas de frequência quadradas, isto é, as energias de linhas, num grupo de frequência. 0 número das linhas contidas num grupo de frequência varia de 4 a 96 no exemplo de MPEG Layer-3 e MPEG AAC.
Como foi, também, discutido na introdução à descrição do presente pedido, é possível representar os valores de linha de frequência num formato de dados do ponto fixo pelo uso de um fator de escalonamento global que se aplica a todas as linhas de frequência de um canal de áudio e, ainda, a todas as linhas de frequência de todos os canais de áudio processado num codificador, e que determina em quantas posições cada valor de linha de frequê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, num 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 frequência: - As linhas de frequência devem ser representadas com uma largura de palavra de 32 bits. 16 bits não são suficientes.
As energias de sinal de áudio devem, também, ser representadas num formato de dados de ponto fixo e não num formato de dados de ponto de flutuação. - As energias de sinal de áudio devem ser representadas num tipo de dado com uma largura de palavra não superior a 32 bits. Isto resulta, também, numa largura de palavra de 32 bits para as energias de sinal de áudio
As formas de realização 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. 0 reprocessamento das energias de sinal de áudio apenas deve ser limitado a uma representação de ponto fixo de 32 bits.
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 frequê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 formas de realização 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.
De modo a ilustrar isto, é feito referência às Fig. 2a e 2b. Elas mostram dois registos de entrada 12a e 12b de um multiplicador usado como um elevador ao quadrado, escrevendo os mesmos valores nos registos do multiplicando de entrada 12a e 12b. Ambos os registos 12a e 12b são registos de 32 bits. Adicionalmente, as Figs. 2a e 2b mostram um registo de saída de 64 bits 14 consistindo de uma porção superior 14a e uma porção inferior 14b. 0 multiplicador que não é representado nas Figs. 2a e 2b, é configurado para ler o conteúdo do registo dos registos 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 registo de saída 14 num formato de dados de ponto fixo de 64 bits. Dessa maneira, a porção superior 14a do registo 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.
As Figs. 2a e 2b mostram situações nas quais valores de linha de frequência diferentes foram escritos nos registos de entrada 12a e 12b, de modo que resultados divergentes são obtidos no registo de saída 14. A Fig. 2a mostra especificamente uma situação na qual o valor de linha de frequência é alto, isto é, 0x12345678.
Contanto que os valores de linha de frequência sejam suprimidos num nível elevado, isto é, ocupem um grande número de bits válidos numa palavra de dados de 32 bits, os 32 bits superiores do resultado real amplo de 64 bits no registo de saída 14 são suficientemente precisos para expressar o resultado 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 Fig. 2a. A Fig. 2b mostra o caso de um pequeno valor de linha de frequência nos registos de entrada 12a e 12b, respetivamente, isto é, 0x00004321. Estes valores de linha de frequência também ocorrem, como já foi observado, visto que todas as linhas de frequência de pelo menos um canal de áudio têm fator de escalonamento global e, portanto, tipicamente um grande número de linhas de frequê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 Fig. 2b, no caso de pequenos valores de linha de frequência, os 32 bits superiores do registo de saida 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á numa qualidade de áudio reduzida. No exemplo da Fig. 2b, a porção superior do registo de saida irá, por exemplo, indicar um resultado de zero, enquanto o valor de resultado real seria 0x0000000023349482.
Em vista dos exemplos das Fig. 2a e 2b, parece ser necessário, primeiramente, considerar todos os 64 bits do registo de saída 14 em processamentos subsequentes 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.
Se, entretanto, a porção de 32 bits superiores de cada valor de energia de sinal no registo de saida 14 for, realmente, ser usada unicamente, um melhoramento pode ser atingido pela mudança de todos os valores de linha de frequência num grupo de frequê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 registo de resultado 14. A porção superior 14a de cada valor de energia de sinal poderia, então, ser convertida numa área logarítmica pela aplicação de uma unidade de cálculo para o cálculo de uma função de logaritmo para a respetiva 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 Fig. 3. A Fig. 3 apenas mostra a secção da função de logaritmo com x e M, 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 escalonamento 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 Fig. 3, são obtidas do logaritmo, são valores de ponto fixo de 64 bits.
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 escalonamento que aumenta a precisão interferiria exatamente com o mesmo nivel de escalonamento.
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 frequência ou domínio de amplitude, 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 frequência, isto é, o valor s, deve ser observado. Se o valor de energia de sinal da função de logaritmo mostrado na Fig. 3, a seguir referido como LD64(), que foi calculado com esta alta precisão, é agora convertido na área 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 frequê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 área logarítmica, visto que 2/64 = log2 (22) 64 = LD64 (22) .
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 frequência do grupo. Esta subtração, entretanto, não resulta numa perda de precisão, visto que nenhum bit válido é perdido 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.
Após a discussão acima dos princípios e vantagens das formas de realização da presente invenção, a seguir, exemplos de equipamentos são explicados em maiores detalhes com relação às Fig. 4-6, os quais podem ser usados num codificador de áudio de acordo com as formas de realização da Fig. 7. A Fig. 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. 0 equipamento é baseado nas considerações anteriores. 0 equipamento da Fig. 4, que é geralmente designado pelo numeral 20, inclui registos de x bits 22i, 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 registos 22i - 22N na faixa não logarítmica, escalonado por um fator de escalonamento efetivo ajustável, um primeiro registo 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 registo de resultados 26 no formato LD64, um segundo registo de resultado 30 para engatar o resultado dos meios para obter o logaritmo 28, meios de reescalonamento 32 para reescalonar ou reverter o reescalonamento do resultado no registo de resultado 30, um registo de saída 34 para engatar o resultado final conforme ele é enviado pelos meios de reescalonamento 32, e meios de controlo 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 escalonamento comum.
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 respetivas setas.
Como já foi mencionado, os valores a serem submetidos à soma de quadrados estão primeiramente presentes nos registos 22i - 22N no formato de ponto fixo de x bits. Como foi, também, previamente explicado, estes valores, que podem ser valores de linha de frequência, podem divergir claramente entre si com relação ao número de seus bits válidos.
Os meios de soma de quadrados 24, agora, recebem estes valores nos registos 22i - 22N de modo a submetê-los à criação de uma soma de quadrados de maneira que finalmente uma soma de quadrados dos valores nos registos 22i - 22N estará presente numa representação de ponto fixo no registo 26, escalonada por um fator de escalonamento efetivo ajustável, pelo menos indiretamente, pelos meios de controlo 36. Aqui, não é absolutamente necessário que o registo 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 registo 2 6, que os meios de soma de quadrados 24 supram uma representação de ponto fixo de y bits do resultado, onde, preferivelmente, y = x. 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 escalonamento dos meios de controlo 36, de modo a enviar o resultado escalonado para o registo 26, e como os meios de controlo 36 podem determinar a informação de fator de escalonamento ou o fator de escalonamento efetivo, através do qual o resultado no registo de resultado 26 é escalonado, de modo que nenhum bit válido será perdido por estouro.
Com base na descrição anterior, uma possibilidade consiste de meios de controlo 36 que analisam o conteúdo dos registos 22i - 22n de modo a determinar previamente o valor de escalonamento efetivo, de maneira que nenhum estouro ocorra pela soma subsequente dos quadrados dos valores nos registos 22i - 22N.
Isto ocorreria se nenhum bit de estouro estivesse presente numa unidade de cálculo de adição dos meios de soma de quadrados 24, indicada na Fig. 4 pelo numeral 38, ou no máximo quando o quadrado de "estouro" ou valor de energia estiver escrito numa célula de memória que não ofereça quaisquer bits de estouro, como é o caso, por exemplo, do registo 26. Portanto, os meios de controlo 36 ajustam as informações de fator de escalonamento de acordo com o número N e o número máximo de bits livres nos registos 22i - 22N ou no máximo de x menos o número de posições válidas dos valores individuais nos registos 22i - 22N, de maneira que nenhum estouro ocorra numa salda no registo 26 e/ou o resultado não deixará a faixa de valor de -1 a 1, exclusivamente.
Em especial, os meios de controlo 36 podem, como foi previamente mencionado, ajustar o fator de escalonamento efetivo, através do qual o resultado no registo 26 é escalonado, por meio de um fator de escalonamento comum, que os meios de soma de quadrados 24 utilizam para escalonar o conteúdo do registo 22i - 22N no inicio, isto é, antes da elevação ao quadrado 40. Em especial, o fator de escalonamento comum, conforme foi previamente explicado, pode corresponder a uma força de 2, de modo que o escalonamento prévio dos valores nos registos 22i - 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 registo escalonado individual num formato de dados de ponto fixo 2x, de modo a enviar o resultado para o registo de resultado 26, ao invés disso, os meios de soma de quadrados 24 necessitariam de uma representação de ponto fixo de y bits apenas dos resultados de elevações ao quadrado intermediárias 42i . . . 42N. A soma 38 de todos os resultados de elevação ao quadrado intermediária 42! - 42N resulta no resultado final dos meios de soma de quadrados 24 no registo 26.
Uma possibilidade alternativa, não de acordo com a invenção, para determinar e considerar o fator de escalonamento seria os meios de soma de quadrados 24 primeiramente submeterem o conteúdo do registo 22i - 22N à elevação ao quadrado 40 um após o outro, de modo a obter resultados intermediários 42i - 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 ou quanto à diferença entre 2x e o número de posições válidas pelos meios de controlo 36, de modo a ter executada uma operação de mudança correspondente para a esquerda pelo número respetivo 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 registo 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 42i - 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 bits, tendo um bit de estouro alocado, deveria ser controlada mais frequentemente. Com esta possibilidade, os meios de soma de quadrados 24 primeiramente elevariam ao quadrado os valores nos registos 22x -22n individualmente e, então, somariam 38 os valores de quadrado de ponto fixo de 2x bits 42χ - 42N e, a seguir, escalonariam o resultado de acordo com a informação de fator de escalonamento da unidade de controlo 36 e o enviariam para o registo 26.
Numa forma de realização, que é preferivelmente implementada com x = 24 bits, o registo 26 tem um comprimento de y = posições 2x. Numa outra forma de realizaçã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 num meio 42χ -42n, de uma maneira como durante a elevação ao quadrado ou após a elevação ao quadrado, mas antes da armazenagem no registo. Então, a soma é efetuada com uma largura de palavra de x bits. Aqui, o registo 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.
Por meio do fator de escalonamento efetivo, o número de bits válidos no registo 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 bits a partir do registo 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 à Fig. 3, de modo a inserir o resultado no registo 30 no formato de dados de ponto fixo de z bits, onde, preferivelmente, z = y, e preferivelmente, y = x. O resultado no registo de resultado 30 representa uma representação logarítmica escalonada da soma de quadrados dos valores nos registos 22i - 22N. Os meios de reescalonamento 32 agora revertem o escalonamento pela subtração do valor escalonado no registo 30, um valor de correção 44, que eles recebem dos meios de controlo 36. No caso do formato LD64, o valor de correção, conforme mencionado anteriormente, resulta em LD69 (s) , onde s é o fator de escalonamento efetivo com o qual a soma de quadrados no registo de resultado 26 é escalonada. O resultado é, então, enviado para o registo 34 no formato de dados de ponto fixo pelos meios de reescalonamento 32.
Com referência à Fig. 4, um esboço foi provido da função de uma forma de realização preferida da presente invenção, sem incluir uma possível implementação de hardware. A Fig. 5 mostra uma possível implementação do equipamento da Fig. 4 de forma um pouco mais detalhada. O equipamento da Fig. 5, que é geralmente designado por 60, inclui uma memória 62, meios de controlo 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 - 7 6 são conectados em comunicação entre si, por exemplo, por um barramento ou um programa de interface 78. Os meios 66 - 7 6 podem ser implementados no hardware, mas podem, também, parcialmente, ser códigos de programa respetivos executados pelos meios de controlo 64, de modo a executar as respetivas tarefas. Cada um dos módulos 66-76 deve ser capaz de processar apenas operandos de formato de dados de ponto fixo de x bits. 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.
Os meios de controlo 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 bits na memória 62 nos locais de memória de x bits 84i . . . 84N, a serem executados. A função exata dos meios de controlo 64 é discutida com relação à Fig. 6. Aqui, é especificamente presumido que os valores de ponto fixo de x bits nos locais de memória 84i - 84N são valores de linha de frequência de um grupo de frequência.
Primeiramente, os meios de controlo 100 examinam os valores de linha de frequência do grupo nos locais de memória 84i - 84N e ajustam um fator de escalonamento 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 84i - 84N. Especificamente, ele ajusta o fator de escalonamento comum para uma força de 2, tal como 2S.
Alternativamente, os meios de controlo 64 ajustam um valor de mudança s, que corresponde ao fator de escalonamento 2S. Os meios de controlo inserem o valor s ou 2S num registo interno ou externo 101 para engate.
Numa etapa subsequente 102, os meios de controlo 64 fazem que os meios de mudança 66 mudem o conteúdo dos locais de memória 84i - 84N com os valores de linha de frequência do grupo à esquerda em s posições de bit de acordo com o fator de escalonamento comum ou o valor de mudança.
Numa etapa 104, os meios de controlo 64, então, fazem que o dispositivo de elevação ao quadrado 68 eleve ao quadrado cada valor nos locais de memória 84i - 84N e escreva a metade superior do resultado de 2x bits de volta no respetivo local de memória 84i - 84n. O dispositivo de elevação ao quadrado 68 é, por exemplo, um multiplicador, onde os meios de controlo 104 escrevem o valor respetivo a ser elevado ao quadrado de um dos locais de memória 84i - 84N em ambos os registos do multiplicando x bits do multiplicador. O dispositivo de elevação ao quadrado pode incluir internamente, por exemplo, um registo de resultado de 2x bits, onde os meios de controlo, entretanto, certificam-se que apenas a metade superior, isto é, um valor de elevação ao quadrado de ponto fixo de x bits, seja escrito de volta no respetivo local de memória 84i - 84N. Alternativamente, o dispositivo de elevação ao quadrado calcula apenas uma representação de x bits previamente e, portanto, tem apenas um registo de saída de x bits.
Em seguida, numa etapa 106, os meios de controlo 64 criam uma soma de todo o conteúdo das posições de memória 84i - 84N por meio do somador 70. Esta pode começar com a soma dos dois primeiros valores e gravação do resultado num registo de soma de x bits 86 no formato de dados de ponto fixo de x bits. A seguir, os meios de controlo 64 podem usar o somador 7 0 de modo a adicionar o valor com a posição de memória 86 aos valores subsequentes 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 controlo 64 podem certificar-se de que a soma seja gravada numa das posições de memória 84χ - 84N e acumulada nestas.
Numa etapa 108, os meios de controlo 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.
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. Numa etapa 110, os meios de controlo, 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 escalonamento s armazenado no engate 101, isto é, o valor 2*s/64. A seguir uma forma de realização para um codificador de áudio é discutida, na qual um equipamento de acordo com as formas de realização das Figs. 4 a 6 é implementado. 0 codificador de áudio da Fig. 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 saida 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 saida de corrente de dados codificada na saida 160. Embora não mostrado na Fig. 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. O sinal de áudio 164 presente na entrada 158 está presente, por exemplo, como uma sequência de valores de amostragem de áudio, que foram amostrados com uma frequência de amostragem predeterminada. O sinal de áudio 164 pode, por exemplo, estar presente num 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.
Então, os meios de transformação 152 transformam o sinal de áudio 164 de uma faixa de tempo para uma faixa espetral pela decomposição do sinal de áudio 164 em seus constituintes espetrais. 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 espetrais, secção por secção. As secções ou quadros 166, para os quais a decomposição espetral é efetuada, se sobrepõem no tempo, por exemplo, em 50%. Em cada componente espetral, um valor espetral e/ou valor de linha de frequência é criado para cada quadro sucessivo, que é ilustrado por meio de pontos no espetrograma 168 gerado pelos meios de transformação 152. Desta maneira, uma linha de frequência de uma sequência de valores de linha de frequência é criada por componente espetral, em que as linhas de frequência são indicadas em 168 com setas horizontais, que são visualmente separadas em valores de linha de frequência apenas para os três quadros indicados 166. No espetrograma 168, um número arbitrário de linhas de frequência é arranjado ao longo do eixo espetral ou eixo de frequência f, embora, entretanto, o número real de linhas de frequência seja maior.
Com base no espetrograma 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 espetral de todos os componentes espetrais. Ao invés disso, as linhas de frequência são divididas de acordo com os aspetos psicoacústicos nos grupos 170, conforme é indicado pelos círculos.
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 frequência.
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 frequência como a soma de quadrados das linhas de frequência, onde os meios de cálculo de energia de grupo 154 são, por exemplo, configurados conforme mostrado nas Figs. 4 e 5 e/ou funcionam conforme descrito nas Figs. 4-6. O resultado dos meios de cálculo de energia de grupo 154 são as sequências 172 de valores de energia de sinal, isto é, uma sequência 172 por grupo 170. Portanto, as sequê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.
Com base nestas sequê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 facto dos valores estarem presentes em formato de dados de ponto fixo tendo o mesmo número de bits que os valores de linhas de frequência que estavam presentes, mas também os valores estarem presentes na área 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 área logarítmica.
Como ilustração, considere o caso do codificador da Fig. 7 que envia uma corrente de dados MPEG. 0 codificador de áudio da Fig. 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 espetro de energia pesada. 0 módulo TNS, em especial, executa um cálculo com as energias de sinal SE do tipo x = 1/Vse. 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. 0 módulo TNS simplesmente calcula X no LD64”1 (-LD64_SE >> 1), onde a >> 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(), ou seja, uma função inversa da função 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 área logarítmica, corresponde a uma raiz quadrada na faixa linear. 0 sinal de menos corresponde à função inversa 1/x na faixa linear. 0 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 . 0 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 percetual de ruído). 0 módulo PNS calcula internamente a distância entre o limite de audição e a energia do sinal num grupo de frequê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, numa função de coerência no módulo PNS, ocorre uma divisão e um cálculo de raiz na forma de Y =
(SEI/^/seí-~SE3) , onde SEI, 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: LD64_Y = LD64_SE1 - ((LD64_SE2 + LD64_SE3) » 1), em que LD64_SE# é a representação logarítmica do respetivo valor da energia de sinal SE#, conforme ele é enviado pelos meios de cálculo de energia de grupo 154. 0 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 MS, 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 (MS) 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 MS deve ser usada, são constantes e podem, portanto, ser convertidos na área logarítmica já no código de fonte, onde nenhum tempo de cálculo adicional é requerido em adição à operação do programa. Isto aplica-se a muitas outras constantes usadas no código modificado em conexão com os cálculos LD64. 0 descrito acima também se aplica ao módulo de estéreo de intensidade de um codificador MPEG Layer-3 ou AAC. 0 gerador de corrente de código 156 pode, adicionalmente, compreender um dispositivo de estimativa de fator de
escalonamento que executa um cálculo de um volume de som. No dispositivo de estimativa de fator de escalonamento, que está, por exemplo, localizado num 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.
No dispositivo de estimativa de fator de escalonamento do gerador da corrente de código 156, adicionalmente, por exemplo, um cálculo dos fatores de escalonamento SCF, constituindo parte da largura da etapa de quantização, pode ser calculado dos limites de audição modificados MHS e das energias de sinal SE. 0 cálculo inclui uma etapa de cálculo do tipo SCF = log(k*MHS/SE), em que 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. 0 dispositivo de estimativa do fator de escalonamento executaria o cálculo especificamente como tal: SCF = log(k) + log2*64* (LD64_MHS - LD64_SE).
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. 0 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.
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 num 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 numa subtração e uma multiplicação numa adição, que resulta numa representação e um processamento eficientes das energias de sinal e dos limites de audição, num 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....
Nas formas de realização acima, um logaritmo para a base de 2, o logaritmo duplo LD, foi usado. Num 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 num processador de ponto fixo, tipicamente tanto valores inteiros quanto valores fracionários, mas não valores mistos, podem ser representados nas formas de realização 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. A Fig. 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 é, numa 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 área logarítmica, que, visto que são maiores em magnitude, isto é, mais próximos de -1,0, são, portanto, mais precisos numa representação de ponto fixo. De acordo com as formas de realização acima, uma perda de precisão no cálculo de energias de sinal antes da transição para a área logarítmica, foi evitada pelo fator de escalonamento comum ou pelo valor de mudança comum antes da elevação ao quadrado. A forma de realização da Fig. 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 escalonamento 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 num processador de ponto fixo. 0 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 área logarítmica é de longe compensada pelo ganho de velocidade nas etapas posteriores do algoritmo. Portanto, as vantagens das formas de realização 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.
De acordo com as formas de realização 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.
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 num meio de armazenagem digital, em especial uma disquete ou um CD com sinais de controlo eletronicamente legíveis cooperando com um sistema de computador programável, de modo que o respetivo 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 num transportador legível por máquina, quando o produto de programa de computador operar num computador. Por 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 num computador.

Claims (11)

  1. REIVINDICAÇÕES
    1. Codificador de áudio, com um aparelho implementado num processador de ponto fixo para calcular energias de grupo espetrais de um sinal de áudio, com meios de transformação (152) para decompor o sinal de áudio (164) em quadros num domínio de tempo e para transformar o sinal de áudio em cada quadro do domínio de tempo num domínio espetral, a fim de obter um grupo de valores espetrais para cada quadro, compreendendo, cada um, um valor de amplitude numa representação de x bits com o logaritmo não tomado, de tal modo que resultam séries de valores de amplitude que são divididas em diferentes grupos espetrais (170); meios de cálculo de energia de grupo (24; 80) para o cálculo de energia de grupos espetrais para cada grupo espetral no respetivo quadro como uma soma dos quadrados dos valores de amplitude (22i-22n; 84i-84n) , os meios de cálculo de energia de grupo (24; 80) tendo: meios de controlo (36; 64) para ajustar um respetivo fator de escalonamento para cada grupo espetral em função do número (N) dos valores de amplitude de um respetivo grupo espetral e o menor número de posições de bits não utilizados nas representações de x bits dos valores de amplitude do respetivo grupo espetral, meios de escalonamento (66) para escalonar a representação de x bits com o logaritmo não tomado (84i-84n) de cada valor de amplitude para cada grupo espetral com o respetivo fator de escalonamento, a fim de obter valores de amplitude escalonados numa representação de x bits, meios de quadratura (68) para quadratura dos valores de amplitude escalonados na representação de x bits a fim de obter valores de amplitude ao quadrado escalonados numa representação de 2x bits, meios de soma (70) para somar os valores de amplitude ao quadrado escalonados para cada grupo espetral a fim de obter uma respetiva soma dos quadrados numa representação com o logaritmo não tomado (26) , meios para tomar o logaritmo (28; 82) para a aplicação de uma função logarítmica em y bits da representação com o logaritmo não tomado (26) de cada soma dos quadrados para cada grupo espetral a fim de obter uma representação respetiva escalonada com o logaritmo tomado (30), em que y é menos de 2x, meios de reescalonamento (32; 7 6) para a adição ou subtração (44) de um respetivo valor de correção, que resulta por aplicação de uma função logarítmica ao quadrado do respetivo fator de escalonamento, para ou a partir de, respetivamente, a representação escalonada com o logaritmo tomado (30) para cada representação com o logaritmo tomado (30), a fim de obter uma representação com o logaritmo tomado (34) de cada energia de grupos espetrais, em que as energias de grupos espetrais de todos os grupos espetrais têm o mesmo nível de escalonamento; e um gerador de fluxo de códigos MPEG (156) para, com base nas energias de grupos espetrais dos grupos espetrais numa representação com o logaritmo tomado tendo o mesmo nível de escalonamento (34), gerar um fluxo de dados codificados MPEG representando uma versão codificada do sinal de áudio (164).
  2. 2. Codificador de áudio de acordo com a reivindicação 1, em que os meios de controlo (64) estão configurados para ajustar o respetivo fator de escalonamento para uma kesima potência de 2, e os meios de escalonamento (66) estarem configurados para deslocar a representação de x bits de um valor de amplitude do grupo num registo de valor de x bits por k bits.
  3. 3. Codificador de áudio de acordo com a reivindicação 1 ou 2, em que os meios de quadratura (68) compreendem um registo de resultados 2x e estão configurados para depositar um valor de amplitude ao quadrado escalonado predeterminado dos valores de amplitude ao quadrado escalonados na representação de 2x bits no registo de resultados 2x, e os meios de soma (70) estão configurados para ler uma secção de y bits da representação de 2x bits do registo de resultados 2x ignorando os restantes bits no registo de resultados 2x, a fim de somar a secção de y bits em conjunto com as secções de y bits de outros valores de amplitude ao quadrado escalonados e escrever a soma dos quadrados num registo de y bits.
  4. 4. Codificador de áudio de acordo com qualquer uma das reivindicações anteriores, em que os meios para tomar o logaritmo (28; 72) são configurados para processar os y bits da representação com o logaritmo não tomado (2 6) de tal modo que a representação escalonada com o logaritmo tomado (30) corresponde a uma representação de y bits da dualidade do logaritmo da representação de y bits com o logaritmo não tomado (26), dividida por um número maior ou igual ay, e os meios de reescalonamento (32) estão configurados para adicionar ou subtrair uma quantidade a ou a partir da representação escalonada com o logaritmo tomado (30) que corresponde à dualidade do logaritmo do quadrado do respetivo fator de escalonamento, dividida pelo número.
  5. 5. Codificador de áudio de acordo com a reivindicação 4, em que o número é 64 e y = x = 32.
  6. 6. Codificador de áudio de acordo com uma das reivindicações anteriores, em que y é igual a x.
  7. 7. Codificador de áudio de acordo com uma das reivindicações anteriores, em que o gerador de fluxo de códigos (156) é configurado para gerar o fluxo de dados codificados ainda com base num modelo psicoacústico (162).
  8. 8. Codificador de áudio de acordo com a reivindicação 7, em que o gerador de fluxo de códigos é um codificador de MPEG V2 Layer-3 ou um codificador MPEG 2/4 AAC.
  9. 9. Codificador de áudio de acordo com uma das reivindicações anteriores, em que o gerador de fluxo de códigos (156) compreende um módulo de TNS, um módulo de PNS para a realização do cálculo e um estimador de fator de escalonamento.
  10. 10. Método de codificação de áudio, com as seguintes etapas: cálculo da energia de grupos espetrais de um sinal de áudio utilizando um processador de ponto fixo por meio de decomposição do sinal de áudio (164) em quadros num domínio de tempo, transformação do sinal de áudio em cada quadro a partir do domínio de tempo num domínio espetral, a fim de obter um grupo de valores espetrais para cada quadro, compreendendo, cada um, um valor de amplitude numa representação de x bits com o logaritmo não tomado, de tal modo que resultam séries de valores da amplitude que são divididas em diferentes grupos espetrais (170) , cálculo da energia de grupos espetrais para cada grupo espetral no respetivo quadro como a soma dos quadrados dos valores de amplitude (22i~22n; 84i~84n) , usando o ajuste de um respetivo fator de escalonamento para cada grupo espetral em função do número (N) dos valores de amplitude do respetivo grupo espetral e o menor número de posições de bits não utilizados nas representações de x bits dos valores de amplitude do respetivo grupo espetral, o escalonamento da representação de x bits com o logaritmo não tomado (84χ-84Ν) de cada valor de amplitude para cada grupo espetral com o respetivo fator de escalonamento, a fim de se obterem valores de amplitude escalonados numa representação de x bits, fazer a quadratura dos valores de amplitude escalonados na representação de x bits, a fim de se obterem valores de amplitude ao quadrado escalonados numa representação de 2x bits, soma dos valores de amplitude ao quadrado escalonados para cada grupo espetral, de modo a obter uma respetiva soma dos quadrados numa representação com o logaritmo não tomado (26), aplicação de uma função logarítmica em y bits da representação com o logaritmo não tomado (2 6) de cada soma dos quadrados para cada grupo espetral a fim de obter uma representação escalonada respetiva com o logaritmo tomado (30) , em que y é menos de 2x, e a adição ou subtração (44) de um respetivo valor de correção, que resulta por aplicação de uma função logarítmica ao quadrado do respetivo fator de escalonamento, a ou a partir de, respetivamente, a representação escalonada com o logaritmo tomado (30) para cada representação em escalonamento com o logaritmo tomado, a fim de obter uma representação com o logaritmo tomado (34) de cada energia de grupos espetrais, em que as energias de grupos espetrais de todos os grupos espetrais têm o mesmo nível de escalonamento; e a geração de um fluxo de dados codificados MPEG representando uma versão codificada do sinal de áudio (164) com base nas energias de grupos espetrais dos grupos espetrais numa representação com o logaritmo tomado tendo o mesmo nível de escalonamento (34).
  11. 11. Programa de computador com um código de programa para realizar o método de acordo com a reivindicação 10, quando o programa de computador for executado num computador.
PT58500695T 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 PT1825356T (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004059979A DE102004059979B4 (de) 2004-12-13 2004-12-13 Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals

Publications (1)

Publication Number Publication Date
PT1825356T true PT1825356T (pt) 2016-11-04

Family

ID=36390168

Family Applications (1)

Application Number Title Priority Date Filing Date
PT58500695T PT1825356T (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 (19)

Country Link
US (1) US8037114B2 (pt)
EP (2) EP1825356B1 (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)
HK (1) HK1105233A1 (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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
PL1825356T3 (pl) 2017-01-31
AU2005315826B2 (en) 2009-06-11
CA2590509A1 (en) 2006-06-22
CN101147122A (zh) 2008-03-19
JP4954087B2 (ja) 2012-06-13
NO341726B1 (no) 2018-01-08
AU2005315826A1 (en) 2006-06-22
EP1825356A2 (de) 2007-08-29
RU2375743C2 (ru) 2009-12-10
RU2007126655A (ru) 2009-01-20
BRPI0517176A (pt) 2008-09-30
DE102004059979A1 (de) 2006-06-14
EP1843246A3 (de) 2008-01-02
WO2006063797A2 (de) 2006-06-22
JP2008523450A (ja) 2008-07-03
KR100921795B1 (ko) 2009-10-15
ES2596275T3 (es) 2017-01-05
IL183835A (en) 2013-07-31
IL183835A0 (en) 2007-10-31
EP1843246A2 (de) 2007-10-10
KR20070086097A (ko) 2007-08-27
IN266829B (pt) 2015-06-04
BRPI0517176B1 (pt) 2022-05-17
CA2590509C (en) 2014-10-28
JP4953978B2 (ja) 2012-06-13
CN101147122B (zh) 2012-07-18
EP1825356B1 (de) 2016-08-03
HK1105233A1 (zh) 2008-02-06
MX2007006805A (es) 2007-07-20
US20070276889A1 (en) 2007-11-29
DE102004059979B4 (de) 2007-11-22
NO20072916L (no) 2007-09-13
JP2008026912A (ja) 2008-02-07
WO2006063797A3 (de) 2006-09-21
US8037114B2 (en) 2011-10-11

Similar Documents

Publication Publication Date Title
PT1825356T (pt) Método para criar uma representação de um resultado de cálculo linearmente dependente de um quadrado de um valor
CN107993673B (zh) 确定噪声混合因子的方法、系统、编码器、解码器和介质
Cho et al. Design of low-error fixed-width modified booth multiplier
US8504181B2 (en) Audio signal loudness measurement and modification in the MDCT domain
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
WO2006054583A1 (ja) オーディオ信号符号化装置および方法
Kovyrkina et al. On the monotonicity of the CABARET scheme in the multidimensional case
KR20040040993A (ko) Mpeg 오디오 인코딩 방법 및 mpeg 오디오 인코딩장치
US10303439B2 (en) Logarithm and power (exponentiation) computations using modern computer 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
Korten et al. High-resolution spherical quantization of sinusoidal parameters
JP2007133323A (ja) オーディオ信号符号化装置および方法
EP3008726A1 (en) Apparatus and method for audio signal envelope encoding, processing and decoding by modelling a cumulative sum representation employing distribution quantization and coding
Sukarno et al. High Accuracy LPC Encoder Architecture for FPGA
KR100717154B1 (ko) 멀티채널 오디오 신호의 다운믹스 방법 및 장치
KR100202308B1 (ko) 데시벨 변환 및 역변환방법
Jun Improved algorithms for non-restoring division and square root
Shimamura Pitch synchronous addition and extension for linear predictive analysis of noisy speech
US8156171B1 (en) Digital logic circuit
Klein Externally LTI discrete-time systems with applications to companding digital signal processors
Bessalah et al. Multifunction generator using Horner scheme and small tables
Palacios et al. Design and implementation of a Mitchell-based logarithmic converter for a floating point coprocessor
JPS63236132A (ja) 対数値算出器
JPH0199170A (ja) Fft演算装置