BRPI0415152B1 - dispositivo e método para o processamento de pelo menos dois valores de entrada - Google Patents

dispositivo e método para o processamento de pelo menos dois valores de entrada Download PDF

Info

Publication number
BRPI0415152B1
BRPI0415152B1 BRPI0415152A BRPI0415152A BRPI0415152B1 BR PI0415152 B1 BRPI0415152 B1 BR PI0415152B1 BR PI0415152 A BRPI0415152 A BR PI0415152A BR PI0415152 A BRPI0415152 A BR PI0415152A BR PI0415152 B1 BRPI0415152 B1 BR PI0415152B1
Authority
BR
Brazil
Prior art keywords
value
values
block
rounding
input
Prior art date
Application number
BRPI0415152A
Other languages
English (en)
Inventor
Schuller Gerald
Geiger Ralf
Sporer Thomas
Original Assignee
Fraunhofer-Gesellschaft Zur Förderung Derangewandten Forschung E V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer-Gesellschaft Zur Förderung Derangewandten Forschung E V filed Critical Fraunhofer-Gesellschaft Zur Förderung Derangewandten Forschung E V
Publication of BRPI0415152A publication Critical patent/BRPI0415152A/pt
Publication of BRPI0415152B1 publication Critical patent/BRPI0415152B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • 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/0212Speech 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 using orthogonal transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

"dispositivo e método para o processamento de pelo menos dois valores de entrada". para a redução do erro de arredondamento, são fornecidos um primeiro e um segundo valores de entrada não inteiros (260, 262) e um combinador (268), por exemplo, pela adição, no estado não inteiro para obter um valor de resultado não inteiro que é arredondado e somado (269) a um terceiro valor de entrada. assim, o erro de arredondamento pode ser reduzido em uma interface entre duas rotações divididas em etapas de lifting ou entre uma primeira rotação dividida em etapas de lifting e uma primeira etapa de lifting de uma subseqüente seqüência de lifting multidimensional.

Description

"DISPOSITIVO E MÉTODO PARA O PROCESSAMENTO DE PELO MENOS DOIS VALORES DE ENTRADA" Descrição [0001] A presente invenção refere-se a ura processamento de sinal e particularmente ao processamento de sinal de valores sequenciais, tais como amostras de áudio ou amostras de vídeo, que são particularmente adequadas especialmente para aplicações de codificação sem perda.
[0002] A presente invenção é ainda adequada para algoritmos de compressão para valores discretos que compreendera informações de áudio e/ou imagem e particularmente para algoritmos de codificação, incluindo uma transformada no domínio da frequência ou no domínio do tempo ou domínio do local, que são seguidos por uma codificação, como um código de entropia sob a forma de uma codificação de Huffman ou aritmética.
[0003] Os modernos métodos de codificação de áudio, como o MPEG Layer 3 (MP3) ou MPEG AAC, usam transformadas, tais como a denominada transformada de co-seno discreta modificada (MDCT), para a obtenção de uma representação de frequência era bloco de ura sinal de áudio. Esse codificador de áudio normalmente obtém um fluxo de amostras de áudio discretas no tempo. O fluxo de amostras de áudio é enquadrado para a obtenção de um bloco enquadrado de, por exemplo, 1,024 ou 2,048 amostras enquadradas de áudio. Para o enquadramento, várias funções de janela são empregadas tais como uma janela seno, etc.
[0004] As amostras de áudio enquadradas discretas no tempo· sâo então convertidas em uma representação espectral por meio de um banco de filtro. Em principio, uma transformada de Fourier ou, por razoes especiais, uma variação da transformada de Fourier, como uma FFT ou, como discutido uma MDCT, pode ser empregada para tanto. O bloco de valores espectrais de áudio na saída do banco de filtros poderá então ser mais processado, coroo necessário. Nos codificadores de áudio acima, segue-se uma quantificação dos valores espectrais de áudio, onde os estágios de quantificação são tipicamente escolhidos de maneira que o ruído de quantificação introduzido· pela quantificação fique abaixo· do limite de mascaramento psicoacústico, isto é, seja "desmascarado". A quantificação é uma codificação de perda. De maneira a obter maior quantidade de redução de dados, os valores espectrais quantificados são então codificados por entropia, por exemplo, por meio da codificação de Huffman. Pela adição de informações colaterais, coroo fatores de escala, etc., um fluxo de bits, que pode ser armazenado ou transmitido, é formado a partir dos valores espectrais quantificados codificados por entropia por meio de um multiplexador de fluxo de bits.
[0005] No decodificador de áudio, o fluxo de bits é dividido- em valores espectrais quantificados codificados e informações colaterais por meio de um desmultipléxádor de fluxo de bits. Os valores espectrais quantificados codificados por entropia são primeiramente decodificados por entropia para obter os valores espectrais quantificados. Os valores espectrais quantificados são então inversamente quantificados para obter valores espectrais decodificados que compreendem o ruído de quantificação que, entretanto, está abaixo do limite de mascaramento psicoacústico e será, portanto inaudível. Esses valores espectrais são então convertidos em uma representação temporal por meio de um banco de filtros de síntese para obter amostras de áudio discretas no tempo. No banco de filtros de síntese, deve ser empregado um algoritmo da transformada inverso ao algoritmo da transformada. Além disso, o enquadramento deve ser revertido depois da transformada báckward freqüência-tempo.
[0006] Para obter uma boa seletividade de frequência, os modernos codificadores de áudio usam tipicamente sobreposição de bloco. Esse caso está ilustrado na Figura fia. Primeiro, por exemplo, são tomadas 2,048 amostras de áudio discretas no tempo e enquadradas por meio 402, A janela que configura o meio 402 tem um comprimento de janela de 2N amostras e provê um bloco· de 2N amostras enquadradas no lado de saída. Para atingir uma sobreposição de janela, um segundo bloco de 2M amostras enquadradas é formado por meio do meio 404, que está ilustrado separado do meio· 402 na Figura 6a, somente por razões de clareza. As 2,046 amostras enviadas para o meio 404, entretanto, não são as amostras de áudio discretas no tempo imediatamente subsequentes à primeira janela, mas contêm a segunda metade das amostras enquadradas pelo meio 402 e, além disso, contêm somente 1,024 "novas" amostras. A sobreposição está simbolicamente ilustrada pelo meio 406 na Figura 6a, provocando um grau de sobreposição de 50%, Tanto as 2N amostras enquadradas produzidas pelo meio 4 02 como as 2N amostras enquadradas produzidas pelo meio 404 são então submetidas ao algoritmo MDCT por intermédio do meio 408 e 410, respectivamente. O meio 408 provê N valores espectrais para a primeira janela, de acordo com o conhecido algoritmo MDCT, onde o meio 410 também prove N valores espectrais, mas para a segunda janela, onde existe uma sobreposição de 50% entre a primeira janela e a segunda janela.
[0007] No decodificador, os N valores espectrais da primeira janela, como mostrado na Figura 6b, são enviados para o meio 412 fazendo uma transformada co-seno discreta inverso· modificada. O mesmo se aplica aos N valores espectrais da segunda janela. São enviados para o meio 414, também realizando uma transformada co-seno discreta inverso modificada. Tanto o meio 412 como o meio 414 proveem cada um 2N amostras para a primeira janela e 2N amostras para a segunda janela, respectivamente, [ 0008] No meio 416, TDAC (time dornáin aliasing cancellâtion) indicado na Figura 6b, é levado· em conta o fato de que as duas janelas estão se sobrepondo. Em particular, uma amostra yi da segunda metade da primeira janela, isto é, com um índice N+k, é somada com uma amostra y;: da primeira metade da segunda janela, isto é, com um índice k, de maneira que N amostras temporais decodifiçadas resultam no lado de saída, isto é, no decodificador.
[0009] Deve ser notado que, pela função do meio 416, que é também denominado como função de adição, o enquadramento realizado no codificador ilustrado esquematicamente pela Figura 6a é levado era conta de certa maneira automaticamente, de forma que não tenha que ocorrer nenhum "enquadramento inverso" explicito- no decodif icador ilustrado na Figura 6b.
[00010] Se a função janela implementada pelo meio 402 ou 404 for denominada w(k), onde o índice k representa o índice de tempo, deve ser observada a condição de que o peso da janela ao quadrado w (k) somado ao peso da janela ao quadrado w(N+k) no conjunto resulta em 1, onde k varia entre 0 a N-l. Se for usada uma janela seno cujo peso de janela seguir a primeira meia onda da função seno, essa condição será sempre observada, já que o quadrado do- seno e o quadrado do có-séno em conjunto resultam no valor 1 para cada ângulo.
[00011] No método de janela com a subsequente função MDCT descrita na Figura 6a, é desvantajoso que o enquadramento pela multiplicação de uma amostra discreta no tempo-, ao pensar em uma janela seno, seja alcançado -com um número de ponto flutuante, já que o seno de um ângulo entre 0 e 180 graus não produz ura número inteiro, não considerando o ângulo de 90 graus. Mesmo quando amostras inteiras discretas no tempo são enquadradas, resultam números de ponto flutuante após o enquadramento.
[00012] Portanto, mesmo que não seja usado ura codificador psicoacústico, Isto é, no caso de obtenção de uma codificação sem perdas, será necessária a quantificação na saída do meio 408 e 410, respectivamente, para poder realizar uma codificação de entropia razoavelmente admínístrãvel.
[00013] Em geral, as transformadas inteiras atualmente conhecidas para áudio sem perda e/ou codificação· de vídeo são obtidas por uma decomposição das transformada aí usadas em rotações Givens e pela aplicação do esquema de lifting em cada rotação Givens. Assim, é introduzido em cada etapa um, erro de arredondamento. Para outros estágios de rotações Givens, o erro de arredondamento continua a se acumular. 0' erro de aproximação resultante torna-se problemático, em particular para abordagens de codificação de áudio sem perda, particularmente quando são usadas transformadas longas provendo, por exemplo, 1,024 valores espectrais, como é o caso na MDCT conhecida com sobreposição e adição (MDCT = transformada de co-seno discreta modificada). Particularmente na faixa de freqüência mais alta, onde o sinal de áudio tem tipicamente, de qualquer forma uma quantidade muito baixa de energia, o erro de aproximação podè rapidamente sè tornar maior do que o sinal real, de maneira que essas abordagens são problemáticas com relação à codificação sem perdas e particularmente com respeito à eficiência de codificação que pode ser obtida da seguinte maneira.
[00014] Com respeito à codificação de áudio, transformadas inteiras, isto é, algoritmos de transformadas que geram valores inteiros de saída, baseiam-se particularmente no DCT-IV conhecido, que não leva em consideração uma componente DC, enquanto as transformadas inteiras para aplicações de imagens são baseadas em DCT-II, que contém especialmente as provisões para a componente DC. Essas transformadas inteiras são, por exemplo, conhecidas em Y. Zeng, G, Bi e Z. Lin, "Integrer sinusoidal transforms based on 1ifting factorizâtion", nó Proc. ICASSP'01, maio de 2001, pp. 1,181 - 1,184, K. Komatsu e K. Sezaki, "Reversible Discrete Cosine Transform", no Proc. ICASSP, 1998, vol. 3, pp. 1,769 - 1,772, P. Hao e Q. Shi, "Matrix factorizations for reversible integer mapplng", IEEE Trans. Signal Processing, Signal Processing, vol. 49, pp. 2, 314 - 2,324, e J. Wang, J. Sun e S. Yu, " 1 -d and 2-d trans forms from integers to integers", no Proc. ICASSP'03, Hongkong, abril de 2003.
[00015] Como acima mencionado, a transformada inteira aí descrita baseia-se na decomposição da transformada em rotações Gívens e na aplicação do conhecido esquema de lifting pára as rotações Givens, que resulta no problema de acumulação dos erros de arredondamento. Isto se deve particularmente ao fato de que, dentro de uma transformada, os arredondamentos devera ser feitos muitas vezes, isto é, ■após cada etapa de lifting, de maneira que, particularmente em transformadas longas que recebem um grande número correspondente de etapas de lifting, deve haver um número particularmente grande de arredondamentos. Como descrito, isto resulta em um erro acumulado e também particularmente em um processamento relativamente complexo, porque o arredondamento é feito após cada etapa de lifting para realizar a próxima etapa de lifting.
[00016] Depois, a decomposição do enquadramento MDCT será ilustrada novamente com respeito às Figuras 9 a 11, como descrito no DE 10129240 Al, onde essa decomposição do enquadramento MDCT em rotações Givens com matrizes de lifting e os correspondentes arredondamentos combinados vantajosamente com o conceito discutido na Figura 1 para a conversão e na Figura 2 para a conversão inversa, para obter uma aproximação MDCT inteira completa, isto é, uma MDCT inteira (IntMDGT) de acordo com a presente invenção, onde são dados Os conceitos de transformada forward e backward para o exemplo de uma MDCT.
[00017] A Figura 3 mostra um diagrama de visualização do dispositivo inventivo preferido para o processamento de amostras discretas no tempo, representando- um sinal de áudio, para obter valores inteiros baseados nos quais o algoritmo da transformada inteira Int-MCDT é operativo. As amostras discretas no tempo são enquadradas pelo dispositivo mostrado na Figura 3 e opcionalmente convertidas em uma representação espectral. As amostras discretas no tempo fornecidas para o dispositivo em uma entrada 10 são enquadradas em uma janela w com um comprimento correspondente a 2N amostras discretas no tempo para alcançar, ém uma saída 12, amostras enquadradas inteiras adequadas para serem convertidas em uma representação espectral por meio de uma transformada e particularmente o meio 14 para realizar uma DCT inteira. A DCT inteira é projetada para gerar N valores de saída de N valores de entrada, que está em contraposição com a função MDCT 408 da Figura 6a, que somente gera N valores espectrais de 2N amostras enquadradas devido à equação MDCT.
[00018] Para o enquadramento das amostras discretas no tempo, são selecionadas as primeiras duas amostras discretas no tempo no meio 16, que juntamente representam ura vetor de amostras discretas no tempo·. Uma amostra discreta no tempo selecionada pelo meio 16 está no primeiro quadrante da janela, A outra amostra discreta no tempo está no segundo quadrante da janela, como discutido em maiores detalhes com respeito à Figura 5. O vetor gerado pelo meio 16 tem agora uma matriz de rotação de dimensão 2x2, onde esta operação não é realizada diretamente, mas por meio de várias matrizes denominadas de lifting.
[00019] Uma matriz de 1ifting tem a propriedade de compreender somente um elemento dependendo da janela w e sendo igual a "1" ou "0".
[00020] A fatorizaçâo das transformadas wavelet em etapas de lifting está apresentada na publicação especializada " Factoring ífaveiet Transforms Into Lifting Steps", Ingrid Daubechies e Wim Sweldens, Preprint, Bell Laboratories, Lucent Technologies, 1996. Em geral, um esquema de lifting é uma simples relação entre pares de filtros perfeitamente reconstruíveis tendo os mesmos filtros de baixa passagem ou de alta passagem. Cada par de filtros complementares pode ser fatorízado em etapas de lifting. Isto se aplica particularmente às rotações Givens. Considerar o caso em que a matriz polifase seja uma rotação Givens. Aplica-se então o seguinte: (D
[00021] Cada uma das três matrizes de lifting no lado direito do sinal de igual tem o valor “1” como principal elemento diagonal. Existe ainda, em cada matriz de lifting, um elemento diagonal secundário igual a 0 e um elemento diagonal secundário dependendo do ângulo de rotação d.
[00022] 0 vetor está agora multiplicado pela terceira matriz de lifting, isto é, a matriz de lifting no extremo direito da equação acima, para obter um primeiro vetor resultado. Isto está ilustrado na Figura 3 pelo meio 18.
Agora o primeiro vetor resultado· é arredondado· por uma função de arredondamento que mapeia o conjunto dos números reais no conjunto dos inteiros, como ilustrado na Figura 3 pelo meio 20. Na saída do meio 20, obtém-se um primeiro vetor resultado· arredondado·. O primeiro vetor resultado arredondado é agora fornecido para o meio 22 para multiplicá-lo pela matriz central, isto é, segunda matriz de lifting para obter ura segundo vetor resultado que é novamente arredondado no meio 24 para obter um segundo vetor resultado arredondado. O segundo vetor resultado arredondado é agora fornecido ao meio 26 para multiplicá-lo pela matriz de lifting mostrada na esquerda da equação acima, isto é, a primeira, para obter um terceiro· vetor resultado que é fínalmente arredondado por intermédio do meio 28, para finalmente obter as amostras enquadradas inteiras na saída 12 que, caso se deseje uma representação espectral da mesma, agora terá que ser processada pelo meio 14 para obter valores espectrais inteiros na saída espectral 30.
[00023] Preferivelmente, o meio 14 é implementado como PCI inteira.
[00024] A transformada co-seno discreta de acordo com o tipo 4 (DCT-IV) cóm um comprimento N é dada pela seguinte equação: (2) [ 00025] Os coeficientes dá DCT-IV formam uma matriz ortonormal N x N. cada matriz octogonal N x N pode ser decomposta em N (W-l)/2 rotações Givens, como discutido na publicação especializada P. P. Vaidyanathan, "Muitirate Systems And Filter Banks”, Prentice Hall, Englewood Cliffs, 1993. Deve ser notado que existem outras decomposições.
[00026] Com respeito às classificações dos vários algoritmos DCT, ver H. S. Malvar, "Signa! Processing With Lapped Transforma", Artech House, 1992. Em, geral, os algoritmos DCT diferem na espécie de suas funções base. Enquanto a aqui preferida DCT-IV inclui funções base não simétricas, isto é, co-seno quarto de onda, um co-seno 3/4 de onda, um co-seno 5/4 de onda, um co-seno 7/4 de onda, etc. a transformada co-seno discreta de, por exemplo, tipo II (DCT-II) tem funções base axissimétricas e ponto simétricas. A função 02 base tem uma componente DC, a primeira função base é uma meia onda co-seno·, a segunda função base é uma onda co-seno inteira, etc. Devido ao fato· que a DCT-II dá ênfase especial à componente DC, é usada em codificação de video, mas não em codificação· de áudio·, porque a componente DC não· é relevante na codificação de áudio em contraposição à codificação de video.
[00027] A seguir, será discutido como um ângulo de rotação ct da rotação Givens depende da função janela.
[00028] Uma MDCT coto um comprimento de janela de 2N pode ser reduzida para uma transformada co-seno discreta do tipo IV com comprimento N. Isto é feito pela realização explicita da operação TDAC no domínio de tempo e depois aplicando a DCT-IV. No caso de uma sobreposição de 50%, a metade esquerda da janela de ura bloco t superpõe-se à metade direita do bloco precedente, isto é, o bloco t-1. A parte de sobreposição de dois blocos consecutivos t-1 e t é pré-processada no domínio de tempo, isto é, antes da transformada, como segue, isto é, é processada entre a entrada 10 e a saída 12 da Figura 3; (3) [00029] Os valores marcados com til são os valores na saída 12 da Figura 3, enquanto os valores x não marcados com um til na equação acima são os valores na entrada 10 e/ou seguindo o meio 16 para a seleção. O índice o perante k funciona entre 0 e N/2-1, enquanto w representa a função janela.
[00030] A partir da condição TDAC para a função janela w, aplica-se o seguinte: (4) [00031] Para determinados ângulos ak, k = 0, N/2- 1, este pré-prócessamentó no domínio de tempo pode ser escrito como rotação Givens, como discutido.
[00032] O ângulo α da rotação Givens depende da função janela w como segue: a = arctan[w{N/2-l-k) / w(N/2 + k)] (5) [00033] Deve ser notado que quaisquer funções janela w podem ser empregadas desde que preencham essa condição T'DAC.
[00034] A seguir, são descritos um codificador e um decodificador em cascata com respeito à Figura 4. As amostras discretas no tempo x {0) a x(2N-1), que são "enquadradas" em conjunto por uma janela, são primeiro selecionadas pelo meio 16 da Figura 3, de maneira que a amostra x (0) e a amostra x(N-l), isto é, uma amostra do· primeiro quadrante da janela e uma amostra do segundo quadrante da janela, são selecionadas para formarem um vetor na salda do meio 16- As flechas de cruzamento representam esquematicamente as multiplicações de lifting e os subsequentes arredondamentos dos meios 18, 20 e 22, 24 e 26, 28, respectivamente, para obter amostras enquadradas inteiras na entrada dos blocos DCT-1V.
[00035] Quando o primeiro vetor tiver sido processado· como acima descrito, um segundo vetor será ainda selecionado a partir das amostras x(N/2-1) e x(N/2), isto é, novamente uma amostra do primeiro quadrante da janela e uma amostra do segundo quadrante da janela, sendo novamente processado pelo algoritmo descrito na Figura 3. De maneira análoga, são· processados todos os demais pares de amostras do primeiro e do· segundo quadrantes da janela. 0 mesmo processamento é feito para o terceiro e o quarto quadrantes da primeira janela. Agora existem 2N amostras inteiras enquadradas na saída 12, que agora sâo fornecidas para uma transformada DCT-IV como ilustrado na Figura 4. Em particular, as amostras enquadradas inteiras do segundo e do terceiro quadrantes são fornecidas para uma DCT. As amostras inteiras enquadradas do primeiro quadrante da janela são processadas em uma DCT-IV precedente, juntamente com as amostras inteiras enquadradas do quarto quadrante da janela precedente. De maneira análoga, na Figura 4, o quarto quadrante das amostras inteiras enquadradas é fornecido para uma transformada DCT-IV juntamente com o primeiro quadrante da próxima janela. A transformada DCT-IV inteira central 32 mostrada na Figura 4 agora provê N valores espectrais inteiros y < 0) a y(N-l). Esses valores espectrais inteiros podem agora, por exemplo, ser simplesmente codificados por entropia sem uma quantificação interposta ser necessária, porque o enquadramento e a transformada produzem, valores de saida inteiros.
[00036] Na metade direita da Figura 4, está ilustrado um decodífícador. O decodíficador, que consiste de uma transformada backward e "enquadramento inverso" opera inversamente ao codificador, É sabido que uma DCT-IV inversa pode ser usada para a transformada backward de uma DCT-IV, como ilustrado na Figura 4, Os valores de saida do decodificador DCT-IV 34 são agora inversamente processados com os valores correspondentes da transformada precedente e/ou a transformada a seguir, como ilustrado na Figura 4, para gerar nüvamente amostras de áudio discretas no tempo x(0) a x(2-Nl) das amostras enquadradas inteiras na saída do meio 34 e/ou da transformada precedente ou seguinte.
[00037] A operação no lado de saída ocorre por uma rotação Givens inversa, isto é, de maneira que os blocos 26, 28 e 22, 24 e 18, 20, respectivamente são atravessados na direção oposta. Isto será ilustrado em mais detalhes com respeito à segunda matriz de lifting da equação 1. Quando (no codificador) o segundo vetor resultado é formado pela multiplicação do primeiro vetor resultado arredondado pela segunda matriz de lifting (meio 22), resulta a seguinte expressão: (6) [00038] Os valores x, y no lado direito da equação 6 são inteiros. Entretanto, isto não se aplica ao valor x sin a. Aqui, a função de arredondamento r deve ser introduzida, como ilustrado na equação a seguir: (7) [00039] Essa operação ê realizada pelo meio 24.
[00040] O mapeamento inverso (no decodificador) é definido como a seguir: (8) [00041] Devido ao sinal de menos na frente da operação de arredondamento, torna-se aparente que a aproximação inteira da etapa de lifting pode ser revertida sem a introdução de erro. A aplicação dessa aproximação em cada uma das três etapas de lifting conduz a uma aproximação inteira da rotação de Givens. A rotação arredondada (no codificador) pode ser revertida (no decodificador} sem introduzir um erro atravessando as etapas inversas da lifting, arredondado em ordem inversa, isto é, se a decodificação do algoritmo da Figura 3 é feita de baixo para cima.
[00042] Se a função de arredondamento r for um ponto simétrico, a rotação arredondada inversa é idêntica à rotação arredondada com o ângulo -CL, sendo é expressa como a seguir: (9) [00043] As matrizes de lifting para o decodificador, isto é, para a rotação Givens inversa, nesse caso resulta diretamente da equação (1) pela simples reposição da expressão "sin a" pela expressão "-siη a".
[00044] A seguir, a decomposição de uma MDCT comum com janela sobrepostas 40 a 46 está novamente ilustrada com respeito à Figura 5. As janelas 40 a 46 cada uma tem 50% de sobreposição. Primeiro, as rotações Givens são realizadas por janela dentro do primeiro e do segundo quadrantes de uma janela e/ou dentro do terceiro e quarto quadrantes de uma janela, como esquematicamente ilustrado pelas flechas 48. Então, os valores rotacionados, isto é, as amostras inteiras enquadradas, são fornecidos para uma DCT N-a-N de maneira que sempre o segundo e o terceiro quâdrantes de uma janela e o quarto e o primeiro· quadrantes de uma janela subsequente, respectivamente, sejam convertidos em uma representação espectral em conjunto, por meio de um algoritmo DCT-IV.
[00045] As rotações comuns Givens são, portanto decompostas em matrizes de lifting que são executadas em sequência, onde, após cada multiplicação da matriz de lifting é inserida uma etapa de arredondamento, de maneira que os números de ponto flutuante sejam, imediatamente arredondados depois de serem gerados, de maneira que antes de cada multiplicação de um vetor resultado com uma matriz de lifting, o vetor resultado tenha somente números inteiros.
[00046] Portanto, os valores de saída sempre permanecem inteiros, sendo que é preferido também usar valores de entrada inteiros. Isso não representa uma limitação, porque quaisquer amostras exemplares PGM quando armazenadas em um CD são valores numéricos inteiros, cujas faixas de valores variam dependendo da largura de bit, isto é, dependendo de se os valores de entrada digital discretos no· tempo são valores de 16 bits ou valores de 24 bits. Não obstante, todo o processo é inversivo, como discutido acima, pela realização de rotações inversas em ordem reversa. Existe assim uma aproximação inteira da MPCT com reconstrução perfeita, isto é, uma transformada sem perdas.
[00047 ] A transformada mostrada prove valores de saida inteiros ao invés de valores de ponto flutuante. Provê uma perfeita reconstrução, de maneira que nenhum erro é introduzido quando uma transformada forward e depois uma transformada backward são realizadas. De acordo com uma configuração preferida da presente invenção, a transformada é uma substituição da transformada de co-seno discreta modificada. Entretanto, outros métodos de transformadas podem ser também realizados com inteiros, enquanto for possível uma decomposição em rotações e uma decomposição das rotações em etapas de lifting.
[00048] A MDCT inteira tem a maioria das propriedades favoráveis da MDCT. Tem uma estrutura de sobreposição, onde é obtida uma melhor seletividade de freqüência do que com transformadas de bloco não sobreponível. Devido à função TDAC que já é levada era consideração no enquadramento antes da transformada, é mantida uma amostragem crítica, de maneira que o número total de valores espectrais que representa ura sinal de áudio seja igual ao número total de amostras de entrada.
[00049] Comparada com uma MDCT normal que prove amostras de ponto flutuante, a transformada inteira preferida descrita mostra que o ruído comparado com a MDCT normal é somente aumentado na faixá espectral na qual existe um pequeno nível de sinal, enquanto este aumento de ruído não se torna perceptível nos níveis significativos de sinal. Mas o processamento inteiro se sugere para uma implementação eficiente de hardware, porque somente as etapas de multiplicação sâo usadas que possam prontaménte ser decompostas em etapas de câmbio/adição que possam ser implementadas por hardware de maneira simples e rápida. É claro que é também possível uma implementação de software.
[00050] A transformada inteira prove uma boa representação espectral do sinal de áudio, permanecendo· ainda assim na área dos inteiros, Quando é aplicada a partes tonais de um sinal de áudio, resulta em uma boa concentração de energia. Com isto, um eficiente esquema de codificação sem perdas pode ser construído, simplesmente fazendo a cascata do enquadramento /transformada ilustrado na Figura 3 com um codificador de entropia. Em particular, o stacked codíng [transcodificação] que usa valores de escape, como empregados em MPEG AAC, é vantajoso. É preferível reduzir todos os valores de uma certa potência de dois até que se adaptem era uma tabela desejada de códigos, e depois ainda codificar os bits omitidos menos significativos. Em comparação com a alternativa do uso de maiores tabelas de códigos, a alternativa descrita é mais favorável com relação ao consumo de armazenagem para armazenar as tabelas de códigos. Pode também ser obtido um codificador quase sem perdas simplesmente omitindo alguns dos bits menos significativos.
[00051] Particularmente para sinais tonais, a codificação de entropia dos valores espectrais inteiros permite um alto ganho de codificação. Para partes transientes do sinal, o ganho de codificação· é baixo, por ser devido ao espectro plano dos sinais transientes, isto é, devido a ura pequeno número de valores espectrais iguais a 0 ou quase 0. Como descrito por J. Herre, J, D. Johnston: “Enhancing the Performance of Perceptuai Audio Coders by Using Temporal Noise Shaping (TNS)" 101st AES Convention, Los Angeles, 1996, preprint 4384, entretanto essa planicidade pode ser usada utilizando uma predição linear no domínio da frequência, Uma alternativa é uma predição cora circuito aberto. Outra alternativa é o previsor com circuito fechado. A primeira alternativa, isto é, o previsor com circuito aberto, é denominada TNS. A quantificação depois da previsão leva a uma adaptação do resultante ruido de quantificação para a estrutura temporal do sinal de áudio, e assim evita os pré-ecos nos codificadores psicoacústicos de áudio. Para codificação de áudio sem perdas, a segunda alternativa, isto é, é mais adequada com um previsor de circuito fechado, já que a previsão com circuito fechado permite uma reconstrução mais precisa do sinal de entrada. Quando essa técnica é aplicada a um espectro geral, deve ser feita uma etapa de arredondamento depois de cada etapa do filtro de previsão, de maneira a ficar na área dos inteiros. Usando o filtro inverso e a mesma função de arredondamento, o espectro original pode ser reproduzido com precisão.
[00052] De maneira a fazer uso da redundância entre dois canais para a redução de dados, também pode ser empregada a codificação centro-lado de forma sem perda, se for usada uma rotação arredondada com um ângulo de 31/4. Em comparação cora a alternativa de calcular a soma e a diferença dos canais esquerdo e direito de um sinal estéreo, a rotação· arredondada tem a vantagem de conservação de energia. O uso das denominadas técnicas de codificação estéreo conjunto podem ser ligadas e desligadas para cada banda, como também é feito no MPEG AAC padrão. Podem também ser considerados outros ângulos de rotação para poder reduzir a redundância entre dois canais de maneira mais flexível.
[00053J Particularmente o conceito de transformada ilustrado com relação à Figura 3 provê uma implementação inteira da MDCT, isto é, uma IntMDCT, que opera sem perdas com respeito à transformada forwãrd e a subsequente transformada backward. Com as etapas de arredondamento 20, 24, 28 e as correspondentes etapas de arredondamento na DCT inteira (bloco 14 da Figura 3), existe ainda sempre possível um processamento inteiro, isto é, processamento com valores quantificados com menos precisão do que aqueles com que foram gerados, por exemplo, pela multiplicação de ponto flutuante com uma matriz de lifting (blocos 18, 22, 26 da Figura 3).
[00054] O resultado é que toda a IntMDCT pode ser feita eficientemente com respeito aos cálculos.
[00055] A falta de perdas desta IntMDCT ou, falando em geral, a falta de perdas de todos os algoritmos codificadores denominados como sem perdas está relacionada ao fato que o sinal, quando é codificado para obter um sinal codificado e quando é depois novamente decodificado para obter um sinal codificado/decodifiçado, "parece" exatamente igual ao sinal original. Em outras palavras, o sinal original é idêntico ao sinal original codificado/decodifiçado. Este é um contraste óbvio do denominado codificação de perdas, no qual, como no caso de codificadores de áudio que operara era base psicoacústica, os dados são irremediavelmente perdidos pelo processo de codificação e particularmente pelo processo de quantificação controlado pelo modelo psicoacústico.
[00056] É claro que erros de arredondamento são ainda introduzidos. Portanto, como mostrado· cora referência ã Figura 3 nos blocos 20, 24, 28, são feitas etapas de arredondamento que, é claro, introduzem ura erro de arredondamento que somente é "eliminado" no decodificador quando são realizadas as operações inversas. Assim, o· conceito de codificação/decodificação sem. perdas difere essencialmente dos conceitos de codificação/decodificação com perdas no que, nos conceitos de codificação/decodificação sem perdas o erro de arredondamento é introduzido de forma que possa ser novamente eliminado, enquanto este não é o caso nos conceitos de codificação/decodificação com perdas.
[00057] Entretanto, se f Or considerado um sinal codificado, isto é, no exemplo de codificadores de transformadas, o espectro de um bloco de amostras temporais, o arredondamento na transformada forward e/ou geralmente a quantificação desse sinal resulta em um erro sendo introduzido no sinal. Assim, um erro dé arredondamento é sobreposto no espectro ideal sem erro do sinal, o erro tipicamente sendo, por exemplo no caso da Figura 3, ruído branco incluindo igualmente todos os componentes de frequência da faixa espectral considerada. Esse ruído branco é sobreposto ao espectro ideal e representa assim o erro de arredondamento que ocorre, por exemplo, arredondando os blocos 20, 24, 28 durante o enquadramento, isto é, o pré-processamento do sinal antes da DCT real no bloco 14. Deve-se notar em particular, que para um requisito de falta de perdas, o erro total de arredondamento deve ser necessariamente codificado, isto é, transmitido ao decodificador, porque o decodificador requer que o erro total de arredondamento introduzido no codificador atinja a correta reconstrução sem perdas.
[00058] 0 erro de arredondamento pode não ser problemático quando nada é "feito" com a representação espectral, isto é, quando a representação espectral está somente armazenada, transmitida ou decodificada novamente por um decodif icador inverso· de combinação correta. Nesse caso, o critério· de não haver perdas será sempre observado, sem relação· da quantidade de erro de arredondamento que foi introduzido no espectro. Entretanto, se alguma coisa for feita com a representação espectral, isto é, com a representação espectral ideal de um sinal original que contenha um erro de arredondamento·, por exemplo se as camadas de escâlâção forem geradas, etc., todas essas coisas funcionam melhor, com o menor erro de arredondamento.
[00059] Assim, também existe um requisito nas codificações/decodificações sem perda que, por um lado, um sinal deve ser reconstruivel sem perdas pelos decodificadores especiais, que, entretanto, um sinal deve ter um erro de arredondamento mínimo em sua representação espectral para preservar a flexibilidade, onde também decodificadores não ideais sem perdas podem ser abastecidos com a representação espectral ou que possam ser gerados camadas de escalação, etc .
[00060] Como discutido acima, o erro de arredondamento é expresso como ruído branco em todo os espetro considerado. Por outro lado, particularmente em aplicações de alta qualidade, da forma como interessante para o caso sem perdas, isto é, em aplicações de áudio com frequências de amostragem muito altas, como de 96 kHz, o sinal de áudio tem somente um razoável teor de sinal em uma determinada faixa espectral, que tipicamente atinge no máximo somente até 20 kHz. Tipicamente, a faixa em que a maior parte da energia do sinal se concentra será a faixa entre 0 e 10 kHz, enquanto a energia do sinal se reduzirá consideravelmente na faixa acima de 10 kHz. Entretanto, isto não importa para o ruído branco introduzido pelo arredondamento. Este se sobrepõe em toda a faixa espectral considerada da energia do sinal. O resultado é que, nas faixas espectrais, isto é, tipicamente nas altas faixas espectrais onde não existe, ou somente existe energia de sinal de áudio muito pequena, haverá somente o erro de arredondamento. Ao mesmo tempo, particularmente devido à sua natureza não deterministica, o erro de arredondamento é também difícil de codificar, isto é, é somente codificável com relativamente altos requisitos de bits. Os requisitos de bits não desempenham o papel decisivo, particularmente em algumas aplicações sem perdas. Entretanto, para as aplicações de codificação sem perdas se tornarem mais e mais difundidas, é importante operar também aqui com muita eficiência de bits para combinar a vantagem da redução de qualidade ausente inerente das aplicações sem perdas também com a correspondente eficiência de bits, como é conhecido nos conceitos de codificações com perdas.
[00061] Apesar de um erro de arredondamento não ser assim problemático era ura contexto sem perdas, no que pode ser eliminado na decodificação, é ainda de considerável significatividade para permitir a decodificação sem perdas e/ou a reconstrução para ser realizada era primeiro lugar. Por outro lado, como já discutido, o erro de arredondamento é responsável pela representação espectral ser defeituosa, isto é, ser distorcida quando comparada com uma representação espectral ideal do sinal arredondado. Para os casos de aplicação especiais, nos quais a representação espectral, isto é, o sinal decodificado é realmente importante, isto é, quando, por exemplo, várias camadas de escalaçáo são geradas a partir do sinal codificado, é ainda desejável obter uma representação codificada com um erro de arredondamento tão pequeno· quanto possível, a partir do que, entretanto, nenhum erro· de arredondamento tenha sido eliminado que seja necessário- para uma reconstrução.
[00062] É o objeto da presente invenção prover um conceito com redução de problemas para o processamento dos valores de entrada.
[00063] Este objeto é realizado por um dispositivo para o- processamento de pelo menos dois valores de entrada de acordo com a reivindicação 1 ou um método para o processamento de pelo menos dois valores de entrada de acordo com a reivindicação 11 ou um programa de computador de acordo com a reivindicação 12.
[00064] A presente invenção baseia-se na descoberta que uma redução do erro de arredondamento pode ser obtida reduzindo- O erro de arredondamento sempre que dois valores forem realmente arredondados e os dois valores arredondados são então combinados com um outro terceiro- valor, por exemplo pela adição, somando primeiramente os -dois valores no estado sem arredondamento, isto é, com representação- de ponto flutuante e depois somente somando o valor de saída adicionado ao terceiro valor. Comparado com o procedimento normal, no qual cada valor é processado individualmente, o conceito inventivo ainda resulta na economia de um processo de soma e um processo de arredondamento, de maneira que o erro de arredondamento é reduzido, também, contribui para um.a. execução mais eficiente do algoritmo, [00065] Em uma configuração preferida da presente invenção-, o- conceito inventivo é usado para reduzir o erro de arredondamento quando duas rotações divididas em etapas de lifting se "tocam", isto é, quando existe uma situação onde, primeiro-, um primeiro valor deve ser "girado"· juntamente com um terceiro valor, e quando o resultado dessa primeira rotação deve então ser novamente girado com um segundo valor, [00066] Um outro caso de aplicação do conceito inventivo- para a redução do erro de arredondamento existe quando um estágio de lifting de um conceito de lifting multidimensional é precedido por borboletas, como ocorre quando- um DCT N-pontos é dividido- em dois DCTs tendo a metade do comprimento, isto é, com N/2 pontos. Nesse caso, haverá um estágio borboleta da real lifting multidimensional e haverá um estágio de rotação após o- lifting multidimensional. Em particular, os arredondamentos requeridos pelo estagio borboleta podem ser combinados com os arredondamentos do primeiro- estágio de lifting do conceito de lifting multidimensional para a redução do erro de arredondamento.
[00067] Como o número de estágios de arredondamento em um MDCT inteiro com enquadramento/pré-processamento inteiro e processamento de lifting multidimensional para a transío-rmada já é significativamente reduzido quando comparado com a técnica anterior sem aplicar a invenção, particularmente nesta situação, o conceito inventivo contribui para uma redução significativa do erro remanescente de arredondamento, apesar de já ser pequeno. Isto resulta em, por exemplo, um espectro ago^ra tendo somente um pequeno· desvio com. respeito a ura espectro ideal, devido ao ainda presente, mas agora muito reduzido erro de arredondamento.
[00068] Particularmente no contexto de codifieação/decodlficação sem perdas, a presente invenção pode ser combinada com a cof iguração speetral do erro de arredondamento, considerando o fato de que o erro de arredondamento ainda remanescente é configurado espectralmente de maneira a ser "acomodado" na faixa de frequência do sinal a ser codificado, no qual o· sinal tem, de qualquer forma uma alta energia de sinal e que, como consequência, o erro de arredondamento não esta presente nas faixas em que o sinal não tem energia. Enquanto que na técnica anterior, um erro de arredondamento era distribuído branco· em todo o espectro do sinal e codificação· sem perdas e particularmente em codificação sem perdas com base nos algoritmos inteiros, o erro de arredondamento está superiraposto no espectro ideal na forma de ruído rosa, isto é, de maneira que a energia de ruido devida ao arredondamento está presente onde o sinal tem, de qualquer forma sua maior energia de sinal, e que assim o ruído devido ao erro de •arredondamento tem também pouca ou mesmo nenhuma energia onde o· sinal a ser codificado não tem, ele mesmo, energia, Assim o pior caso é evitado, no qual o erro de arredondamento que é um sinal estocástico e difícil de codificar, é o único sinal a ser codificado em uma faixa de freqüência e portanto aumenta desnecessariamente o bit rate.
[00069] Ao considerar um sinal de áudio no qual a energia esteja na faixa de baixa freqüência, o meio inventivo é projetado para o arredondamento de maneira a alcançar uma formatação espectral de baixa passagem. do erro de arredondamento gerado, de maneira que, nas altas frequências do sinal codificado, nâo exista nem energia de sinal nem energia de ruído, enquanto o erro de arredondamento é mapeado na faixa em que o sinal tem, de qualquer forma, muita energia, [00070] Em particular, para aplicações de codificação· sem perda, isto está em contraste com a técnica anterior, onde um erro de arredondamento é filtrado espectralmente em alta passagem para obter um erro de arredondamento fora da faixa audível. Isso também corresponde ao caso em que a faixa espectral, era que existe o erro de arredondamento, é filtrada eletronicamente ou pela própria audição para eliminar o erro de arredondamento. Para codificação/decodificação sem perdas, entretanto, o erro de arredondamento é absolutamente necessário no decodificador, porque, de outra maneira, o algoritmo usado no decodificador, que é inverso ao algoritmo de codificação sem perda, gera distorções.
[ 00071] O conceito de configuração spectral do erro de arredondamento é preferivelmente usado em aplicações sem perda com um alto índice de amostragem, porque particularmente nos casos em que O espètro teoricamente se estende até ou mais de 40 kHz (devido ao oversampling) , a mesma situação é alcançada na faixa de alta freqüência, na qual nâo existe energia de sinal, isto é, na qual a codificação pode ser feita muito· eficientemente, como no caso de uma codificação não inteira, em que a energia de sinal é também zero na faixa de alta frequência.
[00072] Como um grande número de zeros é codificado de forma muito eficiente e o erro de arredondamento, que é problemático para o código, é transferido para a faixa que, de qualquer maneira é tipicamente codificada de forma muito fina, o indice geral de dados do sinal fica assim reduzido quando comparado com o caso em que o erro· de arredondamento é distribuído como ruído branco em toda a faixa de frequências. Além disso, o desempenho da codificação· - e assim também o desempenho da decodificação - aumentam, porque nenhum tempo· de computação tem que ser gasto· para a codificação e a decodificação da faixa de alta frequência. 0 conceito, portanto, também tem o resultado que pode ser obtido um processamento de sinal mais rápido por parte do codificador e/ou por parte do decodificador.
[00073] Em uma configuração, o conceito de configurar/reduzir o erro de aproximação se aplica a transformadas inteiras inversiveis, particularmente a IntMDCT. Existem duas áreas de aplicação, a saber, por um lado, um liftíng multidimensional, com a qual a MDCT fica consideravelmente simplificada com respeito às etapas de arredondamento necessárias, e, por outro lado, as operações de arredondamento necessárias no enquadramento inteiro, tais como ocorrem no pré-processamento antes da DCT real, [00074] É usado um conceito de feedback de erro para a configuração espectral do erro de arredondamento, no qual o erro de arredondamento é deslocado para a faixa de frequência em que o sinal sendo processado tem a maior energia de sinal. Para sinais de áudio, e também particularmente para sinais de video, esta será a faixa de baixa frequência, de maneira que o sistema de feedback de erro tem uma propriedade de baixa passagem. Isto resulta em menos erros de arredondamento na faixa superior de frequência, na qual existem normalmente menos componentes de sinal, Na técnica anterior, os erros de arredondamento têm prevalência na faixa superior, e devem ser portanto codificados e assim aumentam o número de bits necessários para a codificação. Preferivelmente, este erro- de arredondamento é reduzido nas maiores freqüêncías, o que reduz diretamente o número de bits necessários para a codificação.
[00075] As configurações preferidas da presente invenção sâo explicadas em maiores detalhes abaixo, cora respeito aos desenhos de acompanhamento, nos quais: [00076] Figura 1 mostra um diagrama de circuito de bloco do conceito para processamento de um sinal tendo uma sequência de valores discretos com configuração espectral do erro de arredondamento;
[00077] Figura 2a mostra um conhecido conceito espectral de alta passagem que configura um erro de quantificação;
[00078] Figura 2b mostra um conceito para configuração de baixa passagem do erro de arredondamento;
[00079] Figura 2c mostra um diagrama de circuito de blocos de acordo com uma configuração para o bloco espectral de configuração/ arredondamento;
[00080] Figura 3 mostra um diagrama de circuito de blocos de um meio preferido para o processamento de amostras de áudio discretas no tempo para obter valores inteiros, a partir dos quais possam ser determinados valores espectrais inteiros;
[00081] Figura 4 é uma ilustração esquemãtica da decomposição de uma MDCT e de uma MDCT inversa em rotações Givens e duas operações DCT-IV;
[00082] Figura 5 é uma ilustração para mostrar a decomposição de uma MDCT com 50 por cento de sobreposição em rotações e operações DCT-IV;
[00083] Figura 6a mostra um diagrama de circuito de blocos esquémático dé um conhecido codificador com MDCT e 50 por cento de sobreposição;
[00084] Figura 6b mostra um diagrama dé circuito de blocos de um conhecido decodificador para a decodificação dos valores gerados pela Figura 10a;
[00085] Figura 7 é uma ilustração de lifting em enquadramento, de acordo com a Figura 3;
[00086] Figura 8 é uma ilustração "reclassificada" do lifting da Figura 7 para enquadramento antes da transformada real;
[00087] Figura 9 mostra uma aplicação da configuração espectral para enquadramento de acordo com as Figuras 3, 7 e 8;
[00088] Figura 10 mostra diagramas de circuito de bloco de um dispositivo para conversão de acordo com uma configuração preferida da presente invenção;
[00089] Figura 11 mostra um dispositivo para a conversão inversa de acordo com uma configuração preferida da presente invenção;
[00090] Figura 12 é uma ilustração da transformação de dois blocos subseqüentes de valores, como utilizável para a presente invenção;
[00091] Figura 13 é uma ilustração detalhada de uma etapa de lifting multidimensional com uma matriz de transformada forward;
[00092] Figura 14 é uma ilustração de uma etapa de lifting inversa multidimensional com uma matriz de transformada backward;
[00093] Figura 15 é uma ilustração da presente invenção para a decomposição de uma DCT-IV de comprimento N em duas DCT-IVs de comprimento N/2;
[00094] Figura 16 mostra uma aplicação do conceito inventivo dentro da transformada com lifting multidimensional da Figura 10;
[00095] Figura 17 é uma ilustração de duas etapas sucessivas de lifting para a redução do erro de arredondamento da invenção;
[00096] Figura 18 é uma ilustração do conceito para a redução do erro de arredondamento· em duas etapas sucessivas de lifting da Figura 17; e [00097] Figura 19 mostra uma combinação preferida do conceito da Figura 18 com o conceito da Figura 16, [00098] A Figura 1 mostra um dispositivo para o processamento de um sinal tendo uma sequência de valores discretos adicionados ao meio 202 para manipulação por meio de um sinal de entrada 200. O sinal é tipicamente formado para ter uma primeira faixa de frequências na qual o sinal tem uma alta energia e para ter uma segunda faixa de frequências na qual o sinal tem uma energia comparativamente baixa. Se o primeiro sinal for um sinal de áudio, terá uma alta energia na primeira faixa de frequências, isto é, na faixa de baixa frequência, e terá a baixa energia na faixa de alta frequência. Se, entretanto, o sinal for de video, este também terá alta energia na faixa baixa, e terá baixa energia na faixa alta. Em contraste com o sinal dé áudio, a faixa de frequências no sinal de vídeo ê uma faixa de frequência espacial, a menos que sejam considerados sucessivos quadros de video, onde também exista uma frequência temporal, por exemplo, relacionada com uma área de imagem selecionada em quadros sucessivos.
[00099] 0 meio 202 para manipulação é geralmente formado· para manipular a sequência de valores discretos, de maneira que uma sequência de valores manipulados seja obtida, na qual pelo menos ura valor manipulado não seja inteiro. Essa sequência de valores discretos não inteiros é enviada ao meio 204 para arredondar a sequência de valores manipulados para a obtenção de uma sequência de valores manipulados arredondados. 0 meio 204 para arredondamento é formado para efetuar uma configuração espectral de um erro de arredondamento gerado pelo arredondamento, de maneira que, na primeira faixa de frequências, isto é, na faixa de frequências onde o sinal original tem muita energia, um erro de arredondamento configurado espectralmente também tem muita energia, e que, na segunda faixa de frequências, isto é, na faixa de frequências em que o sinal original tem pouca energia, o erro de arredondamento configurado espectralmente também tem pouca ou nenhuma energia. Em geral, a energia do erro de arredondamento configurado espectralmente na primeira faixa de frequências é assim mais alta do que a energia do erro de arredondamento configurado· espectralmente na segunda faixa de frequências. Entretanto·, a configuração espectral preferencialmente não altera nada na energia geral do erro de arredondamento.
[000100] Preferivelmente, o· dispositivo inventivo para a geração da sequência contendo erros dos valores manipulados arredondados está acoplado ao meio 206 para a conversão em representação espectral seja diretamente ou por meio de outra manipulação ou de combinações de arredondamento. Assim, a sequência contendo erros dos valores manipulados arredondados pode ser enviada díretamente para o meio 2 06 para conversão em representação espectral, de maneira a conseguir ura espectro direto da sequência contendo erros dos valores manipulados arredondados. Entretanto, em uma configuração preferida, o meio para a manipulação é uma etapa de lifting e/ou matriz de lifting, e o meio para O arredondamento é formado para arredondar os resultados não inteiros de uma etapa de lifting. Nesse caso, o meio 204 é seguido por outro meio de manipulação que realiza a segunda etapa de lifting, que, por sua vez, é seguido por um meio de arredondamento, que, por sua vez, é seguida por um terceiro meio para a manipulação da implementação da terceira etapa de lifting, onde então hã uma outra manipulação de maneira que todas as três etapas de lifting se realizem.. Assim, é gerada uma sequência contendo erros de valores manipulados arredondados derivados da sequência original contendo erros de valores manipulados arredondados na saída do meio 204, que é finalmente então convertida em uma representação espectral, também preferivelmente por uma transformada inteira e particularraente preferível por uma transformada inteira, como ilustrado no bloco 206. O sinal de saída da representação espectral na saida do bloco 206 tem agora um espectro que, em contraste coto a técnica anterior, não tem mais um um erro de arredondamento branco distribuído, mas um erro de arredondamento conformado espectralmente, isto é, de maneira que também haja uma alta energia de erro de arredondamento onde o "espectro útil" real tem uma alta energia de sinal, apesar de mesmo no melhor caso não existir energia de erro de arredondamento nas faixas de frequência em que não existe energia de sinal.
[000101] Esse espectro é então enviado para o meio 208 para a codificação de entropia da representação espectral. O meio para a codificação de entropia pode compreender qualquer método de codificação, coroo a codificação de Huffman, uma codificação aritmética, etc. Especialmente para a codificação de um grande número de linhas espectrais que são zero e limítrofes entre si, é também adequada uma codificação de comprimento de operação que, é claro, não pode se aplicar na técnica anterior, porque aqui um sinal realmente determinístíco deve ser codificado em faixas de frequências tais que, entretanto, tem um espectro branco e assim é especialmente desfavorável para quaisquer tipos de ferramentas dé codificação, porque OS valores espectrais individuais são completamente descorrelacionados entre si.
[000102] Subsequentemente, uma configuração preferida do meio 204 para arredondamento com configuração espectral é discutida com relação às Figuras 2a, 2b, 2c.
[000103] A Figura 2a mostra um sistema de feedback de erro para a configuração espectral de um erro de quantificação, como descrito no livro especializado "Digitale Audiosignalverarheitung", U. Zoelzer, Teubner-Verlag, Stuttgart, 1997. Um valor de entrada x(i) é fornecido para um soraador de entrada 210. 0 sinal de saída do somador 210 é fornecido a um quant if icador 212 que fornece um valor de saída quantificado y (i) em uma saída do dispositivo de configuração espectral. Em um segundo somador 214, é determinada a diferença entre o valor após o quantificador 212, isto é, o erro de arredondamento e(i). O sinal de saída do segundo somador 214 é enviado a um meio de retardo 216. O erro e(i) retardado pela unidade é então subtraído do valor de entrada por meio do somador 210. Isto resulta em uma avaliação de alta passagem do sinal do erro original e{n).
[000104] Se z~l (-2 + z"1) for usado ao invés do meio de retardo z'1 indicado 216 na Figura 2a, o resultado é uma avaliação de alta passagem de segunda ordem. Em determinadas configurações, essas configurações espectrais do erro de quantificação são usadas para "mascarar" o erro de quantificação da faixa perceptível, isto- é, por exemplo, da faixa de baixa passagem do sinal x (n} , de maneira que o erro de quantificação não seja percebido, [000105] Como mostrado na Figuxa 2b, é feita uma avaliação de baixa passagem ao invés de atingir uma configuração espectral do erro, não fora da faixa de percepção, mas exatamente na faixa de percepção, Para isto, o sinal de saída do somador 210, como mostrado na Figura 2b, é enviado· a um bloco de arredondamento 218 que implementa uma função de arredondamento que pode ser, por exemplo, o arredondamento para cima, o arredondamento para baixo, o arredondamento truncado, arredondar para cima/arredondar para baixo· até o próximo inteiro, ou até o próximo menos um, o próximo menos dois.... inteiro, No caminho de feedback de erros, isto é, entre o somador 214 e o somador 210, existe agora um outro bloco de feedback 220 com uma resposta de impulso h(n) e/ou uma função de transferência H{z) em adição ao membro de retardo 216. A transformada z da sequência de saída, isto é, Y {z) , está relacionada com a sequência de entrada X(z) pela equação ilustrada na Figura 2b. e(n) = x'(n) - y(n) [000106] Na equação acima, x (n) é o sinal de saída do somador 210, e y(n) é o sinal de saída do bloco de arredondamento 218.
[000107] Além disso, aplica-se a seguinte· equação: y(n) = round (x' (n) ) [000108] Na equação acima, "round" representa a função de arredondamento implementada pelo bloco 218. Além disso, aplica-se a seguinte equação, onde representa a operação de convoluçâo: x' (n) = x (n) - h (n) * e (n - 1} Na faixa Z, existe o seguinte resultado: Y(z) = X' (z> + E (z} XMz) = X(z) - E ( z } z_1H(z) Y (z} = X (z) + (1 - z ”1 H (z) í E ( z) [000109] Como E (z} é o erro de arredondamento, é configurado espectralmente pelo filtro (1 - z"1 H(z)). De acordo com a invenção, é usada agora uma função de transferência do tipo baixa passagem. A função de transferência do tipo baixa passagem mais simples pode ser Obtida ao estabelecer, por exemplo, H[z) = -1. Nesse simples exemplo, o erro de arredondamento da anterior operação de arredondamento é simplesmente adicionada ao valor a ser arredondado antes de ser aplicada a próxima operação de arredondamento. Assim, é feita uma simples filtragem de baixa passagem do erro de arredondamento, que é muito eficiente para a presente invenção, sendo por isso preferida.
[000110] Está ilustrada uma implementação na Figura 2c. Em particular, está ilustrado o meio 202 para a manipulação de uma sequência original de valores discretos inteiros, que proporciona a sequência de valores discretos não inteiros y0, yi, yn ·, yi no lado de saída. Agora, em contraste com a técnica anterior, cada valor não é mais arredondado em si mesmo, como ilustrado, por exemplo, com respeito aos blocos 20, 24, 28 da Figura 3 ou com respeito aos blocos 104, 110, 142 na Figura 10 ou 126, 132, 150 na Figura 11. Ao invés disso, os valores discretos não inteiros da sequência y0, yi, Yz, y.3, ... são filtrados, dependendo entre si com a característica de baixa passagem no ramo de feedback pela "rede" mostrada na Figura 2C, de maneira que o resultado é a configuração espectral do invento. Os elementos semelhantes na Figura 2c e na Figura 2b são ilustrados cora os mesmos números de referência.
[000111] Além disso, a Figura 2c mostra uma implementação paralela, isto é, uma implementação na qual os valores a ser arredondados são providos era paralelo, É claro, essa ilustração é somente ésquemãtica. Os valores yo, yi, yn ... podem, ser providos sequencialmente para então obter os valores sequenciais de saída, onde, nesse caso, uma simples implementação da estrutura dos elementos 210, 214, 216, 218, 220 é suficiente. As estruturas repetitivas dos elementos 214, 218, 210, 220 estão· ilustradas somente com propósitos de clareza, [000112] 0 meio 204 para arredondamento mostrado na Figura 2c opera assim para primeiro calcular o valor arredondado {yo] . Depois, é calculado o erro de arredondamento ig. Depois, o erro· de arredondamento Íq é pesado· (filtrado) pelo bloco 220 com a função de transferência Η(z), que é preferivelmente -1, sendo colocada no somador 210. Esse erro de arredondamento filtrado é adicionado ao próximo valor da sequência y-, onde o resultado do somador 210 é arredondado no bloco 218 para obter o próximo- valor arredondado ty13 - Subsequentemente, o erro de arredondamento é novamente determinado pelo somador 214, isto é, usando o valor arredondado [y->] e o valor original yi, onde este erro de arredondamento obtido ii é novamente filtrado no bloco 220 para realizar o mesmo procedimento para o próximo valor ya da sequência.
[000113] Nesse ponto, deve-se notar que a direção é irrelevante. Isto significa que é também possível proceder a partir de yi com maiores índices até γ-χ com menores índices, isto é, na direção oposta com respeito ao particularmente simbolizado pelas flechas na Figura 2c, estendendo-se do bloco 220 até o somador 210. A ordem, isto é, se o procedimento segue dos índices de baixa sequência para os de alta sequência, não é importante.
[000114] Particularmente, no caso de aplicação da MDCT (IntMDCT)inteira, a configuração espectral do erro de arredondamento é usada preferencialmente com especial eficiência nos locais que obedecem às seguintes condições: [000115] Ê introduzido um erro de arredondamento em diversos valores adjacentes independentes entre sí.
[000116] Os valores adjacentes são (no senso mais amplo) sinais de tempo que são posteriormente convertidos em representação espectral por uma transformada, isto é, que são transferidos para o domínio da frequência, [000117] A seguir, há uma explicação mais detalhada em que partes da MDCT inteira, a configuração espectral de um erro de arredondamento é preferivelmente usada.
[000118] A primeira configuração preferida consiste no enquadramento antes da transformada real, isto é, para o arredondamento especificado na Figura 3 pelos blocos 20, 24, 28. A operação de lifting, como experimentada por cada amostra original individual Xi, xN e ressaltada com base na Figura 3, pode também ser ilustrada pelo diagrama mostrado na Figura 7. Aqui, as aplicações das três matrizes de lifting, isto é, a respectiva multiplicação por um fator por uma amostra, estão ilustradas em formato de amostras, de maneira que o resultado seja uma sequência "de cima para baixo", "de baixo para cima" e "de cima para baixo".
[000119] Com respeito à notação da Figura 7, deve ser notado que, quando uma flecha cruza uma linha horizontal, é feita aí uma soma. Essa soma é mostrada, por exemplo, em 27 na Figura 7. Quando a Figura 4 é comparada com a Figura 7, a única diferença é que x(0) na Figura 4 corresponde a Xj da Figura 7. A esse respeito, xN na Figura 7 corresponde a x{N-1) na Figura 4. Entretanto, x(N/2-1) da Figura 4 corresponde a xK/2 da Figura 7. Além disso, x ÍN/2) na Figura 4 corresponde a Χμ/2 4-ι da Figura 7, de maneira que o resultado são as borboletas mostradas na Figura 2, pelas quais sempre um valor do primeiro quadranté de uma janela é pesado com um valor do segundo quadranté da janela de acordo com as etapas de lifting, enquanto de maneira análoga também, ura valor do terceiro quadranté da janela é processado com um valor do quarto quadranté da janela pelo "sistema para baixo-para cima-para baixo", ilustrado na Figura 7.
[000120] Existe um procedimento correspondente para o par de valores x«/2 e xt.j/2+i ■ Existe novamente uma sequência para baixo-para cima-para baixo, onde uma etapa para baixo 29a é seguida por uma etapa para cima 29b, que por sua vez, é seguida por uma etapa para baixo 29c.
[000121 ] A Figura 7 mostra assim o enquadramento inteiro por lifting. Esse cálculo também pode ser prontamente feito sem a alteração do resultado, como ilustrado na Figura 8. Assim, é claro, todas as etapas para baixo (todas as etapas 29a) podem ser feitas primeiro. Depois, todas as etapas para cima (29b) podem ser feitas, até finalmente realizar todas as etapas para baixo· 29c, de maneira que o resultado· seja um bloco para baixo· 31a, um bloco para cima 31b e novamente um bloco para baixo 31c. Deve ser notado que a Figura 8 corresponde à Figura 7, mas em outra ilustração que é mais adequada para a compreensão da presente invenção.
[000122] A Figura 9 agora mostra o conceito no qual é feito o arredondamento do invento para o arredondamento com a configuração espectral. O conceito de cálculo de lifting mostrado na Figura 9 corresponde à Figura 1, onde os valores de entrada X|, xN/2 representam a seqüência original de valores discretos inteiros na entrada 200. Os blocos de avaliação csi, cs2, ..., cs* no bloco para baixo 31a em conjunto formam o meio 2 02 para manipulação·. 0· bloco denominado [. ]/No-íseShapíng representa o meio 204 para o arredondamento da Figura 1. A sequência contendo erros dos valores manipulados arredondados agora resulta na saída desse bloco 204.
[000123] Na configuração mostrada na Figura 9, a sequência de valores manipulados arredondados contendo erros é somada a uma outra sequência xN/2+i a xH para obter uma nova sequência de valores discretos inteiros, que por sua vez, é manipulada (pelos blocos Si, s:k no bloco para cima 31b) para entáo fazer novamente um arredondamento inventivo no bloco para cima 3lb pelo elemento 204b. Assim, é provido novamente um somador de valores 205b, como no· bloco para baixo 31a, isto é como no caso do somador 205a, para obter uma nova sequência que, por sua vez, é enviada para um manipulador 202 c, onde o sinal de saída do manipulador 202c não é inteiro, sendo arredondado em um outro arredondador 204c a ser adicionado, por vez, por um outro somador 205c, isto é, à sequência enviada ao manipulador 202b.
[000124] Na configuração mostrada na Figura 9, o resultado no lado de saída é um bloco de amostras enquadradas que, de acordo com o esquema sistemático ilustrado com respeito· à Figura 4, é enviado aos blocos DCT-IV correspondentemente mudados. Esses blocos DCT mudados proveem uma transformada para converter uma sequência contendo erros de valores manipulados arredondados em uma representação espectral. Os blocos DCT-IV na Figura 4 representam assim uma implementação do meio 206 da Figura 1. Analogamente, os blocos para a realização da DCT-IV inteira inversa representam o meio análogo para a conversão em representação temporal.
[000125] Subsequentemente, a aplicação do lifting multidimensional é discutida com respeito às Figuras 10 a 15 para apresentar uma implementação inteira do meio para a conversão em representação espectral 206 da Figura 10a e/ou uma implementação inteira análoga da conversão inversa (para um decodificador). 0 conceito do lifting multidimensional está apresentado no pedido de patente alemã com o número oficial de referência 10331803.8.
[000126] A Figura 10a mostra um dispositivo para a conversão de valores discretos em uma representação transformada com valores inteiros. Os valores discretos são enviados ao dispositivo por meio de uma primeira entrada 100a e por meio de uma segunda entrada 100b. É enviado um primeiro bloco de valores discretos por meio da entrada 100a, enquanto um segundo bloco de valores discretos é enviado pela entrada 100b. Os valores discretos representam dados de áudio ou dados de imagem e/ou dados de vídeo. Como discutido abaixo, o primeiro- bloco de valores discretos e o segundo bloco de valores discretos podem realmente incluir dois blocos temporalmente sucessivos de amostras de áudio. O primeiro e o segundo blocos de valores discretos podem também incluir duas imagens representadas pelos valores discretos e/ou valores residuais após uma previsão ou valores diferenciados em uma codificação diferenciada, etc. De maneira alternativa, entretanto, os dois blocos de valores discretos podem ter sido· submetidos a pré-processamento, tal como na implementação inteira da MDCT, onde o primeiro bloco e o segundo bloco de valores discretos foram gerados por rotações Givens de amostras realmente enquadradas. 0 primeiro e o segundo· blo-cos de valores discretos podem assim ser derivados dos dados originais de áudio ou dados de imagem por algum processamento, como rotações, permutações, borboletas mais/menos, escalas, etc. Ainda assim, o· primeiro e o segundo blocos de valores discretos obtêm informações de áudio e/ou informações de imagens, apesar de não serem diretamente amostradas de áudio ou valores de imagem tornados discretos.
[000127] O primeiro bloco de valores discretos é enviado ao meio 102 para o· processamento do primeiro bloco de valores discretos, usando uma primeira regra de transformada por meio· da entrada 100a para obter um primeiro bloco de valores transformados em uma saída do meio 102, como mostrado na Figura 10a. Esse primeiro bloco de valores transformados nâo sera tipicamente inteiro, mas incluirá valores de ponto flutuante, como são tipicamente obtidos por alguma regra de transformada, como a transformada de Fouriér, a transformada de Laplace, uma FFT, uma DCT, uma DST, uma MDCT, uma MDST ou alguma outra transformada, como uma transformada wavelet com quaisquer funções base. 0 primeiro bloco de valores transformados é enviado ao meio 104 para arredondamento do primeiro bloco de valores transformados para obter um primeiro bloco de valores transformados arredondados no lado de saída. O meio 104 para arredondamento é formado para realizar alguma função de arredondamento, como um arredondamento por truncagem ou arredondamento para cima e/ou arredondamento para baixo a ser realizado dependendo do valor do ponto flutuante, etc.
[000128] A regra de arredondamento implementada pelo meio 104 é, portanto responsável pelo primeiro bloco de valores transformados arredondados, novamente compreendendo somente os valores inteiros cuja precisão é determinada pela regra de arredondamento usada pelo meio 104. O primeiro bloco de valores transformados arredondados, como o segundo bloco de valores discretos aplicado à segunda entrada 100b, é enviado ao meio 106 para soma e obtenção de um segundo bloco de valores somados. Quando é considerado o exemplo de sinal de áudio, é aparente qué os valores espectrais do primeiro bloco de valores transformados arredondados é somado aos valores de tempo do segundo bloco de valores discretos pelo meio 106. Se os valores discretos do· segundo bloco forem, por exemplo-, valores de tensão, recomenda-se que o primeiro bloco de valores transformados arredondados também exista como amplitudes de tensão, isto é, como valores com a unidade V. Nesse caso, não são esperados problemas unitários na soma. Entretanto, é aparente para os peritos na técnica, que qualquer normalização de unidades pode ser feita com o primeiro bloco de valores transformados arredondados e/ou com o segundo bloco de valores discretos, onde tanto o primeiro bloco· de valores transformados arredondados como o segundo· bloco de valores discretos são, por exemplo, sem unidade.
[000129] G segundo bloco de valores somados é fornecido ao meio 10 8 para o processamento do segundo bloco de valores somados usando uma segunda regra de transformada para obter um segundo bloco de valores transformados. Se a regra de transformada usada no meio 102 for, por exemplo, uma regra de transformada tempo-frequência, então a segunda regra de transformada usada no bloco 108 será, por exemplo, uma regra de transformada tempo-freqwência. Entretanto, essas relações também podem ser reversas, de maneira que o primeiro e o segundo blocos de valores discretos são, por exemplo, valores espectrais, e os valores de tempo são obtidos pelo meio 102 para processamento sob a regra de transformada, enquanto os valores espectrais são novamente obtidos pelo meio para processamento por meio da regra de transformada inversa, isto é, o meio 108. A primeira e a segunda regras de transformadas podem assim ser uma regra de transformada forward ou backward, onde então a regra de transformada inversa é a regra de transformada báckward ou a regra de transformada forward, respectivamente, [000130] O segundo bloco de valores transformados é enviado ao meio 110 para arredondamento, como mostrado na Figura 10a, para obter um segundo bloco de valores transformados arredondados que, finalmente é enviado ao meio 112 para subtração, para subtrair um segundo bloco de valores transformados arredondados do primeiro bloco de valores discretos enviados pela primeira entrada 108a para obter um bloco de valores de saída inteiros da representação transformada que pode sair na saída 114. Pelo processamento do bloco de valores de saida inteiros da representação transformada usando qualquer terceira regra de transformada que também tenha sido usada no meio 102 ou que difira do mesmo e pelo subsequente arredondamento do bloco de valores de saída transformados para obter um bloco de valores de saída transformados arredondados e pela subsequente soma do bloco de valores de saída transformados arredondados e o segundo bloco de valores somados, um outro bloco de valores de saída inteiros da representação transformada pode ser obtido, provendo uma representação transformada completa do primeiro e do segundo blocos de valores discretos com o bloco de valores de saída inteiros aplicado à saída 114.
[000131] Entretanto, mesmo sem as últimas três etapas dè processamento, arredondamento e soma, onde é usado o bloco de valores de saída inteiros da representação transformada na saída 114, parte da representação transformada total jã pode ser obtida, isto é, por exemplo a primeira metade que, quando submetida ao processamento inverso permite um cálculo retroativo do primeiro e do segundo blocos de valores discretos.
[000132] Deve-se notar nesse ponto que, dependendo da regra de transformada, a primeira, a segunda e a terceira regras de transformada, se existirem, podem ser idênticas. Este é o caso, por exemplo, com a DCT-IV. Se for usada uma FFT como primeira regra de transformada, a IFFT, que não é idêntica à FFT, pode ser usada como segunda {inversa) regra de transformada.
[000133] Por razões de cálculo, prefere-se prover a regra de transformada na forma de matriz, que, se o número de valores discretos do primeiro bloco é igual ao número de valores discretos do segundo bloco, trata-se de uma matriz NxN quadrática, se o número de valores discretos do primeiro bloco e o número de valores discretos do segundo bloco, respectívamente, for N.
[000134] Em uma configuração, os meios 104 e 110 para arredondamento sáo formados para arredondar de acordo com uma função de arredondamento que fornece resultados arredondados cuja precisão é menor que uma precisão de máquina inerente a um computador que realiza as funções mostradas na Figura 10a. Com respeito à função de arredondamento, deve ser notado que esta mapeia um número não inteiro até o próximo inteiro maior ou menor somente em uma configuração preferida. A função de arredondamento também pode mapear outros inteiros, por exemplo, o número 17,7 para o número 10 ou para o número 20, enquanto que a função de arredondamento efetua uma redução da precisão do número a ser arredondado. No exemplo acima, o número não arredondado é um número com um digito atrás da vírgula, enquanto o número arredondado é um número que não tem mais um dígito atrás da vírgula.
[000135] Assim, na Figura 10a, o meio 102 para processamento usando a primeira regra de transformada e o meio 108 para processamento usando â segunda regra de transformada são mostrados como meios separados; deve-se notar que, em uma implementação concreta, pode existir somente uma unidade de função transformada que, controlada por um controlador especial de fluxo, primeiro transforma O primeiro bloco de valores discretos e depois inversamente transforma o segundo bloco de valores somados no tempo correspondente do algoritmo. Nesse caso, a primeira e a segunda regra de transformadas seriam idênticas. O mesmo se aplica aos dois meios 104, 110 para arredondamento. Estes também não têm que ser providos como meios separados, mas podem ser implementados por uma unidade de função de arredondamento que, novamente controlada pelo controlador de fluxo, primeiro arredonda o primeiro bloco de valores transformados e depois arredonda O segundo bloco de valores transformados, dependendo dos requisitos do algoritmo.
[000136] Em uma configuração, o primeiro bloco de valores discretos e o segundo bloco de valores discretos são as amostras enquadradas inteiras, uma vez que são obtidas na saída do bloco 28 na Figura 3. A DCT inteira no bloco 14 da Figura 3 é então implementada pelo algoritmo inteiro mostrado· na Figura 1 de modo que a representação transformada no exemplo· do sinal de áudio ao qual a figura 3 refere-se representa os valores espectrais inteiros na saída 30 do dispositivo mostrado na Figura 3.
[000137] Subsequentemente, um meio para a conversão inversa correspondente à Figura 10a é ilustrado em relação à Figura 10b, na qual, além do bloco dos valores inteiros de saída na saída do bloco 112 da Figura 10a, é também utilizado o segundo bloco de valores somados na saída do meio 106 da Figura 10a. Com relação à Figura 11, que será explicada abaixo em maior detalhe, isso corresponde ao caso em que há somente os blocos 150 e 130, porém não o bloco de transformada 124.
[000133] A Figura 10b mostra um dispositivo para converter inversamente um bloco de valores inteiros de saída da representação transformada, conforme obtido na saída 114 da Figura 10a, e o segundo bloco de valores somados. O segundo bloco de valores somados é alimentado a uma entrada 120 do dispositivo para a conversão inversa mostrada na Figura 10b. O bloco de valores de saída da representação transformada é alimentado a outra entrada 122 do dispositivo de conversão inversa.
[000139] 0 segundo bloco de valores somados é alimentado ao meio de processamento 130 desse bloco utilizando a segunda regra de transformação, caso a regra de transformação utilizada pela última vez na codificação tenha sido a segunda regra de transformação, 0 meio 130 provê um primeiro bloco de valores transformados no lado da saída, que é fornecido ao meio de arredondamento 132 que, por sua vez, gera um primeiro bloco de valores transformados arredondados no lado da saída. O primeiro bloco de valores transformados arredondados é então subtraído do bloco· de valores de saída da representação transformada utilizando o meio 134 para obter o primeiro bloco de valores discretos em uma primeira saída 149 do dispositivo da Figura 10b.
[000140] Esse primeiro bloco de valores discretos é fornecido ao meio de processamento 150 desse bloco utilizando a primeira regra de transformação para obter um segundo bloco de valores transformados na saída do meio 150. Esse segundo bloco de valores transformados subtraídos é, por sua vez, arredondado no meio 152 para obter um segundo bloco de valores transformados arredondados. Esse segundo bloco de valores transformados arredondados é subtraído do segundo bloco de valores somados provido no lado da entrada, que foi introduzido pela entrada 120 para obter um segundo bloco de valores discretos em uma saída 136 no lado da saída.
[000141] Com respeito ã relação dá primeira, segunda e terceira regras de transformação e com respeito à implementação especial dos blocos de função individual na Figura 10b por unidades de função comum e um controlador/travamento de fluxo correspondente, vide a discussão apresentada com relação à Figura 10a.
[000142] Subsequentemente, uma configuração preferida do dispositivo de conversão de uma representação transformada geralmente ilustrada na Figura 10a é descrita com relação à Figura 10c. A configuração na Figura 10a inclui outra transformada/arredondamento em comparação ã Figura 10a para gerar o· outro bloco de valores inteiros de saída do segundo bloco de valores somados.
[000143] A primeira entrada 100a inclui N linhas de entrada xq, ..., xN_: para entrar com N valores do primeiro bloco de valores discretos. A segunda entrada 100b também inclui N linhas para entrar com os N valores xN, x-m.......i do segundo bloco de valores discretos. O meio 102 da Figura 10a ê desenhado como transformador DCT-IV na Figura 10c. O transformador DCT 102 é formado para gerar N valores de saída dos N valores de entrada, sendo cada um então arredondado pela regra de arredondamento designada Como "[.]", conforme mostrado pelo meio 104 na Figura 10c. 0 meio de soma 106 é ilustrado de modo que haja uma soma direcionada para valores. Isso significa que o valor de saída do meio 102 com o índice 0 é somado ao primeiro valor do· segundo bloco de valores discretos tendo o índice N. De modo geral, o valor do primeiro bloco de valores transformados arredondados na saída do meio de arredondamento 104 com um número ordinal i é então somado individualmente ao valor discreto do segundo bloco de valores de saída com um número ordinal N+i, onde i é um índice de execução variando de 0 a N-l.
[000144] 0 meio de processamento 108 que utiliza a segunda regra de transformação· é também desenhado como transformador DCT-IV. Ha configuração preferida mostrada na Figura 10c, o meio de subtração 112 é também formado para realizar uma subtração direcionada para valores, isto é, de modo que os valores de saída do arredondador 110, isto é, os valores do segundo bloco de valores transformados arredondados, sejam individualmente subtraídos do primeiro bloco de valores discretos. Na configuração mostrada na Figura 10c, é preferível realizar uma subtração correspondente de modo que um valor do segundo bloco coto ura número ordinal de N + i seja subtraído· de ura valor do primeiro bloco com o número ordinal i, onde i novamente varia de 0 a N-l. Alternativamente, no entanto, podem ser também realizadas outras somas/subtrações, por exemplo, um valor de um bloco com o número ordinal de N-l é subtraído do valor do outro bloco com o número ordinal N, contanto que isto seja consequentemente levado em consideração na conversão inversa.
[000145] 0 meio de subtração 112 já provê um bloco de valores inteiros de saída da representação transformada no lado da saída, isto é, os valores inteiros de saída yo a yH-i da representação transformada. Para obter também os demais valores inteiros de saída da representação transformada, isto é, o outro bloco yN a caso isso seja opcionalmente desejado-, o bloco de valores inteiros de saída da representação transformada aplicado à saída 114 é submetido a uma transformada utilizando a terceira regra de transformação pelo transformador forwárd 140, onde os valores de saída do mesmo- são novamente arredondados, conforme ilustrado pelo meio de arredondamento 142, para agora realizar uma adição desses valores com o segundo bloco de valores somados na saída do somador 106, conforme ilustrado pelo número de referência 144 na Figura 10c. Os valores de saída do somador 144 representam então outro bloco 146 de valores inteiros de saída da representação transformada que são designados como Yti à. Y2N-1* [000146] Subsequentemente, um dispositivo de conversão inversa da representação transformada de acordo com uma confíguração- é discutido com relação à Figura 11. Deve ser observado que as operações realizadas pelo dispositivo ilustrado na Figura 10c são revertidas sem perdas pelo dispositivo- ilustrado na Figura 11. A Figura 11 corresponde à Figura 10b, com exceção do- estágio adicional de transformada/arredondamento para gerar o segundo bloco de valores somados que é alimentado à entrada 120 na conf Íguração- mostrada na Figura 10b a partir do outro bloco de valores de saída transformados. Deve ser observado que a função de adição é revertida pela função de subtração·, respectivamente. Deve ser ainda observado que ura par de somador/subtrator {144 na Figura 10c e 128 na Figura 11) também pode ser provido com as quantidades de entrada invertidas em relação ao sinal, de modo que, se um grupo de quantidades de entrada for provido de um sinal negativo em comparação· ao caso mostrado, o somador 144 então realmente realiza uma operação de subtração, contanto que isso seja levado em consideração na outra parte (128 na Figura 11), o que então realmente realizaria uma operação de adição.
[000147] O subtrator 128 mostrado na Figura 11, o somador 134 e o outro subtrator 154 são novamente formados para realizar uma adição/subtração individual direcionada para valores, onde novamente o mesmo processamento de número ordinal é utilizado conforme descrito com relação à Figura 10c. Se for utilizado outro número ordinal que não aquele utilizado na Figura 10c, este será consequentemente levado em consideração na Figura 11.
[000148] Na saída do subtrator 134, há um primeiro· bloco de valores discretos 136 designado como xo a xN-i. Para também obter o restante da representação retro-transformada, o primeiro bloco de valores discretos é fornecido ao transformador 150 que funciona com a primeira regra de transformação, cujos valores no lado da saída são arredondados pelo arredondador 152 e são subtraídos do segundo bloco de valores subtraídos na saída do subtrator 128 para finalmente também obter o segundo bloco de valores discretos 156 designado como xN, x^-i.
[000149] A seguir, a fundamentação matemática dos dispositivos, uma vez que foram descritos com relação às Figuras 10a, 10b, 10c e 11, será discutida em relação às figuras 12 a 15, Pelo dispositivo· de conversão- e/ou conversão inversa ilustrado, são providos métodos para transformada inteira para uma codificação de áudio- sem perdas nos quais o erro de aproximação é reduzido. Além disso, o esforço de cálculo também é levado em consideração pelo fato de que a abordagem conhecida de aplicação do- esquema de lífting a cada rotação de Givens não é mais usada, onde sempre ocorrem borboletas triviais de soma-diferença. Elas aumentam consideravelmente O esforço de cálculo- em comparação à versão não inteira original da transformada a ser copiada.
[000150] Pormalmente, um esquema de líftíng é utilizado para obter uma aproximação inteira inversível de uma ro-tação- de Givens.
[000151] Essa aproximação inteira é obtida utilizando-se uma função de arredondamento após cada adição, isto é, após cada etapa de lifting.
[000152] O esquema de lifting também pode ser utilizado para uma aproximação inteira inversível de determinadas operações de escala. Na publicação especialista R. Geiger e G. Schuller, "Integer low delay and MDCT filter banks" Proc. of the Asilomar Conf. on Signals, Systems and Computers, 2002, a seguinte decomposição de lifting de uma matriz de escala de 2x2 com um determinante igual a 1 é discutida é descrita: [000153] Essa decomposição de lifting, que é unidiraensional, isto é, que somente refere-se a uma matriz de escala de 2x2, é estendida até o caso multidimensional. Especif icanrtente, todos os valores da equação acima são substituídos por matrizes nxn, onde n, isto é, o número de valores discretos de um bloco, é maior ou igual a 2. Assim, o resultado é que, para qualquer matriz T nxn, que deve ser preferencialmente inver sivel, a seguinte decomposição· em matrizes de bloco de 2n x 2n é possível, onde En descreve a matriz unitária η x n: [ 000154] Além de simples operações, por exemplo, permutações ou multiplicações por -1, os três blocos dessa decomposição possuem a seguinte estrutura geral: [000155] Para essa matriz de bloco de 2n x 2n, um esquema de lifting generalizado pode ser utilizado, o que é subsequentemente também denominado lifting multidimensional.
[000156] Para um vetor dos valores x = (xo, ... , xj^- i), a aplicação desta matriz de bloco provê a seguinte equação: [000157] Deve ser observado que, no lado direito da equação acima, há um vetor cuja dimensão, isto é, cujo número· de linhas, é igual a 2n. Os primeiros n componentes, isto é, os componentes de 0 a n-1, correspondem a xq a xn-i - Os segundos n componentes, isto é, a segunda metade do vetor resultante no lado direito da equação acima, são iguais à soma do segundo bloco de valores discretos, isto é, xri, x2n-i, porém agora somados à multiplicação da matriz A correspondente à matriz de transformada das Figuras 10a, 10b, 10c e 11, e o primeiro bloco de valores discretos x0, xn.......i. A matriz de transformada representa a primeira, a segunda e a terceira regra de transformação, respectivamente.
[000158] Similarmente ao esquema de lifting comum com matrizes de 2 x 2 da forma essas matrizes de 2n x 2n podem ser utilizadas para aproximações inteiras inversíveis da transformada T da seguinte maneira. Para valores inteiros de entrada { xq, ... , X2n-i) t os valores de saída de ponto oscilante {yo, ... , yn*i) = A- (xo, ... / xr._i) são· arredondados, isto é, em valores inteiros, antes de serem adicionados aos valores inteiros (xr,, ... , Xín-i) . 0 inverso da matriz de bloco resulta no seguinte: [000159] Assim, esse processo pode ser invertido sem erro simplesmente utilizando a mesma matriz A e a mesma função de arredondamento·, e dessa vez subtraindo os valores resultantes em vez de adicioná-los no processamento forward. O processamento forward é ilustrado na Figura 13, ao passo que o processamento backward ê ilustrado na Figura 14. Deve ser observado que a matriz de transformada na Figura 13 é idêntica à matriz de transformada na Figura 14, que é preferida pela simplicidade da implementação.
[000160] Uma vez que os valores {x.j, xn-i) não são modificados na etapa forward mostrada na Figura 13, estes ainda estão presentes para a etapa inversa, isto é, para a etapa backward na Figura 14. Deve ser observado que não· há restrições específicas para a matriz A. Portanto, esta nâo tem de ser necessariamente inversível.
[000161] Para obter uma aproximação inteira inversivel da MDCT conhecida, a MDCT é decomposta em rotações de Givens em um primeiro estágio, onde esse estágio é o estágio de janelamemto, e em um estágio DCT-IV subsequente. Essa decomposição é discutida na Figura 3, que será explicada a seguir e descrita em detalhe em DE 10129240 Al.
[000162] Ao contrário da técnica anterior, na qual a DCT-IV é decomposta em vários estágios de rotações de Givens, a transformada propriamente dita permanece inalterada e é subsequentemente arredondada.
[000163] Assim, sabe-se que a aproximação inteira da DCT-IV é realizada por vários estágios de rotações de Givens baseadas no lifting. 0 número de rotações de Givens é determinado pelo algoritmo rápido· subjacente utilizado. Assim, o número de rotações de Givens é dado por 0 (N log N) para uma transformada de comprimento N. G estágio de janelamento de cada decomposição de MDCT consiste somente em N/2 rotações de Givens ou 3N/2 etapas de arredondamento. Assim, particularmente para os grandes comprimentos de transformada, por exemplo, quando são utilizados em aplicações de codificação de áudio (por exemplo 1,024), a aproximação inteira da DCT-IV provê a principal contribuição para o erro de aproximação.
[000164] A abordagem utiliza o esquema de lifting multidimensional descrito. Assim, o número de etapas de arredondamento na DCTtV é reduzido para 3N/2, isto é, fica igual ao número de etapas de arredondamento no estágio de janelamento, isto é, em comparação a aproximadamente 2N logz N etapas de arredondamento na abordagem convencional baseada no lifting.
[000165] A DCT-IV é aplicada a dois blocos de sinais ao mesmo tempo. Uma possibilidade para isto é ilustrada na figura 12, onde, por exemplo, dois blocos de amostras temporalmente sucessivos são simplesmente submetidos a uma DCT-IV. Os dois blocos que são submetidos às duas transformadas também podem ser, no entanto, amostras de dois canais de um sinal de multicanal.
[000166] A decomposição a partir da equação de llftíng multidimensional descrita acima é aplicada à regra de transformação que também pode ser considerada uma matriz de N x N. Como a inversa, particularmente para a DCT-IV, é novamente a DCT-IV, o resultado é a seguinte decomposição para o conceito mostrado na Figura 12: [000167] As permutações das multiplicações por -1 podem ser extraídas em matrizes de bloco distintas, de modo que o resultado seja o seguinte: [000168] Assim, a aplicação de uma transformada a dois blocos de sinais, isto é, a dois blocos de valores discretos, pode ser obtida preferencialmente com três etapas de lifting multidimensional: [000169] A equação acima é graficamente ilustrada na Figura 10c com base em uma configuração. A conversão inversa é correspondentemente ilustrada na Figura 11, conforme discutido.
[000170] Com a abordagem, duas transformadas DCT-IV de comprimento N podem ser implementadas de forma inversível, onde somente 3N etapas de arredondamento são necessárias, isto é, 3N/2 etapas de arredondamento por transformada.
[000171] A DCT-IV nas três etapas de lifting multidimensional pode ter qualquer implementação, por exemplo, uma implementação baseada em ponto oscilante ou baseada em ponto fixo. Esta nem mesmo tem de ser inversível. Deve ser somente realizada exatamente da mesma forma no processo forward e backward. Como resultado, esse conceito é adequado para grandes comprimentos de transformada, por exemplo·, 1.024, uma vez que são utilizados nas atuais aplicações de codificação de áudio.
[000172] A complexidade de computação geral é igual a 1,5 vez a complexidade de computação da implementação não integral das duas transformadas DCT-IV. Essa complexidade de computação é ainda significativamente menor que para as implementações integrais convencionais baseadas em lifting que são aproximadamente duas vezes mais complexas que a DCT- IV convencional, uma vez que essas implementações devem utilizar as borboletas triviais para mais/menos baseadas no esquema de lifting utilizado para atingir a conservação de energia, conforme descrito em R. Geiger, T. Sporer, J. Koller and K. Brandenburg, “"Audio Coding based on Integer Transforme" na 111- Convenção AE5, Nova York, 2001.
[000173] A abordagem ilustrada calculará pelo menos duas transformadas DCT-IV ao mesmo tempo, isto é, dentro de uma conversão. Isso pode ser alcançado, por exemplo, calculando-se a transformada DCT-IV para dois blocos sucessivos do sinal de áudio ou duas imagens sucessivas de um sinal de imagem. No caso de um sinal estéreo de dois canais, isso também pode ser alcançado calculando-se a DCT-IV dos canais esquerdo e direito em uma açâo de conversão e/ou açao de conversão inversa. A primeira versão introduz um retardo adicional de um bloco no sistema. A segunda versão é possível para canais estéreo e/ou, de modo geral, para sinais de múltiplos canais.
[000174] Alternativamente, se ambas as opções não forem desejadas, porém se um comprimento de processamento de bloco normal de N valores precisar ser mantido, a DCT-IV do· comprimento N também pode ser decomposta em. duas transformadas DCT-IV do comprimento N/2. Nesse contexto, vide Y. Zeng, G. Bi and Z. Lin, "Integer sinusoidal transforms based on lifting factorization", in Proc. ICASSP'01, May 2001, ρρ. 1.181 - 1.184, onde essa decomposição é discutida.
Além das duas transformadas DCT de comprimento N/2, vários estágios adicionais de rotações de Givens são necessários. Nesse algoritmo, é ainda aplicada uma matriz de bloco isto é, borboletas N/2 para mais/menos, uma matriz diagonal de bloco com N/2 rotações de Givens e ainda algumas matrizes de permutação. Utilizando esses estágios adicionais de N/2 rotações de Givens, a abordagem de lifting multidimensional também pode ser utilizada para o cálculo de somente uma DCT-IV de comprimento N. A estrutura básica desse algoritmo é ilustrada na Figura 15, onde, além do estágio de conversão real, no qual duas transformadas DCT-IV com comprimento de N/2 são utilizadas, existe um primeiro estágio de borboleta para calcular o primeiro· e o· segundo blocos de valo-res discretos que, no entanto·, somente agora possuem um comprimento de N/2. É ainda provido um estágio de rotação no lado· da saída para obter os valores de saída yo, yN.i a partir do bloco de valores de saída da representação transformada e o outro bloco de valores de saída da representação transformada, que, no entanto, somente agora possuem N/2 valores cada, onde os primeiros são iguais aos valores de saída de uma operação de DCT-IV da Figura 12, conforme fica evidente em uma comparação dos índices no lado da entrada e no lado da saída da Figura 15 e da Figura 12.
[000175] Foi discutida até agora somente a aplicação do lifting multidimensional a matrizes de bloco da seguinte forma. T 0 0 T.1 [000176] Entretanto, é também possível decompor outras matrizes de bloco em etapas de lifting multidiraensional. Por exemplo, a seguinte decomposição pode ser utilizada para implementar a combinação de um estágio com borboletas normalizadas para mais/menos e dois blocos de transformadas DCT-IV por três etapas do lifting multidimensional;
[000177] Fica evidente a partir da equação acima que a primeira regra de transformação, utilizada no colchete esquerdo da equação acima, a segunda regra de transformação, utilizada no colchete central da equação acima e a terceira regra de transformação', utilizada no último colchete da equação acima, não têm de ser idênticas. Além disso, fica evidente a partir da equação acima que não somente as matrizes de bloco nas quais somente os principais elementos diagonais são ocupados podem ser decompostas, mas também que as matrizes totalmente ocupadas podem ser processadas. Deve Ser ainda observado que não há restrição ao fato de que as regras de transformação utilizadas na conversão em uma representação transformada têm de ser idênticas ou mesmo ter qualquer relação entre si, por exemplo, a segunda regra de transformação é a regra de transformação backward em relação à primeira regra de transformação. Basicamente, podem ser também utilizadas três regras de transformação mutuamente diferentes, contanto que isso seja levado em consideração na representação inversa.
[000178] Nesse contexto, faz-se novamente referência às Figuras 10c e 11. Na conversão dos valores discretos em uma representação transformada, o meio 102 pode ser formado· para implementar qualquer regra de transformação 1. Além disso, o meio 108 também pode ser formado para utilizar qualquer outra regra ou a mesma regra de transformação denominada como regra de transformação 2. O meio 140 pode ser ainda formado para geralmente utilizar qualquer regra de transformação 3 que não necessariamente tenha que ser a mesma que a primeira ou a segunda regra de transformação.
[000179] No entanto, na conversão inversa da representação transformada, deve ser encontrada uma adaptação às regras de transformação 1 a 3 discutidas na Figura 10c, de modo que o primeiro meio de conversão 124 não realize qualquer regra de transformação, porém a regra de transformação 3 que foi realizada no bloco 140 da Figura 10c. Consequentemente, o meio 130 na Figura 11 deve realizar a regra de transformação 2 que foi também realizada pelo bloco 108 na Figura 10c. Por fim, o meio 150 da Figura 11 deve realizar a regra de transformação 1 que também foi realizada pelo meio 102 da Figura 10c, de modo que uma conversão inversa sem perdas seja obtida.
[000180] A Figura 16 mostra uma modificação do· conceito descrito na Figura 10c. Em particular, os arredondamentos nos elementos 104, 110, 142 pára a transformada forward ou nos elementos 1Ξ6, 132, 152 na transformada backward não são mais realizados direcionada para amostras, mas sim de modo que haja um formato espectral do erro de arredondamento.
[000181] Ao comparar a Figura 10c com a Figura 16, fica evidente que é preferível substituir somente o bloco 104 pelo bloco 204a e utilizar o bloco 204b em vez do bloco de arredondamento 110. Este é o caso uma vez que o conceito é especialmente vantajoso quando há uma transformação subsequente na faixa de frequência onde o ruído branco do erro de arredondamento é problemático quando nenhum formato· espectral é realizado. Uma vez que não há transformação de frequência após o arredondamento 142, o formato espectral no bloco 142 não mais envolvería a vantagem. No entanto, esse é o caso· do bloco 204a, pois há novamente uma conversão de frequência pela transformada no bloco 108. O formato espectral no bloco 204b é ainda assim também vantajoso, pois há novamente uma transformada pelo último bloco 140. No entanto, como fica evidente a partir da Figura 16, o erro de arredondamento formado pelo ruído já entra no bloco de saída 114, de modo que, no bloco 204b, também já possa ser realizado um arredondamento comum, conforme ilustrado pelos blocos 110 na Figura 10c, em vez do formato espectral do erro· de arredondamento.
[000182] Dependendo de cada caso, será aplicado o arredondamento de formato espectral ou o arredondamento comum, isto é, com um erro de arredondamento tendo uma distribuição espectral branca ao final da segunda transformada, isto é, a transformada 108.
[000183] O arredondamento independente de um determinado número de, por exemplo, k valores, é então substituído pelo arredondamento com formato espectral, que também pode ser denominado “arredondamento dependente"·.
[000184] Fica evidente a partir da discussão acima com referência à Figura 16 que o formato espectral do erro de arredondamento também pode ser utilizado na DCT inteira exigida para a IntMDCT. Entretanto, deve ser aqui considerado, conforme discutido, que o formato espectral por feedback de erro é somente particularmente vantajoso quando· os valores a serem arredondados forem sinais de tempo· que sio transferidos para o domínio de frequência por uma outra etapa de transformação. Portanto, conforme ilustrado com relação à lifting multidimensional da Figura 16, o formato espectral é vantajoso nas primeiras duas etapas, porém não é mais necessariamente vantajoso na terceira etapa, [000185] Deve ser observado que a Figura 16 mostra o caso de um codificador correspondente à Figura 10c. O caso no decodificador correspondente à Figura 16 resulta diretamente de uma comparação da Figura 16 e da Figura 11. O decodificador díretamente correspondente à Figura 16 resulta da Figura 11 era que todos os blocos operam de forma idêntica, com exceção dos dois blocos de arredondamento 132, 152. Na Figura 11, esses dois blocos de arredondamento operam como blocos de arredondamento independentes e seriam substituídos, no decodificador da invenção, pelos blocos de arredondamento dependentes 204a, 204b que possuem a estrutura mostrada na Figura 2c, por exemplo. Em particular, deve ser observado· que exatamente o mesmo algoritmo de arredondamento de formato espectral deve ser utilizado tanto no decodificador como no codificador.
[000186] O conceito ilustrado nas Figuras 2b e 2c, particularmente para H(z) = "-1", é também especíalmente adequado para alcançar uma redução do erro de arredondamento do invento e particularmente uma redução do erro de arredondamento em transformadas inteiras.
[000187] De acordo com a invenção, essa redução do erro de arredondamento é possível sempre que dois valores de ponto oscilante forem arredondados e adicionados ao mesmo valor em vez de valores diferentes. Esse exemplo de situação· é ilustrado ria Figura 17. Aqui, hã primeiro uma primeira etapa de lifting com uma sequência para baixo-para cima-paxa baixo entre os participantes Xi e xj do lifting, Existe ainda uma segunda sequência de lifting com a sequência conhecida para baixo-para cima-para baixo, porém agora com os participantes x2 e x3 do lifting, Em particular, o valor x3 obtido na primeira operação de lifting é utilizado para servir como parceiro de adição na segunda etapa de lifting, como fica evidente a partir da Figura 17. Deve ser novamente observado que, quando uma seta chega em uma linha horizontal, isso representa uma adição. Em outras palavras, um valor que acabou de ser arredondado· é então adicionado ao valox correspondente à linha horizontal.
[000188] Especificamente, no exemplo mostrado na Figura 17, o valor xi é primeiro ponderado (bloco 250) e então individualmente arredondado (bloco 252). O sinal de saída do bloco 252 é adicionado a x3 (bloco 254). Então, o resultado da adição 254 é novamente ponderado (bloco 256) e novamente arredondado (bloco 258). O resultado desse arredondamento 25 8 é agora adicionado a x. (260) . O resultado· da adição- 260 é novamente ponderado (bloco 262) e arredondado (bloco 264) para ser adicionado ao valor atual de x3 (para o bloco 266). Consequentemente, o valor xz é ponderado pelo bloco 270 e é então arredondado pelo bloco 272. 0 resultado do bloco 272 é adicionado (274) ao valor agora atual de x3. Então-, ocorre novamente uma ponderação (276) e arredondamento (278) para adicionar (280) o resultado do bloco 278 novamente ao atual valor de xz. O resultado dessa adição 280 é novamente ponderado (bloco 282) e o resultado ponderado é arredondado (bloco 284) para então adicionar o resultado do· bloco de arredondamento 284 novamente ao valor agora atual de x3 (bloco 286) para obter um valor de resultado para x3. Fica evidente a partir da Figura 17 que primeiramente um primeiro· valor, isto é, o resultado do bloco 262, é arredondado e então adicionado a x3. Além disso, um segundo valor, isto é, o resultado do bloco 270, é também arredondado (bloco 272) e então adicionado ao valor x3 {somador 274) . Assim, há uma situação· em que dois valores de ponto oscilante são arredondados um após o outro e adicionados ao mesmo valor em vez de diferentes valores. No exemplo mostrado na figura 17, o resultado da terceira e quarta etapas de lifting ê adicionado ao mesmo valor, isto é, x3, de modo que a adição seja realizada com a função de arredondamento [.]: [Xl-CSi] + [ X 2 ■ C S 2 ] [000189] Se o erro· da terceira etapa de lifting no arredondamento for alimentado na quarta etapa de lifting, o erro da terceira etapa pode ser utilizado nesse caso e somente um erro de arredondamento é gerado em vez de dois erros de arredondamento. Com relação ao cálculo, esse resulta do seguinte: [Xl·CSi ] + [X2'CS2 + (Xi ·CSl - [Xi* CSl ] ) ] = [ xi - csj. ] + [X2 " cs2 + xi ■ CSi ] _ [ xi ■ CSi ] = [Xj·CS2 + [xt ’ CSi] [000190] Com relação ao cálculo, a alimentação do erro de arredondamento na próxima etapa de arredondamento é então, nesse caso, idêntica a uma adição dos valores e um subsequente arredondamento. Essa situação é ilustrada na Figura 18, onde a Figura 18 corresponde à Figura 17, ao passo que, no entanto, os dois blocos separados de arredondamento 264, 272 e os dois somadores separados 266, 274 são substituídos pelo bloco 268 formado para implementar a equação acima. Portanto, os resultados dos dois blocos 262 e 270 são primeiramente adicionados na forma nâo arredondada e então- arredondados. Em casos favoráveis, o erro de arredondamento é dividido pela metade. Na saída do bloco 268, resulta agora somente ura único valor que é adicionado a xi por um somador 269.
[000191] Uma combinação de redução e formatação do erro- de arredondamento também pode ocorrer, por exemplo, quando um conjunto de rotações de Givens e uma etapa multidímensíonal de lifting seguem um ao outro, conforme ilustrado na Figura 19. Aqui, somente por meio de exemplo, a última etapa de uma sequência para baixo-para cima-para baixo para diversos valores é formada de valores xi a x*i, isto é, por exemplo, a etapa para baixo 31c da Figura 9. Esses valores devem ser agora adicionados aos valores correspondentes, aos quais também os valores arredondados na Figura 16, isto é, os valores na saída do bloco 204a, devem ser adicionados. Nesse caso, é preferido adicionar os valores não arredondados primeiro, isto é, pelos somadores 203 mostrados na Figura 19, para então arredondar os valores adicionados no bloco 204 na Figura 19 e simultaneamente submetê-los à formação de ruido de modo que, então, somente um simples erro de arredondamento seja obtido e os valores de saida após a adição pelos somadores 106 contenham menos erro·, A situação mostrada na Figura 19 resulta então quando a Figura 9 é colocada à esquerda da Figura 16 e particularmente quando um valor N/2 DCT-IV é utilizado em vez de um valor N DCT-1V.
[000192] De acordo com a invenção, é então preferido· combinar a redução do erro de arredondamento com a formatação do erro de arredondamento. No caso da redução do erro de arredondamento, diversos valores de entrada são então processados e arredondados juntos, onde os valores arredondados são adicionados a um valor, ao passo que, no caso· do formato espectral do erro de arredondamento, os valores arredondados são arredondados independentemente um do outro- e são adicionados a diversos outros valores respectivamente diferentes, [000193] É ainda observado· que a situação na Figura 19 também pode ocorrer quando, conforme ilustrado na Figura 15, N/2 DCTs são utilizadas. Aqui, antes do estágio de conversão, isto· é, antes dos dois blocos DCT, há um estágio denominado estágio de borboleta na Figura 15 no qual os valores de entrada x<j a xn/2-i são correspondentemente ponderados e arredondados para serem então adicionados aos mesmos valores aos quais os valores de um estágio DCT-IV também são adicionados. Deve ser ainda observado que o estágio de conversão- na Figura 15 é ilustrado somente esquematicamente. Os dois blocos DCT-IV ilustrados esquematicamente na Figura 15 seriam substituídos pelos componentes mostrados na Figura 16 em uma implementação prática, se, na Figura 16, xn/z-i estivesse escrito em vez de xM_i, se [SIC1 estivesse escrito em vez de xM/2 e se xN_i estivesse escrito em vez de χΝ,·2-ι.
[000194] Assim, a Figura 19 mostra uma implementação particularmente preferida para aplicações únicas, isto é, para o caso em que uma N/2 DCT-IV precisar ser utilizada.
[000195] Dependendo das circunstâncias, o método da invenção- para arredondamento pode ser implementado em hardware ou em software. A implementação pode ser realizada em um meio de armazenamento digital, particularmente um disco flexível ou CD com sinais de controle que podem ser lidos eletronicamente, que podem cooperar com um sistema de computador programável de modo que o método seja aplicado-. De modo geral, a invenção também consiste em um programa de computador com um código de programa para aplicar o método da invenção armazenado em um meio que pode ser lido por um equipamento quando o programa é executado era um computador. Em outras palavras, a invenção- é também, portanto, um programa de computador com um código de programa para aplicar o método quando o programa é executado em um computador.
REIVINDICAÇÕES

Claims (11)

1. Dispositivo para o processamento de pelo menos dois valores de entrada, compreendendo: meios (202; 250, 2 52, 254, 256, 258, 260, 262) para a provisão de um primeiro valor de entrada não inteiro e um segundo valor de entrada não inteiro, caracterizado pelo fato de que os meios para o provimento são projetados para pesar um primeiro valor original para obter o primeiro valor de entrada e para calcular o segundo valor de entrada por uma transformada de uma sequência dos valores originais de entrada, ao qual pertence o primeiro valor original (xi), ou gerar o primeiro valor de entrada a partir de um primeiro valor originai e um terceiro valor (x3) por uma primeira e uma segunda etapa de lifting e uma pesagera subsequente (262), e para gerar o segundo valor de entrada pela pesagem (270) de um segundo valor de entrada original (xz) ; e meio (268) para combinar o primeiro valor de entrada e o segundo valor de entrada para obter um valor de resultado não inteiro e para arredondar o valor do resultado para obter um valor de resultado arredondado,
2. Dispositivo de acordo com a reivindicação 1, caracterizado pelo fato de que os meios para combinação são projetados para formar uma soma ou uma diferença.
3. Dispositivo de acordo com as reivindicações 1 ou 2, caracterizado pelo fato de que o primeiro e o segundo valores de entrada sâo valores discretos incluindo informações de áudio e/ou video,
4. Dispositivo de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que: meio {269) para o acoplamento do valor do resultado a um terceiro valor de entrada para a obtenção de um valor de saída,
5. Dispositivo de acordo com a reivindicação 4, caracterizado pelo fato de que os meios (269; 104) para acoplamento são projetados como somadores ou subtratores,
6. Dispositivo de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que o terceiro valor de entrada é um valor de entrada inteiro, de maneira que o valor de salda seja também um valor inteiro,
7. Dispositivo de acordo com a reivindicação 1, caracterizado pelo fato de ser projetado ainda para somar um valor de resultado inteiro a ura terceiro valor de entrada modificado por uma operação de lifting e para realizar uma segunda e uma terceira etapas de lifting de uma rotação com o terceiro valor de entrada modificado por uma operação de lifting e o segundo valor de entrada,
8. Dispositivo de acordo cora a reivindicação 1, incluindo ainda o meio (106) para somar o valor de entrada inteiro a um outro valor de entrada que é parte de uma sequência que foi processada por uma primeira regra de transformada (102) para obter um valor de uma outra sequência que deve ser processada por uma segunda regra de transformada, caracterizado pelo fato de que a primeira regra de transformada e a segunda regra de transformada são regras de transformada que definem uma primeira e uma segunda etapas de líftíng multidímensionais.
9. Método para o processamento de pelo menos dois valores de entrada, compreendendo: prover (202; 250, 252, 254, 256, 258, 260, 262) um primeiro valor de entrada não inteiro e um Segundo valor de entrada não inteiro, caracterízado pelo fato de que a etapa de provimento compreende a pesagem de um primeiro· valor original para obter um primeiro valor de entrada e calcular o segundo valor de entrada por uma transformada a partir de uma sequência dos valores originais de entrada, à qual pertence o primeiro valor original (xi), e combinar (268) o primeiro valor de entrada e o segundo valor de entrada para obter um valor de resultado não inteiro, e arredondar o valor do resultado para obter um valor de resultado arredondado.
10. Método para o processamento de pelo menos dois valores de entrada, compreendendo: prover (202; 250, 252, 254, 256, 258, 260, 262) um primeiro valor de entrada não inteiro e um Segundo valor de entrada não inteiro, caracterízado pelo fato de que a etapa de provimento compreende a geração de um primeiro valor de entrada a partir de um primeiro valor original e um terceiro valor (χ3) por uma primeira e uma segunda etapas de lifting e uma pesagem subsequente (262) e a geração do segundo valor de entrada pela pesagem (270) de um segundo valor original de entrada (X2) ; è combinar (268) o· primeiro valor de entrada e o segundo valor de entrada para obter um valor de resultado nâo inteiro, e arredondar o valor do resultado para obter um valor de resultado arredondado.
11. Método conforme a reivindicação 9 ou 10, caracterizado pelo fato de que, após a etapa de combinação, é realizada a seguinte etapa: acoplamento (269) do valor do resultado a um terceiro valor de entrada inteiro para obter um valor de saida inteiro.
BRPI0415152A 2003-10-02 2004-09-28 dispositivo e método para o processamento de pelo menos dois valores de entrada BRPI0415152B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10345996A DE10345996A1 (de) 2003-10-02 2003-10-02 Vorrichtung und Verfahren zum Verarbeiten von wenigstens zwei Eingangswerten
PCT/EP2004/010855 WO2005033965A1 (de) 2003-10-02 2004-09-28 Vorrichtung und verfahren zum verarbeiten von wenigstens zwei eingangswerten

Publications (2)

Publication Number Publication Date
BRPI0415152A BRPI0415152A (pt) 2006-11-28
BRPI0415152B1 true BRPI0415152B1 (pt) 2017-03-07

Family

ID=34399212

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0415152A BRPI0415152B1 (pt) 2003-10-02 2004-09-28 dispositivo e método para o processamento de pelo menos dois valores de entrada

Country Status (16)

Country Link
US (1) US7873227B2 (pt)
EP (1) EP1654674B1 (pt)
JP (1) JP4328805B2 (pt)
KR (1) KR100804053B1 (pt)
CN (1) CN100435137C (pt)
AT (1) ATE364206T1 (pt)
AU (1) AU2004278829B2 (pt)
BR (1) BRPI0415152B1 (pt)
CA (1) CA2540581C (pt)
DE (2) DE10345996A1 (pt)
DK (1) DK1654674T3 (pt)
HK (1) HK1086367A1 (pt)
IL (1) IL174318A (pt)
NO (1) NO334930B1 (pt)
RU (1) RU2323469C2 (pt)
WO (1) WO2005033965A1 (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214200B2 (en) * 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
EP2063417A1 (en) 2007-11-23 2009-05-27 Deutsche Thomson OHG Rounding noise shaping for integer transform based encoding and decoding
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
RU2515704C2 (ru) 2008-07-11 2014-05-20 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Аудиокодер и аудиодекодер для кодирования и декодирования отсчетов аудиосигнала
CA2989886C (en) 2008-12-15 2020-05-05 Frederik Nagel Audio encoder and bandwidth extension decoder
RU2523035C2 (ru) * 2008-12-15 2014-07-20 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Аудио кодер и декодер, увеличивающий полосу частот
RU2557455C2 (ru) * 2009-06-23 2015-07-20 Войсэйдж Корпорейшн Прямая компенсация наложения спектров во временной области с применением в области взвешенного или исходного сигнала
WO2011036220A1 (en) 2009-09-25 2011-03-31 Glaxosmithkline Biologicals S.A. Immunodiffusion assay for influenza virus
EP2524374B1 (en) 2010-01-13 2018-10-31 Voiceage Corporation Audio decoding with forward time-domain aliasing cancellation using linear-predictive filtering
WO2012070866A2 (ko) * 2010-11-24 2012-05-31 엘지전자 주식회사 스피치 시그널 부호화 방법 및 복호화 방법
ES2529025T3 (es) 2011-02-14 2015-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para procesar una señal de audio decodificada en un dominio espectral
TWI488177B (zh) 2011-02-14 2015-06-11 Fraunhofer Ges Forschung 使用頻譜域雜訊整形之基於線性預測的編碼方案
SG185519A1 (en) * 2011-02-14 2012-12-28 Fraunhofer Ges Forschung Information signal representation using lapped transform
MX2013009304A (es) 2011-02-14 2013-10-03 Fraunhofer Ges Forschung Aparato y metodo para codificar una porcion de una señal de audio utilizando deteccion de un transiente y resultado de calidad.
ES2639646T3 (es) 2011-02-14 2017-10-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
TWI480860B (zh) 2011-03-18 2015-04-11 Fraunhofer Ges Forschung 音訊編碼中之訊框元件長度傳輸技術
WO2012137617A1 (ja) * 2011-04-05 2012-10-11 日本電信電話株式会社 符号化方法、復号方法、符号化装置、復号装置、プログラム、記録媒体
ES2634621T3 (es) * 2013-02-20 2017-09-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y procedimiento para generar una señal de audio o imagen codificada o para descodificar una señal de audio o imagen codificada en presencia de transitorios utilizando una parte de superposición múltiple
EP2830065A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
US9094033B1 (en) 2015-01-23 2015-07-28 Pmc-Sierra Us, Inc. Quantization noise-shaping device
KR20190039562A (ko) * 2016-09-01 2019-04-12 엘지전자 주식회사 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
CN109408427B (zh) * 2017-08-18 2021-01-22 龙芯中科技术股份有限公司 一种跨时钟域数据处理方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757659B1 (en) * 1998-11-16 2004-06-29 Victor Company Of Japan, Ltd. Audio signal processing apparatus
DE10129240A1 (de) 2001-06-18 2003-01-02 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verarbeiten von zeitdiskreten Audio-Abtastwerten
JP2003108248A (ja) * 2001-09-27 2003-04-11 Alpine Electronics Inc 操作装置
US7076108B2 (en) * 2001-12-11 2006-07-11 Gen Dow Huang Apparatus and method for image/video compression using discrete wavelet transform
CN1154084C (zh) * 2002-06-05 2004-06-16 北京阜国数字技术有限公司 一种基于伪小波滤波的音频编/解码方法
MXPA06003508A (es) * 2003-09-29 2007-01-25 Agency Science Tech & Res Metodo para transformar una senal digital del dominio de tiempo al dominio de frecuencia y viceversa.
DE10345995B4 (de) 2003-10-02 2005-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten

Also Published As

Publication number Publication date
AU2004278829A1 (en) 2005-04-14
RU2006110319A (ru) 2007-10-20
WO2005033965A1 (de) 2005-04-14
CA2540581A1 (en) 2005-04-14
BRPI0415152A (pt) 2006-11-28
CN1864158A (zh) 2006-11-15
NO334930B1 (no) 2014-07-14
CN100435137C (zh) 2008-11-19
DK1654674T3 (da) 2007-10-08
JP2007508605A (ja) 2007-04-05
KR20060071425A (ko) 2006-06-26
DE10345996A1 (de) 2005-04-28
US20070196022A1 (en) 2007-08-23
CA2540581C (en) 2012-11-27
AU2004278829B2 (en) 2008-04-24
JP4328805B2 (ja) 2009-09-09
KR100804053B1 (ko) 2008-02-18
US7873227B2 (en) 2011-01-18
IL174318A0 (en) 2006-08-01
RU2323469C2 (ru) 2008-04-27
EP1654674B1 (de) 2007-06-06
ATE364206T1 (de) 2007-06-15
EP1654674A1 (de) 2006-05-10
DE502004004043D1 (de) 2007-07-19
HK1086367A1 (en) 2006-09-15
NO20061450L (no) 2006-06-14
IL174318A (en) 2010-11-30

Similar Documents

Publication Publication Date Title
BRPI0415152B1 (pt) dispositivo e método para o processamento de pelo menos dois valores de entrada
US7917564B2 (en) Device and method for processing a signal having a sequence of discrete values
KR101226094B1 (ko) 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 고속 알고리즘들
US8195730B2 (en) Apparatus and method for conversion into a transformed representation or for inverse conversion of the transformed representation
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
MXPA06003309A (en) Device and method for processing at least two input values
RU2464540C2 (ru) Быстрые алгоритмы для вычисления 5-точечного dct-ii, dct-iv и dst-iv, и архитектуры

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06F 17/14 , G06T 9/00 , G10L 19/02

Ipc: G06F 17/14 (2006.01), G10L 19/02 (2013.01), H04N 1

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]