発明の目的および利点は、請求の範囲に具体的に記載された構成要素および組み合わせによって実現され達成される。
前述の一般的な説明および以下の詳細な説明は、典型例および説明のためのものであって、本発明を限定するためのものではない。
本発明の非限定的な実施形態を、図面を参照して説明する。図面において、同様のコンポーネントおよび素子には同じ参照番号が付されている。
図1は、実施形態による、カメラ装置または撮像装置10の概略的構成の例を示している。
カメラ装置10は、レンズ・ユニット12、赤外線フィルタ14、赤外線用の撮像器または赤外線検出器(IRID)16、アナログ信号増幅器(AMP)18、およびアナログ−ディジタル変換器(A/D)20を含んでいる。カメラ装置10は、さらに、制御部22、メモリ24、レベル補正器28、欠陥判定および欠陥置換部30およびフォーマット化画像データ生成器70を含んでいる。
制御部22は、メモリ24、検知素子レベル補正器28、欠陥判定および欠陥置換部30、およびフォーマット化画像データ生成器70等を制御する。レベル補正器28、欠陥判定および欠陥置換部30、およびフォーマット化画像データ生成器70の一部は、メモリ25に格納されたプログラムに従って動作するディジタル信号プロセッサ(DSP)上に実装されてもよい。
赤外線用の撮像器または赤外線検出器16は、例えばマトリックス状に配置された赤外線用の検知素子のアレイを含んでいる。赤外線用の撮像素子またはデバイスは、検出対象の波長帯等に応じて異なる構造および材料を用いることができる。その材料は、例えば、低温で使用される温度分解能の高い水銀カドミウムテルル(HgCdTe)、または常温で使用されるボロメータであってもよい。赤外線用の撮像器16はコストが高い。従って、撮像器16の検知素子中に幾つかの欠陥があっても、その欠陥素子によって生成される欠陥画素値を他の正常な検知素子によって生成される画素値で補償または置換して、その撮像器16を使用することが望ましい。
しかし、ソフトウェアによって、欠陥素子のアドレスに対する置換用の正常な撮像素子のアドレスを決定する方式では、カメラ装置の使用を頻繁に中断して時間をかけて欠陥画素置換のための処理を行う必要がある。また、撮像素子またはデバイスのアドレスおよびフラグの処理に、ソフトウェアによって大記憶容量メモリを用いて一素子ずつ処理すると、そのメモリはアクセス遅延が大きいので、置換用の検知素子の決定までに長い時間を要する。
図2は、欠陥判定および欠陥置換部30の概略的な構成の例を示している。
欠陥判定および欠陥置換部30は、欠陥判定部32、欠陥置換アドレス生成部34、および画素置換制御部36を含んでいる。欠陥判定および欠陥置換部30は、メモリ24の、欠陥判定用メモリ42、欠陥置換メモリ44、およびフレーム画像メモリ46の各メモリ領域を使用する。メモリ24は、例えば、大容量のSRAMまたはSDRAM、等であってもよい。
カメラ装置10の出荷時および使用開始後に、操作者またはユーザは、最初に、カメラ装置10の赤外線用の撮像器16によって高温と低温または明と暗の2種類の基準画像プレートを撮像する。撮像器16は、アナログ増幅器22を介してアナログ−ディジタル変換器20にその高温と低温または明と暗を表す各検知素子の2種類のアナログ信号を受け取る。次いで、アナログ−ディジタル変換器20は、それぞれのアナログ信号をディジタル・データに変換して基準画像データとしてそれぞれメモリ24の基準画像メモリ46の領域に格納する。
レベル補正器28は、基準画像メモリ46の領域中の基準の高低温または明暗を表すその基準画像データを処理して、検知素子間の信号レベルのバラツキを補正するための補正係数を生成して、メモリ24の補正係数メモリ26の領域に格納する。そのために、レベル補正部28は、基準画像メモリ46の領域中の各検知素子の高温と低温または明と暗のレベル差を決定して欠陥判定用メモリ42に格納し、そのレベル差に応じて各検知素子ごとの補正係数を決定する。その補正係数の値は、各検知素子の高温と低温または明と暗の値に補正係数を乗算した補正後のレベル差が標準化されたレベル差になるような値であってもよく、例えば、各検知素子の高温と低温または明と暗のレベル差の逆数であってもよい。カメラ装置10の使用時に、赤外線用の撮像器16によって撮像されアナログ−ディジタル変換器26によって生成された画像データの各画素データに、対応するアドレス位置の対応する補正係数を乗算することによって、その画像データを補正することができる。
欠陥判定部32は、例えば、ディジタル信号プロセッサ(DSP)上に実装することができる。欠陥判定部32は、欠陥判定用メモリ42中の各検知素子の高温と低温または明と暗のレベル差を欠陥判定用メモリ42中の許容範囲を表すデータと比較して、画像データの各画素データについて欠陥かまたは正常かを判定する。欠陥判定部32は、n行m列の検知素子または画素のそれぞれのアドレス位置に、対応する欠陥フラグ(0/1)を欠陥判定用メモリ42に格納する。例えば、欠陥フラグ0は欠陥が無く正常であることを表し、欠陥フラグ1は欠陥を表す。
検知素子の欠陥の有無を判定するために、欠陥判定部32は、メモリ24の基準画像メモリ25における各検知素子の高温と低温または明と暗のレベル差が、メモリ24の欠陥判定用メモリ4に格納されている許容範囲内にあるかどうかを判定してもよい。或る検知素子のレベル差が許容範囲より大きいか小さい場合に、欠陥判定部32は、その検知素子を欠陥と判定して、メモリ25の欠陥置換メモリ44のその検知素子のアドレス位置の欠陥フラグに値1(欠陥有)を書き込む。その許容範囲は、例えば、全検知素子に対する高温と低温または明と暗のレベル差の平均値と上側許容値(正)の和で表される上側の閾値と、その平均値と下側許容値(負)の和で表される下側の閾値とによって、規定されるものであってもよい。
欠陥素子の検出は、これに限定されることなく、例えば、特開平9−163228号公報および特開平10−341375号公報、等に開示された公知の方法によって行うことができる。ここで、これらの文献を参照により組み込む。
次いで、欠陥置換アドレス生成部34は、その欠陥素子のアドレスと置換後の検知素子のアドレスを決定する。欠陥置換アドレス生成部34は、例えば、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、またはLSI(Large Integrated Circuit)のような回路上にハードウェア形態で実装することができる。欠陥置換アドレス生成部34は、欠陥置換メモリ44中の欠陥素子のアドレスに関する情報に従って、置換候補の検知素子のアドレスを生成して、欠陥素子のアドレスから置換後の正常な検知素子のアドレスへのマップ(写像)を表す情報を欠陥置換メモリ44に格納する。
その後、カメラ装置10の使用開始後、画素置換制御部36は、欠陥置換メモリ44内の置換アドレス・マップに従って、レベル補正部28からのレベル補正後の画像データに対して、欠陥素子の画素データを置換用の検知素子の画素データで置換するよう処理する。画素置換制御部36は、その処理した画素データの画像フレームを組み立ててフレーム画像メモリ46に格納する。
フレーム画像メモリ46は、画像フレームを画像フォーマット生成部70へ供給する。次いで、フォーマット化画像生成部70は、その置換処理後のフレームの画像データをフォーマット化して、フォーマット化された画像データを生成する。
フォーマット化画像データ生成器70からの出力画像データは、例えば、入室退出者の監視のために記録装置、モニタ装置、警報装置(図示せず)等に供給される。
図3は、欠陥置換メモリ44に格納されている欠陥アドレス・マップの例を示している。
図3の欠陥アドレス・マップは、n行m列の検知素子のアレイにおいて欠陥素子のアドレスを置換用または置換先の検知素子のアドレスにマッピングするためのテーブルである。そのマッピングによって、欠陥素子の画素データが、置換用または置換先の検知素子の画素データで置換される。
図3の欠陥アドレス・マップは、n行m列の検知素子のアレイに対して、置換されるまたは置換前の検知素子のアドレス(行、列)、欠陥の有無を表す欠陥フラグ(0/1)、置換完了を表す処理完了フラグ(0/1)、置換後または置換先の検知素子のアドレス(行、列)を含んでいる。図3において、アドレス(1,1)の欠陥フラグ1の検知素子の画素データについて、アドレス(0,1)の検知素子の画素データで置換され、その置換処理の完了が完了フラグ1によって表される場合の例が、示されている。
図4Aは、着目素子Xに対する近隣の置換候補の検知素子の優先度1〜8の配置の例を示している。ここで、優先度の数値が小さいほど、優先度が高いものとする。
図4Bは、各フレーム番号0〜8における図4Aの各着目素子Xのアドレス(0,0)に対する置換候補の検知素子の相対的なオフセット・アドレスまたは差分のアドレス加算値を表すオフセット・アドレス生成テーブルを示している。
図4Aにおいて、第i行、第j列すなわちアドレス(i,j)の着目素子Xが欠陥でなく正常であった場合は、当然、検知素子Xの画素は置換されない。検知素子Xの画素自体は、最高の優先度0の置換候補の検知素子と見ることもできる。しかし、第i行、第j列すなわちアドレス(i,j)の着目素子Xが欠陥であった場合は、同じ行で1列前のアドレス(i,j−1)の検知素子が優先度1の置換候補の検知素子となる。アドレス(i,j−1)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i,j−1)の検知素子の画素に置換される。
しかし、アドレス(i,j−1)の検知素子も欠陥であった場合、同じ行で1列後のアドレス(i,j+1)の検知素子が優先度2の置換候補の検知素子となる。アドレス(i,j+1)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i,j+1)の検知素子の画素に置換される。
アドレス(i,j+1)の検知素子も欠陥であった場合、検知素子Xの1行前で検知素子Xと同じ列のアドレス(i−1,j)の検知素子が優先度3の検知素子となる。アドレス(i−1,j)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i−1,j)の検知素子の画素に置換される。
アドレス(i−1,j)の検知素子も欠陥であった場合、検知素子Xの1行後で検知素子Xと同じ列のアドレス(i+1,j)の検知素子が優先度4の検知素子となる。アドレス(i+1,j)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i+1,j)の検知素子の画素に置換される。
アドレス(i+1,j)の検知素子も欠陥であった場合、検知素子Xと同じ行で2列前のアドレス(i,j−2)の検知素子が優先度5の置換候補の検知素子となる。アドレス(i,j−2)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i,j−2)の検知素子の画素に置換される。
アドレス(i,j−2)の検知素子も欠陥であった場合、検知素子Xと同じ行で2列後のアドレス(i,j+2)の検知素子が優先度6の置換候補の検知素子となる。アドレス(i,j+2)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i,j+2)の検知素子の画素に置換される。
アドレス(i,j+2)の検知素子も欠陥であった場合、検知素子Xの2行前で検知素子Xと同じ列のアドレス(i−2,j)の検知素子が優先度7の検知素子となる。アドレス(i−2,j)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i−2,j)の検知素子の画素に置換される。
アドレス(i−1,j)の検知素子も欠陥であった場合、検知素子Xの2行後で検知素子Xと同じ列のアドレス(i+2,j)の検知素子が優先度8の検知素子となる。アドレス(i+2,j)の検知素子が正常であった場合は、アドレス(i,j)の検知素子Xの画素はアドレス(i+2,j)の検知素子の画素に置換される。
アドレス(i+2,j)の検知素子も欠陥であった場合、ここでは優先度8より低い優先度は設定されていないので、アドレス(i,j)の検知素子Xの画素は置換されないようにしてもよい。代替形態として、優先度8より低い優先度の別の検知素子を設定して、それを置換候補として同様に処理しもよい。
図4Bのオフセット・アドレス生成テーブルにおいて、フレーム0に対して、オフセット・アドレスは(±0,±0)である。従って、欠陥置換アドレス生成部34は、アドレス(i,j)=(i±0,j±0)の着目素子Xについて正常か欠陥かを確認する処理を行う。
フレーム1に対して、オフセット・アドレスは(±0,−1)である。従って、欠陥置換アドレス生成部34は、アドレス(i,j)の着目素子Xの1列前のアドレス(i,j−1)について正常か欠陥かを確認する処理を行う。
フレーム2に対して、オフセット・アドレスは(±0,+1)である。従って、欠陥置換アドレス生成部34は、アドレス(i,j)の着目素子Xの1列後のアドレス(i,j+1)について正常か欠陥かを確認する処理を行う。
フレーム3に対して、オフセット・アドレスは(−1,±0)である。従って、欠陥置換アドレス生成部34は、アドレス(i,j)の着目素子Xの1行前のアドレス(i−1,j)について正常か欠陥かを確認する処理を行う。
フレーム4に対して、オフセット・アドレスは(+1,±0)である。従って、欠陥置換アドレス生成部34は、アドレス(i,j)の着目素子Xの1行後のアドレス(i+1,j)について正常か欠陥かを確認する処理を行う。
同様に、フレーム5に対して、オフセット・アドレスは(±0,−2)である。フレーム6に対して、オフセット・アドレスは(±0,+2)である。フレーム7に対して、オフセット・アドレスは(−2,±0)である。フレーム8に対して、オフセット・アドレスは(+2,±0)である。欠陥置換アドレス生成部34は、アドレス(i,j)の着目素子Xに対してそれぞれのオフセット・アドレス(Δi,Δj)を加算したアドレス(i+Δi,j+Δj)について正常か欠陥かを確認する処理を行う。
図5は、欠陥置換アドレス生成部34の動作を説明するための、赤外線用の撮像器16の検知素子のアレイにおける欠陥素子の配置の例を示している。この場合、赤外線用の撮像器16が5×5のマトリックスの検知素子のアレイを含み、暗い陰影で示されたアドレス(0,0)、(0,1)、(0,2)、(0,3)、(3,4)、(4,3)および(4,4)の検知素子が欠陥であったと仮定する。この場合、図3のアドレス・マップにおいて、アドレス(0,0)、(0,1)、(0,2)、(0,3)、(3,4)、(4,3)および(4,4)の欠陥フラグに値1が設定される。
図6は、例えばFPGA、ASICまたはLSI等で実装可能な欠陥置換アドレス生成部34の概略的構成の例を示している。
欠陥置換アドレス生成部34は、フレーム・カウンタ302、加算器306、アドレス・カウンタ308、および欠陥フラグ・メモリまたはレジスタ312(、442)を含んでいる。欠陥置換アドレス生成部34は、欠陥置換メモリ44中の、オフセット・アドレス生成テーブル404、欠陥フラグ・メモリ442、処理完了フラグ・メモリ444、および置換アドレス・メモリ446の各領域を使用する。欠陥フラグ・メモリ442、処理完了フラグ・メモリ444および置換アドレス・メモリ446の各領域は、図3のアドレス・マップ中のそれぞれ対応する部分の情報を格納する。欠陥置換アドレス生成部34は、欠陥フラグ・メモリ442から欠陥フラグを読み出しながらその内部の欠陥フラグ・メモリまたはレジスタ312にコピーして保持する。代替形態として、欠陥フラグ・メモリ312に加えて、欠陥フラグ・メモリ442も、欠陥置換メモリ44のアドレス・マップから、各アドレスに対する欠陥フラグを読み込んで格納する欠陥置換アドレス生成部34内のレジスタであってもよい。
欠陥置換アドレス生成部34は、制御部22からの制御信号に従って動作を開始する。フレーム・カウンタ302は、制御部22からの起動信号に従って動作を開始し、それぞれの優先度に対応する置換処理のためのフレーム番号0〜8を順次生成する。欠陥置換メモリ44中のオフセット・アドレス生成テーブル404は、現在のフレーム番号に対応するオフセット・アドレスまたは差のアドレスを加算器306に供給する。アドレス・カウンタ308はアドレス発生器として機能する。アドレス・カウンタ308は、検知素子アレイの全てのアドレス(0,0)〜(n,m)のシーケンス(一連の連続的な順次のアドレス)を生成する。加算器306は別のアドレス発生器として機能する。加算器306は、アドレス・カウンタ308またはその出力アドレス・シーケンスに同期して、アドレス・カウンタ308の各出力アドレスに、現在のフレーム番号に対するオフセット・アドレスを加算して、その和のアドレスのシーケンス(一連の連続的な順次のアドレス)を生成する。
欠陥置換アドレス生成部34は、さらに、ノット回路320、334、337および338、アンド回路342、オア回路346、フレーム判定部352、置換数判定部354、およびオア回路360を含んでいる。欠陥置換アドレス生成部34において、制御部22からの制御信号に従って、スイッチSW1、SW2a、SW2b、SW3によって、その論理構成(configuration)が切り換えられる。欠陥置換アドレス生成部34の同様の機能を、別の論理構成で実現できることは明らかである。
図7Aは、制御部22によって設定される、図6の欠陥置換アドレス生成部34におけるフレーム0に対する論理構成を示している。この場合、図6の要素334、336、337、338、342および346は使用されない。
図8A〜8Dは、図7Aの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム0に対するタイムチャートを示している。
図7Aを参照すると、欠陥置換アドレス生成部34は、図8A〜8Dのタイムチャートに従って、各アドレスの検知素子が欠陥であるかどうか、即ちその各アドレスの検知素子の画素を置換候補の別の検知素子の画素で置換する必要があるかどうかを判定する。或る検知素子が正常な素子で、置換を必要としない場合は、その検知素子に対して置換のための処理の完了を表す値1を、処理完了フラグ・メモリ444中の処理完了フラグに設定する。一方、或る検知素子が欠陥素子で、置換を必要としない場合は、その検知素子に対して置換のための処理の未完了を表す値0を、処理完了フラグ・メモリ444中の処理完了フラグに設定する。
その置換処理のために、制御部22は、フレーム0に対して、欠陥置換メモリ44中の欠陥フラグ・メモリ442の領域から、アドレスのシーケンスに対する検知素子の一連の欠陥フラグまたは情報(0/1)を順次読み込み、欠陥フラグ・メモリ312に格納する。制御部22は、さらに、アドレス・シーケンスに対するその一連の欠陥フラグを内部の欠陥フラグ・メモリ(442)に格納してもよい。
アドレス・カウンタ308は、図8Aに示されているように、検知素子のアレイの(行,列)のアドレス(0,0)、(0,1)、(0,2)、...(n,m)のシーケンスを順次生成する。アドレス・カウンタ308は、欠陥フラグ・メモリ442、処理完了フラグ・メモリ444、および置換アドレス・メモリ446の各アドレス入力にそのアドレスのシーケンスを順次供給する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(n,m)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム1(図4B)に対する置換候補アドレスのオフセット・アドレス(±0,±0)を加算する。従って、加算器306は、アドレス・カウンタ308からのものと同じアドレス(0,0)〜(n,m)のシーケンスを置換候補の検知素子のアドレスとして順次生成する。加算器306は、生成したアドレスを、欠陥フラグ・メモリ312のアドレス入力、および置換アドレス・メモリ446のデータ入力に供給する。
欠陥フラグ・メモリ442は、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をノット回路320の入力に供給する。欠陥フラグは、欠陥を有する検知素子に対して値1を、欠陥の無い正常な検知素子に対して値0を有する。従って、欠陥フラグ・メモリ442は、図5の検知素子のアレイについて、図8Bに示されているように、アドレス(0,0)、(0,1)、(0,2)、(0,3)、(3,4)、(4,3)および(4,4)に対して値1を欠陥フラグとしてノット回路320の入力に供給する。欠陥フラグ・メモリ442は、その他のアドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して正常を表す値0を欠陥フラグとしてノット回路320の入力に供給する。
ノット回路320は、各アドレスに対して、欠陥フラグの値(0/1)を反転させた値(1/0)を、処理完了を表すデータとして処理完了フラグ・メモリ444に供給する。ここで、処理完了フラグの値1は処理完了を表し、値0は処理の未完了を表す。この場合、ノット回路320は、アドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して、置換が必要なく、または置換のための処理が完了したことを表す処理完了フラグまたはデータとして、その値(1/0)を処理完了フラグ・メモリ444に供給する。
フレーム0では、全てのアドレスに対して、処理完了フラグ・メモリ444および置換アドレス・メモリ446に対して、書き込みイネーブル信号(1)が供給される。処理完了フラグ・メモリ444は、各アドレスに対して、欠陥フラグの値(0/1)を反転させた値を、置換処理の完了を表す処理完了フラグとして処理完了フラグ・メモリ444に格納する。この場合、処理完了フラグ・メモリ444において、図5の検知素子のアレイについて、アドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して、処理完了フラグに値1が設定され、アドレス(0,0)〜(0,3)、(3,4)、(4,3)〜(4,4)に対して、処理完了フラグにおいて値0が維持される。処理完了フラグを値1に設定するアドレスについて、置換アドレス・メモリ446には、置換後の検知素子のアドレスに値が書き込まれず未設定に維持されてもよい。代替形態として、処理完了フラグを値1に設定するアドレスについて、置換アドレス・メモリ446には、置換後の検知素子のアドレスとして置換前のものと同じアドレスが書き込まれてもよい。この場合、置換前のアドレスの検知素子は最高の優先度0の置換候補の検知素子であると見ることができる。
また、ノット回路320からの処理完了フラグ(1/0)は、全アドレス(0,0)〜(n,m)に対する置換処理を完了したアドレスの数を判定する処理数判定部354に供給される。図5の検知素子のアレイについて、置換が不要なまたは置換処理を完了したアドレスの数は18である。全ての検知素子が正常で欠陥がないかまたは置換処理を完了したアドレスの数が全てのアドレスの総数(n+1)×(m+1)(例えば、25)と等しい場合に、処理数判定部354は出力1をオア回路360の1つの入力に供給する。それによって所定の全ての優先度(例えば、1〜8)について置換処理が完了したか否かに関係なく、全ての検知素子について置換処理が完了したときに、図7Bのアンド回路342を含む論理による置換処理を完了させることができる。一方、置換処理を完了したアドレスの数が全てのアドレスの総数(n+1)×(m+1)(例えば、25)と等しくないまたはその総数に満たない場合は、処理数判定部354は処理未完了を表す出力0をオア回路360の1つの入力に供給する。
フレーム判定部352は、フレーム・カウンタ302からのフレーム番号が最後のフレーム番号(例えば、8)に等しいかどうかを判定する。フレーム・カウンタ302からのフレーム番号が最後のフレーム番号または優先度(例えば、8)に等しい場合には、検知素子アレイ中の全ての検知素子について置換処理が完了したか否かに関係なく、フレーム判定部352は出力1をオア回路360の別の入力に供給する。それによって、全ての検知素子について置換処理が完了したか否かに関係なく、所定の全ての優先度(例えば、1〜8)について置換処理が完了したときに、図7Bのアンド回路342を含む論理による置換処理を完了させることができる。
オア回路360は、処理数判定部354およびフレーム判定部352からの入力の論理和をとって出力として生成する。従って、検知素子アレイ中の全ての検知素子について置換処理が完了したか、またはフレーム番号が最後のフレーム番号に等しい場合に、オア回路360は置換処理完了を表す値1を置換処理完了フラグとして制御部22に供給する。その双方の入力が値0の場合、オア回路360は、置換処理の未完了を表す値0を置換処理完了フラグとして制御部22に供給する。制御部22は、置換処理完了フラグ1に応答して、画素を置換する処理を実行できるようになる。
図7Bは、制御部22によって設定される、図6の欠陥置換アドレス生成部34におけるフレーム1〜8に対する論理構成を示している。この場合、図6の要素320は使用されない。
図9A〜9Gは、図7Bの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム1に対するタイムチャートを示している。
図7Bを参照すると、アドレス・カウンタ308は、図9Aに示されているように、フレーム1に対して、図5のアドレス(0,0)、(0,1)、(0,2)、...(n,m)のシーケンスを順次生成する。アドレス・カウンタ308は、欠陥フラグ・メモリ442、処理完了フラグ・メモリ444、および置換アドレス・メモリ446の各アドレス入力にそのアドレスのシーケンスを順次供給する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(n,m)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム1(図4B)に対する置換候補アドレスのオフセット・アドレス(±0,−1)を加算する。加算器306は、置換候補の検知素子のアドレス(0,−1)、(0,0)、(0,1)、...、(0,m−1)、(1,−1)、...(n,m−1)のシーケンスを順次生成する。この場合、加算器306は、図9Cに示されているように、置換候補の検知素子のアドレス(0,−1)、(0,0)、(0,1)、...、(0,3)、(1,−1)、...(4,3)のシーケンスを順次生成する。加算器306は、生成したアドレスを、欠陥フラグ・メモリ312のアドレス入力、および置換アドレス・メモリ446のデータ入力に供給する。
欠陥フラグ・メモリ442は、図9Bに示されているように、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をアンド回路342の1つの入力にそのまま供給する。従って、欠陥フラグ・メモリ442は、図9Bに示されているように、アドレス(0,0)、(0,1)、(0,2)、(0,3)、(3,4)、(4,3)、(4,4)に対して値1を欠陥フラグとしてアンド回路342の1つの入力に供給する。欠陥フラグ・メモリ442は、その他のアドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して正常を表す値0を欠陥フラグとしてアンド回路342の1つの入力に供給する。
欠陥フラグ・メモリ312は、図9Dに示されているように、加算器306からの各アドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)を置換候補欠陥フラグとしてノット回路334の入力に供給する。この場合、欠陥フラグ・メモリ312は、図9Aの置換前の検知素子のアドレス(0,0)、(1,0)〜(4,3)に対して、加算器306からの図9Cのアドレス(0,−1)、(1,−1)〜(1,3)、(2,−1)〜(2,3)、(3,−1)〜(3,3)、(4,−1)〜(4,2)に対する置換候補の検知素子の欠陥フラグ値0をノット回路334の入力に供給する。ノット回路334は、指定されたアドレスに対する欠陥フラグ(0/1)を反転させた値(1/0)を置換候補非欠陥フラグとしてアンド回路342の別の入力に供給する。この場合、ノット回路334は、図9Aの置換前の検知素子のアドレス(0,0)、(1,0)〜(4,3)に対して、図9Cのアドレス(0,−1)、(1,−1)〜(4,2)に対する置換候補の検知素子が非欠陥素子であることを表す欠陥フラグ0を反転させた値1を、置換候補非欠陥フラグとしてアンド回路342の入力に供給する。
アドレス範囲判定部336は、加算器306からのアドレス(0,−1)〜(n,m−1)が検知素子のアドレス(0,0)〜(n,m)の範囲内であるかどうかを判定して、その範囲内の加算器306からのアドレスに対して値0を、範囲外の加算器306からのアドレスに対して値1を生成する。この場合、アドレス範囲判定部336は、その範囲内のアドレス(0,0)〜(0,3)、(1,0)〜(1,3)、(2,0)〜(2,3)、(3,0)〜(3,3)、(4,0)〜(4,3)に対して値0を生成する。また、アドレス範囲判定部336は、その範囲外のアドレス(0,−1)、(1,−1)、(2,−1)、(3,−1)、(4,−1)に対して値1を生成する。アドレス範囲判定部336は、その判定結果の値(0/1)をノット回路337の入力に供給する。ノット回路337は、その判定結果の値を反転させた値(1/0)をアンド回路342のさらに別の入力に供給する。この場合、ノット回路337は、その範囲内のアドレス(0,0)〜(0,3)、(1,0)〜(1,3)、(2,0)〜(2,3)、(3,0)〜(3,3)、(4,0)〜(4,3)に対して値1を生成する。また、ノット回路337は、その範囲外のアドレス(0,−1)、(1,−1)、(2,−1)、(3,−1)、(4,−1)に対して値0を生成する。
図9Eに示されているように、処理完了フラグ・メモリ444は、アドレス・カウンタ308によって指定されたアドレスのシーケンスに対する検知素子の一連の処理完了フラグ(0/1)をノット回路338の入力およびオア回路346の1つの入力に供給する。この場合、処理完了フラグ・メモリ444は、アドレス・カウンタ308からの図9Aのアドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して処理完了フラグ値1をノット回路338の入力に供給する。また、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレス(0,0)〜(0,3)、(3,4)、(4,3)〜(4,4)に対して、処理の未完了を表す処理完了フラグ値0をノット回路338の入力に供給する。ノット回路338は、処理完了フラグ値を反転させた値(0/1)をアンド回路342のさらに別の入力に供給する。この場合、ノット回路338は、アドレス・カウンタ308からの図9Aのアドレス(0,4)〜(3,3)、(4,0)〜(4,2)に対して出力0を生成する。また、ノット回路338は、アドレス・カウンタ308からのアドレス(0,0)〜(0,3)、(3,4)、(4,3)〜(4,4)に対して、出力1を生成する。
アンド回路342は、その4つの入力の論理積をその出力として生成する。アンド回路342は、(a)アドレス・カウンタ308からのアドレスの検知素子に欠陥が有り、(b)オフセットまたは優先位置の置換候補の検知素子が非欠陥素子であり、(c)置換候補の検知素子のアドレスが実際のアドレス範囲内にあり、かつ(d)アドレス・カウンタ308からのアドレスに対する処理完了フラグが未完了を示す場合に、出力値1を生成する。それ以外の場合は、アンド回路342は出力値0を生成する。この場合、アンド回路342は、図9Fに示されているように、アドレス・カウンタ308からのアドレス(3,4)、(4,3)に対して書き込みイネーブル信号1を出力として生成する。書き込みイネーブル信号1は、処理完了フラグ・メモリ444に対する書き込みデータとしての処理完了フラグの値1でもある。
アンド回路342の出力が値1の場合、処理完了フラグ・メモリ444に書き込みイネーブル信号1と書き込みフラグ・データ1が供給され、置換アドレス・メモリ446に書き込みイネーブル信号1が供給される。それによって、アドレス・カウンタ308からの図9Aの対応するアドレス位置の処理完了フラグ・メモリ444内の処理完了フラグが値0から値1に変更される。フレーム1〜8の順に処理する場合には、そのアドレスの処理完了フラグ・メモリ444の処理完了フラグは、その後、変更されたりまたは上書きされることがない。この場合、処理完了フラグ・メモリ444において、アドレス(3,4)、(4,3)に対して処理完了フラグに値1が追加的に書き込まれる。また、加算器306からの図9Cの置換候補の検知素子のアドレスが置換後(置換先)の検知素子のアドレスのデータとして、アドレス・カウンタ308からの図9Aの置換前の検知素子のアドレスと対応付けて置換アドレス・メモリ446に格納される。この場合、置換アドレス・メモリ446において、置換前の検知素子のアドレス(3,4)、(4,3)のそれぞれに対応付けて置換後の検知素子のアドレス(3,3)、(4,3)が書き込まれる。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みフラグ・データまたはイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図9Gに示されているように、その2つ入力の論理和を書込み済みの処理完了フラグとして出力に供給する。この場合、オア回路346は、アドレス(0,4)〜(4,3)に対して書き込み済みの処理完了フラグ値1を生成する。
オア回路346からの書き込み済み処理完了フラグは、全アドレス(0,0)〜(n,m)に対する置換処理を完了したアドレスの数を判定する処理数判定部354に供給される。この場合、置換処理を完了したアドレスの数は20である。置換処理を完了したアドレスの数が全てのアドレスの総数(n+1)×(m+1)(例えば、25)と等しい場合に、処理数判定部354は出力1をオア回路360の1つの入力に供給する。一方、置換処理を完了したアドレスの数が全てのアドレスの総数(例えば、25)と等しくないまたはその総数に満たない場合は、処理数判定部354は処理未完了を表す出力0をオア回路360の1つの入力に供給する。
フレーム判定部352は、フレーム・カウンタ302からのフレーム番号が最後のフレーム番号(例えば、8)に等しいかどうかを判定する。フレーム番号が最後のフレーム番号に等しい場合に、フレーム判定部352は、処理完了を表す出力1をオア回路360の別の入力に供給する。一方、フレーム番号が最後のフレーム番号に等しくない場合は、フレーム判定部352は、処理未完了を表す出力0をオア回路360のその別の入力に供給する。
オア回路360は、処理数判定部354およびフレーム判定部352からの入力の論理和をとって、いずれか一方が処理完了を表す値1の場合に、置換処理完了を表す値1を置換処理完了フラグとして制御部22に供給する。一方、その双方の入力が値0の場合、オア回路360は、置換処理の未完了を表す値0を置換処理完了フラグとして制御部22に供給する。制御部22は、置換処理完了フラグ1に応答して、画素を置換する処理を実行できるようになる。
図10A〜10Gは、図7Bの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム2に対するタイムチャートを示している。
図7Bを参照すると、アドレス・カウンタ308は、図10Aに示されているように、フレーム2に対して、図9Aと同様に、図5のアドレス(0,0)〜(n,m)のシーケンスを順次生成する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(n,m)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム2(図4B)に対する置換候補アドレスのオフセット・アドレス(±0,+1)を加算する。加算器306は、置換候補の検知素子のアドレス(0,1)、(0,2)、...、(m+1)、(1,1)、...(n,m+1)のシーケンスを順次生成する。この場合、加算器306は、図10Cに示されているように、置換候補の検知素子のアドレス(0,1)、(0,2)、...、(0,5)、(1,1)、...(4,5)のシーケンスを順次生成する。
欠陥フラグ・メモリ442は、図9Bの場合と同様に、図10Bに示されているように、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をアンド回路342の1つの入力にそのまま供給する。
欠陥フラグ・メモリ312は、図10Dに示されているように、加算器306からの各アドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)を置換候補欠陥フラグとしてノット回路334の入力に供給する。この場合、欠陥フラグ・メモリ312は、図10Aの置換前の検知素子のアドレス(0,3)〜(3,2)、(3,4)〜(4,1)、(4,4)に対して、加算器306からの図10Cのアドレス(0,4)〜(3,3)、(3,5)〜(4,2)、(4,5)に対する置換候補の検知素子の欠陥フラグ値0をノット回路334の入力に供給する。ノット回路334は、指定されたアドレスに対する欠陥フラグ(1/0)を反転させた値(0/1)を置換候補非欠陥フラグとしてアンド回路342の別の入力に供給する。この場合、ノット回路334は、置換前の検知素子のアドレス(0,3)〜(3,2)、(3,4)〜(4,1)、(4,4)に対して、アドレス(0,4)〜(3,3)、(3,5)〜(4,2)、(4,5)に対する置換候補の検知素子が非欠陥素子であることを表す欠陥フラグ0を反転させた値1を、置換候補非欠陥フラグとしてアンド回路342の入力に供給する。
アドレス範囲判定部336は、加算器306からのアドレス(0,1)〜(n,m+1)が検知素子のアドレス(0,0)〜(n,m)の範囲であるかどうかを判定して、その範囲内の加算器306からのアドレスに対して値0を、範囲外の加算器306からのアドレスに対して値1を生成する。この場合、アドレス範囲判定部336は、その範囲内のアドレス(0,1)〜(0,4)、(1,1)〜(1,4)、(2,1)〜(2,4)、(3,1)〜(3,4)、(4,1)〜(4,4)に対して値0を生成する。また、アドレス範囲判定部336は、その範囲外のアドレス(0,5)、(1,5)、(2,5)、(3,5)、(4,5)に対して値1を生成する。アドレス範囲判定部336は、その判定結果の値(0/1)をノット回路337の入力に供給する。ノット回路337は、その判定結果の値を反転させた値(1/0)をアンド回路342のさらに別の入力に供給する。
図10Eに示されているように、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレスのシーケンスに対する検知素子の一連の処理完了フラグ(0/1)をノット回路338の入力およびオア回路346の1つの入力に供給する。この場合、処理完了フラグ・メモリ444は、アドレス・カウンタ308からの図10Aのアドレス(0,4)〜(4,3)に対して処理完了フラグ値1をノット回路338の入力に供給する。また、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレス(0,0)〜(0,3)、(4,4)に対して、処理の未完了を表す処理完了フラグ値0をノット回路338の入力に供給する。ノット回路338は、処理完了フラグを反転させた値(0/1)をアンド回路342のさらに別の入力に供給する。
アンド回路342は、その4つの入力の論理積をとって、図9Fの場合と同様に、図10Fに示されているようにその出力を生成する。この場合、アンド回路342は、アドレス・カウンタ308からのアドレス(0,3)に対して書き込みイネーブル信号1を出力として生成する。
アンド回路342の出力が値1の場合、処理完了フラグ・メモリ444に書き込みイネーブル信号1と書き込みフラグ・データ1が供給され、置換アドレス・メモリ446に書き込みイネーブル信号1が供給される。アドレス・カウンタ308からの図10Aの対応するアドレス位置の処理完了フラグ・メモリ444内の処理完了フラグが0から1に変更される。この場合、処理完了フラグ・メモリ444において、アドレス(0,3)に対して処理完了フラグ1が追加的に書き込まれる。また、加算器306からの図10Cの置換候補の検知素子のアドレスが置換後の検知素子のアドレスのデータとして、アドレス・カウンタ308からの図10Aの置換前の検知素子のアドレスと対応付けて置換アドレス・メモリ446に格納される。この場合、置換アドレス・メモリ446において、置換前の検知素子のアドレス(0,3)に対応付けて置換後の検知素子のアドレス(0,4)が書き込まれる。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みフラグ・データまたはイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図10Gに示されているように、その2つ入力の論理和を書込み済み処理完了フラグとして出力に供給する。この場合、オア回路346は、アドレス(0,3)〜(4,3)に対して書き込み済みの処理完了フラグ値1を生成する。欠陥置換アドレス生成部34は、フレーム2に対するその他の処理について、フレーム1に対する処理と同様に動作する。
図11A〜11Gは、図7Bの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム3に対するタイムチャートを示している。
アドレス・カウンタ308は、図11Aに示されているように、フレーム3に対して、図9Aと同様に、図5のアドレス(0,0)〜(n,m)のシーケンスを順次生成する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(n,m)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム2(図4B)に対する置換候補アドレスのオフセット・アドレス(−1,±0)を加算する。この場合、加算器306は、図11Cに示されているように、置換候補の検知素子のアドレス(−1,0)、(−1,0)、...、(−1,4)、(0,0)、...(3,4)のシーケンスを順次生成する。
欠陥フラグ・メモリ442は、図9Bの場合と同様に、図11Bに示されているように、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をアンド回路342の1つの入力にそのまま供給する。
欠陥フラグ・メモリ312は、図11Dに示されているように、加算器306からの各アドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)を置換候補欠陥フラグとしてノット回路334の入力に供給する。この場合、欠陥フラグ・メモリ312は、置換前の検知素子のアドレス(0,0)〜(0,4)、(1,4)〜(4,3)に対して、加算器306からの図11Cのアドレス(−1,0)〜(−1,4)、(0,4)〜(3,3)に対する置換候補の検知素子の欠陥フラグ値0をノット回路334の入力に供給する。
アドレス範囲判定部336は、この場合、加算器306からのアドレス(−1,0)〜(3,4)が検知素子のアドレス(0,0)〜(4,4)の範囲であるかどうかを判定して、その範囲内の加算器306からのアドレスに対して値0を、範囲外の加算器306からのアドレスに対して値1を生成する。アドレス範囲判定部336は、その範囲内のアドレス(0,0)〜(3,4)に対して値0を生成する。また、アドレス範囲判定部336は、その範囲外のアドレス(−1,0)〜(−1,4)に対して値1を生成する。
図11Eに示されているように、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレスのシーケンスに対する検知素子の一連の処理完了フラグ(0/1)をノット回路338の入力に供給する。この場合、処理完了フラグ・メモリ444は、アドレス・カウンタ308からの図11Aのアドレス(0,3)〜(4,3)に対して処理完了フラグ値1をノット回路338の入力に供給する。また、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレス(0,0)〜(0,2)、(4,4)に対して、処理の未完了を表す処理完了フラグ0をノット回路338の入力に供給する。
アンド回路342は、その4つの入力の論理積をとって、図9Fの場合と同様に、図11Fに示されているようにその出力を生成する。この場合、置換処理が完了していない欠陥素子と、欠陥のない正常な置換候補の検知素子との組み合わせは存在しないので、アンド回路342は書き込みイネーブル信号1を生成しない。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みフラグ・データまたはイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図11Gに示されているように、その2つ入力の論理和を書き込み済み処理完了フラグとして出力に供給する。欠陥置換アドレス生成部34は、フレーム3に対するその他の処理については、フレーム1に対する処理と同様に動作する。
図12A〜12Gは、図7Bの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム4に対するタイムチャートを示している。
図12Aに示されているように、フレーム4に対して、アドレス・カウンタ308は、図9Aと同様に、図5のアドレス(0,n)〜(4,m)のシーケンスを順次生成する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(n,m)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム4(図4B)に対する置換候補アドレスのオフセット・アドレス(+1,±0)を加算する。加算器306は、図12Cに示されているように、置換候補の検知素子のアドレス(1,0)、(1,1)、...、(1,4)、(2,0)、...(5,4)のシーケンスを順次生成する。
欠陥フラグ・メモリ442は、図9Bの場合と同様に、図12Bに示されているように、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をアンド回路342の1つの入力にそのまま供給する。
欠陥フラグ・メモリ312は、図12Dに示されているように、加算器306からの各アドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)を置換候補欠陥フラグとしてノット回路334の入力に供給する。この場合、欠陥フラグ・メモリ312は、置換前の検知素子のアドレス(0,0)〜(3,3)、(3,0)〜(3,2)、(4,0)〜(4,4)に対して、加算器306からの図12Cのアドレス(1,0)〜(3,3)、(4,0)〜(4,2)、(5,0)〜(5,4)に対する置換候補の検知素子の欠陥フラグ値0をノット回路334の入力に供給する。
アドレス範囲判定部336は、加算器306からのアドレス(1,0)〜(5,4)が検知素子のアドレス(0,0)〜(4,4)の範囲であるかどうかを判定して、その範囲内の加算器306からのアドレスに対して値0を、範囲外の加算器306からのアドレスに対して値1を生成する。この場合、アドレス範囲判定部336は、その範囲内のアドレス(1,0)〜(4,4)に対して値0を生成する。また、アドレス範囲判定部336は、その範囲外のアドレス(5,0)〜(5,4)に対して値1を生成する。
図12Eに示されているように、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレスのシーケンスに対する検知素子の一連の処理完了フラグ(0/1)をノット回路338の入力およびオア回路346の1つの入力に供給する。この場合、処理完了フラグ・メモリ444は、アドレス・カウンタ308からの図12Aのアドレス(0,3)〜(4,3)に対して処理完了フラグ1をノット回路338の入力に供給する。また、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレス(0,0)〜(0,2)、(4,4)に対して、処理の未完了を表す処理完了フラグ0をノット回路338の入力に供給する。
アンド回路342は、その4つの入力の論理積をとって、図9Fの場合と同様に、図12Fに示されているようにその出力を生成する。この場合、アンド回路342は、アドレス・カウンタ308からのアドレス(0,0)〜(0,2)に対して書き込みイネーブル信号1を出力として生成する。
アンド回路342の出力が値1の場合、処理完了フラグ・メモリ444に書き込みイネーブル信号1と書き込みフラグ・データ1が供給され、置換アドレス・メモリ446に書き込みイネーブル信号1が供給される。アドレス・カウンタ308からの図12Aの対応するアドレス位置の処理完了フラグ・メモリ444内の処理完了フラグが0から1に変更される。この場合、処理完了フラグ・メモリ444において、アドレス(0,0)〜(0,2)に対して処理完了フラグ1が追加的に書き込まれる。また、加算器306からの図12Cの置換候補の検知素子のアドレスが置換後の検知素子のアドレスのデータとして、アドレス・カウンタ308からの図12Aの置換前の検知素子のアドレスと対応付けて置換アドレス・メモリ446に格納される。この場合、置換アドレス・メモリ446において、置換前の検知素子のアドレス(0,0)〜(0,2)に対応付けて置換後の検知素子のアドレス(1,0)〜(1,2)が書き込まれる。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みフラグ・データまたはイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図12Gに示されているように、その2つ入力の論理和を書き込み済み処理完了フラグとして出力に供給する。この場合、オア回路346は、アドレス(0,0)〜(4,3)に対して処理完了フラグ1を生成する。欠陥置換アドレス生成部34は、フレーム4に対するその他の処理について、フレーム1に対する処理と同様に動作する。
図13A〜13Gは、図7Bの論理構成の欠陥置換アドレス生成部34の動作に用いられる、フレーム5に対するタイムチャートを示している。
アドレス・カウンタ308は、図13Aに示されているように、フレーム5に対して、図9Aと同様に、図5のアドレス(0,0)〜(4,4)のシーケンスを順次生成する。
加算器306は、アドレス・カウンタ308からのアドレス(0,0)〜(4,4)のシーケンスに対して、オフセット・アドレス生成テーブル404のフレーム5(図4B)に対する置換候補アドレスのオフセット・アドレス(±0,−2)を加算する。加算器306は、図13Cに示されているように、置換候補の検知素子のアドレス(0,−2)、(0,−1)、...、(0,2)、(1,−2)、...(4,2)のシーケンスを順次生成する。
欠陥フラグ・メモリ442は、図9Bの場合と同様に、図13Bに示されているように、その生成され指定されたアドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)をアンド回路342の1つの入力にそのまま供給する。
欠陥フラグ・メモリ312は、図13Dに示されているように、加算器306からの各アドレスのシーケンスに対する検知素子の一連の欠陥フラグ(0/1)を置換候補欠陥フラグとしてノット回路334の入力に供給する。この場合、欠陥フラグ・メモリ312は、置換前の検知素子のアドレス(0,0)〜(0,1)、(1,0)〜(4,4)に対して、加算器306からの図13Cのアドレス(0,−2)〜(0,−1)、(1,−2)〜(4,2)に対する置換候補の検知素子の欠陥フラグ値0をノット回路334の入力に供給する。
アドレス範囲判定部336は、加算器306からのアドレス(0,−2)〜(4,2)が検知素子のアドレス(0,0)〜(4,4)の範囲であるかどうかを判定して、その範囲内の加算器306からのアドレスに対して値0を、範囲外の加算器306からのアドレスに対して値1を生成する。この場合、アドレス範囲判定部336は、その範囲内のアドレス(0,0)〜(0,2)、(1,0)〜(1,2)、(2,0)〜(2,2)、(3,0)〜(3,2)、(4,0)〜(4,2)に対して値0を生成する。また、アドレス範囲判定部336は、その範囲外のアドレス(0,−2)〜(0,−1)、(1,−2)〜(1,−1)、(2,−2)〜(2,−1)、(3,−2)〜(3,−1)、(4,−2)〜(4,−1)に対して値1を生成する。
図13Eに示されているように、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレスのシーケンスに対する検知素子の一連の処理完了フラグ(0/1)をノット回路338の入力に供給する。この場合、処理完了フラグ・メモリ444は、アドレス・カウンタ308からの図13Aのアドレス(0,0)〜(4,3)に対して処理完了フラグ値1をノット回路338の入力に供給する。また、処理完了フラグ・メモリ444は、アドレス・カウンタ308からのアドレス(4,4)に対して、処理の未完了を表す処理完了フラグ0をノット回路338の入力に供給する。
アンド回路342は、その4つの入力の論理積をとって、図9Fの場合と同様に、図13Fに示されているようにその出力を生成する。この場合、アンド回路342は、アドレス・カウンタ308からのアドレス(4,4)に対して書き込みイネーブル信号1を出力として生成する。
アンド回路342の出力が値1の場合、処理完了フラグ・メモリ444に書き込みイネーブル信号1と書き込みフラグ・データ1が供給され、置換アドレス・メモリ446に書き込みイネーブル信号1が供給される。アドレス・カウンタ308からの図13Aの対応するアドレス位置の処理完了フラグ・メモリ444の処理完了フラグが0から1に変更される。この場合、処理完了フラグ・メモリ444において、アドレス(4,4)に対して処理完了フラグ1が追加的に書き込まれる。また、加算器306からの図13Cの置換候補の検知素子のアドレスが置換後の検知素子のアドレスのデータとして、アドレス・カウンタ308からの図13Aの置換前の検知素子のアドレスと対応付けて置換アドレス・メモリ446に格納される。この場合、置換アドレス・メモリ446において、置換前の検知素子のアドレス(4,4)に対応付けて置換後の検知素子のアドレス(4,2)が書き込まれる。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みフラグ・データまたはイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図13Gに示されているように、その2つ入力の論理和を書き込み済み処理完了フラグとして出力に供給する。この場合、オア回路346は、全てのアドレス(0,0)〜(4,4)に対して処理完了フラグ1を生成する。
処理完了フラグ・メモリ444からの処理完了フラグと、処理完了フラグ・メモリ444への書き込みイネーブル信号とがオア回路346のそれぞれの入力に供給される。オア回路346は、図13Gに示されているように、その2つ入力の論理和として全て1の信号を書き込み済み処理完了フラグとして出力に供給する。
オア回路346からの書き込み済み処理完了フラグは、全体アドレスに対する置換処理を完了したアドレスの数を判定する処理数判定部354に供給される。この場合、置換処理を完了したアドレスの数25が全てのアドレスの総和25と等しいので、処理数判定部354は出力1をオア回路360の1つの入力に供給する。
フレーム判定部352は、フレーム・カウンタ302からのフレーム番号が最後のフレーム番号8に等しいかどうかを判定する。フレーム番号が最後のフレーム番号8に等しくないので、フレーム判定部352は出力0をオア回路360の別の入力に供給する。欠陥置換アドレス生成部34は、フレーム4に対するその他の処理については、フレーム1に対する処理と同様に動作する。
オア回路360は、処理数判定部354およびフレーム判定部352からの入力の論理和をとって、処理数判定部354からの入力が1なので出力1を制御部22に供給する。それによって、図7Aおよび7Bの論理構成の欠陥置換アドレス生成部34の置換処理が完了する。
フレーム判定部352は、フレーム・カウンタ302からのフレーム番号が最後のフレーム番号8に等しい場合には、全ての欠陥ある検知素子の置換処理が完了したか否かに関係なく、フレーム判定部352は出力1をオア回路360の別の入力に供給する。この場合、オア回路360は、処理数判定部354およびフレーム判定部352からの入力の論理和をとって、フレーム判定部352からの入力が1なので出力1を制御部22に供給する。
フレーム5において、オア回路346からの処理完了フラグが全てのアドレス(0,0)〜(4,4)に対して1でない場合は、オア回路346からの処理完了フラグが全てのアドレス(0,0)〜(4,4)に対して1となるまで、その後のフレーム6〜8について図9A〜13Gの場合と同様の処理が欠陥置換アドレス生成部34によって繰り返される。一方、最後のフレーム8において、オア回路346からの処理完了フラグが全てのアドレス(0,0)〜(4,4)に対して1でない場合であっても、フレーム番号が最後のフレーム番号に等しい場合には、置換処理が完了する。
代替形態として、欠陥置換アドレス生成部34は、フレーム0に対して図7Aの論理構成で図8A〜8Dに従って処理した後で、低い優先度から高い優先度へフレーム8〜1の順序で置換処理を行ってもよい。この場合、各アドレスに対して処理完了フラグ・メモリ444中に処理完了フラグ1が立っているか否かに関係なく、欠陥のない正常な置換候補の検知素子との組み合わせがある限り、処理完了フラグ1は処理完了フラグ1で上書きされ、置換後のアドレスが新しい優先度の高い置換後のアドレスで上書きされる。
上述の実施形態によれば、ソフトウェアによるランダム・アドレス制御でメモリにアクセスする場合に比べて、ハードウェアによる高速の順次アドレス制御でメモリにアクセスすることによって、検知素子の置換処理の時間を例えば約1/10以下に短縮できるであろう。
ここで挙げた全ての例および条件的表現は、発明者が技術促進に貢献した発明および概念を読者が理解するのを助けるためのものであり、ここで具体的に挙げたそのような例および条件に限定することなく解釈すべきである。また、明細書におけるそのような例の編成は本発明の優劣を示すこととは関係ない。本発明の実施形態を詳細に説明したが、本発明の精神および範囲から逸脱することなく、それに対して種々の変更、置換および変形を施すことができると理解すべきである。
以上の実施例を含む実施形態に関して、さらに以下の付記を開示する。
(付記1) 物体から放射される赤外線を検知する複数の検知素子を有する撮像素子と、
前記複数の検知素子のそれぞれのアドレスと前記それぞれのアドレスの検知素子の欠陥情報とを格納する欠陥判定記憶装置と、
前記欠陥情報が格納されたアドレスに対応する置換先アドレスを格納する欠陥置換記憶装置と、
前記それぞれのアドレスを含む第1のアドレス・シーケンスを生成する第1のアドレス発生部と、
前記第1のアドレス・シーケンスにオフセット値を付加した第2のアドレス・シーケンスを生成する第2のアドレス発生部と、
前記第1のアドレス・シーケンスに従って生成されたアドレスの第1の欠陥情報と、前記第2のアドレス・シーケンスに従って生成されたアドレスの第2の欠陥情報とを前記欠陥判定記憶装置から読み出して、前記第1の欠陥情報が欠陥を示し前記第2の欠陥情報が無欠陥を示している場合に、前記欠陥置換記憶装置において前記第1のアドレス・シーケンスに従って生成されたアドレスに、前記第2のアドレス・シーケンスに従って生成されたアドレスを書き込む論理回路と、
を具えることを特徴とする、撮像装置。
(付記2) 前記論理回路は、前記無欠陥のアドレスを書き込む場合に、さらに処理完了を表す情報を書き込むものであることを特徴とする、付記1に記載の撮像装置。
(付記3) 前記第1のアドレス発生部からの前記第1のアドレス・シーケンスに従って、前記欠陥判定記憶装置から対応する一連の欠陥情報を順次読み出して、前記欠陥置換記憶装置において前記複数の検知素子の中の無欠陥の検知素子のアドレスに処理完了を表す情報を書き込む別の論理回路を具えることを特徴とする、付記1または2に記載の撮像装置。
(付記4) 前記第1の論理回路は、異なる各優先度に対して、前記第1のアドレス・シーケンスに従って前記欠陥判定記憶装置のアドレスを順次指定し、それと同時に前記第2のアドレス・シーケンスに従って前記欠陥判定記憶装置から対応する一連の欠陥情報を順次読み出すものであることを特徴とする、付記1乃至3のいずれかに記載の撮像装置。
(付記5) さらに、前記第1の論理回路によって、前記複数の検知素子の全てのアドレスに前記処理完了を表す情報が前記欠陥置換記憶装置において格納された場合に、前記第1の論理回路の動作を完了させる第3の論理回路を具えることを特徴とする、付記2に記載の撮像装置。
(付記6) 所定数の優先度の全てについて前記第1のアドレス・シーケンスが生成されたと判定された場合に、前記第1の論理回路の動作を完了させる第4の論理回路を具えることを特徴とする、付記2または5に記載の撮像装置。