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