(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-30
(45)【発行日】2023-04-07
(54)【発明の名称】画像復号方法、画像符号化方法、及び非一時的なコンピュータ可読記録媒体
(51)【国際特許分類】
H04N 19/52 20140101AFI20230331BHJP
H04N 19/70 20140101ALI20230331BHJP
H04N 19/56 20140101ALI20230331BHJP
【FI】
H04N19/52
H04N19/70
H04N19/56
(21)【出願番号】P 2021210557
(22)【出願日】2021-12-24
(62)【分割の表示】P 2019528067の分割
【原出願日】2017-11-28
【審査請求日】2021-12-24
(31)【優先権主張番号】10-2016-0159717
(32)【優先日】2016-11-28
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】522486737
【氏名又は名称】インテレクチュアル ディスカバリー カンパニー リミテッド
【氏名又は名称原語表記】Intellectual Discovery Co., Ltd.
【住所又は居所原語表記】7th Floor, 419, Techno-ro, Gangnam-gu, Seoul, 06160, Republic of Korea
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】リ ハ ヒュン
(72)【発明者】
【氏名】カン ジュン ウォン
(72)【発明者】
【氏名】コウ ヒュン サク
(72)【発明者】
【氏名】リム サン チャン
(72)【発明者】
【氏名】リ ジン ホ
(72)【発明者】
【氏名】ジュン ドン サン
(72)【発明者】
【氏名】チョ スン ヒュン
(72)【発明者】
【氏名】キム フイ ヨン
(72)【発明者】
【氏名】チェ ジン スー
【審査官】鉢呂 健
(56)【参考文献】
【文献】特許第7044778(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
画像復号方法であって、
マージモードが使用されるか否かを指示するマージモード使用情報を取得するステップと、
前記マージモード使用情報が、前記マージモードが使用されることを指示する場合、マージモードに基づく動きベクトル補正が使用されるか否かを指示するマージモードに基づく動きベクトル補正使用情報を取得するステップと、
前記マージモードに基づく動きベクトル補正使用情報に基づいて、補正された動きベクトルを導出するために初期動きベクトルとして使用されるマージ候補を指示する初期動きベクトルインデックス情報を復号するステップと、
前記初期動きベクトルインデックス情報に基づいて、現在ブロックのマージ候補リストから前記初期動きベクトルを導出するステップと、
前記初期動きベクトルを用いて、参照ピクチャの所定の領域内のピクセルを示す前記補正された動きベクトルを導出するステップと、
前記補正された動きベクトルを用いて前記現在ブロックの予測ブロックを生成するステップと、
を含み、
前記初期動きベクトルは、前記初期動きベクトルインデックス情報によって指示される前記マージ候補から導出され、
前記所定の領域は、前記初期動きベクトルによって指示される前記参照ピクチャのピクセル位置を中心に、クロス形状を有する領域に決定され、
前記初期動きベクトルを導出するステップは、前記初期動きベクトルインデックス情報が復号されないときには、前記マージ候補リストの所定のインデックス番号に対応するマージ候補を前記初期動きベクトルとして導出する、
画像復号方法。
【請求項2】
前記所定のインデックス番号に対応するマージ候補は、前記マージ候補リストの1番目のマージ候補である、
請求項1に記載の画像復号方法。
【請求項3】
画像符号化方法であって、
現在ブロックのマージ候補リストから、マージモードに基づく動きベクトル補正のための初期動きベクトルを導出するステップと、
前記初期動きベクトルを用いて、参照ピクチャの所定の領域内のピクセルを示す補正された動きベクトルを導出するステップと、
前記補正された動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するステップと、
前記補正された動きベクトルを導出するために前記マージ候補リスト内の前記初期動きベクトルとして使用されるマージ候補を指示する初期動きベクトルインデックス情報を符号化するステップと、
マージモードが使用されるか否かを指示するマージモード使用情報を符号化するステップと、
前記マージモード使用情報が、前記マージモードが使用されることを指示する場合、マージモードに基づく動きベクトル補正が使用されるか否かを指示するマージモードに基づく動きベクトル補正使用情報を符号化するステップと、
を含み、
前記所定の領域は、前記初期動きベクトルによって指示される前記参照ピクチャのピクセル位置を中心に、クロス形状を有する領域に決定され、
前記初期動きベクトルインデックス情報が符号化されないという決定に基づいて、前記マージ候補リストの所定のインデックス番号に対応するマージ候補は、前記初期動きベクトルに決定される、
画像符号化方法。
【請求項4】
コンピュータ実行可能なコードを含み、ビットストリームを有する非一時的なコンピュータ可読記録媒体であって、
前記コンピュータ実行可能なコードは、実行されたときに、
マージモードが使用されるか否かを指示するマージモード使用情報を取得するステップと、
前記マージモード使用情報が、前記マージモードが使用されることを指示する場合、マージモードに基づく動きベクトル補正が使用されるか否かを指示するマージモードに基づく動きベクトル補正使用情報を取得するステップと、
前記マージモードに基づく動きベクトル補正使用情報に基づいて、補正された動きベクトルを導出するために初期動きベクトルとして使用されるマージ候補を指示する初期動きベクトルインデックス情報を復号するステップと、
前記初期動きベクトルインデックス情報に基づいて、現在ブロックのマージ候補リストから前記初期動きベクトルを導出するステップと、
前記初期動きベクトルを用いて、参照ピクチャの所定の領域内のピクセルを示す前記補正された動きベクトルを導出するステップと、
前記補正された動きベクトルを用いて前記現在ブロックの予測ブロックを生成するステップと、
を復号装置に実行させ、
前記初期動きベクトルは、前記初期動きベクトルインデックス情報によって指示される前記マージ候補から導出され、
前記所定の領域は、前記初期動きベクトルによって指示される前記参照ピクチャのピクセル位置を中心に、クロス形状を有する領域に決定され、
前記初期動きベクトルを導出するステップは、前記初期動きベクトルインデックス情報が復号されないときには、前記マージ候補リストの所定のインデックス番号に対応するマージ候補を前記初期動きベクトルとして導出する、
非一時的なコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像符号化/復号方法、装置、及びビットストリームを保存した記録媒体に関する。具体的には、本発明は、動きベクトル補正を用いた画像符号化/復号方法及び装置に関する。
【背景技術】
【0002】
最近、高解像度、高品質の画像、例えばHD(High Definition)画像及びUHD(Ultra High Definition)画像への需要が多様な応用分野で増加している。画像データが高解像度、高品質になるほど、従来の画像データに比べて相対的にデータ量が増加するので、従来の有線・無線ブロードバンド回線などの媒体を用いて画像データを送信したり従来の記憶媒体を用いて保存したりする場合には、送信費用と保存費用が増加することになる。このような画像データの高解像度、高品質化に伴って発生する問題を解決するためには、より高い解像度及び画質を有する画像に対する高効率画像符号化(encoding)/復号(decoding)技術が求められる。
【0003】
画像圧縮技術として、現在ピクチャの以前又は以後のピクチャから、現在ピクチャに含まれている画素値を予測する画面間(inter)予測技術、現在ピクチャ内の画素情報を用いて、現在ピクチャに含まれている画素値を予測する画面内(intra)予測技術、残余信号のエネルギーを圧縮するための変換及び量子化技術、出現頻度の高い値に短い符号を割り当て、出現頻度の低い値に長い符号を割り当てるエントロピー符号化技術などの様々な技術が存在し、これらの画像圧縮技術を利用して画像データを効果的に圧縮して送信又は保存することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、画像の符号化/復号効率を向上させるために動きベクトルを補正する画像復号/符号化方法及び装置を提供することができる。
【課題を解決するための手段】
【0005】
本発明に係る画像復号方法は、現在ブロックのマージ候補リストから初期動きベクトルを導出するステップと、前記初期動きベクトルを用いて、補正された動きベクトルを導出するステップと、前記補正された動きベクトルを用いて前記現在ブロックの予測ブロックを生成するステップとを含むことができる。
【0006】
前記画像復号方法において、前記初期動きベクトルを導出するステップは、マージインデックス情報が指示するマージ候補から前記初期動きベクトルを導出することができる。
【0007】
前記画像復号方法において、前記初期動きベクトルを導出するステップは、前記現在ブロックが、双予測が可能なブロックであり、前記マージインデックス情報が指示するマージ候補に一予測方向の動き情報のみが存在する場合、前記存在する動き情報の動きベクトルをミラーリングまたはスケーリングして、存在しない予測方向の初期動きベクトルとして導出することができる。
【0008】
前記画像復号方法において、前記補正された動きベクトルを導出するステップは、前記初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレートとの差を最小にするテンプレートを指示する動きベクトルを探索し、前記差を最小にするテンプレートを指示する動きベクトルを、前記補正された動きベクトルとして導出することができる。
【0009】
前記画像復号方法において、前記所定の探索領域は、前記初期動きベクトルが指示する参照ピクチャのピクセル位置を中心にクロス、正方形、ダイヤモンド及びヘキサゴン形状のうちの少なくとも一つを有する領域に決定できる。
【0010】
前記画像復号方法において、前記初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレート間の差を最小にするテンプレートを指示する動きベクトルは、テンプレート間の歪み値及び動きベクトルに対するコスト値のうちの少なくとも一つに基づいて探索できる。
【0011】
前記画像復号方法において、前記補正された動きベクトルを導出するステップは、前記初期動きベクトルが指示する少なくとも一つの予測ブロックに基づいて、補正された動きベクトルを導出することができる。
【0012】
前記画像復号方法において、前記補正された動きベクトルを導出するステップは、前記現在ブロックが双方向予測ブロックである場合、第1予測方向初期動きベクトルが指示する第1予測ブロックと、第2予測方向初期動きベクトルが指示する第2予測ブロックとの重み付け和をテンプレートとして設定し、前記第1予測方向初期動きベクトル及び前記第2予測方向初期動きベクトルのうちの少なくとも一つが指示する少なくとも一つの参照ピクチャの探索領域を設定して、前記探索領域内において前記テンプレートとの差を最小にする第3予測ブロックを指示する動きベクトルを、補正された動きベクトルとして導出することができる。ここで、第1予測方向初期動きベクトルが指示する第1探索領域、及び第2予測方向初期動きベクトルが指示する第2探索領域が設定される場合、前記第1探索領域及び前記第2探索領域内でテンプレートとの差を最小にする、それぞれの予測ブロックを指示する動きベクトルを用いて、補正された動きベクトルを導出することができる。
【0013】
前記画像復号方法において、前記第1予測方向初期動きベクトルまたは前記第2予測方向初期動きベクトルのうちのいずれかが存在しない場合、存在する初期動きベクトルをミラーリングまたはスケーリングして、存在しない初期動きベクトルを導出することができる。
【0014】
前記画像復号方法において、前記現在ブロックは、復号対象ブロックのサブブロックであり得る。
【0015】
本発明に係る画像符号化方法は、現在ブロックのマージ候補リストから初期動きベクトルを導出するステップと、前記初期動きベクトルを用いて、補正された動きベクトルを導出するステップと、前記補正された動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するステップとを含むことができる。
【0016】
前記画像符号化方法において、前記初期動きベクトルを導出するステップは、マージインデックス情報が指示するマージ候補から前記初期動きベクトルを導出することができる。
【0017】
前記画像符号化方法において、前記初期動きベクトルを導出するステップは、前記現在ブロックが、双予測が可能なブロックであり、前記マージインデックス情報が指示するマージ候補に一予測方向の動き情報のみが存在する場合、前記存在する動き情報の動きベクトルをミラーリングまたはスケーリングして、存在しない予測方向の初期動きベクトルとして導出することができる。
【0018】
前記画像符号化方法において、前記補正された動きベクトルを導出するステップは、前記初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレートとの差を最小にするテンプレートを指示する動きベクトルを探索し、前記差を最小にするテンプレートを指示する動きベクトルを、前記補正された動きベクトルとして導出することができる。
【0019】
前記画像符号化方法において、前記所定の探索領域は、前記初期動きベクトルが指示する参照ピクチャのピクセル位置を中心にクロス、正方形、ダイヤモンド及びヘキサゴン形状のうちの少なくとも一つを有する領域に決定できる。
【0020】
前記画像符号化方法において、前記初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレート間の差を最小にするテンプレートを指示する動きベクトルは、テンプレート間の歪み値及び動きベクトルに対するコスト値のうちの少なくとも一つに基づいて探索できる。
【0021】
前記画像符号化方法において、前記補正された動きベクトルを導出するステップは、前記初期動きベクトルが指示する少なくとも一つの予測ブロックに基づいて、補正された動きベクトルを導出することができる。
【0022】
前記画像符号化方法において、前記補正された動きベクトルを導出するステップは、前記現在ブロックが双方向予測ブロックである場合、第1予測方向初期動きベクトルが指示する第1予測ブロックと第2予測方向初期動きベクトルが指示する第2予測ブロックとの重み付け和をテンプレートとして設定し、前記第1予測方向初期動きベクトルまたは前記第2予測方向初期動きベクトルが指示する参照ピクチャの探索領域を設定して、前記探索領域内で前記テンプレートとの差を最小にする第3予測ブロックを指示する動きベクトルを、補正された動きベクトルとして導出することができる。
【0023】
前記画像符号化方法において、前記第1予測方向初期動きベクトルまたは前記第2予測方向初期動きベクトルのうちのいずれかが存在しない場合、存在する初期動きベクトルをミラーリングまたはスケーリングして、存在しない初期動きベクトルを導出することができる。
【0024】
前記画像符号化方法において、前記現在ブロックは、復号対象ブロックのサブブロックであり得る。
【0025】
本発明に係る記録媒体は、現在ブロックのマージ候補リストから初期動きベクトルを導出するステップと、前記初期動きベクトルを用いて、補正された動きベクトルを導出するステップと、前記補正された動きベクトルを用いて、前記現在ブロックの予測ブロックを生成するステップとを含む画像復号方法で生成されたビットストリームを保存することができる。
【発明の効果】
【0026】
本発明によれば、圧縮効率が向上した画像符号化/復号方法及び装置が提供できる。
【0027】
本発明によれば、画像の符号化及び復号効率を向上させることができる。
【0028】
本発明によれば、画像の符号化器及び復号器の計算の複雑さを減少させることができる。
【図面の簡単な説明】
【0029】
【
図1】本発明が適用される符号化装置の一実施形態に係る構成を示すブロック図である。
【
図2】本発明が適用される復号装置の一実施形態に係る構成を示すブロック図である。
【
図3】画像を符号化及び復号するときの画像の分割構造を示す概略図である。
【
図4】画面間予測過程の実施形態を説明するための図である。
【
図5】本発明の一実施形態による画像符号化方法を示すフローチャートである。
【
図6】本発明の一実施形態による画像復号方法を示すフローチャートである。
【
図7】現在ブロックの空間マージ候補及び時間マージ候補を導出する例を説明するための図である。
【
図8】追加的なマージ候補リストを構成するための空間的周辺ブロック及び時間的周辺ブロックを示す図である。
【
図9】初期動きベクトルリストの構成を説明するための図である。
【
図10】初期動きベクトルリストの構成を説明するための図である。
【
図11】マージインデックス情報を用いて初期動きベクトルを導出する方法を説明するための図である。
【
図12】動きベクトルミラーリングを説明するための図である。
【
図13】動きベクトルスケーリングを説明するための図である。
【
図14】双予測が可能なブロックでL0またはL1リストに該当する一つの動きベクトルのみが存在する場合、追加の動きベクトルを導出する一例を説明するための図である。
【
図15】双予測が可能なブロックで双方向動き情報を持っているマージ候補を初期動きベクトルとして選択する一例を説明するための図である。
【
図16】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図17】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図18】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図19】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図20】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図21】本発明の一実施形態に係るテンプレートを説明するための図である。
【
図22】テンプレートを用いて初期動きベクトルを補正する一例を説明するための図である。
【
図23】現在ブロックの予測ブロックを用いて初期動きベクトルを補正する一例を説明するための図である。
【
図24】現在ブロックの予測ブロックを用いて初期動きベクトルを補正する一例を説明するための図である。
【
図25】現在ブロックの予測ブロックを用いて初期動きベクトルを補正する一例を説明するための図である。
【
図28】サブブロック単位の動きベクトル補正のための初期動きベクトルを設定する一例を説明するための図である。
【
図29】本発明の一実施形態による画像復号方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0030】
本発明は、様々な変更を加えることができ、様々な実施形態を有することができるので、特定の実施形態を図面に例示し、詳細な説明に詳細に説明する。ところが、これは本発明を特定の実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。図面において類似する参照符号は、様々な側面にわたって同一又は類似の機能を指し示す。図面における要素の形状及び大きさなどは、より明確な説明のために誇張することがある。後述する例示的実施形態についての詳細な説明は、特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者が実施形態を実施し得る程度に十分に詳細に説明される。様々な実施形態は、互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施形態に関連して本発明の精神及び範囲を逸脱することなく、様々な実施形態に実現できる。また、それぞれの開示された実施形態内の個別構成要素の位置又は配置は、実施形態の精神及び範囲を逸脱することなく変更可能であることが理解されるべきである。したがって、後述する詳細な説明は、限定的な意味として取るものではなく、例示的な実施形態の範囲は、適切に説明されるならば、それらの請求項が主張するのと均等なすべての範囲及び添付の請求項によってのみ限定される。
【0031】
本発明において、用語「第1」、「第2」などは多様な構成要素の説明に使用できるが、これらの構成要素は上記の用語により限定されてはならない。これらの用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素も第1構成要素と命名することができる。用語「及び/又は」は、複数の関連した記載項目の組み合わせ又は複数の関連した記載項目のいずれかを含む。
【0032】
本発明のある構成要素が他の構成要素に「連結されて」いる或いは「接続されて」いるとした場合には、その他の構成要素に直接連結されている或いは接続されていることもあるが、それらの間に別の構成要素が介在することもあると理解されるべきである。これに対し、ある構成要素が他の構成要素に「直接連結されて」いる或いは「直接接続されて」いるとした場合には、それらの間に別の構成要素が介在しないと理解されるべきである。
【0033】
本発明の実施形態に示す構成部は、互いに異なる特徴的な機能を示すために独立に図示されるもので、各構成部が分離されたハードウェア又は一つのソフトウェア構成単位からなることを意味しない。すなわち、各構成部は、説明の便宜上、それぞれの構成部に羅列して含むもので、各構成部のうちの少なくとも2つの構成部が合わせられて一つの構成部をなすか、或いは一つの各構成部が複数の構成部に分けられて機能を行うことができ、このような各構成部の統合された実施形態及び分離された実施形態も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0034】
本発明で使用した用語は、単に特定の実施形態を説明するために使われたものであり、本発明を限定するものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本発明において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらの組み合わせが存在することを指定するものであり、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はこれらの組み合わせの存在又は付加可能性を予め排除しないと理解すべきである。つまり、本発明において、特定の構成を「含む」と記述する内容は、該当構成以外の構成を排除するものではなく、追加の構成が本発明の実施又は本発明の技術的思想の範囲に含まれ得ることを意味する。
【0035】
本発明の一部の構成要素は、本発明において本質的な機能を行う不可欠の構成要素ではなく、単に性能を向上させるための選択的構成要素であり得る。本発明は、単に性能向上のために使用される構成要素を除く、本発明の本質の実現に必要不可欠な構成部のみを含んで実現でき、単に性能向上のために使用される選択的構成要素を除く必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
【0036】
以下、図面を参照して、本発明の実施形態について具体的に説明する。本明細書の実施形態を説明するにあたり、関連した公知の構成又は機能についての具体的な説明が本明細書の要旨を曖昧にするおそれがあると判断された場合、その詳細な説明は省略し、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素についての重複説明は省略する。
【0037】
また、以下において、画像は動画像(video)を構成する一つのピクチャを示すこともあり、動画像自体を示すこともある。例えば、「画像の符号化及び/又は復号」は、「ビデオの符号化及び/又は復号」を意味することができ、「ビデオを構成する画像のうちの一つの画像の符号化及び/又は復号」を意味することもできる。ここで、ピクチャは画像と同じ意味を持つことができる。
【0038】
<用語説明>
符号化器(Encoder):符号化(Encoding)を行う装置を意味する。
【0039】
復号器(Decoder):復号(Decodng)を行う装置を意味する。
【0040】
ブロック(Block):サンプル(Sample)のM×N配列である。ここで、MとNは正の整数値を意味し、ブロックは一般に2次元形状のサンプル配列を意味することができる。ブロックはユニットを意味することができる。現在ブロックは、符号化時に符号化の対象となる符号化対象ブロック、復号時に復号の対象となる復号対象ブロックを意味することができる。また、現在ブロックは符号化ブロック、予測ブロック、残予ブロック及び変換ブロックのうちの少なくとも一つであり得る。
【0041】
サンプル(Sample):ブロックを構成する基本単位である。ビット深度(bit depth、Bd)に応じて0から2Bd-1までの値で表現できる。本発明において、サンプルは画素またはピクセルと同じ意味で使用できる。
【0042】
ユニット(Unit):画像符号化及び復号の単位を意味する。画像の符号化及び復号において、ユニットは、一つの画像を分割した領域であり得る。また、ユニットは、一つの画像を細分化されたユニットに分割して符号化或いは復号するとき、その分割された単位を意味することができる。画像の符号化及び復号において、ユニットごとに、予め定義された処理が行われ得る。一つのユニットは、ユニットに比べてより小さい大きさを持つサブユニットにさらに分割できる。機能に応じて、ユニットは、ブロック(Block)、マクロブロック(Macroblock)、符号化ツリーユニット(Coding Tree Unit)、符号化ツリーブロック(Coding Tree Block)、符号化ユニット(Coding Unit)、符号化ブロック(Coding Block)、予測ユニット(Prediction Unit)、予測ブロック(Prediction Block)、残予ユニット(Residual Unit)、残予ブロック(Residual Block)、変換ユニット(Transform Unit)、変換ブロック(Transform Block)などを意味することができる。また、ユニットは、ブロックと区分して指し示すために、輝度(Luma)成分ブロック、それに対応する色差(Chroma)成分ブロック、及び各ブロックに対する構文要素を含むことを意味することができる。ユニットは、様々なサイズと形状を持つことができ、特に、ユニットの形状は、長方形だけでなく、正方形、台形、三角形、五角形など、2次元的に表現できる幾何学的図形を含むことができる。また、ユニット情報は、符号化ユニット、予測ユニット、残予ユニット、変換ユニットなどを指し示すユニットのタイプ、ユニットの大きさ、ユニットの深さ、ユニットの符号化及び復号順序などのうちの少なくとも一つを含むことができる。
【0043】
符号化ツリーユニット(Coding Tree Unit):一つの輝度成分(Y)符号化ツリーブロックに関連した2つの色差成分(Cb、Cr)符号化ツリーブロックから構成される。また、前記ブロックと各ブロックに対する構文要素を含むことを意味することもできる。各符号化ツリーユニットは、符号化ユニット、予測ユニット、変換ユニットなどのサブユニットを構成するために、四分木(quad tree)、二分木(binary tree)などの一つ以上の分割方式を用いて分割できる。入力画像の分割の如く画像の復号/符号化過程で処理単位となるピクセルブロックを指し示すための用語として使用できる。
【0044】
符号化ツリーブロック(Coding Tree Block):Y符号化ツリーブロック、Cb符号化ツリーブロック及びCr符号化ツリーブロックのうちのいずれかを示すための用語として使用できる。
【0045】
周辺ブロック(Neighbor block):現在ブロックに隣接するブロックを意味する。現在ブロックに隣接するブロックは、現在ブロックと境界が接しているブロック、または現在ブロックから所定の距離内に位置するブロックを意味することができる。周辺ブロックは、現在ブロックの頂点に隣接するブロックを意味することができる。ここで、現在ブロックの頂点に隣接するブロックとは、現在ブロックの横に隣接する隣接ブロックと縦に隣接するブロック、または現在ブロックの縦に隣接する隣接ブロックと横に隣接するブロックであり得る。周辺ブロックは、復元された周辺ブロックを意味することもある。
【0046】
復元された周辺ブロック(Reconstructed Neighbor Block):現在ブロックの周辺に空間的(Spatial)/時間的(Temporal)に既に符号化或いは復号された周辺ブロックを意味する。このとき、復元された周辺ブロックは、復元された周辺ユニットを意味することができる。復元された空間的周辺ブロックは、現在ピクチャ内のブロックでありながら符号化及び/または復号を介して既に復元されたブロックであり得る。復元された時間的周辺ブロックは、参照ピクチャ内で現在ピクチャの現在ブロックと同じ位置の復元されたブロックまたはその周辺ブロックであり得る。
【0047】
ユニット深さ(Depth):ユニットが分割された程度を意味する。ツリー構造(Tree Structure)において、ルートノード(Root Node)は深さが最も浅く、リーフノード(Leaf Node)は深さが最も深いといえる。また、ユニットをツリー構造で表現したときにユニットが存在するレベル(Level)がユニット深さを意味することができる。
【0048】
ビットストリーム(Bitstream):符号化された画像情報を含むビットの列を意味する。
【0049】
パラメータセット(Parameter Set):ビットストリーム内の構造のうちのヘッダー情報に該当する。ビデオパラメータセット(video parameter set)、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、適応パラメータセット(adaptation parameter set)のうちの少なくとも一つがパラメータセットに含まれ得る。また、パラメータセットはスライス(slice)ヘッダー及びタイル(tile)ヘッダー情報を含むこともできる。
【0050】
パーシング(Parsing):ビットストリームをエントロピー復号して構文要素(Syntax Element)の値を決定することを意味するか、或いはエントロピー復号自体を意味することができる。
【0051】
シンボル(Symbol):符号化/復号対象ユニットの構文要素、符号化パラメータ(coding parameter)、変換係数(Transform Coefficient)の値などのうちの少なくとも一つを意味することができる。また、シンボルは、エントロピー符号化の対象或いはエントロピー復号の結果を意味することができる。
【0052】
予測ユニット(Prediction Unit):画面間予測、画面内予測、画面間補償、画面内補償、動き補償などの予測を行うときの基本ユニットを意味する。一つの予測ユニットは、サイズが小さい複数のパーティション(Partition)またはサブ予測ユニットに分割されてもよい。
【0053】
予測ユニットパーティション(Prediction Unit Partition):予測ユニットが分割された形状を意味する。
【0054】
参照画像リスト(Reference Picture List):画面間予測或いは動き補償に使用される一つ以上の参照画像が含まれているリストを意味する。参照画像リストの種類は、LC(List Combined)、L0(List 0)、L1(List 1)、L2(List 2)、L3(List 3)などがあり得る。画面間予測には、一つ以上の参照画像リストが使用できる。
【0055】
画面間予測インジケータ(Inter Prediction Indicator): 現在ブロックの画面間予測方向(一方向予測、双方向予測など)を意味することができる。または、現在ブロックの予測ブロックを生成するときに使用される参照画像の個数を意味することができる。または、現在ブロックに対して画面間予測或いは動き補償を行うときに使用される予測ブロックの個数を意味することができる。
【0056】
参照画像インデックス(Reference Picture Index):参照画像リストから特定の参照画像を指し示すインデックスを意味する。
【0057】
参照画像(Reference Picture):画面間予測或いは動き補償のために特定のブロックが参照する画像を意味することができる。
【0058】
動きベクトル(Motion Vector):画面間予測或いは動き補償に使用される2次元ベクトルであり、符号化/復号対象画像と参照画像との間のオフセットを意味することができる。例えば、(mvX、mvY)は動きベクトルを示すことができ、mvXは横(horizontal)成分、mvYは縦(vertical)成分を示すことができる。
【0059】
動きベクトル候補(Motion Vector Candidate):動きベクトルを予測するときに予測候補となるブロック、或いはそのブロックの動きベクトルを意味する。また、動きベクトル候補は、動きベクトル候補リストに含まれてもよい。
【0060】
動きベクトル候補リスト(Motion Vector Candidate List):動きベクトル候補を用いて構成されたリストを意味することができる。
【0061】
動きベクトル候補インデックス(Motion Vector Candidate Index):動きベクトル候補リスト内の動きベクトル候補を示すインジケータを意味する。動きベクトル予測器(Motion Vector Predictor)のインデックス(index)とも呼ぶことができる。
【0062】
動き情報(Motion Information):動きベクトル、参照画像インデックス、画面間予測インジケータ(Inter Prediction Indicator)だけでなく、参照画像リスト情報、参照画像、動きベクトル候補、動きベクトル候補インデックス、マージ候補、マージンインデックスなどのうちの少なくとも一つを含む情報を意味することができる。
【0063】
マージ候補リスト(Merge Candidate List):マージ候補を用いて構成されたリストを意味する。
【0064】
マージ候補(Merge Candidate):空間マージ候補、時間マージ候補、組み合わせマージ候補、組み合わせ双予測マージ候補、ゼロマージ候補などを意味する。マージ候補は、画面間予測インジケータ、各リストに対する参照画像インデックス、動きベクトルなどの動き情報を含むことができる。
【0065】
マージインデックス(Merge Index):マージ候補リスト内のマージ候補を指し示す情報を意味する。また、マージインデックスは、空間的/時間的に現在ブロックと隣接するように復元されたブロックのうち、マージ候補を導出したブロックを示すことができる。また、マージインデックスは、マージ候補が持つ動き情報のうちの少なくとも一つを示すことができる。
【0066】
変換ユニット(Transform Unit):変換、逆変換、量子化、逆量子化、変換係数符号化/復号のように残余信号(residual signal)符号化/復号を行うときの基本ユニットを意味する。一つの変換ユニットは、分割されてサイズの小さい複数の変換ユニットに分割できる。
【0067】
スケーリング(Scaling):変換係数レベルに因数を掛ける過程を意味する。変換係数レベルに対するスケーリングの結果として変換係数を生成することができる。スケーリングを逆量子化(dequantization)とも呼ぶことができる。
【0068】
量子化パラメータ(Quantization Parameter):量子化において変換係数に対して変換係数レベル(transform coefficient level)を生成するときに使用する値を意味することができる。または、逆量子化において変換係数レベルをスケーリング(scaling)して変換係数を生成するときに使用する値を意味することもできる。量子化パラメータは、量子化ステップサイズ(step size)にマッピングされた値であり得る。
【0069】
デルタ量子化パラメータ(Delta Quantization Parameter):予測された量子化パラメータと符号化/復号対象ユニットの量子化パラメータとの差分値を意味する。
【0070】
スキャン(Scan):ブロック或いは行列内係数の順序をソートする方法を意味する。例えば、2次元配列を1次元配列にソートすることをスキャンという。または、1次元配列を2次元配列にソートすることもスキャン或いは逆スキャン(Inverse Scan)と呼ぶことができる。
【0071】
変換係数(Transform Coefficient):符号化器で変換を行ってから生成された係数値を意味する。復号器でエントロピー復号及び逆量子化のうちの少なくとも一つを行ってから生成された係数値を意味することもできる。変換係数または残予信号に量子化を適用した量子化レベルまたは量子化変換係数レベル(transform coefficient level)も変換係数の意味に含まれ得る。
【0072】
量子化レベル(Quantized Level):符号化器で変換係数または残余信号に量子化を行って生成された値を意味する。または、復号器で逆量子化を行う前に逆量子化の対象となる値を意味することもできる。同様に、変換及び量子化の結果である量子化変換係数レベルも量子化レベルの意味に含まれ得る。
【0073】
ノンゼロ変換係数(Non-zero Transform Coefficient):値の大きさが0ではない変換係数、或いは値の大きさが0ではない変換係数レベルを意味する。
【0074】
量子化行列(Quantization Matrix):画像の主観的画質或いは客観的画質を向上させるために量子化或いは逆量子化過程で利用する行列を意味する。量子化行列をスケーリングリスト(scaling list)とも呼ぶことができる。
【0075】
量子化行列係数(Quantization Matrix Coefficient):量子化行列内の各元素(element)を意味する。量子化行列係数を行列係数(matrix coefficient)とも呼ぶことができる。
【0076】
基本行列(Default Matrix):符号化器と復号器で予め定義されている所定の量子化行列を意味する。
【0077】
非基本行列(Non-default Matrix):符号化器と復号器で予め定義されず、ユーザーによってシグナリングされる量子化行列を意味する。
【0078】
図1は本発明が適用される符号化装置の一実施形態に係る構成を示すブロック図である。
【0079】
符号化装置100は、エンコーダ、ビデオ符号化装置又は画像符号化装置であり得る。ビデオは、一つ以上の画像を含むことができる。符号化装置100は、一つ以上の画像を順次符号化することができる。
【0080】
図1を参照すると、符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照ピクチャバッファ190を含むことができる。
【0081】
符号化装置100は、入力画像に対してイントラモード及び/又はインターモードで符号化を行うことができる。また、符号化装置100は、入力画像に対する符号化を介してビットストリームを生成することができ、生成されたビットストリームを出力することができる。生成されたビットストリームは、コンピュータ可読記録媒体に保存されるか、或いは有線/無線伝送媒体を介してストリミングされ得る。予測モードとしてイントラモードが使用される場合、スイッチ115はイントラに転換でき、予測モードとしてインターモードが使用される場合、スイッチ115はインターに転換できる。ここで、イントラモードは画面内予測モードを意味することができ、インターモードは画面間予測モードを意味することができる。符号化装置100は、入力画像の入力ブロックに対する予測ブロックを生成することができる。また、符号化装置100は、予測ブロックが生成された後、入力ブロック及び予測ブロックの差分(residual)を符号化することができる。入力画像は、現在符号化の対象である現在画像と称されることもある。入力ブロックは、現在符号化の対象である現在ブロック或いは符号化対象ブロックと称されることもある。
【0082】
予測モードがイントラモードである場合、イントラ予測部120は、現在ブロックの周辺に既に符号化/復号されたブロックのピクセル値を参照画素としても用いることができる。イントラ予測部120は、参照画素を用いて空間的予測を行うことができ、空間的予測を介して入力ブロックに対する予測サンプルを生成することができる。ここで、イントラ予測は画面内予測を意味することができる。
【0083】
予測モードがインターモードである場合には、動き予測部111は、動き予測過程で参照画像から入力ブロックと最もよくマッチする領域を検索することができ、検索された領域を用いて動きベクトルを導出することができる。参照画像は参照ピクチャバッファ190に保存できる。
【0084】
動き補償部112は、動きベクトルを用いる動き補償を行うことにより、予測ブロックを生成することができる。ここで、インター予測は画面間予測或いは動き補償を意味することができる。
【0085】
前記動き予測部111と動き補償部112は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタ(Interpolation Filter)を適用して予測ブロックを生成することができる。画面間予測或いは動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き予測及び動き補償方法がスキップモード(Skip Mode)、マージモード(Merge mode)、向上した動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モード、及び現在ピクチャ参照モードのうちのいずれの方法であるかを判断することができ、各モードに応じて、画面間予測或いは動き補償を行うことができる。
【0086】
減算器125は、入力ブロックと予測ブロックとの間の差分を用いて残余ブロック(residual block)を生成することができる。残余ブロックは残余信号とも称される。残余信号は、原信号と予測信号との差(difference)を意味することができる。または、残余信号は、原信号と予測信号との差を変換(transform)するか、量子化するか、または変換及び量子化することにより生成された信号であり得る。残余ブロックはブロック単位の残余信号であり得る。
【0087】
変換部130は、残余ブロックに対して変換(transform)を行って変換係数(transform coefficient)を生成することができ、変換係数を出力することができる。ここで、変換係数は、残余ブロックに対する変換を行うことにより生成された係数値であり得る。変換省略(transform skip)モードが適用される場合、変換部130は残余ブロックに対する変換を省略することもできる。
【0088】
変換係数または残余信号に量子化を適用することにより、量子化レベル(quantized level)が生成できる。以下、実施形態では、量子化レベルも変換係数と称されることがある。
【0089】
量子化部140は、変換係数または残余信号を量子化パラメータに基づいて量子化することにより量子化レベルを生成することができ、量子化レベルを出力することができる。このとき、量子化部140では、量子化行列を用いて変換係数を量子化することができる。
【0090】
エントロピー符号化部150は、量子化部140で算出された値、又は符号化過程で算出された符号化パラメータ(Coding Parameter)値などに対して確率分布によるエントロピー符号化を行うことにより、ビットストリーム(bitstream)を生成することができ、ビットストリームを出力することができる。エントロピー符号化部150は、画像のピクセルに関する情報及び画像の復号のための情報に対するエントロピー符号化を行うことができる。例えば、画像の復号のための情報は構文要素(syntax element)などを含むことができる。
【0091】
エントロピー符号化が適用される場合、高い発生確率を有するシンボル(symbol)に少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることにより、符号化対象シンボルに対するビット列のサイズが減少できる。エントロピー符号化部150は、エントロピー符号化のために指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの符号化方法を使用することができる。例えば、エントロピー符号化部150は、可変長符号化(Variable Length Coding/Code;VLC)テーブルを用いてエントロピー符号化を行うことができる。また、エントロピー符号化部150は、対象シンボルの2値化(binarization)方法及び対象シンボル/ビン(bin)の確率モデル(probability model)を導出した後、導出された2値化方法、確率モデル、コンテキストモデル(Context Model)を用いて算術符号化を行うこともできる。
【0092】
エントロピー符号化部150は、変換係数レベルを符号化するために、変換係数スキャニング(Transform Coefficient Scanning)方法を介して2次元のブロック形状係数を1次元のベクトルに変更することができる。
【0093】
符号化パラメータ(Coding Parameter)は、構文要素のように符号化器で符号化されて復号器へシグナリングされる情報(フラグ、インデックスなど)だけでなく、符号化或いは復号過程で導出される情報を含むことができ、画像を符号化又は復号するときに必要な情報を意味することができる。例えば、ユニット/ブロックサイズ、ユニット/ブロック深さ、ユニット/ブロック分割情報、ユニット/ブロック分割構造、四分木分割か否か、二分木分割か否か、二分木分割の方向(横方向或いは縦方向)、二分木分割の形態(対称分割或いは非対称分割)、画面内予測モード/方向、参照サンプルフィルタリング方法、予測ブロックフィルタリング方法、予測ブロックフィルタタップ、予測ブロックフィルタ係数、画面間予測モード、動き情報、動きベクトル、参照画像インデックス、画面間予測方向、画面間予測インジケータ、参照画像リスト、参照画像、動きベクトル予測候補、動きベクトル候補リスト、マージモードの使用有無、マージ候補、マージ候補リスト、スキップ(skip)モードの使用有無、補間フィルタの種類、補間フィルタタップ、補間フィルタ係数、動きベクトルのサイズ、動きベクトル表現の精度、変換種類、変換サイズ、1次変換の使用有無情報、2次変換の使用有無情報、1次変換インデックス、2次変換インデックス、残予信号有無情報、符号化ブロックパターン(Coded Block Pattern)、符号化ブロックフラグ(Coded Block Flag)、量子化パラメータ、量子化行列、画面内ループフィルタの適用か否か、画面内ループフィルタ係数、画面内ループフィルタタップ、画面内ループフィルタの形状/形態、デブロッキングフィルタの適用か否か、デブロッキングフィルタ係数、デブロッキングフィルタタップ、デブロッキングフィルタの強度、デブロッキングフィルタの形状/形態、適応的サンプルオフセットの適用か否か、適応的サンプルオフセット値、適応的サンプルオフセットのカテゴリー、適応的サンプルオフセットの種類、適応的ループ内フィルタの適用か否か、適応的ループ内フィルタ係数、適応的ループ内フィルタタップ、適応的ループ内フィルタの形状/形態、二値化/逆二値化方法、コンテキストモデル決定方法、コンテキストモデルアップデート方法、レギュラーモードの実行有無、バイパスモードの実行有無、コンテキストビン、バイパスビン、変換係数、変換係数レベル、変換係数レベルのスキャニング方法、画像ディスプレイ/出力順序、スライス識別情報、スライスタイプ、スライス分割情報、タイル識別情報、タイルタイプ、タイル分割情報、ピクチャタイプ、ビット深度、輝度信号或いは色差信号に対する情報のうち少なくとも一つの値又は組み合わせ形態が符号化パラメータに含まれ得る。
【0094】
ここで、フラグ或いはインデックスをシグナリング(signaling)するというのは、エンコーダでは該当フラグ或いはインデックスをエントロピー符号化(Entropy Encoding)してビットストリーム(Bitstream)に含むことを意味することができ、デコーダではビットストリームから当該フラグ或いはインデックスをエントロピー復号(Entropy Decoding)することを意味することができる。
【0095】
符号化装置100がインター予測を用いた符号化を行う場合、符号化された現在画像は、後で処理される他の画像に対する参照画像として使用できる。よって、符号化装置100は、符号化された現在画像をさらに復元または復号することができ、復元または復号された画像を参照画像として保存することができる。
【0096】
量子化レベルは、逆量子化部160で逆量子化(dequantization)でき、逆変換部170で逆変換(inverse transform)できる。逆量子化及び/又は逆変換された係数は、加算器175を介して予測ブロックと合わせられ得る。逆量子化及び/又は逆変換された係数と予測ブロックとを合わせることにより、復元ブロック(reconstructed block)が生成できる。ここで、逆量子化及び/又は逆変換された係数は、逆量子化及び逆変換のうちの少なくとも一つが行われた係数を意味し、復元された残余ブロックを意味することができる。
【0097】
復元ブロックはフィルタ部180を経ることができる。フィルタ部180は、デブロッキングフィルタ(deblocking filter)、サンプル適応的オフセット(Sample Adaptive Offset;SAO)、適応的ループフィルタ(Adaptive Loop Filter;ALF)などの少なくとも一つを復元ブロック又は復元画像に適用することができる。フィルタ部180はインループフィルタ(in-loop filter)とも称される。
【0098】
デブロッキングフィルタは、ブロック間の境界に生じたブロック歪みを除去することができる。デブロッキングフィルタを行うか否かを判断するために、ブロックに含まれている幾つかの列又は行に含まれているピクセルに基づいて、現在ブロックにデブロッキングフィルタを適用するか否かを判断することができる。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度に応じて、互いに異なるフィルタを適用することができる。
【0099】
サンプル適応的オフセットを用いて符号化エラーを補償するために、ピクセル値に適正オフセット(offset)値を加えることができる。サンプル適応的オフセットは、デブロッキングを行った画像に対してピクセル単位で原本画像とのオフセットを補正することができる。画像に含まれているピクセルを一定数の領域に区分した後、オフセットを行うべき領域を決定し、該当領域にオフセットを適用する方法、又は各ピクセルのエッジ情報を考慮してオフセットを適用する方法を使用することができる。
【0100】
適応的ループフィルタは、復元画像と原画像とを比較した値に基づいてフィルタリングを行うことができる。画像に含まれているピクセルを所定のグループに分けた後、当該グループに適用されるべきフィルタを決定してグループごとに差別的にフィルタリングを行うことができる。適応的ループフィルタを適用するか否かに関連した情報は、符号化ユニット(Coding Unit、CU)ごとにシグナリングでき、それぞれのブロックに応じて、適用される適応的ループフィルタの形状及びフィルタ係数は異なり得る。
【0101】
フィルタ部180を経た復元ブロック又は復元画像は、参照ピクチャバッファ190に保存できる。
図2は本発明が適用される復号装置の一実施形態に係る構成を示すブロック図である。
【0102】
復号装置200はデコーダ、ビデオ復号装置又は画像復号装置であり得る。
【0103】
図2を参照すると、復号装置200は、エントロピー復号部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照ピクチャバッファ270を含むことができる。
【0104】
復号装置200は、符号化装置100から出力されたビットストリームを受信することができる。復号装置200は、コンピュータ可読記録媒体に保存されたビットストリームを受信するか、或いは有線/無線伝送媒体を介してストリミングされるビットストリームを受信することができる。復号装置200は、ビットストリームに対してイントラモード又はインターモードで復号を行うことができる。また、復号装置200は、復号を介して復元された画像または復号された画像を生成することができ、復元された画像または復号された画像を出力することができる。
【0105】
復号に使用される予測モードがイントラモードである場合、スイッチがイントラに転換できる。復号に使用される予測モードがインターモードである場合、スイッチがインターに転換できる。
【0106】
復号装置200は、入力されたビットストリームを復号し、復元された残余ブロック(reconstructed residual block)を取得することができ、予測ブロックを生成することができる。復元された残余ブロック及び予測ブロックが取得されると、復号装置200は、復元された残余ブロックと予測ブロックを加えることにより、復号の対象となる復元ブロックを生成することができる。復号対象ブロックは現在ブロックと称されることもある。
【0107】
エントロピー復号部210は、ビットストリームに対する確率分布に基づくエントロピー復号を行うことにより、シンボルを生成することができる。生成されたシンボルは、量子化レベル形態のシンボルを含むことができる。ここで、エントロピー復号方法は、上述したエントロピー符号化方法の逆過程であり得る。
【0108】
エントロピー復号部210は、変換係数レベルを復号するために、変換係数のスキャニング方法によって1次元のベクトル形態係数を2次元のブロック形態に変更することができる。
【0109】
量子化レベルは、逆量子化部220で逆量子化でき、逆変換部230で逆変換できる。量子化レベルは、逆量子化及び/又は逆変換が行われた結果であって、復元された残余ブロックとして生成できる。このとき、逆量子化部220は、量子化レベルに量子化行列を適用することができる。
【0110】
イントラモードが使用される場合、イントラ予測部240は、復号対象ブロック周辺の、既に復号されたブロックのピクセル値を用いる空間的予測を行うことにより、予測ブロックを生成することができる。
【0111】
インターモードが使用される場合、動き補償部250は、動きベクトル及び参照ピクチャバッファ270に保存されている参照画像を用いる動き補償を行うことにより、予測ブロックを生成することができる。前記動き補償部250は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタを適用して予測ブロックを生成することができる。動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き補償方法がスキップモード、マージモード、AMVPモード、及び現在ピクチャ参照モードのうちのいずれであるかを判断することができ、各モードに応じて動き補償を行うことができる。
【0112】
加算器255は、復元された残余ブロック及び予測ブロックを加算して復元ブロックを生成することができる。フィルタ部260は、デブロッキングフィルタ、サンプル適応的オフセット及び適応的ループフィルタのうちの少なくとも一つを復元ブロック又は復元画像に適用することができる。フィルタ部260は復元画像を出力することができる。復元ブロック又は復元画像は、参照ピクチャバッファ270に保存されてインター予測に使用できる。
【0113】
図3は画像を符号化及び復号するときの画像の分割構造を示す概略図である。
図3は一つのユニットが複数のサブユニットに分割される実施形態を概略的に示す。
【0114】
画像を効率よく分割するために、符号化及び復号において、符号化ユニット(Coding Unit;CU)が使用できる。画像符号化/復号の基本単位として符号化ユニットが使用できる。また、画像符号化/復号の際に、画面内モード及び画面間モードが区分される単位で符号化ユニットを使用することができる。符号化ユニットは、予測、変換、量子化、逆変換、逆量子化、または変換係数の符号化/復号の過程のために使用される基本単位であり得る。
【0115】
図3を参照すると、画像300は、最大符号化ユニット(Largest Coding Unit;LCU)単位で順次分割され、LCU単位で分割構造が決定される。ここで、LCUは、符号化ツリーユニット(Coding Tree Unit;CTU)と同一の意味で使用できる。ユニットの分割は、ユニットに該当するブロックの分割を意味することができる。ブロック分割情報には、ユニットの深さ(depth)に関する情報が含まれ得る。深さ情報は、ユニットが分割される回数及び/又は程度を示すことができる。一つのユニットは、ツリー構造(tree structure)に基づいて深さ情報をもって階層的に分割できる。それぞれの分割されたサブユニットは、深さ情報を持つことができる。深さ情報は、CUの大きさを示す情報であり、各CUごとに保存できる。
【0116】
分割構造は、LCU310内での符号化ユニット(Coding Unit;CU)の分布を意味することができる。このような分布は、一つのCUを複数(2、4、8、16などを含む2以上の正の整数)のCUに分割するか否かによって決定することができる。分割により生成されたCUの横幅と縦幅は、それぞれ分割前のCUの横幅の半分及び縦幅の半分であるか、分割された個数に応じて分割前のCUの横幅よりも小さいサイズ及び縦幅よりも小さいサイズを持つことができる。CUは複数のCUに再帰的に分割できる。CUの分割は、予め定義された深さまたは予め定義されたサイズまで再帰的に行われ得る。例えば、LCUの深さは0であり、最小符号化ユニット(Smallest Coding Unit;SCU)の深さは予め定義された最大深さであり得る。ここで、LCUは、上述したように、最大の符号化ユニットのサイズを持つ符号化ユニットであり、SCUは、最小の符号化ユニットのサイズを持つ符号化ユニットであり得る。LCU310から分割が始まり、分割によってCUの横幅及び/又は縦幅が減少するたびに、CUの深さは1ずつ増加する。
【0117】
また、CUが分割されるか否かに対する情報は、CUの分割情報を介して表現できる。分割情報は1ビットの情報であり得る。SCUを除いた全てのCUは、分割情報を含むことができる。例えば、分割情報の値が第1値であれば、CUが分割されなくてもよく、分割情報の値が第2値であれば、CUが分割されてもよい。
【0118】
図3を参照すると、深さ0のLCUは64×64ブロックであり得る。0は最小深さであり得る。深さ3のSCUは8×8ブロックであり得る。3は最大深さであり得る。32×32ブロック及び16×16ブロックのCUはそれぞれ深さ1及び深さ2で表現できる。
【0119】
例えば、一つの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットの横幅及び縦幅は、分割される前の符号化ユニットの横幅及び縦幅と比較してそれぞれの半分のサイズを持つことができる。一例として、32×32サイズの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットはそれぞれ16×16のサイズを持つことができる。一つの符号化ユニットが4つの符号化ユニットに分割される場合、符号化ユニットは四分木(quad-tree)状に分割されたといえる。
【0120】
例えば、一つの符号化ユニットが2つの符号化ユニットに分割される場合、分割された2つの符号化ユニットの横幅或いは縦幅は、分割される前の符号化ユニットの横幅或いは縦幅と比較して半分のサイズを持つことができる。一例として、32×32サイズの符号化ユニットが2つの符号化ユニットに縦分割される場合、分割された2つの符号化ユニットは、それぞれ16×32のサイズを持つことができる。一つの符号化ユニットが2つの符号化ユニットに分割される場合、符号化ユニットは二分木(binary-tree)状に分割されたといえる。
図3のLCU310は、四分木分割及び二分木分割が全て適用されたLCUの一例である。
【0121】
図4は画面間予測過程の実施形態を説明するための図である。
【0122】
図4に示された四角形は、画像を示すことができる。また、
図4における矢印は、予測方向を示すことができる。各画像は、符号化タイプによってIピクチャ(Intra Picture)、Pピクチャ(Predictive Picture)、Bピクチャ(Bi-predictive Picture)などに分類できる。
【0123】
Iピクチャは、画面間予測なしに、画面内予測を介して符号化できる。Pピクチャは、一方向(例えば、順方向又は逆方向)に存在する参照画像のみを用いる画面間予測を介して符号化できる。Bピクチャは、双方向(例えば、順方向及び逆方向)に存在する参照ピクチャを用いる画面間予測を介して符号化できる。ここで、画面間予測が使用される場合には、符号化器では画面間予測或いは動き補償を行うことができ、復号器ではそれに対応する動き補償を行うことができる。
【0124】
次に、実施形態に係る画面間予測について具体的に説明される。
【0125】
画面間予測或いは動き補償は、参照ピクチャ及び動き情報を用いて行われ得る。
【0126】
現在ブロックに対する動き情報は、符号化装置100と復号装置200のそれぞれによって画面間予測中に導出できる。動き情報は、復元された周辺ブロックの動き情報、コロケーテッドブロック(collocated block;col block)の動き情報及び/又はコロケーテッドブロックに隣接するブロックを用いて導出できる。コロケーテッドブロックは、既に復元されたコロケーテッドピクチャ(collocated picture;col picture)内で現在ブロックの空間的位置に対応するブロックであり得る。ここで、コロケーテッドピクチャは参照ピクチャリストに含まれている少なくとも一つの参照ピクチャのうちの一つのピクチャであり得る。
【0127】
動き情報の導出方式は、現在ブロックの予測モードに応じて異なる。例えば、画面間予測のために適用される予測モードとして、AMVPモード、マージモード、スキップモード、現在ピクチャ参照モードなどがあり得る。ここで、マージモードを動き併合モード(motion merge mode)と呼ぶこともある。
【0128】
例えば、予測モードとしてAMVPが適用される場合、復元された周辺ブロックの動きベクトル、コロケーテッドブロックの動きベクトル、コロケーテッドブロックに隣接するブロックの動きベクトル、(0、0)動きベクトルのうちの少なくとも一つを動きベクトル候補として決定して、動きベクトル候補リスト(motion vector candidate list)を生成することができる。生成された動きベクトル候補リストを用いて動きベクトル候補を導出することができる。導出された動きベクトル候補に基づいて、現在ブロックの動き情報を決定することができる。ここで、コロケーテッドブロックの動きベクトル又はコロケーテッドブロックに隣接するブロックの動きベクトルを時間的動きベクトル候補(temporal motion vector candidate)と呼ぶこともあり、復元された周辺ブロックの動きベクトルを空間的動きベクトル候補(spatial motion vector candidate )と呼ぶこともある。
【0129】
符号化装置100は、現在ブロックの動きベクトルと動きベクトル候補との動きベクトル差分(MVD:Motion Vector Difference)を計算することができ、MVDをエントロピー符号化することができる。また、符号化装置100は、動きベクトル候補インデックスをエントロピー符号化してビットストリームを生成することができる。動きベクトル候補インデックスは、動きベクトル候補リストに含まれている動きベクトル候補の中から選択された最適な動きベクトル候補を指示することができる。復号装置200は、動きベクトル候補インデックスをビットストリームからエントロピー復号し、エントロピー復号された動きベクトル候補インデックスを用いて、動きベクトル候補リストに含まれている動きベクトル候補の中から復号対象ブロックの動きベクトル候補を選択することができる。また、復号装置200は、エントロピー復号されたMVDと動きベクトル候補との和を用いて復号対象ブロックの動きベクトルを導出することができる。
【0130】
ビットストリームは、参照ピクチャを指示する参照画像インデックスなどを含むことができる。参照画像インデックスは、エントロピー符号化されてビットストリームを介して符号化装置100から復号装置200にシグナリングできる。復号装置200は、導出された動きベクトルと参照画像インデックス情報に基づいて復号対象ブロックに対する予測ブロックを生成することができる。
【0131】
動き情報導出方式の他の例として、マージモードがある。マージモードとは、複数のブロックに対する動きの併合を意味することができる。マージモードは、現在ブロックの動き情報を周辺ブロックの動き情報から導出するモードを意味することができる。マージモードが適用される場合、復元された周辺ブロックの動き情報及び/又はコロケーテッドブロックの動き情報を用いて、マージ候補リスト(merge candidate list)を生成することができる。動き情報は、1)動きベクトル、2)参照画像インデックス、及び3)画面間予測インジケータのうちの少なくとも一つを含むことができる。予測インジケータは、一方向(L0予測、L1予測)又は双方向であり得る。
【0132】
マージ候補リストは、動き情報が保存されたリストを示すことができる。マージ候補リストに保存される動き情報は、現在ブロックに隣接する周辺ブロックの動き情報(空間マージ候補(spatial merge candidate))、参照画像における、現在ブロックに対応する(collocated)ブロックの動き情報(時間マージ候補(temporal merge candidate))、既にマージ候補リストに存在する動き情報の組み合わせによって生成された新しい動き情報及びゼロマージ候補のうちの少なくとも一つであり得る。
【0133】
符号化装置100は、マージフラグ(merge flag)およびマージインデックス(merge index)のうちの少なくとも一つをエントロピー符号化してビットストリームを生成した後、復号装置200へシグナリングすることができる。マージフラグは、ブロックごとにマージモードを行うかどうかを示す情報であり、マージインデックスは、現在ブロックに隣接する周辺ブロックのうちのどのブロックとマージを行うかについての情報であり得る。例えば、現在ブロックの周辺ブロックは、現在ブロックの左側隣接ブロック、上側隣接ブロック及び時間的隣接ブロックのうちの少なくとも一つを含むことができる。
【0134】
スキップモードは、周辺ブロックの動き情報をそのまま現在ブロックに適用するモードであり得る。スキップモードが使用される場合、符号化装置100は、どのブロックの動き情報を現在ブロックの動き情報として用いるかについての情報をエントロピー符号化してビットストリームを介して復号装置200へシグナリングすることができる。このとき、符号化装置100は、動きベクトル差分情報、符号化ブロックフラグ及び変換係数レベルのうちの少なくとも一つに関する構文要素を復号装置200へシグナリングしなくてもよい。
【0135】
現在ピクチャ参照モードは、現在ブロックが属する現在ピクチャ内の既に復元された領域を用いた予測モードを意味することができる。この際、前記既に復元された領域を特定するために、ベクトルが定義できる。現在ブロックが現在ピクチャ参照モードで符号化されるかどうかは、現在ブロックの参照画像インデックスを用いて符号化できる。現在ブロックが現在ピクチャ参照モードで符号化されたブロックであるかどうかを示すフラグ或いはインデックスがシグナリングされてもよく、現在ブロックの参照画像インデックスを用いて類推されてもよい。現在ブロックが現在ピクチャ参照モードで符号化された場合、現在ピクチャは、現在ブロックのための参照画像リスト内で固定位置又は任意の位置に追加できる。前記固定位置は、例えば、参照画像インデックスが0である位置または最後の位置であり得る。現在ピクチャが参照画像リスト内で任意の位置に追加される場合、前記任意の位置を示す別途の参照画像インデックスがシグナリングされてもよい。
【0136】
上述した内容に基づいて、本発明に係る画像符号化/復号方法について詳細に考察する。
【0137】
図5は本発明の一実施形態に係る画像符号化方法を示すフローチャートであり、
図6は本発明の一実施形態に係る画像復号方法を示すフローチャートである。
【0138】
図5を参照すると、符号化装置は、マージ候補を導出し(S501)、導出されたマージ候補に基づいてマージ候補リストを生成することができる。マージ候補リストが生成されると、生成されたマージ候補リストを用いて動き情報を決定し(S502)、決定された動き情報を用いて現在ロックの動き補償を行うことができる(S503)。その後、符号化装置は、動き補償に関する情報をエントロピー符号化することができる(S504)。
【0139】
図6を参照すると、復号装置は、符号化装置から受信した動き補償に関する情報をエントロピー復号し(S601)、マージ候補を導出し(S602)、導出されたマージ候補に基づいてマージ候補リストを生成することができる。マージ候補リストが生成されると、生成されたマージ候補リストを用いて現在ブロックの動き情報を決定することができる(S603)。その後、復号装置は、動き情報を用いて動き補償を行うことができる(S604)。
【0140】
ここで、
図5及び
図6は
図4で説明したマージモードが適用された一例であり得る。
【0141】
以下、
図5及び
図6に示された各ステップについて詳細に考察する。
【0142】
まず、マージ候補を導出するステップについて具体的に説明する(S501、S602)。
【0143】
現在ブロックに対するマージ候補は、空間マージ候補、時間マージ候補又は追加マージ候補のうちの少なくとも一つを含むことができる。ここで、空間マージ候補を導出するというのは、空間マージ候補を導出してマージ候補リストに追加することを意味することができる。
【0144】
図7は現在ブロックの空間マージ候補おおび時間マージ候補を導出する例を説明するための図である。
【0145】
図7を参照すると、現在ブロックの空間マージ候補は、現在ブロックXに隣接する周辺ブロックから導出できる。現在ブロックに隣接する周辺ブロックは、現在ブロックの上側に隣接するブロックB1、現在ブロックの左側に隣接するブロックA1、現在ブロックの右上隅に隣接するブロックB0、現在ブロックの左上隅に隣接するブロックB2、及び現在ブロックの左下隅に隣接するブロックA0のうちの少なくとも一つを含むことができる。
【0146】
現在ブロックの空間マージ候補を導出するために、現在ブロックに隣接する周辺ブロックが現在ブロックの空間マージ候補の導出に使用できるかどうかを判断することができる。この際、現在ブロックに隣接する周辺ブロックが現在ブロックの空間マージ候補の導出に使用できるかどうかは、所定の優先順位に基づいて決定できる。一例として、
図7に示された例において、A1、B1、B0、A0及びB2位置のブロックの順序通りに空間マージ候補導出可用性が判断できる。前記可用性判断順序に基づいて決定された空間マージ候補を、現在ブロックのマージ候補リストに順次追加することができる。
【0147】
一例として、A1、B0、A0、B2位置の周辺ブロックから4つの空間マージ候補が導出された場合には、マージ候補リストに導出された空間マージ候補が順次追加できる。
【0148】
また、符号化パラメータのうちの少なくとも一つに基づいて、前記空間マージ候補を導出することができる。
【0149】
ここで、空間マージ候補の動き情報は、L0及びL1の動き情報だけでなく、L2、L3などの3つ以上の動き情報を持つことができる。ここで、参照画像リストは、L0、L1、L2、L3などの少なくとも一つを含むことができる。
【0150】
次に、現在ブロックの時間マージ候補を導出する方法について説明する。
【0151】
現在ブロックの時間マージ候補は、現在画像の対応位置画像(Co-located picture)に含まれている復元ブロックから導出できる。ここで、対応位置画像は、現在画像の前に符号化/復号が完了した画像であって、現在画像とは異なる時間的順序を持つ画像であり得る。
【0152】
時間マージ候補を導出するというのは、時間マージ候補を導出してマージ候補リストに追加することを意味することができる。
【0153】
図7を参照すると、現在画像の対応位置画像(collocated picture)において、現在ブロックXと空間的に同じ位置に対応するブロックの外部位置を含むブロック、又は現在ブロックXと空間的に同じ位置に対応するブロックの内部位置を含むブロックから、現在ブロックの時間マージ候補を導出することができる。ここで、時間マージ候補は、対応位置ブロックの動き情報を意味することができる。一例として、現在ブロックXの時間マージ候補は、現在ブロックと空間的に同じ位置に対応するブロックCの右下隅に隣接するブロックH、又はブロックCの中心点を含むブロックC3から導出できる。現在ブロックの時間マージ候補を導出するために使用されるブロックH又はブロックC3などを、「対応位置ブロック(collocated block)」と呼ぶことができる。
【0154】
ブロックCの外部位置を含むブロックHから現在ブロックの時間マージ候補を導出することができる場合、ブロックHが現在ブロックの対応位置ブロックとして設定できる。この場合、現在ブロックの時間マージ候補は、ブロックHの動き情報に基づいて導出できる。これに対し、ブロックHから現在ブロックの時間マージ候補を導出することができない場合には、ブロックCの内部位置を含むブロックC3が、現在ブロックの対応位置ブロックとして設定できる。この場合、現在ブロックの時間マージ候補は、ブロックC3の動き情報に基づいて導出できる。もし、ブロックH及びブロックC3から現在ブロックの時間マージを導出することができない場合には(例えば、ブロックH及びブロックC3の両方が画面内符号化された場合)、現在ブロックに対する時間マージ候補は導出されないか、或いはブロックH及びブロックC3とは異なる位置のブロックから導出できるだろう。
【0155】
他の例として、現在ブロックの時間マージ候補は、対応位置画像内の複数のブロックから導出されてもよい。一例として、ブロックH及びブロックC3から現在ブロックに対する複数の時間的マージ候補を導出することもできる。
【0156】
現在ブロックが含まれている現在画像と現在ブロックの参照画像との距離が対応位置ブロックの含まれている対応位置画像と対応位置ブロックの参照画像との距離とは異なる場合には、現在ブロックの時間マージ候補の動きベクトルは、対応位置ブロックの動きベクトルをスケーリングすることにより取得できる。ここで、スケーリングは、現在画像と現在ブロックが参照する参照画像との距離、及び対応位置画像と対応位置ブロックが参照する参照画像との距離のうちの少なくとも一つに基づいて行われ得る。一例として、現在画像と現在ブロックが参照する参照画像との距離及び対応位置画像と対応位置ブロックが参照する参照画像との距離の比率に応じて対応位置ブロックの動きベクトルをスケーリングすることにより、現在ブロックの時間マージ候補の動きベクトルが導出できる。
【0157】
また、現在ブロック、周辺ブロック又は対応位置ブロックの符号化パラメータのうちの少なくとも一つに基づいて、時間マージ候補、対応位置画像、対応位置ブロック、予測リスト活用フラグ、及び参照画像インデックスのうちの少なくとも一つを導出することもできる。
【0158】
空間マージ候補及び時間マージ候補のうちの少なくとも一つを導出した後、導出されたマージ候補順にマージ候補リストに追加してマージ候補リストを生成することができる。
【0159】
次に、現在ブロックの追加マージ候補を導出する方法について説明する。
【0160】
追加マージ候補は、変更された空間マージ候補(modified spatial merge candidate)、変更された時間マージ候補(modified temporal merge candidate)、組み合わせられたマージ候補(combined merge candidate)、所定の動き情報値を持つマージ候補のうちの少なくとも一つを意味することができる。ここで、追加マージ候補を導出することは、追加マージ候補を導出してマージ候補リストに追加することを意味することができる。
【0161】
変更された空間マージ候補は、導出された空間マージ候補の動き情報のうちの少なくとも一つを変更したマージ候補を意味することができる。
【0162】
変更された時間マージ候補は、導出された時間マージ候補の動き情報のうちの少なくとも一つを変更したマージ候補を意味することができる。
【0163】
組み合わせられたマージ候補は、マージ候補リストに存在する空間マージ候補、時間マージ候補、変更された空間マージ候補、変更された時間マージ候補、組み合わせられたマージ候補、所定の動き情報値を持つマージ候補の動き情報のうちの少なくとも一つの動き情報を組み合わせて導出されるマージ候補を意味することができる。
【0164】
又は、組み合わせられたマージ候補は、マージ候補リストに存在ないが、空間マージ候補及び時間マージ候補のうちの少なくとも一つを導出することができるブロックから導出された空間マージ候補及び導出された時間マージ候補と、これらに基づいて生成された、変更された空間マージ候補、変更された時間マージ候補、組み合わせられたマージ候補、及び所定の動き情報値を持つマージ候補のうちの少なくとも一つの動き情報を組み合わせて導出されるマージ候補を意味することができる。
【0165】
又は、復号器でビットストリームからエントロピー復号した動き情報を用いて、組み合わせられたマージ候補を導出することができる。このとき、符号化器で組み合わせられたマージ候補の導出に使用された動き情報は、ビットストリームにエントロピー符号化できる。
【0166】
組み合わせられたマージ候補は、組み合わせ双予測マージ候補を意味することができる。組み合わせ双予測マージ候補は、双予測(bi-prediction)を用いるマージ候補であって、L0動き情報とL1動き情報を持つマージ候補を意味することができる。
【0167】
所定の動き情報値を持つマージ候補は、動きベクトルが(0、0)であるゼロマージ候補を意味することができる。一方、所定の動き情報値を持つマージ候補は、符号化装置及び復号装置で同一の値を使用するように既に設定されてもよい。
【0168】
現在ブロック、周辺ブロック、又は対応位置ブロックの符号化パラメータのうちの少なくとも一つに基づいて、変更された空間マージ候補、変更された時間マージ候補、組み合わせられたマージ候補、所定の動き情報値を持つマージ候補のうちの少なくとも一つを導出又は生成することができる。また、変更された空間マージ候補、変更された時間マージ候補、組み合わせられたマージ候補、所定の動き情報値を持つマージ候補のうちの少なくとも一つを、現在ブロック、周辺ブロック、又は対応位置ブロックの符号化パラメータのうちの少なくとも一つに基づいてマージ候補リストに追加することができる。
【0169】
一方、マージ候補リストのサイズは、現在ブロック、周辺ブロック、又は対応位置ブロックの符号化パラメータに基づいて決定でき、符号化パラメータに基づいてサイズが変更できる。
【0170】
一方、本発明では、マージ候補導出の際に動きベクトル補正方法を用いて導出された補正動きベクトルを用いることができる。これについての具体的な説明は、
図7乃至
図28を参照して後述する。
【0171】
次に、生成されたマージ候補リストを用いて、現在ブロックの動き情報を決定するステップについて具体的に説明する(S502、S603)。
【0172】
符号化器は、動き推定(motion estimation)を介してマージ候補リスト内のマージ候補のうち、動き補償に用いられるマージ候補を決定し、決定されたマージ候補を指示するマージ候補インデックス(merge_idx)をビットストリームに符号化することができる。
【0173】
一方、符号化器は、予測ブロックを生成するために、上述したマージ候補インデックスに基づいてマージ候補リストからマージ候補を選択して、現在ブロックの動き情報を決定することができる。ここで、決定された動き情報に基づいて動き補償(motion compensation)を行い、現在ブロックの予測ブロックを生成することができる。
【0174】
復号器は、ビットストリーム内のマージ候補インデックスを復号して、マージ候補インデックスが指示するマージ候補リスト内のマージ候補を決定することができる。決定されたマージ候補は、現在ブロックの動き情報として決定することができる。決定された動き情報は、現在ブロックの動き補償に使用される。この際、動き補償はインター予測(inter prediction)の意味と同一であり得る。
【0175】
次に、決定された動き情報を用いて、動き補償を行うステップについて説明する(S503、S604)。
【0176】
符号化装置及び復号装置は、決定された動き情報を用いて、画面間予測又は動き補償を行うことができる(S503、S604)。ここで、現在ブロックは、決定されたマージ候補の動き情報を持つことができる。
【0177】
現在ブロックは、予測方向に基づいて、最小1個から最大N個の動きベクトルを持つことができる。動きベクトルを用いて、最小1個から最大N個の予測ブロックを生成して、現在ブロックの最終予測ブロックを導出することができる。
【0178】
一例として、現在ブロックが1つの動きベクトルを持つ場合、前記動きベクトル(又は動き情報)を用いて生成された予測ブロックを、現在ブロックの最終予測ブロックとして決定することができる。
【0179】
一方、現在ブロックが複数の動きベクトル(又は動き情報)を持つ場合、複数の動きベクトル(又は動き情報)を用いて複数の予測ブロックを生成し、複数の予測ブロックの重み付け和に基づいて、現在ブロックの最終予測ブロックを決定することができる。複数の動きベクトル(又は動き情報)によって指示される複数の予測ブロックそれぞれを含む参照画像は、互いに異なる参照画像リストに含まれてもよく、同じ参照画像リストに含まれてもよい。
【0180】
一例として、空間動きベクトル候補、時間動きベクトル候補、所定の値を持つ動きベクトル、又は組み合わせられた動きベクトル候補のうちの少なくとも一つに基づいて、複数の予測ブロックを生成し、複数の予測ブロックの重み付け和に基づいて、現在ブロックの最終予測ブロックを決定することができる。
【0181】
他の例として、既に設定された動きベクトル候補インデックスによって指示される動きベクトル候補に基づいて、複数の予測ブロックを生成し、複数の予測ブロックの重み付け和に基づいて、現在ブロックの最終予測ブロックを決定することができる。また、既に設定された動きベクトル候補インデックスの範囲に存在する動きベクトル候補に基づいて、複数の予測ブロックを生成し、複数の予測ブロックの重み付け和に基づいて、現在ブロックの最終予測ブロックを決定することができる。
【0182】
各予測ブロックに適用される重みは、1/N(ここで、Nは生成された予測ブロックの数)で均等な値を持つことができる。一例として、2つの予測ブロックが生成された場合には、各予測ブロックに適用される重みは1/2であり、3つの予測ブロックが生成された場合には、各予測ブロックに適用される重みは1/3であり、4つの予測ブロックが生成された場合には、各予測ブロックに適用される重みは1/4であり得る。又は、各予測ブロックごとに異なる重みを与え、現在ブロックの最終予測ブロックを決定することもできる。
【0183】
重みは、予測ブロック別の固定値を持たなければならないのではなく、予測ブロック別の可変値を持つこともできる。このとき、各予測ブロックに適用される重みは、互いに同一でもよく、互いに異なってもよい。一例として、2つの予測ブロックが生成された場合、2つの予測ブロックに適用される重みは、(1/2、1/2)であるだけでなく、(1/3、2/3)、(1/4、3/4)、(2/5、3/5)、(3/8、5/8)などのようにブロック別に可変的な値であり得る。一方、重みは正の実数の値又は負の実数の値であり得る。一例として、(-1/2、3/2)、(-1/3、4/3)、(-1/4、5/4)などのように陰の実数の値を含むことができる。
【0184】
一方、可変重みを適用するために、現在ブロックのための一つ又はそれ以上の重み情報がビットストリームを介してシグナリングされてもよい。重み情報は、予測ブロック別にそれぞれシグナリングされてもよく、参照画像別にシグナリングされてもよい。複数の予測ブロックが一つの重み情報を共有することも可能である。
【0185】
符号化装置及び復号装置は、予測ブロックリスト活用フラグに基づいて予測された動きベクトル(又は動き情報)を用いるか否かを判断することができる。一例として、各参照画像リスト別に予測ブロックリスト活用フラグが第1の値「1」を指示する場合には、符号化装置及び復号装置は、画面間予測又は動き補償を行うために、現在ブロックの予測された動きベクトルを用いることができるということを示し、第2の値「0」を指示する場合には、符号化装置及び復号装置は、現在ブロックの予測された動きベクトルを用いて画面間予測又は動き補償を行わないことを示すことができる。一方、予測ブロックリスト活用フラグの第1の値は0、第2の値は1にそれぞれ設定されてもよい。下記数式1乃至数式3は、それぞれ、現在ブロックの画面間予測インジケータがPRED_BI、PRED_TRI及びPRED_QUADであり、各参照画像リストに対する予測方向が一方向である場合には、現在ブロックの最終予測ブロックを生成する例を示す。
【数1】
【数2】
【数3】
【0186】
前記数式1乃至3において、P_BI、P_TRI、P_QUADは、現在ブロックの最終予測ブロックを示し、LX(X=0、1、2、3)は、参照画像リストを意味することができる。WF_LXは、LXを用いて生成された予測ブロックの重み値を示し、OFFSET_LXは、LXを用いて生成された予測ブロックに対するオフセット値を示すことができる。P_LXは、現在ブロックのLXに対する動きベクトル(又は動き情報)を用いて生成した予測ブロックを意味する。RFは、丸め係数(Rounding factor)を意味し、0、正数又は負数に設定できる。LX参照画像リストは、ロング・ターム(long-term)参照画像、デブロッキングフィルタ(deblocking filter)を行っていない参照画像、サンプル適応的オフセット(sample adaptive offset)を行っていない参照画像、適応的ループフィルタ(adaptive loop filter)を行っていない参照画像、デブロッキングフィルタ及び適応的オフセットのみ行っている参照画像、デブロッキングフィルタ及び適応的ループフィルタのみを行っている参照画像、サンプル適応的オフセット及び適応的ループフィルタのみを行っている参照画像、デブロッキングフィルタ、サンプル適応的オフセット及び適応的ループフィルタをいずれも行っている参照画像のうちの少なくとも一つを含むことができる。この場合、LX参照画像リストは、L2参照画像リスト及びL3参照画像リストのうちの少なくとも一つであり得る。
【0187】
所定の参照画像リストに対する予測方向が複数方向である場合にも、予測ブロックの重み付け和に基づいて、現在ブロックに対する最終予測ブロックを取得することができる。このとき、同じ参照画像リストから導出された予測ブロックに適用される重みは、同じ値を持ってもよく、異なる値を持ってもよい。
【0188】
複数の予測ブロックに対する重みWF_LXおよびオフセットOFFSET_LXのうちの少なくとも一つは、エントロピー符号化/復号される符号化パラメータであり得る。他の例として、重み及びオフセットは、現在ブロックの周辺の符号化/復号された周辺ブロックから導出されてもよい。ここで、現在ブロックの周辺の周辺ブロックは、現在ブロックの空間動きベクトル候補を導出するために用いられるブロック、又は現在ブロックの時間動きベクトル候補を導出するために用いられるブロックのうちの少なくとも一つを含むことができる。
【0189】
他の例として、重み及びオフセットは、現在画像と各参照画像のディスプレイ順序(POC)に基づいて決定されてもよい。この場合、現在画像と参照画像との距離が遠いほど、重み又はオフセットを小さい値に設定し、現在画像と参照画像との距離が近いほど重み又はオフセットを大きい値に設定することができる。一例として、現在画像とL0参照画像のPOCの差が2である場合、L0参照画像を参照して生成された予測ブロックに適用される重み値を1/3に設定するのに対し、現在画像とL0参照画像のPOCの差が1である場合、L0参照画像を参照して生成された予測ブロックに適用される重み値を2/3に設定することができる。上記に例示したように、重み又はオフセット値は、現在画像と参照画像間のディスプレイ順序の差と反比例の関係を持つことができる。他の例として、重み又はオフセット値は、現在画像と参照画像間のディスプレイ順序の差と比例の関係を持つようにすることも可能である。
【0190】
他の例として、符号化パラメータのうちの少なくとも一つに基づいて、重み又はオフセットのうちの少なくとも一つをエントロピー符号化/復号することもできる。また、符号化パラメータのうちの少なくとも一つに基づいて、予測ブロックの重み付け和を計算することもできる。
【0191】
複数の予測ブロックの重み付け和は、予測ブロック内の一部の領域でのみ適用できる。ここで、一部の領域は、予測ブロック内の境界に対応する領域であり得る。上述の如く、一部の領域にのみ重み付け和を適用するために、予測ブロックのサブブロック(sub-block)単位で重み付け和を行うことができる。
【0192】
領域情報が指示するブロックサイズのブロック内でより小さなブロックサイズのサブブロックでは、同じ予測ブロック又は同じ最終予測ブロックを用いて画面間予測又は動き補償を行うことができる。
【0193】
また、領域情報が指示するブロック深さのブロック内でより深いブロック深さのサブブロックでは、同じ予測ブロック又は同じ最終予測ブロックを用いて画面間予測又は動き補償を行うことができる。
【0194】
また、動きベクトル予測を用いて予測ブロックの重み付け和を計算する際、動きベクトル候補リスト内に存在する少なくとも一つの動きベクトル候補を用いて重み付け和を計算し、現在ブロックの最終予測ブロックとして使用することができる。
【0195】
例えば、空間動きベクトル候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0196】
例えば、空間動きベクトル候補と時間動きベクトル候補で予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0197】
例えば、組み合わせられた動きベクトル候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0198】
例えば、特定の動きベクトル候補インデックスを持つ動きベクトル候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0199】
例えば、特定の動きベクトル候補インデックスの範囲内に存在する動きベクトル候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0200】
また、マージモードを用いて予測ブロックの重み付け和を計算する際、マージ候補リスト内に存在する少なくとも一つのマージ候補を用いて重み付け和を計算し、現在ブロックの最終予測ブロックとして使用することができる。
【0201】
例えば、空間マージ候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0202】
例えば、空間マージ候補と時間マージ候補で予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0203】
例えば、組み合わせられたマージ候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0204】
例えば、特定のマージ候補インデックスを持つマージ候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0205】
例えば、特定のマージ候補インデックスの範囲内に存在するマージ候補のみで予測ブロックを生成し、予測ブロックの重み付け和を計算し、計算された重み付け和を現在ブロックの最終予測ブロックとして使用することができる。
【0206】
符号化器及び復号器では、現在ブロックで持つ動きベクトル/情報を用いて動き補償を行うことができる。このとき、動き補償の結果である最終予測ブロックは、少なくとも一つの予測ブロックを用いて生成できる。ここで、現在ブロックは、現在符号化ブロック(coding block)、現在予測ブロック(prediction block)のうちの少なくとも一つを意味することができる。
【0207】
次に、動き補償に関する情報をエントロピー符号化/復号する過程について詳細に説明する(S504、S601)。
【0208】
符号化装置は、動き補償に関する情報を、ビットストリームを介してエントロピー符号化し、復号装置は、ビットストリームに含まれている動き補償に関する情報をエントロピー復号することができる。ここで、エントロピー符号化/復号される動き補償に関する情報は、画面間予測インジケータ(Inter Prediction Indicator)(inter_pred_idc)、参照画像インデックス(ref_idx_l0、ref_idx_l1、ref_idx_l2、ref_idx_l3)、動きベクトル候補インデックス(mvp_l0_idx、mvp_l1_idx、mvp_l2_idx 、mvp_l3_idx)、動きベクトル差分(motion vector difference)、スキップモードの使用有無情報(cu_skip_flag)、マージモードの使用有無情報(merge_flag)、マージインデックス情報(merge_index)、マージモードに基づく動きベクトル補正の使用有無情報(fruc_flag)、重み値(wf_l0、wf_l1、wf_l2、wf_l3)およびオフセット値(offset_l0、offset_l1、offset_l2、offset_l3)のうちの少なくとも一つを含むことができる。
【0209】
画面間予測インジケータは、現在ブロックの画面間予測で符号化/復号される場合、現在ブロックの画面間予測方向又は予測方向の個数のうちの少なくとも一つを意味することができる。一例として、画面間予測インジケータは、一方向予測を指示するか、或いは双方向予測、3方向予測又は4方向予測などの複数の方向予測を指示することができる。画面間予測インジケータは、現在ブロックが予測ブロックを生成するときに使用する参照画像の数を意味することができる。又は、一つの参照画像が複数の方向予測のために用いられてもよい。この場合、M個の参照画像を用いてN(N>M)個の方向予測を行うことができる。画面間予測インジケータは、現在ブロックに対する画面間予測又は動き補償を行うときに使用される予測ブロックの数を意味することもできる。
【0210】
参照画像インジケータは、現在ブロックの予測方向の数に応じて、一方向(PRED_LX)、双方向(PRED_BI)、3方向(PRED_TRI)、4方向(PRED_QUAD)又はそれ以上の方向性を指示することができる。
【0211】
予測リスト活用フラグ(prediction list utilization flag)は、当該参照画像リストを用いて予測ブロックを生成するかどうかを示す。
【0212】
参照画像インデックスは、各参照画像リストから、現在ブロックが参照する参照画像を特定することができる。各参照画像リストに対して1つ以上の参照画像インデックスがエントロピー符号化/復号できる。現在ブロックは、1つ以上の参照画像インデックスを用いて動き補償を行うことができる。
【0213】
動きベクトル候補インデックスは、参照画像リスト別又は参照画像インデックス別に生成された動きベクトル候補リストから、現在ブロックに対する動きベクトル候補を示す。動きベクトル候補リスト別に少なくとも一つの動きベクトル候補インデックスがエントロピー符号化/復号できる。現在ブロックは、少なくとも一つの動きベクトル候補インデックスを用いて動き補償を行うことができる。
【0214】
動きベクトル差分は、動きベクトルと予測された動きベクトルとの差分値を示す。現在ブロックに対して参照画像リスト又は参照画像インデックス別に生成された動きベクトル候補リストに対して1つ以上の動きベクトル差分がエントロピー符号化/復号できる。現在ブロックは、1つ以上の動きベクトル差分を用いて動き補償を行うことができる。
【0215】
スキップモードの使用有無情報(cu_skip_flag)は、第1の値である1を持つ場合にはスキップモードの使用を指示し、第2の値である0を持つ場合にはスキップモードの使用を指示しない。スキップモードの使用有無情報に基づいて、スキップモードを用いて現在ブロックの動き補償を行うことができる。
【0216】
マージモードの使用有無情報(merge_flag)は、第1の値である1を持っている場合にはマージモードの使用を指示し、第2の値である0を持つ場合にはマージモードの使用を指示しない。マージモードを使用するか否かの情報に基づいて、マージモードを用いて現在ブロックの動き補償を行うことができる。
【0217】
マージ索引情報(merge_index)は、マージ候補リスト(merge candidate list)内のマージ候補(merge candidate)を指示する情報を意味することができる。
【0218】
また、マージインデックス情報は、マージインデックス(merge index)に対する情報を意味することができる。
【0219】
また、マージインデックス情報は、空間的/時間的に現在ブロックと隣接するように復元されたブロックのうちのマージ候補を導出したブロックを指示することができる。
【0220】
また、マージインデックス情報は、マージ候補が持つ動き情報のうちの少なくとも一つを指示することができる。例えば、マージインデックス情報は、第1の値である0を持つ場合にはマージ候補リスト内の一番目のマージ候補を指示することができ、第2の値である1を持つ場合にはマージ候補リスト内の二番目のマージ候補を指示することができ、第3の値である2を持つ場合にはマージ候補リスト内の三番目のマージ候補を指示することができる。同様に、第4乃至第Nの値を持つ場合、マージ候補リスト内の順序に基づいて、値に該当するマージ候補を指示することができる。ここで、Nは、0を含む正の整数を意味することができる。
【0221】
マージモードインデックス情報に基づいて、マージモードを用いて現在ブロックの動き補償を行うことができる。
【0222】
マージモードに基づく動きベクトル補正の使用有無情報(fruc_flag)は、マージモードに基づく動きベクトル補正の使用有無を指示する情報を意味することができる。符号化ブロック及び予測ブロックのうちの少なくとも一つの単位でエントロピー符号化/復号できる。
【0223】
例えば、マージモードに基づく動きベクトル補正の使用有無情報は、第1の値である1を持つ場合にはマージモードに基づく動きベクトルの使用を指示し、第2の値である0を持つ場合にはマージモードに基づく動きベクトの使用を指示しない。ここで、第1の値と第2の値は変更できる。
【0224】
ただし、これに限定されず、符号化器/復号器で既に定義された他の画面間予測モード(一例として、スキップモード、AMVPモードなど)に基づいて動きベクトル補正を使用するかどうかが決定できる。すなわち、fruc_flagが明示的にシグナリングされない場合であっても、所定の条件の下で動きベクトル補正が選択的に使用されてもよい。
【0225】
一方、マージモードに基づく動きベクトル補正の使用有無情報(fruc_falg)は、マージモードの使用有無情報(merge_flag)がマージモードの使用を指示する第1の値を持つ場合、エントロピー復号することができる。
【0226】
現在ブロックに対する動き補償の際に2つ以上の予測ブロックが生成された場合には、各予測ブロックに対する重み付け和(weighted sum)を介して、現在ブロックに対する最終予測ブロックが生成できる。重み付け和演算の際に、各予測ブロックに対して重み及びオフセットのうちの少なくとも一つが適用できる。重み(weighting factor)又はオフセット(offset)などのように重み付け和演算に用いられる重み付け和因子は、参照画像リスト、参照画像、動きベクトル候補インデックス、動きベクトル差分、動きベクトル、スキップモードの使用有無情報、マージモードの使用有無情報、マージインデックス情報のうちの少なくとも一つの個数だけ、又は少なくとも一つ以上の個数だけエントロピー符号化/復号できる。また、各予測ブロックの重み付け和因子は、画面間予測インジケータに基づいてエントロピー符号化/復号できる。ここで、重み付け和因子は、重み値及びオフセットのうちの少なくとも一つを含むことができる。
【0227】
CTUにおける動き補償に関する情報がエントロピー符号化/復号される場合、動き補償に関する情報の値に応じて、CTUに存在する全部又は一部のブロックで、当該動き補償に関する情報を用いて動き補償を行うことができる。
【0228】
CTU又はCTUのサブユニットから動き補償に関する情報をエントロピー符号化/復号する場合、所定のブロックサイズ又は所定のブロック深さのうちの少なくとも一つに基づいて、動き補償に関する情報をエントロピー符号化/復号することができる。
【0229】
ここで、所定のブロックサイズ又は所定のブロック深さに関する情報は、さらにエントロピー符号化/復号できる。又は、所定のブロックサイズ又は所定のブロック深さに関する情報は、符号化器及び復号器で所定の値、符号化パラメータのうちの少なくとも一つ又は他の構文要素の値のうちの少なくとも一つに基づいて決定されることも可能である。
【0230】
所定のブロックサイズと同じかそれよりも大きいブロックサイズを持つブロックのみでは、動き補償に関する情報がエントロピー符号化/復号されてもよく、所定のブロックサイズよりも小さいブロックサイズを持つブロックでは、動き補償に関する情報がエントロピー符号化/復号されなくてもよい。この場合には、所定のブロックサイズと同じかそれよりも大きいブロックサイズを持つブロック内のサブブロックは、所定のブロックサイズと同じかそれより大きいブロックサイズを持つブロックでエントロピー符号化/復号された動き補償に関する情報に基づいて動き補償を行うことができる。すなわち、所定のブロックサイズと同じかそれよりも大きいブロックサイズを持つブロック内のサブブロックは、動きベクトル候補、動きベクトル候補リスト、マージ候補、マージ候補リストなどを含む動き補償に関する情報が共有できる。
【0231】
所定のブロック深さと同じかそれよりも浅いブロック深さを持つブロックのみでは、動き補償に関する情報がエントロピー符号化/復号されてもよく、所定のブロック深さよりも深いブロック深さを持つブロックでは、動き補償に関する情報がエントロピー符号化/復号されなくてもよい。この場合には、所定のブロック深さと同じかそれよりも浅いブロック深さを持つブロック内のサブブロックは、所定のブロック深さと同じかそれよりも浅いブロック深さを持つブロックでエントロピー符号化/復号される動き補償に関する情報に基づいて動き補償を行うことができる。つまり、所定のブロック深さと同じかそれよりも浅いブロック深さを持つブロック内のサブブロックは、動きベクトル候補、動きベクトル候補リスト、マージ候補、マージ候補リストなどを含む動き補償に関する情報が共有できる。
【0232】
動き補償に関する情報は、ブロック単位でエントロピー符号化/復号されてもよく、上位レベルでエントロピー符号化/復号されてもよい。一例として、動き補償に関する情報は、CTU、CU又はPUなどのブロック単位でエントロピー符号化/復号されるか、或いは、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセット(Sequence Parameter Set)、ピクチャパラメータセット(Picture Parameter Set )、適応パラメータセット(Adaptation Parameter Set)又はスライスヘッダ(Slice Header)などの上位レベルでエントロピー符号化/復号できる。
【0233】
動き補償に関する情報は、動き補償に関する情報と動き補償に関する情報予測値との差分値を示す動き補償に関する情報差分値に基づいて、エントロピー符号化/復号されてもよい。
【0234】
現在ブロックの動き補償に関する情報をエントロピー符号化/復号する代わりに、現在ブロックの周辺に符号化/復号されたブロックの動き補償に関する情報を、現在ブロックの動き補償に関する情報として用いることも可能である。
【0235】
また、符号化パラメータのうちの少なくとも一つに基づいて、前記動き補償に関する情報のうちの少なくとも一つを導出することができる。
【0236】
また、前記動き補償に関する情報のうちの少なくとも一つを、符号化パラメータのうちの少なくとも一つに基づいて、ビットストリームからエントロピー復号することができる。前記動き補償に関する情報のうちの少なくとも一つを、符号化パラメータのうちの少なくとも一つに基づいてビットストリームにエントロピー符号化することができる。
【0237】
動き補償に関する情報は、動きベクトル、動きベクトル候補、動きベクトル候補インデックス、動きベクトル差分値、動きベクトル予測値、スキップモードの使用有無情報(skip_flag)、マージモードの使用有無情報(merge_flag)、マージインデックス情報(merge_index)、動きベクトル解像度(motion vector resolution)情報、重畳したブロック動き補償(overlapped block motion compensation)情報、地域照明補償(local illumination compensation)情報、アフィン動き補償(affine motion compensation)情報、復号器動きベクトル導出(decoder-side motion vector derivation)情報、及び双方向光学流れ(bi-directional optical flow)情報のうちの少なくとも一つをさらに含むことができる。ここで、復号器動きベクトル導出は、パターン整合動きベクトル導出(pattern matched motion vector derivation)を意味することができる。
【0238】
動きベクトル解像度情報は、動きベクトル及び動きベクトル差分値のうちの少なくとも一つに対して特定の解像度を使用するかどうかを示す情報であり得る。ここで、解像度は、精度(precision)を意味することができる。また、特定の解像度は、16画素(16-pel)単位、8画素(8-pel)単位、4画素(4-pel)単位、整数-画素(integer-pel)単位、1/2画素(1/2-pel)単位、1/4画素(1/4-pel)単位、1/8画素(1/8-pel)単位、1/16画素(1/16-pel)単位、1/32画素(1/32-pel)単位、1/64画素(1/64-pel)単位のうちの少なくとも一つに設定できる。
【0239】
重畳したブロック動き補償情報は、現在ブロックの動き補償の際に現在ブロックに空間的に隣接する周辺ブロックの動きベクトルをさらに用いて現在ブロックの予測ブロックの重み付け和を計算するかどうかを示す情報であり得る。
【0240】
地域照明補償情報は、現在ブロックの予測ブロック生成の際に重み値及びオフセット値のうちの少なくとも一つを適用するか否かを示す情報であり得る。ここで、重み値及びオフセット値のうちの少なくとも一つは、参照ブロックに基づいて算出された値であり得る。
【0241】
アフィン動き補償情報は、現在ブロックに対する動き補償の際にアフィン動きモデル(affine motion model)を使用するかどうかを示す情報であり得る。ここで、アフィン動きモデルは、複数のパラメータを用いて1つのブロックを多数のサブブロックに分割し、代表動きベクトルを用いて分割されたサブブロックの動きベクトルを算出するモデルであり得る。
【0242】
復号器動きベクトル導出情報は、動き補償に必要な動きベクトルを復号器で導出して使用するかどうかを示す情報であり得る。復号器動きベクトル導出情報に基づいて、動きベクトルに関する情報はエントロピー符号化/復号されなくてもよい。そして、復号器動きベクトル導出情報が復号器で動きベクトルを導出して使用することを示す場合、マージモードに関する情報がエントロピー符号化/復号できる。つまり、復号器動きベクトル導出情報は、復号器でマージモードを使用するかどうかを示すことができる。
【0243】
双方向光学流れ情報は、ピクセル単位或いはサブブロック単位で動きベクトルを補正して動き補償を行うかどうかを示す情報であり得る。双方向光学流れ情報に基づいて、ピクセル単位或いはサブブロック単位の動きベクトルはエントロピー符号化/復号されなくてもよい。ここで、動きベクトル補正は、ブロック単位の動きベクトルをピクセル単位或いはサブブロック単位の動きベクトル値に変更することであり得る。
【0244】
現在ブロックは、動き補償に関する情報のうちの少なくとも一つを用いて動き補償を行い、動き補償に関する情報のうちの少なくとも一つをエントロピー符号化/復号することができる。
【0245】
動き補償に関連した情報をエントロピー符号化/復号する場合、切り捨てられたライス(Truncated Rice)2値化方法、K次数指数-ゴロム(K-th order Exp_Golomb)2値化方法、制限されたK次数指数-ゴロム(K-th order Exp_Golomb)2値化方法、固定長(Fixed-length)2値化方法、単項(Unary)2値化方法、又は切り捨てられた単項(Truncated Unary)2値化方法などの2値化(Binarization)方法が利用できる。
【0246】
動き補償に関する情報をエントロピー符号化/復号するとき、現在ブロック周辺の周辺ブロックの動き補償に関する情報または周辺ブロックの領域情報、以前に符号化/復号された動き補償に関する情報または以前に符号化/復号された領域情報、現在ブロックの深さに関する情報、及び現在ブロックのサイズに関する情報のうちの少なくとも一つを用いて、コンテキストモデル(context model)を決定することができる。
【0247】
また、動き補償に関する情報をエントロピー符号化/復号するとき、周辺ブロックの動き補償に関する情報、以前に符号化/復号された動き補償に関する情報、現在ブロックの深さに関する情報、及び現在ブロックのサイズに関する情報のうちの少なくとも一つを、現在ブロックの動き補償に関する情報に対する予測値として用いて、エントロピー符号化/復号を行うこともできる。
【0248】
以下、動きベクトル補正方法に関連した具体的な説明を
図7乃至
図28を参照して説明する。
【0249】
現在ブロックに対する動きベクトルを導出するにあたり、スキップ/マージモードに基づいて動きベクトルを導出する方法、及び向上した動きベクトル予測モードを用いて導出する方法のうちの少なくとも一つを用いて、現在ブロックの動きベクトルを導出することができる。ここで、動きベクトルを導出するというのは、現在ブロックの動きベクトルを導出することに加えて、現在ブロックの参照画像インデックス情報を導出することも含むことができる。
【0250】
次に、マージモードに基づく動きベクトル補正方法を説明する。ところが、マージモードに限定されず、マージモードの他に、他の画面間予測モードに基づく動きベクトル補正方法にも、以下の説明が適用できる。
【0251】
マージモードに基づく動きベクトル補正方法は、初期動きベクトル導出ステップ、初期動きベクトルに基づいて、補正された動きベクトルを導出するステップ、及びサブブロック単位で補正された動きベクトルを導出するステップのうちの少なくとも一つを含むことができる。
【0252】
まず、初期動きベクトル導出ステップについて具体的に説明する。
【0253】
図7に示すように、空間的周辺ブロック及び時間的周辺ブロックのうちの少なくとも一つから導出されたマージ候補リスト内のマージ候補を用いて、現在ブロックに対する初期動きベクトルを導出することができる。
【0254】
一方、マージモードに基づく動きベクトル補正のために、別途のマージ候補リストを構成することができる。
【0255】
図8は別途のマージ候補リストを構成するための空間的周辺ブロック及び時間的周辺ブロックを示す図である。
【0256】
図8を参照すると、別途のマージ候補リストを構成するにあたり、空間的周辺ブロック(A0、A1、A2、B0、B1、B2、B3)から所定の個数の候補をA1、B1、B0、A0、B2、B3、A2順に別途のマージ候補リストに含ませた後、時間的周辺ブロックから導出された候補、組み合わせ双予測マージ候補及びゼロマージ候補を別途のマージ候補リストに含ませて、初期動きベクトルを導出することができる。
【0257】
一方、マージ候補リスト内のマージ候補を用いるにあたり、マージ候補リスト内の全部又は一部のマージ候補を用いて、現在ブロックに対する初期動きベクトルを導出することができる。
【0258】
例えば、マージ候補リスト内のマージ候補がサブブロック単位で導出された動き情報を有する場合、該当マージ候補を、マージ候補リストの構成において、追加の空間的周辺ブロック及び/又は時間的周辺ブロックから導出された動き情報を代替するか、或いは初期動きベクトルとして使用しなくてもよい。
【0259】
図9及び
図10は初期動きベクトルリストの構成を説明するための図である。
【0260】
図9に示すようにマージ候補リストが構成された場合、
図10に示すように各リスト方向に該当するマージ候補から当該リスト方向の初期動きベクトルリストを構成することができる。ここで、初期動きベクトルリストは、動きベクトル及び参照画像インデックスのうちの少なくとも一つを含むことができる。
【0261】
一例として、初期動きベクトルリストは、マージ候補リストにおける動きベクトルのみを用いることができ、参照画像インデックスは、固定された所定の値を用いることができる。ここで、固定された所定の値は、符号化器から復号器へシグナリングされた値であるか、或いは符号化器及び復号器に共通に設定された値であり得る。
【0262】
一方、マージ候補リスト内のマージ候補の参照画像インデックス情報が初期動きベクトルリストの所定の参照画像インデックス情報と一致しない場合、時間距離(又はPOCの差)を考慮してスケーリングした動きベクトルを初期動きベクトルとして用いることができる。
【0263】
一方、初期動きベクトルリストを構成するにあたり、リスト内に同一の動きベクトルと参照画像インデックスが入っている場合には、追加をしなくてもよい。
【0264】
図11はマージインデックス情報を用いて初期動きベクトルを導出する方法を説明するための図である。マージ候補リスト内のマージ候補のうちのマージインデックス情報に該当するマージ候補の動き情報を初期動きベクトルとして用いることができる。
【0265】
図11を参照すると、マージインデックス情報値が3に該当する場合、マージ候補リストから、4番目の候補に該当するL0リスト[動きベクトル:(3、1)、参照画像インデックス:0]とL1リスト[動きベクトル:(-3、1)、参照画像インデックス:0]を各リスト方向の初期動きベクトルとして導出することができる。
【0266】
一方、マージインデックス情報値が4に該当する場合、マージ候補リストから5番目の候補に該当するL0リスト[動きベクトル:(6、2)、参照画像インデックス:0]のみをL0リスト方向の初期動きベクトルとして用いることができる。ここで、マージインデックス情報は、マージモードのためのインデックス情報であり得る。
【0267】
ただし、マージモードに基づく動きベクトル補正のために使用される初期動きベクトルインデックス情報がさらに定義でき、これは符号化/復号ブロック単位ごとにエントロピー符号化/復号できる。
【0268】
一方、マージ候補リスト内のマージ候補を用いるにあたり、マージインデックス情報に対するエントロピー復号をせずに、マージ候補リスト内のマージ候補のうち、所定の番号に該当するマージ候補の動きベクトルを初期動きベクトルとして設定することができる。ここで、所定の番号は、符号化器及び復号器に共通に設定された番号であり得る。
【0269】
例えば、符号化/復号器で同様にマージ候補リスト内の1番目の候補に該当する動きベクトルを初期動きベクトルとして用いるとする場合、
図11のマージ候補リストから1番目の候補に該当するL0リスト[動きベクトル:(3、1)、参照画像インデックス:0]とL1リスト[動きベクトル:(-2、0)、参照画像インデックス:0]をL0/L1リスト方向の初期動きベクトルとして用いることができる。
【0270】
一方、マージ候補リスト内のマージ候補を用いるにあたり、現在ブロックが、双予測が可能なブロックであるが、L0又はL1リストに該当する一つの動き情報のみが存在する場合、存在する動き情報に基づいて導出された動き情報を追加の初期動き情報として用いることができる。ここで、存在する動き情報は、同一リスト内の他のマージ候補の動き情報であってもよい。
【0271】
上述のように存在する動き情報に基づいて追加の動き情報を導出するにあたり、存在する動き情報が指示する参照ピクチャ、現在ブロックの属している現在ピクチャ、又は動き情報の生成が必要なリスト内の参照ピクチャ間の時間距離(又はPOC差)のうちの少なくとも一つを考慮して、存在しない動き情報を代替する追加の初期動きベクトルを導出することができる。
【0272】
具体的に、存在する動きベクトルに対してミラーリング及びスケーリングのうちの少なくとも一つを行うことにより、存在しない動きベクトルを代替する追加の初期動きベクトルを導出することができる。
【0273】
例えば、
図11においてマージインデックス情報の値が2である場合には、L0動き情報のみ存在することができる。
【0274】
この場合、L0動きベクトルが指示する参照ピクチャと現在ブロックの属しているピクチャ間のPOCの差と同じPOCの差を有するL1参照ピクチャリスト内の参照ピクチャを基準にミラーリングしたL0動きベクトルを、L1リスト動きベクトルとして導出することができる。
【0275】
また、L1リスト内の参照ピクチャのうち、L0動きベクトルが指示する参照ピクチャと同じPOCを有する参照ピクチャを除き、現在ピクチャとのPOCの差が最も小さいピクチャをL1参照ピクチャとして導出し、L0参照ピクチャと現在ピクチャのPOCの差、及び導出されたL1参照ピクチャと現在ピクチャのPOCの差を考慮しスケーリングしたL0動きベクトルを、L1方向の動きベクトルとして導出することができる。
【0276】
図12は動きベクトルミラーリングを説明するための図である。
【0277】
図12を参照すると、L0動きベクトルが指示する参照ピクチャと現在ブロックの属しているピクチャ間のPOCの差と同じPOCの差を有するL1参照ピクチャリスト内の参照ピクチャを基準にミラーリングしたL0動きベクトルを、L1リスト動きベクトルとして導出することができる。
【0278】
具体的に、L0動きベクトルが指示する参照ピクチャのPOCが0であり、現在ピクチャのPOCが4であるので、両ピクチャ間のPOCの差は4と計算できる。L1リスト方向の参照ピクチャのうち、現在ピクチャとのPOCの差が4であるピクチャが存在するので、当該ピクチャを対象にL0動きベクトルをミラーリングして生成した動きベクトルと当該参照ピクチャの参照画像インデックスをL1動き情報として用いることができる。ここで、L0動きベクトルをL1リスト方向にミラーリングして生成したL1動きベクトルは(3、1)であり、L1参照画像インデックスは0である。
【0279】
図13は動きベクトルのスケーリングを説明するための図である。
【0280】
図13を参照すると、L1リスト内の参照ピクチャのうち、L0動きベクトルが指示する参照ピクチャと同じPOCを有する参照ピクチャを除き、現在ピクチャとのPOCの差が最も小さいピクチャをL1参照ピクチャとして導出し、L0参照ピクチャと現在ピクチャのPOCの差及び導出されたL1参照ピクチャと現在ピクチャのPOCの差を考慮してスケーリングしたL0動きベクトルを、L1方向動きベクトルとして導出することができる。
【0281】
具体的には、L0動きベクトルが指示する参照ピクチャPOC2を除き、現在ピクチャとのPOCの差が最も小さいピクチャPOC1をL1参照ピクチャとして導出することができる。そして、L0参照ピクチャと現在ピクチャのPOCの差tb、及び導出されたL1参照ピクチャと現在ピクチャのPOCの差tdを考慮してスケーリングしたL0動きベクトルを、L1方向動きベクトルとして導出することができる。
【0282】
動きベクトルのスケーリング過程は、次のとおりに行われ得る。
【0283】
tdは、現在画像に対する画像順序カウントと現在ブロックのL1参照画像に対する画像順序カウントとの差の値を意味することができる。tbは、現在画像に対する画像順序カウントと現在ブロックのL0参照画像に対する画像順序カウントとの差の値を意味することができる。
【0284】
td値或いはtb値が-128と127との間の範囲に含まれるよう、td値とtb値のうちの少なくとも一つを調整することができる。このとき、td値或いはtb値が-128よりも小さければ、td値或いはtb値を-128に調整することができ、td値或いはtb値が127よりも大きければ、td値或いはtb値を127に調整することができる。td値或いはtb値が-128と127との間の範囲に含まれる場合には、td値或いはtb値を調整しなくてもよい。すなわち、td値或いはtb値が一定の値の範囲内に属するように、td値或いはtb値をクリッピング(clipping)することができる。
【0285】
tx値を(16384+Abs(td/2))/tdで決定することができる。このとき、Abs()は絶対値の関数を示し、該当関数の出力値は入力値の絶対値になることができる。
【0286】
スケーリング因子であるDistScaleFactorを(tb*tx+32)>>6で決定することができ、-1024と1023との間の範囲に含まれるようにDistScaleFactor値を調整する。
【0287】
スケーリングされた動きベクトルは、Sign(DistScaleFactor*mv)*((Abs(DistScaleFactor*mv)+127)>>8)で決定することができる。このとき、Sign()は、特定の値の符号情報を出力し、もしSign(-1)であれば、-を出力することができる。mvは、スケーリングされる前に存在する動きベクトル値を示すことができる。
【0288】
図14は、双予測が可能なブロックにおいてL0又はL1リストに該当する一つの動きベクトルのみが存在する場合、追加の動きベクトルを導出する一例を説明するための図である。マージ候補リスト内のマージ候補を用いるにあたり、現在ブロックが、双予測が可能なブロックであるが、L0又はL1リストに該当する一つの動きベクトルのみが存在する場合、動きベクトルが存在しない予測方向のマージ候補リスト内で追加の動きベクトルを導出することができる。
【0289】
図14を参照すると、マージインデックス情報値が2である場合、L0動きベクトルのみ存在する。この場合、L1リストからn番目に利用可能な動きベクトルを現在ブロックの初期L1動きベクトルとして用いることができる。ここで、nは、符号化器/復号器で共通に設定された値であってもよく、1を含む正の整数であってもよい。
【0290】
図15は、双予測が可能なブロックにおいて双方向の動き情報を持っているマージ候補を初期動きベクトルとして選択する一例を説明するための図である。マージ候補リスト内のマージ候補を用いるにあたり、現在ブロックが、双予測が可能なブロックである場合には、マージ候補リストのうち、双方向動き情報を持っているマージ候補を初期動きベクトルとして用いることができる。ここで、マージ候補リストに双方向動き情報を持つ候補が複数個である場合、最も小さいマージインデックス情報を持つ候補が使用できる。
【0291】
図15を参照すると、現在ブロックが、双予測が可能なブロックに該当する場合には、一番目に利用可能な双方向動き情報を持っているマージ候補インデックス3に該当する動きベクトルを、初期動きベクトルとして用いることができる。
【0292】
上記の条件を満足する参照画像が存在しない場合には、存在するマージインデックス情報によって選択されたマージ候補の動き情報を初期動きベクトルとして導出することができる。
【0293】
一方、上述した方法で導出された初期の動きベクトルに基づいて動き補正を行うにあたり、初期動きベクトルが副画素単位の動きベクトルを持つ場合、近い整数画素位置にラウンドした動きベクトルに基づいて動き補正を行うことができる。
【0294】
例えば、1/16動きベクトルの精度を持つ場合には、次の数式4を用いて整数画素位置にラウンドを行うことができる。シフト(Shift)値は精度によって異なり、1/16動きベクトルの精度である場合は4の値を持ち、1/8動きベクトルの精度である場合は3の値を持つことができる。
【数4】
【0295】
次に、導出された初期動きベクトルに基づいて、補正された動きベクトルを導出するステップについて具体的に説明する。
【0296】
符号化器/復号器では、前記導出された初期動きベクトルを用いて、ブロック単位の動きベクトル補正を行うことができる。
【0297】
動きベクトル補正に関連して、現在ブロックの空間的周辺ブロック及び/又は時間的周辺ブロックを用いて、初期動きベクトルに対する補正を行うことができる。動きベクトル補正に用いられる空間的周辺ブロック及び/又は時間的周辺ブロックの復元ピクセルをテンプレートとして定義することができる。
【0298】
一例として、符号化器/復号器は、現在ブロックの空間的周辺復元ピクセルでテンプレートを構成し、当該テンプレートを用いて初期動きベクトルに対する補正を行うことができる。
【0299】
図16乃至
図21は本発明の一実施形態に係るテンプレートを説明するための図である。
【0300】
テンプレートを構成するにあたり、
図16の如く、現在ブロックの上側及び/又は左側周辺復元ブロックのピクセルを用いてテンプレートを構成することができる。
【0301】
ここで、現在ブロックの上側又は左側周辺復元ブロックのピクセルが利用可能でない場合には、利用可能なブロックのピクセルのみでテンプレートを構成することができる。
【0302】
一例として、
図17に示すように、現在ブロックの上側周辺復元ブロックがピクチャ境界、スライス境界、タイル境界又はCTU境界に利用可能でない場合には、左側周辺復元ブロックのピクセルのみでテンプレートを構成することができ、現在ブロックの左側周辺復元ブロックがピクチャ境界、スライス境界、タイル境界又はCTU境界に利用可能でない場合には、上側周辺復元ブロックのピクセルのみでテンプレートを構成することができる。
【0303】
また、テンプレートを構成するにあたり、利用可能でないピクセルは、利用可能なピクセルで代替されてテンプレートを構成することもできる。ここで、利用可能なピクセルは、現在ブロックの周辺ピクセル、周辺ピクセルに補間フィルタを適用して導出されたピクセル、又は符号化器/復号器に予め定義された値を持つピクセルであってもよい。一方、テンプレートは、復元されたピクセル値ではなく、予測ピクセル値で構成されてもよい。
【0304】
前記テンプレートを構成するにあたり、動きベクトルが副画素単位を持つ場合、補間フィルタを適用して当該位置のピクセル値を生成することができる。ここで、補間に使用されるフィルタは、bi-linearフィルタ、8-tap DCT-IFフィルタなどが適用できる。テンプレートを構成するために使用される補間フィルタに対する情報の伝送なしに符号化器/復号器で同様に所定の方法を使用することができ、補間フィルタタイプについての情報がビットストリームに含まれてシグナリングできる。
【0305】
一方、テンプレートのサイズはM×Nを持つことができ、MとNは正の整数であり得る。
【0306】
例えば、
図18の如く、現在ブロックのサイズ(横×縦)が64×32であり、符号化器/復号器で予め定義したテンプレートのピクセル長さが4ピクセルである場合、上側テンプレートのサイズは64×4であり、左側テンプレートのサイズは4×32であり得る。
【0307】
ここで、ピクセルの長さは、動きベクトルの精度に応じて算出できる。
【0308】
一例として、動きベクトルの精度が1/4単位であり、ブロックサイズが16ピクセルである場合、テンプレートのピクセル長さは4ピクセルと算出できる。
【0309】
一方、テンプレートを構成するにあたり、
図19に示すように、現在ブロックの横/縦サイズが異なる場合には、上側テンプレートのサイズと左側テンプレートのサイズを同一にすることができる。
【0310】
一方、テンプレートを構成するにあたり、テンプレートのサイズがM×Nを持つ場合には、上側テンプレートのMは現在ブロックの横サイズよりも大きい値を持つことができ、Nは符号化器/復号器で固定されたピクセル長さを持つことができる。そして、右側テンプレートのNは現在ブロックの縦サイズよりも大きい値を持つことができ、Mは符号化器/復号器に固定されたピクセル長さを持つことができる。
【0311】
例えば、
図20に示すように、現在ブロックのサイズが64×64であり、符号化器/復号器で定義したテンプレートのピクセル長さが6ピクセルである場合、上側テンプレートのサイズは128×6であり、左側テンプレートのサイズは6×128であり得る。
【0312】
一方、テンプレートを構成するにあたり、テンプレートのサイズはM×Nを持つことができ、MとNは現在ブロックの横/縦のサイズと同一であってもよい。
【0313】
例えば、
図21に示すように、現在ブロックのサイズが64×64である場合、左側テンプレートのサイズは64×64であり、上側テンプレートのサイズは64×64であり得る。
【0314】
一方、テンプレートを構成するにあたり、テンプレートのサイズはM×Nを持つことができ、現在ブロックのサイズまたは深さ情報に応じて、互いに異なるサイズのテンプレートを用いることができる。
【0315】
例えば、現在ブロックのサイズが128×64であり、横又は縦のサイズ32よりも大きい場合には、上側テンプレートのサイズは128×6であり、左側テンプレートのサイズは6×64であり得る。
【0316】
例えば、現在ブロックのサイズ(横×縦)が16×16であり、横又は縦のサイズ32よりも小さい場合、上側テンプレートのサイズは16×2であり、左側テンプレートのサイズは2×16であり得る。
【0317】
一方、テンプレートの構成に必要なテンプレートのサイズ情報は、ビットストリームに含まれてシグナリングできる。
【0318】
図22はテンプレートを用いて初期動きベクトルを補正する一例を説明するための図である。
【0319】
図22を参照すると、初期動きベクトルが指示する参照ピクチャの探索領域で現在ブロックの周辺テンプレートとのエラーを最小にするテンプレートを指示する動きベクトルを探索して、その動きベクトルを補正された動きベクトルとして決定することができる。
【0320】
ここで、参照ピクチャ内のテンプレートは、初期動きベクトルが指示するピクセル位置を含む所定の探索領域に基づいて生成できる。
【0321】
そして、所定の探索領域は、初期動きベクトルが指示する当該ピクセル位置を中心にクロス、正方形、ダイヤモンド、ヘキサゴン形状などの探索方法に応じて異ならせて適用できる。一方、参照ピクチャ内のテンプレートと現在ブロックの周辺テンプレート間のエラーを最小化するというのは、参照ピクチャ内のテンプレートと現在ブロックの周辺テンプレートとの差を最小限に抑えることを意味することができる。
【0322】
参照ピクチャ内のテンプレートと現在ブロックの周辺テンプレート間のエラーを計算するにあたり、歪み値及び動きベクトルに対するコスト値のうちの少なくとも一つを考慮して、エラーを計算することができる。
【0323】
一例として、左側及び上側テンプレートがすべて可能な場合、コスト値は、次のとおりに計算することができる。
【0324】
コスト値=(左側テンプレート間の歪み値+上側テンプレート間の歪み値)+(初期動きベクトル(x、y)-補正された動きベクトル(x、y))*重み
一例として、上側テンプレートのみが可能な場合、コスト値は、次のとおりに計算することができる。
【0325】
コスト値=上側テンプレート間の歪み値+(初期動きベクトル(x、y)-補正された動きベクトル(x、y))*重み
ここで、前記コスト値の計算において、重みは、0よりも小さい負数、0よりも大きい正数を持つことができる。
【0326】
一方、前記歪み値は、テンプレート間のSAD及びMR-SADのうちの少なくとも一つを用いて計算できる。
【数5】
【0327】
ここで、Ctp(i、j)は、現在ブロックの左側又は上側テンプレートピクセル値を示し、Ltp(i、j)は、参照ピクチャ内の左側又は上側テンプレートピクセル値を示し、deltaDCは、(現在ブロックの左側テンプレート平均ピクセル値-参照ピクチャ内の左側テンプレート平均ピクセル値)又は(現在ブロックの上側テンプレート平均ピクセル値-参照ピクチャ内の上側テンプレート平均ピクセル値)を示すことができる。
【0328】
初期動きベクトルに基づいて見付けた、補正された動きベクトルrMVが指示するピクセル位置を中心とした所定の探索領域内で現在ブロックのテンプレートとのエラーを最小にするテンプレートを指示する新しい動きベクトルnMVを見つけることができる。
【0329】
ここで、新しい動きベクトルnMVから求めた参照ピクチャのテンプレートと現在ブロックのテンプレート間のエラーが、補正された動きベクトルrMVから求めた参照ピクチャのテンプレートと現在ブロックのテンプレート間のエラーよりも大きい場合には、それ以上の補正過程を行わなくてもよい。
【0330】
しかし、新しい動きベクトルnMVから求めた参照ピクチャのテンプレートと現在ブロックのテンプレート間のエラーが、補正された動きベクトルrMVから求めた参照ピクチャテンプレートと現在ブロックのテンプレート間のエラーよりも小さい場合には、新しい動きベクトルnMVが指示するピクセル位置を中心とした所定の探索領域内で別の新しい動きベクトルを求めて補正することができる。
【0331】
一方、新しい動きベクトルnMVから求めた参照ピクチャのテンプレートと現在ブロックのテンプレート間のエラーが、補正された動きベクトルrMVから求めた参照ピクチャのテンプレートと現在ブロックのテンプレート間のエラーよりも小さい場合、新しい動きベクトルの検索を繰り返し行うことができる。この場合、新しい動きベクトルの検索は、動き補正の実行回数情報に基づいて制限できる。
【0332】
一例として、移動補正の実行回数情報が2である場合、新しい動きベクトルの検索は、合計2回に制限できる。
【0333】
動き補正の実行回数情報は、ビットストリームに含まれてシグナリングできる。
【0334】
一方、動き補正の実行回数は、符号化器と復号器で同様に予め定められた所定の値を用いてもよい。
【0335】
一方、初期動きベクトルがL0動きベクトル、L1動きベクトルなどのN個の予測方向に対する動きベクトルを持つ場合、それぞれの予測方向から動きベクトルに対する補正動きベクトルを求めることができる。
【0336】
一方、所定の探索領域は、探索領域情報に基づいて決定できる。ここで、探索領域の決定に必要な探索領域情報は、ビットストリームに含まれてシグナリングできる。
【0337】
そして、所定の探索領域のサイズは、ピクチャタイプ、時間的階層(temporal layer)、ブロックサイズなどの符号化パラメータに応じて異ならせて適用できる。例えば、最上位階層に該当するピクチャの探索領域のサイズは、1整数ピクセルサイズの探索領域を持つことができれば、下位階層に該当するピクチャの探索領域のサイズは、8整数ピクセルサイズの探索領域を持つことができる。
【0338】
図23乃至
図25は現在ブロックの予測ブロックを用いて初期動きベクトルを補正する一例を説明するための図である。
図22で説明したテンプレートを使用せずに動きベクトルから生成した現在ブロックの予測ブロックを用いて初期動きベクトルに対する補正を行うことができる。
【0339】
予測ブロックを用いて動き補正を行うにあたり、初期動きベクトルが指示する各参照ピクチャ内の予測ブロック間の差に基づいて動きベクトルを補正することができる。
【0340】
ここで、予測ブロックは、初期動きベクトルが指示するピクセル位置を中心とした所定の探索範囲内に位置することができる。所定の探索範囲で導出される動きベクトルから予測ブロックを生成し、予測ブロック間の差を最小にする動きベクトルを、補正された動きベクトルとして決定することができる。
【0341】
そして、予測ブロック間の差は、L0方向の初期動きベクトル(以下、「L0初期動きベクトル」という)、又はL1方向の初期動きベクトル(以下、「L1初期動きベクトル」という)に基づいて生成される複数の予測ブロック間の差を意味することもあり、L0初期動きベクトル及びL1初期動きベクトルに基づいてそれぞれ生成された予測ブロック間の差を意味することもある。
【0342】
一例として、
図23のようにL0初期動きベクトルが指示するL0参照ピクチャ内の当該ピクセル位置を中心とした所定の探索範囲内で移動した動きベクトルから生成した予測ブロックP0と、L0動きベクトルに基づいて導出したL1動きベクトルから生成した予測ブロックP1間のエラーを最小にする動きベクトルを、補正された動きベクトルとして決定することができる。ここで、L1動きベクトルは、初期L0動きベクトル又は所定の探索範囲内で移動したL0動きベクトルをミラーリング又はスケーリングして導出された動きベクトルであり得る。
【0343】
他の例として、
図24に示すように、L1初期動きベクトルが指示するL1参照ピクチャ内の該当ピクセル位置を中心に所定の探索範囲内で移動した動きベクトルから生成した予測ブロックP1と、L1動きベクトルに基づいて導出したL0動きベクトルから生成した予測ブロックP0間のエラーを最小にする動きベクトルを、補正された動きベクトルとして決定することができる。ここで、L0動きベクトルは、初期L1動きベクトル、又は所定の探索範囲内で移動したL1動きベクトルをミラーリング又はスケーリングして導出された動きベクトルであり得る。
【0344】
一方、Lx動きベクトルからLy方向動きベクトルを導出するにあたり、Lx動きベクトルが指示する参照ピクチャ、現在ブロックの属しているピクチャ、Ly方向内の参照ピクチャ間の時間距離(又はPOCの差)のうちの少なくとも一つを考慮して導出できる。ここで、x、yは、0を含む、互いに異なる正の整数であり得る。
【0345】
ミラーリングの一例として、L0動きベクトルが指示する参照ピクチャと現在ブロックの属しているピクチャ間のPOCの差と同じPOCの差を持つL1参照ピクチャリスト内の参照ピクチャを基準にミラーリングしたL0動きベクトルを、L1方向動きベクトルとして導出することができる。
【0346】
スケーリングの一例として、L1参照ピクチャリスト内の参照ピクチャのうち、L0動きベクトルが指示する参照ピクチャと同じPOCを持つ参照ピクチャを除き、現在ピクチャとの差が最も小さいPOCを持つピクチャに基づいてPOCの差を考慮してスケーリングしたL0動きベクトルを、L1方向動きベクトルとして導出することができる。
【0347】
一方、予測ブロックを用いて動き補正を行うにあたり、L0初期動きベクトルから生成した予測ブロックとL1初期動きベクトルから生成した予測ブロックとを重み付け和して生成したブロックを用いて、動き補正を行うことができる。
【0348】
例えば、
図25に示すようにL0初期動きベクトルから生成した予測ブロックP0とL1初期動きベクトルから生成した予測ブロックP1とを重み付け和して生成した予測ブロックPsをテンプレートとして設定することができる。そして、L0初期動きベクトルが指示する画素位置を中心とした所定の探索範囲内で動きベクトルを移動して予測ブロックPr0を生成することができる。ここで、生成された予測ブロックPr0とテンプレートPs間のエラーを最小にする動きベクトルを、L0リスト方向の補正された動きベクトルとして決定することができる。
【0349】
また、L1動きベクトルが指示するピクセル位置を中心とした所定の探索範囲内で動きベクトルを移動して予測ブロックPr1を生成することができる。ここで、生成された予測ブロックPr1とテンプレートPs間のエラーを最小にする動きベクトルを、L1リスト方向の補正された動きベクトルとして決定することができる。
【0350】
一方、予測ブロックPsは、次のとおりに算出できる。
【0351】
Ps=(a1*P0+a2*P1)>>1
ここで、a1及びa2は重み付け和の際に使用される重みである。重みは、固定された値に限定されず、可変的な値であってもよい。各予測ブロックに適用される重みは、互いに同一であってもよく、互いに異なってもよい。可変的な重みを適用するために、復号対象ブロックのための重み情報がビットストリームを介してシグナリングされることも可能である。
【0352】
一方、初期動きベクトルがL0のみ導出された場合には、L0初期動きベクトルから生成した予測ブロックP0のみをテンプレートとすることができる。そして、L0初期動きベクトルが指示するピクセル位置を中心とした所定の探索範囲内で動きベクトルを移動して生成した予測ブロックPr0とテンプレート間のエラーを最小にする動きベクトルを、L0リスト方向の補正された動きベクトルとして決定することができる。
【0353】
一方、現在ブロックの予測ブロック間の差を計算するにあたり、歪み値と動きベクトルに対するコスト値のうちの少なくとも一つを考慮して予測ブロック間の差を計算することができる。
【0354】
一例として、L0初期動きベクトルを用いて予測ブロック(P0、P1)を生成した場合、コスト値は、次のとおりに計算できる。
【0355】
コスト値=歪み値(予測ブロック(P0)-予測ブロック(P1))+(初期L0動きベクトル-補正されたL0動きベクトル)*重み
一例として、L1初期動きベクトルを用いて予測ブロック(P0、P1)を生成した場合、コスト値は、次のとおりに計算できる。
【0356】
コスト値=歪み値(予測ブロック(P0)-予測ブロック(P1))+(初期L1動きベクトル-補正されたL1動きベクトル)*重み
ここで、前記コスト値の計算において、重みは、0よりも小さい負数、0よりも大きい正数を持つことができる。
【0357】
一方、前記コスト値の計算において、歪み値は、予測ブロック間のSAD、SATD及びMR-SADのうちの少なくとも一つを用いて計算できる。
【0358】
初期動きベクトルに基づいて見付けた補正された動きベクトルrMVが指示するピクセル位置を中心に所定の探索領域内で予測ブロック間のエラーを最小にする新しい動きベクトルnMVを見つけることができる。
【0359】
ここで、新しい動きベクトルnMVから求めた予測ブロック間(P0、P1)のエラーが、補正された動きベクトルrMVから求めた予測ブロック間(P0、P1)のエラーよりも大きい場合には、それ以上の補正過程を行わなくてもよい。しかし、新しい動きベクトルnMVから求めた予測ブロック間(P0、P1)のエラーが、補正された動きベクトルrMVから求めた予測ブロック間(P0、P1)のエラーよりも小さい場合には、新しい動きベクトルnMVが指示するピクセル位置を中心とした所定の探索領域内で別の新しい動きベクトルを求めて補正することができる。
【0360】
一方、新しい動きベクトルから求めた予測ブロック間のエラーが、補正された動きベクトルから求めた予測ブロック間のエラーよりも小さい場合には、新しい動きベクトルの検索を繰り返し行うことができる。この場合には、新しい動きベクトルの検索は、動き補正の実行回数情報に基づいて制限できる。
【0361】
一例として、移動補正の実行回数情報が2である場合、新しい動きベクトルの検索は、合計2回に制限できる。
【0362】
動き補正の実行回数情報は、ビットストリームに含まれてシグナリングできる。一方、動き補正の実行回数は、符号化器と復号器で同様に予め定められた所定の値を使用することもできる。
【0363】
上述したように、初期動きベクトルに基づいて動きベクトルを補正する方法は、テンプレートを用いる方法、及び予測ブロックを用いる方法に大別される。
【0364】
符号化器/復号器では、動きベクトル補正方法を指示する動きベクトル補正モード情報(MV_REFINE_MODE)を用いて、動きベクトル補正方法を選択することができる。
【0365】
一例として、動きベクトル補正モード情報(MV_REFINE_MODE)が第1の値「0」である場合、現在ブロックの周辺テンプレートを用いて動きベクトルを補正することができる。逆に、動きベクトル補正モード情報(MV_REFINE_MODE)が第2の値「1」である場合、動きベクトルから求めた予測ブロックを用いて動きベクトルを補正することができる。ここで、第1の値及び第2の値はそれぞれ1と0に設定されてもよい。
【0366】
一方、動きベクトル補正モード情報は、ビットストリームに含まれてシグナリングできる。
【0367】
一方、動きベクトル補正方法は、符号化パラメータに基づいて決定できる。
【0368】
例えば、現在ブロックの初期動きベクトルが一方向の動きベクトルを持つ場合は、周辺テンプレートを用いて動きベクトルを補正することができ、現在ブロックの初期動きベクトルが双方向ベクトルを持つ場合は、動きベクトルから求めた予測ブロック信号を用いて動きベクトルを補正することができる。
【0369】
動きベクトル補正モード情報を用いずに、符号化パラメータを用いて、符号化器/復号器で動きベクトル補正方法を選択することができる。例えば、現在ブロックがL0又はL1動きベクトルのみ利用可能である場合、周辺テンプレートを用いて動きベクトルを補正することができ、現在ブロックがL0及びL1動きベクトルの両方を利用可能な場合、動きベクトルから求めた予測ブロックを重み付け和して生成した予測ブロックをテンプレートとして用いて、各予測方向の動きベクトルを補正することができる。別の例として、現在ブロックがL0又はL1動きベクトルのみ利用可能である場合には、周辺テンプレートを用いて動きベクトルを補正することができ、現在ブロックがL0及びL1動きベクトルの両方を利用可能な場合、各予測方向の動きベクトルから求めた予測ブロック間の差を用いて、各予測方向の動きベクトルを補正することができる。
【0370】
一方、現在ブロックに対する動きベクトルを導出するにあたり、初期動きベクトルに対する補正なしに初期動きベクトルを現在ブロックの動きベクトルとして用いることもできる。
【0371】
次に、サブブロック単位で補正された動きベクトルを導出するステップについて具体的に説明する。
【0372】
現在ブロックは、一つ以上のサブブロックに分割できる。
【0373】
一例として、現在ブロックを横方向にN個、縦方向にM個に分割することにより、M*N個のサブブロックに分けることができる。MとNはそれぞれ1以上の任意の整数であり得る。MとNは同じ又は異なる整数であり得る。
【0374】
又は、現在ブロックを、横方向にW個のピクセル、縦方向にH個のピクセルからなるW*Hサブブロックに分割することができる。WとHはそれぞれ2以上の任意の整数であり得る。WとHは同一又は異なる整数であり得る。
【0375】
サブブロックのサイズは現在ブロックのサイズによって決定できる。
【0376】
例えば、現在ブロックのサイズがK個のサンプル以下である場合、4×4サブブロックを使用し、現在ブロックのサイズがN個のサンプルよりも大きい場合、8×8サブブロックを使用することができる。ここで、Kは正の整数であり、例えば256であり得る。
【0377】
一方、サブブロックのサイズは、符号化器及び復号器で予め定義されたサイズを使用することができる。
【0378】
一方、サブブロックのサイズは、サブブロックのサイズ情報に基づいて決定できる。サブブロックのサイズ情報は、ビットストリームに含まれてシグナリングできる。
【0379】
また、サブブロックのサイズを決定するにあたり、サブブロックのサイズ情報と共に、現在ブロックのサイズ情報を一緒に考慮して、サブブロックのサイズを決定することができる。
【0380】
例えば、サブブロックのサイズ情報がサブブロックの深さ情報を指示する場合、現在ブロックの横/縦のサイズとサブブロックの深さ情報を用いて、次のとおりにサブブロックのサイズを決定することができる。
【0381】
サブブロックのサイズ=(ブロックの縦横サイズの平均>>サブブロックの深さ情報)
例えば、
図26に示すように、ブロックの横/縦サイズの平均値が64であり、サブブロックの深さ情報が3である場合には、サブブロックのサイズ8と決定できる。
【0382】
サブブロックは、正方形状及び長方形状のうちの少なくとも一つであり得る。
【0383】
例えば、
図27に示すように、現在ブロックが正方形状である場合、サブブロックは長方形状であってもよい。現在ブロックが長方形状である場合には、サブブロックは正方形状であってもよい。
【0384】
符号化器及び復号器では、サブブロック単位の動きベクトル補正のための初期動きベクトルを次の少なくとも一つの方法によって設定することができる。
(1)ブロック単位で決定された初期動きベクトル又は補正された動きベクトルを、サブブロック単位の初期動きベクトルとして設定することができる。
(2)ゼロ動きベクトル(0、0)をサブブロック単位の初期動きベクトルとして設定することができる。
(3)サブブロックの時間的周辺である対応位置ピクチャ(co-located picture)で復元されたブロックから導出された動きベクトルを、サブブロック単位の初期動きベクトルとして設定することができる。
(4)サブブロック単位のマージを介して導出した動きベクトルを、サブブロック単位の初期動きベクトルの初期値として設定することができる。
(5)現在サブブロックの左側及び上側に隣接するサブブロックの動きベクトルを、サブブロック単位の初期動きベクトルとして設定することができる。一例として、
図28に示すように、現在サブブロック(s)の左側サブブロック(b)、左下側サブブロック(a)、左上側サブブロック(c)、上側サブブロック(d)、上右側サブブロック(f)の動きベクトルを、現在サブブロックの初期動きベクトルとして使用することができる。
【0385】
前記(1)乃至(5)の方法によって設定された少なくとも一つのサブブロック単位の初期動きベクトルのうち、ブロック単位で決定された動き情報の参照画像インデックス情報と同じ値を持つ初期動きベクトルのみを用いることができる。
【0386】
ただし、ブロック単位で決定された動き情報の参照画像インデックス情報と一致していない場合には、時間距離を考慮してスケーリングした値を、サブブロック単位の初期動きベクトルとして使用することもできる。
【0387】
サブブロック単位の動きベクトル補正のための初期動きベクトルを求めるにあたり、サブブロックの参照画像インデックス情報は、同じ所定の値に設定できる。
【0388】
例えば、すべてのサブブロックの参照画像インデックス情報は、0値に設定できる。
【0389】
したがって、ブロック単位で決定された動き情報、及び周辺から導出された動き情報の参照画像インデックス情報が0の値を持たない場合、動きベクトルを、時間距離を考慮してスケーリングした後、当該サブブロックの初期動きベクトルとして使用することができる。
【0390】
符号化器及び復号器では、前記導出した初期動きベクトルを用いて、サブブロック単位の動きベクトル補正を行うことができる。
【0391】
符号化器と復号器で同様に現在ブロックの空間的周辺ブロック及び/又は時間的周辺ブロックを用いて、前述したテンプレートを用いた動きベクトル補正方法、及び予測ブロックを用いた動きベクトル補正方法のうちの少なくとも一つで、サブブロックの初期動きベクトルに対する補正を行うことができる。
【0392】
一方、上述した動きベクトル補正方法に使用できるマージモードに基づく動きベクトル補正の使用有無情報、テンプレートサイズ情報、探索領域情報、重み情報、動き補正の実行回数情報、動きベクトル補正モード情報及びサブブロックサイズ情報は、動き補償に関する情報に含まれ得る。
【0393】
動き補償に関する情報のエントロピー符号化/復号は、
図5及び
図6のS504ステップとS601ステップで具体的に説明したので、省略することにする。
【0394】
現在ブロックにはマージモードではなくAMVPモードが適用され、少なくとも一つの動きベクトル候補が存在する場合には、生成された動きベクトル候補リストを用いて、補正された動きベクトル候補を導出することができる。
【0395】
例えば、復元された周辺ブロックの動きベクトル、コロケーテッドブロックの動きベクトル、及びコロケーテッドブロックに隣接するブロックの動きベクトルのうちの少なくとも一つを動きベクトル候補として決定し、動きベクトル候補リストが生成された場合には、生成された動きベクトル候補を初期動きベクトルとして、前記テンプレートを用いた動きベクトル補正方法を介して補正された動きベクトルを導出することができる。
【0396】
ここで、N個の動きベクトル候補が存在する場合には、参照画像内のテンプレートと符号化/復号対象ブロックの周辺テンプレートとの差を最小にする動きベクトル候補を、補正された動きベクトルとして用いることができる。
【0397】
一方、前記決定された補正された動きベクトル候補を用いるにあたり、動きベクトル候補リスト内の一番目の動きベクトル候補と動きベクトル値が同一でない場合には、前記決定された補正された動きベクトル候補を、動きベクトル候補リストの一番目の候補として用いることができる。この場合、リスト内の既存の動きベクトル候補の位置は一段階ずつ増加でき、N番目の候補に対してはリスト内で除去できる。
【0398】
例えば、復元された周辺ブロックの動きベクトル、コロケーテッドブロックの動きベクトル、コロケーテッドブロックに隣接するブロックの動きベクトルから決定された動きベクトル候補が1つである場合には、動きベクトル候補を初期動きベクトルとして、前記テンプレートを用いた動きベクトル補正方法を介して補正された動きベクトルを導出することができる。
【0399】
一方、前記決定された補正された動きベクトル候補を用いるにあたり、動きベクトル候補リスト内の1番目の動きベクトル候補と補正された動きベクトル値とが同一でない場合には、前記補正された動きベクトル候補を動きベクトル候補リスト内の2番目の候補として用いることができる。
【0400】
一方、マージ候補リスト及び動きベクトル候補リストを構成するにあたり、空間的/時間的候補ブロックが前記動き補正方法を用いて符号化/復号された場合、当該候補をリストに含ませなくてもよい。
【0401】
また、前記動き補正方法を介して符号化/復号されたブロックに対しては、重畳したブロック動き補償(overlapped block motion compensation、OMBC)、双方向予測のための光流れに基づく動き補正方法(bi-directional optical flow、BIO)などをさらに適用しなくてもよい。
【0402】
また、前記動き補正方法を介して符号化/復号されたブロックに対する地域照明補償(local illumination compensation)情報は、マージインデックス情報に該当する候補ブロックから導出できる。
【0403】
図29は本発明の一実施形態に係る画像復号方法を示すフローチャートである。
【0404】
図29を参照すると、復号器は、現在ブロックのマージ候補リストから初期動きベクトルを導出することができる(S2910)。
【0405】
この場合、マージ候補リスト内でマージインデックス情報が指示するマージ候補から、初期動きベクトルを導出することができる。
【0406】
一方、現在ブロックが、双予測が可能なブロックであり、前記マージインデックス情報が指示するマージ候補に一予測方向の動き情報のみが存在する場合には、存在する動き情報の動きベクトルをミラーリング又はスケーリングして、存在しない予測方向の初期動きベクトルとして導出することができる。これについての具体的な説明は、
図12及び
図13を参照して前述したので、省略することとする。
【0407】
そして、復号器は、初期動きベクトルを用いて、補正された動きベクトルを導出することができる(S2920)。
【0408】
具体的には、補正された動きベクトルを導出するステップ(S2920)は、初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレートとの差を最小にするテンプレートを指示する動きベクトルを探索し、前記差を最小にするテンプレートを指示する動きベクトルを、前記補正された動きベクトルとして導出することができる。
【0409】
ここで、所定の探索領域は、前記初期動きベクトルが指示する参照ピクチャのピクセル位置を中心にクロス、正方形、ダイヤモンド及びヘキサゴン形状のうちの少なくとも一つを有する領域に決定できる。
【0410】
そして、初期動きベクトルが指示する参照ピクチャの探索領域内で現在ブロックの周辺テンプレート間の差を最小にするテンプレートを指示する動きベクトルは、テンプレート間の歪み値及び動きベクトルに対するコスト値のうちの少なくとも一つに基づいて探索できる。
【0411】
一方、補正された動きベクトルを導出するステップ(S2920)は、初期動きベクトルが指示する少なくとも一つの予測ブロックに基づいて、補正された動きベクトルを導出することができる。
【0412】
ここで、現在ブロックが双方向予測ブロックである場合には、第1予測方向初期動きベクトルが指示する第1予測ブロックと、第2予測方向初期動きベクトルが指示する第2予測ブロックとの重み付け和をテンプレートとして設定し、前記第1予測方向初期動きベクトル及び前記第2予測方向初期動きベクトルのうちの少なくとも一つが指示する少なくとも一つの参照ピクチャの探索領域を設定して、前記探索領域内で前記テンプレートとの差を最小にする第3予測ブロックを指示する動きベクトルを、補正された動きベクトルとして導出することができる。ここで、第1予測方向初期動きベクトルが指示する第1探索領域、及び第2予測方向初期動きベクトルが指示する第2探索領域が設定された場合、前記第1探索領域及び前記第2探索領域内でテンプレートとの差を最小にする、それぞれの予測ブロックを指示する動きベクトルを用いて、補正された動きベクトルを導出することができる。
【0413】
一方、第1予測方向初期動きベクトル又は第2予測方向初期動きベクトルのうちのいずれかが存在しない場合、存在する初期動きベクトルをミラーリング又はスケーリングして、存在しない初期動きベクトルを導出することができる。
【0414】
そして、補正された動きベクトルを用いて、前記現在ブロックの予測ブロックを生成することができる(S2930)。
【0415】
上述した画像復号方法において、現在ブロックは、復号対象ブロックのサブブロックであり得る。この場合、サブブロック単位で動きベクトルを補正することができる。
【0416】
これらの実施形態は、符号化器及び復号器で同様の方法で行われ得る。
【0417】
前記実施形態を適用する順序は、符号化器と復号器で互いに異なってもよく、符号化器と復号器で互いに同じでもよい。
【0418】
輝度及び色差信号それぞれに対して前記実施形態を行うことができ、輝度及び色差信号に対する前記実施形態を同様に行うことができる。
【0419】
本発明の実施形態が適用されるブロックの形状は、正方形状(square)或いは非正方形状(non-square)を有することができる。
【0420】
本発明の前記実施形態は、符号化ブロック、予測ブロック、変換ブロック、ブロック、現在ブロック、符号化ユニット、予測ユニット、変換ユニット、ユニット及び現在ユニットのうちの少なくとも一つのサイズに応じて適用できる。ここでのサイズは、前記実施形態が適用されるために、最小サイズ及び/又は最大サイズとして定義されてもよく、前記実施形態が適用される固定サイズとして定義されてもよい。また、前記実施形態は、第1サイズでは第1実施形態が適用されてもよく、第2サイズでは第2実施形態が適用されてもよい。すなわち、前記実施形態は、サイズに応じて複合的に適用できる。また、本発明の前記実施形態は、最小サイズ以上及び最大サイズ以下の場合にのみ適用されてもよい。すなわち、前記実施形態は、ブロックサイズが一定の範囲内に含まれる場合にのみ適用されてもよい。
【0421】
例えば、現在ブロックのサイズが8×8以上である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが4×4である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが16×16以下である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが16×16以上であり、64×64以下である場合にのみ前記実施形態が適用できる。
【0422】
本発明の実施形態は、時間的階層(temporal layer)に応じて適用できる。前記実施形態が適用可能な時間的階層を識別するために、別途の識別子(identifier)がシグナリングされ、当該識別子によって特定された時間的階層に対して前記実施形態が適用できる。ここでの識別子は、前記実施形態が適用可能な最下位階層及び/又は最上位階層と定義されてもよく、前記実施形態が適用される特定の階層を指示するものと定義されてもよい。また、前記実施形態が適用される固定された時間的階層が定義されてもよい。
【0423】
例えば、現在画像の時間的階層が最下位階層である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層識別子が1以上である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層が最上位階層である場合にのみ、前記実施形態が適用できる。
【0424】
本発明の実施形態が適用されるスライスの種類(slice type)が定義され、当該スライスの種類に応じて本発明の前記実施形態が適用できる。
【0425】
上述した実施形態において、これらの方法は、一連のステップ又はユニットでフローチャートに基づいて説明されているが、本発明は、これらのステップの順序に限定されるものではなく、あるステップは、上述したのと異なるステップと異なる順序で又は同時に発生することができる。また、当該技術分野における通常の知識を有する者であれば、フローチャートに示されたステップが排他的ではなく、他のステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本発明の範囲に影響することなく削除できることを理解することができるだろう。
【0426】
上述した実施形態は、様々な態様の例示を含む。様々な態様を示すためのすべての可能な組み合わせを記述することはできないが、当該技術分野における通常の知識を有する者は、他の組み合わせが可能であることを認識することができるだろう。よって、本発明は、以下の特許請求の範囲内に属するすべての様々な交替、修正及び変更を含むといえる。
【0427】
以上説明した本発明に係る実施形態は、様々なコンピュータ構成要素を介して実行できるプログラム命令の形で実現され、コンピュータ可読記録媒体に記録できる。前記コンピュータ可読記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ可読記録媒体に記録されるプログラム命令は、本発明のために特別に設計及び構成されたもの、又はコンピュータソフトウェア分野の当業者に公知されて使用可能なものである。コンピュータ可読記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの磁気-光媒体(magneto-optical media)、及びROM、RAM、フラッシュメモリなどのプログラム命令を保存し実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られる機械語コードだけでなく、インタプリターなどを用いてコンピュータによって実行できる高級言語コードも含まれる。前記ハードウェア装置は、本発明に係る処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成でき、その逆も同様である。
【0428】
以上で、本発明が、具体的な構成要素などの特定の事項、限定された実施形態及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものに過ぎず、本発明は前記実施形態に限定されるものではない。本発明の属する技術分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形を図ることができる。
【0429】
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等に又は等価的に変形したすべてのものは本発明の思想の範疇に属するというべきである。
【産業上の利用可能性】
【0430】
本発明は、画像を符号化/復号する装置に利用可能である。