(57)【要約】【課題】画素等のデータ要素単位に制御コードを付加する場合に比べて、圧縮効率を高めること。【解決手段】本発明にかかるデータ圧縮方法は、入力されたデータ列に含まれる複数のデータ要素のうちＮ個（Ｎは２以上の自然数）を１のブロックにまとめ、ブロックに含まれるＮ個のデータ要素に対して所定の圧縮方式により圧縮データを当該ブロック単位に生成し、圧縮データの生成に用いられた圧縮方式に対応し、かつ、ブロックに含まれるデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する。【選択図】図１
2012244235.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータ列に含まれる複数のデータ要素のうちＮ個（Ｎは２以上の自然数）を１のブロックにまとめ、
前記ブロックに含まれるＮ個のデータ要素に対して所定の圧縮方式により圧縮データを当該ブロック単位に生成し、
前記圧縮データの生成に用いられた圧縮方式に対応し、かつ、前記ブロックに含まれるデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加するデータ圧縮方法。
【請求項２】
前記ブロックに含まれるＮ個のデータ要素に対して複数の圧縮方式のそれぞれによりデータを圧縮した場合のデータ長を試算し、
前記複数の圧縮方式のうち前記試算したデータ長が最小となる圧縮方式を前記所定の圧縮方式として選択し、
前記ブロックに含まれるＮ個のデータ要素に対して、前記選択された圧縮方式により圧縮データを生成することを特徴とする請求項１に記載のデータ圧縮方法。
【請求項３】
前記複数の圧縮方式は、
前記Ｎ個のデータ要素のそれぞれについて、直前のデータ要素との圧縮値を算出し、
前記算出されたＮ個の圧縮値のデータ長のうち最大値を特定し、
前記Ｎ個の圧縮値のそれぞれのデータ長を前記特定した最大値となるように補正し、
前記補正後のＮ個の圧縮値を前記ブロックにおける圧縮データとする第１の圧縮方式を含み、
前記第１の圧縮方式に対応する制御コードは、前記特定した最大値をさらに特定することを特徴とする請求項２に記載のデータ圧縮方法。
【請求項４】
前記入力されたデータ列に含まれる複数のデータ要素のうちＮ個を第１のブロックにまとめ、前記第１のブロックに含まれない他のＮ個を第２のブロックにまとめ、
前記第１の圧縮方式により前記第１のブロックに対して算出された圧縮値のデータ長の最大値と、前記第１の圧縮方式により前記第２のブロックに対して算出された圧縮値のデータ長の最大値とが等しい場合、当該第１のブロック及び当該第２のブロックを結合して第３のブロックにまとめ、
前記第３のブロックに含まれる圧縮値のそれぞれのデータ長を前記最大値となるように補正し、当該補正後の２Ｎ個の圧縮値を前記第３のブロックにおける圧縮データとし、
前記第１の圧縮方式に対応し、かつ、データ要素数が２Ｎ個であることを特定する制御コードを、前記第３のブロックにおける圧縮データに付加することを特徴とする請求項３に記載のデータ圧縮方法。
【請求項５】
Ｎが４以上の自然数である場合、前記ブロックに含まれるＮ個のデータ要素を複数のデータ要素を含む複数のサブブロックに分類し、
各サブブロック間で前記第１の圧縮方式により算出された圧縮値のデータ長の最大値が異なる場合、前記サブブロック単位に前記第１の圧縮方式により圧縮データを生成し、
各サブブロックにおける前記最大値を特定する制御コードを、前記サブブロック単位に付加することを特徴とする請求項３に記載のデータ圧縮方法。
【請求項６】
前記複数の圧縮方式は、
前記ブロックに含まれるＮ個のデータ要素が特定のデータ列の特徴を有するか否かを判定し、
前記特定のデータ列の特徴を有すると判定した場合、前記Ｎ個のデータ要素と当該特定のデータ列との差分を可逆に表現する特徴値を算出し、
前記特徴値を前記ブロックにおける圧縮データとする第２の圧縮方式を含み、
前記第２の圧縮方式に対応する制御コードは、前記特定のデータ列をさらに特定することを特徴とする請求項２乃至５のいずれか１項に記載のデータ圧縮方法。
【請求項７】
過去に圧縮データが生成された過去ブロックにおけるＮ個のデータ要素の特徴に基づきデータ列を生成し、
当該生成したデータ列を前記第２の圧縮方式に用いられる前記特定のデータ列に追加することを特徴とする請求項６に記載のデータ圧縮方法。
【請求項８】
前記複数の圧縮方式は、
前記ブロックに含まれるＮ個のデータ要素が過去に圧縮データが生成された過去ブロックにおけるＮ個のデータ要素の特徴を有するか否かを判定し、
前記過去ブロックの特徴を有すると判定した場合、前記Ｎ個のデータ要素と当該過去ブロックとの差分を可逆に表現する特徴値を算出して、
前記特徴値を前記ブロックにおける圧縮データとする第３の圧縮方式を含み、
前記第３の圧縮方式に対応する制御コードは、前記過去ブロックをさらに特定することを特徴とする請求項２乃至７のいずれか１項に記載のデータ圧縮方法。
【請求項９】
前記試算するために、前記ブロック領域に格納されたＮ個のデータ要素から前記複数の圧縮方式のそれぞれに対応する複数の変換データを生成し、
前記選択された圧縮方式に対応付けられた変換データを用いて前記圧縮データを生成する
ことを特徴とする請求項２乃至８のいずれか１項に記載のデータ圧縮方法。
【請求項１０】
前記所定の圧縮方式は、
前記ブロックに含まれるＮ個のデータ要素のそれぞれについて圧縮値を算出し、
前記算出されたＮ個の圧縮値のデータ長のうち最大値を特定し、
前記Ｎ個の圧縮値のそれぞれのデータ長を前記特定した最大値となるように補正し、
前記補正後のＮ個の圧縮値を前記ブロックにおける圧縮データとする第１の圧縮方式であり、
前記制御コードは、前記特定した最大値をさらに特定することを特徴とする請求項１に記載のデータ圧縮方法。
【請求項１１】
前記所定の圧縮方式は、
前記ブロックに含まれるＮ個のデータ要素が特定のデータ列の特徴を有するか否かを判定し、
前記特定のデータ列の特徴を有すると判定した場合、前記Ｎ個のデータ要素と当該特定のデータ列との差分を可逆に表現する特徴値を算出し、
前記特徴値を前記ブロックにおける圧縮データとする第２の圧縮方式であり、
前記制御コードは、前記特定のデータ列をさらに特定することを特徴とする請求項１に記載のデータ圧縮方法。
【請求項１２】
前記所定の圧縮方式は、
前記ブロックに含まれるＮ個のデータ要素が過去に圧縮データが生成された過去ブロックにおけるＮ個のデータ要素の特徴を有するか否かを判定し、
前記過去ブロックの特徴を有すると判定した場合、前記Ｎ個のデータ要素と当該過去ブロックとの差分を可逆に表現する特徴値を算出し、
前記特徴値を前記ブロックにおける圧縮データとする第３の圧縮方式であり、
前記制御コードは、前記過去ブロックをさらに特定することを特徴とする請求項１に記載のデータ圧縮方法。
【請求項１３】
前記入力されたデータ列が複数種類のデータ要素を含む場合、当該データ列に含まれる各データ要素を種類ごとに分類し、
前記分類された種類ごとにＮ個のデータ要素を１のブロックにまとめることを特徴とする請求項１乃至１２のいずれか１項に記載のデータ圧縮方法。
【請求項１４】
複数のデータ要素をＮ個（Ｎは２以上の自然数）ごとに格納する複数のブロック領域を有する記憶部と、
外部から入力されるデータ列に含まれる複数のデータ要素を前記記憶部に格納するデータ格納部と、
前記ブロック領域に格納されたＮ個のデータ要素に対して所定の圧縮方式により圧縮データを生成し、当該圧縮方式に対応し、かつ、当該ブロック領域に格納されたデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する圧縮データ生成部と、
を備えるデータ圧縮装置。
【請求項１５】
前記ブロック領域に格納されたＮ個のデータ要素に対して複数の圧縮方式のそれぞれによりデータを圧縮した場合のデータ長を試算する圧縮データ長試算部をさらに備え、
前記圧縮データ生成部は、
前記複数の圧縮方式のうち前記圧縮データ長試算部により試算されたデータ長が最小となる圧縮方式を前記所定の圧縮方式として選択し、
前記ブロックに含まれるＮ個のデータ要素に対して、前記選択された圧縮方式により圧縮データを生成することを特徴とする請求項１４に記載のデータ圧縮装置。
【請求項１６】
前記圧縮データ長試算部は、
前記試算するために、前記ブロック領域に格納されたＮ個のデータ要素から前記複数の圧縮方式のそれぞれに対応する複数の変換データを生成し、
当該生成した複数の変換データを前記複数の圧縮方式のそれぞれに対応付けて前記記憶部に格納し、
前記圧縮データ生成部は、
前記選択された圧縮方式に対応付けられた変換データを前記記憶部から取得し、
当該取得した変換データを用いて前記圧縮データを生成する
ことを特徴とする請求項１５に記載のデータ圧縮装置。
【請求項１７】
複数のデータ要素をＮ個（Ｎは２以上の自然数）ごとに格納する複数のブロック領域を有する記憶部を備えたコンピュータに、
外部から入力されるデータ列に含まれる複数のデータ要素を前記記憶部に格納するデータ格納処理と、
前記ブロック領域に格納されたＮ個のデータ要素に対して所定の圧縮方式により圧縮データを生成し、当該圧縮方式に対応し、かつ、当該ブロック領域に格納されたデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する圧縮データ生成処理と、
を実行させるデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮方法、装置及びプログラムに関し、特に画像データその他の各種データに対して、データを圧縮するためのデータ圧縮方法、装置及びプログラムに関する。
【背景技術】
【０００２】
画像等のデータを伝送しようとする時に、原データをそのままＢＵＳ上で伝送するのではなく、圧縮したデータの伝送を行うことで、ＢＵＳの伝送効率を改善することができる。しかし、その時の圧縮方式にＪＰＥＧ（Joint Photographic Experts Group）等の技術を用いると、メモリを内蔵した複雑で大きなＨＷ（HardWare）回路が必要となり、ＬＳＩ（Large Scale Integration）面積の増大となる。また、ＪＰＥＧ等ではデータがまとまったうえで二次元平面単位でデータを圧縮するため、データが到来して圧縮処理が開始可能になるまでにも多くの待機時間とデータ蓄積領域が必要となり、ＢＵＳ処理を開始しようとしてから圧縮データを生成し、生成が完了したデータの伝送が実際に開始できるまでのレスポンスは低下する。そのため、既存のＬＳＩ仕様に対してマイナスの影響を極力及ぼすことなく、付加的な圧縮ＨＷ回路をＢＵＳ端へ追加する程度の修正をするだけで既存ＬＳＩ機能の改善を図るといった目的には、ＪＰＥＧ等の技術による圧縮伸張は適さない。
【０００３】
一方、観賞上問題の無い視認性を満たすレベルの画質を保って画像を再現できればよいといった目的での圧縮及び伸張であれば、視覚的な特性を考慮した非可逆圧縮を用いることに大きな問題はない。しかし、一般的な観賞以外を目的とする画像や、画像処理装置内で伝送する画像データや、画像処理装置の検証や評価などのために使用するデータの再現を目的とすると、検証結果の一致比較などのためには復元画像のデータが原画像のデータと完全に一致する必要がある。また、画像以外に制御コードなども含むような任意のデータまでを圧縮及び伸張の対象とする場合には、復元データが原データと完全に一致する必要がある。そのためＪＰＥＧ等の非可逆圧縮の技術を用いた圧縮が出来ず、可逆圧縮を行うことが必要となる。
【０００４】
特許文献１及び２においては、非可逆圧縮への対応を行っており、所定の目標圧縮率を予め設定しておくことで処理対象とする画像データに応じて可逆圧縮と非可逆圧縮が動的に切り替わる仕組みを有している。
【０００５】
また、非可逆圧縮時の画質を担保するための工夫として、例えば特許文献１の第３の実施形態の段落００９７によれば、１ライン分の情報を蓄積可能なメモリの一部分を使用することで非可逆圧縮時の損失低減を図るといった方法もとられている。ただし、本発明は可逆圧縮を対象としたものであるため、以下では、特許文献１及び２の内の可逆圧縮の部分について更に説明を行う。
【０００６】
特許文献１及び２においては、ＤＰＣＭ（Differential Pulse-Code Modulation）を適用した差分値の伝送をすることで、画像の圧縮伝送を行っている。その際、画素の差分データの所要ビットサイズに対応したいくつかのグループを設定しており、伝送しようとする画素の差分データのサイズに応じて、画素の差分データをグループ分けして、画素の差分データが属するグループの番号を決めている。そして、どの番号のグループに属するデータとして画素の差分データを伝送するのかを示したグループ情報（例えば、特許文献１の段落００２５）を初めに伝送して、その後、それに続いて画素の差分データ自体の伝送をするといった処理を、必ず一画素ごとに行っている。ここで、グループ情報とは、いわば制御コードに含まれる情報であり、グループ情報を制御コードと言い換えることができる。すなわち、制御コードを、必ず一画素ごとに付与しているものと言える（特許文献１の段落００１２、第１の実施形態の段落００３２、段落００５０及び第２の実施形態の段落００８１等）。なお、用意するグループの数としては、特許文献１の表１〜表８では、８のグループを用意した実施例を示しており、特許文献２の表１〜表７では、１０のグループを用意した実施例を示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２７３０３５号公報
【特許文献２】特開２００９−１７５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１及び２では、画素の差分データを伝送するにあたって、データのサイズに対応した８又は１０のグループを設定している。また、伝送しようとする画素の差分データのサイズに応じて、画素の差分データをグループ分けして、画素の差分データが属するグループの番号を決めている。そして、画素の差分データの伝送を行うために、どの番号のグループに属するデータとして画素の差分データを伝送するのかを示したグループ情報を初めに伝送して、その後、それに続いて画素の差分データ自体の伝送をするといった処理を、一画素ごとに行っている。なお、その際に制御コードのサイズは可変長で、画素の差分データのとる値の範囲に応じて制御コードのサイズも変化するようになっている（図６２）。
【０００９】
特許文献１及び２では、このような方法を採ることで、制御コードと画素の差分データの合計サイズが、オリジナルの画素値データサイズ（８ビット）よりも小さいサイズとなる時には、オリジナルのデータのみを伝送するよりも少ないデータ量で伝送することができる。
【００１０】
しかしながら、必ず一画素毎に制御コードを付加しており、例えば、同じ制御コードが連続する場合であっても、毎回連続して、同じ値を示す全く同一の制御コードを繰り返し伝送する必要があるため、冗長なデータの伝送が繰り返し行われることとなる。
【００１１】
また、制御コードのサイズを変化させることまでを含めて制御コードの値を変化させており、動的変化に対応したテーブル表を持ってデータサイズに応じて制御コードの値を変化させ、時系列に組み合わせを変化させながら必要なビットサイズへとデータの切り出しを行うといったような処理が必要となり、比較的複雑な構成のＨＷ論理回路となってしまう。
【課題を解決するための手段】
【００１２】
本発明の第１の態様にかかるデータ圧縮方法は、入力されたデータ列に含まれる複数のデータ要素のうちＮ個（Ｎは２以上の自然数）を１のブロックにまとめ、前記ブロックに含まれるＮ個のデータ要素に対して所定の圧縮方式により圧縮データを当該ブロック単位に生成し、前記圧縮データの生成に用いられた圧縮方式に対応し、かつ、前記ブロックに含まれるデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する。
【００１３】
本発明の第２の態様にかかるデータ圧縮装置は、複数のデータ要素をＮ個（Ｎは２以上の自然数）ごとに格納する複数のブロック領域を有する記憶部と、外部から入力されるデータ列に含まれる複数のデータ要素を前記記憶部に格納するデータ格納部と、前記ブロック領域に格納されたＮ個のデータ要素に対して所定の圧縮方式により圧縮データを生成し、当該圧縮方式に対応し、かつ、当該ブロック領域に格納されたデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する圧縮データ生成部と、を備える。
【００１４】
本発明の第３の態様にかかるデータ圧縮プログラムは、複数のデータ要素をＮ個（Ｎは２以上の自然数）ごとに格納する複数のブロック領域を有する記憶部を備えたコンピュータに、外部から入力されるデータ列に含まれる複数のデータ要素を前記記憶部に格納するデータ格納処理と、前記ブロック領域に格納されたＮ個のデータ要素に対して所定の圧縮方式により圧縮データを生成し、当該圧縮方式に対応し、かつ、当該ブロック領域に格納されたデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する圧縮データ生成処理と、を実行させる。
【００１５】
上述したように、本発明の第１、第２又は第３の態様は、定まった複数個の連続画素をまとめて一つのブロックとして、そのブロックの先頭に制御コードを付加した形で伝送を行うためのものである。そのため、複数の画素をまとめて一つのブロックとすることで、制御コードを画素毎に付加していた場合に比べて、制御コードの冗長化を抑え、圧縮効率を高めることができる。よって、制御コードによるオーバーヘッドが減少し、伝送量を減少させることができる。
【発明の効果】
【００１６】
本発明により、画素等のデータ要素単位に制御コードを付加する場合に比べて、圧縮効率を高めるためのデータ圧縮方法、装置及びプログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１にかかる画像圧縮装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる入力データの処理タイミングを説明するための図である。
【図３】本発明の実施の形態１にかかる画像圧縮処理の流れを示すフローチャートである。
【図４】本発明の実施の形態１にかかる画像伸張装置の構成を示すブロック図である。
【図５】本発明の実施の形態１にかかる画像伸張処理の流れを示すフローチャートである。
【図６】本発明の実施の形態１にかかる隣接差分方式による圧縮処理の流れを示すフローチャートである。
【図７】本発明の実施の形態１の隣接差分方式における伝送ブロックの例を示す図である。
【図８】本発明の実施の形態１の隣接差分方式における複数の伝送ブロックの例を示す図である。
【図９】本発明の実施の形態１にかかる各画素の差分データが全て０である場合の伝送ブロックの例を示す図である。
【図１０】本発明の実施の形態１にかかる原画素値を直接伝送する場合の伝送ブロックの例を示す図である。
【図１１】本発明の実施の形態１にかかる画像データバッファ(３６バイト)のイメージを示す図である。
【図１２】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−１）を示す図である。
【図１３】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−２）を示す図である。
【図１４】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−３）を示す図である。
【図１５】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−４）を示す図である。
【図１６】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−５）を示す図である。
【図１７】本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例（１−６）を示す図である。
【図１８】本発明の実施の形態１にかかる既定パターン適合方式による圧縮処理の流れを示すフローチャートである。
【図１９】本発明の実施の形態１にかかる人工画像タイプのパターンでの伝送コードの例を示す図である。
【図２０】本発明の実施の形態１にかかる自然画像タイプのパターンでの伝送コードの例を示す図である。
【図２１】本発明の実施の形態１にかかる人工画像タイプのパターンの例（１）を示す図である。
【図２２】本発明の実施の形態１にかかる人工画像タイプのパターンの例（１）での伝送データの例（１−１）を示す図である。
【図２３】本発明の実施の形態１にかかる人工画像タイプのパターンの例（１）での伝送データの例（１−２）を示す図である。
【図２４】本発明の実施の形態１にかかる人工画像タイプのパターンの例（２）を示す図である。
【図２５】本発明の実施の形態１にかかる人工画像タイプのパターンの例（２）での伝送データの例（２−１）を示す図である。
【図２６】本発明の実施の形態１にかかる人工画像タイプのパターンの例（２）での伝送データの例（２−２）を示す図である。
【図２７】本発明の実施の形態１にかかる人工画像タイプのパターンの例（３）を示す図である。
【図２８】本発明の実施の形態１にかかる人工画像タイプのパターンの例（３）での伝送データの例（３−１）を示す図である。
【図２９】本発明の実施の形態１にかかる人工画像タイプのパターンの例（３）での伝送データの例（３−２）を示す図である。
【図３０】本発明の実施の形態１にかかる自然画像タイプのパターンの例（１）を示す図である。
【図３１】本発明の実施の形態１にかかる自然画像タイプのパターンの例（１）での伝送データの例（１−１）を示す図である。
【図３２】本発明の実施の形態１にかかる自然画像タイプのパターンの例（１）での伝送データの例（１−２）を示す図である。
【図３３】本発明の実施の形態１にかかる自然画像タイプのパターンの例（２）を示す図である。
【図３４】本発明の実施の形態１にかかる自然画像タイプのパターンの例（２）での伝送データの例（２−１）を示す図である。
【図３５】本発明の実施の形態１にかかる自然画像タイプのパターンの例（２）での伝送データの例（２−２）を示す図である。
【図３６】本発明の実施の形態１にかかる自然画像タイプのパターンの例（３）を示す図である。
【図３７】本発明の実施の形態１にかかる自然画像タイプのパターンの例（３）での伝送データの例（３−１）を示す図である。
【図３８】本発明の実施の形態１にかかる自然画像タイプのパターンの例（３）での伝送データの例（３−２）を示す図である。
【図３９】本発明の実施の形態１にかかる自然画像タイプのパターンの例（４）を示す図である。
【図４０】本発明の実施の形態１にかかる自然画像タイプのパターンの例（４）での伝送データの例（４−１）を示す図である。
【図４１】本発明の実施の形態１にかかる自然画像タイプのパターンの例（４）での伝送データの例（４−２）を示す図である。
【図４２】本発明の実施の形態１にかかる過去データ参照方式による圧縮処理の流れを示すフローチャートである。
【図４３】本発明の実施の形態１にかかる過去データ参照方式での伝送コードの例を示す図である。
【図４４】本発明の実施の形態１にかかる過去データ参照方式での処理及び伝送コードの例（１−１）を示す図である。
【図４５】本発明の実施の形態１にかかる過去データ参照方式での処理及び伝送コードの例（１−２）を示す図である。
【図４６】本発明の実施の形態１にかかる過去データ参照方式での処理及び伝送コードの例（１−３）を示す図である。
【図４７】本発明の実施の形態１にかかる過去データ参照方式での処理及び伝送コードの例（１−４）を示す図である。
【図４８】本発明の実施の形態１にかかる制御コードの例を示す図である。
【図４９】本発明の実施の形態１の過去データ参照方式における伝送コードの例(３ビットサイズの場合)を示す図である。
【図５０】本発明の実施の形態１の過去データ参照方式における伝送コードの例(６ビットサイズの場合)を示す図である。
【図５１】本発明の実施の形態１の隣接差分方式における伝送データの例を示す図である。
【図５２】本発明の実施の形態１にかかる８画素の伝送データの例を示す図である。
【図５３】本発明の実施の形態２にかかる８画素の伝送データの例を示す図である。
【図５４】本発明の実施の形態１にかかる後方２画素のデータ長が短い場合の伝送データの例を示す図である。
【図５５】本発明の実施の形態２にかかる後方２画素のデータ長が短い場合の伝送データの例を示す図である。
【図５６】本発明の実施の形態３の実施例１にかかる画像圧縮装置を示す図である。
【図５７】本発明の実施の形態３の実施例１にかかる入力データの処理タイミングを示す図である。
【図５８】本発明の実施の形態３の実施例２にかかる入力データを３つに分類して取り込んで圧縮する時のバッファの例を示す図である。
【図５９】本発明にかかるＮ個ずつのデータ要素を単位としての圧縮及び変換の概念を説明するための図である。
【図６０】本発明にかかる既定パターンを指定し、Ｎ個ずつのデータ要素を単位として圧縮及び変換をする方法の概念を説明するための図である。
【図６１】本発明にかかるＮ個ずつのデータ要素を単位として前ブロック位置と比較して圧縮及び変換をする方法の概念を説明するための図である。
【図６２】関連技術にかかる伝送データの例を示す図である。
【発明を実施するための形態】
【００１８】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１９】
また、以下の本発明の実施の形態では、圧縮伸張の対象とするデータが画像データであるものとして説明を行う。但し、本発明の対象とするデータは、これに限定されず、例えば、音声データ、音声及び画像が混在した動画データ又は特定規格タイプの信号等であってもよい。
【００２０】
＜発明の実施の形態１＞
本発明の実施の形態１では、定まった複数個の連続画素をまとめて一つのブロックとして扱うことでロスレスの圧縮伸張を行う画像圧縮装置１００及び画像伸張装置２００について説明する。また、以下では、入力データの１画素を８ビット（１バイト）であるものとして説明する。尚、１画素のデータサイズはこれに限定されない。
【００２１】
まず、図１を用いて、画像圧縮側の構成を説明する。図１は、本発明の実施の形態１にかかる画像圧縮装置１００の構成を示すブロック図である。画像圧縮装置１００は、複数の画素をまとめて一つのブロックとして、ブロック単位で伝送する。また、画像圧縮装置１００は、データ圧縮方式としてＤＰＣＭ隣接差分方式、既定パターン適合方式及び過去データ参照方式の３つのデータ圧縮方式を用意している。そして、画像圧縮装置１００は、３つのデータ圧縮方式の中でブロック毎に最も高い圧縮率となる方式を使用してデータ圧縮処理を行う。その後、画像圧縮装置１００は、ブロック毎に、ブロックの先頭に制御コードを付加する。
【００２２】
図１において、画像圧縮装置１００は、外部から入力される入力データＤ１に対して、所定の圧縮方式によりデータを圧縮し、出力データＤ２として外部へ出力する。ここで、入力データＤ１は、８ビット幅の画素データであるデータ要素が時系列に並べられたデータ列である。また、出力データＤ２は、後述する本発明の実施の形態１にかかる伝送コードの形式によるデータ列である。
【００２３】
画像圧縮装置１００は、画像データ取込部１１、画像データバッファ１２、圧縮データサイズ試算部１３、圧縮データ要素生成エンジン１４、圧縮データ要素選択生成部１５及びパケッタイザ１６を備える。
【００２４】
画像データ取込部１１は、入力データＤ１をそのまま画像データバッファ１２へ格納する。例えば、画像データ取込部１１は、入力データＤ１である８ビット幅の画素データ単位に画像データバッファ１２へ格納する。すなわち、画像データ取込部１１は、外部から入力されるデータ列に含まれる複数のデータ要素を画像データバッファ１２に格納するデータ格納部である。また、画像データ取込部１１は、画像データバッファ１２に４画素分のデータを格納する度に、その旨を圧縮データサイズ試算部１３へ通知する。これにより、圧縮データ試算処理以降の処理が少なくとも４画素分のデータ格納毎に実行される。
【００２５】
画像データバッファ１２は、リングバッファ形式の記憶部である。ここでは、画像データバッファ１２は、３６バイトであるものとする。そして、３６バイト(２８８ビット)のデータ出力端子を持つことで全てのアドレスのデータがデータ出力端子から同時に出力できるものとする。なお、画像データバッファ１２は、４画素（４バイト）を１ブロックとして、８つのブロック領域を有する。つまり、画像データバッファ１２は、複数のデータ要素をＮ個（Ｎは２以上の自然数）ごとに格納する複数のブロック領域を有する記憶部である。
【００２６】
圧縮データ要素生成エンジン１４は、複数のデータ圧縮方式の処理ロジックが実装され、所定数の画素データから所定のデータ圧縮方式により圧縮データを生成するものである。ここでは、圧縮データ要素生成エンジン１４は、データ圧縮方式の処理ロジックとして、ＤＰＣＭ隣接差分１４１、既定パターン適合１４２及び過去データ参照１４３を有するものとする。尚、これら３種類のデータ圧縮方式の具体的な内容については、後述する。
【００２７】
また、圧縮データ要素生成エンジン１４は、画像データバッファ１２から１ブロック分の画素データを取得し、取得した画素データのそれぞれに対して、３つのデータ圧縮方式におけるデータ圧縮時のデータサイズを算出する。但し、画像データバッファ１２とは３６バイト（２８８ビット）の信号線により接続されていることで、最大では９ブロック分全ての３６バイトのデータを１サイクルで同時に取得できる。また、データ圧縮方式は、これに限定されない。例えば、圧縮データ要素生成エンジン１４は、少なくとも２以上のデータ圧縮方式の処理ロジックを有していれば良く、また、上述した３つのデータ圧縮方式以外を含んでも構わない。
【００２８】
圧縮データサイズ試算部１３は、圧縮データ要素生成エンジン１４を使用して、１ブロック当たりに、各データ圧縮方式による圧縮時のデータサイズを試算する。すなわち、圧縮データサイズ試算部１３は、ブロック領域に格納されたＮ個のデータ要素に対して複数の圧縮方式のそれぞれにより圧縮データを生成した場合のデータ長を当該ブロック単位に試算する圧縮データサイズ試算部である。
【００２９】
圧縮データ要素選択生成部１５は、圧縮データサイズ試算部１３により試算されたデータサイズを基にして、当該ブロックにおいて最もデータサイズが小さくなるデータ圧縮方式を選択し、圧縮データ要素生成エンジン１４を使用して選択した圧縮方式での圧縮値を生成する。ここで、圧縮データ要素選択生成部１５が選択した圧縮方式が上述した所定の圧縮方式となる。
【００３０】
ここで、圧縮データ要素生成エンジン１４は、圧縮データサイズ試算部１３による試算の際に生成したデータを用いて、圧縮値を生成しても良い。すなわち、圧縮データ要素生成エンジン１４は、試算するために、ブロック領域に格納されたＮ個のデータ要素から複数の圧縮方式のそれぞれに対応する複数の変換データを生成する。ここで、変換データとは、最終的な圧縮データそのものではなく、少なくとも当該データ圧縮方式における中間データ等である。例えば、圧縮対象の画素データと隣接画素との差分値等である。そして、圧縮データサイズ試算部１３は、生成された複数の変換データを画像データバッファ１２とは異なる所定の記憶領域（不図示）に一時的に格納する。その後、圧縮データ要素選択生成部１５は、選択された圧縮方式に対応付けられた変換データを記憶領域から取得し、当該取得した変換データを用いて前記圧縮データを生成する。これにより、圧縮データ要素選択生成部１５は、３種類のデータ圧縮方式におけるそれぞれ全ての圧縮処理を実行することなく最適な方式を選択することができる。さらに、圧縮データ要素選択生成部１５は、圧縮データサイズ試算処理により生成された変換データを用いることができるため、再度、画素データから圧縮データを生成することに比べて、圧縮処理における処理効率を高めることができる。
【００３１】
パケッタイザ１６は、生成された圧縮データを圧縮データ要素選択生成部１５から取得して、制御コードのデータと結合して、一つのパケットデータである出力データＤ２としてバス上へ送信する。なお、その際の取得についても前述の記憶領域のデータを共有のものとして用いてもよい。
【００３２】
すなわち、圧縮データ要素選択生成部１５及びパケッタイザ１６は、複数の圧縮方式のうち圧縮データサイズ試算部１３により試算したデータ長が最小となる圧縮方式を選択し、ブロックに含まれるＮ個のデータ要素に対して、当該選択された圧縮方式により圧縮データを当該ブロック単位に生成し、当該選択された圧縮方式に対応し、かつ、当該ブロック領域に格納されたデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加する圧縮データ生成部である。
【００３３】
図２は、本発明の実施の形態１にかかる入力データの処理タイミングを説明するための図である。具体的には、一つのブロックに格納するデータの数を４とした時に、圧縮データサイズ試算部１３から圧縮データ要素選択生成部１５及びパケッタイザ１６までの処理の実行を４ピクセルクロック（４サイクル）で行うように実施した時のタイミングの例である。ただし、内部の処理は、ピクセルクロックよりも高速なサイクルで動作するクロックを基準として動作させるものとする。
【００３４】
図３は、本発明の実施の形態１にかかる画像圧縮処理の流れを示すフローチャートである。まず、画像データ取込部１１は、外部から入力された画素データを取り込み、画像データバッファ１２へ格納する（Ｓ１０１）。次に、画像データ取込部１１は、画像データバッファ１２に格納済みの未処理の画素数が４であるか、又は、未処理の画素数が４未満であってもＤＡＴＡ  ＥＮＡＢＬＥがＯＦＦであるか否かを判定する（Ｓ１０２）。尚、ＤＡＴＡ  ＥＮＡＢＬＥとは、入力データＤ１において以降に処理可能なデータ要素の存在を示す値である。例えば、画像データ取込部１１は、入力データＤ１が１画面における最終画素であると判定した場合を、ＤＡＴＡ  ＥＮＡＢＬＥがＯＦＦであるものとする。
【００３５】
ステップＳ１０２において、未処理の画素数が４又は未処理の画素数が４未満であってもＤＡＴＡ  ＥＮＡＢＬＥがＯＦＦであると判定した場合、圧縮データサイズ試算部１３は、画像データバッファ１２に格納済みの４画素に対して、３つの各データ圧縮方式で圧縮した場合の圧縮率を試算する（Ｓ１０３）。つまり、圧縮データ要素生成エンジン１４は、バッファへ格納された定まった複数個の連続画素をまとめて一つのブロックとした場合のサイズをデータ圧縮方式毎に試算する。
【００３６】
そして、圧縮データ要素選択生成部１５は、最も圧縮率の高いデータ圧縮方式により圧縮データを生成する（Ｓ１０４）。その後、パケッタイザ１６は、生成した圧縮データをバス上で伝送する（Ｓ１０５）。このとき、パケッタイザ１６は、圧縮データの生成に用いられたデータ圧縮方式に対応する制御コードを当該圧縮データに付加して伝送する。また、制御コードには、当該圧縮データに４画素が含まれていることを示す情報が含まれているものとする。これにより、複数の画素データを１ブロックとして１つの制御コードを付した圧縮データを伝送することができ、圧縮効率を高めることができる。
【００３７】
ステップＳ１０２において、未処理の画素数が４未満であり、かつ、ＤＡＴＡ  ＥＮＡＢＬＥがＯＮであると判定した場合、並びに、ステップＳ１０６において、ＤＡＴＡ  ＥＮＡＢＬＥがＯＮであると判定した場合、ステップＳ１０１へ戻る（Ｓ１０６）。
【００３８】
次に、図４を用いて、画像伸張側の構成を説明する。図４は、本発明の実施の形態１にかかる画像伸張装置２００の構成を示すブロック図である。画像伸張装置２００は、外部から入力データＤ３を入力し、入力データＤ３に含まれる制御コードに基づいてデータ圧縮方式を特定し、特定したデータ圧縮方式によりデータを復号して出力データＤ４として出力する。ここで、入力データＤ３は、本発明の実施の形態１にかかる伝送コードの形式による圧縮データのデータ列である。また、入力データＤ３には、圧縮データ及び制御コードがパケット単位に含まれるものとする。
【００３９】
画像伸張装置２００は、圧縮データ取込部２１、画像データバッファ２２、データ要素復号部２３、圧縮データ要素復号エンジン２４及び画素値再生出力部２５を備える。圧縮データ取込部２１は、外部から入力された入力データＤ３をそのままバッファ（不図示）へ格納する。ここで、入力データＤ３の１ブロック当たりのパケットサイズは、最大で３６ビットである。
【００４０】
画像データバッファ２２は、図１の画像データバッファ１２と同等のリングバッファ形式の記憶部である。ここでは、画像データバッファ２２は、３６バイトであるものとする。また、画像データバッファ２２には、復号後から少なくとも伝送前まで復号されたデータが格納される。
【００４１】
データ要素復号部２３は、入力データＤ３に含まれる制御コードに応じて、各ブロックで使用していたデータ圧縮方式を選択し、選択したデータ圧縮方式によりブロックから４画素分のデータ要素を取り出す。そして、データ要素復号部２３は、取り出したデータ要素と選択したデータ圧縮方式を示す情報とを圧縮データ要素復号エンジン２４へ通知する。
【００４２】
圧縮データ要素復号エンジン２４は、複数のデータ復号方式の処理ロジックが実装され、所定のデータブロックから所定のデータ復号方式によりデータを復号するものである。ここでは、圧縮データ要素復号エンジン２４は、データ復号方式の処理ロジックとして、ＤＰＣＭ隣接差分２４１、既定パターン適合２４２及び過去データ参照２４３を有するものとする。尚、ＤＰＣＭ隣接差分２４１、既定パターン適合２４２及び過去データ参照２４３は、それぞれ、データ圧縮方式であるＤＰＣＭ隣接差分１４１、既定パターン適合１４２及び過去データ参照１４３に対応する復号方式である。
【００４３】
画素値再生出力部２５は、圧縮データ要素復号エンジン２４を使用して、データ要素復号部２３により取り出された４画素分のデータ要素に対して、選択されたデータ圧縮方式に基づき復号を行う。このとき、圧縮データ要素復号エンジン２４は、画素値再生出力部２５からの指示に応じて、データ要素復号部２３から通知されたデータ圧縮方式に基づき、４画素分のデータ要素を復号し、画像データバッファ２２へ格納する。そして、画素値再生出力部２５は、圧縮データ要素復号エンジン２４を介して画像データバッファ２２から復号後のデータを読み出し、４つの原画素値へと復元再生して、出力データＤ４として出力する。
【００４４】
尚、図１及び図４における各構成要素及び部品はソフトウェアにより構成されても良い。また、画像圧縮装置１００及び画像伸張装置２００の全てをプログラムにより実施することも出来る。
【００４５】
図５は、本発明の実施の形態１にかかる画像伸張処理の流れを示すフローチャートである。まず、圧縮データ取込部２１は、入力された圧縮データ（パケット）である入力データＤ３を取り込み、画像データバッファ２２へ格納する（Ｓ２０１）。次に、データ要素復号部２３は、画像データバッファ２２に格納済みのパケットの先頭部の制御コードフィールドを参照して、データ圧縮方式を判定する（Ｓ２０２）。
【００４６】
そして、圧縮データ要素復号エンジン２４は、判定されたデータ圧縮方式によりパケットのデータを４つの画素値へと復号し、復号済みデータを画像データバッファ２２へ格納する（Ｓ２０３）。画素値再生出力部２５は、復号した画素データを画像データバッファ２２からバス上へ出力データＤ４として出力及び伝送する（Ｓ２０４）。
【００４７】
本発明の実施の形態１は、複数のデータ圧縮方式のいずれかを用いてデータの圧縮を行うものである。ここで、データ圧縮方式として、「ＤＰＣＭ隣接差分（以下、単に、「隣接差分」と呼ぶ）」「既定パターン適合」「過去データ参照」の各方式を用いる。また、圧縮対象とするデータの内容に応じて適用する可逆圧縮のアルゴリズム（データ圧縮方式）をブロック毎に動的に切り替えている。
【００４８】
切り替えをするための具体的な手順としては、先ず、各データ圧縮方式について、それぞれの方式による圧縮率を事前に理論値として算出して、各方式の中で最も理論圧縮率の高い方式を用いるように、使用する方式を各ブロック（４画素）毎で選択し、随時適用するデータ圧縮方式を切り替えながら、各ブロックにとって最適な方式による圧縮及び伸張を行う。これは、各ブロックの先頭に付加する制御コードの値を変化させることによって実現している。
【００４９】
以下に、それぞれのデータ圧縮方式について具体例を交えて説明する。まず、隣接差分方式について説明する。隣接差分方式は、本発明において基本となるものである。隣接差分方式は、直前の画素から当該画素の値を減算して得られた値をそれぞれの画素毎に算出して、その値をブロック内へ格納する方式である。本発明の実施の形態１にかかる隣接差分方式では、４画素分のデータをまとめて一つのブロックとして伝送し、その際、先頭には制御コードを付加するものとする。
【００５０】
一つのブロックとしてまとめる連続画素の数が４つであれば、画素データが４つ集まった段階から圧縮処理を開始することが可能である。そのため、大量のデータが蓄積されるのを待たずに、画像の水平１ライン分にも達しない４画素分のデータしか用意できていない段階から圧縮処理をすることが可能である。また、新たなデータとして４画素分のデータが用意できた段階で次の圧縮処理を開始することができる。そのため、即応性のある圧縮伸張処理を実現できる。
【００５１】
ここで、隣接差分方式の特徴を以下に記す。まず、一つのブロックは必ず上記のフォーマットで伝送される。また、制御コードによって、画素値データ領域のサイズが変化できる。ただし、同一ブロック内に含まれた各画素値データを格納する領域のサイズは４つとも同一のサイズとする。領域のサイズはブロック毎に０ビット〜８ビットの範囲で可変とする。ただし、４つとも同一のサイズとなるように補正される。
【００５２】
また、領域のサイズは、そのブロックで最大サイズの画素値データが格納できるように決定する。各領域が何ビットのサイズであるかは制御コードによって特定できる。すなわち、連続する４画素の差分値のうち、最もビット長が大きい差分値が当該ブロック（４画素分）の制御コードを決定する。ここで、ビット長の大小は、２進数で表現した場合に"１"の最上位桁で判断するものとする。そのため、差分値Ａが"０００１００００"であり、差分値Ｂが"００００１１１１"である場合、差分値Ａのビット長が"５"、差分値Ｂのビット長が"４"であるため、差分値Ａのビット長が大きいと判断される。そして、例えば、最大のビット長が３ビットであるとすると、ビット長が各３ビットであることを示す制御コードが先頭に付加され、その後にビット長が３ビット単位に補正された４画素の差分値が４個連続して追加される。
【００５３】
図６は、本発明の実施の形態１にかかる隣接差分方式による圧縮処理の流れを示すフローチャートである。まず、連続画素数ｎを１に初期化する（Ｓ１１１）。次に、バッファの圧縮対象のブロックである現在ブロックからｎ画素目のデータを取得する（Ｓ１１２）。そして、直前の画素との差分値を算出する（Ｓ１１３）。ここで、連続画素数ｎが４以上か否かを判定する（Ｓ１１４）。尚、ここでは、上述した画像圧縮装置１００に合わせて連続画素数ｎの上限値を４としているが、隣接差分方式では、これに限定されない。
【００５４】
ステップＳ１１４において、連続画素数ｎが４未満であると判定した場合、連続画素数ｎに１加算して、ステップＳ１１２へ戻る（Ｓ１１５）。ステップＳ１１４において、連続画素数ｎが４以上であると判定した場合、算出した差分値のうちビット長の最大値を特定する（Ｓ１１６）。そして、他の差分値のビット長を最大値に合わせて補正する（Ｓ１１７）。例えば、最大値が３ビットである場合、差分値が１ビットの画素については、上位２ビットに０を追加して３ビットのデータに補正する。その後、特定した最大値及び補正後の差分値に、制御コードを付加して圧縮データを生成する（Ｓ１１８）。当該制御コードは、隣接差分方式であること、連続画素数が４であること及び特定した最大値を特定することができるものとする。
【００５５】
尚、図６に示す圧縮処理を画像圧縮装置１００に隣接差分方式を適用する場合には、まず、圧縮データサイズ試算部１３がステップＳ１１６まで実行し、特定した最大値に基づき圧縮データのビット長を試算する。例えば、特定した最大値が３ビットである場合、連続画素数が４であるため、当該ブロックの隣接差分方式における圧縮時のビット長が１２ビットであると試算する。
【００５６】
また、圧縮データサイズ試算部１３は、ステップＳ１１３により算出された各画素における４つの差分値と、その中で特定された最大値と、試算したビット長とを上述した記憶領域に格納する。そして、圧縮データ要素選択生成部１５は、記憶領域に格納された４つの差分値のうち、最大値以外の差分値について、最大値と同じビット長となるように補正する。
【００５７】
尚、図６のステップＳ１１３においては、各画素について直前の画素との差分値を算出しているが、これに限定されず、任意の圧縮値を算出するようにしても構わない。
【００５８】
ここで、４画素分のデータをまとめて一つのブロックとして伝送する場合の例を図７に示す。図７は、本発明の実施の形態１の隣接差分方式における伝送ブロックの例を示す図である。また、以上に説明したブロックが、複数個連続した時のイメージは図８の通りとなる。図８は、本発明の実施の形態１の隣接差分方式における複数の伝送ブロックの例を示す図である。
【００５９】
尚、本発明の実施の形態１にかかる隣接差分方式においては、４画素ともに差分値が０であった場合については差分データの伝送を省略するようにしてもよい。図９は、４画素ともに直前の値と同一で、差分値が０であった場合の伝送ブロックの例を示す図である。各画素の差分データが全て０であることが制御コードのみから明確となるため、このケースの場合に限っては、各画素の差分データの伝送を省略することができる。そのため、ブロックは制御コードのみで構成され、一つの制御コードを伝送することのみで４画素分の情報が伝送される。
【００６０】
また、本発明の実施の形態１においては、４画素ともに元のままの８ビット（１バイト）の値を直接伝送するための制御コードを用いることもできる。図１０は、本発明の実施の形態１にかかる原画素値を直接伝送する場合の伝送ブロックの例を示す図である。
【００６１】
当該制御コードを使用した場合には、４画素とも元のままの値を直接伝送するため、伝送データのサイズは、この時に最も大きくなる。その際の伝送データのサイズとしては、８ビット×４画素分＝３２ビットのデータに４ビットの制御コードを付加して全３６ビットのデータとして直接伝送するため、圧縮率としては３６ビット÷３２ビット＝１．１２５となる。即ち本発明においてはいかなるデータに対する圧縮においても圧縮率が１．１２５を超える値となることはない。
【００６２】
これは、丁度、１画素（８ビット）につき１ビットの制御信号を付加して、圧縮機能のＯＮ／ＯＦＦを切替制御する構成に相当した形となる。そのため、パケッタイザ１６により出力する圧縮データの伝送バス幅を９ビットとすることで、入力データ（８ビット）の伝送レート以上の高速な出力が得られ遅延によるオーバーフローが生じることのない確実なスループットを実現することができる。
【００６３】
以上に説明した本発明の実施の形態１にかかる隣接差分方式を用いることで、比較的同様なサイズの画素データ（或いは差分値データ）が連続する時に、効率的な伝送を行うことが可能となる。また、特許文献１及び２と比較をすると、４つの画素データで制御コードを共通化することによって、４つの画素のうちの、残り３つの画素については制御コードの伝送を行うことなくデータ転送が可能となっている。このため、４つの画素データ間のサイズの差異の合計が、制御コード３つ分のサイズよりも小さい限りにおいては、画素データのサイズが４つそれぞれに異なっている場合であっても特許文献１及び２に比べて効率的に伝送をすることができる。そのため、極端に急激なかけ離れ方をしたデータ並びで無い限りは、各データサイズに多少の差異があっても相応に効率的な伝送を期待することができる。
【００６４】
尚、一つのブロックを構成する画素データの数が４である理由は次の通りである。仮に、一つのブロックを構成する画素データの数が５であり、入力データのビット幅を０〜２５５の範囲に分布可能な８ビットのレンジに限ったデータである場合を前提とする。この場合、各画素データ間のばらつきの具合が大きく見え始めてしまう。例えば、データが"０"，"１"，"２"，"３"、"２５５"という５つであるとする。ここで、"０"，"１"，"２"，"３"の４つのデータについては、小さく区切ってまとめれば、より小さいレンジに格納可能である。しかし、５つ目のデータである"２５５"のサイズが大きいため、隣接差分方式では、他のデータも最大サイズ（"２５５"のビット長である８ビット）のデータに合わせて補正される。そのため、予めこれに合わせて格納可能なレンジ（８ビット×５＝４０ビット）を用意する必要が生じる。よって、データを複数まとめる効果よりも、データサイズのばらつきによる損失（未使用領域）の影響の方が大きく出てきてしまう。
【００６５】
また、仮に、一つのブロックを構成する画素データの数が２であり、二つの画素データ（例えば、"０"と"２５５"など）の間に大きな差分がある場合を前提とする。この場合、他にそれを補完する残りの画像データ（例えば、"２５５"）がもう一つ存在していれば、初めの二つのデータにおける急激なばらつきによる損失を補い、未使用領域の相対的な割合を低下させることができる。しかし、画素データの数が少ないほどそのような補完の効果は働きにくい。よって、このようなケースでの効率の低下が確率的に多くの割合で発生する。
【００６６】
さらに、仮に、一つのブロックを構成する画素データの数が１であった場合には、特許文献１及び２と同じ効果しか得られない。
【００６７】
なお、実験により、一つのブロックを構成する画素データの数を４とした場合には、使用した画像パターンにおいては、以上で取り上げた各条件に対するバランスを最も適切に保つことができることを確認した。以上の理由から実施例においては、一つのブロックを構成する画素データの数を４としている。図１１は、本発明の実施の形態１にかかる画像データバッファ（３６バイト）のイメージを示す図である。
【００６８】
また、具体的な原画像の各画素とそれに対応した実際の伝送コードの例を図１２〜図１７に示す。図１２〜図１７は、本発明の実施の形態１にかかる隣接差分方式での処理及び伝送コードの例を示す図である。図１２には、圧縮対象となる原画像データ（６×３のサイズ）における各画素の画素値を示す。例えば、画素１は、画素値が"２００"であり、画素２は、画素値が１７０である。そして、画素１、画素２、・・・、画素１８の順で画像圧縮装置１００に入力されるものとする。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。
【００６９】
図１３では、画像データ取込部１１は、２画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素２を格納する。併せて、現在ブロックの２画素目に画素１のデータが移動する。
【００７０】
図１４では、画素１〜画素４が画像データバッファ１２の現在ブロックに格納された状態を示す。そして、圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、画素１に対する直前画素が存在しないため、差分値を算出できない。よって、圧縮データ要素選択生成部１５は、画素１〜画素４の画素値を直接値１〜直接値４としてそのまま圧縮データとし、制御コードを付加したものを伝送コードとして生成する。
【００７１】
続いて、画像データ取込部１１が画素５〜画素７を画像データバッファ１２に取り込む間は、未処理の画素が４未満であり、末端でないため、圧縮データの生成が行われない。図１５では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。このとき、画素１〜画素４については、ＩＮＤＥＸが"０"である過去ブロックに格納されている。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素５と直前の画素である画素４との差分値を"０"と算出し、同様に、画素６、画素７及び画素８についても、差分値を"−２０"、"＋１０"及び"＋２０"と算出する。そして、画素５〜画素８の差分値の中からビット長が最大となるものを特定し、特定された最大値に合わせて他の差分値を補正する。そして、圧縮データ要素選択生成部１５は、画素５〜画素８の補正後の差分値を圧縮データとし、制御コードを付加したものを伝送コードとして生成する。
【００７２】
図１６では、画素９〜画素１２が画像データバッファ１２の現在ブロックに格納された状態を示す。このとき、画素１〜画素４については、ＩＮＤＥＸが"１"である過去ブロックに格納されており、画素５〜画素８については、ＩＮＤＥＸが"０"である過去ブロックに格納されている。また、画素９〜画素１２に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素９と直前の画素である画素８との差分値を"０"と算出し、同様に、画素１０、画素１１及び画素１２についても、差分値を"０"、"０"及び"０"と算出する。このとき、画素９〜画素１２の差分値が全て"０"であるため、圧縮データ要素選択生成部１５は、制御コードのみを伝送コードとして生成する。
【００７３】
図１７では、原画像データの全ての画素値が取り込み完了した場合を示す。つまり、画像データバッファ１２の現在ブロックには、画素１７及び画素１８が格納されていることを示す。このとき、画素１〜画素４については、ＩＮＤＥＸが"３"である過去ブロックに格納されており、画素１３〜画素１６については、ＩＮＤＥＸが"０"である過去ブロックに格納されている。また、画素１７及び画素１８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素選択生成部１５は、有効データが２画素であることを示すサブコード及び画素１７及び画素１８の直接値を含めて圧縮データとし、最終ブロックであることを特定する制御コードを付加したものを伝送コードとして生成する。
【００７４】
次に、既定パターン適合方式について説明する。上述した隣接差分方式は、画像データの圧縮及び伸張に関して、写真などの自然画像や文字などの人工画像を問わず、あらゆる種類の画像を対象として処理を行うことができる。しかし、本発明の実施の形態１では、その中で特に予め用意した特定のパターンにマッチする画像をより効果的に圧縮するために、既定パターン適合方式を用いる。
【００７５】
既定パターン適合方式についても、ブロック単位で伝送を行う。既定パターン適合方式は、画素データの値の変化のパターンを既定パターンとして予め用意する。そして、圧縮対象のブロックにおける画素データの値の変化のパターンが既定パターンに適合するか否かを検出する。そして、適合する既定パターンとの差分値をパラメータ値として算出し、当該パラメータ値と既定パターンの種別を特定する値とを圧縮データとして制御コードを付加して伝送するものである。
【００７６】
ここで、既定パターン適合方式の特徴を以下に記す。まず、４画素分のデータをまとめて一つのブロックとして伝送する。その際、先頭には既定パターン適合方式であることを示す制御コードを付加する。また、４つの画素について、既定のデータ列の値の変化パターン（既定パターン）との差分を算出し、その値をパラメータ値として伝送する。既定パターンとしては、文字や罫線などを想定した人工画像向けのタイプと、滑らかに変化するグラデーションを想定した自然画像向けのタイプの二つのタイプを例とする。尚、両タイプとも、それぞれにいくつかの既定パターンを用意しているが、人工画像タイプの変化パターンでは、全ての変化パターンが一段階の画素変化をするもので、自然画像タイプの変化パターンでは全ての変化パターンが二段階に画素変化をするものとしている。
【００７７】
図１８は、本発明の実施の形態１にかかる既定パターン適合方式による圧縮処理の流れを示すフローチャートである。まず、現在ブロックの画素データと既定パターンとを比較する（Ｓ１２１）。このとき、既定パターンが複数存在する場合、全ての既定パターンについての比較を行う。次に、既定パターンに適合するか否かを判定する（Ｓ１２２）。このとき、複数の既定パターンに適合する場合には、それらの中から最も適合する既定パターンを選択する。既定パターンに適合すると判定した場合、適合する既定パターンにおけるパラメータ値を算出する（Ｓ１２３）。そして、算出したパラメータ値及び適合する既定パターンを特定するＩＤに、制御コードを付加して圧縮データを生成する（Ｓ１２４）。
【００７８】
尚、図１８に示す圧縮処理を画像圧縮装置１００に既定パターン適合方式を適用する場合には、まず、圧縮データサイズ試算部１３がステップＳ１２３まで実行し、算出したパラメータ値及び適合する既定パターンを特定するＩＤに基づき圧縮データのビット長を試算する。
【００７９】
また、圧縮データサイズ試算部１３は、ステップＳ１２３により算出されたパラメータ値と、適合する既定パターンを特定するＩＤと、試算したビット長とを上述した記憶領域に格納する。そして、圧縮データ要素選択生成部１５は、既定パターン適合方式が選択された場合、記憶領域に格納されたパラメータ値と、適合する既定パターンを特定するＩＤとを用いて、ステップＳ１２４を実行する。
【００８０】
ここで、上述した既定パターンは、特定のデータ列の特徴と呼ぶことができる。そのため、既定パターン適合方式は、ブロックに含まれるＮ個のデータ要素が特定のデータ列の特徴を有するか否かを判定し、特定のデータ列の特徴を有すると判定した場合、Ｎ個のデータ要素と当該特定のデータ列との差分を可逆に表現する特徴値を算出し、特徴値をブロックにおける圧縮データとするものである。そして、既定パターン適合方式における制御コードは、特定のデータ列をさらに特定するものである。
【００８１】
また、人工画像タイプのパターンで４画素分のデータをまとめて一つのブロックとして伝送する伝送フォーマットを図１９に示す。図１９は、本発明の実施の形態１にかかる人工画像タイプのパターンでの伝送コードの具体的な例を示す図である。図１９では、制御コードによって人工画像タイプのパターンであることを示し、ＳＵＢコードによって、既定パターンのうち、どのパターンで変化するタイプの画素データであるのかを指定する。そして続く８ビットのパラメータ値によって、指定した既定パターンで変化する時の、変化の割合を指定する。
【００８２】
また、自然画像タイプのパターンでの伝送フォーマットを下記に示す。図２０は、本発明の実施の形態１にかかる自然画像タイプのパターンでの伝送コードの具体的な例を示す図である。図２０では、制御コードによって自然画像タイプのパターンであることを示し、ＳＵＢコードによって、既定パターンのうち、どのパターンで変化するタイプの画素データであるのかを指定する。そして続く２つの４ビットのパラメータ値によって、指定した既定パターンで変化する時の、変化の割合を指定する。
【００８３】
続いて、人工画像タイプ及び自然画像タイプそれぞれの具体的なパターンを示す。まず、人工画像タイプの具体的なパターンを以下に示す。人工画像タイプのパターンは、エッジ信号やレベル信号に相当する信号変化に対応したパターンである。
【００８４】
図２１は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（１）を示す図である。人工画像タイプのパターンの例（１）は、まず、１画素目にパラメータ値で指定した量の画素値の変化（差分）が生じ、２画素目にはパラメータ値で指定する量の逆符号の差分値の変化をして元通りとなり、３画素目、４画素目はそのまま差分に変化が無く、２画素目と同一の画素値が継続するパターンである。
【００８５】
図２２及び図２３は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（１）での伝送データの例を示す図である。図２２には、圧縮対象となる原画像データ（８×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【００８６】
図２３では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素５と直前の画素である画素４との差分値を"＋１２０"と算出し、画素６〜画素８の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図２１に示した既定パターンに適合すると判定する。そして、パラメータ値を"＋１２０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素２４まで処理を続ける。
【００８７】
図２４は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（２）を示す図である。人工画像タイプのパターンの例（２）は、まず、１画素目は前画素と同一で変化が無く、２画素目はパラメータ値で指定する量の画素値の変化（差分）が生じ、その後の３画素目は２画素目との差分が無く、２画素目と同一の画素値が継続するが、最後の４画素目はパラメータ値で指定した量の逆符号の差分値の変化をして元通りとなり１画素目と同一の画素値となるパターンである。
【００８８】
図２５及び図２６は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（２）での伝送データの例を示す図である。図２５には、圧縮対象となる原画像データ（８×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【００８９】
図２６では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素６と直前の画素である画素５との差分値を"＋１２０"と算出し、画素８と直前の画素である画素７との差分値を"―１２０"と算出し、その他の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図２４に示した既定パターンに適合すると判定する。そして、パラメータ値を"＋１２０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素２４まで処理を続ける。
【００９０】
図２７は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（３）を示す図である。人工画像タイプのパターンの例（３）は、まず、１画素目は前画素と同一で変化が無く、２画素目はパラメータ値で指定する量の画素値の変化（差分）が生じ、その後、３画素目、４画素目は２画素目との差分が無く、２画素目と同一の画素値が継続するパターンである。
【００９１】
図２８及び図２９は、本発明の実施の形態１にかかる人工画像タイプのパターンの例（３）での伝送データの例を示す図である。図２８には、圧縮対象となる原画像データ（１２×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【００９２】
図２９では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素６と直前の画素である画素５との差分値を"＋１２０"と算出し、画素５、画素７及び画素８の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図２７に示した既定パターンに適合すると判定する。そして、パラメータ値を"＋１２０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素３６まで処理を続ける。
【００９３】
次に、自然画像タイプの具体的なパターンを以下に示す。自然画像タイプのパターンは、二段階に変化する信号に対応したパターンである。全てのパターンにおいて二種類の異なる変化差分量を表現可能である。
【００９４】
図３０は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（１）を示す図である。自然画像タイプのパターンの例（１）は、まず、１画素目にパラメータ１で指定する量の画素値の変化（差分）が生じ、その後、２画素目、３画素目は１画素目の時と同様の画素値をとり、４画素目はパラメータ２で指定する量の画素値の変化（差分）が生じるパターンである。
【００９５】
図３１及び図３２は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（１）での伝送データの例を示す図である。図３１には、圧縮対象となる原画像データ（１２×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【００９６】
図３２では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素５と直前の画素である画素４との差分値を"＋５"と算出し、画素８と直前の画素である画素７との差分値を"＋１０"と算出し、画素６及び画素７の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図３０に示した既定パターンに適合すると判定する。そして、パラメータ値１を"＋５"、パラメータ値２を"＋１０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値１及びパラメータ値２と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素３６まで処理を続ける。
【００９７】
図３３は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（２）を示す図である。自然画像タイプのパターンの例（２）は、まず、１画素目にパラメータ１で指定する量の画素値の変化（差分）が生じ、その後、２画素目も１画素目の時と同様の画素値をとり、３画素目はパラメータ２で指定する量の画素値の変化（差分）が生じ、４画素目は３画素目と同様の画素値をとるパターンである。
【００９８】
図３４及び図３５は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（２）での伝送データの例を示す図である。図３４には、圧縮対象となる原画像データ（１２×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【００９９】
図３５では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素５と直前の画素である画素４との差分値を"＋５"と算出し、画素７と直前の画素である画素６との差分値を"＋１０"と算出し、画素６及び画素８の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図３３に示した既定パターンに適合すると判定する。そして、パラメータ値１を"＋５"、パラメータ値２を"＋１０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値１及びパラメータ値２と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素３６まで処理を続ける。
【０１００】
図３６は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（３）を示す図である。自然画像タイプのパターンの例（３）は、まず、１画素目にパラメータ１で指定する量の画素値の変化（差分）が生じ、その後、２画素目はパラメータ２で指定する量の画素値の変化（差分）が更に生じ、３画素目と４画素目は２画素目と同様の画素値をとるパターンである。
【０１０１】
図３７及び図３８は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（３）での伝送データの例を示す図である。図３７には、圧縮対象となる原画像データ（１２×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【０１０２】
図３８では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素５と直前の画素である画素４との差分値を"＋５"と算出し、画素６と直前の画素である画素５との差分値を"＋１０"と算出し、画素７及び画素８の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図３６に示した既定パターンに適合すると判定する。そして、パラメータ値１を"＋５"、パラメータ値２を"＋１０"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値１及びパラメータ値２と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素３６まで処理を続ける。
【０１０３】
図３９は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（４）を示す図である。自然画像タイプのパターンの例（４）は、まず、１画素目は前画素と同一で変化が無く、２画素目にパラメータ１で指定する量の画素値の変化（差分）が生じ、３画素目は２画素目の時と同様の画素値をとり、その後、４画素目はパラメータ２で指定する量の画素値の変化（差分）が更に生じるパターンである。
【０１０４】
図４０及び図４１は、本発明の実施の形態１にかかる自然画像タイプのパターンの例（４）での伝送データの例を示す図である。図４０には、圧縮対象となる原画像データ（１２×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【０１０５】
図４１では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、画素６と直前の画素である画素５との差分値を"＋２０"と算出し、画素８と直前の画素である画素７との差分値を"＋５"と算出し、画素５及び画素７の差分値を"０"と算出する。よって、画素５〜画素８の値の変化のパターンが図３９に示した既定パターンに適合すると判定する。そして、パラメータ値１を"＋２０"、パラメータ値２を"＋５"とする。そして、圧縮データ要素選択生成部１５は、ＳＵＢコードに当該既定パターンのＩＤを指定して、パラメータ値１及びパラメータ値２と共に圧縮データとし、制御コードを付加したものを伝送コードとして生成する。また、以降、画素９〜画素３６まで処理を続ける。
【０１０６】
続いて、過去データ参照方式について説明する。本発明の実施の形態１では、過去に処理したデータと同様なパターンを持つデータを効率的に圧縮するために、過去データ参照方式を用いる。
【０１０７】
過去データ参照方式は、用意した画像データバッファへ過去数ブロック分の画素値（または差分値）をブロック毎に保存しておき、そのうちの一つの過去ブロックを選択して、その中にある４つの各画素値（または差分値）を予測画素値（または予測差分値）としたとき、その値と現在画素値（または現在差分値）との差分のサイズが最も小さくなる過去ブロックを予測ブロックとして選択して、それを予測画素ブロック（または予測差分ブロック）としてそれとの差分を格納した予測誤差ブロックを伝送する方式である。
【０１０８】
ここで、過去データ参照方式の特徴を以下に記す。まず、４画素分のデータをまとめて一つのブロックとして伝送する。その際、先頭には制御コードを付加する。また、画像データバッファへ保存するデータは、画素値ではなく差分値であってもよく、過去の差分値に対する差分を伝送してもよい。
【０１０９】
図４２は、本発明の実施の形態１にかかる過去データ参照方式による圧縮処理の流れを示すフローチャートである。まず、現在ブロックの画素データと過去ブロックとを比較する（Ｓ１３１）。このとき、過去ブロックが複数存在する場合、全ての過去ブロックについての比較を行う。次に、過去ブロックに適合するか否かを判定する（Ｓ１３２）。このとき、複数の過去ブロックに適合する場合には、それらの中から最も適合する過去ブロックを選択する。過去ブロックに適合すると判定した場合、適合する過去ブロックに対応する画素ごとに差分値を算出する（Ｓ１３３）。そして、算出した差分値及び適合する過去ブロック番号に、制御コードを付加して圧縮データを生成する（Ｓ１３４）。
【０１１０】
尚、図４２に示す圧縮処理を画像圧縮装置１００に過去データ参照方式を適用する場合には、まず、圧縮データサイズ試算部１３がステップＳ１３３まで実行し、算出した差分値及び適合する過去ブロック番号のビット長に基づき圧縮データのビット長を試算する。
【０１１１】
また、圧縮データサイズ試算部１３は、ステップＳ１３３により算出された差分値と、適合する過去ブロック番号と、試算したビット長とを上述した記憶領域に格納する。そして、圧縮データ要素選択生成部１５は、過去データ参照方式が選択された場合、記憶領域に格納された差分値と、適合する過去ブロック番号とを用いて、ステップＳ１３４を実行する。
【０１１２】
言い換えると、過去データ参照方式は、ブロックに含まれるＮ個のデータ要素が過去に圧縮データが生成された過去ブロックにおけるＮ個のデータ要素の特徴を有するか否かを判定し、過去ブロックの特徴を有すると判定した場合、Ｎ個のデータ要素と当該過去ブロックとの差分を可逆に表現する特徴値を算出し、特徴値を前記ブロックにおける圧縮データとするものである。そして、過去データ参照方式における制御コードは、過去ブロックをさらに特定するものである。
【０１１３】
ここで、過去データ参照方式での伝送フォーマットを図４３に示す。図４３は、本発明の実施の形態１にかかる過去データ参照方式での伝送コードの例を示す図である。図４３では、制御コードによって過去データ参照方式であることを示し、ＳＵＢコードによって、過去ブロックのＩＮＤＥＸを番号で指定する。そして続く４つの差分値によって、指定した過去ブロックにおける対応する画素との変化の割合を指定する。
【０１１４】
続いて、過去データ参照方式での具体的な原画像の各画素値と、それに対応した実際の伝送コードの例を図４４〜図４７示す。図４４〜図４７は、本発明の実施の形態１にかかる過去データ参照方式での処理及び伝送コードの例を示す図である。図４４には、圧縮対象となる原画像データ（６×３のサイズ）における各画素の画素値を示す。ここで、画像データ取込部１１は、１画素目を取り込み、画像データバッファ１２の現在ブロックの１画素目に画素１を格納する。続いて、画素２以降が画像データバッファ１２に格納される。その際、画素１〜画素４については、図１４と同様に、圧縮データとして直接値１〜直接値４が伝送される。
【０１１５】
図４５では、画素５〜画素８が画像データバッファ１２の現在ブロックに格納された状態を示す。また、画素５〜画素８に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、現在ブロックに格納された画素５〜画素８と、ＩＮＤＥＸが"０"である過去ブロックに格納された画素１〜画素４とを比較し、対応する画素ごとに差分値を算出する。ここでは、画素５〜画素８のそれぞれの差分値を"＋１０"、"＋２０"、"−１０"及び"＋１０"と算出する。また、ＳＵＢコードである過去ブロック番号"０"とする。そして、圧縮データ要素選択生成部１５は、画素５〜画素８の差分値とＳＵＢコードを圧縮データとし、制御コードを付加したものを伝送コードとして生成する。
【０１１６】
図４６では、画素１３〜画素１６が画像データバッファ１２の現在ブロックに格納された状態を示す。このとき、画素１〜画素４については、ＩＮＤＥＸが"２"である過去ブロックに格納されており、画素９〜画素１２については、ＩＮＤＥＸが"０"である過去ブロックに格納されている。また、画素１３〜画素１６に対する圧縮データが生成され、伝送される場合の伝送コードの例を示す。ここでは、圧縮データ要素生成エンジン１４は、現在ブロックに格納された画素１３〜画素１６と、ＩＮＤＥＸが"０"〜"２"の過去ブロック毎に格納された画素とを比較し、対応する画素ごとに差分値を算出する。ここでは、最も差分値の合計が小さい過去ブロックが"０"となる。具体的には、画素１３〜画素１６のそれぞれの差分値を"＋１"、"＋１"、"＋１"及び"＋１"と算出する。また、ＳＵＢコードである過去ブロック番号"２"とする。そして、圧縮データ要素選択生成部１５は、画素１３〜画素１６の差分値とＳＵＢコードを圧縮データとし、制御コードを付加したものを伝送コードとして生成する。
【０１１７】
図４７では、図１７と同様に、原画像データの全ての画素値が取り込み完了した場合を示す。ここでは、圧縮データ要素選択生成部１５は、有効データが２画素であることを示すサブコード及び画素１７及び画素１８の直接値を含めて圧縮データとし、最終ブロックであることを特定する制御コードを付加したものを伝送コードとして生成する。
【０１１８】
ここで、本発明の実施の形態１において、使用する制御コードの例を図４８に示す。ＣＯＤＥ０〜ＣＯＤＥ７は、隣接差分方式に対応する制御コードである。ＣＯＤＥ８は、圧縮を行わずに画素値をそのまま伝送する場合の制御コードである。ＣＯＤＥ９及びＣＯＤＥ１０は、過去データ参照方式に対応する制御コードである。ＣＯＤＥ１１及びＣＯＤＥ１２は、既定パターン適合方式に対応する制御コードである。ＣＯＤＥ１５は、画像データの末端であるため、１ブロックが４画素未満となった場合に対応する制御コードである。
【０１１９】
ＣＯＤＥ１１を用いて既定パターンでの伝送をするときの伝送データの構造は、図１９に示したものである。また、ＣＯＤＥ１２を用いて既定パターンでの伝送をするときの伝送データの構造は、図２０に示したものである。また、ＣＯＤＥ９を用いて過去ブロックとの差分データ（各画素の差分値が３ビットである場合）を伝送するときの伝送データの構造は図４９に示したものである。また、ＣＯＤＥ１０を用いて過去ブロックとの差分データ（各画素の差分値が６ビットである場合）を伝送するときの伝送データの構造は図５０に示したものである。
【０１２０】
以上のように、本発明の実施の形態１では、複数の画素をまとめて一つのブロックとすることで、制御コードが冗長化することによる伝送量の増加を抑え、オーバーヘッドを減少させることができる。上述した特許文献１及び２では、４画素分のデータを伝送する際には図６２のように４回に分けてデータの伝送をしていた。一方、本発明の実施の形態１では、図５１に示すように１度の伝送で４画素分のデータを伝送することができる。そして、その時のデータ量を、４回に分けて伝送するデータの総量よりも少なく抑えられる。
【０１２１】
また、ＨＷ回路のＬＳＩチップ化において、チップサイズに与えるインパクトが比較的大きなものとしてはメモリの容量が挙げられる。しかしながら、本発明の実施の形態１では、画像データバッファ用のメモリとして４８バイトのＲＡＭ（Random Access Memory）を搭載して実現することを前提としている。すなわち、１ライン分にも満たないメモリで実現することが可能である。
【０１２２】
このように、本発明の実施の形態１により、画素等のデータ要素単位に制御コードを付加する場合に比べて、圧縮効率を高めることができる。
【０１２３】
さらに、上述したように本発明の実施の形態１は、定まった複数個の連続画素をまとめて一つのブロックとして、ブロック単位に複数の圧縮方式のいずれかから最適な圧縮方式を選択するものである。その際、同一のデータに対して複数の圧縮方式により圧縮データの作成までを行うのではなく、圧縮時のデータ長までを行うことで、不要な圧縮処理を抑えることができる。そのため、圧縮効率を高めつつ、圧縮処理の負荷を抑えることができる。
【０１２４】
＜発明の実施の形態２＞
本発明の実施の形態２では、上述した発明の実施の形態１に改良を加え、入力データＤ１のビット幅を８ビット以外にしたものや１ブロックの画素数を４以外にした場合について説明する。すなわち、上述した発明の実施の形態１にかかる画像圧縮装置１００における入力データＤ１のビット幅は８ビットであるものとし、１ブロックの画素数を４としていたが、８ビットの範囲（０〜２５５）を拡張して１０ビット、１６ビット、３２ビット、６４ビット等としてもよい。また、画像圧縮装置１００における１ブロックに格納する画素データの数は、４に限定されない。例えば、８画素で１ブロックとしてもよい。さらに、データ圧縮方式のうち一部の方式のみブロックの画素数を異なるようにしてもよい。その場合、試算の際には、複数のデータ圧縮方式間の画素数を同一にすればよい。
【０１２５】
そこで、本発明の実施の形態２の実施例１として、過去に圧縮データが生成された過去ブロックにおけるＮ個のデータ要素の特徴に基づきデータ列を生成し、当該生成したデータ列を既定パターン適合方式に用いる特定のデータ列に追加するものである。
【０１２６】
上述した本発明の実施の形態１にかかる画像圧縮装置１００では、圧縮データ要素生成エンジン１４としてＤＰＣＭ隣接差分１４１、既定パターン適合１４２及び過去データ参照１４３の各データ圧縮方式を用いた圧縮を実施しているが、本発明の実施の形態２の実施例１では、入力データＤ１の範囲やブロック内の画素数の数を拡張した場合など、それらを適切に処理することのできる更に別の方法を加えて圧縮の実施をする。
【０１２７】
例えば、過去のデータを基にして、将来現れる可能性の高いデータパターンを予測して、既定パターン適合方式での、各既定タイプの特定ＳＵＢコードが示すパターンの中身を予測した内容に基づくパターンへ動的に入れ替えるようにしてもよい。その場合、例えば、人工画像タイプや自然画像タイプなどの各パターンにおいて各ＳＵＢコードが示すパターンの中身を個別に動的に入れ替える他、制御コードが示すパターンのタイプ自体を全く別の第三のタイプ（音声や画像以外のその他のデータに適した特定規格信号タイプなど）へ動的に入れ替えることも考えられる。これによりＩＮＤＥＸによる指定範囲（ＩＮＤＥＸのサイズ）を増加させずに対応可能なパターンの数を増やすことができる。
【０１２８】
更に、発明の実施の形態１では固定としているブロック内に格納する画素の数を、本発明の実施の形態２の実施例２として、各ブロック毎に動的に変化させるようにしてもよい。例えば、ビット長が６ビットの差分値を、１ブロックに８つ格納するための制御コードを一つ新設するとする。また、発明の実施の形態１の隣接差分方式を適用し、１ブロックにおける差分値のビット長の最大値が６ビットとなる場合には、図４８に示した制御コードであるＣＯＤＥ６が使用される。ここで、ＣＯＤＥ６を使用した伝送コードが２ブロック連続して生成される場合には、新設した制御コードの方を用いる方が、制御コード一つ分の伝送量削減を実現することができる。
【０１２９】
そのため、本発明の実施の形態２の実施例２にかかる画像圧縮装置１００は、入力されたデータ列に含まれる複数のデータ要素のうちＮ個を第１のブロックにまとめ、第１のブロックに含まれない他のＮ個を第２のブロックにまとめ、隣接差分方式により第１のブロックに対して算出された圧縮値のデータ長の最大値と、隣接差分方式により第２のブロックに対して算出された圧縮値のデータ長の最大値とが等しい場合、当該第１のブロック及び当該第２のブロックを結合して第３のブロックにまとめ、第３のブロックに含まれる圧縮値のそれぞれのデータ長を最大値となるように補正し、当該補正後の２Ｎ個の圧縮値を第３のブロックにおける圧縮データとし、第１の圧縮方式に対応し、かつ、データ要素数が２Ｎ個であることを特定する制御コードを、第３のブロックにおける圧縮データに付加する。これにより、入力データの傾向に応じてより効果的に圧縮効率を高めることができる。
【０１３０】
具体的には、図５２は、本発明の実施の形態１にかかる８画素の伝送データの例を示す図である。ここでは、画素データ１〜４が第１のブロックに、画素データ５〜８が第２のブロックに、それぞれまとめられていることを示す。そして、図５３は、本発明の実施の形態２の実施例２にかかる８画素の伝送データの例を示す図である。つまり、画素データ１〜４と画素データ５〜８とが第３のブロックとして１ブロックにまとめることで、１ブロックに格納するデータの数を８とした制御コードを用いた場合の例である。
【０１３１】
一方、６ビット長のデータが４つ連続するブロックとして伝送する制御コードを付加したブロックのうち、後方２つの実際のデータサイズが２ビットである場合などが多発するケースに特化する場合もある。ここで、実際のデータサイズが２ビットである場合とは、上位４ビットが"０"であり、少なくとも上位５ビット目が"１"であることを示す。この場合には、２ビット長のデータ２つを伝送する制御コードと、６ビット長データを２つだけ伝送する制御コードを設けて、２回に分けて伝送することで効率化を図ることができる。
【０１３２】
そのため、本発明の実施の形態２の実施例３として、画像圧縮装置１００は、Ｎが４以上の自然数である場合、ブロックに含まれるＮ個のデータ要素を複数のデータ要素を含む複数のサブブロックに分類し、各サブブロック間で隣接差分方式により算出された圧縮値のデータ長の最大値が異なる場合、サブブロック単位に隣接差分方式により圧縮データを生成し、各サブブロックにおける最大値を特定する制御コードを、サブブロック単位に付加する。これにより、入力データの傾向に応じてより効果的に圧縮効率を高めることができる。
【０１３３】
具体的には、図５４は、本発明の実施の形態１にかかる後方２画素のデータ長が短い場合の伝送データの例を示す図である。ここで、画素データ３及び４のビット長は６ビットであるが、実際のデータサイズは２ビットであることを示す。そして、図５５は、本発明の実施の形態２の実施例３にかかる後方２画素のデータ長が短い場合の伝送データの例を示す図である。つまり、図５４の画素データ１〜４を、図５５では、画素データ１及び２をサブブロックＡと、画素データ３及び４をサブブロックＢとまとめている。このように、４ビットの制御コードを２つ用いたとしても、圧縮されるデータ長が８ビットであるため、４画素で合計４ビットが削減されたこととなる。尚、図５４及び図５５の例では、画素データの前方と後方でそれぞれ実際のデータサイズが同一であったが、異なっていても構わない。その場合、サブブロックに分けた後に、サブブロックごとに隣接差分方式におけるデータ長の補正を行うことで対応できる。
【０１３４】
このように、本発明の実施の形態２によっても、複数のデータをまとめて一つのブロックとすることで伝送効率を高めることができる。
【０１３５】
＜発明の実施の形態３＞
本発明の実施の形態３にかかる画像圧縮装置１００は、上述した発明の実施の形態１又は２に改良を加えたものである。本発明の実施の形態３は、入力データ取り込みの際に、入力するデータを数個の単位に分類するように取り込んでいき、取り込んだ分類済みのデータに対して処理対象を順次切り替えながら圧縮又は伸張を行うものである。すなわち、本発明の実施の形態３にかかる画像圧縮装置１００は、入力されたデータ列が複数種類のデータ要素を含む場合、当該データ列に含まれる各データ要素を種類ごとに分類し、分類された種類ごとにＮ個のデータ要素を１のブロックにまとめるものである。
【０１３６】
例えば、入力データがＲＧＢの３色で表現される場合、画素のデータ列は、Ｒ１／Ｇ１／Ｂ１／Ｒ２／Ｇ２／Ｂ２／Ｒ３／Ｇ３／Ｂ３／Ｒ４／Ｇ４／Ｂ４／Ｒ５／Ｇ５／Ｂ５・・・という順序で規則的に並べられている。このとき、入力データを３分割化する形で、Ｒ１／Ｒ２／Ｒ３／Ｒ４／Ｒ５・・・、Ｇ１／Ｇ２／Ｇ３／Ｇ４／Ｇ５・・・、Ｂ１／Ｂ２／Ｂ３／Ｂ４／Ｂ５・・・とデータを並び替えることにより、連続性のある同一種類の要素毎に分類されたデータに対しての圧縮処理へと変更することができる。
【０１３７】
図５６は、本発明の実施の形態３の実施例１にかかる画像圧縮装置１００ａを示す図である。画像圧縮装置１００ａは、本発明の実施の形態１にかかる画像圧縮装置１００に変形を加えたものであり、外部から入力される入力データＤ５に対して、所定の圧縮方式によりデータを圧縮し、出力データＤ６として外部へ出力する。ここで、入力データＤ５は、各画素がＲＧＢのいずれかを表し、ＲＧＢが１画素ずつ規則的に並べられているものとする。出力データＤ６は、出力データＤ２と同等の形式の伝送コードである。
【０１３８】
画像圧縮装置１００ａは、画像圧縮装置１００との違いとして、画像データ取込部１１ａ、画像データバッファ１２１〜１２３、圧縮データ要素生成エンジン１４ａを備える。画像データ取込部１１ａは、入力データＤ５の格納先を１サイクル毎に画像データバッファ１２１、１２２、１２３のいずれかへ規則的に切り替える。画像データバッファ１２１〜１２３は、それぞれ、図１の画像データバッファ１２と同等の記憶部である。尚、画像データバッファ１２１〜１２３は、各１２バイトであるものとする。これにより、合計で画像データバッファ１２と同サイズとなるため、ＨＷ装置の規模の増大への影響は少ない。また、画像データバッファ１２と同様に全アドレス範囲である１２バイト分のデータすべてを同時に出力することで、ＨＷの内部処理についても緩やかなサイクルに抑えた内部クロックに基づいて動作させることができる。
【０１３９】
例えば、画像データバッファ１２１にＲの画素を格納し、画像データバッファ１２２にＧの画素を格納し、画像データバッファ１２３にＢの画素を格納するようにする。圧縮データ要素生成エンジン１４ａは、処理対象のバッファを、４サイクル毎に画像データバッファ１２１、１２２、１２３のいずれかへ規則的に切り替えて、データ圧縮を行う。
【０１４０】
そのため、圧縮データサイズ試算部１３、圧縮データ要素選択生成部１５、パケッタイザ１６における処理については、本発明の実施の形態１と同じく、４サイクル以内での実行が可能な構成である。また、圧縮データ要素生成エンジン１４ａのエンジン部自体も１つ用意をしておくだけである。これにより、要素の種類ごとに分類されたデータを順次切り替えながら処理することが実現できる。ただし、画像データバッファは２つ増設して、３つ分とすることが必要である。また、圧縮データ要素生成エンジン１４ａを、４サイクル毎に各データバッファへと処理対象をずらして４サイクル以内で実行をさせることで、単一のデータ圧縮エンジンのみで実現が可能となる。
【０１４１】
図５７は、本発明の実施の形態３の実施例１にかかる入力データの処理タイミングを示す図である。入力データＤ５は、上述したようにＲ１、Ｇ１、Ｂ１、Ｒ２、・・・と言う順序に、ＲＧＢが１画素ずつ規則的に並べられていることを示す。画像データ取込部１１ａが入力先バッファを１サイクル毎に順番に切り替えて、ローテーションで格納する。これにより、画像データバッファ１２１には、Ｒ１，Ｒ２，・・・、画像データバッファ１２２には、Ｇ１、Ｇ２、・・・、画像データバッファ１２３には、Ｂ１、Ｂ２、・・・という順序で格納される。
【０１４２】
また、圧縮データ要素生成エンジン１４ａは、バッファ切替部１７１及びデータ圧縮処理部１７２を備える。バッファ切替部１７１は、４サイクル毎に入力されるＣＳ信号（切り替え信号）により処理対象バッファを画像データバッファ１２１、１２２、１２３、１２１、・・・と切り替える。なお、ここでいうＣＳ信号は複数ビットとなり得る信号であり、例えばオープンドレインの構成であればどのＲＡＭによるデータ線の電圧解放によってデータ線を駆動するのかを指定して、データ線の電圧制御元とするＲＡＭからの信号だけを選択的に得るための元データとする信号をさす。あるいは、バッファ切替部が複数段のＭＵＸ（Ｍｕｌｔｉｐｌｅｘｅｒ）により構成されてもよい。データ圧縮処理部１７２は、図１の圧縮データ要素生成エンジン１４と同等の構成である。
【０１４３】
そのため、Ｒ列であればＲ４まで画像データバッファ１２１に貯まった段階でＧ４が画像データバッファ１２２に格納されるサイクルと同時にデータ圧縮処理が開始できる。また、発明の実施の形態１と同じく４サイクルで圧縮データを生成することができれば、引き続いて、Ｇ列について圧縮データを生成する前に、待ち時間が発生しない。４サイクル後にＧ５が画像データバッファ１２２に格納されるためである。
【０１４４】
尚、画像データバッファ１２１〜１２３の合計サイズを画像データバッファ１２と同等に保つために、１つあたりの画像データバッファのサイズを画像データバッファ１２に比べて減少させた場合には、過去データ参照方式で参照可能な過去の範囲はその分減少する。また、一つの画像データバッファにデータが４つ貯まって、圧縮可能なブロック分のデータにまで蓄積されるまでの時間は３倍に増加するため、リセット解除後に一番初めの処理を開始するまでのレスポンスは若干低下する。また、その分のデータ出力遅延は生じる。
【０１４５】
また、本発明の実施の形態３の実施例２として、実施例１に代えて、下記のようにアドレスの変換を行うことで仮想的に実現をすることができる。図５８は、本発明の実施の形態３の実施例２にかかる入力データを３つに分類して取り込んで圧縮する時のバッファの例を示す図である。実施例２では、図１の画像圧縮装置１００の画像データバッファ１２と圧縮データ要素生成エンジン１４の間に、アドレス変換部１８を追加し、圧縮データ要素生成エンジン１４を圧縮データ要素生成エンジン１４ｂとバッファ指定部１９に置き換えたものである。
【０１４６】
アドレス変換部１８は、画像データバッファ１２から各画素を３画素置きに取得した場合のデータ列を仮想的に仮想バッファ１８１〜１８３という形で実現する。例えば、アドレス変換部１８は、８ビットを一まとめとして各レジスタセルからワイア引き出しをして仮想的なバッファとなるように信号の順序を組み替えて並べて用意しておき、レジスタセルへのダイレクトリードアクセスに関して用意した信号線の方に対しての参照となるようにデータ取り込みの接続先を対象とする元のレジスタセルから並べなおした信号線の方へ変更しておくことで、仮想的に連続したアドレスを持つ３つのバッファに対する処理として扱える。
【０１４７】
また、バッファ指定部１９は、仮想バッファ１８１〜１８３のいずれかを規則的に切り替えて指定する信号を４サイクル毎に出力する。圧縮データ要素生成エンジン１４ｂは、バッファ切替部１７１ａとデータ圧縮処理部１７２を備える。バッファ切替部１７１ａは、バッファ指定部１９からの指定に応じて、仮想バッファ１８１〜１８３のいずれかを選択して画素データを取得する。
【０１４８】
このように、本発明の実施の形態３の実施例１又は２により、複数種類のデータ要素を含むデータ列に対して、本発明の実施の形態１又は２と同等の効果を奏することができる。
【０１４９】
＜その他の発明の実施の形態＞
以上に示したように、本発明の実施の形態１〜３により、画像１ラインにも満たない数画素分のデータが用意できた段階から数画素単位のサイクルで、リアルタイムに可逆圧縮及び伸張することが出来る。また、平面の画像データを格納可能なサイズのメモリまでは用意する必要がなく、メモリサイズを抑えてシンプルな論理回路で実現することができるため、回路の面積を抑えることができる。さらに、既存の回路に負担をかけることなく、単に既存回路のBUSの両端へこの回路を付加するのみで、既存回路のＢＵＳ効率を改善できる。
【０１５０】
尚、本発明は、既存のＬＳＩ仕様に対して、付加的なＨＷ回路としてＢＵＳ両端に極小さな回路を追加するレベルで、それ以外の既存仕様を変更することなくバス伝送効率を向上させて既存ＬＳＩ機能の改善を図ることを目的に開発した技術に関する。その技術開発の結果として、ＪＰＥＧ圧縮とは異なり、１ラインにも満たない数画素分のデータが用意できた段階から数画素単位のサイクルで圧縮・伸張を実行していくことで、相応の圧縮率でリアルタイムに画像データを可逆圧縮することが出来る単純で小さなＨＷ回路を発明した。その一例が上述した画像圧縮装置１００等である。
【０１５１】
尚、本発明の実施の形態１〜３にかかる画像圧縮装置及び画像伸張装置をＲｕｂｙソースコードとしてプログラムで構成して、実際の画像に対して圧縮及び伸張処理を実行した際の実際の圧縮率を次に示す。ペイント／ドロー系手描き画像は、０．６〜０．７、自然画像／写真画像は、０．６〜０．７、人工画像／文字画像は、０．３〜０．６である。
【０１５２】
また、本発明の実施の形態１〜３の隣接差分方式では、データ列を可逆圧縮する圧縮及び伸長方式において、元データ各々に対して一意に定まる可逆な変換を施した後、変換データを定まった個数（Ｎ）づつのブロックに分割し、ブロック単位で圧縮コードを生成する。圧縮コードは、制御部とＮ個の数値部から構成され、各数値部のビット長は、Ｎ個の数値部のビット長のうち、可逆可能な最大のビット長を有する値で同一に決定され、制御部はその値に該当するコードを割り当てる。図５９は、本発明の隣接差分方式にかかるＮ個ずつのデータ要素を単位としての圧縮及び変換の概念を説明するための図である。
【０１５３】
さらに、本発明の実施の形態１〜３の既定パターン適合方式では、変換データのブロックが予め定められ特定データ列の特徴を有する場合には、その特定データ列からの違いを可逆に表現できる数値を抽出し、そのビット長が隣接差分方式の場合の同一ビット長×Ｎより短い場合にのみその圧縮コードをその特定タイプを示す制御部コードと違いを可逆に表現できる数値で決定する。図６０は、本発明の既定パターン適合方式にかかる既定パターンを指定し、Ｎ個ずつのデータ要素を単位として圧縮及び変換をする方法の概念を説明するための図である。
【０１５４】
さらにまた、本発明の実施の形態１〜３の過去ブロック参照方式では、変換データの特定ブロックがその前のブロックのいずれかと比較して、その前のブロック位置を示す数値と、その前ブロックからの違いを可逆に表現できる数値を抽出し、そのビット長が隣接差分方式の場合の同一ビット長×Ｎより短い場合にのみ、その圧縮コードをその特定タイプを示す制御部コードと前ブロック位置を示す数値と、違いを可逆に表現できる数値で決定する。図６１は、本発明の過去ブロック参照方式にかかるＮ個ずつのデータ要素を単位として前ブロック位置と比較して圧縮及び変換をする方法の概念を説明するための図である。
【０１５５】
尚、上記のデータ圧縮方式において、可逆変換は必須でなく、入力されたデータ列を直接、可逆圧縮しても構わない。
【０１５６】
尚、本発明の実施の形態１にかかる画像圧縮装置１００は、複数のデータ圧縮方式を備えるものとしたが、一つのデータ圧縮方式のみが実装されたものであっても構わない。すなわち、隣接差分方式専用、既定パターン適合方式専用又は過去ブロック参照方式専用のデータ圧縮装置であってもよい。その場合、例えば、図１の圧縮データサイズ試算部１３を除き、圧縮データ要素生成エンジン１４には、ＤＰＣＭ隣接差分１４１、既定パターン適合１４２又は過去データ参照１４３のいずれかのみを搭載し、画像データ取込部１１から圧縮データ要素選択生成部１５へ通知を行うようにすればよい。このような場合であっても、複数のデータをまとめて一つのブロックとすることで伝送効率を高めることができる。
【０１５７】
さらに、本発明にかかるデータ圧縮方式は上述したものに限定されない。そのため、本発明にかかるデータ圧縮方法は、少なくとも、入力されたデータ列に含まれる複数のデータ要素のうちＮ個（Ｎは２以上の自然数）を１のブロックにまとめ、ブロックに含まれるＮ個のデータ要素に対して所定の圧縮方式により圧縮データを当該ブロック単位に生成し、圧縮データの生成に用いられた圧縮方式に対応し、かつ、ブロックに含まれるデータ要素数がＮ個であることを特定する制御コードを、当該圧縮データに付加するものである。
【０１５８】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blu-ray(登録商標) Disc)、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、コンピュータプログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１５９】
１００  画像圧縮装置
１１  画像データ取込部
１２  画像データバッファ
１３  圧縮データサイズ試算部
１４  圧縮データ要素生成エンジン
１４１  ＤＰＣＭ隣接差分
１４２  既定パターン適合
１４３  過去データ参照
１５  圧縮データ要素選択生成部
１６  パケッタイザ
２００  画像伸張装置
２１  圧縮データ取込部
２２  画像データバッファ
２３  データ要素復号部
２４  圧縮データ要素復号エンジン
２４１  ＤＰＣＭ隣接差分
２４２  既定パターン適合
２４３  過去データ参照
２５  画素値再生出力部
１００ａ  画像圧縮装置
１１ａ  画像データ取込部
１２１  画像データバッファ
１２２  画像データバッファ
１２３  画像データバッファ
１４ａ  圧縮データ要素生成エンジン
１４ｂ  圧縮データ要素生成エンジン
１７１  バッファ切替部
１７１ａ  バッファ切替部
１７２  データ圧縮処理部
１８  アドレス変換部
１８１  仮想バッファ
１８２  仮想バッファ
１８３  仮想バッファ
１９  バッファ指定部
Ｄ１  入力データ
Ｄ２  出力データ
Ｄ３  入力データ
Ｄ４  出力データ
Ｄ５  入力データ
Ｄ６  出力データ
【図１】
2012244235.tif 000003
【図２】
2012244235.tif 000004
【図３】
2012244235.tif 000005
【図４】
2012244235.tif 000006
【図５】
2012244235.tif 000007
【図６】
2012244235.tif 000008
【図７】
2012244235.tif 000009
【図８】
2012244235.tif 000010
【図９】
2012244235.tif 000011
【図１０】
2012244235.tif 000012
【図１１】
2012244235.tif 000013
【図１２】
2012244235.tif 000014
【図１３】
2012244235.tif 000015
【図１４】
2012244235.tif 000016
【図１５】
2012244235.tif 000017
【図１６】
2012244235.tif 000018
【図１７】
2012244235.tif 000019
【図１８】
2012244235.tif 000020
【図１９】
2012244235.tif 000021
【図２０】
2012244235.tif 000022
【図２１】
2012244235.tif 000023
【図２２】
2012244235.tif 000024
【図２３】
2012244235.tif 000025
【図２４】
2012244235.tif 000026
【図２５】
2012244235.tif 000027
【図２６】
2012244235.tif 000028
【図２７】
2012244235.tif 000029
【図２８】
2012244235.tif 000030
【図２９】
2012244235.tif 000031
【図３０】
2012244235.tif 000032
【図３１】
2012244235.tif 000033
【図３２】
2012244235.tif 000034
【図３３】
2012244235.tif 000035
【図３４】
2012244235.tif 000036
【図３５】
2012244235.tif 000037
【図３６】
2012244235.tif 000038
【図３７】
2012244235.tif 000039
【図３８】
2012244235.tif 000040
【図３９】
2012244235.tif 000041
【図４０】
2012244235.tif 000042
【図４１】
2012244235.tif 000043
【図４２】
2012244235.tif 000044
【図４３】
2012244235.tif 000045
【図４４】
2012244235.tif 000046
【図４５】
2012244235.tif 000047
【図４６】
2012244235.tif 000048
【図４７】
2012244235.tif 000049
【図４８】
2012244235.tif 000050
【図４９】
2012244235.tif 000051
【図５０】
2012244235.tif 000052
【図５１】
2012244235.tif 000053
【図５２】
2012244235.tif 000054
【図５３】
2012244235.tif 000055
【図５４】
2012244235.tif 000056
【図５５】
2012244235.tif 000057
【図５６】
2012244235.tif 000058
【図５７】
2012244235.tif 000059
【図５８】
2012244235.tif 000060
【図５９】
2012244235.tif 000061
【図６０】
2012244235.tif 000062
【図６１】
2012244235.tif 000063
【図６２】
2012244235.tif 000064