(57)【要約】    【課題】  複数のLUTを切り替えて使用せねばならない状況においても、ローカルメモリの高速性を生かし、データ処理の高速化を図ることを可能としたデータ処理装置を提供する。    【解決手段】  データ処理装置は、画像処理プロセッサ51、DMAコントローラ52、バスインターコネクション53、ローカルメモリ54、メインメモリコントローラ55、メインメモリ56、最小値・最大値計算部131を備える。最小値・最大値計算部131は、メインメモリ56からローカルメモリ54に転送される入力データの要素毎の最小値及び最大値を計算する。画像処理プロセッサ51は、メインメモリ56からローカルメモリ54に入力データの転送後、入力データの要素毎の最小値及び最大値を使用し、データ処理に必要なLUT転送範囲を計算し、LUT転送範囲をDMAコントローラ52によりメインメモリ56からローカルメモリ54に転送する。【選択図】      図１
2005352593.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置であって、
前記第１の記憶手段及び前記第２の記憶手段間のデータ転送を行う転送手段と、
前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第１の計算手段と、
前記転送手段により前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記第１の計算手段により計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第２の計算手段とを備え、
前記第２の計算手段により計算された前記ルックアップテーブルの転送範囲を、前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送することを特徴とするデータ処理装置。
【請求項２】
前記第２の計算手段により計算された前記ルックアップテーブルの転送範囲が不連続で複数ある場合、前記複数の転送範囲の間の領域を前記複数の転送範囲に加えた連続領域、或いは前記複数の転送範囲の間の領域及び隣接する領域を前記複数の転送範囲に加えた連続領域を、前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第１の記憶手段から前記第２の記憶手段に既に転送済みのルックアップテーブルの転送範囲を保持しておく保持手段を更に備え、
前記ルックアップテーブルの転送範囲を前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送する際に、前記保持手段に保持されている既に転送済みのルックアップテーブルの転送範囲の領域全体或いは一部を除外して転送することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記第１の記憶手段に格納されるルックアップテーブルは、３つの座標軸がデータの各要素の値に対応した３次元のルックアップテーブルであることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記第１の記憶手段は、非ローカルメモリであり、前記第２の記憶手段は、前記第１の記憶手段に対して相対的に小容量且つ高速のローカルメモリであることを特徴とする請求項１記載のデータ処理装置。
【請求項６】
少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置の制御方法であって、
前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算し、
前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算し、
前記計算された前記ルックアップテーブルの転送範囲を前記第１の記憶手段から前記第２の記憶手段に転送することを特徴とする制御方法。
【請求項７】
少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記第１の記憶手段及び前記第２の記憶手段間のデータ転送を行う転送モジュールと、
前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第１の計算モジュールと、
前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記第１の計算モジュールにより計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第２の計算モジュールと、
前記第２の計算モジュールにより計算された前記ルックアップテーブルの転送範囲を、前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段に転送する制御モジュールとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像等のデータ処理に用いられるデータ処理装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、画像等のデータ処理において、ルックアップテーブル（以下ＬＵＴと略称する）を参照することによってデータ処理を行うアルゴリズムが頻繁に使用される。例えば、３色からなるカラー画像の色補正処理や色空間変換処理を行う際には、３色の各要素を３次元座標の座標軸に対応させてＬＵＴの参照を行う３次元ＬＵＴ参照と多面体補間の組み合わせによるアルゴリズムが一般によく用いられる（例えば、特許文献１参照）。
【０００３】
図８は、３次元ＬＵＴの概念を示す図である。
【０００４】
図８において、矢印で示す３つの座標軸が、入力データの３要素の値（例えば、Ｒ、Ｇ、Ｂの値）に対応している。入力データの３要素の各値域は分割（図８では４分割）され、分割後にできる全格子の格子点に対応する出力値を並べて３次元ＬＵＴを構成する。図８では、合計５×５×５＝１２５個の格子点が存在し、３次元ＬＵＴは各格子点に対応する出力値をもつ。
【０００５】
データ処理においてある入力値が与えられたとき、まず、その入力値の近傍に存在する格子点に対応する出力値を得るため、３次元ＬＵＴが参照される。次に、得られた格子点の出力値と入力値の座標値を用いて、多面体補間により入力値に対応する出力値が計算される。このような３次元ＬＵＴのサイズは、格子の分割数と出力値のデータサイズに依存するが、次元数が多いので比較的大きなサイズになりがちである。
【０００６】
更に、具体的な画像処理のアプリケーションとして、例えば、プリンタによる印刷のための画像処理を考えると、図９の左側に示すように、１枚の用紙の中に複数の画像（図では４枚の画像１〜画像４）を並べて印刷することが一般的に行われている。印刷のための画像処理では、扱うデータサイズが大きいため、図９の右側に示すように、印刷範囲を横に分割してバンド単位で画像処理を行うことが多い。図９では、１つのバンドの中に画像１と画像２の２つの画像が含まれている。ここで、上記の３次元ＬＵＴ参照を用いた色補正処理を行う場合を考えると、画像１と画像２は異なる画像であるため、一般的には、色補正の内容が異なる場合が起こりうる。色補正の内容が異なると、色補正アルゴリズムで使用されるＬＵＴの内容が異なる。
【０００７】
そのため、図１０に示すように、画像１、画像２に対してそれぞれ異なるＬＵＴ１、ＬＵＴ２を適用する必要がある。ここで、バンド内のデータの処理順序を図１０に基づき説明すると、まず、画像１に対してはＬＵＴ１を適用して、矢印Ａ、Ｂ、Ｃ、Ｄの順序でデータ処理した後、画像２に対しては適用するＬＵＴをＬＵＴ２に切り替えて、矢印Ｅ、Ｆ、Ｇ、Ｈの順序でデータ処理する。或いは、別の順序として、矢印Ａ、Ｅ、Ｂ、Ｆ、Ｃ、Ｇ、Ｄ、Ｈの順序でデータ処理する場合も考えられる。この場合は、ＬＵＴ１からＬＵＴ２へ、ＬＵＴ２からＬＵＴ１へというＬＵＴ切り替えが何度も生じる。
【０００８】
図１１は、従来例に係るデータ処理装置の構成を示す図である。
【０００９】
図１１において、画像処理プロセッサ２５１は、ＬＵＴ参照を用いたデータ処理を行うプロセッサである。画像処理プロセッサ２５１の形態は、ＣＰＵ、或いは、ＤＳＰ（Digital Signal Processor）、或いは、ＣＰＵやＤＳＰと専用ハードウェアの組み合わせ、或いは、データ処理専用のハードウェアの何れでもよい。データ処理対象の入力データは、大容量であるが低速のメインメモリ２５６上に置かれる（格納される）。
【００１０】
メインメモリコントローラ２５５及びバスインターコネクション２５３を介して、画像処理プロセッサ２５１或いはＤＭＡコントローラ２５２からメインメモリ２５６にアクセスすることができる。なお、バスインターコネクション２５３のトポロジーは特に限定されるものではなく、単一バス、クロスバースイッチ等、種々のトポロジーの使用がありうる。更に、メインメモリ２５６と比較して小容量であるが高速のローカルメモリ２５４が、適切なインタフェースを介してバスインターコネクション２５３に接続され、やはり、画像処理プロセッサ２５１或いはＤＭＡコントローラ２５２からローカルメモリ２５４にアクセスすることができる。
【００１１】
ＤＭＡコントローラ２５２は、画像処理プロセッサ２５１が低速のメインメモリ２５６に対してデータを直接読み出したり書き込んだりすることで処理速度が低下するのを避けるため、次のような動作を行う。即ち、ＤＭＡコントローラ２５２は、メインメモリ２５６上の入力データをローカルメモリ２５４に転送して、画像処理プロセッサ２５１が高速なローカルメモリ２５４から入力を読み出せるようにしたり、画像処理プロセッサ２５１が高速なローカルメモリ２５４に出力したデータをメインメモリ２５６に転送したりする役割を果たす。
【００１２】
図１２は、入力データに対するＤＭＡコントローラ２５２の動作を示す図である。
【００１３】
図１２において、メインメモリ２５６上の入力データ２６１は、ＤＭＡコントローラ２５２によってローカルメモリ２５４上の入力バッファ（ローカルバッファ）２６２のサイズ分だけ読み出され（矢印２６４）、入力バッファ２６２に書き込まれる（矢印２６５）。入力バッファ２６２、２６３はダブルバッファを構成している。これにより、ＤＭＡコントローラ２５２が入力バッファ２６２に入力データを書き込んでいる間にも、以前のＤＭＡ転送によって入力バッファ２６３に転送済みの入力データを、画像処理プロセッサ２５１が読み込むことができる（矢印２６６）。
【００１４】
図１３は、図１２における動作を時系列で示した図である。
【００１５】
図１３において、ＤＭＡコントローラ２５２による最初の入力データに対する入力データ転送１を除いて、画像処理プロセッサ２５１による画像処理（画像処理１（入力データ１使用）、画像処理２（入力データ２使用）、画像処理３（入力データ３使用））と、ＤＭＡコントローラ２５２による次に処理される入力データの転送（入力データ転送２、入力データ転送３、入力データ転送４）が並行して行われる。これにより、低速なメインメモリ２５６の影響が抑えられることが分かる。
【００１６】
次に、上記図１１等に示した従来技術のシステム構成において、先に述べた、複数のＬＵＴを切り替えながら使用する状況を考える。ＬＵＴのサイズは比較的大きいため、メインメモリ上には複数のＬＵＴを置くことができるが、ローカルメモリ上にはメインメモリ上に置かれたＬＵＴ全ては置くことができないものとする。ここでは、説明を簡単にするため、２個のＬＵＴを切り替えて使用する場合について説明し、メインメモリ上には２個のＬＵＴを置くことができるが、ローカルメモリ上には１個のＬＵＴしか置くことができないものとする。このＬＵＴの個数の限定は説明の都合によるものであり、本発明の制限事項となるものではない。
【００１７】
図１４は、ＬＵＴ１、ＬＵＴ２をメインメモリ２５６から利用する場合を示す図である。
【００１８】
図１４において、最も単純に、２個のＬＵＴ７１、ＬＵＴ７２をメインメモリ２５６上に置き、画像処理プロセッサ２５１によって直接参照する（矢印２７３）という方式を示している。
【００１９】
図１５は、ＬＵＴ１をローカルメモリ２５４から利用し、ＬＵＴ２をメインメモリ２５６から利用する場合を示す図である。
【００２０】
図１５において、ＬＵＴの参照を高速化するため、２個のＬＵＴのうち一方のＬＵＴをローカルメモリ２５４上に置いておく方式を示している。画像処理プロセッサ２５１は、ＬＵＴ１についてはローカルメモリ２５４上のＬＵＴ２８１を参照し（矢印２８３）、ＬＵＴ２についてはメインメモリ２５６上のＬＵＴ２７２を参照する（矢印２８２）という方式を示している。
【００２１】
図１６は、ＬＵＴ１／ＬＵＴ２の何れかをメインメモリ２５６からローカルメモリ２５４に転送して利用する場合を示す図である。
【００２２】
図１６において、どのＬＵＴを参照する場合でも高速化するため、メインメモリ２５６からローカルメモリ２５４に対して必要な方のＬＵＴを転送し、画像処理プロセッサ２５１は、ローカルメモリ２５４上のＬＵＴ２９１を参照する（矢印２９２）という方式を示している。
【特許文献１】特開２００２−５７９１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記従来技術において、図１４に示した方式では、メインメモリ２５６は低速であるため、画像処理プロセッサ２５１がＬＵＴを参照するたびに時間がかかり、処理速度が低下するという問題がある。
【００２４】
図１５に示した方式では、ＬＵＴ１の参照は高速なローカルメモリ２５４に対して行われるため、ＬＵＴ１を参照する際の処理速度は図１４の場合よりは高速化されるが、ＬＵＴ２を参照する際の処理速度は図１４の場合と同じである。ローカルメモリ２５４はメインメモリ２５６と比較して小容量であるため、全てのＬＵＴを保持することはできず、ＬＵＴ２を参照する際の処理速度を高速化することはできない。
【００２５】
図１６に示した方式では、もし、図１２に示した入力データのＤＭＡ転送と同様に、メインメモリ２５６からローカルメモリ２５４へのＬＵＴの転送が可能であれば、例えば図１７に示すように、画像処理プロセッサ２５１によるデータ処理と、ＤＭＡコントローラ２５２による入力データとＬＵＴデータの転送を並行に実行することで、高速なデータ処理を行えることになる。ところが、ＬＵＴデータは、決まったパターンでアクセスされるため、データを少しずつ先読みしてくることができる入力データと異なり、入力値が分からなければＬＵＴ上のどの部分が参照されるか予め分からない。そのため、ＬＵＴデータは、入力データのように少しずつ先読みすることはできない。即ち、図１７に示す処理は実現不能である。
【００２６】
結局、ＬＵＴデータについては、まとめてＬＵＴ全体をメインメモリ２５６から読んでくるしかなく、図１８に示すように、最初のデータ処理の前に、長い時間をかけて大きなＬＵＴデータをメインメモリ２５６からローカルメモリ２５４に転送する必要がある。そのため、ＬＵＴデータをローカルメモリ２５４に置くことによる速度向上の効果を相殺してしまうという問題がある。
【００２７】
このように、従来技術においては、低速大容量の非ローカルメモリ（メインメモリ）と高速小容量のローカルメモリを備えた構成において、非ローカルメモリ上の複数のＬＵＴの参照をローカルメモリによって高速化しようとすると、単純にＤＭＡコントローラを用いた方式ではうまく高速化できないということが分かる。
【００２８】
本発明の目的は、複数のＬＵＴを切り替えて使用せねばならない状況においても、ローカルメモリの高速性を生かし、データ処理の高速化を図ることを可能としたデータ処理装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【００２９】
上述の目的を達成するために、本発明のデータ処理装置は、少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置であって、前記第１の記憶手段及び前記第２の記憶手段間のデータ転送を行う転送手段と、前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第１の計算手段と、前記転送手段により前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記第１の計算手段により計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第２の計算手段とを備え、前記第２の計算手段により計算された前記ルックアップテーブルの転送範囲を、前記転送手段により前記第１の記憶手段から前記第２の記憶手段に転送することを特徴とする。
【００３０】
上述の目的を達成するために、本発明の制御方法は、少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置の制御方法であって、前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算し、前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算し、前記計算された前記ルックアップテーブルの転送範囲を前記第１の記憶手段から前記第２の記憶手段に転送することを特徴とする。
【００３１】
上述の目的を達成するために、本発明のプログラムは、少なくとも１つ以上のルックアップテーブルを格納可能な第１の記憶手段と、前記第１の記憶手段に対して相対的に高速の第２の記憶手段とを備えたデータ処理装置の制御方法をコンピュータに実行させるプログラムであって、前記第１の記憶手段及び前記第２の記憶手段間のデータ転送を行う転送モジュールと、前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第１の計算モジュールと、前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段にデータが転送された後、前記第１の計算モジュールにより計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第２の計算モジュールと、前記第２の計算モジュールにより計算された前記ルックアップテーブルの転送範囲を、前記転送モジュールにより前記第１の記憶手段から前記第２の記憶手段に転送する制御モジュールとを備えることを特徴とする。
【発明の効果】
【００３２】
本発明によれば、データの要素毎の最小値及び最大値を使用して、データ処理に必要なルックアップテーブルの転送範囲を計算し、第１の記憶手段から第２の記憶手段に転送する。これにより、複数のルックアップテーブルを切り替えて使用せねばならない状況においても、ルックアップテーブルを少しずつ第１の記憶手段から第２の記憶手段に転送することが可能となり、第２の記憶手段の高速性を生かすことができるため、データ処理の高速化を図ることができる。
【００３３】
また、本発明によれば、既に転送済みのルックアップテーブルの転送範囲の領域全体或いは一部を除外して、第１の記憶手段から第２の記憶手段に転送する。これにより、何度も同じルックアップテーブルの転送範囲を転送しないようにすることが可能となり、第２の記憶手段の高速性を生かすことができるため、データ処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を図面に基づき説明する。
【００３５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【００３６】
図１において、データ処理装置は、画像処理プロセッサ５１、ＤＭＡコントローラ５２、バスインターコネクション５３、ローカルメモリ５４、メインメモリコントローラ５５、メインメモリ５６、最小値・最大値計算部１３１を備えている。
【００３７】
本実施の形態は、上述した従来例（図１６）に対して、入力データの要素毎の最小値と最大値を計算する最小値・最大値計算部１３１を追加した点において相違する。本実施の形態のその他の要素は、図１６の対応するものと同一なので、説明を省略または簡略化する。本実施の形態は、上記図１０で説明したようなＬＵＴ切り替えが何度も生じる状況のように、複数のＬＵＴを切り替えながら処理するような場合に特に有効である。
【００３８】
メインメモリ５６上には、複数のＬＵＴ７１、ＬＵＴ７２が格納されている。メインメモリ５６上の複数のＬＵＴ７１、ＬＵＴ７２は、必要に応じてローカルメモリ５４上に部分的に転送される。画像処理プロセッサ５１は、ローカルメモリ５４上のＬＵＴ９１を参照する（矢印９２）ことによって高速なデータ処理を行う。また、画像処理プロセッサ５１は、制御プログラムに基づいて、図６のフローチャートに示すＬＵＴ転送範囲計算処理（第１の実施の形態）、図７のフローチャートに示すＬＵＴ転送範囲計算処理（第２の実施の形態）を実行する。
【００３９】
ＤＭＡコントローラ５２は、従来例の図１２で説明したように、入力データをメインメモリ５６からローカルメモリ５４に転送する。この入力データ転送の際に、最小値・最大値計算部１３１は、メインメモリ５６からローカルメモリ５４に転送される入力データの要素毎（例えばカラー画像のデータ処理においてＲＧＢ３色のデータであれば、Ｒ毎、Ｇ毎、Ｂ毎）の最小値及び最大値を計算する。この入力データの要素毎の最小値及び最大値を使用して、メインメモリ５６上のＬＵＴはローカルメモリ５４に部分的に転送されることになる。
【００４０】
最小値・最大値計算部１３１によって計算された入力データの要素毎の最小値及び最大値を使用すると、次のようにして、画像処理プロセッサ５１によりその入力データの処理に必要なＬＵＴ上の範囲が求められる。
【００４１】
図２は、３次元ＬＵＴ上の各色の入力データ値の存在しうる範囲を示す図である。
【００４２】
図２において、ＲＧＢ３色の入力データについて各色の最小値及び最大値がそれぞれｍｉｎ０、 ｍａｘ０、 ｍｉｎ１、 ｍａｘ１、 ｍｉｎ２、 ｍａｘ２である場合に、入力データ値の存在しうる範囲を３次元座標上の網線で表される直方体１４１で示している。入力データの３要素の値をｘ、ｙ、ｚの３変数で表すと、直方体１４１は次式で表現される。
【００４３】
ｍｉｎ０≦ｘ≦ｍａｘ０
ｍｉｎ１≦ｙ≦ｍａｘ１
ｍｉｎ２≦ｚ≦ｍａｘ２
図３は、３次元ＬＵＴ上で参照されうる格子点の範囲を示す図である。
【００４４】
図３において、上記図２の入力データに対応して、３次元ＬＵＴ上で参照されうる格子点の範囲を３次元座標上の網点で表される直方体１５１で示している。直方体１５１は、直方体１４１を包含しており、直方体１４１内の入力データの近傍の格子点を含んでいる。具体的に、３次元座標上のどの範囲の格子点が直方体１５１に含まれるかは、ＬＵＴ参照後に使用される多面体補間アルゴリズムに依存するが、多面体補間アルゴリズムが定まれば、格子点を容易に算出することができる。ここでは、仮に、直方体１５１の要素毎の最小値及び最大値をそれぞれＧｍｉｎ０、 Ｇｍａｘ０、 Ｇｍｉｎ１、 Ｇｍａｘ１、 Ｇｍｉｎ２、 Ｇｍａｘ２とすると、直方体１５１は次式で表現される。
【００４５】
Ｇｍｉｎ０≦ｘ≦Ｇｍａｘ０
Ｇｍｉｎ１≦ｙ≦Ｇｍａｘ１
Ｇｍｉｎ２≦ｚ≦Ｇｍａｘ２
図４は、メインメモリ５６上に存在する３次元ＬＵＴのデータを２次元的に表現した図である。
【００４６】
図４において、３次元ＬＵＴがＮ×Ｎ×Ｎ個の要素から構成されるとした場合、入力データの最小値及び最大値から算出した３次元ＬＵＴ上で参照されうる格子点を示す直方体は、例えば、図４中の網線で表される領域１６１、 １６２のように、１つ或いは複数の矩形領域で示されることになる。従って、予め入力データの要素毎の最小値及び最大値が判明している場合、図４のＬＵＴ全体をメインメモリ５６からローカルメモリ５４に転送しなくても、ＬＵＴ参照で必要とされる狭い範囲（ＬＵＴ必要範囲）である領域１６１、１６２だけを転送すればよいことになる。
【００４７】
なお、メインメモリ５６からローカルメモリ５４へのデータ転送に対して、ＤＭＡコントローラ５２の機能の制限で複数の矩形領域の転送をサポートできない場合、領域１６１、１６２に加えて、その間の領域１６３を余分に転送することで、１つの矩形領域の転送だけで済ませることもできる。更に、１つの矩形領域の転送もサポートできない場合、領域１６１、１６２、１６３に加えて、網点で表される領域１６４（領域１６１、１６２、１６３の左右両側に隣接する領域）も余分に転送することで、１つの連続メモリ領域の転送で済ませることもできる。
【００４８】
次に、上記構成を有する本実施の形態のデータ処理装置における動作を図５乃至図７を参照しながら詳細に説明する。
【００４９】
図５は、上述した本実施の形態の方法を用いてデータ処理を行った場合の画像処理プロセッサ５１及びＤＭＡコントローラ５２の処理の流れを時系列で示した図である。
【００５０】
図５において、画像処理プロセッサ５１によるデータ処理（画像処理１、画像処理２、画像処理３）と並行して、ＤＭＡコントローラ５２がメインメモリ５６からローカルメモリ５４に対する入力データの転送（入力データ転送２、入力データ転送３、入力データ転送４）を行うのは、上記図１３に示した場合と同様であるが、本実施の形態では更に次の処理が行われる。
【００５１】
即ち、ＤＭＡコントローラ５２による入力データの転送が終了した後に、最小値・最大値計算部１３１で計算された入力データの要素毎の最小値及び最大値を画像処理プロセッサ５１が読み出し、入力データの要素毎の最小値及び最大値を使用してＬＵＴ転送範囲計算処理を行うことで、その入力データを処理するために使用するＬＵＴデータの転送範囲（以下ＬＵＴ転送範囲と略称する）を計算する。
【００５２】
画像処理プロセッサ５１により求められたＬＵＴ転送範囲は、ＤＭＡコントローラ５２に与えられる。画像処理プロセッサ５１によるデータ処理と並行して、メインメモリ５６における指定されたＬＵＴ転送範囲がＤＭＡコントローラ５２によりローカルメモリ５４に転送される。転送されたＬＵＴ転送範囲は、次のデータ処理時に画像処理プロセッサ５１により利用される。
【００５３】
なお、本実施の形態では、図５におけるＬＵＴ転送範囲計算処理は画像処理プロセッサ５１が行っているが、必ずしも画像処理プロセッサ５１によって行わなくてもよく、例えば、データ処理装置にＬＵＴ転送範囲計算用の専用回路を設け該専用回路によって行ってもよい。
【００５４】
図６は、本実施の形態のＬＵＴ転送範囲計算処理の例を示すフローチャートである。
【００５５】
図６において、まず、画像処理プロセッサ５１は、入力データの最小値・最大値読み出し処理において（ステップＳ１）、最小値・最大値計算部１３１で計算された入力データの要素毎の最小値及び最大値を最小値・最大値計算部１３１から読み出す（ステップＳ４）。次に、画像処理プロセッサ５１は、使用する多面体補間アルゴリズムに従って、入力データの範囲に対応するＬＵＴグリッド（格子点）の計算を行う（ステップＳ２）。
【００５６】
最後に、画像処理プロセッサ５１は、必要なＬＵＴグリッドを包含するＬＵＴ転送範囲の計算を行い（ステップＳ３）、計算されたＬＵＴ転送範囲を転送に使用されるデバイス（例えばＤＭＡコントローラ５２）に設定し（ステップＳ５）、ＬＵＴ転送範囲計算処理を終了する。転送に使用されるデバイスは、設定（指示）に従い、上記計算されたＬＵＴ転送範囲をメインメモリ５６からローカルメモリ５４に転送する。
【００５７】
このとき、メインメモリ５６からローカルメモリ５４に対するＬＵＴの転送に使用されるデバイス（例えばＤＭＡコントローラ５２）の能力に応じて、上記図４の説明で示したように余分の領域をＬＵＴ転送範囲に含めることもできる。また、上述したように、計算されたＬＵＴ転送範囲は転送に使用されるデバイスに設定されるが、転送に使用されるデバイスは必ずしもＤＭＡコントローラ５２である必要は無く、例えば、画像処理プロセッサ５１自身がＬＵＴの転送を行ってもよい。
【００５８】
以上説明したように、本実施の形態によれば、小容量・高速のローカルメモリ５４と大容量・低速のメインメモリ５６を備えたデータ処理装置において、複数のＬＵＴを切り替えて使用せねばならない状況においても、ＬＵＴを少しずつメインメモリ５６からローカルメモリ５４に転送することで、ローカルメモリ５４の高速性を生かすことができる。これにより、データ処理の高速化を図ることができる。
【００５９】
また、メインメモリ５６からローカルメモリ５４に転送するＬＵＴ転送範囲が複数の矩形領域の場合で、その転送をサポートできない場合、複数の矩形領域の間の領域を余分に加えた連続領域、或いは複数の矩形領域の間の領域及び隣接する領域を余分に加えた連続領域を転送することで、転送回数を低減することができる。これにより、データ処理の高速化を図ることができる。
【００６０】
［第２の実施の形態］
本発明の第２の実施の形態は、上述した第１の実施の形態に対して、ＬＵＴ転送範囲計算処理として図７のフローチャートを使用する点において相違する。本実施の形態のその他の要素は、上述した第１の実施の形態（図１）の対応するものと同一なので、説明を省略する。
【００６１】
図７は、本実施の形態のＬＵＴ転送範囲計算処理の例を示すフローチャートである。
【００６２】
図７において、画像処理プロセッサ５１は、既にメインメモリ５６からローカルメモリ５４に転送済みのＬＵＴ範囲を該画像処理プロセッサ内部の所定の記憶領域に保持しておくが（ステップＳ１４）、入力データの最小値・最大値読み出し処理（ステップＳ１）、入力データの範囲に対応するＬＵＴグリッドの計算処理（ステップＳ２）は、上記図６と同じである。
【００６３】
次に、画像処理プロセッサ５１は、保持されている既に転送済みのＬＵＴ範囲を参照し（ステップＳ１１）、その転送済みのＬＵＴ範囲を除外したＬＵＴ転送範囲を計算する（ステップＳ１２）。即ち、既にメインメモリ５６からローカルメモリ５４に転送済みのＬＵＴ範囲に関しては、なるべく何度も同じＬＵＴ範囲を転送しないように、転送済みのＬＵＴ範囲（領域全体或いは一部）をＬＵＴ転送範囲から除外する。
【００６４】
但し、既に転送済みのＬＵＴ範囲をＬＵＴ転送範囲から完全に除外しようとすると、ＬＵＴ転送範囲が複雑な形状になり、ＬＵＴの転送に使用されるデバイスの能力では扱えなくなる可能性がある。その場合は、デバイスの能力の範囲内で除外できるＬＵＴ範囲をＬＵＴ転送範囲から除外する。
【００６５】
最後に、画像処理プロセッサ５１は、メインメモリ５６からローカルメモリ５４に転送済みのＬＵＴ範囲の値を更新し（ステップＳ１３）、ＬＵＴ転送範囲計算処理を終了する。
【００６６】
以上説明したように、本実施の形態によれば、小容量・高速のローカルメモリ５４と大容量・低速のメインメモリ５６を備えたデータ処理装置において、複数のＬＵＴを切り替えて使用せねばならない状況においても、転送済みのＬＵＴ範囲に関しては何度も同じＬＵＴ範囲を転送しないようにすることで、ローカルメモリ５４の高速性を生かすことができる。これにより、データ処理の高速化を図ることができる。
【００６７】
［他の実施の形態］
上記第１及び第２の実施の形態では、データ処理装置のメインメモリ５６に格納するＬＵＴを２つとした場合を説明したが、本発明はこれに限定されるものではなく、メインメモリ５６に格納するＬＵＴが３つ以上の場合にも適用することができる。
【００６８】
上記第１及び第２の実施の形態では、最小値・最大値計算部１３１を別個に設ける構成としたが、本発明はこれに限定されるものではなく、最小値・最大値計算部１３１の機能を例えば画像処理プロセッサ５１に持たせる構成としてもよい。
【００６９】
上記第１及び第２の実施の形態では、データ処理装置単体について説明したが、本発明はデータ処理装置を搭載したプリンタや複写機等の各種の画像処理装置にも適用することができる。
【００７０】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム（図６、図７のフローチャート）をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、達成することができる。
【００７１】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【００７２】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【００７３】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【００７４】
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【００７５】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【００７６】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【００７７】
【図１】本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【図２】３次元ＬＵＴ上の各色の入力データ値の存在しうる範囲を示す図である。
【図３】３次元ＬＵＴ上で参照されうる格子点の範囲を示す図である。
【図４】メインメモリ上に存在する３次元ＬＵＴのデータを２次元的に表現した図である。
【図５】画像処理プロセッサ及びＤＭＡコントローラの処理の流れを時系列で示した図である。
【図６】ＬＵＴ転送範囲計算処理の例を示すフローチャートである。
【図７】本発明の第２の実施の形態に係るＬＵＴ転送範囲計算処理の例を示すフローチャートである。
【図８】従来例に係る３次元ＬＵＴの概念を示す図である。
【図９】プリンタで複数画像を印刷する場合を示す図である。
【図１０】複数画像をバンド処理する場合のバンド内処理を示す図である。
【図１１】データ処理装置の構成を示す図である。
【図１２】入力データに対するＤＭＡコントローラの動作を示す図である。
【図１３】図１２における動作を時系列で示した図である。
【図１４】ＬＵＴ１、ＬＵＴ２をメインメモリから利用する場合を示す図である。
【図１５】ＬＵＴ１をローカルメモリから利用し、ＬＵＴ２をメインメモリから利用する場合を示す図である。
【図１６】ＬＵＴ１/ＬＵＴ２の何れかをメインメモリからローカルメモリに転送して利用する場合を示す図である。
【図１７】図１６における動作を時系列（実現不能）で示した図である。
【図１８】図１６における動作を時系列（実現可能）で示した図である。
【符号の説明】
【００７８】
５１  画像処理プロセッサ（第２の計算手段、転送手段、保持手段に対応）
５２  ＤＭＡコントローラ（転送手段に対応）
５４  ローカルメモリ（第２の記憶手段に対応）
５６  メインメモリ（第１の記憶手段に対応）
７１  ＬＵＴ１（ルックアップテーブルに対応）
７２  ＬＵＴ２（ルックアップテーブルに対応）
１３１  最小値・最大値計算部（第１の計算手段に対応）
【図１】
2005352593.tif 000003
【図２】
2005352593.tif 000004
【図３】
2005352593.tif 000005
【図４】
2005352593.tif 000006
【図５】
2005352593.tif 000007
【図６】
2005352593.tif 000008
【図７】
2005352593.tif 000009
【図８】
2005352593.tif 000010
【図９】
2005352593.tif 000011
【図１０】
2005352593.tif 000012
【図１１】
2005352593.tif 000013
【図１２】
2005352593.tif 000014
【図１３】
2005352593.tif 000015
【図１４】
2005352593.tif 000016
【図１５】
2005352593.tif 000017
【図１６】
2005352593.tif 000018
【図１７】
2005352593.tif 000019
【図１８】
2005352593.tif 000020