(57)【特許請求の範囲】
【請求項１】
画像データの圧縮処理を行う画像処理装置であって、
解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開手段と、
圧縮領域を単位として代表色を持つ１画素に変換し、前記圧縮領域の中の画素については、前記圧縮領域の中の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素と前記代表色との色差を、補間データとして変換後の前記１画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮手段とを備え、
前記画像展開手段は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクトの画像データについて、補間処理前の１画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として１画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト手段を有することを特徴とする画像処理装置。
【請求項２】
前記シフト手段は、シフトしたオブジェクトが前記ビットマップ画像データの外に出る場合、または、シフトする量が閾値を越える場合、または、シフトしたオブジェクトが他のオブジェクトと接するもしくは重複する場合には、当該オブジェクトをシフトしないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記圧縮手段により圧縮されたビットマップ画像データを伸張して印刷部に送信するための手段をさらに備えることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
請求項１又は２に記載の画像処理装置の前記圧縮手段により圧縮されたビットマップ画像データを伸張して印刷するための印刷手段をさらに備えることを特徴とする画像形成装置。
【請求項５】
画像データの圧縮処理を行う画像処理装置における画像処理方法であって、
前記画像処理装置の画像展開手段が、解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開工程と、
前記画像処理装置の圧縮手段が、圧縮領域を単位として代表色を持つ１画素に変換し、前記圧縮領域の中の画素については、前記圧縮領域の中の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素と前記代表色との色差を、補間データとして変換後の前記１画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮工程とを有し、
前記画像展開工程は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクトの画像データについて、補間処理前の１画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として１画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト工程を有することを特徴とする画像処理方法。
【請求項６】
請求項１乃至３のいずれか一項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に際して、例えばメモリ資源の削減や処理高速化等のためにデータ量を圧縮することを目的として符号化する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来の画像圧縮のための符号化方法には、画像を所定の矩形領域（これを圧縮矩形領域または単位矩形領域と呼ぶ。）に分割し、矩形領域単位で符号化する方法がある。さらに特許文献１では、その圧縮処理において、解像度変換部により解像度変換を行って低解像度化した画像に対して非可逆符号化を施すことで高い圧縮率を得る方法が提示されている。
【０００３】
この様な方法を用いて様々な解像度のオブジェクトを含む画像データを印刷する場合、いったん印刷解像度を有する画像データが展開され、その画像データが必要に応じて低解像度に変換（これを解像度圧縮と呼ぶ。）される。このため、印刷解像度以外の解像度を持つオブジェクトは、二度の解像度変換処理を受けることになる。
【０００４】
ここで、低解像度から高解像度への解像度変換は、たとえば補間処理によって画素間に挿入される補間画素を生成することで実現できる。補間処理には、たとえば元画素を複製して補間画素とする方法や、元画素の線形補間を行う方法などがある。一方、高解像度から低解像度へと変換する場合には、画素の間引きが行われる。解像度圧縮と伸長とを可逆的に行うために、間引いた画素に基づく補間データを生成して解像度変換後の画像データに添付する解像度圧縮方法がある。この方法で解像度圧縮した画像データは、伸長時に補間データを参照することで間引いた画素についても元通りに復元できる。補間データは、たとえば、代表値（代表色）と間引かれた画素値との差分の配置を示すデータなどである。また補間データにとしてたとえば差分値のビットマップを含め、差分が０の画素についてはビットマップで差分値が含まれないことを示すことで、補間データのデータ量を減らすことができる。もちろんビットマップ以外にも、代表色との差分が０の画素について省く方法はある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０４２６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このような解像度変換を行うと、ある画像データを高解像度画像データに変換した場合、補間された画素（補間画素）は補間画素の基とした画素（元画素）に近似した色成分を持つことになる。とくに、元画像を単純に複製して補間する方法で補間した画像では、元画素と補間画素とは同一の色成分を持つ。そのため、元画素と補間画素とから成る領域について解像度変換を再度施して低解像度化する処理において、補間データの量が減少して高圧縮率を達成することができる。
【０００７】
しかしながら、元画素と当該元画素を補間して得た補間画素とから成る画素領域が、複数の圧縮矩形領域にまたがる場合、圧縮矩形領域内の画素間の色の不連続が生じ、本来補間画像データで達成できる圧縮率に比べてその圧縮率が低下する。換言すれば、圧縮矩形領域の境界が、元画素と当該元画素を補間して得た補間画素とから成る画素領域内に位置する場合、圧縮率が低下する。
【０００８】
本発明は上記従来例に鑑みて成されたもので、上述の課題を解決することを目的とする。すなわち、圧縮矩形領域の境界と、元画素から補間された画素群の境界との不一致に起因する低圧縮率を解消することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は以下の構成を有する。すなわち、画像データの圧縮処理を行う画像処理装置であって、
解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開手段と、
圧縮領域を単位として１画素に変換し、前記圧縮領域内の画素については、前記圧縮領域内の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素の色差を、補間データとして圧縮後の画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮手段とを備え、
前記画像展開手段は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクト画像データについて、補間処理前の１画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として１画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト手段を有する。
【発明の効果】
【００１０】
本発明によれば、解像度変換部による圧縮の圧縮率が低下することを回避し、高解像度な画像をより小さいデータ量で保持することができる。したがって該画像の印刷等の画像処理において、高品質な画像を高いパフォーマンスで提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明のハードウェア構成を示す図である。
【図２】外部装置からの印刷機能において画像フロー例を示す図である。
【図３】低解像度オブジェクトに対する解像度変換について説明する図である。
【図４】圧縮矩形領域について説明する図である。
【図５】オブジェクト描画位置と圧縮矩形領域について説明する図である。
【図６】本発明実施前の画像を示す図である。
【図７】本発明実施後の画像を示す図である。
【図８】本発明の画像シフト処理のフローチャートを示す図である。
【図９】本発明のシフト可能判定について説明する図である。
【図１０】本発明における効果と画像パターンを説明する図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面を用いて説明する。説明において解像度変換とは、入力画像データの解像度を変換し、より低解像度の低解像度画像データあるいはより高解像度の高解像度画像データを生成する処理である。なおここでいう解像度とは、対象となる画像が一定の大きさを有することを前提とした用語である。その前提がないとすれば、単に画素数と呼び変えることもできる。また圧縮矩形領域とは、入力画像に対して解像度変換部で解像度圧縮を実施する画像領域の単位であり、矩形でないこともあり得ることから単に圧縮領域と呼ぶこともある。
【００１３】
＜装置の構成＞
図１に本実施形態に係る画像処理装置のハードウェア構成例を示す。外部装置接続部１０２は、ＬＡＮやＵＳＢ等のインターフェースであり、該インターフェースを介した接続によって外部装置との間で、画像データ等のデータの送受信を行う。画像入力部１０３は、外部装置接続部１０２を経由してデータを受け取ることができる。入力される画像データは、ベクタデータを含み様々な解像度のオブジェクトで構成されたデータであってもよい。ここでオブジェクトとは画像を構成する構成要素であり、たとえばビットマップデータなどのイメージオブジェクトや、文字や線画などのベクタオブジェクト等がある。イメージオブジェクトは画素で構成されており、ベクタオブジェクトは例えばオブジェクトを定義する輪郭や色等のデータで構成されている。異なる解像度のオブジェクトがひとつの画像に含まれていることもあり得る。なお、ベクタオブジェクトのデータをベクタデータと呼ぶ。
【００１４】
画像展開部１０４は、ベクタデータを含み様々な解像度のオブジェクトで構成された画像データを展開してビットマップ画像データを生成する。生成されるビットマップ画像データの解像度はたとえば予めの指定されることで定められている。画像展開部１０４では、この定められた解像度（指定解像度と呼ぶ。）のビットマップ画像データを生成する。そのために、指定解像度と異なる解像度を有するオブジェクトが画像データに含まれている場合、そのオブジェクトの解像度は、指定解像度に変換される。また、ベクタオブジェクトからは指定解像度のビットマップデータが生成される。各オブジェクトは、指定解像度のビットマップ画像データに、指定された方法で合成される。合成方法としては、たとえは上書きや、上層のオブジェクトの不透明度を指定したアルファ混合などがある。
【００１５】
解像度変換部１０５は、画像展開部１０４で生成された指定解像度のビットマップ画像データに対して解像度変換を施して解像度圧縮（例えば間引き）または伸長（例えば補間）する。解像度圧縮は、圧縮処理の単位となる画素領域の画素を一画素に変換する処理で単純な間引きや、圧縮処理の単位となる画素領域の画素の平均値などの方法はあるが、いずれにしても或る代表色を変換後の画素値とする処理である。本例では解像度圧縮は間引き処理であるとする。生成されたビットマップ画像データに対して解像度圧縮する場合には、所定の圧縮矩形領域ごとに色情報パターンを解析し、解像度圧縮後の低解像度画像と補間データとを生成する。解像度圧縮した画像データは、伸長時に補間データを参照することで間引いた画素についても可逆的にすなわち元通りに伸長できる。伸長処理も解像度変換部１０５で行われる。補間データは、たとえば、代表値（代表色）と間引かれた画素値との差分、すなわち色差の配置を示すデータなどである。代表値としては例えば間引かずに残した画素の値を用いることができる。さらに補間データにとしてたとえば代表色の値と圧縮矩形領域内の全画素が同じ色（等色）であることを示すデータを含め、等色の場合には、補間データを、代表値と画素の配置とを示すデータで構成することもできる。等色でない場合には画素の配置に従って、代表色と各画素値との差分値を示すように補間データを構成する。こうすることで、等色の領域については補間データのデータ量を大幅に減らすことができる。また、圧縮矩形領域のサイズの変動にも柔軟に対応できる。もちろんこの補間データは一例であって、ビットマップ以外にも、一様な領域については補間データのデータ量を小さくできるような解像度圧縮方法であれば本実施形態に適用可能である。
【００１６】
符号変換部１０６は、解像度変換部１０５で生成された画像をＪＰＥＧなど静止画用の所定の符号化手順で符号化して符号化画像データを生成する。また逆に符号化画像データを復号する。もちろんたとえばＪＰＥＧ２０００など、ＪＰＥＧ以外の符号化手順を採用しても良い。
【００１７】
印刷部１０７は、画像データに基づいて、トナーやインクといった色剤により形成した画像を用紙上に形成して印刷を行う。印刷機構としては、電子写真方式やインクジェット方式、熱転写方式など種々の方式を採用できる。圧縮された画像データは、復号され伸張されて印刷部１０７に渡される。印刷部１０７が外部装置の場合にはインターフェースを介して送信される。
【００１８】
また画像処理装置１０１は、ＣＰＵ１０８とＲＯＭ１０９と記憶部１１０を持つ。ＣＰＵ１０８は、画像処理装置１０１の制御部であり、装置全体を制御する。たとえば画像入力部１０３で受信した画像データを画像展開部１０４でビットマップ画像データに展開させたり、その解像度変換を行わせるなど、図１の各構成ブロック間のデータ転送や処理の協調などがＣＰＵ１０８により制御される。あるいは、画像展開部１０４，解像度変換部１０５，符号変換部１０６などを、ＣＰＵ１０８によりプログラムを実行することで達成される機能ブロックにより実現することもできる。
【００１９】
ＲＯＭ１０９は、ＣＰＵ２０６により実行される制御プログラムや固定的なデータを格納するメモリである。記憶部１１０は、ＣＰＵ１０８の制御プログラムの変数を格納するため、および画像処理装置の各処理用バッファを格納するためのものであり、ＲＡＭやＨＤＤといった記憶媒体を有する。入力された画像データなどは各処理ブロックが持つローカルなメモリに記憶しても良いが、記憶部１１０に記憶することもできる。
【００２０】
なお、図１には画像処理装置として、印刷部１０７を有するプリンタや複写機等の画像形成装置を示した。これに代えて、画像処理装置１０１は、印刷部１０７を持たず、印刷部１０７にはネットワーク等を介して接続するためのインターフェースを持つコンピュータなどであってもよい。いずれにしても、画像展開部１０４，解像度変換部１０５，符号変換部１０６を有する構成であれば、本実施形態に係る発明を適用できる。
【００２１】
図２に、外部装置からの印刷機能における画像フロー例を示す。画像入力部１０３で入力された画像データはベクタ情報を含む画像データであり、ディスプレイリスト２０１として記憶部１１０に格納される。画像データは次に画像展開部１０４でＲＩＰ処理され、印刷解像度（例えば１２００ｄｐｉ）のビットマップ画像データ２０２に展開される。画像データにはオブジェクトが含まれており、その解像度はオブジェクト毎に設定されている。そこで、オブジェクト毎に必要に応じた解像度変換を行い、ビットマップ画像データに変換される。
【００２２】
展開後の画像データ２０２は次に解像度圧縮部１０５で解像度圧縮され、圧縮解像度（例えば３００ｄｐｉ）の画像データと補間データに変換される。このデータを圧縮データ２０３と呼ぶことにする。
【００２３】
圧縮画像データ２０３は次に符号圧縮部１０６で符号化され（例えばＪＰＥＧ符号化）、符号化された画像データに変換され記憶部１０９に格納される。このとき補間データがあれば補間データも合わせて符号化されており、符号化後の画像データと補間データとを符号化データ２０４と呼ぶことにする。
【００２４】
この手順で圧縮保存された画像データは、印刷時には逆のフローをたどり復号され、解像度伸長されて印刷部１０７で印刷される。
【００２５】
＜解像度圧縮＞
図３に、低解像度オブジェクトに対する解像度圧縮手順について示す。画像展開部１０４のＲＩＰ処理に対する入力画像は、様々な解像度のオブジェクトで構成される。例えばあるオブジェクトの解像度（例えば６００ｄｐｉ）が印刷解像度（例えば１２００ｄｐｉ）に対して低解像度である場合、１画素の画像領域３０１はＲＩＰ処理により４画素の画像領域３０２に展開される。本実施形態では、画像展開部１０４における高解像度化処理は、元画素の複製による補間である。そのため画像領域３０２の各画素の色情報は元画素と同一となり、解像度変換部１０５で解像度圧縮する場合、１つの色情報として圧縮できるため前述したように高い圧縮率が得られる。
【００２６】
図４に、解像度圧縮の圧縮矩形領域について示す。本実施形態における解像度変換部１０５における解像度圧縮は、複数の大きさの圧縮矩形領域を用いる。解像度変換部１０５は、圧縮矩形領域について画素の色情報を参照し、領域内の等色判定や色情報のパターン解析を行い解像度圧縮を実現する。例えば第一の圧縮矩形領域４０１は２×２画素の画像領域である（基本領域、以下ピースと呼ぶ）。第二の圧縮矩形領域４０２はピースが水平方向に複数（ここでは４）つながった８×２画素の画像領域である（一次拡張領域、以下ラインと呼ぶ）。また第三の圧縮矩形領域４０３は、ラインが垂直方向に複数（ここでは４）つながった８×８画素の領域である（二次拡張領域、以下ブロックと呼ぶ）。これら圧縮矩形量域のサイズは本実施形態で採用した一例にすぎない。ピースは解像度圧縮を行う際の基本的な対象領域であり、本例では２×２画素を１×１画素に間引いているためにピースも２×２画素領域となる。したがって、たとえば４×４画素を１画素に間引くのであれば、ピースは４×４画素領域となる。また、ラインはピースの整数倍の広がりを持つ領域であり、第二の圧縮矩形領域と呼ぶように、矩形であることが望ましい。その理由は、矩形であれば画素の並びの記述が単純になり、解像度圧縮した際に、ラインが等色の場合圧縮率をより高くすることが可能なためである。圧縮率の低下と引き替えに、矩形ではないより複雑な形状を採用することもできる。ブロックもまたピースの整数倍の広がりを持つ領域であり、ラインと同様の理由で矩形であることが望ましい。さらに、複数の連続したラインが等色と判定された場合に、それらを合わせてブロックが等色と判定できるので、ブロックは連続する複数のラインから構成されることが望ましい。
【００２７】
ライン、ブロックなどの圧縮矩形領域は、等色の画素領域が広いほど解像度圧縮による圧縮率が高くなることから、ピース、ライン、ブロックというように、段階的に広くなるような範囲で等色か否かを判定する対象として定められている。したがって、圧縮矩形領域としては、たとえばピースの整数倍の広がりを持つひとつの領域を定めておいても良いし、本実施形態で採用した３種類にとどまらずより多くの種類の領域を定めておいても良い。
【００２８】
解像度変換部１０５は、ブロック、ライン、ピースの順に各圧縮矩形領域で等色判定を行い、等色である場合はその色情報と圧縮矩形領域の情報のみ補間データとして生成する。圧縮矩形領域について等色とは、当該領域内が一様な色であることを意味する。ピース単位で等色でない場合は、解像度変換部１０５はピース内の色情報パターンを解析し、色情報パターンを補間データとして生成する。
【００２９】
ここで解像度変換部１０５により実行される解像度圧縮の手順の一例を示す。まず、解像度圧縮の対象となる画像データの始点となる画素たとえばラスタ順で先頭の画素に着目する。着目画素を、解像度圧縮後の画像を格納する領域に複製する（間引きステップ）。複製する位置は、圧縮後の画素が圧縮前に対応する順序で配置されるように決定される。
【００３０】
次に補間データを生成する（補間データ生成ステップ）。そのためにまず、着目画素を一定の相対位置（たとえば左上隅）の画素として含むピース内の他の画素に着目し、すべて着目画素と等しいか、すなわち着目ピースが等色であるか判定する（等色判定サブステップ）。すべて等色であれば、着目画素に関連づけた補間データとして、等色であることを示す等色フラグをセットし、代表色として着目画素の色データを格納し、さらに画素の並びを示すデータ（この場合にはピースの並び）を格納する。画素の並びはたとえば着目画素を基準として示される。本例のように矩形領域であれば、縦横それぞれの画素数で示すことができる。着目画素と補間データとの関連づけは、たとえば圧縮済みの画素と同じ順序で補間データを配置することで実現できる。もちろんリンクを設けて関連づけを行うこともできる。
【００３１】
一方等色でない場合には、着目画素に関連づけた補間データとして、等色であることを示す等色フラグをリセットし、代表色の色データ、画素の並びを示すデータ、各画素の代表色との差分値を格納する。
【００３２】
上記手順を、着目画素をピース単位で進めながら繰り返す。この結果、画像データ全域について、解像度圧縮した解像度圧縮データとピース単位の補間データとが得られる。
【００３３】
さらにピース単位で解像度圧縮した画素群をライン単位で再圧縮する。これは、それぞれが等色であり、かつ、互いに等色であるピースが１ライン分（本例で１×４ピース）並んでいることを判定し、並んでいればそのピース群を１ラインに置換する処理である。解像度圧縮データについては１ラインの画素群を１つの画素で代表させる（すなわち他は削除し）。また、補間データについても、画素の並びをピースからラインに書き換え、圧縮後の画像データにおいて当該ラインを代表する画素にそれを関連づける（削除した画素の補間データは削除する）。こうすることで一層圧縮率を上げることができる。
【００３４】
さらにピース単位で解像度圧縮した画素群をブロック単位で再圧縮する。これは、それぞれが等色であり、かつ、互いに等色であるピースが１ブロック分（本例で４×４ピース）並んでいることを判定し、並んでいればそのピース群を１ブロックに置換する処理である。解像度圧縮データについては１ブロックの画素群を１つの画素で代表させる（すなわち他は削除し）。また、補間データについても、画素の並びをピースからブロックに書き換え、圧縮後の画像データにおいて当該ブロックを代表する画素にそれを関連づける（削除した画素の補間データは削除する）。こうすることで一層圧縮率を上げることができる。なお本例ではブロックは４ラインから構成されるので、等色のラインが１×４の配置で並んでいればそれを１ブロックと置換しても良い。
【００３５】
さらに、ラインやブロック単位での圧縮を段階的に行わず、等色の範囲が２×８画素であればライン単位で、８×８画素であればブロック単位で解像度圧縮するようにしてもよい。
【００３６】
以上の手順により解像度圧縮は実現できる。本手順は一例であり、結果的にピース単位、ライン単位、ブロック単位で等色であれば、その圧縮矩形領域を１画素で代表させ、補間データとしてはその矩形領域内の画素配置を示すデータを代表する画素に関連づける手順であれば他の手順であっても良い。
【００３７】
＜補間領域と圧縮矩形領域＞
図５に、オブジェクト描画位置と圧縮矩形領域との関係について示す。圧縮矩形領域５０１はブロックを示し、圧縮矩形領域５０２はラインを示し、圧縮矩形領域５０３はピースを示す。また画像領域５０４および５０５は、画像展開部１０４により印刷解像度例えば１２００ｄｐｉのビットマップ画像に展開された画像である。画像領域５０４は、文字領域や下地領域など元々１２００ｄｐｉのオブジェクトに相当する画像領域である。画像領域５０５は、画像展開部１０４による展開前の画像データにおいてはグラフィック領域など印刷解像度より低い解像度、たとえば６００ｄｐｉのオブジェクトに相当する画像領域である。
【００３８】
図３で説明したように、画像領域５０５は、元画素と該画素から生成した補間画素とから成る２×２画素の単位で必ず等色であり、オブジェクト内においては少なくともピース単位で等色と判定される。このため、解像度変換部１０５において高い圧縮率が得られると考えられる。
【００３９】
しかしながら画像展開部１０４でのオブジェクト描画位置と解像度圧縮部１０５での圧縮矩形領域の位置によっては、ピースやラインが等色と判定されず圧縮率が低下する場合がある。すなわち、画像展開部１０４の解像度変換において補間した画素群の領域が、解像度圧縮部１０５による間引き処理の圧縮矩形領域の境界に跨る場合、圧縮矩形領域内の画素が等色となるとは限らない。この場合には解像度圧縮の圧縮率が大幅に低下することもあり得る。
【００４０】
第一の圧縮矩形領域５０２および第二の圧縮矩形領域５０３と、画像領域５０５の位置関係を、図５の５０６および５０７に示す。５０６は、画像領域５０５における補間した画素領域と圧縮矩形領域５０２および５０３が一致している場合を示す。画像展開部１０４により、元の１画素から補間して生成した画素領域は図では圧縮矩形領域５０２内の２×２の画素領域として示されている。この２×２の画素領域のうち、１画素（例えば左上画素）が６００ｄｐｉの元画素であり、残りの３画素は元画素を複製した補間画素である。この２×２の画素領域を補間領域と呼ぶことにする。すなわち、補間処理前の１画素に相当する補間処理後の画素領域が補間領域である。５０６では、補間領域、すなわち展開前の画像の１画素が圧縮矩形領域５０３に収まっていることから、少なくとも補間領域の境界とピースの境界は一致する。したがってピースは等色である。ピースが等色であるから、ラインについても等色と判定される可能性があり、ラインが等色であれば当該ラインを含むブロックも等色と判定される可能性がある。
【００４１】
５０７はオブジェクト描画位置と圧縮矩形領域５０２および５０３が一致していない場合を示す。５０７では、補間領域、すなわち展開前の画像の１画素が圧縮矩形領域５０３に跨っているため、ピースが等色である保証はない。ピースが等色でなければ当該ピースを含むラインも等色ではなく、当該ラインを含むブロックも等色ではない。したがって圧縮率も下がる可能性が高い。
【００４２】
図６に、図５の５０７に示したようなオブジェクト描画位置と圧縮矩形領域が一致しない場合に対し、本実施形態に係る発明を実施しない場合の画像例を示す。また図７に、本実施形態に係る発明を実施した場合の画像例を示す。
【００４３】
図６において、二重枠で示した圧縮矩形領域６０１は、４つのピースから構成される８×２画素のラインである。太線枠で示した画像領域６０２は、６００ｄｐｉのオブジェクトが１２００ｄｐｉに展開された画像を示し、８×８画素の領域である。またここで画像領域６０２は、水平方向に一様な色が縦方向に変化するグラデーション画像であるとする。圧縮矩形領域６０１の位置に対し、画像領域６０２は、その展開後の補間領域すなわち展開前の画像の１画素が跨るように位置している。そのため、圧縮矩形領域６０１であるラインは等色と判定されない。また、圧縮矩形領域６０１を構成する４つのピースのいずれも、少なくとも上下の画素の色が相違しており、等色ではない。これは画像領域６０２の内部に位置するその他の圧縮矩形領域についても同様で、ピースやラインは等色と判定されず圧縮率が大きく低下する。もちろんラインをその短手方向（すなわち縦）に拡張したブロックも等色ではない。
【００４４】
これに対して、本実施形態の発明によれば、画像領域６０２の描画位置を圧縮矩形領域６０１に対してシフトする画像シフト処理を実施する。つまり画像領域６０２の描画開始位置（左上隅）をピースの領域開始位置（左上隅）に一致するよう画像領域６０２をシフトする。そのシフトが図６に矢印６０３で示されている。
【００４５】
その結果図７のように、画像領域７０２は展開前の画像の１画素が、圧縮矩形領域７０１の内部に収まる。したがって圧縮矩形領域７０１および画像領域７０２の内部に位置するその他の圧縮矩形領域においても、ピースは等色となる。図７の例ではさらにラインも等色と判定でき、一層高い圧縮率が得られる。
【００４６】
＜画像展開時のシフト処理＞
図８に、本実施形態の画像シフト処理のフローチャートを示す。画像シフト処理は画像展開部１０４において、ビットマップ画像データの生成に際して、各オブジェクトに対して実施される。またここで印刷解像度は１２００ｄｐｉ、ピースは２×２画素、ラインは８×２画素の場合について説明する。
【００４７】
ステップ８０１で、画像展開部１０４は処理対象のオブジェクトについて画像シフト処理が必要かを判断する。そのために画像展開部１０４は対象オブジェクトの解像度および描画位置を解析する。対象オブジェクトについては、ビットマップに展開する以前の解像度も参照できる。本実施形態では、印刷解像度が対象オブジェクトの解像度の２Ｎ倍（Ｎは正の整数）であり、かつ対象オブジェクトの描画開始位置（Ｘ，Ｙ）のＸ，ＹいずれかがＭ画素目（Ｍは任意の正数）である場合、画像展開部１０４は画像シフト処理が必要と判断する。ここで（Ｘ，Ｙ）は、画像データ中の画素の位置を示す座標で（０，０）が開始点の画素とする。この条件は、より一般的には以下のようにいうことができる。印刷解像度とオブジェクト解像度との比（印刷解像度／オブジェクト解像度）をＭ、基本領域である１ピースの画素数をＮ×Ｎとし、対象オブジェクトの描画開始位置を（Ｘ，Ｙ）とし、演算ａ  ｍｏｄ  ｂを、ａのｂによる除算の剰余とする。このとき（Ｍ  ｍｏｄ  Ｎ）＝０かつ（Ｘ  ｍｏｄ  Ｎ）＝０かつ（Ｙ  ｍｏｄ  Ｎ）＝０であれば、圧縮矩形領域の境界と、対象オブジェクトを解像度変換した際の補間領域の境界とは一致する。ここでＭはオブジェクトを印刷解像度に変換する際の、１画素が補間により拡張される補間領域の１辺の画素数である。たとえばＭ＝２であれば、１画素は２×２画素に変換される。また（Ｍ  ｍｏｄ  Ｎ）＝０は補間領域の１辺の画素数が圧縮矩形領域の１辺の画素数の倍数であることを示す。（Ｘ  ｍｏｄ  Ｎ）＝０かつ（Ｙ  ｍｏｄ  Ｎ）＝０は、オブジェクトの描画開始位置が、圧縮矩形領域中の間引かれない画素（本例では左上隅）の位置と一致していることを示す。オブジェクトのシフトは、その描画開始位置（Ｘ，Ｙ）に係る条件を変更するためのものである。したがって、（Ｍ  ｍｏｄ  Ｎ）＝０なる条件が満たされなければ、オブジェクトの描画開始位置をシフトしたとしても圧縮矩形領域の境界と補間領域の境界とを一致させることはできない。そのため、対象オブジェクトをシフトする条件は、（Ｍ  ｍｏｄ  Ｎ）＝０かつ（（Ｘ  ｍｏｄ  Ｎ）≠０または（Ｙ  ｍｏｄ  Ｎ）≠０）となる。この条件が満たされれば対象オブジェクトをシフトし、満たされなければシフトしない。
【００４８】
判定の結果シフト処理が必要な場合はステップ８０２へ進み、不要な場合は処理を終了する。ステップ８０２で、画像展開部１０４はオブジェクトシフト処理のシフト量を決定する。画像展開部１０４は、対象オブジェクトの描画開始位置の画素を含むピースに隣接するピースのいずれかに対して、シフト量を算出する。例えば図６の画像シフト６０３は下方に隣接するピースに対して画像シフト処理を実施しており、シフト量は（−１，＋１）と算出される。より一般的には、シフト量は、Ｘ方向については（Ｘ  ｍｏｄ  Ｎ）
であり、Ｙ方向については（Ｙ  ｍｏｄ  Ｎ）であればよい。ここで正のシフト値は、Ｘ軸については左方向でありＹ軸については上方向である。負のシフト値は、Ｘ軸については右方向でありＹ軸については下方向である。もちろんシフトの方向も距離もさまざまな選択肢がある。たとえば、（Ｚ  ｍｏｄ  Ｎ）＞Ｎ／２（ここでＺはＸ又はＹ）の場合には、シフト量を（Ｚ  ｍｏｄ  Ｎ）−Ｎとしてもよい。こうすることでシフト量をより小さくすることができる。
【００４９】
ステップ８０３では、画像展開部１０４はステップ８０２で決定したシフト量に対し実際にシフトが可能かを判断する。詳細は図９において後述する。ステップ８０４では、ステップ８０３の結果、シフト可能な場合はステップ８０５へ進み、シフト不可能な場合は処理を終了する。ステップ８０５で、画像展開部１０４はステップ８０２で決定したシフト量にしたがって対象オブジェクトの描画位置をシフトする。
【００５０】
図８の処理は、画像データの生成処理のために処理対象となるオブジェクト全てについて施される。
【００５１】
図９に、ステップ８０３におけるシフト可能判定処理について示す。ステップ８０２において決定されたシフト量に対して、画像展開部１０４は実際に対象オブジェクトの描画位置を変更することができるかを判定する。
【００５２】
例えば図９の画像９０１はオブジェクト９０２に対する画像シフト処理によってオブジェクト９０２が画像領域外へはみ出してしまうこと示す。この場合画像処理装置１０１はシフト不可能と判定する。すなわち、オブジェクトは矩形であり、シフト後の描画開始位置を（Ｘ，Ｙ）、終了位置を（Ｗ，Ｚ）とし、画像データの描画範囲をＸ軸について０−Ｃｍａｘ、Ｙ軸について０−Ｌｍａｘとする。このときＸ＜０またはＹ＜０またはＷ＞ＣｍａｘまたはＺ＞Ｌｍａｘであればシフトできないと判定される。
【００５３】
また、画像９０３はオブジェクト９０４に対する画像シフト処理において、シフト量が規定の閾値を超えていることを示す。この場合画像処理装置１０１はシフト不可能と判定する。これはステップ８０２で決定したシフト量の絶対値を閾値と比較して、閾値より大きければシフトできないと判定できる。これは、オブジェクトが本来指定された位置から移動しすぎることを防止するためである。
【００５４】
また画像９０５はオブジェクト９０６に対する画像シフト処理において、オブジェクト９０６が隣接するオブジェクト９０７の領域と重複していることを示す。この場合画像処理装置１０１はシフト不可能と判定する。また画像９０８はオブジェクト９０９に対する画像シフト処理において、オブジェクト９０９が隣接するオブジェクト９１０の領域とちょうど接していることを示す。これらの場合にも画像処理装置１０１はシフト不可能と判定する。この判定はシフト対象のオブジェクトのシフト後の辺を構成する画素について、そのいずれかが他のオブジェクトに接するか否か、また重複するか否かを判定し、接するかまたは含まれる場合には、シフト前の該当する画素が、他のオブジェクトの画素と隣接しても、重複してもいないことを判定する。そして、本来他のオブジェクトと接触も重複もしていないオブジェクトが、シフト処理によって他のオブジェクトと接触または重複するようになった場合に、シフト不可能と判定する。これら以外の場合には画像処理１０１はシフト可能と判定する。判定結果はたとえばメモリ等に記憶し、ステップ８０４で参照される。
【００５５】
図１０に、本実施形態に係る発明の効果と画像パターンを示す。図１０は、印刷解像度に展開したオブジェクトの例である。画像１００１のような、縦方向に色が変化する水平方向のグラデーション画像は、図６および図７で前述したようにピースやライン単位で等色と判定される。そのため高い圧縮率が得られ解像度圧縮の効果が高い。また画像１００２のように、画像展開部１０４での展開前のオブジェクトが１画素ごとに異なる色の画像であっても、少なくもとピース単位では等色と判定される。そのため、本実施形態に係る発明を実施しない場合に比べ高い圧縮率が得られる。
【００５６】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（例えば図８の手順のプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005406703.tif 000002
【図２】
0005406703.tif 000003
【図３】
0005406703.tif 000004
【図４】
0005406703.tif 000005
【図５】
0005406703.tif 000006
【図６】
0005406703.tif 000007
【図７】
0005406703.tif 000008
【図８】
0005406703.tif 000009
【図９】
0005406703.tif 000010
【図１０】
0005406703.tif 000011