(57)【要約】  インターコード化及び／又はイントラコード化のための候補ブロックの効率的な探索のための方法及びシステムが提供される。１つの革新的な態様では、動き推定を実行するための装置が提供される。装置は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するように構成されたプロセッサを含み、少なくとも１つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。プロセッサは、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択するように更に構成される。プロセッサはまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するように構成される。プロセッサはまた、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定するように構成される。
2015520581.tif 000002
【特許請求の範囲】
【請求項１】
動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別し、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択し、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択し、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定する
ように構成されたプロセッサ
を備える装置。
【請求項２】
前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、請求項１に記載の装置。
【請求項３】
前記候補ブロックの数は、所望の符号化時間に基づいて識別される、請求項１又は２のうちの何れか１項に記載の装置。
【請求項４】
前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、請求項１乃至３のうちの何れか１項に記載の装置。
【請求項５】
前記ビデオデータの前記形式は、前記ビデオデータの前記フレームのサイズ及びフレームレートのうちの少なくとも１つを備える、請求項１乃至４のうちの何れか１項に記載の装置。
【請求項６】
前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項５に記載の装置。
【請求項７】
前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、請求項６に記載の装置。
【請求項８】
前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項５乃至７のうちの何れか１項に記載の装置。
【請求項９】
前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、請求項８に記載の装置。
【請求項１０】
前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合、探索すべき候補ブロックが選択される、請求項１乃至９のうちの何れか１項に記載の装置。
【請求項１１】
前記距離は、動き値を備える、請求項１０に記載の装置。
【請求項１２】
探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
前記識別されたブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの１つから前記方法を選択することと
を備える、請求項１乃至１１のうちの何れか１項に記載の装置。
【請求項１３】
前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項１２に記載の装置。
【請求項１４】
前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、請求項１３に記載の装置。
【請求項１５】
前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項１２乃至１４のうちの何れか１項に記載の装置。
【請求項１６】
前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、請求項１５に記載の装置。
【請求項１７】
前記順序は、前記ビデオデータを符号化するために使用されるコード化スキームに基づいて設定される、請求項１乃至１６のうちの何れか１項に記載の装置。
【請求項１８】
動き推定を実行するための方法であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を備える方法。
【請求項１９】
前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、請求項１８に記載の方法。
【請求項２０】
前記候補ブロックの数は、所望の符号化時間に基づいて識別される、請求項１８又は１９のうちの何れか１項に記載の方法。
【請求項２１】
前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、請求項１８乃至２０のうちの何れか１項に記載の方法。
【請求項２２】
前記ビデオデータの前記形式は、前記ビデオデータのフレームのサイズ及びフレームレートのうちの少なくとも１つを備える、請求項１８乃至２１のうちの何れか１項に記載の方法。
【請求項２３】
前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項２２に記載の方法。
【請求項２４】
前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、請求項２３に記載の方法。
【請求項２５】
前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項２２乃至２４のうちの何れか１項に記載の方法。
【請求項２６】
前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、請求項２５に記載の方法。
【請求項２７】
前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合に、探索すべき候補ブロックが選択される、請求項１８乃至２６のうちの何れか一項に記載の方法。
【請求項２８】
前記距離は、動き値を備える、請求項２７に記載の方法。
【請求項２９】
探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
識別された前記ブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの１つから前記方法を選択することと
を備える、請求項１８乃至２８のうちの何れか一項に記載の方法。
【請求項３０】
前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項２９に記載の方法。
【請求項３１】
前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、請求項３０に記載の方法。
【請求項３２】
前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項２９に記載の方法。
【請求項３３】
前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、請求項３２に記載の方法。
【請求項３４】
前記順序は、前記ビデオデータを符号化するために使用されたコード化スキームに基づいて設定される、請求項１８乃至３３のうちの何れか１項に記載の方法。
【請求項３５】
動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別するための手段と、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択するための手段と、
前記ビデオデータの形式に基づいて、前記選択された候補ブロックを探索するための方法を選択するための手段と、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定するための手段と
を備える装置。
【請求項３６】
命令を備えたコンピュータ可読記憶媒体であって、前記命令は、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を装置に行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ビデオコード化に関し、より詳細には、インターコード化及び／又はイントラコード化のための候補ブロックの効率的な探索に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオコード化は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲーム機器、セルラ又は衛星無線電話、等を含む、広範囲のデバイスで使用される。デジタルビデオデバイスは、デジタルビデオをより効率的に送受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、又はＨ.２６４／ＭＰＥＧ−４ ＡＶＣ（Advanced Video Coding）のようなビデオ圧縮技法を実現する。
【０００３】
[0003]  一般に、ビデオ圧縮技法は、ビデオデータに内在する冗長性を低減又は除去するために、空間予測、動き推定、及び動き補償を実行する。具体的には、イントラコード化は、所与のビデオフレーム内のビデオにおける空間冗長性を低減又は除去するために空間予測に依存する。インターコード化は、隣接フレーム内のビデオにおける時間冗長性を低減又は除去するために、時間予測に依存する。インターコード化の場合、ビデオエンコーダは、２つ以上の隣接フレーム間でビデオブロックを整合する動きを追うために、動き推定を実行する。動き推定は、１つ以上の参照フレーム内の対応するビデオブロックに対するビデオブロックの変位（displacement）を示す動きベクトルを生成する。動き補償は、この動きベクトルを使用して、参照フレームから予測ビデオブロックを生成する。動き補償の後、この予測ビデオブロックを元のビデオブロックから差し引くことによって残差ビデオブロックが形成される。
【発明の概要】
【０００４】
[0004]  本開示のシステム、方法、デバイスは各々、幾つかの革新的な態様を有し、それらの何れもが、本明細書で開示される所望の属性に関与しているわけではない。
【０００５】
[0005]  １つの革新的な態様では、動き推定を実行するための装置が提供される。装置は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するように構成されたプロセッサを含み、少なくとも１つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。プロセッサは更に、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択するように構成される。プロセッサはまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するように構成される。プロセッサはまた、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについての動きを推定するように構成される。
【０００６】
[0006]  更なる革新的な態様において、動き推定を実行するための方法が提供される。方法は、探索されるべきビデオデータのフレームの候補ブロックの数を識別することを含み、少なくとも１つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。方法はまた、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択することを含む。方法は、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択することを更に含む。方法はまた、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定することを含む。
【０００７】
[0007]  動き推定を実行するための追加の装置が別の革新的な態様で説明される。装置は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するための手段を含み、少なくとも１つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。装置は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択するための手段を含む。装置はまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するための手段を含む。装置は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについての動きを推定するための手段を更に含む。
【０００８】
[0008]  更なる革新的な態様において、命令を備えたコンピュータ可読記憶媒体が提供される。命令は、探索されるべきビデオデータのフレームの候補ブロックの数を識別することを装置に行わせ、少なくとも１つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。命令は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択することを装置に更に行わせる。命令はまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択することを装置に行わせる。命令は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定することを装置に更に行わせる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ビデオ符号化及び復号システムを示すブロック図である。
【図２】図２は、ビデオエンコーダの例を示すブロック図である。
【図３】図３は、ビデオデコーダの例を示すブロック図である。
【図４Ａ】図４Ａは、参照フレームにおいて候補ブロックを識別するために使用され得る動きベクトル候補の例を示す。
【図４Ｂ】図４Ｂは、候補ブロックを探索するための順序の例を示す。
【図５】図５は、例示的な候補ブロック探索のためのプロセスフロー図を示す。
【図６】図６は、低複雑度探索(low complexity search)プロセスの例を示す。
【図７】図７は、サブブロックレベル予測子を使用した中複雑度探索（medium complexity search）プロセスの例を示す。
【図８】図８は、サブブロックレベル予測子を使用した高複雑度探索（high complexity search）プロセスの例を示す。
【図９】図９は、候補ブロックを探索するための例示的なプロセスのフローチャートを示す。
【図１０】図１０は、動き推定を実行するための装置のブロック図を示す。
【図１１】図１１は、候補動き推定プロセッサを含む動き推定ユニットのブロック図を示す。
【図１２Ａ】図１２は、候補ブロックの効率的な探索のプロセス図を示す。
【図１２Ｂ】図１２は、候補ブロックの効率的な探索のプロセス図を示す。
【発明の詳細な説明】
【００１０】
[0022]  一般に、本開示は、インターコード化及び／又はイントラコード化のための候補ブロックの効率的な探索のための技法に向けられている。「コード化」という用語は、本明細書で使用される場合、符号化すること、復号すること、又は両方を指し得る。本開示で説明される技法は、幅広い実用例に適用可能であり得るが、本開示は、例示を目的として、デジタルビデオ符号化及び復号に言及するだろう。
【００１１】
[0023]  図１は、ビデオ符号化及び復号システムを示すブロック図である。図１に示されるように、システム１０は、符号化されたビデオを、通信チャネル１６を介して受信デバイス１４へ送信するソースデバイス１２を含む。ソースデバイス１２は、ビデオソース１８、ビデオエンコーダ２０、及び送信機２２を含み得る。受信デバイス１４は、受信機２４、ビデオデコーダ２６、及びビデオディスプレイデバイス２８を含み得る。システム１０は、本開示に係るデジタルビデオデータの効率的なコード化のための技法を適用するように構成され得る。
【００１２】
[0024]  図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理送信回線のような任意のワイヤレス又はワイヤード通信媒体、或いはワイヤレス及びワイヤード媒体の任意の組み合わせを備え得る。チャネル１６は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信チャネル１６は、一般に、ソースデバイス１２から受信デバイス１４にビデオデータを送信するための、任意の適切な通信媒体又は異なる通信媒体の集合を表す。幾つかの実現では、通信チャネル１６は、双方向である。そのような実現では、ソースデバイス１２は、受信デバイス１４からフィードバックを受信し得る。フィードバックは、符号化プロセスへの入力として使用され得る。
【００１３】
[0025]  ソースデバイス１２は、受信デバイス１４への送信のためにビデオを生成する。しかしながら、幾つかのケースでは、ソースデバイス１２及び受信デバイス１４は、ほぼ対称的な方法で動作し得る。例えば、ソースデバイス１２及び受信デバイス１４の各々は、ビデオ符号化及び復号構成要素を含み得る。故に、システム１０は、例えば、ビデオストリーミング、ビデオブロードキャスティング、又は、ビデオ電話会議のために、ソースデバイス１２及び受信デバイス１４のようなビデオデバイス間での単方向又は双方向のビデオ送信をサポートし得る。他のデータ圧縮及びコード化アプリケーションの場合、ソースデバイス１２及び／又は受信デバイス１４は、画像、スピーチ又はオーディオデータ、或いは、ビデオ、画像、スピーチ及びオーディオデータのうち２つ以上を組み合わせたもののような他のタイプのデータを送受信する、即ち交換する、ように構成され得る。結果として、ビデオ符号化及び復号アプリケーションについての説明は、例示を目的として提供され、本明細書で広く説明されている本開示の様々な態様を限定するものと考えられるべきではない。
【００１４】
[0026]  ビデオソース１８は、１つ以上のビデオカメラ、以前に撮影されたビデオを含んでいるビデオアーカイブ、又はビデオコンテンツプロバイダからのライブビデオフィードのような撮像装置を含み得る。更なる代替例として、ビデオソース１８は、ソースビデオとしてコンピュータグラフィックベースのデータを、又は、ライブビデオとコンピュータによって生成されたビデオとを組み合わせたものを生成し得る。幾つかのケースでは、ビデオソース１８がカメラである場合、ソースデバイス１２及び受信デバイス１４は、所謂カメラ電話又はビデオ電話を形成し得る。故に、幾つかの態様では、ソースデバイス１２、受信デバイス１４、又は両方は、モバイル電話ハンドセットのようなワイヤレス通信デバイスハンドセットを形成し得る。何れのケースにおいても、撮影されたビデオ、事前に撮影されているビデオ、又はコンピュータによって生成されたビデオは、送信機２２、チャネル１６及び受信機２４を介してビデオソースデバイス１２からビデオ受信デバイス１４のビデオデコーダ２６に送信するために、ビデオエンコーダ２０によって符号化され得る。ディスプレイデバイス２８は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、又は有機発光ダイオード（ＯＬＥＤ）ディスプレイのような様々なディスプレイデバイスの何れかを含み得る。
【００１５】
[0027]  ビデオエンコーダ２０及びビデオデコーダ２６は、空間、時間、及び／又は信号対ノイズ比（ＳＮＲ）スケーラビリティのためにスケーラブルビデオコード化（ＳＶＣ）をサポートするように構成され得る。幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ２６は、ＳＶＣのための細粒ＳＮＲスケーラビリティ（ＦＧＳ）コード化をサポートするように構成され得る。エンコーダ２０及びデコーダ２６は、基準層及び１つ以上のスケーラブル強化層の符号化、送信、及び復号をサポートすることで、様々な程度のスケーラビリティをサポートし得る。スケーラブルビデオコード化の場合、基準層は、最小の品質レベルでビデオデータを搬送する。１つ以上の強化層は、より高い空間、時間、及び／又はＳＮＲレベルをサポートするために、追加のビットストリームを搬送する。
【００１６】
[0028]  ビデオエンコーダ２０及びビデオデコーダ２６は、一部分が本明細書で説明される技法に従って、一部分がＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ Ｈ.２６３、又はＩＴＵ−Ｔ Ｈ２６４／ＭＰＥＧ−４ ＡＶＣ（Advanced Video Coding）のようなビデオ圧縮規格に従って動作し得る。例えば、本明細書で使用される技法は、当業者によって理解されるであろうビデオ圧縮規格で使用されるそれぞれの技法を増強又は置き換えるために使用され得る。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ２６は、それぞれオーディオエンコーダ及びデコーダと統合され、共通のデータストリーム又は別個のデータストリームにおけるオーディオ及びビデオの両方の符号化に対処するために、適切なＭＵＸ−ＤＥＭＵＸユニット又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ.２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠し得る。
【００１７】
[0029]  Ｈ.２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、ＪＶＴ（Joint Video Team）として知られている共同パートナーシップの成果として、ＩＴＵ−Ｔ ＶＣＥＧ（Video Coding Experts Group）がＩＳＯ／ＩＥＣ ＭＰＥＧ（Moving Picture Experts Group）と共同で公式化したものである。Ｈ.２６４規格は、２００５年３月付けの、ＩＴＵ−ＴスタディグループによるＩＴＵ−Ｔ推奨Ｈ.２６４、Advanced video coding for generic audiovisual servicesに記載されており、それは、本明細書において、Ｈ.２６４規格、Ｈ.２６４仕様、或いはＨ.２６４／ＡＶＣ規格又は仕様と呼ばれ得る。
【００１８】
[0030]  幾つかの態様において、ビデオブロードキャストのために、本明細書で説明される技法は、例えば、ワイヤレスビデオブロードキャストサーバ又はワイヤレス通信デバイスハンドセットを介して、地上波モバイルマルチメディアマルチキャスト（ＴＭ３）システムでリアルタイムビデオサービスを配信するための強化Ｈ.２６４ビデオコード化に適用され得る。幾つかの実現において、ビデオは、ＤＶＢ−Ｈ（デジタルビデオブロードキャスト−ハンドヘルド）、ＩＳＤＢ−Ｔ（統合サービスデジタルブロードキャスト地上波）、又はＤＭＢ（デジタルメディアブロードキャスト）のような他の規格に従ってブロードキャストされ得る。故に、ソースデバイス１２は、モバイルワイヤレス端末、ビデオストリーミングサーバ、又はビデオブロードキャストサーバであり得る。しかしながら、本開示で説明される技法は、任意の特定のタイプのブロードキャスト、マルチキャスト、又はポイント・ツー・ポイントシステムに制限されない。ブロードキャストのケースにおいて、ソースデバイス１２は、ビデオデータの幾つかのチャネルを、各々が図１の受信デバイス１４に類似し得る多数の受信デバイスにブロードキャストし得る。
【００１９】
[0031]  ビデオエンコーダ２０及びビデオデコーダ２６は各々、１つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらのあらゆる組み合わせとして実現され得る。故に、ビデオエンコーダ２０及びビデオデコーダ２６の各々は、集積回路（ＩＣ）チップ又はデバイスとして少なくとも部分的に実現され、１つ以上のエンコーダ又はデコーダに含まれ得、それらの何れかは、それぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、等における複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部分として統合され得る。加えて、ソースデバイス１２及び受信デバイス１４は各々、符号化されたビデオの送受信のために、適切な変調、復調、周波数コンバージョン、フィルタリング、及び増幅器構成要素を適宜含み得、それらは、ワイヤレス通信をサポートするのに十分な無線周波数（ＲＦ）ワイヤレス構成要素及びアンテナを含む。しかしながら、例示を容易にするために、そのような構成要素は、図１には示されない。
【００２０】
[0032]  ビデオシーケンスは、一連のビデオフレームを含む。ビデオエンコーダ２０は、ビデオデータを符号化するために個々のビデオフレーム内のピクセルのブロック上で動作する。ビデオブロックは、一定又は可変サイズを有し得、指定のコード化規格に従ってサイズが異なり得る。各ビデオフレームは、一連のスライスを含む。各スライスは、サブブロックへと配列され得る一連のマクロブロックを含み得る。例として、ＩＴＵ−Ｔ Ｈ.２６４規格は、輝度成分については１６×１６、８×８、４×４、彩度成分については８×８といった様々なブロックサイズでのイントラ予測をサポートすることに加え、輝度成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４、彩度成分については対応するスケーリングされた（scaled）サイズといった様々なブロックサイズでのインター予測をサポートする。
【００２１】
[0033]  より小さいビデオブロックはより良い解像度を提供することができ、より高い詳細度（level of detail）を含むビデオフレームの位置付けのために使用され得る。一般に、マクロブロック（ＭＢ）及び様々なサブブロックは、ビデオブロックであると考えられ得る。加えて、スライスは、ＭＢ及び／又はサブブロックのような一連のビデオブロックであると考えられ得る。各スライスは、独立して復号可能な単位であり得る。予測の後、８×８の残差ブロック又は４×４の残差ブロックに対して変換が実行され得、イントラ＿１６×１６＿予測モードが使用された場合には、彩度成分又は輝度成分について４×４のブロックのＤＣ係数に追加の変換が適用され得る。
【００２２】
[0034]  図１のシステム１０のビデオエンコーダ２０及び／又はビデオデコーダ２６は、処理オーバーヘッド、処理複雑度、及び／又は電力消費を低減させるために、インターコード化及び／又はイントラコード化のための候補ブロックの効率的な探索について以下に説明される態様を組み込むように構成され得る。
【００２３】
[0035]  図２は、ビデオエンコーダの例を示すブロック図である。ビデオエンコーダ２０は、少なくとも一部が１つ以上の集積回路デバイスとして形成され得、それは、総称して、集積回路デバイスと呼ばれ得る。幾つかの態様において、ビデオエンコーダ２０は、ワイヤレス通信デバイスハンドセット又はブロードキャストサーバの一部を形成し得る。ビデオエンコーダ２０は、ビデオフレーム内のブロックのイントラ及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム内のビデオにおける空間冗長性を低減又は除去するために、空間予測に依存する。インターコード化は、ビデオシーケンスの隣接フレーム内のビデオにおける時間冗長性を低減又は除去するために、時間予測に依存する。インターコード化の場合、ビデオエンコーダ２０は、隣接フレーム間でビデオブロックを整合する動きを追うために、動き推定を実行する。
【００２４】
[0036]  図２に示されるように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロック３０を受信する。図２の例において、ビデオエンコーダ２０は、動き推定ユニット３２、参照フレーム記憶装置３４、動き補償ユニット３６、ブロック変換ユニット３８、量子化ユニット４０、逆量子化ユニット４２、逆変換ユニット４４、及びエントロピ符号化ユニット４６を含む。ビデオエンコーダ２０はまた、メモリ４７を含むメモリを含み得る。ブロックをフィルタリングして、ブロック歪み（blocking artifact）を除去するために、インループブロックデブロッキングフィルタ（示されない）が適用され得る。ビデオエンコーダ２０はまた、加算器４８及び加算器５０を含む。図２は、ビデオブロックのインターコード化のためのビデオエンコーダ２０の時間予測構成要素を示す。例示を容易にするために図２には示されていないが、ビデオエンコーダ２０はまた、幾つかのビデオブロックのイントラコード化のために空間予測構成要素を含み得る。
【００２５】
[0037]  動き推定ユニット３２は、ビデオブロック３０を、１つ以上の隣接ビデオフレーム内のブロックと比較して、１つ以上の動きベクトルを生成する。１つの隣接フレーム又は複数の隣接フレームは、以前に符号化されたブロックから復元（reconstruct）されたビデオブロックを記憶するための任意のタイプのメモリ又はデータ記憶デバイスを備え得る参照フレーム記憶装置３４から検索され得る。例えば、１６×１６、１６×８、８×１６、８×８、又はより小さいブロックサイズのような可変サイズのブロックについて動き推定が実行され得る。
【００２６】
[0038]  動作中、動き推定ユニット３２は、例えば、レート歪みモデルに基づいて、現在のビデオブロック３０と最も厳密に整合する隣接フレーム内の１つ以上のブロックを識別し、隣接フレーム内のブロックと、現在のビデオブロックとの間の変位を決定する。これを基に、動き推定ユニット３２は、現在のビデオブロック３０と、現在のビデオブロック３０をコード化するために使用された参照フレームからの１つ以上の整合ブロックとの間の変位の大きさ及び軌道を示す１つ以上の動きベクトル（ＭＶ）を生成する。
【００２７】
[0039]  動きベクトルは、１／２又は１／４ピクセル精度、或いは、より一層細かい精度を有し得、それにより、ビデオエンコーダ２０は、整数ピクセルロケーションよりも高い精度で動きを追い、より優れた予測ブロックを取得することができる。幾つかの実現では、これらのより細かい精度のベクトルは、サブサンプルと呼ばれ得る。分数ピクセル値を有する動きベクトルが使用された場合、動き補償ユニット３６において補間動作が実行される。動き推定ユニット３２は、レート歪みモデルのような特定の基準を使用して、ビデオブロックについての最良のブロック分割及び１つの動きベクトル又は複数の動きベクトルを識別する。例えば、双方向予測の場合、動きベクトルだけではない可能性がある。結果として得られたブロック分割及び動きベクトルを使用して、動き補償ユニット３６は、予測ビデオブロックを形成する。
【００２８】
[0040]  ビデオエンコーダ２０は、加算器４８において、動き補償ユニット３６によって生成された予測ビデオブロックを元の現在のビデオブロック３０から差し引くことで、残差ビデオブロックを形成する。ブロック変換ユニット３８は、Ｈ.２６４／ＡＶＣにおいて使用される４×４又は８×８の整数変換のような変換を残差ブロックに適用し、残差変換ブロック係数を生成する。量子化ユニット４０は、ビットレートを更に低減させるために、残差変換ブロック係数を量子化する。エントロピ符号化ユニット４６は、ビットレートをより一層低減させるために、量子化された係数をエントロピコード化する。
【００２９】
[0041]  一般に、ビデオデコーダ２６は、例えば、図３に関して説明されるように、符号化されたビデオを復号及び復元するために、復号及び構文解析（parsing）を含む逆動作を実行する。
【００３０】
[0042]  逆量子化ユニット４２及び逆変換ユニット４４は、それぞれ、逆量子化及び逆変換を適用して、残差ブロックを復元する。加算器５０は、復元された残差ブロックを動き補償ユニット３６によって生成された動き補償予測ブロックに加えて、参照フレーム記憶装置３４に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオフレームにおけるブロックを符号化するために、動き推定ユニット３２及び動き補償ユニット３６によって使用される。
【００３１】
[0043]  図３は、ビデオデコーダの例を示すブロック図である。ビデオデコーダ２６は、少なくとも一部が１つ以上の集積回路デバイスとして形成され得、それは、総称して、集積回路デバイスと呼ばれ得る。幾つかの態様において、ビデオデコーダ２６は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ２６は、ビデオフレーム内のブロックのイントラ及びインター復号を実行し得る。図３に示されるように、ビデオデコーダ２６は、ビデオエンコーダ２０によって符号化されている符号化されたビデオストリームを、受信機２４（図１）から受信する。図３の例において、ビデオデコーダ２６は、エントロピ復号ユニット５２、動き補償ユニット５４、逆量子化ユニット５６、逆変換ユニット５８、及び参照フレーム記憶装置６２を含む。ビデオデコーダ２６はまた、コード化データの記憶及び検索のために、エントロピ復号ユニット５２を使用され得るメモリ５３含むメモリを含み得る。ビデオデコーダ２６はまた、加算器６４の出力をフィルタリングするインループでブロッキングフィルタ（示されない）を含み得る。ビデオデコーダ２６はまた、加算器６４を含む。図３は、ビデオブロックのインター復号のためのビデオデコーダ２６の時間予測構成要素を示す。図３には示されないが、ビデオデコーダ２６はまた、幾つかのビデオブロックのイントラ復号のための空間予測構成要素を含み得る。
【００３２】
[0044]  エントロピ復号ユニット５２は、符号化されたビットストリームを受信し、このビットストリームから、量子された残差係数、マクロブロックコード化モード、並びに動きベクトル及びブロック分割を含み得る動き情報を復号する。
【００３３】
[0045]  動き補償ユニット５４は、動きベクトル及びブロック分割と、参照フレーム記憶装置６２からの１つ以上の復元された参照フレームとを受信して、予測ビデオブロックを生成する。逆量子化ユニット５６は、量子化されたブロック係数を逆量子化、即ち、逆量子化（dequantize）する。逆変換ユニット５８は、逆変換、例えば、逆ＤＣＴ或いは逆４×４又は８×９整数変換、を係数に適用して、残差ブロックを生成する。その後、復号されたブロックを形成するために、予測ビデオブロックが、残差ブロックを使用して加算器６４によって生成される。復号されたブロックをフィルタリングしてブロック歪みを除去するために、デブロッキングフィルタ（示されない）が適用され得る。その後、フィルタリングされたブロックは、後続のビデオフレームの復号のための参照フレームを提供すること、及び、ディスプレイデバイス２８（図１）を駆動するために復号されたビデオを生成することを行う参照フレーム記憶装置６２に配置される。
【００３４】
[0046]  上述されたように、ビデオエンコーダ２０は、イントラコード化及びインターコード化の一方又は両方、或いは、同一のフレーム又は隣接フレーム内のブロックへの整合ブロックを探索することでブロック（「マクロブロック」とも呼ばれる）をコード化することを含む他のコード化技法を実行し得る。上述されたように、異なるマクロブロックは、異なるサイズ及び／又は形であり得ることに留意されたい。潜在的な整合ブロックとしてチェック又は探索されることとなるブロックは、本明細書において「候補ブロック」と呼ばれ得る。
【００３５】
[0047]  高解像度及び／又は高いフレームレートのビデオを符号化する際、ビデオエンコーダ２０は、ビデオの画像を処理するための制限された時間量が存在し得る。これは、各画像の各マクロブロックに対して、制限された処理時間が存在し得ることを意味する。
【００３６】
[0048]  更に、幾つかの例において、ビデオエンコーダ２０は、高解像度及び／又は高いフレームレートのビデオを符号化することに加え、低解像度及び／又は低いフレームレートのビデオを符号化するために使用され得る。結果として、処理時間を低減する、コード化のための候補ブロックの効率的な探索を提供し、更に、例えば、コード化されるべきビデオの態様（例えば、解像度、フレームレート、等）に依存して、例えば、どの複雑度レベルで、及び、どれだけ長く探索が実行されるかという観点で調節可能である（例えば、プログラマブルである）システム及び方法のための技法が本明細書で説明される。様々な態様が本明細書で説明される。これらの態様が、ビデオエンコーダ２０又は他の適切なハードウェア及び／又はソフトウェアによって、任意の態様を含む又は除く任意の組み合わせで実行され得ることに留意されたい。
【００３７】
[0049]  幾つかの態様において、ビデオエンコーダ２０は、符号化されるべきビデオの形式（例えば、フレームサイズ及びフレームレート）に対応する（scale with）ように構成される。具体的には、ビデオエンコーダ２０は、それが、候補ブロックを探索するために使用される処理サイクルの数を調節するように構成されるという点でプログラマブルあり得る。使用される処理サイクルの数は、例えば、適切な処理サイクルの数を反映するようにビデオエンコーダ２０に関連付けられたプログラミングを変更すること（例えば、レジスタ値、算術論理、等を調節すること）によって、手動で調節され得る。幾つかの態様において、使用される処理サイクルの数は、例えば、符号化されるべきビデオの形式（例えば、フレームサイズ、フレームレート、等）、及び／又は、ビデオを符号化するために使用されるコード化スキーム（例えば、規格）（例えば、Ｈ.２６４、ＶＰ８、ＭＰＥＧ−４、等）に基づいて、自動的に調節され得る。例えば、より高いフレームレート及び／又はより大きいフレームサイズ（例えば、閾値を上回る）は、全体を符号化するために、より多くの処理時間を費やし得る。そのため、より少ない数の処理サイクルが、候補ブロックを探索するために割り振られ得る。同様に、例えば、より低いフレームレート及び／又はより小さいフレームサイズ（例えば、閾値を下回る）は、全体を符号化するために、より短い処理時間を費やし得る。そのため、より多くの数の処理サイクルが、候補ブロックを探索するために割り振られ得る。
【００３８】
[0050]  幾つかの態様において、ビデオエンコーダ２０はまた、それが、調節可能な優先スキームに従って候補ブロックを探索するように構成されるという点でプログラマブルであり得る。例えば、優先スキームは、ビデオデータを符号化するために使用されるコード化スキーム（例えば、Ｈ.２６４、ＶＰ８、ＭＰＥＧ−４、等）に基づいて調節され得る。このように、候補ブロックの探索が実行される順序は、特定のコード化スキームに最適化されることができる。例えば、１つの優先スキームは、ビデオのフレームの中央の近くの候補ブロックを最初に探索し、フレームの周辺（periphery）の候補ブロックを後で探索することを備え得る。追加的又は代替的に、インターフレーム候補ブロック（時間予測子を使用した）は、コード化スキームに依存して、イントラフレーム候補ブロック（空間予測子を使用した）の前に探索され得るか、又はその逆であり得る。例えば、幾つかのコード化スキームにおいて、インターフレーム候補ブロックは、イントラフレーム候補ブロックよりも少ない数のビットを使用してコード化され得るため、最初に探索され得る。別の例において、候補ブロックは、１つ以上の方法（例えば、インターフレーム（時間）探索、イントラフレーム（空間）探索、サブサンプル探索エンジン（ＳＳＥ）探索、動きベクトル予測（ＭＶＰ）探索、等）を使用して探索され得る。これらの１つ以上の方法は、符号化に使用されたコード化スキームに依存して、特定の順序で探索され得る。
【００３９】
[0051]  図４Ａは、参照フレームにおける候補ブロックを識別するために使用され得る動きベクトル候補の例を示す。候補ブロックは、例えば、参照フレームのマクロブロックといった、参照フレームにおけるピクセル値のグループである。動きベクトル候補及び候補ブロックは、交換可能に使用され得る。関心点（ＰＯＩ）が、フレーム４２５のマクロブロック（ＭＢ）内に示される。この関心点に加えて、幾つかの追加ブロックが、候補ブロックとして使用され得る。例えば、図４Ａでは、時間予測子値Ｔ１、Ｔ２、Ｔ３、及びＴ４ ４３０が提供される。
【００４０】
[0052]  幾つかの空間予測子もまた、このフレームの関心点の近くに含まれ得る。図４Ａに示されるように、空間予測子値Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、及びＳ６が提供される。幾つかの実現において、サブサンプル探索エンジン値４３５もまた提供され得る。図４Ａに示される関心点は、ＳＳＥ−１、ＳＳＥ−２、ＳＳＥ−３、ＳＳＥ−４、ＳＳＥ−５、ＳＳＥ−６、ＳＳＥ−７、及びＳＳＥ−８で識別される８つのサブサンプル探索エンジン値に関連付けられる。上述されたように、探索に利用可能な候補ブロックは、図４Ａに示されたものよりも多くの又は少ない値を含み得る。
【００４１】
[0053]  図４Ｂは、候補ブロックを探索するための順序の例を示す。図４Ｂに示される順序は、図４Ａで識別された候補ブロックに基づく。動きベクトル候補４５０は各々、識別子（ＩＤ）４５５に関連付けられる。候補ブロック４５０の順序付けは、候補ブロックが探索されることとなることを必ずしも意味するわけではない。説明されるように、幾つかの候補ブロック４５０は、ビデオデータの特定の部分について、探索から省略され得る。
【００４２】
[0054]  図４Ｂに示される実現において、候補ブロック４５０は、優先探索の順序で編成される。探索されるべき第１のブロックは関心点である。探索すべき第２のブロックは、関心点からのブロックオフセットである。例えば、このオフセットは、垂直及び／又は水平オフセットに沿っている。探索すべき第３のブロックは、動きベクトル予測（ＭＶＰ）である。ＭＶＰ候補は、予測された動きベクトルの周りの候補ブロックを探索することに対応する。探索すべき第４のブロックは、第１のサブサンプル探索エンジン候補ブロック（ＳＳＥ−１）によって識別されたエリアの周りの候補ブロックである。次に、空間予測された（例えば、イントラフレーム）ブロック（Ｓ１−Ｓ６）の各々が探索され得る。次に、ＳＳＥ−２及びＳＳＥ−３の周りの候補ブロックが次に探索され得、時間（インターフレーム）候補ブロックＴ１〜Ｔ４が続く。その後、ＳＳＥ−４〜ＳＳＥ−８によって識別された残りの候補ブロックが探索され得る。
【００４３】
[0055]  図４Ｂに示される順序付けは、順序付けの単なる一例であり、特定のコード化スキーム、フレームサイズ、及びフレームレートと共に有益に使用され得る。順序付けは、候補ブロック４５０の探索に使用すべきブロックの進行を識別するために使用され得る。
【００４４】
[0056]  図５は、例示的な候補ブロック探索のためのプロセスフロー図を示す。図５に示されるプロセスは、ソースデバイス１２のような本明細書で説明されるデバイスによって、例えば、ビデオエンコーダ２０を介して実行され得る。図５に示されるプロセスは、図４Ｂに示されたもののような候補ブロックの順序付けを、入力として受け取るだろう。説明を容易にするために、図５は、図４Ｂの順序付けを使用して説明されるだろう。しかしながら、幾つかの実現では順序付けが異なり得るため、図５のプロセスが、様々な順序付けに適用され得ることは理解されるだろう。プロセスへの第２の入力は、３つの方法の各々を使用して探索すべき候補の数である。
【００４５】
[0057]  幾つかの態様において、ビデオエンコーダ２０は、示されるプロセスを実行するようにプログラムで（programmatically）構成され得る。ビデオエンコーダ２０は、互いに似ていない候補ブロックの探索を優先するように構成され得る。例えば、幾つかの候補ブロックは、空間的に所与のフレーム内の同一のロケーションの近くにあり得、よって、類似した画像データを含み得る。これらの類似した候補ブロックを探索することは、貴重なメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））帯域幅、処理電力、及び／又は他のソースデバイス１２リソースを浪費し得る。結果として、ビデオエンコーダ２０は、候補ブロックの探索がすでに実行されたロケーションの近くの候補ブロックの探索を無視する（例えば、除外する）ように構成され得る。
【００４６】
[0058]  この除外は、設定可能な距離値又は閾値に基づき得る。結果として、幾つかの候補ブロックが、空間的に互いに距離値又は閾値距離（例えば、候補ブロックの中心から測定された、候補ブロックの最も近い外縁から測定された、等）内である場合、そのような候補ブロックの全てに満たない数（例えば、１つ）が、マクロブロックへの潜在的な整合について探索され得、他のそのような候補ブロックは、探索から除外される。幾つかの態様において、探索されることとなる候補ブロックを定義するためのブロックの選択／除去は、処理サイクルの使用を最大化するために、ビデオエンコーダ２０又は他のハードウェア構成要素によって実行されるべき他の処理（例えば、動きベクトル処理）と並行して実行され得る。例えば、より詳細に以下で説明されるように、図４Ｂの特定の候補ブロックは、探索されるであろう候補ブロック間の類似性により、探索プロセスから除去され得る。
【００４７】
[0059]  幾つかの態様において、ビデオエンコーダ２０は、それが、候補ブロックを探索する際に調節可能な探索複雑度を有するように構成されるという点でプログラマブルである。例えば、高複雑度探索は、より低い数の候補が探索されることとなり得、低複雑度探索は、より高い数の候補が探索されることとなり得る。結果として、ビデオエンコーダ２０は、探索されている画像に合わせられるようにプログラムされることができる。例えば、より大きいサイズのより高い解像度のビデオマクロブロックは、より低い解像度のビデオよりも類似した動きベクトルを有し得（例えば、より大きいブロックは、１つのフレーム内で空間的に類似しているか、又は、複数のフレーム間で時間的に類似しており）、よって、低複雑度探索が、より多くの候補を探索するために利用され得る。しかしながら、より低い解像度のビデオは、類似した動きベクトルを有するより大きいサイズのマクロブロックを有していない可能性があり、むしろ、類似した動きベクトルを有するより小さいマクロブロックだけを有し得る。結果として、そのようなより低い解像度のビデオの場合、より高い品質であるより少ない数の候補を探索する高複雑度探索が利用され得る。このように、ビデオエンコーダ２０は、探索される候補ブロックのサイズ（例えば、１６×１６、１６×８、８×１６、８×８、等）を調節することで、候補ブロックを探索する際の複雑度を調節するようにプログラマブルである／構成され得る。サイズは、探索されるべき画像（例えば、画像の解像度、ビデオのフレームレート、等）に基づいて調節され得る。更に、例えば、異なる組み合わせにおける１つ以上のサイズの１つ以上の探索が、探索されるべき画像に依存して使用され得る。
【００４８】
[0060]  図５において、ノード５０２では、関心点候補が、低複雑度探索を使用して探索される。マクロブロックが１６×１６マクロブロックである実現では、関心点は、１６×１６ブロックを使用して探索されるであろう。
【００４９】
[0061]  図６は、低複雑度探索プロセスの例を示す。幾つかの実現では、サイズが１６×１６の候補ブロックにのみ基づいて画像が探索され得る。動き値がマクロブロックレベルで決定されるため、マクロブロックに含まれる各サブブロックは、同一の動きベクトルを有すると推測される。
【００５０】
[0062]  低複雑度探索では、１６×１６候補ブロック内のエリア全体がブロック及びより小さいサブブロックと整合させるために、コストなしで（例えば、計算コスト無しで）探索される。全てのブロックに対して同一の動きベクトルが使用されるため、探索の精度は、落ちる可能性がある。そのような態様は、例えば、より大きいフレームサイズ及び／又はより高いフレームレート（例えば、閾値を上回る）に対して使用され得る。別の態様において、幾つかのブロックは、サイズが１６×１６の候補ブロックに基づいて探索され、他のものは１６×８に基づいて探索され、他のものは８×１６に基づいて探索され、更に他のものは８×８に基づいて探索され得る。これらは、後続の段落で説明されるように、中複雑度探索及び／又は高複雑度探索を使用して行われ得る。
【００５１】
[0063]  １６×１６候補ブロックは、サイズが８×８である４つの等しいサブブロックへと分割され得る。図６に示されるように、サブブロック５（ＳＢ５）、サブブロック６（ＳＢ６）、サブブロック７（ＳＢ７）、及びサブブロック８（ＳＢ８）は、１６×１６候補ブロックに含まれる。各サブブロックは、関連コスト値を有する。一例において、コスト値は、ピクセル間の絶対差分値和（sum of absolute difference）であり得る。より大きいサブブロックのコストを作り出すために、これらのサブブロックについてのコスト値が加算され得る。例えば、１６×８の寸法を有するサブブロック１（ＳＢ１）を生成するために、ＳＢ５とＳＢ６が加算され得る。同様に１６×８サブブロックであるサブブロック２（ＳＢ２）を生成するために、ＳＢ７とＳＢ８が加算され得る。ＳＢ５とＳＢ７を加算することで、８×１６の寸法を有するサブブロック３（ＳＢ３）が生成される。同様に８×１６サブブロックであるサブブロック４（ＳＢ４）を生成するために、ＳＢ６とＳＢ８が加算され得る。候補ブロック全体についてのコスト値は、サブブロック０（ＳＢ０）で表され、それは、必ずしも、サブブロックである必要はなく、むしろ、各構成サブブロックＳＢ５〜ＳＢ９についてのコスト値の集合であり得る。ＳＢ０は、１６×１６の寸法を有する。
【００５２】
[0064]  図５に戻り、所与のマクロブロック、フレーム、又はビデオ入力について、グローバル動き値が提供され得る。グローバル動き値は、マクロブロック、フレーム、又はビデオ入力についてのピクセルの変位全体を示す。ノード５０４において、グローバル動きオフセット候補は、低複雑度探索を使用して探索される。グローバル動きオフセット値がゼロである場合、この探索は、ノード５０２で実行されたものと同一になるであろう。そのような実現では、ノード５０４での探索は省略され得る。グローバル動きオフセットがゼロでない場合（例えば、ｘオフセット及び／又はｙオフセット値を有する場合）、関心点±グローバルオフセット値に位置付けられた候補ブロックが探索される。
【００５３】
[0065]  ノード５０２において、低複雑度探索を使用して関心点候補を探索することは、比較が、マクロブロックについての１６×１６予測子だけを有する探索に基づくため、整合の荒い決定（coarse grained determination）をもたらす。
【００５４】
[0066]  ノード５０８において、候補ブロックは、更なる考慮（consideration）から除外される。除外は、候補ブロックの他の候補ブロックまでの距離に基づく。考えられ得る１つの距離は、他の候補ブロックまでのピクセル距離である。候補ブロックについての距離が指定の閾値未満である場合、候補ブロックは、この候補に関連付けられた動きが他の候補ブロックと比べて非常に小さいため、更なる考慮から除外され得る。閾値は、ｘ及び／又はｙ動き値に沿って指定され得る。閾値は、例えば、符号化されるべき入力されたビデオ、デバイスについての動作条件（例えば、負荷、ネットワークトラフィック、リソース利用性）、等に基づいて、デバイスについて静的に構成されうる（例えば、メモリに記憶される）か、ユーザ構成されるか、又は動的に決定され得る。
【００５５】
[0067]  過度に多くの候補が考慮から除外された場合、ビデオエンコーダ２０は、割り当てられた探索時間がそのマクロブロックに対して使用され得るように、関心点、ＭＶＰ、サブサンプル探索エンジン候補のような、重要な候補の周りを探索するようにプログラムされ得る。上述されたように、異なるコード化スキームは、当業者によって理解されるように、異なる順序付けから利益を得ることができる。
【００５６】
[0068]  ノード５１０において、除外されていない候補ブロックについての動きベクトルは、低複雑度探索を使用して探索される。
【００５７】
[0069]  候補ブロックのうちの幾つかが考慮から除外されている可能性があるため、コスト値が生成される必要のある候補ブロックの数は、全ての候補ブロックについて算出を実行するよりも小さい可能性がある。これは、より少ない数の候補ブロックを処理することが、候補ブロックのセット全体を処理するよりも少ない処理時間、電力、メモリ、等を要求し得るため、１つの非限定的な利益として、ビデオデータを符号化するために消費されるリソースの低減を提供する。幾つかの実現において、動きベクトル値は、候補動きベクトルプロセッサに結合された絶対差分値和エンジンにより生成され得る。プロセスは、二乗差分和（sum of squared difference）、絶対変換距離和（sum of absolute transformed distance）、等の他の推定プロシージャを使用して、又は、それと併用して、除外されていない候補についての動きベクトル情報を取得し得る。
【００５８】
[0070]  決定ノード５１２において、ノード５０２〜５１０を介して探索される候補ブロックの数が、低複雑度探索を使用して探索されるべき候補の所望の数のよりも多いか否かについての決定がなされる。
【００５９】
[0071]  探索される候補ブロックの数が、低複雑度探索の所望の数よりも大きくない場合、プロセスはノード５１４に進む。ノード５１４において、除外されていないサブサンプル探索エンジンの周りの候補ブロック及び動きベクトル予測子候補ブロックが低複雑度探索を使用して探索される。これにより、除外されていないサブサンプル及び動きベクトル予測子候補ブロックの周りを追加で探索することが可能になるため、これは、現在のマクロブロックについて整合を約束することを表し得る。その後、プロセスは、以下で説明されるようなノード５１６に進む。決定ノード５１２に戻り、探索される候補ブロックの数が、中複雑度探索の所望の数以下である場合、プロセスはノード５１６に進む。
【００６０】
[0072]  ノード５１６において、候補ブロックは、図７に示されるもののような中複雑度探索で探索される。
【００６１】
[0073]  図７は、サブブロックレベル予測子を使用した中複雑度探索プロセスの例を示す。図７に示される探索は、１つの１６×１６探索、１つの１６×８探索、１つの８×１６探索、及び３つの８×８探索を実行することを含み得る。図７の探索は、図６に示された探索と比べて、より高いレベルの計算複雑度を有し得る。図６の探索とは異なり、サブブロックは、全てが同一の動きベクトル候補を有しているものとは推測されない。代わりに、図７では、サブブロック０（ＳＢ’０）、候補ブロックの最も左上に位置付けられたサブブロックに対応するサブブロック５（ＳＢ’５）は、候補ブロックの最上行に位置付けられた１６×８サブブロックに対応するサブブロック１（ＳＢ’１）、及び、候補ブロックの左手の列に位置付けられた８×１６サブブロックに対応するサブブロック３（ＳＢ’３）は、同一の動き値を有するものと推測される。結果として、ＳＢ’０についてのコストの決定はまた、ＳＢ’５、ＳＢ’１、及びＳＢ’３についてのコストを提供する。
【００６２】
[0074]  １６×８サブブロックであるサブブロック（ＳＢ’４）についてのコストを生成するために、追加の１つの算出が必要である。更なる１つの算出が、８×１６サブブロックであるサブブロック（ＳＢ’２）についてのコスト値を生成するために実行される。８×８サブブロックであるサブブロック６（ＳＢ’６）、サブブロック７（ＳＢ’７）、及びサブブロック８（ＳＢ’８）の各々についてコスト値を生成するために、３つの算出が必要とされる。
【００６３】
[0075]  図５に戻り、ノード５１６では、中複雑度探索において、幾つかのサブブロックについての候補ブロックは、優先のサブブロックについて探索が行われた後にのみ知られる。例えば、ＳＢ’４候補ブロックは、ＳＢ’０の探索の後にのみ決定され得る。同様に、ＳＢ’７候補ブロックは、ＳＢ’６が探索されるのを待つ必要があり、ＳＢ’８は、ＳＢ’６及びＳＢ’８が探索されるのを待つ必要があるだろう。先と同様に、この探索は、全てのサブブロックが同一の動きベクトルを有すると想定するマクロブロックレベル値に基づく図６に示される探索、及びサブブロックレベルで実行され且つ各サブブロックが異なる動きベクトルを有すると想定する図８に示される探索との比較で「中」複雑度として説明される。
【００６４】
[0076]  図８は、サブブロックレベルの予測子を使用した高複雑度探索プロセスの例を示す。図８に示される探索プロセスは、各サブブロックがそれ自体の動きベクトルを有しているものと推測する。結果として、各サブブロックは、関連コスト値を生成するための探索を含む。
【００６５】
[0077]  ノード５１８において、候補ブロックは、図８で示されたもののような高複雑度探索に従って、サブブロック予測子値を使用して再度探索される。高複雑度探索において、全てのサブブロックが異なる候補ブロックを探索することができ、１つのサブブロックの探索は、優先のサブブロック探索（例えば、ラスタ走査順序で）が実行された後にのみ開始されることができる。
【００６６】
[0078]  以下の表１は、本明細書で説明され、図６、７、及び８に示される３つの探索を要約したものである。  
【表１】
2015520581.tif 000003
【００６７】
[0078]  当業者によって理解されるように、探索されるべき画像に基づき、異なるブロックサイズに対し異なる数の探索を用いて、様々な探索スキームが考え出され（devise）及び／又は使用され得ることに留意されたい。例えば、より大きいフレームサイズ及びより高いフレームレート（例えば、閾値を上回る）の場合、図６に関して説明されたもののようなより多くの探索が実行され得る。より小さいフレームサイズ及びより低いフレームレート（例えば、閾値を下回る）の場合、図７及び８に関して説明されたもののようなより多くの探索が実行され得る。幾つかの態様では、ビデオの候補ブロックを探索するために多数の探索スキームが使用される場合、より低いサイクルカウントコストでより高いレベルの性能を得るために、低複雑度探索から生成された絶対差分値和が、より高い複雑度探索からのより正確な動きベクトルコストとともに再使用され得る。
【００６８】
[0080]  図９は、候補ブロックを探索するための例示的なプロセス９００のフローチャートを示す。探索するためのプロセスは、ソースデバイス１２のような、本明細書で説明されたデバイスのうちの１つ以上によって実行され得る。当業者によって及び本開示の教示によって理解されるように、プロセス９００で説明される様々なステップが示されたものとは異なる順序で実行され得ること、及び／又は、幾つかのステップが追加又は除去され得ることに留意されたい。
【００６９】
[0081]  ノード９０２において、ビデオ画像について探索されるべき候補ブロックの数が設定／調節される。探索されるべき候補ブロックの数は、所望の符号化時間を達成するために、例えば、ビデオ画像（例えば、フレームサイズ、フレームレート、等）の形式に基づいて設定され得る。候補ブロックのうちの少なくとも１つは、ビデオデータの別のフレームのブロックに対応する（例えば、整合する）。整合は、必ずしも、等しいことを示す必要はないが、所与の候補ブロックが、動き推定が実行されているブロックに対応する可能性が最も高いブロックであることを示し得る。
【００７０】
[0082]  ノード９０４において、探索すべき候補ブロックのうちの１つ以上が、候補ブロック間の距離に基づいて選択される。上述されたように、幾つかの候補ブロックは、近くの候補ブロックが探索から除外され得る以前に探索された候補ブロックの十分近くに位置付けされ得る。例えば、特定のブロックは、他のブロックへの空間類似性により探索されないため、候補ブロックとして除去され得る。
【００７１】
[0083]  ノード９０６において、候補ブロックを探索するための方法は、ビデオデータの形式に基づいて選択される。方法は、図６、７、及び８に関して説明された探索のうちの１つ以上を含み得る。
【００７２】
[0084]  ノード９０８において、選択された方法及び選択された候補ブロックに基づいて、ブロックについて動きが推定される。
【００７３】
[0085]  図１０は、動き推定を実行するための装置のブロック図を示す。装置１０００は、動き推定を実行するためにデバイスに含まれ得る特徴のうちのほんの幾つかを示す。デバイス１０００は、候補カウント生成器１００５、候補セレクタ１０１０、探索方法セレクタ１０１５、及び動き推定器１０２０を含む。
【００７４】
[0086]  候補カウント生成器１００５は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するように構成される。候補カウント生成器１００５は、プロセッサ、メモリ、フレームレート検出器、フレームサイズ検出器、及びビデオ符号化方法検出器のうちの１つ以上を含み得る。幾つかの実現において、候補ブロックの数を識別するための手段は、候補カウント生成器１００５を含み得る。
【００７５】
[0087]  候補セレクタ１０１０は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの１つ以上を選択するように構成される。候補セレクタ１０１０は、プロセッサ、メモリ、及び比較器（例えば、ブロック比較器）のうちの１つ以上を含み得る。幾つかの実現において、候補ブロックのうちの１つ以上を選択するための手段は、候補セレクタ１０１０を含む。
【００７６】
[0088]  探索方法セレクタ１０１５は、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するように構成される。探索方法セレクタ１０１５は、プロセッサ、メモリ、比較器、フレームレート検出器、フレームサイズ検出器、及びビデオ形式検出器のうちの１つ以上を含み得る。探索するための方法を選択するための手段は、幾つかの実現において、探索方法セレクタ１０１５を含み得る。
【００７７】
[0089]  動き推定器１０２０は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定するように構成される。動き推定器１０２０は、プロセッサ、メモリ、比較器、算術演算ユニット、差分エンジン（例えば、絶対差分値和エンジン）、及び、生成された動きベクトルを送信するように構成された送信機のうちの１つ以上を含み得る。選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定するための手段は、幾つかの実現において、動き推定器１０２０を含み得る。
【００７８】
[0090]  図１１は、候補動き推定プロセッサを含む動き推定ユニットのブロック図を示す。候補動き推定プロセッサ１１０２は、図１０で示され説明された装置１０００に類似し得る。動き推定ユニット３２は、上述されたように現在のビデオブロック３０を取得する。現在のビデオブロック３０は、候補動きベクトル（ＭＶ）プロセッサ１１０２に提供される。例えば、ピクセルフェッチ１１０４は、現在のビデオブロック３０を構文解析し、それらに含まれるピクセル値を提供するように構成され得る。候補動きベクトルプロセッサ１１０２は、現在のビデオブロック３０に対応するビデオデータの一部について候補ブロックを探索するように構成される。このプロセスは、例えば、図５及び９において、上述される。候補動きベクトルプロセッサ１１０２はまた、予測子１１０６を受信し得る。予測子は、図４Ａに関して説明されたように、空間、時間、及び／又はサブサンプルリングされた予測子を含み得る。
【００７９】
[0091]  候補動きベクトルプロセッサ１１０２は、探索されるべき候補ブロックを識別する動きベクトル値を提供する。示される候補動きベクトルプロセッサ１１０２は、動きベクトル（ＭＶ）コスト算出器１１０８に結合される。動きベクトル（ＭＶ）コスト算出器１１０８は、ビデオデータの一部に関連付けられたコスト値を生成するように構成される。これらのコストは、絶対差分値和／コスト評価器１１１０に提供され得る。絶対差分値和／コスト評価器１１１０は、複数の算出されたコストのうちのどれが、ビデオデータの所与の部分について最もあり得そうであるか（例えば整合であるか）を識別するように構成され得る。絶対差分値和／コスト評価器１１１０はまた、現在のビデオブロックと、候補動きベクトルプロセッサ１１０２によって現在のビデオブロック３０についての最も近い整合として識別された候補ブロックとに基づいて、現在のビデオブロック３０について動き推定値１１１２を生成するように構成され得る。動き推定値１１１２は、上述されたような更なる符号化プロセスに使用され得る。例えば、動き推定値は、部分的な探索に使用され得る。
【００８０】
[0092]  動き推定ユニット３２がより少ない数の要素又は追加の要素を含みうることは理解されるであろう。説明の明確さを提供するために、ビデオ符号化のためのプログラマブル及びスケーラブルな整数探索に関連した機能を含む動き推定ユニット３２が示される。
【００８１】
[0093]  図１２は、候補ブロックの効率的な探索のプロセス図を示す。示されるプロセスは、候補ブロックの順序付けが前もって決定されているものと想定する。しかしながら、幾つかの実現では、候補ブロックの順序付けはまた、例えば、入力されたビデオデータに基づいて動的に生成され得る。
【００８２】
[0094]  ノード１２０２において、除外距離閾値(exclusion distance threshold)が取得される。除外距離閾値は、ｘ距離値及びｙ距離値として提供され得る。幾つかの実現において、同一の除外距離閾値がｘ距離値及びｙ距離値として使用され得る。例として、除外距離閾値は、８であり得る。
【００８３】
[0095]  ノード１２０４において、それぞれ図６、７、及び８について説明された探索スキームを使用して探索すべき候補ブロックの所望の数に対応する値ＮＭ１、ＮＭ２、及びＮＭ３が取得される。これらの値は、例えば、メモリ（例えば、ユーザによって設定された選好／構成）から取得されうるか、或いは、ビデオデータを符号化するために使用されたコード化スキームに基づいて自動的に取得され得る。候補ブロックの数の和は、候補ブロック順序付けにおける候補ブロックの総数を超えるべきではない。そのため、候補ブロックの数は、対応する方法によって探索されることとなる順序付けにおける候補ブロックの範囲に対応し得る。例えば、２０個の候補ブロックが特定の探索に対して使用される場合、ＮＭ１は１０であり得、ＮＭ２は４であり得、ＮＭ３は１であり得る。このような構成において、１０に満たない数の候補ブロックが粗粒方法(coarse grained method)を使用して探索され、４に満たない数の候補ブロックが中粒方法(medium grained method)を使用して探索され、１に満たない数の候補ブロックが細粒方法(fine grained method)を使用して探索されるだろう。
【００８４】
[0096]  ノード１２０６において、最初の探索は、関心点について実行される。関心点は、一般に、プロセスが整合を見つけようと試みている現在のブロックに整合する可能性のある位置に位置付けられた最初の候補ブロックに対応する。ノード１２０６の探索は、例えば、低複雑度探索に基づいた粗粒探索（coarse grained search）である。粗粒探索は、図６に関して上述されたものに類似し得る。
【００８５】
[0097]  ノード１２０８において、粗粒探索は、関心点の候補ブロックからのオフセットに位置付けられた候補ブロックについて実行され得る。オフセットは、上述されたようなグローバル動きオフセットであり得る。グローバルオフセットが存在しないか、又は、オフセット結果の適用が、ノード１０２６における、関心点について探索された同一の候補ブロックに帰着した場合、ノード１０２８での探索は、省略され得る。
【００８６】
[0098]  関心点の候補ブロック及び起こりうる任意のオフセットを高いレベルで探索し、その後、プロセスは、後続の候補ブロックの処理を始める。後続の候補ブロックの各々を探索する前に、別の候補ブロックまで距離閾値内に位置付けられている候補ブロックを除去するために後続の候補ブロックのリストが削られ得る（purned）。
【００８７】
[0099]  ノード１２１０において、候補ブロックの粗粒探索の数についてのカウンタが初期化される。サブプロセス１２１２は、順序付けに含まれる候補ブロックの一部について実行される。例として、順序付けにおける候補ブロックの数が２０であり、ＮＭ１が１０であり、ＮＭ２が４であり、ＮＭ３が１である場合、示されるサブプロセス１２１２は、候補ブロック５〜２０について実行され得る。
【００８８】
[0100]  決定ノード１２１４において、現在の候補ブロックが使用中であるか否かが決定される。現在の候補ブロックは、サブプロセス１２１２のために識別された複数の候補ブロックの一部のうちの１つの候補ブロックに対応する。決定は、候補ブロックに関連付けられたメモリ内のフラグ値に基づき得る。候補ブロックが使用中でない場合、プロセスは、以下で説明されるようなサブプロセス１２２０に進む。候補ブロックが探索から除外されていない（例えば、使用中である）場合、プロセスは、決定ノード１２１６に進む。
【００８９】
[0101]  決定ノード１２１６において、現在の候補ブロックの現在の距離が閾値距離内であるか否かについて決定がなされる。例えば、決定は、現在の候補ブロックについてのｘ動きベクトル値がｘ距離閾値未満か否かを識別し得る。決定は、複合物であり得、これによって、ｘ及びｙの両方の距離が比較される。幾つかの実現では、１つの比較（例えば、ｘだけ又はｙだけ）を満たすことが、決定を提供するのに十分であり得る。
【００９０】
[0102]  現在の候補が閾値距離内である場合、現在の候補ブロックは、探索されないそのような短い距離を動いたと考えられ得る。ノード１２１８において、現在の候補ブロックは、更なる探索から除外される。上述されたように、現在の候補ブロックに関連付けられたフラグは、候補ブロックが更なる探索から除外されるべきであることを示す値に設定され得る。現在の候補ブロックが閾値距離外である場合、現在の候補ブロックは、未だ、推定段階にあるブロックについての可能な整合に対して考えられ得る。
【００９１】
[0103]  閾値に対する現在の候補ブロックの動きをチェックし、サブプロセス１２２０は、後続の候補ブロックの何れかが探索から除外され得るか否かを決定するために、後続の候補ブロック（例えば、順序的に現在の候補ブロックの後に現れる候補ブロック）の各々と現在の候補ブロックを比較するために提供される。この除外はまた、現在の候補ブロックと後続のブロックとの間の距離（例えば、距離閾値）に基づき得る。
【００９２】
[0104]  サブプロセス１２２０は、現在の候補ブロックの後に現れる、順序付けにおける各候補ブロックについて実行される。例として、順序付けにおける候補ブロックの数が２０であり、ＮＭ１が１０であり、ＮＭ２が４であり、ＮＭ３が１であり、現在の候補ブロックのインデックスが５である場合、示されるサブプロセス１２２０は、候補ブロック６〜２０について実行され得る。
【００９３】
[0105]  サブプロセス１２２０は、決定ノード１２２２を含む。決定ノード１２２２は、処理されるべき後続の候補が存在するか否かを決定する。決定ノード１２２２において、現在の候補ブロックの後の更なる候補ブロックが何れも利用可能でないと決定されると、サブプロセス１２２０は終了する。プロセスは、以下でより詳細に説明されるようなノード１２２８に進む。
【００９４】
[0106]  決定ノード１２２２に戻り、後続の候補ブロックが存在する場合、現在の候補ブロックと、サブプロセス１２２０によって処理されている後続の候補ブロックとの間の差分が、決定ノード１２２４において閾値距離と比較される。幾つかの実現において、これは、２つのブロックについてのｘ及び／又はｙ動き値の間の差分の絶対値をとることを含み得る。
【００９５】
[0107]  距離が閾値内であると決定されると、ノード１２２６において、後続の候補ブロックは、更なる探索から除外される。上述されたように、処理されている後続の候補ブロックに関連付けられたフラグは、候補ブロックが更なる探索から除外されるべきであることを示す値に設定され得る。決定ノード１２２４において、後続の候補ブロックと現在の候補ブロックとの間の距離が閾値外であると決定されると、後続の候補ブロックは、使用中のままとなり、プロセスは、上述されたような決定ノード１２２２に戻る。
【００９６】
[0108]  一度サブプロセス１２２０が後続の候補ブロックの各々を処理すると、決定ノード１２２８において、現在の候補ブロックが未だ使用中であるか否かについての決定がなされる。この優先処理は、現在の候補ブロックがもはや使用中でないことを、その動き情報又は他の候補ブロックとの比較動きに基づいて示している可能性がある。現在の候補ブロックがもはや使用中でない場合、プロセスは、以下で説明されるようなノード１２３６に進む。現在の候補ブロックが未だ使用中である場合、ノード１２３０において、現在の候補ブロックのサブブロックについての動き値が取得される。例えば、動き値を生成するために、絶対差分値和エンジンが使用され得る。ノード１２３２において、粗粒探索カウンタが増分される。決定ノード１２３４において、カウンタが、中粒探索（medium grained search）に関連付けられた候補ブロックの数（ＮＭ２）を超えると、プロセスは、更なる処理を省略し、以下で更に詳しく説明されるようなノード１２４２に進む。
【００９７】
[0109]  カウンタがＮＭ２を超えない場合、プロセスは、決定ノード１２３６に進む。候補ブロック順序が追加の候補ブロックを含む場合、現在の候補ブロックは、その順序において次の候補ブロックに設定される。その後、サブプロセス１２１２は、上述されたような決定ノード１２１４に戻る。候補ブロック順序リストがサブプロセス１２１２によって完全に処理されると、サブプロセス１２１２は終了し、プロセスは、ノード１２４０に進む。
【００９８】
[0110]  ノード１２４０では、除外されていない候補は、特定の数の粗粒探索が実行されるまで順序を下げ続けて、探索される。ノード１２４２では、除外されていない候補は、現在推定段階にあるブロックへの可能な整合について、推定段階にあるブロックについての可能な整合が、探索される。中粒探索は一般に、探索のために共通サブブロックレベル予測子の使用を指す。ノード１２４２での探索は、図７に関して示され説明された探索に準拠し得る。
【００９９】
[0111]  ノード１２４４において、除外されていない候補は、細粒探索（fine grained search）を使用して探索される。細粒探索は、一般に、候補ブロックの各サブブロックについて予測子が使用される探索を指す。ノード１２４４での探索は、図８に関して示され説明された探索に準拠し得る。
【０１００】
[0112]  説明された動き推定の実験的な実現は、動き推定を実行する既存のエンコーダに対する幾つかの改善をもたらした。表２は、共通参照エンコーダ(common reference encoder)と比較して、エンコーダについての平均ビットレート損失の例を提示する。他のエンコーダと比較してのビッドレート損失の改善は、開示された態様の効率性の単なる１つの非限定的な測定値である。  
【表２】
2015520581.tif 000004
【０１０１】
[0113]  本明細書において使用される場合、「決定する」又は「決定すること」という用語は、幅広い動作を包含する。例えば、「決定すること」は、算出すること、計算すること、処理すること、導出すること、調べること、ルックアップすること（例えば、表、データベース、又は、別のデータ構造をルックアップすること）、確認すること、等を含み得る。また、「決定すること」は、受信すること（例えば、情報を受信すること）、アクセスすること（例えば、メモリ内のデータにアクセスすること）、等を含み得る。更に、「決定すること」は、解決すること、選択すること、選ぶこと、確立すること、等を含み得る。
【０１０２】
[0114]  本明細書において使用される場合、「提供する」又は「提供すること」という用語は、幅広い動作を包含する。例えば、「提供すること」は、後続の検索のためにロケーションに値を記憶すること、値を直接受信側に送信すること、値への参照を送信又は記憶すること、等を含み得る。「提供すること」はまた、符号化すること、復号すること、暗号化すること、暗号解除すること、立証すること、検証すること、等を含み得る。
【０１０３】
[0115]  本明細書で使用される場合、項目のリスト「のうちの少なくとも１つ」に関する表現は、単一のメンバを含む、それらの項目の任意の組み合わせを指す。例として、「ａ、ｂ、又はｃのうちの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、及びａ−ｂ−ｃをカバーすることが意図される。
【０１０４】
[0116]  当業者は、情報及び信号が、様々な異なる技術及び技法の何れかを使用して表され得ることを理解するだろう。例えば、上記説明の全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁性粒子、光場又は光粒子、或いはこれらの任意の組み合わせによって表され得る。
【０１０５】
[0117]  当業者は、本明細書に開示された実施形態に関連して説明された様々な実例となる論理ブロック、モジュール、回路、及びアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実現され得ることを更に認識するであろう。このハードウェア及びソフトウェアの互換性を明確に示すために、様々な実例となる構成要素、ブロック、モジュール、回路、及びステップが、概ねそれらの機能の観点から上記で説明されている。このような機能が、ハードウェアとして実現されるかソフトウェアとして実現されるかは、特定のアプリケーション及びシステム全体に課せられる設計制約に依存する。当業者は、特定アプリケーションごとに、上で説明された機能を様々な方法で実現することができるが、このような実現の決定は本発明の範囲からの逸脱の原因になるとして解釈されるべきではない。
【０１０６】
[0118]  本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実現され得る。そのような技法は、ワイヤレス通信デバイスハンドセット及び他のデバイスへの適用を含む多数の用途を有する汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又は集積回路デバイスのような様々なデバイスの何れかで実現され得る。モジュール又は構成要素として説明された任意の特徴は、統合論理デバイスでまとめて実現されるか、又は、離散的でありながらも相互作用可能な論理デバイスとして別々に実現され得る。ソフトウェアで実現された場合、本技法は少なくとも一部が、実行されると、上述された方法のうちの１つ以上を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得る。コンピュータ可読データ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ（ＳＳＤＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気又は光学データ記憶媒体、等のランダムアクセスメモリ（ＲＡＭ）のようなメモリ又はデータ記憶媒体を備え得る。コンピュータ可読媒体は、非一時的な記憶媒体であり得る。追加的に又は代替的に、本技法は少なくとも一部が、伝播信号又は波形のような、命令又はデータ構造の形式でプログラムコードを搬送又は通信し、且つ、コンピュータによってアクセス、読取、及び／又は実行可能なコンピュータ可読通信媒体によって実現され得る。
【０１０７】
[0119]  プログラムコードは、１つ以上のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は、他の同等な集積又はディスクリートな論理回路、のような１つ以上のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法の何れかを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、このプロセッサは、任意の従来型のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つ以上のマイクロプロセッサ、又は任意のそのような他の構成との組み合わせとして実現され得る。結果として、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造、前述の構造の任意の組み合わせ、又は本明細書で説明された技法の実現に適したその他の構造又は装置を指し得る。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用ソフトウェアモジュール又はハードウェアモジュール内で提供されうるか、或いは複合ビデオエンコーダ／デコーダ（ＣＯＤＥＣ）に統合され得る。
【０１０８】
[0120]  本明細書に開示された方法は、説明された方法を達成するための１つ以上のステップ又は動作を備える。方法のステップ及び／又は動作は、本願の特許請求の範囲から逸脱せずに、互いに交換可能であり得る。換言すると、ステップ又は動作の特定の順序が明記されていない限り、特定のステップ及び／又は動作の順序及び／又は使用は、本願の特許請求の範囲から逸脱することなく変更され得る。
【０１０９】
[0121]  本発明の様々な実施形態が説明されている。これらの実施形態及び他の実施形態は、以下の特許請求の範囲の範囲内にある。
【図１】
2015520581.tif 000005
【図２】
2015520581.tif 000006
【図３】
2015520581.tif 000007
【図４Ａ】
2015520581.tif 000008
【図４Ｂ】
2015520581.tif 000009
【図５】
2015520581.tif 000010
【図６】
2015520581.tif 000011
【図７】
2015520581.tif 000012
【図８】
2015520581.tif 000013
【図９】
2015520581.tif 000014
【図１０】
2015520581.tif 000015
【図１１】
2015520581.tif 000016
【図１２Ａ】
2015520581.tif 000017
【図１２Ｂ】
2015520581.tif 000018
【手続補正書】
【提出日】平成27年1月27日(2015.1.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別し、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
探索すべき候補ブロックのセットを選択し、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも１つの候補ブロックを含む、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択し、
選択された前記候補ブロックから推定ブロックを識別し、ここで、前記識別は、選択された前記複雑度レベルの探索方法に従って実行される、
前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定する
ように構成されたプロセッサ
を備える装置。
【請求項２】
前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、請求項１に記載の装置。
【請求項３】
前記候補ブロックのセットの前記サイズは、所望の符号化時間に基づいて識別される、請求項１又は２のうちの何れか１項に記載の装置。
【請求項４】
前記候補ブロックのセットの前記サイズは、前記ビデオデータの前記形式に基づいて識別される、請求項１乃至３のうちの何れか１項に記載の装置。
【請求項５】
前記ビデオデータの前記形式は、前記ビデオデータの前記フレームのサイズ及びフレームレートのうちの少なくとも１つを備える、請求項１乃至４のうちの何れか１項に記載の装置。
【請求項６】
前記候補ブロックのセットの前記サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項５に記載の装置。
【請求項７】
前記候補ブロックのセットの前記サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、請求項６に記載の装置。
【請求項８】
前記候補ブロックのセットの前記サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項５乃至７のうちの何れか１項に記載の装置。
【請求項９】
前記候補ブロックのセットの前記サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、請求項８に記載の装置。
【請求項１０】
前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合、探索すべき候補ブロックが選択される、請求項１乃至９のうちの何れか１項に記載の装置。
【請求項１１】
前記距離は、動き値を備える、請求項１０に記載の装置。
【請求項１２】
探索するための前記複雑度レベルを選択することは、前記フレームの前記サイズと、フレームサイズ閾値との比較に基づく、請求項１乃至１１のうちの何れか１項に記載の装置。
【請求項１３】
探索するための前記複雑度レベルを選択することは、前記フレームレートと、フレームレート閾値との比較に基づく、請求項１乃至１１のうちの何れか１項に記載の装置。
【請求項１４】
前記順序は、前記ビデオデータを符号化するために使用されるコード化スキームに基づいて設定される、請求項１乃至１３のうちの何れか１項に記載の装置。
【請求項１５】
動き推定を実行するための方法であって、
探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
探索すべき候補ブロックのセットを選択することと、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも１つの候補ブロックを含む、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択することと、
選択された前記候補ブロックから推定ブロックを識別することと、ここで、前記識別は、選択された前記複雑度レベルの探索方法に従って実行される、
前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を備える方法。
【請求項１６】
プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、請求項１５に記載の方法。
【請求項１７】
前記候補ブロックのセットの前記サイズは、所望の符号化時間に基づいて識別される、請求項１５又は１６のうちの何れか１項に記載の方法。
【請求項１８】
前記候補ブロックのセットの前記サイズは、前記ビデオデータの前記形式に基づいて識別される、請求項１５乃至１７のうちの何れか１項に記載の方法。
【請求項１９】
前記ビデオデータの前記形式は、前記ビデオデータのフレームのサイズ及びフレームレートのうちの少なくとも１つを備える、請求項１５乃至１８のうちの何れか１項に記載の方法。
【請求項２０】
前記候補ブロックのセットの前記サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項１９に記載の方法。
【請求項２１】
前記候補ブロックのセットの前記サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、請求項２０に記載の方法。
【請求項２２】
前記候補ブロックのセットの前記サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項１９乃至２１のうちの何れか１項に記載の方法。
【請求項２３】
前記候補ブロックのセットの前記サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、請求項２２に記載の方法。
【請求項２４】
前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合に、探索すべき候補ブロックが選択される、請求項１５乃至２３のうちの何れか一項に記載の方法。
【請求項２５】
前記距離は、動き値を備える、請求項２４に記載の方法。
【請求項２６】
探索するための前記複雑度レベルを選択することは、前記フレームの前記サイズと、フレームサイズ閾値との比較に基づく、請求項１５乃至２５のうちの何れか一項に記載の方法。
【請求項２７】
探索するための前記複雑度レベルを選択することは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項２６に記載の方法。
【請求項２８】
前記順序は、前記ビデオデータを符号化するために使用されたコード化スキームに基づいて設定される、請求項１５乃至２７のうちの何れか１項に記載の方法。
【請求項２９】
動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別するための手段と、
探索すべき候補ブロックのセットを選択するための手段と、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも１つの候補ブロックを含む、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択するための手段と、
選択された前記候補ブロックから推定ブロックを識別するため、及び、前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定するための手段と、ここで、前記識別は、選択された前記複雑度レベルの探索方法に従って実行される、
を備える装置。
【請求項３０】
命令を備えたコンピュータ可読記憶媒体であって、前記命令は、
探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
探索すべき候補ブロックのセットを選択することと、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも１つの候補ブロックを含む、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択することと、
選択された前記候補ブロックから推定ブロックを識別することと、ここで、前記識別は、選択された前記複雑度レベルの探索方法に従って実行される、
前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を装置に行わせる、コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０９
【補正方法】変更
【補正の内容】
【０１０９】
[0121]  本発明の様々な実施形態が説明されている。これらの実施形態及び他の実施形態は、以下の特許請求の範囲の範囲内にある。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別し、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択し、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択し、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定する
ように構成されたプロセッサ
を備える装置。
［Ｃ２］  前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、Ｃ１に記載の装置。
［Ｃ３］  前記候補ブロックの数は、所望の符号化時間に基づいて識別される、Ｃ１又は２のうちの何れか１項に記載の装置。
［Ｃ４］  前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、Ｃ１乃至３のうちの何れか１項に記載の装置。
［Ｃ５］  前記ビデオデータの前記形式は、前記ビデオデータの前記フレームのサイズ及びフレームレートのうちの少なくとも１つを備える、Ｃ１乃至４のうちの何れか１項に記載の装置。
［Ｃ６］  前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、Ｃ５に記載の装置。
［Ｃ７］  前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、Ｃ６に記載の装置。
［Ｃ８］  前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、Ｃ５乃至７のうちの何れか１項に記載の装置。
［Ｃ９］  前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、Ｃ８に記載の装置。
［Ｃ１０］  前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合、探索すべき候補ブロックが選択される、Ｃ１乃至９のうちの何れか１項に記載の装置。
［Ｃ１１］  前記距離は、動き値を備える、Ｃ１０に記載の装置。
［Ｃ１２］  探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
前記識別されたブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの１つから前記方法を選択することと
を備える、Ｃ１乃至１１のうちの何れか１項に記載の装置。
［Ｃ１３］  前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、Ｃ１２に記載の装置。
［Ｃ１４］  前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、Ｃ１３に記載の装置。
［Ｃ１５］  前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、Ｃ１２乃至１４のうちの何れか１項に記載の装置。
［Ｃ１６］  前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、Ｃ１５に記載の装置。
［Ｃ１７］  前記順序は、前記ビデオデータを符号化するために使用されるコード化スキームに基づいて設定される、Ｃ１乃至１６のうちの何れか１項に記載の装置。
［Ｃ１８］  動き推定を実行するための方法であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を備える方法。
［Ｃ１９］  前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、Ｃ１８に記載の方法。
［Ｃ２０］  前記候補ブロックの数は、所望の符号化時間に基づいて識別される、Ｃ１８又は１９のうちの何れか１項に記載の方法。
［Ｃ２１］  前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、Ｃ１８乃至２０のうちの何れか１項に記載の方法。
［Ｃ２２］  前記ビデオデータの前記形式は、前記ビデオデータのフレームのサイズ及びフレームレートのうちの少なくとも１つを備える、Ｃ１８乃至２１のうちの何れか１項に記載の方法。
［Ｃ２３］  前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、Ｃ２２に記載の方法。
［Ｃ２４］  前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、Ｃ２３に記載の方法。
［Ｃ２５］  前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、Ｃ２２乃至２４のうちの何れか１項に記載の方法。
［Ｃ２６］  前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、Ｃ２５に記載の方法。
［Ｃ２７］  前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合に、探索すべき候補ブロックが選択される、Ｃ１８乃至２６のうちの何れか一項に記載の方法。
［Ｃ２８］  前記距離は、動き値を備える、Ｃ２７に記載の方法。
［Ｃ２９］  探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
識別された前記ブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの１つから前記方法を選択することと
を備える、Ｃ１８乃至２８のうちの何れか一項に記載の方法。
［Ｃ３０］  前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、Ｃ２９に記載の方法。
［Ｃ３１］  前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、Ｃ３０に記載の方法。
［Ｃ３２］  前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、Ｃ２９に記載の方法。
［Ｃ３３］  前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、Ｃ３２に記載の方法。
［Ｃ３４］  前記順序は、前記ビデオデータを符号化するために使用されたコード化スキームに基づいて設定される、Ｃ１８乃至３３のうちの何れか１項に記載の方法。
［Ｃ３５］  動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別するための手段と、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択するための手段と、
前記ビデオデータの形式に基づいて、前記選択された候補ブロックを探索するための方法を選択するための手段と、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定するための手段と
を備える装置。
［Ｃ３６］  命令を備えたコンピュータ可読記憶媒体であって、前記命令は、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも１つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの１つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を装置に行わせる、コンピュータ可読記憶媒体。
【国際調査報告】
2015520581.tif 000019
2015520581.tif 000020