(57)【要約】【課題】  ヒット率の低下に起因する処理時間の変動を吸収するために配されるプリント・バッファの容量を抑える。【解決手段】  画像データを色空間変換処理する前段処理部１０２と、前記色空間変換処理された画像データをＬＵＴを用いて色分解する後段処理部１０４とを備える画像処理装置であって、前記色空間変換処理された画像データから、前記ＬＵＴの格子点データを取り出すための整数部データを分離し、スライド辞書を用いて圧縮するデータ分離圧縮部１１４と、前記整数部圧縮データを格納するプリント・バッファ１０３と、を備え、後段処理部１０４は、プリント・バッファ１０３より整数部圧縮データを読み出し、スライド辞書を用いて前記格子点データを取り出すための整数部データを生成した後に、前記ＬＵＴを用いた色分解を行うことを特徴とする。【選択図】  図１
2008015943.tif 000002
【特許請求の範囲】
【請求項１】
画像データを色空間変換処理する第１の処理手段と、前記色空間変換処理された画像データをＬＵＴを用いて色分解する第２の処理手段とを備える画像処理装置であって、
前記色空間変換処理された画像データから、前記ＬＵＴの格子点データを取り出すための第１のデータを分離する分離手段と、
前記分離された第１のデータを、スライド辞書を用いて圧縮する圧縮手段と、
前記圧縮された第１のデータを格納する格納手段と、を備え、
前記第２の処理手段は、前記格納手段より前記圧縮された第１のデータを読み出し、スライド辞書を用いて前記格子点データを取り出すための第１のデータを生成した後に、前記ＬＵＴを用いた色分解を行うことを特徴とする画像処理装置。
【請求項２】
前記分離手段は、前記色空間変換処理された画像データの上位ビットデータを抽出することにより、前記ＬＵＴの格子点データを取り出すための第１のデータを分離することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記圧縮手段は、前記分離された第１のデータを構成する各値のうち同一の値が連続する場合の連続数と、前記スライド辞書のエントリとを用いて、前記分離された第１のデータを圧縮することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記分離手段は、更に、前記第２の処理手段において取り出された格子点データを補間する補間係数を生成するための第２のデータを、前記色空間変換処理された画像データから分離することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第２の処理手段は、前記第２のデータに基づいて生成された補間係数を用いて、前記色分解を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記圧縮手段において用いられるスライド辞書のエントリ数よりも、前記第２の処理手段において用いられるスライド辞書のエントリ数の方が多いことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
画像データを色空間変換処理する第１の処理工程と、前記色空間変換処理された画像データをＬＵＴを用いて色分解する第２の処理工程とを備える画像処理方法であって、
前記色空間変換処理された画像データから、前記ＬＵＴの格子点データを取り出すための第１のデータを分離する分離工程と、
前記分離された第１のデータを、スライド辞書を用いて圧縮する圧縮工程と、
前記圧縮された第１のデータを格納手段に格納する格納工程と、を備え、
前記第２の処理工程は、前記格納手段より前記圧縮された第１のデータを読み出し、スライド辞書を用いて前記格子点データを取り出すための第１のデータを生成した後に、前記ＬＵＴを用いた色分解を行うことを特徴とする画像処理方法。
【請求項８】
請求項７に記載の画像処理方法をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に配された画像処理装置における画像処理技術に関するものである。
【背景技術】
【０００２】
近年、入力機器として、スキャナ、ビデオカメラなどの各種カラー入力機器が普及してきている。また、出力機器として、インクジェット、染料熱昇華型あるいは電子写真方式カラープリンタなどの各種カラー出力機器が普及してきている。
【０００３】
一般にこれらのカラー入／出力機器は、それぞれ固有の色空間を有している。このため、例えばあるスキャナで得たカラー画像をそのまま別のカラープリンタに転送して印刷した場合、印刷されたカラー画像の色がスキャナによって読み取られたオリジナルのカラー画像の色と一致することはほとんどない。
【０００４】
このようなカラー画像等に対する入／出力機器間での色再現性の問題を解決するために、入／出力機器には、通常、入力機器の色空間を出力機器の色空間に変換する処理（“色空間変換処理”と呼ぶ）を行う機能が搭載されている。
【０００５】
この色空間変換処理とは、入力γ補正、輝度濃度変換、マスキング、黒生成、ＵＣＲ、出力γ補正等の一連の画像処理もしくはその中の一部の処理をいう。具体的には、入力機器の３色（レッド、ブルー、グリーンの３色、以下、“ＲＧＢ”と略す）のデジタル画像データを同時に参照して、出力機器の３色（シアン、マゼンタ、イエローの３色、以下、“ＣＭＹ”）のデジタル画像データに変換する処理をいう。あるいは４色（シアン、マゼンタ、イエロー、ブラックの４色、以下、“ＣＭＹＫ”）のデジタル画像データに変換する処理をいう。
【０００６】
色空間変換処理は、空間から空間への対応付けを行うことで実現できる。このような変換を行う手法はこれまでにも複数提案されてきているが、その中でも特開昭５３−１２３２０１号公報や特開平８−２３７４９７号公報に示される、三次元ルックアップテーブル(３Ｄ−ＬＵＴ)と補間とを組み合わせた手法がよく用いられている。更に、３Ｄ−ＬＵＴと補間とを組み合わせた色空間変換処理にも様々な手法が存在する。そのうち、必要なデータ量、必要な演算量、単位直方体間での出力の連続性及びグレーラインの補間特性などから特開昭５３−１２３２０１号公報に開示された四面体補間が使用されることが多い。
【０００７】
しかしながら、上記３Ｄ−ＬＵＴ＋補間による色空間変換処理の場合、色空間変換処理の精度を向上させるべく、３Ｄ−ＬＵＴの１軸当たりの格子点数（以下「グリッド数」と記す）を増加させると、３Ｄ−ＬＵＴの容量が３乗で増加してしまう。また、最近では色再現性を向上すべく、入力機器としてＲＧＢ以外の色フィルタを追加したデジタルカメラが登場してきており、この場合、上記ＬＵＴの容量はグリッド数の４乗で増加するため、膨大なメモリ容量が必要となってくる。
【０００８】
更に、カラープリンタなどの出力機器では、色再現性や階調性、粒状性の向上を図るべく、多数の色材（インク）を用いるものが登場してきており、この場合、ＬＵＴの容量は色材の数に比例して増加するため、更に膨大なメモリ容量が必要となっている。
【０００９】
このようなメモリ容量の増大の問題を解決するために、現在ではキャッシュ機構を取り入れた手法がよく用いられている。例えば、特開２００４−２７４１３１号公報では、まず各頂点に独立の小容量のメモリで構成されるキャッシュメモリを設けるとともに、これらのキャッシュメモリに共有され時分割にてアクセスされるメモリを更に設ける。そして、当該共有されるメモリにＬＵＴの全てを格納させることで、ＬＵＴのメモリの総容量を減らしコストを削減しつつ、性能低下を抑えることが可能となっている。
【特許文献１】特開昭５３−１２３２０１号公報
【特許文献２】特開平８−２３７４９７号公報
【特許文献３】特開２００４−２７４１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述のようなキャッシュ機構を取り入れた手法の場合、入力される画像データによってはキャッシュのヒット率が変わり、ＤＲＡＭ参照回数が変動してしまうため、色空間変換処理の所要時間の変動が生じる。このため、色空間変換処理におけるリアルタイム性を保証できないという問題がある。
【００１１】
一方で、リアルタイム性を保証すべく、色空間変換処理の後段にプリント・バッファ等を配し、当該プリント・バッファにより上記所要時間の変動を吸収する方法が考えられる。しかしながら、近年の高解像度化、印刷ヘッドのノズル数の増大に伴い、プリント・バッファの容量および帯域の増大が問題となってきており、係る方法は妥当でない。
【００１２】
本発明は、上記課題に鑑みてなされたものであり、キャッシュ機構を用いた色空間変換処理でのヒット率の低下に起因する処理時間の変動を吸収するプリント・バッファの容量を抑え、コストの削減を図ることを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するために本発明に係る画像処理装置は以下のような構成を備える。即ち、
画像データを色空間変換処理する第１の処理手段と、前記色空間変換処理された画像データをＬＵＴを用いて色分解する第２の処理手段とを備える画像処理装置であって、
前記色空間変換処理された画像データから、前記ＬＵＴの格子点データを取り出すための第１のデータを分離する分離手段と、
前記分離された第１のデータを、スライド辞書を用いて圧縮する圧縮手段と、
前記圧縮された第１のデータを格納する格納手段と、を備え、
前記第２の処理手段は、前記格納手段より前記圧縮された第１のデータを読み出し、スライド辞書を用いて前記格子点データを取り出すための第１のデータを生成した後に、前記ＬＵＴを用いた色分解を行うことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、キャッシュ機構を用いた色空間変換処理でのヒット率の低下に起因する処理時間の変動を吸収するプリント・バッファの容量を抑え、コストの削減を実現することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、必要に応じて添付図面を参照しながら本発明の各実施形態を詳細に説明する。
【００１６】
［第１の実施形態］
＜印刷装置の各部の機能＞
図１は本発明の第１の実施形態にかかる画像処理装置を備える印刷装置（例えば、スキャナ機能付きプリンタ、以下、「マルチファンクションプリンタ」と称す）の機能構成を示す図である。
【００１７】
１０１はセンサであり、原稿を読み込み、画像データを生成する。１０２は前段処理部であり、センサ１０１において生成された画像データに対して、シェーディング補正処理、入力γ変換処理、色変換処理、色補正処理などの処理を行う。
【００１８】
１１４はデータ分離圧縮部であり、前段処理部１０２にて各処理がなされた画像データを分離し、分離後の画像データに対して圧縮処理を行う。１０３、１１３はプリント・バッファであり、分離され圧縮された画像データを一時的に格納する。
【００１９】
１０４は後段処理部であり、プリント・バッファ１０３または１１３に格納された画像データを色分解処理し、量子化する。１０５はプリンタエンジンであり、後段処理部１０４にて量子化された画像データに基づいて、紙等の記録媒体に印刷する。
【００２０】
前段処理部１０２には、更に入力デバイス処理部１０６と色補正処理部１０７とが備えられている。入力デバイス処理部１０６は、公知のシェーディング補正や入力γ処理、色変換処理等を行う。また、色補正処理部１０７は、キャッシュ機構と補間演算部とで構成され、色補正処理を行う。１０９は色補正処理用の３Ｄ−ＬＵＴである。
【００２１】
また、後段処理部１０４には、色分解処理部１１０と量子化処理部１１２とが備えられている。１１１は色分解処理用のＬＵＴである。ここで、色分解処理用ＬＵＴ１１１は色空間補正処理用ＬＵＴ１０９と同様に３Ｄ−ＬＵＴである。また、色分解処理部１１０は色補正処理部１０７と同様にキャッシュ機構と補間演算部とで構成される。
【００２２】
＜マルチファンクションプリンタの全体動作＞
次に、図１のマルチファンクションプリンタの全体動作について説明する。センサ１０１において原稿が読み込まれると、前段処理部１０２の入力デバイス処理部１０６では、センサ１０１からＲＧＢ色空間の画像データ（以下、ＳＤ−ＲＧＢデータと称する）を受信する。
【００２３】
ＳＤ−ＲＧＢデータを受信した入力デバイス処理部１０６では、シェーディング補正、入力γ補正処理、色変換処理等の入力デバイス処理を行う。そして、該入力デバイス処理後の標準色空間の画像データ（以下、ａＲＧＢデータと称す）を色補正処理部１０７に出力する。
【００２４】
ａＲＧＢデータを受信した色補正処理部１０７では、キャッシュ機構を用いて色補正処理を行い、補正後のａＲＧＢデータをマルチファンクションプリンタのＲＧＢ(以下、ＰＤ−ＲＧＢと称する)データとして出力する。
【００２５】
ＰＤ−ＲＧＢデータを受信したデータ分離圧縮部１１４では、該ＰＤ−ＲＧＢデータを色分解処理用ＬＵＴのアドレス生成に使用する整数部（以下、整数部データと称する）と補間係数生成に使用する小数部（以下、小数部データと称する）とに分離する。整数部データと小数部データとに分離されたＰＤ−ＲＧＢデータは、それぞれ別々に圧縮される（整数部データの圧縮データを整数部圧縮データと称し、小数部データの圧縮データを小数部圧縮データと称する）。
【００２６】
生成された整数部圧縮データはプリント・バッファ１０３に格納され、また小数部圧縮データはプリント・バッファ１１３に格納される。プリント・バッファ１０３及びプリント・バッファ１１３は、色補正処理部１０７のキャッシュ機構におけるミスヒットによるペナルティを吸収する役割を果たす。プリント・バッファ１０３及び１１３はそれぞれ整数部圧縮データおよび小数部圧縮データを後段処理部１０４の色分解処理部１１０に出力する。
【００２７】
色分解処理部１１０では、キャッシュ機構を用いた色分解処理を行いつつ、整数部圧縮データおよび小数部圧縮データを伸長し、マルチファンクションプリンタの色空間である、ＣＭＹＫ、淡Ｃ、淡Ｍの画像データを生成し、量子化処理部１１２に出力する。ＣＭＹＫ、淡Ｃ、淡Ｍの画像データを受信した量子化処理部１１２では、量子化処理を行い、生成した量子化データをプリンタエンジン１０５に印刷データとして出力する。これに基づき、プリンタエンジン１０５では、印刷処理を実行する。
【００２８】
＜データ分離圧縮部１１４の構成＞
次にデータ分離圧縮部１１４の構成について、図２を用いて詳細に説明する。図２は、データ分離圧縮部１１４の詳細を示す図である。同図に示すように、データ分離圧縮部１１４は、データ分離部２０１と、圧縮部２０３と、セレクタ２０７と、圧縮部２０９とを備える。
【００２９】
データ分離部２０１は、前段処理部１０２より出力されたＰＤ−ＲＧＢデータを受信し、上位ビット信号（＝整数部データ）と下位ビット信号（＝小数部データ）とに分離する。なお、整数部データは色分解処理用ＬＵＴ１１１にアクセスする際に用いるアドレスであり、小数部データは補間演算に用いられるとともに、色分解処理用ＬＵＴ１１１に格納されているデータ（以下、格子点データと称す）の選択の際に用いられるデータである。整数部データは圧縮部２０３に出力され、また小数部データはセレクタ２０７に出力される。
【００３０】
圧縮部２０３は、スライド辞書２０５への読み書きを行いつつ、入力された整数部データに対してスライド辞書法を用いた圧縮を行い、整数部圧縮データを出力する。整数部データの圧縮にスライド辞書法を用いることで、後述する参照読み出し部４０１では、後述するスライド辞書４０３に目的の格子点データが書き込まれているか否かの判断を、参照読み出し部４０１へのデータ入力の状態に基づいて行うことが可能となる。なお、ここでいうデータ入力の状態とは、圧縮または非圧縮の状態をいう。
【００３１】
圧縮部２０９は小数部データを圧縮する手段であり、プリント・バッファ１１３の容量を削減する圧縮であれば良いため、詳細な説明は省略する。
【００３２】
セレクタ２０７は、小数部データを圧縮部２０９にて圧縮させるか、バイパスして直接出力するかを選択する。具体的には、後述する伸長部４０５で、圧縮部２０９で圧縮されたデータを伸長する時の処理時間が長いことに起因して、格子点データ選択部４０７での格子点データ選択が所望のサイクルに間に合わないと判定された場合にバイパスして出力することを選択する。出力された小数部圧縮データはプリント・バッファ１１３に格納される。
【００３３】
＜スライド辞書法の説明＞
圧縮部２０３において用いられるスライド辞書法について説明する。はじめに公知のスライド辞書法について説明する。公知のスライド辞書法によれば、まず、圧縮を行おうとする入力文字列から文字列のパターンを切り出し、当該切り出された文字列のパターンと一致する文字列を検索する。この際、検索は入力文字列のうち当該切り出された文字列よりも前方にある入力文字列を対象に行う。そして前方にある入力文字列の中に、当該切り出された文字列のパターンと一致する文字列のパターン（最長一致パターン）が検出された場合に、当該最長一致パターンを、当該最長一致パターンの入力文字列内での位置と長さで置き換える。このようにして入力文字列の圧縮が行われる。
【００３４】
なお、スライド辞書法（ｓｌｉｄｉｎｇ−ｄｉｃｔｉｏｎａｒｙ  ｍｅｔｈｏｄ）の詳細については、例えば、次のような文献に開示されている。
・奥村晴彦著「ｓｏｆｔｗａｒｅ  Ｔｅｃｈｎｏｌｏｇｙ  １３Ｃ言語による最新アルゴリズム事典」（平成３年１２月１０日  技術評論社）の第３８９頁ないし第３９３頁の“ＬＺ法”の項
・日本ソフトバンク「Ｃ  ＭＡＧＡＺＩＮＥ  １９９１.１」第４４頁ないし第６８頁の“特集  圧縮アルゴリズム入門”の項
一方、本実施形態で用いるスライド辞書法は上記公知のスライド辞書法とは異なり、最長一致パターンの入力文字列内での位置と長さで圧縮するのではなく、スライド辞書での位置（エントリ）と連続数（ラン長）とで圧縮する点に特徴がある。これは、画像データにおいては、近傍画素の相関性が強く、加えて上記整数部データはＰＤ−ＲＧＢデータの上位ビット信号を用いているので、同じ値が連続する確率が非常に高いからである。
【００３５】
＜圧縮部２０３における処理の流れ＞
次に図３を用いて圧縮部２０３における処理の流れについて説明する。図３は、データ分離部２０１より出力された整数部データを処理する圧縮部２０３における処理の流れを示す図である。なお、図３では、連続する整数部データのうち、１データ分の処理の流れについて示している（すなわち、連続する整数部データを全て処理するためには、図３の処理サイクルを複数回繰り返すこととなる）。
【００３６】
ステップＳ３０１では、データ分離部より受信した整数部データがスライド辞書２０５内に存在するか否かを判定する。存在すると判定された場合には、ステップＳ３０２に進み、今回の整数部データが直前のサイクルで処理した整数部データと同じであるか否かを判定する（すなわち、同じ値の整数部データが連続しているか否かを判定する）。
【００３７】
ステップＳ３０２において異なると判定された場合には、ステップＳ３０３に進み、スライド辞書２０５のエントリのうち、今回の整数部データに対応するエントリを出力した後、ステップＳ３０４に進む。一方、ステップＳ３０２において同じであると判定された場合には、直接ステップＳ３０４に進む。ステップＳ３０４では、連続数カウンタの値をインクリメントする。
【００３８】
ステップＳ３０５では、今回の整数部データが同じ値が連続する場合の最後のデータであるか否かを判定する。最後のデータであると判定された場合には、ステップＳ３０６に進む。ステップＳ３０６では、連続数カウンタの値を出力したのち、連続数カウンタの値をゼロにし、今回の整数部データについての処理を終了する。一方、最後のデータではないと判定された場合には、ステップＳ３０６を経ることなく、そのまま今回の整数部データについての処理を終了する。
【００３９】
一方、ステップＳ３０１において、存在しないと判定された場合には、ステップＳ３０７に進み、当該整数部データをスライド辞書２０５に書き込む。更に、ステップＳ３０８では、当該整数部データを圧縮することなく出力し、今回の整数部データについての処理を終了する。
【００４０】
＜圧縮部２０３における処理の具体例＞
次に圧縮部２０３における処理の具体例について上記図３と対応させながら説明する。ここでは、データ分離部２０１より出力された整数部データが“Ａ”、“Ａ”、“Ａ”、“Ａ”、“Ｂ”、“Ｂ”、“Ｂ”、“Ｃ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ａ”、“Ｂ”、“Ｃ”の順に圧縮部２０３に入力されてくる場合を一例として説明をする。
【００４１】
最初はスライド辞書２０５が空なので（ステップＳ３０１において「Ｎｏ」）、まず整数部データの先頭データの“Ａ”をスライド辞書２０５のエントリ“０”の領域に書き込む（ステップＳ３０７）。そして、整数部圧縮データとして“Ａ”を出力する（ステップＳ３０８）。
【００４２】
次の整数部データ“Ａ”は、スライド辞書２０５のエントリ“０”に書き込まれていて（ステップＳ３０１において「Ｙｅｓ」）、且つ１つ前のサイクルにて出力された整数部圧縮データとは異なるデータである（ステップＳ３０２において「Ｎｏ」）。このため、整数部圧縮データとして“０”を出力する（ステップＳ３０３）。更に、連続数カウンタをインクリメントするため、連続数カウンタは０→１となる（ステップＳ３０４）。
【００４３】
２番目の整数部圧縮データを出力した後は、連続する当該データが最後のデータであるか否かを判断し（ステップＳ３０５）、最後のデータでない場合には、２番目の整数部データについての処理を終了する。
【００４４】
次の整数部データ“Ａ”は、スライド辞書２０５のエントリ“０”に書き込まれており（ステップＳ３０１において「Ｙｅｓ」）、且つ１つ前のサイクルにて出力された整数部圧縮データと同じデータである（ステップＳ３０２において「Ｙｅｓ」）。更に、同じ値が連続する場合の最後の整数部データには該当しないため、連続カウンタをインクリメント（１→２）した後は（ステップＳ３０４）、当該３番目の整数部データについての処理を終了する（ステップＳ３０５において「Ｎｏ」）。
【００４５】
次の整数部データ“Ａ”は、スライド辞書２０５のエントリ“０”に書き込まれており（ステップＳ３０１の「Ｙｅｓ」）、且つ前サイクルの整数部圧縮データと同じデータである（ステップＳ３０２において「Ｙｅｓ」）。このため、連続カウンタをインクリメント（２→３）する（ステップＳ３０４）。更に、前記“Ａ”は同じ値が連続する場合の最後の整数部データに該当するため（ステップＳ３０５において「Ｙｅｓ」）、連続カウンタの値（３）を出力した後に、連続カウンタの値を“０“にクリアする（ステップＳ３０６）。
【００４６】
以上の処理を繰り返すことによって、“Ａ”、“０”、“３”、“Ｂ”、“１”、“２”、“Ｃ”、“２”、“１”、“Ｄ”、“５”、“Ｅ”、“０”、“−１”、“１”、“１”、“２”、“１”の順に、整数部圧縮データが生成される。
【００４７】
なお、整数部データをスライド辞書２０５に書き込む順番はエントリの番号順であるとする。また、スライド辞書２０５への書き込みが最大になった後、新たにスライド辞書２０５へ書き込む際には、スライド辞書に書き込まれたデータを１エントリ分シフトさせ、最大エントリのスライド辞書へ新たな整数部データを書き込むこととする。
【００４８】
例えば、エントリが０〜４のスライド辞書２０５とし、全てのエントリに整数部データが書き込まれているとする。この状態で新たなスライド辞書２０５への書き込む場合には、以下のように行う。
・エントリ“１”のデータをエントリ“０”へシフトする。
・エントリ“２”のデータをエントリ“１”へシフトする。
・エントリ“３”のデータがエントリ“２”へシフトする。
・エントリ“４”のデータがエントリ“３”へシフトする。
・新たな整数部データをエントリ“４”に書き込む。
【００４９】
なお、ここではスライド辞書２０５にない整数部データはそのまま出力するように説明したが、この場合は圧縮した整数部データと圧縮していない整数部データとを識別するコードが必要となる。ここでは圧縮していない整数部データの識別コードとして“５”（存在しないエントリ）を用いることとする。また、エントリ識別コードとして連続数の符号を用いることにする。つまり、上記の例では“Ｄ”の後に“５”があるので、次は圧縮してない整数部データであることを識別することができ、“Ｅ”の後の“０”、“−１”はエントリ“０”の整数部データが１つで次の圧縮データがエントリであることを識別することができる。
【００５０】
＜色分解処理部１１０の構成＞
次に色分解処理部１１０について、図４を用いて詳細に説明する。図４に示すように色分解処理部１１０は、参照点読み出し部４０１、伸長部４０５、格子点データ選択部４０７、重み係数算出部４０９、補間演算部４１１を備える。
【００５１】
参照点読み出し部４０１はプリント・バッファ１０３に格納されている整数部圧縮データを読み出し、図５のフローチャート（後述）に沿って当該整数部圧縮データを処理した後、色分解処理用ＬＵＴより格子点データを取り出し、出力する。
【００５２】
伸長部４０５はプリント・バッファ１１３に格納されている小数部圧縮データを読み出し、小数部圧縮データが圧縮されているか否かを判定する。小数部圧縮データが圧縮されているならば、当該小数部圧縮データを伸長し、格子点データ選択部４０７、及び重み係数算出部４０９へデータ（以下、小数部データと称する）を出力する。
【００５３】
格子点データ選択部４０７は、伸長部４０５から出力した小数部データを用いて、参照点読み出し部４０１から出力された格子点データの中で補間演算に必要な格子点データ（以下、補間用格子点データと称する）を選択し、補間演算部４１１に出力する。
【００５４】
重み係数算出部４０９は小数部データから重み係数を算出する。補間演算部４１１は、重み係数算出部４０９で算出された重み係数と格子点データ選択部４０７にて選択された補間用格子点データとに基づいて補間処理を行い、色分解処理データを出力する。
【００５５】
＜色分解処理部１１０における処理の流れ＞
次に図５を用いて色分解処理部１１０における処理の流れについて説明する。図５は、プリント・バッファ１０３より読み出された整数部圧縮データを処理する色分解処理部１１０における処理の流れを示す図である。
【００５６】
ステップＳ５０１では、プリント・バッファ１０３より読み出された整数部圧縮データが、圧縮された整数部データであるか否かを判定する。ステップＳ５０１において、圧縮された整数部データではないと判定された場合には、ステップＳ５０２に進み、当該整数部圧縮データから色分解処理用ＬＵＴ１１１にアクセスする際のアドレスを生成する。
【００５７】
ステップＳ５０３では、生成されたアドレスに基づいて色分解処理用ＬＵＴ１１１から格子点データを取り出し、出力する。更に、当該格子点データをスライド辞書４０３に格納する。
【００５８】
一方、ステップＳ５０１において、圧縮された整数部データであると判定された場合には、ステップＳ５０４に進む。ステップＳ５０４では、整数部圧縮データが示すスライド辞書４０３のエントリ番号から格子点データを取り出し、次のタイミングで入力された整数部圧縮データの回数分、整数部データを出力する。
【００５９】
＜色分解処理部１１０における処理の具体例＞
次に色分解処理部１１０における処理の具体例について上記図５と対応させながら説明する。ここでは、整数部圧縮データが“Ａ”、“０”、“３”、“Ｂ”の順に参照点読み出し部４０１により読み出された場合を一例に説明する（アルファベットは圧縮されていない整数部データを、数字は圧縮されている整数部データをそれぞれ示す）。
【００６０】
まず“Ａ”を読み出すと、“Ａ”を圧縮されていない整数部データと判定し（ステップＳ５０１において「Ｎｏ」）、“Ａ”から色分解処理用ＬＵＴ１１１の各格子点データにアクセスするためのアドレスを生成する（ステップＳ５０２）。そして生成したアドレスに基づいて色分解処理用ＬＵＴ１１１から格子点データを取り出し、格子点データ選択部４０７へ出力する。更に、当該格子点データをスライド辞書４０３のエントリ“０”に書き込む（ステップＳ５０３）。なお、色分解処理用ＬＵＴ１１１の各格子点データにアクセスするためのアドレスの生成は“Ａ”に対してオフセット値を加えることにより行うものとする。
【００６１】
次に整数部圧縮データ“０”を読み出すと、前記整数部圧縮データ“０”は圧縮されているので（ステップＳ５０１において「Ｙｅｓ」）、すでにスライド辞書４０３に書き込まれていると判定する。これにより、エントリ“０”が示す格子点データをスライド辞書４０３より取り出す。そして、格子点データ選択部４０７に対して当該格子点データを、次の整数部圧縮データ“３”の数だけ繰り返し出力する（ステップＳ５０４）。
【００６２】
次に“Ｂ”を読み出すと、“Ａ”を読み出した場合と同じようにして、色分解処理用ＬＵＴ１１１から格子点データを取り出し、格子点データ選択部４０７へ出力する。そして、当該格子点データをスライド辞書４０３のエントリ“１”に書き込む（ステップＳ５０１→５０２→５０３）。
【００６３】
以上のようにして、格子点データを格子点データ選択部４０７に出力する。
【００６４】
なお、スライド辞書４０３または色分解処理用ＬＵＴ１１１から取り出す格子点データの数は色分解での補間方法によって決定するものとする。例えば、４点補間法であれば、４つの格子点データを取り出す。また、四面体補間法であれば８つの格子点データを取り出す。
【００６５】
また、スライド辞書４０３の振る舞いは前述したスライド辞書２０５と同じである。更に、スライド辞書４０３のエントリ数はスライド辞書２０５のエントリ数と同じか、またはそれ以上である。ただし、スライド辞書４０３のエントリのシフトタイミングはエントリ数にかかわらずスライド辞書２０５と同一でなければならない。これにより、スライド辞書２０５のデータが新たなデータの書き込みによってエントリがシフトしたとしても、問題なくスライド辞書４０３から格子点データを取り出すことができる。
【００６６】
また、スライド辞書４０３のエントリ数をスライド辞書２０５より多く持つことで、スライド辞書の先読みが可能となり、後段処理部でミスヒットによるペナルティがあったとしても、そのペナルティを隠蔽し、リアルタイム性を保持することができる。
【００６７】
以上の説明から明らかなように、本実施形態では、キャッシュ機構を用いた色空間変換処理でのヒット率の低下に起因する処理時間の変動を吸収するためのプリント・バッファを配するにあたり、データ分離圧縮部１１４を配することとした。これにより、プリント・バッファには、圧縮したＰＤ−ＲＧＢデータを格納されることとなり、プリント・バッファの容量を抑えることが可能となった。
【００６８】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施形態にかかる画像処理装置を備える印刷装置の機能構成を示す図である。
【図２】データ分離圧縮部の詳細を示す図である。
【図３】データ分離部より出力された整数部データを処理する圧縮部における処理の流れを示す図である。
【図４】色分解処理部の詳細を示す図である。
【図５】プリント・バッファより読み出された整数部圧縮データを処理する色分解処理部における処理の流れを示す図である。
【図１】
2008015943.tif 000003
【図２】
2008015943.tif 000004
【図３】
2008015943.tif 000005
【図４】
2008015943.tif 000006
【図５】
2008015943.tif 000007