図面 (/)

技術 データ圧縮伸張装置

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

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

図面 (20)

目的

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

構成

データ圧縮伸張装置は、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換回路61、シリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能中間データ記憶装置63、及びパラレル−シリアル変換演算回路61と中間データ記憶回路63からのシリアル入力に対してデータ変換演算をシリアル演算の形で施すデータ変換演算回路62により構成され、データ変換演算回路62は異なる係数乗算するシリアル回路62a,62bを並置し、並置したシリアル回路62a,62bによる乗算結果を中間データ記憶装置63で累算することによりシリアル変換出力を得る。

概要

背景

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で定義される。

概要

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

データ圧縮伸張装置は、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換回路61、シリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能中間データ記憶装置63、及びパラレル−シリアル変換演算回路61と中間データ記憶回路63からのシリアル入力に対してデータ変換演算をシリアル演算の形で施すデータ変換演算回路62により構成され、データ変換演算回路62は異なる係数乗算するシリアル回路62a,62bを並置し、並置したシリアル回路62a,62bによる乗算結果を中間データ記憶装置63で累算することによりシリアル変換出力を得る。

目的

また、上記データ変換演算装置12にシリアルデータを供給するパラレル−シリアル変換装置11おいても、図に示すようにシフトレジスタ101a〜101k(108a〜108k)を88個も必要とする非常に大きな回路であったためこの部分の回路規模が大きいという欠点があった。そこで本発明は、小さな回路規模で高速にデータの圧縮伸張を行なうことが可能なデータ圧縮伸張装置を提供することを目的としている。

効果

実績

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

この技術が所属する分野

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

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

請求項1

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

請求項2

所定のデータを記憶するデータ記憶手段と、前記データ記憶手段のデータをパラレルデータからシリアルデータに変換するパラレル−シリアル変換手段と、シリアルデータ及びパラレルデータの何れのデータとしても出力可能なシリアルデータを一時的に蓄える中間データ記憶手段と、前記パラレル−シリアル変換手段と前記中間データ記憶手段から出力されたシリアルデータに対してシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記パラレル−シリアル変換手段、前記中間データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段は、入力データに対してデータ変換演算式の各項の係数を乗算し、該乗算結果を累算することによりデータ変換演算出力を得るようにしたことを特徴とするデータ圧縮伸張装置。

請求項3

前記データ変換演算手段は、入力データに対してデータ変換演算式の各項の係数を乗算するシリアル回路並置し、該シリアル回路による乗算結果を累算することによりデータ変換演算出力を得るようにしたことを特徴とする請求項1又は請求項2の何れかに記載のデータ圧縮伸張装置。

請求項4

前記データ変換演算手段は、入力データに対してデータ変換演算式の各項の係数を乗算するシリアル回路を並置するとともに、該並置したシリアル回路からの乗算結果を累算する累算回路を設け、該シリアル回路によりデータ変換演算式の各項の係数の乗算を行なって乗算結果を累算回路で累算し、以下このシリアル回路による係数の乗算と累算回路による乗算結果の累算をデータ変換演算式の各項だけ繰り返してデータ変換演算出力を得るようにしたことを特徴とする請求項1又は請求項2の何れかに記載のデータ圧縮伸張装置。

請求項5

前記データ変換演算手段の累算回路は、前記中間データ記憶手段により構成されることを特徴とする請求項4に記載のデータ圧縮伸張装置。

請求項6

前記データ変換演算手段のシリアル回路は、入力データに対して異なる係数を乗算する乗算回路と、該乗算回路により乗算された複数の乗算結果から所定の乗算結果を選択する選択回路とにより構成されることを特徴とする請求項3又は請求項4の何れかに記載のデータ圧縮伸張装置。

請求項7

前記データ変換演算手段に入力される入力データは、データ変換演算式を展開したときデータ変換演算式の各項に表れる入力データであることを特徴とする請求項1、請求項2、請求項3、請求項4又は請求項6の何れかに記載のデータ圧縮伸張装置。

請求項8

前記データ変換演算手段に入力される入力データは、データ変換演算式を展開したときデータ変換演算式の各項に表れる偶数成分のデータと奇数成分のデータを組合せたデータであることを特徴とする請求項1、請求項2、請求項3、請求項4又は請求項6の何れかに記載のデータ圧縮伸張装置。

請求項9

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

請求項10

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

請求項11

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

請求項12

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

請求項13

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

請求項14

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

請求項15

前記データ変換演算手段で用いられるデータ変換演算式は、逆データ変換演算式を含むことを特徴とする請求項1、請求項2、請求項3、請求項4、請求項7、請求項8、請求項13又は請求項14の何れかに記載のデータ圧縮伸張装置。

請求項16

前記データ変換演算手段の係数は、コサイン係数であることを特徴とする請求項1、請求項2、請求項3、請求項4、請求項6、請求項13又は請求項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=035 WI=082 LX=0640 LY=1450
また、逆DCT変換は、数2で定義される。

0006

ID=000004HE=015 WI=082 LX=0640 LY=1900
そこで、DCT変換を効率良く実行するため、参考文献IEEE TRANSACTION ONCOMMUNICATIONS. VOL.COM-25. NO.11 NOVEMBER1977(Adaptive Coding of Monochromc and Color lmage. WEN-HSIUNG CHEN.C.HARRISONSMITH)に開示されているDCTフローが考えられている。図8は、DCTフローグラフの一例を示すもので、ここではI〜IVのステージからなる8次DCTフローグラフを示している。そして、このようなフローグラフを用いて各ステージI〜IV毎に、いわゆるバタフライ演算を行なうようにすることによって、DCT変換の場合は左から右方向に、逆DCT変換の場合は右から左方向に実行するようになる。この場合、図9に示すようなデータa、bのバタフライ演算では、x=a+b、y=a−bの加減算が実行され、図10に示すようなデータa、bのバタフライ演算では、x=Na+Mb、y=Ma−Nbの乗算と加減算が実行される。ここで、N=C0S(N/16)π、M=COS(M/16)πである。図8のDCTフローグラフでは各COS係数図11に示すような整数比で近似した値が用いられる。例えば、N=0のときのC0S(N/16)πを1とすると、Nの値に応じてC0S(N/16)πは図示のような値となる。また、N=0のときのC0S(N/16)πを×28=256と表すと、Nの値に応じて図示のような値となり、これらの値はさらに同図右側に示すような近似値の式で表される。このように各COS係数を整数比で近似した値を近似値の式で表わすのは、図12図27で後述するようにシリアルDCT演算を行なうようにするためである。

0007

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

0008

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

0009

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

0010

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

0011

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

0012

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

0013

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

0014

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

0015

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

0016

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

0017

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

0018

図20は、ステージIIの演算回路32の回路構成を示す図である。演算回路32は上述したシリアル演算を実行するものであり、シフタ2a〜2fと、COS4/16π演算(数1参照)を行なうCOS4/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から構成されている。

0019

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

0020

図22は、ステージ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に代えて同符号を付することで説明は省略する。

0021

また、上記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で減算するようにしている。

0022

一方、上記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を介して発生するようにしている。

0023

また、上記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で減算するようにしている。

0024

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

0025

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

0026

まず、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)の減算結果を出力するようになる。この場合の入力データは、図に示すように7bitと1bitのサインビットの8bitのデータからなっている。また、出力データは、図27のIに示すように7+1bitと1bitのサインビットからなっている。ここで、出力データが7+1bitになるのは、加算器1a〜1dでの加算結果を考慮したからである。

0027

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

0028

一方、上記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が求められることになる。この場合、図27の入力に示す入力データに対してCOS(4/16)π演算器2gでは、同図IIに示すタイミングで上述の演算結果を出力データとして発生するようになる。

0029

次いで、ステージ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の出力を減算した結果を出力するようになる。この場合、図27の入力データに対して各加算器3a、3b、3e、3fおよび減算器3c、3d、3g、3hでは、同図IVに示すタイミングで、それぞれの演算結果を出力するようになる。

0030

次いで、ステージ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に各別に与えられる。この場合、図27の入力データに対して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)として発生するようになる。

0031

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

0032

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

0033

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

0034

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

0035

図28は上記データ圧縮伸張装置のパラレル−シリアル変換装置11の回路構成図である。

0036

図28において、パラレル−シリアル変換装置11は、データ記憶装置10から出力された8bitのパラレルデータを順次蓄える8本の11bitシフトレジスタ101〜108からなり、シフトレジスタ101は11bitのシフトレジスタ101a〜101kから構成される。シフトレジスタ102〜108についても同様に、11bitのシフトレジスタ102a〜102k(108a〜108k)から構成される。なお、演算精度を上げたいときには上記シフトレジスタの本数を増やす必要がある。

0037

このような構成を有するパラレル−シリアル変換装置11は、データ記憶装置10から読み込んだ8bitパラレルデータを、シフトレジスタ101〜108の11bitのシフトレジスタ101a〜101k(108a〜108k)に順次シフトして蓄え、シフトレジスタ101a〜101k(108a〜108k)に蓄えたデータをシフトレジスタ101aから読み出すことによって8bitパラレルデータをシリアルデータに変換してデータ変換演算装置12に出力する。

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

0038

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

0039

また、上記データ変換演算装置12にシリアルデータを供給するパラレル−シリアル変換装置11おいても、図に示すようにシフトレジスタ101a〜101k(108a〜108k)を88個も必要とする非常に大きな回路であったためこの部分の回路規模が大きいという欠点があった。そこで本発明は、小さな回路規模で高速にデータの圧縮伸張を行なうことが可能なデータ圧縮伸張装置を提供することを目的としている。

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

0040

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

0041

請求項2記載の発明は、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段のデータをパラレルデータからシリアルデータに変換するパラレル−シリアル変換手段と、シリアルデータ及びパラレルデータの何れのデータとしても出力可能なシリアルデータを一時的に蓄える中間データ記憶手段と、前記パラレル−シリアル変換手段と前記中間データ記憶手段から出力されたシリアルデータに対してシリアル演算によりデータ変換演算を実行するデータ変換演算手段と、前記データ変換演算手段によるデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記パラレル−シリアル変換手段、前記中間データ記憶手段、前記データ変換演算手段及び前記量子化手段を制御をする制御手段とを備えたデータ圧縮伸張装置であって、前記データ変換演算手段は、入力データに対してデータ変換演算式の各項の係数を乗算し、該乗算結果を累算することによりデータ変換演算出力を得るようにしている。

0042

前記データ変換演算手段は、例えば請求項3に記載されているように、入力データに対してデータ変換演算式の各項の係数を乗算するシリアル回路を並置し、該シリアル回路による乗算結果を累算することによりデータ変換演算出力を得るようにしてもよく、前記データ変換演算手段は、例えば請求項4に記載されているように、入力データに対してデータ変換演算式の各項の係数を乗算するシリアル回路を並置するとともに、該並置したシリアル回路からの乗算結果を累算する累算回路を設け、該シリアル回路によりデータ変換演算式の各項の係数の乗算を行なって乗算結果を累算回路で累算し、以下このシリアル回路による係数の乗算と累算回路による乗算結果の累算をデータ変換演算式の各項だけ繰り返してデータ変換演算出力を得るようにしてもよい。

0043

また、前記データ変換演算手段の累算回路は、例えば請求項5に記載されているように、前記中間データ記憶手段により構成されるものであってもよく、前記データ変換演算手段のシリアル回路は、例えば請求項6に記載されているように、入力データに対して異なる係数を乗算する乗算回路と、該乗算回路により乗算された複数の乗算結果から所定の乗算結果を選択する選択回路とにより構成されるものであってもよい。

0044

また、前記データ変換演算手段に入力される入力データは、例えば請求項7に記載されているように、データ変換演算式を展開したときデータ変換演算式の各項に表れる入力データであってもよく、また、前記データ変換演算手段に入力される入力データは、例えば請求項8に記載されているように、データ変換演算式を展開したときデータ変換演算式の各項に表れる偶数成分のデータと奇数成分のデータを組合せたデータであってもよい。

0045

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

0046

また、前記データ変換演算手段で用いられるデータ変換演算式は、例えば請求項15に記載されているように、逆データ変換演算式を含むものであってもよく、前記データ変換演算手段の係数は、例えば請求項16に記載されているように、コサイン係数であってもよい。

0047

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

0048

請求項1、2、3、4、5、6、7、8、9、10、11、12、13、14、15及び16記載の発明では、入力データに対してデータ変換演算式の各項の係数を乗算するシリアル回路が並置され、並置されたシリアル回路からの乗算結果を累算する累算回路が設けられている。この累算回路は、例えばシリアルデータ及びパラレルデータの何れのデータとしても出力可能なシリアルデータを一時的に蓄える中間データ記憶回路により構成される。

0049

この状態で、入力データとして、データ変換演算式を展開したときデータ変換演算式の各項に表れる偶数成分のデータと奇数成分のデータを組合せたデータが並置されたシリアル回路にそれぞれ入力されると、シリアル回路によりそれぞれの入力データに対して異なる係数の乗算が行なわれ、乗算結果のうち必要な乗算結果が選択されて累算回路に出力され、累算回路で累算される。以下、このシリアル回路による係数の乗算と累算回路による乗算結果の累算がデータ変換演算式の各項だけ繰り返されてデータ変換演算式の全項について処理が終るとデータの変換演算が出力される。

0050

従って、データ変換演算回路自体のシリアルの段数を減少させることに加えて入力側のパラレル−シリアル変換回路のシフトレジスタの数を削減することができ、回路規模を大幅に小さくすることができ、画像等のデータ圧縮に利用することができる。

0051

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

0052

原理説明
先ず、本実施例の基本的な考え方を説明する。図12に示した従来のデータ圧縮伸張装置では、シリアル演算によるDCT演算を実現するため、データ記憶装置10から読み込んだパラレルデータをパラレル−シリアル変換装置11によりシリアルデータに変換してデータ変換演算装置12に出力し、データ変換演算装置12によりシリアルDCT演算されたデータはシリアル−パラレル変換装置13でパラレルデータに変換してデータ記憶装置10に書き込まれる。具体的には、図28に示すようなパラレル−シリアル変換回路によってパラレルデータをシリアルデータに変換して図23に示すようなシリアルDCT演算回路に出力し、図23に示すシリアルDCT演算回路はDCT演算式のCOS係数値を2のべきで表わしたシリアルDCT演算回路によってDCT演算を実行し、シリアルDCT演算されたデータはシリアル−パラレル変換装置13でパラレルデータに変換されて出力される。シリアルDCT演算回路は、図28に示すようにDCT演算を並列的に行なうDCT演算装置のCOS係数値を整数比で近似しただけであったため、回路規模が未だ大きかった。また、シリアルDCT演算を行なうためにパラレルデータをシリアルデータに変換するパラレル−シリアル変換回路が必要となるばかりか、このパラレル−シリアル変換回路自体が図28に示すように非常に大きな回路であるのでデータ圧縮伸張装置全体の回路規模が大きくなってしまっていた。

0053

ところで、図8に示すDCT演算を並列的に行なうDCT演算装置におけるDCT演算式は図1及び図2に示すように変形することができる。図1は図に示すDCT演算装置の出力F0〜F7について変形した式、図2は逆DCT演算時の出力f0〜f7について変形した式である。図1及び図2に示す式からわかるように、出力Fの偶数成分は、fi+fj(i+j=7)に係数COS(2k/16)πを乗じた値の和によって得られ、出力Fの奇数成分は、fi−fj(i+j=7)に係数COS(2k+1/16)πを乗じた値の和によって得られる。また、逆変換についても同様に、出力Fの偶数成分からfi+fjが、出力Fの奇数成分からfi−fjが得られることがわかる。すなわち、DCT演算式の係数は、COS係数としてみると符号が違うことを除けば係数COS(4/16)π,COS(2/16),πCOS(6/16)π,COS(5/16)π,COS(7/16)π,COS(3/16)π,COS(1/16)πの7種類しかない。従って、例えば、COS(3/16)πは図のDCT演算装置の所定箇所で使われ、回路的に似たハードウェア部分が出力F0〜F7に対応する数だけ存在しており、それをF0〜F7毎に一々ハードウェア化していたので回路規模が大きくなってしまっている。

0054

本発明者はこの点に着目して、回路的に似た係数を作成するハードウェア部分を1個のハードウェアに纏めてしまい、この1個のハードウェアを、使用する係数に応じて調整して繰返し使用することにより回路規模を極めて小さくするようにする。具体的には、DCT演算式中の異なる係数を乗算するシリアル回路を並置するとともに、該並置したシリアル回路からの乗算結果を累算する累算回路を設け、該シリアル回路を用いて図1及び図2に示すDCT演算式のfi+fj(あるいは、fi−fj)の各項の係数の乗算を行なって乗算結果を累算回路に累算し、以下このシリアル回路による係数の乗算と累算回路による乗算結果の累算をDCT演算式の各項だけ繰り返してデータ変換演算を実現するようにする。これによって、COS係数を作成するハードウェアは同じハードウェア1個で実現することになるため回路規模を大幅に削減することができる。

0055

実施例
図3図7は上記基本原理に基づくデータ圧縮伸張装置の実施例を示す図である。

0056

先ず、構成を説明する。図3はデータ圧縮伸張装置のブロック図であり、前記図のデータ圧縮伸張装置に対応する図である。なお、従来例と同一構成部分には同一番号を付している。図3において、データ圧縮伸張装置は、圧縮を施そうとする2次元データ及びデータ変換演算後のデータをパラレルデータの形で蓄えるデータ記憶装置10と、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換回路(ステージI)、シリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データ記憶回路(ステージIII)、及びパラレル−シリアル変換演算回路(ステージI)と中間データ記憶回路(ステージIII)からのシリアル入力に対してデータ変換演算をシリアル演算の形で施すデータ変換演算回路(ステージII)により構成され、データ変換演算回路(ステージII)は異なる係数を乗算するシリアル回路を並置し、シリアル回路による乗算結果を累算することによりシリアル変換出力を得るデータ変換演算装置50と、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して、量子化テーブルの値で除算する(あるいは、逆数の乗算を行なう)ことによって量子化演算を行なう量子化装置14と、上記各部の動作をデータ圧縮伸張装置の全体を制御する制御装置51により構成されている。このように、図3のデータ圧縮伸張装置は、前記図の従来のデータ圧縮伸張装置からパラレル−シリアル変換装置11及びシリアル−パラレル変換装置13を削除した構成となっている。

0057

図4は前記基本原理に基づくデータ圧縮伸張装置のデータ圧縮時のデータ変換演算装置50の回路構成図であり、I〜IIIの各ステージから構成される。

0058

図4において、61はステージIのパラレル−シリアル変換回路、62はステージIIのデータ変換演算回路、63はステージIIIの中間データ記憶回路であり、これらのステージI〜IIIの演算回路61〜63はそれぞれデータバス及びスイッチを介して直列に接続するように構成されている。この場合、DCT演算処理では、図4に示すように演算回路61〜64の順で直列接続され、また逆DCT演算の処理では、図7に示すようにスイッチによるバス切換え動作により接続が切換えられるようになっている。

0059

ステージIのパラレル−シリアル変換回路61は、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するものであり、データ記憶装置10から読み込んだパラレルデータのうち入力データfi(i=0,1,2,3)をシフトするシフトレジスタ61aと、入力データfj(j=4,5,6,7)をシフトするシフトレジスタ61bから構成されている。ここで、上記シフトレジスタ61aは、入力データfi(i=0,1,2,3)をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ61a1、このシフトレジスタ61a1の出力と後述するシフトレジスタ61b1の出力を加算する加算器61a2から構成されている。また、上記シフトレジスタ61bは、入力データfj(j=4,5,6,7)をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ61b1、シフトレジスタ61aのシフトレジスタ61a1の出力からシフトレジスタ61b1の出力を減算する減算器61b2から構成されている。

0060

このステージIのパラレル−シリアル変換回路61は、従来例では入力データf0〜f7を同時に入力していたのに対し、原理説明で述べたようにDCT演算式のfi+fj(あるいは、fi−fj)の各項の係数の乗算を行なうために、先ず入力データfi(i=0,1,2,3)と入力データfj(j=4,5,6,7)をシフトレジスタ61a1、61b1に入力し、次いでこの入力データfi(i=0,1,2,3)と入力データfj(j=4,5,6,7)をLSBから順にシリアル出力して加算あるいは減算するバタフライ演算を行なって図1に示すDCT演算式のfi+fj(あるいは、fi−fj)を作成するものである。

0061

また、ステージIIのデータ変換演算回路62は、パラレル−シリアル変換演算回路(ステージI)61と中間データ記憶回路(ステージIII)63からのシリアル入力に対してシリアル演算によりデータ変換演算を出力する回路であり、構成については図6により後述する。

0062

また、ステージIIIの中間データ記憶回路63は、シリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データを記憶するものであり、ステージIIのデータ変換演算回路62の出力O0〜O7が入力データとして入力され、この入力をシフトしながら加算または減算してDCT演算式の各項だけ繰り返して出力データF0〜F7として出力するシフト加減算回路63a〜63hから構成される。ここで、上記シフト加減算回路63aは、入力データとして入力されたデータ変換演算回路62の出力O0と前回までの累算結果を蓄えたシフトレジスタ63a2の出力とを加算または減算する加減算器63a1、加減算器63a1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63b2から構成されている。同様に、上記シフト加減算回路63bは、入力データとして入力されたデータ変換演算回路62の出力O1と前回までの累算結果を蓄えたシフトレジスタ63b2の出力とを加算または減算する加減算器63b1、加減算器63b1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63b2から構成され、上記シフト加減算回路63cは、入力データとして入力されたデータ変換演算回路62の出力O2と前回までの累算結果を蓄えたシフトレジスタ63c2の出力とを加算または減算する加減算器63c1、加減算器63c1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63c2から構成され、上記シフト加減算回路63dは、入力データとして入力されたデータ変換演算回路62の出力O3と前回までの累算結果を蓄えたシフトレジスタ63d2の出力とを加算または減算する加減算器63d1、加減算器63d1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63d2から構成され、上記シフト加減算回路63eは、入力データとして入力されたデータ変換演算回路62の出力O4と前回までの累算結果を蓄えたシフトレジスタ63e2の出力とを加算または減算する加減算器63e1、加減算器63e1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63e2から構成され、上記シフト加減算回路63fは、入力データとして入力されたデータ変換演算回路62の出力O5と前回までの累算結果を蓄えたシフトレジスタ63f2の出力とを加算または減算する加減算器63f1、加減算器63f1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63f2から構成され、上記シフト加減算回路63gは、入力データとして入力されたデータ変換演算回路62の出力O6と前回までの累算結果を蓄えたシフトレジスタ63g2の出力とを加算または減算する加減算器63g1、加減算器63g1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63g2から構成され、上記シフト加減算回路63hは、入力データとして入力されたデータ変換演算回路62の出力O7と前回までの累算結果を蓄えたシフトレジスタ63h2の出力とを加算または減算する加減算器63h1、加減算器63h1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63h2から構成される。

0063

上記シフト加減算回路63a〜63hの加減算器63a1〜63h1は、図5に示すように加算(a+b)を行なう1タイムディレイユニットフルアダー(内部Carry Type)としての機能と減算(a−b)を行なう1タイムディレイユニットフルサブトラクタ(内部Borrow type)としての機能とを有し、制御装置51からの制御信号に従ってアダー機能とサブトラクタ機能とを切換えてデータ変換演算回路62の出力O0〜O7とシフトレジスタ63a2〜63h2の出力とを加算または減算する。この場合、加減算器63a1〜63h1は、データ変換演算回路62で作成されたCOS係数の符号が正であれば、前回までの累算結果を蓄えたシフトレジスタ63a2〜63h2の出力にデータ変換演算回路62の出力O0〜O7を加算し、また、データ変換演算回路62で作成されたCOS係数の符号が負であれば、前回までの累算結果を蓄えたシフトレジスタ63a2〜63h2の出力からデータ変換演算回路62の出力O0〜O7を減算する。

0064

図6は異なる係数を乗算するシリアル回路を並置するように構成したデータ変換演算回路62の回路構成図であり、図4に示すデータ変換演算装置50のステージIIのデータ変換演算回路62を構成する。

0065

図6において、ステージIIのデータ変換演算回路62は、入力データI0に対して異なるCOS係数を乗算するeven側のシリアル回路62a、入力データI1に対して異なるCOS係数を乗算するodd側のシリアル回路62b、入力データI0に異なるCOS係数を乗じた値を選択し、選択した値を出力データO0、O1、O2、O3として出力する選択回路62c、入力データI1に異なるCOS係数を乗じた値を選択し、選択した値を出力データO4、O5、O6、O7として出力する選択回路62dから構成されている。ここで、上記データ変換演算回路62のeven側のシリアル回路62aには、ステージIの加算器61a2によってバタフライ演算され出力されたDCT演算式のfi+fj(あるいは、fi−fj)が入力データI0として入力され、上記odd側のシリアル回路62bには、ステージIの減算器61b2によってバタフライ演算され出力されたDCT演算式のfi+fj(あるいは、fi−fj)が入力データI1として入力される。

0066

上記シリアル回路62aは、入力データI0(fi+fj)をシフトする5個のフリップフロップからなるシフタ62a1、このシフタ62a1の出力と第4番目のフリップフロップの出力を加算する加算器62a2、この加算器62a2の出力とシフタ62a1の第4番目のフリップフロップの出力を加算する加算器62a3、この加算器62a3の出力をシフトして係数COS(6/16)πを乗算した値として出力する3個のフリップフロップからなるシフタ62a4、この加算器62a3の出力とシフタ62a1の第4番目のフリップフロップの出力を加算する加算器62a5、この加算器62a5の出力をシフトする2個のフリップフロップからなるシフタ62a6、加算器62a3の出力とシフタ62a6の出力を加算して係数COS(2/16)πを乗算した値として出力する加算器62a7、加算器62a3の出力からシフタ62a1の第4番目のフリップフロップの出力を減算する減算器62a8、この減算器62a8の出力とシフタ62a1の第1番目のフリップフロップの出力を加算する加算器62a9、この加算器62a9の出力をシフトして係数COS(4/16)πを乗算した値として出力する2個のフリップフロップからなるシフタ62a10から構成されている。

0067

また、上記シリアル回路62bは、入力データI1(fi−fj)をシフトする4個のフリップフロップからなるシフタ62b1、このシフタ62b1の出力と後述する加算器62b4の出力を加算する加算器62b2、この加算器62b2の出力をシフトする5個のフリップフロップからなるシフタ62b3、シフタ62b1の出力と入力データI1(fi−fj)を加算する加算器62b4、この加算器62b4の出力をシフトする6個のフリップフロップからなるシフタ62b5、加算器62b2の出力とシフタ62b5の出力を加算して係数COS(5/16)πを乗算した値として出力する加算器62b6、シフタ62b5の第1番目のフリップフロップの出力と加算器62b4の出力を加算する加算器62b7、この加算器62b7の出力とシフタ62b3の出力を加算して係数COS(3/16)πを乗算した値として出力する加算器62b8、シフタ62b3の第3番目のフリップフロップの出力と加算器62b7の出力を加算する加算器62b9、この加算器62b9の出力をシフトして係数COS(1/16)πを乗算した値として出力する2個のフリップフロップからなるシフタ62b10から構成されている。また、シフタ62b3の第4番目のフリップフロップからは、入力データI1(fi−fj)に係数COS(7/16)πを乗算した値が出力される。

0068

上記選択回路62cは、上記even側のシリアル回路62aから入力データI0に異なる係数COS(2/16)π、係数COS(6/16)π、係数COS(4/16)πを乗じた値がそれぞれ入力され、これらの乗算結果を選択して出力データO0、O1、O2、O3として出力するスイッチ62c1、スイッチ62c2、スイッチ62c3、スイッチ62c4から構成されている。

0069

また、上記選択回路62dは、上記odd側のシリアル回路62bから入力データI1に異なる係数COS(7/16)π、係数COS(5/16)π、係数COS(3/16)π、係数COS(1/16)πを乗じた値がそれぞれ入力され、これらの乗算結果を選択して出力データO4、O5、O6、O7として出力するスイッチ62d1、スイッチ62d2、スイッチ62d3、スイッチ62d4から構成されている。

0070

図7は前記基本原理に基づくデータ圧縮伸張装置のデータ伸張時のデータ変換演算装置50の回路構成図であり、I〜IVの各ステージから構成される。

0071

図7において、71はステージIのパラレル−シリアル変換回路、62はステージIIのデータ変換演算回路、63はステージIIIの中間データ記憶回路、72はステージIVのシリアル−パラレル変換回路であり、これらのステージI〜IVの演算回路71、62、63、72はそれぞれデータバス及びスイッチを介して直列に接続するように構成されている。この場合、DCT演算処理では、図4に示すように演算回路61〜64の順で直列接続され、また逆DCT演算の処理では、図7に示すようにスイッチによるバス切換え動作により接続が切換えられるようになっている。

0072

ステージIのパラレル−シリアル変換回路71は、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するものであり、データ記憶装置10から読み込んだパラレルデータのうち入力データF0、F2、F4、F6をシフトするシフトレジスタ71aと、入力データF1、F3、F5、F7をシフトするシフトレジスタ71bから構成されている。ここで、上記シフトレジスタ71aは、入力データF0、F2、F4、F6をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ61a1から構成されている。また、上記シフトレジスタ71bは、入力データF1、F3、F5、F7をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ61b1から構成されている。

0073

このステージIのパラレル−シリアル変換回路71は、従来例では入力データF0〜F7を同時に入力していたのに対し、原理説明で述べたように逆DCT演算式のfi+fj(あるいは、fi−fj)の各項の係数の乗算を行なうために、先ず入力データF0、F2、F4、F6と入力データF1、F3、F5、F7をシフトレジスタ61a1、61b1に順次入力し、次いでこのF0、F2、F4、F6と入力データF1、F3、F5、F7をLSBから順にステージIIのデータ変換演算回路62にシリアル出力するものである。

0074

また、ステージIIのデータ変換演算回路62は、パラレル−シリアル変換演算回路(ステージI)71と中間データ記憶回路(ステージIII)63からのシリアル入力に対してシリアル演算により逆データ変換演算を出力する回路であり、前記図6に示す構成と同一である。

0075

また、ステージIIIの中間データ記憶回路63は、データ変換演算回路62で逆データ変換されたシリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データを記憶するものであり、ステージIIのデータ変換演算回路62の出力O0〜O7が入力データとして入力され、この入力をシフトしながら加算または減算してDCT演算式の各項だけ繰り返して出力データF0〜F7として出力するシフト加減算回路63a〜63hから構成される。ここで、上記シフト加減算回路63aは、入力データとして入力されたデータ変換演算回路62の出力O0と前回までの累算結果を蓄えたシフトレジスタ63a2の出力とを加算または減算する加減算器63a1、加減算器63a1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63b2から構成されている。同様に、上記シフト加減算回路63bは、入力データとして入力されたデータ変換演算回路62の出力O1と前回までの累算結果を蓄えたシフトレジスタ63b2の出力とを加算または減算する加減算器63b1、加減算器63b1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63b2から構成され、上記シフト加減算回路63cは、入力データとして入力されたデータ変換演算回路62の出力O2と前回までの累算結果を蓄えたシフトレジスタ63c2の出力とを加算または減算する加減算器63c1、加減算器63c1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63c2から構成され、上記シフト加減算回路63dは、入力データとして入力されたデータ変換演算回路62の出力O3と前回までの累算結果を蓄えたシフトレジスタ63d2の出力とを加算または減算する加減算器63d1、加減算器63d1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63d2から構成され、上記シフト加減算回路63eは、入力データとして入力されたデータ変換演算回路62の出力O4と前回までの累算結果を蓄えたシフトレジスタ63e2の出力とを加算または減算する加減算器63e1、加減算器63e1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63e2から構成され、上記シフト加減算回路63fは、入力データとして入力されたデータ変換演算回路62の出力O5と前回までの累算結果を蓄えたシフトレジスタ63f2の出力とを加算または減算する加減算器63f1、加減算器63f1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63f2から構成され、上記シフト加減算回路63gは、入力データとして入力されたデータ変換演算回路62の出力O6と前回までの累算結果を蓄えたシフトレジスタ63g2の出力とを加算または減算する加減算器63g1、加減算器63g1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63g2から構成され、上記シフト加減算回路63hは、入力データとして入力されたデータ変換演算回路62の出力O7と前回までの累算結果を蓄えたシフトレジスタ63h2の出力とを加算または減算する加減算器63h1、加減算器63h1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ63h2から構成される。

0076

上記シフト加減算回路63a〜63hの加減算器63a1〜63h1は、データ変換演算回路62で作成されたCOS係数の符号が正であれば、前回までの累算結果を蓄えたシフトレジスタ63a2〜63h2の出力にデータ変換演算回路62の出力O0〜O7を加算し、また、データ変換演算回路62で作成されたCOS係数の符号が負であれば、前回までの累算結果を蓄えたシフトレジスタ63a2〜63h2の出力からデータ変換演算回路62の出力O0〜O7を減算する。

0077

また、ステージIVのシリアル−パラレル変換回路72は、中間データ記憶回路63に記憶された中間データをパラレルデータに変換するものであり、シフトレジスタ63a2〜63d2に蓄えられた累算結果を選択するスイッチ72a1、シフトレジスタ63e2〜63h2に蓄えられた累算結果を選択するスイッチ72b1、このスイッチ72a1により選択された累算結果とスイッチ72b1により選択された累算結果を加算する加算器72a1、スイッチ72a1により選択された累算結果からスイッチ72b1により選択された累算結果を減算する減算器72b1、加算器72a1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ72a3、減算器72b1の出力をシフトして蓄える11個のフリップフロップ(FF)からなるシフトレジスタ72b3から構成されている。これによって、シフトレジスタ72a3からは、シフトレジスタ63a2〜63d2からの累算結果とシフトレジスタ63e2〜63h2からの累算結果を加算してシフトした結果が出力データf0、f1、f2、f3として出力され、シフトレジスタ72b3からは、シフトレジスタ63a2〜63d2からの累算結果からシフトレジスタ63e2〜63h2からの累算結果を減算してシフトした結果が出力データf4、f5、f6、f7として出力される。

0078

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

0079

本実施例の動作の説明にあたり、まず、データ圧縮伸張装置の全体動作を述べ、次いでデータ変換演算装置50における動作及びデータ変換演算回路62における動作を述べ、次いでデータ変換演算装置50及びデータ変換演算回路62の具体的な動作を説明する。

0080

データ圧縮伸張装置のデータ圧縮時の全体動作(図3
図3において、データ記憶装置10に蓄えられているパラレルデータはデータ変換演算装置50に入力され、データ変換演算装置50のパラレル−シリアル変換回路61(ステージI)はデータ記憶装置10から読み込んだパラレルデータをシリアルデータに変換してデータ変換演算回路62(ステージII)に出力する。データ変換演算回路62は、パラレル−シリアル変換演算回路61(ステージI)と中間データ記憶回路63(ステージIII)からのシリアル入力に対して一次元のデータ変換演算をシリアル演算の形で施す。このデータ変換演算回路62におけるシリアル演算は、図1に示すDCT演算式中の異なる係数を乗算するシリアル回路62a,62bを並置し、該シリアル回路からの乗算結果を中間データ記憶回路63(ステージIII)で累算することによりシリアル変換出力を得るものである。シリアルデータ変換演算されたデータは中間データ記憶回路63によりシリアルデータをパラレルデータに変換されて出力され、データ記憶装置10に書き込まれる。上述した処理を縦横(順不同)二次元に施す。また、量子化装置51は、データ記憶装置10に蓄えられたデータ変換演算後のデータに対して量子化テーブルの値で逆数の乗算をすることによって量子化演算を行なう。

0081

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

0082

データ変換演算装置50におけるデータ圧縮動作(図4
まず、DCT演算処理の場合を述べると、ここでは、ステージIのパラレル−シリアル変換回路61おいて、シフトレジスタ61aにデータ記憶装置10から読み込んだパラレルデータのうち入力データfi(i=0,1,2,3)が入力され、シフトレジスタ61bに入力データfj(j=4,5,6,7)が入力される。シフトレジスタ61aに入力された入力データfi(i=0,1,2,3)は、シフトレジスタ61a1によりシフトして蓄えられ、シフトレジスタ61bに入力された入力データfj(j=4,5,6,7)は、シフトレジスタ61b1によりシフトして蓄えらる。ここで、従来例では入力データf0〜f7を同時に入力していたのに対し、データ変換演算装置50でしは原理説明で述べたようにDCT演算式のfi+fj(あるいは、fi−fj)の各項の係数の乗算を行なうために、入力データfi(i=0,1,2,3)と入力データfj(j=4,5,6,7)がシフトレジスタ61a1、61b1にそれぞれ入力される。次いで、このシフトレジスタ61a1、61b1に蓄えられている入力データfi(i=0,1,2,3)と入力データfj(j=4,5,6,7)をLSBから順にシリアル出力するとともに、加算器61a2及び減算器61b2によりバタフライ演算を施す。これにより、図1に示すDCT演算式のfi+fj(あるいは、fi−fj)が作成される。

0083

次いで、ステージIIのデータ変換演算回路62に進む。このデータ変換演算回路62には、ステージIのパラレル−シリアル変換演算回路61でバタフライ演算されたDCT演算式のfi+fj(あるいは、fi−fj)が入力データI0、I1として与えられる。データ変換演算回路62は、入力データI0に対して異なるCOS係数を乗ずる演算を施し、異なるCOS係数を乗じた値を選択した値を出力データO0、O1、O2、O3、O4、O5、O6、O7として出力する。このデータ変換演算回路62の詳細な動作については後述する。

0084

次いで、ステージIIIの中間データ記憶回路63に進む。この中間データ記憶回路63では、ステージIIのデータ変換演算回路62からの出力O0、O1、O2、O3、O4、O5、O6、O7が入力データとしてシフト加減算回路63a〜63hに与えられる。これにより、シフト加減算回路63aの加減算器63a1では、入力されたデータ変換演算回路62の出力O0と前回までの累算結果を蓄えたシフトレジスタ63a2の出力とを加算または減算して出力し、この演算結果がシフトレジスタ63a2に与えられる。シフトレジスタ63a2からは加減算器63a1からの出力が11個のフリップフロップの数だけシフトしながら蓄えられ所定のタイミングで出力データF0として出力される。この場合、加減算器63a1は、データ変換演算回路62からの出力O0のCOS係数の符号が正であれば、前回までの累算結果を蓄えたシフトレジスタ63a2の出力にデータ変換演算回路62の出力O0を加算し、また、データ変換演算回路62からの出力O0のCOS係数の符号が負であれば、前回までの累算結果を蓄えたシフトレジスタ63a2の出力からデータ変換演算回路62の出力O0を減算するようにする。また、シフトレジスタ63a2の初期値は0に設定されているものとする。

0085

同様に、シフト加減算回路63b〜63hの加減算器63a1〜63h1では、入力されたデータ変換演算回路62の出力O1〜O7と前回までの累算結果を蓄えたシフトレジスタ63b2〜63h2の出力とを加算または減算して出力し、この演算結果がシフトレジスタ63b2〜63h1に与えられる。シフトレジスタ63b2〜63h2からは加減算器63b1〜63h1からの出力が11個のフリップフロップの数だけシフトしながら蓄えられ所定のタイミングで出力データF2〜F7として出力される。

0086

このように、シフト加減算回路63a〜63hからなる中間データ記憶回路63は、ステージIIのデータ変換演算回路62からのシリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データを記憶するものであり、データ変換演算回路62の出力O0〜O7が入力データとして入力され、この入力をシフトしながら加算または減算してDCT演算式の各項だけ繰り返してパラレルの出力データF0〜F7として出力される。

0087

データ変換演算回路62における動作(図6
データ変換演算回路62は、異なる係数を乗算するeven側のシリアル回路62aとodd側のシリアル回路62bとが並置されるように構成されており、シリアル回路62a及びシリアル回路62bには、ステージIのパラレル−シリアル変換演算回路61の加算器61a2及び減算器61b2でバタフライ演算されたDCT演算式のfi+fj(あるいは、fi−fj)が入力データI0、I1として与えられる。

0088

上記シリアル回路62aでは、入力データI0に対して異なるCOS係数を乗算するシリアル演算が実行される。この場合、even側のシリアル回路62aのシフタ62a1には、入力データI0(fi+fj)が入力され、シリアル回路62aの各シリアル演算器はこの入力データI0に対してeven側の係数COS(2/16)π,COS(4/16),πCOS(6/16)πを乗算する演算を行なってCOS係数を乗じた値を選択回路62cに出力する。すなわち、シリアル回路62aのシフタ62a1に入力データI0(fi+fj)が入力されると、シリアル回路62aのシフタ62a4からは入力データI0に係数COS(6/16)πを乗算した値が出力され、シリアル回路62aの加算器62a7からは入力データI0に係数COS(2/16)πを乗算した値が出力され、シリアル回路62aのシフタ62a10からは入力データI0に係数COS(4/16)πを乗算した値がそれぞれ出力されることになる。

0089

上記シリアル回路62bでは、入力データI1に対して異なるCOS係数を乗算するシリアル演算が実行される。この場合、odd側のシリアル回路62bのシフタ62b1には、入力データI1(fi−fj)が入力され、シリアル回路62bの各シリアル演算器はこの入力データI1に対してodd側の係数COS(5/16)π,COS(7/16)π,COS(3/16)π,COS(1/16)πを乗算する演算を行なってCOS係数を乗じた値を選択回路62cに出力する。すなわち、シリアル回路62bのシフタ62b1に入力データI1(fi−fj)が入力されると、シリアル回路62bのシフタ62b3の第4番目のフリップフロップからは入力データI1に係数COS(7/16)πを乗算した値が出力され、シリアル回路62bの加算器62b6からは入力データI1に係数COS(5/16)πを乗算した値が出力され、シリアル回路62bのシフタ62b8からは入力データI1に係数COS(3/16)πを乗算した値が出力され、シリアル回路62bのシフタ62b10からは入力データI1に係数COS(1/16)πを乗算した値がそれぞれ出力されることになる。

0090

上記シリアル回路62aにより入力データI0に対して異なるCOS係数を乗算するシリアル演算が実行されると、シリアル回路62aからは入力データI0に係数COS(2/16)π,COS(4/16),πCOS(6/16)πを乗じた値が選択回路62cの各スイッチ62c1、スイッチ62c2、スイッチ62c3、スイッチ62c4に出力される。選択回路62cは、even側のシリアル回路62aから出力された入力データI0に異なる係数COS(2/16)π、係数COS(6/16)π、係数COS(4/16)πを乗じた3つの乗算結果のうちの1つを、スイッチ62c1〜62c4により切換えて選択して出力データO0、O1、O2、O3として出力する。

0091

また、上記シリアル回路62bにより入力データI1に対して異なるCOS係数を乗算するシリアル演算が実行されると、シリアル回路62bからは入力データI0に係数COS(5/16)π,COS(7/16)π,COS(3/16)π,COS(1/16)πを乗じた値が選択回路62dの各スイッチ62d1、スイッチ62d2、スイッチ62d3、スイッチ62d4に出力される。選択回路62dは、odd側のシリアル回路62bから出力された入力データI1に異なる係数COS(5/16)π、係数COS(7/16)π、係数COS(3/16)π、係数COS(1/16)πを乗じた4つの乗算結果のうちの1つを、スイッチ62d1〜62d4により切換えて選択して出力データO4、O5、O6、O7として出力する。

0092

さらに、出力データF1の場合を例に採りデータ変換演算装置50及びデータ変換演算回路62の具体的な動作を説明する。

0093

ここで、出力データF1は、図1に示すDCT演算式のF1で与えられる。

0094

F1=COS(1/16)π(f0−f7)+COS(3/16)π(f1−f6)
+COS(5/16)π(f2−f5)+COS(7/16)π(f3−f4)
出力データF1を求めるために、先ず、データ記憶装置10からパラレルの入力データf0と入力データf7を読み込み、ステージIのパラレル−シリアル変換演算回路61の2つのシフトレジスタ61a1、61b1に蓄える。2つのシフトレジスタ61a1、61b1では、入力データf0と入力データf7をLSBから順にシリアル出力し、加算器61a2及び減算器61b2によりバタフライ演算を施す。ここでは、減算器61b2によって図1に示すDCT演算式のF1のf0−f7が作成されてステージIIのデータ変換演算回路62に出力される。

0095

ステージIIのデータ変換演算回路62では、入力データに対してI0入力にはCOS(2/16)π、COS(4/16)π、COS(6/16)πを乗ずる演算を、I1入力にはCOS(1/16)π、COS(3/16)π、COS(7/16)πを乗ずる演算を施す。ここで、00〜07の出力を考えると例えばデータ変換演算回路62の出力04はF1を作るための出力データであるから、図6のシリアル回路62bによりI1(f0−f7)に係数COS(1/16)π等を乗ずるとともに、I1(f0−f7)に係数COS(1/16)π等を乗じた値のなかから選択回路62dのスイッチ62d1によりI1(f0−f7)にCOS(1/16)πを乗じた値を選択して出力する。なお、他の出力についても同様に図1に示すDCT演算式に従って出力する。

0096

ステージIIIの中間データ記憶回路63では、ステージIIのデータ変換演算回路62の出力を入力として扱い、図1に示すDCT演算式に従って、加減算器63e1は、データ変換演算回路62からの出力O4のCOS係数の符号が正であれば、前回までの累算結果を蓄えたシフトレジスタ63e2の出力(但し、シフトレジスタ63e2の初期値は0)にデータ変換演算回路62の出力O4を加算し、また、データ変換演算回路62からの出力O4のCOS係数の符号が負であれば、前回までの累算結果を蓄えたシフトレジスタ63e2の出力からデータ変換演算回路62の出力O4を減算するようにする。ここでは、図1のDCT演算式のF1から明らかなように第1項目の係数COS(1/16)πの符号が正であるから、この式に従って加減算器63e1をアダーに切換え、シフトレジスタ63e2の出力(この場合は初期値の0)にデータ変換演算回路62の出力O4を加算してこの演算結果をシフトレジスタ63e2に出力し、シフトレジスタ63e2はこの演算結果をシフトしながら蓄えておく。この時点で、シフトレジスタ63e2にはI1(f0−f7)に係数COS(1/16)πを乗じた値が格納されることになり、同様に他のシフトレジスタ63a2〜63h2には入力I0、I1に図1のDCT演算式のF1〜F7の第1項目のCOS係数を乗じた値が格納されることになる。これにより、DCT演算式のF1〜F7の第1項目についての演算が済み、以下同様に入力データとしてf1とf6、f2とf5、f3とf4を対にして読み込んで上述したシリアル演算を施すことによって中間データ記憶回路63のシフトレジスタ63a2〜63h2に演算結果を累算し、DCT演算式のF1〜F7の全項目についての演算が済んだときに所定のタイミングでデータ変換出力F1〜F7を出力する。

0097

なお、より完全な精度を求めようとする場合には、各係数を求める際に実際に符号化して符号長を求めるという方法もある。

0098

以上の説明は、DCT演算処理の場合であるが、逆DCT演算処理の場合も上述したと同様である。以下、データ伸張時の動作について説明する。

0099

データ圧縮伸張装置のデータ伸張時の全体動作(図3
図3において、データ記憶装置10に蓄えられているデータ圧縮されたパラレルデータはデータ変換演算装置50に入力され、データ変換演算装置50のパラレル−シリアル変換回路71(ステージI)はデータ記憶装置10から読み込んだパラレルデータをシリアルデータに変換してデータ変換演算回路62(ステージII)に出力する。データ変換演算回路62は、パラレル−シリアル変換演算回路71(ステージI)と中間データ記憶回路63(ステージIII)からのシリアル入力に対して一次元の逆データ変換演算をシリアル演算の形で施す。このデータ変換演算回路62におけるシリアル演算は、図2に示す逆DCT演算式中の異なる係数を乗算するシリアル回路62a,62bを並置し、該シリアル回路からの乗算結果を中間データ記憶回路63(ステージIII)で累算し、シリアル−パラレル変換回路72(ステージIV)で中間データ記憶回路63に記憶された中間データをパラレルデータに変換することによりシリアル変換出力を得るものである。シリアル−パラレル変換回路72によりパラレルデータに変換された逆データ変換出力はデータ記憶装置10に出力され、データ記憶装置10に書き込まれる。上述した処理を縦横(順不同)二次元に施す。

0100

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

0101

データ変換演算装置50におけるデータ伸張動作(図7
この場合は図7に示すように入力データがステージIのパラレル−シリアル変換回路71、ステージIIのデータ変換演算回路62、ステージIIIの中間データ記憶回路63、ステージIVのシリアル−パラレル変換回路72の順で与えられるようになる。なお、これらのステージI〜IVの演算回路71、62、63、72はそれぞれデータバス及びスイッチを介して直列に接続するように構成され、スイッチによるバス切換え動作によりDCT演算処理と逆DCT演算の処理との接続が切換えられるようになっている。

0102

図7において、逆DCT演算処理の場合は、ステージIのパラレル−シリアル変換回路71のシフトレジスタ61aにデータ記憶装置10から読み込んだパラレルデータのうち入力データF0、F2、F4、F6が入力され、シフトレジスタ61bに入力データF1、F3、F5、F7が入力される。シフトレジスタ61aに入力された入力データF0、F2、F4、F6は、シフトレジスタ61a1によりシフトして蓄えられ、シフトレジスタ61bに入力された入力データF1、F3、F5、F7は、シフトレジスタ61b1によりシフトして蓄えられる。ここで、従来例では入力データF0、F2、F4、F6、F1、F3、F5、F7を同時に入力していたのに対し、データ変換演算装置50では前記DCT演算処理の場合と同様に図2に示す逆DCT演算式のfi+fj(あるいは、fi−fj)の各項の係数の乗算を行なうために、入力データF0、F2、F4、F6fiと入力データF1、F3、F5、F7がシフトレジスタ61a1、61b1にそれぞれ入力され、シフトレジスタ61a1、61b1に蓄えられている入力データF0、F2、F4、F6と入力データF1、F3、F5、F7はLSBから順にシリアル出力される。

0103

次いで、ステージIIのデータ変換演算回路62に進む。このデータ変換演算回路62には、ステージIのパラレル−シリアル変換演算回路71でシリアル出力された入力データF0、F2、F4、F6と入力データF1、F3、F5、F7が入力データI0、I1として与えられる。データ変換演算回路62は、前述したDCT演算処理の場合と同様に入力データI0、I1に対して異なるCOS係数を乗ずる演算を施し、異なるCOS係数を乗じた値を選択した値を出力データO0、O1、O2、O3、O4、O5、O6、O7として出力する。

0104

次いで、ステージIIIの中間データ記憶回路63に進む。この中間データ記憶回路63では、ステージIIのデータ変換演算回路62からの出力O0、O1、O2、O3、O4、O5、O6、O7が入力データとしてシフト加減算回路63a〜63hに与えられる。これにより、シフト加減算回路63aの加減算器63a1では、入力されたデータ変換演算回路62の出力O0と前回までの累算結果を蓄えたシフトレジスタ63a2の出力とを加算または減算して出力し、この演算結果がシフトレジスタ63a2に与えられる。シフトレジスタ63a2からは加減算器63a1からの出力が11個のフリップフロップの数だけシフトしながら蓄えられ所定のタイミングで出力データf0として出力される。この場合、加減算器63a1は、データ変換演算回路62からの出力O0のCOS係数の符号が正であれば、前回までの累算結果を蓄えたシフトレジスタ63a2の出力にデータ変換演算回路62の出力O0を加算し、また、データ変換演算回路62からの出力O0のCOS係数の符号が負であれば、前回までの累算結果を蓄えたシフトレジスタ63a2の出力からデータ変換演算回路62の出力O0を減算するようにする。また、シフトレジスタ63a2の初期値は0に設定されているものとする。

0105

同様に、シフト加減算回路63b〜63hの加減算器63a1〜63h1では、入力されたデータ変換演算回路62の出力O1〜O7と前回までの累算結果を蓄えたシフトレジスタ63b2〜63h2の出力とを加算または減算して出力し、この演算結果がシフトレジスタ63b2〜63h1に与えられる。シフトレジスタ63b2〜63h2からは加減算器63b1〜63h1からの出力が11個のフリップフロップの数だけシフトしながら蓄えられ所定のタイミングで累算結果出力データとして出力される。

0106

このように、シフト加減算回路63a〜63hからなる中間データ記憶回路63は、ステージIIのデータ変換演算回路62からのシリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データを記憶するものであり、データ変換演算回路62の出力O0〜O7が入力データとして入力され、この入力をシフトしながら加算または減算して逆DCT演算式の各項だけ繰り返してパラレルの累算結果出力データとして出力される。

0107

次いで、ステージIVのシリアル−パラレル変換回路72に進む。このステージIVのシリアル−パラレル変換回路72では、ステージIIIの中間データ記憶回路63からの累算結果出力データが入力データとしてスイッチ72a1、スイッチ72b1に与えられる。スイッチ72a1ではシフトレジスタ63a2〜63d2に蓄えられた4つの累算結果のうちの1つを選択して加算器72a2に出力し、スイッチ72b1ではシフトレジスタ63e2〜63h2に蓄えられた4つの累算結果のうちの1つを選択して減算器72b2に出力する。これにより、シリアル−パラレル変換回路72の加算器72a1では、スイッチ72a1により選択された累算結果とスイッチ72b1により選択された累算結果を加算するバタフライ演算を行なってシフトレジスタ72a3に出力し、また、減算器72b1ではスイッチ72a1により選択された累算結果からスイッチ72b1により選択された累算結果を減算するバタフライ演算を行なってシフトレジスタ72b3に出力する。シフトレジスタ72a3に入力された加算結果は、シフトレジスタ72a3によりシフトして蓄えられ、シフトレジスタ72b3に入力された減算結果は、シフトレジスタ72b3によりシフトして蓄えられる。そして、シフトレジスタ72a3、72b3に蓄えられているデータはLSBから順に出力データf0、f1、f2、f3、f4、f5、f6、f7としてシリアル出力される。

0108

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

0109

以上説明したように、本実施例のデータ圧縮伸張装置は、データ記憶装置10から読み込んだパラレルデータをシリアルデータに変換するパラレル−シリアル変換回路61、シリアルデータを一時的に蓄えるとともにシリアル及びパラレル何れのデータとしても出力可能な中間データ記憶装置63、及びパラレル−シリアル変換演算回路61と中間データ記憶回路63からのシリアル入力に対してデータ変換演算をシリアル演算の形で施すデータ変換演算回路62により構成され、データ変換演算回路62は異なる係数を乗算するシリアル回路62a,62bを並置し、並置したシリアル回路62a,62bによる乗算結果を中間データ記憶装置63で累算することによりシリアル変換出力を得るようにしているので、COS係数を作成するハードウェアは同じハードウェア1個で実現することになってデータ変換演算回路62自体のシリアルの段数を減少させることに加えて入力側のパラレル−シリアル変換回路61,71のシフトレジスタの数を従来例の8本から2本に大幅に削減することができ、回路規模を大幅に小さくすることができ、画像等のデータ圧縮に利用することができる。

0110

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

0111

なお、本実施例では係数を例えばシリアル演算装置に適用する例を示したが、これには限定されず、パラレルでもCOS(1/16)π等のハードウェアを並列に持ってしまえば同様に実現することができる。

0112

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

0113

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

0114

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

0115

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

発明の効果

0116

請求項1、2、3、4、5、6、7、8、9、10、11、12、13、14、15及び16記載の発明によれば、データ変換演算手段は、入力データに対してデータ変換演算式の各項の係数を乗算し、該乗算結果を累算することによりデータ変換演算出力を得るようにしているので、データ変換演算回路自体のシリアルの段数を減少させることに加えて入力側のパラレル−シリアル変換回路のシフトレジスタの数を削減することができ、回路規模を大幅に小さくすることができ、画像等のデータ圧縮に利用することができる。

図面の簡単な説明

0117

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

--

0118

10データ記憶装置
14量子化装置
50データ変換演算装置
51制御装置
61パラレル−シリアル変換装置
62 データ変換演算回路
62a,62bシリアル回路
63中間データ記憶装置
14 量子化装置
50 データ変換演算装置
51 制御装置
ID=000005HE=025 WI=037 LX=1315 LY=1550
ID=000006 HE=005 WI=035 LX=1325 LY=1850

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

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

関連する公募課題

ページトップへ

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

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

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

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

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

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

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

関連性が強い人物一覧

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

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

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

関連する公募課題一覧

astavision 新着記事

サイト情報について

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

主たる情報の出典

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