(57)【特許請求の範囲】
【請求項１】
複数の撮像素子のガンマ特性を補正するガンマ補正装置において、
基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値の差分値とを、予め定めた記憶容量で記憶し、上記差分値が予め定めた記憶容量を超過した場合、該差分値に上記予め定めた記憶容量を超過した値を加算し、該加算した値を隣接する素子の差分値として記憶するガンマ補正値記憶手段と、
基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では、上記基準素子のガンマ補正値に当該素子の位置までに存在する素子の差分値をそれぞれ積算することにより素子毎のガンマ補正値を算出するガンマ補正値算出手段と、
上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたことを特徴とするガンマ補正装置。
【請求項２】
請求項１記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、
上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたことを特徴とするガンマ補正装置。
【請求項３】
請求項１記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶することを特徴とするガンマ補正装置。
【請求項４】
複数の撮像素子のガンマ特性を補正するガンマ補正装置において、
入力値毎の各素子のガンマ補正値の平均値と、該平均値と上記各素子毎のガンマ補正値との差分値を記憶したガンマ補正値記憶手段と、
上記ガンマ補正値の平均値に素子毎の差分値を加算することにより素子毎のガンマ補正値を算出するガンマ補正値算出手段と、
上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたことを特徴とするガンマ補正装置。
【請求項５】
請求項４記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、
上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたことを特徴とするガンマ補正装置。
【請求項６】
請求項４記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶することを特徴とするガンマ補正装置。
【請求項７】
複数の撮像素子のガンマ特性を補正するガンマ補正装置において、
基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値との差分値と、該差分値のデータ長を記憶するガンマ補正値記憶手段と、
基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では、上記基準素子のガンマ補正値に当該素子の位置まで存在する素子の差分値をそれぞれ積算することにより基準素子以外の素子毎のガンマ補正値をそれぞれ算出するガンマ補正値算出手段と、
上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたことを特徴とするガンマ補正装置。
【請求項８】
請求項７記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、
上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたことを特徴とするガンマ補正装置。
【請求項９】
請求項７記載のガンマ補正装置において、
上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶することを特徴とするガンマ補正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はガンマ補正装置に関し、特に撮像装置としてイメージスキャナを用いる場合のガンマ補正に関するものである。
【０００２】
【従来の技術】
従来のイメージスキャナにおいて、取り込んだ画像を表示するモニタ等の表示装置との間で、入力信号に対する出力信号の線形性を保つためにガンマ補正が行われる。一般的には表示装置であるモニタはガンマ＝２．２の特性を持つため、イメージスキャナ側では、ガンマ＝０．４５となるようにガンマ補正を行い、入力信号に対する出力信号の特性がリニアになるようにガンマ補正を行う。
【０００３】
実際のガンマ補正は図２７に示すように、入力信号に対するガンマ補正値を予め算出してガンマ補正テーブルをＲＯＭに格納しておき、入力信号によってＲＯＭのアドレスを参照し、そのアドレスに格納されているガンマ補正データを出力信号として出力することにより実現することができる。
【０００４】
このガンマ特性はイメージスキャナの素子毎に異なるが、ほとんどのイメージスキャナでは１個のガンマ補正値でしかガンマ補正を行わないため、素子毎のガンマ特性の差により読み取り画像に色むらが生じたり、すじが入ったりするなどの画質劣化が生じていた。
【０００５】
そして、従来、この素子特性のばらつきをおさえるために、シェーディング補正が行われている。このシェーディング補正では、素子毎の黒レベルと白レベルとを補正することで素子の特性のばらつきを抑えることができる。しかしながら、中間階調では、やはり特性のばらつきが生じるため画質劣化が生じていた。
【０００６】
さらに、上記ガンマ補正を行うために必要なガンマ補正テーブルの記憶容量を減らす方法として、素子毎のガンマ補正テーブルの容量を減らす目的ではないが、数種類のガンマ補正テーブルを機器に持たせる場合に補正テーブル容量を減らす方法として、例えば、特開平８−１９５８９５号公報に示される、ディジタルガンマ補正方法及びその装置がある。
【０００７】
以下に、この従来例について詳しく説明する。
図２８は、従来のガンマ補正を行う装置を示すブロック図である。図２８において、２８０１はデータが入力される入力端、２８０２は入力端２８０１からの信号と後述するマイクロプロセッサの出力とを切り替えて出力する入力選択部、２８０３は入力選択部２８０２から出力される信号を処理するガンマ特性補正部、２８０４は特性選択部、２８０５は特性選択部２８０４の出力を受けるマイクロプロセッサ、２８０６は上記マイクロプロセッサ２８０５へデータを供給するデータ貯蔵部である。また、２８０６（１）〜２８０６（Ｍ）は上記データ貯蔵部２８０６を構成するメモリを示している。
【０００８】
上記データ貯蔵部２８０６には、Ｍ個のガンマ補正テーブルのデータが保存されており、各ガンマ補正テーブルは一つの基準データと複数個の差分値とを保存している。特性選択部２８０４から供給されるガンマ特性選択信号により、マイクロプロセッサ２８０５がデータ貯蔵部２８０６から選択されたガンマ特性に応じたメモリから貯蔵されている基準データ、及び複数個の差分値を読み出す。マイクロプロセッサ２８０５は読み出された基準データ及び、複数個の差分値を用いてガンマ特性テーブルを復元し、ガンマ特性補正部２８０３にルックアップテーブル形態で保存する。そして、ガンマ特性補正部２８０３では、入力された映像データをアドレスデータとして、そのアドレスに対応するガンマ補正値を出力することでガンマ補正が行われる。
【０００９】
上記データ貯蔵部２８０６には、ガンマ補正テーブルをそのまま記憶させるのではなく、基準データと複数個の差分値とを記憶することで記憶容量の削減を行っている。例えば、ガンマ特性が図２９に示すような場合、データ貯蔵部２８０６には、入力データＸ（１）に対応するガンマ補正値Ｇ（１）を基準データに記憶させ、残りのガンマ補正値は、
ＤＧ（ｋ）＝Ｇ（ｋ）−Ｇ（ｋ−１）
の関係を有する差分値ＤＧ（ｋ）の形態で記憶する。すなわち隣接する入力値に対するガンマ補正値の差分値を算出して記憶するようにする。
【００１０】
基準データと差分値からガンマ補正データを復元するには、基準データからｋ番目までの差分値を積算することにより復元することができる。このように基準データ以外は差分値となるため記憶容量を小さくすることができる。
【００１１】
しかしながら、従来のガンマ補正装置では、低階調領域、すなわち入力データの値が小さい領域では、ガンマ特性の変化量が大きくなるため、記憶容量が小さくならないという問題があった。例えば、ある素子のガンマ補正データが図３０（ａ）に示すようなガンマ補正特性であった場合、入力データに対するガンマ補正値は図３０（ｂ）に示すようになる。ここで入力データ１に対応するガンマ補正値５を基準データとした場合、入力データ２に対応する差分値は、
２２−５＝１７
となる。同様に入力データ３に対応する差分値は１２、入力データ４に対応する差分値は６となる。差分値を記憶するための容量は差分値の最大値を記憶できるようにしなければならないので、この場合、１７を記憶するために５ビットの記憶容量が必要となる。このように入力データが小さい領域では素子のガンマ特性によって差分値が小さくならず、ガンマ補正値の記憶容量を小さくできない場合があった。
【００１２】
また、従来のガンマ補正装置は、素子毎に異なるガンマ補正値でガンマ補正を行うものでなく、素子毎に同一のガンマ補正値でガンマ補正を行うものであるため、素子毎に同一のガンマ補正テーブルを複数用意してガンマ補正を行うことはできるものの、素子毎に異なるガンマ補正を行うことはできなかった。
【００１３】
【発明が解決しようとする課題】
従来のガンマ補正装置は以上のように構成されており、素子毎に同一のガンマ補正テーブルを複数用意してガンマ補正を行うために十分に画質劣化を防止できるものではなかった。
また、入力データが小さい領域では素子のガンマ特性によって差分値が小さくならず、ガンマ補正値の記憶容量を効率的に低減することができないという問題点があった。
【００１４】
この発明は以上のような問題点を解消するためになされたもので、高精度なガンマ補正を行うことができるガンマ補正装置を提供することを目的とする。
また、入力データの大きさに関わらず、ガンマ補正値の記憶容量を小さいものとすることができるガンマ補正装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
本発明の請求項１にかかるガンマ補正装置は、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値の差分値とを、予め定めた記憶容量で記憶し、上記差分値が予め定めた記憶容量を超過した場合、該差分値に上記予め定めた記憶容量を超過した値を加算し、該加算した値を隣接する素子の差分値として記憶するガンマ補正値記憶手段と、基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では、基準素子のガンマ補正値に当該素子の位置までに存在する素子の差分値をそれぞれ積算することにより素子毎のガンマ補正値を算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものである。
【００２２】
また、本発明の請求項２にかかるガンマ補正装置は、上記請求項１記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものである。
【００２３】
また、本発明の請求項３にかかるガンマ補正装置は、上記請求項１記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するものである。
【００２４】
また、本発明の請求項４にかかるガンマ補正装置は、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、入力毎の各素子のガンマ補正値の平均値と、該平均値と上記各素子毎のガンマ補正値との差分値を記憶したガンマ補正値記憶手段と、上記ガンマ補正値の平均値に素子毎の差分値を加算することにより素子毎のガンマ補正値として算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものである。
【００２５】
また、本発明の請求項５にかかるガンマ補正装置は、上記請求項４記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものである。
【００２６】
また、本発明の請求項６にかかるガンマ補正装置は、上記請求項４記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するものである。
【００２７】
また、本発明の請求項７にかかるガンマ補正装置は、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値との差分値と、該差分値のデータ長を記憶するガンマ補正値記憶手段と、基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では基準素子のガンマ補正値に当該素子の位置までに存在する素子の差分値をそれぞれ積算することにより基準素子以外の素子毎のガンマ補正値をそれぞれ算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものである。
【００２８】
また、本発明の請求項８にかかるガンマ補正装置は、上記請求項７記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものである。
【００２９】
また、本発明の請求項９にかかるガンマ補正装置は、上記請求項７記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するものである。
【００３９】
【発明の実施の形態】
（実施の形態１．）
以下に、本発明の実施の形態１にかかるガンマ補正装置について、図を参照しながら説明する。図１は本実施の形態１のガンマ補正装置の構成を示すブロック図である。図１において、１０１はＣＣＤ等の撮像素子、１０２はＣＣＤ１０１の出力をデジタルに変換するＡ／Ｄコンバータ、１０３はＡ／Ｄコンバータ１０２の出力を受けるガンマ補正回路、１０４はガンマ補正値記憶回路１０５から必要なガンマ補正値を選択して取り出すガンマ補正テーブル選択回路、１０６は素子選択回路である。
【００４０】
以下、動作について説明する。
撮像素子１０１で入力画像を取り込み、Ａ／Ｄコンバータ１０２で入力信号をデジタル化した後、各素子毎に個別のガンマ補正値を用いてガンマ補正回路１０３にてガンマ補正を行う。ここで、素子毎のガンマ補正値は、ガンマ補正値記憶回路１０５に記憶してあるガンマ補正テーブルから、該当する素子のガンマ補正テーブルをガンマ補正テーブル選択回路１０４にて選択し、選択したガンマ補正テーブルのガンマ補正値をもとにガンマ補正回路１０３にてガンマ補正を行う。
【００４１】
イメージスキャナは、図２に示すような構成により画像を読み取っている。すなわち、図２において、２０１は読み取り原稿、２０２は照明、２０３は読み取り原稿２０１と撮像素子２０４との間に配置されたレンズである。
読み取り原理は、上記読み取り原稿２０１を照明２０２にて照らして、その反射光をレンズ２０３にて結像し、光の信号を撮像素子２０４にて電気信号に変換するものである。上記撮像素子２０４は、１番素子からＮ番素子までの複数の素子で構成され、素子毎に光の信号を電気信号に変換している。
【００４２】
本実施の形態のガンマ補正装置では、撮像素子２０４を構成する１番素子からＮ番素子まで素子毎に個別のガンマ補正テーブルを持たせてガンマ補正を行う。その素子毎のガンマ補正テーブルを記憶するのがガンマ補正値記憶回路１０５である。
【００４３】
例えば、各素子の入力値に対するガンマ補正値が図３（ａ）に示すような特性の場合、ガンマ補正値記憶回路１０５には、図３（ｂ）に示した値が記憶されることになる。この場合、ガンマ補正値を８ビット、すなわち１バイトであらわしている。ガンマ補正値記憶回路１０５には、まず１番素子の入力値０から２５５に対するガンマ補正値が１バイトで２５６個格納されており、次に２番素子のガンマ補正値が同じく１バイトで２５６個格納されている。このようにして撮像素子のＮ番素子までのすべてのガンマ補正値が記憶されている。
【００４４】
Ｎ番目の素子のガンマ補正値を算出するには、ガンマ補正テーブル選択回路１０４にて、ガンマ補正値記憶回路１０５に記憶してあるガンマ補正値からＮ番素子のガンマ補正値を選択する必要があるが、これについてはガンマ補正値記憶回路１０５上でＮ番素子のガンマ補正値の先頭アドレスが、
（先頭アドレス）＝１＊２５６＊（Ｎ−１）  バイト
で算出できるので、この先頭アドレスから２５６バイト分のデータが素子のガンマ補正値となる。このガンマ補正値をもとにガンマ補正を行うことにより、素子毎に個別のガンマ補正を行うことができる。
【００４５】
このように本実施の形態によれば、ガンマ補正値記憶回路１０５に各素子毎にガンマ補正テーブルを準備し、各画素毎に対応した補正テーブルをガンマ補正テーブル選択手段１０４を用いて選択してガンマ補正を行うようにしたので、高精度なガンマ補正を行うことができ、画質の劣化を抑えることができる。
【００４６】
（実施の形態２．）
次に本発明の実施の形態２におけるガンマ補正装置について説明する。本実施の形態では、上記実施の形態１に示した構成において、ガンマ補正テーブルを小さくするために、０から２５５までの連続した入力データに対するガンマ補正値を記憶するのではなく、何点かの離散的な入力データに対するガンマ補正値を記憶するようにしたものである。図４は本実施の形態２によるガンマ補正装置の回路ブロック図を示す。図４において、図１と同一符号は同一または相当部分を示し、ガンマ補正値補間回路４０４とパターン値記憶回路４０８が付加されている点が図１と異なる。
【００４７】
一般にガンマ補正値を算出するには、図５に示すような予め値のわかっているグレーチャートをスキャナより読み込んで、グレーチャートの値とその読み取り値からガンマ補正値を算出し、グレーチャートにない入力値に対するガンマ補正値は、直線補間または曲線補間により値を補間してガンマ補正値を算出している。
【００４８】
そこで、上記ガンマ補正値記憶回路１０５には、グレーチャートのパターンに対するガンマ補正値を記憶しておき、補間処理によりガンマ補正値を補間するようにすれば、その記憶容量を小さくすることができる。例えば、図５に示すように、１０パターンのグレーチャートの場合、０から２５５までの連続した入力データに対するガンマ補正値を記憶する場合と比較してその記憶容量を１０／２５６にすることができる。以下にガンマ補正値の算出方法について述べる。
【００４９】
ガンマ補正値記憶回路１０５には、パターン数分のガンマ補正値が素子毎に記憶されており、例えば、１０パターンのグレーチャートに対するガンマ補正値は図６に示すようになる。パターン値はグレーチャートの各階調毎のパターンを測定器で測定した値である。ガンマ補正テーブル選択回路１０４では、各素子毎のガンマ補正テーブルを選択し、そのガンマ補正値をガンマ補正値補間回路４０４に送る。
【００５０】
そしてガンマ補正値補間回路４０４では、ガンマ補正テーブル選択回路１０４で選択されたガンマ補正値と、パターン値記憶回路４０８に記憶してあるパターン値とからガンマ補正値の補間を行う。例えば、図６の１番素子のガンマ補正値を補間した場合、図７に示すように、データ間を直線補間することで補間処理を行うことができる。例えば、パターン値２５から５０までの値Ｘに対するガンマ補正値Ｙは、
Ａ＝（１２３−９０）／（５０−２５）
Ｙ＝Ａ＊（Ｘ−２５）＋９０
で算出することができる。
このようにしてガンマ補正値補間回路４０４にて補間されたガンマ補正値をもとに、ガンマ補正回路１０３により各素子毎にガンマ補正を行うことができる。
【００５１】
なお、離散的な入力値に対するガンマ補正値を記憶させる場合、低階調部のパターン、つまり暗い領域のパターンに対するガンマ補正値をより多く記憶させるようにしてもよい。これはガンマ補正曲線が低階調部での変化が大きいことから、この領域でのデータをより多くとることによりガンマ補正精度を向上させることができるためである。
【００５２】
例えば、図８に示すように、ガンマ補正曲線がガンマ２．２の値をもつ理想ガンマ曲線を１０個の離散的なデータで直線近似する場合、階調を均等にＸ（０）からＸ（９）で分割して近似した場合には、低階調領域で補間したガンマ補正値と理想ガンマ曲線との誤差が大きくなることがわかる。これはガンマ補正曲線が低階調部で大きく変化するためである。そこで図９に示すように、同じ１０個のデータでも低階調領域のデータ数をより多くとることにより理想ガンマ曲線との誤差を最小限にすることができることがわかる。
【００５３】
上記図４に示した構造においても、ガンマ補正値を算出する際に用いるグレーチャートを、低階調部がより多いパターン、すなわち黒に近いパターンをより多く持つチャートにする、またはグレーチャートの中でガンマ補正に使用するパターンを低階調部をより多く選択することで、低階調部のガンマ補正値をより多くガンマ補正値記憶回路１０５に記憶させることが可能である。
【００５４】
このように、本実施の形態２によれば、離散的な入力データに対するガンマ補正値をガンマ補正値記憶回路１０５に記憶し、入力データの離散度を記憶したパターン値記憶回路４０８から該当する入力データが含まれるパターン値と、上記ガンマ補正値記憶回路１０５に記憶されたガンマ補正値とを用いて、ガンマ補正値補間回路４０４にて補間処理により適切なガンマ補正値を算出してガンマ補正を行うようにしたので、各画素毎にガンマ補正を行うことができ、画質の劣化を抑えることができるとともに、ガンマ補正値を記憶するのに必要な記憶容量を小さいものとすることができ、コストダウンを図ることができる。
なお、低階調領域のパターンに対するガンマ補正値をより多く記憶させることにより、補間処理による誤差を小さくすることができ、ガンマ補正の精度をさらに向上させることができる。
【００５５】
また、基準となる素子について１番目の素子を基準素子としたが、もちろんどの素子を基準素子としてもよい。
また、基準素子を１つだけとするのではなく、何点も基準素子をもってもよい。
また、上記離散的な入力値に対するガンマ補正値を記憶する場合、グレーチャートの１０パターンを記憶する場合について説明したが、パターン数もこれに限定するものではない。
さらに、ガンマ補正値を補間する場合、直線近似で補間するのでなく、２次曲線等の曲線により補間するようにしてもよい。
【００５６】
（実施の形態３．）
以下に本発明の実施の形態３にかかるガンマ補正装置について、図を参照しながら説明する。
図１０は本実施の形態３のガンマ補正装置の構成を示すブロック図である。図１０において、図１と同一符号は同一、または相当部分を示し、図１のガンマ補正テーブル選択回路１０４の代わりにガンマ補正値算出回路１００４が設けられ、ガンマ補正値記憶回路１０５の代わりに、基準素子のガンマ補正テーブルと、他の各素子のガンマ補正テーブルを上記基準素子に対する差分値として記憶するガンマ補正値記憶回路１００５とが設けられている点が異なっている。
【００５７】
以下、動作について説明する。撮像素子１０１で入力画像を取り込み、Ａ／Ｄコンバータ１０２で入力信号をデジタル化した後、各素子毎に個別のガンマ補正値を用いてガンマ補正回路１０３にてガンマ補正を行う。
ガンマ補正値は、ガンマ補正値記憶手段１００５に記憶してあるガンマ補正値から、素子選択回路１０６にて選択された素子のガンマ補正値をガンマ補正値算出回路１００４にて算出する。
【００５８】
本実施の形態３のガンマ補正装置では、１番素子からＮ番素子までの素子毎のガンマ補正テーブルをそのまますべて記憶するのではなく、基準となる素子のガンマ補正テーブルと、位置的に隣接する素子のガンマ補正テーブルの差分値を記憶させることで、記憶容量を小さくするようにしている。
【００５９】
ガンマ補正は一般的には、図２７で示したように、入力データに対するガンマ補正値をテーブル形式でＲＯＭに記憶したものを使用して行う。前述したように、このガンマ補正テーブルを素子毎に持たせようとすると、例えば８ビットのＲ，Ｇ，Ｂ３色で６４０素子分では、
２８×３×６４０＝４９１，５２０バイト
の容量が必要となる。そこで基準となる素子のガンマ補正テーブルは従来どおりにガンマ補正値をＲＯＭに記憶させるが、それ以外の素子については位置的に隣接する素子どうしのガンマ補正テーブルの差分値を記憶することで容量を小さくする。以下、この差分値の算出方法について図１１を用いて詳しく説明する。
【００６０】
図１１においてテーブル１１０１が各素子毎のガンマ補正値を示しており、１番素子から４番素子までの入力値に対するガンマ補正値が格納されている。この場合、１番素子が基準となる素子であり、１番素子はそのまま８ビットでガンマ補正値が記憶される。２番目以降の素子についてはテーブル１１０２に示すように、入力値毎に、位置的に隣接する素子どうしのガンマ補正値の差分値を記憶していく。すなわち、２番素子では、１番素子との入力値毎の差分値、３番素子では２番素子との入力値毎の差分値というように差分値を記憶していく。
【００６１】
例えば、２番素子の入力値１の差分値は、２番素子ガンマ補正値１８と１番素子ガンマ補正値２１との差分値であるから差分値は−３（１８−２１）となる。このようにして差分値を算出すると図１１のテーブル１１０２に示すような値となる。
【００６２】
テーブル１１０２の差分値をみてみると、隣接する画素どうしの差分であるため、素子の特性の差が小さいことにより差分値は元のガンマ補正値よりかなり小さい値となる。図１１の例では、−３から２までの値となる。これらの数値を格納するには３ビットの容量ですむため、記憶容量を約３／８にすることができる。このようにして算出した基準素子ガンマ補正値と差分値とをガンマ補正値記憶回路１００５に記憶する。この場合、差分値は３ビットで順次記憶させていく。
【００６３】
このように１番素子を基準素子とした場合には、ガンマ補正値記憶回路１００５の基準素子ガンマ補正テーブルには、１番素子のガンマ補正テーブル、差分値Δ１には２番素子と１番素子の差分値、差分値Δ２には３番素子と２番素子との差分値というようにガンマ補正値が順次記憶される。
【００６４】
次に、ガンマ補正記憶回路１００５からガンマ補正値を算出し、ガンマ補正を行う方法について述べる。ガンマ補正値算出回路１００４ではガンマ補正記憶回路１００５に記憶してある基準素子ガンマ補正値と差分値とから素子毎のガンマ補正値を復元する。この復元方法について図１１を用いながら説明する。
図１１において、１番素子が基準素子ガンマ補正テーブルであるから、素子選択回路１０６で１番素子が選択された場合には、そのまま記憶してあるガンマ補正値を使用してガンマ補正を行う。例えば、入力画像データが３の場合には入力値３に対応する値３４を出力データとして出力することによりガンマ補正を行うことができる。
【００６５】
そして、２番素子以降は基準素子のガンマ補正値に、素子位置までの差分値を積算した値を加算してガンマ補正値を算出し、ガンマ補正を行う。例えば、４番素子の入力値０に対応するガンマ補正値を算出する場合は、基準となる１番素子の入力値０に対応するガンマ補正値は０であり、２番素子の差分値は１、３番素子の差分値は−１、４番素子の差分値は２であるからこれらの数値を積算した値がガンマ補正値となる。すなわち、
（ガンマ補正値）＝０＋１＋（−１）＋２＝２
というように、ガンマ補正値が算出される。図１１のテーブル１１０１をみてみると、元々の４番素子の入力値０に対応するガンマ補正値は２であるから、ガンマ補正値を忠実に復元できることがわかる。同様にして他の素子においても基準素子のガンマ補正値に素子位置までの差分値を積算した値を加算することにより、素子毎のガンマ補正値を算出することができる。
【００６６】
このようにガンマ補正値算出回路１００４では、基準素子ガンマ補正テーブルと差分値とから、素子選択回路１０６にて選択された素子毎にガンマ補正値を算出し、算出した素子毎のガンマ補正値からガンマ補正回路１０３にてガンマ補正を行うことができる。
【００６７】
このように本実施の形態３によれば、ガンマ補正記憶回路１００５に、基準素子のガンマ補正値と、位置的に隣接する素子どうしのガンマ補正値の差分値を予め定めた記憶容量で記憶し、基準素子は記憶してあるガンマ補正値によりガンマ補正を行い、それ以外の素子では基準素子のガンマ補正値に、素子位置までの差分値を積算した値からガンマ補正値を算出してガンマ補正を行うようにしたので、各画素毎にガンマ補正を行うことができ、画質の劣化を抑えることができるとともに、少ない記憶容量で素子毎のガンマ補正データを記憶することができる。
【００６８】
なお、予め定めた記憶容量で差分値を記憶させる際に、低階調側では４ビットで記憶させ、それ以外の階調では２ビットで記憶させるというように、記憶容量を変えるようにしてもよい。これは上述したように、低階調側では素子のガンマ補正値がばらつきやすいため、差分値が大きくなり、この領域の差分値に合わせて差分値の記憶容量を決めた場合、それ以外の領域では記憶容量が無駄になる場合があるためである。そこで上述のように、効率よく記憶させるため、低階調側とそれ以外で記憶容量を変えるようにしてもよい。
【００６９】
（実施の形態４．）
次に本発明の実施の形態４によるガンマ補正装置について説明する。本実施の形態では、上述した実施の形態２と実施の形態３の構成とを組み合わせた特徴を有する。すなわち、図１２において、図４及び図１０と同一符号は、同一または相当部分を示し、１２０４は、ガンマ補正値記憶回路１００５から得られた値をもとに、ガンマ補正値算出回路１００４の出力と、パターン値記憶回路４０８から出力されたパターン値とを用いて補間処理により適切なガンマ補正値を算出するガンマ補正値補間回路である。
【００７０】
上記実施の形態２でも述べたように、ガンマ補正値記憶回路１００５にはグレーチャートのパターンに対するガンマ補正値を記憶しておき、補間処理によりガンマ補正値を補間するようにすれば、記憶容量を小さくしてガンマ補正を行うことができる。すなわち、上記ガンマ補正値記憶回路１００５にはパターン数分の基準素子ガンマ補正テーブル値と差分値とが記憶されている。例えば、図１３（ａ）のテーブルに示すようなデータが記憶されている。ガンマ補正値算出回路１００５では前述した方法により、各素子のガンマ補正値を算出する。図１３（ａ）のテーブルの場合には、１番素子が基準素子であるから、２番素子からＮ番素子までは基準素子である１番素子のガンマ補正値に素子位置までの差分値を積算した値を加算することで、図１３（ｂ）に示すテーブルのようにガンマ補正値を算出することができる。
【００７１】
ガンマ補正値補間回路１２０４では、ガンマ補正値算出回路１００５から算出されたガンマ補正値と、パターン値記憶回路４０８に記憶してあるパターン値とからガンマ補正値の補間を行う。この補間方法については実施の形態２で述べた方法に従って補間処理を行う。
このようにしてガンマ補正値補間回路１２０４にて補間されたガンマ補正値をもとに、ガンマ補正回路１０３により各素子毎にガンマ補正を行うことができる。
【００７２】
このように本実施の形態によれば、ガンマ補正記憶回路１００５に、基準素子のガンマ補正値と、離散的に記憶させた各素子どうしのガンマ補正値の差分値とを記憶し、基準素子は記憶してあるガンマ補正値によりガンマ補正を行い、その他の素子については、ガンマ補正値補間回路１２０４で補間処理により適切なガンマ補正値を算出してガンマ補正を行うようにしたので、各画素毎にガンマ補正を行うことができ、画質の劣化を抑えることができるとともに、より少ない記憶容量で素子毎のガンマ補正データを記憶することができる。
【００７３】
なお、本実施の形態においても、ガンマ補正曲線が低階調部での変化が大きいことから、この領域でのデータをより多くとることによりガンマ補正精度を向上させることを目的として、離散的な入力値に対するガンマ補正値を記憶させる場合、低階調部のパターン、つまり暗い領域のパターンに対するガンマ補正値をより多く記憶させるようにしてもよい。
【００７４】
また、基準となる素子について１番目の素子を基準素子としたが、もちろんどの素子を基準素子としてもよい。
【００７５】
また、基準素子を１つだけとするのではなく、何点も基準素子をもってもよい。
また、離散的な入力値に対するガンマ補正値を記憶する場合、グレーチャートの１０パターンを記憶する場合について説明したがパターン数もこれに限定するものではない。
さらに、ガンマ補正値を補間する場合、直線近似で補間するのでなく、２次曲線等の曲線により補間するようにしてもよい。
【００７６】
（実施の形態５．）
以下に、本発明の実施の形態５にかかるガンマ補正装置について、図を参照しながら説明する。本実施の形態５にかかるガンマ補正装置の構成、並びに基本的な動作は実施の形態３と示したものと同じであるが、ガンマ補正値記憶回路１００５において、位置的に隣接する素子どうしのガンマ補正値の差分値をそのまま記憶するのではなく、差分値が、差分値を記憶する容量を超過した場合、隣接する次の素子では、差分値に超過した値を加算した値を差分値として記憶する点が異なる。以下、その動作について詳しく説明する。
【００７７】
差分値を記憶する際には、予め定めた記憶容量に差分値を記憶すると元のガンマ補正値を復元する処理が非常に簡単になる。しかし予め定めた記憶容量に対して差分値が大きく、記憶容量を超過する事態が発生する場合がある。その場合には、差分値をそのまま積算してガンマ補正値を算出したのでは元のガンマ補正値を復元することができなくなる。
【００７８】
例えば、図１４（ａ）のテーブル１４０１に示すように、ガンマ補正値がある場合、差分値を４ビットで記憶する場合について考えると、素子毎の差分値は図１４のテーブル１４０２に示すようになる。４ビットでは−８から７までの値しか記憶できないため、例えば、入力値１に対応する１番素子のガンマ補正値は１６、２番素子のガンマ補正値は２６でその差分値は１０であるにも係らず、４ビットを超えるため差分値７として記憶されてしまう。
【００７９】
従って、図１４（ｂ）のテーブル１４０３に示すように、１番素子を基準として差分値からガンマ補正値を算出した場合、２番素子の入力値１に対応するガンマ補正値は、
１６＋７＝２３
となる。３番素子の入力値１に対応するガンマ補正値は基準となる１番素子のガンマ補正値に２番素子の差分値、３番素子の差分値を加算した値となるため、
１６＋７＋（−４）＝１９
となる。同様に４番素子の入力値１に対応するガンマ補正値は１７となる。
【００８０】
このように差分値が記憶容量を越えた場合、その超過した値が誤差となり、それ以降の素子に影響を及ぼし、元のガンマ補正値を復元できなくなる場合があった。
そこで差分値が記憶容量を越えた場合には、その誤差を次の差分値に加算することにより、誤差が次の素子のガンマ補正値算出に影響しないようにする。
【００８１】
前述したように、２番素子の入力値１に対応する差分値は１０であるが７までしか記憶できないため、３の誤差が生じる。そこで図１５（ａ）のテーブル１５０２に示すように、その誤差３を３番素子の差分値に加算して記憶させるようにする。従って、元々３番素子の差分値は−４であるから、誤差３と差分値―４を加算した−１が３番素子の入力値１に対応する差分値となる。
【００８２】
このようにして算出した差分値をもとにガンマ補正値を復元すると、図１５（ｂ）のテーブル１５０３に示すようになり、２番素子の入力値１に対応するガンマ補正値は、差分値の記憶容量を超過しているため誤差を生じるが、３番素子の入力値１に対応するガンマ補正値は２２、４番素子では２０となり、元のガンマ補正値を忠実に復元できることがわかる。以上のようにして差分値の記憶容量を越えた場合は、超えた誤差データを次の素子の差分値に加算することにより、差分値が記憶容量を越えた場合でも、最小限の誤差でガンマ補正を行うことができる。
【００８３】
このように本実施の形態によれば、ガンマ補正値記憶回路１００５に、位置的に隣接する素子どうしのガンマ補正値の差分値を記憶する際に、差分値が、差分値を記憶する容量を超過した場合、隣接する次の素子において、差分値に超過した値を加算した値を差分値として記憶するようにしたから、少ない記憶容量で素子毎にガンマ補正を行うことができると共に、差分値が差分値を記憶する容量を超過した場合でもその誤差を最小限に抑えることができる。
【００８４】
なお、本実施の形態においても、素子特性補正値テーブルに上記実施の形態２でも述べたように、連続した入力データに対するガンマ補正値を記憶させるのではなく、離散的な入力データに対するガンマ補正値を記憶するようにすることにより、記憶容量をさらに小さくすることができる。
【００８５】
また、上記離散的な入力値に対するガンマ補正値を記憶させる場合、低階調部のパターン、つまり暗い領域のパターンに対するガンマ補正値をより多く記憶させることで、低階調部でのガンマ補正曲線の変化が大きい領域でのガンマ補正精度を向上させることができる。
また、基準となる素子について１番目の素子を基準素子としたが、もちろんどの素子を基準素子としてもよい。
さらに、また、基準素子を１つだけとするのではなく、何点も基準素子をもっていてもよい。
【００８６】
（実施の形態６．）
以下に本発明の実施の形態６にかかるガンマ補正装置について、図を参照しながら説明する。図１６は本実施の形態６のガンマ補正装置の構成を示すブロック図である。図１６において、図１と同一符号は同一、または相当部分を示し、１６０４は、素子のガンマ補正値の平均値と、その平均値と各素子毎のガンマ補正値の差分値を記憶したガンマ補正値記憶回路１６０５から出力される値を基にガンマ補正値を算出するガンマ補正値算出回路である。
【００８７】
本実施の形態では、上記実施の形態３〜５で説明したように、基準素子との差分値を記憶するのではなく、素子毎のガンマ補正値の平均値との差分値を記憶し、ガンマ補正を行うことを特徴としている。
【００８８】
すなわち、ガンマ補正値記憶回路１６０５には、入力値毎のガンマ補正値の平均値と、各素子毎のガンマ補正値と上記平均値との差分値を算出して記憶する。例えば、素子毎のガンマ補正値が図１７（ａ）のテーブル１７０１に示すような場合には、平均値とその平均値に対する差分値は図１７（ｂ）のテーブル１７０２に示すように算出される。例えば、入力値１に対する各素子のガンマ補正値の平均値が２１の場合には、１番素子のガンマ補正値は１６であるから、その差分値−５が差分値として記憶される。同様に２番素子では５が差分値として記憶され、３番素子では１、４番素子では−１が差分値として記憶される。このように平均値と差分値とを算出してガンマ補正値記憶回路１６０５に記憶する。
【００８９】
従って、ガンマ補正値記憶回路１６０５の平均値データには入力値毎の平均値が記憶され、差分値Δ１には１番素子の差分値、差分値Δ２には２番素子の差分値というように記憶される。このように平均値との差分値をガンマ補正値として記憶させることで、記憶容量を小さくすることができる。
【００９０】
そして、ガンマ補正値算出回路１６０４では、ガンマ補正値記憶回路１６０５に記憶してある平均値データと差分値から素子選択回路１６０６にて選択された素子のガンマ補正値を算出する。例えば、１番素子では平均値データに差分値Δ１を加算することによりガンマ補正テーブルを作成し、２番素子では平均値データに差分値Δ２を加算してガンマ補正テーブルを作成することができる。
【００９１】
このように平均値と、平均値との差分値を記憶させる方法では平均値と素子毎のガンマ補正値の差が大きい場合には記憶容量が多少大きくなるが、各素子の差分値が独立して記憶されているため、差分値がその記憶容量を超過する場合、その誤差が他の素子のガンマ補正に影響を及ぼさないという利点がある。
【００９２】
このように本実施の形態によれば、ガンマ補正値記憶回路１６０５に、素子のガンマ補正値の平均値と、その平均値と各素子毎のガンマ補正値の差分値を記憶し、ガンマ補正値算出回路１６０４において、上記ガンマ補正値記憶回路１６０５より出力される、上記ガンマ補正値の平均値と、該平均値と各素子毎のガンマ補正値の差分値とを用いて、各素子毎にガンマ補正値の平均値に素子毎の差分値を加算した値からガンマ補正値を算出し、ガンマ補正回路１０６によってガンマ補正を行うようにしたから、素子毎に独立して平均値に差分値を加算してガンマ補正値を算出するため正確にガンマ補正を行えるとともに、各素子の差分値が独立して記憶されているため、差分値がその記憶容量を超過する場合、その誤差が他の素子のガンマ補正に影響を与えることがない。
【００９３】
なお、上記ガンマ補正値記憶回路１６０５には、上記実施の形態２でも述べたように、連続した入力データに対するガンマ補正値を記憶させるのではなく、離散的な入力値に対するガンマ補正値を記憶するようにすると記憶容量を小さくすることができる。
また、その場合、低階調領域すなわち暗い領域のデータをより多く記憶させ、低階調部でのガンマ補正曲線の変化が大きい領域でのガンマ補正値をより正確に復元するようにして、ガンマ補正の精度を向上させるようにしてもよい。
【００９４】
（実施の形態７．）
以下に、本発明の実施の形態７にかかるガンマ補正装置について、図を参照しながら説明する。図１８は本実施の形態７のガンマ補正装置の構成を示すブロック図である。図１８において、図１０と同一符号は同一、または相当部分を示し、１８０４は、差分値のデータ長を一緒に記憶させたガンマ補正値記憶回路１８０５の出力を受けてガンマ補正値を算出するガンマ補正値算出回路である。
【００９５】
基本的な動作は実施の形態３で述べたのと同じであるが、差分値を予め定めた記憶容量に記憶させるのではなく、差分値の大きさに合わせてその記憶容量を変化させる点が異なる。以下、その動作について詳しく説明する。
【００９６】
実施の形態５でも述べたように、位置的に隣接する素子どうしのガンマ補正値の差分値を算出した場合、その差分値は様々な値をとるため、ある一定の記憶容量に差分値を記憶させることが不都合な場合がある。そこで差分値の大きさにより、記憶容量を変化させることにより、柔軟に差分値を記憶させることができる。その際に差分値のデータ長を一緒に記憶させることで、正確にガンマ補正値を復元することができる。
【００９７】
例えば、図１９（ａ）のテーブルに示すように、１番素子と２番素子のガンマ補正値がある場合、２番素子の差分値が図１９（ｂ）のテーブルに示すように算出される。その差分値をデータ長と差分値で、図２０に示すように順次記憶していく。図２０の場合には、データ長を３ビットで記憶し、その次に差分値を記憶している。
【００９８】
データ長は差分値が１ビットの場合は０、２ビットの場合は１、８ビットの場合は７、というように記憶することでデータ長を３ビットで記憶できる。たとえば入力値０に対応する２番素子の差分値は０であり、１ビットで表現できるためデータ長が０として記憶される。次に入力値１に対応する差分値は１０であり、５ビットで表現できるため、データ長が４として記憶される。このようにして算出したデータ長と差分値を図２１に示すように順次記憶していく。
【００９９】
このようにデータ長と差分値を順次記憶させることで、差分値が大きくなった場合でも、正確に差分値を記憶することができるので、より柔軟に差分値を記憶することができる。
このように本実施の形態によれば、データ長と差分値を順次記憶させることで、差分値が大きくなった場合でも、正確に差分値を記憶することができ、差分値の大きさに合わせて効率良く記憶させることができる。
【０１００】
なお、ガンマ補正値記憶回路１８０５に、実施の形態２でも述べたように、連続した入力データに対するガンマ補正値を記憶させるのではなく、離散的な入力値に対するガンマ補正値を記憶するようにすると記憶容量を小さくすることができる。
また、その場合、低階調領域すなわち暗い領域のデータをより多く記憶させるようにすると、ガンマ補正値をより正確に復元することができるので、ガンマ補正の精度を向上させることができる。
【０１０１】
（実施の形態８．）
以下に、本発明の実施の形態８にかかるガンマ補正装置について、図を参照しながら説明する。図２２は本実施の形態８のガンマ補正装置の構成を示すブロック図である。図２２において、２２０４はガンマ補正テーブル選択回路であり、複数のガンマ補正テーブルからなるガンマ補正テーブル記憶回路２２０６の出力と、各素子に対応するガンマ補正テーブルの番号を記録したガンマ選択値記憶回路２２０５の出力とから、所定のデータを選択するものである。
【０１０２】
本実施の形態では、予めガンマ補正テーブルを複数用意しておき、素子毎にいずれかのガンマ補正テーブルを選択することでガンマ補正値の記憶容量を小さくするようにしたものである。例えば、ガンマ補正テーブル記憶回路２２０６にＮ個のガンマ補正テーブルを記憶しておく。各々のガンマ補正テーブルには番号を付けておき、各素子毎にその番号でガンマ補正テーブルを選択し、選択したガンマ補正テーブルからガンマ補正を行うように構成する。
【０１０３】
上記ガンマ選択値記憶回路２２０５には、ガンマ補正テーブルを選択するための選択番号を素子毎に記憶しておく。例えば、１番素子がガンマ補正テーブル３を選択する場合、選択番号３を１番素子テーブル選択番号としてガンマ選択値記憶回路２２０５に記憶するようにする。
【０１０４】
ガンマ補正テーブル選択回路２２０４では、該当する素子のガンマ補正テーブルをガンマ選択値記憶回路２２０５の選択番号を参照してガンマ補正テーブル記憶回路２２０６から選択する。そして、ガンマ補正回路１０３では、選択したガンマ補正テーブルをもとにガンマ補正を行う。
【０１０５】
このように予めガンマ補正テーブルを複数用意しておき、各素子毎に使用するガンマ補正テーブルを設定しておくことで、全体としての記憶容量を小さくすることができる。例えば、６４０素子分のガンマ補正テーブルを用意する場合、すべての素子のガンマ補正テーブルを個別に用意すると６４０テーブル必要となるが、６４０素子の中には、互いに類似したガンマ特性をもつ素子もあるので、１００個のガンマ補正テーブルでよいとすると、１００／６４０の容量でガンマ補正テーブルを記憶できることになる。なお、この場合、ガンマ選択値記憶回路２２０５の容量については、これは小さいので無視できる。
【０１０６】
また、この場合、スキャナ本体のＲＯＭにはガンマ選択テーブルのみ（ガンマ選択値記憶回路２２０５）を記憶させるようにして、パソコン側にガンマ補正テーブル（ガンマ補正テーブル記憶回路２２０６）を持たせる構成にしてもよい。これはスキャナ本体のＲＯＭには容量に制限があるが、パソコン側に記憶させる場合には、スキャナ本体のＲＯＭと比較して遥かに大きい記憶容量を用意することができるためである。このようにパソコン側に補正テーブルを持たせることにより、イメージスキャナのＲＯＭ容量を小さくすると同時に、より多くのガンマ補正テーブルを記憶することができる。
【０１０７】
各素子毎のテーブル選択番号は、まず、素子毎の正確なガンマ補正テーブルを算出し、そのガンマ補正テーブルと、予めガンマ補正テーブル記憶回路２２０６に用意してあるガンマ補正テーブルとの最小二乗和差が最も小さくなるガンマ補正テーブルを選択し、その選択番号をガンマ選択テーブルに記憶することで正確にガンマ補正テーブルを選択することができる。
【０１０８】
また、図２３に示すように、ガンマ補正テーブル記憶回路２３０７には、基準となる基準ガンマ補正テーブルと、各ガンマ補正テーブルと基準ガンマ補正テーブルとの差分値を記憶するようにしてもよい。差分値を記憶することで、ガンマ補正テーブル２３０７の記憶容量をさらに小さくすることができる。基準となるガンマ補正テーブルには、ガンマ補正量の最も小さいガンマ補正テーブルを選択するようにする。その場合、ガンマ補正テーブルをガンマ補正量の小さい順番に並べ、ガンマ補正テーブルの差分値を算出するようにする。従って、ガンマ補正テーブル２３０７の差分値Δ１には、２番目にガンマ補正量の小さいガンマ補正テーブルと、最もガンマ補正量の小さいガンマ補正テーブルとの差分値が記憶され、差分値Δ２には、３番目にガンマ補正量の小さいガンマ補正テーブルと、２番目にガンマ補正量の小さいガンマ補正テーブルとの差分値が記憶される、というように記憶されていく。
【０１０９】
また、反対に、基準となるガンマ補正テーブルには、ガンマ補正量の最も大きいガンマ補正テーブルを選択するようにし、ガンマ補正量が大きい順番にガンマ補正テーブルを並べた場合に順番が隣り合うガンマ補正テーブルのガンマ補正値の差分値を記憶していくようにしてもよい。
【０１１０】
ガンマ補正値算出回路２３０６では、基準ガンマ補正テーブルに差分値を積算することによりガンマ補正テーブルを算出することができる。これについては実施の形態３で述べた方法と同じである。例えば、ガンマ補正量が小さい順番にガンマ補正テーブルが記憶されている場合、４番目にガンマ補正量の小さいガンマ補正テーブルは、基準ガンマ補正テーブルに差分値Δ１、差分値Δ２、差分値Δ３を加算した値となる。
このようにしてガンマ補正テーブルの差分値を記憶することで、記憶容量を小さくすることができる。
【０１１１】
このように本実施の形態によれば、予め複数のガンマ補正テーブルをガンマ補正テーブル記憶回路２２０６に記憶させておき、ガンマ選択値記憶回路２２０５に、素子毎にそのガンマ補正テーブルの選択情報を記憶させ、ガンマ補正テーブル選択回路２２０４を用いて、該当するガンマ選択値記憶回路２２０５に記憶されたテーブル番号に相当するガンマ補正テーブルを選択することにより、小さい記憶容量で素子毎のガンマ補正を行うことができる。
【０１１２】
さらに、上記構成において、ガンマ補正テーブル記憶回路２３０７には、基準となる基準ガンマ補正テーブルと、各ガンマ補正テーブルと基準ガンマ補正テーブルとの差分値を記憶することにより、ガンマ補正テーブルを記憶する容量をさらに低減することができる。
【０１１３】
（実施の形態９．）
以下に、本発明の実施の形態９にかかるガンマ補正装置について、図を参照しながら説明する。
【０１１４】
図２４は本実施の形態９のガンマ補正装置の構成を示すブロック図である。図２４において、２４０４は後述する素子特性補正値算出回路２４０５より出力される特性補正値を基にガンマ補正値を算出するガンマ補正値算出回路、２４０５は後述する素子特性補正値記憶回路２４０６に記憶されている基準素子特性補正テーブルに、当該素子位置までの差分値を積算した値を加算することにより選択された素子の特性補正値を算出する素子特性補正値算出回路、２４０６はガンマ補正を行う前の素子の入力値に対する出力特性補正値を記憶する素子特性補正値記憶回路である。
【０１１５】
基本的な動作は上述した実施の形態３と同じであるが、ガンマ補正テーブルを記憶するのではなく、ガンマ補正を行う前の素子の入力値に対する出力特性補正値である素子特性補正値を記憶させるようにした点が異なる。
理想的な素子のガンマ補正前の特性は、図２５に示すように、入力データに対してリニアな特性となる。実際の素子の特性は図２５に示すようにリニアな特性からずれている。そこで理想特性からのずれを補正するための特性補正値を記憶して特性を補正し、補正された特性値に対して一律のガンマ補正処理を行う。
【０１１６】
このようにガンマ補正前の特性補正値を記憶する場合、ガンマ補正値を記憶する場合と比較して、素子毎の差分値を小さくすることができる。これはガンマ補正を行った場合、低階調部で特性が大きく変化するため素子毎の特性のばらつきが大きくなるが、ガンマ補正前の素子特性は入力値に対する出力値がほぼリニアな特性になるため、大きく特性が変化することがなく、素子毎の差分値を小さくすることができるからである。
【０１１７】
例えば、素子毎の特性補正値は図２６のテーブル２６０１に示すようになり、入力値に対してほぼリニアな値となる。従って位置的に隣接する素子どうしの差分値も図２６のテーブル２６０２に示すようになり、ガンマ補正値の差分値をとる場合と比較して、差分値をより小さくすることができる。図２６の例では、差分値が−２から１の間の値であり、２ビットで差分値が表現できるようになるため、ガンマ補正値の記憶容量を約２／８にすることができる。
【０１１８】
上記素子特性補正値記憶回路２４０６には、差分値から元の特性補正値を算出する際に基準となる基準素子特性補正テーブルと、位置的に隣接する素子の特性補正値の差分値を順番に記憶しておく。図２６に示した例では、基準素子特性補正テーブルには１番素子の素子特性補正テーブルを記憶し、差分値Δ１には２番素子と１番素子の素子特性の差分値を記憶し、差分値Δ２には３番素子と２番素子の素子特性の差分値、というように隣接する差分値を予め定めた記憶容量で記憶する。
【０１１９】
素子特性補正値算出回路２４０５では上記実施の形態３で説明したように、素子選択回路２４０７にて選択された素子の特性補正値を、素子特性補正値記憶回路２４０６に記憶されている基準素子特性補正テーブルに素子位置までの差分値を積算した値を加算することにより算出する。
そして、ガンマ補正値算出回路２４０４では、上記素子特性補正値算出回路２４０５にて算出された素子毎の特性補正値に対して、出力モニタの特性に合わせたガンマ補正値を算出する。
【０１２０】
例えば、ガンマ値２．２のモニタに表示する場合には、その逆数の０．４５のガンマ特性となるようにガンマ補正値を算出する。その場合の入力値に対するガンマ補正値は、
（ガンマ補正値）＝（入力値）０．４５
となる。このようにガンマ補正値算出回路２４０４では素子毎のガンマ補正値を算出し、ガンマ補正値をガンマ補正回路２４０３に出力する。ガンマ補正回路１０３ではこれまで述べた実施の形態と同様に、素子毎のガンマ補正値を元にガンマ補正を行う。
【０１２１】
このように本実施の形態によれば、ガンマ補正前の素子特性補正値を記憶させることにより、少ない記憶容量で素子毎のガンマ補正を行うことができる。
【０１２２】
なお、上記差分値を記憶する際に、実施の形態５で述べたように、位置的に隣接する素子どうしの特性補正値の差分値をそのまま記憶するのではなく、差分値が差分値を記憶する容量を超過した場合、隣接する次の素子では差分値に超過した値を加算した値を差分値として記憶するようにしてもよい。このように超過した値を次の素子の差分値に加算することにより誤差を最小限にしてデータを復元することができる。
【０１２３】
また、上記差分値を記憶する際に、実施の形態６で述べたように、位置的に隣接する素子どうしの特性補正値の差分値を記憶するのではなく、入力値毎の素子特性補正値の平均値と、素子毎の特性補正値と平均値との差分値を記憶するようにしてもよい。このようにすることにより、各素子の差分値が独立して記憶されているため差分値が記憶容量を超過する場合、その誤差が他の素子のガンマ補正に影響を及ぼさないようにすることができる。
【０１２４】
また、差分値を記憶する際に、実施の形態７で述べたように、位置的に隣接する素子どうしの特性補正値の差分値をデータ長と差分値で記憶するようにしてもよい。このようにすることにより、柔軟に差分値を記憶させることができるとともに、差分値のデータ長を一緒に記憶させることで、正確に素子特性補正値を復元することができる。
【０１２５】
また、素子特性補正値テーブルは、上記実施の形態２でも述べたように、０から２５５までの連続した入力データに対する特性補正値を記憶するのではなく、何点かの離散的な入力データに対する特性補正値を記憶するようにしてもよい。
【０１２６】
また、離散的な入力値に対する素子特性値を記憶させる場合、実施の形態２でも述べたように、低階調部、すなわち暗い領域のデータをより多く記憶させることで精度を向上させることができる。
また、基準となる素子について１番目の素子を基準素子としたが、もちろんどの素子を基準素子としてもよい。さらに、基準素子を１つだけとするのではなく、何点も基準素子をもっていてもよい。
【０１３３】
【発明の効果】
以上のように、本発明の請求項１に係るガンマ補正装置によれば、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値の差分値とを、予め定めた記憶容量で記憶し、上記差分値が予め定めた記憶容量を超過した場合、該差分値に上記予め定めた記憶容量を超過した値を加算し、該加算した値を隣接する素子の差分値として記憶するガンマ補正値記憶手段と、基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では、基準素子のガンマ補正値に当該素子の位置までに存在する素子の差分値をそれぞれ積算することにより素子毎のガンマ補正値を算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものとしたので、位置的に隣り合う素子のガンマ補正値の差分値を記憶させることで、少ない記憶容量で素子毎にガンマ補正を行うことができると共に、差分値が差分値を記憶する容量を超過した場合でもその誤差を最小限に抑えることができるという効果が得られる。
【０１３４】
また、本発明の請求項２に係るガンマ補正装置によれば、上記請求項１記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものとしたので、差分値が差分値を記憶する容量を超過した場合でも、その誤差を最小限に抑えることができ、また、離散的な入力値に対するガンマ補正値を記憶することでガンマ補正値の記憶容量を小さくすることができるという効果が得られる。
【０１３５】
また、本発明の請求項３に係るガンマ補正装置によれば、上記請求項１記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するようにしたので、差分値が差分値を記憶する容量を超過した場合でも、その誤差を最小限に抑えることができ、また、変化量の大きい低階調部のガンマ補正値をより多く記憶させることで少ない記憶容量で精度よく素子毎にガンマ補正を行うことができるという効果が得られる。
【０１３６】
また、本発明の請求項４に係るガンマ補正装置によれば、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、入力毎の各素子のガンマ補正値の平均値と、該平均値と上記各素子毎のガンマ補正値との差分値を記憶したガンマ補正値記憶手段と、上記ガンマ補正値の平均値に素子毎の差分値を加算することにより素子毎のガンマ補正値を算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものとしたので、素子毎に独立して平均値に差分値を加算してガンマ補正値を算出するため正確にガンマ補正を行うことができるという効果が得られる。
【０１３７】
また、本発明の請求項５に係るガンマ補正装置によれば、上記請求項４記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものとしたので、素子毎に独立して平均値に差分値を加算してガンマ補正値を算出して正確なガンマ補正を行うことができ、また、離散的な入力値に対するガンマ補正値を記憶させることで、ガンマ補正値の記憶容量を小さくすることができるという効果が得られる。
【０１３８】
また、本発明の請求項６に係るガンマ補正装置によれば、上記請求項４記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するようにしたので、素子毎に独立して平均値に差分値を加算してガンマ補正値を算出して、正確にガンマ補正を行え、また、離散的な入力値に対するガンマ補正値のなかで、変化量の大きい低階調部をより多く記憶させることで精度よく記憶容量を小さくすることができるという効果が得られる。
【０１３９】
また、本発明の請求項７に係るガンマ補正装置によれば、複数の撮像素子のガンマ特性を補正するガンマ補正装置において、基準素子のガンマ補正値と、それぞれ位置的に隣接する素子どうしのガンマ補正値との差分値と、該差分値のデータ長を記憶するガンマ補正値記憶手段と、基準素子は記憶してあるガンマ補正値を用い、それ以外の素子では基準素子のガンマ補正値に当該素子の位置までに存在する素子の差分値をそれぞれ積算することにより基準素子以外の素子毎のガンマ補正値をそれぞれ算出するガンマ補正値算出手段と、上記算出したガンマ補正値から素子毎にガンマ補正を行うガンマ補正手段とを備えたものとしたので、位置的に隣り合う素子のガンマ補正値の差分値を、差分値の大きさに合わせて効率良く記憶させることで、少ない記憶容量で素子毎にガンマ補正を行うことができるという効果が得られる。
【０１４０】
また、本発明の請求項８に係るガンマ補正装置によれば、上記請求項７記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶しており、上記ガンマ補正値記憶手段に記憶してある所定の画像の入力値とガンマ補正値とから補間処理を行い、素子毎のガンマ補正値を算出するガンマ補正値補間手段を備えたものとしたので、位置的に隣り合う素子のガンマ補正値の差分値を、差分値の大きさに合わせて効率良く記憶させ、さらに、離散的な入力値に対するガンマ補正値のみを記憶させることで、より少ない記憶容量で素子毎にガンマ補正を行うことができるという効果が得られる。
【０１４１】
また、本発明の請求項９に係るガンマ補正装置によれば、上記請求項７記載のガンマ補正装置において、上記ガンマ補正値記憶手段は、所定の画像を読み取った離散的な入力値に対するガンマ補正値を記憶する際に、低階調部のガンマ補正値をより多く記憶するようにしたので、変化量の大きい低階調部のガンマ補正値をより多く記憶させることで少ない記憶容量で精度よく素子毎にガンマ補正を行うことができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるガンマ補正装置の構成を示すブロック図である。
【図２】上記実施の形態１によるガンマ補正装置が適用されるイメージスキャナの構成を示す図である。
【図３】上記実施の形態１におけるガンマ補正装置のガンマ補正値の一例を示した図である。
【図４】本発明の実施の形態２におけるガンマ補正装置の構成を示すブロック図である。
【図５】ガンマ補正値を算出するのに用いられるグレーチャートの一例を示す図である。
【図６】１０パターンのグレーチャートに対するガンマ補正値の一例を示す図である。
【図７】データ間を直線補間する補間処理を説明するための図である。
【図８】ガンマ補正曲線がガンマ２．２の値をもつ理想ガンマ曲線を１０個の離散的なデータで直線近似する場合の一例を示す図である。
【図９】低階調領域のデータ数をより多くとって理想ガンマ曲線との誤差を最小限にする補間処理の一例を示す図である。
【図１０】本発明の実施の形態３におけるガンマ補正装置の構成を示すブロック図である。
【図１１】上記実施の形態３におけるガンマ補正装置を構成するガンマ補正値記憶手段に記憶する差分値を算出する方法を説明するための図である。
【図１２】本発明の実施の形態４におけるガンマ補正装置の構成を示すブロック図である。
【図１３】上記実施の形態４におけるガンマ補正装置の差分値からガンマ補正値を復元するための方法を説明するための図である。
【図１４】本発明の実施の形態５におけるガンマ補正装置による補間方法用いる前の問題点を説明するための図である。
【図１５】本発明の実施の形態５におけるガンマ補正装置を用いた補間処理を説明するための図である。
【図１６】本発明の実施の形態６におけるガンマ補正装置の構成を示すブロック図である。
【図１７】上記実施の形態６におけるガンマ補正装置による差分値算出方法を説明するための図である。
【図１８】本発明の実施の形態７におけるガンマ補正装置の構成を示すブロック図である。
【図１９】上記実施の形態７におけるガンマ補正装置のガンマ補正値記憶回路への記録方法を説明するための図である。
【図２０】上記実施の形態７によるガンマ補正装置のガンマ補正値記憶回路へ、差分値のデータ長を一緒に記憶させた状態を説明するためのイメージ図である。
【図２１】上記実施の形態７によるガンマ補正値のデータ長とガンマ補正値とを順次記憶していく場合のイメージ図である。
【図２２】本発明の実施の形態８によるガンマ補正装置の構成を示すブロック図である。
【図２３】上記実施の形態８におけるガンマ補正装置の変形例の構成を示すブロック図である。
【図２４】本発明の実施の形態９におけるガンマ補正装置の構成を示すブロック図である。
【図２５】上記実施の形態９におけるガンマ補正装置において、素子特性と理想特性との関係を示す図である。
【図２６】上記実施の形態７におけるガンマ補正装置の差分値算出方法を説明するための図である。
【図２７】ガンマ補正テーブルを格納したＲＯＭを用いたガンマ補正の方法を概念的に説明するための図である。
【図２８】従来のガンマ補正装置の構成を示すブロック図である。
【図２９】従来のガンマ補正装置によるガンマ補正の方法を説明するための図である。
【図３０】従来のガンマ補正装置における差分値算出方法を説明するための図である。
【符号の説明】
１０１，２０４  撮像素子
１０２  Ａ／Ｄコンバータ
１０３  ガンマ補正回路
１０４，２２０４，２３０４  ガンマ補正テーブル選択回路
１０５，１００５，１６０５，１８０５  ガンマ補正値記憶回路
１０６  素子選択回路
２０１  読み取り原稿
２０２  照明
２０３  レンズ
４０４，１２０４  ガンマ補正値補間回路
４０８  パターン値記憶回路
１００４，１６０４，１８０４，２４０４  ガンマ補正値算出回路
２２０５，２３０５  ガンマ選択値記憶回路
２２０６，２３０７  ガンマ補正テーブル記憶回路
２４０５  素子特性補正値算出回路
２４０６  素子特性補正値記憶回路
２８０１  入力端
２８０２  入力選択部
２８０３  ガンマ特性補正部
２８０４  特性選択部
２８０５  マイクロプロセッサ
２８０６  データ貯蔵部
【図１】
0003552996.tif 000002
【図２】
0003552996.tif 000003
【図３】
0003552996.tif 000004
【図４】
0003552996.tif 000005
【図５】
0003552996.tif 000006
【図６】
0003552996.tif 000007
【図７】
0003552996.tif 000008
【図８】
0003552996.tif 000009
【図９】
0003552996.tif 000010
【図１０】
0003552996.tif 000011
【図１１】
0003552996.tif 000012
【図１２】
0003552996.tif 000013
【図１３】
0003552996.tif 000014
【図１４】
0003552996.tif 000015
【図１５】
0003552996.tif 000016
【図１６】
0003552996.tif 000017
【図１７】
0003552996.tif 000018
【図１８】
0003552996.tif 000019
【図１９】
0003552996.tif 000020
【図２０】
0003552996.tif 000021
【図２１】
0003552996.tif 000022
【図２２】
0003552996.tif 000023
【図２３】
0003552996.tif 000024
【図２４】
0003552996.tif 000025
【図２５】
0003552996.tif 000026
【図２６】
0003552996.tif 000027
【図２７】
0003552996.tif 000028
【図２８】
0003552996.tif 000029
【図２９】
0003552996.tif 000030
【図３０】
0003552996.tif 000031