(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-20
(54)【発明の名称】時間動き情報予測方法、候補動き情報リストの構築方法、及びビデオデコーディング方法
(51)【国際特許分類】
H04N 19/52 20140101AFI20241213BHJP
H04N 19/46 20140101ALI20241213BHJP
H04N 19/105 20140101ALI20241213BHJP
H04N 19/139 20140101ALI20241213BHJP
H04N 19/176 20140101ALI20241213BHJP
【FI】
H04N19/52
H04N19/46
H04N19/105
H04N19/139
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024540755
(86)(22)【出願日】2022-01-04
(85)【翻訳文提出日】2024-07-04
(86)【国際出願番号】 CN2022070182
(87)【国際公開番号】W WO2023130233
(87)【国際公開日】2023-07-13
(81)【指定国・地域】
(71)【出願人】
【識別番号】516227559
【氏名又は名称】オッポ広東移動通信有限公司
【氏名又は名称原語表記】GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
【住所又は居所原語表記】No. 18 Haibin Road,Wusha, Chang’an,Dongguan, Guangdong 523860 China
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【氏名又は名称】吉田 昌司
(74)【代理人】
【識別番号】100137523
【氏名又は名称】出口 智也
(72)【発明者】
【氏名】ワン、ファン
(72)【発明者】
【氏名】シエ、チーホアン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159NN11
5C159PP04
5C159RB09
5C159RC12
5C159TA62
5C159TB08
5C159TC12
5C159TC31
5C159TC41
5C159UA02
5C159UA05
(57)【要約】
時間動き情報予測方法、候補動き情報リストの構築方法、対応する装置及びシステムが提供される。当該時間動き情報予測方法は、非隣接位置に基づいた時間動き情報予測を含む。候補動き情報リストを構築する際に、非隣接位置に基づいた時間動き情報予測によって確定された時間動き情報を、他の動き情報とともに、設定された関連性の順序に従って、候補動き情報リストに加える。本開示の実施形態によって、非隣接位置に基づいた時間動き情報を利用して、空間動き情報予測の不足を効果的に補うことができる。
【特許請求の範囲】
【請求項1】
時間動き情報予測方法であって、
現在ブロックの少なくとも1つの非隣接位置を確定することと、
コードされた画像内の前記少なくとも1つの非隣接位置の動き情報に基づいて、前記現在ブロックの第1の時間動き情報を確定することと、
を含む、
ことを特徴とする時間動き情報予測方法。
【請求項2】
前記非隣接位置は、次の方向にある非隣接位置、即ち、
前記現在ブロックの右側の非隣接位置、
前記現在ブロックの下側の非隣接位置、及び、
前記現在ブロックの右下側の非隣接位置、
のうちのいずれか1つ又は複数を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記非隣接位置と前記現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は予め設定された固定値であり、又は、
前記非隣接位置と前記現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、可変であり、次のパラメータ、即ち、
現在ブロックのサイズ、
現在画像シーケンスのパラメータ、
現在画像シーケンスのシーケンスレベルフラグ、
現在画像の画像レベルフラグ、及び、
現在画像のスライスレベルフラグ、
のうちのいずれか1つ、又は任意の組み合わせに基づいて確定される、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記コードされた画像は、前記現在ブロックの参照画像であり、
前記コードされた画像内の前記少なくとも1つの非隣接位置の動き情報に基づいて、前記現在ブロックの第1の時間動き情報を確定することは、
前記参照画像内の、前記非隣接位置に対応するコロケートされたブロックを確定することと、
前記コロケートされたブロックの動き情報を取得することと、
取得された前記動き情報内の動きベクトルをスケーリングして、前記現在ブロックの第1の時間動き情報を取得することと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記非隣接位置はいずれも、前記現在ブロックが位置する最大コーディングユニット(LCU)又はコーディングツリーユニット(CTU)の範囲内に位置し、又は、前記非隣接位置はいずれも、前記現在ブロックが位置するLCU行又はCTU行の範囲内に位置する、
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記時間動き情報予測方法は、隣接位置に基づいた時間動き情報予測をさらに含み、
隣接位置は前記現在ブロックの右下隅の隣接位置を含み、前記現在ブロックの非隣接位置と前記現在ブロックの右下隅の隣接位置とはアレイ状に分布しており、前記アレイの左上隅は前記現在ブロックの右下隅の隣接位置であり、前記アレイ内の異なる位置は、前記コードされた画像において異なる最小記憶ユニットに分布している、
ことを特徴とする請求項1に記載の方法。
【請求項7】
同じ方向に、前記第1の時間動き情報を導出するための位置が少なくとも3つ存在する場合、少なくとも3つの位置のうちの隣接位置間の距離はいずれも同じであり、又は、前記少なくとも3つの位置のうちの隣接位置間の距離は可変であり、前記現在ブロックから離れるほど2つの隣接位置の間の距離は大きくなる、
ことを特徴とする請求項2に記載の方法。
【請求項8】
前記時間動き情報予測方法は、
第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することと、
前記非隣接位置に基づいた時間動き情報予測を利用することが許可されていると確定した場合、請求項1に記載の方法を実行すること、をさらに含み、
前記第1フラグは、
前記非隣接位置に基づいた時間動き情報予測を現在画像シーケンスに利用することが許可されているか否かを示すための第1のシーケンスレベルフラグ、
前記非隣接位置に基づいた時間動き情報予測を現在画像に利用することが許可されているか否かを示すための第1の画像レベルフラグ、及び、
前記非隣接位置に基づいた時間動き情報予測を現在スライスに利用することが許可されているか否かを示すための第1のスライスレベルフラグ、
のうちのいずれか1つ又は複数を含む、
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記第1フラグは、前記第1のシーケンスレベルフラグ、前記第1の画像レベルフラグ、及び前記第1のスライスレベルフラグのうちの少なくとも2つを含み、前記第1のシーケンスレベルフラグは、前記第1の画像レベルフラグよりレベルが高く、前記第1の画像レベルフラグは、前記第1のスライスレベルフラグよりレベルが高く、
前記第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することは、
レベルの降順に従って前記第1フラグを順に解析することと、
上位レベルのフラグが前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、下位レベルのフラグを解析することと、
すべてのレベルのフラグがいずれも、前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを確定することと、
を含む、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記時間動き情報予測方法は、
第2フラグに基づいて、前記第1フラグを解析する必要があるか否かを確定することと、
前記第1フラグを解析する必要があると確定した場合、前記第1フラグを解析することと、
前記第1フラグに基づいて、前記非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することと、をさらに含み、
前記第2フラグは、次のフラグ、即ち、
時間動き情報を現在画像シーケンスに利用することが許可されているか否かを示すフラグであって、時間動き情報を現在画像シーケンスに利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、
時間動き情報を現在画像に利用することが許可されているか否かを示すフラグであって、時間動き情報を現在画像に利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、及び、
非隣接位置を動き情報導出に利用することが許可されているか否かを示すフラグであって、非隣接位置を動き情報導出に利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、
のうちのいずれか1つ又は複数を含み、
前記第2フラグに基づいて、前記第1フラグを解析する必要があると確定した場合、前記第1フラグが解析される、
ことを特徴とする請求項8に記載の方法。
【請求項11】
前記少なくとも1つの非隣接位置は、
座標が(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+2*k_cbWidth, yCb+2*k_cbHeight)である第1位置、
座標が(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight)、又は(xCb+3*k_cbWidth, yCb+3*k_cbHeight)である第2位置、
座標が(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+3*k_cbWidth, yCb+k_cbHeight/2)である第3位置、
座標が(xCb+k_cbWidth/2, yCb+3*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+3*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight)である第4位置、
座標が(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+2*k_cbWidth, yCb+k_cbHeight/2)である第5位置、
座標が(xCb+k_cbWidth/2, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+2*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight)である第6位置、
座標が(xCb+k_cbWidth, yCb+2*k_cbHeight)、(xCb+k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+k_cbWidth-1, yCb+2*k_cbHeight-1)である第7位置、及び、
座標が(xCb+2*k_cbWidth, yCb+k_cbHeight)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight)、(xCb+2*k_cbWidth, yCb+k_cbHeight-1)、又は(xCb+2*k_cbWidth-1, yCb+k_cbHeight-1)である第8位置、
のうちのいずれか1つ又は複数を含み、
xCbは前記現在ブロックの左上隅の横座標であり、yCbは前記現在ブロックの左上隅の縦座標であり、k_cbWidthは前記現在ブロックの幅、又は幅の1/2、又は幅の1/4、又は幅の2倍であり、k_cbHeightは前記現在ブロックの高さ、又は高さの1/2、又は高さの1/4、又は高さの2倍であり、「*」は乗算演算を示す、
ことを特徴とする請求項1に記載の方法。
【請求項12】
候補動き情報リストの構築方法であって、
現在ブロックに対して空間動き情報予測と時間動き情報予測を行って、前記現在ブロックの空間動き情報と時間動き情報を確定することと、
設定された順序で、前記空間動き情報と前記時間動き情報を前記現在ブロックの候補動き情報リストに加えることと、を含み、
請求項1~8のいずれか一項に記載の方法が前記時間動き情報予測に利用され、前記時間動き情報は、前記第1の時間動き情報を含む、
ことを特徴とする候補動き情報リストの構築方法。
【請求項13】
前記設定された順序は、次のルール、即ち、
前記空間動き情報の距離が前記時間動き情報の距離以下である場合、前記空間動き情報が優先的に前記候補動き情報リストに加えられること、
前記空間動き情報の距離が前記時間動き情報の距離より大きい場合、前記時間動き情報が優先的に前記候補動き情報リストに加えられること、
複数の時間動き情報の距離が異なる場合、距離の小さい時間動き情報が優先的に前記候補動き情報リストに加えられること、及び、
複数の時間動き情報の距離が同じである場合、前記時間動き情報の統計的法則に従って、前記候補動き情報リストに加えられる順序が確定されること、
のうちの1つ又は複数に基づいて確定され、
前記空間動き情報の距離は、前記空間動き情報が導出される位置から前記現在ブロックまでの距離であり、前記時間動き情報の距離は、前記時間動き情報が導出される位置から前記現在ブロックまでの距離であり、1つの位置から前記現在ブロックまでの距離は、前記位置の位置する又は隣接する矩形ボックスに基づいて確定され、前記現在ブロックは前記矩形ボックスによって囲まれ且つ前記矩形ボックススの中心に位置し、前記矩形ボックスの幅は前記現在ブロックの幅の整数倍であり、前記矩形ボックスの高さは前記現在ブロックの高さの整数倍であり、前記矩形ボックスの面積が大きいほど、前記位置から前記現在ブロックまでの距離が大きくなる、
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記第1の時間動き情報は、
前記現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報、
前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報、及び、
前記現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報、
のうちの少なくとも2つを含み、
複数の第1の時間動き情報の距離が同じである場合、時間動き情報の統計的法則に従って、候補動き情報リストに加えられる順序が確定されることは、
前記現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報が、前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に前記候補動き情報リストに加えられることと、
前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報が、前記現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に前記候補動き情報リストに加えられることと、を含む、
ことを特徴とする請求項13に記載の方法。
【請求項15】
前記第1の時間動き情報のうちの最も前の第1の時間動き情報の順序は、次の方式、即ち、
幾何分割モード(GPM)では、前記最も前の第1の時間動き情報に対して設定されるシーケンス番号が、前記候補動き情報リストに加えられることが許可される候補動き情報の最大数以下であること、
設定された高速な動きのシナリオでは、前記最も前の第1の時間動き情報に対して設定されるシーケンス番号が、前記候補動き情報リストに加えられることが許可される候補動き情報の最大数以下であること、
のうちの少なくとも1つで確定される、
ことを特徴とする請求項12に記載の方法。
【請求項16】
前記設定された順序で、前記空間動き情報と前記時間動き情報を前記現在ブロックの候補動き情報リストに加えることは、
前記空間動き情報又は前記時間動き情報を前記候補動き情報リストに加える前に、類似性チェックを行うことと、
前記類似性チェックにより、前記空間動き情報又は前記時間動き情報が、前記候補動き情報リストに既に加えられた又は加えられることが確定された候補動き情報のいずれとも類似していないと確定した場合、前記空間動き情報又は前記時間動き情報を前記候補動き情報リストに加えることと、を含み、
第1の類似性閾値θ
1は前記第1の時間動き情報に対して類似性チェックを行うときに用いられ、第2の類似性閾値θ
2は前記空間動き情報に対して類似性チェックを行うときに用いられ、θ
1>θ
2又はθ
1=θ
2である、
ことを特徴とする請求項12に記載の方法。
【請求項17】
前記時間動き情報は、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報をさらに含み、第3の類似性閾値θ
3は、前記隣接位置に基づいた時間動き情報予測によって確定された前記時間動き情報に対して類似性チェックを行うときに用いられ、θ
1>θ
3又はθ
1=θ
3である、
ことを特徴とする請求項16に記載の方法。
【請求項18】
前記第1の類似性閾値は、現在画像シーケンスのパラメータ、及び現在画像のパラメータ、のうちの1つに基づいて確定される、
ことを特徴とする請求項16に記載の方法。
【請求項19】
前記現在画像シーケンスのパラメータは、シーケンスの解像度を含み、
前記現在画像のパラメータは、画像の幅、画像の高さ、画像のサンプル数のうちのいずれか1つ又は複数を含み、
前記第1の類似性閾値は複数あり、第1の類似性閾値が大きいほど、対応するパラメータの値がより大きい、
ことを特徴とする請求項18に記載の方法。
【請求項20】
前記第1の類似性閾値は、現在画像の参照関係に基づいて確定され、前記参照関係は単方向参照と双方向参照を含み、
前記参照関係が前記単方向参照である場合に確定される第1の類似性閾値は、前記参照関係が前記双方向参照である場合に確定される第1の類似性閾値より小さく、
前方参照は、前方参照画像又は後方参照画像のみを前記現在画像に利用できることを指し、前記双方向参照は、前記前方参照画像と前記後方参照画像の両方を前記現在画像に利用できることを指す、
ことを特徴とする請求項16に記載の方法。
【請求項21】
前記第1の類似性閾値は、現在の予測モードにテンプレートマッチングを利用するか否かに基づいて確定され、前記テンプレートマッチングを利用する場合に確定される第1の類似性閾値は、前記テンプレートマッチングを利用しない場合に確定される第1の類似性閾値より大きい、
ことを特徴とする請求項16に記載の方法。
【請求項22】
前記第1の類似性閾値は、予め設定された値、現在画像シーケンスのパラメータ、現在画像のパラメータ、現在ブロックのサイズ、現在画像シーケンスのシーケンスレベルフラグ、現在画像のスライスレベルフラグ、現在画像の画像レベルフラグ、現在の予測モードにテンプレートマッチングを利用するか否かを示すフラグ、及び現在画像の参照関係、のうちのいずれか1つ又は複数のパラメータに基づいて確定される、
ことを特徴とする請求項16に記載の方法。
【請求項23】
前記第1の類似性閾値がいずれか複数のパラメータに基づいて確定されることは、
前記第1の類似性閾値が、複数の方式に基づいて確定された第1の類似性閾値のうちの最大値に設定されること、を含む、
ことを特徴とする請求項22に記載の方法。
【請求項24】
前記候補動き情報リストの構築方法は、マージモードに用いられる、
ことを特徴とする請求項12に記載の方法。
【請求項25】
ビデオエンコーディング方法であって、
請求項9~21のいずれか一項に記載の方法に基づいて、現在ブロックの候補動き情報リストを構築することと、
前記候補動き情報リストから1つ又は複数の候補動き情報を選択し、選択された前記候補動き情報のインデックスを記録することと、
選択された前記候補動き情報に基づいて前記現在ブロックの予測ブロックを確定し、前記予測ブロックに基づいて前記現在ブロックをエンコードし、前記候補動き情報のインデックスをエンコードすることと、
を含む、
ことを特徴とするビデオエンコーディング方法。
【請求項26】
ビデオデコーディング方法であって、
請求項12~24のいずれか一項に記載の方法に基づいて、現在ブロックの候補動き情報リストを構築することと、
デコーディングによって取得された前記現在ブロックの候補動き情報のインデックスに基づいて、前記候補動き情報リストから1つ又は複数の候補動き情報を選択することと、
選択された前記候補動き情報に基づいて前記現在ブロックの予測ブロックを確定し、前記予測ブロックに基づいて前記現在ブロックを再構成することと、
を含む、
ことを特徴とするビデオデコーディング方法。
【請求項27】
時間動き情報予測装置であって、
プロセッサと、コンピュータプログラムが記憶されているメモリとを備え、
前記プロセッサは、前記コンピュータプログラムを実行する場合、請求項1~11のいずれか一項に記載の時間動き情報予測方法を実行する、
ことを特徴とする時間動き情報予測装置。
【請求項28】
候補動き情報リストの構築装置であって、
プロセッサと、コンピュータプログラムが記憶されているメモリとを備え、
前記プロセッサは、前記コンピュータプログラムを実行する場合、請求項9~24のいずれか一項に記載の候補動き情報リストの構築方法を実行する、
ことを特徴とする候補動き情報リストの構築装置。
【請求項29】
ビデオエンコーディング装置であって、
プロセッサと、コンピュータプログラムが記憶されているメモリとを備え、
前記プロセッサは、前記コンピュータプログラムを実行する場合、請求項25に記載のビデオエンコーディング方法を実行する、
ことを特徴とするビデオエンコーディング装置。
【請求項30】
ビデオデコーディング装置であって、
プロセッサと、コンピュータプログラムが記憶されているメモリとを備え、
前記プロセッサは、前記コンピュータプログラムを実行する場合、請求項26に記載のビデオデコーディング方法を実行する、
ことを特徴とするビデオデコーディング装置。
【請求項31】
請求項29に記載のビデオエンコーディング装置と請求項30に記載のビデオデコーディング装置を含む、
ことを特徴とするビデオコーディングシステム。
【請求項32】
コンピュータプログラムが記憶されている非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータプログラムがプロセッサによって実行される場合、請求項1~24のいずれか一項に記載の方法が実行される、
ことを特徴とする非一時的なコンピュータ可読記憶媒体。
【請求項33】
請求項25に記載のビデオエンコーディング方法により生成される、
ことを特徴とするビットストリーム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、ビデオ技術に関するが、これに限定されておらず、より具体的に、時間動き情報予測方法、候補動き情報リストの構築方法、対応する装置及びシステムに関する。
【背景技術】
【0002】
現在、ブロックに基づいた混合コーディングフレームワークが汎用のビデオコーディング(エンコーディングとデコーディングを含む)規格に用いられている。ビデオにおける各々の画像又はサブ画像又はフレーム(frame)は、同一サイズの正方形(例えば、128×128、64×64など)の最大コーディングユニット(largest coding unit、LCU)又はコーディングツリーユニット(Coding Tree Unit、CTU)に分割される。各最大コーディングユニット又はコーディングツリーユニットは、ルールに基づいて、矩形のコーディングユニット(coding unit、CU)に分割されることが可能である。コーディングユニットは、予測ユニット(prediction unit、PU)、変換ユニット(transform unit、TU)などに分割されることも可能である。混合コーディングフレームワークは、予測(prediction)、変換(transform)、量子化(quantization)、エントロピーコーディング(entropy coding)、インループフィルタ(In Loop Filter)などのモジュールを含む。予測モジュールは、イントラ予測(intra prediction)及びインター予測(inter prediction)を含む。インター予測は、動き推定(motion estimation)及び動き補償(motion compensation)を含む。ビデオ内の1つのフレームにおける隣接サンプル間に強い関連性があるため、ビデオコーディング技術において、イントラ予測の方法を利用して隣接サンプル間の空間的な冗長性を解消する。ビデオにおける隣接フレーム間に強い類似性があるため、ビデオコーディング技術において、インター予測方法を利用して隣接フレーム間の時間的な冗長性を解消し、コーディング効率を向上させることができる。
【0003】
しかし、既存のインター予測方法のコーディング効率はまだ改善される必要がある。
【発明の概要】
【0004】
以下は、本明細書で詳細に説明される主題の概要である。この概要は、特許請求の範囲の保護範囲を限定することを意図するものではない。
【0005】
本開示の一実施形態は、時間動き情報予測方法を提供する。当該時間動き情報予測方法は、以下の内容を含む。現在ブロックの少なくとも1つの非隣接位置を確定する。コードされた画像内の少なくとも1つの非隣接位置の動き情報に基づいて、現在ブロックの第1の時間動き情報を確定する。
【0006】
本開示の一実施形態は、候補動き情報リストの構築方法をさらに提供する。当該候補動き情報リストの構築方法は、以下の内容を含む。現在ブロックに対して空間動き情報予測と時間動き情報予測を行って、現在ブロックの空間動き情報と時間動き情報を確定する。設定された順序で、空間動き情報と時間動き情報を現在ブロックの候補動き情報リストに加える。時間動き情報予測は、本開示のいずれか1つの実施形態に記載の時間動き情報予測方法を利用する。時間動き情報は、第1の時間動き情報を含む。
【0007】
本開示の一実施形態は、ビデオエンコーディング方法をさらに提供する。当該ビデオエンコーディング方法は、以下の内容を含む。本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法に基づいて、現在ブロックの候補動き情報リストを構築する。候補動き情報リストから1つ又は複数の候補動き情報を選択し、選択された候補動き情報のインデックスを記録する。選択された候補動き情報に基づいて現在ブロックの予測ブロックを確定し、予測ブロックに基づいて現在ブロックをエンコードし、候補動き情報のインデックスをエンコードする。
【0008】
本開示の一実施形態は、ビデオデコーディング方法をさらに提供する。当該ビデオデコーディング方法は、本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法に基づいて、現在ブロックの候補動き情報リストを構築する。デコーディングによって取得された現在ブロックの候補動き情報のインデックスに基づいて、候補動き情報リストから1つ又は複数の候補動き情報を選択する。選択された候補動き情報に基づいて現在ブロックの予測ブロックを確定し、予測ブロックに基づいて現在ブロックを再構成する。
【0009】
本開示の一実施形態は時間動き情報予測装置をさらに提供する。当該時間動き情報予測装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載の時間動き情報予測方法を実行する。
【0010】
本開示の一実施形態は候補動き情報リストの構築装置をさらに提供する。当該候補動き情報リストの構築装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法を実行する。
【0011】
本開示の一実施形態はビデオエンコーディング装置をさらに提供する。当該ビデオエンコーディング装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載のビデオエンコーディング方法を実行する。
【0012】
本開示の一実施形態はビデオデコーディング装置をさらに提供する。当該ビデオデコーディング装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載のビデオデコーディング方法を実行する。
【0013】
本開示の一実施形態はビデオコーディングシステムをさらに提供する。当該ビデオコーディングシステムは、本開示のいずれか1つの実施形態に記載のビデオエンコーディング装置と本開示のいずれか1つの実施形態に記載のビデオデコーディング装置を含む。
【0014】
本開示の一実施形態は、非一時的なコンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体にコンピュータプログラムが記憶されている。コンピュータプログラムがプロセッサによって実行される場合、本開示のいずれか1つの実施形態に記載の方法が実行される。
【0015】
本開示の一実施形態は、ビットストリームをさらに提供する。当該ビットストリームは、本開示のいずれか1つの実施形態に記載のビデオエンコーディング方法により生成される。
【0016】
図面及び詳細な説明を読み且つ理解した後、他の側面を理解することができる。
【図面の簡単な説明】
【0017】
図面は本開示の実施形態を理解するために提供され、明細書の一部となる。図面と本開示の実施形態はともに、本開示の技術案を説明するために用いられ、本開示の技術案を限定するものではない。
【
図1A】
図1Aは、本開示の一実施形態に係るコーディングシステムを示す概略図である。
【
図1B】
図1Bは、本開示の一実施形態に係るビデオエンコーディング装置の構造を示す図である。
【
図1C】
図1Cは、本開示の一実施形態に係るビデオデコーディング装置の構造を示す図である。
【
図2】
図2は、現在ブロックと双方向にある参照ブロックとの参照関係を示す概略図である。
【
図3】
図3は、空間動き情報と時間動き情報を導出するために用いられる現在ブロックの隣接位置を示す概略図である。
【
図4】
図4は、コロケートされたブロックからコロケートされた参照ブロックへの動きベクトルに基づいて、現在ブロックから参照ブロックへの動きベクトルを計算することを示す概略図である。
【
図5】
図5は、右から左への動きが存在する画像である。
【
図6】
図6は、右から左への動きが存在する画像である。
【
図7】
図7は、右から左への動きが存在する画像である。
【
図8】
図8は、本開示の一実施形態に係る時間動き情報予測方法を示すフローチャートである。
【
図9】
図9は、本開示の一実施形態に係る候補動き情報リストの構築方法を示すフローチャートである。
【
図10】
図10は、本開示の一実施形態に係る、時間動き情報を導出するために用いられる非隣接位置の一例を示す概略図である。
【
図11】
図11は、本開示の一実施形態に係る、時間動き情報を導出するために用いられる非隣接位置の別の例を示す概略図である。
【
図12】
図12は、本開示の一実施形態に係る、空間動き情報及び時間動き情報を導出するために用いられる様々な位置及びその順序を示す概略図である。
【
図13】
図13は、本開示の一実施形態に係る、時間動き情報を導出するために用いられる非隣接位置の他の例を示す概略図である。
【
図14】
図14は、本開示の一実施形態に係るビデオエンコーディング方法を示すフローチャートである。
【
図15】
図15は、本開示の一実施形態に係るビデオデコーディング方法を示すフローチャートである。
【
図16】
図16は、本開示の一実施形態に係る時間動き情報予測装置を示す概略図である。
【発明を実施するための形態】
【0018】
本開示は、複数の実施形態を説明するが、その説明は例示的なものであり、限定的なものではなく、本開示に記載される実施形態に含まれる範囲内で、より多くの実施例及び実施形態が含まれ得ることは、本分野の当業者にとって明らかである。
【0019】
本開示の説明において、「例示的な」又は「例えば」などの用語は、「例として、例証、説明」を意味する。本開示において、「例えば」又は「例示的」に説明されるいかなる実施形態は他の実施形態より優れていると解釈されるべきではない。本明細書における用語「及び/又は」は関連対象の関連関係を説明するものであり、3種類の関係が存在することを示す。例えば、A及び/又はBの場合は、Aのみが存在すること、AとBが同時に存在すること、Bのみが存在することという3つの状況を示す。「複数」は2つ以上のことをいう。また、本開示の実施形態の技術案を明確に説明するために、「第1」、「第2」などの用語で、機能及び役割がほぼ同一又は類似のものを区別する。当業者は以下のことを理解することができる。「第1」、「第2」などの用語は、数や実行順序を限定するものではなく、且つ「第1」、「第2」などの用語は、必ずしも異なることを限定するものではない。
【0020】
代表的な例示的実施形態の説明において、本明細書では、方法及び/又はプロセスを、特定のステップのシーケンスとして提示している可能性がある。しかしながら、当該方法又はプロセスは本明細書に記載されるステップの特定のシーケンスに依存せず、当該方法又はプロセスは、記載される特定のシーケンスのステップに限定されるべきではない。当業者に理解されるように、他のステップの順序も可能である。従って、明細書に記載されるステップの特定の順序は、特許請求の範囲の限定として解釈されるべきではない。さらに、方法及び/又はプロセスに対応する特許請求の範囲は、記載される順序で実行することに限定されるべきではない。当業者であれば、これらの順序が変化してもよく、依然として本開示の実施形態の精神及び範囲内に属することを容易に理解することができる。
【0021】
本明細書では、ビデオ画像を画像と略称し、当該画像は、ビデオ画像と、ビデオ画像内の一部の領域を含む。ビデオ画像内の一部の領域は、例えば、ビデオ画像から分割されたサブ画像であってもよく、ビデオ画像から分割されたスライス(slice)、スライスセグメント(slice segment)などであってもよい。
【0022】
本明細書では、予測操作を表すために用いられる動き情報予測(motion information prediction)によって導出される動き情報には、参照画像(reference picture)情報と、動きベクトル(motion vector、MV)情報が含まれる。関連するビデオ規格では、「motion vector predictor」で同じ予測操作を表すことがあり、導出される情報には、動きベクトル情報だけではなく、参照画像情報も含まれる。「motion vector predictor」は、本明細書における予測操作を表すために用いられる動き情報予測として理解されることもできる。
【0023】
本明細書では、「時間動き情報」で時間動き情報予測(temporal motion information predictor、又は、temporal motion vector predictor)により得られる動き情報を表す。時間動き情報予測は、規格では「temporal motion vector prediction」と表されることもある。本明細書では、「空間動き情報」で空間動き情報予測(spatial motion information predictor、又は、spatial motion vector predictor)により得られる動き情報を表す。空間動き情報予測は、規格では「spatial motion vector prediction」と表されることもある。本明細書では、予測結果としての「動き情報」は、いくつかの規格では「motion vector prediction」とも表される。
【0024】
本明細書では、現在ブロックの非隣接位置とは、座標が現在ブロックの範囲内のいずれのサンプルに隣接しない位置である。現在ブロックの隣接位置とは、座標が現在ブロックの範囲内の少なくとも1つのサンプルに隣接する位置である。
【0025】
本明細書では、現在ブロック(current block)は、現在のコーディングユニット(coding unit、CU)又は現在の予測ユニット(prediction unit、PU)などであることができる。現在画像は、現在ブロックが位置する画像であり、現在画像シーケンスは、現在ブロックが位置する画像シーケンスである。
【0026】
図1Aは、本開示の実施形態に適用可能なビデオコーディングシステムを示すブロック図である。図に示されるように、当該システムは、エンコーディング側装置1とデコーディング側装置2とに分けられる。エンコーディング側装置1は、ビットストリームを生成する。デコーディング側装置2は、ビットストリームをデコードすることができる。エンコーディング側装置1及びデコーディング側装置2は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに結合されたメモリとを備えることができる。メモリの例として、ランダムアクセスメモリ、電気的に消去可能なプログラム可能な読み取り専用メモリ、フラッシュメモリ又は他の媒体が挙げられる。エンコーディング側装置1及びデコーディング側装置2は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブックコンピュータ、タブレットコンピュータ、セットトップボックス(set top box、STB)、テレビ、カメラ、表示装置、デジタルメディアプレーヤ、車載コンピュータ、又は他の類似の装置など、様々な装置で実現されることができる。
【0027】
デコーディング側装置2は、リンク3を介してエンコーディング側装置1からビットストリームを受信することができる。リンク3は、ビットストリームをエンコーディング側装置1からデコーディング側装置2へ移動させることができる1つ又は複数の媒体又は装置を含む。一例では、リンク3は、エンコーディング側装置1がビットストリームをデコーディング側装置2に直接に送信することを可能にする1つ又は複数の通信媒体を含む。エンコーディング側装置1は、通信規格(例えば、無線通信プロトコル)に従ってビットストリームを変調し、変調されたビットストリームをデコーディング側装置2に送信することができる。上記1つ又は複数の通信媒体は、無線通信媒体及び/又は有線通信媒体を含み、例えば、無線周波数(radio frequency、RF)スペクトル、又は、1つ又は複数の物理的伝送線路が挙げられる。上記1つ又は複数の通信媒体は、パケットベースのネットワークの一部を形成することができ、パケットベースのネットワークは、例えば、ローカルエリアネットワーク(local area network、LAN)、広域ネットワーク(wide area network、WAN)、又は、グローバルネットワーク(例えば、インターネット)である。上記1つ又は複数の通信媒体は、ルータ、スイッチ、基地局、又は、エンコーディング側装置1からデコーディング側装置2への通信を促進する他のデバイスを含むことができる。別の例では、ビットストリームは、出力インターフェース15から記憶装置に出力されることもできる。デコーディング側装置2はストリーミング(streaming)又はダウンロードを介して、当該記憶装置から記憶されたデータを読み出すことができる。
【0028】
図1Aに示す例では、エンコーディング側装置1は、データソース11、エンコーダー13、及び出力インターフェース15を含む。いくつかの例において、データソース11は、ビデオキャプチャ装置(例えば、カメラ)、以前にキャプチャされたデータを含むアーカイブ(archive)、コンテンツプロバイダからデータを受信するためのフィーディングインターフェース、データを生成するためのコンピュータグラフィックスシステム、又はこれらのソースの組み合わせを含む。エンコーダー13は、データソース11からのデータをエンコードして出力インターフェース15に出力することができる。出力インターフェース15は、調整器、モデム、及び送信器のうちの少なくとも1つを含むことができる。
【0029】
図1Aに示す例では、デコーディング側装置2は、入力インターフェース21、デコーダー23、及び表示装置25を含む。いくつかの例において、入力インターフェース21は、受信機及びモデムのうちの少なくとも1つを含む。入力インターフェース21は、リンク3を介して、又は記憶装置からビットストリームを受信することができる。デコーダー23は受信したビットストリームをデコードする。表示装置25は、デコードされたデータを表示するために用いられる。表示装置25は、デコーディング側装置2の他のコンポーネントと一体化されていてもよく、別個に設けられていてもよい。表示装置25は、例えば、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ(plasma display)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は他の種類の表示装置であることができる。また、他の例では、デコーディング側装置2は、表示装置25を含まなくてもよく、又は、デコードされたデータが適用可能な他の装置又は機器を含む。
【0030】
図1Aに示すビデオコーディングシステムに基づいて、様々なビデオコーディング方法を用いてビデオ圧縮を実現することができる。国際的なビデオコーディング規格には、H.264/アドバンスドビデオコーディング(Advanced Video Coding、AVC)、H.265/高効率ビデオコーディング(high efficiency video coding、HEVC)、H.266/多用途ビデオコーディング(Versatile Video Coding、VVC)、動画像専門家グループ(moving picture experts group、MPEG)、AOM(Alliance for Open Media)、オーディオビデオコーディング規格(audio video standard、AVS)、及びこれらの規格の拡張、又はカスタマイズされた他の任意の規格などが含まれる。これらの規格では、ビデオ圧縮技術によって、伝送されるデータ量及び記憶されるデータ量を削減して、より効率的なビデオコーディングと伝送記憶を実現する。上記ビデオコーディング規格にはいずれも、ブロックに基づいた混合コーディング方式が使用される。本開示の実施形態は、当該ブロックに基づいた混合コーディングフレームワークでのビデオコーディングの基本的な流れに適用されるが、当該フレームワーク及び流れに限定されない。
【0031】
図1Bは、本開示の実施形態に使用され得る例示的なビデオエンコーディング装置のブロック図である。
【0032】
図に示すように、当該ビデオエンコーディング装置1000は、予測処理ユニット1100と、分割ユニット1101と、残差生成ユニット1102と、変換処理ユニット1104と、量子化ユニット1106と、逆量子化ユニット1108と、逆変換処理ユニット1110と、再構成ユニット1112と、フィルタユニット1113と、デコードされた画像バッファ1114と、画像解像度調整ユニット1115と、エントロピーエンコーディングユニット1116とを含む。予測処理ユニット1100は、インター予測処理ユニット121と、イントラ予測処理ユニット1126とを含む。ビデオエンコーダー20はまた、この例と比べてより多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
【0033】
分割ユニット1101は、予測処理ユニット1100と協働して、受信したビデオデータをスライス(Slice)、CTU、又は他の比較的大きなユニットに分割する。分割ユニット1101によって受信されるビデオデータは、Iフレーム、Pフレーム、Bフレームなどのビデオフレームを含むビデオシーケンスであってもよい。
【0034】
予測処理ユニット1100は、CTUをCUに分割し、CUに対してイントラ予測コーディング又はインター予測コーディングを行うことができる。CUに対してイントラ予測とインター予測を行う場合、CUを1つ又は複数の予測ユニット(Prediction Unit、PU)に分割することができる。
【0035】
インター予測処理ユニット1121は、PUに対してインター予測を行って、PUの予測データを生成することができる。当該予測データは、PUの予測ブロック、PUの動き情報、及び様々なシンタックス要素を含む。
【0036】
イントラ予測処理ユニット1126は、PUに対してイントラ予測を行って、PUの予測データを生成することができる。当該PUの予測データは、PUの予測ブロック及び様々なシンタックス要素を含むことができる。
【0037】
残差生成ユニット1102は、CUのオリジナルブロックから、CUを分割することで得られたPUの予測ブロックを減算して、CUの残差ブロックを生成することができる。
【0038】
変換処理ユニット1104は、CUを1つ又は複数の変換ユニット(Transform Unit、TU)に分割することができる。TUに関連する残差ブロックは、CUの残差ブロックを分割することによって得られるサブブロックである。TUに関連する残差ブロックに1つ又は複数の変換を適用することによって、TUに関連する係数ブロックが生成される。
【0039】
量子化ユニット1106は、選択された量子化パラメータ(quantization parameter、QP)に基づいて、係数ブロック内の係数を量子化することができる。係数ブロックへの量子化の度合いは、QP値を調整することによって調整されることができる。
【0040】
逆量子化ユニット1108及び逆変換処理ユニット1110は、係数ブロックに逆量子化及び逆変換をそれぞれ適用して、TUに関連する再構成残差ブロックを得ることができる。
【0041】
再構成ユニット1112は、再構成残差ブロックと予測処理ユニット1100によって生成された予測ブロックとを加算することによって、CUの再構成ブロックを生成することができる。
【0042】
フィルタユニット1113は、当該再構成ブロックに対してインループフィルタリングを行った後、それを参照画像としてデコードされた画像バッファ1114に記憶する。イントラ予測処理ユニット1126は、デコードされた画像バッファ1114からPUに隣接するブロックの参照画像を抽出して、イントラ予測を行うことができる。インター予測処理ユニット1121は、デコードされた画像バッファ1114にキャッシュされる前の画像の参照画像を利用して、現在画像のPUに対してインター予測を行うことができる。
【0043】
画像解像度調整ユニット1115は、デコードされた画像バッファ1114に記憶された参照画像を再サンプリングする。再サンプリングはアップサンプリング及び/又はダウンサンプリングを含むことができる。得られる複数の解像度を有する参照画像はデコードされた画像バッファ1114に記憶される。
【0044】
エントロピーエンコーディングユニット1116は、受信したデータ(例えば、シンタックス要素、量子化されたシステムブロック、動き情報など)に対してエントロピーエンコーディング操作を行う。
【0045】
図1Cは、本開示の実施形態に使用され得る例示的なビデオデコーディング装置のブロック図である。
【0046】
図に示すように、ビデオデコーディング装置101は、エントロピーデコーディングユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158(+付きの円で図に示す)と、フィルタユニット159と、画像バッファ160とを含む。他の実施形態では、ビデオデコーダー30は、より多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
【0047】
エントロピーデコーディングユニット150は、受信したビットストリームに対してエントロピーデコーディングを行って、シンタックス要素、量子化された係数ブロック及びPUの動き情報などの情報を抽出することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、及びフィルタユニット159はいずれも、ビットストリームから抽出されたシンタックス要素に基づいて、対応する操作を実行することができる。
【0048】
再構成操作を実行する機能コンポーネントとして、逆量子化ユニット154は、量子化されたTUに関連する係数ブロックを逆量子化することができる。逆変換処理ユニット156は、TUの再構成残差ブロックを生成するために、逆量子化された係数ブロックに1つ又は複数の逆変換を適用することができる。
【0049】
予測処理ユニット152は、インター予測処理ユニット162と、イントラ予測処理ユニット164とを含む。イントラ予測コーディングがPUに用いられる場合、イントラ予測処理ユニット164は、ビットストリームから解析されたシンタックス要素に基づいて、PUのイントラ予測モードを確定し、確定されたイントラ予測モードと、画像バッファ60から取得されたPUの隣接の再構成された参照情報とに基づいて、イントラ予測を実行して、PUの予測ブロックを生成することができる。インター予測コーディングがPUに用いられる場合、インター予測処理ユニット162は、PUの動き情報及び対応するシンタックス要素に基づいてPUの1つ又は複数の参照ブロックを確定し、参照ブロックに基づいてPUの予測ブロックを生成することができる。
【0050】
再構成ユニット158は、TUに関連する再構成残差ブロックと、予測処理ユニット152によって生成されたPUの予測ブロック(即ち、イントラ予測データ又はインター予測データ)とに基づいて、CUの再構成ブロックを得ることができる。
【0051】
フィルタユニット159は、CUの再構成ブロックに対してインループフィルタリングを実行して、再構成された画像を得ることができる。再構成された画像は、画像バッファ160に記憶される。画像バッファ160は、参照画像を提供して、後続の動き補償、イントラ予測、インター予測などに用いることができ、また、再構成されたビデオデータをデコードされたビデオデータとして出力し、表示装置で提示することもできる。
【0052】
ディスプレイ105は、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他の種類の表示装置であることができる。また、他の例では、デコーディング側は、ディスプレイ105を含まなくてもよく、これに代わって、デコードされたデータが適用可能な他の装置を含む。
【0053】
ビデオコーディングの基本的な流れは、以下の通りである。エンコーディング側では、1つの画像をブロックに分割し、現在ブロックに対してイントラ予測又はインター予測を行うことにより現在ブロックの予測ブロックを生成し、現在ブロックのオリジナルブロックから予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換・量子化して量子化係数行列を取得し、量子化係数行列をエントロピーコーディングしてビットストリームに出力する。デコーディング側では、現在ブロックに対してイントラ予測又はインター予測を行うことにより現在ブロックの予測ブロックを生成し、一方、ビットストリームをデコードして量子化係数行列を取得し、量子化係数行列を逆量子化・逆変換して残差ブロックを取得し、予測ブロックと残差ブロックとを加算して再構成ブロックを取得する。再構成ブロックは再構成画像を形成する。画像又はブロックに基づいて再構成画像をインループフィルタリングしてデコードされた画像を取得する。エンコーディング側でも、デコードされた画像を取得するために、デコーディング側と類似の処理が必要である。デコードされた画像は後続の画像の、インター予測のための参照画像であることができる。エンコーディング側で確定されたブロック分割情報、及び、予測、変換、量子化、エントロピーコーディング、インループフィルタリングなどのモード情報又はパラメータ情報などは、必要に応じてビットストリームに出力される。デコーディング側は、既存情報を解析し分析して、エンコーディング側と同じブロック分割情報、予測、変換、量子化、エントロピーコーディング、インループフィルタリングなどのモード情報又はパラメータ情報を確定する。それによって、エンコーディング側で取得されたデコードされた画像とデコーディング側で取得されたデコードされた画像とが同じであることが確保される。エンコーディング側で取得されたデコードされた画像は通常、再構成画像とも呼ばれる。予測中に、現在ブロックを予測ユニットに分割することができる。上記は、ブロックに基づいた混合コーディングフレームワークでのビデオコーデック(エンコーダーとデコーダーを含む)の基本的な流れである。技術の発展に伴い、当該フレームワーク又は流れにおける一部のモジュールやステップが最適化される可能性がある。
【0054】
動きと動き情報
【0055】
ビデオは画像で構成される。ビデオがスムーズに見えるように、ビデオの1秒ごとに数十から数百フレームの画像が含まれている。例えば、1秒ごとに24フレーム、1秒ごとに30フレーム、1秒ごとに50フレーム、1秒ごとに60フレーム、1秒ごとに120フレームなどが含まれる。このように、ビデオには非常に顕著な時間的冗長性がある。言い換えれば、時間的相関性が多く存在するということである。従って、インター予測では通常、「動き」で時間的相関性を利用する。1つの非常に簡単な「動き」モデルは、1つのオブジェクトはある時刻に対応する画像内ではある位置にあり、一定時間経った後、この時刻に対応する画像内の別の位置に並進する、というものである。これは、ビデオコーディングにおいて最も基本的且つ一般的に使用される並進運動(translation motion)である。インター予測では、動き情報(motion information)を利用して「動き」を表す。基本的な動き情報は、参照画像(reference picture)(例えば、参照フレーム(reference frame))情報と動きベクトル(motion vector、MV)情報を含む。コーデックは、参照画像情報に基づいて参照画像を確定し、動きベクトル情報と現在ブロックの座標に基づいて参照ブロックの座標を確定する。参照画像において、参照ブロックの座標を利用して参照ブロックを確定する。ビデオ内の動きは必ずしもこのような簡単な動きではない。並進と見なす動きであっても、微妙な変形、輝度の変化、ノイズの変化など、時間に伴う微妙な変化がある。より良い予測効果を達成するために、複数の参照ブロックを利用して現在ブロックを予測することができる。例えば、現在一般的に使用されている双方向予測では、2つの参照ブロックを利用して現在ブロックを予測する。2つの参照ブロックとしては、1つの前方参照ブロック(forward reference block)と1つの後方参照ブロック(backward reference block)が用いられることができる。また、2つの参照ブロックはいずれも前方参照ブロックであり、又は、いずれも後方参照ブロックであることも許可される。前方とは、参照画像に対応する時刻が現在画像の前にあることを意味し、後方とは、参照画像に対応する時刻が現在画像の後にあることを意味する。換言すれば、前方とは、ビデオにおける参照画像の位置が現在画像の前に位置することを意味し、後方とは、ビデオにおける参照画像の位置が現在画像の後に位置することを意味する。換言すれば、前方とは、参照画像のPOC(picture order count)が現在画像のPOCより小さいことを意味し、後方とは、参照画像のPOCが現在画像のPOCより大きいことを意味する。将来のビデオコーディング規格は、より多くの参照ブロックによる予測をサポートする可能性がある。2つの参照ブロックを利用して予測ブロックを生成する1つの簡単な方法は、2つの参照ブロックに対応する位置のサンプル値を平均して予測ブロックを得ることである。より良い予測結果を得るために、現在、VVCに用いられるBCW(Bi-prediction with CU-level weight)のような重み付け平均を利用することもできる。VVC内の幾何分割モード(Geometric Partitioning Mode、GPM)は、特殊な双方向予測として理解されることもできる。双方向予測を利用できるように、当然に2つの参照ブロックを見つける必要がある。それで、2セットの参照画像情報と動きベクトル情報が必要となる。各セットを1つの単方向の動き情報として理解することができる。
【0056】
ビデオン内の動きには、簡単な並進だけではなく、スケーリング、回転、歪み、及び様々な形式がある。上記2つのセットを組み合わせると1つの双方向の動き情報となる。具体的に実現する時、単方向の動き情報と双方向の動き情報は同じデータ構造を用いることができ、双方向の動き情報では2セットの参照画像情報と動きベクトル情報がいずれも有効であり、単方向の動き情報では2セットのうちの1セットの参照画像情報と動きベクトル情報が無効である。動きが複雑であることができる。VVCでは、アフィン(affine)でいくつかの簡単な動きを模擬する。VVCにおけるアフィンモデルでは、2つ又は3つの制御点を用い、これらの制御点に基づいて線形モデルを採用して現在ブロック内の各サブブロックの動きベクトルを導出する。ここで、動き情報ではなく、動きベクトルのみを言及するのは、動きベクトルがいずれも同じ参照画像を指向するためである。通常の並進運動では、参照画像から「全体のブロック」を見つけることに対して、アフィンでは、参照画像から隣接していない1セットの「サブブロック」を見つけると理解されることができる。上記はいずれも単方向予測の範疇にある。アフィンでは双方向予測や、より多くの「参照ブロック」による予測を実現することもできる。ここでいう参照ブロックはサブブロックの組み合わせである。具体的に実現するとき、アフィン動き情報のデータ構造における1つの単方向の動き情報は、1つの参照画像情報と、2~3個の動きベクトル情報とを含むことができ、又は、2~3セットの参照画像情報と動きベクトル情報を含むが、これらの参照画像情報は同じである。
【0057】
もちろん、動き情報には、基本的な参照画像情報と動きベクトル情報に加えて、BCWが用いられるか否か、及びBCWのインデックスなどの付加情報が含まれることができる。
【0058】
参照画像(参照フレーム)
【0059】
並列処理を考慮しない場合、ビデオは画像ごとに処理される。既にコード(エンコードとデコードを含む)済みの画像は、バッファに記憶されて、後続にコードされる画像の参照画像とされる。現在のコーディング規格には、参照画像を管理する参照画像管理方法がある。参照画像管理方法は、どの画像を現在画像の参照画像とすることができるか、これらの参照画像のインデックス、どの画像をバッファに記憶する必要があるか、どの画像が参照画像とされなくなってバッファから除去されることができるかを管理するために用いられる。
【0060】
画像のコーディングの順序の違いにより、現在よく使われているシナリオは、ランダムアクセス(random access、RAと略称)と低遅延(low delay、LDと略称)という2種類に分けられる。低遅延シナリオでは、画像表示の順序とコーディングの順序とは同じであり、ランダムアクセスシナリオでは、画像表示の順序とコーディングの順序とは異なることができる。一般的に言えば、低遅延シナリオでは、ビデオ自体の順序に従って、画像ごとにコードする。ランダムアクセスシナリオでは、ビデオ自体の順序を乱すことができ、いくつかの画像をまずコードせず、その後のいくつかの画像を先にコードし、次に、スキップされた画像をコードする。ランダムアクセスの利点として、いくつかの画像はその前の参照画像とその後の参照画像の両方を参照できるため、「動き」をうまく利用して圧縮効率を高めることができる。
【0061】
RAの典型的なGOP(Group of Picture)構造を
図2に示す。図におけるPフレーム(Predictive Frame)は単方向(前方)予測しかできないフレームであり、Bフレーム(Bi-predictive Frame)は双方向予測ができるフレームである。この参照関係の制限は、画像レベル以下のレベルに適用されることもでき、例えば、スライスレベルで分割されるPスライスとBスライスが挙げられる。
【0062】
図2における矢印は参照関係を示す。Iフレームは参照画像を必要としない。POCが0であるIフレームをコードした後、POCが4であるPフレームをコードする。POCが4であるPフレームをコードする際に、POCが0のIフレームを参照することができる。次に、POCが2であるBフレームをコードする。POCが2であるBフレームをコードする際に、POCが0であるIフレームとPOCが4であるPフレームを参照することができる。
【0063】
コーデックは参照画像リストを利用して参照画像を管理する。VVCでは、2つの参照画像リストがサポートされ、RPL0、RPL1と表記され、RPLは参照画像リスト(Reference Picture List)の略称である。VVCにおけるPスライスはRPL0のみを利用でき、BスライスはRPL0及びRPL1を利用できる。1つのスライスに対して、各参照画像リストにはいくつかの参照画像があり、コーデックは、参照画像インデックスを利用してある特定の参照画像を見つける。VVCでは、参照画像インデックス及び動きベクトルで動き情報を表す。例えば、上記双方向の動き情報に対して、VVCでは、RPL0に対応する参照画像インデックスrefIdxL0、RPL0に対応する動きベクトルmvL0、及びRPL1に対応する参照画像インデックスrefIdxL1、RPL1に対応する動きベクトルmvL0が利用される。RPL0に対応する参照画像インデックス及びRPL1に対応する参照画像インデックスは、上記参照画像情報として理解されることができる。VVCでは、2つのフラグ(flag)で、RPL0に対応する動き情報が利用されるか否か、及びRPL0に対応する動き情報が利用されるか否かをそれぞれ示し、2つのフラグがそれぞれpredFlagL0及びpredFlagL1と表記される。また、predFlagL0及びpredFlagL1は、上記単方向の動き情報が「有効であるか否か」を示すと理解されることができる。
【0064】
動きベクトルの精度は整数画素(integer-pixel)に限らず、VVCでは1/2画素、1/4画素、1/8画素、1/16画素の精度の予測ができる。分数画素(fractional-pixel)での予測は整数画素への補間を必要とする。それによって、動きベクトルがより細かくなり、予測品質が向上する。
【0065】
動き情報予測(motion vector prediction又はmotion information prediction)
【0066】
現在ブロックのために、動き情報を利用して参照画像から参照ブロックを見つけて、参照ブロックに基づいて現在ブロックの予測ブロックを確定することができる。
【0067】
現在ブロックに用いられる動き情報は、通常、いくつかの関連情報を利用して予測されることができ、これは動き情報予測又は動きベクトル予測と呼ばれることができる。例えば、現在画像(例えば、フレーム又はスライス)における現在ブロック周辺の隣接するコード済みのブロックに用いられた動き情報を利用することができる。それは隣接するブロック間に強い相関性があるためである。また、現在画像における現在ブロック周辺の隣接しないコード済みのブロックに用いられた動き情報を利用することもできる。それは隣接していなくても、比較的近い領域にあるブロックと現在ブロックとの間にある程度の相関性があるためである。このように、現在画像における現在ブロック周辺のコード済みのブロックに用いられる動き情報を利用して動き情報予測を行う方法は、一般に空間動き情報予測と呼ばれる。また、現在ブロック周辺のコード済みのブロックに加えて、コード済みの画像内の現在ブロックの位置に関連するブロックの動き情報を利用して現在ブロックに対して動き情報予測を行うこともでき、これは一般に時間動き情報予測と呼ばれる。さらに、コーディングの順序に従って、コード済みのブロックの動き情報をリストで維持することもできる。一般に、リストにおいて、最新のコードされた複数の異なる動き情報が残され、このリスト内の動き情報を利用して、現在ブロックに対して動き情報予測を行う。これは一般に、履歴ベースの動き情報予測(history-based motion vector prediction)と呼ばれる。空間動き情報は、現在ブロックと同じ画像の動き情報を利用して導出され、時間動き情報は、現在ブロックとは異なる画像の動き情報を利用して導出されると簡単に理解することができる。
【0068】
空間動き情報予測を使用するには、現在画像(又はスライス)内のコード済みのブロックの動き情報を記憶する必要がある。一般的に、最小記憶ユニットが設定され、例えば、最小記憶ユニットとして4×4のサイズが設定されるが、8×8又は他のサイズであってもよい。コーデックは、1つのブロックをコードするたびに、このブロックに対応するすべての最小記憶ユニットのために動き情報を記憶する。現在ブロック周辺にあるブロックの動き情報を見つけるには、座標位置に基づいて最小記憶ユニットを見つけてその動き情報を得ることができる。同様に、時間動き情報予測を使用するには、コード済みの画像(又はスライス)の動き情報を記憶する必要がある。一般に、最小記憶ユニットも設定される。それは、空間動き情報の記憶ユニットと同じサイズを有してもよく、異なるサイズを有してもよく、規格の規定によって決められる。現在ブロックのために上記画像(又はスライス)内のあるブロックの動き情報を見つけるには、座標位置に基づいて最小記憶ユニットを見つけてその動き情報を得ることができる。記憶スペース又は実装の複雑度の制限により、現在ブロックのために、一定の座標位置の範囲内の時間動き情報又は空間動き情報しか取得できない可能性がある。
【0069】
動き情報予測により、1つの動き情報、又は複数の動き情報を得ることができる。複数の動き情報を得る場合、通常、どの1つ又は複数の動き情報を選択するか、又はいくつかの既定のルールに従って、どの1つ又は複数の動き情報を選択するかを指示する必要がある。例えば、VVC内のGPMに2つの動き情報を利用する必要があり、例えば、サブブロックベースのTMVP(sub-block based TMVP、SbTMVPと略称)では、サブブロックごとに1つの動き情報を利用する必要がある。TMVPは時間動き情報予測(temporal motion vector predictor)を指す。本明細書では、TMVPは隣接位置に基づいた時間動き情報予測を表するために用いられる。
【0070】
予測で得られる動き情報を使用するために、予測で得られるある特定の動き情報を、直接に現在ブロックの動き情報とすることができる。一例として、HEVC内のマージ(merge)が挙げられる。又は、予測で得られるある特定の動き情報に動きベクトル差分(motion vector difference、MVD)を加えることで、新たな動き情報を得る。設計上、予測された動き情報は実際の動き情報に近いほど良いが、動き情報予測が常に精確であることを確保できないため、より精確な動き情報を得るために、動きベクトル差分を利用することができる。VVCに動きベクトル差分の新しい表現方法が加えられており、マージモードに、動きベクトル予測とこの動きベクトル差分の新しい表現方法との組み合わせを利用することができ、それをMMVD(merge with MVD)と呼ぶ。つまり、動き情報予測は直接に利用されることができ、他の方法と組み合わせて利用されることもできる。
【0071】
以下、VVC内のマージ動き情報候補リストの構築方法を例とする。
【0072】
マージ動き情報候補リストをmergeCandListと記す。mergeCandListを構築する際に、まず、
図3の位置1~5に基づいた空間動き情報予測をチェックし、次に時間動き情報予測をチェックする。時間動き情報予測をチェックする際に、位置6が利用可能であれば、位置6に基づいて時間動き情報予測を導出する(drive)。導出は導き出しとも言う。即ち、位置6に基づいて一歩一歩計算して時間動き情報を得る。位置6が利用可能であることは、位置6が画像又はサブ画像の境界を超えず、且つ現在ブロックと同じCTU行にあることを指し、具体的に規格のテキストを参照されたい。位置6が利用不可能である場合、位置7に基づいて時間動き情報予測を導出する。位置6を座標(xColBr,yColBr)で表すことができ、位置7を座標(xColCtr,yColCtr)で表すことができる。
【0073】
1つの具体的な空間動き情報の確定方法は以下の通りである。
図3内の位置2の空間動き情報を導出することを例として、位置2をB
1と記し、又は、位置2が位置するブロックをB
1と記す。利用可能なフラグavailableFlagB
1、参照画像インデックスrefIdxLXB
1、参照画像リスト利用フラグpredFlagLXB
1、動きベクトルmvLXB
1を導出する。上記availableFlagB
1はB
1の空間動き情報が利用可能であるか否かを示すために用いられることができる。参照画像インデックスrefIdxLXB
1、参照画像リスト利用フラグpredFlagLXB
1、及び動きベクトルmvLXB
1は合わせて動き情報を構成する。X = 0..1である。
【0074】
(xCb,yCb)は、現在画像の左上隅に対する現在ブロックの左上隅の座標であり、cbWidthは現在ブロックの幅であり、cbHeightは現在ブロックの高さであると記される。
【0075】
隣接ブロックB1内の座標( xNbB1, yNbB1 )を( xCb + cbWidth - 1, yCb - 1 )に設定する。( xNbB1, yNbB1 )が位置するブロックが利用可能であるか否かを判断する。1つの判断方法は以下の通りである。( xNbB1, yNbB1 )が位置するブロックが既にコードされており、且つインターコードされた場合、当該ブロックは利用可能であり、そうではない場合、当該ブロックは利用不可能である。もちろん、付加の判断条件があり得る。例えば、xCb >> Log2ParMrgLevelがxNbB1 >> Log2ParMrgLevelに等しく、且つyCb >> Log2ParMrgLevelがyNbB1 >> Log2ParMrgLevelに等しい場合、当該ブロックは利用不可能である。Log2ParMrgLevelはシーケンスレベルパラメータによって確定される変数である。「>>」は右シフト操作を示す。
【0076】
――( xNbB1, yNbB1 )が位置するブロックが利用不可能である場合、availableFlagB1の値は0に設定され、mvLXB1の水平成分の値と垂直成分の値はいずれも0に設定され、refIdxLXB1の値は-1に設定され、predFlagLXB1の値は0に設定され、X = 0..1である。
――そうではない場合、availableFlagB1の値は1に設定され、且つ以下のように値が付与される。
mvLXB1= MvLX[ xNbB1 ][ yNbB1 ]
refIdxLXB1 = RefIdxLX[ xNbB1 ][ yNbB1 ]
predFlagLXB1 = PredFlagLX[ xNbB1 ][ yNbB1 ]
【0077】
一つの理解として、( xNbB1, yNbB1 )における動き情報を位置B1に基づいた空間動き情報予測に用い、他の位置に基づいた空間動き情報予測を類似の方法で導出することができる。
【0078】
時間動き情報の導出
【0079】
図4に示すように、currPicは現在画像であり、currCbは現在ブロックであり、currRefは現在ブロックの時間動き情報のための参照画像であり、colCbはコロケートされたブロックであり、colPicはコロケートされたブロックが位置する画像であり、colRefはコロケートされたブロックに用いられる動き情報のための参照画像である。時間動き情報を導出する中に、まず、1つの位置情報に基づいてcolPicからcolCbを見つけ、colCbの動き情報を見つける。
図4に示すcolCbの動き情報は、colPicからcolRefへの動きベクトル(実線で示す)である。実線で示す動きベクトルをcurrPicからcurrRefへの動きベクトル(即ち、点線で示す動きベクトル)にスケーリングすることで時間動き情報を得る。tbはcurrPicのPOCとcurrRefのPOCとの差に基づいて確定される変数であり、tdはcolPicのPOCとcolRefのPOCとの差に基づいて確定される変数である。tbとtdに基づいて動きベクトルのスケーリングを行う。図示されているのは、単方向の動き情報、又は、1つの動きベクトルのスケーリングである。時間動き情報は双方向の動き情報を用いることが可能であることが理解されることができる。
【0080】
1つの具体的な時間動き情報の導出方法は以下の通りである。
図3内の位置6の時間動き情報を導出することを例として、位置6をColと記し、又は、参照画像において位置6が位置するブロックをColと記す。Colはcollocatedの略称であり、このブロックをコロケートされたブロックと呼び、この参照画像をコロケートされた画像と呼ぶ。利用可能なフラグavailableFlagCol、参照画像インデックスrefIdxLXCol、参照画像リスト利用フラグpredFlagLXCol、動きベクトルmvLXColを導出する。上記availableFlagColはColの時間動き情報が利用可能であるか否かを示すために用いられることができる。参照画像インデックスrefIdxLXCol、参照画像リスト利用フラグpredFlagLXCol、及び動きベクトルmvLXColは合わせて動き情報を構成する。X = 0..1である。
【0081】
位置6の座標(xColBr, yColBr)を(xCb + cbWidth, yCb + cbHeight)と記す。座標(xColBr, yColBr)が要件を満たす場合、例えば、現在画像又はサブ画像の範囲を超えず、又は、現在ブロックが位置するCTU行の範囲を超えない場合、コロケートされたブロックの座標( xColCb, yColCb )を( ( xColBr>> 3)<<3, ( yColBr>>3 )<<3 )と記す。現在ブロックがcurrCbであると記され、コロケートされた画像ColPic上のコロケートされたブロックはcolCbであり、colCbは( xColCb, yColCb )をカバーするブロックである。currPicは現在画像である。座標を計算する際に、まず3ビット右シフト(>>)し、次に3ビット左シフト(<<)するのは、本例示のコロケートされた画像内の動き情報が8×8の最小記憶ユニットで記憶される(バッファの空間を節約するために、参照画像動き情報をキャッシュする粒度が比較的粗いものにすることができる)ためである。まず3ビット右シフトし、次に3ビット左シフトすることで、最後の3ビットが0になる。例えば、10のバイナリは1010であり、まず3ビット右シフトし次に3ビット左シフトすると、8になり、バイナリは1000である。異なる実施形態では、座標の換算が異なる場合がある。
【0082】
ここで、説明の便宜上、いくつかの簡略化した仮定を行う。この例では、コロケートされたブロックの動き情報と導出しようとする時間動き情報はいずれも1つの参照画像リストL0のみを利用する。この例では、以下に現れるXはすべて0である。しかし、実際では、これらの2つの動き情報は、いくつかのシナリオで2つの参照画像リストを利用することが許可されることに留意されたい。また、コロケートされたブロックの前方動き情報又は後方動き情報に基づいて導出される時間動き情報の前方動き情報又は後方動き情報は、複数の組み合わせ方式を有することができ、本発明ではこれらが限定されないため、最も簡単な例のみで説明する。簡単のため、refIdxLXも0に設定される。refIdxLXは複数の可能な値を有することができ、本開示ではこれらが限定されないため、最も簡単な例のみで説明する。
【0083】
mvLXColとavailableFlagColは以下の方法に基づいて導出される。
――colCbがイントラモード、イントラブロックコピー(Intra Block Copy、IBC)モード、又はパレット(palette)モードでエンコードされており、mvLXColの水平成分と垂直成分がいずれも0に設定され、availableFlagColが0に設定される場合、コロケートされたブロックは利用不可能であると考えられる。
――そうではない場合、availableFlagColが1に設定され、動きベクトルmvCol、参照画像インデックスrefIdxColと参照画像リストインジケーションlistColは以下の方法に基づいて導出される。mvCol、refIdxCol、及びlistColは、スケーリングに用いられるコロケートされたブロックの動き情報を構成する。mvCol、refIdxCol及びlistColはそれぞれ、mvL0Col[ xColCb ][ yColCb ]、refIdxL0Col[ xColCb ][ yColCb ]、L0に設定される。
【0084】
predFlagLXColは1に設定される。
【0085】
mvLXColは以下の方法に基づいて導出される。
――refPicList[ listCol ][ refIdxCol ]はコロケートされたブロックcolCbの動き情報のための参照画像であり、即ち、図におけるcolRefである。RefPicList[ X ][ refIdxLX ]は時間動き情報のための参照画像であり、即ち、図におけるcurrRefである。ColPicとrefPicList[ listCol ][ refIdxCol ]との間のPOC距離colPocDiffを計算し、currPicとRefPicList[ X ][ refIdxLX ]との間のPOC距離currPocDiffを計算する。
colPocDiff = DiffPicOrderCnt( ColPic, refPicList[ listCol ][ refIdxCol ] )
currPocDiff = DiffPicOrderCnt( currPic, RefPicList[ X ][ refIdxLX ] )
colPocDiffがcurrPocDiffに等しい場合、
mvLXCol = Clip3( -131072, 131071, mvCol )
そうではない場合、mvLXColはmvColに基づいてスケーリングされる。
tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td
distScaleFactor = Clip3( -4096, 4095, ( tb * tx + 32 ) >> 6 )
mvLXCol = Clip3( -131072, 131071, (distScaleFactor * mvCol + 128-( distScaleFactor * mvCol >= 0 ) ) >> 8 )
ここで、
td = Clip3( -128, 127, colPocDiff )である。
tb = Clip3( -128, 127, currPocDiff )である。
【0086】
ここのclip3はクリッピング関数であり、clip3内の-131072、131071、-4096、4095などはデータ精度に関連しており、異なる精度規定でこれらの数値が異なる可能性がある。上記演算については関連規格を参照することができる。
【0087】
各候補動き情報をmergeCandListに加える際に、同じ動き情報や非常に類似している動き情報がmergeCandListに加えられないように、同一性チェックや類似性チェックを行うことができる。それは、mergeCandListが実際により多くの候補を提供することに役立つ。
【0088】
VVC内の動き情報を例として、まず動き情報が同じであるか否かを判断する方法を説明する。VVC内の動き情報は、predFlagLX、refIdxLX、及びmvLXを含む。X=0..1である。2つの動き情報をそれぞれmi0、mi1と記し、2つの動き情報が同であるか否かを判断する方法の1つは以下の通りである。Xが0であっても1であっても、mi0. predFlagLXがmi1. predFlagLXに等しく、mi0. refIdxLXがmi1. refIdxLXに等しく、且つmi0. mvLXがmi1. mvLXに等しい場合、mi0とmi1は同じである。predFlagLXが0であれば、対応するrefIdxLXとmvLXは予め設定された値であると仮定し、即ち、それらはランダムな値ではない。
【0089】
又は、predFlagLXが1である場合、refIdxLX間の比較とmvLX間の比較を行う。predFlagLXが0である場合、refIdxLX間の比較とmvLX間の比較を行う必要がない。2つの参照画像リストに同じ参照画像がある場合、各predFlagLXが異なり、且つ各refIdxLXが異なっていても、それらは同じ参照画像を指向する可能性がある。対応するmvLXが同じであれば、実際に動き情報は同じである可能性もある。参照画像リストLX内のインデックスがrefIdxLXである参照画像は、refPicList[LX][ refIdxLX]であると記される。一般に、同一の参照画像リスト内に2つの同じ参照画像が存在することはないため、2つの単方向の動き情報がそれぞれ異なる参照画像リストを用いることを例として挙げることができる。即ち、mi0.predFlagL0とmi0.predFlagL1のうちの1つが1であり、もう1つが0であり、1であるものはリストAに対応すると記される。mi1.predFlagL0とmi1.predFlagL1のうちの1つが1であり、もう1つが0であり、1であるものはリストBに対応すると記される。mi0.refPicList[LA][refIdxLA]がmi1.refPicList[LB][refIdxLB]に等しく、且つmi0.mvLAがmi1.mvLBに等しい場合、2つの動き情報が同じである。上記2つの方法はそれぞれ、各パラメータを直接に比較する方法と、導出される参照画像を比較する方法である。
【0090】
以下、2つの動き情報が類似していることを紹介する。VVC内の動き情報はpredFlagLX、refIdxLX、及びmvLXを含む。X=0..1である。2つの動き情報をそれぞれmi0、mi1と記し、2つの動き情報が類似しているか否かを判断する方法の1つは以下の通りである。Xが0であっても1であっても、mi0. predFlagLXがmi1. predFlagLXに等しく、mi0. refIdxLXがmi1. refIdxLXに等しく、且つdiff(mi0. mvLX, mi1. mvLX)<diffThである場合、mi0とmi1とが類似している。predFlagLXが0であれば、対応するrefIdxLXとmvLXは予め設定された値であると仮定し、即ち、それらはランダムな値ではない。
【0091】
又は、predFlagLXが1である場合、refIdxLX間の比較とmvLX間の比較を行う。predFlagLXが0である場合、refIdxLX間の比較とmvLX間の比較を行う必要がない。2つの参照画像リストに同じ参照画像がある場合、各predFlagLXが異なり、且つ各refIdxLXが異なっていても、それらは同じ参照画像を指向する可能性がある。対応するmvLXが類似していれば、実際に動き情報は類似している可能性もある。参照画像リストLX内のインデックスがrefIdxLXである参照画像は、refPicList[LX][ refIdxLX]であると記される。一般に、同一の参照画像リスト内に2つの同じ参照画像が存在することはないため、2つの単方向の動き情報がそれぞれ異なる参照画像リストを用いることを例として挙げる。即ち、mi0.predFlagL0とmi0.predFlagL1のうちの1つが1であり、もう1つが0であり、1であるものはリストAに対応すると記される。mi1.predFlagL0とmi1.predFlagL1のうちの1つが1であり、もう1つが0であり、1であるものはリストBに対応すると記される。mi0.refPicList[LA][refIdxLA]がmi1.refPicList[LB][refIdxLB]に等しく、且つdiff(mi0. mvLX, mi1. mvLX)<diffThの場合、2つの動き情報は類似している。diff(mi0. mvLX, mi1. mvLX)は、2つの動きベクトルの差を表すために用いられることができ、例えば、2つの動きベクトルの水平成分の差の絶対値と、2つの動きベクトルの垂直成分の差の絶対値との和、又は、2つの動きベクトルの水平成分の差の絶対値と、2つの動きベクトルの垂直成分の差の絶対値とのうちの最大値が挙げられる。diffThは、類似しているか否かを判断する閾値である。差がdiffThより小さければ、2つの動きベクトル(情報)は類似していると判断し、そうではなければ、2つの動きベクトル(情報)は類似していないと判断する。上記2つの方法はそれぞれ、各パラメータを直接に比較する方法と、導出される参照画像を比較する方法である。
【0092】
ビデオコーディングの順序は大体、左から右へ、上から下への順序である。例えば、1つのスライス内では、左上隅の1番目のCTUからコーディングを開始し、それから右へ進み、1つのCTU行を処理した後、2行目の左の1番目のCTUからコーディングを継続する。そして、1つのCTU内でも左から右へ、上から下への順序で行われる。この処理順序によって、左側、上側からの関連情報が得やすく、右側、下側からの関連情報がより得がたいことが決められる。これら関連情報のうちの1つの重要な情報は動き情報である。動きは任意の1つの方向を指す可能性がある。左から右への動きもあれば、右から左への動きもある。1つの簡単なシナリオを例として、低遅延(low delay)シナリオのコーディング配置で、画像はいずれも時間順にコードされる。1つのオブジェクトが右から左へ動くと仮定し、時間動き情報を導出するために用いられる位置6にあるコロケートされたブロックにこのオブジェクトの内容が含まれていない場合、現在ブロックのために動き情報が予測されることができない可能性が高い。さらに、いくつかの動きが、現在画像のコード済みの部分から取得されることができず、現在ブロックに隣接する右下隅の位置から取得されることができない場合、この動き情報が予測されることができない可能性が高い。例えば、
図5の画像RaceHorsesでは右から左へ移動する騎手、
図6の画像BasketballDrillでは右下から左上へ移動する人、
図7の画像BQTerraceでは右上から左下へ移動する車などが挙げられる。これらのシナリオでは、既存の動き情報予測方法では、このような動き情報をうまく予測することができない。
【0093】
コード済みの部分に1つのオブジェクトが現れていない場合、現在ブロックに対して空間動き情報予測を行うことでそのオブジェクトの動き情報を得ることは困難である。そこで、時間動き情報予測に頼ることができる。時間動き情報予測には、現在ブロックに隣接する右下隅の位置が利用される。しかし、ランダムアクセス(random access)シナリオの配置下であっても、1つの位置での動き情報は、その位置のコロケートされたブロックに当該オブジェクトが含まれていない可能性があるため、足りないことが多い。
【0094】
特に、GPMモードの場合である。GPMモードにおいて、いくつかの分割では、2つのオブジェクトのエッジが模擬される。左上隅に1つのオブジェクトがあり、右下隅にもう1つのオブジェクトがある場合、左上隅のオブジェクトの関連情報が得やすいが、右下隅のオブジェクトの関連情報が得にくい。右下隅のオブジェクトの動き情報を得ないため、GPMを利用できない可能性がある。
【0095】
この問題を解決するために、現在ブロックに隣接しない1つ又は複数の位置を利用して、時間動き情報予測を行うことができる。
【0096】
本開示の一実施形態は、時間動き情報予測方法を提供する。当該方法は以下の内容を含む。
【0097】
ステップ110:現在ブロックの少なくとも1つの非隣接位置を確定する。
【0098】
ステップ120:コードされた画像内の少なくとも1つの非隣接位置の動き情報に基づいて、現在ブロックの第1の時間動き情報を確定する。
【0099】
本明細書では、請求項1におおける、非隣接位置に基づいて行われる時間動き情報予測は、非隣接位置に基づいた時間動き情報予測と呼ばれ、英語がnon adjacent temporal motion vector predictionであり、NATMVPと略称される。motion informationではなく、motion vectorを利用したのは、慣用用語と一致するためである。ここのmotion vectorには依然として、参照画像インデックスや参照画像リスト利用フラグなどの参照画像情報が含まれている。本明細書では、第1の時間動き情報は、「NATMVPによって確定された時間動き情報」とも呼ばれる。
【0100】
本明細書では、時間動き情報予測により確定された現在ブロックの動き情報を現在ブロックの時間動き情報と呼び、空間動き情報予測により確定された現在ブロックの動き情報を現在ブロックの空間動き情報と呼ぶ。
【0101】
本開示の1つの例示的な実施形態において、時間動き情報予測方法は、隣接位置に基づいた時間動き情報予測、即ち、現在ブロックの隣接位置に基づいた時間動き情報予測(TMVPと略称)をさらに含む。現在ブロックの隣接位置から時間動き情報を取得できない場合、現在ブロックの内部から時間動き情報を取得することもできる。
【0102】
現在ブロックの1つの非隣接位置に基づいて時間動き情報予測を行う場合、当該非隣接位置の座標に基づいて、参照画像内の、現在ブロックに対応するコロケートされたブロックを確定することができ(当該コロケートされたブロックは、参照画像内の、当該非隣接位置を含むコーディングユニット又は最小記憶ユニットであり、当該参照画像はコロケートされた画像とされる)、当該コロケートされたブロックの動き情報を取得し、動き情報内の動きベクトルをスケーリングして、現在ブロックの時間動き情報を取得する。当該時間動き情報が当該非隣接位置に基づいて導出されるため、本明細書では、当該非隣接位置を当該時間動き情報を導出する位置ともいう。
【0103】
本明細書では、現在ブロックに隣接する位置(即ち、現在ブロックの隣接位置)に基づいて空間動き情報予測を行うことをSMVP(spatial motion vector predictor)と略称する。もちろん、現在ブロックに隣接しない位置(即ち、現在ブロックの非隣接位置)に基づいて空間動き情報予測を行うことも可能であり、本明細書ではこの予測をNASMVP(non adjacent spatial motion vector predictor)と略称する。
【0104】
本開示の1つの例示的な実施形態において、少なくとも1つの非隣接位置は、以下の方向にある非隣接位置のうちのいずれか1つ又は複数を含む。
現在ブロックの右側の非隣接位置、
現在ブロックの下側の非隣接位置、及び、
現在ブロックの右下側の非隣接位置。
【0105】
図10に示すように、図中の大きな正方形は16×16のブロックを表し、現在ブロックは中心に位置する。図中の切断線(section line)のある小さな正方形は4×4のブロックであり、最小記憶ユニットに対応する。表現を容易にするために、
図10では1つの小さな正方形を用いて、座標がその小さな正方形内に収まる非隣接位置を表す。
【0106】
一例では、現在ブロックの右側の非隣接位置とは、横座標がxCb+ cbWidthより大きく、且つ縦座標が区間[yCb, yCb+cbHeight-1]にある非隣接位置を指す。現在ブロックの下側の非隣接位置とは、縦座標がyCb+cbHeightより大きく、且つ横座標が区間[xCb, xCb+ cbWidth -1]にある非隣接位置を指す。現在ブロックの右下側の非隣接位置とは、横座標がxCb+ cbWidthより大きく、且つ縦座標がyCb+cbHeightより大きい非隣接位置を指す。これらについては
図10における3つの太線で示すボックスを参照することができる。
【0107】
図10において、現在ブロックに隣接する右下隅の位置は、TMVPに用いられる位置である。現在ブロックに隣接する右下隅の位置が利用できない場合、現在ブロックの中心の位置が利用される。NASMVPに用いられる右上側の位置と左下側の位置が利用できないことが多いことが考慮される。別の実施形態では、
図11に示すように、NATMVPに現在ブロックの右上側の位置及び/又は左下側の位置が利用されることもできる。他の実施形態では、NATMVPに現在ブロック周辺の全方位の位置が利用されることもでき、左側、上側、及び左上側のうちの少なくとも1つ方向の非隣接位置が含まれ、これらの非隣接位置は参照画像内において既にコードされている。実際の応用では、いくつかの位置のみが利用される可能性がある。なお、本開示の実施形態に実際に使用される非隣接位置の具体的な座標は、図示されたものに基づいて変化し得、例えば、横座標と縦座標のうちの少なくとも1つに対して「+1」又は「-1」の演算を実行することなどが挙げられる。図に反映すれば、1つの非隣接位置に対応する小さな正方形は、1つの大きな正方形の左下隅から次の大きな正方形の左上隅へと変更され得る。
【0108】
本開示の1つの例示的な実施形態では、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は予め設定された固定値であり、又は、
非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、可変であり、以下のパラメータ、又は以下のパラメータの任意の組み合わせに基づいて確定される。
現在ブロックのサイズ、
現在画像シーケンスのパラメータ、
現在画像シーケンスのシーケンスレベルフラグ、
現在画像の画像レベルフラグ、及び、
現在画像のスライスレベルフラグ。
【0109】
一例では、非隣接位置と現在ブロック内の設定サンプルとの間の水平方向の距離(即ち、水平距離)と垂直方向の距離(即ち、垂直距離)は予め設定されることができ、例えば、
図12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離はいずれも16画素であり、
図12内の位置16から現在ブロックの右下隅までの水平距離と垂直距離はいずれも16*2画素即ち32画素であり、以下、このように類推することができる。
【0110】
一例では、非隣接位置は、現在ブロックの位置に基づいて確定されることができる。(xCb,yCb)は現在画像の左上隅に対する現在ブロックの左上隅の座標であり、cbWidthは現在ブロックの幅であり、cbHeightは現在ブロックの高さであると記される。この例では、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は現在ブロックのサイズに応じて確定される。例えば、
図12内の位置10から現在ブロックの右下隅までの水平距離はcbWidthであり、垂直距離はcbHeightであり、位置10の座標は(xCb+2*cbWidth-1, yCb+2*cbHeight-1)である。
図12内の位置16から現在ブロックの右下隅までの水平距離は2*cbWidthであり、垂直距離は2*cbHeightであり、位置16の座標は(xCb+3*cbWidth-1, yCb+3*cbHeight-1)である。以下、このように類推することができる。
【0111】
一例において、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、現在画像シーケンスのパラメータ(例えば解像度)に基づいて確定される。例えば、1920×1080の現在画像シーケンスにおいて、
図12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離はいずれも32画素であり、1280×720の現在画像シーケンスにおいて、
図5内の位置10から現在ブロックの右下隅までの水平距離と垂直距離はいずれも16画素である。
【0112】
一例では、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、フラグに基づいて確定され、例えば、現在画像シーケンスのシーケンスレベル(シーケンスパラメータセット)フラグ又は画像レベルフラグ又はスライスレベル(スライスヘッダ)フラグが挙げられる。一例として、シーケンスレベルフラグ又は画像レベルフラグ又はスライスレベルフラグ(1ビットのフラグであることができる)が0であることは、
図12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離がいずれも32画素であることを意味し、これらのフラグが1であることは、
図12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離がいずれも16画素であることを意味する。上記シーケンスレベルフラグ、画像レベルフラグ及びスライスレベルフラグは、新しく加えられたフラグであってもよく、既存のフラグを再利用するものであってもよく、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離とされる、複数の予め設定された値から選択されるべき値を示す。
【0113】
本開示の1つの例示的な実施形態において、コードされた画像は、現在ブロックの参照画像である。コードされた画像内の少なくとも1つの非隣接位置の動き情報に基づいて、現在ブロックの第1の時間動き情報を確定することは、以下の内容を含む。参照画像内の、非隣接位置に対応するコロケートされたブロックを確定する。コロケートされたブロックの動き情報を取得する。取得された動き情報内の動きベクトルをスケーリングして、現在ブロックの第1の時間動き情報を取得する。本実施形態において、参照画像内の、非隣接位置に対応するコロケートされたブロックは、参照画像内の、当該非隣接位置にあるコーディングユニット又は最小記憶ユニットである。又は、参照画像内の1つのコーディングユニット又は最小記憶ユニットの座標範囲が当該非隣接位置の座標を含む場合、当該コーディングユニット又は最小記憶ユニットは、参照画像内の、当該非隣接位置に対応するコロケートされたブロックである。
【0114】
本開示の1つの例示的な実施形態において、非隣接位置はいずれも、現在ブロックが位置する最大コーディングユニット(LCU)又はコーディングツリーユニット(CTU)の範囲内にあり、又は、非隣接位置はいずれも、現在ブロックが位置するLCU行又はCTU行の範囲内にある。記憶コストを考慮して、デコーディング装置は、一般に、コロケートされた画像に記憶された動き情報の一部のみをキャッシュすることができる。従って、現在ブロックのために読み取られることができるコロケートされた画像内の動き情報の範囲が制限される可能性がある。例えば、現在ブロックのために、現在のCTUに対応する位置のコロケートされた画像に記憶された動き情報のみが読み取られることができ、又は、現在ブロックのために、当該現在のCTU行に対応する位置のコロケートされた画像に記憶された動き情報のみが読み取られることができる。この制限は、上記すべての方法に適用されることもできる。時間動き情報を導出するために用いられる位置が、現在ブロックに利用可能な範囲を超え、例えば、現在のCTU又は現在のCTU行を超えている場合、この位置のコロケートされたブロックが利用不可能であり、この位置の時間動き情報の導出を終了することができる。
【0115】
本開示の1つの例示的な実施形態では、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、複数のパラメータの組み合わせに基づいて確定されることもできる。例えば、現在画像シーケンスのシーケンスレベルフラグが1であり、現在ブロックのサイズが16×16である場合、上記水平距離と垂直距離は16に設定される。異なる組み合わせは異なる水平距離と垂直距離に対応する。
【0116】
本開示の1つの例示的な実施形態では、時間動き情報予測方法は、隣接位置に基づいた時間動き情報予測をさらに含み、即ちNATMVPとTMVPの両方を含む。
【0117】
本開示の1つの例示的な実施形態において、同じ方向に、第1の時間動き情報を導出するための位置が少なくとも3つ存在する場合、少なくとも3つの位置のうちの隣接位置間の距離はいずれも同じであり、又は、少なくとも3つの位置のうちの隣接位置間の距離は可変であり、現在ブロックから離れるほど2つの隣接位置の間の距離は大きくなる。即ち、同一方向にある位置間の距離は、固定であってもよく、可変であってもよい。
図12を参照すると、現在ブロックの右側に、17、25、33と番号付けられた3つの位置がある。位置17と位置25の間の距離は、位置25と位置33の間の距離に等しく、即ち、位置17、位置25、及び位置33は等距離で設定される。別の例では、位置25と位置33の間の距離は、位置17と位置25の間の距離より大きくてもよい。
【0118】
本開示の1つの例示的な実施形態において、少なくとも1つの非隣接位置は、以下の位置のうちのいずれか1つ又は複数を含む。
座標が(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+2*k_cbWidth, yCb+2*k_cbHeight)である第1位置、
座標が(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight)、又は(xCb+3*k_cbWidth, yCb+3*k_cbHeight)である第2位置、
座標が(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+3*k_cbWidth, yCb+k_cbHeight/2)である第3位置、
座標が(xCb+k_cbWidth/2, yCb+3*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+3*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight)である第4位置、
座標が(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+2*k_cbWidth, yCb+k_cbHeight/2)である第5位置、
座標が(xCb+k_cbWidth/2, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+2*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight)である第6位置、
座標が(xCb+k_cbWidth, yCb+2*k_cbHeight)、(xCb+k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+k_cbWidth-1, yCb+2*k_cbHeight-1)である第7位置、及び
座標が(xCb+2*k_cbWidth, yCb+k_cbHeight)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight)、(xCb+2*k_cbWidth, yCb+k_cbHeight-1)、又は(xCb+2*k_cbWidth-1, yCb+k_cbHeight-1)である第8位置。
【0119】
xCbは現在ブロックの左上隅の横座標であり、yCbは現在ブロックの左上隅の縦座標であり、k_cbWidthは現在ブロックの幅、又は幅の1/2、又は幅の1/4、又は幅の2倍であり、k_cbHeightは現在ブロックの高さ、又は高さの1/2、又は高さの1/4、又は高さの2倍であり、「*」は乗算演算を示す。
【0120】
図12及び
図13を参照すると、座標が(xCb+2*cbWidth-1, yCb+2*cbHeight-1)である位置は、
図12において位置10として表され、座標が(xCb+3*cbWidth-1, yCb+3*cbHeight-1)である位置は、
図12において位置16として表され、他の位置については詳述されない。
【0121】
本開示の1つの例示的な実施形態において、時間動き情報予測方法は、隣接位置に基づいた時間動き情報予測をさらに含む。隣接位置は現在ブロックの右下隅の隣接位置を含み、現在ブロックの非隣接位置と現在ブロックの右下隅の隣接位置とはアレイ状に分布しており、アレイの左上隅は現在ブロックの右下隅の隣接位置であり、アレイ内の異なる位置は、コードされた画像において異なる最小記憶ユニットに分布している。
【0122】
上記アレイにおける各位置は、設定された範囲内でスキャンを行うことにより得られることができる。例えば、
図13の右下隅に示す矩形領域内で一定の順序でスキャンを行い、時間動き情報予測に用いられる非隣接位置を確定し、スキャンした位置に基づいて時間動き情報を確定する。
【0123】
図13内の矩形領域の幅と高さは、予め設定されることができ、例えば、幅と高さがいずれも64画素である。又は、矩形領域の幅と高さは、現在ブロックのサイズに基づいて確定されることもでき、例えば、矩形領域の幅は現在ブロックの幅の4倍であり、矩形領域の高さは現在ブロックの高さの4倍である。又は、矩形領域の幅と高さは、現在画像シーケンスのパラメータに基づいて確定されることができ、例えば、1920×1080のシーケンスにおけるこの領域の幅と高さはいずれも64画素であり、1280×720のシーケンスにおけるこの領域の幅及び高さはいずれも32画素である。又は、矩形領域の幅及び高さは、フラグに基づいて確定されることができ、例えば、現在シーケンス画像のシーケンスレベル(シーケンスパラメータセット)フラグ、又は現在画像のスライスレベル(スライスヘッダ)フラグが挙げられる。例えば、フラグが0であることは、この領域の幅及び高さがいずれも64画素であることを意味し、フラグが1であることは、領域の幅及び高さがいずれも32画素であることを意味する。スキャン順序は、ラスタスキャン(raster scan)順序、即ち図に示す順序であってもよく、また、ジグザグ(zig-zag)スキャン順序や他のスキャン順序であってもよい。
【0124】
コロケートされた画像の動き情報は最小記憶ユニットに記憶されており、例えば、4×4のブロック、8×8のブロック、又は16×16のブロックが挙げられる。最小記憶ユニットに1つの動き情報のみが記憶される。各最小記憶ユニットの粒度でスキャンを行うことができる。座標に反映すれば、最小記憶ユニットが8×8のブロックである場合、水平方向では、次のスキャン位置の横座標に8が加算され、縦座標に変化がない。垂直方向では、次のスキャン位置の横座標に変化がなく、縦座標に8が加算される。スキャン粒度は現在ブロックのサイズに関連することができ、例えば、水平方向の粒度は現在ブロックの幅に等しく、垂直方向の粒度は現在ブロックの高さに等しい。座標に反映すれば、水平方向では、次のスキャン位置の横座標に現在ブロックの幅が加算され、縦座標に変化がない。垂直方向では、次のスキャン位置の横座標に変化がなく、縦座標に現在ブロックの高さが加算される。粒度は、現在画像シーケンスのパラメータに基づいて確定されることもでき、例えば、1920×1080の現在画像シーケンスにおける水平スキャン粒度及び垂直スキャン粒度はいずれも16画素であり、1280×720のシーケンスにおける水平方向のスキャン粒度及び垂直方向のスキャン粒度はいずれも32画素である。粒度は、フラグに基づいて確定されることもでき、例えば、現在画像シーケンスのシーケンスレベルフラグ又は現在画像の画像レベルフラグ又は現在画像のスライスレベルフラグが挙げられる。例えば、当該フラグが0であることは、水平方向のスキャン粒度及び垂直方向のスキャン粒度がいずれも16画素であることを意味し、当該フラグが1であることは、水平方向のスキャン粒度及び垂直方向のスキャン粒度がいずれも32画素であることを意味する。
【0125】
スキャン中に、当該方法では、加えられる時間動き情報候補の数が制限されることができる。即ち、時間動き情報予測を行う際に、矩形範囲内のすべての位置をスキャンするとは限らない。
【0126】
本開示の上記実施形態に係る時間動き情報予測方法では、非隣接位置を利用して現在ブロックの時間動き情報を確定することで、空間動き情報によってカバーできないいくつかのシナリオの動き情報、例えば、右から左への動き、右下から左上への動き、下から上への動きなどの動き情報を効果的に補完し、圧縮効率を向上させることができる。また、上記実施形態を開示する時間動き情報予測方法では、現在ブロックに対するこれら非隣接位置の方向、非隣接位置間の距離などを設定することにより、現在ブロックの時間動き情報をより効率的に抽出することが提案される。
【0127】
図9に示すように、本開示の一実施形態は、候補動き情報リストの構築方法をさらに提供する。候補動き情報リストの構築方法は以下の内容を含む。
【0128】
ステップ210:現在ブロックに対して空間動き情報予測と時間動き情報予測を行って、現在ブロックの空間動き情報と時間動き情報を確定する。
【0129】
ステップ220:設定された順序で、空間動き情報と時間動き情報を現在ブロックの候補動き情報リストに加える。
【0130】
時間動き情報予測は、本開示のいずれか1つの実施形態に記載の時間動き情報予測方法を利用する。時間動き情報は、第1の時間動き情報を含む。
【0131】
本開示の1つの例示的な実施形態では、候補動き情報リストの構築方法は、マージモードに用いられる。
【0132】
HEVC、VVCにおいて、マージモードでの動き情報候補リストは、動き情報予測を使用する一般的なシナリオである。本開示の実施形態では、一定の順序(例えば、関連性の順序)に従って、空間動き情報と時間動き情報(候補動き情報と総称されることもできる)を、候補動き情報リストmergeCandListに加え得る。mergeCandListを構築する1つの可能なプロセスは以下の通りである。予め設定された順序で、予め設定された閾値に従って、隣接位置の空間動き情報、隣接位置の時間動き情報、非隣接位置の空間動き情報、非隣接位置の時間動き情報、履歴ベースの動き情報などの各動き情報候補と、既にmergeCandListに加えた、又は加えると確定した動き情報候補とが類似しているか否かをチェックする。リストに加え待ちの動き情報候補と、既にmergeCandListに加えた、又は加えると確定した動き情報候補とが類似していない場合、当該リストに加え待ちの動き情報候補をリストに加えると確定する。そうではない場合、当該リストに加え待ちの動き情報候補をリストに加えないと確定する。
【0133】
相関性の順序は以下のように設定されることができる。現在ブロックとの距離が近いほど相関性が強い。距離が同じである場合、空間動き情報予測は、時間動き情報予測より相関性が強い。しかし、NATMVPはSMVPとNASMVPによって提供できないいくつかの方向の動き情報を提供できるため、これらの候補をどのようにmergeCandListに加えるかが検討課題となる。
【0134】
本開示の1つの例示的な実施形態では、設定された順序は、以下のルールのうちの1つ又は複数に基づいて確定される。
空間動き情報の距離が時間動き情報の距離以下である場合、空間動き情報が優先的に候補動き情報リストに加えられる。
空間動き情報の距離が時間動き情報の距離より大きい場合、時間動き情報が優先的に候補動き情報リストに加えられる。
複数の時間動き情報の距離が異なる場合、距離の小さい時間動き情報が優先的に候補動き情報リストに加えられる。
複数の時間動き情報の距離が同じである場合、時間動き情報の統計的法則に従って、候補動き情報リストに加えられる順序が確定される。
【0135】
空間動き情報の距離は、当該空間動き情報が導出される位置から現在ブロックまでの距離であり、時間動き情報の距離は、当該時間動き情報が導出される位置から現在ブロックまでの距離である。1つの位置から現在ブロックまでの距離は、当該位置の位置する又は隣接する矩形ボックスに基づいて確定される。現在ブロックは当該矩形ボックスによって囲まれ且つ当該矩形ボックススの中心に位置する。当該矩形ボックスの幅は現在ブロックの幅の整数倍であり、当該矩形ボックスの高さは現在ブロックの高さの整数倍であり、当該矩形ボックスの面積が大きいほど、当該位置から現在ブロックまでの距離が大きくなる。例えば、
図12では、位置11、位置14、位置15、位置13、位置12、位置17、位置16、位置18のそれぞれから現在ブロックまでの距離はいずれも同じであると考えられる。上記位置はいずれも、隣接位置及び非隣接位置を含むことができる。上記位置から現在ブロック内の最も近いサンプルまでの横座標偏差は、上記位置の横座標と現在ブロック内の最も近いサンプルの横座標との差の絶対値であり、上記位置から現在ブロック内の最も近いサンプルまでの縦座標偏差は、上記位置の縦座標と現在ブロック内の最も近いサンプルの縦座標との差の絶対値である。
【0136】
上記相関性の順序について、
図12に示された各位置の順序を参照することができる。図中の小さな黒い正方形は、空間動き情報予測に用いられる位置を表し、切断線付きの小さな正方形は、時間動き情報予測に用いられる位置を表す。以下のことが分かることができる。空間動き情報の距離が時間動き情報の距離以下である場合、例えば、位置16が時間動き情報予測に用いられる位置であり、位置11が空間動き情報予測に用いられる位置であり、位置16から現在ブロックまでの距離と位置11から現在ブロックまでの距離とが同じであり、その場合、位置11に基づいて導出される空間動き情報が候補動き情報リストに優先的に加えられる。別の例として、位置19が空間動き情報予測に用いられる位置であり、位置19から現在ブロックまでの距離が位置16から現在ブロックまでの距離より大きいため、位置16に基づいて導出された時間動き情報は、位置19に基づいて導出された空間動き情報より優先的に候補動き情報リストに加えられる。別の例として、位置10と位置16がいずれも時間動き情報を導出するために用いられる位置であり、位置10から現在ブロックまでの距離がより小さいため、位置10に基づいて導出された時間動き情報が優先的に候補動き情報リストに加えられる。
【0137】
一例において、第1の時間動き情報は、現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報、現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報、及び現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報、のうちの少なくとも2つを含む。複数の第1の時間動き情報の距離が同じである場合、時間動き情報の統計的法則に従って、候補動き情報リストに加えられる順序が確定されることは、以下の内容を含む。現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報が、現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に候補動き情報リストに加えられる。現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報が、現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に候補動き情報リストに加えられる。
【0138】
依然として
図12を例として、位置18、位置16、位置17はいずれも時間動き情報を導出するために用いられる。時間動き情報の統計的法則に従って、候補動き情報リストに加えられる順序を確定する必要がある。研究の結果、当該順序では、右下側の位置が右側の位置より優先的であり、右側の位置が下側の位置より優先的である。従って、位置16に基づいて導出された時間動き情報の相関性が最も高く、位置17に基づいて導出された時間動き情報の相関性が2番目に高く、位置18に基づいて導出された時間動き情報の相関性が最も低い。相関性の高い時間動き情報の順序は前にあり、即ち、相関性の高い時間動き情報は優先的に候補動き情報リストに加えられる。
【0139】
図には2つの位置6がある。現在ブロックの右下側の位置6が利用できない場合、現在ブロックの中心にある位置6に置き換えられることができる。現在ブロックの右下側の位置6が利用できる場合、現在ブロックの中心にある位置6が利用されない。実際の応用では、性能と複雑度のトレードオフを考慮して、図のように多くの候補を利用しないことも可能である。又は、上記原則に従ってより多くの候補を利用する。
【0140】
本実施形態において、空間動き情報を導出するために用いられる位置は、
図12の小さな黒い正方形で示されており、中心に切断線が描かれた大きな正方形は現在ブロックであり、現在ブロックに隣接する5つの位置、即ち位置1~位置5は、空間動き情報を導出するための空間動き情報予測に用いられる位置である。これらの位置の外側において、いくつかの非隣接位置を利用して非隣接位置に基づいた空間動き情報予測(NASMVP)を行うことができる。
図12に示すように、現在ブロックの左下側、左側、左上側、上側、右上側の非隣接位置を利用して空間動き情報を導出することができる。右側、右下側、及び下側のブロックはまだコードされていないため、空間動き情報予測に用いられることができない。これらの非隣接位置と、現在ブロックとの間に一定の距離がある。一例では、これらの位置と、現在ブロックとの間の水平方向での距離は現在ブロックの長さに関連し、これらの位置と、現在ブロックとの間の垂直方向での距離は現在ブロックの幅に関連する。例えば、非隣接位置は、現在ブロックの長さと幅で外側へ拡大することによって確定される。内層にある位置は、距離がより近いため、優先的にリストに加えられる。
【0141】
空間動き情報予測の一例は
図12に示されているようである。図に示す順序に従ってリストに加えられる。それは、相関性と動きの統計的法則の特性を考慮したものである。
【0142】
本開示の1つの例示的な実施形態において、第1の時間動き情報のうちの最も前の第1の時間動き情報の順序は、以下の方式のうちの少なくとも1つで確定される。
幾何分割モード(GPM)では、最も前の第1の時間動き情報に対して設定されるシーケンス番号は、候補動き情報リストに加えられることが許可される候補動き情報の最大数以下である。
設定された高速な動きのシナリオでは、最も前の第1の時間動き情報に対して設定されるシーケンス番号は、候補動き情報リストに加えられることが許可される候補動き情報の最大数以下である。
【0143】
本実施形態では、いくつかの特定の場合において、非隣接位置の時間動き情報をよりよく利用でき、空間動き情報予測の不足を効果的に補うために、GPMでは、当該第1の時間動き情報に対して設定されるシーケンス番号は、候補動き情報リストに加えられることが許可される候補動き情報の最大数以下であることができる。例えば、候補動き情報リストに加えられることが許可される候補動き情報の最大数が6である場合、当該第1の時間動き情報のシーケンス番号は、6又は6より小さい値に設定されることができる。ここのシーケンス番号は、動き情報が候補動き情報リストに加えられる順序を意味する。シーケンス番号が1であることは、1番目に候補動き情報リストに加えられることを意味し、シーケンス番号が2であることは、2番目に候補動き情報リストに加えられることを意味し、その後、このように類推されることができる。このように設定することで、上位の動き情報がいずれも有効で、且つ候補動き情報リストに加えられても、当該第1の時間動き情報も候補動き情報リストに加えられることができることを確保できる。なお、これらの特定の場合において、当該第1の時間動き情報が候補動き情報リストに加えられ得ることを確保するには、第1の時間動き情報の順位を上げることができ、候補動き情報リストに加えられることが許可される候補動き情報の最大数を増加することもでき、例えば、これらの特定の場合において最大数を6から7に増加する。上記高速な動きのシナリオは、ユーザによって設定されてもよく、システム自体の学習によって取得されてもよい。
【0144】
各候補動き情報をmergeCandListに加える際に、同じ動き情報や非常に類似している動き情報がmergeCandListに加えられないように、同一性チェックや類似性チェックを行うことができる。それは、mergeCandListが実際により多くの候補を提供することに役立つ。時間動き情報予測と空間動き情報予測では、上記類似性をチェックする方法や基準は異なっていてもよい。例えば、異なる位置に基づいたSMVPとNASMVPは同一のオブジェクト内部のいくつかの類似している動き情報(いくつかの漸進的な変化や微妙な変化など)を提供することができる。しかし、時間動き情報、特にNATMVPでは、「異なる」動き情報をより必要とする。いわゆる「異なる」は、「類似する」と比べて、違いがより大きな動き情報をいう。「異なる」と「類似する」の違いは、閾値の違いに反映されることができる。
【0145】
各空間動き情報、時間動き情報、及び他の動き情報は、一定の順序でmergeCandListに加えられる。候補リストを構築する際に、上述した同一性チェック又は類似性チェックを利用することができる。一つの方法は、同じ又は類似している動き情報候補を放棄し、mergeCandListに加えないことである。非隣接位置に基づいて導出される時間動き情報を加える際に、類似性を判断するための異なる閾値を利用することができる。例えば、非隣接位置に基づいて導出される時間動き情報に用いられる類似性閾値は、隣接位置に基づいて導出される空間動き情報に用いられる類似性閾値(例えば、動きベクトルに対して設定される1つの閾値)より大きい。
【0146】
本開示の1つの例示的な実施形態において、設定された順序で、空間動き情報と時間動き情報を現在ブロックの候補動き情報リストに加えることは、以下の内容を含む。空間動き情報又は時間動き情報を候補動き情報リストに加える前に、類似性チェック(同一性チェックを含む)を行う。類似性チェックにより、当該空間動き情報又は時間動き情報が、候補動き情報リストに既に加えられた又は加えられることが確定された候補動き情報のいずれとも類似していないと確定した場合、当該空間動き情報又は時間動き情報を候補動き情報リストに加える。第1の類似性閾値θ1は第1の時間動き情報に対して類似性チェックを行うときに用いられ、第2の類似性閾値θ2は空間動き情報に対して類似性チェックを行うときに用いられ、θ1>θ2又はθ1=θ2である。
【0147】
本開示の1つの例示的な実施形態において、時間動き情報は、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報をさらに含み、第3の類似性閾値θ3は、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報に対して類似性チェックを行うときに用いられ、θ1>θ3又はθ1=θ3である。即ち、本実施形態では、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報に対して設定される類似性閾値は、NATMVPによって確定された時間動き情報に対して設定される類似性閾値より小さくてもよく、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報が類似性チェックにパスする可能性が高くなるようにする。
【0148】
本開示の1つの例示的な実施形態において、第1の類似性閾値は、現在画像シーケンスのパラメータ、及び現在画像のパラメータ、のうちの1つに基づいて確定される。一例では、現在画像シーケンスのパラメータは、シーケンスの解像度を含む。現在画像のパラメータは、画像の幅、画像の高さ、画像のサンプル数のうちのいずれか1つ又は複数を含む。第1の類似性閾値は複数あり、第1の類似性閾値が大きいほど、対応するパラメータの値がより大きい。即ち、本実施形態の第1の類似性閾値は、シーケンス又は画像のいくつかのパラメータに関連している。理解できるように、同じ動きは、解像度の低いビデオと比べて、解像度の高いビデオにおいてより大きな動きベクトルを有する。そのため、非隣接位置に基づいて導出される時間動き情報の類似性閾値は、シーケンスのパラメータ又は画像のパラメータに基づいて設定されることができ、例えば、シーケンスの解像度、画像の幅及び/又は高さ、又は画像のサンプル数に基づいて設定されることができる。例えば、1920×1080のシーケンスでは、当該閾値は64に設定され、1280×720のシーケンスでは、当該閾値は16に設定される。当該閾値は、画像の幅及び/又は高さに基づいて計算されることができる。例えば、当該閾値がdiffThTであり、画像の幅がpicWidthであり、画像の高さがpicHeightであると記され、diffThT=picWidth*picHeight>>14である。「>>」は右シフト、即ち2で割る演算を示す。
【0149】
本開示の1つの例示的な実施形態において、第1の類似性閾値は、現在画像の参照関係に基づいて確定され、参照関係は単方向参照と双方向参照を含む。参照関係が単方向参照である場合に確定される第1の類似性閾値は、参照関係が双方向参照である場合に確定される第1の類似性閾値より小さい。前方参照は、前方参照画像又は後方参照画像のみを現在画像に利用できることを指し、双方向参照は、前方参照画像と後方参照画像の両方を現在画像に利用できることを指す。
【0150】
即ち、第1の類似性閾値は、画像の参照関係に関連することができる。前述したように、ランダムアクセスの配置と比べて、低遅延の配置では、右から左への方向、下から上への方向などの方向の動き情報を得ることがより難しい。なぜかというと、低遅延の配置では、現在画像は、POCに従って現在画像の前にある参照画像、又は、時間的順序に従って現在画像の前にある参照画像しか参照できないからである。これに対して、ランダムアクセスの配置では、画像は、POCに従って現在画像の前にある参照画像と、POCに従って現在画像の後にある参照画像の両方を参照することができる。そのため、第1の類似性閾値の設定は、現在画像の参照関係に関連することができる。一つの可能な方法は以下の通りである。現在画像は、POCに従って現在画像の前にある参照画像しか参照できない場合、当該画像の閾値に比較的小さい係数をかける。現在画像は、POCに従って現在画像の前にある参照画像しか参照できない場合、当該画像の閾値に比較的小さい係数をかける。一例として、比較的小さい係数は1であり、比較的大きい係数は4である。例えば、当該閾値がdiffThTであり、基本閾値がdiffThBaseであると記される。diffThBaseは上記他の方法によって得られることができる。現在画像は、POCに従って現在画像の前にある参照画像しか参照できない場合、diffThT=diffThBase*1である。現在画像は、POCに従って現在画像の前にある参照画像と、POCに従って現在画像の後にある参照画像の両方を参照できる場合、diffThT=diffThBase*4である。
【0151】
本開示の1つの例示的な実施形態において、第1の類似性閾値は、現在の予測モードにテンプレートマッチングを利用するか否かに基づいて確定され、テンプレートマッチングを利用する場合に確定される第1の類似性閾値は、テンプレートマッチングを利用しない場合に確定される第1の類似性閾値より大きい。テンプレートマッチングの方法によって、一定の範囲内の検索を実現できるため、動き情報をある程度に最適化することができ、テンプレートによって検索範囲を広げることができるため、候補動き情報リストにおいて類似しすぎる候補動き情報を必要とせず、2つの動き情報が異なるほどより効果的になる。そのため、現在ブロックにテンプレートマッチングの方法を利用する場合、類似性の判断に用いられる閾値は、テンプレートマッチングの方法を利用しない場合より大きく設定されることができる。
【0152】
本開示の1つの例示的な実施形態において、第1の類似性閾値は、予め設定された値、現在画像シーケンスのパラメータ、現在画像のパラメータ、現在ブロックのサイズ、現在画像シーケンスのシーケンスレベルフラグ、現在画像のスライスレベルフラグ、現在画像の画像レベルフラグ、現在の予測モードにテンプレートマッチングを利用するか否かを示すフラグ、及び現在画像の参照関係、のうちのいずれか1つ又は複数に基づいて確定される。一例では、非隣接位置に基づいて導出される時間動き情報の類似性閾値は、16、32、64、128などの固定値であってもよい。動き情報は分数画素の精度をサポートできるため、この閾値は、1つの画素単位、2つの画素単位、4つの画素単位、8つの画素単位などを表すことができ、ここの画素単位は例えば、1/16画素であることができる。別の例では、第1の類似性閾値は現在ブロックのサイズに関連することができ、例えば、現在ブロックの幅及び/又は高さ、又はサンプル数に基づいて当該閾値が確定される。例えば、現在ブロックのサンプル数が64より大きい場合、閾値は32に設定され、そうではない場合、閾値は16に設定される。さらなる例では、第1の類似性閾値は、シーケンスレベルフラグ、又は画像レベルフラグ、又はスライスレベルフラグなどのフラグに基づいて確定される。一例として、フラグが0であることは当該閾値が16であることを表し、フラグが1であることは当該閾値が32であることを表す。
【0153】
本実施形態の一例において、第1の類似性閾値がいずれか複数のパラメータに基づいて確定されることは、第1の類似性閾値が、複数の方式に基づいて確定された第1の類似性閾値のうちの最大値に設定されること、を含む。非隣接位置に基づいて導出される時間動き情報は、複数の要素に基づいて設定された類似性閾値の最大値として確定されることができる。非隣接位置に基づいて導出される時間動き情報に対して予め設定された類似性判断用の閾値が16であり、他のパラメータに基づいて確定された閾値が1である場合、非隣接位置に基づいて導出される時間動き情報の類似性判断用の閾値は16に設定される。非隣接位置に基づいて導出される時間動き情報に対して設定された類似性判断用の閾値が16であり、他のパラメータに基づいて確定された閾値が32である場合、非隣接位置に基づいて導出される時間動き情報の類似性判断用の閾値は32に設定される。しかし、別の例では、異なるパラメータの組み合わせに基づいて異なる第1の類似性閾値を確定することも可能である。
【0154】
加えられる時間動き情報候補の数を制限することができる。例えば、最多で2つの時間動き情報候補を加えるように設定し、mergeCandListに加えることができる時間動き情報を2つ確定したら、後続位置に基づいた時間動き情報予測を終了する。
【0155】
上記すべての方法に基づいて、mergeCandListに加える動き情報を確定した後、何らかのルールに従ってこれらの動き情報を順序付けして、mergeCandListを確定することができる。
【0156】
本開示の1つの例示的な実施形態では、時間動き情報予測方法は、以下の内容をさらに含む。第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を現在ブロックに利用することが許可されているか否かを判断する。非隣接位置に基づいた時間動き情報予測を利用することが許可されていると確定した場合、請求項1に記載の方法を実行する。
第1フラグは、以下のいずれか1つ又は複数を含む。
非隣接位置に基づいた時間動き情報予測を現在画像シーケンスに利用することが許可されているか否かを示すための第1のシーケンスレベルフラグ、
非隣接位置に基づいた時間動き情報予測を現在画像に利用することが許可されているか否かを示すための第1の画像レベルフラグ、及び、
非隣接位置に基づいた時間動き情報予測を現在スライスに利用することが許可されているか否かを示すための第1のスライスレベルフラグ。
【0157】
本実施形態において、第1フラグは、第1のシーケンスレベルフラグ、第1の画像レベルフラグ、及び第1のスライスレベルフラグのうちの少なくとも2つを含む。第1のシーケンスレベルフラグは、第1の画像レベルフラグよりレベルが高く、第1の画像レベルフラグは、第1のスライスレベルフラグよりレベルが高い。第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を現在ブロックに利用することが許可されているか否かを判断することは、以下の内容を含む。レベルの降順に従って第1フラグを順に解析する。上位レベルのフラグが非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、下位レベルのフラグを解析する。すべてのレベルのフラグがいずれも、非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、非隣接位置に基づいた時間動き情報予測を利用することが許可されることを確定する。
【0158】
本開示の1つの例示的な実施形態では、時間動き情報予測方法は、以下の内容をさらに含む。第2フラグに基づいて、第1フラグを解析する必要があるか否かを確定する。第1フラグを解析する必要があると確定した場合、第1フラグを解析する。第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を現在ブロックに利用することが許可されているか否かを判断する。
第2フラグは、次のフラグ、即ち、
時間動き情報を現在画像シーケンスに利用することが許可されているか否かを示すフラグであって、当該フラグが時間動き情報を現在画像シーケンスに利用することが許可されていないことを示す場合、第1フラグを解析する必要がないと確定される、フラグ、
時間動き情報を現在画像に利用することが許可されているか否かを示すフラグであって、当該フラグが時間動き情報を現在画像に利用することが許可されていないことを示す場合、第1フラグを解析する必要がないと確定される、フラグ、
非隣接位置を動き情報導出に利用することが許可されているか否かを示すフラグであって、当該フラグが非隣接位置を動き情報導出に利用することが許可されていないことを示す場合、第1フラグを解析する必要がないと確定される、フラグ、及び、
のうちのいずれか1つ又は複数を含む。
第2フラグに基づいて、第1フラグを解析する必要があると確定した場合、第1フラグが解析される。
【0159】
上記実施形態では、フラグ(flag)を利用してNATMVPの有効と無効を制御する。
【0160】
フラグを利用して、非隣接位置に基づいた時間動き情報予測(NATMVP)の有効と無効を制御することができる。当該フラグは、シーケンスレベル(シーケンスパラメータセット)又は画像レベル(画像ヘッダ又は画像パラメータセット)又はスライスレベル(スライスヘッダ)のフラグ又はブロックレベルのフラグであってもよい。当該フラグによって、対応するシーケンス又は画像又はスライス又はブロックに、本発明で説明するNATMVP技術が利用されるか否か(又は利用されることが許可されているか否か)を制御することができる。一例として、当該フラグの値が1である場合、現在のシーケンス又は画像又はスライス又はブロックに、本発明で説明するNATMVP技術が利用される(又は利用されることが許可されている)。当該フラグの値が0である場合、現在のシーケンス又は画像又はスライス又はブロックに、本発明で説明するNATMVP技術が利用されない(又は利用されることが許可されていない)。当該フラグは、他のいくつかのフラグに依存する可能性がある。例えば、sps_temporal_mvp_enabled_flag、又はph_temporal_mvp_enabled_flagが挙げられる。フラグsps_temporal_mvp_enabled_flagによって、現在シーケンスに時間動き情報が利用されることが許可されているか否かを制御する。ph_temporal_mvp_enabled_flagによって、現在画像に時間動き情報が利用されることが許可されているか否かを制御する。理解できるように、現在シーケンス又は現在画像に時間動き情報が利用されることが許可されている場合、デコーダーは、非隣接位置に基づいた時間動き情報予測の利用が許可されているか否かを制御するためのフラグを解析する必要がある。そうではない場合、デコーダーは、非隣接位置に基づいた時間動き情報予測の利用が許可されているか否かを制御するためのフラグを解析する必要がない。当該フラグは、他のフラグに依存する可能性がある。例えば、非隣接位置に基づいて導出される動き情報の利用が許可されているか否かを示すフラグなどが挙げられる。
【0161】
NATMVPを制御するためのフラグに級をつけることができ、下位レベルのフラグは上位レベルのフラグに依存する。例えば、シーケンスレベルのフラグsps_natmvp_enabled_flagによって、現在シーケンスにNATMVPが利用されることが許可されているか否かを制御し、画像レベルのフラグph_natmvp_enabled_flagによって、現在画像にNATMVPが利用されることが許可されているか否かを制御する。sps_natmvp_enabled_flagの値が1である場合、デコーダーはph_natmvp_enabled_flagを解析する必要がある。sps_natmvp_enabled_flagの値が0である場合、デコーダーはph_natmvp_enabled_flagを解析する必要がない。
【0162】
本開示の上記実施形態の候補動き情報リストの構築方法では、非隣接位置に基づいて導出される時間動き情報を候補動き情報リストに加えることができ、非隣接位置に基づいて導出される時間動き情報と他の動き情報との相関性の順序を考慮して、空間動き情報ではカバーできないいくつかのシナリオの動き情報を効果的に補完し、圧縮効率を向上させることができる。
【0163】
本開示の一実施形態はビデオエンコーディング方法をさらに提供する。
図14に示すように、当該ビデオエンコーディング方法は以下の内容を含む。
【0164】
ステップ310:本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法に基づいて、現在ブロックの候補動き情報リストを構築する。
【0165】
ステップ320:候補動き情報リストから1つ又は複数の候補動き情報を選択し、選択された候補動き情報のインデックスを記録する。
【0166】
ステップ330:選択された候補動き情報に基づいて現在ブロックの予測ブロックを確定し、予測ブロックに基づいて現在ブロックをエンコードし、候補動き情報のインデックスをエンコードする。
【0167】
選択された候補動き情報に基づいて、参照画像における、現在ブロックの参照ブロックの位置を確定することができる。この場合、選択された候補動き情報に動きベクトル差分を加算して参照ブロックを得ることができる。参照ブロック(例えば、1つ又は2つ)に基づいて予測ブロックを得ることができる。その後、予測ブロックと現在ブロックとの残差を計算し、エンコードすることができる。
【0168】
本開示の一実施形態はビデオデコーディング方法をさらに提供する。
図5に示すように、当該ビデオデコーディング方法は以下の内容を含む。
【0169】
ステップ410:本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法に基づいて、現在ブロックの候補動き情報リストを構築する。
【0170】
ステップ420:デコーディングによって取得された現在ブロックの候補動き情報のインデックスに基づいて、候補動き情報リストから1つ又は複数の候補動き情報を選択する。
【0171】
ステップ430:選択された候補動き情報に基づいて現在ブロックの予測ブロックを確定し、予測ブロックに基づいて現在ブロックを再構成する。
【0172】
本開示の一実施形態は時間動き情報予測装置をさらに提供する。
図16に示すように、当該時間動き情報予測装置はプロセッサ71と、コンピュータプログラムが記憶されているメモリ73とを備える。プロセッサ71は、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載の時間動き情報予測方法を実行する。
【0173】
本開示の一実施形態は候補動き情報リストの構築装置をさらに提供する。
図16に示すように、当該候補動き情報リストの構築装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載の候補動き情報リストの構築方法を実行する。
【0174】
本開示の一実施形態はビデオエンコーディング装置をさらに提供する。
図16に示すように、当該ビデオエンコーディング装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載のビデオエンコーディング方法を実行する。
【0175】
本開示の一実施形態はビデオデコーディング装置をさらに提供する。
図16に示すように、当該ビデオデコーディング装置はプロセッサと、コンピュータプログラムが記憶されているメモリとを備える。プロセッサは、コンピュータプログラムを実行する場合、本開示のいずれか1つの実施形態に記載のビデオデコーディング方法を実行する。
【0176】
本開示の一実施形態はビデオコーディングシステムをさらに提供する。当該ビデオコーディングシステムは、本開示のいずれか1つの実施形態に記載のビデオエンコーディング装置と本開示のいずれか1つの実施形態に記載のビデオデコーディング装置を含む。
【0177】
本開示の一実施形態は、非一時的なコンピュータ可読記憶媒体をさらに提供する。コンピュータ可読記憶媒体にコンピュータプログラムが記憶されている。コンピュータプログラムがプロセッサによって実行される場合、本開示のいずれか1つの実施形態に記載の方法が実行される。
【0178】
本開示の一実施形態は、ビットストリームをさらに提供する。当該ビットストリームは、本開示のいずれか1つの実施形態に記載のビデオエンコーディング方法により生成される。
【0179】
本開示の上記実施形態のビデオエンコーディング装置及び/又はビデオデコーディング装置は、以下の回路のうちのいずれか1つ又は任意の組み合わせを利用して実現されることができる。即ち、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラム可能なゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック回路(discrete logic circuit)、ハードウェアという回路のうちのいずれか1つ又は任意の組み合わせを利用して実現されることができる。本開示が部分的にソフトウェアで実施される場合、ソフトウェアに用いられる命令は、適切な不揮発性コンピュータ可読記憶媒体に記憶され得、ハードウェアで命令を実行することによって本開示の実施形態の方法を実施するために、1つ又は複数のプロセッサは使用されることができる。
【0180】
1つ又は複数の例示的な実施形態において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せによって実現されることができる。ソフトウェアによって実現される場合、機能は1つもしくは複数の命令又はコードとしてコンピュータ可読媒体に記憶され、又は、コンピュータ可読媒体を介して伝送されることができ、ハードウェアベースの処理ユニットによって実行される。コンピュータ可読媒体は、データ記憶媒体などの有形媒体であるコンピュータ可読媒体を含み、又は、コンピュータプログラムが例えば通信プロトコルに従ってあるところから別のところへ伝送されることを容易にする任意の通信媒体を含むことができる。このように、コンピュータ可読媒体は通常、非一時的な有形のコンピュータ可読記憶媒体、又は信号もしくはキャリアなどの通信媒体であることができる。データ記憶媒体は、本開示に記載の技術を実施するための命令、コード、及び/又はデータ構造を検索するために、1つもしくは複数のコンピュータ又は1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【0181】
限定的ではない例として、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(random access memory、RAM)、読み取り専用メモリ(read only memory、ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(electrically erasable programmable ROM、EEPROM)、コンパクトディスク読み取り専用メモリ(compact disk ROM、CD-ROM)又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ、又は、命令もしくはデータ構造の形態で所望のプログラムコードを記憶し且つコンピュータによってアクセス可能な他の任意の媒体を含むことができる。また、いかなる接続をコンピュータ可読記憶媒体と呼ぶことができ、例として、同軸ケーブル、光ファイバーケーブル、ツイストペアケーブル(twisted-pair cabling)、デジタル加入者線(digital subscriber line、DSL)、又は、赤外線、ラジオ、マイクロ波などの無線技術を利用して、ウェブサイト、サーバ又は他のリモートソースから命令を伝送する場合、同軸ケーブル、光ファイバーケーブル、ツイストペアケーブル、DSL、又は、赤外線、ラジオ、マイクロ波などの無線技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、キャリア、信号、又は他の一時的な(一過性の)媒体を含まず、非一時的な有形記憶媒体である。本明細書で使用されている磁気ディスク及び光ディスクは、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(digital versatile disc、DVD)、フロッピーディスク、又はブルーレイディスクなどを含み、磁気ディスクは通常、磁気的にデータを再生し、光ディスクはレーザーを使用して光学的にデータを再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0182】
命令は、例えば、1つ又は複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、又は他の等価集積回路(equivalent integrated circuit)又はディスクリートロジック回路などの1つ又は複数のプロセッサによって実行されることができる。従って、本明細書で使用される「プロセッサ」という用語は、上記構造のいずれか1つ、又は本明細書で説明される技術を実施するのに適した任意の他の構造を指すことができる。さらに、いくつかの態様において、本明細書で説明する機能は、エンコーディング及びデコーディングに用いられるように構成された専用のハードウェア及び/又はソフトウェアモジュール内に提供されることができ、集積エンコーダー・デコーダーに組み込まれることもできる。また、本明細書で説明する技術は、1つもしくは複数の回路又は論理素子に完全に実現されることができる。
【0183】
本開示の実施形態の技術案は、無線携帯電話、集積回路(IC)、又は1セットのIC(例えば、チップセット)を含む様々な装置又は機器に実施され得る。本開示の実施形態では、様々なコンポーネント、モジュール、又はユニットを用いて、説明した技術を実行するように構成されたデバイスの機能を強調する。必ずしも異なるハードウェアユニットによって実現されるとは限らない。上述したように、様々なユニットは、コーデックのハードウェアユニットにおいて組み合わせられてもよく、相互運用可能なハードウェアユニット(上述した1つ又は複数のプロセッサを含む)の集合体と適切なソフトウェア及び/又はファームウェアとの組み合わせで提供されてもよい。
【手続補正書】
【提出日】2024-12-04
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正の内容】
【0028】
図1Aに示す例では、エンコーディング側装置1は、データソース11、
エンコーディング装置13、及び出力インターフェース15を含む。いくつかの例において、データソース11は、ビデオキャプチャ装置(例えば、カメラ)、以前にキャプチャされたデータを含むアーカイブ(archive)、コンテンツプロバイダからデータを受信するためのフィーディングインターフェース、データを生成するためのコンピュータグラフィックスシステム、又はこれらのソースの組み合わせを含む。
エンコーディング装置13は、データソース11からのデータをエンコードして出力インターフェース15に出力することができる。出力インターフェース15は、調整器、モデム、及び送信器のうちの少なくとも1つを含むことができる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正の内容】
【0029】
図1Aに示す例では、デコーディング側装置2は、入力インターフェース21、
デコーディング装置23、及び表示装置25を含む。いくつかの例において、入力インターフェース21は、受信機及びモデムのうちの少なくとも1つを含む。入力インターフェース21は、リンク3を介して、又は記憶装置からビットストリームを受信することができる。
デコーディング装置23は受信したビットストリームをデコードする。表示装置25は、デコードされたデータを表示するために用いられる。表示装置25は、デコーディング側装置2の他のコンポーネントと一体化されていてもよく、別個に設けられていてもよい。表示装置25は、例えば、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ(plasma display)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は他の種類の表示装置であることができる。また、他の例では、デコーディング側装置2は、表示装置25を含まなくてもよく、又は、デコードされたデータが適用可能な他の装置又は機器を含む。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】変更
【補正の内容】
【0032】
図に示すように、当該ビデオエンコーディング装置1000は、予測処理ユニット1100と、分割ユニット1101と、残差生成ユニット1102と、変換処理ユニット1104と、量子化ユニット1106と、逆量子化ユニット1108と、逆変換処理ユニット1110と、再構成ユニット1112と、フィルタユニット1113と、デコードされた画像バッファ1114と、画像解像度調整ユニット1115と、エントロピーエンコーディングユニット1116とを含む。予測処理ユニット1100は、インター予測処理ユニット1121と、イントラ予測処理ユニット1126とを含む。ビデオエンコーディング装置1000はまた、この例と比べてより多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0044
【補正方法】変更
【補正の内容】
【0044】
エントロピーエンコーディングユニット1116は、受信したデータ(例えば、シンタックス要素、量子化された係数ブロック、動き情報など)に対してエントロピーエンコーディング操作を行う。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正の内容】
【0046】
図に示すように、ビデオデコーディング装置101は、エントロピーデコーディングユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット155と、再構成ユニット158(+付きの円で図に示す)と、フィルタユニット159と、画像バッファ160とを含む。他の実施形態では、ビデオデコーディング装置101は、より多い、より少ない、又は異なる機能コンポーネントを含んでもよい。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0047
【補正方法】変更
【補正の内容】
【0047】
エントロピーデコーディングユニット150は、受信したビットストリームに対してエントロピーデコーディングを行って、シンタックス要素、量子化された係数ブロック及びPUの動き情報などの情報を抽出することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット155、再構成ユニット158、及びフィルタユニット159はいずれも、ビットストリームから抽出されたシンタックス要素に基づいて、対応する操作を実行することができる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0048
【補正方法】変更
【補正の内容】
【0048】
再構成操作を実行する機能コンポーネントとして、逆量子化ユニット154は、量子化されたTUに関連する係数ブロックを逆量子化することができる。逆変換処理ユニット155は、TUの再構成残差ブロックを生成するために、逆量子化された係数ブロックに1つ又は複数の逆変換を適用することができる。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
予測処理ユニット152は、インター予測処理ユニット162と、イントラ予測処理ユニット164とを含む。イントラ予測コーディングがPUに用いられる場合、イントラ予測処理ユニット164は、ビットストリームから解析されたシンタックス要素に基づいて、PUのイントラ予測モードを確定し、確定されたイントラ予測モードと、画像バッファ160から取得されたPUの隣接の再構成された参照情報とに基づいて、イントラ予測を実行して、PUの予測ブロックを生成することができる。インター予測コーディングがPUに用いられる場合、インター予測処理ユニット162は、PUの動き情報及び対応するシンタックス要素に基づいてPUの1つ又は複数の参照ブロックを確定し、参照ブロックに基づいてPUの予測ブロックを生成することができる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0052
【補正方法】変更
【補正の内容】
【0052】
表示装置25は、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他の種類の表示装置であることができる。また、他の例では、デコーディング側は、表示装置25を含まなくてもよく、これに代わって、デコードされたデータが適用可能な他の装置を含む。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正の内容】
【0063】
コーデックは参照画像リストを利用して参照画像を管理する。VVCでは、2つの参照画像リストがサポートされ、RPL0、RPL1と表記され、RPLは参照画像リスト(Reference Picture List)の略称である。VVCにおけるPスライスはRPL0のみを利用でき、BスライスはRPL0及びRPL1を利用できる。1つのスライスに対して、各参照画像リストにはいくつかの参照画像があり、コーデックは、参照画像インデックスを利用してある特定の参照画像を見つける。VVCでは、参照画像インデックス及び動きベクトルで動き情報を表す。例えば、上記双方向の動き情報に対して、VVCでは、RPL0に対応する参照画像インデックスrefIdxL0、RPL0に対応する動きベクトルmvL0、及びRPL1に対応する参照画像インデックスrefIdxL1、RPL1に対応する動きベクトルmvL1が利用される。RPL0に対応する参照画像インデックス及びRPL1に対応する参照画像インデックスは、上記参照画像情報として理解されることができる。VVCでは、2つのフラグ(flag)で、RPL0に対応する動き情報が利用されるか否か、及びRPL1に対応する動き情報が利用されるか否かをそれぞれ示し、2つのフラグがそれぞれpredFlagL0及びpredFlagL1と表記される。また、predFlagL0及びpredFlagL1は、上記単方向の動き情報が「有効であるか否か」を示すと理解されることができる。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0099
【補正方法】変更
【補正の内容】
【0099】
本明細書では、非隣接位置に基づいて行われる時間動き情報予測は、非隣接位置に基づいた時間動き情報予測と呼ばれ、英語がnon adjacent temporal motion vector predictionであり、NATMVPと略称される。motion informationではなく、motion vectorを利用したのは、慣用用語と一致するためである。ここのmotion vectorには依然として、参照画像インデックスや参照画像リスト利用フラグなどの参照画像情報が含まれている。本明細書では、第1の時間動き情報は、「NATMVPによって確定された時間動き情報」とも呼ばれる。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0105
【補正方法】変更
【補正の内容】
【0105】
図10に示すように、図中の大きな正方形は16×16のブロックを表し、現在ブロックは中心に位置する。図中の切断線(section line)のある
(即ち、交差する線が描かれた)小さな正方形は4×4のブロックであり、最小記憶ユニットに対応する。表現を容易にするために、
図10では1つの小さな正方形を用いて、座標がその小さな正方形内に収まる非隣接位置を表す。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0111
【補正方法】変更
【補正の内容】
【0111】
一例において、非隣接位置と現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、現在画像シーケンスのパラメータ(例えば解像度)に基づいて確定される。例えば、1920×1080の現在画像シーケンスにおいて、
図12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離はいずれも32画素であり、1280×720の現在画像シーケンスにおいて、図
12内の位置10から現在ブロックの右下隅までの水平距離と垂直距離はいずれも16画素である。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正の内容】
【0140】
本実施形態において、空間動き情報を導出するために用いられる位置は、
図12の小さな黒い正方形で示されており、中心に切断線が描かれた
(即ち、複数の平行線が描かれた)大きな正方形は現在ブロックであり、現在ブロックに隣接する5つの位置、即ち位置1~位置5は、空間動き情報を導出するための空間動き情報予測に用いられる位置である。これらの位置の外側において、いくつかの非隣接位置を利用して非隣接位置に基づいた空間動き情報予測(NASMVP)を行うことができる。
図12に示すように、現在ブロックの左下側、左側、左上側、上側、右上側の非隣接位置を利用して空間動き情報を導出することができる。右側、右下側、及び下側のブロックはまだコードされていないため、空間動き情報予測に用いられることができない。これらの非隣接位置と、現在ブロックとの間に一定の距離がある。一例では、これらの位置と、現在ブロックとの間の水平方向での距離は現在ブロックの長さに関連し、これらの位置と、現在ブロックとの間の垂直方向での距離は現在ブロックの幅に関連する。例えば、非隣接位置は、現在ブロックの長さと幅で外側へ拡大することによって確定される。内層にある位置は、距離がより近いため、優先的にリストに加えられる。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0149
【補正方法】変更
【補正の内容】
【0149】
本開示の1つの例示的な実施形態において、第1の類似性閾値は、現在画像の参照関係に基づいて確定され、参照関係は単方向参照と双方向参照を含む。参照関係が単方向参照である場合に確定される第1の類似性閾値は、参照関係が双方向参照である場合に確定される第1の類似性閾値より小さい。単方向参照は、前方参照画像又は後方参照画像のみを現在画像に利用できることを指し、双方向参照は、前方参照画像と後方参照画像の両方を現在画像に利用できることを指す。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0150
【補正方法】変更
【補正の内容】
【0150】
即ち、第1の類似性閾値は、画像の参照関係に関連することができる。前述したように、ランダムアクセスの配置と比べて、低遅延の配置では、右から左への方向、下から上への方向などの方向の動き情報を得ることがより難しい。なぜかというと、低遅延の配置では、現在画像は、POCに従って現在画像の前にある参照画像、又は、時間的順序に従って現在画像の前にある参照画像しか参照できないからである。これに対して、ランダムアクセスの配置では、画像は、POCに従って現在画像の前にある参照画像と、POCに従って現在画像の後にある参照画像の両方を参照することができる。そのため、第1の類似性閾値の設定は、現在画像の参照関係に関連することができる。一つの可能な方法は以下の通りである。現在画像は、POCに従って現在画像の前にある参照画像しか参照できない場合、当該画像の閾値に比較的小さい係数をかける。現在画像は、POCに従って現在画像の前にある参照画像と、POCに従って現在画像の後にある参照画像の両方を参照することができる場合、当該画像の閾値に比較的大きい係数をかける。一例として、比較的小さい係数は1であり、比較的大きい係数は4である。例えば、当該閾値がdiffThTであり、基本閾値がdiffThBaseであると記される。diffThBaseは上記他の方法によって得られることができる。現在画像は、POCに従って現在画像の前にある参照画像しか参照できない場合、diffThT=diffThBase*1である。現在画像は、POCに従って現在画像の前にある参照画像と、POCに従って現在画像の後にある参照画像の両方を参照できる場合、diffThT=diffThBase*4である。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0153
【補正方法】変更
【補正の内容】
【0153】
本実施形態の一例において、第1の類似性閾値がいずれか複数のパラメータに基づいて確定されることは、第1の類似性閾値が、複数のパラメータに基づいて確定された第1の類似性閾値のうちの最大値に設定されること、を含む。非隣接位置に基づいて導出される時間動き情報は、複数の要素に基づいて設定された類似性閾値の最大値として確定されることができる。非隣接位置に基づいて導出される時間動き情報に対して予め設定された類似性判断用の閾値が16であり、他のパラメータに基づいて確定された閾値が1である場合、非隣接位置に基づいて導出される時間動き情報の類似性判断用の閾値は16に設定される。非隣接位置に基づいて導出される時間動き情報に対して設定された類似性判断用の閾値が16であり、他のパラメータに基づいて確定された閾値が32である場合、非隣接位置に基づいて導出される時間動き情報の類似性判断用の閾値は32に設定される。しかし、別の例では、異なるパラメータの組み合わせに基づいて異なる第1の類似性閾値を確定することも可能である。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0156
【補正方法】変更
【補正の内容】
【0156】
本開示の1つの例示的な実施形態では、時間動き情報予測方法は、以下の内容をさらに含む。第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を現在ブロックに利用することが許可されているか否かを判断する。非隣接位置に基づいた時間動き情報予測を利用することが許可されていると確定した場合、時間動き情報予測方法を実行する。
第1フラグは、以下のいずれか1つ又は複数を含む。
非隣接位置に基づいた時間動き情報予測を現在画像シーケンスに利用することが許可されているか否かを示すための第1のシーケンスレベルフラグ、
非隣接位置に基づいた時間動き情報予測を現在画像に利用することが許可されているか否かを示すための第1の画像レベルフラグ、及び、
非隣接位置に基づいた時間動き情報予測を現在スライスに利用することが許可されているか否かを示すための第1のスライスレベルフラグ。
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0168
【補正方法】変更
【補正の内容】
【0168】
本開示の一実施形態はビデオデコーディング方法をさらに提供する。図15に示すように、当該ビデオデコーディング方法は以下の内容を含む。
【手続補正21】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
時間動き情報予測方法であって、
現在ブロックの少なくとも1つの非隣接位置を確定することと、
コードされた画像内の前記少なくとも1つの非隣接位置の動き情報に基づいて、前記現在ブロックの第1の時間動き情報を確定することと、
を含
み、
前記コードされた画像は、前記現在ブロックの参照画像であり、
前記コードされた画像内の前記少なくとも1つの非隣接位置の動き情報に基づいて、前記現在ブロックの第1の時間動き情報を確定することは、
前記参照画像内の、前記非隣接位置に対応するコロケートされたブロックを確定することと、
前記コロケートされたブロックの動き情報を取得することと、
取得された前記動き情報内の動きベクトルをスケーリングして、前記現在ブロックの第1の時間動き情報を取得することと、を含む、
ことを特徴とする時間動き情報予測方法。
【請求項2】
前記非隣接位置は、次の方向にある非隣接位置、即ち、
前記現在ブロックの右側の非隣接位置、
前記現在ブロックの下側の非隣接位置、及び、
前記現在ブロックの右下側の非隣接位置、
のうちのいずれか1つ又は複数を含
み、
同じ方向に、前記第1の時間動き情報を導出するための位置が少なくとも3つ存在する場合、少なくとも3つの位置のうちの隣接位置間の距離はいずれも同じであり、又は、前記少なくとも3つの位置のうちの隣接位置間の距離は可変であり、前記現在ブロックから離れるほど2つの隣接位置の間の距離は大きくなる、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項3】
前記非隣接位置と前記現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は予め設定された固定値であり、又は、
前記非隣接位置と前記現在ブロック内の設定サンプルとの間の水平距離及び/又は垂直距離は、可変であり、次のパラメータ、即ち、
現在ブロックのサイズ、
現在画像シーケンスのパラメータ、
現在画像シーケンスのシーケンスレベルフラグ、
現在画像の画像レベルフラグ、及び、
現在画像のスライスレベルフラグ、
のうちのいずれか1つ、又は任意の組み合わせに基づいて確定される、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項4】
前記非隣接位置はいずれも、前記現在ブロックが位置する最大コーディングユニット(LCU)又はコーディングツリーユニット(CTU)の範囲内に位置し、又は、前記非隣接位置はいずれも、前記現在ブロックが位置するLCU行又はCTU行の範囲内に位置する、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項5】
前記時間動き情報予測方法は、隣接位置に基づいた時間動き情報予測をさらに含み、
隣接位置は前記現在ブロックの右下隅の隣接位置を含み、前記現在ブロックの非隣接位置と前記現在ブロックの右下隅の隣接位置とはアレイ状に分布しており、前記アレイの左上隅は前記現在ブロックの右下隅の隣接位置であり、前記アレイ内の異なる位置は、前記コードされた画像において異なる最小記憶ユニットに分布している、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項6】
前記時間動き情報予測方法は、
第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することと、
前記非隣接位置に基づいた時間動き情報予測を利用することが許可されていると確定した場合、請求項1に記載の
時間動き情報予測方法を実行すること、をさらに含み、
前記第1フラグは、
前記非隣接位置に基づいた時間動き情報予測を現在画像シーケンスに利用することが許可されているか否かを示すための第1のシーケンスレベルフラグ、
前記非隣接位置に基づいた時間動き情報予測を現在画像に利用することが許可されているか否かを示すための第1の画像レベルフラグ、及び、
前記非隣接位置に基づいた時間動き情報予測を現在スライスに利用することが許可されているか否かを示すための第1のスライスレベルフラグ、
のうちのいずれか1つ又は複数を含む、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項7】
前記第1フラグは、前記第1のシーケンスレベルフラグ、前記第1の画像レベルフラグ、及び前記第1のスライスレベルフラグのうちの少なくとも2つを含み、前記第1のシーケンスレベルフラグは、前記第1の画像レベルフラグよりレベルが高く、前記第1の画像レベルフラグは、前記第1のスライスレベルフラグよりレベルが高く、
前記第1フラグに基づいて、非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することは、
レベルの降順に従って前記第1フラグを順に解析することと、
上位レベルのフラグが前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、下位レベルのフラグを解析することと、
すべてのレベルのフラグがいずれも、前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを示す場合、前記非隣接位置に基づいた時間動き情報予測を利用することが許可されることを確定することと、
を含む、
ことを特徴とする請求項
6に記載の
時間動き情報予測方法。
【請求項8】
前記時間動き情報予測方法は、
第2フラグに基づいて、前記第1フラグを解析する必要があるか否かを確定することと、
前記第1フラグを解析する必要があると確定した場合、前記第1フラグを解析することと、
前記第1フラグに基づいて、前記非隣接位置に基づいた時間動き情報予測を前記現在ブロックに利用することが許可されているか否かを判断することと、をさらに含み、
前記第2フラグは、次のフラグ、即ち、
時間動き情報を現在画像シーケンスに利用することが許可されているか否かを示すフラグであって、時間動き情報を現在画像シーケンスに利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、
時間動き情報を現在画像に利用することが許可されているか否かを示すフラグであって、時間動き情報を現在画像に利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、及び、
非隣接位置を動き情報導出に利用することが許可されているか否かを示すフラグであって、非隣接位置を動き情報導出に利用することが許可されていないことを示す場合、前記第1フラグを解析する必要がないと確定される、フラグ、
のうちのいずれか1つ又は複数を含み、
前記第2フラグに基づいて、前記第1フラグを解析する必要があると確定した場合、前記第1フラグが解析される、
ことを特徴とする請求項
6に記載の
時間動き情報予測方法。
【請求項9】
前記少なくとも1つの非隣接位置は、
座標が(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+2*k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+2*k_cbWidth, yCb+2*k_cbHeight)である第1位置、
座標が(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth, yCb+3*k_cbHeight-1)、(xCb+3*k_cbWidth-1, yCb+3*k_cbHeight)、又は(xCb+3*k_cbWidth, yCb+3*k_cbHeight)である第2位置、
座標が(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+3*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+3*k_cbWidth, yCb+k_cbHeight/2)である第3位置、
座標が(xCb+k_cbWidth/2, yCb+3*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+3*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+3*k_cbHeight)である第4位置、
座標が(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth, yCb+k_cbHeight/2-1)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight/2)、又は(xCb+2*k_cbWidth, yCb+k_cbHeight/2)である第5位置、
座標が(xCb+k_cbWidth/2, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth/2, yCb+2*k_cbHeight)、(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight-1)、又は(xCb+k_cbWidth/2-1, yCb+2*k_cbHeight)である第6位置、
座標が(xCb+k_cbWidth, yCb+2*k_cbHeight)、(xCb+k_cbWidth, yCb+2*k_cbHeight-1)、(xCb+k_cbWidth-1, yCb+2*k_cbHeight)、又は(xCb+k_cbWidth-1, yCb+2*k_cbHeight-1)である第7位置、及び、
座標が(xCb+2*k_cbWidth, yCb+k_cbHeight)、(xCb+2*k_cbWidth-1, yCb+k_cbHeight)、(xCb+2*k_cbWidth, yCb+k_cbHeight-1)、又は(xCb+2*k_cbWidth-1, yCb+k_cbHeight-1)である第8位置、
のうちのいずれか1つ又は複数を含み、
xCbは前記現在ブロックの左上隅の横座標であり、yCbは前記現在ブロックの左上隅の縦座標であり、k_cbWidthは前記現在ブロックの幅、又は幅の1/2、又は幅の1/4、又は幅の2倍であり、k_cbHeightは前記現在ブロックの高さ、又は高さの1/2、又は高さの1/4、又は高さの2倍であり、「*」は乗算演算を示す、
ことを特徴とする請求項1に記載の
時間動き情報予測方法。
【請求項10】
候補動き情報リストの構築方法であって、
現在ブロックに対して空間動き情報予測と時間動き情報予測を行って、前記現在ブロックの空間動き情報と時間動き情報を確定することと、
設定された順序で、前記空間動き情報と前記時間動き情報を前記現在ブロックの候補動き情報リストに加えることと、を含み、
請求項
1に記載の
時間動き情報予測方法が前記時間動き情報予測に利用され、前記時間動き情報は、前記第1の時間動き情報を含む、
ことを特徴とする候補動き情報リストの構築方法。
【請求項11】
前記設定された順序は、次のルール、即ち、
前記空間動き情報の距離が前記時間動き情報の距離以下である場合、前記空間動き情報が優先的に前記候補動き情報リストに加えられること、
前記空間動き情報の距離が前記時間動き情報の距離より大きい場合、前記時間動き情報が優先的に前記候補動き情報リストに加えられること、
複数の時間動き情報の距離が異なる場合、距離の小さい時間動き情報が優先的に前記候補動き情報リストに加えられること、及び、
複数の時間動き情報の距離が同じである場合、前記時間動き情報の統計的法則に従って、前記候補動き情報リストに加えられる順序が確定されること、
のうちの1つ又は複数に基づいて確定され、
前記空間動き情報の距離は、前記空間動き情報が導出される位置から前記現在ブロックまでの距離であり、前記時間動き情報の距離は、前記時間動き情報が導出される位置から前記現在ブロックまでの距離であり、1つの位置から前記現在ブロックまでの距離は、前記位置の位置する又は隣接する矩形ボックスに基づいて確定され、前記現在ブロックは前記矩形ボックスによって囲まれ且つ前記矩形ボックススの中心に位置し、前記矩形ボックスの幅は前記現在ブロックの幅の整数倍であり、前記矩形ボックスの高さは前記現在ブロックの高さの整数倍であり、前記矩形ボックスの面積が大きいほど、前記位置から前記現在ブロックまでの距離が大きくなる、
ことを特徴とする請求項
10に記載の
候補動き情報リストの構築方法。
【請求項12】
前記第1の時間動き情報は、
前記現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報、
前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報、及び、
前記現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報、
のうちの少なくとも2つを含み、
複数の第1の時間動き情報の距離が同じである場合、時間動き情報の統計的法則に従って、候補動き情報リストに加えられる順序が確定されることは、
前記現在ブロックの右下側の非隣接位置に基づいて導出される第1の時間動き情報が、前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に前記候補動き情報リストに加えられることと、
前記現在ブロックの右側の非隣接位置に基づいて導出される第1の時間動き情報が、前記現在ブロックの下側の非隣接位置に基づいて導出される第1の時間動き情報より優先的に前記候補動き情報リストに加えられることと、を含む、
ことを特徴とする請求項
11に記載の
候補動き情報リストの構築方法。
【請求項13】
前記第1の時間動き情報のうちの最も前の第1の時間動き情報の順序は、次の方式、即ち、
幾何分割モード(GPM)では、前記最も前の第1の時間動き情報に対して設定されるシーケンス番号が、前記候補動き情報リストに加えられることが許可される候補動き情報の最大数以下であること、
設定された高速な動きのシナリオでは、前記最も前の第1の時間動き情報に対して設定されるシーケンス番号が、前記候補動き情報リストに加えられることが許可される候補動き情報の最大数以下であること、
のうちの少なくとも1つで確定される、
ことを特徴とする請求項
10に記載の
候補動き情報リストの構築方法。
【請求項14】
前記設定された順序で、前記空間動き情報と前記時間動き情報を前記現在ブロックの候補動き情報リストに加えることは、
前記空間動き情報又は前記時間動き情報を前記候補動き情報リストに加える前に、類似性チェックを行うことと、
前記類似性チェックにより、前記空間動き情報又は前記時間動き情報が、前記候補動き情報リストに既に加えられた又は加えられることが確定された候補動き情報のいずれとも類似していないと確定した場合、前記空間動き情報又は前記時間動き情報を前記候補動き情報リストに加えることと、を含み、
第1の類似性閾値θ
1は前記第1の時間動き情報に対して類似性チェックを行うときに用いられ、第2の類似性閾値θ
2は前記空間動き情報に対して類似性チェックを行うときに用いられ、θ
1>θ
2又はθ
1=θ
2である、
ことを特徴とする請求項
10に記載の
候補動き情報リストの構築方法。
【請求項15】
前記時間動き情報は、隣接位置に基づいた時間動き情報予測によって確定された時間動き情報をさらに含み、第3の類似性閾値θ
3は、前記隣接位置に基づいた時間動き情報予測によって確定された前記時間動き情報に対して類似性チェックを行うときに用いられ、θ
1>θ
3又はθ
1=θ
3である、
ことを特徴とする請求項
14に記載の
候補動き情報リストの構築方法。
【請求項16】
前記第1の類似性閾値は、現在画像シーケンスのパラメータ、及び現在画像のパラメータ、のうちの1つに基づいて確定さ
れ、
前記現在画像シーケンスのパラメータは、シーケンスの解像度を含み、
前記現在画像のパラメータは、画像の幅、画像の高さ、画像のサンプル数のうちのいずれか1つ又は複数を含み、
前記第1の類似性閾値は複数あり、第1の類似性閾値が大きいほど、対応するパラメータの値がより大きい、
ことを特徴とする請求項
14に記載の
候補動き情報リストの構築方法。
【請求項17】
前記第1の類似性閾値は、現在画像の参照関係に基づいて確定され、前記参照関係は単方向参照と双方向参照を含み、
前記参照関係が前記単方向参照である場合に確定される第1の類似性閾値は、前記参照関係が前記双方向参照である場合に確定される第1の類似性閾値より小さく、
前記単方向参照は、前方参照画像又は後方参照画像のみを前記現在画像に利用できることを指し、前記双方向参照は、前記前方参照画像と前記後方参照画像の両方を前記現在画像に利用できることを指す、
ことを特徴とする請求項
14に記載の
候補動き情報リストの構築方法。
【請求項18】
前記第1の類似性閾値は、現在の予測モードにテンプレートマッチングを利用するか否かに基づいて確定され、前記テンプレートマッチングを利用する場合に確定される第1の類似性閾値は、前記テンプレートマッチングを利用しない場合に確定される第1の類似性閾値より大きい、
ことを特徴とする請求項
14に記載の
候補動き情報リストの構築方法。
【請求項19】
前記第1の類似性閾値は、予め設定された値、現在画像シーケンスのパラメータ、現在画像のパラメータ、現在ブロックのサイズ、現在画像シーケンスのシーケンスレベルフラグ、現在画像のスライスレベルフラグ、現在画像の画像レベルフラグ、現在の予測モードにテンプレートマッチングを利用するか否かを示すフラグ、及び現在画像の参照関係、のうちのいずれか1つ又は複数のパラメータに基づいて確定される、
ことを特徴とする請求項
14に記載の
候補動き情報リストの構築方法。
【請求項20】
ビデオデコーディング方法であって、
請求項
10~19のいずれか一項に記載の
候補動き情報リストの構築方法に基づいて、現在ブロックの候補動き情報リストを構築することと、
デコーディングによって取得された前記現在ブロックの候補動き情報のインデックスに基づいて、前記候補動き情報リストから1つ又は複数の候補動き情報を選択することと、
選択された前記候補動き情報に基づいて前記現在ブロックの予測ブロックを確定し、前記予測ブロックに基づいて前記現在ブロックを再構成することと、
を含む、
ことを特徴とするビデオデコーディング方法。
【国際調査報告】