(57)【要約】【課題】各画素に色データと属性データとが付加された属性付き画像データを、効率よく圧縮できるようにする。【解決手段】画像データを所定サイズのブロック毎に分割し、当該ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する。２種類以上のデータ種類で構成されるブロックに関しては、当該ブロックに含まれる属性データの種類が単一であるか複数であるか判断する。２種類以上のデータ種類で構成され且つ属性データの種類が単一であると判定されたブロックに関しては、属性データが単一であることを示すフラグと、配置パターンを示すフラグと、予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力する。【選択図】  図５
2011259246.tif 000002
【特許請求の範囲】
【請求項１】
各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断手段と、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項２】
各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割手段と、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、
２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断手段と、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項３】
更に、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第２判断手段を更に有し、
前記出力手段は、前記第２判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データとを当該連続する回数分出力することを特徴とする請求項１または２のいずれかに記載の画像処理装置。
【請求項４】
前記Ｍ×Ｎ画素のサイズのブロックは、２×２画素のサイズのブロックであり、前記Ｌ種類は４種類であることを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
前記配置パターンを示すフラグおよび前記単一属性であることを示すフラグは、４ビット長のフラグを用いて表されることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記出力手段で出力されるフラグをフラグ格納部に格納し、
前記出力手段で出力される第１種類の色データと第１種類の属性データとを第１種類データ格納部に格納し、
前記出力手段で出力される第２〜Ｌ種類の色データと第２〜Ｌ種類の属性データとを第２〜Ｌ種類データ格納部に格納する格納手段
を更に有することを特徴とする請求項１乃至５のいずれかに記載の画像処理装置。
【請求項７】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程において分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第１判断手段が、２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断工程と、
出力手段が、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項８】
分割手段が、各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割工程と、
特定手段が、前記分割工程で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定工程と、
第１判断手段が、２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断工程と、
出力手段が、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断工程において画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され、且つ前記第１判断工程において画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項９】
第２判断手段が、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第２判断工程を更に有し、
前記出力工程では、前記第２判断工程において直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データとを当該連続する回数分出力することを特徴とする請求項７または８のいずれかに記載の画像処理方法。
【請求項１０】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断手段、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項１１】
コンピュータを、
各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割手段、
前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段、
２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか判断する第１判断手段、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、
２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、
１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段
として機能させるためのプログラム。
【請求項１２】
前記コンピュータを、着目ブロックが直前のブロックの画素配置と同じ画素配置のブロックであるか否かを判断し、同じ画素配置のブロックが連続する回数を計数する第２判断手段として更に機能させるためのプログラムであって、
前記出力手段では、前記第２判断手段で直前のブロックの画素配置と同じ画素配置のブロックであると判定されたブロックに関しては、同じ画素配置のブロックが連続する回数を示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データとを当該連続する回数分出力することを特徴とする請求項１０または１１のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データとその属性データとを所定のブロック単位に圧縮する技術とブロック単位に圧縮された画像の画像処理や復元処理を行う技術に関する。
【背景技術】
【０００２】
画像の高解像度化が進むにつれて、画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大しているという課題がある。この課題に対し、扱う画像データに対する圧縮処理を適用している。例えば、カラー静止画像の圧縮方式には、離散コサイン変換を利用したＪＰＥＧ方式やＷａｖｅｌｅｔ変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック（例えば８×８や１６×１６画素単位）に符号化し、離散コサイン変換、量子化及びエントロピー符号化を行うことで高い圧縮効率を達成している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化するものである。
【０００３】
上述した画像圧縮を用いた場合、各画素データを変換するには、圧縮データに対する復号処理が必要になってくる。つまり、圧縮データのままで画像処理を行うことはできず、必ず復号処理が必要になる。そのため、高解像度データ全ての画素に対して画素単位に処理を行う必要が生じ、処理時間の増大を招く。
【０００４】
また、圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式や、特許文献１のように、ブロック毎に２色以下に減色して２色分の色データとその２色の配置形状を出力することでデータ量を圧縮する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７１０４６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１においては、ブロック内を２色化し、その２色の配置に関する形状情報と２色の色情報を記憶していた。これに対し、さらなる高画質化、処理高速化を図るため、本出願人は、特願２００９−２２１４４４号において、２色より多いデータ種類数を持つブロックの画質を落とさずに圧縮する技術を提案している。特願２００９−２２１４４４号の提案では、まず、画像データをブロック（例えば２×２画素サイズのブロック）毎に分割し、ブロック内の各画素の色データを比較する。これにより、注目ブロックに含まれる色データの配置パターン情報と、着目ブロックに含まれる色数分の色データ情報とを出力する。そして、出力された色データ情報のうち、ブロックにおける予め決められた位置の画素に対応する第１の色データ情報（例えば２×２画素サイズのブロックにおける左上の画素の色データ情報）と、それ以外の色データ情報（第２〜４の色データ情報）とに分けてメモリ領域に格納する。すなわち、各ブロックから得られる配置パターン情報と第１の色データ情報とそれ以外の色データ情報とを、それぞれ異なるメモリ領域にまとめて格納することを特徴としている。各ブロック内には同色の画素が存在する場合が多いので、メモリ領域に格納されたデータは、元画像のデータよりもデータサイズが小さい圧縮データとなる。また、第１の色データ情報は、各ブロックの予め決められた位置の画素の画素値であるので、連続メモリ領域に格納されている第１の色データ情報は、元画像を単純間引き処理して生成される低解像度画像に等しい。したがって、低解像度画像データも容易に得ることができる。また、各ブロックの第１の色データ情報からなる低解像度画像データを連続メモリ領域に置くことで、符号化データのままでの処理を容易化し、復号化することなく低解像度画像に対する画素処理も可能となる。
【０００７】
一方、画像データには、各画素に属性が付加された属性付き画像データも存在する。本発明では、このような属性付き画像データを扱う場合に、効率よく圧縮できるようにする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロックに分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックにおいて、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第１判断手段と、２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックが単一属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段とを有する。
【０００９】
または、上記課題を解決するために、本発明の画像処理装置は、各画素のデータ種類が色データと属性データとで表される画像データを、Ｍ×Ｎ画素のサイズのブロック毎に分割する分割手段と、前記分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロックに含まれる各画素のデータ種類を比較することにより、各ブロックに含まれるデータ種類の配置パターンを示すフラグを特定する特定手段と、２〜Ｌ種類（Ｌ＝Ｍ×Ｎ）のデータ種類で構成されるブロックに関して、当該ブロックに含まれる画素の属性データの種類が単一であるか否かを判断する第１判断手段と、２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一であると判断されたブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データとを出力し、２〜Ｌ種類のデータ種類で構成され且つ前記第１判断手段で画素の属性データが単一でないと判断されたブロックに関しては、当該ブロックが複数属性であることを示すフラグと、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データと、当該ブロックの配置パターンに基づいて抽出される第２〜Ｌ種類の色データ及び第２〜Ｌ種類の属性データとを出力し、１種類のデータ種類で構成されるブロックに関しては、当該ブロックの配置パターンを示すフラグと、当該ブロックの予め定義された位置の画素から抽出される第１種類の色データ及び第１種類の属性データを出力する出力手段とを有する。
【発明の効果】
【００１０】
本発明によれば、属性付き画像データを圧縮して保持する場合に保持するデータ量の削減が可能となる。
【図面の簡単な説明】
【００１１】
【図１】ＭＦＰシステムの概要を示した図。
【図２】コントローラの概要を示した図。
【図３】画像をブロック分割した際にそのブロックのパターンを列挙した図。
【図４】ブロックのパターンとその識別子を列挙した図。
【図５】第一の実施形態に係る画像圧縮フローを示した図。
【図６】ブロックのパターンをフラグに変換している様子を示した図。
【図７】第一の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図８】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトを示した図。
【図９】第二の実施形態に係る画像圧縮フローを示した図。
【図１０】第二の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図１１】第三の実施形態に係る画像圧縮フローを示した図。
【図１２】第三の実施形態に係る圧縮処理に対するに入力と出力の関係を示した図。
【図１３】本発明に係る展開処理に関する処理フローを示した図。
【発明を実施するための形態】
【００１２】
＜第一の実施形態＞
図１に、本発明の実施形態の画像処理装置であり、スキャン、プリント、コピーを行うデジタル複合機システム（以降、ＭＦＰと称する）の全体構成図を示す。コントローラ１０１は、画像入力デバイスであるスキャナ１０２や画像出力デバイスであるプリンタ１０３と接続する。また、一方ではＬＡＮや公衆回線（ＷＡＮ）等のネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０５はシステム全体を制御するプロセッサである。メモリ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７はハードディスクドライブであり、システムソフトウェア、画像データ等のデータ類を格納する。
【００１３】
ここで本発明において扱う属性データについて説明しておく。画像データに含まれる画素単位で、その画素の属性を付与する場合がある。ここで、付与可能な属性の種類には、例えば文字、写真、グラフィックス、背景、グレー補償などが挙げられる。こういった属性が付与されている画像データに対しては、それぞれの属性に適した画像処理を切り替えながら行うことで、最適な画像データを得る事が可能となる。例えば文字の属性が付与されている画素に対しては、可読性を高くするためにコントラストを高くするための処理を行い、また写真の属性が付いている画素に対しては、階調性を豊かにするための処理を行うなどが考えられる。以後、属性の付加された画像データを“属性付き画像データ”、属性が付加されていない画像データを単に“画像データ”と称する。
【００１４】
図２を用いて、図１のコントローラ部の動作に関して詳細に説明する。ここでは、スキャンデータを読み込む場合を説明する。スキャナ１０２からＲＧＢ（ＲＥＤ、ＧＲＥＥＮ、ＢＬＵＥ）３色の読み取り画像データを受け取ったコントローラ部では、まずスキャナ用画像処理部２０１にてシェーディング処理やフィルタ処理等の画像処理を行った後、属性データを付加する。そして、圧縮部２０２にて属性付き画像データの画像圧縮処理を行う。その圧縮データをＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２０３を介してメモリ１０６へ格納する。
【００１５】
スキャンデータをプリントする場合は、メモリ１０６に格納されている圧縮データを、ＤＭＡＣ２１１を介して色処理部２１２へ入力しＣＭＹＫ（ＣＹＡＮ、ＭＡＧＥＮＴＡ、ＹＥＬＬＯＷ、ＢＬＡＣＫ）色空間へ変換する。上記圧縮データからは属性データも復元される。その後、それらＣＭＹＫの値に対してその属性に最適な濃度調整、プリンタガンマ補正等の調整の色処理を行った後、ＤＭＡＣ２１１を介して再度、メモリ１０６へ格納する。その後プリント用の画像処理を行うため、ＤＭＡＣ２２１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２２２にて属性付きラスタ画像データへ展開する。ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３に入力し、そこで画像データに付与された属性に最適なディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。
【００１６】
スキャンデータをネットワークへ送信する場合には、メモリ１０６に格納されている圧縮データを、ＤＭＡＣ２１１を介して色処理部２１２へ入力し色変換を行う。具体的には、属性に最適なディスプレイガンマ調整や用紙地色調整等を行った後にＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。その後再度、ＤＭＡＣ２１１を介してメモリ１０６へ格納する。その後、送信用の画像処理を行うために、ＤＭＡＣ２３１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２３２にて属性付きラスタ画像データへ展開する。ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３ではカラー画像送信であればＪＰＥＧ圧縮処理を行う。また、モノクロ２値画像送信であればＹデータに対して２値化を行い、ＪＢＩＧ圧縮等を行う。その後、ネットワーク１０４へ出力する。
【００１７】
スキャンデータを保存する場合には、メモリ１０６に格納されている圧縮データをディスクスプール高圧縮／展開部２４２へＤＭＡＣ２４１を介して入力する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、さらに高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合はその逆処理を行う。
【００１８】
ＰＤＬのデータをメモリへ書き込む場合を説明する。図２では図示していないが、図１にてネットワークから送られてきたＰＤＬデータを、ＣＰＵ１０５を用いて解釈し、メモリ１０６へディスプレイリストを出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１で属性付きＲＧＢ画像データへレンダリングを行い、圧縮部２５２にて画像圧縮処理を行う。その圧縮データを、ＤＭＡＣ２５３を介してメモリ１０６へ格納する。ＰＤＬ画像データに対し、プリント、ネットワークへ送信、保存する等の処理を行う場合はスキャンデータと同様の処理を行うことで実現する事が可能になる。
【００１９】
［圧縮処理］
以降では本発明の特徴となる属性付き画像データの圧縮部の詳細に関して説明を行う。まずページ単位の属性付き画像データを所定の画素数（本実施形態では、２ｘ２画素）のブロックごとに分割し、そのブロックを順に着目ブロックとしてデータの圧縮を行う。ここで、本実施形態における属性付き画像データの各画素は、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）の各８ｂｉｔと属性データ８ｂｉｔとから構成されるものとする。
【００２０】
処理の説明の前に、２ｘ２画素のブロック（４画素データ）におけるデータ種類の配置パターンを考える。ここで、各画素のデータ種類は、Ｒ、Ｇ、Ｂと属性データの計３２ｂｉｔで表されるものとし、各画素を３２ｂｉｔ単位で比較し、一致すれば同じデータ種類であると判断する。ブロック内の画素数が４画素なので、そこに占めるデータ種類数は１〜４種類である。それら１〜４種類のパターンの取りうる組み合わせの場合の数を、図３を用いて説明する。なお、本明細書では、出力データにおける１〜４種類のデータ種類の情報を、それぞれ順に第１種類、第２種類、第３種類、第４種類の（属性付き）画像データと呼ぶ。
【００２１】
まずブロック内が１種類の場合、４画素が同一データ種類で構成されている事になるので、その組み合わせは１通りである。次にブロック内が２種類の場合を考える。２種類が４画素内へレイアウトされる場合の数は、予め定義された位置の画素（ここでは左上の画素とする）の属性付き画像データの種類を第１種類、第１種類と異なる属性付き画像データの種類を第２種類とする。この場合、左上以外の残りの３画素へ第１種類もしくは第２種類が入るので、４画素同種類の場合を除くと、全部で７通りの組み合わせが考えられる。
【００２２】
次にブロック内が３種類のデータで構成される場合を考える。３種類のデータが４画素内へレイアウトされる場合の数は、３種類のうち１種類だけ２度使われる場合の数と言い換える事が可能で、４画素の座標のうち、２画素が同じ種類になる場合の数を求めればよい。つまり３種類の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。最後にブロック内が４種類のデータで構成される場合は１通りしか存在しない。
【００２３】
これら１〜４種類すべての場合の数を合計すると全部で１５通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては４ｂｉｔが必要となる。図示すると図４のようになり、以降このフラグをパターンフラグと称する。このパターンフラグにより、ブロックに含まれるデータ種類の数とその配置パターンを特定することが可能となる。また、ここでは、４ｂｉｔのパターンフラグとして「Ｆ」は使用されていないことを注意されたい。
【００２４】
本発明は、２×２画素のブロック内の属性データが１種類か複数種類かで処理を変更するように構成している。ここで、属性データのみに着目して属性データの取りうる種類数に言及すると、図３に示すように属性付き画像データの取りうる種類数以下となる。上記図４のパターンフラグにおいて割り当てられていなかった４ｂｉｔの識別フラグ「Ｆ」は、本実施形態において４画素内の属性付き画像データに含まれる色数が２種類以上で、かつ属性データの種類が１種類のときに追加付与されるものとする。以降、このパターンフラグ「Ｆ」を単一属性識別フラグ「Ｆ」と称する。
【００２５】
［処理フロー］
上記のように２ｘ２画素の取りうる組み合わせを踏まえて、圧縮部２０２、２５２にて行われる処理を図５のフローを用いて説明する。入力としては、先述のとおりＲＧＢそれぞれ８ｂｉｔの２５６階調を有し、属性データは８ｂｉｔである。またデータとしては８ｂｉｔデータの点順次で１画素あたり３２ｂｉｔの属性付き画像データを有するとして説明を行う。
【００２６】
まず、属性付き画像データを２×２画素のブロックごとに分割し、当該分割された２ｘ２画素のブロックを順に入力する（Ｓ５０１）。入力されたブロック内全ての２画素の組み合わせそれぞれに対して、３２ｂｉｔで表現される各画素の属性付き画像データの値（色データ及び属性データ）のコンペア（比較）を取る（Ｓ５０２）。このコンペアを取った結果、全ビット一致していた場合には１を出力し、不一致の場合には０を出力する。図６に示すように、２ｘ２画素内の左上から右上、左下、右下の順に座標１、２、３、４とすると、２画素の組は、１−２、１−３、１−４、２−３、２−４、３−４の全部で６通りある。そのため、６回コンペアを取る必要があり、結果は６ｂｉｔ出力される。例えば全画素同一の値を有している（属性付き画像データの値（色データと属性データ）が全画素同じ）場合には、全てのコンペア結果が１を出力し、逆に４画素全てバラバラの値を有している（属性付き画像データの値（色データと属性データ）が全画素異なる）場合には、全てのコンペア結果が０を出力する。前述の通り、２×２画素からなるブロックで出現しうるパターン数は１５通りなので、図６に示すように、その６ｂｉｔのコンペア結果に対して配置パターンを示す４ｂｉｔのパターンフラグへ変換する（Ｓ５０３）。
【００２７】
４ｂｉｔのパターンフラグへ変換したら続いて、４画素内で出現したデータ種類数をパターンフラグから判断する（Ｓ５０４）。図６に示したように、４ｂｉｔのパターンフラグ（または６ｂｉｔのコンペア結果）に対して、ブロック内での各値（各データ種類）の配置を示すパターンが対応付けられている。そのため、各ブロックにおけるデータ種類の数と、そのデータ種類（属性付き画像データ：すなわち、ＲＧＢ色データ及び属性データ）とを抽出することができる。なお、本実施形態では、全てのパターンにおいて、左上の画素の値が第１種類のデータ（１番目のデータ）となるように定義し、更に、各パターンにおいて、第２種類以降のデータがどこに配置されているデータであるかも予め定義している。したがって、配置パターンを示すパターンフラグに基づいて、左上の画素のデータ種類（左上画素の色データ及び属性データの値）を第１種類のデータとした場合、第２種類以降のデータがどの位置にあるか求める事が出来る。図７を参照しながら説明を行う。例えば４画素内が１種類で構成されていることが確定した場合（Ｓ５０５にてＹＥＳ）には、左上の画素のデータ種類（左上画素の色データ及び属性データの値）を第１種類のデータとして抽出する。ここでは、第２種類以降のデータは存在しないので、配置パターンを示すパターンフラグ（４ｂｉｔ）と第１種類のデータ（３２ｂｉｔ）とを出力する（Ｓ５０６）。
【００２８】
また本実施形態では、４画素が２種類以上のデータで構成されている場合、４画素全ての属性データが同じであるかの判定を行い、その判定結果にしたがって出力するデータを変更する。すなわち、４画素が２種類のデータで構成されていることが確定した場合（Ｓ５０７にてＹＥＳ）には、さらに当該４画素の属性が１種類かどうか（同一属性かどうか）を判定する（Ｓ５２２）。当該ブロック内の画素の属性が複数種類あると判定した場合（Ｓ５２２にてＮＯ）、その第２種類の属性付き画像データが存在する画素の位置座標をパターンフラグに基づき決定する。そして、左上の画素のデータ種類（左上画素の色データ及び属性データの値）を第１種類のデータとして抽出し、更に、前記決定された位置の画素から第２種類の属性付き画像データ（色データと属性データ）を抽出する。そして、配置パターンを示すパターンフラグ４ｂｉｔと第１種類の属性付き画像データ３２ｂｉｔと第２種類の属性付き画像データ３２ｂｉｔとを出力する（Ｓ５０８）。一方、当該ブロック内の属性が１種類であると判定した場合（Ｓ５２２にてＹＥＳ）、単一属性識別フラグ「Ｆ」４ｂｉｔと配置パターンを示すパターンフラグ４ｂｉｔとをパターンフラグとして出力する。更に、第１種類の属性付き画像データ３２ｂｉｔと、（属性データ無しで色データのみの）第２種類の画像データ２４ｂｉｔとを出力する（Ｓ５２６）。ここで、単一属性識別フラグ「Ｆ」が配置パターンを示すパターンフラグと一緒に出力されることにより、ブロックに含まれる全画素の属性が共通であることが分かるようになる。したがって、データ展開時は、第１種類の属性付き画像データに含まれる属性データを、その他のデータ種類に対する属性データとして流用することができるようになる。すなわち、本発明では、単一属性識別フラグ「Ｆ」が付与されている場合は、第２種類のデータ種類については、属性データを付与しないで出力するように構成している。このように構成することで、属性データの冗長な出力が抑制される。
【００２９】
４画素内が３種類のデータで構成されていることが確定した場合（Ｓ５０９にてＹＥＳ）には、さらに当該４画素の属性が１種類かどうか（同一かどうか）判定する（Ｓ５２３）。属性が複数種類（２〜Ｌ種類、本実施形態ではＬ＝４）あると判定した場合は、第２種類と第３種類の属性付き画像データが存在する画素の位置をＳ５０３で求めたパターンフラグに基づいて決定する。当該決定された位置に基づいて第２種類と第３種類の属性付き画像データを抽出する。そして、配置パターンを示すパターンフラグ４ｂｉｔ、第１種類の属性付き画像データ３２ｂｉｔ、第２種類の属性付き画像データ３２ｂｉｔ、及び第３種類の属性付き画像データ３２ｂｉｔを出力する（Ｓ５１０）。一方、属性が１種類であると判定した場合（Ｓ５２３にてＹＥＳ）、単一属性識別フラグ「Ｆ」（４ｂｉｔ）と配置パターンを示すパターンフラグ４ｂｉｔとをパターンフラグとして出力する。続いて第１種類の属性付き画像データ３２ｂｉｔと、（属性データ無しの）第２種類の画像データ２４ｂｉｔと（属性データ無しの）第３種類の画像データ２４ｂｉｔとを出力する（Ｓ５２７）。ここで、単一属性識別フラグ「Ｆ」が付与されている場合は、第２〜３種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。
【００３０】
４画素内が４種類のデータで構成されていることが確定した場合（Ｓ５０９にてＮＯ）には、さらに当該４画素の属性が１種類かどうか（単一かどうか）判定する（Ｓ５２４）。これにより、第１判断手段を実現する。属性が複数種類であると判定した場合は（Ｓ５２４にてＮＯ）、その第２〜４種類の属性付き画像データが存在する画素の位置座標をパターンフラグより決定する。そして、配置パターンを示すパターンフラグ４ｂｉｔ、第１種類の属性付き画像データ３２ｂｉｔ、第２種類の属性付き画像データ３２ｂｉｔ、第３種類の属性付き画像データ３２ｂｉｔ、及び第４種類の属性付き画像データ３２ｂｉｔを出力する（Ｓ５１１）。一方、属性が１種類であると判定した場合は（Ｓ５２４にてＹＥＳ）、単一属性識別フラグ「Ｆ」４ｂｉｔと配置パターンを示すパターンフラグ４ｂｉｔとをパターンフラグとして出力する。続いて第１種類の属性付き画像データ３２ｂｉｔ、（属性データ無しの）第２種類の画像データ２４ｂｉｔ、（属性データ無しの）第３種類の画像データ２４ｂｉｔ、（属性データ無しの）第４種類の画像データ２４ｂｉｔを出力する（Ｓ５２８）。ここで、単一属性識別フラグ「Ｆ」が付与されている場合は、第２〜４種類のデータ種類については、属性データを付与しないで出力するようにすることで、冗長な出力が抑制される。入力された属性付き画像データを２×２画素のブロックごとに分割し、当該分割された２ｘ２画素のブロックを順に処理対象として上述した処理（Ｓ５０１〜Ｓ５２８）を繰り返し行うことにより、圧縮データを得る。
【００３１】
以上のように、２ｘ２画素のブロックにおける１２８ｂｉｔ（４画素×３２ｂｉｔ）の入力データを、ブロック内の属性データが単一でない場合は、当該ブロック内の配置パターンを示すパターンフラグ（４ｂｉｔ）と、当該ブロック内に存在するデータ種類数分の属性付き画像データ（３２〜１２８ｂｉｔ）に変換して出力する。また、ブロック内の属性データが単一（１種類）であれば、第２〜４種類の画像データについては属性データを出力せず、単一属性識別フラグ「Ｆ」を付加して識別できるようにする。すなわち、ブロック内の属性データが単一（１種類）であれば、単一属性識別フラグ（４ｂｉｔ）のパターンフラグと、配置パターンを示すパターンフラグ（４ｂｉｔ）と、第１種類の属性付き画像データ（３２ｂｉｔ）と、属性データ無しの第２〜４種類の画像データ（２４〜７２ｂｉｔ）とに変換して出力する。
【００３２】
２ｘ２画素ブロック内の各画素は、同一の値を有する（すなわち、ＲＧＢ色データと属性データが同じ）場合が多く、更に、ＲＧＢデータが異なっても属性データは同じであるという場合も多い。したがって、入力画像全体でみると、上述したような処理を行うことで、データ圧縮が可能になる。
【００３３】
［データ構造］
上述したように、各ブロックに関して順次出力される、パターンフラグ（単一属性識別フラグと配置パターンを示すパターンフラグ）と、第１種類の属性付き画像データと、第２〜４種類のデータ（属性付き画像データまたは属性無し画像データ）とを、ＤＭＡＣを介してメモリに書き込む。その時ＤＭＡＣではパターンフラグと第１種類の属性付き画像データと、第２〜４種類のデータの書き込み位置を変える。ＤＭＡＣにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第１種類の属性付き画像データに対する書き込みのためのメモリ先頭アドレスと、第２〜種類のデータに対する書き込みのためのメモリ先頭アドレスとの３つのアドレスを指定する。図８にその例を図示する。パターンフラグ格納部には、２×２画素ブロックのパターンフラグ（単一属性識別フラグと配置パターンを示すパターンフラグ）が、ブロックの並び順にしたがって順番に格納される。このとき、単一属性であると判定されたブロックに関しては、単一属性識別フラグと配置パターンを示すフラグとが格納され、複数の属性があると判定されたブロックにおいては、配置パターンを示すフラグのみが格納されることになる。第１種類属性付き画像データ格納部（第１種類データ格納部）に関しては、２×２画素ブロックの予め決められた位置（例えば左上）の画素の属性付き画像データが、ピクセル単位で量子化や符号化されることなく、ブロックの並び順に従って順に格納されている。また、第２〜４種類データ格納部（第２〜Ｌ種類データ格納部）に関しては、２×２画素ブロック内の第２〜４種類のデータが格納される。このとき、単一属性であると判定されたブロックに関しては、第２〜４種類の（属性データ無し）画像データが格納され、複数の属性が存在すると判定されたブロックに関しては、第２〜４種類の属性付き画像データが格納される。
【００３４】
なお、第１種類属性付き画像データ格納部に格納されているデータは、元の入力画像に対し半分の解像度の画像が格納されているのに等しい。従って、高解像度の画像が必要ないような処理を行う場合は、第１種類属性付き画像データ格納部に格納されているデータを利用すればよい。このように、第１種類属性付き画像データ格納部に格納されているデータを利用する場合、１画素入力・１画素出力で完結する処理、例えばＬＵＴを用いた色データや属性データの変換や、ガンマ補正処理、行列演算を用いた種類空間変換処理等は、パターンフラグを参照する必要はない。従って、第１種類属性付き画像データ格納部に格納されているデータに対して直接処理を行うことが可能になる。図２に示している色処理部２１２ではメモリ１０６上の第１色書き込み先頭アドレス以降の画素データをＤＭＡＣ２１１経由で読み込み、画素単位での処理後にメモリ１０６へ書き戻す。この時何らかの画素単位処理によって画素のビット数が変わらない場合には、メモリ１０６の同じ場所へ上書きすることでメモリの節約も可能である。
【００３５】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。
【００３６】
すなわち、図８のように画像データを離散的にメモリ上へ格納することで、第１種類の属性付き画像データ格納部に限ってみると、画像を２ｘ２単位に左上の座標の画素をサンプリングした画像結果がメモリ上に連続して存在することになる。本実施形態で説明しているＭＦＰにおいては、蓄積したＰＤＬ画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が６００ｄｐｉであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、３００ｄｐｉやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第２〜４種類のデータを捨て、第１種類の属性付き画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【００３７】
例えば前述の例において、６００ｄｐｉで蓄積されていた場合の縮小送信時を説明する。解像度として４００ｄｐｉなどサンプリングされている３００ｄｐｉより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に３００ｄｐｉより小さい送信解像度指定がされている場合には第１種類属性付き画像データ格納部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【００３８】
［展開処理］
次に、圧縮部と対になる展開部２２２、２３２に関して説明する。展開部では前述したようなパターンフラグ、画素データに基づいて、元のラスタ画像データへ戻す処理（復号化処理）を行う。メモリにおいて、図８のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１種類書き込み先頭アドレス、及び第２、３、４種類書き込み先頭アドレスの３つのアドレスをＤＭＡＣへ指定する。ＤＭＡＣはその３つのアドレスからデータを読み出し、展開部へ入力する。
【００３９】
図１３は、展開部が実行する展開処理を示すフローチャートである。展開する圧縮データに対して、最初の２×２画素ブロックから順に展開対象として、Ｓ１３０１〜Ｓ１３１１の処理が繰り返し行われる。復号化処理が開始されると、Ｓ１３０１では、第１種類属性付き画像データ格納部から、第１種類の属性付き画像データを読み出す。最初は、最初の２×２画素ブロックの左上の画素に配置される画像データが読み出される。
【００４０】
Ｓ１３０２では、パターンフラグ格納部から４ｂｉｔ分のパターンフラグが読み出される。Ｓ１３０３では、Ｓ１３０２で読み出したパターンフラグが「Ｆ」であるか判定する。すなわち、単一属性のブロックであるかどうかを判断している。Ｓ１３０３でパターンフラグが「Ｆ」でない（単一属性でない）と判断した場合（Ｓ１３０３にてＮＯ）、Ｓ１３０３で読み出したパターンフラグは配置パターンを示すため、当該パターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める（Ｓ１３０４）。ここで、種類数が２〜４であれば、その種類数分のデータを第２〜４種類データ格納部から属性付き画像データを読み出す（Ｓ１３０５）。なお、種類数が１であれば、第２〜４種類のデータは無いので、Ｓ１３０５における読み出し処理は省略される。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、Ｓ１３０１とＳ１３０５で読み出した属性付き画像データを展開対象のブロック内に配置（展開）する（Ｓ１３０６）。その後、Ｓ１３１１へ進む。
【００４１】
一方、Ｓ１３０３でパターンフラグが「Ｆ」である（単一属性である）と判断した場合（Ｓ１３０３にてＹＥＳ）、パターンフラグ格納部から次の４ｂｉｔ分のパターンフラグを読み出す（Ｓ１３０７）。Ｓ１３０７で取得したパターンフラグに対して予め定義されている配置パターンに基づき、当該ブロック内に存在するデータの種類数を求める（Ｓ１３０８）。ここで種類数が２〜４であれば、その種類数分のデータを第２〜４種類データ格納部から（属性無しの）画像データを読み出す（Ｓ１３０９）。そして、パターンフラグに対して予め定義されている配置パターンに基づいて、Ｓ１３０１で読み出した第１種類の属性付き画像データとＳ１３０９で読み出した属性無しの画像データとを展開対象のブロック内に配置する（Ｓ１３１０）。このとき、属性データに関しては、Ｓ１３０１で読み出した第１種類の属性付き画像データに付与されている属性データを、当該ブロック内の全画素に展開する。そして、Ｓ１３１１へ進む。
【００４２】
Ｓ１３１１では、次のブロックがあるか判定し、次の展開対象ブロックがある場合は（Ｓ１３１１にてＹＥＳ）、Ｓ１３０１に戻り、全てのブロックの展開が終了したと判定した場合は（Ｓ１３１１にてＮＯ）、展開処理を終了する。
【００４３】
なお、解像度が元画像の半分の画像を必要とする場合、展開部では、前述したように、パターンフラグと第２〜４種類のデータを必要としない。従って、ＤＭＡＣには第１種類書き込み先頭アドレスのみ指定し、メモリからは第１種類のデータのみ読み込みを行い、画像を構成する。これによりメモリバスの帯域を節約することが可能になる。
【００４４】
なお本実施形態では左上の画素の値を第１種類のデータとしたが、これに限るものではなく、その他の画素（例えば右下の画素）の値を第１種類のデータとするように配置パターンを定義してもよい。また、入力された画像を２ｘ２画素（計４個の画素）のブロックを単位として分割していたが、これに限るものではなく、Ｍ×Ｎ画素（計Ｌ個の画素）のブロックごとに分割してもよい。もちろんブロックのサイズを変更する場合には、パターンフラグを扱うビット数も４ビット長から変更になることはいうまでも無い。また、色データとしてＲＧＢ各色８ｂｉｔのデータを例として説明していたが、ＣＭＹＫの色空間を取るものや、ＧＲＡＹスケールのデータ、また８ｂｉｔ以外のデータ長をとるものでも良い。
【００４５】
＜第二の実施形態＞
第一の実施形態では属性データが１種類のとき識別フラグ「Ｆ」を付加したに対し、第二の実施形態では属性データが複数種類のとき識別フラグ「Ｆ」を付加する実施形態を説明する。
【００４６】
図９に実施形態における画像圧縮フローを示す。図９においてＳ５３０〜Ｓ５３５の出力処理以外は第一の実施形態にて示した図５と同一である。第二の実施形態においては、Ｓ５２２〜Ｓ５２４の各分岐処理において属性データが複数種類あると判定した場合に識別フラグ「Ｆ」を付加する。第二の実施形態では、これを複数属性識別フラグ「Ｆ」と呼ぶこととする。一方、ブロック内の属性データが１種類のときは付加しない。これは第一の実施形態における属性識別フラグ「Ｆ」の付加基準が逆の関係となっている。入力データと出力データとの関係を図１０に示す。
【００４７】
圧縮符号としては、各ブロック内に存在する属性データが１種類であるかそうでないかを識別できればよいため、第一、第二の実施形態のいずれの方式でも成立する。いずれの実施形態を選択するかは属性データが１種類であるブロックと複数種類であるブロックとどちらの頻度が高いかによって選ぶとよい。一般に、発生頻度の高い事象には短い符号を割り当てると符号量が小さくなるため、各ブロックの属性データが１種類である確率が高ければ第二の実施形態の方式が好ましい。すなわち、各ブロックの属性データが１種類のときは４ｂｉｔの識別フラグ「Ｆ」が付加されないため、その分短い符号となる。
【００４８】
＜第三の実施形態＞
上述した第１〜２実施形態では、２×２画素ブロックが取り得る配置パターンが１５種類であるのに対して４ｂｉｔ（１６個）のフラグを割り当てるので、未使用となる１個のフラグ（Ｆ）を、属性が単一か複数かを判別するためのフラグとして有効に活用している。すなわち、パターンフラグのビット長は４ｂｉｔに抑えたまま、配置パターン以外の情報（属性が単一か複数かの情報）に利用している。
【００４９】
一方、入力された画像データによっては、連続する２×２画素ブロック単位で見た場合、配置パターンおよびデータ種類（色データおよび属性データの種類）が同じブロックが連続する場合がある。そこで、第３の実施形態では、同一ブロックの連続数を符合化する技術と組み合わせてさらに圧縮率を向上させる実施形態を説明する。
【００５０】
まず図１２を用いてパターンフラグの割り当て方を説明する。第二の実施形態におけるパターンフラグの割り当て方法を説明する図１０と比較されたい。相違点は第二の実施形態で複数属性識別フラグのために１つの「Ｆ」を付加していたのに対して第三の実施形態では２回の連続する「Ｆ」で代替していることである。以降上記フラグを複数属性識別フラグ「Ｆ、Ｆ」と称する。
【００５１】
本実施形態においては、単一の「Ｆ」の後に０乃至Ｅの値が続く場合、当該続く数値（０乃至Ｅ）は、（直前のブロックと同じ配置のブロックが繰り返される回数ｎ）−１を示すこととする。したがって、繰り返し回数ｎは、（単一の「Ｆ」の後の数値（０乃至Ｅ）＋１）回となる。例えば、パターンフラグが単一の「Ｆ」の後に「０」のフラグが続く場合、直前のブロックの画素配置と同じ画素配置のブロックが１回繰り返し配置されることを示すことになる。以下、繰り返される回数をｎとして上記フラグをリピートフラグ「Ｆ、ｎ−１」と称する。
【００５２】
なお、同じ画素配置のブロックが連続する場合でも、第１種類の属性付き画像データは全てのブロックで出力するものとする。すなわち、同じ画素配置のブロックが繰り返される回数（ｎ回）と同じ回数の第１種類の属性付き画像データが繰り返し回数分出力され、第１種類属性付き画像データ格納部に格納される。リピートフラグがあれば、前のブロックを参照することで第１種類の画像データも復元することは可能である。しかし、上述したように、第１種類の属性付き画像データに関しては全てのブロックについて格納した理由は、第１種類属性付き画像データ格納部に格納されている画像データをそのまま低解像度のサンプリング画像として扱える利点を優先したためである。ただし、第２〜４種類のデータに関しては、ブロック内に存在したとしても出力されないことになるので、圧縮率は向上する。なお、圧縮率を優先するのであれば、リピートフラグ「Ｆ、ｎ−１」のみを付加し、第１種類の属性付き画像データ及び第２〜４種類のデータの両方を省略するように構成することも可能である。
【００５３】
［処理フロー］
図１１を用いてフローを説明する。まず属性付き画像データが入力される（Ｓ１１０１）。その後、入力された属性付き画像データから分割された最初の２ｘ２画素ブロックが入力される（Ｓ１１０２）。Ｓ５０２以降最初のブロックの圧縮処理がなされデータが出力される。ここで、Ｓ５０２からＳ５２４までの処理及び分岐は図９の対応ステップと同じであるので説明を省略する。Ｓ１１１１からＳ１１１７までの出力処理に関しても図９のＳ５０６及びＳ５３０からＳ５３５までと類似である。ここでの相違点は、属性データが１種類でない（すなわち複数種類である）場合に１回の「Ｆ」の代わりに２回の「Ｆ」を付与して出力している点である。Ｓ１１１１乃至Ｓ１１１７のいずれかの処理により、圧縮データとしてパターンフラグとデータを出力して各格納部に格納させた後、当該２ｘ２画素ブロックの属性付き画像データを後の比較のために圧縮部内のバッファに一時記憶する（Ｓ１１１９）。ここで記憶されるブロック情報は、Ｓ１１０２にて入力された情報と同一である。
【００５４】
次にＳ１１１８にてすべてのブロックに対して処理が完了したかを確認する。完了した場合は、本処理フローを終了する（Ｓ１１２０）。すべてのブロックに対し、処理が完了していない場合（Ｓ１１１８）には、Ｓ１１０３へ進む。圧縮部はブロックの繰り返し数を計数するカウンタを保持し、次のブロック処理へ移る前に該繰り返しカウンタｎを初期化（ｎ＝０）する（Ｓ１１０３）。次に入力された属性付き画像データにおける未処理の次の２ｘ２画素ブロックを入力する（Ｓ１１０４）。Ｓ１１１９にて記憶されたブロックとＳ１１０４にて入力されたブロックとが一致するかの同一判定を行う（Ｓ１１０５）。比較したブロックが一致しない場合（Ｓ１１０５にてＮＯ）は、ｎの値が判定される（Ｓ１１０７）。ｎ＝０であれば（Ｓ１１０７にてＹＥＳ）、Ｓ５０２へ移行し上述の処理が繰り返される。これにより、第２判断手段を実現する。
【００５５】
Ｓ１１０５にて比較したブロックが一致した場合（Ｓ１１０５にてＹＥＳ）は、ｎに１がインクリメントされる（Ｓ１１０６）。その後、ｎの値を判定する（ＳＳ１１０８）。ｎ＝１５で無ければ（Ｓ１１０８にてＮＯ）、Ｓ１１０４へ戻り、次の未処理の２ｘ２画素ブロックが入力される。ここで、同一のブロックが続く場合を考える。同一のブロックが連続することにより、カウンタの値であるｎが増加する。ここで、本実施形態においてリピートフラグとして表せるのはｎが１５以下であるため、Ｓ１１０８にてｎ＝１５が検出されたときはＳ１１１０の出力処理へ移行する。Ｓ１１１０では直前のブロックが１５回繰り返されたことを意味するリピートフラグ「Ｆ、Ｅ」（１６進数表記）と前ブロックの第１種類にあたる画素のみの属性付き画像データが１５回繰り返して出力される。このパスを通るときは同一ブロックがまだ連続中なのでバッファに記録された情報は更新せずＳ１１１８を経てＳ１１０３へ戻る。
【００５６】
次にＳ１１０４からＳ１１０８までの処理を繰り返している間にＳ１１１９にて記憶したブロックと一致しないブロックが現れ、且つ繰り返しカウンタｎが０でなかった場合（Ｓ１１０５にてＮＯ、かつＳ１１０７にてＮＯ）を説明する。例えばｎ＝３のときにＳ１１０７へ分岐した場合はさらにＳ１１０９へ移行する。そして、上記記憶されたブロックと一致しないブロックが入力されるまでに繰り返されていたブロック数分の処理が実行される（Ｓ１１０９）。すなわち、ｎ＝３であれば、リピートフラグ「Ｆ、２」の生成出力とバッファに保持された第１種類の属性付き画像データが３回分生成出力されて、各格納部に格納される。Ｓ１１０９は、Ｓ１１１０にて出力される回数とリピートフラグの値が異なる。記憶されているブロックと一致しない新しく入力されたブロックは、Ｓ５０２以降の処理により圧縮処理され、フラグとデータが出力される。
【００５７】
以上述べたフローを入力された属性付き画像全体に対して繰り返す（Ｓ１１１８）ことにより圧縮処理が終了する（Ｓ１１２０）。
【００５８】
本実施形態ではフラグ「Ｆ」を、属性の種類数を識別することとブロックの繰り返しを識別することに用いたが、他の実施形態であってもよい。また本実施形態では第二の実施形態を元にブロックの連続性に着目した圧縮技術を付加したが、第一の実施形態をもとに実装しても良い。
【００５９】
以上により、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【００６０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011259246.tif 000003
【図２】
2011259246.tif 000004
【図５】
2011259246.tif 000005
【図９】
2011259246.tif 000006
【図１１】
2011259246.tif 000007
【図１３】
2011259246.tif 000008
【図３】
2011259246.tif 000009
【図４】
2011259246.tif 000010
【図６】
2011259246.tif 000011
【図７】
2011259246.tif 000012
【図８】
2011259246.tif 000013
【図１０】
2011259246.tif 000014
【図１２】
2011259246.tif 000015