(57)【要約】  ビデオデータを復号するためのデバイスは、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を示すインデックスを受け取ることと、インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロックを予測することとを行う。
2018530249.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
現在ピクチャの現在ブロックのために、前記現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加するステップであって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、ステップと、
前記マージ候補リストからマージ候補を示すインデックスを受け取るステップと、
前記インデックスが前記隣接ブロックの前記動き情報に対応する前記マージ候補を示すことに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロックを予測するステップと
を含む、方法。
【請求項２】
前記低精度動きベクトルを使用して前記現在ブロックを予測するステップが、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答する、請求項1に記載の方法。
【請求項３】
フラグを受信するステップであって、前記フラグの第1の値が、前記現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、前記フラグの第2の値が、前記ブロック用の前記動きベクトル精度が前記整数ピクセル精度または分数ピクセル精度のうちの1つであることを示す、ステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
前記低精度動きベクトルを使用して前記現在ブロックを予測するステップが、前記フラグが前記第2の値を有することにさらに応答する、請求項3に記載の方法。
【請求項５】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項1に記載の方法。
【請求項６】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項1に記載の方法。
【請求項７】
前記隣接ブロックが空間隣接ブロックを備える、請求項1に記載の方法。
【請求項８】
前記動き情報が前記現在ピクチャに対応する参照インデックスをさらに備える、請求項7に記載の方法。
【請求項９】
前記隣接ブロックが時間隣接ブロックを備える、請求項1に記載の方法。
【請求項１０】
前記現在ブロックの前記隣接ブロックの前記動き情報をマージ候補リストに追加するステップが、前記隣接ブロックの前記動きベクトルを前記マージ候補リストに追加するステップと、前記動きベクトルを前記現在ピクチャに対応する参照インデックスと関連付けるステップとを含む、請求項9に記載の方法。
【請求項１１】
前記低精度動きベクトルを使用して前記現在ブロックを予測するステップが、前記現在ピクチャ内の予測ブロックを位置決めするステップを含み、前記方法が、
残差データを受信するステップと、
前記残差データに基づいて残差ブロックを生成するステップと、
前記予測ブロックに前記残差ブロックを加算して復元ブロックを形成するステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
ワイヤレス通信デバイスの受信機において前記ビデオデータを受信するステップと、
前記ワイヤレス通信デバイスのメモリに前記ビデオデータを記憶するステップと、
前記ワイヤレス通信デバイスの1つまたは複数のプロセッサ上で前記ビデオデータを処理するステップと
をさらに含む、請求項1に記載の方法。
【請求項１３】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記ワイヤレス通信デバイスの前記受信機において前記ビデオデータを受信するステップが、ワイヤレス通信規格に従って、前記ビデオデータを備える信号を復調するステップを含む、請求項12に記載の方法。
【請求項１４】
ビデオデータを符号化する方法であって、
現在ピクチャの現在ブロックのために、前記現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加するステップであって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、ステップと、
前記マージ候補リストからマージ候補を選択するステップと、
前記選択されたマージ候補が前記隣接ブロックの前記動き情報に対応することに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロック用の予測ブロックを位置決めするステップと、
前記予測ブロックを使用して前記現在ブロックを符号化するステップと
を含む、方法。
【請求項１５】
前記低精度動きベクトルを使用して前記現在ブロックを予測するステップが、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答する、請求項14に記載の方法。
【請求項１６】
フラグを生成するステップであって、前記フラグの第1の値が、前記現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、前記フラグの第2の値が、前記ブロック用の前記動きベクトル精度が前記整数ピクセル精度または分数ピクセル精度のうちの1つであることを示す、ステップ
をさらに含む、請求項14に記載の方法。
【請求項１７】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項14に記載の方法。
【請求項１８】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項14に記載の方法。
【請求項１９】
前記低精度動きベクトルを使用して前記現在ブロックを予測するステップが、前記現在ピクチャ内の予測ブロックを位置決めするステップを含み、前記方法が、
前記予測ブロックを前記ビデオデータの対応する元のブロックと比較するステップと、
前記比較に基づいて残差データを生成するステップと、
前記残差データを符号化するステップと
をさらに含む、請求項14に記載の方法。
【請求項２０】
前記隣接ブロックが空間隣接ブロックを備える、請求項14に記載の方法。
【請求項２１】
前記動き情報が前記現在ブロックに対応する参照インデックスをさらに備える、請求項20に記載の方法。
【請求項２２】
前記隣接ブロックが時間隣接ブロックを備える、請求項14に記載の方法。
【請求項２３】
前記現在ブロックの前記隣接ブロックの前記動き情報をマージ候補リストに追加するステップが、前記隣接ブロックの前記動きベクトルを前記マージ候補リストに追加するステップと、前記動きベクトルを前記現在ピクチャに対応する参照インデックスと関連付けるステップとを含む、請求項22に記載の方法。
【請求項２４】
ワイヤレス通信デバイスのメモリに前記ビデオデータを記憶するステップと、
前記ワイヤレス通信デバイスの1つまたは複数のプロセッサ上で前記ビデオデータを処理するステップと、
前記ワイヤレス通信デバイスの送信機から前記ビデオデータを送信するステップと
をさらに含む、請求項14に記載の方法。
【請求項２５】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記ワイヤレス通信デバイスの前記送信機から前記ビデオデータを送信するステップが、ワイヤレス通信規格に従って、前記ビデオデータを備える信号を変調するステップを含む、請求項24に記載の方法。
【請求項２６】
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
現在ピクチャの現在ブロックのために、前記現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、追加することと、
前記マージ候補リストからマージ候補を示すインデックスを受け取ることと、
前記インデックスが前記隣接ブロックの前記動き情報に対応する前記マージ候補を示すことに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロックを予測することと
を行うように構成される、デバイス。
【請求項２７】
前記1つまたは複数のプロセッサが、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答して、前記低精度動きベクトルを使用して前記現在ブロックを予測するようにさらに構成される、請求項26に記載のデバイス。
【請求項２８】
前記1つまたは複数のプロセッサが、
フラグを受信することであって、前記フラグの第1の値が、前記現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、前記フラグの第2の値が、前記ブロック用の前記動きベクトル精度が前記整数ピクセル精度または分数ピクセル精度のうちの1つであることを示す、受信すること
を行うようにさらに構成される、請求項26に記載のデバイス。
【請求項２９】
前記1つまたは複数のプロセッサが、前記フラグが前記第2の値を有することにさらに応答して、前記低精度動きベクトルを使用して前記現在ブロックを予測するようにさらに構成される、請求項28に記載のデバイス。
【請求項３０】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項26に記載のデバイス。
【請求項３１】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項26に記載のデバイス。
【請求項３２】
前記隣接ブロックが空間隣接ブロックを備える、請求項26に記載のデバイス。
【請求項３３】
前記動き情報が前記現在ピクチャに対応する参照インデックスをさらに備える、請求項32に記載のデバイス。
【請求項３４】
前記隣接ブロックが時間隣接ブロックを備える、請求項26に記載のデバイス。
【請求項３５】
前記現在ブロックの前記隣接ブロックの前記動き情報をマージ候補リストに追加するために、前記1つまたは複数のプロセッサが、前記隣接ブロックの前記動きベクトルを前記マージ候補リストに追加し、前記動きベクトルを前記現在ピクチャに対応する参照インデックスと関連付けるようにさらに構成される、請求項34に記載のデバイス。
【請求項３６】
前記低精度動きベクトルを使用して前記現在ブロックを予測するために、前記1つまたは複数のプロセッサが、前記現在ピクチャ内の予測ブロックを位置決めするようにさらに構成され、前記1つまたは複数のプロセッサが、
残差データを受信することと、
前記残差データに基づいて残差ブロックを生成することと、
前記予測ブロックに前記残差ブロックを加算して復元ブロックを形成することと
を行うようにさらに構成される、請求項26に記載のデバイス。
【請求項３７】
符号化ビデオデータを受信するように構成された受信機をさらに備えるワイヤレス通信デバイスを備える、請求項26に記載のデバイス。
【請求項３８】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項37に記載のデバイス。
【請求項３９】
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
現在ピクチャの現在ブロックのために、前記現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、追加することと、
前記マージ候補リストからマージ候補を選択することと、
前記選択されたマージ候補が前記隣接ブロックの前記動き情報に対応することに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロック用の予測ブロックを位置決めすることと、
前記予測ブロックを使用して前記現在ブロックを符号化することと
を行うように構成される、デバイス。
【請求項４０】
前記1つまたは複数のプロセッサが、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答して、前記低精度動きベクトルを使用して前記現在ブロックを予測するようにさらに構成される、請求項39に記載のデバイス。
【請求項４１】
前記1つまたは複数のプロセッサが、
フラグを生成することであって、前記フラグの第1の値が、前記現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、前記フラグの第2の値が、前記ブロック用の前記動きベクトル精度が前記整数ピクセル精度または分数ピクセル精度のうちの1つであることを示す、生成すること
を行うようにさらに構成される、請求項39に記載のデバイス。
【請求項４２】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項39に記載のデバイス。
【請求項４３】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項39に記載のデバイス。
【請求項４４】
前記低精度動きベクトルを使用して前記現在ブロックを予測するために、前記1つまたは複数のプロセッサが、前記現在ピクチャ内の予測ブロックを位置決めするようにさらに構成され、前記1つまたは複数のプロセッサが、
前記予測ブロックを前記ビデオデータの対応する元のブロックと比較することと、
前記比較に基づいて残差データを生成することと、
前記残差データを符号化することと
を行うようにさらに構成される、請求項39に記載のデバイス。
【請求項４５】
前記隣接ブロックが空間隣接ブロックを備える、請求項39に記載のデバイス。
【請求項４６】
前記動き情報が前記現在ピクチャに対応する参照インデックスをさらに備える、請求項45に記載のデバイス。
【請求項４７】
前記隣接ブロックが時間隣接ブロックを備える、請求項39に記載のデバイス。
【請求項４８】
前記現在ブロックの前記隣接ブロックの前記動き情報をマージ候補リストに追加するために、前記1つまたは複数のプロセッサが、前記隣接ブロックの前記動きベクトルを前記マージ候補リストに追加し、前記動きベクトルを前記現在ピクチャに対応する参照インデックスと関連付けるようにさらに構成される、請求項47に記載のデバイス。
【請求項４９】
符号化ビデオデータを送信するように構成された送信機をさらに備えるワイヤレス通信デバイスを備える、請求項39に記載のデバイス。
【請求項５０】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記送信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を変調するように構成される、請求項49に記載のデバイス。
【請求項５１】
ビデオデータを復号するためのデバイスであって、
現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加するための手段であって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、手段と、
前記マージ候補リストからマージ候補を示すインデックスを受け取るための手段と、
前記インデックスが前記隣接ブロックの前記動き情報に対応する前記マージ候補を示すことに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロックを予測するための手段と
を備える、デバイス。
【請求項５２】
前記低精度動きベクトルを使用して前記現在ブロックを予測するための手段が、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答して、前記低精度動きベクトルを使用して前記現在ベクトルを予測する、請求項51に記載のデバイス。
【請求項５３】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項51に記載のデバイス。
【請求項５４】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項51に記載のデバイス。
【請求項５５】
前記隣接ブロックが空間隣接ブロックを備える、請求項51に記載のデバイス。
【請求項５６】
前記隣接ブロックが時間隣接ブロックを備える、請求項51に記載のデバイス。
【請求項５７】
1つまたは複数のプロセッサによって実行されると、
現在ピクチャの現在ブロックのために、前記現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、前記動き情報が前記隣接ブロックの動きベクトルを備え、前記動きベクトルが前記現在ピクチャを参照する、追加することと、
前記マージ候補リストからマージ候補を示すインデックスを受け取ることと、
前記インデックスが前記隣接ブロックの前記動き情報に対応する前記マージ候補を示すことに応答して、前記隣接ブロックの前記動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して前記現在ブロックを予測することと
を前記1つまたは複数のプロセッサに行わせる命令を記憶する、コンピュータ可読記憶媒体。
【請求項５８】
前記低精度動きベクトルを使用して前記現在ブロックを予測することが、前記動き情報のための参照ピクチャが前記現在ピクチャに対応するとの判断にさらに応答する、請求項57に記載のコンピュータ可読記憶媒体。
【請求項５９】
前記低精度動きベクトルが整数ピクセル精度の動きベクトルを備える、請求項57に記載のコンピュータ可読記憶媒体。
【請求項６０】
前記動きベクトルが分数ピクセル精度の動きベクトルを備える、請求項57に記載のコンピュータ可読記憶媒体。
【請求項６１】
前記隣接ブロックが空間隣接ブロックを備える、請求項57に記載のコンピュータ可読記憶媒体。
【請求項６２】
前記隣接ブロックが時間隣接ブロックを備える、請求項57に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年10月2日に出願された米国仮特許出願第62/236,763号の利益を主張するものである。
【０００２】
本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格、およびそのような規格の拡張によって定義された規格に記載されるものなどのビデオ圧縮技法を実施する。ビデオデバイスは、そのようなビデオ圧縮技法を実施することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することができる。
【０００４】
ビデオ圧縮技法は、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実施して、ビデオシーケンスに固有の冗長性を低減または除去する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分化される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャのイントラコーディングされた(I)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライスの中のビデオブロックは、同じピクチャにおける隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用することができる。ピクチャはフレームと呼ばれる場合があり、参照ピクチャは参照フレームと呼ばれる場合がある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロック用の予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらす場合があり、残差変換係数は、次いで量子化される場合がある。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査される場合があり、さらなる圧縮を実現するために、エントロピーコーディングが適用される場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
概して、本開示は、マージモードでコーディングされるビデオデータのブロック用のマージ候補リストにイントラブロックコピー候補を含めるための技法を記載する。
【０００７】
一例では、ビデオデータを復号する方法は、現在ピクチャの現在ブロックのために、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を示すインデックスを受け取ることと、インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロックを予測することとを含む。
【０００８】
別の例では、ビデオデータを符号化する方法は、現在ピクチャの現在ブロックのために、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を選択することと、選択されたマージ候補が隣接ブロックの動き情報に対応することに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロック用の予測ブロックを位置決めすることと、予測ブロックを使用して現在ブロックを符号化することとを含む。
【０００９】
別の例では、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、現在ピクチャの現在ブロックのために、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を示すインデックスを受け取ることと、インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロックを予測することとを行うように構成された1つまたは複数のプロセッサとを含む。
【００１０】
別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、現在ピクチャの現在ブロックのために、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を選択することと、選択されたマージ候補が隣接ブロックの動き情報に対応することに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロック用の予測ブロックを位置決めすることと、予測ブロックを使用して現在ブロックを符号化することとを行うように構成された1つまたは複数のプロセッサとを含む。
【００１１】
別の例では、ビデオデータを復号するためのデバイスは、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加するための手段であって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、手段と、マージ候補リストからマージ候補を示すインデックスを受け取るための手段と、インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロックを予測するための手段とを含む。
【００１２】
別の例では、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行されると、現在ピクチャの現在ブロックのために、現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加することであって、動き情報が隣接ブロックの動きベクトルを備え、動きベクトルが現在ピクチャを参照する、追加することと、マージ候補リストからマージ候補を示すインデックスを受け取ることと、インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して現在ブロックを予測することとを1つまたは複数のプロセッサに行わせる命令を記憶する。
【００１３】
本開示の1つまたは複数の例の詳細が、添付の図面および下記の説明に記載されている。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１４】
【図１】本開示において記載される技法を利用することができる例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】例示的なイントラブロックコピー(IBC)技法を示す概念図である。
【図３】IBC参照領域の一例を示す図である。
【図４】現在CTBの復号の開始前に現在CTB用のIBCパディングされた参照領域を生成する一例を示す図である。
【図５】本開示において記載される技法を実施することができる例示的なビデオエンコーダを示すブロック図である。
【図６】コーディングユニット(CU)およびCUに関連付けられた例示的なソース位置を示す概念図である。
【図７】例示的な候補リスト構築動作を示すフローチャートである。
【図８】本開示において記載される技法を実施することができる例示的なビデオデコーダを示すブロック図である。
【図９】本開示の1つまたは複数の技法による、ビデオエンコーダの例示的な動作を示すフローチャートである。
【図１０】本開示の1つまたは複数の技法による、ビデオデコーダの例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
最近開発された高効率ビデオコーディング(HEVC)規格を含む様々なビデオコーディング規格は、ビデオブロック用の予測コーディングモードを含み、予測コーディングモードでは、現在コーディングされている(すなわち、符号化または復号されている)ブロックが、ビデオデータのすでにコーディングされたブロックに基づいて予測される。イントラ予測モードでは、現在ブロックは、現在ブロックと同じピクチャ内の1つまたは複数の以前コーディングされた隣接ブロックに基づいて予測され、インター予測モードでは、現在ブロックは、異なるピクチャ内のすでにコーディングされたブロックに基づいて予測される。インター予測モードでは、予測ブロックとして使用するために以前コーディングされたフレームのブロックを特定するプロセスは、動き推定と呼ばれるときがあり、それは概してビデオエンコーダによって実施され、予測ブロックを識別し取り出すプロセスは、動き補償と呼ばれるときがあり、それはビデオエンコーダとビデオデコーダの両方によって実施される。
【００１６】
ビデオエンコーダは、通常、複数のコーディングシナリオを使用してビデオをコーディングすること、および望ましいレート-ひずみトレードオフを作成するコーディングシナリオを識別することにより、ビデオデータのシーケンスをどのようにコーディングするかを決定する。特定のビデオブロックのためのイントラ予測コーディングシナリオをテストするとき、ビデオエンコーダは、通常、ピクセルの隣接行(すなわち、コーディングされているブロックの真上のピクセルの行)をテストし、ピクセルの隣接列(すなわち、コーディングされているブロックのすぐ左のピクセルの列)をテストする。対照的に、インター予測シナリオをテストするとき、ビデオエンコーダは、通常、はるかに大きい探索エリア内で候補予測ブロックを識別し、探索エリアは、ビデオデータの以前コーディングされたフレーム内のビデオブロックに対応する。
【００１７】
テキスト、シンボルまたは繰返しパターンを含むビデオ画像などの、ある特定のタイプのビデオ画像の場合、コーディング利得は、イントラ動き補償(IMC)モードと呼ばれることもある、イントラブロックコピー(IBC)モードを使用することにより、イントラ予測およびインター予測と比較して実現することができる。様々なコーディング規格の開発において、元はIMCモードという用語が使用されたが、後にIBCモードに修正された。IBCモードでは、ビデオエンコーダは、イントラ予測モードにおけるように、コーディングされているブロックと同じフレームまたはピクチャ内の予測ブロックを探索するが、ビデオエンコーダは、ピクセルの隣接する行および列だけではなく、より幅広い探索エリアを探索する。
【００１８】
IBCモードでは、ビデオエンコーダは、予測されているブロックと同じフレームまたはピクチャ内の予測ブロックを識別するために、動きベクトルまたはブロックベクトルと呼ばれることもあるオフセットベクトルを特定することができる。オフセットベクトルは、たとえば、x成分およびy成分を含み、x成分は、予測されているビデオブロックと予測ブロックとの間の水平変位を識別し、y成分は、予測されているビデオブロックと予測ブロックとの間の垂直変位を識別する。ビデオエンコーダは、符号化ビットストリーム内で、特定されたオフセットベクトルを通知し、その結果、ビデオデコーダは、符号化ビットストリームを復号するとき、ビデオエンコーダによって選択された同じ予測ブロックを識別することができる。
【００１９】
本開示の態様は、候補リストを利用する、マージモードおよび/または高度動きベクトル予測(AMVP)などの、様々なコーディングプロセスのための候補導出および新しい候補の追加の簡略化に関する。候補リストは、本明細書では動きベクトル候補リストとも呼ばれ、マージモードを参照するとき、マージ候補リストまたはマージリストと呼ばれる場合もある。下記でより詳細に説明されるように、候補リストは、IBCとインター予測の両方の候補を含む場合がある。本開示で使用される動き情報という用語は、両方の典型的なインター予測動き情報を含む場合があるが、ブロックベクトルなどのIBC情報を含む場合もある。
【００２０】
ビデオエンコーダがインター予測またはIBCを実施するとき、ビデオエンコーダは、PUについての動き情報をシグナリングすることができる。PUの動き情報には、たとえば、参照ピクチャインデックス、動きベクトル、および予測方向インジケータが含まれる場合がある。IBCのいくつかの実装形態では、IBC情報をシグナリングする態様は、インター予測シグナリングの様々な態様と統合される場合がある。一例として、マージモードシグナリングおよびAMVPモードシグナリングは、IBC候補を含むように修正される場合がある。
【００２１】
PUの動き情報を表すために必要なビット数を低減するために、ビデオエンコーダは、マージモードまたはAMVPプロセスに従って、PUの各々についての候補リストを生成することができる。PU用の候補リスト内の各候補は、動き情報を示すことができる。候補リスト内の候補のうちのいくつかによって示される動き情報は、他のPUの動き情報に基づく場合がある。たとえば、HEVCマージモードの場合、5つの空間候補位置および1つの時間候補(すなわち、時間隣接候補)位置が存在する場合がある。いくつか例では、ビデオエンコーダは、すでに決定された候補からの部分的な動きベクトルを組み合わせること、候補を修正すること、または、単に候補としてゼロ動きベクトルを挿入することによって追加候補を生成することができる。これらの追加候補は、元の候補であるとは考えられず、本開示では仮想候補と呼ばれる場合がある。
【００２２】
本開示の技法は、一般に、ビデオエンコーダにおいて候補リストを生成するための技法、およびビデオデコーダにおいて同じ候補リストを生成するための技法に関する。ビデオエンコーダおよびビデオデコーダは、候補リストを構築するための同じ技法を実施することにより、同じ候補リストを生成することができる。たとえば、ビデオエンコーダとビデオデコーダの両方は、同じ数の候補(たとえば、マージモード用の5つまたは6つの候補、およびAMVPモード用の2つまたは3つの候補)を有するリストを構築し、リストに候補を追加するための同じ意思決定基準を使用することができる。候補リスト生成のためのいくつかの技法は、ビデオエンコーダまたはビデオデコーダに関して本開示において記載される場合があるが、別段に記載されていない限り、技法は、一般に、ビデオエンコーダまたはビデオデコーダのうちの他方にも等しく適用可能であると理解されるべきである。
【００２３】
CUのPU用の候補リストを生成した後、ビデオエンコーダは、候補リストから候補を選択し、ビットストリーム内に候補インデックスを出力することができる。選択された候補は、コーディングされている対象PUと最も厳密に一致する予測ブロックを指す動きベクトル、またはIBCの場合ブロックベクトルを有する候補であり得る。候補インデックスは、候補リスト内の選択された候補の位置を示すことができる。ビデオエンコーダは、PUの動き情報によって示された参照ブロックに基づいて、PU用の予測ビデオブロックを生成することもできる。PUの動き情報は、選択された候補によって示される動き情報に基づいて決定可能であり得る。たとえば、マージモードでは、PUの動き情報は、選択された候補によって示される動き情報と同じ場合がある。AMVPモードでは、PUの動き情報は、PUの動きベクトル差分(またはIBCの場合のブロックベクトル差分)および選択された候補によって示される動き情報に基づいて決定される場合がある。ビデオエンコーダは、CUのPUの予測ビデオブロックおよびCUの元のビデオブロックに基づいて、CU用の1つまたは複数の残差ビデオブロックを生成することができる。ビデオエンコーダは、次いで、1つまたは複数の残差ビデオブロックを符号化し、ビットストリーム内に出力することができる。
【００２４】
ビットストリームは、PU用の候補リスト内の選択された候補を識別するデータを含む場合がある。ビデオデコーダは、PUの候補リスト内の選択された候補によって示される動き情報に基づいて、PUの動き情報を決定することができる。ビデオデコーダは、PUの動き情報に基づいて、PU用の1つまたは複数の参照ブロックを識別することができる。PUの1つまたは複数の参照ブロックを識別した後、ビデオデコーダは、PUの1つまたは複数の参照ブロックに基づいて、PU用の予測ビデオブロックを生成することができる。ビデオデコーダは、CUのPU用の予測ビデオブロックおよびCU用の1つまたは複数の残差ビデオブロックに基づいて、CU用のビデオブロックを復元することができる。
【００２５】
説明を簡単にするために、本開示は、CUまたはPUとの様々な空間関係を有するものとして、位置またはビデオブロックを記述する場合がある。そのような記述は、位置またはビデオブロックが、CUまたはPUに関連付けられたビデオブロックに対する様々な空間関係を有することを意味すると解釈される場合がある。さらに、本開示は、ビデオコーダ(すなわち、ビデオエンコーダまたはビデオデコーダ)が現在コーディングしているPUを、現在PUとして参照する場合がある。本開示は、ビデオコーダが現在コーディングしているCUを、現在CUとして参照する場合がある。本開示は、ビデオコーダが現在コーディングしているピクチャを、現在ピクチャとして参照する場合がある。
【００２６】
添付の図面は例を示す。添付の図面において参照番号によって示される要素は、以下の説明において同様の参照番号によって示される要素に対応する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名称を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは類似のタイプの異なる要素を指すために使用されるにすぎない。
【００２７】
図1は、IBCモードでブロックをコーディングするための技法を含む、本開示において記載される技法を利用することができる、例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されたように、システム10は、後で宛先デバイス14によって復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信用に装備される場合がある。
【００２８】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするために、通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成する場合がある。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
【００２９】
代替として、符号化データは、出力インターフェース22からストレージデバイス32に出力される場合がある。同様に、符号化データは、入力インターフェースによってストレージデバイス32からアクセスされる場合がある。ストレージデバイス32は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または、符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された、または局所的にアクセスされるデータ記憶媒体のうちのいずれかを含む場合がある。さらなる一例では、ストレージデバイス32は、ソースデバイス12によって生成された符号化ビデオを保持することができる、ファイルサーバまたは別の中間ストレージデバイスに対応する場がある。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス32からの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を介して、符号化ビデオデータにアクセスすることができる。これには、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せが含まれる場合がある。ストレージデバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３０】
本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途などの、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【００３１】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む場合がある。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含む場合がある。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成する場合がある。しかしながら、本開示において記載される技法は、ビデオコーディング全般に適用可能な場合があり、ワイヤレス用途および/または有線用途に適用される場合がある。
【００３２】
キャプチャされたビデオ、以前キャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信される場合がある。符号化ビデオデータは、同様に(または、代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、ストレージデバイス32に記憶される場合がある。
【００３３】
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス34とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含む場合がある。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信された、またはストレージデバイス32に供給された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含む場合がある。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体に記憶された、またはファイルサーバに記憶された符号化ビデオデータとともに含まれる場合がある。
【００３４】
ディスプレイデバイス34は、宛先デバイス14と統合されるか、または宛先デバイス14の外部にあってもよい。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、また外部ディスプレイデバイスとインターフェースするように構成される場合もある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス34は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備える場合がある。
【００３５】
ビデオエンコーダ20およびビデオデコーダ30は、1つまたは複数のビデオコーディング規格に従って動作することができる。ビデオコーディング規格には、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ならびにそのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む、(ISO/IEC MPEG-4 AVCとも呼ばれる)ITU-T H.264が含まれる。MVCの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU-T勧告H.264、2010年3月に記載されている。
【００３６】
加えて、新しく開発されたビデオコーディング規格、すなわち、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって開発された高効率ビデオコーディング(HEVC)が存在する。HEVCの最新ドラフトは、phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。HEVC規格はまた、両方とも「High efficiency video coding」と題し、両方とも2014年10月に公開された、勧告ITU-T H.265および国際規格ISO/IEC 23008-2において一緒に提示されている。
【００３７】
動き付きのテキストおよびグラフィックスなどのスクリーンコンテンツ素材用の新しいコーディングツールも現在開発中である。これらの新しいコーディングツールは、H.265/HEVCスクリーンコンテンツコーディング(SCC)拡張などの、HEVCに対する拡張において実装される場合がある。SCCワーキングドラフト(SCC WD)、JCTVC-U1005は、http://phenix.int-evry.fr/jct/doc_end_user/documents/21_Warsaw/wg11/JCTVC-U1005-v1.zipにおいて入手可能である。これらの新しいコーディングツールも、HEVCに対する後継規格において実装される場合がある。
【００３８】
本開示は、全体的に、最近確定されたHEVC仕様テキストを、HEVCバージョン1またはベースHEVCとして参照する。範囲拡張仕様は、HEVCのバージョン2となる場合がある。動きベクトル予測などの多くのコーディングツールに関して、HEVCバージョン1または範囲拡張仕様は技術的に同様である。したがって、本開示がHEVCバージョン1に対する変更を記載するときはいつでも、全体的にベースHEVC仕様プラスいくつかの追加コーディングツールを含む範囲拡張仕様にも、同じ変更が適用される場合がある。さらに、HEVCバージョン1のモジュールがHEVC範囲拡張を実装するデコーダに組み込まれる場合もあることが、全体的に想定され得る。
【００３９】
ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従って、ビデオデータを符号化するように構成される場合があると一般的に考えられる。同様に、宛先デバイス14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従って、ビデオデータを復号するように構成される場合があるとも一般的に考えられる。
【００４０】
図1に示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびオーディオデコーダと一体化される場合があり、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【００４１】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアに実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいてその命令を実行して、本開示の技法を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる場合があり、これらのいずれも、それぞれのデバイス内で複合エンコーダ/デコーダ(CODEC)の一部として統合される場合がある。
【００４２】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれる場合もある。ピクチャは、SL、SCb、およびSCrと表記される3つのサンプルアレイを含む場合がある。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の事例では、ピクチャはモノクロームの場合があり、ルーマサンプルのアレイしか含まない場合がある。
【００４３】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに大まかに類似する場合がある。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含む場合がある。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含む場合がある。
【００４４】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で4分木区分化を再帰的に実行して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、CUは、単一のコーディングブロック、およびそのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備える場合がある。
【００４５】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分化することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を備える場合がある。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロック、およびその予測ブロックを予測するために使用されるシンタックス構造を備える場合がある。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック用の予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成することができる。
【００４６】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PU用の予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。
【００４７】
ビデオエンコーダ20がCUの1つまたは複数のPU用の予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CU用のルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック内の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルと、CUの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CU用のCb残差ブロックを生成することができる。CUのCb残差ブロックの中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロックの中の対応するサンプルとの間の差分を示すことができる。ビデオエンコーダ20は、CU用のCr残差ブロックを生成することもできる。CUのCr残差ブロックの中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロックの中の対応するサンプルとの間の差分を示すことができる。
【００４８】
さらに、ビデオエンコーダ20は、4分木区分化を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、およびそれらの変換ブロックサンプルを変換するために使用されるシンタックス構造を備える場合がある。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられる場合がある。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を備える場合がある。
【００４９】
ビデオエンコーダ20は、TUのルーマ変換ブロックに1つまたは複数の変換を適用して、TU用のルーマ係数ブロックを生成することができる。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TU用のCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TU用のCr係数ブロックを生成することができる。
【００５０】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ減らすために変換係数が量子化され、さらなる圧縮をもたらすプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実施することができる。
【００５１】
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力することができる。ビットストリームは、NALユニットのシーケンスを備える場合がある。NALユニットは、NALユニット内のデータのタイプの指示と、必要に応じてエミュレーション防止ビットとともに組み入れられたRBSPの形態でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0個のビットを含む。
【００５２】
様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはPPS用のRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIメッセージ用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれる場合がある。
【００５３】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを構文解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを復元することができる。ビデオデータを復元するプロセスは、全体的に、ビデオエンコーダ20によって実施されるプロセスの逆であり得る。加えて、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックを逆量子化することができる。ビデオデコーダ30は、係数ブロックに対して逆変換を実施して、現在CUのTUに関連付けられた変換ブロックを復元することができる。ビデオデコーダ30は、現在CUのPUの予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを復元することができる。ピクチャのCUごとにコーディングブロックを復元することによって、ビデオデコーダ30はピクチャを復元することができる。
【００５４】
図2は、IBCモードの概念図を示す。ビデオエンコーダ20およびビデオデコーダ30は、たとえば、IBCモードを使用してビデオデータのブロックを符号化および復号するように構成される場合がある。リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動インフォテインメント、クラウドコンピューティングなどの多くの適用例が人々の日常生活における常套手段になりつつあり、そのようなコンテンツをコーディングするときのコーディング効率は、IBCモードの使用によって改善される場合がある。図1のシステム10は、これらの適用例のいずれかを実行するように構成されたデバイスを表すことができる。これらの適用例におけるビデオコンテンツは、しばしば、自然なコンテンツ、テキスト、人工グラフィックスなどの組合せである。ビデオフレームのテキストおよび人工グラフィックスの領域では、(文字、アイコン、シンボルなどの)繰返しパターンがしばしば存在する。上記で紹介されたように、IBCは、JCT-VC M0350において報告されたように、この種類の冗長性を除去し、イントラフレームコーディング効率を潜在的に改善することを可能にする専用の技法である。図2に示されたように、IBCを使用するCUの場合、予測信号は、同じフレーム内ですでに復元された領域から取得される。最終的に、現在CUから変位された予測信号の位置を示すオフセットベクトルは、残差信号と一緒に符号化される。
【００５５】
たとえば、図2は、たとえば、本開示の技法によるIBCモードに従って、本開示による、同じピクチャ内のビデオデータの予測ブロックからビデオデータのブロックのイントラ予測用のモードに従って、現在ピクチャ103内のビデオデータの現在ブロック102を予測するための例示的な技法を示す。図2は、現在ピクチャ103内のビデオデータの予測ブロック104を示す。ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、本開示の技法によるIBCモードに従って、予測ビデオブロック104を使用して現在ビデオブロック102を予測することができる。
【００５６】
ビデオエンコーダ20は、ビデオデータの以前復元されたブロックのセットから、現在ビデオブロック102を予測するための予測ビデオブロック104を選択する。ビデオエンコーダ20は、符号化ビデオビットストリームにも含まれるビデオデータを逆量子化および逆変換し、得られた残差ブロックを、ビデオデータの復元されたブロックを予測するために使用される予測ブロックと加算することによってビデオデータのブロックを復元する。図2の例では、ピクチャ103内の対象領域108は、「対象エリア」または「ラスタエリア」と呼ばれる場合もあり、以前復元されたビデオブロックのセットを含む。ビデオエンコーダ20は、下記でより詳細に記載されるように、様々な方法でピクチャ103内の対象領域108を定義することができる。ビデオエンコーダ20は、対象領域108内の様々なビデオブロックに基づいて現在ビデオブロック102を予測およびコーディングする相対的な効率および精度の分析に基づいて、対象領域108内のビデオブロックの中から現在ビデオブロック102を予測するように、予測ビデオブロック104を選択することができる。
【００５７】
対象領域108は、本開示ではIBC予測領域と呼ばれる場合もある。本開示は、対象領域108にどのブロックが含まれるかを修正することができる、様々な技法を記載する。したがって、本開示の技法を実施するとき、対象領域108のサイズおよび形状は、図2の例に示されたサイズおよび形状とは異なる場合がある。
【００５８】
ビデオエンコーダ20は、現在ビデオブロック102に対する予測ビデオブロック104の位置または変位を表す2次元ベクトル106を特定する。2次元ベクトル106は、オフセットベクトルの一例であり、現在ビデオブロック102に対する予測ビデオブロック104の水平変位および垂直変位をそれぞれ表す、水平変位成分112および垂直変位成分110を含む。ビデオエンコーダ20は、符号化ビデオビットストリーム内の、2次元ベクトル106を識別または定義する、たとえば、水平変位成分112および垂直変位成分110を定義する、1つまたは複数のシンタックス要素を含む場合がある。ビデオデコーダ30は、1つまたは複数のシンタックス要素を復号して2次元ベクトル106を特定し、特定されたベクトルを使用して現在ビデオブロック102用の予測ビデオブロック104を識別することができる。
【００５９】
現在ビデオブロック102は、CU、またはCUのPUであり得る。いくつかの例では、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、IBCに従って予測されたCUをいくつかのPUに分割することができる。そのような例では、ビデオコーダは、CUのPUの各々のために、それぞれの(たとえば、異なる)2次元ベクトル106を特定することができる。たとえば、ビデオコーダは、2N×2NのCUを2つの2N×NのPU、2つのN×2NのPU、または4つのN×NのPUに分割することができる。他の例として、ビデオコーダは、2N×2NのCUを((N/2)×N+(3N/2)×N)のPU、((3N/2)×N+(N/2)×N)のPU、(N×(N/2)+N×(3N/2))のPU、(N×(3N/2)+N×(N/2))のPU、4つの(N/2)×2NのPU、または4つの2N×(N/2)のPUに分割することができる。いくつかの例では、ビデオコーダは、2N×2NのPUを使用して2N×2NのCUを予測することができる。
【００６０】
現在ビデオブロック102は、ルーマビデオブロック(たとえば、ルーマ成分)、およびルーマビデオブロックに対応するクロマビデオブロック(たとえば、クロマ成分)を含む。いくつかの例では、ビデオエンコーダ20は、ルーマビデオブロック用の2次元ベクトル106を定義する1つまたは複数のシンタックス要素のみを、符号化ビデオビットストリーム内に符号化することができる。そのような例では、ビデオデコーダ30は、ルーマブロック用にシグナリングされた2次元ベクトルに基づいて、ルーマブロックに対応する1つまたは複数のクロマブロックの各々のための2次元ベクトル106を導出することができる。本開示に記載された技法では、1つまたは複数のクロマブロックのための2次元ベクトルの導出において、ビデオデコーダ30は、ルーマブロック用の2次元ベクトルがクロマサンプル内のサブピクセル位置を指す場合、ルーマブロック用の2次元ベクトルを修正することができる。
【００６１】
色フォーマット、たとえば色サンプリングフォーマットまたはクロマサンプリングフォーマットに応じて、ビデオコーダは、ルーマビデオブロックに対して、対応するクロマビデオブロックをダウンサンプリングすることができる。色フォーマット4:4:4はダウンサンプリングを含まず、クロマブロックがルーマブロックと同じ数のサンプルを水平方向および垂直方向に含むことを意味する。色フォーマット4:2:2は水平方向にダウンサンプリングされ、ルーマブロックに対して、クロマブロック内で水平方向に半数のサンプルが存在することを意味する。色フォーマット4:2:0は水平方向および垂直方向にダウンサンプリングされ、ルーマブロックに対して、クロマブロック内で水平方向および垂直方向に半数のサンプルが存在することを意味する。
【００６２】
ビデオコーダが、対応するルーマブロック用のベクトル106に基づいてクロマビデオブロック用のベクトル106を特定する例では、ビデオコーダはルーマベクトルを修正する必要があり得る。たとえば、ルーマベクトル106が整数解像度を有し、水平変位成分112および/または垂直変位成分110が奇数の数のピクセルであり、色フォーマットが4:2:2または4:2:0である場合、変換されたルーマベクトルは、対応するクロマブロック内の整数ピクセル位置を指さない場合がある。そのような例では、ビデオコーダは、ルーマベクトルを、対応するクロマブロックを予測するクロマベクトルとして使用するためにスケーリングすることができる。
【００６３】
図2は、IBCモードでコーディングされている現在CUを示す。現在CU用の予測ブロックは、探索領域から取得される場合がある。探索領域は、現在CUと同じフレームからすでにコーディングされたブロックを含む。たとえば、フレームがラスタ走査順序(すなわち、左から右および上から下)でコーディングされていると仮定すると、図2に示されたように、フレームのすでにコーディングされたブロックは、現在CUの左および上にあるブロックに対応する。いくつかの例では、探索領域は、フレーム内のすでにコーディングされたブロックのすべてを含む場合があるが、他の例では、探索領域は、すでにコーディングされたブロックのすべてより少ないブロックを含む場合がある。図2のオフセットベクトルは、動きベクトルまたは予測ベクトルと呼ばれることがあり、現在CUの左上ピクセルと(図2において予測信号と標示された)予測ブロックの左上ピクセルとの間の差分を識別する。したがって、符号化ビデオビットストリーム内のオフセットベクトルをシグナリングすることにより、ビデオデコーダは、現在CUがIBCモードでコーディングされるとき、現在CU用の予測ブロックを識別することができる。
【００６４】
IBCは、HEVCに対するSCC拡張を含む、SCCの様々な実装形態に含まれている。IBCの一例が図2に関して上述され、そこでは、現在CU/PUは現在ピクチャ/スライスのすでに復号されたブロックから予測される。IBCでは、予測ブロック(たとえば、図2のブロック104)は、ループフィルタリングされていない、たとえば、デブロックフィルタリングまたはSAOフィルタリングされていない復元ブロックであり得る。
【００６５】
SCCの現在の実装形態では、ブロックベクトル予測子は、各CTBの最初に(-w、0)に設定され、ここで、wはCUの幅に相当する。そのようなブロックベクトル予測子は、それがIBCモードを用いてコーディングされる場合、最新のコード化CU/PUのうちの1つになるように更新される。CU/PUがIBCを用いてコーディングされない場合、ブロックベクトル予測子は変更されないままである。ブロックベクトル予測の後、HEVC内などのMV差分(MVD)コーディング方法を使用して、ブロックベクトルの差分が符号化される。
【００６６】
IBCの現在の実装形態は、CUレベルとPUレベルの両方におけるIBCコーディングを可能にする。PUレベルのIBCの場合、2N×NおよびN×2NのPU区分化がすべてのCUサイズに対してサポートされる。加えて、CUが最小のCUであるとき、N×NのPU区分化がサポートされる。
【００６７】
本開示は、イントラブロックコピーマージ候補のハンドリングおよび現在CTU内の利用できないIBC参照領域のパディングに関する技法を含む、IBCの様々な態様に関する技法を記載する。下記で、本開示は、現在のSCC WDにおけるいくつかの観察された潜在的な問題を説明し、これらの問題に対処する潜在的な解決策を紹介する。
【００６８】
潜在的な問題の第1の例は、IBCマージ候補に関する。現在のSCC WDでは、IBCルーマブロックベクトルは、整数の予測精度に限定される。したがって、IBCブロックのいかなるブロックベクトルにも適用されるルーマ補間は存在しない。ブロックベクトルは、マージモードまたはAMVPモードから導出される場合がある。マージモードの場合、マージ候補は、分数ピクセル精度を有するインター予測ブロックからであり得る。そのような候補は、IBCブロックに使用することができない。現在のSCC WDは、その概念を破る、IBCブロックに対するこれらの候補の使用を可能にする。
【００６９】
潜在的な問題の第2の例は、現在CTU内の利用できないIBC参照領域のパディングに関する。現在のSCC WDでは、図3に示されたように、IBC予測領域は波面並列処理(WPP)領域に続く。
【００７０】
図3は、現在CTUの一例を示す。CTU120は、たとえば、スライス、タイル、またはピクチャのうちの1つまたは複数内にある。CTU120は、現在コーディングされているブロックである現在ブロック122を含む。CTUは、グローバル探索領域124およびローカル探索領域126も含み、それらの両方とも以前復号されたブロックを含む。グローバル探索領域124およびローカル探索領域126は、まとめてIBC参照領域を形成する。CTU120は、参照に利用可能でない領域も含む。参照に利用可能でない領域には、たとえば、まだコーディングされていないブロックが含まれる。
【００７１】
図3において見られるように、現在CTU内のIBC参照領域はすでに復号された領域に限定され、それにより、IBC参照領域が削減される。この問題に対処し、参照領域のサイズを増やすために、過去に様々な技法が提案されている。たとえば、1つの提案された技法は、定数値(たとえば、1<<BitDepth)などを使用して利用できない領域をパディングすることに関与した。この技法は、しかしながら、効率的でない場合がある。
【００７２】
本開示は、上記で紹介された問題に対処することができるいくつかの技法を記載する。本明細書に記載される様々な技法は、単独で、または他と組み合わせて一緒に適用することができる。
【００７３】
上記で説明された第1の問題に潜在的に対処するために、本開示は、マージ候補がイントラブロックコピーモードに対応する(すなわち、参照ピクチャが現在ピクチャと同じである)ときにマージベクトルを丸めるための技法を記載する。このコンテキストにおける丸めという用語は、分数ピクセル精度のブロックベクトルを整数ピクセル精度のブロックベクトルに変換することを意味する。これを実現する1つの例示的な方法は、ベクトルを2だけ右シフトし、次いで2だけ左シフトすることによる。いくつかの例では、右シフトする前にオフセットが加算される場合がある。
【００７４】
既存のSCC WDテキストに対する例示的な修正が下記に記載され、イタリックは既存のSCC WDテキストに対して提案された付加を表す。
8.5.3.2.2:マージモードの場合のルーマ動きベクトルのための導出プロセス
以下の割当ては、Nがマージ候補リストmergeCandList(N=mergeCandList[merge_idx[xOrigP][yOrigP]])内の位置merge_idx[xOrigP][yOrigP]にある候補であり、Xが0または1によって交換される場合に行われる。
refIdxLX=refIdxLXN                                 (8-122)
predFlagLX=predFlagLXN                            (8-123)
- use_integer_mv_flagが0に等しく、参照ピクチャが現在ピクチャでないとき
mvLX[0]=mvLXN[0]                                  (8-124)
mvLX[1]=mvLXN[1]                                  (8-125)
- そうでない(use_integer_mv_flagが1に等しく、または参照ピクチャが現在ピクチャである)場合
mvLX[0]=(mvLXN[0]>>2)<<2                         (8-126)
mvLX[1]=(mvLXN[1]>>2)<<2                         (8-127)
【００７５】
セクション8.5.3.2.2において上記に示されたように、スライスレベルフラグuse_integer_mv_flagが第1の値(たとえば、上記の例では1)に設定されたとき、現在ブロックに対する動きベクトル予測は整数ピクセル精度でなければならない。use_integer_mv_flagが第2の値(たとえば、上記の例では0)に設定されたとき、ブロックに対する動きベクトル予測は、整数ピクセル精度または分数ピクセル精度のいずれかであってよい。しかしながら、参照ピクチャが現在ピクチャである場合、動きベクトルは、use_integer_mv_flagの値が第2の値に設定された場合でも整数ピクセル精度に丸められる。
【００７６】
図4は、現在コーディングされているCTBである現在CTB132の一例を示す。CTB132は、すでにコーディングされている左CTB134の右側にある。上記で説明された第2の問題に潜在的に対処するために、本開示は、現在CTB(たとえば、CTB132)を左CTB(たとえば、左CTB134)からの復号サンプルでパディングする技法を紹介する。図4は、現在CTB132の復号の開始前に現在CTB132用のIBCパディングされた参照領域を生成する一例を示す。図4に示されたように、現在CTB132の復号の開始前に、左CTB134から復号されたフィルタリングされていないサンプルをコピーすることにより、現在CTB132に対応する参照サンプルが生成される。
【００７７】
現在CTB132内のパディングされた領域からの予測を可能にするために、一例では、本開示は以下の制限を取り除くことを提案する。
-  以下の条件のうち1つまたは両方は真でなければならない。
-  (mvLX[0]>>2)+nPbW+xB1+offsetXの値が0以下である。
-  (mvLX[1]>>2)+nPbH+yB1+offsetYの値が0以下である。
【００７８】
非4:4:4クロマフォーマットで動作するとき、クロマブロックベクトルに対する補間は可能である。この制約は、SCC WDにおける以下の制約によってさらに維持される。
-  以下の条件は真でなければならない。
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY
【００７９】
図5は、本開示において記載されるIBCコーディング技法を実施することができる例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長性を低減または除去するために時間予測に依存する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指す場合がある。
【００８０】
図5の例では、ビデオエンコーダ20は、ビデオデータメモリ40と、予測処理ユニット41と、復号ピクチャバッファ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、区分化ユニット35と、動き推定ユニット42と、動き補償ユニット44と、IBCユニット48と、イントラ予測処理ユニット46とを含む。ビデオブロック復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。加算器62と復号ピクチャバッファ64との間に、ループ内フィルタ(図示せず)が配置される場合がある。
【００８１】
様々な例では、ビデオエンコーダ20の固定またはプログラム可能なハードウェアユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、図5に示されたビデオエンコーダ20の示された固定またはプログラム可能なハードウェアユニットのうちの1つまたは複数の間で分割される場合があるが、他のデバイスが本開示の技法を実施する場合もある。たとえば、図5の例によれば、ビデオエンコーダ20のIBCユニット48は、本開示の技法を単独で実施するか、または、動き推定ユニット42、動き補償ユニット44、イントラ予測処理ユニット46、およびエントロピー符号化ユニット56などの、ビデオエンコーダ20の他のユニットとの組合せで実施することができる。いくつかの例では、ビデオエンコーダ20はIBCユニット48を含まない場合があり、IBCユニット48の機能は、動き推定ユニット42および/または動き補償ユニット44などの、予測処理ユニット41の他の構成要素によって実施される場合がある。
【００８２】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ40内に記憶されるビデオデータは、たとえば、ビデオソース18から取得される場合がある。復号ピクチャバッファ(DPB)64は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれる、イントラコーディングモードまたはインターコーディングモードで)ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶するバッファである。ビデオデータメモリ40およびDPB64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ40およびDPB64は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【００８３】
図5に示されたように、ビデオエンコーダ20はビデオデータを受信し、区分化ユニット35はデータをビデオブロックに区分化する。この区分化は、スライス、タイル、または他のより大きい単位への区分化、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分化を含む場合もある。ビデオエンコーダ20は、全体的に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(および、場合によっては、タイルと呼ばれるビデオブロックのセット)に分割される場合がある。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみのレベル)に基づいて、現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測処理ユニット41は、IBCモードで符号化するための上述された本開示の技法を実施するように構成される場合がある。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、参照ピクチャとして使用するための符号化ブロックを復元するために加算器62に、得られたイントラコード化ブロックまたはインターコード化ブロックを供給することができる。
【００８４】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を実現するために、コーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
【００８５】
動き推定ユニット42は、ビデオシーケンス用の所定のパターンに従って、ビデオスライス用のインター予測モードを決定するように構成される場合がある。所定のパターンは、シーケンス内のビデオスライスをPスライスまたはBスライスとして指定することができる。動き推定ユニット42および動き補償ユニット44は、高度に集積される場合があるが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。IBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの特定と同様の方式で、IBCコーディングのためのベクトル、たとえばブロックベクトルを特定することができるか、または動き推定ユニット42を利用してブロックベクトルを特定することができる。
【００８６】
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ64に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力することができる。
【００８７】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することにより、インターコード化スライス内のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、その各々が復号ピクチャバッファ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択される場合がある。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
【００８８】
いくつかの例では、IBCユニット48は、動き推定ユニット42および動き補償ユニット44に関して上述された方式と同様の方式でベクトルを生成し、予測ブロックをフェッチすることができるが、予測ブロックは現在ブロックと同じピクチャまたはフレームの中にあり、ベクトルは動きベクトルの対語としてブロックベクトルと呼ばれる。他の例では、IBCユニット48は、動き推定ユニット42および動き補償ユニット44を使用して、全体的または部分的に、本明細書に記載された技法によるIBC予測のためのそのような機能を実施することができる。いずれにせよ、IBCの場合、予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックと厳密に一致することが判明したブロックの場合があり、ブロックの識別は、サブ整数ピクセル位置についての値の計算を含む場合がある。
【００８９】
動き補償ユニット44によって実施される動き補償は、場合によっては、サブピクセル精度への補間を実施する、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴う場合がある。現在ビデオブロックのPU用の動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックを位置決めすることができる。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含む場合がある。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することもできる。
【００９０】
上記で紹介されたように、インター予測モードでブロックをコーディングするとき、予測処理ユニットは、マージモードを使用して動き情報をシグナリングすることができる。たとえば、現在ピクチャの現在ブロックに対して、動き推定ユニット42および/またはIBCユニット48は、マージ候補リストを生成することができ、マージ候補リスト内の各候補は関連する動き情報を有する。動き情報は、現在ブロックまたは以前コーディングされたピクチャと同じピクチャを指す動きベクトルを含む場合がある。動き推定ユニット42および/またはIBCユニット48は、マージ候補リストからマージ候補を選択し、選択された候補の動き情報を使用して現在ブロックを符号化することができる。予測処理ユニット41は、選択されたマージ候補を識別するシンタックス要素をエントロピー符号化ユニット56に出力することができる。エントロピー符号化ユニット56は、符号化ビットストリーム内に含めるためのシンタックス要素をエントロピー符号化することができる。
【００９１】
予測ビデオブロックが、IBC予測に従って同じピクチャからか、インター予測に従って異なるピクチャからかにかかわらず、ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成することができる。ピクセル差分値はブロック用の残差データを形成し、ルーマ成分差とクロマ成分差の両方を含む場合がある。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。IBCユニット48および/または動き補償ユニット44は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することもできる。シンタックス要素には、たとえば、予測ブロックを識別するために使用されるベクトルを定義するシンタックス要素、予測モードを示す任意のフラグ、または本開示の技法に関して記載された任意の他のシンタックスが含まれる場合がある。
【００９２】
イントラ予測処理ユニット46は、上述されたように、動き推定ユニット42および動き補償ユニット44によって実施されるインター予測、またはIBCユニット48によって実施されるIBC予測の代替として、現在ブロックをイントラ予測することができる。詳細には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用する、IBCモードを含むイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別々の符号化パスの間、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたモードから使用する適切なイントラ予測モードを選択することができる。
【００９３】
たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された、元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロック用の最良のレートひずみ値を表すかを判定するために、様々な符号化ブロックについてのひずみおよびレートから比を計算することができる。
【００９４】
いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測処理ユニット46は、エントロピー符号化ユニット56にブロック用の選択されたイントラ予測モードを示す情報を提供することができる。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、(コードワードマッピングテーブルとも呼ばれる)複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルを含む場合がある送信されたビットストリーム構成データの中に、コンテキストの各々のために使用する、様々なブロックのための符号化コンテキストの定義と、最も可能性の高いイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、修正されたイントラ予測モードインデックステーブルとを含める場合がある。
【００９５】
予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して現在ビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含められ、変換処理ユニット52に適用される場合がある。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。
【００９６】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正される場合がある。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施することができる。代替として、エントロピー符号化ユニット56が走査を実施する場合がある。
【００９７】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実施することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされる場合がある。エントロピー符号化ユニット56は、コーディングされている現在ビデオスライスの動きベクトルおよび他のシンタックス要素を符号化することもできる。
【００９８】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化および逆変換を適用して、他のビデオブロックの予測のための参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを復元する。動き補償ユニット44および/またはIBCユニット48は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することにより、参照ブロックを計算することができる。動き補償ユニット44および/またはIBCユニット48は、復元された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することもできる。
【００９９】
加算器62は、動き補償ユニット44によって生成された動き補償予測ブロックに復元された残差ブロックを加算して、復号ピクチャバッファ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するために、参照ブロックとしてIBCユニット48、動き推定ユニット42、および動き補償ユニット44によって使用される場合がある。
【０１００】
図5のビデオエンコーダ20は、たとえば、図7に関して下記に記載されるプロセスに従って、マージモードを使用してビデオブロックを符号化するように構成される場合がある。図6は、ビデオデコーダ30がマージ候補リストを構築するために使用することができる、CU250、およびCU250に関連付けられた例示的な候補位置252A〜Eを示す概念図である。本開示は、候補位置252A〜252Eをまとめて候補位置252として参照する場合がある。候補位置252は、CU250と同じピクチャ内にある空間候補を表す。候補位置252Aは、CU250の左に位置する。候補位置252Bは、CU250の上に位置する。候補位置252Cは、CU250の右上に位置する。候補位置252Dは、CU250の左下に位置する。候補位置252Eは、CU250の左上に位置する。図6は、予測処理ユニット41が候補リストをどのように生成することができるかの例を提供するために使用される。
【０１０１】
図7は、本開示の技法による、候補リストを構築するための例示的な方法を示すフローチャートである。図7の技法は、5つの候補を含むリストに関して記載されるが、本明細書に記載される技法は他のサイズのリストとともに使用される場合もある。5つの候補は、各々、マージインデックス(たとえば、0〜4)を有することができる。図7の技法は、汎用ビデオコーダを参照して記載される。汎用ビデオコーダは、たとえば、ビデオエンコーダ20などのビデオエンコーダ、またはビデオデコーダ30などのビデオデコーダであり得る。図7の技法は、図6において上述されたCUおよび候補位置を参照してさらに記載される。
【０１０２】
図7の例に従って候補リストを構築するために、ビデオコーダは4つの空間候補を最初に考慮する(702)。4つの空間候補には、たとえば、(図6に示された)候補位置252A、252B、252C、および252Dが含まれる場合がある。4つの空間候補は、現在CU(たとえば、CU250)と同じピクチャ内の4つのPUの動き情報に対応する。ビデオコーダは、特定の順序でリスト内の4つの空間候補を検討することができる。たとえば、候補位置252Aが最初に検討される場合がある。候補位置252Aが利用可能である場合、候補位置252A(すなわち、候補位置252Aに関連付けられた動き情報)は、マージインデックス0に割り当てられる場合がある。候補位置252Aが利用できない場合、ビデオコーダは、候補リストに候補位置252Aの動き情報を含めない場合がある。候補位置は様々な理由で利用できない場合がある。たとえば、候補位置が現在ピクチャ内にない場合、候補位置は利用できない場合がある。別の例では、候補位置がイントラ予測された場合、候補位置は利用できない場合がある。別の例では、候補位置が現在CUとは異なるスライス内にある場合、候補位置は利用できない場合がある。
【０１０３】
候補位置252Aを検討した後、ビデオコーダは、次に候補位置252Bを検討することができる。候補位置252Bが利用可能であることと候補位置252Aとは異なることの両方である場合、ビデオコーダは、候補リストに候補位置252Bの動き情報を追加することができる。この特定のコンテキストでは、「同じ」および「異なる」という用語は、候補位置に関連付けられた動き情報を参照する。したがって、2つの候補位置が同じ動き情報を有する場合、2つの候補位置は同じであると考えられ、2つの候補が異なる動き情報を有する場合、異なると考えられる。候補位置252Aが利用可能でなかった場合、ビデオコーダは、マージインデックス0に候補位置252Bの動き情報を割り当てることができる。候補位置252Aが利用可能であった場合、ビデオコーダは、マージインデックス1に候補位置252Bの動き情報を割り当てることができる。候補位置252Bが利用可能でない、または候補位置252Aと同じであるのいずれかである場合、ビデオコーダは、候補位置252Bをスキップし、候補リストに候補位置252Bの動き情報を含めない場合がある。
【０１０４】
候補位置252Cがビデオコーダによってリストに含めるために同様に検討される。候補位置252Cが利用可能であることと候補位置252Bおよび252Aとは同じでないことの両方である場合、ビデオコーダは、次の利用可能なマージインデックスに候補位置252Cの動き情報を割り当てる。候補位置252Cが利用できないか、または候補位置252Aおよび252Bのうちの少なくとも1つと異ならないかのいずれかである場合、ビデオコーダは、候補リストに候補位置252Cの動き情報を含めない。次に、候補位置252Dがビデオコーダによって検討される。候補位置252Dが利用可能であることと候補位置252A、252B、および252Cとは同じでないことの両方である場合、ビデオコーダは、次の利用可能なマージインデックスに候補位置252Dの動き情報を割り当てる。候補位置252Dが利用できないか、または候補位置252A、252B、および252Cのうちの少なくとも1つと異ならないかのいずれかである場合、ビデオコーダは、候補リストに候補位置252Dの動き情報を含めない。上記の例は、概して、候補リストに含めるために候補位置252A〜Dが個々に検討されることを記載するが、いくつかの実装形態では、候補位置252A〜Dのすべてが最初に候補リストに追加され、後で重複が候補リストから除外される場合がある。
【０１０５】
ビデオコーダが最初の4つの空間候補を検討した後、候補リストは4つの空間候補の動き情報を含む場合があるか、またはリストは4つよりも少ない空間候補の動き情報を含む場合がある。リストが4つの空間候補の動き情報を含む場合(704、yes)、ビデオコーダは時間候補を検討する(706)。時間候補は、現在ピクチャ以外のピクチャのコロケートされた、またはほぼコロケートされたPUの動き情報に対応する場合がある。時間候補が利用可能であることと最初の4つの空間候補とは異なることの両方である場合、ビデオコーダは、マージインデックス4に時間候補の動き情報を割り当てることができる。時間候補が利用できないか、または最初の4つの空間候補のうちの1つと同じであるかのいずれかである場合、ビデオコーダは、候補リストに時間候補の動き情報を含めない。このようにして、ビデオコーダが時間候補を検討した(706)後、候補リストは、5つの候補(ブロック702において検討された最初の4つの空間候補およびブロック704において検討された時間候補)を含む場合があるか、または4つの候補(ブロック702において検討された最初の4つの空間候補)を含む場合があるかのいずれかである。候補リストが5つの候補を含む場合(708、yes)、ビデオコーダはリストの構築を終了する。
【０１０６】
候補リストが4つの候補を含む場合(708、no)、ビデオコーダは第5の空間候補を検討することができる(710)。第5の空間候補は、たとえば、候補位置252Eに対応する場合がある。位置252Eにある候補が利用可能であることと候補位置252A、252B、252C、および252Dとは異なることの両方である場合、ビデオコーダは、マージインデックス4に割り当てられた候補リストに第5の空間候補の動き情報を追加することができる。位置252Eにある候補が利用可能でない、または候補位置252A、252B、252C、および252Dのうちの少なくとも1つと異ならないのいずれかである場合、ビデオコーダは、候補リストに位置252Eにある候補の動き情報を含めない場合がある。このようにして、第5の空間候補を検討した(710)後、リストは、5つの候補(ブロック702において検討された最初の4つの空間候補およびブロック710において検討された第5の空間候補)を含む場合があるか、または4つの候補(ブロック702において検討された最初の4つの空間候補)を含む場合がある。
【０１０７】
候補リストが5つの候補を含む場合(712、yes)、ビデオコーダは候補リストの生成を終了する。候補リストが4つの候補を含む場合(712、no)、ビデオコーダは、リストが5つの候補を含む(716、yes)まで、人為的に生成された候補を追加する(714)。
【０１０８】
ビデオコーダが最初の4つの空間候補を検討した後、リストが4つよりも少ない空間候補を含む場合(704、no)、ビデオコーダは第5の空間候補を検討することができる(718)。第5の空間候補は、たとえば、候補位置252Eに対応する場合がある。位置252Eにある候補が利用可能であることと候補リストにすでに含められた候補とは異なることの両方である場合、ビデオコーダは、次に利用可能なマージインデックスに割り当てられた候補リストに第5の空間候補を追加することができる。位置252Eにある候補が利用可能でない、または候候補リストにすでに含められた候補のうちの少なくとも1つと異ならないかのいずれかである場合、ビデオコーダは、候補リストに位置252Eにある候補を含めない場合がある。ビデオコーダは、次いで、時間候補を検討することができる(720)。時間候補が利用可能であることと候補リストにすでに含められた候補とは異なることの両方である場合、ビデオコーダは、次に利用可能なマージインデックスに割り当てられた候補リストに時間候補を追加することができる。時間候補が利用できないか、または候補リストにすでに含められた候補のうちの少なくとも1つと異ならないかのいずれかである場合、ビデオコーダは、候補リストに時間候補を含めない場合がある。
【０１０９】
第5の空間候補(ブロック718)および時間候補(ブロック720)を検討した後、候補リストが5つの候補を含む場合(722、yes)、ビデオコーダは候補リストの生成を終了する。候補リストが5つよりも少ない候補を含む場合(722、no)、ビデオコーダは、リストが5つの候補を含む(716、yes)まで、人為的に生成された候補を追加することができる(714)。人為的に生成された候補には、たとえば、組み合わされた双予測マージ候補、スケーリングされた双予測マージ候補、および/またはゼロベクトルマージ/AMVP候補が含まれる場合がある。空間候補、時間候補、または人為的に生成された候補のうちのいずれも、現在ピクチャを指す参照インデックスを有するIBC候補であり得る。
【０１１０】
図7に関して示された技法は、マージ候補リスト生成するために利用することができる技法の一例を表すにすぎない。たとえば、候補リストを生成するための他の技法は、異なる数の候補を利用するか、異なる順序で候補を含めるか、または異なるタイプの候補を含める場合がある。図7の技法は、HEVCマージ候補列挙プロセスの多くの態様を含むが、図7は、HEVCによって実装されたまさにそのプロセスを表現するものではない。
【０１１１】
図2〜図4に関して上記でさらに詳細に説明されたように、ビデオエンコーダ20は、隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成し、CTBの現在ブロックに対して、現在CTB用の参照サンプルから現在ブロック用の予測ブロックを位置決めするように構成される場合がある、ビデオエンコーダの一例を表す。隣接CTBは、たとえば、左の隣接CTBであり得る。現在ブロックは、たとえば、AMVPモードまたはマージモードでコーディングされる場合がある。ビデオエンコーダは、現在ブロック用にマージ候補を決定するように構成される場合があり、マージ候補のブロックベクトルは、CTB内の位置を指すことができる。隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成するために、ビデオエンコーダは、現在CTBの対応する位置に対して隣接CTBの一部または全部のピクセル値をコピーすることができる。
【０１１２】
図2〜図4に関して上記でさらに詳細に説明されたように、ビデオエンコーダ20はまた、追加または代替として、現在ブロックの動きベクトルが現在CTB内のブロックを参照するとき、現在CTBに隣接する隣接CTBからの値を用いて現在CTBの値をパディングし、パディングされた値を使用して現在CTBの現在ブロックを復号することができる、ビデオエンコーダの一例を表す。隣接CTBは、たとえば、左の隣接CTBであり得る。現在ブロックは、たとえば、AMVPモードまたはマージモードでコーディングされる場合がある。ビデオエンコーダは、現在ブロック用にマージ候補を決定するように構成される場合があり、マージ候補のブロックベクトルは、CTB内の位置を指すことができる。隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成するために、ビデオエンコーダは、現在CTBの対応する位置に対して隣接CTBの一部または全部のピクセル値をコピーすることができる。
【０１１３】
図8は、本開示において記載されるIBCモードのための技法を実施することができる例示的なビデオデコーダ30を示すブロック図である。図8の例では、ビデオデコーダ30は、ビデオデータメモリ79と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、復号ピクチャバッファ92とを含む。予測処理ユニット81は、IBCユニット85と、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図5からのビデオエンコーダ20に関して記載された符号化パスとは全体的に逆の復号パスを実施することができる。
【０１１４】
様々な例では、ビデオデコーダ30のユニットは、本開示の技法を実施するように仕事を課せられる場合がある。また、いくつかの例では、本開示の技法は、ビデオデコーダ30のユニットのうちの1つまたは複数の間で分割される場合がある。たとえば、IBCユニット85は、本開示の技法を単独で実施するか、または、動き補償ユニット82、イントラ予測処理ユニット84、およびエントロピー復号ユニット80などの、ビデオデコーダ30の他のユニットとの組合せで実施することができる。いくつかの例では、ビデオデコーダ30はIBCユニット85を含まない場合があり、IBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実施される場合がある。
【０１１５】
ビデオデータメモリ79は、ビデオデコーダ30の構成要素によって復号されるべき符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ79内に記憶されたビデオデータは、たとえば、ストレージデバイス32から、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスのネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得される場合がある。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成することができる。復号ピクチャバッファ92は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれるイントラコーディングモードまたはインターコーディングモードで)ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する復号ピクチャバッファ(DPB)の一例である。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ79およびDPB92は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１１６】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化係数、動きベクトル、および他のシンタックス要素を生成する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
【０１１７】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの以前復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロック用の予測データを生成することができる。予測処理ユニット81は、IBCコーディングモードのための本開示の技法を実施するように構成される場合がある。ビデオフレームがインターコーディングされた(すなわち、BまたはP)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在ビデオスライスのビデオブロック用の予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、復号ピクチャバッファ92内に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築することができる。
【０１１８】
他の例では、ビデオブロックが本明細書に記載されたIBCモードに従ってコーディングされたとき、予測処理ユニット81のIBCユニット85は、エントロピー復号ユニット80から受信されたブロックベクトルおよび他のシンタックス要素に基づいて、現在ビデオブロック用の予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって規定された現在ビデオブロックと同じピクチャ内の復元領域の中にあり、DPB92から取り出される場合がある。
【０１１９】
動き補償ユニット82および/またはIBCユニット85は、動きベクトルおよび他のシンタックス要素を構文解析することにより、現在ビデオスライスのビデオブロックについての予測情報を特定し、予測情報を使用して、復号されている現在ビデオブロック用の予測ブロックを生成する。たとえば、動き補償ユニット82は、受信されたシンタックス要素のうちのいくつかを使用して、現在ビデオスライス内のビデオブロックを復号するために、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構築情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状態、および他の情報を特定する。
【０１２０】
同様に、IBCユニット85は、受信されたシンタックス要素のうちのいくつか、たとえばフラグを使用して、IBCモード、ピクチャのどのビデオブロックが復元領域内にあり、DPB92に記憶されるべきかを示す構築情報、スライスのIBC予測ビデオブロックごとのブロックベクトル、スライスのIBC予測ビデオブロックごとのIBC予測状況、および現在ビデオスライス内のビデオブロックを復号するための他の情報を使用して現在ビデオブロックが予測されたと判断することができる。
【０１２１】
動き補償ユニット82は、補間フィルタに基づいて補間を実施することもできる。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されたような補間フィルタを使用して、参照ブロックのサブ整数ピクセル用の補間値を計算することができる。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを特定し、補間フィルタを使用して予測ブロックを生成することができる。
【０１２２】
ビデオデコーダ30は、マージモードおよび/またはAMVPモードでコーディングされたブロックを復号するように構成される場合があり、その場合、予測処理ユニット81は、ビデオエンコーダ20によって組み立てられた同じ候補リストを組み立てるように構成される場合がある。たとえば、予測処理ユニット81は、図6および図7に関して上述された技法を実施することもできる。マージモードの例では、マージ候補リストを組み立てた後、予測処理ユニット81は、マージ候補リスト内の候補のインデックスを識別するシンタックス要素をエントロピー復号ユニット80から受信することができる。IBCユニット85および/またはイントラ予測処理ユニット84は、選択されたマージ候補に関連付けられた動き情報を使用して、予測ブロックを位置決めすることができる。選択されたマージ候補が、現在復号されているブロックを含むピクチャと同じピクチャを参照する場合、IBCユニット85および/またはイントラ予測処理ユニット84は、選択されたマージ候補の動きベクトルを低精度動きベクトルまで丸めて、隣接ブロックの動きベクトルの丸めバージョンを生成することができる。
【０１２３】
逆量子化ユニット86は、ビットストリーム内で供給され、エントロピー復号ユニット80によって復号された量子化変換係数を、逆量子化すなわち量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとの、ビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット88は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１２４】
動き補償ユニット82またはIBCユニット85が、ベクトルまたは他のシンタックス要素に基づいて現在ビデオブロック用の予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82およびIBCユニット85によって生成された対応する予測ブロックと加算することによって復号ビデオブロックを形成する。加算器90は、この加算演算を実施して復元ビデオブロックを生成する1つまたは複数の構成要素を表す。
【０１２５】
加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。加算器90と復号ピクチャバッファ92との間に、ループ内フィルタ(図示せず)が配置される場合がある。次いで、所与のフレームまたはピクチャ内の復号ビデオブロックは、後続の動き補償に使用される参照ピクチャを記憶する復号ピクチャバッファ92に記憶される。復号ピクチャバッファ92はまた、図1のディスプレイデバイス34などのディスプレイデバイスに後で提示するための復号ビデオを記憶する。
【０１２６】
上記でさらに詳細に説明されたように、ビデオデコーダ30はまた、現在ピクチャの現在ブロックがマージモードを使用してコーディングされたと判断し、現在ブロックの隣接ブロックの動きベクトルを特定し、隣接ブロックの動きベクトルに基づいてマージ候補を生成し、マージ候補の参照インデックスが現在ブロックを含むピクチャを参照することに応答して、動きベクトルを低精度動きベクトルまで丸めるように構成されたビデオデコーダの一例を表す。ビデオデコーダ30は、たとえば、現在ブロックの隣接ブロックの動きベクトルの非丸めバージョンをマージ候補リストに追加することができる。現在ブロックを復号するために隣接ブロックの動きベクトルが使用されるべきことを示すマージ候補インデックスをビデオデコーダが受信した場合、ビデオデコーダは、隣接ブロックの動きベクトルの丸めバージョンを使用して現在ブロックを復号することができる。
【０１２７】
隣接ブロックの動きベクトルは、動きベクトルのx成分を表す第1の値(たとえば、整数値、浮動小数点値など)と、動きベクトルのy成分を表す(同様に、整数値、浮動小数点値などであり得る)第2の値とを含む場合がある。動きベクトルの丸めバージョンを取得するために、ビデオデコーダ30は、動きベクトルのx成分を表す第1の値を丸めて、丸められた動きベクトルのx成分を表す第1の丸め値を取得し、動きベクトルのy成分を表す第2の値を丸めて、丸められた動きベクトルのy成分を表す第2の丸め値を取得することができる。
【０１２８】
値を丸めるために、ビデオデコーダ30は、たとえば、第1の値および第2の値についての1つまたは複数の最下位ビット位置内のビットの値をゼロに等しく設定することができ、場合によっては、最下位ビットの次の上位ビットの1つまたは複数に値を加算することを含む。追加または代替として、ビデオデコーダ30は、第1の値および第2の値に対してビット単位の左シフト演算を実施して、これらの値を丸めることができる。いくつかの例では、丸めは、動きベクトル成分の分数要素を低減または除去することを含む場合がある。たとえば、元の動きベクトルは1/4ピクセル精度を有する場合があるが、丸められた動きベクトルは、1/2ピクセル精度、フルピクセル精度(すなわち、整数ピクセル精度)、2倍ピクセル精度などを有する場合がある。
【０１２９】
図2〜図4に関して上記でさらに詳細に説明されたように、ビデオデコーダ30はまた、隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成し、CTBの現在ブロックに対して、現在CTB用の参照サンプルから現在ブロック用の予測ブロックを位置決めするように構成される場合がある、ビデオデコーダの一例を表す。隣接CTBは、たとえば、左の隣接CTBであり得る。現在ブロックは、たとえば、AMVPモードまたはマージモードでコーディングされる場合がある。ビデオデコーダは、現在ブロック用にマージ候補を決定するように構成される場合があり、マージ候補のブロックベクトルは、CTB内の位置を指すことができる。隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成するために、ビデオデコーダは、現在CTBの対応する位置に対して隣接CTBの一部または全部のピクセル値をコピーすることができる。
【０１３０】
図2〜図4に関して上記でさらに詳細に説明されたように、ビデオデコーダ30はまた、追加または代替として、現在ブロックの動きベクトルが現在CTB内のブロックを参照するとき、現在CTBに隣接する隣接CTBからの値を用いて現在CTBの値をパディングし、パディングされた値を使用して現在CTBの現在ブロックを復号することができる、ビデオデコーダの一例を表す。隣接CTBは、たとえば、左の隣接CTBであり得る。現在ブロックは、たとえば、AMVPモードまたはマージモードでコーディングされる場合がある。ビデオデコーダは、現在ブロック用にマージ候補を決定するように構成される場合があり、マージ候補のブロックベクトルは、CTB内の位置を指すことができる。隣接CTBの参照サンプルに基づいて現在CTB用の参照サンプルを生成するために、ビデオデコーダは、現在CTBの対応する位置に対して隣接CTBの一部または全部のピクセル値をコピーすることができる。
【０１３１】
図9は、本開示の技法による、ビデオエンコーダの例示的な動作を示すフローチャートである。図9のフローチャートは一例として提供される。他の例では、フローチャートは、より多数の、より少数の、または異なるステップを含む場合がある。図9に記載された動作は、上述されたビデオエンコーダ20などのビデオエンコーダによって実施される場合があるが、図9の動作は、いかなる特定のタイプのビデオエンコーダにも限定されない。
【０１３２】
図9の例では、ビデオエンコーダはビデオデータを符号化する。現在ピクチャのビデオデータの現在ブロックに対して、ビデオエンコーダが現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加する(902)。動き情報には、たとえば、現在ピクチャを参照する隣接ブロックの動きベクトルが含まれる。ビデオエンコーダがマージ候補リストからマージ候補を選択する(904)。ビデオエンコーダは、選択されたマージ候補に関連付けられた動き情報を使用して現在ブロックを符号化する。選択されたマージ候補が隣接ブロックの動き情報に対応することに応答して、ビデオエンコーダが、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して、現在ブロック用の予測ブロックを位置決めする(906)。ビデオエンコーダが予測ブロックを使用して現在ブロックを符号化する(908)。
【０１３３】
予測ブロックを使用して現在ブロックを符号化することの一部として、ビデオエンコーダは、たとえば、符号化ビデオデータのビットストリーム内の出力用に、選択されたマージ候補を識別するインデックスを生成することができる。ビデオエンコーダは、追加または代替として、予測ブロックを元のブロックと比較して残差データを特定し、残差データを変換および量子化することができる。
【０１３４】
ビデオエンコーダは、たとえば、動き情報のための参照ピクチャが現在ピクチャに対応するとの判断にさらに応答して、低精度動きベクトルを使用して現在ブロックを予測することができる。ビデオエンコーダはまた、符号化ビデオデータのビットストリーム内に出力するためのフラグを生成する。フラグの第1の値は、現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、フラグの第2の値は、ブロックの動きベクトル精度が整数ピクセル精度または分数ピクセル精度のいずれかであり得ることを示す。低精度動きベクトルを使用して現在ブロックを予測するために、ビデオエンコーダは、現在ピクチャ内の予測ブロックを位置決めし、予測ブロックをビデオデータの対応する元のブロックと比較し、比較に基づいて残差データを生成し、(たとえば、残差データを変換および量子化し、次いで、得られた量子化変換係数をエントロピー符号化することによって)残差データを符号化することができる。
【０１３５】
図10は、本開示の技法による、ビデオデコーダの例示的な動作を示すフローチャートである。図10のフローチャートは一例として提供される。他の例では、フローチャートは、より多数の、より少数の、または異なるステップを含む場合がある。図10に記載された動作は、上述されたビデオデコーダ30などのビデオデコーダによって実施される場合があるが、図10の動作は、いかなる特定のタイプのビデオデコーダにも限定されない。
【０１３６】
図10の例では、ビデオデコーダはビデオデータを復号する。現在ピクチャの現在ブロックに対して、ビデオデコーダが現在ブロックの隣接ブロックの動き情報をマージ候補リストに追加する(1002)。動き情報には、たとえば、現在ピクチャを参照する隣接ブロックの動きベクトルが含まれる場合がある。ビデオデコーダがマージ候補リストからマージ候補を示すインデックスを受け取る(1004)。インデックスが隣接ブロックの動き情報に対応するマージ候補を示すことに応答して、ビデオデコーダが、隣接ブロックの動きベクトルの丸めバージョンを表す低精度動きベクトルを使用して、現在ブロックを予測する(1006)。
【０１３７】
ビデオデコーダは、動き情報のための参照ピクチャが現在ピクチャに対応するとの判断にさらに応答して、低精度動きベクトルを使用して現在ブロックを予測する。ビデオデコーダはフラグも受信することができ、フラグの第1の値は、現在ブロックの動きベクトル精度が整数ピクセル精度であることを示し、フラグの第2の値は、ブロックの動きベクトル精度が整数ピクセル精度または分数ピクセル精度のうちの1つであることを示す。ビデオデコーダは、フラグが第2の値を有することにさらに応答して、低精度動きベクトルを使用して現在ブロックを予測することができる。
【０１３８】
低精度動きベクトルを使用して現在ブロックを予測するために、ビデオデコーダは、現在ピクチャ内の予測ブロックを位置決めすることができる。ビデオデコーダはまた、残差データを受信し、残差データに基づいて残差ブロックを生成し、予測ブロックに残差ブロックを加算して復元ブロックを形成することができる。隣接ブロックは、空間隣接ブロックまたは時間隣接ブロックのいずれかであり得る。隣接ブロックが空間隣接ブロックである例では、空間隣接ブロックの動き情報は、現在ピクチャに対応する参照インデックスを含む場合がある。空間隣接ブロックがIBCを使用して予測されたので、空間隣接ブロックは、たとえば、現在ピクチャに対応する参照インデックスを有する場合がある。時間隣接ブロックは、たとえば、異なる(たとえば、以前コーディングされた)ピクチャ内の現在ブロックにコロケートされたブロックであり得る。いくつかの例では、コロケートされたブロックは、現在ブロックの中心にあるピクセルを含むか、または現在ブロックの右下位置にあるピクセルを含むブロックに対応する場合がある。隣接ブロックが時間隣接ブロックである例では、時間隣接ブロックが現在ピクチャ以外のピクチャからインター予測された場合でも、時間隣接ブロックの動きベクトルは、現在ピクチャに対応する参照インデックスに関連付けられる場合がある。言い換えれば、時間隣接ブロックの動き情報を候補リストに追加するとき、時間隣接ブロック用の参照インデックスは修正される場合がある。
【０１３９】
図9と図10の両方の例では、低精度動きベクトルは、たとえば、整数ピクセル精度の動きベクトルの場合があり、動きベクトルは、分数ピクセル精度の動きベクトルの場合がある。他の例では、低精度動きベクトルも、動きベクトルよりも低い精度を有する分数精度の動きベクトルの場合がある。たとえば、動きベクトルが1/16ピクセル精度を有する場合、低精度動きベクトルは、1/8ピクセル精度、1/4ピクセル精度、1/2ピクセル精度、または整数ピクセル精度のいずれかであり得る。同様に、動きベクトルが1/8ピクセル精度を有する場合、低精度動きベクトルは、1/4ピクセル精度、1/2ピクセル精度、または整数ピクセル精度のいずれかであり得る。
【０１４０】
1つまたは複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される場合がある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む場合がある。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当する場合がある。データ記憶媒体は、本開示に記載された技法の実装のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
【０１４１】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１４２】
命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行される場合がある。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実装に適した任意の他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内に提供されるか、または複合コーデックに組み込まれる場合がある。また、技法は、1つまたは複数の回路または論理要素の中に完全に実装される可能性がある。
【０１４３】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装される場合がある。開示された技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上述されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされるか、または適切なソフトウェアおよび/もしくはファームウェアとともに、上述された1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供される場合がある。
【０１４４】
様々な例が記載されている。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１４５】
10  ビデオ符号化および復号システム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ストレージデバイス
34  ディスプレイデバイス
35  区分化ユニット
40  ビデオデータメモリ
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
48  IBCユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
64  復号ピクチャバッファ
79  ビデオデータメモリ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測処理ユニット
85  IBCユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
92  復号ピクチャバッファ
102  現在ビデオブロック
103  現在ピクチャ
104  予測ビデオブロック
106  2次元ベクトル
108  対象領域
110  垂直変位成分
112  水平変位成分
120  CTU
122  現在ブロック
124  グローバル探索領域
126  ローカル探索領域
132  現在CTB
134  左CTB
250  CU
252A  候補位置
252B  候補位置
252C  候補位置
252D  候補位置
252E  候補位置
【図１】
2018530249.tif 000003
【図２】
2018530249.tif 000004
【図３】
2018530249.tif 000005
【図４】
2018530249.tif 000006
【図５】
2018530249.tif 000007
【図６】
2018530249.tif 000008
【図７】
2018530249.tif 000009
【図８】
2018530249.tif 000010
【図９】
2018530249.tif 000011
【図１０】
2018530249.tif 000012
【国際調査報告】
2018530249.tif 000013
2018530249.tif 000014
2018530249.tif 000015