(57)【特許請求の範囲】
【請求項１】
複数のピクチャを含むビデオデータを符号化する方法であって、
予測ユニットを生成するために前記複数のピクチャのうちの1つのピクチャのブロックに対してイントラピクチャ予測を実行するステップであって、
イントラブロックコピー予測に関する、コーディングツリーユニット(CTU)からの参照ブロックを選択するステップであって、前記参照ブロックが複数の予測ブロックから選択され、双予測を用いて符号化された前記CTUからの予測ブロックは、双予測を用いて符号化された前記ブロックのサイズがしきい値に満たないときに前記参照ブロックとしての選択から除外される、選択するステップと、
前記予測ユニットを生成するために前記選択された参照ブロックを用いてイントラブロックコピー予測を実行するステップと
を含む、実行するステップと、
前記実行されたイントラピクチャ予測に基づいて前記予測ユニットを符号化するシンタックス要素を生成するステップと
を含む、方法。
【請求項２】
インター予測を用いて符号化された前記複数のブロックが、前記CTUからのさらなるブロックを符号化するための前記参照ブロックとしての選択から除外される、請求項1に記載の方法。
【請求項３】
インター予測を用いて符号化されたブロックのサイズがしきい値に満たないとき、インター予測を用いて符号化された前記ブロックが前記参照ブロックとしての選択から除外される、請求項2に記載の方法。
【請求項４】
代理参照ブロックがパディング方式を使用して生成され、前記イントラブロックコピー予測を実行するステップが、前記代理参照ブロックを前記選択された参照ブロックとして使用するステップを含む、請求項1に記載の方法。
【請求項５】
前記CTUが双予測を用いて生成された予測ブロックを有するかどうかを決定するステップであって、前記CTUからの特定のブロックが、前記CTUが双予測を用いて生成された前記予測ブロックを有することに少なくとも部分的に応じて、前記参照ブロックとしての選択から除外される、決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記CTUに関する予測サンプルの量を生成するステップであって、予測サンプルの前記量が双予測によって生成される、生成するステップと、
前記CTUからの、双予測を用いて符号化されたブロックのサイズを決定するステップであって、
前記CTUが、サンプルしきい値を超える、双予測を用いて生成された予測サンプルの量を有すること、
双予測を用いて符号化された前記ブロックの前記サイズがサイズしきい値に満たないこと、および
前記CTUが、前記サンプルしきい値を超える、双予測を用いて生成された予測サンプルの量を有し、双予測を用いて符号化された前記ブロックの前記サイズが前記サイズしきい値に満たないこと
のうちの少なくとも1つまたは複数に応じて、
双予測を用いて符号化された前記ブロックが前記参照ブロックとしての選択から除外される、決定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
1つまたは複数のブロックに関する適応動きベクトル解像度(AMVR)を実行するステップと、
双予測を用いて符号化された前記CTUからのブロックのサイズを決定するステップであって、
双予測を用いて符号化された前記ブロックの前記サイズがサイズしきい値に満たないことと、
前記AMVRが双予測を用いて符号化された前記ブロックに関して無効化されているという表示を受信すること
の両方の組合せに少なくとも部分的に応じて、双予測を用いて符号化された前記ブロックが前記参照ブロックとしての選択から除外される、決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
前記組合せが、異なる参照ユニットおよび異なる動きベクトルのうちの少なくとも1つを有する、双予測を用いて符号化された前記ブロックをさらに含む、請求項7に記載の方法。
【請求項９】
インター予測を使用して符号化された前記複数のブロックを含む探索エリアを決定するステップであって、前記探索エリアが、
ピクチャタイプ、
スライスタイプ、および
区分サイズ
のうちの少なくとも1つに部分的に基づいて決定される、決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項１０】
複数のピクチャを含むビデオデータを符号化するための装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサとを含み、前記プロセッサが、
予測ユニットを生成するために前記複数のピクチャのうちの1つのピクチャのブロックに対してイントラピクチャ予測を実行することであって、
イントラブロックコピー予測に関する、コーディングツリーユニット(CTU)からの参照ブロックを選択することであって、前記参照ブロックが前記CTUからの複数の予測ブロックから選択され、双予測を用いて符号化された前記CTU内の予測ブロックは、双予測を用いて符号化された前記ブロックのサイズがしきい値に満たないときに前記参照ブロックとしての選択から除外される、選択することと、
前記予測ユニットを生成するために前記選択された参照ブロックを用いてイントラブロックコピー予測を実行することと
を含む、実行することと、
前記実行されたイントラピクチャ予測に基づいて前記予測ユニットを符号化するシンタックス要素を生成することと
を行うように構成される、装置。
【請求項１１】
インター予測を用いて符号化された前記複数のブロックが、前記CTUからのさらなるブロックを符号化するための前記参照ブロックとしての選択から除外される、請求項10に記載の装置。
【請求項１２】
前記イントラピクチャ予測を実行することが、パディング方式を使用して代理参照ブロックを生成することをさらに含み、前記イントラブロックコピー予測を実行することが、前記代理参照ブロックを前記選択された参照ブロックとして使用することを含む、請求項10に記載の装置。
【請求項１３】
プロセッサによって実行されるとき、前記プロセッサに、請求項1から9のいずれか一項に記載の方法を実行させる命令を記憶したエンコーダのコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、ビデオコーディングに関し、より詳細には、イントラブロックコピーのための技法およびシステムに関する。
【背景技術】
【０００２】
多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすために大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを備えた最高品質のビデオを要望する。結果として、これらの需要を満たすために必要とされる大量のビデオデータは、通信ネットワークおよびビデオデータを処理および記憶するデバイスに負担をかける。
【０００３】
ビデオデータを圧縮するために、様々なビデオコーディング技法が使用され得る。ビデオコーディングは、1つまたは複数のビデオコーディング規格に従って実行される。たとえば、ビデオコーディング規格は、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、ムービングピクチャエキスパーツグループ(MPEG)コーディングなどを含む。ビデオコーディングは、概して、ビデオ画像またはシーケンス内に存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオコーディング技法の重要な目標は、ビデオ品質に対する劣化を回避するかまたは最小限に抑えながら、より低いビットレートを使用する形態にビデオデータを圧縮することである。たえず発展するビデオサービスが利用可能になるとともに、より良好なコーディング効率を備えた符号化技法が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００４】
いくつかの実施形態では、イントラブロックコピーを実行するための技法およびシステムについて説明する。いくつかの例では、イントラブロックコピー予測が有効化されるとき、1つまたは複数の予測技法にいくつかの制限を加えることができる。たとえば、イントラブロックコピー予測技法が実行されるとき、1つまたは複数の予測技法を無効化することができる。別の例では、予測ブロックサイズがブロックサイズ以下であるとき、1つまたは複数の予測技法を無効化することができる。予測技法の使用を制御するための他の例についても本明細書で説明する。
【０００５】
いくつかの実施形態では、イントラブロックコピー予測技法に関して使用するための参照ブロックを選択的に決定するための技法およびシステムについて説明する。たとえば、イントラブロックコピー予測を実行するときに使用するための参照ブロックを選択するための技法は、イントラブロックコピー予測において使用することが考慮されるブロックからの双予測を使用して符号化されたブロックを除去することを決定し得る。本明細書では、イントラブロックコピー予測を実行するときに使用するための参照ブロックを選択的に決定するための他の例について説明する。
【０００６】
本明細書で論じる様々な態様および特徴に従ってイントラブロックコピー技法を実行することによって、メモリ帯域幅および/またはサイズ要件が低減される。
【０００７】
1つの発明的態様は、複数のピクチャを含むビデオデータを符号化する方法である。本方法は、予測ユニットを生成するためにピクチャのうちの1つのピクチャのブロックに対してイントラピクチャ予測を実行するステップを含む。イントラピクチャ予測を実行するステップは、コーディングツリーユニット(CTU)のイントラブロックコピー予測に関する参照ブロックを選択するステップであって、選択された参照ブロックが複数の符号化ブロックから選択され、双予測を用いて符号化されたCTU内のブロックが参照ブロックとしての選択から除外される、選択するステップを含む。イントラピクチャ予測を実行するステップはまた、予測ユニットを生成するために選択された参照ブロックを用いてイントラブロックコピー予測を実行するステップを含む。本方法はまた、実行されたイントラピクチャ予測に基づいて予測ユニットを符号化するシンタックス要素を生成するステップを含む。
【０００８】
別の発明的態様は、複数のピクチャを含むビデオデータを符号化するための装置である。本装置は、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含む。プロセッサは、予測ユニットを生成するためにピクチャのうちの1つのピクチャのブロックに対してイントラピクチャ予測を実行するように構成される。イントラピクチャ予測を実行するステップは、コーディングツリーユニット(CTU)のイントラブロックコピー予測のための参照ブロックを選択するステップであって、選択された参照ブロックが複数の符号化ブロックから選択され、双予測を用いて符号化されたCTU内のブロックが参照ブロックとしての選択から除外される、選択するステップを含む。イントラピクチャ予測を実行するステップは、予測ユニットのうちの1つを生成するために参照ブロックに対してイントラブロックコピー予測を実行するステップを含む。本プロセッサはまた、実行されたイントラピクチャ予測に基づいて予測ユニットを符号化するシンタックス要素を生成するように構成される。
【０００９】
別の発明的態様は、プロセッサによって実行されるとき、方法をプロセッサに実行させる命令を記憶しているエンコーダのコンピュータ可読媒体である。本方法は、予測ユニットを生成するためにピクチャのうちの1つのピクチャのブロックに対してイントラピクチャ予測を実行するステップを含む。イントラピクチャ予測を実行するステップは、コーディングツリーユニット(CTU)のイントラブロックコピー予測のための参照ブロックを選択するステップであって、選択された参照ブロックが複数の符号化ブロックから選択され、双予測を用いて符号化されたCTU内のブロックが参照ブロックとしての選択から除外される、選択するステップを含む。イントラピクチャ予測を実行するステップはまた、予測ユニットのうちの1つを生成するために参照ブロックに対してイントラブロックコピー予測を実行するステップを含む。本方法はまた、実行されたイントラピクチャ予測に基づいて予測ユニットを符号化するシンタックス要素を生成するステップを含む。
【００１０】
本概要は、特許請求の範囲の主題の主要な特徴または本質的特徴を識別することを目的とせず、特許請求の範囲を決定するために単独で使用されることを目的としない。本主題は、本特許の明細書、いずれのまたはすべての図面、および各請求項の適切な部分を参照することによって理解されよう。
【００１１】
以下の明細書、請求項、および添付の図面を参照すると、他の特徴および実施形態とともに、前述の説明がより明らかになるであろう。
【００１２】
以下の図面を参照して、本発明の例示的な実施形態について下で詳細に説明する。
【図面の簡単な説明】
【００１３】
【図１】いくつかの実施形態による、符号化デバイスおよび復号デバイスの一例を示すブロック図である。
【図２】イントラブロックコピープロセスを示すブロック図である。
【図３】分散ブロックベクトルを用いたイントラブロックコピープロセスを示すブロック図である。
【図４】複数のタイルにわたって分散されたブロックベクトルを用いたイントラブロックコピープロセスを示すブロック図である。
【図５】ビデオデータを符号化するプロセスの一実施形態を示す図である。
【図６】ビデオデータを復号するプロセスの一実施形態を示す図である。
【図７】ビデオデータを符号化するプロセスの一実施形態を示す図である。
【図８】いくつかの実施形態による、例示的なビデオエンコーダを示すブロック図である。
【図９】いくつかの実施形態による、例示的なビデオデコーダを示すブロック図である。
【発明を実施するための形態】
【００１４】
本開示のいくつかの態様および実施形態が以下で提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかは独立して適用可能であり、それらのうちのいくつかは組み合わせて適用可能である。以下の説明では、説明の目的で、本発明の実施形態を完全に理解できるように特定の詳細を記載する。しかしながら、様々な実施形態は、これらの具体的詳細がなくても実施され得ることは明らかであろう。図面および説明は限定的であることを目的としない。
【００１５】
次の説明は例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を限定することを目的としない。むしろ、例示的な実施形態の次の説明は、例示的な実施形態を実装するうえでの有用な説明を当業者にもたらす。添付の特許請求の範囲に記載した本発明の趣旨および範囲から逸脱することなく、要素の機能および構成に種々の変更を加えることができることを理解されたい。
【００１６】
実施形態を十分に理解してもらうために、以下の説明において具体的な詳細が与えられている。しかしながら、実施形態がこれらの具体的な詳細なしに実施される場合があることが、当業者によって理解されよう。たとえば、必要な詳細によって実施形態が不明瞭になることがないよう、回路、システム、ネットワーク、プロセス、および他の構成要素はブロック図で示すことができる。他の事例では、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技法は、無用に詳述することなく示される場合がある。
【００１７】
また、個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として描かれているプロセスとして説明することができることに留意されたい。フローチャートは、動作を逐次プロセスとして説明することができるが、動作の多くは、並列すなわち同時に実行することができる。さらに、動作の順序は並べ替えることができる。その動作が完了するときプロセスは終了するが、追加のステップは図面に含まれていない場合がある。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に相当する場合、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当し得る。
【００１８】
「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶するか、包むか、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データを記憶することができ、ワイヤレスでまたはワイヤード接続を介して伝搬する搬送波および/または過渡電子信号を含まない非一時的媒体を含み得る。非一時的媒体の例は、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を記憶している場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてもよく、転送されてもよく、または送信されてもよい。
【００１９】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)はコンピュータ可読または機械可読媒体内に記憶され得る。プロセッサが必要なタスクを実行する場合がある。
【００２０】
ビデオエンコーダおよびデコーダを使用したビデオコーディングのいくつかのシステムおよび方法について本明細書で説明する。たとえば、1つまたは複数のシステムおよび方法は、利用不可能なレイヤ、レイヤセット、および動作点、ならびにマルチレイヤビデオコーディングにおける表現フォーマットパラメータに対する制限の処理に関する。
【００２１】
より多くのデバイスおよびシステムがデジタルビデオデータを消費する能力を消費者に提供するにつれて、効率的なビデオコーディング技法の必要性がより重要になってきている。ビデオコーディングは、デジタルビデオデータ内に存在する大量のデータを処理するために必要な記憶および伝送要件を低減するために必要である。様々なビデオコーディング技法は、高いビデオ品質を維持しながら、より低いビットレートを使用する形態にビデオデータを圧縮するために使用され得る。
【００２２】
図1は、符号化デバイス104と復号デバイス112とを含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であってよく、復号デバイス112は受信デバイスの一部であってよい。ソースデバイスおよび/または受信デバイスは、モバイルまたは固定の電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または任意の他の適切な電子デバイスなどの電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明するコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョンブロードキャストまたは送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例を含めて、様々なマルチメディア適用例におけるビデオコーディングに適用可能である。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーム、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートすることができる。
【００２３】
符号化デバイス104(または、エンコーダ)は、符号化ビデオビットストリームを生成するためにビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用され得る。ビデオコーディング規格には、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、および、そのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含むITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)が含まれる。より最近のビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)の設計は、ITU-Tビデオコーディングエキスパーツグループ(VCEG)およびISO/IECムービングピクチャエキスパーツグループ(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって確定された。HEVCに対する様々な拡張は、マルチレイヤビデオコーディングに対応し、MV-HEVCと呼ばれる、HEVCに対するマルチビュー拡張、SHVCと呼ばれる、HEVCに対するスケーラブル拡張、または任意の他の適切なコーディングプロトコルを含めて、JCT-VCによってやはり開発されている。HEVC草案仕様書は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zipから入手可能である。MV-HEVCの作業草案は、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v5.zipから入手可能である。SHVCの作業草案は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zipから入手可能である。
【００２４】
本明細書で説明する多くの実施形態は、HEVC規格、またはその拡張を使用する例について説明する。しかしながら、本明細書で説明する技法およびシステムはまた、AVC、MPEG、その拡張、または他の適切なコーディング規格など、他のコーディング規格に適用可能であり得る。したがって、本明細書で説明する技法およびシステムは特定のビデオコーディング規格を参照して説明される場合があるが、その説明はその特定の規格だけに適用すると解釈されるべきでないことを当業者は諒解されよう。
【００２５】
ビデオソース102は、ビデオデータを符号化デバイス104に提供することができる。ビデオソース102は、ソースデバイスの一部であってよく、またはソースデバイス以外のデバイスの一部であってもよい。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラフォン、ビデオフォンなど)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の適切なビデオソースを含み得る。
【００２６】
ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス104のエンコーダエンジン106(または、エンコーダ)は、符号化ビデオビットストリームを生成するためにビデオデータを符号化する。HEVCビットストリームは、たとえば、ネットワークアブストラクションレイヤ(NAL)ユニットと呼ばれるデータユニットのシーケンスを含み得る。2つのクラスのNALユニットが、ビデオコーディング層(VCL)NALユニットと非VCL NALユニットとを含むHEVC規格に存在する。VCL NALユニットは、コード化ピクチャデータの(下で説明する)1つのスライスまたはスライスセグメントを含み、非VCL NALユニットは、複数のコード化ピクチャに関する制御情報を含む。コード化ピクチャに対応するコード化ピクチャおよび非VCL NALユニット(もしあれば)は、アクセスユニット(AU)と呼ばれる。
【００２７】
NALユニットは、ビデオ内のピクチャのコード化表現など、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。エンコーダエンジン106は、各ピクチャを複数のスライスに区切ることによって、コード化表現を生成する。スライス内の情報が、同じピクチャ内の他のスライスからのデータに依存せずにコーディングされるように、スライスは他のスライスから独立している。スライスは、独立したスライスセグメントを含む1つまたは複数のスライスセグメント、および、存在する場合、前のスライスセグメントに依存する1つまたは複数の独立したスライスセグメントを含む。これらのスライスは、次いで、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、それらのサンプルに関するシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、HEVC符号化のための基本的な処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU)に分割され得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマサンプルアレイを含む。
【００２８】
ルーマおよびクロマCBは、予測ブロック(PB)にさらに分割され得る。PBはインター予測のために同じ動きパラメータを使用するルーマまたはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。動きパラメータのセットは、各PUに関するビットストリーム内でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。CBはまた、1つまたは複数の変換ブロック(TB)に区分され得る。TBは、予測残差信号をコーディングするために同じ2次元変換が適用される色成分のサンプルの四角ブロックを表す。変換ユニット(TU)は、ルーマおよびクロマサンプルのTB、ならびに対応するシンタックス要素を表す。
【００２９】
CUのサイズは、コーディングノードのサイズに対応し、形状は正方形である。たとえば、CUのサイズは8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または最高で対応するCTUのサイズまでの任意の他の適切なサイズであってよい。本明細書では、「N×N」は、垂直および水平方向の寸法に関するビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用される。ブロック内のピクセルは、行および列状に配置されてもよい。いくつかの実施形態では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有さなくてもよい。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述してもよい。区分モードは、CUがイントラ予測モード符号化されるか、インター予測モード符号化されるかに応じて異なり得る。PUは、形状が非正方形であるように区分されてもよい。CUに関連付けられたシンタックスデータはまた、たとえば、CTUに従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状において正方形または非正方形であることができる。
【００３０】
HEVC規格によれば、変換は変換ユニット(TU)を使用して実行され得る。TUは様々なCUに関して異なり得る。TUは所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、同じサイズであってよく、またはPUより小さくてもよい。いくつかの例では、CUに対応する残差サンプルは残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに細分され得る。RQTのリーフノードはTUに対応し得る。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換され得る。変換係数は、次いで、エンコーダエンジン106によって量子化され得る。
【００３１】
ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は予測モードを使用して各PUを予測する。予測は、次いで、(下で説明する)残差を得るために、元のビデオデータから減算される。各CUに関して、予測モードは、シンタックスデータを使用して、ビットストリーム内部でシグナリングされ得る。予測モードは、イントラ予測(または、イントラピクチャ予測)またはインター予測(または、インターピクチャ予測)を含み得る。イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見出すためのDC予測、平坦面をPUに適合させるための平面予測、近隣データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャ内の近隣画像データから予測される。インター予測を使用して、各PUは、(出力順で現在のピクチャの前または後の)1つまたは複数の参照ピクチャ内の画像データから動き補償予測を使用して予測される。インターピクチャ予測を使用してピクチャエリアをコーディングするか、またはイントラピクチャ予測を使用してピクチャエリアをコーディングするかの判定は、たとえば、CUレベルで行うことができる。
【００３２】
単予測を使用したインター予測では、各予測ブロックは、多くても1つの動き補償された予測信号を使用して、P予測ユニットを生成する。双予測を使用したインター予測では、各予測ブロックは、多くても2つの動き補償された予測信号を使用して、B予測ユニットを生成する。
【００３３】
PUは、予測プロセスに関するデータを含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUに関する動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述してもよい。
【００３４】
エンコーダ104は、次いで、変換および量子化を実行することができる。たとえば、予測に続いて、エンコーダエンジン106は、PUに対応する残差値を計算してもよい。残差値はピクセル差分値を含み得る。予測が実行された後に残る場合があるいずれの残差データも、ブロック変換を使用して変換され、これは、離散コサイン変換、離散正弦変換、整数変換、ウェーブレット変換、または他の適切な変換関数に基づき得る。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4など)を各CU内の残差データに適用することができる。いくつかの実施形態では、TUはエンコーダエンジン106によって実装される変換および量子化プロセスに関して使用され得る。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含んでもよい。下でより詳細に説明するように、残差値は、ブロック変換を使用して変換係数に変換可能であり、次いで、エントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して量子化および走査され得る。
【００３５】
いくつかの実施形態では、CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、エンコーダエンジン106は、CUのTUに関する残差データを計算することができる。PUは空間領域(または、ピクセル領域)内のピクセルデータを含み得る。TUは、ブロック変換の適用に続いて、変換領域内に係数を含み得る。前に述べたように、残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分値に対応してもよい。エンコーダエンジン106は、CUのための残差データを含むTUを形成することができ、次いで、CUのための変換係数を生成するためにTUを変換することができる。
【００３６】
エンコーダエンジン106は、変換係数の量子化を実行してもよい。変換係数を量子化して、係数を表すために使用されるデータの量を削減することによって、量子化はさらなる圧縮を提供する。たとえば、量子化は、係数の一部またはすべてに関連するビット深度を低減し得る。一例では、nビット値を有する係数は、量子化の間にmビット値に切り捨てられてもよく、nは、mよりも大きい。
【００３７】
量子化が実行されると、コード化ビットストリームは、量子化変換係数、予測情報(たとえば、予測モード、動きベクトルなど)、区分情報、および、他のシンタックスデータなど、任意の他の適切なデータを含む。コード化ビットストリームの様々な要素は、次いで、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、事前定義された走査順序を利用して、量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成することができる。いくつかの例では、エンコーダエンジン106は適応走査を実行することができる。量子化変換係数を走査して1次元ベクトルを形成した後で、エンコーダエンジン106は1次元ベクトルをエントロピー符号化することができる。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースのコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の適切なエントロピー符号化技法を使用することができる。
【００３８】
前に述べたように、HEVCビットストリームはNALユニットのグループを含む。コード化ビデオビットストリームを形成するビットのシーケンスはVCL NALユニット内に存在する。非VCL NALユニットは、他の情報に加えて、符号化ビデオビットストリームに関するハイレベル情報を備えたパラメータセットを含み得る。たとえば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)とを含み得る。パラメータセットの目標は、ビットレート効率、エラーレジリエンシー、およびシステムレイヤインターフェースの提供である。各スライスは、復号デバイス112がそのスライスを復号するために使用することができる情報にアクセスするために、単一のアクティブPPS、SPS、およびVPSを参照する。VPS IDと、SPS IDと、PPS IDとを含む識別子(ID)が、各パラメータセットに関してコーディングされ得る。SPSはSPS IDとVPS IDとを含む。PPSはPPS IDとSPS IDとを含む。各スライスヘッダはPPS IDを含む。IDを使用して、所与のスライスに関してアクティブパラメータセットを識別することができる。
【００３９】
PPSは、所与のピクチャ内のすべてのスライスに適用される情報を含む。これにより、ピクチャ内のすべてのスライスは同じPPSを参照する。異なるピクチャ内のスライスも同じPPSを参照し得る。SPSは、同じコード化ビデオシーケンスまたはビットストリーム内のすべてのピクチャに適用される情報を含む。コード化ビデオシーケンスは、ランダムアクセスポイントピクチャ(たとえば、瞬時復号参照(IDR:instantaneous decode reference)ピクチャもしくはブロークンリンクアクセス(BLA:broken link access)ピクチャ、または他の適切なランダムアクセスポイントピクチャ)で始まり、次のランダムアクセスポイントピクチャ(または、ビットストリームの終了)を含まないが、それに至るまでのすべてのアクセスユニットを含む一連のアクセスユニットである。SPS内の情報は、典型的には、コード化ビデオシーケンス内のピクチャごとに変化しない。コード化ビデオシーケンス内のすべてのピクチャは同じSPSを使用する。VPSは、コード化ビデオシーケンスまたはビットストリーム内のすべてのレイヤに適用される情報を含む。VPSは、コード化ビデオシーケンス全体に適用されるシンタックス要素を備えたシンタックス構造を含む。いくつかの実施形態では、VPS、SPS、またはPPSは、符号化ビットストリームと帯域内で送信され得る。いくつかの実施形態では、VPS、SPS、またはPPSは、コード化ビデオデータを含むNALユニットとは別の送信において帯域外で送信され得る。
【００４０】
符号化デバイス104の出力110は、通信リンク120を介して、符号化ビデオデータを作り上げるNALユニットを受信デバイスの復号デバイス112に送ることができる。復号デバイス112の入力114はNALユニットを受信することができる。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードおよびワイヤレスネットワークの組合せを使用して送信された信号を含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含んでよく、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットアーク、パケットベースネットワーク、WiFi(商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(商標)など)を含んでよい。ワイヤードネットワークは、任意のワイヤードインターフェース(たとえば、ファイバー、イーサネット(登録商標)、電力線イーサネット(登録商標)、同軸ケーブルを介したイーサネット(登録商標)、デジタル信号線(DSL)など)を含み得る。ワイヤードおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなど、様々な機器を使用して実装され得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信されてもよい。
【００４１】
いくつかの例では、符号化デバイス104は符号化ビデオデータをストレージ108内に記憶することができる。出力110は、エンコーダエンジン106から、または出力110から符号化ビデオデータを取り出すことができる。ストレージ108は、様々な分散型または局所的にアクセスされるデータ記憶媒体のうちのいずれかを含み得る。たとえば、ストレージ108は、ハードドライブ、ストレージディスク、フラッシュメモリ、揮発性または不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体を含み得る。
【００４２】
入力114は、符号化ビデオデータを受信し、デコーダエンジン116による後の使用のために、ビデオデータをデコーダエンジン116にまたはストレージ118に提供することができる。デコーダエンジン116は、(たとえば、エントロピーデコーダを使用して)エントロピー復号して、符号化ビデオデータを作り上げるコード化ビデオシーケンスの要素を抽出することによって、符号化ビデオデータを復号することができる。デコーダエンジン116は、次いで、符号化ビデオデータを再スケーリングし、その符号化ビデオデータに対して逆変換を実行することができる。次いで、残差はデコーダエンジン116の予測段階に渡される。デコーダエンジン116は、次いで、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、予測は逆変換の出力に追加され得る。
【００４３】
復号デバイス112は復号ビデオをビデオ宛先デバイス122に出力することができ、ビデオ宛先デバイス122は、ディスプレイ、または複合ビデオデータをコンテンツの消費者に表示するための他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であってよい。いくつかの態様では、ビデオ宛先ビデオデバイス122は、受信デバイスとは別のデバイスの一部であってよい。
【００４４】
いくつかの実施形態では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと統合され得る。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、上で説明したコーディング技法を実装するために必要な他のハードウェアまたはソフトウェアを含んでもよい。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイス内に組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合されてもよい。符号化デバイス104の特定の詳細を有する例については、図8を参照して下で説明する。復号デバイス112の特定の詳細を有する例については、図9を参照して下で説明する。
【００４５】
上述のように、HEVC規格に対する拡張には、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張、およびSHVCと呼ばれるスケーラブルビデオコーディング拡張がある。MV-HEVCおよびSHVC拡張は、符号化ビデオビットストリーム内に異なるレイヤを含めた状態で、レイヤードコーディングの概念を共有する。コード化ビデオシーケンス内の各レイヤは、一意のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットが関連付けられるレイヤを識別するためにNALユニットのヘッダ内に存在し得る。MV-HEVCでは、異なるレイヤは、通常、ビデオビットストリーム内の同じシーンの異なるビューを表す。SHVCでは、異なる空間解像度(または、ピクチャ解像度)内または異なる再構成忠実度内のビデオビットストリームを表す異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0である)基層と(レイヤID=1、2、…nである)1つまたは複数の拡張レイヤとを含み得る。基層は、HEVCの第1のバージョンのプロファイルに適合し、ビットストリーム内の最低利用可能レイヤを表す。拡張レイヤは、基層と比較して増大した空間解像度、時間解像度またはフレームレート、および/または再構成忠実度(または、品質)を有する。拡張レイヤは、階層的に組織され、下位レイヤに依存してよい(または、依存しなくてもよい)。いくつかの例では、異なるレイヤは、単一標準コーデックを使用してコーディングされ得る(たとえば、すべてのレイヤは、HEVC、SHVC、または他のコーディング規格を使用して符号化される)。いくつかの例では、異なるレイヤは多標準コーデックを使用してコーディングされ得る。たとえば、基層はAVCを使用してコーディングされ得るのに対して、1つまたは複数の拡張レイヤは、HEVC規格に対するSHVCおよび/またはMV-HEVC拡張を使用してコーディングされ得る。
【００４６】
前に説明したように、イントラ予測を含めて、ビデオコーディングプロセスにおいて様々な予測モードを使用することができる。イントラ予測の一形態は、イントラブロックコピーを含む。イントラブロックコピーは、HEVC範囲拡張作業草案テキスト(JCTVC-P1005)内に含まれていた。画像フレームまたはピクチャ内の冗長性を使用して、イントラブロックコピーは、画像フレームの近隣領域内のサンプルの再構成ブロックからの変位として、サンプルのブロック(たとえば、CU、PU、または他のコーディングブロック)を予測するためにブロック整合を実行する。コンテンツのパターンを繰り返すことからの冗長性を除去することによって、イントラブロックコピー予測はコーディング効率を改善する。
【００４７】
本明細書で説明する技法およびシステムは、メモリ帯域幅効率を改善すること、最悪メモリアクセスを制限すること、およびイントラブロックコピーの他の態様に関する。本書の態様および方法は、HEVC、および、スクリーンコンテンツコーディング、または他の拡張など、その拡張に適用可能である。たとえば、テキストおよび動きを伴うグラフィックスなど、スクリーンコンテンツ材料をコーディングするためにコーディングツールを実装することができる。さらに、スクリーンコンテンツに関するコーディング効率を改善する技術が提供され得る。様々なコーディングツールを用いてスクリーンコンテンツの特性を活用することによって、コーディング効率において著しい改善を取得することができる。たとえば、いくつかの態様は、場合によっては(8ビットを超える)高いビット深度、(4:4:4および4:2:2を含む)高いクロマサンプリングフォーマット、および他の改善をサポートする。
【００４８】
本明細書で説明するイントラブロックコピーツールは、非隣接サンプルから、現在のピクチャ内にある空間予測を可能にする。たとえば、図2は、現在のコーディングユニット202を予測するためにイントラブロックコピーが使用されるコード化ピクチャ200を示す。現在のコーディングユニット202は、ブロックベクトル206を使用して、コード化ピクチャ200の(インループフィルタリングの前に)すでに復号された予測ブロック204から予測される。インループフィルタリングは、インループデブロッキングフィルタとサンプル適応オフセット(SAO)の両方を含み得る。デコーダ内で、何の補間も伴わずに、予測値が残差に加算される。たとえば、ブロックベクトル206は整数値としてシグナリングされ得る。ブロックベクトル予測の後で、HEVC規格において指定されるような、動きベクトル差分コーディング方法を使用してブロックベクトル差分が符号化される。CUレベルとPUレベルの両方においてイントラブロックコピーが有効化される。PUレベルイントラブロックコピーの場合、すべてのCUサイズに関して2N×NおよびN×2N PU区分がサポートされる。加えて、CUが最少CUであるとき、N×N PU区分がサポートされる。
【００４９】
旧来のイントラ予測モードに反して、イントラブロックコピー(IBC)は非近隣サンプルからの空間予測を可能にする。これらの非近隣サンプルは、同じピクチャ内の、ブロックベクトルによってシグナリングされた、(インループフィルタリングの前に)すでに復号されたサンプルのうちのいずれかからであり得る。これらの非近隣サンプルのメモリアクセスは、IBCが使用されるとき、メモリ帯域幅全体を増大する。たとえば、少なくとも部分的に、(キャッシュ/ローカルメモリ内にない)空間予測サンプルをフェッチすることによって、読取りアクセスの増大が引き起こされる。旧来のイントラモードでは、使用される近隣サンプルは、上記のサンプルの1行、かつ左サンプルの1列だけであり、キャッシュ内に配置されることが可能であることに留意されたい。対照的に、IBCが使用されるとき、すべての前に符号化/復号されたサンプルは参照ユニットとして使用され得る。増大した数の利用可能なサンプルをサポートするために、システムは追加のメモリ使用をサポートする。部分的に、IBC空間予測のためにフィルタリングされていないサンプルと、将来のピクチャに関する出力/一時的予測のためのフィルタリングされた再構成サンプルの両方を記憶することにより、書込みアクセスの増大が引き起こされる。
【００５０】
HEVC規格は、最悪帯域幅要件を定義する。上で説明した増大した帯域幅は、場合によっては、HEVC最悪帯域幅要件よりも大きい場合がある。増大した帯域幅は、IBC技法の実装に負担をもたらし、IBCをサポートするスクリーンコンテンツ拡張またはHEVC拡張をサポートするためにHEVCコアを再利用することを困難にする場合がある。
【００５１】
さらに、IBCにおいて使用される大きな探索範囲は、ブロックベクトル分布を分散させ、帯域幅および性能システム負荷をもたらす可能性があり、これは実装することを非常に困難にし得る。図3の例に示すように、CUを用いてIBCブロックベクトルの分布が分散され得ることが可能である。すべての予測サンプルがキャッシュ内で利用可能でない可能性があるため、これは、潜在的に、外部メモリ(DDR)からサンプルをフェッチする必要につながる可能性がある。キャッシュエリア内のすべての予測ブロックを適合させることは、非常に大きなキャッシュを有することをシステムに要求するが、これは高価であり、低電力設計において実現可能ではない。これはシステム帯域幅、性能、およびコストに大幅な影響を及ぼす。探索範囲が増大すると、そのようなブロックベクトル分布はますますあり得る。
【００５２】
大きな探索範囲は、タイルにわたるブロックベクトル分布をもたらす可能性があり、並列化の性能に深刻な影響を及ぼすことになる。図4の例に示すように、CUを用いたIBCブロックベクトルの分布が複数のタイルにわたって分散され得ることが可能である。
【００５３】
低遅延Pコーディングの場合、既存のIBC設計を用いたブロックおよび/または動きベクトルの最悪数は、HEVCの動きベクトルの最悪数よりも高い場合があることがアサートされる(CU、CTB、または他のコーディングユニットまたはブロックに関して)。これは、最小CUサイズのN×Nをサポートすることによる。多数のブロックおよび/または動きベクトルは、考えられる負荷数に追加の負担を課す。
【００５４】
ラインベースのIBCは、ラインと同じくらい小さな区分を含む旧来のIBCよりもより密な粒度を有する区分を含む。ラインベースのIBCは、既存のHEVC設計よりも大きな数に動きベクトルを増大し得る。より高い動きベクトルは、サンプルフェッチの増大をもたらし、それによって、帯域幅を増大することになる。
【００５５】
スライスを使用することは、エラーレジリエンシーにかなり役立つ場合がある。イントラスライスは自蔵式かつスタンドアロンで復号可能であり得る。しかしながら、IBCは、別のスライスに関して、Iスライスの依存性をもたらし、そのエラーレジリエンシー能力に影響を及ぼし得る。
【００５６】
他の欠点に加えて、上記の欠点に鑑みて、イントラブロックコピーの様々な態様が本明細書で論じられる。論じる特徴の各々は、別個で、または1つまたは複数の他の解決策とともに機能し得る。論じる方法、システム、および態様は、IBCに適用されるが、たとえば、1-D辞書、パレット、または他のコーディングツールなど、たとえば、高い帯域幅およびキャッシュ要件を備えた他のコーディングツールにも適用され得る。
【００５７】
IBCが有効化されるときの双予測制限
HEVCでは、8×8ピクセル双予測は最悪帯域幅要件を表す。すべてのHEVC拡張がやはり同じ最悪帯域幅要件に従う場合、これは有用である。したがって、メモリ読取りアクセスを低減し、帯域幅をHEVC最悪要件の範囲内に維持するために、IBCが有効化されるときの双予測の制限について下で論じる。
【００５８】
いくつかの実施形態では、IBCが有効化されている結果として、インターフレーム双予測が無効化される。たとえば、IBCを用いたイントラフレーム予測に対応する状態に応じて、フレーム間双予測を無効化することができる。結果として、IBCを用いると、メモリ帯域幅など、システムリソースに対する需要は、フレーム間双予測からフレーム内予測に効率的に低減される。
【００５９】
いくつかの実施形態では、フレーム間双予測を無効化するために、1つまたは複数の追加の条件が要求される場合がある。より小さな予測ブロックは、より大きな予測ブロックよりも、メモリ帯域幅など、より多くのシステムリソースを必要とするため、予測ブロックサイズは、フレーム間双予測を無効化するための追加要件であり得る。たとえば、いくつかの実施形態では、IBCが有効化されており、予測ブロックサイズもあらかじめ定義されたサイズ以下である結果として、フレーム間双予測は無効化される。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。
【００６０】
いくつかの実施形態では、IBCが有効化されている結果として、双予測が無効化されているか否かを指定または表示するために、フラグを使用することができる。いくつかの実施形態では、フラグは、たとえば、様々なデータ構築レベルにおいて、双予測に対して制限が加えられるかどうかを示す。たとえば、フラグは、1つまたは複数のシーケンス、ピクチャ、スライス、または他のデータユニットに対して制限が加えられることを示すことができる。フラグは、以下のパラメータセットのうち1つまたは複数においてシグナリングされ得る:VPS、SPS、PPS、ビデオ活用性情報(VUI)、スライスヘッダ、またはそのそれぞれの拡張。
【００６１】
いくつかの実施形態では、以下の、または等価のシーケンスパラメータセットローバイトシーケンスペイロード(RBSP:raw byte sequence payload)シンタックスが使用される。この実施形態では、(JCTVC-P1005_v4に基づいて)予測ブロックサイズが8×8以下である結果として、双予測が無効化される。
【００６２】
【表１】
0006527891.tif 000002
【００６３】
いくつかの実施形態では、以下の、または等価のSPSセマンティックが使用される:
【００６４】
1に等しいintra_block_copy_restriction_enabled_flagは、フレーム内予測のための復号プロセスの間にIBCが使用されるとき、双予測に対する制限が有効化されていることを指定する。
【００６５】
0に等しいintra_block_copy_restriction_enabled_flagは、IBCの使用が適用されていないことに基づく双予測に対する制限を指定する。存在しないとき、intra_block_copy_enabled_flagの値は、0に等しいものと推測されてよい。
【００６６】
復号プロセス
【００６７】
現在の予測ユニットに関してリスト0が使用されるか、リスト1が使用されるか、または双予測が使用されるかを指定するinter_pred_idc[x0][y0]の値は、Table 1(表1)に従って導出される。
【００６８】
【表２】
0006527891.tif 000003
【００６９】
JCTVC-T1005では、シグナリングされたフラグ「use_integer_mv_flag」を使用して、適応動きベクトル解像度(AMVR)特徴が有効化される。フラグのセマンティックは次の通りである。
【００７０】
1に等しいuse_integer_mv_flagは、インター予測のための動きベクトルの解像度を指定する。存在しないとき、use_integer_mv_flagの値は、motion_vector_resolution_control_idcに等しいものと推測される。
【００７１】
非ゼロであるuse_integer_mv_flagは、現在のスライス内のルーマ動きベクトルの解像度が整数ペルと見なされることを指定する。結果として、スライス内のすべてのルーマサンプルに関して分数補間は必要とされない場合がある。分数補間が必要とされないとき、補間に必要とされる追加のサンプルはロードされず、したがって、最悪メモリ帯域幅が低減され、HEVC最悪よりも低い可能性がある。
【００７２】
いくつかの実施形態では、IBC使用の結果として、かつさらにuse_integer_mv_flagの状態の結果として、所定のブロックサイズのインターピクチャに関して単予測および双予測のうちの少なくとも1つが無効化される。これは、帯域幅使用をHEVC最悪帯域幅要求の範囲内に留まらせる。
【００７３】
いくつかの実施形態では、双予測を無効化するための条件は、IBCが有効化されていること、use_integer_mv_flagがゼロであること、および予測ブロックが所定のサイズに満たないこと(または、それ以下であること)を含む。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。一例では、IBCが有効化されており、use_integer_mv_flagがゼロであることに加えて、予測ブロックサイズが8×8サイズ以下、または別のサイズであることの結果として、双予測は予測ブロックに関して無効化され得る。
【００７４】
いくつかの実施形態では、単予測を無効化するための条件は、IBCが有効化されていること、use_integer_mv_flagがゼロであること、および予測ブロックが所定のサイズに満たないこと(または、それ以下であること)を含む。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。一例では、IBCが有効化されており、use_integer_mv_flagがゼロである結果として、フレーム間単予測は、8×8サイズ以下、または別のサイズであるサイズを有する予測ブロックに関して無効化される。
【００７５】
いくつかの実施形態では、単予測と双予測の両方を無効化するための条件は、IBCが有効化されていること、use_integer_mv_flagがゼロであること、および予測ブロックが所定のサイズに満たないこと(または、それ以下であること)を含む。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。一例では、IBCが有効化されており、use_integer_mv_flagがゼロである結果として、フレーム間単予測および双予測は、16×16サイズ以下、または別のサイズであるサイズを有する予測ブロックに関して無効化される。
【００７６】
いくつかの実施形態では、予測の動きベクトルが同じ参照ブロックを指し、かつ同一であるように、双予測ブロックが同じ参照ブロックから双予測される場合、本明細書で論じる予測の無効化は適用されない。たとえば、単予測および/または双予測の無効化は、予測の動きベクトルが同じ参照ベクトルを指し、かつ同一であるように、無効化をトリガする双予測ブロックが同じ参照ブロックから予測されていないというさらに別の条件をその適用に対して有し得る。
【００７７】
図5は、IBCを用いてビデオデータを符号化し、双予測および/または単予測を選択的に無効化させるプロセス500の一実施形態を示す。プロセス500は、複数の符号化ビデオピクチャを生成するために実装される。いくつかの態様では、プロセス500は、図1に示した符号化デバイス104など、コンピューティングデバイスまたは装置によって実行され得る。たとえば、コンピューティングデバイスまたは装置は、エンコーダ、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス500のステップを実行するように構成された、エンコーダの他の構成要素であってよい。
【００７８】
プロセス500は、その動作がハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す論理フロー図として示される。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されるとき、列挙される動作を実行する1つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は限定と見なされることを目的とせず、プロセスを実装するために、任意の数の説明される動作を任意の順序で、かつ/または並行して組み合わせることが可能である。
【００７９】
加えて、プロセス500は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行可能であり、かつ1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。上記のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形でコンピュータ可読または機械可読記憶媒体上に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【００８０】
502で、ビデオデータを符号化するプロセス500は、エンコーダにおいてビデオデータを取得するステップを含む。いくつかの実施形態では、エンコーダは、複数のP予測ユニットを生成するためにビデオデータに対してインターピクチャ単予測を実行し、複数のB予測ユニットを生成するためにビデオデータに対してインターピクチャ双予測を実行し、予測ユニットを符号化するために、イントラブロックコピー予測を使用して、ビデオデータに対してイントラピクチャ予測を実行するように構成される。実行されるとき、インターピクチャ単予測は、たとえば、複数のP予測ユニットを生成することができる。実行されるとき、インターピクチャ双予測は、たとえば、複数のB予測ユニットを生成することができる。実行されるとき、イントラピクチャ予測は、たとえば、複数のI予測ユニットを生成するためにイントラブロックコピー予測を使用する。
【００８１】
504で、プロセス500は、複数の符号化ビデオピクチャを生成するために、イントラブロックコピー予測を使用して、ビデオデータに対してイントラピクチャ予測を実行することを決定するステップを含む。この決定は、たとえば、イントラブロックコピーモードを示す状態に応答し得る。いくつかの実施形態では、デコーダに関してシグナリングフラグが生成され、シグナリングフラグは、イントラブロックコピーモードを示す。たとえば、シグナリングフラグに関する1の値は、イントラブロックコピーモードが実行されることを示し得る。別の例では、シグナリングフラグに関する0の値は、イントラブロックコピーモードが実行されないことを示し得る。
【００８２】
506で、プロセス500は、イントラブロックコピー予測を使用してビデオデータに対してイントラピクチャ予測を実行するステップを含む。たとえば、イントラピクチャ予測は、プログラムされたエンコーダ状態に従ってイントラブロックコピー予測を使用して実行され得る。イントラブロックコピー予測プロセスは、本明細書の他の場所で論じるイントラブロックコピープロセスの態様を含み得る。
【００８３】
508で、プロセッサ500は、イントラブロックコピー予測を使用してビデオデータに対してイントラピクチャ予測を実行することを決定することに応じて、複数の符号化ビデオピクチャに関してインターピクチャ双予測またはインターピクチャ単予測のうちの少なくとも1つを無効化するステップを含む。いくつかの実施形態では、イントラピクチャ予測および無効化は、シグナリングフラグに応じて実行される。いくつかの実施形態では、シグナリングフラグに応じて、インターピクチャ双予測性能とインターピクチャ単予測性能の両方が無効化される。予測の無効化は、態様を含んでよいか、または本明細書の他の場所で論じる他の要因に応じてもよい。
【００８４】
510で、プロセス500は、たとえば、本明細書の他の場所で論じるプロセスの態様を使用して、イントラブロックコピー予測に従って受信されたビデオデータに基づいて複数の符号化ビデオピクチャを生成するステップを含む。たとえば、符号化ビデオピクチャは、ビデオデータに対してイントラブロックコピー予測を使用して生成され得る。
【００８５】
いくつかの実施形態では、プロセス500は本明細書で論じる他の態様を含む。たとえば、いくつかの実施形態では、プロセス500は、複数のP予測ユニットを生成するためにビデオデータに対してインターピクチャ単予測を実行するステップを含む。いくつかの実施形態では、プロセス500は、予測ユニットサイズを決定するステップであって、イントラブロックコピー予測を使用してビデオデータに対してイントラピクチャ予測を実行することを決定することと、予測ユニットサイズがしきい値に満たないことの両方の組合せに応じて、複数の符号化ビデオピクチャに関してインターピクチャ双予測またはインターピクチャ単予測を実行することが無効化される、決定するステップを含む。いくつかの実施形態では、プロセス500で、その組合せに応じて、複数の符号化ビデオピクチャに関してインターピクチャ双予測およびインターピクチャ単予測が無効化される。
【００８６】
いくつかの実施形態では、エンコーダはさらに、適応動きベクトル解像度(AMVRE)が可能であり、プロセス500はまた、予測ユニットサイズを決定するステップであって、イントラブロックコピー予測を使用してビデオデータに対してイントラピクチャ予測を実行することを決定すること、予測ユニットサイズがしきい値に満たないこと、およびAMVRが無効化されているという表示を受信することのすべての組合せに応じて、複数の符号化ビデオピクチャに関してインターピクチャ双予測またはインターピクチャ単予測が無効化される、決定するステップを含む。この組合せはさらに、異なる参照ユニットおよび異なる動きベクトルのうちの少なくとも1つを有するインター予測双予測を含み得る。その組合せに応じて、複数の符号化ビデオピクチャに関してインターピクチャ双予測およびインターピクチャ単予測が無効化され得る。この組合せはさらに、異なる参照ユニットおよび異なる動きベクトルのうちの少なくとも1つを有するインター予測双予測を含み得る。
【００８７】
図6は、IBCを用いてビデオデータを復号し、双予測および/または単予測を選択的に無効化させるプロセス600の一実施形態を示す。プロセス600は、複数の符号化ビデオピクチャを復号するために実装される。いくつかの態様では、プロセス600は、図1に示した復号デバイス112など、コンピューティングデバイスまたは装置によって実行され得る。たとえば、コンピューティングデバイスまたは装置は、デコーダ、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス600のステップを実行するように構成された、デコーダの他の構成要素であってよい。
【００８８】
プロセス600は、その動作がハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す論理フロー図として示される。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されるとき、列挙される動作を実行する1つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は限定と見なされることを目的とせず、プロセスを実装するために、任意の数の説明される動作を任意の順序で、かつ/または並行して組み合わせることが可能である。
【００８９】
加えて、プロセス600は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行可能であり、かつ1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。上記のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形でコンピュータ可読または機械可読記憶媒体上に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【００９０】
602で、ビデオデータを復号するプロセス600は、複数の予測モードを使用して符号化された符号化ビデオデータをビデオビットストリーム内で受信するステップを含む。ビデオデータはデコーダにおいて受信され得る。複数の予測モードは、インターピクチャ単予測モード、インターピクチャ双予測モード、およびイントラピクチャイントラブロックコピーモードを含む。インターピクチャ単予測モードでは、デコーダは、たとえば、本明細書の他の場所で論じるように、単予測に従って復号するように構成される。インターピクチャ双予測モードでは、デコーダは、たとえば、本明細書の他の場所で論じるように、双予測に従って復号するように構成される。イントラピクチャイントラブロックコピーモードでは、デコーダは、たとえば、本明細書の他の場所で論じるように、イントラブロックコピー予測に従って復号するように構成される。
【００９１】
604で、プロセス600は、符号化ビデオデータの一部に関してインターピクチャ双予測が無効化されている、またはインターピクチャ双予測制限が有効化されているという表示をビデオビットストリーム内で受信するステップを含む。その表示は、たとえば、シグナリングフラグが、インターピクチャ双予測が無効化されていること、またはインターピクチャ双予測制限が有効化されていることを示す状態であることであり得る。たとえば、シグナリングフラグに関する1の値は、インターピクチャ双予測制限が有効化されていること、またはインターピクチャ双予測が無効化されていることを示し得る。別の例では、シグナリングフラグに関する0の値は、インターピクチャ双予測制限が有効化されていること、またはインターピクチャ双予測が無効化されていることを示し得る。
【００９２】
606で、プロセッサ600は、その表示に基づいて、符号化ビデオデータの一部の予測ユニットを予測するための予測モードを複数の予測モードから決定するステップを含む。いくつかの実施形態では、符号化ビデオデータの一部は、ピクチャのシーケンスなど、複数のピクチャを含む。さらに、608で、プロセス600は、たとえば、本明細書の他の場所で論じるプロセスの態様を使用して、決定された予測モードに従って符号化ビデオデータの一部の予測ユニットを復号するステップを含む。
【００９３】
いくつかの実施形態では、プロセス600は本明細書で論じる他の態様を含む。たとえば、プロセス600は、その表示に応じて、符号化ビデオデータの一部の予測ユニットを予測するための使用からインターピクチャ双予測モードを除外するステップを含み得る。
【００９４】
IBCに関する参照サンプル制限
HEVC最悪帯域幅要件を変更されない状態に維持するために、追加または代替として、使用されているIBCの結果として、参照サンプルに制限を加えることができる。
【００９５】
いくつかの実施形態では、本明細書で論じる参照サンプルに対する制限は、参照サンプルとして使用するために、制限された予測ブロックを使用不可能にさせる。いくつかの実施形態では、あらかじめ定義されたパディング方式によって対応する代理参照サンプルを生成し、予測のために使用することができる。
【００９６】
たとえば、代理参照サンプルは、近隣サンプルからの水平または垂直パディングによって生成可能であり、その場合、1つまたは複数の近隣サンプルからのデータは、代理参照サンプルを生成するために複写される。代替として、あらかじめ定義された値に等しいデータを用いて代理参照サンプルを生成することができる。たとえば、あらかじめ定義された値は2<<(B-1)に等しく、この場合、Bはサンプルのビット深度である。
【００９７】
いくつかの実施形態では、IBCが有効化されるとき、双予測を用いた予測ブロックからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。いくつかの実施形態では、IBCが有効化されるとき、予測ブロックサイズはあらかじめ定義されたサイズ以下であるというさらなる条件の結果、双予測を用いた予測ブロックからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。いくつかの実施形態では、IBCが有効化されるとき、インターモード予測を用いた予測ブロックからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。
【００９８】
いくつかの実施形態では、IBCが有効化されるとき、予測ブロックサイズがあらかじめ定義されたサイズ以下である場合、インターモード予測を用いた予測ブロックからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。
【００９９】
いくつかの実施形態では、IBCが有効化されるとき、(たとえば、JCTVC-P1005_v4に基づいて)双予測モードを用いて予測された予測ブロックからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。
【０１００】
いくつかの実施形態では、本明細書で論じる参照サンプルに対する制限は、たとえば、そのCTU内の参照サンプルのモードおよび/またはブロックサイズに基づいて、CTUレベルにおいて適用される。たとえば、特定のCTU内でIBCが使用される場合、かつブロックサイズが8×8ピクセルに満たない場合、本明細書で論じる参照サンプルに対する制限のうちの1つまたは複数がその特定のCTU全体に適用され得る。
【０１０１】
いくつかの実施形態では、本明細書で論じる参照サンプルに対する制限は、現在のCTUの外部にあり、かつ現在のCTUに関して適用されないCTUに適用される。いくつかの実施形態では、本明細書で論じる参照サンプルに対する制限は、現在のCTUおよび次の左CTUの外部にあり、かつ現在のCTUおよび次の左CTUに関して適用されないCTUに適用される。
【０１０２】
いくつかの実施形態では、本明細書で論じる参照サンプルに対する制限の適用は、use_integer_mv_flagフラグがゼロであるという条件付きである。したがって、これらの制限は、use_integer_mv_flagがゼロである場合、適用可能であり、use_integer_mv_flagがゼロでない場合、適用可能でない。
【０１０３】
いくつかの実施形態では、IBCが有効化されるとき、双予測を用いた少なくとも1つの予測ブロックを有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。別の例では、IBCが有効化されるとき、しきい値を超える、双予測を用いたいくつかの予測ブロックを有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。しきい値は、たとえば、250個のサンプル、500個のサンプル、1000個のサンプル、5000個のサンプル、または任意の他の適切な数の予測サンプルであってよい。
【０１０４】
いくつかの実施形態では、IBCが有効化されるとき、予測ブロックサイズがあらかじめ定義されたサイズ以下である場合、双予測を用いた少なくとも1つの予測ブロックを有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。
【０１０５】
いくつかの例では、IBCが有効化されるとき、そのサイズがあらかじめ定義されたサイズ以下である場合、しきい値を超える、双予測を用いた予測サンプル数を有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。しきい値数は、たとえば、250個のサンプル、500個のサンプル、1000個のサンプル、5000個のサンプル、または任意の他の適切な数の予測サンプルであってよい。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。
【０１０６】
いくつかの実施形態では、IBCが有効化されるとき、補間のために使用された少なくとも1つの予測ブロックを有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。別の例では、IBCが有効化されるとき、しきい値を超える、補間のために使用された予測サンプル数を有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。しきい値は、たとえば、250個のサンプル、500個のサンプル、1000個のサンプル、5000個のサンプル、または任意の他の適切な数の予測サンプルであってよい。
【０１０７】
いくつかの実施形態では、IBCが有効化されるとき、予測ブロックサイズがあらかじめ定義されたサイズ以下である場合、補間のために使用された少なくとも1つの予測ブロックを有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであり得る。
【０１０８】
いくつかの実施形態では、IBCが有効化されるとき、そのサイズがあらかじめ定義されたサイズ以下である場合、しきい値を超える、補間のために使用された予測サンプル数を有するCTUからのIBCに関する潜在的な参照サンプルは、参照サンプルとして使用されることから除外されるか、または不適格と見なされる。あらかじめ定義されたサイズは、たとえば、4×4ピクセル、4×8ピクセル、8×4ピクセル、8×8ピクセル、8×16ピクセル、16×16ピクセル、32×32ピクセル、または別のサイズであってよい。しきい値は、たとえば、250個のサンプル、500個のサンプル、1000個のサンプル、5000個のサンプル、または任意の他の適切な数の予測サンプルであってよい。
【０１０９】
いくつかの実施形態では、上述の参照サンプルに対する制限は、補間サンプルである潜在的な参照サンプルに同様に適用される。
【０１１０】
いくつかの実施形態では、双予測ブロックが同じ参照ブロックから双予測される場合、予測の動きベクトルが同じ参照ブロックを指し、かつ同一であるように、本明細書で論じる参照サンプルに対する制限は適用されない。たとえば、単予測および/または双予測の無効化は、予測の動きベクトルが同じ参照ベクトルを指し、かつ同一であるように、制限の適用をトリガする双予測ブロックが同じ参照ブロックから予測されていないという別の条件をその適用に対して有し得る。
【０１１１】
Bスライスに関するローカル探索エリアを用いたJCTVC-P1005_v4に基づく例示的な仕様テキストについて下で論じる。本明細書で論じる実施形態は、例示的な仕様テキストに適合する。
【０１１２】
復号プロセス
【０１１３】
イントラブロックコピー予測モードにおけるブロックベクトル成分に関する導出プロセスについて説明する。本明細書で論じる実施形態は、導出プロセスに適合する。
【０１１４】
このプロセスへの入力は:
現在ピクチャの左上ルーマサンプルに対する現在のルーマコーディングブロックの左上サンプルのルーマロケーション(xCb,yCb)、および
現在のルーマコーディングブロックのサイズを指定する変数log2CbSize
である。
【０１１５】
このプロセスの出力は、ブロックベクトルbvIntraの[単一ベクトルと呼ばれる場合がある](nCbS)×(nCbX)アレイである。
【０１１６】
変数nCbS、nPbSw、およびnPbShは次のように導出される。
nCbS=1 << log2CbSize  (8-25)
nPbSw=nCbS/(PartMode==PART_2N×2N||PartMode==PART_2N×N?1:2)(8-25)
nPbSh=nCbS/(PartMode==PART_2N×2N||PartMode==PART_N×2N?1:2)(8-25)
【０１１７】
変数BvpIntra[compIdx]はブロックベクトル予測子を指定する。水平ブロックベクトル成分にはcompIdx=0が割り当てられ、垂直ブロックベクトル成分にはcompIdx=1が割り当てられる。
【０１１８】
PartModeに応じて、変数numPartitionsは次のように導出される。
PartModeがPART_2N×2Nに等しい場合、numPartitionsは1に等しく設定される。
さもなければ、PartModeがPART_2N×NまたはPART_N×2Nのいずれかに等しい場合、numPartitionsは2に等しく設定される。
さもなければ(PartModeがPART_N×Nに等しい場合)、numPartitionsは4に等しく設定される。
【０１１９】
ブロックベクトルbvIntraのアレイは、値0..(numPartitions-1)を超えて進む変数blkIdxに関して、次の順序のステップによって導出される:
変数blkIncは、(PartMode==PART_2N×N? 2:1)に等しく設定される。
変数xPbは、xCb+nPbSw*(blkIdx*blkInc%2)に等しく設定される。
変数yPbは、xCb+nPbSh*(blkIdx/2)に等しく設定される。
値0..1を超えて進む変数compIdxに関して、次の順序のステップが適用される。
現在のコーディングツリーユニットに関してこのプロセスが起動されている回数に応じて、以下が適用される:
このプロセスが現在のコーディングツリーユニットに関して初めて起動される場合、bvIntra[xPb][yPb][compIdx]は次のように導出される:
bvIntra[xPb][yPb][0]=BvdIntra[xPb][yPb][0]-nCbS(8-25)
bvIntra[xPb][yPb][1]=BvdIntra[xPb][yPb][1](8-25)
さもなければ、bvIntra[xPb][yPb][compIdx]は次のように導出される:
bvIntra[xPb][yPb][0]=BvdIntra[xPb][yPb][0]+BvpIntra[0](8-25)
bvIntra[xPb][yPb][1]=BvdIntra[xPb][yPb][1]+BvpIntra[1](8-25)
BvpIntra[compIdx]の値は、[xPb][yPb][compIdx]に等しくなるように更新される。
復号プロセスにおいて後で起動される変数の導出プロセスで使用する場合、x=0..nPbSw-1およびy=0..nPbSh-1に関して次の割当てが行われる:
bvIntra[xPb+x][yPb+y][compIdx]=bvIntra[xPb][yPb][compIdx](8-25)
【０１２０】
次の条件のすべてが真であることがビットストリーム適合性の要件である:
bvIntra[xPb][yPb][0]の値は、-(xPb%CtbSizeY+64)以上とすべきである。
bvIntra[xPb][yPb][1]の値は、-(yPb%CtbSizeY)以上とすべきである。
z走査順序ブロック可用性に関する導出プロセスが、入力として、(xCb,yCb)に等しく設定された(xCurr,yCurr)および(xPb+bvIntra[xPb][yPb][0],yPb+bvIntra[xPb][yPb][1])に等しく設定された近隣ルーマロケーション(xNbY,yNbY)を用いて起動されるとき、出力はTRUEに等しくあるべきである。
z走査順序ブロック可用性に関する導出プロセスが、入力として、(xCb,yCb)に等しく設定された(xCurr,yCurr)および(xPb+bvIntra[xPb][yPb][0]+nPbSw-1,yPb+bvIntra[xPb][yPb][1]+nPbSh-1)に等しく設定された近隣ルーマロケーション(xNbY,yNbY)を用いて起動されるとき、出力はTRUEに等しくあるべきである。
次の条件のうち1つまたは両方は真とすべきである。
bvIntra[xPb][yPb][0]+nPbSw<=0
bvIntra[xPb][yPb][1]+nPbSh<=0
inter_pred_idc[x][y]は0または1に等しくあるべきであり、x=xPb+BvIntra[xPb][yPb][0].xPb+BvIntra[xPb][yPb][0]+(1<<log2CbSize)-1,y=yPb+BvIntra[xPb][yPb][1]..y0+BvIntra[xPb][yPb][1]+(1<<log2CbSize)-1である。
【０１２１】
ピクチャタイプ/スライスタイプ/区分サイズに基づく適応探索エリア
キャッシュ使用を改善し、さもなければ、IBCブロックベクトルおよび動き間ベクトル(inter motion vector)の結果として生じることになるキャッシュミスを低減するために、ブロックベクトル範囲に対する何らかの制約を適用することができる。
【０１２２】
ブロックベクトル範囲制約は、個々にまたは組み合わせて適用可能である。ブロックベクトル範囲制約では、当該領域は限定されず、たとえば、CU、CTB、最大コーディングユニット(LCU)、スライス、タイル、またはCU'、CTU'、CTB'、LCU'、スライス、もしくはタイルのセットであってよい。
【０１２３】
いくつかの実施形態では、ピクチャタイプ、スライスタイプ、および区分サイズのうちの1つまたは複数に基づいて探索エリアが決定される。加えて、各対応するピクチャタイプ、スライスタイプ、および区分サイズに関する探索エリアを指定するために、シンタックス要素を使用することができる。
【０１２４】
一例として、現在のスライスがBスライスである場合、IBCブロックのための探索エリアは現在CTBのローカル領域になるように制約され得る。いくつかの実施形態では、現在のスライスがBスライスである結果として、探索エリアは、現在CTBおよび隣接する左CTB内の偶然の近隣に制約される。
【０１２５】
いくつかの実施形態では、探索エリアのサイズ、形状、またはロケーションはシンタックス要素によって指定される。いくつかの実施形態では、シンタックス要素は、たとえば、VPS、SPS、PPS、VUI、スライスヘッダ、またはCUヘッダのうちの1つまたは複数においてビットストリーム内でシグナリングされる。
【０１２６】
いくつかの実施形態では、ピクチャタイプ、スライスタイプ、および区分サイズのうちの1つまたは複数に基づいて、ビットストリーム内でコーディングされるブロックベクトルの範囲が制約される。加えて、各対応するピクチャタイプ、スライスタイプ、および区分サイズに関する最大ブロックベクトル範囲を指定するために、シンタックス要素を使用することができる。たとえば、いくつかの実施形態では、1つまたは複数のシンタックス要素を使用して、最大ブロックベクトル範囲が、CRA、BLA、およびIDRのピクチャタイプに関して、それぞれ100ピクセル、500ピクセル、および1000ピクセルに等しいと指定することができる。同様に1つまたは複数のシンタックス要素を使用して、Iスライス、Bスライス、Pスライス、およびGPBスライスの各々に関する最大ブロックベクトル範囲を指定することができ、1つまたは複数のシンタックス要素を使用して、4×4ピクセル、8×8ピクセル、16×16ピクセル、32×32ピクセル、および64×64ピクセルを含めて、区分サイズの各々に関する最大ブロックベクトル範囲を指定することができる。
【０１２７】
いくつかの実施形態では、探索エリアおよび最大ブロックベクトル範囲シンタックス要素は、次のパラメータセットのうちの1つまたは複数の中でシグナリングされ得る:VPS、SPS、PPS、ビデオ活用性情報(VUI)、スライスヘッダ、またはそのそれぞれの拡張。
【０１２８】
Bスライスに関するローカル探索エリアを用いたJCTVC-P1005_v4に基づく例示的な仕様テキストについて下で論じる。本明細書で論じる実施形態は、例示的な仕様テキストに適合する。
【０１２９】
復号プロセス
【０１３０】
イントラブロックコピー予測モードにおけるブロックベクトル成分に関する導出プロセスについて説明する。
【０１３１】
このプロセスへの入力は:
現在ピクチャの左上ルーマサンプルに対する現在のルーマコーディングブロックの左上サンプルのルーマロケーション(xCb,yCb)、および
現在のルーマコーディングブロックのサイズを指定する変数log2CbSize
である。
【０１３２】
このプロセスの出力は、ブロックベクトルbvIntraの[単一ベクトルと呼ばれる場合がある](nCbS)×(nCbX)アレイである。
【０１３３】
変数nCbS、nPbSw、およびnPbShは次のように導出される。
nCbS=1 << log2CbSize  (8-25)
nPbSw=nCbS/(PartMode==PART_2N×2N||PartMode==PART_2N×N?1:2)(8-25)
nPbSh=nCbS/(PartMode==PART_2N×2N||PartMode==PART_N×2N?1:2)(8-25)
【０１３４】
変数BvpIntra[compIdx]はブロックベクトル予測子を指定する。水平ブロックベクトル成分にはcompIdx=0が割り当てられ、垂直ブロックベクトル成分にはcompIdx=1が割り当てられる。
【０１３５】
PartModeに応じて、変数numPartitionsは次のように導出される。
PartModeがPART_2N×2Nに等しい場合、numPartitionsは1に等しく設定される。
さもなければ、PartModeがPART_2N×NまたはPART_N×2Nのいずれかに等しい場合、numPartitionsは2に等しく設定される。
さもなければ(PartModeがPART_N×Nに等しい場合)、numPartitionsは4に等しく設定される。
【０１３６】
ブロックベクトルbvIntraのアレイは、値0..(numPartitions-1)を超えて進む変数blkIdxに関して、次の順序のステップによって導出される:
変数blkIncは、(PartMode==PART_2N×N? 2:1)に等しく設定される。
変数xPbは、xCb+nPbSw*(blkIdx*blkInc%2)に等しく設定される。
変数yPbは、xCb+nPbSh*(blkIdx/2)に等しく設定される。
値0..1を超えて進む変数compIdxに関して、次の順序のステップが適用される。
現在のコーディングツリーユニットに関してこのプロセスが起動されている回数に応じて、以下が適用される:
このプロセスが現在のコーディングツリーユニットに関して初めて起動される場合、bvIntra[xPb][yPb][compIdx]は次のように導出される:
bvIntra[xPb][yPb][0]=BvdIntra[xPb][yPb][0]-nCbS(8-25)
bvIntra[xPb][yPb][1]=BvdIntra[xPb][yPb][1](8-25)
さもなければ、bvIntra[xPb][yPb][compIdx]は次のように導出される:
bvIntra[xPb][yPb][0]=BvdIntra[xPb][yPb][0]+BvpIntra[0](8-25)
bvIntra[xPb][yPb][1]=BvdIntra[xPb][yPb][1]+BvpIntra[1](8-25)
BvpIntra[compIdx]の値は、[xPb][yPb][compIdx]に等しくなるように更新される。
復号プロセスにおいて後で起動される変数の導出プロセスで使用する場合、x=0..nPbSw-1およびy=0..nPbSh-1に関して次の割当てが行われる:
bvIntra[xPb+x][yPb+y][compIdx]=bvIntra[xPb][yPb][compIdx](8-25)
【０１３７】
次の条件のすべてが真であることがビットストリーム適合性の要件である:
Bスライスタイプの場合、bvIntra[xPb][yPb][0]の値は、-(xPb%CtbSizeY+64)以上とすべきである。
Bスライスタイプの場合、bvIntra[xPb][yPb][1]の値は、-(yPb%CtbSizeY)以上とすべきである。
z走査順序ブロック可用性に関する導出プロセスが、入力として、(xCb,yCb)に等しく設定された(xCurr,yCurr)および(xPb+bvIntra[xPb][yPb][0],yPb+bvIntra[xPb][yPb][1])に等しく設定された近隣ルーマロケーション(xNbY,yNbY)を用いて起動されるとき、出力はTRUEに等しくあるべきである。
z走査順序ブロック可用性に関する導出プロセスが、入力として、(xCb,yCb)に等しく設定された(xCurr,yCurr)および(xPb+bvIntra[xPb][yPb][0]+nPbSw-1,yPb+bvIntra[xPb][yPb][1]+nPbSh-1)に等しく設定された近隣ルーマロケーション(xNbY,yNbY)を用いて起動されるとき、出力はTRUEに等しくあるべきである。
次の条件のうち1つまたは両方は真とすべきである。
bvIntra[xPb][yPb][0]+nPbSw<=0
bvIntra[xPb][yPb][1]+nPbSh<=0
【０１３８】
図7は、ビデオデータを符号化するプロセス700の一実施形態を示す。プロセス700は、複数の符号化ビデオピクチャを生成するために実装される。いくつかの態様では、プロセス700は、図1に示した符号化デバイス104など、コンピューティングデバイスまたは装置によって実行され得る。たとえば、コンピューティングデバイスまたは装置は、エンコーダ、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはプロセス700のステップを実行するように構成された、エンコーダの他の構成要素であってよい。
【０１３９】
プロセス700は、その動作がハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す論理フロー図として示される。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されるとき、列挙される動作を実行する1つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は限定と見なされることを目的とせず、プロセスを実装するために、任意の数の説明される動作を任意の順序で、かつ/または並行して組み合わせることが可能である。
【０１４０】
加えて、プロセス700は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行可能であり、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。上記のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形でコンピュータ可読または機械可読記憶媒体上に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【０１４１】
702で、プロセッサ700は、予測ユニットを生成するためにピクチャのうちの1つのブロックに対してイントラピクチャ予測を実行するステップを含む。いくつかの実施形態では、イントラピクチャ予測を実行するステップは、コーディングツリーユニット(CTU)のイントラブロックコピー予測のための参照ブロックを選択するステップであって、選択された参照ブロックが複数の符号化ブロックから選択され、双予測を用いて符号化されたCTU内のブロックが参照ブロックとしての選択から除外される、選択するステップを含む。イントラピクチャ予測を実行するステップはまた、予測ユニットを生成するために参照ブロックに対してイントラブロックコピー予測を実行するステップを含み得る。
【０１４２】
704で、プロセス700は、実行されたイントラピクチャ予測に基づいて予測ユニットを符号化するシンタックス要素を生成するステップを含む。
【０１４３】
いくつかの実施形態では、プロセス700は本明細書で論じる他の態様を含む。たとえば、プロセス700は、予測ユニットサイズを決定するステップであって、予測ユニットサイズがしきい値に満たないことに少なくとも部分的に応じて、双予測を用いて符号化されたブロックが選択から除外される、決定するステップを含み得る。いくつかの実施形態では、プロセス700で、インター予測を用いて符号化された1つまたは複数のブロックは参照ブロックとしての選択から除外される。たとえば、インター予測を用いて符号化された1つまたは複数のブロックは、CTUのさらなるブロックを符号化するための参照ブロックとしての選択から除外され得る。そのような実施形態では、プロセスは、予測ユニットサイズを決定するステップであって、予測ユニットサイズがしきい値に満たないことに少なくとも部分的に応じて、インター予測を用いて符号化されたブロックが選択から除外される、決定するステップを含み得る。
【０１４４】
いくつかの実施形態では、プロセス700で、パディング方式を使用して、代理参照ブロックが生成される。いくつかの実施形態では、イントラブロックコピー予測を実行するステップは、選択された参照ブロックとして代理ブロックを使用するステップを含む。
【０１４５】
いくつかの実施形態では、プロセス700は、CTUが双予測を用いて生成された予測ブロックを有するかどうかを決定するステップであって、双予測を用いて符号化されたブロックが、CTUが双予測を用いて生成された予測ブロックを有することに少なくとも部分的に応じて、選択から除外される、決定するステップを含む。そのような実施形態では、プロセス700はまた、CTUに関する双予測を用いて生成された予測ブロックの量を決定するステップと、予測ユニットサイズを決定するステップとを含み得る。双予測を用いて符号化されたブロックは、次いで、CTUが、しきい値を超える、双予測を用いて生成された予測ブロックの量を有すること、予測ユニットサイズがしきい値に満たないこと、CTUが、しきい値を超える、双予測を用いて生成された予測ブロックの量を有すること、および予測ユニットサイズがしきい値に満たないことのうちのいずれかに応じて、選択から除外され得る。
【０１４６】
いくつかの実施形態では、プロセス700は、適応動きベクトル解像度(AMVR)を実行するステップと、予測ユニットサイズを決定するステップとを含む。そのような実施形態では、双予測を用いて符号化されるブロックは、予測ユニットサイズがしきい値に満たないことと、AMVRが無効化されているという表示を受信することの両方の組合せに少なくとも部分的に応じて、選択から除外され得る。いくつかの実施形態では、この組合せは、異なる参照ユニットおよび異なる動きベクトルのうちの少なくとも1つを有するインター予測双予測をさらに含む。
【０１４７】
いくつかの実施形態では、プロセス700は、符号化ブロックを含む探索エリアを決定するステップであって、探索エリアが、ピクチャタイプ、スライスタイプ、および区分サイズのうちの少なくとも1つに基づいて決定される、決定するステップを含む。
【０１４８】
当該領域内のブロックベクトルの分布に対する制限
より大きな探索範囲を使用するときにキャッシュ使用を改善し、キャッシュミスを低減するために、ブロックベクトル範囲に対する何らかの制約を適用することができる。
【０１４９】
ブロックベクトル範囲制約は、個々にまたは組み合わせて適用可能である。ブロックベクトル範囲制約の場合、当該領域は限定されず、たとえば、CU、CTB、最大コーディングユニット(LCU)、スライス、タイル、またはCU'、CTU'、CTB'、LCU'、スライス、もしくはタイルのセットであってよい。
【０１５０】
いくつかの実施形態では、ブロックベクトルの範囲は当該領域内に制約される。たとえば、ブロックベクトルの範囲は、現在CU内に制約され得る。いくつかの実施形態では、異なる当該領域は異なるブロックベクトル範囲に制約を有する。加えて、シンタックス要素は、各当該領域に関するブロックベクトル範囲を指定するために使用され得る。
【０１５１】
一例として、ブロックベクトルの範囲はタイル内に制約され得る。したがって、現在の予測ユニットに関する予測サンプルは、同じタイル内からに制約される。利益の中でも、この制約は効率的な並列処理を促す。いくつかの実施形態では、ブロックベクトルの範囲はスライス内に制約される。したがって、IBC予測はスライス境界を越えないように制約される。
【０１５２】
いくつかの実施形態では、当該領域内の任意の2つのブロックベクトルの最大差分が制約される。たとえば、当該スライス領域内のCUが特定のサイズのブロックベクトルを有する場合、そのスライス内のすべての他のブロックベクトルは、特定のサイズのあらかじめ定義された範囲内に限定され得る。加えて、シンタックス要素が、各当該領域に関する任意の2つのブロックベクトルの最大差分を指定するために使用され得る。
【０１５３】
仕様テキストおよびシンタックス
【０１５４】
いくつかの実施形態では、ブロックベクトル範囲および最大ブロックベクトル差分シンタックス要素は、次のパラメータセットのうちの1つまたは複数の中でシグナリングされ得る:VPS、SPS、PPS、ビデオ活用性情報(VUI)、スライスヘッダ、またはそのそれぞれの拡張。
【０１５５】
Bスライスに関するローカル探索エリアを用いたJCTVC-P1005_v4に基づく例示的な仕様テキストについて下で論じる。本明細書で論じる実施形態は、例示的な仕様テキストに適合する。
【０１５６】
復号プロセス
【０１５７】
変数[x0][y0][compIdx]は、イントラブロックコピー予測モードのために使用されることになるベクトル成分を指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する考慮される予測ブロックの左上ルーマサンプルのロケーション(x0,y0)を指定する。変数BvdispIntra[x0][y0][compIdx]は、ロケーション(x0,y0)(たとえば、BvIntra[x0][y0][compIdx])およびロケーション(xi,yj)(たとえば、BvIntra[xi][yj][compIdx])に関するイントラブロックコピー予測モードのために使用されることになるベクトル成分の差分を指定する。アレイインデックスxi,yjは、ロケーション(xi,yj)および(x0,y0)が同じCTU内にあるように、任意のi、jに関するピクチャの左上ルーマサンプルに対して考慮される予測ブロックの左上ルーマサンプルのロケーション(xi,yj)を指定する。
【０１５８】
すべてのi、jに関して、BvdispIntra[xi][yj][compIdx]は、両端値を含む-128から128の範囲内とすべきである。水平ブロックベクトル成分にはcompIdx=0が割り当てられ、垂直ブロックベクトル成分にはcompIdx=1が割り当てられる。
【０１５９】
上記の仕様において、両端値を含む-128から128の範囲は、一例として使用され、その範囲の実際の値は異なる値に固定されてよく、またはシグナリングされてもよい。
【０１６０】
下記は例示的なシグナリング方法を示す。
【０１６１】
【表３】
0006527891.tif 000004
【０１６２】
log2_max_ctu_deltaBV_length_horizontalおよびlog2_max_ctu_deltaBV_length_verticalは、同じCTUに属し、かつCVS内のすべてのピクチャに関して、整数ルーマサンプル単位で利用可能な任意の予測ユニットの復号水平および垂直ブロックベクトル成分の最大絶対差分値をそれぞれ示す。nの値は、ブロックベクトル成分のいずれの差分値も、整数ルーマサンプル変位単位で両端値を含む-2nから2n-1の範囲外でないことをアサートする。範囲および推論値を決定することができる。
【０１６３】
すべてのi、jに関して、BvdispIntra[xi][yj][compIdx]は、水平および垂直成分に関して、log2_max_ctu_deltaBV_length_horizontalおよびlog2_max_ctu_deltaBV_length_verticalによって指定された範囲内とするべきである。水平ブロックベクトル成分にはcompIdx=0が割り当てられ、垂直ブロックベクトル成分にはcompIdx=1が割り当てられる。
【０１６４】
代替として、範囲は、各compIx(水平および垂直ブロックベクトル)に関して、ならびにルーマおよびクロマ成分に関して異なり得る。代替として、範囲は、各compIx(水平および垂直ブロックベクトル)に関して、ならびにルーマおよびクロマ成分に関して異なり得る。
【０１６５】
代替として、範囲は、CTU、スライス、タイルなどの倍数としてシグナリングされ得る。
【０１６６】
【表４】
0006527891.tif 000005
【０１６７】
log2_max_BV_ctu_length_horizontalおよびlog2_max_BV_ctu_length_verticalは、同じCTUに属し、かつCVS内のすべてのピクチャに関して、CTBの単位で利用可能な任意の予測ユニットの復号水平および垂直ブロックベクトル成分の最大絶対差分値をそれぞれ示す。nの値は、ブロックベクトル成分のいずれの差分値も、CTB変位単位で両端値を含む-NからNの範囲外でないことをアサートする。
【０１６８】
当該領域内のブロックベクトル数に対する制限
上で論じたように、IBCは、低遅延P事例に関するブロックベクトルの最悪数を増大し得る。少なくとも、HEVCと同じ最悪の複雑性を維持し、システムリソース上の負荷をやはり低減するため(たとえば、予測サンプル負荷の数を削減するため)に、いくつかの実施形態は追加のまたは代替の特徴を含む。
【０１６９】
たとえば、特定の当該領域内のブロックベクトル数は、特定の当該領域に関するHEVCのブロックベクトルの最悪数以下に制約され得る。たとえば、当該領域内のブロックベクトル数は、すべてのブロックが同じ当該領域に関してN×2N/2N×Nとしてコーディングされる場合に存在することになるブロックベクトルの最悪数以下に制約され得る。いくつかの実施形態では、IBCモードは非Iスライスの最小区分(N×N)に関して制限され得る。
【０１７０】
ブロックベクトル数の制約およびIBCモードの制限は、個々でまたは組み合わせて適用され得る。ブロックベクトル数の制約およびIBCの制限では、当該領域は限定されず、たとえば、CU、CTB、最大コーディングユニット(LCU)、スライス、タイル、またはCU'、CTU'、CTB'、LCU'、スライス、もしくはタイルのセットであってよい。
【０１７１】
制約Iスライス
いくつかの実施形態では、ブロックベクトルの範囲はスライス内に制約され得る。すなわち、IBC予測はスライス境界を越えない。
【０１７２】
いくつかの実施形態では、新しいスライスタイプをシグナリングすることができる。新しいスライスタイプの場合、ブロックベクトルの範囲はスライス内に制約される。結果として、IBC予測は、新しいスライスタイプのスライスに関するスライス境界を越えない。
【０１７３】
いくつかの実施形態では、フラグは、ブロックベクトルの範囲がスライス内に制約されることを指定することができる。フラグの状態の結果として、IBC予測はスライス境界を越えない。フラグは、たとえば、次のパラメータセットのうちの1つまたは複数の中でシグナリングされ得る。VPS、SPS、PPS、ビデオ活用性情報(VUI)、スライスヘッダ、またはそのそれぞれの拡張。
【０１７４】
本明細書で説明する技法およびシステムを使用して、イントラブロックコピー技法は低減されたメモリ帯域幅およびサイズ要件を用いて実行される。結果として、メモリ帯域幅効率が改善され、最悪メモリアクセスが制限され、イントラブロックコピーの他の態様が拡張される。
【０１７５】
本明細書で論じるコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実装され得る。システムは、宛先デバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを含み得る。場合によっては、ソースデバイスおよび宛先デバイスは、ワイヤレス通信に対応し得る。
【０１７６】
宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを含み得る。1つの例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータをリアルタイムで宛先デバイスに直接送信することを可能にするための通信媒体を含み得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルなどの任意のワイヤレスもしくはワイヤード通信媒体、または、1つもしくは複数の物理的伝送線を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を促すために有用であり得る任意の他の機器を含み得る。
【０１７７】
いくつかの例では、符号化データは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイスに送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスすることができる。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【０１７８】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されない。本技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)のようなインターネットストリーミングビデオ送信、データ記憶媒体に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例のような、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【０１７９】
一例では、ソースデバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含む。宛先デバイスは、入力インターフェースと、ビデオデコーダと、ディスプレイデバイスとを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイスは、外部のカメラのような外部のビデオソースからビデオデータを受信することができる。同様に、宛先デバイスは、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースし得る。
【０１８０】
上の例示的なシステムは一例にすぎない。ビデオデータを並列に処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。本開示の技法は概してビデオ符号化デバイスによって実行されるが、本技法は、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイスおよび宛先デバイスは、宛先デバイスへ送信するためのコード化ビデオデータをソースデバイスが生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースおよび宛先デバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように、実質的に対称的な方式で動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話のために、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【０１８１】
ビデオソースは、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/または、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースのような、ビデオキャプチャデバイスを含み得る。さらなる代替形態として、ビデオソースは、ソースビデオ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータにより生成されたビデオの組合せとして、コンピュータグラフィックスベースのデータを生成することができる。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラ電話またはビデオ電話を形成し得る。上で言及されたように、しかしながら、本開示で説明する技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各々の場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダによって符号化され得る。符号化ビデオ情報は次いで、コンピュータ可読媒体へと出力インターフェースによって出力され得る。
【０１８２】
述べたように、コンピュータ可読媒体は、ワイヤレスブロードキャスト送信もしくはワイヤードネットワーク送信のような一時的媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体のような、記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、ソースデバイスから符号化ビデオデータを受信し、符号化ビデオデータを、たとえばネットワーク送信を介して宛先デバイスに提供することができる。同様に、ディスクスタンピング施設のような、媒体生産施設のコンピューティングデバイスは、ソースデバイスから符号化ビデオデータを受信し、符号化ビデオデータを含むディスクを生産することができる。したがって、コンピュータ可読媒体は、様々な例において、様々な形式の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【０１８３】
宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックの特性および/または処理ならびに他のコード化ユニット、たとえば、ピクチャグループ(GOP)を記述するシンタックス要素を含む、ビデオデコーダによっても使用される、ビデオエンコーダによって定義されるシンタックス情報を含み得る。ディスプレイデバイスは、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、種々のディスプレイデバイスのいずれかを含み得る。本発明の様々な実施形態が説明されてきた。
【０１８４】
符号化デバイス104および復号デバイス112の特定の詳細を、それぞれ、図8および図9に示す。図8は、本開示で説明する技術のうちの1つまたは複数を実装してもよい例示的な符号化デバイス104を示すブロック図である。符号化デバイス104は、たとえば、本明細書で説明するシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成することができる。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを実行し得る。前に説明したように、イントラコーディングは、空間予測に少なくとも部分的に依拠して、所与のビデオフレームまたはピクチャ内の空間的冗長性を低減または除去する。インターコーディングは、時間的予測に少なくとも部分的に依拠して、ビデオシーケンスの隣接するまたは周囲のフレームまたはピクチャ内の時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指してもよい。片方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指してもよい。
【０１８５】
符号化デバイス104は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構成のために、符号化デバイス104はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことを目的とする。図8では、フィルタユニット63はループフィルタとして示されるが、他の構成では、フィルタユニット63はポストループフィルタとして実装され得る。後処理デバイス57は、符号化デバイス104によって生成された符号化ビデオデータに対して追加の処理を実行することができる。本開示の技法は、場合によっては、符号化デバイス104によって実装され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実装され得る。
【０１８６】
図8に示すように、符号化デバイス104は、ビデオデータを受信し、区分ユニット35は、データをビデオブロックに区分する。この区分はまた、スライス、スライス区分、タイル、または他のより大きい単位への区分、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含んでもよい。符号化デバイス104は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割されてもよい。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよび歪のレベルなど)に基づいて、現在のビデオブロックのための、複数のイントラ予測コーディングモードのうちの1つまたは複数のインター予測コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択してもよい。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、および、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に、得られたイントラまたはインターコード化ブロックを提供してもよい。
【０１８７】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を提供するためにコーディングされるべき現在のブロックと同じフレームまたはスライス内の1つまたは複数の近隣ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を提供するために、1つまたは複数の参照ピクチャ内の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
【０１８８】
動き推定ユニット42は、ビデオシーケンスのための所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成されてもよい。所定のパターンは、Pスライス、Bスライス、またはGPBスライスとしてシーケンス内のビデオスライスを指定してもよい。動き推定ユニット42および動き補償ユニット44は高集積され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックのための動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示してもよい。
【０１８９】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定されてもよいピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に整合することが見出されたブロックである。いくつかの例では、符号化デバイス104は、ピクチャメモリ64内に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算し得る。たとえば、符号化デバイス104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力してもよい。
【０１９０】
動き推定ユニット42は、参照ピクチャの予測ブロックの位置とPUの位置とを比較することによって、インターコード化スライス内のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、その各々が参照ピクチャメモリ64内に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
【０１９１】
動き補償ユニット44によって実行される動き補償は、あるいはサブピクセル精度で補間を行う動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴ってもよい。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリスト内で動きベクトルが指す予測ブロックの位置を特定してもよい。符号化デバイス104は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックのための残差データを形成し、ルーマおよびクロマ成分の両方を含んでもよい。加算器50は、この減算演算を実行する1つまたは複数の成分を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス112によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成してもよい。
【０１９２】
イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するためのイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間、様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測処理ユニット46は、テストされたモードから、使用するための適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードに対してレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中から最良のレート歪み特性を有するイントラ予測モードを選択してもよい。所定の分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の非符号化ブロックとの間の歪(または誤差)、ならびに、符号化ブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックのための最良のレート歪み値を示すのかを決定するために、様々な符号化ブロックのための歪みおよびレートから比を計算してもよい。
【０１９３】
いずれの場合でも、ブロックのためのイントラ予測モードを選択した後、イントラ予測処理ユニット46は、エントロピー符号化ユニット56にブロックのための選択されたイントラ予測モードを示す情報を提供してもよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化してよい。符号化デバイス104は、送信ビットストリーム内に、様々なブロックのための符号化コンテキストの構成データ定義、ならびにコンテキストの各々に関して使用するための、最確のイントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルを含み得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルと、(コードワードマッピングテーブルとも呼ばれる)複数の修正されたイントラ予測モードインデックステーブルとを含み得る。
【０１９４】
予測処理ユニット41がインター予測またはイントラ予測のいずれかによって現在のビデオブロックのための予測ブロックを生成した後、符号化デバイス104は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTU内に含まれ、変換処理ユニット52に適用されてもよい。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換してもよい。
【０１９５】
変換処理ユニット52は、結果として生じた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスでは、係数の一部またはすべてに関連するビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって変更されてもよい。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行してもよい。代替的には、エントロピー符号化ユニット56が走査を実行してもよい。
【０１９６】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化技法を実行することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、復号デバイス112に送信されてもよく、または、復号デバイス112による後の送信または取出しのためにアーカイブされてもよい。エントロピー符号化ユニット56は、コーディングされている現在のビデオスライスに関する動きベクトルおよび他のシンタックス要素を符号化してもよい。
【０１９７】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後に使用するためのピクセル領域における残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算してもよい。動き補償ユニット44はまた、動き推定で使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構成された残差ブロックに適用し得る。加算器62は、ピクチャメモリ64内に記憶するための参照ブロックを生成するために動き補償ユニット44によって生成された動き補償された予測ブロックに再構成された残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するために、参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用されてもよい。
【０１９８】
このようにして、図8の符号化デバイス104は、符号化ビデオビットストリームに関するシンタックスを生成するように構成されたビデオエンコーダの一例を表す。符号化デバイス104は、たとえば、上で説明したように、VPS、SPS、およびPPSパラメータセットを生成することができる。符号化デバイス104は、図4、図6、および図8に関して上で説明したプロセスを含めて、本明細書で説明する技法のうちのいずれかを実行することができる。本開示の技法は、概して、符号化デバイス104に関して説明されるが、上記のように、本開示の技法のうちのいずれかは、後処理デバイス57によって実装されてもよい。
【０１９９】
図9は、例示的な復号デバイス112を示すブロック図である。復号デバイス112は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。復号デバイス112は、いくつかの例では、図8からの符号化デバイス104に関して説明した符号化パスと概して相反の復号パスを実行し得る。
【０２００】
復号プロセスの間、復号デバイス112は、符号化ビデオスライスのビデオブロックを表し、符号化デバイス104によって送られたシンタックス要素に関連付けられた符号化ビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化ビデオビットストリームを受信することができる。いくつかの実施形態では、復号デバイス112は、サーバ、メディア認識ネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上で説明した技法のうちの1つまたは複数を実装するように構成された他のそのようなデバイスなど、ネットワークエンティティ79から符号化ビデオビットストリームを受信することができる。ネットワークエンティティ79は、符号化デバイス104を含んでもよく、または含まなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス112に送信するのに先立って、ネットワークエンティティ79によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス112は別個のデバイスの一部であってよいのに対して、他の事例では、ネットワークエンティティ79に関して説明する機能は、復号デバイス112を含む同じデバイスによって実行され得る。
【０２０１】
復号デバイス112のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームを復号する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトルと他のシンタックス要素とを転送する。復号デバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。エントロピー復号ユニット80は、VPS、SPS、およびPPSなど、1つまたは複数のパラメータセット内の固定長シンタックス要素と可変長シンタックス要素の両方を処理およびパースすることができる。
【０２０２】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成してもよい。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信した動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、ピクチャメモリ92内に記憶された参照ピクチャに基づいて、デフォルトの構成技術を使用して、参照フレームリスト、リスト0およびリスト1を構成してもよい。
【０２０３】
動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、パラメータセット内の1つまたは複数のシンタックス要素を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための1つまたは複数の参照ピクチャリストに関する構成情報、スライスの各インターコード化ビデオブロックのための動きベクトル、スライスの各インターコード化ビデオブロックのためのインター予測状態、および現在のビデオスライス内のビデオブロックを復号するための他の情報を決定することができる。
【０２０４】
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行してもよい。動き補償ユニット82は、ビデオブロックの符号化の間に符号化デバイス104によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素に対して補間された値を算出し得る。この場合には、動き補償ユニット82は、受信したシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するために補間フィルタを使用してもよい。
【０２０５】
逆量子化ユニット86は、ビットストリーム内で提供され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化する(inverse quantize)、すなわち量子化解除する(de-quantize)。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内の各ビデオブロックのための、ビデオエンコーダ20によって計算された量子化パラメータの使用を含んでもよい。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために変換係数に逆変換(たとえば、逆DCTまたは他の適切な逆変換)、逆整数変換、または概念的に同様の逆変換プロセスを適用する。
【０２０６】
動き補償ユニット82が、動きベクトルと他のそのシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の成分を表す。所望により、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタもまた、ピクセル遷移を平滑化するため、またはさもなければビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことを目的とする。図9では、フィルタユニット91はループフィルタとして示されるが、他の構成では、フィルタユニット91はポストループフィルタとして実装され得る。次いで、所与のフレームまたはピクチャ内の復号ビデオブロックはピクチャメモリ92内に記憶され、ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、図1に示したビデオ宛先デバイス122などのディスプレイデバイス上で後に提示するための復号ビデオを記憶する。
【０２０７】
前述の説明では、本出願の態様は、その特定の実施形態を参照して説明されたが、本発明はこれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、本発明の概念は、場合によっては、様々に実施または採用されてよく、添付の特許請求の範囲は、先行技術による限定を除いて、そのような変形形態を含むことを目的とすることを認識されたい。上述の発明の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書の広い趣旨および範囲から逸脱せずに、本明細書で説明した環境および適用例以外の任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、これらの方法は、説明した順序とは異なる順序で実行され得ることを諒解されたい。
【０２０８】
構成要素がある動作を実行する「ように構成」されているとして説明される場合、そのような構成は、たとえば、その動作を実行するための電子回路またはハードウェアを設計することによって、その動作を実行するためのプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成され得る。
【０２０９】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、概して、それらの機能に関して上で説明した。そのような機能がハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の用途およびシステム全体に課せられる設計制約によって決まる。当業者は、説明した機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装決定は本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【０２１０】
本明細書で説明した技術はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明した任意の特徴が、集積論理デバイス内で一緒に、または個別であるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されるとき、上で説明した方法の1つまたは複数を実行する命令を含むプログラムコードを含むコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのような、メモリまたはデータ記憶媒体を含み得る。本技法は、追加または代替として、伝搬される信号または波のような、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０２１１】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装され得る。したがって、本明細書で使用した「プロセッサ」という用語は、本明細書で説明した技法の実装に適した、前述の構造、前述の構造または任意の他の構造もしくは装置の任意の組合せのうちの任意のものを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内で提供されてよく、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれてよい。
【符号の説明】
【０２１２】
35  区分ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
57  ポスト処理デバイス
58  逆量子化ユニット
60  逆変換ユニット
62  加算器
63  フィルタユニット
64  ピクチャメモリ
100  システム
102  ビデオソース
104  符号化デバイス
106  エンコーダエンジン
108  ストレージ
110  出力
112  復号デバイス
114  入力
116  デコーダエンジン
118  ストレージ
120  通信リンク
122  ビデオ宛先デバイス
200  コード化ピクチャ
202  現在のコーディングユニット
204  予測ブロック
206  ブロックベクトル
500  プロセス
600  プロセス
700  プロセス
【図１】
0006527891.tif 000006
【図２】
0006527891.tif 000007
【図３】
0006527891.tif 000008
【図４】
0006527891.tif 000009
【図５】
0006527891.tif 000010
【図６】
0006527891.tif 000011
【図７】
0006527891.tif 000012
【図８】
0006527891.tif 000013
【図９】
0006527891.tif 000014