JP2005352593A - データ処理装置及びその制御方法、プログラム - Google Patents

データ処理装置及びその制御方法、プログラム Download PDF

Info

Publication number
JP2005352593A
JP2005352593A JP2004170293A JP2004170293A JP2005352593A JP 2005352593 A JP2005352593 A JP 2005352593A JP 2004170293 A JP2004170293 A JP 2004170293A JP 2004170293 A JP2004170293 A JP 2004170293A JP 2005352593 A JP2005352593 A JP 2005352593A
Authority
JP
Japan
Prior art keywords
storage means
transfer
data
transferred
lut
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.)
Withdrawn
Application number
JP2004170293A
Other languages
English (en)
Inventor
Kinya Oosa
欣也 大佐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004170293A priority Critical patent/JP2005352593A/ja
Publication of JP2005352593A publication Critical patent/JP2005352593A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

【課題】 複数のLUTを切り替えて使用せねばならない状況においても、ローカルメモリの高速性を生かし、データ処理の高速化を図ることを可能としたデータ処理装置を提供する。
【解決手段】 データ処理装置は、画像処理プロセッサ51、DMAコントローラ52、バスインターコネクション53、ローカルメモリ54、メインメモリコントローラ55、メインメモリ56、最小値・最大値計算部131を備える。最小値・最大値計算部131は、メインメモリ56からローカルメモリ54に転送される入力データの要素毎の最小値及び最大値を計算する。画像処理プロセッサ51は、メインメモリ56からローカルメモリ54に入力データの転送後、入力データの要素毎の最小値及び最大値を使用し、データ処理に必要なLUT転送範囲を計算し、LUT転送範囲をDMAコントローラ52によりメインメモリ56からローカルメモリ54に転送する。
【選択図】 図1

Description

本発明は、画像等のデータ処理に用いられるデータ処理装置及びその制御方法に関する。
従来、画像等のデータ処理において、ルックアップテーブル(以下LUTと略称する)を参照することによってデータ処理を行うアルゴリズムが頻繁に使用される。例えば、3色からなるカラー画像の色補正処理や色空間変換処理を行う際には、3色の各要素を3次元座標の座標軸に対応させてLUTの参照を行う3次元LUT参照と多面体補間の組み合わせによるアルゴリズムが一般によく用いられる(例えば、特許文献1参照)。
図8は、3次元LUTの概念を示す図である。
図8において、矢印で示す3つの座標軸が、入力データの3要素の値(例えば、R、G、Bの値)に対応している。入力データの3要素の各値域は分割(図8では4分割)され、分割後にできる全格子の格子点に対応する出力値を並べて3次元LUTを構成する。図8では、合計5×5×5=125個の格子点が存在し、3次元LUTは各格子点に対応する出力値をもつ。
データ処理においてある入力値が与えられたとき、まず、その入力値の近傍に存在する格子点に対応する出力値を得るため、3次元LUTが参照される。次に、得られた格子点の出力値と入力値の座標値を用いて、多面体補間により入力値に対応する出力値が計算される。このような3次元LUTのサイズは、格子の分割数と出力値のデータサイズに依存するが、次元数が多いので比較的大きなサイズになりがちである。
更に、具体的な画像処理のアプリケーションとして、例えば、プリンタによる印刷のための画像処理を考えると、図9の左側に示すように、1枚の用紙の中に複数の画像(図では4枚の画像1〜画像4)を並べて印刷することが一般的に行われている。印刷のための画像処理では、扱うデータサイズが大きいため、図9の右側に示すように、印刷範囲を横に分割してバンド単位で画像処理を行うことが多い。図9では、1つのバンドの中に画像1と画像2の2つの画像が含まれている。ここで、上記の3次元LUT参照を用いた色補正処理を行う場合を考えると、画像1と画像2は異なる画像であるため、一般的には、色補正の内容が異なる場合が起こりうる。色補正の内容が異なると、色補正アルゴリズムで使用されるLUTの内容が異なる。
そのため、図10に示すように、画像1、画像2に対してそれぞれ異なるLUT1、LUT2を適用する必要がある。ここで、バンド内のデータの処理順序を図10に基づき説明すると、まず、画像1に対してはLUT1を適用して、矢印A、B、C、Dの順序でデータ処理した後、画像2に対しては適用するLUTをLUT2に切り替えて、矢印E、F、G、Hの順序でデータ処理する。或いは、別の順序として、矢印A、E、B、F、C、G、D、Hの順序でデータ処理する場合も考えられる。この場合は、LUT1からLUT2へ、LUT2からLUT1へというLUT切り替えが何度も生じる。
図11は、従来例に係るデータ処理装置の構成を示す図である。
図11において、画像処理プロセッサ251は、LUT参照を用いたデータ処理を行うプロセッサである。画像処理プロセッサ251の形態は、CPU、或いは、DSP(Digital Signal Processor)、或いは、CPUやDSPと専用ハードウェアの組み合わせ、或いは、データ処理専用のハードウェアの何れでもよい。データ処理対象の入力データは、大容量であるが低速のメインメモリ256上に置かれる(格納される)。
メインメモリコントローラ255及びバスインターコネクション253を介して、画像処理プロセッサ251或いはDMAコントローラ252からメインメモリ256にアクセスすることができる。なお、バスインターコネクション253のトポロジーは特に限定されるものではなく、単一バス、クロスバースイッチ等、種々のトポロジーの使用がありうる。更に、メインメモリ256と比較して小容量であるが高速のローカルメモリ254が、適切なインタフェースを介してバスインターコネクション253に接続され、やはり、画像処理プロセッサ251或いはDMAコントローラ252からローカルメモリ254にアクセスすることができる。
DMAコントローラ252は、画像処理プロセッサ251が低速のメインメモリ256に対してデータを直接読み出したり書き込んだりすることで処理速度が低下するのを避けるため、次のような動作を行う。即ち、DMAコントローラ252は、メインメモリ256上の入力データをローカルメモリ254に転送して、画像処理プロセッサ251が高速なローカルメモリ254から入力を読み出せるようにしたり、画像処理プロセッサ251が高速なローカルメモリ254に出力したデータをメインメモリ256に転送したりする役割を果たす。
図12は、入力データに対するDMAコントローラ252の動作を示す図である。
図12において、メインメモリ256上の入力データ261は、DMAコントローラ252によってローカルメモリ254上の入力バッファ(ローカルバッファ)262のサイズ分だけ読み出され(矢印264)、入力バッファ262に書き込まれる(矢印265)。入力バッファ262、263はダブルバッファを構成している。これにより、DMAコントローラ252が入力バッファ262に入力データを書き込んでいる間にも、以前のDMA転送によって入力バッファ263に転送済みの入力データを、画像処理プロセッサ251が読み込むことができる(矢印266)。
図13は、図12における動作を時系列で示した図である。
図13において、DMAコントローラ252による最初の入力データに対する入力データ転送1を除いて、画像処理プロセッサ251による画像処理(画像処理1(入力データ1使用)、画像処理2(入力データ2使用)、画像処理3(入力データ3使用))と、DMAコントローラ252による次に処理される入力データの転送(入力データ転送2、入力データ転送3、入力データ転送4)が並行して行われる。これにより、低速なメインメモリ256の影響が抑えられることが分かる。
次に、上記図11等に示した従来技術のシステム構成において、先に述べた、複数のLUTを切り替えながら使用する状況を考える。LUTのサイズは比較的大きいため、メインメモリ上には複数のLUTを置くことができるが、ローカルメモリ上にはメインメモリ上に置かれたLUT全ては置くことができないものとする。ここでは、説明を簡単にするため、2個のLUTを切り替えて使用する場合について説明し、メインメモリ上には2個のLUTを置くことができるが、ローカルメモリ上には1個のLUTしか置くことができないものとする。このLUTの個数の限定は説明の都合によるものであり、本発明の制限事項となるものではない。
図14は、LUT1、LUT2をメインメモリ256から利用する場合を示す図である。
図14において、最も単純に、2個のLUT71、LUT72をメインメモリ256上に置き、画像処理プロセッサ251によって直接参照する(矢印273)という方式を示している。
図15は、LUT1をローカルメモリ254から利用し、LUT2をメインメモリ256から利用する場合を示す図である。
図15において、LUTの参照を高速化するため、2個のLUTのうち一方のLUTをローカルメモリ254上に置いておく方式を示している。画像処理プロセッサ251は、LUT1についてはローカルメモリ254上のLUT281を参照し(矢印283)、LUT2についてはメインメモリ256上のLUT272を参照する(矢印282)という方式を示している。
図16は、LUT1/LUT2の何れかをメインメモリ256からローカルメモリ254に転送して利用する場合を示す図である。
図16において、どのLUTを参照する場合でも高速化するため、メインメモリ256からローカルメモリ254に対して必要な方のLUTを転送し、画像処理プロセッサ251は、ローカルメモリ254上のLUT291を参照する(矢印292)という方式を示している。
特開2002−57910号公報
しかしながら、上記従来技術において、図14に示した方式では、メインメモリ256は低速であるため、画像処理プロセッサ251がLUTを参照するたびに時間がかかり、処理速度が低下するという問題がある。
図15に示した方式では、LUT1の参照は高速なローカルメモリ254に対して行われるため、LUT1を参照する際の処理速度は図14の場合よりは高速化されるが、LUT2を参照する際の処理速度は図14の場合と同じである。ローカルメモリ254はメインメモリ256と比較して小容量であるため、全てのLUTを保持することはできず、LUT2を参照する際の処理速度を高速化することはできない。
図16に示した方式では、もし、図12に示した入力データのDMA転送と同様に、メインメモリ256からローカルメモリ254へのLUTの転送が可能であれば、例えば図17に示すように、画像処理プロセッサ251によるデータ処理と、DMAコントローラ252による入力データとLUTデータの転送を並行に実行することで、高速なデータ処理を行えることになる。ところが、LUTデータは、決まったパターンでアクセスされるため、データを少しずつ先読みしてくることができる入力データと異なり、入力値が分からなければLUT上のどの部分が参照されるか予め分からない。そのため、LUTデータは、入力データのように少しずつ先読みすることはできない。即ち、図17に示す処理は実現不能である。
結局、LUTデータについては、まとめてLUT全体をメインメモリ256から読んでくるしかなく、図18に示すように、最初のデータ処理の前に、長い時間をかけて大きなLUTデータをメインメモリ256からローカルメモリ254に転送する必要がある。そのため、LUTデータをローカルメモリ254に置くことによる速度向上の効果を相殺してしまうという問題がある。
このように、従来技術においては、低速大容量の非ローカルメモリ(メインメモリ)と高速小容量のローカルメモリを備えた構成において、非ローカルメモリ上の複数のLUTの参照をローカルメモリによって高速化しようとすると、単純にDMAコントローラを用いた方式ではうまく高速化できないということが分かる。
本発明の目的は、複数のLUTを切り替えて使用せねばならない状況においても、ローカルメモリの高速性を生かし、データ処理の高速化を図ることを可能としたデータ処理装置及びその制御方法を提供することにある。
上述の目的を達成するために、本発明のデータ処理装置は、少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置であって、前記第1の記憶手段及び前記第2の記憶手段間のデータ転送を行う転送手段と、前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第1の計算手段と、前記転送手段により前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記第1の計算手段により計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第2の計算手段とを備え、前記第2の計算手段により計算された前記ルックアップテーブルの転送範囲を、前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送することを特徴とする。
上述の目的を達成するために、本発明の制御方法は、少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置の制御方法であって、前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算し、前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算し、前記計算された前記ルックアップテーブルの転送範囲を前記第1の記憶手段から前記第2の記憶手段に転送することを特徴とする。
上述の目的を達成するために、本発明のプログラムは、少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置の制御方法をコンピュータに実行させるプログラムであって、前記第1の記憶手段及び前記第2の記憶手段間のデータ転送を行う転送モジュールと、前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第1の計算モジュールと、前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記第1の計算モジュールにより計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第2の計算モジュールと、前記第2の計算モジュールにより計算された前記ルックアップテーブルの転送範囲を、前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段に転送する制御モジュールとを備えることを特徴とする。
本発明によれば、データの要素毎の最小値及び最大値を使用して、データ処理に必要なルックアップテーブルの転送範囲を計算し、第1の記憶手段から第2の記憶手段に転送する。これにより、複数のルックアップテーブルを切り替えて使用せねばならない状況においても、ルックアップテーブルを少しずつ第1の記憶手段から第2の記憶手段に転送することが可能となり、第2の記憶手段の高速性を生かすことができるため、データ処理の高速化を図ることができる。
また、本発明によれば、既に転送済みのルックアップテーブルの転送範囲の領域全体或いは一部を除外して、第1の記憶手段から第2の記憶手段に転送する。これにより、何度も同じルックアップテーブルの転送範囲を転送しないようにすることが可能となり、第2の記憶手段の高速性を生かすことができるため、データ処理の高速化を図ることができる。
以下、本発明の実施の形態を図面に基づき説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係るデータ処理装置の構成を示すブロック図である。
図1において、データ処理装置は、画像処理プロセッサ51、DMAコントローラ52、バスインターコネクション53、ローカルメモリ54、メインメモリコントローラ55、メインメモリ56、最小値・最大値計算部131を備えている。
本実施の形態は、上述した従来例(図16)に対して、入力データの要素毎の最小値と最大値を計算する最小値・最大値計算部131を追加した点において相違する。本実施の形態のその他の要素は、図16の対応するものと同一なので、説明を省略または簡略化する。本実施の形態は、上記図10で説明したようなLUT切り替えが何度も生じる状況のように、複数のLUTを切り替えながら処理するような場合に特に有効である。
メインメモリ56上には、複数のLUT71、LUT72が格納されている。メインメモリ56上の複数のLUT71、LUT72は、必要に応じてローカルメモリ54上に部分的に転送される。画像処理プロセッサ51は、ローカルメモリ54上のLUT91を参照する(矢印92)ことによって高速なデータ処理を行う。また、画像処理プロセッサ51は、制御プログラムに基づいて、図6のフローチャートに示すLUT転送範囲計算処理(第1の実施の形態)、図7のフローチャートに示すLUT転送範囲計算処理(第2の実施の形態)を実行する。
DMAコントローラ52は、従来例の図12で説明したように、入力データをメインメモリ56からローカルメモリ54に転送する。この入力データ転送の際に、最小値・最大値計算部131は、メインメモリ56からローカルメモリ54に転送される入力データの要素毎(例えばカラー画像のデータ処理においてRGB3色のデータであれば、R毎、G毎、B毎)の最小値及び最大値を計算する。この入力データの要素毎の最小値及び最大値を使用して、メインメモリ56上のLUTはローカルメモリ54に部分的に転送されることになる。
最小値・最大値計算部131によって計算された入力データの要素毎の最小値及び最大値を使用すると、次のようにして、画像処理プロセッサ51によりその入力データの処理に必要なLUT上の範囲が求められる。
図2は、3次元LUT上の各色の入力データ値の存在しうる範囲を示す図である。
図2において、RGB3色の入力データについて各色の最小値及び最大値がそれぞれmin0、 max0、 min1、 max1、 min2、 max2である場合に、入力データ値の存在しうる範囲を3次元座標上の網線で表される直方体141で示している。入力データの3要素の値をx、y、zの3変数で表すと、直方体141は次式で表現される。
min0≦x≦max0
min1≦y≦max1
min2≦z≦max2
図3は、3次元LUT上で参照されうる格子点の範囲を示す図である。
図3において、上記図2の入力データに対応して、3次元LUT上で参照されうる格子点の範囲を3次元座標上の網点で表される直方体151で示している。直方体151は、直方体141を包含しており、直方体141内の入力データの近傍の格子点を含んでいる。具体的に、3次元座標上のどの範囲の格子点が直方体151に含まれるかは、LUT参照後に使用される多面体補間アルゴリズムに依存するが、多面体補間アルゴリズムが定まれば、格子点を容易に算出することができる。ここでは、仮に、直方体151の要素毎の最小値及び最大値をそれぞれGmin0、 Gmax0、 Gmin1、 Gmax1、 Gmin2、 Gmax2とすると、直方体151は次式で表現される。
Gmin0≦x≦Gmax0
Gmin1≦y≦Gmax1
Gmin2≦z≦Gmax2
図4は、メインメモリ56上に存在する3次元LUTのデータを2次元的に表現した図である。
図4において、3次元LUTがN×N×N個の要素から構成されるとした場合、入力データの最小値及び最大値から算出した3次元LUT上で参照されうる格子点を示す直方体は、例えば、図4中の網線で表される領域161、 162のように、1つ或いは複数の矩形領域で示されることになる。従って、予め入力データの要素毎の最小値及び最大値が判明している場合、図4のLUT全体をメインメモリ56からローカルメモリ54に転送しなくても、LUT参照で必要とされる狭い範囲(LUT必要範囲)である領域161、162だけを転送すればよいことになる。
なお、メインメモリ56からローカルメモリ54へのデータ転送に対して、DMAコントローラ52の機能の制限で複数の矩形領域の転送をサポートできない場合、領域161、162に加えて、その間の領域163を余分に転送することで、1つの矩形領域の転送だけで済ませることもできる。更に、1つの矩形領域の転送もサポートできない場合、領域161、162、163に加えて、網点で表される領域164(領域161、162、163の左右両側に隣接する領域)も余分に転送することで、1つの連続メモリ領域の転送で済ませることもできる。
次に、上記構成を有する本実施の形態のデータ処理装置における動作を図5乃至図7を参照しながら詳細に説明する。
図5は、上述した本実施の形態の方法を用いてデータ処理を行った場合の画像処理プロセッサ51及びDMAコントローラ52の処理の流れを時系列で示した図である。
図5において、画像処理プロセッサ51によるデータ処理(画像処理1、画像処理2、画像処理3)と並行して、DMAコントローラ52がメインメモリ56からローカルメモリ54に対する入力データの転送(入力データ転送2、入力データ転送3、入力データ転送4)を行うのは、上記図13に示した場合と同様であるが、本実施の形態では更に次の処理が行われる。
即ち、DMAコントローラ52による入力データの転送が終了した後に、最小値・最大値計算部131で計算された入力データの要素毎の最小値及び最大値を画像処理プロセッサ51が読み出し、入力データの要素毎の最小値及び最大値を使用してLUT転送範囲計算処理を行うことで、その入力データを処理するために使用するLUTデータの転送範囲(以下LUT転送範囲と略称する)を計算する。
画像処理プロセッサ51により求められたLUT転送範囲は、DMAコントローラ52に与えられる。画像処理プロセッサ51によるデータ処理と並行して、メインメモリ56における指定されたLUT転送範囲がDMAコントローラ52によりローカルメモリ54に転送される。転送されたLUT転送範囲は、次のデータ処理時に画像処理プロセッサ51により利用される。
なお、本実施の形態では、図5におけるLUT転送範囲計算処理は画像処理プロセッサ51が行っているが、必ずしも画像処理プロセッサ51によって行わなくてもよく、例えば、データ処理装置にLUT転送範囲計算用の専用回路を設け該専用回路によって行ってもよい。
図6は、本実施の形態のLUT転送範囲計算処理の例を示すフローチャートである。
図6において、まず、画像処理プロセッサ51は、入力データの最小値・最大値読み出し処理において(ステップS1)、最小値・最大値計算部131で計算された入力データの要素毎の最小値及び最大値を最小値・最大値計算部131から読み出す(ステップS4)。次に、画像処理プロセッサ51は、使用する多面体補間アルゴリズムに従って、入力データの範囲に対応するLUTグリッド(格子点)の計算を行う(ステップS2)。
最後に、画像処理プロセッサ51は、必要なLUTグリッドを包含するLUT転送範囲の計算を行い(ステップS3)、計算されたLUT転送範囲を転送に使用されるデバイス(例えばDMAコントローラ52)に設定し(ステップS5)、LUT転送範囲計算処理を終了する。転送に使用されるデバイスは、設定(指示)に従い、上記計算されたLUT転送範囲をメインメモリ56からローカルメモリ54に転送する。
このとき、メインメモリ56からローカルメモリ54に対するLUTの転送に使用されるデバイス(例えばDMAコントローラ52)の能力に応じて、上記図4の説明で示したように余分の領域をLUT転送範囲に含めることもできる。また、上述したように、計算されたLUT転送範囲は転送に使用されるデバイスに設定されるが、転送に使用されるデバイスは必ずしもDMAコントローラ52である必要は無く、例えば、画像処理プロセッサ51自身がLUTの転送を行ってもよい。
以上説明したように、本実施の形態によれば、小容量・高速のローカルメモリ54と大容量・低速のメインメモリ56を備えたデータ処理装置において、複数のLUTを切り替えて使用せねばならない状況においても、LUTを少しずつメインメモリ56からローカルメモリ54に転送することで、ローカルメモリ54の高速性を生かすことができる。これにより、データ処理の高速化を図ることができる。
また、メインメモリ56からローカルメモリ54に転送するLUT転送範囲が複数の矩形領域の場合で、その転送をサポートできない場合、複数の矩形領域の間の領域を余分に加えた連続領域、或いは複数の矩形領域の間の領域及び隣接する領域を余分に加えた連続領域を転送することで、転送回数を低減することができる。これにより、データ処理の高速化を図ることができる。
[第2の実施の形態]
本発明の第2の実施の形態は、上述した第1の実施の形態に対して、LUT転送範囲計算処理として図7のフローチャートを使用する点において相違する。本実施の形態のその他の要素は、上述した第1の実施の形態(図1)の対応するものと同一なので、説明を省略する。
図7は、本実施の形態のLUT転送範囲計算処理の例を示すフローチャートである。
図7において、画像処理プロセッサ51は、既にメインメモリ56からローカルメモリ54に転送済みのLUT範囲を該画像処理プロセッサ内部の所定の記憶領域に保持しておくが(ステップS14)、入力データの最小値・最大値読み出し処理(ステップS1)、入力データの範囲に対応するLUTグリッドの計算処理(ステップS2)は、上記図6と同じである。
次に、画像処理プロセッサ51は、保持されている既に転送済みのLUT範囲を参照し(ステップS11)、その転送済みのLUT範囲を除外したLUT転送範囲を計算する(ステップS12)。即ち、既にメインメモリ56からローカルメモリ54に転送済みのLUT範囲に関しては、なるべく何度も同じLUT範囲を転送しないように、転送済みのLUT範囲(領域全体或いは一部)をLUT転送範囲から除外する。
但し、既に転送済みのLUT範囲をLUT転送範囲から完全に除外しようとすると、LUT転送範囲が複雑な形状になり、LUTの転送に使用されるデバイスの能力では扱えなくなる可能性がある。その場合は、デバイスの能力の範囲内で除外できるLUT範囲をLUT転送範囲から除外する。
最後に、画像処理プロセッサ51は、メインメモリ56からローカルメモリ54に転送済みのLUT範囲の値を更新し(ステップS13)、LUT転送範囲計算処理を終了する。
以上説明したように、本実施の形態によれば、小容量・高速のローカルメモリ54と大容量・低速のメインメモリ56を備えたデータ処理装置において、複数のLUTを切り替えて使用せねばならない状況においても、転送済みのLUT範囲に関しては何度も同じLUT範囲を転送しないようにすることで、ローカルメモリ54の高速性を生かすことができる。これにより、データ処理の高速化を図ることができる。
[他の実施の形態]
上記第1及び第2の実施の形態では、データ処理装置のメインメモリ56に格納するLUTを2つとした場合を説明したが、本発明はこれに限定されるものではなく、メインメモリ56に格納するLUTが3つ以上の場合にも適用することができる。
上記第1及び第2の実施の形態では、最小値・最大値計算部131を別個に設ける構成としたが、本発明はこれに限定されるものではなく、最小値・最大値計算部131の機能を例えば画像処理プロセッサ51に持たせる構成としてもよい。
上記第1及び第2の実施の形態では、データ処理装置単体について説明したが、本発明はデータ処理装置を搭載したプリンタや複写機等の各種の画像処理装置にも適用することができる。
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム(図6、図7のフローチャート)をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが該供給されたプログラムを読出して実行することによって、達成することができる。
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
プログラムコードを記憶する記憶媒体としては、例えば、ROM、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(登録商標)、光磁気ディスク、CD−ROM、MO、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード等がある。
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するOS等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
本発明の第1の実施の形態に係るデータ処理装置の構成を示すブロック図である。 3次元LUT上の各色の入力データ値の存在しうる範囲を示す図である。 3次元LUT上で参照されうる格子点の範囲を示す図である。 メインメモリ上に存在する3次元LUTのデータを2次元的に表現した図である。 画像処理プロセッサ及びDMAコントローラの処理の流れを時系列で示した図である。 LUT転送範囲計算処理の例を示すフローチャートである。 本発明の第2の実施の形態に係るLUT転送範囲計算処理の例を示すフローチャートである。 従来例に係る3次元LUTの概念を示す図である。 プリンタで複数画像を印刷する場合を示す図である。 複数画像をバンド処理する場合のバンド内処理を示す図である。 データ処理装置の構成を示す図である。 入力データに対するDMAコントローラの動作を示す図である。 図12における動作を時系列で示した図である。 LUT1、LUT2をメインメモリから利用する場合を示す図である。 LUT1をローカルメモリから利用し、LUT2をメインメモリから利用する場合を示す図である。 LUT1/LUT2の何れかをメインメモリからローカルメモリに転送して利用する場合を示す図である。 図16における動作を時系列(実現不能)で示した図である。 図16における動作を時系列(実現可能)で示した図である。
符号の説明
51 画像処理プロセッサ(第2の計算手段、転送手段、保持手段に対応)
52 DMAコントローラ(転送手段に対応)
54 ローカルメモリ(第2の記憶手段に対応)
56 メインメモリ(第1の記憶手段に対応)
71 LUT1(ルックアップテーブルに対応)
72 LUT2(ルックアップテーブルに対応)
131 最小値・最大値計算部(第1の計算手段に対応)

Claims (7)

  1. 少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置であって、
    前記第1の記憶手段及び前記第2の記憶手段間のデータ転送を行う転送手段と、
    前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第1の計算手段と、
    前記転送手段により前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記第1の計算手段により計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第2の計算手段とを備え、
    前記第2の計算手段により計算された前記ルックアップテーブルの転送範囲を、前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送することを特徴とするデータ処理装置。
  2. 前記第2の計算手段により計算された前記ルックアップテーブルの転送範囲が不連続で複数ある場合、前記複数の転送範囲の間の領域を前記複数の転送範囲に加えた連続領域、或いは前記複数の転送範囲の間の領域及び隣接する領域を前記複数の転送範囲に加えた連続領域を、前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送することを特徴とする請求項1記載のデータ処理装置。
  3. 前記第1の記憶手段から前記第2の記憶手段に既に転送済みのルックアップテーブルの転送範囲を保持しておく保持手段を更に備え、
    前記ルックアップテーブルの転送範囲を前記転送手段により前記第1の記憶手段から前記第2の記憶手段に転送する際に、前記保持手段に保持されている既に転送済みのルックアップテーブルの転送範囲の領域全体或いは一部を除外して転送することを特徴とする請求項1記載のデータ処理装置。
  4. 前記第1の記憶手段に格納されるルックアップテーブルは、3つの座標軸がデータの各要素の値に対応した3次元のルックアップテーブルであることを特徴とする請求項1記載のデータ処理装置。
  5. 前記第1の記憶手段は、非ローカルメモリであり、前記第2の記憶手段は、前記第1の記憶手段に対して相対的に小容量且つ高速のローカルメモリであることを特徴とする請求項1記載のデータ処理装置。
  6. 少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置の制御方法であって、
    前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算し、
    前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算し、
    前記計算された前記ルックアップテーブルの転送範囲を前記第1の記憶手段から前記第2の記憶手段に転送することを特徴とする制御方法。
  7. 少なくとも1つ以上のルックアップテーブルを格納可能な第1の記憶手段と、前記第1の記憶手段に対して相対的に高速の第2の記憶手段とを備えたデータ処理装置の制御方法をコンピュータに実行させるプログラムであって、
    前記第1の記憶手段及び前記第2の記憶手段間のデータ転送を行う転送モジュールと、
    前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段に転送されるデータの要素毎の最小値及び最大値を計算する第1の計算モジュールと、
    前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段にデータが転送された後、前記第1の計算モジュールにより計算された前記データの要素毎の最小値及び最大値を使用して、前記データの処理に必要なルックアップテーブルの転送範囲を計算する第2の計算モジュールと、
    前記第2の計算モジュールにより計算された前記ルックアップテーブルの転送範囲を、前記転送モジュールにより前記第1の記憶手段から前記第2の記憶手段に転送する制御モジュールとを備えることを特徴とするプログラム。
JP2004170293A 2004-06-08 2004-06-08 データ処理装置及びその制御方法、プログラム Withdrawn JP2005352593A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004170293A JP2005352593A (ja) 2004-06-08 2004-06-08 データ処理装置及びその制御方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004170293A JP2005352593A (ja) 2004-06-08 2004-06-08 データ処理装置及びその制御方法、プログラム

Publications (1)

Publication Number Publication Date
JP2005352593A true JP2005352593A (ja) 2005-12-22

Family

ID=35587052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004170293A Withdrawn JP2005352593A (ja) 2004-06-08 2004-06-08 データ処理装置及びその制御方法、プログラム

Country Status (1)

Country Link
JP (1) JP2005352593A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241660A (ja) * 2006-03-08 2007-09-20 Canon Inc 画像処理方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241660A (ja) * 2006-03-08 2007-09-20 Canon Inc 画像処理方法及び装置

Similar Documents

Publication Publication Date Title
JP4795264B2 (ja) 走査変換装置及び走査変換方法
JP5710507B2 (ja) 色補正のための方法及びデバイス
JP5028324B2 (ja) 画像処理装置およびその方法
US6977756B2 (en) Error diffusion processing device
JP5899863B2 (ja) 印刷装置および印刷装置の印刷方法
JP2005352593A (ja) データ処理装置及びその制御方法、プログラム
JP2009094625A (ja) 画像処理装置及び方法並びにプログラム
JP2000134495A (ja) 色補正装置
JP6642347B2 (ja) 画像処理装置
JP2008205612A (ja) 画像処理回路およびこれを搭載したプリンタコントローラ
JP4495048B2 (ja) データ転送装置及びそれを用いた操作表示装置及び画像形成装置
JP5899860B2 (ja) 印刷装置および印刷装置の印刷方法
JP2008059452A (ja) 画像処理装置、画像処理方法
JP2006135825A (ja) 画像補間処理装置
JP4296423B2 (ja) 色変換装置および色変換方法
JP2006229505A (ja) 画像処理装置および画像処理方法
JP2006019899A (ja) 色変換装置及び色変換方法
JP3075247B2 (ja) カラー電子写真印刷装置
JP2003153022A (ja) 画像処理方法、画像処理装置、画像形成装置、プログラムおよび記録媒体
JP2022049520A (ja) データ転送装置、複合機、データ転送装置の制御方法およびプログラム
JP2005269233A (ja) 多値ディザマトリクス制御装置および印刷制御装置および多値ディザマトリクス制御方法およびプログラム
JP5598060B2 (ja) 画像処理装置及び画像処理方法
JP2008205611A (ja) 画像処理回路およびそれを搭載したプリンタコントローラ
JP2000082138A (ja) 画像の階調変換処理装置
JP2010147818A (ja) 画像処理装置及び画像処理モジュール

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060418

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904