説明

画像処理装置、画像処理方法、及びコンピュータプログラム

【課題】画像データついて、高品質を維持しつつ、データ量を削減する。
【解決手段】画像処理装置200であって、画像を分割する際に使用する複数の分割解像度を決定する分割解像度決定部223と、前記複数の分割解像度に対応する複数種類のブロックを用いて前記画像を表す多解像度画像データを生成するデータ変換部222と、を備え、前記複数の分割解像度は、順次整数を乗じた関係を有しており、前記データ変換部222は、前記複数種類のブロックのうち、可能な限り大きなブロックを用いて前記画像を複数の一様なブロックに分割し、当該ブロック分割で得られたそれぞれ一様なブロックの解像度を示す解像度番号と、前記ブロックの色情報と、を含む多解像度画像データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データのデータ量を削減する技術に関するものである。
【背景技術】
【0002】
プリンターやパーソナルコンピュータやデジタルスチルカメラ等の画像処理装置間において高解像度の画像を転送する場合、処理するデータ量が多いことから画像転送のための処理負荷が大きくなる。そこで、画像を圧縮して転送したり、解像度を低下させて転送したりすることにより、転送データ量を減らすことが行われている。ここで、文字部分とそれ以外の部分(以下「絵柄部分」と呼ぶ)とを含む画像に対して一様に解像度を低下させて転送した場合、伸張後の画像の文字部分において線幅の不均一やシャギーなどの画質の劣化が発生し得る。そこで、文字部分と絵柄部分とを分離し、それぞれ適切な解像度に低下させて転送し、受信側において、それぞれの部分について高解像度化して解像度を一致させた上で合成する方法が提案されている(例えば、特許文献1、2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001−136374号公報
【特許文献2】特開2002−176552号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来の方法では、受信側における画像の合成などの演算処理の負荷が大きいという問題があった。特に、コンピュータからプリンターに印刷用の画像データを送る場合、コンピュータに比べて処理能力が小さなプリンターで画像の合成などの演算処理を行うと、システム全体としての処理時間がかかるという問題があった。
【0005】
本発明は、上述の課題の少なくとも一部を解決し、画像データについて、高品質を維持しつつ、データ量を削減することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0007】
[適用例1]
画像処理装置であって、画像を分割する際に使用する複数の分割解像度を決定する解像度決定部と、前記複数の分割解像度に対応する複数種類のブロックを用いて前記画像を表す多解像度画像データを生成するデータ生成部と、を備え、前記複数の分割解像度は、順次整数を乗じた関係を有しており、前記データ生成部は、前記複数種類のブロックのうち、可能な限り大きなブロックを用いて前記画像を複数の一様なブロックに分割し、当該ブロック分割で得られたそれぞれ一様なブロックの解像度を示す解像度番号と、前記ブロックの色情報と、を含む多解像度画像データを生成する、画像処理装置。
この適用例によれば、画像を一様な可能な限り大きなブロックに分割する。そして、一様なブロックごとのブロックの分割解像度を示す解像度番号と、ブロックの色情報とを含む多解像度画像データを生成する。そのため、画像データについて、高品質を維持しつつ、データ量を削減することが可能である。
【0008】
[適用例2]
適用例1に記載の画像処理装置において、前記解像度決定部は、前記多解像度画像データを前記画像処理装置から受けて画像出力を実行する画像出力装置より、出力解像度を取得し、前記出力解像度を用いて、前記複数の分割解像度を決定する、画像処理装置。
この適用例によれば、解像度決定部は、画像出力装置から出力解像度を取得して、複数の分割解像度を決定する。その結果画像出力装置の出力解像度に合わせた画像の分割が可能となる。
【0009】
[適用例3]
適用例1または適用例2に記載の画像処理装置において、前記画像データ生成部は、前記多解像度データを生成する処理において、(a)前記複数の分割解像度のうちの最も低い分割解像度を設定分割解像度に設定するとともに、前記画像の全体を分割対象画像領域として設定し、(b)前記設定解像度で前記分割対象画像領域を複数個のブロックに分割し、(c)前記分割された複数個のブロックの中の1つのブロックを順に処理対象ブロックとして選択し、(d)前記処理対象ブロックが一様か否かを判断し、(d−1)前記処理対象ブロックが一様な場合には、前記設定分割解像度を示す解像度情報と、前記処理対象ブロックの色を示す色情報とを、前記処理対象ブロックを表す多解像度画像データとして生成するとともに、前記処理(c)に戻って前記処理(c)以降の処理を継続し、(d−2)前記処理対象ブロックが一様でない場合に、(d−2−1)前記設定分割解像度の次に高い分割解像度が前記複数の分割解像度のうちの最も高い分割解像度以下である場合には、前記次に高い分割解像度を新たな設定分割解像度として設定し、前記処理対象ブロックを新たな分割対象画像領域として設定するとともに、前記処理(b)に戻って前記処理(b)以降の処理を実行し、(d−2−2)前記設定分割解像度の次に高い分割解像度が前記複数の分割解像度のうちの最も高い分割解像度を超える場合には、前記設定分割解像度を示す解像度情報と、前記処理対象ブロックの色を示す色情報とを、前記処理対象ブロックを表す多解像度画像データとして生成し、(e)前記処理(c)において前記設定分割解像度の複数個のブロックの中の次のブロックが存在しない場合、及び、前記処理(d−2−2)の処理が行われた場合には、前記設定分割解像度を次に低い分割解像度に設定し、前記処理(c)に戻って前記処理(c)以降の処理を実行する、画像処理装置。
【0010】
[適用例4]
適用例3に記載の画像処理装置において、前記処理(d−2−1)における前記設定分割解像度と、次に高い分割解像度との比は、前記設定分割解像度の大きさにかかわらず一定の比である、画像処理装置。
この適用例によれば、設定分割解像度と、次に高い分割解像度と比は、設定分割解像度の大きさにかかわらず一定であるので、処理が複雑にならない。
【0011】
[適用例5]
適用例4に記載の画像処理装置において、前記処理(d−2−1)における前記設定分割解像度と、次に分割解像度の低い分割解像度との比は2であり、前記処理(b)に戻ったときに、前記画像データ生成部は、前記ブロックを2×2の4ブロックに分割する、画像処理装置。
この適用例によれば、次のブロックを出来る限り大きなブロックにすることが可能である。
【0012】
[適用例6]
適用例1から適用例5のいずれかに記載の画像処理装置において、前記画像がビットマップ画像である場合には、前記ビットマップの1ピクセルの大きさが、前記ブロックのうちの最小のブロックの大きさの整数倍であるように、最小のブロックの大きさが決められる、画像処理装置。
この適用例によれば、1つのピクセルが、複数のブロックに跨ることはない。
【0013】
本発明は、種々の形態で実現することが可能であり、例えば、画像処理装置の他、画像処理方法、コンピュータプログラム等、様々な形態で実現することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1の実施例における画像転送システムの概略構成を示す説明図である。
【図2】図1に示す画像転送システム400の詳細構成を示す説明図である。
【図3】ラスターイメージデータから転送用画像データを作成する原理を模式的に示す説明図である。
【図4】ラスターイメージデータを分割して出来るブロックと分割解像度の関係を示す説明図である。
【図5】画像データの生成フローを示す説明図である。
【図6】図5の処理の内容を、画像を用いて説明する説明図である。
【図7】図5の処理の内容を、画像を用いて説明する説明図である。
【図8】生成された転送用画像データの一部を示す説明図である。
【図9】ある画像をブロック分割したときの各ブロックとそのブロックの解像度番号を示す説明図の一部である。
【図10】ブロックが一様か否かを判断するための方法の一例を示す説明図である。
【図11】図8に示す転送用画像データを用いて画像を復元するときの様子を示す説明図である。
【図12】図8に示す転送用画像データを用いて画像を復元するときの様子を示す説明図である。
【図13】画像部品がベクトルデータで示されるときの分割処理の内容を、画像を用いて説明する説明図である。
【図14】画像部品がベクトルデータで示されるときの分割処理の内容を、画像を用いて説明する説明図である。
【図15】画像部品がベクトルデータで示されるときのブロックが一様か否かを判断するための方法の一例を示す説明図である。
【図16】第3の実施例を示す説明図である。
【図17】第4の実施例を示す説明図である。
【図18】第4の実施例の変形例を示す説明図である。
【図19】第5の実施例を示す説明図である。
【図20】第6の実施例を示す説明図である。
【発明を実施するための形態】
【0015】
以下、本発明を実施するための最良の形態を実施例に基づいて説明する。
A.第1の実施例:
A1.システム構成:
図1は、本発明の第1の実施例における画像転送システムの概略構成を示す説明図である。この画像転送システム400は、複合機100と、パーソナルコンピュータ200と、を備えている。複合機100とパーソナルコンピュータ200とは、互いにケーブル150を介して接続されている。複合機100とパーソナルコンピュータ200との間の接続インターフェースとしては、例えば、USB(Universal Serial Bus)インターフェースやIEEE802.3等のLAN(Local Area Network)インターフェースを採用することができる。なお、ケーブルを用いた有線接続に代えて、IEEE802.11b規格の無線LAN接続や、IrDA(Infrared Data Association)規格の赤外線接続等の無線接続も採用することができる。
【0016】
複合機100は、プリンター,スキャナ及び複写装置として機能する。画像転送システム400では、パーソナルコンピュータ200から画像データを転送して、複合機100において画像を印刷させることができる。
【0017】
図2は、図1に示す画像転送システム400の詳細構成を示す説明図である。パーソナルコンピュータ200は、コンピュータ本体201と、ディスプレイ装置202と、キーボード203と、マウス204とを備えている。コンピュータ本体201は、CPU20と、メモリー31と、ハードディスク32と、I/O制御部33と、ネットワークインターフェース部34とを備えている。
【0018】
メモリー31には、画像を扱うアプリケーションプログラムが格納されており、CPU20は、このアプリケーションプログラムを実行することにより、アプリケーション実行部21として機能する。なお、画像を扱うアプリケーションとしては、例えば、画像閲覧用アプリケーション(AdobeSystems社のAcrobatReader(登録商標)等)やレタッチソフトなどを採用することができる。また、メモリー31には、複合機100用のデバイスドライバープログラム(プリンタードライバープログラム及びスキャナドライバープログラム)が格納されている。CPU20は、プリンタードライバープログラムを実行することにより、プリンタードライバー22として機能する。このプリンタードライバー22は、ラスターデータ展開部221と、データ変換部222と、データ送信制御部225とを備えている。
【0019】
アプリケーション実行部21は、ユーザの指示に従い画像の表示や加工等を行う。ラスターデータ展開部221は、アプリケーション実行部21が生成した描画データを解釈してラスターイメージデータに展開する。描画データとは、画像を構成する複数の画像部品(例えば文字、図形、絵柄)をベクトルデータやビットマップデータで表現したものである。典型的には、文字や図形はベクトルデータで表現されており、絵柄(写真など)はビットマップデータで表現されている。ラスターイメージデータは、ビットマップ画像であり、各ピクセルは、例えば、R(赤)G(緑)B(青)の階調値(8ビット×3チャネル)を有する。なお、アプリケーション実行部21は、ラスターイメージデータを直接生成してもよい。例えば、アプリケーション実行部21が、デジタルカメラで撮影された画像を処理する場合には、アプリケーション実行部21は、ラスターイメージデータを直接生成する。データ変換部222は、ラスターイメージデータを、よりデータ量の少ない転送用画像データに変換(圧縮)する。なお、データ変換部222が描画データからラスターイメージを介さず直接転送用画像データに変換する構成を採用することも可能であり、これについては、後述する。データ送信制御部225は、転送用画像データを、複合機100とパーソナルコンピュータ200との間の接続インターフェースに応じたデータフォーマットに変換すると共に、データ送信時における誤り制御やフロー制御等を行う。なお、データ変換部222は、ブロック分割するための分割解像度を決定する分割解像度決定部223と、着目領域のブロックが一様か否かを判断する判断部224を有している。
【0020】
I/O制御部33は、ディスプレイ装置202と、キーボード203と、マウス204とを、それぞれコンピュータ本体201に接続するためのインターフェース群を備えている。I/O制御部33は、ディスプレイ装置202への表示画面データの送信や、キーボード203及びマウス204からの入力情報の受信を制御する。ネットワークインターフェース部34は、複合機100との間の接続インターフェース群からなる。
【0021】
複合機100は、制御回路10と、プリンターエンジン13と、読取部14と、操作部15と、表示部16と、ネットワークインターフェース部17とを備えている。制御回路10は、メモリー11と、CPU12とを備えている。メモリー11には、複合機100の制御用プログラムが格納されており、CPU12は、この制御用プログラムを実行することにより、データ受信制御部12a,画像データ伸張部12b,色変換部12c,ハーフトーン処理部12d及びデータ並び替え部12eとして機能する。
【0022】
データ受信制御部12aは、パーソナルコンピュータ200から送信される転送用画像データを受信する。画像データ伸張部12bは、転送用画像データを伸張し、ラスターイメージデータを生成する。色変換部12cは、ラスターイメージデータ(R,G,B)を、プリンターエンジン13において用いられるインク色(シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K))の各階調値からなる画像データに変換(色変換)する。なお、色変換部12cは、メモリー11に記憶されている3次元ルックアップテーブルである色変換テーブル(図示省略)を参照して、前述の色変換を実行する。ハーフトーン処理部12dは、色変換後の画像データに対してハーフトーン処理を行うことによって、印刷データに変換する。この印刷データは、各色(C,M,Y,K)についてのドットのオン/オフで表される。データ並び替え部12eは、ハーフトーン処理により得られた印刷データを、プリンターエンジン13におけるインクヘッドやノズル番号等に対応付けたデータ形式に並び替える。
【0023】
プリンターエンジン13は、印刷ヘッド(図示省略)を備えたインクジェット式の印刷機構であり、給紙や印刷ヘッドの走査やインク吐出等を行って画像等を印刷用紙に印刷する。読取部14は、イメージセンサ(図示省略)が移動しながら固定された原稿を読み取る、いわゆるフラットベッドタイプ(原稿固定型)のスキャナである。操作部15は、各種操作ボタンを備え、ユーザによる操作入力を受け付ける。表示部16は、操作用メニュー画面やエラーメッセージ等を表示する。
【0024】
上記構成を有する画像転送システム400では、後述する転送用画像データ生成処理を実行することにより、パーソナルコンピュータ200から複合機100に転送する転送用画像データのデータ量を低減しつつ、印刷画像の品質の低下を抑制するように構成されている。
【0025】
A2.画像データの送信処理:
ユーザは、パーソナルコンピュータ200において画像を扱うアプリケーションを実行し、ディスプレイ装置202に表示されている画像を印刷しようとする場合、アプリケーションのメニュー画面から印刷実行メニュー(図示省略)を選択する。このとき、ユーザは、プリンタードライバー用の設定画面をディスプレイ装置202に表示させ、使用する印刷装置の指定や印刷品質等の設定を行うことができる。
【0026】
アプリケーション実行部21(図2)は、ユーザからの印刷指示を受け取ると、印刷指示に従って描画データを生成する。ラスターデータ展開部221は、描画データを解釈して画素毎の色情報(R,G,B)からなるラスターイメージデータに展開する。データ変換部222は、後述する転送用画像データ生成処理を実行し、ラスターイメージデータを転送用画像データに変換(圧縮)する。データ送信制御部225は、転送用画像データを、複合機100とパーソナルコンピュータ200との間の接続インターフェースに応じたデータフォーマットに変換して、ネットワークインターフェース部34を介して複合機100に送信する。
【0027】
A3.画像データの圧縮処理:
図3は、ラスターイメージデータから転送用画像データを作成する原理を模式的に示す説明図である。図3(A)は、変換前のラスターイメージデータ500の一例を示しており、白地に黒で「A」の文字が表示されている。図3(A)に示す例では、ラスターイメージデータ500は、1ピクセルの大きさが2400dpi×2400dpiのピクセルが、複数集まって形成されている。なお、図3(A)では、画像全体が4×4に区分されているように描かれているが、この区分の線は実際には存在せず、単に図示の便宜上描かれたものである。
【0028】
図3(B)は、変換後のラスターイメージデータ500a(多解像度画像データ)を示している。データ変換では、大きさが異なる複数種類のブロックR0〜R5が利用される。すなわち、データ変換部222は、複数種類のブロックR0〜R5のうち、可能な限り大きなブロックを用いてラスターイメージデータ500を複数の一様なブロックに分割する。図3(B)に示した例では、一番大きなブロックはブロックR0(分割解像度75dpi×75dpi)である。先ず、データ変換部222は、このブロックR0でラスターイメージデータ500を分割する。そして、各ブロックにつき一様か否かを判断し、分割されたブロックが一様でない場合には、そのブロックを次に大きなブロックR1(分割解像度150dpi×150dpi)で分割する。このようにして、順に分割解像度の大きなブロックで分割していく。この手順で分割される最も解像度の高いブロックR5の解像度は、元のラスターイメージデータ500の解像度(2400dpi×2400dpi)と同じである。なお、図3(B)は、図3(A)よりも大きく描かれているが、両者の画像の実際の寸法は同一である。
【0029】
図4は、ラスターイメージデータの分割に用いられるブロックと分割解像度の関係を示す説明図である。図4(A)は、図3に示したラスターイメージデータ500の全体を示している。ラスターイメージデータ500は、16個のブロック501(ブロックA0〜A16)に分割される。ここで、各ブロック501の分割解像度は75dpi×75dpiである。ここでブロックの分割解像度が(N)dpi×(N)dpiとは、ブロックの大きさ、あるいは、隣接するブロックの中心間距離が、1/Nインチであることを意味する。ブロック501は、ラスターイメージデータ500を分割するための最も大きなブロックとなる。ここで、ブロック501の解像度番号を、「0」(以下「R(0)」とも呼ぶ。)とする。
【0030】
図4(B)は、図4(A)のブロック501を2×2の4ブロックにさらに分割した状態を示している。すなわち、ブロック501は、ブロック511を4つ有している。ブロック511の分割解像度は、150dpi×150dpiである。このブロック511は、ブロック501の次に大きなブロックであり、その解像度番号を、R(1)とする。以下、図4(C)〜(F)は、同様に図4(B)〜(E)に示すブロックを、それぞれ2×2の4ブロックに分割した状態を示している。図4(C)〜(F)に示されるブロック521、531、541、551の分割解像度は、それぞれ、300dpi、600dpi、1200dpi、2400dpiである。また、ブロック521、531、541、551の解像度番号を、それぞれ、R(2)、R(3)、R(4)、R(5)とする。このブロック551の分割解像度2400dpiは、複合機100(図1)の印刷の最高解像度と一致する。
【0031】
なお、分割に用いられるブロックの数(種類の数)としては、3以上が好ましい。また、複数種類のブロックの解像度は、順次整数を乗じた関係にあることが好ましい。図4の例では、5種類のブロック501から551の解像度は、2を順次乗じた関係にある。
【0032】
図5は、画像データの生成フローを示す説明図である。ステップS500では、データ変換部222は、複合機100の印刷解像度を取得する。本実施例では、複合機100の最高印刷解像度は、2400dpiであり、この最高印刷解像度は、転送用画像データの最高分割解像度として使用される。なお、転送用画像データの最高分割解像度の値としては、複合機100の最高印刷解像度に限られず、複合機100の任意の印刷モードにおける印刷解像度を採用することが可能である。
【0033】
ステップS505では、分割解像度決定部223は、ラスターイメージデータを分割するときの最低分割解像度(Rmin)と最高分割解像度(Rmax)とを設定する。分割解像度決定部223は、まず、最高分割解像度Rmaxとして、複合機100から取得した印刷解像度を用いる。本実施例では、この最高分割解像度Rmaxの値は、2400dpiである。次に、分割解像度決定部223は、この2400dpiの値を半分にすることを繰り返すことにより、転送用画像データを分割するための複数の分割解像度を決定する。具体的には、2400dpiを半分の1200dpiにし、1200dpiをまた半分の600dpiにしていく。分割解像度決定部223は、これを繰り返すことにより、最終的に75dpiまで解像度を低くする。なお、どこまで分割解像度を低くするかについて、分割解像度決定部223は任意に定めることが出来る。例えば、半分にする回数を、例えば5回あるいは6回と予め決めておいてもよい。また、分割解像度決定部223は、分割解像度の大きさを予め決めておいてもよい。例えば、分割解像度決定部223は、分割解像度が100dpi未満になったときは、これ以上低い分割解像度を作成しないように構成してもよい。本実施例では、分割解像度決定部223は、分割解像度が100dpi未満になった最初の分割解像度である解像度75dpiを最も低い分割解像度としている。この最も低い分割解像度を転送用画像データの最低分割解像度Rminとする。以上のように、分割解像度決定部223は、複合機100から得た印刷解像度の値を用いて、画像を分割するための複数の分割解像度を取得する。次に、データ変換部222は、各分割解像度について、解像度番号を付与する。データ変換部222は、最低分割解像度の解像度番号をR(0)とし、解像度を2倍にするに従って、解像度番号の値を1ずつ増やしていく。解像度75dpiの解像度番号をR(0)とすると、最高分割解像度である2400dpiの解像度番号はR(5)となる。
【0034】
ステップS510では、プリンタードライバー22(図2)は、実行中のアプリケーションから、複合機100(図1)に出力する画像を取得する。この画像は、アプリケーション実行部21により、先ず、描画データとして出力される。次に、ラスターデータ展開部221は、描画データをラスターイメージデータに変換する。このとき、最高分割解像度でラスターイメージデータに展開する。
【0035】
ステップS515では、データ変換部222は、設定分割解像度を最低分割解像度Rminに設定する。すなわち、設定分割解像度はR(0)(=75dpi)である。
【0036】
図6、図7は、図5の処理の内容を、画像を用いて説明する説明図である。図8は、生成された転送用画像データの一部を示す説明図である。転送用画像データが、請求項における多解像度画像データに該当する。図5のステップS520では、データ変換部222は、設定分割解像度R(0)(=75dpi)で画像を分割する。図6(A)は、データ変換部222が設定分割解像度R(0)(=75dpi)で4×4の16個のブロック(ブロックA1〜A16)に画像を分割した状態を示している。
【0037】
図5のステップS525では、データ変換部222は、左上のブロックA1を着目領域に設定する。なお、分割前の画像は、矩形であり、分割後のブロックは、その矩形の中に縦横に並んでいる。次のステップS530では、データ変換部222は、着目領域であるブロックA1が一様か否かを判断する。ブロックA1が1つの色(白、黒、又は任意の色)で塗りつぶされた領域であれば、ブロックA1は一様である。一様か否かの判断手法については、後述する。なお、この判断処理は、判断部224が実行する。
【0038】
着目領域であるブロックA1が一様である場合には、ステップS550においてデータ変換部222は、転送用画像データに、ブロックA1の解像度番号と色情報を格納する。本実施例の場合、ブロックA1は、一様で、色は「白」である。したがって、データ変換部222は、図8の転送用画像データのDa1行目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(0,00h,00h,00h))を格納する。なお、RGBデータの末尾の「h」は16進数であることを示している。
【0039】
データ変換部222は、処理をステップS555、S560に移行し、次のブロックを着目領域に設定する。現在の着目領域はブロックA1であるので、データ変換部222は、ブロックA2を着目領域に設定する。具体的な着目領域の移動方法は、現在の着目領域であるブロックの右側に新たなブロックがある場合には、データ変換部222はその右側のブロックを新たな着目領域にする。着目領域がブロックA1の場合には、ブロックA1の右側にブロックA2がある。したがって、データ変換部222は、ブロックA2に着目領域を移動する。一方、現在の着目領域であるブロックの右側に新たなブロックがない場合には、データ変換部222はその下側のブロックのうち、最も左側のブロックを着目領域とする。例えば、現在の着目領域がブロックA4である場合には、ブロックA4の右側には、新たなブロックが無い。したがって、データ変換部222は、下側のブロックのうちもっとも左側のブロックであるブロックA5を着目領域とする。なお、現在の着目領域であるブロックの右側にも、下側にもブロックが無い場合(ステップS560、No)については、後述する。新たな着目領域が存在する場合には、CPU20は、ステップS530の処理に移行する。
【0040】
ステップS530において、データ変換部222は、新たな着目領域であるブロックA2が一様か否かを判断する。本実施例の場合、ブロックA2は、右下部分に着色した部分があるため、判断結果は、「ブロックA2は、一様でない」となる。次に、データ変換部222は、ステップS535において、現在の設定分割解像度R(i)が最高分割解像度Rmaxであるか否かを判断する。現在の設定分割解像度R(i)は、R(0)(=75dpi)であり、最高分割解像度Rmax(=2400dpi)ではないので、データ変換部222は、ステップS540において、設定分割解像度を1つ上げ、設定分割解像度を2倍の150dpにする。そして、ステップS545において、CPUは、新たな設定分割解像度R(1)(=150dpi)でブロックA2を分割する。これにより、図6(B)に示すように、ブロックA2は、ブロックB1〜B4の4つのブロックに分割される。
【0041】
データ変換部222は、処理をステップS525に移行し、同様に、左上のブロックB1を着目領域に設定する。データ変換部222は、ステップS530において、着目領域であるブロックB1が一様か、否かを判断する。本実施例では、ブロックB1は一様で、白であるので、データ変換部222は、ステップS550に処理を移行し、図8の転送用画像データのDa2行目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(1,00h,00h,00h))を格納する。以下、データ変換部222は、図5のステップS555において、順にブロックB2、B3、B4と着目領域を移動し、同様の処理を行う。本実施例では、ブロックB2、B3はいずれも一様で、白であるので、データ変換部222は、転送用画像データのDa3、Da4行目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(1,00h,00h,00h))を格納する。ここで、分割解像度150dpiの解像度番号はR(1)である。
【0042】
ブロックB4は一様でない。データ変換部222は、ステップS535で現在の設定分割解像度R(1)(=150dpi)が最高分割解像度Rmax(=2400dpi)か否かを判断する。現在の設定分割解像度R(1)(=150dpi)は、最高分割解像度Rmax(=2400dpi)ではないので、データ変換部222は、ステップS540において設定分割解像度を1つ上げて2倍の300dpiにする。そして、データ変換部222は、ステップS545でブロックB4を設定分割解像度R(2)(=300dpi)で分割する。具体的には、図6(C)に示すように、CPU20は、ブロックB4を、ブロックC1〜C4の4つのブロックに分割する。
【0043】
以下、同様に、CPU20は、ブロックC1〜C4について、順に一様か否かを判断する(ステップS530)。ブロックC1、C2については、一様であるので、データ変換部222は、ステップS550〜S560が実行し、転送用画像データのDa5、Da6行目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(2,00h,00h,00h))を格納する。一方、ブロックC3、C4については、一様でないので、各ブロックC3、C4について、それぞれ、ステップS535〜S545及びステップS525、S530を実行する。
【0044】
データ変換部222は、ステップS540において、図6(D)に示すように、ブロックC3を、設定解像度R(i)を1つ上げた設定分割解像度R(3)(=600dpi)でブロックD1〜D4の4つのブロックに分割し、順に一様か否かを判断する(ステップS530)。ブロックD1〜D3については一様であるため、データ変換部222は、ブロックD1〜D3について、ステップS530、S550をそれぞれ順に実行し、転送用画像データのDa7〜Da9行目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(3,00h,00h,00h))を格納する。ブロックD4については、一様でないので、ステップS535〜S545及びステップS525、S530を実行する。
【0045】
データ変換部222は、ステップS540において、図6(E)に示すように、ブロックD4を、設定解像度R(i)を1つ上げた設定分割解像度R(4)(=1200dpi)でブロックE1〜E4の4つのブロックに分割し、順に一様か否かを判断する(ステップS530)。ここで、ブロックE1、E3は一様であるが、ブロックE2、E4は一様でない。データ変換部222は,ブロックE1について、ステップS530、S550を実行し、転送用画像データのDa10行目のデータに解像度番号とRGBデータ(R(n),(R,G,B))=(4,00h,00h,00h))を格納する。ブロックE2については、一様でないので、ステップS535〜S545及びステップS525、S530を実行する。
【0046】
データ変換部222は、ステップS540において、図7(F−1)に示すように、ブロックE2を、設定解像度R(i)を1つ上げた設定分割解像度R(5)(=2400dpi)でブロックF1〜F4の4つのブロックに分割する。ここで、ブロックF1〜F4の大きさは、ラスターデータ展開部221が生成したラスターイメージデータの1ピクセルの大きさと等しい。ラスターデータ展開部221が生成したラスターイメージデータの1ピクセルは一色であるため、ブロックF1からF4はそれぞれ一様である。データ変換部222は,ブロックF1からF4について、ステップS530、S550を実行し、転送用画像データのDa11行目からDa14行目のデータに解像度番号とRGBデータを格納する。Da11行目からDa14行目のRGBデータは、例えば、(R(n),R,G,B)=(5,00h,00h,00h))、(R(n),R,G,B)=(5,33h,33h,33h))、(R(n),R,G,B)=(5,00h,00h,00h))、(R(n),R,G,B)=(5,4Bh,4Bh,4Bh))である。なお、設定分割解像度R(i)が最高分割解像度Rmaxの場合には、ステップS530では、着目領域が一様となる。したがって、データ変換部222は、処理をステップS550に移行し、ステップS535〜S545を実行しない。
【0047】
ステップS560において、データ変換部222は、ブロックF4の次に、同じ設定分割解像度R(5)(2400dpi)の次のブロックがブロックE2の中に存在するか否かを判断する。このブロックは存在しないので、データ変換部222は、ステップS565において、現在の設定分割解像度R(i)が、最低分割解像度Rminであるか判断する。ここでは、現在の設定分割解像度R(5)(=2400dpi)は、最低分割解像度Rmin(=75dpi)ではないので、データ変換部222は、処理をステップS570に移行し、設定分割解像度を1つ戻してR(4)(=1200dpi)とする。そして、ステップS555において、データ変換部222は、今まで着目していたブロックF4を含むブロックE2から、ブロックE3に着目領域を移動する(図6(E)参照)。ブロックE3は、一様であるため、データ変換部222は、ブロックE3について、ステップS530、S550を実行し、転送用画像データのDa15目のデータに解像度番号とRGBデータ(R(n),R,G,B)=(4,00h,00h,00h))を格納する。そして、データ変換部222は、着目領域をブロックE4に移動する。
【0048】
ブロックE4は、ブロックE2と同様に、一様でないので、データ変換部222は、ブロックE4について、ブロックE2と同様の処理を行う。データ変換部222は、ブロックE2を分割したときと同様に設定分割解像度R(5)(=2400dpi)でブロックE4を分割し(ステップS545)、4つのブロックF5〜F8を得る。データ変換部222は、ブロックF5〜F8について、ブロックF1〜F4と同様に、解像度番号と、RGBデータとを、転送用画像データに格納する(ステップS550)。具体的には、これらのデータは、図8の転送用画像データのDa16〜Da20行に格納される。図7(F−2)は、図6(E)のブロックE4を、2400dpiの解像度で切った状態を示している。
【0049】
ブロックF8の同じ設定分割解像度R(5)の次のブロックは存在しないので、CPU20は、ステップS570において、設定分割解像度R(5)を設定分割解像度R(4)(=1200dpi)に戻す。この時点での着目領域は、ブロックE4(図6(E))である。設定分割解像度R(4)(=1200dpi)においても、同じ設定分割解像度R(4)の次のブロックは存在しないので、CPU20は、ステップS570において、設定分割解像度R(4)を設定分割解像度R(3)(=600dpi)に戻す。この時点での着目領域はブロックD4(図6(D))である。この設定分割解像度R(3)(=600dpi)においても、同じ設定分割解像度R(3)の次のブロックは存在しないので、CPU20は、ステップS570において、設定分割解像度R(3)を設定分割解像度R(2)(=300dpi)に戻す。この時点での着目領域はブロックC3(図6(C))である。ここでは、次の着目領域となるブロックC4が存在している。したがって、CPU20は、ブロックC4を着目領域とし、同様の処理を行う。CPU20は、この処理により得られた解像度情報及びRGBデータを、図8の転送用画像データに格納する。具体的には、これらのデータが格納される行はDa20〜Da32行である。
【0050】
ブロックC4の同じ設定分割解像度R(2)の次のブロックは存在しないので、CPU20は、ステップS570において、設定分割解像度R(2)を設定分割解像度R(1)(=150dpi)に戻す。この時点で着目領域は、ブロックB4(図6(B))である。この設定分割解像度R(1)(=150dpi)においても、同じ解像度の次のブロックは存在しないので、CPU20は、ステップS570において、設定分割解像度R(1)を設定分割解像度R(0)(=75dpi)に戻す。この時点での着目領域はブロックA2(図6(A))である。ここでは、次の着目領域となるブロックA3が存在している。したがって、CPU20は、ブロックA3を着目領域とし、同様の処理を行う。CPU20は、この処理により得られた解像度情報及びRGBデータは、図8の転送用画像データに格納する。具体的には、これらのデータは、転送用画像データDa33行以降に格納される。なお、図8においては、紙面の都合上、転送用画像データの一部(Da37行目まで)のデータのみが記載されている。
【0051】
以下、画像内の最期のブロックA16(図6(A))が着目領域になるまで、同様の処理を繰り返す。着目領域がブロックA16であり、ステップS555において着目領域を移動しようとしても、次の着目領域がなく(ステップS560)、現在の設定分割解像度R(i)が最低解像度Rminの75dpiの場合には(ステップS565)、処理を終了する。
【0052】
図9は、ある画像をブロック分割したときの各ブロックとそのブロックの解像度番号を示す説明図の一部である。なお、画像は、図5〜8で用いた画像と同じ画像であるが、図9では、その一部のみが示されている。図9では、最初になるべく大きなブロックを用い、それから順に小さなブロックを用いて画像を分割する様子が示されている。ここで、各ブロックの中の数字「0」から「4」は、解像度番号「R(n)」の「n」の数字である。である。なお、解像度番号「4」がついたブロックを4分割したブロック(解像度番号R(5)に相当するブロック)については、解像度番号を略した「5」が記載されていない。これは、図9上では、文字が細かくなり見難くなるため、解像度番号の記載を省略しているためである。また、図9においては、解像度番号が3以下のもの(大きなブロック)について、図8のDan行(図8に合わせてnは37まで)と対応づけて、どのブロックがどの行のデータに該当するかを記載している。
【0053】
図10は、ブロックが一様か否かを判断するための方法の一例を示す説明図である。ブロックは、複数のピクセルP1〜Pnを有する。このピクセルP1〜Pnの大きさは、ラスターイメージデータ500(図3(A)参照)の1ピクセルと同じ大きさである。まず、ピクセルP1のRGBデータとピクセルP2のRGBデータを比較し、次いで、ピクセルP1とピクセルP3とを比較し、順にピクセルP1とピクセルPnとまで比較する。いずれかの比較において、そのRGBデータがピクセルP1のRGBデータと異なるピクセルPx(xは2〜nまでの間の整数)が存在した場合には、判断部224は、当該ブロックは複数の色を有していると判断し、データ変換部222は、設定分割解像度を上げる。判断部224は、ピクセルP1とRGBデータが異なるピクセルPxがあったことを見つけた場合には、当該ブロックにおいて、以後のピクセルについて、RGBデータの比較をやめてもよい。
【0054】
A4.復元処理:
図11、図12は、図8に示す転送用画像データを用いて、画像を復元するときの様子を示す説明図である。復元処理は、画像データ伸張部12bが実行する。図11(A)では、画像データ伸張部12bは、画像全体の枠600を作成する。ラスターイメージデータの縦及び横の大きさのデータは、転送用画像データの一部に含まれている(図示せず)。そして、画像データ伸張部12bは、画像の縦及び横の大きさを用いてこの枠600を生成する。次に、画像データ伸張部12bは、転送用画像データ(図8)のDa1行目からデータを読み込んで、それぞれの解像度番号をRGBデータからブロックDbnを復元し、枠600内に配置していく。まず、画像データ伸張部12bは、枠600を解像度番号R(0)に相当する分割解像度で分割し、ブロックA1〜A16を生成する。画像データ伸張部12bは、このときの解像度番号を例えば復元解像度番号S(0)としてメモリー11に格納する。
【0055】
図11(B)は、画像データ伸張部12bが転送用画像データ(図8)のDa1行目のデータを用いてブロックDb1を復元し、ブロックA1の位置に配置する様子を示している。画像データ伸張部12bは、まず、Da1行目のデータを用いてブロックDb1を復元する。次に、画像データ伸張部12bは、ブロックDb1とブロックA1の大きさを比較する。この比較は、転送用画像データのDa1行目の解像度番号R(0)と、復元解像度番号S(0)とを比較することにより容易に判断することができる。本実施例では、解像度番号R(0)と復元解像度番号S(0)は、同じである。したがって、ブロックDb1をブロックA1の位置に配置する。なお、上記処理は、画像データ伸張部12bが転送用画像データからDa1行目のデータを読み込んで、解像度番号に応じた大きさのブロックDb1を復元し、解像度番号により、ブロックA1との大きさを比較し、同じであればそのブロックA1の位置に配置するだけなので、データ処理の負担は極めて少ない。なお、以下、分割したブロックについて、A1〜A16、B1〜B4等の符合を付しているが、これらの符合は、図6、図7で用いたブロックに付した符合と一致させている。
【0056】
図11(C)は、画像データ伸張部12bが転送用画像データ(図8)のDa2〜Da4行目のデータを用いてブロックDb2〜Db4を復元し、配置する様子を示している。まず、画像データ伸張部12bは、転送用画像データからDa2行目のデータを読み込み、ブロックDb2を復元する。画像データ伸張部12bは、ブロックDb2をブロックA2の位置に配置しようとする。しかし、このブロックDb2は、解像度番号R(1)がブロックA2の復元解像度番号S(0)よりも1つ大きい。その結果、ブロックDb2の大きさは、ブロックA2の大きさの1/4の大きさとなり、ブロックDb2の大きさは、ブロックA2の大きさと一致しない。かかる場合、画像データ伸張部12bCPU12は、ブロックA2を、2×2に分割し、復元解像度番号S(1)の4つのブロックB1〜B4を作成する(図6(B)参照)。このブロックB1〜B4の大きさは、ブロックDb2の大きさと同じである。そして、画像データ伸張部12bは、ブロックB1の位置(2×2の左上部分)にブロックDb2を配置する。なお、画像データ伸張部12bは、復元解像度番号S(i)と転送用画像データの解像度番号R(i)とを比較することにより、ブロックの大きさが一致するか否かを容易に判断することが可能である。
【0057】
画像データ伸張部12bは、転送用画像データからDa3行目のデータを読み込み、ブロックDb3を復元する。このブロックDb3は、解像度番号R(1)がブロックB2の復元解像度番号S(1)と同じであり、ブロックDb3の大きさは、ブロックB2の大きさと同じである。画像データ伸張部12bは、ブロックDb3をブロックB2の位置(2×2の右上部分)に配置する。
【0058】
画像データ伸張部12bは、転送用画像データからDa4行目のデータを読み込み、ブロックDb4を復元する。このブロックDb4は、解像度番号R(1)がブロックB3の復元解像度番号S(1)と同じであり、ブロックDb4の大きさは、ブロックB3の大きさと同じである。画像データ伸張部12bは、ブロックDb3をブロックB3の位置(2×2の左下部分)に配置する。
【0059】
図11(D)は、CPU12が転送用画像データ(図8)のDa5、Da6行目のデータを用いてブロックDb5、Db6を復元し、配置する様子を示している。まず、画像データ伸張部12bは、転送用画像データからDa5行目のデータを読み込み、ブロックDb5を復元する。画像データ伸張部12bは、ブロックDb5をブロックB4の位置に配置しようとする。しかし、このブロックDb5は、解像度番号R(2)がブロックB4の復元解像度番号S(1)よりも1つ大きい。したがって、ブロックDb5の大きさは、ブロックB4の大きさの1/4の大きさとなる。そこで、ブロックA1をブロックB1〜B4に分割したのと同様に、画像データ伸張部12bは、ブロックB4を、2×2に分割し、復元解像度番号S(2)の4つのブロックC1〜C4を作成し(図6(C)参照)、ブロックC1の位置(2×2の左上部分)にブロックDb5を配置する。以下、ブロックDb6についても同様にブロックC2の位置(2×2の右上部分)に配置する。
【0060】
図11(E)は、画像データ伸張部12bが転送用画像データ(図8)のDa7〜Da9行目のデータを用いてブロックDb7〜Db9を復元し、ブロックC3の位置(2×2の左上、右上、左下部分、ブロックD1〜D3の位置)に配置する様子を示している(図6(D)参照)。図11(F)は、画像データ伸張部12bが転送用画像データのDa10のデータを用いてブロックDb10を復元し、ブロックD4の位置(2×2の左上部分、ブロックE1の位置)に配置する様子を示している(図6(E)参照)。なお、図11(F)は、図11(E)のXで囲った部分を拡大した図である。
【0061】
図11(G)は、画像データ伸張部12bが転送用画像データ(図8)のDa11〜Da14行目のデータを用いてブロックDb10〜Db14を復元し、ブロックE2の位置に配置する様子を示している(図7(F−1)参照)。図11(H)は、画像データ伸張部12bが転送用画像データのDa15行目のデータを用いてブロックDb15を復元し、ブロックE3の位置に配置する様子を示している(図6(E)参照)。図11(I)は、画像データ伸張部12bが転送用画像データのDa16〜Da19行目のデータを用いてブロックDb16〜DB19を復元し、ブロックE4の位置に配置する様子を示している(図7(E−2)参照)。図11(J)は、画像データ伸張部12bが転送用画像データのDa20〜Da23行目のデータを用いてブロックDb20〜Db23を復元し、ブロックE5の位置に配置する様子を示している。
【0062】
図12(K)は、画像データ伸張部12bが転送用画像データ(図8)のDa24行目のデータを用いてブロックDb24を復元し、ブロックE6の位置に配置する様子を示している。図12(L)は、画像データ伸張部12bが転送用画像データのDa25〜Da28行目のデータを用いてブロックDb25〜Da28を復元し、ブロックE7の位置に配置する様子を示している。図12(M)は、画像データ伸張部12bが転送用画像データのDa29行目のデータを用いてブロックDb29を復元し、ブロックE8の位置に配置する様子を示している。図12(N)は、画像データ伸張部12bが転送用画像データのDa30〜Da32行目のデータを用いてブロックDb30〜Db32を復元し、ブロックD6〜D8の位置に配置する様子を示している。図12(O)は、画像データ伸張部12bが転送用画像データのDa33〜Da37行目のデータを用いてブロックDb33〜Db37を復元し、ブロックB6、B6、C5、C6、D9の位置に配置する様子を示している。図12(O)は、図11(E)のYで囲った部分を拡大したものである。
【0063】
以上、第1の実施例によれば、データ変換部222は、出来るだけ大きなブロックに画像を分割し、分割した各ブロックが一様な色で構成されているか否かを判断する。そして、分割した各ブロックが一様な色で構成されていない場合には、一様な色になるように前記ブロックをさらに細かいブロックに分割する。そして、一様なブロックごとのブロックの解像度を示す解像度番号と、ブロックの色情報と、を含む転送用画像データを生成し、複合機100に送っている。そのため、転送用画像データのデータ量を少なくすることが可能となる。また、転送用画像データを受ける複合機100の画像データ伸張部12bは、解像度番号に応じた大きさのブロックを復元し、所定の位置に配置するだけなので、画像データ伸張部12bのデータ処理の負担は、極めて少ない。また、転送用画像データからの画像の復元は可逆的であり、復元画像の画質を高品質に維持することが可能である。また、本実施例では、出来る限り大きなブロックで分割しようとするので、転送用画像データのデータ量が少なくて済む。したがって、本実施例によれば、画像情報に対して、高品質を維持しつつ、データ量を削減し、システム全体としての処理負荷を抑制することが可能となる。
【0064】
B.第2の実施例
第2の実施例では、ラスターイメージデータを作成せずに、描画データから直接転送用画像データを作成する。図13、図14は、画像部品がベクトルデータで示されるときの、分割処理の内容を、画像を用いて説明する説明図である。第1の実施例では、画像は、ラスターイメージデータに変換されており、ラスターイメージデータは、ビットマップデータで表される。ラスターイメージデータにおける画像部品の輪郭線は、ピクセル単位で表されるため、第1の実施例では、図6、図7に示すように、例えば斜めの線は、階段状になっている。これに対し、第2の実施例では、図13、図14に示すように、ブロック分割をしても、斜めの線(画像部品の輪郭線)は、ピクセル単位で表す必要がないため、階段状にはなっていない。
【0065】
分割のフローチャートは図5に示すフローチャートとほぼ同じである。以下、第1の実施例と異なる点を中心に説明する。ステップS510では、データ変換部222は、画像の四隅の座標を取得する。本実施例では、画像の四隅の座標は、左上が(0,0)、右上が(x1,0)左下が(0,y1)右下が(x1,y1)である。なお、データ変換部222は、描画データから画像転送用データを作成するので、ラスターイメージデータは作成しなくてもよい。
【0066】
ステップS520のブロック分割では、データ変換部222は、ブロック分割で出来たブロックA1〜A16の四隅の座標を取得する。図13(A)に示すように、ブロックA1、A2、A5、A6が共有する点の座標を(x2、y3)、ブロックA2、A3、A6、A7が共有する点の座標を(x3、y3)とすると、例えばブロックA1の四隅の座標は、(0,0)、(x2,)、(0,y3)、(x2,y3)、ブロックA2の四隅の座標は、(x2,0)、(x3,0)、(x2,y3)(x3,y3)で表すことが可能である。なお、x2,x3、y3の値は、x1、y1とブロックの分割数を用いて容易に求めることが可能である。例えばx2=x1/4、x3=x1/2、y3=y1/4である。なお、ブロックA3〜A16についても同様に四隅の座標を求めることが出来る。なお、これらの座標は、x1、y1を用いて容易に表すことが可能である。第2の実施例では、ブロック分割は、分割後の各ブロックの四隅の座標を求めることを意味する。これらの座標は、ブロックが一様か否かを判断するときに、用いられる。
【0067】
また、ステップS545では、データ変換部222はブロックA2をブロックB1〜B4に分割する。このとき、データ変換部222は、同様にブロックB1〜B4の四隅の座標を容易に求めることができる。図13(B)では、ブロックB1〜B4の四隅が共有する点の座標を(x4,y4)としたときのブロックB1〜B4の座標を、x2、x3、x4、y3、y4を用いて示している。x4、y4は、それぞれ、x4=(x2+x3)/2、y4=y3/2で求めることが出来る。そして、上述したように、x2、y2、y4は、x1、y1を用いて表すことが出来るので、x4、y4もx1、y1を用いて表すことができ、x4=3x1/8、y4=y1/8となる。その結果、ブロックB1〜B4の座標についても同様にx1、y1を用いて表すことが可能である。データ変換部222は、以下同様に、図13(E)までブロック分割により生成した各ブロックの四隅の座標を取得する。
【0068】
図14(F−1)に示すように、データ変換部222は、ブロックE2を分割解像度R(5)(2400dpi)でブロックF1〜F4に分割する。第1の実施例では、ブロックF1〜F4の大きさは、ラスターイメージデータの1ピクセルの大きさと同じであり、ブロックF1〜F4は、それぞれ一様であった。一方、第2の実施例では、ブロックF1、F3は一様であるが、ブロックF2、F4は、内部に輪郭線を示すy=f(x)の線が通っており、一様ではない。データ変換部222は、ブロックF1についてステップS530、S550を実行し、転送用画像データのDa1行目に解像度番号とRGBデータを格納する。
【0069】
ブロックF2について、y=f(x)の輪郭線の着色側を着色領域F2A、非着色側を非着色領域F2Bとする。ベクトルデータの場合、輪郭線は、関数で与えられるので、ブロックの分割解像度にかかわらず、ブロック内を輪郭線が通れば、そのブロックは、2つの色を有する。ステップS535では、データ変換部222は、現在の設定分割解像度R(i)が最高分割解像度Rmaxか否かを判断する。データ変換部222がブロックF1〜F4を生成したときの設定分割解像度R(5)は、最高分割解像度Rmax(2400dpi)と等しい。従って、データ変換部222は処理をステップS550に移行する。
【0070】
ステップS550では、データ変換部222は、ブロックF2のRGBデータを取得する。データ変換部222は、着色領域F2Aの大きさと色、及び非着色領域F2Bの大きさと色と、を用いて、ブロックF2の平均色を算出する。そして、その平均色のRGBデータを転送用画像データに格納する。データ変換部222は、ブロックF3、F4についても同様に処理を行い、RGBデータを転送用画像データに格納する。
【0071】
図14(F−3)は、ブロックE4(図13(E)参照)を設定分割解像度R(5)(2400dpi)で分割した状態を示している。図14(F−4)は、上述したブロックF1〜F4と同様に、ブロックF5〜F8をその平均色で着色した状態を示している。このように、ブロックF5〜F8をそれぞれ、平均色で着色すれば、ブロックF5〜F8はそれぞれ一様となる。
【0072】
図15は、画像部品がベクトルデータで示されるときの、ブロックが一様か否かを判断するための方法の一例を示す説明図である。これらの判断処理は、判断部224が実行する。ベクトルデータの場合、描画される画像部品の輪郭線は、y=f(x)で表すことが可能である。ここで、x、yは、画面内の位置座標である。まず、図15(A)では、判断部224は、輪郭線がブロックの4つの辺を横切るか否かを判断する。輪郭線がブロックの4つの辺のいずれか横切る場合には、ブロックは、少なくとも2つの色を有している。したがって、かかる場合には、データ変換部222は、設定分割解像度R(i)を上げる。
【0073】
まず、判断部224は、ブロックの四隅の座標を取得する。この座標は、上述したようにデータ変換部222がブロック分割するときに取得しているので、判断部224は、その値を取得すればよい。この四隅の座標を(xa、ya)(xb、ya)(xa、yb)(xb、yb)とする。次に、判断部224は、f(xa)がyaからybに間にある、f(xb)がyaからybに間にある、f-1(ya)がxaからxbに間にある、f-1(yb)がxaからxbに間にある、のいずれかを満たす場合には、図がブロックの4つの辺を横切っていると判断する。ここでx=f-1(y)は、y=f(x)の逆関数である。
【0074】
図15(B)では、判断部224は、図がブロックの内部に存在するか否かを判断する。この判断は、図15(A)に示す4つの条件のいずれの条件も満たさない場合に実行される。判断部224は、yがyaからybの間にあり、かつ、xがxaからxbの間にあるか否かを判断する。両方を満たす場合には、輪郭線は、ブロックの中に含まれることになるので、ブロックは、少なくとも2つの色を有している。したがって、かかる場合には、データ変換部222は、設定分割解像度R(i)を上げる。復元については、第1の実施例と同じであるので、説明を省略する。
【0075】
以上、第2の実施例のように、ラスターイメージデータを作成せずに、描画データから直接転送用画像データを作成する構成を採用してもよい。この場合、ラスターイメージデータを作成する必要がない。
【0076】
C.第3の実施例:
図16は、第3の実施例を示す説明図である。第3の実施例の装置構成は、第1の実施例の構成と同じである。第1の実施例では、パーソナルコンピュータ200の分割解像度決定部223は、画像を分割するための分割解像度を決めるための解像度情報を、複合機100から取得しているが、第2の実施例では、アプリケーション実行部21が処理している画像から取得している点が異なる。
【0077】
図16(A)は、画像700を示す説明図である。画像700は、横Xピクセル、縦Yピクセルの画像である。図16(B)は、図16(A)のZで囲われた部分(左上部分)を拡大した図である。この実施例では、画像の1ピクセルの大きさは、300dpi×300dpi((1/300インチ)×(1/300インチ))である。分割解像度決定部223(図2)は、この300dpiを最高分割解像度とし、第1の実施例と同様に、画像を分割するための複数の分割解像度を求める。そして、その値は、例えば300dpi、150dpi、75dpiである。なお、最小分割解像度は、任意に定めることが出来、本実施例では、100dpi以下になったときの値を用いている。一方、分割解像度決定部223は、複合機100の最高印刷解像度2400dpiから複数の分割解像度を求めることもできる。そしてその値は、例えば2400dpi、1200dpi、600dpi、300dpi、150dpi、75dpiである。ここで両者を比較すると、300dpi以下の分割解像度で一致している。両者の分割解像度が一致するときは、分割解像度決定部223は、その分割解像度を採用する。この場合、データ変換部222は、画像の1ピクセルの解像度の2倍である600dpi以上の分割解像度で画像を分割する必要はなく、データ処理の負担を軽減することが可能となる。
【0078】
図16(C)は、画像の1ピクセルの解像度が400dpi×400dpiの場合を示している。分割解像度決定部223(図2)は、この400dpiを最高分割解像度として複数の分割解像度を求める。そしてその値は、例えば200dpi、100dpi、50dpiとなる。本実施例では、最小分割解像度は、100dpi以下になったときの値を用いている。一方、分割解像度決定部223は、複合機100の最高印刷解像度2400dpiから複数の分割解像度を求めることもできる。そしてその値は、例えば2400dpi、1200dpi、600dpi、300dpi、150dpi、75dpiである。ここで両者を比較すると、一致していない。かかる場合、分割解像度決定部223は、複合機100の最高印刷解像度から求めた複数の分割解像度の中に、画像の1ピクセルの大きさから求めた300dpiの解像度の整数倍の解像度があるか否かを調べる。本実施例では、1200dpi、2400dpiが該当する。分割解像度決定部223は、そのうち解像度が低い1200dpiを最高分割解像度として、複数の分割解像度、1200dpi、600dpi、300dpi、150dpi、75dpiを採用する。本実施例の場合、最高分割解像度として1200dpiを用いると、画像700の1ピクセルの大きさが、分割に用いられるブロックのうちの最小のブロックの大きさの整数倍となる。かかる場合、データ変換部222が画像を最高分割解像度1200dpiでブロック分割したときに、その1200dpiのブロックは、複数のピクセルに跨らない。一方、600dpiを最高分割解像度とした場合には、例えば図16(C)に示すようにブロックW1は、2つのピクセルに跨らないが、ブロックW2は、2つのピクセルに跨ってしまう。また、本実施例では、2400dpiの分割解像度での分割は不要であり、データ処理の負担を軽減することが可能となる。なお、複数の分割解像度を決める以外の処理は、第1の実施例と同じであるので、これらの処理については、説明を省略する。
【0079】
以上、第3の実施例によれば、パーソナルコンピュータ200が処理している画像を用いて、画像を分割するための、各解像度を取得することが可能となる。
【0080】
D.第4の実施例:
図17は、第4の実施例を示す説明図である。第4の実施例の装置構成は、第1の実施例の構成と同じである。第4の実施例では、画像の大きさを横Xピクセル、縦Yピクセルとしたとき、分割解像度決定部223が、解像度を横と縦のピクセル数X、Yの最大公約数(GCD:Greatest Common Divisor)を基準として分割の解像度を決定している点が異なる。すなわち、画像をブロックで分割するときの最大のブロックの大きさをMピクセルとしたとき、M=GCD(X,Y)となる。そして、データ変換部222は、Mピクセル×Mピクセルのブロック毎に各ブロックが一様か否かを判断し、ブロックが一様でない場合には、そのブロックを2×2の4つの小ブロックに分割する。なお、分割後のブロックの大きさは、(M/2ピクセル)×(M/2ピクセル)となる。後は、第1の実施例の場合と同様に順に細かくブロック分割を行って、転送用画像データを生成する。なお、分割後のブロックの大きさが、Nピクセル×Nピクセル(Nは奇数)になったときは、データ変換部222は、次の分割において、N×NのN2個のブロックに分け、以後のブロック分割をやめてもよい。こうすれば、最小のブロックとして、1ピクセル×1ピクセルの大きさのブロックを用いることが可能となる。本実施例では、Mピクセル×Mピクセルのブロックが第1の実施例における最小分割解像度によるブロックに相当し、1×1ピクセルのブロックが第1の実施例における最大分割解像度のブロックに相当する。
【0081】
第4の実施例の場合、最大のブロックは、画像の縦方向に整数個、横方向も整数個並ぶ。すなわち、第4の実施例では、端部まで最大のブロックで分割でき、半端は生じない。したがって、特に背景が単色で、図形や文字を含む画像の場合、端部においてブロックが細かくなりすぎず、小ブロックが生じにくい。その結果、データ量を少なくすることが可能となる。また、第4の実施例では、複合機の印刷解像度を基準にしなくてもよい。
【0082】
図18は、第4の実施例の変形例を示す説明図である。第4の実施例の変形例は、第4の実施例において、最大公約数の値が予め定められた値よりも小さくなってしまう場合に適用される。すなわち、最大公約数の値が小さいと、最初に分割するブロックの大きさが小さくなってしまうので、データ量が増えてしまう。この変形例は、かかる場合に、最初に分割するブロックの大きさを大きくするものである。
【0083】
分割解像度決定部223(図2)は、まず、最大のブロックの大きさをM×Mピクセルとする。ここでMは、M=2n(nは2以上の整数、n=4〜6が好ましい)を満たす値である。2nとしたのは、ブロックを細かく分割していったときに、最小のブロックの大きさ1×1ピクセルに至るまでの各ブロックの大きさは、m×mピクセル(mは整数)になるからである。なお、Mの値は予め定められていてもよい。
【0084】
データ変換部222(図2)は、画像700の大きさよりも大きな仮想空間800を作成する。仮想空間800は、最大のブロックをタイル状に並べて得られる矩形状の領域であって、画像700を包含する最小の領域である。画像700の大きさを(Xピクセル)×(Yピクセル)、最大のブロックの大きさを2nとすると、仮想空間800の大きさは、(P−1)×2n<X≦P×2n、及び(Q−1)×2n<X≦Q×2n(P、Qは整数)である。次にデータ変換部222は、仮想空間800の左上部に画像700を配置する。
【0085】
データ変換部222は、仮想空間800を新しい画像とみなして、第1の実施例と同様に画像を分割して、転送用画像データを作成する。なお、データ変換部222は、仮想空間800のうち、画像700が置かれていない領域(右部及び下部)については、画像700の右側エッジ、下側エッジと同じ色を有しているとみなして画像転送データを作成してもよい。なお、この転送用画像データ処理については、第1の実施例と同じであるので、説明を省略する。なお、データ変換部222がこのように処理しても、処理負担はさほど増えない。なお、復元時においても、画像700からはみ出た部分については、もとの画像700の大きさを画像転送データに含ませておけば、画像データ伸張部12bは、どの行のデータがはみ出た部分のデータか、容易に判断することが出来る。したがって、画像データ伸張部12bは、転送用画像データのうち画像700からはみ出た部分のデータを無視することにより、復元処理の負担を軽減することが可能となる。
【0086】
以上、第4の実施例の変形例によれば、画像700の横方向と縦方向のピクセル数であるXとYの最大公約数が小さい値の場合であっても、仮想空間800を用い、仮想空間800をできるだけ大きなブロックを用いて画像を分割する。その結果、小さなブロックの数を少なくすることが可能となる。なお、本実施例では、画像700を仮想空間800の左上角に配置しているが、他の角(右上、左下、右下)や仮想空間800の中央に配置してもよい。
【0087】
E.第5の実施例:
図19は、第5の実施例を示す説明図である。第5の実施例では、複合機100の縦方向の印刷解像度と横方向の印刷解像度が異なる場合の実施例を示す説明図である。図19(A)に示す例では、複合機100の印刷解像度は、2400dpi×1200dpiである。この場合最小のブロックは、縦横比2の長方形となる。そして次に小さいブロックは、この最小ブロックが2つ合わさって正方形のブロックとなる。図19(B)に示す例では、複合機100の解像度は、4800dpi×1200dpiである。この場合最小のブロックは、縦横比4の長方形となる。そして次に小さいブロックは、この最小ブロックが4つ合わさって正方形のブロックとなる。図19(C)に示す例では、複合機100の解像度は、1200dpi×1800dpiである。この場合最小のブロックは、縦横比2/3の長方形となる。そして次に小さいブロックは、この最小ブロックが6つ合わさって正方形のブロックとなる。図19(D)に示す例では、ブロックの大きさにかかわらず、分割に用いた各ブロックの縦横比を、複合機100の解像度(2400dpi×1200dpi)の縦横比と同じにしている。この場合、ブロックの形状は、正方形にはならない。
【0088】
第5の実施例に示すように、複合機100の縦方向の解像度と横方向の解像度は、異なっていてもよい。また、ブロックの形状は正方形に限られず、縦横比が様々な長方形を採用することが可能である。
【0089】
F.第6の実施例:
図20は、第6の実施例を示す説明図である。第1の実施例では、最初の分割以外の分割について、ブロックを2×2の4つのブロックにするブロック分割を行っているが、分割数はこれに限られず、3×3や、4×4のブロック分割を用いてもよい。なお、分割解像度R(1)から解像度R(2)への分割が3×3分割であれば、分割解像度R(2)から分割解像度R(3)への分割も3×3分割であるように、分割解像度を1つ上げるときの分割はすべて同じであることが分割処理の統一性から好ましいが、各段階での分割数は、異なっていてもよい。すなわち、図18に示すように、分割解像度R(1)から分割解像度R(2)への分割が3×3分割、分割解像度R(2)から分割解像度R(3)への分割が2×2分割、分割解像度R(3)から分割解像度R(4)への分割が4×4分割のように、各段階で異なっていてもよい。これにより、分割処理の柔軟性を得ることが可能となる。なお、ブロックを3×3や4×4に分割するよりも、2×2に分割するほうが、次のブロックの大きさを大きく出来るので、好ましい。なお、実施例5、6を総合すれば、ブロック分割は、2×3や、3×4など、n×m(n、mは2以上の整数)で表される様々な分割が可能である。また、縦横の解像度比を変えてもよい。
【0090】
上記実施例では、パーソナルコンピュータ200から複合機100に印刷データを送ることを例にとり説明したが、ディスプレイなどの表示装置に表示データを送る場合にも適用することができる。この場合には、ディスプレイの表示解像度を、最高分割解像度としてもよい。
【0091】
以上、いくつかの実施例に基づいて本発明の実施の形態について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物が含まれることはもちろんである。
【符号の説明】
【0092】
10…制御回路
11…メモリー
12…CPU
12a…データ受信制御部
12b…画像データ伸張部
12c…色変換部
12d…ハーフトーン処理部
12e…部
13…プリンターエンジン
14…読取部
15…操作部
16…表示部
17…ネットワークインターフェース部
20…CPU
21…アプリケーション実行部
22…プリンタードライバー
31…メモリー
32…ハードディスク
34…ネットワークインターフェース部
100…複合機
150…ケーブル
200…パーソナルコンピュータ
201…コンピュータ本体
202…ディスプレイ装置
203…キーボード
204…マウス
221…ラスターデータ展開部
222…データ変換部
223…分割解像度決定部
224…判断部
225…データ送信制御部
400…画像転送システム
500…ラスターイメージデータ
501…ブロック
511…ブロック
521…ブロック
551…ブロック
600…枠
700…画像
800…仮想空間
Rmin…最低分割解像度
Rmax…最高分割解像度
Da1〜Da37…行
Db1〜Db37…ブロック

【特許請求の範囲】
【請求項1】
画像処理装置であって、
画像を分割する際に使用する複数の分割解像度を決定する解像度決定部と、
前記複数の分割解像度に対応する複数種類のブロックを用いて前記画像を表す多解像度画像データを生成するデータ生成部と、
を備え、
前記複数の分割解像度は、順次整数を乗じた関係を有しており、
前記データ生成部は、
前記複数種類のブロックのうち、可能な限り大きなブロックを用いて前記画像を複数の一様なブロックに分割し、
当該ブロック分割で得られたそれぞれ一様なブロックの解像度を示す解像度番号と、前記ブロックの色情報と、を含む多解像度画像データを生成する、
画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記解像度決定部は、
前記多解像度画像データを前記画像処理装置から受けて画像出力を実行する画像出力装置より、出力解像度を取得し、
前記出力解像度を用いて、前記複数の分割解像度を決定する、
画像処理装置。
【請求項3】
請求項1または請求項2に記載の画像処理装置において、
前記画像データ生成部は、前記多解像度データを生成する処理において、
(a)前記複数の分割解像度のうちの最も低い分割解像度を設定分割解像度に設定するとともに、前記画像の全体を分割対象画像領域として設定し、
(b)前記設定解像度で前記分割対象画像領域を複数個のブロックに分割し、
(c)前記分割された複数個のブロックの中の1つのブロックを順に処理対象ブロックとして選択し、
(d)前記処理対象ブロックが一様か否かを判断し、
(d−1)前記処理対象ブロックが一様な場合には、前記設定分割解像度を示す解像度情報と、前記処理対象ブロックの色を示す色情報とを、前記処理対象ブロックを表す多解像度画像データとして生成するとともに、前記処理(c)に戻って前記処理(c)以降の処理を継続し、
(d−2)前記処理対象ブロックが一様でない場合に、
(d−2−1)前記設定分割解像度の次に高い分割解像度が前記複数の分割解像度のうちの最も高い分割解像度以下である場合には、前記次に高い分割解像度を新たな設定分割解像度として設定し、前記処理対象ブロックを新たな分割対象画像領域として設定するとともに、前記処理(b)に戻って前記処理(b)以降の処理を実行し、
(d−2−2)前記設定分割解像度の次に高い分割解像度が前記複数の分割解像度のうちの最も高い分割解像度を超える場合には、前記設定分割解像度を示す解像度情報と、前記処理対象ブロックの色を示す色情報とを、前記処理対象ブロックを表す多解像度画像データとして生成し、
(e)前記処理(c)において前記設定分割解像度の複数個のブロックの中の次のブロックが存在しない場合、及び、前記処理(d−2−2)の処理が行われた場合には、前記設定分割解像度を次に低い分割解像度に設定し、前記処理(c)に戻って前記処理(c)以降の処理を実行する、
画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
前記処理(d−2−1)における前記設定分割解像度と、次に高い分割解像度との比は、前記設定分割解像度の大きさにかかわらず一定の比である、画像処理装置。
【請求項5】
請求項4に記載の画像処理装置において、
前記処理(d−2−1)における前記設定分割解像度と、次に分割解像度の低い分割解像度との比は2であり、
前記処理(b)に戻ったときに、前記画像データ生成部は、前記ブロックを2×2の4ブロックに分割する、画像処理装置。
【請求項6】
請求項1から請求項5のいずれかに記載の画像処理装置において、
前記画像がビットマップ画像である場合には、
前記ビットマップの1ピクセルの大きさが、前記ブロックのうちの最小のブロックの大きさの整数倍であるように、最小のブロックの大きさが決められる、画像処理装置。
【請求項7】
画像処理方法であって、
画像を分割する際に使用する複数の分割解像度を決定する工程と、
前記複数の分割解像度に対応する複数種類のブロックを用いて前記画像を表す多解像度画像データを生成する工程と、
を備え、
前記複数の分割解像度は、順次整数を乗じた関係を有しており、
画像データを生成する工程は、
前記複数種類のブロックのうち、可能な限り大きなブロックを用いて前記画像を複数の一様なブロックに分割する工程と、
当該ブロック分割で得られたそれぞれ一様なブロックの解像度を示す解像度番号と、前記ブロックの色情報と、を含む多解像度画像データを生成する工程と、
を有する、画像処理方法。
【請求項8】
コンピュータプログラムであって、コンピュータを、
画像を分割する際に使用する複数の分割解像度を決定する手段と、
前記複数の分割解像度に対応する複数種類のブロックを用いて前記画像を表す多解像度画像データを生成する手段、
として機能させ、
前記複数の分割解像度は、順次整数を乗じた関係を有しており、
画像データ生成手段は、
前記複数種類のブロックのうち、可能な限り大きなブロックを用いて前記画像を複数の一様なブロックに分割する分割手段と、
当該ブロック分割で得られたそれぞれ一様なブロックの解像度を示す解像度番号と、前記ブロックの色情報と、を含む多解像度画像データを生成するデータ生成手段と、
を有する、
コンピュータプログラム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−77628(P2011−77628A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−224424(P2009−224424)
【出願日】平成21年9月29日(2009.9.29)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】