(57)【特許請求の範囲】
【請求項１】
圧縮データを伸長する伸長部と、前記伸長部により伸長が行われた第２のｂｉｔ精度の伸長データを印刷のためのデータに変換する変換処理を行う処理部とを備える処理装置であって、
前記伸長部は、
前記第２のｂｉｔ精度より低い第１のｂｉｔ精度の画像データに非可逆圧縮処理が実行されることで得られた前記圧縮データを入力する入力手段と、
前記入力手段で入力した圧縮データを前記第１のｂｉｔ精度より高い前記第２のｂｉｔ精度で伸長するための演算を行う演算手段と、
前記演算手段による前記演算により伸長された伸長データに含まれる画素値である、前記第２のｂｉｔ精度における所定の第１の値が、前記第２のｂｉｔ精度において白または黒に対応する所定の第２の値になるように、前記伸長データを補正する補正手段と、
前記補正手段により補正された前記第２のｂｉｔ精度の前記伸長データを、前記処理部に出力する出力手段と
を備え、
前記第１の値は、前記第１のｂｉｔ精度の画像データに含まれる画素値である白または黒に対応する値が、前記非可逆圧縮処理により圧縮され、前記演算手段による前記演算により伸長され、かつ、前記第２のｂｉｔ精度となった場合の値であることを特徴とする処理装置。
【請求項２】
前記圧縮データは、量子化を伴う非可逆圧縮処理によって生成された圧縮データである
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記非可逆圧縮処理は、ＪＰＥＧ圧縮処理であり、
前記演算手段は、ＪＰＥＧ伸長のための演算を行う
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記処理部は、前記出力手段により出力された、ＪＰＥＧ伸長された伸長データと、ＪＰＥＧとは異なる圧縮形式で圧縮され且つ前記補正手段による補正は行われないデータに対する変換処理とに共通に用いられる
ことを特徴とする請求項３に記載の処理装置。
【請求項５】
前記補正手段は、前記圧縮データのパラメータ値に基づいて、前記伸長データの値を補正する
ことを特徴とする請求項１乃至４のいずれか１項に記載の処理装置。
【請求項６】
前記補正手段は、
前記パラメータ値が所定値である場合では、前記伸長データを補正し、
前記パラメータ値が所定値でない場合には、前記伸長データを補正しない
ことを特徴とする請求項５に記載の処理装置。
【請求項７】
前記パラメータ値を示す信号を入力する入力手段を更に備える
ことを特徴とする請求項５または６に記載の処理装置。
【請求項８】
前記演算手段は、前記圧縮データを伸長するための演算として、第１の色空間から第２の色空間へ変換する色変換を含むことを特徴とする請求項１に記載の処理装置。
【請求項９】
前記処理部は、前記圧縮データを生成したデバイスのデバイス依存色空間から前記伸長データを出力するプリンタのプリンタ依存色空間への色変換と量子化を行う
ことを特徴とする請求項１乃至８のいずれか１項に記載の処理装置。
【請求項１０】
前記プリンタは、プリントヘッドを記録媒体に対して相対的に走査させて印刷を行うインクジェットプリンタである
ことを特徴とする請求項９に記載の処理装置。
【請求項１１】
圧縮データを伸長する伸長部と、前記伸長部により伸長が行われた第２のｂｉｔ精度の伸長データを印刷のためのデータに変換する変換処理を行う処理部とを備える処理装置の制御方法であって、
前記伸長部において、
前記第２のｂｉｔ精度より低い第１のｂｉｔ精度の画像データに非可逆圧縮処理が実行されることで得られた前記圧縮データを、前記第１のｂｉｔ精度より高い前記第２のｂｉｔ精度で伸長するための演算を行う演算工程と、
前記演算工程による前記演算により伸長された伸長データに含まれる画素値である、前記第２のｂｉｔ精度における所定の第１の値が、前記第２のｂｉｔ精度において白または黒に対応する所定の第２の値になるように、前記伸長データを補正する補正工程と、
前記補正工程により補正された前記第２のｂｉｔ精度の前記伸長データを、前記処理部に出力する出力工程と
を有し、
前記第１の値は、前記第１のｂｉｔ精度の画像データに含まれる画素値である白または黒に対応する値が、前記非可逆圧縮処理により圧縮され、前記演算工程による前記演算により伸長され、かつ、前記第２のｂｉｔ精度となった場合の値であることを特徴とする処理装置の制御方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の処理装置の各手段として機能させるための、または請求項１１に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮データを伸長して、当該伸長が行われたデータを印刷のためのデータに変換する変換処理を行う処理部に出力する技術に関するものである。
【背景技術】
【０００２】
一部のプリンタでは、装置内あるいはメモリカードやネットワークから、ＪＰＥＧ等の画像圧縮技術により圧縮処理が施された圧縮画像データを、印刷データとして取得することができる。そして、プリンタは、取得した圧縮画像データを伸長した後、ＣＭＹＫ色空間への色変換や、印刷エンジンで出力できる形式に変換する誤差拡散やディザ等の量子化の各種処理を行って、記録媒体に画像を印刷する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−６９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、ＪＰＥＧ圧縮伸長処理内で、ＲＧＢ色空間とＹＣｂＣｒ色空間との間の相互変換を行う。この際、特許文献１では、途中の演算のビット数を処理対象の画像データの元ビット数より上げることで、整数演算による色空間変換処理を何度も繰り返しても誤差が累積することがないようにする手法が示されている。
【０００５】
この手法は、圧縮伸長を繰り返さずに一度だけ伸長処理を行う場合においても、伸長出力の精度をできるだけ高く得るためには有用である。
【０００６】
しかしながら、画像データの演算に使用するビット数を、その画像データの本来の元ビット数より上げると、その処理内容によっては、意図しない画素値が再現される場合がある。そのため、このような処理をプリンタにおいてそのまま実装すると、意図しない画像が記録媒体上で形成されたり、本来、印刷動作が不要な画像データについても印刷動作が行われてしまう。これにより、印刷に使用する記録剤の無駄な消費やスループットの低下を招く恐れがある。
【０００７】
本発明は上記の課題を解決するためになされたものであり、適切かつ効率的なデータ処理を実現することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明による処理装置は以下の構成を備える。即ち、
圧縮データを伸長する伸長部と、前記伸長部により伸長が行われた第２のｂｉｔ精度の伸長データを印刷のためのデータに変換する変換処理を行う処理部とを備える処理装置であって、
前記伸長部は、
前記第２のｂｉｔ精度より低い第１のｂｉｔ精度の画像データに非可逆圧縮処理が実行されることで得られた前記圧縮データを入力する入力手段と、
前記入力手段で入力した圧縮データを前記第１のｂｉｔ精度より高い前記第２のｂｉｔ精度で伸長するための演算を行う演算手段と、
前記演算手段による前記演算により伸長された伸長データに含まれる画素値である、前記第２のｂｉｔ精度における所定の第１の値が、前記第２のｂｉｔ精度において白または黒に対応する所定の第２の値になるように、前記伸長データを補正する補正手段と、
前記補正手段により補正された前記第２のｂｉｔ精度の前記伸長データを、前記処理部に出力する出力手段と
を備え、
前記第１の値は、前記第１のｂｉｔ精度の画像データに含まれる画素値である白または黒に対応する値が、前記非可逆圧縮処理により圧縮され、前記演算手段による前記演算により伸長され、かつ、前記第２のｂｉｔ精度となった場合の値である。
【発明の効果】
【０００９】
本発明によれば、適切かつ効率的なデータ処理を実現できる。
【図面の簡単な説明】
【００１０】
【図１】圧縮データの伸長処理を行う処理系の例を示す図である。
【図２】画像処理装置の構成を示すブロック図である。
【図３】伸長器の詳細構成を示すブロック図である。
【図４】出力値補正部における補正前後の値の関係を示す図である。
【図５】出力値補正部の動作を示すフローチャートである。
【図６】出力値補正部の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１２】
まず、特許文献１における手法のいくつかの画像処理例について、図１を用いて説明する。
【００１３】
尚、図１に示す伸長器は、情報処理装置として、例えば、ＪＰＥＧ規格に従う伸長を行うＪＰＥＧ伸長器である場合を例に挙げて説明する。
【００１４】
図１（ａ）に示すように、伸長器において、出力対象のＲＧＢ画像データの精度が８ｂｉｔであっても、ＹＣｂＣｒ色空間での逆ＤＣＴ演算出力を８ｂｉｔより高い１０ｂｉｔの精度で行う。そして、その１０ｂｉｔの画像データを、そのままＹＣｂＣｒ色空間からＲＧＢ色空間へ変換するマトリクス演算処理（ＹＣｂＣｒ→ＲＧＢ変換）を行ってから、入力時の同一ｂｉｔ精度である８ｂｉｔに丸める。これにより、出力結果のＲＧＢ画像データの精度を８ｂｉｔに確保することができる。
【００１５】
また、図１（ｂ）に示すように、伸長器におけるマトリクス演算処理（ＹＣｂＣｒ→ＲＧＢ変換）後の１０ｂｉｔのＲＧＢ画像データに対する８ｂｉｔへの丸め処理を行わずに、１０ｂｉｔ精度のままＲＧＢ画像データを伸長器から出力することができる。
【００１６】
図１（ｃ）に示すように、伸長器において、マトリクス演算処理（ＹＣｂＣｒ→ＲＧＢ変換）自体を行わずに、ＹＣｂＣｒ色空間の１０ｂｉｔ精度のまま、画像データを伸長器から出力することができる。
【００１７】
図１（ｂ）及び図１（ｃ）のどちらの場合でも、それぞれの色空間及び精度の画像データの各画素値に対して、後段の印刷系画像処理部でのＲＧＢ色空間からＣＭＹＫ表色系への変換処理や、印刷のための二値化処理等の各種処理を行う。このような図１（ｂ）及び図１（ｃ）の処理系は、図１（ａ）に示す処理系よりも、印刷結果のグラデーション部での疑似輪郭発生防止に有用である。
【００１８】
ここで、図１（ｃ）に示す処理系を行うプリンタについて検討する。つまり、印刷出力の画質改善のために、伸長器からは、ＹＣｂＣｒ色空間で、かつ８ｂｉｔより高い１０ｂｉｔ精度の画像データを出力することとする。
【００１９】
ＪＰＥＧ圧縮時には、画像データは、８×８画素のブロックであるＭＣＵ（Ｍｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ）の単位で処理が行われる。８×８画素のＹ成分の平均値がＹｉｎである場合に、Ｙの量子化テーブルのＤＣ成分の値（量子化値）をＤとすると、ＪＰＥＧ圧縮時のＤＣＴ演算と量子化処理の出力Ｙｈは、Ｙｈ＝ＲＯＵＮＤ（（Ｙｉｎ−１２８）×８／Ｄ）と変換される。ＪＰＥＧ圧縮処理においては、この値Ｙｈに関して、着目ＭＣＵとのその直前のＭＣＵとの差分がハフマン符号化される。ここで、ＲＯＵＮＤ（  ）は小数部の四捨五入処理である。
【００２０】
この値Ｙｈを、伸長器でＭＣＵ毎の差分値を累積した後、逆量子化すると、Ｙｈ’＝Ｄ×Ｙｈ＋１０２４となる。そして、この値を１０ｂｉｔ精度で出力すると、出力値Ｙｏｕｔ＝ＲＯＵＮＤ（Ｙｈ’／２）となる。８ｂｉｔ精度の場合は、出力値Ｙｏｕｔ８＝ＲＯＵＮＤ（Ｙｈ’／８）である。
【００２１】
この式に従うと、入力値Ｙｉｎ＝２５５（白）のとき、出力値Ｙｏｕｔの値は、ＹのＤＣ成分の量子化値Ｄによって、表１のように変化する。
【００２２】
【表１】
0006541387.tif 000002
【００２３】
圧縮前に、入力値Ｙｉｎ＝２５５であった値であるから、伸長後の出力としては１０ｂｉｔ精度で出力値Ｙｏｕｔ＝１０２０（２５５＜＜２）が期待されるが、この表１によれば、Ｄ＝６、１１、１３の場合に、出力値Ｙｏｕｔが１０２０を下回る。
【００２４】
伸長器から出力された１０ｂｉｔ精度のＹＣｂＣｒ表色系の画像データの画素値に対して、図１（ｃ）に示す印刷系画像処理部において、ＹＣｂＣｒからＣＭＹＫへの色変換と量子化を行ってプリンタで出力する場合を考える。つまり、画像データを生成したデバイスのデバイス依存色空間からプリンタ依存色空間への色変換と量子化を行ってプリンタで出力する場合、Ｙｏｕｔ≧１０２０を白と見なすとすると、量子化値Ｄ＝６、１１、１３の場合は、白でなく有色と見なされてしまう。
【００２５】
一般に、プリントヘッドを記録媒体に対して相対的に走査させて印刷を行うインクジェットプリンタでは、出力が真っ白、つまり、ＣＭＹＫインクによる画素（ドット）が全く形成されない領域には、プリントヘッドを走査させないようにすることで印刷の高速化を図っている。しかしながら、表１で示すような場合には、圧縮前に、白（Ｙｉｎ＝２５５）であった領域も伸長後に有色となる。従って、そのような領域についての印刷動作、つまり、その領域に対するプリントヘッドの走査が発生して、本来、不必要な印刷動作を行うことになる。結果として、印刷速度が低下してしまうという問題がある。
【００２６】
＜実施形態１＞
図２は、画像処理装置２００の詳細構成を示すブロック図である。この画像処理装置２００は、一般的な複合機が備える画像処理部と同様の構成である。ここで、複合機には、プリンタ機能、スキャナ機能（読取機能）、コピー機能、ファクス機能等の複数の機能を有するインクジェット方式のマルチファンクションプリンタ（ＭＦＰ）がある。尚、ＭＦＰが使用する印刷方式は、インクジェット方式に限定されず、レーザビーム方式等の他の印刷方式を使用することができる。また、画像処理装置２００としては、これに限定されず、印刷機能のみを有するものであってもよいし、スキャナ機能のみを有するものであってもよいし、他の機能を備えていてもよい。
【００２７】
図２において、２０１は、画像処理装置２００の外部から、ＪＰＥＧ等の圧縮画像データを供給する外部Ｉ／Ｆである。この外部Ｉ／Ｆ２０１は、有線／無線ＬＡＮ、ＵＳＢ、ＳＤカードＩ／Ｆ等、多様に存在するが、その構成については、特に、これらに限定されるものではない。
【００２８】
２０２は、画像処理装置２００全体を制御するＣＰＵである。２０３は、圧縮画像データを伸長して、所定の色空間（例えば、ＹＣｂＣｒ色空間）の伸長画像データを出力する伸長器である。尚、本実施形態では、圧縮画像データは、ＪＰＥＧ形式で圧縮された圧縮画像データである場合を例に挙げて説明する。従って、伸長器２０３は、ＪＰＥＧ伸長器として機能する。また、伸長器２０３の内部では、ＹＣｂＣｒ色空間→ＲＧＢ色空間への変換を行わないものとする。つまり、伸長器２０３は、図１（ｃ）の処理系である場合を例に挙げて説明する。
【００２９】
２０４は、伸長器２０３から出力された伸長画像データに対し、ＣＭＹＫ色空間への変換と印刷用の量子化等の処理を行う印刷系画像処理部である。２０５は、印刷系画像処理部２０４が出力する量子化済のＣＭＹＫ画像データを、プリンタ２０６へ出力するプリンタ制御部である。２０６は、量子化済のＣＭＹＫ画像データを記録媒体へ印刷するプリンタである。
【００３０】
２０７は、各種構成要素２０１〜２０５が入出力するデータを、ＤＲＡＭ２０８へ読み書きするための、また、ＲＯＭ２０９からデータを読み出すためのメモリコントローラである。２０８は、メモリコントローラ２０７がデータの読み書きを行うＤＲＡＭである。２０９は、画像処理装置２００の動作を制御するための各種制御プログラム等のプログラムを記憶するＲＯＭである。ＣＰＵ２０２は、ＲＯＭ２０９に記憶されているプログラムを読み出し、ＤＲＡＭ２０８上で実行することで、画像処理装置２００における各種処理を実現する。
【００３１】
次に、伸長器２０３の詳細構成について、図３を用いて説明する。
【００３２】
図３に示すように、伸長器２０３は、ハフマン復号部３０１、逆量子化部３０２、逆ＤＣＴ演算部３０３、アップサンプリング処理部３０４、及び出力値補正部３０５を備える。
【００３３】
ハフマン復号部３０１からアップサンプリング処理部３０４の各部で実行される処理は、一般のＪＰＥＧ伸長器で実行される処理と同じである。そのため、入力されるＪＰＥＧ形式の画像データにおける各ＭＣＵのＤＣ成分値に関する具体的な伸長処理内容は、図１を用いて説明した通りであり、以降の説明では、図１に準じて説明する。
【００３４】
逆量子化部３０２からはＹｈ’が出力され、逆ＤＣＴ演算部３０３からは１０ｂｉｔ値のＹｏｕｔが出力される。アップサンプリング処理部３０４では、サンプリング比に合わせてＣｂ画素及びＣｒ画素が単純拡大されるが、Ｙ画素に関しては入力をそのまま出力する。よって、アップサンプリング処理部３０４からは１０ｂｉｔ精度のＹＣｂＣｒ色空間の各画素が出力される。
【００３５】
本実施形態では、伸長器２０３において、出力値補正部３０５を設けることを特徴とする。この出力値補正部３０５は、アップサンプリング処理部３０４から出力される１０ｂｉｔ精度のＹＣｂＣｒ値の内のＹ画素値Ｙｏｕｔに関して、下記の［１］式を施して補正値Ｙｏｕｔ’を生成する補正処理を実行する。尚、この出力値補正部３０５による補正処理は、ＣＰＵ２０２がＲＯＭ２０９に記憶されているプログラムを読み出し実行することで実現される。
【００３６】
［１］  Yout’＝Yout×1020／1018;  if(Yout'＞1020) Yout’=1020;
この［１］式で表される補正処理を実行することにより、通常の８ｂｉｔＪＰＥＧ伸長器で、Ｙ＝２５５として出力されるあらゆる入力値に対して、Ｙ＝１０２０で出力することを保証できる。
【００３７】
そして、後段の印刷系画像処理部２０４で、所定値以上の画素値（Ｙ≧１０２０）を白と見なす処理を実行する。これにより、ＪＰＥＧ圧縮前に白地部分（Ｙ＝２５５）が含まれている画像データに関して、そのＪＰＥＧ伸長により白地部分に有色画素が発生してしまうことを防ぐことができる。これにより、不必要な有色画素の画像を形成するための印刷動作を禁止することができ、結果として、印刷速度の低下や記録剤の無駄な消費を防ぐことができる。
【００３８】
尚、出力値補正部３０５で実行する演算処理（Yout’＝Yout×1020／1018）では、除算器が必要であるが、論理回路による除算器の実装は多くのゲート数を必要とする。そのため、簡易的な実装で同等の効果を得る代替構成を採用して、同等の効果を得ることもできる。これらの代替構成のいくつかの演算処理例を、［２］式、及び［３］式に示すが、同等の効果を得ることができる演算処理であれば、これらに限定されるものではない。
【００３９】
［２］  Yout’＝Yout＋((Yout+6)＞＞9);  if(Yout'＞1020) Yout’=1020;
［３］  if(Yout＞1016){
Yout’=Yout＋(Yout−1016)×2；
}else Yout’=Yout;
if(Yout’)＞1020 Yout’=1020;
出力値補正部３０５の入力値Ｙｏｕｔと出力値Ｙｏｕｔ’の関係を、［１］式及び［２］式については図４（ａ）に、［３］式については図４（ｂ）に示す。
【００４０】
以上説明したように、実施形態１によれば、逆量子化処理を伴う圧縮画像データを伸長する伸長器において、入力値に対する出力値を、白と見なす出力値以上となるように、その入力値に応じて補正する。伸長時に発生し得る、本来、白で出力されるべき画素を有色画素として処理することを防止することができる。
【００４１】
具体的には、例えば、伸長器がＹＣｂＣｒ表色系で１０ｂｉｔ精度で出力する場合では、逆量子化・逆ＤＣＴ演算後のＹ色成分出力値Ｙｏｕｔに対して１０２０／１０１８倍の乗算等の補正演算を行った値を、最終的に出力するＹｏｕｔとして出力する。
【００４２】
尚、本実施形態では、ＪＰＥＧ伸長器において補正を行っているが、別の方法として、例えば、印刷系画像処理部において処理を行うこともできる。
【００４３】
しかしながら、印刷系画像処理部は、ＪＰＥＧ以外の圧縮形式（ＰＮＧやＴＩＦＦ等）の入力画像に対しても共通で用いられる。そのため、伸長後に印刷系画像処理部で処理を行う場合には、印刷系画像処理部が、圧縮形式がＪＰＥＧあるか否かに応じて、色変換テーブル等のパラメータを切り替えなければならない。よって、ＪＰＥＧとそれ以外の圧縮形式に応じた２種類以上のパラメータがプリンタ（例えば、ＲＯＭ２０９）に記憶されていなくてはならない。そのため、各圧縮形式に対するパラメータを格納するためのメモリ量が増えてしまいコストアップとなってしまう。
【００４４】
一方、本実施形態では、特定の非可逆圧縮形式であるＪＰＥＧの伸長器において、計算式により出力値（Ｙｏｕｔ）の補正を行う。そのため、印刷系画像処理部においては、ＪＰＥＧと、その他の圧縮形式（ＰＮＧやＴＩＦＦ等）で色変換テーブル等のパラメータを区別する必要がないため、上記の課題を解決することができる。
【００４５】
尚、量子化値Ｄ＝１８の場合においては、通常の８ｂｉｔ精度の伸長器でもＹ出力が２５４となるため、白と見なす必要はないものとするが、用途や目的に応じて、白と見なす補正を行うこともできる。
【００４６】
＜実施形態２＞
実施形態１では、出力値補正部３０５は入力値Ｙｏｕｔに対して量子化値Ｄの値とは無関係に一律に補正をかけている。しかしながら、表１によれば、量子化値Ｄ＝６、１１、１３以外の場合は、Ｙｏｕｔは既に１０２０以上であることが保証されているため補正の必要がなく、むしろ補正を行うことにより不要な白飛びを発生させてしまう可能性がある。
【００４７】
例えば、量子化値Ｄ＝６、１１、１３以外の場合において、Ｙｏｕｔ＝１０１８や１０１９の値があった場合には、本来白ではない有色画素であるが、印刷系画像処理部では白と見なされてしまう。つまり、出力が不必要に白飛びしてしまうという別の問題を引き起こしてしまう。
【００４８】
そこで、実施形態２では、量子化値Ｄの値により、出力値補正部３０５の補正処理内容を切り替えることで、より適切な出力値の補正処理を実行する。この処理の詳細について、図５のフローチャートを用いて説明する。尚、図５のフローチャートに示す処理は、ＣＰＵ２０２がＲＯＭ２０９に記憶されているプログラムを読み出し実行することで実現される。
【００４９】
Ｓ５０１で、ＣＰＵ２０２は、処理対象の画像データに対する量子化値Ｄが所定値（Ｄ＝６、１１、あるいは１３）であるか否かを判定する。
【００５０】
判定の結果、量子化値Ｄが所定値（Ｄ＝６、１１、あるいは１３）である場合（Ｓ５０１でＹＥＳ）、Ｓ５０２で、ＣＰＵ２０２は、
補正処理［ａ］：実施形態１の処理（［１］式〜［３］式のいずれか）
を実行する。
【００５１】
一方、判定の結果、量子化値Ｄが所定値（Ｄ＝６、１１、あるいは１３）でない場合（Ｓ５０１でＮＯ）、Ｓ５０３で、ＣＰＵ２０２は、
補正処理［ｂ］：  if(Yout＞1020){ Yout’=1020; } else Yout’=Yout;
を実行する。
【００５２】
出力値補正部３０５では、補正処理［ａ］あるいは補正処理［ｂ］を実行することを外部信号で切り替えられるようにする「選択入力」を設ける。まず、ＣＰＵ２０２は、入力されたＪＰＥＧ圧縮画像データを解析する。そして、その解析結果により得られる量子化値Ｄの値に基づいて、ＣＰＵ２０２は、Ｄ＝６、１１あるいは１３の場合に補正処理［ａ］を実行し、それ以外の場合に補正処理［ｂ］を実行するための値を「選択入力」信号に対して設定する。ＣＰＵ２０２は、例えば、補正処理［ａ］を実行する場合には「選択入力」信号を「１」に設定し、補正処理［ｂ］を実行する場合には「選択入力」信号を「０」に設定して、出力値補正部３０５へ入力する。これを受けて、出力値補正部３０５は、入力された「選択入力」信号が示す値に応じて、補正処理［ａ］あるいは補正処理［ｂ］を実行する。
【００５３】
あるいは、伸長器２０３内の逆量子化部３０２で使用する量子化値Ｄを参照することで、出力値補正部３０５内で補正処理［ａ］あるいは補正処理［ｂ］を実行することを、伸長器２０３内で適応的に判定するようにしてもよい。
【００５４】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、量子化時に用いる値によって、補正処理の内容を適応的に切り替える。これにより、補正の必要のない場合に、処理対象の画像データが補正されてしまうことで、画像データが不必要に歪むことを防ぐことができる。
【００５５】
尚、本実施形態とは異なる方法として、印刷系画像処理部において量子化値Ｄに応じた複数種類の色変換テーブルを記憶しておき、その中から量子化値Ｄに応じて選択された色変換テーブルを用いてＣＭＹＫへの変換を行ってもよい。但し、複数の色変換テーブルを記憶しておく必要があるため、実施形態１でも記載したようにコストアップという課題が生じる。
【００５６】
一方、本実施形態では、ＪＰＥＧの伸長器において出力値（Ｙｏｕｔ）の補正を行う。そのため、印刷系画像処理部において量子化値Ｄに応じた複数の色変換テーブルを容易する必要がないため、上記の課題を解決することができる。
【００５７】
＜実施形態３＞
実施形態１や２では、条件を満足する画素を白画素と見なす処理を実行しているが、Ｙｉｎ＝０（黒）に関しても同じように量子化値によって、表２のように、圧縮前と伸長後の値に違いが生じる。この値の違いは、インクジェットプリンタにおいて白地に有色画素（ドット）が出力されることによる印刷速度低下の問題に関して影響はない。しかしながら、ベタ黒入力をベタ黒出力として再現すべきプリンタでは、ベタ黒画像を正常に記録媒体上に印刷することができない可能性がある。そこで、実施形態１や２で説明したような補正処理を、「黒」についても適用することで、ベタ黒を適切かつ正常に再現することができる。
【００５８】
【表２】
0006541387.tif 000003
【００５９】
表２の場合は、どの量子化値Ｄであっても、１０ｂｉｔ出力値Ｙｏｕｔは「０」であることが望ましいが、Ｄ＝３、７、１０、１１、１２、１４、１５、１７の場合には、非０となる。
【００６０】
そこで、実施形態１及び実施形態２の構成を踏まえて、量子化Ｄの値により、出力値補正部３０５の補正処理内容を切り替えることで、より適切な出力値の補正処理を実行する。この処理の詳細について、図６のフローチャートを用いて説明する。尚、図６のフローチャートに示す処理は、ＣＰＵ２０２がＲＯＭ２０９に記憶されているプログラムを読み出し実行することで実現される。特に、図６では、白黒ともにＪＰＥＧ圧縮前の入力値Ｙｉｎ（０、２５５）に対応した出力値Ｙｏｕｔ’（０、１０２０）を出力するための処理を実行する。このときの入出力値の関係を図４（ｃ）に示す。つまり、圧縮されたデータにおける白を意味する値を、伸長後のデータにおける白を意味する値に補正し、また、圧縮されたデータにおける黒を意味する値を、伸長後のデータにおける黒を意味する値に補正する。
【００６１】
Ｓ６０１で、ＣＰＵ２０２は、処理対象の画像データに対する量子化値Ｄが所定値（Ｄ＝３、６、７、１０、１１、１２、１３、１４、１５、あるいは１７）であるか否かを判定する。
【００６２】
判定の結果、量子化値Ｄが所定値（Ｄ＝３、６、７、１０、１１、１２、１３、１４、１５、あるいは１７）である場合（Ｓ６０１でＹＥＳ）、Ｓ６０２で、ＣＰＵ２０２は、
補正処理［ｃ］：（図４（ｃ）)
if(Yout==0){                Yout’ = 0;  
}else if(Yout≦170){        Yout’ = Yout-1;
}else if(Yout≦509){        Yout’ = Yout;
}else if(Yout≦848){        Yout’ = Yout+1;
}else if(Yout≦1018){       Yout’ = Yout+2;
}else                       Yout’ = 1020; 
を実行する。
【００６３】
一方、判定の結果、量子化値Ｄが所定値（Ｄ＝３、６、７、１０、１１、１２、１３、１４、１５、あるいは１７）でない場合（Ｓ６０１でＮＯ）、Ｓ６０３で、ＣＰＵ２０２は、
補正処理［ｄ］(補正処理［ｂ］と同じ))
if(Yout＞1020){             Yout’ = 1020; 
}else                       Yout’ = Yout;
を実行する。
【００６４】
このように、量子化値Ｄの値により、白のみあるいは黒のみの補正を適応的に使い分けることも可能である。
【００６５】
以上説明したように、実施形態３によれば、実施形態１及び２で説明した効果に加えて、入力値に対する出力値を黒と見なす出力値以上となるように、その入力値に応じて補正する。これにより、本来、黒で出力されるべき画素をより適切に黒として再現することが可能となる。
【００６６】
＜実施形態４＞
実施形態１から実施形態３に関しては、ＪＰＥＧ圧縮画像データを伸長して、逆ＤＣＴ演算部３０３とアップサンプリング処理部３０４からＹＣｂＣｒの色成分で出力し、その内、Ｙ成分の画像データのみに対して補正処理を行っている。しかしながら、図１（ｂ）に示す処理系のように、伸長器内で、ＹＣｂＣｒ→ＲＧＢ変換を行ってから１０ｂｉｔ精度で出力する処理系もある。
【００６７】
このような場合は、ＹＣｂＣｒ→ＲＧＢ変換部の後段に出力値補正部３０５に相当する処理部を設け、実施形態１から実施形態３で説明したようなＹ画素への補正処理を、Ｒ・Ｇ・Ｂのそれぞれの１０ｂｉｔ画素値に対して行うことで同等の効果が得られる。但し、この場合は、ＹＣｂＣｒ→ＲＧＢのマトリクス演算の係数値や途中の演算補正処理（演算丸め処理）のアルゴリズムに応じて、実際にＲＧＢ値を補正する対象についてのアルゴリズムを適宜する変更する。
【００６８】
＜実施形態５＞
実施形態１から実施形態４に関しては、ＪＰＥＧ圧縮伸長の際に行われるＤＣ成分値の量子化処理について言及しているが、各実施形態の構成は、量子化処理を伴う他の画像データの非可逆圧縮処理／非可逆伸長処理に対しても適用可能である。
【００６９】
つまり、入力値Ｘに対し量子化値Ｄで除算する（サンプリングする）、あるいはデータ量削減のためのその他の演算処理（Ｘ’＝ｌｏｇ（Ｘ）等）を実行してから整数化する処理系であれば、各実施形態の構成を適用することができる。
【００７０】
つまり、データの圧縮を行い、得られる圧縮データの伸長時に逆演算を行うことで圧縮前データの近似値を生成する処理系では、整数化による丸め誤差がどうしても生じる。そのため、圧縮前の白や黒のような特定値に対して、伸長後にその特定値が意図する値で出力されるように保証することが必ずしもできない。しかし、そのような処理系においても、実施形態１から実施形態３の中でも説明したように、その出力値が意図する値となることを保証する必要がある場合がある。
【００７１】
そして、量子化あるいはその他のデータ量削減のための演算処理において、その演算処理に使用するパラメータ値（量子化の場合は、量子化値Ｄ）と、圧縮前及び伸長後の値の関係は、予め計算可能である。そのため、伸長後にどう補正すべきであるかも予測することが可能である。
【００７２】
よって、実施形態１〜実施形態４で示したように、伸長後の出力値に対して、一律に、またはパラメータ値の値に応じて異なる補正処理を実行することで、圧縮前の特定値において伸長後に特定値になることを保証することができる。
【００７３】
尚、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７４】
２００：画像処理装置、２０１：外部Ｉ／Ｆ、２０２：ＣＰＵ、２０３：伸長器、２０４：印刷系画像処理部、２０５：プリンタ制御部、２０６：メモリコントローラ、２０７：ＤＲＡＭ、３０１：ハフマン復号部、３０２：逆量子化部、３０３：逆ＤＣＴ演算部、３０４：アップサンプリング処理部、３０５：出力値補正部
【図１】
0006541387.tif 000004
【図２】
0006541387.tif 000005
【図３】
0006541387.tif 000006
【図４】
0006541387.tif 000007
【図５】
0006541387.tif 000008
【図６】
0006541387.tif 000009