(57)【要約】  本発明に係る映像復号化方法は、第１ブロックに対するマージ候補リストを生成することと、前記マージ候補リストに含まれたマージ候補のうちのいずれか１つを選択することと、前記選択されたマージ候補の動き情報に基づいて、前記第１ブロックに対する動き補償を実行することと、を含む。この場合、前記マージ候補リストに含まれた空間マージ候補及び時間マージ候補の数に基づいて、インター領域モーション情報テーブルに含まれたインター領域マージ候補を前記マージ候補リストに追加することができる。
2022501897.tif 000002
【特許請求の範囲】
【請求項１】
映像復号化方法であって、
第１ブロックに対するマージ候補リストを生成することと、
前記マージ候補リストに含まれたマージ候補のうちのいずれか１つを選択することと、
前記選択されたマージ候補の動き情報に基づいて、前記第１ブロックに対する動き補償を実行することと、を含み、
前記マージ候補リストに含まれた空間マージ候補及び時間マージ候補の数に基づいて、インター領域モーション情報テーブルに含まれたインター領域マージ候補を前記マージ候補リストに追加する、前記映像復号化方法。
【請求項２】
前記インター領域モーション情報テーブルは、前記第１ブロックの前に復号化されたブロックの動き情報に基づいて導出されたインター領域マージ候補を含み、
前記インター領域モーション情報テーブルは、前記第１ブロックと同じマージ処理領域に含まれた第２ブロックの動き情報に基づいて更新されないことを特徴とする、
請求項１に記載の映像復号化方法。
【請求項３】
前記第１ブロックがマージ処理領域に含まれている場合、前記第１ブロックの動き情報に基づいて導出された一時的なマージ候補を一時的なモーション情報テーブルに追加し、
前記マージ処理領域に含まれた全てのブロックの復号化が完了した場合、前記一時的な前記一時的なマージ候補を前記インター領域モーション情報テーブルに更新することを特徴とする、
請求項１に記載の映像復号化方法。
【請求項４】
前記インター領域モーション情報テーブルに含まれた第１インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第１インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定することを特徴とする、
請求項１に記載の映像復号化方法。
【請求項５】
インデックス値が閾値より小さいか等しい少なくとも１つのマージ候補と前記第１インター領域マージ候補を比較することにより、前記判定を実行することを特徴とする、
請求項４に記載の映像復号化方法。
【請求項６】
前記第１インター領域マージ候補と同じマージ候補が存在すると判定される場合、前記第１インター領域マージ候補を前記マージ候補リストに追加せず、
前記インター領域モーション情報テーブルに含まれた第２インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第２インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定し、
前記第２インター領域マージ候補と、前記第１インター領域マージ候補と同じマージ候補が同一であるかどうかについての判定を省略することを特徴とする、
請求項４に記載の映像復号化方法。
【請求項７】
前記マージ候補リストに前記第１ブロックの動き情報と同じインター領域マージ候補が存在する場合、前記インター領域モーション情報テーブル内の、前記インター領域マージ候補に割り当てられたインデックスを最大値に更新することを特徴とする、
請求項１に記載の映像復号化方法。
【請求項８】
映像符号化方法であって、
第１ブロックに対するマージ候補リストを生成することと、
前記マージ候補リストに含まれたマージ候補のうちのいずれか１つを選択することと、
前記選択されたマージ候補の動き情報に基づいて、前記第１ブロックに対する動き補償を実行することとを含み、
前記マージ候補リストに含まれた空間マージ候補及び時間マージ候補の数に基づいて、インター領域モーション情報テーブルに含まれたインター領域マージ候補を前記マージ候補リストに追加する、前記映像符号化方法。
【請求項９】
前記インター領域モーション情報テーブルは、前記第１ブロックの前に符号化されたブロックの動き情報に基づいて導出されたインター領域マージ候補を含み、
前記第１ブロックと同じマージ処理領域に含まれた第２ブロックの動き情報に基づいて、前記インター領域モーション情報テーブルが更新されないことを特徴とする、
請求項８に記載の映像符号化方法。
【請求項１０】
前記第１ブロックがマージ処理領域に含まれている場合、前記第１ブロックの動き情報に基づいて導出された一時的なマージ候補を一時的なモーション情報テーブルに追加し、
前記マージ処理領域に含まれた全てのブロックの符号化が完了した場合、前記一時的なマージ候補を前記インター領域モーション情報テーブルに更新することを特徴とする、
請求項８に記載の映像符号化方法。
【請求項１１】
前記インター領域モーション情報テーブルに含まれた第１インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第１インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定することを特徴とする、
請求項８に記載の映像符号化方法。
【請求項１２】
インデックス値が閾値より小さいか等しい少なくとも１つのマージ候補と前記第１インター領域マージ候補を比較することにより、前記判定を実行することを特徴とする、
請求項１１に記載の映像符号化方法。
【請求項１３】
前記第１インター領域マージ候補と同じマージ候補が存在すると判定される場合、前記第１インター領域マージ候補を前記マージ候補リストに追加せず、
前記インター領域モーション情報テーブルに含まれた第２インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第２インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定し、
前記第２インター領域マージ候補と、前記第１インター領域マージ候補と同じマージ候補が同一であるかどうかについての判定を省略することを特徴とする、
請求項１１に記載の映像符号化方法。
【請求項１４】
前記マージ候補リストに前記第１ブロックの動き情報と同じインター領域マージ候補が存在する場合、前記インター領域モーション情報テーブル内の、前記インター領域マージ候補に割り当てられたインデックスを最大値に更新することを特徴とする、
請求項８に記載の映像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像信号符号化／復号化方法及びその装置に関する。
【背景技術】
【０００２】
ディスプレイパネルがますます大型化されている傾向に伴い、ますますより高い画質の映像サービスが求められている。高画質の映像サービスの最大の問題は、データ量の大幅な増加であり、このような問題を解決するために、映像の圧縮率を向上させるための研究が活発に進められている。代表的な例として、２００９年に、モーション画像専門家グループ（ＭＰＥＧ：Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）と国際電気通信連合・電気通信（ＩＴＵ−Ｔ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ）傘下の映像符号化専門家グループ（ＶＣＥＧ：Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）は、映像符号化協同団体（ＪＣＴ−ＶＣ：Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）を結成した。ＪＣＴ−ＶＣは、Ｈ．２６４／ＡＶＣの約２倍の圧縮性能を有する、圧縮規格である高効率映像コーディング（ＨＥＶＣ：Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）を提案し、２０１３年１月２５日に標準の承認を取得した。高画質の映像サービスの急激な発展に伴い、ＨＥＶＣの性能も徐々にその限界を示している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、映像信号を符号化／復号化することにおいて、現在のブロックに隣接する候補ブロックから導出されたマージ候補以外のマージ候補を導出する方法、及び前記方法を実行するための装置を提供することを目的とする。
【０００４】
本発明は、映像信号を符号化／復号化することにおいて、インター領域モーション情報テーブルを使用してマージ候補を導出する方法、及び前記方法を実行するための装置を提供することを目的とする。
【０００５】
本発明は、映像信号を符号化／復号化することにおいて、マージ処理領域に含まれたブロックのマージ候補を導出する方法、及び前記方法を実行するための装置を提供することを目的とする。
【０００６】
本発明で解決しようとする技術的課題は、以上で言及した技術的課題に限定されず、以下の記載から、当業者は、以上で言及していない他の技術的課題を明確に理解することができる。
【課題を解決するための手段】
【０００７】
本発明に係る映像信号復号化／符号化方法は、第１ブロックに対するマージ候補リストを生成することと、前記マージ候補リストに含まれたマージ候補のうちのいずれか１つを選択することと、選択されたマージ候補の動き情報に基づいて前記第１ブロックに対する動き補償を実行することと、を含む。この場合、前記マージ候補リストに含まれた空間マージ候補及び時間マージ候補の数に基づいて、インター領域モーション情報テーブルに含まれたインター領域マージ候補を前記マージ候補リストに追加することができる。
【０００８】
本発明に係る映像信号復号化／符号化方法において、前記インター領域モーション情報テーブルは、前記第１ブロックの前に復号化されたブロックの動き情報に基づいて導出されたインター領域マージ候補を含み得る。この場合、前記インター領域モーション情報テーブルは、前記第１ブロックと同じマージ処理領域に含まれた第２ブロックの動き情報に基づいて更新されない可能性がある。
【０００９】
本発明に係る映像信号復号化／符号化方法において、前記第１ブロックがマージ処理領域に含まれている場合、前記第１ブロックの動き情報に基づいて導出された一時的なマージ候補を一時的なモーション情報テーブルに追加し、前記マージ処理領域に含まれた全てのブロックの復号化が完了した場合、前記一時的なマージ候補を前記インター領域モーション情報テーブルに更新することができる。
【００１０】
本発明に係る映像信号復号化／符号化方法において、前記インター領域モーション情報テーブルに含まれた第１インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第１インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定することができる。
【００１１】
本発明に係る映像信号復号化／符号化方法において、インデックス値が閾値より小さいか等しい少なくとも１つのマージ候補と前記第１インター領域マージ候補を比較することにより、前記判定を実行することができる。
【００１２】
本発明に係る映像信号復号化／符号化方法において、前記第１インター領域マージ候補と同じマージ候補が存在すると判定される場合、前記第１インター領域マージ候補を前記マージ候補リストに追加せず、前記インター領域モーション情報テーブルに含まれた第１インター領域マージ候補が、前記マージ候補リストに含まれた少なくとも１つのマージ候補と同じであるか否かについての判定結果に基づいて、前記第２インター領域マージ候補を前記マージ候補リストに追加するかどうかを決定することができる。この場合、前記第２インター領域マージ候補と、前記第１インター領域マージ候補と同じマージ候補が同一であるかどうかについての判定を省略することができる。
【００１３】
以上、本発明について簡単に説明された特徴は、後述の本発明の詳細な説明の例示的な実施形態に過ぎないものであり、本発明の範囲を限定するものではない。
【発明の効果】
【００１４】
本発明によれば、現在のブロックに隣接する候補ブロックから導出されたマージ候補以外のマージ候補を導出する方法を提供することにより、インター予測効率を向上させることができる。
【００１５】
本発明によれば、インター領域モーション情報テーブルを使用してマージ候補を導出する方法を提供することにより、インター予測効率を向上させることができる。
【００１６】
本発明によれば、マージ処理領域に含まれたブロックのマージ候補を導出する方法を提供することにより、インター予測効率を向上させることができる。
【００１７】
本発明で得られる技術的効果は、上記の言及した効果に限定されず、当業者は、以下の記載から、言及していない他の技術的効果を明確に理解することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施例に係る映像符号化器（ｅｎｃｏｄｅｒ）のブロック図である。
【図２】本発明の一実施例に係る映像復号化器（ｄｅｃｏｄｅｒ）のブロック図である。
【図３】本発明の一実施例に係る基本的な符号化ツリーユニットを示す図面である。
【図４】符号化ブロックの様々な分割形態を示す図面である。
【図５】符号化ツリーユニットの分割モードを示す図面である。
【図６】本発明の一実施例に係るインター予測方法のフローチャートである。
【図７】オブジェクトの非線形の動きを示す図面である。
【図８】本発明の一実施例に係る、アフィンモーションに基づくインター予測方法のフローチャートである。
【図９】アフィンモーションモデル別のアフィンシードベクトルを示す図面である。
【図１０】４パラメータモーションモデルの下でのサブブロックのアフィンベクトルを示す図面である。
【図１１】マージモードの下で、現在のブロックの動き情報を導出するプロセスのフローチャートである。
【図１２】マージ候補を導出するための候補ブロックを示す図面である。
【図１３】基準サンプルの位置を示す図面である。
【図１４】マージ候補を導出するための候補ブロックを示す図面である。
【図１５】基準サンプルの位置が変更される例を示す図面である。
【図１６】基準サンプルの位置が変更される例を示す図面である。
【図１７】インター領域モーション情報テーブルの更新状態を説明するためのフローチャートである。
【図１８】インター領域マージ候補リストを更新する実施例を示す図面である。
【図１９】記憶されたインター領域マージ候補のインデックスが更新される例を示す図面である。
【図２０】代表サブブロックの位置を示す図面である。
【図２１】インター予測モード別にインター領域モーション情報テーブルが生成される例を示す図面である。
【図２２】ロングタームモーション情報テーブルに含まれたインター領域マージ候補がマージ候補リストに追加される例を示す図面である。
【図２３】マージ候補のうちの一部に対してのみ冗長検出を実行する例を示す図面である。
【図２４】特定のマージ候補との冗長検出を省略する例を示す図面である。
【図２５】現在のブロックと同じマージ処理領域に含まれた候補ブロックがマージ候補として利用不可能なものに設定されている例を示す図面である。
【図２６】一時的なモーション情報テーブルを示す図面である。
【図２７】インター領域モーション情報テーブルと一時的なモーション情報テーブルを合併する例を示す図面である。
【図２８】本発明の一実施例に係るイントラ予測方法のフローチャートである。
【図２９】各参照サンプルラインに含まれた参照サンプルの図面である。
【図３０】イントラ予測モードを示す図面である。
【図３１】基準サンプルを一列に配列する１次元配列の例を示す図面である。
【図３２】基準サンプルを一列に配列する１次元配列の例を示す図面である。
【図３３】方向性イントラ予測モードが、ｘ軸と平行な直線と形成する角度を例示した図面である。
【図３４】現在のブロックが非正方形である場合、予測サンプルが取得される様態を示す図面である。
【図３５】広角イントラ予測モードを示す図面である。
【図３６】ＰＤＰＣを適用した様態を示す図面である。
【図３７】候補ブロックの探索順序を考慮して、第２マージ候補が特定される例を示す図面である。
【図３８】非隣接ブロックから導出されたマージ候補のうちから第１マージ候補及び第２マージ候補が選択された例を示す図面である。
【図３９】候補ブロックの形態に基づいて予測ブロックに適用される重み値が決定される例を示す図面である。
【図４０】アフィンマージ候補の代わりにノンアファインマージ候補を第２マージ候補として設定する例を示す図面である。
【図４１】マージ候補が置換される例を示す図面である。
【図４２】ブロックの強度を決定するプロセスを示すフローチャートである。
【図４３】事前に定義されたフィルタ候補を示す図面である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施例を詳細に説明する。
【００２０】
映像の符号化及復号化は、ブロック単位で実行される。一例として、符号化ブロック、変換ブロック又は予測ブロックについては、変換、量子化、予測、インループフィルタリング又は再構成などの符号化／復号化処理が実行されることができる。
【００２１】
以下、符号化／復号化対象となるブロックを「現在のブロック」と称する。一例として、現在のブロックは、現在の符号化／復号化処理ステップに従って、符号化ブロック、変換ブロック又は予測ブロックを示すことができる。
【００２２】
更に、本明細書で使用される「ユニット」という用語は、特定の符号化／復号化プロセスを実行するための基本単位を示し、「ブロック」は、所定のサイズのサンプルアレイを示すものと理解することができる。特に明記しない限り、「ブロック」と「ユニット」は、同等の意味で使用することができる。一例として、後述される実施例では、符号化ブロックと符号化ユニットは、相互同等の意味を持つものと理解することができる。
【００２３】
図１は、本発明の実施例に係る映像符号化器（ｅｎｃｏｄｅｒ）のブロック図である。
【００２４】
図１を参照すると、映像符号化装置１００は、画像分割部１１０、予測部１２０、１２５、変換部１３０、量子化部１３５、再配列部１６０、エントロピ符号化部１６５、逆量子化部１４０、逆変換部１４５、フィルタ部１５０及びメモリ１５５を含み得る。
【００２５】
図１に示された各構成部は、映像符号化機器において、異なる特徴的な機能を示すために、独立して示したものであり、各構成部が、分離されたハードウェアや１つのソフトウェア構成単位で構成されることを意味しない。即ち、各構成部は、説明の便宜上、各構成部を配列することにより、各構成部のうちの少なくとも２つの構成部を合併して１つの構成部に行われるか、１つの構成部が複数の構成部に分けられて機能を実行することができ、本発明の本質から逸脱しない限り、これらの各構成部が統合された実施例及び各構成部が分離された実施例も本発明の保護範囲に含まれる。
【００２６】
また、一部の構成要素は、本発明の本質的な機能を実行するために必要な構成要素ではなく、単に性能を向上させるための選択的な構成要素である。本発明は、性能を向上させるために使用される構成要素を除いて本発明の本質を具現するのに必要な構成部のみを含むことにより具現されることができ、性能を向上させるための選択的な構成要素を除いて必要な構成要素のみを含む構造も本発明の保護範囲に含まれる。
【００２７】
画像分割部１１０は、入力された画像を少なくとも１つの処理単位に分割することができる。この場合、処理単位は、予測単位（ＰＵ：Ｐｒｅｄｉｃｔｉｏｎ  Ｕｎｉｔ）であってもよく、変換単位（ＴＵ：Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ）であってもよく、符号化単位（ＣＵ：Ｃｏｄｉｎｇ  Ｕｎｉｔ）であってもよい。画像分割部１１０は、１つの画像に対して複数の符号化単位、予測単位と変換単位の組み合わせに分割して、所定の基準（例えば、コスト関数）に基づいて１つの符号化単位、予測単位及び変換単位の組み合わせを選択して画像を符号化することができる。
【００２８】
例えば、１つの画像を複数の符号化単位に分割することができる。画像で符号化単位を分割するためには、クワッドツリー構造（Ｑｕａｄ  Ｔｒｅｅ  Ｓｔｒｕｃｔｕｒｅ）などの再帰的なツリー構造を使用することができるが、１つの映像又は最大サイズの符号化単位（ｌａｒｇｅｓｔ  ｃｏｄｉｎｇ  ｕｎｉｔ）をルートして他の符号化単位に分割される符号化ユニットは、分割された符号化単位の数だけの子ノードをもって分割されることができる。特定の限制に応じて、これ以上分割されない符号化単位は、リーフノードとなる。即ち、１つの符号化ユニットに対して正方形分割のみが可能であると仮定する場合、１つの符号化単位は、最大４つの異なる符号化単位に分割されることができる。
【００２９】
以下、本発明の実施例において、符号化単位は、符号化を実行する単位の意味で使用されてもよく、復号化を実行する単位の意味で使用されてもよい。
【００３０】
予測単位は、１つの符号化単位内で、同じサイズの少なくとも１つの正方形又は長方形などの形に分割されたものであってもよく、１つの符号化単位内で分割された予測単位のいずれか１つの予測単位が他の１つの予測単位と異なる形態及び／又はサイズを有するように分割されたものであってもよい。
【００３１】
符号化単位に基づいて、イントラ予測を行う予測単位を生成するとき、最小符号化単位ではない場合、複数の予測単位ＮｘＮに分割せずにイントラ予測を行うことができる。
【００３２】
予測部１２０、１２５は、インター予測を行うインター予測部１２０及びイントラ予測を行うイントラ予測部１２５を含み得る。予測単位に対して、インター予測を使用するか、イントラ予測を行うかを決定し、各予測方法に係る具体的な情報（例えば、イントラ予測モード、モーションベクトル、参照画像など）を決定することができる。この場合、予測を行う処理単位と、予測方法、及び具体的な内容が決定される処理単位は異なる可能性がある。例えば、予測方法と予測モードなどは、予測単位で決定され、予測の実行は、変換単位で実行されることもできる。生成された予測ブロックと元のブロックとの間の残差値（残差ブロック）は、変換部１３０に入力されることができる。また、予測のために使用される予測モード情報、モーションベクトル情報などは、残差値と共にエントロピ符号化部１６５内で符号化されて復号化器に伝送されることができる。特定の符号化モードを使用する場合、予測部１２０、１２５を介して予測ブロックを生成せずに、元のブロックをそのまま符号化して復号化部に伝送することも可能である。
【００３３】
インター予測部１２０は、現在の画像の前の画像又は現在の画像その後の画像のうちの少なくとも１つの画像の情報をもとに、予測単位を予測してもよく、場合によっては、現在の画像内の符号化が完了した、一部の領域の情報に基づいて、予測単位を予測してもよい。インター予測部１２０は、参照画像補間部、モーション予測部、動き補償部を含み得る。
【００３４】
参照画像補間部は、メモリ１５５から参照画像情報を受信し、参照画像から整数画素以下の画素情報を生成することができる。輝度画素の場合、１／４画素単位で整数画素以下の画素情報を生成するためにフィルタ係数を異にするＤＣＴベースの８タブ補間フィルタ（ＤＣＴ−ｂａｓｅｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ  Ｆｉｌｔｅｒ）が使用されることができる。色差信号の場合、１／８画素単位で整数画素以下の画素情報を生成するために、フィルタ係数を異にするＤＣＴベースの４タブ補間フィルタ（ＤＣＴ−ｂａｓｅｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ  Ｆｉｌｔｅｒ）が使用されることができる。
【００３５】
モーション予測部は、参照画像補間部によって補間された参照画像に基づいて、モーション予測を行うことができる。モーションベクトルを算出するための方法は、完全検索ベースのブロックマッチングアルゴリズム（ＦＢＭＡ：Ｆｕｌｌ  ｓｅａｒｃｈ−ｂａｓｅｄ  Ｂｌｏｃｋ  Ｍａｔｃｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ）、３段階検索（ＴＳＳ：Ｔｈｒｅｅ  Ｓｔｅｐ  Ｓｅａｒｃｈ）、新しい３段階検索アルゴリズム（ＮＴＳ：Ｎｅｗ  Ｔｈｒｅｅ−Ｓｔｅｐ  Ｓｅａｒｃｈ  Ａｌｇｏｒｉｔｈｍ）など様々な方法を使用することができる。モーションベクトルは、補間された画素に基づいて、１／２又は１／４画素単位のモーションベクトル値を有することができる。モーション予測部は、モーション予測方法を異なるようにして、現在の予測単位を予測することができる。モーション予測方法は、スキップ（Ｓｋｉｐ）方法、マージ（Ｍｅｒｇｅ）方法、高度なモーションベクトル予測（ＡＭＶＰ：Ａｄｖａｎｃｅｄ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｐｒｅｄｉｃｔｉｏｎ）方法、イントラブロックコピー（Ｉｎｔｒａ  Ｂｌｏｃｋ  Ｃｏｐｙ）方法など様々な方法を使用することができる。
【００３６】
イントラ予測部１２５は、現在の画像内の画素情報である現在のブロックの周辺の参照画素情報に基づいて、予測単位を生成することができる。現在の予測単位の周辺のブロックがインター予測を行ったブロックであり、参照画素がインター予測を行った画素である場合、インター予測を行ったブロックに含まれる参照画素を、イントラ予測を行った周辺のブロックの参照画素情報に置き換えて使用することができる。即ち、参照画素が利用不可能である場合、利用不可能な参照画素情報を利用可能な参照画素のうちの少なくとも１つの参照画素に置き換えて使用することができる。
【００３７】
イントラ予測において、予測モードは、参照画素情報を予測方向に従って使用する方向性予測モードと、予測するとき方向性情報を使用しない非方向性モードを有することができる。輝度情報を予測するためのモードと色差情報を予測するためのモードが異なる可能性があり、色差情報を予測するために、輝度情報を予測するために使用されたイントラ予測モード情報又は予測された輝度信号情報を適用することができる。
【００３８】
イントラ予測を行う際に、予測単位のサイズと変換単位のサイズが同じである場合、予測単位の左側にある画素、左上にある画素、上部にある画素に基づいて、予測単位に対するイントラ予測を行うことができる。しかしながら、イントラ予測を行うとき、予測単位のサイズと変換単位のサイズが異なる場合、変換単位に基づいて、１つの参照画素を使用してイントラ予測を行うことができる。また、最小符号化単位に対してのみＮｘＮ分割を使用するイントラ予測を使用することができる。
【００３９】
イントラ予測方法は、予測モードに従って、参照画素に適応イントラスムージング（ＡＩＳ：Ａｄａｐｔｉｖｅ  Ｉｎｔｒａ  Ｓｍｏｏｔｈｉｎｇ）フィルタを適用した後、予測ブロックを生成することができる。参照画素に適用されるＡＩＳフィルタの種類は異なる場合がある。イントラ予測方法を実行するために、現在の予測単位のイントラ予測モードは、現在の予測単位の周りにある予測単位のイントラ予測モードから予測することができる。周辺の予測単位から予測されたモード情報を使用して現在の予測単位の予測モードを予測する場合、現在の予測単位と周辺の予測単位のイントラ予測モードが同じであると、所定のフラグ情報を使用して現在の予測単位と周辺の予測単位の予測モードが同じである情報を伝送することができ、現在の予測単位と周辺の予測単位の予測モードが異なると、エントロピ符号化を行うことにより現在のブロックの予測モード情報を符号化することができる。
【００４０】
また、予測部１２０、１２５から生成された予測単位に基づいて、予測を行った予測単位と予測単位の元のブロックの間の差値である残差値（Ｒｅｓｉｄｕａｌ）情報を含む残差ブロックを生成することができる。生成された残差ブロックは、変換部１３０に入力することができる。
【００４１】
変換部１３０は、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、離散サイン変換（ＤＳＴ：Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、Ｋ−Ｌ変換（ＫＬＴ）などの変換方法を使用して、元のブロック及び予測部１２０、１２５によって生成された予測単位の残差値（ｒｅｓｉｄｕａｌ）情報を含む残差ブロックを変換することができる。残差ブロックを変換するために、ＤＣＴを適用するか、ＤＳＴを適用するか、ＫＬＴを適用するかについては、残差ブロックを生成するために使用された予測単位のイントラ予測モード情報に基づいて決定することができる。
【００４２】
量子化部１３５は、変換部１３０において周波数領域に変換された値を量子化することができる。ブロックに応じて、又は映像の重要性に応じて、量子化係数は変化することができる。量子化部１３５から算出された値を逆量子化部１４０及び再配列部１６０に提供することができる。
【００４３】
再配列部１６０は、量子化された残差値に対して、係数値の再配列を実行することができる。
【００４４】
再配列部１６０は、係数スキャン（Ｃｏｅｆｆｉｃｉｅｎｔ  Ｓｃａｎｎｉｎｇ）方法を通じて、２次元のブロック形状係数を１次元のベクトル形式に変更することができる。例えば、再配列部１６０は、ジグザグスキャン（Ｚｉｇ−Ｚａｇ  Ｓｃａｎ）方法を使用して、ＤＣ係数から高周波数領域の係数までスキャンして１次元ベクトル形式に変更することができる。変換単位のサイズ及びイントラ予測モードに従って、ジグザグスキャンの代わりに２次元のブロック形状係数を列方向に沿ってスキャンする垂直スキャン、２次元のブロック形状係数を行方向に沿ってスキャンする水平スキャンを使用することもできる。即ち、変換単位のサイズ及びイントラ予測モードに従って、ジグザグスキャン、垂直方法スキャン及び水平方向スキャンのうち、どのスキャン方法を使用するかについて決定することができる。
【００４５】
エントロピ符号化部１６５は、再配列部１６０によって算出された値に基づいて、  エントロピ符号化を行うことができる。エントロピ符号化は、指数ゴルロム（Ｅｘｐｏｎｅｎｔｉａｌ  Ｇｏｌｏｍｂ）、コンテキスト適応可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）などの様々な符号化方法を使用することができる。
【００４６】
エントロピ符号化部１６５は、再配列部１６０及び予測部１２０、１２５から、符号化単位の残差値係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、予測単位情報及び伝送単位情報、モーションベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報など様々な情報を符号化することができる。
【００４７】
エントロピ符号化部１６５は、再配列部１６０に入力された符号化単位の係数値をエントロピ符号化することができる。
【００４８】
逆量子化部１４０及び逆変換部１４５は、量子化部１３５によって量子化された値を逆量子化し、変換部１３０によって変換された値を逆変換する。逆量子化部１４０及び逆変換部１４５によって生成された残差値（Ｒｅｓｉｄｕａｌ）は、予測部１２０、１２５に含まれた動き推定部と、動き補償部及びイントラ予測部によって予測された予測単位とを組み合わせて再構成ブロック（Ｒｅｃｏｎｓｔｒｕｃｔｅｄ  Ｂｌｏｃｋ）を生成することができる。
【００４９】
フィルタ部１５０は、デブロッキングフィルタ、オフセット補正部、適応ループフィルタ（ＡＬＦ：Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒ）のうちの少なくとも１つを含み得る。
【００５０】
デブロッキングフィルタは、再構成された画像でブロック間の境界によって生成されたブロック歪みを除去することができる。デブロッキングするかどうかを判定するために、ブロックに含まれたいくつかの列又は行に含まれた画素に基づいて、現在のブロックにデブロッキングフィルタを適用するかどうかを判定することができる。ブロックにデブロッキングフィルタを適用した場合、必要なデブロッキングフィルタリング  の強度に応じて、強いフィルタ（Ｓｔｒｏｎｇ  Ｆｉｌｔｅｒ）又は弱いフィルタ（Ｗｅａｋ  Ｆｉｌｔｅｒ）を適用することができる。また、デブロッキングフィルタを適用することにより、垂直フィルタリング及び水平フィルタリングを実行するとき、水平方向のフィルタリング及び垂直方向のフィルタリングが並列処理されるようにすることができる。
【００５１】
オフセット補正部は、デブロッキングを行った映像と元の映像のオフセットを画素単位で補正することができる。特定の画像に対するオフセット補正を実行するために、映像に含まれた画素を特定の数の領域に区分した後、オフセットを行う領域を決定し、対応する領域にオフセットを適用する方法又は各画素のエッジ情報を考慮してオフセットを適用する方法を使用することができる。
【００５２】
適応ループフィルタ（ＡＬＦ：Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒｉｎｇ）は、フィルタリングされた再構成映像と元の映像を比較した値に基づいて実行されることができる。映像に含まれた画素を所定のグループに分け、対応するグループに適用される１つのフィルタを決定してグループごとに差別的にフィルタリングを行うことができる。ＡＬＦを適用するかどうかに関連する情報及び輝度信号は、ＡＬＦ符号化単位（ＣＵ：Ｃｏｄｉｎｇ  Ｕｎｉｔ）ごとに伝送されることができ、適用されるＡＬＦフィルタの形状及びフィルタ係数は各ブロックに応じて異なる。また、適用するブロックの特性とは関係なく、同じタイプ（固定タイプ）のＡＬＦフィルタを適用することもできる。
【００５３】
メモリ１５５は、フィルタ部１５０によって算出された再構成ブロック又は画像を記憶することができ、記憶された再構成ブロック又は画像は、インター予測を行う際、予測部１２０、１２５に提供されることができる。
【００５４】
図２は、本発明の実施例に係る映像復号化器（ｄｅｃｏｄｅｒ）のブロック図である。
【００５５】
図２を参照すると、映像復号化器２００は、エントロピ復号化部２１０、再配列部２１５、逆量子化部２２０、逆変換部２２５、予測部２３０、２３５、フィルタ部２４０、メモリ２４５を含み得る。
【００５６】
映像符号化器から映像ビットストリームが入力された場合、入力されたビットストリームは、映像符号化器の逆のステップに従って復号化することができる。
【００５７】
エントロピ復号化部２１０は、映像符号化器のエントロピ符号化部でエントロピ符号化を行うステップとは反対のステップでエントロピ復号化を行うことができる。例えば、映像符号化器で実行された方法に対応して、指数ゴロンブ（Ｅｘｐｏｎｅｎｔｉａｌ  Ｇｏｌｏｍｂ）、コンテキスト適応可変長コーディング（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）などの様々な方法が適用されることができる。
【００５８】
エントロピ復号化部２１０は、符号化器によって実行されたイントラ予測及びインター予測に関する情報を復号化することができる。
【００５９】
再配列部２１５は、符号化部において、エントロピ復号化部２１０によってエントロピ復号化されたビットストリームを再配列する方法に基づいて再配列することができる。１次元ベクトルの形で表れた係数を２次元のブロックの形の係数に再構成して再配列することができる。再配列部２１５は、符号化部によって実行された係数スキャンに関連する情報を受信し、対応する符号化部によって実行されたスキャン順序に基づいて、逆にスキャンする方法を通じて再配列することができる。
【００６０】
逆量子化部２２０は、符号化器から提供された量子化パラメータ、及び再配列されたブロックの係数値に基づいて逆量子化することができる。
【００６１】
逆変換部２２５は、映像符号化器によって実行された量子化結果に対して、変換部によって実行された変換、即ち、ＤＣＴ、ＤＳＴ及びＫＬＴに対して、逆変換、即ち、逆ＤＣＴ、逆ＤＳＴ及び逆ＫＬＴを実行することができる。逆変換は、映像符号化器によって決定された伝送単位に基づいて、実行することができる。映像復号化器の逆変換部２２５は、予測方法、現在のブロックのサイズ及び予測方向などの複数の情報に従って変換方法（例えば、ＤＣＴ、ＤＳＴ、ＫＬＴ）を選択的に実行することができる。
【００６２】
予測部２３０、２３５は、エントロピ復号化部２１０によって提供された、予測ブロックの生成に関連する関連情報と、メモリ２４５によって提供された、以前に復号化されたブロック又は画像情報とに基づいて、予測ブロックを生成することができる。
【００６３】
上記のように、映像符号化器での動作と同じくイントラ予測を行うとき、予測単位のサイズと変換単位のサイズが同じである場合、予測単位の左側にある画素、左上にある画素、上部にある画素に基づいて、予測単位に対するイントラ予測を行うが、イントラ予測を行うとき、予測単位のサイズと変換単位のサイズが異なる場合、変換単位に基づき、１つの参照画素を使用してイントラ予測を行うことができる。また、最小符号化単位に対してのみＮｘＮ分割を使用するイントラ予測を使用することもできる。
【００６４】
予測部２３０、２３５は、予測単位判定部、インター予測部及びイントラ予測部を含み得る。予測単位判定部は、エントロピ復号化部２１０から入力される予測単位情報、イントラ予測方法の予測モード情報、インター予測方法のモーション予測関連情報など様々な情報を受信し、現在の符号化単位で予測単位を区分し、予測単位がインター予測を行うか、それともイントラ予測を行うかを判定することができる。インター予測部２３０は、映像符号化器から提供された現在の予測単位のインター予測に必要な情報を使用して、現在の予測単位が含まれている現在の画像の前の画像又はそれその後の画像のうちの少なくとも１つの画像に含まれた情報に基づいて、現在の予測単位に対するインター予測を行うことができる。あるいは、現在の予測単位が含まれている現在の画像で再構成された部分領域の情報に基づいて、インター予測を行うことができる。
【００６５】
インター予測を行うために、符号化単位に基づいて、対応する符号化単位に含まれた予測単位のモーション予測方法が、スキップモード（Ｓｋｉｐ  Ｍｏｄｅ）、マージモード（Ｍｅｒｇｅモード）、モーションベクトル予測モード（ＡＭＶＰ  Ｍｏｄｅ）、イントラブロックコピーモードのうち、どのような方法であるかを判定することができる。
【００６６】
イントラ予測部２３５は、現在の画像内の画素情報に基づいて、予測ブロックを生成することができる。予測単位がイントラ予測を行う予測単位である場合、映像符号化器から提供された予測単位のイントラ予測モード情報に基づいて、イントラ予測を行うことができる。イントラ予測部２３５は、適応イントラスムージング（ＡＩＳ：Ａｄａｐｔｉｖｅ  Ｉｎｔｒａ  Ｓｍｏｏｔｈｉｎｇ）フィルタ、参照画素補間部、ＤＣフィルタを含み得る。ＡＩＳフィルタは、現在のブロックの参照画素をフィルタリングする部分であり、現在の予測単位の予測モードに従って、フィルタを適用するかどうかを決定することができる。映像符号化器から提供された予測単位の予測モード及びＡＩＳフィルタ情報を使用して現在のブロックの参照画素に対してＡＩＳフィルタリングを行うことができる。現在のブロックの予測モードがＡＩＳフィルタリングを行わないモードである場合、ＡＩＳフィルタは適用されない可能性がある。
【００６７】
参照画素補間部は、予測単位の予測モードが参照画素を補間する画素値に基づいてイントラ予測を行う予測単位である場合、参照画素を補間して整数値又はその以下の画素単位の参照画素を生成することができる。現在の予測単位の予測モードが参照画素を補間せずに予測ブロックを生成する予測モードである場合、参照画素は補間されない可能性がある。ＤＣフィルタは、現在のブロックの予測モードがＤＣモードである場合に、フィルタリングにより予測ブロックを生成することができる。
【００６８】
再構成されたブロック又は画像をフィルタ部２４０に提供することができる。フィルタ部２４０は、デブロッキングフィルタ、オフセット補正部、ＡＬＦを含み得る。
【００６９】
映像符号化器から、対応するブロック又は画像にデブロッキングフィルタを適用したかどうかに対する情報、及びデブロッキングフィルタを適用した場合、強いフィルタを適用したか、弱いフィルタを適用したかに対する情報を受信することができる。映像復号化器のデブロッキングフィルタは、映像符号化器から提供されたデブロッキングフィルタ関連情報を受信し、映像復号化器によって、対応するブロックに対するデブロッキングフィルタリングを行うことができる。
【００７０】
オフセット補正部は、符号化するとき映像に適用されたオフセット補正の種類及びオフセット値情報などに基づいて、再構成された映像に対してオフセット補正することができる。
【００７１】
符号化器によって提供された、ＡＬＦに適用するかどうかに関連する情報、及びＡＬＦ係数情報などに基づいて、ＡＬＦを符号化単位に適用することができる。このようなＡＬＦ情報は、特定のパラメータセットに含まれて提供されることができる。
【００７２】
メモリ２４５は、再構成された画像又はブロックを記憶することにより、前記画像又はブロックが参照画像又は参照ブロックとして使用されるようにし、また、再構成された画像を出力部に提供することができる。
【００７３】
図３は、本発明の実施例に係る基本的な符号化ツリーユニットを示す図面である。
【００７４】
最大サイズの符号化ブロックを符号化ツリーブロックとして定義することができる。１つの画像は、複数の符号化ツリーユニット（ＣＴＵ：Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）に分割される。符号化ツリーユニットは、最大サイズの符号化ユニットであり、最大符号化ユニット（ＬＣＵ：Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ）とも呼ばれる。図３は、１つの画像が複数の符号化ツリーユニットに分割された例を示す。
【００７５】
符号化ツリーユニットのサイズは、画像レベル又はシーケンスレベルによって定義されることができる。したがって、画像パラメータセット又はシーケンスパラメータセットを介して符号化ツリーユニットのサイズを表す情報をシグナリングすることができる。
【００７６】
一例として、シーケンス内の画像に対する符号化ツリーユニットのサイズを１２８ｘ１２８に設定することができる。又は、画像レベルの１２８ｘ１２８又は２５６ｘ２５６のいずれか１つを符号化ツリーユニットのサイズとして決定することができる。一例として、第１画像の符号化ツリーユニットのサイズを１２８ｘ１２８に設定し、第２画像の符号化ツリーユニットのサイズを２５６ｘ２５６に設定することができる。
【００７７】
符号化ツリーユニットを分割することにより、符号化ブロックを生成することができる。符号化ブロックは、符号化／復号化処理するための基本単位を表す。一例として、符号化ブロックごとに予測又は変換を行うことができ、又は符号化ブロックごとに予測符号化モードを決定することができる。ここで、予測符号化モードは、予測映像を生成する方法を表す。一例として、予測符号化モードは、画面内予測（イントラ予測（Ｉｎｔｒａ  Ｐｒｅｄｉｃｔｉｏｎ））、画面間予測（インター予測（Ｉｎｔｅｒ  Ｐｒｅｄｉｃｔｉｏｎ））、現在画像参照（ＣＰＲ：Ｃｕｒｒｅｎｔ  Ｐｉｃｔｕｒｅ  Ｒｅｆｅｒｅｎｃｉｎｇ、又はイントラブロックコピー（ＩＢＣ：Ｉｎｔｒａ  Ｂｌｏｃｋ  Ｃｏｐｙ））又は複合予測（Ｃｏｍｂｉｎｅｄ  Ｐｒｅｄｉｃｔｉｏｎ）を含み得る。符号化ブロックについては、イントラ予測、インター予測、現在画像参照又は複合予測のうちの少なくとも１つの予測符号化モードを使用して、符号化ブロックに関連する予測ブロックを生成することができる。
【００７８】
ビットストリーム用信号を介して、現在のブロックの予測符号化モードを表す情報を送信することができる。一例として、前記情報は、予測符号化モードがイントラモードであるか、インターモードの１ビットのフラグであるかを指示することができる。現在のブロックの予測符号化モードがインターモードとして決定される場合のみ、現在画像参照又は複合予測を使用することができる。
【００７９】
現在画像参照は、現在画像を参照画像として設定し、現在画像内の符号化／復号化された領域から現在のブロックの予測ブロックを取得するために使用される。ここで、現在画像とは、現在のブロックを含む画像を意味する。ビットストリーム用信号を介して、現在のブロックが現在画像参照を適用するかどうかを表す情報を送信することができる。一例として、前記情報は、１ビットのフラグであってもよい。前記フラグが真の場合、現在のブロックの予測符号化モードを現在画像参照として決定することができ、前記フラグが偽の場合、現在のブロックの予測モードをインター予測として決定することができる。
【００８０】
あるいは、参照画像インデックスに基づいて現在のブロックの予測符号化モードを決定することができる。一例として、参照画像インデックスが現在画像を指す場合、現在のブロックの予測符号化モードを現在画像参照として決定することができる。参照画像インデックスが現在画像ではなく他の画像を指す場合、現在のブロックの予測符号化モードをインター予測として決定することができる。即ち、現在画像参照は、現在画像内の符号化／復号化された領域の情報を使用した予測方法であり、インター予測は、符号化／復号化された他の画像の情報を使用した予測方法である。
【００８１】
複合予測は、イントラ予測、インター予測及び現在画像参照のうちの２つ以上を組み合わせた符号化モードである。一例として、複合予測を適用する場合、イントラ予測、インター予測又は現在画像参照のうちの１つに基づいて、第１予測ブロックを生成し、別の１つに基づいて第２予測ブロックを生成することができる。第１予測ブロック及び第２予測ブロックを生成すると、第１予測ブロックと第２予測ブロックの平均演算又は加重和演算により、最終的な予測ブロックを生成することができる。ビットストリーム用信号を介して、複合予測を適用するかどうかを表す情報を送信することができる。前記情報は、１ビットのフラグであってもよい。
【００８２】
図４は、符号化ブロックの様々な分割形態を示す図面である。
【００８３】
クアッドツリー分割、バイナリツリー分割、またはトリプルツリー分割に基づいて、符号化ブロック分割を複数の符号化ブロックに分割することができる。クアッドツリー分割、バイナリツリー分割、またはトリプルツリー分割に基づいて、分割された符号化ブロックを再び複数の符号化ブロックに分割することもできる。
【００８４】
クアッドツリー分割は、現在のブロック分割を４つのブロックに分割する分割技術を指す。クアッドツリー分割の結果として、現在のブロック分割を４つの正方形のパーティション（図４の（ａ）「ＳＰＬＩＴ＿ＱＴ」）に分割することができる。
【００８５】
バイナリツリー分割は、現在のブロック分割を２つのブロックに分割する分割技術を指す。垂直方向に沿って（即ち、現在のブロックを横切る垂直線を利用）現在のブロックを２つのブロックに分割することを垂直方向バイナリツリー分割と称することができ、水平方向に沿って（即ち、現在のブロックを横切る水平線を利用）現在のブロックを２つのブロックに分割することを水平方向バイナリツリー分割と称することができる。バイナリツリーが分割された結果、現在のブロックは、２つの非正方形のパーティションに分割されることができる。図４の（ｂ）「ＳＰＬＩＴ＿ＢＴ＿ＶＥＲ」は、垂直方向バイナリツリー分割結果を表し、図４の（ｃ）「ＳＰＬＩＴ＿ＢＴ＿ＨＯＲ」は、水平方向バイナリツリー分割結果を表す。
【００８６】
トリプルツリー分割は、現在のブロックを３つのブロックに分割する分割技術を指す。垂直方向に沿って（即ち、現在のブロックを横切る２つの垂直線を利用）現在のブロックを３つのブロックに分割することを垂直方向トリプルツリー分割と称することができ、水平方向に沿って（即ち、現在のブロックを横切る２つの水平線を利用）現在のブロックを３つのブロックに分割することを水平方向トリプルツリー分割と称することができる。トリプルツリーが分割された結果、現在のブロックは、３つの非正方形のパーティションに分割されることができる。この場合、現在のブロックの中央に位置するパーティションの幅／高さは、異なるパーティションの幅／高さの２倍であってもよい。図４の（ｄ）「ＳＰＬＩＴ＿ＴＴ＿ＶＥＲ」は、垂直方向トリプルツリー分割結果を表し、図４の（ｅ）「ＳＰＬＩＴ＿ＴＴ＿ＨＯＲ」は、水平方向トリプルツリー分割結果を表す。
【００８７】
符号化ツリーユニットの分割の回数を分割深さ（Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｄｅｐｔｈ）と定義することができる。シーケンス又は画像レベルによって、符号化ツリーユニットの最大分割深さが決定されることができる。これにより、シーケンス又は画像ごとに、符号化ツリーユニットの最大分割深さが異なる可能性がある。
【００８８】
あるいは、分割技術のそれぞれの最大分割深さを個別に決定することができる。一例として、クアッドツリー分割が許可される最大分割深さは、バイナリツリー分割及び／又はトリプルツリー分割が許可される最大分割深さと異なる可能性がある。
【００８９】
符号化器は、ビットストリームを介して、現在のブロックの分割形態又は分割深さのうちの少なくとも１つを表す情報をシグナリングすることができる。復号化器は、ビットストリームから解析された前記情報に基づいて、符号化ツリーユニットの分割形態及び分割深さを決定することができる。
【００９０】
図５は、符号化ツリーユニットの分割モードを示す図面である。
【００９１】
クアッドツリー分割、バイナリツリー分割及び／又はトリプルツリー分割などの分割技術を使用して、符号化ブロックを分割することをマルチツリー分割（Ｍｕｌｔｉ  Ｔｒｅｅ  Ｐａｒｔｉｔｉｏｎｉｎｇ）と称することができる。
【００９２】
符号化ブロックにマルチツリー分割を適用することにより生成された符号化ブロックを下位符号化ブロックと称することができる。符号化ブロックの分割深さがｋである場合、下位符号化ブロックの分割深さをｋ＋１に設定される。
【００９３】
逆に、分割深さがｋ＋１である符号化ブロックにとって、分割深さがｋである符号化ブロックを上位符号化ブロックと称することができる。
【００９４】
上位符号化ブロックの分割形態又は隣接する符号化ブロックの分割タイプのうちの少なくとも１つに基づいて、現在の符号化ブロックの分割タイプを決定することができる。ここで、隣接する符号化ブロックは、現在の符号化ブロックに隣接し、当該隣接する符号化ブロックは、現在の符号化ブロックの上部隣接ブロック、左側隣接ブロック、又は左上隅に隣接する隣接ブロックのうちの少なくとも１つを含み得る。ここで、分割タイプは、クアッドツリー分割するかどうか、バイナリツリー分割するかどうか、バイナリツリー分割方向、トリプルツリー分割するかどうか、又はトリプルツリー分割方向のうちの少なくとも１つを含み得る。
【００９５】
符号化ブロックの分割形態を決定するために、ビットストリームを介して、符号化ブロックが分割されるかどうかを表す情報をシグナリングすることができる。前記情報は、１ビットのフラグ「ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ」であり、前記フラグが真である場合、マルチツリー分割技術を通じて符号化ブロックを分割することを表す。
【００９６】
ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇが真である場合、ビットストリームを介して、符号化ブロックがクアッドツリー分割されるかどうかを表す情報をシグナリングすることができる。前記情報は、１ビットのフラグ「ｓｐｌｉｔ＿ｑｔ＿ｆｌａｇ」であり、前記フラグが真である場合、符号化ブロックは、４つのブロックに分割されることができる。
【００９７】
一例として、図５に示された例では、符号化ツリーユニットがクアッドツリー分割されることに伴い、分割深さが１である４つの符号化ブロックが生成されることが示されている。また、クアッドツリー分割結果として生成された４つの符号化ブロックのうちの最初の符号化ブロック及び４番目の符号化ブロックに再びクアッドツリー分割が適用されることが示されている。その結果、分割深さが２である４つの符号化ブロックを生成することができる。
【００９８】
また、分割深さが２である符号化ブロックに再びクアッドツリー分割を適用することにより、分割深さが３である符号化ブロックを生成することができる。
【００９９】
符号化ブロックにクアッドツリー分割が適用されない場合、符号化ブロックのサイズ、符号化ブロックが画像の境界に位置するかどうか、最大分割深さ又は隣接ブロックの分割形状のうちの少なくとも１つを考慮して、前記符号化ブロックにバイナリツリー分割又はトリプルツリー分割を実行するかどうかを決定することができる。前記符号化ブロックにバイナリツリー分割又はトリプルツリー分割が適用されると決定された場合、ビットストリームを介して、分割方向を示す情報をシグナリングすることができる。前記情報は、１ビットのフラグ「ｍｔｔ＿ｓｐｌｉｔ＿ｃｕ＿ｖｅｒｔｉｃａｌ＿ｆｌａｇ」であってもよい。前記フラグに基づいて、分割方向が垂直方向であるか、水平方向であるかを決定することができる。加えて、ビットストリームを介して、バイナリツリー分割又はトリプルツリー分割のいずれかが前記符号化ブロックに適用されるかを表す情報をシグナリングことができる。前記情報は、１ビットのフラグ「ｍｔｔ＿ｓｐｌｉｔ＿ｃｕ＿ｂｉｎａｒｙ＿ｆｌａｇ」であってもよい。前記フラグに基づいて、前記符号化ブロックにバイナリツリー分割が適用されるか、トリプルツリー分割が適用されるかを決定することができる。
【０１００】
一例として、図５に示された例では、分割深さが１である符号化ブロックに垂直方向バイナリツリー分割が適用され、前記分割結果として生成された符号化ブロックのうちの左側の符号化ブロックには垂直方向トリプルツリー分割が適用され、右側の符号化ブロックには垂直方向バイナリツリー分割が適用されていることが示されている。
【０１０１】
インター予測は、以前の画像の情報を使用して、現在のブロックを予測する予測符号化モードである。一例として、以前の画像において現在のブロックと同じ位置にあるブロック（以下、同位置ブロック（Ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋ）と称する）を現在のブロックの予測ブロックに設定することができる。以下、現在のブロックと同じ位置にあるブロックに基づいて生成された予測ブロックを同位置予測ブロック（Ｃｏｌｌｏｃａｔｅｄ  Ｐｒｅｄｉｃｔｉｏｎ  Ｂｌｏｃｋ）と称することにする。
【０１０２】
もう一方では、以前の画像に存在したオブジェクトが現在の画像では他の場所に移動すると、オブジェクトの動きを利用して、現在のブロックを効果的に予測することができる。例えば、以前の画像と現在の画像を比較することにより、ブジェクトの移動方向及びサイズを知ると、オブジェクトの動き情報を考慮して現在のブロックの予測ブロック（又は、予測映像）を生成することができる。以下、動き情報で生成された予測ブロックを動き予測ブロックと称することができる。
【０１０３】
現在のブロックで予測ブロックを差分して、残差ブロック（ｒｅｓｉｄｕａｌ  ｂｌｏｃｋ）を生成することができる。この場合、オブジェクトの動きが存在する場合、同位置予測ブロックの代わりに動き予測ブロックを使用することにより、残差ブロックのエナジーを減らし、これにより、残差ブロックの圧縮性能を向上させることができる。
【０１０４】
上記のように、動き情報を利用して予測ブロックを生成することを動き補償予測と称することができる。ほとんどのインター予測では、動き補償予測に基づいて予測ブロックを生成することができる。
【０１０５】
動き情報は、モーションベクトル、参照画像インデックス、予測方向又は両方向の重み値インデックスのうちの少なくとも１つを含み得る。モーションベクトルは、オブジェクトの移動方向及びサイズを表す。参照画像インデックスは、参照画像リストに含まれた参照画像のうちの現在のブロックの参照画像を特定する。予測方向は、一方向のＬ０予測、一方向のＬ１予測又は両方向予測（Ｌ０予測及びＬ１予測）のうちのいずれかを指す。現在のブロックの予測方向に従って、Ｌ０方向の動き情報又はＬ１方向の動き情報のうちの少なくとも１つを使用することができる。両方向の重み値インデックスは、Ｌ０予測ブロックに適用される重み値及びＬ１予測ブロックに適用される重み値を特定する。
【０１０６】
図６は、本発明の実施例に係るインター予測方法のフローチャートである。
【０１０７】
図６を参照すると、インター予測方法は、現在のブロックのインター予測モードを決定することと（ステップＳ６０１）、決定されたインター予測モードに従って、現在のブロックの動き情報を取得することと（ステップＳ６０２）、取得された動き情報に基づいて、現在のブロックに対する動き補償予測を実行することと（ステップＳ６０３）、を含む。
【０１０８】
ここで、インター予測モードは、現在のブロックの動き情報を決定するための様々な技術を表し、当該インター予測モードは、並進（Ｔｒａｎｓｌａｔｉｏｎ）動き情報を使用するインター予測モードと、アフィン（Ａｆｆｉｎｅ）動き情報を使用するインター予測モードを含み得る。一例として、並進動き情報を使用するインター予測モードは、マージモード及びモーションベクトル予測モードを含み、アフィン動き情報を使用するインター予測モードは、アフィンマージモード及びアフィンモーションベクトル予測モードを含み得る。インター予測モードに従って、現在のブロックに隣接する隣接ブロック又はビットストリームから解析された情報に基づき、現在のブロックの動き情報を決定することができる。
【０１０９】
以下、アフィン動き情報を使用するインター予測方法について詳しく説明する。
【０１１０】
図７は、オブジェクトの非線形の動きを示す図面である。
【０１１１】
映像内の物体の動きは非線形の動きである可能性がある。一例として、図７に示された例のように、ズームイン（Ｚｏｏｍ−ｉｎ）、ズームアウト（Ｚｏｏｍ−ｏｕｔ）、回転（Ｒｏｔａｔｉｏｎ）又はアフィン変換などオブジェクトの非線形の動きが発生することができる。オブジェクトの非線形の動きが発生した場合、並進動きベクトルでオブジェクトの動きを効果的に表すことができない。これにより、オブジェクトの非線形の動きが発生した部分では、並進動きの代わりにアフィン動きを使用することにより、符号化効率を向上させることができる。
【０１１２】
図８は、本発明の実施例に係る、アフィンモーションに基づくインター予測方法のフローチャートである。
【０１１３】
ビットストリームから解析された情報に基づいて、アフィンモーションに基づくインター予測技術を現在のブロックに適用するかどうかを決定することができる。具体的に、現在のブロックにアフィンマージモードが適用されるかどうかを表すフラグ、又は現在のブロックにアフィンモーションベクトル予測モードが適用されるかどうかを表すフラグのうちの少なくとも１つに基づいて、アフィンモーションに基づくインター予測技術が現在のブロックに適用されるかどうかを決定することができる。
【０１１４】
アフィンモーションに基づくインター予測技術が現在のブロックに適用される場合、現在のブロックのアフィンモーションモデルを決定することができる（ステップＳ８０１）。アフィンモーションモデルは、６パラメータアフィンモーションモデル又は４パラメータアフィンモーションモデルのうちの少なくとも１つによって決定されることができる。６パラメータアフィンモーションモデルは、６つのパラメータを使用してアフィンモーションを表し、４パラメータアフィンモーションモデルは、４つのパラメータを使用してアフィンモーションを表す。
【０１１５】
式１は、６パラメータを使用してアフィンモーションを表したものである。アフィンモーションは、アフィンシードベクトルによって決定される所定の領域に対する並進動きを表す。
【０１１６】
【数１】
2022501897.tif 000003
【０１１７】
６つのパラメータを使用してアフィンモーションを表す場合、複雑な動きを表すことができるが、各パラメータを符号化するのに必要なビット数が多くなって符号化効率が低下する可能性がある。これにより、４つのパラメータを使用してアフィンモーションを表すこともできる。式２は、４パラメータを使用してアフィンモーションを表したものである。
【０１１８】
【数２】
2022501897.tif 000004
【０１１９】
現在のブロックのアフィンモーションモデルを決定するための情報を符号化することができ、ビットストリームを介してシグナリングされることができる。一例として、前記情報は、１ビットのフラグ「ａｆｆｉｎｅ＿ｔｙｐｅ＿ｆｌａｇ」であってもよい。前記フラグの値が０であることは、４パラメータアフィンモーションモデルが適用されることを表し、前記フラグの値が１であることは、６パラメータアフィンモーションモデルが適用されることを表すことができる。前記フラグは、スライス（ｓｌｉｃｅ）、タイル（ｔｉｌｅ）又はブロック（例えば、符号化ブロック又は符号化ツリーユニットなど）を単位として符号化されることができる。スライスレベルでフラグがシグナリングされる場合、前記スライスレベルによって決定されたアフィンモーションモデルは、前記スライスに属するブロックの全てに適用することができる。
【０１２０】
又は、現在のブロックのアフィンインター予測モードに基づいて、現在のブロックのアフィンモーションモデルを決定することができる。一例として、アフィンマージモードが適用される場合、現在のブロックのアフィンモーションモデルを４パラメータモーションモデルとして決定することができる。もう一方では、アフィンモーションベクトル予測モードが適用される場合、現在のブロックのアフィンモーションモデルを決定するための情報を符号化し、ビットストリームを介してシグナリングされることができる。一例として、現在のブロックにアフィンモーションベクトル予測モードが適用される場合、１ビットのフラグ「ａｆｆｉｎｅ＿ｔｙｐｅ＿ｆｌａｇ」に基づいて、現在のブロックのアフィンモーションモデルを決定することができる。
【０１２１】
次に、現在のブロックのアフィンシードベクトルを導出することができる（ステップＳ８０２）。４パラメータアフィンモーションモデルが選択された場合、現在のブロックの２つのコントロールポイントでのモーションベクトルを導出することができる。もう一方では、６パラメータアフィンモーションモデルが選択された場合、現在のブロックの３つのコントロールポイントでのモーションベクトルを導出することができる。コントロールポイントでのモーションベクトルをアフィンシードベクトルと称することができる。コントロールポイントは、現在のブロックの左上コーナー、右上コーナー又は左下コーナーのうちの少なくとも１つを含み得る。
【０１２２】
図９は、アフィンモーションモデル別のアフィンシードベクトルを示す図面である。
【０１２３】
４パラメータアフィンモーションモデルでは、左上コーナー、右上コーナー又は左下コーナーのうちの２つに対するアフィンシードベクトルを導出することができる。一例として、図９の（ａ）に示された例のように、４パラメータアフィンモーションモデルが選択された場合、現在のブロックの左上コーナー（例えば、左上のサンプル（ｘ１，ｙ１））に対するアフィンシードベクトルｓｖ０及び現在のブロックの右上コーナー（例えば、右上のサンプル（ｘ１，ｙ１））に対するアフィンシードベクトルｓｖ１を使用してアフィンベクトルを導出することができる。左上コーナーに対するアフィンシードベクトルの代わりに、左下コーナーに対するアフィンシードベクトルを使用するか、右上コーナーに対するアフィンシードベクトルの代わりに、左下コーナーに対するアフィンシードベクトルを使用することができる。
【０１２４】
６パラメータアフィンモーションモデルでは、左上コーナー、右上コーナー及び左下コーナーに対するアフィンシードベクトルを導出することができる。一例として、図９の（ｂ）に示された例のように、６パラメータアフィンモーションモデルが選択された場合、現在のブロックの左上コーナー（例えば、左上のサンプル（ｘ１，ｙ１））に対するアフィンシードベクトルｓｖ０、現在のブロックの右上コーナー（例えば、右上のサンプル（ｘ１，ｙ１））に対するアフィンシードベクトルｓｖ１及び現在のブロックの左上コーナー（例えば、左上のサンプル（ｘ２，ｙ２））に対するアフィンシードベクトルｓｖ２を使用してアフィンベクトルを導出することができる。
【０１２５】
後述される実施例では、４パラメータアフィンモーションモデルの下で、左上コントロールポイント及び右上コントロールポイントのアフィンシードベクトルをそれぞれ第１アフィンシードベクトル及び第２アフィンシードベクトルと称することにする。後述される第１アフィンシードベクトル及び第２アフィンシードベクトルを使用する実施例において、第１アフィンシードベクトル及び第２アフィンシードベクトルのうちの少なくとも１つを左下コントロールポイントのアフィンシードベクトル（第３アフィンシードベクトル）又は右下コントロールポイントのアフィンシードベクトル（第４アフィンシードベクトル）に置き換えることができる。
【０１２６】
また、６パラメータアフィンモーションモデルの下で、左上コントロールポイント、右上コントロールポイント及び左下コントロールポイントのアフィンシードベクトルをそれぞれ第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルと称するようにする。後述される第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルを使用する実施例において、第１アフィンシードベクトル、第２アフィンシードベクトル及び第３アフィンシードベクトルのうちの少なくとも１つを右下コントロールポイントのアフィンシードベクトル（第４アフィンシードベクトル）に置き換えることができる。
【０１２７】
アフィンシードベクトルを使用して、サブブロックごとに、アフィンベクトルを導出することができる（ステップＳ８０３）。ここで、アフィンベクトルは、アフィンシードベクトルに基づいて導出される並進モーションベクトルを表す。サブブロックのアフィンベクトルをアフィンサブブロックモーションベクトル又はサブブロックモーションベクトルと称することができる。
【０１２８】
図１０は、４パラメータモーションモデルの下でのサブブロックのアフィンベクトルを示す図面である。
【０１２９】
コントロールポイントの位置、サブブロックの位置及びアフィンシードベクトルに基づいて、サブブロックのアフィンベクトルを導出することができる。一例として、式３は、アフィンサブブロックベクトルを導出する例を表す。
【０１３０】
【数３】
2022501897.tif 000005
【０１３１】
上記の式３では、（ｘ，ｙ）はサブブロックの位置を表す。ここで、サブブロックの位置は、サブブロックに含まれた基準サンプルの位置を表す。基準サンプルは、サブブロックの左上コーナーに位置するサンプル、又はｘ軸又はｙ軸座標のうちの少なくとも１つが中央位置にあるサンプルであってもよい。（ｘ０，ｙ０）は、第１コントロールポイントの位置を表し、（ｓｖ０ｘ，ｓｖ０ｙ）は、第１アフィンシードベクトルを表す。また、（ｘ１，ｙ１）は、第２コントロールポイントの位置を表し、（ｓｖ１ｘ，ｓｖ１ｙ）は、第２アフィンシードベクトルを表す。
【０１３２】
第１コントロールポイント及び第２コントロールポイントがそれぞれ、現在のブロックの左上コーナー及び右上コーナーに対応する場合に対応する場合、ｘ１−ｘ０は、現在のブロックの幅と同じ値に設定することができる。
【０１３３】
そして、各サブブロックのアフィンベクトルを使用して、各サブブロックに対する動き補償予測を実行することができる（ステップＳ８０４）。動き補償予測が実行された結果、各サブブロックに対する予測ブロックを生成することができる。サブブロックの予測ブロックを現在のブロックの予測ブロックに設定することができる。
【０１３４】
以下、並進動き情報を使用するインター予測方法について詳しく説明する。
【０１３５】
現在のブロックの他のブロックの動き情報から現在のブロックの動き情報を導出することができる。ここで、他のブロックは、現在のブロックよりも先にインター予測で符号化／復号化されたブロックであってもよい。現在のブロックの動き情報を他のブロックの動き情報と同じように設定することをマージモードと定義することができる。また、他のブロックの動きベクトルを現在のブロックの動きベクトルの予測値に設定することをモーションベクトル予測モードと定義することができる。
【０１３６】
図１１は、マージモードの下で、現在のブロックの動き情報を導出するプロセスのフローチャートである。
【０１３７】
現在のブロックのマージ候補を導出することができる（ステップＳ１１０１）。現在のブロックのマージ候補は、現在のブロックよりも先にインター予測で符号化／復号化されたブロックから導出されることができる。
【０１３８】
図１２は、マージ候補を導出するための候補ブロックを示す図面である。
【０１３９】
候補ブロックは、現在のブロックに隣接するサンプルを含む隣接ブロック又は現在のブロックに隣接しないサンプルを含む非隣接ブロックのうちの少なくとも１つを含み得る。以下、候補ブロックを決定するサンプルを基準サンプルと定義する。また、現在のブロックに隣接する基準サンプルを隣接基準サンプルと呼称し、現在のブロックに隣接しない基準サンプルを非隣接基準サンプルと称することにする。
【０１４０】
隣接基準サンプルは、現在のブロックの最左側の列に隣接する列又は現在のブロックの最上行に隣接する行を含み得る。一例として、現在のブロックの左上のサンプルの座標が（０，０）である場合、（−１，Ｈ−１）位置の基準サンプルを含むブロック、（Ｗ−１、−１）位置の基準サンプルを含むブロック、（Ｗ，−１）の位置の基準サンプルを含むブロック、（−１，Ｈ）位置の基準サンプルを含むブロック又は（−１，−１）位置の基準サンプルを含むブロックのうちの少なくとも１つが候補ブロックとして使用することができる。図面を参照すると、インデックス０ないしインデックス４の隣接ブロックは、候補ブロックとして使用されることができる。
【０１４１】
非隣接基準サンプルは、現在のブロックに隣接する基準サンプルとのｘ軸距離又はｙ軸距離のうちの少なくとも１つが事前に定義された値を有するサンプルを表す。一例として、左側基準サンプルとのｘ軸距離が事前に定義された値である基準サンプルを含むブロック、上部基準サンプルとのｙ軸距離が事前に定義された値である非隣接サンプルを含むブロック、又は左上基準サンプルとのｘ軸距離及びｙ軸距離が事前に定義された値である非隣接サンプルを含むブロックのうちの少なくとも１つを候補ブロックとして使用することができる。事前に定義された値は、４、８、１２、１６などの自然数であってもよい。図面を参照すると、インデックス５ないし２６のブロックのうちの少なくとも１つは、候補ブロックとして使用されることができる。
【０１４２】
隣接基準サンプルと同じ垂直線、水平線又は対角線に位置していないサンプルを非隣接基準サンプルとして設定することができる。
【０１４３】
図１３は、基準サンプルの位置の図面である。
【０１４４】
図１３に示された例のように、上部非隣接基準サンプルのｘ座標は、上部隣接基準サンプルのｘ座標とは異なるように設定することができる。一例として、上部隣接基準サンプルの位置が（Ｗ−１，−１）である場合、上部隣接基準サンプルからｙ軸にＮだけ離れた上部非隣接基準サンプルの位置は（（Ｗ／２）−１，−１−Ｎ）に設定され、上部隣接基準サンプルからｙ軸に２Ｎだけ離れた上部非隣接基準サンプルの位置は（０，−１−２Ｎ）に設定されることができる。即ち、隣接基準サンプルの位置と隣接基準サンプルとの距離に基づいて、非隣接基準サンプルの位置を決定することができる。
【０１４５】
以下、候補ブロックのうち、隣接基準サンプルを含む候補ブロックを隣接ブロックと呼称し、非隣接基準サンプルを含むブロックを非隣接ブロックと称することにする。
【０１４６】
現在のブロックと候補ブロックの間の距離が閾値より大きいか等しい場合、前記候補ブロックは、マージ候補として利用不可能であると設定することができる。前記閾値は、符号化ツリーユニットのサイズに基づいて、決定されることができる。一例として、閾値は、符号化ツリーユニットの高さ（ｃｔｕ＿ｈｅｉｇｈｔ）又は符号化ツリーユニットの高さからオフセットを加算又は減算した値（例えば、ｃｔｕ＿ｈｅｉｇｈｔ±Ｎ）に設定されることができる。オフセットＮは、符号化器及び復号化器によって事前に定義された値であり、４、８、１６、３２又はｃｔｕ＿ｈｅｉｇｈｔに設定されることができる。
【０１４７】
現在のブロックのｙ軸座標と候補ブロックに含まれたサンプルのｙ軸座標との間の差分が閾値よりも大きい場合、候補ブロックはマージ候補として利用不可能であると決定することができる。
【０１４８】
又は、現在のブロックと同じ符号化ツリーユニットに属しない候補ブロックはマージ候補として利用不可能であると設定することができる。一例として、基準サンプルが、現在のブロックが属する符号化ツリーユニットの上部境界を超えている場合、前記基準サンプルを含む候補ブロックはマージ候補として利用不可能であると設定することができる。
【０１４９】
現在のブロックの上部境界が符号化ツリーユニットの上部境界に隣接する場合、多数の候補ブロックはマージ候補として利用不可能であると決定され、現在のブロックの符号化／復号化効率が低下する可能性がある。上記の問題を解決するために、現在のブロックの上部に位置する候補ブロックの数よりも、現在のブロックの左側に位置する候補ブロックの数がより多くなるように候補ブロックを設定することができる。
【０１５０】
図１４は、マージ候補を導出するための候補ブロックを示す図面である。
【０１５１】
図１４に示された例のように、現在のブロックの上部Ｎ個のブロック列に属する上部ブロック及び現在のブロックの左側Ｍ個のブロック列に属する左側ブロックを候補ブロックに設定することができる。この場合、ＮよりもＭを大きく設定して、上部候補ブロックの数よりも左側候補ブロックの数を大きく設定することができる。
【０１５２】
一例として、現在のブロック内の基準サンプルのｙ軸座標と候補ブロックとして使用することができる上部ブロックのｙ軸座標の差分が、現在のブロックの高さのＮ倍を超えないように設定することができる。また、現在のブロック内の基準サンプルのｘ軸座標と候補ブロックとして使用することができる左側ブロックのｘ軸座標の差分が、現在のブロックの幅のＭ倍を超えないように設定することができる。
【０１５３】
一例として、図１４に示された例では、現在のブロックの上部の２つのブロック列に属するブロック及び現在のブロックの左側の５つのブロック列に属するブロックが候補ブロックに設定されていることが示されている。
【０１５４】
別の例として、候補ブロックが現在のブロックと同じ符号化ツリーユニットに属しない場合、前記候補ブロックの代わりに、現在のブロックと同じ符号化ツリーユニットに属するブロック又は前記符号化ツリーユニットの境界に隣接する基準サンプルを含むブロックを使用してマージ候補を導出することができる。
【０１５５】
図１４は、マージ候補を導出するための候補ブロックを示す図面である。
【０１５６】
基準サンプルは、現在のブロックとは異なる符号化ツリーユニットに含まれ、前記基準サンプルが前記符号化ツリーユニットの境界に隣接しない場合、前記基準サンプルの代わりに前記符号化ツリーユニットの境界に隣接する基準サンプルを使用して候補ブロックを決定することができる。
【０１５７】
一例として、図１５の（ａ）及び（ｂ）に示された例では、現在のブロックの上部境界と符号化ツリーユニットの上部境界が接する場合、現在のブロックの上部の基準サンプルは、現在のブロックとは異なる符号化ツリーユニットに属する。現在のブロックと異なる符号化ツリーユニットに属する基準サンプルのうち、符号化ツリーユニットの上部境界に隣接しない基準サンプルを符号化ツリーユニットの上部境界に隣接するサンプルに置き換えることができる。
【０１５８】
一例として、図１５の（ａ）に示された例のように、位置６にある基準サンプルを符号化ツリーユニットの上部境界に位置する位置６′にあるサンプルに置き換え、図１５の（ｂ）に示された例のように、位置１５にある基準サンプルを符号化ツリーユニットの上部境界に位置する位置１５′にあるサンプルに置き換えることができる。この場合、代替サンプルのｙ座標は、符号化ツリーユニットの隣接位置に偏向され、代替サンプルのｘ座標は、基準サンプルと同じように設定することができる。一例として、位置６′にあるサンプルは、位置６にあるサンプルと同じｘ座標を有し、位置１５′にあるサンプルは、位置１５にあるサンプルと同じｘ座標を有することができる。
【０１５９】
又は、基準サンプルのｘ座標からオフセットを加算又は減算したものを代替サンプルのｘ座標に設定することができる。一例として、現在のブロックの上部に位置する隣接基準サンプルと非隣接基準サンプルのｘ座標が同じである場合、基準サンプルのｘ座標からオフセットを加算又は減算したものを代替サンプルのｘ座標に設定することができる。これは、非隣接基準サンプルを置き換える代替サンプルが、他の非隣接基準サンプル又は隣接基準サンプルと同じ位置になることを回避するためである。
【０１６０】
図１６は、基準サンプルの位置が変更される例を示す図面である。
【０１６１】
現在のブロックとは異なる符号化ツリーユニットに含まれ、符号化ツリーユニットの境界に隣接しない基準サンプルを符号化ツリーユニットの境界に位置するサンプルに置き換える場合、基準サンプルのｘ座標からオフセットを加算又は減算した値を代替サンプルのｘ座座標に設定することができる。
【０１６２】
一例として、図１６に示された例では、位置６にある基準サンプル及び位置１５にある基準サンプルはそれぞれ、符号化ツリーユニットの上部境界に隣接する行と同じｙ座標を有する、位置６′にあるサンプル及び位置１５′にあるサンプルに置き換えられることができる。この場合、位置６′にあるサンプルのｘ座標は、位置６にある基準サンプルのｘ座標からＷ／２を差分した値に設定され、位置１５′にあるサンプルのｘ座標は、位置１５にある基準サンプルのｘ座標からＷ−１を差分した値に設定されることができる。
【０１６３】
図１５及び図１６に示された例とは異なり、現在のブロックの最上部の行の上部に位置する行のｙ座標、又は符号化ツリーユニットの上部境界のｙ座標を代替サンプルのｙ座標に設定することもできる。
【０１６４】
図示されていないが、符号化ツリーユニットの左側の境界に基づいて、基準サンプルを置き換えるサンプルを決定することもできる。一例として、基準サンプルが現在のブロックと同じ符号化ツリーユニットに含まれず、符号化ツリーユニットの左側の境界に隣接もしない場合、前記基準サンプルを符号化ツリーユニットの左側の境界に隣接するサンプルに置き換えることができる。この場合、代替サンプルは、基準サンプルと同じｙ座標を有するか、基準サンプルのｙ座標からオフセットを加算又は差分して得られたｙ座標を有することができる。
【０１６５】
その後、代替サンプルを含むブロックを候補ブロックに設定し、前記候補ブロックに基づいて現在のブロックのマージ候補を導出することができる。
【０１６６】
現在のブロックとは異なる画像に含まれた時間的隣接ブロックからマージ候補を導出することもできる。一例として、同位置画像に含まれた同位置ブロックからマージ候補を導出することができる。
【０１６７】
マージ候補の動き情報は、候補ブロックの動き情報と同じように設定することができる。一例として、候補ブロックのモーションベクトル、参照画像インデックス、予測方向又は両方向の重み値インデックスのうちの少なくとも１つをマージ候補の動き情報に設定することができる。
【０１６８】
マージ候補を含むマージ候補リストを生成することができる（ステップＳ１１０２）。前記マージ候補は、現在のブロックに隣接する隣接ブロックから導出された隣接マージ候補及び非隣接ブロックから導出される非隣接マージ候補に区分されることができる。
【０１６９】
所定の順序に従って、マージ候補リスト内の複数のマージ候補のインデックスを割り当てることができる。一例として、隣接マージ候補に割り当てられるインデックスは、非隣接マージ候補に割り当てられるインデックスよりも小さい値を有する。又は、図１２又は図１４に示された各ブロックのインデックスに基づいて、マージ候補のそれぞれにインデックスを割り当てることができる。
【０１７０】
マージ候補に複数のマージ候補が含まれている場合、複数のマージ候補のうちの少なくとも１つを選択することができる（ステップＳ１１０３）。この場合、ビットストリームを介して、現在のブロックの動き情報が隣接マージ候補から導出されるかどうかを表す情報をシグナリングすることができる。前記情報は、１ビットのフラグであってもよい。一例として、ビットストリームを介して、現在のブロックの動き情報が隣接マージ候補から導出されるかどうかを表すシンタックス要素ｉｓＡｄｊａｎｃｅｎｔＭｅｒｇｅＦｌａｇをシグナリングすることができる。シンタックス要素ｉｓＡｄｊａｎｃｅｎｔＭｅｒｇｅＦｌａｇの値が１である場合、隣接マージ候補に基づいて、現在のブロックの動き情報を導出することができる。もう一方では、シンタックス要素ｉｓＡｄｊａｎｃｅｎｔＭｅｒｇｅＦｌａｇの値が０である場合、非隣接マージ候補に基づいて、現在のブロックの動き情報を導出することができる。
【０１７１】
表１は、シンタックス要素ｉｓＡｄｊａｎｃｅｎｔＭｅｒｇｅＦｌａｇを含むシンタックステーブルを示す。
【０１７２】
【表１】
2022501897.tif 000006
2022501897.tif 000007
【０１７３】
ビットストリームを介して、複数のマージ候補のいずれか１つを特定するための情報をシグナリングすることができる。一例として、ビットストリームを介して、マージ候補リストに含まれたマージ候補のいずれか１つのインデックスを表す情報をシグナリングすることができる。
【０１７４】
ｉｓＡｄｊａｃｅｎｔＭｅｒｇｅｆｌａｇが１である場合、隣接マージ候補のいずれかを特定するためのシンタックス要素ｍｅｒｇｅ＿ｉｄｘをシグナリングすることができる。シンタックス要素ｍｅｒｇｅ＿ｉｄｘの最大値は、隣接マージ候補の数から１を差分した値に設定されることができる。
【０１７５】
ｉｓＡｄｊａｃｅｎｔＭｅｒｇｅｆｌａｇが０である場合、非隣接マージ候補のいずれかを特定するためのシンタックス要素ＮＡ＿ｍｅｒｇｅ＿ｉｄｘをシグナリングすることができる。シンタックス要素ＮＡ＿ｍｅｒｇｅ＿ｉｄｘは、非隣接マージ候補のインデックスから隣接マージ候補の数を差分した値を表す。復号化器は、ＮＡ＿ｍｅｒｇｅ＿ｉｄｘによって特定されたインデックスに隣接マージ候補の数を加えることにより、非隣接マージ候補を選択することができる。
【０１７６】
マージ候補リストに含まれたマージ候補の数が閾値よりも小さい場合、インター領域モーション情報テーブルに含まれたマージ候補をマージ候補リストに追加することができる。ここで、閾値は、マージ候補リストが含むことができる最大マージ候補の数又は最大マージ候補の数からオフセットを差し引いた値であってもよい。オフセットは、１又は２などの自然数であってもよい。インター領域モーション情報テーブルは、現在のブロックの前に符号化／復号化されたブロックに基づいて導出されたマージ候補を含み得る。
【０１７７】
インター領域モーション情報テーブルは、現在の画像でのインター予測に基づいて符号化／復号化されたブロックから導出されるマージ候補を含む。一例として、インター領域モーション情報テーブルに含まれたマージ候補の動き情報は、インター予測に基づいて符号化／復号化されたブロックの動き情報と同じように設定することができる。ここで、動き情報は、モーションベクトル、参照画像インデックス、予測方向又は両方向の重み値インデックスのうちの少なくとも１つを含み得る。
【０１７８】
説明の便宜上、インター領域モーション情報テーブルに含まれたマージ候補をインター領域マージ候補と称することにする。
【０１７９】
インター領域モーション情報テーブルが含むことができる最大マージ候補の数は、符号化器及び復号化器によって事前に定義されてもよい。一例として、インター領域モーション情報テーブルが含むことができる最大マージ候補の数は、１、２、３、４、５、６、７、８又はそれ以上（例えば、１６）であってもよい。
【０１８０】
あるいは、ビットストリームを介して、インター領域モーション情報テーブルの最大マージ候補の数を表す情報をシグナリングすることができる。前記情報は、シーケンス、画像、又はスライスレベルでシグナリングされることができる。
【０１８１】
又は、画像のサイズ、スライスのサイズ又は符号化ツリーユニットのサイズに従って、インター領域モーション情報テーブルの最大マージ候補の数を決定することができる。
【０１８２】
インター領域モーション情報テーブルは、画像、スライス、タイル、ブリック、符号化ツリーユニット、又は符号化ツリーユニットライン（行又は列）単位で初期化されることができる。一例として、スライスが初期化される場合、インター領域モーション情報テーブルも初期化され、インター領域モーション情報テーブルには、マージ候補が含まれない場合がある。
【０１８３】
又は、ビットストリームを介して、インター領域モーション情報テーブルを初期化するかどうかを表す情報をシグナリングすることもできる。前記情報は、スライス、タイル、ブリック又はブロックレベルでシグナリングされることができる。前記情報がインター領域モーション情報テーブルを初期化することを指示する前に、事前に構成されたインター領域モーション情報テーブルを使用することができる。
【０１８４】
又は、画像パラメータセット又はスライスヘッダを介して初期インター領域マージ候補に対する情報がシグナリングされることができる。スライスが初期化されても、インター領域モーション情報テーブルは、初期インター領域マージ候補を含み得る。これにより、スライス内の最初の符号化／復号化態様であるブロックにも、インター領域マージ候補を使用することができる。
【０１８５】
符号化／復号化順序に従って、ブロックを符号化／復号化するが、インター予測に基づいて符号化／復号化されたブロックを符号化／復号化順序に従って順次にインター領域マージ候補として設定することができる。
【０１８６】
図１７は、インター領域モーション情報テーブルの更新状態を説明するためのフローチャートである。
【０１８７】
現在のブロックに対してインター予測を行った場合（ステップＳ１７０１）、現在のブロックに基づいてインター領域マージ候補を導出することができる（ステップＳ１７０２）。インター領域マージ候補の動き情報は、現在のブロックの動き情報と同じように設定することができる。
【０１８８】
インター領域モーション情報テーブルが空の場合（ステップＳ１７０３）、現在のブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加することができる（ステップＳ１７０４）。
【０１８９】
インター領域モーション情報テーブルが既にインター領域マージ候補を含めている場合（ステップＳ１７０３）、現在のブロックの動き情報（又は、これに基づいて導出されたインター領域マージ候補）に対する冗長性検出を実行することができる（ステップＳ１７０５）。冗長性検出は、インター領域モーション情報テーブルに記憶されたインター領域マージ候補の動き情報と現在のブロックの動き情報が同じであるか否かを決定するために使用される。冗長性検出は、インター領域モーション情報テーブルに記憶された全てのインター領域マージ候補を対象として実行することができる。又は、インター領域モーション情報テーブルに記憶されたインター領域マージ候補のうち、インデックスが閾値以上であり又は閾値以下であるインター領域マージ候補を対象として冗長性検出を実行することができる。
【０１９０】
現在のブロックの動き情報と同じ動き情報を有するインター予測マージ候補が含まれていない場合、現在のブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加することができる（ステップＳ１７０８）。インター予測マージ候補の動き情報（例えば、モーションベクトル及び／又は参照画像インデックスなど）が同じであるか否かに基づいて、インター予測マージ候補が同じであるか否かを決定することができる。
【０１９１】
この場合、インター領域モーション情報テーブルに最大数のインター領域マージ候補が記憶されている場合（ステップＳ１７０６）、最も古いインター領域マージ候補を削除し（ステップＳ１７０７）、現在のブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加することができる（ステップＳ１７０８）。
【０１９２】
インター領域マージ候補は、それぞれのインデックスによって識別されることができる。現在のブロックから導出されたインター領域マージ候補がインター領域モーション情報テーブルに追加される場合、前記インター領域マージ候補に最も低いインデックス（例えば、０）を割り当て、記憶されたインター領域マージ候補のインデックスを１ずつ増加させることができる。この場合、インター領域モーション情報テーブルに最大数のインター予測マージ候補が既に記憶されている場合、最も大きいインデックスを有するインター領域マージ候補が除去される。
【０１９３】
又は、現在のブロックから導出されたインター領域マージ候補がインター領域モーション情報テーブルに追加される場合、前記インター領域マージ候補に最も大きいインデックスを割り当てることができる。一例として、インター領域モーション情報テーブルに記憶されたインター予測マージ候補の数が最大値より小さい場合、前記インター領域マージ候補には、記憶されたインター予測マージ候補の数と同じ値のインデックスが割り当てられることができる。又は、インター領域モーション情報テーブルに記憶されたインター予測マージ候補の数が最大値と同じ場合、前記インター領域マージ候補には、最大値から１を差し引いたインデックスが割り当てられることができる。また、最も小さいインデックスを有するインター領域マージ候補が除去され、残りの記憶されたインター領域マージ候補のインデックスが１ずつ減少することになる。
【０１９４】
図１８は、インター領域マージ候補リストを更新する実施例を示す図面である。
【０１９５】
現在のブロックから導出されたインター領域マージ候補をインター領域マージ候補テーブルに追加し、前記インター領域マージ候補に最も大きいインデックスを割り当てると仮定する。また、インター領域マージ候補テーブルには、最大数のインター領域マージ候補が既に記憶されていると仮定する。
【０１９６】
現在のブロックから導出されたインター領域マージ候補ＨｍｖｐＣａｎｄ［ｎ＋１］をインター領域マージ候補テーブルＨｍｖｐＣａｎｄＬｉｓｔに追加する場合、記憶されたインター領域マージ候補のうち、最も小さいインデックスを有するインター領域マージ候補ＨｍｖｐＣａｎｄ［０］を削除し、残りのインター領域マージ候補のインデックスを１ずつ減少させることができる。また、現在のブロックから導出されたインター領域マージ候補ＨｍｖｐＣａｎｄ［ｎ＋１］のインデックスを最大値（図１８に示された例では、ｎ）に設定することができる。
【０１９７】
現在のブロックに基づいて導出されたインター領域マージ候補と同じインター領域マージ候補が記憶されている場合（ステップＳ１７０５）、現在のブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加しないことができる（ステップＳ１７０９）。
【０１９８】
又は、現在のブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加しつつ、前記インター領域マージ候補と同じである、記憶されたインター領域マージ候補を除去することもできる。この場合、記憶されたインター領域マージ候補のインデックスが新たに更新されるのと同じ効果が生じている。
【０１９９】
図１９は、記憶されたインター領域マージ候補のインデックスが更新される例を示す図面である。
【０２００】
現在のブロックに基づいて導出されたインター領域マージ候補ｍｖＣａｎｄと同じである、記憶されたインター予測マージ候補のインデックスがｈＩｄｘである場合、前記記憶されたインター予測マージ候補を削除し、インデックスがｈＩｄｘよりも大きいインター予測マージ候補のインデックスを１ずつ減少させることができる。一例として、図１９に示された例ではｍｖＣａｎｄと同じＨｍｖｐＣａｎｄ［２］がインター領域モーション情報テーブルＨｖｍｐＣａｎｄＬｉｓｔから削除され、ＨｍｖｐＣａｎｄ［３］からＨｍｖｐＣａｎｄ［ｎ］までのインデックスが１ずつ減少することが示されている。
【０２０１】
そして、現在のブロックに基づいて導出されたインター領域マージ候補ｍｖＣａｎｄをインター領域モーション情報テーブルの最後に追加することができる。
【０２０２】
又は、現在のブロックに基づいて導出されたインター領域マージ候補と同じである、記憶されたインター領域マージ候補に割り当てされたインデックスを更新することができる。例えば、記憶されたインター領域マージ候補のインデックスを最小値又は最大値に変更することができる。
【０２０３】
所定の領域に含まれたブロックの動き情報は、インター領域モーション情報テーブルに追加されないように設定されることができる。一例として、マージ処理領域に含まれたブロックの動き情報に基づいて導出されるインター領域マージ候補は、インター領域モーション情報テーブルに追加されないことができる。マージ処理領域に含まれたブロックについては、符号化／復号化順序が定義されていないため、これらのブロックのいずれかの動き情報を他のブロックのインター予測に使用することは不適切である。これにより、マージ処理領域に含まれたブロックに基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加しないことができる。
【０２０４】
サブブロック単位で動き補償予測が実行された場合、現在のブロックに含まれた複数のサブブロックの中の代表サブブロックの動き情報に基づいて、インター領域マージ候補を導出することができる。一例として、現在のブロックに対してサブブロックマージ候補が使用された場合、サブブロックのうちの代表サブブロックの動き情報に基づいて、インター領域マージ候補を導出することができる。
【０２０５】
サブブロックの動きベクトルは、以下の順序に応じて導出されることができる。先ず、現在のブロックのマージ候補リストに含まれたマージ候補のうちのいずれか１つを選択し、選択されたマージ候補のモーションベクトルに基づいて、初期シフトベクトル（ｓｈＶｅｃｔｏｒ）を導出することができる。そして、符号化ブロックの各サブブロックの基準サンプル（例えば、左上のサンプル又は中央位置にあるサンプル）の位置（ｘＳｂ，ｙＳｂ）に初期シフトベクトルを加算して、基準サンプルの位置が（ｘＣｏｌＳｂ，ｙＣｏｌＳｂ）であるシフトサブブロックを導出することができる。以下の式４は、シフトサブブロックを導出するための式を表す。
【０２０６】
【数４】
2022501897.tif 000008
【０２０７】
そして、（ｘＣｏｌＳｂ，ｙＣｏｌＳｂ）を含むサブブロックの中心位置に対応する同位置ブロックのモーションベクトルを、（ｘＳｂ，ｙＳｂ）を含むサブブロックのモーションベクトルに設定することができる。
【０２０８】
代表サブブロックは、現在のブロックの左上のサンプル又は中央サンプルを含むサブブロックを意味することができる。
【０２０９】
図２０は、代表サブブロックの位置を示す図面である。
【０２１０】
図２０の（ａ）は、現在のブロックの左上に位置するサブブロックが代表サブブロックに設定された例を示し、図２０の（ｂ）は、現在のブロックの中央に位置するサブブロックが代表サブブロックに設定された例を示す。サブブロック単位で動き補償予測が実行された場合、現在のブロックの左上のサンプルを含むサブブロック又は現在のブロックの中央サンプルを含むサブブロックの動きベクトルに基づいて、現在のブロックのインター領域マージ候補を導出することができる。
【０２１１】
現在のブロックのインター予測モードに基づいて、現在のブロックをインター領域マージ候補として使用するかどうかを決定することもできる。一例として、アフィンモーションモデルに基づいて符号化／復号化されたブロックは、インター領域マージ候補として利用不可能であると設定することができる。これにより、現在のブロックがインター予測で符号化／復号化されたとしても、現在のブロックのインター予測モードがアフィン予測モードである場合には、現在のブロックに基づいてインター予測モーション情報テーブルを更新しないことができる。
【０２１２】
又は、アフィンモーションモデルに基づいて符号化／復号化されたブロックに含まれたサブブロックのうちの少なくとも１つのサブブロックベクトルに基づいて、インター領域マージ候補を導出することもできる。一例として、現在のブロックの左上に位置するサブブロック、中央に位置するサブブロック又は右上に位置するサブブロックを使用してインター領域マージ候補を導出することができる。又は、複数のサブブロックのサブブロックベクトルの平均値をインター領域マージ候補の動きベクトルに設定することもできる。
【０２１３】
又は、アフィンモーションモデルに基づいて符号化／復号化されたブロックのアフィンシードベクトルの平均値に基づいてインター領域マージ候補を導出することもできる。一例として、現在のブロックの第１アフィンシードベクトル、第２アフィンシードベクトル又は第３アフィンシードベクトルのうちの少なくとも１つの平均値をインター領域マージ候補の動きベクトルに設定することができる。
【０２１４】
又は、インター予測モードごとにインター領域モーション情報テーブルを構成することができる。一例として、イントラブロックコピーにより符号化／復号化されたブロックのためのインター領域モーション情報テーブル、並進モーションモデルに基づいて符号化／復号化されたブロックのためのインター領域モーション情報テーブル又はアフィンモーションモデルに基づいて符号化／復号化されたブロックのためのインター領域モーション情報テーブルのうちの少なくとも１つを定義することができる。現在のブロックのインター予測モードに従って、複数のインター領域モーション情報テーブルのいずれか１つを選択することができる。
【０２１５】
図２１は、インター予測モード別にインター領域モーション情報テーブルが生成される例を示す図面である。
【０２１６】
ブロックがノンアファインモーションモデルに基づいて符号化／復号化された場合、前記ブロックに基づいて導出されたインター領域マージ候補ｍｖＣａｎｄは、インター領域ノンアファインモーション情報テーブルＨｍｖｐＣａｎｄＬｉｓｔに追加することができる。もう一方では、ブロックがアフィンモーションモデルに基づいて符号化／復号化された場合、前記ブロックに基づいて導出されたインター領域マージ候補ｍｖＡｆＣａｎｄをインター領域アフィンモーション情報テーブルＨｍｖｐＡｆＣａｎｄＬｉｓｔに追加することができる。
【０２１７】
アフィンモーションモデルに基づいて符号化／復号化されたブロックから導出されるインター領域マージ候補には、前記ブロックのアフィンシードベクトルが記憶されることができる。これにより、前記インター領域マージ候補を、現在のブロックのアフィンシードベクトルを導出するためのマージ候補として使用することができる。
【０２１８】
説明したインター領域モーション情報テーブルに加えて、さらに別のインター領域モーション情報テーブルを定義することもできる。上記の説明したインター領域モーション情報テーブル（以下、第１インター領域モーション情報テーブルと呼ぶ）に加えて、ロングタームモーション情報テーブル（以下、第２インター領域モーション情報テーブルと呼ぶ）を定義することができる。ここで、ロングタームモーション情報テーブルは、ロングタームマージ候補を含む。
【０２１９】
第１インター領域モーション情報テーブル及び第２インター領域モーション情報テーブルが空の場合、先ず、第２インター領域モーション情報テーブルにインター領域マージ候補を追加することができる。第２インター領域モーション情報テーブルに利用可能なインター領域マージ候補の数が最大数に達した後のみ、第１インター領域モーション情報テーブルにインター領域マージ候補を追加することができる。
【０２２０】
又は、１つのインター予測マージ候補を第２インター領域モーション情報テーブル及び第１インター領域モーション情報テーブルの両方に追加することもできる。
【０２２１】
この場合、構成が完了された第２インター領域モーション情報テーブルは、それ以上更新しないことができる。又は、復号化された領域がスライスの所定の比率以上である場合、第２インター領域モーション情報テーブルを更新することができる。又は、Ｎ個の符号化ツリーユニットラインごとに第２インター領域モーション情報テーブルを更新することができる。
【０２２２】
もう一方では、第１インター領域モーション情報テーブルは、インター予測で符号化／復号化されたブロックが発生するたびに更新されることができる。ただし、第２インター領域モーション情報テーブルに追加されるインター領域マージ候補は、第１インター領域モーション情報テーブルを更新するために使用されないように設定することもできる。
【０２２３】
ビットストリームを介して、第１インター領域モーション情報テーブル又は第２インター領域モーション情報テーブルのうちのいずれか１つを選択するための情報をシグナリングすることができる。マージ候補リストに含まれたマージ候補の数が閾値より小さい場合、前記情報が指示するインター領域モーション情報テーブルに含まれたマージ候補をマージ候補リストに追加することができる。
【０２２４】
又は、現在のブロックのサイズ、形態、インター予測モード、両方向予測  するかどうか、動きベクトルリファインするかどうか、又は三角分割するかどうか基づいて、インター領域モーション情報テーブルを選択することもできる。
【０２２５】
又は、第１インター領域モーション情報テーブルに含まれたインター領域マージ候補を追加にもかかわらず、マージ候補リストに含まれたマージ候補の数が最大マージ数より小さい場合、第２インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加することができる。
【０２２６】
図２２は、ロングタームモーション情報リストに含まれたインター領域マージ候補がマージ候補リストに追加される例を示す図面である。
【０２２７】
マージ候補リストに含まれたマージ候補の数が最大数より小さい場合、第１インター領域モーション情報テーブルＨｍｖｐＣａｎｄＬｉｓｔに含まれたインター領域マージ候補をマージ候補リストに追加することができる。第１インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加したにもかかわらず、マージ候補リストに含まれたマージ候補の数が最大数より小さい場合、ロングタームモーション情報テーブルＨｍｖｐＬＴＣａｎｄＬｉｓｔに含まれたインター領域マージ候補をマージ候補リストに追加することができる。
【０２２８】
表２は、ロングタームモーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加するプロセスを示す。
【０２２９】
【表２】
2022501897.tif 000009
【０２３０】
インター領域マージ候補が動き情報に加えて、追加情報を含めるように設定することができる。一例として、インター領域マージ候補のブロックのサイズ、形態又はブロックのパーティション情報を追加して記憶することができる。現在のブロックのマージ候補リストを構成する場合、インター予測マージ候補のうち、現在のブロックとサイズ、形態又はパーティション情報が同一又は類似のインター予測マージ候補のみを使用したり、現在のブロックとサイズ、形態又はパーティション情報が同一又は類似のインター予測マージ候補を先ずマージ候補リストに追加することができる。
【０２３１】
又は、ブロックのサイズ、形態又はパーティション情報ごとにインター領域モーション情報テーブルを生成することができる。複数のインター領域モーション情報テーブルのうち、現在のブロックの形態、サイズ又はパーティション情報に合致するインター領域モーション情報テーブルを使用して、現在のブロックのマージ候補リストを生成することができる。
【０２３２】
現在のブロックのマージ候補リストに含まれたマージ候補の数が閾値より小さい場合、インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加することができる。前記追加プロセスは、インデックス基準の昇順又は降順で実行される。一例として、最も大きいインデックスを有するインター領域マージ候補からマージ候補リストに追加することができる。
【０２３３】
インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加しようとする場合、インター領域マージ候補とマージ候補リストに記憶されたマージ候補との冗長性検出が実行されることができる。
【０２３４】
一例として、表３は、インター領域マージ候補がマージ候補リストに追加されるプロセスを示すものである。
【０２３５】
【表３】
2022501897.tif 000010
【０２３６】
冗長性検出は、インター領域モーション情報テーブルに含まれたインター領域マージ候補の一部に対してのみ実行されることもできる。一例として、インデックスが閾値以上又は閾値以下であるインター領域マージ候補に対してのみ冗長性検出が実行されることができる。又は最も大きいインデックスを有するＮ個のマージ候補又は最も小さいインデックスを有するＮ個のマージ候補に対してのみ冗長性検出が実行されることができる。
【０２３７】
又は、マージ候補リストに記憶されたマージ候補の一部に対してのみ冗長性検出を実行することができる。一例として、インデックスが閾値以上又は閾値以下であるマージ候補又は特定の位置のブロックから導出されたマージ候補に対してのみ冗長性検出が実行されることができる。ここで、特定の位置は、現在のブロックの左側隣接ブロック、上部隣接ブロック、右上隣接ブロック又は左下隣接ブロックのうちの少なくとも１つを含み得る。
【０２３８】
図２３は、マージ候補のうちの一部に対してのみ冗長検出を実行する例を示す図面である。
【０２３９】
インター領域マージ候補ＨｍｖｐＣａｎｄ［ｊ］をマージ候補リストに追加しようとする場合、インター領域マージ候補に対して、最も大きいインデックスを有する２つのマージ候補ｍｅｒｇｅＣａｎｄＬｉｓｔ［ＮｕｍＭｅｒｇｅ−２］とｍｅｒｇｅＣａｎｄＬｉｓｔ［ＮｕｍＭｅｒｇｅ−１］との冗長性検出を実行することができる。ここで、ＮｕｍＭｅｒｇｅは、利用可能な空間マージ候補及び時間マージ候補の数を表す。
【０２４０】
図示された例とは異なり、インター領域マージ候補ＨｍｖｐＣａｎｄ［ｊ］をマージ候補リストに追加しようとする場合、インター領域マージ候補に対して、最も小さいインデックスを有する最大２つのマージ候補との冗長性検出を実行することもできる。例えば、ｍｅｒｇｅＣａｎｄＬｉｓｔ［０］及びｍｅｒｇｅＣａｎｄＬｉｓｔ［１］についてＨｍｖｐＣａｎｄ［ｊ］と同じかどうかを確認することができる。又は特定の位置から導出されたマージ候補に対してのみ冗長性検出を実行することができる。一例として、現在のブロックの左側に位置する周辺ブロックから導出されたマージ候補又は現在のブロックの上部に位置する周辺ブロックから導出されたマージ候補のうちの少なくとも１つに対して冗長性検出を実行することができる。マージ候補リストに特定の位置から導出されたマージ候補が存在しない場合、冗長性検出なしで、インター領域マージ候補をマージ候補リストに追加することができる。
【０２４１】
第１インター領域マージ候補と同じマージ候補が発見された場合、第２インター領域マージ候補に対する冗長性検出を実行するとき、前記第１インター領域マージ候補と同じマージ候補との冗長性検出を省略することができる。
【０２４２】
図２４は、特定のマージ候補との冗長検出を省略する例を示す図面である。
【０２４３】
インデックスがｉであるインター領域マージ候補ＨｍｖｐＣａｎｄ［ｉ］をマージ候補リストに追加しようとする場合、前記インター領域マージ候補とマージ候補リストに記憶されたマージ候補との冗長性検出が実行される。この場合、インター領域マージ候補ＨｍｖｐＣａｎｄ［ｉ］と同じマージ候補ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｊ］が発見された場合、インター領域マージ候補ＨｍｖｐＣａｎｄ［ｉ］をマージ候補リストに追加せずに、インデックスがｉ−１であるインター領域マージ候補ＨｍｖｐＣａｎｄ［ｉ−１］とマージ候補との冗長性検出を実行することができる。この場合、インター領域マージ候補ＨｍｖｐＣａｎｄ［ｉ−１］とマージ候補ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｊ］との冗長性検出を省略することができる。
【０２４４】
一例として、図２４に示された例では、ＨｍｖｐＣａｎｄ［ｉ］とｍｅｒｇｅＣａｎｄＬｉｓｔ［２］が同じであると決定されている。これにより、ＨｍｖｐＣａｎｄ［ｉ］はマージ候補リストに追加されず、ＨｍｖｐＣａｎｄ［ｉ−１］に対する冗長性検出が実行されることができる。この場合、ＨｖｍｐＣａｎｄ［ｉ−１］とｍｅｒｇｅＣａｎｄＬｉｓｔ［２］との冗長性検出を省略することができる。
【０２４５】
現在のブロックのマージ候補リストに含まれたマージ候補の数が閾値より小さい場合、インター領域マージ候補に加えて、ペアワイズマージ候補又はゼロマージ候補のうちの少なくとも１つをさらに含み得る。ペアワイズマージ候補は、２つ以上のマージ候補の動きベクトルの平均値を動きベクトルとして使用するマージ候補を意味し、ゼロマージ候補は、モーションベクトルが０であるマージ候補を意味する。
【０２４６】
現在のブロックのマージ候補リストは、以下の順序に応じて、マージ候補を追加する。
【０２４７】
空間マージ候補−時間マージ候補−インター領域マージ候補−（インター領域アフィンマージ候補）−ペアワイズマージ候補−ゼロマージ候補
空間マージ候補は、隣接ブロック又は非隣接ブロックのうちの少なくとも１つから導出されるマージ候補を意味し、時間マージ候補は、以前の参照画像から導出されるマージ候補を意味する。インター領域アフィンマージ候補は、アフィンモーションモデルで符号化／復号化されたブロックから導出されたインター領域マージ候補を表す。
【０２４８】
動きベクトル予測モードでも、図インター領域モーション情報テーブルを使用することができる。一例として、現在のブロックの動きベクトル予測候補リストに含まれた動きベクトル予測候補の数が閾値より小さい場合、インター領域モーション情報テーブルに含まれたインター領域マージ候補を現在のブロックに対する動きベクトル予測候補として設定することができる。具体的に、インター領域マージ候補のモーションベクトルを動きベクトル予測候補として設定することができる。
【０２４９】
現在のブロックの動きベクトル予測候補リストに含まれた動きベクトル予測候補のいずれか１つを選択すると、選択された候補を現在のブロックの動きベクトル予測値に設定することができる。その後、現在のブロックの動きベクトル残差値を復号化した後、動きベクトル予測値と動きベクトル残差値を加算して現在のブロックの動きベクトルを取得することができる。
【０２５０】
現在のブロックの動きベクトル予測候補リストは、以下の順序に応じて、構成されることができる。
【０２５１】
空間モーションベクトル予測候補−時間モーションベクトル予測候補−インター復号化領域マージ候補−（インター復号化領域アフィンマージ候補）−ゼロモーションベクトル予測候補
空間モーションベクトル予測候補は、隣接ブロック又は非隣接ブロックのうちの少なくとも１つから導出されるモーションベクトル予測候補を意味し、時間モーションベクトル予測候補は、以前の参照画像から導出されるモーションベクトル予測候補を意味する。インター領域アフィンマージ候補は、アフィンモーションモデルで符号化／復号化されたブロックから導出されたインター領域モーションベクトル予測候補を表す。ゼロモーションベクトル予測候補は、動きベクトルの値が０である候補を表す。
【０２５２】
符号化ブロックよりも大きいサイズのマージ処理領域を定義することができる。マージ処理領域に含まれた符号化ブロックは、順次に符号化／復号化されず、並列処理されることができる。ここで、順次に符号化／復号化されないこととは、符号化／復号化順序が定義されていないことを意味する。これにより、マージ処理領域に含まれたブロックの符号化／復号化プロセスを独立して処理することができる。又は、マージ処理領域に含まれたブロックはマージ候補を共有することができる。ここで、マージ候補は、マージ処理領域に基づいて導出されることができる。
【０２５３】
上記の特徴に従って、マージ処理領域を、並列処理領域、マージ共有領域（ＳＭＲ：Ｓｈａｒｅｄ  Ｍｅｒｇｅ  Ｒｅｇｉｏｎ）又はマージ推定領域（ＭＥＲ：Ｍｅｒｇｅ  Ｅｓｔｉｍａｔｉｏｎ  Ｒｅｇｉｏｎ）と称することもできる。
【０２５４】
現在のブロックのマージ候補は、符号化ブロックに基づいて導出されることができる。ただし、現在のブロックが、現在のブロックよりも大きいサイズのマージ処理領域に含まれた場合、現在のブロックと同じマージ処理領域に含まれた候補ブロックはマージ候補として利用不可能であると設定することができる。
【０２５５】
図２５は、現在のブロックと同じマージ処理領域に含まれた候補ブロックがマージ候補として利用不可能なものに設定されている例を示す図面である。
【０２５６】
図２５の（ａ）に示された例では、ＣＵ５を符号化／復号化するとき、ＣＵ５に隣接する基準サンプルを含むブロックを候補ブロックに設定することができる。この場合、ＣＵ５と同じマージ処理領域に含まれた候補ブロックＸ３及びＸ４はＣＵ５のマージ候補として利用不可能であると設定することができる。もう一方では、ＣＵ５と同じマージ処理領域に含まれていない候補ブロックＸ０、Ｘ１及びＸ２はマージ候補として利用可能であると設定することができる。
【０２５７】
図２５の（ｂ）に示された例では、ＣＵ８を符号化／復号化するとき、ＣＵ８に隣接する基準サンプルを含むブロックを候補ブロックに設定することができる。この場合、ＣＵ８と同じマージ処理領域に含まれた候補ブロックＸ６、Ｘ７及びＸ８は、マージ候補として利用不可能なものであると設定されることができる。もう一方では、ＣＵ８と同じマージ領域に含まれていない候補ブロックＸ５及びＸ９は、マージ候補として利用可能であると設定することができる。
【０２５８】
マージ処理領域は、正方形又は非正方形であってもよい。ビットストリームを介して、マージ処理領域を決定するための情報をシグナリングすることができる。前記情報は、マージ処理領域の形態を表す情報又はマージ処理領域のサイズを表す情報のうちの少なくとも１つを含み得る。マージ処理領域が非正方形である場合、ビットストリームを介して、マージ処理領域のサイズを表す情報、マージ処理領域の幅及び／又は高さを表す情報又はマージ処理領域の幅と高さとの間の比率を表す情報のうちの少なくとも１つをシグナリングすることができる。
【０２５９】
マージ処理領域のサイズは、ビットストリームによってシグナリングされる情報、画像解像度、スライス（ｓｌｉｃｅ）のサイズ又はタイル（ｔｉｌｅ）のサイズのうちの少なくとも１つに基づいて決定されることができる。
【０２６０】
マージ処理領域に含まれたブロックに対して動き補償予測を実行すると、動き補償予測が実行されたブロックの動き情報に基づいて導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加することができる。
【０２６１】
ただし、マージ処理領域に含まれたブロックから導出されたインター領域マージ候補をインター領域モーション情報テーブルに追加する場合、前記ブロックより実在の符号化／復号化が遅いマージ処理領域内の他のブロックを符号化／復号化するとき、前記ブロックから導出されたインター領域マージ候補を使用する場合がある。即ち、マージ処理領域に含まれたブロックを符号化／復号化するとき、ブロック間の依存性を排除しなければならにもかかわらず、マージ処理領域に含まれた他のブロックの動き情報を使用して動き予測補償を実行する場合がある。上記の問題を解決するために、マージ処理領域に含まれたブロックの符号化／復号化が完了しても、符号化／復号化が完了したブロックの動き情報をインター領域モーション情報テーブルに追加しないことができる。
【０２６２】
又は、マージ処理領域に含まれたブロックに対して動き補償予測を実行すると、前記ブロックから導出されたインター領域マージ候補を事前に定義された順序でインター領域モーション情報テーブルに追加することができる。ここで、事前に定義された順序は、マージ処理領域又は符号化ツリーユニット内の符号化ブロックのスキャン順序に従って決定されることができる。前記スキャン順序は、ラスタースキャン、水平スキャン、垂直スキャン又はジグザグスキャンのうちの少なくとも１つであってもよい。又は、事前に定義された順序は、各ブロックの動き情報又は同じ動き情報を有するブロックの数に基づいて決定されることができる。
【０２６３】
又は、一方向のモーション情報を含むインター領域マージ候補を、両方向のモーション情報を含むインター領域マージ候補よりも先に、インター領域マージリストに追加することができる。逆に、両方向のモーション情報を含むインター領域マージ候補を、一方向モーション情報を含むインター領域マージ候補よりも先に、インター領域マージ候補リストに追加することができる。
【０２６４】
又は、マージ処理領域又は符号化ツリーユニット内での使用頻度が高い順又は使用頻度が低い順に従ってインター領域マージ候補をインター領域モーション情報テーブルに追加することができる。
【０２６５】
現在のブロックがマージ処理領域に追加され、現在のブロックのマージ候補リストに含まれたマージ候補の数が最大数より小さい場合、インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加することができる。この場合、現在のブロックと同じマージ処理領域に含まれたブロックから導出されたインター領域マージ候補は、現在のブロックのマージ候補リストに追加されないように設定されることができる。
【０２６６】
又は、現在のブロックがマージ処理領域に含まれた場合、インター領域モーション情報テーブルに含まれたインター領域マージ候補を使用しないように設定することができる。即ち、現在のブロックのマージ候補リストに含まれたマージ候補の数が最大数より小さい場合であっても、インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加しないことができる。
【０２６７】
マージ処理領域又は符号化ツリーユニットに対するインター領域モーション情報テーブルを構成することができる。前記インター領域モーション情報テーブルは、マージ処理領域に含まれたブロックのモーション情報を一時的に記憶する役割をする。一般的なインター領域モーション情報テーブルと、マージ処理領域又は符号化ツリーユニットのためのインター領域モーション情報テーブルを区別するために、マージ処理領域又は符号化ツリーユニットのためのインター領域モーション情報テーブルを一時的なモーション情報テーブルと称することにする。さらに、一時的なモーション情報テーブルに記憶されたインター領域マージ候補を一時的なマージ候補と称することにする。
【０２６８】
図２６は、一時的なモーション情報テーブルを示す図面である。
【０２６９】
符号化ツリーユニット又はマージ処理領域のための一時的なモーション情報テーブルを構成することができる。符号化ツリーユニット又はマージ処理領域に含まれた現在のブロックに対して動き補償予測が実行された場合、前記ブロックのモーション情報をインター予測モーション情報テーブルＨｍｖｐＣａｎｄＬｉｓｔに追加しないことができる。その代わりに、前記ブロックから導出された一時的なマージ候補を一時的なモーション情報テーブルＨｍｖｐＭＥＲＣａｎｄＬｉｓｔに追加することができる。即ち、一時的なモーション情報テーブルに追加された一時的なマージ候補は、インター領域モーション情報テーブルに追加されないことができる。これにより、インター領域モーション情報テーブルは、現在のブロックを含む符号化ツリーユニット又はマージ処理領域に含まれたブロックのモーション情報に基づいて導出されたインター領域マージ候補を含まなくてもよい。
【０２７０】
一時的なモーション情報テーブルが含むことができるマージ候補の最大数は、インター領域モーション情報テーブルと同じように設定することができる。又は、一時的なモーション情報テーブルが含むことができるマージ候補の最大数は、符号化ツリーユニット又はマージ処理領域のサイズに従って決定されることができる。
【０２７１】
符号化ツリーユニット又はマージ処理領域に含まれた現在のブロックは、対応する符号化ツリーユニット又は対応するマージ処理領域に対する一時的なモーション情報テーブルを使用しないように設定することができる。即ち、現在のブロックのマージ候補リストに含まれたマージ候補の数が閾値より小さい場合、インター領域モーション情報テーブルに含まれたインター領域マージ候補をマージ候補リストに追加し、一時的なモーション情報テーブルに含まれた一時的なマージ候補をマージ候補リストに追加しないことができる。これにより、現在のブロックと同じ符号化ツリーユニット又は同じマージ処理領域に含まれた他のブロックの動き情報を現在のブロックの動き補償予測に使用しないことができる。
【０２７２】
符号化ツリーユニット又はマージ処理領域に含まれた全てのブロックの符号化／復号化が完了すると、インター領域モーション情報テーブルと一時的なモーション情報テーブルを合併することができる。
【０２７３】
図２７は、インター領域モーション情報テーブルと一時的なモーション情報テーブルを合併する例を示す図面である。
【０２７４】
符号化ツリーユニット又はマージ処理領域に含まれた全てのブロックの符号化／復号化が完了すると、図２７に示された例のように、一時的なモーション情報テーブルに含まれた一時的なマージ候補でインター領域モーション情報テーブルを更新することができる。
【０２７５】
この場合、一時的なモーション情報テーブルに挿入された順序（即ち、インデックス値の昇順又は降順）に従って、一時的なモーション情報テーブルに含まれた一時的なマージ候補をインター領域モーション情報テーブルに追加することができる。
【０２７６】
別の例として、事前に定義された順序に従って、一時的なモーション情報テーブルに含まれた一時的なマージ候補をインター領域モーション情報テーブルに追加することができる。
【０２７７】
ここで、事前に定義された順序は、マージ処理領域又は符号化ツリーユニット内の符号化ブロックのスキャン順序に従って決定されることができる。前記スキャン順序は、ラスタースキャン、水平スキャン、垂直スキャン又はジグザグスキャンのうちの少なくとも１つであってもよい。又は、事前に定義された順序は、各ブロックの動き情報又は同じ動き情報を有するブロックの数に基づいて決定されることができる。
【０２７８】
又は、一方向のモーション情報を含む一時的なマージ候補を、両方向のモーション情報を含む一時的なマージ候補よりも先に、インター領域マージリストに追加することができる。逆に、両方向のモーション情報を含む一時的なマージ候補を、一方向モーション情報を含む一時的なマージ候補よりも先に、インター領域マージ候補リストに追加することができる。
【０２７９】
又は、マージ処理領域又は符号化ツリーユニット内での使用頻度が高い順又は使用頻度が低い順に従って一時的なマージ候補をインター領域モーション情報テーブルに追加することができる。
【０２８０】
一時的なモーション情報テーブルに含まれた一時的なマージ候補をインター領域モーション情報テーブルに追加する場合、一時的なマージ候補に対する冗長性検出を実行することができる。一例として、一時的なモーション情報テーブルに含まれた一時的なマージ候補と同じインター領域マージ候補がインター領域モーション情報テーブルに記憶されている場合、前記一時的なマージ候補をインター領域モーション情報テーブルに追加しないことができる。この場合、冗長性検出は、インター領域モーション情報テーブルに含まれたインター領域マージ候補の一部を対象として実行することができる。一例として、インデックスが閾値より大きいか等しいであるインター予測マージ候補を対象として冗長性検出を実行することができる。一例として、一時的なマージ候補が事前に定義された値より大きいか等しいインデックスを有するインター領域マージ候補と同じである場合、前記一時的なマージ候補をインター領域モーション情報テーブルに追加しないことができる。
【０２８１】
イントラ予測は、現在のブロックの周辺の符号化／復号化が完了された再構成サンプルを使用して、現在のブロックを予測することである。この場合、現在のブロックのイントラ予測では、インループフィルタが適用される前の再構成サンプルを使用することができる。
【０２８２】
イントラ予測技術は、マトリックス（Ｍａｔｒｉｘ）に基づくイントラ予測及び周辺の再構成サンプルとの方向性を考慮した一般的なイントラ予測を含む。ビットストリームを介して、現在のブロックのイントラ予測技術を指示する情報をシグナリングすることができる。前記情報は、１ビットのフラグであってもよい。又は、現在のブロックの位置、サイズ、形状又は隣接ブロックのイントラ予測技術のうちの少なくとも１つに基づいて、現在のブロックのイントラ予測技術を決定することができる。一例として、現在のブロックが画像をまたがって存在している場合、現在のブロックには、マトリックスに基づくイントラ予測が適用されないように設定することができる。
【０２８３】
マトリックスに基づくイントラ予測は、符号化器及び復号化器に記憶されたマトリックスと、現在のブロックの周辺の再構成サンプルとの間の行列積に基づいて、現在のブロックの予測ブロックを取得する方法である。ビットストリームを介して、記憶された複数のマトリックスのうちのいずれか１つを特定するための情報をシグナリングすることができる。復号化器は、前記情報及び現在のブロックのサイズに基づいて、現在のブロックのイントラ予測のためのマトリックスを決定することができる。
【０２８４】
一般的なイントラ予測は、非方向性イントラ予測モード又は方向性イントラ予測モードに基づいて、現在のブロックに対する予測ブロックを取得する方法である。以下、図面を参照して、一般的なイントラ予測に基づくイントラ予測の実行プロセスについてより詳細に説明する。
【０２８５】
図２８は、本発明の実施例に係るイントラ予測方法のフローチャートである。
【０２８６】
現在のブロックの参照サンプルラインを決定することができる（ステップＳ２８０１）。参照サンプルラインは、現在のブロックの上部及び／又は左側からｋ番目離れたラインに含まれた参照サンプルの集合を意味する。現在のブロックの周辺の符号化／復号化が完了された再構成サンプルから参照サンプルを導出することができる。
【０２８７】
ビットストリームを介して、複数の参照サンプルラインのうち、現在のブロックの参照サンプルラインを識別するインデックス情報をシグナリングすることができる。複数の参照サンプルラインは、現在のブロックの上部及び／又は左側からの最初の行／列、２番目の行／列、３番目の行／列又は４番目の行／列のうちの少なくとも１つを含み得る。表４は、参照サンプルラインのそれぞれに割り当てられるインデックスを示す。表４では、最初の行／列、２番目の行／列及び４番目の行／列が参照サンプルライン候補を使用すると仮定する。
【０２８８】
【表４】
2022501897.tif 000011
【０２８９】
現在のブロックの位置、サイズ、形態又は隣接ブロックの予測符号化モードのうちの少なくとも１つに基づいて、現在のブロックの参照サンプルラインを決定することもできる。一例として、現在のブロックが画像、タイル、スライス又は符号化ツリーユニットの境界である場合、最初の参照サンプルラインを現在のブロックの参照サンプルラインに決定することができる。
【０２９０】
参照サンプルラインは、現在のブロックの上部に位置する上部の参照サンプル及び現在のブロックの左側に位置する左側の参照サンプルを含み得る。現在のブロックの周辺の再構成サンプルから上部の参照サンプル及び左側の参照サンプルを導出することができる。前記再構成サンプルは、インループフィルタが適用される前の状態であってもよい。
【０２９１】
図２９は、各参照サンプルラインに含まれた参照サンプルの図面である。
【０２９２】
現在のブロックのイントラ予測モードに従って、参照サンプルラインに属する参照サンプルのうちの少なくとも１つを使用して、予測サンプルを取得することができる。
【０２９３】
次に、現在のブロックのイントラ予測モードを決定することができる（ステップＳ２８０２）。現在のブロックのイントラ予測モードは、非方向性イントラ予測モード又は方向性イントラ予測モードのうちの少なくとも１つが現在のブロックのイントラ予測モードで決定することができる。非方向性イントラ予測モードは、プランナー（Ｐｌａｎｅｒ）及びＤＣを含み、方向性イントラ予測モードは、左下対角方向から右上対角方向まで３３つ又は６５つのモードを含む。
【０２９４】
図３０は、イントラ予測モードを示す図面である。
【０２９５】
図３０の（ａ）は、３５個のイントラ予測モードを示し、図３０の（ｂ）は、６７つのイントラ予測モードを示す。
【０２９６】
図３０に示されたものよりも多いか、より少ない数のイントラ予測モードを定義することもできる。
【０２９７】
現在のブロックに隣接する隣接ブロックのイントラ予測モードに基づいて、最も可能性の高いモード（ＭＰＭ：Ｍｏｓｔ  Ｐｒｏｂａｂｌｅ  Ｍｏｄｅ）を設定することができる。ここで、隣接ブロックは、現在のブロックの左側に隣接する左側隣接ブロック及び現在のブロックの上部に隣接する上部隣接ブロックを含み得る。現在のブロックの左上のサンプルの座標を（０，０）とすると、左側の隣接ブロックは、（−１，０）、（−１，Ｈ−１）又は（−１，（Ｈ−１）／２）位置のサンプルを含み得る。ここで、Ｈは、現在のブロックの高さを表す。上部隣接ブロックは、（０，−１）、（Ｗ−１，−１）又は（（Ｗ−１）／２，−１）位置のサンプルを含み得る。ここで、Ｗは、現在のブロックの幅を表す。
【０２９８】
隣接ブロックが一般的なイントラ予測で符号化された場合、隣接ブロックのイントラ予測モードに基づいてＭＰＭを導出することができる。具体的に、左側の隣接ブロックのイントラ予測モードを変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡに設定し、上部隣接ブロックのイントラ予測モードを変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢに設定することができる。
【０２９９】
この場合、隣接ブロックが利用不可能である場合（例えば、隣接ブロックがまだ符号化／復号化されていない場合又は隣接ブロックの位置が画像境界を超えた場合）、隣接ブロックがマトリックスに基づくイントラ予測で符号化された場合、隣接ブロックがインター予測で符号化された場合又は隣接ブロックが現在のブロックと異なる符号化ツリーユニットに含まれた場合にとって、隣接ブロックのイントラ予測モードに基づいて、導出される変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ（ここで、Ｘは、Ａ又はＢ）をデフォルトモードに設定することができる。ここで、デフォルトモードは、プランナー、ＤＣ、垂直方向モード又は水平方向モードのうちの少なくとも１つを含み得る。
【０３００】
又は、隣接ブロックがマトリックスに基づくイントラ予測で符号化された場合、マトリックスのうちのいずれか１つを特定するためのインデックス値に対応するイントラ予測モードをｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸに設定することができる。したがって、マトリックスを特定するためのインデックス値とイントラ予測モードのマッピング関係を表すルックアップテーブルは、符号化器及び復号化器に記憶されることができる。
【０３０１】
変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及び変数ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢに基づいて、ＭＰＭを導出することができる。ＭＰＭリストに含まれるＭＰＭの数は、符号化器及び復号化器によって設定されることができる。一例として、ＭＰＭの数は、３つ、４つ、５つ又は６つであってもよい。又は、ビットストリームを介して、ＭＰＭの数を表す情報をシグナリングすることができる。又は、隣接ブロックの予測符号化モード、現在のブロックのサイズ又は形態のうちの少なくとも１つに基づいてＭＰＭの数を決定することができる。
【０３０２】
後述される実施例では、ＭＰＭの数が３つであると仮定し、３つのＭＰＭをＭＰＭ［０］、ＭＰＭ［１］及びＭＰＭ［２］と称することにする。ＭＰＭの数が３つより多い場合、ＭＰＭは、後述される実施例で説明される３つのＭＰＭを含むように構成される。
【０３０３】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じであり、ｃａｎｄＩｎｔｒａＰｒｅｄＡがプランナー又はＤＣモードである場合、ＭＰＭ［０］及びＭＰＭ［１］をそれぞれ、プランナー及びＤＣモードに設定することができる。ＭＰＭ［２］を垂直方向のイントラ予測モード、水平方向のイントラ予測モード又は対角方向のイントラ予測モードに設定することができる。対角方向のイントラ予測モードは、左下対角方向のイントラ予測モード、左上方向のイントラ予測モード又は右上方向のイントラ予測モードであってもよい。
【０３０４】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが同じであり、ｃａｎｄＩｎｔｒａＰｒｅｄＡが方向性イントラ予測モードである場合、ＭＰＭ［０］をｃａｎｄＩｎｔｒａＰｒｅｄＡと同じように設定することができる。ＭＰＭ［１］及びＭＰＭ［２］は、ｃａｎｄＩｎｔｒａＰｒｅｄＡを類似のイントラ予測モードに設定することができる。ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似するイントラ予測モードは、ｃａｎｄＩｎｔｒａＰｒｅｄＡとのインデックスの差分値が±１又は±２であるイントラ予測モードであってもよい。ｃａｎｄＩｎｔｒａＰｒｅｄＡと類似するイントラ予測モードを導出するために、モジュール演算（％）及びオフセットを使用することができる。
【０３０５】
ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが異なる場合、ＭＰＭ［０］をｃａｎｄＩｎｔｒａＰｒｅｄＡと同じように設定し、ＭＰＭ［１］をｃａｎｄＩｎｔｒａＰｒｅｄＢと同じように設定することができる。この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＡとｃａｎｄＩｎｔｒａＰｒｅｄＢが両方とも非方向性イントラ予測モードである場合、ＭＰＭ［２］を垂直方向のイントラ予測モード、水平方向のイントラ予測モード又は対角方向のイントラ予測モードに設定することができる。又は、ｃａｎｄＩｎｔｒａＰｒｅｄＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＢのうちの少なくとも１つが方向性イントラ予測モードである場合、ＭＰＭ［２］を、プランナー、ＤＣ、又はｃａｎｄＩｎｔｒａＰｒｅｄＡ又はｃａｎｄＩｎｔｒａＰｒｅｄＢのうちの最大値にオフセットを加算又は減算することにより導出されるイントラ予測モードに設定することができる。ここで、オフセットは、１又は２であってもよい。
【０３０６】
複数のＭＰＭを含むＭＰＭリストを生成し、ビットストリームを介して、現在のブロックのイントラ予測モードと同じＭＰＭがＭＰＭリストに含まれているかどうかを表す情報をシグナリングすることができる。前記情報は、１ビットのフラグでＭＰＭフラグと称することができる。前記ＭＰＭフラグが、現在のブロックと同じＭＰＭがＭＰＭリストに含まれていることを表す場合、ビットストリームを介して、ＭＰＭのいずれか１つを識別するインデックス情報をシグナリングすることができる。前記インデックス情報によって特定されたＭＰＭを現在のブロックのイントラ予測モードとして設定することができる。前記ＭＰＭフラグが、現在のブロックと同じＭＰＭがＭＰＭリストに含まれていないことを表す場合、ＭＰＭを除く残りのイントラ予測モードのうちのいずれか１つを指示する残りのモード情報をビットストリームを介してシグナリングすることができる。残りのモード情報は、ＭＰＭを除く残りのイントラ予測モードにインデックスを再割り当てしたとき、現在のブロックのイントラ予測モードに対応するインデックス値を指す。復号化器は、昇順でＭＰＭを配列し、残りのモード情報をＭＰＭと比較することにより、現在のブロックのイントラ予測モードを決定することができる。一例として、残りのモード情報がＭＰＭより小さいか等しい場合、残りのモード情報に１を加算して、現在のブロックのイントラ予測モードを導出することができる。
【０３０７】
デフォルトモードをＭＰＭに設定する代わりに、現在のブロックのイントラ予測モードがデフォルトモードであるかどうかを表す情報をビットストリームを介してシグナリングすることができる。前記情報は、１ビットのフラグであり、前記フラグをデフォルトモードフラグと称することができる。前記デフォルトモードフラグは、ＭＰＭフラグが現在のブロックと同じＭＰＭがＭＰＭリストに含まれていることを示す場合に限ってシグナリングすることができる。上記のように、デフォルトモードは、プランナー、ＤＣ、垂直方向モード又は水平方向モードのうちの少なくとも１つを含み得る。一例として、プランナーがデフォルトモードに設定された場合、デフォルトモードフラグは、現在のブロックのイントラ予測モードがプランナーであるかどうかを指示することができる。デフォルトモードフラグが、現在のブロックのイントラ予測モードがデフォルトモードではないことを示す場合、インデックス情報によって指示されるＭＰＭのいずれか１つを現在のブロックのイントラ予測モードとして設定することができる。
【０３０８】
複数のイントラ予測モードがデフォルトモードに設定された場合、デフォルトモードのうちのいずれか１つを指示するインデックス情報をさらにシグナリングすることができる。現在のブロックのイントラ予測モードは、前記インデックス情報が指すデフォルトモードに設定されることができる。
【０３０９】
現在のブロックの参照サンプルラインのインデックスが０ではない場合、デフォルトモードを使用しないように設定することができる。これにより、参照サンプルラインのインデックスが０ではない場合は、デフォルトモードフラグをシグナリングせずに、前記デフォルトモードフラグの値を事前に定義された値（即ち、偽）に設定することができる。
【０３１０】
現在のブロックのイントラ予測モードが決定されると、決定されたイントラ予測モードに基づいて、現在のブロックに対する予測サンプルを取得することができる（ステップＳ２８０３）。
【０３１１】
ＤＣモードが選択された場合、参照サンプルの平均値に基づいて、現在のブロックに対する予測サンプルを生成する。具体的に、参照サンプルの平均値に基づいて、予測ブロック内の全てのサンプルの値を生成することができる。現在のブロックの上部に位置する上部の参照サンプル及び現在のブロックの左側に位置する左側の参照サンプルのうちの少なくとも１つを使用して平均値を導出することができる。
【０３１２】
現在のブロックの形状に従って、平均値を導出するために使用される参照サンプルの数又は範囲は異なる可能性がある。一例として、現在のブロックが、幅が高さより大きい非正方形ブロックである場合、上部の参照サンプルのみを使用して平均値を計算することができる。もう一方では、現在のブロックが、幅が高さより小さい非正方形ブロックである場合、左側の参照サンプルのみを使用して平均値を計算することができる。即ち、現在のブロックの幅と高さが異なる場合、より長い方に隣接する参照サンプルのみを使用して平均値を計算することができる。又は、現在のブロックの幅と高さの比率に基づいて、上部の参照サンプルのみを使用して平均値を計算するかどうか又は左側の参照サンプルのみを使用して平均値を計算するかどうかを決定することができる。
【０３１３】
プランナーモードが選択された場合、水平方向予測サンプルと垂直方向予測サンプルを使用して、予測サンプルを取得することができる。ここで、予測サンプルと同じ水平線に位置する左側の参照サンプル及び右側の参照サンプルに基づいて水平方向予測サンプルを取得し、予測サンプルと同じ垂直線に位置する上部の参照サンプル及び下部の参照サンプルに基づいて垂直方向予測サンプルを取得する。ここで、現在のブロックの右上コーナーに隣接する参照サンプルを複製することにより右側の参照サンプルを生成し、現在のブロックの左下コーナーに隣接する参照サンプルを複製することにより下部の参照サンプルを生成することができる。左側の参照サンプル及び右側の参照サンプルの加重和演算に基づいて水平方向予測サンプルを取得し、上部の参照サンプル及び下部の参照サンプルの加重和演算に基づいて垂直方向予測サンプルを取得することができる。この場合、予測サンプルの位置に従って、各参照サンプルに付与される重み値を決定することができる。水平方向予測サンプル及び垂直方向予測サンプルの平均演算又は加重和演算に基づいて予測サンプルを取得することができる。加重和演算が実行される場合、予測サンプルの位置に基づいて水平方向予測サンプル及び垂直方向予測サンプルに付与される重み値を決定することができる。
【０３１４】
方向性予測モードが選択される場合、選択された方向性予測モードの予測方向（又は予測角度）を示すパラメータを決定することができる。以下、表５は、各イントラ予測モードのイントラ方向パラメータｉｎｔｒａＰｒｅｄＡｎｇを示す。
【０３１５】
【表５】
2022501897.tif 000012
【０３１６】
表５は、３５個のイントラ予測モードが定義されている場合、インデックスが２ないし３４のいずれか１つであるイントラ予測モードのそれぞれのイントラ方向パラメータを表す。３３つより多い方向性イントラ予測モードが定義されている場合、表５をより細分化して、各方向性イントラ予測モードのイントラ方向パラメータを設定することができる。
【０３１７】
現在のブロックの上部の参照サンプル及び左側の参照サンプルを一列に配列した後、イントラ方向パラメータの値に基づいて、予測サンプルを取得することができる。この場合、イントラ方向パラメータの値が負の値である場合、左側の参照サンプルと上部の参照サンプルを一列に配列することができる。
【０３１８】
図３１及び図３２は、基準サンプルを一列に配列する１次元配列の例を示す図面である。
【０３１９】
図３１は、参照サンプルを垂直方向に配列する垂直方向の１次元配列の例を示し、図３２は、参照サンプルを水平方向に配列する水平方向の１次元配列の例を示す。３５個のイントラ予測モードが定義されていると仮定して、図３１及び図３２の実施例を説明する。
【０３２０】
イントラ予測モードインデックスが１１ないし１８のいずれか１つである場合、上部の参照サンプルを反時計回りに回転した水平方向の１次元配列を適用し、イントラ予測モードインデックスが１９ないし２５のいずれか１つである場合、左側の参照サンプルを時計回りに回転した垂直方向の１次元配列を適用することができる。参照サンプルを一列に配列したとき、イントラ予測モード角度を考慮することができる。
【０３２１】
イントラ方向パラメータに基づいて、参照サンプル決定パラメータを決定することができる。参照サンプル決定パラメータは、参照サンプルを特定するための参照サンプルインデックス及び参照サンプルに適用される重み値を決定するための重み値パラメータを含み得る。
【０３２２】
参照サンプルインデックスｉＩｄｘ及び重み値パラメータｉｆａｃｔは、それぞれ以下の式５及び６によって取得されることができる。
【０３２３】
【数５】
2022501897.tif 000013
【０３２４】
【数６】
2022501897.tif 000014
【０３２５】
式５及び６では、Ｐａｎｇは、イントラ方向パラメータを表す。参照サンプルインデックスｉＩｄｘによって特定される参照サンプルは、整数ペル（Ｉｎｔｅｇｅｒ  ｐｅｌ）に該当する。
【０３２６】
予測サンプルを導出するために、少なくとも１つ以上の参照サンプルを特定することができる。具体的に、予測モードの傾きを考慮して、予測サンプルを導出するために使用される参照サンプルの位置を特定することができる。一例として、参照サンプルインデックスｉＩｄｘを使用して、予測サンプルを導出するために使用される参照サンプルを特定することができる。
【０３２７】
この場合、イントラ予測モードの傾きが１つの参照サンプルで表されていない場合、複数の参照サンプルを補間することにより予測サンプルを生成することができる。一例として、イントラ予測モードの傾きが予測サンプルと第１参照サンプルとの間の傾きと、予測サンプルと第２参照サンプルとの間の傾きとの間の値である場合、第１参照サンプル及び第２参照サンプルを補間することにより予測サンプルを取得することができる。即ち、イントラ予測角度に沿ったアンギュラライン（Ａｎｇｕｌａｒ  Ｌｉｎｅ）が整数ペルに位置する参照サンプルを通過しない場合、前記アンギュララインが通過する位置の左右又は上下に隣接位置する参照サンプルを補間することにより予測サンプルを取得することができる。
【０３２８】
以下、式７は、参照サンプルに基づいて、予測サンプルを取得する例を示す。
【０３２９】
【数７】
2022501897.tif 000015
【０３３０】
式７では、Ｐは予測サンプルを表し、Ｒｅｆ＿１Ｄは、１次元配列された参照サンプルのいずれか１つを表す。この場合、予測サンプルの位置（ｘ，ｙ）及び参照サンプルインデックスｉＩｄｘに従って参照サンプルの位置を決定することができる。
【０３３１】
イントラ予測モードの傾きが１つの参照サンプルで表すことができる場合、重み値パラメータｉｆａｃｔを０に設定する。これにより、式７は、以下の式８のように簡素化することができる。
【０３３２】
【数８】
2022501897.tif 000016
【０３３３】
複数のイントラ予測モードに基づいて、現在のブロックに対するイントラ予測を実行することもできる。一例として、予測サンプルごとにイントラ予測モードを導出し、各予測サンプルに割り当てされたイントラ予測モードに基づいて予測サンプルを導出することができる。
【０３３４】
又は、領域ごとにイントラ予測モードを導出し、それぞれの領域に割り当てされたイントラ予測モードに基づいて各領域に対するイントラ予測を実行することができる。ここで、前記領域は、少なくとも１つのサンプルを含み得る。前記領域のサイズ又は形状のうちの少なくとも１つは、現在のブロックのサイズ、形状又はイントラ予測モードのうちの少なくとも１つに基づいて適応的に決定することができる。又は、符号化器及び復号化器において、現在のブロックのサイズ又は形状とは関係なく、領域のサイズ又は形状のうちの少なくとも１つを事前に定義することができる。
【０３３５】
又は、複数のイントラ予測のそれぞれに基づいてイントラ予測を実行し、複数回のイントラ予測により取得された複数の予測サンプルの平均演算又は加重和演算に基づいて、最終的な予測サンプルを導出することができる。一例として、第１イントラ予測モードに基づき、イントラ予測を実行して第１予測サンプルを取得し、第２イントラ予測モードに基づき、イントラ予測を実行して第２予測サンプルを取得することができる。その後、第１予測サンプルと第２予測サンプルの間の平均演算又は加重和演算に基づいて、最終的な予測サンプルを取得することができる。この場合、第１イントラ予測モードが非方向性／方向性予測モードであるかどうか、第２イントラ予測モードが非方向性／方向性予測モードであるかどうか又は隣接ブロックのイントラ予測モードのうちの少なくとも１つを考慮して、第１予測サンプル及び第２予測サンプルのそれぞれに割り当てられる重み値を決定することができる。
【０３３６】
複数のイントラ予測モードは、非方向性イントラ予測モードと方向性予測モードの組み合わせ、方向性予測モードの組み合わせ又は非方向性予測モードの組み合わせであってもよい。
【０３３７】
図３３は、方向性イントラ予測モードが、ｘ軸と平行な直線と形成する角度を示す図面である。
【０３３８】
図３３に示された例のように、方向性予測モードは、左下対角方向から右上対角方向の間に存在することができる。ｘ軸と方向性予測モードが形成する角度を説明すれば、方向性予測モードは、４５度（左下対角方向）から、−１３５度（右上対角方向）の間に存在することができる。
【０３３９】
現在のブロックが非正方形である場合、現在のブロックのイントラ予測モードに従って、イントラ予測角度に従うアンギュララインに位置する参照サンプルのうち、予測サンプルにより近い参照サンプルの代わりに、予測サンプルにより遠い参照サンプルを使用して予測サンプルを導出する場合が発生することがある。
【０３４０】
図３４は、現在のブロックが非正方形である場合、予測サンプルが取得される様式を示す図面である。
【０３４１】
一例として、図３４の（ａ）に示された例のように、現在のブロックが幅が高さより大きい非正方形であり、現在のブロックのイントラ予測モードが０度から４５度の間の角度を有する方向性イントラ予測モードであると仮定する。上記の場合、現在のブロックの右側の列付近の予測サンプルＡを導出するとき、前記角度に従うアンギュラモードに位置する参照サンプルのうち、前記予測サンプルに近い上部の参照サンプルＴの代わりに前記予測サンプルに遠い左側の参照サンプルＬを使用する場合が発生することがある。
【０３４２】
別の例として、図３４の（ｂ）に示された例のように、現在のブロックが高さが幅より大きい非正方形であり、現在のブロックのイントラ予測モードが−９０度から−１３５度の間の方向性イントラ予測モードであると仮定する。上記の場合、現在のブロックの下部の行付近の予測サンプルＡを導出するとき、前記角度に従うアンギュラモードに位置する参照サンプルのうち、前記予測サンプルに近い左側の参照サンプルＬの代わりに前記予測サンプルに遠い上部の参照サンプルＴを使用する場合が発生することがある。
【０３４３】
上記の問題を解決するために、現在のブロックが非正方形である場合、現在のブロックのイントラ予測モードを反対方向のイントラ予測モードに置換することができる。これにより、非正方形ブロックについては、図２４に示された方向性予測モードよりも大きいか、あるいはより小さい角度を有する方向性予測モードを使用することができる。このように、方向性イントラ予測モードを広角イントラ予測モードと定義することができる。広角イントラ予測モードは、４５度から−１３５度の範囲に属さない方向性イントラ予測モードを表す。
【０３４４】
図３５は、広角イントラ予測モードを示す図面である。
【０３４５】
図３５に示された例では、インデックスが−１から−１４までであるイントラ予測モード及びインデックスが６７から８０までであるイントラ予測モードは広角イントラ予測モードを表す。
【０３４６】
図３５は、角度が４５度より大きい１４つの広角イントラ予測モード（−１から−１４まで）及び角度が−１３５度より小さい１４つの広角イントラ予測モード（６７から８０まで）を表したが、これより多くの数又はより少ない数の広角イントラ予測モードを定義することができる。
【０３４７】
広角イントラ予測モードが使用される場合、上部の参照サンプルの長さを２Ｗ＋１に設定し、左側の参照サンプルの長さを２Ｈ＋１に設定することができる。
【０３４８】
広角イントラ予測モードを使用することにより、参照サンプルＴを使用して図３４の（ａ）に示されたサンプルＡを予測し、参照サンプルＬを使用して図３４の（ｂ）に示されたサンプルＡを予測することができる。
【０３４９】
既存のイントラ予測モードとＮ個の広角イントラ予測モードを加え、合計６７＋Ｎ個のイントラ予測モードを使用することができる。一例として、表６は、２０つの広角イントラ予測モードが定義された場合、イントラ予測モードのイントラ方向パラメータを示す。
【０３５０】
【表６】
2022501897.tif 000017
【０３５１】
現在のブロックが非正方形であり、ステップＳ２８０２において取得された現在のブロックのイントラ予測モードが変換範囲に属する場合、現在のブロックのイントラ予測モードを広角イントラ予測モードに変換することができる。現在のブロックのサイズ、形状又は比率のうちの少なくとも１つに基づいて、前記変換範囲を決定することができる。ここで、前記比率は、現在のブロックの幅と高さの間の比率を表すことができる。
【０３５２】
現在のブロックが幅が高さより大きい非正方形である場合、変換範囲を右上対角方向のイントラ予測モードインデックス（例えば、６６）から（右上対角方向のイントラ予測モードのインデックス−Ｎ）に設定することができる。ここで、Ｎは、現在のブロックの比率に基づいて決定されることができる。現在のブロックのイントラ予測モードが変換範囲に属する場合、前記イントラ予測モードを広角イントラ予測モードに変換することができる。前記変換は、前記イントラ予測モードから事前に定義された値を差し引くことであり、事前に定義された値は、広角イントラ予測モードを除くイントラ予測モードの総数（例えば、６７）であってもよい。
【０３５３】
前記実施例により、６６番目から５３番目の間のイントラ予測モードをそれぞれ、−１番目から−１４番目の間の広角イントラ予測モードに変換することができる。
【０３５４】
現在のブロックが高さが幅より大きい非正方形である場合、変換範囲を左下対角方向のイントラ予測モードインデックス（例えば、２）から（左下対角方向のイントラ予測モードのインデックス＋Ｍ）に設定することができる。ここで、Ｍは、現在のブロックの比率に基づいて決定されることができる。現在のブロックのイントラ予測モードが変換範囲に属する場合、前記イントラ予測モードを広角イントラ予測モードに変換することができる。前記変換は、前記イントラ予測モードから事前に定義された値を加算することであり、事前に定義された値は、広角イントラ予測モードを除く方向性イントラ予測モードの総数（例えば、６５）であってもよい。
【０３５５】
前記実施例により、２番目から１５番目の間のイントラ予測モードのそれぞれを６７番目から８０番目の間の広角イントラ予測モードに変換することができる。
【０３５６】
以下、変換範囲に属するイントラ予測モードを広角イントラ代替予測モードと称することにする。
【０３５７】
変換範囲は、現在のブロックの比率に基づいて決定することができる。一例として、表７及び表８はそれぞれ、広角イントラ予測モードを除く３５個のイントラ予測モードが定義された場合と６７つのイントラ予測モードが定義された場合の変換範囲を示す。
【０３５８】
【表７】
2022501897.tif 000018
【０３５９】
【表８】
2022501897.tif 000019
【０３６０】
表７及び表８に示された例のように、現在のブロックの比率に従って、変換範囲に含まれる広角イントラ代替予測モードの数が異なることができる。
【０３６１】
既存のイントラ予測モードに加えて、広角イントラ予測モードが使用されることに従って、広角イントラ予測モードを符号化するのに必要なリソースが増加し、符号化効率が低下する可能性がある。したがって、広角イントラ予測モードをそのまま符号化する代わりに、広角イントラ予測モードに対する代替イントラ予測モードを符号化することにより、符号化効率を向上させることができる。
【０３６２】
一例として、現在のブロックが６７番目の広角イントラ予測モードを使用して符号化された場合、６７番目の広角代替イントラ予測モードである２番を現在のブロックのイントラ予測モードで符号化することができる。また、現在のブロックが−１番目の広角イントラ予測モードで符号化された場合、−１番目の広角代替イントラ予測モードである６６番を現在のブロックのイントラ予測モードで符号化することができる。
【０３６３】
復号化器は、現在のブロックのイントラ予測モードを復号化し、復号化されたイントラ予測モードが変換範囲に含まれるかどうかを判定することができる。復号化されたイントラ予測モードが広角代替イントラ予測モードである場合、イントラ予測モードを広角イントラ予測モードに変換することができる。
【０３６４】
又は、現在のブロックが広角イントラ予測モードで符号化された場合、広角イントラ予測モードをそのまま符号化することもできる。
【０３６５】
イントラ予測モードの符号化は、上記のＭＰＭリストに基づいて具現されることができる。具体的に、隣接ブロックが広角イントラ予測モードで符号化された場合、前記広角イントラ予測モードに対応する広角代替イントラ予測モードに基づいて、ＭＰＭを設定することができる。一例として、隣接ブロックが広角イントラ予測モードで符号化された場合、変数ｃａｎｄＩｎｔｒａＰｒｅｄＸ（Ｘは、Ａ又はＢ）を広角代替イントラ予測モードに設定することができる。
【０３６６】
イントラ予測の実行結果を介して予測ブロックを生成すると、予測ブロックに含まれた予測サンプルのそれぞれの位置に基づいて、予測サンプルを更新することができる。このように、更新方法をサンプル位置に基づくイントラ加重予測方法（ＰＤＰＣ：Ｐｏｓｉｔｉｏｎ  Ｄｅｐｅｎｄｅｎｔ  Ｐｒｅｄｉｃｔｉｏｎ  Ｃｏｍｂｉｎａｔｉｏｎ）と称することができる。
【０３６７】
現在のブロックのイントラ予測モード、現在のブロックの参照サンプルライン、現在のブロックのサイズ、又は色成分を考慮して、ＰＤＰＣを使用するかどうかを決定することができる。一例として、現在のブロックのイントラ予測モードがプランナー、ＤＣ、垂直方向、水平方向、垂直方向よりインデックス値が小さいモード又は水平方向よりインデックス値が大きいモードのうちの少なくとも１つである場合、ＰＤＰＣを使用することができる。又は、現在のブロックの幅又は高さのうちの少なくとも１つが４より大きい場合のみ、ＰＤＰＣを使用することができる。又は、現在のブロックの参照画像ラインのインデックスが０である場合のみ、ＰＤＰＣを使用することができる。又は現在のブロックの参照画像ラインのインデックスが事前に定義された値より大きいか等しい場合のみ、ＰＤＰＣを使用することができる。又は、輝度成分のみＰＤＰＣを使用することができる。又は前記列挙された条件のうちの２つ以上を満たしているかどうかに従って、ＰＤＰＣを使用するかどうかを決定することができる。
【０３６８】
別の例として、ビットストリームを介して、ＰＤＰＣが適用されるかどうかを表す情報をシグナリングすることができる。
【０３６９】
イントラ予測サンプルを介して予測サンプルを取得すると、取得された予測サンプルの位置に基づいて、前記予測サンプルを補正するために使用される参照サンプルを決定することができる。説明の便宜上、後述された実施例では、予測サンプルを補正するために使用される参照サンプルをＰＤＰＣ参照サンプルと称することにする。また、イントラ予測を介して取得された予測サンプルを第１予測サンプルと呼称し、第１予測サンプルを補正することにより取得される予測サンプルを第２予測サンプルと称することにする。
【０３７０】
図３６は、ＰＤＰＣを適用した様式を示す図面である。
【０３７１】
少なくとも１つのＰＤＰＣ参照サンプルを使用して、第１予測サンプルを補正することができる。ＰＤＰＣ参照サンプルは、現在のブロックの左上コーナーに隣接する参照サンプル、現在のブロックの上部に位置する上部の参照サンプル又は現在のブロックの左側に位置する左側の参照サンプルのうちの少なくとも１つを含み得る。
【０３７２】
現在のブロックの参照サンプルラインに属する参照サンプルのうちの少なくとも１つをＰＤＰＣ参照サンプルに設定することができる。又は、現在のブロックの参照サンプルラインとは関係なく、インデックス０である参照サンプルラインに属する参照サンプルのうちの少なくとも１つをＰＤＰＣ参照サンプルに設定することができる。一例として、インデックス１又はインデックス２である参照サンプルラインに含まれた参照サンプルを使用して第１予測サンプルを取得しても、インデックス０である参照サンプルラインに含まれた参照サンプルを使用して第２予測サンプルを取得することができる。
【０３７３】
現在のブロックのイントラ予測モード、現在のブロックのサイズ、現在のブロックの形状又は第１予測サンプルの位置のうちの少なくとも１つを考慮して、第１予測サンプルを補正するために使用されるＰＤＰＣ参照サンプルの数又は位置を決定することができる。
【０３７４】
一例として、現在のブロックのイントラ予測モードがプランナー又はＤＣモードである場合、上部の参照サンプル及び左側の参照サンプルを使用して第２予測サンプルを取得することができる。この場合、上部の参照サンプルは、第１予測サンプルに垂直な参照サンプル（例えば、ｘ座標が同じである参照サンプル）であり、左側の参照サンプルは、第１予測サンプルに水平な参照サンプル（例えば、ｙ座標が同じである参照サンプル）であってもよい。
【０３７５】
現在のブロックのイントラ予測モードが水平方向のイントラ予測モードである場合、上部の参照サンプルを使用して第２予測サンプルを取得することができる。この場合、上部の参照サンプルは、第１予測サンプルに垂直な参照サンプルであってもよい。
【０３７６】
現在のブロックのイントラ予測モードが垂直方向のイントラ予測モードである場合、左側の参照サンプルを使用して第２予測サンプルを取得することができる。この場合、左側の参照サンプルは、第１予測サンプルに水平な参照サンプルであってもよい。
【０３７７】
現在のブロックのイントラ予測モードが左下対角方向又は右上対角方向のイントラ予測モードである場合、左上参照サンプル、上部の参照サンプル及び左側の参照サンプルに基づいて第２予測サンプルを取得することができる。左上参照サンプルは、現在のブロックの左上コーナーに隣接する参照サンプル（例えば、位置（−１，−１）にある参照サンプル）であってもよい。上部の参照サンプルは、第１予測サンプルの右上対角方向に位置する参照サンプルであり、左側の参照サンプルは、第１予測サンプルの左下対角方向に位置する参照サンプルであってもよい。
【０３７８】
要約すると、第１予測サンプルの位置が（ｘ，ｙ）である場合、Ｒ（−１，−１）を左上の参照サンプルに設定し、Ｒ（ｘ＋ｙ＋１，−１）又はＲ（ｘ，−１）を上部の参照サンプルに設定することができる。また、Ｒ（−１，ｘ＋ｙ＋１）又はＲ（−１，ｙ）を左側の参照サンプルに設定することができる。
【０３７９】
別の例として、現在のブロックの形状又は広角イントラモードが適用されているかどうかのうちの少なくとも１つを考慮して、左側の参照サンプル又は上部の参照サンプルの位置を決定することができる。
【０３８０】
具体的に、現在のブロックのイントラ予測モードが広角イントラ予測モードである場合、第１予測サンプルの対角方向に位置する参照サンプルからオフセットだけ離間された参照サンプルをＰＤＰＣ参照サンプルに設定することができる。一例として、上部の参照サンプルＲ（ｘ＋ｙ＋ｋ＋１，−１）及び左側の参照サンプルＲ（−１，ｘ＋ｙ−ｋ＋１）をＰＤＰＣ参照サンプルに設定することができる。
【０３８１】
この場合、広角イントラ予測モードに基づいてオフセットｋを決定することができる。式９及び式１０は、広角イントラ予測モードに基づくオフセットを導出する例を示す。
【０３８２】
【数９】
2022501897.tif 000020
【０３８３】
【数１０】
2022501897.tif 000021
【０３８４】
第１予測サンプルとＰＤＰＣ参照サンプルとの間の加重和演算に基づいて第２予測サンプルを決定することができる。一例として、以下の式１１に基づいて第２予測サンプルを取得することができる。
【０３８５】
【数１１】
2022501897.tif 000022
【０３８６】
式１１では、ＲＬは、左側の参照サンプルを表し、ＲＴは、上部の参照サンプルを表し、ＲＴＬは、左上参照サンプルを表す。Ｐｒｅｄ（ｘ，ｙ）は、（ｘ，ｙ）位置の予測サンプルを表す。ｗＬは、左側の参照サンプルに付与される重み値を表し、ｗＴは、上部の参照サンプルに付与される重み値を表し、ｗＴＬは、左上参照サンプルに付与される重み値を表す。第１予測サンプルに付与される重み値は、最大値から参照サンプルに付与される重み値を差し引いくことにより導出されることができる。説明の便宜上、ＰＤＰＣ参照サンプルに割り当てられる重み値をＰＤＰＣ重み値と称することにする。
【０３８７】
現在のブロックのイントラ予測モード又は第１予測サンプルの位置のうちの少なくとも１つに基づいて、各参照サンプルに割り当てられる重み値を決定することができる。
【０３８８】
一例として、ｗＬ、ｗＴ又はｗＴＬのうちの少なくとも１つは、予測サンプルのｘ軸座標値又はｙ軸座標値のうちの少なくとも１つと比例または反比例の関係にあることができる。又は、ｗＬ、ｗＴ又はｗＴＬのうちの少なくとも１つは、現在のブロックの幅又は高さのうちの少なくとも１つと比例または反比例の関係にあることができる。
【０３８９】
現在のブロックのイントラ予測モードがＤＣである場合、ＰＤＰＣ重み値を以下の式１２で決定することができる。
【０３９０】
【数１２】
2022501897.tif 000023
【０３９１】
式１２では、ｘ及びｙは、第１予測サンプルの位置を表す。
【０３９２】
式１２では、現在のブロックの幅又は高さに基づいて、ビットシフト演算に使用される変数ｓｈｉｆｔを導出することができる。一例として、以下の式１３又は式１４に基づいて、変数ｓｈｉｆｔを導出することができる。
【０３９３】
【数１３】
2022501897.tif 000024
【０３９４】
【数１４】
2022501897.tif 000025
【０３９５】
又は、現在のブロックのイントラ方向パラメータを考慮して、変数ｓｈｉｆｔを導出することもできる。
【０３９６】
現在のブロックのイントラ予測モードに従って、変数ｓｈｉｆｔを導出するために使用されるパラメータの数又は種類を異なるように決定することができる。一例として、現在のブロックのイントラ予測モードがプランナー、ＤＣ、垂直方向又は水平方向である場合、式１３又は式１４に示された例のように、現在のブロックの幅及び高さを使用して変数ｓｈｉｆｔを導出することができる。現在のブロックのイントラ予測モードが垂直方向のイントラ予測モードより大きいインデックスを有するイントラ予測モードである場合、現在のブロックの高さ及びイントラ方向パラメータを使用して変数ｓｈｉｆｔを導出することができる。現在のブロックのイントラ予測モードが水平方向のイントラ予測モードより小さいインデックスを有するイントラ予測モードである場合、現在のブロックの幅及びイントラ方向パラメータを使用して変数ｓｈｉｆｔを導出することができる。
【０３９７】
現在のブロックのイントラ予測モードがプランナーである場合、ｗＴＬの値を０に設定することができる。以下の式１５に基づいて、ｗＬ及びｗＴを導出することができる。
【０３９８】
【数１５】
2022501897.tif 000026
【０３９９】
現在のブロックのイントラ予測モードが水平方向のイントラ予測モードである場合、ｗＴを０に設定し、ｗＴＬとｗＬを同一に設定することができる。もう一方では、現在のブロックのイントラ予測モードが垂直方向のイントラ予測モードである場合、ｗＬを０に設定し、ｗＴＬとｗＴを同一に設定することができる。
【０４００】
現在のブロックのイントラ予測モードが、右上方向に向く、垂直方向のイントラ予測モードより大きいインデックス値を有するイントラ予測モードである場合、以下の式１６のようにＰＤＰＣ重み値を導出することができる。
【０４０１】
【数１６】
2022501897.tif 000027
【０４０２】
もう一方では、現在のブロックのイントラ予測モードが、左下方向に向く、水平方向のイントラ予測モードより小さいインデックス値を有するイントラ予測モードである場合、以下の式１７のようにＰＤＰＣ重み値を導出することができる。
【０４０３】
【数１７】
2022501897.tif 000028
【０４０４】
上記の実施例のように、予測サンプルの位置ｘ及びｙに基づいて、ＰＤＰＣ重み値を決定することができる。
【０４０５】
別の例として、サブブロック単位でＰＤＰＣ参照サンプルのそれぞれに割り当てられる重み値を決定することもできる。サブブロックに含まれた予測サンプルは、同じＰＤＰＣ重み値を共有することができる。
【０４０６】
重み値を決定するための基本単位であるサブブロックのサイズは、符号化器及び復号化器によって事前に定義されたものである可能性がある。一例として、２ｘ２サイズ又は４ｘ４サイズのサブブロックのそれぞれについて重み値を決定することができる。
【０４０７】
又は、現在のブロックのサイズ又は形状に従って、サブブロックのサイズ、形状又は数を決定することができる。一例として、符号化ブロックのサイズとは関係なく、符号化ブロックを４つのサブブロックに分割することができる。又は、符号化ブロックのサイズに従って、符号化ブロックを４つ又は１６つのサブブロックに分割することができる。
【０４０８】
又は、現在のブロックのイントラ予測モードに基づいて、サブブロックのサイズ、形状又は数を決定することもできる。一例として、現在のブロックのイントラ予測モードが水平方向である場合には、Ｎ個の列（又はＮ個の行）を１つのサブブロックに設定する一方で、現在のブロックのイントラ予測モードが垂直方向である場合には、Ｎ個の行（又はＮ個の列）を１つのサブブロックに設定することができる。
【０４０９】
式１８ないし２０は、２ｘ２サイズのサブブロックに対するＰＤＰＣ重み値を決定する例を示す。式１８は、現在のブロックのイントラ予測モードがＤＣモードである場合を示す。
【０４１０】
【数１８】
2022501897.tif 000029
【０４１１】
式１８では、Ｋは、サブブロックのサイズに基づいて決定されることができる。
【０４１２】
式１９は、現在のブロックのイントラ予測モードが、右上方向に向く、垂直方向のイントラ予測モードより大きいインデックス値を有する、イントラ予測モードである場合を示す。
【０４１３】
【数１９】
2022501897.tif 000030
【０４１４】
式２０は、現在のブロックのイントラ予測モードが、左下方向に向く、水平方向のイントラ予測モードより小さいインデックス値を有する、イントラ予測モードである場合を示す。
【０４１５】
【数２０】
2022501897.tif 000031
【０４１６】
式１８ないし２０では、ｘ及びｙは、サブブロック内の基準サンプルの位置を表す。基準サンプルは、サブブロックの左上に位置するサンプル、サブブロックの中央に位置するサンプル、又はサブブロックの右下に位置するサンプルのいずれか１つであってもよい。
【０４１７】
式２１ないし２３は、４ｘ４サイズのサブブロックに対するＰＤＰＣ重み値を決定する例を示す。式２１は、現在のブロックのイントラ予測モードがＤＣモードである場合を示す。
【０４１８】
【数２１】
2022501897.tif 000032
【０４１９】
式２２は、現在のブロックのイントラ予測モードが、右上方向に向く、垂直方向のイントラ予測モードより大きいインデックス値を有する、イントラ予測モードである場合を示す。
【０４２０】
【数２２】
2022501897.tif 000033
【０４２１】
式２３は、現在のブロックのイントラ予測モードが、左下方向に向く、水平方向のイントラ予測モードより小さいインデックス値を有する、イントラ予測モードである場合を示す。
【０４２２】
【数２３】
2022501897.tif 000034
【０４２３】
上記の実施例では、第１予測サンプル又はサブブロックに含まれた予測サンプルの位置を考慮して、ＰＤＰＣ重み値を決定することを説明した。現在のブロックの形状をより考慮して、ＰＤＰＣ重み値を決定することもできる。
【０４２４】
一例として、ＤＣモードの場合、現在のブロックが、幅が高さよりも大きい非正方形であるか、高さが幅よりも大きい非正方形であるかに従って、ＰＤＰＣ重み値の導出方法が異なる可能性がある。
【０４２５】
式２４は、現在のブロックが幅が高さよりも大きい非正方形である場合、ＰＤＰＣ重み値を導出する例を示し、式２５は、現在のブロックが、高さが幅よりも大きい非正方形である場合、ＰＤＰＣ重み値を導出する例を示す。
【０４２６】
【数２４】
2022501897.tif 000035
【０４２７】
【数２５】
2022501897.tif 000036
【０４２８】
現在のブロックが非正方形である場合、広角イントラ予測モードを使用して現在のブロックを予測することができる。このように、広角イントラ予測モードが適用された場合にも、ＰＤＰＣを適用して第１予測サンプルを更新することができる。
【０４２９】
現在のブロックが広角イントラ予測を適用した場合、符号化ブロックの形状を考慮して、ＰＤＰＣ重み値を決定することができる。
【０４３０】
一例として、現在のブロックが幅が高さよりも大きい非正方形である場合、第１予測サンプルの位置に従って、第１予測サンプルの左下に位置する左側の参照サンプルよりも、第１予測サンプルの右上に位置する上部の参照サンプルが第１予測サンプルにより近い場合が発生する可能性がある。これにより、第１予測サンプルを補正するとき、上部の参照サンプルに適用される重み値が左側の参照サンプルに適用される重み値より大きい値を有するように設定することができる。
【０４３１】
もう一方では、現在のブロックが高さが幅より大きい非正方形である場合、第１予測サンプルの位置に従って、第１予測サンプルの右上に位置する上部の参照サンプルよりも、第１予測サンプルの左下に位置する左側の参照サンプルが第１予測サンプルにより近い場合が発生する可能性がある。これにより、第１予測サンプルを補正するとき、左側の参照サンプルに適用される重み値が上部の参照サンプルに適用される重み値より大きい値を有するように設定することができる。
【０４３２】
式２６は、現在のブロックのイントラ予測モードがインデックスが６６より大きい広角イントラ予測モードである場合、ＰＤＰＣ重み値を導出する例を示す。
【０４３３】
【数２６】
2022501897.tif 000037
【０４３４】
式２７は、現在のブロックのイントラ予測モードがインデックスが０より小さい広角イントラ予測モードである場合、ＰＤＰＣ重み値を導出する例を示す。
【０４３５】
【数２７】
2022501897.tif 000038
【０４３６】
現在のブロックの比率に基づいて、ＰＤＰＣ重み値を決定することもできる。現在のブロックの比率は、現在のブロックの幅と高さの比率を示し、以下の式２８のように定義されることができる。
【０４３７】
【数２８】
2022501897.tif 000039
【０４３８】
現在のブロックのイントラ予測モードに従って、ＰＤＰＣ重み値を導出する方法を可変的に決定することができる。
【０４３９】
一例として、式２９及び式３０は、現在のブロックのイントラ予測モードがＤＣである場合、ＰＤＰＣ重み値を導出する例を示す。具体的に、式２９は、現在のブロックが幅が高さよりも大きい非正方形である場合の例であり、式３０は、現在のブロックが高さが幅よりも大きい非正方形である場合の例である。
【０４４０】
【数２９】
2022501897.tif 000040
【０４４１】
【数３０】
2022501897.tif 000041
【０４４２】
式３１は、現在のブロックのイントラ予測モードがインデックスが６６より大きい広角イントラ予測モードである場合、ＰＤＰＣ重み値を導出する例を示す。
【０４４３】
【数３１】
2022501897.tif 000042
【０４４４】
式３２は、現在のブロックのイントラ予測モードがインデックスが０より小さい広角イントラ予測モードである場合、ＰＤＰＣ重み値を導出する例を示す。
【０４４５】
【数３２】
2022501897.tif 000043
【０４４６】
現在のブロックに１つの予測モードを複数回適用するか、複数の予測モードを重複して適用することができる。このように、同じ種類又は異なる種類の予測モードを使用した予測方法を組み合わせ予測モード（又は、マルチ仮説予測モデル（Ｍｕｌｔｉ−ｈｙｐｏｔｈｅｓｉｓ  Ｐｒｅｄｉｃｔｉｏｎ  Ｍｏｄｅ））と称することができる。
【０４４７】
ビットストリームを介して、現在のブロックが組み合わせ予測モードを適用するかどうかを表す情報をシグナリングすることができる。一例として、前記情報は、１ビットのフラグであってもよい。
【０４４８】
組み合わせ予測モードは、第１予測モードに基づいて第１予測ブロックを生成し、第２予測モードに基づいて第２予測ブロックを生成することができる。そして、第１予測ブロックと第２予測ブロックの加重和演算に基づいて第３予測ブロックを生成することができる。第３予測ブロックを現在のブロックの最終的な予測ブロックに設定することができる。
【０４４９】
組み合わせ予測モードは、マージモードとマージモードを組み合わせたモード、インター予測とイントラ予測を組み合わせたモード、マージモードとモーションベクトル予測モードを組み合わせたモード又はマージモードとイントラ予測を組み合わせたモードのうちの少なくとも１つを含み得る。
【０４５０】
マージモードとマージモードを組み合わせたモードは、複数のマージ候補を使用して動き補償予測を実行することができる。具体的に、第１マージ候補を使用して第１予測ブロックを生成し、第２マージ候補を使用して第２予測ブロックを生成することができる。第１予測ブロックと第２予測ブロックの加重和演算に基づいて、第３予測ブロックを生成することができる。
【０４５１】
ビットストリームを介して、第１マージ候補及び第２マージ候補を特定するための情報をそれぞれシグナリングすることができる。一例として、ビットストリームを介して、第１マージ候補を特定するためのインデックス情報ｍｅｒｇｅ＿ｉｄｘ及び第２マージ候補を特定するためのインデックス情報ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘをシグナリングすることができる。インデックス情報ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘ及びインデックス情報ｍｅｒｇｅ＿ｉｄｘに基づいて、第２マージ候補を決定することができる。
【０４５２】
インデックス情報ｍｅｒｇｅ＿ｉｄｘは、マージ候補リストに含まれたマージ候補のうちのいずれか１つを特定する。
【０４５３】
インデックス情報ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘは、ｍｅｒｇｅ＿ｉｄｘによって特定されたマージ候補を除く残りのマージ候補のうちのいずれか１つを特定することができる。これにより、ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘの値がｍｅｒｇｅ＿ｉｄｘより小さい場合、インデックスがｍｅｒｇｅ＿２ｎｄ＿ｉｄｘの値であるマージ候補を第２マージ候補として設定することができる。ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘの値がｍｅｒｇｅ＿ｉｄｘの値より大きいか等しい場合、ｍｅｒｇｅ＿２ｎｄ＿ｉｄｘの値に１を加えた値をインデックスとして持つマージ候補を第２マージ候補として設定することができる。
【０４５４】
又は、候補ブロックの捜索順序を考慮して、第２マージ候補を特定することができる。
【０４５５】
図３７は、候補ブロックの探索順序を考慮して、第２マージ候補を特定する例を示す。
【０４５６】
図３７に示された例では、隣接サンプル及び非隣接サンプルに表記されているインデックスは、候補ブロックの捜索順序を示す。一例として、Ａ０位置からＡ１４位置まで順次に候補ブロックを捜索することができる。
【０４５７】
Ａ４ブロックが第１マージ候補として選択された場合、捜索順序がＡ４の次である候補ブロックから導出されたマージ候補を第２マージ候補として特定することができる。一例として、Ａ５から導出されたマージ候補を第２マージ候補として選択することができる。Ａ５位置の候補ブロックがマージ候補として利用不可能である場合、次順位の候補ブロックから導出されたマージ候補を第２マージ候補として選択することができる。
【０４５８】
非隣接ブロックから導出されたマージ候補の中から第１マージ候補及び第２マージ候補を選択することもできる。
【０４５９】
図３８は、非隣接ブロックから導出されたマージ候補のうちから第１マージ候補及び第２マージ候補が選択された例を示す図面である。
【０４６０】
図３８に示された例のように、現在のブロックに隣接しない第１候補ブロック及び第２候補ブロックから導出されたマージ候補をそれぞれ第１マージ候補及び第２マージ候補として選択することができる。この場合、第１候補ブロックが属するブロックラインと第２候補ブロックが属するブロックラインは、異なる可能性がある。一例として、第１マージ候補は、Ａ５ないしＡ１０のいずれか１つの候補ブロックから導出され、第２マージ候補は、Ａ１１ないしＡ１５のいずれか１つの候補ブロックから導出されることができる。
【０４６１】
又は、第１候補ブロックと第２候補ブロックが同じライン（例えば、行又は列）に含まれないように設定することができる。
【０４６２】
別の例として、第１マージ候補に基づいて第２マージ候補を特定することができる。この場合、第１マージ候補は、ビットストリームからシグナリングされるインデックス情報ｍｅｒｇｅ＿ｉｄｘによって特定されることができる。一例として、第１マージ候補に隣接するマージ候補を第２マージ候補として特定することができる。ここで、第１マージ候補に隣接するマージ候補は、第１マージ候補とのインデックス差分値が１であるマージ候補を意味することができる。一例として、インデックス値がｍｅｒｇｅ＿ｉｄｘ＋１であるマージ候補を第２マージ候補として設定することができる。この場合、ｍｅｒｇｅ＿ｉｄｘ＋１の値が最大インデックス値より大きい場合（又は、第１マージ候補のインデックス値が最大インデックスである場合）、インデックス値がｍｅｒｇｅ＿ｉｄｘ−１であるマージ候補又はインデックス値が事前に定義された値（例えば、０）であるマージ候補を第２マージ候補として設定することができる。
【０４６３】
又は、第１マージ候補に隣接するマージ候補は、第１マージ候補を導出するために使用される候補ブロックに空間的に隣接する候補ブロックから導出されたマージ候補を意味することができる。ここで、候補ブロックの隣接候補ブロックは、候補ブロックの左側、右側、上部、下部又は対角方向に隣接するブロックを意味することができる。
【０４６４】
別の例として、第１マージ候補の動き情報に基づいて、第２マージ候補を特定することができる。一例として、第１マージ候補及び参照画像が同じであるマージ候補を第２マージ候補として選択することができる。第１マージ候補及び、参照画像が同じであるマージ候補が複数存在する場合、複数のマージ候補のうち、最も小さいインデックスを有するマージ候補又は第１マージ候補及びインデックス差分が最も小さいマージ候補を第２マージ候補として選択することができる。又は、複数のマージ候補のうちのいずれか１つを特定するインデックス情報に基づいて第２マージ候補を選択することができる。
【０４６５】
又は、第１マージ候補が第１方向の一方向予測である場合、第２方向に対する動き情報を含むマージ候補を第２マージ候補として設定することができる。一例として、第１マージ候補がＬ０方向の動き情報を有する場合、Ｌ１方向の動き情報を有するマージ候補を第２マージ候補として選択することができる。Ｌ１方向の動き情報を有するマージ候補が複数存在する場合、複数のマージ候補のうち最も小さいインデックスを有するマージ候補又は第１マージ候補のインデックス差分が最も小さいマージ候補を第２マージ候補として設定することができる。又は、複数のマージ候補のうちのいずれか１つを特定するインデックス情報に基づいて第２マージ候補を選択することができる。
【０４６６】
別の例として、現在のブロックに隣接する隣接ブロックから導出されたマージ候補のうちの１つを第１マージ候補として設定し、現在のブロックに隣接しない非隣接ブロックから導出されたマージ候補のうちの１つを第２マージ候補として設定することができる。
【０４６７】
別の例として、現在のブロックの上部に位置する候補ブロックから導出されたマージ候補のうちの１つを第１マージ候補として設定し、左側に位置する候補ブロックから導出されたマージ候補のうちの１つを第２マージ候補として設定することができる。
【０４６８】
第１マージ候補から導出された第１予測ブロックと、第２マージ候補に基づいて導出された第２予測ブロックの加重和演算により組み合わせ予測ブロックを取得することができる。この場合、第１予測ブロックに適用される重み値を第２予測ブロックに適用される重み値より大きい値に設定することができる。
【０４６９】
又は、第１マージ候補の動き情報及び第２マージ候補の動き情報に基づいて、重み値を決定することができる。一例として、参照画像と現在の画像の間の出力順の差に基づいて、第１予測ブロック及び第２予測ブロックに適用される重み値を決定することができる。具体的に、参照画像と現在の画像の間の出力順の差が大きいほど、予測ブロックに適用される重み値をより小さい値に設定することができる。
【０４７０】
又は、第１マージ候補を導出するために使用された候補ブロック（以下、第１候補ブロックと呼ぶ）と第２マージ候補を導出するために使用された候補ブロック（以下、第２候補ブロックと呼ぶ）のサイズ又は形状を考慮して、第１予測ブロック及び第２予測ブロックに適用される重み値を決定することができる。一例として、第１候補ブロック及び第２候補ブロックのうち、現在のブロックと類似した形状を有することから導出された予測ブロックに適用される重み値を大きな値に設定することができる。もう一方では、現在のブロックと類似しない形状を有することから導出された予測ブロックに適用される重み値を小さい値に設定することができる。
【０４７１】
図３９は、候補ブロックの形態に基づいて予測ブロックに適用される重み値が決定される例を示す図面である。
【０４７２】
現在のブロックが幅が高さより大きい非正方形であると仮定する。
【０４７３】
第１マージ候補及び第２マージ候補に基づいて、第１予測ブロック及び第２予測ブロックを導出し、第１予測ブロック及び第２予測ブロックの加重和演算に基づいて、組み合わせ予測ブロックを生成することができる。この場合、第１候補ブロック及び第２候補ブロックの形状に基づいて、第１予測ブロック及び第２予測ブロックに適用される重み値を決定することができる。
【０４７４】
一例として、図３９に示された例では、第１候補ブロックは正方形であり、第２候補ブロックは、幅が高さより大きい非正方形である。第２候補ブロックの形状が現在のブロックと同じであるため、第２予測ブロックに適用される重み値が、第１予測ブロックに適用される重み値より大きい値を有するように設定することができる。一例として、第２予測ブロックには５／８の重み値を適用し、第１予測ブロックには３／８の重み値を適用することができる。式３３は、第１予測ブロック及び第２予測ブロックの加重和演算に基づいて組み合わせ予測ブロックを導出する例を示す。
【０４７５】
【数３３】
2022501897.tif 000044
【０４７６】
Ｐ（ｘ，ｙ）は、組み合わせ予測ブロックを表し、Ｐ１（ｘ，ｙ）は、第１予測ブロックを表し、Ｐ２（ｘ，ｙ）は、第２予測ブロックを表す。
【０４７７】
別の例として、現在のブロックの形状に基づいて、第１予測ブロック及び第２予測ブロックに適用される重み値を決定することができる。一例として、現在のブロックが幅が高さより大きい非正方形である場合、第１マージ候補及び第２マージ候補のうち、現在のブロックの上部に位置する候補ブロックに基づいて導出されたものに基づいて生成された予測ブロックにより大きい重み値を適用させることができる。第１マージ候補及び第２マージ候補が両方とも上部に位置する候補ブロックから導出された場合、第１予測ブロック及び第２予測ブロックに適用される重み値を同じように設定することができる。もう一方では、現在のブロックが高さが幅より大きい非正方形である場合、第１マージ候補及び第２マージ候補のうち、現在のブロックの左側に位置する候補ブロックに基づいて導出されたものに基づいて生成された予測ブロックにより大きい重み値を適用させることができる。第１マージ候補及び第２マージ候補が両方とも左側に位置する候補ブロックから導出された場合、第１予測ブロック及び第２予測ブロックに適用される重み値を同じように設定することができる。現在のブロックが正方形である場合、第１予測ブロック及び第２予測ブロックに適用される重み値を同じように設定することができる。
【０４７８】
別の例として、現在のブロックと候補ブロックの距離に基づいて、各予測ブロックに適用される重み値を決定することができる。ここで、距離は、現在のブロックとのｘ軸座標差分、ｙ軸座標差分又はこれらのうちの最小値に基づいて導出されることができる。現在のブロックとの距離が小さいマージ候補から導出された予測ブロックに適用される重み値が、現在のブロックとの距離が大きいマージ候補から導出された予測ブロックに適用される重み値より大きい値を有するように設定することができる。一例として、図３７に示された例では、第１マージ候補は、現在のブロックに隣接する隣接ブロックから導出され、第２マージ候補が現在のブロックに隣接しない非隣接ブロックから導出される。この場合、第１候補ブロックと現在のブロックとの間のｘ軸距離が第２候補ブロックと現在のブロックとの間のｘ軸距離より小さいため、第１予測ブロックに適用される重み値が第２予測ブロックに適用される重み値よりも大きい値を有するよいに設定することができる。
【０４７９】
又は、第１マージ候補及び第２マージ候補が両方とも非隣接ブロックから導出された場合、非隣接ブロックのうち、現在のブロックとの距離がより近い方から導出された予測ブロックにより大きい重み値を割り当てることができる。一例として、図３８に示された例では、第１候補ブロックと現在のブロックとの間のｙ軸距離が第２候補ブロックと現在のブロックとの間のｙ軸距離より小さいため、第１予測ブロックに適用される重み値が、第２予測ブロックに適用される重み値よりも大きい値を有するように設定することができる。
【０４８０】
上記のマージモードとマージモードを組み合わせた組み合わせ予測モードにおいて、マージモードは、並進モーションモデルに基づくマージモード（以下、並進マージモードと呼ぶ）又はアフィンモーションモデルに基づくマージモード（以下、アフィンマージモードと呼ぶ）を意味することができる。即ち、並進マージモードと並進マージモードを組み合わせるか、アフィンマージモードとアフィンマージモードを組み合わせて動き補償予測を実行することができる。
【０４８１】
一例として、第１マージ候補がアフィンマージ候補である場合、第２マージ候補もアフィンマージ候補として設定することができる。ここで、アフィンマージ候補は、基準候補を含むブロックの動きベクトルがアフィンモーションベクトルである場合を示す。第２マージ候補は、上記の様々な実施例におって特定されることができる。一例として、第２マージ候補は、第１マージ候補の隣接マージ候補として設定されることができる。この場合、第１マージ候補に隣接するマージ候補がアフィンモーションモデルとして符号化されない場合、前記マージ候補の代わりにアフィンモーションモデルで符号化されたマージ候補を第２マージ候補として設定することができる。
【０４８２】
逆に、第１マージ候補がノンアファインマージ候補である場合、第２マージ候補もノンアファインマージ候補として設定することができる。この場合、第１マージ候補に隣接するマージ候補がアフィンモーションモデルで符号化された場合、前記マージ候補の代わりに並進モーションモデルで符号化されたマージ候補を第２マージ候補として設定することができる。
【０４８３】
図４０は、アフィンマージ候補の代わりにノンアファインマージ候補を第２マージ候補として設定する例を示す図面である。
【０４８４】
ｍｅｒｇｅ＿ｉｄｘを介して位置Ａ１にあるマージ候補が第１マージ候補として特定されると、インデックス値が第１マージ候補より１大きいマージ候補Ａ２を第２マージ候補として選択することができる。この場合、第１マージ候補はノンアファインマージ候補であるが、第２マージ候補はアフィンマージ候補である場合、第２マージ候補を再設定することができる。一例として、ｍｅｒｇｅ＿ｉｄｘ＋１より大きいインデックスを有するマージ候補のうち、ｍｅｒｇｅ＿ｉｄｘ＋１との差分値がより小さいノンアファインマージ候補を第２マージ候補として再設定することができる。一例として、図１８に示された例では、インデックスがｍｅｒｇｅ＿ｉｄｘ＋２であるマージ候補Ａ３を第２マージ候補として設定することを示す。
【０４８５】
別の例として、並進マージモードとアフィンマージモードを組み合わせて動き補償予測を実行することができる。即ち、第１マージ候補又は第２マージ候補のうちの１つは、アフィンマージ候補であり、もう１つは、ノンアファインマージ候補であり得る。
【０４８６】
第１マージ候補及び第２マージ候補に基づいて統合された動き情報を導出し、統合された動き情報に基づいて、現在のブロックに対する動き補償予測を実行することもできる。一例として、第１マージ候補のモーションベクトル間の第２マージ候補のモーションベクトルの平均演算又は加重和演算に基づいて現在のブロックの動きベクトルを導出することができる。この場合、第１マージ候補のモーションベクトルに適用される重み値及び第２マージ候補のモーションベクトルに適用される重み値は、上記の実施例によって決定されることができる。
【０４８７】
第１マージ候補がノンアファインマージ候補であり、第２アフィンマージ候補がアフィンマージ候補である場合、第２マージ候補のモーションベクトルをスケーリングすることにより現在のブロックの動きベクトルを導出することができる。式３４は、現在のブロックの動きベクトルを導出する例を示す。
【０４８８】
【数３４】
2022501897.tif 000045
【０４８９】
式３４では、（ｍｖＸ，ｍｖＹ）は、現在のブロックの動きベクトルを表し、（ｍｖ０ｘ，ｍｖ０ｙ）は、第１マージ候補の動きベクトルを表し、（ｍｖ１ｘ，ｍｖ１ｙ）は、第２マージ候補の動きベクトルを表す。Ｍは、スケーリングパラメータを表す。Ｍは、符号化器及び復号化器で事前に定義されることができる。又は、現在のブロック又は候補ブロックのサイズに従って、スケーリングパラメータＭの値を決定することができる。一例として、第２候補ブロックの幅又は高さが３２より大きい場合には、Ｍを３に設定し、そう以外のない場合には、Ｍを２に設定することができる。
【０４９０】
マージモードとモーションベクトル予測モードを組み合わせされた予測モードでは、マージ候補から導出された動き情報を使用して第１予測ブロックを生成し、モーションベクトル予測候補から導出されたモーションベクトルを使用して第２予測ブロックを生成することができる。
【０４９１】
モーションベクトル予測モードでは、現在のブロックに隣接する隣接ブロック又は同位置画像内の同位置ブロックから動きベクトル予測候補を導出することができる。その後、複数の動きベクトル予測候補のうちのいずれか１つを特定し、特定された動きベクトル予測候補を現在のブロックの動きベクトル予測値に設定することができる。その後、現在のブロックの動きベクトル予測値と動きベクトル差分値を加算して現在のブロックの動きベクトルを導出することができる。
【０４９２】
マージモードとモーションベクトル予測モードを組み合わせされた予測モードでは、同じ候補ブロックからマージ候補及び動きベクトル予測候補を導出することができる。一例として、ｍｅｒｇｅ＿ｉｄｘを介してマージ候補を特定すると、特定されたマージ候補を導出するために使用された候補ブロックの動きベクトルを動きベクトル予測値に設定することができる。又は、ｍｖｐ＿ｆｌａｇを介して動きベクトル予測候補を特定すると、特定されたマージ候補を導出するために使用された候補ブロックから導出されたマージ候補を選択することができる。
【０４９３】
又は、マージ候補を導出するために使用された候補ブロックとモーションベクトル予測候補を導出するために使用された候補ブロックが異なる可能性がある。一例として、現在のブロックの上部に位置する候補ブロックから導出されたマージ候補を選択すると、現在のブロックの左側に位置する候補ブロックから導出されたモーションベクトル予測候補を選択するように設定することができる。
【０４９４】
又は、インデックス情報によって選択されたマージ候補及びインデックス情報によって選択されたモーションベクトル予測候補が同じ候補ブロックから導出されたものである場合、前記モーションベクトル予測候補を前記候補ブロックに隣接する候補ブロックから導出されたモーションベクトル予測候補に置き換えるか、前記マージ候補を前記候補ブロックに隣接する候補ブロックから導出されたマージ候補に置き換えることができる。
【０４９５】
図４１は、マージ候補が置換される例を示す図面である。
【０４９６】
図４１の（ａ）に示された例では、位置Ａ２にある候補ブロックから導出されたマージ候補及びモーションベクトル予測候補が選択されていることが示されている。示されたように、マージ候補及びモーションベクトル予測候補が同じ候補ブロックから導出された場合、前記マージ候補又は前記モーションベクトル予測候補の代わりに、前記候補ブロックに隣接する候補ブロックから導出されたマージ候補又はモーションベクトル予測候補を使用することができる。一例として、図４１の（ｂ）に示された例のように、位置Ａ２にあるマージ候補の代わりに位置Ａ１にあるマージ候補を使用することができる。
【０４９７】
現在のブロックのマージ候補に基づいて、第１予測ブロックを導出し、動きベクトル予測候補に基づいて、第２予測ブロックを導出することができる。その後、第１予測ブロックと第２予測ブロックの加重和演算により、組み合わせ予測ブロックを導出することができる。この場合、マージモードで生成された第１予測ブロックに適用される重み値より大きい値を有するようにモーションベクトル予測モードで生成された第２予測ブロックに適用される重み値を設定することができる。
【０４９８】
元の映像から予測映像を差分して導出された残差映像を導出することができる。この場合、残差映像を周波数ドメインに変更したとき、周波数成分のうち、高周波成分を除去しても、映像の主観的画質は大きく落ちない。これにより、高周波成分の値を小さく変換したり、高周波成分の値を０に設定すると、視覚的歪みが大きく発生していないながらも、圧縮効率を向上させることができる効果がある。上記の特性を反映して、残差映像を２次元周波数成分に分解するために、現在のブロックを変換することができる。前記変換は、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）又は離散サイン変換（ＤＳＴ：Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｆｏｒｍ）などの変換技術を使用して実行することができる。
【０４９９】
ＤＣＴは、コサイン変換を使用して、残差映像を２次元周波数成分に分解（又は変換）し、ＤＳＴは、サイン変換を使用して、残差映像を２次元周波数成分に分解（又は変換）する。残差映像の変換結果、周波数成分を基本映像として表現することができる。一例として、ＮｘＮサイズのブロックに対してＤＣＴ変換を実行する場合、Ｎ２個の基本的なパータンの成分を取得することができる。変換を介してＮｘＮサイズのブロックに含まれた基本的なパータンの成分のそれぞれのサイズを取得することができる。使用された変換技術に従って、基本的なパータンの成分のサイズをＤＣＴ係数又はＤＳＴ係数と称することができる。
【０５００】
変換技術ＤＣＴは主に、０ではない低周波成分が多く分布する映像を変換するために使用される。変換技術ＤＳＴは主に、高周波成分が多く分布する映像に使用される。
【０５０１】
ＤＣＴ又はＤＳＴ以外の変換技術を使用して残差映像を変換することもできる。
【０５０２】
以下、残差映像を２次元周波数成分に変換することを２次元映像変換と称することができる。さらに、変換結果によって取得された基本的なパータンの成分のサイズを変換係数と称することにする。一例として、変換係数は、ＤＣＴ係数又はＤＳＴ係数を意味することができる。後述される第１変換及び第２変換が全て適用された場合、変換係数は、第２変換の結果で生成された基本的なパータンの成分のサイズを意味することができる。
【０５０３】
変換技術はブロック単位で決定されることができる。現在のブロックの予測符号化モード、現在のブロックのサイズ又は現在のブロックのサイズのうちの少なくとも１つに基づいて、変換技術を決定することができる。一例として、イントラ予測モードで現在のブロックを符号化し、現在のブロックのサイズがＮｘＮより小さい場合、変換技術ＤＳＴを使用して変換を行うことができる。もう一方では、前記条件を満たさない場合、変換技術ＤＣＴを使用して変換を行うことができる。
【０５０４】
残差映像の一部のブロックについては、２次元映像変換が実行されないこともある。２次元映像変換を実行しないことを変換スキップ（Ｔｒａｎｓｆｏｒｍ  Ｓｋｉｐ）と称することができる。変換スキップが適用された場合、変換が行われなかった残差値を対象として量子化を適用することができる。
【０５０５】
ＤＣＴ又はＤＳＴを使用して現在のブロックを変換した後、変換された現在のブロックを再変換することができる。この場合、ＤＣＴ又はＤＳＴに基づく変換を第１変換と定義し、第１変換が適用されたブロックを再変換することを第２変換と定義することができる。
【０５０６】
第１変換は、複数の変換コア候補のいずれか１つを使用して実行することができる。一例として、ＤＣＴ２、ＤＣＴ８又はＤＣＴ７のいずれか１つを使用して第１変換を実行することができる。
【０５０７】
水平方向及び垂直方向に対して異なる変換コアを使用することもできる。ビットストリームを介して、水平方向の変換コアと垂直方向の変換コアの組み合わせを示す情報をシグナリングすることもできる。
【０５０８】
第１変換と第２変換の実行単位が異なる可能性がある。一例として、８ｘ８ブロックに対して第１変換を実行し、変換された８ｘ８ブロックのうち、４ｘ４サイズのサブブロックに対して第２変換を実行することができる。この場合、第２変換が実行されていない残りの領域の変換係数を０に設定することもできる。
【０５０９】
又は、４ｘ４ブロックに対して第１変換を実行し、変換された４ｘ４ブロックを含む８ｘ８サイズの領域に対して第２変換を実行することもできる。
【０５１０】
ビットストリームを介して、第２変換を実行しかどうかを表す情報をシグナリングすることができる。
【０５１１】
復号化器は、第２変換の逆変換（第２逆変換）を実行し、その実行結果に、第１変換の逆変換（第１逆変換）を実行することができる。前記第２逆変換及び第１逆変換の実行結果として、現在のブロックに対する残差信号を取得することができる。
【０５１２】
量子化は、ブロックのエナジーを減らすためであり、量子化プロセスは、変換係数を特定の定数で除算するプロセスを含む。前記定数は、量子化パラメータによって導出されてもよく、量子化パラメータは、１から６３の間の値として定義されることができる。
【０５１３】
符号化器で変換及び量子化を行うと、復号化器は、逆量子化及び逆変換を介して残差ブロックを取得することができる。復号化器では、予測ブロックと残差ブロックを加算して、現在のブロックに対する再構成ブロックを取得することができる。
【０５１４】
現在のブロックの再構成ブロックを取得すると、インループフィルタリング（Ｉｎ−ｌｏｏｐ  ｆｉｌｔｅｒｉｎｇ）を介して量子化及び符号化中に発生する情報の損失を減らすことができる。インループフィルタは、デブロッキングフィルタ（Ｄｅｂｌｏｃｋｉｎｇ  ｆｉｌｔｅｒ）、サンプル適応オフセットフィルタ（ＳＡＯ：Ｓａｍｐｌｅ  Ａｄａｐｔｉｖｅ  Ｏｆｆｓｅｔ  ｆｉｌｔｅｒ）又は適応ループフィルタ（ＡＬＦ：Ａｄａｐｔｉｖｅ  Ｌｏｏｐ  Ｆｉｌｔｅｒ）のうちの少なくとも１つを含み得る。以下、インループフィルタが適用される前の再構成ブロックを第１再構成ブロックと呼称し、インループフィルタが適用された後の再構成ブロックを第２再構成ブロックと称することにする。
【０５１５】
デブロッキングフィルタ、ＳＡＯ又はＡＬＦのうちの少なくとも１つを第１再構成ブロックに適用して第２再構成ブロックを取得することができる。この場合、ＳＡＯ又はＡＬＦは、デブロッキングフィルタが適用された後に適用されることができる。
【０５１６】
デブロッキングフィルタは、ブロック単位で量子化を行うことにより発生される、境界におけるブロックの画質劣化（Ｂｌｏｃｋｉｎｇ  Ａｒｔｉｆａｃｔ）を緩和させるためのものである。デブロッキングフィルタを適用するために、第１再構成ブロックと、隣接する再構成ブロックとの間のブロック強度（ＢＳ：Ｂｌｏｃｋｉｎｇ  Ｓｔｒｅｎｇｔｈ）を決定することができる。
【０５１７】
図４２は、ブロックの強度を決定するプロセスを示すフローチャートである。
【０５１８】
図４２に示された例では、Ｐは、第１再構成ブロックを表し、Ｑは、隣接する再構成ブロックを表す。ここで、隣接する再構成ブロックは、現在のブロックの左側又は上部に隣接することができる。
【０５１９】
図４２に示された例では、Ｐ及びＱの予測符号化モード、０ではない変換係数が含まれているかどうか、同じ参照画像を使用してインター予測されたかどうか又は動きベクトルの差分値が閾値より大きいか等しいかを考慮してブロック強度を決定することを示す。
【０５２０】
ブロック強度に基づいて、デブロッキングフィルタが適用されているかどうかを決定することができる。一例として、ブロック強度が０である場合、フィルタリングが行わないことができる。
【０５２１】
ＳＡＯは、周波数領域で量子化を行うことにより生成されるリンギング現象（Ｒｉｎｇｉｎｇ  Ａｒｔｉｆａｃｔ）を緩和させるためのものである。第１再構成映像のパータンを考量して決定されるオフセットを加算又は減算することによりＳＡＯを実行することができる。オフセットの決定方法は、エッジオフセット（ＥＯ：Ｅｄｇｅ  Ｏｆｆｓｅｔ）又はバンドオフセット（Ｂａｎｄ  Ｏｆｆｓｅｔ）を含む。ＥＯは、周辺画素のパータンに従って、現在のサンプルのオフセットを決定する方法を示す。ＢＯは、領域内で類似した輝度値を有する画素の集合に対して共通のオフセットを適用する方法を示す。具体的に、画素の明るさを３２個の均等な区間に分けて、類似した輝度を有する画素を１つの集合として設定することができる。一例として、３２個のバンドのうち、隣接する４つのバンドを１つのグループとして設定し、４つのバンドに属するサンプルに同じオフセット値を適用することができる。
【０５２２】
ＡＬＦは、事前に定義されたサイズ／形状のフィルタを第１再構成映像又はデブロッキングフィルタが適用された再構成映像に適用して第２再構成映像を生成する方法である。式３５は、ＡＬＦの適用例を示す。
【０５２３】
【数３５】
2022501897.tif 000046
【０５２４】
画像、符号化ツリーユニット、符号化ブロック、予測ブロック又は変換ブロック単位で、事前に定義されたフィルタ候補のうちのいずれか１つを選択することができる。各フィルタ候補は、サイズ又は形状のいずれか１つが異なる可能性がある。
【０５２５】
図４３は、事前に定義されたフィルタ候補を示す。
【０５２６】
図４３に示された例のように、５ｘ５、７ｘ７又は９ｘ９サイズのダイアモンド形状のうちの少なくとも１つを選択することができる。
【０５２７】
クロマ成分については、５ｘ５サイズのダイアモンド形状のみを使用することができる。
【０５２８】
復号化プロセス又は符号化プロセスを中心に説明した実施例を、符号化プロセス又は復号化プロセスに適用することは、本発明の範囲に含まれるものである。所定の順序で説明された実施例を、説明されたものと異なる順序に変更することも、本発明の範囲に含まれるものである。
【０５２９】
上記の実施例は、一連のステップ又はフローチャートに基づいて説明したが、これは、発明の時系列シーケンスを限定するものではなく、必要に応じて同時に実行するか、別の順序で実行することができる。また、上記の実施例では、ブロック図を構成する構成要素（例えば、ユニット、モジュールなど）のそれぞれは、ハードウェア装置又はソフトウェアで具現することもでき、複数の構成要素を組み合わせて１つのハードウェア装置又はソフトウェアで具現することがこともできる。上記の実施例は、様々なコンピュータ構成要素によって実行されることができるプログラム命令の形態で具現され、コンピュータ可読記憶媒体に記憶されることができる。前記コンピュータ可読記憶媒体は、プログラム命令、データファイル、データ構造などを独立又は組み合わせて含むことができる。コンピュータ可読記憶媒体の例は、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤなどの光記憶媒体、プティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）などの磁気‐光媒体（ｍａｇｎｅｔｏ−ｏｐｔｉｃａｌ  ｍｅｄｉａ）、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのプログラム命令を記憶して実行するように特別に構成されたハードウェア装置を含む。前記ハードウェア装置は、本発明に係る処理を行うために、１つ又は複数のソフトウェアモジュールとして実行するように構成され、その逆も同様である。
【産業上の利用可能性】
【０５３０】
本発明は、映像を符号化／復号化する電子装置に適用されることができる。
【図１】
2022501897.tif 000047
【図２】
2022501897.tif 000048
【図３】
2022501897.tif 000049
【図４】
2022501897.tif 000050
【図５】
2022501897.tif 000051
【図６】
2022501897.tif 000052
【図７】
2022501897.tif 000053
【図８】
2022501897.tif 000054
【図９】
2022501897.tif 000055
【図１０】
2022501897.tif 000056
【図１１】
2022501897.tif 000057
【図１２】
2022501897.tif 000058
【図１３】
2022501897.tif 000059
【図１４】
2022501897.tif 000060
【図１５】
2022501897.tif 000061
【図１６】
2022501897.tif 000062
【図１７】
2022501897.tif 000063
【図１８】
2022501897.tif 000064
【図１９】
2022501897.tif 000065
【図２０】
2022501897.tif 000066
【図２１】
2022501897.tif 000067
【図２２】
2022501897.tif 000068
【図２３】
2022501897.tif 000069
【図２４】
2022501897.tif 000070
【図２５】
2022501897.tif 000071
【図２６】
2022501897.tif 000072
【図２７】
2022501897.tif 000073
【図２８】
2022501897.tif 000074
【図２９】
2022501897.tif 000075
【図３０】
2022501897.tif 000076
【図３１】
2022501897.tif 000077
【図３２】
2022501897.tif 000078
【図３３】
2022501897.tif 000079
【図３４】
2022501897.tif 000080
【図３５】
2022501897.tif 000081
【図３６】
2022501897.tif 000082
【図３７】
2022501897.tif 000083
【図３８】
2022501897.tif 000084
【図３９】
2022501897.tif 000085
【図４０】
2022501897.tif 000086
【図４１】
2022501897.tif 000087
【図４２】
2022501897.tif 000088
【図４３】
2022501897.tif 000089
【国際調査報告】
2022501897.tif 000090
2022501897.tif 000091
2022501897.tif 000092
2022501897.tif 000093