(57)【特許請求の範囲】
【請求項１】
所定のデータを記憶する第１の工程と、
前記第１の工程により出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算を実行する第２の工程と、
前記第２の工程により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算を実行する第３の工程と、
前記第２及び第３の工程によるデータ変換後のデータに対して量子化演算を実行する第４の工程と、
を具備したことを特徴とするデータ圧縮方法。
【請求項２】
相関する２つのデータから構成されるデータを記憶する第１の工程と、
前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第２の工程と、
前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第３の工程と、
前記第２の工程におけるデータ変換演算で得られたデータから、前記第３の工程におけるデータ変換演算で得られたデータを減算する第４の工程と、
前記第４の工程における減算処理後のデータに対して量子化演算を実行する第５の工程と、
を具備したことを特徴とするデータ圧縮方法。
【請求項３】
所定のデータを記憶するデータ記憶手段と、
前記データ記憶手段から出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算を実行する第１の演算手段と、
前記第１の演算手段により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算を実行する第２の演算手段と、
前記第１の演算手段及び第２の演算手段による一次元目及び二次元目のデータ変換後のデータに対して量子化演算を実行する量子化手段と、
前記データ記憶手段、前記第１の演算手段、前記第２の演算手段及び前記量子化手段を制御する制御手段と、
を備えることを特徴とするデータ圧縮装置。
【請求項４】
相関する２つのデータから構成されるデータを記憶するデータ記憶手段と、
前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第１の演算手段と、
前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第２の演算手段と、
前記第１の演算手段によるデータ変換演算で得られたデータから、前記第２の演算手段によるデータ変換演算で得られたデータを減算する第３の演算手段と、
前記第３の演算手段による減算処理後のデータに対して量子化演算を実行する量子化手段と、
前記データ記憶手段、前記第１の演算手段、前記第２の演算手段、前記第３の演算手段及び前記量子化手段を制御する制御手段と、
を備えることを特徴とするデータ圧縮装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、画像データの圧縮処理等に用いられるデータ圧縮方法及びデータ圧縮装置に係り、詳細には、データ変換演算処理の際の演算精度を向上させることが可能なデータ圧縮方法及びデータ圧縮装置に関する。
【０００２】
【従来の技術】
近時、ディジタル技術の急速な発達に伴い、ディジタル技術によってディジタルデータの伝送、交換、サービスを統合するＩＳＤＮ（サービス総合ディジタル通信網）が実用化され、音声と画像をディジタルデータに変換して送・受信する環境が整いつつある。
【０００３】
このような環境でディジタル化した画像データを送・受信する場合、画像は、そのままディジタル化するとデータ量が膨大になるため、画像をディジタル化する際にデータ量を圧縮する画像圧縮技術に対する要求が高まっている。従来の画像圧縮技術の代表的なものとしては、直交変換符号化が高能率の符号化技術として知られている。この直交変換符号化による符号化方式としては、例えば、変換行列の要素が単純で加減算処理のみで変換可能なアダマール変換方式がある。このアダマール変換方式では、変換行列の要素が“＋１”と“−１”からなり、式（１）に示す基本変換行列を基にして式（２）に示すように高次形へと変換行列が拡張されている。このアダマール変換方式では、ハードウエア構成を簡素化することができる。
【０００４】
【数１】
0003543151.tif 000002
【０００５】
【数２】
0003543151.tif 000003
また、画像圧縮技術の国際標準規格としてＪＰＥＧ（Joint Photographic Ex-pert Group）やＭＰＥＧ（Moving Picture Expert Group ）がある。ＪＰＥＧは、静止画像を圧縮することを目的としており、すでにカラー静止画像の符号化手法が決定し、国際標準規格として承認される予定である。ＪＰＥＧについては、チップも製品化されており、このチップを用いたボードも市場に出始めている。ＪＰＥＧアルゴリズムは、大きく２つの圧縮方式に分けられる。第１の方式は、直交変換符号化の一符号化方式であるＤＣＴ（Discrete Cosine Transform ：離散コサイン変換）を基本とした方式であり、第２の方式は二次元空間でＤＰＣＭ（Differntial PCM）を行なうSpatial（空間関数）方式である。ＤＣＴ方式は量子化を含むため一般には完全に元の画像は再現されない非可逆符号化であるが、少ないビット数においても十分な復号画像品質を得ることができ、本アルゴリズムの基本となる方式である。一方、Spatial 方式は、圧縮率は小さいが元の画像を完全に再現する可逆符号化であり、この特性を実現するために標準方式として付加された方式である。
【０００６】
このような従来のＤＣＴ方式を利用して画像データを圧縮するデータ圧縮装置としては、例えば、図６に示すものがある。図６において、２は、データ記憶装置であり、圧縮を施そうとする画像データを１フレーム単位で蓄積する。３は、データ変換演算装置であり、データ記憶装置２から出力される１フレーム単位の画像データに対して上記ＤＣＴ演算等のデータ変換演算処理により特定の周波数成分を抽出した後、再度、データ記憶装置２に書き戻す。このデータ変換演算装置３の処理は、一次元の場合であり、画像データのように二次元の場合は、例えば、図７（ａ）〜（ｃ）に示すように、画像データを８×８画素から成るブロック単位で上述した周波数成分の抽出処理を縦横（順不同）二次元に施す。
【０００７】
４は、量子化装置であり、データ記憶装置２に蓄えられたデータ変換演算後のデータに対して、例えば図８に示すような量子化テーブルの値で除算をする（あるいは、逆数の乗算）ことによって量子化演算を行なう。５は、制御装置であり、上記各装置の動作を制御してデータ圧縮装置１全体を制御する。
【０００８】
また、上記図６に示したデータ変換演算装置３の内部構成としては、例えば、図９に示すブロック図のようなものがある。図９において、６は、係数ＲＯＭであり、乗算器７が画像データに対して乗算する係数データを格納する。乗算器７は、上記データ記憶装置２から入力される画像データに対して係数ＲＯＭ６から読み出した係数を乗算してバレルシフタ８に出力する。バレルシフタ８は、乗算器７から入力される乗算後のデータを必要なビット数だけ残し、右シフト（切り捨て）し、加減算器９に出力する。加減算器９は、バレルシフタ８から入力される値に前回の値との和（差）を求める。
【０００９】
このデータ変換演算装置３では、バレルシフタ８により右シフト（切り捨て）処理が行われると、その出力される結果は、図１０に示すように、全体的により小さい値をとることになる。この図では、１ビット右シフトした場合の出力値の様子を示しており、“○”がその値を含まないことを示し、“●”がその値を含むことを示している。
【００１０】
また、上記図９に示したデータ変換演算装置３と異なるものとして、例えば、図１１に示すデータ変換演算装置３のように、バレルシフタ８の後にインクリメンタ１０を追加して四捨五入処理を行うようにしたもの、あるいは図１２に示すデータ変換演算装置３のように、バレルシフタ８と加減算器９をバス１２で接続し、バレルシフタ８と加減算器９のバス切換え、インクリメンタの動作を加減算器９に行わせることより四捨五入処理を行うようにしたものもある。
【００１１】
【発明が解決しようとする課題】
しかしながら、このような従来のデータ変換演算処理を行うデータ圧縮装置にあっては、上記図９に示したデータ変換演算装置３のようにバレルシフタ８により右シフト（切り捨て）処理を行う場合は、その出力される結果が、上記図１０に示したように、全体的により小さい値をとるため、本来とるべき値との演算誤差が大きくなるという欠点があった。
【００１２】
また、上記図１１に示したデータ変換演算装置３のようにインクリメンタ１０を追加して四捨五入処理を行う場合は、回路規模が大きくなるという問題点があり、上記図１２に示したデータ変換演算装置３のようにバレルシフタ８と加減算器９をバス１２で接続し、バレルシフタ８と加減算器９のバス切換えにより加減算器９が四捨五入処理を行う場合、バス切換えの増加だけですむが、加減算器９で２回演算を行うことにより演算時間が長くなってしまうという問題点があった。
【００１３】
そこで本発明は、データ圧縮方法及びデータ圧縮装置において、回路規模の増大や演算時間を長引かせることなくデータ変換演算処理の演算誤差を改善することを目的とする。
【００１４】
【課題を解決するための手段】
本発明の手段は次の通りである。
【００１５】
請求項１記載の発明は、上記目的達成のため、所定のデータを記憶する第１の工程と、前記第１の工程により出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算を実行する第２の工程と、前記第２の工程により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算を実行する第３の工程と、前記第２及び第３の工程によるデータ変換後のデータに対して量子化演算を実行する第４の工程と、を具備したことを特徴としている。
【００１６】
請求項２記載の発明は、相関する２つのデータから構成されるデータを記憶する第１の工程と、前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第２の工程と、前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第３の工程と、前記第２の工程におけるデータ変換演算で得られたデータから、前記第３の工程におけるデータ変換演算で得られたデータを減算する第４の工程と、前記第４の工程における減算処理後のデータに対して量子化演算を実行する第５の工程と、を具備したことを特徴としている。
【００１８】
請求項３記載の発明は、所定のデータを記憶するデータ記憶手段と、前記データ記憶手段から出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算を実行する第１の演算手段と、前記第１の演算手段により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算を実行する第２の演算手段と、前記第１の演算手段及び第２の演算手段による一次元目及び二次元目のデータ変換後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記第１の演算手段、前記第２の演算手段及び前記量子化手段を制御する制御手段と、を備えることを特徴としている。
【００１９】
請求項４記載の発明は、相関する２つのデータから構成されるデータを記憶するデータ記憶手段と、前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第１の演算手段と、前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算を行う第２の演算手段と、前記第１の演算手段によるデータ変換演算で得られたデータから、前記第２の演算手段によるデータ変換演算で得られたデータを減算する第３の演算手段と、前記第３の演算手段による減算処理後のデータに対して量子化演算を実行する量子化手段と、前記データ記憶手段、前記第１の演算手段、前記第２の演算手段、前記第３の演算手段及び前記量子化手段を制御する制御手段と、を備えることを特徴としている。
【００２８】
【作用】
本発明の手段の作用は次の通りである。
【００２９】
請求項１記載の発明では、第１の工程で所定のデータが記憶され、第２の工程により前記第１の工程により出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算が実行され、第３の工程により前記第２の工程により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算が実行され、第４の工程により前記第２及び第３の工程によるデータ変換後のデータに対して量子化演算が実行される。
【００３０】
請求項２記載の発明では、第１の工程で相関する２つのデータから構成されるデータが記憶され、第２の工程により前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算が行われ、第３の工程により、前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算が行われ、第４の工程により、前記第２の工程におけるデータ変換演算で得られたデータから、前記第３の工程におけるデータ変換演算で得られたデータが減算され、第５の工程により、前記第４の工程における減算処理後のデータに対して量子化演算が実行される。
【００３３】
請求項３記載の発明では、データ記憶手段により、所定のデータが記憶され、第１の演算手段により、前記データ記憶手段から出力されたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、一次元目のデータ変換演算が実行され、第２の演算手段により、前記第１の演算手段により一次元目のデータ変換演算が行われたデータに対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てる処理を施すことにより、二次元目のデータ変換演算が実行され、量子化手段により、前記第１の演算手段及び第２の演算手段による一次元目及び二次元目のデータ変換後のデータに対して量子化演算が実行され、制御手段により、前記データ記憶手段、前記第１の演算手段、前記第２の演算手段及び前記量子化手段が制御される。
【００３４】
請求項４記載の発明では、データ記憶手段により、相関する２つのデータから構成されるデータが記憶され、第１の演算手段により、前記相関する２つのデータの一方に対して、所定の変換係数を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算が行われ、第２の演算手段により、前記相関する２つのデータの他方に対して、所定の変換係数と−１を乗算して、所定ビット数の下位ビットを切り捨てるデータ変換演算が行われ、第３の演算手段により、前記第１の演算手段によるデータ変換演算で得られたデータから、前記第２の演算手段によるデータ変換演算で得られたデータが減算され、量子化手段により、前記第３の演算手段による減算処理後のデータに対して量子化演算が実行され、制御手段により、前記データ記憶手段、前記第１の演算手段、前記第２の演算手段、前記第３の演算手段及び前記量子化手段が制御される。
【００３７】
したがって、データを変換演算する際に発生する演算誤差を、−１を乗算した値で相殺して全体的な演算誤差を小さくすることができ、データ変換演算処理における演算精度を向上させるデータ圧縮装置を提供することができる。
【００４０】
【実施例】
以下、本発明を図面に基づいて説明する。
【００４１】
原理説明
まず、本発明の基本的な考え方を説明する。
【００４２】
上記従来で説明したアダマール変換方式による二次元データの変換演算処理、または、上記従来の図６に示したＤＣＴ方式によるデータ圧縮装置１では、データ変換演算装置３は、バレルシフタ８により右シフト（切り捨て）処理を行うことによって画像データの必要なビット数を残すようにしていたため、出力結果が全体的に本来とるべき値よりも小さくなり、演算誤差が大きくなっていた。
【００４３】
ところが、従来の画像データのデータ変換演算では、上記従来の各図９、図１１、図１２に示したいずれのデータ変換演算装置３においても、一次元目と二次元目の変換演算で係数ＲＯＭから読み出した係数データを乗算する処理を２回行っており、以下に、この係数の乗算過程と乗算結果の関係を解析するとことにより、本発明の基本的な考え方を説明する。
【００４４】
まず、上記従来の図１０に示した演算出力結果の図を参照して説明すると、その演算出力結果の正の数と負の数をそれぞれ絶対値として見た場合、正の数は小さくなり、負の数は大きくなる。
【００４５】
いま、入力データが正の数であったとすると、従来の二次元演算処理による演算結果と絶対値の関係を以下に列記する。
【００４６】
（一次元目）
まず、一次元目の演算では、係数として、例えば、“ｃｏｓ２／１６”という正の係数を乗算したとすると、その乗算結果は正の数で、その正の数の必要ビット数以下を切り捨てると、絶対値として見た場合、本来とるべき値よりも
小さい値をとることになる。
【００４７】
（二次元目）
次いで、二次元目の演算では、一次元目の結果に、さらに正の係数を乗算したとすると、その乗算結果は正の数で、その正の数の必要ビット数以下を切り捨てると、絶対値として見た場合、一次元の乗算結果よりもさらに小さい値を
とることになり、本来とるべき値からの誤差がさらに拡大する。
【００４８】
すなわち、従来の二次元演算処理では、一次元目と二次元目で乗算する係数が共に正の係数で切り捨てを行うと、その２回の演算結果を絶対値として見た場合、本来とるべき値からの誤差が大きくなってしまう。したがって、以上に述べた従来の二次元演算処理で演算結果を、例えば、ＣＣＩＴＴ（国際電信電話諮問委員会）のＨ．２６１に規定されている画像圧縮技術に関する演算精度を満たそうとすると、演算桁数を増やして切り捨てるビット数を減らす必要がある。
【００４９】
そこで、本発明では、上記従来の一次元目、二次元目の演算処理の際に、得られる結果を絶対値として見た場合、それぞれの演算過程で、従来の変換係数に−１を乗算すると、最終的に得られる演算結果の絶対値は、本来とるべき値からの誤差が小さくなることに着目し、その基本的な演算過程についてさらに説明する。
【００５０】
例えば、上記従来の一次元目の演算過程で、正の変換係数に（−１）を乗算すると、その演算結果は負の数となり、この負の数に対して切り捨て処理を行うと、その絶対値は少し大きい値をとることになる。
【００５１】
続いて、上記従来の二次元目の演算過程で、正の変換係数に再び（−１）を乗算すると、その演算結果は正の数となり、この正の数に対して切り捨て処理を行うと、その絶対値は少し小さい値をとることになる。
【００５２】
すなわち、一次元目と二次元目の演算処理でともに正の変換係数に（−１）を乗算することにより、最終的に得られる演算結果の正、負の符号は同じものとなり、さらに、一次元目と二次元目の演算結果により、それぞれの演算過程で発生する演算誤差を相殺することとなり、全体の演算誤差を絶対値としてとらえることにより従来に比べて演算誤差を小さくすることができる。
【００５３】
ここで、上記本発明の基本原理をアダマール変換方式に適用した場合について以下に説明する。
【００５４】
図１は、従来のアダマール変換方式により処理されるａ、ｂ、ｃ、ｄの４つの元からなる二次元データの演算過程を示す図である。
【００５５】
いま、図１（ａ）に示す二次元データに対して一次元アダマール変換（横方向）を施すと、図１（ｂ）に示す演算結果が得られ、さらに、この演算結果に一次元アダマール変換（縦方向）を施すと、図１（ｃ）に示す演算結果が得られる。以上が通常の二次元アダマール変換処理である。
【００５６】
このアダマール変換では、ｘ、ｙの２つの入力に対して、式（３）、（４）を求めている。
【００５７】
【数３】
0003543151.tif 000004
【００５８】
【数４】
0003543151.tif 000005
この図１（ａ）〜（ｃ）のアダマール演算に対して上記原理説明で述べた（−１）を乗算した場合の演算過程を図２に示して説明する。
【００５９】
図２は、上記式（３）、（４）に（−１）を乗算するものであり、式（５）、（６）を求めるものである。
【００６０】
【数５】
0003543151.tif 000006
【００６１】
【数６】
0003543151.tif 000007
すなわち、図２（ｂ）は、図１（ｂ）の値に（−１）を乗算したものであり、図２（ｃ）は、図１（ｃ）の値に（−１）を乗算したものであり、すなわち、それぞれの一次元アダマール変換に乗算される値は、（−１）×（−１）＝１となるため、最終的に得られる演算結果は変わらないことがわかる。
【００６２】
さらに、これらの関係を一般式に適用した例を以下に示すデータ変換演算式（７）により説明する。
【００６３】
【数７】
0003543151.tif 000008
この式（７）は、一次元のときの演算式であり、乗算及び加算には演算誤差は無いものとするが、実際には、係数ａi を有限ビット数で表現する場合に誤差が発生することもある。この式（７）に対してバレルシフタによる切り捨て処理を行うと、式（８）に示すように、“−Δi ”が一次元目の演算誤差として出力される。
【００６４】
【数８】
0003543151.tif 000009
すなわち、式（８）から式（７）を減算した結果が、式（９）に示す一次元目の演算処理した後の実際の演算誤差の一般式である。
【００６５】
【数９】
0003543151.tif 000010
さらに、式（８）に対して、二次元目の演算処理を施して切り捨て処理を行うと、式（１０）に示すように、“−Δj ”の項が二次元目の演算誤差として出力される。
【００６６】
【数１０】
0003543151.tif 000011
ここまでが従来と同様の二次元演算処理の一般式である。すなわち、式（１０）から式（７）を減算した結果が、式（１１）に示す二次元目の演算処理した後の実際の演算誤差の一般式である。
【００６７】
【数１１】
0003543151.tif 000012
ここで、例えば、上記アダマール変換で示した式（３）の様に、その係数が全て正の数である場合を考えると、式（１１）の各項は、“−Δi ”と“−Δj ”と全て負の数をとるため、上記従来の図１０に示した演算誤差を示した図と同様に本来とるべき値よりも全体的に小さい値となり、大きな誤差が発生する。
【００６８】
本発明では、この式（１１）の係数“ａj ”に対して（−１）を乗算すると、式（１２）によって表される。
【００６９】
【数１２】
0003543151.tif 000013
この式（１２）の各項について同様に誤差を考えると、Σ内の第１項は正の数、第２項は負の数となり、上記のように各項の演算誤差を絶対値としてとらえると互いに誤差を相殺し、式（１１）よりも誤差を小さくすることができ、演算精度の向上を図りつつデータ変換演算を行うことができる。
【００７０】
また、上記式（１２）の例では、変換係数に（−１）を乗算して、二次元変換演算によってその誤差を減少させるようにしたが、係数が負の数の場合には、かえって演算誤差が大きくなってしまう可能性がある。
【００７１】
そこで、本来の係数の値に（−１）を乗算した値を予め係数ＲＯＭ等に格納しておき、例えば、式（１３）に対して、偶数番目の項（αi ，ｂi ＝２ｍ）には、本来の係数を乗算して“αi ＝１”と“ｂi ＝ａi ”とし、奇数番目の項（αi ，ｂi ＝２ｍ＋１）には、（−１）を乗算した係数を用いて“αi ＝−１”と“ｂi ＝−ａi ”とし、加減算器によってその（−１）を乗算した分を補正するようにする。
【００７２】
【数１３】
0003543151.tif 000014
この式（１３）の偶数項に本来の変換係数を乗算し、奇数項に本来の変換係数と（−１）を乗算した結果は、式（１４）となる。
【００７３】
【数１４】
0003543151.tif 000015
この式（１４）の各項について同様に誤差を考えると、Σ内の第１項は負の数、第２項は正の数となり、上記のように各項の演算誤差を絶対値としてとらえると互いに誤差を相殺し、上記式（１１）よりも誤差を小さくすることができ、係数が全て負の数である場合にも対応できる。また、二次元変換演算だけでなく、一次元演算においても本発明の基本原理を応用すれば、演算精度を向上させることができる。
【００７４】
第１実施例
以下、上記本発明の基本的な考え方に基づいて実施例を説明する。
【００７５】
図３、図４は、本発明に係るデータ圧縮装置の第１実施例を示す図であり、ＤＣＴ変換方式に基づくデータ圧縮装置に適用した例である。
【００７６】
まず、構成を説明する。図３は、データ圧縮装置２０のブロック構成図である。この図において、データ圧縮装置２０は、圧縮を施そうとする画像データを１フレーム単位で蓄積するデータ記憶装置２１と、データ記憶装置２１から読出した１フレーム単位の画像データに対してＤＣＴ演算処理により上記図７に示したように、例えば、画像データを８×８画素から成るブロック単位で特定の周波数成分の抽出処理を縦横（順不同）二次元に施すとともに、その二次元変換演算処理に際して後述する乗算処理を施すデータ変換演算装置２２と、データ記憶装置２０に蓄えられたデータ変換演算後のデータに対して、例えば上記図８に示したような量子化テーブルの値で除算をする（あるいは、逆数の乗算）ことによって量子化演算を行なう量子化装置２３と、各部装置の動作を制御してデータ圧縮装置２０全体を制御する制御装置２４とにより構成される。
【００７７】
データ変換演算装置２２は、図４に示すように、乗算器３３が画像データに対して乗算する係数データを格納する係数ＲＯＭ３１と、乗算器３３が画像データに対して乗算する数値データを格納する補数ＲＯＭ３２、上記データ記憶装置２１から入力される画像データに対して係数ＲＯＭ３１から読み出した係数と補数ＲＯＭ３２から読み出した数値とを乗算してバレルシフタ３４に出力する乗算器３３と、乗算器３３から入力される乗算後のデータを必要なビット数だけ残し、右シフト（切り捨て）し、加減算器３５に出力するバレルシフタ３４と、バレルシフタ３４から入力される値に前回の値との和（差）を求める加減算器３５とにより構成されている。
【００７８】
すなわち、本データ変換演算装置２２の補数ＲＯＭ３２は、係数ＲＯＭ３１に格納されている係数データに乗算する数値データを予め格納し、乗算器３３は、データ記憶装置２１から入力される画像データに対して二次元変換演算処理を行う際に、一次元目と二次元目の乗算に必要な係数データを係数ＲＯＭ３１から読み出して乗算するとともに、必要に応じてその係数データに乗算する数値データを補数ＲＯＭ３２から読み出して乗算するようにしている。これは上記基本原理で説明したように、バレルシフタ３４により切り捨てられ、加減算器３５により最終的に出力される二次元の演算結果の誤差を小さくするようにするためである。
【００７９】
次に、本実施例の動作を説明する。
【００８０】
まず、データ記憶装置２１には、原画像のデータが保持されているものとする。データ変換演算装置２２は、データ記憶装置２１から画像データを読込んでＤＣＴ演算を行ない、そのＤＣＴ演算出力は、量子化装置２３に送られる。また、量子化装置２３では、データ変換演算装置２２からの入力に対して所定の量子化テーブルの値に従って量子化演算を行なう。
【００８１】
このとき、本実施例のデータ変換演算装置２２では、例えば、式（１５）に示す４次行列の画像データに対してＤＣＴ方式の二次元変換演算処理が行われるものとする。
【００８２】
【数１５】
0003543151.tif 000016
このデータ変換演算装置２２における演算過程を上記基本原理で説明した一般式（７）〜（１２）に対応させて説明する。
【００８３】
まず、この式（１５）の画像データに対して一次元目の変換演算処理を行って係数ＲＯＭ３１から読み出した係数を乗算器３３で乗算すると、上記一般式（７）に対応する式（１６）に示す値が演算結果として出力される。
【００８４】
【数１６】
0003543151.tif 000017
この式（１６）に対してバレルシフタ３４による切り捨て処理を行うと、上記一般式（８）に対応する式（１７）に示す値が演算結果として出力される。
【００８５】
【数１７】
0003543151.tif 000018
このとき式（１７）に示すように、各項で“−Δ00，−Δ01，−Δ02，−Δ03”が一次元目の演算誤差として出力される。
【００８６】
すなわち、式（１７）から式（１６）を減算した結果が、式（１８）に示す一次元目の演算処理した後の演算誤差が負の値で出力される。
【００８７】
【数１８】
0003543151.tif 000019
さらに、式（１７）に対して、二次元目の変換演算処理を行って係数ＲＯＭ３１から読み出した係数を乗算器３３で乗算すると、上記一般式（１０）に対応する式（１９）に示す負の値が演算結果として出力される。
【００８８】
【数１９】
0003543151.tif 000020
この式（１９）に対してバレルシフタ３４による切り捨て処理を行うと、上記一般式（１１）に対応する式（２０）に示す値が演算結果として出力される。
【００８９】
【数２０】
0003543151.tif 000021
このとき式（２０）に示すように、上記式（１８）に示した演算誤差に加えて各項にニ次元目の負の値の演算誤差が出力され、全体として負の値にシフトした演算誤差となり、本来とるべき値からの誤差が大きくなっている。すなわち、式（２０）の各項のＣＯＳ係数は全て正の数であるため、この各項では、“−Δij”（i ＝０，１、j ＝０〜９）と全て負の数をとるため、上記従来の図１０に示した演算誤差を示した図と同様に本来とるべき値よりも全体的に小さい値となり、大きな誤差が発生する。ここまでが従来のＤＣＴ方式による二次元変換演算処理の演算過程である。
【００９０】
本実施例では、この式（２０）の各項の係数に対して補数ＲＯＭ３２から読み出した数値データとして（−１）を乗算器３３で乗算すると、上記一般式（１２）に対応する式（２１）に示す演算結果が出力される。
【００９１】
【数２１】
0003543151.tif 000022
このように係数に（−１）を乗算すると、各項で正の値と負の値が相殺し合って全体的な演算誤差を上記式（２０）に比べて小さくすることができる。
【００９２】
したがって、本実施例のＤＣＴ方式による画像データの二次元変換演算処理では、各項の係数に予め補数ＲＯＭに格納した数値（−１）を乗算することにより、一次元目と二次元目に発生する負の演算誤差を正の演算誤差として相殺して全体的な演算誤差を小さくすることができ、二次元変換演算処理の演算精度を向上させることができる。
【００９３】
したがって、上記従来の図９に示したデータ変換演算装置３のようにバレルシフタ８により右シフト（切り捨て）処理を行う場合に比べて、本実施例のデータ圧縮装置２０では、その出力する演算結果を本来とるべき値との演算誤差がより小さくなるように算出することができる。
【００９４】
また、上記従来の図１１に示したデータ変換演算装置３のようにインクリメンタ１０を追加して四捨五入処理を行う場合に比べて、上記従来の図９と同等の回路構成で本実施例のデータ圧縮装置２０を実現でき、回路規模を大きくすることなく低コストで演算精度を向上させることができる。
【００９５】
また、上記従来の図１２に示したデータ変換演算装置３のようにバレルシフタ８と加減算器９をバス１２で接続し、バレルシフタ８と加減算器９のバス切換えにより加減算器９が四捨五入処理を行う場合に比べて、本実施例のデータ圧縮装置２０では演算時間を長引かせることなく演算精度を向上させることができる。なお、上記実施例では、補数ＲＯＭを別に設けるようにしたが、従来の係数ＲＯＭの空き領域に格納してもよく、実際にはハード構成を追加することなく、格納する係数データの変更と処理プログラム等を変更するだけでよく、低コストで本実施例を実現することができる。
【００９６】
第２実施例
また、第１実施例では、本発明を画像データの二次元変換演算処理としてＤＣＴ方式に適用した場合を説明したが、すなわち、乗算、切り捨て、加減算処理を２回繰り返し行う処理の場合に、本発明の乗算処理が有効である旨を説明したが、強い相関を持つデータが隣接して存在する場合には、その各データに順次一次元変換演算処理する場合であっても本発明の乗算処理は有効である。すなわち、二次元の画像データを奇数ラインと偶数ラインに分け、そのライン毎に一次元変換演算処理を実行する場合、又は、画素データ毎に一次元変換演算処理を実行する場合である。
【００９７】
このような強い相関を持つ隣接データに対する一次元変換演算処理に本発明のデータ圧縮装置を適用した例を以下に第２実施例として説明する。
【００９８】
図５は、本発明のデータ圧縮装置の第２実施例を示す図であり、ＤＣＴ変換方式に基づくデータ圧縮装置に適用した例である。図５は、データ圧縮装置内のデータ変換演算装置のブロック構成図である。なお、本実施例のデータ圧縮装置の全体のブロック構成は、上記第１実施例の図３に示したデータ圧縮装置と同一であるため図示及び説明は省略する。
【００９９】
図５において、データ変換演算装置４０は、乗算器４３が画像データに対して乗算する係数データを格納する係数ＲＯＭ４１と、乗算器４３が画像データに対して乗算する数値データを格納する補数ＲＯＭ４２、上記データ記憶装置２１から入力されるライン毎の画像データあるいは画素データに対し、そのラインデータ毎あるいは画素データ毎に係数ＲＯＭ４１から読み出した係数と補数ＲＯＭ４２から読み出した数値とを乗算してバレルシフタ４４に出力する乗算器４３と、乗算器４３から入力される乗算後のデータを必要なビット数だけ残し、右シフト（切り捨て）し、加減算器４５に出力するバレルシフタ４４と、バレルシフタ４４から入力される値に前回の値との和（差）を求める加減算器４５とにより構成されている。
【０１００】
すなわち、本データ変換演算装置４０の補数ＲＯＭ４２は、係数ＲＯＭ４１に格納されている係数データに乗算する数値データを予め格納し、乗算器４３は、データ記憶装置２１から入力されるライン毎の画像データあるいは画素データに対して一次元変換演算処理を行う際に、乗算に必要な係数データを係数ＲＯＭ４１から読み出して乗算するとともに、必要に応じてその係数データに乗算する数値データを補数ＲＯＭ４２から読み出して乗算するようにしている。これは上記基本原理で説明したように、バレルシフタ４４により切り捨てられ、加減算器４５により出力される一次元の演算結果の誤差を小さくするようにするためである。
【０１０１】
次に、本実施例の動作を説明する。
【０１０２】
まず、データ記憶装置２１には、原画像のデータが保持されているものとする。データ変換演算装置４０は、データ記憶装置２１からライン毎の画像データあるいは画素データを読込んでＤＣＴ演算を行ない、そのＤＣＴ演算出力は、上記量子化装置２３に送られる。また、量子化装置２３では、データ変換演算装置２２からの入力に対して所定の量子化テーブルの値に従って量子化演算を行なう。このとき、本実施例のデータ変換演算装置４０では、例えば、上記式（１５）に示した４次行列の画像データに対してＤＣＴ方式の一次元変換演算処理が行われるものとする。このデータ変換演算装置４０における演算過程を上記基本原理で説明した一般式（１３）に対応させて説明する。
【０１０３】
まず、この式（１５）の画像データに対して一次元の変換演算処理を行って係数ＲＯＭ４１から読み出した係数と補数ＲＯＭ４２を乗算器４３で乗算すると、上記一般式（１３）に対応する式（２２）に示す値が演算結果として出力される。
【０１０４】
【数２２】
0003543151.tif 000023
この式（２２）では、第１項目及び第３項目では通常の係数を乗算し、第２項目及び第４項目では係数と（−１）を乗算している。すなわち、各項の係数が全て正の数であるため、奇数項には係数のみを乗算し、偶数項には係数と（−１）を乗算することにより、奇数項の演算誤差を正の数として小さくし、偶数項の演算誤差を負の数として大きくし、奇数項と偶数項で演算誤差を相殺するようにしている。
【０１０５】
したがって、一次元変換演算処理で全ての項の係数が同一符号であっても、奇数項あるいは偶数項に（−１）を乗算することにより、奇数項と偶数項で発生する演算誤差が相殺するように演算結果を得ることができ、全体の演算誤差を小さくすることができる。
【０１０６】
したがって、上記第１実施例では、二次元変換演算処理で乗算する係数が全て正の数の場合に−１を乗算する場合を説明したが、係数が負の数の場合には、かえって演算誤差が大きくなってしまう可能性がある（但し、この場合でも上記従来のデータ圧縮装置で発生する演算誤差を超えることはない）が、第２実施例では、各項の係数に対して奇数項あるいは偶数項のみに（−１）を乗算しているので、奇数項と偶数項の間で演算誤差を小さくすることができ、全体の演算誤差を確実に小さくすることができる。
【０１０７】
その結果、一次元変換演算処理においても従来よりも演算誤差を小さくすることができ、一次元変換演算処理における演算精度の向上を図ることができる。また、本実施例では、上記第１実施例と同様に、補数ＲＯＭを別に設けるようにしたが、従来の係数ＲＯＭの空き領域に格納してもよく、実際にはハード構成を追加することなく、格納する係数データの変更と処理プログラム等を変更するだけでよく、低コストで本実施例を実現することができる。
【０１０８】
また、本実施例は、相関性の高いデータであれば、画像データ以外のデータに対しても適用可能であり、例えば、データが奇数ブロックと偶数ブロックに分けられるような場合にも適用可能である。
【０１０９】
なお、上記各実施例では、本発明をＤＣＴ方式のデータ圧縮装置に適用した場合について説明したが、このＤＣＴ方式に限定されず、データ圧縮を行うものであればどのような装置にも適用できることは言うまでもない。例えば、ＪＰＥＧ（Joint Photographic Expert Group ）やＭＰＥＧ（Motion Picture Image Co-ding Experts Group）に準拠したデータ圧縮装置にも適用することができる。
【０１１１】
また、本実施例では、データ変換演算装置にＤＣＴを適用しているが、これら符号化方式には限定されず、符号化演算を行なうものであればどのような装置にも適用できることは言うまでもない。例えば、ハール（Harr）変換、傾斜変換（スラント変換）、対称性サイン変換などを用いたデータ圧縮伸張装置に適用することができる。
【０１１２】
また、入力データに対してデータ変換を行なうものであれば、データ変換の種類は何でもよく、ＤＣＴによる周波数成分の変換のほか、例えばＦＦＴ，ＬＯＴ（Lapped Orthogonal Transform：重合直交変換）等の直交データ変換に適用可能である。
【０１１３】
【発明の効果】
本発明によれば、データ記憶手段から出力されたデータに対してデータ変換演算手段により所定の変換係数に基づく変換符号化、直交変換あるいは周波数変換により二次元のデータ変換演算を実行し、該データ変換演算では、入力データに対して変換係数と−１を乗算するようにしたため、データを変換演算する際に発生する演算誤差を、−１を乗算した値で相殺して全体的な演算誤差を小さくすることができ、データ変換演算処理における演算精度を向上させることができる。
【図面の簡単な説明】
【図１】本発明の基本原理説明において従来のアダマール変換方式により処理される二次元データの演算過程を示す図。
【図２】本発明の基本原理説明において本発明のアダマール変換方式により処理される二次元データの演算過程を示す図。
【図３】本発明を適用した第１実施例のデータ圧縮装置のブロック構成図。
【図４】図３のデータ変換演算装置のブロック構成図。
【図５】本発明を適用した第２実施例のデータ変換演算装置のブロック構成図。
【図６】従来のデータ圧縮装置のブロック構成図。
【図７】図６のデータ圧縮装置により処理される画像データの構成を示す図。
【図８】図６の量子化装置により利用される量子化テーブルの構成を示す図。
【図９】図６のデータ変換演算装置のブロック構成図。
【図１０】図９のデータ変換演算装置により出力される演算結果を説明するための図。
【図１１】従来のその他のデータ変換演算装置のブロック構成図。
【図１２】従来のその他のデータ変換演算装置のブロック構成図。
【符号の説明】
２０  データ圧縮装置
２１  データ記憶装置
２２  データ変換演算装置
２３  量子化装置
２４  制御装置
３１、４１  係数ＲＯＭ
３２、４２  補数ＲＯＭ
３３、４３  乗算器
３４、４４  バレルシフタ
３５、４５  加減算器
【図１】
0003543151.tif 000024
【図２】
0003543151.tif 000025
【図３】
0003543151.tif 000026
【図４】
0003543151.tif 000027
【図５】
0003543151.tif 000028
【図６】
0003543151.tif 000029
【図７】
0003543151.tif 000030
【図８】
0003543151.tif 000031
【図９】
0003543151.tif 000032
【図１０】
0003543151.tif 000033
【図１１】
0003543151.tif 000034
【図１２】
0003543151.tif 000035