(57)【要約】【課題】ブロック単位の符号化において、あるオブジェクトがブロックのごく一部にしか存在していない場合においても、領域の周期や連続性が損なわれ圧縮効率を低下させる。【解決手段】複数の画素で構成され、ブロック単位にてビットマップデータを符号化する画像符号化装置であって、当該ブロック内において、指定された属性データを有する画素の情報を記録し、予め設定された閾値と、前記画素の情報に基づいて各画素の情報を置換するか否かを決定し、その結果によりビットマップデータを展開し、符号化することを特徴とする。【選択図】  図９
2011139162.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素で構成されるブロックを単位としてビットマップデータを符号化する画像符号化装置であって、
前記画素はそれぞれ、当該画素が属するオブジェクトの属性を示す属性データ及び色情報を含む画素データを有し、
前記画素のうち、指定された属性を有する画素数もしくは画素データの色情報の値を積算し積算情報として保持する画素情報保持手段と、
当該ブロックにおける画素が有する前記指定された属性それぞれに対する閾値を設定する閾値設定手段と、
前記画素情報保持手段にて保持された前記積算情報と前記閾値設定手段にて設定された属性それぞれに対する閾値とを比較し、その結果に基づいて当該ブロックにおける各画素の値を置換するか否かを決定するオブジェクト判定手段と、
前記オブジェクト判定手段により置換すると決定された画素の値を当該画素の周囲画素のうち置換しないと決定された周囲画素の値がすべて同一の場合に当該周囲画素の値に置換し、当該ブロックのビットマップデータを符号化する符号化手段と
を有することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、前記ブロックのビットマップデータが有している解像度から任意の低解像度へサブサンプリングを行い、サブサンプリングした画素を圧縮データとする解像度変換手段を更に有することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化手段は、前記ブロックのビットマップデータが全て同一の画素値である場合は、当該画素値を代表画素値として当該ブロックを圧縮する画素圧縮手段を更に有することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記属性データは、線、イメージ、文字を含むオブジェクトの属性を表すことを特徴とする請求項１乃至３のいずれか一項に記載の画像符号化装置。
【請求項５】
前記画素情報保持手段は、前記ブロックにおける画素数を前記属性データに基づきオブジェクトの属性ごとにそれぞれ積算し、前記積算情報として保持することを特徴とする請求項４に記載の画像符号化装置。
【請求項６】
前記画素情報保持手段は、前記ブロックにおける画素が有する前記画素データの色情報である濃度値を、前記属性データに基づきオブジェクトの属性ごとにそれぞれ積算し、前記積算情報として保持することを特徴とする請求項４に記載の画像符号化装置。
【請求項７】
前記属性データは、前記オブジェクト判定手段にて決定した結果に関わらず、当該画素の値の置換を禁止する旨を示す禁止ビットを含むことを特徴とする請求項４乃至６のいずれか一項に記載の画像符号化装置。
【請求項８】
前記閾値設定手段は、印字動作を行う印字モードに応じて、前記閾値を設定することを特徴とする請求項１乃至７のいずれか一項に記載の画像符号化装置。
【請求項９】
複数の画素で構成されるブロックを単位としてビットマップデータを符号化する画像符号化装置の制御方法であって、
前記画素はそれぞれ、当該画素が属するオブジェクトの属性を示す属性データ及び色情報を含む画素データを有し、
前記画像符号化装置の画素情報保持手段が、前記画素のうち、指定された属性を有する画素数もしくは画素データの色情報の値を積算し積算情報として保持する画素情報保持工程と、
前記画像符号化装置の閾値設定手段が、当該ブロックにおける画素が有する前記指定された属性それぞれに対する閾値を設定する閾値設定工程と、
前記画像符号化装置のオブジェクト判定手段が、前記画素情報保持工程にて保持された前記積算情報と前記閾値設定工程にて設定された属性それぞれに対する閾値とを比較し、その結果に基づいて当該ブロックにおける各画素の値を置換するか否かを決定するオブジェクト判定工程と、
前記画像符号化装置の符号化手段が、前記オブジェクト判定手段により置換すると決定された画素の値を当該画素の周囲画素のうち置換しないと決定された周囲画素の値がすべて同一の場合に当該周囲画素の値に置換し、当該ブロックのビットマップデータを符号化する符号化工程と
を有することを特徴とする制御方法。
【請求項１０】
コンピュータを、
複数の画素で構成されるブロックにおける画素のうち、指定された属性を有する画素数もしくは画素データの色情報の値を積算し積算情報として保持する画素情報保持手段と、
当該ブロックにおける画素が有する前記指定された属性それぞれに対する閾値を設定する閾値設定手段と、
前記画素情報保持手段にて保持された前記積算情報と前記閾値設定手段にて設定された属性それぞれに対する閾値とを比較し、その結果に基づいて当該ブロックにおける各画素の値を置換するか否かを決定するオブジェクト判定手段と、
前記オブジェクト判定手段により置換すると決定された画素の値を当該画素の周囲画素のうち置換しないと決定された周囲画素の値がすべて同一の場合に当該周囲画素の値に置換し、当該ブロックのビットマップデータを符号化する符号化手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の符号化技術に関するものである。
【背景技術】
【０００２】
従来の符号化方法として、処理ハードの簡略化、または並列処理の容易化を目的として、画像データを複数のブロック単位で処理する手法が提案されている（例えば、特許文献１参照）。特許文献１ではブロック単位の処理において、着目ブロックの画像データ入力をさらにライン単位で比較する。さらに着目ラインと一致するラインが既に入力したライン中に存在するか否かを判定し、一致するラインを画素データの代わりに特定の識別情報に置き換えて符号化効率を高めるものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８―３０１４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようなブロック単位の符号化処理では、あるオブジェクトがブロックのごく一部分にしか含まれていない場合に、ある領域（この場合はライン）の周期性や連続性を損ない圧縮効率を低下させる。また特許文献１のような場合に限らず、ランレングス符号化法のようなデータの連続性を用いた符号化法をブロック毎に行う場合においても同様に連続性を損ない、圧縮効率の低下となる。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は以下の構成を有する。複数の画素で構成されるブロックを単位としてビットマップデータを符号化する画像符号化装置であって、前記画素はそれぞれ、当該画素が属するオブジェクトの属性を示す属性データ及び色情報を含む画素データを有し、前記画素のうち、指定された属性を有する画素数もしくは画素データの色情報の値を積算し積算情報として保持する画素情報保持手段と、当該ブロックにおける画素が有する前記指定された属性それぞれに対する閾値を設定する閾値設定手段と、前記画素情報保持手段にて保持された前記積算情報と前記閾値設定手段にて設定された属性それぞれに対する閾値とを比較し、その結果に基づいて当該ブロックにおける各画素の値を置換するか否かを決定するオブジェクト判定手段と、前記オブジェクト判定手段により置換すると決定された画素の値を当該画素の周囲画素のうち置換しないと決定された周囲画素の値がすべて同一の場合に当該周囲画素の値に置換し、当該ブロックのビットマップデータを符号化する符号化手段とを有する。
【発明の効果】
【０００６】
画像データをブロック単位で符号化する手法を適用する際に、所定の属性オブジェクトのごく一部が着目ブロックに含まれている場合においても、オブジェクトの画素数や動作モードに応じて可視的な画質影響がない範囲で別の画素に置換することにより、効率的に符号化を行うことができる。
【図面の簡単な説明】
【０００７】
【図１】本発明に係る画像処理システムの全体構成を示すブロック図。
【図２】本発明に係るソフトウェアモジュールを示すブロック図。
【図３】本発明に係るデータ構成の例を示す図。
【図４】第一の実施形態に係る画像圧縮部の内部構成を示すブロック図。
【図５】第一の実施形態に係る画素演算部の処理を説明する図。
【図６】第一の実施形態に係る画像圧縮符号化部の符号化データフォーマットの図。
【図７】第二の実施形態に係る画素圧縮部の内部構成を示すブロック図。
【図８】第二の実施形態に係るピース判定部の内部構成を示すブロック図。
【図９】第二の実施形態に係る画像符号化動作のフローを示すフローチャートの図。
【図１０】第二の実施形態に係る画像符号化動作のフローを示すフローチャートの図。
【図１１】第一の実施形態に係る閾値比較部における処理結果の例を示す図。
【図１２】第二の実施形態に係る閾値比較部における処理結果の例を示す図。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【０００９】
＜第一の実施形態＞
［システム構成］
図１は、本実施形態に係る画像符号化装置の全体構成を示すブロック図である。図１において、画像処理システム１００は、画像入力デバイスであるスキャナ１０１や画像処理システム１００において受信、及び処理されたデータを、プリンタ側にて画像処理を行うためにプリンタ画像処理部１１９を介して画像出力デバイスであるプリンタエンジン１０２と接続する。そして、画像データの読み取りやプリント出力のための制御を行う。また、画像処理システム１００は、ＬＡＮ１０や公衆回線１０４と接続することで、画像情報やデバイス情報をＬＡＮ１０経由で入出力するための制御を行う。
【００１０】
ＣＰＵ１０５は画像処理システム１００を含む画像符号化装置全体を制御するための中央処理装置である。ＲＡＭ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ＲＯＭ１０７はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ１０８はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データ等を格納する。操作部Ｉ／Ｆ１０９は、画像データ等を表示可能な表示画面を有する操作部１１０に対するインタフェース部であり、操作部１１０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ１０９は、操作部１１０から操作者が入力した情報をＣＰＵ１０５に伝える役割をする。ネットワークＩ／Ｆ１１１は、例えばＬＡＮカード等で実現され、ＬＡＮ１０に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム１１２は公衆回線１０４に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス１１３上に配置されている。
【００１１】
イメージバスＩ／Ｆ１１４は、システムバス１１３と画像データを高速で転送する画像バス１１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。そして、画像バス１１５上には、以下で詳述するラスタイメージプロセッサ（ＲＩＰ）部１１６、デバイスＩ／Ｆ１１７、スキャナ画像処理部１１８、画像編集用画像処理部１２０、画像圧縮部１０３、画像伸張部１２１、カラーマネジメントモジュール（ＣＭＭ）１３０が接続される。
【００１２】
ＲＩＰ部１１６は、ページ記述言語（ＰＤＬ）コードをイメージデータに展開する。デバイスＩ／Ｆ１１７は、画像伸張部１２１とプリンタ画像処理部１１９を介してスキャナ１０１やプリンタエンジン１０２と画像処理システム１００とを接続し、画像データの同期系／非同期系の変換を行う。
【００１３】
また、スキャナ画像処理部１１８は、スキャナ１０１から入力した画像データに対して、補正、加工、編集等の各種処理を行う。画像編集用画像処理部１２０は、画像データの回転や、トリミング・マスキング等の各種画像処理を行う。画像圧縮部１０３はＲＩＰ部１１６やスキャナ画像処理部１１８、画像編集用画像処理部１２０で処理された画像データをＨＤＤ１０８で一度格納する際に所定の圧縮方式で符号化するものである。画像伸張部１２１はＨＤＤ１０８で圧縮されている画像データをプリンタ画像処理部１１９で画像処理し、プリンタエンジン１０２で出力する場合において、一度圧縮され符号化されているデータを、復号化し伸張するものである。プリンタ画像処理部１１９は、プリント出力する画像データに対して、プリンタエンジンに応じた画像処理補正、解像度変換などの処理を行う。ＣＭＭ１３０は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理（色空間変換処理ともいう）を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間（例えばＬａｂなど）に変換するための関数のような情報である。キャリブレーションデータは、スキャナ１０１やプリンタエンジン１０２の色再現特性を修正するためのデータである。
【００１４】
［ソフトウェア構成］
図２で示される各ソフトウェアモジュールは主にＣＰＵ１０５上で動作する。図２に示すジョブコントロール処理２０１は各ソフトウェアモジュールを統括・制御し、コピー、プリント、スキャン、ＦＡＸ送受信など画像形成装置（不図示）内で発生するあらゆるジョブの制御を行う。ネットワーク処理２０２は、主にネットワークＩ／Ｆ１１１を介して行われる、外部との通信を制御するモジュールであり、ＬＡＮ１０上の各機器との通信制御を行う。ネットワーク処理２０２はＬＡＮ１０の各機器からの制御コマンドやデータを受信すると、その内容を、ジョブコントロール処理２０１へ通知する。また、ジョブコントロール処理２０１からの指示に基づき、ＬＡＮ１０の各機器へ制御コマンドやデータの送信を行う。ＵＩ処理２０３は、主に操作部１１０、操作部Ｉ／Ｆ１０９に係る制御を行う。操作者が操作部１１０を介して操作した内容を、ジョブコントロール処理２０１へ通知すると共に、ジョブコントロール処理２０１からの指示に基づいて、操作部１１０上の表示画面の表示内容を制御する。
【００１５】
ＦＡＸ処理２０４は、ＦＡＸ機能の制御を行う。ＦＡＸ処理２０４は、モデム１１２を介してＦＡＸ受信を行い、ＦＡＸ画像特有の画像処理を施した後、受信画像をジョブコントロール処理２０１へ通知する。また、ジョブコントロール処理２０１からの指定される画像を、指定通知先へＦＡＸ送信を行う。プリント処理２０７は、ジョブコントロール処理２０１の指示に基づいて、画像編集用画像処理部１２０、プリンタ画像処理部１１９およびプリンタエンジン１０２を制御し、指定画像の印刷処理を行う。プリント処理２０７は、ジョブコントロール処理２０１より、画像データ、画像情報（画像データのサイズ、カラーモード、解像度など）、レイアウト情報（オフセット、拡大縮小、面つけなど）および出力用紙情報（サイズ、印字方向など）の情報を受け付ける。そして、画像圧縮部１０３、画像伸張部１２１、画像編集用画像処理部１２０およびプリンタ画像処理部１１９を制御して、画像データに対して適切な画像処理を施し、プリンタエンジン１０２を制御して指定用紙への印刷を行わせる。
【００１６】
スキャン処理２１０は、ジョブコントロール処理２０１の指示に基づいて、スキャナ１０１およびスキャナ画像処理部１１８を制御して、スキャナ１０１上にある原稿の読み込みを行わせる。ジョブコントロール処理２０１の指示には、カラーモードが含まれており、スキャン処理２１０ではカラーモードに応じた処理が行われる。すなわち、カラーモードがカラーであれば、原稿をカラー画像として入力し、カラーモードがモノクロであれば、原稿をモノクロ画像として入力する。また、カラーモードが“Ａｕｔｏ”である場合には、プレスキャンなどにより原稿のカラー／モノクロ判定を行った後、判定結果に基づいた画像として再度原稿をスキャンして画像を入力する。スキャン処理２１０は、スキャナ１０１の原稿台にある原稿のスキャンを実行し、デジタルデータとして画像の入力を行う。入力した画像のカラー情報は、ジョブコントロール処理２０１へ通知される。さらに、スキャン処理２１０は入力画像に対し、スキャナ画像処理部１１８を制御して画像の圧縮等、適切な画像処理を施した後、ジョブコントロール処理２０１へ画像処理済みの入力画像を通知する。
【００１７】
色変換処理２０９は、ジョブコントロール処理２０１の指示に基づいて、指示画像に対して、色変換処理を行い、色変換処理後の画像をジョブコントロール処理２０１へ通知する。ジョブコントロール処理２０１は、色変換処理２０９に対して、入力色空間情報、出力色空間情報および色変換を適用する画像を通知する。色変換処理２０９に通知された出力色空間が、入力機器に依存しない色空間（例えばＬａｂ空間）である場合には、入力機器に依存する入力色空間（例えば、ＲＧＢ）からＬａｂに変換するための情報である入力プロファイル情報があわせて通知される。この場合、色変換処理２０９は入力プロファイルより、入力色空間からＬａｂ空間へマッピングするルックアップテーブル（ＬＵＴ）を作成し、このＬＵＴを利用して入力画像の色変換を行う。
【００１８】
また、色変換処理２０９に通知された入力色空間が、Ｌａｂ空間である場合には、Ｌａｂ空間から出力機器に依存する出力色空間に変換するための出力プロファイル情報が併せて通知される。この場合、色変換処理２０９は出力プロファイルより、Ｌａｂ色空間から出力色空間へマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。また、色変換処理２０９に通知された入力色空間、出力色空間の双方が、デバイスに依存する色空間である場合には、入力プロファイルと出力プロファイルの双方が通知される。この場合、色変換処理２０９は入力プロファイルおよび出力プロファイルより、入力色空間から出力色空間へダイレクトにマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。色変換処理２０９では、ＣＭＭ１３０が機器内にあれば、ＣＭＭ１３０へ生成したＬＵＴを設定することより、ＣＭＭ１３０を利用して色変換を行う。一方、ＣＭＭ１３０がない場合にはＣＰＵ１０５がソフトウェア的に色変換処理を行う。
【００１９】
ＲＩＰ処理２１１は、ジョブコントロール処理２０１の指示に基づいて、ＰＤＬ（ページ記述言語）の解釈（インタプリット）を行い、ＲＩＰ部１１６を制御してレンダリングすることで、ビットマップイメージへの展開を行う。以上のような構成でプリント動作中の符号化動作における本実施の形態を図９のフローチャートに基づいて詳細に説明する。上述したようにＬＡＮ１０を介して送信されてきたＰＤＬ（ページ記述言語）は、ネットワークＩ／Ｆ１１１にて受信し、イメージパスＩ／Ｆ１１４よりＲＩＰ部１１６へ入力される。ＲＩＰ部１１６は送信されたＰＤＬ解釈（インタプリット）を行い、ＲＩＰ部１１６にて処理できるコードデータへ変換し、それに基づいてレンダリングを実行する。
【００２０】
［データ構成例］
図３（Ａ）はプリントデータ内のオブジェクト群と上述したＲＩＰ部１１６に展開するための命令群をリスト化したコードデータの一例である。図３（Ａ）のように線画や円等の図形とそれに対応するカラー等の描画命令を記述してあるものである。ここでＲＩＰ部１１６は例えばコードデータ３００１内のＴＨＩＮ＿ＬＩＮＥ（細線）などの描画命令を受けレンダリングを実行し、対応する画素を出力しビットマップデータを作成する。このときに例えばＴＨＩＮ＿ＬＩＮＥ（細線）というオブジェクトから描画された画素に対してはオブジェクトの属性の識別ができるように属性フラグを各画素に付加して（この場合は“細線”）、出力する。
【００２１】
図３（Ｂ）はビットマップデータにおける画素データのフォーマット例である。図３（Ｂ）にて示した場合は各画素がＣＭＹＫ形式の２５６階調、つまり８ビットで表現される（領域４００１〜領域４００４）。更に、色情報であるＣＭＹＫの合計３２ビットに加えて、オブジェクトの属性を示す属性データとして、属性フラグ４００５の８ビット（ビット４０１０〜ビット４０１７）を付加し、１画素のデータとした。なお属性フラグ４００５は各ビットにそれぞれ、文字ビット４０１０、小文字ビット４０１１、線ビット４０１２、細線ビット４０１３、フラットビット４０１４、イメージビット４０１５、背景ビット４０１６、オブジェクトの特性に応じた割り当てを有する。また本実施形態において、属性フラグの１ビットの割り当てを図３（Ｂ）のように補償ビット４０１７とする。これは例えば細線などのオブジェクトにおいて、細線の始点や終点以外の中間線の画素に補償ビットを付加するものとする。これにより後述する画素置換の処理において、細線端部以外の画素が置換される条件の場合でも、補償ビットが立っていれば置換することを禁止するものである。この置換処理に対する禁止ビットとしての役割を備えることにより、重要な画像情報の欠落を抑制することができる。なお、図３（Ｂ）にて示したようなフォーマットに制限されるものではなく、順番や構成要素を上記以外のオブジェクトの特性などに応じて変更してもよい。上記のようにレンダリングされ属性フラグ４００５が付加されたビットマップ形式の画像データは画像バス１１５を介して、画像圧縮部１０３へ入力される。なお本実施形態においてＲＩＰ部１１６からの出力は３２×３２のタイル単位（ブロック単位）で順次出力されるものとする。
【００２２】
［画像圧縮部］
図４は画像圧縮部１０３内部の詳細ブロック図である。以下に各部位の説明を図９にて示すフローと対応付けながら説明する。属性識別部５０１はＲＩＰ部１１６より付加されたオブジェクトの属性フラグ４００５を識別する（Ｓ１０１）。その結果、対象オブジェクトの画素が入力された場合にその画像データに含まれる属性フラグ４００５（本実施形態の場合は７種類）に基づいてカウントの許可信号ＥＮ０〜６を発行し、対応づけられたカウンタ５０３（０〜６）をそれぞれインクリメントしていく。さらに属性フラグ４００５を有する画素データは属性識別部５０１から次段の入力タイルバッファ５０５へ送信される。閾値設定部５０２はオブジェクトの属性毎に任意の設定値を設定できるものとし、プリント処理２０７は閾値設定部５０２に対して、各属性に対応した閾値を設定する（Ｓ１０２）。本実施形態においては、上述したようにＲＩＰ部１１６からの出力は３２×３２の計１０２４画素分を単位としている。そのため、設定値は各属性（図３（Ｂ）で説明した属性フラグ４００５における４０１０〜４０１６の属性）に対して０〜１０２４の設定値を設定することが可能である。カウンタ５０３にて保持した各オブジェクトに対する積算情報により、画素情報保持部を実現する。ここでのカウンタの値は、結果として所定のオブジェクトの属性を有する画素数に対応することとなる。
【００２３】
なお、各属性値に設定する値は、例えば“細線”や“小文字”のような画素置換されると画質の影響が大きい属性のオブジェクトについては閾値を他のオブジェクトに比べ低く設定を行う。また図形の塗りつぶし等に使用される“フラット”のような属性のオブジェクトは他のオブジェクトに比べて高く設定するなど、画質に影響の出ない範囲で設定値を個別に設定してもよい。例えば、閾値設定部５０２へ属性毎に閾値を設定する場合、“細線”、“小文字”のような画素の置換により、画質の影響が大きいオブジェクトには０〜２のような低い値を設定し、その他オブジェクトに対しては、５〜１０のような大きい値を設定する。図１１（Ａ）は本実施形態で設定した値の一例を示す。“細線”のオブジェクトのように閾値を０に設定した場合には、実質的に“細線”のオブジェクトの画素は後段の処理にて画素置換されないことを意味する。また、閾値設定部５０２にて設定する閾値は、画像符号化装置が行う印字動作に係る印字モードに応じて閾値を設定、変更することが可能である。
【００２４】
入力タイルバッファ５０５のバッファがフルになり、１タイル分の画素を全て受けた場合に入力タイルバッファ５０５より発行されるＴＩＬＥ＿ＦＵＬＬ信号を、各々の閾値比較部５０４（０〜６）にて受信する（Ｓ１０３）。次に閾値比較部５０４（０〜６）は閾値設定部５０２とカウンタ５０３（０〜６）の値を比較し、閾値設定部５０２に指定された閾値が大きい場合にはＣＵＬＣ＿ＥＸＥ０〜６信号をそれぞれ発行する。つまりＣＵＬＣ＿ＥＸＥ信号が発行された属性のオブジェクトについてはそのタイルの中では画質の影響が少なく実質的に他の画素へ置換が可能なことを意味するものである。図１１（Ｂ）は先ほどの属性毎の設定値に対してある１タイル分の画素が入力された後のカウンタ５０３（０〜６）の結果とＣＵＬＣ＿ＥＸＥ０〜６信号の状態を示すものである。図１１（Ｂ）のように各属性の閾値に対して、カウンタ値の方が小さい場合にＣＵＬＣ＿ＥＸＥ信号を発行する。ここでは、“文字”の属性において、閾値よりもカウンタ値の方が小さいため、ＣＵＬＣ＿ＥＸＥ０＝１を発行している。それ以外の属性においては、ＣＵＬＣ＿ＥＸＥ＝０である。これにより、オブジェクト判定手段を実現する。
【００２５】
画素演算部５０６は、閾値比較部５０４（０〜６）からの信号に基づいて入力タイルバッファより読み出された画素の演算、及び必要に応じて画素情報の置換を行う（Ｓ１０４）。図５はその演算方法を説明する図である。
【００２６】
［置換演算］
上述したように入力タイルバッファ５０５に格納されたタイルデータは、バッファがフルになり次第、順次先頭の画素より画素演算部５０６に出力されていく。座標（ｍ，ｎ）の着目画素が画素演算部５０６に入力された場合を説明する。本実施形態では着目画素の周囲画素、つまり図５（Ａ）に示した座標（ｍ−１，ｎ−１）の左上の画素から、座標（ｍ＋１，ｎ＋１）右下の画素までの周囲８画素を含めた３×３のウィンドウで演算処理する。本実施形態においては、着目画素が入力される場合に、周囲画素（８画素）が同時に呼ばれて入力される構成とする。着目画素が入力された際にその画素が有する属性フラグを確認し、閾値比較部５０４（０〜６）より出力されているＣＵＬＣ＿ＥＸＥ信号を確認する。ここで、対応する属性のＣＵＬＣ＿ＥＸＥ信号が“１”となっている場合には、着目画素の周囲８画素を解析する。つまり、周囲画素のうちＣＵＬＣ＿ＥＸＥ信号が発行されていない、すなわち置換可能ではない属性の情報を有する画素のみ（図５における網点の画素以外）を参照画素として比較する。その結果、これら全ての画素が同一画素である場合は着目画素をその同一の画素の値で置換する。ここで、図５（Ａ）の場合に座標（ｍ，ｎ）の着目画素はＣＵＬＣ＿ＥＸＥ信号が発行されている画素であり、置換可能と判定されている。また周辺画素において、座標（ｍ，ｎ＋１）の網点の画素も置換可能な画素（つまりＣＵＬＣ＿ＥＸＥ信号が発行された属性の画素）となっている。この場合はその他の周囲７画素の比較を行い、同一画素の場合は図５（Ｂ）のように着目画素を周囲７画素と同様に置換する。図５（Ｃ）のようにタイルの端部（図５（Ｃ）の場合では、タイルの左上や、左端）に着目画素がある場合は図５（Ｃ）のように周囲３画素（左上が着目画素の場合）や周囲５画素（左端が着目画素の場合）のみを参照し、上記と同様の処理を行う。このようにして画素演算部５０６で処理された画素は次段の画素圧縮符号化部５０７に送信される。
【００２７】
［圧縮符号化］
画素演算部５０６から送信されてきた画素は、画素圧縮符号化部５０７内のバッファ（不図示）に格納され、全てのタイル内の画素が送信された時点（Ｓ１０５）で画素圧縮符号化部５０７はタイル単位で全ての画素が同じ場合か否かを判定する（Ｓ１０６）。タイルにおける全ての画素値が同一の場合には、その画素値を代表画素値として有する代表１画素として圧縮する。図６にその複数の符号化されたタイルデータのストリーム例を示す。例えば着目したタイルの全ての画素が同一の場合には、タイルデータのストリームの先頭ビットを圧縮フラグとして割り当て、代表１画素に圧縮した場合にはこの圧縮フラグに１を立てる。続いて代表１画素（図６中のＣｏｍｐ  Ｐｉｘｅｌ）のデータを圧縮データとして格納することで符号化動作を行う。このとき、タイルの全ての画素が同一でない場合（図６の場合、Ｔｉｌｅ２）は圧縮フラグを０とし、３２×３２タイルの全ての画素にあたる１０２４画素分（Ｐｉｘｅｌ０〜１０２３）を格納する。これらの処理をタイル毎に行い、ページでのタイル符号化処理を終了する（Ｓ１０７）。
【００２８】
このように画像圧縮部１０３にてタイル単位に符号化された画像データは、イメージパスＩ／Ｆ１１４を介してＨＤＤ１０８へ各ページのタイル群を格納していく。格納されたタイル群はプリンタエンジン１０２の出力タイミングに同期して呼び出される。そして、イメージバスＩ／Ｆ１１４、デバイスＩ／Ｆ１２１を介して画像伸張部１２１にて圧縮され符号化された画像データを複号化し、伸張することで画像データを復元する。復元された画像データはページ毎に一旦ＲＡＭ１０６にて展開される。展開された画像データは、後述するプリンタ画像処理部１１９内のタイル分割ＤＭＡＣ３００により印字するページのタイミングで読み出される。そして、プリンタ画像処理部１１９にてプリンタ系の所望の画像処理を実行し、プリンタエンジン１０２にて記録媒体に印字され排出することによりプリント動作を終了する。
【００２９】
以上、説明してきたように画像データのタイル単位の符号化を行う場合において、本実施形態のようにタイル内に存在するオブジェクトの属性とそれに対応する画素数をカウントする。その結果、画質の影響が少なく実質的に他の画素へ置換が可能な画素に対して置換処理を行うことにより、効率的に符号化を行うことができる。また、所定の属性オブジェクトのごく一部が着目ブロックに含まれている場合においても、その一部のオブジェクト画素の画素数や動作モードに応じて可視的な画質影響がない範囲で別の画素に置換することにより効率的に符号化を行うことができる。
【００３０】
＜第二の実施形態＞
第二の実施形態に係る画像処理システムの全体構成については第一の実施形態にて説明した図１と同様であるので説明を省略する。次にプリント動作中の符号化動作における本実施形態を図１０のフローチャートに基づいて詳細に説明する。
【００３１】
第一の実施形態と同様にＲＩＰ部１１６にてレンダリングされ属性フラグ４００５が付加されたビットマップ形式の画像データは画像バス１１５を介して、画像圧縮部１０３へ入力される。本実施形態においても、属性フラグ４００５の１ビットの割り当てを第一の実施形態でも説明した図３（Ｂ）のように補償ビット４０１７とする。これは後段のピース判定部８０６にて述べるＣＬＵＣ＿ＥＸＥ信号に関わらず必ず参照画素として処理される画素を表すものとする。この補償ビット４０１７は、例えば黒や濃い濃度のオブジェクトの上に描画された文字や、アウトラインの画素につけられるものである。これにより後段の濃度等の積算により画素置換をされる場合においても置換を禁止する。これは例えば白文字などの濃度的に薄いが下地のオブジェクトにより置換される影響が大きい場合には置換を抑制するものである。なお本実施形態においても同様にＲＩＰ部１１６からの出力は３２×３２のタイル単位で順次出力されるものとする。
【００３２】
［画像圧縮部］
図７は本実施形態における画像圧縮部１０３内部の詳細ブロック図である。図１０の処理と対応付けながら述べる。属性識別部８０１はＲＩＰ部１１６より付加されたオブジェクトの属性フラグを識別する（Ｓ１１１）。そして、対象オブジェクトの画素が入力された場合にその属性フラグ４００５に基づいてカウンタの動作許可信号ＥＮ０〜６を発行し、対応づけられた濃度積算カウンタ８０３（０〜６）をインクリメントしていく（Ｓ１１２）。この濃度積算カウンタ８０３は各画素の色コンポーネント毎にカウンタを有し、各画素のＣ：Ｍ：Ｙ：Ｋのそれぞれの値をカウントしていくものである。例えばＣＭＹＫの４つのコンポーネントで構成されている各濃度値が０：６４：１２８：２５５の場合にはこれらの値を濃度分だけカウントアップする。したがって濃度積算カウンタ８０３は各画素の濃度を逐次カウントアップし、積算したものを保持しておく。
【００３３】
また属性フラグを有する画素データは次段の入力タイルバッファ８０５へ送信される。閾値設定部８０２はオブジェクトの属性毎に設けられた濃度積算カウンタ８０３（０〜６）のコンポーネント毎に任意の設定値を設定できるものとし、プリント処理２０７は閾値設定部８０２に対して、各属性に対応した設定値を設定する（Ｓ１１３）。上述したようにＲＩＰ部１１６からの出力は３２×３２の計１０２４画素分あり、さらに濃度値は図３（Ｂ）で説明したようにＣＭＹＫの各コンポーネントで０〜２５５の濃度階調を有する。したがって閾値の設定範囲は各属性（図３（Ｂ）で説明した４００５〜４０１１の属性）に対して０〜２６１１２０（１０２４画素×２５５）の設定値をＣＭＹＫのコンポーネント毎に設定することが可能である。
【００３４】
なお、第一の実施形態と同様に各属性値に設定する値も先ほど述べたように、例えば“細線”や“小文字”のような画素置換されると画質の影響が大きい属性のオブジェクトについては閾値を他のオブジェクトに比べ低く設定を行う。また図形の塗りつぶし等に使用される“フラット”のような属性のオブジェクトは他のオブジェクトに比べて高く設定するなど、画質に影響の出ない範囲で設定値を個別に設定してもよい。例えば、閾値設定部８０２へ属性毎に閾値を設定する場合、“細線”、“小文字”のような画素の置換に対して、画質の影響が大きいオブジェクトには０〜５１０のような低い値を設定する。そして、その他オブジェクトに対しては、１２７５〜２５５０のような大きい値を設定しておく。図１２（Ａ）は本実施形態で設定した値の一例を示す。本実施形態は各ＣＭＹＫのコンポーネント毎に濃度の閾値を設定し、図１２（Ａ）のように可視的に影響のあるＫのようなコンポーネントの濃度の閾値を他のコンポーネントと比較して小さく設定するなど、第一の実施形態の場合よりさらに詳細な設定を可能とした。
【００３５】
上記の“細線”のオブジェクトのように閾値を０に設定した場合には、第一の実施形態と同様に実質的に“細線”のオブジェクトの画素は後段の処理にて画素置換されないことを意味する。
【００３６】
閾値比較部８０４（０〜６）は後述する入力タイルバッファ８０５のバッファがフルになり、１タイル分の画素を全て受けた場合に入力タイルバッファ８０５よりＴＩＬＥ＿ＦＵＬＬ信号を発行する（Ｓ１１４）。次に閾値比較部８０４（０〜６）は閾値設定部８０２と濃度積算カウンタ８０３（０〜６）の各コンポーネント（本実施形態の場合はＣＭＹＫの４コンポーネント）の値を比較する。その結果、閾値設定部８０２のコンポーネント毎の値が全て大きい場合にはＣＵＬＣ＿ＥＸＥ０〜６信号をそれぞれ発行する。つまりＣＵＬＣ＿ＥＸＥ信号が発行された属性のオブジェクトについてはそのタイルの中では画質の影響が少なく、実質的に他の画素へ置換が可能なことを意味するものである。図１２（Ｂ）は先ほどの属性毎の設定値に対してある１タイル分の画素が入力された後の濃度積算カウンタ８０３（０〜６）の結果とＣＵＬＣ＿ＥＸＥ０〜６信号の状態を示すものである。各属性の各コンポーネント（ＣＭＹＫ）の閾値に対して、各コンポーネントの各カウンタ値を各々比較し、全てのコンポーネントにおいて、閾値のほうが大きい場合を求める。図１２（Ｂ）の場合においては、“フラット”の属性に対してＣＵＬＣ＿ＥＸＥ４＝１を発行している。
【００３７】
［ピース判定部］
図８はピース判定部８０６の内部ブロック図である。２×２画素演算部９００１は入力タイルバッファ８０５に入力された画素を２×２の矩形単位の４画素を同時に読み出す。なお、ここでは、タイルに含まれる２×２の４画素を便宜上“ピース”と呼んでいる。そして、各ＣＵＬＣ＿ＥＸＥ０〜６の信号状態を確認し、後述する演算を行いフラグレジスタ９００３へ判定結果であるＪＤＧ信号として送信する（Ｓ１１５）。またタイルカウンタ部９００２は、２×２画素演算部９００１が４画素づつ入力されるたびに発行するＣＯＵＮＴ＿ＵＰ信号の受信をトリガとしてカウントアップしていく。タイル分（本実施形態の場合は３２×３２）の全ての画素が２×２画素演算部９００１に入力された時点でＴＩＬＥ＿ＥＮＤ信号をフラグレジスタ９００３へ入力する。フラグレジスタ９００３は２×２画素演算部９００１に逐次入力され処理された結果を内部の判定フラグとして記憶することができるレジスタである。タイルカウンタ部９００２から入力されたＴＩＬＥ＿ＥＮＤ信号に従って記憶していた判定フラグを確認し、次段のサブサンプリング処理部８０７にサブサンプリングを実行するか否かを決定するためのＰＲＯＣ＿ＥＸＥ信号を出力する。
【００３８】
以上のピース判定部８０６の構成にて内部動作を説明する。まず上述したように２×２画素演算部９００１は入力タイルバッファ８０５に入力された画素を２×２の矩形単位にて４画素を同時に読み出す。次に各画素の画素値と属性を比較する。まず属性を認識し、属性に対応するＣＵＬＣ＿ＥＸＥ信号を確認する。対応する属性のＣＵＬＣ＿ＥＸＥ信号が”１”となっている場合には、参照画素としない。反対にＣＵＬＣ＿ＥＸＥ信号が”０”となっている場合は参照画素とする。さらに上述したように補償ビットが”１“となっている画素については画質に影響があると判断された画素であるのでＣＵＬＣ＿ＥＸＥ信号に関わらず参照画素として認識する。こうして決定した参照画素のみを比較し、全て同一の画素値の場合にはＪＤＧ信号を”Ｈ”を出力する。同一の画素値でない場合は”Ｌ“を出力し、このようにして各２×２の矩形単位で演算を行っていく。ＪＤＧ信号を受けたフラグレジスタ９００３は内部の判定フラグに結果を反映する。本実施形態において判定フラグは初期値として”Ｈ”レベルを記憶しておき、ＪＤＧ信号から”Ｌ“が入力されたときに判定フラグ”Ｌ”レベルに変更する。この判定フラグは全ての判定が終了するまで”Ｌ”レベルを維持する。入力タイルバッファ８０５より読み出された全ての画素が演算を終了した時点（この場合は３２×３２＝１０２４を２×２の単位で演算するので計２５６回演算を行う）で、タイルカウンタ部９００２よりＴＩＬＥ＿ＥＮＤ信号をフラグレジスタ９００３へ出力する。そして、フラグレジスタ９００３はＴＩＬＥ＿ＥＮＤ信号を受けると判定フラグを確認し、”Ｈ”レベルの場合はサブサンプリング処理部にサブサンプリングの実行を許可するＰＲＯＣ＿ＥＸＥ信号を発行する（Ｓ１１６）。
【００３９】
サブサンプリング処理部８０７はＰＲＯＣ＿ＥＸＥ信号を受信し、ＰＲＯＣ＿ＥＸＥ信号の状態を確認する（Ｓ１１７）。ＰＲＯＣ＿ＥＸＥ信号が発行されている場合（ＰＲＯＣ＿ＥＸＥ＝１）は、低解像度へのサブサンプリングの実行を行う。従って入力タイルバッファから１画素ずつ読出しを開始し、サブサンプリングした画素を順次出力していく。具体的には、２×２の矩形単位から１画素を出力してやることで当初の解像度に比べて低解像度となるサブサンプリング処理を実行する（Ｓ１１８）。
【００４０】
以上、説明してきたように画像圧縮部１０３にてタイル単位にサブサンプリングされた画像データは、イメージパスＩ／Ｆ１１４を介してＨＤＤ１０８へ各ページのサブサンプリングタイル群を格納していく。格納されたサブサンプリングタイル群はプリンタエンジン１０２の出力タイミングに同期して呼び出される。そして、イメージバスＩ／Ｆ１１４、デバイスＩ／Ｆ１１７を介して画像伸張部１２１にてサブサンプリングされた画像データを複号化し、伸張することで画像データを復元する。復元された画像データは第一の実施形態と同様にページ毎に一旦ＲＡＭ１０６にて展開される。展開された画像データは、後述するプリンタ画像処理部１１９内のタイル分割ＤＭＡＣ３００により印字するページのタイミングで読み出される。その後、プリンタ画像処理部１１９にてプリンタ系の所望の画像処理を実行し、プリンタエンジン１０２にて記録媒体に印字され排出することによりプリント動作を終了する。
【００４１】
以上、説明してきたように画像データのタイル単位のサブサンプリングを行う場合において、タイル内に存在するオブジェクトの属性とそれに対応する画素の濃度をコンポーネント毎に積算することにより、さらに精度が高く画質の影響が少なくなるように処理することが可能となる。また実質的に他の画素へ置換が可能な画素に対して置換処理を行うことにより、効率的にサブサンプリングを行うことができる。
【００４２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011139162.tif 000003
【図２】
2011139162.tif 000004
【図３】
2011139162.tif 000005
【図４】
2011139162.tif 000006
【図５】
2011139162.tif 000007
【図６】
2011139162.tif 000008
【図７】
2011139162.tif 000009
【図８】
2011139162.tif 000010
【図９】
2011139162.tif 000011
【図１０】
2011139162.tif 000012
【図１１】
2011139162.tif 000013
【図１２】
2011139162.tif 000014