(57)【要約】【課題】  入力される画像データに依存しないリフィル・レイテンシの小さい画像処理技術を提供すること。【解決手段】  画像処理装置は、入力されたデジタル画像データを第１ビット深度のデータと第２ビット深度のデータとに分割する分割部と、第１ビット深度のデータに基づいて、第１記憶部から参照値を読み出すための情報を格納したスライド辞書と、第１ビット深度のデータとスライド辞書とを関係付けるコード情報と、を生成する生成部と、スライド辞書に格納された情報に基づいて、第１記憶部から参照値を読み出し、第２記憶部に格納する読み出し部と、第２ビット深度のデータに基づき補間演算のための重み係数を算出する補間係数算出部と、第２記憶部からコード情報に基づいて読み出された参照値を、重み係数とに基づき補間する補間演算部とを備える。【選択図】  図２
2008090686.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データを処理する画像処理装置であって、
入力されたデジタル画像データを第１ビット深度のデータと第２ビット深度のデータとに分割する分割手段と、
前記第１ビット深度のデータに基づいて、第１記憶手段から参照値を読み出すための情報を格納したスライド辞書と、前記第１ビット深度のデータと前記スライド辞書とを関係付けるコード情報と、を生成する生成手段と、
前記スライド辞書に格納された情報に基づいて、前記第１記憶手段から参照値を読み出し、第２記憶手段に格納する読み出し手段と、
前記第２ビット深度のデータに基づき補間演算のための重み係数を算出する補間係数算出手段と、
前記第２記憶手段から前記コード情報に基づいて読み出された参照値を、前記重み係数とに基づき補間する補間演算手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記コード情報には、前記スライド辞書に格納されている情報の開始を示すデータ、終了を示すデータ及び前記情報の繰り返しを示す連続数のデータが含まれていることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記スライド辞書の格納領域と同数となる複数の前記補間演算手段が設けられていることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
補間演算の並列処理に使用するために前記補間演算手段の割当てを行う調停手段を更に備え、
前記調停手段は、前記コード情報に含まれるデータから（（「終了を示すデータ」−「開始を示すデータ」＋１）ｘ「連続数」）を算出し、前記算出結果に基づいて補間演算の並列処理に使用する前記補間演算手段の割当てを行うことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第２のビット深度は、前記入力されたデジタル画像データのビット深度―前記第１のビット深度の関係を有することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記生成手段は、前記第１のビット深度のデータを格納する固定サイズの辞書と、前記固定サイズの辞書と前記第１ビット深度のデータとを関係付けるコード情報と、を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記固定サイズの辞書に格納された情報と、前記コード情報と、前記第２のビット深度のデータとを単位として格納する書き込み手段と、
前記固定サイズの辞書に格納された情報を単位として参照値に変換する変換手段と、
を更に備えることを特徴とする請求項１または６に記載の画像処理装置。
【請求項８】
前記補間係数算出手段は、前記コード情報に従い読み出された前記第２ビット深度のデータに基づき補間演算のための重み係数を算出することを特徴とする請求項６または７に記載の画像処理装置。
【請求項９】
前記補間演算手段は、前記変換手段により変換された前記参照値を、前記補間係数算出手段により算出された重み係数とに基づき補間することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
画像データを入力する入力手段と、
前記入力手段の色空間を出力手段の色空間に変換するために前記入力された画像データの補間を行う請求項１乃至９のいずれかに記載の画像処理装置と、
前記画像処理装置により補間された画像データに基づき記録媒体上に画像形成する出力手段と、
を備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理技術に関するものである。
【背景技術】
【０００２】
近年、入力機器としてスキャナ、ビデオカメラなどが普及している。一方、出力機器としては、インクジェット、染料熱昇華型あるいは電子写真などの方式を用いた各種カラープリンタが普及している。これらのカラー入出力機器は、それぞれ固有の色空間を有している。例えば、あるスキャナで得たカラー画像をそのまま別のカラープリンタに転送して印刷する場合、色空間の相違により、印刷されたカラー画像の色はスキャナによって読み取られたオリジナルのカラー画像の色と相違する。
【０００３】
このようなカラー画像等に対するデバイス間での色再現性の問題を解決するためには、入力機器の色空間を出力機器の色空間に変換する処理（以下、「色空間変換処理」という）が必要となる。入出力機器の色再現性を高めるために、色空間変換機能を有する画像処理回路が入出力機器に搭載されているものもある。
【０００４】
例えば、色空間変換機能を有する画像処理回路にキャッシュ機構を備え、色空間変換に必要な参照値を格納する３次元ルックアップテーブル（３Ｄ-ＬＵＴ）をＤＲＡＭ等の外部メモリに格納する技術が特許文献１で提案されている。
【０００５】
特許文献１では、補間演算に使用される色空間を単位立体でモデル化し、単位立体の各頂点に対して小容量の内蔵ＳＲＡＭを割当て、この内蔵ＳＲＡＭをキャッシュメモリとして使用している。
【０００６】
一般的なダイレクトマッピング方式のキャッシュ機構では色空間アドレスの下位ビットによってキャッシュメモリの格納先が決定されるため連続する画像データ間で格納先が競合しキャッシュ機構が有効に機能しないことがある。つまり、アドレスの下位ビットが同一で上位ビットが異なる画像データが交互に入力され続けるとき、交互にキャッシュメモリを上書きして常にミスヒットを引き起こすことになる。
【０００７】
ダイレクトマッピング方式のキャッシュ機構がミスヒットしたときには、３Ｄ-ＬＵＴを保持する外部メモリ（ＤＲＡＭ）から補間演算実行時に必要なデータのみを読み出しキャッシュメモリを更新し、補間演算を実行する。色空間変換の画像処理回路にキャッシュ機構を備えることで内蔵ＳＲＡＭの容量を削減することが可能である。
【特許文献１】特開２００４−２７４１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、キャッシュ機構を備えた画像処理回路で画像処理する場合、キャッシュ機構がミスヒットしたときの処理性能低下が問題となる。キャッシュ機構がミスヒットと判別し、ＤＲＡＭなどの外部メモリから所望のデータを読み出し、キャッシュメモリを更新するまで、画像処理回路は停止して画像処理が実行できなくなる。
【０００９】
このデータ更新のための待ち時間を「リフィル・レイテンシ」と呼ぶ。リフィル・レイテンシが長ければ長いほどキャッシュ機構がミスヒットしたときの処理性能の低下は大きくなる。キャッシュメモリの容量を増やし、ミスヒットの頻度を減らすことで処理性能の低下を抑えることが一般的な解決策として挙げられる。
【００１０】
しかしながら、ミスヒットの頻度は画像処理回路に対する入力画像データの統計的な偏りに依存し、キャッシュメモリの容量増加だけでは十分な解決策とならない。またキャッシュメモリの容量を大幅に増加させるという解決策は本来キャッシュ機構を備えた理由であるＬＳＩの製造コストの削減に相反する解決策である。
【００１１】
キャッシュのミスヒット頻度を減らす工夫を検討する傍らで、ミスヒットが発生したときのリフィル・レイテンシをできるだけ短くし、ミスヒットの処理性能低下の程度を削減することが求められる。
【００１２】
リフィル・レイテンシの小さい画像処理システムを構築することが、入力画像データの統計的な偏りに依存しない安定な画像処理システムの構築に繋がるが、このようなリフィル・レイテンシの削減方法は、特許文献１では開示されていない。
【００１３】
また、近年、プリンタなどの画像処理装置において、高画質化のために画像処理の解像度が著しく増加する傾向にある。このような画像処理の解像度の増加に対してＬＳＩの動作周波数を高めるという解決策がある。しかしコンシューマ製品向けＬＳＩの場合には消費電力などの諸問題があり、ＬＳＩの動作周波数を高めるという解決策を反映できないケースも存在する。このようなケースでは、画像処理回路を並列化して、複数画素を並列に処理することで単位動作周波数あたりの処理性能を向上させることが考えられる。
【００１４】
しかしながら色空間変換のように処理すべき一連の画素ごとにランダムに３Ｄ-ＬＵＴを参照する画像処理では、並列化する画像処理回路ごとに同一の３Ｄ-ＬＵＴを重複して持たない限り、複数画素の並列処理の実現は困難である。
【００１５】
本発明は、上記の従来技術を鑑みてなされたものであり、入力される画像データに依存しないデータ更新のための待ち時間（リフィル・レイテンシ）の小さい画像処理技術の提供を目的とする。
【００１６】
あるいは、画像処理回路を並列化し複数画素を同時に補間処理することを可能にする画像処理技術の提供を目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る画像処理装置は、入力された画像データを処理する画像処理装置であって、
入力されたデジタル画像データを第１ビット深度のデータと第２ビット深度のデータとに分割する分割手段と、
前記第１ビット深度のデータに基づいて、第１記憶手段から参照値を読み出すための情報を格納したスライド辞書と、前記第１ビット深度のデータと前記スライド辞書とを関係付けるコード情報と、を生成する生成手段と、
前記スライド辞書に格納された情報に基づいて、前記第１記憶手段から参照値を読み出し、第２記憶手段に格納する読み出し手段と、
前記第２ビット深度のデータに基づき補間演算のための重み係数を算出する補間係数算出手段と、
前記第２記憶手段から前記コード情報に基づいて読み出された参照値を、前記重み係数とに基づき補間する補間演算手段と、を備えることを特徴とする。
【００１８】
あるいは、本発明に係る画像形成装置は、
画像データを入力する入力手段と、
前記入力手段の色空間を出力手段の色空間に変換するために前記入力された画像データの補間を行う上記の画像処理装置と、
前記画像処理装置により補間された画像データに基づき記録媒体上に画像形成する出力手段と、を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、入力される画像データに依存しないリフィル・レイテンシの小さい画像処理技術の提供が可能になる。
【００２０】
あるいは、画像処理回路を並列化し複数画素を同時に補間処理することを可能にする画像処理技術の提供が可能になる。
【発明を実施するための最良の形態】
【００２１】
以下に、図面を参照して、本発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２２】
第１乃至第３実施形態で説明する構成は、画像処理において入力機器の色空間を出力機器の色空間に変換する色空間変換における入力画像データの補間処理に好適なものである。本発明は、色空間変換に限定されるものではなく、それ以外の、参照値を記憶したメモリを用いた画像処理にも適用することができる。
【００２３】
（第１実施形態）
図１は、本実施形態に係る画像形成装置１５０として、カラー複写機の構成例を示す図である。画像読み取り部１２０は、レンズ１２２、ＣＣＤセンサ１２４、アナログ信号処理部１２６等により構成される。レンズ１２２を介しＣＣＤセンサ１２４に結像された原稿１００の画像が、ＣＣＤセンサ１２４によりＲ、Ｇ、Ｂのアナログ電気信号に変換される。変換されたアナログ電気信号の画像情報は、アナログ信号処理部１２６に入力され、Ｒ、Ｇ、Ｂの各色毎に補正等が行われた後にアナログ・デジタル変換（Ａ／Ｄ変換）される。
【００２４】
デジタル化されたフルカラー信号（以下、「デジタル画像信号」という）は、画像処理部１３０に入力される。画像処理部１３０はデジタル画像信号に対し、入力γ補正、色空間変換、濃度補正、スクリーン処理を施し、プリンタ部１４０へ処理後のデジタル画像信号を出力する。
【００２５】
本実施形態で説明する色空間変換における補間ユニットは、画像処理部１３０で行なわれる色空間変換を実現している。
【００２６】
プリンタ部１４０は、例えば、レーザ等の照射を制御する不図示の露光制御部、画像形成部、記録媒体（以下、「シート」ともいう）の搬送を制御する不図示の搬送制御部等により構成される。プリンタ部１４０は、入力されたデジタル画像信号によりシート上に画像を記録する。
【００２７】
また、ＣＰＵ回路部１１０は、演算制御用のＣＰＵ１１２、固定データやプログラムを格納するＲＯＭ１１４、データの一時保存やプログラムのロードに使用されるＲＡＭ１１６、外部記憶装置１１８等により構成される。ここで、外部記憶装置１１８は、画像形成装置１５０が使用するパラメータやプログラムを記憶するハードディスク等の記憶媒体である。ＲＡＭ１１６のデータやプログラム等は、外部記憶装置１１８からロードされる構成とすることも可能である。ＣＰＵ回路部１１０は、画像読み取り部１２０、画像処理部１３０、プリンタ部１４０等を制御し、画像形成装置１５０のシーケンスを統括的に制御する。
【００２８】
（連続数付きスライド辞書法による補間処理）
次に、連続数付きスライド辞書法による補間処理の前提として、一般的なスライド辞書法（sliding-dictionary method）であるＬＺ７７符号化について説明する。ＬＺ７７符号化（スライド辞書法）とは、圧縮を行っている入力文字列から文字列のパターンを切り出す。そして、そのパターンと一致する、前方にある入力文字列内で、同じ順番で文字が並んだ文字列のパターン（最長一致パターン）を最長一致パターンの入力文字列内での位置と長さとで置換する符号化方式である。例えば、入力文字列として、『ＡＢＣＤ「ＡＢＣ」ＥＦＧ・・・』を想定すると、「ＡＢＣ」が前方にある最長一致パターンとなる。「ＡＢＣ」の先頭から４文字戻って（位置）、３文字が一致するパターン（長さ）として、一致する文字列「ＡＢＣ」が置換される。
【００２９】
ＬＺ７７符号化に関しては、例えば、奥村晴彦著「Software Technology 13 Ｃ言語による最新アルゴリズム事典」 （平成３年１２月１０日 技術評論社 発行）の第３８９頁〜第３９３頁に説明が記載されている。また、「圧縮アルゴリズム符号化の原理とＣ言語による実装」（２００３年１１月２５日 ソフトバンクパブリッシング株式会社発行）の第１２５頁から第１３１頁にその説明が記載されている。
【００３０】
ＬＺ７７符号化（スライド辞書法）では過去に出現した文字列（データ列）のパターン性に着目し、そのパターンを基に辞書を構築する。次に代入されたデータ列と同じデータ列が辞書に存在するか判定し、同じデータ列が辞書に存在する場合、代入されたデータ列を辞書の位置と一致したデータ列の長さを示すコード値として表現する。
【００３１】
一致したデータ列の長さが十分に長い場合、コード値の方が代入されたデータ列より情報量が少なくなる。この原理によりＬＺ７７符号化では入力されたデータ列の情報量が圧縮される。ＬＺ７７符号化では辞書の大きさを固定長とし、辞書が一杯になった場合は辞書に登録するデータと同数のデータを辞書の先頭から消去し、残りのデータを辞書の中でスライド処理して、末尾に新規に登録したいデータを追加する。このようなスライド処理があるためＬＺ７７符号化はスライド辞書法と呼ばれる。
【００３２】
スライド辞書法は文字などの圧縮には適しているが、同じデータが連続すると辞書に同じデータが登録されて、辞書に登録されたデータの多様性が失われ、圧縮効率が低下する。局所的に同一データが連続することが多い画像データに対してはＬＺ７７符号化によるデータ圧縮は効率が悪い場合がある。
【００３３】
一方、画像データの圧縮法にランレングス圧縮法がある。ランレングス圧縮法では、連続するデータをその値と連続画素数を用いてコード値化する。そのため連続画素数が大きいほどランレングス圧縮法による画像データの圧縮率は向上する。しかしながら画像データが周期的に変化し、同一の画像データが連続しない場合は画像データの圧縮率は悪くなる。
【００３４】
画像処理部１３０において、ランレングス圧縮法またはＬＺ７７符号化（スライド辞書法）を用いて辞書を作成して色変換処理を実行する補間ユニットに適用することが可能である。また、色変換処理を実行する補間ユニットとして、ＬＺ７７とランレングス圧縮法とを併用した連続数付きスライド辞書を作成して画像処理部部１３０に適用することも可能である。
【００３５】
次に、本実施形態に係る連続数付きスライド辞書について説明する。図５は、本実施形態に係る連続数付きスライド辞書を説明する図である。処理すべきデータ列５５１が「Ａ」、「Ａ」、「Ａ」、「Ａ」、「Ｂ」、「Ｂ」、「Ｂ」、「Ｃ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ａ」、「Ｂ」、「Ｃ」・・・の順に入力されると仮定する。
【００３６】
連続数付きスライド辞書（以下、単に「スライド辞書」という）５５２は、データ列５５１から検出された初出のデータ（文字）を格納するエントリ領域（[０]〜[４]）を有する。
【００３７】
コード値は、処理すべきデータ列５５１に含まれるデータ（文字）とスライド辞書５５２とを関係付ける情報であり、「開始」、「終了」、「連続数」のデータを有する。「開始」及び「終了」には、データ（文字）がスライド辞書５５２のうち、どのエントリ領域に格納されているかを示すデータが格納される。「連続数」は、「開始」から「終了」までのデータ（文字）の繰り返し回数が格納される。
【００３８】
処理すべきデータ列５５１が入力されると、ＣＰＵ１１２は、データ列５５１のうちスライド辞書５５２に書き込まれていない初出のデータ（文字）を検出し、スライド辞書５１２のエントリ領域（[０]〜[４]）に順次書き込む。データ列５０１のうち最初の「Ａ」５００はスライド辞書５５２のエントリ領域に存在していないので、ＣＰＵ１１２は、スライド辞書５５２のエントリ領域[０]に「Ａ」を書き込む。そして、コード値５３１の「開始」のデータとして、スライド辞書５５２のエントリ領域[０]に対応するデータ（文字）「Ａ」が書き込まれたことを示す「０」が格納される。
【００３９】
次に、ＣＰＵ１１２は、後続のデータ（文字）「Ａ」５０１と直前に処理されたデータ（文字）「Ａ」５００との同一性を判定する。
【００４０】
データ（文字）が同一の場合、スライド辞書５５２のエントリ領域[０]には既にデータ（文字）「Ａ」が書き込まれている。そのため、ＣＰＵ１１２は同一データ（文字）である「Ａ」５０１の書き込みを行わずに、コード値５３１の「連続数」のデータを「１」だけ増加させる。
【００４１】
ＣＰＵ１１２は、後続のデータ（文字）「Ａ」５０２、「Ａ」５０３に関しても同様に直前に処理されたデータ（文字）との同一性の判定を行う。判定結果が同一である場合、ＣＰＵ１１２は、コード値５３１の「連続数」のデータを順次カウントアップする。
【００４２】
次に、ＣＰＵ１１２は、後続のデータ（文字）「Ｂ」５０４とデータ（文字）「Ａ」５０３との同一性を判定し、初出のデータ（文字）「Ｂ」５０４をスライド辞書５５２のエントリ領域[１]に書き込む。データ（文字）「Ｂ」５０４により、データ（文字）「Ａ」の連続性が途切れることになる。ＣＰＵ１１２はコード値５３１の「終了」のデータとして、スライド辞書５５２のエントリ領域[０]に対応するデータ（文字）「Ａ」が書き込まれたことを示す「０」を格納する。また、コード値５３１の連続数にはデータ「４」が格納される。
【００４３】
データ（文字）「Ｂ」５０５、５０６についても同様に、直前に処理されたデータ（文字）との同一性の判定が施され、その判定結果に基づいて、コード値５３２の「終了」、「連続数」に対応するデータが格納される。
【００４４】
以上の処理を入力されたデータ列５５１の全てについて施すことにより、スライド辞書５５２のエントリ領域には、初出のデータ（文字）が書き込まれる。そして、コード値には処理すべきデータ列５５１に含まれるデータ（文字）とスライド辞書５５２とを関係付けるデータが書き込まれる。
【００４５】
スライド辞書５５２のエントリ領域[２]にはデータ（文字）「Ｃ」が書き込まれ、エントリ領域[３]にはデータ（文字）「Ｄ」が書き込まれ、そして、エントリ領域[４]にはデータ（文字）「Ｅ」が書き込まれている。
【００４６】
コード値５３１において、「開始」のデータ（文字）はスライド辞書のエントリ領域[０]に格納されていることを示し、「終了」のデータ（文字）はスライド辞書のエントリ領域[０]に格納されていることを示す。「連続数」は、「開始」から「終了」までのデータ（文字）「Ａ」の繰り返しが「４」であることを示す。
【００４７】
コード値５３２において、「開始」のデータ（文字）はスライド辞書のエントリ領域[１]に格納されていることを示し、「終了」のデータ（文字）はスライド辞書のエントリ領域[１]に格納されていることを示す。「連続数」は、「開始」から「終了」までのデータ（文字）「Ｂ」の繰り返しが「３」であることを示す。
【００４８】
コード値５３３において、「開始」及び「終了」のデータ（文字）はスライド辞書のエントリ領域[２]に格納されていることを示し、「連続数」は、そのデータ（文字）「Ｃ」の繰り返しが「２」であることを示す。
【００４９】
コード値５３４において、「開始」及び「終了」のデータ（文字）はスライド辞書のエントリ領域[３]に格納されていることを示し、「連続数」は、そのデータ（文字）「Ｄ」の繰り返しが「１」であることを示す。
【００５０】
コード値５３５において、「開始」及び「終了」のデータ（文字）はスライド辞書のエントリ領域[４]に格納されていることを示し、「連続数」は、そのデータ（文字）「Ｅ」の繰り返しが「１」であることを示す。
【００５１】
コード値５３６において、「開始」のデータ（文字）はスライド辞書５５２のエントリ領域[０]に格納されていることを示し、「終了」のデータ（文字）はスライド辞書５５２のエントリ領域[２]に格納されていることを示す。「連続数」は、「開始」から「終了」までのデータ（文字）「ＡＢＣ」の繰り返しが「１」であることを示す。
【００５２】
コード値５３７において、「開始」のデータ（文字）はスライド辞書のエントリ領域[３]に格納されていることを示し、「終了」のデータ（文字）はスライド辞書のエントリ領域[４]に格納されていることを示す。「連続数」は、「開始」から「終了」までのデータ（文字）「ＤＥ」の繰り返しが「３」であることを示す。
【００５３】
ＣＰＵ１１２は以上の処理を繰り返すことによって、スライド辞書５５２、コード値（５３１〜５３７）を出力する。
【００５４】
本実施形態に係る補間ユニットは、スライド辞書を多次元（Ｎ次元）のデジタル画像データのうち整数データの符号化に使用する。画像処理データは局所領域では同一データ値を持つことが多い上、整数データは画像処理データの上位ビットとして分離されることから、なおさら整数データは同一データ値が連続する傾向にある。そのため連続数付きスライド辞書を整数データの符号化に使用することは効果的なものとなる。
【００５５】
（補間ユニットの説明）
次に、本実施形態にかかる補間ユニットの回路構成と処理の流れを説明する。図２は第１実施形態に係る補間ユニットの回路構成を示す図である。補間ユニットは、Ｎ次元の入力信号（デジタル画像データ）に対して補間演算を行い、新たな１次元の出力信号（出力データ）を出力する。この出力データに基づいて、入力機器の色空間を出力機器の色空間に変換することができる。
【００５６】
まず、画像読み取り部１２０によるデジタル画像信号が補間ユニットに入力される。このデジタル画像信号は多次元（Ｎ次元）の入力信号である。
【００５７】
デジタル画像信号がデータ分割部２１０に入力されると、データ分割部２１０はデジタル画像信号を整数データと小数データに分割する。デジタル画像信号がＮ次元の入力信号であるため、デジタル画像信号を分割した後の整数データと小数データはともにＮ次元の信号となる。
【００５８】
データ分割部２１０による分割処理において、補間演算のときに使用される単位超立体の個数に応じてそのビット深度が決定される。例えば、Ｎ次元空間のある次元（軸）について単位超立体が２Ｍ-１個ある場合、その次元（軸）に対応する整数データのビット深度はＭビットとなる。小数データはデジタル画像信号のビット深度（Ｌ）から整数データのビット深度（Ｍ）を差し引いた、残りのビット深度（Ｌ−Ｍ）で表現される。
【００５９】
Ｎ次元の整数データはスライド辞書生成部２２０に入力され、スライド辞書生成部２２０は、Ｎ次元の整数データをＤＲＡＭ２４５の多次元ＬＵＴ２４６から色空間変換に必要な参照値を読み出すための情報（アドレス）に変換する。
【００６０】
スライド辞書生成部２２０は１次元のアドレスに対して、図５で説明したスライド辞書５５２およびコード値（５３１〜５３７）を生成する。スライド辞書生成部２２０は１次元のアドレスから初出のデータを検出し、スライド辞書のエントリ領域に格納する。コード値は、１次元のアドレスに含まれるデータとスライド辞書の各エントリ領域に格納されたデータとを、関係付けるためのデータ（「開始」、「終了」、「連続数」）を有する。
【００６１】
「開始」及び「終了」には、スライド辞書の各エントリ領域に格納されたデータのうち、どのエントリ領域に格納されているかを示すデータが格納される。「連続数」は、「開始」から「終了」までのデータの繰り返し回数が格納される。
【００６２】
スライド辞書生成部２２０は１次元のアドレスに基づいて生成されたスライド辞書を読み出し部２３０に送信する。一方、スライド辞書生成部２２０はスライド辞書に対応するコード値をバッファ２２５に格納する。また、データ分割部２１０により分割されたＮ次元の小数データはバッファ２１５に格納される。
【００６３】
読み出し部２３０はシステムバス２４７経由でスライド辞書の各エントリ領域に格納されているアドレスを順次ＤＲＡＭコントローラ２４０に転送する。ＤＲＡＭコントローラ２４０は、色空間変換に必要な参照値が格納されている多次元ＬＵＴ２４６を格納するＤＲＡＭ２４５に対してデータの書き込みと読み出しが可能である。読み出し部２３０はＤＲＡＭコントローラ２４０を制御してＤＲＡＭ２４５の多次元ＬＵＴ２４６から補間演算に使用するために、各エントリ領域に格納されているアドレスに対応する参照値を読み出し、順次バッファ２６０に格納する。そして、全てのエントリ領域に格納されているアドレスに対応した参照値（以下、「ＬＵＴデータセット」という。）がバッファ２６０に格納される。
【００６４】
分割されたＮ次元の小数データが格納されているバッファ２１５、コード値が格納されているバッファ２２５、ＬＵＴデータセットが格納されているバッファ２６０はＦＩＦＯ形式で構成され、各ＦＩＦＯの段数は２１５、２２５、２６０の順に大きくなる。バッファ２６０の段数はスライド辞書のエントリ領域の数と同じとなる。
【００６５】
バッファ２１５、２２５の段数が画像処理システムのリフィル・レイテンシに対して十分であれば、画像処理システムに入力される画像データの局所領域において、データ更新を必要最小限にすることができる。
【００６６】
調停部２７０はバッファ２２５からコード値を読み出すための制御信号を生成し、バッファ２２５からコード値を読み出す。調停部２７０は、読み出したコード値に従ってバッファ２６０からＦＩＦＯ形式のＬＵＴデータセットを参照し、コード値の開始、終了、連続数に従ってＬＵＴデータセットを読み出す。調停部２７０は読み出したＬＵＴデータセットを補間演算部２９０に入力する。
【００６７】
また、調停部２７０はバッファ２１５からＮ次元の小数データを読み出すための制御信号を生成し、制御信号に基づいてバッファ２１５からＮ次元の小数データを読み出す。そして、調停部２７０はＮ次元の小数データを補間係数算出部２８０に入力し、補間係数算出部２８０は入力されたＮ次元の小数データを重み係数（補間係数）に変換する。
【００６８】
補間演算部２９０は調停部２７０により読み出されたＬＵＴデータセットを、補間係数算出部２８０により変換された重み係数（補間係数）に基づき、積和による補間演算を行い１次元（スカラ）の出力データを出力する。
【００６９】
従来のダイレクトマッピング方式のキャッシュ機構ではアドレスの下位ビットによってキャッシュメモリの格納先が決定される。そのため連続する画像データ間で格納先が競合しキャッシュ機構が有効に機能しないことがある。
【００７０】
本実施形態に係る補間ユニットの補間処理は、入力される画像データのアドレスに依存しない。そのため、アドレスの下位ビットが同一で上位ビットが異なる画像データが交互に入力され続ける場合でも、格納先の競合を回避することができるので、リフィル・レイテンシの小さい画像処理装置を構築することが可能になる。
【００７１】
あるいは、本実施形態に拠れば、バッファ段数が画像処理システムのリフィル・レイテンシに対して十分であれば、リフィルのための外部メモリアクセスを低減し、リフィル・アクセスを少なくすることができる。
【００７２】
（第２実施形態）
次に、第２実施形態に係る補間ユニットの回路構成と処理の流れを説明する。図３は、第２実施形態に係る補間ユニットの回路構成を示す図であり、第１実施形態に係る補間ユニットの回路構成を示す図２と同一の構成に関しては、同一の参照番号を付し、説明を省略する。図６は、補間ユニットにより処理されるデータの関係を概略的に示す図である。
【００７３】
まず、画像読み取り部１２０によるＮ次元のデジタル画像信号６０１が補間ユニットに入力される。第１実施形態と同様にデジタル画像信号はデータ分割部２１０で整数データ６０２と小数データ６０３に分割される。分割された整数データ６０２及び小数データ６０３はＮ次元のデータとなる。Ｎ次元の整数データ６０２は辞書生成部３０５に入力され、Ｎ次元の小数データ６０３はバッファ２１５に格納される。
【００７４】
辞書生成部３０５は、Ｎ次元の整数データ６０２を、ＤＲＡＭ２４５の多次元ＬＵＴ２４６から色空間変換に必要な参照値を読み出すための情報（アドレス）６０４に変換する。辞書生成部３０５は１次元のアドレス６０４に対して、辞書６０５およびコード値６０６を生成する。辞書生成部３０５は１次元のアドレス６０４から初出のデータを検出し、辞書６０５のエントリ領域（[０]、[１]、・・・[ｍ]）に順次格納する。辞書生成部３０５は、内部にあるＦＩＦＯの段数（辞書のエントリ領域の数）を固定数として、ＦＩＦＯが一杯になった段階でデータ分割部２１０からの入力を停止する。
【００７５】
そして、入力の停止に基づいて、辞書生成部３０５は、データ分割部２１０からの入力を停止するまでに生成した辞書６０５、コード値６０６をパッキング部３１０に入力する。パッキング部３１０に辞書６０５、コード値６０６が入力されると、辞書生成部３０５内部のＦＩＦＯは空の状態になる。パッキング部３１０は、辞書６０５、コード値６０６の入力を受けると、バッファ２１５から小数データを読み出す。
【００７６】
そして、パッキング部３１０は、辞書、コード値及び小数データをまとめたパッキングデータとして、書き込み部３２０に入力する。書き込み部３２０はシステムバス２４７経由でＤＲＡＭコントローラ２４０を制御してＤＲＡＭ３７０にパッキングデータを格納する。
【００７７】
辞書生成部３０５のＦＩＦＯが空の状態になると、辞書生成部３０５は、データ分割部２１０からの整数データ６０２の入力を再開し、同様の処理を繰り返す。
【００７８】
ＤＲＡＭ３７０上には複数回のパッキングデータの書き込みにより生成されるパッキングデータセット３３０が生成される。パッキングデータセット３３０は、１回目の書き込み（辞書（１）、コード値（１）、小数データ（１））、２回目の書き込み（辞書（２）、コード値（２）、小数データ（２））、・・・というデータ構造３３５を有する。
【００７９】
パッキングデータセット３３０のデータ構造３３５において、辞書（１）がＤＲＡＭ３７０上に格納されるとＣＰＵ３００は辞書（１）を対応するＬＵＴデータセット（１）（図６の６０７）に変換する。また、辞書（２）がＤＲＡＭ３７０上に格納されるとＣＰＵ３００は辞書（２）を対応するＬＵＴデータセット（２）（図６の６０８）に変換する。ここで、ＬＵＴデータセット（１）、ＬＵＴデータセット（２）・・・の変換において、ＣＰＵ３００は色空間変換に必要な参照値が格納されている多次元ＬＵＴ２４６を参照することが可能である。
【００８０】
パッキングデータセット３３０の辞書（１）、（２）、・・・が順次、ＬＵＴデータセット（１）、（２）、・・・に変換される。そして、パッキングデータセット３３０はデータ構造３４５を有する補間データセット３４０に変換される。
【００８１】
読み出し部３５０は、辞書（１）がＬＵＴデータセット（１）に変換された段階で、ＬＵＴデータセット（１）をバッファ３６０にプリロードする。このときバッファ３６０容量は、辞書生成部３０５内の辞書６０５のエントリ数（内部ＦＩＦＯの段数）と同数のＬＵＴデータセットを格納可能な容量を有する。
【００８２】
次に、読み出し部３５０はコード値（１）を読み込み、コード値（１）に基づいて対応する小数データを順次読み出す。コード値（１）に含まれる「開始」、「終了」、「連続数」のデータより、辞書（１）に格納されるデータのビット深度Ｍは、Ｍ＝（（「終了」−「開始」＋１）ｘ「連続数」）より算出することが可能である。
【００８３】
例えば、コード値（１）に基づき算出された辞書（１）のデータのビット深度Ｍが整数データの１次元分（整数データ（１））に相当する場合、読み出し部３５０は対応する小数データ（１）をフルに読み出す。
【００８４】
読み出し部３５０の処理は、補間データセット３４０に格納されているデータが無くなるまで繰り返し実行される。読み出し部３５０は、読み出した小数データを補間係数算出部２８０に入力し、補間係数算出部２８０は入力された小数データを重み係数（補間係数）に変換する。
【００８５】
補間演算部２９０はバッファ３６０に格納されたＬＵＴデータセットを、補間係数算出部２８０により変換された重み係数（補間係数）に基づき、積和による補間演算を行い１次元（スカラ）の出力データを出力する。
【００８６】
本実施形態の構成では辞書のエントリ数（内部ＦＩＦＯの段数）を固定数で扱ったが、一度に処理する小数データの数を固定数にし、辞書はスライド辞書としてもよい。この場合、辞書からスライドされ消去されるデータはパッキング処理を待つことなく、書き込み部３２０の制御により直接ＤＲＡＭ３７０上のパッキングデータセット３３０の所定領域に格納される。
【００８７】
本実施形態に係る補間ユニットの補間処理は、入力される画像データのアドレスに依存しない。そのため、アドレスの下位ビットが同一で上位ビットが異なる画像データが交互に入力され続ける場合でも、格納先の競合を回避することができるので、リフィル・レイテンシの小さい画像処理装置を構築することが可能になる。
【００８８】
あるいは、本実施形態に拠れば、バッファ段数が画像処理システムのリフィル・レイテンシに対して十分であれば、リフィルのための外部メモリアクセスを低減し、リフィル・アクセスを少なくすることができる。
【００８９】
（第３実施形態）
次に、第３実施形態に係る補間ユニットの回路構成と処理の流れを説明する。
【００９０】
図４は、第３実施形態に係る補間ユニットの回路構成を示す図であり、第１実施形態に係る補間ユニットの回路構成を示す図２と同一の構成に関しては、同一の参照番号を付し、説明を省略する。
【００９１】
第３実施形態に係る補間ユニットの回路構成は、画像処理回路を並列化し複数画素を同時に処理することが可能な補間ユニットを実現するための構成である。補間ユニットは、コード値における「開始」、「終了」、「連続数」のデータより、（（「終了」−「開始」＋１）ｘ「連続数」）の関係を求め、連続数に対応する補間演算部の処理を並列化する。
【００９２】
連続数付きスライド辞書を説明する図５において、第１番目のコード値（０、０、４）を例として説明すると、「開始」及び「終了」のデータは「０」であり、「連続数」のデータは「４」である。この場合、（（「終了」−「開始」＋１）ｘ「連続数」）の関係は１ｘ４＝４（並列数）となる。
【００９３】
補間ユニットの調停部４１０は、並列数に基づき補間演算部の割当てを管理することが可能である。図４に示す補間ユニットの回路構成において、スライド辞書のエントリ数と同数の補間演算部が設けられているものとする。並列数が４の場合、調停部４１０は４つの補間演算部の割当てを行い、補間演算部の処理を並列化する。
【００９４】
調停部４１０はスライド辞書５５２のエントリ領域[０]に格納されているアドレス「Ａ」に対応するＬＵＴデータセットをバッファ２６０から読み出し、４つの補間演算部（４１１ａ〜ｄ）にセットする。また、調停部４１０は、並列数４に対応した４次元の小数データを読み出すための制御信号を生成し、制御信号に基づいてバッファ２１５から４次元の小数データ（ＦＩＦＯ形式に格納された４つの小数データ）を読み出す。そして、調停部４１０は各小数データを補間係数算出部（４１２ａ〜ｄ）に入力し、補間係数算出部（４１２ａ〜ｄ）は入力された各小数データを重み係数（補間係数）に変換する。
【００９５】
補間演算部（４１１ａ〜ｄ）はアドレス「Ａ」に対応するＬＵＴデータセットと、変換された重み係数とに基づき、積和による補間演算を行い１次元（スカラ）の出力データを出力する。
【００９６】
また、連続数付きスライド辞書を説明する図５において、第７番目のコード値（３、４、３）を例として説明すると、（（「終了」−「開始」＋１）ｘ「連続数」）の関係は２ｘ３＝６（並列数）となる。補間ユニットの調停部４１０は、６つの補間演算部の割当てを行い、補間演算部の処理を並列化する。
【００９７】
調停部４１０はスライド辞書のエントリ領域[３]とエントリ領域［４］に格納されているアドレス「Ｄ」と「Ｅ」に対応するＬＵＴデータセットをバッファ２６０から読み出し６つの補間演算部にセットする。
【００９８】
また、調停部４１０は、並列数６に対応した６次元の小数データ（ＦＩＦＯ形式に格納された６つの小数データ）を読み出すための制御信号を生成し、制御信号に基づいてバッファ２１５から６次元の小数データを読み出す。そして、調停部４１０は各小数データを６つの補間係数算出部に入力し、６つの補間係数算出部は入力された各小数データを重み係数（補間係数）に変換する。
【００９９】
６つの補間演算部はアドレス「Ｄ」と「Ｅ」に対応するＬＵＴデータセットと、変換された重み係数とに基づき、積和による補間演算を行い１次元（スカラ）の出力データを出力する。
【０１００】
以上説明したように、本実施形態に拠れば、画像処理回路を並列化し複数画素を同時に補間処理することが可能になる。
【０１０１】
（他の実施形態）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１０２】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１０４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０５】
【図１】画像形成装置として、カラー複写機の構成例を示す図である。
【図２】第１実施形態に係る補間ユニットの回路構成を示す図である。
【図３】第２実施形態に係る補間ユニットの回路構成を示す図である。
【図４】第３実施形態に係る補間ユニットの回路構成を示す図である。
【図５】連続数付きスライド辞書を説明する図である。
【図６】補間ユニットにより処理されるデータの関係を概略的に示す図である。
【図１】
2008090686.tif 000003
【図２】
2008090686.tif 000004
【図３】
2008090686.tif 000005
【図４】
2008090686.tif 000006
【図５】
2008090686.tif 000007
【図６】
2008090686.tif 000008