(57)【要約】【課題】  表示用データの可逆圧縮および非可逆圧縮を共に行うことができる表示用データ圧縮／伸張方法を提供する。【解決手段】  表示画面の各表示ドット対応の表示用データを複数の２次元ブロックに分け、各ブロックの前記表示用データを、予め指定された非可逆圧縮方法または可逆圧縮方法によって圧縮する。非可逆圧縮方法は、各ブロックの表示用データを離散コサイン変換し、量子化テーブルを用いて量子化し、１次元データに並べ替え、１次元ハフマンテーブルを用いてハフマン符号化する。可逆圧縮方法は、各ブロックの表示用データを予め決められた順序でスキャンして並べ替え、スキャン処理によって並べ替えられたデータを圧縮し、上記の処理をスキャン方法を変えて繰り返し実行し、圧縮後のデータ量が最も小さいスキャン方法を選択し、選択したスキャン方法およびそのスキャン方法に基づく圧縮データを出力する。【選択図】    図１
2005191956.tif 000002
【特許請求の範囲】
【請求項１】
表示画面の各表示ドット対応の表示用データを複数の２次元ブロックに分け、各ブロックの前記表示用データを、予め指定された非可逆圧縮方法または可逆圧縮方法によって圧縮する表示用データ圧縮方法において、
前記非可逆圧縮方法は、
各ブロックの表示用データを離散コサイン変換する第１の処理と、
前記第１の処理後のデータを量子化テーブルを用いて量子化する第２の処理と、
前記第２の処理後のデータを１次元データに並べ替える第３の処理と、
前記第３の処理後のデータを１次元ハフマンテーブルを用いてハフマン符号化する第４の処理とを有し、
前記可逆圧縮方法は、
各ブロックの表示用データを予め決められた順序でスキャンして並べ替える第５の処理と、
前記スキャン処理によって並べ替えられたデータを圧縮する第６の処理とを有し、
前記第５、第６の処理をスキャン方法を変えて繰り返し実行し、
圧縮後のデータ量が最も小さいスキャン方法を選択し、選択したスキャン方法およびそのスキャン方法に基づく圧縮データを出力する
ことを特徴とする表示用データ圧縮方法。
【請求項２】
前記表示用データはＲＧＢデータであり、前記第１の処理の前に、前記表示用データを輝度データおよび色差データに変換する変換処理を行うことを特徴とする請求項１に記載の表示用データ圧縮方法。
【請求項３】
前記量子化テーブルは予め複数用意され、表示画像の態様または圧縮効率に基づいて選択されることを特徴とする請求項１または請求項２に記載の表示用データ圧縮方法。
【請求項４】
前記ハフマンテーブルは予め複数用意され、表示画像の態様または圧縮効率に基づいて選択されることを特徴とする請求項１〜請求項３のいずれかの項に記載の表示用データ圧縮方法。
【請求項５】
前記第６の処理は、隣り合うデータ間において差分演算を行って第５の処理後のデータを差分データに変換する差分演算処理であることを特徴とする請求項１〜請求項４のいずれかの項に記載の表示用データ圧縮方法。
【請求項６】
請求項１〜請求項５のいずれかの項に記載の表示用データ圧縮方法によって圧縮された圧縮データを伸張する表示用データ伸張方法において、
前記圧縮データを圧縮処理の逆処理によって復号する復号処理と、
前記復号処理によって復号されたデータをブロック分割前の状態でメモリに書き込む書込処理と、
を具備することを特徴とする表示用データ伸張方法。
【請求項７】
請求項１〜請求項５のいずれかの項に記載の表示用データ圧縮方法によって圧縮された圧縮データを伸張する表示用データ伸張回路において、
前記圧縮データをハフマンテーブルを用いて復号する復号手段と、
前記復号手段によって復号されたデータを量子化テーブルを用いて量子化前のデータに戻す逆量子化手段と、
前記逆量子化手段による処理が終了したデータを所定の演算式に基づいて逆離散コサイン変換する演算手段と、
を具備することを特徴とする表示用データ伸張回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＲＧＢ形式の自然画的な表示用データ等の非可逆高能率圧縮と、インデックスデータ等の可逆圧縮とを共に行うことができる表示用データ圧縮／伸張方法に関する。
【背景技術】
【０００２】
従来のカラー画像データの圧縮方法として次のような方法が知られている。
（１）セル参照方式、ライン参照方式
これらの方法は、前後に同じカラーコードが続くベタ絵に対しては有効であるが、前後に同じカラーコードがない場合は圧縮率が上がらない欠点がある。また、ＲＧＢ形式の画像データの非可逆／高能率圧縮ができない欠点がある。
【０００３】
（２）辞書法
再現度を上げるために、大きな辞書データが必要となる。セル参照方式、ライン参照方式と同様に可逆圧縮であるため、ＲＧＢ形式の画像データの非可逆／高能率圧縮ができない欠点がある。
【０００４】
（３）ＤＣＴ変換＋２次元ハフマン符号化（ＪＰＥＧ；Joint Photographic image coding Experts Group））
８×８サイズのブロックを形成してＤＣＴ（Discrete Cosine Transform；離散コサイン変換）を行うため圧縮率が上がってくるとブロック単位での歪みが目立つようになる。また、本質的に正弦波で近似するため、アニメ画像などのようにエッジの強い部分をうまく近似できない。また、２次元ハフマン符号化のために複雑なハフマンテーブルが必要となり、テーブル参照等の処理がハードウエア化に不利である。さらに、カラーパレット変換を前提としたインデックス形式の画像データ可逆圧縮ができない欠点がある。
【０００５】
（４）ウエーブレット変換＋算術符号化（ＪＰＥＧ２０００）
画像圧縮のため２次元ウエーブレット変換を行うためには、画素サイズと同等のメモリをバッファとして必要とし、したがって、ハードウエア化に適しておらず、また、変換時間も多くかかる。算術符号化は演算が複雑で、特に、ＪＰＥＧ２０００のようにビットプレーン単位で符号化すると、復号処理に時間がかかってしまう。ウエーブレット変換はＤＣＴと同様に画像の相関を利用しているので、インデックス形式の画像データの可逆圧縮には向かない。
このような従来の圧縮方法に鑑み、この出願の出願人は先に、
特願２００２−２３４９８４
を出願している。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、このような事情を考慮してなされたもので、その目的は、表示用データの可逆圧縮および非可逆圧縮を共に行うことができる表示用データ圧縮／伸張方法を提供することにある。また、この発明の他の目的は、構成を簡単化することができる表示用データ圧縮／伸張方法を提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、表示画面の各表示ドット対応の表示用データを複数の２次元ブロックに分け、各ブロックの前記表示用データを、予め指定された非可逆圧縮方法または可逆圧縮方法によって圧縮する表示用データ圧縮方法において、前記非可逆圧縮方法は、各ブロックの表示用データを離散コサイン変換する第１の処理と、前記第１の処理後のデータを量子化テーブルを用いて量子化する第２の処理と、前記第２の処理後のデータを１次元データに並べ替える第３の処理と、前記第３の処理後のデータを１次元ハフマンテーブルを用いてハフマン符号化する第４の処理とを有し、前記可逆圧縮方法は、各ブロックの表示用データを予め決められた順序でスキャンして並べ替える第５の処理と、前記スキャン処理によって並べ替えられたデータを圧縮する第６の処理とを有し、前記第５、第６の処理をスキャン方法を変えて繰り返し実行し、圧縮後のデータ量が最も小さいスキャン方法を選択し、選択したスキャン方法およびそのスキャン方法に基づく圧縮データを出力することを特徴とする表示用データ圧縮方法である。
【０００８】
請求項２に記載の発明は、請求項１に記載の表示用データ圧縮方法において、前記表示用データはＲＧＢデータであり、前記第１の処理の前に、前記表示用データを輝度データおよび色差データに変換する変換処理を行うことを特徴とする。
請求項３に記載の発明は、請求項１または請求項２に記載の表示用データ圧縮方法において、前記量子化テーブルは予め複数用意され、表示画像の態様または圧縮効率に基づいて選択されることを特徴とする。
【０００９】
請求項４に記載の発明は、請求項１〜請求項３のいずれかの項に記載の表示用データ圧縮方法において、前記ハフマンテーブルは予め複数用意され、表示画像の態様または圧縮効率に基づいて選択されることを特徴とする。
請求項５に記載の発明は、請求項１〜請求項４のいずれかの項に記載の表示用データ圧縮方法において、前記第６の処理は、隣り合うデータ間において差分演算を行って第５の処理後のデータを差分データに変換する差分演算処理であることを特徴とする。
【００１０】
請求項６に記載の発明は、請求項１〜請求項５のいずれかの項に記載の表示用データ圧縮方法によって圧縮された圧縮データを伸張する表示用データ伸張方法において、前記圧縮データを圧縮処理の逆処理によって復号する復号処理と、前記復号処理によって復号されたデータをブロック分割前の状態でメモリに書き込む書込処理とを具備することを特徴とする表示用データ伸張方法である。
請求項７に記載の発明は、請求項１〜請求項５のいずれかの項に記載の表示用データ圧縮方法によって圧縮された圧縮データを伸張する表示用データ伸張回路において、前記圧縮データをハフマンテーブルを用いて復号する復号手段と、前記復号手段によって復号されたデータを量子化テーブルを用いて量子化前のデータに戻す逆量子化手段と、前記逆量子化手段による処理が終了したデータを所定の演算式に基づいて逆離散コサイン変換する演算手段とを具備することを特徴とする表示用データ伸張回路である。
【発明の効果】
【００１１】
この発明によれば、可逆圧縮および非可逆圧縮を共に行うことができる。これにより、ＲＧＢ形式の表示用データの高能率非可逆圧縮を行うことができる一方、アニメ画像のようにエッジ部分が強く非可逆圧縮によるノイズが大きくなる画像の場合やインデックス形式のデータ、αデータ、マスクデータ等について可逆圧縮を行うことができる。
また、この発明によれば、１次元ハフマンテーブルを用いて圧縮を行うので、２次元ハフマンテーブルを用いる場合に比較し構成の簡略化および処理の高速化を図ることができる。さらに、この発明による伸張方法は、可逆圧縮データの伸張の場合と非可逆圧縮データの伸張の場合のそれぞれにおいてパイプライン処理のためのバッファ構成を共有化でき、したがってハードウエア化に有利であるという利点が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、この発明の実施の形態について説明する。この実施形態による圧縮方法は、ハードウエアまたはマイクロプロセッサによって実行されるもので、ＲＧＢ（レッド・グリーン・ブルー）データ、ＹＵＶ（輝度・色差・色差）データおよびインデックスデータのいずれのカラー表示用データも圧縮することができる。また、非可逆／高能率圧縮および可逆圧縮のいずれも行うことができる。なお、インデックスデータとは、色を指定するコードデータであり、表示の際にカラーパレットによってＲＧＢデータに変換する必要があるデータである。
以下、まず、非可逆圧縮／伸張の手順について説明し、次いで可逆圧縮／伸張の手順について説明する。
【００１３】
（１）非可逆圧縮／伸張の手順
図１は非可逆圧縮手順を示す説明図である。図１の符号ＧＤを表示画面の各表示ドット対応のＲＧＢ形式の画像データとすると、この圧縮処理においては、この画像データを１６×１６ドット毎にブロック分けし、各ブロック毎に次の手順で圧縮処理を行う。
まず、それぞれ１６×１６データからなるＲデータ、Ｇデータ、ＢデータをＹＵＶ（輝度、色差、色差）データに変換し、さらに変換後のＵ、Ｖデータを「間引き処理」によって圧縮する。これにより、図に示すように、１６×１６データからなる輝度データＹと、８×８データからなる色差データＵ、Ｖが得られる。いま、輝度データＹを４分割し、８×８データからなる輝度データＹ0、Ｙ1、Ｙ2、Ｙ3とし、これらの輝度データＹ0〜Ｙ3および色差データＵ、Ｖをそれぞれ公知の変換式に基づいてＤＣＴ変換する。
【００１４】
このＤＣＴ変換によって得られた６組の係数データ（各係数データは各々８×８データからなる）をそれぞれＹ’0、Ｙ’1、Ｙ’2、Ｙ’3、Ｕ’、Ｖ’とすると、次に、これらの各係数データを構成する各データを、図２〜図４に示す量子化テーブルＲＴ１〜ＲＴ３のいずれかによって量子化する。すなわち、いま、係数データを図５に示すものとし、このデータを図２の量子化テーブルＲＴ１によって量子化する場合、まず、図５のデータｄ００を「１６」で割り、少数点以下をカットしてデータｄ００に対応する量子化データを求め、次に、データｄ０１を「１１」で割り、少数点以下をカットしてデータｄ０１に対応する量子化データを求め、以下、同様の処理を繰り返す。これにより、上述した６組の係数データに対応して各１６×１６データからなる量子化データＹ”0、Ｙ”1、Ｙ”2、Ｙ”3、Ｕ”、Ｖ”が得られる。
【００１５】
具体的に説明すると、いま、例えば、係数データＹ’0を図６に示すものとし、この係数データＹ’0を図２の量子化テーブルＲＴ１によって量子化する場合、まず、図６の第１行目最左端のデータ「１３０」を図２の第１行目最左端のデータ「１６」で割り、その商の小数点以下をカットしてデータ「８」を得る（図７の第１行目最左端のデータ参照）。次に、図６の第１行目最左端から２番目のデータ「６７」を図２の第１行目最左端から２番目のデータ「１１」で割り、その商の小数点以下をカットしてデータ「６」を得る（図７の第１行目最左端のデータ参照）。以下、同様の処理を繰り返すことによって図７に示す量子化データＹ”0が得られる。
【００１６】
ここで、量子化テーブルＲＴ１は輝度データ、ＲＧＢデータに用いられ、量子化テーブルＲＴ３は色差データに用いられる。量子化テーブルＲＴ１、ＲＴ３は共に低周波成分の量子化を細かく、高周波成分の量子化を粗くしている。また、量子化テーブルＲＴ２は、アニメ画像のように、エッジが強い画像の輝度データ、ＲＧＢデータの圧縮に用いられる。量子化テーブルＲＴ２によると、低周波成分から高周波成分まで均一に量子化される。なお、これらの量子化テーブルＲＴ１〜ＲＴ３の選択は、圧縮対象画像の態様またはＤＣＴ係数データの分布に応じて決めてもよく、あるいは、圧縮効率に応じて決めてもよい。
【００１７】
次に、上述した量子化データＹ”0、Ｙ”1、Ｙ”2、Ｙ”3、Ｕ”、Ｖ”をそれぞれジグザグスキャンによってジグザグ順に低周波成分から高周波成分になるように１次元に並べ替える。すなわち、いま、量子化データを図８に示すものとすると、各データを、
Ｄ００  Ｄ０１  Ｄ０８  Ｄ１６  Ｄ０９  Ｄ０２・・・・・・Ｄ６３
なる順に並べ替える。図７に示す量子化データＹ”0の場合、これをジグザグスキャンすると図９に示すデータ列が得られる。次に、このジグザグスキャンによって得られた６組の各データ列毎にハフマン符号による圧縮を行う。すなわち、ある量子化データをジグザグスキャンして得られたデータ列を、
ＤＣ  Ａ１  Ａ２・・・・・Ａ６３
とすると、まず、先頭データＤＣを、
ΔＤＣ＝ＤＣ−Pre＿ＤＣ
なる式によって、ΔＤＣに変換する。ここで、Pre＿ＤＣは１つ前のデータ列のデータＤＣであり、最初のデータ列の場合はデータ「０」となる。
【００１８】
次に、ΔＤＣを次の手順で圧縮符号化する。まず、図１０に示す変換テーブルＴ１によってΔＤＣに対応するｓ値を求める。次に、求めたｓ値を図１１に示すＤｃＬハフマンテーブルＨＴ１または図１２に示すＤｃＣハフマンテーブルＨＴ２を用いて符号化する。この場合、ＤｃＬハフマンテーブルＨＴ１は、データ列が輝度データ、インデックスデータ、ＲＧＢデータの場合に用いられ、ＤｃＣハフマンテーブルＨＴ２は、データ列が色差データの場合に用いられる。色差データの方が小さな振幅値をとりやすい傾向にあるためである。次に、ハフマンテーブルＨＴ１またはＨＴ２によって得られた符号にデータΔＤＣの下位ｓビットを加え、さらに正／負を示す符号ビット（１ビット）を加えて圧縮符号化データとする。
【００１９】
いま、例えば、図９に示すジグザグスキャン列の先頭データ「８」を上述した手順によって１つ前のデータ列の最初のデータとの差をとった結果が「１」であったとすると、ｓ値は変換テーブルＴ１（図１０）より「１」となり、このｓ値「１」をＤｃＬハフマンテーブルＨＴ１（図１１）によって符号化すると「０１０」となる。このデータに符号ビットを加えたデータ「０１０．０」が圧縮符号化データとなる（図９参照）。
【００２０】
次に、データ列Ａ１・・・Ａ６３を図１３に示すハフマンテーブルＨＴ３または図１４に示すハフマンテーブルＨＴ４を用いて圧縮符号化する。例えば、図９に示すジグザグスキャン列をハフマン符号化する場合、まず、上述した過程で圧縮した先頭データを除く最初のデータ「６」はハフマンテーブルＨＴ３により「１１０１０１ｓ」となり、符号が正であることから、「１１０１０１．０」なる変換データが得られる（図９参照）。次に、２番目のデータ「５」は、ハフマンテーブルＨＴ３により「１１０１００ｓ」となり、符号が正であることから、「１１０１００．０」なる変換データが得られる（図９参照）。次に、３番目のデータ「０」は、ハフマンテーブルＨＴ３の値「Ｚ１Ｌ」より「０１１」なる変換データが得られる。次に、４番目、５番目のデータ「２」、「３」はそれぞれ図９に示すように、「１００．０」、「１０１０．０」となる。次に、第６番目〜第６４番目のデータはいずれも「０」であり、この５８個のデータ「０」はハフマンテーブルＨＴ３の値「ＺＲＥ」から「０１０」に変換される（図９参照）。
【００２１】
このように、ハフマンテーブルＨＴ１およびＨＴ３による符号化を行うことにより、図９に示すように、５１２ビットのジグザグスキャン列を３３ビットのハフマン符号化列に圧縮することができる。なお、ハフマンテーブルＨＴ３、ＨＴ４は表示画像の態様により選択され、あるいは、圧縮効率のよいものが選択される。例えば、ハフマンテーブルＨＴ３はグラデーションの多い画像に適しており、一方、ハフマンテーブルＨＴ４は複雑なパターンが多い画像に適している。
以上が非可逆圧縮の手順である。
【００２２】
次に、上記の非可逆圧縮手順によって生成された圧縮データの伸張手順について、図１５を参照して説明する。
まず、圧縮データをハフマンテーブルＨＴ１〜ＨＴ４を用いて復号化し、次いで、この復号化によって得られたデータΔＤＣを、
ΔＤＣ＝ＤＣ＋Pre＿ＤＣ
なる式を用いてデータＤＣに戻す。次に、上記の処理によって得られたデータ列
ＤＣ  Ａ１  Ａ２・・・・・Ａ６３
を逆ジグザグスキャンによって２次元配置の量子化データＹ”0、Ｙ”1、Ｙ”2、Ｙ”3、Ｕ”、Ｖ”に戻す。なお、この処理は非可逆であり、圧縮時の量子化データＹ”0、Ｙ”1、Ｙ”2、Ｙ”3、Ｕ”、Ｖ”と伸張時の上記データは厳密には一致していない。
【００２３】
次に、量子化データＹ”0、Ｙ”1、Ｙ”2、Ｙ”3、Ｕ”、Ｖ”を量子化テーブルＲＴ１〜ＲＴ３を用いて係数データＹ’0、Ｙ’1、Ｙ’2、Ｙ’3、Ｕ’、Ｖ’に戻す。なお、この逆変換も非可逆である。次に、係数データＹ’0、Ｙ’1、Ｙ’2、Ｙ’3、Ｕ’、Ｖ’を逆ＤＣＴ変換することによって輝度データＹ0〜Ｙ4および色差データＵ、Ｖに戻し、これらの輝度データＹ0〜Ｙ4および色差データＵ、ＶをＲＧＢデータに変換する。
以上の伸張処理を各ブロックの圧縮データについて行い、最後に、伸張後の各ブロックのＲＧＢデータを合成して元の画像データＧＤに戻す。
【００２４】
図１６は上述した伸張処理を行う伸張回路の構成を示すブロック図である。同図において、符号１は圧縮データが記憶されたＲＯＭ（リードオンリメモリ）である。ここで、圧縮データには、圧縮画像データの他に、圧縮時に使用されたハフマンテーブル、量子化テーブルの識別番号が含まれている。２はＦＩＦＯ（ファーストイン・ファーストアウト）構成のコードバッファであり、ＲＯＭ１から読み出された圧縮データはこのコードバッファ２において一時記憶され、ハフマン復号回路３へ出力される。ハフマン復号回路３は、圧縮時に使用したハフマンテーブル４を用いて圧縮データを復号し、逆量子化回路５へ出力する。
【００２５】
逆量子化回路５は量子化処理において使用した量子化テーブル６を用いてハフマン復号回路３の出力データを逆量子化し、ＲＡＭ（ランダムアクセスメモリ）７に書き込む。また、１ブロック（８×８データ）のデータがＲＡＭに書き込まれる毎に逆ＤＣＴ演算回路８へその旨を通知する。逆ＤＣＴ演算回路８は、逆ＤＣＴ演算式を用いてＲＡＭ７内のデータを逆ＤＣＴ変換し、ＹＵＶ→ＲＧＢ変換回路９へ出力する。ＹＵＶ→ＲＧＢ変換回路９は逆ＤＣＴ変換回路８から出力されるＹＵＶデータをＲＧＢデータに変換し、フレームメモリ１０に書き込む。
【００２６】
（２）可逆圧縮／伸張の手順
この可逆圧縮は、表示用データの中のマスクデータ、αデータ等の圧縮に用いられる。また、表示用の画像データがインデックスデータであった場合もこの可逆圧縮が用いられる。
図１７は可逆圧縮処理を説明するための説明図である。この圧縮処理においては、まず、前述した非可逆の場合と同様に、カラー画像データＧＤを１６×１６ドット毎にブロックに分割し、各ブロック毎に圧縮処理を行う。この場合、画像データＧＤがインデックスデータの時は、１ブロックのデータは１６×１６データからなるインデックスデータとになり、また、画像データＧＤがＲＧＢデータの場合は、１ブロックのデータが各１６×１６データからなるＲデータ、Ｇデータ、Ｂデータとなる。そして、圧縮処理はこれら１６×１６データ単位で次の手順で行われる。
【００２７】
まず、スキャン処理が行われる。このスキャン処理とは、２次元のデータを一列に並べる処理であり、図に示すように、Scan0〜Scan3の４種類のスキャン方法が予め設定されている。Scan0は、１６×１６データの左上部から右方向へ順次データを抽出し、最上行のデータ抽出が終了すると、第２行目について最右部から左方向へ順次データを抽出し、第３行目については再び最左部から順次データを抽出し、以下、この動作を繰り返して２５６データによるデータ列ＤＳを作成する。このように被圧縮画像データを並べ替える理由は、例えば、画像が横縞のような画像であった場合に近似するデータが並ぶことになり、圧縮効率を上げることができるからである。
【００２８】
Scan1は、左上部から下方へ順次データを抽出し、第１列のデータ抽出が終了すると、第２列目について最下部から上方へ順次データを抽出し、第３列目については再び最上部から順次データを抽出し、以下、この動作を繰り返して２５６データによるデータ列ＤＳを作成する。このScan1は画像が縦縞模様の場合に圧縮効率を上げることができる。Scan2は、１６×１６データによるブロックをさらに細分し、各ブロックにおいてScan1と同様の抽出処理を行ってデータ列ＤＳを作成する。同様にScan3は、１６×１６データのブロックを細分し、各ブロックにおいてScan0と同様の抽出処理を行ってデータ列ＤＳを作成する。これらのScan2、Scan3は画像が部分的に同じ模様や色を有している場合に圧縮効率を上げることができる。
なお、スキャンの方法は上記４種類に限らず、例えば斜め方向のスキャン等種々の方法が考えられる。
【００２９】
スキャン処理において、まず、Scan0が実行されてデータ列ＤＳが作成される。次に、差分演算が行われて、データ列ＤＳ１が生成される。この差分演算においては、まず、データ列ＤＳ１の第１番目のデータとして、データ列ＤＳの最初のデータがそのまま移される。そして、２番目以降のデータｄNとして、
ｄN＝ｐN−p(N-1)
なる差分データが書き込まれる。例えば、２番目のデータｄ2は、データ列ＤＳの２番目のデータｐ2からデータ列ＤＳの１番目のデータｐ1を減算したデータとなる。この差分演算を行うと、単調増加や単調減少データの場合に、同じデータが並ぶことになり、以下の処理において圧縮率を上げることができる。
【００３０】
次に、データ列ＤＳ１の第１番目のデータｐ0を、
Δｐ0＝ｐ0−Pre＿ｐ0
なる式によって、Δｐ0に変換する。ここで、Pre＿ｐ0は１つ前のデータ列のデータｐ0であり、最初のデータ列の場合はデータ「０」となる。次に、Δｐ0を前述した図１０に示す変換テーブルＴ１、図１１に示すＤｃＬハフマンテーブルＨＴ１または図１２に示すＤｃＣハフマンテーブルＨＴ２を用いて圧縮符号化する。
【００３１】
次に、データ列ＤＳ１のデータｄ1〜ｄ225をＳＰＩＮＥＴ符号化によって圧縮する。以下、このＳＰＩＮＥＴ符号化処理について詳述する。
まず、データ列ＤＳ１の各データ（データｐ0を除く）をチェックして次のデータを検出する。
code＿max：最大ビット長のデータのビット長
zero＿max：「０」が最大何個並んでいるかを検出し、検出した個数を表すビット数
ゼロランレングス最大ビット長と言う。
また、次のデータを仮設定する。
code＿th ：短コードビット長
zero＿th ：ゼロランレングス短コードビット長
【００３２】
次に、データ列ＤＳ１において、「０」が２個以上連続している箇所を検出し、次いで、その箇所の「０」の個数（ゼロランレングス）を検出する。次に、その個数がzero＿th以下か、否かをチェックする。そして、zero＿th以下であった場合は、その連続する「０」を図１８（ａ）のフォーマット、すなわち、
０  ０    個数（0RL)
によって表す。ここで、「0RL」はゼロランレングスの意味である。また、個数（0RL）を表すためのビット数はzero＿thの数字を表すためのビット数である。また、zero＿th以上（zero＿thを含まない）であった場合は、図１８（ｂ）のフォーマット、すなわち、
０  ０  ０  ・・・  ０（All「０」）
個数(0RL)
という２データによって表す。ここで、All「０」のビット数は上述したzero＿thの数字を表すためのビット数である。また、個数を表すためのビット数はzero＿maxである。
【００３３】
例えば、zero＿thを「２」と仮設定し、また、zero＿maxが「７」であった場合において、データ「０」が３個続いていた場合（ゼロランレングスが「３」）、その３個のデータ「０」が、
０  ０  １  １
なる１つのデータによって表される。また、ゼロランレングスが、例えば「１３」であった場合は、
０  ０  ０  ０  
０  ０  ０  １  １  ０  １
なるデータによって表される。そして、上述したフォーマットによる符号化が、「０」が２個以上連続している全箇所において行われる。
【００３４】
次に、データ列ＤＳ１の「０」を除く各データについて、直前のデータとの絶対値が同じか否かをチェックする。そして、直前のデータと絶対値が同じであった場合は、図１８（ｃ）のフォーマット、すなわち、
０  １  ｓ
によって表す。ここで、「ｓ」は対象データが直前のデータと絶対値が同じであって正のデータの場合「０」となり、絶対値が同じであって負のデータの場合「１」となる。
【００３５】
次に、データ列ＤＳ１の、上述した各フォーマットによる符号化が行われていない各データについて、そのデータの有効ビット数がcode＿th以下か否かをチェックする。そして、以下であった場合は図１８（ｄ）のフォーマット、すなわち、
１  ０  データ値
なるフォーマットによってデータを表す。ここで、データ値を表すビット数はcode＿thである。また、データのビット数がcode＿th以上（code＿thを含まない）であった場合は図１８（ｅ）のフォーマット、すなわち、
１  １  データ値
なるフォーマットによってデータを表す。ここで、データ値を表すビット数はcode＿maxである。
【００３６】
例えば、code＿thが「３」、code＿maxが「７」であった場合において、対象データが「６」であった場合は、
１  ０  １  １  ０
なるデータによって表される。
また、対象データが「１５」であった場合は、
１  １  ０  ０  ０  １  １  １  １
なるデータによって表される。そして、上述したフォーマットによる符号化は、データ列ＤＳ１の、図１８（ａ）〜（ｃ）の符号化が行われない全データについて行われる。
【００３７】
図１９はデータ列ＤＳ１の「０」を除く各データの有効ビット数別の個数の一例を示すグラフである。このグラフに示すように、差分演算が終了したデータは、小さい値のデータが多く、有効ビット数が「１」、「２」というデータが多い。したがって、上記図１８（ｄ）のフォーマットによる符号化によって圧縮率を高めることができる。
以上の符号化処理が終了した後、zero＿thおよびcode＿thを種々変化させて上記の符号化処理を繰り返す。そして、データ列ＤＳ１の符号化後のビット数が最も小さくなるzero＿thおよびcode＿thを決定する。
以上がScan0に基づくデータ圧縮の過程である。以下、同じ被圧縮データについてScan1〜Scan3に基づく圧縮を行い、圧縮データのビット数が最小のデータを正規の圧縮データとしてメモリに記憶すると共に、その圧縮過程において使用したScan番号、各パラメータをメモリに記憶する。そして、次の被圧縮データ（１６×１６データ）の圧縮処理へ進む。
【００３８】
次に、上記の可逆圧縮手順によって生成された圧縮データ（Scan番号、各パラメータを含む）の伸張手順について、図２０を参照して説明する。
まず、圧縮データの先頭のデータをハフマンテーブルＨＴ１、ＨＴ２を用いて復号化し、次いで、先頭のデータを除く圧縮データをＳＰＩＮＥＴ復号化によって復号する。この復号化は、圧縮データに含まれるパラメータを使用し、前述した符号化処理の全く逆の処理によって行われる。次に、先頭のデータの復号化によって得られたデータΔｐ0を、
ｐ0＝Δｐ0＋Pre＿ｐ0
なる式を用いてデータｐ0に戻す。
【００３９】
次に、上記の復号化およびＳＰＩＮＥＴ復号化によって得られた１次元のデータ列
ｐ0  ｐ1  ｐ2・・・・・ｐ63
を圧縮データに含まれるScan番号が指定するScan順序に従って２次元に並び替える。最後に、伸張後の各ブロックのデータを合成して元の画像データＧＤに戻す。
【図面の簡単な説明】
【００４０】
【図１】この発明の一実施形態による圧縮方法における非可逆圧縮手順を説明するための説明図である。
【図２】同実施形態における量子化処理において用いられる量子化テーブルを示す図である。
【図３】同実施形態における量子化処理において用いられる量子化テーブルを示す図である。
【図４】同実施形態における量子化処理において用いられる量子化テーブルを示す図である。
【図５】同実施形態における量子化処理前のデータの配列を示す図である。
【図６】同実施形態における量子化処理前のデータの配列の一例を示す図である。
【図７】図６に示すデータを量子化処理したデータを示す図である。
【図８】同実施形態におけるジグザグスキャン処理を説明するための図である。
【図９】ジグザグスキャン処理後のデータの一例と、そのデータをハフマン符号化したデータを示す図である。
【図１０】同実施形態における先頭データのハフマン符号化処理において用いられる変換表を示す図である。
【図１１】同実施形態における先頭データのハフマン符号化処理において用いられるＤｃＬハフマンテーブルを示す図である。
【図１２】同実施形態における先頭データのハフマン符号化処理において用いられるＤｃＣハフマンテーブルを示す図である。
【図１３】同実施形態における先頭データ以外のデータのハフマン符号化処理において用いられるハフマンテーブルを示す図である。
【図１４】同実施形態における先頭データ以外のデータのハフマン符号化処理において用いられるハフマンテーブルを示す図である。
【図１５】図１の圧縮方法に対応する伸張方法を説明するための説明図である。
【図１６】図１５に示す伸張方法を実施する伸張回路の構成を示すブロック図である。
【図１７】同実施形態による圧縮方法における可逆圧縮手順を説明するための説明図である。
【図１８】図１７に示す圧縮方法におけるＳＰＩＮＥＴ符号化手順を説明するための図である。
【図１９】図１７に示す圧縮方法におけるＳＰＩＮＥＴ符号化手順を説明するための図である。
【図２０】図１７の圧縮方法に対応する伸張方法を説明するための説明図である。
【符号の説明】
【００４１】
ＧＤ…画像データ、Ｙ0〜Ｙ3…輝度データ、Ｕ…色差データ、Ｖ…色差データ。ＲＴ１〜ＲＴ３…量子化テーブル、ＨＴ１…ＤｃＬハフマンテーブル、ＨＴ２…ＤｃＣハフマンテーブル、ＨＴ３、ＨＴ４…ハフマンテーブル、ＤＳ、ＤＳ１…データ列、１…圧縮データ、２…コードバッファ、３…ハフマン復号回路、４…ハフマンテーブル、５…逆量子化回路、６…量子化テーブル、７…ＲＡＭ、８…逆ＤＣＴ演算回路、９…ＹＵＶ→ＲＧＢ変換回路、１０…フレームメモリ。
【図１】
2005191956.tif 000003
【図２】
2005191956.tif 000004
【図３】
2005191956.tif 000005
【図４】
2005191956.tif 000006
【図５】
2005191956.tif 000007
【図６】
2005191956.tif 000008
【図７】
2005191956.tif 000009
【図８】
2005191956.tif 000010
【図９】
2005191956.tif 000011
【図１０】
2005191956.tif 000012
【図１１】
2005191956.tif 000013
【図１２】
2005191956.tif 000014
【図１３】
2005191956.tif 000015
【図１４】
2005191956.tif 000016
【図１５】
2005191956.tif 000017
【図１６】
2005191956.tif 000018
【図１７】
2005191956.tif 000019
【図１８】
2005191956.tif 000020
【図１９】
2005191956.tif 000021
【図２０】
2005191956.tif 000022