(57)【要約】【解決手段】符号化データの復号複雑性に関する認識と、符号化データを復号するための対象デコーダの能力とに少なくとも部分的に基づいてデータを符号化するための技術が開示される。いくつかの実施形態では、符号化データを提供される予定の対象デコーダの状態に少なくとも部分的に基づいて、データセットが符号化される。いくつかの実施形態では、符号化データセットを提供される予定の複数のデコーダの状態に少なくとも部分的に基づいて、データセットが符号化される。【選択図】図２
2010503349.tif 000002
【特許請求の範囲】
【請求項１】
データセットを符号化するための方法であって、
符号化されるべきデータセットを受信することと、
符号化されたデータセットが提供される対象デコーダの状態に少なくとも部分的に基づいて、前記データセットを符号化することと、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記状態は、前記対象デコーダの実際の状態を含む、方法。
【請求項３】
請求項２に記載の方法であって、
前記実際の状態は、前記対象デコーダから動的に受信されるフィードバックに少なくとも部分的に基づく、方法。
【請求項４】
請求項１に記載の方法であって、
前記状態は、前記対象デコーダの予測される状態を含む、方法。
【請求項５】
請求項４に記載の方法であって、
前記予測される状態は、前記対象デコーダのモデルに少なくとも部分的に基づいて決定される、方法。
【請求項６】
請求項４に記載の方法であって、
前記データセットは、第１のデータセットであり、前記予測される状態は、少なくとも一部には、データセットのシーケンス内の前記第１のデータセットに先行する第２のデータセットの復号複雑性によって決定される、方法。
【請求項７】
請求項１に記載の方法であって、
前記状態は、前記対象デコーダに関連付けられたリソースの現行の利用可能性を示す、方法。
【請求項８】
請求項７に記載の方法であって、
前記現行の利用可能性は、利用可能な復号アルゴリズム、利用可能な復号処理速度、利用可能な復号電力消費、および利用可能な復号メモリの１つまたは複数を含む、方法。
【請求項９】
請求項１に記載の方法であって、
前記状態は、少なくとも一部には、前記対象デコーダの復号ピクチャバッファの復号ピクチャバッファ状態を含む、方法。
【請求項１０】
請求項１に記載の方法であって、
前記対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化することは、前記符号化データセット用の目標復号複雑性を決定することを含む、方法。
【請求項１１】
請求項１０に記載の方法であって、
前記目標復号複雑性は、少なくとも部分的には、前記対象デコーダに関連付けられた制約によって決定される、方法。
【請求項１２】
請求項１０に記載の方法であって、
前記目標復号複雑性は、少なくとも部分的には、前記対象デコーダに関連付けられた復号ピクチャバッファの状態によって決定される、方法。
【請求項１３】
請求項１０に記載の方法であって、
前記目標復号複雑性は、少なくとも部分的には、前記データセットの相対的重要性によって決定される、方法。
【請求項１４】
請求項１０に記載の方法であって、
前記データセットは、第１のデータセットであり、前記目標復号複雑性は、少なくとも部分的には、データセットのシーケンス内の前記第１のデータセットに先行する第２のデータセットの復号複雑性によって決定される、方法。
【請求項１５】
請求項１０に記載の方法であって、
前記データセットは、第１のデータセットであり、前記目標復号複雑性は、少なくとも部分的には、データセットのシーケンス内の前記第１のデータセットに続く第２のデータセットの復号複雑性によって決定される、方法。
【請求項１６】
請求項１０に記載の方法であって、
前記目標復号複雑性を決定することは、前記対象デコーダのモデルを使用して前記対象デコーダをシミュレートすることを含む、方法。
【請求項１７】
請求項１０に記載の方法であって、
前記対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化することは、前記データセットを符号化するために使用される１つまたは複数の符号化ツールの各自に復号複雑性コストを割り当てることと、前記データセットを符号化するために使用されるそれぞれの符号化ツールに割り当てられた前記復号複雑性コストに少なくとも部分的に基づいて決定された、前記データセットを復号する総複雑性コストが、前記目標復号複雑性を超えないような方式で、前記データセットを符号化するために、前記１つもしくは複数の符号化ツール、またはそれらからの選定サブセットを使用することと、を含む、方法。
【請求項１８】
請求項１に記載の方法であって、
前記対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化することは、前記データセットを符号化するために使用される１つまたは複数の符号化ツールの各自に復号複雑性コストを割り当てることを含む、方法。
【請求項１９】
請求項１に記載の方法であって、さらに、
前記データセットを前処理することを備える方法。
【請求項２０】
請求項１９に記載の方法であって、
前記データセットを前処理することは、少なくとも部分的には、前記対象デコーダの前記状態と前記データセットの複雑性とに基づく、方法。
【請求項２１】
請求項１に記載の方法であって、
前記データセットを符号化することは、１つまたは複数の拡張性の層を用いることを含む、方法。
【請求項２２】
請求項１に記載の方法であって、
前記対象デコーダは、対象デコーダセットに含まれ、前記データセットを符号化することは、クオリティの拡張性によって、前記データセットを前記対象デコーダセット用にカスタム符号化することを含む、方法。
【請求項２３】
請求項２２に記載の方法であって、
各対象デコーダにおける前記データセットの復号のクオリティは、各対象デコーダにおける現行の状態と復号リソースの利用可能性とに少なくとも部分的に基づいて決定される、方法。
【請求項２４】
請求項１に記載の方法であって、さらに、
前記符号化されたデータセットを前記対象デコーダに提供することを備える方法。
【請求項２５】
請求項２４に記載の方法であって、
前記提供することは、伝送すること、ブロードキャストすること、ダウンロードすること、媒体に格納すること、可動媒体に格納すること、前記対象デコーダに関連付けられたデバイスに可動媒体を挿入すること、および前記符号化されたデータセットを媒体から読み出すことの１つまたは複数を含む、方法。
【請求項２６】
請求項２４に記載の方法であって、
前記対象デコーダに提供された前記符号化されたデータセットが前記対象デコーダにおいて復号される方式は、前記対象デコーダの現行の状態に少なくとも部分的に基づく、方法。
【請求項２７】
請求項２４に記載の方法であって、
前記対象デコーダは、復号が追いつかない場合または電力を節約したい場合に前記データセットの復号品質を緩やかに降格させるために、複合化の際に前記データセットに含まれた１つまたは複数の拡張レイヤーを用いる、方法。
【請求項２８】
請求項２４に記載の方法であって、
前記データセットは、第１のデータセットであり、前記対象デコーダは、前記第１のデータセットを含むデータセットシーケンス内の１つまたは複数のデータセットを飛ばすために、符号化に際して前記データセットシーケンスに含まれた時間的拡張レイヤーを用いる、方法。
【請求項２９】
請求項１に記載の方法であって、
前記データセットは、１つまたは複数のビデオデータフレームを含む、方法。
【請求項３０】
データセットを符号化するためのシステムであって、
符号化されるデータセットを受信するように、および符号化されたデータセットが提供される対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化するように構成されるプロセッサと、
前記プロセッサに結合され、前記プロセッサに命令を提供するように構成されたメモリと、
を備えるシステム。
【請求項３１】
請求項３０に記載のシステムであって、
前記状態は、前記対象デコーダの実際の状態を含む、システム。
【請求項３２】
請求項３０に記載のシステムであって、
前記状態は、前記対象デコーダの予測される状態を含む、システム。
【請求項３３】
請求項３０に記載のシステムであって、
前記状態は、前記対象デコーダの復号ピクチャバッファの復号ピクチャバッファ状態を少なくとも部分的に含む、システム。
【請求項３４】
請求項３０に記載のシステムであって、
前記対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化することは、前記符号化データセット用の目標復号複雑性を決定することを含む、システム。
【請求項３５】
請求項３０に記載のシステムであって、
前記対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化することは、前記データセットを符号化するために使用される１つまたは複数の符号化ツールの各自に復号複雑性コストを割り当てることを含む、システム。
【請求項３６】
請求項３０に記載のシステムであって、
前記プロセッサは、さらに、前記データセットを前処理するように構成される、システム。
【請求項３７】
請求項３０に記載のシステムであって、
前記データセットを符号化することは、１つまたは複数の拡張性の層を用いることを含む、システム。
【請求項３８】
請求項３０に記載のシステムであって、
前記プロセッサは、さらに、前記符号化されたデータセットを前記対象デコーダに提供するように構成される、システム。
【請求項３９】
請求項３８に記載のシステムであって、
前記対象デコーダに提供された前記符号化されたデータセットが前記対象デコーダにおいて復号される方式は、前記対象デコーダの現行の状態に少なくとも部分的に基づく、システム。
【請求項４０】
データセットを符号化するためのコンピュータプログラム製品であって、コンピュータ可読媒体に実装され、前記コンピュータプログラム製品は、
符号化されるデータセットを受信するためのコンピュータ命令と、
符号化されたデータセットが提供される対象デコーダの状態に少なくとも部分的に基づいて前記データセットを符号化するためのコンピュータ命令と、
を備えるコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【０００１】
通常、ビデオシーケンスのフレームなどのデータ用に、エンコーダにおいて１つまたは複数の符号化スキームを選択することは、符号化データを復号するために使用されているおよび／または使用される予定のデコーダの動的状態に対して特定の符号化判定および／または符号化判定シーケンスが及ぼす影響に関する知識または考慮をともなうことなく決定される。最も一般的には、データは、特定のデコーダの動的状態に及ぼされる影響を考慮することなくひずみに対してデータ転送速度をバランスさせる方式で符号化され、さらに、十分な復号を保証する最低限のデコーダ要件および／または復号システム要件が特定され、原則的に、最低限の要件を満たすデコーダを有するユーザに使用を制限することが行われる。したがって、もし、符号化データの１つまたは複数の部分の復号を、特定のデコーダにおいて利用可能な復号リソースによって十分に扱うことができない場合は、復号性能が低下して、再生のクオリティが損なわれる結果になる。したがって、符号化データの復号は、デコーダにおける復号能力および復号リソースの範囲内であることが望ましいと考えられる。
【０００２】
ゆえに、対象デコーダに関する知識に基づいてデータを符号化するための改良された方法が必要とされている。
【０００３】
以下の詳細な説明および添付の図面において、発明の各種の実施形態が開示される。
【図面の簡単な説明】
【０００４】
【図１Ａ】コーデックの典型的実施形態を図示している。
【図１Ｂ】異なる符号化スキームによってデータが符号化されるコーデックの実施形態を図示している。
【図２】データを符号化するためのプロセスの実施形態を図示している。
【図３】ビデオデータを符号化するためのプロセスの実施形態を図示している。
【図４】ビデオデータのフレーム用の符号化スキームを決定するためのプロセスの実施形態を図示している。
【図５】フレームを符号化するためのプロセスの実施形態を図示している。
【図６】フレーム用の符号化スキームと、そのフレームに関連したコストまたは複雑性とを決定するためのプロセスの実施形態を図示している。
【図７】フレームの符号化のために使用されるツールセットを調整するためのプロセスの実施形態を図示している。
【図８】１つまたは複数のフレームを前処理するためのプロセスの実施形態を示している。
【図９】対象デコーダにおける符号化フレームの復号を緩やかに降格させるためのプロセスの実施形態を図示している。
【発明を実施するための形態】
【０００５】
本発明は、プロセス、装置、システム、合成物、コンピュータ可読記憶媒体などのコンピュータ可読媒体、または光通信リンクもしくは電子通信リンクを通じてプログラム命令が送信されるコンピュータネットワークなどを含む数々のかたちで実現することができる。本明細書では、これらの実現形態、または本発明がとりえるその他のあらゆる形態を、技術として称することができる。タスクを実施するように構成されるものとして説明されるプロセッサまたはメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成される汎用コンポーネント、またはタスクを実施するように製造された専用コンポーネントの両方を含む。一般に、開示されたプロセスのステップの順序は、本発明の範囲内で変更可能である。
【０００６】
本発明の１つまたは複数の実施形態の詳細な説明が、本発明の原理を図示した添付の図面とともに以下で提供される。本発明は、このような実施形態に関連して説明されるが、本発明は、いかなる実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替、変更、および等価の形態を網羅している。以下の説明では、本発明の完全な理解を促すために、数々の具体的詳細が特定されている。これらの詳細は、例示を目的として提供され、本発明は、これらの具体的詳細の一部または全部をともなわなくても特許請求の範囲にしたがって実施可能である。明瞭さを期するため、本発明に関連した技術分野において知られている技術的要素は、詳細に説明されず、したがって、本発明は。不必要に不明瞭化されない。
【０００７】
符号化データの復号複雑性に関する認識と、符号化データを復号する対象デコーダの能力とに少なくとも部分的に基づいてデータを符号化するための技術が開示される。いくつかの実施形態では、符号化データを提供される予定の対象デコーダの状態に少なくとも部分的に基づいて、データセットが符号化される。いくつかの実施形態では、符号化データセットを提供される予定の複数のデコーダの状態に少なくとも部分的に基づいて、データセットが符号化される。
【０００８】
図１Ａは、コーデックの典型的実施形態を図示している。図に示されるように、エンコーダ１０２は、オーディオ、ビデオ、オーディオビジュアル、および／またはその他のマルチメディアコンテンツなどのメディアデータを符号化し、符号化データ１０４を１つまたは複数のデコーダ１０６に提供する。実施形態に応じて、符号化データは、ネットワークもしくはその他の通信チャネルを介して提供される、ＤＶＤもしくはＣＤなどの可動媒体に格納される、デジタルラジオ放送もしくは無線ネットワーク接続などの無線周波数を介して伝送される、またはサーバに格納され、ＰＣ、携帯音楽プレーヤ／携帯ビデオプレーヤ、もしくはその他のデバイスにおけるダウンロードおよびそれに続く再生に利用できるようにされる。デコーダ１０６において、符号化データ１０４は、例えば表示、再生、編集などのために符号化コンテンツを取り出すために復号される。挙げられた例にあるように、符号化データ１０４は、ハンドヘルドコンピュータデバイス、ラップトップ、デスクトップ、セットトップボックス、ＭＰ３プレーヤなどの恐らくは様々に異なるタイプのデバイス上の、複数のデコーダ１０６に提供することが望ましいであろう。しかしながら、復号に利用可能なリソースは、デバイスのタイプおよびデコーダのタイプによって異なるであろう。利用可能な処理速度、電力消費制限、利用可能なメモリなどの要素、デコーダアーキテクチャに関連付けられた要素（例えば可能な並行処理の程度）、利用可能な復号アルゴリズムの計算複雑性などが、各デコーダにおける復号性能に影響する。
【０００９】
エンコーダにおけるデータの符号化は、通常、符号化データを復号するために使用されているおよび／または使用される予定のデコーダの動的状態に対する特定の符号化判定および／または符号化判定シーケンスの影響を考慮することなく決定される。特定の符号化スキームをともなうデータは、通常、符号化データを十分に解凍するためにデコーダ側において実施される必要がある最低限の処理要件に関連付けられている。もしデコーダが。最低限の処理要件を提供することができない場合は、このようなデコーダにおける符号化データの復号は、全く不可能になるであろう、または、例えば１つもしくは複数の復号動作が実施されないゆえにデコーダ出力のクオリティに影響がでる、デコーダがデータを飛ばしたり抜かしたりするなどのように、少なくとも一部が損なわれるであろう。図１Ａの構成では、同じ符号化によるデータ１０４が、複数のデコーダ１０６に提供される。しかしながら、たとえデータの符号化スキームが同じでも、その符号化データ１０４がデコーダ１０６によって復号される方式およびクオリティは、各デコーダ１０６における復号リソースの利用可能性に応じて異なるであろう。
【００１０】
対象デコーダに、その対象デコーダにおける利用可能復号リソースによって十分に扱うことができる符号化スキームによる符号化データを提供するために、エンコーダにおいて、符号化データを提供される予定の対象デコーダの現行の状態および／または予想される状態に関する知識に少なくとも部分的に基づいてデータを符号化することが開示される。本明細書に開示されるように、恐らくは異なる復号能力および復号リソースの様々なデバイスにおいてデータを利用可能にするために、または対象デコーダの動的（現行の、将来の、および／もしくは予測される）状態に対する符号化判定の影響を考慮に入れた方式で１つのタイプのデコーダにおいてデータを利用可能にするために、いくつかの実施形態では、各対象デコーダについて、その対象デコーダにおいて利用可能な復号リソースに関する知識に少なくとも部分的に基づいく符号化の判定がなされる。いくつかの実施形態において、符号化データを提供される予定のデコーダの過去の、現行の、将来の、および／または予測される状態に少なくとも部分的に基づいてデータを符号化することは、対象デコーダにおける関連の復号制約に適合しつつ対象デコーダにおいて最適のまたは最適に近い復号可能性の実現を可能にすることによって、対象デコーダにおける復号性能を向上させる結果になる。いくつかの実施形態において、符号化データを提供される予定のデコーダの過去の、現行の、将来の、および／または予測される状態に少なくとも部分的に基づいてデータを符号化することは、対象デコーダにおける関連の復号制約に適合しつつ対象デコーダ用に最も関連性のある復号ツールを選択および／またはカスタマイズすることによって、対象デコーダにおける復号性能を向上させる結果になる。
【００１１】
図１Ｂは、異なる符号化スキームによってデータが符号化されるコーデックの実施形態を図示している。図に示されるように、エンコーダ１０８は、恐らくは異なる符号化スキームによる符号化データ１１０を、デコーダ１１２に提供する。デコーダ１１２において、符号化データ１１０は、例えば表示、再生、編集などのために符号化コンテンツを取り出すために復号される。いくつかの実施形態では、データを提供される予定の各デコーダ用に、エンコーダによって、カスタマイズされた符号化スキームが選択される。いくつかの実施形態では、データを提供される予定の複数のデコーダ用に、エンコーダによって、カスタマイズされた符号化スキームが選択される。このようなカスタマイズされた符号化スキームは、デコーダが、利用可能リソースに応じて異なる復号クオリティを得ることを可能にする。いくつかの実施形態では、同じデータが、エンコーダにおいて所定の符号化スキームセットを使用して複数の方式で符号化され、特定のデコーダにとって最も適した符号化スキームによって符号化されたデータが、そのデコーダに提供される。いくつかの実施形態では、特定の対象デコーダ用にエンコーダにおいて選択された符号化スキームを、データが対象デコーダに提供される際に変更してよく、例えば、復号のために対象デコーダにおいて利用可能なリソースに関連付けられたモデルに基づく対象デコーダの推定性能に関する知識、対象デコーダにおいて各種の復号動作を実施するコストに関する知識、対象デコーダからのその現行の性能および復号能力に関連した動的フィードバック、所定の時間フレーム内またはウィンドウ内において対象デコーダに既に提供されているまたは提供される必要がある符号化データの復号複雑性に関する知識、対象デコーダに提供される予定のデータのコンテンツの複雑性に関する知識などに依存してよい。目標とされる対象デコーダの復号能力と、入力データの複雑性とに基づいてデータをインテリジェントに符号化することによって、対象デコーダの復号の性能およびクオリティを最適化することが可能になる。
【００１２】
いくつかの実施形態では、エンコーダ（例えば図１Ｂの１０８）は、ビデオデータをフレームごとに符号化し、符号化されたビデオデータ（例えば図１Ｂの１１０）を対象デコーダ（例えば図１Ｂの１１２）に送る。いくつかの実施形態では、エンコーダ１０８は、ビデオデータをフレームごとに符号化し、符号化されたビデオデータ１１０を、（例えば対象デコーダ１１２に関連付けられたドライブまたはその他の記憶媒体読み取り装置にダウンロードされた後にまたは可動媒体を挿入された後に）対象デコーダ１１２によって引き続き使用されるように、固定のもの（例えばサーバ）および／または可動記憶媒体（例えばＤＶＤ、ＣＤ）に格納する。各フレームの符号化スキームは、符号化データが伝送される（例えばネットワークまたはその他の通信チャネルを介してブロードキャストされる、流されるなどの）場合は、符号化データが対象デコーダに伝送される際にエンコーダにおいて変更されてよい。あるいは、各フレームの符号化スキームは、データが符号化され、今後の対象デコーダへの提供および対象デコーダによる使用のためにサーバまたは可動媒体に格納される場合は、例えば符号化された先行フレームの復号後におけるデコーダのモデルおよびその予測される状態に基づくなど、のちにフレームが復号される時点のものとして予測される対象デコーダの状態に少なくとも部分的に基づいて、各フレーム用に決定されてよい。いくつかの実施形態では、ビデオデータを構成するフレームの符号化スキームは、デコーダ側におけるビデオデータの見え方を最適化するように、エンコーダにおいて変更される。いくつかの実施形態では、ビデオデータを構成するフレームの符号化スキームは、復号リソースの異なる複数のデコーダにおけるビデオデータの見え方を最適化するように、エンコーダにおいて変更される。いくつかの実施形態では、ビデオデータは、Ｈ．２６４標準規格にしたがって、エンコーダによって符号化される。本明細書に開示されるように、いくつかの実施形態では、Ｈ．２６４符号化ビットストリームについて選択される複雑性は、対象デコーダの能力の推定値に少なくとも部分的に基づき、これは、いくつかの実施形態では、複雑性またはコスト制約として表現される。このような場合は、符号化されたビットストリームの複雑性が、対象デコーダによって十分に扱えるとともに上手く再生できるものになるように、適切な符号化スキームが、対象デコーダに関連付けられた複雑性またはコスト制約の測定値を使用して選択される。いくつかの実施形態では、フレームの符号化スキームは、例えば、対象デコーダが再生に追いつかないとき、関連のデバイス上においてその他のプロセスが並行して実行されているゆえに復号に利用可能な処理電力が制限されるとき、対象デコーダにおいて処理電力および／または電池残量の節約が望まれているときなどの必要時に対象デコーダにおける復号品質の緩やかな降格（デグレード）を可能にする拡張性の層（拡張レイヤー）を含む。いくつかの実施形態では、コンテンツは、符号化コンテンツが復号される予定の目標デバイスの電池寿命を最長にする方式で、エンコーダにおいて符号化される。このような符号化スキームは、ハンドヘルドデバイス、ＭＰ３プレーヤ、ラップトップコンピュータなどの携帯型のデバイスにとって、とりわけ有用である。
【００１３】
ときに（例えばビデオシーケンスのコンテンツを構成する各種フレームの符号化に関連した）ビデオの符号化およびＨ．２６４標準規格についての記載があるが、本明細書において説明される技術は、ビデオデータの符号化にもＨ．２６４標準規格にも限定されない。本明細書において説明される技術は、むしろ、テキスト、イメージ、グラフィックス、アニメーション、オーディオ、ビデオなどの、任意の適切な標準規格またはプロトコルにしたがって符号化される任意のタイプのコンテンツ、データ、またはデータセットを符号化するために用いられてよい。
【００１４】
図２は、データを符号化するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス２００は、対象デコーダ１１２に合わせて符号化データ１１０をカスタマイズするために、エンコーダ１０８によって用いられる。プロセス２００は、符号化される予定のデータまたはコンテンツが決定される２０２から開始する。いくつかの実施形態では、２０２のデータは、ビデオデータの一フレームに対応する。２０２で決定されたデータは、２０４において、特定の対象デコーダによって符号化データを復号するためのコスト推定値に少なくとも部分的に基づいて決定される方式で符号化される。いくつかの実施形態では、２０４は、２０２のデータ用の目標復号複雑性を決定すること、および決定された目標複雑性を符号化データの復号複雑性が超えないような方式で２０２のデータを符号化することを含む。各種の実施形態において、特定のフレーム（またはその他の単位）用の目標複雑性は、例えば、デコーダにおいて利用可能な復号リソースならびに／または先行フレームおよび／もしくは後続フレームの複雑性に関する知識に基づいて、少なくとも一部には、動的に決定された、推定された、および／もしくは予測される対象デコーダの状態、ならびに／または対象デコーダがさらなる複雑性を扱って処理するための既に知られている、推定される、および／もしくは予測される能力によって決定される。プロセス２００は、次いで、終了する。ビデオを符号化する場合、いくつかの実施形態では、プロセス２００は、符号化されて対象デコーダに提供される予定の各フレームについて繰り返される。
【００１５】
推定される対象デコーダにおける復号コストは、対象デコーダにおける復号リソースの利用可能性に少なくとも部分的に基づく。いくつかの実施形態では、プロセス２００の２０４における符号化スキームの選択は、符号化スキームによって符号化されたデータを対象デコーダにおいて復号するコストがその対象デコーダに関連付けられた最大復号コスト制約内であって、したがって、対象デコーダにおいて利用可能な復号リソースによって符号化データが十分に復号可能であるようになされる。いくつかの実施形態では、適切な符号化スキームを決定するために、対象デコーダによって十分に扱うことができる最大復号複雑性に関連付けられた制約が用いられる。複雑性の制約は、少なくとも一部には、復号コストの制約から得られてよく、その逆もまた可である。いくつかの実施形態では、対象デコーダに関連付けられたコストおよび／または複雑性の制約は、固定値ではなく、対象デコーダにおける復号リソースの実際のまたは推定される利用可能性の変動とともに変化する動的な量である。本明細書において、「コスト制約」および「複雑性制約」は、ときに同義の用語として使用され、特定の対象デコーダが扱えるまたは扱えると期待される復号複雑性の量に対する制約を意味している。
【００１６】
符号化スキームは、１つまたは複数の符号化ツールまたは符号化技術をともなうことができる。ビデオの符号化に利用可能なツールとしては、例えば、フレームタイプ、動き予測、補間位置、動きベクトルの長さ、ベクトルの広がり、動き補正、Ｉｎｔｒａ予測、Ｉｎｔｅｒ予測、ループフィルタリングなどが挙げられ、このようなツールに関連付けられた動作は、Ｈ．２６４などの標準規格によって定められてよい。各ツールは、デコーダ固有の複雑性に関連付けられる。フレームの複雑性は、フレームを符号化するために選択される符号化ツールだけでなく、選択される量子化パラメータの値などのその他のパラメータ、およびビット解析や逆変換などのその他の復号ステップにも依存してよい。
【００１７】
符号化のために使用されるツールに関連付けられた動作は、符号化に関連付けられた動作を元通りにするための対応する逆動作をデコーダ側において必要とするであろう。ゆえに、いくつかの実施形態では、符号化スキームに使用される各ツールおよび／または各パラメータが、復号コストまたは復号複雑性に寄与している。いくつかの実施形態では、デコーダ固有の複雑性コストが、各符号化ツールまたは符号化技術に関連付けられている。各種の符号化ツールおよび符号化技術に関連付けられる複雑性コストは、対象デコーダが異なるごとに異なるであろう。いくつかの実施形態では、ビデオデータのフレームなど特定の対象デコーダに提供される予定のデータセットを符号化する際に符号化ツールまたは符号化技術が用いられるまたは起動されるたびに、そのツールまたは技術に関連付けられた対象デコーダ固有の複雑性コストがこのような複雑性コストの累積和に加算される。後ほどさらに詳細に説明されるように、このような加算の最終値は、符号化フレームの総復号複雑性の測定値として機能してよく、目標複雑性内であるかどうかを決定するために目標複雑性と比較され、もし、目標複雑性内でない場合は、そのフレームの符号化スキームは、符号化フレームの総復号複雑性が目標複雑性内になって、得られた符号化フレームの復号が対象デコーダによって十分に扱えるようになるように、変更されてよい。もし、推定される総復号複雑性が目標複雑性未満である場合は、より良いクオリティを達成するために、さらなる符号化ツールを使用することができる。
【００１８】
いくつかの実施形態では、対象デコーダの性能は、少なくとも一部には、エンコーダ側において対象デコーダのモデルをもとに推定される。このようなモデルは、例えばビデオデータのフレームなど符号化される予定の任意の所定のデータセット用に適切な符号化スキームを選択できるように、エンコーダ側において対象デコーダの行動を推定またはシミュレートすることを可能にする。いくつかの実施形態では、このようなモデルは、対象デコーダにおいて利用可能な復号リソースに基づく。１つまたは複数の復号リソースの利用可能性は、時間とともに変化しえる。このようないくつかのケースでは、１つまたは複数の復号リソースの利用可能性に関して対象デコーダからエンコーダへと動的フィードバックが提供されてよい。復号性能に影響しえるリソースの非限定例として、対象デコーダおよび／または関連デバイスにおける、利用可能な復号アルゴリズム、利用可能な復号用処理速度、（例えば電池寿命を延ばすための）電力消費制限、利用可能なメモリ、可能な並行処理の程度などが挙げられる。いくつかの実施形態では、対象デコーダ用のモデルに、一定の処理速度または一定の複雑性消費率が用いられる。各種の実施形態では、エンコーダ側において対象デコーダの性能をシミュレーションするにあたり、対象デコーダに既に提供されているまたは提供される予定の符号化データの複雑性に関する知識、復号ピクチャバッファ（ＤＰＢ）の最大容量および／または推定されるもしくは実際の状態に関する知識、対象デコーダに提供されるフレームの表示継続期間に関する知識などのその他の要素が用いられる。
【００１９】
前述のように、対象デコーダの性能は、いくつかの実施形態では、少なくとも一部には、ＤＰＢの最大容量および／または状態によって特徴付けられる。デコーダにおけるＤＰＢは、デコーダによって復号されているがまだ表示されていないフレームを保持するものである。ＤＰＢは、その深さまたは容量によって特徴付けられ、それは、例えば、保持することができる最大のデータ量、保持することができる復号フレームの最大数などによって測定されえる。ＤＰＢの状態に関するシミュレートされたまたは実際の知識は、いくつかの実施形態では、エンコーダ側における適切な符号化スキームの選択を補助するために使用される。例えば、もしエンコーダにおいて、対象デコーダのＤＰＢがほぼ使い果たされていると決定された場合は、エンコーダにおいて、後続フレームの複雑性を下げることが望ましいであろう。同様に、もしエンコーダにおいて、対象デコーダのＤＰＢがフル容量に近いと決定された場合は、エンコーダにおいて、後続フレームにさらなる複雑性を投入し、より高いクオリティの見栄えを達成可能にすることが望ましいであろう。いくつかの実施形態では、対象デコーダのＤＰＢの現行の状態に関する知識は、エンコーダにおいて、対象デコーダに関連付けられたモデルのシミュレーションを行うことによって得られる。このようなシミュレーションは、復号の処理速度（すなわちフレームが復号されＤＰＢに入力される速度）、ＤＰＢの最大容量、ＤＰＢの中の各フレームの表示継続期間（すなわち表示のためにＤＰＢからフレームが取り出される速度）などの、復号リソースに関する知識、ならびに対象デコーダに提供されているおよび／または提供される予定の符号化フレームの複雑性および所要処理時間に関する知識などの、その他の要素を用いてよい。いくつかの実施形態では、ＤＢＰの状態に関連付けられたリアルタイムのフィードバック（例えばＤＰＢが現時点で実際に保持しているフレームの数）が、対象デコーダによってエンコーダに動的に提供されるので、エンコーダにおける符号化判定は、対象デコーダの実際の性能に少なくとも部分的に基づくことが可能である。
【００２０】
いくつかの実施形態では、対象デコーダのモデルは、対応する符号化セットの選択肢を各フレーム用に選択することを補助するために、エンコーダ側において、スライドウィンドウ上で用いられるので、符号化ビデオデータのビット流またはビットシーケンスにおける複雑性の変動およびクオリティの変動は、対象デコーダの実際のおよび／または推定される性能に基づいて、エンコーダにおいて動的に制御することができる。対象デコーダのこのようなモデルは、いくつかの実施形態では、フレームの符号化に使用される符号化の選択肢またはツールの各インスタンスに復号複雑性コストを関連付けて、符号化フレームの総複雑性を決定しそして対象デコーダの複雑性の制限または制約と比較できるようにすることを含む。いくつかの実施形態では、エンコーダにおける対象デコーダのモデルは、符号化される予定の各フレーム用の目標複雑性を決定するために用いられる。いくつかの実施形態では、各フレーム用の固定値である目標複雑性が対象デコーダに関連付けられ、これは、対象デコーダの利用可能な復号リソースまたは復号能力に基づくものであってよい。いくつかの実施形態では、任意の所定フレーム用の目標複雑性は動的な値であり、エンコーダにおいて利用可能な対象デコーダのモデルを通じた対象デコーダの性能のシミュレーションによって決定され、これは、対象デコーダにおいて利用可能な復号リソースのみならず、例えば所定のウィンドウ内または時間フレーム内において対象デコーダに既に提供されているまたは提供される予定で待機中の符号化データの複雑性にも依存してよい。いくつかの実施形態では、フレーム用の目標複雑性は、現行フレームおよび／または先行フレームのコンテンツに少なくとも部分的に基づく。いくつかの実施形態では、フレーム用の目標複雑性は、ビデオデータシーケンス内のその他のフレームに対する該当フレームの大切さすなわち重要性に少なくとも部分的に基づく。いくつかの実施形態において、例えばビデオを符号化する場合は、フレームの重要性ひいてはそのフレーム用の目標複雑性を決定するにあたって、フレームのタイプ（例えば基準フレームであるかまたは非基準フレームであるか）および表示継続期間などの要素が考慮される。
【００２１】
図３は、ビデオデータを符号化するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス３００は、図２のプロセス２００の２０４において用いられる。ビデオデータのフレームは、例えばスライスやマクロブロックなどのさらに小さい複数の構成要素または単位に細分することができる。プロセス３００などのいくつかの実施形態では、フレームの符号化は、フレームを構成するマクロブロックを個々に符号化することを含む。プロセス３００の３０２では、各フレームについて、符号化フレームを提供される予定の対象デコーダによって扱うことができる所望の総フレーム複雑性コストが結果として達成されるような方式で、フレームを構成する各マクロブロック用に、符号化ツールおよび符号化技術のセットが決定される。いくつかの実施形態では、３０２における、マクロブロックを符号化するために使用される予定の符号化ツールの決定は、フレームの符号化の複雑性が全体としてフレームに関連付けられた目標複雑性制約に等しいまたはそれに近く、ゆえに対象デコーダにおいて最適のまたは最適に近いクオリティの再生が保証されるような方式でなされる。３０４では、各フレームを構成するマクロブロックの符号化が、３０２の決定ごとになされ、そうして、プロセス３００は終了する。
【００２２】
いくつかの実施形態では、ツールセットを定めるために、エンコーダにおいて利用可能な１つまたは複数の符号化ツールまたは符号化技術が使用される。いくつかの実施形態では、エンコーダは、このようなツールセットの表または一覧を含み、各ツールセットは、エンコーダにおいて利用可能な１つまたは複数の符号化ツールを含む。いくつかの実施形態では、とあるフレーム用の符号化スキームの決定に使用するために、１つのツールセットが選択される。いくつかの実施形態では、１つまたは複数の利用可能ツールセットを使用した１回または複数回の繰り返し後に、フレームに適した符号化スキームが見いだされる。いくつかの実施形態において、特定のフレームを符号化するために特定のツールセットが選択された場合は、その選択されたツールセット内の１つまたは複数の利用可能符号化ツールのみが、フレームおよびそのフレームを構成するマクロブロックを符号化するために用いられてよい。このようなケースでは、いくつかの実施形態では、各マクロブロックを符号化するために、適宜、ツールセットのサブセットが選択される。各マクロブロック用にツールセットから選択される符号化ツールのサブセットは、フレームを構成するマクロブロックごとに異なってよく、マクロブロックのコンテンツもしくは複雑性、マクロブロックおよび／もしくは関連フレームの相対的重要性、フレーム内におけるマクロブロックの位置などの要素に依存してよい。ツールセットは、含まれる符号化ツールの相違、および／またはツールセットに含まれるツールに関連付けられた複雑性コスト重みの相違によって異なってよい。いくつかの実施形態では、ツールセットに含まれる各符号化ツールは、複雑性コストの重みに関連付けられる、すなわちその符号化ツールの使用に関連する複雑性コストを計算する際にその符号化ツールのデコーダ固有の複雑性コストに乗じられる係数に関連付けられる。このような重みは、フレームまたはフレームを構成するマクロブロックの符号化の際に関連の符号化技術がより節約方式で用いられるように、高価な（すなわちより高コストの）復号動作にバイアスをかけるために用いることができる。
【００２３】
いくつかの実施形態では、エンコーダにおいて利用可能なツールセットは、符号化のクオリティ、各ツールセットにおいて利用可能な符号化ツールの複雑性、および／またはツールに割り当てられた重みにしたがってランク付けされる。例えば、いくつかの実施形態において、許容可能な符号化スキームを決定するために最初に試みられる、エンコーダにおけるデフォルトツールセットは、エンコーダにおいて利用可能なあらゆる符号化ツールを含み、それらの各ツールに等しい復号複雑性コスト重み（例えば１）を割り当てている。もし、このようなデフォルトツールセットに基づいてフレーム用に選択された符号化スキームが、そのフレームの目標複雑性内である場合は、その符号化スキームが、フレームを符号化するために用いられる。しかしながら、もし、このようなデフォルトツールセットに基づいてフレーム用に選択された符号化スキームが、そのフレームの目標複雑性を超える場合は、対象デコーダにおけるフレームの再生および最適な復号を保証するために、目標複雑性内の別の符号化スキームが決定される。このような場合は、同じツールセットおよび／または１つもしくは複数のその他のツールセットを通した繰り返しを、適切な符号化スキームが見つかるまで、すなわちフレーム用の目標複雑性内の復号複雑性を有するとともに最良のクオリティを実現するような符号化スキームが見つかるまで、１回または複数回にわたって実施する必要があると考えられる。このような繰り返しは、適切な符号化スキームを効率的に探せるように、インテリジェントに実施することができる。このような場合において、復号複雑性を低減させつつ符号化のクオリティを最大限にするために、いくつかの実施形態では、所定フレーム内の複雑性ソース（例えばどのツールが復号複雑性に最も寄与しているか）が決定され、フレーム用のツールセットをインテリジェントに選択するために使用される。符号化の複雑性を低減させるために、復号コストが高いツールほど大きい重みを割り当てるツールセットが選択されるので、符号化スキームの決定の際は、復号コストの高いツールほど使用頻度が小さくなる。例えば、デフォルトツールセットが、１６×１６Ｉｎｔｅｒ予測および８×８Ｉｎｔｅｒ予測の双方に等しい複雑性コスト重み１を割り当てる一方で、別のツールセットは、コストが高い復号技術ほど大きい重みを割り当てる（例えば１６×１６Ｉｎｔｅｒ予測に重み１を割り当てる一方で、８×８Ｉｎｔｅｒ予測には重み１６を割り当てる）ことによって、そのような復号技術にペナルティを課して、フレームまたはフレームを構成するマクロブロックの符号化スキームを決定する際にそれが使用される頻度を小さくしてよい。
【００２４】
いくつかの実施形態では、エンコーダにおいて利用可能なツールセットは、複雑性コストとともにクオリティ測定値を関連付けられている。エンコーダは、複雑性とクオリティとの最適なバランスを見いだすために、ツールセットの組み合わせを探すことができる。このような方法の１つは、ラグランジュの方法であり、この方法では、クオリティの制約によって複雑性が最小限に抑えられる、あるいはより必然的に、複雑性の制約によってひずみが最小限に抑えられる。
【００２５】
いくつかの実施形態では、符号化ツールは、最低限の符号化基準を維持しつつ符号化コストを最小にする方式でマクロブロックを符号化するように、特定のツールセットから選択されるので、対象デコーダでは、少なくとも最低限の復号クオリティが得られる。いくつかの実施形態では、マクロブロックレベルでの、ツールセットからの符号化ツールの選択は、制約のない検索であり、例えば、マクロレベルでは、複雑性の制約もコストの制約も存在しない。いくつかの実施形態では、各マクロブロックは、最適な符号化すなわち最小誤差の符号化を結果としてもたらす特定のツールセットからの１組の符号化ツールによって符号化される。
【００２６】
前述のように、いくつかの実施形態におけるフレームの総複雑性は、フレームの符号化のために選択される量子化パラメータにも依存する。いくつかの実施形態では、フレームまたはフレームを構成するマクロブロック用の適切な符号化スキームを決定するプロセス（例えば図２のプロセス２００または図３のプロセス３００）は、目標複雑性に等しいまたはそれ未満の総復号複雑性値を有する符号化スキームがそのフレーム用に見いだされるまで、１つもしくは複数のツールセットおよび／または量子化パラメータ値を通して繰り返しを行うことを含む。
【００２７】
いくつかの実施形態では、マクロブロック用の符号化ツールの選択は、（１）のようなレート−ひずみ最適化式に少なくとも部分的に基づく。
【００２８】
Ｃ＝Ｄ＋λＲ                        （１）
【００２９】
ここで、Ｃは、マクロブロックを符号化するコストを表し、Ｄは、選択された符号化に対応するマクロブロックのひずみを表し、Ｒは、マクロブロックを符号化するために使用されるレートすなわちビット数を表し、λは、ひずみ（Ｄ）に対してレート（Ｒ）を重み付けすることを可能にする係数を表している。いくつかの実施形態では、所定の対象デコーダに対して各種の符号化ツールおよび符号化技術を使用する復号複雑性コストを考慮するために、（２）のような改良版のレート−ひずみ最適化式が用いられる。
【００３０】
Ｃ＝Ｄ＋λＲ＋αＸ                      （２）
【００３１】
ここで、追加項Ｘは、特定の対象デコーダについて、マクロブロックを符号化するために使用される符号化ツールの累積複雑性コストを表し、αは、レート（Ｒ）およびひずみ（Ｄ）に対して複雑性（Ｘ）を重み付けすることを可能にする係数を表している。いくつかの実施形態では、Ｘは、符号化のために選択された量子化パラメータに関連付けられた複雑性コストを含む。いくつかの実施形態では、Ｘは、符号化スキームを決定するために使用される特定のツールセットに関連付けられた複雑性コスト重みを含む。いくつかの実施形態では、式（１）および／または（２）は、マクロブロックのための動き検出および／またはモード判定に対して用いられる。符号化モードを選択する元になるツールセットを与えられたすると、いくつかの実施形態では、各マクロブロックにおいて、ひずみ、レート、および／または複雑性の間のトレードオフが最良になる符号化モードを見いだすことが望ましい。符号化ツールを選択する元になるツールセットを与えられたとすると、いくつかの実施形態では、各マクロブロックにおいて、最小コストＣの符号化が望ましいとされ、繰り返しによって見いだされる。
【００３２】
いくつかの実施形態では、選択された符号化スキーム（すなわちマクロブロックおよびフレームのために選択された符号化ツール）によってフレームを符号化する総コストまたは総コストの一部を表す累積値を生成するために、フレームを構成する全てのマクロブロックのコスト関数（例えば式（１）または（２）のＣ）の値が足し合わされてよい。このような値は、その符号化スキームが許容可能であって、なおかつ符号化フレームを提供される予定の対象デコーダによって十分に扱えるかどうかを決定するために、そのフレーム用のコスト制約と比較されてよい。いくつかの実施形態では、符号化フレームの総復号複雑性コストまたは同総復号複雑性コストの一部を表す別の（すなわち異なる）累積値を生成するために、全てのマクロブロックの累積複雑性コスト（Ｘ）が足し合わされる。このような値は、その符号化フレームが許容可能であって、なおかつ対象デコーダによって十分に扱えるかどうかを決定するために、そのフレーム用に決定された目標復号複雑性と比較される。いくつかの実施形態では、フレームの総複雑性は、（３）によって計算される。
【００３３】
【数１】
2010503349.tif 000003
【００３４】
ここで、Ｘframeは、フレームの総複雑性を表し、ｉは、符号化ツール（例えば選択されたツールセットのなかでフレームを符号化するために使用されるツール）を表し、Ｎは、フレームの符号化に使用される異なる符号化ツールの総数を表し、ｎiは、フレームの符号化に符号化ツールｉが用いられる回数（例えばツールｉを使用するマクロブロックの数）を表し、Ｘiは、特定の対象デコーダについての符号化ツールｉの復号複雑性コストを表している。いくつかの実施形態では、式（３）の１つの項、すなわちｉの１つの値は、所定の符号化スキーム用に選択された量子化パラメータに関連付けられた複雑性コストに対応している。いくつかの実施形態では、各Ｘiは、符号化スキームを決定するために使用される特定のツールセットに関連付けられた対象デコーダ固有の複雑性コストの重みを含んでいる。
【００３５】
図４は、ビデオデータのフレーム用の符号化スキームを決定するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス４００は、図３の３０２において用いられる。プロセス４００は、符号化を必要とするフレームが決定されるまたは受信される４０２から開始する。４０４では、４０２のフレームを提供される予定の対象デコーダの現行の状態または性能が決定される。いくつかの実施形態では、４０４は、対象デコーダに関連付けられたモデルのシミュレーションおよび／または復号のために対象デコーダに既に提供されているもしくは提供される必要があるフレームの複雑性に関する知識に少なくとも部分的に基づいて、対象デコーダの現行の状態を推定することを含む。いくつかの実施形態では、４０４は、対象デコーダの現行の状態または性能に関連した動的フィードバックを対象デコーダから受信することを含む。いくつかの実施形態では、４０４は、シミュレーションを通じて対象デコーダのＤＰＢの状態を決定することを含む。いくつかの実施形態では、４０４は、ＤＰＢの現行の状態に関する動的フィードバックを対象デコーダから受信することと、対象デコーダの現行の性能の決定においてＤＰＢの実際の状態を用いることとを含む。いくつかの実施形態では、４０２のフレームの復号が予定される時点における対象デコーダにおける復号リソースの利用可能性を推定するために、４０４における対象デコーダの現行の状態の決定、ならびに／またはビデオデータシーケンスのなかのその他のフレームの複雑性および／もしくはコンテンツに関する知識が用いられる。
【００３６】
４０６では、４０４において決定された対象デコーダの現行の状態に少なくとも部分的に基づいて、４０２のフレーム用の目標複雑性が決定される。いくつかの実施形態では、４０６における目標複雑性の決定は、対象デコーダにおけるフレームの復号が予期される時点のものとして予期される対象デコーダにおける復号リソースの利用可能性に少なくとも部分的に基づく。いくつかの実施形態では、４０６において決定されるフレームの目標複雑性は、フレームのコンテンツの複雑性に少なくとも部分的に基づく。いくつかの実施形態では、４０６において決定される目標複雑性は、関連のビデオデータシーケンス内のその他のフレームに対するフレームの重要性に少なくとも部分的に基づく。例えば、いくつかの実施形態では、４０６において決定される目標複雑性は、そのフレームが基準フレームであるかまたは非基準フレームであるかに少なくとも部分的に基づく。いくつかの実施形態では、４０６において決定されるフレームの目標複雑性は、現行フレームすなわち４０２において決定されたフレームの後に符号化されて対象デコーダに提供される予定の、関連のビデオシーケンス内の１つまたは複数の後続フレームのコンテンツの複雑性および／または重要性に少なくとも部分的に基づく。いくつかの実施形態では、４０６において決定される目標複雑性は、対象デコーダにおいて処理電力および／または電池残量を節約する要望などのその他の要素に少なくとも部分的に基づいており、この場合は、符号化フレームを復号するために対象デコーダにおいてフルの復号リソースおよび／または潜在能力が利用可能であった場合に決定されるであろう目標複雑性と比べて低い目標複雑性を、４０６においてフレーム用に決定することができる。
【００３７】
４０８では、４０６の目標複雑性内で（すなわち目標複雑性に等しいまたはそれ未満の範囲で）最大の複雑性をともなう符号化スキームが、フレーム用に決定される。いくつかのケースでは、対象デコーダにおける復号リソースの制約を満足させつつ対象デコーダにおいて最適な再生クオリティが得られるように、４０８において、目標複雑性に等しいまたは目標複雑性に近い複雑性によってフレームを符号化することが望ましい。いくつかの実施形態では、４０８は、４０６においてフレーム用に決定された目標複雑性内の複雑性をともなう符号化スキームを決定することを含むが、しかしながら、利用可能なツールセットおよび／または符号化のために利用可能な量子化パラメータ値を前提に、目標複雑性内で最大の複雑性をともなう符号化スキームを探す検索または繰り返しを実施することは含まない。このようないくつかのケースでは、フレーム用に決定された、目標複雑性の制約を満足するおよび／または目標複雑性の所定範囲内である複雑性をともなう最初の符号化スキームが、そのフレームを符号化するために用いられる。プロセス４００は、次いで、終了する。いくつかの実施形態では、プロセス４００は、ビデオデータシーケンスに含まれる１つまたは複数のフレームを符号化するために、繰り返し実施される。
【００３８】
図５は、フレームを符号化するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス５００は、図２のプロセス２００の２０４において用いられる。いくつかの実施形態では、プロセス５００は、図３のプロセス３００の３０２および３０４において用いられる。いくつかの実施形態では、プロセス５００は、図４のプロセス４００の４０８において用いられる。プロセス５００は、フレーム用の少なくとも１つの初期符号化スキームを決定するために使用される予定の初期ツールセットおよび／または量子化パラメータ値とともに、５０２から開始する。いくつかの実施形態では、５０２の初期ツールセットは、デフォルトツールセットに対応しており、これは、例えば、関連のエンコーダにおいて利用可能な全ての符号化ツールを含みなおかつ各ツールに等しい複雑性コスト重み（例えば１）を割り当てられたツールセットである。いくつかの実施形態では、５０２の初期ツールセットは、先行フレームのために使用されることを決定されたツールセットに対応している。５０４では、５０２のツールセットおよび／または量子化パラメータ値を使用して、フレーム用の符号化スキームが決定される。いくつかの実施形態では、５０４においてフレームの符号化スキームを決定することは、ツールセット内の利用可能な１つまたは複数の符号化ツールを使用して、フレームに含まれる各マクロブロックの符号化スキームを決定することを含む。いくつかの実施形態では、フレームを構成する各マクロブロックについて最低限の符号化基準を満足させつつ所定の復号データクオリティを保証する最も低コストの符号化スキームを、繰り返しによって決定するために、式（１）または式（２）などの最適化式を用いることによって、フレーム全体としてコストが最小の符号化スキームを求めることがなされる。いくつかの実施形態では、例えば、所定の復号データクオリティを保証する最低限の符号化要件を満足させつつ各マクロブロックについての関連の復号複雑性が最小である符号化スキームを決定することによって、フレーム全体として関連の復号複雑性が最小の符号化スキームを求めることがなされる。
【００３９】
５０６では、５０４においてフレーム用に決定された符号化スキームによって符号化されるフレームの複雑性が、そのフレームに関連付けられた目標複雑性内（すなわちその目標複雑性に等しいまたはそれ未満の範囲内）であるかどうかが決定される。いくつかの実施形態では、フレーム複雑性は、フレームを構成するマクロブロック用に選択された符号化スキームに関連付けられた複雑性コストを足し合わせることによって決定される。いくつかの実施形態では、フレーム複雑性は、式（３）を用いて決定される。いくつかの実施形態では、５０６は、目標複雑性内で最大の復号複雑性をともなう符号化スキームをプロセス５００を使用して繰り返しによって決定し、対象デコーダにおいて最良の再生が保証されるようにするために、フレーム複雑性がそのフレームの目標複雑性未満の一定割合に等しいかまたはそれ未満であるかを決定することを含む。
【００４０】
もし５０６において、例えばフレーム複雑性が目標複雑性より大きいまたはフレーム複雑性がフレームの目標複雑性未満の固定割合内でないなど、フレーム複雑性がフレームの目標複雑性内でないと決定された場合は、５０８において、１つもしくは複数のマクロブロック用に現行のツールセットから選択された符号化ツールおよび／または量子化パラメータ値が調整される、あるいはツールセット自体および／または量子化パラメータ値が調整される。すると、プロセス５００は５０４に進み、５０８において選択されたツールセットおよび／または量子化パラメータ値を使用して、フレーム（すなわちフレームを構成するマクロブロック）用に別の符号化スキームが決定される。いくつかの実施形態では、５０８における調整は、例えば、フレームのコンテンツ内の複雑性ソースに関する知識、フレームのコンテンツを符号化するためにどの符号化ツールが好ましいかに関する知識、どの符号化ツールが復号複雑性により重く寄与するかに関する知識などに基づいて、インテリジェントになされる。もし５０６において、フレーム複雑性が目標複雑性内（または目標複雑性の所定割合内）であると決定された場合は、５１０において、フレームは、５０４においてフレーム用に決定された符号化スキームによって符号化され、プロセス５００は終了する。いくつかの実施形態では、プロセス５００は、ビデオデータシーケンスに含まれる１つまたは複数のフレームを符号化するために、繰り返し的に実施される。
【００４１】
図６は、フレーム用の符号化スキームと、そのフレームに関連したコストまたは複雑性とを決定するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス６００は、図５のプロセス５００の５０４において用いられる。いくつかの実施形態では、プロセス６００において、フレーム用の符号化スキームを決定するために、１つの選定ツールセットおよび／または量子化パラメータ値が使用され、符号化される予定のフレームの各マクロブロック用の１つまたは複数の符号化スキームを決定するために、その選定ツールセット内の１つまたは複数の利用可能な符号化ツールが用いられる。プロセス６００は、符号化スキームを決定される予定のフレームの第１のマクロブロックとともに、６０２から開始する。６０４では、６０２のマクロブロック用に、第１の符号化スキームが決定される。いくつかの実施形態では、６０４における符号化スキームの決定を補助するために、式（１）または式（２）などの最適化式が用いられる。６０６では、６０４において選択された符号化スキームの、復号複雑性または復号コストが計算される。いくつかの実施形態では、６０４において決定された符号化スキームは、６０６において、恐らくは重み付けされている符号化ツールの対象デコーダ固有の複雑性コストおよび／または符号化スキームのために使用される量子化パラメータを加算することによって、その復号複雑性を決定される。ここで、符号化ツールの複雑性コストの重み付けは、いくつかの実施形態では、フレームの符号化スキームを決定するために使用されるツールセットに依存する。いくつかの実施形態では、６０６は、計算された復号複雑性または復号コストを、符号化スキームおよび／またはコスト、レート、ひずみなどの関連の情報とともに格納することを含み、そうして、符号化スキームを、マクロブロックのその他の符号化スキーム候補と比較することを可能にしている。いくつかの実施形態では、このような格納情報は、もし利用可能でなおかつ／または適切であれば、例えば図５のプロセス５００の５０６においてフレームの総複雑性がフレームの目標複雑性を超える場合などにフレーム用に別の符号化スキームを決定するとき（すなわちフレームの１つまたは複数のマクロブロック用に恐らくは異なる符号化スキームを決定するとき）に、そして例えばフレーム用に異なる符号化スキームを決定するために同じ選定ツールセットおよび／または量子化パラメータ値が使用されるときに使用される。
【００４２】
６０８では、マクロブロック用に他の符号化スキームを探すかどうかが決定される。いくつかの実施形態では、選定ツールセットおよび／または量子化パラメータ値を前提として、マクロブロック用に最適な符号化スキームを見いだすことができるように、６０８において、別の符号化スキームを探すことが決定される。６０８において、マクロブロック用に他の符号化スキームを探すことが決定された場合は、例えば同じ選定ツールセットおよび／または量子化パラメータを使用して、６１０において、マクロブロック用に別の符号化スキームが選択される。次いで、プロセス６００は６０６に戻り、６１０において選択された符号化スキームの復号複雑性が計算され、符号化スキームおよび／または符号化スキームに関連付けられた情報とともに格納される。いくつかの実施形態では、各種の符号化スキーム、関連の復号複雑性、および／またはその他の関連の情報を比較のために取得および格納し、マクロブロック用に最適な符号化スキームの選択を可能にするために、プロセス６００のステップ６１０，６０６，６０８が、１回または２回以上にわたって繰り返される。（例えば６０４および６１０において）マクロブロック用に選択された符号化スキームは、いくつかの実施形態では、レート−ひずみ最適化式（例えば式（１））または改良版のレート−ひずみ最適化式（例えば式（２））に少なくとも部分的に基づく。６０８において、（例えば、選択を行われる１つもしくは複数の符号化スキームが既に決定されている、または例えば時間もしくは処理に制約がある、適切な符号化スキームが見つかったなどゆえに他の符号化スキームの決定にさらなるリソースを消費することが望まれない、などの理由で）マクロブロック用に別の符号化スキームを探さないと決定された場合は、６１２において、例えば６０４または６１０においてマクロブロック用に決定された１つまたは複数の符号化スキームからなるセットから、マクロブロック用の符号化スキームが選択される。いくつかの実施形態では、６１２において、マクロブロック用の符号化スキームを選択するために、６０６においてマクロブロック用に格納された符号化スキーム、関連の復号複雑性、および／またはその他の関連の情報の比較が行われる。６１４では、６１２においてマクロブロック用に選択された符号化スキームに関連付けられた復号複雑性コストが、復号複雑性コストの累積和に加算される。この和は、いくつかの実施形態では、フレーム全体の総復号複雑性を表しており、フレームを構成するマクロブロック用に選択された符号化スキームの個々の復号複雑性コストを含むものである。
【００４３】
６１６では、符号化される予定のフレームの各マクロブロック用に符号化スキームが決定されたかどうかが決定される。６１６において、まだフレームの全てのマクロブロック用に符号化スキームが選択されていないと決定された場合は、プロセス６００は、まだ符号化スキームを選択されていないマクロブロックとともに６１８に進み、６１８のマクロブロック用に第１の符号化スキームが決定される６０４に戻る。いくつかの実施形態では、６１８のマクロブロック用に６０４において選択された符号化スキームは、１つまたは複数の先行マクロブロック用に選択された符号化スキームに少なくとも部分的に基づく。もし６１６において、符号化される予定のフレームの全てのマクロブロック用に符号化スキームが決定されたと決定された場合は、６２０において、フレーム全体としての符号化スキーム（いくつかの実施形態では、フレームを構成するマクロブロックの符号化スキームからなる）およびフレームの総復号複雑性（すなわち６１４の復号複雑性コストの累積和の最終値）が戻され、プロセス６００は終了する。いくつかの実施形態では、フレームの総復号複雑性を、フレームを構成するマクロブロックの符号化スキームの復号複雑性の累積和として計算する代わりに、式（３）を使用して計算している。式（３）は、各種の符号化ツールが用いられた回数、符号化ツールに関連付けられた対象デコーダ固有の複雑性コスト、およびフレームを符号化するために使用されているツールセットに依存する複雑性コストに対する任意の重み付けに基づく。いくつかの実施形態では、各マクロブロックの復号複雑性（例えば６０６におけるもの）およびフレームの総復号複雑性（すなわち６１４の累積和）を計算する代わりに、またはそれに追加して、式（１）または式（２）などの最適化式を用いて各マクロブロックの符号化スキームのコストが計算され、こうして計算されたコストは、フレームの総コストを表すこのようなコストの累積和に加算される。このようないくつかのケースでは、フレーム用の適切な符号化スキームを決定する際に、例えば図５のプロセス５００の５０６などにおいて、フレームの総コストをそのフレーム用の目標コストと比較することが行われる。
【００４４】
図７は、フレームの符号化のために使用されるツールセットを調整するためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス７００は、図５のプロセス５００の５０８において用いられる。プロセス７００は、フレーム用に選択された符号化スキームの復号複雑性コストに最も大きく寄与する要素および／または符号化ツールが決定される７０２から開始する。いくつかの実施形態では、図５のプロセス５００の５０４において決定されたフレーム用の符号化スキームの復号複雑性コストに最も大きく寄与する要素および／または符号化ツールが、７０２において解析される。いくつかの実施形態では、７０２は、フレームのコンテンツのうち、選択された符号化スキームによって符号化された場合に高い復号複雑性コストをもたらす部分を決定することを含む。いくつかの実施形態では、７０２は、フレームの符号化スキームの復号複雑性コストに最も寄与する符号化ツールおよび／またはその他のパラメータを決定することを含む。７０４では、フレームの復号複雑性コストに最も大きく寄与するものとして７０２において決定された１つもしくは複数の符号化ツールの使用を排除するおよび／または（例えば複雑性コストの重みによって）その使用にペナルティを課すようなツールセットが選択される。いくつかの実施形態では、７０４は、量子化パラメータの値を調整することを含む。量子化パラメータは、所望の複雑性および選定されたツールセットに関連付けられた複雑性にしたがって、インテリジェントに調整されてよい。例えば、量子化パラメータは、少なくとも一部には、フレームの符号化のために使用される予定のツールセットを変更することによる影響を相殺するように、調整されてよい。例えば、７０４では、限られた符号化選択肢および／または複雑性をともなうツールセットを７０４において選択することによる影響を相殺するために、より細かい量子化値が、７０４において選択されてよい。本明細書では、量子化パラメータ値を調整することついて説明されているが、フレームの符号化の複雑性に影響を及ぼすその他のパラメータもまた同様に、７０４において必要に応じて調整されてよい。次いで、プロセス７００は終了する。
【００４５】
図８は、１つまたは複数のフレームを前処理するためのプロセスの実施形態を図示している。いくつかの実施形態では、フレームは、それ用のより良い符号化スキームの選択を促進するために、符号化に先立って前処理される（または選択基準に応じて前処理可能であってよい）。いくつかの実施形態では、フレームは、その中のエントロピを低減させるために、前処理されるまたは前処理されてよい。例えば、複雑性の高いビデオシーケンスのフレームを、限られた符号化選択肢および／または複雑性をともなうツールセットを使用して符号化するときに、いくつかの実施形態では、そのフレームは、そのコンテンツを緩やかに降格させ、符号化フレーム内の圧縮アーチファクトを回避するために、符号化に先立って前処理される。いくつかの実施形態において、もし（例えばフレームを解析することによって、またはフレームを符号化する試行的繰り返しによって、または関連もしくは類似のフレームの符号化によって、）フレームのコンテンツの一部の最適なまたは最適に近い符号化が、非常に高価な技術または対象デコーダによって扱うことができない技術を必要とすると決定されえる場合は、そのようなコンテンツは、符号化に先立って低減されるおよび／またはフレームから除去される。プロセス８００は、複雑性の高いフレームが検出される８０２から開始する。８０４において、８０２において検出されたフレームは、そのフレーム用に、より低い対象デコーダコストの符号化を実現できるようにするために、適切に前処理される。例えば、もし、８０２において検出されたフレームが、ノイズが多いと判断された場合は、そのフレームは、元のフレームデータ内に存在するノイズによってフレームの符号化が影響されないように、または少なくとも影響が少なくなるように、８０４において、空間フィルタまたは平滑化フィルタを使用した前処理によってノイズを低減および／または除去されてよい。８０６では、前処理されたフレームが符号化され、プロセス８００は終了する。いくつかの実施形態では、プロセス８００は、符号化される必要があるビデオシーケンスの１つまたは複数の関連フレームまたは連続フレームの前処理に用いられる。例えば、もしエンコーダ側において、対象デコーダがビデオコンテンツのシーケンス内またはそのサブセット内の全てのフレームを扱えないことが知られている場合は、符号化の前に、シーケンス内の１つまたは複数の連続フレームに対して時間フィルタリングが用いられてよい。例えば、２つもしくは３つ以上の連続フレームのコンテンツの平均化が行われてよい、またはフレームのダウンサンプリングが行われてよい（例えば、フレームをハーフレートで符号化のために選択して対象デコーダに提供してよい、すなわち、ビデオコンテンツのシーケンス内のフレームを符号化のために１つおきに選択して対象デコーダに提供してよい）。いくつかの実施形態では、フレームのダウンサンプリングは、インテリジェントに実施されてよい。例えば、２つまたは３つ以上の連続フレーム間で大きく変化するフレームのみを符号化のために選択して対象デコーダに伝送することが行われてよい。
【００４６】
いくつかの実施形態では、エンコーダは、例えば処理能力および／またはメモリが限られているゆえにデコーダが追いつかない場合や関連のデバイスにおいて電池残量が少なくなっているまたは節約を望まれている場合などの必要時にデコーダ側において緩やかな降格を促進するために、拡張性を用いる。いくつかの実施形態では、時間的拡張性によって、対象デコーダは、必要時にフレームを緩やかに飛ばしてデコーダ側のフレームレートを効率的に低減させることが可能になる。このようないくつかのケースでは、時間的拡張性は、ビデオコンテンツのシーケンスまたはストリームにおける基準フレームおよび非基準フレームのパターンのインテリジェントな選択によって、エンコーダ側に組み込まれる。いくつかの実施形態では、基準フレームおよび非基準フレームのパターンは、好ましくは１つまたは複数の非基準フレームである一部のフレームが飛ばされた場合でも対象デコーダにおける見え方を最大限にするように、選択される。例えば、ビデオコンテンツのシーケンスのサブセットが高い複雑性を有することが検出された場合は、例えば対象デコーダが関連の複雑性を扱う能力の推定値に基づいて、エンコーダ側においてサブセット内のさらに多くのフレームを非基準フレームとしてマークしてよい。同様に、もし特定のフレームが、高度に複雑であるものとエンコーダ側において判断され、高い復号コストを特徴とする符号化スキームを有する場合は、そのフレームは、非基準フレームとして選択されてよく、そうすることによって、対象デコーダは、もし遅れた場合でも見え方を大幅に悪化させることなくそのフレームを飛ばすという選択肢を持てるようになる。いくつかの実施形態では、エンコーダ側は、ビデオコンテンツのシーケンス用の基準フレームおよび非基準フレームのパターンを選択するためのプロセスまたはアルゴリズムを含み、これは、エンコーダにおける対象デコーダのモデルを通じてエンコーダ側において利用可能である対象デコーダの既知の特性および予期される性能、復号のために対象デコーダに提供されているもしくは引き続き提供される予定のその他のデータの複雑性に関する知識、ならびに／またはデコーダからのその現行の性能に関する動的フィードバックに、少なくとも部分的に基づくものである。エンコーダ側におけるフレームの符号化には、時間的拡張性に加えて、またはそれに代わって、１つまたは複数のその他の拡張性の層を含ませて、デコーダ側における緩やかなさらなる降格を可能にしてよい。いくつかの実施形態では、１つまたは複数の拡張性の層は、デコーダ側に課される再生または見え方のクオリティのペナルティを最小限に抑えられる方式で、エンコーダ側において選択される。符号化ビットストリームに組み込まれる拡張性の量は可変であり、ビットストリームの局所的複雑性に依存してよい。
【００４７】
図９は、対象デコーダにおける符号化フレームの復号を緩やかに降格させるためのプロセスの実施形態を図示している。いくつかの実施形態では、プロセス９００は、例えば対象デコーダにおける処理または電力消費の制約ゆえに、その対象デコーダが符号化ビデオシーケンスの符号化において遅れを取りはじめたときに、対象デコーダにおいて用いられる。プロセス９００は、復号複雑性の高いフレームが検出される９０２から開始する。９０４において、９０２のフレームの復号は、緩やかに降格される。いくつかの実施形態では、９０４は、そのフレームを一部とするビデオコンテンツのシーケンス全体の見え方が最大限にされること、および視覚的なクオリティが長時間にわたって一定にまたはほぼ一定に維持されることを保証する方式で、フレームの復号を降格させることを含む。いくつかの実施形態では、９０４は、例えばフレームの復号複雑性が高いゆえに、そのフレームを全く復号しないこと（すなわちそのフレームを飛ばすこと）を含む。このようないくつかのケースでは、基準フレームに高い復号優先度が与えられており、完全に飛ばされる可能性があるのは非基準フレームに限られるので、関連のビデオシーケンス内のその他のフレームは、フレームの飛ばしによる影響を受けない。いくつかの実施形態では、９０４は、最も重要な復号動作を実施すること、およびフレームを完全に復号するためには実施される必要がある１つまたは複数のその他の復号動作を飛ばすことを含む。このような技術は、フレームの復号のクオリティを低くする結果となり、これは、とあるフレームが復号される時点でそのフレームを完全に飛ばすことは望ましくないがデコーダにおいて利用可能な復号リソースが限られている場合に有用である。同様に、いくつかの実施形態では、符号化フレームの復号のクオリティを下げるために、フレームの符号化に関連付けられた１つまたは複数の拡張性の層に関連付けられた復号動作が飛ばされる。次いで、プロセス９００は終了する。
【００４８】
本明細書に開示されるように、データを提供される予定の対象デコーダにおける利用可能復号リソースによって扱うことができる復号複雑性に基づいて、エンコーダにおいてそのデータのための符号化スキームをインテリジェントに選択することによって、対象デコーダにおける復号性能および再生クオリティを最適にするまたは最適に近くすることができる。さらに、符号化に先立つデータの前処理によって、符号化データの復号複雑性が低減されてよい。必要時には、データの符号化スキームに組み込まれた拡張性を通じて、符号化データの復号時における緩やかな降格が促進されてよい。復号データのクオリティを高めるために、デコーダにおける後処理が使用されてよい。データの復号および／または後処理に役立てるために、実際の符号化データ以外に、データの符号化に関連した情報が、エンコーダによって対象デコーダに提供されてよい。本明細書に開示されるように、コーデックの符号化プロセスおよび／または復号プロセスへのインテリジェンスの組み入れは、対象デコーダにおける符号化データのクオリティをより良くすることを可能にする。
【００４９】
以上の実施形態は、理解を明確にする目的でいくらか詳細に説明されてきたが、本発明は、提供された詳細に限定されず、本発明には、数々の代替の実現方法がある。開示された実施形態は、例示的であって非限定的である。
【図１Ａ】
2010503349.tif 000004
【図１Ｂ】
2010503349.tif 000005
【図２】
2010503349.tif 000006
【図３】
2010503349.tif 000007
【図４】
2010503349.tif 000008
【図５】
2010503349.tif 000009
【図６】
2010503349.tif 000010
【図７】
2010503349.tif 000011
【図８】
2010503349.tif 000012
【図９】
2010503349.tif 000013
【国際調査報告】
2010503349.tif 000014
2010503349.tif 000015
2010503349.tif 000016
2010503349.tif 000017
2010503349.tif 000018