説明

ディジタルビデオデータを処理するための繰り返し使用可能なフロントエンドを有するモジュラアーキテクチャ

【課題】種々の応用を可能とするビデオ処理アーキテクチャを提供する。
【解決手段】命令を受信するためにプログラム可能なインタフェースを有するビデオフロントエンド(VFE)と、VFEは命令に従ってビデオ出力データを生成するために、ビデオ入力データを取得しそしてそのビデオ入力データを前処理し、VFEのビデオ出力データから、符号化されたビデオデータのシーケンスを発生するためのビデオバックエンド(VBE)と、ビデオ入力データの前処理を制御するために、インタフェースを経由してVFEに命令を与えるための制御器とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ディジタルビデオデータを処理するための技術に関する。
【背景技術】
【0002】
計算機処理能力および余力の最近の増加に伴い、フルモーションディジタルビデオデバイスがより広く利用可能になって来ている。とくに、ディジタルビデオ能力は、ディジタルテレビジョン、ディジタル直接放送システム(digital direct broadcast systems)、無線通信デバイス、可搬形ディジタルアシスタント(PDA:portable digital assistant)、ラップトップ計算機、およびデスクトップ計算機を含む広範囲のデバイスに組み込まれて来ている。これらのデバイスは従来のアナログビデオシステムに勝ってフルモーションビデオシーケンスを作成し、修正し、送信し、記憶し、そして再生するにあたって、意味を持った改善を与えることが可能である。
【0003】
ディジタルビデオ能力を統合するために、これらのデバイスはしばしば種々のカムコーダ(camcorder)あるいはカメラ応用をサポートする。たとえば、これらのデバイスは典型的には、ディジタルビューファインダあるいは他のディスプレー、ビデオデータ取得(capture)のための画像センサ、および種々のビデオ圧縮標準あるいは処理の一つあるいはそれ以上に従って、ディジタルビデオデータを圧縮しそして圧縮解除(decompression)すると同様に、特化された画像処理操作を実行するための画像処理機能を含む。これらのディジタルビデオ能力を与えることはしばしば、特化されたハードウエア、ソフトウエア、あるいは両者の意味のある量を必要とする。
【発明の概要】
【0004】
一般的に、本開示は、ディジタルビデオデータを符号化しあるいは復号する等の、ディジタルビデオデータの処理に対する技術を記述する。符号化器、復号器、あるいは符号化器/復号器(CODEC;コーデック)等のデバイスは、その中で機能がビデオフロントエンド(VFE)およびビデオバックエンド(VBE)間に分配される革新的なアーキテクチャを含む。VFEは、種々の応用をサポートするために機能および画像操作を集約し、そして、それによって外部の主デバイスがこれらの操作を容易に制御することが可能な柔軟性のある処理装置間インタフェース(inter-rocessor interface)を与える。
【0005】
この分配はVBEを、カメラインタフェースハードウエアと直接にインタフェースし、色変換およびビューファインダを駆動するために必要な他の画像処理機能を実行する等の、種々の実行に固有の機能あるいは操作から隔離する。したがって、この中に記述される技術は、ディジタルビデオの能力を新しいデバイスの中に統合することを容易にする分散されたビデオシステムを与えることを可能とする。VFEは、ビデオデータ能力を新しい製品あるいはデバイスの中に容易に統合するために、任意の必要とされる画像センサ、ディスプレー、およびバックエンドソフトウエアあるいはファームウエア、あるいはそれらの組み合わせを有する異なった応用に容易に繰り返し使用されることが可能である。
【0006】
一つの実施例においては、システムは命令を受信するためにプログラム可能なインタフェースを有するビデオフロントエンド(VFE)を含み、ここでVFEは命令に従ってビデオ出力データを生成するためにビデオ入力データを取得し、そしてそのビデオ入力データを前処理する。システムはさらにVFEのビデオ出力データからビデオデータに関する符号化されたシーケンスを発生するためのビデオバックエンド、およびビデオ入力データに関する望ましい前処理を制御するためにインタフェースを経由してVFEに命令を与えるための制御器を含む。
【0007】
他の実施例においては、デバイスはデバイスによって与えられた動作環境の中で実行するビデオフロントエンド(VFE)を含み、そして外部デバイスから命令を受信するためのプログラム可能なインタフェースを含む。VFEは、ビデオバックエンドによる符号化のためのビデオ出力データおよび、表示デバイスによる表示のためのビデオ表示データを生成するために、命令に従ってビデオ入力データを取得しそして、ビデオ入力データを前処理する。
【0008】
他の実施例においては、デバイスは、主デバイスからプログラム的に命令を受信するための手段、およびその命令に従ってビデオ出力データおよびビデオ表示データを生成するためにビデオ入力データを取得しそして前処理をするための手段を含む。デバイスはさらにビデオ出力データからビデオデータの符号化されたシーケンスを発生するための手段を含む。
【0009】
他の実施例においては、方法は、主デバイスから処理装置間インタフェースを経由して命令をプログラム的に受信し、そして第1の画像フォーマット内にビデオ出力データを、そして第2の画像フォーマット内にビデオ表示データを生成するために、その命令に従って従属デバイスを経由してビデオ入力データを取得しそして前処理することを含む。方法はさらに、ビデオデータの符号化されたシーケンスを発生するためにビデオ出力データを符号化器に通信し、そして表示のためにビデオ表示データを出力デバイスに通信することを含む。
【0010】
1個あるいはそれ以上の実施例に関する詳細は、添付されている図面および以下の記述の中に示される。他の特徴、目的および利点は記述および図面から、そして請求項から明白となろう。
【図面の簡単な説明】
【0011】
【図1】図1は、ビデオフロントエンド(VFE)およびビデオバックエンド(VBE)間に分配されたビデオ符号化器/復号器(コーデック)と合体している例となるディジタルビデオデバイスを示すブロック線図である。
【図2】図2は、図1のVFEの例となる実施例をさらに詳細に示すブロック線図である。
【図3】図3は、例となるVFEの動作をさらに詳細に示す状態線図である。
【図4】図4は、ディジタルビデオデバイスの例となる動作を示すフローチャートである。
【詳細な説明】
【0012】
図1は、ビデオフロントエンド(VFE)14およびビデオバックエンド(VBE)16の間に分配されているビデオ符号化器/復号器(コーデック)12と合体している、例となるディジタルビデオデバイス10を示すブロック線図である。デバイス10はビデオデータの符号化されたシーケンスを受信デバイス(図示せず)に対して送信するソースデバイスとして動作することが可能である。同様に、デバイス10は、ビデオデータを受信しそして復号することが可能な受信デバイスとして動作することが可能である。例となるデバイスは、計算機ネットワーク上に置かれたサーバ、ワークステーションあるいは他のデスクトップ計算デバイス、およびラップトップ計算機、パーソナルディジタルアシスタント(PDA)、無線通信デバイス等の移動計算デバイスを含む。他の例は、ディジタルテレビジョン放送衛星、ディジタルテレビジョン、ディジタルビデオカメラあるいは他の記録デバイス、ディジタルビデオ電話、無線ビデオデバイス等を含む。
【0013】
例示の目的のために、ディジタルビデオデバイス10はセルラ電話等の無線デバイスとして示される。しかしながらこの中に記述された技術は無線デバイスに限定されず、そして他のディジタルビデオデバイスに容易に適用することが可能である。さらに、コーデックに関連して示されたが、この開示はそのように限定はされず、そして容易に符号化器および復号器に適用することが可能である。
【0014】
制御器24は、VFE14を含むコーデック12のコンポーネント上に基本的な制御を与え、そしてディジタルビデオデバイス10の他のコンポーネントとの通信を調整する。制御器24は、コーデック12にディジタルビデオシーケンスを符号化しそして復号するために必要とされる計算的に強力な作業の多くを実行することを命令する。コーデック12は、ディジタル信号処理装置(DSP)の形態をとることが可能であり、そして命令およびデータを記憶するための専用化されたメモリ41を有することが可能である。代わりに、あるいはさらにコーデック12は、専用化されたハードウエア、ソフトウエア、ファームウエア、あるいはそれらの組み合わせを含むことが可能である。同様に、制御器24は、組み込まれたマイクロ処理装置、専用化されたハードウエア、ソフトウエア、たとえば制御ソフトウエアモジュールあるいはそれらの組み合わせの形態をとることが可能である。さらに、コーデック12および制御器24は、デバイス10の他のコンポーネントと同様に、1個あるいはそれ以上の特定用途向け集積回路(ASIC)の中に、複数の個別コンポーネント、あるいはそれらの組み合わせとして実現されることが可能である。
【0015】
ディジタルビデオデバイス10はまた、ディスプレーあるいはビューファインダ17および画像センサ23等のいくつかの異なった周辺を含む。制御器24の指示の下に、コーデック12は画像センサ23からビデオ入力データ30(VID)を取得し、そしてそのビデオ入力データをVFE14に通信する。カメラインタフェース22は、画像センサ23のインタフェース詳細を要約する任務を有する。たとえば、VFE14からの制御および構成データ27に応じてカメラインタフェース22は、画像センサ23から受信されたデータ内の水平および垂直基準信号を同期させる。カメラインタフェース22はまた、ピクセルをマスキングすることによる等のビデオデータを処理するための限定された機能を含むことが可能である。
【0016】
一般的に、コーデック12のVFE14は、種々のカメラあるいはカムコーダ応用をサポートするために、機能および前処理操作を集約し、そしてこれらの操作を制御するための柔軟性を有する処理装置間インタフェースを含む。VFE14の基本的な作業は、到来するビデオ入力データ30をリアルタイムで処理することである。VFE14は、ビデオ入力データ30を受信し、そして制御器24から受信した命令および構成パラメータ25に基づいてVBE16に対して受け入れ可能なフォーマットにビデオ出力データ(VOD)35を生成するためにデータを処理する。さらにVFE14は、ビデオ表示データ(VDD)37をVDDを表示するための任意の出力デバイスたとえば、カムコーダあるいは移動電話スクリーンのための液晶ディスプレー(LCD)を含むことが可能なビューファインダ17によって表示するのに対して適切な形態で生成するために、ビデオ入力データ30をフォーマットする。VFE14は、ビデオメモリ15の中にVBE16および制御器24それぞれによるアクセスのために、ビデオ出力データ35およびビデオ表示データ37を記憶する。VFE14は、懸案になっている(pending)命令の状態を表示するために処理装置間インタフェースを経由して状態情報26を与える。
【0017】
VFE14は、ビデオ入力データ30上で、カラービデオフレームを黒白フォーマット(black-and-white format)に変換し、データのコントラストあるいは輝度特性を変更し、取得されたデータに対する照明条件(lighting condition)をディジタル的に高めあるいは変更し、ディジタルズーム操作、画像センサ処理および補償、たとえば白色バランス、自動利得調整、およびガンマ補正を実行し、そしてハロー(halo)、日没、スター濾波(star filter)、あるいは他の濾波効果をシミュレートするために取得されたビデオデータを変更する等の複雑な画像処理操作を実行することが可能である。さらに、VFE14は、取得されたビデオ入力データ30のフレーム率あるいは画像サイズを減少することが可能である。
【0018】
以下にさらに詳細に記述されるように、VFE14は、制御器24がVFE14を容易に制御しそして再構成することを可能とする処理装置間アプリケーションプログラミングインタフェース(API:application-programming interface)を与える。APIは、VFE14が制御器24に従属して動作することを可能とする処理装置間インタフェースを与える。
【0019】
VBE16は、ビデオデータを符号化し、あるいは復号する任意のソフトウエア応用、ハードウエアユニット等を含むことが可能である。より特定的には、VBE16は、ビデオシーケンスの符号化されたビットストリームを発生するためにビデオ出力データ35を利用することが可能である。符号化器として動作する場合にはVBE16はビデオ出力データ35を符号化し、そして符号化されたビットストリームをビデオメモリ15内にたとえば、送信機/受信機18およびアンテナ19を経由しての無線伝送に対してバッファすることが可能である。たとえば、VBE16は、ディジタルカメラに対するJPEG静止画像符号化器、ディジタルカムコーダに対するMPEGビデオ符号化器等を含むことが可能である。VBEはその結果専用の符号化器、復号器であることが可能であり、あるいは、動画像符号化専門家会合(MPEG)による、MPEG−1、MPEG−2、あるいはMPEG−4、Apple Computer of Cupertino CaliforniaによるQuickTimeTM、 Microsoft Corporation of Redmond、Washingtonによって開発されたVideo for Windows(登録商標)、Intel Corporationによって開発されたIndeo(登録商標)、Seattle WashingtonのRealNetworks、IncからのRealVideo(登録商標)、およびSuperMac Incにより開発されたCinepak(登録商標)、H.263、H.264、JPEG2000等の種々のデータ圧縮標準の一つあるいはそれ以上に従ってビデオ出力データ35を処理することが可能である。
【0020】
代わりに、あるいはさらに、VBE16は復号器として動作することが可能である。より特定的には、VBE16は、受信機/送信機18からの符号化されたビデオシーケンスのビットストリームを受信し、そしてそのビットストリームをVFE14による処理および表示のために復号されたビデオシーケンスを生成するために処理することが可能である。VFE14およびVBE16は、ビデオ処理操作を起こすために制御信号28を交換することが可能である。たとえば、制御器24あるいはVFE14は、VBE16によって符号化操作を起こすことが可能である。復号器として動作する場合には、制御器24あるいはVBE16はVFE14によって操作を起こすことが可能である。VFE14およびVBE16は、単独型ハードウエア、あるいはたとえばDSPによる実行のためのソフトウエアモジュール等のソフトウエアモジュールあるいはそれらの組み合わせとして与えられることが可能である。
【0021】
メモリ21、41は、それぞれ制御器24およびコーデック12による使用のための命令およびデータを記憶する。分離したメモリとして示されたが、メモリ21、41は共通のメモリデバイスであることが可能である。メモリ21、41は読み出し専用メモリ(ROM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、非揮発性スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)等を含むことが可能である。ビデオメモリ24は、ビデオダイナミックメモリアクセス(VDMA:Video Dynamic Memory Access)の形態をとることが可能である。示されたように、メモリ15、21はコーデック12の外にあり、そして制御器24に結合されることが可能である。
【0022】
記述されたようにコーデック12の機能をVFE14およびVBE16に分配することは、VBE16が、カメラインタフェースハードウエア22と直接にインタフェースし、色変換およびビューファインダ17を駆動するために必要な他の画像処理機能、あるいは他の実行固有の(implementation-specific)操作を実行する等の、種々の実行固有の機能を実行しなければならないことから隔離する。したがって、VFE14は、実行固有の画像処理機能を実行するとして見られることが可能であり、一方VBE16は実行から独立した(implementation-independent)画像処理機能を実行することが可能である。
【0023】
さらに、分配することは、新しいデバイス内におけるディジタルビデオ能力の統合を容易にするために増加された柔軟性を与える。たとえば、VFE14、およびVBE16間の機能的分配は、分散されたビデオシステムをもたらし、そして設計者が、ビデオデータ能力を新しい製品あるいはデバイスに統合するために、VFE14を任意のバックエンドソフトウエア、あるいはファームウエア、あるいはそれらの組み合わせとともに容易に繰り返し使用することを可能とする。このように新しいビデオ圧縮標準はVFE14を新しいVBE16と結合することによって容易にサポートされることが可能である。換言すれば、設計者は、VFE14を共通モジュールとして、任意の必要とされる異なったVBEあるいは他のアプリケーションソフトウエア、あるいはファームウエアとともに、たとえ専用のVBEでさえも、新しいデバイスの中にディジタルビデオ能力を統合するために、繰り返し使用することが可能である。さらに、VFE14の柔軟性および構成可能性は、VFEが異なった画像センサおよび表示デバイスとともに容易に使用されることを可能とする。したがって、VFE14は、複数のデバイスの中に僅かの変化あるいは変化なしに容易に繰り返し使用されそして組み込まれることが可能であり、そしてJPEGをもとにした静止ディジタルカメラ、あるいはMPEGを基にしたビデオキャプチャおよび通信とを統合したセルラ電話等の、新しいデバイスの設計および生産を容易にすることが可能である。
【0024】
図2は、VFE14(図1)のさらに詳細な例となる実施例を示すブロック線図である。示されたように、VFE14は、いくつかの機能モジュール30A〜30F、および、それによって制御器24がプログラム的にモジュールを構成する共通のアプリケーションプログラミングインタフェース(API)32を含むことが可能である。モジュール30の多く、すなわちモジュール30B〜30Fは、ともにVBE16による符号化のためにビデオデータを前処理するために、そしてVBE16によって生成された復号されたビデオシーケンスを後処理するために使用されることが可能である。このようにして、モジュール30は、種々のアプリケーション内において使用されることが可能である。モジュール30は、ソフトウエアモジュールとしてコーデック12によって、たとえばDSP上に与えられる動作環境における実行のために実現される。しかしながら、モジュール30はハードウエア、ファームウエア、ソフトウエア、あるいはそれらの組み合わせの中に実現されることが可能である。
【0025】
カメラドライバ30Aは、カメラインタフェースハードウエア22と直接にインタフェースし、そして画像センサ32からの1個あるいはそれ以上のビデオフレームを取得するためにハードウエアをプログラムする。とくに、カメラドライバ30Aは、命令27を発行し、そして対応してビデオ入力データ30を受信する。
【0026】
たとえば、カメラドライバ30Aは、ビデオ取得を開始しそして停止するためにカメラインタフェースハードウエア22をプログラム的に構成する。さらに、カメラドライバ30Aは、画像フレームディメンションをたとえば、フレームあたりのライン、およびラインあたりのピクセルを、そしてデータ収集のための画像ウインドウ、データフォーマットたとえば小さいあるいは大きいエンディアン(Endian)を定義する。さらに、カメラドライバ30Aは、画像サイズおよびフレーム率を減少するために、カメラインタフェースハードウエア22が空間領域および時間領域に沿った初期サブサンプリングを実行することを指示するための命令27を発行する。
【0027】
カメラドライバ30Aは、ビデオ入力データ30を処理し、そして処理されたデータをVBE16によるバックエンド処理のために標準形式でビデオメモリ15(図1)に記憶する。カメラドライバ30Aは、たとえば、画像をYCbCr(輝度-色差)4:2:2フォーマットで記憶する。そしてそれは、画像データに対する色差値は水平方向においてのみサブサンプルされることを意味する。たとえば、カメラドライバ30は、サイズ352×288ピクセルのカラー画像あるいはフレームを、輝度データは352×288に留まりしかし色差値は、176×288ピクセルのサイズにサブサンプルされる、フレームを生成するために処理することが可能である。
【0028】
フレーム率制御モジュール30Bは、画像センサ23によって取得されそしてカメラインタフェース22によって生成されたビデオデータの、すなわちビデオ入力データ30のシーケンスを望ましいフレーム率にダウンサンプルあるいはアップサンプルするための機能を与える。フレーム率制御モジュール30Bは、VFE14に広範囲の応用における使用に対する柔軟性を与えて、たとえば、ビデオ入力データ30の到来ビデオフレームを分数あるいは整数の割合だけ、ダウンサンプルあるいはアップサンプルすることが可能である。
【0029】
画像処理モジュール30Cは、制御器24が到来ビデオ入力データ30に対してフレームごとに画像処理を行う機能をプログラム的に選択し、そして適用することを可能とする。たとえば、制御器24は、カラービデオフレームを黒白フォーマットへの変換、データのコントラストあるいは輝度特性の変更、取得されたデータに対する照明条件をディジタル的に高めあるいは変更すること、ディジタルズーム動作、画像センサ処理および補償たとえば白色バランス、自動利得制御、およびガンマ補正の実行、そして取得されたビデオデータの、ハロー、日没、スター濾波あるいは他の濾波効果をシミュレートするための変更、等の機能を選択するためにAPI32を経由して命令を発行することが可能である。画像処理モジュール30Cは、これらの機能をVBE16による符号化のために、ビデオ入力データ30を前処理するために、あるいはVBE16により生成された復号されたビデオシーケンスを後処理するために、適用することが可能である。たとえば、画像処理モジュール30Cはこれらの機能を、受信されたビデオビットストリームからVBE16によって生成された復号されたビデオシーケンスを高めるために適用することが可能である。
【0030】
画像サイズ制御モジュール30Eは、画像サイズを望ましい画像サイズにダウンサンプルあるいはアップサンプルする機能を与える。さらに、画像サイズ制御モジュール30Eは、画像サイズをダウンサンプルしそしてアスペクト比を維持し、あるいは異なった望ましいアスペクト比を得ることが可能である。たとえば、640×480の解像度を有するVGE画像は、解像度352×288を有するCIFフォーマットにサブサンプルされることが可能である。画像サイズ制御モジュール30Eは、たとえば、VFE14に広範囲の応用における使用のための柔軟性を与えて、ビデオ入力データ30の画像サイズを分数のあるいは整数の割合だけダウンサンプルすることが可能である。
【0031】
ビューファインダドライバ30Dは、ビューファインダ17をビデオ表示データ35で駆動するための機能を与える。ビューファインダ17は、ビデオ表示データ35をビデオ入力データ30あるいはビデオ出力データ35のフォーマットから、意味を持って異なるフォーマットで要求することが可能である。たとえば、ビューファインダ17は、ビデオ表示データ35を異なったフレーム率あるいは画像サイズで要求することが可能である。ビューファインダドライバ30Dは、ビデオ入力データ30を処理し、そしてビューファインダ17による表示に対して適切な形態でビデオ表示データ35を生成するために、フレーム率制御モジュール30Cおよび画像サイズ制御モジュール30Eを使用することが可能である。
【0032】
色変換モジュール30Fはビデオ入力データ30を異なった色空間(color space)たとえば、色画像データを与えるための異なったフォーマットに変換するための機能を与える。たとえば、色変換モジュール30Fは、VBE16による使用に対するYCbCr(輝度-色差)4:2:2フォーマットのビデオ出力データ35を生成するためにビデオ入力データ30を処理することが可能である。さらに色変換モジュールはまた、ビデオ入力データ30をビューファインダ17による表示に対するRGBフォーマットで、ビデオ表示データ35を生成するために処理することが可能である。さらに色変換モジュールは、生成されたフォーマットの色深さ(color depth)をたとえば16ビット、18ビット、および24ビット深さに制御することが可能である。
【0033】
制御器24は、API32に従って命令を発行することによってVFE14のモジュール30をプログラム的に構成しそして相互に影響しあう。一つの実施例においては、API32は、つぎの命令をサポートする。
【0034】
CONFIG−CONFIG命令はVFE14をプログラムするために使用され、そして制御器24がモジュール30の機能を制御するための広範囲のパラメータを定義することを可能とする。
【0035】
CAPTURE−CAPTURE命令は、取得およびVFE14を経由してビデオ入力データ30の処理を開始する。
【0036】
IDLE−IDLE命令は、VFE30にビデオ入力データ30の取得を停止することを指示する。
【0037】
上の命令を発行するために、制御器24は記憶のためにコーデック12の中に命令を書き込むことが可能である。より特定的には、コーデック12は、懸案になっている命令を保持するための命令(CMD)レジスタ37、および命令と組み合わせられた任意のパラメータを保持するための命令(CMD)バッファ36を含むことが可能である。命令および組み合わせられたパラメータを命令レジスタ37および命令バッファ36に書き込む場合は、丁寧に制御器24は、命令が懸案になっていることを示すためにVFE14に割り込み(interrupt)を発行する。一つの例となる実施例においては、命令レジスタ37は、発行されている特定の命令に対する命令ヘッダを記憶するための1個の32ビットバッファを含む。命令バッファ36は、23個の32ビット語を記憶することが可能なサイズを有するバッファを含む。
【0038】
VFE12は、たとえば、命令は完了されているか否か、あるいは違法の命令が見出されていないか否か等の、懸案になっている命令に関する状態を示すために、メッセージ(MSG)レジスタ38を利用する。VFE12は、メッセージレジスタ38内の新しい状態情報の利用可能性を示すために、制御器24に割り込みを発行する。制御器24は、次の命令を発行するに先立って前の命令が完全に処理されているかを確認するためにメッセージレジスタ38にアクセスする。
【0039】
一つの実施例においては、メッセージレジスタ38は次のように8個の32ビット語の中に状態メッセージを記憶する。
【表1】

【0040】
一つの実施例においては、CONFIG命令は、制御器24がデバイス10によって必要とされるビデオ能力をサポートするために必要であるとして、VFE14を容易にプログラム的に構成することを可能とする広範なパラメータリストを含む。より特定的には、制御器24は、次の表に示されるように命令バッファ36に23語のパラメータリストを書き込む。
【表2−1】

【表2−2】

【0041】
図3は、VFE14の例となる動作をさらに詳細に示す状態線図である。この例においては、ステートマシン60は3個の状態すなわち、INIT(初期)状態62、IDLE(休止)状態64、およびCAPTURE(取得)状態66を含む。
【0042】
最初の電源投入(power-up)あるいはハードウエアリセットの場合は、VFE14はINIT状態62に入る。この状態を出るためにVFE14に対しては、制御器24は、上に記述されたようにプログラム的にVFE14を構成するためにCONFIG命令を発行しなければならない。CONFIG命令を受信する場合は、VFE14はIDLE状態64に移行する。
【0043】
IDLE状態64の中で、VFE14は、誤りの発生なしに制御器24からすべての3個の可能な命令、すなわちCONFIG命令、CAPTURE命令、およびIDLE命令を受領する。制御器24は、たとえばVFE14を再プログラムするためにCONFIG命令を発行することが可能である。CONFIG命令を受信しそして処理する場合は、VFE14はIDLE状態64に復帰する。IDLE命令は、VFE14がすでにIDLE状態64の中で操作しているとして本質的に無視される。
【0044】
CAPTURE命令を受信する場合は、VFE14はCAPTURE状態66に移行し、そして最も最近のCONFIG命令によってプログラムされたパラメータを実行する。CAPTURE状態66にいる期間中にVFE14はカメラインタフェースハードウエア22を起動し、そしてビデオ入力データ30の受信および処理を開始する。
【0045】
最初に、VFE14はスナップショットモードが可能にされているか否かを決定するためにCAPTURE命令と組み合わせられたパラメータを調査する。もしもスナップショットモードが可能にされている場合は、VFE14はビデオ入力データ30の1個のビデオフレームを取得し、そしてフレームを取得すると直ちにIDLE状態64に復帰する。もしもスナップショットモードが可能にされていない場合は、VFE14は、CAPTURE状態64に留まり、そしてビデオフレームを連続的に受信しそして処理する。
【0046】
より特定的には、VFE14はビデオ入力データ30を受信し、そしてデータをビデオ出力データ35を生成するために、制御器24から受信された命令および構成パラメータ23に基づいてVBE16に対して受け入れ可能なフォーマットに処理する。さらに、VFE14は、ビデオ表示データ35を、ビデオ入力データ30をビューファインダ17による表示に対して適切な形態で生成するためにフォーマットし、そしてビデオ出力データ35を、VBE16あるいは制御器24によるアクセスのために、ビデオメモリ15の中に記憶する。
【0047】
取得モード66で動作する期間中、VFE14は制御器24によって与えられたプログラム可能なパラメータに基づいて機能的モジュール30A〜30Fを頼りに(invoke)する。たとえば、上に記述されたようにカメラドライバ30Aはビデオ取得を開始および停止するためにカメラインタフェースハードウエア22をプログラム可能であるように構成する。フレーム率制御モジュール30Bは、画像センサ23によって取得されそしてカメラインタフェース22によって生成されたビデオ入力データ30を望ましいフレーム率に処理する。
【0048】
画像処理モジュール30Cは、CONFIG命令により制御器24によって与えられたパラメータに基づいてビデオ入力データ30上で複雑な画像処理操作を実行することが可能である。ビューファインダドライバ30Dは、ビデオメモリ15からのビデオ入力データ30をビューファインダ17による表示に対して適切な形態でビデオ表示データ35を生成するために処理する。
【0049】
画像サイズ制御モジュール30Eは、画像サイズを望ましい画像サイズにダウンサンプルするための機能を与える。色変換モジュール30Fはビデオ入力データ30を異なった色空間たとえば、VBE16あるいはビューファインダ17により必要とされるかも知れないとして色画像データを与えるための異なったフォーマットに変換するための機能を与える。
【0050】
VFE14は制御器66からIDLE命令を受信する場合は、画像取得を終了しそしてIDLE状態64に復帰する。
【0051】
図4は、ディジタルビデオデバイス10の例となる操作を示すフローチャートである。最初に、制御器24は、VFE14(70)の処理装置間インタフェースを経由しての命令25によりコーデック12をプログラム的に構成する。このように、制御器24は主デバイスとして、そしてコーデック12は従属デバイスとして見られることが可能である。
【0052】
コーデック12が符号化器として動作する場合には、VFE14は、第1の画像フォーマット内にビデオ出力データ35を、そして第2の画像フォーマット(72)内にビデオ表示データを生成するために命令に従ってビデオ入力データ30を取得し、そして前処理をする。この処理期間中、VFE14はプログラム可能なフォーマット、たとえばプログラム可能なフレーム率、画像サイズ、および色空間に従ってビデオ出力データおよびビデオ表示データを発生する。VFE14は、ビデオデータの符号化されたシーケンス(74)の発生のためにVBE16にビデオ出力データを通信し、そしてビューファインダ17上の表示のために制御器24にビデオ表示データを通信する(76)。同様な様式で、VFE14はVBE16から復号されたビデオシーケンスを受信し、そして制御器24によって与えられた命令25に従って復号されたビデオシーケンスを処理し、そして表示することが可能である。
【0053】
例となるビデオ符号化器/復号器(コーデック)がビデオフロントエンド(VFE)およびビデオバックエンド(VBE)間に分配された種々の実施例が記述されて来ている。この開示の中に記述されたように、種々のカメラあるいはカムコーダ応用をサポートするためにVFEは機能および前処理操作を集約し、そしてそれによって外部の主デバイスがそれらの操作を容易に制御することが可能な柔軟性を有する中間処理装置(inter-processor)を与える。この分配はVBEを、カメラインタフェースハードウエアと直接にインタフェースし、色変換およびビューファインダを駆動するために必要な他の画像処理機能あるいは他の実行固有の操作を実行する等の、種々の実行固有の機能から分離した分散されたビデオシステムをもたらす。したがって、この中に記述された技術は、ディジタルビデオ能力を新しいデバイスの中に統合することを容易にする、増加された柔軟性を与えることが可能である。たとえば、設計者はビデオデータ能力を新しい製品あるいはデバイスの中に統合するために、VFEを任意の望ましいバックエンドソフトウエアあるいはファームウエア、あるいはそれらの組み合わせとともに容易に繰り返し使用することが可能である。これらのおよび他の実施例は請求項の範囲内にある。

【特許請求の範囲】
【請求項1】
システムであって、
命令を受信するためにプログラム可能なインタフェースを有するビデオフロントエンド(VFE)と、VFEは命令に従ってビデオ出力データを生成するために、ビデオ入力データを取得しそしてそのビデオ入力データを前処理し、
VFEのビデオ出力データから、符号化されたビデオデータのシーケンスを発生するためのビデオバックエンド(VBE)と、そして
ビデオ入力データの前処理を制御するために、インタフェースを経由してVFEに命令を与えるための制御器と
を含むシステム。
【請求項2】
VFEは、表示のためのビデオ表示データを生成するために、命令に従ってビデオ入力データを前処理する、請求項1記載のシステム。
【請求項3】
命令に従って、VFEはVBEによる処理のために第1のフォーマットでビデオ出力データを、そして表示のために第2のフォーマットでビデオ表示データを発生するためにビデオ入力データを前処理する、請求項2記載のシステム。
【請求項4】
VFEは
命令に従って、ビデオ表示データを与えるためのビューファインダドライバと、
命令に従って、プログラム可能なフレーム率でビデオ出力データおよびビデオ表示データを発生するための、フレーム率制御モジュールと、
命令に従って、プログラム可能な画像サイズでビデオ出力データおよびビデオ表示データを発生するための画像サイズ制御モジュールと
命令に基づいて、VBEにより処理されるための第1の色空間に従ってビデオ出力データを、そしてビューファインダドライバによる表示のための第2の色空間に従ってビデオ表示データを発生する色変換モジュールと、そして
命令に従って、ビデオ入力データ上に1個あるいはそれ以上の画像操作処理を実行する画像処理モジュールと
を含む、請求項2記載のシステム。
【請求項5】
プログラム可能なインタフェースは、制御器がビデオ入力データの入力画像フォーマットおよびビデオ出力データおよびビデオ表示データに対する、出力画像フォーマットをプログラム的にセットすることを可能とする、請求項2記載のシステム。
【請求項6】
プログラム可能なインタフェースは、制御器がフレーム行幅、行あたりのピクセルの数、フレーム列高さ、画像フォーマットの各々に対するフレームあたりの行の数を、プログラム的にセットすることを可能とする、請求項5記載のシステム。
【請求項7】
プログラム可能なインタフェースは、制御器が、ビデオ入力データから落すべきフレームを選択するための第1のビットパターンおよび、ビデオ出力データを生成するためにビデオ入力データの各フレームから落すべきXおよびYピクセルを選択するための第2のビットパターンを、プログラム的に定義することを可能とする、請求項1記載のシステム。
【請求項8】
プログラム可能なインタフェースは、VFEによるビデオ入力データの取得をプログラム的に開始するための取得命令、ビデオデータの取得をプログラム的に終了するための休止命令、およびビデオデータの取得及び処理をプログラム的に制御する構成命令をサポートする、請求項1記載のシステム。
【請求項9】
VFEは実行固有の画像処理機能を実行し、そしてVBEは、実行から独立した画像処理機能を実行する、請求項1記載のシステム。
【請求項10】
制御器は第1の処理装置の動作環境内で実行し、そしてVFEおよびVBEは第2の処理装置の動作システム内で実行し、そしてVFEのプログラム可能なインタフェースは、制御モジュールからの命令を受信するための、プログラム可能な処理装置間インタフェースを含む、請求項1記載のシステム。
【請求項11】
プログラム可能な処理装置間インタフェースは、
制御器からの命令を受信するためのプログラム可能な命令レジスタと、
命令と組み合わせられたパラメータを記憶するためのプログラム可能な命令バッファと、そして
VFEから制御器に状態を通信するための状態レジスタと
を含む、請求項10記載のシステム。
【請求項12】
さらに、ビデオ出力データを記憶するための第1および第2の処理装置の両者によってアクセス可能なメモリを含む、請求項10記載のシステム。
【請求項13】
システムはビデオ符号化器/復号器(コーデック)を含む、請求項1記載のシステム。
【請求項14】
デバイスであって、
デバイスによって与えられた動作環境の中で実行し、そして外部のデバイスから命令を受信するためのプログラム可能なインタフェースを有するビデオフロントエンド(VFE)を含む、
VFEは、ビデオバックエンドによる符号化のためのビデオ出力データおよび表示デバイスによる表示のためのビデオ表示データを生成するために、命令に従ってビデオ入力データを取得し、そしてビデオ入力データを前処理する、
デバイス。
【請求項15】
プログラム可能なインタフェースは、第1の画像フォーマットおよび第2の画像フォーマットを定義するためのパラメータをサポートし、そしてVFEは命令に基づいて第1の画像フォーマットに従ってビデオ出力データを、そして第2の画像第2のフォーマットに従ってビデオ表示データを発生する、請求項14記載のデバイス。
【請求項16】
VFEはさらに、
命令に従ってビデオ出力データおよびビデオ表示データを生成するために、ビデオ入力データ上に1個あるいはそれ以上の画像操作動作を選択的に実行する画像処理モジュールと、
命令に従ってプログラム可能なフレーム率においてビデオ出力データおよびビデオ表示データを発生するためのフレーム率制御モジュールと、
命令に従ってプログラム可能な画像サイズにおいてビデオ出力データおよびビデオ表示データを発生するための画像サイズ制御モジュールと、
命令に基づいて、VBEによる処理のために第1の色空間に従ってビデオ出力データを、そしてビューファインダドライバによる表示のために第2の色空間に従ってビデオ表示データを発生する色変換モジュールと
を含む、請求項14記載のデバイス。
【請求項17】
VFEはさらに、命令に従ってビデオ表示データを与えるためのビューファインダドライバを含む、ビューファインダドライバは、命令に従ってビューファインダに対して、あるフレーム率あるいはある画像サイズでビデオ表示データを生成するためにフレーム率制御モジュールおよび画像サイズ制御モジュールに頼る、請求項16記載のデバイス。
【請求項18】
プログラム可能なインタフェースは、外部デバイスが、フレーム行幅、行あたりのピクセルの数、フレーム列高さ、フレームあたりの行の数、およびビデオ入力データ、ビデオ出力データ、ビデオ表示データの各々に対する入力画像フォーマットをプログラム的にセットすることを可能とする、請求項14記載のデバイス。
【請求項19】
プログラム可能なインタフェースは、外部デバイスが、ビデオ出力データおよびビデオ表示データに対する色空間をプログラム的にセットすることを可能とする、請求項14記載のデバイス。
【請求項20】
プログラム可能なインタフェースは、制御器がビデオ入力データから落とすべきフレームを選択するための第1のビットパターン、およびビデオ出力データを生成するためにビデオ入力データから落とすべきXおよびYピクセルを選択するための第2のビットパターンをプログラム的に定義することを可能とする、請求項14記載のデバイス。
【請求項21】
プログラム可能なインタフェースは、VFEによるビデオ入力データの取得をプログラム的に開始するための取得命令、ビデオデータの取得をプログラム的に終了するための休止命令、およびビデオデータの取得および処理をプログラム的に制御するための構成命令をサポートしている、請求項14記載のデバイス。
【請求項22】
VFEを実行するデバイスおよび外部のデバイスは、プログラム可能な処理装置を含み、そしてVFEのプログラム可能なインタフェースは外部のデバイスから命令を受信するためのプログラム可能な処理装置間インタフェースを含む、請求項14記載のデバイス。
【請求項23】
プログラム可能な処理装置間インタフェースは、
制御器からの命令を受信するためのプログラム可能な命令レジスタと、
命令と組み合わせられたパラメータを記憶するためのプログラム可能な命令バッファと、そして
VFEから制御器まで状態を通信する状態レジスタと
を含む、請求項22記載のデバイス。
【請求項24】
デバイスはビデオ符号化器/復号器(コーデック)を含む、請求項14記載のデバイス。
【請求項25】
デバイスは、VFEの実行のための動作環境を与えるディジタル信号処理装置(DSP)を含む、請求項14記載のデバイス。
【請求項26】
デバイスであって、
主デバイスから命令をプログラム的に受信するための手段と、
命令に従ってビデオ出力データおよびビデオ表示データを生成するためにビデオ入力データを取得しそして前処理をするための手段と、そして
ビデオ出力データからビデオデータの符号化されたシーケンスを発生するための手段とを含むデバイス。
【請求項27】
受信する手段は、第1の画像フォーマットおよび第2の画像フォーマットを定義するためのパラメータをサポートし、そして取得しそして前処理する手段は、命令に基づいて第1の画像フォーマットに従ってビデオ出力データを、そして第2の画像第2のフォーマットに従ってビデオ表示データを発生する、請求項26記載のデバイス。
【請求項28】
取得し前処理をする手段はさらに、
命令に従って、プログラム可能なフレーム率においてビデオ出力データおよびビデオ表示データを発生するためのフレーム率減少手段と、
命令に従って、プログラム可能な画像サイズにおいてビデオ出力データおよびビデオ表示データを発生するためのサブサンプリング手段と、
命令に従って、ビデオ表示データを与えるためのビューファインダドライバ手段と、(ここで)ビューファインダドライバ手段は命令に従ってビューファインダに対してあるフレーム率あるいはある画像サイズにおいてビデオ表示データを生成するためにフレーム率制御モジュールおよび画像サイズ制御モジュールに頼っており、そして
命令に基づいて、VBEによる処理に対しては第1の色空間に従ってビデオ出力データを、そして第2の色空間に従ってビデオ表示データを発生するための色変換手段と
を含む、請求項26記載のデバイス。
【請求項29】
プログラム可能なインタフェースは、主デバイスがフレーム行幅、行あたりのピクセルの数、フレーム列の高さ、フレームあたりの行の数、およびビデオ入力データ、ビデオ出力データ、ビデオ表示データの各々に対する入力画像フォーマットをプログラム的にセットすることを可能とする、請求項26記載のデバイス。
【請求項30】
プログラム可能なインタフェースは主デバイスがビデオ出力データおよびビデオ表示データに対する色空間をプログラム的にセットすることを可能とする、請求項26記載のデバイス。
【請求項31】
受信する手段は、主デバイスがビデオ表示データを表示するためのピクセルカウンタおよびラインカウンタを、ビデオ出力データを生成するためにビデオ入力データから落とすべきフレームを選択するためのビットパターン、およびビデオ出力データを生成するためにビデオ入力データの各フレームから落とすべきXおよびYピクセルを選択するためのビットパターンを、プログラム的にセットすることを可能とする、請求項26記載のデバイス。
【請求項32】
受信する手段は、
主デバイスからの命令および命令と組み合わせられたパラメータを受信するための手段と、そして
取得しそして前処理を行うための手段から主デバイスへ状態を通信するための手段と
を含む処理装置間通信を含む、請求項26記載のデバイス。
【請求項33】
方法であって、
処理装置間インタフェースを経由して主デバイスからの命令をプログラム的に受信し、
第1の画像フォーマット内にビデオ出力データをそして、第2の画像フォーマット内にビデオ表示データを生成するために、命令に従って従属デバイスを経由してビデオ入力データを取得しそして前処理を行い、
ビデオデータの符号化されたシーケンスの発生のためにビデオ出力データを符号化器に通信し、そして
ビデオ表示データを表示のために出力デバイスに通信する
ことを含む方法。
【請求項34】
ビデオ入力データを取得しそして前処理することは、命令に従って、プログラム可能なフレーム率においてそしてプログラム可能な画像サイズにおいて、ビデオ出力データおよびビデオ表示データを発生することを含む、請求項33記載の方法。
【請求項35】
ビデオ入力データを取得しそして前処理することは、命令に基づいてVBEによる処理に対しては第1の色空間に従ってビデオ出力データを、そして第2の色空間に従ってビデオ表示データを発生することを含む、請求項33記載の方法。
【請求項36】
命令を受信することは、主デバイスおよび従属デバイスによってアクセス可能なプログラム可能なレジスタを経由して、命令および命令と組み合わせられたパラメータを受信することを含む、請求項33記載の方法。
【請求項37】
デバイスであって、
画像処理命令を発行する主デバイスと、そして
命令に従ってビデオシーケンスを符号化しあるいは復号するためにビデオフロントエンド(VFE)およびビデオバックエンド(VBE)に対する動作環境を与える従属デバイスとを含む、
VFEは、画像処理命令を受信するためのプログラム可能なインタフェースを含み、そして画像処理命令に従ってVBEによって符号化するためにビデオシーケンスを取得しそして前処理を行い、そしてVBEからの復号されたビデオシーケンスを受信しそして処理するデバイス。
【請求項38】
プログラム可能なインタフェースは第1の画像フォーマットおよび第2の画像フォーマットを定義するためのパラメータをサポートし、そしてVFEおよびVBEは第1の画像フォーマットに従ってビデオシーケンスを交換し、そしてVFEは第2の画像第2のフォーマットに従ってビデオシーケンスを表示する、請求項37記載のデバイス。
【請求項39】
主デバイスはフレーム行幅、行あたりのピクセルの数、フレーム列高さ、画像フォーマットの各々に対するフレームあたりの行の数をプログラム的にセットする、請求項37記載のデバイス。
【請求項40】
VFEは、命令に従って、プログラム可能なフレーム率において交換されたビデオシーケンスおよび表示されたビデオシーケンスを発生するためのフレーム率制御モジュールを含む、請求項37記載のデバイス。
【請求項41】
VFEは、命令に従って、プログラム可能な画像サイズにおいて交換されたビデオシーケンスおよび表示されたビデオシーケンスを発生するための画像サイズ制御モジュールを含む、請求項37記載のデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−10331(P2011−10331A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−172419(P2010−172419)
【出願日】平成22年7月30日(2010.7.30)
【分割の表示】特願2006−503202(P2006−503202)の分割
【原出願日】平成16年1月30日(2004.1.30)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】