(57)【要約】【課題】  同一画素値の連続が多いにも関わらず、画像の特徴によってはデータ量が減りにくい場合がある。【解決手段】  本発明は、画像データを、複数の画素から構成されるブロックに分割する分割手段と、前記ブロック毎に最多色を検出する最多色検出手段と、  前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有する。【選択図】  図６
2011013963.tif 000002
【特許請求の範囲】
【請求項１】
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記分割手段によって分割された各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替わるフラグを設定する解像度切替フラグ設定手段と、
前記各ブロックにおいて重畳される画素がある場合とない場合で切り替えるフラグを設定する重畳フラグ設定手段
をさらに有する請求項１に記載の画像処理装置。
【請求項３】
前記最多色検出手段は、
前記分割手段によって分割された各ブロックで最も多く使用されている色を最多色として検出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
最多色占有率算出手段は、
前記最多色が各ブロック内に占める割合を最多色占有率として算出することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記データ生成手段は、
前記最多色占有率が１００％の場合には、低解像度画素のみで構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より大きく、１００％未満の場合は、高解像度画素と低解像度画素を重ねて構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より小さい場合は、高解像度画素のみで構成されるブロックを生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記重畳される画素がある場合のブロック数を算出する手段と、
前記算出したブロック数が総ブロック数に対して占める割合を占有率として算出する手段と、
前記占有率が予め定められた閾値より大きい場合には、重畳フラグの破棄を行う手段を有する請求項２に記載の画像処理装置。
【請求項７】
画像データを、複数の画素から構成されるブロックに分割する分割工程と、
前記ブロック毎に最多色を検出する最多色検出工程と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出工程と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成工程とを有することを特徴とする画像処理方法。
【請求項８】
コンピュータを
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率よくデータ量の削減を行う画像処理装置、画像処理方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
従来、画像の特徴に応じて各画素毎に解像度を切り替えながら印刷できるようにすることにより、画質を保ちながら余分なデータの発生を無くし、画質劣化や必要以上の印刷データ量の増加を防ぐことが考えられている。
【０００３】
特許文献１では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定する。そのブロックが均一な色であれば、低解像度の画素とみなし、数ドットをまとめたブロックを実際の１画素として使用する。均一な色でなければ、高解像度の画素とみなして複数解像度の印刷データを生成する。尚、低解像度の画素と高解像度の画素の切り替えには、解像度切り替えコードを使用する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２２０８３０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の方法では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定しているため、同一画素値の連続が多いにも関わらず、画像の特徴によってはデータ量が減りにくい場合がある。例えば、文字や線画のエッジ部分、あるいは地紋や格子模様などは、均一な色とならない場合が多いため、高解像度の画素とみなされてしまい、データ量が減りにくい。図９の９０１は、格子模様を示す画像の一例であり、９０１を４×４のブロックに分割すると、９０２〜９０７で示す図のようになる。ここで、９０２及び９０３は、ブロックが均一な色であるため、９０８で示すように低解像度の画素と見なすことがきるが、９０４〜９０７は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【０００６】
また、９０９は、線画のエッジ部分を示す画像の一例であり、９０９を４×４のブロックに分割すると、９１０〜９１３で示す図のようになる。ここで、９１０〜９１３は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【課題を解決するための手段】
【０００７】
本発明は上記課題を解決することを目的とし、画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記各ブロックの中で最多色を検出する最多色検出手段と、
前記最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、
低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段と、
を有することを特徴する。
【発明の効果】
【０００８】
本発明によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【図面の簡単な説明】
【０００９】
【図１】本発明のデータ構造について説明するための図である。
【図２】本発明に係る画像処理システムを示すブロック図である。
【図３】図２の解像度切替部２１８の構成例を示すブロック図である。
【図４】図２のＲＩＰ部２１３の構成例を示すブロック図である。
【図５】本発明の最多色占有率について説明するための図である。
【図６】本発明の画像処理システムで実行する処理概要を説明するフローチャートである。
【図７】本発明のデータ構造について説明するための図である。
【図８】本発明の最多色占有率とデータ量の関係を説明する図である。
【図９】本発明の課題を補足するための図である。
【図１０】本発明の実施例２における図２の解像度切替部２１８の処理を説明するフローチャートである。
【図１１】本発明の実施例３における図２の解像度切替部２１８の処理を説明するフローチャートである。
【図１２】本発明の実施例３におけるデータ復元について説明するための図である。
【図１３】本発明の実施例４における図２の解像度切替部２１８の処理を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
（実施例１）
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
［ＭＦＰ］
図２は本実施例の画像処理装置であるＭＦＰの構成を示すブロック図である。
【００１２】
ＭＦＰは、画像入力デバイスであるスキャナ部２０１と、画像出力デバイスであるプリンタ部２０２と、ＣＰＵ２０５等で構成される制御ユニット２０４と、ユーザインタフェースである操作部２０３等を有する。制御ユニット２０４は、スキャナ部２０１、プリンタ部２０２、操作部２０３と接続し、一方では、ＬＡＮ２１９や一般の電話回線網である公衆回線（ＷＡＮ）２２０と接続することで、画像情報やデバイス情報の入出力を行うコントローラである。ＣＰＵ２０５は、制御ユニット２０４に含まれる各ユニットを制御する。ＲＡＭ２０６はＣＰＵ２０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２１０はブートＲＯＭであり、システムのブートプログラム等のプログラムが格納されている。記憶部２１１はハードディスクドライブで、システム制御ソフトウェア、画像データを格納する。操作部Ｉ／Ｆ２０７は操作部（ＵＩ）２０３とのインターフェース部で、操作部２０３に表示するための画像データを操作部２０３に対して出力する。また、操作部Ｉ／Ｆ２０７は操作部２０３から本画像処理装置の使用者が入力した情報を、ＣＰＵ２０５に伝える役割をする。ネットワークＩＦ２０８は本画像処理装置をＬＡＮ２１９に接続し、パケット形式の情報の入出力を行う。モデム２０９は本画像処理装置を公衆回線２２０に接続し、データの復調・変調を行うことにより情報の入出力を行う。以上のデバイスがシステムバス２２１上に配置される。
【００１３】
イメージバスインターフェース２１２はシステムバス２２１と画像データを高速で転送する画像バス２２２とを接続し、データ構造を変換するバスブリッジである。画像バス２２２は、例えば、ＰＣＩバスやＩＥＥＥ１３９４で構成される。画像バス２２２上には以下のデバイスが配置される。ＲＩＰ（ラスターイメージプロセッサ）部２１３はＰＤＬ（ページ記述言語）コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。デバイスＩ／Ｆ部２１４は、信号線２２３を介して画像入力デバイスであるスキャナ部２０１、信号線２２４を介して画像出力デバイスであるプリンタ部２０２、をそれぞれ制御ユニット２０４に接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１５は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部２１６は、プリンタ部２０２に出力すべきプリント出力画像データに対して、プリンタ部２０２に応じた補正、解像度変換等を行う。画像回転部２１７は入力された画像データが正立するように回転を行い出力する。解像度切替部２１８については後述する。
【００１４】
［ＲＩＰ部］
次に、図４を用いて、ＲＩＰ部２１３の詳細説明を行う。
ＲＩＰ部２１３は、一般に、インタプリタ部４０１とレンダリング部４０２の２つの部分から成り立っており、インタプリタ部４０１は、ＰＤＬ解釈部４０３と、ＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ）生成部４０４とで構成されている。一方、レンダリング部は、ＣＭＭ（Ｃｏｌｏｒ  Ｍａｔｃｈｉｎｇ  Ｍｏｄｕｌｅ）部４０５と、ＤＬ展開部４０６とで構成されている。印刷出力の際、ページ記述言語（ＰＤＬ）に従うＰＤＬデータがＲＩＰ部２１３へ入力される。ここで、ＰＤＬデータは、テキスト、グラフィック、イメージのオブジェクトを描画するための描画コマンドで記述されている。
【００１５】
ＰＤＬ解釈部４０３は、当該描画コマンドの解釈を行う。ＤＬ生成部４０４は、ＰＤＬ解釈部４０３によって解釈されたＰＤＬデータをディスプレイリストと呼ばれる中間データに変換する。ここで、中間データに変換する際に、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ（登録商標））、ＰＣＬ（Ｐｒｉｎｔ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）、ＬＩＰＳ（ＬＢＰ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ（登録商標））、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）で異なる描画コマンドは、共通の描画コマンドに変換する。ＣＭＭ部４０５は、当該中間データに対してカラーマッチングを行う。ＤＬ展開部４０６は、当該カラーマッチング後の中間データをビットマップ画像データに展開する。
【００１６】
次に、ＤＬ展開部４０６によって展開されたビットマップ画像データは解像度切替部２１８へ転送される。
【００１７】
［解像度切替部］
次に、図３を用いて、解像度切替部２１８の詳細説明を行う。
解像度切替部２１８は、ブロック分割部３０１、色検出部３０２、色占有率演算部３０３、解像度切替フラグ設定部３０４、重畳フラグ設定部３０５、データ生成部３０６で構成される。前述のＲＩＰ部２１３から出力されるビットマップ画像データが、解像度切替部２１８へ入力される。ブロック分割部３０１は、入力データ３００をＭ×Ｎのサイズ（Ｍ、Ｎは整数）に分割する。尚、本実施例１では、４×４のサイズに分割する場合について説明を行う。最多色検出部３０２は、ブロック分割部３０１で分割された各ブロック内で最も多く使用されている色（以下、最多色）を検出する。検出方法については、例えば、ブロック内の各画素の色分布を作成し、ピーク値を最多色とする方法等があげられる。
【００１８】
最多色占有率算出部３０３は、最多色が各ブロック内に占める割合を最多色占有率として算出する。解像度切替フラグ設定部３０４は、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ＝０が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ＝１が設定される。重畳フラグ設定部３０５は、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。
【００１９】
データ生成部３０６は、後述するデータ構造に基づいてデータ生成を行う。生成されたデータは、出力データとしてＲＡＭ２０６、ＨＤＤ２１１、プリンタ画像処理部２１６へ転送される。
【００２０】
［最多色占有率］
次に、図５を用いて、最多色占有率算出部３０３において算出される最多色占有率について説明を行う。図５（ａ）〜（ｐ）は、各々４×４の合計１６画素で構成されており、占有率を１００％から０％まで段階的に変化させた様子を示す図である。
【００２１】
ここで、Ａ〜Ｐで示される１つの画素は、Ｒ＝Ｇ＝Ｂ＝８ｂｉｔ、即ち２４ｂｉｔ（＝３ｂｙｔｅ）で表現される色を有しており、Ａ≠Ｂ≠Ｃ≠・・・≠Ｐとする。また、最多色は、（ａ）〜（ｏ）において常にＡとし、（ｐ）においては、最多色はなしとする。
【００２２】
例えば、図５（ｉ）では、１６画素の構成は、Ａ＝８画素、Ｂ＝５画素、Ｃ＝２画素、Ｄ＝１画素であり、Ａが最多色となる。占有率は、最多色の画素数／全体の画素数で計算される。図５（ｉ）では、８／１６＝５０％と計算される。
【００２３】
尚、最多色が、２つ以上存在する場合は、どちらの色を最多色としてもよいものとする。たとえば、図５（ｎ）では、１６画素の構成は、Ａ＝３画素、Ｂ＝３画素、Ｃ＝２画素、Ｄ＝２画素、Ｅ＝２画素、Ｆ＝２画素、Ｇ＝２画素であり、Ａ及びＢのどちらを最多色としてもよいものとする。図５（ｐ）では、１６画素の構成は、Ａ〜Ｐが１画素ずつ使用されているため、最多色はなしとする。
【００２４】
［データ構造］
次に、図１（Ａ）〜（Ｄ）を用いて、本発明の実施例１において低解像度画素と高解像度画素を重畳させて管理するデータ構造について説明を行う。
【００２５】
まず、図１（Ａ）は、図５（ｃ）を例に示している。本実施例では、図１（Ａ）の画素の中で最多色であるＡの画素１０１を低解像度画素とみなし、最多色以外の残りのＢの画素１０２とＣの画素１０３を高解像度画素とみなし、両者を重畳させて管理するデータ構造を用いる。例えば、入力データが１２００ｄｐｉのビットマップ画像データの時、４×４の画素をまとめたブロックを実際の１画素として使用する場合、低解像度画素は３００ｄｐｉとなり、４×４の画素を各々１画素として使用する場合、高解像度画素は、１２００ｄｐｉとなる。
【００２６】
次に、図１（Ｂ）１０４〜１０８は、データ構造を説明する図である。１０４は、解像度切替フラグであり、１ｂｉｔの情報からなる。解像度切替フラグは、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ＝０が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ＝１が設定される。尚、１０１は、低解像度画素と見なされる画素があるため、低解像度画素を基準とし、解像度切替フラグ＝０が設定される。１０５は、重畳フラグであり、１ｂｉｔの情報からなる。重畳フラグは、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。ここで、図１（Ｃ）を用いて補足する。図１（Ｃ）は、図１（Ａ）に対して低解像度画素と高解像度画素を重畳させた様子を示す図である。１０９は、低解像度画素と見なされる画素、１１０は、高解像度画素と見なされる画素を示す。以上のように、最多色であるＡの画素１０１を低解像度画素と見なし、最多色以外の残りのＢの画素１０２とＣの画素１０３を高解像度画素とみなし、両者を重畳させて管理することでデータ量の削減が可能である。ここで、重畳される画素がある場合は、重畳フラグ＝１が設定され、重畳される画素がない場合は、重畳フラグ＝０が設定される。尚、低解像度画素と見なされる画素がない場合は、高解像度画素のみで構成されるため自動的に重畳される画素はないと決定される。１０６は、最多色の画素の色情報であり、各ブロックにおいて最多色は常に１つの色であるため、３ｂｙｔｅの情報からなる。１０７は、最多色以外の画素のアドレス情報であり、最多色以外の画素が配置される位置を決定するための情報である。例えば、ブロックが４×４である場合は、図１（Ｄ）に示すように最多色以外の各画素は（０、０）〜（３，３）の計４ｂｉｔの情報量で表される。図１（Ａ）のＢの画素１０２のアドレス情報は、（１、１）、Ｃの画素１０３のアドレス情報は、（３、３）となる。１０８は、最多色以外の画素の色情報であり、最多色以外の画素数×３ｂｙｔｅの情報からなる。
【００２７】
図７の７０１〜７０４は、図５の（ａ）、（ｃ）、（ｆ）、（ｐ）を例として前述のデータ構造を示した図である。
【００２８】
まず、７０１は、最多色占有率が１００％であるため、低解像度画素と見なされる画素のみで構成される。また、低解像度画素を基準とするため、解像度切替フラグ＝０が設定される。また、重畳される画素がないため、重畳フラグ＝０が設定される。最多色の画素は、Ａの画素である。最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色以外の画素を有していないため「なし」とする。
【００２９】
次に、７０２は、最多色占有率が８７．５％であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ＝０が設定される。また、重畳される画素があるため、重畳フラグ＝１が設定される。最多色の画素は、Ａの画素である。最多色以外の画素のアドレス情報は、（１、１）、（３，３）であり、最多色以外の画素は、Ｂ、Ｃの画素である。
【００３０】
次に、７０３は、最多色占有率が６８．７５％であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ＝０が設定される。また、重畳される画素があるため、重畳フラグ＝１が設定される。最多色の画素は、Ａの画素である。最多色以外の画素のアドレス情報は、（３、１）、（０、２）、（３、２）、（２、３）、（３，３）であり、最多色以外の画素は、Ｂ、Ｃ、Ｄの画素である。
【００３１】
次に、７０４は、最多色占有率が０％であるため、高解像度画素と見なされる画素のみで構成される。また、高解像度画素を基準とするため、解像度切替フラグ＝１が設定される。最多色の画素、最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色を有していないため「なし」とする。
【００３２】
次に、最多色占有率の値とデータ量の関係について説明する。図８は、４×４の各ブロックの最多色占有率が０％〜１００％まで変化した場合の構成画素数、及びデータ量（ｂｉｔ）を説明するための図である。
【００３３】
まず、構成画素数とは、最多色の画素数及び、最多色以外の画素数である。前述したように最多色占有率が０％の場合、最多色の画素数は、０画素であり、最多色以外の画素数は１６画素となる。また、最多色占有率が７５％の場合、最多色の画素数は、１画素であり、最多色以外の画素数は４画素となる。また、最多色占有率が１００％の場合、最多色の画素数は、１画素であり、最多色以外の画素数は０画素となる。
【００３４】
次に、データ量は、色情報量（合計画素数×２４ｂｉｔ）、解像度切替フラグ（１ｂｉｔ）、重畳フラグ（１ｂｉｔ）、最多色以外の画素のアドレス情報（最多色以外の画素数×４ｂｉｔ）の合計で示される。最多色占有率が０％の場合、最多色の画素数と最多色以外の画素数の合計画素数は、１６画素であるため、色情報量は、３８４ｂｉｔ（＝１６×２４）と計算される。該色情報量に、解像度切替フラグ１ｂｉｔ、重畳フラグ１ｂｉｔを加算すると、合計３８６ｂｉｔのデータ量となる。また、最多色占有率が５０％の場合、最多色の画素数と最多色以外の画素数の合計画素数は、９画素であるため、色情報量は、２１６ｂｉｔ（＝９×２４）と計算される。該色情報量に、解像度切替フラグ１ｂｉｔ、重畳フラグ１ｂｉｔ、最多色以外の画素のアドレス情報３２ｂｉｔ（＝８×４）を加算すると、合計２５０ｂｉｔのデータ量となる。
【００３５】
ここで、本来、４×４の１６画素のデータの場合にデータ量は、３８４ｂｉｔ（＝１６×２４）必要であることを考慮すると、８０２、８０３で示される範囲においてはデータ量の削減効果があることわかる。公知技術は、８０３で示される範囲である、４×４の画素をまとめたブロックを実際の１画素として使用することによってデータ量の削減を可能としたものである。従って、本実施例のポイントは、８０２で示される範囲でデータ量の削減効果があることとなる。
【００３６】
次に、実施例１の画像処理システムで実行する処理全体の概要を、図６のフローチャートを用いて説明する。図６に示すフローチャートは、図２の解像度切替部２１８（図３の各処理部）によって実行されるものとする。なお、本実施形態では、ＣＰＵ２０５が記憶部２１１（コンピュータ読取可能な記憶媒体）に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部２１８（図３の各処理部）として機能するものとするが、これに限るものではない。例えば、解像度切替部２１８（図３の各処理部）を、電子回路等のハードウェアで実現するように構成してもよい。
【００３７】
図６は、ＲＩＰ部２１３から出力されるビットマップ画像データを画質を劣化させることなく、データ量を削減するためのデータ生成処理を行うフローチャートである。
【００３８】
まず、ステップＳ６０１において、ブロック分割部３０１は、ＲＩＰ部２１３から出力されるビットマップ画像データをＭ×Ｎのサイズ（Ｍ、Ｎは整数）に分割する。以降、ステップＳ６０２〜Ｓ６１６は、ブロック毎に処理が行われる。
【００３９】
次に、ステップＳ６０２において、最多色検出部３０２は、ブロック分割部３０１で分割された各ブロック内で最も多く使用されている色（以下、最多色）を検出する。
【００４０】
次に、ステップＳ６０３において、最多色占有率算出部３０３は、ステップＳ６０２において検出された最多色がブロック内に占める割合を最多色占有率として算出する。ここで、最多色占有率をＸ（％）とする。
【００４１】
次に、ステップＳ６０４において、ＣＰＵ２０５は、ステップＳ６０３において算出された最多色占有率Ｘが１００％であるか否かを判定する。最多色占有率Ｘが１００％であると判定された場合は、ステップＳ６０６へ進む。ここで、最多色占有率Ｘが１００％であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、低解像度画素のみで構成する方法が適していると判断できる。
【００４２】
ステップＳ６０６において、解像度切替フラグ設定部３０４は、解像度切替フラグ＝０を設定し、注目ブロックの位置情報と解像度切替フラグ＝０が関連付けされるようにＲＡＭ２０６等に記憶する。
次に、ステップＳ６０７において、重畳フラグ設定部３０５は、重畳される画素がないため、重畳フラグ＝０を設定し、注目ブロックの位置情報と重畳フラグ＝０が関連付けされるようにＲＡＭ２０６等に記憶する。次に、ステップＳ６０８において、データ生成部３０６は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのＭ×Ｎ画素を、最多色である画素を用いて１画素にする処理を意味する。
【００４３】
データ生成部３０６は、ステップＳ６０８において生成されるデータを、注目ブロックの位置情報と関連付けされるようにＲＡＭ２０６等に記憶する。
【００４４】
ステップＳ６０４の説明に戻る。ステップＳ６０４において、最多色占有率Ｘが１００％ではないと判定された場合は、ステップＳ６０５へ進む。
【００４５】
ステップＳ６０５において、ＣＰＵ２０５は、ステップＳ６０３において算出された最多色占有率Ｘが予め設定された閾値Ｔｈ以上かを判定する。ブロックのサイズが４×４の場合、図８で前述したように、データ量の削減効果があるのは、最多色占有率が２５％以上の範囲であるため、閾値Ｔｈ＝２５と設定される。
【００４６】
最多色占有率ＸがＴｈ以上であると判定された場合は、ステップＳ６０９へ進む。ここで、最多色占有率ＸがＴｈ以上であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成が適していると判断できる。
【００４７】
ステップＳ６０９において、解像度切替フラグ設定部３０４は、解像度切替フラグ＝０を設定し、注目ブロックの位置情報と解像度切替フラグ＝０が関連付けされるようにＲＡＭ２０６等に記憶する。
【００４８】
次に、ステップＳ６１０において、重畳フラグ設定部３０５は、重畳される画素があるため、重畳フラグ＝１を設定し、注目ブロックの位置情報と重畳フラグ＝１が関連付けされるようにＲＡＭ２０６等に記憶する。
【００４９】
次に、ステップＳ６１１において、データ生成部３０６は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのＭ×Ｎ画素を、最多色である画素を用いて１画素にする処理を意味する。
【００５０】
次に、ステップＳ６１２において、データ生成部３０６は、最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのＭ×Ｎ画素の内、最多色以外の残りの画素をそのまま用いる処理を意味する。
【００５１】
次に、ステップＳ６１３において、データ生成部３０６は、最多色以外の画素のアドレス情報を生成する。
【００５２】
データ生成部３０６は、ステップＳ６１１〜Ｓ６１３において生成されるデータを、注目ブロックの位置情報と関連付けされるようにＲＡＭ２０６等に記憶する。
【００５３】
ステップＳ６０５の説明に戻る。ステップ６０５において、最多色占有率ＸがＴｈ未満であると判定された場合は、ステップＳ６１４へ進む。ここで、最多色占有率ＸがＴｈ未満であると判定された場合、前述したように注目ブロックは、高解像度画素のみで構成する方法が適していると判断できる。
【００５４】
ステップＳ６１４において、解像度切替フラグ設定部３０４は、解像度切替フラグ＝１を設定し、注目ブロックの位置情報と解像度切替フラグ＝１が関連付けされるようにＲＡＭ２０６等に記憶する。
【００５５】
次に、ステップＳ６１５において、重畳フラグ設定部３０５は、重畳される画素があるため、重畳フラグ＝０を設定し、注目ブロックの位置情報と重畳フラグ＝０が関連付けされるようにＲＡＭ２０６等に記憶する。
【００５６】
次に、ステップＳ６１６において、データ生成部３０６は、最多色である画素、及び最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのＭ×Ｎ画素全てをそのまま用いる処理を意味する。
【００５７】
データ生成部３０６は、ステップＳ６１６において生成されるデータを、注目ブロックの位置情報と関連付けされるようにＲＡＭ２０６等に記憶する。
【００５８】
次に、ステップＳ６１７において、ＣＰＵ２０５は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップＳ６０２に戻る。全てのブロックが終了した場合、ステップＳ６１８に進む。
【００５９】
次に、ステップＳ６１８において、ＣＰＵ２０５は、各ブロックでＲＡＭ２０６等に記憶しているデータを各々関連付けてＨＤＤ２１１に保存する。
【００６０】
尚、ＨＤＤ２１１に保存する際に、高解像度画素は高解像度であるのでＪＰＥＧ等の圧縮をすると折角の高解像度画質が劣化するので、低解像度画素のみで構成されるブロックはまとめ、一般的に知られるＪＰＥＧ等のカラー画像の圧縮方法を適用してもよい。
【００６１】
上述した方法は、階調が連続的に変化する写真等の自然画ではなく、同じ色が連続するオフィス文書や、ＣＡＤやＣＧ、プレゼンテーションのようにコンピュータアプリケーションで作成した画像に対して有効である。
【００６２】
従って、例えば複数のオブジェクト（写真オブジェクト、コンピュータグラフィックスのオブジェクト）が混在するデータを処理する場合には、複数オブジェクトのうちコンピュータグラフィックスのオブジェクトに対して上述のデータ削減をするとよい。
【００６３】
以上、本実施例１によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【００６４】
（実施例２）
実施例１では、最多色占有率の値に基づいて、低解像度画素、及び高解像度画素を生成する方法について説明した。しかしながら、例えば全てのブロックの最多色占有率がＴｈ未満である場合は、重畳フラグのデータ分だけ、データ量が増えてしまう場合がある。実施例２では、このような場合には重畳フラグの破棄を行うことで、データ量の増加を抑える方法について説明を行う。
【００６５】
図１０に示すフローチャートは、図２の解像度切替部２１８（図３の各処理部）によって実行されるものとする。なお、本実施形態では、ＣＰＵ２０５が記憶部２１１（コンピュータ読取可能な記憶媒体）に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部２１８（図３の各処理部）として機能するものとするが、これに限るものではない。例えば、解像度切替部２１８（図３の各処理部）を、電子回路等のハードウェアで実現するように構成してもよい。
【００６６】
図１０は、実施例１で前述した図６のステップＳ６０１〜６１７が終了した後の処理を行うフローチャートである。ステップＳ６０１〜６１７に関しては、説明を省略する。
【００６７】
まず、ステップＳ１００１において、ＣＰＵ２０５は、ステップＳ６０９において重畳フラグ＝１で設定されたブロック数を算出する。
【００６８】
次に、ステップＳ１００２において、ＣＰＵ２０５は、ステップＳ１００１において算出したブロック数が総ブロック数に対して占める割合を占有率として算出する。
【００６９】
次に、ステップＳ１００３において、ＣＰＵ２０５は、ステップＳ１００２において算出した占有率が予め設定された閾値Ｔｈ２より大きいかを判定する。占有率がＴｈ２より大きいと判定された場合は、ステップＳ１００４へ進む。ステップＳ１００４において、ＣＰＵ２０５は、全てのブロックの重複フラグの破棄を行う。即ち、最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成のブロックが破棄される。従って、低解像度画素のみで構成されるブロックと、高解像度画素のみで構成されるブロックのデータとなる。
【００７０】
次に、ステップＳ６１８において、ＣＰＵ２０５は、各ブロックでＲＡＭ２０６等に記憶しているデータを各々関連付けてＨＤＤ２１１に保存する。
【００７１】
尚、実施例１と同様、ＨＤＤ２１１に保存する際に、低解像度画素のみで構成されるブロックをまとめ、一般的に知られるＪＰＥＧ等のカラー画像の圧縮方法を適用してもよい。
【００７２】
以上、本実施例２によれば、例えば全てのブロックの最多色占有率がＴｈ未満となり、重複フラグのデータ分だけ、データ量が増えてしまうような画像の場合にもデータ量の増加を抑えることが可能となる。
【００７３】
（実施例３）
実施例１、２では、入力されるビットマップ画像データをブロックに分割し、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らしたデータを生成する方法について説明した。実施例３では、生成されたデータを復元する方法について説明を行う。
【００７４】
図１１に示すフローチャートは、解像度切替部２１８の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、ＣＰＵ２０５が記憶部２１１（コンピュータ読取可能な記憶媒体）に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【００７５】
図１１は、図６のフローチャートの処理が終了し、記憶部２１１に保存されたデータの復元の処理を行うフローチャートである。
【００７６】
まず、ステップＳ１１０１において、ＣＰＵ２０５は、記憶部２１１に保存されたデータの読み出しを行う。ここで、記憶部２１１に保存されたデータは、ブロック毎に関連付けされたデータである。以降、ステップＳ１１０２〜Ｓ１１１１は、ブロック毎に処理が行われる。ここで、図１を用いて補足すると、ステップＳ１１０２〜Ｓ１１１１は、図１の１０４〜１０８で示される情報から１０１〜１０３で構成されるブロックを復元する処理を行う。
【００７７】
ステップＳ１１０２において、データ復元部は、ステップＳ１１０１において読み出されたデータから注目ブロックを選択し、解像度切替フラグ、及び重畳フラグの読み出しを行う。
【００７８】
次に、ステップＳ１１０３において、データ復元部は、ステップＳ１１０２において読み出された解像度切替フラグが０ｏｒ１の判定を行う。解像度切替フラグ＝１の場合は、ステップＳ１１１１へ進み、ステップＳ１１１１において、高解像度画素の読み出しを行う。解像度切替フラグ＝０の場合は、ステップＳ１１０４へ進む。
【００７９】
次に、ステップＳ１１０４において、データ復元部は、ステップＳ１１０２において読み出された重畳フラグが０ｏｒ１の判定を行う。重畳フラグ＝０の場合は、ステップＳ１１０５、Ｓ１１０６の処理を行う。ステップＳ１１０５では、低解像度画素の読み出しを行う。ステップＳ１１０６では、ステップＳ１１０５において読み出された低解像度画素から高解像度画素の生成を行う。図１２を用いて補足すると、ステップＳ１１０６では、１２０１で示す１画素から１２０２で示す４×４の画素の生成を行う。重畳フラグ＝１の場合は、ステップＳ１１０７〜Ｓ１１１０の処理を行う。ステップＳ１１０７では、低解像度画素の読み出しを行う。ステップＳ１１０８では、アドレス情報の読み出しを行う。ステップＳ１１０９では、高解像度画素の読み出しを行う。ステップＳ１１１０では、ステップＳ１１０７において読み出された低解像度画素から高解像度画素の生成を行い、さらに、ステップＳ１１０８、Ｓ１１０９において読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行う。図１２を用いて補足すると、ステップＳ１１１０では、１２０１で示す１画素から１２０２で示す４×４の画素の生成を行う。さらに、ステップＳ１１０８において読み出されたアドレス情報が、例えば（１、１）（３、３）、ステップＳ１１０９において読み出された高解像度画素のデータがＢ、Ｃの画素であれば、重ねる処理によって１２０３で示す４×４の画素が生成される。
【００８０】
次に、ステップＳ１１１２において、ＣＰＵ２０５は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップＳ１１０２に戻る。全てのブロックが終了した場合、ステップＳ１１１３に進む。
【００８１】
次に、ステップＳ１１１３において、データ復元部は、Ｍ×Ｎのサイズ（Ｍ、Ｎは整数）のブロックを合成し、出力データを生成する。即ち、図６のステップＳ６０１と逆の処理を行う。
次に、ステップＳ１１１４において、プリンタ部２０２は、ステップＳ１１１３において、生成された出力データを出力する。
【００８２】
以上、本実施例３によれば、実施例１、２で生成されたデータを復元することが可能となる。
【００８３】
（実施例４）
実施例４では、実施例１、２で生成されたデータを復元する際に、用途によって、復元方法を切り替える方法について説明する。画質が優先される場合には、実施例３で前述した通りの復元を行い、スピードが優先される場合には、本実施例４で説明する復元を行う。
【００８４】
ここで、スピードが優先される場合とは、例えば、プレビューやサムネイル表示、縮小レイアウト等、非可逆な復元を行っても画質の劣化が目立たない機能を意味している。
【００８５】
図１３に示すフローチャートは、解像度切替部２１８の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、ＣＰＵ２０５が記憶部２１１（コンピュータ読取可能な記憶媒体）に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【００８６】
図１３は、図６のフローチャートの処理が終了し、記憶部２１１に保存されたデータの復元の処理を行うフローチャートである。尚、図１１のフローチャートと同じ処理については、同じ符号を使用しており、一部説明を省略する。
まず、ステップＳ１３０１において、データ復元部は、画質優先かスピード優先かを判定する。画質優先と判定された場合は、図１１のフローチャートへ進む。スピード優先と判定された場合は、ステップＳ１１０１へ進む。ステップＳ１１０１〜Ｓ１１０４については、説明を一部省略する。
【００８７】
ステップＳ１１０３において、解像度切替フラグ＝１の場合は、ステップＳ１１１１、Ｓ１３０２の処理を行う。まず、ステップＳ１１１１において、高解像度画素の読み出しを行う。次に、ステップＳ１３０２において、ステップＳ１１１１において読み出された高解像度画素から低解像度画素の生成を行う。低解像度画素の生成の方法については、例えば、間引き処理があげられる。
次に、ステップＳ１１０３に戻り、解像度切替フラグ＝０の場合は、ステップ  Ｓ１１０４へ進む。ステップＳ１１０４において、重畳フラグ＝０の場合は、ステップＳ１１０５の処理を行う。ステップＳ１１０５では、低解像度画素の読み出しを行う。ここで、実施例３では、ステップＳ１１０５において読み出された低解像度画素から高解像度画素の生成を行ったが、実施例４では低解像度画素をそのまま用いる。
【００８８】
また、ステップＳ１１０４において、重畳フラグ＝１の場合は、ステップＳ１１０７の処理を行う。ステップＳ１１０７では、低解像度画素の読み出しを行う。ここで、実施例３では、ステップＳ１１０７において読み出された低解像度画素から高解像度画素の生成を行い、さらに、読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行ったが、実施例４では低解像度画素をそのまま用いる。
【００８９】
次に、ステップＳ１１１２において、ＣＰＵ２０５は、全てのブロックが終了したか否かを判断する。以降、ステップＳ１１１３〜Ｓ１１１４については、説明を省略する。
【００９０】
以上、本実施例４によれば、実施例１、２で生成されたデータを復元する際に、用途によって、復元方法を切り替えることが可能となる。また、スピードが優先される場合には、記憶部２１１に保存されたデータの内、低解像度画素はそのまま用いることで、高速に復元することが可能となる。
【００９１】
実施例１〜４における各処理工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【図１】
2011013963.tif 000003
【図２】
2011013963.tif 000004
【図３】
2011013963.tif 000005
【図４】
2011013963.tif 000006
【図５】
2011013963.tif 000007
【図６】
2011013963.tif 000008
【図７】
2011013963.tif 000009
【図８】
2011013963.tif 000010
【図９】
2011013963.tif 000011
【図１０】
2011013963.tif 000012
【図１１】
2011013963.tif 000013
【図１２】
2011013963.tif 000014
【図１３】
2011013963.tif 000015