(57)【要約】ビデオデータを復号するための例示的な方法は、ビデオデータの現在のブロックとビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素（ＳＥ）を受信することと、成分（ＡｂｓＶａｌcomp）の絶対値が０よりも大きいか否かを決定するために第１のＳＥを復号することを少なくとも行うことによって構成要素の値を決定するためにＳＥを復号することと、ＡｂｓＶａｌcompが０よりも大きい場合、ＡｂｓＶａｌcompがコードのセットの次数に基づくしきい値よりも大きいかどうかを決定するために第２のＳＥを復号することと、ＡｂｓＶａｌcompがしきい値よりも大きい場合、コードのセットを使用して、ＡｂｓＶａｌcompからコードのセットの次数に基づくオフセットを減じたものを決定するために第３のＳＥを復号することと、ＡｂｓＶａｌcompが０よりも大きい場合、成分の値の符号を決定するために第４のＳＥを復号することとを含む。【選択図】図６
2017523685.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、前記現在のブロックと前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素のセットとを受信することと、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素の前記セットの第１のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素の前記セットの第２のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、コードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを決定するためにシンタックス要素の前記セットの第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを決定するためにシンタックス要素の前記セットの第４のシンタックス要素を復号することと
を少なくとも行うことによって前記ブロックベクトルの前記成分の値を決定するためにシンタックス要素の前記セットを復号することと、
前記ブロックベクトルの前記成分の前記値に基づいて、ビデオデータの前記予測子ブロックを決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を備える方法。
【請求項２】
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを決定するために前記第３のシンタックス要素を復号することと
をさらに備える、請求項１に記載の方法。
【請求項３】
コードの前記セットが、前記次数の指数ゴロムコードのセットを備える、請求項１に記載の方法。
【請求項４】
前記次数が４である、請求項１に記載の方法。
【請求項５】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１に記載の方法。
【請求項６】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１に記載の方法。
【請求項７】
シンタックス要素の前記セットの第５のシンタックス要素に基づいて、前記成分の最大値に基づいて前記成分の前記値が符号化されるかどうかを決定することと、
前記成分の前記値が前記成分の前記最大値に基づいて符号化されることに基づいて、
前記成分の前記最大値を決定することと、
前記成分の前記値が、前記成分の前記最大値に基づいた長さを有する固定長コードを使用して符号化されると決定することと、
前記固定長コードを使用して前記成分の前記値を復号することと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記ブロックベクトルの前記成分に対応する前記複数のシンタックス要素を受信することが、
前記ブロックベクトルの水平成分に対応する前記シンタックス要素の第１のセットを受信することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する前記シンタックス要素の第２のセットを受信することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１に記載の方法。
【請求項９】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項８に記載の方法。
【請求項１０】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項８に記載の方法。
【請求項１１】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項８に記載の方法。
【請求項１２】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項８に記載の方法。
【請求項１３】
前記方法がワイヤレス通信デバイスによって実行可能である、ここにおいて、前記デバイスが、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリ中に記憶された前記ビデオデータを処理するための命令を実行するように構成されるプロセッサと、
前記符号化ビデオビットストリームを受信するように構成される受信機と
を備える、請求項１に記載の方法。
【請求項１４】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオビットストリームが、前記受信機によって受信され、セルラー通信規格に従って復調される、請求項１３に記載の方法。
【請求項１５】
ビデオデータを符号化するための方法であって、
ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの前記現在のブロックのための予測子ブロックを選択することと、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと、ビデオデータの前記現在のブロックと前記予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することであって、少なくとも、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示すシンタックス要素の前記セットの第１のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素の前記セットの第２のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、コードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示すシンタックス要素の前記セットの第４のシンタックス要素を符号化することと
によって符号化することと
を備える方法。
【請求項１６】
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すためにシンタックス要素の前記セットの前記第３のシンタックス要素を生成することと、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化することを決定することと
をさらに備える、請求項１５に記載の方法。
【請求項１７】
コードの前記セットが、前記次数の指数ゴロムコードのセットを備える、請求項１５に記載の方法。
【請求項１８】
前記次数が４である、請求項１５に記載の方法。
【請求項１９】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１５に記載の方法。
【請求項２０】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１５に記載の方法。
【請求項２１】
前記成分の最大値に基づいて前記成分の前記値を符号化すべきかどうかを決定することと、
前記成分の前記最大値に基づいて前記成分の前記値を符号化することを決定することに応答して、
前記成分の前記最大値に基づいて前記成分の前記値が符号化されるかどうかを示すシンタックス要素の前記セットの第５のシンタックス要素を生成することと、
前記成分の前記最大値を決定することと、
前記成分の前記最大値に基づいた長さを有する固定長コードを使用して前記成分の前記値を符号化することと
をさらに備える、請求項１５に記載の方法。
【請求項２２】
前記複数のシンタックス要素を符号化することが、
前記ブロックベクトルの水平成分に対応する第１の複数の前記シンタックス要素を符号化することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する第２の複数の前記シンタックス要素を符号化することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１５に記載の方法。
【請求項２３】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項２２に記載の方法。
【請求項２４】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項２２に記載の方法。
【請求項２５】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに関連するデータを記憶するように構成されるメモリと、
１つまたは複数のプロセッサであって、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
コードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を行うように少なくとも前記プロセッサが構成されることによって前記ブロックベクトルの前記成分の前記値を決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を行うように構成される１つまたは複数のプロセッサと
を備えるデバイス。
【請求項２６】
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、前記１つまたは複数のプロセッサが、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すために前記第３のシンタックス要素を決定することと
を行うようにさらに構成される、請求項２５に記載のデバイス。
【請求項２７】
前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを符号化すること
を行うように構成される、請求項２５に記載のデバイス。
【請求項２８】
ビデオデータの前記現在のブロックをレンダリングするように構成されるディスプレイ、
ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを受信すること
を行うように構成される、
をさらに備える、請求項２５に記載のデバイス。
【請求項２９】
実行されたとき、ビデオデータの現在のブロックを符号化または復号することをデバイスの１つまたは複数のプロセッサにさせる命令を記憶するコンピュータ可読記憶媒体であって、前記命令は少なくとも、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の値を決定することと、ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するように前記１つまたは複数のプロセッサにさせる前記命令が、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
コードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を前記デバイスの前記１つまたは複数のプロセッサにさせる命令を備える、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
によってビデオデータの現在のブロックを符号化または復号することをさせる、コンピュータ可読記憶媒体。
【請求項３０】
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、前記１つまたは複数のプロセッサに、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すために前記第３のシンタックス要素を決定することと
をさせる命令をさらに備える、請求項２９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本出願は、その内容全体が完全に参照により本明細書に組み込まれる、２０１４年６月２０日に出願された米国仮出願第６２／０１５，２６９号の利益を主張する。
【０００２】
[0002]  本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実施することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶し得る。
【０００４】
[0004]  ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測(spatial (intra-picture) prediction)および／または時間的（インターピクチャ）予測(temporal (inter-picture) prediction)を行う。ブロックベースのビデオコーディングにおいて、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）は複数のビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもある。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示している。イントラコーディングされるブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域(pixel domain)から変換領域(transform domain)に変換されて残差変換係数(residual transform coefficients)をもたらすことができ、その残差変換係数が、次いで量子化され得る。
【発明の概要】
【０００５】
[0005]  一般に、本開示では、ビデオコーディング(video coding)のためのイントラ予測(Intra-prediction)を行うための技法について説明する。より詳細には、本開示では、イントラブロックコピーイング（Intra Block Copying）（イントラＢＣ）を容易にするための技法について説明する。イントラＢＣは、同じピクチャ内の予測ブロック(prediction block)に基づいて現在のビデオブロック(current video block)がコーディングされるイントラ予測技法を指す。同じピクチャ内の予測ブロックは、ブロックベクトル(block vector)と呼ばれることがあるベクトルによって識別される。いくつかの例において、予測ブロック(prediction block)を識別するブロックベクトルは、符号化および復号され得る複数のシンタックス要素(syntax elements)によって表され得る。いくつかの例において、動きベクトル(motion vectors)をコーディングするために使用される同じシンタックス要素を使用してブロックベクトルを反対コーディングするので、ブロックベクトルは、異なるシンタックス要素を使用してコーディングされ得る。
【０００６】
[0006]  一例において、ビデオデータを復号するための方法は、符号化ビデオビットストリーム(encoded video bitstream)中で、ビデオデータの現在のブロック(a current block of video data)について、残差ブロック(residual block)と、現在のブロックと現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロック(predictor block)との間の変位(displacement)を表すブロックベクトルの成分のシンタックス要素のセットとを受信することを含む。この例において、本方法はまた、ブロックベクトルの成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素のセットの第１のシンタックス要素を復号することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の絶対値がコードのセットの次数(an order of a set of codes)に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素のセットの第２のシンタックス要素を復号する(decoding)ことと、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに基づいて、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを決定するために第３のシンタックス要素を復号することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の値が正であるのか、または負であるのかを決定するためにシンタックス要素のセットの第４のシンタックス要素を復号することとを少なくとも行うことによってブロックベクトルの成分の値を決定するためにシンタックス要素のセットを復号することと、ブロックベクトルの成分の値に基づいて、ビデオデータの予測子ブロックを決定することと、ビデオデータの予測子ブロックと残差ブロックとに基づいてビデオデータの現在のブロックを再構成する(reconstructing)こととを含む。
【０００７】
[0007]  別の例において、ビデオデータを復号するためのデバイスは、符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、現在のブロックと現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素のセットとを受信するための手段と、ブロックベクトルの成分の値を決定するためにシンタックス要素のセットを復号するための手段と、ここにおいて、シンタックス要素のセットを復号するための手段が、ブロックベクトルの成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素のセットの第１のシンタックス要素を復号するための手段と、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素のセットの第２のシンタックス要素を復号するための手段と、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに基づいて、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを決定するために第３のシンタックス要素を復号するための手段と、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の値が正であるのか、または負であるのかを決定するためにシンタックス要素のセットの第４のシンタックス要素を復号することとを含む、を含む。この例において、デバイスはまた、ブロックベクトルの成分の値に基づいて、ビデオデータの予測子ブロックを決定するための手段と、ビデオデータの予測子ブロックと残差ブロックとに基づいてビデオデータの現在のブロックを再構成するための手段とを含む。
【０００８】
[0008]  別の例において、ビデオデータを符号化するための方法は、ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロック(a plurality of previously encoded blocks of video data)からビデオデータの現在のブロック(a current block of video data)のための予測子ブロックを選択することと、ブロックベクトルの成分の絶対値が０よりも大きいか否かを示すシンタックス要素のセットの第１のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素のセットの第２のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに基づいて、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示すシンタックス要素のセットの第３のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の値が正であるのか、または負であるのかを示すシンタックス要素のセットの第４のシンタックス要素を符号化することとを少なくとも行うことによって、符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、ビデオデータの現在のブロックと予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することとを含む。
【０００９】
[0009]  別の例において、ビデオデータを符号化するためのデバイスは、ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの現在のブロックのための予測子ブロックを選択するための手段と、符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、ビデオデータの現在のブロックと予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化するための手段と、ここにおいて、残差ブロックとシンタックス要素のセットとを符号化するための手段が、ブロックベクトルの成分の絶対値が０よりも大きいか否かを示すシンタックス要素のセットの第１のシンタックス要素を符号化するための手段と、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素のセットの第２のシンタックス要素を符号化するための手段と、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに基づいて、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示すシンタックス要素のセットの第３のシンタックス要素を符号化するための手段と、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の値が正であるのか、または負であるのかを示すシンタックス要素のセットの第４のシンタックス要素を符号化するための手段とを含む、を含む。
【００１０】
[0010]  別の例において、ビデオデータを符号化または復号するためのデバイスは、ビデオデータの現在のブロックに関連するデータを記憶するように構成されるメモリと、１つまたは複数のプロセッサとを含む。この例において、１つまたは複数のプロセッサは、イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、ブロックベクトルの成分が、ビデオデータの現在のブロックと、現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、ブロックベクトルの成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、ブロックベクトルの成分の絶対値が０よりも大きいことに応答して、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに応答して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示すシンタックス要素のセットの第３のシンタックス要素を決定することと、コードのセットを使用して第３のシンタックス要素を符号化または復号することを決定することと、ブロックベクトルの成分の絶対値が０よりも大きいことに応答して、ブロックベクトルの成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することとを行うように少なくともプロセッサが構成されることによってブロックベクトルの成分の値を決定することと、ビデオデータの予測子ブロックと残差ブロックとに基づいてビデオデータの現在のブロックを再構成することとを行うように構成される。
【００１１】
[0011]  別の例において、コンピュータ可読記憶媒体は、実行されたとき、デバイスの１つまたは複数のプロセッサに、イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、ブロックベクトルの成分が、ビデオデータの現在のブロックと、現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、ブロックベクトルの成分の値を決定することと、ここにおいて、ブロックベクトルの成分の値を決定することを１つまたは複数のプロセッサにさせる命令が、ブロックベクトルの成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、ブロックベクトルの成分の絶対値が０よりも大きいことに応答して、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに応答して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示すシンタックス要素のセットの第３のシンタックス要素を決定することと、コードのセットを使用して第３のシンタックス要素を符号化または復号することを決定することと、ブロックベクトルの成分の絶対値が０よりも大きいことに応答して、ブロックベクトルの成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することとをデバイスの１つまたは複数のプロセッサにさせる命令を備える、ビデオデータの予測子ブロックと残差ブロックとに基づいてビデオデータの現在のブロックを再構成することとを少なくとも行うことによって、ビデオデータの現在のブロックを符号化または復号することをさせる命令を記憶する。
【００１２】
[0012]  本開示の１つまたは複数の態様の詳細について、添付の図面および以下の説明に記載する。本開示で説明される技法の他の特徴、目的、および利点は、これらの説明および図面から、並びに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示で説明する技法を実施し得る例示的なビデオエンコーダを示すブロック図である。
【図３】本開示で説明する技法を実施し得る例示的なビデオデコーダを示すブロック図である。
【図４】イントラブロックコピーイング（ＢＣ）技法を示す概念図である。
【図５】本開示の１つまたは複数の技法による、現在のブロックのための予測子ブロックを識別するブロックベクトルを復号するためのビデオデコーダの例示的な動作を示す流れ図である。
【図６】本開示の１つまたは複数の技法による、現在のブロックのための予測子ブロックを識別するブロックベクトルを復号するためのビデオデコーダの例示的な動作のさらなる詳細を示す流れ図である。
【図７】本開示の１つまたは複数の技法による、現在のブロックのための予測子ブロックを識別するブロックベクトルを符号化するためのビデオエンコーダの例示的な動作を示す流れ図である。
【図８】本開示の１つまたは複数の技法による、現在のブロックのための予測子ブロックを識別するブロックベクトルを符号化するためのビデオエンコーダの例示的な動作のさらなる詳細を示す流れ図である。
【発明を実施するための形態】
【００１４】
[0021]  ビデオシーケンスは、一般に、ピクチャのシーケンスとして表される。一般に、ブロックベースのコーディング技法は、個々のピクチャの各々をコーディングするために使用される。すなわち、各ピクチャはブロックに分割され、ブロックの各々は個別にコーディングされる。ビデオデータのブロックをコーディングすることは、一般に、ブロック中のピクセルの予測値を形成することと、残差値をコーディングすることとを伴う。予測値は、１つまたは複数の予測ブロック中のピクセルサンプルを使用して形成される。残差値は、元のブロックのピクセルと予測されたピクセル値との間の差を表す。詳細には、ビデオデータの元のブロックはピクセル値のアレイを含み、予測ブロックは予測ピクセル値のアレイを含む。残差値は、元のブロックのピクセル値と予測ピクセル値との間のピクセルごとの差を表す。
【００１５】
[0022]  ビデオデータのブロックのための予測技法は、一般に、イントラ予測およびインター予測としてカテゴリー分類される。イントラ予測、または空間的予測は、一般に、同じピクチャ中の隣接する、前にコーディングされたブロックのピクセル値からブロックを予測することを伴う。インター予測、または時間的予測は、一般に、１つまたは複数の前にコーディングされたピクチャのピクセル値からブロックを予測することを伴う。
【００１６】
[0023]  リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティングなどの多数のアプリケーションが日常的に使用されつつある。これらのアプリケーションにおけるビデオコンテンツは、通常、自然コンテンツ、テキスト、人工グラフィックスなどの組合せである。テキスト領域および人工グラフィックス領域では、（文字、アイコン、シンボルなどの）繰返しパターンが存在することが多い。イントラブロックコピーイング（ＢＣ）は、ビデオコーダがそのような冗長性を除去し、イントラピクチャコーディング効率を改善することを可能にし得る技法である。いくつかの事例において、イントラＢＣは、代替的に、イントラ動き補償（ＭＣ）と呼ばれることがある。
【００１７】
[0024]  イントラＢＣ技法を使用してビデオデータの現在のブロックを予測するために、ビデオコーダは、ビデオデータの現在のブロックと同じピクチャ内にあるビデオデータの予測ブロック（すなわち、前にコーディングされたビデオデータのブロック）を識別するブロックベクトルを決定し得る。一例として、ビデオエンコーダは、ビデオデータの現在のブロックに厳密に一致することがわかる前にコーディングされたビデオデータのブロックとして予測ブロックを選択し、現在のブロックに対する予測ブロックの位置を示すブロックベクトルの値を決定し、ブロックベクトルの値の表現を符号化し得る。別の例として、ビデオデコーダは、現在のブロックに対する予測ブロックの位置を示すブロックベクトルの値の符号化表現を受信し、ブロックベクトルの値を決定するために表現を復号し得る。
【００１８】
[0025]  いくつかの例において、シンタックス要素によって表されるブロックベクトルの成分の値は、成分の実測値であり得る。例えば、ブロックベクトルの成分の値が−７である例において、その成分の実測値は−７であり得る。いくつかの例において、シンタックス要素によって表されるブロックベクトルの成分の値は、成分の予測子（例えば、デフォルト値、成分の前の値、隣接ブロックからの成分の値）と成分の実測値との間の差に対応する成分の差分値であり得る。差分値は、ブロックベクトル差分（ＢＶＤ：block vector difference）と呼ばれることがある。いくつかの例において、ビデオエンコーダは、成分の予測子から成分の実測値を減算することによって成分の差分値を決定し得る。同様に、いくつかの例において、ビデオデコーダは、成分の予測子に成分の差分値を加算することによって成分の実測値を決定し得る。
【００１９】
[0026]  いくつかの例において、単に、圧縮なしにブロックベクトルの値を符号化するのでなく、ビデオエンコーダは、ブロックベクトルの値を集合的に表す複数のシンタックス要素を生成することによってブロックベクトルの値を符号化するための圧縮方式を実施し得、ビデオデコーダは、ブロックベクトルの値に複数のシンタックス要素を復号する相補型圧縮方式を実施し得る。前のＨＥＶＣ範囲拡張規格のドラフトにおいてなど、いくつかの例では、Ｆｌｙｎｎ等、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎｓ  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ：Ｄｒａｆｔ６」、文献：ＪＣＴＶＣ−Ｐ１００５＿ｖ１、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪＣＴ−ＶＣ、第１６回会合：米国サンノゼ、２０１４年１月９〜１７日（以下、「ＪＣＴＶＣ−Ｐ１００５」）に記載されているように、イントラＢＣのためのベクトル（例えば、ブロックベクトル）は、ＨＥＶＣにおける動きベクトル差分（ＭＶＤ：motion vector difference）コーディング方法を使用して符号化され得る。
【００２０】
[0027]  ＨＥＶＣにおけるＭＶＤコーディング方法では（ＪＣＴＶＣ−Ｐ１００５に記載されているように）、ＭＶＤは、ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇ、ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ、ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２、およびｍｖｄ＿ｓｉｇｎ＿ｆｌａｇの４つのシンタックス要素を使用してコーディングされる。シンタックス要素ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇは、ＭＶＤの絶対値が０よりも大きいかどうかを示し、１の長さをもつ固定長コードを使用して符号化される。シンタックス要素ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇは、ＭＶＤの絶対値が１よりも大きいかどうかを示し、１の長さをもつ固定長コードを使用して符号化される。シンタックス要素ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２は、ＭＶＤの絶対値から２を減じたものを示し、１次指数ゴロムコード(first order exponential golomb codes)を使用して符号化される。シンタックス要素ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇは、ＭＶＤの値が正であるのか、または負であるのかを示し、１の長さをもつ固定長コードを使用して符号化される。
【００２１】
[0028]  但し、イントラＢＣブロックベクトルフィールドの従来のインター動きベクトルフィールドとは異なる特性により、このコーディング方法は効率的でないことがある。例えば、ＢＶＤ値の分布は、ほぼ平坦で、ＢＶＤ値が増加するにつれて緩やかに減少することが観測されるが、ＭＶＤ値の分布は、ＭＶＤ値が増加するにつれて、迅速に低下する。いくつかの例では、ＢＶが、パターンマッチングを使用して決定されるが、ＭＶが、時間的マッチングを使用して決定されるので、ＢＶＤ値とＭＶＤ値との異なる分布が生じる。
【００２２】
[0029]  上記で説明したＨＥＶＣにおけるＭＶＤコーディング方法は、大部分のＭＶＤ値が０と５との間にあるので、ＭＶＤ値に好適である。特に、低次の指数ゴロムコードがより小さい値を符号化するのにより適しているので、ＭＶＤの絶対値から２を減じたものをコーディングするのに１次指数ゴロムコードが好適である。しかしながら、ＢＶＤ値は、一般に、あまりクラスタ化されておらず、ＢＶＤの値は、一般に、ＭＶＤの値よりも大きい。例えば、ＢＶＤの値は、０からピクチャサイズ（例えば、５００）ほどまでの範囲にあり得る。従って、ビデオエンコーダが、ＢＶＤ値の分布を利用する圧縮方式を実施することが望ましいことがある。
【００２３】
[0030]  本開示の１つまたは複数の技法によれば、ビデオコーダは、ＢＶＤの平坦な分布を利用する圧縮方式を実施し得る。例えば、ビデオコーダは、ＢＶＤの値を表すために高次指数ゴロムコードなどの高次コードを使用する圧縮方式を実施し得る。例えば、ビデオコーダは、ＢＶＤの絶対値が０よりも大きいか否かを示すシンタックス要素をコーディングすることによってＢＶＤの値をコーディングし得る。ＢＶＤの絶対値が０よりも大きい場合、ビデオコーダは、ＢＶＤの絶対値が、指数ゴロムコードのセットなどのコードのセットの次数に基づき得るしきい値よりも大きいか否かを示すシンタックス要素をコーディングし得る。以下で説明するように、いくつかの例において、コードのセットは、ＢＶＤの絶対値の表現を符号化するために使用され得る。いくつかの例において、コードのセットの次数は、４など、比較的高くなり得るが、コードの他の次数が使用され得る（例えば、１、２、３、または５）。いくつかの例において、しきい値は、コードの次数だけ左シフトされた数１（例えば、１＜＜次数）であり得る。いくつかの例において、コードの次数は所定のものであり得る。他の例において、ビデオコーダは、次数を示すシンタックス要素をコーディングし得る。
【００２４】
[0031]  ＢＶＤの絶対値がしきい値よりも大きい場合、ビデオコーダは、コードのセットを使用して、ＢＶＤの絶対値からコードのセットの次数に基づき得るオフセットを減じたものを示すシンタックス要素をコーディングし得る。いくつかの例において、オフセットは、しきい値から１を減じたもの（例えば、オフセット＝しきい値−１）であり得る。ＢＶＤの絶対値がしきい値よりも大きくない場合、ビデオコーダは、コードのセットの次数に等しい長さを有する固定長コードを使用して、ＢＶＤの絶対値から１を減じたものを示すシンタックス要素をコーディングし得る。さらに、ＢＶＤの絶対値が０よりも大きい場合、ビデオコーダは、ＢＶＤの値が正であるのか、または負であるのかを示す第４のシンタックス要素をコーディングし得る。このようにして、ビデオコーダは、ブロックベクトルをコーディングするために使用されるデータの量を低減し得る。
【００２５】
[0032]  いくつかの例において、ブロックベクトルは、複数の成分を有し得る。例えば、ブロックベクトルは、水平成分（ｘ）と垂直成分（ｙ）とを有し得る。従って、いくつかの例において、ビデオエンコーダは、ブロックベクトルのそれぞれの成分の値を集合的に表すそれぞれの複数のシンタックス要素を生成することによって、ブロックベクトルのそれぞれの構成要素の値を符号化し得、ビデオデコーダは、複数のシンタックス要素をブロックベクトルの成分のそれぞれの値に復号するために相補型圧縮方式を実施し得る。
【００２６】
[0033]  図１は、ビデオデータをフィルタ処理するための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２７】
[0034]  宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例において、コンピュータ可読媒体１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２８】
[0035]  いくつかの例において、符号化データは、出力インターフェース２２からストレージデバイス３２に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス３２からアクセスされ得る。ストレージデバイス３２は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例において、ストレージデバイス３２は、ソースデバイス１２によって生成された符号化されたビデオを記憶できるファイルサーバまたは別の中間ストレージデバイスに対応し得る。
【００２９】
[0036]  宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス３２から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することと、その符号化されたビデオデータを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、または、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージデバイス３２からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００３０】
[0037]  本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例において、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３１】
[0038]  図１の例において、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３１とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、ビデオコーディング(video coding)における変換を行うための技法を適用するように構成され得る。他の例において、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。例えば、ソースデバイス１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのでなく、外部ディスプレイデバイスとインターフェースし得る。
【００３２】
[0039]  図１の図示のシステム１０は一例にすぎない。ビデオコーディングにおいてイントラＢＣを行うための技法は、任意のデジタルビデオ符号化および／または復号デバイス(digital video encoding and/or decoding device)によって行われ得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４への送信のためにコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例において、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素(video encoding and decoding components)とを含むように、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス１２とビデオデバイス１４との間で一方向または双方向のビデオ送信をサポートし得る。
【００３３】
[0040]  ソースデバイス１２のビデオソース１８は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４はいわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００３４】
[0041]  コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例において、ネットワークサーバ（図示せず）は、ソースデバイス１２から符号化ビデオデータを受信し、例えば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを製造し得る。従って、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解され得る。
【００３５】
[0042]  宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、例えば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、ビデオエンコーダ２０によって定義されビデオデコーダ３０によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス３１は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような、種々のディスプレイデバイスのいずれかを備え得る。
【００３６】
[0043]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、離散論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つもしくは複数のエンコーダまたはデコーダ内に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００３７】
[0044]  図１には示されていないが、いくつかの態様において、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３８】
[0045]  本開示では、一般に、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及することがある。しかしながら、ビデオエンコーダ２０は、いくつかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングできることを理解されたい。すなわち、ビデオエンコーダ２０は、ビデオデータの様々な符号化された部分のヘッダに、あるシンタックス要素を格納することによって、データを「シグナリング」し得る。いくつかの場合には、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され復号される前に、符号化され記憶され（例えば、ストレージデバイス３２に記憶され）得る。従って、「シグナリング」という用語は全般に、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を、そのような通信がリアルタイムで発生するかほぼリアルタイムで発生するかある期間にわたって発生するかにかかわらず指すことがあり、ある期間にわたる通信は、シンタックス要素を符号化の時点で媒体に記憶し、次いで、シンタックス要素がこの媒体に記憶された後の任意の時点で復号デバイスによって取り出され得るときに、発生し得る。
【００３９】
[0046]  ビデオエンコーダ２０およびビデオデコーダ３０は、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）並びにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｔｅｎｓｉｏｎ  Ｄｅｖｅｌｏｐｍｅｎｔ（ＪＣＴ−３Ｖ）によって最近開発された、それの範囲拡張、マルチビュー拡張（ＭＶ−ＨＥＶＣ）およびスケーラブル拡張（ＳＨＶＣ）を含む、高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５規格などのビデオ圧縮規格に従って動作し得る。ＨＥＶＣのバージョン１は、２０１３年１月２５日に画定され、仕様は、２０１３年４月１３日に規格として公式に承認され、ｗｗｗ．ｉｔｕ．ｉｎｔ／ｒｅｃ／Ｔ−ＲＥＣ−Ｈ．２６５−２０１３０４−Ｓ／ｅｎから入手可能である。最新のＨＥＶＣドラフト仕様は、ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１５＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｎ１００３−ｖ１．ｚｉｐから入手可能である。
【００４０】
[0047]  本開示の技法は、いかなる特定のコーディング規格にも限定されないが、本技法は、ＨＥＶＣ規格、特に、画面コンテンツコーディング（ＳＣＣ）などのＨＥＶＣ範囲拡張に関係し得る。ＨＥＶＣの規格化の取組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、例えばＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対する、ビデオコーディングデバイスの複数の追加能力を仮定する。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは３５個ものイントラ予測符号化モードを与え得る。
【００４１】
[0048]  一般に、ＨＭの作業モデルは、ビデオピクチャが、ルーマサンプルとクロマサンプルの両方を含む、一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記述する。ビットストリーム内のシンタックスデータは、ピクセルの数の点で最大のコーディングユニットであるＬＣＵにとってのサイズを定義し得る。スライスは、いくつかの連続するコーディングツリーユニット（ＣＴＵ）を含む。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別個の色平面を有するピクチャにおいて、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００４２】
[0049]  ビデオピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。一般に、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵに分割される場合、ＣＵに対応するノードは４つのリーフノードを含み、それらの各々はサブＣＵのうちの１つに対応する。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。３つの別個の色平面を有するモノクロームピクチャまたはピクチャにおいて、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングブロックはサンプルのＮ×Ｎブロックである。
【００４３】
[0050]  ４分木データ構造の各ノードは、対応するＣＵについてのシンタックスデータを与え得る。例えば、４分木内のノードは、そのノードに対応するＣＵがサブＣＵに分割されるか否かを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるか否かに依存し得る。ＣＵがこれ以上分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。例えば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００４４】
[0051]  ＨＥＶＣ規格におけるＣＵは、Ｈ．２６４規格のマクロブロックのＣＵと同様の目的を有する。但し、ＣＵは、サイズの差異を有しない。例えば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズを定義し得る。従って、ビットストリームはまた、最小コーディングユニット（ＳＣＵ：smallest coding unit）を定義し得る。本開示では、「ブロック」という用語を、ＨＥＶＣのコンテキストにおいてＣＵ、ＰＵ、またはＴＵのうちのいずれかを、または他の規格のコンテキストにおいて類似のデータ構造（例えば、Ｈ．２６４／ＡＶＣのマクロブロックおよびそのサブブロック）を指すために使用する。
【００４５】
[0052]  ＣＵは、コーディングノードと、そのコーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【００４６】
[0053]  一般に、ＰＵは、対応するＣＵの全てまたは一部分に対応する空間エリアを表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。さらに、ＰＵは、予測に関するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵについてのデータは、残差４分木（ＲＱＴ）中に含まれ得、残差４分木は、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモードで符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵのＰＵは、ルーマサンプルの１つの予測ブロックと、ピクチャのクロマサンプルの２つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別個の色平面を有するピクチャにおいて、ＰＵは、単一の予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。
【００４７】
[0054]  ＴＵは、変換、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を含み得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵについての残差データを含むＴＵを形成し、次いで、ＣＵの変換係数を生成するためにＴＵを変換し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであってもよい。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別個の色平面を有するピクチャにおいて、ＴＵは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００４８】
[0055]  変換の後、ビデオエンコーダ２０は、変換係数の量子化を行い得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００４９】
[0056]  ビデオエンコーダ２０は、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、より高いエネルギー（従って、より低い周波数）の係数をアレイの前方に配置し、より低いエネルギー（従って、より高い周波数）の係数をアレイの後方に配置するように設計され得る。いくつかの例において、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例において、ビデオエンコーダ２０は、適応走査を行い得る。
【００５０】
[0057]  量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って、１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０によって使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００５１】
[0058]  ビデオエンコーダ２０は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびピクチャグループ（ＧＯＰ：group of pictures）ベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のピクチャの数を記述し得、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化／予測モードを示し得る。
【００５２】
[0059]  ビデオデコーダ３０は、コーディングされたビデオデータを取得すると、ビデオエンコーダ２０に関して説明した符号化パスとは一般に相反的な復号パスを行い得る。例えば、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを取得し得る。ビデオデコーダ３０は、ビットストリーム内に含まれたデータを使用して、元の符号化されていないビデオシーケンスを再構成し得る。
【００５３】
[0060]  リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティングなどの多数のアプリケーションが日常の個人生活の中で使用されつつある。これらのアプリケーションにおけるビデオコンテンツは通常、自然のコンテンツ、テキスト、人工グラフィックスなどの組合せである。テキストおよび人工グラフィックスにおいて、コンテンツの領域は、（数例を挙げると、文字、アイコン、および記号などの）反復パターンを含み得る。イントラブロックコピーイング（ＢＣ）は、この種類の冗長性の除去を可能にし、それによって、例えば、Ｐａｎｇら、「Ｎｏｎ−ＲＣＥ３：Ｉｎｔｒａ  Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ  ｗｉｔｈ  ２−Ｄ  ＭＶｓ」、文献：ＪＣＴＶＣ−Ｎ０２５６、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪＣＴ−ＶＣ、第１４回会合、オーストリアウィーン、２０１３年７月２５日〜８月２日（以下、「ＪＣＴＶＣ−Ｎ０２５６」）に記載されているように、イントラピクチャコーディング効率を潜在的に改善する技法である。
【００５４】
[0061]  図２の例においてより詳細に示すように、イントラＢＣを使用してコーディングされる現在のコーディングユニット（ＣＵ）（例えば、図４の現在のビデオブロック１０２）について、ビデオエンコーダ２０は、同じピクチャ中の探索領域（例えば、図４の再構成された領域１０８）から予測信号（例えば、図４の予測子ブロック１０４）（「予測ブロック」と呼ばれることもある）を取得し得る。いくつかの事例において、ビデオエンコーダ２０は、現在のＣＵから変位された予測ブロックの位置を示すベクトル、例えば、図４のブロックベクトル１０６を符号化し得る。いくつかの例において、ブロックベクトルは、現在のＣＵの左上隅の位置に対する予測ブロックの左上隅の位置を示し得る。ブロックベクトルは、いくつかの事例において、オフセットベクトル、変位ベクトル、または動きベクトルと呼ばれることもある。ビデオエンコーダ２０はまた、現在のビデオブロックのピクセル値と予測ブロック中の予測サンプルとの間の差を示す残差データを符号化し得る。
【００５５】
[0062]  上記で説明したように、前のＨＥＶＣ範囲拡張規格ドラフトでは、ＪＣＴＶＣ−Ｐ１００５に記載されているように、イントラＢＣのためのベクトル（例えば、図４のブロックベクトル１０６）が、ＨＥＶＣにおける動きベクトル差分（ＭＶＤ）コーディング方法を使用して符号化されていた。詳細には、ＪＣＴＶＣ−Ｐ１００５に記載されているように、イントラＢＣのためのベクトルは、ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇ、ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ、ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２、およびｍｖｄ＿ｓｉｇｎ＿ｆｌａｇの４つのシンタックス要素を使用して符号化されていた。シンタックス要素ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇは、ＭＶＤの絶対値が０よりも大きいかどうかを示し、１の長さをもつ固定長コードを使用して符号化される。シンタックス要素ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇは、ＭＶＤの絶対値が１よりも大きいかどうかを示し、１の長さをもつ固定長コードを使用して符号化される。シンタックス要素ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２は、ＭＶＤの絶対値から２を減じたものを示し、１次指数ゴロムコードを使用して符号化される。シンタックス要素ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇは、ＭＶＤの値が正であるのか、または負であるのかを示し、１の長さをもつ固定長コードを使用して符号化される。
【００５６】
[0063]  但し、イントラＢＣブロックベクトルフィールドの従来のインター動きベクトルフィールドとは異なる特性により、このコーディング方法は効率的でないことがある。例えば、ＢＶＤ値の分布は、ほぼ平坦で、ＢＶＤ値が増加するにつれて緩やかに減少することが観測されるが、ＭＶＤ値の分布は、ＭＶＤ値が増加するにつれて、迅速に低下する。いくつかの例では、ＢＶが、パターンマッチングを使用して決定されるが、ＭＶが、時間的マッチングを使用して決定されるので、ＢＶＤ値とＭＶＤ値との異なる分布が生じる。
【００５７】
[0064]  上記で説明したＨＥＶＣにおけるＭＶＤコーディング方法は、大部分のＭＶＤ値が０と５との間にあるので、ＭＶＤ値に好適である。特に、低次の指数ゴロムコードがより小さい値を符号化するのにより適しているので、ＭＶＤの絶対値から２を減じたものをコーディングするのに１次指数ゴロムコードが好適である。しかしながら、ＢＶＤ値は、一般に、あまりクラスタ化されておらず、ＢＶＤの値は、一般に、ＭＶＤの値よりも大きい。例えば、ＢＶＤの値は、０からピクチャサイズ（例えば、５００）ほどまでの範囲にあり得る。従って、ビデオエンコーダ２０とビデオデコーダ３０とが、ＢＶＤ値の分布を利用する圧縮方式を実施することが望ましいことがある。
【００５８】
[0065]  本開示で説明する技法の１つまたは複数の態様によれば、ＨＥＶＣの動きベクトル差分（ＭＶＤ）コーディング方法を使用してブロックベクトルの値を符号化するのでなく、ビデオエンコーダ２０は、ＢＶＤの特性に適合された異なる符号化方法を使用してＢＶＤの値を符号化し得る。例えば、ビデオエンコーダ２０とビデオデコーダ３０とは、ＢＶＤの値を表すために高次指数ゴロムコード、例えば、２次、３次、４次、５次、またはさらに高次などの高次コードを使用する圧縮方式を実施し得る。例えば、ビデオエンコーダ２０は、ＢＶＤの絶対値が０よりも大きいか否かを示すシンタックス要素をコーディングすることによってＢＶＤの値を符号化し得る。
【００５９】
[0066]  ＢＶＤの絶対値が０よりも大きい場合、ビデオエンコーダ２０は、ＢＶＤの絶対値が、指数ゴロムコードのセットなどのコードのセットの次数に基づき得るしきい値よりも大きいか否かを示すシンタックス要素を符号化し得る。いくつかの例において、コードのセットの次数は、４など、比較的高くなり得るが、コードの他の次数が使用され得る（例えば、１、２、３、または５）。いくつかの例において、しきい値は、コードの次数だけ左シフトされた１（例えば、１＜＜次数）であり得る。
【００６０】
[0067]  ＢＶＤの絶対値がしきい値よりも大きい場合、ビデオエンコーダ２０は、コードのセットを使用して、ＢＶＤの絶対値からコードのセットの次数に基づき得るオフセットを減じたものを示すシンタックス要素を符号化し得る。いくつかの例において、オフセットは、しきい値から１を減じたもの（例えば、オフセット＝しきい値−１）であり得る。ＢＶＤの絶対値がしきい値よりも大きくない場合、ビデオエンコーダ２０は、コードのセットの次数に等しい長さを有する固定長コードを使用して、ＢＶＤの絶対値から１を減じたものを示すシンタックス要素を符号化し得る。さらに、ＢＶＤの絶対値が０よりも大きい場合、ビデオエンコーダ２０は、ＢＶＤの値が正であるのか、または負であるのかを示す第４のシンタックス要素を符号化し得る。このようにして、ビデオエンコーダ２０は、ＢＶＤをコーディングするために使用されるデータの量を低減し得る。
【００６１】
[0068]  いくつかの例において、ブロックベクトル（および、適用可能な場合、従って、ＢＶＤ）は、単一の成分を有し得る。例えば、ビデオエンコーダ２０は、現在のビデオブロックの予測のために、同じピクチャ中のビデオデータの現在のブロックの真上あるいは現在のブロックに対して水平方向に一直線上にある前にコーディングされたビデオデータのブロックを使用するように構成され得る。言い換えれば、ビデオデータのピクチャが２−Ｄグリッドに組み付けられる場合、ビデオデータの各ブロックは、ｘ値およびｙ値の一意の範囲を占有することになる。従って、ビデオエンコーダ２０は、（現在のビデオブロックに対して垂直方向に一直線上にある）ｘ値の同じセットまたは（現在のビデオブロックに対して水平方向に一直線上にある）ｙ値の同じセットのみを共有する前にコーディングされたビデオデータのブロックに基づいてビデオデータの現在のブロックを予測し得る。
【００６２】
[0069]  ｘ値の同じセットのみを共有する前に符号化されたビデオデータのブロックに基づいてビデオデータの現在のブロックを予測するようにビデオエンコーダ２０が構成される例において、ビデオエンコーダ２０は、ｘ値の同じセットのみを共有する前に符号化されたビデオデータのブロックの予測ブロックを識別する単一の成分をもつブロックベクトルを符号化し得る。同様に、ｙ値の同じセットのみを共有する前にコーディングされたビデオデータのブロックに基づいてビデオデータの現在のブロックを予測するようにビデオエンコーダ２０が構成される例において、ビデオエンコーダ２０は、ｙ値の同じセットのみを共有する前に符号化されたビデオデータのブロックの予測ブロックを識別する単一の成分をもつブロックベクトルを符号化し得る。
【００６３】
[0070]  いくつかの例において、ブロックベクトルは、複数の成分を有し得る。例えば、記述されたＪＣＴＶＣ−Ｎ０２５６として、ビデオエンコーダ２０は、現在のビデオブロックと同じピクチャ内の予測ブロックを識別する２次元ブロックベクトルを決定し、符号化し得る。いずれの場合も、２次元ブロックベクトルは、水平（ｘ）変位成分（例えば、図４のブロックベクトル１０６の水平変位成分１１２）と垂直（ｙ）変位成分（例えば、図４のブロックベクトル１０６の垂直変位成分１１０）とを有し得、その各々は、ゼロまたは非ゼロであり得る。水平変位成分は、ビデオデータの予測ブロック（predictive block）または予測ブロック（prediction block）とビデオデータの現在のブロックとの間の水平変位を表し、垂直変位成分は、ビデオデータの予測ブロックとビデオデータの現在のブロックとの間の垂直変位を表す。
【００６４】
[0071]  本開示の１つまたは複数の技法によれば、ビデオエンコーダ２０は、ブロックベクトルの各成分のそれぞれの値をそれぞれ集合的に表すそれぞれの複数のシンタックス要素を符号化し得る。すなわち、シンタックス要素の１つのセットは、ブロックベクトルの水平変位成分を表し得、シンタックス要素の別のセットは、ブロックベクトルの垂直変位成分を表し得る。ブロックベクトルまたはＢＶＤの成分ごとに、シンタックス要素のセットは、ブロックベクトルのそれぞれの成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素と、（それぞれの成分の絶対値が０よりも大きい場合）それぞれの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素と、（成分の絶対値がしきい値よりも大きい場合）それぞれの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示す第３のシンタックス要素と、（それぞれの成分の絶対値が０よりも大きい場合）それぞれの成分の値の符号を示す第４のシンタックス要素と含み得る。
【００６５】
[0072]  いくつかの例では、ＢＶＤの最大長に基づいてＢＶＤの成分の値を符号化することが望ましいことがある。例えば、成分の最大長が知られると、最大長に基づいて決定された長さをもつ固定長コードを使用して値を符号化することがより効率的であり得る。
【００６６】
[0073]  本開示の１つまたは複数の技法によれば、いくつかの例では、上記で説明した４つのシンタックス要素を使用してＢＶＤの値を符号化するのでなく、ビデオエンコーダ２０が、ＢＶＤの最大長に基づいて決定された長さをもつ固定長コードを使用してＢＶＤの値を符号化し得る。例えば、ビデオエンコーダ２０は、１つまたは複数のパラメータに基づいてＢＶＤの最大長を決定し得る。現在のブロックのためのＢＶＤの実測値をビデオエンコーダ２０がすでに知り得るが、ビデオエンコーダ２０は、すなわち、エンコーダ／デコーダの不一致を回避するためにデコーダにおいて利用可能なパラメータを使用して最大長を依然として決定し得る。最大長を決定するためにビデオエンコーダ２０が使用し得るいくつかの例示的なパラメータは、限定はしないが、現在のブロックの位置と、ブロックベクトル予測子のロケーションと、ピクチャ境界とを含む。
【００６７】
[0074]  ビデオエンコーダ２０は、決定された最大長に基づいて固定長コードの長さを決定し得る。いくつかの例において、ビデオエンコーダ２０は、以下の式（１）に従って固定長コードの長さを決定し得、ここで、長さは、固定長コードの長さであり、ｍａｘＢＶＤｌｅｎｇｔｈは、ＢＶＤの決定された最大長である。ビデオエンコーダ２０は、決定された長さを有する固定長コードを使用して成分の値を符号化し得る。
【００６８】
【数１】
2017523685.tif 000003
【００６９】
[0075]  いくつかの例において、ビデオエンコーダ２０は、上記で説明した技法の組合せを使用し得る。そのような例において、ビデオエンコーダ２０は、ＢＶＤの値が４つのシンタックス要素を使用して符号化されるのか、またはＢＶＤの最大長に基づいて決定された長さをもつ固定長コードを使用して符号化されるのかを示すシンタックス要素を符号化し得る。
【００７０】
[0076]  いくつかの例では、水平成分と垂直成分とをもつブロックベクトルをビデオエンコーダ２０が符号化するなどの場合（すなわち、ビデオエンコーダ２０がＢＶＤｘとＢＶＤｙとを符号化する場合）、ビデオエンコーダ２０が、他の成分に基づいて成分のうちの１つを符号化し得る。例えば、ビデオエンコーダ２０は、ＢＶＤｘを符号化し、ＢＶＤｘに基づいてＢＶＤｙを符号化し得る（またその逆も同様）。一例として、ビデオエンコーダ２０は、ＢＶＤｘの値、符号、または特定のビン値に基づいてＢＶＤｙの値、符号、または特定のビン値を符号化し得る（またその逆も同様）。
【００７１】
[0077]  ビデオデコーダ３０はまた、ビデオエンコーダ２０に関して上記で説明した技法とは一般に逆のものである技法を使用するように構成され得る。この点において、ビデオデコーダ３０は、ブロックベクトルによって識別される予測ブロックを使用してピクチャのコーディングされた現在のブロックを復号するためにイントラＢＣプロセスを行うように構成され得る。
【００７２】
[0078]  本開示で説明する技法の１つまたは複数の態様によれば、ＨＥＶＣにおける動きベクトル差分（ＭＶＤ）コーディング方法を使用してブロックベクトルの値を復号するのでなく、ビデオデコーダ３０は、ＢＶＤの特性に適合された復号方法を使用してＢＶＤの値を復号し得る。例えば、ＢＶＤの値を決定するために、ビデオデコーダ３０は、ＢＶＤの絶対値が０よりも大きいか否かを決定するために第１のシンタックス要素を復号し得る。ＢＶＤの絶対値が０よりも大きい場合、ビデオデコーダ３０は、ＢＶＤの絶対値が、指数ゴロムコードのセットなどのコードのセットの次数に基づき得るしきい値よりも大きいか否かを決定するために第２のシンタックス要素を復号し得る。いくつかの例において、コードのセットの次数は、４など、比較的高くなり得るが、コードの他の次数が使用され得る（例えば、１、２、３、または５）。いくつかの例において、しきい値は、コードの次数だけ左シフトされた１（例えば、１＜＜次数）であり得る。ＢＶＤの絶対値がしきい値よりも大きい場合、ビデオデコーダ３０は、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づき得るオフセットを減じたものを決定するために第３のシンタックス要素を復号し得る。いくつかの例において、オフセットは、しきい値から１を減じたもの（例えば、オフセット＝しきい値−１）であり得る。ＢＶＤの絶対値がしきい値よりも大きくない場合、ビデオデコーダ３０は、コードのセットの次数に等しい長さを有する固定長コードを使用して、ブロックベクトルの成分の絶対値から１を減じたものを決定するためにシンタックス要素のセットの第３のシンタックス要素を復号し得る。さらに、ＢＶＤの絶対値が０よりも大きい場合、ビデオデコーダ３０は、ＢＶＤの値が正であるのか、または負であるのかを決定するために第４のシンタックス要素を復号し得る。このようにして、ビデオデコーダ３０は、ＢＶＤの特性に適合された符号化方法を使用することによってブロックベクトルの値を復号し得る。
【００７３】
[0079]  ビデオデコーダ３０は、ブロックベクトルによって識別される予測子ブロックを使用して現在のブロックを復号し得る。例えば、ビデオデコーダ３０は、予測ブロックと現在のブロックとの間のピクセル差分を表す残差ブロックに基づいて現在のブロックを生成し得る。
【００７４】
[0080]  図２は、本開示で説明する技法を実施し得る例示的なビデオエンコーダを示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを行い得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの冗長性を低減または除去するために時間的予測またはビュー間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかに含み得る。ビデオエンコーダ２０はまた、本明細書で説明するように、同じピクチャ内のビデオデータの予測ブロックからのビデオデータのブロックのイントラ予測のためのモード、例えば、イントラＢＣモードを利用するように構成され得る。
【００７５】
[0081]  図２の例において、ビデオエンコーダ２０は、区分ユニット３５と、予測処理ユニット４１と、再構成領域メモリ６４と、フィルタ処理ユニット６６と、参照ピクチャメモリ６８と、加算器５０と、変換処理ユニット５２と、量子化処理ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６と、イントラブロックコピー（イントラＢＣ）ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化処理ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。
【００７６】
[0082]  様々な例において、ビデオエンコーダ２０のユニットは、本開示の技法を行う役割を担い得る。また、一部の例において、本開示の技術は、ビデオエンコーダ２０のユニットの１つまたは複数の中で分割され得る。例えば、イントラＢＣユニット４８は、単独で、または動き推定ユニット４２、動き補償ユニット４４、イントラ予測処理ユニット４６、再構成領域メモリ６４、およびエントロピー符号化ユニット５６など、ビデオエンコーダの他のユニットと組み合わせて、本開示の技法を行い得る。いくつかの例において、ビデオエンコーダ２０は、イントラＢＣユニット４８を含まないことがあり、イントラＢＣユニット４８の機能は、動き推定ユニット４２および／または動き補償ユニット４４など、予測処理ユニット４１の他の構成要素によって行われ得る。
【００７７】
[0083]  図２に示すように、ビデオエンコーダ２０はビデオデータを受信し、区分ユニット３５はデータをビデオブロックに区分する。この区分はまた、例えば、ＬＣＵおよびＣＵの４分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、並びにビデオブロック区分を含み得る。ビデオエンコーダ２０は、一般に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。
【００７８】
[0084]  予測処理ユニット４１は、レートひずみ結果（例えば、コーディングビットレートおよびひずみレベル）に基づいて現在のビデオブロックのために、複数のイントラコーディングモードのうちの１つ、複数のインターコーディングモードのうちの１つ、または本開示において説明する技法によるイントラＢＣモードなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、得られた予測ブロックを、残差ブロックデータを生成するために加算器５０に与え、例えば、参照ピクチャとして他のビデオブロックの予測において使用するための現在のブロックを再構成するために加算器６２に与え得る。
【００７９】
[0085]  予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を提供するために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを行い得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、例えば時間圧縮を実現するために、１つまたは複数の参照ピクチャ内の１つまたは複数の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを行う。
【００８０】
[0086]  動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。同様に、本開示の技法に従ってイントラＢＣのために使用されるブロックベクトルは、同じフレームまたはピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示す。イントラＢＣユニット４８は、インター予測のための動き推定ユニット４２による動きベクトルの決定と同様の方法でイントラＢＣコーディングのためのベクトル、例えば、ブロックベクトルを決定し得、あるいはブロックベクトルを決定するために動き推定ユニット４２を利用し得る。
【００８１】
[0087]  例えば、インター予測またはイントラＢＣ予測のための動き推定ユニット４２および／またはイントラＢＣユニットによって識別される予測ブロックは、ＰＵと予測ブロックとの間のピクセル差分に関してコーディングされるべきビデオブロックのＰＵに厳密に一致することがわかるブロックである。ピクセル差分は、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって決定され得る。いくつかの例において、ビデオエンコーダ２０は、参照ピクチャメモリ６８中に記憶された参照ピクチャのサブ整数ピクセル位置または再構成領域メモリ６４中に記憶された現在のピクチャの再構成領域の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。従って、動き推定ユニット４２および／またはイントラＢＣユニット４８は、フルピクセル位置と分数ピクセル位置とに対して予測ブロックの探索を行い、分数のピクセル精度でベクトルを出力し得る。
【００８２】
[0088]  動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス内のビデオブロックのＰＵの動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０もしくはＲｅｆＰｉｃＬｉｓｔ０）または第２の参照ピクチャリスト（リスト１もしくはＲｅｆＰｉｃＬｉｓｔ１）から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６８中に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００８３】
[0089]  動き補償ユニット４４によって行われる動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によっては、サブピクセル精度への補間を行うことを伴い得る。現在のビデオブロックのＰＵについての動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。
【００８４】
[0090]  いくつかの例において、イントラＢＣユニット４８は、動き推定ユニット４２および動き補償ユニット４４に関して上記で説明した方法と同様の方法でベクトルを生成し、予測ブロックをフェッチし得るが、予測ブロックは、現在のブロックと同じピクチャまたはフレーム中にあり、ベクトルは、動きベクトルとは対照的にブロックベクトルと呼ばれる。他の例において、イントラＢＣユニット４８は、全体的にまたは部分的に、本明細書で説明する技法に従ってイントラＢＣ予測のためのそのような機能を行うために動き推定ユニット４２と動き補償ユニット４４とを使用し得る。いずれの場合も、イントラＢＣにおいて、予測ブロックは、ピクセル差分に関して、コーディングされるべきブロックに厳密に一致することがわかるブロックであり、ピクセル差分は、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって決定され得、ブロックの識別は、サブ整数ピクセル位置の値の算出を含み得る。
【００８５】
[0091]  予測ビデオブロックがイントラＢＣ予測による同じピクチャからのものであるのか、またはインター予測による異なるピクチャからのものであるのかにかかわらず、ビデオエンコーダ２０は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算して、ピクセル差分値を形成することによって残差ビデオブロックを形成し得る。ピクセル差分値は、ブロックの残差データを形成し、ルーマ成分差分とクロマ成分差分の両方を含み得る。加算器５０は、この減算演算を行う１つまたは複数の構成要素を表す。イントラＢＣユニット４８および／または動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０などのビデオデコーダが使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。シンタックス要素は、例えば、予測ブロックを識別するのに使用されるベクトル、予測モードを示す任意のフラグ、または本開示の技法に関して説明する任意の他のシンタックスを定義するシンタックス要素を含み得る。
【００８６】
[0092]  イントラ予測処理ユニット４６は、上記で説明したように、動き推定ユニット４２および動き補償ユニット４４によって行われるインター予測、またはイントラＢＣユニット４８によって行われるイントラＢＣ予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例において、イントラ予測ユニット４６は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のビデオブロックを符号化し得、イントラ予測処理ユニット４６（または、いくつかの例において、予測処理ユニット４１）は、テストされたモードから使用すべき適切なイントラ予測モードを選択し得る。例えば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードのうちで最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを作るために符号化された、元の符号化されていないブロックとの間のひずみ（または、誤差）の量、並びに符号化されたブロックを作るのに使用されたビットレート（すなわち、ビットの個数）を決定する。イントラ予測処理ユニット４６は、様々な符号化ブロックのひずみおよびレートから比を計算して、どのイントラ予測モードがブロックの最良のレートひずみ値を示すのかを決定し得る。
【００８７】
[0093]  いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリームに含め得る。
【００８８】
[0094]  予測処理ユニット４１がインター予測、イントラ予測、またはイントラＢＣ予測を介して現在のビデオブロックの予測ブロックを生成した後、ビデオエンコーダ２０は、現在のビデオブロックから、例えば、加算器５０を介して予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域からの周波数領域などの変換領域に変換し得る。
【００８９】
[0095]  変換処理ユニット５２は、得られた変換係数を量子化処理ユニット５４に送り得る。量子化処理ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例において、量子化処理ユニット５４は、次いで、量子化変換係数を含む行列の走査を行い得る。代替的に、エントロピー符号化ユニット５６が走査を行い得る。
【００９０】
[0096]  量子化の後、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピー符号化方法もしくは技法を行い得る。エントロピー符号化ユニット５６は、イントラＢＣモードによる予測に関して、ベクトル成分、フラグ、およびその他のシンタックス要素を含む、２値化および符号化シンタックス要素のための本明細書において説明する技法のいずれかを行い得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化ビデオビットストリームは、ビデオデコーダ３０に送信されるか、またはビデオデコーダ３０が後で送信するかもしくは取り出すためにアーカイブされ得る。
【００９１】
[0097]  逆量子化処理ユニット５８および逆変換処理ユニット６０は、後で他のビデオブロックを予測するために参照ブロックとして使用できるようにピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４および／またはイントラＢＣユニット４８は、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット４４および／またはイントラＢＣユニット４８はまた、動き推定において使用するサブ整数ピクセル値を計算するために、１つまたは複数の補間フィルタを再構築された残差ブロックに適用し得る。
【００９２】
[0098]  加算器６２は、再構成された残差ブロックを、動き補償ユニット４４および／またはイントラＢＣユニット４８によって生成された動き補償予測ブロックに加算して、再構成ビデオブロックを生成する。再構成領域メモリ６４は、本明細書で説明するように、ビデオエンコーダ２０、例えば、イントラＢＣユニット４８による現在のビデオブロックのイントラＢＣのための再構成領域の定義に従って再構成ビデオブロックを記憶する。再構成領域メモリ６４は、フィルタ処理ユニット６６によってインループフィルタ処理されていない再構成ビデオブロックを記憶し得る。加算器６２は、再構成領域メモリ６４と並行してフィルタ処理ユニット６６に再構成ビデオブロックを与え得、または再構成領域メモリ６４は、イントラＢＣのために再構成領域がもはや必要なくなったときにフィルタ処理ユニット６６に再構成ビデオブロックを解放し得る。いずれの場合も、イントラＢＣユニット４８は、現在のビデオブロックを予測するために、現在のビデオブロックと同じピクチャ内の予測ビデオブロックを求めて再構成領域メモリ６４内の再構成ビデオブロックを探索し得る。
【００９３】
[0099]  フィルタ処理ユニット６６は、再構成ビデオブロックに対してインループフィルタ処理を行い得る。インループフィルタ処理は、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するためのデブロックフィルタ処理を含み得る。インループフィルタ処理は、再構成されたビデオを改善するためにサンプル適応オフセット（ＳＡＯ）フィルタ処理を含み得る。再構成ブロックは、そのうちのいくつかがインループフィルタ処理され得、参照ピクチャとして参照ピクチャメモリ６８中に記憶され得る。参照ピクチャは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって予測ブロックとして使用され得る再構成ブロックを含み得る。
【００９４】
[0100]  ブロックベクトルは、水平成分と垂直成分とを含む２次元ブロックベクトルであり得るか、あるいはブロックベクトルは、水平成分または垂直成分を含む１次元ブロックベクトルであり得る。水平成分は、ビデオデータの予測ブロックとビデオデータの現在のブロックとの間の水平変位を表し得る。垂直成分は、ビデオデータの予測ブロックとビデオデータの現在のブロックとの間の垂直変位を表し得る。ビデオデータの予測ブロックは、ビデオデータの現在のブロックと同じフレーム内にあり得る。イントラＢＣユニット４８は、エントロピー符号化ユニット５６に水平成分と垂直成分との一方または両方の値を出力し得る。
【００９５】
[0101]  本開示で説明する技法の１つまたは複数の態様によれば、ＨＥＶＣにおける動きベクトル差分（ＭＶＤ）コーディング方法を使用してブロックベクトルの値を符号化するのでなく、エントロピー符号化ユニット５６は、ブロックベクトルの特性に適合された符号化方法を使用してブロックベクトルの値を符号化し得る。例えば、エントロピー符号化ユニット５６は、ブロックベクトル（またはＢＶＤ）の成分の値を表すためにシンタックス要素のセットを符号化し得る。シンタックス要素の意味およびシンタックス要素を符号化するために使用される符号化技法は、ブロックベクトルの特性に適合され得る。このようにして、本開示の技法は、ブロックベクトルの値を符号化するために使用されるビット数を低減し得、これは、コーディング効率を改善し得る。
【００９６】
[0102]  例えば、エントロピー符号化ユニット５６は、ブロックベクトルの成分の第１のシンタックス要素を決定し得る。いくつかの例において、第１のシンタックス要素は、ブロックベクトル成分の絶対値が０よりも大きいかどうかを示し得る。そのような例において、第１のシンタックス要素は、第１のビン値（すなわち、「ｂ０」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇと呼ばれることがある。エントロピー符号化ユニット５６は、ブロックベクトル成分の絶対値を決定し得る。エントロピー符号化ユニット５６は、成分の絶対値が０よりも大きいかどうか（すなわち、成分が非ゼロであるのか）を決定するために成分の絶対値を分析し得る。成分の絶対値が０よりも大きい場合、エントロピー符号化ユニット５６は、第１のシンタックス要素が１であると決定し得る。成分の絶対値が０よりも大きくない場合、エントロピー符号化ユニット５６は、第１のシンタックス要素が０であると決定し得る。
【００９７】
[0103]  いくつかの例において、エントロピー符号化ユニット５６は、コンテキストをもつコンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）を使用して第１のシンタックス要素を符号化し得る。そのような例のうちのいくつかにおいて、エントロピー符号化ユニット５６は、別個のコンテキストを用いて水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素との両方を符号化し得る。そのような例のうちの他のものにおいて、エントロピー符号化ユニット５６は、同じコンテキストを用いて水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素との両方を符号化し得る。
【００９８】
[0104]  いくつかの例において、ブロックベクトルの成分の絶対値が０であるなどの場合（すなわち、ブロックベクトルの成分の値が整数精度で維持され、ブロックベクトルの成分の絶対値が０よりも大きくない場合）、エントロピー符号化ユニット５６が、ブロックベクトルの成分の値を表すためにさらなるシンタックス要素を符号化しないことがある。言い換えれば、ブロックベクトルの成分の絶対値が０である場合、エントロピー符号化ユニット５６は、第１のシンタックス要素のみを使用してブロックベクトルの成分の値を符号化し得、以下で説明する第２のシンタックス要素、第３のシンタックス要素、および第４のシンタックス要素を省略し得る。
【００９９】
[0105]  エントロピー符号化ユニット５６は、ブロックベクトルの成分の第２のシンタックス要素を決定し得る。いくつかの例において、第２のシンタックス要素は、ブロックベクトル成分の絶対値が、コードのセットの次数に基づき得るしきい値よりも大きいかどうかを示し得る。いくつかの例において、しきい値は、コードの次数だけ左シフトされた１（例えば、１＜＜次数）であり得る。例えば、コードのセットが４の次数をもつ指数ゴロムコードのセットである場合、しきい値は１６になり得る。そのような例において、第２のシンタックス要素は、第２のビン値（すなわち、「ｂ１」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ１６＿ｆｌａｇと呼ばれることがある。エントロピー符号化ユニット５６は、成分の絶対値がしきい値よりも大きいかどうかを決定するために成分の絶対値を分析し得る。成分の絶対値がしきい値よりも大きい場合、エントロピー符号化ユニット５６は、第２のシンタックス要素が１であると決定し得る。成分の絶対値がしきい値よりも大きくない場合、エントロピー符号化ユニット５６は、第２のシンタックス要素が０であると決定し得る。
【０１００】
[0106]  いくつかの例において、エントロピー符号化ユニット５６は、コンテキストをもつコンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）を使用して第２のシンタックス要素を符号化し得る。そのような例のうちのいくつかにおいて、エントロピー符号化ユニット５６は、別個のＣＡＢＡＣコンテキストを用いて水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素との両方を符号化し得る。そのような例のうちの他のものにおいて、エントロピー符号化ユニット５６は、同じコンテキストを用いて水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素との両方を符号化し得る。
【０１０１】
[0107]  エントロピー符号化ユニット５６は、ブロックベクトルの成分の第３のシンタックス要素を決定し得る。ブロックベクトルの成分の絶対値がしきい値（すなわち、第２のシンタックス要素を決定するために使用されるしきい値）よりも大きいか否かに応じて、エントロピー符号化ユニット５６は、固定長コード、ライスゴロムコード、または指数ゴロムコードなどの複数の技法のうちの１つを使用して第３のシンタックス要素を符号化し得る。エントロピー符号化ユニット５６は、バイパスモードで第３のシンタックス要素を符号化し得る。
【０１０２】
[0108]  一例として、ブロックベクトルの成分の絶対値がしきい値よりも大きくない場合、エントロピー符号化ユニット５６は、コードのセットの次数に等しい長さを有する固定長コードを使用して成分の絶対値から１を減じたものを表すために、第３のシンタックス要素を符号化し得る。例えば、成分の絶対値が１４であり、コードのセットの次数が４である場合、エントロピー符号化ユニット５６は、１１１０（すなわち、バイナリ表現の１４−１）として成分の絶対値を符号化し得る。そのような例において、第３のシンタックス要素は、一連のビン値（すなわち、「ｂ２−ｂｎ−１」）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１と呼ばれることがある。いくつかの例では、成分の絶対値の最大値が知られている（すなわち、上記で説明したしきい値である）ので、固定長コードが、最大のコーディング効率を与え得る。
【０１０３】
[0109]  別の例として、ブロックベクトルの絶対値がしきい値よりも大きい場合、エントロピー符号化ユニット５６は、コードのセットを使用して、成分の絶対値からコードのセットの次数に基づき得るオフセットを減じたものを表すために第３のシンタックス要素を符号化し得る。いくつかの例において、オフセットは、しきい値から１を減じたもの（例えば、オフセット＝しきい値−１）であり得る。例えば、成分の絶対値が３０であり、コードのセットが、次数４の指数ゴロムコードのセットである場合、オフセットは、１７であり得、エントロピー符号化ユニット５６は、成分の絶対値とオフセットとの間の差（すなわち、３０−１７＝１３）を１３の４次指数ゴロムコードとして符号化し得る。そのような例において、第３のシンタックス要素は、一連のビン値（すなわち、「ｂ２−ｂｎ−１」）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１と呼ばれることがある。いくつかの例では、成分の絶対値の最大値が知られておらず、比較的平坦な確率分布を有するので、高次（例えば、４次）の指数ゴロムコードが最大のコーディング効率を与え得る。
【０１０４】
[0110]  いくつかの例において、エントロピー符号化ユニット５６は、成分の符号を示す第４のシンタックス要素を符号化し得る。言い換えれば、第４のシンタックス要素は、成分が正であるのか、または負であるのかを示し得る。そのような例において、第４のシンタックス要素は、最後のまたは最終のビン値（すなわち、「ｂｎ」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇと呼ばれることがある。
【０１０５】
[0111]  いくつかの例において、エントロピー符号化ユニット５６は、いかなるコンテキストもなしにバイパスモードで第４のシンタックス要素を符号化し得る。いくつかの例において、エントロピー符号化ユニット５６は、１つまたは複数のコンテキストをもつＣＡＢＡＣを使用して第４のシンタックスを符号化し得る。そのような例のうちのいくつかにおいて、エントロピー符号化ユニット５６は、水平成分と垂直成分との両方を符号化し得、水平成分の第４のシンタックス要素と垂直成分の第４のシンタックス要素とは、別個のコンテキストを用いて符号化され得る。そのような例のうちのいくつかにおいて、エントロピー符号化ユニット５６は、水平成分と垂直成分との両方を符号化し得、水平成分の第４のシンタックス要素と垂直成分の第４のシンタックス要素とは、対応するコンテキスト（例えば、同じコンテキスト）を用いて符号化され得る。
【０１０６】
[0112]  図３は、本開示で説明する技法を実施し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例において、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化処理ユニット８６と、逆変換処理ユニット８８と、加算器９０と、再構成領域メモリ９２と、フィルタ処理ユニット９４と、参照ピクチャメモリ９６とを含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測処理ユニット８４と、イントラブロックコピー（イントラＢＣ）ユニット８５とを含む。ビデオデコーダ３０は、いくつかの例では、図２のビデオエンコーダ２０に関して説明された符号化パスとは一般に逆の復号パスを行い得る。
【０１０７】
[0113]  様々な例において、ビデオデコーダ３０のユニットは、本開示の技法を行う役割を担い得る。また、一部の例において、本開示の技術は、ビデオデコーダ３０のユニットの１つまたは複数の中で分割され得る。例えば、イントラＢＣユニット８５は、単独で、または動き補償ユニット８２、イントラ予測処理ユニット８４、再構成領域メモリ９２、およびエントロピー復号ニット８０など、ビデオデコーダ３０の他のユニットと組み合わせて、本開示の技法を行い得る。いくつかの例において、ビデオデコーダ３０は、イントラＢＣユニット８５を含まないことがあり、イントラＢＣユニット８５の機能は、動き補償ユニット８２など、予測処理ユニット８１の他の構成要素によって行われ得る。
【０１０８】
[0114]  復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化された係数と、インター予測のための動きベクトルと、イントラＢＣ予測のためのブロックベクトルと、本明細書で説明する他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、イントラＢＣモードによる予測に関して、ベクトル成分、フラグ、およびその他のシンタックス要素を含む、シンタックス要素の２値化および符号化のための本明細書で説明する技法のいずれかの逆を行い得る。エントロピー復号ユニット８０は、予測処理ユニット８１にベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ３０は、シーケンスレベル、ピクチャレベル、ビデオスライスレベルおよび／またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
【０１０９】
[0115]  上記で説明したように、符号化ブロックベクトルの成分は、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の変位を表し得る。予測子ブロックは、現在のブロックと同じピクチャ内にあり得る。ブロックベクトルは、水平成分と垂直成分とを含む２次元ブロックベクトルであり得るか、あるいはブロックベクトルは、水平成分または垂直成分を含む１次元ブロックベクトルであり得る。水平成分は、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の水平変位を表し得る。垂直成分は、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の垂直変位を表し得る。エントロピー復号ユニット８０は、水平成分と垂直成分との一方または両方を復号し得る。
【０１１０】
[0116]  本開示で説明する技法の１つまたは複数の態様によれば、ＨＥＶＣにおける動きベクトル差分（ＭＶＤ）コーディング方法を使用してブロックベクトルの値を復号するのでなく、エントロピー復号ユニット８０は、イントラＢＣモードのためのブロックベクトルの特性に適合された復号方法を使用してブロックベクトルの値を復号し得る。例えば、エントロピー復号ユニット８０は、ブロックベクトルを符号化するためにエンコーダ２０のエントロピー符号化ユニット５６によって使用される符号化プロセスとは一般に逆のものであるプロセスを利用し得る。例えば、エントロピー復号ユニット８０は、シンタックス要素のセットに基づいてブロックベクトルの成分を復号し得る。
【０１１１】
[0117]  例えば、エントロピー復号ユニット８０は、ブロックベクトルの成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素のセットの第１のシンタックス要素を復号し得る。そのような例において、第１のシンタックス要素は、第１のビン値（すなわち、「ｂ０」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇと呼ばれることがある。いくつかの例において、第１のシンタックス要素が１であるなどの場合、エントロピー復号ユニット８０は、成分の絶対値が０よりも大きいと決定し得る。いくつかの例において、第１のシンタックス要素が０であるなどの場合、エントロピー復号ユニット８０は、成分の絶対値が０よりも大きくないと決定し得る。
【０１１２】
[0118]  いくつかの例において、エントロピー復号ユニット８０は、コンテキストをもつコンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）を使用して第１のシンタックス要素を復号し得る。そのような例のうちのいくつかにおいて、エントロピー復号ユニット８０は、別個のコンテキストを用いて水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素との両方を復号し得る。そのような例のうちの他のものにおいて、エントロピー復号ユニット８０は、同じコンテキストを用いて水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素との両方を復号し得る。
【０１１３】
[0119]  いくつかの例では、ブロックベクトルの成分の絶対値が０であるなどの場合（すなわち、ブロックベクトルの成分の値が整数精度で維持され、ブロックベクトルの成分の絶対値が０よりも大きくないことを第１のシンタックス要素が示す場合）、エントロピー復号ユニット８０が、ブロックベクトルの成分の値を表すためにさらなるシンタックス要素を復号しないことがある。言い換えれば、ブロックベクトルの成分の絶対値が０である場合、エントロピー復号ユニット８０は、第１のシンタックス要素のみを使用してブロックベクトルの成分の値を復号し得、以下で説明する第２のシンタックス要素、第３のシンタックス要素、および第４のシンタックス要素を受信／復号しないことがある。
【０１１４】
[0120]  エントロピー復号ユニット８０は、ブロックベクトル成分の絶対値が、コードのセットの次数に基づき得るしきい値よりも大きいかどうかを決定するためにブロックベクトルの成分の第２のシンタックス要素を復号し得る。いくつかの例において、しきい値は、コードの次数だけ左シフトされた１（例えば、１＜＜次数）であり得る。例えば、コードのセットが４の次数をもつ指数ゴロムコードのセットである場合、しきい値は１６になり得る。そのような例において、第２のシンタックス要素は、第２のビン値（すなわち、「ｂ１」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ１６＿ｆｌａｇと呼ばれることがある。第２のシンタックス要素が１である場合、エントロピー符号化ユニット５６は、成分の絶対値がしきい値よりも大きいと決定し得る。第２のシンタックス要素が０である場合、エントロピー符号化ユニット５６は、成分の絶対値がしきい値よりも大きくないと決定し得る。
【０１１５】
[0121]  いくつかの例において、エントロピー復号ユニット８０は、コンテキストをもつコンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）を使用して第２のシンタックス要素を復号し得る。そのような例のうちのいくつかにおいて、エントロピー復号ユニット８０は、別個のコンテキストを用いて水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素との両方を復号し得る。そのような例のうちの他のものにおいて、エントロピー復号ユニット８０は、同じコンテキストを用いて水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素との両方を復号し得る。
【０１１６】
[0122]  エントロピー復号ユニット８０は、ブロックベクトルの成分の絶対値を決定するために第３のシンタックス要素を復号し得る。いくつかの例において、第３のシンタックス要素は、固定長コード、ゴロム−ライスコード、または指数ゴロムコードなどの複数の技法のうちの１つを使用して符号化され得る。そのような例のうちのいくつかにおいて、エントロピー復号ユニット８０は、ブロックベクトルの成分の絶対値がしきい値よりも大きいかどうかに基づいて第３のシンタックス要素を符号化するためにどの技法が使用されたかを決定し得る。上記で説明したように、エントロピー復号ユニット８０は、第２のシンタックス要素の値に基づいて、ブロックベクトルの成分の絶対値がしきい値よりも大きいかどうかを決定し得る。
【０１１７】
[0123]  一例として、ブロックベクトルの成分の絶対値がしきい値よりも大きくない（すなわち、しきい値以下である）場合、エントロピー復号ユニット８０は、コードのセットの次数に等しい長さを有する固定長コードを使用して第３のシンタックス要素が符号化されていると決定し得る。そのような例において、エントロピー復号ユニット８０は、ブロックベクトルの成分の絶対値から１を減じたものを決定するために第３のシンタックス要素を復号し得る。いくつかの例において、第３のシンタックス要素は、一連のビン値（すなわち、「ｂ２−ｂｎ−１」）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１と呼ばれることがある。例えば、第３のシンタックス要素が１１１０であり、コードのセットの次数が４である場合、エントロピー符号化ユニット５６は、成分の絶対値が１４（すなわち、１３＋１）であると決定し得る。
【０１１８】
[0124]  別の例として、ブロックベクトルの成分の絶対値がしきい値よりも大きい場合、エントロピー復号ユニット８０は、第３のシンタックス要素がコードのセットを使用して符号化されていると決定し得る。そのような例において、エントロピー復号ユニット８０は、成分の絶対値からコードのセットの次数に基づき得るオフセットを減じたものを決定するために第３のシンタックス要素を復号し得る。いくつかの例において、オフセットは、しきい値から１を減じたもの（例えば、オフセット＝しきい値−１）であり得る。そのような例において、第３のシンタックス要素は、一連のビン値（すなわち、「ｂ２−ｂｎ−１」）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１と呼ばれることがある。例えば、第３のシンタックス要素が、１３の４次指数ゴロムコードであり、コードのセットが、次数４の指数ゴロムコードのセットである場合、オフセットは、１７であり得、エントロピー復号ユニット８０は、成分の絶対値が３０である（すなわち、１３＋１７＝３０）と決定し得る。
【０１１９】
[0125]  いくつかの例において、エントロピー復号ユニット８０は、成分の符号を決定するために第４のシンタックス要素を復号し得る。言い換えれば、第４のシンタックス要素は、成分が正であるのか、または負であるのかを示し得る。そのような例において、第４のシンタックス要素は、最後のまたは最終のビン値（すなわち、「ｂｎ」）などのバイナリフラグ（すなわち、１の長さをもつ固定長コード）であり得、ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇと呼ばれることがある。
【０１２０】
[0126]  いくつかの例において、エントロピー復号ユニット８０は、いかなるコンテキストもなしにバイパスモードで第４のシンタックス要素を符号化し得る。いくつかの例において、エントロピー符号化ユニット５６は、１つまたは複数のコンテキストをもつＣＡＢＡＣを使用して第４のシンタックスを復号し得る。そのような例のうちのいくつかにおいて、エントロピー復号ユニット８０は、水平成分と垂直成分との両方を復号し得、水平成分の第４のシンタックス要素と垂直成分の第４のシンタックス要素とは、別個のコンテキストを用いて復号され得る。そのような例のうちのいくつかにおいて、エントロピー復号ユニット８０は、水平成分と垂直成分との両方を復号し得、水平成分の第４のシンタックス要素と垂直成分の第４のシンタックス要素とは、対応するコンテキスト（例えば、同じコンテキスト）を用いて復号され得る。
【０１２１】
[0127]  いずれの場合も、エントロピー復号ユニット８０は、イントラＢＣユニット８５にシンタックス要素に基づいて決定された成分の値を出力し得る。このようにして、エントロピー復号ユニット８０は、符号化されたブロックベクトルを復号し得る。
【０１２２】
[0128]  ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされたとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（すなわち、ＢまたはＰ）スライスとしてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。
【０１２３】
[0129]  予測ブロックは、参照ピクチャリストのうちの１つの中の、参照ピクチャの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９６に記憶された参照ピクチャに基づいて、デフォルトの構成技法または任意の他の技法を使用して、参照フレームリストのＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１を構成し得る。ビデオブロックが本明細書で説明するイントラＢＣモードに従ってコーディングされるとき、予測処理ユニット８１のイントラＢＣユニット８５は、エントロピー復号ユニット８０から受信されたブロックベクトルおよび他のシンタックス要素に基づいて、現在のビデオブロックのための予測ブロックを生成する。予測ブロックは、ビデオエンコーダ２０によって定義され、再構成領域メモリ９２から取り出される現在のビデオブロックと同じピクチャ内の再構成領域内にあり得る。
【０１２４】
[0130]  動き補償ユニット８２およびイントラＢＣユニット８５は、ベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックについての予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（例えば、イントラ予測またはインター予測）と、インター予測スライスタイプ（例えば、ＢスライスまたはＰスライス）と、スライス用の参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコード化ビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。同様に、イントラＢＣユニット８５は、現在のビデオブロックがイントラＢＣモードを使用して予測されたこと、ピクチャのどのビデオブロックが再構成領域内にあり、再構成領域メモリ９２中に記憶されるべきであるかを示す構成情報、スライスのイントラＢＣ予測された各ビデオブロックのブロックベクトル、スライスのイントラＢＣ予測された各ビデオブロックのイントラＢＣ予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のいくつか、例えばフラグを使用し得る。
【０１２５】
[0131]  動き補償ユニット８２およびイントラＢＣユニット８５はまた、補間フィルタに基づいて補間を行い得る。動き補償ユニット８２およびイントラＢＣユニット８５は、予測ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用されたのと同様に、補間フィルタを使用し得る。この場合、動き補償ユニット８２およびイントラＢＣユニット８５は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにそれらの補間フィルタを使用し得る。
【０１２６】
[0132]  逆量子化処理ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（dequantize）する。逆量子化プロセスは、ビデオエンコーダ２０によって算出された量子化パラメータをビデオスライス中のビデオブロックごとに使用して、適用すべき量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
【０１２７】
[0133]  動き補償ユニット８２またはイントラＢＣユニット８５が、ベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２およびイントラＢＣユニット８５によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器９０は、再構成ビデオブロックを生成するためにこの加算演算を行う１つの構成要素または複数の構成要素を表す。
【０１２８】
[0134]  再構成領域メモリ９２は、本明細書で説明するように、ビデオエンコーダ２０による現在のビデオブロックのイントラＢＣのための再構成領域の定義に従って再構成ビデオブロックを記憶する。再構成領域メモリ９２は、フィルタ処理ユニット９４によってインループフィルタ処理されていない再構成ビデオブロックを記憶し得る。加算器９０は、再構成領域メモリ９２と並行してフィルタ処理ユニット９４に再構成ビデオブロックを与え得、または再構成領域メモリ９２は、イントラＢＣのために再構成領域がもはや必要なくなったときにフィルタ処理ユニット９４に再構成ビデオブロックを解放し得る。いずれの場合も、イントラＢＣユニット８５は、再構成領域メモリ９２から現在のビデオブロックのための予測ビデオブロックを取り出す。
【０１２９】
[0135]  フィルタ処理ユニット９４は、再構成ビデオブロックに対してインループフィルタ処理を行い得る。インループフィルタ処理は、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するためのデブロックフィルタ処理を含み得る。インループフィルタ処理はまた、再構成されたビデオを改善するためにＳＡＯフィルタ処理を含み得る。再構成ブロックは、そのうちのいくつかがインループフィルタ処理され得、参照ピクチャとして参照ピクチャメモリ９６中に記憶され得る。参照ピクチャは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き補償ユニット８２によって予測ブロックとして使用され得る再構成ブロックを含み得る。参照ピクチャメモリ９６はまた、図１のディスプレイデバイス３１などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
【０１３０】
[0136]  図４に、本開示の技法による、イントラＢＣを含むイントラ予測プロセスの一例を示す。１つの例示的なイントラ予測プロセスによれば、ビデオエンコーダ２０は、例えば、コーディングされるべき現在のブロックと同じピクチャ中のビデオデータの前にコーディングされ、再構成されたブロックのセットから、予測子ビデオブロックを選択し得る。図４の例において、再構成領域１０８は、前にコーディングされ、再構成されたビデオブロックのセットを含む。再構成領域１０８中のブロックは、ビデオデコーダ３０によって復号および再構成され、再構成領域メモリ９２中に記憶されているブロック、またはビデオエンコーダ２０の再構築ループ中で復号および再構成され、再構成領域メモリ６４中に記憶されているブロックを表し得る。現在のブロック１０２は、コーディングされるべき現在のビデオブロックを表す。予測子ブロック１０４は、現在のブロック１０２のイントラＢＣ予測のために使用される、現在のブロック１０２と同じピクチャ中の再構成ビデオブロックを表す。
【０１３１】
[0137]  例示的なイントラ予測プロセスにおいて、ビデオエンコーダ２０は、残差信号とともに、現在のブロック１０２に対する予測子ブロック１０４の位置を示すブロックベクトル１０６を決定し、符号化し得る。例えば、図４によって示されるように、ブロックベクトル１０６は、現在のブロック１０２の左上隅に対する予測子ブロック１０４の左上隅の位置を示し得る。予測子ブロック１０４は、例えば、予測子ブロックと現在のブロックとの間のピクセル差分に基づいて現在のブロック１０２に最も厳密に一致することがわかったブロックであり得る。さらに、予測子ブロック１０４は、再構成ピクセルデータから整数ピクセル精度で形成されるか、または補間によって形成される分数ピクセル精度ブロックを表し得る。上記で説明したように、ブロックベクトル１０６は、オフセットベクトル、変位ベクトル、または動きベクトル（ＭＶ）と呼ばれることもある。ビデオデコーダ３０は、現在のＣＵを復号するために符号化された情報を利用する。
【０１３２】
[0138]  本開示の１つまたは複数の技法によれば、ブロックベクトルコーディングの効率は、イントラＢＣブロックベクトルフィールドの特性に鑑みてコーディング方式を実施することによって改善され得る。本開示の技法は、別個に、または、組み合わせて実施され得る。例えば、ビデオエンコーダ２０およびビデオデコーダ３０は、各技法を別個に実施し得るか、あるいは１つまたは複数の技法を組み合わせて実施し得る。例えば、本開示は、ブロックベクトル（ＢＶ）をより効率的にコーディングするためにいくつかの技法を提案する。
【０１３３】
[0139]  これらの技法を、ブロックベクトル１０６の水平変位成分１１２（すなわち、ＢＶ＿ｘ）を参照しながら説明するが、それらは、ブロックベクトル１０６の垂直変位成分１１０（すなわち、ＢＶ＿ｙ）に等しく適用可能であり得る。これらの技法は、１次元ブロックベクトルの成分と２次元ブロックベクトルの成分（すなわち、水平成分および垂直成分）の一方または両方との両方に使用され得る。さらに、これらの技法は、ｂ０、ｂ１、．．．、ｂｎを含むＢＶ＿ｘの２値化ストリングに言及し、ここで、ｂｉは、ストリング中のｉ番目のビンである。
【０１３４】
[0140]  いくつかの例において、シンタックス要素によって表されるブロックベクトルの成分の値は、成分の実測値であり得る。例えば、ブロックベクトルの成分の値が−７である例において、その成分の実測値は−７であり得る。いくつかの例において、シンタックス要素によって表されるブロックベクトルの成分の値は、成分の予測子（例えば、デフォルト値、成分の前の値、隣接ブロックからの成分の値）と成分の実測値との間の差に対応する成分の差分値であり得る。差分値は、ブロックベクトル差分（ＢＶＤ）と呼ばれることがある。いくつかの例において、ビデオエンコーダ２０は、成分の予測子から成分の実測値を減算することによって成分の差分値を決定し得る。同様に、いくつかの例において、ビデオデコーダ３０は、成分の予測子に成分の差分値を加算することによって成分の実測値を決定し得る。
【０１３５】
[0141]  ＢＶＤ値をコーディングするためのこれらの技法は、エンコーダ２０のエントロピー符号化ユニットによって、またはデコーダ３０のエントロピー復号ユニットによって実施され得る。他の例において、これらの技法は、エンコーダ２０の予測処理ユニットによって、またはデコーダ３０の予測処理ユニットによって実施され得る。いくつかの例において、これらの技法は、ビデオエンコーダ２０とビデオデコーダ３０とのユニットの任意の組合せによって実施され得る。例えば、ビデオエンコーダ２０とビデオデコーダ３０とが統合回路（ＩＣ）またはマイクロコントローラとして実施される例において、これらの技法は、ハードワイヤード論理であり得るＩＣまたはマイクロコントローラの１つまたは複数のユニットによって実施され得る。
【０１３６】
[0142]  ビデオエンコーダ２０またはビデオデコーダ３０などのビデオコーダは、通常のビン（例えば、ＣＡＢＡＣを使用してコーディングされたビン）と通常でないビン（例えば、バイパスモードでコーディングされたビン）とのグルーピングをもつ高次指数ゴロム（ＥＧ）を使用してＢＶＤをコーディングし得る。以下の例示的な技法を、水平ＢＶＤ成分に関して説明するが、これらの技法は、垂直成分に同様に適用可能であり得る。
【０１３７】
[0143]  この例において、ブロックベクトルの水平成分は、ＢＶｘとして示され、ＢＶｘの２値化ストリングは、ｂ0  ｂ1．．．ｂnとして示され、ここで、ｂiが、ストリング中のｉ番目のビンである。
【０１３８】
[0144]  いくつかの例において、第１のビンｂ0は、ブロックベクトルの水平成分の絶対値が０よりも大きいか否か（すなわち、ａｂｓ（ＢＶｘ）＞０であるか否かを）を示し得る。例えば、ブロックベクトルの水平成分の絶対値が０よりも大きい場合、第１のビンｂ0の値は１であり得る（すなわち、ａｂｓ（ＢＶｘ）＞０の場合、ｂ0＝１である）。同様に、ブロックベクトルの水平成分の絶対値が０よりも大きくない場合、第１のビンｂ0の値は０であり得る（すなわち、ａｂｓ（ＢＶｘ）≦０の場合、ｂ0＝０である）。いくつかの例において、第１のビンｂ0は、コンテキストをもつＣＡＢＡＣを使用して符号化され得る。いくつかの例において、水平成分のための第１のビンｂ0と垂直成分のための第１のビンｂ0とは、別個のコンテキストを有し得る。いくつかの例において、水平成分のための第１のビンｂ0と垂直成分のための第１のビンｂ0とは、同じコンテキストを共有し得る。
【０１３９】
[0145]  いくつかの例において、第２のビンｂ1は、水平成分の絶対値が、コードのセットの次数に基づくしきい値よりも大きいかどうかを示し得る。いくつかの例において、しきい値は、コードの次数だけ左シフトされた数１（例えば、１＜＜次数）であり得る。例えば、絶対値がしきい値よりも大きくない場合、第２のビンｂ1の値は０であり得る（すなわち、ａｂｓ（ＢＶｘ）≦（１＜＜次数））の場合、ｂ0＝０である）。同様に、絶対値がしきい値よりも大きい場合、第２のビンｂ1の値は１であり得る（すなわち、ａｂｓ（ＢＶｘ）＞（１＜＜次数））の場合、ｂ0＝１である）。いくつかの例において、第２のビンｂ1は、コンテキストをもつＣＡＢＡＣを使用して符号化され得る。いくつかの例において、水平成分のための第２のビンｂ1と垂直成分のための第２のビンｂ1とは、別個のコンテキストを有し得る。いくつかの例において、水平成分のための第２のビンｂ1と垂直成分のための第２のビンｂ1とは、同じコンテキストを共有し得る。
【０１４０】
[0146]  水平成分の絶対値がしきい値よりも大きくない場合（すなわち、ビンｂ1＝＝０である場合）、残りのビンは、コードのセットの次数に基づいた長さをもつ固定長コードを使用してコーディングされ得る。水平成分の絶対値がしきい値よりも大きい場合（すなわち、ビンｂ1＝＝１である場合）、残りのビンｂ2  ｂ3．．．は、ａｂｓ（ＢＶｘ）−（１＜＜次数）−１の値を表し得、バイパスモードでコードのセットを使用してコーディングされ得る。例えば、コードのセットが、次数４をもつ指数ゴロムコードのセットである場合、ａｂｓ（ＢＶｘ）−（１＜＜次数）−１の値は、次数４をもつ指数ゴロムコードのセットを使用してコーディングされ得る。いくつかの例では、指数ゴロム符号の他の次数、例えば、１、２、３、５が使用され得る。いくつかの例では、他のコード、例えば、ゴロムライスコードが使用され得る。
【０１４１】
[0147]  いくつかの例において、最後のビンは、ＢＶｘの符号を示し得る。いくつかの例において、最後のビンは、いかなるコンテキストもなしにバイパスモードで符号化され得る。
【０１４２】
[0148]  いくつかの例において、上記のプレフィックス／通常のビンについてのコンテキストは、成分にわたってまたはビンにわたってまたはその両方にわたって共有され得る。すなわち、ｉ番目のビンのためのｂiについてのコンテキストは、水平および垂直成分についてのコンテキストを共有し、すなわち、水平および垂直成分について同じコンテキストを有し得、または水平および垂直成分について異なるコンテキストを有し得る。いくつかの例において、コンテキストは、ビンにわたって共有され得、従って、ｂ0、ｂ1は、同じコンテキストを共有し得る。いくつかの例において、コンテキストは、ＢＶＤコーディングのためのビンとＨＥＶＣにおけるＭＶＤコーディングのためのビンとの間で共有され得る。
【０１４３】
[0149]  以下の表（１）〜表（３）は、本開示の１つまたは複数の技法を実施するためのＪＣＴＶＣ−Ｐ１００５に記載されているＢＶＤ技法への例示的な変更を示すシンタックステーブルである。ＪＣＴＶＣ−Ｐ１００５に対して、追加が、イタリック体でマーキングされ、削除が取り消し線によってマーキングされている。
【０１４４】
【表１】
2017523685.tif 000004
【０１４５】
【表２】
2017523685.tif 000005
【０１４６】
【表３】
2017523685.tif 000006
【０１４７】
[0150]  以下のセマンティクスは、上記のシンタックステーブルに記載されているシンタックス要素のうちのいくつかについての例示的な定義を記述する。
【０１４８】
[0151]  ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇ［ｃｏｍｐＩｄｘ]は、ブロックベクトル成分差の絶対値が０よりも大きいかどうかを指定し得る。
【０１４９】
[0152]  ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ１６＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は、ブロックベクトル成分差の絶対値が１６よりも大きいかどうかを指定し得る。ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｇｒｅａｔｅｒ１６＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は、存在しないとき、０に等しくなると推論され得る。
【０１５０】
[0153]  ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１［ｃｏｍｐＩｄｘ］に１を加算したものは、ブロックベクトル成分差の絶対値を指定し得る。ｉｎｔｒａ＿ｂｃ＿ａｂｓ＿ｂｖｄ＿ｍｉｎｕｓ１［ｃｏｍｐＩｄｘ］は、存在しないとき、−１に等しくなると推論され得る。ＢＶ−１＜＜ＥＧｏｒｄｅｒ−１
[0154]  ｉｎｔｒａ＿ｂｃ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は、ブロックベクトル成分差の符号を次のように指定し得る。ｉｎｔｒａ＿ｂｃ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］が０に等しくなる場合、対応するブロックベクトル成分差は、正値を有し得る。そうでない場合（ｉｎｔｒａ＿ｂｃ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］が１に等しくなる場合）、対応するブロックベクトル成分差は、負値を有し得る。ｉｎｔｒａ＿ｂｃ＿ｂｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は、存在しないとき、０に等しくなると推論され得る。
【０１５１】
[0155]  ブロックベクトル差分、ｃｏｍｐＩｄｘ＝０．．１についてのＢｖｄＩｎｔｒａ［ｃｏｍｐＩｄｘ］は、以下の式（２）に従ったものであり得る。
【０１５２】
【数２】
2017523685.tif 000007
【０１５３】
[0156]  表（１）〜表（３）中の記述子は、次のように定義され得る。
【０１５４】
[0157]  ａｅ（ｖ）：コンテキスト適応型の算術エントロピーコード化シンタックス要素。
【０１５５】
[0158]  ｆ（ｎ）：左ビットを最初に（左から右に）記載したｎ個のビットを使用する固定パターンビットストリング。
【０１５６】
【表４】
2017523685.tif 000008
【０１５７】
[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]  例６．  オフセットの値がしきい値から１を減じたものである、例１〜５の任意の組合せの方法。
【０１８４】
[0186]  例７．  シンタックス要素のセットの第５のシンタックス要素に基づいて、成分の最大値に基づいて成分の値が符号化されるかどうかを決定することと、成分の値が成分の最大値に基づいて符号化されることに基づいて、成分の最大値を決定することと、成分の値が、成分の最大値に基づいた長さを有する固定長コードを使用して符号化されると決定することと、固定長コードを使用して成分の値を復号することとをさらに備える、例１〜６の任意の組合せの方法。
【０１８５】
[0187]  例８．  ブロックベクトルの成分に対応する複数のシンタックス要素を受信することが、ブロックベクトルの水平成分に対応するシンタックス要素の第１のセットを受信することと、ここにおいて、水平成分が、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の水平変位を表す、ブロックベクトルの垂直成分に対応するシンタックス要素の第２のセットを受信することと、ここにおいて、垂直成分が、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の垂直変位を表す、を備える、例１〜７の任意の組合せの方法。
【０１８６】
[0188]  例９．  第１のシンタックス要素が、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを含み、本方法が、成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを復号することをさらに備える、例１〜８の任意の組合せの方法。
【０１８７】
[0189]  例１０．  第１のシンタックス要素が、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを含み、本方法が、成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを復号することをさらに備える、例１〜８の任意の組合せの方法。
【０１８８】
[0190]  例１１．  第２のシンタックス要素が、水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素とを含み、本方法が、成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素とを復号することをさらに備える、例１〜１０の任意の組合せの方法。
【０１８９】
[0191]  例１２．  第２のシンタックス要素が、水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素とを含み、本方法が、成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第２のシンタックス要素と垂直成分の第２のシンタックス要素とを復号することをさらに備える、例１〜１０の任意の組合せの方法。
【０１９０】
[0192]  例１３．  方法がワイヤレス通信デバイスによって実行可能である、ここにおいて、デバイスが、ビデオデータを記憶するように構成されるメモリと、前記メモリ中に記憶されたビデオデータを処理するための命令を実行するように構成されるプロセッサと、符号化ビデオビットストリームを受信するように構成される受信機とを備える、例１〜１２の任意の組合せの方法。
【０１９１】
[0193]  例１４．  ワイヤレス通信デバイスがセルラー電話であり、符号化ビデオビットストリームが、受信機によって受信され、セルラー通信規格に従って復調される、例１〜１３の任意の組合せの方法。
【０１９２】
[0194]  例１５．  ビデオデータをコーディングするためのデバイスであって、ビデオデータを記憶するように構成されるメモリと、例１〜１２の任意の組合せの方法を行うように構成される１つまたは複数のプロセッサとを備えるデバイス。
【０１９３】
[0195]  例１６．  ビデオデータを復号するためのデバイスであって、例１〜１２の任意の組合せの方法を行うための手段を備えるデバイス。
【０１９４】
[0196]  例１７．  実行されたとき、１つまたは複数のプロセッサアデバイスに、例１〜１２の任意の組合せの方法を行うことをさせる命令を記憶したコンピュータ可読記憶媒体。
【０１９５】
[0197]  例１８．  ビデオデータを符号化するための方法であって、ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの現在のブロックのための予測子ブロックを選択することと、ブロックベクトルの成分の絶対値が０よりも大きいか否かを示すシンタックス要素のセットの第１のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素のセットの第２のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値がしきい値よりも大きいことに基づいて、コードのセットを使用して、ブロックベクトルの成分の絶対値からコードのセットの次数に基づくオフセットを減じたものを示すシンタックス要素のセットの第３のシンタックス要素を符号化することと、ブロックベクトルの成分の絶対値が０よりも大きいことに基づいて、ブロックベクトルの成分の値が正であるのか、または負であるのかを示すシンタックス要素のセットの第４のシンタックス要素を符号化することとを少なくとも行うことによって、符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、ビデオデータの現在のブロックと予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することとを備える方法。
【０１９６】
[0198]  例１９．  ブロックベクトルの成分の絶対値がしきい値よりも大きくないことに基づいて、ブロックベクトルの成分の絶対値から１を減じたもの示すためにシンタックス要素のセットの第３のシンタックス要素を生成することと、コードのセットの次数に等しい長さを有する固定長コードを使用して第３のシンタックス要素を符号化することを決定することとをさらに備える、例１８の方法。
【０１９７】
[0199]  例２０．  コードのセットが、次数の指数ゴロムコードのセットを備える、例１８〜１９の任意の組合せの方法。
【０１９８】
[0200]  例２１．  次数が４である、例１８〜２０の任意の組合せの方法。
【０１９９】
[0201]  例２２．  しきい値の値が、式ｔｈ＝１＜＜次数に従って決定され、ここで、ｔｈが、しきい値の値であり、次数が、次数であり、＜＜が、左シフト演算である、例１８〜２１の任意の組合せの方法。
【０２００】
[0202]  例２３．  オフセットの値がしきい値から１を減じたものである、例１８〜２２の任意の組合せの方法。
【０２０１】
[0203]  例２４．  成分の最大値に基づいて成分の値を符号化すべきかどうかを決定することと、成分の最大値に基づいて成分の値を符号化することを決定することに応答して、成分の最大値に基づいて成分の値が符号化されるかどうかを示すシンタックス要素のセットの第５のシンタックス要素を生成することと、成分の最大値を決定することと、成分の最大値に基づいた長さを有する固定長コードを使用して成分の値を符号化することとをさらに備える、例１８〜２３の任意の組合せの方法。
【０２０２】
[0204]  例２５．  複数のシンタックス要素を符号化することが、ブロックベクトルの水平成分に対応する第１の複数のシンタックス要素を符号化することと、ここにおいて、水平成分が、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の水平変位を表す、ブロックベクトルの垂直成分に対応する第２の複数のシンタックス要素を符号化することと、ここにおいて、垂直成分が、ビデオデータの予測子ブロックとビデオデータの現在のブロックとの間の垂直変位を表す、を備える、例１８〜２４の任意の組合せの方法。
【０２０３】
[0205]  例２６．  第１のシンタックス要素が、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを含み、本方法が、成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを符号化することをさらに備える、例１８〜２５の任意の組合せの方法。
【０２０４】
[0206]  例２７．  第１のシンタックス要素が、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを含み、本方法が、成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、水平成分の第１のシンタックス要素と垂直成分の第１のシンタックス要素とを符号化することをさらに備える、例１８〜２６の任意の組合せの方法。
【０２０５】
[0207]  例２８．  ビデオデータを符号化するためのデバイスであって、ビデオデータを記憶するように構成されるメモリと、例１８〜２７の任意の組合せの方法を行うように構成される１つまたは複数のプロセッサとを備えるデバイス。
【０２０６】
[0208]  例２９．  ビデオデータを符号化するためのデバイスであって、例１８〜２７の任意の組合せの方法を行うための手段を備えるデバイス。
【０２０７】
[0209]  例３０．  実行されたとき、１つまたは複数のプロセッサアデバイスに、例１８〜２７の任意の組合せの方法を行うことをさせる命令を記憶したコンピュータ可読記憶媒体。
【０２０８】
[0210]  １つまたは複数の例において、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２０９】
[0211]  限定でなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０２１０】
[0212]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明した技法の実施に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様において、本明細書で説明される機能は、符号化および復号のために構成される専用のハードウェアおよび／もしくはソフトウェアモジュール内で与えられ、または複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素において完全に実施され得る。
【０２１１】
[0213]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、様々な構成要素、モジュール、またはユニットについて、開示する技法を行うように構成されるデバイスの機能的態様を強調するように説明したが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記の１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２１２】
[0214]  様々な例を説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2017523685.tif 000009
【図２】
2017523685.tif 000010
【図３】
2017523685.tif 000011
【図４】
2017523685.tif 000012
【図５】
2017523685.tif 000013
【図６】
2017523685.tif 000014
【図７】
2017523685.tif 000015
【図８】
2017523685.tif 000016
【手続補正書】
【提出日】平成29年3月13日(2017.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、前記現在のブロックと前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素のセットとを受信することと、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素の前記セットの第１のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素の前記セットの第２のシンタックス要素を復号することと、ここにおいて、前記次数が１よりも大きい、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、指数ゴロムコードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを決定するためにシンタックス要素の前記セットの第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを決定するために前記第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを決定するためにシンタックス要素の前記セットの第４のシンタックス要素を復号することと
を少なくとも行うことによって前記ブロックベクトルの前記成分の前記値を決定するためにシンタックス要素の前記セットを復号することと、
前記ブロックベクトルの前記成分の前記値に基づいて、ビデオデータの前記予測子ブロックを決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を備える方法。
【請求項２】
前記次数が４である、請求項１に記載の方法。
【請求項３】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１に記載の方法。
【請求項４】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１に記載の方法。
【請求項５】
シンタックス要素の前記セットの第５のシンタックス要素に基づいて、前記成分の最大値に基づいて前記成分の前記値が符号化されるかどうかを決定することと、
前記成分の前記値が前記成分の前記最大値に基づいて符号化されることに基づいて、
前記成分の前記最大値を決定することと、
前記成分の前記値が、前記成分の前記最大値に基づいた長さを有する固定長コードを使用して符号化されると決定することと、
前記固定長コードを使用して前記成分の前記値を復号することと
をさらに備える、請求項１に記載の方法。
【請求項６】
前記ブロックベクトルの前記成分に対応する前記複数のシンタックス要素を受信することが、
前記ブロックベクトルの水平成分に対応する前記シンタックス要素の第１のセットを受信することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する前記シンタックス要素の第２のセットを受信することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１に記載の方法。
【請求項７】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項８】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項９】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項１０】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項１１】
前記方法がワイヤレス通信デバイスによって実行可能である、ここにおいて、前記デバイスが、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリ中に記憶された前記ビデオデータを処理するための命令を実行するように構成されるプロセッサと、
前記符号化ビデオビットストリームを受信するように構成される受信機と
を備える、請求項１に記載の方法。
【請求項１２】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオビットストリームが、前記受信機によって受信され、セルラー通信規格に従って復調される、請求項１１に記載の方法。
【請求項１３】
ビデオデータを符号化するための方法であって、
ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの前記現在のブロックのための予測子ブロックを選択することと、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと、ビデオデータの前記現在のブロックと前記予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することであって、少なくとも、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示すシンタックス要素の前記セットの第１のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素の前記セットの第２のシンタックス要素を符号化することと、ここにおいて、前記次数が１よりも大きい、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、指数ゴロムコードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示すシンタックス要素の前記セットの第４のシンタックス要素を符号化することと
によって符号化することと
を備える方法。
【請求項１４】
前記次数が４である、請求項１３に記載の方法。
【請求項１５】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１３に記載の方法。
【請求項１６】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１３に記載の方法。
【請求項１７】
前記成分の最大値に基づいて前記成分の前記値を符号化すべきかどうかを決定することと、
前記成分の前記最大値に基づいて前記成分の前記値を符号化することを決定することに応答して、
前記成分の前記最大値に基づいて前記成分の前記値が符号化されるかどうかを示すシンタックス要素の前記セットの第５のシンタックス要素を生成することと、
前記成分の前記最大値を決定することと、
前記成分の前記最大値に基づいた長さを有する固定長コードを使用して前記成分の前記値を符号化することと
をさらに備える、請求項１３に記載の方法。
【請求項１８】
前記複数のシンタックス要素を符号化することが、
前記ブロックベクトルの水平成分に対応する第１の複数の前記シンタックス要素を符号化することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する第２の複数の前記シンタックス要素を符号化することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１３に記載の方法。
【請求項１９】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項１８に記載の方法。
【請求項２０】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項１８に記載の方法。
【請求項２１】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに関連するデータを記憶するように構成されるメモリと、
１つまたは複数のプロセッサであって、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ここにおいて、前記次数が１よりも大きい、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から指数ゴロムコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を行うように少なくとも前記プロセッサが構成されることによって前記ブロックベクトルの前記成分の前記値を決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を行うように構成される１つまたは複数のプロセッサと
を備えるデバイス。
【請求項２２】
前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを符号化すること
を行うように構成される、請求項２１に記載のデバイス。
【請求項２３】
ビデオデータの前記現在のブロックをレンダリングするように構成されるディスプレイ、
ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを受信すること
を行うように構成される、
をさらに備える、請求項２１に記載のデバイス。
【請求項２４】
実行されたとき、ビデオデータの現在のブロックを符号化または復号することをデバイスの１つまたは複数のプロセッサにさせる命令を記憶するコンピュータ可読記憶媒体であって、前記命令は少なくとも、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の値を決定することと、ここにおいて、前記ブロックベクトルの前記成分の前記値を決定することを前記１つまたは複数のプロセッサにさせる前記命令が、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ここにおいて、前記次数が１よりも大きい、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から指数ゴロムコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を前記デバイスの前記１つまたは複数のプロセッサにさせる命令を備える、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
によってビデオデータの現在のブロックを符号化または復号することをさせる、コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２１２
【補正方法】変更
【補正の内容】
【０２１２】
[0214]  様々な例を説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号するための方法であって、
符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、前記現在のブロックと前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素のセットとを受信することと、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素の前記セットの第１のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素の前記セットの第２のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、コードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを決定するためにシンタックス要素の前記セットの第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを決定するためにシンタックス要素の前記セットの第４のシンタックス要素を復号することと
を少なくとも行うことによって前記ブロックベクトルの前記成分の値を決定するためにシンタックス要素の前記セットを復号することと、
前記ブロックベクトルの前記成分の前記値に基づいて、ビデオデータの前記予測子ブロックを決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を備える方法。
［Ｃ２］
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを決定するために前記第３のシンタックス要素を復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
コードの前記セットが、前記次数の指数ゴロムコードのセットを備える、Ｃ１に記載の方法。
［Ｃ４］
前記次数が４である、Ｃ１に記載の方法。
［Ｃ５］
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、Ｃ１に記載の方法。
［Ｃ６］
前記オフセットの値が前記しきい値から１を減じたものである、Ｃ１に記載の方法。
［Ｃ７］
シンタックス要素の前記セットの第５のシンタックス要素に基づいて、前記成分の最大値に基づいて前記成分の前記値が符号化されるかどうかを決定することと、
前記成分の前記値が前記成分の前記最大値に基づいて符号化されることに基づいて、
前記成分の前記最大値を決定することと、
前記成分の前記値が、前記成分の前記最大値に基づいた長さを有する固定長コードを使用して符号化されると決定することと、
前記固定長コードを使用して前記成分の前記値を復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ８］
前記ブロックベクトルの前記成分に対応する前記複数のシンタックス要素を受信することが、
前記ブロックベクトルの水平成分に対応する前記シンタックス要素の第１のセットを受信することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する前記シンタックス要素の第２のセットを受信することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、Ｃ１に記載の方法。
［Ｃ９］
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、Ｃ８に記載の方法。
［Ｃ１０］
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、Ｃ８に記載の方法。
［Ｃ１１］
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、Ｃ８に記載の方法。
［Ｃ１２］
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、Ｃ８に記載の方法。
［Ｃ１３］
前記方法がワイヤレス通信デバイスによって実行可能である、ここにおいて、前記デバイスが、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリ中に記憶された前記ビデオデータを処理するための命令を実行するように構成されるプロセッサと、
前記符号化ビデオビットストリームを受信するように構成される受信機と
を備える、Ｃ１に記載の方法。
［Ｃ１４］
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオビットストリームが、前記受信機によって受信され、セルラー通信規格に従って復調される、Ｃ１３に記載の方法。
［Ｃ１５］
ビデオデータを符号化するための方法であって、
ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの前記現在のブロックのための予測子ブロックを選択することと、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと、ビデオデータの前記現在のブロックと前記予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することであって、少なくとも、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示すシンタックス要素の前記セットの第１のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素の前記セットの第２のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、コードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示すシンタックス要素の前記セットの第４のシンタックス要素を符号化することと
によって符号化することと
を備える方法。
［Ｃ１６］
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すためにシンタックス要素の前記セットの前記第３のシンタックス要素を生成することと、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化することを決定することと
をさらに備える、Ｃ１５に記載の方法。
［Ｃ１７］
コードの前記セットが、前記次数の指数ゴロムコードのセットを備える、Ｃ１５に記載の方法。
［Ｃ１８］
前記次数が４である、Ｃ１５に記載の方法。
［Ｃ１９］
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、Ｃ１５に記載の方法。
［Ｃ２０］
前記オフセットの値が前記しきい値から１を減じたものである、Ｃ１５に記載の方法。
［Ｃ２１］
前記成分の最大値に基づいて前記成分の前記値を符号化すべきかどうかを決定することと、
前記成分の前記最大値に基づいて前記成分の前記値を符号化することを決定することに応答して、
前記成分の前記最大値に基づいて前記成分の前記値が符号化されるかどうかを示すシンタックス要素の前記セットの第５のシンタックス要素を生成することと、
前記成分の前記最大値を決定することと、
前記成分の前記最大値に基づいた長さを有する固定長コードを使用して前記成分の前記値を符号化することと
をさらに備える、Ｃ１５に記載の方法。
［Ｃ２２］
前記複数のシンタックス要素を符号化することが、
前記ブロックベクトルの水平成分に対応する第１の複数の前記シンタックス要素を符号化することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する第２の複数の前記シンタックス要素を符号化することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、Ｃ１５に記載の方法。
［Ｃ２３］
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、Ｃ２２に記載の方法。
［Ｃ２４］
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、Ｃ２２に記載の方法。
［Ｃ２５］
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに関連するデータを記憶するように構成されるメモリと、
１つまたは複数のプロセッサであって、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
コードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を行うように少なくとも前記プロセッサが構成されることによって前記ブロックベクトルの前記成分の前記値を決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を行うように構成される１つまたは複数のプロセッサと
を備えるデバイス。
［Ｃ２６］
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、前記１つまたは複数のプロセッサが、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すために前記第３のシンタックス要素を決定することと
を行うようにさらに構成される、Ｃ２５に記載のデバイス。
［Ｃ２７］
前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを符号化すること
を行うように構成される、Ｃ２５に記載のデバイス。
［Ｃ２８］
ビデオデータの前記現在のブロックをレンダリングするように構成されるディスプレイ、
ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを受信すること
を行うように構成される、
をさらに備える、Ｃ２５に記載のデバイス。
［Ｃ２９］
実行されたとき、ビデオデータの現在のブロックを符号化または復号することをデバイスの１つまたは複数のプロセッサにさせる命令を記憶するコンピュータ可読記憶媒体であって、前記命令は少なくとも、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の値を決定することと、ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するように前記１つまたは複数のプロセッサにさせる前記命令が、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値がコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
コードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を前記デバイスの前記１つまたは複数のプロセッサにさせる命令を備える、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
によってビデオデータの現在のブロックを符号化または復号することをさせる、コンピュータ可読記憶媒体。
［Ｃ３０］
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、前記１つまたは複数のプロセッサに、
コードの前記セットの前記次数に等しい長さを有する固定長コードを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたもの示すために前記第３のシンタックス要素を決定することと
をさせる命令をさらに備える、Ｃ２９に記載のコンピュータ可読記憶媒体。
【手続補正書】
【提出日】平成29年3月14日(2017.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
符号化ビデオビットストリーム中で、ビデオデータの現在のブロックについて、残差ブロックと、前記現在のブロックと前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表すブロックベクトルの成分の複数のシンタックス要素のセットとを受信することと、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを決定するためにシンタックス要素の前記セットの第１のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを決定するためにシンタックス要素の前記セットの第２のシンタックス要素を復号することと、ここにおいて、前記次数が２、３、４、または５である、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、指数ゴロムコードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを決定するためにシンタックス要素の前記セットの第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを決定するために前記第３のシンタックス要素を復号することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを決定するためにシンタックス要素の前記セットの第４のシンタックス要素を復号することと
を少なくとも行うことによって前記ブロックベクトルの前記成分の前記値を決定するためにシンタックス要素の前記セットを復号することと、
前記ブロックベクトルの前記成分の前記値に基づいて、ビデオデータの前記予測子ブロックを決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を備える方法。
【請求項２】
前記次数が４である、請求項１に記載の方法。
【請求項３】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１に記載の方法。
【請求項４】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１に記載の方法。
【請求項５】
シンタックス要素の前記セットの第５のシンタックス要素に基づいて、前記成分の最大値に基づいて前記成分の前記値が符号化されるかどうかを決定することと、
前記成分の前記値が前記成分の前記最大値に基づいて符号化されることに基づいて、
前記成分の前記最大値を決定することと、
前記成分の前記値が、前記成分の前記最大値に基づいた長さを有する固定長コードを使用して符号化されると決定することと、
前記固定長コードを使用して前記成分の前記値を復号することと
をさらに備える、請求項１に記載の方法。
【請求項６】
前記ブロックベクトルの前記成分に対応する前記複数のシンタックス要素を受信することが、
前記ブロックベクトルの水平成分に対応する前記シンタックス要素の第１のセットを受信することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する前記シンタックス要素の第２のセットを受信することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１に記載の方法。
【請求項７】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項８】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項９】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項１０】
前記第２のシンタックス要素が、前記水平成分の第２のシンタックス要素と前記垂直成分の第２のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第２のシンタックス要素と前記垂直成分の前記第２のシンタックス要素とを復号することをさらに備える、請求項６に記載の方法。
【請求項１１】
前記方法がワイヤレス通信デバイスによって実行可能である、ここにおいて、前記デバイスが、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリ中に記憶された前記ビデオデータを処理するための命令を実行するように構成されるプロセッサと、
前記符号化ビデオビットストリームを受信するように構成される受信機と
を備える、請求項１に記載の方法。
【請求項１２】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオビットストリームが、前記受信機によって受信され、セルラー通信規格に従って復調される、請求項１１に記載の方法。
【請求項１３】
ビデオデータを符号化するための方法であって、
ビデオデータの現在のブロックが常駐するピクチャ中のビデオデータの複数の前に符号化されたブロックからビデオデータの前記現在のブロックのための予測子ブロックを選択することと、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと、ビデオデータの前記現在のブロックと前記予測子ブロックとの間の変位を表すブロックベクトルの成分の値を表すシンタックス要素のセットとを符号化することであって、少なくとも、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示すシンタックス要素の前記セットの第１のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示すシンタックス要素の前記セットの第２のシンタックス要素を符号化することと、ここにおいて、前記次数が２、３、４、または５である、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに基づいて、指数ゴロムコードの前記セットを使用して、前記ブロックベクトルの前記成分の前記絶対値からコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに基づいて、指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を符号化することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに基づいて、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示すシンタックス要素の前記セットの第４のシンタックス要素を符号化することと
によって符号化することと
を備える方法。
【請求項１４】
前記次数が４である、請求項１３に記載の方法。
【請求項１５】
前記しきい値の値が、式
ｔｈ＝１＜＜次数
に従って決定され、ここで、ｔｈが前記しきい値の前記値であり、次数が前記次数であり、＜＜が左シフト演算である、請求項１３に記載の方法。
【請求項１６】
前記オフセットの値が前記しきい値から１を減じたものである、請求項１３に記載の方法。
【請求項１７】
前記成分の最大値に基づいて前記成分の前記値を符号化すべきかどうかを決定することと、
前記成分の前記最大値に基づいて前記成分の前記値を符号化することを決定することに応答して、
前記成分の前記最大値に基づいて前記成分の前記値が符号化されるかどうかを示すシンタックス要素の前記セットの第５のシンタックス要素を生成することと、
前記成分の前記最大値を決定することと、
前記成分の前記最大値に基づいた長さを有する固定長コードを使用して前記成分の前記値を符号化することと
をさらに備える、請求項１３に記載の方法。
【請求項１８】
前記複数のシンタックス要素を符号化することが、
前記ブロックベクトルの水平成分に対応する第１の複数の前記シンタックス要素を符号化することと、ここにおいて、前記水平成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の水平変位を表す、
前記ブロックベクトルの垂直成分に対応する第２の複数の前記シンタックス要素を符号化することと、ここにおいて、前記垂直成分が、ビデオデータの前記予測子ブロックとビデオデータの前記現在のブロックとの間の垂直変位を表す、
を備える、請求項１３に記載の方法。
【請求項１９】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について別個のコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項１８に記載の方法。
【請求項２０】
前記第１のシンタックス要素が、前記水平成分の第１のシンタックス要素と前記垂直成分の第１のシンタックス要素とを含み、前記方法が、前記成分について同じコンテキストをもつコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、前記水平成分の前記第１のシンタックス要素と前記垂直成分の前記第１のシンタックス要素とを符号化することをさらに備える、請求項１８に記載の方法。
【請求項２１】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに関連するデータを記憶するように構成されるメモリと、
１つまたは複数のプロセッサであって、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ここにおいて、前記次数が２、３、４、または５である、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から指数ゴロムコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を行うように少なくとも前記プロセッサが構成されることによって前記ブロックベクトルの前記成分の前記値を決定することと、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
を行うように構成される１つまたは複数のプロセッサと
を備えるデバイス。
【請求項２２】
前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを符号化すること
を行うように構成される、請求項２１に記載のデバイス。
【請求項２３】
ビデオデータの前記現在のブロックをレンダリングするように構成されるディスプレイ、
ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するために、前記１つまたは複数のプロセッサが、
符号化ビデオビットストリーム中で、ビデオデータの前記現在のブロックについて、残差ブロックと前記第１のシンタックス要素と、前記第２のシンタックス要素と、前記第３のシンタックス要素と、前記第４のシンタックス要素とを受信すること
を行うように構成される、
をさらに備える、請求項２１に記載のデバイス。
【請求項２４】
実行されたとき、ビデオデータの現在のブロックを符号化または復号することをデバイスの１つまたは複数のプロセッサにさせる命令を記憶するコンピュータ可読記憶媒体であって、前記命令は少なくとも、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定することと、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の値を決定することと、ここにおいて、前記ブロックベクトルの前記成分の前記値を決定することを前記１つまたは複数のプロセッサにさせる前記命令が、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定することと、ここにおいて、前記次数が２、３、４、または５である、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から指数ゴロムコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すために前記第３のシンタックス要素を決定することと、
指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記第３のシンタックス要素を符号化または復号することを決定することと、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定することと
を前記デバイスの前記１つまたは複数のプロセッサにさせる命令を備える、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成することと
によってビデオデータの現在のブロックを符号化または復号することをさせる、コンピュータ可読記憶媒体。
【請求項２５】
前記デバイスは、ワイヤレス通信デバイスであり、前記デバイスは、
前記符号化ビデオビットストリームを受信するように構成される受信機
をさらに備える、請求項２１に記載のデバイス。
【請求項２６】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記符号化ビデオビットストリームは前記受信機によって受信され、セルラー通信規格に従って復調される、請求項２２に記載のデバイス。
【請求項２７】
前記方法は、ワイヤレス通信デバイスによって実行可能であり、前記デバイスが、
前記ビデオデータを記憶するように構成されるメモリと、
前記メモリ中に記憶された前記ビデオデータを処理するための命令を実行するように構成されるプロセッサと、
前記符号化ビデオビットストリームを送信するように構成される送信機と
を備える、請求項１３に記載の方法。
【請求項２８】
前記ワイヤレス通信デバイスがセルラー電話であり、前記符号化ビデオビットストリームが、前記送信機によって送信され、セルラー通信規格に従って復調される、請求項２７に記載の方法。
【請求項２９】
ビデオデータを符号化または復号するためのデバイスであって、
イントラブロックコピーイングの一部としてビデオデータの現在のブロックのためのブロックベクトルを決定するための手段と、ここにおいて、前記ブロックベクトルの成分が、ビデオデータの前記現在のブロックと、前記現在のブロックが常駐するピクチャ中のビデオデータの予測子ブロックとの間の変位を表す、
前記ブロックベクトルの前記成分の値を決定するための手段と、ここにおいて、前記ブロックベクトルの前記成分の前記値を決定するための手段は、
前記ブロックベクトルの前記成分の絶対値が０よりも大きいか否かを示す第１のシンタックス要素を決定するための手段と、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の前記絶対値が指数ゴロムコードのセットの次数に基づくしきい値よりも大きいか否かを示す第２のシンタックス要素を決定するための手段と、ここにおいて、前記次数が２、３、４、または５である、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きいことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から指数ゴロムコードの前記セットの前記次数に基づくオフセットを減じたものを示すシンタックス要素の前記セットの第３のシンタックス要素と、
指数ゴロムコードの前記セットを使用して前記第３のシンタックス要素を符号化または復号することと、
を決定するための手段と、
前記ブロックベクトルの前記成分の前記絶対値が前記しきい値よりも大きくないことに応答して、
前記ブロックベクトルの前記成分の前記絶対値から１を減じたものを示すための前記第３のシンタックス要素と、
指数ゴロムコードの前記セットの前記次数に等しい長さを有する固定長コードを使用して、前記第３のシンタックス要素を符号化または復号することと、
を決定するための手段と、
前記ブロックベクトルの前記成分の前記絶対値が０よりも大きいことに応答して、前記ブロックベクトルの前記成分の値が正であるのか、または負であるのかを示す第４のシンタックス要素を決定するための手段と、
を備える、
ビデオデータの前記予測子ブロックと前記残差ブロックとに基づいてビデオデータの前記現在のブロックを再構成するための手段と
を備えるデバイス。
【請求項３０】
前記オフセットの値が前記しきい値から１を減じたものである、請求項２９に記載のデバイス。
【国際調査報告】
2017523685.tif 000017
2017523685.tif 000018