(57)【要約】  ディスプレイストリーム圧縮（ＤＳＣ）のためにブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法が開示される。一態様では、本方法は、現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することを含む。候補ブロックは、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり得る。本方法は、候補ブロックと現在ブロックとに基づいて、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルを決定することと、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングすることとをさらに含む。
2017516392.tif 000002
【特許請求の範囲】
【請求項１】
ブロック予測モードでビデオデータをコーディングするための方法であって、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、前記候補ブロックがビデオ符号化デバイスのメモリに記憶される、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
【請求項２】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１に記載の方法。
【請求項３】
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、請求項１に記載の方法。
【請求項４】
前記現在ブロックが、前記現在スライス中に少なくとも１つの先行するラインを有する現在ライン中にある、請求項１に記載の方法。
【請求項５】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる（span）、請求項１に記載の方法。
【請求項６】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１に記載の方法。
【請求項７】
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項７に記載の方法。
【請求項９】
前記残差の前記シグナリングは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を備える、請求項７に記載の方法。
【請求項１０】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項７に記載の方法。
【請求項１１】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１に記載の方法。
【請求項１２】
ブロック予測モードで前記現在ブロックを予測することが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを備える、請求項１に記載の方法。
【請求項１３】
ブロック予測モードでビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成されたプロセッサと
を備える、装置。
【請求項１４】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１３に記載の装置。
【請求項１５】
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、請求項１３に記載の装置。
【請求項１６】
前記現在ブロックが、前記現在スライス中に少なくとも１つの先行するラインを有する現在ライン中にある、請求項１３に記載の装置。
【請求項１７】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる、請求項１３に記載の装置。
【請求項１８】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１３に記載の装置。
【請求項１９】
前記プロセッサは、
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
を行うようにさらに構成された、請求項１３に記載の装置。
【請求項２０】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を行うようにさらに構成された、請求項１９に記載の装置。
【請求項２２】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項１９に記載の装置。
【請求項２３】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１３に記載の装置。
【請求項２４】
前記プロセッサが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを行うようにさらに構成された、請求項１３に記載の装置。
【請求項２５】
実行されたとき、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を装置に行わせるコードを備える非一時的コンピュータ可読媒体。
【請求項２６】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、請求項２５に記載のコンピュータ可読媒体。
【請求項２８】
ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定するための手段と、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定するための手段と、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
【請求項２９】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２８に記載のビデオコーディングデバイス。
【請求項３０】
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、請求項２８に記載のビデオコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮（ＤＳＣ：display stream compression）など、ディスプレイリンク（display link）を介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、したがって、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを与えるためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]  他のものが、ピクセルデータに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
【０００４】
[0004]  ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣなど、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質（すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ）を与えるべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
【発明の概要】
【０００５】
[0005]  本開示のシステム、方法およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示する望ましい属性を単独で担当するとは限らない。
【０００６】
[0006]  一態様では、ブロック予測モード（block prediction mode）でビデオデータ（video data）をコーディングするための方法は、現在スライス（current slice）中の現在ブロック（current block）を予測（predict）するために使用されるべき候補ブロック（candidate block）を決定することと、候補ブロックが、１つまたは複数のブロック予測パラメータ（block prediction parameter）によって定義されたロケーション（location）の範囲内にあり、ここにおいて、候補ブロックがビデオ符号化デバイス（video encoding device）のメモリに記憶される、候補ブロックと現在ブロック（current block）とに基づいて、現在ブロックに関する候補ブロックのロケーションを識別（identify）する予測ベクトル（prediction vector）を決定することと、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルをシグナリング（signaling）することを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディング（coding）することとを含む。
【０００７】
[0007]  別の態様では、ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成された装置は、メモリと、メモリと通信しているプロセッサとを含む。メモリは、ビデオデータを記憶するように構成される。プロセッサは、現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、候補ブロックが、メモリに記憶され、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、候補ブロックと現在ブロックとに基づいて、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルを決定することと、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングすることとを行うように構成される。
【０００８】
[0008]  別の態様では、非一時的コンピュータ可読媒体は、実行されたとき、現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、候補ブロックと現在ブロックとに基づいて、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルを決定することと、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングすることとを装置に行わせるコードを含んでいる。
【０００９】
[0009]  別の態様では、ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成されたビデオコーディングデバイスは、現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定するための手段と、候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、候補ブロックと現在ブロックとに基づいて、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルを決定するための手段と、現在ブロックに関する候補ブロックのロケーションを識別する予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングするための手段とを含む。
【図面の簡単な説明】
【００１０】
【図１Ａ】[0010]  本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図１Ｂ】[0011]  本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】[0012]  本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図２Ｂ】[0013]  本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図３】[0014]  本開示で説明する態様による、１Ｄブロックの場合の第１でないラインのための探索空間（search space）を示すブロック図。
【図４】[0015]  本開示で説明する態様による、２Ｄブロックの場合の第１でないラインのための探索空間を示すブロック図。
【図５】[0016]  本開示で説明する態様による、１Ｄブロックの場合の第１のラインのための探索空間を示すブロック図。
【図６】[0017]  本開示で説明する態様による、２Ｄブロックの場合の第１のラインのための探索空間を示すブロック図。
【図７】[0018]  本開示で説明する態様による、ブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャート。
【図８】[0019]  本開示で説明する態様による、区分（partition）を有するブロックを示すブロック図。
【図９】[0020]  ブロック予測モードが無効にされる例示的な画像コンテンツの図。
【図１０】[0021]  本開示で説明する態様による、ブロック予測モードが有効にされる例示的な画像コンテンツの図。
【発明を実施するための形態】
【００１１】
[0022]  概して、本開示は、ＤＳＣなどのビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、ブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法に関する。
【００１２】
[0023]  いくつかの実施形態について、ＤＳＣ規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）のうちの１つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明する技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１３】
[0024]  ＤＳＣ規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装形態では、エンコーダおよび／またはデコーダは、前にコーディングされたブロックに基づいてコーディングされるべき現在ブロックを予測し得る。
【００１４】
[0025]  しかしながら、既存のコーディングモード（たとえば、変換コーディング、差分パルスコード変調など）は、ビデオデータ中の極めて複雑な領域（highly complex region）を圧縮する満足な方法を提供しない。しばしば、このタイプのデータ（すなわち、高度に圧縮されたビデオデータ）の場合、コーディングされるべき現在ブロック（または現在ブロックの構成サブブロック）は、コーダ（たとえば、エンコーダまたはデコーダ）によって遭遇された前のブロックにコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足な予測（たとえば、十分に小さい残差（residual）をもたらすであろう予測）を行うには制限されすぎていることがある。したがって、ビデオデータのブロックをコーディングする改善された方法が望まれる。
【００１５】
[0026]  本開示では、ブロック予測モードでブロックをコーディングする改善された方法について説明する。たとえば、現在ブロックを予測するために使用されるべき候補ブロックを探索するとき、探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致であり得る潜在的な候補へのアクセスを有するように定義され得る。別の例では、本方法は、各ブロック（または各区分）のための予測を明示的にシグナリングすることを含み得る。エンコーダ側でより多くの動作を実行すること（たとえば、コンピューティングリソースと処理能力とを消費し得る、現在ブロックを予測するために使用されるべき候補ブロックを探索すること、現在ブロックに関する候補ブロックのロケーションを識別するベクトルを計算することなど）によって、本方法はデコーダ複雑さ（decoder complexity）を低減し得る。
【００１６】
ビデオコーディング規格（Video Coding Standards）
[0027]  ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００１７】
[0028]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００１８】
[0029]  さらに、ＶＥＳＡによって、あるビデオコーディング規格、すなわち、ＤＳＣが開発された。ＤＳＣ規格は、ディスプレイリンク（display link）を介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータのすべてを送信するための帯域幅を有しないことがある。したがって、ＤＳＣ規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮（visually lossless compression）のための圧縮規格を規定する。
【００１９】
[0030]  ＤＳＣ規格は、Ｈ．２６４およびＨＥＶＣなど、他のビデオコーディング規格とは異なる。ＤＳＣは、フレーム内圧縮（intra-frame compression）を含むが、フレーム間圧縮（inter-frame compression）を含まず、これは、ビデオデータをコーディングする際にＤＳＣ規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
【００２０】
ビデオコーディングシステム（Video Coding System）
[0031]  添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載する態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００２１】
[0032]  本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００２２】
[0033]  添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２３】
[0034]  図１Ａは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム（video coding system）１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ（video coder）」または「コーダ（coder）」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング（video coding）」または「コーディング（coding）」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ（transcoder）（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（middlebox）（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００２４】
[0035]  図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。ただし、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００２５】
[0036]  もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２６】
[0037]  宛先デバイス１４は、復号されるべき符号化ビデオデータを、リンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２７】
[0038]  図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００２８】
[0039]  キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータは、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３１上に記憶され得る。図１Ａおよび図１Ｂに示されているビデオエンコーダ２０は、図２Ａに示されているビデオエンコーダ２０、または本明細書で説明する他のビデオエンコーダを備え得る。
【００２９】
[0040]  図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介しておよび／またはストレージデバイス３１から符号化ビデオデータを受信し得る。リンク１６を介して通信され、またはストレージデバイス３１上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図１Ａおよび図１Ｂに示されているビデオデコーダ３０は、図２Ｂに示されているビデオデコーダ３０、または本明細書で説明する他のビデオデコーダを備え得る。
【００３０】
[0041]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３１】
[0042]  関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（随意に存在する）プロセッサ／コントローラデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれの構成要素は、場合によっては図１Ａのビデオコーディングシステム１０およびそれの構成要素と同様である。
【００３２】
[0043]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、ＨＥＶＣなど、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３３】
[0044]  図１Ａおよび図１Ｂの例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３４】
[0045]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダの一部として統合され得る。
【００３５】
ビデオコーディングプロセス（Video Coding Process）
[0046]  上記で手短に述べたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム（frame）」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【００３６】
[0047]  ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ（ＱＰ：quantization parameter）などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション（たとえば、コーディングモード）を定義し得る。コーディングオプションは、所望のレートひずみ性能（rate-distortion performance）を達成するために選択され得る。
【００３７】
[0048]  いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号され得る、画像（たとえば、フレーム）中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス（coded slice）」と呼ばれることがある。
【００３８】
ＤＳＣビデオエンコーダ（DSC Video Encoder）
[0049]  図２Ａは、本開示で説明する態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部または全部を実行するように構成され得る。
【００３９】
[0050]  説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４０】
[0051]  図２Ａの例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、色空間変換器（color-space converter）１０５と、バッファ１１０と、平坦度検出器（flatness detector）１１５と、レートコントローラ（rate controller）１２０と、予測器（predictor）、量子化器（quantizer）、および再構成器構成要素（reconstructor component）１２５と、ラインバッファ（line buffer）１３０と、インデックスカラー履歴（indexed color history）１３５と、エントロピーエンコーダ（entropy encoder）１４０と、サブストリームマルチプレクサ（substream multiplexor）１４５と、レートバッファ（rate buffer）１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４１】
[0052]  色空間変換器１０５は、入力色空間をコーディング実装形態において使用される色空間に変換し得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青（ＲＧＢ）色空間中にあり、コーディングは、ルミナンスＹ、クロミナンスグリーンＣｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
【００４２】
[0053]  関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。たとえば、バッファ１１０は、色空間変換されたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
【００４３】
[0054]  レートバッファ１５０はビデオエンコーダ２０においてレート制御機構の一部として機能し得、このことについて、レートコントローラ１２０に関して以下でより詳細に説明する。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレート（ＣＢＲ：constant bit rate）でバッファから取り出されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフロー（overflow）し得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフロー（underflow）を防ぐために、十分なビットを加えなければならない。
【００４４】
[0055]  ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でさらに詳細に説明する図２Ｂを参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー（underflow）」または「オーバーフロー（overflow）」すべきでない。
【００４５】
[0056]  いくつかの実施形態では、バッファフルネス（ＢＦ：buffer fullness）は、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。ＢＦは次のように計算され得る。
【００４６】
【数１】
2017516392.tif 000003
【００４７】
[0057]  平坦度検出器１１５は、ビデオデータ中の複雑な（すなわち、平坦でない）エリアからビデオデータ中の平坦な（flat）（すなわち、単純なまたは均一な）エリアへの変化を検出することができる。「複雑な（complex）」および「平坦な（flat）」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用する。したがって、本明細書で使用する複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑であることを表し、たとえば、テクスチャードビデオデータ（textured video data）、高い空間周波数、および／または符号化することが複雑である他の特徴を含み得る。本明細書で使用する平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、たとえば、ビデオデータ中の滑らかな勾配、低い空間周波数、および／または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクト（quantization artifact）を低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０、ならびに予測器、量子化器、および再構成器構成要素１２５は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
【００４８】
[0058]  レートコントローラ１２０は、コーディングパラメータのセット、たとえば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレート（target bit rate）についてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（たとえば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。
【００４９】
[0059]  予測器、量子化器、および再構成器構成要素１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。予測器、量子化器、および再構成器構成要素１２５は、いくつかの異なるモードで予測を実行し得る。１つの例示的なプレディケーションモード（predication mode）は、メディアン適応予測（median-adaptive prediction）の変更バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。予測器、量子化器、および再構成器構成要素１２５によって実行され得るメディアン適応予測の変更バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、前に再構成されたピクセルから左側に予測される。ビデオエンコーダ２０およびビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行することができ、したがって、ビットはブロック予測モードで送られる必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モード（midpoint prediction mode）も実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。図７を参照しながら以下でさらに説明するように、予測器、量子化器、および再構成器構成要素１２５は、図７に示されている方法を実行することによってビデオデータのブロック（または予測の他のユニット）を予測（たとえば、符号化または復号）するように構成され得る。
【００５０】
[0060]  予測器、量子化器、および再構成器構成要素１２５はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、予測器、量子化器、および再構成器構成要素１２５はまた、予測値に逆量子化された残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
【００５１】
[0061]  予測器、量子化器、および再構成器構成要素１２５によって実行される予測、量子化、および再構成に対する上記で説明した例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器構成要素１２５は、予測、量子化、および／または再構成を実行するための（１つまたは複数の）副構成要素を含み得ることに留意されたい。さらに、予測、量子化、および／または再構成は、予測器、量子化器、および再構成器構成要素１２５の代わりにいくつかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
【００５２】
[0062]  ラインバッファ１３０は、予測器、量子化器、および再構成器構成要素１２５ならびにインデックスカラー履歴１３５が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器構成要素１２５からの出力を保持する。インデックスカラー履歴１３５は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００５３】
[0063]  エントロピーエンコーダ１４０は、インデックスカラー履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移とに基づいて、予測器、量子化器、および再構成器構成要素１２５から受信された予測残差および他のデータ（たとえば、予測器、量子化器、および再構成器構成要素１２５によって識別されたインデックス）を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式（headerless packet multiplexing scheme）に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つのピクセルの復号を可能にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個のピクセル（たとえば、２つのピクセル／クロックまたは４つのピクセル／クロック）の復号を可能にし得る、エントロピーコーディング（entropy coding）に対する異なる手法が実装され得ることに留意されたい。
【００５４】
ＤＳＣビデオデコーダ（DSC Video Decoder）
[0064]  図２Ｂは、本開示で説明する態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部または全部を実行するように構成され得る。
【００５５】
[0065]  説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００５６】
[0066]  図２Ｂの例では、ビデオデコーダ（video decoder）３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、および再構成器構成要素（reconstructor component）１７５と、インデックスカラー履歴１８０と、ラインバッファ１８５と、色空間変換器１９０とを含む。ビデオデコーダ３０の図示された構成要素は、図２Ａ中のビデオエンコーダ２０に関して上記で説明した対応する構成要素に類似する。したがって、ビデオデコーダ３０の構成要素の各々は、上記で説明したビデオエンコーダ２０の対応する構成要素と同様の様式で動作し得る。
【００５７】
ＤＳＣにおけるスライス（Slices in DSC）
[0067]  上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなしに独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。
【００５８】
ブロック予測モード（Block Prediction Mode）
[0068]  ビデオデータの単一のブロックがいくつかのピクセルを含んでいることがあり、ビデオデータの各ブロックは、ブロックがコーディングされ得るいくつかの潜在的なコーディングモードを有する。そのようなコーディングモードのうちの１つはブロック予測モードである。ブロック予測モードでは、コーダは、（たとえば、現在ブロックが現在スライスの第１のライン中にない場合）前の再構成されたライン中で、または（たとえば、現在ブロックが現在スライスの第１のライン中にある場合）コーディングされるべき現在ブロックに（たとえば、ピクセル値が）近い、同じライン中の前の再構成されたブロック中で候補ブロックを見つけることを試みる。いくつかの実施形態では、絶対差分和（ＳＡＤ：Sum of Absolute Differences）メトリックによって、ピクセル値間の近さが決定される。コーダは、（たとえば、エンコーダとデコーダの両方に知られている所定の値であり得る）探索範囲によって定義された前に再構成されたブロックの任意の部分中で候補ブロックを見つけることを試み得る。探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致を見つけるために、探索範囲内に潜在的な候補を有するように定義される。ブロック予測モードのコーディング効率は、良好な候補（すなわち、コーディングされるべき現在ブロックにピクセル値が近いと決定された、探索範囲内の候補）が発見された場合、候補ブロックと現在ブロックとの間の（残差として知られる）差分が小さくなるということから来る。小さい残差は、現在ブロックの実際のピクセル値をシグナリングするために必要とされるビットの数と比較して、シグナリングするためにより少数のビットを要し、それにより、より低いレートひずみコストが生じ、レート制御機構によって選択される可能性が増加する。図９および図１０を参照しながら以下で説明するように、いくつかのタイプのグラフィックスコンテンツの場合、ブロック予測モードを有効にすることからの性能ブーストが極めて著しい。
【００５９】
ブロック予測モードでのパラメータ（Parameters in Block Prediction Mode）
[0069]  ブロック予測モードは、指定された探索範囲が与えられれば、符号化されるべき現在ブロックからの最小ひずみを与える候補ブロックを生成するように設計される。いくつかの実施形態では、最小ひずみは、ＳＡＤを使用して定義される。本開示のいくつかの実装形態では、ブロック予測方法は、３つのパラメータ、すなわち、探索範囲（ＳＲ：search range）と、スキュー（skew）（α）と、区分サイズ（partition size）（β）とによって定義される。これらの３つのパラメータは、ブロック予測モードの性能に影響を及ぼし、実装中に調整（すなわち、変更または再構成）され得る。これらのパラメータは、エンコーダとデコーダの両方に知られていることがある。
【００６０】
ブロック予測モードでの探索空間（Search Space in Block Prediction Mode）
[0070]  本開示のいくつかの実施形態では、探索空間（たとえば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション）は、現在ブロックの特性に基づいて異なり得る。探索空間は、すべての前に再構成されたブロック／ピクセルを包含し得るが、エンコーダおよび／またはデコーダは、たとえば、計算複雑さを低減するために、候補ブロックのための探索を探索空間内の指定された部分（たとえば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである１つまたは複数のパラメータによって定義される「探索範囲（search range）」）に制限し得る。ブロック予測探索空間の例が図３〜図６に示されている。図３および図４に、現在スライスの第１のライン中にない現在ブロック（たとえば、現在ブロック３０８および４０８）を伴う場合を示す。図５および図６に、現在スライスの第１のライン中にある現在ブロック（たとえば、現在ブロック５０６および６０６）を伴う場合を示す。これらの２つの場合は、スライス中の第１のラインが垂直ネイバー（vertical neighbor）を有しないので、別々に処理される。したがって、現在ラインからの再構成されたピクセルは、探索範囲（たとえば、探索範囲５０８および６０８）として活用され得る。本開示では、現在スライス中の第１のラインはＦＬＳと呼ばれることがあり、現在スライス中の他のラインはＮＦＬＳと呼ばれることがある。
【００６１】
[0071]  さらに、本明細書で説明するブロック予測技法は、単一のラインバッファ（すなわち、１Ｄブロックサイズ）を使用するコーデックまたは複数のラインバッファ（すなわち、２Ｄブロックサイズ）を使用するコーデックのいずれかにおいて実装され得る。１Ｄの場合のための探索空間の例が図３および図５に示され、２Ｄの場合のための探索空間の例が図４および図６に示されている。２Ｄの場合、探索範囲は、前の再構成されたライン（たとえば、前のライン４０２）からのピクセル、または２Ｄブロック中のラインと同じラインからの再構成されたブロック（たとえば、現在ブロック６０６のすぐ左にある、現在ライン６０２中の前の６０４）を含み得る。２Ｄブロックは、水平方向または垂直方向のいずれかあるいはその両方に区分され得る。ブロック区分を伴う場合、各ブロック区分について、ブロック予測ベクトルが指定され得る。
【００６２】
ブロック予測モードの例示的な実装形態（Example Implementations of Block Prediction Mode）
[0072]  本開示のいくつかの実施形態では、ＳＡＤ以外のひずみメトリック、たとえば２乗差分和（ＳＳＤ：sum of squared difference）が使用され得る。代替または追加として、ひずみは重み付けによって変更され得る。たとえば、ＹＣｏＣｇ色空間が使用されている場合、コストは次のように計算され得る。
【００６３】
【数２】
2017516392.tif 000004
【００６４】
[0073]  本明細書で説明するブロック予測技法は、ＲＧＢ色空間またはＹＣｏＣｇ色空間のいずれか中で実行され得る。さらに、代替実装形態は、両方の色空間を使用し、２つの色空間のうちのどちらが選択されるか（たとえば、レートおよびひずみに関して最低コストを有するのがいったいどちらの色空間か）を示す１ビットフラグをデコーダにシグナリングし得る。
【００６５】
[0074]  ＦＬＳに関する本開示のいくつかの実施形態では、１つまたは複数の直前の再構成されたブロックは、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。たとえば、ハードウェア実装形態に応じて、コーダは、現在ブロックがコーダによって処理されるまでに、直前の再構成されたブロックの処理を完了しないことがあり（たとえば、前のブロックのための再構成されたピクセルは、コーダが現在ブロックを処理し始めるときに知られていないことがあり）、その結果、遅延または失敗が生じる。そのような実装形態では、前の再構成されたブロックの使用を、再構成されたピクセル値が知られているブロックに制限することによって（たとえば、１つまたは複数の直前の再構成されたブロックを除外することによって）、上記に示されたパイプライン化問題は解決され得る。ＮＦＬＳに関する本開示のいくつかの実施形態では、現在ブロックの左の探索範囲は、前の再構成されたラインではなく、同じラインからであり得る。そのような実施形態のうちのいくつかでは、１つまたは複数の前の再構成されたブロックは、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
【００６６】
ＮＦＬＳの例示的な実装形態（Example Implementation of NFLS）
[0075]  図３に示されているように、ブロック予測方法は、現在ブロック３０８のための候補を見つけるために、探索空間中で探索範囲３１０（ＳＲ）を探索し得る（および図４の探索空間４００中でも同様である）。符号化されるべき現在ブロック３０８の第１のピクセルのｘ座標位置がｊである場合、探索空間内のすべての候補ブロックの開始位置のセットｋが次のように与えられ得る。
【００６７】
【数３】
2017516392.tif 000005
【００６８】
[0076]  この例では、パラメータαは、符号化されるべき現在ブロックに対する探索範囲３１０のｘ座標位置をスキューする。αのより高い値が探索範囲３１０を右にシフトし、αのより低い値が探索範囲３１０を左にシフトする。たとえば、（ｉ）３２のＳＲおよび１５のαが探索範囲３１０を前のライン３０２の中央に入れ得、（ｉｉ）３２のＳＲおよび０のαが探索範囲３１０を前のライン３０２の左側に入れ得、（ｉｉｉ）３２のＳＲおよび３１のαが探索範囲３１０を前のライン３０２の右側に入れ得る。
【００６９】
[0077]  本開示のいくつかの実装形態では、探索範囲内にあるが、スライス境界の外側にあるピクセルが、そのピクセルのためのダイナミックレンジの１／２に設定され得る。たとえば、コンテンツがＲＧＢ８８８である場合、Ｒ、Ｇ、およびＢのために１２８のデフォルト値が使用され得る。コンテンツがＹＣｏＣｇ空間中にある場合、Ｙのために１２８のデフォルト値が使用され得、ＣｏおよびＣｇのために０のデフォルト値が使用され得る（たとえば、ＣｏおよびＣｇは、０を中心とする９ビット値である）。
【００７０】
ＦＬＳの例示的な実装形態（Example Implementation of FLS）
[0078]  図５に示されているように、探索範囲は、ＦＬＳの場合について異なり得る。これは、垂直ネイバーが、そのような垂直ネイバーが現在フレームの外側にあるので、またはそのような垂直ネイバーが異なるスライス内に含まれているので、利用可能でないからである。ＦＬＳの場合に関する本開示のいくつかの実施形態では、ブロック予測のために現在ライン中のピクセルが使用され得る。一実施形態では、現在ブロックの左の現在ライン中のピクセルは探索範囲の一部として考慮され得る。別の実施形態では、１つまたは複数の前にコーディングされたブロック（たとえば、現在ブロックのすぐ左にある前のブロック５０４）は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
【００７１】
[0079]  ＦＬＳのいくつかの実装形態では、スライスの第１のライン中の最初の数個のブロックのための利用可能な範囲は、一般に他のブロックのために予想される、探索範囲よりも小さくなり得る。これは、候補ブロックのための有効な位置が、ラインの最初に開始し、現在ブロックの前に終了するからである。ＦＬＳ中の最初の数個のブロックの場合、この有効範囲は、所望の範囲（たとえば、３２個または６４個の位置）よりも小さくなり得る。したがって、これらのブロックの場合、探索範囲は、候補ブロックの各ブロック区分が探索範囲内に完全に含まれているように調整される必要があり得る。ＮＦＬＳの場合、探索範囲は、探索位置の総数が、定義された探索範囲（たとえば、３２個または６４個のピクセル位置）に等しくなるように左または右にシフトされ得る。ｊが現在ブロック中の第１のピクセルであるので、現在ブロック中の最後のピクセルはｊ＋ｂｌｋＷｉｄｔｈ−１である。この理由で、探索範囲は、左に（ｂｌｋＷｉｄｔｈ−１）ピクセルシフトされる必要があり得る。
【００７２】
[0080]  ＦＬＳのいくつかの実装形態では、符号化されるべき現在ブロックの第１のピクセルのｘ座標ロケーションがｊと呼ばれる場合、探索範囲内のすべての候補ブロックの開始位置のセットが次のように与えられ得る。
【００７３】
[0081]  （ｉ）直近の前の再構成されたブロックが探索範囲の一部であり、たとえば、α＝１である場合、
【００７４】
【数４】
2017516392.tif 000006
【００７５】
[0082]  （ｉｉ）ｎ個の直近の前の再構成されたブロックが探索範囲から除外されるべきである場合、
【００７６】
【数５】
2017516392.tif 000007
【００７７】
[0083]  ここで、ｂｌｋxはブロック幅である。ＮＦＬＳの場合に関して上記で説明したように、スライス境界の外側のピクセルがデフォルト値に設定され得る。また、スキューパラメータ（skew parameter）がＦＬＳの場合に関連付けられる必要がないことに留意されたい。
【００７８】
ブロック予測モードでコーディングするための例示的なフローチャート（Example Flowchart for Coding in Block Prediction Mode）
[0084]  図７を参照しながら、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャについて説明する。図７に示されているステップは、ビデオエンコーダ（たとえば、図２Ａ中のビデオエンコーダ２０）、ビデオデコーダ（たとえば、図２Ｂ中のビデオデコーダ３０）、またはそれらの（１つまたは複数の）構成要素によって実行され得る。便宜上、方法７００について、ビデオエンコーダ２０、ビデオデコーダ３０、または別の構成要素であり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されるものとして説明する。
【００７９】
[0085]  方法７００はブロック７０１において開始する。ブロック７０５において、コーダは、現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定する。候補ブロックは、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり得る。たとえば、ブロック予測パラメータは、（ｉ）ロケーションの範囲のサイズを定義する探索範囲パラメータ（search range parameter）と、（ｉｉ）現在ブロックに関するロケーションの範囲の相対ロケーション（relative location）を定義するスキューパラメータと、（ｉｉｉ）現在ブロック中の各区分のサイズを定義する区分サイズパラメータ（partition size parameter）とを含み得る。本開示のいくつかの実施形態では、探索範囲パラメータ、スキューパラメータ、および区分サイズパラメータの各々は、時間的にではなく、空間的に、候補ブロックのロケーションを定義する。
【００８０】
[0086]  ブロック７１０において、コーダは、候補ブロックと現在ブロックとに基づいて予測ベクトルを決定する。予測ベクトルは、現在ブロックに関する候補ブロックのロケーションを識別し得る。予測ベクトルは、１つまたは複数の座標値（たとえば、１Ｄ空間中のオフセットを示す座標値）を含み得る。ブロック７１５において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングする。いくつかの実施形態では、コーダはまた、候補ブロックと現在ブロックとの間の残差をシグナリングし得る。現在ブロックの実際のピクセル値をシグナリングしなければならないのではなく、候補ブロックのロケーションを識別する予測ベクトルと、現在ブロックと候補ブロックとの間の差分を表す残差とをシグナリングすることによって、ビット節約（Bit saving）が達成され得る。方法７００はブロック７２０において終了する。
【００８１】
[0087]  方法７００では、図７に示されているブロックのうちの１つまたは複数は削除される（たとえば、実行されない）ことがあり、および／または方法が実行される順序は入れ替えられることがある。いくつかの実施形態では、さらなるブロックが方法７００に追加され得る。本開示の実施形態は、図７に示されている例にまたはそれによって限定されず、他の変形形態が本開示の趣旨から逸脱することなく実装され得る。
【００８２】
候補ブロックを見つけた後（After Finding Candidate Block）
[0088]  最良の候補ブロックが決定された後、候補ブロックのピクセル値は、現在ブロックのピクセル値から減算され、その結果、残差が生じる。残差は、ブロック予測モードに関連付けられたあらかじめ選択されたＱＰに基づいて量子化され得る。量子化された残差は、（固定長または可変長のいずれかであり得る）コードブック（codebook）を使用して符号化され、固定長コード（fixed-length code）または可変長コード（variable-length code）を使用してシグナリングされ得る。選択されたコードブックは、コーディング効率およびハードウェア複雑さ要件に基づき得る。たとえば、選択されたコードブックは指数ゴロムコードブック（Exp-Golomb codebook）であり得る。本開示のいくつかの実施形態では、既存のＤＳＣ実装形態のデルタサイズ単位可変長コーディング（ＤＳＵ−ＶＬＣ：delta size unit variable length coding）と同様であるエントロピーコーディング方式が使用され得る。いくつかの実施形態では、残差は、上記で説明した量子化の前に、（たとえば、直接コサイン変換（direct cosine transform）、アダマール変換（Hadamard transform）、または他の知られている変換を使用して）変換され得る。
【００８３】
[0089]  本開示のいくつかの実施形態では、現在ブロックの残差中のサンプルは複数のグループに区分され得る（たとえば、１６個のサンプルを含んでいるブロックの場合、グループごとに４つのサンプル）。ブロック中のすべての係数が０である場合、ブロックの残差は、スキップモードを使用してコーディングされ、すなわち、ブロック中の現在成分がスキップモードを使用してコーディングされるか否かを示すための、ブロックごとの（成分ごとの）１ビットフラグがシグナリングされる。少なくとも１つの０でない値がブロック内に含まれている場合、各グループは、グループが１つの０でない値を有する場合のみ、ＤＳＵ−ＶＬＣを使用してコーディングされ得る。グループ（たとえば、残差中の１６個のサンプルのうちの４つのサンプル）が０でない値を含んでいない場合、グループは、スキップモードを使用してコーディングされ、すなわち、グループがスキップモードを使用してコーディングされるか否かを示すための、グループごとの１ビットフラグがシグナリングされる。より詳細には、各グループについて、グループ中のすべての値が０であるかどうかを決定するために、探索が実行され得る。グループ中のすべての値が０である場合、「１」の値がデコーダにシグナリングされ得、他の場合（少なくとも１つの値が０でない場合）、「０」の値がデコーダにシグナリングされ、その後にＤＳＵ−ＶＬＣコーディングのコーディングが続き得る。代替例では、グループ中のすべての値が０である場合、「０」の値がシグナリングされ得、グループが少なくとも１つの０でない値を含んでいる場合、「１」の値がシグナリングされ得る。
【００８４】
[0090]  本開示のいくつかの実施形態では、最良の候補ブロックは、最良のオフセットを含んでいる固定長コードを送信することによって、デコーダに明示的にシグナリングされる。オフセットは「ベクトル（vector）」と呼ばれることがある。ベクトルをデコーダに明示的にシグナリングすることの利点は、デコーダがブロック探索自体を実行する必要がないことである。むしろ、デコーダは、明示的にベクトルを受信し、現在ブロックのピクセル値を決定するために、復号された、逆量子化された残差値に、候補ブロックを加える。
【００８５】
ブロック区分（Block Partitioning）
[0091]  本開示のいくつかの実施形態では、コーディングされるべき現在ブロックは区分され、その結果、ブロックごとに複数の候補ブロックと複数のベクトルとが生じ得る。そのような実施形態のうちのいくつかでは、（１つまたは複数の）ベクトルは、固定長コードを使用して明示的にシグナリングされ得る。たとえば、この固定長コードの長さはｌｏｇ2（ＳＲ）であり得る。別の実施形態では、（１つまたは複数の）ベクトルは、指数ゴロム（Exponential-Golomb）またはゴロムライスコード（Golomb-Rice code）ファミリーからのコードなど、可変長コードを使用して明示的にシグナリングされ得る。このコードブックは、（１つまたは複数の）ベクトルに関連付けられた統計的分布に基づいて選択され得る。また別の実施形態では、（１つまたは複数の）ベクトルは、（１つまたは複数の）前にコーディングされたベクトルに基づいて予測され得、（１つまたは複数の）ベクトルの残差は、何らかの固定長または可変長コードを使用してコーディングされ得る。また別の実施形態では、（１つまたは複数の）ベクトルは、（１つまたは複数の）前にコーディングされたベクトルに基づいて予測され得、２つのベクトルが同じであるかどうかをシグナリングするための１ビットフラグが使用され得る。このフラグはＳａｍｅＦｌａｇと呼ばれることがある。ＳａｍｅＦｌａｇ＝１である場合、ベクトル値自体はデコーダにシグナリングされる必要がない。ＳａｍｅＦｌａｇ＝０である場合、ベクトルは、（たとえば、固定長コードまたは可変長コードのいずれかを使用して）明示的にシグナリングされる。例示的なブロック区分方式が図８に示されている。
【００８６】
[0092]  図８に示されているように、現在ブロック８０２が単一の区分を含んでいる。現在ブロック８０２のためにシグナリングされる情報は、モードヘッダと、ベクトルＳａｍｅＦｌａｇと、ベクトルＡと、ペイロードとを備える。現在ブロック８０４が、２つの区分、すなわち、区分Ａと区分Ｂとを含んでいる。現在ブロック８０４のためにシグナリングされる情報は、モードヘッダと、ベクトルＳａｍｅＦｌａｇと、ベクトルＡと、ベクトルＳａｍｅＦｌａｇと、ベクトルＢと、ペイロードとを備える。上記で説明したように、上記で列挙された１つまたは複数の項目はシグナリングされないことがある。たとえば、ベクトルＳａｍｅＦｌａｇが１に等しい場合、後続のベクトルはシグナリングされる必要がない。
【００８７】
[0093]  区分サイズβは、別個のサブブロックへの現在ブロックの区分を決定し得る。そのような場合、各サブブロックについて、別個のブロック予測が実行され得る。たとえば、ブロックサイズがＮ＝１６であり、区分サイズβ＝８である場合、探索は１６／８＝２つの区分の各々について実行される。別の例では、β＝Ｎである場合、ブロック区分は無効にされる。β＜Ｎである場合、各ベクトルはデコーダに明示的にシグナリングされ得る。（たとえば、現在ベクトルを定義するために、前にシグナリングされたベクトルを使用する）ベクトル予測が採用されない場合、各ベクトルは、固定長または可変長コードを使用してシグナリングされる。ベクトル予測が採用される場合、第１のベクトルは、前のコーディングされたベクトルから予測され（たとえば、メモリに記憶され）得、ｎ＞０の場合、ベクトルｎはベクトルｎ−１から予測される。
【００８８】
利点（Advantages）
[0094]  本開示で説明する１つまたは複数のブロック予測モード技法は、非対称設計（asymmetrical design）を使用して実装され得る。非対称設計は、より費用がかかるプロシージャがエンコーダ側で実行されることを可能にし、デコーダの複雑さが減少する。たとえば、（１つまたは複数の）ベクトルがデコーダに明示的にシグナリングされるので、エンコーダは、デコーダと比較して作業の大部分を行う。これは、エンコーダが、しばしば、最先端のプロセスノード（たとえば、２０ｎｍ以下）上の高い周波数で動作するシステムオンチップ（ＳｏＣ）設計の一部であるので望ましい。一方、デコーダは、制限されたクロック速度とはるかに大きいプロセスサイズ（たとえば、６５ｎｍ以上）とをもつディスプレイドライバ集積回路（ＤＤＩＣ）チップオングラス（ＣＯＧ：chip-on-glass）ソリューションで実装される可能性がある。
【００８９】
[0095]  さらに、本開示の１つまたは複数の実施形態によれば、ブロック区分は、コンテンツ遷移を伴うブロックが、２つの別個のベクトルによって最適に見つけられ得るので、改善されたコーディング効率を可能にする。
【００９０】
[0096]  さらに、本開示の１つまたは複数の実施形態によれば、各ベクトルは、前のベクトルから効果的に予測される。現在ラインと前のライン中のブロックとの間の空間相関を活用することは、（１つまたは複数の）ベクトルをデコーダにシグナリングするとき、ビット節約をもたらす。
【００９１】
[0097]  本開示のいくつかの実装形態では、本明細書で説明するブロック予測モード技法は、量子化ステップを削除し、予測残差を符号化するために使用されるコードブックの統計値を潜在的に変更することによって、数学的ロスレスコーデック（mathematically lossless codec）において使用され得る。さらに、本明細書で説明するブロック予測モード技法は、単一のラインバッファ（すなわち１Ｄブロックサイズ）または複数のラインバッファ（すなわち、２Ｄブロックサイズ）を利用するコーデックにおいて使用され得る。さらに、スライス状態での第１のラインのための現在ライン中での探索は、垂直ネイバー（vertical neighbor）が予測のために利用可能でないにもかかわらず、第１のラインのための品質を改善する。
【００９２】
性能（Performance）
[0098]  本開示の１つまたは複数の実施形態の性能は、ブロック予測モードを使用することなしにコーディングすることが困難であり得るコンテンツを検査することによって最も良く証明され得る。図９および図１０に、それぞれ、ブロック予測モードを用いておよびブロック予測モードを用いずにコーディングされる例示的な画像コンテンツを示す。示されているすべての例は固定レート４：１圧縮を使用する。画像品質のための一般的な客観的メトリックである、ピーク信号対雑音比（ＰＳＮＲ：Peak Signal to Noise Ratio）を使用して、客観的品質が測定される。
【００９３】
[0099]  本明細書で説明するコーデックのレート制御機構は、レートとひずみとの間のトレードオフに基づいて各ブロックのための最良のコーディングモードを選択するように設計され得る。したがって、ブロック予測モードが、図１０に示されているコンテンツ中のブロックの大部分のために選択されるということは、ブロック予測モードがこのタイプのコンテンツに優れたコーディング効率を与えるという指示である。
【００９４】
[0100]  ブロック予測モードが無効にされた、図９に示されている画像コンテンツ９００は、３６．３０ｄＢのＰＳＮＲを有する。画像コンテンツ９００は、左から右に、再構成された画像と、ブロックごとモード選択マップと、再構成された画像のズームインされた領域とを含む。ブロック予測モードが有効にされた、図１０に示されている画像コンテンツ１０００は、４５．６０ｄＢのＰＳＮＲを有する。画像コンテンツ１０００は、左から右に、再構成された画像と、（ブロック予測ブロックがマゼンタで示される）ブロックごとモード選択マップと、再構成された画像のズームインされた領域とを含む。
【００９５】
他の考慮事項（Other Considerations）
[0101]  本明細書で開示する情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００９６】
[0102]  本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００９７】
[0103]  本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【００９８】
[0104]  プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得、または複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【００９９】
[0105]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットについて説明したが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１００】
[0106]  上記について様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
【図１Ａ】
2017516392.tif 000008
【図１Ｂ】
2017516392.tif 000009
【図２Ａ】
2017516392.tif 000010
【図２Ｂ】
2017516392.tif 000011
【図３】
2017516392.tif 000012
【図４】
2017516392.tif 000013
【図５】
2017516392.tif 000014
【図６】
2017516392.tif 000015
【図７】
2017516392.tif 000016
【図８】
2017516392.tif 000017
【図９】
2017516392.tif 000018
【図１０】
2017516392.tif 000019
【手続補正書】
【提出日】平成29年1月5日(2017.1.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロック予測モードでビデオデータをコーディングするための方法であって、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）前記現在ブロックに隣接する前記現在ライン中の前にコーディングされたブロックを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、前記現在ブロックをコーディングすることと
を備える、方法。
【請求項２】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１に記載の方法。
【請求項３】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項１に記載の方法。
【請求項４】
前記現在ラインが、前記現在スライス中に少なくとも１つの先行するラインを有する、請求項１に記載の方法。
【請求項５】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる（span）、請求項１に記載の方法。
【請求項６】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１に記載の方法。
【請求項７】
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項７に記載の方法。
【請求項９】
前記残差の前記シグナリングは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を備える、請求項７に記載の方法。
【請求項１０】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項７に記載の方法。
【請求項１１】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１に記載の方法。
【請求項１２】
前記現在ブロックを予測することが、前記現在ブロックを複数のサブブロックに区分することと、各サブブロックを予測することとを備える、請求項１に記載の方法。
【請求項１３】
ブロック予測モードでビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）前記現在ブロックに隣接する前記現在ライン中の前にコーディングされたブロックを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成されたプロセッサと
を備える、装置。
【請求項１４】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１３に記載の装置。
【請求項１５】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項１３に記載の装置。
【請求項１６】
前記現在ラインが、前記現在スライス中に少なくとも１つの先行するラインを有する、請求項１３に記載の装置。
【請求項１７】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる、請求項１３に記載の装置。
【請求項１８】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１３に記載の装置。
【請求項１９】
前記プロセッサは、
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
を行うようにさらに構成された、請求項１３に記載の装置。
【請求項２０】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を行うようにさらに構成された、請求項１９に記載の装置。
【請求項２２】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項１９に記載の装置。
【請求項２３】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１３に記載の装置。
【請求項２４】
前記プロセッサが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを行うようにさらに構成された、請求項１３に記載の装置。
【請求項２５】
実行されたとき、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）前記現在ブロックに隣接する前記現在ライン中の前にコーディングされたブロックを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を装置に行わせるコードを備える非一時的コンピュータ可読媒体。
【請求項２６】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項２５に記載のコンピュータ可読媒体。
【請求項２８】
ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定するための手段と、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）前記現在ブロックに隣接する前記現在ライン中の前にコーディングされたブロックを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定するための手段と、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
【請求項２９】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２８に記載のビデオコーディングデバイス。
【請求項３０】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項２８に記載のビデオコーディングデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
[0106]  上記について様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ブロック予測モードでビデオデータをコーディングするための方法であって、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、前記候補ブロックがビデオ符号化デバイスのメモリに記憶される、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
［Ｃ２］
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、Ｃ１に記載の方法。
［Ｃ３］
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、Ｃ１に記載の方法。
［Ｃ４］
前記現在ブロックが、前記現在スライス中に少なくとも１つの先行するラインを有する現在ライン中にある、Ｃ１に記載の方法。
［Ｃ５］
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる（span）、Ｃ１に記載の方法。
［Ｃ６］
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、Ｃ１に記載の方法。
［Ｃ７］
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ８］
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、Ｃ７に記載の方法。
［Ｃ９］
前記残差の前記シグナリングは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を備える、Ｃ７に記載の方法。
［Ｃ１０］
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、Ｃ７に記載の方法。
［Ｃ１１］
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、Ｃ１に記載の方法。
［Ｃ１２］
ブロック予測モードで前記現在ブロックを予測することが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを備える、Ｃ１に記載の方法。
［Ｃ１３］
ブロック予測モードでビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成されたプロセッサと
を備える、装置。
［Ｃ１４］
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、Ｃ１３に記載の装置。
［Ｃ１５］
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、Ｃ１３に記載の装置。
［Ｃ１６］
前記現在ブロックが、前記現在スライス中に少なくとも１つの先行するラインを有する現在ライン中にある、Ｃ１３に記載の装置。
［Ｃ１７］
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる、Ｃ１３に記載の装置。
［Ｃ１８］
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、Ｃ１３に記載の装置。
［Ｃ１９］
前記プロセッサは、
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
を行うようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ２０］
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、Ｃ１９に記載の装置。
［Ｃ２１］
前記プロセッサは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を行うようにさらに構成された、Ｃ１９に記載の装置。
［Ｃ２２］
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、Ｃ１９に記載の装置。
［Ｃ２３］
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、Ｃ１３に記載の装置。
［Ｃ２４］
前記プロセッサが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを行うようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ２５］
実行されたとき、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定することと、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を装置に行わせるコードを備える非一時的コンピュータ可読媒体。
［Ｃ２６］
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、Ｃ２５に記載のコンピュータ可読媒体。
［Ｃ２７］
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、Ｃ２５に記載のコンピュータ可読媒体。
［Ｃ２８］
ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用されるべき候補ブロックを決定するための手段と、前記候補ブロックが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にある、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定するための手段と、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
［Ｃ２９］
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、Ｃ２８に記載のビデオコーディングデバイス。
［Ｃ３０］
前記現在ブロックが、前記現在スライス中に先行するラインを有しない現在ライン中にある、Ｃ２８に記載のビデオコーディングデバイス。
【手続補正書】
【提出日】平成29年1月6日(2017.1.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロック予測モードでビデオデータをコーディングするための方法であって、
現在スライス中の第１の数のピクセルを有する現在ブロックを予測するために使用されるべき前記第１の数のピクセルを有する候補ブロックを決定することと、前記候補ブロック中の各ピクセルが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）ロケーションの前記範囲に最も近い前記現在ブロック中のピクセルにすぐ隣接する前記現在ライン中の少なくとも前記第１の数のピクセルを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、前記現在ブロックをコーディングすることと
を備える、方法。
【請求項２】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１に記載の方法。
【請求項３】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項１に記載の方法。
【請求項４】
前記現在ラインが、前記現在スライス中に少なくとも１つの先行するラインを有する、請求項１に記載の方法。
【請求項５】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる（span）、請求項１に記載の方法。
【請求項６】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１に記載の方法。
【請求項７】
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項７に記載の方法。
【請求項９】
前記残差の前記シグナリングは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を備える、請求項７に記載の方法。
【請求項１０】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項７に記載の方法。
【請求項１１】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１に記載の方法。
【請求項１２】
前記現在ブロックを予測することが、前記現在ブロックを複数のサブブロックに区分することと、各サブブロックを予測することとを備える、請求項１に記載の方法。
【請求項１３】
ブロック予測モードでビデオデータをコーディングするための装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
現在スライス中の第１の数のピクセルを有する現在ブロックを予測するために使用されるべき前記第１の数のピクセルを有する候補ブロックを決定することと、前記候補ブロック中の各ピクセルが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）ロケーションの前記範囲に最も近い前記現在ブロック中のピクセルにすぐ隣接する前記現在ライン中の少なくとも前記第１の数のピクセルを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成されたプロセッサと
を備える、装置。
【請求項１４】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項１３に記載の装置。
【請求項１５】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項１３に記載の装置。
【請求項１６】
前記現在ラインが、前記現在スライス中に少なくとも１つの先行するラインを有する、請求項１３に記載の装置。
【請求項１７】
前記現在ブロックが、前記現在スライス中の２つ以上のラインにわたる、請求項１３に記載の装置。
【請求項１８】
前記現在ブロックが、前記現在スライス中の単一のラインにわたる、請求項１３に記載の装置。
【請求項１９】
前記プロセッサは、
前記候補ブロックと前記現在ブロックとに基づいて残差を決定することと、ここにおいて、前記残差が、前記候補ブロックと前記現在ブロックとの間の差分を表す、
前記予測ベクトルとともに前記残差をシグナリングすることと
を行うようにさらに構成された、請求項１３に記載の装置。
【請求項２０】
前記残差が、固定長コードまたは可変長コードのうちの１つを使用してシグナリングされる、請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、
前記残差を複数のグループに区分することと、ここにおいて、前記残差は、各々が前記複数のグループのうちの１つに関連付けられた複数の残差値を備える、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいると決定することと、
各グループについて、前記グループが、０でない少なくとも１つの残差値を含んでいるという決定に基づいて、デルタサイズ単位可変長コーディングを使用して、前記グループに関連付けられた前記残差値をシグナリングすることと
を行うようにさらに構成された、請求項１９に記載の装置。
【請求項２２】
前記残差が、直接コサイン変換またはアダマール変換のうちの１つを使用して変換される、請求項１９に記載の装置。
【請求項２３】
前記候補ブロックの少なくとも一部分が、前記１つまたは複数のブロック予測パラメータによって定義されたロケーションの前記範囲の外側にあり、ここにおいて、前記範囲の外側にある前記候補ブロックの前記一部分が、デフォルト値を使用して決定される、請求項１３に記載の装置。
【請求項２４】
前記プロセッサが、前記現在ブロックを複数のサブブロックに区分することと、ブロック予測モードで各サブブロックを予測することとを行うようにさらに構成された、請求項１３に記載の装置。
【請求項２５】
実行されたとき、
現在スライス中の第１の数のピクセルを有する現在ブロックを予測するために使用されるべき前記第１の数のピクセルを有する候補ブロックを決定することと、前記候補ブロック中の各ピクセルが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）ロケーションの前記範囲に最も近い前記現在ブロック中のピクセルにすぐ隣接する前記現在ライン中の少なくとも前記第１の数のピクセルを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定することと、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングすることと
を装置に行わせるコードを備える非一時的コンピュータ可読媒体。
【請求項２６】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項２５に記載のコンピュータ可読媒体。
【請求項２８】
ブロック予測モードでビットストリーム中のビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の第１の数のピクセルを有する現在ブロックを予測するために使用されるべき前記第１の数のピクセルを有する候補ブロックを決定するための手段と、前記候補ブロック中の各ピクセルが、１つまたは複数のブロック予測パラメータによって定義されたロケーションの範囲内にあり、ここにおいて、ロケーションの前記範囲が、（ｉ）前記現在ブロックを含む現在ラインの少なくとも一部分を含み、（ｉｉ）ロケーションの前記範囲に最も近い前記現在ブロック中のピクセルにすぐ隣接する前記現在ライン中の少なくとも前記第１の数のピクセルを除外する、
前記候補ブロックと前記現在ブロックとに基づいて、前記現在ブロックに関する前記候補ブロックのロケーションを識別する予測ベクトルを決定するための手段と、
前記現在ブロックに関する前記候補ブロックの前記ロケーションを識別する前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
【請求項２９】
前記１つまたは複数のブロック予測パラメータが、（ｉ）ロケーションの前記範囲のサイズを定義する探索範囲パラメータと、（ｉｉ）前記現在ブロックに関するロケーションの前記範囲の相対ロケーションを定義するスキューパラメータと、（ｉｉｉ）前記現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを備える、請求項２８に記載のビデオコーディングデバイス。
【請求項３０】
前記現在ラインが、前記現在スライス中にいかなる先行するラインも有しない、請求項２８に記載のビデオコーディングデバイス。
【国際調査報告】
2017516392.tif 000020
2017516392.tif 000021