(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-27
(45)【発行日】2023-11-07
(54)【発明の名称】復号化方法、符号化方法、装置、及びデバイス
(51)【国際特許分類】
H04N 19/577 20140101AFI20231030BHJP
H04N 19/109 20140101ALI20231030BHJP
H04N 19/154 20140101ALI20231030BHJP
H04N 19/176 20140101ALI20231030BHJP
【FI】
H04N19/577
H04N19/109
H04N19/154
H04N19/176
(21)【出願番号】P 2022558281
(86)(22)【出願日】2021-03-25
(86)【国際出願番号】 CN2021082954
(87)【国際公開番号】W WO2021190591
(87)【国際公開日】2021-09-30
【審査請求日】2022-10-12
(31)【優先権主張番号】202010225428.1
(32)【優先日】2020-03-26
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】508219313
【氏名又は名称】杭州海康威視数字技術股▲フン▼有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】方 ▲樹▼清
【審査官】久保 光宏
(56)【参考文献】
【文献】中国特許出願公開第110662075(CN,A)
【文献】国際公開第2018/105580(WO,A1)
【文献】Huanbang Chen, et al.,"Non-CE4: ATMVP simplification",Document: JVET-K0189-v2, [online],JVET-K0189 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年07月10日,Pages 1-7,[令和5年9月19日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=3698> and <URL: https://jvet-experts.org/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0189-v2.zip>.
【文献】Ruoyang Yu, et al.,"CE2-related: ATMVP simplification",Document: JVET-M0116, [online],JVET-M0116 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年12月31日,Pages 1-5,[令和5年2月14日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=4921> and <URL: https://jvet-experts.org/doc_end_user/documents/13_Marrakech/wg11/JVET-M0116-v1.zip>.
【文献】Jianle Chen, et al.,"Algorithm Description of Joint Exploration Test Model 7 (JEM 7)",Document: JVET-G1001-v1, [online],JVET-G1001 (version 1),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2017年08月19日,Pages 13-28,[令和5年6月2日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=3286> and <URL: https://jvet-experts.org/doc_end_user/documents/7_Torino/wg11/JVET-G1001-v1.zip>.
【文献】Jian-Liang Lin, et al.,"Motion Vector Coding in the HEVC Standard",IEEE Journal of Selected Topics in Signal Processing,IEEE,2013年11月18日,Vol.7, No.6,Pages 957-968,ISSN: 1932-4553, <DOI: 10.1109/JSTSP.2013.2271975>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
復号化方法であって、
カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、前記カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析するステップと、
前記カレントブロックのマッチングブロックを決定するステップであって、
少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、前記カレントブロックのマッチングブロックを決定することであって、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを含む、ステップと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するステップと、
前記インデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定するステップと、
決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うステップと、を含み、
ここで、前記決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えること、を含み、
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用することを特徴とする復号化方法。
【請求項2】
前記マッチングブロックをオフセットして得られた新しいマッチングブロックは、
1つまたは複数のオフセット量対にそれぞれ基づいて、前記マッチングブロックを水平及び垂直方向にオフセットし、1つまたは複数の新しいマッチングブロックを取得することによって決定されることを特徴とする請求項1に記載の方法。
【請求項3】
前記カレントブロックのマッチングブロックを決定した後、さらに、
前記マッチングブロックをクリップすることを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記マッチングブロックをオフセットして得られた新しいマッチングブロックは、
第13サブブロックと第14サブブロックの動き情報を比較し、第15サブブロックと第16サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記クリップ後のマッチングブロックを水平右方向にオフセットして新しいマッチングブロックを取得すること、または
第17サブブロックと第18サブブロックの動き情報を比較し、第19サブブロックと第20サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記クリップ後のマッチングブロックを水平左方向にオフセットして新しいマッチングブロックを取得すること、または
第13サブブロックと第21サブブロックの動き情報を比較し、第17サブブロックと第22サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記クリップ後のマッチングブロックを垂直下方向にオフセットして新しいマッチングブロックを取得すること、または
第15サブブロックと第23サブブロックの動き情報を比較し、第19サブブロックと第24サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記クリップ後のマッチングブロックを垂直上方向にオフセットして新しいマッチングブロックを取得することによって決定され、
第13サブブロックは、前記クリップ後のマッチングブロックの左上隅のサブブロックであり、第14サブブロックは、前記クリップ後のマッチングブロックの直右側の一番上の隣接サブブロックであり、第15サブブロックは、前記クリップ後のマッチングブロックの左下隅のサブブロックであり、第16サブブロックは、前記クリップ後のマッチングブロックの直右側の一番下の隣接サブブロックであり、第17サブブロックは、前記クリップ後のマッチングブロックの右上隅のサブブロックであり、第18サブブロックは、前記クリップ後のマッチングブロックの直左側の一番上の隣接サブブロックであり、第19のサブブロックは、前記クリップ後のマッチングブロックの右下隅のサブブロックであり、第20サブブロックは、前記クリップ後のマッチングブロックの直左側の一番下の隣接サブブロックであり、第21サブブロックは、前記クリップ後のマッチングブロックの直下側の一番左の隣接サブブロックであり、第22サブブロックは、前記クリップ後のマッチングブロックの直下側の一番右の隣接サブブロックであり、第23サブブロックは、前記クリップ後のマッチングブロックの直上側の一番左の隣接サブブロックであり、第24サブブロックは、前記クリップ後のマッチングブロックの直上側の一番右の隣接サブブロックであることを特徴とする請求項3に記載の方法。
【請求項5】
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定することは、
少なくとも1つの新しいマッチングブロックが存在する場合、オフセット前のマッチングブロックに対応する予測モード、及びオフセットによって得られた新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として決定することを含むことを特徴とする請求項2~4のいずれか1項に記載の方法。
【請求項6】
前記決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、さらに、
当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、前記カレントブロックの周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、前記周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、
前記周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、前記周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与え、
前記周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、前記周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与え、
前記周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与えることを含むことを特徴とする請求項1に記載の方法。
【請求項7】
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用する時、前記カレントブロックに強化型時間動きベクトル予測技術が作動しているかどうかは、
前記カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動している場合、前記カレントブロックに強化型時間動きベクトル予測技術が作動していると判断し、
前記カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動していない場合、前記カレントブロックに強化型時間動きベクトル予測技術が作動していないと判断することによって決定されることを特徴とする請求項1に記載の方法。
【請求項8】
符号化方法であって
カレントブロックのマッチングブロックを決定するステップであって、
少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、前記カレントブロックのマッチングブロックを決定することであって、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを含む、ステップと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するステップと、
前記時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うステップと、
各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、前記カレントブロックの強化型時間動きベクトル予測モードとして決定するステップと、
前記カレントブロックのビットストリームにインデックス情報を付加させるステップであって、前記インデックス情報は、前記決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用されるステップと、を含み、
ただし、前記当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えること、を含むことを特徴とする符号化方法。
【請求項9】
復号化装置であって、
カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、前記カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析するための復号化ユニットと、
前記カレントブロックのマッチングブロックを決定するための第1決定ユニットと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて、時間モード候補リストを構築するための構築ユニットと、
前記強化型時間動きベクトル予測モードのインデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定するための第2決定ユニットと、
決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うための予測ユニットと、を備え、
ここで、前記予測ユニットは、さらに、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられ、
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用し、
前記第1決定ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを特徴とする復号化装置。
【請求項10】
符号化装置であって、
カレントブロックのマッチングブロックを決定するための第1決定ユニットと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するための構築ユニットと、
前記時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行う予測ユニットと、
各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、前記カレントブロックの強化型時間動きベクトル予測モードとして決定する第2決定ユニットと、
前記カレントブロックのビットストリームにインデックス情報を付加させる符号化ユニットであって、前記インデックス情報は、前記決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される符号化ユニットと、を備え、
ここで、前記予測ユニットは、さらに、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられ、
前記第1決定ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを特徴とする符号化装置。
【請求項11】
復号化デバイスであって、
プロセッサと、機械可読記憶媒体とを備え、前記機械可読記憶媒体は、前記プロセッサによって実行可能な機械実行可能命令を記憶し、前記プロセッサは、前記機械実行可能命令を実行することにより、請求項1~7のいずれか1項に記載の方法を実施するために用いられることを特徴とする復号化デバイス。
【請求項12】
符号化デバイスであって、
プロセッサと、機械可読記憶媒体とを備え、前記機械可読記憶媒体は、前記プロセッサによって実行可能な機械実行可能命令を記憶し、前記プロセッサは、前記機械実行可能命令を実行することにより、請求項8に記載の方法を実施するために用いられることを特徴とする符号化デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はビデオの符号化復号化技術に関し、特に復号化方法、符号化方法、装置、及びデバイスに関する。
【背景技術】
【0002】
完全なビデオ符号化には通常、予測、変換、量子化、エントロピー符号化、およびフィルタリングなどの操作が含まれる。予測は、イントラ予測とインター予測に分けることができる。イントラ予測は、周辺符号化されたブロックを参照としてカレント符号化されていないブロックを予測し、空間領域での冗長性を効果的に除去する。インター予測は、隣接する符号化された画像を使用してカレント画像を予測し、時間領域の冗長性を効果的に除去する。
【0003】
汎用ビデオ符号化(Versatile Video Coding、VVC)標準で採用されている選択可能な時間動きベクトル予測(Alternative Temporal Motion Vector Prediction、ATMVP)技術は、時間領域サブブロックの動き情報を使用して、カレント符号化ユニット内の各サブブロックに異なる動き情報を提供する。
【0004】
しかしながら、実際の応用には、ATMVP技術において、co-locatedフレームにおいてカレント符号化ブロックの対応する位置の符号化ブロックを見つけることは、カレント符号化ブロックの周辺ブロックの動き情報に依存する必要がある。周辺ブロックの情報が不正確であると、対応する位置の符号化ブロックの動き情報も信頼できなくなり、符号化性能に影響を与える。
【発明の概要】
【課題を解決するための手段】
【0005】
そこで、本発明は、復号化方法、符号化方法、装置、及びデバイスを提供する。
【0006】
本発明の実施例の第1の態様により、以下を含む復号化方法を提供する。
前記方法は、カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、前記カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析するステップと、
前記カレントブロックのマッチングブロックを決定するステップであって、
少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、前記カレントブロックのマッチングブロックを決定することであって、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを含む、ステップと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するステップと、
前記インデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定するステップと、
決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うステップと、を含み、
ここで、前記決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えることを含み、
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用する。
【0007】
本発明の実施例の第2の態様により、以下を含む符号化方法を提供する。
前記方法は、前記カレントブロックのマッチングブロックを決定するステップであって、
少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定することであって、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向であることを含む、ステップと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するステップと、
前記時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うステップと、
各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、前記カレントブロックの強化型時間動きベクトル予測モードとして決定するステップと、
前記カレントブロックのビットストリームにインデックス情報を付加させるステップであって、前記インデックス情報は、前記決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用されるステップと、を含み、
ただし、前記当該強化型時間的動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えること、を含む。
【0008】
本発明の実施例の第3の態様により、以下を含む復号化装置を提供する。
前記装置は、カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、前記カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析するための復号化ユニットと、
前記カレントブロックのマッチングブロックを決定するための第1決定ユニットと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて、時間モード候補リストを構築するための構築ユニットと、
前記強化型時間動きベクトル予測モードのインデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定するための第2決定ユニットと、
決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うための予測ユニットと、を備え
ここで、前記予測ユニットは、さらに、ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられ、
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用し、
前記第1決定ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向である。
【0009】
本発明の実施例の第4の態様により、以下を含む符号化装置を提供する。
前記装置は、カレントブロックのマッチングブロックを決定するための第1決定ユニットと、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するための構築ユニットと、
前記時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行う予測ユニットと、
各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、前記カレントブロックの強化型時間動きベクトル予測モードとして決定する第2決定ユニットと、
前記カレントブロックのビットストリームにインデックス情報を付加させる符号化ユニットであって、前記インデックス情報は、前記決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される符号化ユニットとを備え、
ここで、前記予測ユニットは、さらに、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられ、
前記第1決定ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向である。
【0010】
本発明の実施例の第5態様により、復号化デバイスを提供する。前記復号化デバイスは、プロセッサと、機械可読記憶媒体とを備え、前記機械可読記憶媒体は、前記プロセッサによって実行可能な機械実行可能命令を記憶し、前記プロセッサは、前記機械実行可能命令を実行することにより、請求項に記載の復号化方法を実施するために用いられる。
【0011】
本発明の実施例の第5態様により、符号化デバイスを提供する。前記符号化デバイスは、プロセッサと、機械可読記憶媒体とを備え、前記機械可読記憶媒体は、前記プロセッサによって実行可能な機械実行可能命令を記憶し、前記プロセッサは、前記機械実行可能命令を実行することにより、請求項に記載の符号化方法を実施するために用いられる。
【0012】
本発明の実施例の復号化方法は、カレントブロックに強化型時間動きベクトル予測技術が作動していると判断した場合、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析し、カレントブロックのマッチングブロックを決定し、マッチングブロック及びマッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて強化型時間動きベクトル予測モード候補を決定し、強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築し、インデックス情報に基づいて時間モード候補リストから強化型時間動きベクトル予測モードを決定し、強化型時間動きベクトル予測モードに基づいてカレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいてカレントブロック内の各サブブロックの動き補償を行う。これにより、周辺ブロックの動き情報が不正確なためにマッチングブロックの動き情報が不正確になる確率を低減し、復号化性能を向上させた。
【図面の簡単な説明】
【0013】
【
図1A】本発明の例示的な実施例に示されるブロック分割の模式図である。
【
図1B】本発明の例示的な実施例に示されるブロック分割の模式図である。
【
図2】本発明の例示的な実施例に示される符号化、復号化方法の模式図である。
【
図3】本発明の例示的実施例に示されるClip操作の模式図である。
【
図4A】本発明の例示的な実施例に示される復号化方法のフローチャートである。
【
図4B】本発明の例示的な実施例に示される別の復号化方法のフローチャートである。
【
図5】本発明の例示的な実施例に示されるカレントブロックの周辺ブロックの模式図である。
【
図6】本発明の例示的な実施例に示されるカレントブロックの第1周辺ブロックに基づいてカレントブロックのマッチングブロックを決定するフローチャートである。
【
図7】本発明の例示的な実施例に示されるマッチングブロックをオフセットする際の参照ブロックの模式図である。
【
図8A】本発明の例示的な実施例に示されるマッチングブロックをオフセットする模式図である。
【
図8B】本発明の例示的な実施例に示されるマッチングブロックをオフセットする模式図である。
【
図8C】本発明の例示的な実施例に示されるマッチングブロックをオフセットする模式図である。
【
図8D】本発明の例示的な実施例に示されるマッチングブロックをオフセットする模式図である。
【
図8E】本発明の例示的な実施例に示されるマッチングブロックをオフセットする模式図である。
【
図9】本発明の例示的な実施例に示される復号化装置の構造の模式図である。
【
図10】本発明の例示的な実施例に示される復号化デバイスのハードウェア構造の模式図である。
【
図11】本発明の例示的な実施例に示される符号化装置の構造の模式図である。
【
図12】本発明の例示的な実施例に示される符号化デバイスのハードウェア構造の模式図である。
【発明を実施するための形態】
【0014】
本発明の実施例で使用された用語は特定の実施例を説明するための目的のみであり、本発明を限定するものではない。文脈が明らかに他の意味を示さない限り、本発明の実施形態と特許請求の範囲に使用される単数形の「一種」、「前記」及び「当該」は複数形を含むことも意図する。理解すべきことは、本明細書で使用される用語の「及び/又は」は挙げられた1つ又は複数の関連する項目の任意又は全ての可能な組み合わせを含むことを意味する。理解すべきことは、本発明の実施形態において、第1、第2、第3等の用語を利用して様々な情報を説明するかもしれないが、これらの情報はこれらの用語に限定されない。これらの用語は、同じ種類の情報を区別するのみ使用される。例えば、本発明の範囲から逸脱しない場合、第1情報は第2情報と呼称されてもよく、類似的に、第2情報は第1情報と呼称されてもいい。また、使用されている「もし」という言葉は、文脈により「…とき」、「…場合」、又は「…に応じて」と解釈されてもいい。
【0015】
ここで例示的な実施例について詳細的に説明する。その例示は図面に示している。以下の説明は図面に係る時、特に示さない限り、異なる図面における同じ数字は同じ又は類似する要素を示す。以下の例示的な実施例に記載された実施例は本発明と一致する全ての実施例ではない。逆に、それらは添付の特許請求の範囲で詳細に説明された、本発明のいくつかの態様と一致する装置及び方法の例に過ぎない。
【0016】
本発明の実施例で使用された用語は特定の実施例を説明するための目的のみであり、本発明を限定するものではない。文脈が明らかに他の意味を示さない限り、本発明の実施例と特許請求の範囲に使用される単数形の「一種」、「前記」及び「当該」は複数形を含むことも意図する。
【0017】
当業者が本発明の実施例によって提供される技術的な解決手段をよりよく理解できるように、先ず、本発明の実施例に関わるいくつかの技術用語及び既存のビデオの符号化、復号化の主なプロセスについて、簡単に説明する。
【0018】
当業者が本発明の実施例によって提供される技術的な解決手段をよりよく理解できるように、先ず、本発明の実施例に関わるいくつかの技術用語について簡単に説明する。
【0019】
技術用語:
1、予測画素(Prediction Signalとも呼ばれる):すでに符号化、復号化された画素から得られた画素値であり、元の画素と予測画素との差で残差を求め、残差の変換、量子化及び係数符号化を行う。
【0020】
例示的に、インター予測における予測画素は、カレント画像ブロックに対して参照フレーム(再構成画素フレーム)から得られた画素値を指し、画素の位置が離散的であるため、最終的な予測画素を得るために補間する必要がある。予測画素が元の画素に近いほど、両者を差し引いて得られた残差エネルギーは小さくなり、符号化圧縮性能は高くなる。
【0021】
2、動きベクトル(Motion Vector、MV):インター符号化において、MVはカレント符号化ブロックとその参照画像のベストマッチングブロックとの間の相対変位を表すために使用される。分割して得られた各ブロック(サブブロックともいう)には、該当する動きベクトルを復号化側に伝送する必要がある。特にサブブロックの数が多い場合、各サブブロックのMVを独立して符号化し、伝送すると、相当数のビットが消費される。MVの符号化に用いるビット数を削減するために、ビデオ符号化では隣接する画像ブロック間の空間相関を利用し、既に符号化されている隣接ブロックのMVに基づいてカレント符号化対象ブロックのMVを予測し、予測差分を符号化する。これにより、MVを表現するためのビット数を効果的に削減することができる。これに基づき、カレント画像ブロックのMVを符号化する時に、一般に、まず隣接する符号化されたブロックのMVを用いてカレント画像ブロックのMVを予測し、MVの予測値(Motion Vector Prediction、MVP)と動きベクトルの実質推定値との差、すなわち動きベクトル残差(Motion Vector Difference、MVD)を符号化することで、MVで符号化するビット数を効果的に削減することができる。
【0022】
3、動き情報(Motion Information):MVはカレント画像ブロックとある参照画像のベストマッチングブロックとの間の相対変位を表すため、画像ブロックを指す情報を正確に取得するためには、MV情報に加えて、どの参照画像を使用したのかを示す参照画像のインデックス情報も必要となる。ビデオ符号化技術では、通常、カレント画像に対して、ある規則に基づいて参照画像リストを作成し、参照画像インデックスは、参照画像リストの何個目の参照画像がカレント画像ブロックに使用されたかを示す。また、符号化技術では、複数の参照画像リストをサポートしてもいいため、どの参照画像リストを使用したかを示すインデックスも必要となり、当該インデックスを参照方向と呼ぶことができる。ビデオ符号化では、MV、参照フレームインデックス、参照方向などの動きに関する情報を動き情報と総称する。
【0023】
4、レート歪み最適化(Rate‐Distortion Optimized、RDO):符号化の効率を評価する指標として、ビットレート(Bit Per Second、BPS)、ピーク信号対雑音比(Peak Signal to Noise Ratio、PSNR)などがある。ビットレートが小さいほど圧縮率が高く、PSNRが大きいほど再構成された画像の品質が高い。符号化モードを選択する時に、判別式は実質的に両者を合わせた評価である。
【0024】
例えば、符号化モードのコスト:J(mode)=D+λ*R。ここで、Dは歪み(Distortion)、通常はSSE(Sum of Square Error、二乗和誤差)指標で測定し、SSEとは再構成されたブロックとソース画像ブロックとの二乗和誤差であり、λはラグランジュ乗数、Rは当該符号化モードで画像ブロックを符号化するために必要な実際のビット数であり、モード情報、動き情報、予測残差の符号化に必要なビット数の合計を含む。
【0025】
符号化モードを選択する際、RDOで比較判定すれば、通常、より高い符号化性能を保証できる。
【0026】
次に、既存のビデオ符号化標準でのブロック分割技術及び既存のビデオの符号化、復号化の主なプロセスについて、簡単に説明する。
【0027】
ビデオ符号化標準でのブロック分割技術:
【0028】
高効率ビデオコーディング(High Efficiency Video Coding、HEVC)では、例えば、コーディングツリーユニット(Coding Tree Unit、CTU)を4分木で再帰的にコーディングユニット(Coding Units、CU)に分割している。
図1A、
図1Bに示すように、分割されていないCTUは、最大コーディングユニット(LCU)である。後述のCTUはLCUと置き換えて使用できる。葉ノードCUレベルでイントラ符号化又はインター符号化を使用するか否かを決定する。CUはさらに2つまたは4つの予測ユニット(Prediction Unit、PU)に分割される可能であり、同じPU内では同じ予測情報を使用する。予測終了後に残差情報を取得した後、CUをさらに4分木で複数の変換ユニット(Transform Units、TU)に分割できる。例えば、本発明におけるカレントブロックは、1つのPUである。
【0029】
しかし、最新提案された汎用ビデオ符号化では、ブロック分割の技術が大きく変わった。2分/3分/4分木の分割構造は、従来の分割モデルを置き換え、CU、PU、TUという従来の概念の区別を取り消し、より柔軟なCUの分割方法をサポートする。CUは正方形や長方形の分割が可能となる。CTUはまず4分木で分割され、4分木分割で得られた葉ノードはさらに2分木や3分木に分割されることが可能である。
図1Aに示すように、CUの分割タイプは、4分木分割、水平2分木分割、垂直2分木分割、水平3分木分割、垂直3分木分割の5種類があり、
図1Bに示すように、CTU内のCUの分割は、上記5種類の分割タイプを自由に組み合わせることによって、各PUの形状が異なり、例えば、サイズが異なる矩形や正方形にすることが可能である。
【0030】
ビデオの符号化、復号化の主なプロセス:
【0031】
図2の(a)に示すように、ビデオ符号化を例として、ビデオ符号化は一般的に予測、変換、量子化、エントロピー符号化などの処理を含み、さらに、
図2の(b)のような枠組みで符号化を行うことも可能である。
【0032】
ここで、予測は、イントラ予測とインター予測に分けることができる。イントラ予測は、周辺符号化されたブロックを参照としてカレント符号化されていないブロックを予測し、空間領域での冗長性を効果的に除去する。インター予測は、隣接する符号化された画像を使用してカレント画像を予測し、時間領域の冗長性を効果的に除去する。
【0033】
変換とは、画像を空間領域から変換領域へ画像を変換し、画像を表現するために変換係数を用いることを指す。大多数の画像は、平坦領域と緩変化領域が多く含まれ、適切な変換を行うことで、画像を空間領域での散乱分布から変換領域での比較的集中した分布に変換させ、信号間の周波数領域の相関を取り除き、量子化処理と合わせてビットストリームを効果的に圧縮することができる。
【0034】
エントロピー符号化は、一連の要素記号(例えばビデオシーケンスを表現するためのもの)を伝送または保存のためのバイナリビットストリームに変換する可逆符号化方法である。エントロピー符号化モジュールに入力される要素記号は、量子化された変換係数、動きベクトル情報、予測モード情報、変換・量子化に関するシンタックスなどを含む。エントロピー符号化は、ビデオ要素記号の冗長性を効果的に除去することができる。
【0035】
以上、符号化を例に紹介したが、ビデオ復号化の処理はビデオ符号化の処理と相対するものであり、すなわちビデオ復号化には通常エントロピー復号化、予測、逆量子化、逆変換、フィルタリングなどの処理があり、各処理の実施原理はビデオ符号化と同一または類似のものである。
【0036】
ATMVP技術の実施について、以下に簡単に説明する。
【0037】
ATMVP技術の実施は、主に以下のプロセスで構成される。
【0038】
1)、時間動きベクトル予測(Temporal Motion Vector Prediction、TMVP)の決定:カレント符号化ブロックの位置A0の動き情報が以下の条件を満たすかどうかを判断する。
【0039】
a)位置A0が存在し、かつ、カレント符号化ユニットと同じスライス(Slice)及びタイル(Tile)にある。
【0040】
b)位置A0の予測モードは、インター予測モードである。
【0041】
c)位置A0の参照フレームインデックスは、カレントフレームに対応するco-locatedフレーム(コロケーテッドフレーム)の参照フレームインデックスと同じである(L0方向を先に判定し、次にL1方向を判定する)。
【0042】
ここで、位置A0は、(xCb-1、yCb+CbHeight-1)の位置であり、(xCb,yCb)はカレントブロックの左上隅の座標であり、CbHeightはカレントブロックの高さである。
【0043】
2)、中心参照ブロックの位置の計算:ステップ1)で得られたTMVPの精度は1/16であり、位置A0の動きベクトルを右に4ビット移動させる必要があり、それにより当該動きベクトルを整数画素(integer-pixel)に変換する。同時に、中心参照ブロックの位置をカレントCTUの範囲内にクリップ(Clip)する必要がある。すなわち、中心参照ブロックの位置がカレントCTUの範囲内にない場合、中心参照ブロックをカレントCTUの範囲内にちょうど入るように水平方向または/および垂直方向に移動させる。その模式図を
図3に示す。本発明において、カレントCTUは、参照フレームにおけるCTUを表してもよい。カレントCTUは、マッチングブロックと同じ画像にあり、また、カレントCTUは、参照フレームにおける、カレントブロックが位置する最大の符号化ユニットと同じ位置にある最大の符号化ユニットであってよい。
【0044】
中心参照ブロックの位置は、以下のように算出される:
【数1】
ただし、(xColCb、yColCb)は中心参照ブロックの左上隅の座標であり、(xCtb,yCtb)はカレントCTUの左上隅の座標であり、PicWidth及びPicHeightはそれぞれカレントフレームの幅及び高さであり、CtbLog2Sizeは、2を底としたカレントCTUのサイズの対数であり、(xColCtrCb、yColCtrCb)はカレントブロックの中心の座標であり、tempMv[0]とtempMv[1]はそれぞれ位置A0の水平動きベクトルと垂直動きベクトルである。
【0045】
3)、中心参照ブロックの予測モードの判断:予測モードが非インター予測モードであれば、ctrPredFlagL0とctrPredFlagL1は共に0であり、それ以外、つまり予測モードがインター予測モードであり、ステップ4)へと進む。
【0046】
4)、参照位置の調整:サブブロックサイズが8*8であるため、動き情報は8*8単位になる。そのため、中心参照ブロックの左上隅の座標を8倍に調整する必要がある。調整式は以下に示す。
xColCb=((xColCb>>3)<<3)
yColCb=((yColCb>>3)<<3)
【0047】
5)、調整された中心参照ブロックの動き情報の取得:調整された中心参照ブロックの予測モードがイントラ予測またはイントラブロックコピー(Intra Block Copy、IBC)モードであれば、FlagLXCol=0、それ以外は、調整された中心参照ブロックのL0方向とL1方向の動き情報がそれぞれ存在するかどうかを判断し、存在すれば、FlagLXCol=1、調整された中心参照ブロックのL0方向および/またはL1方向の動き情報を取得する。
【0048】
例えば、LX=L0またはLX=L1、調整された中心参照ブロックの予測モードがイントラ予測モードまたはイントラブロックコピーモードである場合、FlagL0Col=0且つFlagL1Col=0である。
【0049】
調整された中心参照ブロックの予測モードがイントラ予測モードでもイントラブロックコピーモードでもない場合、調整された中心参照ブロックのL0方向の動き情報が存在するときは、FlagL0Col=1、調整された中心参照ブロックのL0方向の動き情報が存在しないときはFlagL0Col=0、調整された中心参照ブロックのL1方向の動き情報が存在するときはFlagL1Col=1、調整された中央参照ブロックのL1方向の動き情報が存在しない場合はFlagL1Col=0とする。
【0050】
FlagL1Col=1のとき、カレントフレームの長期参照フレームとco-locatedフレームの長期参照フレームが同じフレームでなければ、調整された中心参照ブロックの動き情報は利用できないと判断し、ctrPredFlagLX=0、それ以外、ListX(X=0または1)の最初のフレームを指すように当該調整された中心参照ブロックの動き情報をスケーリング(scale)させ、スケーリングされた動き情報をカレント中心参照ブロックの動き情報として、ctrPredFlagLX=1である。本発明において、ListXは参照画像キューX(参照画像リストXとも呼ばれる)を表すことができ、例えば、List0は参照画像キュー0を表し、List1は参照画像キュー1を表すことができる。
【0051】
6)、ctrPredFlagLX=1の場合、各サブブロックの動き情報の計算:マッチングブロック内の各サブブロックをトラバースし、任意のサブブロックについて、カレントCTUの範囲内に当該サブブロックをClipし、Clip後のサブブロックの動き情報が利用可能であれば、当該Clip後のサブブロックの動き情報をListXの最初のフレームを指すようにスケーリングし、スケーリングされた動き情報をカレントブロックの対応する位置のサブブロックに与える。Clip後のサブブロックの動き情報が利用可能でない場合は、調整された中心参照ブロックの中心位置の動き情報をListXの最初のフレームを指すようにスケーリングし、スケーリングされた動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0052】
本発明の実施例の上記目的、特徴及び利点をより理解しやすくするために、本発明の実施例における技術的な解決手段を添付図面と合わせて以下に更に詳細に説明する。
【0053】
図4Aを参照し、本発明の実施例で提供される復号化方法のフローチャートであり、ここで、当該復号化方法を復号化デバイスに適用することができ、当該復号化方法は以下のステップからなることができる。
ステップS401:カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、前記カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析する。
ステップS402:前記カレントブロックのマッチングブロックを決定する。
ステップS403:前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築する。
ステップS404:前記インデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定する。
ステップS405:決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行う。ただし、前記決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定することは、ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えること、を含む。ここで、強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用することができる。
【0054】
本発明の実施例において、前記カレントブロックのマッチングブロックを決定することは、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定することを含み、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向である。
【0055】
図4Bを参照し、本発明の実施例で提供される別の復号化方法のフローチャートであり、ここで、当該復号化方法を復号化デバイスに適用することができ、当該復号化方法は以下のステップからなることができる。
【0056】
ステップS400、カレントブロックのビットストリームを取得し、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析し、当該インデックス情報は、符号化デバイスによって構築された第1時間モード候補リストにおける強化型時間動きベクトル予測モードの位置である。
【0057】
本発明の実施例において、カレントブロックは、処理対象の画像の画像ブロックのうちの任意の1つであってもよい。実施では、処理対象の画像を複数の画像ブロックに分割し、各画像ブロックをある順番で順番に処理することができる。ただし、各画像ブロックのサイズや形状を所定の分割規則に従って設定することができる。
【0058】
復号化デバイスの場合、カレントブロックが復号化対象のブロックとなる。
【0059】
当該ビットストリームは符号化側から送信され、当該ビットストリームはバイナリビットストリームであってもよく、当該ビットストリームには、復号化デバイスの復号化するための知るべき情報が付加されてもよく、例えば、当該ビットストリームには、符号化デバイスが使用した符号化方法に関する情報、カレントブロックのサイズなどの情報が付加されてもいい。
【0060】
マッチングブロックの動き情報の信頼性を向上させるために、カレントブロックの周辺ブロックに基づいて決定されるマッチングブロックの数は、1つに限定されず、複数であってもよく、符号化デバイスは、当該複数のマッチングブロックのそれぞれに対応する時間予測モード(本発明では強化型時間動きベクトル予測モード候補と呼ぶことができる)に基づいて時間モード候補リスト(本発明では第1時間モード候補リストと呼ぶ)を構築し、最終的に使用するマッチングブロックに対応する強化型時間動きベクトル予測モード候補(本発明では強化型時間動きベクトル予測モードと呼ぶ)のインデックス情報をカレントブロックのビットストリームに符号化することができ、当該インデックス情報は、符号化デバイスによって構築された第1時間モード候補リストにおける強化型時間動きベクトル予測モードの位置を示すために使用される。
【0061】
復号化デバイスがカレントブロックのビットストリームを取得する際に、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析することができる。
【0062】
ステップS410、カレントブロックの第1周辺ブロックに基づいて、カレントブロックのマッチングブロックを決定する。
【0063】
本発明の実施例では、カレントブロックの第1周辺ブロックは、カレントブロックの任意の復号化された隣接ブロックまたは非隣接ブロックを含むことができる。
【0064】
例として、
図5を参照し、カレントブロックの第1周辺ブロックは、A、B、C、D、F、Gのうちのいずれか1つであってもよい。
【0065】
復号化デバイスは、カレントブロックの第1周辺ブロックに基づいて、カレントブロックのマッチングブロックを決定することができる。
【0066】
1つの可能な実施例として、
図6に示すように、ステップS410において、カレントブロックの第1周辺ブロックに基づいてカレントブロックのマッチングブロックを決定することは、以下のステップによって実現することができる:
【0067】
ステップS411、カレントブロックの第1周辺ブロックに基づいて、第1段階の動き情報を決定する。
【0068】
ステップS412、第1段階の動き情報に基づいて、カレントブロックのマッチングブロックを決定する。
【0069】
例示的に、第1段階は、カレントブロックの周辺ブロックに基づいてカレントブロックのマッチングブロックを決定するプロセスを指してもよく、第1段階の動き情報は、カレント第1周辺ブロックに基づいて決定された、カレントブロックのマッチングブロックを決定するために使用される動き情報を指してもいい。
【0070】
例示的に、List0及びList1は共に、双方向予測モードにおける参照フレームの情報、例えば、フレーム番号などの参照フレームの識別情報を記録するために使用される。List0またはList1におけるフレームのインデックスに基づいて、参照フレームの情報を決定することができ、例えば、参照フレームのフレーム番号を決定することができ、さらに、当該フレーム番号に基づいて、対応する参照フレームを取得することができる。
【0071】
本発明の実施例において、カレントブロックの第1周辺ブロックに基づいて第1段階の動き情報を決定することは、以下を含み得る:
【0072】
第1段階の動きベクトルが0であり、参照フレームインデックスがList0における最初のフレームのインデックスであり、第1段階の動き情報の参照方向がList0方向であると決定する;
【0073】
または、第1段階の動きベクトルが0であり、参照フレームインデックスがList1における最初のフレームのインデックスであり、第1段階の動き情報の参照方向がList1方向であると決定する。
【0074】
本発明の実施例では、List0及びList1は共に、双方向予測モードにおける参照フレームの情報、例えば、フレーム番号のような参照フレームの識別情報を記録するために使用される。List0またはList1におけるフレームのインデックスに基づいて、参照フレームの情報を決定することができ、例えば、参照フレームのフレーム番号を決定することができ、さらに、当該フレーム番号に基づいて、対応する参照フレームを取得することができる。
【0075】
1つの可能な実施例として、ステップS412において、第1段階の動き情報に基づいてカレントブロックのマッチングブロックを決定することは、以下を含み得る:
【0076】
カレントブロックの位置と、第1段階の水平動きベクトル及び垂直動きベクトルとに基づいて、カレントブロックに対応するマッチングブロックを決定する。また、当該決定ステップは、動きベクトルの精度と組み合わせて実行してもよい。
【0077】
例示的に、第1段階の動き情報を決定すると、復号化デバイスは、第1段階の水平動きベクトル(すなわち、第1段階の動きベクトルの水平成分)及び垂直動きベクトル(すなわち、第1段階の動きベクトルの垂直成分)と、カレントブロックの位置とに基づいてカレントブロックのマッチングブロックを決定でき、すなわち、第1段階の動き情報に対応する位置を調整する。
【0078】
例示的に、動きベクトルの精度は、4、2、1、1/2、1/4、1/8または1/16を含む値をとることができるが、これらに限定されない。
【0079】
例示的に、カレントブロックの位置は、カレントブロックの左上隅の座標によって示すことができる。
【0080】
復号化デバイスは、動きベクトルの精度に基づいて、第1段階の水平動きベクトル及び垂直動きベクトルをそれぞれ左(1より大きい精度)又は右(1より小さい精度)に若干ビット移動させ、整数画素に変換し、カレントブロックの位置と、変換された第1段階の水平動きベクトル及び垂直動きベクトルとに基づいて参照位置を決定し、所定の値(実際のシーンに従って設定可能、例えば3)に基づいて参照位置を調整し、調整後の参照位置に基づいてマッチングブロックの位置を決定し、その具体的な実施は下記の具体的な実施例を参照する。
【0081】
別の可能な実施例として、ステップS412において、第1段階の動き情報に基づいてカレントブロックのマッチングブロックを決定することは、以下を含み得る:
【0082】
カレントブロックの位置と、第1段階の水平方向動きベクトル及び垂直方向動きベクトルと、サブブロックのサイズとに基づいて、カレントブロックのマッチングブロックを決定する。
【0083】
例示的に、第1段階の動き情報を決定すると、復号化デバイスは、第1段階の水平動きベクトル(すなわち、第1段階の動きベクトルの水平成分)及び垂直動きベクトル(すなわち、第1段階の動きベクトルの垂直成分)と、カレントブロックの位置とに基づいてカレントブロックのマッチングブロックを決定でき、すなわち、第1段階の動き情報に対応する位置を調整する。
【0084】
例示的に、動きベクトルの精度は、4、2、1、1/2、1/4、1/8または1/16を含む値をとることができるが、これらに限定されない。
【0085】
例示的に、カレントブロックの位置は、カレントブロックの左上隅の座標によって示すことができる。
【0086】
復号化デバイスは、動きベクトルの精度に基づいて、第1段階の水平動きベクトル及び垂直動きベクトルをそれぞれ左(精度が1より大きい)又は右(精度が1より小さい)に若干ビット移動させ、整数画素に変換し、カレントブロックの位置と、変換された第1段階の水平動きベクトル及び垂直動きベクトルとに基づいて参照位置を決定し、サブブロックのサイズに基づいて参照位置を調整し(整列調整と呼ぶことができる)、さらに、調整された参照位置に基づいてマッチングブロックの位置を決定する。
【0087】
例示的に、サブブロックのサイズを2N*2Nと仮定すると、参照位置をまず右にNビット移動させ、次に左にNビット移動させてもいい。Nは正の整数である。
【0088】
例示的に、サブブロックの辺の長さに基づいて参照位置の整列調整を行う場合、参照位置の水平・垂直座標をサブブロックの辺の長さで割った余りは、通常、直接捨てられるが、参照位置の水平・垂直座標をサブブロックの辺の長さで割った余りは、辺の長さの半分より大きい場合は、余りを直接捨てるよりその余りをさらなる処理(例えば、余りを切り上げる)を行う方が効果が高く、したがって、通常、決定されたマッチングブロックはより良い。
【0089】
例示的に、第1段階の動き情報が決定された後、第1段階の水平動きベクトル及び垂直動きベクトルをそれぞれ所定の調整値に基づいて調整し、調整後の第1段階の水平動きベクトル及び垂直動きベクトルと、動きベクトルの精度と、カレントブロックの位置とに基づいて、カレントブロックのマッチングブロックを決定してもよい。
【0090】
または、第1段階の水平動きベクトル及び垂直動きベクトルと、動きベクトルの精度とに基づいてマッチングブロックの左上隅の水平・垂直座標を仮決定し、仮決定したマッチングブロックの左上隅の水平・垂直座標をそれぞれ所定の調整値に基づいて調整し、最後に調整した水平・垂直座標をサブブロックの辺の長さに基づいて整列調整を行ってもよく、その具体的な実施は下記の具体的な実施例を参照する。
【0091】
例えば、第1段階の水平動きベクトル及び垂直動きベクトルを、動きベクトルの精度に基づいて整数画素に変換した後、変換後の第1段階の水平動きベクトル及び垂直動きベクトルにそれぞれ2N-1を足してもよいし、上記の方法で仮決定したマッチングブロックの左上隅の水平・垂直座標にそれぞれ2N-1を足してもよい。2Nをサブブロックの辺の長さである。
【0092】
例示的に、第1段階の水平動きベクトルを調整するための調整値は、第1段階の垂直動きベクトルを調整するための調整値と同じであってもよいし、異なってもよい。
【0093】
または、仮決定されたマッチングブロックの左上隅の水平座標を調整するための調整値は、最初に決定されたマッチングブロックの左上隅の垂直座標を調整するための調整値と同じであってもよいし、異なってもよい。
【0094】
ステップS420、当該マッチングブロック、及び当該マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、決定された強化型時間動きベクトル予測モード候補に基づいて、第2時間モード候補リストを構築する。
【0095】
本発明の実施例において、ステップS410におけるマッチングブロックが決定された時、当該マッチングブロックをオフセットし、新しいマッチングブロックを取得してもよい。
【0096】
例示的に、マッチングブロックをオフセットする方式によって得られた新しいマッチングブロックの数は、1つまたは複数であってもよい。
【0097】
復号化デバイスは、ステップS410で決定したマッチングブロックとステップS420で取得した新しいマッチングブロックとに基づいて、当該マッチングブロックに対応する時間予測モードと新しいマッチングブロックに対応する時間予測モードとを強化型時間動きベクトル予測モード候補として決定し、決定された強化型時間動きベクトル予測モード候補に基づいて時間モード候補リスト(本発明では第2時間モード候補リストと呼ぶ)を構築してもよい。
【0098】
例示的に、強化型時間動きベクトル予測モード候補の数、および各強化型時間動きベクトル予測モード候補が時間モード候補リストに追加される順序を限定しないが、復号化デバイスおよび符号化デバイスは一貫性を保つ必要がある。
【0099】
説明すべきことは、具体的な応用シーンにおいて、マッチングブロックをオフセットして得られた新しいマッチングブロックの動き情報が、マッチングブロックの動き情報と同一または類似している場合があり、この場合、新しいマッチングブロックに対応する予測モードを強化型時間動きベクトル予測モード候補として決定しなくてもよい。
【0100】
1つの可能な実施例として、マッチングブロックをオフセットし、新しいマッチングブロックを取得することは、以下の方法で実現することができる:
【0101】
第1サブブロックと第2サブブロックをカレントCTUの範囲にClipし、Clip後の第1サブブロックと第2サブブロックの動き情報を比較し、および、第3サブブロックと第4サブブロックをカレントCTUの範囲にClipし、Clip後の第3サブブロックと第4サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合に、マッチングブロックを水平右方向に1単位オフセットし、新しいマッチングブロックを得る;
【0102】
第5サブブロックと第6サブブロックをカレントCTUの範囲にClipし、Clip後の第5サブブロックと第6サブブロックの動き情報を比較し、および、第7サブブロックと第8サブブロックをカレントCTUの範囲にClipし、Clip後の第7サブブロックと第8サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合に、マッチングブロックを水平左方向に1単位オフセットし、新しいマッチングブロックを得る;
【0103】
第1サブブロックと第9サブブロックをカレントCTUの範囲にClipし、Clip後の第1サブブロックと第9サブブロックの動き情報を比較し、および、第5サブブロックと第10サブブロックをカレントCTUの範囲にClipし、Clip後の第5サブブロックと第10サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合に、マッチングブロックを垂直下方向に1単位オフセットし、新しいマッチングブロックを得る。
【0104】
第3サブブロックと第11サブブロックをカレントCTUの範囲にClipし、Clip後の第3サブブロックと第11サブブロックの動き情報を比較し、および、第7サブブロックと第12サブブロックをカレントCTUの範囲にClipし、Clip後の第7サブブロックと第12サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合に、マッチングブロックを垂直に上に1単位オフセットし、新しいマッチングブロックを得る。
【0105】
例示的に、第1サブブロックは、マッチングブロックの左上隅のサブブロックであり、第2のサブブロックは、マッチングブロックの直右側の一番上の隣接サブブロックであり、第3のサブブロックは、マッチングブロックの左下隅のサブブロックであり、第4のサブブロックは、マッチングブロックの直右側の一番下の隣接サブブロックであり、第5のサブブロックは、マッチングブロックの右上隅のサブブロックであり、第6のサブブロックは、マッチングブロックの直左側の一番上の隣接サブブロックであり、第7のサブブロックは、マッチングブロックの右下隅のサブブロックであり、第8サブブロックは、マッチングブロックの直左側の一番下の隣接サブブロックであり、第9サブブロックは、マッチングブロックの直下側の一番左の隣接サブブロックであり、第10サブブロックは、マッチングブロックの直下側の一番右の隣接サブブロックであり、第11サブブロックは、マッチングブロックの直上側の一番左の隣接サブブロックであり、第12サブブロックは、マッチングブロックの上の一番右側の隣接サブブロックである。
【0106】
例示的に、1単位は、サブブロックのサイズである。
【0107】
例えば、8*8のサブブロックの場合、1単位は8画素、4*4のサブブロックの場合、1単位は4画素、16*16のサブブロックの場合、1単位は16画素となる。
【0108】
説明すべきことは、マッチングブロックをオフセットする場合は、上記実施例で説明したように1単位でオフセットすることに限らず、他の値でもよく、例えば、サブブロックが8*8のサブブロックである場合、マッチングブロックをオフセットするとき、8画素以外の値でもよく、具体的な実施については、ここでは説明しない。
【0109】
図7を例にとると、第1サブブロックがA1、第2サブブロックがB2、第3サブブロックがA3、第4サブブロックがB4、第5サブブロックがA2、第6サブブロックがB1、第7サブブロックがA4、第8サブブロックがB3、第9サブブロックがC3、第10サブブロックがC4、第11サブブロックがC1、第12サブブロックがC2である。
【0110】
A1、B2、A3、B4を例にとると、復号化デバイスは、A1、B2、A3、B4をそれぞれカレントCTU(すなわちカレントブロックが属するCTU)の範囲にClipし、Clip後のA1、B2の動き情報を比較し、Clip後のA3、B4の動き情報を比較することができる。Clip後のA1とB2の動き情報が同じであり、かつClip後のA3とB4の動き情報が同じであれば、Clip後のA1とB2の間の他のサブブロックの動き情報は同じである可能性が高く、Clip後のA3とB4の間の他のサブブロックの動き情報は同じである可能性が高いことを考慮し、当該マッチングブロックを水平右方向に1単位オフセットして、得られた新しいマッチングブロックの動き情報は、元のマッチングブロックの動き情報と同じである可能性が高く、このオフセットによって新しい動き情報を得ることができない可能性がある。
【0111】
Clip後のA1とB2の動き情報が異なる場合、および/またはClip後のA3とB4の動き情報が異なる場合は、マッチングブロックを水平右方向に1単位オフセットすることにより、新しいマッチングブロックが得られ、それによって新しい動き情報が得られる。
【0112】
同様に、マッチングブロックを水平左方向に1単位、垂直上方向に1単位、垂直下方向に1単位オフセットして、対応する新しいマッチングブロックが得られるかどうかを、上記のロジックに従い、判断することができる。
【0113】
説明すべきことは、この実施例では、上記方法で新しいマッチングブロックが得られない場合、元のマッチングブロックを最終のマッチングブロック候補と決定してもよく、または、カレントマッチングブロックを他のオフセット策に従ってオフセットし直して、新しいマッチングブロックを得てもよい。
【0114】
1つの別の可能な実施例として、マッチングブロックをオフセットして得られた新しいマッチングブロックは、以下の方法によって決定されてもよい:
【0115】
1つまたは複数のオフセット量対(offset pair)にそれぞれ基づいて、マッチングブロックを水平及び垂直方向にオフセットし、1つまたは複数の新しいマッチングブロックを取得する。
【0116】
例示的に、復号化デバイスは、当該マッチングブロックを水平および垂直方向にそれぞれ所定のオフセット量でオフセットすることによって、新しいマッチングブロックを取得することができる。
【0117】
例示的に、マッチングブロックを水平方向にオフセットするためのオフセット量と、マッチングブロックを垂直方向にオフセットするためのオフセット量とは、オフセット量対を構成する。
【0118】
復号化デバイスは、1つまたは複数のオフセット量対にそれぞれ基づいて、マッチングブロックを水平及び垂直方向にオフセットし、1つまたは複数の新しいマッチングブロックを取得することができる。
【0119】
もう1つ別の可能な実施例として、ステップS410において、カレントブロックのマッチングブロックを決定した後、さらに、以下を含み得る:
【0120】
決定されたマッチングブロックをカレントCTUの範囲にClipする。
【0121】
例示的に、後続の処理でカレントブロックの各サブブロックの動き情報を決定する効率を向上させるために、ステップS410でのマッチングブロックが決定された場合、決定されたマッチングブロックに対してClip操作を実行し、当該マッチングブロックをカレントCTUの範囲にClipすることによって、マッチングブロックの各サブブロックがカレントCTUの範囲内にあることを保証する。
【0122】
一例として、マッチングブロックをオフセットすることによって得られた新しいマッチブロックは、以下のように決定することができる:
【0123】
Clip後のマッチングブロックの右境界がカレントCTUの右境界に位置しない場合、第13サブブロックと第14サブブロックの動き情報を比較し、且つ第15サブブロックと第16サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを水平右方向に1単位オフセットして新しいマッチングブロックを取得する;
【0124】
Clip後のマッチングブロックの左境界がカレントCTUの左境界に位置しない場合、第17サブブロックと第18サブブロックの動き情報を比較し、且つ第19サブブロックと第20サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを水平左方向に1単位オフセットして新しいマッチングブロックを取得する;
【0125】
Clip後のマッチングブロックの下境界がカレントCTUの下境界に位置しない場合、第13サブブロックと第21サブブロックの動き情報を比較し、第17サブブロックと第22サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを垂直下方向に1単位オフセットして新しいマッチングブロックを取得する;
【0126】
Clip後のマッチングブロックの上境界がカレントCTUの上境界に位置しない場合、第15サブブロックと第23サブブロックの動き情報を比較し、第19サブブロックと第24サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを垂直上方向に1単位オフセットして新しいマッチングブロックを取得する;
【0127】
例示的に、第13サブブロックは、Clip後のマッチングブロックの左上隅のサブブロックであり、第14サブブロックは、Clip後のマッチングブロックの直右側の一番上の隣接サブブロックであり、第15サブブロックは、Clip後のマッチングブロックの左下隅のサブブロックであり、第16サブブロックは、Clip後のマッチングブロックの直右側の一番下の隣接サブブロックであり、第17サブブロックは、Clip後のマッチングブロックの右上隅のサブブロックであり、第18サブブロックは、Clip後のマッチングブロックの直左側の一番上の隣接サブブロックであり、第19のサブブロックは、Clip後のマッチングブロックの右下隅のサブブロックであり、第20サブブロックは、Clip後のマッチングブロックの直左側の一番下の隣接サブブロックであり、第21サブブロックは、Clip後のマッチングブロックの直下側の一番左の隣接サブブロックであり、第22サブブロックは、Clip後のマッチングブロックの直下側の一番右の隣接サブブロックであり、第23サブブロックは、Clip後のマッチングブロックの直上側の一番左の隣接サブブロックであり、第24サブブロックは、Clip後のマッチングブロックの直上側の一番右の隣接サブブロックである。
【0128】
例示的に、1単位はサブブロックの辺の長さであり、例えば、サイズ8*8のサブブロックである場合、サブブロックの辺の長さは8画素である。
【0129】
まだ
図7を例にとると、
図7のマッチングブロックをClip後のマッチングブロックと仮定すると、第13サブブロックがA1、第14サブブロックがB2、第15のサブブロックがA3、第16サブブロックがB4、第17サブブロックがA2、第18サブブロックがB1、第19サブブロックがA4、第20サブブロックがB3、第21サブブロックがC3、第22サブブロックがC4、第23サブブロックがC1、第24サブブロックがC2である。
【0130】
マッチングブロック内の各サブブロックがカレントCTUの範囲内にあるように保証し、カレントブロック内の各サブブロックの動き情報を決定する効率を向上させるために、ステップS410のマッチングブロックが決定された時、当該マッチングブロックに対してClip操作を行い、Clip後のマッチングブロックがカレントCTUの範囲内にあるようにしてもよい。
【0131】
マッチングブロックの頂点の座標が全てサブブロックの辺長の整数倍で整列調整され、すなわち、マッチングブロックの頂点の座標が全てサブブロックの辺の長さの整数倍であることを考慮し、Clip後のマッチングブロックの境界からカレントCTUの各境界位置までの距離は全てサブブロックの辺の長さの整数倍である。
【0132】
オフセットにより得られたマッチングブロック内の各サブブロックがカレントCTUの範囲内にあることを保証するために、Clip後のマッチングブロックをオフセットする場合、オフセット方向に、Clip後のマッチングブロックの境界と対応するカレントCTUの境界との距離が0より大きいことを保証する必要があり、すなわち、オフセット方向に、Clip後のマッチングブロックの境界が対応するカレントCTUの境界に位置しないことを保証する必要がある。
【0133】
例示的に、Clip後のマッチングブロックの右境界がカレントCTUの右境界に位置しない場合、復号化デバイスは、A1及びB2の動き情報の比較結果と、A3及びB4の動き情報の比較結果とに基づいて、Clip後のマッチングブロックを水平右方向にオフセットする必要があるかどうかを判断してもよい。もし2つの比較結果のうち少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを水平右方向に1単位オフセットしてもよい。
【0134】
同様に、Clip後のマッチングブロックの左境界がカレントCTUの左境界に位置しない場合、復号化デバイスは、A2及びB1の動き情報の比較結果と、A4及びB3の動き情報の比較結果とに基づいて、Clip後のマッチングブロックを水平左方向にオフセットする必要があるかどうかを判断してもよい。もし2つの比較結果のうち少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを水平左方向に1単位オフセットしてもよい。
【0135】
Clip後のマッチングブロックの下境界がカレントCTUの下境界に位置しない場合、復号化デバイスは、A1及びC3の動き情報の比較結果と、A2及びC4の動き情報の比較結果とに基づいて、Clip後のマッチングブロックを垂直下方向にオフセットする必要があるかどうかを判断してもよい。もし2つの比較結果のうち少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを垂直下方向に1単位オフセットしてもよい。
【0136】
Clip後のマッチングブロックの上境界がカレントCTUの上境界に位置しない場合、復号化デバイスは、A3及びC1の動き情報の比較結果と、A4及びC2の動き情報の比較結果とに基づいて、Clip後のマッチングブロックを垂直上方向にオフセットする必要があるかどうかを判断してもよい。もし2つの比較結果のうち少なくとも1つが異なる動き情報となった場合、Clip後のマッチングブロックを垂直上方向に1単位オフセットしてもよい。一例として、ステップS420において、マッチングブロックと、マッチングブロックをオフセットすることによって得られた新しいマッチングブロックとに基づいて、強化型時間動きベクトル予測モード候補を決定することは、以下を含み得る:
【0137】
少なくとも1つの新しいマッチングブロックが存在する場合、オフセット前のマッチングブロックに対応する予測モードと、オフセットによって得られた新しいマッチングブロックに対応する予測モードとを、強化型時間動きベクトル予測モード候補として決定する。
【0138】
例示として、マッチングブロックをオフセットする前に、マッチングブロックに対してClip操作を行った場合、オフセット前のマッチングブロックはClip後のマッチングブロックとしてもよく、マッチングブロックをオフセットする前に、マッチングブロックに対してClip操作を行っていない場合、オフセット前のマッチングブロックは元のマッチングブロックである。
【0139】
例示的に、復号化デバイスは、上記実施例で説明した方法に従って少なくとも1つの新しいマッチングブロックを得るとき、オフセット前のマッチングブロックに対応する予測モード、およびオフセットによって得られた新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として決定してもよい。
【0140】
説明すべきことは、新しいマッチングブロックが複数存在する場合、復号化デバイスは、当該複数の新しいマッチングブロックに対応する予測モードの一部または全部を、強化型時間動きベクトル予測モード候補として決定してもよい。
【0141】
復号化デバイスは、上記実施例で説明した方法で新しいマッチングブロックを得られなかった場合、オフセット前のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として決定してもよい。
【0142】
例示的に、第2時間モード候補リストは、少なくとも1つの強化型時間動きベクトル予測モード候補を含み、各強化型時間動きベクトル予測モード候補は、それぞれ異なるマッチングブロックに対応する。
【0143】
ステップS430、強化型時間動きベクトル予測モードのインデックス情報に基づき、第2時間モード候補リストから強化型時間動きベクトル予測モードを決定する。
【0144】
本発明の実施例では、現在、本発明の実施例が提供する技術方法が採用されている時、同一の画像ブロックについて、符号化デバイスと復号化デバイスが時間モード候補リストを構築するときに、時間モード候補リストにおける各強化型時間動きベクトル予測モード候補の順序が同一であることを考慮すると、そのため、符号化デバイスが構築した時間モード候補リストにおける強化型時間動きベクトル予測モードの位置と、復号化デバイスが構築した時間モード候補リストにおける強化型時間動きベクトル予測モード位置とは同じである。
【0145】
ゆえに、復号化デバイスは、カレントブロックのビットストリームから解析した強化型時間動きベクトル予測モードのインデックス情報に基づいて、復号化デバイスによって構築された第2時間モード候補リストから強化型時間動きベクトル予測モードを決定することができる。
【0146】
ステップS440、強化型時間動きベクトル予測モードに基づいてカレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいてカレントブロック内の各サブブロックの動き補償を行う。
【0147】
本発明の実施例において、強化型時間動きベクトル予測モードが決定された場合、当該強化型時間動きベクトル予測モードに対応するマッチングブロック(本発明ではターゲットマッチングブロックと呼ぶことができる)に基づいて、カレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロックの動き補償を行ってもよい。
【0148】
例示的に、第2時間モード候補リスト中の各強化型時間動きベクトル予測モード候補はそれぞれ、異なるマッチングブロックに対応する。
【0149】
1つの可能な実施例として、ステップS440において、強化型時間動きベクトル予測モードに基づいて、カレントブロック内の各サブブロックの動き情報を決定することは、以下を含み得る:
【0150】
ターゲットマッチングブロック内の任意のサブブロックに対して、当該サブブロックをカレントCTUの範囲にClipする;
【0151】
Clip後のサブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、Clip後のサブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与える;
【0152】
Clip後のサブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、Clip後のサブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える;
【0153】
Clip後のサブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、Clip後のサブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0154】
例示的に、決定されたカレントブロックの各サブブロックの動き情報の正確性を向上させるために、ターゲットマッチングブロックの任意のサブブロックについて、復号化デバイスは、当該サブブロックをカレントCTUの範囲にClipし、Clip後のサブブロックの後方動き情報及び前方動き情報が利用できるかどうかを判断してもよい。
【0155】
Clip後のサブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、復号化デバイスは、Clip後のサブブロックの前方動き情報をList0の最初のフレームを指すようにスケーリングし、Clip後のサブブロックの後方動き情報をList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与える。
【0156】
Clip後のサブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、Clip後のサブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0157】
Clip後のサブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、Clip後のサブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与える。
【0158】
説明すべきことは、この実施例において、Clip後のサブブロックの前方動き情報は利用可能であるが、後方動き情報が利用可能でない場合、Clip後のサブブロックの前方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた動き情報をカレントブロックに対応するサブブロックに与えてもよい(List0の最初のフレームを指すスケーリングされた動き情報を前方動き情報、List1の最初のフレームを指すスケーリングされた動き情報を後方動き情報とする)。
【0159】
Clip後のサブブロックの後方動き情報は利用可能であるが、前方動き情報が利用可能でない場合も同様である。
【0160】
例示的に、ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックがカレントCTUの範囲にClipするとき、Clip後のサブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロック内の対応する位置のサブブロックの動き情報は、少なくとも以下の方法で決定することができる:
【0161】
Clip後のサブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0162】
例示的に、カレントブロックの第1周辺ブロックは、カレントブロックの任意のすでに復号化された隣接ブロックまたは非隣接ブロックを含んでもいい。
【0163】
第2周辺ブロックは、第1周辺ブロックと同じでも異なってもよい。
【0164】
例示的に、Clip後のサブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、復号化デバイスは、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報が利用可能であるか否かを判断することができ、当該第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能である場合、復号化デバイスは、当該第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与えることができる。
【0165】
第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0166】
第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0167】
第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、復号化デバイスは、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与えることができる。
【0168】
説明すべきことは、この実施例において、Clip後のターゲットマッチングブロックの中心位置の前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、Clip後のターゲットマッチングブロックの中心位置の前方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた動き情報をカレントブロックに対応するサブブロックに与えてもよい(List0の最初のフレームを指すスケーリングされた動き情報を前方動き情報、List1の最初のフレームを指すスケーリングされた動き情報を後方動き情報とする)。
【0169】
Clip後のターゲットマッチングブロックの中心位置の後方動き情報は利用可能であるが、前方動き情報が利用可能でない場合、および、第2周辺ブロックの前方動き情報及び後方動き情報のうち、一方が利用可能であるが、他方が利用できない場合も同様である。
【0170】
1つの可能な実施例として、ステップS440において、強化型時間動きベクトル予測モードに基づいて、カレントブロック内の各サブブロックの動き情報を決定することは、以下を含み得る:
【0171】
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与える;
【0172】
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える;
【0173】
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与える。
【0174】
例示的に、カレントブロックの各サブブロックの動き情報を決定する効率を向上させるために、ターゲットマッチングブロックの任意のサブブロックに対して、復号化デバイスは、当該サブブロックの動き情報が利用可能であるかどうかを判断してもよい。
【0175】
当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、復号化デバイスは、当該サブブロックの前方動き情報及び後方動き情報をそれぞれスケーリングすることによって、当該サブブロックの前方動き情報をList0の最初のフレームを指すようにスケーリングし、当該サブブロックの後方動き情報をList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与える。
【0176】
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0177】
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与える。
【0178】
説明すべきことは、この実施例において、サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、サブブロックの前方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた動き情報をカレントブロックに対応するサブブロックに与えてもよい(List0の最初のフレームを指すスケーリングされた動き情報を前方動き情報、List1の最初のフレームを指すスケーリングされた動き情報を後方動き情報とする)。
【0179】
サブブロックの後方動き情報は利用可能であるが、前方動き情報が利用可能でない場合も同様である。
【0180】
例示的に、ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロック内の対応する位置のサブブロックの動き情報は、少なくとも以下の方法で決定することができる:
【0181】
当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与え、第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0182】
例示的に、当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、復号化デバイスは、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報が利用可能であるか否かを判断することができ、当該第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能である場合、復号化デバイスは、当該第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0183】
第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0184】
第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0185】
第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、復号化デバイスは、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与えることができる。
【0186】
この実施例において、カレントブロックの第2周辺ブロックは、上記の第1周辺のブロックと同じであってもよいし、異なってもよい。
図5を参照すると、この第2周辺ブロックは、例えば、カレントブロックの直左側の一番下の隣接ブロック、すなわちブロックFであってよい。
【0187】
1つの可能な実施例として、ステップS400又はS401において、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析することは、以下を含み得る:
【0188】
カレントブロックに強化型時間動きベクトル予測技術が作動していると判断した場合、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析する。
【0189】
例示的に、本発明の実施例によって提供される技術(本発明では、強化型時間動きベクトル予測(Enhanced Tmporal Motion Vector Prediction、ETMVP)技術と呼ぶ)の制御性及び柔軟性を強化し、従来のATMVP技術との互換性を実現するために、実際のシーンに応じて強化型時間動きベクトル予測技術の作動を制御することができる。
【0190】
復号化デバイスは、カレントブロックのビットストリームを受信し、カレントブロックに対して強化型時間動きベクトル予測技術が作動していると判断すると、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析し、上記の実施例に記載の方法で後続処理を実行することができる。
【0191】
復号化デバイスが、カレントブロックに対して強化型時間動きベクトル予測技術が作動していないと判断した場合、復号化デバイスは、従来のATMVP技術に従って処理を実行することができる。
【0192】
一例として、強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセット(Sequence Paramater Set、SPS)レベルシンタックスを使用することができる。
【0193】
例示的に、強化型時間動きベクトル予測技術が作動しているかどうかの制御のためのビット消費を減らすために、SPSレベルシンタックスを利用して、強化型時間動きベクトル予測技術がカレントブロックに作動するかどうかを制御することができる。
【0194】
1つの画像シーケンスに対して、SPSレベルのフラグビットを設定することができ、当該SPSレベルのフラグビットによって、その画像シーケンスに対して強化型時間動きベクトル予測技術が作動しているかどうかを示す。
【0195】
例えば、SPSレベルのフラグビットは、長さが1ビットのフラグビットであってもよく、当該フラグビットの値が第1値(例えば、1)である場合、対応する画像シーケンスに強化型時間動きベクトル予測が作動していることを示し、フラグビットの値が第2値(例えば、0)である場合、対応する画像シーケンスに強化型時間動きベクトル予測が作動していないことを示す。
【0196】
任意のブロックについて、復号化デバイスは、当該ブロックが属する画像シーケンスについて強化型時間動きベクトル予測技術が作動しているかどうかに基づいて、カレントブロックについて強化型時間動きベクトル予測技術が作動しているかどうかを判断することができる。
【0197】
例示的に、カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動している場合、カレントブロックに強化型時間動きベクトル予測技術が作動していると判断する。
【0198】
カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動していない場合、カレントブロックに強化型時間動きベクトル予測技術が作動していないと判断する。
【0199】
本発明の実施例において、カレントブロックのビットストリームを取得し、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析し、カレントブロックのマッチングブロックを決定し、マッチングブロック、及びマッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて強化型時間動きベクトル予測モード候補を決定し、強化型時間動きベクトル予測モード候補に基づいて第2時間モード候補リストを構築し、強化型時間動きベクトル予測モードのインデックス情報に基づいて第2時間モード候補リストから強化型時間動きベクトル予測モードを決定し、強化型時間動きベクトル予測モードに基づいてカレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいてカレントブロック内の各サブブロックの動き補償を行う。カレントブロックの周辺ブロックに基づいて決定されたマッチングブロックをオフセットして、新しいマッチングブロックを取得することにより、周辺ブロックの動き情報が不正確なためにマッチングブロックの動き情報が不正確になる確率を低減し、復号化性能を向上させた。
【0200】
一例として、本発明の実施例は、符号化方法をさらに提供し、ここで、当該符号化方法は、符号化デバイスに適用することができ、当該方法は、以下のステップを含み得る。
【0201】
ステップA1:カレントブロックのマッチングブロックを決定する。
【0202】
その具体的な実施は、前述の復号化側方法の実施例に参照することができ、本発明の実施例においては、繰り返して説明しない。
【0203】
ステップA2:マッチングブロック、及びマッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、強化型時間動きベクトル予測モード候補に基づいて第1時間モード候補リストを構築する。
【0204】
その具体的な実施は、
図4の実施例におけるステップS420に参照することができ、本発明の実施例においては繰り返して説明しない。
【0205】
ステップA3:第1時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、カレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
【0206】
例示的に、第1時間モード候補リストをステップA2に記載の方法で構築するとき、符号化デバイスは、第1時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースしてもよい。
【0207】
任意の強化型時間動きベクトル予測モード候補について、符号化デバイスは、当該強化型時間動きベクトル予測モード候補に基づいて、カレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行うことができ、その具体的な実施は、
図4の実施例におけるステップS440に参照することができ、本発明の実施例で繰り返して説明しない。
【0208】
ステップA4:各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、カレントブロックの強化型時間動きベクトル予測モードとして決定する。
【0209】
例示的に、符号化デバイスは、ステップA3で説明した方法に従って、各強化型時間動きベクトル予測モード候補にそれぞれ基づいてカレントブロック内の各サブブロックの動き補償を行うとき、符号化デバイスは、各強化型時間動きベクトル予測モードに対応するそれぞれのレート歪みコストを決定し、レート歪みコストが最も低い強化型時間動きベクトル予測モード候補をカレントブロックの強化型時間動きベクトル予測モードとして決定してもよい。
【0210】
ステップA5:カレントブロックのビットストリームにインデックス情報を付加させ、当該インデックス情報は、決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される。
【0211】
例示的に、符号化デバイスは、カレントブロックの強化型時間動きベクトル予測モードを決定するとき、復号化デバイスがビットストリーム内のインデックス情報に基づいてカレントブロックの強化型時間動きベクトル予測モードを決定できるように、カレントブロックのビットストリームにカレントブロックの強化型時間動きベクトル予測モードのインデックス情報を付加させてもよい。
【0212】
本発明の実施例において、カレントブロックのマッチングブロックを決定し、マッチングブロック及びマッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、強化型時間動きベクトル予測モード候補に基づいて第1時間モード候補リストを構築し、第1時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、カレントブロック内の各サブブロックの動き情報を決定し、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行い、各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、カレントブロックの強化型時間動きベクトル予測モードとして決定し、カレントブロックのビットストリームにカレントブロックの強化型時間動きベクトル予測モードのインデックス情報を付加させる。カレントブロックの周辺ブロックに基づいて決定されたマッチングブロックをオフセットして、新しいマッチングブロックを取得することにより、周辺ブロックの動き情報が不正確なためにマッチングブロックの動き情報が不正確になる確率を低減し、符号化性能を向上させた。
【0213】
当業者が本発明の実施例によって提供される技術的な解決手段をより良く理解できるように、以下、本発明の実施例によって提供される技術的な解決手段を具体例とともに説明する。
【0214】
実施例1
本発明の実施例によって提供される符号化方法は、以下のステップを含み得る。
1、カレントブロックの周辺ブロック(例えば、上記第1周辺ブロック)の動き情報を用いて、第1段階の動き情報を決定する。
2、第1段階の動き情報を用いてカレントブロックのマッチングブロックを決定する。
3、当該マッチングブロックと、当該マッチングブロックをオフセットして得られた新しいマッチングブロックとに基づいて、強化型時間動きベクトル予測モード候補を決定し、決定された強化型時間動きベクトル予測モード候補に基づいて、第1時間モード候補リストを構築する。
4、第1時間モード候補リスト中の各強化型時間動きベクトル予測モード候補を順次トラバースし、任意の強化型時間動きベクトル予測モード候補について、マッチングブロックの動き情報に基づいて、カレントブロック内のすべてのサブブロックの動き情報を取得する。
5、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
6、当該強化型時間動きベクトル予測モード候補に対応するレート歪みコストを決定し、レート歪みコスト値を他の強化型時間動きベクトル予測モード候補のレート歪みコストと比較し、レート歪みコスト値が最も低い強化型時間動きベクトル予測モード候補をカレントブロックの強化型時間動きベクトル予測モードとし、強化型時間動きベクトル予測モードのインデックス情報をビットストリームに付加させ、復号化デバイスに送信し、当該インデックス情報は決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される。
【0215】
実施例2
本発明の実施例によって提供される復号化方法は、以下のステップを含み得る。
1、カレントブロックのビットストリームを取得し、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析し、当該インデックス情報は決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される。
2、カレントブロックの周辺ブロック(例えば、上記第1周辺ブロック)の動き情報を用いて、第1段階の動き情報を決定する。
3、第1段階の動き情報を用いてカレントブロックのマッチングブロックを決定する。
4、当該マッチングブロックと、当該マッチングブロックをオフセットして得られた新しいマッチングブロックとに基づいて、強化型時間動きベクトル予測モード候補を決定し、決定された強化型時間動きベクトル予測モード候補に基づいて、第2時間モード候補リストを構築する。
5、ステップ1で得られたインデックス情報に従って、第2時間モード候補リスト中の対応する強化型時間動きベクトル予測モードを取得し、当該強化型時間動きベクトル予測モードに対応するターゲットマッチングブロックの動き情報に従って、カレントブロック中のすべてのサブブロックの動き情報を取得する。
6、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
【0216】
以下はいくつかのステップの具体的な実施方法について説明する。
【0217】
一、カレントブロックの周辺ブロックの動き情報を用いて、第1段階の動き情報を決定する。
【0218】
例示的に、カレントブロックの空間的な隣接ブロックの模式図は、例えば、
図5に示すように、カレントブロックの周辺ブロックはFブロックであることを例とする。
【0219】
実施例3
第1段階の動きベクトルが0であり、参照フレームインデックスがList0における最初のフレームのインデックスであり、第1段階の動き情報の参照方向がList0方向であると決定する。
【0220】
実施例4
第1段階の動きベクトルが0であり、参照フレームインデックスがList1における最初のフレームのインデックスであり、第1段階の動き情報の参照方向がList1方向であると決定する。
【0221】
二、第1段階の動き情報を用いてカレントブロックのマッチングブロックを決定する。
【0222】
実施例5
第1段階の水平方向の動きベクトルをMVx、垂直方向の動きベクトルをMVy、カレントブロックの左上隅の座標を(Xpos、Ypos)、動きベクトルの精度をPrecisionと仮定する。
【0223】
例示的に、Precisionは、4、2、1、1/2、1/4、1/8または1/16を含む値をとってもよい。
【0224】
Precisionの値は1、1/2、1/4、1/8または1/16の場合、カレントブロックに対応するマッチングブロックの左上隅の座標は:
Mx0=((Xpos+(MVx>>shift)+4)>>3)<<3
My0=((Ypos+(MVy>>shift)+4)>>3)<<3
【0225】
ここで、shiftの値とPrecisionは1対1で対応し、Precisionの値が1、1/2、1/4、1/8、1/16をとるとき、shiftの値はそれぞれ0、1、2、3、4となる。
【0226】
Precisionの値は4または2の場合、カレントブロックに対応するマッチングブロックの左上隅の座標は:
Mx0=((Xpos+(MVx<<shift)+4)>>3)<<3
My0=((Ypos+(MVy<<shift)+4)>>3)<<3
【0227】
ここで、shiftの値とPrecisionは1対1で対応し、Precisionの値が4と2をとるとき、shiftの値はそれぞれ2と1となる。
【0228】
この実施例では、第1段階の水平動きベクトル(MVx>>shift)と垂直動きベクトル(MVy>>shift)をそれぞれ調整値2N-1(Nはサブブロックの辺の長さに対する底が2の対数であり、本実施例では8*8サブブロックを例に、すなわち2N-1=4)を用いて調整したか、または、仮決定されたマッチングブロックの左上隅の水平座標(Xpos+(MVx<<shift))と、垂直座標(Ypos+(MVy<<shift))をそれぞれ調整値4を用いて調整した。
【0229】
参照位置(Xpos+(MVx>>shift))と(Ypos+(MVy>>shift))に対して整列調整を行う際に、調整値N(Nはサブブロックの辺の長さに対する底が2の対数であり、この実施例では8*8サブブロックを例にとると、すなわちN=3)を使用する。
【0230】
実施例6
第1段階の水平方向の動きベクトルをMVx、垂直方向の動きベクトルをMVy、カレントブロックの左上隅の座標を(Xpos、Ypos)、動きベクトルの精度をPrecisionと仮定する。
【0231】
例示的に、Precisionは、4、2、1、1/2、1/4、1/8または1/16を含む値をとってもよい。
【0232】
Precisionの値は1、1/2、1/4、1/8または1/16の場合、カレントブロックに対応するマッチングブロックの左上隅の座標は:
Mx0=((Xpos+(MVx>>shift))>>3)<<3
My0=((Ypos+(MVy>>shift))>>3)<<3
【0233】
ここで、shiftの値とPrecisionは1対1で対応し、Precisionの値が1、1/2、1/4、1/8、1/16をとるとき、shiftの値はそれぞれ0、1、2、3、4となる。
【0234】
Precisionの値は4または2の場合、カレントブロックに対応するマッチングブロックの左上隅の座標は:
Mx0=((Xpos+(MVx<<shift))>>3)<<3
My0=((Ypos+(MVy<<shift))>>3)<<3
【0235】
ここで、shiftの値とPrecisionは1対1で対応し、Precisionの値が4と2をとるとき、shiftの値はそれぞれ2と1となる。
【0236】
この実施例において、決定された参照位置(Xpos+(MVx>>shift))及び(Ypos+(MVy>>shift))を、定数3を用いて整列調整を行う。
【0237】
三、当該マッチングブロックと、当該マッチングブロックをオフセットして得られた新しいマッチングブロックとに基づいて、強化型時間動きベクトル予測モード候補を決定し、強化型時間動きベクトル予測モード候補に基づいて、時間モード候補リストを構築する(符号化デバイスにとっては第1時間モード候補リストであり、復号化デバイスにとっては第2時間モード候補リストである)。
【0238】
例示的に、
図7に示すマッチングブロックを例として、サブブロックのサイズを8*8と仮定する。
【0239】
実施例7
A1、B2をカレントCTUの範囲にClipし、Clip後のA1、B2の動き情報を取得し、両者の動き情報を比較し、比較結果をr1と表記する(r1には、同一または異なる動き情報であることが含まれ、以下も同様)。
【0240】
A3、B4をカレントCTUの範囲にClipし、Clip後のA3、B4の動き情報を取得し、両者の動き情報を比較し、比較結果をr2と表記する。
【0241】
r1とr2のうち少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを水平右方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0242】
A2、B1をカレントCTUの範囲にClipし、Clip後のA2、B1の動き情報を取得し、両者の動き情報を比較し、比較結果をr3と表記する。
【0243】
A4、B3をカレントCTUの範囲にClipし、Clip後のA4、B3の動き情報を取得し、両者の動き情報を比較し、比較結果をr4と表記する。
【0244】
r3とr4の中の少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを水平左方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0245】
A1、C3をカレントCTUの範囲にClipし、Clip後のA1、C3の動き情報を取得し、両者の動き情報を比較し、比較結果をr5と表記する。
【0246】
A2、C4をカレントCTUの範囲にClipし、Clip後のA2、C4の動き情報を取得し、両者の動き情報を比較し、比較結果をr6と表記する。
【0247】
r5とr6の中の少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを垂直下方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0248】
A3、C1をカレントCTUの範囲にClipし、Clip後のA3、C1の動き情報を取得し、両者の動き情報を比較し、比較結果をr7と表記する。
【0249】
A4、C2をカレントCTUの範囲にClipし、Clip後のA4、C2の動き情報を取得し、両者の動き情報を比較し、比較結果をr8と表記する。
【0250】
r7とr8の中の少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを垂直上方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0251】
元のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0252】
説明すべきことは、元のマッチングブロックに対応する予測モード、及び新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0253】
また、新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0254】
新しいマッチングブロックが存在しない場合、元のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加する。
【0255】
例示的に、決定されたマッチングブロックの模式図を
図8Aに示し、マッチングブロックを水平右方向に8画素オフセットすることによって得られた新しいマッチングブロックの模式図を
図8Bに示し、マッチングブロックを水平左方向に8画素オフセットすることによって得られた新しいマッチングブロックの模式図を
図8Cに示し、マッチングブロックを垂直上方向に8画素オフセットすることによって得られた新しいマッチングブロックの模式図を
図8Dに示し、マッチングブロックを垂直下方向に8画素オフセットをすることによって得られた新しいマッチングブロックの模式図を
図8Eに示してもよい。
【0256】
実施例8
マッチングブロックをカレントCTUの範囲にClipする。
【0257】
図7に示すマッチングブロックをClip後のマッチングブロックと仮定する。
【0258】
Clip後のマッチングブロックの右境界がカレントCTUの右境界に位置しない場合、A1、B2の動き情報を取得し、両者の動き情報を比較し、比較結果をr9と表記する(r9には、同一または異なる動き情報が含まれ、以下も同様)。
【0259】
A3、B4の動き情報を取得し、両者の動き情報を比較し、比較結果をr10と表記する。
【0260】
r9とr10のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを水平右方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0261】
Clip後のマッチングブロックの左境界がカレントCTUの左境界に位置しない場合、A2、B1の動き情報を取得し、両者の動き情報を比較し、比較結果をr11と表記する。
【0262】
A4、B3の動き情報を取得し、両者の動き情報を比較し、比較結果をr12と表記する。
【0263】
r11とr12のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを水平左方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0264】
Clip後のマッチングブロックの下境界がカレントCTUの下境界に位置しない場合、A1、C3の動き情報を取得し、両者の動き情報を比較し、比較結果をr13と表記する。
【0265】
A2、C4の動き情報を取得し、両者の動き情報を比較し、比較結果をr14と表記する。
【0266】
r13とr14のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを垂直下方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0267】
Clip後のマッチングブロックの上境界がカレントCTUの上境界に位置しない場合、A3、C1の動き情報を取得し、両者の動き情報を比較し、比較結果をr15と表記する。
【0268】
A4、C2の動き情報を取得し、両者の動き情報を比較し、比較結果をr16と表記する。
【0269】
r15とr16のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを垂直上方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0270】
オフセット前のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0271】
説明すべきことは、オフセット前のマッチングブロックに対応する予測モード、及び新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0272】
また、新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0273】
新しいマッチングブロックが存在しない場合、オフセット前のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加する。
【0274】
実施例9
元のマッチングブロックをオフセットし、新しいマッチングブロックを得る。
【0275】
例示的に、オフセットは以下のように行われる:
Mx1=Mx0+offset1
My1=My0+offset2
【0276】
ただし、Mx0とMy0はそれぞれ元のマッチングブロックの左上隅の水平・垂直座標であり、Mx1とMy1はそれぞれ新しいマッチングブロックの左上隅の水平・垂直座標であり、offset1とoffset2はオフセット量であり、その値が任意の整数である。
【0277】
新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0278】
元のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0279】
説明すべきことは、元のマッチングブロックに対応する予測モード、及び新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0280】
offset1とoffset2は複数のセットの値を取り、複数の新しいマッチングブロックを得ることができ、新しいマッチングブロックの数を限定しない。
【0281】
新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0282】
実施例10
A1、B2をカレントCTUの範囲にClipし、Clip後のA1、B2の動き情報を取得し、両者の動き情報を比較し、比較結果をr1と表記する(r1には、同一または異なる動き情報が含まれ、以下も同様)。
【0283】
A3、B4をカレントCTUの範囲にClipし、Clip後のA3、B4の動き情報を取得し、両者の動き情報を比較し、比較結果をr2と表記する。
【0284】
r1とr2のうち少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを水平右方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0285】
A2、B1をカレントCTUの範囲にClipし、Clip後のA2、B1の動き情報を取得し、両者の動き情報を比較し、比較結果をr3と表記する。
【0286】
A4、B3をカレントCTUの範囲にClipし、Clip後のA4、B3の動き情報を取得し、両者の動き情報を比較し、比較結果をr4と表記する。
【0287】
r3とr4のうち少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを水平左方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0288】
A1、C3をカレントCTUの範囲にClipし、Clip後のA1、C3の動き情報を取得し、両者の動き情報を比較し、比較結果をr5と表記する。
【0289】
A2、C4をカレントCTUの範囲にClipし、Clip後のA2、C4の動き情報を取得し、両者の動き情報を比較し、比較結果をr6と表記する。
【0290】
r5とr6のうち少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを垂直下方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0291】
A3、C1をカレントCTUの範囲にClipし、Clip後のA3、C1の動き情報を取得し、両者の動き情報を比較し、比較結果をr7と表記する。
【0292】
A4、C2をカレントCTUの範囲にClipし、Clip後のA4、C2の動き情報を取得し、両者の動き情報を比較し、比較結果をr8と表記する。
【0293】
r7とr8のうち少なくとも1つが異なる動き情報となった場合に、当該マッチングブロックを垂直上方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0294】
説明すべきことは、新しいマッチングブロックが複数存在する場合、各新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0295】
また、新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0296】
新しいマッチングブロックが存在しない場合、元のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加する。
【0297】
実施例11
マッチングブロックをカレントCTUの範囲にClipする。
【0298】
図7に示すマッチングブロックをClip後のマッチングブロックと仮定する。
【0299】
Clip後のマッチングブロックの右境界がカレントCTUの右境界に位置しない場合、A1、B2の動き情報を取得し、両者の動き情報を比較し、比較結果をr9と表記する(r9には、同一または異なる動き情報が含まれ、以下も同様)。
【0300】
A3、B4の動き情報を取得し、両者の動き情報を比較し、比較結果をr10と表記する。
【0301】
r9とr10のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを水平右方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0302】
Clip後のマッチングブロックの左境界がカレントCTUの左境界に位置しない場合、A2、B1の動き情報を取得し、両者の動き情報を比較し、比較結果をr11と表記する。
【0303】
A4、B3の動き情報を取得し、両者の動き情報を比較し、比較結果をr12と表記する。
【0304】
r11とr12のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを水平左方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0305】
Clip後のマッチングブロックの下境界がカレントCTUの下境界に位置しない場合、A1、C3の動き情報を取得し、両者の動き情報を比較し、比較結果をr13と表記する。
【0306】
A2、C4の動き情報を取得し、両者の動き情報を比較し、比較結果をr14と表記する。
【0307】
r13とr14のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを垂直下方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0308】
Clip後のマッチングブロックの上境界がカレントCTUの上境界に位置しない場合、A3、C1の動き情報を取得し、両者の動き情報を比較し、比較結果をr15と表記する。
【0309】
A4、C2の動き情報を取得し、両者の動き情報を比較し、比較結果をr16と表記する。
【0310】
r15とr16のうち少なくとも1つが異なる動き情報となった場合に、当該Clip後のマッチングブロックを垂直上方向に8画素オフセットし、新しいマッチングブロックを取得し、当該新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0311】
説明すべきことは、オフセット前のマッチングブロックに対応する予測モード、及び新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0312】
また、新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0313】
新しいマッチングブロックが存在しない場合、オフセット前のマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加する。
【0314】
実施例12
元のマッチングブロックをオフセットし、新しいマッチングブロックを得る。
【0315】
例示的に、オフセットは以下のように行われる:
Mx1=Mx0+offset1
My1=My0+offset2
【0316】
ただし、Mx0とMy0はそれぞれ元のマッチングブロックの左上隅の水平・垂直座標であり、Mx1とMy1はそれぞれ新しいマッチングブロックの左上隅の水平・垂直座標であり、offset1とoffset2はオフセット量であり、その値が任意の整数である。
【0317】
新しいマッチングブロックに対応する予測モードを、強化型時間動きベクトル予測モード候補として、時間モード候補リストに追加する。
【0318】
説明すべきことは、offset1とoffset2は複数のセットの値を取り、複数の新しいマッチングブロックを得ることができ、新しいマッチングブロックの数を限定しない。
【0319】
新しいマッチングブロックが複数存在する場合、新しいマッチングブロックに対応する予測モードを、時間モード候補リストに追加する順序は限定されない。
【0320】
新しいマッチングブロックが複数存在する場合、新しいマッチングブロックの一部に対応する予測モードを、強化型時間動きベクトル予測モード候補として時間モード候補リストに追加してもよい。
【0321】
四、マッチングブロックの動き情報に基づいて、カレントブロック内のすべてのサブブロックの動き情報を取得し、カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
【0322】
例示的に、符号化デバイスにとって、当該マッチングブロックは、時間モード候補リストにおける任意の強化型時間動きベクトル予測モード候補に対応するマッチングブロック(本発明では、ターゲットマッチング候補と呼ぶ)を含む。
【0323】
復号化デバイスにとって、当該マッチングブロックは、強化型時間動きベクトル予測モードに対応するマッチングブロック(すなわち、前記ターゲットマッチングブロック)を含む。
【0324】
実施例13
マッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与える。
【0325】
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0326】
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0327】
カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
【0328】
実施例14
マッチングブロック内の任意のサブブロックについて、サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与える。
【0329】
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0330】
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0331】
当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、カレントブロックの対応する位置のサブブロックに与える。
【0332】
第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0333】
第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0334】
第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与える。
【0335】
カレントブロック内の各サブブロックの動き情報に基づいて、カレントブロック内の各サブブロックの動き補償を行う。
【0336】
強化型時間動きベクトル予測技術が作動するかどうかの制御について、以下に説明する。
【0337】
実施例15
ETMVPを作動させるかどうかを制御するために、SPSレベルのシンタックスを追加することができる。
【0338】
例として、u(n),u(v)またはue(n),ue(v)を符号化に用いることができ、u(n)は、連続したnビット(bit)の読み出しを表し、復号化された後の符号なし数であり、ue(n)は符号なし指数Golombエントロピー符号化であることを表している。記述子の括弧内のパラメータがnである場合は、該当シンタックス要素が固定長符号化であることを示し、パラメータがvである場合は、シンタックス要素が可変長符号化であることを示す。選択された符号化方式は限定されない。
【0339】
一例として、u(1)を符号化に使用し、ETMVPを作動させるかどうかの制御を1ビット(bit)で実現する。
【0340】
以上は本発明が提供する方法についての説明である。本発明が提供する装置について、以下に説明する。
【0341】
図9を参照し、
図9は本発明の実施例で提供される復号化装置の構造の模式図である。当該装置は以下を含み得る:
カレントブロックに強化型時間動きベクトル予測技術が作動していると判断された場合、カレントブロックのビットストリームから強化型時間動きベクトル予測モードのインデックス情報を解析するための復号化ユニット910と、
前記カレントブロックのマッチングブロックを決定するための第1決定ユニット920と、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて、時間モード候補リストを構築するための構築ユニット930と、
前記インデックス情報に基づいて、前記時間モード候補リストから強化型時間動きベクトル予測モードを決定するための第2決定ユニット940と、
決定された強化型時間動きベクトル予測モードに基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うための予測ユニット950とを備え、
ここで、前記予測ユニット950は、さらに、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられ、
強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示すために、シーケンスパラメータセットレベルシンタックスを使用し、
前記第1決定920ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向である。
【0342】
1つの可能な実施例において、前記構築ユニット930は、1つまたは複数のオフセット量対にそれぞれ基づいて、前記マッチングブロックを水平及び垂直方向にオフセットし、1つまたは複数の新しいマッチングブロックを取得することに用いられる。
【0343】
1つの可能な実施例において、前記構築ユニット930は、前記マッチングブロックをClipするために用いられる。
【0344】
1つの可能な実施例において、前記構築ユニット930は、
第13サブブロックと第14サブブロックの動き情報を比較し、第15サブブロックと第16サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを水平右方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第17サブブロックと第18サブブロックの動き情報を比較し、第19サブブロックと第20サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを水平左方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第13サブブロックと第21サブブロックの動き情報を比較し、第17サブブロックと第22サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを垂直下方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第15サブブロックと第23サブブロックの動き情報を比較し、第19サブブロックと第24サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを垂直上方向に1単位オフセットして新しいマッチングブロックを取得することに用いられ、
ただし、第13サブブロックは、前記Clip後のマッチングブロックの左上隅のサブブロックであり、第14サブブロックは、前記Clip後のマッチングブロックの直右側の一番上の隣接サブブロックであり、第15サブブロックは、前記Clip後のマッチングブロックの左下隅のサブブロックであり、第16サブブロックは、前記Clip後のマッチングブロックの直右側の一番下の隣接サブブロックであり、第17サブブロックは、前記Clip後のマッチングブロックの右上隅のサブブロックであり、第18サブブロックは、前記Clip後のマッチングブロックの直左側の一番上の隣接サブブロックであり、第19のサブブロックは、前記Clip後のマッチングブロックの右下隅のサブブロックであり、第20サブブロックは、前記Clip後のマッチングブロックの直左側の一番下の隣接サブブロックであり、第21サブブロックは、前記Clip後のマッチングブロックの直下側の一番左の隣接サブブロックであり、第22サブブロックは、前記Clip後のマッチングブロックの直下側の一番右の隣接サブブロックであり、第23サブブロックは、前記Clip後のマッチングブロックの直上側の一番左の隣接サブブロックであり、第24サブブロックは、前記Clip後のマッチングブロックの直上側の一番右の隣接サブブロックであり、1単位は、サブブロックのサイズである。
【0345】
1つの可能な実施例において、前記構築ユニット930は、
【0346】
少なくとも1つの新しいマッチングブロックが存在する場合、オフセット前のマッチングブロックに対応する予測モードと、オフセットによって得られた新しいマッチングブロックに対応する予測モードとを、強化型時間動きベクトル予測モード候補として決定することに用いられる。
【0347】
1つの可能な実施例において、前記予測ユニット950は、さらに、
当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、前記第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、前記第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、前記第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与えることに用いられる。
【0348】
1つの可能な実施例において、シーケンスパラメータセットレベルシンタックスを用いて、強化型時間動きベクトル予測技術がカレントブロックに作動しているかどうかを示す時、前記復号化ユニット910は、
前記カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動している場合、前記カレントブロックに強化型時間動きベクトル予測技術が作動していると判断することと、
前記カレントブロックが属する画像シーケンスに強化型時間動きベクトル予測技術が作動していない場合、前記カレントブロックに強化型時間動きベクトル予測技術が作動していないと判断することとに用いられる。
【0349】
1つの可能な実施例において、上記復号化装置は、ビデオデコーダであってもよい。
【0350】
図10を参照し、本発明の実施例に示される復号化デバイスのハードウェア構造の模式図である。当該復号化デバイスは、プロセッサ1001と、機械実行可能な命令が格納された機械可読記憶媒体1002とを備えてもよく、プロセッサ1001と機械可読記憶媒体1002は、システムバス1003を介して通信することができる。さらに、機械可読記憶媒体1002の復号化制御ロジックに対応する機械実行可能命令を読み出して実行することにより、プロセッサ1001は、上述した復号化方法を実行することができる。
【0351】
本発明で言及される機械可読記憶媒体1002は、実行可能な命令、データなどの情報を含むかまたは格納することができる任意の電子、磁気、光学、または他の物理記憶デバイスであってもよい。例えば、機械可読記憶媒体は、RAM(Radom Access Memory)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えば、ハードディスクドライブ)、ソリッドステートドライブ、任意のタイプの記憶ディスク(例えば、光ディスク、dvdなど)、または類似の記憶媒体であってもよく、またはこれらの組み合わせであってもよい。
【0352】
いくつかの実施例において、機械可読記憶媒体内に格納された機械実行可能命令を有する機械可読記憶媒体も提供され、前記機械実行可能命令は、プロセッサによって実行されると、上述の復号化方法が実施される。例えば、前記機械可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などであってもよい。
【0353】
図11を参照し、
図11は本発明の実施例で提供される符号化装置の構造の模式図である。当該装置は以下を含み得る:
前記カレントブロックのマッチングブロックを決定するための第1決定ユニット1110と、
前記マッチングブロック、及び前記マッチングブロックをオフセットして得られた新しいマッチングブロックに基づいて、強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて時間モード候補リストを構築するための構築ユニット1120と
前記時間モード候補リスト内の各強化型時間動きベクトル予測モード候補をトラバースし、任意の強化型時間動きベクトル予測モード候補について、当該強化型時間動きベクトル予測モード候補に基づいて、前記カレントブロック内の各サブブロックの動き情報を決定し、前記カレントブロック内の各サブブロックの動き情報に基づいて、前記カレントブロック内の各サブブロックの動き補償を行うための予測ユニット1130と、
各強化型時間動きベクトル予測モード候補に対応するレート歪みコストに基づいて、最小のレート歪みコストを有する強化型時間動きベクトル予測モード候補を、前記カレントブロックの強化型時間動きベクトル予測モードとして決定する第2決定ユニット1140と、
前記カレントブロックのビットストリームにインデックス情報を付加させる符号化ユニットであって、前記インデックス情報は、前記決定された強化型時間動きベクトル予測モードのモードインデックスを示すために使用される符号化ユニット1150とを備え、
前記予測ユニット1130はさらに、
ターゲットマッチングブロック内の任意のサブブロックについて、当該サブブロックの前方動き情報及び後方動き情報の両方が利用可能な場合、当該サブブロックの前方動き情報及び後方動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、当該サブブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報を前記カレントブロックの対応する位置のサブブロックに与え、または、
当該サブブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、当該サブブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報を前記カレントブロックの対応する位置のサブブロックに与えるために用いられる予測ユニット1130と、
前記第1決定ユニットは、前記カレントブロックのマッチングブロックを決定する際に、少なくともターゲット参照フレームインデックス、ターゲット参照方向、および前記カレントブロックの位置に従って、カレントブロックのマッチングブロックを決定し、ここで、前記ターゲット参照フレームインデックスは、List0における最初のフレームのインデックスであり、前記ターゲット参照方向はList0方向であり、または、前記ターゲット参照フレームインデックスはList1の最初のフレームのインデックスであり、前記ターゲット参照方向はList1方向である。
【0354】
1つの可能な実施例において、前記構築ユニット1120は、前記マッチングブロックをClipするために用いられる。
【0355】
1つの可能な実施例において、前記構築ユニット1120は、
第13サブブロックと第14サブブロックの動き情報を比較し、第15サブブロックと第16サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを水平右方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第17サブブロックと第18サブブロックの動き情報を比較し、第19サブブロックと第20サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを水平左方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第13サブブロックと第21サブブロックの動き情報を比較し、第17サブブロックと第22サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを垂直下方向に1単位オフセットして新しいマッチングブロックを取得すること、または
第15サブブロックと第23サブブロックの動き情報を比較し、第19サブブロックと第24サブブロックの動き情報を比較し、2つの比較結果の少なくとも1つが異なる動き情報となった場合、前記Clip後のマッチングブロックを垂直上方向に1単位オフセットして新しいマッチングブロックを取得することに用いられ、
ただし、第13サブブロックは、前記Clip後のマッチングブロックの左上隅のサブブロックであり、第14サブブロックは、前記Clip後のマッチングブロックの直右側の一番上の隣接サブブロックであり、第15サブブロックは、前記Clip後のマッチングブロックの左下隅のサブブロックであり、第16サブブロックは、前記Clip後のマッチングブロックの直右側の一番下の隣接サブブロックであり、第17サブブロックは、前記Clip後のマッチングブロックの右上隅のサブブロックであり、第18サブブロックは、前記Clip後のマッチングブロックの直左側の一番上の隣接サブブロックであり、第19のサブブロックは、前記Clip後のマッチングブロックの右下隅のサブブロックであり、第20サブブロックは、前記Clip後のマッチングブロックの直左側の一番下の隣接サブブロックであり、第21サブブロックは、前記Clip後のマッチングブロックの直下側の一番左の隣接サブブロックであり、第22サブブロックは、前記Clip後のマッチングブロックの直下側の一番右の隣接サブブロックであり、第23サブブロックは、前記Clip後のマッチングブロックの直上側の一番左の隣接サブブロックであり、第24サブブロックは、前記Clip後のマッチングブロックの直上側の一番右の隣接サブブロックであり、1単位は、サブブロックのサイズであることを特徴とする。
【0356】
1つの可能な実施例において、前記構築ユニット1120は、
【0357】
少なくとも1つの新しいマッチングブロックが存在する場合、オフセット前のマッチングブロックに対応する予測モードと、オフセットによって得られた新しいマッチングブロックに対応する予測モードとを、強化型時間動きベクトル予測モード候補として決定することに用いられる。
【0358】
1つの可能な実施例において、前記予測ユニット1130は、
当該サブブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、前記カレントブロックの第2周辺ブロックの前方動き情報及び後方動き情報の両方が利用可能であるとき、前記第2周辺ブロックの前方動き情報及び後方動き情報をそれぞれ、List0の最初のフレームおよびList1の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報及び後方動き情報をそれぞれ、前記カレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの前方動き情報が利用可能であるが、後方動き情報が利用可能でない場合、前記第2周辺ブロックの前方動き情報を、List0の最初のフレームを指すようにスケーリングし、スケーリングされた前方動き情報をカレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの後方動き情報が利用可能であるが、前方動き情報が利用可能でない場合、前記第2周辺ブロックの後方動き情報を、List1の最初のフレームを指すようにスケーリングし、スケーリングされた後方動き情報をカレントブロックの対応する位置のサブブロックに与え、前記第2周辺ブロックの前方動き情報及び後方動き情報がいずれも利用できない場合、ゼロ動き情報をカレントブロックの対応する位置のサブブロックに与えることに用いられる。
【0359】
1つの可能な実施例において、前記構築ユニット1120は、前記カレントブロックに強化型時間動きベクトル予測技術が作動している場合に、前記マッチングブロック及び前記マッチングブロックをオフセットすることによって得られた新しいマッチングブロックに基づいて強化型時間動きベクトル予測モード候補を決定し、前記強化型時間動きベクトル予測モード候補に基づいて第1時間モード候補リストを構築することに用いられる。
【0360】
1つの可能な実施例において、シーケンスパラメータセットレベルシンタックスを用いて、前記カレントブロックに強化型時間動きベクトル予測技術が作動するかどうかを制御する。
【0361】
1つの可能な実施例において、上記符号化装置は、ビデオエンコーダであってもよい。
【0362】
図12を参照し、本発明の例示的な実施例に示される符号化デバイスのハードウェア構造の模式図である。当該符号化デバイスは、プロセッサ1201と、機械実行可能な命令が格納された機械可読記憶媒体1202を備えてもよく、プロセッサ1201と機械可読記憶媒体1202は、システムバス1203を介して通信することができる。さらに、機械可読記憶媒体1202の符号化制御ロジックに対応する機械実行可能命令を読み出して実行することにより、プロセッサ1201は、上述した符号化方法を実行することができる。
【0363】
本発明で言及される機械可読記憶媒体1202は、実行可能な命令、データなどの情報を含むかまたは格納することができる任意の電子、磁気、光学、または他の物理記憶デバイスであってもよい。例えば、機械可読記憶媒体は、RAM(Radom Access Memory)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えば、ハードディスクドライブ)、ソリッドステートドライブ、任意のタイプの記憶ディスク(例えば、CD-ROM、dvdなど)、または類似の記憶媒体、またはこれらの組み合わせであってもよい。
【0364】
いくつかの実施例において、機械可読記憶媒体内に格納された機械実行可能命令を有する機械可読記憶媒体も提供され、前記機械実行可能命令は、プロセッサによって実行されると、上述の符号化方法を実施する。例えば、前記機械可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などであってもよい。
【0365】
いくつかの実施例において、さらに、上記いずれかの実施例における符号化装置と、上記いずれかの実施例における復号化装置とを備えるカメラ装置を提供する。
【0366】
説明すべきことは、本発明では、「第1」や「第2」のような関係用語は、1つの実体や操作をもう1つの実体や操作と区別するためにのみ使用され、それらの実体や操作の間の実際の関係や順序を必ずしも要求したり示唆したりするものではない。さらに、用語「含む」、「備える」またはそれらの派生語は、一連の要素を含むプロセス、方法、物品またはデバイスが、そのような要素を含むだけでなく、明示的に記載されていない他の要素を含み、またはさらにプロセス、方法、物品またはデバイスの固有の要素を含むように、非排他的な包含を伝えることを意図している。それ以上の限定しない場合、「1つの...を含む」によって限定された要素は、前記要素を含むプロセス、方法、物品、またはデバイスに別の同じ要素が存在することを除外しない。
【0367】
上記は本発明の好ましい実施例に過ぎず、本発明を限定するものではない。本発明の精神及び原理から逸脱することなく行われる任意の修正、等価交換、改良などは、本発明の保護範囲に含まれるものとする。
【符号の説明】
【0368】
910 復号化ユニット
920 第1決定ユニット
930 構築ユニット
940 第2決定ユニット
950 予測ユニット
1001 プロセッサ
1002 機械可読記憶媒体
1003 システムバス
1110 第1決定ユニット
1120 構築ユニット
1130 予測ユニット
1140 第2決定ユニット
1150 符号化ユニット
1201 プロセッサ
1202 機械可読記憶媒体
1203 システムバス