(57)【要約】  ビデオ信号をエンコーディング／デコードするビデオ信号処理方法及び装置が開示される。具体的に、ビデオ信号処理方法であって、現在ブロックの予測のための情報を受信する段階；前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別する段階；前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得する段階であって、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含むことができる。
2022502972.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ信号処理方法であって、
現在ブロックの予測のための情報を受信する段階；
前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別する段階；
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得する段階であって、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含む、ビデオ信号処理方法。
【請求項２】
前記現在ブロックの残差ブロックを復号化する段階；及び
前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元する段階をさらに含む、請求項１に記載のビデオ信号処理方法。
【請求項３】
前記残差ブロックを復号化する段階は、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得する段階をさらに含み、
前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックのみに対して変換を適用する変換モードを示す、請求項２に記載のビデオ信号処理方法。
【請求項４】
前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論される、請求項３に記載のビデオ信号処理方法。
【請求項５】
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックの前記イントラ予測ブロックを生成するためのイントラ予測モードはプレーナモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定される、請求項１に記載のビデオ信号処理方法。
【請求項６】
前記組合せ予測のために参照される左側周辺ブロック及び上側周辺ブロックの位置を設定する段階をさらに含み、
左側周辺ブロック及び上側周辺ブロックの位置は、前記イントラ予測によって参照される位置と同一である、請求項１に記載のビデオ信号処理方法。
【請求項７】
前記左側周辺ブロック及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定される、請求項６に記載のビデオ信号処理方法。
【請求項８】
ビデオ信号処理装置であって、
プロセッサを含み、
前記プロセッサは、
現在ブロックの予測のための情報を受信し、
前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別し、
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得し、ここで、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示し、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成し、
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する、ビデオ信号処理装置。
【請求項９】
前記プロセッサは、
前記現在ブロックの残差ブロックを復号化し、
前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元する、請求項８に記載のビデオ信号処理装置。
【請求項１０】
前記プロセッサは、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得し、
前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックに対して変換を適用する変換モードを示す、請求項９に記載のビデオ信号処理装置。
【請求項１１】
前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論される、請求項１０に記載のビデオ信号処理装置。
【請求項１２】
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックに対するイントラ予測のためのイントラ予測モードはプレーナモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定される、請求項８に記載のビデオ信号処理装置。
【請求項１３】
前記プロセッサは、前記組合せ予測のために参照される左側及び上側周辺ブロックの位置を設定し、左側周辺ブロック及び上側周辺ブロックの位置は、前記イントラ予測によって参照される位置と同一である、請求項８に記載のビデオ信号処理装置。
【請求項１４】
前記左側周辺ブロック及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定される、請求項１３に記載のビデオ信号処理装置。
【請求項１５】
ビデオ信号処理方法であって、
現在ブロックにマージモードが適用されるか否かを判別する段階；
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を復号化する段階であって、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含む、ビデオ信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオ信号処理方法及び装置に関し、より詳しくは、ビデオ信号をエンコーディングするかデコーディングするビデオ信号処理方法及び装置に関する。
【背景技術】
【０００２】
圧縮符号化とは、デジタル化した情報を通信回線を介して伝送するか、貯蔵媒体に適合した形態に貯蔵するための一連の信号処理技術を意味する。圧縮符号化の対象としては音声、映像、文字などの対象が存在するが、特に映像を対象とする圧縮符号化を行う技術をビデオ映像圧縮と称する。ビデオ信号に対する圧縮符号化は、空間的な相関関係、時間的な相関関係、確率的な相関関係などを考慮して剰余情報を除去することで行われる。しかし、最近の多様なメディア及びデータ伝送媒体の発展によって、より高効率のビデオ信号処理方法及び装置が求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、ビデオ信号のコーディング効率を上げることにある。具体的に、本発明は、変換ブロックに適した変換カーネルを用いてコーディング効率を上げるための目的を有する。
【課題を解決するための手段】
【０００４】
上記のような課題を解決するために、本発明は、次のようなビデオ信号処理装置及びビデオ信号処理方法を提供する。
【０００５】
本発明の一実施例によれば、ビデオ信号処理方法であって、空間候補（ｓｐａｔｉａｌ  ｃａｎｄｉｄａｔｅ）を用いてマージ候補リストを構成する段階；少なくとも一つのヒストリーベースモーションベクトル予測子（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ，ＨＭＶＰ）を含むＨＭＶＰテーブル内の特定ＨＭＶＰを前記マージ候補リストに追加する段階、ここで、前記ＨＭＶＰは、前記複数のコーディングブロック以前にコードされたブロックのモーション情報を示す；前記マージ候補リスト内で現在ブロックの予測に用いられるマージ候補を示すインデックス情報を取得する段階；及び、前記インデックス情報に基づいて決定されたマージ候補のモーション情報に基づいて前記現在ブロックの予測ブロックを生成する段階を含み、前記現在ブロックが複数のコーディングブロックを含むマージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）内に位置する場合、前記マージ候補リストは、前記マージ共有ノードに隣接した空間候補を用いて構成され、前記マージ共有ノードに含まれた複数のコーディングブロックのうち少なくとも一つのコーディングブロックのモーション情報は、前記ＨＭＶＰテーブルにアップデートされないことを特徴とするビデオ信号処理方法が提供される。
【０００６】
また、本発明の一実施例によれば、ビデオ信号処理装置であって、プロセッサを含み、前記プロセッサは、空間候補（ｓｐａｔｉａｌ  ｃａｎｄｉｄａｔｅ）を用いてマージ候補リストを構成し、少なくとも一つのヒストリーベースモーションベクトル予測子（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ，ＨＭＶＰ）を含むＨＭＶＰテーブル内の特定ＨＭＶＰを前記マージ候補リストに追加し、ここで、前記ＨＭＶＰは、前記複数のコーディングブロック以前にコードされたブロックのモーション情報を示す、前記マージ候補リスト内で現在ブロックの予測に用いられるマージ候補を示すインデックス情報を取得し、前記インデックス情報に基づいて決定されたマージ候補のモーション情報に基づいて前記現在ブロックの予測ブロックを生成し、前記現在ブロックが複数のコーディングブロックを含むマージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）内に位置する場合、前記マージ候補リストは、前記マージ共有ノードに隣接した空間候補を用いて構成され、前記マージ共有ノードに含まれた複数のコーディングブロックのうち少なくとも一つのコーディングブロックのモーション情報は、前記ＨＭＶＰテーブルにアップデートされないことを特徴とする、ビデオ信号処理装置が提供される。
【０００７】
実施例として、前記マージ共有ノードに含まれた複数のコーディングブロックのうち、デコーディング順序が相対的に遅いあらかじめ定義された個数のコーディングブロックのモーション情報を用いて前記ＨＭＶＰテーブルをアップデートする段階をさらに含むことができる。
【０００８】
実施例として、前記マージ共有ノードに含まれた複数のコーディングブロックのうち、デコーディング順序が相対的に最も遅いコーディングブロックのモーション情報を用いて前記ＨＭＶＰテーブルをアップデートする段階をさらに含むことができる。
【０００９】
実施例として、前記現在ブロックが前記マージ共有ノード内に位置しない場合、前記マージ候補のモーション情報を用いて前記ＨＭＶＰテーブルをアップデートする段階をさらに含むことができる。
【００１０】
実施例として、前記ＨＭＶＰを前記マージ候補リストに追加する段階は、前記ＨＭＶＰテーブル内であらかじめ定義された特定インデックスを有するＨＭＶＰを用いて、前記マージ候補リスト内の候補と重複するモーション情報を有するか否か確認する段階；及び、前記特定インデックスを有するＨＭＶＰが前記マージ候補リスト内の候補と重複するモーション情報を有さない場合、前記特定インデックスを有するＨＭＶＰを前記マージ候補リストに追加する段階を含むことができる。
【００１１】
また、本発明の一実施例によれば、ビデオ信号処理方法であって、現在ブロックの予測のための情報を受信する段階；前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別する段階；前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得する段階であって、ここで、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び、前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含む、ビデオ信号処理方法が提供される。
【００１２】
また、本発明の一実施例によれば、ビデオ信号処理装置であって、プロセッサを含み、前記プロセッサは、現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得し、ここで、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示し、前記第１シンタックス要素が前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成し、前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する、ビデオ信号処理装置が提供される。
【００１３】
実施例として、前記現在ブロックの残差ブロックを復号化する段階；及び、前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元する段階をさらに含むことができる。
【００１４】
実施例として、前記残差ブロックを復号化する段階は、前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得する段階をさらに含み、前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックのみに対して変換を適用する変換モードを示すことができる。
【００１５】
実施例として、前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論されてよい。
【００１６】
実施例として、前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックに対するイントラ予測のためのイントラ予測モードはプランナーモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定されてよい。
【００１７】
実施例として、前記組合せ予測のために参照される左側周辺ブロック及び上側周辺ブロックの位置を設定する段階をさらに含み、左側周辺ブロック及び上側周辺ブロックの位置は前記イントラ予測によって参照される位置と同一であってよい。
【００１８】
実施例として、前記左側周辺ブロック及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定されてよい。
【発明の効果】
【００１９】
本発明の実施例によれば、ビデオ信号のコーディング効率を上げることができる。また、本発明の一実施例によれば、現在変換ブロックに適した変換カーネルを選択することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施例によるビデオ信号エンコーディング装置の概略的なブロック図である。
【図２】本発明の一実施例によるビデオ信号デコーディング装置の概略的なブロック図である。
【図３】ピクチャ内でコーディングツリーユニットがコーディングユニットに分割される実施例を示す図である。
【図４】クォードツリー及びマルチ−タイプツリーの分割をシグナリングする方法の一実施例を示す図である。
【図５】本発明の実施例によるイントラ予測方法をより詳しく示す図である。
【図６】本発明の実施例によるイントラ予測方法をより詳しく示す図である。
【図７】本発明の一実施形態に従うインター予測方法を図示する。
【図８】エンコーダがレジデュアル信号を変換する方法を具体的に示す図である。
【図９】エンコーダ及びデコーダが変換係数を逆変換してレジデュアル信号を取得する方法を具体的に示す図である。
【図１０】本発明の一実施例に係るモーションベクトルシグナリング方法を例示する図である。
【図１１】本発明の一実施例に係る適応的なモーションベクトル解像度（ａｄａｐｔｉｖｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｒｅｓｏｌｕｔｉｏｎ）情報のシグナリング方法を例示する図である。
【図１２】本発明の一実施例に係るヒストリーベースモーションベクトル予測（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ，ＨＭＶＰ）方法を例示する図である。
【図１３】本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を例示する図である。
【図１４】本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。
【図１５】本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。
【図１６】本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。
【図１７】本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。
【図１８】本発明の一実施例に係るプルーニング（ｐｒｕｎｉｎｇ）プロセスを例示する図である。
【図１９】本発明の一実施例に係るＨＭＶＰ候補の追加方法を例示する図である。
【図２０】本発明の一実施例に係るマージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）を例示する図である。
【図２１】本発明の一実施例に係る共有されたリスト（ｓｈａｒｅｄ  ｌｉｓｔ）が用いられる場合、ＨＭＶＰアップデート方法を説明するための図である。
【図２２】本発明の一実施例に係るマージ共有ノード内のブロックのモーション情報に基づいてＨＭＶＰテーブルをアップデートする方法を例示する図である。
【図２３】本発明の一実施例に係る共有されたリスト（ｓｈａｒｅｄ  ｌｉｓｔ）が用いられる場合、ＨＭＶＰアップデート方法を説明するための図である。
【図２４】本発明の一実施例に係るマージ共有ノード内のブロックのモーション情報に基づいてＨＭＶＰテーブルをアップデートする方法を例示する図である。
【図２５】本発明の一実施例に係るＨＭＶＰに基づいてビデオ信号を処理する方法を例示する図である。
【図２６】本発明の一実施例に係る多重仮定予測（ｍｕｌｔｉ−ｈｙｐｏｔｈｅｓｉｓ  ｐｒｅｄｉｃｔｉｏｎ）方法を説明するための図である。
【図２７】本発明の一実施例に係る多重仮定予測モード決定方法を示す図である。
【図２８】本発明の一実施例に係る多重仮定予測モード決定方法を示す図である。
【図２９】本発明の一実施例に係る多重仮定予測において参照する周辺位置を示す図である。
【図３０】本発明の一実施例に係る周辺のモードを参照する方法を示す図である。
【図３１】本発明の一実施例に係る候補リスト生成方法を示す図である。
【図３２】本発明の一実施例に係る候補リスト生成方法を示す図である。
【図３３】本発明の一実施例に係る多重仮定予測において参照する周辺位置を示す図である。
【図３４】本発明の一実施例に係る周辺のモードを参照する方法を示す図である。
【図３５】本発明の一実施例に係る周辺参照サンプルを用いる方法を示す図である。
【図３６】本発明の一実施例に係る変換モードを示す図である。
【図３７】本発明の一実施例に係る色差成分間の関係を示す図である。
【図３８】本発明の一実施例に係るカラー（ｃｏｌｏｒ）成分間の関係を示す図である。
【図３９】本発明の一実施例に係る周辺参照位置を示す図である。
【図４０】本発明の一実施例に係る加重サンプル予測プロセスを示す図である。
【図４１】本発明の一実施例に係る周辺参照位置を示す図である。
【図４２】本発明の一実施例に係る加重サンプル予測プロセスを示す図である。
【図４３】本発明の一実施例に係る加重サンプル予測プロセスを示す図である。
【図４４】本発明の一実施例に係る加重サンプル予測プロセスを示す図である。
【図４５】本発明が適用される一実施例に係る、多重仮定予測に基づくビデオ信号処理方法を例示する図である。
【発明を実施するための形態】
【００２１】
本明細書で使用される用語は本発明における機能を考慮しながらできるだけ現在広く使用されている一般的な用語を選択したが、これは当分野に携わる技術者の意図、慣例または新たな技術の出現などによって異なり得る。また、特定の場合は出願人が任意に選定した用語もあるが、この場合、該当の発明を実施する形態の部分においてその意味を記載する。よって、本明細書で使用される用語は、単なる用語の名称ではなく、その用語の有する実質的な意味と本明細書全般にわたる内容に基づいて解釈すべきであることを明らかにする。
【００２２】
本明細書において、一部用語は以下のように解釈される。コーディングは、場合によってはエンコーディングまたはでコーディングに解釈される。本明細書において、ビデオ信号のエンコーディング（符号化）を行ってビデオ信号のビットストリームを生成する装置はエンコーディング装置またはエンコーダと称され、ビデオ信号ビットストリームのデコーディング（復号化）を行ってビデオ信号を復元する装置はデコーディング装置またはデコーダと称される。また、本明細書において、ビデオ信号処理装置はエンコーダ及びデコーダをいずれも含む概念の用語として使用される。情報（ｉｎｆｏｒｍａｔｉｏｎ）は値（ｖａｌｕｅｓ）、パラメータ（ｐａｒａｍｅｔｅｒ）、係数（ｃｏｅｆｆｉｃｉｅｎｔｓ）、成分（ｅｌｅｍｅｎｔｓ）などをいずれも含む用語であって、場合によっては意味が異なるように解釈されることがあるため、本発明はこれに限らない。‘ユニット’は、映像処理の基本単位又はピクチャの特定位置を表す意味で使われ、ルーマ（ｌｕｍａ）成分及びクロマ（ｃｈｒｏｍａ）成分のうち少なくとも一つを含むイメージ領域のことを指す。また、「ブロック」は輝度成分及び色差成分（つまり、Ｃｂ及びＣｒ）のうち特定成分を含むイメージ領域を指す。但し、実施例によって「ユニット」、「ブロック」、「パーティション」、及び「領域」などの用語は互いに混合して使用されてもよい。また、本明細書において、ユニットはコーディングユニット、予測ユニット、変換ユニットをいずれも含む概念として使用される。ピクチャはフィールドまたはフレームを指し、実施例よっては前記用語は互いに混用して使用される。
【００２３】
図１は、本発明の一実施例によるビデオ信号エンコーディング装置１００の概略的なブロック図である。図１を参照すると、本明細書のエンコーディング装置１００は、変換部１１０、量子化部１１５、逆量子化部１２０、逆変換部１２５、フィルタリング部１３０、予測部１５０、及びエントロピーコーディング部１６０を含む。
【００２４】
変換部１１０は、入力されたビデオ信号と予測部１５０で生成された予測信号の差であるレジデュアル信号を変換して変換系数値を獲得する。例えば、離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、ＤＣＴ）、離散サイン変換（Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、ＤＳＴ）、またはウェーブレット変換（Ｗａｖｅｌｅｔ  Ｔｒａｎｓｆｏｒｍ）などが使用される。離散コサイン変換及び離散サイン変換は、入力されたピクチャ信号をブロックの形態に分けて変換を行うようになる。変換において、変換領域内の値の分布と特性によってコーディング効率が異なり得る。量子化部１１５は、変換部１１０内で出力された変換係数の値を量子化する。
【００２５】
コーディング効率を上げるために、ピクチャ信号をそのままコーディングするのではなく、予測部１５０を介して予めコーディングされた領域を利用してピクチャを予測し、予測されたピクチャに原本ピクチャと予測ピクチャの間のレジデュアル値を足して復元ピクチャを獲得する方法が使用される。エンコーダとデコーダでミスマッチが発生しないように、エンコーダで予測を行う際にはデコーダでも使用可能な情報を使用すべきである。そのために、エンコーダでは符号化した現在ブロックを更に復元する過程を行う。逆量子化部１２０では変換係数値を逆量子化し、逆変換部１２５では逆量子化された変換系数値を利用してレジデュアル値を復元する。一方、フィルタリング部１３０は、復元されたピクチャの品質改善及び符号化効率の向上のためのフィルタリング演算を行う。例えば、デブロッキングフィルタ、サンプル適応的オフセット（Ｓａｍｐｌｅ  Ａｄｐａｔｉｖｅ  Ｏｆｆｓｅｔ、ＳＡＯ）、及び適応的ループフィルタなどが含まれてもよい。フィルタリングを経たピクチャは、出力されるか参照ピクチャとして利用するために復号ピクチャバッファ（Ｄｅｃｏｄｅｄ  Ｐｉｃｔｕｒｅ  Ｂｕｆｆｅｒ、ＤＰＢ）１５６に貯蔵される。
【００２６】
コーディング効率を上げるために、ピクチャ信号をそのままコードせず、予測部１５０で既にコードされた領域を用いてピクチャを予測し、予測されたピクチャに原ピクチャと予測ピクチャ間のレジデュアル値を足して復元ピクチャを取得する方法が用いられる。イントラ予測部１５２では、現在ピクチャ内で画面内予測を行い、インター予測部１５４では、復号ピクチャバッファ１５６に保存された参照ピクチャを用いて現在ピクチャを予測する。イントラ予測部１５２は、現在ピクチャ内の復元された領域から画面内予測を行い、画面内符号化情報をエントロピーコーディング部１６０に伝達する。インター予測部１５４はさらに、モーション推定部１５４ａ及びモーション補償部１５４ｂを含んで構成されてよい。モーション推定部１５４ａでは、復元された特定領域を参照して現在領域のモーションベクトル値を取得する。モーション推定部１５４ａでは、参照領域の位置情報（参照フレーム、モーションベクトルなど）などをエントロピーコーディング部１６０に伝達してビットストリームに含まれ得るようにする。モーション推定部１５４ａから伝達されたモーションベクトル値を用いて、モーション補償部１５４ｂでは画面間モーション補償を行う。
【００２７】
予測部１５０は、イントラ予測部１５２とインター予測部１５４を含む。イントラ予測部１５２は現在ピクチャ内でイントラ（ｉｎｔｒａ）予測を行い、インター予測部１５４は復号ピクチャバッファ１５６に貯蔵された参照バッファを利用して現在ピクチャを予測するインター（ｉｎｔｅｒ）予測を行う。イントラ予測部１５２は、現在ピクチャ内の復元されたサンプルからイントラ予測を行い、イントラ符号化情報をエントロピーコーディング部１６０に伝達する。イントラ符号化情報は、イントラ予測モード、ＭＰＭ（Ｍｏｓｔ  Ｐｒｏｂａｂｌｅ  Ｍｏｄｅ）フラッグ、ＭＰＭインデックスのうち少なくとも一つを含む。 イントラ符号化情報は、参照サンプルに関する情報を含むことができる。 イントラ符号化情報は参照サンプルに関する情報を含む。インター予測部１５４は、モーション推定部１５４ａ及びモーション補償部１５４ｂを含んで構成される。モーション推定部１５４ａは、復元された参照信号ピクチャの特定領域を参照して現在領域のモーションベクトル値を獲得する。モーション推定部１５４ａは、参照領域に対するモーション情報セット（参照ピクチャインデックス、モーションベクトル情報）をエントロピーコーディング部１６０に伝達する。モーション補償部１５４ｂは、モーション補償部１５４ａから伝達されたモーションベクトル値を利用してモーション補償を行う。 インター予測部１５４は、参照領域に対するモーション情報を含むインター符号化情報をエントロピーコーディング部１６０に伝達する。
【００２８】
更なる実施例によって、予測部１５０はイントラブロックコピー（ｂｌｏｃｋ  ｃｏｐｙ、ＢＣ）予測部（図示せず）を含む。イントラＢＣ予測部は、現在ピクチャ内の復元されたサンプルからイントラＢＣ予測を行い、イントラＢＣ符号化情報をエントロピーコーディング部１６０に伝達する。イントラＢＣ予測部は、現在ピクチャ内の特定領域を参照して現在領域の予測に利用される参照領域を示すブロックベクトル値を獲得する。イントラＢＣ予測部は、獲得されたブロックベクトル値を利用してイントラＢＣ予測を行う。イントラＢＣ予測部は、イントラＢＣ符号化情報をエントロピーコーディング部１６０に伝達する。イントラＢＣ予測部はブロックベクトル情報を含む。
【００２９】
上述したピクチャ予測が行われれば、変換部１１０は原本ピクチャと予測ピクチャの間のレジデュアル値を変換して変換係数値を獲得する。この際、変換はピクチャ内で特定ブロック単位で行われるが、特定ブロックのサイズは予め設定された範囲内で可変する。量子化部１１５は、変換部１１０で生成された変換係数の値を量子化してエントロピーコーディング部１６０に伝達する。
【００３０】
エントロピーコーディング部１６０は、量子化された変換係数を示す情報、イントラ符号化情報、及びインター符号化情報などをエントロピーコーディングしてビデオ信号ビットストリームを生成する。エントロピーコーディング部１６０では、可変長コーディング（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅｉｎｇ、ＶＬＣ）方式と算術コーディング（ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ）方式などが使用される。可変長コーディング（ＶＬＣ）方式は入力されるシンボルを連続したコードワードにへ難するが、コードワードの長さは可変的である。例えば、よく発生するシンボルは短いコードワードで、よく発生しないシンボルは長いコードワードで表現する。可変長コーディング方式として、コンテキスト基盤適応型可変長コーディング（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ、ＣＡＶＬＣ）方式が使用される。算術コーディングは連続したデータシンボルを一つの素数に変換するが、算術コーディングは各シンボルを表現するために必要な最適の素数ビットを得る。算術コーディングとして、コンテキスト基盤適合型算術符号化（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ、ＣＡＢＡＣ）方式が使用される。 例えば、エントロピーコーディング部１６０は、量子化された変換係数を示す情報を二進化することができる。また、エントロピーコーディング部１６０は、二進化された情報を算術コーディングしてビットストリームを生成することができる。
【００３１】
前記生成されたビットストリームは、ＮＡＬ（Ｎｅｔｗｏｒｋ  Ａｂｓｔｒａｃｔｉｏｎ  Ｌａｙｅｒ）ユニットを基本単位にカプセル化される。ＮＡＬユニットは、符号化された整数個のコーディングツリーユニット（ｃｏｄｉｎｇ  ｔｒｅｅ  ｕｎｉｔ）を含む。ビデオデコーダでビットストリームを復号化するためには、まずビットストリームをＮＡＬユニット単位に分離した後、分離されたそれぞれのＮＡＬユニットを復号化すべきである。一方、ビデオ信号ビットストリームの復号化のために必要な情報は、ピクチャパラメータセット（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ、ＰＰＳ）、シーケンスパラメータセット（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ、ＳＰＳ）、ビデオパラメータセット（Ｖｉｄｅｏ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ、ＶＰＳ）などのような上位レベルセットのＲＢＳＰ（Ｒａｗ  Ｂｙｔｅ  Ｓｅｑｕｅｎｃｅ  Ｐａｙｌｏａｄ）を介して伝送される。
【００３２】
一方、図１のブロック図は本発明の一実施例によるエンコーディング装置１００を示し、分離して示したブロックはエンコーディング装置１００のエレメントを論理的に区別して示している。よって、上述したエンコーディング装置１００のエレメントは、ディバイスの設計に応じて一つのチップまたは複数のチップに取り付けられる。一実施例によると、上述したエンコーディング装置１００のの各エレメントの動作はプロセッサ（図示せず）によって行われる。
【００３３】
図２は、本発明の実施例によるビデオ信号デコーディング装置の２００概略的なブロック図である。図２を参照すると、本明細書のデコーディング装置２００は、エントロピーデコーディング部２１０、逆量子化部２２０、逆変換部２２５、フィルタリング部２３０、及び予測部２５０を含む。
【００３４】
エントロピーデコーディング部２１０は、ビデオ信号ビットストリームをエントロピーデコードし、各領域に対する変換係数情報、イントラ符号化情報、インター符号化情報などを抽出する。例えば、エントロピーデコーディング部２１０は、ビデオ信号ビットストリームから特定領域の変換係数情報に対する二進化コードを取得することができる。また、エントロピーデコーディング部２１０は二進化コードを逆二進化し、量子化された変換係数を取得する。逆量子化部２２０は量子化された変換係数を逆量子化し、逆変換部２２５は、逆量子化された変換係数を用いてレジデュアル値を復元する。ビデオ信号処理装置２００は、逆変換部２２５から取得したレジデュアル値を、予測部２５０から取得した予測値と合算して、元来の画素値を復元する。
【００３５】
一方、フィルタリング部２３０は、ピクチャに対するフィルタリングを行って画質を向上させる。ここには、ブロック歪曲現象を減少させるためのデブロッキングフィルタ及び／またはピクチャ全体の歪曲を除去するための適応的ループフィルタなどが含まれる。フィルタリングを経たピクチャは出力されるか、次のピクチャに対する参照ピクチャとして利用するために復号ピクチャバッファ（ＤＰＢ）２５６に貯蔵される。
【００３６】
予測部２５０は、イントラ予測部２５２及びインター予測部２５４を含む。予測部２５０は、前述したエントロピーデコーディング部２１０を通じて復号化された符号化タイプ、各領域に対する変換係数、イントラ／インター符号化情報などを活用して予測ピクチャを生成する。復号化が遂行される現在ブロックを復元するために、現在ブロックが含まれた現在ピクチャまたは他のピクチャの復号化された領域が利用できる。 復元に現在ピクチャだけを用いる、すなわち、イントラ予測又はイントラＢＣ予測を行うピクチャ（又は、タイル／スライス）をイントラピクチャ又はＩピクチャ（又は、タイル／スライス）、イントラ予測、インター予測及びイントラＢＣ予測を全て行うことができるピクチャ（又は、タイル／スライス）を、インターピクチャ（又は、タイル／スライス）という。インターピクチャ（又は、タイル／スライス）のうち、各ブロックのサンプル値を予測するために、最大で１つのモーションベクトル及び参照ピクチャインデックスを用いるピクチャ（又は、タイル／スライス）を、予測ピクチャ（ｐｒｅｄｉｃｔｉｖｅ  ｐｉｃｔｕｒｅ）又はＰピクチャ（又は、タイル／スライス）といい、最大で２つのモーションベクトル及び参照ピクチャインデックスを用いるピクチャ（又は、タイル／スライス）を、双予測ピクチャ（Ｂｉ−ｐｒｅｄｉｃｔｉｖｅ  ｐｉｃｔｕｒｅ）又はＢピクチャ（又は、タイル／スライス）という。 言い換えると、Ｐピクチャ（または、タイル／スライス）は各ブロックを予測するために最大１つの動き情報セットを用いて、Ｂピクチャ（または、タイル／スライス）は各ブロックを予測するために最大２つの動き情報セットを用いる。ここで、動き情報セットは１つ以上の動きベクトルと１つの参照ピクチャインデックスを含む。
【００３７】
イントラ予測部２５２は、イントラ符号化情報及び現在ピクチャ内の復元されたサンプルを利用して予測ブロックを生成する。上述したように、イントラ符号化情報は、イントラ予測モード、ＭＰＭ（ＭＯＳＴ  Ｐｒｏｂａｂｌｅ  Ｍｏｄｅ）フラッグ、ＭＰＭインデックスのうち少なくとも一つを含む。イントラ予測部２５２は、現在ブロックの左側及び／または上側に位置する復元されたサンプルを参照サンプルとして利用して、現在ブロックのサンプル値を予測する。本開示において、復元されたサンプル、参照サンプル、及び現在ブロックのサンプルはピクセルを示す。また、サンプル値（ｓａｍｐｌｅ  ｖａｌｕｅ）はピクセル値を示す。
【００３８】
一実施例において、参照サンプルは現在ブロックの周辺ブロックに含まれたサンプルである。例えば、参照サンプルは現在ブロックの左側境界に隣接したサンプル及び／または上側境界に隣接したサンプルである。また、参照サンプルは現在ブロックの周辺ブロックのサンプルのうち、現在ブロックの左側境界から予め設定された距離以内のライン上に位置するサンプル及び／または現在ブロックの上側境界から予め設定された距離以内のライン上に位置するサンプルである。この際、現在ブロックの周辺ブロックは、現在ブロックに隣接した左側（Ｌ）ブロック、上側（Ａ）ブロック、下左側（Ｂｅｌｏｗ  Ｌｅｆｔ、ＢＬ）ブロック、右上側（Ａｂｏｖｅ  Ｒｉｇｈｔ、ＡＲ）ブロック、または左上側（Ａｂｏｖｅ  Ｌｅｆｔ、ＡＬ）ブロックのうち少なくとも一つを含む。
【００３９】
インター予測部２５４は、復号ピクチャバッファ２５６に貯蔵された参照ピクチャ及びインター符号化情報を利用して予測ブロックを生成する。インター符号化情報は、参照ブロックに対する現在ブロックのモーション情報セット（参照ピクチャインデックス、モーションベクトルなど）を含む。インター予測には、Ｌ０予測、Ｌ１予測、及び双予測（Ｂｉ−ｐｒｅｄｉｃｔｉｏｎ）がある。Ｌ０予測はＬ０ピクチャリストに含まれた一つの参照ピクチャを利用した予測であり、Ｌ１予測はＬ１ピクチャリストに含まれた一つの参照ピクチャを利用した予測を意味する。そのためには、１セットのモーション情報（例えば、モーションベクトル及び参照ピクチャインデックス）が必要である。双予測方式では最大２つの参照領域を利用するが、この２つの参照領域は同じ参照ピクチャに存在してもよく、互いに異なるピクチャにそれぞれ存在してもよい。つまり、双予測方式では最大２セットのモーション情報（例えば、モーションベクトル及び参照ピクチャインデックス）が利用されるが、２つのモーションベクトルが同じ参照ピクチャインデックスに対応してもよく、互いに異なる参照ピクチャインデックスに対応してもよい。この際、参照ピクチャは時間的に現在ピクチャの以前や以降のいずれにも表示（または出力）される。 一実施例によって、双予測方式では、使用される２個の参照領域は、Ｌ０ピクチャリスト及びＬ１ピクチャリストのそれぞれから選択された領域であってよい。
【００４０】
インター予測部２５４は、モーションベクトル及び参照ピクチャインデックスを利用して現在の参照ブロックを獲得する。前記参照ブロックは、参照ピクチャインデックスに対応する参照ピクチャ内に存在する。また、モーションベクトルによって特定されたブロックのサンプル値またはこれの補間（ｉｎｔｅｒｐｏｌａｔｉｏｎ）された値が現在ブロックの予測子（ｐｒｅｄｉｃｔｏｒ）として利用される。サブペル（ｓｕｂ−ｐｅｌ）単位のピクセル正確度を有するモーション予測のために、例えば、輝度信号に対して８−タブ補間フィルタが、色差信号に対して４−タブ補間フィルタが使用される。但し、サブペル単位のモーション予測のための補間フィルタはこれに限らない。このように、インター予測部２５４は、以前復元されたピクチャから現在ユニットのテクスチャを予測するモーション補償（ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ）を行う。この際、インター予測部はモーション情報セットを利用する。
【００４１】
更なる実施例によって、予測部２５０は、イントラＢＣ予測部（図示せず）を含むことができる。イントラＢＣ予測部は、現在ピクチャ内の復元されたサンプルを含む特定領域を参照して現在領域を復元することができる。イントラＢＣ予測部は、エントロピーデコーディング部２１０から、現在領域に対するイントラＢＣ符号化情報を取得する。イントラＢＣ予測部は、現在ピクチャ内の特定領域を指示する現在領域のブロックベクトル値を取得する。イントラＢＣ予測部は、取得されたブロックベクトル値を用いてイントラＢＣ予測を行うことができる。イントラＢＣ符号化情報は、ブロックベクトル情報を含むことができる。
【００４２】
前記イントラ予測部２５２又はインター予測部２５４から出力された予測値、及び逆変換部２２５から出力されたレジデュアル値が合算されて復元されたビデオピクチャが生成される。すなわち、ビデオ信号デコーディング装置２００は、予測部２５０で生成された予測ブロックと逆変換部２２５から取得されたレジデュアルを用いて現在ブロックを復元する。
【００４３】
一方、図２のブロック図は本発明の一実施例によるデコーディング装置２００を示し、分離して示したブロックはデコーディング装置２００のエレメントを論理的に区別して示している。よって、上述したデコーディング装置２００のエレメントは、ディバイスの設計に応じて一つのチップまたは複数のチップに取り付けられる。一実施り例によると、上述したデコーディング装置２００のの各エレメントの動作はプロセッサ（図示せず）によって行われる。
【００４４】
図３は、ピクチャ内でコーディングツリーユニット（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ、ＣＴＵ）がコーディングユニット（Ｃｏｄｉｎｇ  Ｕｎｉｔｓ、ＣＵｓ）に分割される実施例を示している。ビデオ信号のコーディング過程において、ピクチャはコーディングツリーユニット（ＣＴＵ）のシーケンスに分割される。コーディングツリーユニットは、輝度サンプルのＮＸＮブロックと、それに対応する色差サンプルの２つのブロックからなる。コーディングツリーユニットは、複数のコーディングユニットに分割される。コーディングツリーユニットは分割されずにリーフノードになってもよい。この場合、コーディングツリーユニット自体がコーディングユニットになり得る。コーディングユニットは上述したビデオ信号の処理過程、つまり、イントラ／インター予測、変換、量子化及び／またはエントロピーコーディングなどの過程でピクチャを処理するための基本単位を指す。一つのピクチャ内において、コーディングユニットのサイズ及び模様は一定ではない。コーディングユニットは正方形または長方形の模様を有する。長方形コーディングユニット（または、長方形ブロック）は垂直コーディングユニット（または、垂直ブロック）と水平コーディングユニット（または、水平ブロック）を含む。本明細書において、垂直ブロックは高さが幅より大きいブロックであり、水平ブロックは幅が高さより大きいブロックである。また、本明細書において、正方形ではない（ｎｏｎ−ｓｑｕａｒｅ）ブロックは長方形ブロックを指すが、本発明はこれに限らない。
【００４５】
図３を参照すると、コーディングツリーユニットは、まずクォードツリー（Ｑｕａｄ  Ｔｒｅｅ、ＱＴ）構造に分割される。つまり、クォードツリー構造において、２Ｎ×２Ｎのサイズを有する一つのノードはＮ×Ｎのサイズを有する４つのノードに分割される。本明細書において、クォードツリーは４進（ｑｕａｔｅｒｎａｒｙ）ツリーとも称される。クォードツリー分割は再帰的に行われ、全てのノードが同じ深さに分割される必要はない。
【００４６】
一方、上述したクォードツリーのリーフノード（ｌｅａｆ  ｎｏｄｅ）は、マルチ−タイプツリー（Ｍｕｌｔｉ−Ｔｙｐｅ  Ｔｒｅｅ、ＭＴＴ）構造に更に分割される。本発明の実施例によると、マルチタイプツリー構造では一つのノードが水平または垂直分割の２進（ｂｉｎａｒｙ、バイナリー）または３進（ｔｅｒｎａｒｙ、ターナリー）ツリー構造に分割される。つまり、マルチ−タイプツリー構造には、垂直バイナリー分割、水平バイナリー分割、垂直ターナリー分割、及び水平ターナリー分割の４つの分割構造が存在する。本発明の実施例によると、前記各ツリー構造において、ノードの幅及び高さはいずれも２の累乗値を有する。例えば、バイナリーツリー（ｂｉｎａｒｙ  Ｔｒｅｅ、ＢＴ）構造において、２Ｎ×２Ｎのサイズのノードは垂直バイナリー分割によって２つのＮ×２Ｎノードに分割され、水平バイナリー分割によって２つの２Ｎ×Ｎノードに分割される。また、ターナリーツリー（Ｔｅｒｎａｒｙ  Ｔｒｅｅ、ＴＴ）構造において、２Ｎ×２Ｎのサイズのノードは垂直ターナリー分割によって（Ｎ／２）×２Ｎ、Ｎ×２Ｎ及び（Ｎ／２）×２Ｎのノードに分割され、水平ターナリー分割によって２Ｎ×（Ｎ／２）、２Ｎ×Ｎ及び２Ｎ×（Ｎ／２）のノードに分割される。このようなマルチ−タイプツリー分割は再帰的に行われる。
【００４７】
マルチ−タイプツリーのリーフノードはコーディングユニットできる。コーディングユニットに対する分割が指示されないか、またはコーディングユニットが最大変換長さに比べて大きくない場合、該当コーディングユニットはこれ以上の分割無しで予測及び変換の単位に使われる。 一方、上述したクォードツリー及びマルチ−タイプツリーにおいて、次のパラメータのうち少なくとも一つが事前に定義されるか、ＰＰＳ、ＳＰＳ、ＶＰＳなどのような上位レベルセットのＲＢＳＰを介して伝送される。１）ＣＴＵサイズ：クォードツリーのルートノード（ｒｏｏｔ  ｎｏｄｅ）のサイズ、２）最小ＱＴサイズ（ＭｉｎＱｔＳｉｚｅ）：許容された最小ＱＴリーフノードのサイズ、３）最大ＢＴサイズ（ＭａｘＢｔＳｉｚｅ）：許容された最大ＢＴルートノードのサイズ、４）最大ＴＴサイズ（ＭａｘＴｔＳｉｚｅ）：許容された最大ＴＴルートノードのサイズ、５）最大ＭＴＴ深さ（ＭａｘＭｔｔＤｅｐｔｈ）：ＱＴのリーフノードからのＭＴＴ分割の最大許容深さ、６）最小ＢＴサイズ（ＭｉｎＢｔＳｉｚｅ）：許容された最小ＢＴリーフノードのサイズ、７）最小ＴＴサイズ：許容された最小ＴＴリーフノードのサイズ。
【００４８】
図４は、クワッドツリー及びマルチ−タイプツリーの分割をシグナリングする方法の一実施形態を図示する。前述したクワッドツリー及びマルチ−タイプツリーの分割をシグナリングするために既設定されたフラグが使われることができる。図４を参照すると、クワッドツリーノードの分割するか否かを指示するフラグ‘qt_split_flag’、マルチ−タイプツリーノードの分割するか否かを指示するフラグ‘mtt_split_flag’、マルチ−タイプツリーノードの分割方向を指示するフラグ‘mtt_split_vertical_flag’またはマルチ−タイプツリーノードの分割形態を指示するフラグ‘mtt_split_binary_flag’のうち、少なくとも１つが使われることができる。
【００４９】
本発明の実施形態によれば、コーディングツリーユニットはクワッドツリーのルートノードであり、クワッドツリー構造に先に分割できる。クワッドツリー構造では各々のノード‘QT_node’別に‘qt_split_flag’がシグナリングされる。‘qt_split_flag’の値が１の場合、該当ノードは４個の正四角形ノードに分割され、‘qt_split_flag’の値が０の場合、該当ノードはクワッドツリーのリーフノード‘QT_leaf_node’となる。
【００５０】
各々のクワッドツリーリーフノード‘QT_leaf_node’はマルチ−タイプツリー構造にさらに分割できる。マルチ−タイプツリー構造では、各々のノード‘MTT_node’別に‘mtt_split_flag’がシグナリングされる。‘mtt_split_flag’の値が１の場合、該当ノードは複数の矩形ノードに分割され、‘mtt_split_flag’の値が０の場合、該当ノードはマルチ−タイプツリーのリーフノード‘MTT_leaf_node’となる。マルチ−タイプツリーノード‘MTT_node’が複数の矩形ノードに分割される場合（即ち、‘mtt_split_flag’の値が１の場合）、ノード‘MTT_node’のための‘mtt_split_vertical_flag’及び‘mtt_split_binary_flag’が追加でシグナリングできる。‘mtt_split_vertical_flag’の値が１の場合、ノード‘MTT_node’の垂直分割が指示され、‘mtt_split_vertical_flag’の値が０の場合、ノード‘MTT_node’の水平分割が指示される。また、‘mtt_split_binary_flag’の値が１の場合、ノード‘MTT_node’は２つの矩形ノードに分割され、‘mtt_split_binary_flag’の値が０の場合、ノード‘MTT_node’は３個の矩形ノードに分割される。
【００５１】
コーティングのためのピクチャ予測（モーション補償）はそれ以上分けられないコーディングユニット（つまり、コーディングユニットツリーのリーフノード）を対象に行われる。このような予測を行う基本単位を、以下では予測ユニット（ｐｒｅｄｉｃｔｉｏｎ  ｕｎｉｔ）または予測ブロック（ｐｒｅｄｉｃｔｉｏｎ  ｂｌｏｃｋ）という。
【００５２】
以下、本明細書で使用されるユニットという用語は、予測を行う基本単位である前記予測ユニットを代替する用語として使用される。但し、本発明はこれに限らず、より広い意味では、前記コーディングユニットを含む概念として理解される。
【００５３】
図５及び図６は、本発明の実施例によるイントラ予測方法をより詳しく示す図である。上述したように、イントラ予測部は、現在ブロックの左側及び／または上側に位置する復元されたサンプルを参照サンプルとして利用して、現在ブロックのサンプル値を予測する。
【００５４】
まず、図５はイントラ予測モードで現在ブロックを予測するために使用される参照サンプルの一実施例を示す。一実施例によると、参照サンプルは現在ブロックの左側境界に隣接したサンプル及び／または上側境界に隣接したサンプルである。図５に示したように、現在ブロックのサイズがＷ×Ｈで現在ブロックに隣接した単一参照ライン（ｌｉｎｅ）のサンプルがイントラ予測に使用されれば、現在ブロックの左側及び／または上側に位置した最大２Ｗ＋２Ｈ＋１個の周辺サンプルを使用して参照サンプルが設定される。
【００５５】
また、参照サンプルとして使用される少なくとも一部のサンプルがまだ復元されていなければ、イントラ予測部は参照サンプルパッディング過程を行って参照サンプルを獲得する。また、イントラ予測部は、イントラ予測の誤差を減らすために参照サンプルフィルタリング過程を行う。つまり、周辺サンプル及び／または参照サンプルパッディング過程によって獲得された参照サンプルにフィルタリングを行って、フィルタリングされた参照サンプルを獲得する。 イントラ予測部は、このように取得された参照サンプルを用いて現在ブロックのサンプルを予測する。イントラ予測部は、フィルタリングされない参照サンプル又はフィルタリングされた参照サンプルを用いて現在ブロックのサンプルを予測する。本開示において、周辺サンプルは、少なくとも一つの参照ライン上のサンプルを含むことができる。例えば、周辺サンプルは、現在ブロックの境界に隣接したライン上の隣接サンプルを含むことができる。
【００５６】
次に、図６はイントラ予測に使われる予測モードの一実施形態を図示する。イントラ予測のために、イントラ予測方向を指示するイントラ予測モード情報がシグナリングできる。イントラ予測モード情報は、イントラ予測モードセットを構成する複数のイントラ予測モードのうち、いずれか１つを指示する。現在ブロックがイントラ予測されたブロックである場合、デコーダはビットストリームから現在ブロックのイントラ予測モード情報を受信する。デコーダのイントラ予測部は、抽出されたイントラ予測モード情報に基づいて現在ブロックに対するイントラ予測を遂行する。
【００５７】
本発明の実施例によると、イントラ予測モードセットは、イントラ予測に使用される全てのイントラ予測モード（例えば、総６７個のイントラ予測モード）を含む。より詳しくは、イントラ予測モードセットは、平面モード、ＤＣモード、及び複数の（例えば、６５個の）角度モード（つまり、方向モード）を含む。 それぞれのイントラ予測モードは、予め設定されたインデックス（つまり、イントラ予測モードインデックス）を介して指示される。例えば、図６に示したように、イントラ予測モードインデックス０は平面（ｐｌａｎａｒ）モードを指示し、イントラ予測モードインデックス１はＤＣモードを指示する。また、イントラ予測モードインデックス２乃至６６は、互いに異なる角度モードをそれぞれ指示する。 角度モードは、既に設定された角度範囲以内の異なる角度をそれぞれ指示する。例えば、角度モードは時計回り方向に４５°〜−１３５°の角度範囲（すなわち、第１角度範囲）以内の角度を指示できる。前記角度モードは１２時方向を基準に定義されてよい。この際、イントラ予測モードインデックス２は水平対角（Ｈｏｒｉｚｏｎｔａｌ  Ｄｉａｇｏｎａｌ、ＨＤＩＡ）モードを指示し、イントラ予測モードインデックス１８は水平（Ｈｏｒｉｚｏｎｔａｌ、ＨＯＲ）モードを指示し、イントラ予測モードインデックス３４は対角（Ｄｉａｇｏｎａｌ、ＤＩＡ）モードを指示し、イントラ予測モードインデックス５０は水直（Ｖｅｒｔｉｃａｌ、ＶＥＲ）モードを指示し、イントラ予測モードインデックス６６は垂直対角（Ｖｅｒｔｉｃａｌ  Ｄｉａｇｏｎａｌ、ＶＤＩＡ）モードを指示する。
【００５８】
以下、図7を参照して、本発明の実施形態によるインター予測方法について説明する。本発明では、インター予測方法は、並進運動（translation motion）に最適化された一般インター予測方法とアフィン（affine）モデルベースのインター予測方法を含むことができる。また、動きベクトルは、通常、インター予測方法に基づいて動き補償のための一般的な動きベクトルとアフィン動き補償のためのコントロールポイントの動きベクトル（control point motion vector）のうちの少なくとも一つを含むことができる。
【００５９】
図７は、本発明の一実施形態に従うインター予測方法を図示する。前述したように、デコーダは復号化された他のピクチャの復元されたサンプルを参照して現在ブロックを予測することができる。図７を参照すると、デコーダは現在ブロック７０１の動き情報セットに基づいて参照ピクチャ７２０内の参照ブロック７０２を獲得する。この際、動き情報セットは参照ピクチャインデックス及び動きベクトル７０３を含むことができる。参照ピクチャインデックスは、参照ピクチャリストで現在ブロックのインター予測のための参照ブロックが含まれた参照ピクチャ７２０を指示する。一実施形態に従って、参照ピクチャリストは前述したＬ０ピクチャリストまたはＬ１ピクチャリストのうち、少なくとも１つを含むことができる。動きベクトル７０３は現在ピクチャ７１０内で現在ブロック７０１の座標値と参照ピクチャ７２０内で参照ブロック７０２の座標値との間のオフセットを示す。デコーダは、参照ブロック７０２のサンプル値に基づいて現在ブロック７０１の予測子を獲得し、前記予測子を用いて現在ブロック７０１を復元する。
【００６０】
具体的に、インコーダーは復元順序が早いピクチャで現在ブロックと類似のブロックを探索して前述した参照ブロックを獲得することができる。例えば、エンコーダは既設定された探索領域内で現在ブロックとサンプル値との差の和が最小となる参照ブロックを探索することができる。この際、現在ブロックと参照ブロックのサンプルとの間の類似度を測定するために、ＳＡＤ（Sum Of Absolute Difference）またはＳＡＴＤ（Sum of Hadamard Transformed Difference）のうち、少なくとも１つが使われることができる。ここで、ＳＡＤは２つのブロックに含まれたサンプル値の差の各々の絶対値を全て足した値でありうる。また、ＳＡＴＤは２つのブロックに含まれたサンプル値の差をアダマール変換（Hadamard Transform）して獲得されたアダマール変換係数の絶対値を全て足した値でありうる。
【００６１】
一方、現在ブロックは１つ以上の参照領域を用いて予測されることもできる。前述したように、現在ブロックは２つ以上の参照領域を用いる双予測方式によりインター予測できる。一実施形態に従って、デコーダは現在ブロックの２つの動き情報セットに基づいて２つの参照ブロックを獲得することができる。また、デコーダは獲得された２つの参照ブロックの各々のサンプル値に基づいて現在ブロックの第１予測子及び第２予測子を獲得することができる。また、デコーダは第１予測子及び第２予測子を用いて現在ブロックを復元することができる。例えば、デコーダは第１予測子及び第２予測子のサンプル別平均に基づいて現在ブロックを復元することができる。
【００６２】
前述したように、現在ブロックの動き補償のために、１つ以上の動き情報セットがシグナリングできる。この際、複数のブロックの各々の動き補償のための動き情報セットの間の類似性が利用できる。例えば、現在ブロックの予測に使われる動き情報セットは既復元された他のサンプルのうち、いずれか１つの予測に使われた動き情報セットから誘導できる。これを通じて、エンコーダ及びデコーダはシグナリングオーバーヘッドを減少させることができる。以下では、現在ブロックの動き情報セットがシグナリングされる多様な実施形態に対して説明する。
【００６３】
例えば、現在ブロックのモーション情報セットと同一又は類似のモーション情報セットに基づいて予測された可能性がある複数の候補ブロックが存在し得る。デコーダは、当該複数の候補ブロックに基づいてマージ候補リスト（ｍｅｒｇｅ  ｃａｎｄｉｄａｔｅ  ｌｉｓｔ）を生成できる。ここで、マージ候補リストは、現在ブロックよりも先に復元されたサンプルのうち、現在ブロックのモーション情報セットと関連したモーション情報セットに基づいて予測された可能性があるサンプルに対応する候補を含むことができる。エンコーダとデコーダは、あらかじめ定義された規則に基づいて現在ブロックのマージ候補リストを構成することができる。このとき、エンコーダとデコーダがそれぞれ構成したマージ候補リストは互いに同一であってよい。例えば、エンコーダ及びデコーダは、現在ピクチャ内で現在ブロックの位置に基づいて現在ブロックのマージ候補リストを構成することができる。エンコーダ及びデコーダが現在ブロックのマージ候補リストを構成する方法については、図９で後述する。本開示において、特定ブロックの位置は、特定ブロックを含むピクチャ内で特定ブロックの左上端（ｔｏｐ−ｌｅｆｔ）サンプルの相対的な位置を表す。
【００６４】
一方、コーディング効率を上げるために、前述したレジデュアル信号をそのままコードせず、レジデュアル信号を変換して取得された変換係数値を量子化し、量子化された変換係数をコードする方法を用いることができる。前述したように、変換部は、レジデュアル信号を変換して変換係数値を取得することができる。このとき、特定ブロックのレジデュアル信号は、現在ブロックの全領域に分散されていてよい。これによって、レジデュアル信号に対する周波数領域変換を用いて低周波領域にエネルギーを集中させ、コーディング効率を向上させることができる。以下では、レジデュアル信号が変換又は逆変換される方法について具体的に説明する。
【００６５】
図８は、エンコーダがレジデュアル信号を変換する方法を具体的に示す図である。前述したように、空間領域のレジデュアル信号は周波数領域に変換されてよい。エンコーダは、取得されたレジデュアル信号を変換して変換係数を取得することができる。まず、エンコーダは、現在ブロックに対するレジデュアル信号を含む少なくとも一つのレジデュアルブロックを取得することができる。レジデュアルブロックは、現在ブロック又は現在ブロックから分割されたブロックのいずれか一つであってよい。本開示において、レジデュアルブロックは、現在ブロックのレジデュアルサンプルを含むレジデュアルアレイ（ａｒｒａｙ）又はレジデュアルマトリックス（ｍａｔｒｉｘ）と称することができる。また、本開示において、レジデュアルブロックは、変換ユニット又は変換ブロックのサイズと同じサイズのブロックを表す。
【００６６】
次に、エンコーダは、変換カーネルを用いてレジデュアルブロックを変換することができる。レジデュアルブロックに対する変換に用いられる変換カーネルは、垂直変換及び水平変換の分離可能な特性を有する変換カーネルであってよい。この場合、レジデュアルブロックに対する変換は、垂直変換及び水平変換に分離して行われてよい。例えば、エンコーダは、レジデュアルブロックの垂直方向に変換カーネルを適用して垂直変換を行うことができる。また、エンコーダは、レジデュアルブロックの水平方向に変換カーネルを適用して水平変換を行うことができる。本開示において、変換カーネルは、変換マトリックス、変換アレイ、変換関数、変換のようにレジデュアル信号の変換に用いられるパラメータセットを表す用語で使われてよい。一実施例によって、変換カーネルは、複数の使用可能なカーネルのいずれか一つであってよい。また、垂直変換及び水平変換のそれぞれに対して異なる変換タイプに基づく変換カーネルが用いられてもよい。複数の使用可能な変換カーネルのいずれか一つが選択される方法については、図１２〜図２６で後述する。
【００６７】
エンコーダは、レジデュアルブロックから変換された変換ブロックを量子化部に伝達して量子化することができる。この時、変換ブロックは複数の変換係数を含むことができる。具体的に、変換ブロックは、２次元配列された複数の変換係数で構成されてよい。変換ブロックのサイズは、レジデュアルブロックと同様に、現在ブロック又は現在ブロックから分割されたブロックのいずれか一つと同一であってよい。量子化部に伝達された変換係数は、量子化された値で表現されてよい。
【００６８】
また、エンコーダは、変換係数が量子化される前に追加の変換を行うことができる。図８に示すように、前述した変換方法は、１次変換（ｐｒｉｍａｒｙ  ｔｒａｎｓｆｏｒｍ）、追加の変換は２次変換（ｓｅｃｏｎｄａｒｙ  ｔｒａｎｓｆｏｒｍ）と呼ぶことができる。２次変換は、レジデュアルブロック別に選択的であり得る。一実施例によって、エンコーダは、１次変換だけでは低周波領域にエネルギーを集中させ難い領域に対して２次変換を行って、コーディング効率を向上させることができる。例えば、レジデュアル値がレジデュアルブロックの水平又は垂直方向以外の方向で大きく現れるブロックに対して２次変換が追加されてよい。イントラ予測されたブロックのレジデュアル値は、インター予測されたブロックのレジデュアル値に比べて水平又は垂直方向以外の方向に変化する確率が高くてよい。これによって、エンコーダは、イントラ予測されたブロックのレジデュアル信号に対して２次変換をさらに行うことができる。また、エンコーダは、インター予測されたブロックのレジデュアル信号に対して２次変換を省略することができる。
【００６９】
他の例として、現在ブロック又はレジデュアルブロックのサイズによって、２次変換を行うか否かが決定されてもよい。また、現在ブロック又はレジデュアルブロックのサイズによって、サイズの異なる変換カーネルが用いられてよい。例えば、幅又は高さのうち短い辺の長さが、第１の既に設定された長さよりも短いブロックに対しては８×８の２次変換が適用されてよい。また、幅又は高さのうち、短い辺の長さが第２の既に設定された長さよりも長いブロックに対しては４×４の２次変換が適用されてよい。この時、第１の既に設定された長さは、第２の既に設定された長さよりも大きい値であり得るが、本開示がこれに制限されるものではない。また、２次変換は、１次変換と違い、垂直変換及び水平変換に分離されて行われなくてもよい。このような２次変換は、低帯域非分離変換（Ｌｏｗ  Ｆｒｅｑｕｅｎｃｙ  Ｎｏｎ−Ｓｅｐａｒａｂｌｅ  Ｔｒａｎｓｆｏｒｍ，ＬＦＮＳＴ）と呼ぶことができる。
【００７０】
また、特定領域のビデオ信号の場合、急な明るさ変化によって、周波数変換を行っても高周波帯域エネルギーが減らないことがある。これによって、量子化による圧縮性能が低下することがある。また、レジデュアル値がまれに存在する領域に対して変換を行う場合、エンコーディング時間及びデコーディング時間が不要に増加することがある。このため、特定領域のレジデュアル信号に対する変換は省略されてもよい。特定領域のレジデュアル信号に対する変換を行うか否かは、特定領域の変換と関連したシンタックス要素によって決定されてよい。例えば、前記シンタックス要素は、変換スキップ情報（ｔｒａｎｓｆｏｒｍ  ｓｋｉｐ  ｉｎｆｏｒｍａｔｉｏｎ）を含むことができる。変換スキップ情報は、変換スキップフラグ（ｔｒａｎｓｆｏｒｍ  ｓｋｉｐ  ｆｌａｇ）であってよい。レジデュアルブロックに対する変換スキップ情報が変換スキップを示す場合、当該レジデュアルブロックに対する変換が行われない。この場合、エンコーダは、当該領域の変換が行われないレジデュアル信号を直ちに量子化することができる。図８を参照して説明されたエンコーダの動作は、図１の変換部で行うことができる。
【００７１】
前述した変換関連シンタックス要素は、ビデオ信号ビットストリームからパースされた情報であってよい。デコーダは、ビデオ信号ビットストリームをエントロピーデコードして変換関連シンタックス要素を取得することができる。また、エンコーダは、変換関連シンタックス要素をエントロピーコーディングしてビデオ信号ビットストリームを生成することができる。
【００７２】
図９は、エンコーダ及びデコーダが変換係数を逆変換してレジデュアル信号を取得する方法を具体的に示す図である。以下、説明の便宜のために、エンコーダ及びデコーダの各逆変換部で逆変換動作が行われるとして説明する。逆変換部は、逆量子化された変換係数を逆変換してレジデュアル信号を取得することができる。まず、逆変換部は、特定領域の変換関連シンタックス要素から当該領域に対する逆変換が行われるか否か検出することができる。一実施例によって、特定変換ブロックに対する変換関連シンタックス要素が変換スキップを示す場合、当該変換ブロックに対する変換は省略されてよい。この場合、変換ブロックに対して、前述した１次逆変換及び２次逆変換が全て省略されてもよい。また、逆量子化された変換係数は、レジデュアル信号として用いられてよい。例えば、デコーダは、逆量子化された変換係数をレジデュアル信号として用いて現在ブロックを復元することができる。
【００７３】
他の実施例によって、特定変換ブロックに対する変換関連シンタックス要素が変換スキップを表せなくてもよい。この場合、逆変換部は、２次変換に対する２次逆変換を行うか否かを決定することができる。例えば、変換ブロックがイントラ予測されたブロックの変換ブロックである場合、変換ブロックに対する２次逆変換が行われてよい。また、変換ブロックに対応するイントラ予測モードに基づいて、当該変換ブロックに用いられる２次変換カーネルが決定されてよい。他の例として、変換ブロックのサイズに基づいて２次逆変換を行うか否かが決定されてよい。２次逆変換は、逆量子化過程後に１次逆変換が行われる前に行われてよい。
【００７４】
逆変換部は、逆量子化された変換係数又は２次逆変換された変換係数に対する１次逆変換を行うことができる。１次逆変換の場合、１次変換と同様に、垂直変換及び水平変換に分離されて行われてよい。例えば、逆変換部は、変換ブロックに対する垂直逆変換及び水平逆変換を行ってレジデュアルブロックを取得することができる。逆変換部は、変換ブロックの変換に用いられた変換カーネルに基づいて変換ブロックを逆変換することができる。例えば、エンコーダは、複数の使用可能な変換カーネルのうち、現在変換ブロックに適用された変換カーネルを指示する情報を明示的又は暗黙的にシグナルすることができる。デコーダは、シグナルされた変換カーネルを示す情報を用いて、複数の使用可能な変換カーネルから、変換ブロックの逆変換に用いられる変換カーネルを選択することができる。逆変換部は、変換係数に対する逆変換によって取得されたレジデュアル信号を用いて現在ブロックを復元することができる。
【００７５】
図１０は、本発明の一実施例に係るモーションベクトルシグナリング方法を例示する図である。本発明の一実施例によれば、モーションベクトル（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，ＭＶ）は、モーションベクトル予測（又は、予測子）（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ（ｏｒ  ｐｒｅｄｉｃｔｏｒ）、ＭＶＰ）に基づいて生成されてよい。一例として、次の数学式１のように、ＭＶはＭＶＰと決定されてよい。言い換えると、ＭＶはＭＶＰと同じ値と決定（又は、設定、誘導）されてよい。
【００７６】
【数１】
2022502972.tif 000003
【００７７】
他の例として、次の数学式２のように、ＭＶはＭＶＰ及びモーションベクトル差分（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｉｆｆｅｒｅｎｃｅ，ＭＶＤ）に基づいて決定されてよい。エンコーダは、より正確なＭＶを示すために、ＭＶＤ情報をデコーダにシグナリングすることができ、デコーダは、取得されたＭＶＤをＭＶＰに加算することによってＭＶを誘導することができる。
【００７８】
【数２】
2022502972.tif 000004
【００７９】
本発明の一実施例によれば、エンコーダは、決定されたモーション情報をデコーダに伝送し、デコーダは、受信したモーション情報からＭＶを生成（又は、誘導）し、それに基づいて予測ブロックを生成することができる。例えば、前記モーション情報は、ＭＶＰ情報、ＭＶＤ情報を含むことができる。この時、インター予測モードによって前記モーション情報の構成要素が変わってよい。一例として、マージモードにおいて前記モーション情報はＭＶＰ情報を含み、ＭＶＤ情報を含まなくてもよい。他の例として、ＡＭＶＰ（ａｄｖａｎｃｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）モードにおいて前記モーション情報はＭＶＰ情報及びＭＶＤ情報を含んでもよい。
【００８０】
ＭＶＰに関する情報を決定、送信、受信するために、エンコーダとデコーダは同じ方法でＭＶＰ候補（又は、ＭＶＰ候補リスト）を生成することができる。例えば、エンコーダとデコーダは、同じ順序で同じＭＶＰ候補を生成することができる。そして、エンコーダは、生成されたＭＶＰ候補の中から決定された（又は、選択された）ＭＶＰを示す（又は、指示する）インデックスをデコーダに伝送し、デコーダは、受信したインデックスに基づいて決定されたＭＶＰ及び／又はＭＶを誘導することができる。
【００８１】
本発明の一実施例によれば、ＭＶＰ候補は、空間候補（ｓｐａｔｉａｌ  ｃａｎｄｉｄａｔｅ）、時間候補（ｔｅｍｐｏｒａｌ  ｃａｎｄｉｄａｔｅ）などを含むことができる。前記ＭＶＰ候補は、マージモードが適用される場合、マージ候補と呼ぶことができ、ＡＭＶＰモードが適用される場合、ＡＭＶＰ候補と呼ぶことができる。空間候補は、現在ブロックを基準に特定位置にあるブロックに対するＭＶ（又は、モーション情報）であってよい。例えば、前記空間候補は、現在ブロックと隣接したり又は隣接しない位置のブロックのＭＶであってよい。時間候補は、現在ピクチャと他のピクチャ内のブロックに該当するＭＶであってよい。また、例えば、ＭＶＰ候補は、アフィン（ａｆｆｉｎｅ）ＭＶ、ＡＴＭＶＰ、ＳＴＭＶＰ、前述したＭＶ（又は、候補）の組合せ、前述したＭＶ（又は、候補）の平均ＭＶ、ゼロＭＶなどを含むことができる。
【００８２】
一実施例において、エンコーダは、参照ピクチャを示す情報をデコーダにシグナリングすることができる。実施例として、ＭＶＰ候補の参照ピクチャと現在ブロック（又は、現在処理ブロック）の参照ピクチャとが異なる場合、エンコーダ／デコーダは、ＭＶＰ候補のＭＶをスケーリング（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｓｃａｌｉｎｇ）することができる。この時、ＭＶスケーリングは、現在ピクチャのピクチャ順序カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）、現在ブロックの参照ピクチャのＰＯＣ、ＭＶＰ候補の参照ピクチャのＰＯＣに基づいて行われてよい。
【００８３】
以下、ＭＶＤシグナリング方法に関する具体的な実施例を説明する。下記の表１は、ＭＶＤシグナリングのためのシンタックス構造を例示する。
【００８４】
【表１】
2022502972.tif 000005
【００８５】
表１を参照すると、本発明の一実施例によれば、ＭＶＤは、ＭＶＤの符号（ｓｉｇｎ）及び絶対値（ａｂｓｏｌｕｔｅ  ｖａｌｕｅ）を分けてコードされてよい。すなわち、ＭＶＤの符号及び絶対値は、それぞれ異なるシンタックス（又は、シンタックスエレメント）であってよい。また、ＭＶＤの絶対値は、その値が直接にコードされてもよく、表１のように、絶対値がＮよりも大きいか否かを示すフラグに基づいて段階的にコードされてもよい。仮に、絶対値がＮよりも大きい場合（絶対値−Ｎ）の値が共にシグナリングされてよい。具体的に、表１の例示において絶対値が０よりも大きいか否かを示すａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇが伝送されてよい。仮に、絶対値が０よりも大きくないことをａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇが示す（又は、指示する）場合、ＭＶＤの絶対値は０と決定されてよい。また、仮に絶対値が０よりも大きいことをａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇが示す場合、追加シンタックス（又は、シンタックスエレメント）が存在してよい。
【００８６】
例えば、絶対値が１よりも大きいか否かを示すａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇが伝送されてよい。仮に、絶対値が１よりも大きくないことをａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇが示す（又は、指示する）場合、ＭＶＤの絶対値は１と決定されてよい。仮に、絶対値が１よりも大きいことをａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇが示す場合、追加シンタックスが存在してよい。例えば、ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２が存在してよい。ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２は（絶対値−２）の値であってよい。ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇ、ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ１＿ｆｌａｇ値によって絶対値が１よりも大きい（すなわち、２以上である）と決定されたので、（絶対値−２）値がシグナルされてよい。このように、絶対値に関する情報を階層的にシンタックスシグナリングすることによって、絶対値をそのまま二進化（ｂｉｎａｒｉｚａｔｉｏｎ）してシグナリングする場合に比べてより少ないビットが使用されて済む。
【００８７】
一実施例において、上述した絶対値に関連したシンタックスは、指数ゴロム（Ｅｘｐｏｎｅｎｔｉａｌ−Ｇｏｌｏｍｂ）、切削型単項（ｔｒｕｎｃａｔｅｄ  ｕｎａｒｙ）、切削型ライス（ｔｒｕｎｃａｔｅｄ  Ｒｉｃｅ）などの変数長（ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ）である二進化方法を適用してコードされてよい。また、ＭＶＤの符号を示すフラグは、ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇでシグナルされてよい。
【００８８】
上述した実施例において、ＭＶＤに対するコーディング方法を説明したが、ＭＶＤ以外の情報も符号及び絶対値を分けてシグナリングすることができる。そして、絶対値は、前記絶対値があらかじめ定義された特定値よりも大きいか否かを示すフラグ及び絶対値から前記特定値を引いた値にコードされてよい。前記表１において、［０］と［１］は、コンポーネントインデックス（ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）を表すことができる。例えば、ｘ−コンポーネント（すなわち、水平成分）、ｙ−コンポーネント（すなわち、垂直成分）を表すことができる。
【００８９】
図１１は、本発明の一実施例に係る適応的なモーションベクトル解像度（ａｄａｐｔｉｖｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｒｅｓｏｌｕｔｉｏｎ）情報のシグナリング方法を例示する図である。本発明の一実施例によれば、ＭＶ又はＭＶＤを示すための解像度は多様であり得る。例えば、解像度は、ピクセル（ｐｉｘｅｌ）（又は、ペル（ｐｅｌ））に基づいて表現されてよい。例えば、ＭＶ又はＭＶＤは、１／４（ｑｕａｒｔｅｒ）、１／２（ｈａｌｆ）、１（ｉｎｔｅｇｅｒ）、２、４ピクセルなどの単位でシグナルされてよい。そして、エンコーダは、ＭＶ又はＭＶＤの解像度情報をデコーダにシグナリングすることができる。また、例えば、１６は、１／４単位のとき、６４にコードされ（１／４＊６４＝１６）、１単位のとき、１６にコードされ（１＊１６＝１６）、４単位のとき、４にコードされてよい（４＊．４＝１６）。すなわち、ＭＶ又はＭＶＤ値は、次の数学式３によって決定されてよい。
【００９０】
【数３】
2022502972.tif 000006
【００９１】
数学式３において、ｖａｌｕｅＤｅｔｅｒｍｉｎｅｄは、ＭＶ又はＭＶＤ値を表す。また、ｖａｌｕｅＰｅｒＲｅｓｏｌｕｔｉｏｎは、決定された解像度に基づいてシグナリングされる値を表す。このとき、ＭＶ又はＭＶＤでシグナリングする値が決定された解像度で割り切れない場合、ラウンド（ｒｏｕｎｄｉｎｇ）プロセスなどが適用されてよい。高い解像度を使用すれば正確度が向上できるが、コードされる値が大きいため多くのビットが使用されることがあり、低い解像度を使用すれば正確度が低くなることがあるが、コードされる値が小さいため少ないビットが使用されて済む。一実施例として、上述した解像度は、シーケンス、ピクチャ、スライス、コーディングツリーユニット（ｃｏｄｉｎｇ  ｔｒｅｅ  ｕｎｉｔ，ＣＴＵ）、コーディングユニット（ｃｏｄｉｎｇ  ｕｎｉｔ，ＣＵ）などの単位で個別に設定されてよい。すなわち、エンコーダ／デコーダは、上述した単位のうち、あらかじめ定義された単位によって適応的に解像度を決定／適用することができる。
【００９２】
本明細書の一実施例によれば、上述した解像度情報は、エンコーダからデコーダにシグナリングされてよい。この時、解像度に関する情報は、前述した変数長に基づいて二進化してシグナリングされてよい。このような場合、最小の値（すなわち、最も前にある値）に該当するインデックスに基づいてシグナリングされる場合、シグナリングオーバーヘッドが減ることができる。一実施例として、高い解像度から低い解像度の順にシグナリングインデックスにマッピングされてもよい。
【００９３】
本明細書の一実施例によれば、図１１は、様々な複数の解像度のうち、３つの解像度が用いられる場合を仮定してシグナリング方法を示す。この場合、３つのシグナリングビットは、０、１０、１１でよく、前記３つのシグナリングインデックスはそれぞれ、第１解像度、第２解像度、第３解像度を表すことができる。第１解像度をシグナリングするために１ビットが要求され、残りの解像度をシグナリングするために２ビットが要求されるため、第１解像度をシグナリングする場合、シグナリングオーバーヘッドを相対的に減らすことができる。図１１の例示において、第１解像度、第２解像度、第３解像度はそれぞれ、１／４、１，４ピクセル解像度と定義されてよい。以下の実施例において、ＭＶ解像度はＭＶＤの解像度を意味できる。
【００９４】
図１２は、本発明の一実施例に係るヒストリーベースモーションベクトル予測（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ，ＨＭＶＰ）方法を例示する図である。前述したように、エンコーダ／デコーダは、モーションベクトル候補として、空間候補、時間候補などを用いることができ、本発明の一実施例では、モーションベクトル候補としてヒストリーベースモーションベクトル（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ）、すなわち、ＨＭＶＰをさらに使用することができる。
【００９５】
本明細書の一実施例によれば、エンコーダ／デコーダは、テーブル（ｔａｂｌｅ）に、以前にコードされたブロックのモーション情報（ｍｏｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ）を保存することができる。本明細書において、ＨＭＶＰは、以前にコードされたブロックのモーション情報を表す。すなわち、エンコーダ／デコーダは、ＨＭＶＰをテーブルに保存することができる。本明細書において、前記ＨＭＶＰを保存するテーブルを、テーブル又はＨＭＶＰテーブルと呼ぶが、本発明がこのような名称に制限されるものではない。一例として、前記テーブル（又は、ＨＭＶＰテーブル）は、バッファ、ＨＭＶＰバッファ、ＨＭＶＰ候補バッファ、ＨＭＶＰリスト、ＨＭＶＰ候補リストなどと呼ぶことができる。
【００９６】
ＨＭＶＰテーブルに保存されるモーション情報は、ＭＶ、参照リスト（ｒｅｆｅｒｅｎｃｅ  ｌｉｓｔ）、参照インデックス（ｒｅｆｅｒｅｎｃｅ  ｉｎｄｅｘ）又は利用フラグ（ｕｔｉｌｉｚａｔｉｏｎ  ｆｌａｇ）のうち少なくとも一つを含むことができる。例えば、モーション情報は、参照リストＬ０のＭＶ、Ｌ１のＭＶ、Ｌ０参照インデックス、Ｌ１参照インデックス、Ｌ０予測リスト利用フラグ又はＬ１予測リスト利用フラグのうち少なくとも一つを含むことができる。このとき、予測リスト利用フラグは、当該リストに対して使用可能な情報であるか否か、有意な情報であるか否かなどを示すことができる。
【００９７】
また、本明細書の一実施例によれば、ＨＭＶＰテーブルに保存されるモーション情報は、ヒストリーベース（ｈｉｓｔｏｒｙ−ｂａｓｅｄ）で生成／保存されてよい。ヒストリーベースモーション情報は、コーディング順序において現在ブロック以前にコードされたブロックのモーション情報を表す。例えば、エンコーダ／デコーダは、現在ブロック以前にコードされたブロックのモーション情報をＨＭＶＰテーブルに保存することができる。このとき、前記ブロックはコーディングユニット（ｃｏｄｉｎｇ  ｕｎｉｔ，ＣＵ）又は予測ユニット（ｐｒｅｄｉｃｔｉｏｎ  ｕｎｉｔ，ＰＵ）などであってよい。前記ブロックのモーション情報は、当該ブロックのモーション補償に用いられたモーション情報又はモーション補償に用いられたモーション情報候補などを意味できる。そして、ＨＭＶＰテーブルに保存されたモーション情報（すなわち、ＨＭＶＰ）は、後でエンコード／デコードされるブロックのモーション補償に用いられてよい。例えば、ＨＭＶＰテーブルに保存されたモーション情報は、モーション候補リスト構成（ｍｏｔｉｏｎ  ｃａｎｄｉｄａｔｅ  ｌｉｓｔ  ｃｏｎｓｔｒｕｃｔｉｏｎ）に用いられてよい。
【００９８】
図１２を参照すると、エンコーダ／デコーダは、ＨＭＶＰテーブルから一つ以上のＨＭＶＰ候補を取り込むことができる（Ｓ１２０１）。そして、エンコーダ／デコーダは前記ＨＭＶＰ候補をモーション候補リストに追加できる。例えば、モーション候補リストは、マージ候補リスト（又は、マージリスト）、ＡＭＶＰ候補リスト（又は、ＡＭＶＰリスト）であってよい。そして、エンコーダ／デコーダは、前記モーション候補リストに基づいて、現在ブロックに対するモーション補償及びエンコーディング／デコーディングを行うことができる（Ｓ１２０２）。エンコーダ／デコーダは、現在ブロックのモーション補償又はデコーディングに用いられた情報を用いてＨＭＶＰテーブルをアップデートすることができる（Ｓ１２０３）。
【００９９】
本発明の一実施例によれば、ＨＭＶＰ候補は、マージ候補リスト構成プロセスで用いられてよい。ＨＭＶＰテーブルの最新の複数のＨＭＶＰ候補が順に確認され、時間モーションベクトル予測（又は、予測子）（ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ（ｏｒ  ｐｒｅｄｉｃｔｏｒ）、ＴＭＶＰ）候補以降の順序でマージ候補リストに挿入（又は、追加）されてよい。また、ＨＭＶＰ候補を追加するとき、サブ−ブロックモーション候補（すなわち、ＡＴＭＶＰ）を除いてマージリストに含まれた空間又は時間マージ候補に対してプルーニングプロセス（又は、プルーニングチェック）が行われてよい。一実施例において、プルーニング動作の数を減らすために、次の実施例が適用されてよい。
【０１００】
１）例えば、ＨＭＰＶ候補の数は、次の数学式４のように設定されてよい。
【０１０１】
【数４】
2022502972.tif 000007
【０１０２】
数学式４において、Ｌは、ＨＭＰＶ候補の数を表す。そして、Ｎは、利用可能な非サブブロック（ｎｏｎ−ｓｕｂ  ｂｌｏｃｋ）マージ候補の数を表し、Ｍは、テーブルで利用可能なＨＭＶＰ候補の数を表す。例えば、Ｎは、マージ候補リストに含まれた非サブブロック（ｎｏｎ−ｓｕｂ  ｂｌｏｃｋ）マージ候補の数を示すことができる。Ｎが４よりも小さいか等しい場合、ＨＭＶＰ候補の数はＭと決定されてよく、そうでない場合、ＨＭＶＰ候補の数は（８−Ｎ）と決定されてよい。
【０１０３】
２）また、例えば、利用可能なマージ候補の総数が、シグナリングされた最大許容マージ候補の数から１を引いた値に到達すれば、ＨＭＶＰリストからのマージ候補リスト構成プロセスは終了してよい。
【０１０４】
３）また、例えば、結合した双予測マージ候補（ｃｏｍｂｉｎｅｄ  ｂｉ−ｐｒｅｄｉｃｔｉｖｅ  ｍｅｒｇｅ  ｃａｎｄｉｄａｔｅ）の誘導のための候補対の数は１２から６に減少してよい。
【０１０５】
また、本発明の一実施例によれば、ＨＭＶＰ候補は、ＡＭＶＰ候補リスト構成プロセスにおいても用いられてよい。テーブルにおいて、最後のＫインデックスを有するＨＭＶＰ候補のモーションベクトルは、ＴＭＶＰ候補に続いて挿入されてよい。一実施例において、ＡＭＶＰターゲット参照ピクチャと同じ参照ピクチャを有するＨＭＶＰ候補だけを、ＡＭＶＰ候補リストを構成するのに用いることができる。この場合にも、上述したプルーニングプロセスがＨＭＶＰ候補に適用されてよい。例えば、上述したＫは４に設定され、ＡＭＶＰリストのサイズ（又は、長さ）は２に設定されてよい。
【０１０６】
図１３は、本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を例示する図である。本発明の一実施例によれば、ＨＭＶＰテーブルは、ＦＩＦＯ（ｆｉｒｓｔ−ｉｎ，ｆｉｒｓｔ−ｏｕｔ）方式で維持／管理されてよい。すなわち、新しい入力がある場合、最も以前のエレメント（ｅｌｅｍｅｎｔ）（又は、候補）がまず出力されてよい。例えば、現在ブロックで用いられたモーション情報をＨＭＶＰテーブルに追加するとき、エンコーダ／デコーダは、ＨＭＶＰテーブルの最大エレメント個数分のエレメントが満たされている場合、最も以前に追加したモーション情報をＨＭＶＰテーブルから出力させ、現在ブロックで用いられたモーション情報をＨＭＶＰテーブルに追加することができる。この時、既存ＨＭＶＰテーブルに存在するモーション情報を出力した場合、エンコーダ／デコーダは、その次の位置（又は、インデックス）のモーション情報を、出力された位置を埋めながら移動させることができる。例えば、出力されたモーション情報のＨＭＶＰテーブルインデックスがｍであり、最も以前のエレメントがＨＭＶＰテーブルインデックス０に位置するとき、ｍよりも大きいインデックスｎに該当するモーション情報はそれぞれ、ＨＭＶＰテーブルのインデックス（ｎ−１）位置に移動することができる。これによって、ＨＭＶＰテーブルにおいてインデックスの高い位置が空になり、エンコーダ／デコーダは、現在ブロックに用いられたモーション情報に対して、ＨＭＶＰテーブル内で最も高いインデックスを割り当てることができる。すなわち、現在ブロックのモーション情報は、有効なエレメントが含まれた最大インデックスがＭであるとき、インデックス（Ｍ＋１）の位置に挿入されてよい。
【０１０７】
また、本発明の一実施例によれば、エンコーダ／デコーダは、特定モーション情報に基づいてＨＭＶＰテーブルをアップデートするとき、プルーニングプロセスを適用することができる。すなわち、エンコーダ／デコーダは、前記特定モーション情報又は前記特定モーション情報に該当する情報がＨＭＶＰテーブルに含まれているか否かを確認することができる。そして、重複するモーション情報が含まれている場合とそうでない場合のＨＭＶＰテーブルアップデート方法を個別に定義することができる。これによって、ＨＭＶＰテーブルに重複するモーション情報が含まれることが防止でき、様々な候補をモーション補償に考慮することができる。
【０１０８】
一実施例において、エンコーダ／デコーダは、現在ブロックに用いられたモーション情報に基づいてＨＭＶＰテーブルアップデートをするとき、前記モーション情報がＨＭＶＰテーブルに既に含まれた場合、既存にＨＭＶＰテーブルに含まれている重複するモーション情報を削除し、前記モーション情報をＨＭＶＰテーブルに新規に追加することができる。この時、既存の候補を削除して新規に追加する方法に先立って、ＦＩＦＯで説明した方法用いることができる。すなわち、ＨＭＶＰテーブル内で現在追加しようとするモーション情報のインデックスがｍと決定され、最も以前のモーション情報が出力されてよい。モーション情報がＨＭＶＰテーブルに既に含まれていないと、エンコーダ／デコーダは、最も以前に追加したモーション情報を削除し、前記モーション情報をＨＭＶＰにテーブルに追加することができる。
【０１０９】
他の実施例において、現在ブロックに用いられたモーション情報に基づいてＨＭＶＰテーブルをアップデートするとき、エンコーダ／デコーダは、前記モーション情報がＨＭＶＰテーブルに既に含まれていると、ＨＭＶＰテーブルを変更せず、既に含まれていないと、ＨＭＶＰテーブルをＦＩＦＯ方式でアップデートすることができる。
【０１１０】
また、本発明の一実施例によれば、エンコーダ／デコーダは、あらかじめ定義された時点又はあらかじめ定義された位置でＨＭＶＰテーブルを初期化（又は、リセット）することができる。エンコーダとデコーダで同じモーション候補リストを使用しなければならないので、エンコーダとデコーダは、同じＨＭＶＰテーブルを使用する必要がある。このとき、ＨＭＶＰテーブルを初期化せずに続けて使用すれば、コーディングブロック間の依存性（ｄｅｐｅｎｄｅｎｃｙ）が発生する問題がある。したがって、並列処理（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｉｎｇ）を支援するためにブロック間の依存性を減らす必要があり、並列処理を支援する単位によってＨＭＶＰテーブルを初期化する動作があらかじめ設定されてよい。例えば、エンコーダ／デコーダは、スライスレベル、ＣＴＵ行（ｒｏｗ）レベル、ＣＴＵレベルなどにおいてＨＭＶＰテーブルを初期化するように設定することができる。例えば、ＣＴＵ行レベルにおいてＨＭＶＰテーブルに対する初期化が定義された場合、エンコーダ／デコーダはそれぞれのＣＴＵ行に対するコーディングを始める時、ＨＭＶＰテーブルが空いた（ｅｍｐｔｙ）状態でエンコーディング／デコーディングを行うことができる。
【０１１１】
図１４は、本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。図１４を参照すると、本発明の一実施例において、エンコーダ／デコーダは、ＨＭＶＰＣａｎｄＬｉｓｔをｍｖＣａｎｄに基づいてアップデートすることができる。本明細書において、ＨＭＶＰＣａｎｄＬｉｓｔはＨＭＶＰテーブルを表し、ｍｖＣａｎｄは、現在ブロックのモーション情報を表す。図１４に示すプロセスは、２個のモーションベクトルｍｖＬ０及びｍｖＬ１、２個の参照インデックスｒｅｆＩｄｘＬ０及びｒｅｆＩｄｘＬ１、及び２個の予測リスト利用フラグｐｒｅｄＦｌａｇＬ０及びｐｒｅｄＦｌａｇＬ１を有するモーション候補ｍｖＣａｎｄを入力とすることができる。そして、図１４に示すプロセスは、修正されたＨＭＶＰＣａｎｄＬｉｓｔ配列を出力することができる。
【０１１２】
一番目の段階（Ｓｔｅｐ１）で、エンコーダ／デコーダは、ＨＭＶＰテーブル内ＨＭＶＰのインデックスを示す変数であるＨＭＶＰＩｄｘ値を０から（ＨＭＶＰＣａｎｄＮｕｍ−１）まで変化させながら、ｍｖＣａｎｄがＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］と同一であるか否か確認することができる。ここで、ＨＭＶＰＣａｎｄＮｕｍは、ＨＭＶＰテーブルに含まれたＨＭＶＰの個数を示す。そして、ＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］は、ＨＭＶＰＩｄｘ値を有するＨＭＶＰテーブル内候補を示す。ｍｖＣａｎｄがＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］と同じ場合、エンコーダ／デコーダは、候補の同一か否かを示す変数ｓａｍｅＣａｎｄを真（ｔｒｕｅ）と設定できる。一実施例において、ｍｖＣａｎｄがＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］と同一であるか否かを確認するとき、エンコーダ／デコーダは、Ｌ０に関連したＭＶ及び参照インデックス、又はＬ１に関連したＭＶ及び参照インデックスのうち、当該予測リスト使用フラグ（ｐｒｅｄｉｃｔｉｏｎ  ｌｉｓｔ  ｕｔｉｌｉｚａｔｉｏｎ  ｆｌａｇ）が１であるモーション情報に対して比較を行うことができる。
【０１１３】
そして、二番目の段階（Ｓｔｅｐ２）で、エンコーダ／デコーダは、臨時インデックスを示す変数ｔｅｍｐＩｄｘをＨＭＶＰＣａｎｄＮｕｍに設定することができる。三番目の段階（Ｓｔｅｐ３）で、ｓａｍｅＣａｎｄが真であるか、ＨＭＶＰＣａｎｄＮｕｍが最大ＨＭＶＰテーブルの大きさ（又は、長さ）と同一である場合、エンコーダ／デコーダは、ｔｅｍｐＩｄｘを（ｓａｍｅＣａｎｄ？ＨＭＶＰＩｄｘ：１）から（ＨＭＶＰＣａｎｄＮｕｍ−１）まで変化させながら、ＨＭＶＰＣａｎｄＬｉｓｔ［ｔｅｍｐＩｄｘ］をＨＭＶＰＣａｎｄＬｉｓｔ［ｔｅｍｐＩｄｘ−１］に複写することができる。すなわち、ｓａｍｅＣａｎｄが真である場合、ｔｅｍｐＩｄｘはＨＭＶＰＩｄｘから始まり、エンコーダ／デコーダは、ＨＭＶＰＩｄｘをＨＭＶＰテーブル内でｍｖＣａｎｄと同じエレメントインデックスに１を足した値に設定することができる。また、ｓａｍｅＣａｎｄが偽である場合、ｔｅｍｐＩｄｘは１から始まり、ＨＭＶＰＣａｎｄＬｉｓｔ［０］はＨＭＶＰＣａｎｄＬｉｓｔ［１］の内容で書き込まれてよい。
【０１１４】
四番目の段階（Ｓｔｅｐ４）で、エンコーダ／デコーダは、アップデートしようとするモーション情報であるｍｖＣａｎｄをＨＭＶＰＣａｎｄＬｉｓｔ［ｔｅｍｐＩｄｘ］に複写することができる。五番目の段階（Ｓｔｅｐ５）で、ＨＭＶＰＣａｎｄＮｕｍが最大ＨＭＶＰテーブルサイズよりも小さい場合、エンコーダ／デコーダは、ＨＭＶＰＣａｎｄＮｕｍを１増加させることができる。
【０１１５】
図１５は、本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。図１５を参照すると、本発明の一実施例において、エンコーダ／デコーダは、現在ブロックのモーション情報がＨＭＶＰテーブルに含まれているか否かを確認する過程でＨＭＶＰＩｄｘを０よりも大きい値から比較し始めることができる。例えば、現在ブロックのモーション情報がＨＭＶＰテーブルに含まれている否かを確認するとき、エンコーダ／デコーダは、ＨＭＶＰＩｄｘ０に該当するものを除いて比較することができる。言い換えると、エンコーダ／デコーダは、ＨＭＶＰＩｄｘ１に該当する候補からｍｖＣａｎｄと比較することができる。図１５に示すプロセスは、２個のモーションベクトルｍｖＬ０及びｍｖＬ１、２個の参照インデックスｒｅｆＩｄｘＬ０及びｒｅｆＩｄｘＬ１、及び２個の予測リスト利用フラグｐｒｅｄＦｌａｇＬ０及びｐｒｅｄＦｌａｇＬ１を有するモーション候補ｍｖＣａｎｄを入力とすることができる。そして、図１５に示すプロセスは、修正されたＨＭＶＰＣａｎｄＬｉｓｔ配列を出力することができる。
【０１１６】
上の図１４で説明したＨＭＶＰテーブルアップデート方法をさらに説明すると、一番目の段階で、ＨＭＶＰＩｄｘ０のものからｍｖＣａｎｄと同じモーション情報があるかどうか確認することができる。しかし、前述したアップデート方法において、ｍｖＣａｎｄがＨＭＶＰＣａｎｄＬｉｓｔ［０］に存在したり、或いはＨＭＶＰＩｄｘ０からＨＭＶＰＣａｎｄＮｕｍに該当するＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］に存在しない場合、ＨＭＶＰＣａｎｄＬｉｓｔ［０］のモーション情報を出力し、ｍｖＣａｎｄが０でないＨＭＶＰＩｄｘのうちＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］に存在する場合、ＨＭＶＰＣａｎｄＬｉｓｔ［０］の内容はアップデートされないので、ｍｖＣａｎｄをＨＭＶＰＣａｎｄＬｉｓｔ［０］と比較しなくてもよい。また、現在ブロックのモーション情報が空間的に隣り合うブロックのモーション情報と類似するので、ＨＭＶＰテーブル内で最近に追加されたモーション情報と類似する可能性が高い。このような仮定によれば、ｍｖＣａｎｄは、ＨＭＶＰＩｄｘ０に該当する候補のモーション情報よりはＨＭＶＰＩｄｘが０よりも大きい候補とモーション情報が類似であり得、類似の（又は、同一の）モーション情報が探索された場合、プルーニングプロセスを終了できるので、ＨＭＶＰＩｄｘを０よりも大きい値から上記の図１４の一番目の段階を行うことによって、上述した図１４の実施例に比べて、比較する回数を減らすことができる。
【０１１７】
図１６は、本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。図１６を参照すると、本発明の一実施例において、エンコーダ／デコーダは、現在ブロックのモーション情報、すなわち、ｍｖＣａｎｄがＨＭＶＰテーブルに含まれている否かを確認する過程でＨＭＶＰＩｄｘを０よりも大きい値から比較できる。図１６に示すプロセスは、２個のモーションベクトルｍｖＬ０及びｍｖＬ１、２個の参照インデックスｒｅｆＩｄｘＬ０及びｒｅｆＩｄｘＬ１、及び２個の予測リスト利用フラグｐｒｅｄＦｌａｇＬ０及びｐｒｅｄＦｌａｇＬ１を有するモーション候補ｍｖＣａｎｄを入力とすることができる。そして、図１６に示すプロセスは、修正されたＨＭＶＰＣａｎｄＬｉｓｔ配列を出力できる。例えば、エンコーダ／デコーダは、ｍｖＣａｎｄがＨＭＶＰテーブルに含まれている否かを確認するとき、ＨＭＶＰＩｄｘ値が０以上に該当するあらかじめ定義された特定個数のモーション情報（又は、候補）を除いて比較プロセス（又は、プルーニングプロセス）を行うことができる。具体的に、比較しようとするエレメントの個数を示す変数をＮｕｍＰｒｕｎｅで示すとき、エンコーダ／デコーダは、ｍｖＣａｎｄがＨＭＶＰＩｄｘ（ＨＭＶＰＣａｎｄＮｕｍ−ＮｕｍＰｒｕｎｅ＋１）から（ＨＭＶＰＣａｎｄＮｕｍ−１）に該当するＨＭＶＰテーブルエレメントと一致するかどうか確認することができる。これによって、以前に説明した実施例に比べて、比較回数を顕著に減らすことができる。
【０１１８】
他の実施例において、エンコーダ／デコーダは、ＨＭＶＰテーブル内でＨＭＶＰＩｄｘ０でない既に設定された特定位置とｍｖＣａｎｄを比較することができる。例えば、エンコーダ／デコーダは、ｍｖＣａｎｄをＨＭＶＰＩｄｘ  ＰｒｕｎｅＳｔａｒｔから（ＨＭＶＰＣａｎｄＮｕｍ−１）までに該当するＨＭＶＰテーブルエレメントと重複するモーション情報であるか否か比較することができる。
【０１１９】
図１７は、本発明の一実施例に係るＨＭＶＰテーブルのアップデート方法を説明するための図である。図１７を参照すると、本発明の一実施例において、エンコーダ／デコーダは、ｍｖＣａｎｄがＨＭＶＰテーブルに含まれているか否か確認する過程で、最近に追加したＨＭＶＰテーブルエレメントから古いＨＭＶＰテーブルエレメントへの順にｍｖＣａｎｄと比較することができる。図１７に示すプロセスは、２個のモーションベクトルｍｖＬ０及びｍｖＬ１、２個の参照インデックスｒｅｆＩｄｘＬ０及びｒｅｆＩｄｘＬ１、及び２個の予測リスト利用フラグｐｒｅｄＦｌａｇＬ０及びｐｒｅｄＦｌａｇＬ１を有するモーション候補ｍｖＣａｎｄを入力とすることができる。そして、図１７に示すプロセスは、修正されたＨＭＶＰＣａｎｄＬｉｓｔ配列を出力することができる。ｍｖＣａｎｄが空間的に隣り合うブロックのモーション情報と類似する可能性が高いので、ＨＭＶＰテーブル内で相対的に最近に追加されたモーション情報と類似し得る。このような方式により、類似の（又は、同一の）モーション情報が探索された場合、プルーニングプロセスを終了できる。これをよって、図１７の実施例のように、最近に追加したエレメントに該当するＨＭＶＰＩｄｘから比較を行うことによって、比較回数を減らすことができる。
【０１２０】
図１８は、本発明の一実施例に係るプルーニング（ｐｒｕｎｉｎｇ）プロセスを例示する図である。本発明の一実施例によれば、エンコーダ／デコーダは、現在ブロックのモーション情報がＨＭＶＰテーブルに既に含まれている否かを確認するとき、ＨＭＶＰテーブルの一部の情報と比較することができる。これは、比較プロセスによる複雑度（ｃｏｍｐｌｅｘｉｔｙ）を減らすためである。例えば、モーション情報がＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］に含まれている否かを確認するとき、エンコーダ／デコーダは、ＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］のサブセット（ｓｕｂｓｅｔ）又はあらかじめ定義されたインデックスを有するＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］を用いてプルーニングプロセスを行うことができる。例えば、ＨＭＶＰＣａｎｄＬｉｓｔ［ＨＭＶＰＩｄｘ］にはＬ０、Ｌ１に関する情報がそれぞれ含まれてよいが、Ｌ０、Ｌ１使用フラグ（ｕｔｉｌｉｚａｔｉｏｎ  ｆｌａｇ）がいずれも１である場合、エンコーダ／デコーダは、既に設定された約束（又は、条件）によってＬ０、Ｌ１のいずれか一つを選択して比較することができる。例えば、Ｌ０参照インデックスとＬ１参照インデックスのうち小さい参照リストに対してのみ、重複したモーション情報を確認するプルーニングプロセスを行うことができる。
【０１２１】
一実施例において、エンコーダ／デコーダは、ＨＭＶＰテーブルのモーション情報のＬ０参照インデックスとＬ１参照インデックスのうち小さい参照リストに対してのみプルーニングプロセスを行うことができる。例えば、エンコーダ／デコーダは、現在ブロックのモーション情報のＬ０参照インデックスとＬ１参照インデックスのうち小さい参照インデックスに対してのみプルーニングプロセスを行うことができる。他の実施例において、エンコーダ／デコーダは、現在ブロックの参照インデックスビットとモーション情報ビットのサブセットに基づく値を、ＨＭＶＰテーブルエレメントの参照インデックスビットとモーション情報ビットのサブセットに基づく値と比較してＨＭＶＰテーブルに既に含まれているかいなか判断できる。一実施例として、参照インデックスビットとモーション情報ビットのサブセットに基づく値は、参照インデックスビットとビットとモーション情報ビットのうち一部のビットであってよい。他の実施例において、参照インデックスビットとモーション情報ビットのサブセットに基づく値は、第１サブセットと第２サブセットをハッシュ関数（ｈａｓｈ  ｆｕｎｃｔｉｏｎ）に通過させた値（又は、出力）であってよい。他の実施例において、プルーニング過程で両モーションベクトルのサイズ差があらかじめ定義された臨界値よりも小さいか等しい場合、エンコーダ／デコーダは、両モーションベクトルを同一又は類似なものと判断できる。
【０１２２】
図１９は、本発明の一実施例に係るＨＭＶＰ候補の追加方法を例示する図である。本発明の一実施例によれば、エンコーダ／デコーダは、ＨＭＶＰテーブルに含まれたＭＶをモーション候補リストに追加できる。一実施例として、現在ブロックのモーションは、最近に追加されたモーションに類似する可能性があり、最近に追加されたモーションが候補として有用である可能性があるので、エンコーダ／デコーダは、ＨＭＶＰテーブルで最近に追加されたエレメントを候補リストに追加することができる。
【０１２３】
このとき、一実施例において、図１９を参照すると、エンコーダ／デコーダは、最も最近に追加されたＨＭＶＰテーブルのエレメントではなく特定インデックス値を有するエレメントから候補リストに追加することができる。又は、エンコーダ／デコーダは、最も最近に追加されたＨＭＶＰテーブルエレメントではなくその次のエレメントからその以前に追加された特定個数のエレメントを候補リストに追加してもよい。
【０１２４】
又は、一実施例において、エンコーダ／デコーダは、最近に追加されたＨＭＶＰテーブルエレメントの１個以上を除くエレメントからその以前に追加された特定個数のエレメントを候補リストに追加してもよい。この時、エンコーダ／デコーダは、ＨＭＶＰテーブルエレメントのうち、相対的に最近に入力されたモーション情報を候補リストに優先的に追加することができる。
【０１２５】
最も最近に追加されたＨＭＶＰテーブルエレメントは、現在ブロックと空間的に近接したブロックに当該し得るので、候補リスト構成過程で既に空間候補として追加されている可能性が高い。したがって、本実施例のように、最近に追加された特定個数の候補を除いて候補リストを構成することによって、不要な候補を候補リストに追加することを防止し、候補リストに追加するとき、プルーニングプロセッサの複雑度を下げることができる。ＨＭＶＰテーブルエレメント及び使用をモーション候補リスト構成を中心に説明したが、本発明は、これに限定されず、他のパラメータ又はインター／イントラ予測関連情報に対して適用可能である。
【０１２６】
図２０は、本発明の一実施例に係るマージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）を例示する図である。本発明の一実施例によれば、エンコーダ／デコーダは、並列処理を容易にするために、複数のブロックに対して同じ候補リストを共有するようにしてよい。前記候補リストは、モーション候補リストであってよい。既に設定された約束にしたがって前記複数のブロックが定義されてよい。例えば、特定条件を満たすブロック（又は、領域）の下位にあるブロックが前記複数のブロックと定義されてよい。又は、特定条件を満たすブロックに含まれるブロックが前記複数のブロックと定義されてもよい。本明細書において、前記複数のブロックが同一に使用する候補リストは、共有されたリスト（ｓｈａｒｅｄ  ｌｉｓｔ）と呼ぶことができる。仮に、マージ候補リストに適用される場合、共有されたマージリスト（ｓｈａｒｅｄ  ｍｅｒｇｅ  ｌｉｓｔ）と呼ぶことができる。
【０１２７】
また、本明細書において、前記特定条件を満たすブロックは、マージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）（すなわち、図２０に点線で表示された部分）、共有マージノード、マージ共有領域、共有マージ領域、共有マージリストノード、共有マージリスト領域などと呼ぶことができる。エンコーダ／デコーダは、前記マージ共有ノードに隣接した周辺ブロックのモーション情報に基づいてモーション候補リストを構成でき、これによって、前記マージ共有ノード内コーディングユニットに対する並列処理を保障することができる。また、上述した特定条件として臨界値を用いることができる。例えば、前記マージ共有ノードと定義されるブロックは、前記臨界値に基づいて定義（又は、決定）されてよい。一例として、前記特定条件で用いられる臨界値は、ブロックサイズ、ブロックの幅／高さに関連した値に設定されてよい。
【０１２８】
図２１は、本発明の一実施例に係る共有されたリスト（ｓｈａｒｅｄ  ｌｉｓｔ）が用いられる場合、ＨＭＶＰアップデート方法を説明するための図である。図２１では、図２０で前述した共有されたリストが用いられる場合を仮定する。ＨＭＶＰ候補を用いて共有されたリストを構成するとき、エンコーダとデコーダは互いに同一のＨＭＶＰテーブルを維持しなければならない。仮に、同一の共有されたリストを用いる複数のブロックが、使用したモーション情報に基づいてＨＭＶＰテーブルのアップデートルールが定義されていないと、同一の候補リストを構成することができない。したがって、後述する図２２〜図２４では、図２１に示したマージ共有ノード内でＣＵ１、ＣＵ２、ＣＵ３、ＣＵ４が共有されたリストを用いる場合を仮定して、マージ共有ノード内で同じ共有されたリストを保障するためのＨＭＶＰテーブルアップデート方法を説明する。
【０１２９】
図２２は、本発明の一実施例に係るマージ共有ノード内のブロックのモーション情報に基づいてＨＭＶＰテーブルをアップデートする方法を例示する図である。図２２を参照すると、エンコーダ／デコーダは、マージ共有ノードの下位ノードコーディングユニットにいるＣＵ１、ＣＵ２、ＣＵ３、ＣＵ４に対して同じ共有リストを適用できる。具体的に、エンコーダ／デコーダは、マージ共有ノードに隣接している周辺ブロックのモーション情報に基づいてＣＵ１、ＣＵ２、ＣＵ３、ＣＵ４に対する同一のモーション候補リストを構成できる（Ｓ２２０１、Ｓ２２０２、Ｓ２２０３、Ｓ２２０４）。前記モーション候補リストは、モーションベクトル成分及び参照インデックスを含むことができる。
【０１３０】
共有モーション候補リストを用いてＣＵ１、ＣＵ２、ＣＵ３、ＣＵ４に対するモーション情報誘導又はエンコーディング／デコーディング後に、エンコーダ／デコーダは、ＣＵ１、ＣＵ２、ＣＵ３、ＣＵ４に対するモーション情報を用いてＨＭＶＰテーブルをアップデートすることができる（Ｓ２２０５）。同一の候補リストを用いるべき状況で、すなわち、マージ共有ノード内で複数のＣＵがＨＭＶＰテーブルをアップデートすれば、同一の候補リストを使用できないこともある。したがって、本発明の一実施例によれば、共有リストを用いる状況で、ＨＭＶＰテーブルのアップデートは、マージ共有ノードに属した全てのＣＵのＭＶ誘導又はコーディングが終了した後に行われてよく、これによって、マージ共有ノードに属した全てのＣＵが同一のＨＭＶＰテーブルに基づいてモーション候補リストを構成することができる。
【０１３１】
図２３は、本発明の一実施例に係る共有されたリスト（ｓｈａｒｅｄ  ｌｉｓｔ）が用いられる場合、ＨＭＶＰアップデート方法を説明するための図である。図２３を参照すると、上の図２０〜図２２で説明した共有されたリストが用いられる場合を仮定する。このとき、図２２における各ＣＵのＭＶ誘導又はエンコーディング／デコーディングが終了すると、マージ共有ノード内に複数のＣＵが存在するため、用いられたモーション情報も複数存在し得る。
【０１３２】
本発明の一実施例によれば、図２３に示すように、エンコーダ／デコーダは、マージ共有ノード内の全モーション情報を用いてＨＭＶＰテーブルをアップデートすることができる。言い換えると、同じ共有リストを用いる全てのＣＵで使用したモーション情報を用いて、エンコーダ／デコーダはＨＭＶＰテーブルをアップデートすることができる。この時アップデートの順序は、エンコーダとデコーダに既に設定されている必要がある。
【０１３３】
一実施例において、エンコーダ／デコーダは、アップデート順序として正規デコーディング（ｒｅｇｕｌａｒ  ｄｅｃｏｄｉｎｇ）順序を参照することができる。例えば、図２３に示すように、正規コーディング順序にしたがって、各ＣＵに該当するモーション情報をＨＭＶＰテーブルアップデート過程の入力として順に使用することができる。又は、一実施例として、エンコーダ／デコーダは、参照インデックス順序、現在ピクチャと参照ピクチャ間のＰＯＣ関係などを参照して、複数のＣＵのモーション情報に対するＨＭＶＰテーブルアップデート順序を決定してもよい。例えば、参照インデックス順序でマージ共有ノード内全モーション情報をＨＭＶＰテーブルにアップデートすることができる。又は、例えば、現在ピクチャと参照ピクチャ間のＰＯＣ差が低い順序又は高い順序でマージ共有ノード内全てのモーション情報をＨＭＶＰテーブルにアップデートすることができる。
【０１３４】
図２４は、本発明の一実施例に係るマージ共有ノード内のブロックのモーション情報に基づいてＨＭＶＰテーブルをアップデートする方法を例示する図である。図２４を参照すると、上の図２０〜図２２で説明した共有されたリストが用いられる場合を仮定する。この時、図２２における各ＣＵのＭＶ誘導又はエンコーディング／デコーディングが終了すると、マージ共有ノード内複数のＣＵが存在するので、用いられたモーション情報も複数存在し得る。
【０１３５】
本発明の一実施例によれば、エンコーダ／デコーダは、マージ共有ノード内複数のＣＵで使用したモーション情報のうち一部のモーション情報を用いてＨＭＶＰテーブルをアップデートすることができる。言い換えると、エンコーダ／デコーダは、マージ共有ノード内の複数のＣＵで使用したモーション情報のうち少なくとも一部のＣＵのモーション情報は、ＨＭＶＰテーブルにアップデートしなくてもよい。一例として、エンコーダ／デコーダは、アップデート順序として正規コーディング（ｒｅｇｕｌａｒ  ｃｏｄｉｎｇ）順序を参照することができる。例えば、エンコーダ／デコーダは、正規デコーディング順序にしたがって各ＣＵに該当するモーション情報のうちデコーディング順序が遅い既に設定された個数のモーション情報を用いてＨＭＶＰテーブルをアップデートすることができる。これは、正規コーディング順序において遅いブロックが次のコードされるブロックと空間的に隣接する可能性が高く、モーション補償時に類似のモーションを必要とすることがあるためである。
【０１３６】
一実施例において、図２４を参照すると、エンコーダ／デコーダは、同じ共有リストを用いるＣＵ１〜ＣＵ４があるとき、正規デコーディング順序において最後にコードするＣＵ４に対するモーション情報だけをＨＭＶＰテーブルアップデートに使用することができる。他の実施例として、エンコーダ／デコーダは、参照インデックス順序、現在ピクチャと参照ピクチャ間のＰＯＣ関係などを参照して、複数のＣＵのモーション情報のうち一部のモーション情報を用いてＨＭＶＰテーブルをアップデートすることができる。
【０１３７】
また、本発明の他の実施例によれば、ＨＭＶＰテーブルからＨＭＶＰ候補を候補リストに追加するとき、エンコーダ／デコーダは、現在ブロックとＨＭＶＰテーブル内エレメントに該当するブロックとの関係を参照してＨＭＶＰ候補を候補リストに追加することができる。又は、エンコーダ／デコーダは、ＨＭＶＰテーブルからＨＭＶＰ候補を候補リストに追加するとき、ＨＭＶＰテーブルに含まれた候補ブロック間の位置関係を参照することができる。例えば、エンコーダ／デコーダは、ＨＭＶＰ又はブロックのデコーディング順序を考慮してＨＭＶＰテーブルからＨＭＶＰ候補を候補リストに追加することができる。
【０１３８】
図２５は、本発明の一実施例に係るＨＭＶＰに基づいてビデオ信号を処理する方法を例示する図である。図２５を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明がこれに制限されるものではなくて、本実施例に係るＨＭＶＰベースビデオ信号処理方法はエンコーダにも実質的に同様に適用可能である。
【０１３９】
具体的に、デコーダは、現在ブロックが複数のコーディングブロックを含むマージ共有ノード（ｍｅｒｇｅ  ｓｈａｒｉｎｇ  ｎｏｄｅ）内に位置する場合、前記マージ共有ノードに隣接した空間候補（ｓｐａｔｉａｌ  ｃａｎｄｉｄａｔｅ）を用いてマージ候補リストを構成することができる（Ｓ２５０１）。デコーダは、少なくとも一つのヒストリーベースモーションベクトル予測子（ｈｉｓｔｏｒｙ−ｂａｓｅｄ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ，ＨＭＶＰ）を含むＨＭＶＰテーブル内の特定ＨＭＶＰを前記マージ候補リストに追加することができる（Ｓ２５０２）。ここで、前記ＨＭＶＰは、前記複数のコーディングブロック以前にコードされたブロックのモーション情報を表す。
【０１４０】
デコーダは、前記マージ候補リスト内で前記現在ブロックの予測に用いられるマージ候補を指示するインデックス情報を取得し（Ｓ２５０３）、前記マージ候補のモーション情報に基づいて前記現在ブロックの予測ブロックを生成する（Ｓ２５０４）。デコーダは、予測ブロックと残差ブロックを加算することによって、現在ブロックの復元ブロックを生成することができる。前述したように、本発明の一実施例によれば、前記マージ共有ノードに含まれた複数のコーディングブロックのうち少なくとも一つのコーディングブロックのモーション情報は、前記ＨＭＶＰテーブルにアップデートされなくてもよい。前述したように、デコーダは、前記マージ共有ノードに含まれた複数のコーディングブロックのうち、デコーディング順序が相対的に遅いあらかじめ定義された個数のコーディングブロックのモーション情報を用いて、前記ＨＭＶＰテーブルをアップデートすることができる。
【０１４１】
また、前述したように、デコーダは、前記マージ共有ノードに含まれた複数のコーディングブロックのうち、デコーディング順序が相対的に最も遅いコーディングブロックのモーション情報を用いて、前記ＨＭＶＰテーブルをアップデートすることができる。また、デコーダは、前記現在ブロックが前記マージ共有ノード内に位置しない場合、前記マージ候補のモーション情報を用いて前記ＨＭＶＰテーブルをアップデートすることができる。また、前述したように、デコーダは、前記ＨＭＶＰテーブル内であらかじめ定義された特定インデックスを有するＨＭＶＰを用いて、前記マージ候補リスト内の候補と重複するモーション情報を有するか否かを確認することができる。
【０１４２】
図２６は、本発明の一実施例に係る多重仮定予測（ｍｕｌｔｉ−ｈｙｐｏｔｈｅｓｉｓ  ｐｒｅｄｉｃｔｉｏｎ）方法を説明するための図である。本発明の一実施例によれば、エンコーダ／デコーダは複数の予測方法に基づいて予測ブロックを生成することができる。本明細書において、このような複数の予測モードに基づく予測方法を、多重仮定予測と呼ぶ。ただし、本発明がこのような名称に制限されるものではなく、本明細書において前記多重仮定予測は、多重予測、複数予測、組合せ予測、インター−イントラ加重予測、組み合わせられたインター−イントラ予測、組み合わせられたインター−イントラ加重予測などと呼ぶことができる。一実施例として、多重仮定予測は、任意の予測方法によって生成したブロックを意味できる。また、一実施例として、多重予測における予測方法は、イントラ予測（ｉｎｔｒａ  ｐｒｅｄｉｃｔｉｏｎ）、インター予測（ｉｎｔｅｒ  ｐｒｅｄｉｃｔｉｏｎ）などの方法を含むことができる。又は、多重予測における予測方法は、さらに細分してマージモード（ｍｅｒｇｅ  ｍｏｄｅ）、ＡＭＶＰモード、イントラ予測の特定モードなどを意味してもよい。また、エンコーダ／デコーダは、多重予測に基づいて生成された予測ブロック（又は、予測サンプル）を加重和（ｗｅｉｇｈｔｅｄ  ｓｕｍ）することによって最終的な予測ブロックを生成することができる。
【０１４３】
本発明の一実施例によれば、多重予測に用いられる予測方法の最大個数があらかじめ設定されてよい。例えば、多重予測の最大個数は２でよい。したがって、エンコーダ／デコーダは、単方向予測（ｕｎｉ  ｐｒｅｄｉｃｔｉｏｎ）の場合に２個の予測から、両方向予測（ｂｉ  ｐｒｅｄｉｃｔｉｏｎ）の場合に２個（すなわち、１つの参照リストからの予測にのみ多重予測を用いる場合）又は４個（すなわち、２つの参照リストからの予測に多重予測を用いる場合）の予測を適用して予測ブロックを生成することができる。
【０１４４】
又は、本発明の一実施例によれば、多重仮定予測で使用可能な予測モードがあらかじめ設定されてよい。又は、多重仮定予測で使用可能な予測モード組合せがあらかじめ設定されてもよい。例えば、エンコーダ／デコーダは、インター予測及びイントラ予測で生成した予測ブロック（又は、予測サンプル）を用いて多重仮定予測を行うことができる。
【０１４５】
本発明の一実施例によれば、エンコーダ／デコーダは、インター予測及び／又はイントラ予測モードのうち一部の予測モードだけを多重仮定予測に使用することができる。例えば、エンコーダ／デコーダは、インター予測のうち、マージモードだけを多重仮定予測に用いることができる。又は、エンコーダ／デコーダは、インター予測のうち、サブブロックマージ（ｓｕｂｂｌｏｃｋ  ｍｅｒｇｅ）モードではなくマージモードを多重仮定予測に用いることができる。又は、エンコーダ／デコーダは、イントラ予測モードのうち、特定イントラモードを多重仮定予測に用いることができる。例えば、エンコーダ／デコーダは、イントラ予測のうち、プレーナ（ｐｌａｎａｒ）、ＤＣ、垂直（ｖｅｒｔｉｃａｌ）及び／又は水平（ｈｏｒｉｚｏｎｔａｌ）モードのうち少なくとも一つを含む予測モードを制限的に多重仮定予測に用いることができる。一実施例として、エンコーダ／デコーダは、マージモード及びイントラ予測の予測に基づいて予測ブロックを生成でき、この時、イントラ予測には、プレーナ、ＤＣ、垂直及び／又は水平モードのうち少なくとも一つの制限的な予測モードだけを用いることができる。
【０１４６】
図２６を参照すると、エンコーダ／デコーダは、第１予測（ｐｒｅｄｉｃｔｉｏｎ  １）と第２予測（ｐｒｅｄｉｃｔｉｏｎ  ２）を用いて予測ブロックを生成することができる。具体的に、エンコーダ／デコーダは、第１予測を適用して第１臨時予測ブロック（又は、予測サンプル）を生成し、第２予測を適用して第２臨時予測ブロックを生成することができる。エンコーダ／デコーダは、第１臨時予測ブロック及び第２臨時予測ブロックを加重和することによって最終予測ブロックを生成することができる。この時、エンコーダ／デコーダは、第１予測によって生成された第１臨時予測ブロックに第１加重値ｗ１を適用し、第２予測によって生成された第２臨時予測ブロックに第２加重値ｗ２を適用して、加重和（ｗｅｉｇｈｔｅｄ  ｓｕｍ）を行うことができる。
【０１４７】
本発明の一実施例によれば、多重仮定予測に基づいて予測ブロックを生成するととき、多重仮定予測に適用される加重値（ｗｅｉｇｈｔ）は、ブロック内特定位置に基づいて決定されてよい。このとき、前記ブロックは、現在ブロック又は周辺ブロックであってよい。又は、多重仮定予測の加重値は、予測を生成するモードに基づいてもよい。例えば、エンコーダ／デコーダは、予測を生成するモードの一つがイントラ予測である場合、予測モードに基づいて加重値を決定することができる。また、例えば、エンコーダ／デコーダは、予測モードのいずれか一つがイントラ予測であり、且つ方向性モードである場合、参照サンプルから遠く離れた位置のサンプルに対する加重値を上げることができる。
【０１４８】
本発明の一実施例によれば、エンコーダ／デコーダは、多重仮定予測に用いられるイントラ予測モードが方向性モードであり、他の予測モードがインター予測である場合、参照サンプルから遠い側のイントラ予測に基づいて生成した予測サンプルに、相対的に高い加重値を適用することができる。これは、インター予測の場合、空間隣候補を用いてモーション補償ができ、このような場合、現在ブロックとモーション補償のために参照した空間隣ブロックの動きが同一又は類似である確率が高く、これによって、空間隣ブロックに隣接した領域の予測及びモーションがあるオブジェクトを含む領域の予測が、他の部分に比べて正確である確率が高いためである。この場合、空間隣ブロックの反対方向境界に隣接した残差信号（ｒｅｓｉｄｕａｌ  ｓｉｇｎａｌ）は、他の領域（又は、部分）よりも多く残されることがある。本発明の一実施例によれば、多重仮定予測においてイントラ予測されたサンプルを組み合わせて適用することによって、これを相殺することができる。また、一実施例において、イントラ予測の参照サンプル位置は、インター予測の空間隣候補の近傍であり得るので、エンコーダ／デコーダは、それから相対的に遠い領域に、高い加重値を適用することができる。
【０１４９】
他の実施例として、多重仮定予測サンプルの生成に用いられるモードの一つがイントラ予測であり、且つ方向性モードである場合、エンコーダ／デコーダは、参照サンプルから相対的に近くに位置しているサンプルに対して高い加重値を適用することができる。より具体的に、多重仮定予測サンプルの生成に用いられるモードの一つがイントラ予測であり且つ方向性モードであり、他の多重仮定予測サンプルの生成に用いられるモードがインター予測である場合、エンコーダ／デコーダは、参照サンプルから近い側のイントラ予測に基づいて生成した予測に、高い加重値を適用することができる。これは、イントラ予測において予測サンプルと参照サンプル間の距離が近いほど、予測の正確度が高いためである。
【０１５０】
他の実施例として、多重仮定予測サンプルの生成に用いられるモードの一つがイントラ予測であり、且つ方向性モードでない場合（例えばプレーナ、ＤＣモードである場合）、加重値は、ブロック内における位置に関係なく一定の値に設定されてよい。また、一実施例において、多重仮定予測において予測２に対する加重値は、予測１に対する加重値に基づいて決定されてよい。次の式は、多重仮定予測に基づいて予測サンプルを決定する一例を表す。
【０１５１】
【数５】
2022502972.tif 000008
【０１５２】
数学式５において、ｐｂＳａｍｐｌｅｓは、多重仮定予測によって生成された（最終）予測サンプル（又は、予測ブロック）を表す。そして、ｐｒｅｄＳａｍｐｌｅｓは、インター予測によって生成されたブロック／サンプルを表し、ｐｒｅｄＳａｍｐｌｅｓＩｎｔｒａは、イントラ予測によって生成されたブロック／サンプルを表す。数学式５において、ｘとｙは、ブロック内におけるサンプルの座標を表し、次の範囲であってよい。ｘ＝０．．ｎＣｂＷ−１  ａｎｄ  ｙ＝０．．ｎＣｂＨ−１。また、ｎＣｂＷとｎＣｂＨはそれぞれ、現在ブロックの幅と高さであってよい。また、一実施例において、加重値ｗは、次のようなプロセスによって決定されてよい。
【０１５３】
−  仮にｐｒｅｄＭｏｄｅＩｎｔｒａがＩＮＴＲＡ＿ＰＬＡＮＡＲ又はＩＮＴＲＡ＿ＤＣであるか、ｎＣｂＷ＜４であるか、ｎＣｂＨ＜４であるか、又はｃＩｄｘ＞０である場合、ｗは４に設定されてよい。
【０１５４】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａがＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０であり、ｙ＜（ｎＣｂＨ／４）である場合、ｗは６に設定されてよい。
【０１５５】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａがＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０であり、（ｎＣｂＨ／４）＜＝ｙ＜（ｎＣｂＨ／２）である場合、ｗは５に設定されてよい。
【０１５６】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａがＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０であり、（ｎＣｂＨ／２）＜＝ｙ＜（３＊ｎＣｂＨ／４）である場合、ｗは４に設定されてよい。
【０１５７】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａがＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０であり、（３＊ｎＣｂＨ／４）＜＝ｙ＜ｎＣｂＨである場合、ｗは３に設定されてよい。
【０１５８】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａ  ｉｓ  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８であり、ｘ＜（ｎＣｂＷ／４）である場合、ｗは６に設定されてよい。
【０１５９】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａ  ｉｓ  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８であり、（ｎＣｂＷ／４）＜＝ｘ＜（ｎＣｂＷ／２）である場合、ｗは５に設定されてよい。
【０１６０】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａ  ｉｓ  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８であり、（ｎＣｂＷ／２）＜＝ｘ＜（３＊ｎＣｂＷ／４）である場合、ｗは４に設定されてよい。
【０１６１】
−  そうでない場合、仮に、ｐｒｅｄＭｏｄｅＩｎｔｒａ  ｉｓ  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８  ａｎｄ  （３＊ｎＣｂＷ／４）＜＝ｘ＜ｎＣｂＷである場合、ｗは３に設定されてよい。
【０１６２】
次の表２は、本発明の一実施例に係る多重仮定予測関連シンタックス構造を例示する。
【０１６３】
【表２】
2022502972.tif 000009
【０１６４】
表２で、ｍｈ＿ｉｎｔｒａ＿ｆｌａｇは、多重仮定予測を使用するか否かを示すフラグである。本発明の一実施例によれば、多重仮定予測は、多重仮定予測のためのあらかじめ定義された特定条件（本明細書では説明の便宜のためにｍｈ＿ｃｏｎｄｉｔｉｏｎｓと称する。）を満たす場合にのみ適用されてよい。ｍｈ＿ｃｏｎｄｉｔｉｏｎｓを満たさない場合、エンコーダ／デコーダは、ｍｈ＿ｉｎｔｒａ＿ｆｌａｇをパーシングせず、０と推論（ｉｎｆｅｒ）することができる。例えば、ｍｈ＿ｃｏｎｄｉｔｉｏｎｓは、ブロックサイズに関する条件を含むことができる。また、ｍｈ＿ｃｏｎｄｉｔｉｏｎｓは、あらかじめ定義された特定モードを用いるか否かに関する条件を含むことができる。例えば、マージモードが適用されるか否かを示すフラグであるｍｅｒｇｅ＿ｆｌａｇが１であり、サブブロックマージモードが適用されるか否かを示すフラグであるｓｕｂｂｌｏｃｋ＿ｍｅｒｇｅ＿ｆｌａｇが０である場合にｍｈ＿ｉｎｔｒａ＿ｆｌａｇをパーシングすることができる。言い換えると、エンコーダ／デコーダは、現在ブロックにマージモードが適用され、サブブロックマージモードが適用されない場合、多重仮定予測を考慮（又は、適用）することができる。
【０１６５】
また、本発明の一実施例によれば、エンコーダは、多重仮定予測におけるモードを決定するために候補モードを複数のリストに分けて構成し、どのリストを用いるかをデコーダにシグナリングすることができる。表２を参照すると、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇが、複数のリストのうちどのリストを用いるかを示すフラグであってよい。仮にｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇが存在しない場合は、１と推論できる（又は、見なすことができる）。また、本発明の一実施例として、前記複数のリストは、ＭＰＭリストとｎｏｎ−ＭＰＭリストであってよい。
【０１６６】
また、一実施例として、エンコーダは、前記複数のリストのうちのリストでどのインデックスの候補を用いるかを示すインデックス（又は、インデックス情報）をデコーダにシグナリングすることができる。表２を参照すると、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｉｄｘが上述のインデックスであってよい。また、一実施例として、インデックスは、特定リストが選択された場合にのみシグナリングされてよい。デコーダにｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇで特定リストが決定された場合にのみｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｉｄｘをパーシングすることができる。
【０１６７】
本発明の一実施例によれば、図２６で説明した一実施例のように、インター予測で生成した予測とイントラ予測で生成した予測に基づいて多重仮定予測を行うことができる。一例として、エンコーダ／デコーダは、インター予測を用いるとシグナリングされた場合にのみ多重仮定予測を行うことができる。又は、エンコーダ／デコーダは、マージモードのようなインター予測の特定モードを用いるとシグナリングされた場合にのみ、多重仮定予測を行うことができる。この場合、インター予測に対するシグナリングは別に要求されなくてもよい。また、一実施例として、エンコーダ／デコーダは、イントラ予測で予測を生成するとき、候補モードは総４個であってよい。例えば、総４個の候補モードのうち、それぞれ３個、１個の候補モードを用いて、第１リスト、第２リストを構成できる。この時、１つの予測モードを含む第２リストが選択された場合、エンコーダはインデックスをデコーダにシグナリングしなくてもよい。また、第１リストが選択された場合、特定候補を指示するインデックスをデコーダにシグナリングすることができる。この場合、第１リストに含まれた候補は３個であるから、可変長さコーディング（ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ）方式で１ビット又は２ビットでシグナリングを行うことができる。
【０１６８】
次の表３は、本発明の一実施例に係る多重仮定予測関連シンタックス構造を例示する。
【０１６９】
【表３】
2022502972.tif 000010
【０１７０】
表３において、上の表２で説明したように、複数のリストのうちとのリストを用いるかを示すシグナリングが存在できるが、表２及び表３においてｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇがそのようなシンタックス要素であってよい。これと関連して前述した表２と重複するシンタックス要素は、説明を省略する。
【０１７１】
本発明の一実施例によれば、どのリストを用いるかを示すシグナリングは、特定の場合にのみ明示的にシグナリングされてよい。仮に、明示的にシグナリングされない場合、エンコーダ／デコーダは、既に設定された方法によってシンタックス要素の値を推論することができる。表３を参照すると、ｍｈ＿ｍｐｍ＿ｉｎｆｅｒ＿ｃｏｎｄｉｔｉｏｎの条件を満たす場合、明示的シグナリングが存在しなく、ｍｈ＿ｍｐｍ＿ｉｎｆｅｒ＿ｃｏｎｄｉｔｉｏｎの条件を満たさない場合、明示的シグナリングが存在してよい。また、ｍｈ＿ｍｐｍ＿ｉｎｆｅｒ＿ｃｏｎｄｉｔｉｏｎ条件を満たす場合、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇが存在しなく、その場合、１と推論されてよい。すなわち、エンコーダ／デコーダは、この場合、ＭＰＭリストを用いると推論できる。
【０１７２】
次の表４は、本発明の一実施例に係る多重仮定予測関連シンタックス構造を例示する。
【０１７３】
【表４】
2022502972.tif 000011
【０１７４】
上に表２及び表３で説明したように、複数のリストのうちどのリストを用いるかを示すシグナリングが存在でき、あらかじめ定義された条件を満たす場合、エンコーダ／デコーダはその値を推論することができる。これと関連して前述した表２及び表３と重複するシンタックス要素は、説明を省略する。
【０１７５】
本発明の一実施例によれば、複数のリストのうちどのリストを用いるかを示すシグナリング（又は、シンタックス要素、パラメータ）値を推論する条件は、現在ブロックサイズに基づいて決定されてよい。例えば、エンコーダ／デコーダは、現在ブロックの幅及び高さに基づいて決定されてよい。具体的に、エンコーダ／デコーダは、現在ブロックの幅及び高さのうち、大きいものが小さなもののｎ倍よりも大きい場合にシグナリング値を推論することができる。例えば、ｎは２、３、４などの自然数値に設定されてよい。表４を参照すると、複数のリストのうちどのリストを用いるかを示すシグナリング値を推論する条件は、現在ブロックの幅及び高さのうち、大きいものが小さいものの２倍よりも大きい条件であってよい。仮に、現在ブロックの幅、高さをそれぞれｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔとすれば、Ａｂｓ（Ｌｏｇ２（ｃｂＷｉｄｔｈ／ｃｂＨｅｉｇｈｔ））値は、ｃｂＷｉｄｔｈとｃｂＨｅｉｇｈｔとが同一である時に０、２倍差である時に１となる。したがって、ｃｂＷｉｄｔｈとｃｂＨｅｉｇｈｔの差が２倍よりも大きい場合、Ａｂｓ（Ｌｏｇ２（ｃｂＷｉｄｔｈ／ｃｂＨｅｉｇｈｔ））値は１よりも大きくなる（すなわち、２以上の値を有することができる）。
【０１７６】
図２７は、本発明の一実施例に係る多重仮定予測モード決定方法を示す図である。上の表２〜表４で説明した通り、多重仮定予測に用いられる予測モードの決定は、複数のリストに基づいて行われてよい。一例として、前記予測モードは、イントラ予測に基づく予測を生成するイントラモードを示すことができる。また、前記複数のリストは、第１リスト及び第２リストの２個のリストを含むことができる。図２７を参照すると、ｌｉｓｔ１＿ｆｌａｇから、第１リストを用いるか否かを判断することができる。一実施例において、第１リストに属し得る候補は複数であり、第２リストに属し得る候補は１個であってよい。
【０１７７】
仮に、ｌｉｓｔ１＿ｆｌａｇが推論される場合、エンコーダ／デコーダは、第１リストを用いる旨とその値を推論できる（Ｓ２７０１）。この場合、第１リストにおいてどの候補を用いるかを指示するインデックスであるｌｉｓｔ１＿ｉｎｄｅｘをパーシングすることができる（Ｓ２７０４）。また、仮にｌｉｓｔ１＿ｆｌａｇが推論されない場合（Ｓ２７０１）、エンコーダ／デコーダはｌｉｓｔ１＿ｆｌａｇをパーシングすることができる（Ｓ２７０２）。エンコーダ／デコーダは、仮にｌｉｓｔ１＿ｆｌａｇが１である場合、ｌｉｓｔ１＿ｉｎｄｅｘをパーシングでき、ｌｉｓｔ１＿ｆｌａｇが１でない場合、インデックスをパーシングしなくてもよい。また、ｌｉｓｔ１＿ｆｌａｇが１である場合、インデックスに基づいて第１リストの候補モードのうち、実際に使用するモードを決定することができる（Ｓ２７０３）。また、エンコーダ／デコーダは、ｌｉｓｔ１＿ｆｌａｇが１でない場合、インデックス無しで、第２リストの候補モードを実際に使用するモードと決定することができる。すなわち、第１リストではフラグ及びインデックスに基づいてモードが決定され、第２リストではフラグに基づいてモードが決定されてよい。
【０１７８】
図２８は、本発明の一実施例に係る多重仮定予測モード決定方法を示す図である。本発明の一実施例によれば、リスト内の候補モードを決定するインデックスを可変長コードする場合、コーディング効率を上げるために、候補リストに含まれるモード順序を決定する方法が適用されてよい。例えば、第１リストに含まれるモード順序を決定する方法が存在してよい。このとき、エンコーダ／デコーダは、モード順序を決定するために、現在ブロック周辺のモードを参照することができる。また、第２リストは、現在ブロック周辺のモードを参照せずに決定することができる。例えば、エンコーダ／デコーダは、現在ブロック周辺のモードを参照して第１リストを生成し、第１リストに含まれていないモードを第２リストに含めることができる。一実施例において、第１リストはＭＰＭモードであり、第２リストはｎｏｎ−ＭＰＭモードであってよい。また、全候補モードは４個であり、第１リストに３個、第２リストに１個のモードが含まれてよい。
【０１７９】
図２８を参照すると、第１リストが用いられるか否かを示すシンタックス要素ｌｉｓｔ１＿ｆｌａｇが存在してよい。仮に、第１リストが用いられる場合、エンコーダ／デコーダは第１リストを生成し（Ｓ２８０１、Ｓ２８０２）、第１リストから特定モードを選択することができる。この時、第１リスト生成と第１リスト使用の有無の確認は、任意の順序で行われてよい。一例として、第１リストが用いられる状況で、第１リスト使用の有無の確認前又は後に、第１リストが生成されてよい。また、エンコーダ／デコーダは、第１リストが用いられる場合、第２リストを生成する過程を行わなくてもよい。
【０１８０】
仮に、第１リストが用いられない場合、エンコーダ／デコーダは、第２リストを生成し（Ｓ２８０３）、第２リストから特定モードを選択することができる。この時、エンコーダ／デコーダは、第２リストを生成するために第１リストを生成することができる。そして、エンコーダ／デコーダは、候補モードのうち、第１リストに含まれない候補を第２リストに含めることができる。また、本発明の一実施例によれば、第１リスト生成方法は、第１リスト使用の有無（ｌｉｓｔ１＿ｆｌａｇ値）、第１リスト使用の有無、推論の有無などに関係なく同一であってよい。この時、リストシグナリング及びモードシグナリングには、上の表２〜表４、図２７で前述した方法が適用されてよい。
【０１８１】
以下では、上の図２７〜図２８で説明した多重仮定予測に用いられる予測モード決定のための複数のリスト構成（又は、生成）方法をさらに説明する。一例として、前述したように、前記複数のリストは、２個のリストで構成されてよい。すなわち、前記複数のリストは、第１リストと第２リストを含むことができる。また、前記複数のリストは、多重仮定予測過程で用いられてよい。
【０１８２】
本発明の一実施例によれば、エンコーダ／デコーダは、現在ブロック周辺のモードを参照して複数のリストを生成することができる。また、エンコーダ／デコーダは、前記リストから選択されたモードを用いてイントラ予測を行い、前記イントラ予測によって生成された予測サンプル（又は、予測ブロック）をインター予測された予測サンプルと結合して、多重仮定予測ブロックを生成することができる。本明細書において、多重仮定予測によって生成された最終予測サンプル（又は、予測ブロック）を多重仮定予測ブロックと呼ぶが、本発明がこれに制限されるものではない。例えば、多重仮定予測ブロックは、予測ブロック、最終予測ブロック、多重予測ブロック、組合せ予測ブロック、インター−イントラ加重予測ブロック、組み合わせられたインター−イントラ予測ブロック、組み合わせられたインター−イントラ加重予測ブロックなどと呼ぶことができる。
【０１８３】
一実施例として、前記リストに含み得るモード（候補モード）は、イントラ予測方法のプレーナモード、ＤＣモード、垂直モード及び／又は水平モードの少なくとも一つに設定されてよい。このとき、垂直モードは、前述した図６でインデックス（又は、モード番号）５０のモードであり、水平モードは、図６でインデックス１８のモードであってよい。また、プレーナモードとＤＣモードはそれぞれ、インデックス０、１であってよい。
【０１８４】
本発明の一実施例によれば、現在ブロックの周辺ブロックの予測モードを参照して候補モードリストを生成することができる。また、候補モードリストは、本明細書においてｃａｎｄＭｏｄｅＬｉｓｔと呼ぶことができる。一例として、候補モードリストは、以上の実施例で説明した第１リストであってよい。また、一実施例として、現在ブロックの周辺ブロックのモードはｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸと表現されてよい。すなわち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは、周辺ブロックのモードを指示する変数を表す。ここで、Ｘは、Ａ、Ｂなどの現在ブロック周辺の特定位置を指示する変数を表す。
【０１８５】
一実施例として、エンコーダ／デコーダは、複数のｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ間の一致の有無に基づいて候補モードリストを生成することができる。例えば、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは２個の位置に対して存在でき、当該位置のモードはｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢと表現されてよい。一例として、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一である場合、候補モードリストはプレーナモードとＤＣモードを含むことができる。
【０１８６】
一実施例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、その値がプレーナモード又はＤＣモードを示す場合、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示すモードを候補モードリストに追加することができる。また、エンコーダ／デコーダは、プレーナモードとＤＣモードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示していないモードを候補モードリストに追加することができる。また、エンコーダ／デコーダは、プレーナモード又はＤＣモードではなく既に設定されたモードを候補モードリストに追加することができる。一実施例として、この場合、プレーナモード、ＤＣモード、前記既に設定された特定モードの候補モードリスト内順序が、既に設定されていてよい。例えば、プレーナ、ＤＣ、前記既に設定されたモード順序であってよい。すなわち、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ＤＣモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝前記既に設定されたモードであってよい。また、前記既に設定されたモードは垂直モードであってよい。さらに他の実施例として、プレーナモード、ＤＣモード、前記既に設定されたモードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示すモードが候補モードリストに最初に追加され、プレーナモード及びＤＣモードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示していないモードが次の候補として追加され、前記既に設定されたモードが続いて追加されてよい。
【０１８７】
また、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、その値がプレーナモード及びＤＣモードを示さない場合、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示すモードを候補モードリストに追加することができる。また、プレーナモードとＤＣモードが候補モードリストに追加されてよい。また、この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示すモードとプレーナモード、ＤＣモードの候補モードリストにおける順序は既に設定されていてよい。また、既に設定された順序は、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが示すモード、プレーナモード、ＤＣモードの順序であってよい。すなわち、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ＤＣモードであってよい。
【０１８８】
また、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが互いに異なる場合、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢを両方とも候補モードリストに追加することができる。また、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢはあらかじめ定義された特定順序にしたがって候補モードリストに含まれてよい。例えば、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢの順に候補モードリストに含まれてよい。また、候補モード間の既に設定された順序があってもよく、エンコーダ／デコーダは、前記既に設定された順序によるモードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ以外のモードを候補モードリストに追加することができる。また、前記ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ及びｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ以外のモードは、候補モードリストにおいてｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢの以降に追加されてよい。また、前記既に設定された順序は、プレーナモード、ＤＣモード、垂直モードであってよい。又は、前記既に設定された順序は、プレーナモード、ＤＣモード、垂直モード、水平モードであってもよい。すなわち、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢでよく、ｃａｎｄＭｏｄｅＬｉｓｔ［２」は、プレーナモード、ＤＣモード、垂直モードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡでなく、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢでないモードの中でも最も前にあるモードであってよい。
【０１８９】
また、一実施例において、候補モードのうち、候補モードリストに含まれていないモードがｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣと定義されてよい。一例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣは第２リストに含まれてよい。また、前述した第１リストが使用されるか否かを示すシグナリングが、使用しない旨を示す場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣを決めることができる。第１リストを使用する場合、エンコーダ／デコーダは、候補モードリストのうち、インデックスによってモードを決定し、第１リストを使用しない場合に第２リストのモードを用いることができる。
【０１９０】
また、前述したように、候補モードリストを生成した後に、候補モードリストを修正する過程が追加されてよい。例えば、エンコーダ／デコーダは、現在ブロックサイズ条件によって前記修正する過程をさらに行っても行わなくてもよい。例えば、前記現在ブロックサイズ条件は、現在ブロックの幅と高さに基づいて決定されてよい。例えば、現在ブロックの幅と高さのうち、大きい一方が他方のｎ倍よりも大きい場合、前記修正する過程をさらに行うことができる。例えば、前記ｎは２と定義されてよい。
【０１９１】
また、一実施例において、前記修正する過程は、候補モードリストにいずれかのモードが含まれたとき、そのモードを他のモードに変える過程であってよい。例えば、候補モードリストに垂直モードが含まれた場合、エンコーダ／デコーダは、垂直モードの代わりに水平モードを候補モードリストに挿入することができる。又は、候補モードリストに垂直モードが含まれたとき、エンコーダ／デコーダは垂直モードの代わりに前記ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣを候補モードリストに挿入することができる。又は、前述した候補モードリスト生成時に、プレーナモードとＤＣモードは常に候補モードリストに含まれ得るので、この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣは水平モードであってよい。また、このような修正する過程を用いることは、現在ブロックの高さが幅のｎ倍よりも大きい時であってよい。例えば、ｎは２と定義されてよい。これは、高さが幅よりも大きい場合、ブロックの下側は、イントラ予測の参照サンプルから遠いため垂直モードの正確度が低いことがあるためである。又は、このような修正する過程を用いることは、第１リストを用いると推論される場合であってよい。
【０１９２】
また、本発明の実施例によれば、前記候補リスト修正過程の他の例として、エンコーダ／デコーダは、候補モードリストに水平モードが含まれた場合、水平モードの代わりに垂直モードを候補モードリストに追加することができる。又は、候補モードリストに水平モードが含まれたとき、水平モードの代わりに前記ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣを候補モードリストに追加することができる。又は、前述した候補モードリスト生成時にプレーナモードとＤＣモードは常に候補モードリストに含まれてもよいので、この場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＣは垂直モードであってよい。また、このような修正する過程を用いることは、現在ブロックの幅が高さのｎ倍よりも大きい時であってよい。例えば、ｎは２と定義されてよい。これは、幅が高さよりも大きい場合、ブロック右側はイントラ予測の参照サンプルから遠いため、水平モードの正確度が低いことがあるためである。又は、このような修正する過程を用いることは、第１リストを用いると推論される場合であってよい。
【０１９３】
以下、以上で説明したリスト設定方法の一例をさらに説明する。本明細書において、ＩｎｔｒａＰｒｅｄＭｏｄｅＹは、多重仮定予測時にイントラ予測に用いられるモードを示す。また、ＩｎｔｒａＰｒｅｄＭｏｄｅＹは、輝度コンポーネントのモードを示すことができる。一実施例として、多重仮定予測において色差コンポーネントのイントラ予測モードは、輝度コンポーネントから誘導されてよい。また、本明細書において、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇは、複数のリストのうちどのリストを用いるかを示す変数（又は、シンタックス要素）を表す。例えば、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇは、表２〜表４のｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｆｌａｇ、図２７及び図２８のｌｉｓｔ１＿ｆｌａｇであってよい。また、本明細書において、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｉｄｘは、リストにおいてどの候補を用いるかを示すインデックスを表す。例えば、ｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｉｄｘは、表２〜表４のｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｍｐｍ＿ｉｄｘ、図２７のｌｉｓｔ１＿ｉｎｄｅｘであってよい。また、本明細書において、ｘＣｂ、ｙＣｂは、現在ブロックの左上端（ｔｏｐ−ｌｅｆｔ）のｘ、ｙ座標であってよい。また、ｃｂＷｉｄｔｈとｃｂＨｅｉｇｈｔは、現在ブロックの幅と高さであってよい。
【０１９４】
図２９は、本発明の一実施例に係る多重仮定予測において参照する周辺位置を示す図である。図２９を参照すると、前述したように、エンコーダ／デコーダは、多重仮定予測の候補リストを作る過程で周辺位置を参照することができる。例えば、前述したｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸが必要であり得る。このとき、参照する現在ブロック周辺のＡとＢの位置は、図２９に示したＮｂＡとＮｂＢであってよい。すなわち、現在ブロックの左上端サンプルに隣接した左側及び上側位置であってよい。仮に、現在ブロックの左上端位置が、図１８に示したようにＣｂであり、その座標が（ｘＣｂ，ｙＣｂ）のとき、ＮｂＡは（ｘＮｂＡ，ｙＮｂＡ）＝（ｘＣｂ−１，ｙＣｂ）であり、ＮｂＢは（ｘＮｂＢ，ｙＮｂＢ）＝（ｘＣｂ，ｙＣｂ−１）でよい。
【０１９５】
図３０は、本発明の一実施例に係る周辺のモードを参照する方法を示す図である。図３０を参照すると、前述したように、エンコーダ／デコーダは、多重仮定予測の候補リストを作る過程で周辺位置を参照することができる。また、周辺のモードをそのまま使用したり、周辺のモードに基づくモードを用いて、候補モードリストを生成することができる。一例として、周辺位置を参照して生成されたモードはｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸであってよい。一実施例として、周辺位置が使用不可である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは既に設定されたモードであってよい。使用不可である場合は、周辺位置がインター予測を使用した場合、定められたエンコーディング／デコーディング順序においてモード決定されていない場合などを含むことができる。又は、周辺位置が多重仮定予測を使用しない場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは既に設定されたモードであってよい。又は、周辺位置が、現在ブロックの属したＣＴＵを越えて上にある場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは既に設定されたモードであってよい。他の例として、周辺位置が現在ブロックの属したＣＴＵから外れる場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは、既に設定されたモードであってよい。また、一実施例として、前記既に設定されたモードはＤＣモードであってもよい。さらに他の実施例として、前記既に設定されたモードはプレーナモードであってもよい。
【０１９６】
本発明の一実施例によれば、仮に周辺位置のモードがスレショルド角度を超えるか否か、或いは周辺位置のモードのインデックスがスレショルドを超えるか否かによってｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸが設定されてよい。例えば、周辺位置のモードのインデックスが特定方向性モードインデックスよりも大きい場合、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを垂直モードインデックスに設定することができる。また、エンコーダ／デコーダは、周辺位置のモードのインデックスが特定方向性モードインデックス以下であり、方向性モードである場合、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを水平モードインデックスに設定することができる。例えば、特定方向性モードインデックスは、前述した図６においてモード３４であってよい。また、仮に周辺位置のモードがプレーナモード又はＤＣモードである場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはプレーナモード又はＤＣモードに設定されてよい。
【０１９７】
図３０を参照すると、ｍｈ＿ｉｎｔｒａ＿ｆｌａｇは多重仮定予測を用いるのか（用いたか）否かを示すシンタックス要素（又は、変数、パラメータ）であってよい。また、周辺ブロックで使用したイントラ予測モードがＸであってよい。また、現在ブロックが多重仮定予測を用いることができ、周辺ブロックのモードに基づく候補イントラ予測モードを用いて候補リストを生成できるが、周辺が多重仮定予測を使用しなかったため、使用された周辺ブロックのイントラ予測モードに関係なく、又は周辺ブロックがイントラ予測を使用したか否かに関係なく、エンコーダ／デコーダは候補イントラ予測モードを、既に設定されたモードであるＤＣモードに設定できる。
【０１９８】
以上で説明した周辺モード参照方法の一例を、以下にさらに記述する。
【０１９９】
本発明の一実施例によれば、周辺ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ（Ｘは、Ａ又はＢ）は、次のような方法で誘導できる。
【０２００】
１．隣ブロック可用性確認プロセスで指定されたブロックに対する可用性誘導プロセスが呼び出され、前記可用性誘導プロセスは、位置（ｘＣｕｒｒ，ｙＣｕｒｒ）を（ｘＣｂ，ｙＣｂ）に設定し、入力（xNbX、yNbX）を隣接する 隣位置（ｘＮｂＹ，ｙＮｂＹ）に設定でき、出力は、可用性変数ａｖａｉｌａｂｌｅＸに割り当てることができる。
【０２０１】
２．候補イントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは次の方法で誘導されてよい：
【０２０２】
Ａ．仮に、一つ以上の次の条件が真である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＤＣモードに設定されてよい。
【０２０３】
ａ）Ｔｈｅ  ｖａｒｉａｂｌｅ  ａｖａｉｌａｂｌｅＸがＦＡＬＳＥである場合。
【０２０４】
ｂ）ｍｈ＿ｉｎｔｒａ＿ｆｌａｇ［ｘＮｂＸ］［ｙＮｂＸ］が１でない場合。
【０２０５】
ｃ）ＸがＢであり、ｙＣｂ−１が（（ｙＣｂ＞＞ＣｔｂＬｏｇ２ＳｉｚｅＹ）＜＜ＣｔｂＬｏｇ２ＳｉｚｅＹ）よりも小さい場合。
【０２０６】
Ｂ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４のとき、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０に設定されてよい。
【０２０７】
Ｃ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＜＝ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４であり、ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＤＣのとき、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８に設定されてよい。
【０２０８】
Ｄ．そうでない場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ  ｉｓ  ｓｅｔ  ｅｑｕａｌ  ｔｏ  ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］に設定されてよい。
【０２０９】
前述したように、以上で説明したリスト設定方法において、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは前記周辺モード参照方法によって決定されてよい。
【０２１０】
図３１は、本発明の一実施例に係る候補リスト生成方法を示す図である。上の表２〜表４で説明した第１リスト及び第２リスト生成方法によれば、エンコーダ／デコーダは、現在ブロック周辺のモードを参照して第１リストを生成し、候補モードのうち、第１リストに含まれていないモードを用いて第２リストを生成することができる。ピクチャ内で空間的な類似性があるので、周辺のモードを参照したものは、優先順位が高くてよい。すなわち、第１リストが第２リストに比べて優先順位が高くてよい。しかし、表２〜表４で説明した第１リスト及び第２リストシグナリング方法によれば、リストを決定するシグナリングが推論されない場合、エンコーダ／デコーダは、第１リストのモードを用いるためにフラグ及びインデックスを用いてシグナリングし、第２リストのモードを用いるためにフラグだけを用いることができる。すなわち、エンコーダ／デコーダは第２リストのシグナリングに相対的に少ないビットを用いることができる。しかし、優先順位が高いリストのモードのシグナリングに相対的に多いビットを用いられることは、コーディング効率の側面でよくないことがある。したがって、本発明の一実施例によれば、優先順位が高いリスト及びモードに相対的に少ないビットのシグナリングを用いる方法を提案する。
【０２１１】
すなわち、本発明の一実施例によれば、優先順位が相対的に高いリストだけを使用可能か否かによって候補リスト生成方法が個別に定義されてよい。第１リストだけを使用可能か否かは、使用するリストを示すシグナリングが推論されるか否かを指示することができる。例えば、候補モードを用いて既に設定された方法によって生成する第２リストが存在すると仮定すれば、エンコーダ／デコーダは、第３リストを第１リストと第２リストに分けて挿入することができる。例えば、既に設定された方法によって生成する第３リスト及び第３リストの生成方法は、前述した候補モードリスト及びその生成方法が適用されてよい。仮に、使用するリストを示すシグナリングが推論される場合、第１リストだけを使用することができ、その場合、エンコーダ／デコーダは、第３リストの前部から第１リストに満たすことができる。また、仮に、使用するリストを示すシグナリングが推論されない場合、第１リスト又は第２リストが用いられてよく、その場合、第３リストの前部から第２リストに満たし、残りを第１リストに満たすことができる。この時、エンコーダ／デコーダは、第１リストを満たす時にも第３リストの順に満たすことができる。すなわち、現在ブロック周辺のモードを参照してｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを候補リストに入れることができるが、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを、リストを示すシグナリングが推論される場合に第１リストに入れ、推論されない場合に第２リストに追加することができる。
【０２１２】
一実施例において、第２リストのサイズは１でよく、その場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡを、リストを示すシグナリングが推論される場合、エンコーダ／デコーダは第１リストに追加し、推論されない場合、第２リストに追加することができる。ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡは、前記第３リストの先頭のモードであるリスト３［０］であってよい。したがって、本発明では、場合によって、第１リスト及び第２リストの両方に、周辺モードに基づくモードであるｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡが追加されてもよい。一方、表２〜表４で説明した方法では、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡは第１リストにのみ入れることができた。すなわち、本発明では、第１リスト生成方法が、使用するリストを示すシグナリングが推論されるか否かによって個別に設定されてよい。
【０２１３】
図３１を参照すると、候補モードは、多重仮定予測のイントラ予測を生成するために使用できる候補であってよい。すなわち、使用するリストを示すシグナリングであるｌｉｓｔ１＿ｆｌａｇが推論されるか否かによって候補リスト生成方法が異なってよい（Ｓ３１０１、Ｓ３１０２）。仮に、推論される場合には、第１リストを用いると推論でき、第１リストだけを使用することができるので、エンコーダ／デコーダは、第３リストの最上位にあるものから第１リストに追加することができる（Ｓ３１０３）。エンコーダ／デコーダは、第３リストを生成するとき、周辺のモードに基づくモードを最上位に追加することができる。また、仮に推論されない場合には、第１リスト及び第２リストの両方が用いられてよいので、エンコーダ／デコーダは、第３リストの最上位にあるものから、シグナリングの少ない第２リストに追加することができる（Ｓ３１０４）。そして、第１リストが必要な場合、例えば、第１リストを用いるとシグナリングされた場合、エンコーダ／デコーダは、第３リストから第２リストに含まれた候補を除いて第１リストに追加することができる（Ｓ３１０５）。本発明では説明の便宜のために第３リストを生成する場合を中心に説明したが、これに制限されず、臨時的に候補を分類し、これに基づいて第１リスト、第２リストを生成することができる。
【０２１４】
本発明の一実施例によれば、以下に説明する実施例によって候補リストを生成する方法と、図２７〜図２８で説明した候補リストを生成する方法を、場合によって適応的に使用することができる。例えば、エンコーダ／デコーダは、どのリストを使用するかを示すシグナリングが推論されるか否かによって、２つの候補リストを作る方法のいずれか一方を選択できる。また、これは、多重仮定予測の場合であってよい。また、以下の第１リストは、３個のモードが含まれてよく、第２リストは１個のモードが含まれてよい。また、上の図２７〜図２８で説明したように、エンコーダ／デコーダは、第１リストのモードはフラグ及びインデックスでシグナリングし、第２リストのモードはフラグでシグナリングすることができる。
【０２１５】
一実施例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡがプレーナモード又はＤＣモードであるとき、Ｌｉｓｔ２［０］＝プレーナモード、Ｌｉｓｔ１［０］＝ＤＣモード、Ｌｉｓｔ１［１］＝垂直モード、Ｌｉｓｔ１［２］＝水平モードと決定されてよい。さらに他の実施例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡがプレーナモード又はＤＣモードであるとき、Ｌｉｓｔ２［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、Ｌｉｓｔ１［０］＝！ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、Ｌｉｓｔ１［１］＝垂直モード、Ｌｉｓｔ１［２］＝水平モードと決定されてよい。
【０２１６】
また、一実施例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡが方向性モードであるとき、Ｌｉｓｔ２［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、Ｌｉｓｔ１［０］＝プレーナモード、Ｌｉｓｔ１［１］＝ＤＣモード、Ｌｉｓｔ１［２］＝垂直モードと決定されてよい。また、一実施例として、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢとが異なる場合、Ｌｉｓｔ２［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、Ｌｉｓｔ１［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢであってよい。Ｌｉｓｔ１［１］とＬｉｓｔ１［２］はプレーナモード、ＤＣモード、垂直モード、水平モードのうち、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢでないものから追加されてよい。
【０２１７】
図３２は、本発明の一実施例に係る候補リスト生成方法を示す図である。以上の実施例では、複数のリストに基づいてモードを決定する方法を説明した。図３２を参照すると、本発明の一実施例によれば、複数のリストではなく単一のリストに基づいてモードが決定されてもよい。具体的に、図３２に示すように、多重仮定予測の候補モードを全て含む一つの候補リストが生成されてよい。次の表５は、本発明の一実施例に係る多重仮定予測関連シンタックス構造を例示する。
【０２１８】
【表５】
2022502972.tif 000012
【０２１９】
表５を参照すると、候補リストが一つであるので、リストを選択するシグナリングは存在しなく、候補リストのモードのうちどのモードを用いるかを示すインデックスシグナリングが存在してよい。したがって、デコーダは、多重仮定予測使用の有無を示すｍｈ＿ｉｎｔｒａ＿ｆｌａｇが１である場合、候補インデックスであるｍｈ＿ｉｎｔｒａ＿ｌｕｍａ＿ｉｄｘをパーシングできる。本発明の一実施例によれば、多重仮定予測の候補リスト生成方法は、既存イントラ予測においてＭＰＭリスト生成方法に基づくことができる。又は、一実施例をよれば、多重仮定予測の候補リストは、前述した図２８で説明した第１リスト及び第２リスト生成方法において第１リスト及び第２リストの順に結合した形態のリストで構成されてもよい。
【０２２０】
すなわち、多重仮定予測の候補リストを候補モードリストとすれば、本実施例において候補モードリストのサイズは４でよい。仮に、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、プレーナモード又はＤＣモードである場合、候補モードリストは、既に設定された順序によって決定されてよい。例えば、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ＤＣモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝垂直ｍｏｄｅ、ｃａｎｄＭｏｄｅＬｉｓｔ［３］＝水平モードであってよい。さらに他の例として、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、プレーナモード又はＤＣモードである場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝！ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝垂直モード、ｃａｎｄＭｏｄｅＬｉｓｔ［３］＝水平モードと決定されてよい。
【０２２１】
又は、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、方向性モードである場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ＤＣモード、ｃａｎｄＭｏｄｅＬｉｓｔ［３］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、及びプレーナモードとＤＣモード以外のモードと決定されてよい。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢとが異なる場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢでよい。また、ｃａｎｄＭｏｄｅＬｉｓｔ［２］とｃａｎｄＭｏｄｅＬｉｓｔ［３」は、候補モードの既に設定された順序によってｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ以外のモードを順次に追加することができる。前記既に設定された順序は、プレーナモード、ＤＣモード、垂直モード、水平モードと決定されてよい。
【０２２２】
本発明の一実施例によれば、ブロックサイズ条件によって候補リストが変わってよい。仮に、ブロック幅と高さのうち、相対的に大きい一方が他方のｎ倍よりも大きい場合に、候補リストはより短くてよい。例えば、幅が高さのｎ倍よりも大きい場合、エンコーダ／デコーダは、図３１で説明した候補リストにおいて水平モードを候補リストから除き、その次にあるモードを前に移して満たすことができる。また、高さが幅のｎ倍よりも大きい場合、エンコーダ／デコーダは、図３２で説明した候補リストにおいて垂直モードを候補リストから除き、その次にあるモードを前に移して満たすことができる。したがって、幅が高さのｎ倍よりも大きい場合には、候補リストサイズが３であってよい。また、幅が高さのｎ倍よりも大きい場合には、そうでない場合に比べて候補リストのサイズが小さいか等しくてよい。
【０２２３】
一実施例として、図３２で説明した実施例の候補インデックスは、可変長コードされてよい。これは、使用される確率が相対的に高いモードをリストの前の方に追加することによってシグナリング効率を上げることができる。他の実施例として、図３２で説明した実施例における候補インデックスは、固定長コードされてよい。多重仮定予測で使用するモード個数は、２の指数乗の個数であってよい。例えば、前述したように、４個のイントラ予測モード中で使用することができる。このような場合、固定長コーディングしても割り当てられない値が発生せず、シグナリングにおいて不要な部分が生じなくて済むわけである。また、固定長コードされる場合、リスト構成される場合の数は１個でよい。いかなるインデックスをシグナリングしてもビット数が同じであるわけである。
【０２２４】
一実施例をよれば、候補インデックスが、場合によって可変長コードされても固定長コードされてもよい。例えば、上の実施例のように、場合によって候補リストサイズが変わってよい。一実施例として、候補リストサイズによって候補インデックスが可変長コードされたり或いは固定長コードされてよい。例えば、候補リストサイズが２の指数乗である場合、固定長コードされ、２の指数乗でない場合、可変長コードされてよい。すなわち、上の実施例によれば、ブロックサイズ条件によってコーディング方法が変わってよい。
【０２２５】
本発明の一実施例によれば、多重仮定予測を用いるとき、ＤＣモードを使用する場合、ブロック全体に対して複数の予測間の加重値が同一であり得るので、予測ブロックの加重値を調節することと同一／類似の結果を招くことができる。したがって、多重仮定予測においてＤＣモードを除くことができる。一実施例として、エンコーダ／デコーダは、多重仮定予測においてプレーナモード、垂直モード、水平モードのいずれかのみを使用することができる。このような場合、エンコーダ／デコーダは、図３２に示したように、一つのリストを用いて多重仮定予測をシグナリングすることができる。また、エンコーダ／デコーダは、インデックスシグナリングに可変長コーディングを用いることができる。一実施例として、固定された順序でリストを生成することができる。例えば、プレーナモード、垂直モード、水平モードの順でよい。
【０２２６】
さらに他の実施例として、エンコーダ／デコーダは、現在ブロック周辺のモードを参照してリストを生成することができる。例えば、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一である場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡであってよい。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡがプレーナモードである場合、ｃａｎｄＭｏｄｅＬｉｓｔ［１］とｃａｎｄＭｏｄｅＬｉｓｔ［２」は既に設定された順序にしたがって設定できる。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡがプレーナモードでない場合、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡでなく、プレーナモード以外のモードであってよい。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢとが異なる場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡでなく、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢでないモードでよい。
【０２２７】
他の実施例として、エンコーダ／デコーダは、多重仮定予測において３つのモードのいずれかのみを使用することができる。前記３つのモードは、プレーナモードとＤＣモードを含むことができる。また、前記３つのモードは、垂直モードと水平モードのいずれかを、条件によって含むことができる。前記条件は、ブロックサイズに関連した条件であってよい。例えば、ブロックの幅と高さのうちどれが大きいかによって、水平モードを含むか垂直モードを含むかが決定できる。例えば、ブロックの幅が高さよりも大きい場合、垂直モードを含むことができる。ブロックの高さが幅よりも大きい場合、水平モードを含むことができる。ブロックの高さと幅が等しい場合、垂直モード又は水平モードのうち、あらかじめ定義された特定モードを含むことができる。
【０２２８】
また、一実施例において、エンコーダ／デコーダは、固定された順序でリストを生成することができる。例えば、プレーナモード、ＤＣモード、垂直又は水平モードの順序と定義されてよい。また、他の実施例として、現在ブロック周辺のモードを参照してリストを生成することができる。例えば、仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一である場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡであってよい。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡが方向性モードでない場合、エンコーダ／デコーダはｃａｎｄＭｏｄｅＬｉｓｔ［１］とｃａｎｄＭｏｄｅＬｉｓｔ［２］を既に設定された順序にしたがって設定することができる。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢが同一であり、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡが方向性モードである場合、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝プレーナモード、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ＤＣモードであってよい。仮にｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡとｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢとが異なる場合、ｃａｎｄＭｏｄｅＬｉｓｔ［０］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡ、ｃａｎｄＭｏｄｅＬｉｓｔ［１］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ、ｃａｎｄＭｏｄｅＬｉｓｔ［２］＝ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＡでなく、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＢ以外のモードでよい。
【０２２９】
本発明の他の実施例によれば、多重仮定予測において２つのモードのいずれかのみを使用することができる。前記２つのモードは、プレーナモードを含むことができる。また、前記２つのモードは、垂直モードと水平モードのいずれかを、条件によって含むことができる。前記条件は、ブロックサイズと関連した条件であってよい。例えば、エンコーダ／デコーダは、ブロックの幅と高さのうちどれか大きいかによって、水平モードを含むか垂直モードを含むが決定できる。例えば、ブロックの幅が高さよりも大きい場合、垂直モードを含むことができる。ブロックの高さが幅よりも大きい場合、水平モードを含むことができる。ブロックの高さと幅が等しい場合、垂直モード又は水平モードのうち、約束されているモードを含むことができる。このような場合、多重仮定予測においてどのモードを使用するかを示すためのフラグがシグナリングされてよい。
【０２３０】
一実施例をよれば、エンコーダ／デコーダは、ブロックサイズによって特定モードを除外することができる。例えば、ブロックサイズが小さい場合、特定モードを除外することができる。例えば、ブロックサイズが小さい場合、多重仮定予測においてプレーナモードだけを使用することができる。仮に、特定モードが除外されると、モードシグナリングを省略したり減らしてシグナリングすることができる。
【０２３１】
本発明の他の実施例によれば、エンコーダ／デコーダは、多重仮定予測においてイントラ予測されたサンプルを生成するために１つのモード（すなわち、イントラ予測モード）だけを使用することができる。一実施例として、前記１つのモードはプレーナモードと定義されてよい。前述したように、多重仮定予測は、インター予測されたサンプル及びイントラ予測されたサンプルを用いることができる。インター予測されたサンプルを生成すると同時に最適の予測モードを決定してイントラ予測サンプルを生成すると、予測の正確度は上がるが、エンコーディング複雑度が高くなってシグナリングビットが増加する問題につながり得る。したがって、多重仮定予測を行うとき、イントラ予測モードとして統計的に最も多く発生するプレーナモードだけを用いることによって、エンコーディング複雑度を改善し、シグナリングビットを節約し、これによって映像の圧縮性能を上げることができる。
【０２３２】
さらに他の実施例として、前記１つのモードは、垂直モードと水平モードのうち、ブロックサイズに基づいて決定されてよい。例えば、ブロックの幅と高さのどれが大きいかによって、垂直モードと水平モードのいずれかと決定されてよい。例えば、ブロックの幅が高さよりも大きい場合、垂直モードと決定され、ブロックの高さが幅よりも大きい場合、水平モードと決定されてよい。仮にブロックの幅と高さが等しい場合、エンコーダ／デコーダは既に設定されたモードと決定されてよい。仮にブロックの幅と高さが等しい場合、エンコーダ／デコーダは、水平モード又は垂直モードのうち、既に設定されたモードと決定することができる。仮にブロックの幅と高さが等しい場合、エンコーダ／デコーダは、プレーナモード又はＤＣモードのうち、既に設定されたモードと決定できる。
【０２３３】
また、本発明の実施例によれば、多重仮定予測で生成された予測をフリッピング（ｆｌｉｐｐｉｎｇ）するフリッピングシグナリングが存在してよい。これによって、多重仮定予測において一つのモードが選択されても、フリッピングによって反対側の残差（ｒｅｓｉｄｕａｌ）をなくす効果を有することができる。また、これによって、多重仮定予測で使用可能な候補モードを減らす効果を有することができる。より具体的に、例えば、前記実施例のうち、１つのモードだけを使用する場合にフリッピングを使用することができる。これによって、予測性能を高めることができる。前記フリッピングは、ｘ軸に対するフリッピング、ｙ軸に対するフリッピング、又はｘ、ｙ軸両方に対するフリッピングを意味することができる。一実施例として、多重仮定予測で選択されたモードに基づいてフリッピング方向が決定されてよい。例えば、多重仮定予測で選択されたモードがプレーナモードである場合、エンコーダ／デコーダは、ｘ、ｙ軸両方に対するフリッピングであると決定できる。また、ｘ、ｙ軸両方に対してフリッピングすることは、ブロックサイズ又は形状によるものでよい。例えば、ブロックが正方形でない場合、エンコーダ／デコーダは、ｘ、ｙ軸両方に対してフリッピングしないと決定できる。例えば、多重仮定予測で選択されたモードが水平モードである場合、エンコーダ／デコーダはｘ軸に対するフリッピングであると決定できる。例えば、多重仮定予測で選択されたモードが垂直モードである場合、エンコーダ／デコーダは、ｙ軸に対するフリッピングであると決定できる。また、多重仮定予測で選択されたモードがＤＣモードである場合、エンコーダ／デコーダは、フリッピングがないと決定し、明示的なシグナリング／パーシングを行わなくてもよい。
【０２３４】
また、多重仮定予測においてＤＣモードは、照度補償（ｉｌｌｕｍｉｎａｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ）と類似の効果を有することができる。したがって、本発明の一実施例によれば、多重仮定予測においてＤＣモードと照度補償方法のいずれか一方を使用すれば、他方を使用しなくてもよい。また、多重仮定予測は、ＧＢｉ（ｇｅｎｅｒａｌｉｚｅｄ  ｂｉ−ｐｒｅｄｉｃｔｉｏｎ ）と類似の効果を有することができる。例えば、多重仮定予測においてＤＣモードはＧＢｉと類似の効果を有することができる。ＧＢｉ予測は、ブロック単位、ＣＵ単位において両方向予測の２つの参照ブロック間の加重値を調節する技法であってよい。したがって、本発明の一実施例によれば、多重仮定予測（又は、多重仮定予測においてＤＣモード）とＧＢｉ予測方法のいずれか一方を使用すれば、他方を使用しなくてもよい。また、これは、多重仮定予測の予測のうち両方向予測である場合を含むものでよい。例えば、多重仮定予測の選択されたマージ候補が両方向予測である場合、ＧＢｉ予測を使用しなくてもよい。これらの実施例において多重仮定予測とＧＢｉ予測間の関係は、多重仮定予測の特定モード、例えば、ＤＣモードを用いるときに限ってもよい。又は、ＧＢｉ予測関連シグナリングが多重仮定予測関連シグナリングよりも前に存在する場合、ＧＢｉ予測を使用すれば、多重仮定予測又は多重仮定予測の特定モードを使用しなくて済む。本発明において、いずれかの方法を使用しないということは、前記いずれかの方法に対するシグナリングをせず、関連シンタックスをパーシングしないことを意味できる。
【０２３５】
図３３は、本発明の一実施例に係る多重仮定予測で参照する周辺位置を示す図である。前述したように、エンコーダ／デコーダは、多重仮定予測の候補リストを作る過程で周辺位置を参照することができる。例えば、前述したｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸが用いられてよい。このとき、参照する現在ブロック周辺のＡとＢの位置は、図３３に示したＮｂＡとＮｂＢであってよい。仮に、現在ブロックの左上端サンプルの位置が、図２９に示したのと同様にＣｂであり、その座標が（ｘＣｂ，ｙＣｂ）のとき、ＮｂＡは（ｘＮｂＡ，ｙＮｂＡ）＝（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ−１）であり、ＮｂＢは（ｘＮｂＢ，ｙＮｂＢ）＝（ｘＣｂ＋ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であってよい。ここで、ｃｂＷｉｄｔｈとｃｂＨｅｉｇｈｔはそれぞれ、現在ブロックの幅と高さであってよい。また、多重仮定予測の候補リストを作る過程で周辺位置はイントラ予測のＭＰＭリスト生成で参照する周辺位置と同一であってよい。
【０２３６】
さらに他の実施例として、多重仮定予測の候補リストを作る過程で参照する周辺位置は、現在ブロックの左中央位置と上中央位置又はこれに近接した位置であってよい。例えば、ＮｂＡとＮｂＢは、（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ／２−１）、（ｘＣｂ＋ｃｂＷｉｄｔｈ／２−１，ｙＣｂ−１）であってよい。又は、ＮｂＡとＮｂＢは、（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ／２）、（ｘＣｂ＋ｃｂＷｉｄｔｈ／２，ｙＣｂ−１）であってよい。
【０２３７】
図３４は、本発明の一実施例に係る周辺のモードを参照する方法を示す図である。前述したように、多重仮定予測の候補リストを作る過程で周辺位置を参照できるが、図３０の実施例では、周辺位置が多重仮定予測を使用しない場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを既に設定されたモードに設定した。これは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを設定するとき、周辺位置のモードがそのままｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸにならない場合があるわけであろう。したがって、本発明の一実施例によれば、周辺位置が多重仮定予測を使用しなかった場合でも、周辺位置が使用したモードが多重仮定予測に用いられるモードであれば、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを周辺位置が使用したモードに設定できる。多重仮定予測に用いられるモードは、プレーナモード、ＤＣモード、垂直モード、水平モードであってよい。
【０２３８】
又は、周辺位置が多重仮定予測を使用しない場合でも、周辺位置が使用したモードが特定モードであれば、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを周辺位置が使用したモードに設定できる。又は、周辺位置が多重仮定予測を使用しなかった場合でも、周辺位置が使用したモードが垂直モード或いは高さモードであれば、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを周辺位置が使用したモードに設定できる。又は、周辺位置が現在ブロックの上側である場合、周辺位置が多重仮定予測を使用しなかった場合でも、周辺位置が使用したモードが垂直モードであれば、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを周辺位置が使用したモードに設定できる。また、周辺位置が現在ブロックの左側であるとき、周辺位置が多重仮定予測を使用しなかった場合でも、周辺位置が使用したモードが水平モードであれば、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸを周辺位置が使用したモードに設定できる。
【０２３９】
図３４を参照すると、ｍｈ＿ｉｎｔｒａ＿ｆｌａｇは、多重仮定予測を使用するか（使用したか）否かを示すシンタックス要素（又は、変数）であってよい。また、周辺ブロックで使用したイントラ予測モードは、水平モードであってよい。また、現在ブロックが多重仮定予測を用いることができ、周辺ブロックのモードに基づくｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅを用いて候補リストが生成できるが、周辺が多重仮定予測を使用しなかった場合でも、周辺ブロックのイントラ予測モードが特定モード、例えば、水平モードであるので、エンコーダ／デコーダは、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅを水平モードに設定できる。
【０２４０】
以上で説明した周辺モード参照方法の例を、前述した図３０の他の実施例と結合して以下に再び記述する。本発明の一実施例によれば、周辺ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ（Ｘは、Ａ又はＢ）は、次のような方法で誘導できる。
【０２４１】
１．隣ブロック可用性確認プロセスで指定されたブロックに対する可用性誘導プロセスが呼び出され、前記可用性誘導プロセスは、位置（ｘＣｕｒｒ，ｙＣｕｒｒ）を（ｘＣｂ，ｙＣｂ）に設定し、隣位置（ｘＮｂＹ，ｙＮｂＹ）を（ｘＮｂＸ，ｙＮｂＸ）を入力とすることができ、出力は可用性変数ａｖａｉｌａｂｌｅＸに割り当てられてよい。
【０２４２】
２．候補イントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは、次の方法で誘導されてよい：
【０２４３】
Ａ．仮に、一つ以上の次の条件が真である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＤＣモードに設定されてよい。
【０２４４】
ａ）Ｔｈｅ  ｖａｒｉａｂｌｅ  ａｖａｉｌａｂｌｅＸがＦＡＬＳＥである場合。
【０２４５】
ｂ）ｍｈ＿ｉｎｔｒａ＿ｆｌａｇ［ｘＮｂＸ］［ｙＮｂＸ］が１でなく、そして、ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］がＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０及びＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８でない場合。
【０２４６】
ｃ）ＸがＢであり、ｙＣｂ−１が（（ｙＣｂ＞＞ＣｔｂＬｏｇ２ＳｉｚｅＹ）＜＜ＣｔｂＬｏｇ２ＳｉｚｅＹ）よりも小さい場合。
【０２４７】
Ｂ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０に設定されてよい。
【０２４８】
Ｃ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＜＝ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４であり、ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＤＣである場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８に設定されてよい。
【０２４９】
Ｄ．そうでない場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］に設定されてよい。
【０２５０】
本発明の他の実施例によれば、周辺ブロックのイントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸ（Ｘは、Ａ又はＢ）は、次のような方法で誘導できる。
【０２５１】
１．隣ブロック可用性確認プロセスで指定されたブロックに対する可用性誘導プロセスが呼び出され、前記可用性誘導プロセスは位置（ｘＣｕｒｒ，ｙＣｕｒｒ）を（ｘＣｂ，ｙＣｂ）に設定し、隣位置（ｘＮｂＹ，ｙＮｂＹ）を（ｘＮｂＸ，ｙＮｂＸ）を入力とすることができ、出力は可用性変数ａｖａｉｌａｂｌｅＸに割り当てられてよい。
【０２５２】
２．候補イントラ予測モードｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは、次の方法で誘導できる：
【０２５３】
Ａ．仮に、一つ以上の次の条件が真である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＤＣモードに設定されてよい。
【０２５４】
ａ）Ｔｈｅ  ｖａｒｉａｂｌｅ  ａｖａｉｌａｂｌｅＸがＦＡＬＳＥである場合。
【０２５５】
ｂ）ｍｈ＿ｉｎｔｒａ＿ｆｌａｇ［ｘＮｂＸ］［ｙＮｂＸ］が１でなく、そして、ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］がＩＮＴＲＡ＿ＰＬＡＮＡＲ、ＩＮＴＲＡ＿ＤＣ、ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０及びＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８でない場合。
【０２５６】
ｃ）ＸがＢであり、ｙＣｂ−１が（（ｙＣｂ＞＞ＣｔｂＬｏｇ２ＳｉｚｅＹ）＜＜ＣｔｂＬｏｇ２ＳｉｚｅＹ）よりも小さい場合。
【０２５７】
Ｂ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４である場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ５０に設定されてよい。
【０２５８】
Ｃ．そうでない場合、仮にＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＜＝ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４であり、ＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］＞ＩＮＴＲＡ＿ＤＣである場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩＮＴＲＡ＿ＡＮＧＵＬＡＲ１８に設定されてよい。
【０２５９】
Ｄ．そうでない場合、ｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸはＩｎｔｒａＰｒｅｄＭｏｄｅＹ［ｘＮｂＸ］［ｙＮｂＸ］に設定されてよい。
【０２６０】
前述したリスト設定方法においてｃａｎｄＩｎｔｒａＰｒｅｄＭｏｄｅＸは前記周辺モード参照方法によって決定されてよい。
【０２６１】
図３５は、本発明の一実施例に係る周辺参照サンプルを用いる方法を示す図である。前述したように、多重仮定予測を用いる場合、イントラ予測を他の予測と結合して使用することができる。したがって、多重仮定予測を用いる場合、現在ブロック周辺のサンプルを参照サンプルとして用いてイントラ予測を生成することができる。本発明の一実施例によれば、多重仮定予測を使用する場合、復元サンプルを用いるモードを使用することができる。また、多重仮定予測を使用しない場合、復元サンプルを用いるモードを使用しなくてもよい。前記復元サンプルは現在ブロック周辺の復元サンプルであってよい。
【０２６２】
前記復元サンプルを用いるモードの一例として、テンプレートマッチング（ｔｅｍｐｌａｔｅ  ｍａｔｃｈｉｎｇ）方法を用いることができる。すなわち、あるブロックを基準に既に設定された位置の復元サンプルを、テンプレート（又は、テンプレート領域）と定義することができる。前記テンプレートマッチングは、現在ブロックのテンプレートと比較しようとするブロックのテンプレートの費用を比較し、費用の小さいブロックを探す動作であってよい。このとき、費用は、テンプレートの絶対値の和、差分の二乗の和などと定義することができる。例えば、エンコーダ／デコーダは、現在ブロックと参照ピクチャのブロック間のテンプレートマッチングを用いて、現在ブロックと類似すると予想されるブロックを検索でき、これに基づいてモーションベクトルを設定したり或いはモーションベクトルを改善（ｒｅｆｉｎｅ）することができる。また、前記復元サンプルを用いるモードの例として、復元サンプルを用いるモーション補償、モーションベクトル改善などが挙げられる。
【０２６３】
現在ブロック周辺の復元サンプルを用いるためには、現在ブロックをデコードするとき、周辺ブロックのデコーディングが完了することを待たなければならない。このような場合、現在ブロックと周辺ブロックを並列処理することが困難であり得る。したがって、多重仮定予測を使用しない場合、エンコーダ／デコーダは、並列処理を可能にするために、現在ブロック周辺の復元サンプルを用いるモードを使用しなくてもよい。又は、多重仮定予測を使用する場合、現在ブロック周辺の復元サンプルを用いてイントラ予測を生成できるので、エンコーダ／デコーダは、現在ブロック周辺の復元サンプルを用いる他のモードも使用することができる。
【０２６４】
また、本発明の一実施例によれば、多重仮定予測を使用しても、候補インデックスによって、現在ブロック周辺の復元サンプル使用の可否が異なってよい。一実施例として、候補インデックスがあらかじめ定義された特定スレショルドよりも小さいとき、現在ブロック周辺の復元サンプルを使用可能である。候補インデックスが小さいと、候補インデックスシグナリングビット数が少なく、候補の正確度が高くてすみ、コーディング効率の高いものに復元サンプルを用いてさらに正確度を上げることができる。他の実施例として、候補インデックスが特定スレショルドよりも大きいとき、現在ブロック周辺の復元サンプルを使用可能である。候補インデックスが大きいと、候補インデックスシグナリングビット数が多く、候補の正確度が低いことがあり、正確度の低い候補に現在ブロック周辺の復元サンプルを用いることによって正確度を補完することができる。
【０２６５】
本発明の一実施例によれば、多重仮定予測を使用する場合、エンコーダ／デコーダは、現在ブロック周辺の復元サンプルを用いてインター予測を生成し、前記インター予測を多重仮定予測のイントラ予測と結合して予測ブロックを生成することができる。図３５を参照すると、現在ブロックが多重仮定予測を使用するか否かを示すシグナリングであるｍｈ＿ｉｎｔｒａ＿ｆｌａｇ値が１である。現在ブロックが多重仮定予測を使用するので、現在ブロック周辺の復元サンプルを用いるモードを使用することができる。
【０２６６】
図３６は、本発明の一実施例に係る変換モードを示す図である。本発明の一実施例によれば、ブロックのサブパート（ｓｕｂ−ｐａｒｔ）に対してのみ変換を行う変換モードが存在してよい。本明細書において、このように、サブパート（ｓｕｂ−ｐａｒｔ）に対してのみ変換が適用される変換モードを、サブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ，ＳＢＴ）又は空間的に変わる変換（ｓｐａｔｉａｌｌｙ  ｖａｒｙｉｎｇ  ｔｒａｎｓｆｏｒｍ，ＳＶＴ）などと呼ぶことができる。例えば、ＣＵ又はＰＵが複数のＴＵに分けられ、複数のＴＵの一部だけが変換されてよい。又は、例えば、複数のＴＵのいずれか一つのＴＵだけが変換されてよい。前記複数のＴＵのうち変換しないＴＵは、残差が０であると設定できる。
【０２６７】
図３６を参照すると、一つのＣＵ又はＰＵを複数のＴＵに分けるタイプとしてＳＢＴ−Ｖ（ＳＢＴ−ｖｅｒｔｉｃａｌ）とＳＢＴ−Ｈ（ＳＢＴ−ｈｏｒｉｚｏｎｔａｌ）の２種類があり得る。ＳＢＴ−Ｖは、複数のＴＵの高さがＣＵ又はＰＵ高さと等しく、複数のＴＵの幅がＣＵ又はＰＵ幅と異なるタイプでよい。ＳＢＴ−Ｈは、複数のＴＵの高さがＣＵ又はＰＵ高さと異なり、複数のＴＵの幅がＣＵ又はＰＵ幅と等しいタイプでよい。一実施例として、ＳＢＴ−Ｖにおける変換するＴＵの幅及び位置はシグナリングされてよい。また、ＳＢＴ−Ｈにおける変換するＴＵの高さ及び位置はシグナリングされてよい。一実施例をよれば、ＳＢＴタイプと位置、幅又は高さによる変換カーネルがあらかじめ設定されてもよい。
【０２６８】
このように、ＣＵ又はＰＵの一部だけを変換するモードがあることは、予測後に残差がＣＵ又はＰＵの一部に主として存在することが可能なためである。すなわち、ＳＢＴは、ＴＵに対するスキップモードと同一の概念を有する。このとき、既存のスキップモードは、ＣＵに対するスキップモードであってよい。
【０２６９】
図３６を参照すると、ＳＢＴ−Ｖ（図３６の（ａ）及び（ｂ））、ＳＢＴ−Ｈ（図３６の（ｃ）及び（ｄ））の各タイプに対して、Ａ表示された変換する位置が定義されてよい。そして、幅又は高さがＣＵ幅又はＣＵ高さの１／２又は１／４と定義されてよい。また、Ａと表示された領域以外の部分は、残差を０値と見なすことができる。また、ＳＢＴを使用できる条件が定義されてよい。例えば、ＳＢＴが可能な条件は、ブロックサイズと関連した条件、上位レベル（ｈｉｇｈ  ｌｅｖｅｌ）（例えば、シーケンス、スライス、タイルなど）のシンタックスで、使用可能か否かについてシグナリングされてよい。
【０２７０】
本発明の一実施例によれば、多重仮定予測と変換モード間には関連関係を有することができる。例えば、いずれか一方の使用の有無によって他方の使用の有無が決定されてよい。又は、いずれか一つのモードによって他のモードの使用の有無が決定されてよい。又は、いずれか一方の使用の有無によって他方のモードの使用の有無が決定されてよい。一実施例として、前記変換モードは、図３６で説明したＳＢＴであってよい。すなわち、多重仮定予測使用の有無によってＳＢＴ使用の有無が決定されてよい。又は、ＳＢＴ使用の有無によって多重仮定予測使用の有無が決定されてよい。次の表６は、本発明の一実施例に係る多重仮定予測と変換モード間の関係を例示するシンタックス構造を示す。
【０２７１】
【表６】
2022502972.tif 000013
【０２７２】
表６を参照すると、多重仮定予測使用の有無によってＳＢＴ使用の有無が決定されてよい。すなわち、現在ブロックに多重仮定予測が適用されない場合（！ｍｈ＿ｉｎｔｒａ＿ｆｌａｇが真である場合）、デコーダは、ＳＢＴ適用の有無を示すシンタックス要素であるｃｕ＿ｓｂｔ＿ｆｌａｇをパーシングできる。現在ブロックに多重仮定予測が適用されない場合、ｃｕ＿ｓｂｔ＿ｆｌａｇをパーシングしなくてもよい。この場合、ｃｕ＿ｓｂｔ＿ｆｌａｇは、あらかじめ定義された条件によって、その値が０と推論されてよい。
【０２７３】
前述したように、ＳＢＴは、処理ブロックに対する予測後に残差がブロック内の一部にのみ存在する場合に圧縮性能改善が続く。一方、多重仮定予測の場合には、インター予測を用いてオブジェクトの動きを効果的に反映すると同時に、イントラ予測を用いてその残りの領域に対する予測を効率的に行うことができるので、ブロック全体に対する予測性能の向上が期待される。すなわち、多重仮定予測が適用される場合、ブロック全般に対する予測性能が向上し、ブロックの一部にのみ残差が偏重する現象が相対的に少なく発生してすむ。したがって、本発明の一実施例によれば、エンコーダ／デコーダは、多重仮定予測が適用される場合、ＳＢＴを適用しなくてもよい。又は、エンコーダ／デコーダは、ＳＢＴが適用される場合、多重仮定予測を適用しなくてもよい。
【０２７４】
本発明の一実施例によれば、多重仮定予測使用の有無或いは多重仮定予測のモードによって、ＳＢＴの変換するＴＵの位置が制限されてよい。又は、多重仮定予測使用の有無或いは多重仮定予測のモードによってＳＢＴの変換するＴＵの幅（ＳＢＴ−Ｖ）又は高さ（ＳＢＴ−Ｈ）が制限されてよい。これによって、位置、幅又は高さに関するシグナリングを減らすことができる。例えば、ＳＢＴの変換するＴＵの位置が多重仮定予測においてイントラ予測の加重値が高い領域でなくて済む。加重値が大きい領域の残差は多重仮定予測によって減らすことができるためである。
【０２７５】
したがって、多重仮定予測を使用するとき、ＳＢＴで加重値が大きい側を変換するモードはなくてもよい。例えば、多重仮定予測において水平モード又は垂直モードを用いる場合、図３６の（ｂ）と（ｄ）のＳＢＴタイプは省略されてよい（すなわち、考慮しなくてもよい）。さらに他の実施例として、多重仮定予測においてプレーナモードを用いる場合、ＳＢＴの変換するＴＵの位置が制限されてよい。例えば、多重仮定予測においてプレーナモードを用いる場合、図３６の（ａ）と（ｃ）のＳＢＴタイプは省略されてよい。これは、多重仮定予測においてプレーナモードを用いる場合、イントラ予測の参照サンプルに隣接した領域は、参照サンプル値と類似する値になり得、これによって、参照サンプルに隣接した領域は相対的に残差が小さくなり得るためである。
【０２７６】
他の実施例において、多重仮定予測を使用する場合、可能なＳＢＴ変換するＴＵの幅又は高さの値は変わてよい。又は、多重仮定予測において特定モードを用いる場合、可能なＳＢＴ変換するＴＵの幅又は高さの値は変わってよい。例えば、多重仮定予測を使用する場合、ブロックのうち広い部分に残差が多く残らなくて済むので、ＳＢＴ変換するＴＵの幅又は高さの大きい値は除外させることができる。又は、多重仮定予測を使用する場合、多重仮定予測において加重値が変わる単位のようなＳＢＴ変換するＴＵの幅又は高さの値は除外させることができる。
【０２７７】
表６を参照すると、ＳＢＴ使用の有無を示すｃｕ＿ｓｂｔ＿ｆｌａｇと多重仮定予測使用の有無を示すｍｈ＿ｉｎｔｒａ＿ｆｌａｇが存在してよい。ｍｈ＿ｉｎｔｒａ＿ｆｌａｇが０である場合、ｃｕ＿ｓｂｔ＿ｆｌａｇをパーシングすることができる。また、ｃｕ＿ｓｂｔ＿ｆｌａｇが存在しない場合、０と推論されてよい。多重仮定予測でイントラ予測を結合すること及びＳＢＴはいずれも、当該技術を使用しないとき、ＣＵ又はＰＵの一部にのみ残差が多く残り得る問題を解決するために用いることができる。したがって、両技術の連関性があり得るので、一つの技術の使用の有無或いは一つの技術の特定モード使用の有無などを他の技術に対するものに基づいて決定することができる。
【０２７８】
また、表６で、ｓｂｔＢｌｏｃｋＣｏｎｄｉｔｉｏｎｓは、ＳＢＴが可能な条件を示すことができる。ＳＢＴが可能な条件は、ブロックサイズと関連した条件、上位レベル（ｈｉｇｈ  ｌｅｖｅｌ）（例えば、シーケンス、スライス、タイルなど）で、使用可能か否かについてのシグナリング値などを含むことができる。
【０２７９】
図３７は、本発明の一実施例に係る色差成分間の関係を示す図である。図３７を参照すると、カラーフォーマット（ｃｏｌｏｒ  ｆｏｒｍａｔ）は、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃ、Ｃｈｒｏｍａ  ｆｏｒｍａｔ、ｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇなどと表現されてよい。仮に、モノクローム（Ｍｏｎｏｃｈｒｏｍｅ）である場合、１個のサンプル配列（ｓａｍｐｌｅ  ａｒｒａｙ）のみ存在し得る。また、ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣはいずれも１でよい。仮に、４：２：０サンプリングである場合、色差配列（ｃｈｒｏｍａ  ａｒｒａｙ）（又は、色差コンポーネント、色差ブロック）は２個存在してよい。また、色差配列（ｃｈｒｏｍａ  ａｒｒａｙ）は、輝度配列（ｌｕｍａ  ａｒｒａｙ）（又は、輝度コンポーネント、輝度ブロック）の幅の半分、高さの半分を有することができる。ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣはいずれも２でよい。ＳｕｂＷｉｄｔｈＣとＳｕｂＨｅｉｇｈｔＣは、輝度配列と比較しての色差配列のサイズを示すことができ、色差配列の幅又は高さが輝度配列の半分サイズである場合、ＳｕｂＷｉｄｔｈＣ又はＳｕｂＨｅｉｇｈｔＣは２でよく、色差配列の幅又は高さが輝度配列と同じサイズである場合、ＳｕｂＷｉｄｔｈＣ又はＳｕｂＨｅｉｇｈｔＣは１でよい。
【０２８０】
仮に、４：２：２サンプリングである場合、色差配列が２個存在してよい。また、色差配列は、輝度配列の半分の幅、同一の高さであってよい。ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣはそれぞれ、２、１でよい。仮に４：４：４サンプリングである場合、色差配列は、輝度配列と同じな幅、同じ高さであってよい。ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣはいずれも１でよい。このとき、ｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇに基づいて個別に処理されてよい。仮にｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇが０である場合、色差配列は輝度配列と幅、高さが同一であってよい。仮にｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇが１である場合、３個のカラープレーン（ｃｏｌｏｒ  ｐｌａｎｅ）（輝度、Ｃｂ、Ｃｒ）はそれぞれ処理されてよい。ｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇに関係なく、４：４：４である場合、ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣはいずれも１でよい。
【０２８１】
仮に、ｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇが１である場合、一つのスライスに一つのカラー成分に該当するものだけが存在してよい。ｓｅｐａｒａｔｅ＿ｃｏｌｏｕｒ＿ｐｌａｎｅ＿ｆｌａｇが０である場合、一つのスライスに複数のカラー成分に該当するものが存在してよい。図３８を参照すると、４：２：２である場合に限ってＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣが異なることが可能である。したがって、４：２：２である場合、輝度基準幅対高さの関係が、色差基準幅対高さの関係が異なってよい。
【０２８２】
例えば、輝度サンプル基準幅がｗｉｄｔｈＬで、色差サンプル基準幅がｗｉｄｔｈＣであり、仮にｗｉｄｔｈＬとｗｉｄｔｈＣが対応する場合、その関係は次の数学式６のようである。
【０２８３】
【数６】
2022502972.tif 000014
【０２８４】
また、同様に、輝度サンプル基準高さがｈｅｉｇｈｔＬで、色差サンプル基準高さがｈｅｉｇｈｔＣであり、仮にｈｅｉｇｈｔＬとｈｅｉｇｈｔＣが対応する場合、その関係は、次の数学式７のようである。
【０２８５】
【数７】
2022502972.tif 000015
【０２８６】
また、カラーコンポーネントを指示する（示す）値が存在してよい。例えば、ｃＩｄｘは、カラーコンポーネントを指示できる。例えば、ｃＩｄｘは、カラーコンポーネントインデックスであってよい。仮にｃＩｄｘが０であれば、輝度コンポーネントを示すことができる。また、ｃＩｄｘが０でなければ、色差コンポーネントを示すことができる。またｃＩｄｘが１であれば、色差Ｃｂコンポーネントを示すことができる。また、ｃＩｄｘが２であれば、色差Ｃｒコンポーネントを示すことができる。
【０２８７】
図３８は、本発明の一実施例に係るカラー（ｃｏｌｏｒ）成分間の関係を示す図である。図３８の（ａ）、（ｂ）、（ｃ）はそれぞれ、４：２：０、４：２：２、４：４：４の場合を仮定する。図３８（ａ）を参照すると、水平方向において輝度サンプル２個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。また、垂直方向において輝度サンプル２個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。図３８（ｂ）を参照すると、水平方向において輝度サンプル２個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。また、垂直方向において輝度サンプル１個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。図３８（ｃ）を参照すると、水平方向において輝度サンプル１個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。また、垂直方向において輝度サンプル１個当たりに色差サンプルが１個（Ｃｂ  １個、Ｃｒ  １個）位置してよい。
【０２８８】
前述したように、このような関係によって、図３７で説明したＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣが決定されたものでよい。そして、ＳｕｂＷｉｄｔｈＣ、ＳｕｂＨｅｉｇｈｔＣに基づいて輝度サンプル基準、色差サンプル基準間の変換を行うことができる。
【０２８９】
図３９は、本発明の一実施例に係る周辺参照位置を示す図である。本発明の実施例によれば、エンコーダ／デコーダは、予測時に周辺位置を参照することができる。例えば、前述したように、ＣＩＩＰ（ｃｏｍｂｉｎｅｄ  ｉｎｔｅｒ−ｐｉｃｔｕｒｅ  ｍｅｒｇｅ  ａｎｄ  ｉｎｔｒａ−ｐｉｃｔｕｒｅ  ｐｒｅｄｉｃｔｉｏｎ）行うとき、周辺位置を参照することができる。ＣＩＩＰは、前述した多重仮定予測であってよい。すなわち、ＣＩＩＰは、インター予測（例えば、マージモードインター予測）とイントラ予測を結合した予測方法であってよい。本発明の実施例によれば、エンコーダ／デコーダは、周辺位置を参照してインター予測とイントラ予測を結合させることができる。例えば、エンコーダ／デコーダは、周辺位置を参照してインター予測対イントラ予測の比率を決定することができる。又は、エンコーダ／デコーダは、周辺位置を参照してインター予測とイントラ予測を結合させるとき、加重値（ｗｅｉｇｈｔｉｎｇ）を決定することができる。又は、エンコーダ／デコーダは、周辺位置を参照してインター予測とイントラ予測を加重和（ｗｅｉｇｈｔｅｄ  ｓｕｍ）（又は、加重平均（ｗｅｉｇｈｔｅｄ  ａｖｅｒａｇｅ））するとき、加重値を決定することができる。
【０２９０】
本発明の一実施例によれば、参照する周辺位置は、ＮｂＡとＮｂＢを含むことができる。ＮｂＡとＮｂＢの座標はそれぞれ、（ｘＮｂＡ，ｙＮｂＡ）、（ｘＮｂＢ，ｙＮｂＢ）であってよい。また、ＮｂＡは、現在ブロックの左（ｌｅｆｔ）位置であってよい。具体的に、現在ブロックの左上端座標が（ｘＣｂ，ｙＣｂ）であり、現在ブロックの幅、高さがそれぞれｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔである場合、ＮｂＡは（ｘＣｂ−１，ｙＣｂ＋  ｃｂＨｅｉｇｈｔ−１）であってよい。現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、輝度サンプルを基準にした値でよい。又は、現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、現在ピクチャの左上端輝度サンプルに対する現在輝度コーディングブロックの左上端輝度サンプルの位置であってよい。また、前記ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔはそれぞれ、当該色差コンポーネント（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ）を基準にした幅及び高さを示すことができる。前記説明した座標は、輝度コンポーネント（ｌｕｍａ  ｃｏｍｐｏｎｅｎｔ）（又は、輝度ブロック（ｌｕｍａ  ｂｌｏｃｋ））に対するものであってよい。例えば、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、輝度コンポーネントを基準にした幅及び高さを示すことができる。
【０２９１】
また、ＮｂＢは、現在ブロックの上側位置であってよい。より具体的に、現在ブロックの左上端座標が（ｘＣｂ，ｙＣｂ）であり、現在ブロックの幅、高さがそれぞれｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔである場合、ＮｂＢは（ｘＣｂ＋  ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であってよい。現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、輝度サンプルを基準にした値であってよい。又は、現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、現在ピクチャ（ｐｉｃｔｕｒｅ）の左上端輝度サンプルに対する現在輝度コーディングブロックの左上端（ｔｏｐ−ｌｅｆｔ）輝度サンプル位置であってよい。また、前記ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、当該カラーコンポーネントを基準にした値であってよい。前述した座標は、輝度コンポーネント（輝度ブロック）に対するものであってよい。例えば、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、輝度コンポーネントを基準にした値であってよい。
【０２９２】
図３９を参照すると、輝度ブロックに対して左上端、ＮｂＡの座標、ＮｂＢの座標などを図示する。また、ＮｂＡは、現在ブロックの左側位置であってよい。より具体的に、現在ブロックの左上端座標が（ｘＣｂ，ｙＣｂ）であり、現在ブロックの幅、高さがそれぞれｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔである場合、ＮｂＡは（ｘＣｂ−１，ｙＣｂ＋２＊ｃｂＨｅｉｇｈｔ−１）であってよい。現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は輝度サンプルを基準にした値であってよい。又は、現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、現在ピクチャの左上端輝度サンプルに対する現在輝度コーディングブロックの左上端輝度サンプル位置であってよい。また、前記ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、当該カラーコンポーネントを基準にした値であってよい。前述した座標は、色差コンポーネント（色差ブロック）に対するものであってよい。例えば、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、色差コンポーネントを基準にした値であってよい。また、この座標は４：２：０フォーマットであるケースに該当し得る。
【０２９３】
また、ＮｂＢは、現在ブロックの上側位置であってよい。より具体的に、現在ブロックの左上端座標が（ｘＣｂ，ｙＣｂ）であり、現在ブロックの幅、高さがそれぞれｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔである場合、ＮｂＢは（ｘＣｂ＋２＊ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であってよい。現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、輝度サンプルを基準にした値であってよい。又は、現在ブロックの左上端座標（ｘＣｂ，ｙＣｂ）は、現在ピクチャの左上端輝度サンプルに対する現在輝度コーディングブロックの左上端輝度サンプル位置であってよい。また、前記ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、当該カラーコンポーネントを基準にした値であってよい。前述した座標は、色差コンポーネント（ｃｈｒｏｍａ  ｂｌｏｃｋ）に対するものであってよい。例えば、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、色差コンポーネントを基準にした値であってよい。また、この座標は４：２：０フォーマット又は４：２：２フォーマットであるケースに該当し得る。図３９を参照すると、色差ブロックに対して左上端、ＮｂＡの座標、ＮｂＢの座標などを図示する。
【０２９４】
図４０は、本発明の一実施例に係る加重サンプル予測プロセスを示す図である。図４０の実施例では、２つ以上の予測信号を結合する方法を説明する。また、図４０の実施例は、ＣＩＩＰを用いる場合に適用できる。また、図４０の実施例は、図３９で説明した周辺位置参照方法を含むことができる。図４４を参照すると、スケーリングファクターを示す変数ｓｃａｌｌＦａｃｔは、次の数学式８のように説明できる。
【０２９５】
【数８】
2022502972.tif 000016
【０２９６】
数学式８において、エンコーダ／デコーダは、ｃＩｄｘが０の場合、ｓｃａｌｌＦａｃｔを０に設定し、ｃＩｄｘが０でない場合、ｓｃａｌｌＦａｃｔを１に設定できる。本発明の実施例において、ｘ？ｙ：ｚは、ｘが真である場合又はｘが０でない場合に、ｙ値を示し、そうでない場合（ｘが偽である場合（又は、ｘが０である場合））に、ｚ値を示すものでよい。
【０２９７】
また、エンコーダ／デコーダは、多重仮定予測に参照する周辺位置ＮｂＡとＮｂＢの座標である（ｘＮｂＡ，ｙＮｂＡ）、（ｘＮｂＢ，ｙＮｂＢ）を設定できる。図３９で説明した実施例によれば、輝度コンポーネントに対して（ｘＮｂＡ，ｙＮｂＡ）、（ｘＮｂＢ，ｙＮｂＢ）はそれぞれ、（ｘＣｂ−１，ｙＣｂ＋  ｃｂＨｅｉｇｈｔ−１）、（ｘＣｂ＋  ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であり、色差コンポーネントに対して（ｘＮｂＡ，ｙＮｂＡ）、（ｘＮｂＢ，ｙＮｂＢ）はそれぞれ、（ｘＣｂ−１，ｙＣｂ＋２＊ｃｂＨｅｉｇｈｔ−１）、（ｘＣｂ＋２＊ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）に設定されてよい。また２＾ｎをかける演算は、ｎビットを左側シフト（ｌｅｆｔ  ｓｈｉｆｔ）する演算と同一であってよい。例えば、２をかける演算は、１ビットを左側シフト（ｌｅｆｔ  ｓｈｉｆｔ）する値と計算されてよい。また、ｘをｎビット左側シフトすることは、“ｘ＜＜ｎ”と表すことができる。また、２＾ｎで割る演算は、ｎビットを右側シフト（ｒｉｇｈｔ  ｓｈｉｆｔ）する演算と同一であってよい。また、２＾ｎで割って少数点以下を捨てる演算は、ｎビットを右側シフトした値と計算されてよい。例えば、２で割る演算は、１ビットを右側シフトした値と計算されてよい。また、ｘをｎビット右側シフトすることは、“ｘ＞＞ｎ”と表すことができる。したがって、（ｘＣｂ−１，ｙＣｂ＋２＊ｃｂＨｅｉｇｈｔ−１）、（ｘＣｂ＋２＊ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）を（ｘＣｂ−１，ｙＣｂ＋（ｃｂＨｅｉｇｈｔ＜＜１）−１）、（ｘＣｂ＋（ｃｂＷｉｄｔｈ＜＜１）−１，ｙＣｂ−１）と表すことができる。したがって、上で説明した輝度コンポーネントに対する座標と色差コンポーネントに対する座標を共に表すと、次の数学式９のようである。
【０２９８】
【数９】
2022502972.tif 000017
【０２９９】
数学式９において、ｓｃａｌｌＦａｃｔは、前述したように、（ｃＩｄｘ  ＝＝０）？０：１と決定されてよい。このとき、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、各カラーコンポーネントを基準にそれぞれ幅と高さを表す。例えば、輝度コンポーネントを基準にした幅、高さがそれぞれｃｂＷｉｄｔｈＬ、ｃｂＨｅｉｇｈｔＬであり、輝度コンポーネントに対する加重サンプル予測プロセスを行うとき、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔはそれぞれ、ｃｂＷｉｄｔｈＬ、ｃｂＨｅｉｇｈｔＬであってよい。また、輝度コンポーネントを基準にした幅、高さがそれぞれｃｂＷｉｄｔｈＬ、ｃｂＨｅｉｇｈｔＬであり、色差コンポーネントに対する加重サンプル予測プロセスを行うとき、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔはそれぞれｃｂＷｉｄｔｈＬ／ＳｕｂＷｉｄｔｈＣ、ｃｂＨｅｉｇｈｔＬ／ＳｕｂＨｅｉｇｈｔＣであってよい。
【０３００】
また、本発明の一実施例によれば、エンコーダ／デコーダは、周辺位置を参照して当該位置の予測モードを決定することができる。例えば、エンコーダ／デコーダは、予測モードがイントラ予測であるか判断できる。また、予測モードは、ＣｕＰｒｅｄＭｏｄｅによって指示されてよい。ＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡである場合、イントラ予測を使用するモードであってよい。また、ＣｕＰｒｅｄＭｏｄｅ値は、ＭＯＤＥ＿ＩＮＴＲＡ、ＭＯＤＥ＿ＩＮＴＥＲ、ＭＯＤＥ＿ＩＢＣ、ＭＯＤＥ＿ＰＬＴであってよい。ＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＥＲである場合、インター予測を使用することができる。また、ＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＢＣである場合、イントラブロックコピー（ｉｎｔｒａ  ｂｌｏｃｋ  ｃｏｐｙ，ＩＢＣ）を用いることができる。また、ＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＰＬＴである場合、パレット（ｐａｌｅｔｔｅ）モードを用いることができる。また、ＣｕＰｒｅｄＭｏｄｅはチャネルタイプ（ｃｈａｎｎｅｌ  ｔｙｐｅ，ｃｈＴｙｐｅ）、位置によって示されてよい。例えば、ＣｕＰｒｅｄＭｏｄｅ［ｃｈＴｙｐｅ］［ｘ］［ｙ］と示されてよく、この値は、（ｘ，ｙ）位置でチャネルタイプｃｈＴｙｐｅに対するＣｕＰｒｅｄＭｏｄｅ値であってよい。
【０３０１】
また、本発明の一実施例によれば、ｃｈＴｙｐｅはツリータイプ（ｔｒｅｅ  ｔｙｐｅ）に基づくものでよい。例えば、ツリータイプは、ＳＩＮＧＬＥ＿ＴＲＥＥ、ＤＵＡＬ＿ＴＲＥＥ＿ＬＵＭＡ、ＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡなどの値に設定されてよい。ＳＩＮＧＬＥ＿ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニング（ｐａｒｔｉｔｉｏｎｉｎｇ）が共有される部分があってよい。例えば、ＳＩＮＧＬＥ＿ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニングが同一であってよい。又は、ＳＩＮＧＬＥ＿ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニングが同一であるか或いは部分的に同一であってよい。又は、ＳＩＮＧＬＥ＿ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニングが同一シンタックス要素値によって行われてよい。
【０３０２】
また、本発明の一実施例によれば、ＤＵＡＬ  ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニングが独立的であってよい。又は、ＤＵＡＬ  ＴＲＥＥである場合、輝度成分と色差成分のブロックパーティショニングが異なるシンタックス要素値によって行われてよい。また、ＤＵＡＬ  ＴＲＥＥである場合、ツリータイプ値は、ＤＵＡＬ＿ＴＲＥＥ＿ＬＵＭＡ又はＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡであってよい。仮にツリータイプがＤＵＡＬ＿ＴＲＥＥ＿ＬＵＭＡである場合、ＤＵＡＬ  ＴＲＥＥを使用し、輝度成分に対するプロセスであることを示すことができる。仮にツリータイプがＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡである場合、ＤＵＡＬ  ＴＲＥＥを使用し、色差成分に対するプロセスであることを示すことができる。また、ｃｈＴｙｐｅは、ツリータイプがＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡであるか否かに基づいて決定されてよい。例えば、ｃｈＴｙｐｅは、ツリータイプがＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡである場合、１に設定され、ツリータイプがＤＵＡＬ＿ＴＲＥＥ＿ＣＨＲＯＭＡでない場合、０に設定されてよい。したがって、図４０を参照すると、ＣｕＰｒｅｄＭｏｄｅ［０］［ｘＮｂＸ］［ｙＮｂＹ］値が判断できる。Ｘは、ＡとＢに代替可能である。すなわち、ＮｂＡ、ＮｂＢ位置に対するＣｕＰｒｅｄＭｏｄｅ値が判断できる。
【０３０３】
また、本発明の一実施例によれば、周辺位置に対する予測モードを判断したものに基づいてｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸ値を設定することができる。例えば、周辺位置に対するＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡであるか否かによってｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸ値を設定することができる。仮に周辺位置に対するＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡである場合、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸ値をＴＲＵＥに設定し、周辺位置に対するＣｕＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡでない場合、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸ値をＦＡＬＳＥに設定することができる。上に説明しており、下に説明する本発明において、ＸはＡ又はＢなどに取り替えてもよい。また、Ｘと書かれているものは、Ｘ位置に該当することを示すことができる。
【０３０４】
また、本発明の一実施例によれば、周辺位置を参照して、当該位置が利用可能であるか否かを判断できる。当該位置が利用可能であるか否かをａｖａｉｌａｂｌｅＸで設定できる。また、ａｖａｉｌａｂｌｅＸに基づいてｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸを設定することができる。例えば、ａｖａｉｌａｂｌｅＸがＴＲＵＥである場合、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸをＴＲＵＥに設定し、例えば、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥである場合、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸをＦＡＬＳＥに設定できる。図４０を参照すると、当該位置が利用可能か否かは、“ｔｈｅ  ｄｅｒｉｖａｔｉｏｎ  ｐｒｏｃｅｓｓ  ｆｏｒ  ｎｅｉｇｈｂｏｕｒｉｎｇ  ｂｌｏｃｋ  ａｖａｉｌａｂｉｌｉｔｙ”を呼び出すことによって判断することができる。また、当該位置が利用可能か否かは、当該位置が現在ピクチャ内側にあるか否かに基づいて判断できる。当該位置が（ｘＮｂＹ，ｙＮｂＹ）であり、ｘＮｂＹ又はｙＮｂＹが０よりも小さい場合、現在ピクチャを外れたものであって、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥに設定されてよい。また、ｘＮｂＹがピクチャ幅以上である場合、現在ピクチャをはずれたものであって、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥに設定されてよい。ピクチャ幅は、ｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓによって示すことができる。また、ｙＮｂＹがピクチャ高さ以上である場合、現在ピクチャをはずれたものであって、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥに設定されてよい。ピクチャ高さは、ｐｉｃ＿ｈｅｉｇｈｔ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓで示すことができる。また、当該位置が現在ブロックと異なるブロック又は異なるスライスにある場合、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥに設定されてよい。また、当該位置の復元（ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ）が完了していない場合、ａｖａｉｌａｂｌｅＸがＦＡＬＳＥに設定されてよい。復元が完了したか否かは、ＩｓＡｖａｉｌａｂｌｅ［ｃＩｄｘ］［ｘＮｂＹ］［ｙＮｂＹ］で示すことができる。要するに、下記の条件のいずれか一つを満たす場合、ａｖａｉｌａｂｌｅＸをＦＡＬＳＥに設定し、そうでない場合（下記の条件を全て満たさない場合）、ａｖａｉｌａｂｌｅＸをＴＲＵＥに設定することができる。
【０３０５】
−  条件１：ｘＮｂＹ＜０
【０３０６】
−  条件２：ｙＮｂＹ＜０
【０３０７】
−  条件３：ｘＮｂＹ＞＝ｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓ
【０３０８】
−  条件４：ｙＮｂＹ＞＝ｐｉｃ＿ｈｅｉｇｈｔ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓ
【０３０９】
−  条件５：ＩｓＡｖａｉｌａｂｌｅ［ｃＩｄｘ］［ｘＮｂＹ］［ｙＮｂＹ］＝＝ＦＡＬＳＥ
【０３１０】
−  条件６：当該位置（周辺位置（ｘＮｂＹ，ｙＮｂＹ）位置）が現在ブロックと異なるブロック（又は、異なるスライス）に属した場合
【０３１１】
また、本発明の一実施例によれば、オプションによって現在位置と当該位置が同一のＣｕＰｒｅｄＭｏｄｅであるかを判断し、ａｖａｉｌａｂｌｅＸを設定することができる。説明した２つの条件を結合してｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸを設定することができる。例えば、次の条件を全て満たす場合、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸをＴＲＵＥに設定し、そうでない場合（次の条件の少なくとも一つを満たさない場合）、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸをＦＡＬＳＥに設定できる。
【０３１２】
−  条件１：ａｖａｉｌａｂｌｅＸ＝＝ＴＲＵＥ
【０３１３】
−  条件２：ＣｕＰｒｅｄＭｏｄｅ［０］［ｘＮｂＸ］［ｙＮｂＸ］＝＝ＭＯＤＥ＿ＩＮＴＲＡ
【０３１４】
また、本発明の一実施例によれば、複数のｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸに基づいてＣＩＩＰの加重値を決定することができる。例えば、複数のｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＸに基づいてインター予測とイントラ予測を結合させるとき、加重値を決定することができる。例えば、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＡとｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＢに基づいて決定することができる。一実施例によれば、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＡとｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＢが両方ともＴＲＵＥである場合、ｗを３に設定できる。例えば、ｗは、ＣＩＩＰの加重値又は加重値を決定する値であってよい。また、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＡとｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＢが両方ともＦＡＬＳＥである場合、ｗを１に設定できる。また、ｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＡとｉｓＩｎｔｒａＣｏｄｅｄＮｅｉｇｈｂｏｕｒＢの一方がＦＡＬＳＥである場合（両方のうち一方がＴＲＵＥである場合と同一）、ｗを２に設定できる。すなわち、周辺位置がイントラ予測で予測されたか否かに基づいて又は周辺位置がどれくらいイントラ予測で予測されたかに基づいてｗを設定することができる。
【０３１５】
また、本発明の一実施例によれば、ｗはイントラ予測に該当する加重値であってよい。また、インター予測に該当する加重値は、ｗに基づいて決定されてよい。例えば、インター予測に該当する加重値は、（４−ｗ）であってよい。エンコーダ／デコーダは、２つ以上の予測信号を結合するとき、次の数学式１０を用いることができる。
【０３１６】
【数１０】
2022502972.tif 000018
【０３１７】
数学式１０で、ｐｒｅｄＳａｍｐｌｅｓＩｎｔｒａ、ｐｒｅｄＳａｍｐｌｅｓＩｎｔｅｒは、予測信号であってよい。例えば、ｐｒｅｄＳａｍｐｌｅｓＩｎｔｒａ、ｐｒｅｄＳａｍｐｌｅｓＩｎｔｅｒはそれぞれ、イントラ予測によって予測された予測信号、インター予測（例えば、マージモード、より具体的にレギュラーマージモード）によって予測された予測信号であってよい。また、ｐｒｅｄＳａｍｐｌｅＣｏｍｂは、ＣＩＩＰで用いられる予測信号であってよい。
【０３１８】
また、本発明の一実施例によれば、数学式１０を適用するに先立って、結合前の予測信号をアップデートする過程が含まれてよい。例えば、前記アップデート過程に次の数学式１１が適用されてよい。例えば、予測信号をアップデートする過程は、ＣＩＩＰのインター予測信号をアップデートする過程であってよい。
【０３１９】
【数１１】
2022502972.tif 000019
【０３２０】
図４１は、本発明の一実施例に係る周辺参照位置を示す図である。
【０３２１】
図３９及び図４０で周辺参照位置について説明したが、説明した位置を全ての場合（例えば、全ての色差ブロック）に使用すれば問題が発生することがあり、この問題を図４１で説明する。図４１の実施例は、色差ブロックを示している。図３９及び図４０で、色差ブロックに対して輝度サンプルを基準にしたＮｂＡ、ＮｂＢ座標はそれぞれ、（ｘＣｂ−１，ｙＣｂ＋２＊ｃｂＨｅｉｇｈｔ−１）、（ｘＣｂ＋２＊ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であった。しかし、ＳｕｂＷｉｄｔｈＣ又はＳｕｂＨｅｉｇｈｔＣが１である場合、図３９で示した位置と異なる図４１に示した位置を示すことがある。上の座標でｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔに２をかけたものは、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは各カラー成分（この実施例では色差成分）を基準に示しており、座標を輝度基準で示すので、４：２：０である場合、輝度サンプル対色差サンプルの個数を補償するためのものであってよい。すなわち、輝度サンプルｘ軸基準２個に該当する色差サンプル１個であり、輝度サンプルｙ軸基準２個に該当する色差サンプル１個である場合の座標を輝度基準で表すためのものでよい。したがって、ＳｕｂＷｉｄｔｈＣ又はＳｕｂＨｅｉｇｈｔＣが１である場合、異なる位置を示すことができる。したがって、このように色差ブロックに対して常に（ｘＣｂ−１，ｙＣｂ＋２＊ｃｂＨｅｉｇｈｔ−１）、（ｘＣｂ＋２＊ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）位置を使用する場合、現在色差ブロックから遠く離れた位置を参照することが発生し得る。また、この場合、現在ブロックの輝度ブロックで使用する相対的な位置と色差ブロックで使用する相対的な位置が一致しないことがある。また、色差ブロックに対して異なる位置を参照することになるため、現在ブロックと連関性の少ない位置を参照して加重値を設定することがあるか、或いはブロックデコーディング順序においてデコーディング／復元が行われないことがあった。
【０３２２】
図４１を参照すると、４：４：４の場合、すなわち、ＳｕｂＷｉｄｔｈＣとＳｕｂＨｅｉｇｈｔＣが両方とも１である場合の、上述した輝度基準座標の位置を示している。実線で表示した色差ブロックから離れた位置にＮｂＡ，ＮｂＢが存在している。
【０３２３】
図４２は、本発明の一実施例に係る加重サンプル予測プロセスを示す図である。図４２の実施例は、図３９〜図４１で説明した問題を解決するための実施例であってよい。また前述した内容と重複する内容は、説明を省略する。図４０で、ｓｃａｌｌＦａｃｔに基づいて周辺位置を設定し、図４１で説明したように、ｓｃａｌｌＦａｃｔは、ＳｕｂＷｉｄｔｈＣとＳｕｂＨｅｉｇｈｔＣが２である場合に位置を変換するための値である。しかし、前述したように、カラーフォーマットによって問題が発生することがあり、色差サンプル対輝度サンプルの比率は、横と縦が異なることがあるので、本発明の一実施例によれば、ｓｃａｌｌＦａｃｔを横（ｗｉｄｔｈ）と縦（ｈｅｉｇｈｔ）に分離することができる。
【０３２４】
本発明の一実施例によれば、ｓｃａｌｌＦａｃｔＷｉｄｔｈとｓｃａｌｌＦａｃｔＨｅｉｇｈｔが存在してよく、ｓｃａｌｌＦａｃｔＷｉｄｔｈとｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づいて周辺位置を設定することができる。また、周辺位置は、輝度サンプル（輝度ブロック）を基準に設定したものでよい。また、ｓｃａｌｌＦａｃｔＷｉｄｔｈは、ｃＩｄｘ及びＳｕｂＷｉｄｔｈＣに基づいて設定できる。例えば、ｃＩｄｘが０であるか、ＳｕｂＷｉｄｔｈＣが１である場合、ｓｃａｌｌＦａｃｔＷｉｄｔｈを０に設定でき、そうでない場合（ｃＩｄｘが０でなく、ＳｕｂＷｉｄｔｈＣが１でない場合（ＳｕｂＷｉｄｔｈＣが２である場合））、ｓｃａｌｌＦａｃｔＷｉｄｔｈを１に設定できる。この時、ｓｃａｌｌＦａｃｔＷｉｄｔｈは、次の数学式１２を用いて決定できる。
【０３２５】
【数１２】
2022502972.tif 000020
【０３２６】
また、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔは、ｃＩｄｘ及びＳｕｂＨｅｉｇｈｔＣに基づいて設定することができる。例えば、ｃＩｄｘが０であるかＳｕｂＨｅｉｇｈｔＣが１である場合、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔを０に設定でき、そうでない場合（ｃＩｄｘが０でなく、ＳｕｂＨｅｉｇｈｔＣが１でない場合（ＳｕｂＨｅｉｇｈｔＣが２である場合））、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔを１に設定できる。このとき、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔは、次の数学式１３を用いて決定できる。
【０３２７】
【数１３】
2022502972.tif 000021
【０３２８】
また、ｓｃａｌｌＦａｃｔＷｉｄｔｈに基づいて周辺位置のｘ座標を示すことができ、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づいて周辺位置のｙ座標を示すことができる。例えば、ｓｃａｌｌＦａｃｔＷｉｄｔｈに基づいてＮｂＢの座標を設定することができる。例えば、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づいてＮｂＡの座標を設定することができる。また、前述したように、ここでｓｃａｌｌＦａｃｔＷｉｄｔｈに基づくことは、ＳｕｂＷｉｄｔｈＣに基づくことでよく、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づくことは、ＳｕｂＨｅｉｇｈｔＣに基づくことでよい。例えば、周辺位置座標は、次の数学式１４の通りである。
【０３２９】
【数１４】
2022502972.tif 000022
【０３３０】
このとき、ｘＣｂ、ｙＣｂは、前述したように、輝度サンプル基準で示した座標でよい。また、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、各カラー成分を基準に示したものでよい。
【０３３１】
したがって、色差ブロックであり、ＳｕｂＷｉｄｔｈＣが１である場合、（ｘＮｂＢ，ｙＮｂＢ）＝（ｘＣｂ＋ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）であってよい。すなわち、この場合、輝度ブロックに対するＮｂＢ座標と色差ブロックに対するＮｂＢ座標が同一であってよい。また、色差ブロックであり、ＳｕｂＨｅｉｇｈｔＣが１である場合、（ｘＮｂＡ，ｙＮｂＡ）＝（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ−１）であってよい。すなわち、この場合、輝度ブロックに対するＮｂＡ座標と色差ブロックに対するＮｂＡ座標が同一であってよい。
【０３３２】
したがって、図４２の実施例は、４：２：０フォーマットである場合には、図３９及び図４０の実施例と同じ周辺座標を設定し、４：２：２フォーマット又は４：４：４フォーマットである場合には、図３９及び図４０の実施例と異なる周辺座標を設定することができる。
【０３３３】
図４２以外の過程は、図４０で説明したのと同一であってよい。すなわち、図４２で説明した周辺位置座標に基づいて予測モード又は利用可能の有無を判断し、ＣＩＩＰの加重値を決定することができる。本発明において周辺位置と周辺位置の座標は同じ意味で使われてよい。
【０３３４】
図４３は、本発明の一実施例に係る加重サンプル予測プロセスを示す図である。図４３の実施例は、図４２で説明した周辺位置座標を他の方式で表現したものである。したがって、前述したのと重複する内容は省略してもよい。前述したように、ビットシフトを掛け算で表現できる。図４２は、ビットシフトを用いて示し、図４３は、掛け算を用いて示したものでよい。
【０３３５】
一実施例をよれば、ｓｃａｌｌＦａｃｔＷｉｄｔｈは、ｃＩｄｘ及びＳｕｂＷｉｄｔｈＣに基づいて設定することができる。例えば、ｃＩｄｘが０であるかＳｕｂＷｉｄｔｈＣが１である場合、ｓｃａｌｌＦａｃｔＷｉｄｔｈを１に設定でき、そうでない場合（ｃＩｄｘが０でなく、ＳｕｂＷｉｄｔｈＣが１でない場合（ＳｕｂＷｉｄｔｈＣが２である場合））、ｓｃａｌｌＦａｃｔＷｉｄｔｈを２に設定できる。このとき、ｓｃａｌｌＦａｃｔＷｉｄｔｈは、次の数学式１５を用いて決定できる。
【０３３６】
【数１５】
2022502972.tif 000023
【０３３７】
また、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔは、ｃＩｄｘ及びＳｕｂＨｅｉｇｈｔＣに基づいて設定することができる。例えば、ｃＩｄｘが０であるかＳｕｂＨｅｉｇｈｔＣが１である場合、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔを１に設定でき、そうでない場合（ｃＩｄｘが０でなく、ＳｕｂＨｅｉｇｈｔＣが１でない場合（ＳｕｂＨｅｉｇｈｔＣが２である場合））、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔを２に設定できる。このとき、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔは、次の数学式１６を用いて決定できる。
【０３３８】
【数１６】
2022502972.tif 000024
【０３３９】
また、ｓｃａｌｌＦａｃｔＷｉｄｔｈに基づいて周辺位置のｘ座標を示すことができ、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づいて周辺位置のｙ座標を示すことができる。例えば、ｓｃａｌｌＦａｃｔＷｉｄｔｈに基づいてＮｂＢの座標を設定することができる。例えば、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づいてＮｂＡの座標を設定することができる。また、前述したように、ここで、ｓｃａｌｌＦａｃｔＷｉｄｔｈに基づくことは、ＳｕｂＷｉｄｔｈＣに基づくことであってよく、ｓｃａｌｌＦａｃｔＨｅｉｇｈｔに基づくことは、ＳｕｂＨｅｉｇｈｔＣに基づくことであってよい。例えば、周辺位置座標は、次の数学式１７の通りである。
【０３４０】
【数１７】
2022502972.tif 000025
【０３４１】
このとき、ｘＣｂ、ｙＣｂは、前述したように、輝度サンプル基準で示した座標でよい。また、ｃｂＷｉｄｔｈ、ｃｂＨｅｉｇｈｔは、各カラー成分を基準に示したものでよい。
【０３４２】
図４４は、本発明の一実施例に係る加重サンプル予測プロセスを示す図である。図４０、図４２、図４３などの実施例において周辺位置を参照して当該位置が利用可能か否かを判断した。このとき、カラーコンポーネントを示すインデックスであるｃＩｄｘを０（輝度コンポーネント）に設定した。また、当該位置が利用可能か否かを判断するとき、ｃＩｄｘは、当該位置ｃＩｄｘの復元（ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ）が完了したか否かを判断するために使用することができる。すなわち、当該位置が利用可能か否かを判断するとき、ｃＩｄｘはＩｓＡｖａｉｌａｂｌｅ［ｃＩｄｘ］［ｘＮｂＹ］［ｙＮｂＹ］値を判断するために使用することができる。しかし、色差ブロックに対するｗｅｉｇｈｔｅｄ  ｓａｍｐｌｅ予測プロセスを行うとき、ｃＩｄｘ０に該当するＩｓＡｖａｉｌａｂｌｅ値を参照すると、誤った判断をすることがある。例えば、周辺位置を含むブロックの輝度成分の復元が完了しなかったが、色差成分の復元が完了した場合、ｃＩｄｘが０でなければ、ＩｓＡｖａｉｌａｂｌｅ［０］［ｘＮｂＹ］［ｙＮｂＹ］はＦＡＬＳＥであり、ＩｓＡｖａｉｌａｂｌｅ［ｃＩｄｘ］［ｘＮｂＹ］［ｙＮｂＹ］はＴＲＵＥであってよい。したがって、実際に周辺位置が利用可能であるにもかかわらず、利用可能でないと判断する場合が発生し得る。図４４の実施例では、このような問題を解決するために、周辺位置を参照して当該位置が利用可能か否か判断するとき、現在コーディングブロックのｃＩｄｘを入力として用いることができる。すなわち、“ｔｈｅ  ｄｅｒｉｖａｔｉｏｎ  ｐｒｏｃｅｓｓ  ｆｏｒ  ｎｅｉｇｈｂｏｕｒｉｎｇ  ｂｌｏｃｋ  ａｖａｉｌａｂｉｌｉｔｙ”を呼び出すとき、入力であるｃＩｄｘを現在コーディングブロックのｃＩｄｘにすることができる。本実施例において、図４２及び図４３で説明した内容と重複する説明は省略される。
【０３４３】
また、前述した周辺位置の予測モードを判断するとき、ｃｈＴｙｐｅ０に該当するＣｕＰｒｅｄＭｏｄｅであるＣｕＰｒｅｄＭｏｄｅ［０］［ｘＮｂＸ］［ｙＮｂＹ］を参照したが、仮に現在ブロックに対するｃｈＴｙｐｅが一致しない場合、誤ったパラメータを参照することがある。したがって、本発明の一実施例によれば、周辺位置の予測モードを判断するとき、現在ブロックに該当するｃｈＴｙｐｅ値に該当するＣｕＰｒｅｄＭｏｄｅ［ｃｈＴｙｐｅ］［ｘＮｂＸ］［ｙＮｂＹ］を参照することができる。
【０３４４】
図４５は、本発明が適用される一実施例に係る多重仮定予測に基づくビデオ信号処理方法を例示する図である。図４５を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明がこれに制限されるものではなく、本実施例に係る多重仮定予測ベースビデオ信号処理方法は、エンコーダにも実質的に同じ方法で適用可能である。
【０３４５】
具体的に、デコーダは、現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得することができる（Ｓ４５０１）。ここで、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを表す。前述したように、本発明はこのような名称に制限されず、本明細書において前記多重仮定予測は、多重予測、複数予測、組合せ予測、インター−イントラ加重予測、組み合わせられたインター−イントラ予測、組み合わせられたインター−イントラ加重予測などと呼ぶことができる。一実施例において、デコーダは、前記Ｓ４５０１段階に先立って、現在ブロックの予測のための情報を受信し、前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かが判別できる。
【０３４６】
デコーダは、前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成することができる（Ｓ４５０２）。そして、デコーダは、前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成することができる（Ｓ４５０３）。そして、デコーダは、前記現在ブロックの残差ブロックを復号化し、前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元することができる。
【０３４７】
前述したように、一実施例において、前記残差ブロックを復号化する段階は、前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得する段階を含むことができる。すなわち、サブブロック変換は、前記現在ブロックに前記組合せ予測が適用されない場合に限って適用可能であり、それを適用するか否かに関するシンタックスシグナリングがなされてよい。ここで、前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックに対して変換を適用する変換モードを表す。
【０３４８】
前述したように、一実施例において、前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論されてよい。
【０３４９】
前述したように、一実施例において、前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックに対するイントラ予測のためのイントラ予測モードは、プレーナモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定されてよい。
【０３５０】
前述したように、一実施例において、デコーダは、前記組合せ予測のために参照される左側及び上側の周辺ブロックの位置を設定でき、設定された位置のイントラ予測モードに基づいて組合せ予測を行うことができる。一実施例において、デコーダは、設定された位置のイントラ予測モードに基づいて組合せ予測に用いられる加重値を決定することができる。また、前述したように、前記左側及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定されてよい。
【０３５１】
上述した本発明の実施例は多様な手段を介して具現される。例えば、本発明の実施例は、ハードウェア、ファームウェア（ｆｉｒｍｗａｒｅ）、ソフトフェアまたはそれらの組み合わせによって具現される。
【０３５２】
ハードウェアによる具現の場合、本発明の実施例による方法は、一つまたはそれ以上のＡＳＩＣｓ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）、ＤＳＰｓ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒｓ）、ＤＳＤＰｓ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｅｖｉｃｅｓ）、ＰＤＬｓ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ）、ＦＰＧＡｓ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって具現される。
【０３５３】
ファームフェアやソフトウェアによる具現の場合、本発明の実施例による方法は、上述した機能または動作を行うモジュール、手順または関数などの形態で具現される。ソフトウェアコードは、メモリに貯蔵されてプロセッサによって具現される。前記メモリはプロセッサの内部または外部に位置し、既に公知の多様な手段によってプロセッサとデータを交換する。
【０３５４】
一部の実施例はコンピュータによって実行されるプログラムモジュールのようなコンピュータで実行可能な命令語を含む記録媒体の形態にも具現される。コンピュータで判読可能な媒体は、コンピュータでアクセスされ得る任意の利用可能な媒体であり、揮発性及び非揮発性媒体、分離型及び非分離型媒体をいずれも含む。また、コンピュータ読取可能媒体は貯蔵媒体及び通信媒体をいずれも含む。コンピュータ貯蔵媒体は、コンピュータ判読可能な命令語、データ構造、プログラムモジュール、またはその他のデータのような情報の貯蔵のための任意の方法または技術で具現された揮発性及び非揮発性媒体、分離型及び非分離型媒体をいずれも含む。通信媒体は、典型的にコンピュータ読取可能な命令語、データ構造、またはプログラムモジュールのような変調されたデータ信号のその他のデータ、またはその他の伝送メカニズムを含み、任意の情報伝達媒体を含む。
【０３５５】
上述した本発明の説明は例示のためのものであって、本発明が属する技術分野における通常の知識を有する者は、本発明の技術的思想や必須的特徴を変更せずも他の具体的な形態に容易に変更可能であることを理解できるはずである。よって、上述した実施例は全ての面で例示的なものであり、限定的なものではないと理解すべきである。例えば、単一型として説明されている各構成要素は分散されて実施されてもよく、同じく分散されていると説明されている構成要素も結合された形態で実施されてもよい。
【０３５６】
本発明の範囲は、上述した詳細な説明よりは後述する特許請求の範囲によって示され、特許請求の範囲の意味及び範囲、そしてその均等概念から導き出される全ての変更または変形された形態が本発明の範囲に含まれると解釈すべきである。
【符号の説明】
【０３５７】
110  変換部
115  量子化部
120  逆量子化部
125  逆変換部
130  フィルタリング部
150  予測部
152  イントラ予測部
154  インター予測部
154a  モーション推定部
154b  モーション補償部
160  エントロピーコーディング部
210  エントロピーデコーディング部
220  逆量子化部
225  逆変換部
230  フィルタリング部
250  予測部
252  イントラ予測部
254  インター予測部
【図１】
2022502972.tif 000026
【図２】
2022502972.tif 000027
【図３】
2022502972.tif 000028
【図４】
2022502972.tif 000029
【図５】
2022502972.tif 000030
【図６】
2022502972.tif 000031
【図７】
2022502972.tif 000032
【図８】
2022502972.tif 000033
【図９】
2022502972.tif 000034
【図１０】
2022502972.tif 000035
【図１１】
2022502972.tif 000036
【図１２】
2022502972.tif 000037
【図１３】
2022502972.tif 000038
【図１４】
2022502972.tif 000039
【図１５】
2022502972.tif 000040
【図１６】
2022502972.tif 000041
【図１７】
2022502972.tif 000042
【図１８】
2022502972.tif 000043
【図１９】
2022502972.tif 000044
【図２０】
2022502972.tif 000045
【図２１】
2022502972.tif 000046
【図２２】
2022502972.tif 000047
【図２３】
2022502972.tif 000048
【図２４】
2022502972.tif 000049
【図２５】
2022502972.tif 000050
【図２６】
2022502972.tif 000051
【図２７】
2022502972.tif 000052
【図２８】
2022502972.tif 000053
【図２９】
2022502972.tif 000054
【図３０】
2022502972.tif 000055
【図３１】
2022502972.tif 000056
【図３２】
2022502972.tif 000057
【図３３】
2022502972.tif 000058
【図３４】
2022502972.tif 000059
【図３５】
2022502972.tif 000060
【図３６（ａ）】
2022502972.tif 000061
【図３６（ｂ）】
2022502972.tif 000062
【図３６（ｃ）】
2022502972.tif 000063
【図３６（ｄ）】
2022502972.tif 000064
【図３７】
2022502972.tif 000065
【図３８（ａ）】
2022502972.tif 000066
【図３８（ｂ）】
2022502972.tif 000067
【図３８（ｃ）】
2022502972.tif 000068
【図３９】
2022502972.tif 000069
【図４０】
2022502972.tif 000070
【図４１】
2022502972.tif 000071
【図４２】
2022502972.tif 000072
【図４３】
2022502972.tif 000073
【図４４】
2022502972.tif 000074
【図４５】
2022502972.tif 000075
【手続補正書】
【提出日】令和3年9月3日(2021.9.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビットストリームを記憶する非一時的コンピュータ可読媒体であって、前記ビットストリームは、復号化方法によって復号化され、
前記復号化方法は、
現在ブロックの予測のための情報を受信する段階；
前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別する段階；
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得する段階であって、
前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含む、ビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項２】
前記復号化方法は、
前記現在ブロックの残差ブロックを復号化する段階；及び
前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元する段階をさらに含む、請求項１に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項３】
前記残差ブロックを復号化する段階は、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得する段階をさらに含み、
前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックのみに対して変換を適用する変換モードを示す、請求項２に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項４】
前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論される、請求項３に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項５】
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックの前記イントラ予測ブロックを生成するためのイントラ予測モードはプレーナモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定される、請求項１に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項６】
前記復号化方法は、
前記組合せ予測のために参照される左側周辺ブロック及び上側周辺ブロックの位置を設定する段階をさらに含み、
左側周辺ブロック及び上側周辺ブロックの位置は、前記イントラ予測によって参照される位置と同一である、請求項１に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項７】
前記左側周辺ブロック及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定される、請求項６に記載のビットストリームを記憶する非一時的コンピュータ可読媒体。
【請求項８】
ビデオ信号復号化装置であって、
プロセッサを含み、
前記プロセッサは、
現在ブロックの予測のための情報を受信し、
前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別し、
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得し、
ここで、前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示し、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成し、
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する、ビデオ信号復号化装置。
【請求項９】
前記プロセッサは、
前記現在ブロックの残差ブロックを復号化し、
前記組合せ予測ブロック及び前記残差ブロックを用いて前記現在ブロックを復元する、請求項８に記載のビデオ信号復号化装置。
【請求項１０】
前記プロセッサは、
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されないことを示す場合、前記現在ブロックにサブブロック変換（ｓｕｂ−ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ）が適用されるか否かを示す第２シンタックス要素を取得し、
前記サブブロック変換は、水平又は垂直方向に分割された前記現在ブロックのサブブロックのいずれか一つのサブブロックに対して変換を適用する変換モードを示す、請求項９に記載のビデオ信号復号化装置。
【請求項１１】
前記第２シンタックス要素が存在しない場合、前記第２シンタックス要素の値は０と推論される、請求項１０に記載のビデオ信号復号化装置。
【請求項１２】
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックに対するイントラ予測のためのイントラ予測モードはプレーナモード（ｐｌａｎａｒ  ｍｏｄｅ）に設定される、請求項８に記載のビデオ信号復号化装置。
【請求項１３】
前記プロセッサは、前記組合せ予測のために参照される左側及び上側周辺ブロックの位置を設定し、左側周辺ブロック及び上側周辺ブロックの位置は、前記イントラ予測によって参照される位置と同一である、請求項８に記載のビデオ信号復号化装置。
【請求項１４】
前記左側周辺ブロック及び上側周辺ブロックの位置は、前記現在ブロックのカラーコンポーネントインデックス（ｃｏｌｏｒ  ｃｏｍｐｏｎｅｎｔ  ｉｎｄｅｘ）値によって決定されるスケーリングファクター変数を用いて決定される、請求項１３に記載のビデオ信号復号化装置。
【請求項１５】
ビデオ信号符号化装置であって、
プロセッサを含み、
前記プロセッサは、
復号化方法を用いてデコーダによって復号化されるビットストリームを取得し、
前記復号化方法は、
現在ブロックの予測のための情報を受信する段階；
前記予測のための情報に基づいて、前記現在ブロックにマージモードが適用されるか否かを判別する段階；
前記現在ブロックにマージモードが適用される場合、前記現在ブロックに組合せ予測（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）が適用されるか否かを示す第１シンタックス要素を取得する段階であって、
前記組合せ予測は、インター予測及びイントラ予測を結合した予測モードを示す、段階；
前記第１シンタックス要素が、前記現在ブロックに前記組合せ予測が適用されることを示す場合、前記現在ブロックのインター予測ブロック及びイントラ予測ブロックを生成する段階；及び
前記インター予測ブロック及び前記イントラ予測ブロックを加重和することによって前記現在ブロックの組合せ予測ブロック（ｃｏｍｂｉｎｅｄ  ｐｒｅｄｉｃｔｉｏｎ）を生成する段階を含む、ビデオ信号符号化装置。
【国際調査報告】
2022502972.tif 000076
2022502972.tif 000077
2022502972.tif 000078
2022502972.tif 000079