(57)【特許請求の範囲】
【請求項１】
複数のＣＣＤで構成された入力部が、該複数のＣＣＤから取り込んだ入力データを、該複数のＣＣＤごとに補正するデータ補正装置において、
前記入力データの補正を行うための前記複数のＣＣＤごとの高次多項式を直交展開するための基底関数を、該入力データが取りうる値ごとに演算して求められた演算データである基底関数配列データと、及び、前記高次多項式を直交展開するための展開係数を、該複数のＣＣＤに対応して演算して求められた演算データである展開係数配列データとが記憶された演算用メモリと、
前記演算用メモリから、
前記複数のＣＣＤに対応する前記展開係数配列データ、及び、前記入力データが取りうる値に対応する前記基底関数配列データを取り出して、
前記高次多項式を直交展開するための展開式に基づいて、該高次多項式を演算して、該入力データの補正を行う演算部と、
を含むデータ補正装置。
【請求項２】
前記演算用メモリ及び演算部が複数個である請求項１に記載のデータ補正装置。
【請求項３】
前記基底関数が、チェビシェフ関数である請求項１または２に記載のデータ補正装置。
【請求項４】
前記チェビシェフ関数が２次乃至４次のチェビシェフ関数である請求項３に記載のデータ補正装置。
【請求項５】
前記高次多項式が、ＬＵＴ（Look up table）変換を近似した式である請求項１乃至４に記載のデータ補正装置。
【請求項６】
前記演算部がＤＳＰ（Digital signal processor）の演算回路であり、前記演算用メモリが該ＤＳＰの内部メモリである請求項１乃至５に記載のデータ補正装置。
【請求項７】
複数のＣＣＤで構成された入力部が、該複数のＣＣＤから取り込んだ入力データを、該複数のＣＣＤごとに演算部が補正するデータ補正方法において、
前記入力データの補正を行うための前記複数のＣＣＤごとの高次多項式を直交展開するための基底関数を、該入力データが取りうる値ごとに演算して求められた演算データである基底関数配列データと、及び、前記高次多項式を直交展開するための展開係数を、前記複数のＣＣＤに対応して演算して求められた演算データである展開係数配列データとを、前記演算部が得るステップと、
前記演算部が、前記高次多項式を直交展開するための展開式に基づいて、
前記入力データについての前記基底関数配列データと、前記ＣＣＤについての前記展開係数配列データとを乗算し、該乗算して求められた結果を該演算部が加算するステップと、
を含むデータ補正方法。
【請求項８】
前記演算部が得るステップは、前記演算部が前記入力データ及び複数のＣＣＤを識別する画素番号を参照して行われる請求項７に記載のデータ補正方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＣＤ（charge coupled device）から出力されたデータを補正するためのデータ補正装置及びデータ補正方法に関する。
【０００２】
【従来の技術】
従来、入力部としてラインセンサ、平面センサ及びディジタルカメラなどを利用した画像処理を行う場合、ラインセンサなどを構成する各ＣＣＤは、受光感度にばらつきがある。従って、図５に示すＣＣＤの入出力特性は、ＣＣＤごとに異なる。ＣＣＤの入出力特性を補正するために、ＬＵＴ（Look up table）が必要になる。ＬＵＴを使用したＬＵＴ変換は、ハードウェアあるいはソフトウェアによって実行されていた。
【０００３】
ハードウェアでＬＵＴ変換を実行する場合、入力データをＳＲＡＭ（Static RAM）のアドレス線に入力し、ＳＲＡＭに記憶された補正後のデータを取得し、このデータを出力データとする。ＬＵＴ変換の例として、８ｂｉｔのデータ（取りうる値は０−２５５）の変換の場合、予め変換後の数値を格納した要素数が２５６個の配列をメモリに用意し、入力データの値を引数として配列にアクセスする。アクセスした配列のデータがＬＵＴ変換後のデータである。配列のメモリ使用量は２５６バイトとなる。１０ｂｉｔのデータの場合（とりうる値は０−１０２３）は、要素数が１０２４個の配列を用意する。メモリは通常８ビット単位で構成されるので、配列のメモリ使用量は２０４８バイトとなる。
【０００４】
例えばＣＣＤの画素数が３０００の場合、ＣＣＤの画素ごとにＬＵＴが必要となるので、ＬＵＴのメモリ使用量は、３０００×２ＫＢ＝６ＭＢとなる。しかし、ＬＵＴ変換は、ラインセンサの画像出力と同等の速度（一例としてピクセルレート３０ＭＨｚ）で動作しなければならず、６ＭＢもの高速ＳＲＡＭで構成する必要がある。これは、価格的、実装面積的に制約が大きく、実現が困難である。
【０００５】
また、ディジタルデータの処理を行うためのマイクロプロセッサであるＤＳＰ（Digital signal processor）を使用し、ソフトウェアによりＬＵＴ変換を構成することも可能である。一例として、３０個のＤＳＰで３０００画素を分割して処理する場合、各ＤＳＰは１００画素を処理する。従って、各ＤＳＰにはＬＵＴ変換のために２００ＫＢの内部ＳＲＡＭが必要となる。
【０００６】
しかし、ＤＳＰの内部ＳＲＡＭは大きくても４８ＫＢ程度までであるため、現実的ではない。更に、ＤＳＰの本来の目的は画像データ取得後の画像処理にあるため、内部ＳＲＡＭの一部に大容量のＬＵＴが常駐することは好ましくない。
【０００７】
ソフトウェアによって行うＬＵＴ変換の効率を改善するため、ＬＵＴ変換を多項式で近似して行う方法もある。図５に示すようにＣＣＤごとの入出力特性は非線形である。入出力特性は連続であり、例えば４次関数を使用して近似する場合、入出力特性カーブは式１のようになる。係数は、予め入出力特性を基に決定しておく。
【０００８】
【式１】
0003852746.tif 000002
【０００９】
式１の演算を行うためには、乗算１０回、加算４回が必要である。ただし、倍精度演算が必要であり、単精度演算に換算すると、乗算４０回に相当する。なお、加算回数についてはプロセッサ・アーキテクチャによって変動するので、比較を行わない。ピクセルレートを３０ＭＨｚとすると、ＤＳＰ１つ当たりの乗算の処理能力は、少なくとも１２００メガ演算／秒の処理能力が必要である。ＤＳＰの現実的な処理能力はＤＳＰを制御するプログラムによって異なる。しかし、１０００メガ演算／秒を超えており、更に加算を行う必要があるため、ＤＳＰの処理能力をはるかに超えている。
【００１０】
また、式１を変形することによって、演算回数を減らす場合、例えば式２のように変形する。
【００１１】
【式２】
0003852746.tif 000003
【００１２】
式２の場合、乗算４回、加算４回で済む。しかし、上記と同じように単精度演算に換算すると、乗算１６回になる。ピクセルレートを３０ＭＨｚとすると、ＤＳＰ１つ当たり少なくとも４８０メガ演算／秒の乗算の処理能力が必要である。更に加算が必要であるため、１０００メガ演算／秒を越える恐れがあり、ＤＳＰの処理能力を超えてしまう場合がある。
【００１３】
【発明が解決しようとする課題】
そこで本発明の目的は、ＣＣＤから出力されたデータを処理する際に、メモリ使用量及び演算量を抑えたデータ補正装置及びデータ補正方法を提供することにある。
【００１４】
本発明のデータ補正装置の要旨とするところは、複数のＣＣＤで構成された入力部が、該複数のＣＣＤから取り込んだ入力データを、該複数のＣＣＤごとに補正するデータ補正装置において、前記入力データの補正を行うための前記複数のＣＣＤごとの高次多項式を直交展開するための基底関数を、該入力データが取りうる値ごとに演算して求められた演算データである基底関数配列データと、及び、前記高次多項式を直交展開するための展開係数を、該複数のＣＣＤに対応して演算して求められた演算データである展開係数配列データとが記憶された演算用メモリと、前記演算用メモリから、前記複数のＣＣＤに対応する前記展開係数配列データ、及び、前記入力データが取りうる値に対応する前記基底関数配列データを取り出して、前記高次多項式を直交展開するための展開式に基づいて、該高次多項式を演算して、該入力データの補正を行う演算部と、を含むことにある。
【００１５】
本発明のデータ補正方法の要旨とするところは、複数のＣＣＤで構成された入力部が、該複数のＣＣＤから取り込んだ入力データを、該複数のＣＣＤごとに演算部が補正するデータ補正方法において、前記入力データの補正を行うための前記複数のＣＣＤごとの高次多項式を直交展開するための基底関数を、該入力データが取りうる値ごとに演算して求められた演算データである基底関数配列データと、及び、前記高次多項式を直交展開するための展開係数を、前記複数のＣＣＤに対応して演算して求められた演算データである展開係数配列データとを、前記演算部が得るステップと、前記演算部が、前記高次多項式を直交展開するための展開式に基づいて、前記入力データについての前記基底関数配列データと、前記ＣＣＤについての前記展開係数配列データとを乗算し、該乗算して求められた結果を該演算部が加算するステップと、を含むことにある。
【００１６】
【発明の実施の形態】
本発明のデータ補正装置及びデータ補正方法の実施の形態を図面を基に説明する。
【００１７】
図１に示すように本発明のデータ補正装置は、データの補正を行うための高次多項式を直交展開したときの展開係数及び基底関数を演算した結果である演算データが、それぞれ展開係数配列データ及び基底関数配列データとして記憶された演算用メモリ２２と、その展開係数配列データ及び基底関数配列データを参照してデータの補正を行う演算部２０と、を含む。展開係数配列データ及び基底関数配列データは、演算用メモリ２２の展開係数配列及び基底関数配列を構成する要素である。演算用メモリ２２及び演算部２０は複数設けられている。また、２次元のデータを取り込み入力データとして入出力制御部１６に出力する入力部１２、入力データを記憶する複数のデータ用メモリ２４、入力部１２で取り込まれたデータを、演算部２０を介して各データ用メモリ２４に振り分ける入出力制御部１６、入出力制御部１６及び各演算部２０を制御する演算制御部１４及び演算部２０とPCI BUS（Peripheral Component Interconnect BUS）２８の接続を制御するPCIインターフェース２６が含まれる。入力部１２は複数のＣＣＤ（入力素子）で構成されているラインセンサである。本発明において、演算用メモリ２２はＳＲＡＭ（Static RAM）を使用し、データ用メモリ２４はＳＤＲＡＭ（Synchronous Dynamic RAM）を使用する。
【００１８】
演算部２０及び演算用メモリ２２は、それぞれＤＳＰ（Digital signal processor）１８の演算回路及び内部メモリである。入力部１２で取り込まれた入力データは１ラインずつ所定の順序でＤＳＰ１８に分配され、並列処理により処理効率を高めるようにされている。一例として、ＣＣＤの数が３０００個の場合、ＤＳＰの数は３０個である。また、１つ当たりのＤＳＰのクロックは２５０ＭＨｚである。入出力制御部１６は、ＦＩＦＯ（First-In First-Out）を使用する。データ用メモリ２４の容量は４８ＭＢである。
【００１９】
入力部１２で取り込まれたデータの補正を行うための高次多項式は、ＬＵＴ（Look up table）変換を行うために近似された多項式であり、従来技術で示した式１である。展開計数及び基底関数は、式１を直交展開するときに使用するものである。一般に、区間[0,T]で定義された関数f(x)は式３のように級数展開される。
【００２０】
【式３】
0003852746.tif 000004
【００２１】
式３の演算結果である出力画素値は、入力データの補正後のデータである。Ψm（ｘ）は基底関数、ｂｍは展開係数である。Ψm（ｘ）が正規直交基底の場合、ｂｍは式４のように求められる。
【００２２】
【式４】
0003852746.tif 000005
【００２３】
j[Ψm（ｘ）]は、Ψm（ｘ）の複素共役である。例えば、ＣＣＤが１００個あれば、そのそれぞれについて式４を演算して演算データを求め、図３（ａ）に示すように、この演算データを展開係数配列データ３２としてそれぞれの演算用メモリ２２に記憶し、展開係数配列３０を構成する。図３（ａ）において、Ａ１乃至Ａｐは展開係数配列の配列要素番号（添字）であり、ＣＣＤの数が１００個であればＰ＝１００になる。即ち、展開係数配列の配列要素番号の数は、ＣＣＤの数に対応する。更に、本発明において、展開係数配列３０は０乃至４次のそれぞれの展開係数について作成する。即ち、５個の展開係数配列３０が演算用メモリ２２に構成される。従って、ＣＣＤの数が１００個の場合、演算用メモリ２２に記憶される全ての展開配列データ３２は５００個になる。また、次元数をＭ次に変更することによって、０次乃至Ｍ次の展開係数配列３０を作成することが可能である。
【００２４】
ｆ（ｘ）が、以下の式５に示すｍ次関数で近似される場合、基底関数としてチェビシェフ関数（Chebychev）を選択することが可能になり、ｍ＝４の場合は、式６のように近似関数f’(x)が得られる。
【００２５】
【式５】
0003852746.tif 000006
【００２６】
【式６】
0003852746.tif 000007
【００２７】
式６においてＣ［Ψm］はチェビシェフ関数である。０次乃至４次のチェビシェフ関数Ｃ［Ψm］を以下の式７乃至１１に示す。
【００２８】
【式７】
0003852746.tif 000008
【００２９】
【式８】
0003852746.tif 000009
【００３０】
【式９】
0003852746.tif 000010
【００３１】
【式１０】
0003852746.tif 000011
【００３２】
【式１１】
0003852746.tif 000012
【００３３】
式７乃至式１１のｘｃはｘの定義域の中央値、ｎはｘを間隔１で離散化したときのサンプル数である。定義域は、入力データの取りうる値である。本発明において入力データは、ＣＣＤが２次元の画像のデータを取り込み、出力した輝度のデータである。入力データが１０ｂｉｔのデータの場合、定義域は０乃至１０２３になる。ｋm（ｍ＝０，１，２，３，４）は、正規化を行うための係数である。
【００３４】
ここで、式６は以下のような式１２になる。
【００３５】
【式１２】
0003852746.tif 000013
【００３６】
式１２の演算では、乗算５回、加算４回になっている。更に、演算回数を減らすために、式６の右辺の０次と１次の項をまとめて記述すると式１３になる。
【００３７】
【式１３】
0003852746.tif 000014
【００３８】
式１３を変形すると式１４になる。
【００３９】
【式１４】
0003852746.tif 000015
【００４０】
式１２の１次の展開係数をｂ１ｋ１、０次の展開係数を（ｂ０ｋ０−ｂ１ｋ１ｘｃ）と定義することによって、０次及び１次のチェビシェフ関数の項は、それぞれ１とｘになる。ｘは入力データ、即ち、入力画素値であるため、演算部２０が行う式１２の演算は、以下の式１５のようになる。
【００４１】
【式１５】
0003852746.tif 000016
【００４２】
式１５より、式９乃至１１である２次乃至４次のチェビシェフ関数を全ての定義域で演算して演算データを求め、図３（ｂ）に示すように、チェビシェフ関数配列（基底関数配列）データ３６としてそれぞれの演算用メモリ２２に記憶し、チェビシェフ関数配列（基底関数配列）３４を構成する。図３（ｂ）に示すＢ１乃至Ｂｑはチェビシェフ関数配列の配列要素番号（添字）であり、入力データが１０ｂｉｔの場合、ｑ＝１０２４になる。チェビシェフ関数配列の配列要素番号は、入力データの取りうる値と同じ値を使用する。また、２次乃至４次のチェビシェフ関数のそれぞれについて、チェビシェフ関数配列データ３６を求めるため、３個のチェビシェフ関数配列３４が、演算用メモリ２２に作成される。従って、入力データが１０ｂｉｔの場合、３×１０２４＝３０７２個のチェビシェフ関数配列データ３６が、演算用メモリ２２に記憶される。なお、２次乃至４次のチェビシェフ関数についてチェビシェフ関数配列３４を作成したが、次元数をＭ次に変更することによって、チェビシェフ関数配列３４も２次乃至Ｍ次に変更される。
【００４３】
式１５の演算結果である出力画素値が、入力データを補正したデータである。演算回数は、乗算が４回、加算が４回になっている。式１５より、０次及び１次のチェビシェフ関数の演算結果は、それぞれ１と入力画素値になっているため演算用メモリ２２には記憶されない。
【００４４】
画素番号は、どのＣＣＤが使用されたかを表すものであり、式１５においてｍ次展開係数配列［画素番号］（ｍは０乃至４）は、演算部２０が画素番号を引数として、演算用メモリ２２の０乃至４次のそれぞれの展開係数配列３０にアクセスした際の展開係数配列データ３２である。即ち、演算部２０は画素番号を引数として演算用メモリ２２の０乃至４次のそれぞれの展開係数配列３０にアクセスし、アクセスされた画素番号の展開係数配列データ３２を得る。
【００４５】
入力画素値はＣＣＤから出力された入力データであり、ｍ次チェビシェフ関数配列［入力画素値］（ｍは２乃至４）は、演算部２０が入力画素値を引数として、演算用メモリ２２の２乃至４次のそれぞれのチェビシェフ関数配列３４にアクセスした際のチェビシェフ関数配列データ３６である。即ち、演算部２０は入力画素値を引数として演算用メモリ２２の２次乃至４次のそれぞれのチェビシェフ関数配列３４にアクセスし、アクセスされた入力画素値のチェビシェフ関数配列データ３６を得る。
【００４６】
また、基底関数であるチェビシェフ関数は、図４に示すように、定義域（０乃至１０２３）では発散しないことが保証されており、１６ビットで表現できる。式１５では、２項の１６ビット乗算（１６ビット×１６ビット）であるため、乗算結果は単精度演算である３２ビットになる。即ち式１５の演算は単精度演算になり、計算時間が短縮される。
【００４７】
式１５より、５個の展開係数配列３０と３個のチェビシェフ関数配列３４とが、それぞれの演算用メモリ２２に構成される。例えば、ＣＣＤの数が１００個で、入力データの取りうる値が０乃至１０２３である場合、１つ当たりの展開係数配列３０の展開係数配列データ３２は１００個、１つ当たりのチェビシェフ関数配列３４のチェビシェフ関数配列データ３６は１０２４個になる。従って、５００個の展開係数配列データ３２と、３０７２個のチェビシェフ関数配列データ３６が演算用メモリ２２に記憶される。
【００４８】
次に、本発明のデータ補正装置１０を使用したデータ補正方法について説明する。データの補正は図２のフローチャートに従って行われる。入力部１２であるラインセンサが、１ラインずつ２次元の画像データを読み取り、入力画素データとして入出力制御部１６に出力する（ステップ１）。１ラインに１００個のＣＣＤがある場合、１００個の入力画素データが読み取られる。また、入力画素データを１０ｂｉｔのデータとした場合、取りうる値は０乃至１０２３の整数である。１ラインの１００個の入力データは入出力制御部１６によって、演算部２０を介して複数あるデータ用メモリ２４のいずれかに記憶される。入力データが記憶されるデータ用メモリ２４は、番号付けを行っておき、順番に入力データを記憶する。記憶するとき、ＣＣＤごとに画素番号を決定し、データ用メモリ２４の配列の配列要素番号（添字）を画素番号にすることによって、ＣＣＤからの入力データを配列のその画素番号の領域に記憶する。各ＤＳＰ１８が１ラインの入力画素データを順次に受け取る。
【００４９】
データ用メモリ２４に記憶された入力データは、データ用メモリ２４に接続された演算部２０によって補正される。演算用メモリ２２には、LUT変換を近似した高次多項式を直交展開するための展開係数及び基底関数（チェビシェフ関数）を使用して演算された、０乃至４次の展開係数配列データ３２及び２次乃至４次のチェビシェフ関数配列データ３６が記憶されている。演算部２０は、データ用メモリ２４に記憶された１ラインの画素の各画素毎に、画素番号を引数として、演算用メモリ２２の０次乃至４次のそれぞれの展開係数配列３０にアクセスし、それぞれの展開係数配列３０から展開係数配列データ３２を取得する（ステップ２）。例えば画素番号がＡ１の場合、図３（ａ）において、Ａ１を引数として演算用メモリ２２の展開係数配列３０にアクセスし、そのＡ１を配列要素番号として記録されている展開係数配列データ３２を取得する。なお、図３（ａ）の展開係数配列３０は、０乃至４次について有するので、そのそれぞれについて展開係数配列データ３２の取得を行う。
【００５０】
また、演算部２０は、データ用メモリ２４に記憶された入力データ（入力画素値）を引数として、２乃至４次のそれぞれのチェビシェフ関数配列３４にアクセスし、それぞれのチェビシェフ関数配列３４からチェビシェフ関数配列データ３６を得る（ステップ３）。例えば入力データがＢ１の場合、図３（ｂ）において、Ｂ１を引数として演算用メモリ２２のチェビシェフ関数配列３４アクセスし、そのＢ１を配列要素番号として記録されているチェビシェフ関数配列データ３６を取得する。なお、図３（ｂ）のチェビシェフ関数配列３４は、２乃至４次について有するので、そのそれぞれについてチェビシェフ関数配列データ３６の取得を行う。
【００５１】
演算部２０は、演算用メモリ２２に記憶された０次乃至４次の展開係数配列データ３２及び２次乃至４次のチェビシェフ関数配列データ３６を取得した後、式１５にその展開係数配列データ３２及びチェビシェフ関数配列データ３６を代入し、演算（乗算及び加算）を行う（ステップ４）。なお、１次展開係数配列データ３２に乗算されるのは入力データ（入力画素値）である。
【００５２】
式１５の演算を行うことによって、入力データを補正した値である出力画素値が求められる。求められた出力画素値は、ＰＣＩインターフェース２６を介してＰＣＩ  ＢＵＳ２８に出力される。
【００５３】
次に、本発明のデータ補正装置１０を使用した場合のメモリ使用量について説明する。画素数（ＣＣＤ数）をＩｍａｘ、入力データの取りうる値（定義域）をｎ、高次多項式の次元数をＭとする。展開係数配列及びチェビシェフ関数配列を合わせた配列の要素数（データ数）は、Ｉｍａｘ×（Ｍ＋１）＋（Ｍ−１）×ｎになる。Ｉｍａｘ＝１００、ｎ＝１０２４、Ｍ＝４の場合、配列の要素数は３５７２になり、メモリの使用量は７１４４バイトになる。
【００５４】
従来技術であるＬＵＴ変換を使用した場合、配列の要素数はＩｍａｘ×ｎであり、Ｉｍａｘ＝１００、ｎ＝１０２４の場合、配列の要素数は１０２４００になり、メモリの使用量は２０４８００バイトになる。また、従来技術の高次多項式（式２）を完全に計算した場合、配列の要素数はＩｍａｘ×（Ｍ＋１）であり、Ｉｍａｘ＝１００、Ｍ＝４であれば、配列の要素数は５００になり、メモリの使用量は１０００バイトになる。
【００５５】
更に、本発明のデータ補正装置１０を使用した場合の演算負荷について説明する。式１５より乗算４回、加算４回である。なお、倍精度加算を単精度加算の繰り返しで行う場合の繰り返し回数は、プロセッサアーキテクチャーによって変動するので、比較を行わない。演算用メモリ２２に記憶された展開係数配列データ３２及びチェビシェフ関数配列（基底関数配列）データ３６は、正規化されたものである。従って、乗算は単精度乗算（１６ビット×１６ビット）であり、単精度乗算回数は４回である。ピクセルレート３０ＭＨｚの場合、１２０メガ演算／秒の演算負荷になる。
【００５６】
従来のＬＵＴ変換の場合、演算は行われないので演算回数は０回である。また、高次多項式（式２）を完全に演算する場合、乗算４回になる。この場合の乗算は、長精度乗算（３２ビット×３２ビット）であり、長精度乗算を単精度乗算に換算する場合、たすきがけで４回の単精度乗算を行う必要とするため、長精度乗算４回は単精度乗算１６回になる。ピクセルレート３０ＭＨｚの場合、４８０メガ演算／秒の演算負荷になる。
【００５７】
上記のメモリの使用量及び演算負荷を表１に示す。
【００５８】
【表１】
0003852746.tif 000017
【００５９】
表１より、本発明のデータ補正装置１０及びデータ補正方法によって、ＬＵＴ変換を使用した場合のように、演算用メモリ２２の使用量が必要以上に大きくなることはない。即ち、演算用メモリ２２の容量を小さくすることができ、価格を抑えたり、実装面積を小さくできる。また、ＬＵＴ変換を近似した高次多項式のように、演算部２０の処理能力以上の処理速度を必要とされることはない。基底関数を正規化することによって、演算が単精度演算になり、演算スピードが速くなる。基底関数にチェビシェフ関数を選択することにより、０次及び１次のチェビシェフ関数配列データを演算用メモリ２２に記憶することはなく、演算用メモリ２２の使用量を抑えられる。更に、０次のチェビシェフ関数が１であるため、０次の展開係数配列データと０次のチェビシェフ関数配列データの乗算を行う必要はなく、演算時間を抑えることができる。
【００６０】
以上、本発明のデータ補正装置及びデータ補正方法について実施形態を記載したが、本発明のデータ補正装置及びデータ補正方法は上記の実施形態に限定されるものではない。例えば、基底関数は、正規直交系のものであればチェビシェフ関数以外の関数を使用することができる。
【００６１】
また、展開係数が無限個数にならないような基底関数を使用することも可能である。
【００６２】
求められた出力画素値は、ＰＣＩインターフェース２６を介してＰＣＩ  ＢＵＳ２８に出力されたが、ＤＳＰ１８演算部２０が画像認識の機能を備えている場合、出力画素値を使用して画像認識を行うことができる。
【００６３】
入力部１２がラインセンサではなく平面センサなどを使用した場合、１度に２次元画像を取り込み、取り込んだ２次元画像を１ラインずつ出力することもできる。
【００６４】
その他、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正及び変形を加えた態様で実施できるものである。
【００６５】
【発明の効果】
本発明のデータ補正装置によると、演算用メモリに展開係数配列及び基底関数配列を記憶することにより、演算部での演算時間を抑えることができる。また、演算用メモリの消費量も抑えることができる。
【００６６】
また、本発明のデータ補正方法によると、単精度演算回数が乗算４回と加算４回であり、ＬＵＴ変換を近似した高次多項式をそのまま演算するのに比べて、単精度演算回数が少なくなっている。従って、演算スピードを早くすることができる。
【図面の簡単な説明】
【図１】本発明のデータ補正装置の構成を示す図である。
【図２】入力データの補正方法を示すフローチャートである。
【図３】演算用メモリ内の配列を示す図あり、（ａ）は展開係数配列を示す図であり、（ｂ）はチェビシェフ関数配列を示す図である。
【図４】チェビシェフ関数を示す図である。
【図５】ＣＣＤの入出力特性を示す図である。
【符号の説明】
１０：データ補正装置
１２：ラインセンサ
１４：演算制御部
１６：入出力制御部
１８：ＤＳＰ
２０：演算部
２２：演算用メモリ
２４：データ用メモリ
２６：ＰＣＩインターフェース
２８：ＰＣＩＢＵＳ
３０：展開係数配列
３２：展開係数配列データ
３４：チェビシェフ関数配列（基底関数配列）
３６：チェビシェフ関数配列データ
【図１】
0003852746.tif 000018
【図２】
0003852746.tif 000019
【図３】
0003852746.tif 000020
【図４】
0003852746.tif 000021
【図５】
0003852746.tif 000022