セキュリティ管理システムにおいて一般に設けられている共通のセキュリティ機能に、ビデオ監視がある。ビデオ監視動作は、技術進歩、機構追加、および/または他のセキュリティ機能との互換性をサポートするためにアップグレードが必要となる場合がある。殆どのビデオ監視動作は、一般に、単体の閉回路テレビジョン(CCTV)システムによって設けられており、このシステムは、例えば、オフィス・ビル、小売店、外部組織、学校、鉄道の駅、および街路上であっても極普通に見られる。つまり、効果的に統合したセキュリティ管理システムでは、CCTVシステムが、他のセキュリティ機能と互換性があることが必要となる場合がある。他のセキュリティ機能には、例えば、生物測定によって強化したアクセス制御方法、混雑制御動作、セキュリティ追跡システム、および/またはアクセス追跡システム等がある。一般に、人のオペレータは、種々のセキュリティ機能から収集した情報を利用して、現在のイベントを分析し、講ずるべき処置または以前の事件(occurrence)の法的調査のための処置を決定する。オペレータの分析および行動を簡素化するためまたはその必要性を低減するためには、統合セキュリティ管理システムを一層有効化して、セキュリティ機能によって供給される内容を調整する必要がある。
しかしながら、殆どのCCTVシステムは容易にはアップグレードすることはできないか、またはこれらを他のセキュリティ機能と一体化するのは容易ではない。その結果、ビデオ監視動作を含む統合セキュリティ管理システムには、実現すべき課題が残っている。更に、これらの統合セキュリティ管理システムが発展し更に多くのセキュリティ機能および/または追加の機構を備える可能性(ability)には、一般に限界があり、あるいはハードウェアおよび/またはソフトウェアにおける多大な投資、あるいは人のオペレータを追加することを伴わなければ遂行できない場合もある。
本発明のある種の実施形態は、ビデオ・データ処理方法およびシステムにおいて見出すことができる。この方法の態様は、プログラマブル監視ビデオ・カメラの内部にある1つのチップ内において、プログラマブル監視ビデオ・カメラが発生する生ビデオ信号の中で1つ以上の移動物体を検出することを含むことができる。検出された1つ以上の物体の1つ以上の特性は、プログラマブル監視ビデオ・カメラの内部にある前述の1つのチップ内において抽出することができる。この抽出は、生ビデオ信号に基づくことができ、生ビデオ・データの圧縮の前に実行するとよい。検出した1つ以上の物体の特性には、形状、テクスチャ、色、動きの有無、動きの方向、シーケンス名、位置、リンク、および/または警報の種類を含むことができる。検出した1つ以上の物体の特性の少なくとも1つの1つ以上のテクスチャ表現を、プログラマブル監視ビデオ・カメラの内部にある前述の1つのチップ内において発生することができる。
統合セキュリティ管理が利用されている多くの場所において、ディジタル・ネットワークの展開が進み、それに対するアクセスが増大したことによって、CCTVシステムの柔軟性に限界があることに対処する最新の手法では、ビデオ監視のためにネットワーク互換セキュリティ・カメラを使用するようになっている。殆どのネットワークまたはインターネット・プロトコル(IP)ビデオ・カメラは、ビデオ・コンテンツをイーサネット・ネットワークを通じて伝達することにより、セキュリティ管理システムの実現、柔軟性、および動作可能性の向上を可能にしている。とは言え、現実の統合セキュリティ管理の解決策には、課題が残っている。例えば、既存のネットワークに追加のネットワーク・ビデオ・カメラを容易に追加することができれば、ビデオ監視用途のために取り込まれる情報量を著しく増大させることができ、その結果このビデオ情報を格納および/または分析することが可能になる。更に、有効なセキュリティおよび監視システムを実現する際の複雑さに、ネットワーク管理の問題も加わる。
したがって、統合および展開の柔軟性を備えつつ、バック・エンド・セキュリティ管理プラットフォームが、高度セキュリティ・アプリケーションおよび機能の可用性および効率を高めるように、ビデオ情報の処理および格納を簡素化することを可能にする、新規な費用対効果のあるネットワーク・ビデオ・カメラの解決策が求められている。したがって、この手法は、真の統合セキュリティ管理の問題解決(solution)を可能にすると言える。
図1Aは、本発明の一実施形態による、再構成可能なスマート・ネットワーク・カメラSoCを備えている、ネットワーク・カメラ・アーキテクチャのブロック図を示す。図1Aを参照すると、スマート・ネットワーク・カメラ110のネットワーク・アーキテクチャ例は、チップ上の再構成可能なスマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、メモリ105、イーサネット送受信部106、カメラ・ロジックDC−DC変換器107を備えることができる。更に、メモリ105はDDR SDRAM105aおよびSDRAM105bを備えることができる。画像センサ100は、CCD、CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。
クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。
再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、および/またはコンテンツ分析というような、様々な段階のデータ処理を実行するために用いることができる。イーサネット送受信部106は、有線ネットワークおよび/またはワイヤレス・ネットワークのような、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。カメラ・ロジックDC−DC変換器107は、適した回路、ロジック、および/またはコードを備えることができ、カメラ・インターフェースとして用いることができる。加えて、カメラ・ロジックDC−DC変換器107をイーサネット送受信部106と統合することもできる。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104に転送することができる。次いで、再構成可能スマート・ネットワーク・カメラSoC104は、色処理、圧縮、および/またはコンテンツ分析というような、数段階のデータ処理を実行することができる。また、再構成可能スマート・ネットワーク・カメラSoC104はメモリ・モジュール105とインターフェースすることもでき、例えば、画像をメモリ105内にバッファすることを可能にすることによって、更なる画像処理に備えることができる。一旦再構成可能スマート・ネットワーク・カメラSoC104において画像データを処理し分析したなら、イーサネット送受信部106を通じてデータをネットワークに送信することができる。別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はイーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。
図1Bは、本発明の一実施形態による、再構成可能スマート・ネットワーク・カメラSoCおよびGPS受信部を備えているネットワーク・カメラ・アーキテクチャのブロック図を示す。図1Bを参照すると、スマート・ネットワーク・カメラ110の一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、メモリ105、イーサネット送受信部106、カメラ・ロジックDC−DC変換器107、およびGPS受信部108を備えることができる。更に、メモリ105はDDR SDRAM105aおよびSDRAM105bを備えることができる。画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。
クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。
再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、および/またはコンテンツ分析というような、様々な段階のデータ処理を実行するために用いることができる。イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。カメラ・ロジックDC−DC変換器107は、適した回路、ロジック、および/またはコードを備えることができ、カメラ・インターフェースとして用いることができる。加えて、カメラ・ロジックDC−DC変換器107をイーサネット送受信部106と統合することもできる。GPS受信部108は、地理的位置データを再構成可能スマート・ネットワーク・カメラSoC104に供給することができる。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104に転送することができる。GPS受信部108は、地理的位置データを再構成可能スマート・ネットワーク・カメラSoC104に供給することができる。次いで、再構成可能スマート・ネットワーク・カメラSoC104は、色処理、圧縮、および/またはコンテンツ分析というような、数段階のデータ処理を実行することができる。一実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、GPS受信部108が供給した地理的データを、様々な方法で用いることができる。その方法には、画像センサ100を通じて取得した画像に情報を埋め込むこと、または情報を添付することが含まれる。この地理的データは、XMLのようなフォーマットに変換することができ、次いで画像と共に埋め込む、添付する、またそれ以外ではパッケージ化することができる。更に、画像および/または地理的データを他のスマート・ネットワーク・カメラに送信し、他のカメラまたはデバイスがこのような情報に反応するまたは更に処理することを可能にすることもできる。また、スマート・ネットワーク・カメラ110は、図1Bに示すGPS受信部108以外にも、追加のモジュール(図1Bには図示しない)を備えることもできる。このようなモジュールの機能は、画像と共に埋め込む、添付する、またそれ以外ではパッケージ化することができるデータを取り込むことまたは発生することとするとよい。このようなモジュールの別の例は、距離測定レーザ・モジュールとすることもできる。スマート・ネットワーク・カメラ110が距離測定レーザ・モジュールを含む例では、一旦目標を捕らえたなら、カメラからこの目標までの距離を、画像と共に埋め込む、添付する、またはそれ以外ではパッケージ化することができる。次いで、これらの画像および/またはデータは、更に別の処理および/または誘起行為またはイベントのために、他のカメラおよび/またはデバイスに送信することもできる。
また、再構成可能スマート・ネットワーク・カメラSoC104はメモリ・モジュール105とインターフェースすることもでき、例えば、画像をメモリ105内にバッファすることを可能にすることによって、更なる画像処理に備えることができる。一旦再構成可能スマート・ネットワーク・カメラSoC104において画像データを処理し分析したなら、イーサネット送受信部106を通じてデータをネットワークに送信することができる。本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はイーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。
図1Cは、本発明の一実施形態による、再構成可能スマート・ネットワーク・カメラSoCを備えている、ネットワーク・ワイヤレス・カメラ・アーキテクチャのブロック図を示す。図1Cを参照すると、スマート・ネットワーク・カメラ110の一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、メモリ105、GPS受信部108、送受信部106、ワイヤレス・インターフェース130、ワイヤレス・アンテナ140、および/またはイーサネット送受信部131を備えることができる。更に、メモリ105はDDR SDRAM105aおよびSDRAM105bを備えることができる。画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。
クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、および/またはコンテンツ分析というような、様々な段階のデータ処理を実行するために用いることができる。イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。カメラ・ロジックDC−DC変換器107は、適した回路、ロジック、および/またはコードを備えることができ、カメラ・インターフェースとして用いることができる。GPS受信部108は、地理的位置データを再構成可能スマート・ネットワーク・カメラSoC104に供給することができる。ワイヤレス・インターフェース130は、適した回路、ロジック、および/またはコードを備えることができ、1つよりも多いワイヤレス・プロトコルをサポートすることができる。例えば、プロトコルは、802.11a、802.11b、802.11g、802.11n、802.16、Bluetooth、または他のいずれのワイヤレス・プロトコルとしてもよい。ワイヤレス・インターフェース130は、独立して動作することも、イーサネット・インターフェース131と連係して動作することもできる。
ワイヤレス・インターフェース130およびイーサネット・インターフェース131は、各々、通信チャネルであり、独立して動作するまたは連係して動作することにより、メタデータ・モード、ビデオ・モード、およびメタデータ+ビデオ・モードというような、少なくとも3つの送信モードを得ることができる。メタデータ・モードでは、メタデータのみを送出および/または受信することができ、ビデオまたは画像データは全く含まれない。ビデオ動作モードでは、画像またはビデオ・データのみを送信することができ、メタデータは全く埋め込まれず、添付されず、パッケージ化もされない。メタデータ+ビデオ・モードでは、メタデータおよびビデオ双方を同時に送信することができる。メタデータは、XMLのようないずれのフォーマットでもよく、GPS受信部108を通じて取得したデータ、距離測定レーザ・モジュールのようなその他のモジュールを通じて取得したデータ、あるいは再構成可能スマート・ネットワーク・カメラSoC104が取得または発生したその他のいずれのデータでも収容することができる。帯域幅管理のために、SoC104が発生したメタデータ/記述子を、ワイヤレスで、Bluetoothまたは同様のワイヤレス・プロトコルを用いることによって他のカメラに送り、インテリジェント分散型カメラ・ネットワークを作成することもできる。ワイヤレス接続130およびアンテナ140を用いることによって、カメラ110は物体追跡情報、顔認識情報、またはその他の情報を近隣のカメラに送り、物体または人の効果的な追跡を実行することができる。また、画像およびメタデータは、イーサネット接続131を通じて送ることもできる。しかしながら、カメラ間におけるメタデータの直接送信は、最初にバック・エンド処理動作を経る必要なく、セキュリティ・ネットワークがイベントに反応することができる効率および速度を向上させることができる。
図2Aは、画像処理およびコンテンツ分析ブロック、プロセッサ、相互接続ブロック、および内部メモリを有する、再構成可能スマート・ネットワーク・カメラSoCを示す。図2Aを参照すると、スマート・ネットワーク・カメラの一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、メモリ105、およびイーサネット送受信部106を備えることができる。メモリ105は、更に、DDR SDRAM105aおよびSDRAM105bを備えることができる。再構成可能スマート・ネットワーク・カメラSoC104は、更に、画像処理およびコンテンツ分析ブロック200、相互接続ブロック220、プロセッサ202、ならびに内部メモリ201を備えることができる。画像処理およびコンテンツ分析ブロック200は、更に、メモリ・コントローラ210を備えることができる。メモリ・コントローラ210は、メモリ105に対するインターフェースとして機能することができる。プロセッサ202は、例えば、標準的コア、ソフト・コア、マイクロコントローラ、および/または命令・セットをサポートする状態マシンを用いて実現することができる。プロセッサ202は、ソフトウェア開発キット(SDK)によってプログラム可能とするとよい。プロセッサ202は、ディジタル信号処理(DSP)エンジンを実現するために用いることができる。相互接続ブロック220は、標準バスおよびカスタム・バスを用いる複数(multiple)のバス・アーキテクチャとすることができる。
画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、および/またはコンテンツ分析というような、様々な段階のデータ処理を実行することができる(そして、そのために用いることができる)。イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。画像処理およびコンテンツ分析ブロック200は、適した回路、ロジック、および/またはコードを備えることができ、色処理、画像コンテンツ分析、および圧縮を含むがこれらには限定されない画像処理およびコンテンツ分析を実行するために用いることができる。画像処理およびコンテンツ分析ブロック200のアーキテクチャ、機能、および動作については、本明細書において以下で更に詳しく論ずることとする。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104の内部にある画像処理およびコンテンツ分析ブロック200に転送することができる。一旦画像処理およびコンテンツ分析ブロック200が生画像データを画像センサ100から受けると、画像処理およびコンテンツ分析ブロック200は、色処理、圧縮、およびコンテンツ分析というような、数段階のデータ処理を実行することができる。メモリ・コントローラ210は、内部メモリ201または外部メモリ105と直接インターフェースし、更に処理するために画像をバッファすることができる。相互接続バス220は、再構成可能スマート・ネットワーク・カメラSoC104の内部にある種々のモジュール間でデータを転送することができる。例えば、プロセッサ202は、相互接続バス220を通じて、内部メモリ201または画像処理およびコンテンツ分析ブロック200とインターフェースすることができる。同様に、画像処理およびコンテンツ分析ブロック200は、データをプロセッサ202または内部メモリ201へ/から送る/受けることもできる。再構成可能スマート・ネットワーク・カメラSoC104において一旦画像データを処理し分析したなら、このデータをイーサネット送受信部106を通じてネットワークに送信することができる。
別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、イーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。再構成可能スマート・ネットワーク・カメラSoC104からのデータは、スマート・ネットワーク・カメラ110の内部にある他のいずれのモジュールへ/からでも送る/受けることができる。一実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、GPS受信部108へ/からデータを送出/受信することができる。また、再構成可能スマート・ネットワーク・カメラSoC104は、イーサネット送受信部106を通じてネットワークへ/からデータを送出/受信することもできる。別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はワイヤレス接続、他のいずれのネットワーク通信手段を通じてでも、ネットワークからデータを送出/受信することができる。
図2Bは、本発明の一実施形態による、統合イーサネット送受信部を有する再構成可能スマート・ネットワーク・カメラSoCの上位ブロック図である。図2Bを参照すると、スマート・ネットワーク・カメラ110の一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、メモリ105、および統合イーサネット送受信部106を備えることができる。メモリ105は、更に、DDR SDRAM105aおよびSDRAM105bを備えることができる。再構成可能スマート・ネットワーク・カメラSoC104は、更に、画像処理およびコンテンツ分析ブロック200、相互接続ブロック220、プロセッサ202、ならびに内部メモリ201を備えることができる。画像処理およびコンテンツ分析ブロック200は、更に、メモリ・コントローラ210を備えることができる。メモリ・コントローラ210は、メモリ105に対するインターフェースとして機能することができる。プロセッサ202は、標準的コア、ソフト・コア、マイクロコントローラ、または命令セットをサポートする状態マシンを用いて実現することができる。プロセッサ202は、ソフトウェア開発キット(SDK)によってプログラム可能とするとよい。プロセッサ202は、ディジタル信号処理(DSP)エンジンを実現するために用いることができる。相互接続ブロック220は、標準バスおよびカスタム・バスを用いる複数(multiple)のバス・アーキテクチャとすることができる。
画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、およびコンテンツ分析を含むがこれらには限定されない、様々な段階のデータ処理を実行するために用いることができる。統合イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。画像処理およびコンテンツ分析ブロック200は、適した回路、ロジック、および/またはコードを備えることができ、色処理、画像コンテンツ分析、および圧縮を含むがこれらには限定されない画像処理およびコンテンツ分析を実行するために用いることができる。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104の内部にある画像処理およびコンテンツ分析ブロック200に転送することができる。一旦画像処理およびコンテンツ分析ブロック200が生画像データを画像センサ100から受けると、画像処理およびコンテンツ分析ブロック200は、例えば、色処理、圧縮、および/またはコンテンツ分析というような、数段階のデータ処理を実行することができる。メモリ・コントローラ210は、内部メモリ201または外部メモリ105と直接インターフェースし、更に処理するために画像をバッファすることができる。相互接続バス220は、再構成可能スマート・ネットワーク・カメラSoC104の内部にある種々のモジュール間でデータを転送することができる。例えば、プロセッサ202は、相互接続バス220を通じて、内部メモリ201、統合イーサネット送受信部106、または画像処理およびコンテンツ分析ブロック200とインターフェースすることができる。同様に、画像処理およびコンテンツ分析ブロック200は、データをプロセッサ202、統合イーサネット送受信部106、または内部メモリ201へ/から送る/受けることもできる。再構成可能スマート・ネットワーク・カメラSoC104において一旦データを処理し分析したなら、このデータを統合イーサネット送受信部106を通じてネットワークに送信することができる。
別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。再構成可能スマート・ネットワーク・カメラSoC104からのデータは、スマート・ネットワーク・カメラ110の内部にある他のいずれのモジュールへ/からでも送る/受けることができる。一実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、GPS受信部108へ/からデータを送出/受信することができる。また、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じてネットワークへ/からデータを送出/受信することもできる。別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はワイヤレス接続、他のいずれのネットワーク通信手段を通じてでも、ネットワークからデータを送出/受信することができる。本発明の更に別の実施形態では、イーサネット送受信部106は再構成可能スマート・ネットワーク・カメラSoC104の外部にあってもよい。
図2Cは、本発明の一実施形態による、統合イーサネット送受信部およびメモリ・コントローラ・ブロックを有する、再構成可能なスマート・ネットワーク・カメラSoCの上位ブロック図を示す。図2Cを参照すると、スマート・ネットワーク・カメラ110の一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、センサ・アナログ電源DC−DC変換器103、およびメモリ105を備えることができる。メモリ105は、更に、DDR SDRAM105aおよびSDRAM105bを備えることができる。再構成可能スマート・ネットワーク・カメラSoC104は、更に、画像処理およびコンテンツ分析ブロック200、相互接続ブロック220、メモリ・コントローラ210、プロセッサ202、イーサネット送受信部、ならびに内部メモリ201を備えることができる。メモリ・コントローラ210は、メモリ105に対するインターフェースとして機能することができる。別の実施形態では、メモリ・コントローラ210を画像処理およびコンテンツ分析ブロック200と統合することもできる。プロセッサ202は、標準的コア、ソフト・コア、マイクロコントローラ、または命令セットをサポートする状態マシンを用いて実現することができる。プロセッサ202は、ソフトウェア開発キット(SDK)によってプログラム可能とするとよい。プロセッサ202は、ディジタル信号処理(DSP)エンジンを実現するために用いることができる。相互接続ブロック220は、標準バスおよびカスタム・バスを用いる複数(multiple)のバス・アーキテクチャとすることができる。
画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、およびコンテンツ分析を含むがこれらには限定されない、様々な段階のデータ処理を実行することができる(そして実行するために用いることができる)。統合イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。画像処理およびコンテンツ分析ブロック200は、適した回路、ロジック、および/またはコードを備えることができ、色処理、画像コンテンツ分析、および圧縮を含むがこれらには限定されない画像処理およびコンテンツ分析を実行するために用いることができる。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104の内部にある画像処理およびコンテンツ分析ブロック200に転送することができる。一旦画像処理およびコンテンツ分析ブロック200が生画像データを画像センサ100から受けると、画像処理およびコンテンツ分析ブロック200は、例えば、色処理、圧縮、および/またはコンテンツ分析というような、数段階のデータ処理を実行することができる。メモリ・コントローラ210は、相互接続バス220を通じて内部メモリ201と、または外部メモリ105とインターフェースし、更に処理するために画像をバッファすることができる。相互接続バス220は、再構成可能スマート・ネットワーク・カメラSoC104の内部にある種々のモジュール間でデータを転送することができる。例えば、プロセッサ202は、相互接続バス220を通じて、画像処理およびコンテンツ分析モジュール200、メモリ・コントローラ210、統合イーサネット送受信部106、または内部メモリとインターフェースすることができる。同様に、画像処理およびコンテンツ分析ブロック200は、メモリ・コントローラ210、プロセッサ202、統合イーサネット送受信部106、または内部メモリ201へ/からデータを送る/受けることもできる。再構成可能スマート・ネットワーク・カメラSoC104において一旦データを処理し分析したなら、このデータを統合イーサネット送受信部106を通じてネットワークに送信することができる。
本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。再構成可能スマート・ネットワーク・カメラSoC104からのデータは、スマート・ネットワーク・カメラ110の内部にある他のいずれのモジュールへ/からでも送る/受けることができる。本発明の一実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、GPS受信部108へ/からデータを送出/受信することができる。また、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じてネットワークへ/からデータを送出/受信することもできる。本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はワイヤレス接続、他のいずれのネットワーク通信手段を通じてでも、ネットワークからデータを送出/受信することができる。本発明の更に別の実施形態では、イーサネット送受信部106は再構成可能スマート・ネットワーク・カメラSoC104の外部にあってもよい。
図2Dは、追加の統合メモリを有する再構成可能なスマート・ネットワーク・カメラSoCの上位ブロック図を示す。図2Dを参照すると、スマート・ネットワーク・カメラ110の一例は、チップ上再構成可能スマート・ネットワーク・カメラ・システム(SoC)104、画像センサ100、クロック発生器101、J2I/O102、およびセンサ・アナログ電源DC−DC変換器103を備えることができる。再構成可能スマート・ネットワーク・カメラSoC104は、更に、画像処理およびコンテンツ分析ブロック200、相互接続ブロック220、プロセッサ202、イーサネット送受信部106、ならびに、複数の内部メモリ・モジュール、例えば、201aおよび201bを備えることができる。これらの内部メモリ・モジュール201aおよび201bは、画像処理のために画像をバッファする外部メモリを必要としないようにすることができる、再構成可能スマート・ネットワーク・カメラSoC104の完全な統合を例示する。
プロセッサ202は、標準的コア、ソフト・コア、マイクロコントローラ、および/または命令セットをサポートする状態マシンを用いて実現することができる。プロセッサ202は、ソフトウェア開発キット(SDK)によってプログラム可能とするとよい。プロセッサ202は、ディジタル信号処理(DSP)エンジンを実現するために用いることができる。相互接続ブロック220は、標準バスおよびカスタム・バスを用いる複数のバス・アーキテクチャとすることができる。画像センサ100は、CCD,CMOS、または光学画像を電気信号に変換することができるその他の同様のデバイスであればいずれでもよい。クロック発生器101は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールの動作を同期させることができる回路またはデバイスであればいずれでも備えることができる。J2I/O102は、適した回路、ロジック、および/またはコードを備えることができ、再構成可能スマート・ネットワーク・カメラSoC104への入力/出力として用いることができる。J2I/O102は、いずれの種類の入力または出力でも、再構成可能スマート・ネットワーク・カメラSoC104に、または再構成可能スマート・ネットワーク・カメラSoC104から搬送することができる。センサ・アナログ電源DC−DC変換器103は、適した回路、ロジック、および/またはコードを備えることができ、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに対する電圧源として機能することができる。再構成可能スマート・ネットワーク・カメラSoC104は、適した回路、ロジック、および/またはコードを備えることができ、色処理、圧縮、および/またはコンテンツ分析というような、様々な段階のデータ処理を実行するために用いることができる。統合イーサネット送受信部106は、ネットワークに接続されている他のデバイスにデータを送信し、これらのデバイスからデータを受信するインターフェースを設ける。データを送信および受信する他のインターフェースを用いてもよい。画像処理およびコンテンツ分析ブロック200は、適した回路、ロジック、および/またはコードを備えることができ、色処理、画像コンテンツ分析、および圧縮を含むがこれらには限定されない画像処理およびコンテンツ分析を実行するために用いることができる。
動作において、画像センサ100は画像を取り込むことができ、この画像を再構成可能スマート・ネットワーク・カメラSoC104の内部にある画像処理およびコンテンツ分析ブロック200に転送することができる。一旦画像処理およびコンテンツ分析ブロック200が生画像データを画像センサ100から受けると、画像処理およびコンテンツ分析ブロック200は、色処理、圧縮、および/またはコンテンツ分析というような、数段階のデータ処理を実行することができる。相互接続バス220は、再構成可能スマート・ネットワーク・カメラSoC104の内部にある種々のモジュール間でデータを転送することができる。例えば、プロセッサ202は、相互接続バス220を通じて、画像処理およびコンテンツ分析モジュール200、統合イーサネット送受信部106、あるいは201aおよび/または201bのような内部メモリ・モジュールのいずれとでもインターフェースすることができる。同様に、画像処理およびコンテンツ分析ブロック200は、データをプロセッサ202、統合イーサネット送受信部106、あるいは201aおよび/または201bのような内部メモリ・モジュールのいずれへ/からでも送る/受けることもできる。再構成可能スマート・ネットワーク・カメラSoC104において一旦データを処理し分析したなら、このデータを統合イーサネット送受信部106を通じてネットワークに送信することができる。別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じて他のデータ源からデータを受信するためにも用いることができる。
クロック発生器101は、再構成可能スマート・ネットワーク・カメラSoC104を、スマート・ネットワーク・カメラ110の内部にある種々のその他のモジュールと同期させるために用いることができる。J2I/O102は、再構成可能スマート・ネットワーク・カメラSoC104へのあらゆる種類の入力を搬送するため、または再構成可能スマート・ネットワーク・カメラSoC104からのあらゆる種類の出力を搬送するために用いることができる。センサ・アナログ電源DC−DC変換器103は、スマート・ネットワーク・カメラ110の内部にある種々のモジュールに電圧を供給するために用いることができる。再構成可能スマート・ネットワーク・カメラSoC104からのデータは、スマート・ネットワーク・カメラ110の内部にある他のいずれのモジュールへ/からでも送る/受けることができる。本発明の一実施形態では、再構成可能スマート・ネットワーク・カメラSoC104は、GPS受信部108へ/からデータを送出/受信することができる。また、再構成可能スマート・ネットワーク・カメラSoC104は、統合イーサネット送受信部106を通じてネットワークへ/からデータを送出/受信することもできる。本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラSoC104はワイヤレス接続、他のいずれのネットワーク通信手段を通じてでも、ネットワークからデータを送出/受信することができる。本発明の更に別の実施形態では、イーサネット送受信部106は再構成可能スマート・ネットワーク・カメラSoC104の外部にあってもよい。
図3Aは、本発明の一実施形態による、圧縮エンジンを用いた画像処理およびコンテンツ分析ブロックの機能図を示す。図3Aを参照すると、画像処理およびコンテンツ分析ブロック200の一例は、ユニバーサル・センサ・インターフェース320、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、統計モジュール313、統合DDR SDRAMコントローラ300を有するチャネル/バッファ・モジュール、PIO311、DMA312、および圧縮エンジン330を備えることができる。この画像処理およびコンテンツ分析ブロック200は、概念的に、3つの主要サブシステム、即ち、DDR SDRAMメモリ・コントローラ300、画像処理および圧縮チェーン301、302、303、304、308、309、310、313、および330、ならびにシステム・インターフェース・サブシステム320、300、311、312に区分することができる。
画像処理および圧縮チェーン・サブシステム301、302、303、304、308、309、310、313、および330は、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、統計モジュール313、ならびに圧縮エンジン330を備えることができる。システム・インターフェース・サブシステムは、ユニバーサル・センサ・インターフェース320、DDR SDRAMコントローラ300、PIO311、およびDMA312を備えることができる。
ユニバーサル・センサ・インターフェース320は、適した回路、ロジック、および/またはコードを備えることができ、画像センサ100に対するインターフェースとして用いることができる。画像センサ100は、CCD、CMOS、または光学画像を電気信号に変換することができる同様のデバイスとすることができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ(Fixed Pattern Noise)、感度、およびガンマ補正というような画像処理を実行する。FPN、感度、およびガンマ補正モジュール301のアーキテクチャ、機能、および動作については、以下で更に詳しく論ずる。バイエル/YCbCr変換モジュール302は、データをバイエル・フォーマットからYCbCrフォーマットに変換する。バイエル/YCbCr変換モジュールのアーキテクチャ、機能、および動作については、以下で更に詳しく論ずる。ビデオ・モーション検出モジュール303は、入来する画像内において動いている物体を検出するための画像処理を実行する。また、ビデオ・モーション検出モジュール303は、画像の背景を検出するための画像処理も実行することができる。ビデオ・モーション検出器303のアーキテクチャ、機能、および動作については以下で更に詳しく論ずる。
ダイナミック・レンジ圧縮モジュール304は、入来するYおよびCbCr信号に対して種々の動作を実行して、圧縮YおよびCrCbを送り出す。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したデータに基づいて、グラフのレンダリングおよび/または作成を行う。ヒストグラム・モジュール309は、画像が一旦FPN、感度、およびガンマ補正モジュール301によって補正および/または処理されたなら、これらの画像のヒストグラムを収容することができる。これらのヒストグラムは、画像内部における照明および露出のレベルに関する情報を提供することができる。制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールの動作を制御し、そのステータス(status)を維持することができる。統計モジュール313は、画像処理およびコンテンツ分析ブロック200によって処理されている画像コンテンツに関する種々の記述子またはメタデータを発生するために必要なデータを収容することができる。圧縮エンジン330は、画像圧縮を実行し、圧縮した画像データを出力することができる。例えば、本発明の一実施形態では、画像圧縮エンジン330はJPEGデータを供給することができる。本発明の別の実施形態では、画像圧縮エンジン330は、MPEG−4データ、または他のいずれの形態の圧縮画像データでも出力することができる。統合DDR SDRAM制御モジュール300を有するチャネル/バッファは、画像処理およびコンテンツ分析ブロック200内にデータをバッファするために用いることができる。また、統合DDR SDRAM制御モジュール300を有するチャネル/バッファは、DDR SDRAMへ/から送出/受信したデータをバッファするために用いることもできる。PIOモジュール311は、画像内におけるヒストグラムを表示することができるプログラマブルI/Oモジュールである。DMAモジュール312は、種々のモジュールから入力を受け入れることができる。図に示すように、DMAモジュール312は統計モジュール313および/または圧縮エンジン330からの入力データを受け入れることができる。DMAモジュールは、次いで、データをPIOモジュール311に転送することができ、またはデータを他のSoCコンポーネント、例えば、イーサネット送受信部106に/から送出/受信することができる。
動作において、ユニバーサル・センサ・インターフェース320は画像を取得することができ、次いでその画像をFPN、感度、およびガンマ補正モジュール301に転送することができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、およびガンマ補正というような、画像色補正および画像処理を実行することができる。固定パターン・ノイズ、感度、およびその他のパラメータを計算するために、FPN、感度、およびガンマ補正モジュール301は、ユニバーサル・センサ・インターフェース320から受信した画像データを、チャネル/バッファ・モジュール300に転送する。チャネル/バッファ・モジュール300は、データを直接バイエル/YCbCr変換器302およびビデオ・モーション検出器303に転送することができる。チャネル/バッファ・モジュール300は、データをバイエル・フォーマットからYCbCrフォーマットに変換するというような更なる処理のために、画像をバイエル/YCbCr変換モジュール302に転送することができる。また、チャネル/バッファ・モジュール300は、画像における種々の物体を当該画像の背景から隔離するための画像処理の目的のために、画像をビデオ・モーション検出器に転送することもできる。ビデオ・モーション検出器303は、他の入力モジュールからデータを受けることもできる。この実施形態において示すように、ビデオ・モーション検出モジュールは、バイエル/YCbCr変換モジュール302および/またはダイナミック・レンジ圧縮モジュール304から入力を受けることができる。
次いで、ビデオ・モーション検出モジュール303は、画像を圧縮エンジン330に転送する。補正された画像は、FPN、感度、およびガンマ補正モジュールからヒストグラム309に転送される。テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、ビデオ・モーション検出器303と並列に動作することができる。ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、各々、画像処理およびコンテンツ分析を種々の観点で実行する。例えば、集合的に、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、特徴抽出を実行する。特徴抽出は、入来するビデオ・データを分析し、物体の分析を実行してこれらの物体の種々の特徴を抽出することを含むことができ、物体の特徴には、限定ではなく、当該物体の形状、色、および/またはモーション・ベクトルが含まれる。ビデオ・メタデータは、タイムスタンプ、物体検出、物体サイズ、物体の優勢色、物体の動きの記述、物体クラスタの記述、皮膚検出、および/または顔検出を備えることができる。テーブル308ならびに制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロックの動作のために用いることができる。ヒストグラム309および統計313は、ビデオ・コンテンツから記述子またはメタデータ情報を発生するために用いることができる。更に、ビデオ・モーション検出器303が発生した情報は、記述子および/またはメタデータを発生するために用いることもできる。
記述子は、動き検出、物体検出、物体追跡、色情報、クラスタ情報、背景情報、皮膚検出、および/または顔検出を含むことができる。発生した記述子またはメタデータは、JPEG圧縮ビデオに埋め込むまたは添付するために、プロセッサ202に送ることができる。また、プロセッサ202は記述子を、それらの各圧縮ビデオとは別個に、ネットワークに送ることもできる。次いで、データ・マイニング(data mining)アプリケーションのようなアプリケーションを容易にするために用いることができる。FPN、感度、およびガンマ補正モジュール301、バイエル/YCbCr変換モジュール302、ならびにダイナミック・レンジ圧縮モジュール304は、各々、色処理を種々の観点で実行する。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したヒストグラム・データに基づいて、グラフのレンダリング/作成を行う。ヒストグラム・モジュール309は、ヒストグラム・データをPIOモジュール311に転送することができ、PIOモジュール311は、画像内にまたは画像に重ね合わせて、ヒストグラムを表示することができる。ダイナミック・レンジ圧縮器304は、画像圧縮を実行し、そうしなければダイナミック・レンジを扱うことができないデバイスによって、ダイナミック・レンジ全体が取り込まれることを確保することができる。
制御およびステータス・レジスタ・モジュール310は、種々のレジスタを制御し、これらのレジスタのステータスを表示するためにも用いることができる。例えば、制御およびステータス・レジスタ・モジュール310は、ユニバーサル・センサ・インターフェース320の内部にあるレジスタのステータスを制御することおよび表示することができる。また、制御レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールをイネーブルまたはディスエーブルするために用いることもできる。例えば、制御およびステータス・レジスタ・モジュール310は、ダイナミック・レンジ圧縮器304をイネーブルまたはディスエーブルすることができる。統計モジュール313は、DMA312と直接インターフェースすることができる。また、DMA312は圧縮データを圧縮エンジン330から受けることができ、次いでこのデータを統計モジュール313および/または圧縮エンジン330からPIO311または再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のコンポーネントに転送することができる。また、DMA312は、再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のモジュールからデータを受けることもできる。カメラ・プロセッサの内部にあるDMAコントローラ312は、2つの外部チャネルを備えることができ、これらは、画像処理およびコンテンツ分析によって、データを直接SDRAMメモリに転送するために用いることができる。例えば、チャネル0はJPEG圧縮画像に用いることができ、チャネル1は、統計データの転送に用いることができる。
図3Bは、本発明の一実施形態による、JPEG圧縮エンジンを用いた画像処理およびコンテンツ分析ブロックの機能図を示す。図3Bを参照すると、画像処理およびコンテンツ分析ブロック200の一例は、ユニバーサル・センサ・インターフェース320、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、統計モジュール313、統合DDR SDRAMコントローラ300を有するチャネル/バッファ・モジュール、PIO311、DMA312、およびJPEG圧縮エンジン330を備えることができる。JPEG圧縮エンジン330は、更に、DC減算モジュール305、離散余弦変換(DCT)モジュール306、加算器307、量子化器RLE314、ハフマン・エンコーダ315、およびビット・スタッファ(bit stuffer)316を備えることができる。画像処理およびコンテンツ分析ブロック200は、概念的に、3つの主要サブシステム、即ち、DDR SDRAMメモリ・コントローラ300、画像処理および圧縮チェーン301、302、303、304、308、309、310、313、および330、ならびにシステム・インターフェース・サブシステム320、300、311、312に区分することができる。システム・インターフェース・サブシステムは、ユニバーサル・センサ・インターフェース320、DDR SDRAMコントローラ300、PIO311、およびDMA312を備えることができる。画像処理および圧縮チェーン・サブシステム301、302、303、304、308、309、310、313、および330は、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、統計モジュール313、ならびにJPEG圧縮エンジン330を備えることができる。JPEG圧縮エンジン330は、更に、DC減算モジュール305、DCTモジュール306、加算器307、量子化器RLE314、ハフマン・エンコーダ315、およびビット・スタッファ316を備えることができる。
ユニバーサル・センサ・インターフェース320は、適した回路、ロジック、および/またはコードを備えることができ、画像センサ100に対するインターフェースとして用いることができる。画像センサ100は、CCD、CMOS、または光学画像を電気信号に変換することができる同様のデバイスとすることができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、および/またはガンマ補正というような画像処理を実行する。バイエル/YCbCr変換モジュール302は、データをバイエル・フォーマットからYCbCrフォーマットに変換する。ビデオ・モーション検出モジュール303は、入来する画像内において動いている物体を検出するための画像処理を実行する。また、ビデオ・モーション検出モジュール303は、画像の背景を検出するための画像処理も実行することができる。ダイナミック・レンジ圧縮モジュール304は、入来するYおよびCbCr信号に対して種々の動作を実行して、圧縮YおよびCrCbを送り出す。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したデータに基づいて、グラフのレンダリングおよび/または作成を行う。ヒストグラム・モジュール309は、画像が一旦FPN、感度、およびガンマ補正モジュール301によって補正および/または処理されたなら、これらの画像のヒストグラムを収容することができる。これらのヒストグラムは、画像内部における照明および露出のレベルに関する情報を提供することができる。制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールの動作を制御し、そのステータスを維持することができる。
統計モジュール313は、画像処理およびコンテンツ分析ブロック200によって処理されている画像コンテンツに関する種々の記述子またはメタデータを発生するために必要なデータを収容することができる。圧縮エンジン330は、画像圧縮を実行し、圧縮した画像データを出力することができる。例えば、本発明の一実施形態では、画像圧縮エンジン330はJPEGデータを供給することができる。本発明の別の実施形態では、画像圧縮エンジン330は、MPEG−4データ、または他のいずれの形態の圧縮画像データでも出力することができる。統合DDR SDRAM制御モジュール300を有するチャネル/バッファは、画像処理およびコンテンツ分析ブロック200内にデータをバッファするために用いることができる。また、集積DDR SDRAM制御モジュール300を有するチャネル/バッファは、DDR SDRAMへ/から送出/受信したデータをバッファするために用いることもできる。PIOモジュール311は、画像内におけるヒストグラムを表示することができるプログラマブルI/Oモジュールである。DMAモジュール312は、種々のモジュールから入力を受け入れることができる。図に示すように、DMAモジュール312は統計モジュール313および/または圧縮エンジン330からの入力データを受け入れることができる。DMAモジュールは、次いで、データをPIOモジュール311に転送することができ、またはデータを他のSoCコンポーネント、例えば、イーサネット送受信部106に/から送出/受信することができる。
動作において、ユニバーサル・センサ・インターフェース320は画像を取得することができ、次いでその画像をFPN、感度、およびガンマ補正モジュール301に転送することができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、およびガンマ補正というような、画像色補正および画像処理を実行することができる。固定パターン・ノイズ、感度、およびその他のパラメータを計算するために、FPN、感度、およびガンマ補正モジュール301は、ユニバーサル・センサ・インターフェース320から受信した画像データを、チャネル/バッファ・モジュール300に転送する。チャネル/バッファ・モジュール300は、データを直接バイエル/YCbCr変換器302およびビデオ・モーション検出器303に転送することができる。チャネル/バッファ・モジュール300は、データをバイエル・フォーマットからYCbCrフォーマットに変換するというような更なる処理のために、画像をバイエル/YCbCr変換モジュール302に転送することができる。また、チャネル/バッファ・モジュール300は、画像における種々の物体を当該画像の背景から隔離するための画像処理の目的のために、画像をビデオ・モーション検出器303に転送することもできる。ビデオ・モーション検出器303は、他の入力モジュールからデータを受けることもできる。これらの図において示すように、ビデオ・モーション検出モジュールは、バイエル/YCbCr変換モジュール302および/またはダイナミック・レンジ圧縮モジュール304から入力を受けることができる。次いで、ビデオ・モーション検出モジュール303は、画像を圧縮エンジン330に転送する。補正された画像は、FPN、感度、およびガンマ補正モジュールからヒストグラム309に転送される。
テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、ビデオ・モーション検出器303と並列に動作することができる。ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、各々、画像処理およびコンテンツ分析を種々の観点で実行する。例えば、集合的に、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、特徴抽出を実行する。特徴抽出は、入来するビデオ・データを分析し、物体の分析を実行してこれらの物体の種々の特徴を抽出することを含むことができ、物体の特徴には、限定ではなく、当該物体の形状、色、および/またはモーション・ベクトルが含まれる。これらのモジュールのアーキテクチャ、機能、および動作については、以下で更に詳しく論ずる。テーブル308ならびに制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロックの動作のために用いることができる。ヒストグラム309および統計313は、ビデオ・コンテンツから記述子またはメタデータ情報を発生するために用いることができる。更に、ビデオ・モーション検出器303が発生した情報は、記述子および/またはメタデータを発生するために用いることもできる。
記述子は、動き検出、物体検出、物体追跡、色情報、クラスタ情報、背景情報、皮膚検出、および/または顔検出を含むことができる。発生した記述子またはメタデータは、JPEG圧縮ビデオに埋め込むまたは添付するために、プロセッサ202に送ることができる。また、プロセッサ202は記述子を、それらの各圧縮ビデオとは別個に、ネットワークに送ることもできる。次いで、データ・マイニング・アプリケーションのようなアプリケーションを容易にするために用いることができる。
FPN、感度、およびガンマ補正モジュール301、バイエル/YCbCr変換モジュール302、ならびにダイナミック・レンジ圧縮モジュール304は、各々、色処理を種々の観点で実行する。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したヒストグラム・データに基づいて、グラフのレンダリング/作成を行うことができる。ヒストグラム・モジュール309は、ヒストグラム・データをPIOモジュール311に転送することができ、PIOモジュール311は、画像内にまたは画像に重ね合わせて、ヒストグラムを表示することができる。ダイナミック・レンジ圧縮器304は、画像圧縮を実行し、そうしなければダイナミック・レンジを扱うことができないデバイスによって、ダイナミック・レンジ全体が取り込まれることを確保することができる。制御およびステータス・レジスタ・モジュール310は、種々のレジスタを制御し、これらのレジスタのステータスを表示するためにも用いることができる。例えば、制御およびステータス・レジスタ・モジュール310は、ユニバーサル・センサ・インターフェース320の内部にあるレジスタのステータスを制御することおよび表示することができる。また、制御レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールをイネーブルまたはディスエーブルするために用いることもできる。例えば、制御およびステータス・レジスタ・モジュール310は、ダイナミック・レンジ圧縮器304をイネーブルまたはディスエーブルすることができる。統計モジュール313は、DMA312と直接インターフェースすることができ、更に圧縮データを圧縮エンジン330から受けることができる。次いで、DMA312は、このデータを統計モジュール313および/または圧縮エンジン330からPIO311または再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のコンポーネントに転送することができる。また、DMA312は、再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のモジュールからデータを受けることもできる。カメラ・プロセッサの内部にあるDMAコントローラ312は、2つの外部チャネルを備えることができ、これらは、画像処理およびコンテンツ分析によって、データを直接SDRAMメモリに転送するために用いることができる。例えば、チャネル0はJPEG圧縮画像に用いることができ、チャネル1は、統計データの転送に用いることができる。
図3Cは、本発明の一実施形態による、統合GPSインターフェースを用いた画像処理およびコンテンツ分析ブロックを示す。図3Cを参照すると、画像処理およびコンテンツ分析ブロック200の一例は、ユニバーサル・センサ・インターフェース320、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、統計モジュール313、統合DDR SDRAMコントローラ300を有するチャネル/バッファ・モジュール、PIO311、DMA312、JPEG圧縮エンジン330、およびGPSインターフェース317を備えることができる。JPEG圧縮エンジン330は、更に、DC減算モジュール305、DCTモジュール306、加算器307、量子化器RLE314、ハフマン・エンコーダ315、およびビット・スタッファ316を備えることができる。
画像処理およびコンテンツ分析ブロック200は、概念的に、3つの主要サブシステム、即ち、DDR SDRAMメモリ・コントローラ300、画像処理および圧縮チェーン301、302、303、304、308、309、310、313、および330、ならびにシステム・インターフェース・サブシステム320、300、311、312に区分することができる。システム・インターフェース・サブシステムは、ユニバーサル・センサ・インターフェース320、DDR SDRAMコントローラ300、PIO311、およびDMA312を備えることができる。画像処理および圧縮チェーン・サブシステム301、302、303、304、308、309、310、313、および330は、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、統計モジュール313、ならびにJPEG圧縮エンジン330を備えることができる。JPEG圧縮エンジン330は、更に、DC減算モジュール305、DCTモジュール306、加算器307、量子化器RLE314、ハフマン・エンコーダ315、およびビット・スタッファ316を備えることができる。
ユニバーサル・センサ・インターフェース320は、適した回路、ロジック、および/またはコードを備えることができ、画像センサ100に対するインターフェースとして用いることができる。画像センサ100は、CCD、CMOS、または光学画像を電気信号に変換することができる同様のデバイスとすることができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、および/またはガンマ補正というような画像処理を実行する。バイエル/YCbCr変換モジュール302は、データをバイエル・フォーマットからYCbCrフォーマットに変換する。ビデオ・モーション検出モジュール303は、入来する画像内において動いている物体を検出するための画像処理を実行する。また、ビデオ・モーション検出モジュール303は、画像の背景を検出するための画像処理も実行することができる。ダイナミック・レンジ圧縮モジュール304は、入来するYおよびCbCr信号に対して種々の動作を実行して、圧縮YおよびCrCbを送り出す。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したデータに基づいて、グラフのレンダリングおよび/または作成を行う。ヒストグラム・モジュール309は、画像が一旦FPN、感度、およびガンマ補正モジュール301によって補正および/または処理されたなら、これらの画像のヒストグラムを収容することができる。これらのヒストグラムは、画像内部における照明および露出のレベルに関する情報を提供することができる。制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールの動作を制御し、そのステータスを維持することができる。
統計モジュール313は、画像処理およびコンテンツ分析ブロック200によって処理されている画像コンテンツに関する種々の記述子またはメタデータを発生するために必要なデータを収容することができる。圧縮エンジン330は、画像圧縮を実行し、圧縮した画像データを出力することができる。例えば、本発明の一実施形態では、画像圧縮エンジン330はJPEGデータを供給することができる。本発明の別の実施形態では、画像圧縮エンジン330は、MPEG−4データ、または他のいずれの形態の圧縮画像データでも出力することができる。統合DDR SDRAM制御モジュール300を有するチャネル/バッファは、画像処理およびコンテンツ分析ブロック200内にデータをバッファするために用いることができる。また、統合DDR SDRAM制御モジュール300を有するチャネル/バッファは、DDR SDRAMへ/から送出/受信したデータをバッファするために用いることもできる。PIOモジュール311は、画像内におけるヒストグラムを表示することができるプログラマブルI/Oモジュールである。DMAモジュール312は、種々のモジュールから入力を受け入れることができる。図に示すように、DMAモジュール312は統計モジュール313および/または圧縮エンジン330からの入力データを受け入れることができる。DMAモジュールは、次いで、データをPIOモジュール311に転送することができ、またはデータを他のSoCコンポーネント、例えば、イーサネット送受信部106に/から送出/受信することができる。GPSインターフェース317は、共通バスまたは画像処理およびコンテンツ分析ブロック200の内部にある他のモジュールに接続し、位置情報を送ることができる。位置情報は、記述子またはメタデータとして用いることができる。図に示すように、このGPSインターフェースは、共通バスに接続することができ、テーブル・モジュール308、制御およびステータス・レジスタ・モジュール310、PIO310、ならびにチャネル/バッファ・モジュール300と直接インターフェースすることができる。
動作において、ユニバーサル・センサ・インターフェース320は画像を取得することができ、次いでその画像をFPN、感度、およびガンマ補正モジュール301に転送することができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、および/またはガンマ補正というような、画像色補正および画像処理を実行することができる。固定パターン・ノイズ、感度、およびその他のパラメータを計算するために、FPN、感度、およびガンマ補正モジュール301は、ユニバーサル・センサ・インターフェース320から受信した画像データを、チャネル/バッファ・モジュール300に転送する。チャネル/バッファ・モジュール300は、データを直接バイエル/YCbCr変換器302およびビデオ・モーション検出器303に転送することができる。チャネル/バッファ・モジュール300は、データをバイエル・フォーマットからYCbCrフォーマットに変換するというような更なる処理のために、画像をバイエル/YCbCr変換モジュール302に転送することができる。また、チャネル/バッファ・モジュール300は、画像における種々の物体を当該画像の背景から隔離するための画像処理の目的のために、画像をビデオ・モーション検出器303に転送することもできる。ビデオ・モーション検出器303は、他の入力モジュールからデータを受けることもできる。これらの図において示すように、ビデオ・モーション検出モジュールは、バイエル/YCbCr変換モジュール302および/またはダイナミック・レンジ圧縮モジュール304から入力を受けることができる。次いで、ビデオ・モーション検出モジュール303は、画像を圧縮エンジン330に転送する。補正された画像は、FPN、感度、およびガンマ補正モジュールからヒストグラム309に転送される。テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、ビデオ・モーション検出器303と並列に動作することができる。
ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、各々、画像処理およびコンテンツ分析を種々の観点で実行する。例えば、集合的に、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、特徴抽出を実行する。特徴抽出は、例えば、入来するビデオ・データを分析し、物体の分析を実行してこれらの物体の種々の特徴を抽出することを含むことができ、物体の特徴には、限定ではなく、当該物体の形状、色、および/またはモーション・ベクトルが含まれる。テーブル308ならびに制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロックの動作のために用いることができる。ヒストグラム309および統計313は、ビデオ・コンテンツから記述子またはメタデータ情報を発生するために用いることができる。更に、ビデオ・モーション検出器303が発生した情報は、記述子および/メタデータを発生するために用いることもできる。記述子は、動き検出、物体検出、物体追跡、色情報、クラスタ情報、背景情報、皮膚検出、および/または顔検出を含むことができる。発生した記述子またはメタデータは、JPEG圧縮ビデオに埋め込むまたは添付するために、プロセッサ202に送ることができる。また、プロセッサ202は記述子を、それらの各圧縮ビデオとは別個に、ネットワークに送ることもできる。次いで、データ・マイニング・アプリケーションのようなアプリケーションを容易にするために用いることができる。
FPN、感度、およびガンマ補正モジュール301、バイエル/YCbCr変換モジュール302、ならびにダイナミック・レンジ圧縮モジュール304は、各々、色処理を種々の観点でを実行する。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したヒストグラム・データに基づいて、グラフのレンダリング/作成を行うことができる。ヒストグラム・モジュール309は、ヒストグラム・データをPIOモジュール311に転送することができ、PIOモジュール311は、画像内にまたは画像に重ね合わせて、ヒストグラムを表示することができる。ダイナミック・レンジ圧縮器304は、画像圧縮を実行し、そうしなければダイナミック・レンジを扱うことができないデバイスによって、ダイナミック・レンジ全体が取り込まれることを確保することができる。制御およびステータス・レジスタ・モジュール310は、種々のレジスタを制御し、これらのレジスタのステータスを表示するためにも用いることができる。例えば、制御およびステータス・レジスタ・モジュール310は、ユニバーサル・センサ・インターフェース320の内部にあるレジスタのステータスを制御することおよび表示することができる。また、制御レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールをイネーブルまたはディスエーブルするために用いることもできる。例えば、制御およびステータス・レジスタ・モジュール310は、ダイナミック・レンジ圧縮器304をイネーブルまたはディスエーブルすることができる。統計モジュール313は、DMA312と直接インターフェースすることができる。また、DMA312は、圧縮データを圧縮エンジン330から受けることができる。次いで、DMA312は、このデータを統計モジュール313および/または圧縮エンジン330からPIO311に、または再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のコンポーネントに転送することができる。また、DMA312は、再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のモジュールからデータを受けることもできる。カメラ・プロセッサの内部にあるDMAコントローラ312は、2つの外部チャネルを備えることができ、これらは、画像処理およびコンテンツ分析によって、データを直接SDRAMメモリに転送するために用いることができる。チャネル0はJPEG圧縮画像に用いることができ、チャネル1は、統計データの転送に用いることができる。
図3Cに示すように、GPSインターフェース317は、テーブル・モジュール308、制御およびステータス・レジスタ・モジュール310、PIO310、ならびにチャネル/バッファ・モジュール300と直接インターフェースすることができる。GPSインターフェース317は、位置情報を送ることができる。位置情報は、記述子またはメタデータとして用いることができる。例えば、GPSインターフェース317からの情報を制御およびステータス・レジスタ310に転送することができる。制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のレジスタを制御し、そのステータスを維持することができる。GPSインターフェース317からの情報は、テーブル・モジュール308に転送することができる。テーブル・モジュール308は、データ間の相互参照を維持することができる。例えば、テーブル・モジュール308は、画像と対応する地理的座標との間の相互参照を維持することができる。
図3Dは、本発明の一実施形態による、1つのDMAを用いた画像処理およびコンテンツ分析ブロックを示す。図3Dを参照すると、画像処理およびコンテンツ分析ブロック200の一例は、ユニバーサル・センサ・インターフェース320、FPN、感度およびガンマ補正モジュール301、バイエル/YCbCr変換器302、ダイナミック・レンジ圧縮器304、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、統計モジュール313、統合DMAを有するチャネル/バッファ・モジュール340、および圧縮エンジン330を備えることができる。
ユニバーサル・センサ・インターフェース320は、適した回路、ロジック、および/またはコードを備えることができ、画像センサ100に対するインターフェースとして機能することができる(そして、そのために用いることができる)。画像センサ100は、CCD、CMOS、または光学画像を電気信号に変換することができる同様のデバイスとすることができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、および/またはガンマ補正というような画像処理を実行する。バイエル/YCbCr変換モジュール302は、データをバイエル・フォーマットからYCbCrフォーマットに変換する。バイエル/YCbCr変換モジュールのアーキテクチャ、機能、および動作については、本明細書の以下で更に詳しく論ずる。ビデオ・モーション検出モジュール303は、入来する画像内において動いている物体を検出するための画像処理を実行する。また、ビデオ・モーション検出モジュール303は、画像の背景を検出するための画像処理も実行することができる。ダイナミック・レンジ圧縮モジュール304は、入来するYおよびCbCr信号に対して種々の動作を実行して、圧縮YおよびCrCbを送り出す。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したデータに基づいて、グラフのレンダリングおよび/または作成を行うことができる。ヒストグラム・モジュール309は、画像が一旦FPN、感度、およびガンマ補正モジュール301によって補正および/または処理されたなら、これらの画像のヒストグラムを収容することができる。これらのヒストグラムは、画像内部における照明および露出のレベルに関する情報を提供することができる。
制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールの動作を制御し、そのステータスを維持することができる。統計モジュール313は、画像処理およびコンテンツ分析ブロック200によって処理されている画像コンテンツに関する種々の記述子またはメタデータを発生するために必要なデータを収容することができる。圧縮エンジン330は、画像圧縮を実行し、圧縮した画像データを出力することができる。例えば、本発明の一実施形態では、画像圧縮エンジン330はJPEGデータを供給することができる。本発明の別の実施形態では、画像圧縮エンジン330は、MPEG−4データ、または他のいずれの形態の圧縮画像データでも出力することができる。統合DMAを有するチャネル/バッファ340は、画像処理およびコンテンツ分析ブロック200内にデータをバッファするために用いることができる。また、統合DMAを有するチャネル/バッファ340は、DDR SDRAMへ/から送出/受信したデータをバッファするために用いることもできる。また、統合DMAを有するチャネル/バッファ340モジュールは、DDR SDRAMを制御することもでき、再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のコンポーネントと直接インターフェースすることもできる。チャネル/バッファおよびDMAを1つのモジュールに統合することにより、動作の範囲拡大および柔軟性向上、電力消費低減、ならびに物理的な小型化というような便益を得ることができる。
統合DMAモジュール340は、種々のモジュールから入力を受け入れることができる。図3Dに示すように、DMAモジュール340は、FPN、感度、およびガンマ補正モジュール301、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、統計モジュール313および/または圧縮エンジン330からの入力データを受け入れることができる。統合DMAモジュール340は、次いで、データをDDR SDRAMへ/から送る/受けることができる。また、統合DMAモジュール340は、他のSoCコンポーネント、例えば、イーサネット送受信部106に/からデータを送出/受信することができる。
動作において、ユニバーサル・センサ・インターフェース320は画像を取得することができ、次いでその画像をFPN、感度、およびガンマ補正モジュール301に転送することができる。FPN、感度、およびガンマ補正モジュール301は、固定パターン・ノイズ、感度、および/またはガンマ補正というような、画像色補正および画像処理を実行することができる。固定パターン・ノイズ、感度、およびその他のパラメータを計算するために、FPN、感度、およびガンマ補正モジュール301は、ユニバーサル・センサ・インターフェース320から受信した画像データを、チャネル/バッファ・モジュール300に転送する。チャネル/バッファ・モジュール300は、データを直接バイエル/YCbCr変換器302およびビデオ・モーション検出器303に転送することができる。チャネル/バッファ・モジュール300は、データをバイエル・フォーマットからYCbCrフォーマットに変換するというような更なる処理のために、画像をバイエル/YCbCr変換モジュール302に転送することができる。また、チャネル/バッファ・モジュール300は、画像における種々の物体を当該画像の背景から隔離するための画像処理の目的のために、画像をビデオ・モーション検出器303に転送することもできる。ビデオ・モーション検出器303は、他の入力モジュールからデータを受けることもできる。図3Dに示すように、ビデオ・モーション検出モジュールは、バイエル/YCbCr変換モジュール302および/またはダイナミック・レンジ圧縮モジュール304から入力を受けることができる。次いで、ビデオ・モーション検出モジュール303は、画像を圧縮エンジン330に転送する。
補正された画像は、FPN、感度、およびガンマ補正モジュールからヒストグラム309に転送される。テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、ビデオ・モーション検出器303と並列に動作することができる。ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム・モジュール309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、各々、画像処理およびコンテンツ分析を種々の観点でを実行する。例えば、集合的に、ビデオ・モーション検出器303、テーブル・モジュール308、ヒストグラム309、制御およびステータス・レジスタ310、ならびに統計モジュール313は、特徴抽出を実行する。特徴抽出は、例えば、入来するビデオ・データを分析し、物体の分析を実行してこれらの物体の種々の特徴を抽出することを含むことができ、物体の特徴には、限定ではなく、当該物体の形状、色、および/またはモーション・ベクトルが含まれる。これらのモジュールのアーキテクチャ、機能、および動作については、本明細書の以下で更に詳しく論ずる。テーブル308ならびに制御およびステータス・レジスタ310は、画像処理およびコンテンツ分析ブロックの動作のために用いることができる。ヒストグラム309および統計313は、ビデオ・コンテンツから記述子またはメタデータ情報を発生するために用いることができる。更に、ビデオ・モーション検出器303が発生した情報は、記述子および/メタデータを発生するために用いることもできる。
記述子は、モーション検出、物体検出、物体追跡、色情報、クラスタ情報、背景情報、皮膚検出、および/または顔検出を含むことができる。発生した記述子またはメタデータは、JPEG圧縮ビデオに埋め込むまたは添付するために、プロセッサ202に送ることができる。また、プロセッサ202は記述子を、それらの各圧縮ビデオとは別個に、ネットワークに送ることもできる。次いで、データ・マイニング・アプリケーションのようなアプリケーションを容易にするために用いることができる。FPN、感度、およびガンマ補正モジュール301、バイエル/YCbCr変換モジュール302、ならびにダイナミック・レンジ圧縮モジュール304は、各々、色処理を種々の観点でを実行する。テーブル・モジュール308は、ヒストグラム・モジュール309から受信したヒストグラム・データに基づいて、グラフのレンダリング/作成を行うことができる。ヒストグラム・モジュール309は、ヒストグラム・データをDMAモジュール340に転送することができる。ダイナミック・レンジ圧縮器304は、画像圧縮を実行し、そうしなければダイナミック・レンジを扱うことができないデバイスによって、ダイナミック・レンジ全体が取り込まれることを確保することができる。
制御およびステータス・レジスタ・モジュール310は、種々のレジスタを制御し、これらのレジスタのステータスを表示するためにも用いることができる。例えば、制御およびステータス・レジスタ・モジュール310は、ユニバーサル・センサ・インターフェース320の内部にあるレジスタのステータスを制御することおよび表示することができる。また、制御レジスタ310は、画像処理およびコンテンツ分析ブロック200の内部にある種々のモジュールをイネーブルまたはディスエーブルするために用いることもできる。例えば、制御およびステータス・レジスタ・モジュール310は、ダイナミック・レンジ圧縮器304をイネーブルまたはディスエーブルすることができる。統計モジュール313は、DMA340と直接インターフェースすることができる。また、DMA340は、圧縮データを圧縮エンジン330から受けることができる。次いで、DMA340は、このデータを統計モジュール313および/または圧縮エンジン330から再構成可能スマート・ネットワーク・カメラSoC104の内部にある種々のその他のモジュールに転送することができる。また、DMA340は、再構成可能スマート・ネットワーク・カメラSoC104の内部にあるその他のモジュールからデータを受けることもできる。DMAモジュール340の内部にある統合DMAコントローラは、2つの外部チャネルを備えることができ、これらは、画像処理およびコンテンツ分析によって、データを直接SDRAMメモリに転送するために用いることができる。チャネル0はJPEG圧縮画像に用いることができ、チャネル1は、統計データの転送に用いることができる。
図4は、本発明の一実施形態による、二重ポート外部メモリ・コントローラのブロック図を示す。図4を参照すると、画像処理およびコンテンツ分析ブロック200の内側にあるDDR SDRAMコントローラのアーキテクチャ例は、データ・セレクタ・モジュール401、チャネル・バッファ0 400a、チャネル・バッファ1 400b、チャネル・バッファ2 400c、チャネル・バッファ3 400d、チャネル・バッファ4 400e、およびチャネル・バッファ5 400fを備えることができる。別の実施形態では、DDR SDRAMコントローラ300は、別の数のチャネル・バッファを備えることもできる。集合的に、チャネル・バッファは二重ポート外部メモリ・コントローラとして作用することができる。データ・セレクタ401は、標準的なマルチプレクサ・スイッチを用いて実現することができる。
各チャネルは、データ・セレクタ401を通じてSDRAMとインターフェースすることができる。チャネルは、データを送るのみ、受信するのみ、あるいは同時にデータを送るおよび/または受信することができる。例えば、チャネル0 400aは画像データの受信専用とすることができ、チャネル1 400bは画像データの送出専用とすることができ、一方チャネル3はデータを同時に送るおよび/または受信することができる。このチャネル間の相違は、転送するデータのサイズによる場合もある。チャネル0 400aおよびチャネル1 400bは、チャネル3 400dが送出/受信するデータよりもサイズが大きくてもよい画像を送出/受信することができる。
動作において、チャネル0バッファ400aは、FPN、感度、およびガンマ補正モジュール301からデータを受けることができる。チャネル1バッファ400bはデータをFPN、感度、およびガンマ補正モジュール301に送ることができる。チャネル2バッファ400cはデータをバイエル/YCbCr変換モジュール302に送ることができる。チャネル3バッファ400eは、データをテーブル308、ヒストグラム309、制御/ステータス・レジスタ310、および/またはプロセッサ202に/から送出/受信することができる。チャネル4 400eは、データをビデオ・モーション検出器303から受けることができ、更なる処理のためにそれをDDR SDRAMに転送することができる。チャネル5 400fはデータをDDR SDRAMから受けることができ、それをビデオ・モーション検出器303に転送することができる。
取得したセンサ・フレーム画素データ・サンプルは、DDR SDRAMメモリに格納することができ、時分割多重化チャネルを通じて、種々のSoCモジュールによってアクセスすることができる。各チャネルは、図4に示すように、それ自体の二重ポート・メモリ・バッファを備えることができる。任意の所与の時点において、1つのデータ・チャネルをチャネル・バッファとDDR SDRAMとの間で転送することができる。4つのチャネルを次のように定めることができる。チャネル0 400aは、補正した生センサ・データ・サンプルをDDR SDRAMの内部にあるビデオ・バッファに書き込むために用いることができる。チャネル1 400bは、固定パターン・ノイズ(FPN)データをDDR SDRAMから読み出すために用いることができる。チャネル2 400cは、チャネル0によってそこに書き込まれたセンサ・データを画素マイクロブロック単位で読み取るために用いることができる。チャネル3 400dは、プロセッサ202がメモリ・ウィンドウを通じてSDRAMに対してリードおよびライト・アクセスを行うために用いることができる。一定のチャネルの使用は、一定の動作モードにおいてイネーブルまたはディスエーブルすることができる。
DDR SDRAMに対するアクセスは、SoCモジュールによる調停を受ける。このSoCモジュールは、所与の時点においてアクセスを要求しているチャネルから、最も優先度が高いチャネルに、SDRAMへのアクセスを付与する。例えば、7つの可能な要求元、即ち、チャネル0から5およびDDR SDRAMリフレッシュ・サイクルがあり得る。これらのチャネルには、チャネル0(最高の優先度)から始まって、チャネル1、チャネル2、チャネル5、チャネル4、およびチャネル3(優先度が低くなる)に優先度を与えることができ、そしてSDRAMリフレッシュ・サイクルが最も低い優先度を有する。一旦優先度が最も高いチャネルがアクセスを解放したなら、キューにおいて2番目に優先度が高いチャネルがSDRAMにアクセスすることができる。
DDR SDRAMは、例えば、16M×16(512の16ビット幅位置から成るページを8192含むバンクが4つで、32MBのアドレス空間を与える)として編成することができ、8メモリ位置単位のバースト処理でリードおよびライト動作のためにアクセスすることができる。各メモリ・アクセスは、16バイト(4×32ビット)を二重ポート・メモリ・バッファの1つへ/から転送することができる。SDRAMアドレス・ラインは、SoCモジュールによって生成することができる。16M×16として編成されたアドレス空間は、ワード・アドレスによってアクセスすることができ、ワード・アドレスは、2ビット・バンク・アドレス、13ビット行アドレス、および9ビット列アドレスで構成することができる。
2つの伝送モード、モード0およびモード1を定めることができる。モード0は、所与の開始アドレスから線形に(走査線順)にSDRAMメモリにアクセスするために用いることができる。転送長は、16バイト(8つの16ビット・ワード)の倍数で表現することができる。最大倍数32の8ワード・グループを、1つのバッファ(512バイト)で転送することができる。モード1は、リード・アクセスに用いることができ(チャネル2のみ)、この場合20×20画素のブロック1つ分(タイル)のデータ・サンプルを要求することができる。
DDR SDRAMと4つのチャネル・バッファとの間におけるデータ転送のパラメータは、静的記述子と呼ばれるバッファ記述子によってプログラムすることができる。チャネル毎に3つの記述子を設けることができる。各二重ポート・メモリ・バッファ・ページおよびDDR SDRAMバッファのアドレスは、動的記述子と呼ばれる記述子によって生成することができる。
DDR SDRAMコントローラ・チャネル4は、現フレームの背景データをメモリ・バッファ400eに書き込むために用いることができ、一方チャネル5はメモリ・バッファ400fから直前のフレームの背景データを読み出すために用いることができる。チャネル4およびチャネル5双方の記述子は、同じ開始アドレスがプログラムされているとよい。メモリ・コントローラは、最初に、チャネル5を通じてDDR SDRAMバッファ・データを読み出す(直前のフレームの間にそこに書き込まれた)ことができ、次いで現フレーム・データを同じバッファに、チャネル4を通じて書き込むことができる。開始アドレスはページの境界に位置合わせするとよい。DDR SDRAMアドレス空間における開始アドレス位置は、選択したVMDウィンドウ・サイズ(画素毎に1バイト)に基づいて選択することができる。チャネル4およびチャネル5は、VMDウィンドウのデータを転送し、nTileXおよびnTileY値を用いてプログラムすることができる。
図5は、本発明の一実施形態による、固定パターン・ノイズ(FPN)、感度、およびガンマ補正のブロック図を示す。図5を参照すると、画像処理およびコンテンツ分析ブロック200のFPN、感度、およびガンマ補正モジュール301の一例は、データ・セレクタ500、背景減算モジュール501、感度補正モジュール502、画素データ幅選択モジュール503、ガンマ補正モジュール504、閾値およびモード選択モジュール506、ならびにガンマ補正テーブル505を備えることができる。
動作において、FPN、感度、およびガンマ補正モジュール301は、画像較正機能を実行することができる。画像センサ100は、画像データをデータ・セレクタ500に供給することができる。背景減算モジュール501は、データ・セレクタ500から受けたデータから背景情報を減算する。DDR SDRAMコントローラ300は、減算モジュール501による減算に用いることができるパラメータの行列を収容することができる。このパラメータの行列は、検査および/または較正に基づいて、DDR SDRAMコントローラ300にプログラムすることができる。DDR SDRAMコントローラ300によって供給されるデータは、検査データおよび/または較正データと呼ぶこともできる。背景減算モジュール501によって行われる減算動作は、入来するデータにおける固定パターン・ノイズのレベルを決定するために用いることができる。同様に、DDR SDRAMコントローラ300は、検査データおよび/または較正データを感度補正モジュール502に供給することができる。感度補正モジュール502は、検査データおよび/または較正データを用いて、感度レベルを調節することができる。画素データ幅選択モジュール503は、種々の動作モード間から選択することができる。ガンマ補正モジュール504は、感度補正モジュール502から受信したデータに対して、対数変換を実行することができる。このガンマ補正を実行するために、ガンマ補正モジュール504は、ガンマ補正テーブル505によって供給することができる参照テーブルに収容されている種々のパラメータを受けることができる。ガンマ補正モジュール・テーブル505は、ガンマ補正に必要とされる種々のパラメータを有する参照テーブルを収容することができる。閾値およびモード選択モジュール506は、プロセッサ202から入力を受ける。閾値およびモード選択モジュール506は、FPN、感度、およびガンマ補正モジュール301の内部にあるモジュールに合わせて、種々の動作モードから選択することができる。
図5を参照すると、センサ画素情報は、センサ・トリガ信号を用いて受けることができる。FPNデータが処理チェーンによって用いられようとする場合、チャネル1を最初にイネーブルしなければならない場合がある。受信した後、センサ画素10ビット・データおよび10ビット検査データは、2:1データ・セレクタへの入力を形成する。センサ/FPN制御レジスタ内におけるビットの設定に応じて、画素データまたは検査データを、更なる処理のために、受け渡すことができる。背景減算のために、センサ/FPN制御レジスタにおいて選択されるサブモードに応じて、SDRAMチャネル1バッファからのFPN8ビット・データを用いて、背景データを計算し、2:1マルチプレクサ出力データからこの背景データを減算する(減算がイネーブルされたときに)ことができる。4つの利用可能な選択肢があるとよい。即ち、減算なし、8ビットFPNデータの減算、1ビット左にシフトした8ビットFPNデータの減算、および2ビット左にシフトした8ビットFPNデータの減算である。減算の結果が負になった場合、画素データを0に設定すればよい。
感度補正では、センサ/FPN制御レジスタにおいて選択されたモード、およびSDRAMチャネル1バッファからの8ビットFPNデータに応じて、画素データと4つの異なる値と乗算することができる。4つの異なる値とは、0x0−1024(補正なし)、0x1−896から1144まで(−12.5%から+12.5%)、0x2−768から1278まで(−25%から+25%)、および0x3−512から1532(−50%から+50%)である。乗算の後、10個のLSBを破棄することができる(1024で除算することと同等)。彩度(saturation)補正のために、1024以上のデータ・サンプルを1023に制限することができ、ガンマ補正ブロックに対する入力データとして用いることができる。
ガンマ補正では、センサ・データのガンマ補正を実施するためにテーブルを用いることができる。テーブルの10ビット・アドレスの2つのMSBによって画素の色を選択する(0x00−赤、0x01−緑、または0x02−青、0x11は使用しない)。10ビット彩度データの8つのMSBを、テーブル・アドレスの下位8ビットとして用いることができる。このように、各画素色およびその8つのMSBによって表されるデータ値毎に、テーブルから一意の16ビット値を得ることができる。
データ幅選択では、センサ/FPN制御レジスタのビット幅を設定するとき、センサ画素データは16ビット・モードであるとよい(先頭に並ぶ5つの0および11ビットのセンサ・データ)。これを生画素データ・モードと呼ぶこともできる。このビットをクリアすると、画素彩度およびガンマ補正8ビット画素データを用いることができる。8ビット・モードでは、1回置きの画素クロック・サイクルで、16ビットのデータをDDR SDRAMチャネル0に書き込むことができる。出力データ・ビット15...8は、現画素データを収容し、直前の画素データはビット7...0上にある。
チャネル0のDDR SDRAMへの書き込みでは、チャネル0バッファは、例えば、センサ側から見たときは、1024×16として編成された二重ポート・メモリとして、そしてDDR SDRAM側から見たときは512×32として編成することができる。画素データ・サンプルをこのバッファに書き込むことができ、画素クロック(pclk)に同期させることができる。バッファは、4つの256×16頁に分割することができる(センサ側の10ビットアドレスの2つのMSBが現ページを選択する)。ページが一杯になるまで、センサ・データでページを満たすことができる。一旦リング・バッファ・ページの1つを満たしたなら、開始信号をアサートし、バッファの内容をDDR SDRAMバッファに転送することができる。SDRAMアドレスは、チャネル0バッファ記述子によって生成される。データ転送は、以前の章において説明したように実行することができる。
色処理では、一旦十分なセンサ・フレーム・データ・サンプルがDDR SDRAMビデオ・バッファ内に取り込まれたなら、チャネル2を初期化しイネーブルすることができ、色処理を開始することができる。初期化およびイネーブルされると、チャネル2ロジックは、センサ・フレーム・データをDDR SDRAMビデオ・バッファからチャネル2二重ポート・メモリ・バッファに転送する。
DDR SDRAMからのチャネル2の読み出しでは、チャネル二重ポート・メモリは、色処理側から見たときには2048×8として編成し、SDRAM側から見たときには512×32として編成することができる。データは、SDRAMからチャネル2バッファに、20×20画素ブロック単位で読み出すことができる。1つのバッファ・ページは、このようなブロックを1つ保持する。色処理では、処理のために、二重ポート・メモリ・ポートAから画素データを読み出すことができる。読み出しのためにデータをアドレスするには2つの方法、即ち、非モザイクおよびモザイクが考えられる。非モザイク・モードでは、走査線順で始まるページから開始してサンプルを読み出すことができ、18の行に対して18のサンプルを読み出す。モザイク・モードでは、ブロック・カウンタが、読み出したブロックの数を数えることができる。ブロック数(18×18のタイル)は、プロセッサによってレジスタを通じてプログラムすることができる。現ページの終端に達する前に、色処理は、データをSDRAMから次のバッファ・ページに読み出す要求を発行することができる。別の20×20の画素ブロックをSDRAMから次のバッファ・ページに読み出すことができ、新たなデータが準備できたことを色処理に指示することができる。画素データ・サンプルは、色空間(バイエルからYCbCr)変換のために、色空間変換器に受け渡すことができる。
テキスト・マスクのために、20×20画素ブロックの最初の行を、内部RAMに128ブロックの行として複製することができる。チャネル2がDDR SDRAMから読み出すに連れて、データは内部RAMからも読み出され、テキスト・マスクを設けることができる。これは、最初の20走査線上では見えるようにするとよい。
利用可能なデータを最大にするために、RAMを16,384×1ビットとなるように構成するとよい。各ビットは4画素のブロックを表すことができる。ビットを1に設定すると、対応するブロックはグレー画素となって現れ、マスク明暗度レジスタによってその明暗度 (intensity)が定められる。ビットを0に設定すると、画像データを表示するか、または画像データがグレー画像となって現れ、マスク背景レジスタによって明暗度が定められる。画像またはマスク・データの選択は、マスク制御レジスタによって制御することができる。
プロセッサ側からは、マスク・データは32ビット・データとして表すことができる。マスク・データ・レジスタに書き込む毎に、次の32ビットのデータがブロックに出力される。アドレスは、自動的に増分することができる。20×20ブロック毎に、4回の書き込みが必要となる。各ブロックは、RAMの内部にある128×1ビットのページに格納することができる。このRAMは、これらのブロックを1行の128ブロック、即ち、2560×20画素に配列して保持する。各ブロックには、対応するアドレスがある。アドレス位置は、マスク・アドレス・レジスタにおいて定めることができる。また、これはマスク・データ用のアドレス・カウンタをリセットする。
図6は、本発明の一実施形態による、色処理のブロック図を示す。図6を参照すると、画像処理およびコンテンツ分析ブロック200のバイエル/YCbCr変換器302の一例は、色空間変換器600、遅延モジュール601、YAアキュミュレータ602a、YBアキュミュレータ602b、Cbアキュミュレータ602c、Crアキュミュレータ602d、輝度二重ポート・バッファ603a、クロミナンス二重ポート・バッファ603b、タイル平均メモリ・モジュール604、減算モジュール605、およびデータ・セレクタ・モジュール606を備えることができる。
動作において、色空間変換器600は、バイエル入力をDDR SDRAM300から受けることができる。色空間変換器600は、輝度出力(Y)と、クロミナンス(クロミナンス青およびクロミナンス赤)出力(CbCr)とを有することができる。また、色空間変換器は、これらのYおよびCbCr出力をビデオ・モーション検出器303に送ることができる。Y出力は、輝度二重ポート・バッファ603aが受けることができる。また、Y出力は、輝度アキュミュレータ(Acc.)YA602aおよびAcc.YB602bも受けることができる。同様に、CbCr出力は、クロミナンス二重ポート・バッファ603bが受けることができる。また、CbCr出力は、クロミナンス・アキュミュレータAcc.Cb602bおよびAcc.Cr602dも受けることができる。アキュミュレータYA602a、YB602b、Cb602c、およびCr602dは、様々な値をタイル平均メモリ・モジュール604に供給することができる。これらアキュミュレータYA602a、YB602b、Cb602c、およびCr602dが供給する値は、タイル平均メモリ・モジュール604によって、輝度およびクロミナンス・タイルについて平均値を計算する際に用いることができる。例えば、平均メモリ・モジュール604は、8×8輝度およびクロミナンス・タイル8×8について平均値を計算することができる。
同様に、輝度タイルについての4つの平均値、Cbタイルについての1つの平均値、およびCrタイルについての1つの平均値を、16×8メモリに格納することができる。減算モジュール605は、輝度信号を輝度二重ポート・バッファ603aから受け取ることができる。また、減算モジュール605は、平均タイル値をタイル平均メモリ・モジュール604から受け取ることができる。タイル平均値と、輝度二重ポート・バッファ603aからのバッファされている信号との間で減算を行うことによって、減算モジュール605は較正の目的に用いることができる信号を出力する。この減算モジュール605からの出力は、データ・セレクタ606に供給することができる。また、データ・セレクタ・モジュール606は、クロミナンス信号をクロミナンス二重ポート・バッファ603bから受け取ることができる。次いで、データ・セレクタ・モジュール606は、どの信号を出力するか選択することができる。データ・セレクタ606からの出力は、ダイナミック・レンジ圧縮器304に供給することができる。遅延モジュール601は、バイエル/YCbCr変換器302の内部にある種々のモジュールの動作を同期させるために用いることができる。遅延モジュール601からの出力は、制御信号としての役割を果たすことができ、バイエル/YCbCr変換器の内部にある種々のモジュールをイネーブルまたはディスエーブルするために用いることができる。これらの遅延は、モーション検出処理によって追加されたレイテンシを補償することができる。
バイエルからYCbCrへの変換では、CMOSまたはCCDセンサが、バイエル・フェーズ0にしたがって配列された色画素(GR/BGシーケンス)を送ることができる。2×2とするとよいN×N画素ブロックが、画素毎にRGB成分を内挿補間し、Y、Cb、およびCr成分を計算するために用いることができる。ハードウェア・ロジックでの実施態様では、変換において用いられる計数に256を乗算し、8ビット符号なし整数に切り上げればよい。これらの計数を用いて、輝度値を計算することができ、その結果を256で除算することができる(8ビットだけ右にシフトする)。
クロミナンス青およびクロミナンス赤は、例えば、4:2:0クロマ・サブサンプリングを用いて計算することができる。この場合も、ハードウェア・ロジックの実施形態では256倍大きな計数(10ビット)を用いるとよく、その結果をしかるべく縮小(scale back)すればよい。クロミナンス計数は、プロセッサによってプログラム可能とするとよい。色空間変換の後、輝度サンプルが、走査線順に出力に現れ(1線当たり16サンプル)、2つの256バイトのページを有する二重ポート・バッファに書き込むことができる。サンプルは8×8タイルの順序で読み出すことができる。対応するクロミナンス・サンプルは、CbCrの順序で出力する(clock out)ことができる。
緑チャネルは、画像の輝度値の中でも最も重要な成分であると考えられる。輝度チャネルは、画像の詳細の殆どを収容し、したがって、緑画素の内挿補間は、結果的に得られる画像の詳細に大きな影響を及ぼす。近隣の画素の値を無差別に平均化する標準的なバイリニア内挿補間(Bilinear interpolation)の代わりに、画素近傍にある局所的な空間的特徴を検出し、ついでその近傍のためにどの予測器を用いるかについて有効な選択を行う内挿補間アルゴリズムを、代わりに用いるとよい。
Yバッファの出力は、モーション検出処理のために、ビデオ・モーション検出器(VMD)303にも送出することができる。出力データ(背景および差)をVMD検査用圧縮器に出力することを可能にするために、追加のデータ・セレクタが付加されている。追加の遅延が、モーション検出処理によって追加されたレイテンシを補償する。輝度データはVMDが用いることができ、そしてデータをJPEG圧縮器の入力として用いることができるときに、クロミナンス・サンプルを一定値に設定することができる。
図7は、本発明の一実施形態による、JPG圧縮処理チェーンのブロック図を示す。図7を参照すると、JPEG圧縮チェーン330は、DC減算モジュール305、DCTモジュール306、加算器307、量子化器RLE314、ハフマン・エンコーダ315、およびビッグ・スタッファ(big stuffer)316を含むことができる。
動作において、DC減算モジュール305は、ビデオ・モーション検出器303から入力を受けることができる。DC減算のために、タイルの各々についての輝度平均(DC)値を、タイル輝度サンプルから減算することができる。DC減算は、圧縮器制御レジスタを通じてディスエーブルすることができる。減算値は、JPEG規格では定められていないDCT306の後に、加算器307によって再度加算することができる。YおよびCbCrバッファからのデータは、色処理ロジックによって、タイル順に出力する(clock out)ことができ、タイル番号4および5がそれぞれCbおよびCrタイルに割り当てられる。このデータは、二次元離散余弦変換(DCT)処理のために、DCTに入力することができる。更なる処理が、JPEG圧縮規格に定められる動作を実施することができ、8×8の画素タイルを単位に実行することができる。
図8は、本発明の一実施形態による、JPEG圧縮における離散余弦変換のブロック図を示す。図8を参照すると、DCTモジュール306は、DCT段1 801、転置メモリ802、およびDCT段2 803を備えることができる。したがって、この実施形態では、DCTの実施態様は、2つのDCT段801および803、ならびに転置メモリ802を備えることができる。
動作において、DCT306は開始/停止動作をイネーブルすることができ、各開始パルス後に、8×8画素ブロックを処理することができる。DCT段1 801は、DC減算305から入力を受ける。DCT段1 801からの出力は、転置メモリ802に供給することができる。転置メモリ802からの出力は、DCT段2 803に供給することができる。次いで、DCT段2 803はデータを加算器モジュール307に出力することができる。
図9は、本発明の一実施形態による、量子化器RLEブロックの量子化部のブロック図を示す。図9を参照すると、量子化器RLEモジュール314は、符号モジュール変換器(sign module converter)900、乗算器901、除算器902、整数モジュール903、ジグザグ・バッファ904、量子化テーブル905、アキュミュレータACモジュール906、AC選択907、DCアキュミュレータ、およびDCデータ・セレクタ909を備えることができる。
動作において、符号モジュール変換器900は、加算器307から入力を受ける。符号モジュール変換器900は符号データを整数モジュール903に出力することができる。また、符号モジュール変換器900はデータを乗算器901およびACaccモジュール906にも出力することができる。乗算器901は、量子化テーブル905から値を受け取る。量子化テーブル905の内部にある値は、プロセッサによってプログラムすることができる。量子化テーブル905の内部にある値は、1024を必要な量子化計数で除算した値に等しくするとよい。DCT306の前に減算される各タイルに対するDC値は、ここで各サンプルに再度加算することができる。その結果を符号−モジュール・フォーマット(sign-module format)に変換することができる。モジュール部には、量子化テーブル905からの対応する値を乗算することができ、その結果を1024で除算することができる。この除算演算は、除算モジュール902によって実行することができる。除算モジュール902が出力する値は、整数モジュール903によって、一番近い整数に四捨五入することができる。一旦これらの値が最も近い整数に四捨五入され、符号付きの値に再度変換されたなら、これらを二重ポート・メモリ・バッファに書き込むことができる。メモリ・バッファの第2ポートには、各8×8画素ブロックにおけるデータ・サンプルを走査線からジグザグ・シーケンスに再編成するようにアドレスすることができる。整数モジュール903からの出力は、ジグザグ・バッファ904に供給される。ACacc906からの出力は、AC選択モジュール907に出力することができる。AC選択モジュール907は、更なる動作のために選択信号を利用することができる。AC選択モジュール907からの出力は、DCaccモジュール908に供給することができる。DCaccモジュール908は、次いで、データをDCデータ・セレクタ909に出力することができる。DCデータ・セレクタ909は、種々のその他の選択信号も受け取ることができる。DCデータ・セレクタ909は、次いで、DCデータを出力することができる。
図10は、本発明の一実施形態による、量子化器RLEブロックのラン・レングス・エンコーダ(RLE)部のブロック図を示す。図10を参照すると、量子化器RLEブロック314のラン・レングス・エンコーダ部は、DC係数セレクタ1000、DCメモリ1001、減算モジュール1002、データ選択モジュール1003、ゼロAC係数決定モジュール1004、係数カウンタ1005、およびデータ・フォーマット・ブロック1006を備えている。
動作において、DC係数セレクタ・モジュール1000は、ジグザグ・エンコードされたブロックを、ジグザグ・バッファ904から受けることができる。DC係数セレクタ1000からの出力は、DCメモリ・モジュール1001に供給することができる。減算モジュールは、DC係数セレクタ1000およびDCメモリ・モジュール1001からの入力を受けることができる。データ選択モジュール1003は、減算1002モジュールからのデータ、およびジグザグ・バッファ904からのジグザグ・エンコードされたブロックを受けることができる。データ選択モジュールからの出力は、ゼロAC係数決定モジュール1004に供給することができる。ゼロAC係数決定モジュール1004からの出力は、データ・フォーマット・モジュール1006に供給することができる。また、データ・フォーマット・モジュール1006は、係数カウンタ・モジュール1005からの入力も受けることができる。係数カウンタ・モジュール1005は、ブロック開始信号を受けることができ、データ・フォーマット・モジュール1006にデータを出力することができる。データ・フォーマット・モジュール1006は、次いで、RLEデータを出力することができ、このRLEデータをハフマン・エンコーダ315に供給することができる。事実上、ラン・レングス・エンコーダは、8×8タイル毎に、ジグザグ・エンコードされたデータのDC係数差分エンコード処理およびラン・レングス・エンコード処理を実施することができる。
図11は、本発明の一実施形態による、JPEG圧縮におけるハフマン・エンコーダのブロック図を示す。図11を参照すると、ハフマン・エンコーダ315は、ハフマンFIFO1100、可変長エンコーダ1102、出力データ・フォーマッタ1103、およびハフマン・テーブル1101を備えることができる。
動作において、ハフマンFIFO1100はRLEデータを量子化器RLE314から受ける。ハフマン・エンコーダ315は、ラン・レングス・エンコーダ314から受け取った16ビット・データ・ストリームのハフマン・エンコード処理を実施する。ハフマン・テーブル1101は、スマート・ネットワーク・カメラSoCのプロセッサ104によってプログラムすることができる。ハフマン・エンコード処理では、異なるビット数を用いて、異なるシンボルをエンコードすることができる。モジュール出力は、16ビットのデータと、データ有効ビット数を示す4ビット長とを備えることができる。
図12は、本発明の一実施形態による、JPEG圧縮におけるビット・スタッファのブロック図を示す。図12を参照すると、ビット・スタッファ316は、段階1シフト・レジスタ1200、0xFF検出および0x00挿入モジュール1201、ならびに段階2シフト・レジスタ1202を備えることができる。
動作において、段階1シフト・レジスタ1200はハフマン・データ出力およびハフマン・データ長をハフマン・エンコーダ315から受ける。段階1シフト・レジスタ1200はデータを0xFF検出0x00挿入1201モジュールに出力する。0xFF検出0x00挿入モジュール1201は、データを段階2シフト・レジスタ1202に出力する。ビット・スタッファ316は、有効ビット数が可変の16ビット・データをハフマン・エンコーダ315から受け取ることができ、このデータを、DMA用の32バイト整合ブロック単位で、プロセッサのSDRAMメモリにパックする。各0xFFバイトの後ろに、スタッファは0x00バイトを挿入する。
図13は、本発明の一実施形態による、ヒストグラム・ブロック図を示す。図13を参照すると、ヒストグラム309は、二重ポート・ブロックRAMモジュール1300aおよび1300b、ならびに+1モジュール1301を備えることができる。動作において、二重ポート・ブロックRAM1300aおよび二重ポート・ブロックRAM1300bは、DDR SDRAMから入力を受けることができる。二重ポート・ブロックRAMモジュール1300および1300bへのこの入力は、3つのデータ・チャネルを有することができる。これら3つのデータ・チャネルは、輝度(Y)およびクロミナンス(CrCb)情報を収容することができる。二重ポート・ブロックRAMモジュール1300aおよび1300bは、互いに直接通信することができる。+1モジュール1301は、ヒストグラム・モジュール309内におけるいかなる遅延をも補償することができる。また、+1モジュールは、入来する信号内部におけるR、Gr、Gb、およびB画素の発生回数を数えることができる。また、+1モジュール1301は、データ有効期間中にアドレス位置がアドレスされるに連れて、アドレス位置を増分することもできる。実際には、ヒストグラム・モジュール309は、プログラムされた枠における、R、Gr、Gb、およびB画素について、センサ画素データ上における0〜255までの値の各々の発生回数を数えることができる。モジュール入力データは、チャネル0デュアル・ポートDDR SDRAMメモリ・バッファによって供給することができる。ヒストグラム・モジュール309は、二重ポート・メモリとして実現することができ、データ・サンプル値と画素色識別とによってメモリにアドレスする。アドレスされた位置の値は、データ有効期間中にその位置にアドレスされる毎に増分する。メモリ空間は、2つの1048×18頁に分割することができる。データを一方のページに書き込むことができるとき、読み出しのために他方にアクセスすることができる。1つのページが1つのセンサ・フレーム枠についてのヒストグラム・データを保持する。このヒストグラム・データは、プロセッサによって、PIOインターフェースを通じて読み出すことができる。
量子化器314は、16×16ブロック毎に1つ以上のAC係数の値を平均することができ、更に、このような各ブロックにおける0x00の画素の数および0xFFの画素の数を、プロセッサのSDRAMメモリに転送するために、MDA FIFO1に送ることができる。これに関して、ヒストグラム・モジュールは、入力をDDR SDRAMから受けることができ、輝度についてのヒストグラムおよび/またはクロミナンスについてのヒストグラムを出力することができる。3つのチャネル全てを1つのヒストグラム出力の中に表示すること、または別個のヒストグラムに表示することができる。
図14は、本発明の一実施形態による、ビデオ・モーション検出(VMD)のブロック図を示す。図14を参照すると、ビデオ・モーション検出器303は、フレーム検出モジュール1400、フレーム・レート低減モジュール1404、背景推定モジュール1405、差分計算モジュール1406、警報検出モジュール1409、接続コンポーネント処理モジュール1407、移動オブジェクト・ブロブ(blobs)モジュール1408、移動物体縁端検出1410、出力データ選択モジュール1411、VMDレジスタ1401、VMD枠検出1402、および背景初期化カウンタ1403を備えることができる。
動作において、フレーム検出モジュール1400は、画像データを受けることができる。この画像データは輝度データを収容することができる。フレーム検出モジュール1400からの出力は、フレーム・レート低減モジュール1404に供給することができる。フレーム・レート低減モジュール1404は、種々の目的のためにフレーム・レートを低減することができる。例えば、フレーム・レート低減モジュール1404は、VMDモジュール303が最適に動作できないレートでフレームが受信されているときに、フレーム・レートを低減することができる。フレーム・レート低減モジュール1404からの出力は、背景推定モジュール1405、差分計算モジュール1406、接続コンポーネント処理モジュール1407、および移動物体ブロブ・モジュール1408に供給することができる。背景推定モジュール1405は、統計分析および画像処理を実行して、入来する画像フレーム内部における背景を推定することができる。差分計算モジュール1406は、フレーム低減モジュール1404が供給するフレームと、背景推定モジュール1405が供給するような背景画像との間における差分を計算することができる。
接続コンポーネント処理モジュール1407は、入来するアクティブ・タイルを受け取り、これらのアクティブ・タイル内部において、物体を分類することができる。また、接続コンポーネント処理モジュール1407は、難点(objections)についての情報もブロブに入力することができる。移動物体ブロブ1408は、画像の追加処理を実行することができる。例えば、移動物体ブロブ・モジュール1408は、フレームの内部にある物体の色、形状、および方向というような追加情報を抽出することができる。移動物体縁端検出モジュール1410は、背景推定モジュール1405、差分計算モジュール1406、接続コンポーネント処理モジュール1407、および/または移動物体ブロブ・モジュール1408からデータを受けることができる。移動物体縁端検出モジュール1410は、次いで、これら種々のモジュール1405、1406、1407、および/または1408からの情報全てを組み合わせることができる。また、移動物体縁端検出モジュール1410は、画像の内部にある物体の縁端に対する強調のような境界(boundary)を追加することもできる。次いで、移動縁端検出モジュール1410は、このデータを出力データ選択モジュール1411に出力することができる。
出力データ選択モジュール1411は、移動物体縁端検出1410からの入来データの一部または全部を選択的に出力することができる。次いで、出力データ選択からのY_出力信号は、スマート・ネットワーク・カメラ110の内部にある他のモジュールに供給することができる。警報検出モジュール1409は、差分計算モジュールおよび/または移動物体縁端検出モジュール1410からデータを受けることができる。警報検出モジュール1409は、適した回路、ロジック、および/またはコードを備えることができ、トリガとしての役割を果たすことができる。警報検出モジュール1409は、閾値または基準線としての役割を果たすことができるパラメータを収容することができる。警報検出モジュール1409は、次いで、XMLのようなフォーマットとしたデータを出力することができる。このデータは、スマート・ネットワーク・カメラ110の内部にある他のモジュールによって用いることができる。VMDレジスタ1401は、ビデオ・モーション検出器303の内部にある種々のモジュールをイネーブルまたはディスエーブルすることができる。VMD枠検出モジュール1402は、モーションを検出することができる枠を設定することができる。この枠を対象領域と呼ぶこともできる。枠即ち対象領域は、いずれの形状またはサイズでもよい。背景初期化カウンタ1403は、背景推定モジュール1405をリセットすることができる。
ビデオ・モーション検出器303は、カメラ・ビデオ・モーション検出機構および新静止物体検出機構を実現することができる。ビデオ・モーション検出では、輝度信号はVMD処理によって用いることができる。モジュール動作は、一組のレジスタ1401を通じて制御することができる。ビデオ・モーション検出をイネーブルするためには、VMD制御レジスタ1401のビット0を高に設定すればよい。このビットを高に設定すると、VMDレジスタの一部に対する変更を禁止することができ、したがって、これら他のVMDレジスタは、その前にプログラムするとよい。VMD制御レジスタ1401のその他のビットは、ビット0を高に設定するのと同時にプログラムすることができる。ビデオ・フレームの16×32画素(または32×16画素)からフレームの最大サイズまでに及ぶエリアは、VMD枠レジスタを通じて定めることができる。ビデオ・モーション検出は、この選択したエリア内でのみ実行することができる。VMD枠エリアは、512ビットの整数倍数とするとよい。
モーション検出がイネーブルされているとき、背景初期化をN回の繰り返しで実行することができる。Nは、VMD制御レジスタ1405を通じてプログラム可能である。背景推定は、連続近似アルゴリズムに基づくとよい。このアルゴリズムは、入力輝度信号と直前のフレーム背景値との間の差の半分ずつ、背景値を増分/減分する。
VMD303は、フレーム・レートを低減したモーション検出フレームに用いることができる。VMD制御レジスタ・ビットに書き込まれた値Mが0とは異なる場合、(M+1)毎のフレームだけを用いる。新たなビデオ・フレームの開始は、圧縮器によってVMDに知らせることができる。VMD303は、受け取った輝度サンプルの数を数えて、フレームの終端を検出することができる。この理由のために、正しいフレーム・サイズをVMDフレーム・サイズ・レジスタにプログラムすることが重要であると言える。
新たなVMDフレーム(フレーム・レートが低減したフレーム)の先頭を検出した後、フレーム・データを、チャネル4を通じて、DDR SDRAMメモリ・バッファに書き込むことができる。これ以降、フレーム毎に、直前のVMDフレーム・データ(背景)は、チャネル5を通じてDDRSDRAMメモリ・バッファから読み出し、圧縮モジュールから受け取った現フレーム・データと比較することができる。現データが、対応する背景値よりも大きい場合、DDR SDRAMバッファにチャネル4を通じて書き込まれた新たな値は、背景値を1だけ増加させた値に等しくなることができる。しがたって、現データが対応する背景値よりも小さい場合、新たな背景値を1だけ減少させるが、双方のデータ値が等しい場合、変化させないでおく。背景の推定は、時間ビデオ・モーション検出がイネーブルされている時間中、VMDフレーム毎にこのようにして続けられる。
背景初期化が完了するまで、フレーム差分および警報検出をディスエーブルのままにしておくとよい。その後、圧縮モジュールからの各VMDフレームの現データを、対応する背景値と比較することができ、2つの値の絶対差(モジュール:module)を求めることができる。この差は、次いで、閾値(画素閾値)と比較することができる。閾値は、VMD閾値レジスタを通じてプログラム可能である。この差が、プログラムされている閾値よりも大きい場合、閾値を超過した差を有する画素を数えるカウンタの値を増加させることができる。
各VMDフレームの終端において、画素カウンタ値を、VMD閾値レジスタを通じてプログラムされた2つの閾値と比較することができる。画素カウンタ値が、第1VMD閾値レジスタ内の値より大きく、第2VMD閾値レジスタ内の値よりも小さい場合、閾値を超過する差を有する画素数を有するフレームの数を数えるカウンタを増加させることができる。それ以外の場合、カウンタの値を再度ゼロにリセットすることができる。カウンタが、VMD制御レジスタを通じてプログラムされた値に達したとき、VMD警報出力を1クロック・サイクルの間高にしてパルス状に発生することができ、カウンタを再度ゼロにリセットすることができる。このように、VMD警報を発する動きが検出される連続VMDフレームの最小数を設定することが可能となるとよい。VMD警報信号は、割り込みステータス・レジスタ・フラグを駆動することができる。新たなVMD警報を検出するためには、フラグをポールすればよく、あるいは対応する割り込みをイネーブルすればよく、そうすると、一旦フラグをセットすることができたならば、割り込みが発生する。
動き検出に関して、JPEG圧縮のために圧縮モジュールに送ることができるデータの検査は、VMD制御レジスタを通じて選択することができる。これは、VMD枠内に表示される移動物体「ブロブ」、背景データ、または差分データとすることができる。VMD制御レジスタにおけるVMDイネーブル・ビットをクリアすることができれば、ビデオ・データを0xFFに設定したままにしておいてよい。
図15は、本発明の一実施形態による、VMDにおける静止物体検出動作を示す。図15を参照すると、ビデオ・モーション検出器(VMD)303は、背景推定モジュール1500、フレーム差分モジュール1501、画素閾値モジュール1502、閾値超過画素カウンタ1503、最大/最小閾値超過画素カウンタ枠付け(windowing)1504、前景背景区分化モジュール1505、静止物体RAMモジュール1506、連続フレーム最小数カウンタ1512、タイル16閾値モジュール1507、タイル64閾値モジュール1508、コンポーネントRAMモジュール1510、接続コンポーネント処理モジュール1511、警報発生モジュール1513、および画素/行/列カウンタ1509を備えることができる。
動作において、フレーム差分モジュール1501は、輝度(Y)入力を受けることができる。背景推定モジュール1500は、画像データを受けることができる。背景推定モジュール1500は、統計的分析を行って、画像の背景を推定することができる。背景推定モジュール1500は、多数の(multiple)フレームを用いて、背景の統計的モデルを作成することができる。フレーム差分モジュール1501は、入来するフレームを、背景の統計的モデルから減算する。フレーム差分モジュール1501は、データにおける入来分Yと、背景推定モジュール1500から受け取ったデータとの間の差を判断することができる。フレーム差分モジュール1501は、減算演算を実行することによって、データにおけるY成分とモデル背景データとの間におけるこの差を判断することができる。背景のモデルを作成することによって、背景推定モジュール1500は、カメラが一定の種類の物体移動を無視できるようにすることができる。例えば、画像の背景において風にそよぐ樹木の動きは、背景推定プロセスを用いて無視することができる。
フレーム差分モジュール1501が実行した減算演算の結果から、画素値を得ることができる。この画素値は、次に、画素閾値モジュール1502に転送することができる。次いで、画素閾値モジュール1502は、これらの画素値を利用して、物体がフレーム内にあり得るか否か判断することができる。画素閾値モジュール1502は、画素の特定の閾値および/またはトリガ・レベルを収容することができる。特定の画素閾値レベルに基づいて、警報を誘起することができる。画素閾値モジュール1502は、アクティブ・タイルを出力することができる。これらのアクティブ・タイルは、いずれの形状またはサイズでもよい。例えば、これらのアクティブ・タイルは、用途または画像センサ100に応じて、16×16または64×64であってもよい。これらアクティブ・タイルのサイズは、当該タイル内部における詳細のレベルに対して逆関係(inversely related)とすることができる。例えば、タイルのサイズが縮小すると、タイル内における詳細の量は多くなることができる。この逆相関より、オペレータは広い範囲の動きと偽警報との間で、カメラの動作を均衡させることができる。数個の小さいアクティブ・タイルを用いて、それよりも大きな1つのアクティブ・タイルを組み立てることもできる。例えば、16×16のタイルを複数用いて64×64のタイルを1つ組み立てることができる。これによって、各アクティブ・タイル内に取り込まれる詳細のレベルを低下させることなく、一層大きな物体の検出を可能にすることができる。前述の閾値画素カウンタ1503は、閾値を超えた画素の数を数える。画素閾値モジュール1502からの出力は、タイル16閾値モジュール1507に供給することができる。
タイル16閾値モジュールは、画素データを16×16タイルに変換することができる。別の実施形態では、タイル閾値モジュール1507は、画素を他のいずれの形状またはサイズにでも変換することができる。タイル64閾値1508は、タイル16閾値1507の出力を用いて、64×64のタイルを作成することができる。タイル64閾値モジュール1508の出力は、静止物体RAM1506およびコンポーネントRAMモジュール1510に供給することができる。静止物体RAM1506は、画像内において静止物体を検出することが望ましいと考えられるときにイネーブルすることができる。コンポーネントRAM1510は、アクティブ・タイルを格納することができる。静止物体RAMモジュール1506からの出力は、前景背景区分モジュールに供給することができる。コンポーネントRAMモジュール1510からの出力は、接続コンポーネント処理モジュール1511に供給することができる。接続コンポーネント処理モジュール1511は、アクティブ・タイル間で差別化することができ、および/または画像の中にある移動物体を分類することができる。コンポーネント処理モジュール1511の出力は、次に、警報発生モジュール1513に供給することができる。次いで、警報発生モジュール1513は警報信号を出力することができる。画素閾値モジュール1502は、閾値超過画素カウンタ1503にもデータを出力することができる。閾値超過画素カウンタ1503は、閾値を超える画素の数を数えることができる。閾値超過画素カウンタ1503の出力は、最小/最大閾値超過画素カウンタ枠組モジュール1504に供給することができる。最小/最大閾値超過画素カウンタ枠組モジュール1504の出力は、最小数連続フレーム・カウンタ1512に供給することができる。最小数連続フレーム・カウンタ1512からの出力は、次に、警報発生モジュール1513に供給することができる。次いで、警報発生モジュール1513は、警報信号を発生することができる。
動き検出に加えて、VMD303は新たな静止物体の検出も行うことができる。この動作モードは、VMD制御レジスタにおけるビットを高に設定することによってイネーブルすることができ、対象のプログラム可能な領域、即ち、VMD枠レジスタにおいて、新たな静止物体(または既存の静止物体に対する変化)の検出に備える。新静止物体検出モードでは、入力輝度信号が直前のフレーム背景値よりも大きく/小さくなり得るときに、背景値の+/−1増分/減分を用いて、背景推定を実行することができる。背景初期化段階の間、1つ置きのVMDフレームを背景推定に用いることができる。背景初期化が完了することができた後、VMDフレームを8個ずつ用いることができる。
背景/前景区分化では、背景値を前景物体値に更新することを避けるために、単純な区分化メカニズムを用いるとよい。この目的に合わせて、最大分解能画像全体を64×64画素のタイルに分割するとよい。各タイルは、「アクティブ」(前景に属する)または「インアクティブ」(背景に属する)であると見なすことができる。タイル・ステータスを求めるために、2つの追加閾値比較段階を用いてもよい。これらは、タイル16 1507およびタイル64 1508閾値とすることができる。64×64画素タイルがアクティブであると見なすことができるのは、そのアクティブな16×16画素タイルの数がタイル16設定閾値(threshold set)を超過するときである。16×16画素タイルがアクティブであると見なすことができるのは、画素設定閾値を超過するその画素の数が、タイル16設定閾値よりも大きいときであるとすることができる。
二重ポート・メモリ(静止物体RAM)1506は、64×64画素ステータス情報を格納するために用いることができる。フレーム64×64画素タイルに対応するRAM位置には、各64×64画素タイルの終端に1または0を書き込むことができ、次のフレームの間に読み出すことができる。ある画素が、直前のフレーム中においてアクティブ・タイルに属する場合、この画素に対応する背景値を更新しなくてよい。それ以外の場合、入力輝度信号および直前の背景値に応じて(1つ置きのフレーム/7つ置きのフレームのみ)、背景値を1だけ増分/減分することができる。
新静止物体検出では、VMD制御レジスタを通じてプログラムしたフレーム数にわたって背景を学習した後、モジュール1506は、VMD閾値レジスタを通じて設定したフレーム数よりも長い間静止状態のままとなっている新たな物体をいずれも検出することができる。静止物体RAM1506は、64×64画素タイル毎に、16ビット・カウンタを実施する。タイルが前景に属することが検出できた各フレームでは、1だけそのカウンタを増加させることができ、一方、そのタイルが背景に属すると見なされる場合ゼロにリセットすることができる。このように、新たな静止物体に属するタイルは、そのカウントが設定閾値に到達する。これが起こると、カウント値をもはや増加させることはなく、コンポーネントRAMにおける対応する位置に1を書き込めばよい。静止物体検出では、VMD制御レジスタにおけるビットを高に設定する必要がある。これによって、接続コンポーネント処理を可能にすることができ、4つまでの新たに検出した物体の周囲に矩形の境界線(境界ボックス)を生成することができる。検出された新たな静止物体(または複数の物体)は、VMD警報フラグを設定し(動き検出の場合と同じ)、イネーブルされると割り込みを発生する。
図16は、本発明の一実施形態による、接続コンポーネントのブロック図を示す。図16を参照すると、接続コンポーネントのブロック図は、接続コンポーネント状態マシン1600、フラグ・グループRAM1601、およびフラグ・グループ・カウントRAM1602を内包することができる。
動作において、接続コンポーネント状態マシン1600は、コンポーネントRAMモジュール1510とインターフェースすることができる。接続コンポーネント状態マシン1600は、6つの入力を接続コンポーネントRAMモジュール1510から受けることができる。接続コンポーネントRAMモジュール1510からの入力は、コンポーネントRAMリード・データ、コンポーネントRAMライト・データ、ロー・レディ(row ready)、新フレーム、フラグ・グループRAM1601、およびフラグ・グループ・カウント1602を備えることができる。フラグ・グループRAM1601およびフラグ・グループ・カウントRAM1602は、タイル16閾値モジュール1507、タイル64閾値モジュール1508、および/または画素/行/列カウンタ・モジュール1509(図15における)によって抽出された特定の特徴を収容することができる。接続コンポーネント状態マシン1600への入力には、物体の形状、色、および動きというような特徴を含むことができる。
接続コンポーネント状態マシン1600は、入来するデータを分析し、物体を別個のブロブに分類することができる。接続コンポーネント状態マシン1600は、物体を境界ボックス(bounding box) に入れることによって、これらの物体をブロブに分類することができる。接続コンポーネント状態マシン1600は、色、形状、および/または方向というような種々の特徴に基づいて、目標を絞り込むことができる。フラグ・グループRAM1601、フラグ・グループ・カウントRAM1602、および接続コンポーネント状態マシン1600のアーキテクチャ、機能、および動作については、本明細書において以下で更に詳細に論ずる。接続コンポーネント状態マシン1600からの出力は、警報発生モジュール1513および/またはスマート・ネットワーク・カメラ110の内部にあるその他のモジュールに供給することができる。これらの警報出力は、ネットワーク上にある他のスマート・ネットワーク・カメラ110に送信することもできる。接続コンポーネント・ブロックは、差分画像において別個の物体の縁端を検出する目的で、接続コンポーネント分析アルゴリズムを実施する。差分画像は、移動または新たな静止物体に起因して生成することができる。モジュールの動作は、これら2つの場合で同一とすることができる。設定した数の最大物体を検出することができる。
処理時間を短縮し、更にデータ格納の必要性を低減するために、最大分解能の差分画像を64×64画素タイルに分割することができる。したがって、最小検出物体の縁端は、1辺が64画素の正方形ボックスに等しくなればよい。尚、検出した物体が1画素程の大きさでもよい(タイル16およびタイル64閾値の設定による)ことは、注記してしかるべきである。VMD閾値レジスタを通じて、最小検出物体サイズの限度を、もっと大きな値に設定することも可能であるとよい。これによって、動き検出において小さな物体を表示すること、および新静止物体検出動作モードにおける新たな小さい静止物体による警報の発生を防止する。
図17は、本発明の一実施形態による、接続コンポーネントの動作の図を示す。図17を参照すると、接続コンポーネントは、リセット・フラグ・グループ・メモリ1700、リード・コンポーネントRAM1701、アクティブ・タイル・フラグ割り当てモジュール1702、フラグ・グループ・ソート・モジュール1703、リード・コンポーネントRAMモジュール1704、カウント・フラグ・グループ・タイル1704、カウント・フラグ・グループ・タイル1705、ソート・フラグ・グループ・カウント1706、リード・コンポーネントRAMモジュール1707、ボックス隣接四最大グループ捕獲モジュール1708、および隣接ボックス有効性指示モジュール1709を備えることができる。図17は、接続コンポーネント状態マシン1600モジュール、フラグ・グループRAM1601、およびフラグ・グループ・カウントRAM1602の関連部分を更に詳細に記述する。
動作において、リセット・フラグ・グループ・メモリ・モジュール1700は、新たなフレームを受けることができる。リセット・フラグ・グループ・メモリ・モジュール1700は、新たなフレームおよび/またはアクティブ・タイルを受ける毎に、フラグをリセットすることができる。リード・コンポーネントRAM1701は、アクティブ・タイルを抽出することができる。リード・コンポーネントRAM1701は、ロー・レディ信号を用いて、メモリの行にアドレスすることができる。アクティブ・タイル・フラグ割り当て1702は、入来するアクティブ・ファイルを、リード・コンポーネントRAM1701から読み出すことができる。アクティブ・タイル・フラグ割り当て1702モジュールは、次いで、物体を分類するためにアクティブ・タイルの新たなグループに対してフラグを割り当てることができる。フラグ・グループ・ソート・モジュール1703は、フラグ・グループをソートすることができる。同様の動作の第2レイヤを、リード・コンポーネントRAM1704、フラグ・グループ・タイル・カウント・モジュール1705、およびソート・フラグ・グループ・カウント1706によって実行することができる。即ち、コンポーネントRAM1704はアクティブ・タイルを抽出することができる。リード・カウント・フラグ・グループ・タイル・モジュール1705は、次いで、物体を分類するために、アクティブ・タイルの新たなグループにフラグを割り当てることができる。ソート・フラグ・グループカウント1706は、フラグ・グループをソートし、これらを分類することができる。この第2レイヤの処理によって、ノイズ・レベルの低減を可能にすることができる。
リード・コンポーネントRAM1704、カウント・フラグ・グループ・タイル1705、およびソート・フラグ・グループ・カウント1706は、集合的に、ノイズ・フィルタとして動作することができる。カウント・フラグ・グループ・タイル1705からの出力は、リード・コンポーネントRAM1704に供給することもできる。この出力は、履歴分析を目的とするフィードバックとしての役割を果たすことができる。即ち、このフィードバックによって、いずれかのタイルがカウント・フラグ・グループ・タイル・モジュール1705によって破棄された場合であっても、タイルの再編成を確保することができる。また、このフィードバックは、最後のアクティブ・タイルおよび/または一連のアクティブ・タイルのメモリとしての役割も果たすことができる。このフィードバックは、アクティブ・タイルが完全か否か、および/またはアクティブ・ファイルまたは一連のアクティブ・ファイル内に収容されている情報が物体を形成するか否かという判断において役に立つ。リード・コンポーネントRAM1707は、アクティブ・タイルを抽出することができる。ボックス隣接四最大グループ捕獲モジュール1708は、アクティブ・タイル内における4つの最も大きな物体を抽出する。別の実施形態では、モジュール1708は異なる数の物体を抽出することもできる。各チャネルは、ブロブ隣接ボックス情報を搬送する。境界ボックス有効性指示モジュール1709は、隣接するボックスの有効性を示すことができる。これに関して、隣接ボックス有効性指示モジュール1709は、あるブロブの隣接ボックスの座標が、近似対象領域内にあることを保証することができる。隣接ボックス有効性指示モジュール1709は、有効性指示信号を出力することができる。有効性指示信号は、物体周囲の線というような、境界を形成するために用いることができる。
接続コンポーネント・ブロックでは、コンポーネントの標識付けが必要となる場合もある。画像行列において接続コンポーネントを検出するために、状態マシン1600は、コンポーネントRAMからの64×64画素タイル全てのステータスを読み出し(1行ずつ順次)、8接続タイル近隣定義を用いて、アクティブ・タイルにフラグを割り当てる。
状態マシンアルゴリズムにおいて、最初の行について、最初に発見したアクティブ・タイルであれば、新たなフラグを割り当てる。後続のいずれのアクティブ・タイルについても、その行における直前のタイルもアクティブであれば、同じフラグを現アクティブ・タイルに割り当てる。それ以外の場合には、新たなフラグを割り当てる。言い換えると、行における最初のタイルおよび現在のタイルがアクティブであり得る場合、直上にあるタイル(直前の行のタイル)のステータスをチェックする。上のタイルがアクティブであり得るならば、タイル・フラグを現在のタイルに割り当てる。上のタイルがインアクティブであり得る場合、新たなフラグを現在のファイルに割り当てる。その行における最初のタイルではなく、現在のタイルがアクティブであり得るならば、直前の行における直前のタイル(現在のタイルの上にあるタイルの左側にあるタイル)のステータスをチェックする。そのタイルがアクティブであるならば、タイル・フラグを現在のタイルに割り当てる。それ以外の場合、現在のタイルの上にあるタイルをチェックする。4つの場合が可能であると考えられる。現在のタイルのみがアクティブである場合、新たなフラグを割り当てる。直前および現在のタイルがアクティブである場合、直前のタイル・フラグを割り当てる。上および現在のタイルがアクティブである場合、上のタイル・フラグを割り当てる。直前、上、および現在のタイルがアクティブあり得れる場合、直前のタイル・フラグを割り当てて、直前のタイルおよび上のタイルのフラグが等しいことを示す(双方のフラグのビット毎のORを、現フラグ・インデックスによって参照されるフラグ・グループRAMの位置に書き込むことによって)。フラグ・グループをソートするには、フレームの先頭において、フラグ・グループ位置の各々に、設定したビット位置によってコード化された別々のフラグを書き込むことができる。コンポーネント標識付けプロセスの間、一部のフラグを変更しておいて、他のフラグとの相等性(equality)を示すこともできる(フラグ毎に1ビットよりも多くセットする)。
等しいという印が付けられているフラグを発見するために、最初のフラグを基準フラグとして採用することができ、フラグ・グループRAMメモリを、次のフラグ位置から開始して、読み出すことができる。全非ゼロ・フラグと基準フラグとのANDを、ビット毎に取ることができる。その結果がゼロとは異なる場合、2つのフラグは等しいと考えられる。双方のフラグのビット毎のORを、現在のフラグ位置に書き込むことができ、参照フラグ位置にはリセットのための印を付けることができる。このリセットは、基準フラグを他の全てのフラグと突き合わせてチェックし終えたときに、実行することができる。その後、次のフラグを基準として採用し、残りのフラグと突き合わせてチェックすることができる。このプロセスは、最後から2番目のフラグを基準として用いるまで継続する。このプロセスの終了時には、フラグ・グループ・メモリは、全ての識別した別個のコンポーネント(物体)に対応する非ゼロ・フラグと、ゼロに等しいその他の全ての未使用フラグとを収容する。
フラグ・グループ・タイルを数えるには、コンポーネントRAMから読み出したフラグと、フラグ・グループRAMからの最初のフラグとのANDを、ビット毎に取ればよい。その結果がゼロに等しくない場合、現在のフラグに対応するフラグ・グループ・カウントRAMの位置を1だけ増分すればよい。それ以外の場合、カウントは不変のままにしておけばよい。このプロセスは、全てのフラグがフラグ・グループRAMから読み出されるまで継続する。その後、コンポーネントRAMから次のフラグを読み出すことができ、コンポーネント・メモリの終端に到達するまで、前述のステップを繰り返せばよい。この時点において、フラグ・グループ・カウントRAMは、別個の各物体における64×64画素タイルの数を収容している。フラグ・グループ・カウントをソートすることができ、最大フラグ・グループ・カウントの設定数を発見することができる。次いで、コンポーネントRAMから読み出すことによって、最も大きなフラグ・グループ・カウントに対する隣接ボックスを発見し、隣接ボックス・パラメータ(startX、endX、startY、endY)を求めることができる。最大隣接ボックス・パラメータを、最小隣接ボックス幅および高さと比較して、設定閾値を超過する隣接ボックスに対して有効信号を生成することができる。
図18は、本発明の一実施形態による、ダイナミック・レンジ圧縮のブロック図を示す。図18を参照すると、ダイナミック・レンジ圧縮器304は、シフト・レジスタ1800、加重平均フィルタ1801、プログラミング・レジスタ1802、画素[2、2]モジュール1803、参照テーブル1804、参照テーブル1805、乗算モジュール1806、利得選択モジュール1807、および利得選択モジュール1808を備えることができる。
動作において、ダイナミック・レンジ圧縮モジュール304は、非線形フィルタ特性による対数圧縮を実行することができる。ダイナミック・レンジ圧縮モジュール304のシフト・レジスタ1800は、輝度(Y)およびクロミナンス(CbCr)入力を、バイエル/YCbCr変換器302から受けることができる。シフト・レジスタ1800は、除算のような数学的演算を実行することができる。シフト・レジスタ1800は、入来するYおよびCbCr信号を、当該レジスタの中で指定された数値で除算することができる。この数値は、レジスタの中にプリセットすることができ、あるいはプログラム可能にすることもできる。画素[2、2]モジュールは、データ内部において2×2の枠を選択することができる。Xモジュール1806は、乗算のような数学的演算を実行することができる。シフト・レジスタ1800は、出力を利得選択モジュール1807に供給することもできる。利得選択モジュール1807は、入来信号の乗算および/または増幅を実行することができる。利得選択モジュール1807の出力は、利得選択モジュール1808に供給することができる。
また、シフト・レジスタ1800は、データを加重平均フィルタ1801に供給することができる。加重平均フィルタ1801は、乗算演算を実行することができ、その結果線形フィルタが得られる。加重平均フィルタ1801の出力は、参照テーブル・モジュール1804内部に収容されている参照テーブルと組み合わせることができる。参照テーブル・モジュール1804内部に格納されているテーブルは、フィルタ・パラメータを計算するために用いることができる。Xモジュール1806は、乗算のような数学的演算を実行することができる。Xモジュール1806は、画素[2、2]モジュール1803からの出力を、参照テーブル1804からの出力と乗算することができる。また、加重平均フィルタ1801からの出力は、参照テーブル・モジュール1805にも供給することができる。参照テーブル・モジュール1805は、除算のような数学的演算を実行することができる。参照テーブル・モジュール1805によって実行することができる除算の結果、データ圧縮を行うことができる。利得選択モジュール1807は、加重平均フィルタ1801、乗算器1806、および参照テーブル1805からデータを受けることができる。
利得選択モジュール1807は、除算または乗算というような数学的演算を実行することができる。利得選択モジュール1808は、加算演算を実行することができ、その結果、データ信号の強調(enhancement)および増幅が得られる。プログラミング・レジスタ1802は、加重平均フィルタ1801、利得選択モジュール1807、および利得選択モジュール1808をイネーブル、ディスエーブル、および/または制御するために用いることができる。また、プログラミング・レジスタ1802は、加重平均フィルタ1801、利得選択モジュール1807、および利得選択モジュール1808に特定の値をプログラムするために用いることもできる。ダイナミック・レンジ圧縮モジュール304内における前述の具体的なプロセスの結果、スマート・ネットワーク・カメラ110は輝度レベルが低い状況でも動作することが可能になることができる。ダイナミック・レンジの圧縮(DRC)では、クロミナンス・メディアン・フィルタ(chrominance the median filters)をイネーブルまたはディスエーブルすることができる。ディスエーブルすると、クロミナンスCbおよびCr信号を、無変化のまま、ダイナミック・レンジ圧縮ブロックを通過させることができ、または白黒写真に合わせてこれらを一定値に設定することもできる。
DRCは、低レベル照明条件(暗視モード)の場合に、輝度値のレベル・シフトを行う。このモードは、フレーム・ヒストグラムにおける支配的に低いレベルの画素値を検出したときに、カメラのソフトウェアによって活性化することができる。圧縮によって、モジュール入力(48dBのダイナミック・レンジ)上における0から255までのレベル値を、8から255までの、これよりも少ない数のレベル値(30dBのダイナミック・レンジ)で表すことができるようになる。これは、モジュール出力上における8ビット値の内上位5ビットによって表される8ビット入力値に対応する。すると、ダイナミック・レンジを1.6倍(48/30)に圧縮することができる。圧縮比が高い程、モジュール出力上におけるノイズ・レベルも高くなる。この実施態様は、輝度チャネルに対して3×3加重平均フィルタに基づくことができる。次いで、3つのシフト・レジスタから成る一組を用いて、フィルタ枠を得ることができる。フィルタ・マスクおよび重み行列における画素の畳み込みの結果が、画素値とその対応する重みの乗算結果の和として求めることができる。
画素重みマスク乗算器は、二進乗算器として実装することができ、この場合、乗算は0および2Nで行うことができる。ここで、N=0、1、2、または3である。フィルタの重みは、0、1、2、4、または8の値を取ることができる。フィルタの重みの値は、DRCパラメータ・レジスタを通じてプログラム可能にするとよい。加重平均フィルタの応答は、プログラムされた重みの和に応じた値で、畳み込みを除算することによって求めることができる。実施の簡素さが重要である場合、除算は、8、16、32、または64による除算に限定することもできる。畳み込み除算値(convolution divider value)は、DRCパラメータ・レジスタを通じてプログラム可能にするとよい。第1出力輝度値は、フィルタの基準画素値を、第1参照テーブルからの値と乗算することによって求めることができる、ここで、フィルタの応答をテーブルのアドレスとして用いることができる。基準画素値との乗算の結果は、0dB出力利得を得るためには32で除算すればよく、他の利得設定値を得るためには他の各値で除算すればよい。同様に、第2参照テーブルは、輝度圧縮値を収容しており、スムージング・フィルタの応答によってアドレスすることができ、ダイナミック・レンジを圧縮した第2輝度出力が得られる。出力データ・セレクタは、輝度信号およびクロミナンス信号を選択することができ、これらは、更なる処理のために、SoCの他の部分に受け渡すことができる。
図19は、本発明の一実施形態による、ビデオ・コンテンツ・メタデータ送信についての流れ図を示す。図19を参照すると、このフローチャートは、再構成可能スマート・ネットワーク・カメラSoC104がビデオ・メタデータを生成し、圧縮ビデオ・ストリームをイーサネットまたはその他の高速ディジタル・ネットワークに送る前に、このストリームのヘッダまたはXML部上にメタデータを埋め込むまたは添付することができるプロセスの一例を示す。また、ビデオ・メタデータは、別の動作モードでは、そのそれぞれの処理済みビデオなしで送ることもできる。図1Aおよび図19を参照すると、1900において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ情報を画像センサ100から受けることができる。1901において、再構成可能スマート・ネットワーク・カメラSoC104は画像および色処理を実行することができる。1902において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ・モーション検出および/またはヒストグラム分析を実行して、ビデオ・メタデータを生成することができる。1903において、再構成可能スマート・ネットワーク・カメラSoC104は、処理したビデオを送信することを選択してもしなくてもよい。
1907において、再構成可能スマート・ネットワーク・カメラSoC104が、処理済みビデオを送信しないことを選択した場合、再構成可能スマート・ネットワーク・カメラSoC104は、処理済みビデオに対応するビデオ・メタデータのみを、イーサネットを通じて送信することができる。本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラは、ワイヤレス・ネットワークのような、他のいずれの送信手段を通じてでも、ビデオ・メタデータを送信することができる。1904において、再構成可能スマート・ネットワーク・カメラSoC104が処理済みビデオを送信することを選択した場合、再構成可能スマート・ネットワーク・カメラSoC104は圧縮ビデオの圧縮を行うことができる。1905において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ・メタデータを圧縮したファイルのヘッダに埋め込むまたは添付することができる。1906において、再構成可能スマート・ネットワーク・カメラSoC104は、圧縮ビデオ・ファイルを、埋め込んだまたは添付したビデオ・メタデータと共に、イーサネット上でまたはワイヤレス接続を通じて送信することができる。
図20は、本発明の一実施形態による、ビデオおよび位置コンテンツ・メタデータ送信についての流れ図を示す。図20を参照すると、このフローチャートは、再構成可能スマート・ネットワーク・カメラSoC104がビデオ・メタデータおよび/または位置メタデータを生成し、圧縮ビデオ・ストリームをイーサネットまたはその他の高速ディジタル・ネットワークに送る前に、このストリームのヘッダまたはXML部上にメタデータを埋め込むまたは添付することができるプロセスの一例を示す。本明細書の以下で更に詳しく説明するが、ビデオ・メタデータおよび/または位置メタデータは、別の動作モードでは、そのそれぞれの処理済みビデオなしで送ることもできる。
図1Bおよび20を参照すると、2001において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ情報を画像センサ100から、そして位置情報をGPS受信部108から受けることができる。2002において、再構成可能スマート・ネットワーク・カメラSoC104は画像および色処理を実行することができる。2003において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ・モーション検出および/またはヒストグラム分析を実行して、ビデオ・メタデータを生成することができる。2004において、再構成可能スマート・ネットワーク・カメラSoC104は、GPS情報を処理して、位置メタデータを生成することができる。2005において、再構成可能スマート・ネットワーク・カメラSoC104が、処理したビデオを送信するか否か決定することができる。2009において、再構成可能スマート・ネットワーク・カメラSoC104が、処理済みビデオを送信しないことを選択した場合、再構成可能スマート・ネットワーク・カメラSoC104は、処理済みビデオに対応するビデオ・メタデータおよび/または位置メタデータのみを、イーサネットを通じて送信することができる。本発明の別の実施形態では、再構成可能スマート・ネットワーク・カメラは、ワイヤレス・ネットワークのような、他のいずれの送信手段を通じてでも、ビデオ・メタデータを送信することができる。2006において、再構成可能スマート・ネットワーク・カメラSoC104が処理済みビデオを送信することを選択した場合、再構成可能スマート・ネットワーク・カメラSoC104は圧縮ビデオの圧縮を行うことができる。2007において、再構成可能スマート・ネットワーク・カメラSoC104はビデオ・メタデータおよび/または位置メタデータを圧縮したファイルのヘッダに埋め込むまたは添付することができる。2008において、再構成可能スマート・ネットワーク・カメラSoC104は、圧縮ビデオ・ファイルを、埋め込んだあるいは添付したビデオ・メタデータおよび/または位置メタデータと共に、イーサネットを通じて送信することができる。
以上のように、本発明の態様は、ハードウェア、ソフトウェア、ファームウェア、またはその組み合わせで実現することができる。本発明は、少なくとも1つのコンピュータ・システムの中に集中的に実現すること、または分散的に実現して、数カ所の相互接続したコンピュータ・システムに跨って異なるエレメントを点在することができる。本明細書に記載した方法を実行するように構成されているのであれば、いずれの種類のコンピュータ・システムまたはその他の装置でも適性を有することができる。ハードウェア、ソフトウェア、およびファームウェアの典型的な組み合わせは、コンピュータ・プログラムを有する汎用コンピュータ・システムとすることができ、このコンピュータ・プログラムをロードして実行すると、コンピュータ・システムが、本明細書に記載した方法を実行するように、このコンピュータ・システムを制御する。
本発明の一実施形態は、ボード・レベルの製品として、単一チップ、特定用途集積回路(ASIC)として実装することができ、あるいは単一チップ上に様々なレベルを統合し、システムの他の部分を別個のコンポーネントとすることができる。本システムの統合の度合いは、主に、速度およびコストの考慮によって決定することができる。最新のプロセッサは精巧であるため、市販のプロセッサを利用することも可能な場合があり、本システムのASIC実施態様に対して外部にこの市販のプロセッサを実装することもできる。あるいは、プロセッサがASICコアまたはロジック・ブロックとして利用可能である場合、市販のプロセッサをASICデバイスの一部として実装し、種々の機能をファームウェアとして実装することができる。
また、本発明は、コンピュータ・プログラム製品の中に埋め込むこともでき、このコンピュータ・プログラム製品は、本明細書に記載した方法の実施を可能にする全ての機構(feature)を備えており、コンピュータ・システムにロードしたときに、これらの方法を実行することができるとよい。この文脈におけるコンピュータ・プログラムは、例えば、情報処理能力を有するシステムに、特定の機能を直接的にあるいは、a)別の言語、コード、または表記への変換、b)異なる材料形態での再生産のいずれかまたは双方の後に実行させることを意図した命令の集合体の、あらゆる言語、コード、または表記によるあらゆる表現をも意味することができる。しかしながら、当業者の理解の範囲内におけるコンピュータ・プログラムの別の意味も、本発明は想定するものとする。
以上、ある種の実施形態を参照しながら本発明について説明したが、本発明の範囲から逸脱することなく種々の変更を行うことができること、そして同等物で置換できることは、当業者には言うまでもないであろう。加えて、本発明の範囲から逸脱することなく、本発明の教示には特定の状況または材料を適応させるための多くの修正を行うことができる。したがって、本発明は、開示した特定的な実施形態に限定されず、本発明は、添付した請求項の範囲に該当する全ての実施形態を含むことを意図することとする。