(57)【要約】  例示的な方法は、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトル(MV)の値を取得するステップと、隣接ブロックのアフィンモーションモデルのMVの値から、現在のブロックのアフィンモーションモデルのMVに対する予測子の値を導出するステップと、ビデオビットストリームから、現在のブロックに対するアフィンモーションモデルのMVの値と予測子の値との差分の表現を復号するステップと、予測子の値および復号された差分から現在のブロックに対するアフィンモーションモデルのMVの値を決定するステップと、現在のブロックに対するアフィンモーションモデルのMVの決定された値に基づいて、ビデオデータの予測子ブロックを決定するステップと、予測子ブロックに基づいて現在のブロックを再構築するステップとを含む。
2019519980.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ビデオデコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するステップと、
前記1つまたは複数のプロセッサによって、符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を復号するステップと、
前記1つまたは複数のプロセッサによって、前記予測子の前記値および前記復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値を決定するステップと、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを決定するステップと、
ビデオデータの前記予測子ブロックに基づいてビデオデータの前記現在のブロックを再構築するステップと
を備える、方法。
【請求項２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して復号される、請求項1に記載の方法。
【請求項３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して復号される、請求項2に記載の方法。
【請求項４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するステップが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価するステップと、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記1つまたは複数のプロセッサによって、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを決定するステップが、
前記1つまたは複数のプロセッサによって、前記符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を復号するステップを備える、請求項5に記載の方法。
【請求項７】
前記シンタックス要素を復号するステップが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオデータの前記現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数から前記シンタックス要素を復号するステップを備える、請求項6に記載の方法。
【請求項８】
前記シンタックス要素を復号するステップが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)から前記シンタックス要素を復号するステップを備える、請求項6に記載の方法。
【請求項９】
ワイヤレス通信デバイス上で実行可能であり、前記デバイスが、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し前記ビデオデータを前記メモリに記憶するように構成された受信機と
を備える、請求項1に記載の方法。
【請求項１０】
前記ワイヤレス通信デバイスが携帯電話であり、前記ビデオデータが前記受信機によって受信され、セルラー通信規格に従って変調される、請求項9に記載の方法。
【請求項１１】
ビデオデータを符号化するための方法であって、
ビデオエンコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定するステップであって、前記アフィンモーションモデルの前記モーションベクトルがビデオデータの前記現在のブロックに対するビデオデータの予測子ブロックを特定する、ステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するステップと、
前記1つまたは複数のプロセッサによって、符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を符号化するステップと
を備える、方法。
【請求項１２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して符号化される、請求項11に記載の方法。
【請求項１３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して符号化される、請求項12に記載の方法。
【請求項１４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するステップが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価するステップと、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択するステップと
を備える、請求項11に記載の方法。
【請求項１５】
前記1つまたは複数のプロセッサによって、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するステップをさらに備える、請求項11に記載の方法。
【請求項１６】
前記1つまたは複数のプロセッサによって、前記符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を符号化するステップをさらに備える、請求項15に記載の方法。
【請求項１７】
前記シンタックス要素を符号化するステップが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオデータの前記現在のブロックによって参照されるスライスヘッダにおいて、前記シンタックス要素を符号化するステップを備える、請求項16に記載の方法。
【請求項１８】
前記シンタックス要素を符号化するステップが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)において前記シンタックス要素を符号化するステップを備える、請求項16に記載の方法。
【請求項１９】
ワイヤレス通信デバイス上で実行可能であり、前記デバイスが、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記符号化されたビデオビットストリームを送信するように構成された送信機と
を備える、請求項11に記載の方法。
【請求項２０】
前記ワイヤレス通信デバイスが携帯電話であり、前記符号化されたビデオビットストリームが前記送信機によって送信され、セルラー通信規格に従って変調される、請求項19に記載の方法。
【請求項２１】
ビデオデータのブロックを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路で実装される1つまたは複数の処理ユニットと
を備え、前記処理ユニットが、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得し、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出し、
符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を復号し、
前記予測子の前記値および前記復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値を決定し、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを決定し、
ビデオデータの前記予測子ブロックに基づいてビデオデータの前記現在のブロックを再構築する
ように構成される、デバイス。
【請求項２２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して復号される、請求項21に記載のデバイス。
【請求項２３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して復号される、請求項22に記載のデバイス。
【請求項２４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するために、前記1つまたは複数の処理ユニットが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価し、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択する
ように構成される、請求項21に記載のデバイス。
【請求項２５】
前記1つまたは複数の処理ユニットがさらに、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するように構成される、請求項21に記載のデバイス。
【請求項２６】
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを決定するために、前記1つまたは複数の処理ユニットが、
前記符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を復号するように構成される、請求項25に記載のデバイス。
【請求項２７】
前記シンタックス要素を復号するために、前記1つまたは複数の処理ユニットが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオデータの前記現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数から前記シンタックス要素を復号するように構成される、請求項26に記載のデバイス。
【請求項２８】
前記シンタックス要素を復号するために、前記1つまたは複数の処理ユニットが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)から前記シンタックス要素を復号するように構成される、請求項26に記載のデバイス。
【請求項２９】
前記再構築されたビデオデータを表示するように構成されたディスプレイ、または、
前記ビデオデータをキャプチャするように構成されたカメラ
のうちの少なくとも1つをさらに備える、請求項21に記載のデバイス。
【請求項３０】
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項21に記載のデバイス。
【請求項３１】
ビデオデータのブロックを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路で実装される1つまたは複数の処理ユニットと
を備え、前記処理ユニットが、
ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定することであって、前記アフィンモーションモデルの前記モーションベクトルがビデオデータの前記現在のブロックに対するビデオデータの予測子ブロックを特定する、決定することと、
ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得することと、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出することと、
符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を符号化することと
を行うように構成される、デバイス。
【請求項３２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して符号化される、請求項31に記載のデバイス。
【請求項３３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して符号化される、請求項32に記載のデバイス。
【請求項３４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するために、前記1つまたは複数の処理ユニットが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価し、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択する
ように構成される、請求項31に記載のデバイス。
【請求項３５】
前記1つまたは複数の処理ユニットがさらに、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するように構成される、請求項31に記載のデバイス。
【請求項３６】
前記1つまたは複数の処理ユニットがさらに、
前記符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を符号化するように構成される、請求項35に記載のデバイス。
【請求項３７】
前記シンタックス要素を符号化するために、前記1つまたは複数の処理ユニットが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオデータの前記現在のブロックによって参照されるスライスヘッダにおいて前記シンタックス要素を符号化するように構成される、請求項36に記載のデバイス。
【請求項３８】
前記シンタックス要素を符号化するために、前記1つまたは複数の処理ユニットが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)において前記シンタックス要素を符号化するように構成される、請求項36に記載のデバイス。
【請求項３９】
再構築されたビデオデータを表示するように構成されたディスプレイ、または、
前記ビデオデータをキャプチャするように構成されたカメラ
のうちの少なくとも1つをさらに備える、請求項31に記載のデバイス。
【請求項４０】
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項31に記載のデバイス。
【請求項４１】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するための手段と、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するための手段と、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分を取得するための手段と、
前記予測子の前記値および復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定するための手段と、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを特定するための手段と
を備える、デバイス。
【請求項４２】
実行されると、ビデオエンコーダまたはビデオデコーダの1つまたは複数のプロセッサに、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得させ、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出させ、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分を取得させ、
前記予測子の前記値および復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定させ、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを特定させる
命令を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、2016年5月16日に出願された米国仮出願第62/337,301号の利益を主張する。
【０００２】
本開示はビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ビデオコーディング規格において記述されるものなどの、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および/または記憶することができる。
【０００４】
いくつかのビデオコーディング規格が、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、スケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含むAdvanced Video Coding(AVC)、 High Efficiency Video Coding(HEVC)とも呼ばれるITU-T H.265、およびそのような規格の拡張によって定義される。最近、新たなビデオコーディング規格、すなわち、High-Efficiency Video Coding(HEVC)の設計が、ITU-T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)によって確定された。以後HEVC WDと呼ばれる最新のHEVCドラフト仕様は、itu.int/rec/T-REC-H.265-201504-S/enで入手可能である。HEVCに対するRange Extensions、すなわちHEVC-Rextも、JCT-VCによって開発中である。以降ではRExt WD6と呼ばれる、Range extensionsの最近のワーキングドラフト(WD)は、phenix.int-evry.fr/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1005-v1.zipから入手可能である。
【０００５】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースビデオコーディングでは、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)が、いくつかの技法ではツリーブロック、コーディング単位(CU)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００６】
空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指すモーションベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコーディングされるブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、画素領域から変換領域に変換されて残差変換係数をもたらすことがあり、残差変換係数は次いで、量子化されることがある。最初に2次元アレイで構成される量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されることがあり、なお一層の圧縮を達成するためにエントロピーコーディングが適用されることがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第2013/0128974A1号
【特許文献２】米国特許出願公開第2012/0177120A号
【非特許文献】
【０００８】
【非特許文献１】「Algorithm Description of Joint Exploration Test Model 2」、Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第2回会合:サンディエゴ、米国、2016年2月20-26日、文書:JVET-B1001_v3、phenix.it-sudparis.eu/jvet/doc_end_user/documents/2_San%20Diego/wg11/JVET-B1001-v3.zip
【非特許文献２】Huawei Technologies Co, Ltd、「Affine transform prediction for next generation video coding」、Document ITU-T SG 16 (Study Period 2013) Contribution 1016、itu.int/md/T13-SG16-C-1016/en
【非特許文献３】https://jvet.hhi.fraunhofer.de
【発明の概要】
【課題を解決するための手段】
【０００９】
一例では、ビデオデータを復号する方法は、ビデオデコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、1つまたは複数のプロセッサによって、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するステップと、1つまたは複数のプロセッサによって、符号化されたビデオビットストリームから、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を復号するステップと、1つまたは複数のプロセッサによって、予測子の値および復号された差分からビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値を決定するステップと、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの決定された値に基づいて、ビデオデータの予測子ブロックを決定するステップと、ビデオデータの予測子ブロックに基づいてビデオデータの現在のブロックを再構築するステップとを含む。
【００１０】
別の例では、ビデオデータを符号化する方法は、ビデオエンコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定するステップであって、アフィンモーションモデルのモーションベクトルがビデオデータの現在のブロックに対するビデオデータの予測子ブロックを特定する、ステップと、1つまたは複数のプロセッサによって、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、1つまたは複数のプロセッサによって、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するステップと、1つまたは複数のプロセッサによって、符号化されたビデオビットストリームにおいて、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を符号化するステップとを含む。
【００１１】
別の例では、ビデオデータのブロックを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路において実装される1つまたは複数の処理ユニットとを含む。この例では、1つまたは複数の処理ユニットは、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得し、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出し、符号化されたビデオビットストリームから、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を復号し、予測子の値および復号された差分からビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値を決定し、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの決定された値に基づいて、ビデオデータの予測子ブロックを決定し、ビデオデータの予測子ブロックに基づいてビデオデータの現在のブロックを再構築するように構成される。
【００１２】
別の例では、ビデオデータのブロックを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路において実装される1つまたは複数の処理ユニットとを含む。この例では、1つまたは複数の処理ユニットは、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定し、アフィンモーションモデルのモーションベクトルがビデオデータの現在のブロックに対するビデオデータの予測子ブロックを特定し、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得し、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出し、符号化されたビデオビットストリームにおいて、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を符号化するように構成される。
【００１３】
別の例では、ビデオデータを符号化または復号するためのデバイスは、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するための手段と、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するための手段と、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分を取得するための手段と、予測子の値および復号された差分からビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値の各々を決定するための手段と、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの決定された値に基づいて、ビデオデータの予測子ブロックを特定するための手段とを含む。
【００１４】
別の例では、コンピュータ可読記憶媒体は、実行されると、ビデオエンコーダまたはビデオデコーダの1つまたは複数のプロセッサに、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得させ、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値から、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出させ、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分を取得させ、予測子の値および復号された差分からビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値の各々を決定させ、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの決定された値に基づいて、ビデオデータの予測子ブロックを特定させる、命令を記憶している。
【００１５】
1つまたは複数の例の詳細が、添付の図面および以下の説明において記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】本開示の技法を実行するように構成され得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示の技法を実行するように構成され得るビデオエンコーダの例を示すブロック図である。
【図３】本開示の技法を実行するように構成され得るビデオデコーダの例を示すブロック図である。
【図４Ａ】High Efficiency Video Coding(HEVC)における空間的に隣接する候補を示す概念図である。
【図４Ｂ】High Efficiency Video Coding(HEVC)における空間的に隣接する候補を示す概念図である。
【図５】4つのアフィンパラメータに関してアフィンである2点モーションベクトルを示す概念図である。
【図６】アフィンインターモードを示す概念図である。
【図７Ａ】アフィンマージモードに対する候補を示す概念図である。
【図７Ｂ】アフィンマージモードに対する候補を示す概念図である。
【図８】本開示の1つまたは複数の技法による、6パラメータのアフィンモーションモデルを示す概念図である。
【図９】本開示の1つまたは複数の技法による、アフィンモーションベクトルの評価を示す概念図である。
【図１０】H.263における重複ブロックモーション補償(OBMC)を示す概念図である。
【図１１Ａ】HEVCでのOBMCを示す概念図である。
【図１１Ｂ】HEVCでのOBMCを示す概念図である。
【図１２Ａ】OBMCが適用され得るサブブロックを示す概念図である。
【図１２Ｂ】OBMCが適用され得るサブブロックを示す概念図である。
【図１３】本開示の1つまたは複数の技法による、(たとえば、ビデオ符号化プロセスの間に)ビデオエンコーダによってアフィンモーション補償を実行するための例示的な方法を示すフローチャートである。
【図１４】本開示の1つまたは複数の技法による、(たとえば、ビデオ復号プロセスの間に)ビデオデコーダによってアフィンモーション補償を実行するための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
一般に、本開示は、ビデオデータのブロックに対するアフィンモーション情報のコーディング(たとえば、符号化または復号)に関する技法を説明する。現在のビデオコーディング規格では、並進モーションモデルだけがモーション補償予測(MCP)のために適用される。MCPのための並進モーションモデルを使用するとき、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、ビデオデータの現在のブロックとビデオデータの対応する予測子ブロックとの間の変異を示す、現在のブロックに対する単一の2次元モーションベクトル(MV)を利用することができる。MVは、各MVがビデオデータの現在のブロックとビデオデータの予測子ブロックとの間の水平方向の変異を示すx成分と、ビデオデータの現在のブロックとビデオデータの予測子ブロックとの間の垂直方向の変異を示すy成分とを有し得るという点で、2次元であり得る。以下でさらに詳細に論じられるように、HEVCなどの現在のビデオコーディング規格では、マージモード(スキップはマージの特別な場合であると見なされる)および高度モーションベクトル予測(AMVP)モードという名称の、2つのインター予測モードがある。マージモードでは、現在のブロックのMVの値はMV候補の値から直接受け継がれ、これは現在のブロックの隣接ブロックのMVの値であり得る。対照的に、AMVPモードでは、MV候補の値はさらに精緻化され得る。具体的には、ビデオコーダは、MV候補の値と現在のブロックに対するMVの値との差分の値をシグナリングすることができる。差分の値は、モーションベクトル差分(MVD)と呼ばれ得る。
【００１８】
しかしながら、ズームインのモーション、ズームアウトのモーション、回転のモーション、遠近法のモーション、および他の不規則なモーションなどの、並進モーション以外の多くの種類のモーションがある。不規則なモーションを伴うそのようなテストシーケンスにおいてMCPのために並進モーションモデルだけを適用することは、予測精度に影響を与えることがあり、低いコーディング効率をもたらすことがある。たとえば、並進モーションモデルだけを使用すると、コーディングされている元のブロックと予測ブロックがさほど一致しなくなることがある。結果として、残差データのサイズ(すなわち、コーディングされるべき元のブロックと予測ブロックとの画素差分を表す値)が増大することがあり、これはコーディング効率を低下させることがある。
【００１９】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC規格(その現在の拡張ならびにスクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための目先の拡張を含む)を大きく超える圧縮能力を有する、将来のビデオコーディング技術の標準化の潜在的な必要性について研究している。このグループは、この分野の専門家により提案されている圧縮技術の設計を評価するために、Joint Video Exploration Team(JVET)として知られている共同研究においてこの調査活動に一緒に取り組んでいる。JVETは、HEVCの能力を超える可能性のある改良されたビデオコーディング技術として、協調的なテストモデルの研究の対象であるコーディング機構を記述するJoint Exploration Model(JEM)を発表した。JEMでは、MCPへの適用のためにアフィンモーションモデルが提案されている。JEMの最近のアルゴリズムの説明である、「Algorithm Description of Joint Exploration Test Model 2」、Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第2回会合:サンディエゴ、米国、2016年2月20-26日、文書:JVET-B1001_v3(以後「JEMテストモデル」)は、phenix.it-sudparis.eu/jvet/doc_end_user/documents/2_San%20Diego/wg11/JVET-B1001-v3.zipから入手可能である。
【００２０】
MCPのためにアフィンモーションモデルを使用するとき、ビデオコーダは、ビデオデータの現在のブロックとビデオデータの対応する予測子ブロックとの間のアフィン変換(たとえば、並進、スケーリング、反射、回転など)を集合的に示す、現在のブロックに対する複数のモーションベクトルを利用することができる。たとえば、アフィンモーションモデルは、現在のブロックの左上の角と対応する予測子ブロックの左上の角との間の変位を示す第1の2次元モーションベクトルと、現在のブロックの右上の角と対応する予測子ブロックの右上の角との間の変位を示す第2の2次元モーションベクトルとを含み得る。アフィンモーションモデルの中のモーションベクトルは、制御点モーションベクトル(CPMV)と呼ばれることがあり、現在のブロック上での位置(すなわち、制御点)を基準とすることがある。たとえば、現在のブロックの左上の角と対応する予測子ブロックの左上の角との間の変位を示す2次元モーションベクトルは、現在のブロックの左上CPMVと呼ばれ得る。以下でさらに詳細に論じられるように、JEMテストモデルでは、アフィンインター(たとえば、AF_INTER)およびアフィンマージ(たとえば、AF_MERGE)という2つのインター予測モードがある。
【００２１】
アフィンマージモードでは、現在のブロックの各CPMVの値は、アフィンモーションモデルを使用してコーディングされる現在のブロックの単一の隣接ブロックのCPMVから直接導出される。言い換えると、アフィンマージモードでは、隣接ブロックのCPMVは現在のブロックのCPMVに対して歪められるだけであり、アフィンモデルパラメータを変更または調整するための柔軟性はない。具体的には、MVDを使用してCPMVの値を修正することは可能ではない。
【００２２】
アフィンインターモードでは、現在のブロックの各CPMVの値は、対応する制御点およびMVDに隣接するブロックのMVの値に基づいて個別に導出される。CPMVがそれに基づいて決定されるMVの値は、制御点モーションベクトル予測子(CPMVP)と呼ばれ得る。一例として、現在のブロックの左上CPMVの値は、現在のブロックの左上の点に隣り合う左のブロック、左上のブロック、または上の隣接ブロックのうちの1つのMVと、MVDとに基づいて導出され得る。別の例として、現在のブロックの右上CPMVの値は、現在のブロックの右上の点に隣り合う右上のブロックまたは上の隣接ブロックのうちの1つのMVと、MVDとに基づいて導出され得る。
【００２３】
HEVCテストモデルとJEMテストモデルの両方において、ビデオエンコーダは、MVがデコーダ側で再構築され得るように、ビットストリームにおいてMVDシンタックス(すなわち、MVDの値を表すシンタックス要素)をシグナリングすることができる。MVDシンタックスをシグナリングするために使用されるデータの量は、MVD値のサイズに関連し得る。たとえば、比較的値が小さいMVDと比較して、比較的値が大きいMVDに対しては、MVDシンタックスをシグナリングするためにより多くのデータが必要であり得る。
【００２４】
しかしながら、対応する制御点の隣接ブロックのMVの値に基づいて各CPMVの値を導出する現在の技法には、1つまたは複数の欠点があり得る。一例として、現在の技法は、現在のブロックのアフィンモーションモデルと隣接ブロックのアフィンモーションモデルとの相関を利用しない。
【００２５】
本開示の1つまたは複数の技法によれば、ビデオコーダは、ビデオデータの特定の隣接ブロックのアフィンモーションモデルのモーションベクトルの値、および、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値とビデオデータの隣接ブロックのアフィンモーションモデルに基づいて導出されるモーションベクトルの値との間の差分の値に基づいて、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定することができる。たとえば、ビデオコーダは、現在のブロックのCPMVのためのCPMVPとして隣接ブロックのCPMVを利用することができる。隣接ブロックのCPMVは現在のブロックのCPMVと相関付けられ得るので、現在のブロックの予測子(たとえば、CPMVP)とモーションベクトル(たとえば、CPMV)との間の差分(たとえば、MVD)を減らすことができる。このように、差分を符号化するために使用されるデータの量は差分のサイズに比例し得るので、本開示の技法はビデオ圧縮の効率を改善することができる。
【００２６】
4パラメータのアフィンモーションモデルは、Huawei Technologies Co, Ltd、「Affine transform prediction for next generation video coding」、Document ITU-T SG 16 (Study Period 2013) Contribution 1016(以後「Contribution 1016」)において進化しており、itu.int/md/T13-SG16-C-1016/enから入手可能である。Contribution 1016は、式(1)において以下で示される4パラメータのアフィンモデルを導入する。
【００２７】
【数１】
2019519980.tif 000003
【００２８】
(v0x, v0y)が現在のブロックの左上の角に対するCPMVであり、(v1x, v1y)が現在のブロックの右上の角に対するCPMVである場合、モーションベクトルフィールド(MVF)とも呼ばれるアフィンモーションモデルは、以下の式(2)に従って表現され得る。
【００２９】
【数２】
2019519980.tif 000004
【００３０】
式(1)において上で示される4パラメータのアフィンモデルには、1つまたは複数の欠点があることがある。具体的には、4パラメータのアフィンモーションは、x成分およびy成分のアフィンパラメータを制約し、それらが対称的なスケーリングの性質を有することを強いる。しかしながら、この制約は多様化したビデオコンテンツにおいては当てはまらないことがある。
【００３１】
本開示の1つまたは複数の技法によれば、ビデオコーダは、4パラメータのアフィンモーションモデルまたは6パラメータのアフィンモーションモデルのいずれかを選択的に利用することができる。たとえば、ビデオデコーダは、現在のブロックが式(1)において上で示される4パラメータのアフィンモーションモデルを使用してコーディングされるか、または式(3)において下で示される6パラメータのアフィンモーションモデルを使用してコーディングされるかを決定することができる。
【００３２】
【数３】
2019519980.tif 000005
【００３３】
いくつかの例では、ビデオデコーダは、明示的なシグナリングに基づいて、どのアフィンモーションモデルが使用されるかを決定することができる。たとえば、ビデオコーダは、ビットストリームから、ビデオデータの現在のブロックに対するアフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を復号することができる。いくつかの例では、シンタックス要素は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオデータの現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数においてコーディングされ得る。いくつかの例では、シンタックス要素は、ビデオデータの現在のブロックを含むコーディング単位(CU)のCUレベルでコーディングされ得る。
【００３４】
4パラメータモデルの処理および/またはシグナリングの要件は、6パラメータモデルの処理および/またはシグナリングの要件より低いことがある。しかしながら、いくつかの例では、6パラメータモデルにより、コーディングされているブロックと予測ブロックがより良く一致するようになることがあり、これにより残差値のサイズが減ることがある。したがって、いくつかの例では、ビデオエンコーダは、ブロックに対する残差値の低減という利点に対して、6パラメータモデルを使用してブロックを符号化することの処理およびシグナリングのコストのバランスをとり、どちらのモデルがより有利であるかを選択することができる。このようにして、本開示の技法はさらに、アフィンモーションモデルを使用してビデオ圧縮の効率を改善することができる。
【００３５】
図1は、本開示のアフィンモーション補償を実行するための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広い範囲のデバイスのうちのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
【００３６】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14へ符号化されたビデオデータを直接送信することを可能にする通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14へ送信され得る。通信媒体は、高周波(RF)スペクトルまたは1つまたは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３７】
いくつかの例では、符号化されたデータは、出力インターフェース22から記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイス12によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶するとともにその符号化されたビデオデータを宛先デバイス14へ送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適した両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００３８】
本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、dynamic adaptive streaming over HTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【００３９】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、本開示のアフィンモーション補償を実行するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスが、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００４０】
図1の図示されたシステム10は一例にすぎない。本開示のアフィンモーション補償を実行するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。その上、本開示の技法はまた、ビデオプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコーディングされたビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化および復号構成要素を含むように実質的に対称的な方法で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14間の一方向または双方向ビデオ送信をサポートし得る。
【００４１】
ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどのビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータで生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディングに適用可能であることがあり、ワイヤレスおよび/または有線の適用例に適用されることがある。各々の場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によって、コンピュータ可読媒体16に出力され得る。
【００４２】
コンピュータ可読媒体16は、ワイヤレス放送もしくは有線ネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)が、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを宛先デバイス14に提供し得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスが、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを製造し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解されてよい。
【００４３】
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされた単位の特性ならびに/または処理を記述するシンタックス要素を含み、ビデオデコーダ30によっても使用される、ビデオエンコーダ20によって定義されるシンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００４４】
ビデオエンコーダ20およびビデオデコーダ30は、ITU-T H.265とも呼ばれるHigh Efficiency Video Coding(HEVC)規格などのビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU-T H.264規格、またはそのような規格の拡張などの、他のプロプライエタリな規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例は、MPEG-2とITU-T H.263とを含む。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合されることがあり、共通のデータストリームまたは別個のデータストリームの中でオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００４５】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、処理回路構成(固定機能回路構成および/またはプログラマブル処理回路構成を含む)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダ回路構成のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
【００４６】
一般に、ITU-T H.265によれば、ビデオピクチャは、輝度サンプルと色差サンプルの両方を含み得るコーディングツリー単位(CTU)(または最大コーディング単位(LCU))のシーケンスへと分割され得る。代替的に、CTUはモノクロームデータ(すなわち、輝度サンプルのみ)を含み得る。ビットストリーム内のシンタックスデータは、画素数の観点から最大のコーディング単位であるCTUのサイズを定義し得る。スライスは、コーディング順にいくつかの連続するCTUを含む。ビデオピクチャは、1つまたは複数のスライスへと区分され得る。各CTUは、四分木に従ってコーディング単位(CU)へと分割され得る。一般に、四分木データ構造はCUごとに1つのノードを含み、ルートノードがCTUに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
【００４７】
四分木データ構造の各ノードは、対応するCUにシンタックスデータを提供し得る。たとえば、四分木の中のノードは、ノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのためのシンタックス要素は再帰的に定義されることがあり、CUがサブCUに分割されるかどうかに依存することがある。CUがそれ以上分割されない場合、それはリーフCUと呼ばれる。本開示では、リーフCUの4つのサブCUはまた、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUと呼ばれる。たとえば、16×16サイズのCUがそれ以上分割されない場合、4つの8×8サブCUもリーフCUと呼ばれるが、16×16CUは決して分割されない。
【００４８】
CUは、CUがサイズの区別をもたないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、CTUは、4つの(サブCUとも呼ばれる)子ノードに分割されることがあり、各子ノードは、次に親ノードになり、別の4つの子ノードに分割されることがある。最後の、四分木のリーフノードと呼ばれる分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、最大CU深度と呼ばれる、CTUが分割され得る最大の回数を定義することができ、コーディングノードの最小のサイズを定義することもできる。したがって、ビットストリームは、最小コーディング単位(SCU)を定義することもできる。本開示は、HEVCの文脈におけるCU、予測単位(PU)、もしくは変換単位(TU)のいずれか、または、他の規格の文脈における同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそのサブブロック)を指すために、「ブロック」という用語を使用する。
【００４９】
CUは、コーディングノードと、コーディングノードと関連付けられる予測単位(PU)および変換単位(TU)とを含む。CUのサイズはコーディングノードのサイズに対応し、一般的には、形状が正方形である。CUのサイズは、8×8画素から、最大のサイズ、たとえば64×64画素以上のCTUのサイズまでの範囲であり得る。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。CUと関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップもしくは直接モードで符号化されているか、イントラ予測モードで符号化されているか、またはインター予測モードで符号化されているかに応じて異なり得る。PUは、形状が非正方形であるように区分され得る。CUと関連付けられたシンタックスデータはまた、たとえば、四分木に従った1つまたは複数のTUへのCUの区分を記述し得る。TUは、形状が正方形または非正方形(たとえば、矩形)であることが可能である。
【００５０】
HEVC規格は、異なるCUによって異なり得る、TUに従った変換を可能にする。TUは、典型的には、区分されたCTUについて定義された所与のCU内のPU(またはCUの区分)のサイズに基づいてサイズが決められるが、これは必ずしもそうではないことがある。TUは、典型的には、PU(または、たとえばイントラ予測の場合、CUの区分)とサイズが同じであるか、またはより小さい。いくつかの例では、CUに対応する残差サンプルは、「残差四分木」(RQT)と呼ばれる四分木構造を使用して、より小さい単位に再分割され得る。RQTのリーフノードは、変換単位(TU)と呼ばれることがある。TUと関連付けられた画素差分値は、量子化され得る変換係数を生成するために変換され得る。
【００５１】
リーフCUは、インター予測を使用して予測されるとき、1つまたは複数の予測単位(PU)を含み得る。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間領域を表し、PUのための参照サンプルを取り出すためおよび/または生成するためのデータを含み得る。その上、PUは予測に関連するデータを含む。CUがインターモード符号化されるとき、CUの1つまたは複数のPUは、1つまたは複数のモーションベクトルなどのモーション情報を定義するデータを含むことがあり、またはPUはスキップモードでコーディングされることがある。PUのモーションベクトルを定義するデータは、たとえば、モーションベクトルの水平成分、モーションベクトルの垂直成分、モーションベクトルの分解能(たとえば、1/4画素精度または1/8画素精度)、モーションベクトルが指す参照ピクチャ、および/またはモーションベクトルのための参照ピクチャリスト(たとえば、リスト0またはリスト1)を記述し得る。
【００５２】
リーフCUはまた、イントラモード予測され得る。一般に、イントラ予測は、イントラモードを使用してリーフCU(またはその区分)を予測することを伴う。ビデオコーダは、リーフCU(またはその区分)を予測するために使用すべき、リーフCUに隣接する以前にコーディングされた画素のセットを選択することができる。
【００５３】
リーフCUはまた、1つまたは複数の変換単位(TU)を含み得る。変換単位は、上で論じられたように、RQT(TU四分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換単位に分割されるかどうかを示し得る。次いで、各TUは、さらなるサブTUにさらに分割され得る。TUは、それ以上分割されないとき、リーフTUと呼ばれ得る。一般に、イントラコーディングでは、1つのリーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードは、一般に、リーフCUのすべてのTUに対する予測される値を計算するために適用される。イントラコーディングでは、ビデオエンコーダは、各リーフTUに対する残差値を、TUに対応するCUの部分と元のブロックとの間の差分としてイントラ予測モードを使用して計算し得る。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUより大きくても小さくてもよい。イントラコーディングでは、CUの区分、またはCU自体が、CUの対応するリーフTUと併置され得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに相当し得る。
【００５４】
その上、リーフCUのTUはまた、残差四分木(RQT)と呼ばれるそれぞれの四分木データ構造と関連付けられ得る。すなわち、リーフCUがTUへとどのように区分されるかを示す四分木を、リーフCUが含み得る。TUの四分木のルートノードは一般にリーフCUに対応するが、CUの四分木のルートノードは一般にCTU(またはLCU)に対応する。分割されないRQTのTUは、リーフTUと呼ばれる。一般に、本開示は、別段に記載されていない限り、リーフCUを指すためにCUという用語を、リーフTUを指すためにTUという用語をそれぞれ使用する。
【００５５】
ビデオシーケンスは通常、ランダムアクセスポイント(RAP)ピクチャで始まる、一連のビデオフレームまたはピクチャを含む。ビデオシーケンスは、ビデオシーケンスの特性を記述するシンタックスデータをシーケンスパラメータセット(SPS)の中に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは固定サイズまたは可変サイズを有することがあり、指定されたコーディング規格に従ってサイズが異なることがある。
【００５６】
一例として、予測は、様々なサイズのPUに対して実行され得る。特定のCUのサイズが2N×2Nであると仮定すると、イントラ予測は、2N×2NまたはN×NのPUサイズに対して実行され、インター予測は、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズに対して実行され得る。インター予測に対する非対称区分はまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対して実行され得る。非対称区分では、CUの一方の方向は区分されず、他方の方向は25%および75%に区分される。25%区分に対応するCUの部分は、「n」とその後に続く「上」、「下」、「左」、または「右」の表示によって示される。したがって、たとえば、「2N×nU」は、上の2N×0.5NのPUおよび下の2N×1.5NのPUで水平方向に区分された2N×2NのCUを指す。
【００５７】
本開示では、「N×N」および「N対N」は、垂直方向および水平方向の寸法に関するビデオブロックの画素の寸法、たとえば、16×16画素、または16対16画素を指すために、互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16画素(y=16)と水平方向に16画素(x=16)とを有する。同様に、N×Nブロックは、一般に、垂直方向にN画素と水平方向にN画素とを有し、ここでNは、負ではない整数値を表す。ブロック中の画素は、行および列に配置され得る。その上、ブロックは、必ずしも水平方向に垂直方向と同じ数の画素を有する必要があるとは限らない。たとえば、ブロックはN×M画素を備えることがあり、ここでMは必ずしもNと等しいとは限らない。
【００５８】
ピクチャ順序カウント(POC)は、ピクチャの表示順序を識別するためにビデオコーディング規格において広く使用されている。1つのコーディングされたビデオシーケンス内の2つのピクチャが同じPOC値を有し得る場合があるが、それは通常、コーディングされたビデオシーケンス内で発生しない。複数のコーディングされたビデオシーケンスがビットストリーム中に存在するとき、POCの同じ値をもつピクチャは、復号順序に関して互いに近いことがある。ピクチャのPOC値は、一般に、参照ピクチャリスト構築、HEVCの場合のような参照ピクチャセットの導出、およびモーションベクトルスケーリングのために使用される。
【００５９】
HEVCにおけるモーション補償は、現在のインターブロックのための予測子を生成するために使用される。1/4画素精度のモーションベクトルが使用され、分数精度の画素値が輝度成分と色差成分の両方のために隣接する整数画素値を使用して補間される。
【００６０】
HEVCでは、各ブロックについて、モーション情報のセットが利用可能であり得る。モーション情報のセットは、前方予測方向および後方予測方向のためのモーション情報を含む。ここで、前方予測方向および後方予測方向は、双方向予測モードの2つの予測方向であり、「前方」および「後方」という用語は、必ずしも幾何学的な意味を有するとは限らず、代わりに、これらの用語は、現在のピクチャの参照ピクチャリスト0(RefPicList0)および参照ピクチャリスト1(RefPicList1)に対応する。ピクチャまたはスライスについて1つの参照ピクチャリストのみが利用可能であるとき、RefPicList0のみが利用可能であり、スライスの各ブロックのモーション情報は常に前方である。
【００６１】
各予測方向について、モーション情報は、参照インデックスとモーションベクトルとを含まなければならない。場合によっては、簡単のために、モーションベクトルが関連する参照インデックスを有すると仮定されるような方法で、モーションベクトル自体が参照されることがある。参照インデックスは、現在の参照ピクチャリスト(RefPicList0またはRefPicList1)中の参照ピクチャを特定するために使用される。モーションベクトルは水平成分と垂直成分とを有する。
【００６２】
HEVC規格では、予測単位(PU)に対して、それぞれ、マージモード(スキップはマージの特別な場合であると見なされる)および高度モーションベクトル予測(AMVP)モードと名付けられた、2つのインター予測モードがある。AMVPモードまたはマージモードのいずれでも、モーションベクトル(MV)候補リストは、複数のモーションベクトル予測子のために維持される。現在のPUの、モーションベクトル、ならびにマージモードにおける参照インデックスは、MV候補リストから1つの候補をとることによって生成される。
【００６３】
MV候補リストは、マージモードのための最高で5つの候補とAMVPモードのための2つだけの候補とを含んでいる。マージ候補は、モーション情報のセット、たとえば、参照ピクチャリスト(リスト0およびリスト1)と参照インデックスの両方に対応するモーションベクトルを含み得る。マージ候補がマージインデックスによって特定される場合、現在のブロックの予測のために参照ピクチャが使用され、ならびに関連するモーションベクトルが決定される。しかしながら、リスト0またはリスト1のいずれかからの各々の潜在的な予測方向に対するAMVPモードのもとでは、AMVP候補がモーションベクトルのみを含んでいるので、MVPインデックスとともに参照インデックスがMV候補リストに明示的にシグナリングされる必要がある。AMVPモードでは、予測されるモーションベクトルはさらに改良され得る。
【００６４】
このように、マージ候補は、モーション情報のフルセットに対応し得るが、AMVP候補は、特定の予測方向および参照インデックスのための1つだけのモーションベクトルを含み得る。両モードに対する候補は、同じ空間的および時間的に隣接するブロックから同様に導出される。マージモードおよびAMVPモードに対する空間的に隣接する候補のさらなる詳細が、図4に関して以下で論じられる。
【００６５】
ビデオエンコーダ20およびビデオデコーダ30は、アフィンモーションモデルを使用してモーション補償を実行するように構成され得る。たとえば、単一の2次元モーションベクトルを伴う並進モーションモデルだけを使用する(すなわちHEVCのように)のとは対照的に、ビデオエンコーダ20およびビデオデコーダ30は、複数のモーションベクトルを含むアフィンモーションモデルを利用することができる。アフィンモーションモデルの使用のさらなる詳細が以下で論じられる。
【００６６】
CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、空間領域(画素領域とも呼ばれる)における予測画素データを生成する方法またはモードを記述するシンタックスデータを備えることがあり、TUは、変換、たとえば離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用することに続いて、変換領域における係数を備えることがある。残差データは、符号化されていないピクチャの画素と、PUに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUに対する残差データを表す量子化された変換係数を含むようにTUを形成し得る。すなわち、ビデオエンコーダ20は、(残差ブロックの形で)残差データを計算し、残差ブロックを変換して変換係数のブロックを作成し、次いで変換係数を量子化して量子化された変換係数を形成することができる。ビデオエンコーダ20は、量子化された変換係数、ならびに(たとえば、TUに対する情報を分割する)他のシンタックス情報を含むTUを形成し得る。
【００６７】
上述のように、変換係数を作成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮が行われるプロセスを指す。量子化プロセスは、係数の一部またはすべてと関連付けられたビット深度を低減することができる。たとえば、nビット値は、量子化の間にmビット値に丸められることがあり、ここで、nはmよりも大きい。
【００６８】
量子化に続いて、ビデオエンコーダは、変換係数を走査することができ、量子化された変換係数を含む2次元行列から1次元ベクトルを作成する。走査は、より高いエネルギー(それゆえより低い周波数)の係数をアレイの前方に置き、より低いエネルギー(それゆえより高い周波数)の係数をアレイの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化されることが可能なシリアル化されたベクトルを生成するために、量子化された変換係数を走査するためにあらかじめ定められた走査順序を利用し得る。他の例では、ビデオエンコーダ20は、適応走査を実行し得る。1次元ベクトルを形成するために、量子化された変換係数を走査した後、ビデオエンコーダ20は、たとえば、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応2値算術コーディング(CABAC)、シンタックスベースコンテキスト適応2値算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するための符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化し得る。
【００６９】
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関連し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおける符号語は、比較的より短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに等長符号語を使用して、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００７０】
一般に、ビデオデコーダ30は、符号化されたデータを復号するために、ビデオエンコーダ20によって実行されたプロセスと実質的に同様であるが逆のプロセスを実行する。たとえば、ビデオデコーダ30は、残差ブロックを再現するために受信されたTUの係数を逆量子化および逆変換する。ビデオデコーダ30は、予測されたブロックを形成するために、シグナリングされた予測モード(イントラ予測またはインター予測)を使用する。次いで、ビデオデコーダ30は、元のブロックを再現するために、予測されたブロックと残差ブロックとを(画素ごとに)組み合わせる。ブロック境界に沿った視覚的アーティファクトを低減するためにデブロッキングプロセスを実行するなど、追加の処理が実行され得る。さらに、ビデオデコーダ30は、ビデオエンコーダ20のCABAC符号化プロセスと逆ではあるが実質的に同様の方法で、CABACを使用してシンタックス要素を復号し得る。
【００７１】
ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、または、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、もしくはビデオパラメータセット(VPS)などの他のシンタックスデータにおいて、ビデオデコーダ30に送信することができる。
【００７２】
ビデオエンコーダ20およびビデオデコーダ30は各々、適用可能な場合、1つまたは複数のマイクロプロセッサ、処理回路(固定機能の回路および/またはプログラマブル処理回路を含む)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、これらのいずれもが、複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合されることがある。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話などのワイヤレス通信デバイスを備え得る。
【００７３】
図2は、本開示のアフィンモーション補償を実行するための技法を実施し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指し得る。
【００７４】
図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64(復号ピクチャバッファ(DPB)と呼ばれることもある)と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。次に、モード選択ユニット40は、モーション補償ユニット44と、モーション推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、(図2に示されていない)デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングする。追加のフィルタ(ループ内またはループ後)もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタリングし得る。
【００７５】
符号化プロセスの間に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。モーション推定ユニット42およびモーション補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測符号化を実行する。イントラ予測ユニット46は、代わりに、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測符号化を実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００７６】
その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをCTUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてCTUの各々をサブCUに区分し得る。モード選択ユニット40はさらに、CTUをサブCUに区分することを示す四分木データ構造を生成し得る。四分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
【００７７】
モード選択ユニット40は、たとえば誤差結果に基づいてイントラ予測モードまたはインター予測モードのうちの一方を選択することができ、得られた予測されたブロックを、残差データを生成するために加算器50に提供し、参照フレームとして使用するための符号化されたブロックを再構築するために加算器62に提供する。モード選択ユニット40はまた、モーションベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素を、エントロピー符号化ユニット56に与える。
【００７８】
モーション推定ユニット42およびモーション補償ユニット44は高度に集積され得るが、概念的な目的のために別々に図示される。モーション推定ユニット42によって実行されるモーション推定は、ビデオブロックのモーションを推定するモーションベクトルを生成するプロセスである。モーションベクトルは、たとえば、現在のフレーム(または他のコーディングされたユニット)内でコーディングされている現在のブロックに対する、参照フレーム(または他のコーディングされたユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分尺度によって決定され得る画素差分に関して、コーディングされるべきブロックとよく一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64内に記憶される参照ピクチャのサブ整数画素場所のための値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1画素場所の値、8分の1画素場所の値、または他の分数画素場所の値を補間し得る。したがって、モーション推定ユニット42は、フル画素場所および分数画素場所に対するモーション探索を実行し、分数画素精度でモーションベクトルを出力し得る。
【００７９】
モーション推定ユニット42は、PUの場所を参照ピクチャの予測ブロックの場所と比較することによって、インターコーディングされたスライス中のビデオブロックのPUのモーションベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されることがあり、それらの各々が、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを特定する。モーション推定ユニット42は、計算されたモーションベクトルをエントロピー符号化ユニット56およびモーション補償ユニット44に送る。
【００８０】
モーション補償ユニット44によって実行されるモーション補償は、モーション推定ユニット42によって決定されたモーションベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、モーション推定ユニット42およびモーション補償ユニット44は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのPUのモーションベクトルを受信すると、モーション補償ユニット44は、モーションベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックを位置特定し得る。加算器50は、以下で論じられるように、コーディングされている現在のビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって、残差ビデオブロックを形成する。一般に、モーション推定ユニット42は、輝度成分に対してモーション推定を実行し、モーション補償ユニット44は、色差成分と輝度成分の両方について、輝度成分に基づいて計算されたモーションベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際のビデオデコーダ30による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【００８１】
ビデオエンコーダ20は、図1に関して上で論じられ以下でより詳細に説明されるような、本開示の様々な技法のいずれかを実行するように構成され得る。たとえば、モーション補償ユニット44は、HEVCに従ってAMVPモードまたはマージモードを使用してビデオデータのブロックのモーション情報をコーディングするように構成されることがあり、かつ/または、本開示の技法に従ってアフィンインターモードもしくはアフィンマージモードを使用してアフィンモーション情報もしくはビデオデータのブロックをコーディングするように構成されることがある。
【００８２】
イントラ予測ユニット46は、上で説明されたように、モーション推定ユニット42とモーション補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
【００８３】
たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの間で最も良好なレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに、符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
【００８４】
ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(符号語マッピングテーブルとも呼ばれる)を含み得る、送信されたビットストリーム構成データの中に、コンテキストの各々のために使用する、様々なブロックのための符号化コンテキストの定義と、最もあり得るイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、修正されたイントラ予測モードインデックステーブルとを含め得る。
【００８５】
ビデオエンコーダ20は、モード選択ユニット40からの予測データをコーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、離散サイン変換(DST)、または他のタイプの変換が、DCTの代わりに使用され得る。いずれの場合にも、変換処理ユニット52は、変換を残差ブロックに適用し、変換係数のブロックを生成する。変換は、画素領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００８６】
量子化の後に、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後の送信もしくは取り出しのためにアーカイブされ得る。
【００８７】
逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、画素領域中で残差ブロックを再構築する。具体的には、加算器62は、参照ピクチャメモリ64に記憶するための再構築されたビデオブロックを生成するために、モーション補償ユニット44またはイントラ予測ユニット46によって早期に生成されたモーション補償された予測ブロックに、再構築された残差ブロックを加える。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、参照ブロックとして、モーション推定ユニット42およびモーション補償ユニット44によって使用され得る。
【００８８】
図3は、本開示のアフィンモーション補償を実行するための技法を実施し得るビデオデコーダ30の例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、モーション補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。モーション補償ユニット72は、エントロピー復号ユニット70から受信されたモーションベクトルに基づいて予測データを生成し得るが、一方、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【００８９】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化された係数と、モーションベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成する。エントロピー復号ユニット70は、モーション補償ユニット72にモーションベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
【００９０】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームがインターコーディングされる(すなわち、BまたはP)スライスとしてコーディングされるとき、モーション補償ユニット72は、エントロピー復号ユニット70から受信されたモーションベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づくデフォルトの構築技法を使用して、参照フレームリスト、リスト0、およびリスト1を構築し得る。
【００９１】
モーション補償ユニット72は、モーションベクトルと他のシンタックス要素とを構文解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、モーション補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数に対する構築情報、スライスの各々のインター符号化されたビデオブロックに対するモーションベクトル、スライスの各々のインターコーディングされたビデオブロックに対するインター予測状態、および現在のビデオスライスの中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【００９２】
ビデオデコーダ30は、図1に関して上で論じられ以下でより詳細に論じられるような、本開示の様々な技法のいずれかを実行するように構成され得る。たとえば、モーション補償ユニット72は、HEVCに従ってAMVPモードまたはマージモードを使用してモーションベクトル予測を実行するように構成されることがあり、かつ/または、本開示の技法に従ってアフィンインターモードもしくはアフィンマージモードを使用してアフィンモーション情報もしくはビデオデータのブロックを実行するように構成されることがある。エントロピー復号ユニット70は、モーション情報がどのようのコーディングブロックのためにコーディングされるかを表す1つまたは複数のシンタックス要素を復号し得る。
【００９３】
モーション補償ユニット72は、補間フィルタに基づいて補間を実行することもできる。モーション補償ユニット72は、参照ブロックのサブ整数画素の補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ20によって使用された補間フィルタを使用することができる。この場合に、モーション補償ユニット72は、受け取られたシンタックス要素から、ビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用することができる。
【００９４】
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化された変換係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオデコーダ30によって計算された量子化パラメータQPYをビデオスライス中の各ビデオブロックに使用することを含み得る。
【００９５】
逆変換ユニット78は、画素領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【００９６】
モーション補償ユニット72が、モーションベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後に、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックをモーション補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタリングする、デブロッキングフィルタも適用され得る。他のループフィルタ(コーディングループの中、またはコーディングループの後のいずれかにおける)も、画素の遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ内の復号されたビデオブロックは次いで、参照ピクチャメモリ82に記憶され、参照ピクチャメモリ82は、後続のモーション補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で提示するための、復号されたビデオを記憶する。
【００９７】
図4Aおよび図4Bは、High Efficiency Video Coding(HEVC)における空間的に隣接する候補を示す概念図である。上で論じられたように、空間的MV候補は、特定のPU(PU0)に対して隣接ブロックから導出され得るが、ブロックから候補を生成する方法は、マージモードとAMVPモードとで異なる。
【００９８】
図4Aは、マージモードにおいてビデオコーダがどのように空間的MV候補を導出し得るかの例を示す。マージモードでは、最高で4つの空間的MV候補が、図4Aにおいて番号で示される順序で導出されてよく、順序は、図4Aに示されるように、左(0)、上(1)、右上(2)、左下(3)、および左上(4)である。
【００９９】
図4Bは、AVMPモードにおいてビデオコーダがどのように空間的MV候補を導出し得るかの例を示す。図4Bに示されるように、AMVPモードでは、隣接ブロックは2つのグループ、すなわちブロック0および1からなる左のグループと、ブロック2、3および4からなる上のグループに分割される。各グループに対して、シグナリングされた参照インデックスによって示される参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、グループの最終候補を形成するために選択されるための最高の優先度を有する。すべての隣接ブロックが、同じ参照ピクチャを指すモーションベクトルを含まないことが可能である。したがって、そのような候補を見出すことができない場合、第1の利用可能な候補が、最終候補を形成するようにスケーリングされるので、時間的距離の差が補償され得る。
【０１００】
図5は、4つのアフィンパラメータに関してアフィンである2点モーションベクトルを示す概念図である。図5に示されるように、v0と表記される(v0x, v0y)は現在のブロック500の左上の角502に対するCPMVであり、v1と表記される(v1x, v1y)は現在のブロック500の右上の角504に対するCPMVである。上で論じられたように、現在のブロック500に対するCPMVは、上の式(2)に従って表されるモーションベクトルフィールド(MVF)を形成し得る。
【０１０１】
JEMテストモデルでは、アフィンモーション予測は正方形のブロックだけに適用される。自然な拡張として、アフィンモーション予測は非正方形のブロックに適用され得る。
【０１０２】
図6は、アフィンインターモードを示す概念図である。16×16以上のサイズを有するブロック(たとえば、CU/PU)に対して、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、次のようにアフィンインター(AF_INTER)モードを適用することができる。いくつかの例では、現在のブロック(たとえば、現在のCU/PU)がアフィンインターモードにある場合、ビデオコーダはビットストリームの中のCU/PUレベルにおいてアフィンフラグをシグナリングすることができる。ビデオコーダは、現在のブロックの隣接する有効な再構築されたブロックのモーションベクトルを使用して、現在のブロックに対するモーションベクトル候補リストを構築することができる。たとえば、図6の例に示されるように、左上のCPMV v0に対するモーションベクトル候補予測子は、ブロック602A、602B、および602C(すなわち、現在のブロック600の左上の角と接触している隣接ブロック)のモーションベクトルから選択され得る。ビデオコーダは、参照リストと、隣接ブロックに対する参照のPOC、現在のCU/PUに対する参照のPOC、および現在のCU/PUのPOCの間の関係とに従って、隣接ブロックからのモーションベクトルをスケーリングすることができる。ビデオコーダは、隣接ブロック602Dおよび602E(すなわち、現在のブロック600の右上の角と接触している隣接ブロック)から右上のCPMV v1に対するモーションベクトル候補予測子を選択するために、同様の手法を実行することができる。したがって、いくつかの例では、候補リストは次のように表され得る。{(v0,v1)|v0={v602A,v602B,v602C},v1={v602D,v602E}}
【０１０３】
候補リストの数が閾値(たとえば、2、3、または4)より小さい場合、ビデオコーダはAMVPの候補をv0およびv1に割り当てることができる。ビデオコーダは、現在のブロックの制御点モーションベクトル予測(CPMVP)としてどの(v0,v1)を選択すべきかを決定するために、現在のブロックのレートひずみ最適化(RDO)コストを利用することができる。ビデオコーダは、ビットストリームの中の候補リストにおいて、CPMVPの場所を示すためのインデックスをシグナリングすることができる。
【０１０４】
現在のアフィンブロックのCPMVPに基づいて、ビデオコーダはアフィンモーション推定を適用してCPMVを決定することができる。ビデオコーダは、ビットストリームにおいてCPMVとCPMVPとの差分の表現をコーディングすることができる。
【０１０５】
ビデオコーダは、上で説明されたようなアフィンモーション補償予測を実行して、現在のブロックの残差を生成することができる。ビデオコーダは、現在のブロックの生成された残差を変換および量子化し、量子化された残差をビットストリームへと(たとえば、HEVCと同様の方式で)コーディングすることができる。
【０１０６】
図7Aおよび図7Bは、アフィンマージモードに対する候補を示す概念図である。アフィンマージ(AF_MERGE)モードを現在のブロックに適用するとき、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、現在のブロックの有効な隣接する再構築されたブロックからアフィンモードでコーディングされる最初のブロックを取得することができる。いくつかの例では、ビデオコーダは、アフィンモードでコーディングされる最初のブロックを取得するために、特定の選択順序で隣接する再構築されたブロックを解析することができる。図7Aは、例示的な選択順序を示す。図7Aに示されるように、選択順序は、左のブロック702A、上のブロック702B、右上のブロック702C、左下のブロック702D、左上のブロック702Eであり得る。
【０１０７】
図7Bは、左のブロックがアフィンモードでコーディングされる選択順序において最初のブロックである例を示す。図7Bに示されるように、ビデオコーダは、選択されたブロック1002Aを含むCU/PU704の左上の角(v2)、右上の角(v3)、および左下の角(v4)のモーションベクトルを導出することができる。ビデオコーダは、選択されたブロックの導出されたモーションベクトル(すなわち、v2、v3、およびv4)に基づいて、現在のブロック700の左上の角のモーションベクトル(すなわち、v0)および現在のブロック700の右上の角のモーションベクトル(すなわち、v1)を決定/計算することができる。
【０１０８】
ビデオコーダは、式(2)において上で説明された簡略化されたアフィンモーションモデルに従って、現在のブロック700のCPMV v0およびv1に基づいて現在のブロック700のMVFを決定することができる。ビデオコーダは、上で説明されたようにMVFを使用してアフィンMCPを適用することができる。
【０１０９】
現在のブロックがアフィンマージモードでコーディングされるかどうかを特定するために、ビデオコーダは、アフィンモードでコーディングされる少なくとも1つの隣接ブロックがあるとき、アフィンフラグをビットストリームにおいてシグナリングすることができる。隣接するアフィンブロックが現在のブロックに対して存在しない場合、ビデオコーダは、ビットストリームにおいてアフィンフラグをコーディングすることを省略でき、または、現在のブロックに対して隣接するアフィンブロックが存在しないことを示すためにアフィンフラグをコーディングすることができる。
【０１１０】
上で論じられたように、既存のアフィンモーションモデルの方法(たとえば、JEMテストモデルおよびContribution 1016における)には、いくつかの問題および/またはいくつかの欠点がある。一例として、Contribution 1016では、4パラメータのアフィンモーションが、MVxおよびMVyにおけるアフィンパラメータに対する制約を課しており、対称的なスケーリング特性を有することをMVxおよびMVyに強いる。この制約は多様化したビデオコンテンツにおいては当てはまらないことがある。
【０１１１】
別の例として、アフィンマージモードは、左下の角および右上の角に主に依存するあらかじめ定められた確認順序に依存する。このあらかじめ定められた順序は、左上の角の優先度を最低にする一方で、この角の情報は以下のアフィンモデル導出において大いに使用される。
【０１１２】
別の例として、アフィンマージは、隣接ブロックの角のMVを現在のブロックの角へと歪めることによって、隣接モデルを受け継ぐことだけが可能である。隣接アフィンモデルを受け継ぐときにアフィンモデルパラメータを変更または調整するための柔軟性はない。
【０１１３】
本開示の1つまたは複数の技法によれば、ビデオコーダは、ビデオデータの予測子ブロックがどのように特定されるかを示すシンタックス要素をコーディングすることができる。たとえば、ビデオコーダは、ビデオデータの現在のブロックに対するビデオデータの予測子ブロックを特定するために、4パラメータのアフィンモデルが使用されるか6パラメータのアフィンモデルが使用されるかを示すシンタックス要素をコーディングすることができる。4パラメータのアフィンモデルと6パラメータのアフィンモデルとの間での選択を可能にすることによって、本開示の技法は非対称なスケーリング特性をモーションベクトルが有することを可能にでき、これはコーディング効率を改善し得る。
【０１１４】
いくつかの例では、ビデオコーダは、コーディング単位(CU)レベルでシンタックス要素をコーディングすることができる。たとえば、CUの中の現在のブロックに対して4パラメータのアフィンモーションモデルが使用されるか6パラメータのアフィンモーションモデルが使用されるかを示すために、CUレベルにおいてフラグが導入され得る。
【０１１５】
いくつかの例では、ビデオコーダは、ビデオデータの現在のブロックによって参照される、スキップモードシンタックスまたはマージモードシンタックスにおいてシンタックス要素をコーディングすることができる。たとえば、現在のブロックに対して4パラメータのアフィンモーションモデルが使用されるか6パラメータのアフィンモーションモデルが使用されるかを示すために、スキップモードまたはマージモードにおいてフラグが導入され得る。
【０１１６】
いくつかの例では、ビデオコーダは、ビデオデータの現在のブロックによって参照される、インターモードシンタックスにおいてシンタックス要素をコーディングすることができる。たとえば、現在のブロックに対して4パラメータのアフィンモーションモデルが使用されるか6パラメータのアフィンモーションモデルが使用されるかを示すために、(現在のブロックがスキップモードでもマージモードでもない場合)インターモードにおいてフラグが導入され得る。
【０１１７】
いくつかの例では、ビデオデータの現在のブロックに対するビデオデータの予測子ブロックが4パラメータモデルのアフィンモデルを使用して特定されるか6パラメータモデルのアフィンモデルを使用して特定されるかを示すだけであることとは対照的に、ビデオコーダは、ビデオデータの現在のブロックに対するビデオデータの予測子ブロックが、単一のモーションベクトルを使用して特定されるか、4パラメータのアフィンモデルを使用して特定されるか、6パラメータのアフィンモデルを使用して特定されるか、または切り替え可能な4/6パラメータのアフィンモデルを使用して特定されるかを示すために、シンタックス要素をコーディングすることができる。たとえば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、および/またはスライスヘッダの中の1つのシンタックス要素が、1)アフィン無効、2)4パラメータのアフィン、3)6パラメータのアフィン、4)4/6切り替え可能なアフィンのうちのいずれが現在のシーケンス/ピクチャ/スライスに使用されるかをシグナリングするために存在し得る。シンタックス要素は、単項符号語、切捨単項(truncated unary)符号語、または固定長符号語を使用してコーディングされ得る。
【０１１８】
いくつかの例では、ビデオコーダは、ビデオデータの予測子ブロックを特定するために使用されるアフィンモデルにおいて使用されるパラメータの数が切り替え可能であるかどうかを示す、有効化シンタックス要素をコーディングすることができる。たとえば、ビデオコーダは、切り替え可能なアフィンモデルがシーケンスパラメータセット(SPS)を参照するピクチャに対して有効にされるか、ピクチャパラメータセット(PPS)を参照するピクチャに対して有効にされるか、またはスライスヘッダを参照するピクチャに対して有効にされるかを示すために、SPS、PPS、および/またはスライスヘッダにおいてフラグをコーディングすることができる。
【０１１９】
ビデオデータの予測子ブロックを特定するために使用されるアフィンモデルにおいて使用されるパラメータの数が切り替え可能であることを有効化シンタックス要素が示す場合(たとえば、有効化シンタックス要素が値1を伴うフラグである場合)、ビデオコーダは、上で論じられたようなビデオデータの現在のブロックに対するビデオデータの予測子ブロックを特定するために、4パラメータのアフィンモデルが使用されるか6パラメータのアフィンモデルが使用されるかを示すシンタックス要素をコーディングすることができる。たとえば、ビデオデータの予測子ブロックを特定するために使用されるアフィンモデルにおいて使用されるパラメータの数が切り替え可能であることを有効化シンタックス要素が示す場合(たとえば、有効化シンタックス要素が値1を伴うフラグである場合)、4パラメータのアフィンモデルと6パラメータのアフィンモデルの両方が有効にされ、4パラメータモデルまたは6パラメータモデルの使用を示すために、各ブロックに対する追加のフラグがシグナリングされ得る。
【０１２０】
ビデオデータの予測子ブロックを特定するために使用されるアフィンモデルにおいて使用されるパラメータの数が切り替え可能ではないことを有効化シンタックス要素が示す場合(たとえば、有効化シンタックス要素が値0を伴うフラグである場合)、ビデオコーダは、4パラメータのアフィンモデルが使用される(すなわち、アフィンが使用される場合)と決定することができる。そのような例では、ビデオコーダは、ビデオデータの現在のブロックに対するビデオデータの予測子ブロックを特定するために、4パラメータのアフィンモデルが使用されるか6パラメータのアフィンモデルが使用されるかを示すシンタックス要素のコーディングを省略することができる。
【０１２１】
いくつかの例では、上で説明されたシンタックス要素(すなわち、アフィンパラメータ(4パラメータまたは6パラメータ)フラグおよび/または有効化シンタックス要素)のうちの1つまたは複数が、隣接ブロックのアフィンパラメータの使用法に応じてCABACコンテキストモデルを使用してコーディングされ得る。一例では、現在のアフィンパラメータコンテキストインデックスCtxValは、左および上の隣接ブロックに依存する。左の隣接ブロックが利用可能ではない場合、またはアフィンモードではない場合、または6パラメータのアフィンではない場合、leftCtxは0に設定され、それ以外の場合(左が利用可能である、かつ6パラメータのアフィンモード)leftCtxは1に等しく設定される。aboveCtxを得るために、上の隣接ブロックに対して同様の計算が行われ得る。次いで、現在のブロックのCtxValがleftCtx+aboveCtxに等しく設定される。この場合、CtxValは両端を含めて[0,2]の範囲にある。leftCtx(aboveCtx)を設定する他の変形も可能である。たとえば、leftCtx(aboveCtx)は、左(上)の隣接ブロックが利用可能ではない場合、またはアフィンコーディングされない場合、0に等しく設定され、左(上)の隣接ブロックが4パラメータのアフィンを使用している場合、1に等しく設定され、左(上)の隣接ブロックが6パラメータのアフィンを使用している場合、2に等しく設定される。この場合、CtxValは両端を含めて[0,4]の範囲にある。
【０１２２】
いくつかの例では、上で説明されたシンタックス要素(すなわち、アフィンパラメータ(4パラメータまたは6パラメータ)フラグおよび/または有効化シンタックス要素)のうちの1つまたは複数が、現在のブロックのサイズに応じてCABACコンテキストモデルを使用してコーディングされることがあり、異なるコンテキストを区別するためにブロックサイズの閾値が使用されることがある。たとえば、context0が16×16以下のブロックサイズに使用され、一方、コンテキスト1が16×16より大きいブロックサイズに使用される。閾値はビットストリームにおいてあらかじめ定められ、またはシグナリングされ得る。ブロックのサイズは、現在のブロックの幅および高さによって、別々にまたは一緒に指定され得る。たとえば、サイズは幅*高さの値で表され得る。
【０１２３】
いくつかの例では、上で説明されたシンタックス要素(すなわち、アフィンパラメータ(4パラメータまたは6パラメータ)フラグおよび/または有効化シンタックス要素)のうちの1つまたは複数はまた、どのようなコンテキストもなしでCABACバイパスモードを使用してコーディングされ得る。
【０１２４】
図8は、本開示の1つまたは複数の技法による、6パラメータのアフィンモーションモデルを示す概念図である。4パラメータのアフィンモデルは2つのモーションベクトルを含むことがあり、6パラメータのアフィンモデルは3つのモーションベクトルを含むことがある。6パラメータのアフィンモーションモデルが使用されるときなどの、いくつかの例では、ビデオコーダは、インターモードのために、ビットストリームにおいて3つのモーションベクトル差分(MVD)をコーディングすることができる。3つのモーションベクトル予測子は、隣接モーションベクトルから生成され、または隣接モーションベクトルから導出され得る。隣接するモーションベクトルは、アフィンモーションベクトルであることがあり、またはそうではないことがある。たとえば、現在のブロック800の3つの角の中の現在のブロックv0(MV0)、v1(MV1)、およびv2(MV2)の中の3つのモーションベクトルは、図8に示されるようにコーディングされ得る。v0を予測するために、802A(左上)、802B(上)、および802C(左)のモーションベクトルが可能性のある候補である。同様に、802D(上)および802E(右上)のモーションベクトルがv1を予測するための可能性のある候補であり、802F(左)および802G(左下)のモーションベクトルがv2を予測するための可能性のある候補である。いくつかの例では、あらかじめ定められた確認順序における各場所に対する最初の利用可能な候補が、その予測子として直接使用される。
【０１２５】
3つのモーションベクトル予測子は、検証、分類、および重複解消の方式を使用して組合せのリストから選択されることがあり、最初の少数(K個)の組合せだけが可能性のある予測子として使用され、ここでK≧1である。いくつかの例では、ビデオコーダは、隣接する利用可能なモーションベクトルを使用して、すべての予測子の完全な組合せを生成することができる。図8に示されるように、全体で3×2×2=12個の組合せがあり得る。
【０１２６】
第1のステップにおいて、各組合せに対して、ビデオコーダは検証確認を実行することができる。MV0がMV1に等しくMV0がMV2に等しい場合、この組合せは無効である。それ以外の場合、有効である。第2のステップにおいて、ビデオコーダは、パラメータの類似性に基づいて分類を実行することができる。たとえば、現在のブロックが次のように6パラメータのアフィンモードを使用しており、a、b、c、d、e、およびfがモデルパラメータである場合、アフィンモーションモデルは、以下で複製される式(3)に従って表され得る。
【０１２７】
【数４】
2019519980.tif 000006
【０１２８】
6パラメータのアフィンモデルを使用すると、3つの角のモーションベクトルは次のように表され得る。
【０１２９】
【数５】
2019519980.tif 000007
【０１３０】
図9は、本開示の1つまたは複数の技法による、アフィンモーションベクトルの評価を示す概念図である。モデルの正確さを評価するために、本開示は、推定差分(ED:estimated difference)と呼ばれるパラメータを導入する。同時に、2つの隣接ブロックMVが、図9に示されるように幅の半分および高さの半分に位置する隣接ブロック902Hおよび902Iにおいて強調される評価プロセスにおいて使用され得る。したがって、以下の通りである。
【０１３１】
【数６】
2019519980.tif 000008
【０１３２】
すべての組合せの中で、小さい方から最初の少数(K個)のEDの組合せが、最終的な予測子として選択され得る。以下は例示的なEDの計算である。
Δa×高さ=abs((MV1_vx-MV0_vx)-(MVH_vx-MV0_vx)×2)×高さ
Δb×幅=abs((MV2_vx-MV0_vx)-(MVI_vx-MV0_vx)×2)×幅
Δd×高さ=abs((MV1_vy-MV0_vy)-(MVH_vy-MV0_vy)×2)×高さ
Δe×幅=abs((MV2_vx-MV0_vx)-(MVI_vy-MV0_vy)×2)×幅      (6)
【０１３３】
ビデオコーダは、上の4つの要素の合計に等しくEDを設定することができる。
ED=Δa+Δb+Δd+Δe  (7)
【０１３４】
いくつかの例では、ビデオコーダは、アフィンモーションベクトルの類似性に基づいて分類を実行することができる。一例では、3つのモーションベクトルが与えられると、ビデオコーダは6パラメータのアフィンモデルを使用して第4のモーションベクトルを予測することができる。予測の差分はEDにおいて加算されることがあり、EDが最も小さい方から最初の少数の組合せがMV予測候補として選ばれることがある。
【０１３５】
モーションベクトル予測子は、4パラメータのアフィンモデルを使用して他の予測値にまたがって生成され得る。たとえば、最初の2つの再構築されたMVが与えられると、ビデオコーダは、4パラメータのアフィンモデルを使用して第3のMV予測子を生成することができる。たとえば、MV2に対するMV予測子は、上の式(2)を使用することによって、現在のブロックのMV0およびMV1に基づいて導出され得る。
【０１３６】
いくつかの例では、アフィンモーションベクトル予測子は、現在のフレーム内の以前にコーディングされたアフィンモーションベクトルから生成され得る。一例では、N(N≧0)個のアフィンモーションベクトルのセットを、各フレームの最初に初期化することができ、各アフィンブロックをコーディングした後で、最近コーディングされたアフィンモーションベクトルでリストが更新され、リストの中から選ばれたアフィンモーション予測子を示すためにインデックスがシグナリングされる。ビデオコーダは、切捨単項符号、またはフラグプラス切捨単項符号を使用して、インデックスをコーディングすることができる。
【０１３７】
いくつかの例では、K(K≧0)個のアフィンモデルパラメータのセットが、各フレームの最初に初期化される。各アフィンブロックがコーディングされた後で、パラメータのセットは、コーディングされたアフィンモデルパラメータで更新される。たとえば、6パラメータモデルでは、ビデオコーダはN個のベクトルのリストを維持することができ、ここで各ベクトルは6個の要素をもち{ai, bi, ci, di, ei, fi}によって表される。同様に、4パラメータモデルでは、ビデオコーダはM個のベクトル{aj, bj, cj, dj}のリストを維持することができる。MおよびNは同じであってもよく同じではなくてもよいことに留意されたい。
【０１３８】
上で言及された技法では、アフィンインターモードのために、ビデオコーダは、アフィンモデルの各MVのモーションベクトル予測子を、その隣接する場所のMVを使用することによって個別に導出することができる。本開示の1つまたは複数の技法によれば、アフィンモーションが隣接ブロックによって使用されるとき、隣接ブロックのアフィンモーションモデルを使用し得るビデオコーダは、現在のブロックのアフィンモーションモデルのすべてのMVを予測することができ、すなわち、現在のアフィンモデルのMV0およびMV1(および6パラメータモデルではMV2)の予測子が隣接ブロックのアフィンモーションから外挿され、次いでMVDをコーディングすることができる。
【０１３９】
上で言及された差分予測方法は共同で使用され得る。たとえば、どのMV予測方法が使用されるかを示すために、フラグまたはインデックスがシグナリングされ得る。いくつかの例では、上で言及された差分予測方法を使用することによって導出される予測子は、MV予測子候補リストを生成するために使用され、どの候補が現在のアフィンモーションモデルを予測するために使用されるかを示すために、フラグまたはインデックスが使用される。
【０１４０】
4パラメータのアフィンモーションモデルが使用されるとき、「MV0およびMV1」または「MV0およびMV2」(図8に示されるようなv0およびv1またはv0およびv2)のいずれかが、現在のCU/PUのアフィンモーションを表すために使用され得る。現在のCU/PUの幅および高さが異なるとき、モーションベクトルのどのペアが使用されるかを決定するために、ある種の規則が使用され得る。
【０１４１】
一例では、幅が高さ以上である(または高さより少しだけ大きい)とき、または幅と高さの比が閾値より大きいとき、MV0およびMV1のペアを使用することができ、それ以外の場合、MV0およびMV2のペアを使用することができる。閾値は、ブロックサイズに依存することがあり、または幅/高さに依存することがある。
【０１４２】
技法は、アフィンマージモードとアフィンインターモードの両方に適用されることがあり、または、それらのうちの一方、たとえばアフィンマージモードだけに適用されることがある。
【０１４３】
ビデオコーダは、(たとえば、マージモードにおいて)隣接ブロックを選択するために、特定の確認/評価順序を使用することができる。いくつかの例では、ビデオコーダは、アフィンマージモードに対して、隣接ブロックを確認するために上→左→左上→右上→左下の順序を使用することができる。この順序は、D→F→A→E→Gとして図9のブロックに対応する。隣接ブロックが利用可能ではないとき、またはアフィンコーディングされるブロックではないとき、ビデオコーダは、5つの候補すべてが確認されるまで、あらかじめ定められた順序で確認を適用することができる。
【０１４４】
いくつかの例では、利用可能な隣接アフィンモーションブロックがない場合、ビデオコーダは、マージモードのための候補として、あるデフォルトの、またはあらかじめ定められた、またはあらかじめ計算されたアフィンモーションモデルを挿入することができる。挿入されたモデルは、ピクチャレベルとして初期化することができ、オンザフライで更新され得る。
【０１４５】
いくつかの例では、有効な隣接アフィンモデルがない場合、ビデオコーダは、「上→左→左上→右上→左下」の順序に従って隣接ブロックを確認した後で、デフォルトの、またはあらかじめ定められた、またはあらかじめ計算されたアフィンモーションモデルの挿入を実行することができる。
【０１４６】
いくつかの例では、ビデオコーダは、現在のブロック、および切捨単項符号語、または単項符号語、または指数ゴロム符号語、またはゴロムファミリー符号語、またはインデックスをコーディングするために使用され得るこれらの連結のために、どの隣接アフィンモデルがコピーされるかを示すために、アフィンマージインデックスをコーディングすることができる。
【０１４７】
他の情報から導出/推測される切り替え可能な4パラメータおよび6パラメータのアフィンモデル。いくつかの例では、ビデオコーダは、インター予測方向情報からアフィンパラメータを導出することができる。各ブロックに対して、ブロックがインターモードを使用してコーディングされるとき、予測参照フレームインデックスは、refList0から、またはrefList1から、またはrefList0とrefList1の両方からのものであり得る。本開示の1つまたは複数の技法によれば、単予測が使用されるとき(refList0から予測されるか、またはrefList1から予測されるかのいずれか)、ビデオコーダは、3つのモーションベクトルの差分がビットストリームにおいてコーディングされる、6パラメータのアフィンモデルを使用することができる。(refList0とrefList1の両方から予測される)双予測が使用されるとき、ビデオコーダは、2つのモーションベクトルの差分がビットストリームにおいてコーディングされる、4パラメータのアフィンモデルを使用することができる。そのような例の一部では、ビデオコーダは、ビデオデータの現在のブロックに対するビデオデータの1つまたは複数の予測子ブロックを特定するために、4パラメータのアフィンモデルが使用されるか6パラメータのアフィンモデルが使用されるかを明示的に示すシンタックス要素のコーディングを省略することができる。
【０１４８】
本開示の1つまたは複数の技法によれば、双予測ブロックに対して、L1ZeroMVDFlagがオンであるとき、ビデオコーダは、送信されるMVDがなくても、refList1に対して6パラメータのアフィンモデルを有効にすることができる。この場合、ビデオコーダは、3つのモーションベクトル予測子によって確立される6パラメータのアフィンモデルを通じて、モーション補償された予測子を生成することができる。
【０１４９】
いくつかの例では、アフィンパラメータは隣接ブロックから導出され得る。隣接ブロックの多数派が4パラメータのアフィンモデルを使用している場合、現在のブロックも4パラメータのアフィンモデルを使用する。同様に、隣接ブロックの多数派が6パラメータのアフィンモデルを使用している(6パラメータのアフィンの数が4パラメータのアフィンの数より大きい)とき、現在のブロックも6パラメータのアフィンモデルを使用する。多数派の隣接ブロックによるアフィンの使用法を決定する際に、ある単位サイズ(4×4ブロックに対する)での隣接ブロックの数を計算するために、カウンタが使用され得る。隣接するアフィンモデルがない場合、デフォルトモードとして6パラメータのアフィンモデルが使用される(あるいは、4パラメータのアフィンモデルがデフォルトとして使用される)。4パラメータのアフィンモデルの数が6パラメータモデルの数に等しいとき、6パラメータのアフィンモデルがデフォルトとして使用される(あるいは、4パラメータのアフィンモデルがデフォルトとして使用される)。
【０１５０】
アフィンモデルフラグおよびモーションベクトルのフレームにまたがる決定。本開示の1つまたは複数の技法によれば、ビデオコーダは、アフィンパラメータフラグ(4パラメータモードまたは6パラメータモード)またはアフィンモーションベクトル情報を明示的にシグナリングする代わりに、フレームにまたがるアフィンモーションモデルパラメータを使用することができる。一例では、現在のブロックは、併置されたブロックからアフィンパラメータモデルフラグを受け継ぐ。併置されたブロックは、同じ位置からのものであるが、同じ時間レベルで以前にコーディングされたピクチャの中にあるブロックである。併置されたブロックは、現在のブロックと同じ区分サイズを有することも有しないこともある。本開示の1つまたは複数の技法によれば、ビデオコーダは、併置された領域の中のすべてのサブブロック(4×4の単位の)を確認することができ、多数派のアフィンモデルが現在のブロックのために使用される。併置された領域の中にアフィンモデルがない場合、ビデオコーダは、4パラメータまたは6パラメータを切り替えるフラグを明示的にコーディングすることができる。いくつかの例では、6(または4)パラメータのアフィンがデフォルトとして使用される。いくつかの例では、複雑さを下げるために、ラスター走査順序において併置された領域の中の最初のアフィンサブブロックが確認され、現在のブロックによって受け継がれる。
【０１５１】
別の例では、現在のブロックは、併置されたブロックから直接、アフィンモーションモデルパラメータ{a, b, c, d, e, f}または{a, b, c, d}を受け継ぐ。併置されたブロックは、同じ位置からのものであるが、同じ時間レベルで以前にコーディングされたピクチャの中にあるブロックである。併置されたブロックは、現在のブロックと同じ区分サイズを有することも有しないこともある。本開示の1つまたは複数の技法によれば、ビデオコーダは、併置された領域の中のすべてのサブブロック(4×4の単位の)を確認することができ、現在のブロックは、多数派のアフィンエリアのモーションモデルパラメータを受け継ぐ。併置された領域の中にアフィンモデルがない場合、ビデオコーダは、4パラメータまたは6パラメータを切り替えるフラグを明示的にコーディングすることができる。いくつかの例では、6(または4)パラメータのアフィンがデフォルトとして使用される。いくつかの例では、複雑さを下げるために、ラスター走査順序において併置された領域の中の最初のアフィンサブブロックが確認され、現在のブロックによって受け継がれる。いくつかの例では、上の例の組合せが一緒に使用され得る。ビデオコーダは、そのような継承が、PU、CUレベル、PPS、またはSPSなどの異なるレベルにおいて使用されるかどうかを示すために、フラグをコーディングすることができる。
【０１５２】
アフィンパラメータ情報を前提としたアフィンモーション補償。再構築プロセスにおいて、3つのモーションベクトル(たとえば、現在のブロックの中の角のモーションベクトル)が与えられると、6パラメータのアフィンモデルが式(4)を解くことによって確立され得る。6パラメータのモデルが与えられると、画素ごとのモーションベクトルが、画素場所(x,y)を式(3)に代入することによって計算され得る。モーション補償の複雑さを下げるために、各サブブロックK×Kに対して1つのモーションベクトルを使用することができ、Kは1以上の整数である。代表的なモーションベクトルは、K×Kのサブブロック内の左上の画素場所を使用して、またはK×Kのサブブロックの中心の場所を使用して計算され得る。サイズKは、明示的にシグナリングされ、またはデフォルト値として設定され、または、画素のグループが同じモーションベクトルを共有するかどうかに基づいてオンザフライで計算され得る。
【０１５３】
アフィンモーションベクトルのコーディング。隣接する(アフィンモデルの検証に関して)有効な重複解消されたモーションベクトルからの予測子が、現在のアフィンモーションベクトルを特定/予測するために使用され得る。直近の以前に重複解消されたコーディングされたアフィンモーションベクトルからの予測子が、現在のアフィンモーションベクトルを特定/予測するために保持され得る。予測子の数はKであることがあり、Kは1以上の整数である。そのような予測子はアフィン予測子リストを形成する。Kはビットストリームにおいてあらかじめ定められ、またはシグナリングされ得る。
【０１５４】
いくつかの例では、上の技法の両方の組合せが、予測子リストを保持するために使用され得る。たとえば、ビデオコーダは、現在のアフィンモーションベクトルを特定/予測するために、直近の以前に重複解消されたコーディングされたアフィンモーションベクトルからの予測子とともに、隣接する(アフィンモデル検証に関して)有効な重複解消されたモーションベクトルからの予測子を使用することができる。
【０１５５】
ビデオコーダは、予測子の使用法を示すために、ビットストリームにおいて予測子インデックスを明示的にシグナリングすることができる。6パラメータモデルの場合は3つのMVDがコーディングされ得るが、4パラメータモデルの場合は2つのMVDがコーディングされ得る。
【０１５６】
MVDは、従来のMVDコーディングとは異なる二値化方法を使用し得る。一例では、アフィンMVDは別個のコンテキストモデリングを使用してコーディングされる。別の例では、アフィンMVDコーディングは、従来のインターMVDコーディング(たとえば、HEVCの場合のような)と同じMVDコーディングのコンテキストモデリングを共有する。
【０１５７】
MVDは、4パラメータのアフィンモデルまたは6パラメータのアフィンモデルのいずれかに対するブロックの中での相対的な位置に基づいて、各MVDに対して異なる二値化方法を使用することができる。一例では、アフィンMVDは、4パラメータのアフィンモデルまたは6パラメータのアフィンモデルのいずれかに対するブロックの中での相対的な位置に基づいて、異なるコンテキストモデリングを使用してコーディングされ得る。
【０１５８】
モーションベクトルのコーディングをさらに改善するために、両方の方向(X方向およびY方向)におけるMVDが、アフィンモーションベクトルのうちの1つまたはすべてに対して0であるかどうかを示すための、フラグがシグナリングされ得る。そのようなフラグ(AllZeroFlag)が1である場合、MVD_xおよびMVD_yを一緒にコーディングするために、新規のMVDVコーディングが導入される。具体的には、AllZeroFlagが1である場合、MVD_xとMVD_yの両方が0であると推測され、そうではなくMVD_xが0である場合、MVD_yは0以外でなければならない。この場合、abs(MVD_y)-1がコーディングされる。言い換えると、各モーションベクトルに対して、フラグAllZeroFlagがシグナリングされ、AllZeroFlagが0である場合、2つのMVDコーディングがそれに続く。4パラメータのアフィンでは、各リストに対して、2つのAllZeroFlagがコーディングされ、一方6パラメータのアフィンでは、各リストに対して、3つのAllZeroFlagがコーディングされる。
【０１５９】
いくつかの例では、AllZeroFlagは拡張されて、双予測における両方の参照リストの中のすべての0のMVDを表すことができる。たとえば、4パラメータのアフィンでは、全体で2つのAllZeroFlagが2つの参照リストに対してコーディングされ、6パラメータのアフィンでは、全体で3つのAllZeroFlagが2つの参照リストに対してコーディングされる。
【０１６０】
図10は、重複ブロックモーション補償(OBMC)の例を示す。H.263の開発において提案されているが、OBMCは、8×8ブロックに対して実行され、2つの接続された隣接する8×8ブロックのモーションベクトルが、現在のブロックのために使用される。たとえば、現在のマクロブロックの中の第1の8×8ブロックに対して、第1の8×8ブロックのモーションベクトルのほかに、第1の8×8ブロックの上および左の隣接モーションベクトルも、2つの追加の予測ブロックを生成するために適用される。同様に、現在のマクロブロックの中の第2の8×8ブロックに対して、第2の8×8ブロックのモーションベクトルのほかに、第2の8×8ブロックの上および右の隣接モーションベクトルも、2つの追加の予測ブロックを生成するために適用される。たとえば、図10の例では、ブロック1004Aおよびブロック1004Bのモーションベクトルは、16×16のマクロブロック1000の8×8ブロック1002Aに対する追加の予測ブロックを生成するために使用されることがあり、ブロック1006Aおよびブロック1006Bのモーションベクトルは、マクロブロック1000の8×8のブロック1002Bに対する追加の予測ブロックを生成するために使用されることがある。このようにして、現在の8×8ブロックの各画素は3つの予測ブロックを有することがあり、これらの3つの予測値の加重平均が最終的な予測ブロックとして使用され得る。
【０１６１】
隣接ブロックがコーディングされないとき、またはイントラとしてコーディングされる(すなわち、隣接ブロックが利用可能なモーションベクトルを有しない)とき、現在の8x8ブロックのモーションベクトルは、隣接モーションベクトルとして使用される。一方、(図10に示されるような)現在のマクロブロックの第3および第4の8×8ブロックに対して、下の隣接ブロックは常に使用されない。たとえば、図10の例に示されるように、ブロック1008Bのモーションベクトルは、ブロック1008Bがコーディングされるべきではないと見なされるので8×8ブロック1002Cに対する追加の予測ブロックを生成するために使用されず、ブロック1010Bのモーションベクトルは、ブロック1010Bがコーディングされるべきではないと見なされるので8×8ブロック1002Dに対する追加の予測ブロックを生成するために使用されない。言い換えると、各マクロブロックに対して、その下のマクロブロックからのモーション情報は、OBMCの間に現在のマクロブロックの画素を再構築するために使用されない。
【０１６２】
図11Aおよび図11Bは、HEVCでのOBMCを示す概念図である。HEVCでは、米国特許出願公開第2013/0128974A1号および米国特許出願公開第2012/0177120A1号において、PU境界を平滑化するためにOBMCも提案された。提案された方法の例が、図11Aおよび図11Bに示される。図11Aおよび図11Bにおいて、白の領域の各々が第1のPU1102(PU0)であり、影付きの領域の各々が第2のPU1104(PU1)である。CUが、2つ(またはより多く)のPUを含むときに、PU境界付近の行/列は、OBMCによって平滑化される。PU0 1102またはPU1 1104の中で「A」または「B」を用いてマークされた画素に対して、たとえばそれぞれPU0およびPU1のモーションベクトルを適用することによって、2つの予測値が生成され、それらの加重平均が最終的な予測として使用される。
【０１６３】
図12Aおよび図12Bは、OBMCが適用され得るサブブロックを示す概念図である。Joint Exploration Model(JEM)参照ソフトウェア(https://jvet.hhi.fraunhofer.de/において入手可能である)において、サブPUレベルのOBMCが適用される。OBMCは、CUの右および下の境界を除き、すべてのモーション補償された(MC)ブロック境界のために実行される。その上、OBMCは輝度成分と色差成分の両方に対して適用される。HEVCでは、MCブロックはPUに相当する。JEMでは、PUがサブPUモードでコーディングされるとき、PUの各サブブロックはMCブロックである。CU/PU境界を均一に処理するために、OBMCはすべてのMCブロック境界に対してサブブロックレベルで実行され、ここで図12Aおよび図12Bに示されるように、サブブロックサイズは4×4に等しく設定される。
【０１６４】
OBMCが現在のサブブロックに適用されるとき、現在のモーションベクトル以外に、4つの接続された隣接サブブロックのモーションベクトルも、それらが利用可能であり現在のモーションベクトルと同一でなければ、現在のサブブロックの予測ブロックを導出するために使用される。複数のモーションベクトルに基づくこれらの複数の予測ブロックは、現在のサブブロックの最終的な予測信号を生成するために重み付けられる。
【０１６５】
隣接サブブロックのモーションベクトルに基づく予測ブロックはPNと表記されることがあり、Nは上、下、左、および右の隣接サブブロックに対するインデックスを示す。現在のブロックのモーションベクトルに基づく予測ブロックは、PCと表記され得る。PNがPCと同じPUに属するとき(したがって、同じモーション情報を含むとき)、OBMCはPNから実行されない。それ以外の場合、PNの1つ1つの画素がPC中の同じ画素に加算され、すなわち、PNの4つの行/列がPCに加算される。加重係数{1/4, 1/8, 1/16, 1/32}はPNのために使用され、加重係数{3/4, 7/8, 15/16, 31/32}はPCのために使用される。例外には、PNの2つの行/列しかPCに追加されない、小さいMCブロックがある(すなわち、PUサイズが8×4、4×8に等しいとき、またはPUがATMVPモードでコーディングされるとき)。この場合、加重係数{1/4, 1/8}がPNのために使用されることがあり、加重係数{3/4, 7/8}がPCのために使用される。垂直に(または水平に)隣接するサブブロックのモーションベクトルに基づいて生成されるPNに対して、PNの同じ行(列)の中の画素は、同じ加重係数を用いてPCに加算される。PU境界に対して、OBMCは境界の各側に適用され得ることに留意されたい。図12Aおよび図12Bにおけるように、OBMCはPU1とPU2の間の境界に沿って2回適用され得る。まず、OBMCは、PU1の内部の境界に沿って影付きブロックにPU2のMVを用いて適用される。第2に、OBMCは、PU2の内部の境界に沿って影付きブロックにPU1のMVを用いて適用される。対照的に、OBMCはCU境界の一辺だけに適用されることがあり、それは、現在のCUをコーディングするとき、コーディングされたCUを変更できないからである。
【０１６６】
図13は、本開示の1つまたは複数の技法による、(たとえば、ビデオ符号化プロセスの間に)ビデオエンコーダによってアフィンモーション補償を実行するための例示的な方法を示すフローチャートである。例および説明を目的に、図13の方法は、図1および図2のビデオエンコーダ20に関して説明される。
【０１６７】
ビデオエンコーダ20は、符号化されるべきビデオデータの現在のブロックを受信し得る(1302)。たとえば、ビデオエンコーダ20は、ビデオソース18から、ビデオデータの現在のブロックを含むビデオデータの現在のピクチャに対する生の画素値(たとえば、RGB、CMYK、YUVなど)を受信し得る。ビデオエンコーダ20のモード選択ユニット40の区分ユニット48は、そのうちの1つが現在のブロックであり得る、現在のピクチャを複数のブロックへと分割することができる。
【０１６８】
ビデオエンコーダ20は、アフィンモーション予測を使用して、ビデオデータの現在のブロックを符号化すると決定し得る(1304)。たとえば、モード選択ユニット40は、インター予測モードを使用してビデオデータの現在のブロックを符号化することを決定し、モーション情報予測モードとしてアフィンモーションモデルを選択することができる。モード選択ユニット40は、現在のピクチャのフレームタイプ(たとえば、Pフレーム、Iフレーム、Bフレームなど)などの多種多様な要因に基づいてインター予測モードを使用すると決定することができ、どの予測モードが最低のレートひずみ最適化(RDO)コストをもたらすかを決定することができる。
【０１６９】
ビデオエンコーダ20は、現在のブロックがアフィンモーション予測を使用して符号化されることの指示を符号化し得る(1306)。たとえば、モード選択ユニット40は、ビデオエンコーダ20のエントロピー符号化ユニット56に、現在のブロックがインター予測モードを使用して符号化されることを示す1つまたは複数のシンタックス要素、アフィンモーションモデルが現在のブロックのモーション情報予測モードであることを示す1つまたは複数のシンタックス要素、および/または、現在のブロックがインター予測モードを使用して符号化され、アフィンモーションモデルが現在のブロックのモーション情報予測モードであることを示す1つまたは複数のシンタックス要素を、ビデオビットストリームにおいて符号化させ得る。
【０１７０】
ビデオエンコーダ20は、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定し得る(1308)。たとえば、ビデオエンコーダ20のモーション推定ユニット42および/またはモーション補償ユニット44は、ビデオデータの現在のブロックの画素値とよく一致する画素値を有するビデオデータの予測子ブロックを特定し得る。モーション推定ユニット42および/またはモーション補償ユニット44は、ビデオデータの現在のブロックとビデオデータの予測子ブロックとの間のアフィン変換を表す2つ以上のモーションベクトルを決定し得る。
【０１７１】
上で論じられたように、いくつかの例では、モーション推定ユニット42および/またはモーション補償ユニット44は常に、2つのモーションベクトルを含む4パラメータのアフィンモーションモデルを使用して、予測子ブロックを特定することができる。同様に、いくつかの例では、モーション推定ユニット42および/またはモーション補償ユニット44は常に、3つのモーションベクトルを含む6パラメータのアフィンモーションモデルを使用して、予測子ブロックを特定することができる。さらに他の例では、モーション推定ユニット42および/またはモーション補償ユニット44は、2つのモーションベクトル(たとえば、MV0およびMV1とも呼ばれる、図8のv0およびv1)を含む4パラメータのアフィンモーションモデルと、3つのモーションベクトルを含む6パラメータのアフィンモーションモデル(たとえば、MV0、MV1、およびMV2とも呼ばれる、図8のv0、v1、およびv2)とのいずれかを選択的に使用して、予測子ブロックを特定することができる。
【０１７２】
いくつかの例では、ビデオエンコーダ20は、現在のブロックが4パラメータのモデルを使用してコーディングされるか6パラメータのモデルを使用してコーディングされるかの指示を符号化することができる。たとえば、モーション推定ユニット42および/またはモーション補償ユニット44は、エントロピー符号化ユニット56に、符号化されたビデオビットストリームにおいて、ビデオデータの現在のブロックに対するアフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を符号化させることができる。いくつかの例では、エントロピー符号化ユニット56は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオデータの現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数において、シンタックス要素を符号化し得る。いくつかの例では、エントロピー符号化ユニット56は、ビデオデータの現在のブロックを含むCUのコーディング単位(CU)レベルでシンタックス要素を符号化し得る。
【０１７３】
ビデオエンコーダ20は、ビデオデータの現在のブロックに対して、アフィンモーションモデルを有するビデオデータの隣接ブロックを選択し得る(1310)。たとえば、図8の現在のブロック800を符号化するとき、モーション推定ユニット42および/またはモーション補償ユニット44は、特定の順序で図8のブロック802A〜802Gを評価し、その特定の順序において、ビデオデータの選択された隣接ブロックとしてアフィンモーション補償を使用してコーディングされる最初のブロック(たとえば、利用可能なアフィンモーションモデルを有する最初のブロック)を選択することができる。いくつかの例では、ビデオデータの現在のブロックはアフィンインターモードを使用してコーディングされ得る。いくつかの例では、ビデオデータの選択された隣接ブロックは、アフィンインターモード(たとえば、AF_INTER)またはアフィンマージモード(たとえば、AF_MERGE)を使用してコーディングされ得る。
【０１７４】
ビデオエンコーダ20は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルのモーションベクトルの予測子の値を取得し得る(1312)。たとえば、モーション推定ユニット42および/またはモーション補償ユニット44は、参照ピクチャメモリ64などの、ビデオエンコーダ20のメモリまたは記憶デバイスからビデオデータの選択された隣接ブロックのアフィンモーションモデルの値を取得し得る。モーション推定ユニット42および/またはモーション補償ユニット44は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルの値を現在のブロックの場所へと歪め、予測子の値を導出し得る。言い換えると、モーション推定ユニット42および/またはモーション補償ユニット44は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルの値から予測子の値を外挿し得る。一例として、選択された隣接ブロックが図8のブロック802Fである場合、ビデオエンコーダ20は、ブロック802Fの複数のモーションベクトルの値(たとえば、ブロック802FのCPMVの値)を取得し、ブロック802Fの複数のモーションベクトルの値を現在のブロック800の場所へと歪め得る。別の例として、選択された隣接ブロックが図8のブロック802Fである場合、ビデオエンコーダ20は、ブロック802Fの複数のモーションベクトルの値(たとえば、ブロック802FのCPMVの値)を予測子として使用し得る。
【０１７５】
ビデオエンコーダ20は、符号化されたビデオビットストリームにおいて、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を符号化し得る(1314)。たとえば、モーション推定ユニット42および/またはモーション補償ユニット44は、現在のブロックのアフィンモーションモデルの各々のそれぞれのモーションベクトルに対して、現在のブロックのアフィンモーションモデルのそれぞれのモーションベクトルの値と、選択された隣接ブロックのアフィンモーションモデルのモーションベクトルから導出された対応する予測子の値との差分を表す、それぞれのモーションベクトル差分(MVD)値を決定し得る。一例として、現在のブロックのアフィンモーションモデルのモーションベクトルの値がMV0およびMV1であり、選択された隣接ブロックのアフィンモーションモデルのモーションベクトルから導出された予測子の値がMVP0およびMVP1である場合、モーション推定ユニット42および/またはモーション補償ユニット44は、MV0とMVP0との間の差分として第1のMVD値を決定し、MV1とMVP1との間の差分として第2のMVD値を決定し得る。モーション推定ユニット42および/またはモーション補償ユニット44は、エントロピー符号化ユニット56に、符号化されたビデオビットストリームにおいて、決定されたMVDの値を表す1つまたは複数のシンタックス要素を符号化させ得る。
【０１７６】
いくつかの例では、ビデオエンコーダ20はさらに、符号化されたビデオビットストリームにおいて、現在のブロックと、現在のブロックのアフィンモーションモデルによって特定される予測子ブロックとの間の画素差分を表す残差データを符号化し得る。ビデオエンコーダ20は、(たとえば、未来のブロックを予測するときに使用するための)現在のブロックの画素値を再構築するために、デコーダループを実装し得る。たとえば、ビデオエンコーダ20は、現在のブロックに対するアフィンモーションモデルに基づいて予測子ブロックを特定し、参照ピクチャメモリ64から予測子ブロックの画素値を取得し、残差値を予測子ブロックの画素値に加算して、現在のブロックの画素値を再構築し得る。
【０１７７】
図14は、本開示の1つまたは複数の技法による、(たとえば、ビデオ復号プロセスの間に)ビデオデコーダによってアフィンモーション補償を実行するための例示的な方法を示すフローチャートである。例および説明を目的に、図14の方法は、図1および図3のビデオデコーダ30に関して説明される。
【０１７８】
ビデオデコーダ30は、現在のブロックがアフィンモーション予測を使用して符号化されることの指示を復号し得る(1402)。たとえば、エントロピー復号ユニット70は、ビデオビットストリームから、現在のブロックがインター予測モードを使用して符号化されることを示す1つまたは複数のシンタックス要素、アフィンモーションモデルが現在のブロックのモーション情報予測モードであることを示す1つまたは複数のシンタックス要素、および/または、現在のブロックがインター予測モードを使用して符号化され、アフィンモーションモデルが現在のブロックのモーション情報予測モードであることを示す1つまたは複数のシンタックス要素を復号し得る。エントロピー復号ユニット70は、復号されたシンタックス要素の値をモーション補償ユニット72に与え得る。
【０１７９】
ビデオデコーダ30は、ビデオデータの現在のブロックに対して、アフィンモーションモデルを有するビデオデータの隣接ブロックを選択し得る(1404)。たとえば、図8の現在のブロック800を復号するとき、モーション補償ユニット72は、特定の順序で図8のブロック802A〜802Gを評価し、その特定の順序において、ビデオデータの選択された隣接ブロックとしてアフィンモーション補償を使用してコーディングされる最初のブロック(たとえば、利用可能なアフィンモーションモデルを有する最初のブロック)を選択することができる。いくつかの例では、ビデオデータの現在のブロックはアフィンインターモードを使用してコーディングされ得る。いくつかの例では、ビデオデータの選択された隣接ブロックは、アフィンインターモード(たとえば、AF_INTER)またはアフィンマージモード(たとえば、AF_MERGE)を使用してコーディングされ得る。
【０１８０】
ビデオデコーダ30は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルのモーションベクトルから導出された予測子の値を取得し得る(1406)。たとえば、モーション補償ユニット72は、参照ピクチャメモリ82などの、ビデオデコーダ30のメモリまたは記憶デバイスからビデオデータの選択された隣接ブロックのアフィンモーションモデルの値を取得し得る。モーション補償ユニット72は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルの値を現在のブロックの場所へと歪め、予測子の値を導出し得る。言い換えると、モーション補償ユニット72は、ビデオデータの選択された隣接ブロックのアフィンモーションモデルの値から予測子の値を外挿し得る。一例として、選択された隣接ブロックが図8のブロック802Fである場合、ビデオデコーダ30は、ブロック802Fの複数のモーションベクトルの値(たとえば、ブロック802FのCPMVの値)を取得し、ブロック802Fの複数のモーションベクトルの値を現在のブロック800の場所へと歪め得る。別の例として、選択された隣接ブロックが図8のブロック802Fである場合、ビデオデコーダ30は、ブロック802Fの複数のモーションベクトルの値(たとえば、ブロック802FのCPMVの値)を予測子として使用し得る。
【０１８１】
ビデオデコーダ30は、符号化されたビデオビットストリームから、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値と予測子の値との差分の表現を復号し得る(1408)。たとえば、エントロピー復号ユニット70は、符号化されたビデオビットストリームから、現在のブロックのアフィンモーションモデルのそれぞれのモーションベクトルの値と、選択された隣接ブロックのアフィンモーションモデルのモーションベクトルから導出された対応する予測子の値との差分の値を表す、シンタックス要素を復号し得る。一例として、現在のブロックのアフィンモーションモデルのモーションベクトルの値がMV0およびMV1であり、選択された隣接ブロックのアフィンモーションモデルのモーションベクトルから導出された予測子の値がMVP0およびMVP1である場合、エントロピー復号ユニット70は、第1のMVD値および第2のMVD値の値を表すシンタックス要素を復号することができ、第1のMVD値はMV0とMVP0との間の差分であり、第2のMVD値はMV1とMVP1との間の差分である。エントロピー復号ユニット70は、復号されたシンタックス要素の値をモーション補償ユニット72に与え得る。
【０１８２】
ビデオデコーダ30は、予測子の値および復号された差分に基づいて、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの値を決定し得る(1410)。たとえば、モーション補償ユニット72は、MVP0の値を第1のMVD値の値に加算してMV0の値を決定し、MVP1の値を第2のMVD値の値に加算してMV1の値を決定し得る。
【０１８３】
ビデオデコーダ30は、ビデオデータの現在のブロックに対するアフィンモーションモデルのモーションベクトルの決定された値に基づいて、ビデオデータの予測子ブロックを決定し得る(1412)。たとえば、モーション補償ユニット72は、参照ピクチャメモリ82から、ビデオデータの現在のブロックに対するアフィンモーションモデルによって特定される予測子ブロックの画素値を取得し得る。
【０１８４】
ビデオデコーダ30は、ビデオデータの予測子ブロックに基づいてビデオデータの現在のブロックを再構築し得る(1414)。たとえば、エントロピー復号ユニット70は、符号化されたビデオビットストリームから、現在のブロックと、現在のブロックのアフィンモーションモデルによって特定される予測子ブロックとの間の画素差分を表す残差データを復号し得る。モーション補償ユニット72は、残差値を予測子ブロックの画素値に加算して、現在のブロックの画素値を再構築し得る。
【０１８５】
例によっては、本明細書において説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されてよく、追加され、統合され、または完全に除外されてよい(たとえば、説明されたすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて同時に実行され得る。
【０１８６】
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  ディスプレイデバイス
40  モード選択ユニット
42  モーション推定ユニット
44  モーション補償ユニット
46  イントラ予測ユニット
48  区分ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換ユニット
62  加算器
64  参照ピクチャメモリ
70  エントロピー復号ユニット
72  モーション補償ユニット
74  イントラ予測ユニット
76  逆量子化ユニット
78  逆変換ユニット
80  加算器
82  参照ピクチャメモリ
500  現在のブロック
502  左上の角
504  右上の角
600  現在のブロック
602A、602B、602C  ブロック
602D、602E  隣接ブロック
700  現在のブロック
702A、702B、702C、702D、702E  ブロック
704  CU/PU
800  現在のブロック
802A、802B、802C、802D、802E、802F、802G  モーションベクトル、ブロック
900  現在のブロック
902H、902I  ブロック
1000  マクロブロック
1002A、1002B、1002C、1002D  ブロック
1004A、1004B  ブロック
1006A、1006B  ブロック
1008B  ブロック
1010、1010B  ブロック
1102  第1のPU、PU0
1104  第2のPU、PU1
【図１】
2019519980.tif 000009
【図２】
2019519980.tif 000010
【図３】
2019519980.tif 000011
【図４Ａ】
2019519980.tif 000012
【図４Ｂ】
2019519980.tif 000013
【図５】
2019519980.tif 000014
【図６】
2019519980.tif 000015
【図７Ａ】
2019519980.tif 000016
【図７Ｂ】
2019519980.tif 000017
【図８】
2019519980.tif 000018
【図９】
2019519980.tif 000019
【図１０】
2019519980.tif 000020
【図１１Ａ】
2019519980.tif 000021
【図１１Ｂ】
2019519980.tif 000022
【図１２Ａ】
2019519980.tif 000023
【図１２Ｂ】
2019519980.tif 000024
【図１３】
2019519980.tif 000025
【図１４】
2019519980.tif 000026
【手続補正書】
【提出日】平成30年11月19日(2018.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ビデオデコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するステップと、
前記1つまたは複数のプロセッサによって、符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を復号するステップと、
前記1つまたは複数のプロセッサによって、前記予測子の前記値および前記復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定するステップと、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを決定するステップと、
ビデオデータの前記予測子ブロックに基づいてビデオデータの前記現在のブロックを再構築するステップと
を備える、方法。
【請求項２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して復号される、請求項1に記載の方法。
【請求項３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して復号される、請求項2に記載の方法。
【請求項４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するステップが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価するステップと、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記1つまたは複数のプロセッサによって、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを決定するステップが、
前記1つまたは複数のプロセッサによって、前記符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を復号するステップを備える、請求項5に記載の方法。
【請求項７】
前記シンタックス要素を復号するステップが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオデータの前記現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数から前記シンタックス要素を復号するステップを備える、請求項6に記載の方法。
【請求項８】
前記シンタックス要素を復号するステップが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)から前記シンタックス要素を復号するステップを備える、請求項6に記載の方法。
【請求項９】
ワイヤレス通信デバイス上で実行可能であり、前記デバイスが、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し前記ビデオデータを前記メモリに記憶するように構成された受信機と
を備える、請求項1に記載の方法。
【請求項１０】
前記ワイヤレス通信デバイスが携帯電話であり、前記ビデオデータが前記受信機によって受信され、セルラー通信規格に従って変調される、請求項9に記載の方法。
【請求項１１】
ビデオデータを符号化するための方法であって、
ビデオエンコーダの1つまたは複数のプロセッサによって、ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定するステップであって、前記アフィンモーションモデルの前記モーションベクトルがビデオデータの前記現在のブロックに対するビデオデータの予測子ブロックを特定する、ステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するステップと、
前記1つまたは複数のプロセッサによって、ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックの前記アフィンモーションモデルの前記モーションベクトルの各々に対する予測子の値を導出するステップと、
前記1つまたは複数のプロセッサによって、符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を符号化するステップと
を備える、方法。
【請求項１２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して符号化される、請求項11に記載の方法。
【請求項１３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して符号化される、請求項12に記載の方法。
【請求項１４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するステップが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価するステップと、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択するステップと
を備える、請求項11に記載の方法。
【請求項１５】
前記1つまたは複数のプロセッサによって、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するステップをさらに備える、請求項11に記載の方法。
【請求項１６】
前記1つまたは複数のプロセッサによって、前記符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を符号化するステップをさらに備える、請求項15に記載の方法。
【請求項１７】
前記シンタックス要素を符号化するステップが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオデータの前記現在のブロックによって参照されるスライスヘッダにおいて、前記シンタックス要素を符号化するステップを備える、請求項16に記載の方法。
【請求項１８】
前記シンタックス要素を符号化するステップが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)において前記シンタックス要素を符号化するステップを備える、請求項16に記載の方法。
【請求項１９】
ワイヤレス通信デバイス上で実行可能であり、前記デバイスが、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記符号化されたビデオビットストリームを送信するように構成された送信機と
を備える、請求項11に記載の方法。
【請求項２０】
前記ワイヤレス通信デバイスが携帯電話であり、前記符号化されたビデオビットストリームが前記送信機によって送信され、セルラー通信規格に従って変調される、請求項19に記載の方法。
【請求項２１】
ビデオデータのブロックを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路で実装される1つまたは複数の処理ユニットと
を備え、前記処理ユニットが、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得し、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出し、
符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を復号し、
前記予測子の前記値および前記復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定し、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを決定し、
ビデオデータの前記予測子ブロックに基づいてビデオデータの前記現在のブロックを再構築する
ように構成される、デバイス。
【請求項２２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して復号される、請求項21に記載のデバイス。
【請求項２３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して復号される、請求項22に記載のデバイス。
【請求項２４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するために、前記1つまたは複数の処理ユニットが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価し、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択する
ように構成される、請求項21に記載のデバイス。
【請求項２５】
前記1つまたは複数の処理ユニットがさらに、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するように構成される、請求項21に記載のデバイス。
【請求項２６】
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを決定するために、前記1つまたは複数の処理ユニットが、
前記符号化されたビデオビットストリームから、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を復号するように構成される、請求項25に記載のデバイス。
【請求項２７】
前記シンタックス要素を復号するために、前記1つまたは複数の処理ユニットが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびビデオデータの前記現在のブロックによって参照されるスライスヘッダのうちの1つまたは複数から前記シンタックス要素を復号するように構成される、請求項26に記載のデバイス。
【請求項２８】
前記シンタックス要素を復号するために、前記1つまたは複数の処理ユニットが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)から前記シンタックス要素を復号するように構成される、請求項26に記載のデバイス。
【請求項２９】
前記再構築されたビデオデータを表示するように構成されたディスプレイ、または、
前記ビデオデータをキャプチャするように構成されたカメラ
のうちの少なくとも1つをさらに備える、請求項21に記載のデバイス。
【請求項３０】
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項21に記載のデバイス。
【請求項３１】
ビデオデータのブロックを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路で実装される1つまたは複数の処理ユニットと
を備え、前記処理ユニットが、
ビデオデータの現在のブロックのアフィンモーションモデルのモーションベクトルの値を決定することであって、前記アフィンモーションモデルの前記モーションベクトルがビデオデータの前記現在のブロックに対するビデオデータの予測子ブロックを特定する、決定することと、
ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得することと、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックの前記アフィンモーションモデルの前記モーションベクトルの各々に対する予測子の値を導出することと、
符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分の表現を符号化することと
を行うように構成される、デバイス。
【請求項３２】
ビデオデータの前記現在のブロックがアフィンインターモードを使用して符号化される、請求項31に記載のデバイス。
【請求項３３】
ビデオデータの前記隣接ブロックがアフィンインターモードまたはアフィンマージモードを使用して符号化される、請求項32に記載のデバイス。
【請求項３４】
ビデオデータの前記隣接ブロックがビデオデータの選択された隣接ブロックを備え、ビデオデータの前記選択された隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値を取得するために、前記1つまたは複数の処理ユニットが、
あらかじめ定められた順序で、ビデオデータの前記現在のブロックのビデオデータの隣接ブロックを評価し、
アフィンモーション補償を使用して復号されたビデオデータの複数の隣接ブロックのうちのビデオデータの最初の隣接ブロックを、ビデオデータの前記選択された隣接ブロックとして選択する
ように構成される、請求項31に記載のデバイス。
【請求項３５】
前記1つまたは複数の処理ユニットがさらに、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが、2つのモーションベクトルへ変換可能な4パラメータモデルを備えるか、または3つのモーションベクトルへ変換可能な6パラメータモデルを備えるかを決定するように構成される、請求項31に記載のデバイス。
【請求項３６】
前記1つまたは複数の処理ユニットがさらに、
前記符号化されたビデオビットストリームにおいて、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルが4パラメータモデルを備えるか6パラメータモデルを備えるかを示す、シンタックス要素を符号化するように構成される、請求項35に記載のデバイス。
【請求項３７】
前記シンタックス要素を符号化するために、前記1つまたは複数の処理ユニットが、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオデータの前記現在のブロックによって参照されるスライスヘッダにおいて前記シンタックス要素を符号化するように構成される、請求項36に記載のデバイス。
【請求項３８】
前記シンタックス要素を符号化するために、前記1つまたは複数の処理ユニットが、ビデオデータの前記現在のブロックを含むコーディング単位(CU)において前記シンタックス要素を符号化するように構成される、請求項36に記載のデバイス。
【請求項３９】
再構築されたビデオデータを表示するように構成されたディスプレイ、または、
前記ビデオデータをキャプチャするように構成されたカメラ
のうちの少なくとも1つをさらに備える、請求項31に記載のデバイス。
【請求項４０】
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項31に記載のデバイス。
【請求項４１】
ビデオデータを符号化または復号するためのデバイスであって、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得するための手段と、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出するための手段と、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分を取得するための手段と、
前記予測子の前記値および復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定するための手段と、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを特定するための手段と
を備える、デバイス。
【請求項４２】
実行されると、ビデオエンコーダまたはビデオデコーダの1つまたは複数のプロセッサに、
ビデオデータの現在のブロックに対して、ビデオデータの隣接ブロックのアフィンモーションモデルのモーションベクトルの値を取得させ、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックのアフィンモーションモデルのモーションベクトルに対する予測子の値を導出させ、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値と前記予測子の前記値との差分を取得させ、
前記予測子の前記値および復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定させ、
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記決定された値に基づいて、ビデオデータの予測子ブロックを特定させる
命令を記憶した、コンピュータ可読記憶媒体。
【請求項４３】
ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの前記モーションベクトルの前記値の各々を決定するステップが、
前記予測子の前記値および前記復号された差分から、ビデオデータの前記現在のブロックに対する前記アフィンモーションモデルの3つのモーションベクトルの前記値を決定するステップを備える、請求項1に記載の方法。
【請求項４４】
ビデオデータの前記現在のブロックの前記アフィンモーションモデルが3つのモーションベクトルを含み、ビデオデータの前記現在のブロックの前記アフィンモーションモデルの前記モーションベクトルの各々に対する前記予測子の前記値を導出するステップが、
ビデオデータの前記隣接ブロックの前記アフィンモーションモデルの前記モーションベクトルの前記値から、ビデオデータの前記現在のブロックの前記アフィンモーションモデルの前記3つのモーションベクトルの各々に対する前記予測子の値を導出するステップを備える、請求項11に記載の方法。
【国際調査報告】
2019519980.tif 000027
2019519980.tif 000028