(57)【要約】  ピクチャのビデオ情報を符号化するように構成された装置は、メモリユニットと、メモリユニットと通信しているプロセッサとを含む。メモリユニットは、ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するように構成され、参照ブロックは、ピクチャ中の利用可能なブロックのサブセットである。プロセッサは、現在のブロックへのハッシュ関数の適用に基づいて、ハッシュテーブル中のハッシュインデックスに現在のブロックをマッピングすることと、ハッシュテーブルから、ハッシュインデックスに対応する参照ブロックを識別することと、参照ブロックとの現在のブロックの比較に基づいて、参照ブロックの中から予測ブロックを選択することと、選択された予測ブロックを使用して、ビデオ情報を符号化することとを行うように構成される。【選択図】図５
2017513343.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャのビデオ情報を符号化するための装置であって、
前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するように構成されたメモリユニット、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記メモリユニットに動作可能に結合されたプロセッサと
を備え、前記プロセッサは、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
を行うように構成される、装置。
【請求項２】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項１に記載の装置。
【請求項３】
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１に記載の装置。
【請求項４】
前記参照ブロックは、リンクリストを備える、
請求項１に記載の装置。
【請求項５】
前記プロセッサは、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項６】
前記プロセッサは、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項７】
前記プロセッサは、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項８】
ピクチャのビデオ情報を符号化するための方法であって、
メモリユニットに、前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶すること、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
を備える、方法。
【請求項９】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項８に記載の方法。
【請求項１０】
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項８に記載の方法。
【請求項１１】
前記参照ブロックは、リンクリストを備える、
請求項８に記載の方法。
【請求項１２】
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１３】
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１４】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１５】
実行されたとき、
メモリユニットに、ピクチャのビデオ情報を符号化する際に使用するハッシュテーブルを記憶すること、前記ハッシュテーブルは、前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを備え、前記参照ブロックが、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
をデバイスのプロセッサに行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記参照ブロックは、リンクリストを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
実行されたとき、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
実行されたとき、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
実行されたとき、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
ピクチャのビデオ情報を符号化するように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するための手段、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングするための手段と、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別するための手段と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択するための手段と、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化するための手段と
を備える、ビデオコーディングデバイス。
【請求項２３】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２４】
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２５】
前記参照ブロックは、リンクリストを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２６】
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２７】
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２８】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、一般にビデオコーディングおよび圧縮の分野に関し、詳細には、ビデオコーデックのコンテキストにおけるイントラブロックコピー（イントラＢＣ）に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ムービングピクチャエキスパートグループ−２（ＭＰＥＧ−２）、ＭＰＥＧ−４、万国電信連合−電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００３】
[0003]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間（ピクチャ内）予測および／または時間（ピクチャ間）予測を実行する。ブロックベースビデオコーディングの場合、ビデオスライスが、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【発明の概要】
【０００４】
[0004]本開示のシステム、方法およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示する望ましい属性を単独で担当するとは限らない。
【０００５】
[0005]一態様では、ピクチャのビデオ情報を符号化するための装置は、ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するように構成されたメモリユニットと、参照ブロックが、ピクチャ中の利用可能なブロックのサブセットである、メモリユニットに動作可能に結合され、現在のブロックへのハッシュ関数の適用に基づいて、ハッシュテーブル中のハッシュインデックスに現在のブロックをマッピングすることと、ハッシュテーブルから、ハッシュインデックスに対応する参照ブロックを識別することと、参照ブロックとの現在のブロックの比較に基づいて、参照ブロックの中から予測ブロックを選択することと、選択された予測ブロックを使用して、ビデオ情報を符号化することとを行うように構成されたプロセッサとを備える。
【０００６】
[0006]別の態様では、ピクチャのビデオ情報を符号化するための方法は、メモリユニットに、ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶することと、参照ブロックが、ピクチャ中の利用可能なブロックのサブセットである、現在のブロックへのハッシュ関数の適用に基づいて、ハッシュテーブル中のハッシュインデックスに現在のブロックをマッピングすることと、ハッシュテーブルから、ハッシュインデックスに対応する参照ブロックを識別することと、参照ブロックとの現在のブロックの比較に基づいて、参照ブロックの中から予測ブロックを選択することと、選択された予測ブロックを使用して、ビデオ情報を符号化することとを備える。
【０００７】
[0007]別の態様では、非一時的コンピュータ可読記憶媒体は、実行されたとき、メモリユニットに、ピクチャのビデオ情報を符号化する際に使用するハッシュテーブルを記憶することと、ハッシュテーブルが、ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを備え、参照ブロックが、ピクチャ中の利用可能なブロックのサブセットである、現在のブロックへのハッシュ関数の適用に基づいて、ハッシュテーブル中のハッシュインデックスに現在のブロックをマッピングすることと、ハッシュテーブルから、ハッシュインデックスに対応する参照ブロックを識別することと、参照ブロックとの現在のブロックの比較に基づいて、参照ブロックの中から予測ブロックを選択することと、選択された予測ブロックを使用して、ビデオ情報を符号化することとをデバイスのプロセッサに行わせる命令を記憶している。
【０００８】
[0008]また別の態様では、ピクチャのビデオ情報を符号化するように構成されたビデオコーディングデバイスは、ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するための手段と、参照ブロックが、ピクチャ中の利用可能なブロックのサブセットである、現在のブロックへのハッシュ関数の適用に基づいて、ハッシュテーブル中のハッシュインデックスに現在のブロックをマッピングするための手段と、ハッシュテーブルから、ハッシュインデックスに対応する参照ブロックを識別するための手段と、参照ブロックとの現在のブロックの比較に基づいて、参照ブロックの中から予測ブロックを選択するための手段と、選択された予測ブロックを使用して、ビデオ情報を符号化するための手段とを備える。
【図面の簡単な説明】
【０００９】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図１Ｂ】本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】本開示で説明する態様による技法を実装し得るビデオ符号化器の一例を示すブロック図。
【図２Ｂ】本開示で説明する態様による技法を実装し得るビデオ符号化器の一例を示すブロック図。
【図３Ａ】本開示で説明する態様による技法を実装し得るビデオ復号器の一例を示すブロック図。
【図３Ｂ】本開示で説明する態様による技法を実装し得るビデオ復号器の一例を示すブロック図。
【図４】[0015]イントラブロックコピーを使用する符号化器探索の従来の例を示す図。
【図５】[0016]本開示で説明する態様による、イントラＢＣのためのハッシュベース高速符号化器探索の例示的なフレームワークを示す図。
【図６】[0017]本開示で説明する態様による、ハッシュベース符号化器探索を使用してピクチャのビデオ情報を符号化するための例示的なフローチャートの図。
【発明を実施するための形態】
【００１０】
[0018]概して、本開示は、高効率ビデオコーディング（ＨＥＶＣ）など、高度ビデオコーデックのコンテキストにおけるイントラブロックコピー（イントラＢＣ）に関する。一例として、本開示は、ＨＥＶＣの範囲拡張（ＲＥｘｔ）におけるイントラＢＣのための改善された符号化器探索に関する。しかしながら、技法は、ＨＥＶＣ規格またはそれの範囲拡張に限定されると見なされるべきではない。
【００１１】
[0019]リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティングなどの適用例の使用がより普及している。これらの適用例におけるビデオコンテンツは、通常、同じピクチャ内の、自然コンテンツならびに（非自然コンテンツとも呼ばれる）テキスト、人工グラフィックスなどの組合せである。テキストおよび人工グラフィックス領域では、反復パターン（たとえば、文字、アイコン、シンボルなど）がしばしば存在する。イントラＢＣは、そのような反復パターンによる冗長を削除することと、フレーム内コーディング効率を改善することとを伴う専用技法である。より詳細には、イントラＢＣは、現在のコーディングユニット（ＣＵ）または現在の予測ユニット（ＰＵ：prediction unit）が、同じピクチャまたは同じスライス内の別の領域からの別の前に再構成されたブロックに基づいて予測されるブロックマッチング技法である。
【００１２】
[0020]好適な再構成されたブロックを見つけるために、符号化器は、一般に、ビデオ情報のフレーム全体であり得る、探索領域全体に対する探索を実行する。イントラＢＣのための探索速度を改善するための様々な方法が提案されている。しかしながら、これらの方法は、探索領域が大きい（たとえば、フレーム全体である）場合、有効でないことがある。これは、大きい探索領域が、その各々がイントラＢＣ中に個々に検査されなければならないことがある、多くのブロックを含んでいることがあるからである。
【００１３】
[0021]本開示の実施形態は、ハッシュテーブルの使用によってピクチャのビデオ情報を符号化するための技法を提供することによって、前のイントラＢＣ方法における問題に対処する利点を与える。ハッシュテーブルは、ピクチャ中の前に再構成されたブロックのサブセットに対応する少なくとも１つのハッシュインデックスを含み得る。現在のブロックが、次いで、ハッシュ関数の使用によってハッシュインデックスにマッピングされ得、イントラＢＣは、現在のブロックがそれにマッピングされたハッシュインデックスに対応する再構成されたブロックに制限され得る。したがって、そのような実施形態は、探索領域全体ではなく特定の再構成されたブロックにイントラＢＣのための符号化器探索を制限することに好適である。
【００１４】
[0022]動きをもつテキストおよびグラフィックスなど、スクリーンコンテンツ材料のための新しいコーディングツールの調査が望まれる。スクリーンコンテンツのためのコーディング効率を改善するいくつかの技術について以下で説明する。コーディング効率の改善は、専用コーディングツールを用いてスクリーンコンテンツの特性を活用することによって達成され得る。スクリーンコンテンツコーディングのための固有のツールを含む、ＨＥＶＣ規格の拡張が本明細書で提供される。
【００１５】
[0023]いくつかの実施形態について、ＨＥＶＣおよび／またはＨ．２６４規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそのスケーラブル拡張とマルチビュー拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４のうちの１つまたは複数に適用可能であり得る。また、本開示で説明する技法は、将来において開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１６】
[0024]ＨＥＶＣは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。ＨＥＶＣにおける予測のユニットは、いくつかの前のビデオコーディング規格における予測のユニット（たとえば、マクロブロック）とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、ＨＥＶＣ中に存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、４分木方式に基づく階層構造と置き換えられる。たとえば、ＨＥＶＣ方式内で、３つのタイプのブロック、ＣＵ、ＰＵ、および変換ユニット（ＴＵ：transform unit）が定義される。ＣＵは領域分割の基本ユニットを指すことがある。ＣＵはマクロブロックの概念に類似すると見なされ得るが、ＨＥＶＣは、ＣＵの最大サイズを制限せず、コンテンツ適応性を改善するために４つの等しいサイズのＣＵへの再帰的分割を可能にし得る。ＰＵはインター／イントラ予測の基本ユニットと見なされ得、単一のＰＵは、不規則な画像パターンを効果的にコーディングするために、複数の任意の形状パーティションを含んでいることがある。ＴＵは変換の基本ユニットと見なされ得る。ＴＵは、ＰＵとは無関係に定義され得るが、ＴＵのサイズは、ＴＵが属するＣＵのサイズに制限され得る。３つの異なる概念へのブロック構造のこの分離は、各ユニットがユニットのそれぞれの役割に従って最適化されることを可能にし得、それによりコーディング効率が改善され得る。
【００１７】
[0025]単に説明の目的で、本明細書で開示するいくつかの実施形態について、ビデオデータのただ２つのレイヤ（たとえば、ベースレイヤなどの下位レイヤ、およびエンハンスメントレイヤなどの上位レイヤ）を含む例を用いて説明する。ビデオデータの「レイヤ」は、概して、ビュー、フレームレート、解像度などの少なくとも１つの共通の特性を有するピクチャのシーケンスを指すことがある。たとえば、レイヤは、マルチビュービデオデータの特定のビュー（たとえば、パースペクティブ）に関連付けられたビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤに関連付けられたビデオデータを含み得る。したがって、本開示は、ビデオデータのレイヤおよびビューを互換的に指すことがある。すなわち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤはビデオデータのビューと呼ばれることがある。さらに、（マルチレイヤビデオコーダまたはマルチレイヤ符号化器復号器とも呼ばれる）マルチレイヤコーデックは、マルチビューコーデックまたはスケーラブルコーデック（たとえば、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、ＳＨＶＣ、または別のマルチレイヤコーディング技法を使用するビデオデータを符号化および／または復号するように構成されたコーデック）を共同で指すことがある。ビデオ符号化およびビデオ復号は両方とも、概して、ビデオコーディングと呼ばれることがある。そのような例は、複数のベースレイヤおよび／またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。ただし、これらの用語は限定的なものではない。たとえば、以下で説明する技法は、ブロック（たとえば、ＣＵ、ＰＵ、ＴＵ、マクロブロックなど）、スライス、フレームなど、任意の好適なビデオユニットとともに使用され得る。  
ビデオコーディング規格
【００１８】
[0026]ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像符号化器から画像復号器に搬送されるべき情報の甚だしい量は、リアルタイム画像送信を不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００１９】
[0027]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、そのスケーラブル拡張とマルチビュー拡張とを含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４とを含む。
【００２０】
[0028]さらに、ビデオコーディング規格、すなわち、ＨＥＶＣが、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣ  ＭＰＥＧとのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaboration Team on Video Coding）によって開発された。ＨＥＶＣドラフト１０についての完全引用は、文書ＪＣＴＶＣ−Ｌ１００３、Ｂｒｏｓｓら、「High Efficiency Video Coding (HEVC) Text Specification Draft 10」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１２回会合：ジュネーブ、スイス、２０１３年１月１４日〜２０１３年１月２３日である。ＨＥＶＣのマルチビュー拡張すなわちＭＶ−ＨＥＶＣ、およびＳＨＶＣと称されるＨＥＶＣのスケーラブル拡張も、それぞれＪＣＴ−３Ｖ（ＩＴＵ−Ｔ／ＩＳＯ／ＩＥＣジョイントコラボレーティブチームオン３Ｄビデオコーディング拡張開発）およびＪＣＴ−ＶＣによって開発されている。  
ビデオコーディングシステム
【００２１】
[0029]添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００２２】
[0030]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００２３】
[0031]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２４】
[0032]図１Ａは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオ符号化器とビデオ復号器の両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオ符号化器およびビデオ復号器に加えて、本出願で説明する態様は、トランスコーダ（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００２５】
[0033]図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。ただし、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００２６】
[0034]もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２７】
[0035]宛先デバイス１４は、復号されるべき符号化ビデオデータをリンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２８】
[0036]代替的に、符号化データは出力インターフェース２２から（オプションとして存在する）ストレージデバイス３１に出力され得る。同様に、符号化データは、たとえば、宛先デバイス１４の入力インターフェース２８によってストレージデバイス３１からアクセスされ得る。ストレージデバイス３１は、ハードドライブ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス３１は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイス３１から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することができる任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイトのための）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）接続）、ワイヤード接続（たとえば、デジタル加入者線（ＤＳＬ）、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイス３１からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００２９】
[0037]本開示の技法はワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信（たとえば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）上での動的適応ストリーミングなど）、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３０】
[0038]図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオ符号化器２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００３１】
[0039]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオ符号化器２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータは、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３１上に記憶され得る。図１Ａおよび図１Ｂに示されているビデオ符号化器２０は、図２Ａ示されているビデオ符号化器２０、図２Ｂに示されているビデオ符号化器２３、または本明細書で説明する他のビデオ符号化器を備え得る。
【００３２】
[0040]図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオ復号器３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介しておよび／またはストレージデバイス３１から符号化ビデオデータを受信し得る。リンク１６を介して通信され、またはストレージデバイス３１上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオ復号器３０などのビデオ復号器が使用するためのビデオ符号化器２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ記憶された符号化ビデオデータに含まれ得る。図１Ａおよび図１Ｂに示されているビデオ復号器３０は、図３Ａ示されているビデオ復号器３０、図３Ｂに示されているビデオ復号器３３、または本明細書で説明する他のビデオ復号器を備え得る。
【００３３】
[0041]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３４】
[0042]関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（オプションとして存在する）コントローラ／プロセッサデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれの構成要素は、場合によっては図１Ａのビデオコーディングシステム１０およびそれの構成要素と同様である。
【００３５】
[0043]ビデオ符号化器２０およびビデオ復号器３０は、ＨＥＶＣなどのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオ符号化器２０およびビデオ復号器３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としてはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３６】
[0044]図１Ａおよび図１Ｂの例には示されていないが、ビデオ符号化器２０およびビデオ復号器３０は、それぞれオーディオ符号化器および復号器と統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３７】
[0045]ビデオ符号化器２０およびビデオ復号器３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な符号化器回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオ符号化器２０およびビデオ復号器３０の各々は１つまたは複数の符号化器または復号器中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合符号化器／復号器の一部として統合され得る。  
ビデオコーディングプロセス
【００３８】
[0046]上記で手短に述べたように、ビデオ符号化器２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオ符号化器２０がビデオデータを符号化するとき、ビデオ符号化器２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
【００３９】
[0047]ビットストリームを生成するために、ビデオ符号化器２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオ符号化器２０がピクチャに対して符号化演算を実行するとき、ビデオ符号化器２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ビデオパラメータセット（ＶＰＳ）と、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、適応パラメータセット（ＡＰＳ）と、他のシンタックス構造とを含み得る。ＳＰＳは、ピクチャの０個以上のシーケンスに適用可能なパラメータを含んでいることがある。ＰＰＳは、０個以上のピクチャに適用可能なパラメータを含んでいることがある。ＡＰＳは、０個以上のピクチャに適用可能なパラメータを含んでいることがある。ＡＰＳ中のパラメータは、ＰＰＳ中のパラメータよりも変化する可能性が高いパラメータであり得る。
【００４０】
[0048]コード化ピクチャを生成するために、ビデオ符号化器２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット（ＬＣＵ：largest coding unit）と呼ばれることがある。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。ビデオ符号化器２０は、４分木区分（quadtree partitioning）を使用して、ツリーブロックのビデオブロックを、ＣＵに関連付けられたビデオブロックに区分し得、したがって「ツリーブロック」という名前がある。
【００４１】
[0049]いくつかの例では、ビデオ符号化器２０はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のＣＵを含み得る。いくつかの事例では、スライスは整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
【００４２】
[0050]ピクチャに対して符号化演算を実行することの一部として、ビデオ符号化器２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオ符号化器２０がスライスに対して符号化演算を実行するとき、ビデオ符号化器２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
【００４３】
[0051]コード化スライスを生成するために、ビデオ符号化器２０は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオ符号化器２０がツリーブロックに対して符号化演算を実行するとき、ビデオ符号化器２０はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
【００４４】
[0052]ビデオ符号化器２０がコード化スライスを生成するとき、ビデオ符号化器２０は、ラスタスキャン順序に従って、スライス中のツリーブロックに対して符号化演算を実行し得る（たとえば、そのツリーブロックを符号化し得る）。たとえば、ビデオ符号化器２０は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオ符号化器２０がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【００４５】
[0053]ラスタスキャン順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。したがって、ビデオ符号化器２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオ符号化器２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
【００４６】
[0054]コード化ツリーブロックを生成するために、ビデオ符号化器２０は、ツリーブロックのビデオブロックに対して４分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。たとえば、ビデオ符号化器２０は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分された、ＣＵであり得る。区分されていないＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分されていない、ＣＵであり得る。
【００４７】
[0055]ビットストリーム中の１つまたは複数のシンタックス要素は、ビデオ符号化器２０がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。ＣＵのビデオブロックは形状が正方形であり得る。ＣＵのビデオブロックのサイズ（たとえば、ＣＵのサイズ）は、８×８ピクセルから、最大６４×６４以上のピクセルをもつツリーブロックのビデオブロックのサイズ（たとえば、ツリーブロックのサイズ）までに及び得る。
【００４８】
[0056]ビデオ符号化器２０は、ｚスキャン順序に従って、ツリーブロックの各ＣＵに対して符号化演算を実行し得る（たとえば、各ＣＵを符号化し得る）。言い換えれば、ビデオ符号化器２０は、左上のＣＵと、右上のＣＵと、左下のＣＵと、次いで右下のＣＵとを、その順序で符号化し得る。ビデオ符号化器２０が、区分されたＣＵに対して符号化演算を実行するとき、ビデオ符号化器２０は、ｚスキャン順序に従って、区分されたＣＵのビデオブロックのサブブロックに関連付けられたＣＵを符号化し得る。言い換えれば、ビデオ符号化器２０は、左上のサブブロックに関連付けられたＣＵと、右上のサブブロックに関連付けられたＣＵと、左下のサブブロックに関連付けられたＣＵと、次いで右下のサブブロックに関連付けられたＣＵとを、その順序で符号化し得る。
【００４９】
[0057]ｚスキャン順序に従ってツリーブロックのＣＵを符号化した結果として、所与のＣＵの上、左上、右上、左、および左下のＣＵは符号化されていることがある。所与のＣＵの下および右のＣＵはまだ符号化されていない。したがって、ビデオ符号化器２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接するいくつかのＣＵを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオ符号化器２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接する他のＣＵを符号化することによって生成された情報にアクセスすることができないことがある。
【００５０】
[0058]ビデオ符号化器２０が、区分されていないＣＵを符号化するとき、ビデオ符号化器２０は、ＣＵのために１つまたは複数の予測ユニット（ＰＵ）を生成し得る。ＣＵのＰＵの各々は、ＣＵのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオ符号化器２０は、ＣＵの各ＰＵについて予測ビデオブロックを生成し得る。ＰＵの予測ビデオブロックはサンプルのブロックであり得る。ビデオ符号化器２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ビデオブロックを生成し得る。
【００５１】
[0059]ビデオ符号化器２０がイントラ予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオ符号化器２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオ符号化器２０がイントラ予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはイントラ予測されたＣＵである。ビデオ符号化器２０がインター予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオ符号化器２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオ符号化器２０がインター予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはインター予測されたＣＵである。
【００５２】
[0060]さらに、ビデオ符号化器２０がインター予測を使用してＰＵのための予測ビデオブロックを生成するとき、ビデオ符号化器２０はＰＵの動き情報を生成し得る。ＰＵの動き情報は、ＰＵの１つまたは複数の参照ブロックを示し得る。ＰＵの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはＰＵに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、ＰＵの参照ブロックはＰＵの「参照サンプル」と呼ばれることもある。ビデオ符号化器２０は、ＰＵの参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００５３】
[0061]ビデオ符号化器２０がＣＵの１つまたは複数のＰＵのための予測ビデオブロックを生成した後、ビデオ符号化器２０は、ＣＵのＰＵのための予測ビデオブロックに基づいて、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのＰＵのための予測ビデオブロック中のサンプルと、ＣＵの元のビデオブロック中のサンプルとの間の差を示し得る。
【００５４】
[0062]さらに、区分されていないＣＵに対して符号化演算を実行することの一部として、ビデオ符号化器２０は、ＣＵの残差データに対して再帰的な４分木区分を実行して、ＣＵの残差データを、ＣＵの変換ユニット（ＴＵ）に関連付けられた残差データの１つまたは複数のブロック（たとえば、残差ビデオブロック）に区分し得る。ＣＵの各ＴＵは異なる残差ビデオブロックに関連付けられ得る。
【００５５】
[0063]ビデオ符号化器２０は、ＴＵに関連付けられた変換係数ブロック（たとえば、変換係数のブロック）を生成するために、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用し得る。概念的に、変換係数ブロックは変換係数の２次元（２Ｄ）行列であり得る。
【００５６】
[0064]変換係数ブロックを生成した後、ビデオ符号化器２０は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられることがあり、ここで、ｎはｍよりも大きい。
【００５７】
[0065]ビデオ符号化器２０は、各ＣＵを量子化パラメータ（ＱＰ：quantization parameter）値に関連付け得る。ＣＵに関連付けられたＱＰ値は、ビデオ符号化器２０が、ＣＵに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオ符号化器２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【００５８】
[0066]ビデオ符号化器２０が変換係数ブロックを量子化した後、ビデオ符号化器２０は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオ符号化器２０は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）演算などのエントロピー符号化演算を適用し得る。コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable-length coding）、確率間隔区分エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
【００５９】
[0067]ビデオ符号化器２０によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットを含み得る。ＮＡＬユニットの各々は、ＮＡＬユニット中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。たとえば、ＮＡＬユニットは、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含んでいることがある。ＮＡＬユニット中のデータは様々なシンタックス構造を含み得る。
【００６０】
[0068]ビデオ復号器３０は、ビデオ符号化器２０によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオ符号化器２０によって符号化されたビデオデータのコード化表現を含み得る。ビデオ復号器３０がビットストリームを受信するとき、ビデオ復号器３０は、ビットストリームに対してパース演算を実行し得る。ビデオ復号器３０がパース演算を実行するとき、ビデオ復号器３０は、ビットストリームからシンタックス要素を抽出し得る。ビデオ復号器３０は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオ符号化器２０によって実行されるプロセスとは逆であり得る。
【００６１】
[0069]ビデオ復号器３０がＣＵに関連付けられたシンタックス要素を抽出した後、ビデオ復号器３０は、シンタックス要素に基づいて、ＣＵのＰＵのための予測ビデオブロックを生成し得る。さらに、ビデオ復号器３０は、ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオ復号器３０は、変換係数ブロックに対して逆変換を実行して、ＣＵのＴＵに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオ復号器３０は、予測ビデオブロックと残差ビデオブロックとに基づいて、ＣＵのビデオブロックを再構成し得る。このようにして、ビデオ復号器３０は、ビットストリーム中のシンタックス要素に基づいて、ＣＵのビデオブロックを再構成し得る。  
ビデオ符号化器
【００６２】
[0070]図２Ａは、本開示で説明する態様による技法を実装し得るビデオ符号化器２０の一例を示すブロック図である。ビデオ復号器２０は、ＨＥＶＣの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオ符号化器２０は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオ符号化器２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
【００６３】
[0071]説明の目的で、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオ符号化器２０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。図２Ａに示された例はシングルレイヤコーデックのためのものである。しかしながら、図２Ｂに関してさらに説明するように、ビデオ符号化器２０の一部または全部はマルチレイヤコーデックの処理のために複製され得る。
【００６４】
[0072]ビデオ符号化器２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオ中の時間冗長性を低減または削除するために、時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指すことがある。
【００６５】
[0073]図２Ａの例では、ビデオ符号化器２０は複数の機能構成要素を含む。ビデオ符号化器２０の機能構成要素は、予測処理ユニット１００と、残差生成ユニット１０２と、変換処理ユニット１０４と、量子化ユニット１０６と、逆量子化ユニット１０８と、逆変換ユニット１１０と、再構成ユニット１１２と、フィルタユニット１１３と、復号ピクチャバッファ１１４と、エントロピー符号化ユニット１１６とを含む。予測処理ユニット１００は、インター予測ユニット１２１と、動き推定ユニット１２２と、動き補償ユニット１２４と、イントラ予測ユニット１２６と、レイヤ間予測ユニット１２８とを含む。他の例では、ビデオ符号化器２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。さらに、動き推定ユニット１２２と動き補償ユニット１２４とは、高度に統合され得るが、図２Ａの例では、説明の目的で別々に表されている。
【００６６】
[0074]ビデオ符号化器２０はビデオデータを受信し得る。ビデオ符号化器２０は、様々なソースからビデオデータを受信し得る。たとえば、ビデオ符号化器２０は、（たとえば、図１Ａまたは図１Ｂに示された）ビデオソース１８、または別のソースからビデオデータを受信し得る。ビデオデータは一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオ符号化器２０は、ピクチャの各々に対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオ符号化器２０は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオ符号化器２０は、スライス中のツリーブロックに対して符号化演算を実行し得る。
【００６７】
[0075]ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット１００は、ツリーブロックのビデオブロックに対して４分木区分を実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるＣＵに関連付けられ得る。たとえば、予測処理ユニット１００は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【００６８】
[0076]ＣＵに関連付けられたビデオブロックのサイズは、８×８サンプルから、最大６４×６４以上のサンプルをもつツリーブロックのサイズまでに及び得る。本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのサンプル寸法、たとえば、１６×１６（16x16）サンプルまたは１６×１６（16 by 16）サンプルを指すために互換的に使用され得る。概して、１６×１６ビデオブロックは、垂直方向に１６個のサンプルを有し（ｙ＝１６）、水平方向に１６個のサンプルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ個のサンプルを有し、水平方向にＮ個のサンプルを有し、ここで、Ｎは非負整数値を表す。
【００６９】
[0077]さらに、ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット１００は、ツリーブロック用の階層的な４分木データ構造を生成し得る。たとえば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。予測処理ユニット１００が、ツリーブロックのビデオブロックを４つのサブブロックに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブブロックのうちの１つに関連付けられたＣＵに対応する。予測処理ユニット１００が、サブブロックのうちの１つを４つのサブサブブロックに区分する場合、サブブロックに関連付けられたＣＵに対応するノードは、サブサブブロックのうちの１つに関連付けられたＣＵに各々が対応する、４つの子ノードを有し得る。
【００７０】
[0078]４分木データ構造の各ノードは、対応するツリーブロックまたはＣＵのシンタックスデータ（たとえば、シンタックス要素）を含み得る。たとえば、４分木の中のノードは、そのノードに対応するＣＵのビデオブロックが４つのサブブロックに区分される（たとえば、分割される）かどうかを示す分割フラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。
【００７１】
[0079]ビデオ符号化器２０は、ツリーブロックの区分されていない各ＣＵに対して符号化演算を実行し得る。ビデオ符号化器２０が、区分されていないＣＵに対して符号化演算を実行するとき、ビデオ符号化器２０は、区分されていないＣＵの符号化表現を表すデータを生成する。
【００７２】
[0080]ＣＵに対して符号化演算を実行することの一部として、予測処理ユニット１００は、ＣＵの１つまたは複数のＰＵの中で、ＣＵのビデオブロックを区分し得る。ビデオ符号化器２０およびビデオ復号器３０は、様々なＰＵサイズをサポートし得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオ符号化器２０およびビデオ復号器３０は、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×ｎＵ、ｎＬ×２Ｎ、ｎＲ×２Ｎ、または同様の対称ＰＵサイズでのインター予測とをサポートし得る。ビデオ符号化器２０およびビデオ復号器３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分をもサポートし得る。いくつかの例では、予測処理ユニット１００は、ＣＵのビデオブロックの辺に直角に接触しない境界に沿って、ＣＵのＰＵの間でＣＵのビデオブロックを区分するように、幾何学的な区分を実行し得る。
【００７３】
[0081]インター予測ユニット１２１はＣＵの各ＰＵに対してインター予測を実行し得る。インター予測は時間圧縮を実現し得る。ＰＵに対してインター予測を実行するために、動き推定ユニット１２２はＰＵの動き情報を生成し得る。動き補償ユニット１２４は、動き情報と、ＣＵに関連付けられたピクチャ以外のピクチャ（たとえば、参照ピクチャ）の復号サンプルと基づくＰＵのための予測ビデオブロックを生成し得る。本開示では、動き補償ユニット１２４によって生成された予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【００７４】
[0082]スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、動き推定ユニット１２２および動き補償ユニット１２４は、ＰＵに対してインター予測を実行しない。
【００７５】
[0083]ＰＵがＰスライス中にある場合、ＰＵを含んでいるピクチャは、「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。リスト０中の参照ピクチャの各々は、他のピクチャのインター予測に使用され得るサンプルを含んでいる。動き推定ユニット１２２が、Ｐスライス中のＰＵに関して動き推定演算を実行するとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得る。ＰＵの参照ブロックは、ＰＵのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、たとえば、サンプルのブロックであり得る。動き推定ユニット１２２は、様々なメトリックを使用して、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを決定し得る。たとえば、動き推定ユニット１２２は、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを決定し得る。
【００７６】
[0084]Ｐスライス中のＰＵの参照ブロックを識別した後、動き推定ユニット１２２は、参照ブロックを含んでいる、リスト０中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット１２２は動きベクトルを異なる精度に生成し得る。たとえば、動き推定ユニット１２２は、１／４サンプル精度、１／８サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって識別された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００７７】
[0085]ＰＵがＢスライス中にある場合、ＰＵを含んでいるピクチャは、「リスト０」および「リスト１」と呼ばれる参照ピクチャの２つのリストに関連付けられ得る。いくつかの例では、Ｂスライスを含んでいるピクチャは、リスト０とリスト１の組合せである、リストの組合せに関連付けられ得る。
【００７８】
[0086]さらに、ＰＵがＢスライス中にある場合、動き推定ユニット１２２は、ＰＵについての単方向予測または双方向予測を実行し得る。動き推定ユニット１２２が、ＰＵについての単方向予測を実行するとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０またはリスト１の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含んでいる、リスト０またはリスト１中の参照ピクチャを示す参照インデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト０中の参照ピクチャを示すか、リスト１中の参照ピクチャを示すかを示し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００７９】
[0087]動き推定ユニット１２２が、ＰＵについての双方向予測を実行するとき、動き推定ユニット１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得、また、ＰＵのための別の参照ブロックについて、リスト１中の参照ピクチャを探索し得る。動き推定ユニット１２２は、次いで、参照ブロックを含んでいる、リスト０およびリスト１中の参照ピクチャを示す参照インデックスと、参照ブロックとＰＵの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット１２２は、ＰＵの動き情報としてＰＵの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００８０】
[0088]いくつかの例では、動き推定ユニット１２２は、ＰＵの動き情報のフルセットをエントロピー符号化ユニット１１６に出力しない。そうではなく、動き推定ユニット１２２は、別のＰＵの動き情報を参照して、ＰＵの動き情報をシグナリングし得る。たとえば、動き推定ユニット１２２は、ＰＵの動き情報が、隣接ＰＵの動き情報と十分に類似していると決定し得る。この例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、ＰＵが隣接ＰＵと同じ動き情報を有することをビデオ復号器３０に示す値を示し得る。別の例では、動き推定ユニット１２２は、ＰＵに関連付けられたシンタックス構造において、隣接ＰＵと動きベクトル差分（ＭＶＤ：motion vector difference）とを識別し得る。動きベクトル差分は、ＰＵの動きベクトルと、示される隣接ＰＵの動きベクトルとの間の差分を示す。ビデオ復号器３０は、示される隣接ＰＵの動きベクトルと、動きベクトル差分とを使用して、ＰＵの動きベクトルを決定し得る。第２のＰＵの動き情報をシグナリングするときに第１のＰＵの動き情報を参照することによって、ビデオ符号化器２０は、より少数のビットを使用して、第２のＰＵの動き情報をシグナリングすることが可能であり得る。
【００８１】
[0089]ＣＵに対して符号化演算を実行することの一部として、イントラ予測ユニット１２６は、ＣＵのＰＵに対してイントラ予測を実行し得る。イントラ予測は空間圧縮を実現し得る。イントラ予測ユニット１２６がＰＵに対してイントラ予測を実行するとき、イントラ予測ユニット１２６は、同じピクチャ中の他のＰＵの復号サンプルに基づいて、ＰＵの予測データを生成し得る。ＰＵの予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット１２６は、Ｉスライス、Ｐスライス、およびＢスライス中のＰＵに対してイントラ予測を実行し得る。
【００８２】
[0090]ＰＵに対してイントラ予測を実行するために、イントラ予測ユニット１２６は、複数のイントラ予測モードを使用して、ＰＵの予測データの複数のセットを生成し得る。イントラ予測ユニット１２６が、イントラ予測モードを使用してＰＵの予測データのセットを生成するとき、イントラ予測ユニット１２６は、イントラ予測モードに関連付けられた方向および／または勾配で、隣接ＰＵのビデオブロックからＰＵのビデオブロックにわたって、サンプルを延ばし得る。隣接ＰＵは、ＰＵ、ＣＵ、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測ユニット１２６は、ＰＵのサイズに応じて、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。
【００８３】
[0091]予測処理ユニット１００は、ＰＵについての、動き補償ユニット１２４によって生成された予測データ、またはＰＵについての、イントラ予測ユニット１２６によって生成された予測データの中から、ＰＵの予測データを選択し得る。いくつかの例では、予測処理ユニット１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＰＵのための予測データを選択する。
【００８４】
[0092]予測処理ユニット１００が、イントラ予測ユニット１２６によって生成された予測データを選択する場合、予測処理ユニット１００は、ＰＵの予測データを生成するために使用されたイントラ予測モード、たとえば、選択されたイントラ予測モードをシグナリングし得る。予測処理ユニット１００は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。たとえば、選択されたイントラ予測モードは、隣接ＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接ＰＵのイントラ予測モードは現在のＰＵに対して最確モードであり得る。したがって、予測処理ユニット１００は、選択されたイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示すための、シンタックス要素を生成し得る。
【００８５】
[0093]上記で説明したように、ビデオ符号化器２０はレイヤ間予測ユニット１２８を含み得る。レイヤ間予測ユニット１２８は、ＳＨＶＣにおいて利用可能である１つまたは複数の異なるレイヤ（たとえば、ベースレイヤまたは参照レイヤ）を使用して、現在のブロック（たとえば、ＥＬ中の現在のブロック）を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット１２８は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用してエンハンスメントレイヤ中の現在のブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用してエンハンスメントレイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。
【００８６】
[0094]予測処理ユニット１００がＣＵのＰＵの予測データを選択した後、残差生成ユニット１０２は、ＣＵのビデオブロックからＣＵのＰＵの予測ビデオブロックを差し引くこと（たとえば、マイナス符号によって示される）によって、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのビデオブロック中のサンプルの異なるサンプル成分に対応する、２Ｄ残差ビデオブロックを含み得る。たとえば、残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのルミナンス成分と、ＣＵの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、ＣＵの残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのクロミナンス成分と、ＣＵの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【００８７】
[0095]予測処理ユニット１００は、４分木区分を実行して、ＣＵの残差ビデオブロックをサブブロックに区分し得る。各分割されていない残差ビデオブロックは、ＣＵの異なるＴＵに関連付けられ得る。ＣＵのＴＵに関連付けられた残差ビデオブロックのサイズおよび位置は、ＣＵのＰＵに関連付けられたビデオブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。ＣＵのＴＵはＲＱＴのリーフノードに対応し得る。
【００８８】
[0096]変換処理ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための１つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の２Ｄ行列であり得る。変換処理ユニット１０４は、ＴＵに関連付けられた残差ビデオブロックに様々な変換を適用し得る。たとえば、変換処理ユニット１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を、ＴＵに関連付けられた残差ビデオブロックに適用し得る。
【００８９】
[0097]変換処理ユニット１０４が、ＴＵに関連付けられた変換係数ブロックを生成した後、量子化ユニット１０６は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット１０６は、ＣＵに関連付けられたＱＰ値に基づいて、ＣＵのＴＵに関連付けられた変換係数ブロックを量子化し得る。
【００９０】
[0098]ビデオ符号化器２０は、様々な方法でＱＰ値をＣＵに関連付け得る。たとえば、ビデオ符号化器２０は、ＣＵに関連付けられたツリーブロックに対してレートひずみ分析を実行し得る。レートひずみ分析では、ビデオ符号化器２０は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオ符号化器２０がツリーブロックの異なる符号化表現を生成するとき、ビデオ符号化器２０は、異なるＱＰ値をＣＵに関連付け得る。ビデオ符号化器２０は、最小のビットレートおよびひずみメトリックを有するツリーブロックのコード化表現で所与のＱＰ値がＣＵに関連付けられるとき、所与のＱＰ値がＣＵに関連付けられることをシグナリングし得る。
【００９１】
[0099]逆量子化ユニット１０８および逆変換ユニット１１０は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成ユニット１１２は、再構成された残差ビデオブロックを、予測処理ユニット１００によって生成された１つまたは複数の予測ビデオブロックからの対応するサンプルに追加して、ＴＵに関連付けられた再構成されたビデオブロックを生成し得る。このようにＣＵの各ＴＵのためのビデオブロックを再構成することによって、ビデオ符号化器２０は、ＣＵのビデオブロックを再構成し得る。
【００９２】
[0100]再構成ユニット１１２がＣＵのビデオブロックを再構成した後、フィルタユニット１１３は、ＣＵに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。１つまたは複数のデブロッキング演算を実行した後、フィルタユニット１１３は、復号ピクチャバッファ１１４にＣＵの再構成されたビデオブロックを記憶し得る。動き推定ユニット１２２および動き補償ユニット１２４は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのＰＵに対してインター予測を実行し得る。さらに、イントラ予測ユニット１２６は、復号ピクチャバッファ１１４中の再構成されたビデオブロックを使用して、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を実行し得る。
【００９３】
[0101]エントロピー符号化ユニット１１６は、ビデオ符号化器２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット１１６は、量子化ユニット１０６から変換係数ブロックを受信し得、予測処理ユニット１００からシンタックス要素を受信し得る。エントロピー符号化ユニット１１６がデータを受信するとき、エントロピー符号化ユニット１１６は、１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化されたデータを生成し得る。たとえば、ビデオ符号化器２０は、ＣＡＶＬＣ演算、ＣＡＢＡＣ演算、変数間（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ）コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化ユニット１１６は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
【００９４】
[0102]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化ユニット１１６は、コンテキストモデルを選択し得る。エントロピー符号化ユニット１１６がＣＡＢＡＣ演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。ＣＡＢＡＣのコンテキストでは、「ビン」という用語は、シンタックス要素の２値化されたバージョンのビットを指すために使用される。  
マルチレイヤビデオ符号化器
【００９５】
[0103]図２Ｂは、本開示で説明する態様による技法を実装し得る（単にビデオ符号化器２３とも呼ばれる）マルチレイヤビデオ符号化器２３の一例を示すブロック図である。ビデオ符号化器２３は、ＳＨＶＣおよびＭＶ−ＨＥＶＣの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオ符号化器２３は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【００９６】
[0104]ビデオ符号化器２３はビデオ符号化器２０Ａとビデオ符号化器２０Ｂとを含み、それらの各々はビデオ符号化器２０として構成され得、ビデオ符号化器２０に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオ符号化器２０Ａおよび２０Ｂは、ビデオ符号化器２０としてシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオ符号化器２３は、２つのビデオ符号化器２０Ａおよび２０Ｂを含むものとして示されているが、ビデオ符号化器２３は、そのようなものとして限定されず、任意の数のビデオ符号化器２０レイヤを含み得る。いくつかの実施形態では、ビデオ符号化器２３はアクセスユニット中の各ピクチャまたはフレームについてビデオ符号化器２０を含み得る。たとえば、５つのピクチャを含むアクセスユニットは、５つの符号化器レイヤを含むビデオ符号化器によって処理または符号化され得る。いくつかの実施形態では、ビデオ符号化器２３は、アクセスユニット中のフレームよりも多くの符号化器レイヤを含み得る。いくつかのそのような場合では、ビデオ符号化器レイヤのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【００９７】
[0105]ビデオ符号化器２０Ａおよび２０Ｂに加えて、ビデオ符号化器２３はリサンプリングユニット９０を含み得る。リサンプリングユニット９０は、場合によっては、たとえば、エンハンスメントレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット９０は、フレームの受信されたベースレイヤに関連付けられた特定の情報をアップサンプリングするが、他の情報をアップサンプリングしないことがある。たとえば、リサンプリングユニット９０は、ベースレイヤの空間サイズまたはピクセルの数をアップサンプリングし得るが、スライスの数またはピクチャ順序カウントは一定のままであり得る。場合によっては、リサンプリングユニット９０は、受信されたビデオを処理しないことがあるか、および／またはオプションであり得る。たとえば、場合によっては、予測処理ユニット１００はアップサンプリングを実行し得る。いくつかの実施形態では、リサンプリングユニット９０は、レイヤをアップサンプリングすることと、スライス境界ルールおよび／またはラスタスキャンルールのセットに準拠するために１つまたは複数のスライスを再編成、再定義、変更、または調整することとを行うように構成される。アクセスユニット中のベースレイヤまたは下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット９０はレイヤをダウンサンプリングし得る。たとえば、ビデオのストリーミング中に帯域幅が減少した場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。
【００９８】
[0106]リサンプリングユニット９０は、下位レイヤ符号化器（たとえば、ビデオ符号化器２０Ａ）の復号ピクチャバッファ１１４からピクチャまたはフレーム（またはピクチャに関連付けられたピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤ符号化器と同じアクセスユニット中のピクチャを符号化するように構成された上位レイヤ符号化器（たとえば、ビデオ符号化器２０Ｂ）の予測処理ユニット１００に与えられ得る。場合によっては、上位レイヤ符号化器は、下位レイヤ符号化器から削除された１つのレイヤである。他の場合には、図２Ｂのレイヤ０ビデオ符号化器とレイヤ１符号化器との間に１つまたは複数の上位レイヤ符号化器があり得る。
【００９９】
[0107]場合によっては、リサンプリングユニット９０は省略またはバイパスされ得る。そのような場合、ビデオ符号化器２０Ａの復号ピクチャバッファ１１４からのピクチャは、直接、または少なくともリサンプリングユニット９０に与えられることなしに、ビデオ符号化器２０Ｂの予測処理ユニット１００に与えられ得る。たとえば、ビデオ符号化器２０Ｂに与えられたビデオデータと、ビデオ符号化器２０Ａの復号ピクチャバッファ１１４からの参照ピクチャとが同じサイズまたは解像度である場合、参照ピクチャは、リサンプリングなしにビデオ符号化器２０Ｂに与えられ得る。
【０１００】
[0108]いくつかの実施形態では、ビデオ符号化器２３は、ビデオ符号化器２０Ａにビデオデータを与える前に、ダウンサンプリングユニット９４を使用して下位レイヤ符号化器に与えられるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット９４は、ビデオデータをアップサンプリングまたはダウンサンプリングすることが可能なリサンプリングユニット９０であり得る。また他の実施形態では、ダウンサンプリングユニット９４は省略され得る。
【０１０１】
[0109]図２Ｂに示されているように、ビデオ符号化器２３は、マルチプレクサ（またはｍｕｘ）９８をさらに含み得る。ｍｕｘ９８は、ビデオ符号化器２３から合成ビットストリームを出力することができる。合成ビットストリームは、ビデオ符号化器２０Ａおよび２０Ｂの各々からビットストリームを取り、所与の時間において出力されるビットストリームを交替することによって作成され得る。場合によっては、２つの（または、３つ以上のビデオ符号化器レイヤの場合には、より多くの）ビットストリームからのビットが一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成され得る。たとえば、出力ビットストリームは、選択されたビットストリームを一度に１ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオ符号化器２０Ａおよび２０Ｂの各々からブロックの非１：１比を出力することによって作成され得る。たとえば、ビデオ符号化器２０Ａから出力された各ブロックについて、２つのブロックがビデオ符号化器２０Ｂから出力され得る。いくつかの実施形態では、ｍｕｘ９８からの出力ストリームはプリプログラムされ得る。他の実施形態では、ｍｕｘ９８は、ソースデバイス１２を含むソースデバイス上のプロセッサからなど、ビデオ符号化器２３の外部のシステムから受信された制御信号に基づいて、ビデオ符号化器２０Ａ、２０Ｂからのビットストリームを合成し得る。制御信号は、ビデオソース１８からのビデオの解像度またはビットレートに基づいて、リンク１６の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション（たとえば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオ符号化器２３から望まれる解像度出力を決定するための他のファクタに基づいて生成され得る。  
ビデオ復号器
[0110]図３Ａは、本開示で説明する態様による技法を実装し得るビデオ復号器３０の一例を示すブロック図である。ビデオ復号器３０は、ＨＥＶＣの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオ復号器３０は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオ復号器３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
【０１０２】
[0111]説明の目的で、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオ復号器３０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。図３Ａに示された例はシングルレイヤコーデックのためのものである。しかしながら、図３Ｂに関してさらに説明するように、ビデオ復号器３０の一部または全部はマルチレイヤコーデックの処理のために複製され得る。
【０１０３】
[0112]図３Ａの例では、ビデオ復号器３０は複数の機能構成要素を含む。ビデオ復号器３０の機能構成要素は、エントロピー復号ユニット１５０と、予測処理ユニット１５２と、逆量子化ユニット１５４と、逆変換ユニット１５６と、再構成ユニット１５８と、フィルタユニット１５９と、復号ピクチャバッファ１６０とを含む。予測処理ユニット１５２は、動き補償ユニット１６２と、イントラ予測ユニット１６４と、レイヤ間予測ユニット１６６とを含む。いくつかの例では、ビデオ復号器３０は、図２Ａのビデオ符号化器２０に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオ復号器３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１０４】
[0113]ビデオ復号器３０は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは複数のシンタックス要素を含み得る。ビデオ復号器３０がビットストリームを受信したとき、エントロピー復号ユニット１５０は、ビットストリームに対してパース演算を実行し得る。ビットストリームに対してパース演算を実行した結果として、エントロピー復号ユニット１５０は、ビットストリームからシンタックス要素を抽出し得る。パース演算を実行することの一部として、エントロピー復号ユニット１５０は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット１５２、逆量子化ユニット１５４、逆変換ユニット１５６、再構成ユニット１５８、およびフィルタユニット１５９は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を実行し得る。
【０１０５】
[0114]上記で説明したように、ビットストリームは、一連のＮＡＬユニットを備え得る。ビットストリームのＮＡＬユニットは、ビデオパラメータセットＮＡＬユニット、シーケンスパラメータセットＮＡＬユニット、ピクチャパラメータセットＮＡＬユニット、ＳＥＩ  ＮＡＬユニットなどを含み得る。ビットストリームに対してパース演算を実行することの一部として、エントロピー復号ユニット１５０は、シーケンスパラメータセットＮＡＬユニットからのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬユニットからのピクチャパラメータセット、ＳＥＩ  ＮＡＬユニットからのＳＥＩデータなどを抽出し、エントロピー復号する、パース演算を実行し得る。
【０１０６】
[0115]さらに、ビットストリームのＮＡＬユニットはコード化スライスＮＡＬユニットを含み得る。ビットストリームに対してパース演算を実行することの一部として、エントロピー復号ユニット１５０は、コード化スライスＮＡＬユニットからコード化スライスを抽出し、エントロピー復号する、パース演算を実行し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット１５０は、コード化されたスライスヘッダ中のシンタックス要素に対して、ＣＡＢＡＣ復号演算などのエントロピー復号演算を実行して、スライスヘッダを復元し得る。
【０１０７】
[0116]コード化スライスのＮＡＬユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット１５０は、スライスデータ中のコード化ＣＵからシンタックス要素を抽出するパース演算を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット１５０は、次いで、シンタックス要素のうちのいくつかに対してＣＡＢＡＣ復号演算を実行し得る。
【０１０８】
[0117]エントロピー復号ユニット１５０が区分されていないＣＵに対してパース演算を実行した後、ビデオ復号器３０は、区分されていないＣＵに対して再構成演算を実行し得る。区分されていないＣＵに対して再構成演算を実行するために、ビデオ復号器３０はＣＵの各ＴＵに対して再構成演算を実行し得る。ＣＵの各ＴＵについて再構成演算を実行することによって、ビデオ復号器３０は、ＣＵに関連付けられた残差ビデオブロックを再構成し得る。
【０１０９】
[0118]ＴＵに対して再構成演算を実行することの一部として、逆量子化ユニット１５４は、ＴＵに関連付けられた変換係数ブロックを逆量子化（inverse quantize）、たとえば、逆量子化（de-quantize）し得る。逆量子化ユニット１５４は、ＨＥＶＣ用に提案された、またはＨ．２６４復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化ユニット１５４は、量子化の程度を決定し、同様に、逆量子化ユニット１５４が適用すべき逆量子化の程度を決定するために、変換係数ブロックのＣＵのためにビデオ符号化器２０によって計算される量子化パラメータＱＰを使用し得る。
【０１１０】
[0119]逆量子化ユニット１５４が変換係数ブロックを逆量子化した後、逆変換ユニット１５６は、変換係数ブロックに関連付けられたＴＵのための残差ビデオブロックを生成し得る。逆変換ユニット１５６は、ＴＵのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。たとえば、逆変換ユニット１５６は、変換係数ブロックに、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット１５６は、ビデオ符号化器２０からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット１５６は、変換係数ブロックに関連付けられたツリーブロックの４分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット１５６は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換ユニット１５６はカスケード逆変換を適用し得る。
【０１１１】
[0120]いくつかの例では、動き補償ユニット１６２は、補間フィルタに基づく補間を実行することによって、ＰＵの予測ビデオブロックを改良し得る。サブサンプル精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット１６２は、ＰＵの予測ビデオブロックの生成中にビデオ符号化器２０によって使用された同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルについての補間値を計算し得る。動き補償ユニット１６２は、受信されたシンタックス情報に従って、ビデオ符号化器２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
【０１１２】
[0121]ＰＵが、イントラ予測を使用して符号化される場合、イントラ予測ユニット１６４は、ＰＵのための予測ビデオブロックを生成するためにイントラ予測を実行し得る。たとえば、イントラ予測ユニット１６４は、ビットストリーム中のシンタックス要素に基づいて、ＰＵのためのイントラ予測モードを決定し得る。ビットストリームは、ＰＵのイントラ予測モードを決定するためにイントラ予測ユニット１６４が使用し得るシンタックス要素を含み得る。
【０１１３】
[0122]いくつかの事例では、シンタックス要素は、イントラ予測ユニット１６４が別のＰＵのイントラ予測モードを使用して現在のＰＵのイントラ予測モードを決定するべきであることを示し得る。たとえば、現在のＰＵのイントラ予測モードは隣接ＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接ＰＵのイントラ予測モードは現在のＰＵに対して最確モードであり得る。したがって、この例では、ビットストリームは、ＰＵのイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット１６４は、次いで、イントラ予測モードを使用して、空間的に隣接するＰＵのビデオブロックに基づいて、ＰＵの予測データ（たとえば、予測サンプル）を生成し得る。
【０１１４】
[0123]上記で説明したように、ビデオ復号器３０もレイヤ間予測ユニット１６６を含み得る。レイヤ間予測ユニット１６６は、ＳＨＶＣにおいて利用可能である１つまたは複数の異なるレイヤ（たとえば、ベースレイヤまたは参照レイヤ）を使用して、現在のブロック（たとえば、エンハンスメントレイヤ中の現在のブロック）を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット１６６は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用してエンハンスメントレイヤ中の現在のブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用してエンハンスメントレイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。レイヤ間予測方式の各々について、より詳細に以下で説明する。
【０１１５】
[0124]再構成ユニット１５８は、適用可能なとき、ＣＵのＴＵに関連付けられた残差ビデオブロックとＣＵのＰＵの予測ビデオブロックとを使用して、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、ＣＵのビデオブロックを再構成し得る。したがって、ビデオ復号器３０は、ビットストリーム中のシンタックス要素に基づいて、予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成し得る。
【０１１６】
[0125]再構成ユニット１５８がＣＵのビデオブロックを再構成した後、フィルタユニット１５９は、デブロッキング演算を実行して、ＣＵに関連付けられたブロッキングアーティファクトを低減し得る。フィルタユニット１５９が、ＣＵに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行した後、ビデオ復号器３０はＣＵのビデオブロックを復号ピクチャバッファ１６０に記憶し得る。復号ピクチャバッファ１６０は、後続の動き補償、イントラ予測、および図１Ａまたは図１Ｂのディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオ復号器３０は、復号ピクチャバッファ１６０中のビデオブロックに基づいて、他のＣＵのＰＵに対してイントラ予測演算またはインター予測演算を実行し得る。  
マルチレイヤ復号器
【０１１７】
[0126]図３Ｂは、本開示で説明する態様による技法を実装し得る（単にビデオ復号器３３とも呼ばれる）マルチレイヤビデオ復号器３３の一例を示すブロック図である。ビデオ復号器３３は、ＳＨＶＣおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオ復号器３３は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【０１１８】
[0127]ビデオ復号器３３はビデオ復号器３０Ａとビデオ復号器３０Ｂとを含み、それらの各々はビデオ復号器３０として構成され得、ビデオ復号器３０に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオ復号器３０Ａおよび３０Ｂは、ビデオ復号器３０としてシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオ復号器３３は、２つのビデオ復号器３０Ａおよび３０Ｂを含むものとして示されているが、ビデオ復号器３３は、そのようなものとして限定されず、任意の数のビデオ復号器３０レイヤを含み得る。いくつかの実施形態では、ビデオ復号器３３はアクセスユニット中の各ピクチャまたはフレームについてビデオ復号器３０を含み得る。たとえば、５つのピクチャを含むアクセスユニットは、５つの復号器レイヤを含むビデオ復号器によって処理または復号され得る。いくつかの実施形態では、ビデオ復号器３３は、アクセスユニット中のフレームよりも多くの復号器レイヤを含み得る。いくつかのそのような場合では、ビデオ復号器レイヤのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【０１１９】
[0128]ビデオ復号器３０Ａおよび３０Ｂに加えて、ビデオ復号器３３はアップサンプリングユニット９２を含み得る。いくつかの実施形態では、アップサンプリングユニット９２は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。このエンハンストレイヤは復号ピクチャバッファ１６０に記憶され得る。いくつかの実施形態では、アップサンプリングユニット９２は、図２Ａのリサンプリングユニット９０に関して説明した実施形態の一部または全部を含むことができる。いくつかの実施形態では、アップサンプリングユニット９２は、レイヤをアップサンプリングすることと、スライス境界ルールおよび／またはラスタスキャンルールのセットに準拠するために１つまたは複数のスライスを再編成、再定義、変更、または調整することとを行うように構成される。場合によっては、アップサンプリングユニット９２は、受信されたビデオフレームのレイヤをアップサンプリングおよび／またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
【０１２０】
[0129]アップサンプリングユニット９２は、下位レイヤ復号器（たとえば、ビデオ復号器３０Ａ）の復号ピクチャバッファ１６０からピクチャまたはフレーム（またはピクチャに関連付けられたピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤ復号器と同じアクセスユニット中のピクチャを復号するように構成された上位レイヤ復号器（たとえば、ビデオ復号器３０Ｂ）の予測処理ユニット１５２に与えられ得る。場合によっては、上位レイヤ復号器は、下位レイヤ復号器から削除された１つのレイヤである。他の場合には、図３Ｂのレイヤ０復号器とレイヤ１復号器との間に１つまたは複数の上位レイヤ復号器があり得る。
【０１２１】
[0130]場合によっては、アップサンプリングユニット９２は省略またはバイパスされ得る。そのような場合、ビデオ復号器３０Ａの復号ピクチャバッファ１６０からのピクチャは、直接、または少なくともアップサンプリングユニット９２に与えられることなしに、ビデオ復号器３０Ｂの予測処理ユニット１５２に与えられ得る。たとえば、ビデオ復号器３０Ｂに与えられたビデオデータと、ビデオ復号器３０Ａの復号ピクチャバッファ１６０からの参照ピクチャとが同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングなしにビデオ復号器３０Ｂに与えられ得る。さらに、いくつかの実施形態では、アップサンプリングユニット９２は、ビデオ復号器３０Ａの復号ピクチャバッファ１６０から受信された参照ピクチャをアップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット９０であり得る。
【０１２２】
[0131]図３Ｂに示されているように、ビデオ復号器３３は、デマルチプレクサ（またはｄｅｍｕｘ）９９をさらに含み得る。ｄｅｍｕｘ９９は符号化ビデオビットストリームを複数のビットストリームに分割することができ、ｄｅｍｕｘ９９によって出力された各ビットストリームは異なるビデオ復号器３０Ａおよび３０Ｂに与えられる。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオ復号器３０Ａおよび３０Ｂの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、ｄｅｍｕｘ９９において受信されるビットストリームからのビットは、ビデオ復号器の各々（たとえば、図３Ｂの例ではビデオ復号器３０Ａおよび３０Ｂ）の間で一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。たとえば、ビットストリームは、一度に１ブロックずつビットストリームを受信するビデオ復号器を交替することによって分割され得る。別の例では、ビットストリームは、ブロックの非１：１比によって、ビデオ復号器３０Ａおよび３０Ｂの各々に分割され得る。たとえば、２つのブロックは、ビデオ復号器３０Ａに与えられる各ブロックについてビデオ復号器３０Ｂに与えられ得る。いくつかの実施形態では、ｄｅｍｕｘ９９によるビットストリームの分割はプリプログラムされ得る。他の実施形態では、ｄｅｍｕｘ９９は、宛先モジュール１４を含む宛先デバイス上のプロセッサからなど、ビデオ復号器３３の外部のシステムから受信された制御信号に基づいてビットストリームを分割し得る。制御信号は、入力インターフェース２８からのビデオの解像度またはビットレートに基づいて、リンク１６の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション（たとえば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオ復号器３３によって取得可能な解像度を決定するための他のファクタに基づいて生成され得る。  
イントラランダムアクセスポイント（ＩＲＡＰ）ピクチャ
【０１２３】
[0132]いくつかのビデオコーディング方式は様々なランダムアクセスポイントを、ビットストリームが、ビットストリームの中でそれらのランダムアクセスポイントに先行するいかなるピクチャも復号する必要なしに、それらのランダムアクセスポイントのいずれかから始めて復号され得るように、ビットストリーム全体にわたって提供し得る。そのようなビデオコーディング方式では、ランダムアクセススキップリーディング（ＲＡＳＬ：random access skipped leading）ピクチャを除いて、復号順序においてランダムアクセスポイントに後続するすべてのピクチャは、ランダムアクセスポイントに先行するいかなるピクチャも使用することなしに正確に復号され得る。たとえば、ビットストリームの一部分が送信の間または復号の間に失われても、復号器は、次のランダムアクセスポイントから始めてビットストリームの復号を再開することができる。ランダムアクセスのサポートは、たとえば、動的なストリーミングサービス、シーク動作、チャネル切替えなどを容易にし得る。
【０１２４】
[0133]いくつかのコーディング方式では、そのようなランダムアクセスポイントは、イントラランダムアクセスポイント（ＩＲＡＰ）ピクチャと呼ばれるピクチャによって提供され得る。たとえば、アクセスユニット（「ａｕＡ」）中に含まれているエンハンスメントレイヤ（「ｌａｙｅｒＡ」）中のエンハンスメントレイヤＩＲＡＰピクチャに関連付けられたランダムアクセスポイントは、各参照レイヤ（「ｌａｙｅｒＢ」）中にあり、復号順序においてａｕＡに先行するアクセスユニット（「ａｕＢ」）中に含まれているピクチャに関連付けられたランダムアクセスポイント（または、ａｕＡ中に含まれているランダムアクセスポイント）を有するｌａｙｅｒＡのｌａｙｅｒＢ（たとえば、ｌａｙｅｒＡを予測するために使用されるレイヤである参照レイヤ）に関して復号順序においてａｕＡに後続する（ａｕＡ中に位置するピクチャを含む）ｌａｙｅｒＡ中のピクチャが、ａｕＡに先行するｌａｙｅｒＡ中のいかなるピクチャも復号する必要なしに正確に復号可能であるように、レイヤ特有のランダムアクセスを提供し得る。
【０１２５】
[0134]ＩＲＡＰピクチャは、イントラ予測を使用してコーディングされ（たとえば、他のピクチャを参照することなしにコーディングされ）および／またはレイヤ間予測を使用してコーディングされ得、たとえば、瞬時復号器リフレッシュ（ＩＤＲ：instantaneous decoder refresh）ピクチャと、クリーンランダムアクセス（ＣＲＡ：clean random access）ピクチャと、ブロークンリンクアクセス（ＢＬＡ：broken link access）ピクチャとを含み得る。ビットストリーム中にＩＤＲピクチャがあるとき、復号順序においてＩＤＲピクチャに先行するすべてのピクチャは、ＩＤＲピクチャに後続するピクチャによる予測のために使用されない。ビットストリーム中にＣＲＡピクチャがあるとき、ＣＲＡピクチャに後続するピクチャは、復号順序においてＣＲＡピクチャに先行するピクチャを予測のために使用することも、使用しないこともある。復号順序においてＣＲＡピクチャに後続するが、復号順序においてＣＲＡピクチャに先行するピクチャを使用するピクチャは、ＲＡＳＬピクチャと呼ばれることがある。復号順序においてＩＲＡＰピクチャに後続し、出力順序においてＩＲＡＰピクチャに先行することができる別のタイプのピクチャは、復号順序においてＩＲＡＰピクチャに先行するいかなるピクチャへの参照も含んでいないことがあるランダムアクセス復号可能リーディング（ＲＡＤＬ：random access decodable leading）ピクチャである。ＣＲＡピクチャに先行するピクチャが利用可能でない場合、ＲＡＳＬピクチャは復号器によって廃棄され得る。ＢＬＡピクチャは、（たとえば、２つのビットストリームが互いにスプライスされ、ＢＬＡピクチャが復号順序において第２のビットストリームの最初のピクチャであるので）ＢＬＡピクチャに先行するピクチャが復号器にとって利用可能でないことがあることを、復号器に示す。ＩＲＡＰピクチャである（たとえば、０のレイヤＩＤ値を有する）ベースレイヤピクチャを含んでいるアクセスユニット（たとえば、複数のレイヤにわたって同じ出力時間に関連付けられたすべてのコード化ピクチャからなるピクチャのグループ）は、ＩＲＡＰアクセスユニットと呼ばれることがある。  
イントラブロックコピー（イントラＢＣ）
[0135]ビデオコーディングでは、ビデオコーダ（たとえば、ビデオ符号化器またはビデオ復号器）は、予測ブロックを形成する。ビデオ符号化器は、予測ブロックと現在のブロック（たとえば、予測されているブロック）との間の残差と呼ばれる差分を決定する。残差値は残差ブロックを形成する。ビデオ復号器は、残差ブロックを受信し、現在のブロックを再構成するために予測ブロックに残差ブロックの残差を加算する。インター予測では、予測ブロックは、現在のブロックとは異なるピクチャ中にあるか、または異なるピクチャのサンプルに基づき、動きベクトルによって識別される。イントラ予測では、予測ブロックは、現在のブロックと同じピクチャ中のサンプルから形成され、イントラ予測モードによって形成される。イントラブロックコピー（イントラＢＣ）予測を用いて、予測ブロックは、現在のブロックと同じピクチャ中にあり、ブロックベクトルによって識別される。
【０１２６】
[0136]イントラＢＣは、たとえば、ＨＥＶＣのＲＥｘｔに含まれている。従来のイントラＢＣ技法の例を図４に示し、ここにおいて、現在のＣＵ（またはＰＵ）４０５は、現在のピクチャ（またはスライス）のすでに復号されたブロック４１０（すなわち、予測ブロック）から予測される。予測信号４１５の使用によって、復号器は現在のＣＵ４０５を再構成することができる。いくつかの事例では、予測信号４１５は、デブロッキングおよびサンプル適応オフセット（ＳＡＯ：Sample Adaptive Offset）を含む、ループ内フィルタ処理なしに再構成され得る。
【０１２７】
[0137]ブロックベクトル４２０は、現在のＣＵ／ＰＵ４０５の予測ブロック４１０を示し得る。ブロックベクトル４２０を符号化するために、ブロックベクトル予測子が使用され得る。ブロックベクトル４２０は、整数レベルにおいて予測および／またはシグナリングされ得る。たとえば、ブロックベクトル予測子は、各コーディングツリーブロック（ＣＴＢ）の始まりにおいて（−ｗ，０）に設定され得、ここで、ｗはＣＵ４０５の幅である。ブロックベクトル予測子は、好適な予測ブロック４１０が見つけられたときに更新され得る。ブロックベクトル予測子は、イントラＢＣモードを用いてコーディングされた、より最近コーディングされた予測ブロック４２５（すなわち、現在のＣＵ４０５により近いブロック）を示すようにさらに更新され得る。ＣＵがイントラＢＣモードを用いてコーディングされない場合、ブロックベクトル予測子は不変のままであり得る。ブロックベクトル予測の後に、ブロックベクトル差分（すなわち、ブロックベクトル４２０とブロックベクトル予測子との間の差分）は、ＨＥＶＣにおける動きベクトル差分コーディング方法を使用して符号化される。いくつかの事例では、いずれのブロックベクトル４２０を使用すべきかを示す予測子インデックス、およびブロックベクトル４２０のみがシグナリングされる。
【０１２８】
[0138]いくつかの事例では、様々なブロックサイズがサポートされ得る。ＨＥＶＣの現在のＲＥｘｔでは、イントラＢＣは、ＣＵレベルとＰＵレベルの両方において可能にされ得る。ＰＵレベルイントラＢＣの場合、すべてのＣＵサイズのために２Ｎ×ＮおよびＮ／２Ｎ  ＰＵパーティションがサポートされる。さらに、ＣＵが最も小さいＣＵであるとき、Ｎ×Ｎ  ＰＵパーティションがサポートされる。
【０１２９】
[0139]現在、イントラＢＣのための探索領域４３０は、２つの部分、すなわち、（１）現在のコーディングツリーユニット（ＣＴＵ）中の再構成された部分と、（２）現在のＣＴＵの左側のＣＴＵ高さの再構成された６４個の列とを備え得る。
【０１３０】
[0140]高速符号化器探索のための方法を与える以下で説明するいくつかの文書が提示されている。しかしながら、これらの方法は探索領域４３０内の各ブロックにイントラＢＣを適用するので、探索領域４３０が大きい（たとえば、フレーム全体である）とき、それらは効率的でないことがある。
【０１３１】
[0141]たとえば、文書ＪＣＴＶＣ−Ｏ０１５６では、イントラＢＣのためのブロックサイズ制限と、隣接ブロックコーディングステータス／ブロックサイズ依存１−Ｄ／２Ｄブロックベクトル制限と、レートひずみ（ＲＤ）コストベースおよび事前分析ベース早期終了とを含む、イントラＢＣのための符号化器探索の速度を上げるためのいくつかの方法が提案された。この文書のための完全な引用は、ＪＣＴＶＣ−Ｏ０１５６、Ｐａｎｇら、「AhG5: Fast encoder search and search region restriction for intra block copying」、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第１５回会議、ジュネーブ、スイス、２０１３年１０月２３日〜１１月１日である。
【０１３２】
[0142]たとえば、文書ＪＣＴＶＣ−Ｏ０２４５では、場合によってはイントラＢＣをスキップするかまたは制限することによってイントラＢＣのための符号化探索の速度を上げるための早期スキッピング方法が提案された。この文書のための完全な引用は、ＪＣＴＶＣ−Ｏ０２４５、Ｄｏ−Ｋｙｏｕｎｇ  Ｋｗｏｎ、「AHG5: Fast encoding using early skipping of Intra block copy (IntraBC) search」、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第１５回会議、ジュネーブ、スイス、２０１３年１０月２３日〜１１月１日である。
【０１３３】
[0143]たとえば、文書ＪＣＴＶＣ−Ｐ０１５１では、計算された絶対差分和（ＳＡＤ）を再利用することによって、および場合によってはイントラＢＣをスキップすることによって高速符号化器探索を与えるための方法が提案された。この文書のための完全な引用は、ＪＣＴＶＣ−Ｐ０１５１、Ｐａｎｇら、「Non-RCE3: Fast encoder search for RCE3 Subtest B.3」、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第１６回会議、サンノゼ、米国、２０１４年１月９日〜１７日である。
【０１３４】
[0144]（上記で説明した、ＲＥｘｔにおける現在の探索領域など）探索領域が小さいときのみでなく、イントラＢＣのための高速符号化器探索のための技法をより効率的になるように改善することが望ましい。より詳細には、探索領域が、たとえばＲＥｘｔにおける現在の探索領域よりも大きく拡大され、および／またはフレーム全体をカバーしているとき、そのような技法の効率を改善することが望ましい。
【０１３５】
[0145]イントラＢＣのための符号化器探索の速度を上げるための技法について本明細書で説明する。一実施形態では、技法は、（たとえば、８ビットよりも多い）「高」ビット深度と、４：４：４および４：２：２を含む高クロマサンプリングフォーマットとのサポートを含む、ＲＥｘｔに関係する。本明細書で説明する技法は、スクリーンコンテンツコーディングにも適用され得る。
【０１３６】
[0146]図５に、本開示で説明する態様による、イントラＢＣのためのハッシュベース高速符号化器探索の例示的なフレームワークを示す。ハッシュベース高速符号化器探索では、ハッシュテーブルは、各スライス（またはタイル）の符号化プロセス中に構成される。様々な実施形態では、ハッシュテーブルはメモリユニットに記憶され得、メモリユニットはプロセッサに動作可能に結合される（すなわち、プロセッサと通信している）ことがある。いくつかの事例では、ハッシュテーブルは１つまたは複数のリンクリストを含み得る。様々な実施形態において、現在のブロック５０５は、ハッシュ関数５１５の使用によってハッシュインデックス５１０にマッピングされる。言い換えれば、符号化器（たとえば、ビデオ符号化器２０またはビデオ復号器３０）は、現在のブロック５０５に関連付けられたハッシュインデックス５１０を決定するために、現在のブロック５０５にハッシュ関数５１５を適用する。様々な実施形態では、符号化器探索５２０（すなわち、予測ブロックのために符号化器によって実行される探索動作）は、現在のブロック５０５がそれにマッピングされると決定された個々のハッシュインデックス５１０に制限され得る。言い換えれば、５２０において、符号化器は、探索領域全体を探索する代わりに、ハッシュインデックス５１０に前にマッピングされたブロックに探索を制限し得る。一実施形態では、ハッシュインデックス５１０は、ハッシュインデックス５１０に前にマッピングされたブロックを示す情報のリンクリストを含み得る。いくつかの事例では、そのようなブロックは、これらのブロックが現在のブロック５０５を予測するための予測ブロックとして使用されるための候補であるので、候補参照ブロックと呼ばれることがある。符号化器探索５２０が候補参照ブロックに制限されるので、符号化器は、予測ブロックとして不適当であろう他のブロックを不必要に検索するのではなく、現在のブロック５０５に類似したブロックのみを効率的に探索することができる。
【０１３７】
[0147]現在のブロック５０５が再構成された後、現在のブロック５０５は、新たに利用可能な候補参照ブロックとして働き得る。新たに利用可能な候補参照ブロックは、それらのハッシュインデックス５１０に従って、ハッシュテーブル中の対応するリンクリストに追加される。いくつかの実施形態では、ハッシュフィルタ５３０は、新たに利用可能な候補参照ブロックのうちのいくつかをフィルタ処理（すなわち、削除）するために使用され得、そのような新たに利用可能な候補参照ブロックはハッシュテーブルに追加されない。ハッシュテーブルは、（ハッシュフィルタが使用されない場合）符号化器探索５２０の後に、または（ハッシュフィルタが使用される場合）ハッシュフィルタ５３０を適用した後に更新５２５され得る。
【０１３８】
[0148]ハッシュ関数５１５は、ハッシュインデックス５１０に現在のブロック５０５または参照ブロック（元の参照ブロックまたは再構成された参照ブロックのいずれか）をマッピングするために使用され得る。ハッシュインデックス５１０は、固定ビット長、たとえば、１２、１３、１４、１５、１６、．．．、または２４ビットであり得るか、またはハッシュインデックス５１０は可変ビット長であり得る。ハッシュインデックス５１０を計算するための様々な好適なハッシュ関数５１５および／または方法があり得る。
【０１３９】
[0149]たとえば、ハッシュインデックス５１０は、以下のセット、すなわち、｛直流（ＤＣ）、ＤＣs、Ｇｒａｄ、Ｇｒａｄs、ＤＣＴi,j、ＤＣＴs,(i,j)｝中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結であり得、ここにおいて、ＤＣは現在のブロックのＤＣ値または平均値であり、ここにおいて、ＤＣsは現在のブロックの第１のサブブロックのＤＣ値であり、ここにおいて、Ｇｒａｄは現在のブロックの勾配であり、ここにおいて、Ｇｒａｄsは現在のブロックの第２のサブブロックの勾配であり（ここにおいて、第２のサブブロックは、第１のサブブロックを備え得るか、または現在のブロックの異なるサブブロックであり得る）、ここにおいて、ＤＣＴi,jは現在のブロックの第（ｉ，ｊ）のＤＣＴ係数であり、ここにおいて、ＤＣＴs,(i,j)は現在のブロックの第３のサブブロックの第（ｉ，ｊ）のＤＣＴ係数である（ここにおいて、第３のサブブロックは、第１または第２のサブブロックを備え得るか、または現在のブロックの異なるサブブロックであり得る）。いくつかの実施形態では、これらの値（たとえば、ＤＣ、ＤＣs、Ｇｒａｄ、Ｇｒａｄs、ＤＣＴi,j、ＤＣＴs,(i,j)）を計算するために、ルーマサンプルおよび／またはクロマサンプルの値を使用することが可能であり得る。
【０１４０】
[0150]別の例では、ハッシュインデックス５１０は、巡回冗長検査（ＣＲＣ）を使用して計算され得、入力は、現在のブロック中のすべてのピクセルまたは選択されたピクセル、あるいはブロック中のすべてのピクセルまたは選択されたピクセルの関数（たとえば、量子化）である。いくつかの実施形態では、入力としてルーマサンプルまたはクロマサンプルのいずれかを使用するか、あるいは入力としてルーマサンプルとクロマサンプルの両方を使用することが可能である。
【０１４１】
[0151]符号化器探索５２０は、現在のブロック５０５と、候補参照ブロック（すなわち、ハッシュインデックス５１０に前にマッピングされた（すなわち、それに関連付けられた）現在のブロック５０５と同じピクチャ（またはピクチャのスライス）内のブロックとの間の距離メトリックを計算および／または評価することを含み得る。いくつかの実施形態は、絶対差分和（ＳＡＤ）、２乗誤差和（ＳＳＥ）、および／またはＲＤコストを含む、様々な距離メトリックのうちの１つまたは複数を使用することを伴い得る。最短距離をもつ候補参照ブロックが、現在のブロック５０５の予測ブロックとして選択され得る。一実施形態では、ハッシュテーブル５２５に記憶された、現在のブロック５０５と同じハッシュインデックス５１０を有する候補参照ブロックのみが、距離メトリックを使用して評価される。このようにして、本開示によるハッシュベース探索技法を使用して予測ブロックを探索することは、ＨＥＶＣのＲＥｘｔにおいて使用される既存の方法よりも効率的であり得る。
【０１４２】
[0152]現在のブロック５０５が再構成された後、同じピクチャ（または同じスライス）内の後のブロックを予測するための新たに利用可能な候補参照ブロックが、それらのハッシュインデックスに従って、ハッシュテーブル５２５の対応するリンクリストに追加される。上述のように、いくつかの実施形態では、いくつかの候補参照ブロックをフィルタで除去するためにハッシュフィルタ５３０が使用され、これらの候補参照ブロックはハッシュテーブル５２５に追加されないことがある。
【０１４３】
[0153]ハッシュフィルタ５３０は、候補参照ブロックをフィルタ処理するために、様々なファクタを利用し得る。このフィルタ処理は、イントラＢＣに低いまたは無視できるユーティリティを与え得る候補参照ブロックを除外し、これにより、そのような候補参照ブロックのためのインデックスでハッシュテーブルが乱雑になるのを回避し得る。一例では、候補参照ブロックの平均勾配がしきい値よりも小さい場合、候補参照ブロックはハッシュテーブル５２５に追加されない。たとえば、候補参照ブロックの平均勾配は、候補参照ブロック内のピクセル値の均一性に対応し得る。候補参照ブロックの平均勾配がしきい値よりも小さい場合、これは、候補参照ブロック中のピクセル値が全体として均一または平坦であることを示し得る。
【０１４４】
[0154]別の例では、Ｎ（たとえば、Ｎ＝３、４、５、６、７．．．３２）個のあらかじめ定義されたピクセル値について、候補参照ブロック中のこれらのＮ個の値のうちのいずれかに等しい値をもつピクセル（たとえば、ルーマまたはクロマのいずれか、あるいはルーマとクロマの両方）の割合がしきい値（たとえば、７０％、７５％、８０％、８５％、９０％、９５％）よりも低い場合、候補参照ブロックはハッシュテーブル５２５に追加されない。たとえば、候補参照ブロック中のこれらのＮ個の値のうちのいずれかに等しい値をもつピクセルの割合がしきい値よりも小さい場合、これは、特定の値または色が候補参照ブロックを支配しないことを示し得る。
【０１４５】
[0155]また別の例では、１つのハッシュインデックス５１０に対応するリンクリスト中のノードの数がしきい値（たとえば、１２８）よりも大きいとき、特定の候補参照ブロックはハッシュテーブル５２５に追加されない。
【０１４６】
[0156]いくつかの事例では、ハッシュテーブル（たとえば、ハッシュテーブル５２５）は、効率を改善するための動作を実行するように設計され得る。たとえば、ハッシュテーブルは、候補参照ブロックをより正確にグループ化するようにハッシュインデックスを調整し得る。ハッシュインデックスは、固定ビット長（たとえば、１２、１３、１４、１５、１６、．．．または２４ビット）を有するか、あるいは可変ビット長を有することができる。いくつかの事例では、ハッシュインデックスは、候補参照ブロックのグループ化を調整するために、長さが増加または減少し得る。たとえば、ハッシュインデックスは１２ビットのビット長を有し得る。本例では、あるハッシュインデックスに他のハッシュインデックスよりも、候補参照ブロックの大きいサブセットが関連付けられる場合、そのハッシュインデックスおよび／または他のハッシュインデックスのビット長は、候補参照ブロックのうちのいくつかを除外するために１４ビットに調整され、それにより、候補参照ブロックをより一様に分散させ得る。代替的に、ハッシュインデックスのビット長は、より多くの候補参照ブロックを含めるために減少させられ得る。
【０１４７】
[0157]図６は、本開示で説明する態様による、ハッシュベース符号化器探索を使用してピクチャのビデオ情報を符号化するための例示的なフローチャートの図である。プロセス６００はブロック６０１において開始する。
【０１４８】
[0158]ブロック６０５において、プロセス６００は、符号化器がメモリにハッシュテーブルを記憶することを伴い得る。ハッシュテーブルは、連想配列を実装することに好適な任意のソフトウェアまたはデバイスであり得る。ハッシュテーブルは以下、すなわち、ハッシュ関数、ハッシュインデックス、バケット、鍵、および値のうちの１つまたは複数を備え得る。入力または鍵が与えられれば、ハッシュテーブルは、ハッシュインデックスに入力をマッピングするためのハッシュ関数を適用し得る。ハッシュインデックスは、関連付けられたバケットを有し得る。各バケットは、１つまたは複数のエントリに関連付けられる。たとえば、各エントリは、ビデオ情報の１つまたは複数のブロックを示すデータを含んでいることがある。
【０１４９】
[0159]ブロック６１０において、プロセス６００は、ハッシュインデックスにビデオ情報のブロックをマッピングすることを伴い得る。たとえば、ビデオ情報の現在のブロックを示すデータが、ハッシュテーブルに入力され得る。符号化器は、入力されたデータ（すなわち、ビデオ情報の現在のブロック）に基づいてハッシュインデックスを計算するためのハッシュ関数を適用し得る。上記で説明したように、様々な計算が、ハッシュ関数として使用するのに好適であり得る。
【０１５０】
[0160]符号化器は、したがって、ハッシュインデックスと、関連付けられたバケットとを使用して、１つまたは複数のエントリにビデオ情報のブロックをマッピングし得る。たとえば、エントリは、候補参照ブロックを示す情報を与え得る。この例では、情報は候補参照ブロックのコンテンツの仕様データであり得る。いくつかの事例では、１つまたは複数のエントリは１つのバケットに関連付けられ得、１つまたは複数のエントリはリンクリストを備え得る。リンクリストは、情報の関連付けられたセットであり得、ノードから構成される。ノードは値および次のノードへのリンクを含み得る。たとえば、第１のエントリはリンクまたはポインタに関連付けられ得、リンクは第２のエントリへの方向情報を与え得る。この例では、第１および第２のエントリは、関連付けられたリンクとともに、リンクリストを備え得る。リンクリストは任意の数のノードを有し得る。各ノードはエントリおよび次のノードへのリンクを含み得る。
【０１５１】
[0161]いくつかの事例では、バケットはリンクを備え得、リンクはヌル参照またはノードへのポインタのいずれかであり得る。たとえば、ハッシュインデックスに関連付けられた記憶された値がない場合、ハッシュインデックスの関連付けられたバケットはヌル参照を有し得る。
【０１５２】
[0162]決定ブロック６１５において、プロセス６００は、ハッシュインデックスに関連付けられたリンクがヌル参照であるのかノードへのポインタであるのかを決定することを伴い得る。リンクがヌル参照でない場合、プロセス６００は、ブロック６２０に進むことを伴い得る。リンクがヌル参照である場合、プロセス６００は、ブロック６４０に進むことを伴い得る。
【０１５３】
[0163]上記で説明したように、ノードの値フィールドは、候補参照ブロックを示す情報を含んでいることがある。この情報にアクセスすることによって、ビデオ情報の現在のブロックは個々の参照ブロックと比較され得る。
【０１５４】
[0164]ブロック６２０において、ハッシュインデックスのリンクがヌル参照でない場合、プロセス６００は、現在のブロックを、ハッシュインデックスのリンクによって示されたノードの候補参照ブロックと比較することを伴い得る。上記で説明したように、比較は、現在のブロックと候補参照ブロックとの間の距離の計算を伴い得る。
【０１５５】
[0165]いくつかの事例では、リンクリストは、ノードのリンクがヌル参照になるまで続き得る。他の事例では、リンクリストは、ノードのリンクが第１のノードを指すまで続き得る。
【０１５６】
[0166]決定ブロック６２５において、プロセス６００は、現在のノードがヌル参照または第１のノードへのポインタを有するかどうかを決定することを伴い得る。現在のノードがヌル参照または第１のノードへのポインタを有しない場合、プロセス６００は、ブロック６２０に戻ることを伴い得る。現在のノードがヌル参照または第１のノードへのポインタを有する場合、プロセス６００は、ブロック６３０に進むことを伴い得る。
【０１５７】
[0167]ブロック６３０において、現在のノードがヌル参照を有する場合、プロセス６００は、リンクリスト中の候補参照ブロックの中から予測ブロックを決定（たとえば、選択）することを伴い得る。いくつかの事例では、予測ブロックの決定は、現在のブロックとリンクリスト中の候補参照ブロックとの間の比較に基づき得る。たとえば、現在のブロックからの最短距離を有するリンクリスト中の候補参照ブロックが、予測ブロックとして選択され得る。
【０１５８】
[0168]ブロック６３５において、プロセス６００は、決定された予測ブロックを使用してピクチャのビデオ情報を符号化することを伴い得る。たとえば、予測ブロックから受信された情報は、予測ブロックと現在のブロックとを含んでいるピクチャのスライスまたはピクチャ全体を符号化する際に使用され得る。
【０１５９】
[0169]いくつかの事例では、現在のブロックを示す情報がハッシュテーブルに追加され得る。このようにして、現在のブロックは、後の現在のブロックに対する候補参照ブロックとして働き得る。しかしながら、いくつかの事例では、現在のブロックは、ハッシュテーブルに追加される前に、１つまたは複数のフィルタを通過することが必要とされ得る。３つの例示的なフィルタについて上記で説明したが、それらのフィルタは決定ブロック６４０、６４５、および６５０において表される。
【０１６０】
[0170]決定ブロック６４０、６４５、および６５０において、現在のブロックが再構成された後、またはさもなければ、決定ブロック６１５においてハッシュインデックスがヌル参照に関連付けられるので候補参照ブロックがないと決定された後、プロセス６００は、３つのフィルタを通して現在のブロックをフィルタ処理することを伴い得る。
【０１６１】
[0171]決定ブロック６４０において、プロセス６００は、現在のブロックの平均勾配が不均一性しきい値を下回るかどうかを決定することを伴い得る。平均勾配が不均一性しきい値を下回る場合、プロセス６００は、ブロック６５５に進むことを伴い得る。平均勾配が不均一性しきい値を満たすかまたは超える場合、プロセス６００は、決定ブロック６４５に進むことを伴い得る。
【０１６２】
[0172]決定ブロック６４５において、プロセス６００は、あらかじめ決定されたピクセル値を有する現在のブロックのピクセルの割合を決定することと、さらに、割合がしきい値割合を下回るかどうかを決定することとを伴い得る。たとえば、任意の数のあらかじめ決定されたピクセル値が使用され得る。割合がしきい値割合を下回る場合、プロセス６００は、ブロック６５５に進むことを伴い得る。割合がしきい値割合を満たすかまたは超える場合、プロセス６００は、ブロック６５０に進むことを伴い得る。
【０１６３】
[0173]決定ブロック６５０において、プロセス６００は、リンクリスト中のノードの数がしきい値ノード数を上回るかどうかを決定することを伴い得る。リンクリスト中のノードの数がしきい値ノード数を満たすかまたは超える場合、プロセス６００は、ブロック６５５に進むことを伴い得る。ノードの数がしきい値ノード数を下回る場合、プロセス６００は、ブロック６６０に進むことを伴い得る。
【０１６４】
[0174]ブロック６５５において、現在のブロックがフィルタのうちの１つまたは複数を通らない場合、それはハッシュテーブルに追加されない。
【０１６５】
[0175]ブロック６６０において、現在のブロックがフィルタを通った場合、それはハッシュテーブルに追加される。たとえば、現在のブロックを示す情報が、現在のブロックのハッシュインデックスに関連付けられたリンクリストのノードに追加され得る。
【０１６６】
[0176]プロセス６００はブロック６６５において終了する。
【０１６７】
[0177]いくつかの実施形態では、ハッシュテーブルは、各スライス（またはタイル、フレームなど）の始まりにおいてクリアされるかまたは空にされ得る。しかしながら、いくつかの実施形態では、ハッシュテーブルは、たとえば、現在のスライスがインタースライスである場合、空にされないことがある。
【０１６８】
[0178]一実施形態では、上記で説明したハッシュベース探索は、限定はしないが、８×８、１６×１６などのいくつかのブロックサイズに適用され得る。上記で説明したハッシュベース探索方法は、イントラＢＣのための高速符号化器探索に関する現在の技法とは別々にまたはそれらと組み合わせて使用され得る。
他の考慮事項
[0179]本明細書で開示する情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１６９】
[0180]本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１７０】
[0181]本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装される場合、本技法は、実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１７１】
[0182]プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得、または複合ビデオ符号化器／復号器（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１７２】
[0183]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットについて説明したが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１７３】
[0184]上記について様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。たとえば、符号化器は、使用のために利用可能な説明した複数のハッシュ関数を有し得、いずれのハッシュ関数をビデオ情報の各ブロックのために使用すべきかを決定し得る。記憶されたハッシュインデックスは複数の値を備え得、ビデオ情報のブロックは、ブロックのための計算されたハッシュインデックスが、記憶されたハッシュインデックスの値のうちの１つまたは複数に一致する場合、記憶されたハッシュインデックスにマッピングされ得る。説明したハッシュフィルタは、代わりに、ハッシュテーブルへの現在のブロックの自動追加と組み合わせて適用され得、すなわち、ハッシュフィルタは、ビデオ情報のブロックを示す情報がハッシュテーブルに追加された後に適用され得る。たとえば、リンクリストがいっぱいになった場合、ハッシュフィルタはその時点において適用され得る。現在のブロックを示す情報がハッシュテーブル中のハッシュインデックスにマッピングされた後にその情報をハッシュテーブルに追加することを含む、特徴の同様の組合せも企図されるが、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。
【０１７４】
[0185]本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
【図１Ａ】
2017513343.tif 000003
【図１Ｂ】
2017513343.tif 000004
【図２Ａ】
2017513343.tif 000005
【図２Ｂ】
2017513343.tif 000006
【図３Ａ】
2017513343.tif 000007
【図３Ｂ】
2017513343.tif 000008
【図４】
2017513343.tif 000009
【図５】
2017513343.tif 000010
【図６】
2017513343.tif 000011
【手続補正書】
【提出日】平成28年11月16日(2016.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピクチャの少なくとも１つのブロックを符号化するための装置であって、
少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するように構成されたメモリユニット、前記少なくとも１つのハッシュインデックスの各々は、データのセットを備える、と、
前記メモリユニットに動作可能に結合されたプロセッサと
を備え、前記プロセッサは、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに前にマッピングされた参照ブロックを識別すること、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記現在のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記現在のブロックを符号化することと
を行うように構成される、装置。
【請求項２】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項１に記載の装置。
【請求項３】
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１に記載の装置。
【請求項４】
前記参照ブロックは、リンクリストを備える、
請求項１に記載の装置。
【請求項５】
前記プロセッサは、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項６】
前記プロセッサは、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項７】
前記プロセッサは、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項８】
ピクチャの少なくとも１つのブロックを符号化するための方法であって、
メモリユニットに、少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶すること、前記少なくとも１つのハッシュインデックスの各々は、データのセットを備える、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに前にマッピングされた参照ブロックを識別すること、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記現在のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記現在のブロックを符号化することと
を備える、方法。
【請求項９】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項８に記載の方法。
【請求項１０】
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項８に記載の方法。
【請求項１１】
前記参照ブロックは、リンクリストを備える、
請求項８に記載の方法。
【請求項１２】
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１３】
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１４】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１５】
実行されたとき、
メモリユニットに、ピクチャの少なくとも１つのブロックを符号化する際に使用するハッシュテーブルを記憶すること、前記ハッシュテーブルは、少なくとも１つのハッシュインデックスを備え、前記少なくとも１つのハッシュインデックスの各々が、データのセットを備える、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに前にマッピングされた参照ブロックを識別すること、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記現在のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記現在のブロックを符号化することと
をデバイスのプロセッサに行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記参照ブロックは、リンクリストを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
実行されたとき、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
実行されたとき、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
実行されたとき、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
ピクチャの少なくとも１つのブロックを符号化するように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するための手段、前記少なくとも１つのハッシュインデックスの各々は、データのセットを備える、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングするための手段と、
前記ハッシュテーブルから、前記ハッシュインデックスに前にマッピングされた参照ブロックを識別するための手段、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択するための手段、前記選択された予測ブロックは、前記現在のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記現在のブロックを符号化するための手段と
を備える、ビデオコーディングデバイス。
【請求項２３】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２４】
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２５】
前記参照ブロックは、リンクリストを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２６】
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２７】
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２８】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１７４
【補正方法】変更
【補正の内容】
【０１７４】
[0185]本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ピクチャのビデオ情報を符号化するための装置であって、
前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するように構成されたメモリユニット、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記メモリユニットに動作可能に結合されたプロセッサと
を備え、前記プロセッサは、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
を行うように構成される、装置。
［Ｃ２］
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
Ｃ１に記載の装置。
［Ｃ３］
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
Ｃ１に記載の装置。
［Ｃ４］
前記参照ブロックは、リンクリストを備える、
Ｃ１に記載の装置。
［Ｃ５］
前記プロセッサは、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
Ｃ４に記載の装置。
［Ｃ６］
前記プロセッサは、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
Ｃ４に記載の装置。
［Ｃ７］
前記プロセッサは、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するようにさらに構成される、
Ｃ４に記載の装置。
［Ｃ８］
ピクチャのビデオ情報を符号化するための方法であって、
メモリユニットに、前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶すること、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
を備える、方法。
［Ｃ９］
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
Ｃ８に記載の方法。
［Ｃ１０］
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
Ｃ８に記載の方法。
［Ｃ１１］
前記参照ブロックは、リンクリストを備える、
Ｃ８に記載の方法。
［Ｃ１２］
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
Ｃ１１に記載の方法。
［Ｃ１３］
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
Ｃ１１に記載の方法。
［Ｃ１４］
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することをさらに備える、
Ｃ１１に記載の方法。
［Ｃ１５］
実行されたとき、
メモリユニットに、ピクチャのビデオ情報を符号化する際に使用するハッシュテーブルを記憶すること、前記ハッシュテーブルは、前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを備え、前記参照ブロックが、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングすることと、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別することと、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択することと、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化することと
をデバイスのプロセッサに行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
［Ｃ１６］
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
Ｃ１５に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ１７］
前記ハッシュ関数は、前記現在のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
Ｃ１５に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ１８］
前記参照ブロックは、リンクリストを備える、
Ｃ１５に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ１９］
実行されたとき、前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
Ｃ１８に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２０］
実行されたとき、あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
Ｃ１８に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２１］
実行されたとき、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
Ｃ１８に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２２］
ピクチャのビデオ情報を符号化するように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
前記ピクチャ中の参照ブロックに対応する少なくとも１つのハッシュインデックスを含むハッシュテーブルを記憶するための手段、前記参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
現在のブロックへのハッシュ関数の適用に基づいて、前記ハッシュテーブル中のハッシュインデックスに前記現在のブロックをマッピングするための手段と、
前記ハッシュテーブルから、前記ハッシュインデックスに対応する参照ブロックを識別するための手段と、
前記参照ブロックとの前記現在のブロックの比較に基づいて、前記参照ブロックの中から予測ブロックを選択するための手段と、
前記選択された予測ブロックを使用して、前記ビデオ情報を符号化するための手段と
を備える、ビデオコーディングデバイス。
［Ｃ２３］
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記現在のブロックの直流（ＤＣ）値と、前記現在のブロックのサブブロックのＤＣ値と、前記現在のブロックの勾配と、前記現在のブロックの前記サブブロックの勾配と、前記現在のブロックの離散コサイン変換（ＤＣＴ）と、前記現在のブロックの前記サブブロックのＤＣＴとを備える、
Ｃ２２に記載のビデオコーディングデバイス。
［Ｃ２４］
前記ハッシュ関数は、前記ブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
Ｃ２２に記載のビデオコーディングデバイス。
［Ｃ２５］
前記参照ブロックは、リンクリストを備える、
Ｃ２２に記載のビデオコーディングデバイス。
［Ｃ２６］
前記現在のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
Ｃ２５に記載のビデオコーディングデバイス。
［Ｃ２７］
あらかじめ定義されたピクセル値を有する前記現在のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
Ｃ２５に記載のビデオコーディングデバイス。
［Ｃ２８］
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記現在のブロックを追加するための手段をさらに備える、
Ｃ２５に記載のビデオコーディングデバイス。
【手続補正書】
【提出日】平成28年11月17日(2016.11.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピクチャの１つまたは複数のブロックを符号化するための装置であって、前記１つまたは複数のブロックは、第１のブロックを備え、前記第１のブロックは、前記ピクチャの第１の一部分を示すデータのセットを備え、前記装置は、
ピクチャデータを記憶するための少なくとも１つのエントリを含むハッシュテーブルを記憶するように構成されたメモリユニット、前記少なくとも１つのエントリの各々は、関連付けられたハッシュインデックスを有する、と、
前記メモリユニットに動作可能に結合されたプロセッサと
を備え、前記プロセッサは、
第１のハッシュインデックスを決定するために前記第１のブロックにハッシュ関数を適用すること、前記第１のハッシュインデックスは、前記ピクチャ中の前記１つまたは複数のブロックのサブセットに関連付けられたデータのセットを備える、と、
前記第１のハッシュインデックスに前記第１のブロックをマッピングすることと、
前記第１のハッシュインデックスに関連付けられた前記ハッシュテーブル中のエントリを識別することと、
前記ハッシュテーブルから、前記第１のハッシュインデックスに関連付けられた前記識別されたエントリ中に記憶された少なくとも１つの参照ブロックを識別すること、前記少なくとも１つの参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記少なくとも１つの参照ブロックとの前記第１のブロックの比較に基づいて、前記少なくとも１つの参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記第１のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記第１のブロックを符号化することと
を行うように構成される、装置。
【請求項２】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記第１のブロックの直流（ＤＣ）値と、前記第１のブロックのサブブロックのＤＣ値と、前記第１のブロックの勾配と、前記第１のブロックの前記サブブロックの勾配と、前記第１のブロックの離散コサイン変換（ＤＣＴ）と、前記第１のブロックの前記サブブロックのＤＣＴとを備える、
請求項１に記載の装置。
【請求項３】
前記ハッシュ関数は、前記第１のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１に記載の装置。
【請求項４】
前記少なくとも１つの参照ブロックは、リンクリストを備える、
請求項１に記載の装置。
【請求項５】
前記プロセッサは、前記第１のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項６】
前記プロセッサは、あらかじめ定義されたピクセル値を有する前記第１のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項７】
前記プロセッサは、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記第１のブロックを追加するようにさらに構成される、
請求項４に記載の装置。
【請求項８】
ピクチャの１つまたは複数のブロックを符号化するための方法であって、前記１つまたは複数のブロックは、第１のブロックを備え、前記第１のブロックは、前記ピクチャの第１の一部分を示し、前記方法は、
メモリユニットに、ピクチャデータを記憶するための少なくとも１つのエントリを含むハッシュテーブルを記憶すること、前記少なくとも１つのエントリの各々は、関連付けられたハッシュインデックスを有する、と、
第１のハッシュインデックスを決定するために前記第１のブロックにハッシュ関数を適用すること、前記第１のハッシュインデックスは、前記ピクチャ中の前記１つまたは複数のブロックのサブセットに関連付けられたデータのセットを備える、と、
前記第１のハッシュインデックスに前記第１のブロックをマッピングすることと、
前記第１のハッシュインデックスに関連付けられた前記ハッシュテーブル中のエントリを識別することと、
前記ハッシュテーブルから、前記第１のハッシュインデックスに関連付けられた前記エントリ中に記憶された少なくとも１つの参照ブロックを識別すること、前記少なくとも１つの参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記少なくとも１つの参照ブロックとの前記第１のブロックの比較に基づいて、前記少なくとも１つの参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記第１のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記第１のブロックを符号化することと
を備える、方法。
【請求項９】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記第１のブロックの直流（ＤＣ）値と、前記第１のブロックのサブブロックのＤＣ値と、前記第１のブロックの勾配と、前記第１のブロックの前記サブブロックの勾配と、前記第１のブロックの離散コサイン変換（ＤＣＴ）と、前記第１のブロックの前記サブブロックのＤＣＴとを備える、
請求項８に記載の方法。
【請求項１０】
前記ハッシュ関数は、前記第１のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項８に記載の方法。
【請求項１１】
前記少なくとも１つの参照ブロックは、リンクリストを備える、
請求項８に記載の方法。
【請求項１２】
前記第１のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１３】
あらかじめ定義されたピクセル値を有する前記第１のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１４】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記第１のブロックを追加することをさらに備える、
請求項１１に記載の方法。
【請求項１５】
実行されたとき、
メモリユニットに、ピクチャの１つまたは複数のブロックを符号化する際に使用するハッシュテーブルを記憶すること、前記１つまたは複数のブロックは、第１のブロックを備え、前記第１のブロックは、前記ピクチャの第１の一部分を示し、前記ハッシュテーブルは、ピクチャデータを記憶するための少なくとも１つのエントリを備え、前記少なくとも１つのエントリの各々が、関連付けられたハッシュインデックスを有する、と、
第１のハッシュインデックスを決定するために前記第１のブロックにハッシュ関数を適用すること、前記第１のハッシュインデックスは、前記ピクチャ中の前記１つまたは複数のブロックのサブセットに関連付けられたデータのセットを備える、と、
前記第１のハッシュインデックスに前記第１のブロックをマッピングすることと、
前記第１のハッシュインデックスに関連付けられた前記ハッシュテーブル中のエントリを識別することと、
前記ハッシュテーブルから、前記第１のハッシュインデックスに関連付けられた前記エントリ中に記憶された少なくとも１つの参照ブロックを識別すること、前記少なくとも１つの参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記少なくとも１つの参照ブロックとの前記第１のブロックの比較に基づいて、前記少なくとも１つの参照ブロックの中から予測ブロックを選択すること、前記選択された予測ブロックは、前記第１のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記第１のブロックを符号化することと
をデバイスのプロセッサに行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記第１のブロックの直流（ＤＣ）値と、前記第１のブロックのサブブロックのＤＣ値と、前記第１のブロックの勾配と、前記第１のブロックの前記サブブロックの勾配と、前記第１のブロックの離散コサイン変換（ＤＣＴ）と、前記第１のブロックの前記サブブロックのＤＣＴとを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記ハッシュ関数は、前記第１のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記少なくとも１つの参照ブロックは、リンクリストを備える、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
実行されたとき、前記第１のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
実行されたとき、あらかじめ定義されたピクセル値を有する前記第１のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
実行されたとき、前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記第１のブロックを追加することを前記プロセッサに行わせる命令をさらに記憶した、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
ピクチャの１つまたは複数のブロックを符号化するように構成されたビデオコーディングデバイスであって、前記１つまたは複数のブロックは、第１のブロックを備え、前記第１のブロックは、前記ピクチャの第１の一部分を示し、前記ビデオコーディングデバイスは、
ピクチャデータを記憶するための少なくとも１つのエントリを含むハッシュテーブルを記憶するための手段、前記少なくとも１つのエントリの各々は、関連付けられたハッシュインデックスを有する、と、
第１のハッシュインデックスを決定するために前記第１のブロックにハッシュ関数を適用するための手段、前記第１のハッシュインデックスは、前記ピクチャ中の前記１つまたは複数のブロックのサブセットに関連付けられたデータのセットを備える、と、
前記第１のハッシュインデックスに前記第１のブロックをマッピングするための手段と、
前記第１のハッシュインデックスに関連付けられた前記ハッシュテーブル中のエントリを識別するための手段と、
前記ハッシュテーブルから、前記第１のハッシュインデックスに関連付けられた前記エントリ中に記憶された少なくとも１つの参照ブロックを識別するための手段、前記少なくとも１つの参照ブロックは、前記ピクチャ中の利用可能なブロックのサブセットである、と、
前記少なくとも１つの参照ブロックとの前記第１のブロックの比較に基づいて、前記少なくとも１つの参照ブロックの中から予測ブロックを選択するための手段、前記選択された予測ブロックは、前記第１のブロックを再構成するために使用される、と、
前記選択された予測ブロックに基づいて、前記第１のブロックを符号化するための手段と
を備える、ビデオコーディングデバイス。
【請求項２３】
前記ハッシュ関数は、セット中の１つまたは複数の値の最上位ビット（ＭＳＢ）の連結を作成し、前記セットは、前記第１のブロックの直流（ＤＣ）値と、前記第１のブロックのサブブロックのＤＣ値と、前記第１のブロックの勾配と、前記第１のブロックの前記サブブロックの勾配と、前記第１のブロックの離散コサイン変換（ＤＣＴ）と、前記第１のブロックの前記サブブロックのＤＣＴとを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２４】
前記ハッシュ関数は、前記第１のブロック中の１つまたは複数のピクセルの巡回冗長検査（ＣＲＣ）を備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２５】
前記少なくとも１つの参照ブロックは、リンクリストを備える、
請求項２２に記載のビデオコーディングデバイス。
【請求項２６】
前記第１のブロックの平均勾配値が不均一性しきい値を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２７】
あらかじめ定義されたピクセル値を有する前記第１のブロックのピクセルの割合がしきい値割合を満たすかまたは超えることに応答して、前記リンクリストに前記第１のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【請求項２８】
前記リンクリスト中のノードの数がしきい値ノード数よりも小さいことに応答して、前記リンクリストに前記第１のブロックを追加するための手段をさらに備える、
請求項２５に記載のビデオコーディングデバイス。
【国際調査報告】
2017513343.tif 000012
2017513343.tif 000013
2017513343.tif 000014
2017513343.tif 000015