BRPI0706474A2 - transformadas com fatores comuns - Google Patents

transformadas com fatores comuns Download PDF

Info

Publication number
BRPI0706474A2
BRPI0706474A2 BRPI0706474-8A BRPI0706474A BRPI0706474A2 BR PI0706474 A2 BRPI0706474 A2 BR PI0706474A2 BR PI0706474 A BRPI0706474 A BR PI0706474A BR PI0706474 A2 BRPI0706474 A2 BR PI0706474A2
Authority
BR
Brazil
Prior art keywords
group
constant
dyadic
rational
value
Prior art date
Application number
BRPI0706474-8A
Other languages
English (en)
Inventor
Yuriy Reznik
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0706474A2 publication Critical patent/BRPI0706474A2/pt

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4836Computations with rational numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

TRANSFORMADAS COM FATORES COMUNS São descritas técnicas para efetuar transfcrrnadassobre dados de modo eficiente. Em um esquemi. um equipamento efetua a multiplicaçao de um primeiro grupo de pelo menos um valor de didos por um primeiro grupo de pelo menos uma constante racional diádica que se aproxima de um primeiro grupo de pelo menos uma constante irracional escalonada por um primeiro fator comum. O equipamento efetua adicionalmente a multiplicação de um segundo grupo de pelo menos um valor :e dados por um segundo grupo de pelo menos uma constante racional diádica que se ap:xiraade um segundo grupo de pelo menos uma constante irracional escalonada por um segundo fator comum. Cada constante diádica racional consiste de um número racional com um denominador diádico. Os primeiro e segundo grupos de pelo menos um valor de dados possuem tamanhos diferentes. o primeiro fator e o fator comum podem ser selecionados com base no número de operações lógicas e aritméticas para as multiplicações, na precisão dos resultados, etc.

Description

TRANSFORMADAS COM FATORES COMUNS
I.Reivindicação de prioridade de acordo com 35 U.S.C.§ 119.
0 presente pedido de patente reivindica aprioridade do Pedido Provisório de Patente U.S. N- de Série60/758.4 64, intitulado "EFFICIENT MULTIPLICATION--FREEIMPLEMENTATIONS OF SCALliD DISCRETE COSINE T RAN S FORM (DCT)AND INVERSE DISCRET COSIN-E-TRANSFORM (IDCT)", em nome daRequerente da presente invenção e aqui expressamenteincorporado pela presente referência.
Antecedentes
II. Campo
A presente invenção está de um modo geralrelacionada ao processamento e mais especificamente atécnicas para efetuar transformadas sobre dados.
III. Antecedentes
As transformadas são comumente usadas para aconversão de dados de um domínio para outro domínio. Comoexemplo, a transformada de co-seno individual (DCT) écomumente usada para transformar dados do domínio espacialpara o domínio das freqüências, e a transformada de co-senoindividual inversa (IDCT) é comumente usada paratransformar dados do domínio das freqüências para o domínioespacial. A DCT é amplamente usada para compressão deimagem e vídeo para blocos espacialmente nãocorrelacionados de elementos de imagem (pixels) em quadrosde vídeo ou imagens. Os coeficientes de transformadaresultantes são tipicamente muito menos dependentes uns dosoutros, o que torna tais coeficientes mais adequados paraquantificação e codificação. A DCT também apresenca apropriedade de compactação de energia, que consiste dacapacidade de mapear a maior parte da energia de um blocode pixels para apenas alguns poucos coeficientes detransformada (tipicamente de baixa ordem). Tal propriedadede compactação de energia pode simplificar o projeto dealgoritmos de codificação.
As transformadas, tais como a DCT e a IDCT podemser efetuadas sobre grande quantidade de dados. Portanto, édesejável efetuar as transformadas tão eficientementequanto possível. Além disso, é desejável efetuar acomputação para transformadas usando-se hardware simples,de modo a reduzir o custo~e a complexidade.
Existe, portanto, uma demanda na área portécnicas para efetuar eficientemente transformadas sobredados.
Resumo
São aqui descritas técnicas para efetuareficientemente transformadas sobre dados. De acordo com umamodalidade, um equipamer.to efetua a multiplicação de umprimeiro grupo de pelo ..rtenos um valor de dados per umprimeiro grupo de pelo menos uma constante racional diádicaque se aproxima de um primeiro grupo de pelo menos umaconstante irracional escalonada por um primeiro fatorcomum. O equipamento adicionalmente efetua a multiplicaçãode um segundo grupo de pelo menos um valor de dados por umsegundo grupo de pelo meros uma constante racional diádicaque se aproxima de um segundo grupo de pelo menos umaconstante irracional escalonada por um segundo fator comum.
Cada constante racional diádica é um número racional com umdenominador diádico. Os primeiro e segundo grupos de pelomenos um valor de dados possuem tamanhos diferentes. Comoexemplo, o primeiro grupo pode incluir dois valores dedados e o segundo grupo pode incluir quatro valores dedados.
De acordo com outra modalidade, um equipamentoefetua a multiplicação de pelo menos um valor de dados porpelo menos uma constante racional diádica que se aproximade pelo menos uma constante irracional escalonada por umfator comum. O fator comum é selecionado com base no númerode operações lógicas e aritméticas para a multiplicação depelo menos um valor de dados por pelo menos uma constanteracional diádica. As operações lógicas e aritméticas podemconsistir de operações de deslocamento, subtração e adição.Os fatores comuns podem ser selecionados adicionalmente combase na precisão dos resultados.
Várias modalidades e características da invençãoserão descritas em maiores detalhes mais adiante.
Breve Descrição dos Desenhos
A Figura 1 apresenta um gráfico de fluxo de umaIDCT de 8 pontos.
A Figura 2 aprssenta um gráfico de fluxo de umaDCT de 8 pontos.
A Figura 3 apresenta um gráfico de fluxo de umaIDCT de 8 pontos com fatores comuns.
A Figura 4 apresenta um gráfico de fluxo de umaDCT de 8 pontos com fatores comuns.
A Figura 5 apresenta uma tabela de consultaarmazenando os números d€: operações para multiplicação pordiferentes valores de constantes racionais diádicas.
A Figura 6 apresenta um diagrama de blocos de umaIDCT bidimensional (2D).
A Figura 7 apresenta um diagrama de blocos de umsistema de codificação/deoodificação de imagem/vídeo.
A Figura 8 apresenta um diagrama de blocos de umsistema de codificação.
A Figura 9 apresenta um diagrama de blocos de umsistema de decodificação.
Descrição Detalhada
As técnicas aqui descritas podem ser usadas paravários tipos de transf :rmadas, tais como DCT, IDCT,transformada de Fourier individual (DFT), DFT inversa(IDFT), transformada modulada convolucionada (MLT), MLTinversa, transformada modulada convolucionada complexa(MCLT), MCLT inversa, etc. As técnicas podem também serusadas para várias aplicações, tais como processamento deimagem, video e áudio, comunicações, computação, trabalhoem rede de dados, armazenamento de dados, gráficos, etc. Deum modo geral, as técnicas podem ser usadas para qualqueraplicação que utilize ume. transformada. Para maior clareza,as técnicas serão a seguir descritas para DCT e IDCT, asquais são comumente usadas no processamento de imagens evideo.
Uma DCT de N pontos unidimensional (ID) e umaIDCT de N pontos ID do t;.po II podem ser definidas coiao sesegue:
<formula>formula see original document page 5</formula>
x[n] é uma função ID no domínio espacial; eX[k] é uma função ID no domínio das freqüências.
A DCT ID na equH.ção (1) opera sobre N valores nodomínio espacial, x[0] a x[N-l] e gera N coeficientes detransformada X[0] a X[N-1]. A IDCT ID na equação (2) operasobre N coeficientes de transformada e gera N valores nodomínio espacial. A DCT do tipo II é um tipo detransformada e é comumente considerada como sendo uma dastransformadas mais eficiertes entre várias transformadas decompactação de energia propostas para compressão deimagens/vídeo.
A DCT ID pode ser usada para uma DCT 2D, tal comodescrito a seguir. De forma similar, a IDCT ID pode serusada para uma IDCT 2D. Pela decomposição da DCT/IDCT 2D emuma cascata de DCT' s/IDCT' s 1D, a eficiência da DCT/IDCT 2Dfica dependente da eficiência da DCT/IDCT ID. De um modogeral, a DCT ID e a IDCT ID podem ser efetuadas sobrequalquer tamanho de vetor e a DCT 2D e IDCT 2D podem serefetuadas sobre qualquer tamanho de bloco. No entanto, aDCT 8x8 e a IDCT são comumente usadas paraprocessamento de imagens e video, em que N é igual a 8.Como exemplo, DCT 8x8 e IDCT' 8x8 são usadas como blocos demontagem padrão em várias normas de codificação de imagense video, tais como a JPEG, MPEG-1, MPEG-2, MPEG-4 (P.2),H.261, H.263, etc.
A DCT ID e a IDCT ID podem ser implementadas emsuas formas originais apresentadas nas equações (1) e (2),respectivamente. No entanto, pode ser obtida uma reduçãosubstancial da complexidade de computação encontrando-sefatorializações que resultem em tão poucas multiplicações eadições, quanto possível. Uma fatorialização para umatransformada pode ser representada por um gráfico de fluxoque indique operações especificas a serem efetuadas paratal transformada.
A Figura 1 apresenta um gráfico de fluxo 100 deum exemplo de fatorialização de uma IDCT de 8 pontos. Nográfico de fluxo 100, cada adição é representada pelosímbolo e cada multiplicação é representada por umacaixa. Cada adição soma ou subtrai dois valores dealimentação e provê um vé.lor de saída. Cada multiplicaçãomultiplica um valor de a-.limentação por uma constante detransformada apresentada no interior da caixa e provê umvalor de saída. A fatorialização na Figura 1 possui seismultiplicações com os seguintes fatores de constante:<formula>formula see original document page 7</formula>
O gráfico de fluxo 100 recebe oito coeficientesde transformada escalonados A0.X[0] a A7.X[7], efetua umaIDCT de 8 pontos sobre tais coeficientes e gera oitoamostras de saida x[0] a χ [7]. A0 a A7 são fatores deescala como se segue:
<formula>formula see original document page 7</formula>
O gráfico de fluxo 100 inclui um certo número deoperações "borboleta". Uma operação borboleta recebe doisvalores de alimentação e gera dois valores de saida, em queum valor de saida é a son.a dos dois valores de alimentaçãoe o outro valor de saida é a diferença dos dois valores dealimentação. Como exemplo, a operação borboleta sobre osvalores de alimentação A0-X [0] e A4.X [4] gera um valor desaida Ao-X [0]+A4-X [4] para o ramo superior e um valor desaida A0-X [0]-A4-X [4] para o ramo inferior.
A Figura 2 apresenta um gráfico de fluxo 200 deum exemplo de f atorializ íção de uma DCT de 8 pontos. 0gráfico de fluxo 200 recebe oito amostras de alimentação,x[0] a x[7], efetua uma DCT de 8 pontos sobre tais amostrasde alimentação e gera oito coeficientes de transformadaescalonados 8A0.X[0] a 8A7.X[7]. Os fatores de escala Ao aA7 foram apresentados acima. A fatorialização na Figura 2possui seis multiplicações com os fatores constante :<formula>formula see original document page 8</formula>
Os gráficos ce fluxo para as . IDCT e DCT nasFiguras 1 e 2 são similares e envolvem multiplicaçõesessencialmente pelos mesmos fatores constantes (com adiferença de 1/2). Tal similaridade pode ser vantajosa paraa implementação da DCT e IDCT em um circuito integrado. Emparticular, a similaridade pode permitir economias desilício ou área de matrir: para implementação das borboletase as multiplicações por constantes de transformada, asquais são usadas tanto nas transformadas diretas como nasinversas.
A fatorialização apresentada na Figura 1 resultaem um total de 6 multiplicações e 28 adições, que sãosubstancialmente menores do que o número de multiplicaçõese adições necessárias para a computação direta da equação(2) . A fatorialização apresentada na Figura 2 tambémresulta em um total de 6 multiplicações e 28 adições, asquais são em número substancialmente menor do que o númerode multiplicações e adio:es necessárias para a computaçãodireta da equação (1) . A fatorialização na Figura 1 efetuaa rotação planar sobre duas variáveis intermediárias com03π/8 e S3n/8. A fatorialização na Figura 2 efetua a rotaçãoplanar sobre duas variáveis intermediárias com 2C3jt/8 e2S 3π/β · Uma rotação planar β obtida por multiplicação de· umavariável intermediária p:r seno e co-seno, por exemplo,cos(3n/8) e sen(3^8) na I1Igura 1. As multiplicações para arotação planar podem ser eficientemente efetuadas usando-seas técnicas de computação descritas a seguir.
As Figuras 1 e 2 apresentam exemplos defatorializações de uma IDCT de 8 pontos e uma DCT de 8pontos, respectivamente. Estas fatorializações são paraIDCT escalonada e DCT escalonada, em que o termo"escalonada" se refere ao escalonamento dos coeficientes detransformada X[0] a X[7], por fatores de escala conhecidos,Ao a A7, respectivamente. Outras fatorializações ::ambémforam derivadas pelo uso de mapeamentos para outrosalgoritmos rápidos, tais como o algoritmo Cooley-Tukey DFT,ou pela aplicação de procedimentos de fatorializaçãosistemática, tais como de decimalização no tempo oudecimalização em freqüência. De um modo geral, afatorialização reduz o número de multiplicações, porém nãoas elimina.
As multiplicações nas Figuras 1 e 2 são porconstantes irracionais representando o seno e o co-seno dediferentes ângulos, que são múltiplos de π/8 para a DCT eIDCT de 8 pontos. Uma constante irracional é uma constanteque não é uma razão de dois · números inteiros. Asmultiplicações por constantes irracionais podem ser maiseficientemente efetuadas por aritmética de números inteirosde virgula fixa quando cada constante irracional éaproximada por uma constante racional diádica. Umaconstante racional diádica é uma constante racional com umdenominador diádico e possui a forma c/2b, em que b e c sãonúmeros inteiros e b > O . A multiplicação de uma variávelinteira por uma constante racional diádica pode serconseguida por operações lógicas e aritméticas, tal comodescrito a seguir. O número de operações lógicas earitméticas depende da maneira pela qual a computação éefetuada, bem como do valor da constante racional diádica.
Em uma modalidace, são usados fatores comuns oarareduzir o número total de operações para uma transformadae/ou para melhorar a precisão dos resultados datransformada. Um fator comum é uma constante que é aplicadaa uma ou mais variáveis intermediárias em uma transformada.Uma variável intermediária pode também ser designada comoum valor de dados, etc. IJm fator comum pode ser absorvidocom uma ou mais constarntes de transformada e pode tambémser compensado pela alteração de um ou mais fatores deescala. Um fator comum pode melhorar a aproximação de umaou mais constantes de transformada (irracionais) por uma oumais constantes racionais diádicas, as quais podem, então,resultar em um menor número total de operações e/ou melhorprecisão.
De um modo ger=;l, pode ser usado qualquer númerode fatores comuns para urna transformada, cada fator comumpode ser aplicado a qualquer número de variáveisintermediárias na transformada. Em um esquema, múltiplosfatores comuns são usados para uma transformada e sãoaplicados a múltiplos grupos de variáveis intermediárias dediferentes tamanhos. Err. outro esquema, múltiplos fatorescomuns são aplicados a múltiplos grupos de variáveisintermediárias do mesmo tamanho.
A Figura 3 apresenta um gráfico de fluxo 300 deuma IDCT de 8 pontos com feitores comuns. 0 gráfico de fluxo300 usa a mesma fatorialitação que o gráfico de fluxo 100na Figura 1. No entanto, o gráfico de fluxo 300 usa doisfatores comuns para dois grupos de variáveisintermediárias.
Um primeiro fator comum Fi é aplicado a umprimeiro grupo de duas variáveis intermediárias Xi e X2,que são geradas com base r.os coeficientes de transformadaX [2] e X[6]. 0 primeiro fator comum Fi é multiplicado porXi, é absorvido com a constante de transformada Cjl74 e écompensado por alteração dos fatores de escala A2 e A6. Umsegundo fator comum F2 é aplicado a um segundo grupo dequatro variáveis intermediárias X3 a X6, que é gerado combase nos coeficientes de cransformada X[l], X[3], X[5; eX [7]. 0 segundo fator cc-vr.um F2 é multiplicado por X4, éabsorvido com as constantes de transformada CjtZ4, CiltZg eS3n/8 e é compensado por alteração dos fatores de escala Ai,A3, A5 e A7.
O primeiro fator comum Fi pode ser aproximado poruma constante racional. diádica αχ, que pode sermultiplicada por Xi para obter uma aproximação do produtoX1. F1- Um fator de transformada escalonado F1-C7tZ4 pode seraproximado por uma constante racional diádica βι, que podeser multiplicada por X2 para obter uma aproximação doproduto X2-Fi-C11Z4. Um facor de escala alterado A2/Fi podeser aplicado ao coeficiente de transformada X[2], Um fatorde escala alterado A6/Fi pode ser aplicado ao coeficientede transformada X[6].
O segundo fator comum F2 pode ser aproximado comuma constante racional diádica a2, que pode sermultiplicada por X4 para obter uma aproximação do produtoX4-F2- Um fator de transformada escalonado F2.C7tZi pode seraproximado com uma constante racional diádica β2, que podeser multiplicada por X3 para obter uma aproximação doproduto X3-F2-CnZ4. Um fator de transformada escalonadoF2 • C37tZs pode ser aproximado com uma constante racionaldiádica γ2, e um fator ζ a transformada escalonado F2-S3ltZepode ser aproximado com uma constante racional diádica δ2.A constante racional diádica γ2 pode ser multiplicada por X5para obter uma aproximação do produto X5-F2-C37tZa e tambémpor X6 para obter uma aproximação do produto X6.F2.C3n/8. Aconstante racional diádic= δ2 pode ser multiplicada por X5para obter uma aproximação do produto X5.F2.S3jtz8 e tambémpor X6 para obter uma aproximação do produto X6. F2-S3ltZs- Osfatores de escala alterados Ai/F2, A3/F2, A5/F2 e A7/F2 podemser aplicados aos coeficientes de transformada X[l], X[3],X[5] e X[7], respectivamente.Seis constantes racionais diádicas αχ, βχ, α2, β2,γ2 e δ2 podem ser definidas para seis constantes, como sesegue:
ctttPtr ^tejJyoosiar/-4*, Ec <3>
A Figura 4 apresenta um gráfico de fluxo 400 deuma DCT de 8 pontos com fatores comuns. 0 gráfico de fluxo400 usa a mesma fatorialização que o gráfico de fluxo 200na Figura 2. No entanto, o gráfico de fluxo 400 usa doisfatores comuns para dois grupos de variáveisintermediárias.
Um primeiro fator comum Fa é aplicado a umprimeiro grupo de duas variáveis intermediárias Xa e Xb,que são usadas para gerar os coeficientes de transformadaX[2] e X[6]. 0 primeiro fator comum Fa é multiplicado porXa/ é absorvido com a co.-.stante de transformada 1/0Λ/μ e écompensado por alteração dos fatores de escala A2 e A6. Umsegundo fator comum Fb é aplicado a um segundo grupo dequatro variáveis intermediárias Xc a Xf/ que é usado paragerar os coeficientes de transformada X[l], X[3], X[5] eX[7] . 0 segundo fator comum Fb é multiplicado por Xdf éabsorvido com as constantes de transformada l/Cn/if 2C^/8 e2S3„/8, e é compensado por alteração dos fatores de escalaΑχ, A3, A5 e A7.
O primeiro fator comum Fa pode ser aproximado comuma constante racional diádica a.3, que pode sermultiplicada por Xa para obter uma aproximação do produtoXa. Fa. Um fator de transformada escalonado Fa/Cn/i pode seraproximado com uma constante racional diádica β3, que podeser multiplicado por Xb para obter uma aproximação doproduto Xb.Fa/Cw/4. Os fatores de escala alterados A2/Fa eA6/Fb podem ser aplicados aos coeficientes de transformadaX [ 2] e X[6], respectivamente.
0 segundo fato: comum Fb pode ser aproximaeo comuma constante racional diádica ab, que pode sermultiplicado por Xd parê. obter uma aproximação do produtoXd. Fb. Um fator de transformada escalonado Fb/Cn/4 pode seraproximado com uma constante racional diádica pb, que podeser multiplicada por X- para obter uma aproximação doproduto Xc.Fb/Cn/4. Um ::ator de transformada escalonado2Fb.C3%/8 pode ser aproximado com uma constante racionaldiádica yb, e um fator de transformada escalonado 2Fb. S3lt/8pode ser aproximado com uma constante racional diádica ôb.A constante racional diádica yb pode ser multiplicada por Xepara obter uma aproximação do produto 2Xe.Fb.C37I/8 e tambémpor Xf para obter uma aproximação do produto 2Xf. Fb. C3itZ8 . Aconstante racional diádica ôb pode ser multiplicada por Xepara obter uma aproximação do produto 2Xe. Fc. S3ltZs e tambémpor Xf para obter uma aproximação do produto 2Xf. Fb. S3K/8. Osfatores de escala altera:os Ai/Fb, A3/Fb, A5/Fb e A7/Fb podemser aplicados aos coeficientes de transformada X[l], X[3],X[5] e X[7], respectivamente.
Seis constantes racionais diádicas, aa, pa* «b/·Pb/ Yb e ôb podem ser definidas para seis constantes, comose segue:
<formula>formula see original document page 13</formula>
As Figuras 3 e 4 apresentam um exemplo do uso defatores comuns para fatorializações especificas de IDCT de8 pontos e DCT de 8 pontos, respectivamente. Fatores comunspodem ser usados para outras fatorializações das DCT e IDCTe também para outros tiros de transformadas. De um modogeral, um fator comum pode ser aplicado a um grupo de pelomenos uma variável intermediária em uma transformada. Estegrupo de variáveis intemediárias pode ser gerado a partirde um grupo de valores de alimentação (por exemplo, talcomo mostrado na Figura 3) ou usado para gerar um grupo devalores de saida (por exemplo, tal como mostrado na Figura4). 0 fator comum pode ser compensado pelos fatores deescala aplicados aos valores de alimentação ou aos valoresde saida.
Múltiplos fatores comuns podem ser aplicados amúltiplos grupos de variáveis intermediárias e cada grupopode incluir qualquer número de variáveis intermediárias. Aseleção dos grupos pode depender de vários fatores, taiscomo a fatorialização da transformada, em que as constantesda transformada estão lccalizadas dentro da transformada,etc. Múltiplos fatores comuns podem ser aplicados amúltiplos grupos de variáveis intermediárias do mesmotamanho (não é mostrado nas Figuras 3 e 4), ou tamanhosdiferentes (tal como mostrado nas Figuras 3 e 4) . Comoexemplo, três fatores comuns podem ser usados para afatorialização apresentada na Figura 3, com um prir.ieirofator comum sendo aplicado às variáveis intermediárias X1 eX2, um segundo fator conum sendo aplicado às variáveisintermediárias X3, X4, X5 e X6, e um terceiro fator comumsendo aplicado a duas variáveis intermediárias geradas apartir de X[0] e X[4].
A multiplicação de uma variável intermediária χpor uma constante racional diádica u pode ser efetuada devárias maneiras por aritmética de números inteiros devírgula fixa. A multiplicação pode ser efetuada usando-seoperações lógicas (por exemplo, deslocamento à esquerda,deslocamento à direita, inversão de bits, etc.), operaçõesaritméticas (por exemplo, adição, subtração, inversão desinal, etc.) e/ou outras operações. 0 número de operaçõeslógicas e aritméticas nec€-.ssárias para a multiplicação de χpor u é dependente da maneira pela qual a computs.ção éefetuada e do valor ca constante racional diádica u.Diferentes técnicas de computação podem requerer diferentesnúmeros de operações lógicas e aritméticas para a mesmamultiplicação de x por u. Uma dada técnica de computaçãopode requerer diferentes números de operações lógicas earitméticas para a mul.tiplicação de x por diferentesvalores de u.
Um fator comum pode ser selecionado para um grupo'de variáveis intermediárias com base em critérios taiscomo:
■ O número de operações lógicas e aritméticas paraefetuar a multiplicação; e
■ A precisão dos resultados.
De um modo geral, é desejável minimizar o númerode operações lógicas e aritméticas para multiplicação deuma variável intermediária por uma constante racionaldiádica. Em algumas plataformas de hardware, as operaçõesaritméticas (por exemplo,, adições) podem ser mais complexasdo que as operações lógicas, portanto, a redução do númerode operações aritméticas pode ser mais importante. Em umasituação extrema, a complexidade de computação pode serquantificada com base apenas no número de operaçõesaritméticas, sem levar em consideração as operaçõeslógicas. Em algumas outras plataformas de hardwaref asoperações lógicas (por exemplo, deslocamentos) podem sermais caras e a redução dc número de operações lógicas (porexemplo, redução do número de operações de deslocamentoe/ou do número total de bits deslocados) pode ser maisimportante. De um modo geral, pode ser usado um númeromédio ponderado de operações lógicas e aritméticas, ei queos pesos podem representar as complexidades relativas dasoperações lógicas e aritméticas.
A precisão dos resultados pode ser quantificadacom base em várias medidas, tais como aquelas apresentadasna Tabela 6 mais adiarr:e. De um nodo geral, é desejávelreduzir o número de operações lógicas e aritméticas (ou acomplexidade de computação) para uma dada precisão. Podetambém ser desejável trocar a complexidade pela precisão,por exemplo, para obter maior precisão ao custo de algumasoperações adicionais.
Como mostrado nas Figuras 3 e 4, para cada fatorcomum, a multiplicação pode ser efetuada sobre um grupo devariáveis intermediárias com um grupo de constantesracionais diádicas que se aproxima de um grupo de pelomenos uma constante irracional (para pelo menos um fator detransformada) escalonada por .tal fator comum. Amultiplicação na aritmética de números inteiros de vírgulafixa pode ser efetuada de várias maneiras. Para maiorclareza, serão descritas a seguir as técnicas de computaçãoque efetuam a multiplicação com operações de deslocamento eadição e usam resultados intermediários. As técnicas decomputação podem reduzir o número total de operações dedeslocamento e adição pare. a DCT e a IDCT.
A multiplicação de uma variável inteira χ por umaconstante irracional μ na aritmética de números inteiros devírgula fixa pode ser efetuada por aproximação da constanteirracional com uma constante racional diádica, como sesegue:
Sq(S)em que μ é a constante irracional a ser aproximada, c/2b éa constante racional diádica, b e c são números inteiros eb > 0.
Dados a variável de número inteiro χ e a30 constante racional diádica u = c/2b!. um produto de valorinteiropode ser aproximado usando-se uma série de valoresintermediários
<formula>formula see original document page 17</formula>
em que yo = 0, yi = χ e, para todos os valores 2 < i < 1, yié obtido como se segue:
<formula>formula see original document page 17</formula>
em que yk.2s:L implica em deslocamento à esquerda ou àdireita (dependendo do sinal da constante Sj.) de yk-bylsilbits do valor intermediário.
Na equação (8), yi pode ser igual a yj + yk . 2xt,yj - yk . 2st ou -yj + yk . 2xt. Cada valor intermediário yina série pode ser derivado com base em dois valoresintermediários anteriores yj e yk na série, em que yj ou ykpodem ser iguais a zero. Cada valor intermediário yi podeser obtido com um deslocamento e/ou uma adição. Odeslocamento não é necessário caso Si seja igual a zero. Aadição não é necessária se yj = y0 = 0. 0 número total deadições e deslocamentos para a multiplicação é determinadopelo número de valores intermediários na série, o qual é t,bem como pela expressão usada para cada valorintermediário. A multiplicação pela constante racionaldiádica u é essencialmente decomposta em uma série deoperações de deslocamento e adição. A série é definida detal maneira que o valor final na série se torne o produtode valor inteiro desejado., ou
<formula>formula see original document page 17</formula>
Como mostrado nas equações (5) a (9), amultiplicação da variável inteira χ pela constanteirracional μ pode ser aproximada por meio de uma série devalores intermediários gerados por operações dedeslocamento e adição e usando-se os resultadosintermediários (ou valores intermediários anterioresgerados) para reduzir o número total de operações.
A multiplicação de uma variável inteira χ porduas constantes irracionais μ e η na aritmética de númerosinteiros de vírgula fixa pode ser conseguida poraproximação das constantes irracionais a constantesracionais diádicas, como se segue:
<formula>formula see original document page 18</formula>
em que c/2b e e/2d são duas constantes racionais diádicas,b, c, d e e são números i.ateiros, b > 0 e d > 0.
Dada a variável inteira χ e as constantesracionais diádicas u = c/2b e ν = e/2d, dois produtos devalores inteiros:
<formula>formula see original document page 18</formula>
podem ser aproximados usando-se uma série de valoresintermediários:
<formula>formula see original document page 18</formula>
em que w0 = 0, Wi = x, e para todos os valores 2 < i < t, Wié obtido como se segue:
em que wk.2st implica no deslocamento à esquerda ou àdireita de wk por IstI bits. A série é definida de talforma que os produtos de valor inteiro sejam obtidos nasetapas m e n como se segue:
<formula>formula see original document page 18</formula>
em que m, n < t e m ou n é igual a t.
Como mostrado nas equações (10) a (14), amultiplicação da variável inteira χ pelas constantesirracionais μ e η pode ser aproximada por meio de uma sériecomum de valores intermediários gerados por operações dedeslocamento e adição e usando-se os resultadosintermediários para reduzir o número total de operações.
Na computação acima descrita, operações triviaistais como adições e subtrações de zeros e deslocamentos porzero bits podem ser emitidas. Podem ser efetuadas asseguintes simplificações;
<formula>formula see original document page 19</formula>
Na equação 15, a expressão à esquerda deenvolve uma adição ou subtração de zero (denotado por yo) epode ser efetuada com um deslocamento, tal como mostradopela expressão à direita de "=>". Na equação (16), aexpressão à esquerda de envolve um deslocamento porzero bits (denotado por 2o) e pode ser efetuada com umaadição, como mostrado pela expressão à direita "=>'-'. Asequações (15) e (16) podem ser aplicadas à equação (S) nacomputação de yi, bem como à equação (13) na computação deWi .
As multiplicações nas Figuras 1 a 4 podem sereficientemente efetuadas usando-se as técnicas decomputação acima descritas. Na Figura 1, a multiplicação davariável inteira χ pela constante de transformada Cπ/4 poraritmética de números inteiros de vírgula fixa pode serconseguida por aproximação da constante 0π/4 por umaconstante racional diádica, como se segue:
<formula>formula see original document page 19</formula>
em que 08π/4 é uma constante racional diádica que consistede uma aproximação de 8 bits de Cn/4.
A multiplicação da variável inteira χ pelaconstante 08π/4 pode ser expressa por:Ά multiplicação na equação (18) pode serconseguida pela seguinte série de operações:
M-Jf > Ul Ecj(19)
y% ^yl »2), //Kii
, Mmmi
Λ=Jps^Ofi »6) , tf 010110101 ,
0 valor binário à direita de vV/" é uma constanteintermediária que é multiplicada pela variável x.
0 produto desejado é igual a y4, ou y4 = y. Amultiplicação na equação (18) pode ser efetuada por trêsadições e três 'deslocamentos para gerar três valoresintermediários Y2, y3 e y4.
Na Figura 1, a multiplicação da variável inteiraχ pelas constantes de transformada 03π/8 e S37tZg poraritmética de números inteiros e vírgula fixa pode serconseguida por aproximação das constantes 03π/8 e S3jtZ8 porconstantes racionais diádicas, como se segue:
4S b00110001
„ 473 b OUEOl 1001^ - 512 ~ b 1000000000 5 Bq PO
em que C73jtZ8 é uma constante racional diádica que é umaaproximação de 7 bits de C37tZ8; e
δ93π/8 é uma constante racional diádica que é umaaproximação de 9 bits de S3TC/8
A multiplicação da variável inteira χ pelasconstantes C3nZ8 e S3ltZ8 pode ser expressa por:As multiplicações na equação (22) podem serconseguidas através da seguinte série de operações:
<formula>formula see original document page 21</formula>
Os produtos desejados são iguais a W6 e Ws, ou Wg= y e W8 = z. As duas multiplicações na equação (22) podemser efetuadas em conjunto por cinco adições e cincodeslocamentos para gerar sete valores intermediários w2 aWs- As adições de zeros £ Ao omitidas na geração de w3 e W6.Os deslocamentos por zero são omitidos na geração de W4 ew5.
Para a IDCT de 8 pontos apresentada na Figura 1,usando-se as técnicas de computação acima descritas para asmultiplicações pelas constantes 08π/4, C73j[/8 e S93:í/3, acomplexidade total para uma precisão de 8 bits pode serdada por 28+3x2+5x2=44 adições e 3x2+5x2=16 deslocamentos.De um modo geral, pode ser obtida qualquer precisãodesejada pelo uso de um número suficiente de bits para aaproximação de cada constante de transformada.
Para a DCT de 8 pontos apresentada na Figura 2,as constantes irracionais l/Cn/4, C37t/8 e S3lt/8 podem seraproximadas por meio de constantes racionais diádicas. Asmultiplicações pelas constantes racionais diádicas podemser conseguidas usando-se as técnicas de computação acimadescritas.
Para a IDCT apresentada na Figura 3, diferentesvalores dos fatores corn;ns Fi e F2 podem resultar emdiferentes números totais de operações lógicas earitméticas para a IDCT e diferentes níveis de precisãopara as amostras de saída x[0] a x[7]. Podem ser avaliadasdiferentes combinações ò.e valores para Fi e F2. Parai cadacombinação de valores, pode ser determinado o número totalde operações lógicas e aritméticas para a IDCT e a precisãodas amostras de saída.
Para um dado valor de Fi, as constantes racionaisdiádicas ai e βι podeir ser obtidas para F1 e Fi-C7tZ4,respectivamente. Os nú-neros de operações lógicas earitméticas podem ser, então, determinados para amultiplicação de Xi por αχ e a multiplicação de X2 por βχ.Para um dado valor de F2, podem ser ,obtidas as constantesracionais diádicas α2, β2, γ2 e δ2 para F2, F2-C11Z4, F2-C3nZ8 eF2.S3tcZ8/ respectivamente. Os números de operações lógicas earitméticas podem ser, então, determinados para amultiplicação de X4 por a2, a multiplicação de X3 por β2 eas multiplicações de X5 por γ2 e δ2. 0 número de operaçõespara as multiplicações de X6 por γ2 e δ2 é igual ao númerode operações para as multiplicações de X5 por γ2 e δ2.
Para facilitar a avaliação e a seleção dosfatores comuns, o número de operações lógicas e aritméticaspode ser pré-computado para multiplicação por diferentesvalores possíveis de constantes racionais diádicas. Osnúmeros pré-computados de operações lógicas e aritméticaspodem ser armazenados em uma tabela de consulta ou algumaoutra estrutura de dados.
A Figura 5 apresenta uma tabela de consulta 500que armazena os números de operações lógicas e aritméticaspara multiplicação por diferentes valores de constantesracionais diádicas. A tabela de consulta 500 é uma tabelabidimensional com diferentes valores possíveis para umaprimeira constante racione", diádica Cx no eixo horizontal ediferentes valores possíveis de uma segunda constanteracional diádica C2 no eixo vertical. O número de valorespossíveis para cada constante racional diádica depende donúmer de bits usados para tal constante. Como exemplo, casoC1 seja representada por 13 bits, então existem 8192valores possíveis para C1. Os valores possíveis para cadaconstante racional diádica são denotados por Co, c_, C2,...,Cm, em que C0 = 0, c_ é o menor valor diferente da zeroe cM é o valor máximo (por exemplo, cM = 8191 para 13bits).
A entrada na ia coluna e ja fileira da tabela deconsulta 500 contém o número de operações lógicas earitméticas para a multiplicação conjunta da variável xintermediária por ei paira a primeira constante racionaldiádica C1 e por Cj para a segunda constante racionaldiádica C2. O valor para cada entrada na tabela de consulta500 pode ser determinado por avaliação de diferentes sériespossíveis de valores intermediários para a multiplicaçãoconjunta por C1 e cj para tal entrada e seleção da melhorsérie, por exemplo, a série com o menor número deoperações. As entradas na primeira fileira da tabela deconsulta 500 (com c0 = 0 para a segunda constante racionaldiádica C2) contém o número de operações para amultiplicação da variável intermediária x apenas por C1para a primeira constante racional diádica Ci. Dado que atabela de consulta é simétrica, podem ser preenchidasapenas as entradas em metade da tabela (por exemplo, acimaou abaixo da diagonal principal). Além disso, o número deentradas a serem preenchidas pode ser reduzidoconsiderando-se que as constantes irracionais sãoaproximadas pelas constantes racionais diádicas C1 e C2-
Para um dado valor de Fl, podem ser determinadasas constantes racionais diádicas α1 e β1. O número deoperações lógicas e aritméticas para multiplicação de X1por αχ e multiplicação de X2 por βι pode ser prontamentedeterminado a partir das entradas na primeira fileira databela de consulta 500, em que αχ e βι correspondem a Cl.De forma similar, para um dado valor de F2, podem serdeterminadas as constantes racionais diádicas 0C2, β2/ Y2 e02- O número de operações lógicas e aritméticas paramultiplicação de X4 por a2 e multiplicação de X3 por β:! podeser determinado a parti:: das entradas na primeira fileirada tabela de consulta 500, em que a2 e β2 correspondem a Ci.O número de operações lógicas e aritméticas paramultiplicação conjunta de X5 por 72 e δ2 pode serdeterminado a partir de uma entrada apropriada na tabela deconsulta 500, em que γ2 pode corresponder a Ci e b2 podecorresponder a C2 ou vice versa.
Para cada combinação possivel de valores para Fie F2, as medidas de precisão na Tabela 6 podem serdeterminadas para um número suficiente de interações comdiferentes dados de alimentação aleatórios. Os valores deFi e F2 que resultam em pouca precisão (por exemplo, falhadas medidas) podem ser descartados, enquanto os valores deFi e F2 que resultam em boa precisão (por exemplo, passamnas medidas) podem ser mantidos.
As Tabelas 1 a 5 apresentam cinco aproximações devírgula fixa para a IDCT na Figura 3, que são denotadascomo os algoritmos A, B, C, DeE. Tais aproximações ralempara dois grupos de fatores, com um grupo incluindo ai eβι, e outro grupo incluindo a2, β2, Y2 e δ2. Para cada umadas Tabelas 1 a 5, o fator comum para cada grupo é dado naprimeira coluna. Os fatores comuns melhoram a precisão dasaproximações das constantes racionais diádicas e podem serfundidos com os fatores c.o escala apropriados no gráfico defluxo para a IDCT. Os valores originais (que podem ser 1 ouconstantes irracionais) estão na terceira coluna. Aconstante racional diadica para cada valor originalescalonado por seu fator comum está na quarta coluna. Asérie de valores intermediários para a multiplicação davariável intermediária κ por uma ou duas constantesracionais diádicas está na quinta coluna. Os números deoperações de adição e deslocamento para cada multiplicaçãoestão nas sexta e sétima colunas, respectivamente. 0 númerototal de operações de adição para a IDCT é igual à soma detodas as operações de adição na sexta coluna mais a últimaentrada novamente (para contabilizar a multiplicação decada um dentre X5 e X6 por 72 e δ2) mais 28 operações deadição para todas as borboletas no gráfico de fluxo. 0número total de operações de deslocamento para a IDCT éigual à soma de todas as operações de deslocamento naúltima coluna, mais a última entrada outra vez.
A Tabela 1 apresenta os detalhes do algoritmo A,que utiliza um fator comum de 1/1,0000442471 para cada umdos dois grupos.
Tabela 1 - Aproximação A (42 adições, 16 deslocamentos)
<table>table see original document page 25 </column></row><table>
A Tabela 2 apresenta os detalhes do algoritmo B,que utiliza um fator comum de 1/1,0000442471 para oprimeiro grupo e um fator comum de 1/1,02053722659 parasegundo grupo.
Tabela 2 - Aproximação B (43 adições, 17 deslocamentos)
<table>table see original document page 26</column></row><table>
A Tabela 3 apresenta os detalhes do algoritmo Cque utiliza um fator comum de 1/0,87734890555 paraprimeiro grupo e um fator comum de 1/1,02053722659 parasegundo grupo.
Tabela 3 - Aproximação C (44 adições, 18 deslocamentos)
<table>table see original document page 26</column></row><table><table>table see original document page 27</column></row><table>
A Tabela 4 apresenta os detalhes do algoritmo D,que utiliza um fator comum de i/0, 87734890555 p;;ra oprimeiro grupo e um fator comum de 1/0,89062054308 para o5 segundo grupo.
Tabela 4 - Aproximação D (45 adições, 17 deslocamentos)
<table>table see original document page 27</column></row><table>
A Tabela 5 apresenta os detalhes do algoritmo E,que utiliza um fator comum de 1/0,87734890555 para oprimeiro grupo e um fatoi: comum de 1/1,22387468002 para osegundo grupo.Tabela 5 - Aproximação E (48 adições, 20 deslocamentos)
<table>table see original document page 28</column></row><table>
A precisão das amostras de saída de uma IDCTaproximada pode ser quantificada com base em medidasdefinidas na norma IEEE 1180-1190 e sua substituta aindapendente. Esta norma especifica o teste de uma DCT dereferência de 64 bits de vírgula móvel, seguido pela IDCTaproximada usando dados provenientes de um geradcr denúmeros aleatórios. A DCT de referência recebe dadosaleatórios para um bloco de pixels de alimentação e geracoeficientes de transformada. A IDCT aproximada recebe oscoeficientes de transformada (apropriadamente arredondados)e gera um bloco de pixels reconstruídos. Os pixelsreconstruídos são comparados aos pixels de alimentaçãousando-se cinco medidas, que estão na Tabela 6.
Adicionalmente, a IDCT aproximada deve produzir zerosquando alimentada com coeficientes de transformada de zeroe demonstrar comportamento de inversão próximo a DC. Todosos cinco algoritmos AaE acima descritos passam em todasas medidas da Tabela 6.Tabela 6
<table>table see original document page 29</column></row><table>
A IDCT ID apresentada na Figura 3 pode ser usadapara uma IDCT 2D. De forma similar, a DCT ID apresentada naFigura 4 pode ser usada para uma DCT 2D.
A Figura 6 apresenta um esquema de uma ICCT 2D600 implementada de uma forma escalonada e separável. AIDCT 2D 600 compreende um estágio de escalonamento dealimentação 612, seguido por um primeiro estágio de IDCT IDescalonada 614 para as colunas (ou fileiras), seguidoadicionalmente por um secundo estágio de IDCT ID escalonada616 para as fileiras (ou colunas) e concluindo ccm umestágio de escalonamento de saida 618. O estágio deescalonamento de alimentação 612 recebe um bloco 8x8 decoeficientes de transformada e pode pré-multiplicar cadacoeficiente de transformada por uma constante C = 2P, oudeslocar cada coeficiente de transformada em P bits para aesquerda, em que P denota o número de bits de wmant:.ssa"reservados. Após o escalonamento, pode ser adicionada umaquantidade de 2P_1 ao coeficiente de transformada DC paraobter o arredondamento apropriado nas amostras de saida.Para melhorar a precisão do escalonamento, podem ser usadosS = P + R bits na conversão dos fatores de escala paranúmeros inteiros, e os deslocamentos à direita por R bitspodem ser efetuados após as multiplicações. S pode serqualquer valor adequado que possa facilitar asimplementações em plataformas de hardware, S pode ser, porexemplo, 15 ou 16 para. plataformas com multiplicadores de16 bit assinados/não assinados.
0 primeiro estágio de IDCT ID 614 efetua uma IDCTde 8 pontos sobre cada coluna do bloco de coeficientes detransformada escalonados. 0 segundo estágio de IDCT ID 616efetua uma IDCT de 8 pontos sobre cada fileira de um blocointermediário gerado pelo primeiro estágio de IDCT ID 614.As IDCT's ID para os primeiro e segundo estágios podemoperar diretamente sobre seus dados de alimentação semefetuar qualquer pré- ou pós-escalonamento interno. Apósserem processadas as fileiras e colunas, o estágio deescalonamento de saida 618 pode deslocar as quantidadesresultantes provenientes do segundo estágio de IDCT ID 616por P bits para a direica para gerar as amostras de saidapara a IDCT 2D. Os fatores de escala e a constante deprecisão P podem ser escolhidos de tal forma a que toda aIDCT 2D possa ser implementada usando-se registradores coma amplitude desejada.
A DCT 2D pode ser efetuada de maneira similar àIDCT 2D. A DCT 2D pode se.c efetuada por (a) pré-multiplicarum bloco de amostras no domínio espacial, (b) efetuar a DCTID sobre cada coluna (ou fileira) do bloco de amostrasescalonadas para gerar um bloco intermediário, (c) efetuara DCT ID sobre cada fileira (ou coluna) do blocointermediário, e (d) eucalonar a saída do estágio dasegunda DCT ID para ge.rar um bloco de coeficientes detransformada para a DCT 2D.
Para maior clareza, muito da descrição acimaserve para uma IDCT de 8 pontos escalonada e uma DCT de 8pontos escalonada. As técnicas aqui descritas podem serusadas para qualquer tipo de transformada, tal como DCT,IDCT, DFT, IDFT, MLT, ΜΙ,Τ inversa, MCLT, MCLT inversa, etc.As técnicas podem tarnbém ser usadas para qualquerfatorialização de uma transformada, com vários exemplos defatorializações sendo apresentados nas Figuras 1 a 4. Osgrupos para os fatores comuns podem ser selecionados combase na fatorialização, tal como foi acima descrito. Astécnicas podem também ser usadas para transformadas dequalquer tamanho, com exemplos de transformadas de 8 pontossendo apresentados nas Figuras 1 a 4. As técnicas podemtambém ser usadas em conjunto com quaisquer critérios deseleção de fatores comuns, tal como o número total deoperações lógicas e aritméticas, o número total deoperações aritméticas, a precisão dos resultados, etc=
0 número de o;;e;rações para uma transformada podedepender da maneira pela qual são efetuadas asmultiplicações. As técnicas de computação acima descritasdesenvolvem as multiplicações em séries de operações dedeslocamento e adição, usam os resultados intermediáriospara reduzir, o número de operações e efetuam amultiplicação conjunta com múltiplas constantes usanao umasérie comum. As multiplicações podem também ser efetuadaspor outras técnicas de computação, as quais podeminfluenciar a seleção dos fatores comuns.
As transformadas com fatores comuns aquidescritas podem proporcicnar certas vantagens, tais corao:
■ Menor complexidade de multiplicação devido àsmultiplicações combinadas em uma fase escalonada;
■ Possível redução de complexidade devido à capacidadede combinar o escalonamento com a quantificação emimplementações de normas JPEG, H.263, MPEG-I, MPEG-2,MPEG-4 (P.2) e outras; e
■ Melhor precisão devida à capacidade deminimizar/distribuir erros de aproximações de vírgulafixa para constantes irracionais usadas emmultiplicações pela introdução de fatores comuns quepodem ser compensados por fatores de escala.
As transformadas com fatores comuns podem serusadas para várias aplicações, tais como processamento deimagens e vídeo, comunicação, computação, trabalho e:\i redecom dados, armazenamento de dados, gráficos, etc. A seguir,são apresentados exemplos de uso de transformadas paraprocessamento de video.
A Figura 7 apresenta um diagrama de blocos de umsistema de codificação e decodificação de imagens/video700. Em um sistema de codificação 710, uma unidade de DCT720 recebe um bloco de dados de alimentação e gera um blocode coeficientes de transformada. 0 bloco de dados dealimentação pode ser um bloco de NxN de pixels, um bloco deNxN de valores de diferenças de pixels (ou resíduo), oualgum outro tipo de dados gerados a partir de um sinalfonte, por exemplo, um sinal de vídeo. Os valores dediferenças de pixels poden ser diferenças entre dois blocosde pixels, diferenças en::re um bloco de pixels e um blocode pixels previstos, etc. N pode ser igual a 8 ou algumoutro valor. Um codificador 730 recebe o bloco decoeficientes de transformada proveniente da unidade de DCT720, codifica os coeficientes de transformada e gera ciadoscomprimidos. Os dados comprimidos podem ser armazenados emuma unidade de armazenamento e/ou enviados através de umcanal de comunicação ("nuvem" 740).
Em um sistema de decodificação 750, umdecodificador 7 60 recebe os dados comprimidos provenientesda unidade de armazenamento ou do canal de comunicação 7 40e reconstrói os coeficientes de transformada. Uma unidadede IDCT 770 recebe os coeficientes de transformadareconstruídos e gera um bloco de dados de saída. O bloco dedados de saída pode ser um bloco de NxN de pixelsreconstruídos, um bloco de NxN de valores de diferenças depixels reconstruídos, etc. 0 bloco de dados de saída podeser uma estimativa do bloco de dados de alimentação providopara a unidade de DCT 720 e pode ser usado para reconstruiro sinal fonte.
A Figura 8 apresenta um diagrama de blocos de umsistema de codificação 300, o qual pode ser usado para osistema de codificação 710 na Figura 7. Um dispositivo decaptação/memória 810 pode receber um sinal fonte, efetuar aconversão para o formato digital e prover dados dealimentação/não processados. O dispositivo de captação 810pode ser uma câmara de video, um digitalizador ou algumoutro dispositivo. Um processador 820 processa os dados nãoprocessados e gera dados comprimidos. No interior doprocessador 820, os dados não processados podem sertransformados por uma unidade de DCT 822, escaneados poruma unidade escaneadora zig-zag 824, quantificados por umquantificador 826, codificados por um codificador deentropia 828 e empacotadcs por um empacotadr 830. A unidadede DCT 822 pode efetuar DCT' s 2D sobre os dados nãoprocessados de acordo com as técnicas acima descritas. Cadauma das unidades 822 a 8 30 pode ser implementada na formade hardware, firmware e/ou software. Como exemplo, aunidade de DCT 822 pode ser implementada por meio dehardware dedicado, um conjunto de instruções para umaunidade lógica aritmética (ALU), etc.
Uma unidade de armazenamento 840 pode armazenaros dados comprimidos provenientes do processador 820. Umtransmissor 842 pode transmitir os dados comprimidos. Umcontrolador/processador 850 controla a operação de váriasunidades no sistema de codificação 800. Uma memória 852armazena dados e códigos de programas para o sistema decodificação 800. Um ou mais barramentos 860 interconectamvárias unidades no sistema de codificação 800.
A Figura 9 apresenta um diagrama de blocos de umsistema de decodif icação 900 que pode ser usado para osistema de decodificação 750 na Figura 7. Um receptor 910pode receber dados comprimidos provenientes de um sistemade codificação, e uma unidade de armazenamento 912 podearmazenar os dados comprimidos recebidos. Um processador920 processa os dados comprimidos e gera dados de saida. Nointerior do processador 320, os dados comprimidos podem serdesempacotados por um desempacotador 922, decodificadas porum decodificador de entropia 924, inversamentequantificados por um quantificador inverso 926,posicionados na ordem apropriada por uma unidade deescaneamento zig-zag inverso 928 e transformados por umaunidade de IDCT 930. A unidade de IDCT 930 pode eifetuarIDCT's 2D sobre os coeficientes de transformadareconstruídos de acordo com as técnicas acima descritas.Cada uma das unidades 922 a 930 pode ser implementada naforma de hardware, firmware e/ou software. Como exemplo, aunidade de IDCT 930 pode ser implementada por meio dehardware dedicado, um conjunto de instruções para umaunidade lógica aritmética. (ALU) , etc.
Uma unidade de display 94 0 apresenta as imagens eo vídeo reconstruídos provenientes do processador 920. Umcontrolador/processador 950 controla a operação de váriasunidades no sistema de decodificação 900. Uma memória 952armazena dados e códigos de programas para o sistemadecodificador 900. Um ou mais barramentos 960 interconectamvárias unidades no sistema de decodificação 900.
Os processadores 820 e 920 podem ser, cada um,implementados por meio de um ou mais circuitos integradosespecíficos para aplicativo (ASIC's), processadores desinal digital (DSP's) e/ou algum outro tipo de processador.Alternativamente, os processadores 820 e 920 podem ser,cada um, substituídos po:: uma ou mais memórias de acessoaleatório (RAM), memória apenas para leitura (ROM), ROMeletricamente programável (EPROM), ROM programáveleletricamente apagável (EEPROM), discos magnéticos, discosópticos e/ou outros tipos de memórias voláteis e nãovoláteis conhecidas pelos técnicos na área.
As técnicas aqui descritas podem serimplementadas em hardware, firmware, software 01 umacombinação destes. Como exemplo, as operações lógicas (porexemplo, de deslocamento) e aritméticas (por exemplo, deadição) para multiplicação de um valor de dados por umvalor constante podem ser implementadas por meio de uma oumais lógicas, as quais podem também ser designadas comounidades, módulos, etc. rJma lógica pode consistir de lógicade hardware compreendendo portas lógicas, transistores e/ououtros circuitos conhecidos na técnica. Uma lógica podetambém ser uma lógica de firmware e/ou softwarecompreendendo códigos legíveis por máquina.
Em um esquema, um equipamento compreende umaprimeira lógica para efe:uar a multiplicação de um primeirogrupo de pelo menos um valor de dados por um primeiro grupode pelo menos uma constante racional diádica que seaproxima de um primeiro grupo de pelo menos uma constanteirracional escalonada por um primeiro fator comum. 0equipamento compreende adicionalmente uma segunda lógicapara efetuar a multiplicação de um segundo grupo da pelomenos um valor de dados oor um segundo grupo de pelo menosuma constante racional diádica que se aproxima de umsegundo grupo de pelo menos uma constante irracionalescalonada por um segundo fator comum. Os primeiro esegundo grupos de pelo menos um valor de dados têm tamanhosdiferentes. As primeira e segunda lógicas podem ser lógicasseparadas, a mesma lógica comum ou uma lógicacompartilhada.
Para uma implementação em firmware e/ou software,a. multiplicação de um valor de dados por um valor constantepode ser efetuada por meio de códigos legíveis por máquinaque efetuam ás operações lógicas e aritméticas desejadas.Os códigos podem ser passados por cabos ou estararmazenados em uma memória (por exemplo, a memória 352 naFigura 8 ou 952 na Figura 9) e executados por umprocessador (por exemplo, o processador 850 ou 950) oualguma outra unidade de hardware.
As técnicas aqui descritas podem serimplementadas em vári.s tipos de equipamentos,, Comoexemplo, as técnicas podem ser implementadas em diferentestipos de processadores, diferentes tipos de circuitosintegrados, diferentes tipos de dispositivos eletrônicos,diferentes tipos de circuitos eletrônicos, etc.
Os técnicos na área notarão que as informações esinais podem ser representados usando-se quaisquer dentreuma diversidade de diferentes tecnologias e técnicas, Comoexemplo, dados, instruções, comandos, informações, sinais,bits, símbolos e chips que possam ter sido mencionados portoda a descrição acima podem ser representados porvoltagens, correntes, ondas eletromagnéticas, campos oupartículas magnéticas, campos ou partículas ópticas, ouquaisquer combinações destes.
Os técnicos na área notarão adicionalmente que osvários exemplos de blocos lógicos, módulos, circuitos eetapas de algoritmos descritos em conexão com asmodalidades podem ser implementados na forma de hardwareeletrônico, software de computador ou combinações cestes.Para ilustrar claramente esta intercambialidade de hardwaree software, vários exemplos de componentes, blocos,módulos, circuitos e etapas foram acima descritos de ummodo geral em termos de sua funcionalidade. Se talfuncionalidade é implementada na forma de um hardware ousoftware depende da aplicação e restrições de projetoespecíficas impostas ao sistema como um todo. Os téc .licosna área podem implementar a funcionalidade descrita dediversas formas para cada aplicação específica, porém taisdecisões de implementação não devem ser interpretadas comoum afastamento do escopo da presente invenção.Os vários exemplos de blocos lógicos, módulos ecircuitos aqui descritos em conexão com as modalidadespodem ser implementados ou efetivados por meio de umprocessador de uso geral, um processador de sinais digitais(DSP), um circuito integrado especifico para aplicativo(ASIC), arranjos de porta programáveis no campo (FPGA) ououtros dispositivos lógicos programáveis, portasindividuais ou lógica de transistores, componencfis dehardware individuais ^u quaisquer combinações destesprojetados para efetuar as funções aqui descritas. Umprocessador de uso geral pode ser um microprocessador,porém como alternativa o processador pode ser qualquerprocessador, controlador, microcontrolador ou máquina deestado convencionais. Um processador pode també-r·:·. serimplementado na forma de uma combinação de dispositivos decomputação, por exemplo, uma combinação de um DSP e ummicroprocessador, uma pluralidade de microprocessadores, umou mais microprocessadores em conjunto com um núcleo DSP ouqualquer outra configuração similar.
Em uma ou mais modalidades exemplares, as funçõesdescritas podem ser imp !.ementadas em hardware, software,firmware, ou qualquer combinação destes. Se implementadasem software, as funções podem ser armazenadas outransmitidas na forma de uma ou mais instruções ou códigosatravés de um meio legível por computador. Os meioslegíveis por computador incluem tanto meios paraarmazenamento em computador como meios de comunicação,incluindo qualquer meio que facilite a transferência de umprograma de computador de um local para outro. Um meio dearmazenamento pode consistir de qualquer meio disponívelque possa ser acessado por um computador. Como exemplo, masnão limitação, tais meios legível por computador podemincluir RAM, ROM, EEPROM, CD-ROM ou outro tipo dearmazenamento em disco óptico, armazenamento em discomagnético ou outros dispositivos de armazenamentomagnéticos, ou qualquer outro meio que possa ser usado paraportar ou armazenar um código de programa desejado na formade instruções ou estruturas de dados e que posda seracessado por um computador. Além disso, qualquer conexão éapropriadamente designada como um meio legível porcomputador. Como exemplo, se o software for transmitido apartir de um website, servidor ou outra fonte remotausando-se um cabo coa..<ial, cabo de fibra óptica, partorcido, DSL (linha de assinante digital) ou portecnologias sem fio, -cais como infravermelho, rádio emicroondas, então, o cabo coaxial, cabo de fibra ótica, partorcido, DSL ou tecnologias sem fio, tais comoinfravermelho, rádio e microondas estão incluídas nadefinição de meio. O termo disco, tal como é aquiutilizado, inclui CD, disco laser, disco óptico, DVD,disquete e disco BlueRay, em que o disco usualmentereproduz dados magneticamente ou opticamente por meio delasers. Combinações dos acima mencionados devem também serincluídas no escopo de meios legíveis por computador.
A descrição anterior da invenção é provida parapermitir que os técnicos na área efetivem ou façam u:;o dapresente invenção. As diferentes modificações da invençãoficarão prontamente claras para os técnicos na área e osprincípios genéricos aqui definidos podem ser aplicados aoutras modalidades sem constituir um afastamento doespírito ou escopo da mesma. Dessa forma, a presenteinvenção não deve se:·: limitada aos exemplos aquiapresentados, devendo receber o escopo mais amplo,consistente com os princípios e características novos aquidescritos.

Claims (43)

1. Um equipamento compreendendo:uma primeira lógica para efetuar a multiplicaçãode um primeiro grupo de pelo menos um valor de dados por umprimeiro grupo de pelo menos uma constante racional diádicaque se aproxima de um primeiro grupo de pelo menos umaconstante irracional escalonada por um primeiro fatorcomum, cada constante diádica racional sendo um r.úmeroracional com um denominador diádico; euma segunda lógica para efetuar a multiplicaçãode um segundo grupo de pelo menos um valor de dados por umsegundo grupo de pelo menos uma constante racional diádicaque se aproxima de um segundo grupo de pelo menos umaconstante irracional escalonada por um segundo fator comum,os primeiro e .· segundo gcupos de pelo menos um valer dedados possuindo tamanhos diferentes.
2. 0 equipamento da reivindicação 1,compreendendo adicionalmente:uma terceira lógica para efetuar a multiplicaçãode um terceiro grupo de pelo menos um valor de dados por umterceiro grupo de pelo mer.os uma constante racional diádicaque se aproxima de um terceiro grupo de pelo menos umaconstante irracional escalonada por um terceiro fatorcomum.
3. 0 equipamento da reivindicação 1, em que osegundo grupo de pelo menos um valor de dados possui odobro do tamanho do primeiro grupo de pelo menos um \r.?.lorde dados.
4. 0 equipamento da reivindicação 1, em que oprimeiro grupo de pelo menos um valor de dados compreendedois valores de dados e o segundo grupo de pelo menos umvalor de dados compreende quatro valores de dados.
5. 0 equipamento da reivindicação 1, em que oprimeiro grupo de pelo menos uma constante irracionalcompreende uma única constante irracional e o segundo grupode pelo menos uma constante irracional compreende trêsconstantes irracionais.
6. O equipamento da reivindicação 1, em ^ue onúmero de constantes irracionais no primeiro grupo é menordo que o número de constantes racionais diádicas noprimeiro grupo.
7. O equipamento da reivindicação 1, em que aprimeira lógica efetua a multiplicação de um primeiro valorde dados no primeiro c::upo por uma primeira cons:antediádica racional que se aproxima do primeiro fator comam, eefetua a multiplicação de um segundo valor de dados noprimeiro grupo por uma segunda constante diádica racionalque se aproxima de uma constante irracional escalonada peloprimeiro fator comum.
8. 0 equipamento da reivindicação 1, em eme osegundo grupo de pelo menos uma constante irracionalcompreende uma primeira e uma segunda constantesirracionais, em que o segundo grupo de pelo menos umaconstante diádica racional compreende uma primeiraconstante diádica racional que se aproxima da primeiraconstante irracional escalonada pelo segundo fator comum euma segunda constante diádica racional que se aproxima dasegunda constante irracional escalonada pelo segundo fatorcomum.
9. O equipamento da reivindicação 8, em que asegunda lógica efetua a multiplicação de um valor de dadosno segundo grupo pela primeira constante diádica racional,e efetua a multiplicação do valor de dados pela segundaconstante diádica racional.
10. O equipamento da reivindicação 8, em que asegunda lógica efetua a multiplicação de um valor de dadosno segundo grupo pelas primeira e segunda constantesdiádicas racionais usando uma única série de valcresintermediários.
11. O equipamento da reivindicação 1, em que oprimeiro fator comum é selecionado com base no número deoperações lógicas e aritméticas para a multiplicação doprimeiro grupo de pelo menos um valor de dados peloprimeiro grupo de pelo menos uma constante diádicaracional, e em que o segundo fator comum é selecionado combase no número de operações lógicas e aritméticas para amultiplicação do segundo grupo de pelo menos um valor dedados pelo segundo gri.po de pelo menos uma constantediádica racional.
12. 0 equipamento da reivindicação 11, em que asoperações lógicas e aritméticas compreendem operações dedeslocamento e adição.
13. 0 equipamento da reivindicação 11, em que osprimeiro e segundo fatores comuns são seleciciadosadicionalmente com base em pelo menos uma medida deprecisão para resultados gerados a partir da multiplicação.
14. 0 equipamento da reivindicação 1, em que oprimeiro fator comum é selecionado pela determinação donúmero de operações lógicas e aritméticas paramultiplicação do primeiro grupo de pelo menos um valor dedados por diferentes valores possíveis para o primeirogrupo de pelo menos uma constante diádica racional obtidacom diferentes valores possíveis do primeiro fator comum.
15. Ò equipamento da reivindicação 1, em quepara a multiplicação de um valor de dados no primeiro grupopor uma constante diádica racional no primeiro grupe, aprimeira lógica gera uma série de valores intermediárioscom base no valor de dados, com pelo menos um valorintermediário na série sendo gerado com base em pelo menosum outro valor intermediário na série, e provê um valorintermediário na série na forma de um valor de saída para amultiplicação do valor d>= dados pela constante dié.cicaracional.
16. O equipamento da reivindicação 1, em que asprimeira e segunda lógicas efetuam a multiplicação para umatransformada linear.
17. O equipamento da reivindicação 16,compreendendo adicionalmente:uma terceira lógica para efetuar pelo menos umaoperação borboleta com base em saídas das primeira esegunda lógicas para ger=.r resultados para a transformadalinear.
18. O equipamento da reivindicação 1, em que asprimeira e segunda lógicas efetuam a multiplicação para umatransformada de co-seno individual (DCT).
19. O equipamento da reivindicação 1, em que asprimeira e segunda lógicas efetuam a multiplicação paru umatransformada de co-seno individual inversa (IDCT).
20. O equipamento da reivindicação 1, em que asprimeira e segunda lógicas efetuam a multiplicação para umatransformada de co-seno individual (DCT) de 8 pontos ou umatransformada de co-seno individual inversa (IDCT) de 8pontos.
21. Um equipamento compreendendo:uma primeira lógica para efetuar a multiplicaçãode um primeiro grupo de dois valores de dados por umprimeiro grupo de duas constantes racionais diádicas que seaproximam de um primeiro grupo de pelo menos uma constanteirracional escalonada por um primeiro fator comum, cadaconstante diádica racional sendo um número racional cc:n umdenominador diádico; euma segunda lógica para efetuar a multiplicaçãode um segundo grupo de quatro valores de dados por umsegundo grupo de quatro constantes racionais diádicas quese aproximam de um segundo grupo de pelo menos umaconstante irracional escalonada por um segundo fator coraum.
22. Um método compreendendo:efetuar a multiplicação de um primeiro grupo depelo menos um valor de dados por um primeiro grupo de pelomenos uma constante racional diádica que se aproxima de umprimeiro grupo de pelo menos uma constante irracionalescalonada por um primeiro fator comum, cada constantediádica racional sendo um número racional com umdenominador diádico; eefetuar a multiplicação de um segundo grupo depelo menos um valor de c.ados por um segundo grupo de pelomenos uma constante racional diádica que se aproxima ie umsegundo grupo de pelo menos uma constante irracionalescalonada por um segundo fator comum, os primeiro esegundo grupos de pelo menos um valor de dados possuindotamanhos diferentes.
23. O método da reivindicação 22, compreendendoadicionalmente:efetuar a multiplicação de um terceiro grupo depelo menos um valor de dados por um terceiro grupo de pe^.omenos uma constante racional diádica que se aproxima de umterceiro grupo de pelo menos uma constante irracionalescalonada por um terceiro fator comum.
24. O método da reivindicação 22, em que aefetuação da multiplicação do primeiro grupo de pelo nenosum valor de dados compreende, para multiplicação da umvalor de dados no primeiro grupo por uma constante racionaldiádica no primeiro grupo,gerar uma série de valores intermediários combase no valor de dados, com pelo menos um valorintermediário na série sendo gerado com base em pelo menosum outro valor intermediário na série; eprover um valor intermediário na série na formade um valor de saida para a multiplicação do valor de dadospela constante racional diádica.
25. 0 método da reivindicação 22, em q>;:e aefetuação da multiplicaçãc do segundo grupo de pelo menosum valor de dados compreende efetuar a multiplicação de umvalor de dados no segundo grupo por primeira e segundaconstantes racionais diádicas no segundo grupo com base emuma única série de valores intermediários.
26. Um equipamento compreendendo:dispositivos para efetuar a multiplicação de umprimeiro grupo de pelo menos um valor de dados por umprimeiro grupo de pelo menos uma constante racional diádicaque se aproxima de um primeiro grupo de pelo menos umaconstante irracional escalonada por um primeiro fatorcomum, cada constante c.Ládica racional sendo um η Imeroracional com um denominador diádico; edispositivos para efetuar a multiplicação de umsegundo grupo de pelo menos um valor de dados por umsegundo grupo de pelo menos uma constante racional diádicaque se aproxima de um segundo grupo de pelo menoe umaconstante irracional esca/.onada por um segundo fator co.mum,os primeiro e segundo g::upos de pelo menos um valer <^edados possuindo tamanhos diferentes.
27. 0 equipamento da reivindicação 26,compreendendo adicionalmente:dispositivos para efetuar a multiplicação de umterceiro grupo de pelo nsnos um valor de dados por umterceiro grupo de pelo menos uma constante racional diádicaque se aproxima de um terceiro grupo de pelo menos umaconstante irracional escalonada por um terceiro fatorcomum.
28. 0 equipamento da reivindicação 26, em que osdispositivos para efetuar a multiplicação do primeiro grupode pelo menos um valer de dados compreende, paramultiplicação de um valor de dados no primeiro grupo poruma constante racional diádica no primeiro grupo,dispositivos para gerar uma série de valoresintermediários com base no valor de dados, com pelo menosum valor intermediário na série sendo gerado com base empelo menos um outro valor intermediário na série; edispositivos para prover um valor intermediáriona série na forma de um valor de saída para a multiplicaçãodo valor de dados pela constante racional diádica.
29. O equipamento da reivindicação 26, em que osdispositivos para efetuar a multiplicação do segundo grupode pelo menos um valor de dados compreendem dispositivospara efetuar a multiplicação de um valor de dados nosegundo grupo por primeira e segunda constantes racionaisdiádicas no segundo grupe com base em uma única série devalores intermediários.
30. Um equipamento compreendendo:uma primeira lógica para receber pelo menos umvalor de dados; euma segunda lógica para efetuar a multiplicaçãodo pelo menos um valor de dados por pelo menos umaconstante racional diádica que se aproxima de pelo menosuma constante irracional escalonada por um fator comum,cada constante diádica racional sendo um número racionalcom um denominador diádico, o fator comum sendo selecionadocom base no núniero de operações lógicas e aritméticas paraa multiplicação de pelo menos um valor de dados por pelomenos uma constante racior.al diádica.
31. O equipamento da reivindicação 30, em que asoperações lógicas e aritméticas compreendem operações dedeslocamento e adição.
32. O equipamento da reivindicação 30, em que ofator comum é selecionado também com base em pelo menos umamedida de precisão para resultados gerados a partir damultiplicação de pelo menos um valor de dados por pelomenos uma constante racional diádica.
33. O equipamento da reivindicação 30, em quepara a multiplicação de um valor de dados por uma constanteracional diádica, a segunda lógica gera uma série <3evalores intermediários com base no valor de dados, com pelomenos um valor intermediário na série sendo gerado com baseem pelo menos um outro valor intermediário, e provê umvalor intermediário na s§rie na forma de um valor de saidapara a multiplicação do valor de dados pela constantediádica racional.
34. O equipamento da reivindicação 30, em que onúmero de operações lógicas e aritméticas é determinadoefetuando-se a multiplicação de pelo menos um valor dedados por pelo menos uma constante racional diádica us.mdo-se os resultados intermediários para gerar pelo mencs umvalor de saida para a multiplicação.
35. Um método compreendendo:receber pelo menos um valor de dados; eefetuar a multiplicação do pelo menos um valor dedados por pelo menos uma constante racional diádica que seaproxima de pelo menos una constante irracional escalonadapor um fator comum, cada constante diádica racional :;-endoum número racional com um denominador diádico, o fatorcomum sendo selecionado com base no número de operaçõeslógicas e aritméticas para a multiplicação do pelo menos umvalor de dadcs por pelo menos uma constante racionaldiádica.
36. O método da reivindicação 35, em que asoperações lógicas e aritméticas compreendem operaçõe::- dedeslocamento e adição.
37. O método da reivindicação 35, em que aefetuação da multiplicação compreende, para multiplicaçãode um valor de dados por uma constante racional diádica,gerar uma série de valores intermediários combase no valor de dados, com pelo menos um valorintermediário na série sendo gerado com base em pelo menosum outro valor intermediário na série; eprover um valor intermediário na série na formade um valor de saida para a multiplicação do valor de dadospela constante racional diádica.
38. Um equipamento compreendendo:dispositivos para receber pelo menos um valor <jiedados; edispositivos para efetuar a multiplicação de pelomenos um valor de dados por pelo menos uma constanteracional diádica que se aproxima de pelo menos uit^aconstante irracional escalonada por um fator comum, cadaconstante diádica raciona L sendo um número racional com umdenominador diádico, o fator comum sendo selecionado combase no número de operações lógicas e aritméticas para amultiplicação de pelo menos um valor de dados por pelomenos uma constante racional diádica.
39. O equipamento da reivindicação 38, em que ásoperações lógicas e aritméticas compreendem operações dedeslocamento e adição.
40. 0 equipamento da reivindicação 38, em que osdispositivos para efetuar a multiplicação compreendem, paramultiplicação de um valor de dados por uma constanteracional diádica,dispositivos para gerar uma série de valoresintermediários com base no valor de dados, com pelo menosum valor intermediário ηε; série sendo gerado com base empelo menos um outro valor intermediário na série; edispositivos para prover um valor intermediáriona série na forma de um valor de saida para a multiplicaçãodo valor de dados pela constante racional diádica.
41. Um produto de programa de computadorcompreendendo:um meio para leitura por computadorcompreendendo:um código para levar um computador a receberpelo menos um valor de dados; eum código para levar um computador a efetuara multiplicação de pelo menos um valor de dados por pelomenos uma constante racional diádica que se aproxima depelo menos uma constante irracional escalonada por um fatorcomum, cada constante diádica racional sendo um númeroracional com um denominador diádico, o fator comum sendoselecionado com base no número de operações lógicas Learitméticas para a multiplicação do pelo menos um valor dedados por pelo menos uma constante racional diádica.
42. Um produto de programa de computadorcompreendendo:um meio para leitura por computadorcompreendendo:um código :ara levar um computador a efetuarmultiplicação de um primeiiro grupo de pelo menos um ^alorde dados por um primeiro grupo de pelo menos uma constanteracional diádica que se aproxima de um primeiro grupo depelo menos uma constante irracional escalonada por umprimeiro fator comum, cada constante diádica racional sendoum número racional com um denominador diádico; eum código para levar um computador a efetuarmultiplicação de um segundo grupo de pelo menos um valer dedados por um segundo grupo de pelo menos uma constanteracional diádica que se aproxima de um segundo grupo depelo menos uma constante irracional escalonada por umsegundo fator comum, os primeiro e segundo grupos de pelomenos um valor de dados possuindo tamanhos diferentes.
43. 0 meio para leitura por computador dareivindicação 22, compreendendo adicionalmente:um código para levar um computador a efetuarmultiplicação de um terceiro grupo de pelo menos um valorde dados por um terceiro qrupo de pelo menos uma constanteracional diádica que se aproxima de um terceiro grupo depelo menos uma constante irracional escalonada por umterceiro fator comum.
BRPI0706474-8A 2006-01-11 2007-01-11 transformadas com fatores comuns BRPI0706474A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US75846406P 2006-01-11 2006-01-11
US60/758,464 2006-01-11
US11/621,945 US8595281B2 (en) 2006-01-11 2007-01-10 Transforms with common factors
US11/621,945 2007-01-10
PCT/US2007/060405 WO2007082272A2 (en) 2006-01-11 2007-01-11 Transforms with common factors

Publications (1)

Publication Number Publication Date
BRPI0706474A2 true BRPI0706474A2 (pt) 2011-03-29

Family

ID=38257126

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0706474-8A BRPI0706474A2 (pt) 2006-01-11 2007-01-11 transformadas com fatores comuns

Country Status (15)

Country Link
US (1) US8595281B2 (pt)
EP (2) EP2477121A3 (pt)
JP (1) JP5086274B2 (pt)
KR (1) KR101028676B1 (pt)
CN (2) CN103096077B (pt)
AU (1) AU2007204645B2 (pt)
BR (1) BRPI0706474A2 (pt)
CA (1) CA2633897C (pt)
IL (1) IL192075A0 (pt)
MX (1) MX2008008987A (pt)
NO (1) NO20083465L (pt)
NZ (1) NZ568993A (pt)
RU (1) RU2429531C2 (pt)
TW (1) TWI359364B (pt)
WO (1) WO2007082272A2 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8595281B2 (en) 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8654833B2 (en) * 2007-09-26 2014-02-18 Qualcomm Incorporated Efficient transformation techniques for video coding
US8248660B2 (en) * 2007-12-14 2012-08-21 Qualcomm Incorporated Efficient diffusion dithering using dyadic rationals
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US8451904B2 (en) * 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9185422B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Variable localized bit-depth increase for fixed-point transforms in video coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US11030777B2 (en) * 2018-09-14 2021-06-08 Sony Group Corporation Adaptive subband coding for lifting transform

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864529A (en) 1986-10-09 1989-09-05 North American Philips Corporation Fast multiplier architecture
JPH01175186A (ja) 1987-12-29 1989-07-11 Nitto Denko Corp 熱接着用プレス装置における熱加圧具
JP2711176B2 (ja) 1990-10-02 1998-02-10 アロカ株式会社 超音波画像処理装置
CA2060407C (en) 1991-03-22 1998-10-27 Jack M. Sacks Minimum difference processor
US5233551A (en) 1991-10-21 1993-08-03 Rockwell International Corporation Radix-12 DFT/FFT building block
US5285402A (en) 1991-11-22 1994-02-08 Intel Corporation Multiplyless discrete cosine transform
US5539836A (en) 1991-12-20 1996-07-23 Alaris Inc. Method and apparatus for the realization of two-dimensional discrete cosine transform for an 8*8 image fragment
TW284869B (pt) 1994-05-27 1996-09-01 Hitachi Ltd
US5712809A (en) 1994-10-31 1998-01-27 Vivo Software, Inc. Method and apparatus for performing fast reduced coefficient discrete cosine transforms
US5701263A (en) 1995-08-28 1997-12-23 Hyundai Electronics America Inverse discrete cosine transform processor for VLSI implementation
US5930160A (en) 1996-06-22 1999-07-27 Texas Instruments Incorporated Multiply accumulate unit for processing a signal and method of operation
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6058215A (en) 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
JP3957829B2 (ja) 1997-08-29 2007-08-15 株式会社オフィスノア 動画像情報の圧縮方法およびそのシステム
KR100270799B1 (ko) 1998-01-30 2000-11-01 김영환 이산코사인변환/역이산코사인변환 프로세서
US6189021B1 (en) 1998-09-15 2001-02-13 Winbond Electronics Corp. Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
US6757326B1 (en) 1998-12-28 2004-06-29 Motorola, Inc. Method and apparatus for implementing wavelet filters in a digital system
US6473534B1 (en) 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
WO2000055757A1 (en) 1999-03-17 2000-09-21 The Johns Hopkins University A fast multiplierless transform
US6529634B1 (en) 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US6760486B1 (en) 2000-03-28 2004-07-06 General Electric Company Flash artifact suppression in two-dimensional ultrasound imaging
WO2001095142A2 (en) 2000-06-09 2001-12-13 Pelton Walter E Methods for reducing the number of computations in a discrete fourier transform
US7007054B1 (en) 2000-10-23 2006-02-28 International Business Machines Corporation Faster discrete cosine transforms using scaled terms
JP4266512B2 (ja) 2000-12-27 2009-05-20 キヤノン株式会社 データ処理装置
US6766341B1 (en) * 2000-10-23 2004-07-20 International Business Machines Corporation Faster transforms using scaled terms
DE60222894D1 (de) 2001-06-12 2007-11-22 Silicon Optix Inc Verfahen und vorrichtung zur verarbeitung einer nichtlinearen zweidimensionalen räumlichen transformation
US6870963B2 (en) 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US6917955B1 (en) 2002-04-25 2005-07-12 Analog Devices, Inc. FFT processor suited for a DMT engine for multichannel CO ADSL application
US7395210B2 (en) * 2002-11-21 2008-07-01 Microsoft Corporation Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform
US7792891B2 (en) 2002-12-11 2010-09-07 Nvidia Corporation Forward discrete cosine transform engine
TWI220716B (en) 2003-05-19 2004-09-01 Ind Tech Res Inst Method and apparatus of constructing a hardware architecture for transfer functions
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US7487193B2 (en) 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7489826B2 (en) 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
CN100388316C (zh) * 2005-04-19 2008-05-14 展讯通信(上海)有限公司 高精度的无乘法器的数字余弦变换电路及其变换方法
US20070200738A1 (en) 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070271321A1 (en) 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8595281B2 (en) 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces

Also Published As

Publication number Publication date
AU2007204645B2 (en) 2010-08-12
CN103096077B (zh) 2016-03-16
WO2007082272A2 (en) 2007-07-19
TW200809537A (en) 2008-02-16
WO2007082272A3 (en) 2008-10-02
RU2008132827A (ru) 2010-02-20
US20070168410A1 (en) 2007-07-19
AU2007204645A1 (en) 2007-07-19
CN101375274B (zh) 2013-02-13
MX2008008987A (es) 2008-11-18
CA2633897A1 (en) 2007-07-19
KR101028676B1 (ko) 2011-04-12
EP2477121A2 (en) 2012-07-18
IL192075A0 (en) 2009-08-03
JP5086274B2 (ja) 2012-11-28
JP2009534721A (ja) 2009-09-24
RU2429531C2 (ru) 2011-09-20
NO20083465L (no) 2008-10-10
EP2477121A3 (en) 2015-01-21
NZ568993A (en) 2010-09-30
CN103096077A (zh) 2013-05-08
TWI359364B (en) 2012-03-01
CN101375274A (zh) 2009-02-25
KR20090007279A (ko) 2009-01-16
CA2633897C (en) 2013-04-02
EP1999641A2 (en) 2008-12-10
US8595281B2 (en) 2013-11-26

Similar Documents

Publication Publication Date Title
BRPI0706474A2 (pt) transformadas com fatores comuns
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
Bouguezel et al. A fast 8× 8 transform for image compression
Aziz et al. Efficient parallel architecture for multi-level forward discrete wavelet transform processors
Dhandapani et al. Area and power efficient DCT architecture for image compression
Darji et al. High-performance hardware architectures for multi-level lifting-based discrete wavelet transform
Azgin et al. A computation and energy reduction technique for HEVC intra prediction
Hartenstein et al. Reconfigurable machine for applications in image and video compression
Dias et al. High performance multi-standard architecture for DCT computation in H. 264/AVC high profile and HEVC codecs
Jridi et al. Optimized Architecture Using a Novel Subexpression Elimination on Loeffler Algorithm for DCT‐Based Image Compression
Ang et al. 2-D DWT system architecture for image compression
Wahid Low complexity implementation of daubechies wavelets for medical imaging applications
De Silva et al. Exploring the Implementation of JPEG Compression on FPGA
KR20100123914A (ko) 오더-n 변환으로부터 오더-2n 변환을 생성하는 시스템 및 방법
Savić et al. Novel memory efficient hardware architecture for 5/3 lifting-based 2D Inverse DWT
Fernandez et al. Fast RNS-based 2D-DCT computation on field-programmable devices
KR101527103B1 (ko) 이산 코사인 변환 장치 및 방법
Lee et al. Inverse discrete cosine transform architecture exploiting sparseness and symmetry properties
Braatz et al. A multiplierless parallel HEVC quantization hardware for real-time UHD 8K video coding
Savić et al. Novel one-dimensional and two-dimensional forward discrete wavelet transform 5/3 filter architectures for efficient hardware implementation
Younesi et al. Area-efficient HEVC core transform using multi-sized and reusable DCT architectures
Belghith et al. FPGA-based implementation of the VVC low-frequency non-separable transform
Zhang et al. Study on versatile video coding multiple transform selection of hardware architecture based on FPGA
Cobrnic et al. An Area Efficient and Reusable HEVC 1D-DCT Hardware Accelerator
Chen et al. A low-area high-efficiency video coding inverse transform core using resource and time sharing architecture

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 8A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2288 DE 11/11/2014.

B15K Others concerning applications: alteration of classification

Ipc: G06F 17/14 (2006.01), G06F 7/483 (2006.01), G06F 7