説明

画像処理装置及び画像処理方法

【課題】様々な解像度のオブジェクトを含む画像データを高解像度の印刷解像度で展開したビットマップデータを解像度変換で圧縮する際の圧縮率を向上させる。
【解決手段】オブジェクトの解像度および描画位置を考慮し、オブジェクトを解像度変換した際に1画素から拡張した補間領域の境界と、解像度圧縮する際の圧縮矩形領域の境界とが一致するようにオブジェクトの描画位置をシフトすることで、解像度圧縮の圧縮率を向上させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理に際して、例えばメモリ資源の削減や処理高速化等のためにデータ量を圧縮することを目的として符号化する画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
従来の画像圧縮のための符号化方法には、画像を所定の矩形領域(これを圧縮矩形領域または単位矩形領域と呼ぶ。)に分割し、矩形領域単位で符号化する方法がある。さらに特許文献1では、その圧縮処理において、解像度変換部により解像度変換を行って低解像度化した画像に対して非可逆符号化を施すことで高い圧縮率を得る方法が提示されている。
【0003】
この様な方法を用いて様々な解像度のオブジェクトを含む画像データを印刷する場合、いったん印刷解像度を有する画像データが展開され、その画像データが必要に応じて低解像度に変換(これを解像度圧縮と呼ぶ。)される。このため、印刷解像度以外の解像度を持つオブジェクトは、二度の解像度変換処理を受けることになる。
【0004】
ここで、低解像度から高解像度への解像度変換は、たとえば補間処理によって画素間に挿入される補間画素を生成することで実現できる。補間処理には、たとえば元画素を複製して補間画素とする方法や、元画素の線形補間を行う方法などがある。一方、高解像度から低解像度へと変換する場合には、画素の間引きが行われる。解像度圧縮と伸長とを可逆的に行うために、間引いた画素に基づく補間データを生成して解像度変換後の画像データに添付する解像度圧縮方法がある。この方法で解像度圧縮した画像データは、伸長時に補間データを参照することで間引いた画素についても元通りに復元できる。補間データは、たとえば、代表値(代表色)と間引かれた画素値との差分の配置を示すデータなどである。また補間データにとしてたとえば差分値のビットマップを含め、差分が0の画素についてはビットマップで差分値が含まれないことを示すことで、補間データのデータ量を減らすことができる。もちろんビットマップ以外にも、代表色との差分が0の画素について省く方法はある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−042687号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
このような解像度変換を行うと、ある画像データを高解像度画像データに変換した場合、補間された画素(補間画素)は補間画素の基とした画素(元画素)に近似した色成分を持つことになる。とくに、元画像を単純に複製して補間する方法で補間した画像では、元画素と補間画素とは同一の色成分を持つ。そのため、元画素と補間画素とから成る領域について解像度変換を再度施して低解像度化する処理において、補間データの量が減少して高圧縮率を達成することができる。
【0007】
しかしながら、元画素と当該元画素を補間して得た補間画素とから成る画素領域が、複数の圧縮矩形領域にまたがる場合、圧縮矩形領域内の画素間の色の不連続が生じ、本来補間画像データで達成できる圧縮率に比べてその圧縮率が低下する。換言すれば、圧縮矩形領域の境界が、元画素と当該元画素を補間して得た補間画素とから成る画素領域内に位置する場合、圧縮率が低下する。
【0008】
本発明は上記従来例に鑑みて成されたもので、上述の課題を解決することを目的とする。すなわち、圧縮矩形領域の境界と、元画素から補間された画素群の境界との不一致に起因する低圧縮率を解消することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために本発明は以下の構成を有する。すなわち、画像データの圧縮処理を行う画像処理装置であって、
解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開手段と、
圧縮領域を単位として1画素に変換し、前記圧縮領域内の画素については、前記圧縮領域内の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素の色差を、補間データとして圧縮後の画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮手段とを備え、
前記画像展開手段は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクト画像データについて、補間処理前の1画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として1画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト手段を有する。
【発明の効果】
【0010】
本発明によれば、解像度変換部による圧縮の圧縮率が低下することを回避し、高解像度な画像をより小さいデータ量で保持することができる。したがって該画像の印刷等の画像処理において、高品質な画像を高いパフォーマンスで提供することが可能となる。
【図面の簡単な説明】
【0011】
【図1】本発明のハードウェア構成を示す図である。
【図2】外部装置からの印刷機能において画像フロー例を示す図である。
【図3】低解像度オブジェクトに対する解像度変換について説明する図である。
【図4】圧縮矩形領域について説明する図である。
【図5】オブジェクト描画位置と圧縮矩形領域について説明する図である。
【図6】本発明実施前の画像を示す図である。
【図7】本発明実施後の画像を示す図である。
【図8】本発明の画像シフト処理のフローチャートを示す図である。
【図9】本発明のシフト可能判定について説明する図である。
【図10】本発明における効果と画像パターンを説明する図である。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。説明において解像度変換とは、入力画像データの解像度を変換し、より低解像度の低解像度画像データあるいはより高解像度の高解像度画像データを生成する処理である。なおここでいう解像度とは、対象となる画像が一定の大きさを有することを前提とした用語である。その前提がないとすれば、単に画素数と呼び変えることもできる。また圧縮矩形領域とは、入力画像に対して解像度変換部で解像度圧縮を実施する画像領域の単位であり、矩形でないこともあり得ることから単に圧縮領域と呼ぶこともある。
【0013】
<装置の構成>
図1に本実施形態に係る画像処理装置のハードウェア構成例を示す。外部装置接続部102は、LANやUSB等のインターフェースであり、該インターフェースを介した接続によって外部装置との間で、画像データ等のデータの送受信を行う。画像入力部103は、外部装置接続部102を経由してデータを受け取ることができる。入力される画像データは、ベクタデータを含み様々な解像度のオブジェクトで構成されたデータであってもよい。ここでオブジェクトとは画像を構成する構成要素であり、たとえばビットマップデータなどのイメージオブジェクトや、文字や線画などのベクタオブジェクト等がある。イメージオブジェクトは画素で構成されており、ベクタオブジェクトは例えばオブジェクトを定義する輪郭や色等のデータで構成されている。異なる解像度のオブジェクトがひとつの画像に含まれていることもあり得る。なお、ベクタオブジェクトのデータをベクタデータと呼ぶ。
【0014】
画像展開部104は、ベクタデータを含み様々な解像度のオブジェクトで構成された画像データを展開してビットマップ画像データを生成する。生成されるビットマップ画像データの解像度はたとえば予めの指定されることで定められている。画像展開部104では、この定められた解像度(指定解像度と呼ぶ。)のビットマップ画像データを生成する。そのために、指定解像度と異なる解像度を有するオブジェクトが画像データに含まれている場合、そのオブジェクトの解像度は、指定解像度に変換される。また、ベクタオブジェクトからは指定解像度のビットマップデータが生成される。各オブジェクトは、指定解像度のビットマップ画像データに、指定された方法で合成される。合成方法としては、たとえは上書きや、上層のオブジェクトの不透明度を指定したアルファ混合などがある。
【0015】
解像度変換部105は、画像展開部104で生成された指定解像度のビットマップ画像データに対して解像度変換を施して解像度圧縮(例えば間引き)または伸長(例えば補間)する。解像度圧縮は、圧縮処理の単位となる画素領域の画素を一画素に変換する処理で単純な間引きや、圧縮処理の単位となる画素領域の画素の平均値などの方法はあるが、いずれにしても或る代表色を変換後の画素値とする処理である。本例では解像度圧縮は間引き処理であるとする。生成されたビットマップ画像データに対して解像度圧縮する場合には、所定の圧縮矩形領域ごとに色情報パターンを解析し、解像度圧縮後の低解像度画像と補間データとを生成する。解像度圧縮した画像データは、伸長時に補間データを参照することで間引いた画素についても可逆的にすなわち元通りに伸長できる。伸長処理も解像度変換部105で行われる。補間データは、たとえば、代表値(代表色)と間引かれた画素値との差分、すなわち色差の配置を示すデータなどである。代表値としては例えば間引かずに残した画素の値を用いることができる。さらに補間データにとしてたとえば代表色の値と圧縮矩形領域内の全画素が同じ色(等色)であることを示すデータを含め、等色の場合には、補間データを、代表値と画素の配置とを示すデータで構成することもできる。等色でない場合には画素の配置に従って、代表色と各画素値との差分値を示すように補間データを構成する。こうすることで、等色の領域については補間データのデータ量を大幅に減らすことができる。また、圧縮矩形領域のサイズの変動にも柔軟に対応できる。もちろんこの補間データは一例であって、ビットマップ以外にも、一様な領域については補間データのデータ量を小さくできるような解像度圧縮方法であれば本実施形態に適用可能である。
【0016】
符号変換部106は、解像度変換部105で生成された画像をJPEGなど静止画用の所定の符号化手順で符号化して符号化画像データを生成する。また逆に符号化画像データを復号する。もちろんたとえばJPEG2000など、JPEG以外の符号化手順を採用しても良い。
【0017】
印刷部107は、画像データに基づいて、トナーやインクといった色剤により形成した画像を用紙上に形成して印刷を行う。印刷機構としては、電子写真方式やインクジェット方式、熱転写方式など種々の方式を採用できる。圧縮された画像データは、復号され伸張されて印刷部107に渡される。印刷部107が外部装置の場合にはインターフェースを介して送信される。
【0018】
また画像処理装置101は、CPU108とROM109と記憶部110を持つ。CPU108は、画像処理装置101の制御部であり、装置全体を制御する。たとえば画像入力部103で受信した画像データを画像展開部104でビットマップ画像データに展開させたり、その解像度変換を行わせるなど、図1の各構成ブロック間のデータ転送や処理の協調などがCPU108により制御される。あるいは、画像展開部104,解像度変換部105,符号変換部106などを、CPU108によりプログラムを実行することで達成される機能ブロックにより実現することもできる。
【0019】
ROM109は、CPU206により実行される制御プログラムや固定的なデータを格納するメモリである。記憶部110は、CPU108の制御プログラムの変数を格納するため、および画像処理装置の各処理用バッファを格納するためのものであり、RAMやHDDといった記憶媒体を有する。入力された画像データなどは各処理ブロックが持つローカルなメモリに記憶しても良いが、記憶部110に記憶することもできる。
【0020】
なお、図1には画像処理装置として、印刷部107を有するプリンタや複写機等の画像形成装置を示した。これに代えて、画像処理装置101は、印刷部107を持たず、印刷部107にはネットワーク等を介して接続するためのインターフェースを持つコンピュータなどであってもよい。いずれにしても、画像展開部104,解像度変換部105,符号変換部106を有する構成であれば、本実施形態に係る発明を適用できる。
【0021】
図2に、外部装置からの印刷機能における画像フロー例を示す。画像入力部103で入力された画像データはベクタ情報を含む画像データであり、ディスプレイリスト201として記憶部110に格納される。画像データは次に画像展開部104でRIP処理され、印刷解像度(例えば1200dpi)のビットマップ画像データ202に展開される。画像データにはオブジェクトが含まれており、その解像度はオブジェクト毎に設定されている。そこで、オブジェクト毎に必要に応じた解像度変換を行い、ビットマップ画像データに変換される。
【0022】
展開後の画像データ202は次に解像度圧縮部105で解像度圧縮され、圧縮解像度(例えば300dpi)の画像データと補間データに変換される。このデータを圧縮データ203と呼ぶことにする。
【0023】
圧縮画像データ203は次に符号圧縮部106で符号化され(例えばJPEG符号化)、符号化された画像データに変換され記憶部109に格納される。このとき補間データがあれば補間データも合わせて符号化されており、符号化後の画像データと補間データとを符号化データ204と呼ぶことにする。
【0024】
この手順で圧縮保存された画像データは、印刷時には逆のフローをたどり復号され、解像度伸長されて印刷部107で印刷される。
【0025】
<解像度圧縮>
図3に、低解像度オブジェクトに対する解像度圧縮手順について示す。画像展開部104のRIP処理に対する入力画像は、様々な解像度のオブジェクトで構成される。例えばあるオブジェクトの解像度(例えば600dpi)が印刷解像度(例えば1200dpi)に対して低解像度である場合、1画素の画像領域301はRIP処理により4画素の画像領域302に展開される。本実施形態では、画像展開部104における高解像度化処理は、元画素の複製による補間である。そのため画像領域302の各画素の色情報は元画素と同一となり、解像度変換部105で解像度圧縮する場合、1つの色情報として圧縮できるため前述したように高い圧縮率が得られる。
【0026】
図4に、解像度圧縮の圧縮矩形領域について示す。本実施形態における解像度変換部105における解像度圧縮は、複数の大きさの圧縮矩形領域を用いる。解像度変換部105は、圧縮矩形領域について画素の色情報を参照し、領域内の等色判定や色情報のパターン解析を行い解像度圧縮を実現する。例えば第一の圧縮矩形領域401は2×2画素の画像領域である(基本領域、以下ピースと呼ぶ)。第二の圧縮矩形領域402はピースが水平方向に複数(ここでは4)つながった8×2画素の画像領域である(一次拡張領域、以下ラインと呼ぶ)。また第三の圧縮矩形領域403は、ラインが垂直方向に複数(ここでは4)つながった8×8画素の領域である(二次拡張領域、以下ブロックと呼ぶ)。これら圧縮矩形量域のサイズは本実施形態で採用した一例にすぎない。ピースは解像度圧縮を行う際の基本的な対象領域であり、本例では2×2画素を1×1画素に間引いているためにピースも2×2画素領域となる。したがって、たとえば4×4画素を1画素に間引くのであれば、ピースは4×4画素領域となる。また、ラインはピースの整数倍の広がりを持つ領域であり、第二の圧縮矩形領域と呼ぶように、矩形であることが望ましい。その理由は、矩形であれば画素の並びの記述が単純になり、解像度圧縮した際に、ラインが等色の場合圧縮率をより高くすることが可能なためである。圧縮率の低下と引き替えに、矩形ではないより複雑な形状を採用することもできる。ブロックもまたピースの整数倍の広がりを持つ領域であり、ラインと同様の理由で矩形であることが望ましい。さらに、複数の連続したラインが等色と判定された場合に、それらを合わせてブロックが等色と判定できるので、ブロックは連続する複数のラインから構成されることが望ましい。
【0027】
ライン、ブロックなどの圧縮矩形領域は、等色の画素領域が広いほど解像度圧縮による圧縮率が高くなることから、ピース、ライン、ブロックというように、段階的に広くなるような範囲で等色か否かを判定する対象として定められている。したがって、圧縮矩形領域としては、たとえばピースの整数倍の広がりを持つひとつの領域を定めておいても良いし、本実施形態で採用した3種類にとどまらずより多くの種類の領域を定めておいても良い。
【0028】
解像度変換部105は、ブロック、ライン、ピースの順に各圧縮矩形領域で等色判定を行い、等色である場合はその色情報と圧縮矩形領域の情報のみ補間データとして生成する。圧縮矩形領域について等色とは、当該領域内が一様な色であることを意味する。ピース単位で等色でない場合は、解像度変換部105はピース内の色情報パターンを解析し、色情報パターンを補間データとして生成する。
【0029】
ここで解像度変換部105により実行される解像度圧縮の手順の一例を示す。まず、解像度圧縮の対象となる画像データの始点となる画素たとえばラスタ順で先頭の画素に着目する。着目画素を、解像度圧縮後の画像を格納する領域に複製する(間引きステップ)。複製する位置は、圧縮後の画素が圧縮前に対応する順序で配置されるように決定される。
【0030】
次に補間データを生成する(補間データ生成ステップ)。そのためにまず、着目画素を一定の相対位置(たとえば左上隅)の画素として含むピース内の他の画素に着目し、すべて着目画素と等しいか、すなわち着目ピースが等色であるか判定する(等色判定サブステップ)。すべて等色であれば、着目画素に関連づけた補間データとして、等色であることを示す等色フラグをセットし、代表色として着目画素の色データを格納し、さらに画素の並びを示すデータ(この場合にはピースの並び)を格納する。画素の並びはたとえば着目画素を基準として示される。本例のように矩形領域であれば、縦横それぞれの画素数で示すことができる。着目画素と補間データとの関連づけは、たとえば圧縮済みの画素と同じ順序で補間データを配置することで実現できる。もちろんリンクを設けて関連づけを行うこともできる。
【0031】
一方等色でない場合には、着目画素に関連づけた補間データとして、等色であることを示す等色フラグをリセットし、代表色の色データ、画素の並びを示すデータ、各画素の代表色との差分値を格納する。
【0032】
上記手順を、着目画素をピース単位で進めながら繰り返す。この結果、画像データ全域について、解像度圧縮した解像度圧縮データとピース単位の補間データとが得られる。
【0033】
さらにピース単位で解像度圧縮した画素群をライン単位で再圧縮する。これは、それぞれが等色であり、かつ、互いに等色であるピースが1ライン分(本例で1×4ピース)並んでいることを判定し、並んでいればそのピース群を1ラインに置換する処理である。解像度圧縮データについては1ラインの画素群を1つの画素で代表させる(すなわち他は削除し)。また、補間データについても、画素の並びをピースからラインに書き換え、圧縮後の画像データにおいて当該ラインを代表する画素にそれを関連づける(削除した画素の補間データは削除する)。こうすることで一層圧縮率を上げることができる。
【0034】
さらにピース単位で解像度圧縮した画素群をブロック単位で再圧縮する。これは、それぞれが等色であり、かつ、互いに等色であるピースが1ブロック分(本例で4×4ピース)並んでいることを判定し、並んでいればそのピース群を1ブロックに置換する処理である。解像度圧縮データについては1ブロックの画素群を1つの画素で代表させる(すなわち他は削除し)。また、補間データについても、画素の並びをピースからブロックに書き換え、圧縮後の画像データにおいて当該ブロックを代表する画素にそれを関連づける(削除した画素の補間データは削除する)。こうすることで一層圧縮率を上げることができる。なお本例ではブロックは4ラインから構成されるので、等色のラインが1×4の配置で並んでいればそれを1ブロックと置換しても良い。
【0035】
さらに、ラインやブロック単位での圧縮を段階的に行わず、等色の範囲が2×8画素であればライン単位で、8×8画素であればブロック単位で解像度圧縮するようにしてもよい。
【0036】
以上の手順により解像度圧縮は実現できる。本手順は一例であり、結果的にピース単位、ライン単位、ブロック単位で等色であれば、その圧縮矩形領域を1画素で代表させ、補間データとしてはその矩形領域内の画素配置を示すデータを代表する画素に関連づける手順であれば他の手順であっても良い。
【0037】
<補間領域と圧縮矩形領域>
図5に、オブジェクト描画位置と圧縮矩形領域との関係について示す。圧縮矩形領域501はブロックを示し、圧縮矩形領域502はラインを示し、圧縮矩形領域503はピースを示す。また画像領域504および505は、画像展開部104により印刷解像度例えば1200dpiのビットマップ画像に展開された画像である。画像領域504は、文字領域や下地領域など元々1200dpiのオブジェクトに相当する画像領域である。画像領域505は、画像展開部104による展開前の画像データにおいてはグラフィック領域など印刷解像度より低い解像度、たとえば600dpiのオブジェクトに相当する画像領域である。
【0038】
図3で説明したように、画像領域505は、元画素と該画素から生成した補間画素とから成る2×2画素の単位で必ず等色であり、オブジェクト内においては少なくともピース単位で等色と判定される。このため、解像度変換部105において高い圧縮率が得られると考えられる。
【0039】
しかしながら画像展開部104でのオブジェクト描画位置と解像度圧縮部105での圧縮矩形領域の位置によっては、ピースやラインが等色と判定されず圧縮率が低下する場合がある。すなわち、画像展開部104の解像度変換において補間した画素群の領域が、解像度圧縮部105による間引き処理の圧縮矩形領域の境界に跨る場合、圧縮矩形領域内の画素が等色となるとは限らない。この場合には解像度圧縮の圧縮率が大幅に低下することもあり得る。
【0040】
第一の圧縮矩形領域502および第二の圧縮矩形領域503と、画像領域505の位置関係を、図5の506および507に示す。506は、画像領域505における補間した画素領域と圧縮矩形領域502および503が一致している場合を示す。画像展開部104により、元の1画素から補間して生成した画素領域は図では圧縮矩形領域502内の2×2の画素領域として示されている。この2×2の画素領域のうち、1画素(例えば左上画素)が600dpiの元画素であり、残りの3画素は元画素を複製した補間画素である。この2×2の画素領域を補間領域と呼ぶことにする。すなわち、補間処理前の1画素に相当する補間処理後の画素領域が補間領域である。506では、補間領域、すなわち展開前の画像の1画素が圧縮矩形領域503に収まっていることから、少なくとも補間領域の境界とピースの境界は一致する。したがってピースは等色である。ピースが等色であるから、ラインについても等色と判定される可能性があり、ラインが等色であれば当該ラインを含むブロックも等色と判定される可能性がある。
【0041】
507はオブジェクト描画位置と圧縮矩形領域502および503が一致していない場合を示す。507では、補間領域、すなわち展開前の画像の1画素が圧縮矩形領域503に跨っているため、ピースが等色である保証はない。ピースが等色でなければ当該ピースを含むラインも等色ではなく、当該ラインを含むブロックも等色ではない。したがって圧縮率も下がる可能性が高い。
【0042】
図6に、図5の507に示したようなオブジェクト描画位置と圧縮矩形領域が一致しない場合に対し、本実施形態に係る発明を実施しない場合の画像例を示す。また図7に、本実施形態に係る発明を実施した場合の画像例を示す。
【0043】
図6において、二重枠で示した圧縮矩形領域601は、4つのピースから構成される8×2画素のラインである。太線枠で示した画像領域602は、600dpiのオブジェクトが1200dpiに展開された画像を示し、8×8画素の領域である。またここで画像領域602は、水平方向に一様な色が縦方向に変化するグラデーション画像であるとする。圧縮矩形領域601の位置に対し、画像領域602は、その展開後の補間領域すなわち展開前の画像の1画素が跨るように位置している。そのため、圧縮矩形領域601であるラインは等色と判定されない。また、圧縮矩形領域601を構成する4つのピースのいずれも、少なくとも上下の画素の色が相違しており、等色ではない。これは画像領域602の内部に位置するその他の圧縮矩形領域についても同様で、ピースやラインは等色と判定されず圧縮率が大きく低下する。もちろんラインをその短手方向(すなわち縦)に拡張したブロックも等色ではない。
【0044】
これに対して、本実施形態の発明によれば、画像領域602の描画位置を圧縮矩形領域601に対してシフトする画像シフト処理を実施する。つまり画像領域602の描画開始位置(左上隅)をピースの領域開始位置(左上隅)に一致するよう画像領域602をシフトする。そのシフトが図6に矢印603で示されている。
【0045】
その結果図7のように、画像領域702は展開前の画像の1画素が、圧縮矩形領域701の内部に収まる。したがって圧縮矩形領域701および画像領域702の内部に位置するその他の圧縮矩形領域においても、ピースは等色となる。図7の例ではさらにラインも等色と判定でき、一層高い圧縮率が得られる。
【0046】
<画像展開時のシフト処理>
図8に、本実施形態の画像シフト処理のフローチャートを示す。画像シフト処理は画像展開部104において、ビットマップ画像データの生成に際して、各オブジェクトに対して実施される。またここで印刷解像度は1200dpi、ピースは2×2画素、ラインは8×2画素の場合について説明する。
【0047】
ステップ801で、画像展開部104は処理対象のオブジェクトについて画像シフト処理が必要かを判断する。そのために画像展開部104は対象オブジェクトの解像度および描画位置を解析する。対象オブジェクトについては、ビットマップに展開する以前の解像度も参照できる。本実施形態では、印刷解像度が対象オブジェクトの解像度の2N倍(Nは正の整数)であり、かつ対象オブジェクトの描画開始位置(X,Y)のX,YいずれかがM画素目(Mは任意の正数)である場合、画像展開部104は画像シフト処理が必要と判断する。ここで(X,Y)は、画像データ中の画素の位置を示す座標で(0,0)が開始点の画素とする。この条件は、より一般的には以下のようにいうことができる。印刷解像度とオブジェクト解像度との比(印刷解像度/オブジェクト解像度)をM、基本領域である1ピースの画素数をN×Nとし、対象オブジェクトの描画開始位置を(X,Y)とし、演算a mod bを、aのbによる除算の剰余とする。このとき(M mod N)=0かつ(X mod N)=0かつ(Y mod N)=0であれば、圧縮矩形領域の境界と、対象オブジェクトを解像度変換した際の補間領域の境界とは一致する。ここでMはオブジェクトを印刷解像度に変換する際の、1画素が補間により拡張される補間領域の1辺の画素数である。たとえばM=2であれば、1画素は2×2画素に変換される。また(M mod N)=0は補間領域の1辺の画素数が圧縮矩形領域の1辺の画素数の倍数であることを示す。(X mod N)=0かつ(Y mod N)=0は、オブジェクトの描画開始位置が、圧縮矩形領域中の間引かれない画素(本例では左上隅)の位置と一致していることを示す。オブジェクトのシフトは、その描画開始位置(X,Y)に係る条件を変更するためのものである。したがって、(M mod N)=0なる条件が満たされなければ、オブジェクトの描画開始位置をシフトしたとしても圧縮矩形領域の境界と補間領域の境界とを一致させることはできない。そのため、対象オブジェクトをシフトする条件は、(M mod N)=0かつ((X mod N)≠0または(Y mod N)≠0)となる。この条件が満たされれば対象オブジェクトをシフトし、満たされなければシフトしない。
【0048】
判定の結果シフト処理が必要な場合はステップ802へ進み、不要な場合は処理を終了する。ステップ802で、画像展開部104はオブジェクトシフト処理のシフト量を決定する。画像展開部104は、対象オブジェクトの描画開始位置の画素を含むピースに隣接するピースのいずれかに対して、シフト量を算出する。例えば図6の画像シフト603は下方に隣接するピースに対して画像シフト処理を実施しており、シフト量は(−1,+1)と算出される。より一般的には、シフト量は、X方向については(X mod N)
であり、Y方向については(Y mod N)であればよい。ここで正のシフト値は、X軸については左方向でありY軸については上方向である。負のシフト値は、X軸については右方向でありY軸については下方向である。もちろんシフトの方向も距離もさまざまな選択肢がある。たとえば、(Z mod N)>N/2(ここでZはX又はY)の場合には、シフト量を(Z mod N)−Nとしてもよい。こうすることでシフト量をより小さくすることができる。
【0049】
ステップ803では、画像展開部104はステップ802で決定したシフト量に対し実際にシフトが可能かを判断する。詳細は図9において後述する。ステップ804では、ステップ803の結果、シフト可能な場合はステップ805へ進み、シフト不可能な場合は処理を終了する。ステップ805で、画像展開部104はステップ802で決定したシフト量にしたがって対象オブジェクトの描画位置をシフトする。
【0050】
図8の処理は、画像データの生成処理のために処理対象となるオブジェクト全てについて施される。
【0051】
図9に、ステップ803におけるシフト可能判定処理について示す。ステップ802において決定されたシフト量に対して、画像展開部104は実際に対象オブジェクトの描画位置を変更することができるかを判定する。
【0052】
例えば図9の画像901はオブジェクト902に対する画像シフト処理によってオブジェクト902が画像領域外へはみ出してしまうこと示す。この場合画像処理装置101はシフト不可能と判定する。すなわち、オブジェクトは矩形であり、シフト後の描画開始位置を(X,Y)、終了位置を(W,Z)とし、画像データの描画範囲をX軸について0−Cmax、Y軸について0−Lmaxとする。このときX<0またはY<0またはW>CmaxまたはZ>Lmaxであればシフトできないと判定される。
【0053】
また、画像903はオブジェクト904に対する画像シフト処理において、シフト量が規定の閾値を超えていることを示す。この場合画像処理装置101はシフト不可能と判定する。これはステップ802で決定したシフト量の絶対値を閾値と比較して、閾値より大きければシフトできないと判定できる。これは、オブジェクトが本来指定された位置から移動しすぎることを防止するためである。
【0054】
また画像905はオブジェクト906に対する画像シフト処理において、オブジェクト906が隣接するオブジェクト907の領域と重複していることを示す。この場合画像処理装置101はシフト不可能と判定する。また画像908はオブジェクト909に対する画像シフト処理において、オブジェクト909が隣接するオブジェクト910の領域とちょうど接していることを示す。これらの場合にも画像処理装置101はシフト不可能と判定する。この判定はシフト対象のオブジェクトのシフト後の辺を構成する画素について、そのいずれかが他のオブジェクトに接するか否か、また重複するか否かを判定し、接するかまたは含まれる場合には、シフト前の該当する画素が、他のオブジェクトの画素と隣接しても、重複してもいないことを判定する。そして、本来他のオブジェクトと接触も重複もしていないオブジェクトが、シフト処理によって他のオブジェクトと接触または重複するようになった場合に、シフト不可能と判定する。これら以外の場合には画像処理101はシフト可能と判定する。判定結果はたとえばメモリ等に記憶し、ステップ804で参照される。
【0055】
図10に、本実施形態に係る発明の効果と画像パターンを示す。図10は、印刷解像度に展開したオブジェクトの例である。画像1001のような、縦方向に色が変化する水平方向のグラデーション画像は、図6および図7で前述したようにピースやライン単位で等色と判定される。そのため高い圧縮率が得られ解像度圧縮の効果が高い。また画像1002のように、画像展開部104での展開前のオブジェクトが1画素ごとに異なる色の画像であっても、少なくもとピース単位では等色と判定される。そのため、本実施形態に係る発明を実施しない場合に比べ高い圧縮率が得られる。
【0056】
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(例えば図8の手順のプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
画像データの圧縮処理を行う画像処理装置であって、
解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開手段と、
圧縮領域を単位として代表色を持つ1画素に変換し、前記圧縮領域の中の画素については、前記圧縮領域の中の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素の色差を、補間データとして変換後の前記1画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮手段とを備え、
前記画像展開手段は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクトの画像データについて、補間処理前の1画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として1画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト手段を有することを特徴とする画像処理装置。
【請求項2】
前記シフト手段は、シフトしたオブジェクトが前記ビットマップ画像データの外に出る場合、または、シフトする量が閾値を越える場合、または、シフトしたオブジェクトが他のオブジェクトと接するもしくは重複する場合には、当該オブジェクトをシフトしないことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記圧縮手段により圧縮されたビットマップ画像データを伸張して印刷部に送信するための手段をさらに備えることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
請求項1又は2に記載の画像処理装置の前記圧縮手段により圧縮されたビットマップ画像データを伸張して印刷するための印刷手段をさらに備えることを特徴とする画像形成装置。
【請求項5】
画像データの圧縮処理を行う画像処理装置における画像処理方法であって、
前記画像処理装置の画像展開手段が、解像度の異なるオブジェクトを含む画像データを、オブジェクト毎の解像度に応じた補間処理を行って所定の解像度を有するビットマップ画像データに変換する画像展開工程と、
前記画像処理装置の圧縮手段が、圧縮領域を単位として代表色を持つ1画素に変換し、前記圧縮領域の中の画素については、前記圧縮領域の中の画素が同じ色である場合にはその旨を示す情報を、同じ色でない場合には各画素の色差を、補間データとして変換後の前記1画素に関連づけることで前記ビットマップ画像データを可逆的に圧縮する圧縮工程とを有し、
前記画像展開工程は、オブジェクトを前記所定の解像度を有するビットマップ画像データに変換したオブジェクトの画像データについて、補間処理前の1画素に相当する補間処理後の画素領域の境界が、前記ビットマップ画像データを所定の圧縮領域を単位として1画素に変換することで圧縮するための当該圧縮領域の境界と一致するよう、前記オブジェクトの前記ビットマップ画像データにおける描画位置をシフトするシフト工程を有することを特徴とする画像処理方法。
【請求項6】
請求項1乃至3のいずれか一項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−139163(P2011−139163A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−296377(P2009−296377)
【出願日】平成21年12月25日(2009.12.25)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】