画像処理装置および画像処理方法
【課題】画素のブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる画像処理装置およびを提供する。
【解決手段】ブロック内の各画素の色を代表色に置き換え代表色の色情報を格納した代表色情報格納領域と代表色が適用される画素のブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、所定数より少ない数の代表色を有する第1のブロックと、所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、第2のブロックの所定数より多い数の代表色のうち特定の代表色の色情報を、第1のブロックの代表色情報格納領域に格納する色情報格納処理部と、特定の代表色が適用される画素の第2のブロック内の位置を特定するための位置特定情報を、第1のブロックの位置情報格納領域に格納する位置情報格納処理部と、を有する。
【解決手段】ブロック内の各画素の色を代表色に置き換え代表色の色情報を格納した代表色情報格納領域と代表色が適用される画素のブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、所定数より少ない数の代表色を有する第1のブロックと、所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、第2のブロックの所定数より多い数の代表色のうち特定の代表色の色情報を、第1のブロックの代表色情報格納領域に格納する色情報格納処理部と、特定の代表色が適用される画素の第2のブロック内の位置を特定するための位置特定情報を、第1のブロックの位置情報格納領域に格納する位置情報格納処理部と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを構成する画素の色を代表色に置き換えることにより画像データを圧縮する画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
プリンタ等のコスト競争が厳しい製品は、メモリにかかるコストを下げる必要がある。そのためには、画像データをより小さなサイズに圧縮することが効果的である。
【0003】
画像データの圧縮方式としては、画像データを複数のブロックに分割し、各ブロックの画素の色を代表色に置き換えて画像データを圧縮する圧縮方式が知られている。この圧縮方式では、ブロックを構成する画素の色の中から、所定数以下の数の色が代表色として抽出され、ブロックを構成するすべての画素の色がいずれかの代表色に置き換えられる。このような構成によれば、画素数と同数の色情報を有するブロックが、所定数以下の数の代表色の色情報と、代表色が適用される画素のブロック内の位置を示す位置情報とに変換され、データサイズが低減される。
【0004】
しかしながら、上記の圧縮方式では、ブロックを構成する画素の色が所定数以下の数の代表色に置き換えられるため、各ブロックの圧縮後のデータサイズを一定に維持することができるという利点がある一方で、画像の色再現性が低いという問題がある。たとえば、圧縮対象のブロックが5つの色を含み、代表色として4つ以下の色が抽出される場合、ブロックの圧縮後のデータは4つの代表色の色情報を有し、伸長処理後のデータにおいて5つの色を再現することができない。
【0005】
この問題を解決するために、下記の特許文献1には、各ブロックを構成する画素の色数を確認し、色数が多いブロックについては、色情報を格納するデータ領域を大きくする技術が開示されている。しかしながら、この技術では、各ブロックの圧縮後のデータサイズが一定に維持されない。
【0006】
また、下記の特許文献2には、代表色の数が所定数未満の場合、画素の色を代表色に置き換える圧縮処理を行ない、代表色の数が所定数以上の場合、非可逆圧縮を行う技術が開示されている。この技術によれば、圧縮率を設定可能な非可逆圧縮を用いることにより各ブロックの圧縮後のデータサイズが一定に維持される。しかしながら、この技術では、画像の色再現性を向上させる効果が期待できない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−27539号公報
【特許文献2】特開2000−333017号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上述した課題に鑑みてなされたものである。したがって、本発明の目的は、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【0009】
本発明の上記目的は、下記の手段によって達成される。
【0010】
(1)画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有することを特徴とする画像処理装置。
【0011】
(2)前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする上記(1)に記載の画像処理装置。
【0012】
(3)前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記(1)または(2)に記載の画像処理装置。
【0013】
(4)前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする上記(1)〜(3)のいずれか1つに記載の画像処理装置。
【0014】
(5)画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理方法であって、所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識するステップ(a)と、前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納するステップ(b)と、を有することを特徴とする画像処理方法。
【0015】
(6)前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする上記(5)に記載の画像処理方法。
【0016】
(7)前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記(5)または(6)に記載の画像処理方法。
【0017】
(8)前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする上記(5)〜(7)のいずれか1つに記載の画像処理方法。
【発明の効果】
【0018】
本発明によれば、所定数より少ない数の代表色を有する第1のブロックの圧縮データに所定数より多い数の代表色を有する第2のブロックの代表色に関する情報が格納されるため、第2のブロックの圧縮データのサイズを増やすことなく、第2のブロックに対して所定数より多い数の代表色を適用することが可能となる。すなわち、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態における画像処理装置を備えたプリンタの概略構成を示す構成図である。
【図2】図1に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【図3】図2に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【図4】代表色圧縮を説明するための図である。
【図5】代表色圧縮により得られる圧縮データを説明するための図である。
【図6】図3に示される圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。
【図7】2つの色を含むブロックの圧縮処理を説明するための図である。
【図8】ワークメモリに格納される代表色情報および位置情報をバックアップメモリに退避させる処理を説明するための図である。
【図9】5つの色を含むブロックの圧縮処理を説明するための図である。
【図10】識別情報の上位ビットの値が変更された圧縮データを説明するための図である。
【図11】5つの色を含むブロックの圧縮データを説明するための図である。
【図12】図1に示されるデータ出力部により実行される伸長処理の手順を示すフローチャートである。
【図13】本発明の第2の実施形態における圧縮処理の手順を示すフローチャートである。
【図14】本発明の第2の実施形態における伸長処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【0021】
(第1の実施形態)
図1は、本発明の第1の実施形態における画像処理装置を備えたプリンタの概略構成を示すブロック図である。
【0022】
プリンタ1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、画像処理部14、データ出力部15、印刷部16、I/F(Interface)制御部17、およびホストI/F18を含む。CPU11、ROM12、RAM13、画像処理部14、データ出力部15、I/F制御部17、およびホストI/F18は、バスを介して相互に接続されている。印刷部16は、データ出力部15に接続されている。
【0023】
プリンタ1は、文書の印刷を指示するホストPC(Personal Computer)2にネットワークを介して接続されており、ホストPC2からの印刷指示に基づいて印刷を行う。なお、プリンタ1とホストPC2とは、ネットワークを介することなく直接機器間で接続(ローカル接続)されていてもよい。
【0024】
CPU11は、プログラムにしたがって上記各部の制御や各種の演算処理を実行する。ROM12は、各種プログラムおよび各種データを格納する。
【0025】
RAM13は、作業領域として一時的にプログラムおよびデータを記憶する。RAM13は、ビットマップ形式の画像データ30、および画像データ30を圧縮して得られる圧縮済み画像データ40を格納する。
【0026】
画像処理部14は、ビットマップ形式の画像データ30に対して色変換およびスクリーン処理等の画像処理を実行する。また、画像処理部14は、画像データ30を圧縮してデータサイズが縮小されている圧縮済み画像データ40を生成する。
【0027】
データ出力部15は、RAM13から圧縮済み画像データ40を読み出してリアルタイムに伸長しつつ、印刷部16に転送する。データ出力部15は、印刷部16における用紙の搬送速度等に応じて圧縮済み画像データ40を伸長しつつ、印刷部16に転送する。
【0028】
印刷部16は、電子写真式プロセス等の周知の作像プロセスを用いて、データ出力部15から転送される画像データに基づく画像を用紙等の記録媒体に印刷する。
【0029】
I/F制御部17は、ホストI/F18を制御する。ホストI/F18は、ネットワークを介して他の機器と通信するためのインタフェースであり、イーサネット(登録商標)、トークンリング、FDDI(Fiber Distributed Data Interface)等の規格が用いられる。
【0030】
図2は、図1に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【0031】
画像処理部14は、ASIC(Application Specific Integrated Circuit)として構成されており、ReadDMA(Direct Memory Access)回路101、画像処理モジュール102、圧縮モジュール103、およびWriteDMA回路104を含む。
【0032】
ReadDMA回路101は、処理対象の画像データを取得する。ReadDMA101は、RAM13に格納されているビットマップ形式の画像データ30を所定ライン数のバンド単位で読み出し、画像処理モジュール102に渡す。
【0033】
画像処理モジュール102は、画像データに対して画像処理を実行する。画像処理モジュール102は、ReadDMA回路101から渡される1バンド分の画像データに対して、色変換処理、スクリーン処理、γ補正処理、および輪郭強調処理等の画像処理を実行する。
【0034】
圧縮モジュール103は、画像処理済みの画像データを圧縮する。圧縮モジュール103は、画像処理モジュール102により画像処理された1バンド分の画像データを所定のブロック単位で圧縮する。
【0035】
WriteDMA回路104は、圧縮済み画像データを出力する。WriteDMA回路104は、圧縮モジュール103により圧縮された1バンド分の画像データをRAM13に書き戻す。
【0036】
図3は、図2に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【0037】
圧縮モジュール103は、入力バッファ110、代表色抽出回路120、ピクセル評価回路130、ワークメモリ140、バックアップメモリ150、代表色数判定回路160、データ制御回路170、および出力バッファ180を含む。
【0038】
入力バッファ110は、所定数の画素のブロックを一時的に格納する。入力バッファ110には、画像データを分割して得られる8×8画素のブロック200が入力され、8×8画素のブロック200が格納される。
【0039】
代表色抽出回路120は、入力バッファ110に格納される8×8画素のブロックから代表色を抽出する。代表色抽出回路120は、1つのブロックを構成する64個の画素の色を認識し、出現頻度の高い順に4つ以下の代表色を抽出する。また、代表色抽出回路120は、8×8画素のブロックで使用される色の数(以下、「色数」と称する)を示す色数情報を、代表色数判定回路160に渡す。
【0040】
ピクセル評価回路130は、8×8画素のブロックを構成する画素の色を評価する。ピクセル評価回路130は、8×8画素のブロックの各画素の色について、各色が最も類似している1つの代表色を4つの代表色の中から選定する。ピクセル評価回路130は、評価結果を代表色識別情報(以下、単に「識別情報」と称する)としてワークメモリ140に出力する。
【0041】
ワークメモリ140は、代表色の色情報と識別情報とを格納する。ワークメモリ140は、代表色抽出回路120により抽出された代表色の色情報と、ピクセル評価回路130から出力される識別情報とを格納する。ワークメモリ140には、4つの色情報を格納するための格納領域と、64個の識別情報を格納するための格納領域とが設けられている。なお、64個の識別情報のセットを位置情報と称する。
【0042】
バックアップメモリ150は、ワークメモリ140に格納される代表色の色情報と64個の識別情報とを一時的に格納する。バックアップメモリ150にも、4つの色情報を格納するための格納領域と、64個の識別情報を格納するための格納領域とが設けられている。
【0043】
代表色数判定回路160は、8×8画素のブロックの色数に応じて、通常の圧縮処理を行うか、または、特殊処理を行うかを判断し、判断結果をデータ制御回路170に通知する。代表色数判定回路160は、代表色抽出回路120から渡される色数情報が示す色数が2以下の場合、特殊処理を行うと判断する。
【0044】
データ制御回路170は、上記各部の動作および各種情報の移動についての制御を行う。データ制御回路170は、ワークメモリ140に格納されているデータをバックアップメモリ150に渡す。また、データ制御回路170は、ワークメモリ140およびバックアップメモリ150に格納されているデータを出力バッファ180に渡す。
【0045】
出力バッファ180は、外部に出力されるデータを一時的に格納する。出力バッファ180は、ワークメモリ140およびバックアップメモリ150から渡されるデータを圧縮データ300として格納する。
【0046】
次に、図4および図5を参照して、代表色圧縮について説明する。
【0047】
図4(A)は、8×8画素のブロックの一例を示す図である。図4(A)に示されるブロック200は、7つの色を含み、ブロック200を構成する64個の画素のそれぞれは、7つの色のうちいずれか1つの色を有する。代表色圧縮では、まず、7つの色の出現頻度(画素数)にしたがって、7つの色の中から4つの色が代表色として抽出される(図4(B)参照)。そして、代表色として抽出されない残りの3つの色の画素(図4(C)において黒色で塗り潰された画素)については、4つの代表色のうち最も近い1つの代表色に画素の色が置き換えられる(図4(D)参照)。
【0048】
図5は、代表色圧縮により得られる圧縮データを説明するための図である。圧縮データ300は、代表色情報と位置情報とを含む。代表色情報および位置情報は、圧縮データの代表色情報格納領域および位置情報格納領域にそれぞれ格納されている。代表色情報は、4つの代表色の色情報を含み、各色情報は、たとえば、CMYKの各8ビットの情報からなる32ビットの情報である。位置情報は、64個の画像に適用される代表色をそれぞれ示す64個の識別情報を含み、識別情報には、対応する画素に適用される代表色を示す2ビットの数値が設定される。たとえば、図4(A)に示されるブロックの圧縮データでは、4つの代表色をなす代表色1〜代表色4に対して「00」、「01」、「10」、および「11」の2ビットの数値がそれぞれ割り当てられ、64個の識別情報に対して、上記の2ビットの数値のいずれか1つがそれぞれ設定される。
【0049】
次に、圧縮モジュール103の動作について説明する。図6は、圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。圧縮処理では、1バンド分の画像データ内に隣接して配置される8×8画素のブロックが順次に処理される。
【0050】
まず、対象ブロックから色が抽出される(ステップS101)。本実施形態では、代表色抽出回路120により、入力バッファ110に格納されている8×8画素のブロックから64個の画素の色が抽出される。
【0051】
続いて、対象ブロックの色数が2以下であるか否かが判断される(ステップS102)。本実施形態では、代表色判定回路160により、ステップS101に示す処理で抽出された色の数が2以下であるか否かが判断される。
【0052】
色数が2以下でないと判断される場合(ステップS102:NO)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS103)。本実施形態では、入力バッファ110に格納されている8×8画素のブロックに対して一般的な代表色圧縮が施され、4つの色情報と、64個の識別情報とが生成される。4つの色情報および64個の識別情報は、代表色抽出回路120およびピクセル評価回路130によりワークメモリ140の所定の格納領域にそれぞれ格納される。
【0053】
続いて、圧縮データが出力され、対象ブロックが1つ進められる(ステップS104)。本実施形態では、ステップS103に示す処理で生成された4つの色情報と64個の識別情報とがワークメモリ140から出力バッファ180に渡され、出力バッファ180から圧縮データとして出力される。そして、入力バッファ110に新たに格納される8×8画素のブロックの処理に移行する。
【0054】
一方、ステップS102に示す処理で、対象ブロックの色数が2以下であると判断される場合(ステップS102:YES)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS105)。本実施形態では、8×8画素のブロックに対して一般的な代表色圧縮処理が施され、ワークメモリ140の所定の格納領域に2つの色情報と64個の識別情報とが格納される。
【0055】
図7(A)は、2つの色を含む8×8画素のブロックの一例を示す図であり、図7(B)は、図7(A)に示されるブロックに適用される代表色情報および位置情報を示す図である。2つの色を含む8×8画素のブロック210からは2つの代表色が抽出される。2つの代表色が抽出されるブロック210については、2つの代表色1,2に対して「00」および「01」の数値がそれぞれ割り当てられ、64個の画素に対して「00」および「01」のいずれか一方の数値が識別情報として設定される。2つの色情報と64個の識別情報とは、ワークメモリ140の所定の格納領域に格納される。
【0056】
続いて、圧縮データがバックアップメモリ150に退避される(ステップS106)。本実施形態では、ステップS105に示す処理で生成された対象ブロックの2つの色情報と64個の識別情報とが、データ制御回路170によりワークメモリ140からバックアップメモリ150に渡される(図8参照)。上述したとおり、バックアップメモリ150には4つの色情報を格納するための格納領域が設けられており、2つの色情報が渡される場合、代表色3および代表色4の色情報を格納するための領域は空き領域となる。
【0057】
続いて、後続ブロックから色が抽出される(ステップS107)。本実施形態では、ステップS106に示す処理で圧縮処理が施されたブロックに続いて入力バッファ110に格納される新たなブロックから画素の色が抽出される。そして、後続ブロックの色数が5以上であるか否かが判断される(ステップS108)。
【0058】
後続ブロックの色数が5未満であると判断される場合(ステップS108:NO)、対象ブロックの圧縮データが出力され、対象ブロックが1つ進められる(ステップS109)。本実施形態では、ステップS106に示す処理でバックアップメモリ150に退避された2つの色情報と64個の識別情報とが、出力バッファ180に渡され、出力バッファ180から出力される。なお、圧縮データのサイズを一定に維持する見地から、圧縮データの代表色情報格納領域の代表色3,4の色情報を格納するための領域には、印刷結果に影響を与えない情報が格納される。
【0059】
一方、ステップS108に示す処理で、後続ブロックの色数が5以上であると判断される場合(ステップS108:YES)、後続ブロックの代表色5の色情報が、対象ブロックの代表色4の色情報を格納するための格納領域に格納される(ステップS110)。本実施形態では、まず、後続ブロックにおける色の出現頻度にしたがって、5以上の色の中から5つの代表色が抽出される。そして、バックアップメモリ150に設けられている、対象ブロックの代表色4の色情報を格納するための格納領域に、代表色5の色情報が格納される。このとき、対象ブロックの代表色3の色情報を格納するための格納領域には、対象ブロックの代表色1の色情報と同一の色情報が格納される。
【0060】
図9(A)は、5つの色を含む8×8画素のブロックの一例を示す図であり、図9(B)は、図9(A)に示されるブロックに適用される代表色情報および位置情報を示す図である。5つの色を含む8×8画素のブロック220からは5つの代表色が抽出される。しかしながら、5つの代表色が抽出されるブロック210については、4つの代表色1〜4に対して「00」、「01」、「10」、および「11」の数値がそれぞれ割り当てられる一方、代表色5に対しては数値が割り当てられない。また、ワークメモリ140には、代表色1〜4の色情報を格納するための領域のみが設けられており、代表色5の色情報を格納するための格納領域は設けられていない。ステップS110に示す処理では、ワークメモリ140に格納領域が設けられていない代表色5の色情報が、バックアップメモリ150に設けられている、2つの代表色1,2を有する対象ブロックの代表色4の色情報を格納するための格納領域に格納される。
【0061】
なお、図9(C)に示されるとおり、5つの色を含むブロック220は、図7(A)に示される2つの色を含むブロック210に隣接して配置されている。2つのブロック210,220は、図9(C)に示される矢印の向きに順次に圧縮される。このような画素の配列は、たとえば、スキャナにより読み込まれた画像の下地部分と画像部分との境界部において見受けられる。
【0062】
続いて、対象ブロックの64個の識別情報のうち、後続ブロックの代表色5が適用される画素の位置と同一の位置の画素に対応付けられている識別情報のBit1が「1」に設定される(ステップS111)。具体的には、まず、後続ブロックにおいて代表色5が適用される画素の位置が抽出される。そして、バックアップメモリ150に格納されている、対象ブロックの64個の識別情報のうち、抽出された画素の位置と同一の位置の画素に対応付けられている識別情報について、上位ビットの値が「0」から「1」に変更される。すなわち、識別情報の数値「01」が「11」に変更され、数値「00」が「10」に変更される。
【0063】
図10は、識別情報の上位ビットの値が変更された対象ブロックの圧縮データを説明するための図である。上述したとおり、2つの代表色1,2を有する対象ブロックについては、識別情報として「00」および「01」の2つが用いられる(図7(B)参照)。圧縮データ310では、64個の識別情報のうち、図9(B)に示されるブロックにおいて代表色5が適用される7つの画素の位置と同一位置の画素に対応付けられている7つの識別情報について、識別情報の上位ビットの値が「1」に変更されている(図10において太枠で囲まれる画素を参照)。また、上述したとおり、対象ブロックの圧縮データにおける代表色4の色情報を格納するための領域には、後続ブロックの代表色5の色情報が格納されている。このような構成によれば、後述する伸長処理において、対象ブロックの識別情報の上位ビットの値を参照して、後続ブロックにおいて代表色5が適用される画素の位置を特定することが可能になる。
【0064】
続いて、2つのブロックの圧縮データが順次に出力され、対象ブロックが2つ進められる(ステップS112)。本実施形態では、バックアップメモリ150に格納されている対象ブロックの圧縮データ(図10参照)と、ワークメモリ140に格納されている後続ブロックの圧縮データとが順次に出力される。対象ブロックの圧縮データには、後続ブロックの代表色5に関する情報が含まれている。
【0065】
図11は、後続ブロックの圧縮データを説明するための図である。圧縮データ320は、代表色1〜4の色をそれぞれ示す4つの色情報と、64個の識別情報とを含む。圧縮データ320では、代表色5が適用されるべき画素(図11において太枠で囲まれる画素)については、代表色1〜4の中から代表色5に最も近い1つの代表色が選定され、選定された代表色を示す識別情報が設定される。このような構成によれば、後述する伸長処理において、たとえば、画像が形成される用紙の向きとの関係により圧縮データの90度回転が必要となり、圧縮データから5つの色を含む伸長データを生成できない場合でも、圧縮データから4つの色を含む伸長データを生成することができる。
【0066】
続いて、最終ブロックまで圧縮が完了したか否かが判断される(ステップS113)。たとえば、1バンド分の画像データを構成するすべてのブロックについて、圧縮処理が完了したか否かが判断される。最終ブロックまで圧縮が完了していないと判断される場合(ステップS113:NO)、ステップS101の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合(ステップS113:YES)、処理が終了される。
【0067】
以上のとおり、図6に示されるフローチャートの処理によれば、対象ブロックの色数が2以下であり、かつ、後続ブロックの色数が5以上であることが認識される場合、後続ブロックについて、5つの代表色が抽出される。そして、代表色5の色情報が、対象ブロックの圧縮データの代表色情報格納領域に格納される。加えて、対象ブロックの圧縮データの位置情報格納領域に、後続ブロックにおいて代表色5が適用される画素の位置を特定するための位置特定情報が格納される。
【0068】
このような構成によれば、後述する伸長処理において、対象ブロックの圧縮データに含まれる情報を利用して、後続ブロックの伸長データに5つの色を適用することが可能になる。たとえば、図10および図11に示される圧縮データ310,320から、図9(A)に示されるような5つの色を含む伸長データを生成することができる。
【0069】
以上のとおり、本実施形態によれば、後続ブロックの圧縮データのサイズを増やすことなく、後続ブロックに対して5つの代表色を適用することが可能になる。すなわち、画素のブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上することができる。
【0070】
なお、上述した実施形態では、専用のハードウエア回路により圧縮処理が行われた。しかしながら、圧縮処理は、プリンタ1のROM12等の記憶部にプログラムとして記憶され、CPU11によって実行されてもよい。
【0071】
次に、図12を参照して、圧縮データを伸長する伸長処理について説明する。
【0072】
図12は、データ出力部により実行される伸長処理の手順を示すフローチャートである。伸長処理では、圧縮処理と同じ順序で各ブロックの圧縮データが順次に処理される。
【0073】
まず、対象ブロックから代表色の色情報が読み出され、代表色1の色情報と代表色3の色情報とが同一であるか否かが判断される(ステップS201,S202)。本実施形態では、圧縮データに含まれる4つ以下の色情報のうち、代表色1の色情報と代表色3の色情報とが同一であるか否かが判断される。
【0074】
代表色1の色情報と代表色3の色情報とが同一でないと判断される場合(ステップS202:NO)、対象ブロックに対して通常の伸長処理が実施される(ステップS203)。本実施形態では、対象ブロックの圧縮データに対して一般的な伸長処理が施され、伸長データが生成される。そして、伸長データが出力され、対象ブロックが1つ進められる(ステップS204)。
【0075】
一方、ステップS202に示す処理で、代表色1の色情報と代表色3の色情報とが同一であると判断される場合(ステップS202:YES)、識別情報のBit0の値に応じて代表色1と代表色2を適用しつつ、伸長処理が実施される(ステップS205)。たとえば、識別情報が「00」または「10」である画素については代表色1が適用され、識別情報が「01」または「11」である画素については代表色2が適用され、伸長処理が実施される。その結果、2つの色を含む伸長データが生成される。伸長データは、データ出力部15に設けられた出力バッファ(不図示)に一時的に格納される。
【0076】
続いて、後続ブロックに対して伸長処理が実施される(ステップS206)。本実施形態では、後続ブロックの圧縮データに基づいて通常の伸長処理が施され、4つの代表色を有する伸長データが生成される。
【0077】
続いて、対象ブロックの64個の画素の中から1つの画素が選択され、選択された画素のBit1が「1」であるか否かが判断される(ステップS207)。本実施形態では、ステップS205に示す処理で伸長処理が施された圧縮データに含まれる64個の画素の中から1つの画素が選択され、選択された画素に対応付けられている識別情報の上位ビットの値が「1」であるか否かが判断される。
【0078】
識別情報のBit1が「1」でないと判断される場合(ステップS207:NO)、ステップS209の処理に移行する。一方、識別情報のBit1が「1」であると判断される場合(ステップS207:YES)、後続ブロックの対応する位置の画素に、対象ブロックの代表色4(すなわち、後続ブロックの代表色5)が適用(上書き)される(ステップS208)。その結果、ステップS206に示す処理で生成された後続ブロックの伸長データの1つの画素の色が代表色5に変更される。
【0079】
続いて、対象画素が1つ進められ、最終画素まで評価が完了したか否かが判断される(ステップS209,S210)。最終画素まで評価が完了していないと判断される場合(ステップS210:NO)、ステップS207の処理に戻る。一方、最終画素まで評価が完了したと判断される場合(ステップS210:YES)、2つのブロックの伸長データが順次に出力され、対象ブロックが2つ進められる(ステップS211)。
【0080】
そして、最終ブロックまで伸長処理が完了したか否かが判断される(ステップS212)。最終ブロックまで伸長処理が完了していないと判断される場合(ステップS212:NO)、ステップS201の処理に戻る。一方、最終ブロックまで伸長処理が完了したと判断される場合(ステップS212:YES)、処理が終了される。
【0081】
以上のとおり、図12に示されるフローチャートの処理によれば、まず、対象ブロックの代表色1と代表色3とが同一色であることが認識されることにより、対象ブロックの圧縮データに後続ブロックの代表色5に関する情報が含まれていることが認識される。そして、対象ブロックの位置情報格納領域に格納されている64個の識別情報の上位ビットの値が順次に確認され、上位ビットの値が「1」である画素が認識される場合、後続ブロックの対応する位置の画素の色が代表色5に変更される。その結果、5つの色を含む後続ブロックの伸長データが生成される。たとえば、図10および図11に示される圧縮データ310,320から、図9(A)に示されるような5つの色を含む伸長データが生成される。
【0082】
なお、伸長処理は、プリンタ1のROM12等の記憶部にプログラムとして記憶され、CPU11によって実行されてもよい。
【0083】
以上のとおり、本実施形態によれば、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、圧縮データのサイズを増やすことなく、5つの代表色を適用することが可能となる。すなわち、本実施形態によれば、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。とりわけ、下地部分と画像部分の境界部のように、色調が大きく変わり色数が増加するエッジ部分の色表現性を向上させることができる。
【0084】
また、本実施形態によれば、圧縮データの代表色1の色情報と代表色3の色情報とを同一にすることにより、対象ブロックの圧縮データに後続ブロックの情報が含まれることが認識される。したがって、対象ブロックの圧縮データに後続ブロックの情報が含まれていることを示す別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【0085】
また、本実施形態では、2ビットの識別情報の上位ビットの値を利用して、後続ブロックにおける代表色5が適用される画素の位置が特定される。したがって、代表色5が適用される画素の位置を特定するための別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【0086】
(第2の実施形態)
第1の実施形態では、2つ以下の色を含むブロックの後に5つ以上の色を含むブロックが続いた場合について述べた。本実施形態では、5つ以上の色を含むブロックの後に2つ以下の色を含むブロックが続く場合について述べる。
【0087】
図13は、本発明の第2の実施形態における圧縮処理の手順を示すフローチャートである。
【0088】
まず、対象ブロックから色が抽出され、対象ブロックの色数が5以上であるか否かが判断される(ステップS301,S302)。色数が5以上でないと判断される場合(ステップS302:NO)、通常の代表色圧縮処理が実施される(ステップS303)。そして、圧縮データが出力され、対象ブロックが1つ進められる(ステップS304)。
【0089】
一方、ステップS302に示す処理で、色数が5以上であると判断される場合(ステップS302:YES)、後続ブロックから色が抽出される(ステップS305)。そして、後続ブロックの色数が2以下であるか否かが判断される(ステップS306)。
【0090】
後続ブロックの色数が2以下でないと判断される場合(ステップS306:NO)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS307)。そして、圧縮データが出力され、対象ブロックが1つ進められる(ステップS308)。
【0091】
一方、後続ブロックの色数が2以下であると判断される場合(ステップS306:YES)、後続ブロックに対して通常の代表色圧縮処理が実施される(ステップS309)。本実施形態では、対象ブロックに対して圧縮処理を施す前に、後続ブロックに対して圧縮処理が施される。その結果、64個の画素に「00」または「01」の識別情報が設定されている後続ブロックの圧縮データが生成される。
【0092】
続いて、後続ブロックの代表色4の色情報を格納するための格納領域に、対象ブロックの代表色5の色情報が格納される(ステップS310)。
【0093】
続いて、対象ブロックを構成する64個の画素の中から1つの画素が選択され、画素の色が代表色5であるか否かが判断される(ステップS311)。画素の色が代表色5でないと判断される場合(ステップS311:NO)、画素の色が代表色1〜4のいずれか1つの色に置き換えられる(ステップS312)。
【0094】
一方、画素の色が代表色5であると判断される場合(ステップS311:YES)、まず、代表色5の画素の色が代表色1〜4のいずれか1つの色に置き換えられる(ステップS313)。そして、後続ブロックの対応する位置の画素に対応付けられている識別情報のBit1が「1」に変更される(ステップS314)。
【0095】
続いて、対象画素が1つ進められ、最終画素まで評価が完了したか否かが判断される(ステップS315,S316)。最終画素まで評価が完了していないと判断される場合(ステップS316:NO)、ステップS311の処理に戻る。
【0096】
一方、最終画素まで評価が完了したと判断される場合(ステップS316:YES)、2つのブロックの圧縮データが順次に出力される(ステップS317)。後に出力される圧縮データには、先に出力される圧縮データの代表色5に関する情報が含まれている。
【0097】
そして、最終ブロックまで圧縮が完了したか否かが判断される(ステップS318)。最終ブロックまで圧縮が完了していないと判断される場合(ステップS318:NO)、ステップS301の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合(ステップS318:YES)、処理が終了される。
【0098】
以上のとおり、図13に示されるフローチャートの処理によれば、対象ブロックの色数が5以上であり、かつ、後続ブロックの色数が2以下であることが認識される場合、まず、後続ブロックに対して圧縮処理が施される。そして、対象ブロックの代表色5の色情報が、後続ブロックの圧縮データの代表色情報格納領域に格納される。加えて、後続ブロックの圧縮データの位置情報格納領域に、対象ブロックにおいて代表色5が適用される画素の位置を特定するための位置特定情報が格納される。
【0099】
図14は、本実施形態における伸長処理の手順を示すフローチャートである。
【0100】
ステップS401〜S404に示す処理は、図12のステップS201〜S204に示す処理と同様であるため、説明は省略する。
【0101】
ステップS405に示す処理では、対象ブロックに対して通常の伸長処理が実施される(ステップS405)。そして、後続ブロックに対して伸長処理が実施される(ステップS406)。
【0102】
続いて、後続ブロックの64個の画素の中から1つの画素が選択され、選択された画素のBit1が「1」であるか否かが判断される(ステップS407)。
【0103】
識別情報のBit1が「1」でないと判断される場合(ステップS407:NO)、ステップS409の処理に移行する。一方、識別情報のBit1が「1」であると判断される場合(ステップS407:YES)、対象ブロックの対応する位置の画素に後続ブロックの代表色4(すなわち、対象ブロックの代表色5)が適用される(ステップS408)。ステップS409〜S412に示す処理は、図12のステップS209〜S212に示す処理と同様であるため、説明は省略する。
【0104】
以上のとおり、図14に示されるフローチャートの処理によれば、後続ブロックの圧縮データに含まれる情報に基づいて、5つの色を含む対象ブロックの伸長データが生成される。
【0105】
(第3の実施形態)
本実施形態は、第1の実施形態と第2の実施形態とを組み合わせて実行する実施形態である。
【0106】
本実施形態の圧縮処理では、図6に示されるフローチャートの処理と図13に示されるフローチャートの処理とが組み合わされる。また、伸長処理では、図12に示されるフローチャートの処理と図14に示されるフローチャートの処理とが組み合わされる。
【0107】
この場合、対象ブロックの圧縮データの代表色4の色情報を格納するための領域に格納されている色情報が、直前のブロックの代表色5の色情報であるか、または、直後のブロックの代表色5の色情報であるかを区別するために、対象ブロックの代表色3の色情報を格納するための格納領域に格納される色情報が利用される。具体的には、代表色3の色情報が代表色1の色情報と同一である場合、たとえば、対象ブロックの代表色情報格納領域には、直後のブロックの代表色5の色情報が格納されていることを示し、代表色3の色情報が代表色2の色情報と同一の色情報である場合、対象ブロックの代表色情報格納領域には、直前のブロックの代表色5の色情報が格納されていることを示す。
【0108】
このような構成によれば、2つ以下の色を含むブロックと5つ以上の色を含むブロックの前後関係に関係なく、隣接する一対のブロックを効率良く利用して処理を行うことが可能になる。
【0109】
(第4の実施形態)
隣接する一対のブロックの圧縮データを用いて5つの色を含む伸長データを生成する処理は、圧縮処理における2つのブロックの並びと伸長処理における2つのブロックの並びとが同一の場合に実行される。たとえば、画像データが90度回転して出力される場合、特定のブロックに格納されている代表色5に関する情報が参照されることなく、4つの代表色を用いて伸長データが生成される。
【0110】
本実施形態は、ブロックを180度回転して出力する実施形態である。本実施形態では、図6に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図14に示されるフローチャートの処理が実行される。一方、図13に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図12に示されるフローチャートの処理が実行される。
【0111】
このような構成によれば、たとえば、画像データを180度回転して出力する場合にも画像の色再現性を向上させることができる。
【0112】
本発明は、上記した実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【0113】
たとえば、上記実施形態では、8×8画素のブロックが圧縮モジュールに順次に入力され、各ブロックに対して圧縮処理が順次に施された。しかしながら、本実施形態とは異なり、たとえば、代表色抽出回路やワークメモリを2つ設け、2つのブロックが並列的に処理されてもよい。
【0114】
また、上記実施形態では、8×8画素のブロックから4つ以下の代表色が抽出された。しかしながら、ブロックから抽出される代表色の数は4つ以下に限定されるものではない。また、隣接する一対のブロックに適用される代表色の数もそれぞれ2つと5つに限定されるものではない。
【0115】
また、上記実施形態では、画像処理装置を備えるプリンタを例に挙げて説明した。しかしながら、本発明の画像処理装置は、MFP(Multi−Function Peripheral)や複写機に備えられてもよい。
【符号の説明】
【0116】
1 プリンタ、
11 CPU、
12 ROM、
13 RAM、
14 画像処理部、
15 データ出力部、
16 印刷部、
17 I/F制御部、
18 ホストI/F、
2 ホストPC、
101 ReadDMA回路、
102 画像処理モジュール、
103 圧縮モジュール、
104 WriteDMA回路、
110 入力バッファ、
120 代表色抽出回路
130 ピクセル評価回路、
140 ワークメモリ、
150 バックアップメモリ、
160 代表色数判定回路、
170 データ制御回路、
180 出力バッファ、
200 8×8画素のブロック、
300 圧縮データ。
【技術分野】
【0001】
本発明は、画像データを構成する画素の色を代表色に置き換えることにより画像データを圧縮する画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
プリンタ等のコスト競争が厳しい製品は、メモリにかかるコストを下げる必要がある。そのためには、画像データをより小さなサイズに圧縮することが効果的である。
【0003】
画像データの圧縮方式としては、画像データを複数のブロックに分割し、各ブロックの画素の色を代表色に置き換えて画像データを圧縮する圧縮方式が知られている。この圧縮方式では、ブロックを構成する画素の色の中から、所定数以下の数の色が代表色として抽出され、ブロックを構成するすべての画素の色がいずれかの代表色に置き換えられる。このような構成によれば、画素数と同数の色情報を有するブロックが、所定数以下の数の代表色の色情報と、代表色が適用される画素のブロック内の位置を示す位置情報とに変換され、データサイズが低減される。
【0004】
しかしながら、上記の圧縮方式では、ブロックを構成する画素の色が所定数以下の数の代表色に置き換えられるため、各ブロックの圧縮後のデータサイズを一定に維持することができるという利点がある一方で、画像の色再現性が低いという問題がある。たとえば、圧縮対象のブロックが5つの色を含み、代表色として4つ以下の色が抽出される場合、ブロックの圧縮後のデータは4つの代表色の色情報を有し、伸長処理後のデータにおいて5つの色を再現することができない。
【0005】
この問題を解決するために、下記の特許文献1には、各ブロックを構成する画素の色数を確認し、色数が多いブロックについては、色情報を格納するデータ領域を大きくする技術が開示されている。しかしながら、この技術では、各ブロックの圧縮後のデータサイズが一定に維持されない。
【0006】
また、下記の特許文献2には、代表色の数が所定数未満の場合、画素の色を代表色に置き換える圧縮処理を行ない、代表色の数が所定数以上の場合、非可逆圧縮を行う技術が開示されている。この技術によれば、圧縮率を設定可能な非可逆圧縮を用いることにより各ブロックの圧縮後のデータサイズが一定に維持される。しかしながら、この技術では、画像の色再現性を向上させる効果が期待できない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−27539号公報
【特許文献2】特開2000−333017号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上述した課題に鑑みてなされたものである。したがって、本発明の目的は、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【0009】
本発明の上記目的は、下記の手段によって達成される。
【0010】
(1)画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有することを特徴とする画像処理装置。
【0011】
(2)前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする上記(1)に記載の画像処理装置。
【0012】
(3)前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記(1)または(2)に記載の画像処理装置。
【0013】
(4)前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする上記(1)〜(3)のいずれか1つに記載の画像処理装置。
【0014】
(5)画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理方法であって、所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識するステップ(a)と、前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納するステップ(b)と、を有することを特徴とする画像処理方法。
【0015】
(6)前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする上記(5)に記載の画像処理方法。
【0016】
(7)前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記(5)または(6)に記載の画像処理方法。
【0017】
(8)前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする上記(5)〜(7)のいずれか1つに記載の画像処理方法。
【発明の効果】
【0018】
本発明によれば、所定数より少ない数の代表色を有する第1のブロックの圧縮データに所定数より多い数の代表色を有する第2のブロックの代表色に関する情報が格納されるため、第2のブロックの圧縮データのサイズを増やすことなく、第2のブロックに対して所定数より多い数の代表色を適用することが可能となる。すなわち、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態における画像処理装置を備えたプリンタの概略構成を示す構成図である。
【図2】図1に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【図3】図2に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【図4】代表色圧縮を説明するための図である。
【図5】代表色圧縮により得られる圧縮データを説明するための図である。
【図6】図3に示される圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。
【図7】2つの色を含むブロックの圧縮処理を説明するための図である。
【図8】ワークメモリに格納される代表色情報および位置情報をバックアップメモリに退避させる処理を説明するための図である。
【図9】5つの色を含むブロックの圧縮処理を説明するための図である。
【図10】識別情報の上位ビットの値が変更された圧縮データを説明するための図である。
【図11】5つの色を含むブロックの圧縮データを説明するための図である。
【図12】図1に示されるデータ出力部により実行される伸長処理の手順を示すフローチャートである。
【図13】本発明の第2の実施形態における圧縮処理の手順を示すフローチャートである。
【図14】本発明の第2の実施形態における伸長処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【0021】
(第1の実施形態)
図1は、本発明の第1の実施形態における画像処理装置を備えたプリンタの概略構成を示すブロック図である。
【0022】
プリンタ1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、画像処理部14、データ出力部15、印刷部16、I/F(Interface)制御部17、およびホストI/F18を含む。CPU11、ROM12、RAM13、画像処理部14、データ出力部15、I/F制御部17、およびホストI/F18は、バスを介して相互に接続されている。印刷部16は、データ出力部15に接続されている。
【0023】
プリンタ1は、文書の印刷を指示するホストPC(Personal Computer)2にネットワークを介して接続されており、ホストPC2からの印刷指示に基づいて印刷を行う。なお、プリンタ1とホストPC2とは、ネットワークを介することなく直接機器間で接続(ローカル接続)されていてもよい。
【0024】
CPU11は、プログラムにしたがって上記各部の制御や各種の演算処理を実行する。ROM12は、各種プログラムおよび各種データを格納する。
【0025】
RAM13は、作業領域として一時的にプログラムおよびデータを記憶する。RAM13は、ビットマップ形式の画像データ30、および画像データ30を圧縮して得られる圧縮済み画像データ40を格納する。
【0026】
画像処理部14は、ビットマップ形式の画像データ30に対して色変換およびスクリーン処理等の画像処理を実行する。また、画像処理部14は、画像データ30を圧縮してデータサイズが縮小されている圧縮済み画像データ40を生成する。
【0027】
データ出力部15は、RAM13から圧縮済み画像データ40を読み出してリアルタイムに伸長しつつ、印刷部16に転送する。データ出力部15は、印刷部16における用紙の搬送速度等に応じて圧縮済み画像データ40を伸長しつつ、印刷部16に転送する。
【0028】
印刷部16は、電子写真式プロセス等の周知の作像プロセスを用いて、データ出力部15から転送される画像データに基づく画像を用紙等の記録媒体に印刷する。
【0029】
I/F制御部17は、ホストI/F18を制御する。ホストI/F18は、ネットワークを介して他の機器と通信するためのインタフェースであり、イーサネット(登録商標)、トークンリング、FDDI(Fiber Distributed Data Interface)等の規格が用いられる。
【0030】
図2は、図1に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【0031】
画像処理部14は、ASIC(Application Specific Integrated Circuit)として構成されており、ReadDMA(Direct Memory Access)回路101、画像処理モジュール102、圧縮モジュール103、およびWriteDMA回路104を含む。
【0032】
ReadDMA回路101は、処理対象の画像データを取得する。ReadDMA101は、RAM13に格納されているビットマップ形式の画像データ30を所定ライン数のバンド単位で読み出し、画像処理モジュール102に渡す。
【0033】
画像処理モジュール102は、画像データに対して画像処理を実行する。画像処理モジュール102は、ReadDMA回路101から渡される1バンド分の画像データに対して、色変換処理、スクリーン処理、γ補正処理、および輪郭強調処理等の画像処理を実行する。
【0034】
圧縮モジュール103は、画像処理済みの画像データを圧縮する。圧縮モジュール103は、画像処理モジュール102により画像処理された1バンド分の画像データを所定のブロック単位で圧縮する。
【0035】
WriteDMA回路104は、圧縮済み画像データを出力する。WriteDMA回路104は、圧縮モジュール103により圧縮された1バンド分の画像データをRAM13に書き戻す。
【0036】
図3は、図2に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【0037】
圧縮モジュール103は、入力バッファ110、代表色抽出回路120、ピクセル評価回路130、ワークメモリ140、バックアップメモリ150、代表色数判定回路160、データ制御回路170、および出力バッファ180を含む。
【0038】
入力バッファ110は、所定数の画素のブロックを一時的に格納する。入力バッファ110には、画像データを分割して得られる8×8画素のブロック200が入力され、8×8画素のブロック200が格納される。
【0039】
代表色抽出回路120は、入力バッファ110に格納される8×8画素のブロックから代表色を抽出する。代表色抽出回路120は、1つのブロックを構成する64個の画素の色を認識し、出現頻度の高い順に4つ以下の代表色を抽出する。また、代表色抽出回路120は、8×8画素のブロックで使用される色の数(以下、「色数」と称する)を示す色数情報を、代表色数判定回路160に渡す。
【0040】
ピクセル評価回路130は、8×8画素のブロックを構成する画素の色を評価する。ピクセル評価回路130は、8×8画素のブロックの各画素の色について、各色が最も類似している1つの代表色を4つの代表色の中から選定する。ピクセル評価回路130は、評価結果を代表色識別情報(以下、単に「識別情報」と称する)としてワークメモリ140に出力する。
【0041】
ワークメモリ140は、代表色の色情報と識別情報とを格納する。ワークメモリ140は、代表色抽出回路120により抽出された代表色の色情報と、ピクセル評価回路130から出力される識別情報とを格納する。ワークメモリ140には、4つの色情報を格納するための格納領域と、64個の識別情報を格納するための格納領域とが設けられている。なお、64個の識別情報のセットを位置情報と称する。
【0042】
バックアップメモリ150は、ワークメモリ140に格納される代表色の色情報と64個の識別情報とを一時的に格納する。バックアップメモリ150にも、4つの色情報を格納するための格納領域と、64個の識別情報を格納するための格納領域とが設けられている。
【0043】
代表色数判定回路160は、8×8画素のブロックの色数に応じて、通常の圧縮処理を行うか、または、特殊処理を行うかを判断し、判断結果をデータ制御回路170に通知する。代表色数判定回路160は、代表色抽出回路120から渡される色数情報が示す色数が2以下の場合、特殊処理を行うと判断する。
【0044】
データ制御回路170は、上記各部の動作および各種情報の移動についての制御を行う。データ制御回路170は、ワークメモリ140に格納されているデータをバックアップメモリ150に渡す。また、データ制御回路170は、ワークメモリ140およびバックアップメモリ150に格納されているデータを出力バッファ180に渡す。
【0045】
出力バッファ180は、外部に出力されるデータを一時的に格納する。出力バッファ180は、ワークメモリ140およびバックアップメモリ150から渡されるデータを圧縮データ300として格納する。
【0046】
次に、図4および図5を参照して、代表色圧縮について説明する。
【0047】
図4(A)は、8×8画素のブロックの一例を示す図である。図4(A)に示されるブロック200は、7つの色を含み、ブロック200を構成する64個の画素のそれぞれは、7つの色のうちいずれか1つの色を有する。代表色圧縮では、まず、7つの色の出現頻度(画素数)にしたがって、7つの色の中から4つの色が代表色として抽出される(図4(B)参照)。そして、代表色として抽出されない残りの3つの色の画素(図4(C)において黒色で塗り潰された画素)については、4つの代表色のうち最も近い1つの代表色に画素の色が置き換えられる(図4(D)参照)。
【0048】
図5は、代表色圧縮により得られる圧縮データを説明するための図である。圧縮データ300は、代表色情報と位置情報とを含む。代表色情報および位置情報は、圧縮データの代表色情報格納領域および位置情報格納領域にそれぞれ格納されている。代表色情報は、4つの代表色の色情報を含み、各色情報は、たとえば、CMYKの各8ビットの情報からなる32ビットの情報である。位置情報は、64個の画像に適用される代表色をそれぞれ示す64個の識別情報を含み、識別情報には、対応する画素に適用される代表色を示す2ビットの数値が設定される。たとえば、図4(A)に示されるブロックの圧縮データでは、4つの代表色をなす代表色1〜代表色4に対して「00」、「01」、「10」、および「11」の2ビットの数値がそれぞれ割り当てられ、64個の識別情報に対して、上記の2ビットの数値のいずれか1つがそれぞれ設定される。
【0049】
次に、圧縮モジュール103の動作について説明する。図6は、圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。圧縮処理では、1バンド分の画像データ内に隣接して配置される8×8画素のブロックが順次に処理される。
【0050】
まず、対象ブロックから色が抽出される(ステップS101)。本実施形態では、代表色抽出回路120により、入力バッファ110に格納されている8×8画素のブロックから64個の画素の色が抽出される。
【0051】
続いて、対象ブロックの色数が2以下であるか否かが判断される(ステップS102)。本実施形態では、代表色判定回路160により、ステップS101に示す処理で抽出された色の数が2以下であるか否かが判断される。
【0052】
色数が2以下でないと判断される場合(ステップS102:NO)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS103)。本実施形態では、入力バッファ110に格納されている8×8画素のブロックに対して一般的な代表色圧縮が施され、4つの色情報と、64個の識別情報とが生成される。4つの色情報および64個の識別情報は、代表色抽出回路120およびピクセル評価回路130によりワークメモリ140の所定の格納領域にそれぞれ格納される。
【0053】
続いて、圧縮データが出力され、対象ブロックが1つ進められる(ステップS104)。本実施形態では、ステップS103に示す処理で生成された4つの色情報と64個の識別情報とがワークメモリ140から出力バッファ180に渡され、出力バッファ180から圧縮データとして出力される。そして、入力バッファ110に新たに格納される8×8画素のブロックの処理に移行する。
【0054】
一方、ステップS102に示す処理で、対象ブロックの色数が2以下であると判断される場合(ステップS102:YES)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS105)。本実施形態では、8×8画素のブロックに対して一般的な代表色圧縮処理が施され、ワークメモリ140の所定の格納領域に2つの色情報と64個の識別情報とが格納される。
【0055】
図7(A)は、2つの色を含む8×8画素のブロックの一例を示す図であり、図7(B)は、図7(A)に示されるブロックに適用される代表色情報および位置情報を示す図である。2つの色を含む8×8画素のブロック210からは2つの代表色が抽出される。2つの代表色が抽出されるブロック210については、2つの代表色1,2に対して「00」および「01」の数値がそれぞれ割り当てられ、64個の画素に対して「00」および「01」のいずれか一方の数値が識別情報として設定される。2つの色情報と64個の識別情報とは、ワークメモリ140の所定の格納領域に格納される。
【0056】
続いて、圧縮データがバックアップメモリ150に退避される(ステップS106)。本実施形態では、ステップS105に示す処理で生成された対象ブロックの2つの色情報と64個の識別情報とが、データ制御回路170によりワークメモリ140からバックアップメモリ150に渡される(図8参照)。上述したとおり、バックアップメモリ150には4つの色情報を格納するための格納領域が設けられており、2つの色情報が渡される場合、代表色3および代表色4の色情報を格納するための領域は空き領域となる。
【0057】
続いて、後続ブロックから色が抽出される(ステップS107)。本実施形態では、ステップS106に示す処理で圧縮処理が施されたブロックに続いて入力バッファ110に格納される新たなブロックから画素の色が抽出される。そして、後続ブロックの色数が5以上であるか否かが判断される(ステップS108)。
【0058】
後続ブロックの色数が5未満であると判断される場合(ステップS108:NO)、対象ブロックの圧縮データが出力され、対象ブロックが1つ進められる(ステップS109)。本実施形態では、ステップS106に示す処理でバックアップメモリ150に退避された2つの色情報と64個の識別情報とが、出力バッファ180に渡され、出力バッファ180から出力される。なお、圧縮データのサイズを一定に維持する見地から、圧縮データの代表色情報格納領域の代表色3,4の色情報を格納するための領域には、印刷結果に影響を与えない情報が格納される。
【0059】
一方、ステップS108に示す処理で、後続ブロックの色数が5以上であると判断される場合(ステップS108:YES)、後続ブロックの代表色5の色情報が、対象ブロックの代表色4の色情報を格納するための格納領域に格納される(ステップS110)。本実施形態では、まず、後続ブロックにおける色の出現頻度にしたがって、5以上の色の中から5つの代表色が抽出される。そして、バックアップメモリ150に設けられている、対象ブロックの代表色4の色情報を格納するための格納領域に、代表色5の色情報が格納される。このとき、対象ブロックの代表色3の色情報を格納するための格納領域には、対象ブロックの代表色1の色情報と同一の色情報が格納される。
【0060】
図9(A)は、5つの色を含む8×8画素のブロックの一例を示す図であり、図9(B)は、図9(A)に示されるブロックに適用される代表色情報および位置情報を示す図である。5つの色を含む8×8画素のブロック220からは5つの代表色が抽出される。しかしながら、5つの代表色が抽出されるブロック210については、4つの代表色1〜4に対して「00」、「01」、「10」、および「11」の数値がそれぞれ割り当てられる一方、代表色5に対しては数値が割り当てられない。また、ワークメモリ140には、代表色1〜4の色情報を格納するための領域のみが設けられており、代表色5の色情報を格納するための格納領域は設けられていない。ステップS110に示す処理では、ワークメモリ140に格納領域が設けられていない代表色5の色情報が、バックアップメモリ150に設けられている、2つの代表色1,2を有する対象ブロックの代表色4の色情報を格納するための格納領域に格納される。
【0061】
なお、図9(C)に示されるとおり、5つの色を含むブロック220は、図7(A)に示される2つの色を含むブロック210に隣接して配置されている。2つのブロック210,220は、図9(C)に示される矢印の向きに順次に圧縮される。このような画素の配列は、たとえば、スキャナにより読み込まれた画像の下地部分と画像部分との境界部において見受けられる。
【0062】
続いて、対象ブロックの64個の識別情報のうち、後続ブロックの代表色5が適用される画素の位置と同一の位置の画素に対応付けられている識別情報のBit1が「1」に設定される(ステップS111)。具体的には、まず、後続ブロックにおいて代表色5が適用される画素の位置が抽出される。そして、バックアップメモリ150に格納されている、対象ブロックの64個の識別情報のうち、抽出された画素の位置と同一の位置の画素に対応付けられている識別情報について、上位ビットの値が「0」から「1」に変更される。すなわち、識別情報の数値「01」が「11」に変更され、数値「00」が「10」に変更される。
【0063】
図10は、識別情報の上位ビットの値が変更された対象ブロックの圧縮データを説明するための図である。上述したとおり、2つの代表色1,2を有する対象ブロックについては、識別情報として「00」および「01」の2つが用いられる(図7(B)参照)。圧縮データ310では、64個の識別情報のうち、図9(B)に示されるブロックにおいて代表色5が適用される7つの画素の位置と同一位置の画素に対応付けられている7つの識別情報について、識別情報の上位ビットの値が「1」に変更されている(図10において太枠で囲まれる画素を参照)。また、上述したとおり、対象ブロックの圧縮データにおける代表色4の色情報を格納するための領域には、後続ブロックの代表色5の色情報が格納されている。このような構成によれば、後述する伸長処理において、対象ブロックの識別情報の上位ビットの値を参照して、後続ブロックにおいて代表色5が適用される画素の位置を特定することが可能になる。
【0064】
続いて、2つのブロックの圧縮データが順次に出力され、対象ブロックが2つ進められる(ステップS112)。本実施形態では、バックアップメモリ150に格納されている対象ブロックの圧縮データ(図10参照)と、ワークメモリ140に格納されている後続ブロックの圧縮データとが順次に出力される。対象ブロックの圧縮データには、後続ブロックの代表色5に関する情報が含まれている。
【0065】
図11は、後続ブロックの圧縮データを説明するための図である。圧縮データ320は、代表色1〜4の色をそれぞれ示す4つの色情報と、64個の識別情報とを含む。圧縮データ320では、代表色5が適用されるべき画素(図11において太枠で囲まれる画素)については、代表色1〜4の中から代表色5に最も近い1つの代表色が選定され、選定された代表色を示す識別情報が設定される。このような構成によれば、後述する伸長処理において、たとえば、画像が形成される用紙の向きとの関係により圧縮データの90度回転が必要となり、圧縮データから5つの色を含む伸長データを生成できない場合でも、圧縮データから4つの色を含む伸長データを生成することができる。
【0066】
続いて、最終ブロックまで圧縮が完了したか否かが判断される(ステップS113)。たとえば、1バンド分の画像データを構成するすべてのブロックについて、圧縮処理が完了したか否かが判断される。最終ブロックまで圧縮が完了していないと判断される場合(ステップS113:NO)、ステップS101の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合(ステップS113:YES)、処理が終了される。
【0067】
以上のとおり、図6に示されるフローチャートの処理によれば、対象ブロックの色数が2以下であり、かつ、後続ブロックの色数が5以上であることが認識される場合、後続ブロックについて、5つの代表色が抽出される。そして、代表色5の色情報が、対象ブロックの圧縮データの代表色情報格納領域に格納される。加えて、対象ブロックの圧縮データの位置情報格納領域に、後続ブロックにおいて代表色5が適用される画素の位置を特定するための位置特定情報が格納される。
【0068】
このような構成によれば、後述する伸長処理において、対象ブロックの圧縮データに含まれる情報を利用して、後続ブロックの伸長データに5つの色を適用することが可能になる。たとえば、図10および図11に示される圧縮データ310,320から、図9(A)に示されるような5つの色を含む伸長データを生成することができる。
【0069】
以上のとおり、本実施形態によれば、後続ブロックの圧縮データのサイズを増やすことなく、後続ブロックに対して5つの代表色を適用することが可能になる。すなわち、画素のブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上することができる。
【0070】
なお、上述した実施形態では、専用のハードウエア回路により圧縮処理が行われた。しかしながら、圧縮処理は、プリンタ1のROM12等の記憶部にプログラムとして記憶され、CPU11によって実行されてもよい。
【0071】
次に、図12を参照して、圧縮データを伸長する伸長処理について説明する。
【0072】
図12は、データ出力部により実行される伸長処理の手順を示すフローチャートである。伸長処理では、圧縮処理と同じ順序で各ブロックの圧縮データが順次に処理される。
【0073】
まず、対象ブロックから代表色の色情報が読み出され、代表色1の色情報と代表色3の色情報とが同一であるか否かが判断される(ステップS201,S202)。本実施形態では、圧縮データに含まれる4つ以下の色情報のうち、代表色1の色情報と代表色3の色情報とが同一であるか否かが判断される。
【0074】
代表色1の色情報と代表色3の色情報とが同一でないと判断される場合(ステップS202:NO)、対象ブロックに対して通常の伸長処理が実施される(ステップS203)。本実施形態では、対象ブロックの圧縮データに対して一般的な伸長処理が施され、伸長データが生成される。そして、伸長データが出力され、対象ブロックが1つ進められる(ステップS204)。
【0075】
一方、ステップS202に示す処理で、代表色1の色情報と代表色3の色情報とが同一であると判断される場合(ステップS202:YES)、識別情報のBit0の値に応じて代表色1と代表色2を適用しつつ、伸長処理が実施される(ステップS205)。たとえば、識別情報が「00」または「10」である画素については代表色1が適用され、識別情報が「01」または「11」である画素については代表色2が適用され、伸長処理が実施される。その結果、2つの色を含む伸長データが生成される。伸長データは、データ出力部15に設けられた出力バッファ(不図示)に一時的に格納される。
【0076】
続いて、後続ブロックに対して伸長処理が実施される(ステップS206)。本実施形態では、後続ブロックの圧縮データに基づいて通常の伸長処理が施され、4つの代表色を有する伸長データが生成される。
【0077】
続いて、対象ブロックの64個の画素の中から1つの画素が選択され、選択された画素のBit1が「1」であるか否かが判断される(ステップS207)。本実施形態では、ステップS205に示す処理で伸長処理が施された圧縮データに含まれる64個の画素の中から1つの画素が選択され、選択された画素に対応付けられている識別情報の上位ビットの値が「1」であるか否かが判断される。
【0078】
識別情報のBit1が「1」でないと判断される場合(ステップS207:NO)、ステップS209の処理に移行する。一方、識別情報のBit1が「1」であると判断される場合(ステップS207:YES)、後続ブロックの対応する位置の画素に、対象ブロックの代表色4(すなわち、後続ブロックの代表色5)が適用(上書き)される(ステップS208)。その結果、ステップS206に示す処理で生成された後続ブロックの伸長データの1つの画素の色が代表色5に変更される。
【0079】
続いて、対象画素が1つ進められ、最終画素まで評価が完了したか否かが判断される(ステップS209,S210)。最終画素まで評価が完了していないと判断される場合(ステップS210:NO)、ステップS207の処理に戻る。一方、最終画素まで評価が完了したと判断される場合(ステップS210:YES)、2つのブロックの伸長データが順次に出力され、対象ブロックが2つ進められる(ステップS211)。
【0080】
そして、最終ブロックまで伸長処理が完了したか否かが判断される(ステップS212)。最終ブロックまで伸長処理が完了していないと判断される場合(ステップS212:NO)、ステップS201の処理に戻る。一方、最終ブロックまで伸長処理が完了したと判断される場合(ステップS212:YES)、処理が終了される。
【0081】
以上のとおり、図12に示されるフローチャートの処理によれば、まず、対象ブロックの代表色1と代表色3とが同一色であることが認識されることにより、対象ブロックの圧縮データに後続ブロックの代表色5に関する情報が含まれていることが認識される。そして、対象ブロックの位置情報格納領域に格納されている64個の識別情報の上位ビットの値が順次に確認され、上位ビットの値が「1」である画素が認識される場合、後続ブロックの対応する位置の画素の色が代表色5に変更される。その結果、5つの色を含む後続ブロックの伸長データが生成される。たとえば、図10および図11に示される圧縮データ310,320から、図9(A)に示されるような5つの色を含む伸長データが生成される。
【0082】
なお、伸長処理は、プリンタ1のROM12等の記憶部にプログラムとして記憶され、CPU11によって実行されてもよい。
【0083】
以上のとおり、本実施形態によれば、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、圧縮データのサイズを増やすことなく、5つの代表色を適用することが可能となる。すなわち、本実施形態によれば、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。とりわけ、下地部分と画像部分の境界部のように、色調が大きく変わり色数が増加するエッジ部分の色表現性を向上させることができる。
【0084】
また、本実施形態によれば、圧縮データの代表色1の色情報と代表色3の色情報とを同一にすることにより、対象ブロックの圧縮データに後続ブロックの情報が含まれることが認識される。したがって、対象ブロックの圧縮データに後続ブロックの情報が含まれていることを示す別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【0085】
また、本実施形態では、2ビットの識別情報の上位ビットの値を利用して、後続ブロックにおける代表色5が適用される画素の位置が特定される。したがって、代表色5が適用される画素の位置を特定するための別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【0086】
(第2の実施形態)
第1の実施形態では、2つ以下の色を含むブロックの後に5つ以上の色を含むブロックが続いた場合について述べた。本実施形態では、5つ以上の色を含むブロックの後に2つ以下の色を含むブロックが続く場合について述べる。
【0087】
図13は、本発明の第2の実施形態における圧縮処理の手順を示すフローチャートである。
【0088】
まず、対象ブロックから色が抽出され、対象ブロックの色数が5以上であるか否かが判断される(ステップS301,S302)。色数が5以上でないと判断される場合(ステップS302:NO)、通常の代表色圧縮処理が実施される(ステップS303)。そして、圧縮データが出力され、対象ブロックが1つ進められる(ステップS304)。
【0089】
一方、ステップS302に示す処理で、色数が5以上であると判断される場合(ステップS302:YES)、後続ブロックから色が抽出される(ステップS305)。そして、後続ブロックの色数が2以下であるか否かが判断される(ステップS306)。
【0090】
後続ブロックの色数が2以下でないと判断される場合(ステップS306:NO)、対象ブロックに対して通常の代表色圧縮処理が実施される(ステップS307)。そして、圧縮データが出力され、対象ブロックが1つ進められる(ステップS308)。
【0091】
一方、後続ブロックの色数が2以下であると判断される場合(ステップS306:YES)、後続ブロックに対して通常の代表色圧縮処理が実施される(ステップS309)。本実施形態では、対象ブロックに対して圧縮処理を施す前に、後続ブロックに対して圧縮処理が施される。その結果、64個の画素に「00」または「01」の識別情報が設定されている後続ブロックの圧縮データが生成される。
【0092】
続いて、後続ブロックの代表色4の色情報を格納するための格納領域に、対象ブロックの代表色5の色情報が格納される(ステップS310)。
【0093】
続いて、対象ブロックを構成する64個の画素の中から1つの画素が選択され、画素の色が代表色5であるか否かが判断される(ステップS311)。画素の色が代表色5でないと判断される場合(ステップS311:NO)、画素の色が代表色1〜4のいずれか1つの色に置き換えられる(ステップS312)。
【0094】
一方、画素の色が代表色5であると判断される場合(ステップS311:YES)、まず、代表色5の画素の色が代表色1〜4のいずれか1つの色に置き換えられる(ステップS313)。そして、後続ブロックの対応する位置の画素に対応付けられている識別情報のBit1が「1」に変更される(ステップS314)。
【0095】
続いて、対象画素が1つ進められ、最終画素まで評価が完了したか否かが判断される(ステップS315,S316)。最終画素まで評価が完了していないと判断される場合(ステップS316:NO)、ステップS311の処理に戻る。
【0096】
一方、最終画素まで評価が完了したと判断される場合(ステップS316:YES)、2つのブロックの圧縮データが順次に出力される(ステップS317)。後に出力される圧縮データには、先に出力される圧縮データの代表色5に関する情報が含まれている。
【0097】
そして、最終ブロックまで圧縮が完了したか否かが判断される(ステップS318)。最終ブロックまで圧縮が完了していないと判断される場合(ステップS318:NO)、ステップS301の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合(ステップS318:YES)、処理が終了される。
【0098】
以上のとおり、図13に示されるフローチャートの処理によれば、対象ブロックの色数が5以上であり、かつ、後続ブロックの色数が2以下であることが認識される場合、まず、後続ブロックに対して圧縮処理が施される。そして、対象ブロックの代表色5の色情報が、後続ブロックの圧縮データの代表色情報格納領域に格納される。加えて、後続ブロックの圧縮データの位置情報格納領域に、対象ブロックにおいて代表色5が適用される画素の位置を特定するための位置特定情報が格納される。
【0099】
図14は、本実施形態における伸長処理の手順を示すフローチャートである。
【0100】
ステップS401〜S404に示す処理は、図12のステップS201〜S204に示す処理と同様であるため、説明は省略する。
【0101】
ステップS405に示す処理では、対象ブロックに対して通常の伸長処理が実施される(ステップS405)。そして、後続ブロックに対して伸長処理が実施される(ステップS406)。
【0102】
続いて、後続ブロックの64個の画素の中から1つの画素が選択され、選択された画素のBit1が「1」であるか否かが判断される(ステップS407)。
【0103】
識別情報のBit1が「1」でないと判断される場合(ステップS407:NO)、ステップS409の処理に移行する。一方、識別情報のBit1が「1」であると判断される場合(ステップS407:YES)、対象ブロックの対応する位置の画素に後続ブロックの代表色4(すなわち、対象ブロックの代表色5)が適用される(ステップS408)。ステップS409〜S412に示す処理は、図12のステップS209〜S212に示す処理と同様であるため、説明は省略する。
【0104】
以上のとおり、図14に示されるフローチャートの処理によれば、後続ブロックの圧縮データに含まれる情報に基づいて、5つの色を含む対象ブロックの伸長データが生成される。
【0105】
(第3の実施形態)
本実施形態は、第1の実施形態と第2の実施形態とを組み合わせて実行する実施形態である。
【0106】
本実施形態の圧縮処理では、図6に示されるフローチャートの処理と図13に示されるフローチャートの処理とが組み合わされる。また、伸長処理では、図12に示されるフローチャートの処理と図14に示されるフローチャートの処理とが組み合わされる。
【0107】
この場合、対象ブロックの圧縮データの代表色4の色情報を格納するための領域に格納されている色情報が、直前のブロックの代表色5の色情報であるか、または、直後のブロックの代表色5の色情報であるかを区別するために、対象ブロックの代表色3の色情報を格納するための格納領域に格納される色情報が利用される。具体的には、代表色3の色情報が代表色1の色情報と同一である場合、たとえば、対象ブロックの代表色情報格納領域には、直後のブロックの代表色5の色情報が格納されていることを示し、代表色3の色情報が代表色2の色情報と同一の色情報である場合、対象ブロックの代表色情報格納領域には、直前のブロックの代表色5の色情報が格納されていることを示す。
【0108】
このような構成によれば、2つ以下の色を含むブロックと5つ以上の色を含むブロックの前後関係に関係なく、隣接する一対のブロックを効率良く利用して処理を行うことが可能になる。
【0109】
(第4の実施形態)
隣接する一対のブロックの圧縮データを用いて5つの色を含む伸長データを生成する処理は、圧縮処理における2つのブロックの並びと伸長処理における2つのブロックの並びとが同一の場合に実行される。たとえば、画像データが90度回転して出力される場合、特定のブロックに格納されている代表色5に関する情報が参照されることなく、4つの代表色を用いて伸長データが生成される。
【0110】
本実施形態は、ブロックを180度回転して出力する実施形態である。本実施形態では、図6に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図14に示されるフローチャートの処理が実行される。一方、図13に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図12に示されるフローチャートの処理が実行される。
【0111】
このような構成によれば、たとえば、画像データを180度回転して出力する場合にも画像の色再現性を向上させることができる。
【0112】
本発明は、上記した実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【0113】
たとえば、上記実施形態では、8×8画素のブロックが圧縮モジュールに順次に入力され、各ブロックに対して圧縮処理が順次に施された。しかしながら、本実施形態とは異なり、たとえば、代表色抽出回路やワークメモリを2つ設け、2つのブロックが並列的に処理されてもよい。
【0114】
また、上記実施形態では、8×8画素のブロックから4つ以下の代表色が抽出された。しかしながら、ブロックから抽出される代表色の数は4つ以下に限定されるものではない。また、隣接する一対のブロックに適用される代表色の数もそれぞれ2つと5つに限定されるものではない。
【0115】
また、上記実施形態では、画像処理装置を備えるプリンタを例に挙げて説明した。しかしながら、本発明の画像処理装置は、MFP(Multi−Function Peripheral)や複写機に備えられてもよい。
【符号の説明】
【0116】
1 プリンタ、
11 CPU、
12 ROM、
13 RAM、
14 画像処理部、
15 データ出力部、
16 印刷部、
17 I/F制御部、
18 ホストI/F、
2 ホストPC、
101 ReadDMA回路、
102 画像処理モジュール、
103 圧縮モジュール、
104 WriteDMA回路、
110 入力バッファ、
120 代表色抽出回路
130 ピクセル評価回路、
140 ワークメモリ、
150 バックアップメモリ、
160 代表色数判定回路、
170 データ制御回路、
180 出力バッファ、
200 8×8画素のブロック、
300 圧縮データ。
【特許請求の範囲】
【請求項1】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、
所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、
前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、
前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有することを特徴とする画像処理装置。
【請求項2】
前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理方法であって、
所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識するステップ(a)と、
前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納するステップ(b)と、を有することを特徴とする画像処理方法。
【請求項6】
前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする請求項5に記載の画像処理方法。
【請求項7】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項5または6に記載の画像処理方法。
【請求項8】
前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする請求項5〜7のいずれか1項に記載の画像処理方法。
【請求項1】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理装置であって、
所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識する認識部と、
前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、
前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有することを特徴とする画像処理装置。
【請求項2】
前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する圧縮データを生成する画像処理方法であって、
所定数より少ない数の代表色を有する第1のブロックと、前記第1のブロックに隣接し前記所定数より多い数の代表色を有する第2のブロックとを認識するステップ(a)と、
前記第2のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第1のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第2のブロック内の位置を特定するための位置特定情報を、前記第1のブロックの前記位置情報格納領域に格納するステップ(b)と、を有することを特徴とする画像処理方法。
【請求項6】
前記第1のブロックの前記代表色情報格納領域は、2つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第1のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする請求項5に記載の画像処理方法。
【請求項7】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第1のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項5または6に記載の画像処理方法。
【請求項8】
前記第2のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第2のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第2のブロック内の位置を示す位置情報が格納されることを特徴とする請求項5〜7のいずれか1項に記載の画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−15970(P2012−15970A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−153314(P2010−153314)
【出願日】平成22年7月5日(2010.7.5)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願日】平成22年7月5日(2010.7.5)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
[ Back to top ]