本発明の1つ以上の特定の実施形態について以下に説明する。これらの説明される実施形態は、本明細書で開示される技術の例にすぎない。更に、これらの実施形態を簡潔に説明しようとするため、本明細書において実際の一実現例の全ての特徴が説明されない可能性がある。そのようないかなる実際の実現例の開発時にも、どのようなエンジニアリング又は設計プロジェクトとも同様に、実現例毎に異なるシステム関連又はビジネス関連の制約に準拠すること等の開発者の特定の目的を達成するために実現例固有の多くの決定がされる必要があることが理解されるべきである。更にそのような開発努力は、複雑であり且つ時間がかかるが、本発明の利益を有する当業者にとっては設計、組立及び製造の日常的な業務であることが理解されるべきである。
本発明の種々の実施形態の要素を紹介する際、単数形は1つ以上の要素が存在することを意味することを意図する。「備える」、「含む」及び「有する」という用語は、含むことを意図し、列挙した要素以外の追加の要素が存在することを意味する。また、本発明の「一実施形態」に対する参照は、列挙した特徴を取り入れる追加の実施形態の存在を除外するものとして解釈されることを意図しないことが理解されるべきである。
以下に説明するように、本発明は、一般に1つ以上の撮像装置を介して取得された画像データを処理する技術に関する。特に、本発明の特定の態様は、欠陥画素を検出し且つ補正する技術、raw画像パターンをデモザイクする技術、マルチスケールアンシャープマスクを使用して輝度画像を鮮明化する技術及びレンズシェーディングの不規則性を補正するためにレンズシェーディングゲインを適用する技術に関する。更に、本発明で開示される技術は、静止画及び動画(例えば、ビデオ)の双方に適用され、デジタルカメラ、内蔵デジタルカメラを有する電子装置、セキュリティ又はビデオ監視システム及び医療撮影システム等のあらゆる適切な種類の撮像応用例において利用されることが理解されるべきである。
上述の点を考慮すると、図1は、簡単に上述した1つ以上の画像処理技術を使用して画像データの処理を提供する電子装置10の一例を示すブロック図である。電子装置10は、1つ以上の画像検出構成要素を使用して取得されたデータ等の画像データを受信及び処理するように構成されるラップトップコンピュータ、デスクトップコンピュータ、移動電話又はデジタルメディアプレーヤ等のいかなる種類の電子装置であってもよい。単なる例として、電子装置10は、Cupertino、CaliforniaのApple Inc.から市販されているある機種のiPod(登録商標)又はiPhone(登録商標)等のポータブル電子装置である。更に電子装置10は、Apple Inc.から市販されているある機種のMacBook(登録商標)、MacBook(登録商標)Pro、MacBook Air(登録商標)、iMac(登録商標)、Mac(登録商標)Mini又はMac Pro(登録商標)等のデスクトップコンピュータ又はラップトップコンピュータである。他の実施形態において、電子装置10は、画像データを取得及び処理できる別の製造業者のある機種の電子装置である。
その形態に関わらず(例えば、携帯型であっても非携帯型であっても)、電子装置10は、特に欠陥画素補正及び/又は検出技術、レンズシェーディング補正技術、デモザイク技術、あるいは画像鮮明化技術を含む簡単に上述した1つ以上の画像処理技術を使用する画像データの処理を提供することが理解されるべきである。いくつかの実施形態において、電子装置10は、電子装置10のメモリに格納された画像データにそのような画像処理技術を適用する。更なる実施形態において、電子装置10は、上述した1つ以上の画像処理技術を使用して電子装置10により処理される画像データを取得するように構成された内蔵デジタルカメラ又は外部デジタルカメラ等の1つ以上の撮影装置を含む。電子装置10の携帯型の実施形態及び非携帯型の実施形態を示す実施形態について、図3〜図6において以下に更に説明する。
図1に示すように、電子装置10は、装置10の機能に寄与する種々の内部構成要素及び/又は外部構成要素を含む。図1に示す種々の機能ブロックは、ハードウェア要素(回路網を含む)、ソフトウェア要素(コンピュータ可読媒体に格納されたコンピュータコードを含む)又はハードウェア要素及びソフトウェア要素の組み合わせを含むことが当業者には理解されるだろう。例えば本明細書で示される実施形態において、電子装置10は、入出力(I/O)ポート12、入力構造14、1つ以上のプロセッサ16、メモリ素子18、不揮発性記憶装置20、拡張カード22、ネットワーク装置24、電源26及びディスプレイ28を含む。更に電子装置10は、デジタルカメラ等の1つ以上の撮影装置30及び画像処理回路網32を含む。以下に更に説明するように、画像処理回路網32は、画像データを処理する時に上述した1つ以上の画像処理技術を実現するように構成される。理解されるように、画像処理回路網32により処理された画像データは、メモリ18及び/又は不揮発性記憶装置20から検索されるか、あるいは撮影装置30を使用して取得される。
説明を続ける前に、図1に示す装置10のシステムブロック図は、そのような装置10に含まれる種々の構成要素を示す高レベル制御図であることが理解されるべきである。すなわち、図1に示す個々の構成要素間の接続線は、必ずしもデータが装置10の種々の構成要素間を流れるか又は送信される際に通るパス又は方向を表すとは限らない。実際には、以下に説明するように、いくつかの実施形態において、図示するプロセッサ16は、主プロセッサ(例えば、CPU)、並びに専用画像及び/又はビデオプロセッサ等の複数のプロセッサを含む。そのような実施形態において、画像データの処理は主にそれらの専用プロセッサにより対処され、これにより主プロセッサ(CPU)のそのようなタスクの負担が効果的に軽減される。
図1において図示される各構成要素を考慮すると、I/Oポート12は、電源、オーディオ出力装置(例えば、ヘッドセット又はヘッドホン)又は他の電子装置(ハンドヘルド装置及び/又はコンピュータ、プリンタ、プロジェクタ、外部ディスプレイ、モデム及びドッキングステーション等)等の種々の外部装置に接続するように構成されたポートを含む。一実施形態において、I/Oポート12は、画像処理回路網32を使用して処理される画像データを取得するためにデジタルカメラ等の外部撮影装置に接続するように構成される。I/Oポート12は、USB(Universal Serial Bus)ポート、シリアル接続ポート、IEEE1394(FireWire)ポート、Ethernet又はモデムポート、並びに/あるいはAC/DC電源接続ポート等のあらゆる適切なインタフェースの種類をサポートする。
いくつかの実施形態において、特定のI/Oポート12は2つ以上の機能を提供するように構成される。例えば一実施形態において、I/Oポート12は、電子装置10と外部ソースとの間のデータの転送を容易にするように機能するだけでなく、コンセントから電力を提供するように設計された電源アダプタ等の充電インタフェース又は電源26(1つ以上の充電可能なバッテリを含む)を充電するためにデスクトップコンピュータ又はラップトップコンピュータ等の別の電気装置から電力を得るように構成されたインタフェースケーブルに装置10を結合するように機能するApple Inc.の自社開発のポートを含む。従って、I/Oポート12は、例えばI/Oポート12を介して装置10に結合されている外部構成要素に依存してデータ転送ポート及びAC/DC電源接続ポートの2つの機能を果たすように構成される。
入力構造14は、ユーザ入力又はフィードバックをプロセッサ16に提供する。例えば入力構造14は、電子装置10で実行するアプリケーション等の電子装置10の1つ以上の機能を制御するように構成される。例として、入力構造14は、ボタン、スライダ、スイッチ、制御パッド、キー、ノブ、スクロールホイール、キーボード、マウス及びタッチパッド等、あるいはそれらの組み合わせを含む。一実施形態において、入力構造14は、ユーザが装置10に表示されたグラフィカルユーザインタフェース(GUI)をナビゲートできるようにする。更に入力構造14は、ディスプレイ28と共に提供されたタッチセンシティブ機構を含む。そのような実施形態において、ユーザは、タッチセンシティブ機構を介して表示されたインタフェース要素を選択し、あるいはインタフェース要素と対話する。
入力構造14は、種々の装置、回路網、並びにユーザ入力又はフィードバックが1つ以上のプロセッサ16に提供される際の経路を含む。そのような入力構造14は、装置10の機能、装置10で実行するアプリケーション、並びに/あるいは電子装置10に接続されるか又は電子装置10により使用されるあらゆるインタフェース又は装置を制御するように構成される。例えば入力構造14は、ユーザが表示されたユーザインタフェース又はアプリケーションインタフェースをナビゲートできるようにする。入力構造14の例は、ボタン、スライダ、スイッチ、制御パッド、キー、ノブ、スクロールホイール、キーボード、マウス及びタッチパッド等を含む。
特定の実施形態において、入力構造14及び表示装置28は、例えば「タッチスクリーン」の場合に共に提供され、それにより、タッチセンシティブ機構がディスプレイ28と共に提供される。そのような実施形態において、ユーザはタッチセンシティブ機構を介して表示されたインタフェース要素を選択するか、あるいはインタフェース要素と対話する。このように、表示されたインタフェースは対話機能性を提供し、これによりユーザはディスプレイ28に触れることにより表示されたインタフェースをナビゲートできる。例えばディスプレイ26に表示されたユーザ又はアプリケーションインタフェースとの対話等の入力構造14とのユーザ対話により、ユーザ入力を示す電気信号が生成される。これらの入力信号は、更なる処理のために入力ハブ又はデータバス等の適切な経路を介して1つ以上のプロセッサ16にルーティングされる。
入力構造14を介して受信された種々の入力信号の処理に加えて、プロセッサ16は装置10の一般的な動作を制御する。例えばプロセッサ16は、オペレーティングシステム、プログラム、ユーザ及びアプリケーションインタフェース、並びに電子装置10のあらゆる他の機能を実行するための処理能力を提供する。プロセッサ16は、1つ以上の「汎用」マイクロプロセッサ、1つ以上の専用マイクロプロセッサ及び/又は特定用途向けマイクロプロセッサ(ASIC)、あるいはそのような処理構成要素の組み合わせ等の1つ以上のマイクロプロセッサを含む。例えばプロセッサ16は、1つ以上の命令セット(例えば、RISC)プロセッサ並びにグラフィックプロセッサ(GPU)、ビデオプロセッサ、オーディオプロセッサ及び/又は関連するチップセットを含む。理解されるように、プロセッサ16は、装置10の種々の構成要素間でデータ及び命令を転送するために1つ以上のデータバスに結合される。特定の実施形態において、プロセッサ16は、Apple Inc.から市販されているPhoto Booth(登録商標)、Aperture(登録商標)、iPhoto(登録商標)又はPreview(登録商標)、あるいはApple Inc.により提供され且つiPhone(登録商標)において入手可能な「カメラ」及び/又は「写真」アプリケーション等の電子装置10においてイメージングアプリケーションを実行するための処理能力を提供する。
プロセッサ16により処理される命令又はデータは、メモリ素子18等のコンピュータ可読媒体に格納される。メモリ素子18は、ランダムアクセスメモリ(RAM)等の揮発性メモリ又は読み出し専用メモリ(ROM)等の不揮発性メモリ、あるいは1つ以上のRAM及びROM装置の組み合わせとして提供される。メモリ18は、種々の情報を格納し、種々の目的で使用される。例えばメモリ18は、基本入出力システム(BIOS)、オペレーティングシステム、種々のプログラム、アプリケーション、あるいはユーザインタフェース機能及びプロセッサ機能等を含む電子装置10において実行されるあらゆる他のルーチン等の電子装置10に対するファームウェアを格納する。更にメモリ18は、電子装置10の動作中にバッファリング又はキャッシュするために使用される。例えば一実施形態において、メモリ18は、ビデオデータがディスプレイ28に出力されている時にバッファリングするための1つ以上のフレームバッファを含む。
メモリ素子18に加えて、電子装置10はデータ及び/又は命令を固定的に格納するための不揮発性記憶装置20を更に含む。不揮発性記憶装置20は、フラッシュメモリ、ハードドライブ、あるいはあらゆる他の光記憶媒体、磁気記憶媒体及び/又は固体記憶媒体、あるいはそれらの何らかの組み合わせを含む。従って、不揮発性記憶装置20は、理解し易くするために図1において単一の装置として示されるが、プロセッサ16と共に動作する上記で列挙した1つ以上の記憶装置の組み合わせを含む。不揮発性記憶装置20は、ファームウェア、データファイル、画像データ、ソフトウェアプログラム及びアプリケーション、無線接続情報、個人情報、ユーザの好み、並びにあらゆる他の適切なデータを格納するために使用される。本発明の態様によると、不揮発性記憶装置20及び/又はメモリ素子18に格納された画像データは、ディスプレイに出力される前に画像処理回路網32により処理される。
図1に示す実施形態は、1つ以上のカード又は拡張スロットを更に含む。カードスロットは、追加のメモリ、I/O機能性又はネットワーク化機能等の機能性を電子装置10に追加するのに使用される拡張カード22を受け入れるように構成される。そのような拡張カード22は、あらゆる種類の適切なコネクタを介して装置に接続し、電子装置10の筐体の内部又は外部からアクセスされる。例えば一実施形態において、拡張カード22は、セキュアデジタル(SD)カード、miniSD、microSD又はコンパクトフラッシュカード等のフラッシュメモリカードであるか、あるいはPCMCIA装置である。更に拡張カード22は、移動電話機能を提供する電子装置10の一実施形態と共に使用する加入者識別モジュール(SIM)カードであってもよい。
電子装置10はネットワーク装置24を更に含み、ネットワーク装置24は、無線802.11規格、あるいはローカルエリアネットワーク(LAN)、GSMの拡張向け高速データ(EDGE)ネットワーク、3Gデータネットワーク又はインターネット等のワイドエリアネットワーク(WAN)等のあらゆる他の適切なネットワーク化規格を介してネットワーク接続性を提供するネットワークインタフェースカード(NIC)又はネットワークコントローラである。特定の実施形態において、ネットワーク装置24は、Apple Inc.から市販されているiTunes(登録商標)音楽サービス等のオンラインデジタルメディアコンテンツプロバイダに対する接続を提供する。
装置10の電源26は、非ポータブル設定及びポータブル設定で装置10に電力を供給する機能を含む。例えばポータブル設定において、装置10は装置10に電力を供給するためにリチウムイオン電池等の1つ以上のバッテリを含む。バッテリは、装置10をコンセント等の外部電源に接続することにより充電される。非ポータブル設定において、電源26は、コンセントから電力を得て且つデスクトップコンピューティングシステム等の非携帯型電子装置の種々の構成要素に電力を分配するように構成された電源ユニット(PSU)を含む。
以下に更に説明するように、ディスプレイ28は、オペレーティングシステムに対するGUI又は画像処理回路網32により処理された画像データ(静止画及びビデオデータを含む)等の装置10により生成された種々の画像を表示するために使用される。上述したように、画像データは、撮影装置30を使用して取得された画像データ、あるいはメモリ18及び/又は不揮発性記憶装置20から検索された画像データを含む。ディスプレイ28は、例えば液晶ディスプレイ(LCD)、プラズマディスプレイ又は有機発光ダイオード(OLED)ディスプレイ等のあらゆる適切な種類のディスプレイである。更に上述したように、ディスプレイ28は、電子装置10に対する制御インタフェースの一部として機能できる上述したタッチセンシティブ機構(例えば、タッチスクリーン)と共に提供される。
図示する撮影装置30は、静止画及び動画(例えば、ビデオ)の双方を取得するように構成されたデジタルカメラとして提供される。カメラ30は、光を撮像し且つそれを電気信号に変換するように構成された1つ以上の撮像素子及びレンズを含む。単なる例として、撮像素子は、CMOS撮像素子(例えば、CMOS能動画素センサ(APS))又はCCD(電荷結合素子)センサを含む。一般にカメラ30の撮像素子は、各画素が光を検出する受光器を含む画素アレイを有する集積回路を含む。当業者には理解されるように、一般に撮像画素の受光器は、カメラレンズを介して撮像された光の明度を検出する。しかし、受光器は、一般にそれ自体で撮像された光の波長を検出できないため、色情報を判定できない。
従って、撮像素子は、色情報を撮像するために撮像素子の画素アレイと重なり合うか又は画素アレイ上に配設されるカラーフィルタアレイ(CFA)を更に含む。カラーフィルタアレイは小さなカラーフィルタのアレイを含み、各カラーフィルタは、撮像素子の各画素と重なり且つ撮像した光を波長によりフィルタリングする。従って、カラーフィルタアレイ及び受光器は、共に使用される場合、撮像した画像を表すカメラを介して撮像された光に関して波長及び明度情報を提供する。
一実施形態において、カラーフィルタアレイは、ベイヤカラーフィルタアレイを含み、50%が緑色要素であり、25%が赤色要素であり且つ25%が青色要素であるフィルタパターンを提供する。例えば図2は、ベイヤCFAの2×2画素ブロックが2つの緑色要素(Gr及びGb)、1つの赤色要素(R)及び1つの青色要素(B)を含むことを示す。従って、ベイヤカラーフィルタアレイを利用する撮像素子は、緑色波長、赤色波長及び青色波長でカメラ30が受光した光の明度に関する情報を提供し、それにより各画像画素は3色(RGB)のうち1色のみを記録する。「raw画像データ」又は「raw領域」のデータと呼ばれるこの情報は、1つ以上のデモザイク技術を使用して処理され、一般に画素毎に赤色値、緑色値及び青色値の集合を補間することによりraw画像データをフルカラー画像に変換する。以下に更に説明するように、そのようなデモザイク技術は画像処理回路網32により実行される。
上述したように、画像処理回路網32は、欠陥画素検出/補正、レンズシェーディング補正、デモザイク、画像鮮明化、雑音除去、ガンマ補正、画像強調、色空間変換、画像圧縮、クロマサブサンプリング及び画像スケーリング動作等の種々の画像処理ステップを提供する。いくつかの実施形態において、画像処理回路網32は、種々の画像処理ステップの各々を実行するための画像処理「パイプライン」をまとめて形成するロジック部の種々の副構成要素及び/又は別個のユニットを含む。これらの副構成要素は、ハードウェア(例えば、デジタル信号プロセッサ又はASIC)又はソフトウェアを使用して、あるいはハードウェアコンポーネント及びソフトウェアコンポーネントの組み合わせを介して実現される。画像処理回路網32により提供される種々の画像処理動作、特に欠陥画素検出/補正、レンズシェーディング補正、デモザイク及び画像鮮明化に関係する処理動作について、以下に更に詳細に説明する。
説明を続ける前に、以下に説明する種々の処理技術の種々の実施形態はベイヤCFAを利用するが、本明細書で開示する技術はそれに関して限定されること意図しない。実際には、本明細書で提供される画像処理技術は、RGBWフィルタ及びCYGMフィルタ等を含むあらゆる適切な種類のカラーフィルタアレイに適用可能であることが当業者には理解されるだろう。
電子装置10を再度参照すると、図3〜図6は、電子装置10がとる種々の形態を示す。上述したように、電子装置10は、一般に携帯型であるコンピュータ(ラップトップコンピュータ、ノートブックコンピュータ及びタブレットコンピュータ等)並びに一般に非携帯型であるコンピュータ(デスクトップコンピュータ、ワークステーション及び/又はサーバ等)又はハンドヘルドポータブル電子装置(例えばデジタルメディアプレーヤ又は移動電話)等の他の種類の電子装置を含むコンピュータの形態をとる。特に図3及び図4は、ラップトップコンピュータ40及びデスクトップコンピュータ50の形態の電子装置10をそれぞれ示す。図5及び図6は、それぞれハンドヘルドポータブル装置60の形態の電子装置10を示す正面図及び背面図である。
図3に示すように、図示するラップトップコンピュータ40は、筐体42、ディスプレイ28、I/Oポート12及び入力構造14を含む。入力構造14は、筐体42に組み込まれるキーボード及びタッチパッドマウスを含む。更に入力構造14は、例えばコンピュータ40で実行するアプリケーション又はGUIを動作するためにコンピュータの電源を投入するか又はコンピュータを開始するため、並びにコンピュータ40の動作に関連する他の種々の要素(例えば、音量、ディスプレイの明るさ等)を調整するためにコンピュータ40と対話するのに使用される種々の他のボタン及び/又はスイッチを含む。コンピュータ40は、上述したようにFireWire(登録商標)又はUSBポート、高品位マルチメディアインタフェース(HDMI)ポート、あるいは外部装置への接続に適したあらゆる他の種類のポート等の追加の装置に対する接続性を提供する種々のI/Oポート12を更に含む。また、図1を参照して上述したように、コンピュータ40は、ネットワーク接続性(例えば、ネットワーク装置26)、メモリ(例えば、メモリ20)及び記憶機能(例えば、記憶装置22)を含む。
更に、図示する実施形態において、ラップトップコンピュータ40は内蔵撮影装置30(例えば、カメラ)を含む。他の実施形態において、ラップトップコンピュータ40は、内蔵カメラ30の代わりに又は内蔵カメラ30に加えて1つ以上のI/Oポート12に接続された外部カメラ(例えば、外部USBカメラ又は「webcam」)を利用する。例えば外部カメラは、Apple Inc.から市販されているiSight(登録商標)カメラである。カメラ30は、内蔵カメラであっても外部カメラであっても画像の撮像及び記録を提供する。そのような画像は、画像閲覧アプリケーションを使用してユーザにより閲覧されるか、あるいはiChat(登録商標)等のテレビ会議アプリケーション及びApple Inc.から市販されているPhoto Booth(登録商標)、Aperture(登録商標)、iPhoto(登録商標)又はPreview(登録商標)等の画像編集/閲覧アプリケーションを含む他のアプリケーションにより利用される。特定の実施形態において、図示するラップトップコンピュータ40は、Apple Inc.から市販されているある機種のMacBook(登録商標)、MacBook(登録商標)Pro、MacBook Air(登録商標)又はPowerBook(登録商標)である。
図4は、電子装置10がデスクトップコンピュータ50として提供される一実施形態を更に示す。理解されるように、デスクトップコンピュータ50は、一般に図4に示すラップトップコンピュータ40により提供される特徴と類似する多くの特徴を含むが、一般に全体のフォームファクタはより大きい。図示するように、デスクトップコンピュータ50は、ディスプレイ28並びに図1に示したブロック図に関して上述した種々の他の構成要素を含むエンクロージャ42に収納される。更にデスクトップコンピュータ50は、1つ以上のI/Oポート12(例えば、USB)を介してコンピュータ50に結合されるか又はコンピュータ50と無線(例えば、RF、Bluetooth等)で通信する外部キーボード及びマウス(入力構造14)を含む。上述したように、デスクトップコンピュータ50は、内蔵カメラ又は外部カメラである撮影装置30を更に含む。特定の実施形態において、図示するデスクトップコンピュータ50は、Apple Inc.から市販されているある機種のiMac(登録商標)、Mac(登録商標)mini又はMac Pro(登録商標)である。
更に図示するように、ディスプレイ28は、ユーザにより閲覧される種々の画像を生成するように構成される。例えばコンピュータ50の動作中、ディスプレイ28は、ユーザがオペレーティングシステム及び/又はコンピュータ50で実行するアプリケーションと対話できるようにするグラフィカルユーザインタフェース(「GUI」)52を表示する。GUI52は、表示装置28の全体又は一部に表示される種々のレイヤ、ウィンドウ、画面、テンプレート又は他の図形要素を含む。例えば図示する実施形態において、オペレーティングシステムGUI52は種々のグラフィックアイコン54を含み、各アイコンは、ユーザ選択(例えば、キーボード/マウス又はタッチスクリーン入力を介する)が検出されると開かれるか又は実行される種々のアプリケーションに対応する。アイコン54は、ドック56に表示されるか、あるいは画面に表示された1つ以上のグラフィックウィンドウ要素58内に表示される。いくつかの実施形態において、アイコン54の選択により、ある画面が表示されるか、あるいは1つ以上の追加のアイコン又は他のGUI要素を含む別のグラフィックウィンドウが開かれるように、アイコン54の選択により階層ナビゲーション処理を開始する。単なる例として、図4で表示されたオペレーティングシステムGUI52は、Apple Inc.から市販されているあるバージョンのMac OS(登録商標)オペレーティングシステムのものである。
図5及び図6に継続すると、電子装置10は、Apple Inc.から市販されているある機種のiPod(登録商標)又はiPhone(登録商標)であるポータブルハンドヘルド電子装置60の形態で更に示される。図示する実施形態において、ハンドヘルド装置60は、内部構成要素を物理的損傷から保護し且つ電磁妨害から保護するように機能するエンクロージャ42を含む。エンクロージャ42は、プラスチック、金属又は複合材料等のあらゆる適切な材料又は材料の組み合わせから形成され、図5に示すようにエンクロージャ42内に配設される無線通信回路網(例えば、ネットワーク装置24)まで無線ネットワーク信号等の特定の周波数の電磁放射を通過させる。
エンクロージャ42は、ユーザがハンドヘルド装置60とインタフェースする際に介する種々のユーザ入力構造14を更に含む。例えば各入力構造14は、押下された時又は起動された時に1つ以上の各装置を制御するように構成される。例として、1つ以上の入力構造14は、例えばスリープモード、起動モード又は電源オン/オフモードの間で切り換えるため、携帯電話アプリケーションに対する呼び出し音を消すため、音量出力を増加又は低下するために、表示される「ホーム」画面42又はメニューを呼び出すように構成される。図示する入力構造14は単なる例示であること、並びにハンドヘルド装置60はボタン、スイッチ、キー、ノブ及びスクロールホイール等を含む種々の形態で存在する適切なユーザ入力構造をいくつ含んでもよいことが理解されるべきである。
図5に示すように、ハンドヘルド装置60は種々のI/Oポート12を含む。例えば図示するI/Oポート12は、データファイルを送信及び受信するため又は電源26を充電するための自社開発の接続ポート12aと、装置60をオーディオ出力装置(例えば、ヘッドホン又はスピーカ)に接続するためのオーディオ接続ポート12bとを含む。更にハンドヘルド装置60が移動電話機能性を提供する実施形態において、装置60は、加入者識別モジュール(SIM)カード(例えば、拡張カード22)を受け入れるI/Oポート12cを含む。
LCD、OLED又はあらゆる適切な種類のディスプレイである表示装置28は、ハンドヘルド装置60により生成された種々の画像を表示する。例えばディスプレイ28は、電力状態、信号明度及び外部装置接続等のハンドヘルド装置60の1つ以上の状態に関してユーザにフィードバックを提供する種々のシステム標識64を表示する。ディスプレイは、図4を参照して上述したようにユーザが装置60と対話できるようにするGUI52を更に表示する。GUI52は、各アイコン54のユーザ選択の検出時に開かれるか又は実行される種々のアプリケーションに対応するアイコン54等のグラフィック要素を含む。例として、アイコン54の1つは、画像を取得するカメラ30(図5に想像線で示される)と共に使用されるカメラアプリケーション66を表する。図6を参照すると、図5に示すハンドヘルド電子装置60の背面図が示され、カメラ30が筐体42と一体化されており且つハンドヘルド装置60の背面に位置付けられていることを示す。
上述したように、カメラ30を使用して取得された画像データは画像処理回路網32を使用して処理される。画像処理回路網32は、ハードウェア(例えば、エンクロージャ42内に配設された)及び/又は装置60の1つ以上の記憶装置(例えば、メモリ18又は不揮発性記憶装置20)に格納されたソフトウェアを含む。カメラアプリケーション66及びカメラ30を使用して取得された画像は、装置60(例えば、記憶装置20)に格納され、写真閲覧アプリケーション68を使用して後で閲覧される。
ハンドヘルド装置60は、種々のオーディオ入力及び出力要素を含む。例えば一般に図中符号70により示されるオーディオ入出力要素は、1つ以上のマイク等の入力受信機を含む。例えばハンドヘルド装置60が携帯電話機能性を含む場合、入力受信機は、ユーザの声等のユーザオーディオ入力を受信するように構成される。更にオーディオ入出力要素70は、1つ以上の出力送信機を含む。そのような出力送信機は、メディアプレーヤアプリケーション72を使用した音楽データの再生中等にユーザにオーディオ信号を送信するように機能する1つ以上のスピーカを含む。更にハンドヘルド装置60が携帯電話アプリケーションを含む実施形態において、図5に示すように、追加のオーディオ出力送信機74が提供される。オーディオ入出力要素70の出力送信機のように、出力送信機74は、通話中に受信した音声データ等のオーディオ信号をユーザに送信するように構成された1つ以上のスピーカを更に含む。従って、オーディオ入出力要素70及び74は、電話のオーディオ受信及び送信要素として機能するように共に動作する。
電子装置10がとる可能性のある種々の形態に関してある状況を仮定して、本発明はここで図1に示す画像処理回路網32に注目する。上述したように、画像処理回路網32は、ハードウェアコンポーネント及び/又はソフトウェアコンポーネントを使用して実現され、画像信号処理(ISP)パイプラインを規定する種々の処理ユニットを含む。特に以下の説明は、本発明で示す画像処理技術の態様、特に欠陥画素検出/補正技術、レンズシェーディング補正技術、デモザイク技術及び画像鮮明化技術に関連する態様に注目する。
図7を参照すると、本明細書で開示される技術の一実施形態に従って、画像処理回路網32の一部として実現されるいくつかの機能構成要素を示す簡略化された上位レベルのブロック図が示される。特に図7は、少なくとも1つの実施形態に従った画像処理回路網32を介した画像データフローを示す。画像処理回路網32の一般的な概要を提供するために、画像データを処理するためのそれら機能構成要素の動作方法について図7を参照して一般的に説明し、その一方で図示する各機能構成要素及びそれらの各副構成要素について以下に更に詳細に説明する。
図示する実施形態を参照すると、画像処理回路網32は、画像信号処理(ISP)フロントエンド処理ロジック部80、ISPパイプ処理ロジック部82及び制御ロジック部84を含む。撮影装置30により撮像された画像データは、まずISPフロントエンド処理ロジック部80により処理され、ISPパイプ処理ロジック部82及び/又は撮影装置30に対する1つ以上の制御パラメータを判定するために使用される画像統計を撮像するために解析される。ISPフロントエンド処理ロジック部80は、撮像素子入力信号から画像データを撮像するように構成される。例えば図7に示すように、撮影装置30は、1つ以上のレンズ88及び撮像素子90を有するカメラを含む。上述したように、撮像素子90は、カラーフィルタアレイ(例えば、ベイヤフィルタ)を含み、ISPフロントエンド処理ロジック部80により処理されるraw画像データの集合を提供するために撮像素子90の各撮像画素により撮像された光強度及び波長情報の双方を提供する。例えば撮影装置30からの出力92はセンサインタフェース94により受信され、センサインタフェース94は、例えばセンサインタフェースの種類に基づいてraw画像データ96をISPフロントエンド処理ロジック部80に提供する。例として、センサインタフェース94は、SMIA(Standard Mobile Imaging Architecture)インタフェース又はMIPI(Mobile Industry Processor Interface)、あるいはそれらの何らかの組み合わせを利用する。特定の実施形態において、ISPフロントエンド処理ロジック部80は、自身のクロック領域内で動作し、種々のサイズの撮像素子及びタイミングに関する要求をサポートするために同期インタフェースをセンサインタフェース94に提供する。
raw画像データ96は、多くの形式でISPフロントエンド処理ロジック部80に提供され且つ画素毎に処理される。例えば各画像画素は、8、10、12又は14ビットのビット深度を有する。ISPフロントエンド処理ロジック部80は、raw画像データ96に対して1つ以上の画像処理動作を実行し且つ画像データ96に関する統計を収集する。画像処理動作及び統計データの収集は、同一のビット深度精度で実行されるか又は異なるビット深度精度で実行される。例えば一実施形態において、raw画像画素データ96の処理は14ビット精度で実行される。そのような実施形態において、14ビット未満(例えば、8ビット、10ビット、12ビット)のビット深度を有するISPフロントエンド処理ロジック部80により受信されたraw画像データは、画像処理の目的で14ビットにアップサンプリングされる。別の実施形態において、統計処理は8ビット精度で行われ、より大きいビット深度を有するraw画素データは統計の目的で8ビット形式にダウンサンプリングされる。理解されるように、8ビットへのダウンサンプリングは、ハードェウェアサイズ(例えば、面積)を縮小し且つ統計データに対する処理/計算の複雑さを軽減するだろう。更にraw画像データは、統計データが雑音に対してより高いロバスト性を有することができるように空間的に平均される。
更に図7に示すように、ISPフロントエンド処理ロジック部80は、メモリ108から画素データを受信する。例えば図中符号98で示すように、raw画素データはセンサインタフェース94からメモリ108に送出される。その後、メモリ108に常駐するraw画素データは、図中符号100で示すように、処理するためにISPフロントエンド処理ロジック部80に提供される。メモリ108は、メモリ素子18の一部、記憶装置20であるか、あるいは電子装置10内の別個の専用メモリであり且つ直接メモリアクセス(DMA)機能を含む。更に特定の実施形態において、ISPフロントエンド処理ロジック部80は、自身のクロック領域内で動作し、種々のタイミング要求を有する種々のサイズのセンサをサポートするために同期インタフェースをセンサインタフェース94に提供する。
raw画像データ96(センサインタフェース94から)又はraw画像データ100(メモリ108から)を受信すると、ISPフロントエンド処理ロジック部80は、時間フィルタリング及び/又はビニング補償フィルタリング等の1つ以上の画像処理動作を実行する。処理された画像データは、表示される(例えば、表示装置28上に)前に追加の処理を行うためにISPパイプ処理ロジック部82に提供されるか(出力信号109)、あるいはメモリに送出される(出力信号110)。ISPパイプ処理ロジック部82は、「フロントエンド」処理されたデータをISPフロントエンド処理ロジック部80又はメモリ108(入力信号112)から直接受信し、raw領域並びにRGB色空間及びYCbCr色空間の画像データの追加の処理を提供する。ISPパイプ処理ロジック部82により処理された画像データは、ユーザが閲覧するためにディスプレイ28に出力され(信号114)且つ/あるいはグラフィックエンジン又はGPUにより更に処理される。また、ISPパイプ処理ロジック部82からの出力は、メモリ108に送出され(信号115)、ディスプレイ28はメモリ108から画像データを読み出す(信号116)。ある実施形態において、メモリ108は、1つ以上のフレームバッファを実現するように構成される。更にいくつかの実現例において、ISPパイプ処理ロジック部82の出力は、表示装置28により読み出される(信号119)前に画像データを符号化するために画像データを符号化する圧縮/伸張エンジン118に更に提供される(信号117)。例として圧縮エンジン又は「符号器」118は、静止画を符号化するJPEG圧縮エンジン、ビデオ画像を符号化するH.264圧縮エンジン又はそれらの何らかの組み合わせである。ISPパイプ処理ロジック部82において提供される画像処理動作に関する追加の情報については、図27〜図57に関して以下に更に詳細に説明する。尚、ISPパイプ処理ロジック部82は、入力信号112で示すようにメモリ108からraw画像データを更に受信する。
ISPフロントエンド処理ロジック部80により判定された統計データ102は、制御ロジックユニット84に提供される。統計データ102は、例えば自動露出、自動ホワイトバランス、オートフォーカス、フリッカ検出、黒レベル補償(BLC)及びレンズシェーディング補正等に関する撮像素子統計を含む。制御ロジック部84は、受信統計データ102に基づいて撮影装置30に対する制御パラメータ104及びISPパイプ処理ロジック部82に対する制御パラメータ106を判定するように構成される1つ以上のルーチン(例えば、ファームウェア)を実行するように構成されたプロセッサ及び/又はマイクロコントローラを含む。単なる例として、制御パラメータ104は、センサ制御パラメータ(例えば、ゲイン、露出制御の積分時間)、カメラフラッシュ制御パラメータ、レンズ制御パラメータ(例えば、合焦又はズームの焦点距離)又はそのようなパラメータの組み合わせを含む。ISP制御パラメータ106は、自動ホワイトバランス及び色調整(例えば、RGB処理中)に対するゲインレベル及び色補正行列(CCM)係数、並びに以下に説明するようにホワイトポイントバランスパラメータに基づいて判定されるレンズシェーディング補正パラメータを含む。いくつかの実施形態において、制御ロジック部84は、統計データ102の解析に加えて、電子装置10(例えば、メモリ18又は記憶装置20)に格納される履歴統計を更に解析する。
本明細書で示す画像処理回路網32の一般的に複雑な設計のために、以下に示すようにISPフロントエンド処理ロジック部80及びISPパイプ処理ロジック部82の説明を別個の節に分ける方が有効だろう。特に本出願の図8〜図26は、ISPフロントエンド処理ロジック部80の種々の実施形態及び態様の説明に関連し、その一方で、本出願の図27〜図57は、ISPパイプ処理ロジック部82の種々の実施形態及び態様の説明に関連する。
ISPフロントエンド処理ロジック部
図8は、一実施形態に従ってISPフロントエンド処理ロジック部80において実現される機能ロジックブロックを示すより詳細なブロック図である。図7において上述したように、撮影装置30及び/又はセンサインタフェース94の構成に依存して、raw画像データは、1つ以上の撮像素子90によりISPフロントエンド処理ロジック部80に提供される。図示する実施形態において、raw画像データは、第1の撮像素子90a(Sensor0)及び第2の撮像素子90b(Sensor1)によりISPフロントエンド処理ロジック部80に提供される。図示するように、撮像素子90a及び90bは、raw画像データをそれぞれ信号Sif0及びSif1として提供する。撮像素子90a及び90bは、統計処理ユニット120及び122とそれぞれ関連付けられる。
尚、raw画像データSif0及びSif1は、処理ユニット120及び122にそれぞれ直接提供されるか、あるいはメモリ108に格納されるか又は書き込まれた後、信号SifIn0及びSifIn1としてそれぞれ検索される。従って、ISPフロントエンド処理ロジック部80は、Sensor0(90a)により撮像されたraw画像データを表すSif0又はSifIn0信号を統計処理ユニット120に提供する選択ロジック部124を含み、Sensor1(90b)により撮像されたraw画像データを表すSif1又はSifIn1信号を統計処理ユニット122に提供する選択ロジック部126を更に含む。統計処理ユニット120及び122の各々は、raw撮像素子データの解析を介して取得された種々の統計データを判定し、出力信号Stats0及びStats1により示されるように統計の集合をそれぞれ提供する。上述したように、統計データ(Stats0及びStats1)は、撮影装置30及び/又はISPパイプ処理ロジック部82を動作するために使用される種々の制御パラメータの判定のために制御ロジック部84に提供される。
統計処理ユニット120及び122に加えて、ISPフロントエンド処理ロジック部80は画素処理ユニット130を更に含む。画素処理ユニット130は、raw画像データに対して画素毎に種々の画像処理動作を実行する。図示するように、画素処理ユニット130は、選択ロジック部132を介して、raw画像信号Sif0(Sensor0から)又はSif1(Sensor1から)を受信するか、あるいはメモリ108からraw画像データFEProcInを受信する。理解されるように、図8に示す選択ロジックブロック(120、122及び132)は、制御信号に応答して複数の入力信号のうちの1つを選択するマルチプレクサ等のあらゆる適切な種類のロジック部により提供される。画素処理ユニット130は、以下に更に説明するように画素処理動作を実行する時に種々の信号(例えば、時間フィルタリング中に使用される動き履歴及びルマデータを表すRin、Hin、Hout及びYout)を受信及び出力する。画素処理ユニット130の出力109(FEProcOut)は、1つ以上の先入れ先出し(FIFO)キュー等を介してISPパイプ処理ロジック部82に転送されるか、あるいはメモリ108に送出される。
図8のISPフロントエンド処理ロジック部80において示される統計処理及び画素処理動作の更に詳細な説明を続ける前に、種々のISPフレーム領域の既定に関して簡単な概要を提供することにより、本発明の主題をより簡単に理解できるだろう。このことを考慮して、画像ソースフレーム内で規定される種々のフレーム領域を図9に示す。画像処理回路網32に提供されたソースフレームに対する形式は、8、10、12又は14ビット精度の画素形式を利用するのと同様に、上述したタイル又はリニアアドレス指定モードを使用する。図9に示すような画像ソースフレーム150は、センサフレーム領域152、rawフレーム領域154及びアクティブ領域156を含む。一般にセンサフレーム152は、撮像素子90が画像処理回路網32に提供できる最大フレームサイズである。rawフレーム領域154は、ISPフロントエンド処理ロジック部80に送出されるセンサフレーム152の領域として規定される。アクティブ領域156は、一般に特定の画像処理動作のために処理が実行されるrawフレーム領域154内のソースフレーム150の一部として規定される。本技術の実施形態によると、アクティブ領域156は、種々の画像処理動作に対して同一であっても異なってもよい。
本技術の態様によると、ISPフロントエンド処理ロジック部80はrawフレーム154のみを受信する。従って、説明の目的で、ISPフロントエンド処理ロジック部80に対するグローバルフレームサイズは、幅158及び高さ160により判定されるようなrawフレームサイズと仮定される。いくつかの実施形態において、センサフレーム152の境界からrawフレーム154までのオフセットは、制御ロジック部84により判定され且つ/又は維持される。例えば制御ロジック部84は、センサフレーム152に対して特定されるxオフセット162及びyオフセット164等の入力パラメータに基づいてrawフレーム領域154を判定するファームウェアを含む。更にいくつかの例において、ISPフロントエンド処理ロジック部80又はISPパイプ処理ロジック部82内の処理ユニットは、rawフレーム内にあるがアクティブ領域156外にある画素が処理されないように、すなわち変更されないままであるように、規定されたアクティブ領域を有する。例えば幅166及び高さ168を有する特定の処理ユニットに対するアクティブ領域156は、rawフレーム154に対するxオフセット170及びyオフセット172に基づいて規定される。更にアクティブ領域が特に規定されない場合、画像処理回路網32の一実施形態は、アクティブ領域156がrawフレーム154と同一である(例えば、xオフセット170及びyオフセット172は双方とも0である)と仮定する。従って、画像データに対して実行される画像処理動作の目的で、境界条件はrawフレーム154又はアクティブ領域156の境界に対して規定される。
これらの点を考慮して図10を参照すると、ISPフロントエンド画素処理ロジック部130(図8において先に説明した)の更に詳細な図が本技術の一実施形態に従って示される。図示するように、ISPフロントエンド画素処理ロジック部130は、時間フィルタ180及びビニング補償フィルタ182を含む。時間フィルタ180は、入力画像信号Sif0、Sif1又はFEProcInのうちの1つを受信し、いずれかの追加の処理が実行される前にraw画素データに対して動作する。例えば時間フィルタ180は、最初に時間方向に画像フレームを平均することにより雑音を低減するために画像データを処理する。
時間フィルタ180は、動き及び明るさの特性に基づいて画素適応性を有する。例えば画素の動きが多い場合、結果として得られる処理済み画像において「トレーリング」又は「ゴーストアーチファクト」が発生するのを回避するために、フィルタリング明度は低減され、その一方で動きが殆ど又は全く検出されない場合はフィルタリング明度が増加される。更にフィルタリング明度は、明るさのデータ(例えば、「ルマ」)に基づいて調整される。例えば画像の明るさが増加すると、フィルタリングアーチファクトは人の眼でより見えやすくなる。従って、画素が高レベルな明るさを有する場合、フィルタリング明度は更に低減される。
時間フィルタリングを適用する際、時間フィルタ180は、先にフィルタリングされたフレーム又は元のフレームから得られる参照画素データ(Rin)及び動き履歴入力データ(Hin)を受信する。時間フィルタ180は、これらのパラメータを使用して、動き履歴出力データ(Hout)及びフィルタリングされた画素出力(Yout)を提供する。フィルタリングされた画素出力Youtは、ビニング補償フィルタ182に渡される。ビニング補償フィルタ182は、出力信号FEProcOutを生成するためにフィルタリングされた画素出力データYoutに対して1つ以上のスケーリング動作を実行するように構成される。上述したように、処理された画素データFEProcOutは、その後ISPパイプ処理ロジック部82に転送される。
図11を参照すると、図10に示した時間フィルタにより実行される時間フィルタリング処理190を示す処理図がある実施形態に従って示される。時間フィルタ180は2タップフィルタを含み、フィルタ係数は、動き及び明るさのデータに少なくとも部分的に基づいて画素毎に適応的に調整される。例えば変数「t」が時間値を示す場合の入力画素x(t)は、フィルタ係数を含む動き履歴テーブル(M)192において動き指標ルックアップテーブルを生成するために先にフィルタリングされたフレーム又は元の先行フレームの参照画素r(t−1)と比較される。更に、動き履歴入力データh(t−1)に基づいて、現在の入力画素x(t)に対応する動き履歴出力h(t)が判定される。
動き履歴出力h(t)及びフィルタ係数Kは、動きデルタd(j,i,t)に基づいて判定され、(j,i)は現在の画素x(j,i,t)の空間位置の座標を表す。動きデルタd(j,i,t)は、水平方向に同一の場所に配置された同一色の3つの画素に対する参照画素と元の画素との間の3つの絶対デルタのうちの最大値を判定することにより計算される。例えば図12を参照すると、元の入力画素206、208及び210に対応するそれぞれ同一の場所に配置された3つの参照画素200、202及び204の空間位置が示される。一実施形態において、動きデルタは、以下の式を使用してそれらの元の画素及び参照画素に基づいて算出される。
図11に戻ると、動きデルタ値が判定された時に、動きテーブル(M)192からフィルタ係数Kを選択するのに使用される動き指標ルックアップは、現在の画素(例えば空間位置(j,i)にある)に対する動きデルタd(t)と動き履歴入力h(t−1)とを合計することにより算出される。例えばフィルタ係数Kは以下のように判定される。
更に動き履歴出力h(t)は、以下の式を使用して判定される。
次に現在の入力画素x(t)の明るさは、ルマテーブル(L)194においてルマ指標ルックアップを生成するために使用される。一実施形態において、ルマテーブルは、0〜1の減衰率を含み、ルマ指標に基づいて選択される。第2のフィルタ係数K'は、以下の式に示すように第1のフィルタ係数Kとルマ減衰率とを乗算することにより算出される。
K'に対して判定された値は、時間フィルタ180に対するフィルタ係数として使用される。上述したように、時間フィルタ180は2タップフィルタである。更に時間フィルタ180は、フィルタリングされた先行フレームを使用する無限インパルス応答(IIR)フィルタとして又は元の先行フレームを使用する有限インパルス応答(FIR)フィルタとして構成される。時間フィルタ180は、現在の入力画素x(t)、参照画素r(t−1)及びフィルタ係数K'を使用し、以下の式を使用してフィルタリング済み出力画素y(t)(Yout)を計算する。
上述したように、図11に示す時間フィルタリング処理190は画素毎に実行される。一実施形態において、同一の動きテーブルM及びルマテーブルLは全ての色成分(例えば、R、G及びB)に対して使用される。更にいくつかの実施形態は、制御ロジック部84からの制御信号に応答するなどして時間フィルタリングを回避するバイパス機構を提供する。
時間フィルタ180の出力は、ビニング補償フィルタ(BCF)182に送出され、BCF182は、カラーサンプルの線形配置に依存するISPパイプ処理ロジック部82(例えば、デモザイク等)における後続の画像処理動作が正常に動作できるようにカラーサンプルの非線形配置を補償するために画像画素を処理する。更にBCF182は、垂直方向及び/又は水平方向のスケーリング等の1つ以上のスケーリング動作を適用することにより画素データを処理する。図13は、開示される一実施形態に従って、スケーリングロジック部214及び微分解析器216を含むビニング補償フィルタ182を示すブロック図である。図14は、スケーリング動作を実行するために利用される処理220を示す。
図13に示すように、スケーリングロジック部214は、出力FEProcOut(109)を生成し、この出力は、上述したように、以下に更に説明するような追加の処理のためにISPパイプ処理ロジック部82に転送される。一実施形態において、BCF182により実行されたスケーリング動作は、ソース画像から画素を選択し、各画素と重み付け因子とを乗算し、且つ目標画素を形成するために画素値を合計する1つ以上のマルチタップポリフェーズフィルタを使用して実行される。理解されるように、スケーリング動作で使用される画素の選択は、現在の画素位置及びフィルタにより提供されるタップ数に少なくとも部分的に依存する。更にフィルタリング動作は、同一色の画素を使用して色成分毎に行われ、重み付け因子(又は係数)は、ルックアップテーブルから取得され、現在の画素間の断片の位置に基づいて判定される。
図示する実施形態において、微分解析器216はデジタル微分解析器(DDA)であり、スケーリング動作中に現在の画素位置を制御するように構成される。単なる例として、DDA216は、12ビットの整数部及び20ビットの小数部を有する2の補数の固定小数点数を含む32ビットデータレジスタとして提供される。12ビットの整数部は、現在の画素位置を判定するために使用される。小数部は、係数テーブルへの指標として使用される。一実施形態において、垂直方向及び水平方向のスケーリング成分は、20ビットの小数部のうち上位3ビットが指標に対して使用されるように深度8の係数テーブルを利用する。
32ビットDDAレジスタ(DDA[31:0])に基づく一例を提供するために、現在の中心のソース画素の場所(currPixel)は12ビットの整数部DDA[31:20]により規定され、次のビットDA[19]が1である場合は切り上げられる(+1)。currPixelに隣接する画素のソース画素値は、フィルタにより提供されるタップ数に従って取得される。例えば一実施形態において、垂直方向のスケーリングは、currPixelの両側の同一色の1画素が選択されるように(例えば、−1、0、+1)3タップポリフェーズフィルタを使用して実行され、水平方向のスケーリングは5タップポリフェーズフィルタを使用して実行され、ここでcurrPixelの両側の同一色の2つの画素が選択される(例えば、−2、−1、0、+1、+2)。更に各タップは、自身の係数テーブルを有する。従って、深度8の3つのテーブルが3タップ垂直スケーリングフィルタに対して提供され、深度8の5つのテーブルが5タップ水平スケーリングフィルタに対して提供される。現在の係数指標(currIndex)は、DDA[19:16](小数部DDA[19:0]の上位3ビット)により規定され、次のビットDDA[15]が1である場合に切り上げられる(+1)。
従って、BCF182で行われるフィルタリング処理は、中心画素(currPixel)周辺のソース画素値を取得すること及びcurrIndexを使用してアクセスされるテーブルの適切な係数とそれらのソース画素値とを乗算することを含む。フィルタリング処理が所定の画素に対して完了すると、ステップ値(DDAStep)は次の画素の位置を判定するためにDDA216に加算され、フィルタリング/スケーリング動作は後続画素に対して繰り返される。これを図14に示す処理220により更に示す。例えばステップ222で開始すると、DDA216は初期化され、現在の画素位置が識別される。上述したように、DDA216が2の補数の固定小数点数を格納する32ビットレジスタを含む場合、現在の画素位置は、レジスタデータの上位12ビット(整数部)により特定される。
ステップ224において、マルチタップフィルタリングは、垂直方向及び水平方向のスケーリングに対して実行される。例として、3タップポリフェーズフィルタ及び5タップポリフェーズフィルタが垂直方向及び水平方向のスケーリングに対してそれぞれ使用されると仮定し、撮像素子90がベイヤカラーフィルタパターン(図2)を使用すると仮定すると、垂直方向のスケーリング成分は4つの別個の3タップポリフェーズフィルタを含む。各3タップフィルタは、色成分Gr、R、B及びGbの各々に対するものである。各3タップフィルタは、係数に対する指標及び現在の中心画素のステッピングを制御するためにDDAを使用する。同様に、水平方向のスケーリング成分は、4つの別個の5タップポリフェーズフィルタを含み、各5タップフィルタは色成分Gr、R、B及びGbの各々に対するものである。各5タップフィルタは係数に対する指標及び現在の中心画素のステッピングを制御するためにDDAを使用する。境界においては、水平方向及び垂直方向のフィルタリング処理で使用される画素は、DDAにより確立されるように現在の画素の位置に依存する。例えばフィルタにより必要とされる1つ以上のソース画素が境界の外側に存在するように現在の画素(currPixel)がフレームの境界に近接することをDDAの値が示す場合、境界の画素は繰り返される。
最後にステップ226に示すように、垂直方向及び水平方向のスケーリング動作が所定の現在の画素(currPixel)に対して完了すると、DDA216は、次の画素の位置に進められ、処理220は、ステップ224に戻り、次の画素に対して垂直方向及び水平方向のスケーリングを実行する。上述したように、出力FEProcOut(109)であるBCF182の出力は、追加の処理のためにISPパイプ処理ロジック部82に転送される。しかし、この説明の焦点をISPパイプ処理ロジック部82に移す前に、ISPフロントエンド処理ロジック部80において実現される統計処理ユニット(例えば、122及び124)により提供される種々の機能性について更に詳細に説明する。
統計処理ユニット120及び122の一般的な説明に戻ると、これらのユニットは、自動露出、自動ホワイトバランス、オートフォーカス、フリッカ検出、黒レベル補償及びレンズシェーディング補正等に関する統計等のraw画像信号(Sif0及びSif1)を撮像し且つ提供する撮像素子に関する種々の統計を収集するように構成される。これを行う際、統計処理ユニット120及び122は、1つ以上の画像処理動作を各入力信号Sif0(Sensor0からの)及びSif1(Sensor1からの)に適用する。
例えば図15を参照すると、Sensor0(90a)と関連付けられた統計処理ユニット120のより詳細なブロック図が一実施形態に従って示される。図示するように、統計処理ユニット120は、以下の機能ブロック、すなわち欠陥画素検出及び補正ロジック部230、黒レベル補償(BLC)ロジック部232、レンズシェーディング補正ロジック部234、逆BLCロジック部236及び統計収集ロジック部238を含む。これらの機能ブロックの各々について以下に説明する。更に、Sensor1(90b)と関連付けられた統計処理ユニット122は同様に実現されることが理解されるべきである。
最初に、選択ロジック部124の出力(例えば、Sif0又はSifIn0)がフロントエンド欠陥画素補正ロジック部230により受信される。理解されるように、「欠陥画素」は、照度を正確に検知できない撮像素子90内の撮像画素を示すと認識される。欠陥画素は、多くの要因に起因する可能性があり、「ホット」(又は漏れ)ピクセル、「スタック」ピクセル及び「デッドピクセル」を含む。一般に「ホット」ピクセルは、同一の空間位置で同一の光量を与えられた非欠陥画素より明るく見える。ホットピクセルは、リセット失敗及び/又は高漏洩に起因する。例えばホットピクセルは、非欠陥画素に対して通常より多くの電荷漏洩を示し、非欠陥画素より明るく見える。更に「デッド」ピクセル及び「スタック」ピクセルは、製造及び/又は組み立て行程中に撮像素子を汚染する塵又は他の微量の物質等の不純物のために発生し、これは特定の欠陥画素を非欠陥画素より暗く又は明るくするか、あるいは実際にさらされる光量に関係なく欠陥画素を特定の値に固定する原因となる。更に、デッドピクセル及びスタックピクセルは、撮像素子の動作中に発生する回路の故障の結果発生する可能性がある。例として、スタックピクセルは常にオンの時(例えば、フル充電されている時)に現れ、従ってより明るく見え、デッドピクセルは常にオフの時に現れる。
ISPフロントエンド処理ロジック部80の欠陥画素検出及び補正(DPDC)ロジック部230は、統計収集(例えば、238)において考慮される前に欠陥画素を補正する(例えば、欠陥画素値を置換する)。一実施形態において、欠陥画素補正は、色成分(例えば、ベイヤパターンに対してはR、B、Gr及びGb)毎に別個に実行される。一般にフロントエンドDPDCロジック部230は、動的欠陥補正を提供し、欠陥画素の場所が同一色の隣接画素を使用して計算された方向勾配に基づいて自動的に判定される。理解されるように、欠陥は、所定の時間において欠陥画素であるような画素の特徴が隣接画素における画像データに依存するという意味で「動的」である。例として、常に最大明るさであるスタックピクセルは、スタックピクセルの場所がより明るい色又は白色により占められている現在の画像の領域にある場合は欠陥画素と考えられない。逆に、スタックピクセルが黒色又はより暗い色により占められている現在の画像の領域にある場合、スタックピクセルは、DPDCロジック部230による処理中に欠陥画素として識別され且つ補正される。
DPDCロジック部230は、画素間の方向勾配を使用して現在の画素に欠陥画素であるかを判定するために現在の画素の両側にある1つ以上の同一色の水平隣接画素を利用する。現在の画素に欠陥画素であると識別される場合、その欠陥画素の値は水平隣接画素の値で置換される。例えば一実施形態において、rawフレーム154(図9)の境界内にある同一色の5つの水平隣接画素が使用され、5つの水平隣接画素は、現在の画素及び2つの隣接画素を両側に含む。従って、図16に示すように、所定の色成分c及び現在の画素Pに対して、水平隣接画素P0、P1、P2及びP3はDPDCロジック部230により考慮される。尚、現在の画素Pの場所によって、rawフレーム154の外側にある画素は画素間の勾配を算出する時に考慮されない。
例えば図16に示すように、「左エッジ」の例240において、現在の画素Pはrawフレーム154の最も左側のエッジにあるため、rawフレーム154の外側にある隣接画素P0及びP1は考慮されず、画素P、P2及びP3(N=3)のみが残る。「左エッジ+1」の例242において、現在の画素Pは、rawフレーム154の最も左側のエッジから1単位画素離れているため、画素P0は考慮されない。これにより、画素P1、P、P2及びP3(N=4)のみが残る。更に「中心」の例244において、現在の画素Pの左側にある画素P0及びP1並びに現在の画素Pの右側にある画素P2及びP3は、rawフレーム154の境界内にあるため、隣接画素P0、P1、P2及びP3の全て(N=5)が画素間の勾配を算出する際に考慮される。更に、rawフレーム154の最も右側のエッジに近づくと、同様の例246及び248が発生するだろう。例えば、「右エッジ−1」の例246を仮定すると、現在の画素Pはrawフレーム154の最も右側のエッジから1単位画素離れているため、画素P3は考慮されない(N=4)。同様に、「右エッジ」の例248において、現在の画素Pはrawフレーム154の最も右側のエッジにあるため、隣接画素P2及びP3の双方とも考慮されない(N=3)。
図示する実施形態において、ピクチャ境界(例えば、rawフレーム154)内の隣接画素(k=0〜3)毎に画素間の勾配が以下のように計算される。
画素間の勾配が判定されると、欠陥画素検出は以下のようにDPDCロジック部230により実行される。最初に、特定の数の勾配Gkが変数dprThにより示される特定の閾値以下である場合に画素は欠陥画素であると仮定する。閾値dprTh以下であるピクチャ境界内の隣接画素に対する勾配数のカウント(C)が画素毎に累積される。例として、閾値dprTh以下である勾配Gkの累積カウントCは、rawフレーム154内の隣接画素毎に以下のように計算される。
理解されるように、閾値dprThは色成分に依存して変動する。次に、累積カウントCが変数dprMaxCで示される最大カウント以下であると判定される場合、画素は欠陥画素と考えられる。このロジックは以下のように表される。
欠陥画素は、複数の置換規則を使用して置換される。例えば一実施形態において、欠陥画素はすぐ左側にある画素P1と置換される。境界条件(例えば、P1がrawフレーム154の外側にある)において、欠陥画素はすぐ右側にある画素P2で置換される。更に、置換値は連続する欠陥画素検出動作の間保持されるか又は伝播されることが理解されるべきである。例えば図16に示した水平方向の画素の集合を参照すると、P0又はP1が欠陥画素であるとDPDCロジック部230により以前に識別された場合、それらに対応する置換値は、欠陥画素検出及び現在の画素Pの置換に使用される。
上述した欠陥画素検出及び補正技術を要約するために、そのような処理を示すフローチャートを図17で提供し、図中符号250で示す。図示するように、処理250はステップ252で開始し、現在の画素(P)が受信され且つ隣接画素の集合が識別される。上述した実施形態に従って、隣接画素は現在の画素の両側それぞれの同一色成分の2つの水平画素(例えば、P0、P1、P2及びP3)を含む。次にステップ254において、水平方向の画素間の勾配は、上記の式6で説明したように、rawフレーム154内の各隣接画素に対して計算される。その後、ステップ256において、特定の閾値dprTh以下である勾配数のカウントCが判定される。判断ロジック258で示すように、CがdprMaxC以下である場合、処理250はステップ260に継続し、現在の画素は欠陥画素であると識別される。欠陥画素は、ステップ262において置換値を使用して補正される。更に判断ロジック258に戻ると、CがdprMaxCより大きい場合、ステップ264に進み、現在の画素は欠陥画素ではないと識別され、その値は変更されない。
尚、ISPフロントエンド統計処理中に適用される欠陥画素検出/補正技術は、ISPパイプ処理ロジック部82において実行される欠陥画素検出/補正よりロバスト性が低いだろう。例えば以下に更に詳細に説明するように、ISPパイプ処理ロジック部82において実行される欠陥画素検出/補正は、動的欠陥補正に加えて固定欠陥補正を提供し、欠陥画素の場所は演繹的に既知であり、1つ以上の欠陥テーブルにロードされる。更にISPパイプ処理ロジック部82における動的欠陥補正は、水平方向及び垂直方向の双方の画素勾配を考慮し、以下に説明するようにスペックリングの検出/補正を更に提供する。
図15に戻ると、DPDCロジック部230の出力は黒レベル補償(BLC)ロジック部232に渡される。BLCロジック部232は、統計収集に使用される画素における色成分「c」(例えば、ベイヤに対するR、B、Gr及びGb)毎に個々にデジタルゲイン、オフセット及びクリッピングを提供する。例えば以下の演算により表されるように、現在の画素の入力値は符号付きの値の分だけオフセットされ、その後ゲインと乗算される。
式中、Xは所定の色成分c(例えば、R、B、Gr又はGb)に対する入力画素値を表し、O[c]は現在の色成分cに対する符号付き16ビットオフセットを表し、G[c]は色成分cに対するゲイン値を表す。一実施形態において、ゲインG[c]は、2ビットの整数部及び14ビットの小数部(例えば、浮動小数点表現で2.14)を有する16ビットの符号なし数であり、G[c]は丸められる。単なる例として、ゲインG[c]は0〜4X(例えば、4×入力画素値)の範囲を有する。
次に上記の式10により示されるように、計算された符号付きの値Yは、最小及び最大範囲にクリップされる。
変数min[c]及びmax[c]は、最小出力値及び最大出力値に対する符号付き16ビットクリッピング値をそれぞれ表す。一実施形態において、BLCロジック部232は、色成分毎に最大値より上及び最小値より下にクリップされた画素数のカウントを維持するように構成される。
その後、BLCロジック部232の出力はレンズシェーディング補正(LSC)ロジック部234に転送される。LSCロジック部234は、一般に撮影装置30のレンズ88の光学的中心からの距離にほぼ比例する明度の低下を補償するために画素毎に適切なゲインを適用するように構成される。理解されるように、そのような低下は、レンズの幾何学的光学の結果として発生する。例として、理想的な光学特性を有するレンズは、コサイン4乗則で示される入射角の余弦の4乗cos4(θ)としてモデル化される。しかし、レンズの製造が完璧でないため、レンズにおける種々の不規則性は、光学特性が仮定したコサイン4乗モデルから外れる原因となるだろう。例えばレンズのエッジが薄いと、一般に最も多くの不規則性を示す。更にレンズシェーディングパターンにおける不規則性は、撮像素子内のマイクロレンズアレイがカラーアレイフィルタと完全に位置合わせされていない結果起こる。また、いくつかのレンズにおける赤外線(IR)フィルタにより、明度の低下は光源に依存するため、レンズシェーディングゲインは検出された光源に従って適応される。
図18を参照すると、一般的なレンズに対する光強度対画素位置を示す3次元プロファイルが示される。図示するように、レンズの中心272の近くの光強度は、レンズの隅又はエッジ274に向かって徐々に低下する。図18に示すレンズシェーディングの不規則性は図19により適切に示される。図19は、隅及びエッジに向かって光強度の低下を示す写真276である。特に、画像のほぼ中心の光強度は画像の隅及び/又はエッジにおける高度より明るく見える。
本技術の実施形態に従って、レンズシェーディング補正ゲインは、色チャネル(例えば、ベイヤフィルタに対してはGr、R、B、Gb)毎にゲインの2次元格子として特定される。ゲイン格子点は、rawフレーム154(図9)内の水平方向及び垂直方向に固定間隔で分散される。図9において上述したように、rawフレーム154は、処理が特定の画像処理動作のために実行される領域を規定するアクティブ領域156を含む。レンズシェーディング補正動作に関して、LSC領域と呼ばれるアクティブ処理領域はrawフレーム領域154内に規定される。以下に説明するように、LSC領域は、ゲイン格子境界内又はゲイン格子境界に完全に存在すべきであり、存在しない場合は結果が不確定である可能性がある。
例えば図20を参照すると、rawフレーム154内に規定されるLSC領域280及びゲイン格子282が示される。LSC領域280は、幅284及び高さ286を有し、rawフレーム154の境界に対するxオフセット288及びyオフセット290により規定される。格子ゲイン356の基準296からLSC領域280の第1の画素298までの格子オフセット(例えば、格子xオフセット292及び格子yオフセット294)が提供される。これらのオフセットは、所定の色成分に対する第1の格子間隔内である。水平方向(x方向)の格子点間隔300及び垂直方向(y方向)の格子点間隔302は、色チャネル毎に別個に特定される。
上述したように、ベイヤカラーフィルタアレイを使用することを仮定すると、格子ゲインの4つの色チャネル(R、B、Gr及びGb)が規定される。一実施形態において、合計で4K(4096)個の格子点が利用可能であり、色チャネル毎に格子ゲインの開始場所に対する基準アドレスがポインタを使用するなどして提供される。更に水平方向の格子点間隔(300)及び垂直方向の格子点間隔(302)は、1つの色平面の解像度で画素に関して規定され、特定の実施形態において、8、16、32、64又は128等の2の累乗により区切られた格子点間隔を提供する。理解されるように、2の累乗を利用することにより、シフト(例えば、除算)及び加算演算を使用するゲイン補間の効率的な実現例が達成される。これらのパラメータを使用して、撮像素子トリミング領域が変更している時でも同一のゲイン値が使用できる。例えば、全ての格子ゲイン値を更新するのではなく、いくつかのパラメータのみがトリミング領域に格子点を位置合わせするために更新される必要がある(例えば、格子オフセット300及び302を更新する)。単なる例として、これは、トリミングがデジタルズーム動作中に使用される場合に有用である。更に図20の実施形態に示すゲイン格子356は一般に同等に離間された格子点を有するものとして示されるが、他の実施形態において、格子点は必ずしも同等に離間される必要はないことが理解されるべきである。例えばいくつかの実施形態において、格子点は、LSC領域280の中心に集中しないようにし且つ一般にレンズシェーディング歪みがより見えやすいLSC領域280の隅に向かってより集中するように不均一に(例えば、対数的に)分散される。
本発明で開示されたレンズシェーディング補正技術によると、現在の画素の場所がLSC領域280の外側にある場合、ゲインは適用されない(例えば、画素は変更されずに渡される)。現在の画素の場所がゲイン格子の場所にある場合、特定の格子点におけるゲイン値が使用される。しかし、現在の画素の場所が格子点の間にある場合、ゲインは双線形補間を使用して補間される。図21における画素の場所「G」に対するゲインを補間する一例を以下に提供する。
図21に示すように、画素Gは、それぞれ現在の画素の場所Gに対して左上のゲイン、右上のゲイン、左下のゲイン及び右下のゲインに対応する格子点G0、G1、G2及びG3の間にある。格子間隔の水平方向のサイズ及び垂直方向のサイズは、X及びYでそれぞれ表される。更にii及びjjは、それぞれ左上のゲインG0の位置に対する水平方向の画素オフセット及び垂直方向の画素オフセットを表す。これらの因子に基づいて、位置Gに対応するゲインは以下のように補間される。
上記の式11aの項は、以下の式を取得するために結合される。
一実施形態において、補間方法は、各画素において乗数を使用するのではなく、増分的に実行され、それにより計算の複雑さを軽減する。例えば項(ii)(jj)は、ゲイン格子356の場所(0,0)において0に初期化され且つ現在の列数が1画素増加する度に現在の行数だけ増分される加算器を使用して実現される。上述したように、X及びYの値が2の累乗として選択されるため、ゲイン補間は単純なシフト演算を使用して達成される。従って、乗数は格子点G0においてのみ(全ての画素ではなく)必要とされ、残りの画素に対する補間ゲインを判定するために加算演算のみが必要とされる。
特定の実施形態において、格子点間のゲインの補間は14ビット精度を使用し、格子ゲインは2ビットの整数部及び8ビットの小数部(例えば、浮動小数点表現で2.8)の符号なし10ビット値である。この規則を使用して、ゲインは0〜4Xの範囲を有し、格子点間のゲイン解像度は1/256である。
レンズシェーディング補正技術は、図22に示す処理310により更に示される。図示するように、処理310はステップ312で開始し、現在の画素位置が図20のLSC領域280の境界に対して判定される。次に判断ロジック314は、現在の画素位置がLSC領域280内にあるかを判定する。現在の画素位置がLSC領域280の外側である場合、処理310はステップ316に継続し、ゲインは現在の画素に適用されない(例えば、画素は変更されずに渡される)。
現在の画素位置がLSC領域280内にある場合、処理310は判断ロジック318に継続し、現在の画素の位置がゲイン格子280内の格子点に対応するかが更に判定される。現在の画素位置が格子点に対応する場合、ステップ320で示すように、その格子点におけるゲイン値が選択され且つ現在の画素に適用される。現在の画素位置が格子点に対応しない場合、処理310はステップ322に継続し、ゲインは境界の格子点(例えば、図21のG0、G1、G2及びG3)に基づいて補間される。例えば補間されたゲインは、上述したように、式11a及び11bに従って計算される。その後、処理310はステップ324で終了する。ステップ324において、ステップ322からの補間されたゲインは現在の画素に適用される。
理解されるように、処理310は画像データの画素毎に繰り返される。例えば図23に示すように、LSC領域(例えば、280)内の各画素位置に適用されるゲインを示す3次元プロファイルが示される。図示するように、図18及び図19に示すように隅において光強度が大きく低下するため、画像の隅328において適用されたゲインは、一般に画像の中心に適用されたゲインより大きい。本明細書で説明するレンズシェーディング補正技術を使用して、画像中に光強度の低下が現れるのを低減させるか又はほぼ除去できる。例えば図24は、図19の写真276がレンズシェーディング補正の適用後にどのように見えるかの一例を提供する。図示するように、図19の元の画像と比較して、全体の光強度が一般に画像にわたりより均一である。特に画像のほぼ中心における光強度は、画像の隅及び/又はエッジにおける光強度値とほぼ等しいだろう。更に上述したように、いくつかの実施形態において、補間されたゲインの計算(式11a及び11b)は、後続の列及び行の増分構造を利用することにより格子点間の追加の「デルタ」で置換される。理解されるように、これにより計算の複雑さは軽減される。
更なる実施形態において、格子ゲインを使用することに加えて、画像の中心からの距離の関数としてスケーリングされる色成分毎のグローバルゲインが使用される。画像の中心は、入力パラメータとして提供され、均一に照明された画像の各画像画素の光強度振幅を解析することにより推定される。識別された中心画素と現在の画素との間の半径距離は、以下に示すように線形スケーリングされた径方向のゲインGrを取得するために使用される。
式中、Gp[c]は、色成分c(例えば、ベイヤパターンに対してはR、B、Gr及びGb成分)毎のグローバルゲインパラメータを表し、Rは中心画素と現在の画素との間の半径距離を表す。
上述したLSC領域280を示す図25を参照すると、距離Rはいくつかの技術を使用して計算又は推定される。図示するように、画像の中心に対応する画素Cは座標(x0,y0)を有し、現在の画素Gは座標(xG,yG)を有する。一実施形態において、LSCロジック部234は以下の式を使用して距離Rを計算する。
別の実施形態において、以下に示すより単純な推定式がRの推定値を取得するために利用される。
式14において、推定係数α及びβは、8ビット値にスケーリングされる。単なる例として、一実施形態において、Rの推定値を提供するために、αは123/128にほぼ等しく、βは51/128にほぼ等しい。これらの係数値を使用すると、最大誤差は約4%であり、中間誤差は約1.3%である。従って、推定技術はRを判定する際(式13)に計算技術を利用するより多少精度が低いが、誤差範囲は十分に小さく、推定値すなわちRは本発明のレンズシェーディング補正技術に対して径方向のゲイン成分を判定するのに適する。
径方向のゲインGrは、現在の画素に適用される合計のゲインを判定するために現在の画素に対する補間された格子ゲイン値G(式11a及び11b)と乗算される。出力画素Yは、以下に示すように入力画素値Xを合計のゲインと乗算することにより得られる。
従って、本技術によると、レンズシェーディング補正は、補間されたゲインのみ、補間されたゲイン及び径方向のゲイン成分の双方を使用して実行される。あるいは、レンズシェーディング補正は、径方向の近似誤差を補償する径方向格子テーブルと共に径方向のゲインのみを使用して達成される。例えば図20に示すような矩形のゲイン格子356の代わりに、径方向及び角度方向にゲインを規定する複数の格子点を有する径方向のゲイン格子が提供される。従って、LSC領域280内の径方向の格子点の1つと位置合わせされていない画素に適用するゲインを判定する時、最適な補間済みレンズシェーディングゲインを判定するために画素を囲む4つの格子点を使用して補間が適用される。
図26を参照すると、レンズシェーディング補正の補間済み径方向ゲイン成分の使用について処理340により示される。尚、処理340は、図22において上述した処理310に類似するステップを含む。従って、そのようなステップは同様の図中符号で示されている。ステップ312で開始すると、現在の画素が受信され、LSC領域280に対するその画素の場所が判定される。次に、判断ロジック314は、現在の画素位置がLSC領域280内にあるかを判定する。現在の画素位置がLSC領域280の外側にある場合、処理340はステップ316に継続し、ゲインは現在の画素に適用されない(例えば、画素は変更されずに渡される)。現在の画素位置がLSC領域280内にある場合、処理340はステップ342及び判断ロジック318に同時に継続する。まずステップ342を参照すると、画像の中心を識別するデータが検索される。上述したように、画像の中心を判定することは、均一な照明下で画素に対する光強度振幅を解析することを含む。これは例えば較正中に行われる。従って、ステップ342は、各画素を処理するために画像の中心を繰り返し計算することを必ずしも含まず、先に判定された画像の中心のデータ(例えば、座標)を検索することを示す。画像の中心が識別されると、処理340はステップ344に継続し、画像の中心と現在の画素の場所(R)との間の距離が判定される。上述したように、Rの値は計算(式13)又は推定(式14)される。その後、ステップ346において、径方向のゲイン成分Grは、距離R及び現在の画素の色成分に対応するグローバルゲインパラメータを使用して計算される(式12)。径方向のゲイン成分Grは、以下のステップ350で説明するように、合計のゲインを判定するために使用される。
判断ロジック318に戻ると、現在の画素位置がゲイン格子280内の格子点に対応するかが判定される。現在の画素位置が格子点に対応する場合、ステップ348で示すように、その格子点におけるゲイン値が判定される。現在の画素位置が格子点に対応しない場合、処理340はステップ322に継続し、補間済みゲインは境界の格子点(例えば、図21のG0、G1、G2及びG3)に基づいて計算される。例えば補間済みゲインは、上述したように式11a及び11bに従って計算される。次のステップ350において、合計のゲインは、ステップ346で判定された径方向のゲイン並びに格子ゲイン(ステップ348)又は補間済みゲイン(322)の一方に基づいて判定される。理解されるように、これは判断ロジック318が処理340中に選ぶ分岐に依存する。ステップ352で示すように、合計のゲインは現在の画素に適用される。尚、処理310と同様に、処理340は画像データの画素毎に繰り返される。
格子ゲインと共に径方向のゲインを使用することにより、種々の利点が提供される。例えば径方向のゲインを使用することにより、全ての色成分に対して単一の共通のゲイン格子を使用できる。これにより、色成分毎に別個のゲイン格子を格納するのに必要な合計の記憶空間が大幅に減少される。例えばベイヤ撮像素子において、R、B、Gr及びGb成分の各々に対して単一のゲイン格子を使用することにより、ゲイン格子データは約75%減少される。理解されるように、格子ゲインデータテーブルが画像処理ハードウェアにおけるチップ面積又はメモリの大部分を占めるため、この格子ゲインデータの減少は実現コストを低下する。更にハードウェア実現例に依存して、ゲイン格子の値の単一の集合を使用することにより、更なる利点を提供できる。例えば、全体のチップ面積を減少したり(例えば、ゲイン格子の値がオンチップメモリに格納される場合等)、メモリ帯域幅に対する要求を低減したりする(例えば、ゲイン格子の値がオフチップ外部メモリに格納される場合等)。
図15に示すレンズシェーディング補正ロジック部234の機能性を十分に説明したが、LSCロジック部234の出力は、その後逆黒レベル補償(IBLC)ロジック部236に転送される。IBLCロジック部236は、色成分(例えば、R、B、Gr及びGb)毎に個別にゲイン、オフセット及びクリップを提供し、一般にBLCロジック部232に対して逆関数を実行する。例えば以下の動作により示すように、入力画素の値は、まずゲインと乗算され、その後符号付き値の分だけオフセットされる。
式中、Xは所定の色成分c(例えば、R、B、Gr又はGb)に対する入力画素値を表し、O[c]は現在の色成分cに対する符号付き16ビットオフセットを表し、G[c]は色成分cに対するゲイン値を表す。一実施形態において、ゲインG[c]は約0〜4X(4×入力画素値X)の範囲を有する。尚、これらの変数は、式9で上述した同一の変数である。計算した値Yは、例えば式10を使用して最小及び最大範囲にクリップされる。一実施形態において、IBLCロジック部236は、色成分毎に最大値より上及び最小値より下にクリップされた画素数のカウントを維持するように構成される。
その後、IBLCロジック部236の出力は、統計収集ブロック238により受信され、統計収集ブロック238は、自動露出(AE)、自動ホワイトバランス(AWB)、オートフォーカス(AF)及びフリッカ検出等に関連する種々の統計データ点等の撮像素子90に関する種々の統計データ点の収集を提供する。以下において、AWB、AE及びAF統計の重要性を説明する簡単な概要を提供する。
ホワイトバランスに関して、光源が画像シーンの物体から反射されるため、各画素における撮像素子応答は照明源に依存する。従って、画像シーンにおいて記録された各画素値は光源の色温度に関連する。白色の物体が低い色温度で照明される場合、その物体は撮像画像において赤みがかって見えるだろう。逆に、高い色温度で照明される白色の物体は撮像画像において青みがかって見えるだろう。従って、ホワイトバランスの目的は、画像が標準的な光の下で撮像されたかのように人の眼に見えるようにRGB値を調整することである。ホワイトバランスに関する撮像統計において、白色の物体に関する色情報は光源の色温度を判定するために収集される。一般にホワイトバランスアルゴリズムは2つの主なステップを含む。第1に、光源の色温度が推定される。第2に、推定された色温度は、色ゲイン値を調整し且つ/又は色補正行列の係数を判定/調整するために使用される。そのようなゲインは、ISPデジタルゲイン並びにアナログ及びデジタル撮像素子ゲインの組み合わせである。
次に、一般に自動露出は、撮像画像の輝度を制御するために画素積分時間及びゲインを調整する処理を示す。例えば自動露出は、積分時間を設定することにより撮像素子により撮像されるシーンからの光量を制御する。更にオートフォーカスは、画像の焦点をほぼ最適化するためにレンズの最適な焦点距離を判定することを示す。従って、特にこれらの種々の統計は統計収集ブロック238を介して判定及び収集される。図示するように、統計収集ブロック238の出力STATS0は、メモリ108に送出され且つ制御ロジック部84にルーティングされるか、あるいは制御ロジック部84に直接送出される。
上述したように、制御ロジック部84は撮影装置30及び/又は画像処理回路網32を制御する1つ以上の制御パラメータを判定するために取集した統計データを処理する。例えばそのような制御パラメータは、撮像素子90のレンズを動作するためのパラメータ(例えば、焦点距離調整パラメータ)、撮像素子パラメータ(例えば、アナログ及び/又はデジタルゲイン、積分時間)並びにISPパイプ処理パラメータ(例えば、デジタルゲイン値、色補正行列(CCM)係数)を含む。更に上述したように、特定の実施形態において、統計処理は、8ビット精度で行われ、より大きいビット深度を有するraw画素データは統計の目的で8ビット形式にダウンサンプリングされる。上述したように、8ビット(又は他のあらゆるより低いビット解像度)へのダウンサンプリングは、ハードェウェアサイズ(例えば、面積)を縮小し且つ処理の複雑さを軽減し、また、統計データが雑音に対してより高いロバスト性を有することを可能にするだろう(例えば、画像データの空間平均を使用して)。
ISPフロントエンド処理ロジック部80の下流側のISPパイプ処理ロジック部82の詳細な説明に進む前に、統計処理ユニット120及び122における種々の機能ロジックブロック(例えば、ロジックブロック230、232、234、236及び238)並びにISPフロントエンド画素処理ユニット130における種々の機能ロジックブロック(例えば、ロジックブロック180及び182)の構成は、本技術の一実施形態のみを示すことを意図していることが理解されるべきである。実際には、他の実施形態において、本明細書で示すロジックブロックは異なる順序で配置されるか、あるいは本明細書では特に説明しない追加の画像処理機能を実行する追加のロジックブロックを含む。更にレンズシェーディング補正、欠陥画素検出/補正及び黒レベル補償等の統計処理ユニット(例えば、120及び122)において実行される画像処理動作は、統計データを収集する目的で統計処理ユニット内において実行されることが理解されるべきである。従って、統計処理ユニットにより受信された画像データに対して実行される処理動作は、ISPフロントエンド画素処理ロジック部130から出力され且つISPパイプ処理ロジック部82に転送される画像信号109(FEProcOut)に実際には反映されない。
説明を続ける前に、十分な処理時間及び本明細書で説明する種々の動作の多くの処理要求の間の類似性を仮定すると、パイププライン特性ではなく連続的に画像処理を実行するように本明細書で示した機能ブロックを再構成できる。理解されるように、これにより全体のハードウェア実現コストが更に低下するが、外部メモリに対する帯域幅を増加する可能性もある(例えば、中間結果/データをキャッシュ/格納するために)。
ISPパイプライン(「パイプ」)処理ロジック部
ISPフロントエンド処理ロジック部80について詳細に上述したが、本説明は、ここでISPパイプ処理ロジック部82に注目する。一般にISPパイプ処理ロジック部82の機能は、ISPフロントエンド処理ロジック部80から提供されるか又はメモリ108から検索されるraw画像データを受信し、画像データを表示装置28に出力する前に追加の画像処理動作を実行することである。
ISPパイプ処理ロジック部82の一実施形態を示すブロック図を図27に示す。図示するように、ISPパイプ処理ロジック部82は、raw処理ロジック部360、RGB処理ロジック部362及びYCbCr処理ロジック部364を含む。raw処理ロジック部360は、以下に更に説明するように、欠陥画素検出及び補正、レンズシェーディング補正、デモザイク、並びに自動ホワイトバランスに対するゲインの適用及び/又は黒レベルの設定等の種々の画像処理動作を実行する。本実施形態において示すように、raw処理ロジック部360に対する入力信号370は、選択ロジック部368の現在の構成に依存して、ISPフロントエンド処理ロジック部80からのraw画素出力109(信号FEProcOut)又はメモリ108からのraw画素データ112である。
raw処理ロジック部360内で実行されたデモザイク動作の結果として、画像信号出力372はRGB領域にあり、その後RGB処理ロジック部362に転送される。例えば図27に示すように、RGB処理ロジック部362は、選択ロジック部376の現在の構成に依存して、出力信号372又はメモリ108からのRGB画像信号374である信号378を受信する。RGB処理ロジック部362は、以下に更に説明するように、色補正(例えば、色補正行列を使用する)、自動ホワイトバランスに対する色ゲインの適用、並びにグローバルトーンマッピングを含む種々のRGB色調整動作を提供する。RGB処理ロジック部364は、YCbCr(ルマ/クロマ)色空間へのRGB画像データの色空間変換を更に提供する。従って、画像信号出力380はYCbCr領域にあり、その後YCbCr処理ロジック部364に転送される。
例えば図27に示すように、YCbCr処理ロジック部364は、選択ロジック部384の現在の構成に依存して、RGB処理ロジック部362からの出力信号380又はメモリ108からのYCbCr信号382である信号386を受信する。以下に更に詳細に説明するように、YCbCr処理ロジック部364は、スケーリング、クロマ抑制、ルマ鮮明化、明るさ、コントラスト及び色(BCC)調整、YCbCrガンママッピング、並びにクロマデシメーション等を含むYCbCr色空間における画像処理動作を提供する。YCbCr処理ロジック部364の画像信号出力390は、メモリ108に送出されるか、あるいはISPパイプ処理ロジック部82から画像信号114(図7)として出力される。画像信号114は、ユーザが閲覧するために表示装置28に送出されるか(直接又はメモリ108を介して)、あるいは圧縮エンジン(例えば、符号器118)、CPU/GPU又はグラフィックエンジン等を使用して更に処理される。
本技術の実施形態によると、ISPパイプ処理ロジック部82は、8ビット、10ビット、12ビット又は14ビット形式のraw画像データの処理をサポートする。例えば一実施形態において、8ビット、10ビット又は12ビット入力データはraw処理ロジック部360の入力において14ビットに変換され、raw処理及びRGB処理動作は14ビット精度で実行される。後者の実施形態において、14ビット画像データは、YCbCr色空間へのRGBデータの変換前に10ビットにダウンサンプリングされ、YCbCr処理(ロジック部364)は、10ビット精度で実行される。
ISPパイプ処理ロジック部82により提供される種々の機能を包括的に説明するために、raw処理ロジック部360、RGB処理ロジック部362及びYCbCr処理ロジック部364の各々、並びにロジックユニット360、362及び364の各々において実現される種々の画像処理動作を実行する内部ロジック部について以下に説明する。raw処理ロジック部360から説明する。例えば図28を参照すると、本技術の一実施形態に従って、raw処理ロジック部360の一実施形態のより詳細な図を示すブロック図が示される。図示するように、raw処理ロジック部360は、ゲイン、オフセット及びクランピング(GOC)ロジック部394、欠陥画素検出/補正(DPDC)ロジック部396、雑音除去ロジック部398、レンズシェーディング補正ロジック部400、GOCロジック部402及びデモザイクロジック部404を含む。更に、以下に説明する例が撮像素子90と共にベイヤカラーフィルタアレイを使用することを仮定する一方で、本技術の他の実施形態は種々のカラーフィルタを利用してもよいことが理解されるべきである。
raw画像信号である入力信号370は、まずゲイン、オフセット及びクランピング(GOC)ロジック部394により受信される。GOCロジック部394は、同様の機能を提供し、図15において上述したように、ISPフロントエンド処理ロジック部80の統計処理ユニット120のBLCロジック部232に関して同様に実現される。例えばGOCロジック部394は、ベイヤ撮像素子の色成分R、B、Gr及びGbの各々に対して個別にデジタルゲイン、オフセット及びクランピング(クリッピング)を提供する。特にGOCロジック部394は、自動ホワイトバランスを実行するか、あるいはraw画像データの黒レベルを設定する。更にいくつかの実施形態において、GOCロジック部394は、Gr色成分とGb色成分との間のオフセットを補正又は補償するために使用される。
動作中、現在の画素に対する入力値は、まず符号付き値の分だけオフセットされ、ゲインと乗算される。この動作は、上記の式9を使用して実行される。Xは、所定の色成分R、B、Gr又はGbに対する入力画素値を表し、O[c]は現在の色成分cに対する符号付き16ビットオフセットを表し、G[c]は色成分cに対するゲイン値を表す。G[c]の値は、統計処理(例えば、ISPフロントエンド処理ブロック80における)中に先に判定される。一実施形態において、ゲインG[c]は、2ビットの整数部及び14ビットの小数部(例えば、浮動小数点表現で2.14)を有する16ビットの符号なし数であり、ゲインG[c]は丸められる。単なる例として、ゲインG[c]は0〜4Xの範囲を有する。
式9の計算された画素値Y(ゲインG[c]及びオフセットO[c]を含む)は、式10に従って最小及び最大範囲にクリップされる。上述したように、変数min[c]及びmax[c]は、それぞれ最小出力値及び最大出力値に対する16ビットの符号付き「クリッピング値」を表す。一実施形態において、GOCロジック部394は、色成分毎に最大範囲の上及び最小範囲の下にクリップされた画素数のカウントを維持するように更に構成される。
次に、GOCロジック部394の出力は、欠陥画素検出及び補正ロジック部396に転送される。図15(DPDCロジック部230)を参照して上述したように、欠陥画素は、多くの要因によるものであり、「ホット」(又は漏れ)ピクセル、「スタック」ピクセル及び「デッドピクセル」を含む。ホットピクセルは、非欠陥画素に対して通常より多くの電荷漏洩を示すため非欠陥画素より明るく見える。スタックピクセルは、常にオンの時(例えば、フル充電されている時)に現れるため明るく見える。デッドピクセルは、常にオフの時に現れる。従って、種々の障害例を識別し且つそれに対処するのに十分なロバスト性を有する画素検出方式を有するのが望ましいだろう。特に動的欠陥検出/補正を提供するフロントエンドDPDCロジック部230と比較すると、パイプDPDCロジック部396は、固定又は静的欠陥検出/補正、動的欠陥検出/補正並びにスペックル除去を提供する。
ここで開示される技術の実施形態によると、DPDCロジック部396により実行される欠陥画素補正/検出は、色成分(例えば、R、B、Gr及びGb)毎に個別に行われ、欠陥画素を検出し且つ検出された欠陥画素を補正する種々の動作を含む。例えば一実施形態において、欠陥画素検出動作は、静的欠陥、動的欠陥の検出、並びに撮像素子において存在する可能性のある混信又は雑音(例えば、光子雑音)を示すスペックルの検出を提供する。類推すると、静電気がテレビディスプレイ等のディスプレイで現れるのと同様に、スペックルは、外見上ランダム雑音アーチファクトのように画像に現れる。更に上述したように、動的欠陥補正は、所定の時間において欠陥画素であるような画素の特徴が隣接画素における画像データに依存するという意味で動的であると考えられる。例えば常に最大の明るさであるスタックピクセルは、スタックピクセルの場所が明るい白色により占められている現在の画像の領域にある場合は欠陥画素と考えられない。逆に、スタックピクセルが黒色又はより暗い色により占められている現在の画像の領域にある場合、スタックピクセルは、DPDCロジック部396による処理中に欠陥画素として識別され且つ補正される。
静的欠陥検出に関して、各画素の場所は、欠陥画素であると認識される画素の場所に対応するデータを格納する静的欠陥テーブルと比較される。例えば一実施形態において、DPDCロジック部396は欠陥画素の検出を監視し(例えば、カウンタ機構又はレジスタを使用して)、特定の画素が繰り返し欠陥として観察される場合、その画素の場所は静的欠陥テーブルに格納される。従って、静的欠陥検出中、現在の画素の場所が静的欠陥テーブルにあると判定される場合、現在の画素は、欠陥画素であると識別され、置換値が判定されて一時的に格納される。一実施形態において、置換値は、同一の色成分の先行画素(走査順に基づいて)の値である。以下に説明するように、置換値は、動的/スペックル欠陥検出及び補正中に静的欠陥を補正するために使用される。更に先行画素がrawフレーム154(図9)の外側にある場合、その値は使用されず、静的欠陥は動的欠陥補正処理中に補正される。更にメモリを考慮すると、静的欠陥テーブルは、有限数の場所エントリを格納する。例えば一実施形態において、静的欠陥テーブルは、画像データの2行毎に合計16個の場所を格納するように構成されたFIFOキューとして実現される。静的欠陥テーブルにおいて規定された場所は、先行画素置換値を使用して(以下に説明する動的欠陥検出処理を介するのではなく)補正される。上述したように、本技術の実施形態は、ある期間にわたり間欠的に静的欠陥テーブルを更新する。
実施形態は、オンチップメモリ又はオフチップメモリにおいて実現される静的欠陥テーブルを提供する。理解されるように、オンチップ実現例を使用することは、全体のチップ面積/サイズを増加する可能性があり、その一方で、オフチップ実現例を使用することは、チップ面積/サイズを縮小するがメモリ帯域幅に対する要求を増加する可能性がある。従って、静的欠陥テーブルは、特定の実現要件に従って、すなわち静的欠陥テーブル内に格納される合計の画素数に従ってオンチップ又はオフチップで実現されることが理解されるべきである。
動的欠陥及びスペックル検出処理は、上述した静的欠陥検出処理に対して時間シフトされる。例えば一実施形態において、動的欠陥及びスペックル検出処理は、静的欠陥検出処理が2走査線(例えば、行)の画素を解析した後に開始する。理解されるように、これにより、動的/スペックル検出が行われる前に静的欠陥の識別及びそれらの置換値を判定できる。例えば動的/スペックル検出処理中、動的/スペックル検出動作を適用するのではなく、現在の画素が静的欠陥であると先に印をつけられた場合、静的欠陥が先に評価された置換値を使用して単純に補正される。
動的欠陥及びスペックル検出に関して、これらの処理は順次又は並列に行われる。DPDCロジック部396により実行される動的欠陥及びスペックル検出及び補正は、画素間の方向勾配を使用する適応エッジ検出に依存する。一実施形態において、DPDCロジック部396は、rawフレーム154(図9)内にある同一の色成分を有する現在の画素のすぐ隣の8つの画素を選択する。換言すると、図29において以下に示すように、現在の画素及びその8つの隣接画素P0、P1、P2、P3、P4、P5、P6及びP7は3×3領域を形成する。
尚、現在の画素Pの場所に従って、rawフレーム154の外側の画素は、画素間の勾配を算出する時に考慮されない。例えば図29に示した「左上」の例410に関して、現在の画素Pはrawフレーム154の左上隅にあるため、rawフレーム154の外側の隣接画素P0、P1、P2、P3及びP5は考慮されず、画素P4、P6及びP7(N=3)のみが残る。「上」の例412において、現在の画素Pは、rawフレーム154の最上部のエッジにあるため、rawフレーム154の外側の隣接画素P0、P1及びP2は考慮されず、画素P3、P4、P5、P6及びP7(N=5)のみが残る。次に「右上」の例414において、現在の画素Pはrawフレーム154の右上隅にあるため、rawフレーム154の外側の隣接画素P0、P1、P2、P4及びP7は考慮されず、画素P3、P5及びP6(N=3)のみが残る。「左」の例416において、現在の画素Pはrawフレーム154の最も左側のエッジにあるため、rawフレーム154の外側の隣接画素P0、P3及びP5は考慮されず、画素P1、P2、P4、P6及びP7(N=5)のみが残る。
「中心」の例418において、全ての画素P0〜P7は、rawフレーム154内にあるため、画素間の勾配を判定する際に使用される(N=8)。「右」の例420において、現在の画素Pはrawフレーム154の最も右側のエッジにあるため、rawフレーム154の外側の隣接画素P2、P4及びP7は考慮されず、画素P0、P1、P3、P5及びP6(N=5)のみが残る。更に「左下」の例422において、現在の画素Pはrawフレーム154の左下隅にあるため、rawフレーム154の外側の隣接画素P0、P3、P5、P6及びP7は考慮されず、画素P1、P2及びP4(N=3)のみが残る。「下」の例424において、現在の画素Pはrawフレーム154の最下部のエッジにあるため、rawフレーム154の外側の隣接画素P5、P6及びP7は考慮されず、画素P0、P1、P2、P3及びP4(N=5)のみが残る。最後に「右下」の例426において、現在の画素Pはrawフレーム154の右下隅にあるため、rawフレーム154の外側の隣接画素P2、P4、P5、P6及びP7は考慮されず、画素P0、P1及びP3(N=3)のみが残る。
従って、現在の画素Pの位置に依存して、画素間の勾配を判定する際に使用される画素数は3、5又は8である。図示する実施形態において、ピクチャ境界(例えば、rawフレーム154)内の隣接画素(k=0〜7)毎に画素間の勾配が以下のように算出される。
更に平均勾配Gavは、以下の式で示すように現在の画素とその周囲の画素の平均Pavとの間の差分として算出される。
画素間の勾配の値(式17)は、動的欠陥の例を判定する際に使用され、隣接画素の平均(式18及び19)は、以下に更に説明するようにスペックルの例を識別する際に使用される。
一実施形態において、動的欠陥検出は、以下のようにDPDCロジック部396により実行される。最初に、特定の数の勾配Gkが変数dynTh(動的欠陥閾値)により示される特定の閾値以下である場合に画素は欠陥画素であると仮定する。従って、閾値dynTh以下であるピクチャ境界内の隣接画素に対する勾配数のカウント(C)が画素毎に累積される。閾値dynThは、周囲の画素にある「アクティビティ」に依存する固定閾値成分及び動的閾値成分の組み合わせである。例えば一実施形態において、以下に示すように、dynThの動的閾値成分は、平均画素値Pav(式18)と各隣接画素との間の絶対差分を合計することに基づいて高周波成分値Phfを算出することにより判定される。
画素が画像の隅(N=3)又は画像のエッジ(N=5)に配置される例において、Phfは8/3又は8/5とそれぞれ乗算される。理解されるように、これは、高周波成分Phfが8つの隣接画素(N=8)に基づいて正規化されることを保証する。
Phfが判定されると、動的欠陥検出閾値dynThは以下に示すように計算される。
式中、dynTh1は固定閾値成分を表し、dynTh2は動的閾値成分を表し、式21においてPhfの乗数である。異なる固定閾値成分dynTh1は、色成分毎に提供されるが、同一色の画素毎に同一である。単なる例として、dynTh1は、少なくとも画像の雑音の変動を上回るように設定される。
動的閾値成分dynTh2は、画像のある特性に基づいて判定される。例えば一実施形態において、dynTh2は、露出及び/又はセンサ積分時間に関する格納された実験データを使用して判定される。実験データは、撮像素子(例えば、90)の較正中に判定され、dynTh2に対して選択される動的閾値成分値を多くのデータ点の各々と関連付ける。従って、ISPフロントエンド処理ロジック部80における統計処理中に判定される現在の露出及び/又はセンサ積分時間値に基づいて、dynTh2は、現在の露出及び/又はセンサ積分時間値に対応する格納された実験データから動的閾値成分値を選択することにより判定される。更に現在の露出及び/又はセンサ積分時間値が実験データ点の1つに直接対応しない場合、dynTh2は、間に現在の露出及び/又はセンサ積分時間値が入るデータ点と関連付けられた動的閾値成分値を補間することにより判定される。更に固定閾値成分dynTh1のように、動的閾値成分dynTh2は色成分毎に異なる値を有する。従って、合成閾値dynThは色成分(例えば、R、B、Gr、Gb)毎に異なる。
上述したように、閾値dynTh以下であるピクチャ境界内の隣接画素に対する勾配数のカウント(C)が画素毎に判定される。例えば閾値dynTh以下である勾配Gkの累積カウントCは、rawフレーム154内の隣接画素毎に以下のように計算される。
次に、累積カウントCが変数dynMaxCで示される最大カウント以下であると判定される場合、画素は動的欠陥として考えられる。一実施形態において、dynMaxCに対する種々の値は、N=3(隅)、N=5(エッジ)及びN=8の条件で提供される。このロジック部を以下に表す。
上述したように、欠陥画素の場所は静的欠陥テーブルに格納される。いくつかの実施形態において、現在の画素に対する動的欠陥検出中に算出された最小勾配値(min(Gk))は格納され、最小勾配値が大きい程欠陥の「深刻さ」が大きいことを示し且つ深刻さがより小さい欠陥が補正される前により大きい最小勾配値が画素補正中に補正されるように欠陥画素をソートするために使用される。一実施形態において、画素は、ある期間にわたり欠陥画素の場所をフィルタリングするなどにより、静的欠陥テーブルに格納される前に複数の撮像フレームにわたり処理される必要がある。後者の実施形態において、欠陥が特定の数の連続した画像において同一の場所に現れる場合にのみ、欠陥画素の場所は静的欠陥テーブルに格納される。更にいくつかの実施形態において、静的欠陥テーブルは、最小勾配値に基づいて、格納された欠陥画素の場所をソートするように構成される。例えば最大の最小勾配値は、「深刻さ」がより大きい欠陥を示す。このように場所を順序付けすることにより、最も深刻な又は重大な欠陥が最初に補正されるように静的欠陥補正の優先度が設定される。更に静的欠陥テーブルは、新しく検出された静的欠陥を含むようにある期間にわたり更新され、各最小勾配値に基づいてそれら欠陥を順序付けする。
上述した動的欠陥検出処理と並列に行われるスペックル検出は、値Gav(式19)がスペックル検出閾値spkThを上回るかを判定することにより実行される。動的欠陥閾値dynThのように、スペックル閾値spkThは、spkTh1により示される固定成分及びspkTh2により示される動的成分を含む。より多くのテクスチャを与えられる画像及びテキスト、フォリッジ、特定のファブリックパターン等の領域において誤ってスペックルを検出することを回避するために、一般に固定成分spkTh1及び動的成分spkTh2は、dynTh1及びdynTh2と比較してより「アグレッシブ」に設定される。従って、一実施形態において、動的スペックル閾値成分spkTh2は、画像の高度テクスチャ領域に対しては増加され、「より平坦な」又はより均一な領域に対しては減少される。スペックル検出閾値spkThは、以下に示すように計算される。
式中、spkTh1は固定閾値成分を表し、spkTh2は動的閾値成分を表す。スペックルの検出は、以下の表現に従って判定される。
欠陥画素が識別されると、DPDCロジック部396は検出された欠陥の種類に従って画素補正動作を適用する。例えば欠陥画素が静的欠陥として識別された場合、画素は、上述したように格納された置換値(例えば、同一の色成分の先行画素の値)で置換される。画素が動的欠陥又はスペックルとして識別された場合、画素補正は以下のように実行される。第1に、以下に示すように、勾配は水平(h)方向、垂直(v)方向、正の対角線方向(dp)及び負の対角線方向(dn)の4つの方向に対して中心画素と第1の隣接画素及び第2の隣接画素との間の絶対差分の合計として計算される(例えば、式17のGkの計算)。
次に、補正画素値PCは、最小値を有する方向勾配Gh、Gv、Gdp及びGdnと関連付けられた2つの隣接画素の線形補間を介して判定される。例えば一実施形態において、以下のロジック部表現は、PCの算出を表す。
DPDCロジック部396により実現される画素補正技術は、境界条件における例外を提供する。例えば選択された補間方向と関連付けられた2つの隣接画素のうちの一方がrawフレームの外側にある場合、rawフレーム内にある隣接画素の値が代わりに置換される。従って、この技術を使用すると、補正画素値はrawフレーム内の隣接画素の値と等しくなる。
尚、ISPパイプ処理中にDPDCロジック部396により適用される欠陥画素検出/補正技術は、ISPフロントエンド処理ロジック部80のDPDCロジック部230と比較してより高いロバスト性を有する。上記実施形態において説明したように、DPDCロジック部230は水平方向のみの隣接画素を使用して動的欠陥検出及び補正のみを実行し、その一方で、DPDCロジック部396は水平方向及び垂直方向双方の隣接画素を使用する静的欠陥、動的欠陥及びスペックルの検出及び補正を提供する。
理解されるように、静的欠陥テーブルを使用して欠陥画素の場所を格納することにより、必要とされるメモリがより少ない欠陥画素の時間フィルタリングが提供される。例えば画像全体を格納し且つ時間フィルタリングを適用して静的欠陥をある時間にわたり識別する多くの従来の技術と比較して、本技術の実施形態は欠陥画素の場所のみを格納する。これは、一般に画像フレーム全体を格納するのに必要とされる何分の1かのメモリを使用して行われる。更に上述したように、最小勾配値(min(Gk))を格納することにより、欠陥画素が補正される(例えば、最もよく目に見える欠陥画素から開始する)場所に優先順位をつける静的欠陥テーブルが効率的に使用できる。
更に動的成分を含む閾値(例えば、dynTh2及びspkTh2)を使用することは、画像(例えば、テキスト、フォリッジ、特定のファブリックパターン等)の高度テクスチャ領域を処理する時に従来の画像処理システムにおいてよく直面する問題である欠陥の誤検出を低減するのを助長する。また、画素補正のために方向勾配(例えば、h、v、dp、dn)を使用することは、欠陥の誤検出が行われた場合の可視アーチファクトの出現を低減できる。例えば最小勾配方向にフィルタリングした結果、誤検出の場合であっても殆どの場合に許容される結果を与える補正が行われる。更に現在の画素Pを勾配算出に含むことは、特にホットピクセルの場合に勾配検出の精度を向上できる。
DPDCロジック部396により実現される上述した欠陥画素検出及び補正技術は、図30〜図32において提供される一連のフローチャートにより概略が示される。例えばまず図30を参照すると、静的欠陥を検出する処理430が示される。ステップ432で開始すると、入力画素Pが第1の時間T0において受信される。次のステップ434において、画素Pの場所は静的欠陥テーブルに格納された値と比較される。判断ロジック436は、画素Pの場所が静的欠陥テーブルにおいて見つけられるかを判定する。Pの場所が静的欠陥テーブルにある場合、処理430はステップ438に継続し、画素Pは静的欠陥として印をつけられ、置換値が判定される。上述したように、置換値は、同一の色成分の先行画素(走査順において)の値に基づいて判定される。処理430はステップ440に継続し、ステップ440において、処理430は図31に示した動的及びスペックル検出処理444に進む。更に、判断ロジック436において、画素Pの場所が静的欠陥テーブルにないと判定される場合、処理430はステップ438を実行せずにステップ440に進む。
図31に継続すると、ステップ446により示されるように、入力画素Pは、動的欠陥又はスペックルが存在するかを判定する処理のために時間T1において受信される。時間T1は、図30の静的欠陥検出処理430に対する時間シフトを表す。上述したように、動的欠陥及びスペックル検出処理は、静的欠陥検出処理が2走査線(例えば、行)の画素を解析した後に開始し、これにより、動的/スペックル検出が行われる前に静的欠陥の識別及びそれらの置換値が判定される時間を与える。
判断ロジック448は、入力画素Pが静的欠陥として先に印をつけられたか(例えば、処理430のステップ438により)を判定する。Pが静的欠陥として印をつけられた場合、処理444は、図37に示す画素補正処理に継続し、図31に示す残りのステップを回避する。入力画素Pが静的欠陥でないと判断ロジック448が判定する場合、ステップ450に継続し、動的欠陥及びスペックル処理において使用される隣接画素が識別される。例えば図29に示し且つ上述した実施形態によると、隣接画素は画素Pのすぐ隣の8つの画素(例えば、P0〜P7)を含み、3×3画素領域を形成する。次のステップ452において、上記の式17において説明したように、画素間の勾配はrawフレーム154内の各隣接画素に対して算出される。更に、式18及び19において示すように、平均勾配(Gav)は、現在の画素とその周囲の画素の平均との間の差分として算出される。
その後、処理444は、動的欠陥検出のためのステップ454及びスペックル検出のための判断ロジック464に分岐する。上述したように、いくつかの実施形態において、動的欠陥検出及びスペックル検出は並列に行われる。ステップ454において、閾値dynTh以下である勾配数のカウントCが判定される。上述したように、閾値dynThは、固定成分及び動的成分を含み、一実施形態においては上記の式21に従って判定される。Cが最大カウントdynMaxC以下である場合、処理444はステップ460に継続し、現在の画素は動的欠陥であるとして印をつけられる。その後、以下に説明するように、処理444は図37に示す画素補正処理に継続する。
ステップ452の後の分岐に戻ると、スペックル検出の場合、判断ロジック464は、平均勾配Gavが固定成分及び動的成分を含むスペックル検出閾値spkThより大きいかを判定する。Gavが閾値spkThより大きい場合、画素Pはステップ466においてスペックルを含むものとして印をつけられ、その後、処理444はスペックル画素の補正のために図37に継続する。更に判断ロジックブロック456及び464の双方の出力が「NO」である場合、これは、画素Pが動的欠陥、スペックル又は静的欠陥(判断ロジック448)を含まないことを示す。従って、判断ロジック456及び464の出力が「NO」である場合、欠陥(例えば、静的、動的又はスペックル)が検出されなかったため、処理444はステップ458で終了し、これにより画素Pは変更されずに渡される。
図32に継続すると、上述した技術に従う画素補正処理470が提供される。ステップ472において、入力画素Pは、図31の処理444から受信される。尚、画素Pは、ステップ448(静的欠陥)又はステップ460(動的欠陥)及び466(スペックル欠陥)から処理470により受信される。判断ロジック474は、画素Pが静的欠陥として印をつけられているかを判定する。画素Pが静的欠陥である場合、処理470はステップ476に継続して終了し、これにより静的欠陥はステップ438(図30)で判定された置換値を使用して補正される。
画素Pが静的欠陥として識別されない場合、処理470は判断ロジック474からステップ478に継続し、方向勾配が算出される。例えば式26〜29を参照して上述したように、勾配は、現在の画素と4方向(h、v、dp及びdn)に対する第1の隣接画素及び第2の隣接画素との間の絶対差分の合計として計算される。次のステップ480において、最小値を有する方向勾配が識別され、その後、判断ロジック482は、最小勾配と関連付けられた2つの隣接画素のうちの一方が画像フレーム(例えば、rawフレーム154)の外側に配置されているかを評価する。双方の隣接画素が画像フレーム内にある場合、処理470はステップ484に継続し、画素補正値(PC)は式30により示されるように2つの隣接画素の値に線形補間を適用することにより判定される。その後、入力画素Pは、ステップ492に示すように補間済み画素補正値PCを使用して補正される。
判断ロジック482に戻ると、2つの隣接画素のうち一方が画像フレーム(例えば、rawフレーム165)の外側に配置されると判定される場合、外側の画素(Pout)の値を使用する代わりに、ステップ488に示すように、DPDCロジック部396は画像フレーム(Pin)内の他方の隣接画素の値でPoutの値を置換する。その後、ステップ490において、画像補正値PCは、Pinの値及びPoutの置換された値を補間することにより判定される。換言すると、この場合、PCはPinの値と等しい。ステップ492で終了すると、画素Pは値PCを使用して補正される。説明を続ける前に、DPDCロジック部396を参照して本明細書で説明した特定の欠陥画素検出及び補正処理は、本技術の1つの可能な実施形態のみを反映することを意図していることが理解されるべきである。実際には、設計及び/又はコスト制限に従って、多くの変形が可能であり、欠陥検出/補正ロジック部の全体の複雑さ及びロバスト性がISPフロントエンド処理ブロック80において実現されるより単純な検出/補正ロジック部230とDPDCロジック部396を参照して本明細書において説明した欠陥検出/補正ロジック部との間になるように特徴が追加又は除去される。
図28に戻ると、補正済み画素データはDPDCロジック部396から出力され、更なる処理のために雑音除去ロジック部398により受信される。一実施形態において、雑音除去ロジック部398は、詳細及びテクスチャを維持しつつ画像データにおける雑音を低減するために2次元エッジ適応ローパスフィルタリングを実現するように構成される。エッジ適応閾値は、フィルタリングが低光条件下で強化されるように現在の照明レベルに基づいて設定される(例えば、制御ロジック部84により)。更にdynTh値及びspkTh値の判定に関して簡単に上述したように、雑音除去処理中に雑音がシーンの詳細及びテクスチャに大きく影響を及ぼさずに低減される(例えば、誤検出を回避/低減する)ように雑音除去閾値が雑音変動をちょうど超える値に設定されるように、雑音の変動は所定のセンサに対して先に判定される。ベイヤカラーフィルタ実現例を仮定すると、雑音除去ロジック部398は、分離7タップ水平フィルタ及び5タップ垂直フィルタを使用して色成分Gr、R、B及びGbの各々を別個に処理する。一実施形態において、雑音除去処理は、緑色成分(Gb及びGr)の不均一性を補正し且つ水平フィルタリング及び垂直フィルタリングを実行することにより実行される。
均一に照明された平坦な表面を仮定すると、一般に緑色不均一性(GNU)は、Gr画素とGb画素との間の僅かな明るさの差により特徴付けられる。この不均一性の補正も補償もしないと、「迷路のような」アーチファクト等の特定のアーチファクトがデモザイク後のフルカラー画像に現れる可能性がある。緑色が不均一の間、処理は、rawベイヤ画像データの緑色画素毎に、現在の緑色画素(G1)と現在の画素の右下の緑色画素(G2)との間の絶対差分がGNU補正閾値(gnuTh)未満であるかを判定することを含む。図33は、ベイヤパターンの2×2領域のG1画素及びG2画素の配置を示す。図示するように、G1に隣接する画素の色は、現在の緑色画素がGb又はGr画素であるかに依存する。例えばG1がGrである場合、G2はGbであり、G1の右側の画素はR(赤)であり、G1の下側の画素はB(青)である。あるいは、G1がGbである場合、G2はGrであり、G1の右側の画素はBであり、G1の下側の画素はRである。G1とG2との間の絶対差分がGNU補正閾値未満である場合、以下のロジック部で示すように、現在の緑色画素G1はG1及びG2の平均値により置換される。
理解されるように、このように緑色不均一性補正を適用することは、G1画素及びG2画素がエッジをまたいで平均されないようにするのを助長し、これにより鮮明度を向上し且つ/又は維持する。
水平フィルタリングは、緑色不均一性補正の後に適用され、一実施形態においては、7タップ水平フィルタを提供する。各フィルタタップのエッジを横切る勾配が計算され、それが水平エッジ閾値(horzTh)を超える場合、フィルタタップは、以下に示すように中心画素に重ねられる。水平フィルタは、色成分(R、B、Gr、Gb)毎に個別に画像データを処理し、フィルタリングされていない値を入力値として使用する。
例として、図34は、中央タップがP3に位置付けられた水平画素P0〜P6の集合を示す図である。図34に示す画素に基づいて、各フィルタタップに対するエッジ勾配が以下のように算出される。
エッジ勾配Eh0〜Eh5は、以下の式38を使用して水平フィルタリング出力Phorzを判定するために水平フィルタ成分により利用される。
式中、horzTh[c]は色成分c(例えば、R、B、Gr及びGb)毎の水平エッジ閾値であり、C0〜C6はそれぞれ画素P0〜P6に対応するフィルタタップ係数である。水平フィルタ出力Phorzは、中心画素P3の場所において適用される。一実施形態において、フィルタタップ係数C0〜C6は、3ビットの整数部及び13ビットの小数部(浮動小数点で3.13)を有する16ビットの2の補数値である。尚、フィルタタップ係数C0〜C6は中心画素P3に関して必ずしも対称である必要はない。
垂直フィルタリングは、緑色不均一性補正及び水平フィルタリング処理の後に雑音除去ロジック部398により適用される。一実施形態において、垂直フィルタ動作は、垂直フィルタの中央タップがP2に配置された状態で、図35に示すように5タップフィルタを提供する。垂直フィルタリング処理は、上述した水平フィルタリング処理と同様に行われる。例えば各フィルタタップのエッジを横切る勾配が計算され、それが垂直エッジ閾値(vertTh)を上回る場合、フィルタタップは中心画素P2に重ねられる。垂直フィルタは、色成分(R、B、Gr、Gb)毎に個別に画像データを処理し、フィルタリングされていない値を入力値として使用する。
図35に示す画素に基づいて、フィルタタップ毎の垂直エッジ勾配は以下のように算出される。
エッジ勾配Ev0〜Ev5は、以下の式43を使用して垂直フィルタリング出力Pvertを判定するために垂直フィルタにより利用される。
式中、vertTh[c]は、色成分c(例えば、R、B、Gr及びGb)毎の垂直エッジ閾値であり、C0〜C4は、それぞれ図35の画素P0〜P4に対応するフィルタタップ係数である。垂直フィルタ出力Pvertは、中心画素P2の場所において適用される。一実施形態において、フィルタタップ係数C0〜C4は、3ビットの整数部及び13ビットの小数部(浮動小数点で3.13)を有する16ビットの2の補数値である。尚、フィルタタップ係数C0〜C4は、中心画素P2に関して必ずしも対称である必要はない。
更に境界条件に関して、隣接画素がrawフレーム154(図9)の外側にある場合、境界の外側の画素の値がrawフレームのエッジにおける同一色の画素値により繰り返される。この規則は、水平フィルタリング動作及び垂直フィルタリング動作に対して実現される。例として、図34を参照すると、水平フィルタリングの場合、画素P2がrawフレームの最も左側のエッジのエッジ画素であり且つ画素P0及びP1がrawフレームの外側にある場合、画素P0及びP1の値は水平フィルタリングのために画素P2の値で置換される。
図28に示すraw処理ロジック部360のブロック図に戻ると、雑音除去ロジック部398の出力は、処理のためにレンズシェーディング補正(LSC)ロジック部400に送出される。上述したように、レンズシェーディング補正技術は、レンズの幾何学的光学の結果起こる光強度の低下、製造時の不完全性並びにマイクロレンズアレイ及びカラーアレイフィルタの位置合わせ不良等を補償するために画素毎に適切なゲインを適用することを含む。更にいくつかのレンズにおける赤外線(IR)フィルタにより、光強度の低下は光源に依存するため、レンズシェーディングゲインは検出された光源に従って適応される。
図示する実施形態において、ISPパイプ82のLSCロジック部400は同様に実現され、図18〜図26を参照して上述したように一般にISPフロントエンド処理ブロック80のLSCロジック部234と同一の機能を提供する。従って、重複を避けるため、本明細書で図示する実施形態のLSCロジック部400は一般にLSCロジック部230と同様に動作するように構成され且つそのために上記で提供されたレンズシェーディング補正技術の説明はここでは繰り返さないことが理解されるべきである。しかし、一般的に要約するために、LSCロジック部400は、現在の画素に適用するゲインを判定するためにraw画素データストリームの各色成分を個別に処理することが理解されるべきである。上述した実施形態によると、レンズシェーディング補正ゲインは、撮像フレームにわたり分散された規定されたゲイン格子点の集合に基づいて判定される。各格子点間の間隔は多くの画素(例えば、8画素、16画素等)により規定される。現在の画素の場所が格子点に対応する場合、その格子点と関連付けられたゲイン値は現在の画素に適用される。しかし、現在の画素の場所が格子点(例えば、図21のG0、G1、G2及びG3)の間にある場合、LSCゲイン値は、現在の画素が間に配置される格子点の補間により算出される(式11a及び11b)。この処理は、図22の処理310により示される。更に図20に関して上述したように、いくつかの実施形態において、格子点は、LSC領域280の中心に集中せず、一般にレンズシェーディング歪みがより見えやすいLSC領域280の隅に向かってより集中するように不均一に(例えば、対数的に)分散される。
更に図20及び図26を参照して上述したように、LSCロジック部400は、格子ゲイン値を有する径方向のゲイン成分を更に適用する。径方向のゲイン成分は、画像の中心からの現在の画素の距離に基づいて判定される(式12〜14)。上述したように、径方向のゲインを使用することにより、全ての色成分に対して単一の共通のゲイン格子を使用することが可能になり、色成分毎に別個のゲイン格子を格納するのに必要とされる合計の記憶空間が大きく減少されるだろう。格子ゲインデータテーブルが画像処理ハードウェアのメモリ又はチップ面積の多くの部分を占めるため、この格子ゲインデータの減少により実現コストは低下する。
次に図28のraw処理ロジックブロック図360を再度参照すると、LSCロジック部400の出力は、第2のゲイン、オフセット及びクランピング(GOC)ブロック402に渡される。GOCロジック部402は、デモザイク(ロジックブロック404による)の前に適用され、LSCロジック部400の出力に対して自動ホワイトバランスを実行するために使用される。図示する実施形態において、GOCロジック部402は、GOCロジック部394(及びBLCロジック部232)と同様に実現される。上記の式9に従って、GOCロジック部402により受信された入力は、符号付き値の分だけオフセットされ、ゲインと乗算される。結果として得られる値は、式10に従って最小範囲及び最大範囲にクリップされる。
その後、GOCロジック部402の出力は、処理のためにデモザイクロジック部404に転送され、rawベイヤ入力データに基づいてフルカラー(RGB)画像を生成する。理解されるように、ベイヤフィルタ等のカラーフィルタアレイを使用する撮像素子のraw出力は、各画素が単一の色成分のみを取得するためにフィルタリングされるという意味で「不完全」である。従って、個々の画素に対して収集されたデータは色を判定するには不十分である。デモザイク技術は、画素毎に欠落したカラーデータを補間することによりrawベイヤデータからフルカラー画像を生成するために使用される。
図36を参照すると、フルカラーRGBを生成するためにrawベイヤ画像パターン502へのデモザイクの適用方法に関して一般的な概要を提供する処理フロー500の図が示される。図示するように、rawベイヤ画像502の4×4部分504は、色成分毎に別個のチャネルを含み、緑色チャネル506、赤色チャネル508及び青色チャネル510を含む。ベイヤセンサのみの各撮像画素が1つの色に対するデータを取得するため、色チャネル506、508及び510の各々に対するカラーデータは、記号「?」で示すように不完全である可能性がある。デモザイク技術512を適用することにより、各チャネルの欠落したカラーサンプルが補間される。例えば図中符号514で示すように、補間データG'は緑色チャネルの欠落したサンプルを埋めるために使用される。同様に、補間データR'は赤色チャネル516の欠落したサンプルを埋めるために使用され(補間データG'514と組み合わせて)、補間データB'は青色チャネル518の欠落したサンプルを埋めるために使用される(補間データG'514と組み合わせて)。従って、デモザイク処理の結果、各色チャネル(R、G、B)はカラーデータの完全な集合を有し、これはフルカラーRGB画像520を再構成するために使用される。
次に、デモザイクロジック部404により実現されるデモザイク技術について、一実施形態に従って説明する。緑色チャネルにおいて、欠落したカラーサンプルは、既知の緑色サンプルにおいて方向ローパスフィルタを使用し且つ隣接する色チャネル(例えば、赤及び青)においてハイパス(又は勾配)フィルタを使用して補間される。赤色チャネル及び青色チャネルの場合、欠落したカラーサンプルは同様に補間されるが、既知の赤色値又は青色値においてローパスフィルタリングを使用し且つ同一の場所に配置された補間済み緑色値においてハイパスフィルタリングを使用することにより補間される。更に一実施形態において、緑色チャネルにおけるデモザイクは、元のベイヤカラーデータに基づいて5×5画素ブロックエッジ適応フィルタを利用する。以下に更に説明するように、エッジ適応フィルタを使用することにより、水平及び垂直フィルタリング済みの値の勾配に基づく連続した重み付けを提供し、これにより従来のデモザイク技術で一般に見られたエイリアシング、「チェッカーボード」又は「レインボー」アーチファクト等の特定のアーチファクトの出現が低減される。
緑色チャネルにおけるデモザイク中、ベイヤ画像パターンの緑色画素(Gr及びGb画素)に対する元の値が使用される。しかし、緑色チャネルに対するデータの完全な集合を取得するために、緑色画素値はベイヤ画像パターンの赤色画素及び青色画素において補間される。本技術によると、最初に、Eh及びEvでそれぞれ示される水平エネルギー成分及び垂直エネルギー成分は、上述した5×5画素ブロックに基づいて赤色画素及び青色画素において算出される。Eh及びEvの値は、以下に更に説明するように、水平及び垂直フィルタリングステップからのフィルタリング済みのエッジ重み付き値を取得するために使用される。
例として、図37は、場所(j,i)における5×5画素ブロックの中心に配置された赤色画素に対するEh値及びEv値の計算を示す。ここで、jは行に対応し、iは列に対応する。図示するように、Ehの算出では、5×5画素ブロックの中央の3行(j−1、j、j+1)を考慮し、Evの算出では、5×5画素ブロックの中央の3列(i−1、i、i+1)を考慮する。Ehを計算するために、対応する係数(例えば、列i−2及びi+2に対しては−1、列iに対しては2)と乗算された赤色の列(i−2、i、i+2)の画素の合計の絶対値は、対応する係数(例えば、列i−1に対しては1、列i+1に対しては−1)と乗算された青色の列(i−1、i+1)の画素の合計の絶対値と合計される。Evを計算するために、対応する係数(例えば、行j−2及びj+2に対しては−1、行jに対しては2)と乗算された赤色の行(j−2、j、j+2)の画素の合計の絶対値は、対応する係数(例えば、行j−1に対しては1、行j+1に対しては−1)と乗算された青色の行(j−1、j+1)の画素の合計の絶対値と合計される。これらの計算は、以下の式44及び45により示される。
従って、合計のエネルギーは、Eh+Evで表される。更に図37に示す例は(j,i)における赤色の中心画素に対するEh及びEvの計算を示すが、Eh値及びEv値は青色の中心画素に対して同様に判定されることが理解されるべきである。
次に水平及び垂直フィルタリングは、それぞれ水平方向及び垂直方向の補間済み緑色値を表す垂直及び水平フィルタリング済みの値Gh及びGvを取得するためにベイヤパターンに適用される。フィルタリング済みの値Gh及びGvは、欠落した緑色サンプルの場所における高周波信号を得るために隣接する色(R又はB)の方向勾配を使用することに加えて既知の隣接する緑色サンプルにおいてローパスフィルタを使用して判定される。例えば図38を参照して、Ghを判定するための水平補間の一例を次に示す。
図38に示すように、ベイヤ画像の赤色の線530の5つの水平画素(R0、G1,R2、G3及びR4)は、Ghを判定する際に考慮される。ここで、R2は(j,i)における中心画素であると仮定される。これらの5つの画素の各々と関連付けられたフィルタ係数は、図中符号532により示される。従って、中心画素R2に対するG2'で示される緑色値の補間は以下のように判定される。
種々の数値演算は、以下の式47及び48に示したG2'に対する表現を生成するために利用される。
図38及び上記の式46〜48を参照すると、(j,i)における緑色値に対する水平補間に対する一般的な表現は以下のように導出される。
垂直フィルタリング成分Gvは、Ghと同様に判定される。例えば図39を参照すると、ベイヤ画像の赤色の列534の5つの垂直画素(R0、G1、R2、G3及びR4)及びそれらのフィルタ係数536は、Gvを判定する際に考慮される。ここで、R2は(j,i)における中心画素であると仮定される。垂直方向において既知の緑色サンプルにおいてローパスフィルタリングを使用し且つ赤色チャネルにおいてハイパスフィルタリングを使用して、Gvに対して以下の表現を導出する。
本明細書で説明した例は、赤色画素における緑色値の補間を示したが、式49及び50において示された表現が青色画素に対する緑色値の水平及び垂直補間において使用されることが理解されるべきである。
中心画素(j,i)に対する最終的な補間済み緑色値G'は、以下の式を得るために上述したエネルギー成分(Eh及びEv)により水平フィルタ出力(Gh)及び垂直フィルタ出力(Gv)を重み付けすることにより判定される。
上述したように、エネルギー成分Eh及びEvは、水平フィルタ出力Gh及び垂直フィルタ出力Gvのエッジ適応重み付けを提供し、これは、再構成RGB画像におけるレインボー、エイリアシング又はチェッカーボードアーチファクト等の画像アーチファクトを低減するのを助長する。更にデモザイクロジック部404は、Gh及びGvが同等に重み付けされるようにEh値及びEv値をそれぞれ1に設定することによりエッジ適応重み付け機能を回避するオプションを提供する。
一実施形態において、上記の式51に示す水平重み付け係数及び垂直重み付け係数は、重み付け係数の精度を「粗」な値の集合に低下させるために量子化される。例えば一実施形態において、重み付け係数は、8つの可能な重み比率1/8、2/8、3/8、4/8、5/8、6/8、7/8及び8/8に量子化される。他の実施形態は、重み付け係数を16個の値(例えば、1/16〜16/16)及び32個の値(1/32〜32/32)等に量子化する。理解されるように、完全精度値(例えば、32ビットの浮動小数点の値)を使用することと比較すると、重み係数の量子化は、重み付け係数を判定して水平フィルタ出力及び垂直フィルタ出力に適用する時の実装の複雑さを軽減できる。
更なる実施形態において、本明細書で開示される技術は、重み付け係数を水平フィルタリング済みの値(Gh)及び垂直フィルタリング済みの値(Gv)に適用するために水平エネルギー成分及び垂直エネルギー成分を判定し且つ使用することに加えて、正の対角線方向及び負の対角線方向のエネルギー成分を判定し且つ利用する。例えばそのような実施形態において、フィルタリングは正の対角線方向及び負の対角線方向に適用される。フィルタ出力の重み付けは、2つの最大エネルギー成分を選択すること及びそれぞれのフィルタ出力を重み付けするためにそれら選択したエネルギー成分を使用することを含む。例えば2つの最大エネルギー成分が垂直方向及び正の対角線方向に対応すると仮定すると、垂直方向のエネルギー成分及び正の対角線方向のエネルギー成分は、垂直方向のフィルタ出力及び正の対角線方向のフィルタ出力を重み付けするために使用され、補間済み緑色値(例えば、ベイヤパターンにおける赤色画素又は青色画素の場所における)を判定する。
次に赤色チャネル及び青色チャネルにおけるデモザイクは、ベイヤ画像パターンの緑色画素において赤色値及び青色値を補間し、ベイヤ画像パターンの青色画素において赤色値を補間し、且つベイヤ画像パターンの赤色画素において青色値を補間することにより実行される。ここで説明した技術によると、欠落した赤色画素値及び青色画素値は、既知の隣接する赤色画素及び青色画素に基づくローパスフィルタリング並びに現在の画素の場所に依存して元の値であるか又は補間済みの値(上述した緑色チャネルデモザイク処理から得られる)同一の場所に配置された緑色画素値に基づくハイパスフィルタリングを使用して補間される。そのような実施形態に関して、欠落した緑色値の補間は、緑色値(元の値及び補間済みの値の双方)の完全な集合が欠落した赤色サンプル及び青色サンプルを補間する時に利用可能であるように最初に実行されることが理解されるべきである。
赤色画素値及び青色画素値の補間について、図40を参照して説明する。図40は、赤色及び青色デモザイクが適用されるベイヤ画像パターンの種々の3×3ブロック並びに緑色チャネルにおけるデモザイク中に取得された補間済み緑色値(G'で示す)を示す。まずブロック540を参照すると、Gr画素(G11)に対する補間済みの赤色値R'11は以下のように判定される。
式中、G'10及びG'12は、図中符号548により示されるように補間済み緑色値を表す。同様に、Gr画素(G11)に対する補間済み青色値B'11は以下のように判定される。
式中、G'01及びG'21は補間済み緑色値を表す(548)。
次に中心画素がGb画素(G11)である画素ブロック542を参照すると、補間済み赤色値R'11及び青色値B'11は、以下の式54及び55に示すように判定される。
更に画素ブロック544を参照すると、青色画素B11における赤色値の補間は以下のように判定される。
式中、G'00、G'02、G'11、G'20及びG'22は、図中符号550により示されるように補間済み緑色値を表す。最後に、画素ブロック546により示されるような赤色画素における青色値の補間は以下のように算出される。
上述した実施形態は、補間済み赤色値及び青色値を判定するために色差(例えば、勾配)に依存したが、別の実施形態は、色比を使用して補間済み赤色値及び青色値を提供する。例えば補間済み緑色値(ブロック548及び550)は、ベイヤ画像パターンの赤色画素の場所及び青色画素の場所における色比を取得するために使用され、それらの比の線形補間は、欠落したカラーサンプルに対する補間済み色比を判定するために使用される。補間済みの値又は元の値である緑色値は、最終的な補間済み色値を取得するために補間済み色比と乗算される。例えば色比を使用する赤色画素値及び青色画素値の補間は、以下の式に従って実行される。ここで、式58及び59はGr画素に対する赤色値及び青色値の補間を示し、式60及び61はGb画素に対する赤色値及び青色値の補間を示し、式62は青色画素における赤色値の補間を示し、式63は赤色画素における青色値の補間を示す。
(G11がGr画素の場合に補間されたR'11)
(G11がGr画素の場合に補間されたB'11)
(G11がGb画素の場合に補間されたR'11)
(G11がGb画素の場合に補間されたB'11)
(青色画素B11において補間されたR'11)
(赤色画素R11において補間されたB'11)
欠落したカラーサンプルがベイヤ画像パターンの画像画素毎に補間されると、赤色チャネル、青色チャネル及び緑色チャネルに対する色値の完全なサンプル(例えば、図36の514、516及び518)は、フルカラーRGB画像を生成するために組み合わされる。例えば図27及び図28に戻ると、raw画素処理ロジック部360の出力372は、8ビット形式、10ビット形式、12ビット形式又は14ビット形式のRGB画像信号である。
次に図41〜図44を参照すると、開示された実施形態に従ってrawベイヤ画像パターンをデモザイクする処理を示す種々のフローチャートが示される。特に、図41の処理560は、所定の入力画素Pに対して補間される色成分の判定を示す。処理560による判定に基づいて、緑色値を補間する処理572(図42)、赤色値を補間する処理584(図43)及び青色値を補間する処理598(図44)のうちの1つ以上が実行される(例えば、デモザイクロジック部404により)。
図41から開始すると、処理560は入力画素Pが受信された時にステップ562で開始する。判断ロジック564は、入力画素の色を判定する。例えばこれは、ベイヤ画像パターン内の画素の場所に依存する。従って、Pが緑色画素(例えば、Gr又はGb)であると識別される場合、処理560はステップ578に進み、Pに対する補間済み赤色値及び青色値を取得する。例えばこれは、図43の処理584及び図44の処理598に継続することを含む。Pが赤色画素であると識別される場合、処理560はステップ580に進み、Pに対する補間済みに緑色値及び青色値を取得する。これは、図42の処理572及び図44の処理598を更に実行することを含む。また、Pが青色画素であると識別される場合、処理560はステップ570に進み、Pに対する補間済みの緑色値及び赤色値を取得する。これは、図42の処理572及び図43の処理584を更に実行することを含む。処理572、584及び598の各々について以下に更に説明する。
入力画素Pに対する補間済み緑色値を判定する処理572は、図42に示され、ステップ574〜582を含む。ステップ574において、入力画素Pが受信される(例えば、処理560から)。次のステップ576において、5×5画素ブロックを形成する隣接画素の集合が識別される。ここで、Pは5×5ブロックの中心である。その後、ステップ578において、画素ブロックは、水平エネルギー成分及び垂直エネルギー成分を判定するために解析される。例えば水平エネルギー成分及び垂直エネルギー成分は、それぞれEh及びEvを算出するための式44及び45に従って判定される。上述したように、エネルギー成分Eh及びEvは、エッジ適応フィルタリングを提供するために重み付け係数として使用されるため、最終的な画像における特定のデモザイクアーチファクトの出現を低減できる。ステップ580において、水平フィルタリング出力及び垂直フィルタリング出力を判定するために、ローパスフィルタリング及びハイパスフィルタリングは水平方向及び垂直方向に適用される。例えば水平フィルタリング出力Gh及び垂直フィルタリング出力Gvは、式49及び50に従って算出される。次に処理560はステップ582に継続し、式51に示すように、補間済み緑色値G'はエネルギー成分Eh及びEvにより重い付けされたGh及びGvの値に基づいて補間される。
次に、図43の処理584に関して、赤色値の補間はステップ586で開始し、入力画素Pが受信される(例えば、処理560から)。ステップ588において、3×3画素ブロックを形成する隣接画素の集合が識別される。ここで、Pは3×3ブロックの中心である。その後、ステップ590において、ローパスフィルタリングは、3×3ブロック内の隣接赤色画素において適用され、ハイパスフィルタリングは、ベイヤ撮像素子により撮像された元の緑色値又は補間済みの値(例えば、図42の処理572を介して判定された)である同一の場所に配置された隣接する緑色値において適用される。Pに対する補間済み赤色値R'は、ステップ594において示すように、ローパスフィルタリング出力及びハイパスフィルタリング出力に基づいて判定される。Pの色に依存して、R'は式52、54又は56の1つに従って判定される。
青色値の補間に関して、図44の処理598が適用される。一般にステップ600及び602は、処理584(図43)のステップ586及び588と同一である。ステップ604において、ローパスフィルタリングは、3×3内の隣接青色画素において適用され、ステップ606において、ハイパスフィルタリングはベイヤ撮像素子により撮像された元の緑色値又は補間済みの値(例えば、図42の処理572を介して判定された)である同一の場所に配置された隣接する緑色値において適用される。Pに対する補間済み青色値B'は、ステップ608において示すように、ローパスフィルタリング出力及びハイパスフィルタリング出力に基づいて判定される。Pの色に依存して、B'は式53、55又は57の1つに従って判定される。更に上述したように、赤色値及び青色値の補間は、色差(式52〜27)又は色比(式58〜63)を使用して判定される。欠落した緑色値の補間は、緑色値(元の値及び補間済みの値の双方)の完全な集合が欠落した赤色サンプル及び青色サンプルを補間する時に利用可能であるように最初に実行されることが理解されるべきである。例えば図42の処理572は、図43の処理584及び図44の処理598をそれぞれ実行する前に全ての欠落した緑色サンプルを補間するために適用される。
図45〜図48を参照すると、ISPパイプ82のraw画素処理ロジック部360により処理された画像の例が提供される。図45は、撮影装置30の撮像素子90により撮像される元の画像シーン620を示す。図46は、撮像素子90により撮像されたraw画素データを表すrawベイヤ画像622を示す。上述したように、従来のデモザイク技術は、画像データにおけるエッジ(例えば、2色以上の領域間の境界)の検出に基づいて適応フィルタリングを提供しない可能性があり、これにより、結果として得られる再構成フルカラーRGB画像においてアーチファクトが生成されてしまう。例えば図47は従来のデモザイク技術を使用して再構成されたRGB画像624を示し、エッジ628において「チェッカーボード」アーチファクト626等のアーチファクトを含む可能性がある。しかし、上述したデモザイク技術を使用して再構成された画像の一例である図48のRGB画像630と画像624とを比較すると、図47に存在するチェッカーボードアーチファクト626が存在しないこと、あるいは少なくともその見かけがエッジ628において実質的に低減されていることがわかる。このように、図45〜図48に示す画像は、従来の方法と比べて本明細書で開示したデモザイク技術が有する少なくとも1つの利点を示すことを意図する。
図27に戻ると、RGB画像信号372を出力するraw画素処理ロジック部360の動作について十分に説明したため、次にこの説明はRGB処理ロジック部362によるRGB画像信号372の処理に注目する。図示するように、RGB画像信号372は、選択ロジック部376及び/又はメモリ108に送出される。RGB処理ロジック部362は、選択ロジック部376の構成に依存して、信号374で示すような信号372又はメモリ108からのRGB画像データである入力信号378を受信する。RGB画像データ378は、色補正(例えば、色補正行列を使用する)、自動ホワイトバランスに対する色ゲインの適用、並びにグローバルトーンマッピング等を含む色調整動作を実行するために、RGB処理ロジック部362により処理される。
RGB処理ロジック部362の一実施形態のより詳細な図を示すブロック図を図49に示す。図示するように、RGB処理ロジック部362は、ゲイン、オフセット及びクランピング(GOC)ロジック部640、RGB色補正ロジック部642、GOCロジック部644、RGBガンマ調整ロジック部、並びに色空間変換ロジック部648を含む。入力信号378は、最初にゲイン、オフセット及びクランピング(GOC)ロジック部640により受信される。図示する実施形態において、GOCロジック部640は、色補正ロジック部642による処理の前にR色チャネル、G色チャネル又はB色チャネルのうちの1つ以上において自動ホワイトバランスを実行するためにゲインを適用する。
GOCロジック部640は、ベイヤ画像データのR、B、Gr及びGb成分ではなくRGB領域の色成分が処理されること以外はraw画素処理ロジック部360のGOCロジック部394と類似する。動作中、現在の画素に対する入力値は、上記の式9で示すように、まず符号付き値O[c]の分だけオフセットされ、ゲインG[c]と乗算される。ここで、cはR、G及びBを表す。上述したように、ゲインG[c]は2ビットの整数部及び14ビットの小数部(例えば、浮動小数点表現で2.14)を有する16ビットの符号なし数であり、ゲインG[c]の値は統計処理(例えば、ISPフロントエンド処理ブロック80における)中に先に判定される。計算された画素値Y(式9に基づく)は、式10に従って最小及び最大範囲にクリップされる。上述したように、変数min[c]及びmax[c]は、それぞれ最小出力値及び最大出力値に対する16ビットの符号付き「クリッピング値」を表す。一実施形態において、GOCロジック部640は、色成分R、G及びBの各々に対して最大値の上及び最小値の下にクリップされた画素数のカウントを維持するように更に構成される。
GOCロジック部640の出力は、色補正ロジック部642に転送される。ここで開示された技術によると、色補正ロジック部642は、色補正行列(CCM)を使用してRGB画像データに色補正を適用するように構成される。一実施形態において、CCMは3×3RGB変換行列であるが、他の実施形態において、他の次元の行列が利用される(例えば、4×3等)。従って、R、G及びB成分を有する入力画素に対して色補正を実行する処理は、以下のように表される。
式中、R、G及びBはそれぞれ入力画素に対する現在の赤色値、緑色値及び青色値を表し、CCM00〜CCM22は色補正行列の係数を表し、R'、G'及びB'はそれぞれ入力画素に対する補正済み赤色値、緑色値及び青色値を表す。従って、正確な色値は、以下の式65〜67に従って計算される。
上述したように、CCMの係数(CCM00〜CCM22)は、ISPフロントエンド処理ブロック80における統計処理中に判定される。一実施形態において、所定の色チャネルに対する係数は、それら係数(例えば、赤色補正の場合はCCM00、CCM01及びCCM02)の合計が1になるように選択され、これは、明るさ及び色のバランスを維持するのを助長する。更に係数は、一般に正のゲインが補正されている色に適用されるように選択される。例えば赤色補正の場合、係数CCM00は1より大きく、係数CCM01及びCCM02の一方又は双方は1より小さい。このように係数を設定することにより、結果として得られる補正済みR'値の赤色(R)成分を向上し、その一方で青色(B)成分及び緑色(G)成分の一部を減算する。理解されるように、これは、特定のカラー画素に対するフィルタリングされた光の一部が異なる色の隣接画素に「流出」する時に元のベイヤ画像の取得中に起こる可能性のある色の重なりに関する問題に対処する。一実施形態において、CCMの係数は、4ビットの整数部及び12ビットの小数部(浮動小数点で4.12と表される)を有する16ビットの2の補数として提供される。更に色補正ロジック部642は、計算された補正済み色値が最大値を上回るか又は最小値を下回る場合にその値のクリッピングを提供する。
RGB色補正ロジック部642の出力は、別のGOCロジックブロック644に渡される。GOCロジック部644は、GOCロジック部640と同一の方法で実現されるため、提供されるゲイン、オフセット及びクランピング機能の詳細な説明はここでは繰り返さない。一実施形態において、色補正に後続するGOCロジック部644の適用は、補正済み色値に基づいて画像データの自動ホワイトバランスを提供し、赤色対緑色の比及び青色対緑色の比のセンサの変動値を更に調整する。
次に、GOCロジック部644の出力は、更なる処理のためにRGBガンマ調整ロジック部646に送出される。例えばRGBガンマ調整ロジック部646は、ガンマ補正、トーンマッピング及びヒストグラムマッチング等を提供する。開示された実施形態によると、ガンマ調整ロジック部646は、対応する出力RGB値への入力RGB値のマッピングを提供する。例えばガンマ調整ロジック部は、3つのルックアップテーブルの集合、すなわちR、G及びB成分の各々に対して1つのテーブルを提供する。例として、各ルックアップテーブルは、各々が出力レベルを表す10ビット値の256個のエントリを格納するように構成される。テーブルエントリは、入力値が2つのエントリ間にある場合に出力値が線形補間されるように、入力画素値の範囲において均等に分散される。一実施形態において、R、G及びBに対する3つのルックアップテーブルの各々は、メモリに「ダブルバッファリング」されるように複製され、それにより、その複製が更新されている間、1つのテーブルが処理中に使用できる。尚、上述した10ビット出力値に基づいて、14ビットのRGB画像信号は、本実施形態におけるガンマ補正処理の結果として効果的に10ビットにダウンサンプリングされる。
ガンマ調整ロジック部646の出力は、メモリ108及び/又は色空間変換ロジック部648に送出される。色空間変換(CSC)ロジック部648は、ガンマ調整ロジック部646からのRGB出力をYCbCr形式に変換するように構成される。YCbCr形式において、Yはルマ成分を表し、Cbは青差分クロマ成分を表し、Crは赤差分クロマ成分を表し、各々は、ガンマ調整動作中の14ビットから10ビットへのRGBデータのビット深度変換の結果として10ビット形式となる。上述したように、一実施形態において、ガンマ調整ロジック部646のRGB出力は、10ビットにダウンサンプリングされ、CSCロジック部648により10ビットのYCbCr値に変換され、その後、以下に更に説明するYCbCr処理ロジック部364に転送される。
RGB領域からYCbCr色空間への変換は、色空間変換行列(CSCM)を使用して実行される。例えば一実施形態において、CSCMは3×3変換行列である。CSCMの係数は、BT.601及びBT.709規格等の既知の変換式に従って設定される。更にCSCM係数は入力及び出力の所望の範囲に基づいて柔軟性を有する。いくつかの実施形態において、CSCM係数は、ISPフロントエンド処理ブロック80における統計処理中に収集されたデータに基づいて判定され且つプログラムされる。
RGB入力画素に対してYCbCr色空間変換を実行する処理は、以下のように表される。
式中、R、G及びBはそれぞれ10ビット形式(ガンマ調整ロジック部646により処理されたように)の入力画素に対する現在の赤色値、緑色値及び青色値を表し、CSCM00〜CSCM22は色空間変換行列の係数を表し、Y、Cb及びCrはそれぞれ結果として得られる入力画素に対するルマ成分及びクロマ成分を表す。従って、Y、Cb及びCrの値は以下の式69〜71に従って計算される。
色空間変換動作の後、結果として得られるYCbCr値は信号380としてCSCロジック部648から出力され、信号380は、以下に説明するようにYCbCr処理ロジック部364により処理される。
一実施形態において、CSCMの係数は、4ビットの整数部及び12ビットの小数部(4.12)を有する16ビットの2の補数である。別の実施形態において、CSCロジック部648は、Y値、Cb値及びCr値の各々にオフセットを適用し且つ結果として得られる値を最小値及び最大値にクリップするように更に構成される。単なる例として、YCbCr値が10ビット形式であると仮定すると、オフセットは−512〜512の範囲であり、最小値及び最大値はそれぞれ0及び1023である。
図27のISPパイプ処理ロジック部82のブロック図に戻ると、YCbCr信号380は、選択ロジック部384及び/又はメモリ108に送出される。YCbCr処理ロジック部364は、選択ロジック部384の構成に依存して信号382により示すような信号380又はメモリ108からのYCbCr画像データである入力信号386を受信する。YCbCr画像データ386は、ルマ鮮明化、クロマ抑制、クロマ雑音除去、並びに明るさ、コントラスト及び色調整等のためにYCbCr処理ロジック部364により処理される。更にYCbCr処理ロジック部364は、水平方向及び垂直方向の双方の処理済み画像データのガンママッピング及びスケーリングを提供する。
YCbCr処理ロジック部364の一実施形態のより詳細な図を示すブロック図を図50に示す。図示するように、YCbCr処理ロジック部364は、画像鮮明化ロジック部660、明るさ、コントラスト及び/又は色を調整するロジック部662、YCbCrガンマ調整ロジック部664、クロマデシメーションロジック部668及びスケーリングロジック部670を含む。YCbCr処理ロジック部364は、1平面、2平面又は3平面メモリ構成を使用して4:4:4、4:2:2又は4:2:0形式の画素データを処理するように構成される。更に一実施形態において、YCbCr入力信号386は、ルマ及びクロマ情報を10ビット値として提供する。
理解されるように、1平面、2平面又は3平面に対する参照は、ピクチャメモリにおいて利用される像面の数を示す。例えば、3平面形式において、Y成分、Cb成分及びCr成分の各々は、別個のメモリ平面を利用する。2平面形式において、第1の平面はルマ成分(Y)に対して提供され、Cbサンプル及びCrサンプルをインタリーブする第2の平面はクロマ成分(Cb及びCr)に対して提供される。1平面形式において、メモリの単一平面は、ルマサンプル及びクロマサンプルをインタリーブされる。更に4:4:4、4:2:2又は4:2:0形式に関して、4:4:4形式は、3つのYCbCr成分の各々が同一レートでサンプリングされるサンプリング形式を示すことが理解されるだろう。4:2:2形式において、クロマ成分Cb及びCrはルマ成分Yの半分のサンプリングレートでサブサンプリングされ、これによりクロマ成分Cb及びCrの解像度を水平方向に半分に減少する。同様に、4:2:0形式は、垂直方向及び水平方向の双方にクロマ成分Cb及びCrをサブサンプリングする。
YCbCr情報の処理は、ソースバッファ内に規定されたアクティブソース領域内で行われる。アクティブソース領域は、「有効な」画像データを含む。例えば図51を参照すると、アクティブソース領域678を規定したソースバッファ676が示される。図示する例において、ソースバッファは、10ビット値のソース画素を提供する4:4:4の1平面形式を表す。アクティブソース領域678は、ルマ(Y)サンプル及びクロマサンプル(Cb及びCr)に対して個々に指定される。従って、アクティブソース領域678は、実際にはルマサンプル及びクロマサンプルに対して複数のアクティブソース領域を含むことが理解されるべきである。ルマ及びクロマに対するアクティブソース領域678の開始はソースバッファの基本アドレス(0,0)680からのオフセットに基づいて判定される。例えばルマアクティブソース領域に対する開始位置(Lm_X,Lm_Y)682は、基本アドレス680に対するxオフセット686及びyオフセット690により規定される。同様に、クロマアクティブソース領域に対する開始位置(Ch_X、Ch_Y)684は、基本アドレス680に対するxオフセット688及びyオフセット692により規定される。尚、この例において、ルマ及びクロマに対するyオフセット688及び692は等しい。開始位置682に基づいて、ルマアクティブソース領域は、それぞれx方向及びy方向のルマサンプルの数を表す幅694及び高さ696により規定される。更に開始位置684に基づいて、クロマアクティブソース領域は、それぞれx方向及びy方向のクロマサンプルの数を表す幅698及び高さ700により規定される。
図52は、2平面形式でのルマサンプル及びクロマサンプルに対するアクティブソース領域の判定方法を示す一例を更に提供する。例えば図示するように、ルマアクティブソース領域678は、第1のソースバッファ676(基本アドレス680を有する)において、開始位置682に対する幅694及び高さ696により指定される領域により規定される。クロマアクティブソース領域704は、第2のソースバッファ702(基本アドレス706を有する)において、開始位置684を基準として幅698及び高さ700により指定される領域として規定される。
上記の点を考慮し、図50に戻ると、まずYCbCr信号386が画像鮮明化ロジック部660により受信される。画像鮮明化ロジック部660は、画像におけるテクスチャ及びエッジ詳細を増加するためにピクチャ鮮明化及びエッジ強調処理を実行するように構成される。理解されるように、画像鮮明化は知覚される画像解像度を向上する。しかし、一般に画像における既存の雑音がテクスチャ及び/又はエッジとして検出されず、従って、鮮明化処理中に増幅されないのが望ましい。
本技術によると、画像鮮明化ロジック部660は、YCbCr信号のルマ(Y)成分においてマルチスケールアンシャープマスクフィルタを使用してピクチャ鮮明化を実行する。一実施形態において、スケールサイズの異なる2つ以上のローパスガウスフィルタが提供される。例えば2つのガウスフィルタを提供する一実施形態において、第1の半径(x)を有する第1のガウスフィルタの出力(例えば、ガウスぼかし)は第2の半径(y)を有する第2のガウスフィルタの出力から減算され、アンシャープマスクを生成する。ここで、xはyより大きい。更なるアンシャープマスクは、Y入力からガウスフィルタの出力を減算することにより取得される。特定の実施形態において、この技術はアンシャープマスクを使用して実行される適応コアリング閾値比較動作を提供し、その結果、その比較の結果に基づいて、ゲイン量が元のY入力画像又は1つのガウスフィルタの出力として選択される基本画像に加算され、最終的な出力を生成する。
図53を参照すると、本明細書で開示される技術の実施形態に従って画像鮮明化を実行する例示的なロジック部710を示すブロック図が示される。ロジック部710は、入力ルマ画像Yinに適用されるマルチスケールアンシャープフィルタリングマスクを表す。例えば図示するように、Yinは2つのローパスガウスフィルタ712(G1)及び714(G2)により受信され且つ処理される。この例において、フィルタ712は3×3フィルタであり、フィルタ714は5×5フィルタである。しかし、追加の実施形態において、異なるスケールのフィルタを含む3つ以上のガウスフィルタが使用される(例えば、7×7、9×9等)ことが理解されるべきである。理解されるように、ローパスフィルタリング処理のために、一般に雑音に対応する高周波成分はG1及びG2の出力から除去され、「非鮮明な」画像(G1out及びG2out)を生成する可能性がある。以下に説明するように、非鮮明な入力画像を基本画像として使用することにより、鮮明化フィルタの一部として雑音除去が可能になる。
3×3ガウスフィルタ712及び5×5ガウスフィルタ714は、以下に示すように規定される。
単なる例として、ガウスフィルタG1及びG2の値は、一実施形態において以下のように選択される。
Yin、G1out及びG2outに基づいて、3つのアンシャープマスクSharp1、Sharp2及びSharp3が生成される。Sharp1は、ガウスフィルタ712の非鮮明な画像G1outからガウスフィルタ714の非鮮明な画像G2outを減算された結果として判定される。Sharp1は、実質的には2つのローパスフィルタ間の差分であるため、高周波雑音成分がG1out及びG2out非鮮明画像において既に除去されているために「ミッドバンド」マスクと呼ばれる。更にSharp2は、入力ルマ画像YinからG2outを減算することにより算出され、Sharp3は入力ルマ画像YinからG1outを減算することにより算出される。以下に説明するように、適応閾値コアリング方式は、アンシャープマスクSharp1、Sharp2及びSharp3を使用して適用される。
選択ロジック部716を参照すると、基本画像は制御信号UnsharpSelに基づいて選択される。図示する実施形態において、基本画像は、入力画像Yin、あるいはフィルタリング済み出力G1out又はG2outである。理解されるように、元の画像が大きい雑音変動(例えば、信号変動とほぼ同等)を有する場合、鮮明化の際に元の画像Yinを基本画像として使用すると、鮮明化中に雑音成分を十分に除去しない可能性がある。従って、雑音コンテンツの特定の閾値が入力画像において検出される場合、選択ロジック部716は、雑音を含む可能性のある高周波コンテンツが低減されたローパスフィルタリング済み出力G1out又はG2outの一方を選択するように構成される。一実施形態において、制御信号UnsharpSelの値は、画像の雑音コンテンツを判定するためにISPフロントエンド処理ブロック80における統計処理中に取得された統計データを解析することにより判定される。例として、鮮明化処理の結果として出現雑音が増加しないような低雑音コンテンツを入力画像Yinが有する場合、入力画像Yinは基本画像として選択される(例えば、UnsharpSel=0)。鮮明化処理が雑音を増幅するような認識できるレベルの雑音を入力画像Yinが含むと判定される場合、フィルタリング済み画像G1out又はG2outの一方が選択される(例えば、UnsharpSel=1又は2)。従って、基本画像を選択する適応技術を適用することにより、ロジック部710は実質的に雑音除去機能を提供する。
次に、以下に説明するように、ゲインは適応コアリング閾値方式に従ってSharp1、Sharp2及びSharp3マスクのうちの1つ以上に適用される。次に、アンシャープ値Sharp1、Sharp2及びSharp3は、比較器ブロック718、720及び722により種々の閾値SharpThd1、SharpThd2及びSharpThd3(それぞれ対応する必要はない)と比較される。例えば、Sharp1値は、比較器ブロック718において常にSharpThd1と比較される。比較器ブロック720に関しては、閾値SharpThd2が選択ロジック部726に依存してSharp1又はSharp2と比較される。例えば、選択ロジック部726は、制御信号SharpCmp2の状態に依存してSharp1又はSharp2を選択する(例えば、SharpCmp2=1はSharp1を選択し、SharpCmp2=0はSharp2を選択する)。例えば一実施形態において、SharpCmp2の状態は、入力画像(Yin)の雑音変動/コンテンツに依存して判定される。
図示する実施形態において、画像データが相対的に少ない雑音を有することが検出されない限り、一般にSharp1を選択するようにSharpCm2及びSharpCmp3を設定するのが好ましい。これは、ガウスローパスフィルタG1及びG2の出力の間の差分であるSharp1が一般に雑音の影響を受けにくく、そのため「雑音のある」画像データにおける雑音レベルの変動によりSharpAmt1、SharpAmt2及びSharpAmt3が変動する量を低減するのを助長できるためである。例えば元の画像が大きい雑音変動を有する場合、固定閾値を使用する時に高周波成分の一部が把握できず、鮮明化処理中に増幅される可能性がある。従って、入力画像の雑音コンテンツが多い場合、雑音コンテンツの一部がSharp2に存在する可能性がある。そのような例において、SharpCmp2は1に設定され、上述したように2つのローパスフィルタ出力の差分であるために高周波コンテンツを低減し且つそのため雑音の影響が少ないミッドバンドマスクSharp1を選択する。
理解されるように、同様の処理は、SharpCmp3の制御下の選択ロジック部724によるSharp1又はSharp3の選択に適用される。一実施形態において、SharpCmp2及びSharpCmp3はデフォルトで1に設定され(例えば、Sharp1を使用する)、一般に小さい雑音変動を有すると識別される入力画像に対してのみ0に設定される。これは、実質的に、比較値(Sharp1、Sharp2又はSharp3)の選択が入力画像の雑音変動に基づいて適応可能である適応コアリング閾値方式を提供する。
比較器ブロック718、720及び722の出力に基づいて、鮮明化された出力画像Ysharpは基本画像(例えば、ロジック部716を介して選択された)に入手したアンシャープマスクを適用することにより判定される。例えば最初に比較器ブロック722を参照すると、SharpThd3は、本明細書において「SharpAbs」と呼ばれ且つSharpCmp3の状態に依存してSharp1又はSharp3と等しい選択ロジック部724により提供されたB入力と比較される。SharpAbsが閾値SharpThd3より大きい場合、ゲインSharpAmt3はSharp3に適用され、結果として得られる値は基本画像に加算される。SharpAbsが閾値SharpThd3より小さい場合、減衰ゲインAtt3が適用される。一実施形態において、減衰ゲインAtt3は以下のように判定される。
式中、SharpAbsは、選択ロジック部724により判定されるようにSharp1又はSharp3である。フルゲイン(SharpAmt3)又は減衰ゲイン(Att3)と合計された基本画像の選択は、比較器ブロック722の出力に基づいて選択ロジック部728により実行される。理解されるように、減衰ゲインを使用することにより、SharpAbsが閾値(例えば、SharpThd3)より大きくないが、画像の雑音変動が所定の閾値に近い状況に対処する。これは、鮮明な画素と非鮮明な画素との間の認識される移行部分を減少するのを助長する。例えば画像データがそのような状況において減衰ゲインなしで渡される場合、結果として得られる画素は欠陥画素(例えば、スタックピクセル)として現れるだろう。
次に同様の処理が、比較器ブロック720に関して適用される。例えばSharpCmp2の状態に依存して、選択ロジック部726は閾値SharpThd2と比較される比較器ブロック720に対する入力としてSharp1又はSharp2を提供する。比較器ブロック720の出力に依存して、ゲインSharpAmt2又はSharpAmt2に基づく減衰ゲインAtt2は、Sharp2に適用され、上述した選択ロジック部728の出力に加算される。理解されるように、減衰ゲインAtt2は、ゲインSharpAmt2及び閾値SharpThd2がSharp1又はSharp2として選択されるSharpAbsに関して適用されること以外は上記の式72と同様の方法で計算される。
その後、ゲインSharpAmt1又は減衰ゲインAtt1はSharp1に適用され、結果として得られる値は、選択ロジック部730の出力と合計され、鮮明化された画素出力Ysharpを生成する。ゲインSharpAmt1又は減衰ゲインAtt1を適用する選択は、Sharp1と閾値SharpThd1とを比較する比較器ブロック718の出力に基づいて判定される。減衰ゲインAtt1は、ゲインSharpAmt1及び閾値SharpThd1がSharp1に関して適用されること以外は上記の式72と同様の方法で判定される。3つのマスクの各々を使用してスケーリングされた結果として得られる鮮明化画素値は、入力画素Yinに加算され、鮮明化出力Ysharpを生成する。この出力は、一実施形態において10ビットにクリップされる(YCbCr処理が10ビット精度で行われることを仮定する)。
理解されるように、従来のアンシャープマスキング技術と比較すると、本発明で示す画像鮮明化技術は、出力画像における雑音を低減しつつ、テクスチャ及びエッジの強調を向上する。特に本技術は、ポータブル装置(例えば、移動電話)に内蔵された低解像度カメラを使用して低光条件下で取得された画像等の例えばCMOS撮像素子を使用して撮像された画像が低い信号対雑音比を示す応用例において非常に適するだろう。例えば雑音変動及び信号変動が同等である場合、雑音成分の一部がテクスチャ及びエッジに沿って鮮明化されるため、鮮明化するのに固定閾値を使用するのは困難である。従って、上述したように、本明細書で提供される技術は、低減された雑音コンテンツを示す鮮明化画像を提供するために、マルチスケールガウスフィルタを使用して入力画像から雑音を除去し、非鮮明な画像(例えば、G1out及びG2out)から特徴を抽出する。
説明を続ける前に、図示するロジック部710は、本技術の例示的な一実施形態のみを提供することを意図することが理解されるべきである。他の実施形態において、追加の特徴又はより少ない特徴が画像鮮明化ロジック部660により提供される。例えばいくつかの実施形態において、減衰ゲインを適用するのではなく、ロジック部710は単純に基準値を渡す。更にいくつかの実施形態は、選択ロジックブロック724、726又は716を含まない。例えば比較器ブロック720及び722は、選択ロジックブロック724及び726からの選択出力ではなく、単にSharp2値及びSharp3値を受信する。そのような実施形態は、図53に示す実現例と同等のロバスト性を有する鮮明化機能及び/又は雑音除去機能を提供しないが、そのような設計選択は、コスト及び/又はビジネス関連の制約の結果行われることが理解されるべきである。
本実施形態において、画像鮮明化ロジック部660は、鮮明化画像出力YSharpが取得されると、エッジ強調機能及びクロマ制約機能を提供する。これらの追加の機能の各々について以下に説明する。まず図54を参照すると、図53の鮮明化ロジック部710の下流側で実現されるエッジ強調を実行する例示的なロジック部738が一実施形態に従って示される。図示するように、元の入力値Yinはエッジ検出のためにソーベルフィルタ740により処理される。ソーベルフィルタ740は、元の画像の3×3画素ブロック(以下において「A」で示される)に基づいて勾配値YEdgeを判定する。ここで、Yinは3×3ブロックの中心画素である。一実施形態において、ソーベルフィルタ740は、水平方向及び垂直方向の変化を検出するために元の画像データを畳み込むことによりYEdgeを算出する。この処理を以下の式73〜75において示す。
式中、Sx及びSyは、それぞれ水平方向及び垂直方向の勾配エッジ明度検出のための行列演算子を表す。Gx及びGyは、それぞれ水平方向の変化の導関数及び垂直直方向の変化の導関数を含む勾配画像を表す。従って、出力YEdgeは、Gx及びGyの積として判定される。
YEdgeは、図53において上述したように、ミッドバンドSharp1マスクに沿って選択ロジック部744により受信される。制御信号EdgeCmpに基づいて、Sharp1又はYEdgeは比較器ブロック742において閾値EdgeThdと比較される。EdgeCmpの状態は、例えば画像の雑音コンテンツに基づいて判定され、それによりエッジ検出及び強調のために適応コアリング閾値方式を提供する。次に比較器ブロック742の出力は、選択ロジック部746に提供され、フルゲイン又は減衰ゲインが適用される。例えば比較器ブロック742に対する選択されたB入力(Sharp1又はYEdge)はEdgeThdを上回る場合、YEdgeは、適用されるエッジ強調量を判定するためにエッジゲインEdgeAmtと乗算される。比較器ブロック742におけるB入力がEdgeThdより小さい場合、減衰エッジゲインAttEdgeは、強調されたエッジと元の画素との間の認識される移行を回避するために適用される。理解されるように、AttEdgeは、上記の式72に示すのと同様に算出されるが、EdgeAmt及びEdgeThdは、選択ロジック部744の出力に依存してSharp1又はYEdgeである「SharpAbs」に適用される。従って、ゲイン(EdgeAmt)又は減衰ゲイン(AttEdge)を使用して強調されたエッジ画素は、Ysharp(図53のロジック部710の出力)に加算され、一実施形態において10ビットにクリップされる(YCbCr処理が10ビット精度で行われることを仮定する)エッジ強調出力画素Youtを取得する。
画像鮮明化ロジック部660により提供されるクロマ抑制機能に関して、そのような機能はルマエッジにおいてクロマを減衰させる。一般に、クロマ抑制は、上述したルマ鮮明化及び/又はエッジ強調ステップから取得された値(YSはrp、Yout)に依存して1より小さいクロマゲイン(減衰率)を適用することにより実行される。例として、図55は、対応する鮮明化ルマ値(YSharp)に対して選択されるクロマゲインを表す曲線752を含むグラフ750である。グラフ750により表されるデータは、YSharp値及び0〜1(減衰率)の対応するクロマゲインのルックアップテーブルとして実現される。ルックアップテーブルは、曲線752を近似するために使用される。ルックアップテーブルにおける2つの減衰率の間の同一の場所に配置されるYSharp値に対して、線形補間が現在のYSharp値を上回るYSharp値及び下回るYSharp値に対応する2つの減衰率に適用される。更に他の実施形態において、入力ルマ値は、図53において上述したようにロジック部710により判定されたSharp1、Sharp2又はSharp3の1つ、あるいは図54において説明したようにロジック部738により判定されるYEdgeとして選択される。
次に画像鮮明化ロジック部660(図50)の出力は、明るさ、コントラスト及び色(BCC)調整ロジック部662により処理される。BCC調整ロジック部662の一実施形態を示す機能ブロック図を図56に示す。図示するように、ロジック部662は、明るさ及びコントラスト処理ブロック760、グローバル色相制御ブロック762及び彩度制御ブロック764を含む。ここで示される実施形態は、10ビット精度のYCbCrデータの処理を提供するが、他の実施形態は異なるビット深度を利用する。ブロック760、762及び764の各々の機能を以下に説明する。
最初に明るさ及びコントラスト処理ブロック760を参照すると、オフセットYOffsetは、黒レベルをゼロに設定するためにルマ(Y)データから減算される。これは、コントラスト調整が黒レベルを変更しないことを保証するために行われる。次にルマ値は、コントラスト制御を適用するためにコントラストゲイン値と乗算される。例として、コントラストゲイン値は2ビットの整数部及び10ビットの小数部を有する符号なしの12ビットであり、これにより、最大4×画素値のコントラストゲイン範囲を提供する。その後、明るさの調整は、ルマデータの明るさのオフセット値を加算(又は減算)することにより実現される。例として、本実施形態における明るさのオフセットは、−512〜+512の範囲を有する10ビットの2の補数である。尚、明るさの調整は、コントラストを変更する時にDCオフセットを変動させないようにするためにコントラスト調整の後に実行される。その後、初期のYOffsetは、黒レベルを元に戻すために調整されたルマデータに加算される。
ブロック762及び764は、Cb及びCrデータの色相特徴に基づく色調整を提供する。図示するように、512のオフセット(10ビット処理を仮定する)は、範囲を約ゼロに位置付けるためにCb及びCrデータから減算される。色相は、以下の式に従って調整される。
式中、Cbadj及びCradjは調整されたCb値及びCr値をそれぞれ表し、θは以下のように算出される色相角を表す。
上記演算は、グローバル色相制御ブロック762内のロジック部により示され、以下の行列演算により表される。
式中、Ka=cos(θ)であり、Kb=sin(θ)であり、θは上記の式78で規定される。
次に、彩度制御は、彩度制御ブロック764により示されるようにCbadj及びCradjに適用される。図示する実施形態において、彩度制御は、Cb値及びCr値の各々に対するグローバル彩度の乗数及び色相に基づく彩度の乗数を適用することにより実行される。色相に基づく彩度制御は、色の再現性を向上できる。色の色相は、図57の色相環グラフ770により示されるようにYCbCr色空間で表される。理解されるように、YCbCr色相及び彩度の色相環770は、HSV色空間(色相、彩度及び明度)において同一の色相環を約109度シフトすることにより導出される。図示するように、グラフ770は、0〜1の範囲内の彩度の乗数(S)を表す円周値、並びに0〜360度の範囲内の上記で規定するようなθを表す角度値を含む。各θは、異なる色を表す(例えば、49度=マゼンタ、109度=赤、229度=緑等)。特定の色相角θにおける色の色相は、適切な彩度の乗数Sを選択することにより調整される。
図56に戻ると、色相角θ(グローバル色相制御ブロック762において算出される)は、Cb彩度ルックアップテーブル766及びCr彩度ルックアップテーブル768に対する指標として使用される。一実施形態において、彩度ルックアップテーブル766及び768は、0〜360度の色相範囲に均一に分散された256個の彩度値を含み(例えば、第1のルックアップテーブルエントリは0度であり、最後のエントリは360度である)、所定の画素における彩度値Sは、ルックアップテーブル中の現在の色相角θをちょうど下回る彩度値及びちょうど上回る彩度値の線形補間を介して判定される。Cb成分及びCr成分の各々に対する最終的な彩度値は、判定された色相に基づく彩度値とグローバル彩度値(Cb及びCrの各々に対するグローバル定数である)とを乗算することにより取得される。従って、最終的な補正済みCb'値及びCr'値は、色相に基づく彩度制御ブロック764において示すように、Cbadj及びCradjを最終的な各彩度値と乗算することにより判定される。
その後、BCCロジック部662の出力は、図50に示すようにYCbCrガンマ調整ロジック部664に渡される。一実施形態において、ガンマ調整ロジック部664は、Yチャネル、Cbチャネル及びCrチャネルに対する非線形マッピング機能を提供する。例えば入力Y値、Cb値及びCr値は、対応する出力値にマッピングされる。YCbCrデータが10ビットで処理されると仮定すると、補間済み10ビット256エントリルックアップテーブルが利用される。各々がYチャネル、Cbチャネル及びCrチャネルの各々に対するものである3つのそのようなルックアップテーブルが提供される。256個の入力エントリの各々は均一に分散され、出力は現在の入力指標をちょうど上回る指標及びちょうど下回る指標にマッピングされた出力値の線形補間により判定される。いくつかの実施形態において、1024個のエントリ(10ビットデータに対して)を有する補間されていないルックアップテーブルが使用されるが、非常に多くのメモリが必要とされるだろう。理解されるように、ルックアップテーブルの出力値を調整することにより、YCbCrガンマ調整機能は、白黒、セピア色、陰画及びソラリゼーション等の特定の画像フィルタ効果を実行するために使用される。
次にクロマデシメーションは、クロマデシメーションロジック部668によりガンマ調整ロジック部664の出力に適用される。一実施形態において、クロマデシメーションロジック部668は、4:4:4形式からクロマ(Cr及びCr)情報がルマデータの半分のレートでサブサンプリングされる4:2:2形式にYCbCrデータを変換するために水平デシメーションを実行するように構成される。単なる例として、デシメーションは、以下に示すように、ハーフバンドランチョスフィルタ等の7タップローパスフィルタを7つの水平画素の集合に適用することにより実行される。
式中、in(i)は入力画素(Cb又はCr)を表し、C0〜C6は7タップフィルタのフィルタ係数を表す。各入力画素は、クロマフィルタリング済みサンプルに対して柔軟性のある位相オフセットを可能にするために個別のフィルタ係数(C0〜C6)を有する。
更にいくつかの例において、クロマデシメーションは、フィルタリングせずに実行される。これは、ソース画像が元々4:2:2形式で受信されたがYCbCr処理のために4:4:4形式にアップサンプリングされた場合に有用である。この場合、結果として得られるデシメートされた4:2:2画像は元の画像と同一である。
次に、クロマデシメーションロジック部668から出力されたYCbCrデータは、YCbCr処理ブロック364から出力される前にスケーリングロジック部670を使用してスケーリングされる。スケーリングロジック部670の機能は、図13を参照して上述したように、フロントエンド画素処理ユニット130のビニング補償フィルタ182におけるスケーリングロジック部214の機能性に類似する。例えばスケーリングロジック部670は、水平方向及び垂直方向のスケーリングを2段階で実行する。一実施形態において、5タップポリフェーズフィルタは、垂直方向のスケーリングに対して使用され、9タップポリフェーズフィルタは水平方向のスケーリングに対して使用される。マルチタップポリフェーズフィルタは、ソース画像から選択された画素を重み付け因子(例えば、フィルタ係数)と乗算し、それら出力を合計して目標画素を形成する。選択された画素は、現在の画素位置及びフィルタタップ数に依存して選択される。例えば垂直5タップフィルタにより、現在の画素の垂直側の2つの隣接画素が選択され、水平9タップフィルタにより、現在の画素の水平側の4つの隣接画素が選択される。フィルタ係数は、ルックアップテーブルから提供され、現在の画素間の断片の位置により判定される。スケーリングロジック部670の出力390は、YCbCr処理ブロック364からの出力である。
図27に戻ると、処理された出力信号390は、メモリ108に送出されるか、あるいは、ユーザが閲覧するためにディスプレイハードウェア(例えば、ディスプレイ28)に対して又は圧縮エンジン(例えば、符号器118)に対して画像信号114としてISPパイプ処理ロジック部82から出力される。いくつかの実施形態において、画像信号114は、、ディスプレイに提供される前にグラフィック処理ユニット及び/又は圧縮エンジンにより更に処理される。更に1つ以上のフレームバッファは、特にビデオ画像データに関してディスプレイに出力されている画像データのバッファリングを制御するために提供される。
理解されるように、特に欠陥画素検出及び補正、レンズシェーディング補正、デモザイク、並びに画像鮮明化に関連する上述した種々の画像処理技術は、本明細書において単なる例として提供される。従って、本発明は、上記で提供した例のみに限定されるものとして解釈されるべきではないことが理解されるべきである。実際には、本明細書で示す例示的なロジック部は、他の実施形態における多くの変形及び/又は追加の機能が行われてもよい。更に、上述した技術は、あらゆる適切な方法で実現されてもよいことが理解されるべきである。例えば画像処理回路網32の構成要素、特にISPフロントエンド処理ブロック80及びISPパイプブロック82は、ハードウェア(例えば、適切に構成された回路網)、ソフトウェア(例えば、1つ以上の有形コンピュータ可読媒体に格納された実行可能コードを含むコンピュータプログラムを介する)、あるいはハードウェア要素及びソフトウェア要素の組み合わせを使用して実現されてもよい。
上述した特定の実施形態は例として示されたものであり、これらの実施形態は、種々の変更及び別の形態が可能であることが理解されるべきである。請求の範囲は、開示される特定の形態に限定されることを意図せず、本発明の趣旨の範囲内の全ての変更、均等物及び代替物を範囲に含むことを意図することが更に理解されるべきである。