(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6863943
(24)【登録日】2021年4月5日
(45)【発行日】2021年4月21日
(54)【発明の名称】動きベクトル予測のための動きベクトルリストを作成する方法及び装置
(51)【国際特許分類】
H04N 19/52 20140101AFI20210412BHJP
【FI】
H04N19/52
【請求項の数】16
【外国語出願】
【全頁数】20
(21)【出願番号】特願2018-188780(P2018-188780)
(22)【出願日】2018年10月4日
(62)【分割の表示】特願2016-249359(P2016-249359)の分割
【原出願日】2013年4月7日
(65)【公開番号】特開2019-33515(P2019-33515A)
(43)【公開日】2019年2月28日
【審査請求日】2018年10月24日
(31)【優先権主張番号】201210377579.4
(32)【優先日】2012年10月8日
(33)【優先権主張国】CN
【前置審査】
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】林 永兵
【審査官】
岩井 健二
(56)【参考文献】
【文献】
国際公開第2013/067938(WO,A1)
【文献】
国際公開第2012/177644(WO,A1)
【文献】
Oguz Bici et al.,Non-CE13: Simplification of merge mode,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,7th Meeting: Geneva, CH,2011年11月,JCTVC-G593_r2,pp.1-13
【文献】
Yongjoon Jeon et al.,arallel Merge Candidate Derivation for Inter_NxN partition type,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,8th Meeting: San Jose, CA, USA,2012年 1月,JCTVC-H0091,pp.1-4
【文献】
Oguz Bici et al.,CE9: Results of SP experiments on simplification of merge process,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,8th Meeting: San Jose, CA, USA,2012年 1月,JCTVC-H0252,pp.1-7
【文献】
Jian-Liang Lin et al.,Non-CE9: CU-based parallel inter mode,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,8th Meeting: San Jose, CA, USA,2012年 1月,JCTVC-H0279,pp.1-3
【文献】
Qin Yuc et al.,Parallel AMVP candidate list construction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,9th Meeting: Geneva, CH,2012年 5月,JCTVC-I0036,pp.1-19
【文献】
Yongbing Lin et al.,Removal of dependency between multiple PUs in a CU for parallel merging candidate list construction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,11th Meeting: Shanghai, CN,2012年10月,JCTVC-K0197,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
動きベクトル予測のための動きベクトルリストを作成する方法であって、
現行コーディングユニットが、左側と右側において、第1予測ブロックPU1と第2予測ブロックPU2へと分割されており、
現行予測ブロックは前記右側における前記第2予測ブロックPU2であり、
前記現行予測ブロックの空間的隣接ブロックは、
前記現行予測ブロックの左下側に位置している空間的隣接ブロックA0、
前記現行予測ブロックの左側に位置している空間的隣接ブロックA1、
前記現行予測ブロックの右上側に位置している空間的隣接ブロックB0、
前記現行予測ブロックの上側に位置している空間的隣接ブロックB1、および、
前記現行予測ブロックの左上側に位置している空間的隣接ブロックB2、
を含み、
前記空間的隣接ブロックA1は、前記現行コーディングユニットの内側に配置されており、
前記方法は、
a.前記空間的隣接ブロックB1と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の動きベクトルを追加するステップと、
b.前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加するステップであり、前記空間的隣接ブロックB0の前記動きベクトルは、前記空間的隣接ブロックB1の前記動きベクトルとは異なる、ステップと、
c.前記空間的隣接ブロックA0と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックA0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加するステップと、
d.前記空間的隣接ブロックB2と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックB1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加するステップと、
e.一時的動きベクトル予測(TMVP)が利用可能な場合に、前記動きベクトルリストに対して前記TMVPを追加するステップ、
を含み、
前記現行予測ブロックは、前記動きベクトルリストを使用して予測され、
前記第1予測ブロックPU1と前記第2予測ブロックPU2の予測ブロックの動きベクトルリストは、並行して作成される、
方法。
【請求項2】
前記空間的隣接ブロックB1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の動きベクトルを追加する前記ステップは、
前記空間的隣接ブロックB1の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックB1が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の前記動きベクトルを直接的に追加するステップ、
を含む、請求項1に記載の方法。
【請求項3】
前記空間的隣接ブロックA0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加するステップは、
前記空間的隣接ブロックA0の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックA0が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の前記動きベクトルを直接的に追加するステップ、
を含む、請求項1または2に記載の方法。
【請求項4】
前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックB1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加する前記ステップは、
前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、
前記空間的隣接ブロックB2が動きベクトルを含んでおり、かつ、前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルとは異なる場合にだけ、
前記動きベクトルリストに対して前記空間的隣接ブロックB2の前記動きベクトルを直接的に追加するステップ、
を含む、請求項1乃至3いずれか一項に記載の方法。
【請求項5】
動きベクトル予測のための動きベクトルリストを作成する装置であって、
現行コーディングユニットが、左側と右側において、第1予測ブロックPU1と第2予測ブロックPU2へと分割されており、
現行予測ブロックは前記右側における前記第2予測ブロックPU2であり、
前記現行予測ブロックの空間的隣接ブロックは、
前記現行予測ブロックの左下側に位置している空間的隣接ブロックA0、
前記現行予測ブロックの左側に位置している空間的隣接ブロックA1、
前記現行予測ブロックの右上側に位置している空間的隣接ブロックB0、
前記現行予測ブロックの上側に位置している空間的隣接ブロックB1、および、
前記現行予測ブロックの左上側に位置している空間的隣接ブロックB2、
を含み、
前記空間的隣接ブロックA1は、前記現行コーディングユニットの内側に配置されており、
前記装置は、
インストラクションを含んでいるメモリ、および、該メモリと通信するプロセッサを含み、
前記インストラクションが実行されると前記プロセッサは、
a.前記空間的隣接ブロックB1と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の動きベクトルを追加し、
b.前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加し、かつ、前記空間的隣接ブロックB0の前記動きベクトルは、前記空間的隣接ブロックB1の前記動きベクトルとは異なっており、
c.前記空間的隣接ブロックA0と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックA0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加し、
d.前記空間的隣接ブロックB2と前記空間的隣接ブロックA1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックB1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加し、
e.一時的動きベクトル予測(TMVP)が利用可能な場合に、前記動きベクトルリストに対して前記TMVPを追加し、
前記現行予測ブロックは、前記動きベクトルリストを使用して予測され、
前記第1予測ブロックPU1と前記第2予測ブロックPU2の予測ブロックの動きベクトルリストは、並行して作成される、
装置。
【請求項6】
前記空間的隣接ブロックB1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の動きベクトルを追加するために、
前記プロセッサは、
前記空間的隣接ブロックB1の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックB1が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB1の前記動きベクトルを直接的に追加する、
ように、構成されている、
請求項5に記載の装置。
【請求項7】
前記空間的隣接ブロックA0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加するために、
前記プロセッサは、
前記空間的隣接ブロックA0の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックA0が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の前記動きベクトルを直接的に追加する、
ように、構成されている、
請求項5または6に記載の装置。
【請求項8】
前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックB1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加するために、
前記プロセッサは、
前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルと同一であるか否かを判断することなく、かつ、
前記空間的隣接ブロックB2が動きベクトルを含んでおり、かつ、前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルとは異なる場合にだけ、
前記動きベクトルリストに対して前記空間的隣接ブロックB2の前記動きベクトルを直接的に追加する、
ように、構成されている、
請求項5乃至7いずれか一項に記載の装置。
【請求項9】
動きベクトル予測のための動きベクトルリストを作成する方法であって、
現行コーディングユニットが、上側と下側において、第1予測ブロックPU1と第2予測ブロックPU2へと分割されており、
現行予測ブロックは前記下側における前記第2予測ブロックPU2であり、
前記現行予測ブロックの空間的隣接ブロックは、
前記現行予測ブロックの左下側に位置している空間的隣接ブロックA0、
前記現行予測ブロックの左側に位置している空間的隣接ブロックA1、
前記現行予測ブロックの右上側に位置している空間的隣接ブロックB0、
前記現行予測ブロックの上側に位置している空間的隣接ブロックB1、および、
前記現行予測ブロックの左上側に位置している空間的隣接ブロックB2、
を含み、
前記空間的隣接ブロックB1は、前記現行コーディングユニットの内側に配置されており、
前記方法は、
a.前記空間的隣接ブロックA1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA1の動きベクトルを追加するステップと、
b.前記空間的隣接ブロックB0と前記空間的隣接ブロックB1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加するステップと、
c.前記空間的隣接ブロックA0が利用可能であり、かつ、前記空間的隣接ブロックA0の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加するステップと、
d.前記空間的隣接ブロックB2と前記空間的隣接ブロックB1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加するステップと、
e.一時的動きベクトル予測(TMVP)が利用可能な場合に、前記動きベクトルリストに対して前記TMVPを追加するステップ、
を含み、
前記現行予測ブロックは、前記動きベクトルリストを使用して予測され、
前記第1予測ブロックPU1と前記第2予測ブロックPU2の予測ブロックの動きベクトルリストは、並行して作成される、
方法。
【請求項10】
前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加する前記ステップは、
前記空間的隣接ブロックB0の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックB0が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の前記動きベクトルを直接的に追加するステップ、
を含む、請求項9に記載の方法。
【請求項11】
前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加する前記ステップは、
前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルと同一であるか否かを判断することなく、かつ、
前記空間的隣接ブロックB2が動きベクトルを含んでおり、かつ、前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルとは異なる場合にだけ、
前記動きベクトルリストに対して前記空間的隣接ブロックB2の前記動きベクトルを直接的に追加するステップ、
を含む、請求項9または10に記載の方法。
【請求項12】
動きベクトル予測のための動きベクトルリストを作成する装置であって、
現行コーディングユニットが、上側と下側において、第1予測ブロックPU1と第2予測ブロックPU2へと分割されており、
現行予測ブロックは前記下側における前記第2予測ブロックPU2であり、
前記現行予測ブロックの空間的隣接ブロックは、
前記現行予測ブロックの左下側に位置している空間的隣接ブロックA0、
前記現行予測ブロックの左側に位置している空間的隣接ブロックA1、
前記現行予測ブロックの右上側に位置している空間的隣接ブロックB0、
前記現行予測ブロックの上側に位置している空間的隣接ブロックB1、および、
前記現行予測ブロックの左上側に位置している空間的隣接ブロックB2、
を含み、
前記空間的隣接ブロックB1は、前記現行コーディングユニットの内側に配置されており、
前記装置は、
インストラクションを含んでいるメモリストレージ、および、該メモリと通信するプロセッサを含み、
前記インストラクションが実行されると前記プロセッサは、
a.前記空間的隣接ブロックA1が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA1の動きベクトルを追加し、
b.前記空間的隣接ブロックB0と前記空間的隣接ブロックB1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加し、
c.前記空間的隣接ブロックA0が利用可能であり、かつ、前記空間的隣接ブロックA0の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックA0の動きベクトルを追加し、
d.前記空間的隣接ブロックB2と前記空間的隣接ブロックB1との間で剪定プロセスが実施されることなく、前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加し、
e.一時的動きベクトル予測(TMVP)が利用可能な場合に、前記動きベクトルリストに対して前記TMVPを追加し、
前記現行予測ブロックは、前記動きベクトルリストを使用して予測され、
前記第1予測ブロックPU1と前記第2予測ブロックPU2の予測ブロックの動きベクトルリストは、並行して作成される、
装置。
【請求項13】
前記空間的隣接ブロックB0が利用可能な場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の動きベクトルを追加するために、
前記プロセッサは、
前記空間的隣接ブロックB0の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルと同一であるか否かを判断することなく、かつ、前記空間的隣接ブロックB0が動きベクトルを含んでいる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB0の前記動きベクトルを直接的に追加する、
ように、構成されている、
請求項12に記載の装置。
【請求項14】
前記空間的隣接ブロックB2が利用可能であり、かつ、前記空間的隣接ブロックB2の前記動きベクトルは前記空間的隣接ブロックA1の前記動きベクトルとは異なる場合にだけ、前記動きベクトルリストに対して前記空間的隣接ブロックB2の動きベクトルを追加するために、
前記プロセッサは、
前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックB1の動きベクトルと同一であるか否かを判断することなく、かつ、
前記空間的隣接ブロックB2が動きベクトルを含んでおり、かつ、前記空間的隣接ブロックB2の前記動きベクトルが、前記空間的隣接ブロックA1の動きベクトルとは異なる場合にだけ、
前記動きベクトルリストに対して前記空間的隣接ブロックB2の前記動きベクトルを直接的に追加する、
ように、構成されている、
請求項12または13に記載の装置。
【請求項15】
複数のインストラクションを含むコンピュータプログラムであって、実行されると請求項1乃至4および請求項9乃至11のうちいずれか一項に記載の方法をコンピュータに実施させる、コンピュータプログラム。
【請求項16】
請求項15に記載のコンピュータプログラムを記憶した、コンピュータで読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオコーディングの分野に関する。より特定的には、動きベクトル予測のための動きベクトルリストを作成する方法及び装置に関する。
【0002】
本特許出願は、2012年10月8日出願の中国特許出願第20121077579.4号に係る優先権の利益を主張するものであり、ここにおいて参照として包含されている。タイトルは、「METHOD AND APPARATUS FOR BUILDING MOTION VECTOR LIST FOR MOTION VECTOR PREDICTION」である。
【背景技術】
【0003】
HEVC(High Efficiency Video Coding:高効率ビデオコーディング規格)におけるインターフレーム予測(interframe prediction)技術は、従来のMCP(Motion Compensated Prediction:動き補償予測)方法を採用している。動きベクトル予測のために、HEVCは、複数の動きベクトル補償方法を採用しており、動きベクトル予測の精度が改善され、それにより、コード圧縮パフォーマンスが改善されている。
【0004】
HEVCインターフレーム予測モードは、これらに限定されるわけではないが、マージモード(Merge mode)、スキップモード(Skip mode)、等を含んでおり、これらの全ては、インターフレーム予測を実行するために複数の動きベクトル競合(motion vector competition)を使用している。動きベクトル予測を実行する際には動きベクトルリストが使用される。マージモード及びスキップモードに対して、動きベクトルリストは、最大で4つの空間的動きベクトル予測と1つの一時的動きベクトル予測を含むことが許されており、マージモードとスキップモードは1つの動きベクトルリストを共有する。コーダー(coder)は、現行PU(Prediction Unit:予測ユニット<以降では、予測ブロックと呼ばれ得るもの>)の動きベクトル予測として、動きベクトルリストから最善の動きベクトル予測を選択する。
【0005】
動きベクトルリストを作成する方法は、以下のものを含んでよい。
【0006】
図1に示すように、現行PUの空間的隣接ブロック(neighboring block)は、以下のものを含んでよい。隣接ブロックA0(左下の参照ブロックであり、現行PUの左下コーナー位置に対応している)、隣接ブロックA1(左の参照ブロックであり、現行PUの左下コーナー位置に対応している)、隣接ブロックB0(右上の参照ブロックであり、現行PUの右上コーナー位置に対応している)、隣接ブロックB1(上の参照ブロックであり、現行PUの右上コーナー位置に対応している)、および、隣接ブロックB2(左上の参照ブロックであり、現行PUの左上コーナー位置に対応している)である。TMVP(Temporal Motion Vector Predictor:一時的動きベクトル予測)は、時間ドメインにおいて現行PUに対応する動きベクトルである。
【0007】
最初に、動きベクトルが、隣接ブロックと、隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、隣接ブロックB2、そして、TMVPの順序におけるTMVPから連続的に取得される。次に、取得された動きベクトルは、HEVCにおける規則に従って動きベクトルリストに追加される。所定の動きベクトルリスト作成プロセスは、当業者によく知られたものであり、その詳細は、再度ここにおいて説明されない。
【0008】
さらに、現行CU(Coding Unit:コーディングユニット<以降では、コーディングユニットと呼ばれ得るもの>)は、少なくとも2つのPUを含んでよく、その少なくとも2つのPUの動きベクトルリストが連続的に作成される。
【0009】
上記の動きベクトルリスト作成プロセスを実施している最中に、従来技術が少なくとも以下の問題を有していることがわかる。つまり、現行CUが少なくとも2つのPUを含んでおり、その少なくとも2つのPUの動きベクトルリストが連続的に作成されるとすれば、同一のCUにおける少なくとも2つの動きベクトルリストの作成速度は遅くなり、それにより、並行処理の能力が減少してしまう。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の実施例は、動きベクトル予測のための動きベクトル作成する方法又は装置を提供する。それにより、同一のCUにおける少なくとも2つのPUの動きベクトルリストを連続的に作成することの問題を解決し、並行処理の能力を改善する。
【課題を解決するための手段】
【0011】
上記の課題を達成するために、本発明に係る実施例においては、以降の技術的ソリューションが採用されている。
【0012】
一つの実施態様において、動きベクトル予測のための動きベクトルリストを作成する方法が提供される。本方法は、:現行予測ブロックの空間的隣接ブロックを取得するステップであり、前記現行予測ブロックは現行コーディングユニットの内側に位置しているステップと;前記現行コーディングユニットの区分方法に従って、前記現行予測ブロックの利用可能な隣接ブロックを決定するステップであり、前記利用可能な隣接ブロックは前記コーディングユニットの外側に位置しているステップと;前記利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得するステップと、取得した前記動きベクトルを前記動きベクトルリストに追加するステップと、を含む、ことを特徴とする方法である。
【0013】
別の実施態様において、動きベクトル予測のための動きベクトルリストを作成する装置が提供される。本装置は:現行予測ブロックの空間的隣接ブロックを取得するレシーバーであり、前記現行予測ブロックは現行コーディングユニットの内側に位置しているレシーバーと;前記現行コーディングユニットの区分方法に従って、前記現行予測ブロックの利用可能な隣接ブロックを決定するように構成されたプロセッサであり、前記利用可能な隣接ブロックは前記コーディングユニットの外側に位置しているプロセッサと;を含み、前記プロセッサは、前記利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得し、かつ、取得した前記動きベクトルを前記動きベクトルリストに追加するように構成されている、ことを特徴とする装置である。
【0014】
本発明の実施例において提供される動きベクトル予測のための動きベクトルリストを作成する方法及び装置は、上記のソリューションを通じて、予測ブロックの動きベクトルリストを作成する場合、現行予測ブロックの空間的隣接ブロックが最初に取得される。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。そして、現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックが決定される。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。そして、利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルが取得され、取得された動きベクトルが動きベクトルリストに追加される。このように、予測ブロックの動きベクトルリストが作成される場合、現行コーディングユニットの内側に位置している隣接ブロックは考慮されない。コーディングユニットが少なくとも2つの予測ブロックを含んでいる場合、少なくとも2つの予測ブロックの動きベクトルリストは並行して作成される。このことは、同一のコーディングユニットにおける少なくとも2つの動きベクトルリストの作成速度を増加させ、並行処理の能力を改善する。
【図面の簡単な説明】
【0015】
本発明の実施例に係る技術的ソリューションをより明確に説明するように、実施例または従来技術を記述するために必要な添付の図面について以降に簡単に紹介する。明らかに、以降の説明において添付の図面は、本発明のいくつかの実施例を単に示すものであって、当業者であれば、創造的な努力をすることなく、添付の図面から他の図面でさえ引き出すことができる。
【
図1】
図1は、本発明の実施例に従って、コーディングユニットCU、PU、および、隣接ブロックの模式的な構造ダイヤグラムを示している。
【
図2a】
図2aは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2b】
図2bは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2c】
図2cは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2d】
図2dは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2e】
図2eは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2f】
図2fは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図2g】
図2gは、本発明の実施例に従って、異なるパーティション方法を用いるコーディングユニットCUの模式的な構造ダイヤグラムを示している。
【
図3】
図3は、本発明の実施例に従って、動きベクトル予測のための動きベクトル作成する方法のフローチャートを示している。
【
図4】
図4は、本発明の実施例に従って、動きベクトル予測のための動きベクトル作成する装置の方法の模式的な構造ダイヤグラムを示している。
【発明を実施するための形態】
【0016】
以降に、本発明の実施例において添付の実施例に関して、本発明の実施例における技術的ソリューションを明確に説明する。明らかに、説明される実施例は、本発明の全てではなく、むしろ単なる部分である。創造的な努力をすることなく本発明の実施例に基づいて当業者が獲得した全ての他の実施は、本発明の範囲内にあるものである。
【0017】
従来技術において、CUは、少なくとも2つのPUを含んでよく、その少なくとも2つのPU動きベクトルリストは連続的に作成されてよい。つまり、現行PUに対して動きベクトルリストが作成された後で、次のPUに対する動きベクトルリストの作成が開始される。
【0018】
所定のプロセスは、以下のものを含んでよい。
【0019】
図2aから
図2gに示すように、CU(図における実線のフレーム)は、さらに、複数のPUに区分されてよい。HEVCにおいて、CUは7つに区分されている。例えば、
図2aから
図2cに示す区分方法において、現行CUは、左側及び右側にある2つのPU(PU1とPU2)に区分されている。別の実施例として、
図2dに示す区分方法において、現行CUは、4つのPU(PU1、PU2、PU3、および、PU4)に区分されておいる。他のタイプについて、ここでは説明されない。
【0020】
例として
図2に示す区分を取り上げると、PU2の空間的参照ブロックA1がPU1の内側に配置されているので、PU1のコーディングが完了した後にだけ、PU2の動きベクトルリストを作成するように開始され得る。PU1とPU2の動きベクトルリストは、連続的に作成されるのである。特に、PU1の動きベクトルリストが上述の方法に従って最初に作成されて、次に、PU2の動きベクトルリストが上述の方法に従って作成される。
【0021】
この方法において、少なくとも2つのPUに係る動きベクトルリストの作成速度は遅く、圧縮コーディングのパフォーマンスは低下する。
【0022】
上記の少なくとも2つのPUに係る動きベクトルリストの作成速度が遅くて圧縮コーディングのパフォーマンスは低下するという問題を解決するために、動きベクトル予測のための動きベクトルリスト作成方法が実施例において提供される。
図3に示すように、本方法は、以下のことを含んでいる。
【0023】
ステップ301:現行予測ブロックの空間的隣接ブロックを取得する。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。
【0024】
ステップ302:現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックを決定する。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。
【0025】
ステップ303:利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得して、取得した動きベクトルを動きベクトルリストに追加する。
【0026】
上記のソリューションを通じて、予測ブロックの動きベクトルリストを作成する場合、現行予測ブロックの空間的隣接ブロックが最初に取得される。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。そして、現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックが決定される。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。そして、利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルが取得され、取得された動きベクトルが動きベクトルリストに追加される。このように、予測ブロックの動きベクトルリストが作成される場合、現行コーディングユニットの内側に位置している隣接ブロックは考慮されない。コーディングユニットが少なくとも2つの予測ブロックを含んでいる場合、少なくとも2つの予測ブロックの動きベクトルリストは並行して作成される。このことは、同一のコーディングユニットにおける少なくとも2つの動きベクトルリストの作成速度を増加させ、並行処理の能力を改善する。
【0027】
動きベクトル予測のための動きベクトルリスト作成の別の方法が実施例において提供される。本方法は、
図3に示す方法のさらなる拡張である。
図3に示すように、本発明方法は、以下のことを含んでよい。
【0028】
ステップ301:現行予測ブロックの空間的隣接ブロックを取得する。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。
【0029】
図1に示すように、予測ブロックの空間的隣接ブロックは、以下を含んでいる。予測ブロックの左下側に位置している隣接ブロックA0、予測ブロックの左側に位置している隣接ブロックA1、予測ブロックの右上側に位置している隣接ブロックB0、予測ブロックの上側に位置している隣接ブロックB1、および、予測ブロックの左上側に位置している隣接ブロックB2である。
【0030】
予測ブロックの空間的隣接ブロック、予測ブロック、および、隣接ブロックを取得するための方法は、この実施例において限定されない。方法は、当業者によってよく知られた技術であり、再度ここにおいて詳細は説明されない。
【0031】
ステップ302:現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックを決定する。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。
【0032】
さらに、
図2eから
図2gに示されるように、現行コーディングユニットCUが、上側と下側で第1予測ブロックPU1と第2予測ブロックPU2へと区分されており、現行予測ブロックが第2予測ブロックPU2である場合、PU2の利用可能な隣接ブロックは、以下を含んでいる。第2予測ブロックの隣接ブロックA0、隣接ブロックA1、隣接ブロックB0、および、隣接ブロックB1である。この時点で、隣接ブロックB1は現行コーディングユニットCUの内側に位置しており、第2予測ブロックPU2の利用可能な隣接ブロックとして動作しない。
【0033】
図2aから
図2cに示されるように、現行コーディングユニットCUが、左側と右側で第1予測ブロックPU1と第2予測ブロックPU2へと区分されており、現行予測ブロックが第2予測ブロックPU2である場合、PU2の利用可能な隣接ブロックは、以下を含んでいる。第2予測ブロックの隣接ブロックA0、隣接ブロックB0、隣接ブロックB1、および、隣接ブロックB2である。この時点で、隣接ブロックA1は現行コーディングユニットCUの内側に位置しており、第2予測ブロックPU2の利用可能な隣接ブロックとして動作しない。
【0034】
さらに、利用可能な隣接ブロックは、隣接ブロックのフラグビット(flag bit)を使用することによって判断することができる。フラグビットは、これに限定されるわけではないが、隣接ブロックがCUの内側に位置していないことを特定するために使用され得る。
【0035】
隣接ブロックのフラグビットを使用することによって利用可能な隣接ブロックを判断する方法は、この実施例に限定されない。本技術は、当業者によってよく知られた技術であり、再度ここにおいて詳細は説明されない。
【0036】
ステップ303:利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得して、取得した動きベクトルを動きベクトルリストに追加する。
【0037】
さらに、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得することは、以下を含んでいる。
利用可能な隣接ブロックがインターフレームコーディングブロックである場合、利用可能な隣接ブロックから、隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、そして、隣接ブロックB2の順番で動きベクトルを取得すること。
【0038】
特に、利用可能な隣接ブロックがインターフレームコーディングブロックである場合は、隣接ブロックが動きベクトル情報を含んでいることを意味しており、隣接ブロックから動きベクトルが取得される。
【0039】
特に、予測ブロックの利用可能な隣接ブロックが、第2予測ブロックの隣接ブロックA0、隣接ブロックA1、隣接ブロックB0、および、隣接ブロックB2を含んでいる場合、隣接ブロックA0、隣接ブロックA1、隣接ブロックB0、および、隣接ブロックB2から、隣接ブロックA0、隣接ブロックA1、隣接ブロックB0、そして、隣接ブロックB2の順番で、動きベクトルが取得される。上記の観点において、現行CUが上側と下側で第1及び第2予測ブロックへと区分されている場合、第2予測ブロックの利用可能な隣接ブロックは、第1予測ブロックの内側に位置する隣接ブロックB1を含まない。従って、B1からは動きベクトルが取得されない。
【0040】
予測ブロックの利用可能な隣接ブロックが、第2予測ブロックPU2の隣接ブロックA0、隣接ブロックB0、隣接ブロックB1、および、隣接ブロックB2を含んでいる場合、隣接ブロックA0、隣接ブロックB0、隣接ブロックB1、および、隣接ブロックB2から、隣接ブロックA0、隣接ブロックB0、隣接ブロックB1、そして、隣接ブロックB2の順番で、動きベクトルが取得される。上記の観点において、現行CUが左側と右側で第1及び第2予測ブロックへと区分されている場合、第2予測ブロックの利用可能な隣接ブロックは、第1予測ブロックの内側に位置する隣接ブロックA1を含まない。従って、A1からは動きベクトルが取得されない。
【0041】
さらに、取得した動きベクトルが現行の利用可能な隣接ブロックの動きベクトルである場合、動きベクトルリストに取得した動きベクトルを追加することは、以下を含んでいる。
現行の利用可能な隣接ブロックの動きベクトルが、その現行の利用可能な隣接ブロックを除いて他の利用可能な隣接ブロックの動きベクトルと同一であるかどうかを判断し、そして、同一でない場合に、現行の利用可能な隣接ブロックの動きベクトルを動きベクトルリストに追加することである。
【0042】
上記の観点において、上記のプロセスの最中には、利用可能な隣接ブロックが現行CUの内側に位置する隣接ブロックを含まないので、CUの複数のPUは依存性を有することがなく、並行に実行され得る。例えば、現行CUが左側と右側で第1予測ブロックPU1と第2予測ブロックPU2へと区分されている場合、第2予測ブロックの利用可能な隣接ブロックは、第1予測ブロックの内側に位置している隣接ブロックA1を含まず、A1の動きベクトルは判断プロセスの中に取込まれない。従って、第1予測ブロックと第2予測ブロックは、並行処理を実行することができる。
【0043】
特に、実施例に係る実行方法として、現行の利用可能な隣接ブロックが隣接ブロックB1である場合、隣接ブロックB1の動きベクトルが隣接ブロックA1の動きベクトルと同一であるかどうかが判断される。
現行の利用可能な隣接ブロックが隣接ブロックB0である場合、隣接ブロックB0の動きベクトルが隣接ブロックB1の動きベクトルと同一であるかどうかが判断され;
現行の利用可能な隣接ブロックが隣接ブロックA0である場合、隣接ブロックA0の動きベクトルが隣接ブロックA1の動きベクトルと同一であるかどうかが判断され;そして、
現行の利用可能な隣接ブロックが隣接ブロックB2である場合、隣接ブロックB2の動きベクトルが、隣接ブロックA1の動きベクトルと隣接ブロックB1の動きベクトルのうち少なくとも一つと同一であるかどうかが判断される。
【0044】
さらに、取得された動きベクトルが現行の利用可能な隣接ブロックの動きベクトルである場合、取得された動きベクトルを動きベクトルリストに追加することは、さらに、以下のことを含んでいる。
現行の利用可能な隣接ブロックの動きベクトルが、動きベクトルリストに追加された動きベクトルと同一であるかどうかを判断し、そして、同一でない場合に、現行の利用可能な隣接ブロックの動きベクトルを動きベクトルリストに追加することである。
【0045】
特に、実施例に係る実行方法として、現行の利用可能な隣接ブロックが隣接ブロックB1である場合、隣接ブロックB1の動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと同一であるかどうかが判断される。
現行の利用可能な隣接ブロックが隣接ブロックB0である場合、隣接ブロックB0の動きベクトルが、動きベクトルリストに追加された隣接ブロックB1の動きベクトルと同一であるかどうかが判断され;
現行の利用可能な隣接ブロックが隣接ブロックA0である場合、隣接ブロックA0の動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと同一であるかどうかが判断され;そして、
現行の利用可能な隣接ブロックが隣接ブロックB2である場合、隣接ブロックB2の動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと、動きベクトルリストに追加された隣接ブロックB1の動きベクトルのうち少なくとも一つと同一であるかどうかが判断される。
【0046】
さらに、TMVPが、動きベクトルリストの蓄積の最中に考慮されてよい。
【0047】
実施例に係る実行方法として、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得することは、さらに、以下を含んでいる。
利用可能な隣接ブロック及び/又はTMVPから、隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、隣接ブロックB2、そして、TMVPの順番で動きベクトルを取得すること。
【0048】
本発明に係るソリューションをより明確に説明するために、異なる区分方法を用いてCUに対する動きベクトルリストを作成する方法が、特に以降に説明される。
【0049】
1.CUを左側と右側でPU1とPU2へ区分
【0050】
(1)PU1の動きベクトルリストを作成
【0051】
1)隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、および、隣接ブロックB2から、隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、そして、隣接ブロックB2の順番で、動きベクトルを取得して、それらを動きベクトルリストに追加する。
【0052】
a.現行の隣接ブロックが隣接ブロックA1であり、かつ、隣接ブロックA1が動きベクトルを含んでいる場合にのみ、隣接ブロックA1の動きベクトルを動きベクトルリストに追加する。
b.現行の隣接ブロックが隣接ブロックB1であり、かつ、隣接ブロックB1が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと異なっている場合にのみ、隣接ブロックB1の動きベクトルを動きベクトルリストに追加する。
c.現行の隣接ブロックが隣接ブロックB0であり、かつ、隣接ブロックB0が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックB1の動きベクトルと異なっている場合にのみ、隣接ブロックB0の動きベクトルを動きベクトルリストに追加する。
d.現行の隣接ブロックが隣接ブロックA0であり、かつ、隣接ブロックA0が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと異なっている場合にのみ、隣接ブロックA0の動きベクトルを動きベクトルリストに追加する。
e.現行の隣接ブロックが隣接ブロックB2であり、かつ、隣接ブロックB2が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトル及び動きベクトルリストに追加された隣接ブロックB1の動きベクトルの両方と異なっており、かつ、隣接ブロックA1、隣接ブロックB1、隣接ブロックB0、および、隣接ブロックA0のうち少なくとも一つの動きベクトルが動きベクトルリストに追加されている場合にのみ、隣接ブロックB2の動きベクトルを動きベクトルリストに追加する。
【0053】
2.TMVPの取得と動きベクトルへの追加
特に、PU1のTMVPは、PU1の一時的参照画像を使用して取得され、PU1のTMVPが利用可能な場合に、TMVPが動きベクトルリストに追加される。
【0054】
(2)PU2の動きベクトルリストを作成
【0055】
1)隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、および、隣接ブロックB2から、隣接ブロックB1、隣接ブロックB0、隣接ブロックA0、そして、隣接ブロックB2の順番で、動きベクトルを取得して、それらを動きベクトルリストに追加する。
【0056】
a.現行の隣接ブロックが隣接ブロックB1であり、かつ、隣接ブロックB1が動きベクトルを含んでいる場合にのみ、隣接ブロックB1の動きベクトルを動きベクトルリストに追加する。
b.現行の隣接ブロックが隣接ブロックB0であり、かつ、隣接ブロックB0が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックB1の動きベクトルと異なっている場合にのみ、隣接ブロックB0の動きベクトルを動きベクトルリストに追加する。
c.現行の隣接ブロックが隣接ブロックA0であり、かつ、隣接ブロックA0が動きベクトルを含んでいる場合にのみ、隣接ブロックA0の動きベクトルを動きベクトルリストに追加する。
d.現行の隣接ブロックが隣接ブロックB2であり、かつ、隣接ブロックB2が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックB1の動きベクトルと異なっている場合にのみ、隣接ブロックB2の動きベクトルを動きベクトルリストに追加する。
【0057】
2)TMVPを取得して、それを動きベクトルリストに追加する。特に、PU1のTMVPはPU1の一時的参照画像を使用して取得され、PU1のTMVPが利用可能である場合にTMVPが動きベクトルリストに追加される。
【0058】
この時点で、つまりPU2の動きベクトルリストが作成されたときから、PU2の隣接ブロックA1は考慮されておらず、PU1及びPU2の動きベクトルリストは並行して作成され得る。
【0059】
2.CUを上側と下側でPU1とPU2へ区分
【0060】
(1)PU1の動きベクトルリストを作成
【0061】
上記「1. CUを左側と右側でPU1とPU2へ区分」の「(1)PU1の動きベクトルリストを作成」に係る方法と類似のものである。よって、再度ここにおいて詳細は説明されない。
【0062】
(2)PU2の動きベクトルリストを作成
【0063】
1)隣接ブロックA1、隣接ブロックB0、隣接ブロックA0、および、隣接ブロックB2から、隣接ブロックA1、隣接ブロックB0、隣接ブロックA0、そして、隣接ブロックB2の順番で、動きベクトルを取得して、それらを動きベクトルリストに追加する。
【0064】
a.現行の隣接ブロックが隣接ブロックA1であり、かつ、隣接ブロックA1が動きベクトルを含んでいる場合にのみ、隣接ブロックA1の動きベクトルを動きベクトルリストに追加する。
b.現行の隣接ブロックが隣接ブロックB0であり、かつ、隣接ブロックB0が動きベクトルを含んでいる場合にのみ、隣接ブロックB0の動きベクトルを動きベクトルリストに追加する。
c.現行の隣接ブロックが隣接ブロックA0であり、かつ、隣接ブロックA0が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと異なっている場合にのみ、隣接ブロックA0の動きベクトルを動きベクトルリストに追加する。
d.現行の隣接ブロックが隣接ブロックB2であり、かつ、隣接ブロックB2が動きベクトルを含んでおり、かつ、
動きベクトルが、動きベクトルリストに追加された隣接ブロックA1の動きベクトルと異なっている場合にのみ、隣接ブロックB2の動きベクトルを動きベクトルリストに追加する。
【0065】
2)TMVPを取得して、それを動きベクトルリストに追加する。特に、PU1のTMVPはPU1の一時的参照画像を使用して取得され、PU1のTMVPが利用可能である場合にTMVPが動きベクトルリストに追加される。
【0066】
この時点で、つまりPU2の動きベクトルリストが作成されたときから、PU2の隣接ブロックB1は考慮されておらず、PU1及びPU2の動きベクトルリストは並行して作成され得る。
【0067】
上記のソリューションを通じて、予測ブロックの動きベクトルリストを作成する場合、現行予測ブロックの空間的隣接ブロックが最初に取得される。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。そして、現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックが決定される。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。そして、利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルが取得され、取得された動きベクトルが動きベクトルリストに追加される。このように、予測ブロックの動きベクトルリストが作成される場合、現行コーディングユニットの内側に位置している隣接ブロックは考慮されない。コーディングユニットが少なくとも2つの予測ブロックを含んでいる場合、少なくとも2つの予測ブロックの動きベクトルリストは並行して作成される。このことは、同一のコーディングユニットにおける少なくとも2つの動きベクトルリストの作成速度を増加させ、並行処理の能力を改善する。
【0068】
以降に、いくつかの装置の実施例が提供される。提供される装置実施例は、それぞれに上記の方法の実施例に対応するものである。装置、および、装置の中に含まれるレシーバーとプロセッサに係る所定の実施方法については方法の実施例を参照されたい。
【0069】
動きベクトル予測のための動きベクトルリストを作成する装置が実施例において提供される。
図4に示すように、装置は、現行予測ブロックの空間的隣接ブロックを取得するレシーバー41であり、前記現行予測ブロックは現行コーディングユニットの内側に位置しているレシーバーと;前記現行コーディングユニットの区分方法に従って、前記現行予測ブロックの利用可能な隣接ブロックを決定するように構成されたプロセッサ42であり、前記利用可能な隣接ブロックは前記コーディングユニットの外側に位置しているプロセッサと;を含み、前記プロセッサは、前記利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得し、かつ、取得した前記動きベクトルを前記動きベクトルリストに追加するように構成されている。
【0070】
さらに、前記レシーバー41によって取得された前記予測ブロックの前記空間的隣接ブロックは:前記予測ブロックの左下側に位置している隣接ブロックA0、前記予測ブロックの左側に位置している隣接ブロックA1、前記予測ブロックの右上側に位置している隣接ブロックB0、前記予測ブロックの上側に位置している隣接ブロックB1、および、前記予測ブロックの左上側に位置している隣接ブロックB2、を含んでいる。
【0071】
さらに、前記プロセッサ42は:前記コーディングユニットが上側と下側で第1予測ブロックと第2予測ブロックへと区分されており、かつ、現行予測ブロックが前記第2予測ブロックである場合に、前記予測ブロックの利用可能な隣接ブロックが、前記第2予測ブロックの前記隣接ブロックA0、前記隣接ブロックA1、前記隣接ブロックB0、および、前記隣接ブロックB1を含むように、かつ、前記コーディングユニットが左側と右側で第1予測ブロックと第2予測ブロックへと区分されており、かつ、現行予測ブロックが前記第2予測ブロックである場合に、前記予測ブロックの利用可能な隣接ブロックが、前記第2予測ブロックの前記隣接ブロックA0、前記隣接ブロックB0、前記隣接ブロックB1、および、前記隣接ブロックB2を含むように構成されている。
【0072】
さらに、前記プロセッサ42は:前記利用可能な隣接ブロックがインターフレームコーディングブロックである場合に、前記利用可能な隣接ブロックから、前記隣接ブロックA1、前記隣接ブロックB1、前記隣接ブロックB0、前記隣接ブロックA0、そして、前記隣接ブロックB2の順番で動きベクトルを取得するように構成されている。
【0073】
さらに、前記プロセッサ42は:現行の利用可能な隣接ブロックの前記動きベクトルが、前記現行の利用可能な隣接ブロックを除いて他の利用可能な隣接ブロックの動きベクトルと同一であるかどうかを判断し、同一でない場合に、前記現行の利用可能な隣接ブロックの前記動きベクトルを前記動きベクトルリストに追加するように構成されている。
【0074】
さらに、前記プロセッサ42は:現行の利用可能な隣接ブロックの前記動きベクトルが、前記動きベクトルリストに追加された動きベクトルと同一であるかどうかを判断し、同一でない場合に、前記現行の利用可能な隣接ブロックの前記動きベクトルを前記動きベクトルリストに追加するように構成されている。
【0075】
さらに、前記プロセッサ42は:前記現行の利用可能な隣接ブロックが前記隣接ブロックB1である場合、前記隣接ブロックB1の動きベクトルが前記隣接ブロックA1の動きベクトルと同一であるかどうかを判断し;前記現行の利用可能な隣接ブロックが前記隣接ブロックB0である場合、前記隣接ブロックB0の動きベクトルが前記隣接ブロックB1の動きベクトルと同一であるかどうかを判断し;前記現行の利用可能な隣接ブロックが前記隣接ブロックA0である場合、前記隣接ブロックA0の動きベクトルが前記隣接ブロックA1の動きベクトルと同一であるかどうかを判断し;かつ、前記現行の利用可能な隣接ブロックが前記隣接ブロックB2である場合、前記隣接ブロックB2の動きベクトルが、前記隣接ブロックA1の動きベクトルと前記隣接ブロックB1の動きベクトルのうち少なくとも一つと同一であるかどうかを判断するように構成されている。
【0076】
さらに、前記プロセッサ42は:前記現行の利用可能な隣接ブロックが前記隣接ブロックB1である場合、前記隣接ブロックB1の動きベクトルが、前記動きベクトルリストに追加された前記隣接ブロックA1の動きベクトルと同一であるかどうかを判断し;前記現行の利用可能な隣接ブロックが前記隣接ブロックB0である場合、前記隣接ブロックB0の動きベクトルが、前記動きベクトルリストに追加された前記隣接ブロックB1の動きベクトルと同一であるかどうかを判断し;前記現行の利用可能な隣接ブロックが前記隣接ブロックA0である場合、前記隣接ブロックA0の動きベクトルが、前記動きベクトルリストに追加された前記隣接ブロックA1の動きベクトルと同一であるかどうかを判断し;かつ、前記現行の利用可能な隣接ブロックが隣接ブロックB2である場合、前記隣接ブロックB2の動きベクトルが、前記動きベクトルリストに追加された前記隣接ブロックA1の動きベクトルと、前記動きベクトルリストに追加された前記隣接ブロックB1の動きベクトルのうち少なくとも一つと同一であるかどうかを判断するように構成されている。
【0077】
上記のソリューションを通じて、予測ブロックの動きベクトルリストを作成する場合、レシーバーは現行予測ブロックの空間的隣接ブロックを最初に取得する。ここで、現行予測ブロックは現行コーディングユニットの内側に位置している。そして、プロセッサは、現行コーディングユニットの区分方法に従って、現行予測ブロックの利用可能な隣接ブロックを決定する。ここで、利用可能な隣接ブロックは現行コーディングユニットの外側に位置している。そして、プロセッサは、利用可能な隣接ブロックの動きベクトルに従って、プリセットシーケンスにおいて利用可能な隣接ブロックから動きベクトルを取得して、取得した動きベクトルを動きベクトルリストに追加する。このように、予測ブロックの動きベクトルリストが作成される場合、現行コーディングユニットの内側に位置している隣接ブロックは考慮されない。コーディングユニットが少なくとも2つの予測ブロックを含んでいる場合、少なくとも2つの予測ブロックの動きベクトルリストは並行して作成される。このことは、同一のコーディングユニットにおける少なくとも2つの動きベクトルリストの作成速度を増加させ、並行処理の能力を改善する。
【0078】
実施例に係る前出の説明を通じて、当業者であれば、本発明が一般的に必要なハードウェアに加えてソフトウェアによって実施され得ること、および、本発明が全くのハードウェアによっても実施され得ることが、明確に理解されよう。しかしながら、ほとんどの状況下では、前者の方が望ましい。こうした理解に基づいて、基本的に本発明の技術的ソリューション、または、従来技術に貢献する部分は、ソフトウェアプロダクトの形式で実施され得る。コンピュータソフトウェアプロダクトは、例えば、コンピュータのフロッピー(登録商標)ディスク、ハードディスク、または、光ディスクといった、読取り可能なストレージ媒体に保管され、(パーソナルコンピュータ、サーバ、または、ネットワークデバイスであり得る)コンピュータデバイスに、本発明の実施例において説明された方法を実施するように指示するいくつかのインストラクションを含んでいる。
【0079】
上記の記載は、単に本発明の特定の実施例を説明するものであり、本発明の保護範囲を限定することを意図するものではない。本発明において開示された技術的範囲内で当業者によって容易に把握されるあらゆるバリエーション又は置き換えは、本発明の保護範囲の中にあるものである。従って、本発明の保護範囲は、添付の特許請求の範囲を対象とするものである。