図面 (/)

技術 データ圧縮伸張装置

出願人 カシオ計算機株式会社
発明者 渡邉亨
出願日 1992年12月30日 (27年11ヶ月経過) 出願番号 1992-360890
公開日 1994年7月22日 (26年5ヶ月経過) 公開番号 1994-204888
状態 特許登録済
技術分野 画像処理 TV信号の圧縮,符号化方式 TV信号の圧縮,符号化方式 圧縮、伸長・符号変換及びデコーダ
主要キーワード ディレイユニット エネルギ集中 シリアル変換装置 演算段 傾斜変換 数値部分 C言語 加減算結果
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1994年7月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

目的

小さな回路規模高速にデータの圧縮伸張を行なうことが可能なデータ圧縮伸張装置を実現する。

構成

データ圧縮伸張装置のデータ変換演算装置90は、DCT演算係数を簡単な整数比に変えた形のシリアル回路により構成するとともに、odd側については演算式をそのままハードウェア化したシリアル回路100を含んで構成し、パラレルシリアル変換装装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施す。また、シリアル回路100は、DCT演算式を展開して得られた各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合の該数値の部分を作成するシリアル回路101と、このシリアル回路101により計算された係数出力に対して式の横方向に符号分を含めた加減算を行なって出力x0〜x3として出力するシリアル回路102により構成して演算式をそのままハードウェア化する。

概要

背景

ISDNCD−ROM前提とした画像の高能率符号化技術において、DCT(Discrete Cosine Transform:離散コサイン変換)が高能率符号化技術の主流になりつつある。このDCTに限らず、高能率符号化して画素当り平均ビット数を減らすと、画像の品質落ち圧縮率を上げると、画質劣化を引き起こす。例えば、現行標準テレビ信号を1.5Mビット/秒に圧縮した場合に問題となるのは、輪郭部分の劣化とDCTで処理するブロック単位(例えば8×8画素)に発生するブロック歪である。逆変換して画素を再生するときに、ブロック内のDCT出力をすべて線形和することになるが、8×8画素から成るブロックのDCT出力64個のうち、一つでも情報損失があると、ブロック内全体の再生画素に劣化が生じる。

ここで、DCT変換は、直交変換の一つであり、カールネン・レーベ変換と並んでエネルギ集中度の最も高い変換法といわれるものである。

いま、信号f(j) (j=0、1、…、N−1)の一次元のDCT変換による結果F(u) (u=0、1、…、N−1)は数1で定義される。

概要

小さな回路規模高速にデータの圧縮伸張を行なうことが可能なデータ圧縮伸張装置を実現する。

データ圧縮伸張装置のデータ変換演算装置90は、DCT演算係数を簡単な整数比に変えた形のシリアル回路により構成するとともに、odd側については演算式をそのままハードウェア化したシリアル回路100を含んで構成し、パラレルシリアル変換装装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施す。また、シリアル回路100は、DCT演算式を展開して得られた各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合の該数値の部分を作成するシリアル回路101と、このシリアル回路101により計算された係数出力に対して式の横方向に符号分を含めた加減算を行なって出力x0〜x3として出力するシリアル回路102により構成して演算式をそのままハードウェア化する。

目的

そこで本発明は、小さな回路規模で高速にデータの圧縮を行なうことが可能なデータ圧縮伸張装置を提供することを目的としている。

効果

実績

技術文献被引用数
1件
牽制数
1件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段のデータ変換演算式展開し、展開した式に従って前記データ変換演算手段を構成するようにしたことを特徴とするデータ圧縮伸張装置。

請求項2

所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段の係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしたことを特徴とするデータ圧縮伸張装置。前記データ変換演算手段のデータ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしたことを特徴とするデータ圧縮伸張装置。

請求項3

所定のデータを記憶するデータ記憶手段と、前記データ記憶手段のデータをパラレルデータからシリアルデータに変換するパラレル−シリアル変換手段と、前記パラレル−シリアル変換手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換手段から出力されるシリアルデータをパラレルデータに変換し、前記データ記憶手段に書き込むシリアル−パラレル変換手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記パラレル−シリアル変換手段、前記データ変換演算手段、前記シリアル−パラレル変換手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段の係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしたことを特徴とするデータ圧縮伸張装置。

請求項4

所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段のデータ変換演算式の係数の値を2のべきで表現するとともに、該係数の値を2のべきで表現するとき所定以上ビット数が大きくなる部分については該係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしたことを特徴とするデータ圧縮伸張装置。

請求項5

前記データ変換演算手段は、各入力に所定の係数が表れるようにデータ変換演算式を展開し、該展開したデータ変換演算式の係数部分をシリアル演算する第1のシリアル演算部と、該第1のシリアル演算部の出力を加減算して該展開したデータ変換演算式の演算を実行する第2のシリアル演算部とにより構成するようにしたことを請求項1、請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項6

前記第1のシリアル演算部は、前記展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現するとともに、該係数を2のべきに数値をかけた形で表現した場合の数値部分をシリアル演算するシリアル回路により構成するようにしたことを特徴とする請求項5に記載のデータ圧縮伸張装置。

請求項7

前記第2のシリアル演算部は、前記第1のシリアル演算部から出力された数値を加減算して出力する複数の加減算器により構成され、前記展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現した場合の2のべき部分を各加減算器への入力位置により調整するようにしたことを特徴とする請求項5に記載のデータ圧縮伸張装置。

請求項8

前記データ変換演算手段は、データに対してシリアル演算により直交変換を実行する直交変換手段であることを特徴とする請求項1、請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項9

前記データ変換演算手段は、データに対してシリアル演算により離散コサイン変換(DCT)を実行する離散コサイン変換手段であることを特徴とする請求項1、請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項10

前記データ変換演算手段は、入力されたデータを所定のクロック応答して順次移動させるシリアル演算器を含んで構成されることを特徴とする請求項1、請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項11

前記データ変換演算手段は、データ変換演算式の係数の値を2のべきで表現したシリアル回路により構成し、該シリアル回路によるシリアル演算によりデータ変換演算を実行するようにしたことを特徴とする請求項1、請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項12

前記データ変換演算手段は、データ変換演算式の係数の値を2のべきで表現するとともに、該係数の値を2のべきで表現するとき所定以上ビット数が大きくなる部分については該係数を整数の比に置き換えたシリアル回路により構成し、該シリアル回路によるシリアル演算によりデータ変換演算を実行するようにしたことを特徴とする請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項13

前記データ変換演算手段で用いられるデータ変換演算式は、該データ変換演算式の係数を、前記量子化手段の量子化演算に用いる量子化係数に含ませるように作成したことを特徴とする請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項14

前記量子化手段によるゲインの調整は、前記データ変換演算手段の係数を整数の比に変えることにより生じたゲイン変化分を吸収させるように構成された量子化テーブルにより行なわれることを特徴とする請求項2、請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項15

前記データ変換演算手段の係数の整数の比への置き換えは、該係数を整数値に置き換えることにより行なうようにしたことを特徴とする請求項2、請求項3、請求項4、請求項12又は請求項14の何れかに記載のデータ圧縮伸張装置。

技術分野

0001

本発明は、画像データの圧縮処理等に用いられるデータ圧縮伸張装置係り、詳細には小さな回路規模データ圧縮を行うことが可能なデータ圧縮伸張装置に関する。

背景技術

0002

ISDNCD−ROM前提とした画像の高能率符号化技術において、DCT(Discrete Cosine Transform:離散コサイン変換)が高能率符号化技術の主流になりつつある。このDCTに限らず、高能率符号化して画素当り平均ビット数を減らすと、画像の品質落ち圧縮率を上げると、画質劣化を引き起こす。例えば、現行標準テレビ信号を1.5Mビット/秒に圧縮した場合に問題となるのは、輪郭部分の劣化とDCTで処理するブロック単位(例えば8×8画素)に発生するブロック歪である。逆変換して画素を再生するときに、ブロック内のDCT出力をすべて線形和することになるが、8×8画素から成るブロックのDCT出力64個のうち、一つでも情報損失があると、ブロック内全体の再生画素に劣化が生じる。

0003

ここで、DCT変換は、直交変換の一つであり、カールネン・レーベ変換と並んでエネルギ集中度の最も高い変換法といわれるものである。

0004

いま、信号f(j) (j=0、1、…、N−1)の一次元のDCT変換による結果F(u) (u=0、1、…、N−1)は数1で定義される。

0005

ID=000003HE=030 WI=082 LX=0640 LY=2000
また、逆DCT変換は、数2で定義される。

0006

ID=000004HE=015 WI=082 LX=0640 LY=2400
このようなDCT変換を画像に対して施すことにより、エネルギ集中が得られることから、エネルギの多い成分のみを符号化することが可能となり、これにより画像データの圧縮を行なうようにしている。

0007

ところで、上記DCTを有するデータ圧縮伸張装置に限らず、通常のデータ圧縮伸張装置では、数値列に対し、データ変換FFT,DCT等)を施し、その後に量子化を行っている。

0008

図11は従来のデータ圧縮伸張装置のブロック図である。10はデータ記憶装置であり、データ記憶装置10には圧縮を施そうとする2次元データがパラレルデータの形で蓄えられている。データ記憶装置10に蓄えられているデータ(例えば、画像データ)はパラレル−シリアル変換装置11に入力され、パラレル−シリアル変換装置11はデータ記憶装置10から読み込んだパラレルデータをシリアルデータに変換してデータ変換演算装置12に出力する。データ変換演算装置12はパラレル−シリアル変換装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施す。シリアルDCT演算されたデータはシリアル−パラレル変換装置13に出力され、シリアル−パラレル変換装置13はデータ変換演算装置12から出力されたシリアルデータをパラレルデータに変換してデータ記憶装置10に書き込む。上記の例は一次元の場合であり、画像等の二次元の場合には図12に示すように上述した処理を縦横順不同)二次元に施す。また、量子化装置14は、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、例えば図13に示すような量子化テーブルの値で除算をする(あるいは、逆数乗算)ことによって量子化演算を行なう。上記各部の動作はデータ圧縮伸張装置の全体を制御する制御装置15によって制御される。

0009

上記データ変換演算装置12により実行されるシリアルDCT演算を以下に説明するシリアル演算によって行なう。

0010

先ず、基本的な考え方としてCOS係数の値を、数3に示すように2のべき(すなわち、2のn乗)の和又は差で表すようにする。数3に示すように数値を2のべきで表現する理由はシリアルの回路による演算を実現するためである。すなわち、図14において、符号21は、クロック入力信号応答し、入力信号を1クロック遅れた出力とするFFフリップフロップ)からなる1タイムディレイユニットを表すものとすると、1タイムディレイユニット21を通って出てくる出力と1タイムディレイユニット21を通らずに直接出てくる出力とを比較すると前者が後者より1クロック分遅い。ここで、1タイムディレイユニット21はシフトレジスタが並んだようなものであり、例えばLSB側から順にデータが入力されているものとすると、1クロック遅く出てくるということは2倍されたことを意味する。同様に、8倍しようとする場合には上記1タイムディレイユニット21を図15に示すように3つ並べて3クロック遅らせるようにすれば23で8倍となる。本実施例では上記ユニットを組み合わせて加減算を行なうことでシリアル演算回路を実現する。

0011

図16は乗算部のシリアル演算構成を示したものであり、図16は入力データを38倍する場合の例である。先ず、38を数4の形に分解する。

0012

数4において、ある数値xを32倍するということは、xを左(MBS方向)へ5回シフトすることであり、図16では、5段の1タイムディレイユニット271を通過させることによって実現される。また、数4で示される2×(2+1)は、実際には、6であるから、4+2と表してもよい。しかし、図16フルアダー22が1タイムディレイユニットを持っており、入力データを2倍するため、2×(2+1)という表現形式が採用できる。この図16のユニット自体の出力は76倍となるが、次段取り込みタイミングを1クロック遅らせることにより38倍を実現している。

0013

以下、データ圧縮伸張装置を図面に従い説明する。

0014

図17は、上記シリアルDCT演算を実行するためのデータ変換演算装置12の回路構成を示す図であり、I〜IVの各ステージから構成される。

0015

図17において、31はステージIの演算回路、32はステージIIの演算回路、33はステージIIIの演算回路、34はステージIVの演算回路であり、これらのステージI〜IVの演算回路31〜34はそれぞれスイッチ35〜39を介して直列に接続するように構成されている。この場合、DCT演算処理では、図17に示すように演算回路31〜34の順で直列接続され、また逆DCT演算の処理では、スイッチ35〜39の切換え動作により演算回路34〜31の順で直接接続されるようになっている。そして、入力端子40に与えられる入力データに対するDCTまたは逆DCT演算結果は出力端子41から出力されるようになる。この場合、入力データは、シリアル8系統よりなっている。

0016

図18は、ステージIの演算回路31の回路構成を示す図である。演算回路31は上述したシリアル演算を実行するものであり、加算器1a、1b、1c、1dと減算器1e、1f、1g、1hから構成されている。

0017

図19は、ステージIIの演算回路32の回路構成を示す図である。演算回路32は上述したシリアル演算を実行するものであり、シフタ2a〜2fと、COS(4/16)π演算(数1参照)を行なうCOS(4/16)π演算器2g、2hから構成されている。ここで、上記シフタ2a〜2fは、それぞれ10個のフリップフロップを直列接続したものであり、入力されたデータを所定時間遅延して出力するようになっている。また、上記COS(4/16)π演算器2gは、COS(N/16)πのN=4の場合の近似式181=(16-1)×(2+1)×4+1の演算を実現したものであり、加算器2g1、この加算器2g1の出力をシフトする4個のフリップフロップからなるシフタ2g2、このシフタ2g2の出力より加算器2g1からの出力を減算する減算器2g3、この減算器2g3の出力をシフトする1個のフリップフロップからなるシフタ2g4、このシフタ2g4の出力と上記減算器2g3の出力を加算する加算器2g5、この加算器2g5の出力と上記加算器2g1の出力を加算する加算器2g6から構成されている。また、上記COS(4/16)π演算器2hもCOS(N/16)πのN=4の場合の近似式181=(16-1)×(2+1)×4+1の演算を実現したものであり、減算器2h1、この減算器2h1の出力をシフトする4個のフリップフロップからなるシフタ2h2、このシフタ2h2の出力より減算器2h1の出力を減算する減算器2h3、この減算器2h3の出力をシフトする1個のフリップフロップからなるシフタ2h4、このシフタ2h4の出力と減算器2h3の出力を加算する加算器2h5、この加算器2h5の出力と減算器2h1の出力を加算する加算器2h6から構成されている。

0018

図20は、ステージIIIの演算回路33の回路構成を示す図である。演算回路33は上述したシリアル演算を実行するものであり、加算器3a,3b、減算器3c,3dおよび加算器3e,3f、減算器3g,3hから構成されている。

0019

図21は、ステージIVの演算回路34の回路構成を示す図である。演算回路34は上述したシリアル演算を実行するものであり、各COS係数演算を行なうCOS(4/16)π演算器4a,4b、COS(2/16)πおよびCOS(6/16)π演算器4c,4d、COS(1/16)πおよびCOS(7/16)π演算器4e,4f、COS(3/16)πおよびCOS(5/16)π演算器4g,4hから構成されている。この場合、上記COS(4/16)π演算器4a,4bは、上述したステージIIの演算回路32のCOS(4/16)π演算器2g,2hと同様であり、ここでは添字2を4に代えて同符号を付することで説明は省略する。

0020

また、上記COS(2/16)πおよびCOS(6/16)π演算器4cは、COS(N/16)πのN=2の場合の近似式236.5=4×(64-4-1)+1/2およびN=6の場合の98=2×(32+16+1)の演算を実現するもので、このうちCOS(2/16)πの演算を実現するものは、7個のフリップフロップからなるシフタ4c1、シフタ4c1の出力からシフタ4c1の第3番目のフリップフロップの出力を減算する減算器4c2、減算器4c2の出力からシフタ4c1の第2番目のフリップフロップの出力を減算する減算器4c3、減算器4c3の出力と加算器3aの出力を加算する加算器4c4からなり、また、COS(6/16)π演算を実現するものは、シフタ4c1の第6番目のフリップフロップの出力とシフタ4c1の第5番目のフリップフロップの出力を加算する加算器4c5、加算器4c5の出力とシフタ4c1の第2番目のフリップフロップの出力を加算する加算器4c6からなっている。一方、上記COS(2/16)πおよびCOS(6/16)π演算器4dは、上述した演算回路4cと同様であり、ここでは添字cをdに代えて同符号を付することで説明は省略する。そして、加算器4c4と加算器4d6の出力を加算器4c7で加算し、また、加算器4c6の出力から加算器4d4の出力を減算器4d7で減算するようにしている。

0021

一方、上記COS(1/16)πおよびCOS(7/16)π演算器4eは、COS(N/16)πのN=1の場合の近似式251=(128-2)×2-1およびN=7の場合の50=2×(16+8+1)の演算を実現するもので、このうちCOS(1/16)πの演算を実現するものは、7個のフリップフロップからなるシフタ4e1、シフタ4e1の出力からシフタの第1番目のフリップフロップの出力を減算する減算器4e2、減算器4e2の出力からステージIIIの演算回路33の加算器3eの出力を減算する減算器4e3からなり、COS(7/16)π演算を実現するもので、シフタ4e1の第3番目と第4番目のフリップフロップの出力を加算する加算器4e4、加算器4e4、の出力とシフタ4e1の第1番目のフリップフロップの出力を加算する加算器4e5からなっている。また、COS(1/16)πおよびCOS(7/16)π演算器4fは、上述した演算器4eと同様であり、ここでは添字eをfに代えて同符号を付することで説明は省略する。そして、減算器4e3と加算器4f5の出力を加算器4e6で加算し、この加算器4e6の出力をシフタ4e7を介して発生する。また加算器4e5の出力から減算器4f3の出力を減算器4f6で減算し、シフタ4f7を介して発生するようにしている。また、上記COS(5/16)πおよびCOS(3/16)π演算器4gは、COS(N/16)πのN=5の場合の近似式142=2×(64+8-1)およびN=3の場合の近似式213=(2+1)×(64+8-1)の演算を実現するもので、このうちCOS(5/16)πの演算を実現するものは、5個のフリップフロップからなるシフタ4g1、シフタ4g1の出力とシフタ4g1の第2番目のフリップフロップの出力を加算する加算器4g2、加算器4g2の出力からステージIIIの演算回路3の減算器3gの出力を減算する減算器4g3、減算器4g3の出力をシフトする2個のフリップフロップからなるシフタ4g4からなり、COS(3/16)πの演算を実現するものは、上述の構成に加えて減算器4g3とシフタ4g4の第1番目のフリップフロップの出力を加算する加算器4g5からなっている。また、COS(5/16)πおよびCOS(3/16)π演算器4hは、上述した演算器4gと同様であり、ここでは添字gをhに代えて同符号を付することで説明は省略する。そして、シフタ4g4と加算器4h5の出力を加算器4g6で加算し、また、加算器4g5の出力からシフタ4h4の出力を減算器4h6で減算するようにしている。

0022

このように構成された図18図21に示すステージI〜IVの演算回路31〜34は、DCT演算処理の場合、図22に示すように接続される。また、図23図25図22中の各ユニットを示す図であり、図23はFFからなる1タイムディレイユニット21を、図24は加算(a+b)を行なう1タイムディレイユニットフルアダー(内部Carry Type)22を、図25は減算(a−b)を行なう1タイムディレイユニットフルサブトラクタ(内部Borrow type)23をそれぞれ示している。

0023

次に、このように構成したデータ変換演算装置12の動作を説明する。

0024

まず、DCT演算処理の場合を述べると、ここでは、ステージIの演算回路31において加算器1aに入力データf(0)とf(7)、加算器1bに入力データf(3)、f(4)、加算器1cに入力データf(1)、f(6)、加算器1dに入力データf(2)、f(5)、減算器1eに入力データf(0)、f(7)、減算器1fに入力データf(3)、f(4)、減算器1gに入力データf(1)、f(6)、減算器1hに入力データf(2)、f(5)が入力される。これにより加算器1aは入力データf(0)とf(7)の加算結果を出力し、加算器1bは入力データf(3)とf(4)の加算結果を出力し、加算器1cは入力データf(1)とf(6)の加算結果f(1)+f(6)を出力し、加算器1dは入力データf(2)とf(5)の加算結果を出力するようになる。また、減算器1eは入力データf(0)とf(7)の減算結果を出力し、減算器1fは入力データf(3)とf(4)の減算結果を出力し、減算器1gは入力データf(1)とf(6)の減算結果を出力し、減算器1hは入力データf(2)とf(5)の減算結果を出力するようになる。この場合の入力データは、図26に示すように7bitと1bitのサインビットの8bitのデータからなっている。また、出力データは、図26のIに示すように7+1bitと1bitのサインビットからなっている。ここで、出力データが7+1bitになるのは、加算器1a〜1dでの加算結果を考慮したからである。

0025

次いで、ステージIIの演算回路32に進む。この演算回路32では、ステージIの演算回路31の加算器1aの出力がシフタ2aに与えられ、以下、同様にして加算器1bの出力がシフタ2c、加算器1cの出力がシフタ2b、加算器1dの出力がシフタ2d、減算器1eの出力がシフタ2e、減算器1fの出力がシフタ2f、減算器1g、1hの出力が加算器2g1および減算器2h1にそれぞれ与えられる。この場合、図26の入力に示す入力データに対しシフタ2a〜2eからは同図IIに示すように10個のフリップフロップの動作だけ遅れて出力データを発生する。つまり、シフタ2aは加算器1aの出力を、シフタ2bは加算器1cの出力を、シフタ2cは加算器1bの出力を、シフタ2dは加算器1dの出力を、シフタ2eは加算器1eの出力を、シフタ2fは加算器1fの出力を、それぞれ所定時間遅延して出力するようになる。

0026

一方、上記COS(4/16)π演算器2g、2hでは、COS(N/16)πのN=4の場合の近似式181=(16-1)×(2+1)×4+1の演算を実行する。この場合、演算器2gには、減算器1g、1hの出力が入力データとして与えられ、加算器2g1で、これら入力データを加算する。そして、この加算器2g1の出力をシフタ2g2に与え、シフタ2g2より得られた出力より加算器2g1の出力を減算器2g3で減算すると(16-1)が求められ、次いで、減算器2g3の出力とシフタ2g4の出力を加算器2g5で加算することで(16-1)×(2+1)が求められる。そして、この加算器2g5の出力と加算器2g1の出力を加算器2g6で加算することによりCOS(N/16)πのN=4の場合の近似値(16-1)×(2+1)×4+1が求められることになる。この場合、図26の入力に示す入力データに対してCOS(4/16)π演算器2gでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。

0027

次いで、ステージIIIの演算回路33に進む。この演算回路33では、ステージIIの演算回路32のシフタ2a、2cの出力が加算器3aおよび減算器3cに与えられ、同様にしてシフタ2b、2dの出力が加算器3bおよび減算器3dに与えられ、さらにシフタ2eとCOS(4/16)π演算部2gの出力が加算器3eおよび減算器3gに、シフタ2fとCOS(4/16)π演算器2hの出力が加算器3fおよび減算器3hに与えられる。これにより、加算器3aは、ステージIIの演算回路32のシフタ2aと2cの出力を加算した結果を出力し、加算器3bはステージIIの演算回路32のシフタ2bと2dの出力を加算した結果を出力し、減算器3cはステージIIの演算回路32のシフタ2aの出力からシフタ2cの出力を減算した結果を出力し、減算器3dはステージIIの演算回路32のシフタ2bの出力からシフタ2dの出力を減算した結果を出力するようになる。また、加算器3eはステージIIの演算回路2のシフタ2eと演算器2gの出力を加算した結果を出力し、加算器3fはステージIIの演算回路2のシフタ2fと加算器2hの出力を加算した結果を出力し、加算器3gはステージIIの演算回路32のシフタ2eの出力から演算器2gの出力を減算した結果を出力し、減算器3hはステージIIの演算回路32のシフタ2fの出力から演算器2hの出力を減算した結果を出力するようになる。この場合、図26の入力データに対して各加算器3a、3b、3e、3fおよび減算器3c、3d、3g、3hでは、同図IVに示すタイミングで、それぞれの演算結果を出力するようになる。

0028

次いで、ステージIVの演算回路34に進む。この演算回路34では、ステージIIIの演算回路33の加算器3a、3bの出力がCOS(4/16)π演算器4a、4bに与えられ、同様にして減算器3c、3dがCOS(2/16)πおよびCOS(6/16)π演算器4c、4dに各別に与えられ、加算器3e、3fの出力がCOS(1/16)πおよびCOS(7/16)π演算器4e、4fに各別に与えられ、減算器3g、3hの出力がCOS(5/16)πおよびCOS(3/16)π演算器4g、4hに各別に与えられる。この場合、図26の入力データに対してCOS(4/16)π演算器4a、4bでは、COS(N/16)πのN=4の場合の近似値(6-1)×(2+1)×4+1の演算を実行し、同図IVに示すタイミングで、その演算結果を出力データF(0)、F(4)として発生する。同様にして、COS(2/16)πおよびCOS(6/16)π演算器4c、4dについてもCOS(N/16)πN=2の場合の近似値4×(64-4-1)+1/2およびCOS(N/16)πのN=6の場合の近似値2×(32+16+1)の演算を実行し、同図IVに示すタイミングで、その演算結果を出力データF(2)、F(6)として発生し、COS(1/16)πおよびCOS(7/16)π演算器4e、4fについてもCOS(N/16)πのN=1の場合の近似値251=(128-2)×2-1 およびCOS(N/16)πのN=7の場合の近似値2×(16+8+1)の演算を実行し、同図IVに示すタイミングで、その演算結果を出力データF(1)、F(7)として発生し、さらに、COS(5/16)πおよびCOS(3/16)π演算器4g、4hについてもCOS(N/16)πのN=5の場合の近似値2×(64+8-1)およびCOS(N/16)πのN=3の場合の近似値(2+1)×(64+8-1)の演算を実行し、同図IVに示すタイミングで、その演算結果を出力データF(5)、F(3)として発生するようになる。

0029

以上の説明は、DCT演算処理の場合であるが、逆DCT演算処理の場合も上述したと同様である。

0030

この場合は入力データがステージIVの演算回路34〜ステージIの演算回路31の順で与えられるようになる。

0031

図26は、データ変換演算装置12の入力から出力までのタイミングチャートであり、ステージIの演算回路31〜ステージIVの演算回路34の動作を総合した場合のタイミングチャートを示している。同図中、I、II、III、IVは図22における各ステージI、II、III、IVの出力を示している。図26では、次データとの処理の重なりを避けるように考慮してあり全体として8bitのデータを入力した場合、1ライン当り処理周期は28クロック必要とする。この場合の処理は、入力データ8bitのDCT処理の場合であるが、入力データのビット数が異なる場合や逆DCT処理の場合は、1データ当りの処理周期も変化するようになる。

0032

このように、ステージI〜ステージIVからなるフローグラフに基づいてディスクリートコサイン変換処理を実行するものにおいて、各ステージをシリアル処理するように構成することにより、入力データが各ステージの演算回路により順次シリアル処理されるようになり、従来のメモリに対してレジスタ、シフタおよび加減算器からなる演算部を並列的に設けたものに比べ、回路規模を小さくすることができるとともに、高速処理を実現することができる。

発明が解決しようとする課題

0033

しかしながら、このようなシリアルDCT演算処理を行なうデータ圧縮伸張装置にあっては、DCT演算式をそのままシリアル処理回路上で実現する構成となっていたため、DCT演算を並列的に行なうDCT演算装置に比べて回路規模は大幅に小さくすることはできるものの、図16に示すようにフリップフロップ(FF)で126個、演算器を構成する1bit Add(Sub)unitが 62個必要となり、未だ回路規模が大きいという欠点があった。また、FF等を1段通るごとに1クロック分遅延するので演算段数を短くするようにして高速化を図りたいという要望がある。

0034

そこで本発明は、小さな回路規模で高速にデータの圧縮を行なうことが可能なデータ圧縮伸張装置を提供することを目的としている。

課題を解決するための手段

0035

請求項1記載の発明は、上記目的達成のため、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段のデータ変換演算式展開し、展開した式に従って前記データ変換演算手段を構成するようにしている。

0036

請求項2記載の発明は、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段の係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしている。

0037

請求項3記載の発明は所定のデータを記憶するデータ記憶手段と、前記データ記憶手段のデータをパラレルデータからシリアルデータに変換するパラレル−シリアル変換手段と、前記パラレル−シリアル変換手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換手段から出力されるシリアルデータをパラレルデータに変換し、前記データ記憶手段に書き込むシリアル−パラレル変換手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記パラレル−シリアル変換手段、前記データ変換演算手段、前記シリアル−パラレル変換手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段の係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしている。

0038

請求項4記載の発明は、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段のデータ変換演算式の係数の値を2のべきで表現するとともに、該係数の値を2のべきで表現するとき所定以上ビット数が大きくなる部分については該係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしている。

0039

前記データ変換演算手段は、例えば請求項5に記載されているように、各入力に所定の係数が表れるようにデータ変換演算式を展開し、該展開したデータ変換演算式の係数部分をシリアル演算する第1のシリアル演算部と、該第1のシリアル演算部の出力を加減算して該展開したデータ変換演算式の演算を実行する第2のシリアル演算部とにより構成するようにしてもよく、前記第1のシリアル演算部は、例えば請求項6に記載されているように、前記展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現するとともに、該係数を2のべきに数値をかけた形で表現した場合の数値部分をシリアル演算するシリアル回路により構成するようにしてもよく、前記第2のシリアル演算部は、例えば請求項7に記載されているように、前記第1のシリアル演算部から出力された数値を加減算して出力する複数の加減算器により構成され、前記展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現した場合の2のべき部分を各加減算器への入力位置により調整するようにしてもよい。

0040

また、前記データ変換演算手段は、例えば請求項8に記載されているように、データに対してシリアル演算により直交変換を実行する直交変換手段であってもよく、前記データ変換演算手段は、例えば請求項9に記載されているように、データに対してシリアル演算により離散コサイン変換(DCT)を実行する離散コサイン変換手段であってもよい。また、前記データ変換演算手段は、例えば請求項10に記載されているように、入力されたデータを所定のクロックに応答して順次移動させるシリアル演算器を含んで構成されてもよく、前記データ変換演算手段は、例えば請求項11に記載されているように、データ変換演算式の係数の値を2のべきで表現したシリアル回路により構成し、該シリアル回路によるシリアル演算によりデータ変換演算を実行するようにしてもよく、さらには、前記データ変換演算手段は、例えば請求項12に記載されているように、データ変換演算式の係数の値を2のべきで表現するとともに、該係数の値を2のべきで表現するとき所定以上ビット数が大きくなる部分については該係数を整数の比に置き換えたシリアル回路により構成し、該シリアル回路によるシリアル演算によりデータ変換演算を実行するようにしてもよい。

0041

また、前記データ変換演算手段で用いられるデータ変換演算式は、例えば請求項13に記載されているように、該データ変換演算式の係数を、前記量子化手段の量子化演算に用いる量子化係数に含ませるように作成してもよく、前記量子化手段によるゲインの調整は、例えば請求項14に記載されているように、前記データ変換演算手段の係数を整数の比に変えることにより生じたゲイン変化分を吸収させるように構成された量子化テーブルにより行なわれるものであってもよい。さらに、前記データ変換演算手段の係数の整数の比への置き換えは、例えば請求項15に記載されているように、該係数を整数値に置き換えることにより行なうようにするものであってもよい。

0042

本発明の手段はの作用は次の通りである。

0043

請求項1記載の発明では、データ変換演算手段のデータ変換演算式を各項毎に展開し、展開した式に従ってシリアル回路を構成するようにしている。この場合、展開した式に従って構成されるシリアル回路は、例えば各入力に共通な係数が表れるようにデータ変換演算式を展開したときに該係数部分をシリアル演算する第1のシリアル演算部と、このシリアル演算部の出力を加減算して展開したデータ変換演算式の演算を実行する第2のシリアル演算部とにより構成され、各入力がこのシリアル回路に入力されると第1のシリアル演算部により各入力をシリアル演算して係数分を求めておき、このようにして作成された係数に対して第2のシリアル演算部が加減算を行なって展開したデータ変換演算式の演算が実行される。

0044

従って、展開したデータ変換演算式に従ってシリアル回路を構成することによりシフトレジスタ等のシリアル回路の段数を減少させてクロック数を減らすことができ、処理速度を向上させることができる。

0045

請求項2、3、4、5、6、7、8、9、10、11、12、13、14及び15記載の発明では、データ変換演算手段の係数が整数の比に置き換えられ、そのゲインの変化は量子化手段により調整されるとともに、データ変換演算式を展開し、展開した式に従ってシリアル回路を構成するようにしている。この場合、シリアル回路は、例えば展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現した場合の数値部分をシリアル演算する第1のシリアル演算部と、このシリアル演算部から出力された数値を加減算して出力する複数の加減算器からなる第2のシリアル演算部とにより構成され、各入力がこのシリアル回路に入力されると第1のシリアル演算部により各入力をシリアル演算して係数分を求め、このようにして作成された係数に対して第2のシリアル演算部が加減算を行なって展開したデータ変換演算式の演算が実行される。このとき、展開したデータ変換演算式の係数を2のべきに数値をかけた形で表現した場合の2のべき部分は各加減算器への入力位置により調整される。

0046

また、データ変換演算式の係数が、量子化演算に用いる量子化係数に含まれるようにデータ変換演算式を作成しておき、このようにして作成されたデータ変換演算式の係数の値を2のべきで表現してシリアル回路が構成される。このとき、該係数の値を2のべきで表現しようとすれば所定以上ビット数が大きくなる部分については該係数が整数の比に置き換えられ、該整数の比に置き換えられることにより生じたゲインの変化は量子化手段により調整される。

0047

従って、単にシリアル回路を実現していた場合に比べ、回路規模を大幅に小さくすることができるとともに、シフトレジスタ等のシリアル回路の段数を減少させてクロック数を減らすことができ、処理速度を向上させることができ、画像等のデータ圧縮に利用することができる。

0048

以下、本発明を図面に基づいて説明する。

0049

原理説明
(I)先ず、本実施例の基本的な考え方を説明する。図11に示した従来のデータ圧縮伸張装置では、シリアル演算によるDCT演算を実現するためバタフライ演算をそのままシリアル回路上に表わしていた。具体的には、COS係数値を2のべきで表わすことによって図22に示すようなシリアルDCT演算回路を実現していたため、DCT演算式の係数をすべて2のべきで表現しようとするとビット数が大きなものとなり、したがって、シリアル回路を構成するFF等の段数が大きくなってしまっていた。

0050

ところで、DCT演算された画像データは後段の量子化部(例えば、図11の量子化装置14)において量子化されることになる。

0051

本発明者はこの点に着目して、2のべきで表現できる部分はべきで表現して取り込みに用いる一方で、べきで表現しようとすればビット数が大きくなってしまう部分については敢えてべきにより表現しようとしないで2のべきにとらわれずにDCTの演算係数を整数比(あるいは、整数値)に置き換え、そのゲイン変化分を量子化部によって吸収するようにする。これによって2のべきによりシリアル回路を実現していた場合に比べ、回路規模を大幅に小さくすることができるとともに、シリアルの段数を減少させて処理速度を向上させることができる。

0052

(II)さらに、上述したDCT演算式をシリアル回路により構成する場合においてもDCT演算式を加減算及びバタフライ演算を用いて実現していたため、FF等の段数をある程度以上減らすのは困難であり、速度向上のためには一層のFF等の段数の削減が求められていた。

0053

そこで本実施例では、DCT演算式を展開することによって各入力に共通な係数(必ずしも共通でなくてもよい)が表れるように係数を分割し、このように展開したDCT演算式をバタフライ演算にとらわれずにそのままハードウェア化する。このため、先ず、前段のシリアル回路で各入力に用いる係数分の計算をしておき、続く後段のシリアル回路で計算された係数出力に対して出力方向に符号分を含めた加減算を行なうようにしてDCT演算式をそのままハードウェア化する。これによってFF等の段数を減らすことができ、クロック数(時間)を短縮することができる。

0054

例えば、図1に示すようにDCT演算式を展開して各入力に共通な係数17、85、48、72が得られたとすると、先ず、前段のシリアル回路でDCT演算式の係数に相当する部分を作成するようにする。この場合、上記係数17、85、48、72を2のべきにある数値をかけた形で表現し、この数値の部分(図1破線内の数値参照)をシリアル回路で構成する。そして、2のべきの部分は後段のシリアル回路への入力位置により調整するようにする。すなわち、図1に示すように後段のシリアル回路はアダーサブトラクタも含む)が複数個つながるように構成されており、各アダーを1段通る度に×2が入る構成となっていて、上記係数のうち2のべきで表現された部分は各アダーへの接続方法により調整する。ここで、上記係数17、85、48、72のうち、基本的に奇数のもの(係数17、85)についての加算を先に行なうようにするがこれは以下の理由からである。すなわち、1度加算する度に1クロック遅れるというシリアル回路の構造上、奇数の係数を作るのが大変であり、奇数の係数を作るために1を足すという動作が必要となる。このため、先ず手間のかかる奇数の係数同士を事前に足してしまうようにする。図1では、係数85は42×21+1、係数17は16+1と考えてこれら奇数の係数の1同士を事前に1回足してしまうようにする。これにより1クロック遅れて×2倍となる。その次に、その他の部分を足しておいたものに上記奇数の1同士を足したものを加えるようにするためもう1クロック必要となり全体では×4倍となる。つまり、奇数の係数が2個以上ある場合には2回のアダーを通す必要があり×4が最小の形となる。なお、奇数をなくすようにすると演算精度が落ちることになる。

0055

また、図1では、係数17は2×23+1、係数48は6×23で表わされ、2のべきが同じ23であるからこの部分を1段目のアダーにより足してしまう。以後、アダーを1段通る度に2倍されるので3段目のアダーでこの係数の加算結果が揃うことになる。また、係数72は18×22、係数85は42×21+1で表わされるから2のべきに着目して係数72の18を2番目のアダーに、係数85の42は3番目のアダーに入力される。

0056

このようにDCT演算式をそのままハードウェア化することによってFF等の段数を減らすことができ、クロック数(時間)を短縮することができる。

0057

実施例
図2図10は上記基本原理に基づくデータ圧縮伸張装置の実施例を示す図であり、図2図5は上記基本原理(I)に基づくデータ圧縮伸張装置を、図6図10は上記基本原理(II)に基づくデータ圧縮伸張装置を説明するための図である。

0058

先ず、上記基本原理(I)に基づくデータ圧縮伸張装置の構成を説明する。

0059

図2はデータ圧縮伸張装置のブロック図であり、前記図11のデータ圧縮伸張装置に対応する図である。なお、従来例と同一構成部分には同一番号を付している。図2において、データ圧縮伸張装置は、圧縮を施そうとする2次元データ及びデータ変換演算後のデータをパラレルデータの形で蓄えるデータ記憶装置10と、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換装置11と、DCT演算係数を簡単な整数比(あるいは、整数値)に変えた形のシリアル回路により構成され、パラレル−シリアル変換装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施すデータ変換演算装置50と、シリアルDCT演算されたシリアルデータをパラレルデータに変換してデータ記憶装置10に書き込むシリアル−パラレル変換装置13と、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、DCT演算係数を整数比に変えることにより生じたゲイン変化分を吸収させるようにした量子化テーブルの値で除算する(あるいは、逆数の乗算を行なう)ことによって量子化演算を行なう量子化装置51と、上記各部の動作をデータ圧縮伸張装置の全体を制御する制御装置52により構成されている。

0060

図3は、上記シリアルDCT演算を実行するためのデータ変換演算装置50の回路構成を示す図であり、I〜IVの各ステージから構成される。

0061

図3において、61はステージIの演算回路、62はステージIIの演算回路、63はステージIIIの演算回路、64はステージIVの演算回路であり、これらのステージI〜IVの演算回路61〜64はそれぞれスイッチ65〜69を介して直列に接続するように構成されている。この場合、DCT演算処理では、図2に示すように演算回路61〜64の順で直列接続され、また逆DCT演算の処理では、スイッチ65〜69の切換え動作により演算回路64〜61の順で直接接続されるようになっている。そして、入力端子70に与えられる入力データに対するDCTまたは逆DCT演算結果は出力端子71から出力されるようになる。この場合、入力データは、シリアル8系統よりなっている。

0062

図4は前記基本原理(I)に基づくデータ圧縮伸張装置のデータ変換演算装置50の回路構成図であり、前記図16に示す従来のデータ変換演算装置12に対応する図である。

0063

図4において、ステージIの演算回路61は上述したシリアル演算を実行するものであり、加算器81a、81b、81c、81dと減算器81e、81f、81g、81hから構成されている。このステージIの演算回路61の構成は従来例と同様であるが、入力データf0〜f7の入力は異なっている。

0064

また、ステージIIの演算回路62は、原理説明(I)で述べたシリアル演算を実行するものであり、係数を簡単な整数比に近似した場合のDCTシリアル演算を行なうシリアル演算器82a〜82hから構成されている。ここで、上記演算器82aは、加算器81aの出力と加算器81dの出力とを加算する加算器82a1、この加算器82a1の出力をシフトする3個のフリップフロップ(FF)からなるシフタ82a2から構成されている。また、上記演算器82bは、加算器81bの出力と加算器81cの出力とを加算する加算器82b1、この加算器82b1の出力をシフトする3個のフリップフロップ(FF)からなるシフタ82b2から構成されている。また、上記演算器82cは、加算器81bの出力から加算器81cの出力を減算する減算器82c1、この減算器82c1の出力をシフトする3個のフリップフロップからなるシフタ82c2、このシフタ82c2の第1番目のフリップフロップの出力とシフタ82c2の出力を加算する加算器82c3、シフタ82c2の第2番目のフリップフロップの出力と加算器82c3の出力を加算する加算器82c4から構成されている。同様に、上記演算器82dは、加算器81aの出力から加算器81dの出力を減算する減算器82d1、この減算器82d1の出力をシフトする3個のフリップフロップからなるシフタ82d2、このシフタ82d2の第1番目のフリップフロップの出力とシフタ82d2の出力を加算する加算器82d3、シフタ82d2の第2番目のフリップフロップの出力と加算器82d3の出力を加算する加算器82d4から構成されている。

0065

上記演算器82eは、減算器81eの出力をシフトする5個のフリップフロップからなるシフタ82e1、このシフタ82e1の第3番目のフリップフロップの出力と第4番目のフリップフロップの出力を加算する加算器82e2、加算器82e2の出力をシフトするシフタ82e3、シフタ82e1の第1番目のフリップフロップの出力と第5番目のフリップフロップの出力を加算する加算器82e4から構成されている。また、上記演算器82fは、減算器81gの出力から減算器81fの出力を減算する減算器82f1、この減算器82f1の出力をシフトする4個のフリップフロップからなるシフタ82f2、このシフタ82f2の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算する加算器82f3、減算器82f1の出力とシフタ82f2の出力を加算する加算器82f4から構成されている。また、上記演算器82gは、減算器81fの出力と減算器81gの出力を加算する加算器82g1、この加算器82g1の出力をシフトする4個のフリップフロップからなるシフタ82g2、このシフタ82g2の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算する加算器82g3、加算器82g1の出力とシフタ82g2の出力を加算する加算器82g4から構成されている。また、上記演算器82hは、減算器81hの出力をシフトする5個のフリップフロップからなるシフタ82h1、このシフタ82h1の第3番目のフリップフロップの出力と第4番目のフリップフロップの出力を加算する加算器82h2、加算器82h2の出力をシフトするシフタ82h3、シフタ82h1の第1番目のフリップフロップの出力と第5番目のフリップフロップの出力を加算する加算器82h4から構成されている。

0066

また、ステージIIIの演算回路63は、原理説明(I)で述べたシリアル演算を実行するものであり、演算器82aの出力と演算器82b2の出力を加算する加算器83a、減算器82aの出力から演算器82bの出力を減算する減算器83b、演算器82dの加算器82d3の出力から演算器82cの加算器82c4の出力を減算する減算器83c、演算器82cの加算器82c3の出力と演算器82dの加算器82d4の出力を加算する加算器83d、演算器82eの加算器82e4の出力と演算器82fの加算器82f3の出力を加算する加算器83e、演算器82eのシフタ82e3の出力から演算器82fの加算器82f4の出力を減算する減算器83f、演算器82hの加算器82h3の出力から演算器82gの加算器82f4の出力を減算する減算器83g、演算器82gの加算器82g3の出力と演算器82hの加算器82h4の出力を加算する加算器83hから構成されている。

0067

また、ステージIVの演算回路64は、原理説明(I)で述べたシリアル演算を実行するものであり、係数を簡単な整数比に近似した場合のDCTシリアル演算を行なうシリアル演算器84a〜84hから構成されている。ここで、上記演算器84aは、加算器83aの出力をシフトする6個のフリップフロップからなるシフタ84a1、このシフタ84a1の第5番目のフリップフロップの出力と第6番目のフリップフロップの出力を加算する加算器84a2、加算器84a2の出力からシフタ84a1の第3番目のフリップフロップの出力を減算して出力データF0として出力する減算器84a3から構成されている。また、上記演算器84bは、減算器83bの出力をシフトする6個のフリップフロップからなるシフタ84b1、このシフタ84b1の第5番目のフリップフロップの出力と第6番目のフリップフロップの出力を加算する加算器84b2、加算器84b2の出力からシフタ84b1の第3番目のフリップフロップの出力を減算して出力データF4として出力する減算器84b3から構成されている。また、上記演算器84cは、減算器83cの出力をシフトする5個のフリップフロップからなるシフタ84c1、このシフタ84c1の第3番目のフリップフロップの出力と第5番目のフリップフロップの出力を加算して出力データF6として出力する加算器84c2から構成されている。また、上記演算器84dは、加算器83dの出力をシフトする5個のフリップフロップからなるシフタ84d1、このシフタ84d1の第3番目のフリップフロップの出力と第5番目のフリップフロップの出力を加算して出力データF2として出力する加算器84d2から構成されている。

0068

上記演算器84eは、加算器83eの出力をシフトする2個のフリップフロップからなるシフタ84e1、加算器83eの出力とシフタ84e1の出力を加算して出力する加算器84e2、後述するシフタ84h1の第1番目のフリップフロップの出力からこの加算器84e2の出力を減算する減算器84e3、減算器84e3の出力をシフトする2個のフリップフロップからなるシフタ84e4、このシフタ84e4の出力から減算器84e3の出力を減算して出力データF7として出力する減算器84e5から構成されている。また、上記演算器84fは、減算器83fの出力をシフトする2個のフリップフロップからなるシフタ84f1、減算器83fの出力とシフタ84f1の第1番目のフリップフロップの出力を加算する加算器84f2、後述する加算器g2の出力からこのシフタ84f1の出力を減算する減算器84f3、減算器84f3の出力をシフトする2個のフリップフロップからなるシフタ84f4、減算器84f3の出力からシフタ84f4の出力を減算して出力データF3として出力する減算器84f5から構成されている。また、上記演算器84gは、減算器83gの出力をシフトする2個のフリップフロップからなるシフタ84g1、減算器83gの出力とシフタ84g1の第1番目のフリップフロップの出力を加算する加算器84g2、上記加算器f2の出力とシフタ84g1の出力を加算する加算器84g3、加算器84g3の出力をシフトする2個のフリップフロップからなるシフタ84g4、シフタ84g4の出力から加算器84g3の出力を減算して出力データF5として出力する減算器84g5から構成されている。また、上記演算器84hは、加算器83hの出力をシフトする2個のフリップフロップからなるシフタ84h1、加算器83hの出力とシフタ84h1の出力を加算して出力する加算器84h2、上記シフタ84e1の第1番目のフリップフロップの出力と加算器84h2の出力を加算する加算器84h3、加算器84h3の出力をシフトする2個のフリップフロップからなるシフタ84h4、シフタ84h4の出力から加算器84h3の出力を減算して出力データF1として出力する減算器84h5から構成されている。

0069

次に、図6図8により前記基本原理(II)に基づくデータ圧縮伸張装置の構成を説明する。

0070

上記図4のデータ変換演算装置50に前記基本原理(II)の考え方を適用することを考える。図4のデータ変換演算装置50の各ステージI〜IVの構造をみた場合、ステージIの構造はシンプルな形であり、またステージIVの出力側最終段も加減算のみのシンプルな形であり簡略化は困難である。これに対しステージII、III、IVはバタフライ演算部を有し構造が複雑であるばかりかステージIVのeven(偶数)側にはタイミング合わせのFFが存在する。特に、odd(奇数)側のステージII、III、IVには2段のバタフライ演算部が存在し、このodd側のバタフライ演算部を簡略化することによってデータ変換演算装置50全体の演算実行速度を向上させることができる。本実施例では、データ変換演算装置50のodd側に前記基本原理(II)の考え方を適用する。

0071

図6はデータ圧縮伸張装置のデータ変換演算装置50の回路構成図であり、前記図4に示すデータ変換演算装置50と同じものである。また、図10は7bitデータが入力された場合のデータ変換演算装置50の入力から出力までのタイミングチャートである。図6において、構造を簡略化するのが困難なデータ変換演算装置50のodd側に着目し、同図破線に示すようにデータ変換演算装置50のodd側のステージII、III及びステージIVのバタフライ演算部を一纏めにし、この部分に前記基本原理(II)の考え方を適用して簡略化する。

0072

図7は前記基本原理(II)に基づくデータ圧縮伸張装置のデータ変換演算装置90の回路構成図であり、前記図6に示すデータ変換演算装置50に対応する図である。図7に示すデータ変換演算装置90は、前記図6の破線内を図8に示すように構成することによってデータ変換演算装置90全体の速度向上を図るようにしたものである。なお、図7及び図8の説明に当たり図4と同一構成部分には同一番号を付している。

0073

図7において、データ変換演算装置90はI〜IIIの各ステージから構成され、ステージIの演算回路91はシリアル演算を実行する加算器81a、81b、81c、81dと減算器81e、81f、81g、81hから構成されている。

0074

また、ステージIIの演算回路92は、原理説明(I)で述べたシリアル演算を、原理説明(II)で述べたDCT演算式をそのままハードウェア化したシリアル回路上で実行するものであり、even側は係数を簡単な整数比に近似してDCTシリアル演算を行なうシリアル演算器92a〜92dから構成され、odd側はDCT演算式をそのままハードウェア化したシリアル回路100(図8)から構成されている。

0075

また、上記シリアル演算器92a〜92dの前段は、DCTシリアル演算を行なうシリアル演算器82a〜82dと、これら演算器82a〜82dの出力をバタフライ演算により加減算する加減算器83a〜83dにより構成され、前記図4のeven側のステージIIとステージIIIを合わせたものに相当する。ここで、上記演算器82aは、加算器81aの出力と加算器81dの出力とを加算する加算器82a1、この加算器82a1の出力をシフトする3個のフリップフロップ(FF)からなるシフタ82a2から構成され、また、上記演算器82bは、加算器81bの出力と加算器81cの出力とを加算する加算器82b1、この加算器82b1の出力をシフトする3個のフリップフロップ(FF)からなるシフタ82b2から構成されている。また、上記演算器82cは、加算器81bの出力から加算器81cの出力を減算する減算器82c1、この減算器82c1の出力をシフトする3個のフリップフロップからなるシフタ82c2、このシフタ82c2の第1番目のフリップフロップの出力とシフタ82c2の出力を加算する加算器82c3、シフタ82c2の第2番目のフリップフロップの出力と加算器82c3の出力を加算する加算器82c4から構成されている。同様に、上記演算器82dは、加算器81aの出力から加算器81dの出力を減算する減算器82d1、この減算器82d1の出力をシフトする3個のフリップフロップからなるシフタ82d2、このシフタ82d2の第1番目のフリップフロップの出力とシフタ82d2の出力を加算する加算器82d3、シフタ82d2の第2番目のフリップフロップの出力と加算器82d3の出力を加算する加算器82d4から構成されている。また、上記シリアル演算器92a〜92dの後段は、原理説明(I)で述べたシリアル演算を実行するものであり、演算器82aの出力と演算器82b2の出力を加算する加算器83a、演算器82aの出力から演算器82bの出力を減算する減算器83b、演算器82cの加算器82c4の出力から演算器82dの加算器82d3の出力を減算する減算器83c、演算器82cの加算器82c3の出力と演算器82dの加算器82d4の出力を加算する加算器83dから構成されている。

0076

また、ステージIIの演算回路92のodd側のシリアル回路100の構成については図8により後述する。

0077

また、ステージIIIの演算回路93は、原理説明(I)で述べたシリアル演算を実行するものであり、係数を簡単な整数比に近似した場合のDCTシリアル演算を行なうシリアル演算器93a〜93hから構成されている。

0078

ここで、上記演算器93aは、加算器83aの出力をシフトする3個のフリップフロップからなるシフタ93a1、このシフタ93a1の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算する加算器84a2、加算器84a2の出力から加算器83aの出力を減算して出力データF0として出力する減算器84a3から構成されている。また、上記演算器93bは、減算器83bの出力をシフトする3個のフリップフロップからなるシフタ93b1、このシフタ93b1の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算する加算器84b2、加算器84b2の出力から減算器83bの出力を減算して出力データF4として出力する減算器84b3から構成されている。また、上記演算器93cは、減算器83cの出力をシフトする2個のフリップフロップからなるシフタ93c1、このシフタ93c1の第2番目のフリップフロップの出力と減算器83cの出力を加算して出力データF6として出力する加算器84c2から構成されている。また、上記演算器93dは、加算器83dの出力をシフトする2個のフリップフロップからなるシフタ93d1、このシフタ93d1の第2番目のフリップフロップの出力と加算器83dの出力を加算して出力データF2として出力する加算器84d2から構成されている。

0079

また、上記演算器93eは、シリアル回路100の出力x0をシフトする2個のフリップフロップからなるシフタ84e4、このシフタ84e4の出力から減算器84e3の出力を減算して出力データF7として出力する減算器84e5から構成され、上記演算器93fは、シリアル回路100の出力x1をシフトする2個のフリップフロップからなるシフタ84f4、減算器84f3の出力からシフタ84f4の出力を減算して出力データF3として出力する減算器84f5から構成されている。また、上記演算器93gは、シリアル回路100の出力x2をシフトする2個のフリップフロップからなるシフタ84g4、シフタ84g4の出力から加算器84g3の出力を減算して出力データF5として出力する減算器84g5から構成され、上記演算器93hは、シリアル回路100の出力x3をシフトする2個のフリップフロップからなるシフタ84h4、加算器84h3の出力からシフタ84h4の出力を減算して出力データF1として出力する減算器84h5から構成されている。

0080

このように、ステージIIIのeven側のシリアル演算器93a〜93dは、前記図4のステージIVのシリアル演算器84a〜84dのシフタ84a1〜84d1から3段のフリップフロップ(FF)を取り去った構成となっており、また、テージIIIのodd側のシリアル演算器93e〜93hは、前記図4のステージIVの演算器84e〜84hからバタフライ演算部分(例えば、演算器84eにおいては、シフタ84e1、加算器84e2及び減算器84e3、演算器84fにおいては、シフタ84f1、加算器84f2及び減算器84f3、演算器84gにおいては、シフタ84g1、加算器84g2及び加算器84g3、演算器84hにおいては、シフタ84h1、加算器84h2及び加算器84h3)を取り去った構成となっている。

0081

図8はDCT演算式をそのままハードウェア化したシリアル回路100の回路構成図である。シリアル回路100は、前述したように前記図6の破線に示す部分に前記基本原理(II)の考え方を適用することにより構成されている。

0082

図6の破線内の演算について、入力をb0〜b3、出力をx0〜x3とすると、シリアル回路100は、DCT演算式を展開して得られた各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合の該数値の部分を作成する前段のシリアル回路101と、このシリアル回路101により計算された係数出力に対して出力方向(DCT演算式の横方向)に符号分を含めた加減算を行なって出力x0〜x3として出力する後段のシリアル回路102により構成されている。すなわち、上記シリアル回路101は、入力b0について各入力b0〜b3に共通な係数(本実施例では、17、85、48、72)を2のべきにある数値(本実施例では、2、42、6、18)をかけた形で表現した場合に該数値の部分を作成するシリアル演算器101e、入力b1について各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合に該数値の部分を作成するシリアル演算器101f、入力b2について各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合に該数値の部分を作成するシリアル演算器101g、入力b3について各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合に該数値の部分を作成するシリアル演算器101hから構成されている。具体的には、シリアル演算器101eは、入力b0をシフトする3個のフリップフロップからなるシフタ101e1、入力b0とシフタ101e1の第1番目のフリップフロップの出力を加算して出力する加算器101e2、入力b0とシフタ101e1の出力を加算して出力する加算器101e3、シフタ101e1の第1番目のフリップフロップの出力とシフタ101e1の出力を加算して出力する加算器101e4、入力b0と加算器101e4の出力を加算して出力する加算器101e5から構成されている。同様に、シリアル演算器101fは、入力b1をシフトする3個のフリップフロップからなるシフタ101f1、入力b0とシフタ101f1の第1番目のフリップフロップの出力を加算して出力する加算器101f2、入力b0とシフタ101f1の出力を加算して出力する加算器101f3、シフタ101f1の第1番目のフリップフロップの出力とシフタ101f1の出力を加算して出力する加算器101f4、入力b0と加算器101f4の出力を加算して出力する加算器101f5から構成されている。また、シリアル演算器101gは、入力b2をシフトする3個のフリップフロップからなるシフタ101g1、入力b0とシフタ101g1の第1番目のフリップフロップの出力を加算して出力する加算器101g2、入力b0とシフタ101g1の出力を加算して出力する加算器101g3、シフタ101g1の第1番目のフリップフロップの出力とシフタ101g1の出力を加算して出力する加算器101g4、入力b3と加算器101g4の出力を加算して出力する加算器101g5から構成されている。また、シリアル演算器101hは、入力b0をシフトする3個のフリップフロップからなるシフタ101e1、入力b0とシフタ101h1の第1番目のフリップフロップの出力を加算して出力する加算器101h2、入力b0とシフタ101h1の出力を加算して出力する加算器101h3、シフタ101h1の第1番目のフリップフロップの出力とシフタ101h1の出力を加算して出力する加算器101h4、入力b0と加算器101h4の出力を加算して出力する加算器101h5から構成されている。

0083

また、上記シリアル回路102は、シリアル演算器101e〜101hにより計算された係数出力に対して出力方向に符号分を含めた加減算を順次行なって出力x3〜x0として出力するシリアル演算器102e〜102hにより構成されている。すなわち、上記シリアル演算器102eは、シリアル演算器101fの加算器101f2の出力とシリアル演算器101eのシフタ101e1の第1番目のフリップフロップの出力を加算する加算器102e1、この加算器102e1の出力とシリアル演算器101gの加算器101g3の出力を加算する加算器102e2、この加算器102e2の出力とシリアル演算器101hの加算器101h5の出力を加算する加算器102e3、この加算器102e3の出力と入力b3を加算する加算器102e4、この加算器102e4の出力とシリアル演算器101eのシフタ101e1の第1番目のフリップフロップの出力を加算して出力x3として出力する加算器102e5から構成されている。また、上記シリアル演算器102fは、シリアル演算器101hの加算器101h2の出力からシリアル演算器101fのシフタ101f1の第1番目のフリップフロップの出力を減算する減算器102f1、この減算器102f1の出力とシリアル演算器101eの加算器101e3の出力を加算する加算器102f2、この加算器102f2の出力とシリアル演算器101gの加算器101g5の出力を加算する加算器102f3、この加算器102f3の出力と入力b2を加算する加算器102f4、この加算器102f4の出力からシリアル演算器101fのシフタ101f1の第1番目のフリップフロップの出力を減算して出力x2として出力する減算器102f5から構成されている。また、上記シリアル演算器102gは、シリアル演算器101eの加算器101e2の出力とシリアル演算器101gのシフタ101g1の第1番目のフリップフロップの出力を加算する加算器102g1、シリアル演算器101hの加算器101h3の出力から加算器102g1の出力を減算する減算器102g2、この減算器102g2の出力からシリアル演算器101fの加算器101f5の出力を減算する減算器102g3、この減算器102g3の出力から入力b1を減算する減算器102g4、この減算器102g4の出力からシリアル演算器101gのシフタ101g1の第1番目のフリップフロップの出力を減算して出力x1として出力する減算器102g5から構成されている。また、上記シリアル演算器102hは、シリアル演算器101hのシフタ101h1の第1番目のフリップフロップの出力からシリアル演算器101gの加算器101g2の出力を減算する減算器102h1、この減算器102h1の出力とシリアル演算器101fの加算器101f3の出力を加算する加算器102h2、この加算器102h2の出力からシリアル演算器101eの加算器101e5の出力を減算する減算器102h3、この減算器102h3の出力から入力b0を減算する減算器102h4、この減算器102h4の出力とシリアル演算器101hのシフタ101h1の第1番目のフリップフロップの出力を加算して出力x0として出力する加算器102h5から構成されている。

0084

次に、本実施例の動作を説明する。

0085

本実施例の動作の説明にあたり、まず、データ圧縮伸張装置の全体動作を述べ、次いで前記基本原理(I)に基づくデータ変換演算装置50における動作及び前記基本原理(II)に基づくデータ変換演算装置90における動作を述べる。

0086

全体動作
図2において、データ記憶装置10に蓄えられているパラレルデータはパラレル−シリアル変換装置11に入力され、パラレル−シリアル変換装置11はデータ記憶装置10から読み込んだパラレルデータをシリアルデータに変換してデータ変換演算装置50に出力する。データ変換演算装置50はパラレル−シリアル変換装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施す。この場合のシリアル演算は、データ変換演算装置50においてDCT演算係数を簡単な整数比に変えた形のシリアル回路により行なわれる。シリアルDCT演算されたデータはシリアル−パラレル変換装置13に出力され、シリアル−パラレル変換装置13はデータ変換演算装置50から出力されたシリアルデータをパラレルデータに変換してデータ記憶装置10に書き込む。上述した処理を縦横(順不同)二次元に施す。また、量子化装置51は、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、DCT演算係数を簡単な整数比に変えることにより生じたゲインの変化分を吸収するように構成された量子化テーブルの値で逆数の乗算をすることによって量子化演算を行なう。すなわち、DCT演算係数を簡単な整数比に変え、整数比として表されたことによって生ずる各出力のゲインの変化分は量子化装置51において吸収する。本実施例では、量子化テーブルを所定数倍(後述)することによってゲインの変化分を量子化装置51において吸収するようにしている。ところで、このような量子化テーブルを用いた場合、一見すると従来のものと比べて量子化演算のbit幅が、従来のものよりも多く必要であるかのようにも考えられるが、実際には、量子化演算には、逆数の乗算であるため、係数(例えば、7)の逆数も、7×2/COS(N/16)πの逆数も、ともに無限小数となるため、丸め近似を必要とし、ほぼ同じ程度の誤差を含む。すなわち、従来のCOS係数を2進歩の小数で表現した時点で丸め誤差が乗ってしまうので、整数の比に置き変えても誤差を押さえるためにbit幅を大きくする必要はない。

0087

上記データ変換演算装置50により実行されるシリアルDCT演算を以下に説明するシリアル演算によって行なう。

0088

データ変換演算装置50における動作(図4
データ変換演算装置50の基本的な動作は図22に示す従来例と同様であるが、このデータ変換演算装置50におけるシリアル演算では後述するように一次元当りのゲインが65/64倍、二次元では4225/4096倍のゲインが変化しているので、量子化時にその補正を行うように量子化テーブルを4225/4096倍して、その値で除算(逆数の乗算)することによって補正を行なう。

0089

以下、この演算について説明する。

0090

ステージIの演算回路61の出力については、図18及び図22に示す従来例と同様であるので以後、以下のように記する。

0091

f0+f7=a0、f0-f7=b0、f1+f6=a1、f1-f6=b1、f2+f5=a2、f2-f5=b2、f3+f4=a3、f3-f4=b3
まず、図22に示す従来例においてF0〜F7がa0〜a3およびb0〜b3によってどのように表わされていたかを示す。

0092

F0=(724a0+724a1+724a2+724a3)×2048
F4=(724a0−724a1−724a2+724a3)×2048
F2=(473a0+192a1−192a2−473a3)×4096
F6=(192a0−473a1+473a2−192a3)×4096
F1=(295b0+16833b1+25883b2+15104b3)×16
F7=(−15104b0+25883b1−16833b2+2550b3)
×16
F3=(−18176b0−64255b1−12815b2+27264b3)
×16
F5=(27264b0+12815b1−64255b2+18176b3)
×16
この式を以下のように近似し簡略化する。

0093

F0=(92a0+92a1+92a2+92a3)×128
F4=(92a0−92a1−92a2+92a3)×128
F2=(60a0+25a1−25a2−60a3)×256
F6=(25a0−60a1+60a2−25a3)×256
F1=(17b0+48b1+72b2+85b3)×6×32
F7=(−85b0+72b1−48b2+17b3)×6×32
F3=(−48b0−85b1−17b2+72b3)×6×32
F5=(72b0+17b1−85b2+48b3)×6×32
ここで、各係数の比は従来のものと、ほぼ同等であるので各出力F0〜F7の比はほぼ同等と考えられるが、その出力のゲインがどのように変化しているかについて考察してみる。

0094

出力F0についてみると本来のDCTの計算式では、出力F0は入力f0〜f7の和の2√2倍となっているが、この比率では2のべきを除いて23倍となっている。2のべき分は、取り込みのタイミングをずらすことによって無視できるので23に2√2を乗ずると約65となる。よってゲインは65/64倍となっていることがわかる。

0095

このような演算式によりDCT変換を行なうことにより、演算に必要な回路構成としてフリップフロップ(FF)70個、1 Add unit 52個で済む。また図5にあるようなタイミングによって一次元の処理を行なうことができる。但し、図5はF0、F4についてのタイミングであり、他については最終出力については同じであるが各ステージにおける出力に関しては異なる。

0096

実際には上記の演算式をさらに以下のように変形して回路を構成する。

0097

F0=((a0+a3)×16+(a1+a2)×16)×2×8×46
F4=((a0+a3)×16−(a1+a2)×16)×2×8×46
F6=((a0−a3)×40−(a1−a2)×96)×2×8×10
F2=((a0−a3)×96+(a1−a2)×40)×2×8×10
F7=(((48×(b1+b2)+68×b3)×2)×2
−((48×(b2−b1)+68×b0)×2)×10)×12
F3=(((96×b3−68×(b1+b2))×2)×6
−((96×b0−68×(b2−b1))×2)×4)×12
F5=(((96×b0−68×(b2−b1))×2)×6
−((96×b3−68×(b1+b2))×2)×4)×12
F1=(((48×(b2−b1)+68×b0)×2)×2
−((48×(b1+b2)+68×b3)×2)×10)×12
以下、上記演算式に従って構成されたデータ変換演算装置50の動作を説明する。

0098

まず、DCT演算処理の場合を述べると、ここでは、ステージIの演算回路61において加算器81aに入力データf0とf7、加算器81bに入力データf1とf6、加算器81cに入力データf2とf5、加算器81dに入力データf3とf4、減算器81eに入力データf3とf4、減算器81fに入力データf2とf5、減算器81gに入力データf1とf6、減算器81hに入力データf0とf7が入力される。これにより加算器81aは入力データf0とf7の加算結果を出力し、加算器81bは入力データf1とf6の加算結果を出力し、加算器81cは入力データf2とf5の加算結果f2+f5を出力し、加算器81dは入力データf3とf4の加算結果を出力するようになる。また、減算器81eは入力データf3とf4の減算結果を出力し、減算器81fは入力データf2とf5の減算結果を出力し、減算器81gは入力データf1とf6の減算結果を出力し、減算器81hは入力データf0とf7の減算結果を出力するようになる。この場合の入力データは、図4に示すように7bitと1bitのサインビットの8bitのデータからなっている。また、出力データは、図5Iに示すように7+1bitと1bitのサインビットからなっている。

0099

次いで、ステージIIの演算回路62に進む。この演算回路62のシリアル演算器82a〜82hには、ステージIの演算回路61で加算あるいは減算された加減算結果a0、b0、a1、b1、a2、b2、a3、b3が入力データとして与えられる。上記演算器82aでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F0=((a0+a3)×16+(a1+a2)×16)×2×8×46及び、F4=((a0+a3)×16−(a1+a2)×16)×2×8×46に共通する(a0+a3)×16の演算を実行する。この場合、演算器82aには、加算器81aの出力(a0)と加算器81dの出力(a3)とが入力され、加算器82a1でこれら入力を加算し、この加算結果がシフタ82a2に与えられる。シフタ82a2からは、図5Iに示すように、3個のフリップフロップの動作だけ遅延して出力される。また上記演算器82bでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F0=((a0+a3)×16+(a1+a2)×16)×2×8×46及び、F4=((a0+a3)×16−(a1+a2)×16)×2×8×46に共通する(a1+a2)×16の演算を実行する。この場合、演算器82bには、加算器81bの出力(a1)と加算器81cの出力(a2)とが入力され、加算器82b1でこれら入力を加算し、この加算結果がシフタ82b2に与えられる。シフタ82b2からは、図5Iに示すように、3個のフリップフロップの動作だけ遅延して出力される。

0100

また上記演算器82cでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F6=((a0−a3)×40−(a1−a2)×96)×2×8×10及び、F2=((a0−a3)×96+(a1−a2)×40)×2×8×10の(a1−a2)×96と(a1−a2)×40の演算を実行する。この場合、演算器82cには、加算器81bの出力(a1)と加算器81cの出力(a2)とが入力され、減算器82c1で加算器81bの出力から加算器81cの出力で減算すると(a1−a2)が求められる。この減算器82c1の出力をシフタ82c2に与え、このシフタ82c2の第1番目のフリップフロップの出力とシフタ82c2の出力を加算器82c3により加算し、またシフタ82c2の第2番目のフリップフロップの出力と加算器82c3の出力を82c4により加算することにより(a1−a2)×40と(a1−a2)×96が求められることになる。この場合、図5の入力に示す入力データに対して演算器82cでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。また上記演算器82dでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F6=((a0−a3)×40−(a1−a2)×96)×2×8×10及び、F2=((a0−a3)×96+(a1−a2)×40)×2×8×10の(a0−a3)×40と(a0−a3)×96の演算を実行する。この場合、演算器82dには、加算器81aの出力(a0)と加算器81dの出力(a3)とが入力され、減算器82d1で加算器81aの出力を加算器81dの出力で減算すると(a0−a3)が求められる。この減算器82d1の出力をシフタ82d2に与え、このシフタ82d2の第1番目のフリップフロップの出力とシフタ82d2の出力を加算器82d3により加算し、またシフタ82d2の第2番目のフリップフロップの出力と加算器82d3の出力を82d4により加算することにより(a0−a3)×40と(a0−a3)×96が求められることになる。この場合、図5の入力に示す入力データに対して演算器82dでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。

0101

一方、上記演算器82eでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F7=(((48×(b1+b2)+68×b3)×2)×2−((48×(b2−b1)+68×b0)×2)×10)×12とF1=(((48×(b2−b1)+68×b0)×2)×2−((48×(b1+b2)+68×b3)×2)×10)×12の68×b0の演算及び、F3=(((96×b3−68×(b1+b2))×2)×6−((96×b0−68×(b2−b1))×2)×4)×12とF5=(((96×b0−68×(b2−b1))×2)×6−((96×b3−68×(b1+b2))×2)×4)×12の96×b0の演算を実行する。この場合、演算器82eのシフタ82e1には、減算器81eの出力(b0)が入力され、シフタ82e1の第3番目のフリップフロップの出力が加算器82e2により加算されるとともに、この加算結果がシフタ82e3により1クロック遅延して出力され、また、シフタ82e1の第1番目のフリップフロップの出力と第5番目のフリップフロップの出力が加算器82e4により加算されて、68×b0及び96×b0が求められることになる。この場合、図5の入力に示す入力データに対して演算器82eでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。

0102

また、上記演算器82fでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F7=(((48×(b1+b2)+68×b3)×2)×2−((48×(b2−b1)+68×b0)×2)×10)×12とF1=(((48×(b2−b1)+68×b0)×2)×2−((48×(b1+b2)+68×b3)×2)×10)×12の48×(b2−b1)の演算及び、F3=(((96×b3−68×(b1+b2))×2)×6−((96×b0−68×(b2−b1))×2)×4)×12とF5=(((96×b0−68×(b2−b1))×2)×6−((96×b3−68×(b1+b2))×2)×4)×12の68×(b2−b1)の演算を実行する。この場合、演算器82fには、減算器81fの出力(b1)と減算器81gの出力(b2)が入力され、減算器82f1で加算器81gの出力を加算器81fの出力で減算すると(b2−b1)が求められる。この減算器82f1の出力をシフタ82f2に与え、このシフタ82f2の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算器82f3により加算し、またシフタ82f2の出力と減算器82f1の出力を82f4により加算することにより(b2−b1)×48と(b2−b1)×68が求められることになる。この場合、図5の入力に示す入力データに対して演算器82fでは、同図IIに示すタイミングで上述の演算結果を入力データとして発生するようになる。

0103

また、上記演算器82gでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F7=(((48×(b1+b2)+68×b3)×2)×2−((48×(b2−b1)+68×b0)×2)×10)×12とF1=(((48×(b2−b1)+68×b0)×2)×2−((48×(b1+b2)+68×b3)×2)×10)×12の48×(b1+b2)の演算及び、F3=(((96×b3−68×(b1+b2))×2)×6−((96×b0−68×(b2−b1))×2)×4)×12とF5=(((96×b0−68×(b2−b1))×2)×6−((96×b3−68×(b1+b2))×2)×4)×12の68×(b1+b2)の演算を実行する。この場合、演算器82gには、減算器81fの出力(b1)と減算器81gの出力(b2)が入力され、加算器82g1で加算器81fの出力と加算器81gの出力を加算すると(b1+b2)が求められる。この加算器82g1の出力をシフタ82g2に与え、このシフタ82g2の第2番目のフリップフロップの出力と第3番目のフリップフロップの出力を加算器82g3により加算し、またシフタ82g2の出力と加算器82g1の出力を82g4により加算することにより(b1+b2)×48と(b1+b2)×68が求められることになる。この場合、図5の入力に示す入力データに対して演算器82gでは、同図IIに示すタイミングで上述の演算結果を入力データとして発生するようになる。

0104

また、上記演算器82hでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F7=(((48×(b1+b2)+68×b3)×2)×2−((48×(b2−b1)+68×b0)×2)×10)×12とF1=(((48×(b2−b1)+68×b0)×2)×2−((48×(b1+b2)+68×b3)×2)×10)×12の68×b3の演算及び、F3=(((96×b3−68×(b1+b2))×2)×6−((96×b0−68×(b2−b1))×2)×4)×12とF5=(((96×b0−68×(b2−b1))×2)×6−((96×b3−68×(b1+b2))×2)×4)×12の96×b3の演算を実行する。この場合、演算器82hのシフタ82h1には、減算器81hの出力(b3)が入力され、シフタ82h1の第3番目のフリップフロップの出力と第4番目のフリップフロップの出力が加算器82h2により加算されるとともに、この加算結果がシフタ82h3により1クロック遅延して出力され、また、シフタ82h1の第1番目のフリップフロップの出力と第5番目のフリップフロップの出力が加算器82h4により加算されて、68×b3及び96×b3が求められることになる。この場合、図5の入力に示す入力データに対して演算器82hでは、同図IIに示すタイミングで上述の演算結果を入力データとして発生するようになる。

0105

次いで、ステージIIIの演算回路63に進む。この演算回路63では、ステージIIの演算回路62の演算器82a、82bの出力が加算器83aおよび減算器83bに与えられ、同様にして演算器82c、82dの出力が減算器83c及び加算器83dに与えられ、さらに演算器82e、82fの出力が加算器83e及び減算器83fに、演算器82g、82hの出力が減算器83及び加算器83hに与えられる。これにより、加算器83aは、ステージIIの演算回路82の演算器82aと演算器82bの出力を加算した結果((a0+a3)×16+(a1+a2)×16)×2を出力し、減算器83bはステージIIの演算回路62の演算器82aから演算器82bの出力を減算した結果((a0+a3)×16−(a1+a2)×16)×2を出力し、減算器83cはステージIIの演算回路62の演算器82cから演算器82dの出力を減算した結果((a0−a3)×40−(a1−a2)×96)×2を出力し、加算器83dは、ステージIIの演算回路62の演算器82cと演算器82dの出力を加算した結果((a0−a3)×96+(a1−a2)×40)×2を出力するようになる。また、加算器83eは、ステージIIの演算回路82の演算器82eと演算器82fの出力を加算した結果(48×(b2−b1)+68×b0)×2を出力し、減算器83fはステージIIの演算回路62の演算器82eから演算器82fの出力を減算した結果(96×b0−68×(b2−b1))×2を出力し、減算器83gはステージIIの演算回路62の演算器82gから演算器82hの出力を減算した結果(96×b3−68×(b1+b2))×2を出力し、加算器83hは、ステージIIの演算回路62の演算器82gと演算器82hの出力を加算した結果(48×(b1+b2)+68×b3)×2を出力するようになる。この場合、図5の入力データに対して各加算器83a、83d、83e、83h及び減算器83b、83c、83f、83gでは、同図IIIに示すタイミングで、それぞれの演算結果を出力するようになる。

0106

次いで、ステージIVの演算回路64に進む。この演算回路64では、ステージIIIの演算回路63の加算器83aの出力が演算器84aに与えられ、同様にして減算器83bの出力が演算器84bに、減算器83cの出力が演算器84cに、加算器83dの出力が演算器84dに、加算器83eの出力が演算器84eに、減算器83fの出力が演算器84fに、減算器83gの出力が演算器84gに、加算器83hの出力が演算器84hにそれぞれ与えられる。これにより、演算器84aは、ステージIIIの演算回路63の加算器83aの出力((a0+a3)×16+(a1+a2)×16)×2に対して×8×46の演算を実行し、その演算結果を出力データF0として出力する。また、演算器84bは、ステージIIIの演算回路63の減算器83bの出力((a0+a3)×16−(a1+a2)×16)×2に対して×8×46の演算を実行し、その演算結果を出力データF4として出力する。同様に、演算器84cは、ステージIIIの演算回路63の減算器83cの出力((a0−a3)×40−(a1−a2)×96)×2に対して×8×10の演算を実行し、その演算結果を出力データF6として出力する。また、演算器84dは、ステージIIIの演算回路63の加算器83dの出力((a0−a3)×96+(a1−a2)×40)×2に対して×8×10の演算を実行し、その演算結果を出力データF2として出力する。

0107

また、odd側においては、演算器84eのシフタ82e1には加算器83eの出力((48×(b2−b1)+68×b0)×2)が入力され、このシフタ84e1の出力と加算器83eの出力を加算器84e2で加算し、また、後述するシフタ84h1の第1番目のフリップフロップの出力から、この加算器84e2の出力を減算器84e3で減算する。減算器84e3の出力はシフタ84e4に与えられ、このシフタ84e4の出力から減算器84e3の出力を減算器84e5により減算し、その演算結果を出力データF7として出力する。また、演算器84fのシフタ82f1には減算器83fの出力((96×b0−68×(b2−b1))×2)が入力され、このシフタ84f1の第1番目のフリップフロップの出力と減算器83fの出力を加算器84f2で加算する。また、後述する加算器84g2の出力から、このシフタ84f1の出力を、この減算器84f3で減算する。減算器84f3の出力はシフタ84f4に与えられ、このシフタ84f4の出力から減算器84f3の出力を減算器84f5により減算し、その演算結果を出力データF3として出力する。また、演算器84gのシフタ82g1には減算器83gの出力((96×b3−68×(b1+b2))×2)が入力され、このシフタ84g1の第1番目のフリップフロップの出力と減算器83gの出力を加算器84g2で加算する。また、加算器84f2の出力と、このシフタ84g1の出力を、この加算器84g3で加算する。加算器84g3の出力はシフタ84g4に与えられ、このシフタ84g4の出力から加算器84g3の出力を減算器84g5により減算し、その演算結果を出力データF5として出力する。また、演算器84hのシフタ82h1には加算器83hの出力((48×(b1+b2)+68×b3)×2)が入力され、このシフタ84h1の出力と加算器83hの出力を加算器84h2で加算し、また、シフタ84e1の第1番目のフリップフロップの出力と、この加算器84h2の出力を加算器84h3で減算する。加算器84h3の出力はシフタ84h4に与えられ、このシフタ84h4の出力から加算器84h3の出力を減算器84h5により減算し、その演算結果を出力データF1として出力する。この場合、上記ステージIVの演算回路64の各演算器84a〜84hでは図5の入力データに対してシリアル演算を実行し、同図IVに示すタイミングで、その演算結果を出力データF0〜F7として発生するようになる。

0108

以上の説明は、DCT演算処理の場合であるが、逆DCT演算処理の場合も上述したと同様である。

0109

この場合は入力データがステージIVの演算回路64〜ステージIの演算回路61の順で与えられるようになる。

0110

図5は、データ変換演算装置50の入力から出力までのタイミングチャートであり、ステージIの演算回路61〜ステージIVの演算回路64の動作を総合した場合のタイミングチャートを示している。本実施例では、2のべきにとらわれずにDCTの演算係数を整数値に置き換え、そのゲイン変化分を量子化装置51によって吸収するようにすることによって図4に示すように回路規模を大幅に小さくすることができ、8bitのデータを入力した場合、1ライン当りの処理周期を21クロックに減少させることができる。

0111

なお、上述の例は一次元の場合であり、画素等の二次元の場合には、この処理を縦、横2度行うことによって実現するようにする。

0112

データ変換演算装置90における動作(図7図8
データ変換演算装置90の基本的な動作は図4に示したデータ変換演算装置50と同様であるが、ステージがI〜IIIとなっており、かつステージIIのodd側がDCT演算式をそのままハードウェア化したシリアル回路100により構成されているためこの部分の動作は異なっている。まず、シリアル回路100の動作について説明し、次いで、データ変換演算装置90の全体の動作を述べる。

0113

前記図6のデータ変換演算装置50の破線内の演算について、入力をb0〜b3、出力をx0〜x3として考えてみる。同図中破線内の演算は以下のような式で表わすことができる。

0114

x0=32×(−85b0+72b1−48b2+17b3)
x1=32×(−48b0−85b1−17b2+72b3)
x2=32×(72b0−17b1+85b2+48b3)
x3=32×(17b0+48b1+72b2+85b3)
上記の式により、x0〜x3は各入力b0〜b3に対して、17、48、72、85という一定の数値を乗じた値の加減算によって得られることがわかる。この場合、上記式に示すように、演算式のうち本来括弧内だけの比率で求めればよいにもかかわらず従来のシリアル演算を行なう場合には加減算及びバタフライ演算を用いていたため×32が必要となり、結果的には32=25としてフリップフロップ(FF)5段分の冗長性が存在していた。

0115

上記式の係数17、48、72、85の比率を同じままで高速化した回路が図8に示すシリアル回路100である。

0116

図8のデータ変換演算装置90のシリアル回路100について、入力をb0〜b3、出力をx0〜x3として考えてみる。図8に示すような回路構成にすると、各出力x0〜x3は以下のような式によって表わされる。

0117

x0=4×(−85b0+72b1−48b2+17b3)
x1=4×(−48b0−85b1−17b2+72b3)
x2=4×(72b0−17b1+85b2+48b3)
x3=4×(17b0+48b1+72b2+85b3)
従来の式と比べてゲインは4/32=1/8=2-3倍異なっている。つまり、2-3から3クロック従来のものよりも速く出力することがわかる。ここでは、破線内のみを高速化したため偶数成分F0、F2、F4、F6と出力タイミングおよびゲインが異なってしまうので、タイミングおよびゲインを揃えるために、偶数成分側から不必要なシフトレジスタを取り去った構成図が図8である。またその時のタイミングチャートが図10であり、入力から出力まで23クロックによって行なう。

0118

以下、上記演算式をそのままハードウェア化したシリアル回路100の動作を説明する。

0119

図8において、シリアル回路100の前段部分を構成するシリアル回路101のシリアル演算器101e〜101hには、図7のステージIの演算回路91で減算された減算結果b0、b1、b2、b3が入力データとして与えられ、各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合の該数値の部分が演算される。すなわち、上記シリアル演算器101eでは、入力b0が入力されると、この入力b0をシフトあるいはシフト加算を行なうことによって各入力b0〜b3に共通な係数17、85、48、72を2のべきにある数値(本実施例では、2、42、6、18)をかけた形で表現した場合の該数値の部分が作成される。この場合、上記式に示すようにDCT演算式を展開して各入力に共通な係数17、85、48、72が得られたとすると、図1の原理説明(II)で説明したように係数17は16+1、係数85は42×21+1、係数48は6×23、係数72は18×22と表現し、この数値2、42、6、18の部分(図1の破線内の数値参照)をシリアル演算器101eにより演算する。これにより、シリアル演算器101eのシフタ101e1の第1番目のフリップフロップから1個のフリップフロップの動作だけ遅延して出力された「2」が、入力b0とシフタ101e1の第1番目のフリップフロップの出力を加算することによって加算器101e5から「42」が、入力b0とシフタ101e1の第1番目のフリップフロップの出力を加算することによって加算器101e2から「6」が、入力b0とシフタ101e1の出力を加算することによって加算器101e3から「18」がそれぞれ出力されることになる。同様に、上記シリアル演算器101fでは、入力b1がシフトあるいはシフト加算されることによって、シリアル演算器101fのシフタ101f1の第1番目のフリップフロップから「2」が、入力b0と加算器101e4の出力を加算して出力加算器101f5から「42」が、加算器101f2から「6」が、加算器101f3から「18」がそれぞれ出力されることになる。また、上記シリアル演算器101gでは、入力b2がシフトあるいはシフト加算されることによって、シリアル演算器101gのシフタ101g1の第1番目のフリップフロップから「2」が、加算器101g5から「42」が、加算器101g2から「6」が、加算器101g3から「18」がそれぞれ出力されることになり、上記シリアル演算器101hでは、入力b3がシフトあるいはシフト加算されることによって、シリアル演算器101hのシフタ101h1の第1番目のフリップフロップから「2」が、加算器101h5から「42」が、加算器101h2から「6」が、加算器101h3から「18」がそれぞれ出力されることになる。

0120

上記シリアル演算器101e〜101hで演算されたDCT演算式の係数に相当する数値「2」、「42」、「6」、「18」はシリアル回路100の後段部分を構成するシリアル回路102のシリアル演算器102e〜102hに入力され、各シリアル演算器102e〜102hは、シリアル演算器101e〜101hにより計算された係数出力に対してDCT演算式の横方向に符号分を含めた加減算を順次行なって出力x3〜x0として出力する。この場合、上記係数17、85、48、72を2のべきにある数値をかけた形で表現したときの2のべきの部分は各シリアル演算器102e〜102hの加減算器への入力位置により調整されるとともに、原理説明(II)で説明した理由から係数17、85、48、72のうち、基本的に奇数のもの(係数17、85)についての加減算を先に行なうようにする。

0121

上記シリアル演算器102eでは、DCT演算式をそのままハードウェア化した場合のシリアル演算式x3=4×(17b0+48b1+72b2+85b3)を実行する。この場合、シリアル演算器102eの加算器102e1には、シリアル演算器101fの加算器101f2の出力とシリアル演算器101eのシフタ101e1の第1番目のフリップフロップの出力とが入力され、加算器102e1でこれら入力を加算し、この加算器102e1の出力とシリアル演算器101gの加算器101g3の出力を加算器102e2で加算し、この加算器102e2の出力とシリアル演算器101hの加算器101h5の出力を加算器102e3で加算し、この加算器102e3の出力と入力b3を加算器102e4で加算し、この加算器102e4の出力とシリアル演算器101eのシフタ101e1の第1番目のフリップフロップの出力を加算器102e5で加算すると出力x3が求められる。

0122

また、上記シリアル演算器102fでは、DCT演算式をそのままハードウェア化した場合のシリアル演算式x2=4×(72b0−17b1+85b2+48b3)を実行する。この場合、シリアル演算器102fの減算器102f1には、シリアル演算器101hの加算器101h2の出力とシリアル演算器101fのシフタ101f1の第1番目のフリップフロップの出力とが入力され、減算器102f1で加算器101h2の出力からシフタ101f1の第1番目のフリップフロップの出力を減算し、この減算器102f1の出力とシリアル演算器101eの加算器101e3の出力を加算器102f2で加算し、この加算器102f2の出力とシリアル演算器101gの加算器101g5の出力を加算器102f3で加算し、この加算器102f3の出力と入力b2を加算器102f4で加算し、この加算器102f4の出力からシリアル演算器101fのシフタ101f1の第1番目のフリップフロップの出力を減算器102f5で減算すると出力x2が求められる。

0123

また、上記シリアル演算器102gでは、DCT演算式をそのままハードウェア化した場合のシリアル演算式x1=4×(−48b0−85b1−17b2+72b3)実行する。この場合、シリアル演算器102gの加算器102g1には、シリアル演算器101eの加算器101e2の出力とシリアル演算器101gのシフタ101g1の第1番目のフリップフロップの出力とが入力され、加算器102g1でこれら入力を加算し、次いで減算器102g2でシリアル演算器101hの加算器101h3の出力から加算器102g1の出力を減算し、この減算器102g2の出力からシリアル演算器101fの加算器101f5の出力を減算器102g3で減算し、この減算器102g3の出力から入力b1を減算器102g4で減算し、この減算器102g4の出力からシリアル演算器101gのシフタ101g1の第1番目のフリップフロップの出力を減算器102g5で減算すると出力x1が求められる。

0124

また、上記シリアル演算器102hでは、DCT演算式をそのままハードウェア化した場合のシリアル演算式x0=4×(−85b0+72b1−48b2+17b3)実行する。この場合、シリアル演算器102hの減算器102h1には、シリアル演算器101hのシフタ101h1の第1番目のフリップフロップの出力とシリアル演算器101gの加算器101g2の出力とが入力され、減算器102h1でシフタ101h1の第1番目のフリップフロップの出力から加算器101g2の出力を減算し、この減算器102h1の出力とシリアル演算器101fの加算器101f3の出力を加算器102h2で加算し、この加算器102h2の出力からシリアル演算器101eの加算器101e5の出力を減算器102h3で減算し、この減算器102h3の出力から入力b0を減算器102h4で減算し、この減算器102h4の出力とシリアル演算器101hのシフタ101h1の第1番目のフリップフロップの出力を加算器102h5で加算すると出力x0が求められる。

0125

上記シリアル演算の場合、図10の入力データに対してシリアル演算器102e〜102hからは、同図IIに示すタイミングで、それぞれの演算結果を出力するようになる。

0126

以下、上記シリアル回路100を含んで構成されたデータ変換演算装置90の動作を説明する。

0127

まず、DCT演算処理の場合を述べると、ここでは、ステージIの演算回路91において加算器81aに入力データf0とf7、加算器81bに入力データf3とf4、加算器81cに入力データf1とf6、加算器81dに入力データf2とf5、減算器81eに入力データf0とf7、減算器81fに入力データf3とf4、減算器81gに入力データf1とf6、減算器81hに入力データf2とf5が入力される。これにより加算器81aは入力データf0とf7の加算結果を出力し、加算器81bは入力データf3とf4の加算結果を出力し、加算器81cは入力データf1とf6の加算結果f1+f6を出力し、加算器81dは入力データf2とf5の加算結果を出力するようになる。また、減算器81eは入力データf0とf7の減算結果を出力し、減算器81fは入力データf3とf4の減算結果を出力し、減算器81gは入力データf1とf6の減算結果を出力し、減算器81hは入力データf2とf5の減算結果を出力するようになる。この場合の入力データは、図10に示すように7bitと1bitのサインビットの8bitのデータからなっている。また、出力データは、図10Iに示すように7+1bitと1bitのサインビットからなっている。

0128

次いで、ステージIIの演算回路92に進む。この演算回路92のeven側のシリアル演算器92a〜92dには、ステージIの演算回路91で加算された加算結果a0、a1、a2、a3が入力データとして与えられ、odd側のシリアル回路100には、ステージIの演算回路91で減算された減算結果b0、b1、b2、b3が入力データとして与えられる。上記演算器92aでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F0=(92a0+92a1+92a2+92a3)×128の括弧内の演算を実行する。この場合、シリアル演算器92aの前段部を構成する加算器82a1には、加算器81aの出力と加算器81dの出力とが入力され、加算器82a1でこれら入力データを加算し、この加算結果がシフタ82a2に与えられる。また、上記シリアル演算器92bでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F4=(92a0−92a1−92a2+92a3)×128の括弧内の演算を実行する。この場合、シリアル演算器92bの前段部を構成する演算器92bには、加算器81bの出力と加算器81cの出力とが入力され、加算器82b1でこれら入力データを加算し、この加算結果がシフタ82b2に与えられる。これにより、シフタ82a2及びシフタ82b2からは3個のフリップフロップの動作だけ遅延して出力されることになる。 また、上記シリアル演算器92cでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F6=(25a0+60a1−60a2−25a3)×128の括弧内の演算を実行する。この場合、シリアル演算器92cの前段部を構成する演算器82cには、加算器81bの出力と加算器81cの出力とが入力され、減算器82c1で加算器81bの出力を加算器81cの出力で減算すると(a1−a2)が求められる。この減算器82c1の出力をシフタ82c2に与え、このシフタ82c2の第1番目のフリップフロップの出力とシフタ82c2の出力を加算器82c3により加算し、また、シフタ82c2の第2番目のフリップフロップの出力と加算器82c3の出力を加算器82c4により加算することにより「25」、「60」が求められることになる。また、上記シリアル演算器92dでは、係数を簡単な整数比に近似した場合のDCTシリアル演算式F2=(60a0+25a1−25a2−60a3)×128の括弧内の演算を実行する。この場合、シリアル演算器92dの前段部を構成する演算器82dには、加算器81aの出力と加算器81dの出力とが入力され、減算器82d1で加算器81aの出力を加算器81dの出力で減算すると(a0−a3)が求められる。この減算器82d1の出力をシフタ82d2に与え、このシフタ82d2の第1番目のフリップフロップの出力とシフタ82d2の出力を加算器82d3により加算し、また、シフタ82d2の第2番目のフリップフロップの出力と加算器82d3の出力を加算器82d4により加算することにより「60」、「25」が求められることになる。

0129

次いで、上記演算器82a〜82dで求めた演算結果は、シリアル演算器92a〜92dの後段部を構成する加減算器に与えられる。具体的には、演算器82a、82bの出力が加算器83aおよび減算器83bに与えられ、演算器82c、82dの出力が減算器83c及び加算器83dに与えられ、さらに演算器82e、82fの出力が加算器83e及び減算器83fに、演算器82g、82hの出力が減算器83及び加算器83hに与えられる。これにより、加算器83aは、演算器82aと演算器82bの出力を加算した結果(92a0+92a1+92a2+92a3)を出力し、減算器83bは、演算器82aから演算器82bの出力を減算した結果(92a0−92a1−92a2+92a3)を出力し、減算器83cは、演算器82cから演算器82dの出力を減算した結果(25a0+60a1−60a2−25a3)を出力し、加算器83dは、演算器82cと演算器82dの出力を加算した結果(60a0+25a1−25a2−60a3)を出力するようになる。この場合、図10の入力に示す入力データに対して演算器83a〜83hでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。

0130

なお、ステージIIの演算回路92のodd側を構成するシリアル回路100の動作は前述している。

0131

次いで、ステージIIIの演算回路93に進む。この演算回路93では、ステージIIの演算回路92の加算器83aの出力が演算器93aに与えられ、同様にして減算器83bの出力が演算器93bに、減算器83cの出力が演算器93cに、加算器83dの出力が演算器93dに、シリアル回路100の出力x0が演算器93eに、シリアル回路100の出力x1が演算器93fに、シリアル回路100の出力x2が演算器93gに、シリアル回路100の出力x3が演算器93hにそれぞれ与えられる。これにより、演算器93aは、ステージIIの演算回路92の加算器83aの出力(92a0+92a1+92a2+92a3)に対して×128の演算を実行し、出力F0のゲイン128を与え、その演算結果を出力データF0として出力する。また、演算器93bは、ステージIIの演算回路92の減算器83bの出力(92a0−92a1−92a2+92a3)に対して×128の演算を実行し、出力F4のゲイン128を与え、その演算結果を出力データF4として出力する。同様に、演算器93cは、ステージIIの演算回路92の減算器83cの出力(25a0+60a1−60a2−25a3)に対して×128の演算を実行し、出力F6のゲイン128を与え、その演算結果を出力データF6として出力する。また、演算器93dは、ステージIIの演算回路92の加算器83dの出力(60a0+25a1−25a2−60a3)に対して×128の演算を実行し、出力F2のゲイン128を与え、その演算結果を出力データF2として出力する。

0132

また、odd側においては、演算器93eのシフタ84e4及び減算器84e5は、ステージIIのシリアル回路100の出力x0に対して×32の演算を実行して出力F7のゲイン32を与え、その演算結果を出力データF7として出力する。また、演算器93fのシフタ84f4及び減算器84f5は、ステージIIのシリアル回路100の出力x1に対して×32の演算を実行して出力F3のゲイン32を与え、その演算結果を出力データF3として出力する。同様に、演算器93gのシフタ84g4及び減算器84g5は、ステージIIのシリアル回路100の出力x2に対して×32の演算を実行して出力F5のゲイン32を与え、その演算結果を出力データF5として出力する。また、演算器93hのシフタ84h4及び減算器84h5は、ステージIIのシリアル回路100の出力x3に対して×32の演算を実行して出力F1のゲイン32を与え、その演算結果を出力データF1として出力する。この場合、上記ステージIIIの演算回路93の各演算器93a〜93hでは図10の入力データに対してシリアル演算を実行し、同図IIIに示すタイミングで、その演算結果を出力データF0〜F7として発生するようになようになる。

0133

以上の説明は、DCT演算処理の場合であるが、逆DCT演算処理の場合も上述したと同様である。

0134

この場合は入力データがステージIIIの演算回路93〜ステージIの演算回路91の順で与えられるようになる。

0135

図10は、データ変換演算装置90の入力から出力までのタイミングチャートであり、ステージIの演算回路91〜ステージIIIの演算回路93の動作を総合した場合のタイミングチャートを示している。本実施例では、DCT演算式を展開することによって各入力に共通な係数が表れるように係数を分割し、このように展開したDCT演算式をバタフライ演算にとらわれずにそのままハードウェア化することによって偶数成分側からタイミングおよびゲインを揃えるために設けられたシフトレジスタを取り去ることができ、図9に示すデータ変換演算装置50のタイミングチャートと比較して明らかなように7bitのデータを入力した場合、1ライン当りの処理周期を26クロックから23クロックに減少させることができる。

0136

以上説明したように、本実施例のデータ圧縮伸張装置は、画像データをパラレルデータの形で蓄えるデータ記憶装置10と、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換装装置11と、DCT演算係数を簡単な整数比に変えた形のシリアル回路により構成されるとともに、odd側については演算式をそのままハードウェア化したシリアル回路100を含んで構成され、パラレル−シリアル変換装装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施すデータ変換演算装置90と、シリアルDCT演算されたシリアルデータをパラレルデータに変換してデータ記憶装置10に書き込むシリアル−パラレル変換装置13と、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、DCT演算係数を整数比に変えることにより生じたゲイン変化分を吸収させるように構成した量子化テーブルの値で除算することによって量子化演算を行なう量子化装置51と、上記各部の動作をデータ圧縮伸張装置の全体を制御する制御装置52とを有し、シリアル回路100は、DCT演算式を展開して得られた各入力b0〜b3に共通な係数を2のべきにある数値をかけた形で表現した場合の該数値の部分を作成するシリアル回路101と、このシリアル回路101により計算された係数出力に対して式の横方向に符号分を含めた加減算を行なって出力x0〜x3として出力するシリアル回路102により構成されているので、演算式をそのままハードウェア化することによってバタフライ演算部をなくすとともにFF等の段数を減らすことができ、クロック数(時間)を短縮することができる。すなわち、図22に示す従来のデータ変換演算装置12の回路構成の場合、8bitのデータを入力した場合図9に示すようにLSB入力からMSB出力まで26クロックかかっていたが、図7に示すデータ変換演算装置90ではステージIIのodd側にシリアル回路100を用いることにより偶数成分側からタイミングおよびゲインを揃えるために設けられたシフトレジスタを3段取り去ることができ、図9に示すデータ変換演算装置50のタイミングチャートと比較して明らかなように7bitのデータを入力した場合、1ライン当りの処理周期を26クロックから23クロックに減少させることができる。その結果、少ないクロック数によりデータ変換演算を実行できるという利点があり、画像圧縮等のデータ圧縮に利用することができる。

0137

また、本実施例のデータ圧縮伸張装置は、画像データをパラレルデータの形で蓄えるデータ記憶装置10と、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換装装置11と、DCT演算係数を簡単な整数比に変えた形のシリアル回路により構成され、パラレル−シリアル変換装装置11から出力されたデータに対して一次元のDCT演算をシリアル演算の形で施すデータ変換演算装置50と、シリアルDCT演算されたシリアルデータをパラレルデータに変換してデータ記憶装置10に書き込むシリアル−パラレル変換装置13と、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、DCT演算係数を整数比に変えることにより生じたゲイン変化分を吸収させるように構成した量子化テーブルの値で除算することによって量子化演算を行なう量子化装置51と、上記各部の動作をデータ圧縮伸張装置の全体を制御する制御装置52とを設け、2のべきで表現できる部分はべきで表現してシリアル回路を構成する一方で、べきで表現しようとすればビット数が大きくなってしまう部分については敢えてべきにより表現しようとしないで2のべきにとらわれずにDCT演算式の係数を整数比に置き換え、そのゲイン変化分を量子化部によって吸収するようにしているので、単にシリアル回路を実現していた場合に比べ、データ変換演算装置50の回路規模を大幅に小さくすることができるとともに、シリアルの段数を減少させて処理速度を向上させることがでる。すなわち、図22に示す従来例では、フリップフロップ(FF)が126個、1bitAdd(Sub)unitが 62個必要となり未だ回路規模が大きかったが、本実施例では、演算に必要な回路構成としてフリップフロップ(FF)70個、1 Add unit52個で済むことになり回路規模を大幅に小さくすることができる。また、シリアル回路を構成するフリップフロップ(FF)等の段数が削減されるので、図5に示すように8bitのデータを入力した場合、1ライン当りの処理周期を従来例の27クロック(図26)から21クロックに減少させることができる。 また、誤差を含んだ係数による演算は量子化装置51において一度行われるのみであり演算の大部分が誤差を含まない整数の比によって行なうことができ、量子化の前までの演算におけるデータビット幅を従来のものより大幅に小さくすることができ、小さなバス幅で高い演算精度を得ることができる。また、データ変換演算装置50自体が、極めて小さなFF等の組合せからなるシリアル回路によってDCT演算を行なうようにしているので、回路規模を大幅に小さくすることができ、かつ高速に処理を行なうことが可能になる。

0138

このように高い演算精度を持ちかつ回路規模の小さなデータ圧縮伸張装置が実現できることからDCTを用いた画像圧縮や音声圧縮を行うデータ圧縮伸張装置に適用して好適である。

0139

なお、本実施例では、データ変換演算装置90のステージIIのodd側にシリアル回路100を適用した例を示したが、これには限定されず、データ変換演算式を各項毎に展開し、展開した式に従ってシリアル回路を構成するものであればどのような回路部分に適用してもよいことは言うまでもない。

0140

また、本実施例では係数を例えば所定の整数の比とする例を示したが、これには限定されず、整数の比で表されるものであればどのような整数比でもよく整数値であってもことは言うまでもない。

0141

また、演算係数を2のべき(2のn乗)の和(差)で表現して図3に示すようなシリアルの回路により演算を行っているが、シリアルデータ処理が行われるものであればどのようなユニットの組合せでもよいことは勿論である。

0142

また、上記画像圧縮装置等を構成する回路や部材の数、種類などは前述した実施例に限られないことは言うまでもなく、ソフトウェア(例えば、C言語)により実現するようにしてもよい。

0143

また、本実施例では、データ変換演算装置にDCTを適用しているが、これら符号化方式には限定されず、符号化演算を行なうものであればどのような装置や演算式にも適用できることは言うまでもない。例えば、ハール(Harr)変換、傾斜変換スラント変換)、対称性サイン変換などを用いたデータ圧縮伸張装置に適用することができる。

0144

また、入力データに対してデータ変換を行なうものであれば、データ変換の種類は何でもよく、DCTによる周波数成分の変換のほか、例えばFFT,LOT(Lapped Orthogonal Transform:重合直交変換)等の直交データ変換に適用可能である。また、データ変換演算部の係数を量子化部で吸収させるようにしているが、係数を調整できるものであればどのような量子化部で調整してもよいことは勿論である。

発明の効果

0145

請求項1記載の発明によれば、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段のデータ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしているので、シフトレジスタ等のシリアル回路の段数を減少させてクロック数を減らすことができ、処理速度を向上させることができる。

0146

また、請求項2、3、4、5、6、7、8、9、10、11、12、13、14及び15記記載の発明によれば、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して所定の係数に基づいてシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段の係数を整数の比に置き換え、該整数の比に置き換えることにより生じたゲインの変化を、前記量子化手段により調整するようにするとともに、データ変換演算式を展開し、展開した式に従って前記データ変換演算手段を構成するようにしているので、単にシリアル回路を実現していた場合に比べ、回路規模を大幅に小さくすることができるとともに、シリアルの段数を減少させて処理速度を向上させることができ、画像等のデータ圧縮に利用することができる。

図面の簡単な説明

0147

図1データ圧縮伸張装置の原理説明図である。
図2データ圧縮伸張装置のブロック構成図である。
図3データ圧縮伸張装置のデータ変換演算装置のブロック構成図である。
図4データ圧縮伸張装置のデータ変換演算装置の回路構成図である。
図5データ圧縮伸張装置のデータ変換演算装置の動作を説明するためのタイミングチャートである。
図6データ圧縮伸張装置のデータ変換演算装置の回路構成図である。
図7データ圧縮伸張装置のデータ変換演算装置の回路構成図である。
図8データ圧縮伸張装置のデータ変換演算装置のシリアル回路の回路構成図である。
図9データ圧縮伸張装置のデータ変換演算装置の動作を説明するためのタイミングチャートである。
図10データ圧縮伸張装置のデータ変換演算装置の動作を説明するためのタイミングチャートである。
図11従来のデータ圧縮伸張装置のブロック構成図である。
図12従来のデータ圧縮伸張装置の画像データの処理を説明するための図である。
図13従来のデータ圧縮伸張装置の量子化テーブルの例を示す図である。
図14従来のデータ圧縮伸張装置のデータ変換演算装置におけるシリアル演算を説明するための図である。
図15従来のデータ圧縮伸張装置のデータ変換演算装置におけるシリアル演算を説明するための図である。
図16従来のデータ圧縮伸張装置のデータ変換演算装置におけるシリアル演算を説明するための図である。
図17従来のデータ圧縮伸張装置のデータ変換演算装置のブロック構成図である。
図18従来のデータ圧縮伸張装置のデータ変換演算装置のIステージの回路構成図である。
図19従来のデータ圧縮伸張装置のデータ変換演算装置のIIステージの回路構成図である。
図20従来のデータ圧縮伸張装置のデータ変換演算装置のIIIステージの回路構成図である。
図21従来のデータ圧縮伸張装置のデータ変換演算装置のIVステージの回路構成図である。
図22従来のデータ圧縮伸張装置のデータ変換演算装置の回路構成図である。
図23従来のデータ圧縮伸張装置のシリアル演算素子を説明する図である。
図24従来のデータ圧縮伸張装置のシリアル演算素子を説明する図である。
図25従来のデータ圧縮伸張装置のシリアル演算素子を説明する図である。
図26従来のデータ圧縮伸張装置のデータ変換演算装置の動作を説明するためのタイミングチャートである。

--

0148

10データ記憶装置
11パラレル−シリアル変換装装置
13シリアル−パラレル変換装置
51量子化装置
50,90データ変換演算装置
52制御装置
91ステージIの演算回路
92 ステージIIの演算回路
93 ステージIIIの演算回路
100 シリアル回路
101 シリアル回路(第1のシリアル演算部)
102 シリアル回路(第2のシリアル演算部)
ID=000005HE=025 WI=037 LX=1315 LY=0700
ID=000006 HE=005 WI=035 LX=1325 LY=1000

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ