JP3046116B2 - 離散コサイン変換器 - Google Patents

離散コサイン変換器

Info

Publication number
JP3046116B2
JP3046116B2 JP31686591A JP31686591A JP3046116B2 JP 3046116 B2 JP3046116 B2 JP 3046116B2 JP 31686591 A JP31686591 A JP 31686591A JP 31686591 A JP31686591 A JP 31686591A JP 3046116 B2 JP3046116 B2 JP 3046116B2
Authority
JP
Japan
Prior art keywords
circuit
dct
supplied
input
look
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
Application number
JP31686591A
Other languages
English (en)
Other versions
JPH05153403A (ja
Inventor
眞成 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Holdings Corp
Original Assignee
Fuji Photo Film Co Ltd
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 Fuji Photo Film Co Ltd filed Critical Fuji Photo Film Co Ltd
Priority to JP31686591A priority Critical patent/JP3046116B2/ja
Priority to US07/982,623 priority patent/US5361220A/en
Publication of JPH05153403A publication Critical patent/JPH05153403A/ja
Application granted granted Critical
Publication of JP3046116B2 publication Critical patent/JP3046116B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、離散コサイン変換(D
CT)に関し、特に2次元の離散コサイン変換の演算を
行なう離散コサイン変換器に関する。
【0002】画像データの圧縮に適した変換方法として
DCTが知られている。画像データを周波数成分に変換
する順方向のDCTと逆変換を行なって画像データを復
元する逆方向のDCT(IDCT)があるが、本明細書
では両者をDCTと呼び、一方のみを指す時は順方向
(順)DCT、逆方向(逆)DCTと呼ぶことにする。
【0003】
【従来の技術】近年、データ圧縮方式として直交変換の
1手法であるDCTが広く採用されるようになった。
【0004】図3に、DCTを用いた画像データ圧縮技
術を示す。図3(A)に示すように、対象とする画面5
0を小さな小区画51に分割する。小区画51は、たと
えば8画素×8画素の大きさを有する。すなわち、小区
画51は64個の元を含む8行8列の正方行列を構成す
る。画面50の画像情報は、小区画51毎に処理され
る。
【0005】図3(B)に示すように、小区画51の画
像データ52を順方向DCT処理装置53によって処理
し、DCT係数(F)54を得る。このDCT係数54
は、画像情報を行方向、列方向に周波数解析したものと
なっている。DCT係数54をスレッショルド処理装置
55によって処理し、一定値以下のデータを切り捨て
る。次に、ノンゼロのデータ長を短縮するために、ノー
マライズ処理装置56によってデータを一定値で除算
し、短縮したデータ57を得る。
【0006】このようにして得られた画像データ57
は、ノンゼロのものとゼロのものが混在するが、周波数
の高い成分はほとんどゼロとなる。ノンゼロデータにつ
いては、ハフマン符号化を行ない、さらにデータを圧縮
する。また、ゼロのデータについては、ランレングス符
号化を行ない、ゼロの塊を1つのデータとして扱い、さ
らにハフマン符号化を行なう。
【0007】このようにして得られた圧縮データから元
の画像を再生するときは、まずハフマン符号化の復号化
等を行なって画像データ57を再現した後、ノーマライ
ズ処理の逆処理を行ない、順方向DCT処理の逆処理で
ある逆方向DCT処理を行なうことによって画像情報を
再現する。
【0008】図3(C)は、図3(B)に示す順方向D
CT処理の内容を示す。画像データfを、転置コサイン
係数行列Dt とコサイン係数行列Dとで挟み、行列演算
を行なうことによってDCT係数Fを得る。
【0009】なお、この順方向DCT処理をさらに展開
すると、 F=Dt fD={(fD)t D}t と表せる。すなわち、画像データfにコサイン係数行列
Dを右側から乗算して行方向の周波数解析を行ない、得
られた行列を転置して行方向と列方向を変換した後、再
びコサイン係数行列Dを乗算して列方向の周波数解析を
行ない、転置することによって行方向、列方向を元の状
態に戻し、画像情報を行方向、列方向に周波数解析した
DCT係数Fを得ることができる。このような演算を行
なうには、行列の乗算を2回繰り返す必要がある。
【0010】図4にブロックサイズが8×8の場合の順
DCT変換、逆DCT変換に用いる変換係数行列を示
す。図4(A)にコサイン係数行列Dと転置コサイン係
数行列Dt を示す。
【0011】順DCT変換を上述の数式にしたがって行
なう場合は、メモリにコサイン係数行列Dを記憶させ、
入力信号とコサイン係数行列Dとの乗算(積和演算)を
行なえばよい。
【0012】なお、逆DCT変換はDCT係数Fから画
像情報fを再現する演算となり、 f=DFDt =(Ft t t t ={(FDt t t t と表される。
【0013】したがって、逆DCT変換を行なうには、
DCT係数Fに転置コサイン係数行列Dt を右から乗算
し、得られた結果を転置して行と列を交換し、再び転置
コサイン係数行列Dt を右から乗算し、得られた結果を
転置して行と列を元の状態に戻せばよい。
【0014】画像データfとコサイン係数行列Dが共に
8×8行列の場合、乗算は8×8行列の乗算となる。こ
のような順DCTまたは逆DCT処理を行なうために
は、8個の乗算器を用いることになる。
【0015】ところで、コサイン係数行列Dを観察する
と、各列において、第1〜4行と第5〜8行とが符号を
別にして対称的な構成になっていることがわかる。すな
わち、コサイン係数行列Dのある列の要素をD0 〜D7
とすると、D0 =±D7 、D 1 =±D6 、D2 =±
5 、D3 =±D4 の関係がある。また、この符号は列
によって定まっており、奇数列でプラス、偶数列でマイ
ナスとなる。
【0016】したがって、これら係数の等しい乗算はま
とめることができ、4回の乗算で1回の積和演算を実行
することが可能となる。このような変換行列の対称性を
利用して、高速アルゴリズムを用いたDCT変換も提案
されている。
【0017】ところで、DCT変換における積和演算の
係数は、ブロックサイズで決まり、固定されている。そ
こで、演算結果をROMに格納し、これをルックアップ
テーブルとして使うことでDCT演算を行なうことがで
きる。
【0018】行列乗算の一手法として、DA(Dist
ributed Arithmetic)アルゴリズム
が知られている。Y=A・Xの行列乗算を考える。Xは
mビットとする。1列分の行列演算は次のように表され
る。
【0019】
【数1】
【0020】ここで、X=−x(m-1) ・2m-1 +ΣM
(M) ・2M である。そこで、(i)式は、 Yi =Σj ijj =Σj (−Aijj (m-1) ・2(m-1) +ΣM ijj (M) ・2M ) …(ii) となる。ただし、x(M) はXのMビット目を表し、その
値は“0”または“1”である。
【0021】(ii)式はさらに、 Yi =−(Σj ijj (m-1) )・2m-1 +ΣM (Σj ijj (M) ) ・2M と表される。右辺第1項はサインビットを示し、第2項
がXの各ビットに対する乗算を示す。ここで、xj (M)
は、“0”か“1”であり、Aがn行n列の行列であれ
ば、Aijのj=0〜(n−1)の加算となる。
【0022】そこで、( )内をxj によるルックアッ
プテーブルで構成すると、ビット位置によるシフトと加
減算によって行列乗算のYi を計算することができる。
DCT演算をハードウエア構成する場合、乗算器を用い
高速化しようとすると、ハードウエアが大きくなるた
め、乗算器はなるべく用いたくない。DAアルゴリズム
は乗算器を用いずに乗算を行なう手法として適切であ
る。
【0023】図5は、このようなDAアルゴリズムを用
いた2次元DCT演算回路の例を示す。図5(A)はD
CT演算回路の全体構成を概略的に示し、図5(B)は
その1次元処理ユニットの構成を示し、図5(C)は1
次元処理ユニット内のDA積和演算ブロックの構成を示
す。
【0024】図5(A)において、入力データが1次元
DCT処理ユニット61に入力し、ルックアップテーブ
ルを用いてDCT変換がされ、出力がシフト/ラウンド
回路62に供給される。シフト/ラウンド回路62はD
CT処理によってビット数の増加した信号を再び所望ビ
ット数に揃え、丸め処理を行なう。
【0025】シフト/ラウンド回路62の出力は、転置
用RAM63に供給され、行と列が交換される。転置さ
れた信号は、別の1次元DCT処理ユニット64に供給
され、他の方向の周波数解析がなされ、信号がシフト/
ラウンド回路65に供給される。シフト/ラウンド回路
65は再びビット数を揃え、丸め処理を行なって出力デ
ータを形成する。
【0026】図5(B)は、図5(A)に示す1次元D
CT処理ユニット61、64の各々の構成を概略的に示
す。すなわち、1次元DCT処理ユニットにおいては、
入力データが前処理回路66に供給され、適当な入力信
号の組み合わせが形成される。このようにして変換され
た入力信号は2組に分けて構成されたDA積和演算ブロ
ック67、68に入力される。
【0027】たとえば、画像信号が8×8ブロックの場
合、入力データとして8個の入力信号が供給され、前処
理回路66が供給する4組の信号がDA積和演算ブロッ
ク67に供給され、他の4組がDA積和演算ブロック6
8に供給される。
【0028】このように、DA積和演算ブロックを2つ
に分割することは、ルックアップテーブルの大きさを大
きくしすぎないためと、DCT変換行列の対称性を利用
するのに好ましい。DA積和演算ブロック67、68の
出力信号は、後処理回路69に供給され、ビット数の整
理や丸め処理が行なわれる。このようにして、後処理回
路69から出力データが発生する。
【0029】図6は、このようなルックアップテーブル
を用いたDCT演算処理回路の基本構成を示す。n個の
入力信号がDCT変換のルックアップテーブルを格納す
る係数ROM81にアドレスとして供給され、ルックア
ップテーブルによって積和演算が行なわれる。ルックア
ップテーブル81の出力信号は、入力xj がサインビッ
トの場合、信号Tsによって符号反転した後、アダー8
3を介して出力信号Y i を形成する。
【0030】なお、この出力信号Yi は、係数回路84
によって1/2倍され、アダー83に帰還される。次
に、1ビット上の入力信号がルックアップテーブル81
に供給され、同様の演算が行なわれて出力信号がアダー
83に供給される。この出力信号に対し、係数回路84
を介して桁合わせされた前回の演算結果が加算され、新
たな出力信号Yi が形成される。この際、ビット位置を
揃えるために係数回路84が用いられている。
【0031】各入力信号が15ビットとすると、演算は
通常15サイクルが必要である。しかし、8×8ブロッ
クをリアルタイムに処理するには、パイプラインを用い
ても8サイクルの間に計算を終えなければならない。そ
こで、入力信号を2ビットづつ取り出し、ルックアップ
テーブルを2倍にすることによって8サイクルで演算処
理を終了させることが可能となる。
【0032】ところで、図4(A)の変換行列から明ら
かなように、コサイン係数行列Dは、各列の1〜4行と
5〜8行が対称的な構成を有する。このため、変換行列
の1〜4行と5〜8行に対しては同一のルックアップテ
ーブルを用いることができる。したがって、入力する8
個の信号を4個づつの組に分け、それぞれに対しルック
アップテーブルを用いることが有効となる。
【0033】図7は、このように8×8構成のDCT変
換において入力信号を4個づつの組に分け、各信号を2
ビットづつ供給するDCT演算回路の構成を示す。係数
ROM81aと、係数ROM81bとは同一構成のルッ
クアップテーブルを有し、4個の入力信号の上位ビット
の組と、下位ビットの組とを入力する。下位ビットを入
力するルックアップテーブル81bの出力信号は、係数
回路86によって1/2倍され、上位ビット用ルックア
ップテーブル81aの出力信号とアダー82において加
算される。
【0034】また、入力がサインビットの場合、信号T
sによって符号反転され、加算され、アダー83を介し
て出力信号Yi を形成する。また、この出力信号Y
i は、係数回路87を介してアダー83に帰還される。
係数回路87は出力信号Yi を1/4倍してアダー83
に帰還する。これは、演算が2ビットづつ行なわれるた
め引き続く演算において同一の数値が4倍の大きさにな
るのを調整するものである。
【0035】図5(C)は、図5(B)の1次元DCT
処理ユニットにおいて用いられるDA積和演算ブロック
の構成を示す。各DA積和演算ブロックは、4組の入力
信号を2ビットづつ入力する。
【0036】これら2ビットづつの4組の入力信号は、
上位ビットと下位ビットに分割され、下位ビットは下位
ビット用ルックアップテーブル71aまたは72aに供
給され、上位ビットは上位ビット用ルックアップテーブ
ル71bまたは72bに供給される。
【0037】すなわち、下位ビット用ルックアップテー
ブル71a,72aと上位ビット用ルックアップテーブ
ル71b,72bは、ビット位置は異なるが、同一の組
み合わせの入力信号を受け、同一の変換を行なう。
【0038】下位ビット用ルックアップテーブル71
a、72aの出力信号は、係数回路73に供給され、1
/2倍されてアダー74に供給される。上位ビット用ル
ックアップテーブル71b、72bの出力信号は、直接
アダー74に供給される。
【0039】係数回路73によって上位ビットと下位ビ
ットの桁数が揃えられ、アダー74においてそれらの加
算が行なわれる。アダー74の出力信号は、アキュミュ
レータ75に供給され、累積和が形成される。アキュミ
ュレータ75は、アダー74、レジスタ78、シフタ7
9を含み、前回の出力信号がシフタ79によってビット
シフトされ、アダー77に帰還される。
【0040】このようにして、アダー77は前回の出力
信号と今回の出力信号を加算し、レジスタ78に記憶さ
せる。たとえば、下位ビットから順に計算する場合は、
シフタ79は出力を1/4倍して次回の計算との桁揃え
を行なう。上位ビットから計算が行なわれる場合は、シ
フタ79は出力信号を4倍し、次回の計算との桁合わせ
を行なう。
【0041】このようにして、図5(C)のDA積和演
算ブロックを用いてDCT演算が行なわれる。なお、逆
DCT演算の場合は、変換行列が図4(A)に示す転置
行列Dt となる。Dt は、変換行列Dのような対称性を
有さないが、奇数行と偶数行を分けて考えると、第1列
と第8列、第2列と第7列、第3列と第6列、第4列と
第5列がそれぞれ対称的な構成を有する。
【0042】したがって、逆DCT演算の場合は、変換
行列を奇数行と偶数行に分離することにより、順DCT
変換と同様のルックアップテーブルの縮小が行なえる。
表1に、図5(D)の構成を用いる場合のルックアップ
テーブルの内容を示す。
【0043】
【表1】
【0044】
【表2】
【0045】
【表3】
【0046】
【表4】
【0047】
【表5】
【0048】
【表6】
【0049】
【表7】
【0050】
【表8】
【0051】表1〜表8の順DCT用ルックアップテー
ブルは、変換行列の第1列から第8列までに対応するも
のであり、入力信号x1〜x4は、変換行列の第1行〜
第4行に対応する。
【0052】逆DCT用ルックアップテーブルは、表1
のNo. 0と表2のNo. 1が第1列および第8列に対応
し、No. 0が奇数行に対応し、No. 1が偶数行に対応す
る。同様に、逆DCT用ルックアップテーブルは、表3
のNo. 2と表4のNo. 3が第2行と第7行に対応し、表
5のNo. 4と表6のNo. 5が第3列と第6列に対応し、
表7のNo. 6と表8のNo. 7が第4列と第5列に対応す
る。
【0053】表1〜表8に示すルックアップテーブルの
数値を見ると、No.1、No. 3、No. 5、No. 7につい
ては、順DCT用ルックアップテーブルと逆DCT用ル
ックアップテーブの数値が同一である。したがって、こ
れらについてはルックアップテーブルを共用することが
できる。
【0054】基本的には図5(B)の8個のDA積和演
算ブロックの各々について、図5(C)に示すように4
つのルックアップテーブが必要であり、4×8=32個
のルックアップテーブルを用いて1次元DCT変換がな
される。2次元DCT変換を行なうためには、32×2
=64個のルックアップテーブルが必要となる。
【0055】しかしながら、表1〜表8に示すように、
順DCT演算と逆DCT演算についてルックアップテー
ブルを共用できる部分があり、これらを共用させると必
要なルックアップテーブルの数は48個となる。
【0056】また、表1に示すルックアップテーブルは
さらに高い対称性を有し、これらを利用することによっ
て構成をさらに簡単化することが可能である。図8は、
ルックアップテーブルの対称性を用いてDCT変換回路
の構成をさらに簡単化した例を示す。図8(A)に示す
ように、たとえば順DCT用ルックアップテーブルNo.
0は、内容の数値から均等に8192を減算すると、表
の上半分と下半分が対称的な構成となっている。
【0057】つまり、ビットx4で他のビットを排他的
にORし、さらに符号を反転させればルックアップテー
ブルの内容を半分にすることができる。図8(B)はこ
のような対称性を用いたDA積和演算ブロックの構成を
示す。ルックアップテーブル88a、88bは、図7に
示すルックアップテーブル81a、81bの半分の内容
を有し、排他的OR回路が形成する3種類の入力信号を
入力する。
【0058】信号x4は、さらに排他的OR回路を介し
て符号反転器に供給される。その他の構成は図7と同様
である。以上説明したように、DCT演算処理装置の構
成を簡単化しようとすると、コサイン係数行列、または
転置コサイン係数行列の対称性を利用して演算を簡単化
することが必要になる。
【0059】このため、同一の変換係数を使う入力信号
をグループ化することが必要になる。複数の入力信号か
ら複数の所望の組み合わせの入力信号群を形成するため
に、加減算回路の組み合わせであるバタフライ回路が用
いられる。
【0060】図2に、DCT演算の演算結果をROM内
のテーブルとした2次元DCT演算処理装置の構成例を
示す。入力信号は、シフトレジスタ121に入力し、バ
タフライ回路122と切換部123に並列に供給され
る。バタフライ回路122は複数の入力信号から所望の
入力信号の組み合わせを形成し、出力を切換部123に
供給する。
【0061】切換部123は、DCT演算処理装置が順
DCT演算を行なうのか、逆DCT演算を行なうのかの
順/逆切換信号によっていずれの入力信号を選択するか
を決定する。切換部123によって選択された入力信号
は、演算ROM部124に供給され、行列演算される。
【0062】演算ROM部124の出力信号は、切換部
126およびバタフライ回路125に並列に供給され
る。バタフライ回路125は、複数の入力信号から所望
の複数組の入力信号の組み合わせを作成し、その出力信
号を切換部126に供給する。
【0063】切換部126は順DCT演算を行なうの
か、逆DCT演算を行なうのかの順/逆切換信号にした
がっていずれの入力信号を選択するかを決定する。切換
部126によって選択された信号は、アキュムレータ1
27に供給され、順次供給される各ビット分の演算結果
を加算する。
【0064】アキュムレータ127の出力信号は、シフ
トレジスタ128を介して転置回路130に供給され、
行と列とを転置する。転置回路130で転置された信号
は、上述の構成と同様の構成を有する他の1次元DCT
演算処理ユニットニ供給される。
【0065】すなわち、他のDCT演算処理ユニット
は、シフトレジスタ131、バタフライ回路132、切
換部133、演算ROM134、バタフライ回路13
5、切換部136、アキュムレータ137、シフトレジ
スタ138を含み、対応する各構成要素121〜128
と同様の演算を行なって演算結果を出力信号として供給
する。
【0066】
【発明が解決しようとする課題】以上説明したように、
DCT演算を行なうためのコサイン係数行列、または転
置コサイン係数行列の対称性を利用する場合、2次元D
CT演算を行なうためには4つのバタフライ回路が必要
となる。
【0067】本発明の目的は、構成が簡単な離散コサイ
ン変換器を提供することである。
【0068】
【課題を解決するための手段】本発明の離散コサイン変
換器は、第1の1次元離散コサイン変換回路と、転置回
路と、第2の1次元離散コサイン変換回路とを有する2
次元離散コサイン変換器であって、前記第1および第2
の1次元次離散コサイン変換回路はそれぞれ1次元離散
コサイン処理回路と、その入力側および出力側に接続さ
れた前処理回路と後処理回路とを有し、前記第1の1次
元離散コサイン処理回路の前処理回路と前記第2の1次
元離散コサイン処理回路の後処理回路とは共通の第1の
バタフライ回路を含み、前記第1の1次元離散コサイン
処理回路の後処理回路と前記第2の1次元離散コサイン
処理回路の舞う処理回路とは共通の第2のバタフライ回
路を含むことを特徴とする。
【0069】
【作用】順DCT演算を行なう場合は、DCT演算回路
に入力する入力信号は、バタフライ回路によって所望の
組み合わせを形成しなければならないが、DCT演算回
路の出力信号はバタフライ回路を通す必要はなく、直接
供給すればよい。逆に、逆DCT演算を行なうときは、
DCT演算回路の入力信号はバタフライ回路を通す必要
はなく、出力信号をバタフライ回路に供給する必要があ
る。
【0070】2次元DCT演算を行なう場合、4つのバ
タフライ回路のうち2つは使用されるが、残りの2つは
使用されない。したがって、2次元DCT演算を行なう
場合、2つの1次元DCT演算回路と2つのバタフライ
回路が使用できればよい。
【0071】このようにして、2次元離散コサイン変換
を行なう場合、バタフライ回路を共用することにより、
バタフライ回路を2つ省略することができる。
【0072】
【実施例】図1に本発明の実施例による2次元DCT演
算処理装置の構成を示す。複数の入力信号は、入力バッ
ファ101に供給され、入力バッファ101からセレク
タ102に送られる。
【0073】セレクタ102は、入力信号を直接1次元
DCT演算回路105に供給するか、バタフライ回路1
03に供給するかを選択する。バタフライ回路103の
出力信号は、1次元DCT回路105に供給される。す
なわち、セレクタ102によって入力信号は1次元DC
T演算回路105に直接入力することも、バタフライ回
路103を介して入力することもできる。
【0074】1次元DCT演算回路105の出力信号
は、セレクタ106に供給される。セレクタ106は、
入力信号を直接出力バッファ108に供給するか、バタ
フライ回路107に供給するかを選択する。バッファ回
路107の出力信号は出力バッファ108に供給され
る。
【0075】出力バッファ108は、転置回路110に
1次元DCT演算処理された信号を供給する。転置回路
110は、入力信号を転置し、行列の行と列とを変換す
る。行と列とを変換された行列信号は、転置回路110
から入力バッファ111を介してセレクタ112に供給
される。
【0076】セレクタ112は、入力信号を直接1次元
DCT演算回路115に供給するか、バタフライ回路1
07に供給するかを選択する。バタフライ回路107の
出力信号は、1次元DCT演算回路115に供給され
る。
【0077】1次元DCT演算回路115の出力信号
は、セレクタ116に供給される。セレクタ116は、
入力信号を直接出力バッファ117に供給するか、バタ
フライ回路103に供給するかを選択する。バタフライ
回路103の出力信号は出力バッファ117に供給され
る。出力バッファ117は、2次元DCT演算処理され
た出力信号を供給する。
【0078】順DCT演算の場合は、セレクタ102が
入力信号をバタフライ回路103に供給し、セレクタ1
06は入力信号を直接出力バッファ108に供給する。
一方、セレクタ112は入力信号をバタフライ回路10
7に供給し、セレクタ116は入力信号を直接出力バッ
ファ117に供給する。
【0079】このようにして、バタフライ回路103は
第1の1次元DCT演算回路105の入力信号を形成
し、バタフライ回路107は第2の1次元DCT演算回
路115の入力信号を形成する。
【0080】逆DCT演算においては、セレクタ102
は入力信号を直接1次元DCT演算回路105に供給
し、セレクタ106は入力信号をバタフライ回路107
に供給する。また、セレクタ112は入力信号を直接1
次元DCT演算回路115に供給し、セレクタ116は
入力信号をバタフライ回路103に供給する。
【0081】このように、バタフライ回路107は第1
の1次元DCT演算回路105の出力信号を加減算し、
バタフライ回路103は第2の1次元DCT演算回路1
15の出力信号を加減算する。
【0082】このようにして、2つのバタフライ回路1
03、107で2次元DCT演算処理装置を構成するこ
とができる。なお、1次元DCT演算回路105、11
5は行列乗算をするものであっても、ROMテーブルを
利用するものであってもよい。
【0083】図9に、DCT演算結果をROM内のテー
ブルとして有する2次元DCT演算処理装置の構成を示
す。入力信号は、入力バッファ11を介して直接または
バタフライ回路103を介してパラレル/シリアル変換
回路14に供給され、シリアル信号となってROM累積
器15aに供給される。
【0084】ROM累積器15aは、入力信号の組み合
わせから積和演算を行なって結果を出力する。ROM累
積器15aの出力信号は、直接またはバタフライ回路1
07を介して出力バッファ18に供給され、出力バッフ
ァ18から転置用RAM20に供給される。
【0085】転置用RAM20は、入力した行列信号の
行と列とを転置し、転置行列を出力する。転置出力は入
力バッファ21からバタフライ回路107を介して、ま
たは直接パラレル/シリアル変換回路24に供給され
る。
【0086】シリアル信号に変換された信号は、ROM
累積器15bに供給され、DCT演算が行なわれる。R
OM累積器6bは、ROM累積器15aと同様、入力信
号から積和演算を行なった結果を出力する。
【0087】ROM累積器15bの出力信号は、直接ま
たはバタフライ回路103を介して出力バッファ28に
送られ、出力信号を形成する。なお図中、順、逆の文字
で示したように、順DCT変換の場合には、バタフライ
回路103は第1の1次元DCT変換で使用され、バタ
フライ回路107は第2の1次元DCT変換で使用され
る。また、信号の振り分けを行なうセレクタは図示を省
略してある。
【0088】逆DCT変換においては、バタフライ回路
103は第2の1次元DCT変換で使用され、バタフラ
イ回路107は第1の1次元DCT変換で使用される。
このようにして、2つのバタフライ回路を用いて2次元
DCT演算処理装置を構成することができる。
【0089】なお、2次元DCT演算処理装置の構成を
さらに簡単化するための各部の構成を以下に説明する。
図10は、ROM累積器15の構成を概略的に示す。本
構成においては、複数の入力信号を2つずつ組にしてそ
れぞれに対してルックアップテーブルを作成する。ルッ
クアップテーブル1a、1bは、それぞれ入力信号I
1、I2およびI3、I4の2ビットづつを入力し、対
応する出力をアダー2に供給する。
【0090】ルックアップテーブル1a、1bは同じビ
ット位置の入力信号を演算するので、その出力のビット
位置は等しく、単にアダー2で加算される。アダー2の
出力はアキュミュレータ6に供給され、累積和が演算さ
れる。アキュミュレータ6は、アダー3、レジスタ4、
シフタ5を含み、入力信号はアダー3を介してレジスタ
4に記憶され、レジスタ4の出力はシフタ5を介してア
ダー3に帰還されている。
【0091】したがって、レジスタ4に記憶された前回
の値が、シフタ5を介してアダー3に供給され、新たな
信号との加算が行なわれる。このようにして、累積和が
演算される。
【0092】ルックアップテーブル1c、1bは、ルッ
クアップテーブル1a、1b同様にそれぞれ2つの信
号、I5、I6およびI7、I8の2ビット分づつを入
力し、対応する出力信号を供給する。
【0093】このように、各入力信号を2ビットづつ入
力するルックアップテーブルを構成し、信号の組み合わ
せを選択することにより、同一のルックアップテーブル
を順DCT変換、逆DCT変換に共通に使用できる可能
性が増大する。
【0094】以下ブロックサイズが8×8の場合につい
て説明する。ブロックサイズが8×8の場合、変換行列
は図4(A)に示すものとなる。なお、この表の数値
は、2次元DCT変換を行なったとき、3ビット分ずれ
た値を与える。
【0095】順DCT変換に用いる変換行列Dは、先に
説明したように、各列において上半分と下半分が対称的
な構成を有する。したがって、各列について4つの入力
信号を準備すればDCT変換演算を行なうことができ
る。
【0096】ところで、逆DCT変換に用いる変換行列
t は、変換行列Dと行列が反転しているため、Dのよ
うな対称性は失われている。しかしながら、Dt の第1
列目に着目すると、その偶数行は図4(B)左側の列に
示すように、5681、4816、3218、1130
であり、順DCT変換に用いる変換行列Dの2列目上半
分と同一である。また、Dt の8列目の偶数行の数値
は、図4(A)に示すように、−5681、−481
6、−3218、−1130であり、第1列目の偶数行
と符号が異なるが、絶対値の等しいものである。
【0097】したがって、図4(A)に示すように、順
DCT変換に用いる変換行列Dの2列目の上下は対称的
構造を有し、それらはそれぞれ逆DCT変換に用いる変
換行列Dt の第1列目、第8列目の偶数行とも対称的な
構成を有している。この対称性を用いれば、ルックアッ
プテーブルを共通化することができる。
【0098】なお、順DCT変換に用いる変換行列Dの
第2列目と逆DCTに用いる変換行列Dt の第1列目、
第8列目の対称性を説明したが、同様の対称性はDの第
4列目とDt の第2列目および第7列目、Dの第6列目
とDt の第3列目および第6列目、Dの第8列目とDt
の第4列目、第5列目についても成立している。これら
の関係を図4(B)に示す。
【0099】さらに、Dt の奇数行に対しても、Dとの
共通部分を見出すことができる。たとえば、Dt の第1
列目について奇数行を取り出すと、図4(C)に示すよ
うに4096、5352、4096、2217となる
が、このうち2つの4096は、Dの1列目の第1行、
第3行と等しい。
【0100】また、Dt の第2列目の奇数行について
は、図4(C)に示すように、第3行目、第7行目がD
の3列目の第2行、第4行と等しい。このように、Dt
の奇数行のみを取り出し、Dの要素と比較すると、その
うち半分のものに共通性が見出される。
【0101】図4(B)、(C)から明らかなように、
逆DCT変換に用いる変換行列Dt については、奇数行
と偶数行に分け、それぞれについて改めて行数を付与す
ると、順DCT変換に用いる変換行列との共通性が明ら
かである。
【0102】そこで、順DCT変換の変換行列Dについ
ては各列の1行目と3行目の組、2行目と4行目の組を
作り、逆DCT変換行列については、同様に奇数行の1
行目と3行目の組、2行目と4行目の組および偶数行の
1行目と3行目の組、2行目と4行目の組を入力信号の
組み合わせとすればよい。このような組み合わせによる
2ビットずつの変換テーブルを表9〜表16に示す。
【0103】
【表9】
【0104】
【表10】
【0105】
【表11】
【0106】
【表12】
【0107】
【表13】
【0108】
【表14】
【0109】
【表15】
【0110】
【表16】
【0111】なお、表9〜表16において順DCT用ル
ックアップテーブルのNo. 0〜No.7は、変換行列Dの
第1列〜第8列に相当する。また、逆DCT用ルックア
ップテーブルは、No. 0とNo. 1がDt の第1列目奇数
行と偶数行に対応し、同様、No. 2とNo. 3がDt の第
2列目の奇数行と偶数行に対応し、No. 4とNo. 5がD
t の第3列目の奇数行と偶数行に対応し、No. 6とNo.
7がDt の第4列目の奇数行と偶数行に対応する。
【0112】表9〜表16中、No. 0の2、4行、No.
2の1、3行、No. 4の2、4行、No. 6の1、3行
のみが順DCT用変換ルックアップテーブルと逆DCT
用変換ルックアップテーブルで異なる部分である。した
がって、これらのルックアップテーブルを構成するに
は、ROMの数は2×8+4=20でよい。2次元DC
T演算装置を構成するには、20×2=40個のROM
で足りることになる。
【0113】ところで、さらにルックアップテーブルの
内容を観察すると、実線の枠で囲まれた部分のうちその
半分、すなわち、順DCT用ルックアップテーブルのN
o. 0とNo. 4および逆DCT用ルックアップテーブル
のNo. 2とNo. 6については、2ビットずつの各入力信
号の和または差を形成し、12ビットのビットシフトを
行なうことによって形成することができる。すなわち、
これらについてはルックアップテーブルを用いなくて
も、加減算回路とビットシフタを用いれば演算を行なう
ことができる。
【0114】このような構成とすると、20個のROM
のうち4個をさらに省略することができ、必要なROM
は16個となる。2次元DCT演算装置を実現するに
は、16×2=32個のROMで足りることになる。
【0115】このような構成とすると、20個のROM
のうち4個をさらに省略することができ、必要なROM
は16個となる。2次元DCT演算装置を実現するに
は、16×2=32個のROMで足りることになる。
【0116】上述のテーブルを用いたDCT演算装置の
ROM累積部の部分を図11に示す。係数ROM1a、
1bは、ルックアップテーブルを有し、それぞれ2ビッ
トの2種類の入力x1、x3、およびx2、x4を入力
信号とする。入力信号の組み合わせは4ビットとなるの
で、係数ROMの内容は16ワードとなる。
【0117】なお、一方の係数ROM、図示の場合、係
数ROM1bには、アダー7、ビットシフトによる係数
回路8、セレクタ9がさらに接続されている。この要素
7、8、9による回路は、順DCT変換と逆DCT変換
に対するルックアップテーブルが異なる場合に入力信号
の和または差から出力信号を形成するためのものであ
り、順DCTと逆DCTに対するルックアップテーブル
が同一の場合には省略される。
【0118】また、係数ROM1bにビットシフトによ
る演算回路を付加した場合を示したが、ブロックによっ
てはこの演算回路は係数ROM1a側に接続される。セ
レクタ9は、係数ROM1bの出力か、ビットシフトに
よる出力の何れかを選択するためのものである。
【0119】係数ROM1aの出力信号とセレクタ9の
出力信号はアダー2で加算され、アダー3を介して出力
される。出力信号は、ビットシフトによる係数回路5を
介してアダー3に帰還される。
【0120】すなわち、引き続く演算においてビット位
置が順次変化するため、位置合わせを行なって累積和を
形成する。また、入力がサインビットの場合、信号Ts
により符号反転される。
【0121】図12に1次元分のDCT処理系の構成を
示す。入力信号は入力バッファ11に入力され、入力バ
ッファからバタフライ回路12またはバイパス13を介
してパラレル/シリアル変換回路14に供給される。
【0122】順DCTの場合には入力信号は入力バッフ
ァ11からバタフライ回路12に供給され、2種類の入
力信号の和、差すなわち、f0+f7、f1+f6、f
2+f5、f3+f4、f0−f7、f1−f6、f2
−f5、f3−f4が形成される。これらの信号がパラ
レル/シリアル変換回路14に供給され、それぞれ2ビ
ットずつが出力される。
【0123】逆DCTの場合には、入力バッファ11の
出力は、バイパス13を介して直接パラレル/シリアル
変換回路14に供給される。パラレル/シリアル変換回
路においては、奇数番目の入力信号f0+f2、f4、
f6と、偶数番目の入力信号f1、f3、f5、f7が
それぞれ分離されて収容される。
【0124】パラレル/シリアル変換回路14の出力
は、それぞれ4つずつまとめられ、2つの8ビット信号
を形成する。この信号は、図11に示すような構成を複
数有するROM累積器10に供給され、演算位置によっ
てルックアップテーブルを選択し、出力信号が形成され
る。ROM累積器10の出力信号は、バタフライ回路1
6またはバイパス17を介して出力バッファ18に供給
される。このようにして出力バッファ18から出力信号
が供給される。
【0125】なお、順DCTにおいては、ROM累積器
10の出力信号はバイパス17を通過し、逆DCTにお
いてはROM累積器10の出力信号はバタフライ回路1
6を通って出力バッファ18に供給される。このように
して、1次元のDCT演算が行なわれる。
【0126】図13は、2次元DCT演算の場合の等価
回路を示す。図13において、入力バッファ11、バタ
フライ回路12、バイパス13、パラレル/シリアル変
換回路14、ROM累積器10a、バタフライ回路1
6、バイパス17、出力バッファ18は、図12に示す
対応部分と同等のものである。
【0127】すなわち、これらの要素により、1次元D
CT変換が実施される。1次元DCT変換された信号
は、転置ROM20によって行と列とが変換され、入力
バッファ21に供給される。入力バッファ21、バタフ
ライ回路22、バイパス23、パラレル/シリアル変換
回路24、ROM累積器10b、バタフライ回路26、
バイパス27、出力バッファ28は、他の1次元DCT
演算回路を構成し、2次元目のDCT演算を実行する。
このようにして、2次元方向でDCT処理された出力信
号が形成される。
【0128】また、表9〜表16に示すルックアップテ
ーブルの値は、表中の最上位ビットb2によって排他的
論理和を取ることにより、その容量を半分にすることが
できる。たとえば、順DCT用ルックアップテーブルN
o. 0に関しては、表中の値から平均値12288を減
算することにより、上半分と下半分が対称的な構成とな
る。このような構成によれば、ルックアップテーブルの
容量を1/2にすることができる。
【0129】図14はこのような構成を用いたROM累
積器の構成を示す。4ビットの入力信号b2、b1、a
2、a1は、b2と残りの3つb1、a2、a1につい
てそれぞれ排他的論理和が取られ、3つの信号となって
係数ROM31a、31bに入力される。係数ROM3
1a、31bは3ビットの入力信号を受け、8ワード構
成となる。その他の点は、図11の回路と同等である。
【0130】以上実施例に沿って本発明を説明したが、
本発明はこれらに制限されるものではない。たとえば、
種々の変更、改良、組み合わせ等が可能なことは当業者
に自明であろう。
【0131】
【発明の効果】以上説明したように、本発明によれば、
2次元離散コサイン変換器のバタフライ回路を減少する
ことができる。
【0132】離散コサイン変換器を実現する半導体装置
のチップサイズ、消費電力を低減することができる。
【図面の簡単な説明】
【図1】本発明の実施例を示すブロック図である。
【図2】従来の技術を示すブロック図である。
【図3】従来の技術によるDCTを用いた画像データ圧
縮技術を説明する概略図である。
【図4】DCTの変換行列を説明するための概略図であ
る。
【図5】従来の技術によるDCT演算装置の構成を説明
するブロック図である。
【図6】従来の技術によるDCT演算装置の要部を示す
ブロック図である。
【図7】従来の技術によるDCT演算装置の要部を示す
ブロック図である。
【図8】従来の技術によるDCT演算装置の要部を示す
表およびブロック図である。
【図9】本発明の実施例によるDCT演算装置の要部を
示すブロック図である。
【図10】DCT演算装置のROM累積器の構成を示す
ブロック図である。
【図11】DCT演算装置のROM累積器の他の構成を
示すブロック図である。
【図12】DCT演算装置の1次元演算部分を示すブロ
ック図である。
【図13】2次元DCT演算装置の等価回路を示すブロ
ック図である。
【図14】DCT演算装置のROM累積器の他の構成を
示すブロック図である。
【符号の説明】
1 ルックアップテーブル 2、3 アダー 4 レジスタ 5 シフタ 6 アキュミュレータ 7 アダー 8 係数回路(シフタ) 9 セレクタ 10 ROM累積器 11 入力バッファ 12 バタフライ回路 13 バイパス 15 ROM累積器 14 パラレル/シリアル変換回路 16 バタフライ回路 17 バイパス 18 出力バッファ 20 転置RAM 21 入力バッファ 22 バタフライ回路 23 バイパス 24 パラレル/シリアル変換回路 26 バタフライ回路 27 バイパス 28 出力バッファ 101 入力バッファ 102 セレクタ 103 バタフライ回路 105 1次元DCT 106 セレクタ 107 バタフライ回路 108 出力バッファ 110 転置回路 111 入力バッファ 112 セレクタ 115 1次元DCT 116 セレクタ 117 出力バッファ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI H04N 7/30 H04N 7/133 Z (56)参考文献 特開 平3−95670(JP,A) 米国特許5361220(US,A) Proceeding of the SPIE−The Internat ional Society for Optical Engineerin g Vol.1244 1990 p234−239 (58)調査した分野(Int.Cl.7,DB名) G06F 17/14 G06T 9/00 H03M 7/30 H04N 1/41 H04N 1/415 H04N 7/30 INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1の1次元離散コサイン変換回路と、
    転置回路と、第2の1次元離散コサイン変換回路とを有
    する2次元離散コサイン変換器であって、 前記第1および第2の1次元離散コサイン変換回路はそ
    れぞれ1次元離散コサイン処理回路(105、115)
    と、その入力側および出力側に接続された前処理回路と
    後処理回路とを有し、前記第1の1次元離散コサイン処
    理回路の前処理回路と前記第2の1次元離散コサイン処
    理回路の後処理回路とは共通の第1のバタフライ回路
    (103)を含み、前記第1の1次元離散コサイン処理
    回路の後処理回路と前記第2の1次元離散コサイン処理
    回路の前処理回路とは共通の第2のバタフライ回路(1
    07)を含むことを特徴とする離散コサイン変換器。
JP31686591A 1991-11-29 1991-11-29 離散コサイン変換器 Expired - Lifetime JP3046116B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP31686591A JP3046116B2 (ja) 1991-11-29 1991-11-29 離散コサイン変換器
US07/982,623 US5361220A (en) 1991-11-29 1992-11-27 Discrete cosine transformation with reduced components

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31686591A JP3046116B2 (ja) 1991-11-29 1991-11-29 離散コサイン変換器

Publications (2)

Publication Number Publication Date
JPH05153403A JPH05153403A (ja) 1993-06-18
JP3046116B2 true JP3046116B2 (ja) 2000-05-29

Family

ID=18081776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31686591A Expired - Lifetime JP3046116B2 (ja) 1991-11-29 1991-11-29 離散コサイン変換器

Country Status (1)

Country Link
JP (1) JP3046116B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4772607B2 (ja) 2006-07-10 2011-09-14 パナソニック株式会社 2次元直交変換装置、2次元直交変換方法および撮像システム
KR100790846B1 (ko) * 2006-09-25 2008-01-02 광운대학교 산학협력단 영상처리의 정수 변환 방법 및 그의 프로세서

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceeding of the SPIE−The International Society for Optical Engineering Vol.1244 1990 p234−239

Also Published As

Publication number Publication date
JPH05153403A (ja) 1993-06-18

Similar Documents

Publication Publication Date Title
US5361220A (en) Discrete cosine transformation with reduced components
EP0506111B1 (en) DCT/IDCT processor and data processing method
EP0353223B1 (en) Two-dimensional discrete cosine transform processor
JP2945487B2 (ja) 行列乗算器
JP2821489B2 (ja) 静止画像圧縮処理装置及び方法
JPH08235159A (ja) 逆コサイン変換装置
JP6357345B2 (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
CN114007079A (zh) 变换电路、方法、装置和编码器
JP3046116B2 (ja) 離散コサイン変換器
JP2997613B2 (ja) 離散コサイン変換装置
JP3046115B2 (ja) 離散コサイン変換器
EP0696002A2 (en) Two-dimensional discrete cosine transform computing circuit
JPH0645948A (ja) 直交変換装置及び逆直交変換装置
US5671169A (en) Apparatus for two-dimensional inverse discrete cosine transform
JP3155383B2 (ja) 2モード処理装置、2次元変換装置及び静止画像データの圧縮システム
JP3214831B2 (ja) データ処理装置
JP2822684B2 (ja) 離散コサイン変換装置および逆離散コサイン変換装置
KR0154919B1 (ko) 2차원 역이산 코사인 변환 회로
JP3547567B2 (ja) 離散コサイン変換器
JP2802158B2 (ja) 逆直交変換方法および逆直交変換回路
JP3652717B2 (ja) 離散コサイン高速演算器
KR960014197B1 (ko) 파이프라인 분산연산을 이용한 8×8 이차원 이산여현 변환/역변환 처리장치
JPH0645947A (ja) 直交変換装置及び逆直交変換装置
JP2002197075A (ja) データ処理装置及びその制御方法、データ処理方法、コンピュータ可読メモリ
JPH05225224A (ja) 離散コサイン変換器

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000229

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080317

Year of fee payment: 8

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: 20080317

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12