(57)【要約】  一例では、方法は、符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することとを含む。本方法はまた、決定された動作特性に少なくとも部分的に基づいて、第１のビデオ品質を維持しながら、符号化パラメータを調整することと、調整された符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することとを含む。
2017504255.tif 000002
【特許請求の範囲】
【請求項１】
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を備える、方法。
【請求項２】
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記方法が、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて前記符号化パラメータを調整することをさらに備える
請求項１に記載の方法。
【請求項３】
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記方法が、
ピクセル処理レートしきい値を取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整することをさらに備える
請求項１に記載の方法。
【請求項４】
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記方法が、
バッテリー状態しきい値を取得すること
をさらに備え、
前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整することを備える
請求項１に記載の方法。
【請求項５】
前記１つまたは複数の構成要素に関する電力バジェットを取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整することをさらに備える
請求項１に記載の方法。
【請求項６】
前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整することを備える、請求項１に記載の方法。
【請求項７】
前記推定される電力消費を決定することが、前記符号化されたビデオデータに関する記憶先、または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定することを備える、請求項６に記載の方法。
【請求項８】
前記推定される電力消費を決定することが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定することを備える、請求項７に記載の方法。
【請求項９】
前記符号化パラメータを調整することが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化することを備える、請求項１に記載の方法。
【請求項１０】
前記符号化パラメータを決定することが、前記ビデオデータのインター予測コーディングを実行するためのサーチ領域サイズを調整することを備える、請求項１に記載の方法。
【請求項１１】
前記符号化パラメータを調整することが、インター予測コーディングおよびイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定することを備える、請求項１に記載の方法。
【請求項１２】
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイス状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じると、前記ビデオデータの前記トランスコーディングを停止することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記第１のビデオ品質を維持することが、符号化されたビデオデータの圧縮レートを改変することを備える、請求項１に記載の方法。
【請求項１４】
前記第１の品質を維持することが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを固定レベルで設定することを備える、請求項１に記載の方法。
【請求項１５】
ビデオデータを記録するように構成された１つまたは複数の構成要素と、
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された前記電子デバイスの前記１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を行うように構成された１つまたは複数のプロセッサと
を備える、電子デバイス。
【請求項１６】
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記１つまたは複数のプロセッサが、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて、前記符号化パラメータを調整するように構成される
請求項１５に記載の電子デバイス。
【請求項１７】
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記１つまたは複数のプロセッサが、
ピクセル処理レートしきい値を取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整するように構成される
請求項１５に記載の電子デバイス。
【請求項１８】
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記１つまたは複数のプロセッサが、
バッテリー状態しきい値を取得する
ようにさらに構成され、
前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整するように構成される
請求項１５に記載の電子デバイス。
【請求項１９】
前記１つまたは複数のプロセッサが、
前記１つまたは複数の構成要素に関する電力バジェットを取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整するように構成される
請求項１５に記載の電子デバイス。
【請求項２０】
前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整するように構成される、請求項１５に記載の電子デバイス。
【請求項２１】
前記推定される電力消費を決定するために、前記１つまたは複数のプロセッサが、前記符号化されたビデオデータに関する記憶先、または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定するように構成される、請求項２０に記載の電子デバイス。
【請求項２２】
前記推定される電力消費を決定するために、前記１つまたは複数のプロセッサが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定するように構成される、請求項２１に記載の電子デバイス。
【請求項２３】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化するように構成される、請求項１５に記載の電子デバイス。
【請求項２４】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータのインター予測コーディングを実行するためにサーチ領域サイズを調整するように構成される、請求項１５に記載の電子デバイス。
【請求項２５】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、インター予測コーディングおよびイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定するように構成される、請求項１５に記載の電子デバイス。
【請求項２６】
前記１つまたは複数のプロセッサが、
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイス状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じると、前記ビデオデータの前記トランスコーディングを停止することと
を行うようにさらに構成される、請求項１５に記載の電子デバイス。
【請求項２７】
前記第１のビデオ品質を維持するために、前記１つまたは複数のプロセッサが、符号化されたビデオデータの圧縮レートを改変するように構成される、請求項１５に記載の電子デバイス。
【請求項２８】
前記第１の品質を維持するために、前記１つまたは複数のプロセッサが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを固定レベルで設定するように構成される、請求項１５に記載の電子デバイス。
【請求項２９】
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化するための手段と、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定するための手段と、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整するための手段と、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化するための手段と
を備える、装置。
【請求項３０】
実行されると、電子デバイスの１つまたは複数のプロセッサに、
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を行わせる命令を記憶した
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、２０１３年１２月２０日に出願された米国仮出願第６１／９１９，５１３号の利益を主張する。
【０００２】
[0002]本開示は、コンピューティングデバイスを用いてビデオデータをレンダリングするための技法に関する。
【背景技術】
【０００３】
[0003]モバイルデバイスは、モバイル電話、タブレットコンピュータ、ラップトップコンピュータ、ワイヤレス通信カードを備えたポータブルコンピュータ、携帯情報端末（ＰＤＡ）、デジタルカメラ、ビデオゲームデバイス、ポータブルメディアプレーヤ、ワイヤレス通信機能を備えたフラッシュメモリデバイス、いわゆる「スマート」フォンおよび「スマート」パッドもしくは「スマート」タブレット、または電子リーダーを含むワイヤレス通信デバイス、あるいは多種多様な他のタイプのポータブルデバイスの他のものの形態をとってよい。高出力プロセッサと、メディアコンテンツを処理するための機能と、クラウド内でネットワークと対話するための能力とが加わり、モバイルデバイスはますます強力になってきている。デバイスの処理電力および機能の進歩はまた、デバイスの電力を消費させ、および／または熱を生じさせる可能性がある。
【発明の概要】
【０００４】
[0004]本開示の技法は、電子デバイスの１つまたは複数の動作特性を決定することと、デバイスの決定された動作特性に少なくとも部分的に基づいて、デバイスを用いてビデオデータを符号化するための符号化パラメータを決定することとを含む。いくつかの例では、符号化パラメータは、同じく特定の温度および／または電力しきい値未満で動作する状態にデバイスを保ちながら、符号化されたビデオの品質を維持するように選択され得る。
【０００５】
[0005]一例では、方法は、符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、決定された動作特性に少なくとも部分的に基づいて、第１のビデオ品質を維持しながら、符号化パラメータを調整することと、調整された符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することとを含む。
【０００６】
[0006]別の例では、電子デバイスは、ビデオデータを記録するように構成された１つまたは複数の構成要素と１つまたは複数のプロセッサとを含む。１つまたは複数のプロセッサは、符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、決定された動作特性に少なくとも部分的に基づいて、第１のビデオ品質を維持しながら、符号化パラメータを調整することと、調整された符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することとを行うように構成される。
【０００７】
[0007]別の例では、装置は、符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化するための手段と、ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定するための手段と、決定された動作特性に少なくとも部分的に基づいて、第１のビデオ品質を維持しながら、符号化パラメータを調整するための手段と、調整された符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化するための手段とを含む。
【０００８】
[0008]別の例では、非一時的コンピュータ可読媒体は、実行されると、電子デバイスの１つまたは複数のプロセッサに、符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、決定された動作特性に少なくとも部分的に基づいて、第１のビデオ品質を維持しながら、符号化パラメータを調整することと、調整された符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することとを行わせる命令を記憶している。
【０００９】
[0009]本開示の１つまたは複数の態様の詳細が、添付の図面および以下の説明において記載される。本開示で説明される技法の他の特徴、目的、および利点は、これらの説明および図面から、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]本開示の技法を実装し得る例示的なデバイスを示す図。
【図２】[0011]本開示の技法を実装し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図３】[0012]本開示の技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図４】[0013]本開示の技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図５】[0014]本開示の技法を実装するように構成され得るデバイスの一例を示すブロック図。
【図６】[0015]ビデオシーケンス内のピクチャグループ（ＧＯＰ：group of pictures）の概念図。
【図７】[0016]参照ピクチャ内のサーチ領域を示す概念図。
【図８Ａ】[0017]イントラ予測モードを示す概念図。
【図８Ｂ】イントラ予測モードを示す概念図。
【図９】[0018]本開示の態様による、ビデオデータを符号化するための例示的なプロセスを示す図。
【図１０】[0019]本開示の態様による、ビデオデータを符号化するためのもう１つの例示的なプロセスを示す図。
【図１１】[0020]本開示の態様による、符号化されたビデオデータをトランスコードするための例示的なプロセスを示す図。
【図１２】[0021]本開示の態様による、デバイスの電力消費を決定するための例示的なプロセスを示す図。
【図１３】[0022]本開示の態様による、符号化パラメータを決定するための例示的なグラフ。
【図１４】[0023]本開示の態様による、ビデオデータを符号化するための例示的なプロセスを示す流れ図。
【発明を実施するための形態】
【００１１】
[0024]本開示の技法は、電子デバイスの１つまたは複数の動作特性を決定することと、デバイスの決定された動作特性に少なくとも部分的に基づいて、デバイスを用いてビデオデータを符号化するための符号化パラメータを決定することとを含む。いくつかの例では、符号化パラメータは、同じく特定の温度および／または電力しきい値未満で動作する状態にデバイスを保ちながら、符号化されたビデオの品質を維持するように選択され得る。
【００１２】
[0025]図１は、本開示の技法を実装し得る例示的なデバイスを示す。図１の例では、デバイス４Ａはディスプレイ５Ａとピクチャインピクチャ（ＰＩＰ）ウィンドウ６Ａとを含む。加えて、デバイス４Ｂは、ディスプレイ５Ｂと、第１のＰＩＰウィンドウ６Ｂと、第２のＰＩＰウィンドウ７Ｂとを含む。
【００１３】
[0026]デバイス４Ａおよび４Ｂは、たとえば、いわゆる「スマート」フォンなどの電話ハンドセット、タブレットコンピュータ、カメラ、ノートブック（すなわち、ラップトップ）コンピュータ、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含めて、広範囲のデバイスのうちのいずれかを備え得る。デバイス４Ａおよび４Ｂはポータブルデバイスであってよいが、本開示の技法はこのように限定されない。たとえば、他の態様によれば、本技法は、デスクトップコンピュータ、セットトップボックス、テレビジョン、または他のデバイスとともに使用され得る。
【００１４】
[0027]ディスプレイ５Ａおよび５Ｂは、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、またはユーザに対して明瞭な出力を生成することができる任意の他のタイプのデバイスを含み得る。場合によっては、ディスプレイ５Ａおよび５Ｂは、タッチセンシティブおよび／または存在感知（presence-sensitive）ディスプレイとして構成され得る。
【００１５】
[0028]図１に示す例では、デバイス４ＡはＰＩＰウィンドウ６Ａを含み、デバイス４ＢはＰＩＰウィンドウ６Ｂおよび７Ｂを含む。いくつかの例では、ＰＩＰウィンドウは、ディスプレイ５Ａおよび５Ｂにおいて表示されている他のコンテンツとは無関係にコンテンツを表示するためのエリアを提供することができる。たとえば、デバイス４Ａおよび／または４Ｂは、ピクチャインピクチャビデオ記録を実行するように構成され得る。この例では、デバイス４Ａは、ディスプレイ５Ａにおいて表示されている画像を記録することができるのに対して、ＰＩＰウィンドウ６Ａは、記録された画像をキャプチャしているユーザの画像を表示することができる。別の例では、デバイス４Ａおよび／または４Ｂは、ゲームとともにビデオ会議を実行することができる。たとえば、デバイス４Ｂは、ビデオゲームをプレイしているユーザの画像をＰＩＰウィンドウ６Ｂに、および、そのユーザの（やはりビデオゲームをプレイしている）対戦相手または仲間をＰＩＰウィンドウ７Ｂにやはり表示しながら、ディスプレイ５Ｂに対してビデオゲームを出力することができる。他の例も可能である。
【００１６】
[0029]場合によっては、デバイス４Ａおよび４Ｂは、動作パラメータに近似するかまたはそれを超える場合がある。一例として、デバイス４Ａおよび４Ｂが（たとえば、ビデオをキャプチャする、グラフィックスをレンダリングする、ビデオを符号化／復号する、ビデオを表示するなど）ますます多くの機能を実行するにつれて、デバイス４Ａおよび４Ｂによって消費される電力は上昇し得る。加えて、場合によっては、デバイス４Ａおよび４Ｂの（たとえば、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、カメラサブシステム、ディスプレイ５Ａおよび５Ｂなど）１つまたは複数の構成要素は、副産物として熱を生じ得る。いくつかの例示的な機能としては、ワイドクワッド高精細度（ＷＱＨＤ：wide quad high definition）ピクチャインピクチャ（ＰＩＰ）ビデオ記録、超高精細度（ＵＨＤ）ビデオ記録ゲームおよびビデオ会議、高解像度３次元（３Ｄ）グラフィックスレンダリングなどがある。
【００１７】
[0030]デバイス４Ａおよび４Ｂは、電力予算（たとえば、２ワット）または温度限界などの動作パラメータに近似するか、またはこれらを超える場合がある。たとえば、特に、デバイス４Ａおよび４Ｂの（たとえば、ＵＨＤビデオ記録、ＷＱＨＤ  ＰＩＰビデオ記録など）複数の構成要素ならびに／または特徴の同時使用が存在する場合、デバイス４Ａおよび４Ｂの１つまたは複数の構成要素の温度は、所定の動作しきい値を超えて上昇し得る。
【００１８】
[0031]いくつかの例では、（組合せ、または下でより詳細に説明するように、コーデックと呼ばれる場合もある）ビデオエンコーダおよび／またはビデオデコーダは温度の増加の一因となり得る。たとえば、ビデオデータを符号化することは、処理リソースを消費し、関連する電力ドローを有する場合がある。加えて、ビデオデータを符号化することは、コーデックとデバイス４Ａおよび／または４Ｂのメモリ（たとえば、ダブルデータレート（ＤＤＲ）ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ）との間のビデオデータの転送を含み得る。したがって、メモリ使用も電力消費の上昇および／または温度の増加の一因となり得る。
【００１９】
[0032]（デバイス４Ａおよび／または４Ｂなど）いくつかのデバイスは、ビデオコーデックおよび／またはメモリ用に何の温度制御も有さない場合がある。さらに、より少ない電力を引き出す（たとえば、より小さなメモリ読取り／書込みおよび／またはより少ない演算）ようにビデオエンコーダを構成することは、符号化されたビデオファイルの画像品質を低下させるか、または符号化されたビデオファイルのサイズをより大きくする可能性がある。
【００２０】
[0033]本開示の技法は、デバイス４Ａまたはデバイス４Ｂなど、電子デバイスの１つもしくは複数の動作特性を決定することと、デバイスの決定された動作特性に少なくとも部分的に基づいて、デバイスを用いてビデオデータを符号化するための符号化パラメータを決定することとを含む。符号化パラメータは、同じく特定の温度または電力しきい値未満で動作する状態にデバイスを保ちながら、符号化されたビデオの品質を維持するように選択され得る。
【００２１】
[0034]本明細書で説明するように、符号化されたビデオの品質は、ビデオが復号されて提示された（たとえば、表示された）後に、符号化されたビデオの知覚品質に影響を及ぼす様々なコーディングパラメータに基づき得る。たとえば、符号化されたビデオの品質は、比較的高い時間的フレームレートが符号化されたビデオデータの比較的高い品質をもたらす、符号化されたデータのフレームレートに基づいて決定され得る。別の例では、符号化されたビデオの品質は、比較的高い解像度が符号化されたビデオデータの比較的高い品質をもたらす、符号化されたビデオデータの空間解像度に基づいて決定され得る。さらに他の例では、符号化されたビデオデータの品質は、符号化されたビデオデータの信号対雑音比（ＳＮＲ）、ピーク信号対雑音比（ＰＳＮＲ）など、他の要因に基づいて決定され得る。
【００２２】
[0035]符号化されたビデオデータの特定の品質を維持しながら符号化パラメータを設定および／または調整することは、場合によっては、符号化されたビデオデータの（圧縮比とも呼ばれる）圧縮レートおよび／またはビットレートを変更させ得る。たとえば、圧縮レートは、概して、元の符号化されていないビデオデータに対して、符号化されたビデオデータがどの程度圧縮されているかを表す。ビットレートは、概して、時間単位ごとにビットストリーム内に含まれるビデオデータのビット数を表す。したがって、圧縮レートが増大する（たとえば、元のデータに対して、符号化されたビデオデータがさらに圧縮される）とき、符号化されたビデオデータに関するビットレートは、典型的に、低減する（たとえば、時間単位あたりの符号化されたビデオデータを表すためにより少ないビットが必要とされる）。
【００２３】
[0036]符号化されたビデオデータの特定の品質を維持しながら符号化パラメータを設定および／または調整することは、ビデオ圧縮レートに影響を及ぼし（または、ビットレートを増大させ）得る。加えて、ビデオデータが符号化される圧縮レート（または、ビットレート）は、得られたファイルサイズに影響を及ぼし得る。たとえば、ビデオデータの所与の品質（たとえば、所与のフレーム数）に関して、比較的高い圧縮レート（または、より低いビットレート）は、符号化されたファイルサイズを比較的小さくさせる可能性があるのに対して、より低い圧縮レート（または、より高いビットレート）は符号化されたファイルサイズを比較的大きくさせる可能性がある。したがって、ビデオデータの特定の品質を維持しながら符号化パラメータを設定および／または調整することは、（圧縮レート／ビットレートに対する影響により）符号化されたビデオデータのファイルサイズにやはり影響を及ぼし得る。
【００２４】
[0037]したがって、本開示の態様によれば、デバイスは、１つもしくは複数の符号化パラメータを調整すること、ならびに圧縮および／またはビットレートに対する対応する調整により、ビデオ品質を維持することができる。すなわち、下でより詳細に説明するように、本開示の態様は、符号化パラメータを調整するとき、圧縮および／またはビットレートが変動することを可能にし得る。加えて、または代替で、デバイスは、１つもしくは複数の他の符号化パラメータをやはり所定の値（または、値の範囲）に固定しながら、１つもしくは複数の符号化パラメータを調整することによって、ビデオ品質を維持することができる。たとえば、下でより詳細に説明するように、本開示の態様は、他の符号化パラメータを調整しながら、一部の符号化パラメータ（たとえば、解像度、フレームレート、ＳＮＲ／ＰＳＮＲなど）を特定の値にまたはその近似に維持することを含み得る。
【００２５】
[0038]本開示の態様は、メモリトラフィックおよび／またはビデオコーデック作業負荷を低減するために、ビデオ符号化設定を動的に変更することを含み得る。メモリトラフィックおよび／またはビデオコーデック作業負荷を低減することは、デバイスの１つもしくは複数の構成要素内の電力消費の低減および／または温度の低下をもたらし得、本明細書では「低電力モード」と呼ばれる場合がある。たとえば、デバイス４Ａまたはデバイス４Ｂは、ビデオ圧縮に伴う電力消費および／または熱生成のバランスをとるために本技法を使用することができる。すなわち、ビデオ圧縮レートが増大するにつれて、デバイス４Ａまたはデバイス４Ｂのビデオコーデック上の演算需要も増大する。加えて、下でより詳細に説明するように、デバイス４Ａまたはデバイス４Ｂのメモリに対する読取り／書込みアクセスも増大し得る。
【００２６】
[0039]本開示の態様によれば、デバイス４Ａまたは４Ｂは、デバイス４Ａもしくはデバイス４Ｂの電力消費および／またはデバイス４Ａもしくはデバイス４Ｂによって生成される熱を制御して、（ビデオコーデック、メモリ、またはデバイスの他の構成要素による）電力使用量とビデオ圧縮レートとの間のトレードオフを活用するために、コーデックの１つもしくは複数の符号化パラメータを制御することができる。たとえば、デバイス４Ａまたはデバイス４Ｂは、デバイス４Ａもしくはデバイス４Ｂの電力消費および／またはデバイス４Ａもしくはデバイス４Ｂによって生成される熱を低減するために、１つもしくは複数の符号化パラメータを調整することができる。ビデオデータの特定の品質を維持するために、デバイス４Ａまたはデバイス４Ｂは、（たとえば、解像度、フレームレート、ＳＮＲ／ＰＳＮＲなど）１つもしくは複数の他の符号化パラメータを所定の値（または、値の範囲）にやはり固定しながら、１つもしくは複数の符号化パラメータを調整して、圧縮レートが低減することを可能にし、それによって、（たとえば、より高い圧縮レートで初期符号化パラメータを用いて符号化されたビデオデータと比較して）符号化されたビデオファイルの（たとえば、バイトでの）サイズを増大させことができる。
【００２７】
[0040]例示のための一例として、デバイス４Ａまたはデバイス４Ｂは、当初、デバイス４Ａまたはデバイス４Ｂの１つもしくは複数の構成要素の温度が所定の温度しきい値を超えることに基づいて、１つもしくは複数のビデオ符号化パラメータを設定することができる。加えて、または代替で、デバイス４Ａまたはデバイス４Ｂは、デバイス４Ａまたはデバイス４Ｂの１つもしくは複数の構成要素の温度が所定の温度しきい値を超えることに基づいて、ビデオ符号化パラメータを動的に制御することができる。すなわち、デバイス４Ａまたはデバイス４Ｂは、デバイスの１つもしくは複数の構成要素の温度が温度しきい値を超えて上昇することに基づいて、動作（記録および／または符号化）の間にビデオ符号化パラメータを調整することができる。ビデオ符号化パラメータを設定および／または調整することは、デバイス４Ａまたはデバイス４Ｂの構成要素の温度を低下させるのに役立つ可能性がある。
【００２８】
[0041]別の例では、デバイス４Ａまたはデバイス４Ｂは、最初に、デバイス４Ａまたはデバイス４Ｂのエンコーダによって処理されているピクセルの数に基づいて、１つもしくは複数のビデオ符号化パラメータを設定（および／またはコーディングの間に調整）することができる。たとえば、毎秒符号化されるピクセルの数が増加するにつれて、コーデックおよび／またはデバイスの（メモリなどの）他の構成要素の温度も増大し得る。したがって、処理されるピクセルの数は、デバイスの熱生成および／または電力消費に関するプロキシとして動作し得る。本開示の態様によれば、デバイス４Ａまたはデバイス４Ｂは、最初に、ピクセル処理しきい値を超える特定の持続時間内に処理される（たとえば、符号化される）べき、ピクセルの数に基づいて、１つまたは複数のビデオ符号化パラメータを設定することができる。加えて、または代替で、デバイス４Ａまたはデバイス４Ｂは、所定のピクセル処理しきい値を超えて処理されているピクセルの数に基づいて、ビデオ符号化パラメータを動的に制御することができる。すなわち、デバイス４Ａまたはデバイス４Ｂは、ピクセル処理しきい値を超えて上昇することから符号化されているピクセルの数に基づいて、動作（記録および／または符号化）の間にビデオ符号化設定を調整することができる。この場合も、ビデオ符号化パラメータを設定および／または調整することは、デバイス４Ａまたはデバイス４Ｂの構成要素の温度を低下させるのに役立つ可能性がある。
【００２９】
[0042]記録および／またはコーディングの間、コーデックは、デバイス４Ａまたはデバイス４Ｂのバッテリーなど、内部電源から電力を引き出す場合がある。したがって、バッテリーはビデオ記録のために必要であるという意味で、バッテリーはビデオデータを記録するように構成されるべきであると見なされ得る。本開示の態様によれば、デバイス４Ａまたはデバイス４Ｂは、デバイス４Ａまたはデバイス４Ｂの電源の状態に基づいて、１つもしくは複数のビデオ符号化パラメータを最初に設定することができる。たとえば、デバイス４Ａまたはデバイス４Ｂは、最初に、電源内で利用可能な電力量に基づいて、１つまたは複数のビデオ符号化パラメータを設定することができる。加えて、または代替で、デバイス４Ａまたはデバイス４Ｂは、電力が所定のしきい値を下回っておよび／または所定のレートよりも早く消耗していることに基づいて、ビデオ符号化パラメータを動的に制御することができる。すなわち、デバイス４Ａまたはデバイス４Ｂは、電力が所定のしきい値を下回っておよび／または所定のレートよりも早く消耗していることに基づいて、動作（記録および／または符号化）の間にビデオ符号化設定を調整することができる。ビデオ符号化パラメータを設定することおよび／または調整することは、電源がコーデックによって消耗されるのを防ぐのに役立ち得る。
【００３０】
[0043]いくつかの例では、デバイス４Ａまたはデバイス４Ｂは、（たとえば、温度、ピクセル処理、電源状態など）上で説明した例示的なしきい値のいずれかの組合せを使用することができる。上述のように、ビデオ圧縮レートが増大するにつれて、デバイス４Ａまたはデバイス４Ｂのビデオコーデック上の演算需要も増大する。反対に、ビデオ圧縮レートを低減することは、電力および／または温度節約をもたらし得る。しかしながら、ビデオ圧縮レートを低減することにより、（より高い圧縮レートでコーディングされた符号化ファイルに対して）比較的高いファイルサイズを有する、符号化されたビデオファイルをもたらし得る。
【００３１】
[0044]本開示の技法は、符号化されたビデオファイルを低圧縮レートから高圧縮レートにトランスコードし、それによって、符号化されたビデオファイルのサイズを低減することを含む。本技法は、たとえば、電力を節約するため、および／または温度を低減するために、比較的低い圧縮レートを用いて、低電力モードで符号化されたファイルのサイズを低減するために、上で説明したビデオエンコーダパラメータ制御とともに使用され得る。たとえば、デバイス４Ａまたはデバイス４Ｂが低電力モードを使用して符号化されたビデオファイルを生成する場合、デバイス４Ａまたはデバイス４Ｂは（たとえば、より高い圧縮レートを使用して）ビデオファイルをより小さいファイルサイズにトランスコードすることができる。
【００３２】
[0045]いくつかの例では、本開示の態様によれば、トランスコーディングは、所定のトランスコーディング条件が満たされると、実行され得る。たとえば、トランスコーディングそれ自体が電力を消費し得る。したがって、デバイス４Ａまたはデバイス４Ｂは、トランスコーディング動作がデバイスの電力および／または温度に悪影響を有する可能性が最も低いときにトランスコーディングを開始することができる。トランスコーディングを開始するための条件は、「トリガ」または「トリガ条件」と呼ばれる場合もある。たとえば、デバイス４Ａまたはデバイス４Ｂは、デバイス４Ａまたはデバイス４Ｂがアイドルである（１つもしくは複数の構成要素がユーザによって動作可能でない／使用されていない）状態で、デバイス４Ａまたはデバイス４Ｂのバッテリー源に所定の充電量を超える量が残存するとき、ならびに／あるいはデバイス４Ａまたはデバイス４Ｂが交流電力ＡＣアダプタなど、外部電源に接続されているとき、トランスコーディングを開始することができる。そのような例では、トランスコーディング初期化条件は、デバイスの所定のアイドル持続時間、デバイス４Ａもしくはデバイス４Ｂのバッテリーのバッテリー状態（たとえば、残存充電が所定のレベルを超える、充電が所定のレートよりも遅く消散するなど）、またはデバイスの電源状態のうちの少なくとも１つであり得る。
【００３３】
[0046]下でより詳細に説明するように、本開示の態様によれば、デバイス４Ａまたはデバイス４Ｂはまた、所定のトランスコーディング終了条件（または、「トリガ」）が満たされると、トランスコーディングを終了することができる。いくつかの例では、トランスコーディング終了条件は、アイドル状態からアクティブ状態への状態変更、（たとえば、残存充電が所定のレベルを下回る、充電が所定のレートよりも早く消散するなど）デバイス４Ａもしくはデバイス４Ｂのバッテリーの状態、または外部電源から内部電源への電源状態の変更のうちの少なくとも１つを含み得る。
【００３４】
[0047]本開示のさらに他の態様によれば、ビデオ符号化設定のチップセットレベルまたはシステムレベルの電力影響を評価し、より低い電力消費のためのパラメータを決定するために、１つもしくは複数の電力モデルが使用され得る。たとえば、上述のように、ビデオ符号化パラメータ（たとえば、メモリに対する読取り／書込みアクセス）に基づいて、メモリ使用量および関連する電力ドローが影響を受ける場合がある。別の例として、符号化されたビデオは、ローカルストレージロケーション（たとえば、リムーバブルセキュアデジタル（ＳＤ）メモリもしくは（非リムーバブルメモリを含めて）他のメモリなどの不揮発性メモリ）に記憶されてよく、またはワイヤレス通信技法を使用して、リモートメモリ（たとえば、クラウドベースストレージ）に送信されてもよい。符号化されたデータを記憶することに関連する電力ドローは、ビデオファイルのサイズ、ストレージロケーション、および（たとえば、メモリバス、ワイヤレス送信機など）データの記録に関与する構成要素に依存し得る。
【００３５】
[0048]本開示の態様によれば、ビデオ符号化パラメータを制御するために使用され得る、推定される電力消費を決定するために、１つまたは複数の電力モデルが使用され得る。例示的な電力モデルとしては、ビデオエンコーダ電力モデル、メモリ電力モデルと、ローカルストレージ電力モデル、および（リモートストレージに関連する伝送技法に基づいて変化し得る）リモートストレージ電力モデルがある。一例では、電力消費が高くなると推定されるとき、ビデオコーデックの電力消費を低減するために、これらの技法が使用され得る。
【００３６】
[0049]図２は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図２に示すように、システム１０は、宛先デバイス１４によって後の時点で復号されるべき、符号化されたビデオデータを提供するソースデバイス１２を含む。具体的には、ソースデバイス１２は、リンク１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信を備え得る。
【００３７】
[0050]宛先デバイス１４は、リンク１６を介して、復号されるべき符号化ビデオデータを受信することができる。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などの任意のワイヤレスまたは有線の通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３８】
[0051]代替的に、符号化されたデータは出力インターフェース２２からストレージデバイス３２に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス３２からアクセスされ得る。ストレージデバイス３２は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散した、あるいはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、ストレージデバイス３２は、ソースデバイス１２によって生成された、符号化されたビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス３２から、記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであってよい。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチドストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。
【００３９】
[0052]宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス３２から、記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであってよい。例示的なファイルサーバとしては、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチドストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して、符号化されたビデオデータにアクセスすることができる。これは、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、（たとえば、ＤＳＬ、ケーブルモデムなど）有線接続、または、ファイルサーバ上に記憶された、符号化されたビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００４０】
[0053]本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ＨＴＴＰ上の動的適応ストリーミング（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオ電話などの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４１】
[0054]図２の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３４とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、ビデオコーディングに関する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部のビデオソース１８からビデオデータを受信することができる。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
【００４２】
[0055]図２の例示されたシステム１０は、一例にすぎない。本開示の技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、宛先デバイス１４に送信するためのコーディングされたビデオデータをソースデバイス１２が生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称の形で動作することができる。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、もしくはビデオ電話のためのビデオデバイス１２、１４の間の一方向または双方向のビデオ送信をサポートし得る。
【００４３】
[0001]ソースデバイス１２のビデオソース１８は、ビデオカメラ、以前にキャプチャされたビデオを包含するビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成することができる。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、本開示で説明する技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスおよび／または有線の適用例に適用され得る。
【００４４】
[0002]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ１２によって符号化され得る。符号化されたビデオデータは、ソースデバイス２０の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化されたビデオデータは、同様に（もしくは、代替で）復号および／または再生のための宛先デバイス１４あるいは他のデバイスによる後のアクセスのためにストレージデバイス３２上に記憶され得る。
【００４５】
[0003]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３１とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含んでよい。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して、符号化されたビデオデータを受信する。リンク１６を介して通信された、またはストレージデバイス３２に提供された、符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダによって使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバを記憶した、符号化されたビデオデータとともに含まれ得る。
【００４６】
[0004]ディスプレイデバイス３４は、宛先デバイス１４と一体化されてよく、またはその外部に存在してもよい。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３４は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
【００４７】
[0056]ビデオエンコーダ２０およびビデオデコーダ３０は各々、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、もしくはそれらの任意の組合せなど、種々の適切なエンコーダ回路またはデコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェアに関する命令を記憶し、本開示の技法を実行するための１つまたは複数のプロセッサを使用して、それらの命令をハードウェア内で実行することができる。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として一体化され得る、１つもしくは複数のエンコーダまたはデコーダ内に含まれ得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／または携帯電話のようなワイヤレス通信デバイスを備え得る。
【００４８】
[0057]図２には示されないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、各々オーディオエンコーダおよびオーディオデコーダと一体化されてよく、共通のデータストリームもしくは別個のデータストリーム内のオーディオとビデオの両方の符号化を扱うための、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアならびにソフトウェアを含み得る。適用可能な場合、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコル。
【００４９】
[0058]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格、またはそのような規格の拡張に従って動作し得る。ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、共同ビデオ部会（ＪＶＴ：Joint Video Team）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣムービングピクチャエキスパートグループ（ＭＰＥＧ）とともにＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）によって策定された。いくつかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠するデバイスに適用され得る。Ｈ．２６４規格は、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ばれることがある、ＩＴＵ−Ｔ研究委員会による、２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されている。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００５０】
[0059]ＪＣＴ−ＶＣが、最近、ＨＥＶＣ規格を開発した。本開示の技法は、任意の特定のコーディング規格に制限されないが、本技法は、たとえば、ＵＨＤ規格ビデオ符号化／復号に関するＨＥＶＣ規格に関係し得る。概して、ＨＥＶＣに関して、ピクチャは、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding units）に分割され得る。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、コーディングの順序で、いくつかの連続するツリーブロックを含む。ビデオピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。一般に、４分木データ構造は、１ＣＵあたり１つのノードを含み、ルートノードがツリーブロックに対応する。ＣＵが４つのサブＣＵに分割される場合には、ＣＵに対応するノードは、その各々がサブＣＵのうちの１つに対応する、４つのリーフノードを含む。
【００５１】
[0060]４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを提供し得る。たとえば、４分木内ノードは、そのノードに対応するＣＵがサブＣＵに分割されるのかどうかを示す分割フラグを含み得る。ＣＵに関するシンタックス要素は、再帰的に定義されてよく、ＣＵがサブＣＵに分割されるかどうかに依存してよい。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的な分割が存在しない場合でも、リーフＣＵの４つのサブＣＵはリーフＣＵと呼ばれる。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵはやはりリーフＣＵと呼ばれる。
【００５２】
[0061]ＣＵは、ＣＵがサイズの区別を有しないことを別にすれば、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードに分割されてよく、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割されてよい。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズを定義することもできる。したがって、ビットストリームはまた、最小コーディングユニット（ＳＣＵ：smallest coding unit）を定義し得る。本開示は、「ブロック」という用語を、ＨＥＶＣのコンテキストにおいてＣＵ、ＰＵ、もしくはＴＵのうちのいずれか、または他の規格のコンテキストにおいて類似のデータ構造（たとえば、Ｈ．２６４／ＡＶＣのマクロブロックおよびそのサブブロック）を参照するために使用する。
【００５３】
[0062]ＣＵは、コーディングノードと、コーディングノードに関連付けられる予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状において正方形でなければならない。ＣＵのサイズは、８×８ピクセルから、６４×６４ピクセル以上の最大値を有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを包含し得る。
【００５４】
[0063]概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間エリアを表し、そのＰＵに関する参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関するデータを含む。たとえば、ＰＵがイントラモードで符号化されるとき、ＰＵに関するデータは、ＰＵに対応するＴＵに関するイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）内に含まれ得る。別の例として、ＰＵがインターモードで符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。
【００５５】
[0064]ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を含み得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵに関する残差データを含むＴＵを形成し、次いで、ＣＵに関する変換係数を生成するためにＴＵを変換することができる。
【００５６】
[0065]変換の後、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減し得る。たとえば、ｎビットの値は、量子化の間にｍビットの値に端数を丸められてよく、ここで、ｎはｍよりも大きい。
【００５７】
[0066]ビデオエンコーダ２０は、次いで、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。スキャンは、より高いエネルギー（したがって、より低い頻度）の係数を配列の前方に配置し、より低いエネルギー（したがって、より高い頻度）の係数を配列の後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化されたベクトルを生成するために量子化された変換係数をスキャンするために、事前定義のスキャン順序を利用することができる。他の例では、ビデオエンコーダ２０は、適応スキャンを実行することができる。
【００５８】
[0067]１次元ベクトルを形成するために、量子化された変換係数をスキャンした後に、ビデオエンコーダ２０は、たとえばコンテキスト適応可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応２進算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応２進算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法論に従って、１次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ２０は、ビデオデータを復号する際のビデオデコーダ３０による使用のために、符号化されたビデオデータに関連付けられた構文要素をエントロピー符号化することもできる。
【００５９】
[0068]ビデオエンコーダ２０は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびピクチャグループ（ＧＯＰ）ベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ内でビデオデコーダ３０に送ることができる。ＧＯＰシンタックスデータは、それぞれのＧＯＰ内のいくつかのピクチャを記述し得、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化／予測モードを示し得る。
【００６０】
[0069]ビデオデコーダ３０は、コード化されたビデオデータを受信すると、たとえば、下で図４に関してより詳細に説明する、ビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行することができる。
【００６１】
[0070]本開示の技法は、電子デバイスの１つまたは複数の動作特性を決定することと、そのようなソースデバイス１２、デバイスの決定された動作特性に少なくとも部分的に基づいて、デバイスのエンコーダを用いてビデオデータを符号化するための符号化パラメータを決定することとを含む。符号化パラメータは、符号化されたビデオの品質を維持するために選択され得る（たとえば、最初に選択され得るか、またはビデオコーディングの間に調整され得る）。いくつかの例では、ソースデバイス１２は、（たとえば、解像度、フレームレート、ＳＮＲ／ＰＳＮＲなど）１つもしくは複数の符号化パラメータを特定の値または比較的小さな範囲の値に維持することによって、品質を維持することができる。上記のように、符号化されたビデオデータの特定の品質を維持しながら、符号化パラメータを設定および／または調整することは、ビデオ圧縮レートに影響を及ぼす（または、ビットレートを増大させる）可能性がある。本開示の態様によれば、ソースデバイス１２は、特定の圧縮レートおよび／もしくはビットレートを維持せずに、符号化パラメータを設定ならびに／または調整することができる。
【００６２】
[0071]ソースデバイス１２は、いくつかの例では、ビデオ圧縮に伴う電力消費および／または熱生成のバランスをとるために本技法を使用することができる。たとえば、本開示の態様によれば、ソースデバイス１２は、ソースデバイス１２の電力消費および／またはソースデバイス１２によって生成される熱を制御するために、ビデオエンコーダ２０の１つもしくは複数の符号化パラメータを制御することができる。いくつかの例では、ソースデバイス１２は、最初に、ソースデバイス１２の１つまたは複数の構成要素の温度が所定の温度しきい値を超えることに基づいて、ビデオエンコーダ２０の１つまたは複数のビデオ符号化パラメータを制御することができる。他の例では、ソースデバイス１２は、最初に、電源が所定のレートを超えて、または所定のレートよりも早く消耗していることに基づいて、ビデオエンコーダ２０の１つもしくは複数のビデオ符号化パラメータを制御することができる。さらに他の例では、ソースデバイス１２は、最初に、ピクセル処理しきい値を超えて符号化されているピクセルの数に基づいて、ビデオエンコーダ２０の１つまたは複数のビデオ符号化パラメータを制御することができる。ビデオ符号化パラメータを制御することは、デバイス４Ａもしくはデバイス４Ｂの構成要素の温度を下降させるのに、および／またはデバイス４Ａもしくはデバイス４Ｂの電源の消耗を減速させるのに役立つ可能性がある。
【００６３】
[0072]上記の例は、本開示の態様による、初期符号化パラメータを設定すること（たとえば、符号化に先立って設定すること）を説明するが、ソースデバイス１２は、加えて、または代替で、符号化の間に（たとえば、リアルタイムで、またはニアリアルタイムで）ビデオエンコーダ２０のビデオ符号化パラメータを動的に調整することができる。加えて、ソースデバイスは、ビデオエンコーダ２０のパラメータを制御するための基礎として、（たとえば、温度、ピクセル処理レート、バッテリー状態など）任意の条件の組合せを使用することができる。
【００６４】
[0073]図３は、本開示の技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストで説明するが、本開示の技法とともに使用されることも可能な他のコーディング規格またはコーディング方法に関して本開示を限定するものではない。
【００６５】
[0074]ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施し得る。イントラコーディングは、所与のビデオピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接ピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、空間ベースのいくつかの圧縮モードのいずれかを指す場合がある。単方向予測（Ｐモード）または双予測（Ｂモード）のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指す場合がある。
【００６６】
[0075]図３に示すように、ビデオエンコーダ２０は、符号化されるべきビデオピクチャ内の現在のビデオブロックを受信する。図３の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピーエンコーディングユニット５６とを含む。モード選択ユニット４０は、次いで動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、パーティションユニット４８とを含む。ビデオブロックの再構成のために、ビデオエンコーダ２０は、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とをも含む。デブロッキングフィルタ（図３に示さず）も、再構成されたビデオからブロッキネスアーティファクトを除去する目的で、ブロック境界をフィルタ処理するために含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器６２の出力をフィルタ処理するはずである。さらなるフィルタ（インループまたはポストループ）も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡約のために図示されないが、所望される場合、加算器５０の出力を（インループフィルタとして）フィルタ処理することができる。
【００６７】
[0076]符号化プロセスの間に、ビデオエンコーダ２０は、コーディングされるべきビデオピクチャまたはスライスを受信する。ピクチャまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ内の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代替的に、空間圧縮を行うために、コーディングされるべきブロックと同じピクチャまたはスライス内の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【００６８】
[0077]さらに、パーティションユニット４８は、以前のコーディングパスにおける以前のパーティション方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、パーティションユニット４８は、最初にピクチャまたはスライスをＬＣＵに区分し、レート歪み分析（たとえば、レート歪み最適化）に基づいてＬＣＵの各々をサブＣＵに区分することができる。モード選択ユニット４０は、ＬＣＵをサブＣＵに区分することを示す４分木データ構造をさらに生成し得る。４分木のリースノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【００６９】
[0078]モード選択ユニット４０は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に提供し、参照ピクチャとして使用するための符号化されたブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に提供する。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット５６に提供する。
【００７０】
[0079]動き推定ユニット４２および動き補償ユニット４４は、高度に一体化され得るが、概念上の目的から別々に図示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在ピクチャ（または、他のコード化ユニット）内のコーディングされている現在ブロックに対する参照ピクチャ（または、他のコード化ユニット）内の予測ブロックに対する、現在ビデオピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００７１】
[0080]予測ブロックは、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって決定され得るピクセル差分の観点で、コーディングされるべきブロックと密にマッチングすることが見出されたブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４内に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算することができる。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数のピクセル位置の値を補間することができる。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対する動きサーチを実行し、分数ピクセル精度を有する動きベクトルを出力することができる。
【００７２】
[0081]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス内のビデオブロックのＰＵに関する動きベクトルを計算する。参照ピクチャは、その各々が、参照ピクチャメモリ６４内に記憶された１つもしくは複数の参照ピクチャを識別する、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７３】
[0082]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて、予測ブロックを取り出し、またはこれを生成することを含み得る。やはり、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例で、機能的に一体化され得る。現在ビデオブロックのＰＵに関する動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックを位置特定することができる。
【００７４】
[0083]加算器５０は、下記で論じるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット４２は、ルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方に関して、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０は、ビデオスライスのビデオブロックを復号する際のビデオデコーダ３０による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成することもできる。
【００７５】
[0084]イントラ予測ユニット４６は、上述のように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測することができる。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット４６は、たとえば、別々の符号化パス内に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測ユニット４６（または、いくつかの例ではモード選択ユニット４０）は、テストされたモードから使用すべき適切なイントラ予測モードを選択することができる。
【００７６】
[0085]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの間で最も良好なレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み（または誤差）の量、ならびに、符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックの歪みおよびレートから比を計算することができる。
【００７７】
[0086]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。
【００７８】
[0087]変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いずれの場合でも、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域のような変換領域に変換することができる。
【００７９】
[0088]変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送ることができる。量子化ユニット５４は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット５６が走査を実行することができる。
【００８０】
[0089]量子化に続いて、エントロピー符号化ユニット５６は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピーコーディング技法を実行することができる。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づき得る。
【００８１】
[0090]エントロピー符号化ユニット５６によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信され得るか、または後の送信もしくは取出のためにアーカイブされ得る。逆量子化ユニット５８および逆変換ユニット６０は、たとえば参照ブロックとして後で使用するために、ピクセル領域内で残差ブロックを再構成するために、それぞれ、逆量子化と逆変換とを適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のピクチャのうちの１つの予測ブロックに加算することによって、参照ブロックを計算することができる。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算することができる。
【００８２】
[0091]加算器６２は、参照ピクチャメモリ６４内に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算する。再構成されたビデオブロックは、後続のビデオピクチャ内のブロックをインターコーディングするために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８３】
[0092]本開示の態様によれば、ビデオエンコーダ２０は、デバイスの動作特性に少なくとも部分的に基づいて、ビデオデータを符号化するための１つもしくは複数の符号化パラメータを設定および／または調整するように構成され得る。たとえば、本開示の態様によれば、ビデオエンコーダ２０の１つまたは複数の符号化パラメータは、ビデオエンコーダ２０および／もしくはビデオエンコーダ２０を含むデバイスの電力消費ならびに／またはビデオエンコーダ２０および／もしくはビデオエンコーダ２０を含むデバイスによって生成される熱を調節するために制御され得る。
【００８４】
[0093]例示のためのいくつかの例では、ビデオエンコーダ２０の１つまたは複数の符号化パラメータは、ビデオエンコーダ２０および／もしくはビデオエンコーダ２０を含むデバイスの他の構成要素の温度、ビデオエンコーダ２０のピクセル処理レート、ビデオエンコーダ２０を含むデバイスの電源の状態などに基づいて、設定ならびに／または調整され得る。
【００８５】
[0094]本開示の態様によれば、例示的な符号化パラメータとしては、Ｂフレームパラメータ、サーチ領域パラメータ、および予測モードパラメータがある。そのようなパラメータは、個々にまたは組み合わせて制御され得る。加えて、これらの例は、しかしながら、説明および例示のためだけに提供され、本技法は、ビデオエンコーダ２０もしくはビデオエンコーダ２０を含むデバイスの他の構成要素の電力ドローならびに／または温度特性に影響を及ぼし得る（たとえば、ＣＵもしくはＰＵのサイズ、量子化レート、他の予測限界、参照ピクチャメモリ６４内に記憶されたピクチャの数および／もしくはデータの量に関する限界など）他の符号化パラメータとともに使用され得ることを理解されたい。
【００８６】
[0095]一例では、本開示の態様によれば、ビデオエンコーダ２０は、ビデオエンコーダ２０および／もしくはビデオエンコーダ２０を含むデバイスの動作特性に基づいて、ビデオコーディングの際にＢフレームを有効化または無効化することができる。Ｂフレームを無効化することは、たとえば、符号化に必要とされるメモリトラフィックの量を低減し、それによって、ビデオエンコーダ２０の電力消費および／またはコーディングの間にビデオエンコーダ２０によって利用されるメモリを低減し得る。Ｂフレームを無効化するために、ビデオエンコーダ２０は、インター予測コーディングの間に１つの参照ピクチャリストだけが使用されるように、動き推定ユニット４２および動き補償ユニット４４を調整することができる。ビデオエンコーダ２０を単一の参照ピクチャリストに限定することは、２つのリストを使用することに対して、動き推定／補償を実行するために必要とされる演算リソースおよび／またはメモリアクセスを低減することができる。
【００８７】
[0096]別の例では、ビデオエンコーダ２０は、インター予測を実行するためのサーチ領域を制限および／または調整することができる。たとえば、インター予測を実行するためのサーチ領域を限定することは、現在コーディングされている（たとえば、「ベストマッチ(best matach)」と呼ばれる）ブロックに密に整合する予測ブロックを見出すことに関連する演算の数を低減し、それによって、ビデオエンコーダ２０の電力消費を低減することができる。加えて、比較的小さなサーチ領域は、メモリからアクセスされるデータの量を低減し、それによって、上述のように、電力消費をさらに低減することができる。ビデオエンコーダ２０は、動き推定ユニット４４が（たとえば、動きベクトルによって識別されるように）予測ブロックを位置特定することができる他のピクチャまたはスライスのエリアを制限することによって、サーチ領域を限定することができる。
【００８８】
[0097]さらに別の例では、ビデオエンコーダ２０は、予測モードを制限および／または調整することができる。たとえば、ビデオエンコーダ２０は利用可能な予測モードのセットを決定することができる。いくつかの例では、ビデオエンコーダ２０は、動き推定ユニット４２および動き補償ユニット４４によって完全に実行されるように、インター予測を有効化または無効化することができる。他の例では、ビデオエンコーダ２０は、イントラ予測ユニット４６によって適用されるイントラモードの数を低減することができる。利用可能な予測モデルの数および／またはタイプを低減することは、低減された演算負荷および／メモリアクセスの低減によって、電力消費を低減し得る。たとえば、利用可能な予測モデルの数および／またはタイプを低減することによって、ビデオエンコーダ２０は、低減された演算負荷および／またはメモリアクセスの低減により電力消費を低減し得る、比較的少ないレート歪み最適化を実行することができる。
【００８９】
[0098]上で説明した、ビデオエンコーダ２０のパラメータを調整することは、符号化されたビデオデータの圧縮レートおよび／またはビットレートに影響を及ぼし得る。たとえば、ビデオエンコーダ２０において（たとえば、Ｂフレームの使用、予測モードの数、サーチ領域の数などを制限することなど）制限を適用することは、制限なしに符号化されたビデオファイルと比較して、比較的大きなファイルサイズを有する、符号化されたビデオファイルをもたらし得る。本開示の技法は、符号化されたビデオファイルを低圧縮レートから高圧縮レートにトランスコードし、それによって、符号化されたビデオファイルのサイズを低減することを含む。場合によっては、ビデオエンコーダ２０は、ビデオデータをトランスコーディングするために使用され得る。たとえば、符号化されたビデオファイルが低電力モードを使用して生成される場合、ビデオエンコーダ２０は、（たとえば、より高い圧縮レートおよび／またはより低いビットレートを使用して）より大きなビデオファイルをより小さなファイルサイズにトランスコードし得る。
【００９０】
[0099]いくつかの例では、本開示の態様によれば、トランスコーディングは、所定のトランスコーディング条件が満たされると、実行され得る。いくつかの例では、ビデオエンコーダ２０を含むデバイスは、デバイスの１つまたは複数の構成要素がアイドルであるとき、デバイスのバッテリー源に所定の充電量を超える量が残存するとき、デバイスが電源に接続されているときなどに、トランスコーディングを開始することができる。そのような例では、トリガ条件は、デバイスの所定のアイドル持続時間、デバイスのバッテリーの（たとえば、残存する充電、充電消散レートなど）バッテリー状態、またはデバイスの電源状態のうちの少なくとも１つであり得る。
【００９１】
[0100]加えて、本開示の態様によれば、トランスコーディングは、所定の終了条件が満たされると、終了され得る。終了条件は、非限定的な例として、ビデオエンコーダ２０を含むデバイスのアイドル状態からアクティブ状態への状態の変化、またはビデオエンコーダ２０を含むデバイスの外部電源からデバイスの内部電源への電源状態の変化を含み得る。
【００９２】
[0101]図４は、本開示の技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図４の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。
【００９３】
[0102]復号プロセスの間、ビデオデコーダ３０は、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームをビデオエンコーダ２０から受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルで構文要素を受信することができる。
【００９４】
[0103]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在ピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックに関する予測データを生成し得る。
【００９５】
[0104]ビデオフレームがインターコード化（すなわち、ＢまたはＰ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２内に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照ピクチャリストであるリスト０と、リスト１とを構成することができる。
【００９６】
[0105]動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすることによって、現在ビデオスライスのビデオブロックに関する予測情報を決定し、復号されている現在ビデオブロックの予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライス用の参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックに関する動きベクトルと、スライスの各インターコード化ビデオブロックに関するインター予測状態と、現在ビデオスライス内のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【００９７】
[0106]動き補償ユニット７２は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用されたように補間フィルタを使用することができる。この場合、動き補償ユニット７２は、受信したシンタックス要素から、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用することができる。
【００９８】
[0107]逆量子化ユニット７６は、ビットストリーム内で提供され、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化する（inverse quantize）、すなわち逆量子化する（de-quantize）。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス内のビデオブロックごとにビデオエンコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００９９】
[0108]逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。逆変換は、（たとえば、ビデオエンコーダ２０によって）ビデオ符号化の間に適用される順変換とは逆のものであり得る。
【０１００】
[0109]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数の構成要素を表す。
【０１０１】
[0110]所望される場合、ブロッキネスアーティファクト(blockiness artifacts)を削除するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。ピクセル推移を平滑化し、またはさもなければ、ビデオ品質を改善するために、他のループフィルタ（コーディングループ内またはコーディングループの後のいずれであれ）も使用され得る。次いで、所与のピクチャ内の復号されたビデオブロックは、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２内に記憶される。参照ピクチャメモリ８２はまた、図２のディスプレイデバイス３４などのディスプレイデバイス上に後で提示するために復号ビデオも記憶する。
【０１０２】
[0111]本開示の態様によれば、ビデオデコーダ３０は、（図２および図３に関して上で説明したように）ビデオエンコーダ２０によって符号化されたビデオデータを復号することができる。ビデオがトランスコードされる場合、ビデオデコーダ３０は、トランスコーディングプロセスの間、ビデオを復号するために使用され得る。
【０１０３】
[0112]図５は、本開示の技法を実装するように構成され得るデバイス１００の一例を示すブロック図である。いくつかの例では、デバイス１００に関して示され、説明されるもう１つの構成要素がデバイス４Ａおよび／またはデバイス４Ｂ（図１）内に組み込まれ得る。
【０１０４】
[0113]図５に示す例では、デバイス１００は、１つまたは複数のプロセッサ１０４と、１つまたは複数のアプリケーション１１０を記憶するメモリ１０８と、ディスプレイプロセッサ１１４と、ローカルディスプレイ１１６と、オーディオプロセッサ１２０と、スピーカ１２２と、トランスポートユニット１２６と、ワイヤレスモデム１２８と、入力デバイス１３２と、カメラシステム１４０と、ビデオエンコーダ／ビデオデコーダ（コーデック）１４４と、電源１４６と、温度／電源マネージャ１４８とを含む。他の例は、図５に示す構成要素よりも多い構成要素または少ない構成要素を含み得る。加えて、いくつかの構成要素は議論のために別個に説明されるが、図５に関して示し、説明するいくつかの構成要素は、単一の構成要素を形成するために、高集積または組み合わされ得ることを理解されたい。
【０１０５】
[0114]構成要素１０４、１０８、１１４、１２０、１２６、１３２、１３６、１４０、１４４、および１４８の各々は、通信チャネル１５０を介した構成要素間通信のために（物理的に、通信可能に、ならびに／あるいは動作可能に）相互結合され得る。いくつかの例では、通信チャネル１５０は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。
【０１０６】
[0115]１つまたは複数のプロセッサ１０４は、メモリ１０８内に記憶された命令を処理することが可能であり得る。プロセッサ１０４のうちの１つまたは複数は、デバイス１００用の中央処理ユニット（ＣＰＵ）を形成し得る。プロセッサ１０４は、たとえば、１つもしくは複数のマイクロプロセッサ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ディスクリート論理、またはそれらの任意の組合せを含み得る。いくつかの例では、プロセッサ１０４は、固定関数論理および／またはプログラマブル論理を含み得、ソフトウェアおよび／またはファームウェアを実行し得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェアに関する命令を記憶し、本開示の技法を実行するための１つまたは複数のプロセッサを使用して、それらの命令をハードウェア内で実行することができる。
【０１０７】
[0116]図５のメモリ１０８は、限定はされないが、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、磁気ランダムアクセスメモリ（ＭＲＡＭ）、ＦＬＡＳＨメモリなどを含む、多種多様な揮発性メモリまたは不揮発性メモリのいずれかを備えてよく、メモリ１０８は、オーディオ／ビデオデータ、ならびに他の種類のデータを記憶するためのコンピュータ可読記憶媒体を備えてよい。
【０１０８】
[0117]いくつかの例では、メモリ１０８は、本開示で説明する様々な技法を実行することの一部として、プロセッサ１０４によって実行されるアプリケーション１１０を記憶することができる。メモリ１０８はまた、デバイス１００によって提示するためのある種のオーディオ／ビデオ（Ａ／Ｖ）データを記憶することができる。たとえば、メモリ１０８は、Ａ／Ｖファイル全体を記憶してよく、または、たとえば、別のデバイスまたはソースからストリーミングされた、Ａ／Ｖファイルの一部分を記憶するにすぎないより小さいバッファを備えてよい。いずれの場合も、メモリ１０８は、デバイス１００によってデータが提示される前に、Ａ／Ｖデータをバッファリングすることができる。メモリ１０８は、ビデオデータが符号化されている間に、ならびに符号化されたビデオファイルが生成された後に、（下で説明するコーデック１４４によって）ビデオデータを記憶することもできる。
【０１０９】
[0118]いくつかの例では、デバイス１００は、Ａ／Ｖデータをローカルで処理し、表示することができる。具体的には、ディスプレイプロセッサ１１４は、ローカルディスプレイ１１６上に表示されるべきビデオデータを処理するためのプラットフォームの一部を形成し得る。この点について、ディスプレイプロセッサ１１４は、（プロセッサ１０４に関して上で説明した）コーデックを含み得る。ディスプレイ１１６は、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、またはユーザに対して明瞭な出力を生成することができる任意の他のタイプのデバイスを含み得る。加えて、オーディオプロセッサ１２０は、１つまたは複数のスピーカ１２２上で出力するためのオーディオデータを処理することができる。
【０１１０】
[0119]トランスポートユニット１２６は、符号化されたＡ／Ｖデータをネットワークトランスポート用に処理することができる。たとえば、符号化されたＡ／Ｖデータは、プロセッサ１０４によって処理され、ネットワーク上での通信のためにトランスポートユニット１２６によってネットワークアクセスレイヤ（ＮＡＬ）ユニットにカプセル化され得る。ＮＡＬユニットは、モデム１２８によって、ネットワーク接続を介して別のデバイスに送られてよい。この点について、モデム１２８は、たとえば、直交周波数分割多重（ＯＦＤＭ）技法、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、コード分割多元接続（ＣＤＭＡ）、またはＯＦＤＭ、ＦＤＭＡ、ＴＤＭＡおよび／もしくはＣＤＭＡの任意の組合せ、ＷｉＦｉ（登録商標）  Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩＥＥＥ８０２．１１規格ファミリー、あるいは任意の他のワイヤレス接続技法または有線接続技法を含む、任意の数の通信技法に従って動作し得る。ある場合、デバイス１００のモデム１２８は、ＮＡＬユニットなどのカプセル化されたデータパケットを受信し、カプセル化されたデータユニットをカプセル化解除のためにトランスポートユニット１２６に送ることができる。たとえば、トランスポートユニット１２６は、データパケットをＮＡＬユニットから抽出することができ、プロセッサ１０４は、ユーザ入力コマンドを抽出するためにデータパケットをパースすることができる。
【０１１１】
[0120]１つまたは複数の入力デバイス１３２は、触覚フィードバック、オーディオフィードバック、またはビデオフィードバックを通してユーザから入力を受信するように構成され得る。入力デバイス１３２の例としては、タッチセンシティブおよび／もしくは存在感知ディスプレイ、マウス、キーボード、音声応答システム、マイクロフォン、またはユーザからのコマンドを検出するための任意の他のタイプのデバイスがある。
【０１１２】
[0121]グラフィックス処理ユニット（ＧＰＵ）１３６は、グラフィカルな動作を実行するための１つまたは複数の専用プロセッサを表す。すなわち、たとえば、ＧＰＵ１３６は、グラフィックスをレンダリングし、ＧＰＵアプリケーションを実行するための、固定機能の構成要素および／またはプログラマブル構成要素を有する専用ハードウェアユニットであり得る。いくつかの例では、ＧＰＵ１３６はまた、ＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、または他の等価な集積回路もしくはディスクリート論理回路を含み得る。図５の例では、ＧＰＵ１３６は別個のユニットとして示されるが、いくつかの例では、ＧＰＵ１３６は、（ＣＰＵなど）１つまたは複数の他のプロセッサ１０４と単一のユニットに統合され得る。
【０１１３】
[0122]カメラシステム１４０は、画像プロセッサ、画像センサー、ならびに画像をキャプチャするためのいくつかの他の構成要素を含み得る。カメラシステム１４０は、いわゆる、カメラフォンまたはビデオフォンのための１つもしくは複数の構成要素を含み得る。場合によっては、カメラシステム１４０は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブビデオ、および／もしくはコンピュータ生成ビデオとの組合せを生成するために、ＧＰＵ１３６と組み合わせて動作することができる。キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、（上で説明した）ビデオエンコーダによって符号化され得る。
【０１１４】
[0123]コーデック１４４は、トランスポート、記憶、および表示のためにＡ／Ｖデータを符号化ならびに／または復号するように構成され得る。たとえば、コーデック１４４は、ビデオエンコーダ２０およびビデオデコーダ３０のうちの１つまたは両方を含んでよく、そのうちのいずれかが、図２〜図４に関して上で説明したように、組み合わされたビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る、ビデオエンコーダまたはビデオデコーダとして動作し得る。場合によっては、コーデック１４４は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格、またはそのような規格の拡張に従って動作し得る。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２、およびＩＴＵ−Ｔ  Ｈ．２６３、ならびに高効率ビデオコーディング（ＨＥＶＣ）規格がある。
【０１１５】
[0124]温度／電力マネージャ１４８は、１つまたは複数の構成要素を１つまたは複数の動作特性ターゲット以下で動作させ続けるようにデバイス１００の１つまたは複数の構成要素を管理することができる。一例では、動作特性ターゲットは、動作特性ターゲットを生成するためにデバイスの少なくとも１つの動作パラメータを調整することが、デバイスの温度を温度ターゲット以下に維持するようにデバイスの少なくとも１つの動作パラメータを調整することを備えるように、デバイス１００の動作温度を示す温度ターゲットであり得る。別の例では、動作特性ターゲットは、動作特性ターゲットを生成するためにデバイス１００の少なくとも１つの動作パラメータを調整することが、デバイスの電力消費を電力ターゲット以下に維持するようにデバイスの少なくとも１つの動作パラメータを調整することを含むように、デバイスを動作させることによって消費される電力量を示す電力ターゲットを備え得る。
【０１１６】
[0125]電源１４６は、電源１４６内に格納された充電を放電することによって、デバイス１００の構成要素に電力を提供する任意のユニットであり得る。いくつかの例では、電源１４６は、充電式バッテリーであってよく、電力回路に結合され得る。すなわち、電源１４６は、単一の電源を形成するために、並列または直列で一緒に連結された１つもしくは複数の充電式バッテリーであり得る。別の例では、電源１４６は、１つもしくは複数の単一の使用バッテリー（たとえば、非充電式）、１つもしくは複数のキャパシタ、および／またはスーパーキャパシタを備え得る。加えて、図５に示すように、単一の電源１４６として、デバイス１００は複数の異なる電源１４６を含み得る。
【０１１７】
[0126]上述のように、電源１４６は、１つもしくは複数の充電式バッテリーまたは非充電式バッテリー、たとえば、１つもしくは複数の一次セルバッテリーを含み得る。電源１４６の例としては、限定はされないが、鉛酸バッテリー、ニッケルカドミウム（ＮｉＣａｄ）バッテリー、ニッケル金属水素化合物（ＮｉＭＨ）バッテリー、リチウムイオン（Ｌｉ−ｉｏｎ）バッテリー、およびリチウムイオンポリマー（Ｌｉ−ｉｏｎポリマー）バッテリーがある。
【０１１８】
[0127]電源１４６は、デバイス１００の様々な構成要素のうちの１つ、いくつか、またはすべてに電力を提供することができる。したがって、電源１４６は、デバイス１００の様々な構成要素によって消費される電力により放電され得る。放電により、電源１４６が完全に消耗しないことを確実にするために、電源１４６は周期的に充電または交換される必要があり得る。電源１４６は、電源１４６の充電を円滑にするために充電ユニットを含み得る。たとえば、電源１４６は、たとえば、交流電流（ＡＣ）有線電源および／または電磁電源を含む外部電源を介して充電可能であり得る。したがって、場合によっては、電源１４６は、誘導性エネルギー伝達（inductive energy transfer）のためのＡＣアダプタまたは充電コイルを含み得る。
【０１１９】
[0128]本開示の態様によれば、温度／電力マネージャ１４８は、デバイス１００の動作特性に少なくとも部分的に基づいて、ビデオデータを符号化するためにコーデック１４４によって実装される１つもしくは複数の符号化パラメータを設定および／または調整することができる。温度／電力マネージャ１４８は、コーデック１４４、メモリ１０８、またはデバイス１００の他の構成要素の電力消費、および／あるいはコーデック１４４、メモリ１０８、またはデバイス１００の他の構成要素によって生成される熱を調節するために、コーデック１４４の１つもしくは複数の符号化パラメータを制御することができる。たとえば、温度／電力マネージャ１４８は、１つもしくは複数の動作パラメータを最初に設定することによる調節のための事前取組み、および／またはコーディングの間に１つもしくは複数の動作パラメータを調整／修正することによる調節のための反応性取組みを行うことができる。
【０１２０】
[0129]一例では、温度／電力マネージャ１４８は、コーデック１４４、メモリ１０８、あるいはデバイス１００の他の構成要素（たとえば、デバイス１００のＣＰＵ、ＧＰＵ１３６、トランスポートユニット１２６、および／もしくはモデム１２８、または様々な他の構成要素）の温度に基づいて、コーデック１４４の１つもしくは複数の符号化パラメータを設定および／または調整することができる。別の例では、温度／電力マネージャ１４８は、コーデック１４４のピクセル処理レートに基づいて、コーデック１４４の１つもしくは複数の符号化パラメータを設定および／または調整することができる。さらに別の例では、温度／電源マネージャ１４８は、電源１４６の状態（たとえば、電源１４６の放電レート、電源１４６の容量、電源１４６の残存充電、電源１４６の充電状態など）電源１４６の状態に基づいて、コーデック１４４の１つもしくは複数の符号化パラメータを設定および／または調整することができる。
【０１２１】
[0130]図２の例に関して上で述べたように、例示的な符号化パラメータとしては、Ｂフレームパラメータ、サーチ領域パラメータ、および予測モードパラメータがあり得る。たとえば、温度／電力マネージャ１４８は、デバイス１００の動作特性に基づいて、コーデック１４４内のＢフレームコーディングを有効化または無効化することができる。別の例では、温度／電力マネージャ１４８は、コーデック１４４内でインター予測を実行するための動きサーチ領域を制限および／または調整することができる。さらに別の例では、温度／電力マネージャ１４８は、コーデック１４４によって使用される、イントラ予測モードなど、予測モードを制限および／または調整することができる。これらのまたは他のパラメータを調整することは、温度／電力マネージャ１４８が、コーデック１４４上の低減された演算負荷、メモリ１０８に対する読取り／書込みの低減などによって、電力消費を低減するのを支援し得る。
【０１２２】
[0131]場合によっては、コーデック１４４の符号化パラメータは「ノブ」と呼ばれる場合がある。たとえば、特定の処理パラメータ／機能を有する特定のコーデック１４４構成を提供するためにいくつかの「ノブ」が調整され得る。例示的なノブおよび関連する符号化パラメータを下の表１に示す。
【０１２３】
【表１】
2017504255.tif 000003
【０１２４】
[0132]上述のＢフレームと、サーチ領域と、予測モードとを参照するが、温度／電力マネージャ１４８は、電力および／または温度エネルギーの低減を達成するために、コーデック１４４の他の動作パラメータを制御し得ることを理解されたい。したがって、本技法は、熱緩和が開始するまで、比較的長い全性能持続時間、ならびにより長いバッテリー寿命を実現するために使用され得る。加えて、符号化されたビデオファイルのサイズは改変され得るが、本技法は、符号化されたデータの品質に何の影響も及ぼさない。
【０１２５】
[0133]本開示のいくつかの態様によれば、温度／電力マネージャ１４８は、ビデオ符号化設定の電力影響を評価するために、１つまたは複数の電力モデルを使用することができる。温度／電力マネージャ１４８は、これらの電力モデルに少なくとも部分的に基づいて、コーデック１４４のパラメータを決定することができる。
【０１２６】
[0134]たとえば、上述のように、ビデオ符号化パラメータ（たとえば、メモリに対する読取り／書込みアクセス）に基づいて、メモリ使用量および関連する電力ドローが影響を受ける場合がある。別の例として、デバイス１００は、コーデック１４４からの符号化されたビデオをメモリ１０８に記憶することができるか、またはトランスポートユニット１２６および／もしくはモデム１２８を介して、符号化されたビデオデータをリモートメモリ（たとえば、クラウドベースのストレージ）に送信することができる。符号化されたデータを記憶することに関連する電力ドローは、ビデオファイルのサイズ、ストレージロケーション、および（たとえば、メモリバス、ワイヤレス送信機など）データの記録に関与する構成要素に依存し得る。
【０１２７】
[0135]本開示の態様によれば、温度／電力マネージャ１４８は、推定される電力消費を決定するために１つもしくは複数の電力モデルを使用することができ、コーデック１４４のビデオ符号化パラメータを制御するために、その推定される電力消費を使用することができる。例示的な電力モデルとしては、コーデック１４４用の電力モデル、メモリ１０８用の電力モデル、ならびにトランスポートユニット１２６および／またはモデム１２８用の電力モデルがある。一例では、推定される電力ドローが所定のしきい値を超えるとき、温度／電力マネージャは、デバイス１００の電力消費を低減するために、コーデック１４４の符号化パラメータに対する設定および／または調整を実装することができる。
【０１２８】
[0136]例示のための一例では、ユーザは、使用要件を指定することができる。たとえば、ユーザは、デバイス１００がある時間の長さ（たとえば、ビデオ記録および／または符号化の１時間）の間に動作可能な状態に留まらなければならないことを指定することができる。この例では、温度／電力マネージャ１４８は、（たとえば、１つもしくは複数の電力モデルを使用して）電源１４６の充電状態およびデバイス１００の推定される電力ドローを決定することができ、ユーザ指定持続時間を満たすことを試みるために、コーデック１４４の符号化パラメータを設定および／または調整することができる。他の例では、電力パラメータはユーザ指定されなくてよい。すなわち、電力使用データは、メモリ１０８に記憶され、電源１４６の寿命を最大にするために使用され得る。
【０１２９】
[0137]本開示の態様によれば、温度／電力マネージャ１４８は、特定のビデオ品質を維持しながら符号化パラメータを設定および／または調整することができる。たとえば、デバイス１００の温度を制御するためのいくつかの技法は、プロセッサスロットリング、フレームレートの低減、および／または解像度の低減を含み得る。しかしながら、そのような技法は、典型的には、符号化されたビデオデータの品質損失を生じさせる。
【０１３０】
[0138]本開示の態様によれば、温度／電力マネージャ１４８は、特定のビデオ品質を維持しながら符号化パラメータを設定および／または調整することができる。上述のように、符号化されたビデオデータの特定の品質を維持しながら符号化パラメータを設定および／または調整することは、場合によっては、符号化されたビデオデータの（圧縮比とも呼ばれる）圧縮レートおよび／またはビットレートを変更させる場合がある。いくつかの例では、温度／電力マネージャ１４８は、符号化されたビデオデータの圧縮レートおよび／またはビットレートが必要に応じて上昇もしくは下降することを可能にすることによって、符号化されたビデオデータの品質を保持することができる。
【０１３１】
[0139]ビデオデータが符号化される圧縮レート（または、ビットレート）は、得られたファイルサイズに影響を及ぼし得る。たとえば、ビデオデータの所与の品質（たとえば、所与のフレーム数）に関して、比較的高い圧縮レート（または、より低いビットレート）は、符号化されたファイルサイズを比較的小さくさせる可能性があるのに対して、より低い圧縮レート（または、より高いビットレート）は符号化されたファイルサイズを比較的大きくさせる可能性がある。したがって、ビデオデータの特定の品質を維持しながら符号化パラメータを設定および／または調整することは、（圧縮レート／ビットレートに対する影響により）符号化されたビデオデータのファイルサイズにやはり影響を及ぼし得る。
【０１３２】
[0140]本開示の態様によれば、温度／電力マネージャ１４８は、１つまたは複数のビデオファイルを第１のファイルサイズから（たとえば、増大した圧縮レートを有する）第２のより小さいファイルサイズにトランスコードするためのトランスコーディングプロセスを開始することができる。たとえば、トランスコーディングは、特定のレベル（たとえば、ビットレート）におけるコーディングコンテンツの後に追加のコーディングループを適用することを含み得る。トランスコーディングは、コーデック１４４またはデバイス１００の別の構成要素によって実行され得る。
【０１３３】
[0141]いくつかの例では、本開示の態様によれば、温度／電力マネージャ１４８は、所定のトランスコーディング条件が満たされると、トランスコーディングを開始することができる。たとえば、温度／電力マネージャ１４８は、プロセッサ１０４、ディスプレイプロセッサ１１４／ディスプレイ１１６など、デバイス１００の１つまたは複数の構成要素がアイドルであるとき、コーデック１４４によるトランスコーディングを開始することができる。
【０１３４】
[0142]別の例では、温度／電力マネージャ１４８は、電源１４６が所定の残存電力しきい値を超える（たとえば、電源１４６が所定の残存充電を含む）とき、トランスコーディングを開始することができる。別の例では、温度／電力マネージャ１４８は、電源１４６が所定のレートよりも遅く放電しているとき、トランスコーディングを開始することができる。別の例では、温度／電力マネージャ１４８は、電源１４６が外部電源（たとえば、ＡＣ電源）に接続されるとき、トランスコーディングを開始することができる。さらに別の例では、温度／電力マネージャ１４８は、デバイス１００のユーザによってトランスコードを指示されると、トランスコーディングを開始することができる。他の例も可能である。
【０１３５】
[0143]図６は、ピクチャグループ（ＧＯＰ）の少なくとも一部分の概念図である。概して、予測は矢印によって示され、ここで、矢印の終点のピクチャは、予測参照のために矢印の始点のオブジェクトを使用する。図６の例はイントラコード化ピクチャＩ１（すなわち、Ｉフレーム）、一方向にインターコーディングされた２つのピクチャＰ１およびＰ２（すなわち、Ｐフレーム）、ならびに複数方向にインターコーディングされた２つのピクチャＢ１およびＢ２（すなわち、Ｂフレーム）を示す。
【０１３６】
[0144]いくつかの例では、（ビデオエンコーダ２０および／またはコーデック１４４など）ビデオエンコーダは、フレームをコーディングするのに先立って、フレームをＢフレームとしてコーディングするか、またはＰフレームとしてコーディングするかを（たとえば、ファームウェア内で）決定することができる。ピクチャがＰフレームとして符号化されるとき、ビデオエンコーダは、１つの参照リスト（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）から予測データをサーチすることができる。しかしながら、ピクチャがＢフレームとして符号化されるとき、ビデオエンコーダは２方向で、すなわち、２つの参照ピクチャリスト内で予測データをサーチする。追加のロケーションで予測データをサーチすることは、メモリ帯域幅使用量を増大させる、追加のメモリ読取りをもたらす。
【０１３７】
[0145]本開示の態様によれば、（デバイス１００の温度／電力マネージャ１４８（図５）など）デバイスの電力マネージャは、デバイスの動作特性に基づいて、ビデオコーディングにおけるＢフレームの使用を有効化または無効化することができる。この点について、Ｂフレームコーディングが無効化されるとき、図６のピクチャＢ１およびＢ２はＰフレームまたはＩフレームとしてコーディングされ得る。したがって、ビデオエンコーダは一方向で、すなわち、２つの代わりに、１つの参照ピクチャリストを用いて、インター予測データに関する動きサーチを実行する。Ｂフレームを無効化することは、たとえば、符号化のために必要とされる（たとえば、メモリから読み取り、メモリに書き込む）メモリトラフィック量を低減し、それによって、デバイスの電力消費を低減することができる。
【０１３８】
[0146]いくつかの例では、上述のように、Ｂフレームを無効化することは、より低い圧縮レートを有するビデオファイルをもたらし得る。一例として、Ｂフレームを無効化することは、符号化されたビデオデータの同じ品質に対しておよそ１５％のビットレート増大をもたらし得る。
【０１３９】
[0147]図７は、現在コーディングされているブロック１５２と参照ピクチャ１５５内のサーチ領域１５４（すべて影付きボックス）とを示す概念図である。たとえば、サーチ領域１５４は、ビデオエンコーダ２０（図２および図３）ならびにコーデック１４４などのビデオエンコーダが現在ブロック１５２をインターコーディングするための予測ブロックを位置特定し得る参照ピクチャ１５５内の領域である。サーチ領域１５４は、ビデオエンコーダが現在ブロックをインター予測するための（「Ｘ」と標示された）ベストマッチ１５６を位置特定し、識別することが許可される参照ピクチャ１５５の領域であり得る。ビデオエンコーダは、ベストマッチ１５６と現在ブロック１５２との間の残差を生成することができる。いくつかの例では、ビデオエンコーダは、フレームをコーディングするのに先立って（たとえば、ピクセルの数および／またはブロックの数の点で）動きサーチのために、どの程度大きなサーチ領域を使用するかを（たとえば、ファームウェア内で）決定することができる。
【０１４０】
[0148]本開示の態様によれば、（デバイス１００の温度／電力マネージャ１４８（図５）など）デバイスの電力マネージャは、デバイスの動作特性に基づいて、サーチ領域１５４を調整することができる。たとえば、電力マネージャは、（たとえば、デバイスの電力消費および／または温度が所定のしきい値を超えるとき）デバイスの動作特性に基づいて、サーチ領域１５４を（影付きブロックのすべてを含む）第１のサイズから（より濃い影付きブロックを含み、「低減されたサーチ領域」と呼ばれる）第２の、より小さなサイズ１５８に低減することができる。一般に、図３に関して上で述べたように、サーチ領域は動きサーチのための領域であり得る。たとえば、サーチ領域１５４は、識別されたブロックが動き推定／補償の間に参照ブロックとして使用され得るように、現在コーディングされているブロック（現在ブロック１５２）と密に整合するブロックを識別するために使用され得る。いくつかの例では、サーチ領域１５４のエリア（たとえば、ブロック）は、２乗差分和（ＳＳＤ）、絶対差分和（ＳＡＤ）、または参照ブロックを識別するための他の基準に基づいて、現在ブロック１５２に対して評価され得る。サーチ領域のサイズを低減することは、たとえば、符号化のために必要とされるメモリトラフィックの量、たとえば、インター予測のための参照ブロックを位置特定するためのメモリからの読取りを低減し得る。加えて、ブロック整合に関連する演算が低減され得る。したがって、本技法はデバイスの電力消費を低下し得る。
【０１４１】
[0149]しかしながら、サーチ領域を低減することはまた、現在ブロックをインターコーディングするためのベストマッチを位置特定するより低い確率をもたらし得る。たとえば、図７に示すように、低減されたサーチ領域１５８はもはやベストマッチ１５６を含まない。したがって、ビデオエンコーダは、現在ブロック１５２ならびにベストマッチ１５６に整合しない低減されたサーチ領域１５８からブロックを選択し、それによって、残差のサイズを増大し、コーディング効率を低減し得る。したがって、本技法はメモリ帯域幅を節約する（それによって、電力ドローおよび／または温度を低下させる）ことが可能であるが、節約はより低い圧縮効率を犠牲にして達成され得る。本明細書で説明するように、ビデオエンコーダは、損失した圧縮を回復するために適切な時点でデータをトランスコードすることができる。
【０１４２】
[0150]場合によっては、図７に示すように、サーチ領域を低減することは、より大きなサイズを有するピクチャ（たとえば、「４Ｋ」と呼ばれる、４０００ピクセルの水平解像度を有するピクチャ）および比較的限定されたオンチップメモリを有するビデオエンコーダに対して比較的有効なメモリ帯域幅節約を実現し得る。いくつかの例では、サーチ領域が（ピクセルで）±２５６ｘ±１２８から１１２ｘ±６４に低減される場合、平均３％のレート増大が生じ得る。
【０１４３】
[0151]図８Ａおよび図８Ｂは、それぞれ、イントラ予測モードおよびイントラ予測モードを示す概念図である。図８Ａに示すようなイントラ予測では、ビデオデータのブロック１５９（「符号化ブロック」）は、同じスライスまたはピクチャの近接ピクセルの情報に対してコーディングされる。すなわち、（ビデオエンコーダ２０および／またはコーデック１４４などの）ビデオエンコーダは、コーディングされているブロックのサンプルと近接サンプルとの間の差異に基づいて、残差を決定することができる。
【０１４４】
[0152]ピクセルは、様々な異なる様式でイントラ予測され得る。図８Ｂは、ＨＥＶＣにおいて使用されるイントラ予測モードを示す図である。図８Ｂは、概して、ＨＥＶＣにおけるイントラコーディングに利用可能な様々な方向性イントラ予測モードに関連する予測方向を示す。現在のＨＥＶＣでは、各予測ユニット（ＰＵ）のルーマ成分に関して、図８Ｂに示すように、（２から３４までインデックス付けされた）３３個の方向性（角度）予測モードと、（１とインデックス付けされた）ＤＣモードと、（０とインデックス付けされた）平面モードとを用いたイントラ予測方法が利用される。
【０１４５】
[0153]（０とインデックス付けされた）平面モードでは、ビデオデータのブロック、たとえばＰＵ内のピクセルの各々に対する予測子値を決定するために、いわゆる「平面」関数を使用して予測が実行される。（１とインデックス付けされた）ＤＣモードでは、ブロック内のピクセルの各々に対する予測子値を決定するために、ブロック内のピクセル値の平均を使用して予測が実行される。方向性予測モードでは、（そのモードによって示される）特定の方向に沿った隣接ブロックの再構成されたピクセルに基づいて予測が実行され、この場合、そのような再構成されたピクセルはイントラ予測参照サンプルとして働く。概して、図８Ｂに示されている矢印の末端は、値がそこから取り出される隣接ピクセルのうちの相対的な１つを表し、矢印のヘッドは、予測ブロックを形成するために取り出された値が伝搬される方向を表す。
【０１４６】
[0154]ＨＥＶＣイントラ予測モードでは、ビデオエンコーダおよび／またはビデオデコーダは、たとえば、モード２から３４に対するＰＵの隣接サンプルを使用することによって、上で論じた様々なモードを使用してＰＵ内の各ピクセルに関するピクセル固有の予測子値を生成する。ビデオエンコーダ（たとえば、コーデック１４４の形で実装されるエンコーダ２０）は、ブロックのピクセルに関する実際の深度の値と予測子値との間の差分に基づいてビデオブロックに関する残差値を決定し、残差値をビデオデコーダ（たとえば、コーデック１４４の形で実装されるデコーダ３０）に提供する。ビデオエンコーダは、残差値を変換し、変換係数を量子化し、量子化された変換係数をエントロピー符号化することもできる。ビデオデコーダは、エントロピー復号、逆量子化、および逆変換の後で、残差値を予測子値に加算することによって、ブロックのピクセルに関して再構成された値を決定する。
【０１４７】
[0155]いくつかの例では、ビデオエンコーダは、フレームをコーディングするのに先立って、予測モード（たとえば、イントラ予測モードまたはインター予測モード）を（たとえば、ファームウェア内で）決定することができる。上述のように、予測ブロックに関して参照ピクチャがサーチされるインター予測は、メモリから参照ピクチャをフェッチして、読み取るため、比較的高いメモリ帯域幅を必要とし得る。しかしながら、上述のように、イントラ予測は、現在コーディングされているピクチャの近接ピクチャだけを参照として使用する。したがって、イントラコーディングの場合、外部メモリから参照データを読み取る必要はない場合がある。
【０１４８】
[0156]本開示の態様によれば、（デバイス１００の温度／電力マネージャ１４８（図５）など）デバイスの電力マネージャは、デバイスの動作特性に基づいて、予測モードを選択することができる。たとえば、電力マネージャは、インター予測モードおよび／または（たとえば、図８Ｂに関して上で説明したように）イントラモードのうちの１つもしくは複数を無効化することを含めて、利用可能である利用可能な予測モードの数を低減することができる。利用可能な予測モードを低減することは、たとえば、符号化のために必要とされるメモリトラフィックの量および／または演算リソースを低減し、それによって、デバイスの電力消費を低減し得る。
【０１４９】
[0157]しかしながら、利用可能な予測モードのタイプおよび／または数を低減することは、同じく圧縮効率を低下させる場合がある。したがって、本技法は帯域幅および／または演算を節約することができるが、節約はより低い圧縮効率を犠牲にして達成され得る。たとえば、インター予測モードからイントラ予測モードへの切替えは、メモリ帯域幅を比較的著しく低減し得るが、符号化されたビデオデータのビットレートは比較的実質的に増大し得る。本明細書で説明するように、ビデオエンコーダは、損失した圧縮を回復するために適切な時点でデータをトランスコードすることができる。
【０１５０】
[0158]図９は、本開示の態様による、ビデオデータを符号化するための例示的なプロセスを示す。たとえば、図９は、（ビデオエンコーダ２０および／またはコーデック１４４と同様にもしくは同じように構成され得る）ビデオコーデック１６０の１つまたは複数の動作パラメータが、たとえば、（デバイス１００など）デバイスの１つまたは複数の動作特性に基づいて、符号化に先立って最初に設定され得る例を示す。
【０１５１】
[0159]動作特性は、たとえば、コーディングされているビデオデータのフレームレート（たとえば、フレーム毎秒（ＦＰＳ）で、コーディングされているビデオデータの解像度、コーディングされているビデオデータのピクセル処理レート、またはそれらの任意の組合せを含み得る。いくつかの例では、ピクセル処理レートは、シーケンス内のピクチャの解像度をシーケンスのフレームレートで乗算すること（たとえば、記録解像度*ＦＰＳ情報）によって決定され得る。例示のために図９の例では別個に示されているが、動作特性はまた、（たとえば、バッテリーの容量、バッテリーの残存充電、バッテリーの充電状態など）デバイスのバッテリーのバッテリー状態を含み得る。
【０１５２】
[0160]図９の例では、デバイスは、ビデオコーデック１６０の動作パラメータを決定するために、パラメータ／しきい値１６４のルックアップテーブルまたは他のリスティングもしくはモデルを使用することができる。いくつかの例では、パラメータのリスティングは、デバイスのドライバ内に含まれてよく、および／またはデバイスのドライバによってアクセスされてよい。したがって、ルックアップテーブルまたはしきい値ボックス１６４は、ビデオコーデック１６０の動作パラメータを決定するためのルックアップテーブル（ＬＵＴ）または他の比較機能の使用を表す。たとえば、（たとえば、温度／電力マネージャ１４８など）温度および／または電力マネージャは、ビデオコーデック１６０に関する設定／調整を決定するために、ＬＵＴまたはしきい値ボックス１６４を組み込むことができる。すなわち、温度および／または電力マネージャは、動作特性またはバッテリー状態情報を受信し、ビデオコーデック１６０に関する設定および／または調整を取得するためのインデックス値としてそのデータを使用することができる。
【０１５３】
[0161]本開示の他の場所で述べるように、圧縮レートと電力消費との間の最適トレードオフを達成するための設定および／または調整（たとえば、符号化パラメータ）が選択され得る。すなわち、本技法は、電力消費および／またはデバイスによって生成される熱を低減するために使用され得るが、符号化されたファイルのサイズを増大させる可能性がある。
【０１５４】
[0162]ビデオコーデック１６０に関して決定され得る例示的な符号化パラメータとしては、Ｂフレームを有効化または無効化するかどうか、インター予測モードに関連するサーチ領域を調整するかどうか、および１つまたは複数の予測モードを有効にするかどうかがある。本開示の技法は、これらの例示的なパラメータに限定されない。（たとえば、ブロックのサイズ、量子化レート、他の予測限界、復号されたピクチャバッファに記憶されるピクチャの数および／またはデータの量など）他の符号化パラメータの調整も可能である。
【０１５５】
[0163]いくつかの例では、符号化パラメータは静的であり得る。他の例では、符号化パラメータは動的であり得る。すなわち、ルックアップテーブル１６４の符号化パラメータは、デバイスの動作状態に基づいて変更し得る。例示のための例では、テーブル１６４が、ビデオコーデック１６０を所定の動作温度および／または電力消費しきい値よりも低く維持するための第１のパラメータセットを含むと仮定する。コーデック１６０は、それらのパラメータを使用してビデオデータを符号化するが、所定の動作温度および／または電力消費しきい値を超えるとさらに仮定する。この例では、ファイルを符号化した後であるが、後続のファイルを符号化するのに先立って、テーブル１６４は、より積極的な電力節約を達成し得る動作パラメータを用いて更新され得る。
【０１５６】
[0164]図１０は、本開示の態様による、ビデオデータを符号化するためのもう１つの例示的なプロセスを示す。たとえば、図１０は、（ビデオエンコーダ２０および／またはコーデック１４４と同様にもしくは同じように構成され得る）ビデオコーデック１７０の１つまたは複数の動作パラメータが、（デバイス１００など）デバイスの１つまたは複数の動作特性に基づいて、符号化の間に動的に変更され得る例を示す。
【０１５７】
[0165]動作特性は、一例として、コーディングされているビデオデータのフレームレート（たとえば、フレーム毎秒（ＦＰＳ）で、コーディングされているビデオデータの解像度、コーディングされているビデオデータのピクセル処理レート、（たとえば、バッテリーの容量、バッテリーの残存充電、バッテリーの充電状態など）デバイスのバッテリーのバッテリー状態、またはそれらの任意の組合せを含み得る。いくつかの例では、ピクセル処理レートは、シーケンス内のピクチャの解像度をシーケンスのフレームレートで乗算すること（たとえば、記録解像度*ＦＰＳ情報）によって決定され得る。
【０１５８】
[0166]図１０の例では、システムレベル温度エンジン１７４は、デバイスの１つまたは複数の機能ブロックから温度示度数を受信することができる。システムレベル温度エンジンは、（温度／電力マネージャ１４８（図５）に対応し得る）ビデオ温度／電力マネージャ１７８に（デバイスの温度を低減するための）熱緩和要求または（デバイスによる電力消費を低減するための）電力バジェット（power budget）限定要求を発行することができる。
【０１５９】
[0167]ビデオ温度／電力マネージャ１７８は、熱緩和要求または電力バジェット限定要求を満たすために、ビデオコーデック１７０の動作パラメータに関する設定および／または調整を決定することができ、上で説明した（バッテリー状態を含む）動作特性に基づき得る。いくつかの例では、ビデオ温度／電力マネージャ１７８は、デバイスのドライバ内に含まれてよく、および／またはデバイスのドライバによってアクセスされてよい。この場合も、本開示の他の場所で述べるように、本技法は、電力消費および／またはデバイスによって生成された熱を低減するために使用され得るが、符号化されたファイルのサイズを増大させる可能性がある。
【０１６０】
[0168]ビデオ温度／電力マネージャ１７８が調整し得る例示的な符号化パラメータとしては、Ｂフレームを有効化または無効化するかどうか、インター予測モードに関連するサーチ領域を調整するかどうか、および１つまたは複数の予測モードを有効化するかどうかがある。本開示の技法は、これらの例示的なパラメータに限定されない。（たとえば、ブロックのサイズ、量子化レート、他の予測限界、復号されたピクチャバッファに記憶されるピクチャの数および／またはデータの量の制限など）他の符号化パラメータの調整も可能である。
【０１６１】
[0169]いくつかの例では、システム温度エンジン１７４およびビデオ温度電力マネージャ１７８は、ビデオコーデック１７０を含むデバイスの電力ドローおよび／または温度を制御するために一緒に動作することができる。たとえば、システム温度エンジン１７４およびビデオ温度電力マネージャ１７８は、ビデオコーデック１７０を含むデバイスの電力ドローおよび／または温度を制御するための所定の優先度に基づいて動作することができる。場合によっては、ビデオ温度電力マネージャ１７８は、本開示の技法に従って、特定の品質のビデオデータを維持しながら、符号化パラメータを調整する役目を最初に果たすことができる。ビデオ温度電力マネージャ１７８によって適用される技法がデバイスの電力消費および／または温度を特定のしきい値未満に低減しない場合、システムレベル温度エンジン１７４は、ビデオ品質を犠牲にして、ビデオコーデック１７０を含むデバイスの電力ドローおよび／または温度をさらに低減するために、（たとえば、プロセッサスロットリング、ＦＰＳの低減、解像度の低減など）他の技法を提供することができる。
【０１６２】
[0170]図１１は、本開示の態様による、符号化されたビデオデータをトランスコードするための例示的なプロセスを示す。図１１の例はトランスコーディングユニット１８０を含む。トランスコーディングユニット１８０は、（デバイス１００など）デバイスの独立型ユニットであってよく、または（コーデック１４４など）コーデック内に含まれてもよい。たとえば、トランスコーディングユニット１８０は第１のパスとは異なるコーディングパラメータを使用する、コーデック１４４を通る第２のパスを表し得る）。
【０１６３】
[0171]上述のように、上で説明したパラメータ（または、本開示で具体的に説明しない他の符号化パラメータ）の調整は、符号化されたビデオデータのビットレートに影響を及ぼし得る。本開示の態様によれば、トランスコードユニット１８０は、１つまたは複数のビデオファイルを第１のファイルサイズから（たとえば、増大した圧縮レートを有する）第２の、より小さいファイルサイズにトランスコードすることができる。
【０１６４】
[0172]いくつかの例では、本開示の態様によれば、トランスコーディングユニット１８０は、所定のトランスコーディング状態が満たされると、たとえば、初期化トリガおよび／または終了トリガ時に、トランスコーディングを開始することができる。たとえば、トランスコーディングユニット１８０は、トランスコーディングユニット１８０を含むデバイスの１つまたは複数の構成要素がアイドルであるとき、トランスコーディングを開始することができる。別の例では、トランスコーディングユニット１８０は、電源が所定の残存電力しきい値を超えるとき、トランスコーディングを開始することができる。別の例では、トランスコーディングユニット１８０は、電源が所定のレートよりも遅く放電しているとき、トランスコーディングを開始することができる。別の例では、トランスコーディングユニット１８０は、電源が外部電源（たとえば、ＡＣ電源）に接続されるとき、トランスコーディングを開始することができる。さらに別の例では、温度／電力マネージャ１４８は、デバイス１００のユーザによってトランスコードを指示されると、トランスコーディングを開始することができる。他の例も可能である。
【０１６５】
[0173]同様に、トランスコーディングユニット１８０は、所定の終了トリガが生じると、トランスコーディングを停止（終了）することができる。いくつかの例では、トランスコーディング終了トリガは、トランスコーディング初期化トリガに基づき得る。一例では、トランスコーディングユニット１８０が、デバイスの１つまたは複数の構成要素がアイドルである（たとえば、トリガがアイドル持続時間である）ときにトランスコーディングを開始する場合、トランスコーディングユニット１８０は、デバイスの１つまたは複数の構成要素がアクティブになるときトランスコーディングを終了することができる。別の例では、トランスコーディングユニット１８０が、電源が所定の残存電力しきい値を超えるときにトランスコーディングを開始する場合、トランスコーディングユニット１８０は、電源がそのしきい値未満の電力を有すると、トランスコーディングプロセスを終了することができる、などである。
【０１６６】
[0174]本開示の態様によれば、トランスコーディング１８０は、特定のファイルがトランスコーディングを終えるまで、（トリガが満たされると）アクティブなトランスコーディングと（終了条件が満たされると）トランスコーディングしないこととの間でトグルし続けることができる。
【０１６７】
[0175]図１２は、デバイス１００など、デバイスの電力消費を決定するための例示的なプロセスを示す。たとえば、上述のように、本開示の態様によれば、デバイスは、ビデオ符号化設定の電力影響を評価するために、１つまたは複数の電力モデルを使用することができる。デバイスは、これらの電力モデルに少なくとも部分的に基づいて、（ビデオエンコーダ２０および／またはビデオコーデック１４４など）ビデオエンコーダの１つもしくは複数の符号化パラメータを決定することができる。図１２の例では、電力モデルは、ビデオエンコーダ電力モデル２００と、メモリ電力モデル２０２と、ローカルストレージデバイス電力モデル２０４と、セルラー電力モデル２０６と、ワイヤレスローカルエリアネットアーク（ＷＬＡＮ）電力モデル２０８とを含む。
【０１６８】
[0176]符号化されたビデオデータは、各々がビデオデータを記憶するために必要とされる電力に影響を及ぼし得る様々なロケーションに記憶され得る。たとえば、デバイスは、ビデオデータをリモートストレージロケーションに記憶するよりも少ない電力を使用して、（メモリ１０８（図５）など）ローカルストレージロケーションにビデオデータを記憶することができる。リモートストレージロケーションは、たとえば、モデムまたはデータをリモートストレージロケーションに送信するための他の構成要素からの電力ドローにより、比較的より多くの電力を必要とし得る。本開示の態様の態様によれば、デバイスは、ビデオ符号化設定のチップセットまたはシステムレベルの電力影響を評価し、より低い電力消費のための最良設定を決定するために、電力モデル２００〜２０８を使用することができる。
【０１６９】
[0177]ビデオエンコーダ電力モデル２００は、１つまたは複数のビデオ符号化パラメータに基づいて、デバイスのビデオエンコーダの電力使用量をモデル化することができる。たとえば、ビデオエンコーダ電力モデル２００は、符号化されているビデオデータのピクセル処理パラメータを決定することができる。いくつかの例では、ピクセル処理パラメータは、コーディングされているビデオデータのフレームレートで乗算された、符号化されているビデオデータの解像度に基づいて決定されたピクセル処理レートであり得る。たとえば、ピクセル毎秒のピクセル処理レートは、ピクチャの水平方向ピクセルの数をピクチャの垂直方向ピクセルの数で乗算したものをビデオデータのフレームレート（ＦＰＳ）で乗算したものに等しくてよい。ビデオビデオエンコーダ電力モデル２００は、（たとえば、予測モード、Ｂフレームが有効化されるかどうか、サーチ領域など）いくつかの他のビデオエンコーダ設定および／またはパラメータを考慮することも可能である。
【０１７０】
[0178]ローカルストレージデバイス電力モデル２０４は、符号化されたビデオデータをローカルメモリ（たとえば、ＳＤカードなど、デバイスのメモリ）に記憶するとき、デバイスの電力使用量をモデル化することができる。セルラー電力モデル２０６は、セルラーまたは他のワイヤレス技法など、ワイヤレス伝送技法を使用して、符号化されたビデオデータをリモートメモリに記憶するときのデバイスの電力使用量をモデル化することができる。いくつかの例では、セルラー電力モデル２０６は、３Ｇ／４Ｇセルラーモデム、無線周波数（ＲＦ）送信機、および電力増幅器（ＰＡ）の電力をモデル化することができる。ＷＬＡＮ電力モデル２０８は、ＷｉＦｉまたは他のワイヤレス技法など、ワイヤレス伝送技法を使用して、符号化されたビデオデータをリモートメモリに記憶するときのデバイスの電力量使用をモデル化することができる。いくつかの例では、ＷＬＡＮ２０８は、ＷｉＦｉモデムおよび電力増幅器ＰＡの電力をモデル化することができる。
【０１７１】
[0179]電力モデルは、デバイスのビデオエンコーダが特定のビデオ符号化パラメータを実装するとき、デバイスの電力消費に対して推定される影響を決定するために使用され得る。すなわち、電力モデルは、特定の符号化パラメータ（または、符号化パラメータの調整）から生じる総電力影響を決定するためにインパクトユニット（impact unit）２１０によって使用され得る。たとえば、インパクトユニット２１０は、ビデオエンコーダ電力モデル２００、メモリ電力モデル２０２、ローカルストレージデバイス電力モデル２０４、セルラー電力モデル２０６、およびワイヤレスローカルエリアネットアーク（ＷＬＡＮ）電力モデル２０８の和を計算することができる。いくつかの例では、この和は、他の電力モデル２００〜２０８よりも大きな重みを電力モデル２００〜２０８のうちの１つまたは複数に与えた、重み付けされた和であり得る。
【０１７２】
[0180]本開示の態様によれば、デバイスは、ビデオエンコーダのビデオ符号化パラメータを制御するために、電力モデル２００〜２０８を使用することができる。一例では、推定される電力ドローが所定のしきい値を超えるとき、デバイスは、本開示の他の場所で説明するように、（たとえば、Ｂフレームを無効化する、サーチ領域を低減する、１つまたは複数の予測モードを無効化するなど）デバイスの電力消費を低減するために、符号化パラメータを実装することができる。
【０１７３】
[0181]図９〜図１２に関して（ならびに、本開示の他の場所で）説明する技法は、場合によっては、デバイスによって実行される１つまたは複数のアルゴリズムを使用して実行され得る。例示的なアルゴリズムおよび詳細を下の表２の例に示す。
【０１７４】
【表２−１】
2017504255.tif 000004
【表２−２】
2017504255.tif 000005
【０１７５】
[0182]図１３は、電力消費といくつかの符号化パラメータ（たとえば、（図６に関して上で説明したような）Ｂフレーム符号化パラメータ、（図７に関して上で説明したような）サーチ領域パラメータ、ならびに（図８Ａおよび図８Ｂに関して上で説明したような）コーディングモードパラメータとの関係の例示的なグラフを示す。図１３の例示的なグラフは、所与の量のビデオデータを符号化するときの、図１２のセルラー電力モデル２０６の適用を表し得る。
【０１７６】
[0183]たとえば、ライン１８０は、所与の量のビデオエータを符号化するとき、デバイスのビデオエンコーダおよび／またはメモリによって消費される電力量を表す。ライン１８２は、デバイスと、デバイスと通信する基地局との間に比較的長い距離を仮定した、符号化されたビデオデータをリモートストレージロケーションにワイヤレスで送信するために必要とされる電力量を表す。ライン１８４は、デバイスと、デバイスと通信する基地局との間に比較的短い距離を仮定した、符号化されたビデオデータをリモートストレージロケーションにワイヤレスで送信するために必要とされる電力量を表す。
【０１７７】
[0184]ライン１８０によって示すように、ビデオデータの符号化に関連する電力消費は、Ｂフレームが有効化され、サーチ領域が比較的大きく、ビデオデータがインターモードを用いて符号化されているとき、比較的大きい。大きな電力消費は、ビデオ符号化を実行するときの、演算および（ビデオエンコーダとメモリ間の）データ転送に起因し得る。Ｂフレームが無効化されるとき、より小さなサーチ領域が使用されるとき、および／またはイントラモードコーディングが実行されるとき、メモリ帯域幅および処理の低減は、ビデオデータを符号化するために必要とされる電力量を低減させる可能性がある。
【０１７８】
[0185]しかしながら、ライン１８２および１８４によって示すように、符号化されたビデオファイルをリモートストレージロケーションに記憶することに関連する電力消費は、Ｂフレームが無効化されるとき、より小さなサーチ領域が使用されるとき、またはイントラモードコーディングが実行されるとき、増大し得る。たとえば、ビデオデータの特定の品質を維持し、Ｂフレームが無効化されるとき、符号化されたビデオファイルのサイズは（Ｂフレームが有効化されるのと相対的に）増大する。したがって、より大きなファイルサイズを送信することに関連する電力消費も増大する。
【０１７９】
[0186]ビデオデータを送信することに関連する電力は、いくつかの要因に基づいて変更し得る。たとえば、図１３に示すように、符号化されたビデオデータを送信しているデバイスがセルラー基地局から比較的遠くに位置する場合（ライン１８２）、セルラーモデム、ＲＦ送信機、およびＲＡの電力ドローは、より強力な伝送（ＴＸ  ｄＢｍ）を生成するために比較的高くなる可能性がある。デバイスがセルラー基地局に比較的近くに位置する場合（ライン１８４）、伝送（ＴＸ  ｄＢｍ）のためにより少ない電力が必要とされるため、セルラーモデム、ＲＦ送信機、およびＰＡの電力ドローは比較的低い可能性がある。
【０１８０】
[0187]本開示の態様によれば、デバイスは、ビデオデータを符号化および記憶することに関連する電力量のモデルに基づいて、（たとえば、Ｂフレーム符号化パラメータ、サーチ領域パラメータ、コーディングモードパラメータなど）符号化パラメータを決定することができる。たとえば、デバイスは、調整から生じる電力ドローの変更に基づいて、符号化パラメータ調整を最適化することができる。
【０１８１】
[0188]例示のための例では、デバイスは、ビデオデータを符号化することに関連する電力（ライン１８０）とビデオデータを記憶することに関連する電力（ライン１８４のライン１８２）の交差に基づいて、ビデオ符号化パラメータを調整することができる。この交差に基づいて、符号化パラメータを選択することによって、デバイスは、符号化されたファイルを生成すること、および符号化されたファイルを送信／記憶することに関連する最適電力消費を位置特定することができる。
【０１８２】
[0189]たとえば、ライン１８２および１８４に関して、基地局に比較的近く位置し、したがって、符号化されたビデオデータを送信するとき比較的少量の電力を消費する（ライン１８４）デバイスは、比較的大きなファイルサイズをもたらす符号化パラメータを選択することができる。すなわち、ライン１８０および１８４の交差は、Ｂフレームが無効化され、サーチ領域が小さく、および／またはイントラモードコーディングが使用される、大きなファイルサイズをもたらす、グラフの右に位置する。しかしながら、符号化されたファイルを送信することに関連する電力量は比較的小さく、電力節約は符号化パラメータを無効化することによって達成され得るため、大きなファイルサイズは許可される。
【０１８３】
[0190]しかしながら、基地局から比較的遠くに位置し、したがって、符号化されたビデオデータを送信するとき、比較的大量の電力を消費する（ライン１８２）デバイスは、比較的小さなファイルサイズをもたらす符号化パラメータを選択することができる。すなわち、ライン１８０および１８２の交差は、Ｂフレームが有効化され得、サーチ領域がより大きくてよく、および／またはインターモードコーディングが使用され得る、より小さなファイルサイズをもたらす、グラフのさらに左に位置する。しかしながら、符号化されたファイルを送信することに関連する電力量は比較的大きく、電力節約はより小さなファイルを送信することによって達成され得るため、そのようなパラメータを有効化することに関連する電力ドローは許可される。
【０１８４】
[0191]図１３の例は、例示のためだけに提示されている。（たとえば、サーチ領域、予測モードなど）他の動作パラメータの任意の組合せを決定するために同様のグラフが生成され得る。下に示す表３は、３０ＦＰＳおよび２４ＦＰＳでキャプチャされた所与の量のビデオデータに関してＢフレームを無効化する結果を示す。
【０１８５】
【表３】
2017504255.tif 000006
【０１８６】
[0192]図１４は、本開示の技法に従った、パレットコーディングモードを使用してビデオデータをコーディングするための例示的なプロセスを示すフローチャートである。図１４のプロセスは、デバイス１００およびコーデック１４４（図５）など、コーデックを有するデバイスに関して説明される。しかしながら、ビデオコーディングのための１つまたは複数の他の構成要素を有する他のデバイスは同様の方法を実行するように構成され得ることを理解されたい。その上、本方法におけるいくつかのステップは、異なる順序で、または並行して実行されてよい。同様に、様々な例では、いくつかのステップが省略されてよく、他のステップが追加されてよい。
【０１８７】
[0193]図１４の例では、デバイス１００は、コーデック１４４に関する初期符号化パラメータのセットを決定する（１９０）。たとえば、本開示の態様によれば、デバイス１００は、Ｂフレームパラメータと、サーチ領域パラメータと、予測モードパラメータとを含む初期パラメータを決定することができる。デバイス１００は、デバイス１００および／もしくはコーデック１４４の動作特性に基づいて、デバイス１００が動作する温度ならびに／またはデバイス１００の電力ドローを先制して制御するための初期パラメータを選択することができる。
【０１８８】
[0194]たとえば、デバイス１００は、コーデック１４４によってコーディングされているビデオデータのピクセル処理レートに基づいて、１つまたは複数の初期符号化パラメータを決定することができる。高いピクセル処理レートは、大きな演算負荷ならびに対応する高い温度および／または電力ドローに関連し得る。したがって、デバイスは、演算負荷を低減し、および／または符号化に関連するメモリトラフィックを低減し、それによって、デバイス１００の温度ならびに／あるいは電力ドローを先制的に制御するために、１つもしくは複数の符号化パラメータを決定することができる。いくつかの例では、デバイス１００は、ルックアップテーブルまたはパラメータ値の他のリスティングに基づいて初期符号化パラメータを決定することができる。
【０１８９】
[0195]コーデック１４４は、次いで、初期符号化パラメータを使用して、ビデオデータの符号化を開始することができる（１９２）。デバイス１００はまた、デバイス１００の１つまたは複数の動作特性を決定することができる（１９４）。たとえば、デバイス１００は、デバイスの１つまたは複数の構成要素の温度を決定することができる。別の例では、デバイス１００は、ビデオデータの解像度およびビデオデータのフレームレートに基づき得る、ビデオデータを符号化するためのピクセル処理レートを決定することができる。さらに別の例では、デバイス１００は、デバイスの（たとえば、バッテリー内に残存する充電、バッテリーが現在充電されているかまたは充電しているか、など）バッテリーの状態を決定することができる。
【０１９０】
[0196]デバイス１００は、動作特性のうちの１つまたは複数がそれぞれの特性に関するしきい値を超えるかどうかを決定することができる（１９６）。いくつかの例では、デバイス１００は、デバイス１００が特定の動作温度よりも低い動作温度で動作する状態を維持するため、および／または電源１４６の消耗を遅らせるために、所定のもしくは動的なしきい値を実装することができる。いくつかの例では、デバイス１００は温度しきい値を直接的に決定することができる。いくつかの例では、デバイス１００は、ピクセル処理レートしきい値など、デバイス１００の１つまたは複数の構成要素の温度を示し得るプロキシしきい値を決定することができる。さらに他の例では、デバイス１００は、電源１４６が所定の量を超えて、または所定のレートよりも早く消耗されるのを防ぐしきい値など、電源しきい値を決定することができる。
【０１９１】
[0197]動作特性がそれぞれのしきい値よりも大きくない場合、デバイス１００は、変更なしに、符号化パラメータを維持することができる（１９８）。しかしながら、動作特性がそれぞれのしきい値よりも大きい場合、デバイス１００は、１つまたは複数の符号化パラメータを調整することができる（２００）。たとえば、本開示の態様によれば、デバイス１００は、Ｂフレームパラメータを調整すること（たとえば、Ｂフレームの使用を無効化すること）、サーチ領域パラメータを調整すること（たとえば、インター予測のためのサーチエリアを制約すること）、予測モードパラメータを調整すること（たとえば、インター予測を無効化すること）、またはそれらの任意の組合せを行うことができる。いくつかの例では、デバイス１００は、所定の階層に基づいて、符号化パラメータを調整すること（たとえば、最初にＢフレームパラメータ、続いて、サーチ領域パラメータ、続いて、予測モードパラメータを調整すること）ができる。他の例では、デバイス１００は、たとえば、パラメータ調整アルゴリズムに従って、同時に２つ以上の符号化パラメータを選択的に調整することができる。
【０１９２】
[0198]デバイス１００は、符号化が完了したかどうかを決定することができる（２０２）。符号化が完了しない場合、デバイス１００は、符号化パラメータを調整するかどうかを決定するために、１つまたは複数の動作パラメータを決定し続けることができる（１９４）。符号化が完了した場合、デバイス１００は、ビデオデータのうちの少なくとも一部が低電力モードを使用して符号化され、符号化された比較的大きなファイルサイズをもたらすと仮定して、符号化されたビデオデータをトランスコードすることができる（２０４）。
【０１９３】
[0199]したがって、本開示の態様によれば、方法は、電子デバイスの動作特定を決定することと、ここにおいて、電子デバイスの１つまたは複数の構成要素が、ビデオデータを記録するように構成される、デバイスの決定された動作特性に少なくとも部分的に基づいて、ビデオデータを符号化するための符号化パラメータを決定することと、決定された符号化パラメータを使用して、ビデオデータを符号化することとを備える。
【０１９４】
[0200]一例では、上記の方法、デバイスの動作特性は、符号化パラメータを決定することが、解像度に少なくとも部分的に基づいて、符号化パラメータを決定することを備えるように、ビデオデータを記録するための解像度を備える。
【０１９５】
[0201]別の例では、上記の方法は、ビデオデータを記録するための解像度しきい値を決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することは、解像度しきい値に対してビデオデータを記録するための解像度に基づいて、符号化パラメータを決定することをさらに備える。
【０１９６】
[0202]別の例では、上記の方法、デバイスの動作特性は、符号化パラメータを決定することが、フレームレートに少なくとも部分的に基づいて、符号化パラメータを決定することを備えるように、ビデオデータを記録するためのフレームレートを記録することを備える。
【０１９７】
[0203]別の例では、上記の方法は、ビデオデータを記録するためのフレームレートしきい値を決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することは、フレームレートしきい値に対してビデオデータを記録するためのフレームレートに基づいて、符号化パラメータを決定することをさらに備える。
【０１９８】
[0204]別の例では、上記の方法、デバイスの動作特性は、符号化パラメータを決定することが、バッテリーの状態に少なくとも部分的に基づいて、符号化パラメータを決定することを備えるように、デバイスのバッテリー状態を備える。
【０１９９】
[0205]別の例では、上記の方法は、デバイスの１つまたは複数の構成要素に関する温度しきい値を決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することは、温度しきい値に対してデバイスの１つまたは複数の構成要素の温度に基づいて、符号化パラメータを決定することをさらに備える。
【０２００】
[0206]別の例では、上記の方法、デバイスの動作特性は、符号化パラメータを決定することが、温度に少なくとも部分的に基づいて、符号化パラメータを決定することを備えるように、デバイスの１つまたは複数の構成要素の温度を備える。
【０２０１】
[0207]別の例では、上記の方法は、デバイスの１つまたは複数の構成要素に関する温度しきい値を決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することは、温度しきい値に対してデバイスの１つまたは複数の構成要素の温度に基づいて、符号化パラメータを決定することをさらに備える。
【０２０２】
[0208]別の例では、上記の方法、デバイスの動作特性は、符号化パラメータを決定することが、毎秒符号化されるピクセルの数に少なくとも部分的に基づいて、符号化パラメータを決定することを備えるように、毎秒符号化されるビデオデータのピクセルの数を備える。
【０２０３】
[0209]別の例では、上記の方法は、ピクセル処理しきい値を決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することが、ピクセル処理しきい値に対して毎秒符号化されるビデオデータのピクセルの数に基づいて、符号化パラメータを決定することをさらに備える。
【０２０４】
[0210]別の例では、上記の方法は、デバイスの１つまたは複数の構成要素に関する電力バジェットを決定することをさらに含み、ビデオデータを符号化するための符号化パラメータを決定することは、電力バジェットに対してデバイスの１つまたは複数の構成要素によって消費される電力量に基づいて、符号化パラメータを決定することをさらに備える。
【０２０５】
[0211]別の例では、上記の方法は、電力モデルに基づいて、デバイスの１つまたは複数の構成要素によって消費される電力量を決定することをさらに含む。
【０２０６】
[0212]別の例では、上記の方法、符号化パラメータを決定することは、ビデオデータを符号化するためにＢフレームを有効化することを備える。
【０２０７】
[0213]別の例では、上記の方法、符号化パラメータを決定することは、ビデオデータのインター予測コーディングを実行するためのサーチ領域を決定することを備える。
【０２０８】
[0214]別の例では、上記の方法、符号化パラメータを決定することは、１つまたはインター予測コーディングおよびイントラ予測コーディングを用いてビデオデータを符号化するかどうかを決定することを備える。
【０２０９】
[0215]別の例では、上記の方法、符号化パラメータを決定することは、ビデオデータを符号化するために利用可能な予測モードのセットを決定することを備える。
【０２１０】
[0216]別の例では、上記の方法は、ビデオデータを第１のビットレートから第２の、より低いビットレートにトランスコードすることをさらに含む。
【０２１１】
[0217]別の例では、上記の方法、ビデオデータをトランスコードすることは、トランスコーディング初期化トリガを決定することと、トランスコーディング初期化トリガが生じると、ビデオデータをトランスコードすることとを備える。
【０２１２】
[0218]別の例では、上記の方法、トランスコーディング初期化トリガは、ビデオデータをトランスコードすることが、デバイスがアイドル持続時間の間にアイドルである後に、ビデオデータをトランスコードすることを備える、デバイスの所定のアイドル持続時間を備える。
【０２１３】
[0219]別の例では、上記の方法、トランスコーディング初期化トリガは、ビデオデータをトランスコードすることが、バッテリー状態が所定の充電レベルに達すると、ビデオデータをトランスコードすることを備えるように、デバイスのバッテリーのバッテリー状態を備える。
【０２１４】
[0220]別の例では、上記の方法、トランスコーディング初期化トリガは、ビデオデータをトランスコードすることが、デバイスが外部電源によって電力供給されると、ビデオデータをトランスコードすることを備えるように、デバイスの電源状態を備える。
【０２１５】
[0221]別の例では、上記の方法、ビデオデータをトランスコードすることは、トランスコーディング終了トリガを決定することと、トランスコーディング終了トリガが生じると、ビデオデータをトランスコードすることを停止することと備える。
【０２１６】
[0222]別の例では、上記の方法、トランスコーディング終了トリガは、アイドル状態からアクティブ状態へのデバイス状態の変更を備える。
【０２１７】
[0223]別の例では、上記の方法、トランスコーディング終了トリガは、外部電源からデバイスの内部電源へのデバイスの電源状態の変更を備える。
【０２１８】
[0224]別の例では、上記の方法、ビデオデータを符号化するための符号化パラメータを決定することは、デバイスの１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、符号化パラメータを決定することをさらに備える。
【０２１９】
[0225]別の例では、上記の方法は、デバイスの１つまたは複数の構成要素に関する１つまたは複数の電力モデルに基づいて、推定される電力消費を決定することをさらに含む。
【０２２０】
[0226]別の例では、上記の方法は、符号化されたビデオデータを記憶するためのストレージロケーションを決定することと、決定されたストレージロケーションに基づいて、推定される電力消費を決定することとをさらに含む。
【０２２１】
[0227]別の例では、上記の方法、ストレージロケーションは、ローカルストレージロケーションおよびリモートストレージロケーションのうちの１つを備える。
【０２２２】
[0228]別の例では、上記の方法は、符号化されたビデオデータを送信するための伝送プロセスを決定することと、決定された伝送プロセスに基づいて、推定される電力消費を決定することとをさらに含む。
【０２２３】
[0229]別の例では、上記の方法、伝送プロセスは、セルラー伝送プロセスおよびワイヤレスローカルエリアネットワーク（ＷＬＡＮ）伝送プロセスのうちの１つを備える。
【０２２４】
[0230]別の例では、上記の方法、１つまたは複数の電力モデルは、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、およびワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを備える。
【０２２５】
[0231]本開示のいくつかの態様は一緒に説明されているが、これらの態様は、場合によっては、独立して実行され得ることを理解されたい。たとえば、上で説明したトランスコーディング技法は、概して、符号化パラメータ決定／調整技法を用いて説明された。しかしながら、他の例では、トランスコーディング技法は独立して実行され得る。
【０２２６】
[0232]したがって、例に応じて、本明細書で説明した方法のいずれかのある行為またはイベントは、概して、異なる順序で実行されてよく、追加されてもよいし、マージされてもよいし、全体的に除外されてもよい（たとえば、すべての説明した行為またはイベントが方法の実施に必要とは限らない）ことを理解されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【０２２７】
[0233]その上、１つまたは複数の例では、本明細書で説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の１つもしくは複数の命令またはコード上に記憶され、あるいはこれを介して伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。
【０２２８】
[0234]このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことできる。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。
【０２２９】
[0235]また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、もしくは他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０２３０】
[0236]ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびｂｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０２３１】
[0237]命令は、１つもしくは複数のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路またはディスクリート論理回路など、１つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造または本明細書で説明した技法の実装に好適な任意の他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデック内に組み込まれる、専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つもしくは複数の回路または論理素子において完全に実装され得る。
【０２３２】
[0238]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）もしくはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示した技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上で説明したように、様々なユニットは、コーデックハードウェアユニット内で組み合わせられるか、または上で説明した１つもしくは複数のプロセッサを含む、適切なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合体によって提供され得る。
【０２３３】
[0239]本開示の様々な態様が説明されてきた。これらおよび他の態様は以下の特許請求の範囲に入る。
【図１】
2017504255.tif 000007
【図２】
2017504255.tif 000008
【図３】
2017504255.tif 000009
【図４】
2017504255.tif 000010
【図５】
2017504255.tif 000011
【図６】
2017504255.tif 000012
【図７】
2017504255.tif 000013
【図８Ａ】
2017504255.tif 000014
【図８Ｂ】
2017504255.tif 000015
【図９】
2017504255.tif 000016
【図１０】
2017504255.tif 000017
【図１１】
2017504255.tif 000018
【図１２】
2017504255.tif 000019
【図１３】
2017504255.tif 000020
【図１４】
2017504255.tif 000021
【手続補正書】
【提出日】平成28年8月17日(2016.8.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化パラメータを使用して、第１のビットレートでビデオデータを符号化することと、前記符号化されたビデオデータが、ビデオ品質を有する、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、第２のビットレートで前記ビデオデータを符号化することと、ここにおいて、前記第２のビットレートが、前記ビデオ品質を維持するために前記第１のビットレートより高い、
を備える、方法。
【請求項２】
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記方法が、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得すること
をさらに備え、前記符号化パラメータを調整することが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて前記符号化パラメータを調整することをさらに備える、請求項１に記載の方法。
【請求項３】
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記方法が、
ピクセル処理レートしきい値を取得すること
をさらに備え、前記符号化パラメータを調整することが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整することをさらに備える、請求項１に記載の方法。
【請求項４】
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記方法が、
バッテリー状態しきい値を取得すること
をさらに備え、前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整することを備える、請求項１に記載の方法。
【請求項５】
前記１つまたは複数の構成要素に関する電力バジェットを取得すること
をさらに備え、前記符号化パラメータを調整することが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整することをさらに備える、請求項１に記載の方法。
【請求項６】
前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整することを備える、請求項１に記載の方法。
【請求項７】
前記符号化されたビデオデータに関する記憶先または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定することをさらに備える、請求項６に記載の方法。
【請求項８】
前記推定される電力消費を決定することが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定することを備える、請求項７に記載の方法。
【請求項９】
前記符号化パラメータを調整することが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化することを備える、請求項１に記載の方法。
【請求項１０】
前記符号化パラメータを調整することが、前記ビデオデータのインター予測コーディングを実行するためのサーチ領域サイズを調整することを備える、請求項１に記載の方法。
【請求項１１】
前記符号化パラメータを調整することが、インター予測コーディングまたはイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定することを備える、請求項１に記載の方法。
【請求項１２】
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じたと前記決定すると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイスの状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じたと前記決定すると、前記ビデオデータの前記トランスコードすることを停止することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記第２のビットレートで前記ビデオデータを符号化することが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを前記第１のビットレートでビデオデータを符号化することに対して固定レベルで設定することを備える、請求項１に記載の方法。
【請求項１４】
ビデオデータを記録するように構成された１つまたは複数の構成要素と、
符号化パラメータを使用して、第１のビットレートでビデオデータを符号化することと、前記符号化されたビデオデータが、ビデオ品質を有する、
前記ビデオデータを記録するように構成された電子デバイスの前記１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、第２のビットレートで前記ビデオデータを符号化することと、ここにおいて、前記第２のビットレートが、前記ビデオ品質を維持するために前記第１のビットレートより高い、
を行うように構成された１つまたは複数のプロセッサと
を備える、電子デバイス。
【請求項１５】
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記１つまたは複数のプロセッサが、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得する
ようにさらに構成され、前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて、前記符号化パラメータを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項１６】
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記１つまたは複数のプロセッサが、
ピクセル処理レートしきい値を取得する
ようにさらに構成され、前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項１７】
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記１つまたは複数のプロセッサが、
バッテリー状態しきい値を取得する
ようにさらに構成され、前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項１８】
前記１つまたは複数のプロセッサが、
前記１つまたは複数の構成要素に関する電力バジェットを取得する
ようにさらに構成され、前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項１９】
前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項２０】
前記１つまたは複数のプロセッサが、前記符号化されたビデオデータに関する記憶先または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定するようにさらに構成される、請求項１９に記載の電子デバイス。
【請求項２１】
前記推定される電力消費を決定するために、前記１つまたは複数のプロセッサが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定するように構成される、請求項２０に記載の電子デバイス。
【請求項２２】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化するように構成される、請求項１４に記載の電子デバイス。
【請求項２３】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータのインター予測コーディングを実行するためにサーチ領域サイズを調整するように構成される、請求項１４に記載の電子デバイス。
【請求項２４】
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、インター予測コーディングまたはイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定するように構成される、請求項１４に記載の電子デバイス。
【請求項２５】
前記１つまたは複数のプロセッサが、
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じたと前記決定すると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイスの状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じたと前記決定すると、前記ビデオデータの前記トランスコードすることを停止することと
を行うようにさらに構成される、請求項１４に記載の電子デバイス。
【請求項２６】
前記第２のビットレートで前記ビデオデータを符号化するために、前記１つまたは複数のプロセッサが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを前記第１のビットレートでビデオデータを符号化することに対して固定レベルで設定するように構成される、請求項１４に記載の電子デバイス。
【請求項２７】
符号化パラメータを使用して、第１のビットレートでビデオデータを符号化するための手段と、前記符号化されたビデオデータが、ビデオ品質を有する、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定するための手段と、
前記決定された動作特性に少なくとも部分的に基づいて、前記符号化パラメータを調整するための手段と、
前記調整された符号化パラメータを使用して、第２のビットレートで前記ビデオデータを符号化するための手段と、ここにおいて、前記第２のビットレートが、前記ビデオ品質を維持するために前記第１のビットレートより高い、
を備える、装置。
【請求項２８】
実行されると、電子デバイスの１つまたは複数のプロセッサに、
符号化パラメータを使用して、第１のビットレートでビデオデータを符号化することと、前記符号化されたビデオデータが、ビデオ品質を有する、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、第２のビットレートで前記ビデオデータを符号化することと、ここにおいて、前記第２のビットレートが、前記ビデオ品質を維持するために前記第１のビットレートより高い、
を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２３３
【補正方法】変更
【補正の内容】
【０２３３】
[0239]本開示の様々な態様が説明されてきた。これらおよび他の態様は以下の特許請求の範囲に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を備える、方法。
［Ｃ２］
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記方法が、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて前記符号化パラメータを調整することをさらに備える
Ｃ１に記載の方法。
［Ｃ３］
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記方法が、
ピクセル処理レートしきい値を取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整することをさらに備える
Ｃ１に記載の方法。
［Ｃ４］
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記方法が、
バッテリー状態しきい値を取得すること
をさらに備え、
前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整することを備える
Ｃ１に記載の方法。
［Ｃ５］
前記１つまたは複数の構成要素に関する電力バジェットを取得すること
をさらに備え、
前記符号化パラメータを調整することが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整することをさらに備える
Ｃ１に記載の方法。
［Ｃ６］
前記ビデオデータを符号化するための前記符号化パラメータを調整することが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整することを備える、Ｃ１に記載の方法。
［Ｃ７］
前記推定される電力消費を決定することが、前記符号化されたビデオデータに関する記憶先、または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定することを備える、Ｃ６に記載の方法。
［Ｃ８］
前記推定される電力消費を決定することが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定することを備える、Ｃ７に記載の方法。
［Ｃ９］
前記符号化パラメータを調整することが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化することを備える、Ｃ１に記載の方法。
［Ｃ１０］
前記符号化パラメータを決定することが、前記ビデオデータのインター予測コーディングを実行するためのサーチ領域サイズを調整することを備える、Ｃ１に記載の方法。
［Ｃ１１］
前記符号化パラメータを調整することが、インター予測コーディングおよびイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定することを備える、Ｃ１に記載の方法。
［Ｃ１２］
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイス状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じると、前記ビデオデータの前記トランスコーディングを停止することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１３］
前記第１のビデオ品質を維持することが、符号化されたビデオデータの圧縮レートを改変することを備える、Ｃ１に記載の方法。
［Ｃ１４］
前記第１の品質を維持することが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを固定レベルで設定することを備える、Ｃ１に記載の方法。
［Ｃ１５］
ビデオデータを記録するように構成された１つまたは複数の構成要素と、
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された前記電子デバイスの前記１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を行うように構成された１つまたは複数のプロセッサと
を備える、電子デバイス。
［Ｃ１６］
前記動作特性が、前記デバイスの前記１つまたは複数の構成要素の温度を備え、前記１つまたは複数のプロセッサが、
前記デバイスの前記１つまたは複数の構成要素に関する温度しきい値を取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記温度しきい値に対して前記デバイスの前記１つまたは複数の構成要素の前記温度に基づいて、前記符号化パラメータを調整するように構成される
Ｃ１５に記載の電子デバイス。
［Ｃ１７］
前記動作特性が、前記ビデオデータを符号化するためのピクセル処理レートを備え、前記１つまたは複数のプロセッサが、
ピクセル処理レートしきい値を取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ピクセル処理レートしきい値に対して前記ピクセル処理レートに基づいて、前記符号化パラメータを調整するように構成される
Ｃ１５に記載の電子デバイス。
［Ｃ１８］
前記１つまたは複数の構成要素がバッテリーを含み、前記動作特性が、前記バッテリーの状態を備え、前記１つまたは複数のプロセッサが、
バッテリー状態しきい値を取得する
ようにさらに構成され、
前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記バッテリー状態しきい値に対して前記バッテリーの前記状態に基づいて前記符号化パラメータを調整するように構成される
Ｃ１５に記載の電子デバイス。
［Ｃ１９］
前記１つまたは複数のプロセッサが、
前記１つまたは複数の構成要素に関する電力バジェットを取得する
ようにさらに構成され、
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記電力バジェットに対して前記１つまたは複数の構成要素によって消費される電力量を示す電力モデルに基づいて、前記符号化パラメータを調整するように構成される
Ｃ１５に記載の電子デバイス。
［Ｃ２０］
前記ビデオデータを符号化するための前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記１つまたは複数の構成要素の推定される電力消費に少なくとも部分的に基づいて、前記符号化パラメータを調整するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２１］
前記推定される電力消費を決定するために、前記１つまたは複数のプロセッサが、前記符号化されたビデオデータに関する記憶先、または前記符号化されたビデオデータを送信するための伝送プロセスのうちの少なくとも１つに基づいて、前記推定される電力消費を決定するように構成される、Ｃ２０に記載の電子デバイス。
［Ｃ２２］
前記推定される電力消費を決定するために、前記１つまたは複数のプロセッサが、コーディング電力モデル、メモリ電力モデル、ローカルストレージ電力モデル、セルラー電力モデル、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）電力モデルのうちの少なくとも１つを含む１つもしくは複数の電力モデルに基づいて、前記推定される電力消費を決定するように構成される、Ｃ２１に記載の電子デバイス。
［Ｃ２３］
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータを符号化するためにＢフレームを有効化または無効化するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２４］
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、前記ビデオデータのインター予測コーディングを実行するためにサーチ領域サイズを調整するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２５］
前記符号化パラメータを調整するために、前記１つまたは複数のプロセッサが、インター予測コーディングおよびイントラ予測コーディングのうちの１つを用いて前記ビデオデータを符号化するどうかを決定するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサが、
トランスコーディング初期化条件を決定することと、ここにおいて、前記トランスコーディング初期化条件が、前記デバイスの所定のアイドル持続時間、前記デバイスのバッテリーのバッテリー状態、または前記デバイスの電源状態のうちの少なくとも１つを備える、
前記トランスコーディング初期化条件が生じると、前記ビデオデータを、前記調整された符号化パラメータを使用して生成された第１のビットレートから第２の、より低いビットレートにトランスコードすることと、
トランスコーディング終了条件を決定することと、ここにおいて、前記トランスコーディング終了条件が、アイドル状態からアクティブ状態への前記デバイス状態の変更、および外部電源から前記デバイスの内部電源への前記デバイスの電源状態の変化のうちの少なくとも１つを備える、
前記トランスコーディング終了条件が生じると、前記ビデオデータの前記トランスコーディングを停止することと
を行うようにさらに構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２７］
前記第１のビデオ品質を維持するために、前記１つまたは複数のプロセッサが、符号化されたビデオデータの圧縮レートを改変するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２８］
前記第１の品質を維持するために、前記１つまたは複数のプロセッサが、前記ビデオデータの解像度、前記ビデオデータのフレームレート、および前記ビデオデータを符号化するときの、前記ビデオデータの信号対雑音比のうちの少なくとも１つを固定レベルで設定するように構成される、Ｃ１５に記載の電子デバイス。
［Ｃ２９］
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化するための手段と、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定するための手段と、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整するための手段と、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化するための手段と
を備える、装置。
［Ｃ３０］
実行されると、電子デバイスの１つまたは複数のプロセッサに、
符号化パラメータを使用して、第１のビデオ品質でビデオデータを符号化することと、
前記ビデオデータを記録するように構成された電子デバイスの１つまたは複数の構成要素の動作特性を決定することと、
前記決定された動作特性に少なくとも部分的に基づいて、前記第１のビデオ品質を維持しながら、前記符号化パラメータを調整することと、
前記調整された符号化パラメータを使用して、前記第１のビデオ品質で前記ビデオデータを符号化することと
を行わせる命令を記憶した
非一時的コンピュータ可読媒体。
【国際調査報告】
2017504255.tif 000022
2017504255.tif 000023
2017504255.tif 000024
2017504255.tif 000025
2017504255.tif 000026
2017504255.tif 000027
2017504255.tif 000028