(57)【特許請求の範囲】
【請求項１】
光学イメージングシステムのためのバッファ管理方法であって、
画像取得サイクルにおいて、複数のフレームのうちの１つのフレームのために画像センサから複数のピクセルラインを読み出すステップであって、各ピクセルラインが複数のピクセル値を含むステップと、
バッファの第１のバッファライン内に複数の累積バッファ値を記憶するステップであって、第１のバッファラインが前記フレームのための第１のピクセルラインに対応し、各累積バッファ値が、該第１のピクセルラインのピクセル値のうちの１つと以前のフレームの対応する以前のバッファ値との合計値を含むステップと、
前記バッファの第２のバッファライン内に複数の平均バッファ値を記憶するステップであって、該第２のバッファラインが前記フレームのための第２のピクセルラインに対応し、各平均バッファ値が、該第２のピクセルラインのピクセル値のうちの１つの正規化値と以前のフレームの対応する以前のバッファ値との平均値を含むステップと、
前記第１のピクセルラインの前記累積バッファ値のうちの１つにおける想定し得るバッファオーバーフローを特定するステップと、
ある閾値を上回る記憶された前記累積バッファ値のうちの少なくとも１つに応じてある閾値状態を開始するステップと、
前記想定し得るバッファオーバーフローに応じて、前記第１のピクセルラインを累積モードから平均化モードへと移行させるステップであって、該平均化モードがその後のフレームにおける平均バッファ値を記憶し、該平均バッファ値が、記憶された前記累積バッファ値とその後のフレーム内の対応するピクセルラインについての新たな正規化ピクセル値との対応する平均値に基づいている、ステップと
を備えてなる、バッファ管理方法。
【請求項２】
前記バッファ内の各バッファライン毎に修正カウントを追跡するステップであって、該修正カウントが、対応するバッファラインについてのバッファ値更新の総数を示している、ステップと、
前記バッファ内の各バッファライン毎に累積カウントを追跡するステップであって、該累積カウントが、対応するバッファラインについての累積更新の総数を示している、ステップと
を更に含む、請求項１に記載のバッファ管理方法。
【請求項３】
以下にしたがって各平均バッファ値を計算するステップを更に含んでおり、
ｙ［Ｎ］＝（ｙ［Ｎ−１］＋Ｘ［Ｎ］）／２、および
Ｘ［Ｎ］＝Ｐ×ｘ［Ｎ］
ここで、Ｎは前記フレームを示し、ｙ［Ｎ］は前記フレームにおける新たなバッファ値を示し、ｙ［Ｎ−１］は以前のフレームにおける対応する以前のバッファ値を示し、Ｘ［Ｎ］は前記フレームにおける対応するピクセル値の正規化値を示し、Ｐは累積カウントを示し、ｘ［Ｎ］は前記フレームにおける対応するピクセル値を示している、請求項２に記載のバッファ管理方法。
【請求項４】
以下にしたがって各平均バッファ値を計算するステップを更に含んでおり、
ｙ［Ｎ］＝（ｙ［Ｎ−１］＋Ｘ［Ｎ］）／２
Ｙ［Ｎ−１］＝（Ｎ−１）×ｙ［Ｎ−１］
Ｘ［Ｎ］＝Ｐ×ｘ［Ｎ］
ここで、Ｎは前記フレームを示し、ｙ［Ｎ］は前記フレームにおける新たなバッファ値を示し、Ｙ［Ｎ−１］は以前のフレームにおける対応する以前のバッファ値の正規化値を示し、Ｘ［Ｎ］は前記フレームにおける対応するピクセル値の正規化値を示し、ｙ［Ｎ−１］は以前のフレームにおける対応する以前のバッファ値を示し、Ｐは累積カウントを示し、ｘ［Ｎ］は前記フレームにおける対応するピクセル値を示している、請求項２に記載のバッファ管理方法。
【請求項５】
前記バッファ内のバッファラインのうちの少なくとも１つをリスケーリングするステップを更に備えており、該リスケーリングは、
前記複数のフレームを使用して生成される画像の複数の最終バッファ値を正規化し、
正規化された前記最終バッファ値のヒストグラムを生成し、
正規化された前記最終バッファ値のヒストグラムから対応するバッファラインのスケール係数を取得し、
対応するバッファラインにおける正規化された前記最終バッファ値の輝度値を調整する、
ことを含む、請求項１に記載のバッファ管理方法。
【請求項６】
前記バッファ内の隣接するバッファラインの最終バッファ値を使用して、少なくとも１つの他のバッファラインにおける複数の最終バッファ値を補間するステップと、
前記バッファ内の全ての最終バッファ値によって表わされるバッファリングされた画像の少なくとも１つの境界をシフトさせて、該バッファリングされた画像から得られる最終画像から、バッファリングされた画像のエッジにある可変強度勾配を排除するステップと
を更に含む、請求項１に記載のバッファ管理方法。
【請求項７】
画像取得サイクルにおいて複数のフレームのうちのその後のフレームを読み出すステップと、
ピクセル値比較または勾配比較にしたがって、累積および平均化からピクセルラインのピクセル値を省くステップと
を更に含み、
前記ピクセル値比較は、前記ピクセル値と以前のフレームからの対応する以前のバッファ値との間の差を計算し、この差をピクセル値閾値と比較するとともに、この差が該ピクセル値閾値を超えるという決定に応じて累積および平均化からピクセル値を省くことを含み、
前期勾配比較は、その後のフレームのピクセルラインにおける勾配を計算し、この勾配を勾配閾値と比較するとともに、この勾配が該勾配閾値を超えるという決定に応じて累積および平均化からピクセル値を省くことを含む、請求項１に記載のバッファ管理方法。
【請求項８】
前記請求項１から７のいずれかに記載のバッファ管理方法を実行するためのコンピュータ可読命令を記憶しているコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
画像ぼけは、写真撮影においては問題であり、焦点合わせミスおよび被写体の動きなどの様々な原因を有する。被写体に対するカメラの動きは、画像ぼけの他の根源である。カメラ動作は、カメラぶれ、手ぶれ、または手震えとも称される。人が露光中にカメラを保持しているとき、カメラぶれは、（例えば、ズームレンズまたは望遠レンズを使用する等の）特に長い露光時間中および画像拡大において画像ぼけを引き起こす。人間の筋肉は通常約４〜１２Ｈｚの範囲の周波数で振動するため、カメラぶれは一般的である。また、携帯電話カメラ等の小型カメラは、軽量な材料から構成されており、時として操作中に保持するのが厄介であるため、特にカメラぶれを起こしやすい。
【０００２】
画像ぼけを減少させるための試みにおいて、手持ち式カメラなどのイメージング装置は画像安定化を実施する。画像安定化とは、画像センサと画像化される対象物との間の相対的な動きの影響を減少させることである。スチルカメラシステムにおけるいくつかの従来の画像安定化技術は、ビデオカメラシステムと比べて、レンズまたは画像センサの動作測定および相補的な機械的移動を伴う。そのようなカメラシステムは、カメラの動作を測定するために（例えば、圧電システムジャイロまたはマイクロ電子機械システム（ＭＥＭＳ）ジャイロ等の）ジャイロスコープまたは他の機械装置を含む。動作が測定されると、機械移動システムは、カメラの動きを補償する様式で画像センサを物理的に移動させる。他の従来のシステムは、検出されたカメラ動作を補償するためにカメラレンズを物理的に移動させる。しかしながら、これらの従来の機械システムは、コストが非常に高く、また、しばしば大きすぎるため、携帯電話カメラなどの小型カメラシステムにおいて実施されない。また、機械システムは機械的な故障に晒される。
【０００３】
デジタルカメラが受ける手ぶれ動作を補償するための他のタイプの従来の画像安定化は、画像取得サイクルにわたって複数のフレームにおけるピクセル値を所定のバッファに組み込むことにより実施される。図１Ａは、複数のフレームの画像取得サイクルにわたる１つのピクセルにおけるピクセル値の概略信号図１０を示している。すなわち、画像の各フレーム毎に１つのピクセル値が得られる。そして、ピクセル値が何らかの様式で組み合わせられ、画像の対応するピクセルにおける最終ピクセル値が生成される。この手法は各ピクセルに対して個別に適用されるが、いくつかのピクセルがピクセル横列（またはピクセル縦列）状態で一緒に画像センサから読み出されてもよい。ピクセル値は、（例えば、８ビットは、０〜２５５の間で指定される２５６個の値を与える等の）既知の粒度を与えるために、複数のビット（例えば、８ビット）によって表わされる。
【０００４】
累積は、いくつかのフレームにわたって得られるピクセル値を組み合わせて対応するピクセルにおける最終ピクセル値を生成する１つの方法である。図１Ｂは、典型的な従来の信号累積方法からの累積バッファ値の概略信号図２０を示している。最終ピクセル値は累積バッファ値によって表わされる。図１Ｂに示されるように、各フレームのピクセル値は、累積バッファ値を生成するために互いに加えられる。しかしながら、バッファが個々のピクセル値（例えば、８ビット）と同じサイズである（すなわち、同じビット数を有する）場合、累積バッファ値は、図１Ｂに斜線領域で示されるようにオーバーフロー状態をもたらす場合がある。この問題を扱うべく、従来の累積方法は、オーバーフローを数値的に回避できる十分に大きいバッファまたはオーバーフローを数値的に回避できる十分なビットを用いるバッファを使用する。例えば、ピクセル毎に８ビット（２５６個の想定し得る値）を有する１０個のフレームを累積するため、すなわち、想定し得る全体の値が２，５６０（すなわち、１０×２５６）において、数値的に十分なビット深度は１２ビット／ピクセル（ｂｐｐ）であり、これは４，０００個の可能な値にわたって累積できる。しかしながら、バッファにおいて更に大きいｂｐｐ（例えば、８ｂｐｐではなく１２ｂｐｐ）を使用すると、メモリサイズおよび帯域幅割り当てが増大する。前述した例では、８ｂｐｐの最小可能ビット深度にわたってバッファサイズおよび帯域幅が５０％だけ増大される。高解像度画像（例えば、３メガピクセル）の場合、従来の累積方法は、バッファサイズおよび帯域幅割り当てにおいて許容できないほど大きい増大をもたらす。
【０００５】
平均化は、いくつかのフレームにわたって得られるピクセル値を組み合わせるための他の従来の方法である。図１Ｃは、典型的な従来の信号平均化方法からの平均バッファ値の概略信号図３０を示している。最終ピクセルバッファは、入ってくるピクセル値の累積バッファ値ではなく平均バッファ値によって表わされる。しかしながら、従来の平均化方法は、画像化されるシーンが低い光レベルを有するときに、暗い画像などの許容できない結果を生み出す。
【発明の開示】
【０００６】
システムの実施形態が記載されている。１つの実施形態において、本システムは、動的なバッファ管理を伴う光学イメージングシステムである。光学イメージングシステムの実施形態は、画像センサと、バッファと、バッファモードコントローラとを含む。画像センサは、１つの画像の１つのフレームにおける複数のピクセルラインを読み出すためにピクセル配列を含む。画像は複数のフレームから得られる。バッファは、各ピクセルラインにおける複数のピクセル値に対応する複数のバッファ値を記憶するために画像センサに結合される。バッファモードコントローラは、画像センサおよびバッファに結合される。バッファモードコントローラは、累積モードと平均化モードとを動的に切り換えるように構成される。累積モードは、対応するピクセル値と対応する以前のバッファ値との合計値にしたがって各バッファ値の計算を容易にする。平均化モードは、対応するピクセル値の正規化値と対応する以前のバッファ値との平均値にしたがって各バッファ値の計算を容易にする。システムの他の実施形態も記載されている。
【０００７】
方法の実施形態も記載されている。１つの実施形態において、本方法は、光学イメージングシステムにおけるバッファ管理のための方法である。本方法の実施形態は、画像取得サイクルにおいて、複数のフレームのうちの１つのフレームのために画像センサから複数のピクセルラインを読み出すことを含む。各ピクセルラインは複数のピクセル値を含む。また、本方法は、バッファの第１のバッファライン内に複数の累積バッファ値を記憶することを含む。第１のバッファラインは、フレームのための第１のピクセルラインに対応する。各累積バッファ値は、第１のピクセルラインのピクセル値のうちの１つと以前のフレームの対応する以前のバッファ値との合計値を含む。また、本方法は、バッファの第２のバッファライン内に複数の平均バッファ値を記憶することを含む。第２のバッファラインはフレームのための第２のピクセルラインに対応する。各平均バッファ値は、第２のピクセルラインのピクセル値のうちの１つの正規化値と以前のフレームの対応する以前のバッファ値との平均値を含む。本方法の他の実施形態も記載されている。
【０００８】
また、コンピュータプログラム製品の実施形態も記載されている。１つの実施形態において、コンピュータプログラム製品は、画像取得サイクルの複数のフレームをバッファリングするための操作を行なうべく、デジタルプロセッサによって実行可能な機械可読命令のプログラムを具現化するコンピュータ可読記憶媒体である。いくつかの実施形態において、前記操作は、光学イメージングシステムおよびバッファ管理方法に関連して前述した操作を含む。他の実施形態は異なるまたは更なる操作を含む。コンピュータプログラム製品の他の実施形態も記載されている。
【０００９】
本発明の実施形態の他の態様および利点は、本発明の原理の一例として示される添付図面と併せて解釈される以下の詳細な説明から明らかとなるであろう。
【００１０】
説明の全体にわたって、同様の参照符号は同様の要素を特定するために使用されうる。
【発明を実施するための最良の形態】
【００１１】
図２は、光学イメージングシステム１００の１つの実施形態の概略ブロック図を示している。図示した光学イメージングシステム１００は、画像取得システム（ＩＡＳ）１０２と、処理システム１０４と、ディスプレイ装置１０６と、動き検出器１０８と、光学素子１１０とを含む。１つの実施形態において、光学素子１１０は、単一レンズまたはレンズの組み合わせである。図示した光学イメージングシステム１００は、本明細書中に記載される特定の構成要素を含むが、他の実施形態は更に少ないあるいは更に多い構成要素を含みうる。例えば、いくつかの実施形態は動き検出器１０８を省く。他の実施形態は、例えば更なるユーザインタフェース要素（図示せず）を含む。
【００１２】
１つの実施形態において、画像取得システム１０２は、光学素子１１０を介して入射光を受けるとともに、入射光を表わす電気信号を生成する。図示した画像取得システム１０２は、ピクセル配列１１４を有する画像センサ１１２を含む。また、画像取得システム１０２は、アナログ・デジタル変換器（ＡＤＣ）１１６と、画像パイプラインプロセッサ１１７と、バッファモードコントローラ１１８と、バッファ１２０とを含む。
【００１３】
１つの実施形態において、画像センサ１１２は、ピクセル配列１１４において、入射光に対応する複数の電気信号を生成する。画像センサ１１２は、相補型金属酸化膜半導体（ＣＭＯＳ）または電荷結合素子（ＣＣＤ）技術などの多くの技術のうちの１つを使用して実施することができる。各電気信号は、ピクセル配列１１４の画素（またはピクセル）のうちの１つに対応している。そのため、電気信号およびこれらの電気信号が表わす値は、ピクセル値とも称される。各ピクセルは、フォトセンサまたは他の感光デバイスでありうる。
【００１４】
１つの実施形態において、ピクセル配列１１４のピクセルは、横列および縦列に配置されるが、他の形態により実施されてもよい。ピクセルの物理的な配置にかかわらず、画像センサ１１２は、一群のピクセル値をピクセル配列１１４から同時に読み出す。例えば、横列および縦列が使用される場合、画像センサ１１２は、各縦列のための並列ハードウェアを使用して、全ての横列を同時に（−各縦列から１つのピクセルを−）読み取ってもよい。便宜上、ピクセル配列１１４の様々な可能な配置を参照する際、本明細書中では、ピクセル値が、ピクセルの１つの横列、ピクセルの１つの縦列、または一群のピクセルのいくつかの他の物理的配置に対応するかどうかにかかわらず、同時に読み出される一群のピクセル値をピクセルラインと称する。
【００１５】
いくつかの実施形態において、画像取得システム１０２は、単一画像におけるいくつかのフレームを取得して組み合わせてもよい。各フレームは、異なる時間に画像センサ１１２によって取得される信号の集合である。単一画像における複数のフレームの取得および組み合わせは、手ぶれに起因する画像ぼけを減少させるのに役立ち得る。各フレームにおける光信号はピクセル配列１１４に入射する。各フレーム毎に、画像センサ１１２は、複数のピクセルラインを読み出す。各ピクセルラインは複数のピクセル値を有する。最終画像が、１つのフレームまたはフレームの組み合わせから得られてもよい。
【００１６】
１つの実施形態において、光学素子１１０は、ピクセル配列１１４での画像の分解を容易にする。そして、画像センサ１１２は、複数の電気信号をＡＤＣ１１６に送信する。ＡＤＣ１１６は、画像センサ１１２からのアナログ電気信号をデジタル信号へと変換した後、そのデジタル信号を画像パイプラインプロセッサ１１７に送る。
【００１７】
１つの実施形態において、画像パイプラインプロセッサ１１７は、デジタル信号がバッファ１２０内に記憶される前にデジタル信号を処理する。特に、画像パイプラインプロセッサ１１７は、ＡＤＣ１１６からデジタル信号を受けるとともに、画像パイプライン操作、例えばガンマ補正、ピクセルマスキング、カラー補間、ホワイトバランスおよびデジタルゲイン、ピクセル統計解析、自動露光制御、色空間変換、クロミナンスダウンサンプリン、および他の画像パイプライン操作を行なってもよい。これらの画像パイプライン操作および他の画像パイプライン操作を実施できる能力は、画像取得システム１０２で使用される画像パイプラインプロセッサのタイプによって決まる。いくつかの実施形態において、画像パイプラインプロセッサ１１７は、光学イメージングシステム１００内のメモリデバイスに記憶されるソフトウェア命令によって実施される。他の実施形態において、画像パイプラインプロセッサ１１７は、ハードウェアにおいて実施され、あるいはハードウェアとソフトウェアとの組み合わせにおいて実施される。画像パイプラインプロセッサ１１７は、デジタル信号を処理した後、処理された信号をバッファモードコントローラ１１８に送る。
【００１８】
バッファモードコントローラ１１８は、デジタルピクセル信号またはデジタルピクセル信号の何らかの表示のバッファ１２０内への記憶を制御する。１つの実施形態において、バッファ１２０は、ピクセル配列１１４の各ピクセルラインにおける複数のピクセル値に対応する複数のバッファ値を記憶する。バッファ値は、赤色成分、緑色成分、および青色成分などの色を表わしてもよい。あるいは、バッファ値は、輝度やクロミナンスなどの他の光成分を表わしてもよい。１つの実施形態において、バッファ１２０は、各ピクセルにおける色ごとに８ビットを記憶するが、他の実施形態はそれよりも少ないあるいは多いビットを各ピクセルにおける色（あるいは、他の光成分）ごとに記憶してもよい。
【００１９】
バッファモードコントローラ１１８は、直接的にあるいは間接的に、画像センサ１１２およびバッファ１２０に結合される。１つの実施形態において、バッファモードコントローラ１１８は、画像センサ１１２からのピクセル値に基づいてバッファ１２０内にバッファ値を記憶するために、厳密な累積モードまたは平均化モードではなく、適応モードを実施する。最終画像中の全てのフレームを捕らえるため、バッファモードコントローラ１１８は、各フレームのピクセル値と画像取得サイクルの以前のフレームからバッファ１２０内に既に記憶されたバッファ値とを組み合わせるためにどのモードを使用すべきかを順応して決定する。バッファモードコントローラ１１８の典型的な実施形態は、以下で更に詳しく説明される図３に示されている。
【００２０】
最終画像におけるバッファ値がバッファ１２０内に記憶されると、処理システム１０４は、更なる処理のためにバッファ１２０からバッファ値を読み出す。処理システム１０４は、デジタル信号プロセッサ、マイクロプロセッサ、または何らかの他のタイプの汎用処理デバイスまたは特定用途向け処理デバイスを含みうる。１つの実施形態において、処理システム１０４は、最終画像を表わす電気信号を調整するとともに、最終画像を表示するために表示信号をディスプレイ装置１０６へ送る。他の実施形態において、処理システム１０４は、有線インタフェースまたは無線インタフェース（図示せず）を介した他のコンピュータ装置への最終画像の送信を容易にしてもよい。また、処理システム１０４は、デジタルカメラなどのデジタルイメージング装置で利用できることが分かっている他の機能を与えてもよい。
【００２１】
上記の記載は光学イメージングシステム１００の特定の実施について説明しているが、類似する更に多くのあるいは更に少ない機能を与えるために他の構造を使用して他の実施形態を実施してもよい。また、様々な構成要素の概略的な形態は、必ずしも光学イメージングシステム１００の実際の物理的配置を示すとは限らない。
【００２２】
図３は、図２に示される光学イメージングシステム１００のバッファモードコントローラ１１８の一実施形態の概略ブロック図を示している。図示したバッファモードコントローラ１１８は、予測ロジック１３２と、累積ロジック１３４と、平均化ロジック１３６と、修正ロジック１３８と、バッファ標準化ロジック１４０とを含む。いくつかの実施形態では、様々なロジックブロックがハードウェアにおいて実施される。他の実施形態では、ロジックブロックの機能をソフトウェアにより実施してもよい。そのようなロジックブロックがソフトウェアにより実施される場合には、各ブロックのロジックは、コンピュータ可読記憶媒体に記憶される１つ以上の機械可読命令を使用して実施される。あるいは、ロジックブロックは、ハードウェアとソフトウェアとの何らかの組み合わせを使用して実施されてもよい。
【００２３】
１つの実施形態において、予測ロジック１３２は、複数のバッファ値のうちの１つの想定し得るバッファオーバーフローを予測するように構成される。１つの実施形態において、予測ロジック１３２は、バッファ値のそれぞれを１つの閾値と比較するためにオーバーフローコンパレータ１４２を含む。バッファ値が閾値を上回る場合、予測ロジック１３２は、想定し得るバッファオーバーフローを特定する。例えば、（２５５の最大バッファ値において）バッファサイズが８ビットであり閾値が２３０である場合には、予測ロジック１３２は、バッファ値が２３０を超えるとバッファオーバーフロー状態を予測する。このようにして、バッファモードコントローラ１１８は、画像取得サイクルにおいて次のフレームが得られると、バッファ値が２５５の最大値をオーバーフローしないように何らかの策を講じてもよい。適応バッファ制御の一例が図５に示され、この適応バッファ制御の一例については以下で更に詳しく説明する。
【００２４】
１つの実施形態において、予測ロジック１３２は、バッファラインのそれぞれのモードを示す複数のモードビットをバッファ１２０内に記憶するためにモードテーブル１４４も含む。バッファ１２０内の各バッファラインは、ピクセル配列１１４の１つのピクセルラインに対応している。１つの実施形態において、各バッファラインにおけるモードビットは、バッファラインが累積モードまたは平均化モードで動作するかどうかを示している。すなわち、１つのバッファラインにおけるモードビットは、バッファモードコントローラ１１８が累積ロジック１３４を使用してバッファ１２０内の現在のバッファ値に対してその後のピクセル値を加えるかどうか、あるいはバッファモードコントローラ１１８が平均化ロジック１３６を使用してバッファ１２０内のその後のピクセル値および対応するバッファ値に基づいて平均値を生成するかどうかを示している。
【００２５】
１つの実施形態では、累積ロジック１３４が前述したように累積モードを実施する。特に、累積ロジック１３４は、既にバッファ１２０内に存在するバッファ値に対して新たなピクセル値のそれぞれを加える。１つの実施形態では、累積ロジック１３４が以下にしたがって累積モードを実施する。
ｙ［Ｎ］＝ｙ［Ｎ−１］＋ｘ［Ｎ］
ここで、Ｎはフレームを示し、ｙ［Ｎ］はそのフレームにおける新たなバッファ値を示し、ｙ［Ｎ−１］は以前のフレームにおける対応する以前のバッファ値を示し、ｘ［Ｎ］はそのフレームにおける対応するピクセル値を示している。他の実施形態は、この累積式の変形を実施してもよい。
【００２６】
また、累積ロジック１３４は累積カウンタ１４６も含む。１つの実施形態において、累積カウンタ１４６は、バッファ１２０内の各バッファライン毎に累積カウントを追跡する。例えば、２メガピクセルの１つの画像（つまり、各フレームが２メガピクセルである）において、累積カウンタ１４６は、１２００個の累積カウント（画像の各バッファラインについて１つ）を記憶してもよい。他の実施形態は、更に少ないあるいは更に多い累積カウントを記憶してもよい。各バッファラインにおける累積カウントは、対応するバッファラインにおける累積更新の総数を示している。すなわち、バッファライン内の１つ以上のバッファ値が累積モードを使用して更新される度に、累積カウンタは累積カウントを増大する。１つの実施形態において、累積カウントは、後述するように、平均化ロジック１３６によって使用される。
【００２７】
１つの実施形態では、平均化ロジック１３６が平均化モードを実施する。特に、平均化ロジック１３６は、１つのフレームにおける新たなピクセル値とバッファ１２０内に既に存在するバッファ値とに基づいて平均値を生成する。１つの実施形態において、平均化ロジックは、以下にしたがって平均化モードを実施する。
ｙ［Ｎ］＝（ｙ［Ｎ−１］＋Ｘ［Ｎ］）／２、および
Ｘ［Ｎ］＝Ｐ×ｘ［Ｎ］
ここで、Ｎ、ｙ［Ｎ］、ｙ［Ｎ−１］およびｘ［Ｎ］は、前述のものと同じであり、Ｘ［Ｎ］はフレームにおける対応するピクセル値の正規化値を示し、Ｐは累積カウントを示している。すなわち、平均化ロジック１３６は、対応するピクセル値の正規化値の平均値と対応する以前のバッファ値とにしたがって各バッファ値を計算する。なお、２で割ると、例えば１ビットシフトを使用するだけで、この平均化方程式の実施が比較的簡単になる。
【００２８】
他の実施形態において、平均化ロジック１３６は、バッファ１２０内に記憶された以前の値に対して更に多くの重みを与えるために以下にしたがって平均化モードを実施する。
ｙ［Ｎ］＝（Ｙ［Ｎ−１］＋Ｘ［Ｎ］）／Ｎ
Ｙ［Ｎ−１］＝（Ｎ−１）×ｙ［Ｎ−１］、および
Ｘ［Ｎ］＝Ｐ×ｘ［Ｎ］
ここで、Ｎ、ｙ［Ｎ］、ｙ［Ｎ−１］、ｘ［Ｎ］、ＰおよびＸ［Ｎ］は前述のものと同じであり、Ｙ［Ｎ−１］はフレームにおける対応する以前のバッファ値の正規化値を示している。この実施において、以前のバッファ値は、新たなバッファ値により大きく寄与する。この実施は計算がより複雑になる場合があるが、新たなバッファ値は、各フレームの対応するピクセル値における激変によってあまり影響されない。例えば、ノイズの異常値などに起因して入力ピクセル値が突然降下する場合、以前のバッファ値の重み付けは、著しく異なる新たなピクセル値の想定し得る影響を制限する。
【００２９】
１つの実施形態において、修正カウンタ１３８は、バッファ１２０内の各バッファラインにおける修正カウントを追跡する。修正カウントは、該修正カウントが対応するバッファラインにおけるバッファ値更新の総数を示している点を除き、累積カウントに類似している。すなわち、修正カウンタ１３８は、累積モードまたは平均化モードを使用してバッファラインが更新されているかどうかにかかわらず、対応するバッファラインが更新される度に修正カウントをインクリメント（increment）する。１つの実施形態において、累積カウンタ１４６および修正カウンタ１３８は、（例えば、１つの画像に関して１６個以下のフレームが得られる）それぞれ４ビットカウンタである。この実施形態では、累積カウンタ１４６および修正カウンタ１３８が、１ビット幅バッファ（図示せず）内に組み込まれてもよい。他の実施形態は、他のタイプおよびサイズのカウンタを実施してもよい。
【００３０】
１つの実施形態において、バッファ標準化ロジック１４０は、バッファ１２０内のバッファラインの標準化およびコヒーレントな最終画像の生成を容易にする。図４は、図３に示されるバッファモードコントローラ１１８のバッファ標準化ロジック１４０の１つの実施形態の概略ブロック図を示している。図示のバッファ標準化ロジック１４０は、リスケーリングロジック１５２と、補間ロジック１５４と、境界ロジック１５６とを含む。一般に、リスケーリングロジック１５２は、バッファ１２０内のバッファ値のうちの少なくとも１つ輝度値を調整するように構成され、補間ロジック１５４は、バッファ１２０の隣接するバッファラインの最終バッファ値を使用してバッファ１２０の少なくとも１つのバッファラインにおける複数の最終バッファ値を補間するように構成され、境界ロジック１５６は、バッファリングされた画像の境界をシフトさせて、バッファリングされた画像のエッジにある少なくともいくつかのバッファ値を最終画像から排除するように構成されている。バッファ標準化ロジック１４０の機能の更に特別な記述については以下で述べる。
【００３１】
図５は、バッファモードコントローラ１１８を使用する光学イメージングシステム１０の一実施形態からの適応バッファ値の概略的な信号図１６０を示している。前述したように、バッファモードコントローラ１１８は、画像センサ１１２からのピクセル値に基づいてバッファ１２０内にバッファ値を記憶するため、厳密な累積モードまたは平均化モードではなく、適応モードを実施する。すなわち、バッファモードコントローラ１１８は、各フレームのピクセル値と画像取得サイクルの以前のフレームからバッファ１２０内に既に記憶されたバッファ値とを組み合わせるためにどのモード（累積モードまたは平均化モード）を使用すべきかを順応して決定する。累積モードと平均化モードと適応モードとの間の違いを理解するため、以下、各モードの一例について説明する。様々な例の間で一貫性を維持するため、図１Ａは、ピクセル配列１１４の１つのピクセルライン内に単一のピクセルにおける一連のピクセル値を与えているものとする。ピクセル値は各フレームにおいて同一となるように示されているが、他の実施形態は１つ以上のフレームにわたって変化するピクセル値を使用してもよい。以下の表は、図１Ａに示される各フレームにおけるピクセル値を挙げている。
【表１】
0004705664.tif 000002
【００３２】
（累積モード）
累積モードはピクセル値の累積値を確立する。以下の表は各フレーム後の累積値を示している。
【表２】
0004705664.tif 000003
【００３３】
なお、フレーム６から始まる累積値は８ビットバッファをオーバーフローする。これは、８ビットバッファが２５６個のレベルの粒度（すなわち、０〜２５５）を正確にもたらすことができるだけだからである。このオーバーフロー状態は図１Ｂの信号図２０によって伝えられる。
【００３４】
（平均化モード）
平均化モードはピクセル値の平均値を確立する。以下の表は各フレーム後の平均値を示している。
【表３】
0004705664.tif 000004
【００３５】
なお、ピクセル値のそれぞれが低い場合、平均値は低いままであることは留意されるべきである。したがって、結果として得られる画像は非常に暗い場合がある。この暗い状態は、図１Ｃの信号図３０によって伝えられる。
【００３６】
（適応モード）
適応ボードにおいて、バッファ１２０は、ピクセル値の累積値または平均値あるいはその組み合わせを記憶する。１つの実施形態では、バッファオーバーフローが予測されると、適応モードが累積モードから平均化モードへと切り換わる。以下の表は、各フレーム後の適応バッファ値を示している。
【表４】
0004705664.tif 000005
【００３７】
図５の信号図１６０は、適応バッファモードがフレーム１〜５において累積モードを実施した後にフレーム６〜１０に関して平均化モードを実施するこのシナリオを示している。１つの実施形態において、バッファモードコントローラ１１８は、最初に、バッファ１２０内に記憶された値がバッファ１２０の容量を超える場合があるバッファラインにおける想定し得るオーバーフローを予測ロジック１３２が予測するまで、各バッファラインにおいて累積モードを使用する。バッファ１２０の容量が破線の水平ライン１６２によって示されている。例えば、８ビットバッファの容量は０〜２５５の２５６個のレベルである。想定し得るオーバーフローを予測するため、オーバーフローコンパレータ１４２は、各フレーム後に、バッファ値を閾値ＴＨと比較する。図５では、閾値ＴＨが点線の水平ライン１６４によって示されている。図５に示されるように、フレーム５の後にバッファ値が閾値を越える。そのため、点線の垂直ライン１６６によって示されるフレーム６を初めとして、バッファモードコントローラ１１８は、画像取得サイクルの残りの部分において平均化モードを実施する。このように、バッファモードコントローラ１１８は、想定し得るバッファオーバーフローが生じるのを防止する。
【００３８】
前述したように、平均化モードは、以前の累積バッファ値を捕捉するために実施される。以前のフレーム１〜５からの既に累積されたバッファ値（例えば、２４０の累積値）を用いて新たなピクセル値（例えば、フレーム６で得られる値４８）を単に平均するのではなく、平均化ロジック１３６は、最初に、新たなピクセル値をそれが累積バッファ値に相当するように正規化する。１つの実施形態において、平均化ロジック１３６は、新たなピクセル値と累積カウント（例えば、５カウント）とを掛け合わせ、以前のフレームからの累積バッファ値を用いて平均化されるべき正規化ピクセルを決定する。他の実施形態は、他の技術を実施して新たなピクセル値を正規化してもよい。
【００３９】
更なる例として、適応モードを使用して得られる最終バッファ値は、実施される平均化方程式のタイプに依存してもよい。特に、最終バッファ値は、平均化方程式が前のバッファ値を正規化ピクセル値よりも大きく重み付けるか否かに応じて変化してもよい。前述したように、最初の平均化方程式は、以前のバッファ値を重み付けないが、２番目の平均化方程式は以前のバッファ値を重み付ける。以下の表は、これらの平均化方程式のそれぞれを使用して得られる最終バッファ値の間の違いを示している。
【表５】
0004705664.tif 000006
【００４０】
なお、フレーム６においてゼロのピクセル値を用いると、以前のバッファ値において重み付けを伴う平均化方程式を使用するピクセル値計算は、より一貫性のある新たなピクセル値をもたらす。特定の重み付け方程式が先で与えられているが、他の実施形態は、同様の結果を生み出すために他の重み付け平均化方程式を使用してもよい。
【００４１】
図６は、図２の光学イメージングシステム１００のバッファ１２０内にバッファ値を記憶するための方法１７０の一実施形態の概略フローチャートを示している。方法１７０のいくつかの実施形態は光学イメージングシステム１００に関連して実施されるが、方法１７０の他の実施形態は他の光学イメージングシステムに関連して実施されてもよい。また、方法１７０のいくつかの実施形態が、対応するバッファ記憶場所に入るピクセル値を調整して異なるフレームにおける画像化されたシーンの動きを捕らえるための１つ以上の操作も含むことに留意すべきである。明確にするため、そのような動き補償の実施形態は図６に示されていないが、図１０Ａ〜図１０Ｃおよび図１１には示されており、これについては以下で更に詳しく説明する。
【００４２】
バッファ値をバッファ１２０内に記憶するための方法１７０において、ブロック１７２では、バッファモードコントローラ１１８が、画像センサ１１２からピクセル値を読み出す。１つの実施形態において、ピクセル値は、ピクセル横列、ピクセル縦列、またはピクセル配列１１４内の他のピクセル系列に対応するグループの状態で読み出される。図示した方法１７０は、単一のピクセル値の処理についてのみ記載しているが、並列ハードウェアおよび／またはソフトウェアを使用して、１つのピクセルラインからの複数のピクセル値をほぼ同時に処理してもよい。
【００４３】
１つの実施形態において、バッファモードコントローラ１１８は、最初に、バッファ１２０内の全てのバッファラインを設定して、累積モードでピクセル値を累積する。しかしながら、他の実施形態は、最初のピクセルライン読み出しにおいてさえもモード決定を行なう。画像取得サイクルのフレームのうちの１つにおいて１つのピクセル値を読み出した後、ブロック１７４において、バッファモードコントローラ１１８は、対応するバッファラインにおけるモードビットが平均化モードのために設定されるかどうかを決定する。１つの実施形態において、モードテーブル１４４は、各バッファラインについて１つのモードビットを記憶する。モードビットは、対応するバッファラインが累積モードのために設定されているのかあるいは平均化モードのために設定されているのかどうかを示している。他の実施形態（図７および図８を参照）は、モードテーブル１４４を省くとともに、他の演算を使用して、累積モードで実施すべきかあるいは平均化モードで実施すべきかどうかを決定する。
【００４４】
モードビットが累積モードのために設定される場合、ブロック１７６において、累積ロジック１３４は、新たなピクセル値と現在のバッファ値との合計値を計算する。ブロック１７８において、累積ロジック１３４は、対応するバッファ記憶場所に合計値を記憶する。ブロック１８０では、累積カウンタ１４６が累積カウントをインクリメントする。ブロック１８２において、予測ロジック１３２は、その後、バッファ１２０内に記憶されたバッファ値が閾値を超えるかどうかを決定する。前述したように、オーバーフローコンパレータ１４２がバッファ値と閾値とを比較してもよい。閾値は、ビット値（例えば、８ビット値において２３０）として、ビット数（例えば、８ビット値に関して７ビット）として、パーセンテージ（例えば、８ビット値において９０％）として、あるいは何らかの他の量として予め決定されてもよい。また、いくつかの実施形態は、画像取得サイクルの過程において閾値の値を動的に調整する。バッファ値が閾値を越える場合、ブロック１８４において、予測ロジック１３２は、バッファ１２０内の対応するバッファラインにおいて、モードテーブル１４４におけるモードビットを平均化モードのために設定する。
【００４５】
ブロック１７４における決定に戻って参照すると、モードビットが平均化モードのために設定される場合、ブロック１８６において、平均化ロジック１３６は、新たなピクセル値と現在のバッファ値との平均値を計算する。１つの実施形態において、平均化ロジック１３６は、最初に、正規化ピクセル値を計算して、現在のバッファ値と平均する。そして、平均化ロジック１３６は、対応するバッファ記憶場所内に平均値を記憶する。バッファ１２０内に平均値を記憶した後、あるいはブロック１８２においてバッファ値が閾値を越えないことを予測ロジック１３２が決定した後、あるいはその後のフレームにおいて平均化モードを実施するために予測ロジック１３２がブロック１８４においてモードビットを設定した後、ブロック１９０において、修正カウンタ１３８が修正カウントをインクリメントする。その結果、図示した方法１７０が終了する。
【００４６】
いくつかの実施形態では、累積モードから平均化モードへの切り換えが画像取得サイクル中に多くて１回行なわれることに留意すべきである。これは、バッファ値が閾値を越えると、その後の正規化されたピクセル値と各フレームにおける記憶されたバッファ値との平均化がバッファ１２０内に記憶された値を著しく増大させあるいは減少させる可能性が低いからである。しかしながら、他の実施形態では、バッファモードコントローラ１１８が累積モードと平均化モードとの間で複数回切り換えることができてもよい。
【００４７】
また、バッファモードコントローラ１１８のいくつかの実施形態は、各横列に対して個別に累積モードおよび平均化モードを適用するが、他の実施形態は、累積モードまたは平均化モードにおいてどのバッファ記憶場所が作用すべきかを決定する際に異なる粒度を使用してもよいことにも留意すべきである。例えば、いくつかの実施形態は、ピクセル毎にバッファモード間を適応的に切り換えてもよい。他の実施形態は、複数のバッファラインからなるグループに関して適応バッファモードを実施してもよい。他の実施形態は、各フレームに関して全体として適応バッファモードを実施してもよい。
【００４８】
図７は、図２の光学イメージングシステム１００のバッファ１２０内にバッファ値を記憶するための他の実施形態の方法２００の概略フローチャートを示している。方法２００のいくつかの実施形態は光学イメージングシステム１００に関連して実施されるが、方法２００の他の実施形態は他の光学イメージングシステムに関連して実施されてもよい。また、方法２００の操作のいくつかは、図６の方法１７０の操作に類似しているため、図７の説明では更に詳しく説明しない。
【００４９】
ブロック１７２では、バッファモードコントローラ１１８が画像センサ１１２からピクセル値を読み出す。そして、ブロック２０２において、バッファモードコントローラ１１８は、対応するバッファ値をバッファ１２０から読み出す。１つの実施形態において、バッファモードコントローラ１１８は、１つ以上の動き補償操作を実施して、対応するバッファ記憶場所を決定する。そして、ブロック１８２において、予測ロジック１３２は、バッファ値と閾値とを比較して、累積モード（ブロック１７６〜１８０参照）を実施すべきかあるいは平均化モード（ブロック１８６〜１８８参照）を実施すべきかどうかを決定する。累積モードまたはバッファモードを実施した後、ブロック１９０において、修正カウンタ１３８が修正カウントをインクリメントする。
【００５０】
なお、図７の方法２００は、多くの態様において図６の方法１７０と類似している。しかしながら、図７の方法２００は、対応するバッファ記憶場所に記憶された実際の値に基づいて、累積モードを実施すべきかあるいは平均化モードを実施すべきかどうかの決定を行なう。これに対し、図６の方法は、モードテーブル１４４内の対応するモードビット値に基づいて決定を行なう。これらの方法１７０および２００はいずれもバッファ１２０内に既に記憶された前のバッファ値に基づいて同じ決定を行なうが、図７の方法２００は、対応するバッファ値を直接に使用するのに対し、図６の方法１７０は、記憶されたバッファ値および同じバッファラインにおける他の記憶されたバッファ値の全てによって決まるモードビットを使用する。そのため、図７の方法２００はピクセル毎の決定を実施するのに対し、図６の方法１７０はライン毎の決定を実施する。
【００５１】
図８は、図２の光学イメージングシステム１００のバッファ１２０内にバッファ値を記憶するための他の実施形態の方法２１０の概略フローチャートを示している。方法２１０のいくつかの実施形態は、光学イメージングシステム１００に関連して実施されるが、方法２１０の他の実施形態は他の光学イメージングシステムに関連して実施されてもよい。また、方法２１０の操作のいくつかは、図６の方法１７０および図７の方法２００の操作に類似しているため、図８の説明では更に詳しく説明しない。
【００５２】
ブロック１７２では、バッファモードコントローラ１１８が画像センサ１１２からピクセル値を読み出す。そして、ブロック２０２において、バッファモードコントローラ１１８は、対応するバッファ値をバッファ１２０から読み出す。１つの実施形態において、バッファモードコントローラ１１８は、１つ以上の動き補償操作を実施して、対応するバッファ記憶場所を決定する。ブロック１７６において、累積ロジック１３４は、新たなピクセル値と現在のバッファ値との合計値を事前に計算する。この合計値は、バッファ１２０内に直ちに記憶されない。その代わりに、ブロック２１２において、予測ロジック１３２は、合計値と閾値とを比較して、累積モードの残りの操作（ブロック１７８〜１８０参照）を実施すべきかあるいは平均化モードの操作（ブロック１８６〜１８８参照）を実施すべきかどうかを決定する。累積モードまたはバッファモードを実施した後、ブロック１９０において、修正カウンタ１３８が修正カウントをインクリメントする。
【００５３】
図８の方法２１０が多くの態様において図７の方法２００と類似していることに留意すべきである。しかしながら、図８の方法２１０は、バッファモードコントローラ１１８が累積モードを実施する場合に記憶される実際の合計値に基づいて累積モードを実施すべきかあるいは平均化モードを実施すべきかどうかの決定を行なう。予測ロジック１３２がブロック２１２での比較において実際の合計値を使用するため、予測ロジック１３２は、もう１つの方法として、実際の合計値を低い閾値（例えば、８ビットバッファにおいては２３０）と比較するのではなく、バッファ１２０によって許容される最大値（例えば、８ビットバッファにおいては２５５）と実際の合計値とを比較してもよい。このように、予測ロジック１３２は正確な予測を毎回行なう。また、図７の方法２００および図８の方法２１０はピクセル毎の決定を実施するため、バッファモードコントローラ１１８によって実施される他の操作もライン毎ではなくピクセル毎に実施されてもよいことに留意すべきである。しかしながら、少なくともいくつかの操作をライン毎に実施すると、同じ操作をピクセル毎に実施するよりも簡単で安価となる場合がある。
【００５４】
図９は、図２の光学イメージングシステム１００のバッファ１２０内に記憶されたバッファ値を標準化するための方法２２０の一実施形態の概略フローチャートを示している。方法２２０のいくつかの実施形態は光学イメージングシステムに関連して実施されるが、方法２２０の他の実施形態は他の光学イメージングシステム１００に関連して実施されてもよい。
【００５５】
バッファ値を標準化するための方法２２０において、ブロック２２２では、バッファ１２０内の最終バッファ値が正規化される。そして、ブロック２２４において、正規化された最終バッファ値のヒストグラムが生成される。ヒストグラムが生成された後、ブロック２２６では、バッファラインにおけるスケール係数がヒストグラムから得られる。そして、ブロック２２８において、バッファラインにおける正規化された最終バッファ値の輝度値が調整される。このように、方法２２０は、横列毎にあるいは縦列毎に出力バッファラインをリスケーリングして、画像取得サイクル中の異なる時間に累積モードから平均化モードへ切り換わった全てのラインの輝度を等しくする。
【００５６】
方法２２０の更に特別な例として、リスケーリングは、対応するバッファラインのための累積カウントによってそれぞれがスケーリングされる複数の出力値のヒストグラムを計算することにより行なわれてもよい。この場合、ヒストグラムの９８番目のパーセンタイル値が２５５までスケーリングされ、また、各横列は、同じ量だけ引き伸ばされるが、対応する累積カウントによって正規化される。
【００５７】
更なる説明として、ヒストグラムは、画像Ｂのバッファ値から形成される。各バッファ値は、対応する累積カウントＰ［ｋ］で割られる（ここで、ｋは対応するバッファラインを示している）。例えば、バッファが６４の赤色値を有していてバッファラインにおける累積カウントが４である場合には、ヒストグラムビン１６（すなわち、６４／４＝１６）がインクリメントされる。８ビットバッファの場合、ヒストグラムビンは０〜２５５である。そして、ヒストグラムの累積合計が計算される。例えば、ヒストグラムがＨ［ｉ］として定められる場合には、以下にしたがって累積合計が計算されてもよい。
ｂ＝０〜２５５について、Ｃ［ｂ］＝（ｉ＝０〜ｂまでの合計）
【００５８】
そして、以下にしたがって、Ｈの９８番目のパーセンタイル値が計算される。
ｂ９８＝Ｃ［ｂ］＞＝０．９８×Ｈ［２５５］となるようなｂの最小値
【００５９】
次に、トップ２％が飽和するように輝度を増大させることによって画像をより満足のいくものとするように、９８番目のパーセンタイル値が２５５まで高められる。１つの実施形態において、スケール係数は、
ｓ９８＝２５５／ｂ９８
である。
【００６０】
例えば、ｂ９８＝３２であり、それにより、Ｂの値の９８％が０〜３２の範囲内にある場合には、ｓ９８＝７．９６８７５となる。しかしながら、オーバーブーストを防止するため、以下にしたがって、スケール係数が修正カウントの最大値Ｎ（合計において使用される画像の数でありうる）に維持されてもよい。
ｓ９８＝最小値（Ｎ，ｓ９８）
【００６１】
例えば、修正カウントが４であり、スケール係数が約７．９である場合には、スケール係数が４にリセットされてもよい。
【００６２】
次に、最終画像Ｂ内の各横列ｋ毎に、以下の係数によって輝度が調整されてもよい。
係数［ｋ］＝ｓ９８／Ｐ［ｋ］、ｋ＝０．．最大横列
Ｂ［ｋ，：］＝Ｂ［ｋ，：］×ｓ９８／Ｐ［ｋ］（ここで、「：」は、そのライン上の全てのピクセルに関して意味している）
【００６３】
なお、Ｐ［ｋ］＝０の場合には、横列が修正されない。
【００６４】
本質的に、スケール係数は中間スケール値である。スケール係数ｓ９８よりも小さい累積カウントＰ［ｋ］を有する最終画像Ｂのラインは明るくされる。これに対し、スケール係数ｓ９８よりも大きい累積係数Ｐ［ｋ］を有するラインは暗くされる。他の実施形態は他のリスケーリング操作を使用してもよい。
【００６５】
図１０Ａ〜図１０Ｃは、ピクセル配列１１４のピクセル値とバッファ１２０のバッファ値との間の様々な値の相関関係の概略図を示している。特に、図１０Ａは、ピクセル値とバッファ値との間の直接的な相関関係２３０を示している。この形態では、ピクセル値の垂直または水平シフトを何ら伴うことなく、対応するバッファ記憶場所内にピクセル値が記憶される。図１０Ｂは、ピクセル値とバッファ値との間の垂直にシフトされた相関関係２４０を示している。特に、ピクセル値は、指示されるバッファ記憶場所に記憶された前のバッファ値に対して新たなピクセル値が関連付くことを示す何らかの動き検出に基づいて、垂直オフセット２４２の分（例えば、１ピクセル横列分）だけシフトされる。図１０Ｃは、ピクセル値とバッファ値との間の水平にシフトされた相関関係２５０を示している。特に、指示されるバッファ記憶場所に記憶された前のバッファ値に対して新たなピクセル値が関連付くことを示す何らかの動き検出に基づいて、水平オフセット２５２の分（例えば、１ピクセル縦列分）だけシフトされる。
【００６６】
図１１は、図２の光学イメージングシステム１００の画像取得サイクルにおける時間にわたって取得される画像の相対的な動きを補償するための方法２６０の一実施形態の概略フローチャートを示している。方法２６０のいくつかの実施形態は光学イメージングシステム１００に関連して実施されるが、方法２６０の他の実施形態は他の光学イメージングシステムに関連して実施されてもよい。
【００６７】
動き補償方法２６０において、ブロック２６２では、ピクセルラインが画像センサから読み出される。ブロック２６４では、画像取得サイクルにわたって画像センサ１１２の累積的な垂直動作が存在するか否かの決定が行なわれる。閾値を越える累積的な垂直動作が存在する場合には、ブロック２６６において、垂直動作を補償するためにバッファ１２０内の新たな横列が指定される。そして、ブロック２６８において、画像センサ１１２の累積的な水平動作が画像取得サイクルにわたって存在するか否かの決定が行なわれる。閾値を越える累積的な水平動作が存在する場合には、ブロック２７０において、水平動作を補償するために、指示されたバッファライン内の水平記憶場所がシフトされる。そして、ブロック２７２において、バッファ１２０の対応するバッファ記憶場所にピクセル値が記憶される。その結果、図示した動き補償方法２６０が終了する。
【００６８】
いくつかの実施形態において、動き補償方法２６０は、動き検出器１０８によって検出される動きに応じて開始されてもよい。学名的には、この動き補償方法２６０は実時間シフト累積（ＲＴＳＡ）と称される場合があるが、動きシフトは累積モードおよび平均化モードの両方で実施されてもよい。いくつかの実施形態において、累積モードと平均化モード（すなわち、適応バッファモードを使用する）とを動的に切り換えることができる能力は、実時間シフト累積の実施を容易にする。特に、累積ロジックは、累積前に少なくとも１つの方向で動きシフトを実施してもよい。同様に、平均化ロジックは、平均化前に少なくとも１つの方向で動きシフトを実施してもよい。他の実施形態が動きシフトを実施してもよい。また、使用される最小および最大水平シフトを記録することにより、画像の左右の境界を場合によりクロッピングしあるいはフレーミングして、さもなければエッジで生じる可変強度勾配を隠すことができる。１つの実施形態では、バッファ標準化ロジック１４０の境界ロジック１５６が、そのようなクロッピングまたはフレーミングを実施する。
【００６９】
また、何らかの閾値内で類似するその後のフレームからのピクセル値を累積される前に使用することにより、最終シフト画像の鮮明さを高めることができる。すなわち、その後のフレームにわたってピクセル値が著しく変化する際にピクセル値の累積をスキップすることにより、ぼけた画像を少なくともある程度まで避けることができる。例えば、１つのフレームにおけるピクセル値が他のフレームからの対応するピクセル値よりもかなり低い（すなわち、何らかの閾値を下回る）場合には、その低いピクセル値が累積プロセスおよび／または平均化プロセスから省かれてもよい。この選択的ピクセル累積の１つの用途は、動き検出が正確でないときに最終画像のぼけを防止しあるいは減少させることである。この考えは、エッジが均一な領域へと不鮮明にされないように特定のピクセルラインにおいて何らかの閾値内にある勾配を使用することによって拡張させることができる。例えば、同じ横列上の隣接するピクセルの違いによって、簡単な水平勾配が得られてもよい。このように、勾配は、特定のフレームの１つ以上のピクセル値において累積プロセスおよび／または平均化プロセスが実施されるべきかどうかを決定するために使用されてもよい。
【００７０】
前述したバッファモードコントローラ１１８の実施形態は、オーバーフローが予測されるときに累積モードから平均化モードへ適応的に切り換えることによりバッファ１２０のオーバーフローを回避する。１つの実施形態では、切り換えが横列単位で行なわれ、それにより、高ダイナミックレンジ画像の柔軟な累積を行なうことができる。また、バッファ１２０は、入力フレームのそれぞれと同じビット深度を有してもよい。これにより、バッファ１２０のサイズを、オーバーフローに対応するためにバッファのサイズが増大された場合よりも小さくすることができる。また、クリッピングの事例を減少させることにより、画質が向上される。
【００７１】
また、本発明の実施形態は、中央処理ユニット（ＣＰＵ）、マイクロプロセッサ、または他のタイプの汎用または特定用途向けプロセッサなどのコンピュータプロセッサにより実行されるべき多くの機能を含みうる。マイクロプロセッサは、特定のタスクを規定する機械可読ソフトウェアコードを実行することにより特定のタスクを行なうように構成される特殊マイクロプロセッサまたは専用マイクロプロセッサでありうる。また、マイクロプロセッサは、他のデバイス、例えば、ダイレクトメモリアクセスモジュール、メモリ記憶デバイス、インターネット関連ハードウェア、およびデータの送信に関連する他のデバイスと共に動作してこれらと通信するように構成されてもよい。ソフトウェアコードは、Ｊａｖａ（登録商標）、Ｃ＋＋、ＸＭＬ（拡張可能マークアップ言語）、および本明細書中での説明に関連する機能操作を実行するために必要とされる装置の動作に関連する機能を規定するために使用されてもよい他の言語などのソフトウェアフォーマットを用いて構成されてもよい。コードは異なる形式およびスタイルで書き込まれてもよく、それらの形式およびスタイルのうちの多くは当業者に知られている。異なるコード形式、コート形態、ソフトウェアプログラムのスタイルおよび形式、およびマイクロプロセッサの動作を規定するためのコードを構成する他の手段が実施されてもよい。
【００７２】
本発明の実施形態を利用する異なるタイプのプロセッサ内には、本明細書中に記載される機能の一部または全てを実行しつつ情報を記憶して読み出すための異なるタイプのメモリデバイスが存在する。いくつかの実施形態において、データが記憶されるメモリ／記憶デバイスは、プロセッサの外部にある別個のデバイスであってもよく、あるいは単一基板上に接続される構成要素など、メモリまたは記憶デバイスが同じ集積回路上に位置されるモノリシックデバイス内に構成されてもよい。キャッシュメモリデバイスは、しばしば、頻繁に記憶されて読み出される情報のための都合のよい記憶場所としてプロセッサで用いるコンピュータ内に含まれる。同様に、そのようなコンピュータと共に持続性メモリも頻繁に使用され、それにより、中央処理ユニットによって頻繁に読み出されるがキャッシュメモリとは異なり持続性メモリ内で頻繁に変えられない情報が維持される。中央処理ユニットによって実行されるときに特定の機能を果たすように構成されるソフトウェアアプリケーションおよびデータなどの多大な情報を記憶して読み出すために、メインメモリも通常において含まれる。これらのメモリデバイスは、ランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ、および情報を記憶して読み出すために中央処理ユニットによりアクセスされてもよい他のメモリ記憶デバイスとして構成されてもよい。実施形態は、様々なメモリおよび記憶デバイスと共に、およびこれらのメモリデバイスのそれぞれに情報を記憶してこれらのメモリデバイスのそれぞれから情報を読み出すための任意の一般に使用されるプロトコルと共に実施されてもよい。特に、デジタルプロセッサによって実行可能な機械可読命令のプログラムを具現化するコンピュータ可読記憶媒体が、本発明の一実施形態の１つ以上の動作を行なってもよい。
【００７３】
本明細書中では、方法の動作が特定の順序で図示されて説明されているが、各方法の動作の順序が変更されてもよく、それにより、特定の動作が逆の順序で行なわれてもよく、あるいは特定の動作が少なくとも部分的に他の動作と同時に行なわれてもよい。他の実施形態では、命令または別個の動作であるサブ動作が、断続的様式および／または交互様式で実施されてもよい。
【００７４】
本発明の特定の実施形態について説明して図示してきたが、本発明は、そのようにして説明されて図示された部品の特定の形態または配置に限定されるべきではない。本発明の範囲は、ここに添付された特許請求の範囲およびそれらの均等物によって規定されるべきである。
【図面の簡単な説明】
【００７５】
【図１】図１Ａは、複数のフレームの画像取得サイクルにわたるピクセルにおけるピクセル値の概略信号図を示す。図１Ｂは、典型的な従来の信号累積方法からの累積バッファ値の概略信号図を示す。図１Ｃは、典型的な従来の信号平均化方法からの平均バッファ値の概略信号図を示す。
【図２】光学イメージングシステムの１つの実施形態の概略ブロック図を示す。
【図３】図２に示される光学イメージングシステムのバッファモードコントローラの１つの実施形態の概略ブロック図を示す。
【図４】図３に示されるバッファモードコントローラのバッファ標準化ロジックの１つの実施形態の概略ブロック図を示す。
【図５】バッファモードコントローラを使用する光学イメージングシステムの一実施形態からの適応バッファ値の概略信号図を示す。
【図６】図２の光学イメージングシステムのバッファ内にバッファ値を記憶するための方法の１つの実施形態の概略フローチャートを示す。
【図７】図２の光学イメージングシステムのバッファ内にバッファ値を記憶するための方法の他の実施形態の概略フローチャートを示す。
【図８】図２の光学イメージングシステムのバッファ内にバッファ値を記憶するための方法の他の実施形態の概略フローチャートを示す。
【図９】図２の光学イメージングシステムのバッファ内に記憶されたバッファ値を標準化するための方法の１つの実施形態の概略フローチャートを示す。
【図１０】ピクセル配列のピクセル値とバッファのバッファ値との間の様々な値の相関関係の概略図を示す。特に、図１０Ａは、ピクセル値とバッファ値との間の直接的な相関関係を示す。図１０Ｂは、ピクセル値とバッファ値との間の垂直にシフトされた相関関係を示す。図１０Ｃは、ピクセル値とバッファ値との間の水平にシフトされた相関関係を示す。
【図１１】図２の光学イメージングシステムの画像取得サイクルにおいて経時的に取得される画像の相対的な動きを補償するための方法の１つの実施形態の概略フローチャートを示す。
【図１】
0004705664.tif 000007
【図２】
0004705664.tif 000008
【図３】
0004705664.tif 000009
【図４】
0004705664.tif 000010
【図５】
0004705664.tif 000011
【図６】
0004705664.tif 000012
【図７】
0004705664.tif 000013
【図８】
0004705664.tif 000014
【図９】
0004705664.tif 000015
【図１０】
0004705664.tif 000016
【図１１】
0004705664.tif 000017