JP2013183240A - 画像処理装置および画像処理プログラム - Google Patents
画像処理装置および画像処理プログラム Download PDFInfo
- Publication number
- JP2013183240A JP2013183240A JP2012044877A JP2012044877A JP2013183240A JP 2013183240 A JP2013183240 A JP 2013183240A JP 2012044877 A JP2012044877 A JP 2012044877A JP 2012044877 A JP2012044877 A JP 2012044877A JP 2013183240 A JP2013183240 A JP 2013183240A
- Authority
- JP
- Japan
- Prior art keywords
- color
- value
- image data
- pixels
- color number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
- H04N1/644—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Record Information Processing For Printing (AREA)
- Color, Gradation (AREA)
Abstract
【課題】画像の再現性の低下を抑制しつつ、画像データのデータサイズを低減する技術を提供すること。
【解決手段】処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、ブロック内の複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、処理対象画像データから色数低減画像データを生成する低減部であって、色数低減画像データに含まれる各色値の階調数は、処理対象画像データに含まれる各色値の階調数と同じである、低減部と、色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する圧縮部と、を備える。
【選択図】 図3
【解決手段】処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、ブロック内の複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、処理対象画像データから色数低減画像データを生成する低減部であって、色数低減画像データに含まれる各色値の階調数は、処理対象画像データに含まれる各色値の階調数と同じである、低減部と、色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する圧縮部と、を備える。
【選択図】 図3
Description
本発明は、画像データのデータサイズを低減させる技術に関する。
画像データのデータサイズを低減して処理済み画像データを生成する画像処理装置が知られている。この画像処理装置は、例えば、特許文献1では、画像データの画素数を低減して、処理済み画像データを生成する。この結果、処理済み画像データを扱う装置(例えば、印刷装置)に要求されるリソース(メモリ量、処理能力等)を低減することができる。
しかしながら、画像データの画素数を低減して、画像データによって表される画像を印刷などで再現する場合には、画像の再現性が低下し得る。
本発明は、画像の再現性の低下を抑制しつつ、画像データのデータサイズを低減する技術を提供することを目的とする。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
[適用例1]
画像処理装置であって、処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、前記ブロック内の前記複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、前記処理対象画像データから色数低減画像データを生成する低減部であって、前記色数低減画像データに含まれる各色値の階調数は、前記処理対象画像データに含まれる各色値の階調数と同じである、前記低減部と、前記色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する圧縮部とを備える、画像処理装置。
画像処理装置であって、処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、前記ブロック内の前記複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、前記処理対象画像データから色数低減画像データを生成する低減部であって、前記色数低減画像データに含まれる各色値の階調数は、前記処理対象画像データに含まれる各色値の階調数と同じである、前記低減部と、前記色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する圧縮部とを備える、画像処理装置。
上記構成によれば、処理対象画像内のブロックごとに色の個数を低減させる色数低減処理を行うことにより、処理対象画像データから色数低減画像データを生成し、色数低減画像データを用いて圧縮画像データを生成する。この際、色数低減画像データに含まれる各色値の階調数は、処理対象画像データに含まれる各色値の階調数と同じに維持される。この結果、処理対象画像の再現性の低下を抑制しつつ、処理対象画像データのデータサイズを低減できる。
なお、本発明は、種々の形態で実現することが可能であり、画像処理装置の他、例えば、画像データ生成装置や、画像処理システムなどの装置形態で実現することができる。また、画像処理方法など種々の方法形態で実現することができる。さらに、画像処理方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
A.第1実施例:
A−1.計算機と印刷装置の構成:
図1は、第1実施例における計算機と印刷装置の構成を示すブロック図である。計算機100と印刷装置(プリンタとも呼ぶ)200とは、LAN(Local Area Network)500を介して通信可能に接続されている。
A−1.計算機と印刷装置の構成:
図1は、第1実施例における計算機と印刷装置の構成を示すブロック図である。計算機100と印刷装置(プリンタとも呼ぶ)200とは、LAN(Local Area Network)500を介して通信可能に接続されている。
計算機100は、CPU110と、RAMやROMなどの内部記憶装置120と、ハードディスクなどの外部記憶装置130と、マウスやキーボードなどの操作部170と、液晶ディスプレイなどの表示部180と、外部装置(例えば、プリンタ200)との通信のためのインタフェースを含む通信部190と、を備えている。内部記憶装置120は、例えば、後述の印刷データ生成処理で使用される画像データを一時的に保存したり、後述のドライバプログラム132の実行フィールドとして機能する。
外部記憶装置130は、種々のデータを格納し、例えば、ドライバプログラム132と、複数種類のディザマトリクス134と、複数種類のカラープロファイル136と、図示しないアプリケーションプログラムによって作成された画像データ137と、を格納している。ドライバプログラム132は、コンピュータ読み取り可能な記録媒体に記録された形態で提供され得る。
CPU110は、ドライバプログラム132を実行させることにより、プリンタドライバM10として機能する。プリンタドライバM10は、前処理部M12と、低減部M14と、圧縮部M18と、ファイルサイズ判断部M19とを備えている。低減部M14は、区分部M14aを含む。区分部M14aは、特定部M14aaを含む。圧縮部M18は、ハーフトーン処理部M18aを含む。これらの機能ブロックは、後述する印刷データ生成処理を実行する。プリンタドライバM10は、印刷データ生成処理により生成した印刷データを通信部190を介してプリンタ200に送信する。
プリンタ200は、集積回路210と、プリンタエンジン250と、操作パネルや各種のボタンを含む操作部270と、液晶パネルなどの表示部280と、外部装置(例えば、プリンタ200)との通信のためのインタフェースを含む通信部290と、を備えている。
集積回路210は、例えば、ASIC(Application Specific Integrated Circuit)であり、制御回路212と、DRAMなどの揮発性メモリ214と、マスクROMやEEPROMなどの不揮発性メモリ216とを含んでいる。揮発性メモリ214は、制御回路212が用いるバッファ領域を提供する。不揮発性メモリ216は、制御プログラムなどを格納している。制御回路212は、不揮発性メモリ216に保存された制御プログラム(図示せず)を実行することにより、装置制御部M20として機能する。装置制御部M20は、プリンタ200の全体を制御し、例えば、通信部290を介して、計算機100から送信されてくる印刷データを揮発性メモリ214のバッファ領域に一時的に保存し、プリンタエンジン250に送信する。
プリンタエンジン250は、装置制御部M20の制御および装置制御部M20から供給される印刷データに従って、印刷を行う。プリンタエンジン250は、例えば、色材としての黒色のトナーを用いて印刷媒体にドット画像を印刷するモノクロレーザープリンタとしての機能を実現する。すなわち、プリンタエンジン250は、レーザを用いて感光体を露光する露光工程と、露光によって感光体に形成された静電潜像にトナーを感光体に付着させる現像工程と、現像されたトナー像を感光体から印刷媒体に転写する転写工程と、転写されたトナー像を印刷媒体に定着させる定着工程と、を実現する。
A−2.印刷データ生成処理:
図2は、印刷データ生成処理を示すフローチャートである。プリンタドライバM10は、操作部170を介してユーザから印刷指示を受け付けると、印刷対象の画像データ(「入力画像データ」とも呼ぶ)を利用して、印刷データを生成する印刷データ生成処理を開始する。印刷データ生成処理は、ラスタライズ処理、色変換処理、色数低減処理、ハーフトーン処理、および、圧縮処理などの種々の処理を行って、印刷データを生成する処理である。本実施例では、この印刷データは、縦300×横300(dpi)の印刷解像度での印刷に用いられる。以下に、印刷データ生成処理について説明する。
図2は、印刷データ生成処理を示すフローチャートである。プリンタドライバM10は、操作部170を介してユーザから印刷指示を受け付けると、印刷対象の画像データ(「入力画像データ」とも呼ぶ)を利用して、印刷データを生成する印刷データ生成処理を開始する。印刷データ生成処理は、ラスタライズ処理、色変換処理、色数低減処理、ハーフトーン処理、および、圧縮処理などの種々の処理を行って、印刷データを生成する処理である。本実施例では、この印刷データは、縦300×横300(dpi)の印刷解像度での印刷に用いられる。以下に、印刷データ生成処理について説明する。
ステップS3では、前処理部M12は、入力画像データを取得する。入力画像データは、例えば、上述した画像データ137(図1)であり、当該画像データ137を作成したアプリケーションプログラムから取得される。画像データ137は、当該画像データを作成したアプリケーションプログラムごとに異なるデータ形式を有している。
ステップS5では、前処理部M12は、入力画像データを、赤と緑と青との3つの要素の階調値(例えば、256階調)で画素の色を表すビットマップデータ(RGB画素データ)に変換する(ラスタライズ処理)。
ステップS10では、前処理部M12は、RGB画像データを、黒(K)成分の濃度を表す単色画素データ(K画素データとも呼ぶ)で構成されたビットマップデータ(K画像データ、または、モノクロ画像データとも呼ぶ)に変換する(色変換処理)。本実施例では、K画素データは、0〜255の範囲の階調値であり、階調数が大きいほど濃度が高い(黒に近い)無彩色を表す。具体的には、前処理部M12は、例えば、RGB画素データの輝度値Yを算出する。前処理部M12は、輝度値Yを、カラープロファイル136(例えば、ルックアップテーブル)を用いてK画素データに変換する。
ステップS15では、前処理部M12は、K画像データを処理対象画像データに設定する。
ステップS20では、低減部M14は、色数低減フラグをOFFに設定し、色数低減処理回数Jを0に設定する。なお、色数低減フラグや色数低減処理回数Jは、内部記憶装置120に記憶される。
ステップS30では、低減部M14は、色数低減フラグがONであるか否かを判断する。低減部M14は、色数低減フラグがONである場合(ステップS30:Yes)には、色数低減処理を実行する(ステップS40)。また、ステップS50では、低減部M14は、色数低減処理後、色数低減処理回数Jの値に1を足す。この色数低減処理については、後述する。一方、低減部M14は、色数低減フラグがOFFである場合(ステップS30:No)には、後述のステップS60に移行する。低減部M14は、印刷データ生成処理の開始時に、最初にステップS30の判断を行う場合、色数低減フラグがOFFに設定されている(ステップS20)ので、ステップS40およびステップS50の処理を行わず、ステップS60の処理を実行する。
ステップS60では、圧縮部M18のハーフトーン処理部M18aは、直前の処理で色数低減処理が行われなかった場合(ステップS30:No)には、ステップS15で設定された処理対象画像データに対してハーフトーン処理を実行し、色数低減処理が行われた場合(ステップS30:Yes)には、色数低減処理後の画像データ(後述の色数低減画像データ)に対してハーフトーン処理を実行する。具体的には、ハーフトーン処理部M18aは、ハーフトーン処理として、K画素データとディザマトリクス134とを比較することによって、ビットマップデータ(処理対象画像データまたは色数低減画像データ)から、画素ごとのドットの形成状態を表すドットデータを生成する。本実施例では、ドットデータを構成する各画素データは、対応する画素がドットを形成することを表す「1」と、対応する画素がドットを形成しないことを表す「0」と、のいずれかの値を取る二値データである。なお、本実施例では、ハーフトーン処理部M18aは、ドットデータを構成する各画素データの階調数が二値となるようにハーフトーン処理を実行しているが、これに限られず、ドットデータを構成する各画素データの階調数が三値以上となるように、ハーフトーン処理を実行してもよい。
ステップS70では、圧縮部M18は、ドットデータに対して圧縮処理を実行し、圧縮ドットデータを生成する。圧縮部M18は、例えば、圧縮処理として、パターン圧縮処理を実行する。以下に、パターン圧縮処理について説明する。
圧縮部M18は、パターン圧縮処理として、まず、ドットデータを、先頭から、4つずつの画素データのグループに区分する。圧縮部M18は、各グループにおける画素データのデータパターンが、予め定められるデータパターンのいずれに該当するかを判断する。圧縮部M18は、先頭のグループのデータパターンと、2番目のグループのデータパターンとが一致するか否かを判断する。圧縮部M18は、一致する場合には、2番目以降のグループを検索対象として、グループの順序に従ってデータパターンが先頭のグループのデータパターンと一致しなくなるまで、探索を続ける。圧縮部M18は、先頭のグループのデータパターンと一致するデータパターンのグループが連続してU個見つかった場合には、先頭のグループのデータパターンを表す値(A1,B1,C1,D1)と、連続して一致するグループの個数がU個であることを示す識別値[U]とを用いて、(A1,B1,C1,D1)[U]と記述する。本実施例では、[U]は、4ビットで表される。圧縮部M18は、先頭のグループのデータパターンと、2番目のグループのデータパターンとが一致しない場合には、先頭のグループのデータパターンを表す値(A1,B1,C1,D1)と、連続して一致するグループの個数が0個であることを示す識別値[0000]とを用いて、(A1,B1,C1,D1)[0000]と記述する。
すなわち、圧縮部M18は、x番目のグループのデータパターン(Ax,Bx,Cx,Dx)と一致するデータパターンが、連続してU個見つかった場合には、(Ax,Bx,Cx,Dx)[U]と記述する。また、圧縮部M18は、x番目のグループのデータパターン(Ax,Bx,Cx,Dx)と、(x+1)番目のグループのデータパターンとが一致しない場合には、(Ax,Bx,Cx,Dx)[0000]と記述する。
例えば、「(A1,B1,C1,D1), (A2,B2,C2,D2), (A2,B2,C2,D2), (A2,B2,C2,D2), (A2,B2,C2,D2), (A2,B2,C2,D2), (A2,B2,C2,D2)」と表されるデータデータ(7つのデータパターン)は、パターン圧縮されると、(A1,B1,C1,D1)[0000](A2,B2,C2,D2)[0110]と記述される。この場合、データパターンは、それぞれ4ビットで表されるので、圧縮前のデータサイズは、7(データパターンの総数)×4(データパターンのビット数)で28ビットとなる。一方、圧縮後のデータサイズは、2(データパターンの総数)×4(データパターンのビット数)+2(連続して一致するグループの個数を表す識別値の個数)×4(識別値のビット数)で16ビットとなる。このように、パターン圧縮後のデータサイズは、同じデータパターンのグループが連続するほど、圧縮前のデータサイズよりも小さくなる。
ステップS80では、ファイルサイズ判断部M19は、圧縮ドットデータのデータサイズが閾値Th1以下か否かを判断する。ファイルサイズ判断部M19は、圧縮ドットデータのデータサイズが閾値Th1以下の場合(ステップS80:Yes)には、ステップS85の処理へ移行する。ステップS85では、プリンタドライバM10は、圧縮ドットデータを用いて、印刷データを生成する。具体的には、プリンタドライバM10は、圧縮ドットデータに、種々の情報(ヘッダ情報など)を記述して、印刷データを生成し、この印刷データ生成処理を終了する。
ファイルサイズ判断部M19は、圧縮ドットデータのデータサイズが閾値Th1よりも大きい場合(ステップS80:No)には、ステップS90の処理に移行する。
ステップS90では、低減部M14は、色数低減処理回数Jの値が3か否か、すなわち、色数低減処理を3回行ったか否かを判断する。低減部M14は、色数低減処理を3回行った場合(ステップS90:Yes)には、この印刷データ生成処理を終了する。低減部M14は、色数低減処理を3回行っていない場合(ステップS90:No)には、色数低減処理を実行するために、色数低減フラグをONにし(ステップS100)、ステップS30の処理へ移行する。なお、プリンタドライバM10は、色数低減処理を3回行ったにも拘わらずに、圧縮ドットデータのデータサイズが閾値Th1以下とならずに、印刷データ生成処理を終了した場合(ステップS80:No、かつ、ステップS90:Yes)には、例えば、以下のような処理を行ってもよい。すなわち、プリンタドライバM10は、入力画像データの各画素の階調数を低下させる処理、および/または、入力画像データの画素データの数を低減させる処理(例えば、解像度低下処理)を行った後、再度、印刷データ生成処理を行うようにしてもよい。
A−3.色数低減処理:
図3は、色数低減処理を示すフローチャートである。この色数低減処理では、低減部M14が、処理対象画像データの表す処理対象画像において、複数のブロックを設定し、各ブロックを対象に平均化処理を実行する。この平均化処理では、処理前の処理対象画像データに含まれる各階調値の階調数(ビット数)と、処理後に生成される画像データに含まれる各階調値の階調数(ビット数)とが、同じになるように処理が実行される。以下に、色数低減処理、および、色数低減処理における平均化処理について説明する。
図3は、色数低減処理を示すフローチャートである。この色数低減処理では、低減部M14が、処理対象画像データの表す処理対象画像において、複数のブロックを設定し、各ブロックを対象に平均化処理を実行する。この平均化処理では、処理前の処理対象画像データに含まれる各階調値の階調数(ビット数)と、処理後に生成される画像データに含まれる各階調値の階調数(ビット数)とが、同じになるように処理が実行される。以下に、色数低減処理、および、色数低減処理における平均化処理について説明する。
まず、色数低減処理のステップS110では、低減部M14は、色数低減処理回数Jの値が0、1、2のうちのいずれであるかを判断する。低減部M14は、色数低減処理回数Jの値が0である場合(1回目の色数低減処理である場合)(ステップS110:J=0)には、図3(a)に示すように、処理対象画像(図ではF1と示されている)において、縦2画素、横2画素から構成される複数個のブロック(2×2画素のブロックとも呼ぶ。図ではblと示されている)を設定する(ステップS115)。低減部M14は、色数低減処理回数Jの値が1である場合(2回目の色数低減処理である場合)(ステップS110:J=1)には、処理対象画像において、縦3画素、横3画素から構成される複数個のブロック(3×3画素のブロックとも呼ぶ)を設定する(ステップS120)。低減部M14は、色数低減処理回数Jの値が2である場合(3回目の色数低減処理である場合)(ステップS110:J=2)には、処理対象画像において、縦4画素、横4画素から構成されるブロック(4×4画素のブロックとも呼ぶ)を設定する(ステップS125)。本実施例では、各ブロックは、図3(a)に示すように、マトリックス状に配列される。
本実施例では、上述したように、縦300×横300(dpi)の印刷解像度を想定している。この場合、4×4画素のブロックは、縦75×横75(dpi)の1画素分に相当する大きさである。これ以上大きなブロックを用いると、画質の劣化の可能性が高くなるので、本実施例では、4×4画素のブロックを最大の大きさに設定している。
次に、ステップS130では、低減部M14は、図3(b)に示すように、先頭ブロック(図では、blaと示されている)を処理対象ブロックに設定する。本実施例では、先頭ブロックは、図に示すように、処理対象画像の左上に位置するブロックである。
ステップS135では、低減部M14は、処理対象ブロック内に白を表す階調値または黒を表す階調値の画素があるか否かを判断する。白を表す階調値とは、階調値の最小値である0を含む第1の特定の範囲に属する階調値のことである。本実施例では、第1の特定の範囲は、0〜5に設定されている。また、黒を表す階調値とは、階調値の最大値である255を含む第2の特定の範囲に属する階調値のことである。本実施例では、第2の特定の範囲は、251〜255に設定されている。なお、第1の特定の範囲は、最小値(0)のみを含むようにしてもよく、最小値から連続するP(Pは2以上の整数)個の階調値を含むようにしてもよい。また、第2の特定の範囲は、最大値(255)のみを含むようにしてもよく、最大値から連続するP個の階調値を含むようにしてもよい。
低減部M14は、処理対象ブロック内に白または黒を表す階調値の画素がある場合(ステップS135:Yes)には、白及び黒を表す階調値の画素を後述の平均化処理の対象から除外し(ステップS140)、処理対象ブロックにおいて、残った画素の階調値を含むデータグループを設定し、ステップS155の処理へ移行する。一方、低減部M14は、処理対象ブロック内に白または黒を表す階調値の画素がない場合(ステップS135:No)には、処理対象ブロック内の全画素の階調値を含むデータグループを設定し(ステップS150)、ステップS155の処理へ移行する。
図4は、色数低減処理におけるデータグループの設定を説明するための図である。図4では、平均化処理前の処理対象ブロック内における各画素の階調値の配列と、階調値パターンごとの階調値の分布図と、平均化処理後の処理対象ブロック内における各画素の階調値の配列と、が示されている。この分布図では、左方向は、階調値が小さくなる方向であり、右方向は、階調値が大きくなる方向である。なお、図4中に示されるTh2(基準範囲)については、図5の平均化処理で説明する。
図4(a)または(b)の例では、白を表す階調値(図4(a)の階調値「1」)および黒を表す階調値(図4(b)の階調値「253」)は、データグループdgに含まれず、平均化処理の対象から除外される。一方、図4(c)〜(f)の例では、処理対象ブロック内に白および黒を表す階調値が含まれないので、全画素の階調値を含むデータグループdgが、設定されている。
図3のステップS155では、低減部M14は、平均化処理を実行する。この平均化処理については、後述する。
ステップS160では、低減部M14は、平均化処理を最終ブロック(図3(c)に、blxと示されている)まで実行したか否か、すなわち、全ブロックを対象に、平均化処理を実行したか否かを判断する。本実施例では、最終ブロックは、図に示すように、処理対象画像の右下に位置するブロックである。
低減部M14は、平均化処理を最終ブロックまで実行したと判断した場合(ステップS160:Yes)には、色数低減処理を終了する。上述のステップS135〜ステップS160の処理を行うことにより、色数低減画像データが生成される。なお、この色数低減画像データの表す色数低減画像のサイズ(画素数)は、上述のステップS15で設定された処理対象画像データの表す処理対象画像(色数低減画像前の処理対象画像)のサイズ(画素数)と等しい。
一方、低減部M14は、平均化処理を最終ブロックまで実行していないと判断した場合(ステップS160:No)には、次のブロックを処理対象ブロックに設定し(ステップS165)、ステップS135の処理に移行する。本実施例における処理対象ブロックの設定順序は、以下の通りである。すなわち、現在の処理対象ブロックの右側に隣接ブロックがある場合には、そのブロックが次の処理対象ブロックに設定される。現在の処理対象ブロックの右側に隣接ブロックがない場合には、一つ下の段のブロックであり、一番左側のブロックが次の処理対象ブロックに設定される。
A−4.平均化処理:
次に、平均化処理について、説明する。図5は、平均化処理のフローチャートである。図5のステップS210では、低減部M14は、設定済みのデータグループdgの中から一つの処理対象グループを選択する。平均化処理において、最初のステップS210では、図3の色数低減処理のステップS145またはステップS150で設定されたデータグループdgが処理対象グループに選択される。
次に、平均化処理について、説明する。図5は、平均化処理のフローチャートである。図5のステップS210では、低減部M14は、設定済みのデータグループdgの中から一つの処理対象グループを選択する。平均化処理において、最初のステップS210では、図3の色数低減処理のステップS145またはステップS150で設定されたデータグループdgが処理対象グループに選択される。
続いて、ステップS215では、低減部M14は、処理対象グループに含まれる階調値の種類数が一つか否かを判断する。すなわち、低減部M14は、処理対象グループに含まれる各画素の階調値が同じであるか否かを判断する。
低減部M14は、処理対象グループに含まれる階調値の種類数が一つである場合(ステップS215:Yes)には、すなわち、処理対象グループに含まれる各画素の階調値が同じである場合には、後述のステップS295の処理へ移行する。
低減部M14は、処理対象グループに含まれる階調値の種類数が複数ある場合(ステップS215:No)には、すなわち、処理対象グループに含まれる各画素の階調値が同じでない場合には、処理対象グループ内の階調値の最大値Mxと最小値Mnを特定する(ステップS220)。
ステップS230では、低減部M14は、最大値Mxと最小値Mnとの差(最大値Mx−最小値Mn)(階調値範囲とも呼ぶ)を算出し、階調値範囲が、基準範囲Th2内か否かを判断する。本実施例では、基準範囲Th2の値は、64に固定されている。なお、低減部M14は、階調値範囲が、基準範囲Th2と同じ範囲である場合には、階調値範囲が基準範囲Th2内でない、すなわち、階調値範囲が基準範囲Th2外であると判断する。
低減部M14は、色値範囲が、基準範囲Th2内の場合(ステップS230:Yes)には、処理対象グループに含まれる全ての階調値の平均値を算出する(ステップS240)。具体的には、低減部M14は、処理対象グループに含まれる全ての階調値(0〜255)の和を算出し、算出した和を処理対象グループに含まれる階調値の数で割ることにより、平均値を算出する。なお、階調値の平均値は、少数点第1位を四捨五入することによって求めれる。ステップS250では、低減部M14は、処理対象グループに含まれる全ての階調値を平均値に置換し、すなわち、全ての階調値を同一の値(共通の値)に設定し、ステップS295の処理に移行する。
一方、低減部M14が、階調値範囲が基準範囲Th2内でない、すなわち、階調値範囲が基準範囲Th2外であると判断した場合(ステップS230:No)には、処理対象グループに含まれる階調値を変更することなく維持し、区分部M14aは、階調値を小さい順にソートすることによってソートデータを作成する(ステップS260)。ステップS270では、特定部M14aaは、ソートデータにおいて、各階調値と一つ前の階調値との差である隣接階調値差を算出する。ステップS275では、特定部M14aaは、隣接階調値差が最も大きい2つの階調値を特定する。ステップ280では、区分部M14aは、隣接階調値差が最も大きかった2つの階調値の前後で、処理対象グループを2つのグループに区分する。具体的には、区分部M14aは、特定部M14aaが特定した2つの階調値のうちの一方の階調値(第1階調値とも呼ぶ)と、第1階調値よりも小さな階調値とを一方のグループに振り分け、2つの階調値のうちの第1階調値よりも大きな他方の階調値(第2階調値とも呼ぶ)と、第2階調値よりも大きな階調値とを他方のグループに振り分ける。ステップS290では、低減部M14は、区分後のグループを、ステップS210で選択され得る新たなデータグループに設定し、ステップS295に移行する。なお、区分前のグループ(処理対象グループ)は、設定済みのデータグループ(ステップS210で選択対象とされるデータグループ)から除外される。
ステップS295では、低減部M14は、設定された全データグループが処理対象となったか否かを判断する。低減部M14は、全データグループが処理対象となっていない場合(ステップS295:No)には、ステップS210の処理へ移行する。低減部M14は、全データグループが処理対象となった場合(ステップS295:Yes)には、平均化処理を終了する。なお、上述の説明からわかるように、データグループは、平均化処理の開始時点では、1つであるが、ステップS280で、処理対象グループ(データグループ)の区分が行われる度に、1つずつ増加する。
以上のように、第1実施例の色数低減処理は、以下の処理条件で実行される。
処理条件1:基準範囲Th2の値は、固定されている。
処理条件2:圧縮ドットデータのデータサイズが閾値Th1よりも大きいために、色数低減処理を、再び行う場合には、前の色数低減処理で使用したブロックよりも大きなブロックが設定される。
処理条件1:基準範囲Th2の値は、固定されている。
処理条件2:圧縮ドットデータのデータサイズが閾値Th1よりも大きいために、色数低減処理を、再び行う場合には、前の色数低減処理で使用したブロックよりも大きなブロックが設定される。
なお、本実施例では、基準範囲Th2の値は、64に固定されているが、この理由は以下の通りである。すなわち、基準範囲Th2の値(64)は、色差(CIELab色空間における距離)の値(20)に相当する色の相違を表す。色差の値(20)は、色彩ハンドブック第2版に記載された6級の許容色差に対応する。従って、基準範囲Th2の値を64より大きくすると、画質の劣化の可能性が高くなると考えられるからである。
A−5.平均化処理の具体例:
図6および図7は、平均化処理の具体例を説明するための図である。ここでは、2×2画素のブロックで平均化処理を行った場合の具体例(下記具体例1〜4)と、4×4画素のブロックで平均化処理を行った場合の具体例(下記具体例5)を説明する。なお、図6、図7に示される各工程には、平均化処理において対応する処理ステップのステップ番号が示されている。
図6および図7は、平均化処理の具体例を説明するための図である。ここでは、2×2画素のブロックで平均化処理を行った場合の具体例(下記具体例1〜4)と、4×4画素のブロックで平均化処理を行った場合の具体例(下記具体例5)を説明する。なお、図6、図7に示される各工程には、平均化処理において対応する処理ステップのステップ番号が示されている。
具体例1:
図4(c)に示すデータグループdgに対する平均化処理(図5)を、図6(a)を用いて説明する。すなわち、低減部M14は、ステップS210でデータグループdgを処理対象グループ(図6(a)では、dgaと示される)に設定する。低減部M14は、図6(a)に示すように、処理対象グループdgaに含まれる階調値の種類数が、4種類であるので(ステップS215:No)、処理対象グループdga内の階調値の最大値Mx(14)と最小値Mn(11)を特定する(ステップS220)。低減部M14は、特定した最大値Mxと最小値Mnとから階調値範囲(3)を算出する(ステップS230)。低減部M14は、階調値範囲が、基準範囲Th2内であるので(ステップS230:Yes)、処理対象グループdga内の4つの階調値の平均値(13)を算出する(ステップS240)。低減部M14は、図6(a)に示すように、処理対象グループdga内の4つの階調値を平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から1色に低減される。
図4(c)に示すデータグループdgに対する平均化処理(図5)を、図6(a)を用いて説明する。すなわち、低減部M14は、ステップS210でデータグループdgを処理対象グループ(図6(a)では、dgaと示される)に設定する。低減部M14は、図6(a)に示すように、処理対象グループdgaに含まれる階調値の種類数が、4種類であるので(ステップS215:No)、処理対象グループdga内の階調値の最大値Mx(14)と最小値Mn(11)を特定する(ステップS220)。低減部M14は、特定した最大値Mxと最小値Mnとから階調値範囲(3)を算出する(ステップS230)。低減部M14は、階調値範囲が、基準範囲Th2内であるので(ステップS230:Yes)、処理対象グループdga内の4つの階調値の平均値(13)を算出する(ステップS240)。低減部M14は、図6(a)に示すように、処理対象グループdga内の4つの階調値を平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から1色に低減される。
具体例2:
図4(d)に示すデータグループdgに対する平均化処理(図5)を、図6(b)を用いて説明する。すなわち、低減部M14は、ステップS210でデータグループdgを処理対象グループ(図6(b)では、dgbと示される)に設定する。低減部M14は、図6(b)に示すように、処理対象グループdgbに含まれる階調値の種類数が、4種類であるので(ステップS215:No)、処理対象グループdgb内の階調値の最大値Mx(204)と最小値Mn(74)を特定する(ステップS220)。低減部M14は、特定した最大値Mxと最小値Mnとから階調値範囲(130)を算出する。階調値範囲が、基準範囲Th2外であるので(ステップS230:No)、区分部M14aは、階調値を小さい順にソートすることによってソートデータsd1を作成する(ステップS260)。特定部M14aaは、ソートデータを用いて、隣接階調値差を表す差データdf1を作成し(ステップS270)、隣接階調値差が最も大きい2つの階調値を特定する(ステップS275)。区分部M14aは、隣接階調値差が最も大きかった2つの階調値(図では、2つの階調値のうち値が大きな方をクロスハッチで示している)の前後で、処理対象グループdgbを2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後の2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。
図4(d)に示すデータグループdgに対する平均化処理(図5)を、図6(b)を用いて説明する。すなわち、低減部M14は、ステップS210でデータグループdgを処理対象グループ(図6(b)では、dgbと示される)に設定する。低減部M14は、図6(b)に示すように、処理対象グループdgbに含まれる階調値の種類数が、4種類であるので(ステップS215:No)、処理対象グループdgb内の階調値の最大値Mx(204)と最小値Mn(74)を特定する(ステップS220)。低減部M14は、特定した最大値Mxと最小値Mnとから階調値範囲(130)を算出する。階調値範囲が、基準範囲Th2外であるので(ステップS230:No)、区分部M14aは、階調値を小さい順にソートすることによってソートデータsd1を作成する(ステップS260)。特定部M14aaは、ソートデータを用いて、隣接階調値差を表す差データdf1を作成し(ステップS270)、隣接階調値差が最も大きい2つの階調値を特定する(ステップS275)。区分部M14aは、隣接階調値差が最も大きかった2つの階調値(図では、2つの階調値のうち値が大きな方をクロスハッチで示している)の前後で、処理対象グループdgbを2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後の2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。
次に、低減部M14は、グループ1とグループ2に対してステップS210〜ステップS220の処理を行って、それぞれ階調値範囲を算出する(ステップS230)。低減部M14は、グループ1の階調値範囲(22)とグループ2の階調値範囲(1)が、それぞれ基準範囲Th2内であるので(ステップS230:Yes)、グループ1内の2つの階調値の平均値(85)と、グループ2内の2つの階調値の平均値(204)とを算出する。低減部M14は、図6(b)に示すように、処理対象グループdgbにおいて、グループ1に対応する2つの階調値を、グループ1の2つの階調値の平均値に置換し、グループ2に対応する2つの階調値を、グループ2の2つの階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から2色に低減される。
具体例3:
図4(e)に示すデータグループdgに対する平均化処理(図5)を、図6(c)を用いて説明する。区分部M14aは、上述の具体例2の処理と同様にして、処理対象グループ(図6(c)では、dgcと示される)を2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後の2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。低減部M14は、グループ1に対してステップS210〜ステップS220の処理を行って、階調値範囲を算出する(ステップS230)。低減部M14は、グループ1の階調値範囲(47)が、基準範囲Th2内であるので(ステップS230:Yes)、グループ1内の3つの階調値の平均値(73)を算出する。一方、グループ2には、階調値が一つしかないので(ステップS215:Yes)、低減部M14は、グループ2に対して、ステップS220〜ステップS290の処理を実行することなく、1つの階調値をそのまま維持する。低減部M14は、図6(c)に示すように、処理対象グループdgcにおいて、グループ1に対応する3つの階調値を、グループ1の3つの階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から2色に低減される。
図4(e)に示すデータグループdgに対する平均化処理(図5)を、図6(c)を用いて説明する。区分部M14aは、上述の具体例2の処理と同様にして、処理対象グループ(図6(c)では、dgcと示される)を2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後の2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。低減部M14は、グループ1に対してステップS210〜ステップS220の処理を行って、階調値範囲を算出する(ステップS230)。低減部M14は、グループ1の階調値範囲(47)が、基準範囲Th2内であるので(ステップS230:Yes)、グループ1内の3つの階調値の平均値(73)を算出する。一方、グループ2には、階調値が一つしかないので(ステップS215:Yes)、低減部M14は、グループ2に対して、ステップS220〜ステップS290の処理を実行することなく、1つの階調値をそのまま維持する。低減部M14は、図6(c)に示すように、処理対象グループdgcにおいて、グループ1に対応する3つの階調値を、グループ1の3つの階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から2色に低減される。
具体例4:
図4(f)に示すデータグループdgに対する平均化処理(図5)を、図7(a)を用いて説明する。区分部M14aは、上述の具体例2の処理と同様にして、処理対象グループ(図7(a)では、dgdと示される)を2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分した2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。区分部M14aは、さらに、上述の具体例2の処理と同様にして、処理対象グループとしてのグループ1を2つのグループ(グループ1−1とグループ1−2)に区分する(ステップS280)。
図4(f)に示すデータグループdgに対する平均化処理(図5)を、図7(a)を用いて説明する。区分部M14aは、上述の具体例2の処理と同様にして、処理対象グループ(図7(a)では、dgdと示される)を2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分した2つのグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。区分部M14aは、さらに、上述の具体例2の処理と同様にして、処理対象グループとしてのグループ1を2つのグループ(グループ1−1とグループ1−2)に区分する(ステップS280)。
低減部M14は、グループ1−1とグループ1−2に対して、ステップS210〜ステップS220の処理を行って、それぞれ階調値範囲を算出する(ステップS230)。低減部M14は、グループ1−1の階調値範囲(15)が、基準範囲Th2内であるので(ステップS230:Yes)、グループ1−1内の2つの階調値の平均値(57)を算出する。一方、グループ2およびグループ1−2には、階調値が一つしかないので(ステップS215:Yes)、低減部M14は、グループ2およびグループ1−2に対して、ステップS220〜ステップS290の処理を実行することなく、1つの階調値をそのまま維持する。低減部M14は、図7(a)に示すように、処理対象グループdgdにおいて、グループ1−1に対応する2つの階調値を、グループ1−1の全階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、4色から3色に低減される。
具体例5:
処理対象ブロックの大きさが、4×4画素に設定された場合(3回目の色数低減処理時)の平均化処理(図5)を、図7(b)を用いて説明する。すなわち、低減部M14は、ステップS210で、4×4画素のブロックにおけるデータグループを処理対象グループ(図7(b)では、dgeと示される)に設定する。なお、この処理対象グループdgeに含まれる階調値の種類数は、図7(b)に示すように、階調値(49)と階調値(203)とがそれぞれ2つずつ含まれるので、14種類である。区分部M14aは、上述の具体例2の処理と同様に、処理対象グループdgeを2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後のグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。低減部M14は、グループ1とグループ2に対しても、上述の具体例2の処理と同様にして、グループ1内の8つの階調値の平均値(71)と、グループ2内の8つの階調値の平均値(216)とを算出する(S240)。図7(b)に示すように、処理対象グループdgeにおいて、グループ1に対応する8つの階調値を、グループ1の8つの階調値の平均値に置換し、グループ2に対応する8つの階調値を、グループ2の8つの階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、14色から2色に低減される。
処理対象ブロックの大きさが、4×4画素に設定された場合(3回目の色数低減処理時)の平均化処理(図5)を、図7(b)を用いて説明する。すなわち、低減部M14は、ステップS210で、4×4画素のブロックにおけるデータグループを処理対象グループ(図7(b)では、dgeと示される)に設定する。なお、この処理対象グループdgeに含まれる階調値の種類数は、図7(b)に示すように、階調値(49)と階調値(203)とがそれぞれ2つずつ含まれるので、14種類である。区分部M14aは、上述の具体例2の処理と同様に、処理対象グループdgeを2つのグループ(グループ1とグループ2)に区分する(ステップS280)。低減部M14は、区分後のグループを、ステップS210で選択され得る新たなデータグループに設定する(ステップS290)。低減部M14は、グループ1とグループ2に対しても、上述の具体例2の処理と同様にして、グループ1内の8つの階調値の平均値(71)と、グループ2内の8つの階調値の平均値(216)とを算出する(S240)。図7(b)に示すように、処理対象グループdgeにおいて、グループ1に対応する8つの階調値を、グループ1の8つの階調値の平均値に置換し、グループ2に対応する8つの階調値を、グループ2の8つの階調値の平均値に置換する(ステップS250)。以上のようにして、ブロック内の階調値が表す色は、14色から2色に低減される。
以上のように、色数低減処理において、色数低減処理で用いるブロック内の画素の個数がK(Kは、3以上の整数)個の場合には、ブロック内の色数(色の個数)が、2〜(K−1)個のうちのいずれかに低減され得る。
上記実施例では、計算機100(低減部M14)は、色数低減処理(平均化処理:図5)を行うことにより、処理対象画像データから色数低減画像データを生成し、この色数低減画像データを用いて、圧縮印刷データを生成する。この結果、入力画像(処理対象画像)のデータサイズを低減できる。また、計算機100は、色数低減処理(平均化処理)で、処理対象ブロックにおける処理対象グループ内の全階調値の平均値を算出し(図5:ステップS240)、処理対象グループ内の全階調値を算出した平均値に置換する処理(ステップS250)を実行することで、処理対象画像データから色の個数を低減するようにしている。こうすれば、平均化処理前の処理対象画像データに含まれる各階調値の階調数(ビット数)と、色数低減画像データに含まれる各階調値の階調数(ビット数)とを、同じに設定することができる。すなわち、平均化処理前の処理対象画像で表現可能な色の数と、色数低減画像データで表される色数低減画像で表現可能な色の数とを、同じに設定することができる。すなわち、色数低減処理前の画像データ(対象画像データ)と処理後の画像データ(色数低減画像データ)とに含まれる階調値のビット数が変わらないので、処理前の画像データと比較して処理後の画像データで表現される色の種類数は、低減するが、処理後の画像データによって表される画像の各画素は、処理前の画像データによって表される各画素と同様に、256階調のうちのいずれかの階調を表現可能である。この結果、処理対象画像(入力画像)の再現性の低下を抑制することができる。以上より、本実施例の計算機100は、処理対象画像(入力画像)の再現性の低下を抑制しつつ、処理対象画像(入力画像)のデータサイズを低減できる。
上記実施例では、計算機100(低減部M14)は、R回目(Rは、1または2)の色数低減処理(図3)後の色数低減画像データを用いて生成される圧縮ドットデータのデータサイズが閾値Th1よりも大きい場合(図2:S80:No)には、(R+1)回目の色数低減処理において、R回目の色数低減処理で設定されたブロックよりも大きいブロックを設定して(図3:S120またはS125)、平均化処理(図5)を実行する。こうすれば、処理対象画像データのデータサイズをより低減し、その結果、閾値Th1よりも小さいデータサイズの圧縮ドットデータを生成可能になる。
上記実施例では、(R+1)回目の色数低減処理で設定されるブロックの大きさは、R回目の色数低減処理で設定されるブロックの大きさよりも大きい。すなわち、(R+1)回目の色数低減処理で設定されるブロックに含まれる画素数は、R回目の色数低減処理で設定されるブロックに含まれる画素数よりも多い。この結果、処理対象画像において、ブロック内の複数個の画素が構成する領域が広くなることにより、処理対象画像の広い領域で、色を同一に設定することができ、処理対象画像の色の個数をより低減することができる。
上記実施例では、計算機100(低減部M14)は、色数低減処理(平均化処理:図5)において、階調値範囲が、基準範囲Th2内である場合(ステップS230:Yes)には、処理対象ブロックにおける処理対象グループ内の全階調値の平均値を算出し(図5:ステップS240)、処理対象グループ内の全階調値を算出した平均値に置換する処理(ステップS250)を実行する。こうすれば、基準範囲Th2を基準として、処理対象ブロック内の2つ以上の画素の階調値(処理対象グループ内の全階調値)を、同一の値に設定するのか否かが決定され得る。従って、基準範囲を変更することによって、低減する色の個数を調整することができる。
上記実施例では、計算機100(低減部M14)は、色数低減処理(平均化処理:図5)において、階調値範囲が、基準範囲Th2外である場合(ステップS230:Yes)には、階調値が小さい順に並んだソートデータを用いて、隣接階調値差を表す差データを作成し(ステップS270)、隣接階調値差に基づいて、処理対象グループを2つのグループに区分する(ステップS280)。こうすれば、処理対象ブロック内で近い階調値同士を同一の値に設定することができる。この結果、処理対象画像の再現性の低下を抑制することができる。
上記実施例では、計算機100(低減部M14)は、色数低減処理(平均化処理:図5)において、隣接階調値差が最も大きかった2つの階調値を特定し、特定した2つの階調値のうちの第1階調値と、第1階調値よりも小さな階調値とを一方のグループに振り分け、特定した2つの階調値のうちの第1階調値よりも大きな第2階調値と、第2階調値よりも大きな階調値とを他方のグループに振り分ける(ステップS280)。従って、処理対象ブロック内で最も離れた2つ階調値を異なる階調値に設定することができる。この結果、処理対象画像の再現性の低下を抑制することができる。
白を表す階調値の画素や黒を表す階調値の画素は、例えば、文字などに多用され、画像におけるエッジ部分を構成し易い。そこで、上記実施例では、計算機100(低減部M14)は、色数低減処理(図3)において、処理対象ブロック内に白または黒を表す階調値の画素がある場合(ステップS135:Yes)には、白及び黒を表す階調値の画素を後述の平均化処理の対象から除外する(ステップS140)。すなわち、白または黒を表す階調値は、平均化処理で変更されない(処理対象画像データにおける階調値に維持される)。従って、例えば、エッジ部分の再現性が低下することを抑制することができる。
上記実施例では、色数低減処理(図3)で生成される色数低減画像データの表す色数低減画像の画素数は、色数低減画像前の処理対象画像の画素数と同じである。この結果、例えば、処理対象画像のエッジ部分の再現性の低下を抑制することができる。
上記実施例では、色数低減処理後の色数低減画像データに対して、ディザマトリクスを用いて、ハーフトーン処理(図2:S60)を行う。こうすれば、ハーフトーン処理によって生成されるドットデータに、同じデータパターンのグループが連続して形成されやすくなり、圧縮部M18による圧縮処理の圧縮率を高めることができる。
本実施例の圧縮ドットデータは、圧縮画像データの例である。本実施例の色数低減画像データに含まれる階調値は、色数低減画像データに含まれる色値の例である。本実施例の隣接階調値は、隣接色値の例である。本実施例において、R回目(Rは、1または2)の色数低減処理で設定されるブロックの大きさが、第1の処理条件の例であり、(R+1)回目の色数低減処理で設定されるブロックの大きさが、第2の処理条件の例である。
B.第2実施例:
第2実施例の色数低減処理は、以下の処理条件で実行される。
処理条件1:ブロックの大きさは、固定されている。ブロックの大きさとしては、例えば、4×4画素のブロックを用いる。
処理条件2:色数低減処理を再び行う場合には、基準範囲Th2の値を変更する。以下に、第2実施例における色数低減処理を説明する。
第2実施例の色数低減処理は、以下の処理条件で実行される。
処理条件1:ブロックの大きさは、固定されている。ブロックの大きさとしては、例えば、4×4画素のブロックを用いる。
処理条件2:色数低減処理を再び行う場合には、基準範囲Th2の値を変更する。以下に、第2実施例における色数低減処理を説明する。
図8は、第2実施例における色数低減処理を示すフローチャートである。図8に示す第2実施例の色数低減処理では、第1実施例の色数低減処理(図3)におけるステップS115〜ステップS125の処理に代えて、ステップS115a〜ステップS125aの処理が実施される。第2実施例の色数低減処理において、第1実施例の色数低減処理と同様の処理については、同様のステップ番号を付して説明を省略する。
第2実施例の色数低減処理(図8)では、低減部M14は、色数低減処理回数Jの値が0である場合(1回目の色数低減処理である場合)(ステップS110:J=0)には、基準範囲Th2をU1(U1は、1以上の整数)に設定する(ステップS115a)。低減部M14は、色数低減処理回数Jの値が1である場合(2回目の色数低減処理である場合)(ステップS110:J=1)には、基準範囲Th2をU2(U2は、U1より大きな整数)に設定する(ステップS120a)。低減部M14は、色数低減処理回数Jの値が2である場合(3回目の色数低減処理である場合)(ステップS110:J=2)には、基準範囲Th2をU3(U3は、U2より大きな整数)に設定する(ステップS125a)。なお、例えば、U1が16に設定され、U2が32に設定され、U3が64に設定される。
上記実施例では、計算機100(低減部M14)は、R回目(Rは、1または2)の色数低減処理(図8)後の色数低減画像データを用いて生成される圧縮ドットデータのデータサイズが閾値Th1よりも大きい場合(図2:S80:No)には、(R+1)回目の色数低減処理において、R回目の色数低減処理で設定された基準範囲Th2よりも広い基準範囲Th2を設定して(図8:S120aまたはS125a)、平均化処理(図5)を実行する。こうすれば、処理対象画像データのデータサイズをより低減し、その結果、閾値Th1よりも小さいデータサイズの圧縮ドットデータを生成可能になる。
上記第2実施例では、(R+1)回目の色数低減処理(図8)で設定される基準範囲Th2は、R回目の色数低減処理で設定される基準範囲Th2よりも広い。この結果、(R+1)回目の色数低減処理では、処理対象ブロック内で多くの画素の色を同一に設定することができ、処理対象画像の色の個数をより低減することができる。なお、本実施例において、R回目の色数低減処理で設定される基準範囲の広さが、第1の処理条件の例であり、(R+1)回目の色数低減処理で設定される基準範囲の広さが、第2の処理条件の例である。
C.変形例:
(1)上記実施例では、低減部M14は、(R+1)回目(Rは、1または2)の色数低減処理で、処理対象画像データとして、印刷データ生成処理(図2)のステップS15で設定した処理対象画像データを用いるようにしているが、これに限られるものではない。例えば、低減部M14は、(R+1)回目の色数低減処理で、R回目の色数低減処理のステップS170で設定した色数低減画像データを、処理対象画像データとして用いるようにしてもよい。
(1)上記実施例では、低減部M14は、(R+1)回目(Rは、1または2)の色数低減処理で、処理対象画像データとして、印刷データ生成処理(図2)のステップS15で設定した処理対象画像データを用いるようにしているが、これに限られるものではない。例えば、低減部M14は、(R+1)回目の色数低減処理で、R回目の色数低減処理のステップS170で設定した色数低減画像データを、処理対象画像データとして用いるようにしてもよい。
(2)上記実施例では、低減部M14は、単色画素データで構成されるK画像データ(モノクロ画像データ)を用いて、色数低減処理を実行しているが、これに限られるものではない。例えば、低減部M14は、モノクロ画像データではなく、カラー画像データを用いて、色数低減処理を実行してもよい。カラー画像データとしては、例えば、RGB画像データや、シアンとマゼンタとイエロとブラックとの4つの色成分の階調値(例えば、0〜255の256階調)で画素の色を表すCMYK画像データを用いてもよい。
(3)上記実施例では、低減部M14は、平均化処理(図5)で、処理対象グループ内の全階調値を同一の値(処理グループ内の階調値の平均値)に置換するか否かの判断(置換判断とも呼ぶ)を、階調値範囲に基づいて、行っているが、これに限れるものではない。例えば、低減部M14は、階調値範囲に代えて、Lab空間における距離を表す値に基づいて、置換判断を行うようにしてもよい。一般的に言えば、低減部M14は、処理対象グループ内の画素の色の相違を表す相違値に基づいて、置換判断することが好ましい。
(4)上記実施例では、圧縮部M18は、色数低減画像データをハーフトーン処理して生成されたドットデータを圧縮処理するようにしているが、これに限られるものではない。例えば、圧縮部M18は、色数低減画像データを、そのまま圧縮処理して、圧縮済み色数低減画像データを生成するようにしてもよい。このような処理は、例えば、圧縮済み色数低減画像データを、データ通信で送受信する場合や、記憶装置に長時間格納する場合などに実行され得る。
(5)上記実施例では、圧縮部M18は、ドットデータの圧縮処理として、パターン圧縮を実行していたが、これに限られるものはでない。圧縮部M18が用いる圧縮方法は、例えば、マトリックス状に配列されたドットデータにおける横(ライン)方向や縦方向の少なくとも一方に同じデータパターンが連続して配置されている場合に、圧縮することが可能な手法であればよい。このような圧縮方法としては、例えば、ハフマン符号化、ランレングス符号化、および、Deflate圧縮などを用いるようにしてもよい。
(6)上記実施例では、低減部M14は、色数低減処理(平均化処理)において、ソートデータにおける隣接階調値差が最も大きな階調値の前後で、処理対象グループを2つのグループに分割するようにしているが、これに限られるものではない。例えば、低減部M14は、ソートデータにおける隣接階調値差が、予め定められる規定値より、大きな階調値の前後で、処理対象グループを分割するようにしてもよい。
(7)上記実施例では、低減部M14は、圧縮ドットデータのデータサイズが閾値Th1以下に低減できない場合(図2:ステップS80:No)には、色数低減処理を、最大で3回実行し得るが、これに限られるものでない。例えば、低減部M14は、圧縮ドットデータのデータサイズが閾値Th1以下に低減できない場合に、S回(Sは、2または4以上の整数)の色数低減処理を実行するようにしてもよい。この場合、S回目の色数低減処理では、ブロックの大きさを、(S−1)回目の色数低減処理に設定されたブロックの大きさよりも大きく設定する処理、および/または、(S−1)回目の色数低減処理に設定された基準範囲の広さよりも広く設定する処理が行われる。
(8)上記第1実施例では、低減部M14は、色数低減処理を複数回行う場合には、色数低減処理を実行する度に、ブロックの大きさを前回の色数低減処理で設定されたブロックの大きさよりも大きく設定している。ここで、ブロックの大きさ(ブロックを構成する画素の数N)は、任意であり、適宜変更され得る。一般的には、低減部M14は、T回目の色数低減処理では、N1個(N1は、2以上の整数)の画素で構成される第1種のブロックを用い、(T+1)回目の色数低減処理では、N1個より多いN2個(N2は、整数)の画素で構成される第2種のブロックを用いることが好ましい。
また、上記第2実施例では、低減部M14は、色数低減処理を複数回行う場合には、色数低減処理を実行する度に、基準範囲の広さを前回の色数低減処理で設定された基準範囲の広さよりも広く設定している。ここで、基準範囲の広さは、任意であり、適宜変更され得る。
さらには、ブロックの大きさの変更(第1実施例)と基準範囲の広さの変更(第2実施例)とを組み合わせても良い。例えば、低減部M14は、色数低減処理を複数回行う場合に、T回目(Tは、2以上の整数)の色数低減処理で、ブロックの大きさと基準範囲の広さのどちらか一方を変更した場合には、(T+1)回目の色数低減処理で、ブロックの大きさと基準範囲の広さのうちの他方を変更するようにしてもよい。また、ブロックの大きさや基準範囲以外の他の処理条件を色数低減処理に採用する場合には、当該他の処理条件を変更してもよい。他の処理条件としては、例えば、1回の色数低減処理において、階調値を変更する画素数の制限を設けてもよい。この場合には、色数低減処理を繰り返す度に、画素数の制限値を増加させてもよい。
一般的に言えば、低減部M14は、(T+1)回目の色数低減処理の処理条件を、T回目の色数低減処理の処理条件と比較して、処理対象画像のブロック内の複数個の画素が表す色の個数を低減し易い条件に、変更することが好ましい。言い換えれば、(T+1)回目の色数低減処理の処理条件は、当該処理条件で処理後の色数低減画像データを圧縮した際に、T回目の色数低減処理の処理条件と比較して、圧縮率が高くなるような条件であることが好ましい。
一般的に言えば、低減部M14は、(T+1)回目の色数低減処理の処理条件を、T回目の色数低減処理の処理条件と比較して、処理対象画像のブロック内の複数個の画素が表す色の個数を低減し易い条件に、変更することが好ましい。言い換えれば、(T+1)回目の色数低減処理の処理条件は、当該処理条件で処理後の色数低減画像データを圧縮した際に、T回目の色数低減処理の処理条件と比較して、圧縮率が高くなるような条件であることが好ましい。
(9)上記実施例では、低減部M14は、色数低減処理で、基準範囲を用いて、色数を低減しているが、これに限られず、基準範囲を用いることなく、色数を低減してもよい。例えば、処理対象ブロックに含まれる階調値のうち、最大の階調値と2番目に大きな階調値とを同一の値に置換することにより、色数を低減するようにしてもよい。
(10)上記第1実施例では、低減部M14は、色数低減処理を最大3回まで実行可能であるが、これに限らず、色数低減処理を1回のみ実行可能としてもよい。例えば、低減部M14は、許容できる最大の処理条件(例えば、4×4画素のブロック、かつ、基準範囲Th2(64))で1回のみ色数低減処理を実行してもよい。
(11)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
100...計算機、110...CPU、120...内部記憶装置、130...外部記憶装置、170...操作部、180...表示部、190...通信部、200...プリンタ、210...集積回路、212...制御回路、214...揮発性メモリ、216...不揮発性メモリ、250...プリンタエンジン、270...操作部、280...表示部、290...通信部、M10...プリンタドライバ、M20...装置制御部、M12...前処理部、M14...低減部、M14a...区分部、M14aa...特定部、M18...圧縮部、M18a...ハーフトーン処理部、M19...ファイルサイズ判断部
Claims (10)
- 画像処理装置であって、
処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、前記ブロック内の前記複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、前記処理対象画像データから色数低減画像データを生成する低減部であって、前記色数低減画像データに含まれる各色値の階調数は、前記処理対象画像データに含まれる各色値の階調数と同じである、前記低減部と、
前記色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する圧縮部と、
を備える、画像処理装置。 - 請求項1に記載の画像処理装置であって、
前記低減部は、第1の処理条件に従って第1の前記色数低減処理を実行し、前記第1の色数低減処理後の前記圧縮画像データのデータサイズが閾値よりも大きい場合に、前記第1の処理条件とは異なる第2の処理条件に従って第2の前記色数低減処理を実行し、
前記第2の色数低減処理で用いられる前記処理対象画像データは、前記第1の色数低減処理前の前記処理対象画像データ、または、前記第1の色数低減処理後の前記色数低減画像データであり、
前記第2の処理条件は、前記第1の処理条件と比較して、前記ブロック内の前記複数個の画素が表す色の個数を低減し易い条件である、画像処理装置。 - 請求項2に記載の画像処理装置であって、
前記低減部は、
前記第1の処理条件に従った前記第1の色数低減処理では、N1個(N1は2以上の整数)の画素で構成される第1種の前記ブロックを用い、
前記第2の処理条件に従った前記第2の色数低減処理では、前記N1個よりも多いN2個(N2は整数)の画素で構成される第2種の前記ブロックを用いる、画像処理装置。 - 請求項2または3に記載の画像処理装置であって、
前記色数低減処理は、前記ブロックに含まれる前記複数個の画素のうちの2つの画素の間の色の相違を表す相違値が基準範囲内の値である場合に、当該2つの画素の色値を同一の値に設定する処理を含み、
前記低減部は、
前記第1の処理条件に従った前記第1の色数低減処理では、第1の前記基準範囲を用い、
前記第2の処理条件に従った前記第2の色数低減処理では、前記第1の基準範囲よりも広い第2の前記基準範囲を用いる、画像処理装置。 - 請求項1ないし3のいずれかに記載の画像処理装置であって、
前記低減部は、前記ブロックに含まれる前記複数個の画素のうちの2つの画素の間の色の相違を表す相違値が基準範囲外の値である場合に、当該2つの画素の色値を維持する処理と、前記ブロックに含まれる前記2つの画素の間の前記相違値が前記基準範囲内の値である場合に、当該2つの画素の色値を同一の値に設定する処理とを含む、画像処理装置。 - 請求項5に記載の画像処理装置であって、
前記2つの画素の間の前記相違値は、前記2つの画素の色値の差であり、
前記低減部は、
前記ブロックに含まれる前記複数個の画素の色値のうちの最小値と最大値との差が、前記基準範囲外の値である場合には、各画素の色値を大きさ順に並べた場合に隣合う色値の差である隣接色値差に基づいて、前記ブロック内に含まれる前記複数個の画素を第1のグループと第2のグループとを含む2以上のグループに区分する区分部を備え、
前記低減部は、前記第1のグループに含まれる画素の色値を第1の値に設定し、前記第2のグループに含まれる画素の色値を前記第1の値と異なる第2の値に設定する、画像処理装置。 - 請求項6に記載の画像処理装置であって、
前記区分部は、
前記ブロックに含まれる前記複数個の画素の色値の中から前記隣接色値の差が最も大きい2つの色値を特定する特定部を備え、
前記区分部は、前記2つの色値のうちの第1色値と前記第1色値よりも小さな色値とを前記第1のグループに振り分け、前記2つの色値のうちの前記第1色値よりも大きな第2色値と前記第2色値よりも大きな色値とを前記第2のグループに振り分け、
前記第2の値は、前記第1の値よりも大きな値である、画像処理装置。 - 請求項1ないし7に記載の画像処理装置であって、
前記低減部は、前記処理対象画像の各画素が取り得る色値のうち、最大値、または、最小値のいずれか一方を含む特定の範囲に属する画素の色値を、維持する、画像処理装置。 - 請求項1ないし8のいずれかに記載の画像処理装置であって、
前記処理対象画像を構成する画素数と、前記色数低減画像データによって表される色低減画像を構成する画素数とは、等しい、画像処理装置。 - 画像処理プログラムであって、
処理対象画像データで表される処理対象画像に含まれる複数個の画素で構成されるブロックごとに、前記ブロック内の前記複数個の画素が表す色の個数を低減させる色数低減処理を行うことによって、前記処理対象画像データから色数低減画像データを生成する機能であって、前記色数低減画像データに含まれる各色値の階調数は、前記処理対象画像データに含まれる各色値の階調数と同じである、前記機能と、
前記色数低減画像データを用いた圧縮処理を実行することによって、圧縮画像データを生成する機能と、
をコンピュータ上で実現させるための画像処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012044877A JP2013183240A (ja) | 2012-02-29 | 2012-02-29 | 画像処理装置および画像処理プログラム |
US13/763,969 US9002104B2 (en) | 2012-02-29 | 2013-02-11 | Image processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012044877A JP2013183240A (ja) | 2012-02-29 | 2012-02-29 | 画像処理装置および画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013183240A true JP2013183240A (ja) | 2013-09-12 |
Family
ID=49002939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012044877A Pending JP2013183240A (ja) | 2012-02-29 | 2012-02-29 | 画像処理装置および画像処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9002104B2 (ja) |
JP (1) | JP2013183240A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5664980B2 (ja) * | 2012-06-19 | 2015-02-04 | コニカミノルタ株式会社 | 画像処理装置及び画像圧縮方法 |
US8942473B2 (en) * | 2012-07-25 | 2015-01-27 | Ko Hung Lin | Image processing method and display apparatus |
JP6191505B2 (ja) * | 2014-02-28 | 2017-09-06 | ブラザー工業株式会社 | 画像処理装置、及び、画像処理プログラム |
US11790564B2 (en) * | 2020-03-30 | 2023-10-17 | Google Llc | Encoders for improved image dithering |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09327015A (ja) * | 1996-06-06 | 1997-12-16 | Matsushita Electric Ind Co Ltd | 画像圧縮方法 |
JP4063017B2 (ja) | 2002-08-30 | 2008-03-19 | 富士ゼロックス株式会社 | 画像形成システム、バックエンドプロセッサ、フロントエンドプロセッサ |
JP2005080047A (ja) | 2003-09-02 | 2005-03-24 | Fuji Photo Film Co Ltd | 画像格納システム |
JP2007312126A (ja) * | 2006-05-18 | 2007-11-29 | Toshiba Corp | 画像処理回路 |
JP4978598B2 (ja) * | 2008-09-17 | 2012-07-18 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理方法、画像処理装置、および画像処理プログラム |
JP2010074676A (ja) | 2008-09-19 | 2010-04-02 | Konica Minolta Business Technologies Inc | 画像圧縮装置および画像伸長装置 |
JP5132517B2 (ja) * | 2008-10-22 | 2013-01-30 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
JP4698743B2 (ja) * | 2009-01-22 | 2011-06-08 | シャープ株式会社 | 画像圧縮方法、画像圧縮装置、画像形成装置、コンピュータプログラム及び記録媒体 |
JP5393574B2 (ja) * | 2010-04-08 | 2014-01-22 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
JP5595151B2 (ja) * | 2010-07-13 | 2014-09-24 | キヤノン株式会社 | 画像処理装置、画像処理装置における圧縮方法、および、プログラム |
-
2012
- 2012-02-29 JP JP2012044877A patent/JP2013183240A/ja active Pending
-
2013
- 2013-02-11 US US13/763,969 patent/US9002104B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9002104B2 (en) | 2015-04-07 |
US20130223728A1 (en) | 2013-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10043118B2 (en) | Image processing apparatus, image processing method, printing medium and storage medium | |
EP3664429B1 (en) | Image processing apparatus, image processing method, and program | |
US10706340B2 (en) | Image processing apparatus and method for controlling the same with character attribute indicating that pixel is pixel of a character | |
JP4548528B2 (ja) | 画像処理装置及びエッジ分類方法 | |
JP4498233B2 (ja) | 画像処理装置および画像処理方法 | |
JP4527633B2 (ja) | 階調処理装置および方法 | |
JP6658032B2 (ja) | 画像処理装置、画像形成装置、画像処理方法およびプログラム | |
JP4424404B2 (ja) | 圧縮方法、伸張方法及び画像処理装置 | |
JP4793185B2 (ja) | 画像処理装置およびプログラム | |
JP2013183240A (ja) | 画像処理装置および画像処理プログラム | |
JP2000203064A (ja) | 画像処理方法 | |
JP2015216455A (ja) | 画像処理装置、画像処理方法及びプログラム。 | |
US10071564B2 (en) | Control apparatus, image processing method and non-transitory recording medium storing image processing program | |
JP2015156570A (ja) | 色処理装置、画像形成装置およびプログラム | |
JP2009010651A (ja) | 画像処理方法、画像処理装置、画像データ圧縮装置、およびコンピュータプログラム | |
US20150178606A1 (en) | Image processing apparatus | |
JP5151708B2 (ja) | 画像処理装置および画像処理プログラム | |
JP7313879B2 (ja) | 画像処理装置、画像処理方法ならびにプログラム | |
JP6525518B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
US8842340B2 (en) | Printing system and program for executing halftone processing on representative values assigned to pixel group | |
US10384465B2 (en) | Control apparatus that controls print executing section that is capable of forming dots in different sizes | |
US8320669B2 (en) | Image processing method, image processing apparatus, image data compression device, and computer program | |
JP4853270B2 (ja) | 色域生成装置、色域生成方法、及び色域生成プログラム | |
US20240314259A1 (en) | Image processing apparatus and control method thereof | |
JP2021002307A (ja) | 情報処理装置、画像形成システム、画像データ転送方法及びプログラム |