まず、本発明に係る画像処理ICの第1実施形態について説明する。
図1は、本発明に係る画像処理ICの第1実施形態を示すブロック図である。本実施形態の画像処理IC10は、霧画像補正部11と、輝度ヒストグラム演算部12と、補正制御部13と、レジスタ14と、を有して成る画像補正処理回路が集積化された半導体装置である。なお、図1には明示されていないが、画像処理IC10には、霧画像補正部11の他にも、入力画像に対して種々の画像処理(輝度ダイナミックレンジ補正、明暗補正、逆光補正など)を施す回路ブロックを含めることが可能である。
霧画像補正部11は、画像ソース20から入力される入力画像に霧画像補正処理を施して所望の出力画像を生成し、これを表示デバイス30に出力する手段である。画像ソース20は、画像処理IC10に入力される入力画像を生成する手段であり、例えば、動画撮影を行うデジタルビデオカメラや、静止画撮影を行うデジタルスチルカメラなどを用いることができる。また、画像ソース20としては、放送受信装置(デジタルテレビジョン放送の受信装置など)やメディア再生装置(ビデオCD、DVD、ブルーレイディスク、ハードディスク、半導体メモリなどの再生機能を備えたドライブ装置のほか、インターネットを介して提供される映像コンテンツの再生機能を備えたパーソナルコンピュータなど)を用いることも可能である。表示デバイス30は、画像処理IC10で霧画像補正処理が施された出力画像を表示する手段であり、LCD[Liquid Crystal Display]や有機EL[Electro-Luminescence]ディスプレイなどを用いることができる。
輝度ヒストグラム演算部12は、画像ソース20から入力される入力画像の1フィールド(フレーム)毎に輝度ヒストグラムを取得し、その平均輝度値、標準偏差値、及び、中間値のいずれか2値ないしは3値全てを算出する手段である。なお、図1の例において、輝度ヒストグラム演算部12は、輝度ヒストグラムの平均輝度値ACAVGと標準偏差値ACVRCを算出する構成とされている。
補正制御部13は、輝度ヒストグラム演算部12で算出された輝度ヒストグラムの平均輝度値、標準偏差値、及び、中間値のいずれか2値ないしは3値全てに基づいて、入力画像に対する霧画像補正処理の要否や補正量を判定し、その判定結果に基づいて霧画像補正部11の制御を行う手段である。なお、図1の例において、補正制御部13は、輝度ヒストグラムの平均輝度値ACAVGと第1の閾値(ACAVGTH1、ACAVGTH2)とを比較する第1比較部131と、輝度ヒストグラムの標準偏差値ACVRCと第2の閾値(ACVRCTH1〜ACVRCTH3)とを比較する第2比較部132と、第1比較部131及び第2比較部132の比較結果に基づいて霧画像補正処理の要否や補正量を判定する判定部133と、を有して成る構成とされている。なお、補正制御部13による霧画像補正部11の制御動作については、後ほど詳細な説明を行う。
レジスタ14は、入力画像に対する霧画像補正処理の要否や補正量を判定する際に補正制御部13で参照される種々のパラメータ(先に述べた第1の閾値や第2の閾値を含む)をマイコン40から外部設定するためのパラメータ格納手段である。
次に、補正制御部13の動作説明に先立ち、霧が掛かっている入力画像と霧が掛かっていない入力画像との間で、各々の輝度ヒストグラムにどのような差違が生じるかを考察する。図2A、図2Bは、それぞれ、霧が掛かっている入力画像とその輝度ヒストグラムを示す模式図であり、図3A、図3Bは、それぞれ、霧が掛かっていない入力画像とその輝度ヒストグラムを示す模式図である。
一般に、霧が掛かっている入力画像(図2A)は、霧が掛かっていない入力画像(図3A)に比べて、全体的に白く(明るく)、コントラストの低い(輝度ダイナミックレンジの狭い)画像となる。すなわち、霧が掛かっている入力画像の輝度ヒストグラムは、霧が掛かっていない入力画像の輝度ヒストグラムに比べて、平均輝度値が高く、かつ、その標準偏差値が小さいものとなる(図2B、図3B)。
補正制御部13は、上記の考察に鑑み、輝度ヒストグラム演算部12で算出された輝度ヒストグラムの平均輝度値ACAVGと標準偏差値ACVRCに基づいて、入力画像に対する霧画像補正処理の要否や補正量を判定し、その判定結果に基づいて霧画像補正部11の制御を行う構成とされている。
図4は、補正制御部13(特に判定部133)による霧画像補正処理の要否判定を説明するためのフローチャートである。なお、本フローチャートの開始時には、レジスタ値FR_ATが「1(霧画像補正処理:自動)」に設定されており、レジスタ値FR_ENが「0(霧画像補正処理:停止中)」に設定されているものとする。
まず、本フローチャートの内容説明を行うに先立ち、上記のレジスタ値FR_AT及びレジスタ値FR_ENについて詳細に説明する。レジスタ値FR_ATは、霧画像補正処理の実行方法を設定するためのレジスタ値である。レジスタ値FR_ATが「0」に設定されているときには、霧画像補正処理が手動で実行され、レジスタ値FR_ATが「1」に設定されているときには、霧画像補正処理が自動的に実行される。なお、レジスタ値FR_ATが「1」に設定されているときには、レジスタ値FR_ENのビット制御(霧画像補正処理の動作確認制御)も自動的に行われる。
レジスタ値FR_ENは、霧画像補正処理の動作制御(イネーブル制御)ないしは動作確認を行うためのレジスタ値である。レジスタ値FR_ATが「0(霧画像補正処理:手動)」に設定されている場合、レジスタ値FR_ENは霧画像補正処理の動作制御(イネーブル制御)に用いられる。すなわち、レジスタ値FR_ENが「0」に設定されているときには、霧画像補正処理がディセーブルとされ、レジスタ値FR_ENが「1」に設定されているときには、霧画像補正処理がイネーブルとされる。一方、レジスタ値FR_ATが「1(霧画像補正処理:自動)」に設定されている場合、レジスタ値FR_ENは霧画像補正処理の動作確認に用いられる。すなわち、レジスタ値FR_ENが「0」に設定されているときには、霧画像補正処理が停止中であると確認され、レジスタ値FR_ENが「1」に設定されているときには霧画像補正処理が動作中であると確認される。
次に、図4に示すフローチャートの内容について具体的に説明する。本フローチャートが開始されると、ステップS1では、輝度ヒストグラムの平均輝度値ACAVGと第1の閾値(ステップS1では上側閾値ACAVGTH1)との比較判定が行われる。ここで、ACAVG≧ACAVGTH1であると判定された場合には、フローがステップS2(補正量調整ステート)に進められる。一方、ACAVG≧ACAVGTH1ではないと判定された場合には、フローがステップS4に進められる。
ステップS1において、ACAVG≧ACAVGTH1であると判定された場合、ステップS2では、霧画像補正部11における霧画像補正処理がオン(基本的にはレジスタ値FR_EN=「1」)とされ、補正量(補正強度)の調整処理が実施される。なお、ステップS2での補正量調整処理については、後ほど詳細に説明する。
一方、ステップS1において、ACAVG≧ACAVGTH1ではないと判定された場合、ステップS4では、レジスタ値FR_ENが「1」に設定されているか否かの判定、並びに、輝度ヒストグラムの平均輝度値ACAVGと第1の閾値(ステップS4では下側閾値ACAVGTH2(≦ACAVGTH1))との比較判定が行われる。ここで、レジスタ値FR_ENが「1」に設定されており、かつ、ACAVG≧ACAVGTH2であると判定された場合には、フローが先述のステップS2に進められる。一方、レジスタ値FR_ENが「1」に設定されていない、或いは、ACAVG≧ACAVGTH2ではないと判定された場合には、フローがステップS5に進められる。
ステップS4において、レジスタ値FR_ENが「1」に設定されていない、或いは、ACAVG≧ACAVGTH2ではないと判定された場合、ステップS5では、霧画像補正部11における霧画像補正処理がオフ(レジスタ値FR_EN=「0」)とされ、フローがステップS3に進められる。
ステップS2において補正量調整処理が完了された後、或いは、ステップS5において霧画像補正処理がオフとされた後、ステップS3では、レジスタ値FR_ATが「0(霧画像補正処理:手動)」に設定されているか否かの判定が行われる。ここで、レジスタ値FR_ATが「0」に設定されていないと判定された場合には、フローがステップS1に戻されて、輝度ヒストグラムの平均輝度値ACAVGと第1の閾値(ステップS1では上側閾値ACAVGTH1)との比較判定が繰り返される。一方、レジスタ値FR_ATが「0」に設定されていると判定された場合には、霧画像補正処理を手動実行に切り替えるべく、一連のフローが終了される。
なお、輝度ヒストグラムの平均輝度値ACAVGと比較される第1の閾値については、先に述べたように、上側閾値ACAVGTH1と下側閾値ACAVGTH2を調整して、所定のヒステリシス幅を設定することが望ましい。このようなヒステリシス幅を設定することにより、図5に示したように、霧画像補正処理がオフされているとき(レジスタ値FR_EN=「0」であるとき)には、輝度ヒストグラムの平均輝度値ACAVGが上側閾値ACAVGTH1に達するまで霧画像補正処理がオンされることはなく、逆に、霧画像補正処理がオンされているとき(レジスタ値FR_EN=「1」であるとき)には、輝度ヒストグラムの平均輝度値ACAVGが下側閾値ACAVGTH2を下回るまで霧画像補正処理がオフされることはないので、霧画像補正処理のオン/オフ発振を防止して、出力画像のちらつきを抑制することが可能となる。なお、上側閾値ACAVGTH1と下側閾値ACAVGTH2は、いずれもマイコン40からレジスタ14に外部設定することが可能であり、上側閾値ACAVGTH1と下側閾値ACAVGTH2を同一値に設定した場合には、上記のヒステリシス機能がオフとなる。
次に、ステップS2における補正量調整処理について図6Aを参照しながら詳述する。図6Aは、補正量調整処理の一例を示す図である。なお、図6Aの横軸には、輝度ヒストグラムの標準偏差値ACVRCが示されており、図6Aの縦軸には霧画像補正処理の補正量(補正強度)を設定するためのレジスタ値FRADJが示されている。
ステップS2における補正量調整処理に際して、補正制御部13は、輝度ヒストグラムの標準偏差値ACVRCと第2の閾値(ACVRCTH1〜ACVRCTH3、ACVRCTHx〜ACVRCTHz)との比較判定を行い、入力画像に対して霧画像補正処理を施す必要があるか否か、並びに、入力画像に対して霧画像補正処理を施す必要がある場合には、その補正量(補正強度)をレジスタ値FRADJ1〜FRADJ5のいずれに設定すべきかの判定を行う。
なお、第2の閾値のうち、3つの閾値(ACVRCTH1、ACVRCTH2、ACVRCTH3)は、マイコン40からレジスタ14に外部設定することが可能であり、その余の3つの閾値(ACVRCTHx、ACVRCTHy、ACVRCTHz)は、閾値ACVRCTH1と閾値ACVRCTH2との間を4等分する形で自動的に内部設定されるものである。従って、第2の閾値のうち、3つの閾値(ACVRCTH1、ACVRCTH2、ACVRCTH3)を外部設定する際には、ACVRCTH1+4≦ACVRCTH2≦ACVRCTH3という関係を満たしておく必要がある。
また、補正量の候補値となるレジスタ値FRADJ1〜FRADJ5についても、マイコン40からレジスタ14に外部設定することが可能である。なお、レジスタ値FRADJ1〜FRADJ5を外部設定する際には、輝度ヒストグラムの標準偏差値ACVRCが小さいほど、霧画像補正処理の補正量を段階的に大きく設定すべく、FRADJ5≧FRADJ4≧FRADJ3≧FRADJ2≧FRADJ1(ただし、FRADJ5>FRADJ1)という関係を満たしておく必要がある。
なお、先に説明した第1の閾値(ACAVGTH1、ACAVGTH2)と同様、第2の閾値(ACVRCTH1〜ACVRCTH3、ACVRCTHx〜ACVRCTHz)についても、所定のヒステリシス幅を設定しておくことが望ましい。例えば、図6Aのように、輝度ヒストグラムの標準偏差値ACVRCが次第に小さくなる場合(補正量を増大させていく必要がある場合)には、実線で示される経路で補正量の調整を行い、輝度ヒストグラムの標準偏差値ACVRCが次第に大きくなる場合(補正量を低減していく必要がある場合)には、破線で示される経路で補正量の調整を行えばよい。
例えば、前回の比較判定時にACVRC=ACVRCTHyと判定され、現在の補正量がレジスタ値FRADJ3に設定されている場合を考える。この場合、輝度ヒストグラムの標準偏差値ACVRCが閾値ACVRCTHxを下回るまで補正量がレジスタ値FRADJ4に切り替えられることはなく(図6Aの実線を参照)、逆に、輝度ヒストグラムの標準偏差値ACVRCが閾値ACAVGTHz以上になるまで補正量がレジスタ値FRADJ2に切り替えられることはない(図6Aの破線を参照)。従って、霧画像補正処理の補正量が頻繁に切り替わることを防止して、出力画像のちらつきを抑制することが可能となる。
また、霧画像補正処理がオフとされている場合、輝度ヒストグラムの標準偏差値ACVRCが閾値ACVRCTH2を下回った時点で、霧画像補正処理がオンとされ、輝度ヒストグラムの標準偏差値ACVRCに応じた補正量の調整処理が開始される(図6Aの実線を参照)。一方、霧画像補正処理が一旦オンされた後は、輝度ヒストグラムの標準偏差値ACVRCが閾値ACVRCTH2以上となっても、霧画像補正処理はオン状態に維持され、標準偏差値ACVRCが閾値ACVRCTH3以上になった時点で、霧画像補正処理がオフとされる(図6Aの破線を参照)。従って、霧画像補正処理のオン/オフ発振を防止して、出力画像のちらつきを抑制することが可能となる。なお、閾値ACVRCTH3を輝度ヒストグラムの標準偏差値ACVRCが取り得る最大値に設定した場合には、霧画像補正処理が常時オンとされる。
上記したように、本実施形態の画像処理IC10において、補正制御部13は、輝度ヒストグラムの平均輝度値ACAVGが第1の閾値(図4や図5の例では、閾値ACAVGTH1または閾値ACAVGTH2)よりも大きく、かつ、輝度ヒストグラムの標準偏差値ACVRCが第2の閾値(図6Aの例では、閾値ACVRCTH2またはACVRCTH3)よりも小さいとき、霧画像補正処理が必要であると判定する。このように、輝度ヒストグラムの平均輝度値ACAVG及び標準偏差値ACVRCに基づいて、入力画像に対する霧画像補正処理の要否や補正量を判定する構成であれば、入力画像のエリア分割処理を要することなく適切なシーン判別を行い、シーン毎に最適な霧画像補正処理を施すことができるので、出力画像の視認性を高めることが可能となる。
なお、上記で説明した霧画像補正処理の要否や補正量の判定処理は、入力画像の1フィールド(フレーム)毎に行われるが、その判定結果に基づいて霧画像補正部11への指示内容を更新する頻度については、必ずしも1フィールド毎でなくてもよく、16フィールド毎、32フィールド毎、ないしは、64フィールド毎など、マイコン40からのレジスタ設定に応じて任意に調整することが可能である。
また、マイコン40を用いてソフトウェア演算処理を行うことにより、上記で説明した霧画像補正処理やその要否判定並びに補正量調整を行うことも可能ではあるが、本発明に係る画像処理IC10を用いてハードウェア演算処理を行えば、マイコン40に掛かる負荷を減らすことができるので、システム全体として処理速度の向上やコストの低減を実現することが可能となる。
なお、上記の実施形態では、霧画像補正処理回路に本発明を適用した構成を例に挙げて説明を行ったが、本発明の適用対象はこれに限定されるものではなく、その他の画像補正処理回路にも広く適用することが可能である。例えば、逆光画像補正処理回路に本発明を適用する場合であれば、入力画像の1フレーム毎に輝度ヒストグラムを取得し、その平均輝度値が比較的低く、標準偏差値が比較的大きく、かつ、中間値が比較的高い場合には、入力画像が逆光状態であると認識して、逆光補正処理を行うように構成すればよい。
また、上記の実施形態において、補正制御部13は、霧画像補正処理が必要であると判定したとき、輝度ヒストグラムの標準偏差値ACVRCが小さいほど、霧画像補正処理の補正量を段階的に大きく設定する構成(図6Aを参照)を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、例えば、輝度ヒストグラムの標準偏差値ACVRCが小さいほど、霧画像補正処理の補正量を連続的に大きく設定する構成(図6Bを参照)としても構わない。
次に、本発明に係る画像処理ICの第2実施形態について説明する。
図7は、本発明に係る画像処理ICの第2実施形態を示すブロック図である。本実施形態の画像処理IC100は、画像補正処理回路200と、エンコーダ回路300と、第1シリアルインターフェース回路400と、第2シリアルインターフェイス回路500と、を集積化して成る半導体装置(画像補正機能付きのデジタルビデオエンコーダIC)であり、NTSC/PALデジタルビデオエンコーダとしての機能と、霧補正/ダイナミックレンジ補正画像処理装置としての機能を併せ持っている。なお、図7には明示されていないが、本実施形態の画像処理IC100には、IC各部の動作設定用パラメータを格納するレジスタが集積化されている。
画像補正処理回路200は、装置外部から入力されるデジタル形式の入力画像データに対して所定の画像補正処理を施すことにより、デジタル形式の出力画像データを生成する回路ブロックであり、第1の画像補正処理部201と、第2の画像補正処理部202と、を有して成る。
第1の画像補正処理部201は、装置外部から入力されるデジタル形式の入力画像データに対して霧画像補正処理を施す回路ブロックであり、先出の図1で示した霧画像補正部11、輝度ヒストグラム演算部12、及び、補正制御部13がこれに相当する。
第2の画像補正処理部202は、第1の画像補正処理部201から入力される霧画像補正処理済みの入力画像データに対して、さらに、色補正処理と輝度ダイナミックレンジ補正処理を施す回路ブロックであり、カラーコレクション部202aと、輝度判別部202bと、画像エンハンス部202cと、演算処理部202dと、を有して成る。
カラーコレクション部202aは、第1の画像補正処理部201から入力される霧画像補正処理済みの入力画像データに基づいて、色補正係数を算出する。
輝度判別部202bは、第1の画像補正処理部201から入力される霧画像補正処理済みの入力画像データに基づいて、輝度ダイナミックレンジ補正係数を算出する。
画像エンハンス部202cは、カラーコレクション部202aから入力される色補正係数と、輝度判別部202bから入力される輝度ダイナミックレンジ補正係数に基づいて、最終的な画像補正係数を算出する。
演算処理部202dは、画像エンハンス部202cから入力される最終的な画像補正係数に基づいて、第1の画像補正処理部201から入力される霧画像補正処理済みの入力画像データに対して、さらに、色補正処理と輝度ダイナミックレンジ補正処理を施す。
エンコーダ回路300は、画像補正処理回路200で生成されたデジタル形式の出力画像データをアナログコンポジットビデオ形式の出力画像データに変換する回路ブロックであり、メモリコントローラ301と、ラインメモリ302と、補完部303と、ガンマ補正部304と、ローパスフィルタ部305と、トラップフィルタ部306と、ローパスフィルタ部307及び308と、演算処理部309〜312と、デジタル/アナログ変換部313と、タイミング信号発生部314と、サブキャリア信号発生部315と、カラーバー信号発生部316と、を有して成る。
メモリコントローラ301は、ラインメモリ302を用いて、画像補正処理回路200から入力されるデジタル形式の出力画像データのラインバッファ制御を行う。補完部303は、メモリコントローラ301から入力されるデジタル形式の出力画像データに対して不足情報の補完処理(YUV(4:2:2)→YUV(4:4:4))を施すとともに、そのオーバーサンプリング処理(13.5MHz→27MHz)を行う。
ガンマ補正部304は、補完部303から入力される輝度信号Yに対してガンマ補正処理を施す。ローパスフィルタ部305は、ガンマ補正部304の出力信号に対してローパスフィルタ処理を施す。トラップフィルタ部306は、ローパスフィルタ部305の出力信号に対してバンドエリミネートフィルタ処理を施す。
ローパスフィルタ部307及び308は、それぞれ、補完部303から入力される色差信号Cb、Crに対してローパスフィルタ処理を施す。演算処理部309及び310は、それぞれ、ローパスフィルタ部307及び308の出力信号にサブキャリア信号を重畳する。演算処理部311は、演算処理部309の出力信号と演算処理部310の出力信号とを加算する。演算処理部312は、トラップフィルタ部305の出力信号と演算処理部311の出力信号とを加算する。デジタルアナログ変換部313は、演算処理部312から入力されるデジタル信号をアナログ信号に変換して出力する。
タイミング信号発生部314は、装置外部から入力されるタイミング信号(水平同期信号、垂直同期信号、クロック信号)を装置外部にそのままスルー出力する一方、当該タイミング信号を用いてサブキャリア信号発生部315の同期制御も行う。サブキャリア信号発生部315は、色差信号Cb、Crのバースト変調に用いられるサブキャリア信号を生成して演算処理部309及び310に供給する。カラーバー信号発生部316は、アナログコンポジットビデオ形式の出力画像データの基準値となるカラーバー信号を生成する。
第1シリアルインターフェース回路400は、周辺機器(CPU[Central Processing Unit]など)との間で、I2C[Inter-Integrated Circuit]規格に準じた2線式のシリアル通信を行う。
第2シリアルインターフェイス回路500は、EEPROM[Electrically Erasable and Programmable Read Only Memory]との間でSPI[Serial Peripheral Interface]規格に準じたシリアル通信を行う。
次に、画像処理IC100の外部端子について説明する。図8は、画像処理IC100の端子配置図であり、図9は、画像処理IC100の端子機能説明表である。
1ピン(SDI)は、SPIバスデータ入力端子である。2ピン(CAMDI7)〜5ピン(CAMDI4)は、各々データ入力端子(上位4ビット[7:4])である。6ピン(GND)は、共通グランド端子である。7ピン(VDD)は、コア電源端子である。8ピン(CAMDI3)〜11ピン(CAMDI0)は、各々、データ入力端子(下位4ビット[3:0])である。12ピン(CAMHSI)は、水平タイミング入力端子である。13ピン(CAMVSI)は、垂直タイミング入力端子である。14ピン(CAMCKI)は、クロック入力端子である。15ピン(GND)は、共通グランド端子である。16ピン(VDDIO)は、デジタルI/O電源端子である。17ピン(CAMDO0)〜24ピン(CAMDO7)は、各々データ出力端子(全8ビット[7:0])である。25ピン(CAMHSO)は水平タイミング出力端子である。26ピン(CAMVSO)は、垂直タイミング出力端子である。27ピン(CAMCKO)は、クロック出力端子である。28ピン(GND)は、共通グランド端子である。29ピン(VDD)は、コア電源端子である。30ピン(AUTO)は、自動レジスタ設定機能有効端子である。31ピン(MODE0)及び32ピン(MODE1)は、モード選択端子である。33ピン(VOUT)は、アナログコンポジットビデオ出力端子である。34ピン(AVSS)は、DAC用アナロググランド端子である。35ピン(IREF)は、DAC用参照電圧出力端子である。36ピン(AVDD)は、DAC用アナログ電源端子である。37ピン(GND)は、共通グランド端子である。38ピン(VDDI2C)は、2線式シリアルインターフェース用デジタルI/O電源端子である。39ピン(SDA)は、2線式シリアルインターフェース入出力データ端子である。40ピン(SDC)は、2線式シリアルインターフェース入出力クロック端子である。41ピン(RESETB)は、システムリセット信号入力端子である。42ピン(TEST)は、テストモード端子であり、使用時にはグランドに接続される。43ピン(GND)は、共通グランド端子である。44ピン(VDDIO)は、デジタルI/O電源端子である。45ピン(WPB)は、EEPROMライトプロテクト端子である。46ピン(SCEB)は、EEPROMチップセレクト端子である。47ピン(SCK)は、SPIバスクロック出力端子である。48ピン(SDO)は、SPIバスデータ出力端子である。
なお、図9中のアクティブレベル欄に「*」が表示されている端子については、レジスタでの設定により、そのアクティブレベルを変更可能であることを示している。また、図9中のInit欄は、リセット解除時のピン状態を示している。また、Init欄に「*1」が表示されている端子については、プルダウン状態であることを示している。また、図9中の電源系統欄に記載されている数字に関して、「1」はVDDIOを、「2」はVDDI2Cを、「3」はAVDDを、「4」はVDDを各々表している。
上記した外部端子のうち、2ピン(CAMDI7)〜5ピン(CAMDI4)、及び、8ピン(CAMDI3)〜11ピン(CAMDI0)は、IC外部からデジタル形式の入力画像データが入力される第1の外部端子に相当する。また、17ピン(CAMDO0)〜24ピン(CAMDO7)は、IC外部にデジタル形式の出力画像データを出力する第2の外部端子に相当する。また、33ピン(VOUT)は、IC外部にアナログコンポジットビデオ形式の出力画像データを出力する第3の外部端子に相当する。
次に、上記構成から成る画像処理IC100の概要について述べる。画像処理IC100は、霧画像補正、色補正処理、及び、輝度ダイナミックレンジ補正処理を統合的に行うことにより、カメラ等から入力される入力映像(特に、霧が掛かった入力画像や、低照度の入力画像、或いは、逆光状態の入力画像など)の視認性を向上することが可能な画像補正機能内蔵ビデオエンコーダである。
次に、上記構成から成る画像処理IC100の特長について述べる。第1の特長は、入力データフォーマットとして、ITU-R BT.656-4、または、同期信号付きYCbCrに対応している点である。なお、ITU-R BT.656-4については、データバス幅が8bitであり、ピクセルクロックが27MHzである。また、同期信号付きYCbCr(同期信号はスレーブ動作)については、データバス幅が8bitであり、データレンジがフルレンジまたはITU-R BT.601準拠である。ピクセルクロックがNTSC(27MHz、28.63636MHzまたは19.06993MHz)、PAL(27MHz、28.375MHz、35.46895MHzまたは18.9375MHz)である。第2の特長は、出力データフォーマットも、入力フォーマットと同様、ITU-R BT.656-4、または、同期信号付きYCbCrに対応している点である。第3の特長は、出力ビデオフォーマットとして、NTSC/PAL SD-TVコンポジットビデオ出力(CVBS)に対応している点である。第4の特長は、画像補正機能(霧画像補正機能、色補正機能、輝度ダイナミックレンジ補正機能)、エッジ強調フィルタ、及び、ガンマフィルタを内蔵している点である。第5の特長は、10ビットのデジタル/アナログ変換器を1チャンネル内蔵している点である。第6の特長は、2線式シリアルインターフェイスを用いたスレーブ機能を内蔵しており、外部からIC内部のレジスタを設定可能な点である。第7の特長は、SPIバスマスタ機能を内蔵しており、外付けEEPROMに格納されたレジスタ設定値を、リセット解除時とモード変更時において、自動的に読み出し、IC内部のレジスタに設定可能な点である。第8の特長は、4系統の電源電圧(VDD=1.50V、VDDIO=3.30V、VDDI2C=3.30V、AVDD=3.30V)の入力に対応している点である。第9の特長は、48ピンのVQFPパッケージ(0.5mmピンピッチ)を採用している点ある。
次に、デジタルデータとCVBS出力とのレベル関係について説明する。ITU601R_Iレジスタにより、入力デジタルデータのレンジを設定することができる。また、LEVELレジスタにより、そのデジタルデータをCVBS出力する際のアナログ信号レベルを設定することができる。ITU601R_Iレジスタによるデジタルデータレンジと、LEVELレジスタによるCVBS出力レベルとの関係は、図10A及び図10Bのようになる。図10A及び図10Bは、それぞれ、設定毎のデジタルデータとCVBS出力とのレベル関係を示す図である。なお、図10Aは、100[IRE]設定時の様子を示しており、図10Bは、108[IRE]設定時の様子を示している。
次に、2線式シリアルインターフェイスについて説明する。図11Aは、2線式シリアルインターフェースのデータ送受信波形図であり、図11Bは、2線式シリアルインターフェイスのフォーマット図である。2線式シリアルインターフェイスのスレーブアドレスは70hである。ライト/リード共に、2回以上の連続アクセスを行った場合、サブアドレスは自動的にインクリメントされる。
次に、SPIバスフォーマットについて説明する。図12は、SPIバスインターフェースのデータ送受信波形図である。ここで、図12中のREG_WPB、REG_SCEB、SWDATA、及び、SRDATAはレジスタ名であり、各機能は以下の通りである。
REG_WPB:WPピンの論理を指定する。レジスタ値がそのままWPピンに出力される。
REG_SCEB:SCEBピンの論理を指定する。レジスタ値がそのままSCEBピンに出力される。
SWDATA[7:0]:EEPROMへの書き込みデータを指定する。MSBファーストで転送される。
SRDATA[7:0]:EEPROMからのデータを読み出せる。MSBファーストとして変換する。
なお、SCKクロック周波数は、SCK周波数 = CAMCKI周波数 ÷ 2(SPIPREDIV+1) ÷ (SPIDIV+1) という数式に基づいて算出することができる。ここで、SPIPREDIV、SPIDIV は、SPIPREDIV = 0〜7、SPIDIV = 0〜31の範囲で設定可能なSCK周波数設定レジスタである。CAMCKIが27MHzのとき、SCKは13.5MHz〜3.3kHzとなる。
次に、SPIバスによるEEPROMからのデータ自動読み出し機能について詳細に説明する。画像処理IC100では、AUTOピンをハイレベルに固定することで、EEPROMから自動的にデータを読み出し、IC内のレジスタに設定することができる。
図13は、データ自動読み出しシーケンスを示すフローチャートである。ステップS101では、RESETBピンの解除が行われる。ステップS102では、MODE0、MODE1の論理レベルの確認とその確認結果の保存が行われる。ステップS103では、EEPROMからデータの読み出しが行われる。ステップS104では、動作状態がセット状態であるかストップ状態であるかの判定が行われる。ステップS104でセット状態と判定された場合、ステップS105では、対象インデックスへデータが反映される。一方、ステップS104でストップ状態と判定された場合、ステップS106では、MODE0、MODE1の論理レベルが確認される。ステップS107では、ステップS102で保存されたMODEピンの状態とステップS106での確認結果との比較が行われる。ここで、変化があると判定された場合には、フローがステップS103に戻され、変化がないと判定された場合には、フローがステップS106に戻される。
なお、図13のステップS103において、EEPROMからデータを読み出す際、EEPROMの読み出し開始アドレス:ST_ADRについては、下記の通り、MODE0ピン、MODE1ピンの設定に従う。
[MODE1,MODE0] = [Low, Low] : ST_ADR = 000h
[MODE1,MODE0] = [Low, High] : ST_ADR = 080h
[MODE1,MODE0] = [High, Low] : ST_ADR = 100h
[MODE1,MODE0] = [High, High] : ST_ADR = 180h
図14は、EEPROMからのデータ読み出しフローを説明するための波形図である。なお、図中の「*A」はEEPROMのアドレスbit8であり、「*B」はEEPROMのアドレスbit7-bit0である。
また、図13のステップS105において、対象インデックスへデータを反映する際には、EEPROM内部のデータフォーマットに従い、ICにレジスタ値の反映を行う。図15A及び図15Bは、EEPROM内部のデータフォーマットを示す図である。なお、図15Aは、セット時(IC内部のレジスタへ設定を行う動作状態)のデータフォーマットを示しており、図15Bは、ストップ時(自動読み出し停止状態)のデータフォーマットを示している。
なお、図15Aのデータ内容は以下の通りである。
S-CODE:8’b0000_0001。画像処理IC100(以下では適宜、本ICと略称する)はこのコードを受け、以降のデータを有効なレジスタ値と判断する。
Index:本ICの設定開始インデックスアドレス
Size:設定サイズ数(バイト)
Data:設定データ。データ数はSizeバイト
また、図15Bのデータ内容は以下の通りである。
P-CODE [3:0]:4’b0100。本ICはこのコードを受け、自動読み出し機能を停止する。
PER[3:0]:MODE0、MODE1のポーリング間隔を設定する。
自動読み出し機能は、動作がセットであることが確認されると、インデックスの値を本ICの設定開始アドレスと判断し、Size分だけ連続して設定を行う。Size分の設定が終わると、再度セット/ストップの判定を行い、セットであればインデックスを設定開始アドレスとしてSize分の設定を行う。この動作はストップを識別するまで行われる。ストップを識別すると、一旦自動読み出し機能を停止する。それ以降はポーリング間隔で設定された時間毎に、MODE0、MODE1をポーリングし、ピンレベルの変更が確認できた時点で、再度動作を開始する。また、自動読み出し機能が動作中にMODE0、MODE1が変更されると、自動読み出し動作終了後すぐに再設定が行われる。
次に、画像処理IC100に内蔵されるレジスタの説明を行う。図16は、画像処理IC100のレジスタマップである。なお、Empty表記、Reserved表記のレジスタへのアクセスは禁止されている。
図17は、極性設定レジスタPOLの詳細テーブルである。IDX_ADDRESSは10hである。
CKPOLは、CAMDI[7:0]に対するCAMCKIの極性を設定する。設定内容は次の通りである。
"0":CAMCKIの立ち下がりエッジでデータ変化、立ち上がりエッジでデータ取り込み
(図18Aを参照)
"1":CAMCKIの立ち上がりエッジでデータ変化、立ち下がりエッジでデータ取り込み
(図18Bを参照)
HSPOLは、水平同期信号(CAMHSI)の極性を設定する。HIGH区間が有効データ(LOWがシンク区間)である。HSPOLには"0"を設定すればよい。
VSPOLは、垂直同期信号(CAMVSI)の極性を設定する。HIGH区間が有効データ(LOWがシンク区間)である。VSPOLには"0"を設定すればよい。
RESERVEDのビットには"0"を書けばよい。
図19は、パラメータ更新レジスタPARAMSETの詳細テーブルである。IDX_ADDRESSは11hである。
PARAM_SET_FRに"1"を書き込むことで、霧消しブロック(IDX_ADDRESS:30h〜37h)のレジスタに対して、パラメータの更新が行なわれる。書き込み後のフレームの先頭で内部パラメータが更新される。このビットは、更新後自動クリアされる。
PARAM_SETに"1"を書き込むことで、パラメータの更新が行なわれる。書き込み後のフレームの先頭で内部パラメータが更新される。このビットは、更新後自動クリアされる。
RESERVEDのビットには"0"を書けばよい。
図20は、モードレジスタMODEの詳細テーブルである。IDX_ADDRESSは12hである。
MODE[1:0]は、本ICの画像エンハンス動作モードを設定する(図21を参照)。
TH_TYPEは、スルーモードの動作タイプの設定を行う。スルーモード時、データ、同期信号は画像エンハンスモードと同じサイクル数を遅延させて出力する。TH_TYPEには、"1"を設定すればよい。
SUSPは、IOのサスペンドモードの設定を行う。サスペンドモードにおいて、CAMDI0-7,CAMHSI,CAMVSI,CAMCKIの各信号はIC内部に伝達されない。設定内容は次の通りである。
"0":サスペンドモード解除
"1":サスペンドモード
PD_OFFは、本ICのAUTO,MODE0,MODE1のプルダウン設定を制御する。設定内容は次の通りである。
"0":AUTO,MODE0,MODE1のそれぞれに内蔵プルダウン抵抗が接続される。
"1":AUTO,MODE0,MODE1のそれぞれから内蔵プルダウン抵抗を切り離す。
DOUT_OFFは、本ICのデジタル出力設定を制御する。設定内容は次の通りである。
"0":画像データがデジタル端子から出力される。
"1":CAMDO0-7,CAMHSO,CAMVSO,CAMCKOはlow出力される。
FR_OUT_SELは、CAMHSO端子にCAMHSIから内部でタイミング調整されたCAMHSOを出力するか、またはFR_EN(IDX_ADDRESS:30h bit[0])を出力するか選択する。設定内容は次の通りである。
"0":CAMHSOを出力
"1":FR_ENを出力
図22は、入力インターフェースフォーマット指定レジスタYUVIFSETの詳細テーブルである。IDX_ADDRESSは13hである。
YUV_XST[1:0]は、Hsync有効後のデータ有効までのディレイを設定する。YUV_XST[1:0]には、"0"を設定すればよい。
YUVORD[1:0]は、YCbCrの入力フォーマットを設定する。YUVORD[1:0]には、"10b”(CbYCrY・・・) を設定すればよい。
ITU601Rは、デジタルインターフェイスのデータレンジ選択を行う。なお、下記以外の設定は禁止されている。
"00b":フルレンジでデータ入力/出力を行う。
"11b":ITU601レンジでデータ入力/出力を行う。
ITU656ENは、入力、出力のデジタルインターフェイスを設定する。設定内容は次の通りである。
"0":Hsync , Vsync別信号
"1":ITU656フォーマット
図23は、出力レンジ変換レジスタTRAM_LIMの詳細テーブルである。IDX_ADDRESSは49hである。
TRAN_LIMは、デジタル出力信号:CAMDO7-0に対して、色空間変換(YUV→RGB→YUV変換)を行う。色空間変換を行うと、出力するクロマ成分はRGB空間で表現可能な値に制限される。設定内容は次の通りである。
"0":色空間変換あり
"1":色空間変換なし
RESERVEDのビットには"0"を書けばよい。
図24は、モニタX方向画素サイズ設定レジスタDXSIZEの詳細テーブルである。IDX_ADDRESSは14h及び15hである。XSIZE[10:0]は使用するカメラのX方向の画素数を設定する。偶数を設定すればよい。320〜1280まで設定することができる。
図25は、モニタY方向画素サイズ設定レジスタDYSIZEの詳細テーブルである。IDX_ADDRESSは16h及び17hである。YSIZE[10:0]は、用するカメラのY方向の画素数を設定する。240〜960まで設定することができる。
図26は、霧画像補正、画像エンハンス有効X方向スタート位置設定レジスタICXSTの詳細テーブルである。IDX_ADDRESSは18h及び19hである。ICXST[9:0]は、霧画像補正、及び、画像エンハンス補正の有効エリアのX方向スタート位置を設定する。偶数を設定すればよい。0〜(XSIZE - ICXSIZE)まで設定可能である。
図27は、霧画像補正、画像エンハンス有効Y方向スタート位置設定レジスタICYSTの詳細テーブルである。IDX_ADDRESSは1Ah及び1Bhである。ICYST[9:0]は、霧画像補正、及び、画像エンハンス補正の有効エリアのY方向スタート位置を設定する。0〜(YSIZE - ICYSIZE)まで設定可能である。
図28は、霧画像補正、画像エンハンス有効X方向サイズ設定レジスタICXSIZEの詳細テーブルである。IDX_ADDRESSは1Ch及び1Dhである。ICXSIZE[10:0]は、霧画像補正、及び画像エンハンス補正の有効エリアのX方向サイズ(画素数)を設定する。偶数を設定すればよい。320〜XSIZEまで設定可能である。
図29は、霧画像補正、画像エンハンス有効Y方向サイズ設定レジスタICYSIZEの詳細テーブルである。IDX_ADDRESSは1Eh及び1Fhである。ICYSIZE[10:0]は、霧画像補正、及び画像エンハンス補正の有効エリアのY方向サイズ(画素数)を設定する。240〜YSIZEまで設定可能である。
図30は、霧画像補正と画像エンハンス補正の有効範囲を示す模式図である。
図31は、プリガンマ設定レジスタPREGAMMAの詳細テーブルである。IDX_ADDRESSは20hである。本ICには、プリガンマフィルタが内蔵されている。このプリガンマフィルタは15種類の設定値をもっており、PREG[3:0]によってその設定値が選択される。PREG[3:0]は"0"〜"14"まで設定可能であり、数字が小さくなるほど、低輝度域の引き上げが大きくなる。なお、PREG[3:0]として"15"の設定は禁止されている。
図32は、輝度補正強度設定レジスタSTRENGTHの詳細テーブルである。IDX_ADDRESSは21hである。STR [6:0]は画像エンハンス補正の強度を設定する。STR[6:0]は"0"〜"127"の値を設定可能である。
図33は、色差補正強度設定レジスタUV_STRENGTHの詳細テーブルである。IDX_ADDRESSは22hである。
UV_STR [3:0]は、色差成分の画像エンハンス補正の補正強度を設定する。UV_STR[3:0]は"0"〜"13"まで設定可能で、数字が大きくなると、発色が強くなる。"14","15"の設定は禁止されている。また、FR_AT="1"かつUV_STR_AT="1"設定で、かつ、FR_EN="1"(IDX_ADDRESS:30h FRCTL[4:3],[0])の場合、画像エンハンス補正ブロックに対するUV_STRENGTH設定は、本レジスタではなく、UV_STR_AT(IDX_ZDDRESS:07h UV_STR_AT[3:0])になる。
V_ENHANCE[3:0]は、数字が大きくなるほど、赤みが強くなる。+約3%×設定数強調される。"0"〜"15"まで設定可能である。
図34は、ノイズ抑制設定レジスタNOISE_SUPの詳細テーブルである。IDX_ADDRESSは23hである。NOISE_SUP[6:0]は、ノイズ抑制値を設定する。"10"〜"127"まで設定できる。値を大きくするとノイズが抑制される。"0"〜"9"は設定禁止である。
図35は、エッジ強調フィルタ設定レジスタEDG_CNTの詳細テーブルである。IDX_ADDRESSは24hである。
EDG_ST[3:0]は、エッジ強調フィルタの強さを設定する。"0"〜"15"まで設定できる。値を大きくするとエッジ強調が強くなる。
EDG_ENは、エッジ強調フィルタのイネーブルを設定する。設定内容は次の通りである。
"0":ディスエーブル
"1":イネーブル
図36は、応答時間設定レジスタRESP_SETの詳細テーブルである。IDX_ADDRESSは25hである。RESP_SETは、画像エンハンス効果の応答時間を設定する。"0"が一番早く、"15"が一番遅くなる。
図37は、ポストフィルタイネーブルレジスタPFLT_ENの詳細テーブルである。IDX_ADDRESSは26hである。POFLT_ENは、出力ガンマフィルタのイネーブルを設定する。出力ガンマ特性レジスタで設定された特性を用いる。画像エンハンス補正処理後の画像にガンマフィルタがかかる。設定内容は次の通りである。
"0":ディスエーブル
"1":イネーブル
図38は、出力ガンマ特性レジスタPOFLT0〜POFLT8の詳細テーブルである。IDX_ADDRESSは27h〜2Fである。POFLT0〜POFLT8は、それぞれ、出力ガンマ特性の設定をする。
図39は、出力ガンマ特性を示す図である。
図40は、霧画像補正制御レジスタFRCTLの詳細テーブルである。IDX_ADDRESSは30hである。
FRCLK_ENは霧画像補正ブロックへのクロックを供給する。設定内容は次の通りである。
"0":クロック停止
"1":クロック供給
FR_SLOPは、霧画像補正自動制御時(FR_AT="1"設定時)、Sカーブレンジ調整値(SCRVADJレジスタ)の変化に対してスロープ時間の設定を行う。スロープ幅は常にSCRVADJ設定値で±1ずつ変化する。設定内容は次の通りである。
"0":スロープ制御ディスエーブル
"1":スロープ制御イネーブル
FR_ATは、霧画像補正方法を設定する。自動制御選択時は、本ICがFR_ENビットの制御を行う。設定内容は次の通りである。
"0":霧画像補正をマニュアル設定する。
"1":霧画像補正を自動で行う。(本ICが制御する。)
UV_STR_AT_ENは、自動制御ONかつ霧画像補正機能有効時において、画像エンハンス補正機能のUV_STR設定として、UV_STR(IDX_ADDRESS:22h [3:0]) とUV_STR_AT(IDX_ADDRESS:07h [3:0])のどちらの設定を有効にするかを選択する。設定内容は次の通りである。
"0":常にUV_STRの設定値が有効
"1":自動制御ONかつ霧画像補正機能有効時、UV_STR_ATの設定値が有効
REP_REQに"1"を書き込むと、次フレーム画像のデータを取り込む。"1"書き込み後、"0"になった(自動クリア)後に36h〜37hのデータを読み出すことができる。設定内容は次の通りである。
"1":取り込み未(36h、37hのデータ無効)
"0":取り込み完了(36h、37hのデータ有効)
FR_THは、霧画像補正ブロックのスルー動作制御を行う。同期信号、データは霧画像補正処理時と同じサイクル数を遅延させて出力する。FR_THとしては"1"を設定すればよい。
FR_ENは、霧画像補正処理の動作制御(FR_AT="0"時)、或いは、動作確認(FR_AT="1"時)を行う。設定内容は次の通りである。なお、RESERVEDのビットに"1"を書き込むことは禁止されている。
<FR_AT="0"設定時>
"0":霧画像補正ディスエーブル
"1":霧画像補正イネーブル
<FR_AT="1"設定時>
"0":霧画像補正停止中
"1":霧画像補正動作中
図41は、霧画像補正Sカーブレンジ調整レジスタSCRVADJの詳細テーブルである。IDX_ADDRESSは31hである。SCRVADJ[3:0]は、霧画像補正のSカーブレンジ調整を行い、霧画像補正の強度を設定する。図42は、SCRVADJの設定値と霧画像補正の強度との関係を示す表である。
図43は、霧画像補正γカーブレンジ調整レジスタGCRVADJの詳細テーブルである。IDX_ADDRESSは32hである。GCRVADJ[3:0]は、霧画像補正のγカーブレンジ調整を行い、γ値のオフセットを設定する。図44は、GCRVADJの設定値とγ値のオフセットとの関係を示す表である。
図45は、ヒストグラム平均輝度値レジスタHAVGLUMの詳細テーブルである。IDX_ADDRESSは36hである。HAVGLUM[3:0]は、ヒストグラムの平均値を読み出すことができる。"0"〜"255"の範囲となる。
図46は、ヒストグラム標準分散値レジスタHSTDVRCの詳細テーブルである。IDX_ADDRESSは37hである。HSTDVRC[3:0]は、ヒストグラムの分散値を読み出すことができる。
図47は、フィールド間Low Pass Filter制御レジスタFR_LPF_CNTの詳細テーブルである。IDX_ADDRESSは3Ehである。FR_LPF_ENは、霧画像補正ブロック内部で演算されているパラメータに対して、5タップのLow Pass Filterを有効にする。設定内容は次の通りである。なお、RESERVEDのビットに"1"を書き込むことは禁止されている。
"0":Low Pass Filter OFF
"1":Low Pass Filter ON
図48は、フィールド間LPF係数レジスタFR_LPF_COEF0〜FR_LPF_COEF4の詳細テーブルである。IDX_ADDRESSはC2h〜C6hである。FR_LPF_COEF0[7:0]〜FR_LPF_COEF4[7:0]は、それぞれ、フィールド間Low Pass Filterの係数を設定する。各フィルタ係数は、整数部1bit、小数部7bitの計8bitで、かつ、2進数で設定すればよい。従って、10進数で表現する場合、係数の設定値は以下の通りとなる。
係数 = bit7*20 + bit6*2-1 + bit5*2-2 + bit4*2-3 + ・・・ + bit0*2-7
例えば、FR_LPF_COEF0に10進数で0.5と設定する場合は、同レジスタに40hと設定すればよい。また、LPFの計算は以下の通りとなる。
P(n)’ = P(n-2)*FR_LPF_COEF0 + P(n-1)* FR_LPF_COEF1 + P(n)* FR_LPF_COEF2
+ P(n+1)* FR_LPF_COEF3 + P(n+2)* FR_LPF_COEF4
なお、各係数の設定の総和は、常に1になるように設定しなければならない。
FR_LPF_COEF0+FR_LPF_COEF1+FR_LPF_COEF2+FR_LPF_COEF3+FR_LPF_COEF4 = 80h
図49は、自動制御UV_STR調整レジスタUV_STR_ATの詳細テーブルである。IDX_ADDRESSは07hである。UV_STR_AT[3:0]は、UV_STR_AT_EN(IDX_ADDRESS:30h [3])="1"設定であって、かつ、自動制御ON時に、霧画像補正機能が有効であれば、画像エンハンス補正機能のUV_STR設定を本レジスタ値に置き換える。自動制御ON時であっても、霧画像補正機能が無効であれば、本レジスタは無効となり、画像エンハンス補正機能はUV_STR (IDX_ADDRESS:22h [3:0])の設定となる。
図50は自動制御分散値閾値設定レジスタACVRCTH1〜ACVRCTH3の詳細テーブルである。IDX_ADDRESSは08h〜0Ahである。ACVRCTH1,2,3[7:0]は、入力されたヒストグラムの分散値に対して、ACVRCTH1、ACVRCTH2、ACVRCTH3にて入力画像が霧画像かどうかの判定を行う。詳細については、図53と図54を参照しながら後述する。なお、ACVRCTH1、ACVRCTH2、ACVRCTH3は、以下の関係を満たすように設定すべきである。
ACVRCTH1 + 4 ≦ ACVRCTH2 < ACVRCTH3
図51は自動制御平均値閾値設定レジスタACAVGTH1,ACAVGTH2の詳細テーブルである。IDX_ADDRESSは0Bh,0Chである。ACAVGTH1,2[7:0]は、ヒストグラムの平均輝度値がACAVGTH1より大きい場合、霧画像と判別し補正機能が有効となる。霧画像補正機能有効後、ヒストグラムの平均輝度値がACAVGTH2よりも小さくなると、霧画像補正機能を無効とする。詳細については、図53と図54を参照しながら後述する。なお、ACAVGTH1、ACAVGTH2は、以下の関係を満たすように設定すべきである。ここで、ACAVGTH1 = ACAVGTH2の場合は、入力画像輝度値判定のヒステリシス機能がOFFする。
ACAVGTH1≧ACAVGTH2
図52は、自動制御Sカーブ補正領域設定レジスタACSCV11〜ACSCV13の詳細テーブルである。IDX_ADDRESSは0Dh〜0Fhである。
ACSCV_ULIM[3:0]、ACSCV_MH[3:0]、ACSCV_MM[3:0]、ACSCV_ML[3:0]、ACSCV_LLIM[3:0]は、自動制御時、入力された分散値に対して、霧画像処理補正量:Sカーブレンジ調整の設定を行う。設定値の強度はSCRVADJレジスタ(IDX_ADDRESS:31h)と同様である。詳細については、図53と図54を参照しながら後述する。ACSCV_ULIM、ACSCV_MH、ACSCV_MM、ACSCV_ML、ACSCV_LLIMは、以下の2つの関係を満たすように設定すべきである。
ACSCV_ULIM > ACSCV_LLIM
ACSCV_ULIM≧ACSCV_MH≧ACSCV_MM≧ACSCV_ML≧ACSCV_LLIM
FR_SLOP_CNT[1:0]は、自動制御でスロープ設定(FR_SLOP)有効時、スロープ時間の設定を行う。設定内容は次の通りである。
"00b":毎フィールド更新
"01b":16フィールド毎更新
"10b":32フィールド毎更新
"11b":64フィールド毎更新
図53は、霧画像補正自動制御を説明するためのフローチャートであり、図54は、霧画像補正自動制御アルゴリズムの概要を示す図である。なお、図53及び図54は、それぞれ、先出の図4及び図6Aに相当するため、以下ではその概略だけを改めて説明する。
霧画像補正の自動制御は、以下の順序でSカーブレンジ調整を行う。
(1)入力輝度とACVRCTH1レジスタ値との比較
まず、ステップS201にて、入力画像の平均輝度値とACVRCTH1レジスタ値とを比較する。入力画像の平均輝度の方が高ければ、Sカーブレンジ調整判定ステート(ステップS202)へ移行する。輝度判定には、ACVRCTH1レジスタ値付近でのON/OFFを防ぐために、ヒステリシス幅を設定することが可能である。霧画像補正は入力輝度がACVRCTH1レジスタ値よりも大きければONし、入力輝度がACVRCTH2レジスタ値よりも小さければOFFする。
(2)Sカーブレンジ調整
Sカーブレンジ調整は、入力画像の分散値を判定し、分散値に応じてSCRVADJレジスタ値を算出する。Sカーブレンジ調整の設定範囲指定は、ACSCV_ULIM、ACSCV_MH、ACSCV_MM、ACSCV_ML、ACSCV_LLIMにて行う。標準分散範囲指定は、ACVRCTH1、ACVRCTH2、ACVRCTH3で行い、ACVRCTH1、ACVRCTH2の間は、等分に4分割する。例えば、入力分散値がACVRCTH1と同じ値であればSCRVADJレジスタ値はACSCV_ULIM値に設定される。入力輝度判定時と同様に、Sカーブレンジ調整でも、設定境界でのちらつきを防止するため、図54に示すように、ヒステリシスを持っている。入力画像の分散値が次第に大きくなる場合には、図54の破線で示される経路でSカーブレンジ調整を行い、入力データの分散値がACVRCTH3以上になると霧画像補正機能をOFFする。一旦OFFした後は、入力データの分散値がACVRCTH2以上になれば、霧画像補正機能をONし、分散値に応じたSカーブレンジ調整を行う。
以降は、上記の(1)と(2)を繰り返し、霧画像補正ON/OFF、Sカーブレンジ調整を制御する。
図55は、TVエンコーダリセットレジスタPWDの詳細テーブルである。IDX_ADDRESSは41hである。
DAC_POWは、本IC内蔵のDAC動作をON/OFFする。設定内容は次の通りである。
"0":DAC動作ON
"1":DAC動作OFF
LOGIC_POWは、TV-EncoderブロックのクロックON/OFF制御を行う。設定内容は次の通りである。
"0":内部クロックをOFFする。
"1":内部クロックをONする。
図56は、TVエンコーダ表示モードレジスタDISPの詳細テーブルである。IDX_ADDRESSは43hである。
LEVELは、本IC内蔵のTVエンコーダの入力データレンジがフルレンジであるか、または、ITU-R 601レンジであるか選択を行う。ITU601R (IDX_ADDRESS:13h YUVIFSET[3:2])の設定値に従って、レジスタ設定を行えばよい。設定内容は次の通りである。
"0":ITU601R = 2’b00設定の場合はLEVEL=0と設定すべきである。
"1":ITU601R = 2’b11設定の場合はLEVEL=1と設定すべきである。
DISP0は、本IC内部のTVエンコーダの動作モードを選択する。スクウェアピクセルモードでは、水平方向の640ピクセルを720ピクセルに伸張する。クロック入力が27MHz以外の場合は、このビットに"0"を書くべきである。設定内容は次の通りである。
"0":等価ピクセルモード
"1":スクウェアピクセルモード
図57は、TVエンコーダビデオモードレジスタVIDEOの詳細テーブルである。IDX_ADDRESSは45hである。
NTPALは、本IC内蔵のTVエンコーダのビデオ出力モードを選択する。設定内容は次の通りである。
"0":NTSC
"1":PAL
Q_FSCは、本IC内部のTVエンコーダのクロック動作モードを選択する。選択したモードのクロックを入力すればよい。設定内容は次の通りである。
"0":27MHzクロック動作
"1":4fscクロック動作(クロック入力は8fsc)
PAL28は、本IC内部のTVエンコーダのクロック動作モードがPALで28.375MHzの場合にON("1")とする。設定内容は次の通りである。
"0":PALで28.375MHzクロック動作しない場合
"1":PALで28.375MHzクロック動作する場合
510Hは、本IC内部のTVエンコーダの動作モードを選択する。設定内容は次の通りである。
"0":通常動作
"1":510Hモード
C_OFFは、Cb、Cr及びカラーバースト信号の出力をOFFとする。設定内容は次の通りである。なお、RESERVEDのビットには"0"を書くべきである。
"0":通常動作(Cb、Cr及びカラーバースト信号を足し合わせて出力する。)
"1":Cb、Cr及びカラーバースト信号を足し合わせずに出力する。
図58は、TVエンコーダビデオモードレジスタVIDEOの使用可能な設定を示す一覧表である。本図に示されていない設定は禁止されている。
図59は、TVエンコーダビデオモードレジスタCVBSの詳細テーブルである。IDX_ADDRESSは46hである。
CVBS_OUTは、本IC内蔵のTVエンコーダのビデオ出力(DAC)のON/OFFを選択する。設定内容は次の通りである。
"0":DAC出力は行わない。
"1":DAC出力としてCVBS(コンポジットビデオ信号)が出力される。
IMAGE_OUT[1:0]は、本IC内部のTVエンコーダのビデオ出力データを選択する。設定内容は次の通りである。
"00b":RESERVED
"01b":BGCOLレジスタで選んだ色が全ての画面範囲で出力される。
"10b":RESERVED
"11b":映像が出力される。また、バックグラウンドエリアにはBGCOLで選んだ色が出力される。
図60は、バックグラウンドカラーレジスタBGCOLの詳細テーブルである。IDX_ADDRESSは47hである。BGCOL[3:0]は、本IC内蔵のTVエンコーダのビデオ出力(DAC)のバックグラウンド色を選択する。設定内容は次の通りである。なお、下記以外の設定は禁止である。
"00(hex)":BLUE background color [Default]
"01(hex)":BLACK background color
"02(hex)":RED background color
"03(hex)":GREEN background color
"04(hex)":YELLOW background color
"05(hex)":CYAN background color
"06(hex)":MAGENTA background color
"07(hex)":GRAY background color
"08(hex)":WHITE background color
図61は、TVエンコーダカラーバーテストレジスタCOLBARの詳細テーブルである。IDX_ADDRESSは48hである。COLBARは、本IC内蔵のTVエンコーダの出力をカラーバー出力とする。設定内容は次の通りである。
"0":本ICの入力データを出力
"1":強制的にカラーバーを出力
図62は、TVエンコーダセットアップレジスタSETUPの詳細テーブルである。IDX_ADDRESSは55hである。
BURST_LVLは、バースト信号、色搬送波のレベルを調整できる。設定内容は次の通りである。
"0":Default設定
"1":"0"設定に対し、バースト信号、色搬送波のレベルを0.8IRE程度増幅する。
SETUPは、NTSCかPALかに応じた設定をする。設定内容は次の通りである。
"0":NTSCの場合は、"0"を設定すべきである。
"1":PALの場合には、"1"を設定すべきである。
図63は、TVエンコーダセットアップ2レジスタSETUP2の詳細テーブルである。IDX_ADDRESSは50hである。SETUP2は、TVエンコーダの動作モードの設定を行う。なお、下記以外の設定は禁止されている。
"000b":510Hモード以外の場合は、"000b"を設定すべきである。
"011b":510Hモードの場合には、"011b"を設定すべきである。
図64は、TVエンコーダガンマコレクションレジスタGM_A0〜GM_A2,GM_X0〜GM_X3,GM_Y0〜GM_Y3の詳細テーブルである。IDX_ADDRESSはD0h〜DAhである。
図65は、ガンマコレクションカーブを示す図である。ガンマコレクションカーブの設定は、図65に示した4点の座標(x0,y0),(x1,y1),(x2,y2),(x3,y3)と、3つの傾き係数a0,a1,a2により決定される。3つの傾き係数a0,a1,a2に相当するビット値GM_A0,GM_A1,GM_A2は、上位4ビットが整数で、下位4ビットが少数点以下を表す。
図65に示した実線は、下記条件で近似されるガンマカーブとなっている。
1) X < x0の時
Y= y0
2) x0 ≦ X < x1の時
Y = a0 * (X - x0) + y0
3) x1 ≦ X < x2の時
Y = a1 * (X - x1) + y1
4) x2 ≦ X < x3の時
Y = a2 * (X - x2) + y2
5) x3 ≦ Xの時
Y = y3
図66は、ガンマコレクションレジスタGM_A0〜GM_A2,GM_X0〜GM_X3,GM_Y0〜GM_Y3の設定例を示す表である。出力値16(10h)が0IRE、235(EBh)が100IREに対応する。図66に示した設定の場合、出力は最大値が235(EBh)に制限され、TV出力の白レベルは100IREに制限される。
図67は、入力有効開始ピクセルオフセット設定レジスタOFSの詳細テーブルである。IDX_ADDRESSはE0h,E1hである。このレジスタはH_POSが、TVエンコーダ出力時の表示オフセットであるのに対して、入力でのHSYNCからの有効データ開始ピクセルの設定を行う。
図68は、TVエンコーダ有効データ幅設定レジスタWID_VDの詳細テーブルである。IDX_ADDRESSはE2h,E3hである。このレジスタは水平ライン中の有効ピクセル数を設定する。初期値は320ピクセルとなっている。設定値は偶数とすべきである。また、設定範囲は100ピクセルから896ピクセルの間である。設定内容は次の通りである。なお、WID_VDレジスタは4の倍数となるよう設定すべきである。
WID_VD[1:0]:この2ビットには"00b"を書くべきである。
WID_VD[9:0]:000(hex)〜063(hex):設定禁止
064(hex):100 pixels
|
|
140(hex):320 pixels [Default]
| ex.) At QVGA image input
|
2D0(hex):720 pixels
|
|
3F0(hex):1008 pixels
3F1(hex)〜3FF(hex):設定禁止
図69は、TVエンコーダ有効ライン幅設定レジスタHT_VDの詳細テーブルである。IDX_ADDRESSはE4hである。このレジスタはフィールド内の有効ライン数を設定する。初期値は240である。実際にTVへ出力されるライン数は、HT_VDレジスタに対して+64のオフセットが付いた値になる。レジスタに設定できる値の範囲は100ラインから254ラインまでである。従って、TV表示可能なライン数設定範囲は164ラインから318ラインまでである。設定内容は次の通りである。
HT_VD[0] : このビットには“0”を書くべきである。
HT_VD[7:0]: 00(HEX)〜63(HEX):設定禁止
64(HEX):164lines
|
|
F0(HEX):304lines;デフォルト
|
|
FE (HEX):318lines
図70はTVエンコーダ水平表示位置オフセットレジスタH_POSの詳細テーブルである。IDX_ADDRESSはE5hである。このレジスタはライン内の水平表示位置のオフセットを設定する。初期値は0である。設定できる範囲は0〜504ピクセルである。表示される水平位置のオフセットは以下の式で表される。
表示水平位置のオフセット値 : H_POS[7:0] x 2 [Pixel]
TVエンコーダ水平表示位置オフセットレジスタH_POSの設定内容は、次の通りである。
H_POS[1:0]:この2ビットには“00b”を書き込むべきである。
H_POS[7:0]:00(HEX):デフォルト位置
04(HEX):右に8ピクセルシフトした位置のスクリーン上に表示
|
|
FC(HEX):右に504ピクセルシフトした位置のスクリーン上に表示
FD(HEX)〜FF(HEX):設定禁止
図71はTVエンコーダ垂直表示位置オフセットレジスタV_POSの詳細テーブルである。IDX_ADDRESSはE6hである。このレジスタはフィールド内の垂直表示位置のオフセットを設定する。初期値は0である。設定できる範囲は0〜120ラインである。表示される垂直位置のオフセットは以下の式で表される。
表示垂直位置のオフセット値:V_POS[7:0]+4(line in a field) (NTSCの場合)
表示垂直位置のオフセット値:V_POS[7:0]+23(line in a field) (PALの場合)
TVエンコーダ垂直表示位置オフセットレジスタV_POSの設定内容は、次の通りである。
V_POS[1:0]:この2ビットには“00b”を書き込むべきである。
V_POS[7:0]:00(HEX):デフォルト位置
04(HEX):上に8ラインシフトした位置のスクリーン上に表示
|
|
78(HEX):上に240ラインシフトした位置のスクリーン上に表示
79(HEX)〜7F(HEX):設定禁止
80(HEX):デフォルト位置と同じ
84(HEX):下に8ラインシフトした位置のスクリーン上に表示
|
|
F8(HEX):下に240ラインシフトした位置のスクリーン上に表示
F9(HEX)〜FF(HEX):設定禁止
図72は、入力有効開始ラインオフセット設定レジスタV_OFSの詳細テーブルである。IDX_ADDRESSはE7hである。このレジスタはV_POSが、TVエンコーダ出力時の表示オフセットであるのに対して、入力でのVSYNCからの有効データ開始ラインの設定を行う。
図73は、表示位置変更レジスタの設定内容を示す模式図である。
図74は、SPIコントロールレジスタSPICNTの詳細テーブルである。IDX_ADDRESSはF0hである。このレジスタは、SPIの制御を行うレジスタである。REG_WPBは、WPB端子の出力レベルを設定する(ダイレクトに出力値が反映)。REG_SCEBは、SCEB端子の出力レベルを設定する(ダイレクトに出力値が反映)。REG_SCKは、SPI動作前のSCK端子の出力レベルを設定する(ダイレクトに出力値が反映)。REG_SDOは、SPI動作前のSDO端子の出力レベルを設定する(ダイレクトに出力値が反映)。SWRITEは、SPI動作中のSDO端子へのWDATA出力イネーブルビットである。SWRITEを"0"に設定するとREG_SDOビットの値が出力されたままとなる。SBUSYは、SPI動作中は"1"が読み出され、SPI動作が完了すると"0"が読み出される。SACTは書き込み専用で、読み出しは"0"のみ読み出される。また、SACTに"1"を書くことで8ビットデータ分のクロックが発生しSPI動作を実行する。
図75は、SPI動作クロック分周レジスタSPIDIVの詳細テーブルである。IDX_ADDRESSはF1hである。このレジスタは、SPI動作時のSCK端子クロックの周波数を決定すべく、CAMCKIクロックに対する分周比を設定する。周波数は以下の式で決定される。
SCK周波数:1/ (2^SPIPREDIV[2:0])/(SPIDIV[4:0]+1)
初期値35.5MHz/(2^4*(22+1))=96.5kHz;CAMCKI周波数が35.5MHzの時
図76は、SPI書き込みデータ設定レジスタSPIWDATAの詳細テーブルである。IDX_ADDRESSはF2hである。このレジスタは、SPI動作のときのSDO端子への出力データを設定する。
図77は、SPI読み出しデータレジスタSPIRDATAの詳細テーブルである。IDX_ADDRESSはF3hである。このレジスタは、SPI動作のときのSDI端子からの入力データを格納する。
図78は、SPI EEPROM読み出しアドレス設定レジスタ0:SPIADR0Lの詳細テーブルである。IDX_ADDRESSはF4hである。このレジスタは、MODE0,MODE1端子が各々"0"、"0"の時にEEPROMオート読み出しが実行されるときのEEPROMアドレスの下位8ビットを設定する。
図79は、SPI EEPROM読み出しアドレス設定レジスタ1:SPIADR1Lの詳細テーブルである。IDX_ADDRESSはF5hである。このレジスタは、MODE0,MODE1端子が各々"1"、"0"の時にEEPROMオート読み出しが実行されるときのEEPROMアドレスの下位8ビットを設定する。
図80は、SPI EEPROM読み出しアドレス設定レジスタ2:SPIADR2Lの詳細テーブルである。IDX_ADDRESSはF6hである。このレジスタは、MODE0,MODE1端子が各々"0"、"1"の時にEEPROMオート読み出しが実行されるときのEEPROMアドレスの下位8ビットを設定する。
図81は、SPI EEPROM読み出しアドレス設定レジスタ3:SPIADR3Lの詳細テーブルである。IDX_ADDRESSはF7hである。このレジスタは、MODE0,MODE1端子が各々"1"、"1"の時にEEPROMオート読み出しが実行されるときのEEPROMアドレスの下位8ビットを設定する。
図82は、SPI EEPROM読み出しアドレスビット8設定レジスタ:SPIADR1_Hの詳細テーブルである。IDX_ADDRESSはF8hである。このレジスタの内容は次の通りである。
SPIADR0H:EEPROM読み出しアドレスでSPIADR0のビット8を設定する。
SPIADR1H:EEPROM読み出しアドレスでSPIADR1のビット8を設定する。
SPIADR2H:EEPROM読み出しアドレスでSPIADR2のビット8を設定する。
SPIADR3H:EEPROM読み出しアドレスでSPIADR3のビット8を設定する。
図83は、初期化レジスタSRSTの詳細テーブルである。IDX_ADDRESSはFFhである。このレジスタは、ソフトウェアリセットレジスタである。"1"を書き込むことで該当ブロックがリセットされる。"1"を書き込むことのみ有効である。ソフトウェアリセット後100nsの間はアクセスすべきでない。ハードウェアリセット後、ソフトウェアリセットをする必要はない。このレジスタの内容は次の通りである。
SRST_AIE:"1"を書き込むことで、画像エンハンスブロックのリセットを行う。"0"を書き込むことでリセットは解除される。
SRST_TVE:"1"を書き込むことでTVエンコーダブロックのリセットを行う。"0"を書き込むことでリセットは解除される。
SRST_REG:"1"を書き込むことでレジスタのリセットを行う。レジスタはイニシャルの値になる。リセットは自動的に解除される。
SRST_FOG:"1"を書き込むことで霧画像補正ブロックのリセットを行う。"0"を書き込むことでリセットは解除される。
図84は、画像処理IC100を用いたシステムの一例を示す接続図である。本図に示すように、画像処理IC100の外部には、カメラモジュール、コントローラ、EEPROM、イメージプロセッサなどが接続される。
次に、画像補正処理後の色バランス崩れや輝度ダイナミックレンジ不足を抑制するための手法について詳細に説明する。
図85Aは、第1の画像補正処理部のみを有する画像補正処理装置の一例を示すブロック図である。
第1の画像補正処理部601は、デジタル形式の入力画像データに対して、第1の画像補正処理を施すことにより、デジタル形式の出力画像データを生成する。ここで、第1の画像補正処理とは、輝度ヒストグラムに基づく画像補正処理であって、本来の目的とは別に、色成分のバランス崩れ、ないしは、輝度ダイナミックレンジの不足を副次的に招くおそれのある画像補正処理を指し、例えば、先述の霧画像補正処理が相当する。
しかしながら、上記第1の画像補正処理のみを行う構成では、その処理方法や入力画像データの内容によっては、本来の目的(例えば、霧や靄の除去)とは別に、色成分のバランス崩れ、ないしは、輝度ダイナミックレンジの不足が副次的に生じ、不自然な出力画像が生成されるおそれがあった。
図85Bは、第1の画像補正処理部の後段に第2の画像補正処理部を有する画像補正処理装置の一例を示すブロック図である。
第1の画像補正処理部601は、デジタル形式の入力画像データに対して、第1の画像補正処理を施すことにより、デジタル形式の中間画像データを生成する。ここで、第1の画像補正処理とは、先と同様、輝度ヒストグラムに基づく画像補正処理であって、本来の目的とは別に、色成分のバランス崩れ、ないしは、輝度ダイナミックレンジの不足を副次的に招くおそれのある画像補正処理を指し、例えば、先述の霧画像補正処理が相当する。すなわち、図85Bで描写されている第1の画像補正処理部601は、先出の図7で描写されている第1の画像補正処理部201に相当する。ただし、第1の画像補正処理の内容は、霧画像補正処理に限定されるものではない。
第2の画像補正処理部602は、第1の画像補正処理部601から入力されるデジタル形式の中間画像データに対して、第2の画像補正処理を施すことにより、デジタル形式の出力画像データを生成する。ここで、第2の画像補正処理とは、第1の画像補正処理によって生じた色成分のバランス崩れ、ないしは、輝度ダイナミックレンジの不足を解消するための画像補正処理を指し、例えば、先述の画像エンハンス処理(彩度抑制などの色空間補正処理を伴う輝度ダイナミックレンジ補正処理)が相当する。すなわち、図85Bで描写されている第2の画像補正処理部602は、先出の図7で描写されている第2の画像補正処理部202に相当する。ただし、第2の画像補正処理の内容は、画像エンハンス処理に限定されるものではない。
このように、第1の画像補正処理で得られた中間画像データに対して、色成分のバランス崩れや輝度ダイナミックレンジの不足を解消する第2の画像補正処理を別途施すことにより、最終的に得られる出力画像の視認性を高めることが可能となる。
次に、霧画像補正処理後のちらつきを抑制するための手法について詳細に説明する。
先述の霧画像補正処理においては、輝度ヒストグラム分布の作成を行い、その分布の最大値、最小値、中央値、標準偏差値などに基づいて、輝度ヒストグラムの最適化(霧や靄の除去)が行われる。その結果、静止画や動画の殆どのシーンにおいて、良好な評価結果を得ることが可能である。
しかしながら、動画に対して霧画像補正処理を行う際には、外乱などの影響によって、入力画像データが一フレーム毎に目に見えない範囲でばらついていることが問題となる。例えば、図86に示すように、N番目のフレームと(N+1)番目のフレームでは、一見すると輝度ヒストグラム分布に違いはないように見えるが、各々の最大値付近を拡大してみると、輝度値の分布に微小なばらつきを生じていることが分かる。
このような入力画像データに対して霧画像補正処理を施すと、フレーム毎に霧画像補正量が変化するので、霧画像補正処理によって上記の微小なばらつきを強調してしまうおそれがあり、場合によっては、図87に示すように、霧画像補正処理後の輝度ヒストグラム分布全体(特に輝度ピーク値)にフレーム毎の明らかな差が現れて、画面のちらつき(フリッカ)を生じるおそれがある。
上記の問題は、輝度ヒストグラムの全範囲(すなわち、微小変化が生じやすい輝度ヒストグラムの最大値付近や最小値付近を含めた全ての輝度範囲)を利用して、霧画像補正処理を行っていることが原因と考えられる。
そこで、上記の問題を解決すべく、本発明に係る画像処理装置において、第1の画像補正処理部(図7で描写されている第1の画像補正処理部201や、図85Bで描写されている第1の画像補正処理部601がこれに相当)は、補正係数の算出時に参照される輝度ヒストグラムの有効輝度範囲が可変的に設定される構成とされている。
図88は、第1の画像補正処理部の第1構成例を示すブロック図である。本構成例における第1の画像補正処理部は、輝度ヒストグラム生成部701と、輝度ヒストグラム範囲指定部702と、霧画像補正部703と、を有して成る。なお、図中の符号Yは輝度成分を示しており、符号U、Vは色成分を示している。また、図中の符号R、G、Bは、各々赤成分、緑成分、青成分を示している。
輝度ヒストグラム生成部701は、入力画像データの輝度成分Yに基づいて輝度ヒストグラム分布を生成し、これを輝度ヒストグラム範囲指定部702に出力する。
輝度ヒストグラム範囲指定部702は、輝度ヒストグラム生成部701で生成された輝度ヒストグラム分布の有効範囲を設定する。例えば、輝度ヒストグラム範囲指定部702は、図89に示すように、霧画像補正部703での演算処理時において、輝度ヒストグラムの上限値(255)と下限値(0)から所定の輝度範囲については、これを無効として考慮しないように、輝度ヒストグラム分布の最大値と最小値をレジスタに設定する。
霧画像補正部703は、輝度ヒストグラム範囲指定部702によって定められた有効範囲内の輝度ヒストグラム分布に基づいて、霧画像補正処理の演算係数(補正係数)を算出し、これを用いて入力画像データに霧画像補正処理を施す。なお、図88の構成例では、霧画像補正部703に対して、YUV形式からRGB形式に変換された入力画像データが入力されている。
このように、霧画像補正処理の演算係数(補正係数)を算出するに際して、微小変化が生じやすい輝度ヒストグラムの最大値付近や最小値付近を無効とする構成であれば、霧画像補正処理によって入力画像データの微小なばらつきを強調してしまうおそれが低減されるので、画面のちらつき(フリッカ)を抑えることが可能となる。
なお、輝度ヒストグラム分布の有効範囲を限定したことにより、霧画像補正処理後の出力画像では、黒つぶれや白飛びを多少生じやすくなるが、これについては、ちらつき対策とのトレードオフとなるため、輝度ヒストグラム分布の有効範囲を適宜調整すればよい。
ただし、輝度ヒストグラム分布の有効範囲を限定しても、多少のちらつきが残ってしまう場合もあり得る。そこで、ちらつき対策としては、さらに以下の構成が有効である。
図90は、第1の画像補正処理部の第2構成例を示すブロック図である。本構成例における第1の画像補正処理部は、図88に示した第1構成例に加えて、輝度ヒストグラム範囲指定部702の後段に、ローパスフィルタ部704を有して成る。
ローパスフィルタ部704は、あるフレーム(フィールド)の補正係数を決定する際、当該フレームの補正係数と、当該フレームの前後に入力される少なくとも一のフレームの補正係数と、を用いて、当該フレームの補正係数にローパスフィルタ処理を施すフレーム間フィルタ(フィールド間フィルタ)である。
ローパスフィルタ部704は、ICの霧画像補正ブロック内部の演算パラメータ(霧補正パラメータ)に対して、5タップのローパスフィルタ処理を施すことにより、演算パラメータの高周波成分(急激な変化)をカットする機能を備えている。
本機能により、撮影画像のシーンが急激に変わることで霧画像補正の演算パラメータが急激に変化しても、補正画像にはそのパラメータがすぐには反映されず、5フィールドかけてゆっくりと変化する。これにより、フリッカのようにフィールド毎に入力画像が変わり、霧補正の演算パラメータが毎フィールド変化するシーンであっても、ローパスフィルタ処理部704で演算パラメータが平滑化されるため、ちらつきを抑えることができる。
ローパスフィルタ部704における演算パラメータのフィルタリング処理は、フィールド単位で実行される。演算対象とするフィールドの前後2フィールドを使用して、ローパスフィルタ処理が行われる。
図91A及び図91Bは、いずれも、ローパスフィルタ処理を説明するための模式図である。なお、図91Aは、フィールド2の演算パラメータを算出する様子を示しており、図91Bは、フィールド3の演算パラメータを算出する様子を示している。
図91A及び図91Bで示した係数の意味について説明する。ローパスフィルタ処理は5タップであることから、係数設定レジスタは5つあり、各係数に対応するフィールドは以下の通りとなる。
FR_LPF_COEF0:フィールド(N−2)のパラメータに対する係数設定
FR_LPF_COEF1:フィールド(N−1)のパラメータに対する係数設定
FR_LPF_COEF2:フィールドN(演算対象となるフィールド)のパラメータに対する係数設定
FR_LPF_COEF3:フィールド(N+1)のパラメータに対する係数設定
FR_LPF_COEF4:フィールド(N+2)のパラメータに対する係数設定
係数レジスタはいずれも8ビットで構成されており、整数部:1ビット(MSB)、小数部:7ビットで表現すればよい。従って、各レジスタ値(16進表記)に対する係数の値は以下の通りとなる。
80h:1.0000000
40h:0.5000000
20h:0.2500000
10h:0.1250000
08h:0.0625000
04h:0.0312500
02h:0.0156250
01h:0.0078125
例えば、係数値0.75を16進表記する場合には60hとなる。ここで、各係数レジスタの設定値は00h〜80hまで、かつ、5つのレジスタの合計が80hとなるように設定する必要がある。これは、各係数の合計を1.00にする必要があるためである。
次に、上記係数の設定について説明する。ローパスフィルタ処理の強度としては、演算対象となるフィールドの係数、すなわち、FR_LPF_COEF2の設定値が大きくなるほど弱くなり、逆に、FR_LPF_COEF2の設定値が小さく(前後フィールドの係数値が大きく)なるほど強くなる。
例えば、ローパルフィルタ処理の設定として、以下のような設定を行った場合には、フィールド2のパラメータがそのままローパスフィルタ処理後のパラメータとなるため、事実上、ローパスフィルタ機能がオフされたのと同様の動作になる。
FR_LPF_COEF0:00h
FR_LPF_COEF1:00h
FR_LPF_COEF2:80h
FR_LPF_COEF3:00h
FR_LPF_COEF4:00h
これに対して、FR_LPF_COEF2のパラメータを小さくするほど、ローパスフィルタの強度は強くなる。設定の一例は以下の通りである。
<ローパスフィルタ:強設定>
FR_LPF_COEF0:10h
FR_LPF_COEF1:20h
FR_LPF_COEF2:20h
FR_LPF_COEF3:20h
FR_LPF_COEF4:10h
<ローパスフィルタ:弱設定>
FR_LPF_COEF0:08h
FR_LPF_COEF1:18h
FR_LPF_COEF2:40h
FR_LPF_COEF3:18h
FR_LPF_COEF4:08h
なお、上記のローパスフィルタ処理は、ちらつき抑制と動画追従性向上とのトレードオフとなる。従って、タップ数を変更しながら、ちらつきの発生シーンはもちろん、その他のシーンでの影響を検討しつつ、アプリケーション毎に最適なローパスフィルタの設計を行うことが重要である。
次に、本発明に係る画像処理ICを搭載した電子機器(セットないしシステムを含む)について説明する。
先出の図7でも示した通り、本発明に係る画像処理IC100は、IC外部からデジタル形式の入力画像データが入力される第1の外部端子CAMDI[7:0]と;前記デジタル形式の入力画像データに所定の画像補正処理を施してデジタル形式の出力画像データを生成する画像補正処理回路200と;IC外部に前記デジタル形式の出力画像データを出力する第2の外部端子CAMDO[7:0]と;前記デジタル形式の出力画像データをアナログコンポジットビデオ形式の出力画像データに変換するエンコーダ回路300と;IC外部に前記アナログコンポジットビデオ形式の出力画像データを出力する第3の外部端子VOUTと;を集積化して成る。
このような画像処理IC100を既存の電子機器に搭載すれば、大幅な設計変更を要することなく、霧画像補正機能やTVエンコーダ機能を付加することが可能となる。
図92A及び図92Bはそれぞれ、本発明に係る画像処理ICを搭載した電子機器(屋内外監視カメラ、ネットワークカメラ(IPカメラ)、Webカメラ、車載カメラ、インターホンなど)の一構成例を示すブロック図である。
両構成例の電子機器800はいずれも、カメラ801と、AFE[Analog Front End]802と、カメラDSP803と、を有するほか、本発明に係る画像処理IC804を搭載して成る。
なお、図92Aでは、EEPROM805に格納されたプログラムによって、画像処理IC804を制御する構成が示されている。本構成例の場合、カメラ801やAFE802は、汎用インタフェイス(GPIO)に接続されるカメラDSP803を介して制御されることになる。一方、図92Bでは、汎用インタフェイス(GPIO)に接続されるマイコン806からの指示によって、画像処理IC804を制御する構成が示されている。本構成例の場合、カメラ801やAFE802もマイコン806を介して制御される。
このように、本発明に係る画像処理IC804を搭載した電子機器800であれば、既存回路を大幅に設計変更することなく、入力画像データに対して適切な画像補正処理(霧消し処理)を施したり、アナログコンポジットビデオ出力を行うことが可能となる。
なお、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。