(57)【要約】 複数の方法及びシステムがハードウェアビデオエンコーダの複数のパラレルインスタンスの起動を提供しうる。複数パラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを有する。さらに、第１エンコーダインスタンスが使用されてビデオコンテンツに関し場面変化の判断及び動きレベルの判断を行いうる。一例において、第２エンコーダインスタンスが使用されて場面変化の判断及び動きレベルの判断に基づきビデオコンテンツを符号化する。
2016504829.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアビデオエンコーダの複数のパラレルインスタンスを起動する段階であって、前記複数のパラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを含む段階と、
前記第１エンコーダインスタンスを用いることで、ビデオコンテンツに関して場面変化の判断を行うとともに前記ビデオコンテンツに関して動きレベルの判断を行う段階と、
前記第２エンコーダインスタンスを用いることで、前記場面変化の判断及び前記動きレベルの判断に基づいて前記ビデオコンテンツを符号化する段階と
を有する方法。
【請求項２】
前記第２エンコーダインスタンスを用いることで、前記動きレベルの判断に基づいて、インタープレディクションコーディングフレーム（Ｐフレーム）及び双方向インタープレディクションコーディングフレーム（Ｂフレーム）の符号化スキームを選択する段階を更に含む、請求項１に記載の方法。
【請求項３】
前記第１エンコーダインスタンスを用いることでビデオコンテンツの複数のフレームを、複数のイントラコーディングフレーム（複数のＩフレーム）及び複数のインタープレディクションコーディングフレーム（複数のＰフレーム）の１または複数として符号化する段階を更に含む、請求項１に記載の方法。
【請求項４】
システムであって、
前記システムに電力を供給するバッテリと、
ビデオコンテンツに関して場面変化の判断を行う第１エンコーダインスタンス、及び、前記場面変化の判断に基づいて前記ビデオコンテンツを符号化する第２エンコーダインスタンスを有するビデオエンコーダと
を備えるシステム。
【請求項５】
前記第１エンコーダインスタンスは、前記ビデオコンテンツに関して動きレベルの判断を行い、
前記第２エンコーダインスタンスは、前記動きレベルの判断に更に基づいて前記ビデオコンテンツを符号化する、請求項４に記載のシステム。
【請求項６】
前記第２エンコーダインスタンスは、前記動きレベルの判断に基づいて、インタープレディクションコーディングフレーム（Ｐフレーム）及び双方向インタープレディクションコーディングフレーム（Ｂフレーム）の符号化スキームを選択する、請求項５に記載のシステム。
【請求項７】
前記第１エンコーダインスタンスは、
１または複数の動きレベル閾値に基づいて、前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る動きレベルコンポーネントを含むピクセルモジュールと、
前記ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う比較モジュールと、
前記比較に基づいて前記動きレベルの判断を引き起こす動きレベルモジュールと
を有する、請求項５に記載のシステム。
【請求項８】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルを決定する動きレベルコンポーネントを含む動きベクトルモジュールと、
前記平均動きベクトルと１または複数の動きレベル閾値との間で比較を行う比較モジュールと、
前記比較に基づいて前記動きレベルの判断を引き起こす動きレベルモジュールと
を有する、請求項５に記載のシステム。
【請求項９】
前記第１エンコーダインスタンスは、
場面変化閾値に基づいて、前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る場面変化コンポーネントを含むピクセルモジュールと、
前記ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う比較モジュールと、
前記比較に基づいて前記場面変化の判断を引き起こす場面変化モジュールと
を有する、請求項４に記載のシステム。
【請求項１０】
前記第１エンコーダインスタンスの量子化パラメータと前記ビデオコンテンツに関連付けられたカテゴリとに基づいて前記場面変化閾値を選択する閾値モジュールを更に備える、請求項９に記載のシステム。
【請求項１１】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルを決定する場面変化コンポーネントを含む動きベクトルモジュールと、
前記平均動きベクトルと場面変化動きベクトル閾値との間で比較を行う比較モジュールと、
前記比較に基づいて前記場面変化の判断を引き起こす場面変化モジュールと
を有する、請求項４に記載のシステム。
【請求項１２】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツの複数のフレームを、複数のイントラコーディングフレーム（複数のＩフレーム）及び複数のインタープレディクションコーディングフレーム（複数のＰフレーム）の１または複数として符号化する、請求項４から１１のいずれか１項に記載のシステム。
【請求項１３】
ビデオコンテンツに関して場面変化の判断を行う第１エンコーダインスタンスと、
前記場面変化の判断に基づいて前記ビデオコンテンツを符号化する第２エンコーダインスタンスと
を備えるビデオエンコーダ。
【請求項１４】
前記第１エンコーダインスタンスは、前記ビデオコンテンツに関して動きレベルの判断を行い、
前記第２エンコーダインスタンスは、前記動きレベルの判断に更に基づいて前記ビデオコンテンツを符号化する、請求項１３に記載のビデオエンコーダ。
【請求項１５】
前記第２エンコーダインスタンスは、前記動きレベルの判断に基づいて、インタープレディクションコーディングフレーム（Ｐフレーム）及び双方向インタープレディクションコーディングフレーム（Ｂフレーム）の符号化スキームを選択する、請求項１４に記載のビデオエンコーダ。
【請求項１６】
前記第１エンコーダインスタンスは、
１または複数の動きレベル閾値に基づいて、前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る動きレベルコンポーネントを含むピクセルモジュールと、
ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う比較モジュールと、
前記比較に基づいて前記動きレベルの判断を引き起こす動きレベルモジュールと
を有する、請求項１４に記載のビデオエンコーダ。
【請求項１７】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルを決定する動きレベルコンポーネントを含む動きベクトルモジュールと、
前記平均動きベクトルと１または複数の動きレベル閾値との間で比較を行う比較モジュールと、
前記比較に基づいて前記動きレベルの判断を引き起こす動きレベルモジュールと
を有する、請求項１４に記載のビデオエンコーダ。
【請求項１８】
前記第１エンコーダインスタンスは、
場面変化閾値に基づいて、前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る場面変化コンポーネントを含むピクセルモジュールと、
前記ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う比較モジュールと、
前記比較に基づいて前記場面変化の判断を引き起こす場面変化モジュールと
を有する、請求項１３に記載のビデオエンコーダ。
【請求項１９】
前記第１エンコーダインスタンスの量子化パラメータと前記ビデオコンテンツに関連付けられたカテゴリとに基づいて前記場面変化閾値を選択する閾値モジュールを更に備える、請求項１８に記載のビデオエンコーダ。
【請求項２０】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルを決定する場面変化コンポーネントを含む動きベクトルモジュールと、
前記平均動きベクトルと場面変化動きベクトル閾値との間で比較を行う比較モジュールと、
前記比較に基づいて前記場面変化の判断を引き起こす場面変化モジュールと
を有する、請求項１３に記載のビデオエンコーダ。
【請求項２１】
前記第１エンコーダインスタンスは、
前記ビデオコンテンツの複数のフレームを、複数のイントラコーディングフレーム（複数のＩフレーム）及び複数のインタープレディクションコーディングフレーム（複数のＰフレーム）の１または複数として符号化する、請求項１３から２０のいずれか１項に記載のビデオエンコーダ。
【請求項２２】
コンピュータに、
ハードウェアビデオエンコーダの複数のパラレルインスタンスを起動する手順であって、前記複数のパラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを含む手順と、
前記第１エンコーダインスタンスを用いることで、ビデオコンテンツに関して場面変化の判断を行う手順と、
前記第２エンコーダインスタンスを用いることで、前記場面変化の判断に基づいて前記ビデオコンテンツを符号化する手順と
を実行させるプログラム。
【請求項２３】
前記第１エンコーダインスタンスを用いることで、前記ビデオコンテンツに関して動きレベルの判断を行う手順を前記コンピュータに実行させ、
前記第２エンコーダインスタンスは、前記動きレベルの判断に更に基づいて前記ビデオコンテンツを符号化する、請求項２２に記載のプログラム。
【請求項２４】
前記第２エンコーダインスタンスを用いることで、前記動きレベルの判断に基づいて、インタープレディクションコーディングフレーム（Ｐフレーム）及び双方向インタープレディクションコーディングフレーム（Ｂフレーム）の符号化スキームを選択する手順を前記コンピュータに実行させる、請求項２３に記載のプログラム。
【請求項２５】
前記第１エンコーダインスタンスを用いることで、１または複数の動きレベル閾値に基づいて前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る手順と、
前記第１エンコーダインスタンスを用いることで、前記ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う手順と、
前記第１エンコーダインスタンスを用いることで、前記比較に基づいて、前記動きレベルの判断を引き起こす手順と
を前記コンピュータに実行させる、請求項２３に記載のプログラム。
【請求項２６】
前記第１エンコーダインスタンスを用いることで、前記ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルを決定する手順と、
前記第１エンコーダインスタンスを用いることで、前記平均動きベクトルと１または複数の動きレベル閾値との間で比較を行う手順と、
前記第１エンコーダインスタンスを用いることで、前記比較に基づいて、前記動きレベルの判断を引き起こす手順と
を前記コンピュータに実行させる、請求項２３に記載のプログラム。
【請求項２７】
前記第１エンコーダインスタンスを用いることで、場面変化閾値に基づいて、前記ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整して調整ピクセル値を得る手順と、
前記第１エンコーダインスタンスを用いることで、前記ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、前記調整ピクセル値との間で比較を行う手順と、
前記第１エンコーダインスタンスを用いることで、前記比較に基づいて、前記場面変化の判断を引き起こす手順と
を前記コンピュータに実行させる、請求項２２に記載のプログラム。
【請求項２８】
前記第１エンコーダインスタンスの量子化パラメータと前記ビデオコンテンツに関連付けられたカテゴリとに基づいて前記場面変化閾値を選択する手順を前記コンピュータに実行させる、請求項２７に記載のプログラム。
【請求項２９】
前記第１エンコーダインスタンスを用いることで、前記ビデオコンテンツの１または複数のフレームに対する平均動きベクトルを決定する手順と、
前記第１エンコーダインスタンスを用いることで、前記平均動きベクトルと場面変化動きベクトル閾値との間で比較を行う手順と、
前記第１エンコーダインスタンスを用いることで、前記比較に基づいて、前記場面変化の判断を引き起こす手順と
を前記コンピュータに実行させる、請求項２２に記載のプログラム。
【請求項３０】
前記ビデオコンテンツの複数のフレームを、複数のイントラコーディングフレーム（複数のＩフレーム）及び複数のインタープレディクションコーディングフレーム（複数のＰフレーム）の１または複数として符号化する手順を前記コンピュータに実行させる、請求項２２から２９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
ビデオの符号化においては、コーディングの効率性を改善するべく（例えば、特定のビットレートにおいて最も良いビデオ品質を得るべく）、複数の異なるタイプのフレーム符号化スキームが用いられうる。例えば、先進的なビデオエンコーダは、場面変化の存在および／またはビデオコンテンツの根底にある大量の動きなどの複数の要因に基づいて、複数のイントラコーディングフレーム（複数のＩフレーム）、複数のインタープレディクションコーディングフレーム（複数のＰフレーム）及び複数の双方向インタープレディクションコーディングフレーム（複数のＢフレーム）の使用を選択しうる。ビデオコンテンツの前処理は場面変化及び動きレベルの検出を伴ってよく、通常のソリューションはプログラマブルソフトウェアまたは機能固定ハードウェアの何れか一方において前処理を実行しうる。ソフトウェアベースのビデオ前処理ソリューションにおいて、性能及び電力効率は、特にモバイルデバイスに関し、高フレームレートでの場面変化の検出及び動きレベルの検出に関連する複雑性に起因して低いかもしれない。ハードウェアアクセラレーティドビデオ前処理ソリューションはより良い性能及び電力効率を達成するかもしれないが、場面変化及び動きレベルの検出に関連する複雑性に再び起因して、これらのソリューションの実施に関与するシリコン面積は著しく増加するかもしれない。シリコン面積におけるそのような増加は、競合的なコンピューティングプラットホーム産業において法外な費用がかかるかもしれない。
【図面の簡単な説明】
【０００２】
本発明の複数の実施形態の様々な利点は、当業者が以下の明細書および添付の請求項を読むことにより、並びに以下の図面を参照することにより明らかになろう。
【０００３】
【図１】一実施形態に係るビデオ符号化アーキテクチャの一例のブロック図である。
【０００４】
【図２】一実施形態に係る低遅延アプリケーションにおけるビデオの符号化方法の一例のフローチャートである。
【０００５】
【図３】一実施形態に係るストレージアプリケーションにおけるビデオの符号化方法の一例のフローチャートである。
【０００６】
【図４】一実施形態に係るビデオエンコーダの一例のブロック図である。
【０００７】
【図５】一実施形態に係る、ナビゲーションコントローラを有するシステムの一例のブロック図である。
【０００８】
【図６】一実施形態に係る、スモールフォームファクタを有するシステムの一例のブロック図である。
【発明を実施するための形態】
【０００９】
複数の実施形態は、ビデオコンテンツに関して場面変化の判断を行う第１エンコーダインスタンスを有するビデオエンコーダを含んでよい。ビデオエンコーダはまた、場面変化の判断に基づいてビデオコンテンツを符号化する第２エンコーダインスタンスを含んでよい。
【００１０】
複数の実施形態はまた、システムに電力を供給するバッテリと、ビデオコンテンツに関して場面変化の判断を行う第１エンコーダインスタンスを有するビデオエンコーダと備えるシステムを含んでよい。ビデオエンコーダはまた、場面変化の判断に基づいてビデオコンテンツを符号化する第２エンコーダインスタンスを含んでよい。
【００１１】
複数の実施形態はまた、ハードウェアビデオエンコーダの複数のパラレルインスタンスの起動を伴う方法を含んでよい。複数のパラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを有する。この方法はまた、ビデオコンテンツに関して場面変化の判断を行うとともに当該ビデオコンテンツに関して動きレベルの判断を行う第１エンコーダインスタンスの使用を提供しうる。加えて、この方法は、場面変化の判断及び動きレベルの判断に基づいてビデオコンテンツを符号化する第２エンコーダインスタンスの使用を伴ってよい。
【００１２】
複数の実施形態はまた、プロセッサにより実行された場合にコンピュータにハードウェアビデオエンコーダの複数のパラレルインスタンスを起動させる命令セットを有するコンピュータ可読記憶媒体を含んでよい。複数のパラレルインスタンスは、第１エンコーダインスタンス及び第２エンコーダインスタンスを含む。この複数の命令はまた、実行された場合に、ビデオコンテンツに関して場面変化の判断を行う第１エンコーダインスタンスを使用し、場面変化の判断に基づいてビデオコンテンツを符号化する第２エンコーダインスタンスを使用してよい。
【００１３】
ここで図１を参照すると、ハードウェアビデオエンコーダ１２（１２ａ、１２ｂ）がビデオコンテンツ１６に基づいて符号化されたビデオ１４を生成するビデオ符号化アーキテクチャ１０が示される。ビデオコンテンツ１６は、画像キャプチャデバイスおよび／またはビデオアプリケーション、例えば、ビデオ会議アプリケーション、ビデオストリーミングアプリケーション、カムコーダアプリケーション、ビデオ編集アプリケーション、ゲームアプリケーションおよびその他など、により生成されうる。したがって、符号化されたビデオ１４は、多種多様な目的、例えば、有線または無線伝送、ローカルストレージなどに用いられることができ、符号化処理は、送信される、および／または、格納されるデータ量を低減しうる。
【００１４】
図示された例において、ハードウェアビデオエンコーダ１２は、ビデオ符号化処理に専用の半導体のリアルエステートの量（例えば、シリコン面積）を増加させることなく、性能を向上させ、電力効率を改善し、バッテリ寿命を延ばす等のために用いられうる複数のパラレルインスタンスを有する。より詳細には、第１エンコーダインスタンス１２ａは、ビデオコンテンツ１６に関して場面変化の判断１８及び動きレベルの判断２０を行うべく使用されうる。第２エンコーダインスタンス１２ｂは、場面変化の判断１８及び動きレベルの判断２０に基づいてビデオコンテンツ１６を符号化（例えば圧縮）するべく使用されうる。特に、例示されたアーキテクチャ１０は、ビデオの前処理を行うべく、ハードウェアビデオエンコーダ１２の追加インスタンスを使用する。従って、アーキテクチャ１０は、通常のソフトウェアベースの前処理ソリューションよりも、より高い性能及び電力効率を提供することができ、通常のハードウェアアクセラレーティド前処理ソリューションよりも著しく小さいシリコン面積しか占有しないかもしれない。
【００１５】
図２は、例えばビデオ会議および／またはビデオストリーミングアプリケーションなどの低遅延アプリケーションにおけるビデオの符号化方法２２を示す。方法２２は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、ファームウェア、フラッシュメモリ、その他などのメモリのマシンまたはコンピュータ可読記憶媒体に格納されたロジック命令セットとして実行可能ソフトウェアにおいて実装されるか、或いは、例えばプログラマブルロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）などの構成可能なロジックにおいて実装されるか、或いは、例えば特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化物半導体（ＣＭＯＳ）またはトランジスタ−トランジスタロジック（ＴＴＬ）技術などの回路技術を用いる機能固定型ロジックハードウェアにおいて実装されるか、或いは、これらの何らかの組み合わせで実装されうる。例えば、方法２２で示される複数のオペレーションを実行するコンピュータプログラムコードは、Ｊａｖａ（登録商標），Ｓｍａｌｌｔａｌｋ，Ｃ＋＋などのオブジェクト指向プログラミング言語、「Ｃ」プログラミング言語などの通常の手続型プログラミング言語、または同様のプログラミング言語を含む、１または複数のプログラミング言語の何らかの組み合わせで書かれてよい。
【００１６】
図示された処理ブロック２４は、ハードウェアビデオエンコーダの複数のパラレルインスタンスの起動を提供し、複数のパラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを有する。第１エンコーダインスタンスはブロック２６で使用され、ビデオフレームをイントラコーディングフレーム（Ｉフレーム）として符号化しうる。この点で、Ｉフレーム符号化は、フレーム内に制限された予測を使用する（すなわち、予測は他のフレームを参照しない）。これにより、Ｉフレーム符号化は、ビデオ情報を表すのに多くのビットを使用することに起因して、コーディングの視点からは相対的に効率が悪いかもしれないが、Ｉフレーム符号化が実行されうる速度に起因して相対的に低い遅延許容性を有するビデオアプリケーション（例えばストリーミングおよび／または会議アプリケーション）における前処理に、特に有用でありうる。符号化されたＩフレームが場面変化を含むか否かに関する判断がブロック２８で行われうる。
＜場面変化‐符号化ビット差＞
【００１７】
一例において、フレーム間の符号化ビット差は、場面変化が生じたか否かを判断するのに使用されうる。具体的には、ビデオフレームは、一定の量子化パラメータを有する（すなわち、ビットレートコントロールがない）Ｉフレームとして、第１エンコーダインスタンスにより符号化されうる。一般的に、ビデオエンコーダは、ビデオコンテンツが逐次、周波数の領域内で監視され、解析され、制御されることを可能にしうる離散コサイン変換（ＤＣＴ）係数を使用しうる。ビデオ符号化システムの量子化パラメータ（ＱＰ）は、ＤＣＴ係数をステップの有限集合と関連付けるためのステップサイズを確立しうる。これにより、ＱＰの大きな複数の値は、信号の殆どが少数の係数のみでキャプチャされうるように、空間変換を大まかに概算する比較的大きな複数のステップを表しうる。一方で、ＱＰの小さい複数の値は、より多くのビットを犠牲にするが、空間周波数スペクトルをより正確に概算する。したがって、一定のＱＰの使用は、符号化ビットの数が、場面変化が生じたか否かの判断に対するメトリックとして使用されることを可能にしうる。
【００１８】
例えば、フレームｎに対する符号化ビット数がＢ（ｎ）であり、フレームｎ＋１に対する符号化ビット数がＢ（ｎ＋１）である場合には、次にフレームｎ＋１は、次式の場合に場面変化フレームとして検出されうる。
【００１９】
｜Ｂ(ｎ＋１) −Ｂ（ｎ）｜≧Ｔｓｃ＊Ｎ              （１）
【００２０】
ここで、｜  ｜は絶対デルタ（ａｂｓｏｌｕｔｅ  ｄｅｌｔａ）であり、Ｔｓｃは場面変化閾値であり、Ｎは当該ビデオフレームにおける画素の総数である。これにより、ビデオコンテンツにおける１または複数のフレームの総ピクセル値（Ｎ）は、調整ピクセル値（Ｔｓｃ＊Ｎ）を得るべく、場面変化閾値（Ｔｓｃ）に基づいて調整されてよい。次に、ビデオコンテンツにおける２またはそれより多くのフレームに関連付けられた符号化ビット差と、調整ピクセル値との比較が実行されて、ビデオコンテンツに場面変化が存在するか否かが判断される。
【００２１】
第１エンコーダインスタンスの量子化パラメータと、ビデオコンテンツの型（例えばカテゴリ）とに基づいて決定されうる場面変化閾値は、最も正確な場面変化検出を得るべくオフラインでトレーニングされうる。さらに、量子化パラメータ及びビデオコンテンツのカテゴリで指標付けされうる２次元の表を生成すべく、種々の場面閾値が使用されうる。ビデオコンテンツに関連付けられうる多様なカテゴリは、会議、スポーツ、人、風景、ムービー、フラッシュ、ゲームなどを含みうるが、これらに限定されない。
【００２２】
場面変化が存在するとブロック２８で判断されると、図示されたブロック３０は、第２エンコーダインスタンスを使用して当該ビデオフレームをＩフレームとして符号化する。なぜなら、他の複数のフレームは現在のフレームにおける予測の根拠となる正確な情報を提供する可能性は低いからである。一方で、場面変化が存在しないとブロック２８で判断されると、図示されたブロック３２は、第２エンコーダインスタンスを使用し、Ｉフレームよりも高いコーディングの効率性を有し、かつ、他の複数のフレームからの情報に基づいて正確な結果をもたらす可能性が高いＰフレームとして、当該ビデオフレームを符号化する。ブロック３４は、ビデオコンテンツにおけるラストフレームに遭遇したかを判断しうる。そうである場合には、方法２２は終了しうる。さもなければ、方法２２は、ビデオコンテンツにおける残りの複数のフレームに対して反復しうる。
【００２３】
ここで図３を参照すると、例えば、ビデオ編集および／またはビデオ記録アプリケーションなどのストレージアプリケーションにおけるビデオの符号化方法３６が示される。方法３６は、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリなどのメモリのマシンまたはコンピュータ可読記憶媒体に格納されたロジック命令セットとしての実行可能ソフトウェアにおいて実装されるか、或いは、例えばＰＬＡ、ＦＰＧＡ、ＣＰＬＤなどの構成可能なロジックにおいて実装されるか、或いは、例えばＡＳＩＣ、ＣＭＯＳまたはＴＴＬ技術などの回路技術を用いた機能固定型ロジックハードウェアにおいて実装されるか、或いは、これらの何らかの組み合わせで実装されうる。
【００２４】
図示された処理ブロック３８は、ハードウェアビデオエンコーダの複数のパラレルインスタンスの起動を提供し、複数のパラレルインスタンスは第１エンコーダインスタンス及び第２エンコーダインスタンスを含む。第１エンコーダインスタンスがブロック４０で使用され、既に説明したようにコーディングの効率がＩフレームよりも高いかもしれないＰフレームとして、ビデオフレームを符号化しうる。アプリケーションがストレージベースのアプリケーションであるので、Ｐフレームの使用に関連する符号化時間の如何なる潜在的な増加も無視しうる。Ｐフレームが場面変化を含か否かに関する判断がブロック４２で行われうる。ブロック４２での判断は、上述したブロック２８（図２）での符号化ビット差ベースの判断と同様に実行されうる。代替的に、ブロック４２は、よりロバストな動きベクトルアプローチの使用を提供してよい。
＜場面変化‐動きベクトル＞
【００２５】
別の例において、よりロバストな動きベクトルアプローチが使用されうる。より詳細には、インターコーディング（ｉｎｔｅｒ  ｃｏｄｅｄ）マクロブロック（またはブロックパーティション）に対する平均動きベクトルは以下のように定義されうる。
【００２６】
【数１】
2016504829.tif 000003
【００２７】
ここで、ＭＶ（ｎ，ｉ，ｘ）はフレームｎのマクロブロックｉに対する水平動きベクトルであり、ＭＶ（ｎ，ｉ，ｙ）はフレームｎのマクロブロックｉに対する垂直動きベクトルであり、Ｎはフレームｎにおけるマクロブロックの数である。さらに、場面変化動きベクトル閾値は、TMVSCとして定義されうる。場面変化は、以下のようにフレームｎ＋１に対して検出されうる。
【００２８】
｜ＭＶａｖｇ，ｎ＋１−ＭＶａｖｇ，ｎ｜≧TMVSC      （３）
【００２９】
これにより、ビデオコンテンツにおける１または複数のフレームに対する平均動きベクトルが決定されうる。ここで、場面変化が生じたか否かを判断するべく、平均動きベクトルと場面変化動きベクトル閾値との比較が実行されうる。符号化ビット差と、複数の動きベクトルアプローチとはまた、環境に依存して組み合わせられうる。
【００３０】
場面変化が検出されると、ブロック４４は第２エンコーダインスタンスを使用して、既に議論されたように、ビデオフレームをＩフレームとして符号化してよい。一方で、場面変化が存在しないとブロック４２で判断されると、図示されたブロック４６は、Ｐフレームが相対的な高速運動を含むかを判断する。この点において、ブロック４６での動きレベルの判断は、多数の異なる方法で行われうる。
＜動きレベル‐符号化ビット差＞
【００３１】
低遅延アプリケーションにおける場面変化に関連して既に議論されたように、符号化ビット差は、動きレベルの判断に有用なメトリックでありうる。具体的には、ビデオコンテンツにおける１または複数のフレームの総ピクセル値を調整することで調整ピクセル値を得るべく、１または複数の動きレベル閾値（例えばＴｆａｓｔ，Ｔｍｅｄｉｕｍ）が使用されうる。ここで、符号化ビット差と調整ピクセル値との比較が行われうる。例えば、フレームｎ＋１は、次式の場合に高速運動を含むと判断されうる。
【００３２】
Ｔｆａｓｔ＊Ｎ≦｜Ｂ（ｎ＋１）−Ｂ（ｎ）｜＜Ｔｓｃ＊Ｎ    （４）
【００３３】
ここで、Ｎはビデオフレームにおける画素の総数である。さらに、第２エンコーダインスタンスは、動きレベルの判断に基づいて、Ｐフレーム及びＢフレームの符号化スキームを選択しうる。これにより、高速運動がブロック４６で検出されると、図示されたブロック４８は、第２エンコーダインスタンスを使用して、ビデオフレームをＰフレームとして符号化する。さもなければ、第１エンコーダインスタンスからのＰフレームが中間運動を含むか否かに関する判断がブロック５０で行われる。同様に、フレームｎ＋１は、次式の場合に中間運動を含むと判断されうる。
【００３４】
Ｔｍｅｄｉｕｍ＊Ｎ≦｜Ｂ（ｎ＋１）−Ｂ（ｎ）｜＜Ｔｆａｓｔ＊Ｎ    （５）
【００３５】
中間運動が検出されると、ブロック５２は、第２エンコーダインスタンスを使用して、ビデオフレームをＰフレームまたはＢフレームの一方として符号化してよい。ここで、Ｂフレームの数は相対的に低く維持されうる（例えば各Ｐフレームの後に１つのＢフレーム）。フレームｎ＋１は、次式の場合にスローモーションを含むと判断されうる。
【００３６】
｜Ｂ（ｎ＋１）−Ｂ（ｎ）｜＜Ｔｍｅｄｉｕｍ＊Ｎ    （６）
【００３７】
中間運動が検出されないと、ブロック５４は、やはり第２エンコーダインスタンスを使用して、ビデオフレームをＰフレームまたはＢフレームの一方として符号化してよいが、Ｂフレームの数は相対的に高い（例えば各Ｐフレームの後に２またはそれより多くのＢフレーム）。
＜動きレベル‐動きベクトル＞
【００３８】
動きレベルを判断する、よりロバストな代案は、動きベクトル情報を使用することでありうる。具体的には、平均動きベクトルが、ビデオコンテンツにおける１または複数のフレームに対し上記の等式（２）に従って決定されうる。ここで、動きレベルを検出すべく、平均動きベクトルと、１または複数の動きレベル閾値（例えばＴＭＶｆａｓｔ、ＴＭＶｍｅｄｉｕｍ）との比較が行われうる。これにより、フレームｎ＋１は、次式の場合に高速運動を含むとブロック４６で判断されうる。
【００３９】
ＴＭＶｆａｓｔ≦｜ＭＶａｖｇ，ｎ＋１−ＭＶａｖｇ，ｎ｜＜ＴＭＶｓｃ    （７）
【００４０】
ここで、ＴＭＶｆａｓｔは高速運動に対する動きレベル閾値である。さらに、フレームｎ＋１は、次式の場合に中間運動を含むとブロック５０で判断されうる。
【００４１】
ＴＭＶｍｅｄｉｕｍ≦｜ＭＶａｖｇ，ｎ＋１−ＭＶａｖｇ，ｎ｜＜ＴＭＶｆａｓｔ    （８）
【００４２】
ここで、ＴＭＶｍｅｄｉｕｍは、中間運動に対する動きレベル閾値である。更に、フレームｎ＋１は、次式の場合にスローモーションを含むとブロック５０で判断されうる。
【００４３】
｜ＭＶａｖｇ，ｎ＋１−ＭＶａｖｇ，ｎ｜＜ＴＭＶｍｅｄｉｕｍ
【００４４】
更に、ハードウェアビデオエンコーダにおいてマクロブロックに対して平均動きベクトルが得られない場合には、ビデオコンテンツにおける動きレベルを判断するべく、他のアプローチは、インターコーディング（例えばＰフレーム及びＢフレーム）マクロブロックをカウントしてよい。これにより、相対的に多い数の、インターコーディングマクロブロックは、そのような例において、より多くの動きを示しうる。
【００４５】
ブロック５６は、ビデオコンテンツにおけるラストフレームに遭遇したかを判断しうる。そうである場合には、方法３６は終了しうる。さもなければ、方法３６は、ビデオコンテンツにおける残りの複数のフレームに対して反復しうる。
【００４６】
図４は、ハードウェアビデオエンコーダ１２の一例をより詳細に示す。図示された例において、第１エンコーダインスタンス１２ａは、複数の場面変化閾値に基づいてビデオコンテンツにおける複数のフレームの総ピクセル値を調整して複数の調整ピクセル値を得るピクセルモジュール５８を有する。一例において、閾値モジュール６６は、第１エンコーダインスタンス１２ａの複数の量子化パラメータと、ビデオコンテンツに関連付けられた複数のカテゴリに基づいて複数の場面変化閾値を選択する。場面変化閾値はまた、ビデオエンコーダの外部で選択されうる（例えば、プログラマブルソフトウェアにより）。加えて、比較モジュール６０は、ビデオコンテンツの複数のフレームに関連付けられた符号化ビット差と、複数の調整ピクセル値との比較を行ってよい。更に、場面変化モジュール６２は、比較モジュール６０により行われた比較に基づいて場面変化の判断を引き起こしてよい。
【００４７】
例示された第１エンコーダインスタンス１２ａはまた、ビデオコンテンツにおける複数のフレームに対する複数の平均動きベクトルを決定する動きベクトルモジュール６４を有する。比較モジュール６０は、複数の平均動きベクトルと複数の場面変化動きベクトル閾値との比較を行ってよい。したがって、場面変化モジュール６２はまた、動きベクトルモジュール６４に由来する情報に基づいて場面変化の判断を引き起こしてよい。
【００４８】
第１エンコーダインスタンス１２のピクセルモジュール５８はまた、１または複数の動きレベル閾値に基づいてビデオコンテンツにおける複数のフレームの複数の総ピクセル値を調整して複数の調整ピクセル値を得てよい。そのような場合には、比較モジュール６０は、ビデオコンテンツにおける複数のフレームに関連付けられた符号化ビット差と、複数の調整ピクセル値との比較を行ってよい。動きレベルモジュール６８は、この比較に基づいて動きレベルの判断を引き起こしてよい。
【００４９】
図示された第１エンコーダインスタンス１２ａの動きベクトルモジュール６４はまた、ビデオコンテンツにおける複数のフレームに対する複数の平均動きベクトルを決定する。そのような場合には、比較モジュール６０は、複数の平均動きベクトルと、１または複数の動きレベル閾値との比較を行ってよい。動きレベルモジュール６８は、動きベクトルモジュール６４に由来する情報に基づいて動きレベルの判断を引き起こしてよい。既に説明したように、第１エンコーダインスタンス１２ａが動きベクトルモジュール６４を有さない（例えば、マクロブロックに対する動きベクトル情報が得られない）場合には、遭遇されたインターコーディングマクロブロックの数に基づいて、ビデオコンテンツにおける動きレベルを決定するためにインターコーディングマクロブロックカウンタ７０が使用されうる。
【００５０】
既に説明したように、第２エンコーダインスタンス１２ｂは、第１エンコーダインスタンス１２ａにより行われた場面変化及び動きレベルの判断に基づいてビデオコンテンツを符号化するために使用されうる。より詳細には、第２エンコーダインスタンス１２ｂは、動きレベルの判断に基づいてＰフレーム／Ｂフレームの符号化スキームを選択するＰフレーム／Ｂフレームスキームセレクタ７２を有してよい。
【００５１】
図５は、システム７００の実施形態を示す。複数の実施形態では、システム７００はメディアシステムであってよいが、システム７００はこのコンテキストに限定されない。例えば、システム７００は、パーソナルコンピュータ（ＰＣ），ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレットまたはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどに組み込まれうる。これにより、システム７００は、本明細書で示されるように、ビデオビットストリームを表示するために用いられうる。
【００５２】
複数の実施形態では、システム７００は、ディスプレイ７２０に結合されたプラットフォーム７０２を備える。プラットフォーム７０２は、コンテンツサービスデバイス７３０またはコンテンツ配信デバイス７４０または他の同様のコンテンツソースなどのコンテンツデバイスから、ビデオビットストリームコンテンツを受信してよい。１または複数のナビゲーション機能を有するナビゲーションコントローラ７５０は、例えば、プラットフォーム７０２および／またはディスプレイ７２０と相互作用するために用いられてよい。これらのコンポーネントのそれぞれは、以下でより詳細に説明される。
【００５３】
複数の実施形態では、プラットフォーム７０２は、チップセット７０５、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィックスサブシステム７１５、アプリケーション７１６および／または無線機７１８の何らかの組み合わせを備えてよい。チップセット７０５は、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィックスサブシステム７１５、アプリケーション７１６および／または無線機７１８の間の相互通信を提供しうる。例えば、チップセット７０５は、ストレージ７１４との相互通信を提供できるストレージアダプタ（図示せず）を有してよい。
【００５４】
プロセッサ７１０は、複合命令セットコンピュータ（ＣＩＳＣ）または縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セットコンパーチブルプロセッサ、マルチコア、または他の任意のマイクロプロセッサまたは中央処理ユニット（ＣＰＵ）として実施されてよい。複数の実施形態では、プロセッサ７１０は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどを有してよい。
【００５５】
メモリ７１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）などの揮発性メモリデバイスとして実装されてよいが、これに限定されない。
【００５６】
ストレージ７１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部格納デバイス、装着格納デバイス、フラッシュメモリ、バッテリバックアップされたＳＤＲＡＭ（同期ＤＲＡＭ）、および／または、ネットワークアクセス可能な格納デバイスなどの非揮発性格納デバイスとして実装されてよいが、これに限定されない。複数の実施形態では、ストレージ７１４は、例えば複数のハードドライブが含まれる場合に、貴重なデジタルメディアの保護を高めるために記憶性能を向上させる技術を備えうる。
【００５７】
グラフィックスサブシステム７１５は、表示される静止画又は動画などの画像の処理を実行しうる。グラフィックスサブシステム７１５は、例えば、グラフィクプロセッシングユニット（ＧＰＵ）またはビジュアル処理ユニット（ＶＰＵ）であってよい。したがって、グラフィックスサブシステム７１５は、既に議論されたハードウェアビデオエンコーダ１２（図１及び図４）を有してよい。加えて、プロセッサ７１０は、例えば、既に議論された方法２２（図２）および／または方法３６（図３）などの複数の方法を、メモリ７１２、ストレージ７１４または他の適当なソースから得られる複数の命令を介して実行するよう構成されてよい。アナログまたはデジタルインタフェースが、グラフィックスサブシステム７１５及びディスプレイ７２０に通信可能に結合するために用いられうる。例えば、インタフェースは高解像度マルチメディアインタフェース、ディスプレイポート、無線ＨＤＭＩ（登録商標）および／または無線ＨＤ準拠技術の何れかであってよい。グラフィックスサブシステム７１５は、プロセッサ７１０またはチップセット７０５に統合されてよい。グラフィックスサブシステム７１５は、チップセット７０５に通信可能に結合された据え置き型カードであってよい。
【００５８】
本明細書で示されるグラフィックスおよび／またはビデオ処理技術は、多様なハードウェアキテクチャで実施されうる。例えば、グラフィックスおよび／またはビデオ機能は、チップセット内に統合されてよい。代替的に、別々のグラフィックスおよび／またはビデオプロセッサが使用されてよい。さらに他の実施形態として、グラフィックスおよび／またはビデオ機能は、マルチコアプロセッサを含む汎用プロセッサによって実行されてよい。さらなる実施形態において、当該機能は家庭用電子機器内で実行されてよい。
【００５９】
無線機７１８は、種々の適当な無線通信技術を用いて信号を送受信できる１または複数の無線機を有してよい。そのような技術は、１または複数の無線ネットワークにまたがる通信を伴ってよい。無線ネットワークの例は、無線ローカルエリアネットワーク（ＷＬＡＮ）、ワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ），ワイヤレスメトロポリタンエリアネットワーク（ＷＭＡＮ）、携帯電話ネットワーク及び衛星ネットワークを含む（但し、これに限定されない）。そのような複数のネットワークにまたがる通信において、無線機７１８は、任意のバージョンの１または複数の適用可能な規格に従って動作しうる。
【００６０】
複数の実施形態では、ディスプレイ７２０は、任意のテレビ型モニタまたはディスプレイを有してよい。ディスプレイ７２０は、例えば、コンピュータディスプレイ画面、タッチスクリーンディスプレイ、ビデオモニタ、テレビのようなデバイス、および／またはテレビを有してよい。ディスプレイ７２０は、デジタルおよび／またはアナログであってよい。複数の実施形態では、ディスプレイ７２０はホログラフィックディスプレイであってよい。さらに、ディスプレイ７２０は、視覚投影を受信しうる透明な面であってよい。そのような投影は、多様な形態の情報、画像および／またはオブジェクトを伝達しうる。例えば、そのような投影は、モバイル拡張現実（ＭＡＲ）アプリケーションのためのビジュアルオーバーレイであってよい。１または複数のソフトウェアアプリケーション７１６の制御下で、プラットフォーム７０２は、ディスプレイ７２０上にユーザインターフェース７２２を表示してよい。
【００６１】
複数の実施形態では、コンテンツサービスデバイス７３０は、任意の国営の、国際の、および／または、独立したサービスにより提供されてよく、これにより、例えば、インターネットを介してプラットフォーム７０２にアクセス可能である。コンテンツサービスデバイス７３０は、プラットフォーム７０２および／またはディスプレイ７２０に結合されてよい。プラットフォーム７０２および／またはコンテンツサービスデバイス７３０は、ネットワーク７６０へ、及びネットワーク７６０からメディア情報を通信（例えば送信および／または受信）すべく、ネットワーク７６０に結合されてよい。コンテンツ配信デバイス７４０はまた、プラットフォーム７０２および／またはディスプレイ７２０に結合されてよい。
【００６２】
複数の実施形態では、コンテンツサービスデバイス７３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット有効デバイス、またはデジタル情報および／またはコンテンツの配信可能な装置、及び、コンテンツプロバイダとプラットフォーム７０２及び／ディスプレイ７２０との間でネットワーク７６０を介してまたは直に一方向または双方向にコンテンツを通信可能な他の任意の同様のデバイスを有してよい。コンテンツがネットワーク７６０を介してシステム７００と、コンテンツプロバイダとのコンポーネントの何れか１つへ、及び、１つから、一方向および／または双方向に通信されうることは評価されるだろう。コンテンツの例は、例えば、ビデオ、音楽、医学及びゲーム情報などを有する任意のメディア情報を含んでよい。
【００６３】
コンテンツサービスデバイス７３０は、メディア情報、デジタル情報を有するケーブルテレビプログラムなどのコンテンツ、および／または他のコンテンツを受信する。コンテンツプロバイダの例は、任意のケーブル若しくは衛星テレビ、または、無線機若しくはインターネットコンテンツプロバイダを含んでよい。提供された例は、本発明の複数の実施形態を限定することを意味しない。
【００６４】
複数の実施形態では、プラットフォーム７０２は、１または複数のナビゲーション機能を有するナビゲーションコントローラ７５０から制御信号を受信しうる。コントローラ７５０のナビゲーション機能は、例えば、ユーザインターフェース７２２と相互作用するために用いられうる。複数の実施形態では、ナビゲーションコントローラ７５０は、ユーザが空間（例えば連続かつ多次元の）データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント（具体的にはヒューマンインターフェースデバイス）でありうるポインティングデバイスであってよい。グラフィカルユーザインタフェース（ＧＵＩ）、テレビ及びモニタなどの多くのシステムは、ユーザが身体的ジェスチャを用いてコントロールを行い、コンピュータまたはテレビにデータを提供することを可能にする。
【００６５】
コントローラ７５０のナビゲーション機能の動作は、ポインタ、カーソル、フォーカスリング、またはディスプレイ上に表示される他の視覚的インジケータの動きによってディスプレイ（例えばディスプレイ７２０）上に反映されてよい。例えば、ソフトウェアアプリケーション７１６の制御下で、ナビゲーションコントローラ７５０に位置付けられたナビゲーション機能は、例えばユーザインターフェース７２２上に表示された仮想ナビゲーション機能にマッピングされてよい。複数の実施形態では、コントローラ７５０は、別個のコンポーネントでないかも知れないが、プラットフォーム７０２および／またはディスプレイ７２０に統合されてよい。しかしながら、複数の実施形態は、本明細書で示されるまたは記載されるエレメントまたはコンテキストには限定されない。
【００６６】
複数の実施形態では、複数のドライバ（不図示）は、例えば、有効化された場合に、初期ブートアップ後にボタンに触れることでそうなるテレビのように、ユーザにプラットフォーム７０２をただちにオン・オフ可能とする技術を備えてよい。プラットフォームが"オフ"にされた場合に、プログラムロジックは、プラットフォーム７０２に、複数のメディアアダプタ、または他のコンテンツサービスデバイス７３０、またはコンテンツ配信デバイス７４０へ、コンテンツをストリーム配信させることを許容してよい。加えて、チップセット７０５は、例えば、５．１サラウンドサウンドオーディオおよび／または高品質の７．１サラウンドサウンドオーディオをサポートするハードウェアおよび／またはソフトウェアを備えてよい。複数のドライバは、集中画像表示プラットフォームのためのグラフィックスドライバを有してよい。複数の実施形態では、グラフィックスドライバは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレスグラフィックスカードを備えてよい。
【００６７】
様々な実施形態において、システム７００において示された複数のコンポーネントのうちいずれか１つまたは複数が統合されてもよい。例えば、プラットフォーム７０２とコンテンツサービスデバイス７３０とが統合されてよく、或いは、プラットフォーム７０２とコンテンツ配信デバイス７４０が統合化されてよく、或いは、例えばプラットフォーム７０２とコンテンツサービスデバイス７３０とコンテンツ配信デバイス７４０とが統合されてもよい。様々な実施形態において、プラットフォーム７０２とディスプレイ７２０とは、統合されたユニットであってよい。例えば、ディスプレイ７２０とコンテンツサービスデバイス７３０が統合化されてよく、或いは、ディスプレイ７２０とコンテンツ配信デバイス７４０が統合されてよい。これらの複数の例は、本発明の複数の実施形態を限定することを意味しない。
【００６８】
様々な実施形態において、システム７００は、無線システム、有線システム、または両方の組み合わせとして実装されてよい。無線システムとして実装される場合には、システム７００は、例えば、１または複数のアンテナ、送信機、受信機、トランシーバ、アンプ、フィルタ、制御ロジックなどの、無線共有媒体で通信するのに好適な複数のコンポーネントおよび複数のインタフェースを備えてよい。無線共有媒体の一例として、ＲＦスペクトルなどの無線スペクトルの部分を有してよい。有線システムとして実装される場合には、システム７００は、例えば入出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体と接続するための物理コネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどの有線通信媒体で通信するのに好適な複数のコンポーネントおよび複数のインタフェースを備えてよい。有線通信媒体の例は、ワイヤ、ケーブル、金属リード線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバーなどを含んでよい。
【００６９】
プラットフォーム７０２は、情報を通信するために、１または複数のロジックチャネルまたは物理チャネルを確立してよい。この情報は、メディア情報および制御情報を含んでよい。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを参照してよい。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子通信メールメッセージ（電子メール）、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキストなどからのデータを有してよい。音声会話からのデータは、例えば、音声情報、沈黙時間、背景雑音、快適雑音、トーンなどであってよい。制御情報は、自動化されたシステム向けの、コマンド、命令、制御単語を表す任意のデータを参照してよい。例えば、制御情報は、システムを介してメディア情報を送信するために、または、所定の態様でメディア情報を処理するようノードに指示するために用いられてよい。しかしながら、これら複数の実施形態は、これら複数の要素に、あるいは図５で示されまたは記載されたコンテキストにおいて、限定されない。
【００７０】
上述のように、システム７００は、物理的な様式やフォームファクターを変化させながら実装されてよい。図６は、システム７００が実装されてよいスモールフォームファクタデバイス８００の複数の実施形態を示す。複数の実施形態では、例えばデバイス８００は、無線機能を備えるモバイルコンピューティングデバイスとして実装されてよい。モバイルコンピューティングデバイスは、プロセッシングシステムおよび、例えば１または複数のバッテリなどのモバイル電源を備える任意のデバイスを参照してよい。
【００７１】
上述のように、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ（ＰＣ），ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えばスマートフォン、スマートタブレット、またはスマートテレビ）,モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどを含んでよい。
【００７２】
モバイルコンピューティングデバイスの例は、また、人の身に着けられるよう構成された複数のコンピュータを含んでよく、例えば、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣服コンピュータ、その他の身に着けることが可能なコンピュータなどである。複数の実施形態では、例えば、モバイルコンピューティングデバイスは、音声通信および／またはデータ通信だけでなくコンピュータアプリケーションを実行することが可能なスマートフォンとして実装されてよい。例を挙げる目的で、幾つかの実施形態が、スマートフォンとして実装されたモバイルコンピューティングデバイスと共に説明されるかもしれないが、他の複数の実施形態が、他の無線モバイルモバイルコンピューティングデバイスを同様に用いて実装されうることは当然であってよい。複数の実施形態は、このコンテキストに限定されない。
【００７３】
図６に示されるように、デバイス８００は、ハウジング８０２、ディスプレイ８０４、入出力（Ｉ／Ｏ）デバイス８０６およびアンテナ８０８を備える。デバイス８００はまた、ナビゲーション機能８１２を備えてよい。ディスプレイ８０４は、モバイルコンピューティングデバイスに適切な情報を表示するのに好適な任意のディスプレイユニットを有してよい。Ｉ／Ｏデバイス８０６は、モバイルコンピューティングデバイスに情報を入力するのに好適な任意のＩ／Ｏデバイスを有してよい。Ｉ／Ｏデバイス８０６の例は、英数字キーボード、テンキーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイス及びソフトウェアなどを含んでよい。情報は、また、マイクを用いてデバイス８００入力されてよい。そのような情報は、音声認識デバイスによってデジタル化されてよい。複数の実施形態は、このコンテキストに限定されない。
【００７４】
これにより、本明細書で示される技術は、ハードウェアエンコーダが存在するが専用のビデオ前処理ハードウェアが存在しないようなモバイルデバイスにおけるカメラ記録アプリケーションに適用されうる。そのような場合には、符号化されたビデオは、同一ビットレートでより良い視覚的な品質を有しうる。更に、ライブ記録及び配信のアプリケーションのために、コーディングの効率性が実質的に向上しうる。
【００７５】
複数のハードウェア要素、複数のソフトウェア要素、または両方の組み合わせを用いて、様々な実施形態が実装されてよい。複数のハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子（例えばトランジスタ、抵抗、キャパシタ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム式論理デバイス（ＰＬＤ）、デジタルシグナルプロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなど、を含んでよい。複数のソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース（ＡＰＩ）、命令セット、演算コード、コンピュータコード、コードセグメント、コンピュータ・コード・セグメント、ワード、値、記号、またはこれらの任意の組み合わせを含んでよい。ある実施形態がハードウェア要素および／またはソフトウェア要素を用いて実装されるか否かを決定することは、望ましい演算レート、電力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード、およびその他の設計上または性能上の制約などの任意の数の要因によって異なってよい。
【００７６】
少なくとも１つの実施形態の１または複数の特徴は、プロセッサ内の様々なロジックを表すマシン可読媒体上に格納された複数の代表的命令により実装されうる。複数の代表的命令は、機械により読み取られると、機械に、本明細書で示される複数の技術を実行するロジックを作成させる。「ＩＰコア」として知られたそのような複数の表現は、有形のマシン可読媒体上に格納され、様々な顧客、または実際にロジックまたはプロセッサを作製する複数の製造機械にロードする複数の製造設備に提供され得る。
【００７７】
本発明の複数の実施形態は、全てのタイプの半導体集積回路（「ＩＣ」）チップでの使用に適用可能である。これらＩＣチップの例には、これらに限定されるわけではないが、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ、およびその他が含まれる。加えて、いくつかの図面において、信号線は線で表されている。あるものはより多くの成分信号パスを示すべく異なっており、あるものは多数の成分信号パスを示すべく数の符号を有しており、および／または、あるものは主な情報のフロー方向を示すべく、１または複数の端部において矢印を有している。しかしこのことは、限定的に解釈されるべきではない。むしろそのような追加された詳細は、回路の容易な理解を促すべく、１または複数の例示的な実施形態に関連して用いられ得る。追加的な情報を有していようといなかろうと、何らかの示された信号線は、実際には複数の方向に移動し得る１または複数の信号を備えてよく、例えば、差動対を用いて実装されるデジタルまたはアナログ線、光ファイバー線、および／またはシングルエンド線など何らかの適したタイプの信号方式を用いて実装され得る。
【００７８】
例示的なサイズ／モデル／値／範囲が提示されているかもしれないが、本発明の実施形態はそれらに限定されない。製造技術（例えばフォトリソグラフィ）が時の経過と共に成熟するにつれ、より小さいサイズのデバイスが製造され得ることが予期される。加えて、ＩＣチップおよび他のコンポーネントへの周知の電力／接地接続が図面内に示されていることもあり、示されていないこともある。これは図示および説明を単純にするためであり、本発明の実施形態の特定の特徴を曖昧にしないようにするためである。さらに、本発明の実施形態を曖昧にすることを避けるべく、および、そのようなブロック図の構成の実装に関する詳細が、実施形態が実装されるプラットフォームに大いに依存している、つまり、そのような詳細が十分に当業者の理解の範囲内であるという事実に鑑みて、ブロック図の形態で構成が示されているかもしれない。本発明の例示的な実施形態を説明するべく、特定の詳細（例えば回路）が明記されている場合、本発明の実施形態がこれら特定の詳細を用いなくとも、またはそれらの変形例を用いて実施され得ることが当業者には明らかであろう。したがって説明は、限定するものではなく例示するものとして見なされるべきである。
【００７９】
幾つかの実施形態は、例えば、マシン、若しくはマシンにより実行された場合に実施形態に係る方法および／またはオペレーションを当該マシンに実行させる命令または命令セットを格納し得る有形のコンピュータ可読媒体または物品を用いて実装され得る。そのようなマシンには、例えば、何らかの適した処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサ、またはその他が含まれ得、ハードウェアおよび／またはソフトウェアの何らかの適した組み合わせを用いて実装され得る。マシン可読媒体または物品には、例えば、何らかの適したタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、ストレージデバイス、記憶物品、記憶媒体、および／または記憶ユニットが含まれ得、それらの例には、例えば、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクレコーダブル（ＣＤ−Ｒ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、光ディスク、磁気媒体、光磁気媒体、取り外し可能メモリカードまたはディスク、様々なタイプのデジタル多用途ディスク（ＤＶＤ）、テープ、カセット、またはその他が含まれ得る。命令は、何らかの適した高級言語、低級言語、オブジェクト指向言語、視覚言語、コンパイラ型および／またはインタープリタ型プログラミング言語を用いて実装される、ソースコード、コンパイラ型コード、インタープリタ型コード、実行可能コード、静的コード、動的コード、暗号化コード、およびその他など何らかの適したタイプのコードを含み得る。
【００８０】
特に異なるように述べない限り、「処理」、「演算」、「計算」、「決定」、またはその他などの用語は、コンピューティングシステムのレジスタおよび／またはメモリ内で物理量（例えば、電子的）として表されるデータを操作する、および／またはコンピューティングシステムのメモリ、レジスタ、または他のそのような情報記憶、送信またはディスプレイデバイス内で同様に物理量として表される他のデータに変換する、コンピュータまたはコンピューティングシステム、若しくは同様の電子コンピューティングデバイスの動作および／または処理を指し得ることが理解されよう。実施形態はこのコンテキストに限定されない。
【００８１】
「結合された」という用語は本明細書において、対象のコンポーネント間の直接的または間接的な何らかのタイプの関係を指すのに用いられ得、電子的、機械的、流体的、光学的、電磁気的、電気機械的、または他のタイプの接続に適用され得る。加えて、「第１」、「第２」、その他の用語は本明細書において、説明を容易にするためのみに用いられており、異なるように示されていない限り、何ら特定の時間的または時系列的な意味を伝えない。
【００８２】
当業者は上記の説明から、本発明の実施形態の幅広い技術が、様々な形態で実装され得ることを理解されよう。したがって、特定の例に関連して本発明の実施形態が説明されてきたが、本発明の実施形態の真の態様はそのように限定されるべきではない。なぜなら、当業者が図面、明細書、および以下の請求項を検討することにより、他の修正が明らかとなるからである。
【図１】
2016504829.tif 000004
【図２】
2016504829.tif 000005
【図３】
2016504829.tif 000006
【図４】
2016504829.tif 000007
【図５】
2016504829.tif 000008
【図６】
2016504829.tif 000009
【国際調査報告】
2016504829.tif 000010
2016504829.tif 000011