JP2816295B2 - 離散コサイン変換方法および離散コサイン変換回路 - Google Patents
離散コサイン変換方法および離散コサイン変換回路Info
- Publication number
- JP2816295B2 JP2816295B2 JP14266393A JP14266393A JP2816295B2 JP 2816295 B2 JP2816295 B2 JP 2816295B2 JP 14266393 A JP14266393 A JP 14266393A JP 14266393 A JP14266393 A JP 14266393A JP 2816295 B2 JP2816295 B2 JP 2816295B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- adder
- discrete cosine
- cosine transform
- dct
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
いられる離散コサイン変換方法および離散コサイン変換
回路に関する。
でいる。そのため、画像データをそのままの形で処理す
るのは、メモリ容量および通信速度の点で実用的ではな
い。そこで、画像データ圧縮技術が重要となる。
PEG(Joint Photographic ExpertGroup) がある。J
PEGでは、非可逆符号化を行なう離散コサイン変換
(以下、DCTと呼ぶ)方式と、2次元空間でDPCM
(Differential PCM)を行なう可逆符号化方式が採用され
ている。以下、DCT方式の画像データ圧縮を説明す
る。
ステムの基本構成を示すブロック図である。
される原画像データのDCT処理を行ない、DCT係数
を出力する。量子化器200は、量子化テーブル400
を参照してDCT係数に量子化処理を行ない、量子化さ
れたDCT係数(以下、量子化DCT係数と呼ぶ)を出
力する。エントロピー符号化器300は、符号化テーブ
ル500を参照して量子化DCT係数にエントロピー符
号化処理を行ない、圧縮データを出力する。エントロピ
ー符号化の方式としてハフマン符号化方式が用いられ
る。
が、符号化テーブル500を参照して圧縮データにエン
トロピー復号化処理を行ない、量子化DCT係数を出力
する。逆量子化器700は、量子化テーブル400を参
照して量子化DCT係数に逆量子化処理を行ない、DC
T係数を出力する。逆DCT装置800は、DCT係数
に逆DCT処理を行ない、再生画像データを出力する。
9に示すように、画像データを複数の8×8画素ブロッ
クに分割する。図20に示すように、1つの8×8画素
ブロック内の各画素データの値をPX Y (X,Y=0,
…,7)で示す。ここで、X,Yがブロック内の画素デ
ータの位置を表わしている。
て、数1による2次元DCTを行なうう。
DCT係数を表わし、U,VはDCT係数の位置を表わ
す。U=V=0の場合にはCU =CV =1/√2とな
り、その他の場合にはCU =CV =1となる。さらに、
画素データPX Y のビット精度が8ビットの場合にはL
S =128となり、画素データPX Y のビット精度が1
2ビットの場合にはLS =2048となる。
U V が得られる。DCT係数S0 0はDC係数と呼ば
れ、残りの63個DCT係数はAC係数と呼ばれる。D
C係数は8×8画素データの平均値(直流成分)を示し
ている。数1に示されるように、各画素データPX Y よ
りLS を引くことにより、DC係数の期待値を0にレベ
ルシフトしている。
ロックの左上および右下がそれぞれDCT係数S0 0 ,
S7 7 に対応している。DCT処理されたブロックの左
から右に進むにつれて高周波の水平周波数成分を多く含
み、上から下に進むにつれて高周波の垂直周波数成分を
多く含むことになる。
T係数SU V から64個の画素データPX Y (X,Y=
0,…,7)を得ることができる。
S を加えることにより、レベルシフト分を元に戻してい
る。
つの1次元DCT回路110,130およびトランスポ
ーテンションメモリ120により行なわれる。1次元D
CT回路110は、画素データfX に関して数3による
1次元DCTを行ない、その結果を示す1次元DCT係
数FU をトランスポーテンションメモリ120の各行に
書き込む。
あり、U=0,1,2,…,7である。U=0の場合、
CU =1/√2であり、U≠0の場合、CU =1であ
る。
テンションメモリ120の各列に記憶される1次元DC
T係数FU に関して1次元DCTを行ない、その結果を
DCT係数SU V として出力する。なお、逆1次元DC
Tは、数4により表される。
る量子化テーブルQU V を用いて、数5により線型量子
化され、量子化DCT係数rU V が得られる。
フマン復号化で得られた量子化DCT係数をrU V とす
ると、数6により逆量子化を行なう。
とにより画質を制御することができる。量子化テーブル
QU V の値を小さく設定すると、量子化DCT係数r
U V の値が大きくなり、画質の良い画像を符号化するこ
とができる。逆に、量子化テーブルQU V の値を大きく
設定すると、量子化DCT係数rU V の値が小さくな
り、符号化情報量は減少するが、画質は劣化する。この
ように、量子化テーブルQU V の値を変えることによ
り、画質および符号化情報を自由に制御することができ
る。
3に示された1次元DCT係数FUを算出するためのチ
ェン(Chen)のアルゴリズムを説明する。
(E1)〜(E8)に展開することができる。図22に
おいて、F0 〜F7 は1次元DCT係数(以下、DCT
係数と呼ぶ)を表わし、f0 〜f7 は画素データを表わ
す。
C1〜C7はそれぞれ1/4・cos(1・π/16)
〜1/4・cos(7・π/16)を示している。図2
2の変換式(E1)〜(E8)は図23に示される行列
式により表される。図22および図23から明らかなよ
うに、f0 +f7 ,f1 +f6 ,f2 +f5 ,f3 +f
4 ,f0 −f7 ,f1 −f6 ,f2 −f5 ,f3 −f4
をそれぞれかっこでくくることにより、DCT係数F0
〜F7 の各々は4つの係数および4組の変数の積和によ
り表される。したがって、DCT係数F0 〜F7 を算出
するために32個の乗算器が必要となる。
C4(C1−C7),C1=C4(C3+C5),C7
=C4(C3−C5)の関係を用いると、図22に示さ
れる変換式(E5)〜(E8)は、図24に示される変
換式(E5′)〜(E8′)に変形される。
4)および図24に示される変換式(E5′)〜(E
8′)は、図25のフローブラフ(バタフライチャー
ト)で表される。図25において、丸印は加算を表わ
す。また、各線に付された係数は、その係数の乗算を表
わす。
2 =f2 +f5 ,G3 =f3 +f4,G4 =f3 −
f4 ,G5 =f2 −f5 ,G6 =f1 −f6 ,G7 =f
0 −f7である。また、H0 =G0 +G3 ,H1 =G1
+G2 ,H2 =G1 −G2 ,H3=G0 −G3 である。
H4 =G4 ,H5 =−C4・G5 +C4・G6 ,H6 =
C4・G5 +C4・G6 ,H7 =G7 である。
F4 =C4・H0 −C4・H1 ,F2 =C6・H2 +C
2・H3 ,F6 =−C2・H2 +C6・H3 である。I
4 =H4 +H5 ,I5 =H4 −H5 ,I6 =−H6 +H
7 ,I7 =H6 +H7 である。最後に、F1 =C7・I
4 +C1・I7 ,F5 =C3・I5 +C5・I6 ,F3
=−C5・I5 +C3・I6 ,F7 =−C1・I4 +C
7・I7 である。
0 〜f7 を同時に入力すると、データG0 〜G7 が同時
に得られ、次にデータH0 〜H7 が同時に得られる。さ
らに、DCT係数F0 ,F4 ,F2 ,F6 およびデータ
I4 〜I7 が同時に得られ、最後にDCT係数F1 ,F
5 ,F3 ,F7 が同時に得られる。このように、画素デ
ータf0 〜f7 を同時に入力することにより、DCT係
数F0 〜F7 がほぼ同時に得られる。
アルゴリズムを用いれば、画素データf0 〜f7 からD
CT係数F0 〜F7 が高速に得られる。したがって、1
次元DCTを高速に実行することができる。しかしなが
ら、上記のように1行分のDCT係数F0 〜F7 を算出
するために32回の乗算が必要となり、8行分のDCT
係数を算出するために256回の乗算が必要となる。乗
算器の回路規模は大きいので、チェンのアルゴリズムを
用いても、1次元DCT回路の回路規模は非常に大きく
なる。
に離散コサイン変換を行なうことができる方法および回
路を提供することである。
に関する余弦関数C(K,X)と入力データfX との積
和により入力データfX からDCT係数FK を求める離
散コサイン変換方法であって次のステップを含む。ここ
で、Xは0からN−1までの整数を表わし、Kは0から
N−1までの整数を表わす。
える。係数CKXは、各Kの値についてすべてのXの値に
対して、C(K,X)/CKX=SK の関係を満足しかつ
2のべき乗を含む。ここで、SK は定数を表わす。係数
CKXと入力データfX との積和をデータのシフトおよび
加算を用いて求めることにより各Kの値についてFK /
SK の値を算出する。
に関する余弦関数C(K,X)と入力データfX との積
和により入力データfX からDCT係数FK を求める離
散コサイン変換回路であって、複数の加算手段を備え
る。ここで、Xは0からN−1までの整数を表わし、K
は0からN−1までの整数を表わす。
fX との積和をデータのシフトおよび加算を用いて求め
ることにより各Kの値についてFK /SK の値を算出す
る。係数CKXは、各Kの値についてすべてのXの値に対
して、C(K,X)/CKX=SK の関係を満足しかつ2
のべき乗を含む。ここで、SK は定数を表わす。
の値にSK を乗算する乗算手段をさらに備える。
に関する余弦関数C(K,X)と入力データfX との積
和により入力データfX からDCT係数FK を求める離
散コサイン変換回路であって、複数段の処理ブロックを
備える。ここで、Xは0からN−1までの整数を表わ
し、Kは0からN−1までの整数を表わす。
を時系列に受け、係数CKXと入力データfX との積和を
パイプライン処理により求めることによりFK /SK の
値を算出する。ここで、SK は定数を表わす。係数CKX
は、各Kの値についてすべてのXの値に対して、C
(K,X)/CKX=SK の関係を満足しかつ2のべき乗
を含む。
処理ブロックの各々が、1または複数の加算手段と、前
段から時系列に与えられる複数のデータを順次シフトし
て保持する保持手段と、保持手段に保持された複数のデ
ータを選択的に1または複数の加算手段に与える選択手
段とを含む。
および離散コサイン変換回路は、次の点に着目してなさ
れたものである。すなわち、あるデータと2n との乗算
は、そのデータを左へnビットシフトすることにより行
なうことができ、また、あるデータと1/2n との乗算
は、そのデータを右へnビットシフトすることにより行
なうことができる。ここで、nは正の整数を表わす。ま
た、すべての整数は2のべき乗の項の加算または減算で
表わすことができる。
KXで置き換えることにより、係数CKXと入力データfX
との乗算をデータのシフトおよび加算により行なうこと
ができる。しかも、各係数CKXができる限り2のべき乗
の形を含むので、加算の回数が少なくてよい。
コサイン変換方法および離散コサイン変換回路では、乗
算器を用いることなく、最小限の数の加算器を用いて高
速にDCT係数を求めることができる。
サイン変換回路では、より高速にDCT係数を求めるこ
とができる。また、第4および第5の発明に係る離散コ
サイン変換回路では、加算手段の数が少なくなる。
ら詳細に説明する。図1はこの発明の一実施例によるD
CT方法に用いる変換式を示す図である。
により画素データf0 〜f7 から変換データF0 ′〜F
7 ′が得られる。図1に示される変換式(F1)〜(F
8)が図22に示される変換式(E1)〜(E8)と異
なるのは、各項の係数が異なる点である。ただし、各変
換式(F1)〜(F8)における4つの係数の比は、各
変換式(E1)〜(E8)における4つの係数の比と同
じである。すなわち、次の関係が成り立つ。
C2 159/27:−3:3:−159/27=C6:−C2:C2:−
C6 (161/25)・(181/28):193/26:129/26:181/28=C1:
C3:C5:C7 181/27:−639/28: 127/28 :(181/28)・ (383/27)=
C5:−C1:C7:C3 (181/28)・(383/27):−127/28:−639/28:−181/27=
C3:−C7:−C1:−C5 181/28:−129/26: 193/26 : (−181/28) ・ (161/
25)=C7:−C5:C3:−C1
データF0 ′〜F7 ′との間には図2に式(G1)〜
(G8)で示される関係がある。ここで、S0 〜S7 は
定数を表わす。したがって、図1の変換式(F1)〜
(F8)により算出された変換データF0 ′〜F7 ′に
それぞれ定数S0 〜S7 を乗算することによりDCT係
数F0 〜F7 が得られる。
はできる限り2のべき乗の形を含んでいる。あるデータ
と2n との乗算は、そのデータを左へnビットシフトす
ることにより行なうことができる。また、あるデータと
1/2n との乗算は、そのデータを右へnビットシフト
することにより行なうことができる。ここで、nは正の
整数を表わす。
算または減算で表わすことができる。たとえば、3=2
1 +20 、129=27 +20 、159=27 +25 −
20である。また、161=5・25 +20 =(22 +
20 )・25 +20 、383=3・27 −20 =(22
−20 )・27 −20 である。
(F8)における係数とデータとの乗算はデータのシフ
トおよび加算により行なうことができる。この実施例で
は、各係数ができる限り2のべき乗の形を含むので、加
算の回数が少なくてよい。
は、図3のフローグラフ(バタフライチャート)で表さ
れる。図3においても、図25と同様に、丸印は加算を
表わし、各線に付された係数はその係数の乗算を表わ
す。また、α=3,β=159,γ=181,δ=38
3,ε=161である。
f1 +f6 ,g2 =f2 +f5 ,g3 =f3 +f4 ,g
4 =f3 −f4 ,g5 =f2 −f5 ,g6 =f1 −
f6 ,g7 =f0 −f7 である。また、h0 =g0 +g
3 ,h1 =g1 +g2 ,h2 =g1 −g2 ,h3 =g0
−g3 である。h4 =(γ/28 )・g4 ,h5 =(−
1/2)・g5 +(1/2)・g6 ,h6 =(1/2)
・g5 +(1/2)・g6,h7 =(γ/28 )・g7
である。
4 ′=2・h0 −2・h1 ,F2 ′=(β/27 )・h
2 +α・h3 ,F6 ′=−α・h2 +(β/27 )・h
3 である。i4 =h4 +h5 ,i5 =h4 −h5 ,i6
=−h6 +h7 ,i7 =h6+h7 である。最後に、F
1 ′=i4 +(ε/25 )・i7 ,F5 ′=(δ/
27 )・i5 +2・i6 ,F3 ′=−2・i5 +(δ/
27 )・i6 ,F7 ′=−(ε/25 )・i4 +i7 で
ある。
〜f7 を同時に入力すると、データg0 〜g7 が同時に
得られ、次にデータh0 〜h7 が同時に得られる。さら
に、変換データF0 ′,F4 ′,F2 ′,F6 ′および
データi4 〜i7 が同時に得られ、最後に変換データF
1 ′,F5 ′,F3 ′,F7 ′が同時に得られる。この
ように、画素データf0 〜f7 を同時に入力することに
より、変換データF0′〜F7 ′がほぼ同時に得られ
る。
びDCT回路を用いた画像データ圧縮システムにおける
乗算回数を従来のDCT方法を用いた画像データ圧縮シ
ステムにおける乗算回数と比較して示す図である。
ムでは、2次元DCTを実行するために256回の乗算
が必要であり、量子化を実行するために64回の乗算が
必要となる。
に、この実施例によるシステムでは、2次元DCTを実
行するために乗算は必要でなく、量子化を実行するため
に64回の乗算が必要である。図2の式(G1)〜(G
8)における乗算は2次元DCTにおいて行なう必要は
なく、量子化テーブルにおいて定数S0 〜S7 を考慮す
ることにより量子化処理に含めることができる。
を説明する。図3のフローグラフに示すように、画素デ
ータf0 〜f7 から変換データF0 ′〜F7 ′を求める
ための演算を6個のブロックBK1,BK2−1,BK
2−2,BK3−1,BK3−2,BK4に分割する。
7 からデータg0 〜g3 が算出される。ブロックBK2
−1では、データg0 〜g3 からデータh0 〜h3 が算
出され、ブロックBK2−2では、データg4 〜g7 か
らデータh4 〜h7 が算出される。ブロックBK3−1
では、データh0 〜h3 から変換データF0 ′,
F4′,F2 ′,F6 ′が算出される。ブロックBK3
−2では、データh4 〜h7からデータi4 〜i7 が算
出される。ブロックBK4では、データi4 〜i7 から
変換データF1 ′,F5 ′,F3 ′,F7 ′が算出され
る。
めの回路を示す図であり、図6は図5の回路の動作を説
明するためのタイミングチャートである。
スタReg00〜Reg08、バッファB00〜B0
4、インバータI04および加算器ADD00を含む。
端子には選択信号SEL00〜SEL03がそれぞれ与
えられる。インバータI04の出力イネーブル端子には
選択信号SEL04が与えられ、バッファB04の出力
イネーブル端子には選択信号/SEL04が与えられ
る。選択信号/SEL04は選択信号SEL04の反転
信号である。加算器ADD00のキャリー入力端子には
選択信号SEL04と同位相の加減算信号A/S00が
与えられる。
ネーブル端子に与えられる選択信号が“H”のときに活
性化される。また、加算器のキャリー入力端子には、加
算時に“L”の信号が与えられ、減算時に“H”の信号
が与えられる。
次与えられ、レジスタReg00〜Reg08に順次シ
フトされる。
おいては、選択信号SEL04が“H”となる。それに
より、レジスタReg00に順次与えられるデータf4
〜f7 がインバータI04を介して加算器ADD00の
一方の入力端子に順次与えられる。また、選択信号SE
L00〜SEL03が順次“H”に立ち上がる。それに
より、レジスタReg01,Reg03,Reg05,
Reg07のデータf3 ,f2 ,f1 ,f0 がそれぞれ
バッファB00,B01,B02,B03を介して加算
器ADD00の他方の入力端子に順次与えられる。その
結果、加算器ADD00から出力端子gX にデータg4
(=f3 −f4 ),g5 (=f2 −f5),g6 (=f
1 −f6 ),g7 (=f0 −f7 )が順次出力される。
SEL04が“L”となる。それにより、レジスタRe
g08に順次与えられるデータf0 〜f3 がバッファB
04を介して加算器ADD00の一方の入力端子に順次
与えられる。また、選択信号SEL00〜SEL03が
順次“H”に立ち上がる。それにより、レジスタReg
01,Reg03,Reg05,Reg07のデータf
7 ,f6 ,f5 ,f4がそれぞれバッファB00,B0
1,B02,B03を介して加算器ADD00の他方の
入力端子に順次与えられる。その結果、加算器ADD0
0から出力端子gX にデータg0 (=f0 +f7 ),g
1 (=f1 +f6 ),g2 (=f2 +f5 ),g3 (=
f3 +f4 )が順次出力される。
るための回路を示す図であり、図8は図7の回路の動作
を説明するためのタイミングチャートである。
レジスタReg10〜Reg14、バッファB10〜B
12、インバータI12および加算器ADD10を含
む。
端子にはそれぞれ選択信号/SEL10,SEL10が
与えられ、インバータI12およびバッファB12の出
力イネーブル端子にはそれぞれ選択信号SEL12,/
SEL12が与えられる。加算器ADD10のキャリー
入力端子には選択信号SEL12と同位相の加減算信号
A/S10が与えられる。
力端子gX に接続される。それにより、レジスタReg
10〜Reg14には出力端子gX から与えられるデー
タg4 〜g7 ,g0 〜g3 が順次シフトされる。
ては、選択信号SEL10が“L”となり、選択信号S
EL12が“H”となる。それにより、レジスタReg
10のデータg2 がインバータI12を介して加算器A
DD10の一方の入力端子に与えられる。また、レジス
タReg11のデータg1 がバッファB10を介して加
算器ADD10の他方の入力端子に与えられる。その結
果、加算器ADD10から出力端子hX にデータh
2 (=g1 −g2 )が出力される。
L10が“H”となり、選択信号SEL12も“H”と
なる。それにより、レジスタReg10のデータg3 が
インバータI12を介して加算器ADD10の一方の入
力端子に与えられる。また、レジスタReg13のデー
タg0 がバッファB11を介して加算器ADD10の他
方の入力端子に与えられる。その結果、加算器ADD1
0から出力端子hX にデータh3 (=g0 −g3 )が出
力される。
L10が“L”となり、選択信号SEL12も“L”と
なる。それにより、レジスタReg11のデータg3 が
バッファB10を介して加算器ADD10の一方の入力
端子に与えられる。また、レジスタReg14のデータ
g0 がバッファB12を介して加算器ADD10の他方
の入力端子に与えられる。その結果、加算器ADD10
から出力端子hX にデータh0 (=g0 +g3 )が出力
される。
L10が“H”となり、選択信号SEL12が“L”と
なる。それにより、レジスタReg13のデータg2 が
バッファB11を介して加算器ADD10の一方の入力
端子に与えられる。また、レジスタReg14のデータ
g1 がバッファB12を介して加算器ADD10の他方
の入力端子に与えられる。その結果、加算器ADD10
から出力端子hX にデータh1 (=g1 +g2 )が出力
される。
るための回路を示す図であり、図10は図9の回路の動
作を説明するためのタイミングチャートである。
レジスタReg30〜Reg33、レジスタReg34
〜Reg36、バッファB30〜B34、インバータI
30、および加算器ADD30〜ADD33を含む。加
算器ADD31〜ADD33およびレジスタReg34
〜Reg36が演算ブロックBL30を構成する。
出力イネーブル端子には選択信号SEL30が与えら
れ、バッファB31,B32の出力イネーブル端子には
選択信号/SEL30が与えられる。バッファB33,
B34の出力イネーブル端子にはそれぞれ選択信号SE
L31,/SEL31が与えられる。加算器ADD30
のキャリー入力端子には選択信号SEL30と同位相の
加減算信号A/S30が与えられる。加算器ADD3
1,ADD32,ADD33のキャリー入力端子には
“L”の信号が与えられる。
データを左へそれぞれ2ビット、4ビットおよび5ビッ
トシフトして与えることを示している。また、1RS,
8RSはデータをそれぞれ右へ1ビットおよび8ビット
シフトして与えることを示している。加算器ADD31
はγ′(=5)の乗算を行ない、加算器ADD31,A
DD32はγ″(=21)の乗算を行ない、演算ブロッ
クBL30はγ(=181)の乗算を行なう。
力端子gX に接続される。それにより、レジスタReg
30〜Reg33には出力端子gX から与えられるデー
タg4 〜g7 ,g0 〜g3 が順次シフトされる。
いては、レジスタReg35から加算器ADD33の一
方の入力端子にデータγ′g4 ×25 が与えられ、レジ
スタReg36から加算器ADD33の他方の入力端子
にデータγ″g4 が与えられる。それにより、加算器A
DD33から出力端子h2X にデータh4 (=γ/
28 )が出力される。このとき、選択信号SEL31が
“L”となっている。したがって、出力端子h2X のデ
ータh4 がバッファB34を介して出力端子hX に出力
される。
L30が“H”となる。それにより、レジスタReg3
1のデータg6 がバッファB30を介して加算器ADD
30の一方の入力端子に与えられる。また、レジスタR
eg32のデータg5 がインバータI30を介して加算
器ADD30の他方の入力端子に与えられる。その結
果、加算器ADD30から出力端子h1X にデータh5
(=(g6 −g5 )/2)が出力される。このとき、選
択信号SEL31が“H”となっている。したがって、
出力端子h1X のデータh5 がバッファB33を介して
出力端子hX に出力される。
L30が“L”となる。それにより、レジスタReg3
2のデータg6 がバッファB31を介して加算器ADD
30の一方の入力端子に与えられる。また、レジスタR
eg33のデータg5 がバッファB32を介して加算器
ADD30の他方の入力端子に与えられる。その結果、
加算器ADD30から出力端子h1X にデータh6 (=
(g5 +g6 )/2)が出力される。このとき、選択信
号SEL31が“H”となっている。したがって、出力
端子h1X のデータh6 がバッファB33を介して出力
端子hX に出力される。
g35から加算器ADD33の一方の入力端子にデータ
γ′g7 ×25 が与えられ、レジスタReg36から加
算器ADD33の他方の入力端子にデータγ″g7 が与
えられる。それにより、加算器ADD33から出力端子
h2X にデータh7 (=γ/28 )が出力される。この
とき、選択信号SEL31が“L”となっている。した
がって、出力端子h2X のデータh7 がバッファB34
を介して出力端子hX に出力される。
するための回路を示す図であり、図12は図11の回路
の動作を説明するためのタイミングチャートである。
レジスタReg20〜Reg22、直列に接続されたレ
ジスタReg23〜Reg25、レジスタReg26,
Reg27、バッファB20,B21、インバータI2
0〜I22、および加算器ADD20〜ADD24を含
む。加算器ADD21が演算ブロックBL20を構成す
る。また、加算器ADD22,ADD23およびレジス
タReg26が演算ブロックBL21を構成する。
出力イネーブル端子にはそれぞれ選択信号SEL20,
/SEL20が与えられ、バッファB21およびインバ
ータI21の出力イネーブル端子にはそれぞれ選択信号
SEL21,/SEL21が与えられる。加算器ADD
20のキャリー入力端子には選択信号SEL20と同位
相の加減算信号A/S20が与えられ、加算器ADD2
4のキャリー入力端子には選択信号SEL21と同位相
の加減算信号A/S21が与えられる。加算器ADD2
1,ADD23のキャリー入力端子には“L”の信号が
与えられる。加算器ADD22のキャリー入力端子には
“H”の信号が与えられる。
はデータをそれぞれ左へ1ビット、5ビットおよび7ビ
ットシフトして与えることを示している。演算ブロック
BL20はα(=3)の乗算を行ない、加算器ADD2
2はβ′(=31)の乗算を行ない、演算ブロックBL
21はβ(=159)の乗算を行なう。
の出力端子hX に接続される。それにより、レジスタR
eg20〜Reg22には出力端子hX から与えられる
データh0 〜h3 が順次シフトされる。
いては、選択信号SEL21が“H”となる。それによ
り、レジスタReg23のデータαh3 がバッファB2
1を介して加算器ADD24の一方の入力端子に与えら
れる。また、レジスタReg27から加算器ADD24
の他方の入力端子にデータβh2 /27 が与えられる。
その結果、加算器ADD24から出力端子F1X に変換
データF2 ′(=β/27 ・h2 +αh3 )が出力され
る。
L20が“H”となる。それにより、レジスタReg2
0のデータh1 がインバータI20を介して加算器AD
D20の一方の入力端子に与えられる。また、レジスタ
Reg21のデータh0 が加算器ADD20の他方の入
力端子に与えられる。その結果、加算器ADD20から
出力端子F0X に変換データF4 ′(=2h0 −2
h1 )が出力される。
(選択信号/SEL21は“H”)となっている。それ
により、レジスタReg25のデータαh2 がインバー
タI21を介して加算器ADD24の一方の入力端子に
与えられる。また、レジスタReg27から加算器AD
D24の他方の入力端子にデータβh3 /27 が与えら
れる。その結果、加算器ADD24から出力端子F1X
に変換データF6 ′(=−αh2 +β/27 ・h3 )が
出力される。
L20が“L”となる。それにより、レジスタReg2
2のデータh0 がバッファB20を介して加算器ADD
20の一方の入力端子に与えられる。また、レジスタR
eg21のデータh1 が加算器ADD20の他方の入力
端子に与えられる。その結果、加算器ADD20から出
力端子F0X に変換データF0 ′(=2h0 +2h1 )
が出力される。
するための回路を示す図であり、図14は図13の回路
の動作を説明するためのタイミングチャートである。
レジスタReg40〜Reg42、バッファB40〜B
42、インバータI40および加算器ADD40を含
む。
端子にはそれぞれ選択信号SEL40,/SEL40が
与えられる。バッファB41およびインバータI40の
出力イネーブル端子にはそれぞれ選択信号SEL41,
/SEL41が与えられる。加算器ADD40のキャリ
ー入力端子には選択信号/SEL41と同位相の加減算
信号A/S40が与えられる。
の出力端子hX に接続される。それにより、レジスタR
eg40〜Reg42には出力端子hX から与えられる
データh4 〜h7 が順次シフトされる。
いては、選択信号SEL40および選択信号SEL41
が“H”となる。それにより、レジスタReg40のデ
ータh5 がバッファB40を介して加算器ADD40の
一方の入力端子に与えられる。また、レジスタReg4
1のデータh4 がバッファB41を介して加算器ADD
40の他方の入力端子に与えられる。その結果、加算器
ADD40から出力端子iX にデータi4 (=h4 +h
5 )が出力される。
L40および選択信号SEL41が“L”となる。それ
により、レジスタReg41のデータh5 がインバータ
I40を介して加算器ADD40の一方の入力端子に与
えられる。また、レジスタReg42のデータh4 がバ
ッファB42を介して加算器ADD40の他方の入力端
子に与えられる。その結果、加算器ADD40から出力
端子iX にデータi5(=h4 −h5 )が出力される。
L40が“H”となり、選択信号SEL41が“L”と
なる。それにより、レジスタReg40のデータh7 が
バッファB40を介して加算器ADD40の一方の入力
端子に与えられる。また、レジスタReg41のデータ
h6 がインバータI40を介して加算器ADD40の他
方の入力端子に与えられる。その結果、加算器ADD4
0から出力端子iX にデータi6 (=h7 −h6 )が出
力される。
L40が“L”となり、選択信号SEL41が“H”と
なる。それにより、レジスタReg41のデータh7 が
バッファB41を介して加算器ADD40の一方の入力
端子に与えられる。また、レジスタReg42のデータ
h6 がバッファB42を介して加算器ADD40の他方
の入力端子に与えられる。その結果、加算器ADD40
から出力端子iX にデータi7 (=h6 +h7 )が出力
される。
ための回路を示す図であり、図16は図15の回路の動
作を説明するためのタイミングチャートである。
スタReg50〜Reg56、レジスタReg57〜R
eg60、バッファB50〜B53、インバータI50
〜I53、および加算器ADD50〜ADD55を含
む。加算器ADD50,ADD51およびレジスタRe
g57が演算ブロックBL50を構成し、加算器ADD
53,ADD54およびレジスタReg59が演算ブロ
ックBL51を構成する。
端子には選択信号SEL50が与えられ、インバータI
50およびバッファB52の出力イネーブル端子には選
択信号/SEL50が与えられる。インバータI53お
よびバッファB53の出力イネーブル端子にはそれぞれ
選択信号SEL50,/SEL50が与えられる
選択信号/SEL50と同位相の加減算信号A/S50
が与えられ、加算器ADD55のキャリー入力端子には
選択信号SEL50と同位相の加減算信号A/S51が
与えられる。加算器ADD50,ADD53,ADD5
4のキャリー入力端子には“L”の信号が与えられ、加
算器ADD51のキャリー入力端子には“H”の信号が
与えられる。
行ない、演算ブロックBL50はδ(=383)の乗算
を行なう。加算器ADD53はε′(=5)の乗算を行
ない、演算ブロックBL51はε(=161)の乗算を
行なう。
の出力端子iX に接続される。それにより、レジスタR
eg50〜Reg56には出力端子iX から与えられる
データi4 〜i7 が順次シフトされる。
いては、選択信号SEL50が“H”となる。それによ
り、レジスタReg50のデータi7 がバッファB50
を介して加算器ADD55の一方の入力端子に与えられ
る。また、レジスタReg60からインバータI53を
介して加算器ADD55の他方の入力端子にデータεi
4 /25 が与えられる。その結果、加算器ADD55か
ら出力端子F3X に変換データF7 ′(=−ε/25 ・
i4 +i7 )が出力される。
L50は“H”となっている。それにより、レジスタR
eg52からバッファB51を介して加算器ADD52
の一方の入力端子にデータ2i6 が与えられる。また、
レジスタReg58から加算器ADD52の他方の入力
端子にデータδi5 /27 が与えられる。その結果、加
算器ADD52から出力端子F2X に変換データF5 ′
(=δ/27 ・i5 +2i6 )が出力される。
L50が“L”となる。それにより、レジスタReg5
4からインバータI50を介して加算器ADD52の一
方の入力端子にデータ2i5 が与えられる。また、レジ
スタReg58から加算器ADD52の他方の入力端子
にデータδi6 /27 が与えられる。その結果、加算器
ADD52から出力端子F2X に変換データF3 ′(=
−2i5 +δ/27 ・i6 )が出力される。
L50は“L”となっている。それにより、レジスタR
eg56のデータi4 がバッファB52を介して加算器
ADD55の一方の入力端子に与えられる。また、レジ
スタReg60からバッファB53を介して加算器AD
D55の他方の入力端子にデータεi7 /25 が与えら
れる。その結果、加算器ADD55から出力端子F3X
に変換データF1 ′(=i4 +ε/25 ・i7 )が出力
される。
では、18個の加算器を用いて1次元DCTが行われ
る。
2−1,BK2−2,BK3−1,BK3−2,BK4
は、図17に示される逆DCT回路にも用いることがで
きる。逆DCT回路では、変換データF0 ′〜F7 ′か
ら画素データf0 〜f7 が求められる。
F5 ′,F3 ′,F7 ′を与えると、データi4 〜i7
が得られる。ブロックBK3−1に変換データF0 ′,
F4 ′,F2 ′,F6 ′を与えると、データh0 〜h3
が得られる。ブロックBK3−2にデータi4 〜i7 を
与えると、データh4 〜h7 が得られる。ブロックBK
2−1にデータh0 〜h3 を与えると、データg0 〜g
3 が得られる。ブロックBK2−2にデータh4 〜h7
を与えると、データg4 〜g7 が得られる。ブロックB
K1にデータg0 〜g7 を与えると、画素データf0 〜
f7 が得られる。
図13および図15に示される回路を用いて逆DCT回
路を構成することができる。
高速に離散コサイン変換を行なうことができる離散コサ
イン変換方法が得られる。第2ないし第5の発明によれ
ば、小さい回路規模で高速に離散コサイン変換を行なう
ことができる離散コサイン変換回路が得られる。
サイン変換回路は、より高速に離散コサイン変換を実行
することができる。また、第4および第5の発明に係る
離散コサイン変換回路は、より小さい回路規模で構成さ
れる。
いられる変換式を示す図である。
る。
表わす図である。
乗算回数を従来のDCT方法における乗算回数と比較し
て示す図である。
1つのブロックを実現するための回路を示す図である。
チャートである。
1つのブロックを実現するための回路を示す図である。
チャートである。
1つのブロックを実現するための回路を示す図である。
グチャートである。
る1つのブロックを実現するための回路を示す図であ
る。
ングチャートである。
る1つのブロックを実現するための回路を示す図であ
る。
ングチャートである。
る1つのブロックを実現するための回路を示す図であ
る。
ングチャートである。
を表わす図である。
構成を示すブロック図である。
ブロックを示す図である。
ック図である。
図である。
る。
のフローグラフを表わす図である。
DD30〜ADD33,ADD40,ADD50〜AD
D55 加算器 Reg00〜Reg08,Reg10〜Reg14,R
eg20〜Reg27,Reg30〜Reg35,Re
g40〜Reg42,Reg50〜Reg60レジスタ B00〜B04,B10〜B12,B20〜B21,B
30〜B31,B40〜B42,B50〜B53 バッ
ファ I04,I12,I20〜I22,I30,I31,I
40,I50〜I53インバータ BK1,BK2−1,BK2−2,BK3−1,BK3
−2,BK4 ブロック なお、各図中同一符号は同一または相当部分を示す。
Claims (5)
- 【請求項1】 XおよびKに関する余弦関数C(K,
X)と入力データfXとの積和により前記入力データf
X からDCT係数FK を求める離散コサイン変換方法で
あって、前記Xは0からN−1までの整数を表わし、前
記Kは0からN−1までの整数を表わし、 前記余弦関数C(K,X)を係数CKXで置き換え、前記
係数CKXは、各Kの値についてすべてのXの値に対し
て、 C(K,X)/CKX=SK の関係を満足しかつ2のべき乗を含み、前記SK は定数
を表わし、 前記係数CKXと前記入力データfX との積和をデータの
シフトおよび加算を用いて求めることにより各Kの値に
ついてFK /SK の値を算出する、離散コサイン変換方
法。 - 【請求項2】 XおよびKに関する余弦関数C(K,
X)と入力データfXとの積和により前記入力データf
X からDCT係数FK を求める離散コサイン変換回路で
あって、前記Xは0からN−1までの整数を表わし、前
記Kは0からN−1までの整数を表わし、 係数CKXと前記入力データfX との積和をデータのシフ
トおよび加算を用いて求めることにより各Kの値につい
てFK /SK の値を算出する複数の加算手段を備え、 前記係数CKXは、各Kの値についてすべてのXの値に対
して、 C(K,X)/CKX=SK の関係を満足しかつ2のべき乗を含み、前記SK は定数
を表わす、離散コサイン変換回路。 - 【請求項3】 前記FK /SK の値に前記SK を乗算す
る乗算手段をさらに備える、請求項2に記載の離散コサ
イン変換回路。 - 【請求項4】 XおよびKに関する余弦関数C(K,
X)と入力データfXとの積和により前記入力データf
X からDCT係数FK を求める離散コサイン変換回路で
あって、前記Xは0からN−1までの整数を表わし、前
記Kは0からN−1までの整数を表わし、 前記入力データfX を時系列に受け、係数CKXと前記入
力データfX との積和をパイプライン処理により求める
ことによりFK /SK の値を算出する複数段の処理ブロ
ックを備え、前記SK は定数を表わし、 前記係数CKXは、各Kの値についてすべてのXの値に対
して、 C(K,X)/CKX=SK の関係を満足しかつ2のべき乗を含む、離散コサイン変
換回路。 - 【請求項5】 前記複数段の処理ブロックの各々は、 1または複数の加算手段と、 前段から時系列に与えられる複数のデータを順次シフト
して保持する保持手段と、 前記保持手段に保持された前記複数のデータを選択的に
前記1または複数の加算手段に与える選択手段とを含
む、請求項4に記載の離散コサイン変換回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14266393A JP2816295B2 (ja) | 1993-05-21 | 1993-05-21 | 離散コサイン変換方法および離散コサイン変換回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14266393A JP2816295B2 (ja) | 1993-05-21 | 1993-05-21 | 離散コサイン変換方法および離散コサイン変換回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06332933A JPH06332933A (ja) | 1994-12-02 |
JP2816295B2 true JP2816295B2 (ja) | 1998-10-27 |
Family
ID=15320604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14266393A Expired - Lifetime JP2816295B2 (ja) | 1993-05-21 | 1993-05-21 | 離散コサイン変換方法および離散コサイン変換回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2816295B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8385424B2 (en) * | 2006-06-26 | 2013-02-26 | Qualcomm Incorporated | Reduction of errors during computation of inverse discrete cosine transform |
KR101490153B1 (ko) * | 2010-11-30 | 2015-02-05 | 엠.에스. 라마이아 스쿨 오브 어드밴스드 스터디스 | 멀티코어 프로세서를 사용하는 웨이블릿 변환 |
-
1993
- 1993-05-21 JP JP14266393A patent/JP2816295B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
インターフェース VOL.22,No.8 P143−153 1996 |
Also Published As
Publication number | Publication date |
---|---|
JPH06332933A (ja) | 1994-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shams et al. | NEDA: A low-power high-performance DCT architecture | |
JP4560033B2 (ja) | ビデオまたはイメージのデータを復号化するための方法 | |
CN100442669C (zh) | 减少位深的量子化方法 | |
US5299025A (en) | Method of coding two-dimensional data by fast cosine transform and method of decoding compressed data by inverse fast cosine transform | |
CN102016829A (zh) | 计算逆向离散余弦变换期间的误差减少 | |
US4594687A (en) | Address arithmetic circuit of a memory unit utilized in a processing system of digitalized analogue signals | |
US8364741B2 (en) | Motion-compensating device with booth multiplier that reduces power consumption without increasing the circuit size | |
JP2004056758A (ja) | 可変長符号化装置、及びその方法 | |
JPS622721A (ja) | 画像信号の符号化・復号化装置 | |
JP2816295B2 (ja) | 離散コサイン変換方法および離散コサイン変換回路 | |
US5555321A (en) | Image data binary coding method and apparatus | |
US5726712A (en) | Reduced bit number motion vector detection | |
US6091855A (en) | method and apparatus for encoding signal method and apparatus for decoding signal and recording medium | |
JPH08307868A (ja) | 動画像復号装置 | |
JP3052516B2 (ja) | 符号化データ処理装置 | |
US20090198757A1 (en) | Method and device for avoiding rounding errors after performing an inverse discrete cosine transformation | |
CN100544438C (zh) | 信号变换、逆变换方法和图象编码、译码装置及方法 | |
KR100303744B1 (ko) | 화상 압축·신장 방법 및 화상 압축·신장 장치 | |
KR100465156B1 (ko) | 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법 | |
JP3366033B2 (ja) | アドレス変換回路及びこれを備えた直交変換回路 | |
JPH0714205B2 (ja) | 順次再生ベクトル量子化符号化・復号化装置 | |
JPH1070721A (ja) | 逆量子化・逆dct回路 | |
JPH04222121A (ja) | データ圧縮装置 | |
JPH04222122A (ja) | データ圧縮装置 | |
KR0164830B1 (ko) | 역양자화회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070814 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080814 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080814 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090814 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100814 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110814 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110814 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 14 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 14 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130814 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term |