IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エックスリス、コーポレーションの特許一覧

特開2024-102359映像信号の符号化/復号化方法及びそのための装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102359
(43)【公開日】2024-07-30
(54)【発明の名称】映像信号の符号化/復号化方法及びそのための装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240723BHJP
   H04N 19/174 20140101ALI20240723BHJP
【FI】
H04N19/70
H04N19/174
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2024081206
(22)【出願日】2024-05-17
(62)【分割の表示】P 2021575982の分割
【原出願日】2020-06-18
(31)【優先権主張番号】10-2019-0073788
(32)【優先日】2019-06-20
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0019413
(32)【優先日】2020-02-18
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】521553483
【氏名又は名称】エックスリス、コーポレーション
【氏名又は名称原語表記】XRIS CORPORATION
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】リー、ベクン
(57)【要約】      (修正有)
【課題】ピクチャを複数のタイル又は複数のスライスに分割して符号化/復号化効率
を向上させる方法、装置を提供する。
【解決手段】方法は、現在ピクチャを複数のタイルに分割し、スライスタイプを示すとともに方形スライスの適用可否を示す分割情報を復号化し、分割情報が方形スライスが適用されることを示す場合、スライスの個数の情報に基づいて、ピクチャが含むスライスの個数を判定し、スライスが含むタイル列の個数から1を差し引いた値を示す幅情報に基づいて、スライスが含むタイル列の個数を決定し、スライスの高さ情報に基づいて、スライスが含むタイル行の個数を決定し、ビットストリームからスライスの幅情報を復号するかを、スライスの左上端タイルが複数のタイル列の最右側タイル列に含まれるかにより決定し、スライスの左上端タイルが最右側タイル列に含まれる場合、ビットストリームからスライスの幅情報の復号を省略し、その値を0に設定する。
【選択図】図33
【特許請求の範囲】
【請求項1】
ピクチャを複数のタイル列に分割し、
前記ピクチャを複数のタイル行に分割し、
ビットストリームから、ラスタースキャンスライスの定義方法及び方形スライスの定義方法のうち1つを示すスライスタイプの情報を復号する、
ことを備える方法であって、
前記スライスタイプの情報が前記方形スライスの定義方法を示す場合、さらに、
スライスの個数の情報に基づいて、前記ピクチャが含むスライスの個数を判定し、
スライスの幅情報に基づいて、前記スライスが含むタイル列の個数を決定し、
スライスの高さ情報に基づいて、前記スライスが含むタイル行の個数を決定する、
ことを備え、
前記幅情報は、前記スライスが含むタイル列の個数から1を差し引いた値を示し、
前記ビットストリームから前記スライスの前記幅情報を復号するかは、前記スライスの左上端タイルが前記複数のタイル列の最右側タイル列に含まれるかにより決定され、
前記スライスの前記左上端タイルが前記最右側タイル列に含まれる場合、前記ビットストリームから前記スライスの前記幅情報の復号を省略し、その値を0に設定する、
映像復号方法。
【請求項2】
前記高さ情報は、前記スライスが含むタイル行の個数から1を差し引いた値を示し、
前記ビットストリームから前記高さ情報を復号するかは、前記スライスの前記左上端タイルが前記複数のタイル列の最下段タイル行に含まれるかにより決定され、
前記スライスの前記左上端タイルが前記最下段タイル行に含まれる場合、前記ビットストリームから前記スライスの前記高さ情報の復号を省略し、その値を0に設定する、
請求項1に記載の映像復号方法。
【請求項3】
前記スライスの前記左上端タイルが前記最下段5タイル行に含まれない場合、前記ビットストリームから前記スライスの前記高さ情報を復号するかは、前記スライスの前記左上端タイルが前記複数のタイル列の最左側タイル列に含まれているかにより決定される、
請求項2に記載の映像復号方法。
【請求項4】
前記スライスの前記左上端タイルが前記最左側タイル列に含まれない場合、前記スライスの前記高さ情報の復号を省略し、その値を前記前記最左側タイル列に含まれるタイルを有する他のスライスと同じ値に設定する、
請求項3に記載の映像復号方法。
【請求項5】
前記スライスタイプの情報が前記方形スライスの定義方法を示す場合、さらに、
スライス間のタイルインデックス差分情報が前記ビットストリームに存在するかを示す差分情報存在フラグを復号し、
前記ピクチャが単一のスライスから構成される場合、前記差分情報存在フラグの復号を省略し、その値を0に設定する、
ことを備える、請求項1に記載の映像復号方法。
【請求項6】
前記差分情報存在フラグが、前記タイルインデックス差分情報が前記ビットストリームに存在することを示す場合、前記スライスの前記タイルインデックス差分情報が前記ビットストリームから復号し、
前記タイルインデックス差分情報は、前記スライスが含むタイルと次のスライスが含むタイルとの間のインデックス差分を示す、
請求項5に記載の映像復号方法。
【請求項7】
ピクチャを複数のタイル列に分割し、
前記ピクチャを複数のタイル行に分割し、
ビットストリーム内に、ラスタースキャンスライスの定義方法及び方形スライスの定義方法のうち1つを示すスライスタイプの情報を符号化し、
前記スライスタイプの情報が前記方形スライスの定義方法を示す場合、さらに、
前記ビットストリーム内に、前記ピクチャが含むスライスの個数を特定するスライスの個数情報を符号化し、
前記スライスが含むタイル列の個数に基づいて決定されるスライスの幅情報を選択的に暗号化し、
前記スライスが含むタイル行の個数に基づいて決定される前記スライスの高さ情報を選択的に暗号化する、
ことを備え、
前記幅情報は、前記スライスが含むタイル列の個数から1を差し引いた値を示し、
前記ビットストリーム内に前記スライスの前記幅情報を符号化するかは、前記スライスの左上端タイルが前記複数のタイル列の最右側タイル列に含まれるかにより決定され、
前記スライスの前記左上端タイルが前記最右側タイル列に含まれる場合、前記ビットストリーム内に前記スライスの前記幅情報を符号化するのを省略する、
映像符号化方法。
【請求項8】
前記高さ情報は、前記スライスが含むタイル行の個数から1を差し引いた値を示し、
前記ビットストリーム内に前記スライスの前記高さ情報を符号化するかは、前記スライスの前記左上端タイルが前記複数のタイル列の最下段タイル行に含まれるかにより決定され、
前記スライスの前記左上端タイルが前記最下段タイル行に含まれる場合、前記ビットストリーム内に前記スライスの前記高さ情報を符号化するのを省略する、
請求項7に記載の映像符号化方法。
【請求項9】
前記スライスの前記左上端タイルが前記最下段タイル行に含まれない場合、唖然木ビットストリーム内に前記スライスの前記高さ情報を符号化するかは、さらに、前記スライスの前記左上端タイルが前記複数のタイル列の最左側タイル列に含まれているかにより決定される、
請求項8に記載の映像符号化方法。
【請求項10】
前記スライスタイプの情報が前記方形スライスの定義方法を示す場合、さらに、
スライス間のタイルインデックス差分情報が前記ビットストリーム内に存在するかを示す差分情報存在フラグを符号化し、
前記ピクチャが単一のスライスから構成される場合、前記差分情報存在フラグの符号化を省略する、
ことを備える、請求項7に記載の映像符号化方法。
【請求項11】
前記タイルインデックス差分情報は、前記スライスが含むタイルと次のスライスが含むタイルとの間のインデックス差分を示す、
請求項10に記載の映像符号化方法。
【請求項12】
映像に関連するデータを格納する、非一時的コンピュータ可読媒体であって、データストリームを含み、前記データストリームは、
ピクチャを複数のタイル列に分割する、タイル列の個数情報と、
前記ピクチャを複数のタイル行に分割する、タイル行の個数情報と、
ラスタースキャンスライスの定義方法及び方形スライスの定義方法のうち1つを示すスライスタイプの情報と、
を備え、
前記スライスタイプの情報が前記方形スライスの定義方法を示す場合、前記データストリームはさらに、
前記ピクチャが含むスライスの個数を示す、スライスの個数情報と、
前記スライスが含むタイル列の個数を示す、スライスの幅情報と、
前記スライスが含むタイル行の個数を示す、スライスの高さ情報と、
を備え、
前記幅情報は、前記スライスが含む前記タイル列の個数から1を差し引いた値を示し、 前記データストリームに前記スライスの前記幅情報を挿入するかは、前記スライスの左上端タイルが前記複数のタイル列の最右側タイル列に含まれるかにより決定され、
前記スライスの前記左上端タイルが前記最右側タイル列に含まれる場合、前記データストリームに前記スライスの前記幅情報を挿入せず、その値を0に設定する、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は映像信号の符号化/復号化方法及びそのための装置に関する。
【背景技術】
【0002】
ディスプレイパネルが段々大型化している趨勢に伴ってより高い画質のビデオサービス
が要求されている。高画質ビデオサービスの最大問題はデータ量が大きく増加することで
あり、このような問題を解決するために、ビデオ圧縮率を向上させるための研究が活発に
進んでいる。代表的な例として、2009年にMPEG(Motion Picture
Experts Group)とITU-T(International Tele
communication Union-Telecommunication)傘下
のVCEG(Video Coding Experts Group)ではJCT-V
C(Joint Collaborative Teamon Video Codin
g)を結成した。JCT-VCはH.264/AVCに比べて約2倍の圧縮性能を有する
ビデオ圧縮標準であるHEVC(High Efficiency Video Cod
ing)を提案し、2013年1月25日に標準として承認された。高画質ビデオサービ
スの急激な発展によってHEVCの性能も徐々にその限界を示している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、ビデオ信号を符号化/復号化するにあたり、ピクチャを複数のタイル又は複
数のスライスに分割する方法及び前記方法を遂行するための装置を提供することを目的と
する。
【0004】
本発明は、ピクチャを複数のタイルに分割するにあたり、タイルインデックスに基づい
てスライスを区画する方法及び前記方法を遂行するための装置を提供することを目的とす
る。
【0005】
本発明は、ピクチャを複数のスライスに分割するにあたり、以前スライスとの差分情報
に基づいてスライスを区画する方法及び前記方法を遂行するための装置を提供することを
目的とする。
【0006】
本発明で達成しようとする技術的課題は以上で言及した技術的課題に制限されず、言及
しなかった他の技術的課題は下記の記載から本発明が属する技術分野で通常の知識を有す
る者に明らかに理解可能であろう。
【課題を解決するための手段】
【0007】
本発明によるビデオ信号復号化方法は、現在ピクチャを複数のタイルに分割する段階と
、スライスタイプを示す分割情報を復号化する段階と、前記分割情報が前記方形スライス
が適用されることを示す場合、スライスのサイズを示す情報に基づいてスイスを決定する
段階とを含む。ここで、前記分割情報は方形スライスの適用可否を示し、前記スライスの
サイズを示す情報は、スライスの幅を示す幅情報及びスライスの高さを示す高さ情報を含
み、前記スライスの幅情報を復号化するかは前記スライス内の左上端タイルの位置に基づ
いて決定することができる。
【0008】
本発明によるビデオ信号符号化方法は、現在ピクチャを複数のタイルに分割する段階と
、方形スライスの適用可否を決定する段階と、前記方形スライスを適用する場合、スライ
スのサイズ情報を符号化する段階とを含むことができる。ここで、前記スライスのサイズ
を示す情報は、スライスの幅を示す幅情報及びスライスの高さを示す高さ情報を含み、前
記スライスの幅情報を符号化するかは前記スライス内の左上端タイルの位置に基づいて決
定することができる。
【0009】
本発明によるビデオ信号復号化方法において、前記幅情報は、前記スライスが含むタイ
ル列の個数から1を差し引いた値を示し、前記スライス内の前記左上端タイルが前記現在
ピクチャ内の最右側タイル列に含まれる場合、前記幅情報の復号化を省略し、その値を0
に設定することができる。
【0010】
本発明によるビデオ信号復号化方法において、前記高さ情報は、前記スライスが含むタ
イル行の個数から1を差し引いた値を示し、前記スライス内の前記左上端タイルが前記現
在ピクチャ内の最下端タイル行に含まれる場合、前記高さ情報の復号化を省略し、その値
を0に設定することができる。
【0011】
本発明によるビデオ信号復号化方法において、前記スライス内の前記左上端タイルが前
記現在ピクチャ内の前記最下端タイル行に含まれていない場合、前記左上端タイルが前記
現在ピクチャ内の最左側タイル列に含まれているかに基づいて前記高さ情報の復号化可否
を決定することができる。
【0012】
本発明によるビデオ信号復号化方法において、スライス間のタイルインデックス差分情
報が符号化されたかを示す差分情報存在フラグを復号化する段階をさらに含むことができ
る。ここで、前記現在ピクチャが単一のスライスから構成される場合、前記差分情報存在
フラグの復号化を省略することができる。
【0013】
本発明によるビデオ信号復号化方法において、前記差分情報存在フラグの復号化を省略
する場合、その値を0に設定することができる。
【0014】
本発明によるビデオ信号復号化方法において、前記差分情報存在フラグが、前記タイル
インデックス差分情報が符号化されたことを示す場合、前記スライスの前記タイルインデ
ックス差分情報を復号化し、前記タイルインデックス差分情報は、前記スライスが含むタ
イルと次のスライスが含むタイルとの間のインデックス差分を示すことができる。
【0015】
本発明について上記で簡略に要約した特徴は後述する本発明の詳細な説明の例示的な様
相であるだけで、本発明の範囲を制限するものではない。
【発明の効果】
【0016】
本発明によれば、ピクチャを複数のタイル又はスライスに分割して符号化/復号化効率
を向上させることができる。
【0017】
本発明によれば、タイルインデックスに基づいてスライスを区画して符号化/復号化効
率を向上させることができる。
【0018】
本発明によれば、以前スライスとの差分情報に基づいてスライスを区画して符号化/復
号化効率を向上させることができる。
【0019】
本発明で得られる効果は以上で言及した効果に制限されず、言及しなかった他の効果は
下記の記載から本発明が属する技術分野で通常の知識を有する者に明らかに理解可能であ
ろう。
【図面の簡単な説明】
【0020】
図1】本発明の一実施例による映像符号化器(エンコーダー)のブロック図である。
【0021】
図2】本発明の一実施例による映像復号化器(デコーダー)のブロック図である。
【0022】
図3】本発明の一実施例による基本コーディングツリーユニットを示す図である。
【0023】
図4】コーディングブロックの多様な分割形態を示す図である。
【0024】
図5】コーディングツリーユニットの分割様相を例示する図である。
【0025】
図6】本発明の一実施例によるインター予測方法のフローチャートである。
【0026】
図7】オブジェクトの非線形的動きを例示する図である。
【0027】
図8】本発明の一実施例によるアフィンモーションに基づくインター予測方法のフローチャートである。
【0028】
図9】アフィンモーションモデル別のアフィンシードベクターを例示する図である。
【0029】
図10】4パラメーターモーションモデルの下でサブブロックのアフィンベクターを例示する図である。
【0030】
図11】マージモードの下で現在ブロックの動き情報を誘導する過程のフローチャートである。
【0031】
図12】マージ候補を誘導するために使われる候補ブロックを例示する図である。
【0032】
図13】モーション情報テーブルのアップデート様相を説明するための図である。
【0033】
図14】モーション情報テーブルのアップデート様相を示す図である。
【0034】
図15】既保存のモーション情報候補のインデックスを更新する例を示す図である。
【0035】
図16】マージ候補の一部のみに対して重複性検査を遂行する例を示す図である。
【0036】
図17】特定のマージ候補との重複性検査を省略する例を示す図である。
【0037】
図18】現在ブロックと同じマージ処理領域に含まれる候補ブロックをマージ候補として利用不可のものに設定する例を示す図である。
【0038】
図19】現在ブロックがマージ処理領域に含まれている場合、現在ブロックに対するマージ候補を誘導する例を示す図である。
【0039】
図20】一時モーション情報テーブルを示す図である。
【0040】
図21】モーション情報テーブルと一時モーション情報テーブルとを併合する例を示す図である。
【0041】
図22】本発明の一実施例によるイントラ予測方法のフローチャートである。
【0042】
図23】イントラ予測モードを示す図である。
【0043】
図24-25】参照サンプルを一列に配列する一次元配列の例示を示す図である。
【0044】
図26】方向性イントラ予測モードがx軸に平行な直線に対して形成する角度を例示する図である。
【0045】
図27】現在ブロックが非正方形の場合、予測サンプルを獲得する様相を示す図である。
【0046】
図28】ワイドアングルイントラ予測モードを示す図である。
【0047】
図29】サブブロック別に変換スキップ可否を決定する例を示す図である。
【0048】
図30】サブブロックが同じ変換タイプを使う例を示す図である。
【0049】
図31】ブロック強度を決定する過程を示すフローチャートである。
【0050】
図32】既定義のフィルター候補を示す図である。
【0051】
図33】本発明の一実施例によるピクチャ分割方法を示す図である。
【0052】
図34】ピクチャが複数のタイルに分割された例を示す。
【0053】
図35】ブリックの生成様相を説明するための図である。
【0054】
図36-37】ラスター順にスライスを定義した例を示す図である。
【0055】
図38】方形のスライスのみを許す例を示す図である。
【0056】
図39】ピクチャが2個のスライスから構成された場合の例を示す図である。
【0057】
図40】ピクチャ内のタイル列又はタイル行の個数が1の場合を例示する図である。
【発明を実施するための形態】
【0058】
以下では、図面に基づいて本発明の実施例を詳細に説明する。
【0059】
映像の符号化及び復号化はブロック単位で遂行する。一例として、コーディングブロッ
ク、変換ブロック、又は予測ブロックに対して、変換、量子化、予測、インループフィル
タリング、又は復元などの符号化/復号化処理を遂行することができる。
【0060】
以下、符号化/復号化対象のブロックを‘現在ブロック’という。一例として、現在ブ
ロックは、現在符号化/復号化処理段階によって、コーディングブロック、変換ブロック
、又は予測ブロックを示すことができる。
【0061】
また、本明細書で使う用語‘ユニット’は特定の符号化/復号化プロセスを遂行するた
めの基本単位を示し、‘ブロック’は所定のサイズのサンプルアレイを示すものに理解す
ることができる。別途の説明がない限り、‘ブロック’と‘ユニット’は同等な意味に使
うことができる。一例として、後述する実施例で、コーディングブロックとコーディング
ユニットは互いに同等な意味を有するものに理解することができる。
【0062】
図1は本発明の一実施例による映像符号化器(エンコーダー)のブロック図である。
【0063】
図1を参照すると、映像符号化装置100は、ピクチャ分割部110、予測部120、
125、変換部130、量子化部135、再整列部160、エントロピー符号化部165
、逆量子化部140、逆変換部145、フィルター部150及びメモリ155を含むこと
ができる。
【0064】
図1に示した各構成部は映像符号化装置において相異なる特徴的な機能を示すために独
立的に示したものであり、各構成部が分離されたハードウェア又は一つのソフトウェア構
成単位からなることを意味しない。すなわち、各構成部は説明の便宜上それぞれの構成部
として羅列して含むものであり、各構成部の中で少なくとも二つの構成部が合わせられて
単一の構成部になるか、一つの構成部が複数の構成部に分割されて機能を果たすことがで
き、このような各構成部の統合した実施例及び分離された実施例も、本発明の本質から外
れない限り、本発明の権利範囲に含まれる。
【0065】
また、一部の構成要素は本発明で本質的な機能を果たす必須の構成要素ではなく、ただ
性能を向上させるための選択的構成要素であることができる。本発明はただ性能向上のた
めに使われる構成要素を除いた本発明の本質を具現するのに必須の構成部のみを含んで具
現することができ、ただ性能向上のために使われる選択的構成要素を除いた必須の構成要
素のみを含む構造も本発明の権利範囲に含まれる。
【0066】
ピクチャ分割部110は入力されたピクチュアを少なくとも一つの処理単位に分割する
ことができる。ここで、処理単位は予測単位(Prediction Unit:PU)
であることもでき、変換単位(Transform Unit:TU)であることもでき
、符号化単位(Coding Unit:CU)であることもできる。ピクチャ分割部1
10では、一つのピクチュアに対して複数の符号化単位、予測単位及び変換単位の組合せ
に分割し、所定の基準(例えば、費用関数)に一つの符号化単位、予測単位及び変換単位
の組合せを選択してピクチュアを符号化することができる。
【0067】
例えば、一つのピクチュアは複数の符号化単位に分割することができる。ピクチュアか
ら符号化単位を分割するためには、クワッドツリー構造(Quad Tree Stru
cture)のような再帰的ツリー構造を使うことができ、一つの映像又は最大符号化単
位(largest Coding Unit)をルートとして他の符号化単位に分割さ
れる符号化ユニットは、分割された符号化単位の個数の分だけ子ノードを持って分割され
ることができる。一定の制限によってそれ以上分割されない符号化単位はリーフノードに
なる。すなわち、一つのコーディングユニットに対して正方形分割のみが可能であると仮
定する場合、一つの符号化単位は最大で4個の他の符号化単位に分割されることができる
【0068】
以下、本発明の実施例で、符号化単位は符号化を遂行する単位の意味として使うことも
でき、復号化を遂行する単位の意味として使うこともできる。
【0069】
予測単位は一つの符号化単位内で同じサイズの少なくとも一つの正方形又は長方形など
の形態を持って分割されたものであることもでき、一つの符号化単位内で分割された予測
単位のいずれか一つの予測単位が他の一つの予測単位と異なる形態及び/又はサイズを有
するように分割されたものであることもできる。
【0070】
符号化単位に基づいてイントラ予測を遂行する予測単位を生成するとき、最小符号化単
位ではない場合、複数の予測単位N×Nに分割せずにイントラ予測を遂行することができ
る。
【0071】
予測部120、125は、インター予測を遂行するインター予測部120と、イントラ
予測を遂行するイントラ予測部125とを含むことができる。予測単位に対してインター
予測を遂行するか又はイントラ予測を遂行するかを決定し、各予測方法による具体的な情
報(例えば、イントラ予測モード、モーションベクター、参照ピクチュアなど)を決定す
ることができる。ここで、予測が遂行される処理単位と予測方法及び具体的な内容が決定
される処理単位とは違うことができる。例えば、予測方法と予測モードなどは予測単位で
決定され、予測の遂行は変換単位で遂行されることもできる。生成された予測ブロックと
原本ブロックとの間の残差値(残差ブロック)は変換部130に入力されることができる
。また、予測のために使用した予測モード情報、モーションベクター情報などは残差値と
ともにエントロピー符号化部165で符号化されて復号化器に伝達されることができる。
特定の符号化モードを使う場合、予測部120、125で予測ブロックを生成せず、原本
ブロックをそのまま符号化して復号化部に伝送することも可能である。
【0072】
インター予測部120は、現在ピクチュアの以前ピクチュア又は以後ピクチュアの少な
くとも一つのピクチュアの情報に基づいて予測単位を予測することもでき、場合によって
は、現在ピクチュア内の符号化が完了した一部領域の情報に基づいて予測単位を予測する
こともできる。インター予測部120は、参照ピクチュア補間部、モーション予測部及び
動き補償部を含むことができる。
【0073】
参照ピクチュア補間部では、メモリ155から参照ピクチュア情報を受け、参照ピクチ
ュアから整数画素以下の画素情報を生成することができる。輝度画素の場合、1/4画素
単位で整数画素以下の画素情報を生成するために、フィルター係数を異にするDCT基盤
の8タップ補間フィルター(DCT-based Interpolation Fil
ter)を使うことができる。色差信号の場合、1/8画素単位で整数画素以下の画素情
報を生成するために、フィルター係数を異にするDCT基盤の4タップ補間フィルター(
DCT-based Interpolation Filter)を使うことができる
【0074】
モーション予測部は、参照ピクチュア補間部によって補間された参照ピクチュアに基づ
いてモーション予測を遂行することができる。モーションベクターを算出するための方法
として、FBMA(Full search-based Block Matchin
g Algorithm)、TSS(Three Step Search)、NTS(
New Three-Step Search Algorithm)などの多様な方法
を使うことができる。モーションベクターは補間された画素に基づいて1/2又は1/4
画素単位のモーションベクター値を有することができる。モーション予測部では、モーシ
ョン予測方法を異にして現在予測単位を予測することができる。モーション予測方法とし
て、スキップ(Skip)方法、マージ(Merge)方法、AMVP(Advance
d Motion Vector Prediction)方法、イントラブロックコピ
ー(Intra Block Copy)方法などの多様な方法を使うことができる。
【0075】
イントラ予測部125は、現在ピクチュア内の画素情報である現在ブロック周辺の参照
ピクセル情報に基づいて予測単位を生成することができる。現在予測単位の周辺ブロック
がインター予測を遂行したブロックであるので、参照ピクセルがインター予測を遂行した
ピクセルの場合、インター予測を遂行したブロックに含まれる参照ピクセルを周辺のイン
トラ予測を遂行したブロックの参照ピクセル情報に代替して使うことができる。すなわち
、参照ピクセルが可用でない場合、可用でない参照ピクセル情報を可用参照ピクセルの少
なくとも一つの参照ピクセルに代替して使うことができる。
【0076】
イントラ予測で、予測モードは、参照ピクセル情報を予測方向によって使用する方向性
予測モードと、予測を遂行するときに方向性情報を使わない非方向性モードとを有するこ
とができる。輝度情報を予測するためのモードと色差情報を予測するためのモードとが互
いに異なることができ、色差情報を予測するために、輝度情報を予測するために使用され
たイントラ予測モード情報又は予測された輝度信号情報を活用することができる。
【0077】
イントラ予測を遂行するとき、予測単位のサイズと変換単位のサイズと同一である場合
、予測単位の左側に存在するピクセル、左上端に存在するピクセル、上端に存在するピク
セルに基づいて予測単位に対するイントラ予測を遂行することができる。しかし、イント
ラ予測を遂行するときに予測単位のサイズと変換単位のサイズとが異なる場合、変換単位
に基づく参照ピクセルを用いてイントラ予測を遂行することができる。また、最小符号化
単位のみに対してN×N分割を使うイントラ予測を使うことができる。
【0078】
イントラ予測方法は、予測モードによって参照画素にAIS(Adaptive In
tra Smoothing)フィルターを適用した後、予測ブロックを生成することが
できる。参照画素に適用されるAISフィルターの種類は互いに異なることができる。イ
ントラ予測方法を遂行するために、現在予測単位のイントラ予測モードは現在予測単位の
周辺に存在する予測単位のイントラ予測モードから予測することができる。周辺予測単位
から予測されたモード情報を用いて現在予測単位の予測モードを予測する場合、現在予測
単位と周辺予測単位とのイントラ予測モードが同一であれば所定のフラグ情報を用いて現
在予測単位と周辺予測単位との予測モードが同一であるという情報を伝送することができ
、仮に現在予測単位と周辺予測単位との予測モードが互いに異なればエントロピー符号化
を遂行して現在ブロックの予測モード情報を符号化することができる。
【0079】
また、予測部120、125で生成された予測単位に基づいて予測を遂行した予測単位
と予測単位の原本ブロックとの差値である残差値(Residual)情報を含む残差ブ
ロックが生成されることができる。生成された残差ブロックは変換部130に入力される
ことができる。
【0080】
変換部130では、原本ブロックと予測部120、125で生成された予測単位の残差
値(residual)情報を含む残差ブロックとをDCT(Discrete Cos
ine Transform)又はDST(Discrete Sine Transf
orm)のような変換方法によって変換することができる。ここで、DCT変換コアはD
CT2又はDCT8の少なくとも一つを含み、DST変換コアはDST7を含む。残差ブ
ロックを変換するためにDCTを適用するか又はDSTを適用するかは残差ブロックを生
成するために使用された予測単位のイントラ予測モード情報に基づいて決定することがで
きる。残差ブロックに対する変換をスキップすることもできる。残差ブロックに対する変
換をスキップするかを示すフラグを符号化することができる。変換スキップは、サイズが
閾値以下の残差ブロック、ルマ成分又は4:4:4フォーマットの下でのクロマ成分に対
して許すことができる。
【0081】
量子化部135は変換部130で周波数領域に変換された値を量子化することができる
。ブロックによって又は映像の重要度によって量子化係数は変わることができる。量子化
部135で算出された値は逆量子化部140と再整列部160に提供されることができる
【0082】
再整列部160は量子化した残差値に対して係数値の再整列を遂行することができる。
【0083】
再整列部160は、係数スキャニング(Coefficient Scanning)
方法によって2次元のブロック形態係数を1次元のベクター形態に変更することができる
。例えば、再整列部160ではジグザグスキャン(Zig-Zag Scan)方法によ
ってDC係数から高周波数領域の係数までスキャンして1次元ベクター形態に変更させる
ことができる。変換単位のサイズ及びイントラ予測モードによってジグザグスキャンの代
わりに、2次元のブロック形態係数を列方向にスキャンする垂直スキャン、2次元のブロ
ック形態係数を行方向にスキャンする水平スキャンを使うこともできる。すなわち、変換
単位のサイズ及びイントラ予測モードによって、ジグザグスキャン、垂直方向スキャン及
び水平方向スキャンの中でどのスキャン方法を使うかを決定することができる。
【0084】
エントロピー符号化部165は、再整列部160によって算出された値に基づいてエン
トロピー符号化を遂行することができる。エントロピー符号化は、例えば指数ゴロム(E
xponential Golomb)、CAVLC(Context-Adaptiv
e Variable Length Coding)、CABAC(Context-
Adaptive Binary Arithmetic Coding)のような多様
な符号化方法を使うことができる。
【0085】
エントロピー符号化部165は、再整列部160及び予測部120、125からの符号
化単位の残差値係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、予測
単位情報及び伝送単位情報、モーションベクター情報、参照フレーム情報、ブロックの補
間情報、フィルタリング情報などの多様な情報を符号化することができる。
【0086】
エントロピー符号化部165は、再整列部160から入力された符号化単位の係数値を
エントロピー符号化することができる。
【0087】
逆量子化部140及び逆変換部145は、量子化部135で量子化した値を逆量子化し
、変換部130で変換された値を逆変換する。逆量子化部140及び逆変換部145で生
成された残差値(Residual)は、予測部120、125に含まれる動き推定部、
動き補償部及びイントラ予測部によって予測された予測単位と合わせられて復元ブロック
(Reconstructed Block)を生成することができる。
【0088】
フィルター部150は、デブロッキングフィルター、オフセット補正部、及びALF(
Adaptive Loop Filter)の少なくとも一つを含むことができる。
【0089】
デブロッキングフィルターは、復元されたピクチュアにおいてブロック間の境界によっ
て生じたブロック歪みを除去することができる。デブロッキングを遂行するかを判断する
ために、ブロックに含まれるいくつかの列又は行に含まれるピクセルに基づいて現在ブロ
ックにデブロッキングフィルターを適用するかを判断することができる。ブロックにデブ
ロッキングフィルターを適用する場合、必要なデブロッキングフィルタリング強度によっ
て強フィルター(Strong Filter)又は弱フィルター(Weak Filt
er)を適用することができる。また、デブロッキングフィルターの適用において、垂直
フィルタリング及び水平フィルタリングの遂行の際、水平方向フィルタリング及び垂直方
向フィルタリングを並行して処理することができる。
【0090】
オフセット補正部は、デブロッキングを遂行した映像に対してピクセル単位で原本映像
とのオフセットを補正することができる。特定のピクチュアに対するオフセット補正を遂
行するために、映像に含まれるピクセルを一定数の領域に区分した後、オフセットを遂行
すべき領域を決定し、当該領域にオフセットを適用する方法又は各ピクセルのエッジ情報
を考慮してオフセットを適用する方法を使うことができる。
【0091】
ALF(Adaptive Loop Filtering)はフィルタリングした復
元映像と元の映像とを比較した値に基づいて遂行することができる。映像に含まれるピク
セルを所定のグループに分けた後、当該グループに適用される一つのフィルターを決定し
てグループごとに差別的にフィルタリングを遂行することができる。ALFを適用するか
についての情報は、輝度信号は符号化単位(Coding Unit、CU)別に伝送さ
れることができ、それぞれのブロックによって適用されるALFフィルターの形状及びフ
ィルター係数は変わることができる。また、適用対象ブロックの特性に構わず、同じ形態
(固定形態)のALFフィルターを適用することもできる。
【0092】
メモリ155は、フィルター部150を介して算出された復元ブロック又はピクチュア
を保存することができ、保存された復元ブロック又はピクチュアはインター予測の際に予
測部120、125に提供されることができる。
【0093】
図2は本発明の一実施例による映像復号化器(デコーダー)のブロック図である。
【0094】
図2を参照すると、映像復号化器200は、エントロピー復号化部210、再整列部2
15、逆量子化部220、逆変換部225、予測部230、235、フィルター部240
、及びメモリ245を含むことができる。
【0095】
映像符号化器から映像ビットストリームが入力された場合、入力されたビットストリー
ムは映像符号化器と反対の手順に復号化されることができる。
【0096】
エントロピー復号化部210は、映像符号化器のエントロピー符号化部でエントロピー
符号化を遂行したものと反対の手順にエントロピー復号化を遂行することができる。例え
ば、映像符号化器で遂行した方法に対応して、指数ゴロム(Exponential G
olomb)、CAVLC(Context-Adaptive Variable L
ength Coding)、CABAC(Context-Adaptive Bin
ary Arithmetic Coding)のような多様な方法を適用することがで
きる。
【0097】
エントロピー復号化部210は、符号化器で遂行されたイントラ予測及びインター予測
についての情報を復号化することができる。
【0098】
再整列部215は、エントロピー復号化部210でエントロピー復号化されたビットス
トリームを符号化部で再整列した方法に基づいて再整列を遂行することができる。1次元
ベクター形態に表現された係数を再び2次元のブロック形態の係数に復元して再整列する
ことができる。再整列部215は、符号化部で遂行された係数スキャニングについての情
報を受け、当該符号化部で遂行されたスキャニング順に基づいて逆にスキャニングする方
法で再整列を遂行することができる。
【0099】
逆量子化部220は、符号化器から提供された量子化パラメーターと再整列されたブロ
ックの係数値に基づいて逆量子化を遂行することができる。
【0100】
逆変換部225は、映像符号化器で遂行した量子化結果に対して変換部で遂行した変換
、すなわちDCT又はDSTに対して逆変換、すなわち逆DCT又は逆DSTを遂行する
ことができる。ここで、DCT変換コアはDCT2又はDCT8の少なくとも一つを含み
、DST変換コアはDST7を含むことができる。もしくは、映像符号化器で変換がスキ
ップされた場合、逆変換部225でも逆変換を遂行しないことができる。逆変換は映像符
号化器で決定された伝送単位に基づいて遂行されることができる。映像復号化器の逆変換
部225は、予測方法、現在ブロックのサイズ及び予測方向などの複数の情報によって変
換技法(例えば、DCT又はDST)を選択的に遂行することができる。
【0101】
予測部230、235は、エントロピー復号化部210から提供された予測ブロック生
成関連情報、及びメモリ245から提供された、以前に復号化されたブロック又はピクチ
ュア情報に基づいて予測ブロックを生成することができる。
【0102】
前述したように、映像符号化器での動作と同様にイントラ予測を遂行するとき、予測単
位のサイズと変換単位のサイズとが同一である場合、予測単位の左側に存在するピクセル
、左上端に存在するピクセル、上端に存在するピクセルに基づいて予測単位に対するイン
トラ予測を遂行するが、イントラ予測を遂行するとき、予測単位のサイズと変換単位のサ
イズとが異なる場合、変換単位に基づく参照ピクセルを用いてイントラ予測を遂行するこ
とができる。また、最小符号化単位のみに対してN×N分割を使うイントラ予測を使うこ
ともできる。
【0103】
予測部230、235は、予測単位判別部、インター予測部及びイントラ予測部を含む
ことができる。予測単位判別部は、エントロピー復号化部210から入力される予測単位
情報、イントラ予測方法の予測モード情報、インター予測方法のモーション予測関連情報
などの多様な情報の入力を受け、現在符号化単位で予測単位を区分し、予測単位がインタ
ー予測を遂行するかそれともイントラ予測を遂行するかを判別することができる。インタ
ー予測部230は、映像符号化器から提供された現在予測単位のインター予測に必要な情
報を用いて現在予測単位が含まれた現在ピクチュアの以前ピクチュア又は以後ピクチュア
の少なくとも一つのピクチュアに含まれる情報に基づいて現在予測単位に対するインター
予測を遂行することができる。もしくは、現在予測単位が含まれた現在ピクチュア内で既
に復元された一部領域の情報に基づいてインター予測を遂行することもできる。
【0104】
インター予測を遂行するために符号化単位を基準に当該符号化単位に含まれる予測単位
のモーション予測方法がスキップモード(Skip Mode)、マージモード(Mer
ge Mode)、モーションベクター予測モード(AMVP Mode)、イントラブ
ロックコピーモードの中でどの方法であるかを判断することができる。
【0105】
イントラ予測部235は、現在ピクチュア内の画素情報に基づいて予測ブロックを生成
することができる。予測単位がイントラ予測を遂行した予測単位の場合、映像符号化器か
ら提供された予測単位のイントラ予測モード情報に基づいてイントラ予測を遂行すること
ができる。イントラ予測部235は、AIS(Adaptive Intra Smoo
thing)フィルター、参照画素補間部、及びDCフィルターを含むことができる。A
ISフィルターは現在ブロックの参照画素にフィルタリングを遂行する部分であり、現在
予測単位の予測モードによってフィルターの適用可否を決定して適用することができる。
映像符号化器から提供された予測単位の予測モード及びAISフィルター情報を用いて現
在ブロックの参照画素にAISフィルタリングを遂行することができる。現在ブロックの
予測モードがAISフィルタリングを遂行しないモードの場合、AISフィルターを適用
しないことができる。
【0106】
参照画素補間部は、予測単位の予測モードが参照画素を補間した画素値に基づいてイン
トラ予測を遂行する予測単位の場合、参照画素を補間して整数値以下の画素単位の参照画
素を生成することができる。現在予測単位の予測モードが参照画素を補間せずに予測ブロ
ックを生成する予測モードの場合、参照画素は補間されないことができる。DCフィルタ
ーは、現在ブロックの予測モードがDCモードの場合、フィルタリングによって予測ブロ
ックを生成することができる。
【0107】
復元されたブロック又はピクチュアはフィルター部240に提供されることができる。
フィルター部240は、デブロッキングフィルター、オフセット補正部、及びALFを含
むことができる。
【0108】
映像符号化器から当該ブロック又はピクチュアにデブロッキングフィルターを適用した
かについての情報、及びデブロッキングフィルターを適用した場合、強フィルターを適用
したか又は弱フィルターを適用したかについての情報を受けることができる。映像復号化
器のデブロッキングフィルターは、映像符号化器から提供されたデブロッキングフィルタ
ー関連情報を受け、映像復号化器で当該ブロックに対するデブロッキングフィルタリング
を遂行することができる。
【0109】
オフセット補正部は、符号化の際に映像に適用されたオフセット補正の種類及びオフセ
ット値情報などに基づいて復元された映像にオフセット補正を遂行することができる。
【0110】
ALFは、符号化器から提供されたALF適用可否情報、ALF係数情報などに基づい
て符号化単位に適用されることができる。このようなALF情報は特定のパラメーターセ
ットに含まれて提供されることができる。
【0111】
メモリ245は、復元されたピクチュア又はブロックを保存して参照ピクチュア又は参
照ブロックとして使われるようにすることができ、また復元されたピクチュアを出力部に
提供することができる。
【0112】
図3は本発明の一実施例による基本コーディングツリーユニットを示す図である。
【0113】
最大サイズのコーディングブロックをコーディングツリーブロックに定義することがで
きる。一つのピクチャは複数のコーディングツリーユニット(Coding Tree
Unit、CTU)に分割される。コーディングツリーユニットは最大サイズのコーディ
ングユニットであり、LCU(Largest Coding Unit)と言うことも
できる。図3は一つのピクチャが複数のコーディングツリーユニットに分割された例を示
すものである。
【0114】
コーディングツリーユニットのサイズはピクチャレベル又はシーケンスレベルで定義す
ることができる。このために、コーディングツリーユニットのサイズを示す情報をピクチ
ャパラメーターセット又はシーケンスパラメーターセットを介してシグナリングすること
ができる。
【0115】
一例として、シーケンス内の全体ピクチャに対するコーディングツリーユニットのサイ
ズを128×128に設定することができる。もしくは、ピクチャレベルで128×12
8又は256×256のいずれか一つをコーディングツリーユニットのサイに決定するこ
とができる。一例として、第1ピクチャではコーディングツリーユニットのサイズを12
8×128に設定し、第2ピクチャではコーディングツリーユニットのサイズを256×
256に設定することができる。
【0116】
コーディングツリーユニットを分割してコーディングブロックを生成することができる
。コーディングブロックは符号化/復号化処理のための基本単位を示す。一例として、コ
ーディングブロック別に予測又は変換を遂行するか、コーディングブロック別に予測符号
化モードを決定することができる。ここで、予測符号化モードは予測映像を生成する方法
を示す。一例として、予測符号化モードは、画面内予測(Intra Predicti
on、イントラ予測)、画面間予測(Inter Prediction、インター予測
)、現在ピクチャ参照(Current Picture Referencing、C
PR、又はイントラブロックコピー(Intra Block Copy、IBC))又
は複合予測(Combined Prediction)を含むことができる。コーディ
ングブロックに対して、イントラ予測、インター予測、現在ピクチャ参照又は複合予測の
少なくとも一つの予測符号化モードを用いてコーディングブロックに対する予測ブロック
を生成することができる。
【0117】
現在ブロックの予測符号化モードを示す情報をビットストリームによってシグナリング
することができる。一例として、前記情報は予測符号化モードがイントラモードであるか
又はインタモードであるかを示す1ビットフラグであることができる。現在ブロックの予
測符号化モードがインタモードに決定された場合に限り、現在ピクチャ参照又は複合予測
を用いることができる。
【0118】
現在ピクチャ参照は、現在ピクチャを参照ピクチャに設定し、現在ピクチャ内の既に符
号化/復号化が完了した領域から現在ブロックの予測ブロックを獲得するためのものであ
る。ここで、現在ピクチャは現在ブロックを含むピクチャを意味する。現在ブロックに現
在ピクチャ参照が適用されるかを示す情報をビットストリームによってシグナリングする
ことができる。一例として、前記情報は1ビットのフラグであることができる。前記フラ
グが真の場合、現在ブロックの予測符号化モードは現在ピクチャ参照に決定し、前記フラ
グが偽の場合、現在ブロックの予測モードはインター予測に決定することができる。
【0119】
もしくは、参照ピクチャインデックスに基づいて現在ブロックの予測符号化モードを決
定することができる。一例として、参照ピクチャインデックスが現在ピクチャを示す場合
、現在ブロックの予測符号化モードを現在ピクチャ参照に決定することができる。参照ピ
クチャインデックスが現在ピクチャではない他のピクチャを示す場合、現在ブロックの予
測符号化モードはインター予測に決定することができる。すなわち、現在ピクチャ参照は
現在ピクチャ内の符号化/復号化が完了した領域の情報を用いる予測方法であり、インタ
ー予測は符号化/復号化が完了した他のピクチャの情報を用いる予測方法である。
【0120】
複合予測は、イントラ予測、インター予測及び現在ピクチャ参照の中で二つ以上を組み
合わせた符号化モードを示す。一例として、複合予測を適用する場合、イントラ予測、イ
ンター予測又は現在ピクチャ参照のいずれか一つに基づいて第1予測ブロックを生成し、
他の一つに基づいて第2予測ブロックを生成することができる。第1予測ブロック及び第
2予測ブロックが生成されれば、第1予測ブロック及び第2予測ブロックの平均演算又は
加重和演算によって最終予測ブロックを生成することができる。複合予測が適用されるか
を示す情報をビットストリームによってシグナリングすることができる。前記情報は1ビ
ットのフラグであることができる。
【0121】
図4はコーディングブロックの多様な分割形態を示す図である。
【0122】
コーディングブロックは、クワッドツリー分割、バイナリーツリー分割又はトリプルツ
リー分割に基づいて複数のコーディングブロックに分割されることができる。分割された
コーディングブロックもクワッドツリー分割、バイトリツリー分割又はトリプルツリー分
割によってさらに複数のコーディングブロックに分割されることができる。
【0123】
クワッドツリー分割は現在ブロックを4個のブロックに分割する分割技法を示す。クワ
ッドツリー分割の結果、現在ブロックは4個の正方形パーティションに分割されることが
できる(図4の(a)の‘SPLIT_QT’参照)。
【0124】
バイナリーツリー分割は現在ブロックを2個のブロックに分割する分割技法を示す。垂
直方向に沿って(すなわち、現在ブロックを横切る垂直線を用いる)現在ブロックを二つ
のブロックに分割することを垂直方向バイナリーツリー分割と言うことができ、水平方向
に沿って(すなわち、現在ブロックを横切る水平線を用いる)現在ブロックを二つのブロ
ックに分割することを水平方向バイナリーツリー分割と言える。バイナリーツリー分割の
結果、現在ブロックは2個の非正方形パーティションに分割されることができる。図4
(b)の‘SPLIT_BT_VER’は垂直方向バイナリーツリー分割結果を示し、図
4の(c)の‘SPLIT_BT_HOR’は水平方向バイナリーツリー分割結果を示す
【0125】
トリプルツリー分割は現在ブロックを3個のブロックに分割する分割技法を示す。垂直
方向に沿って(すなわち、現在ブロックを横切る二つの垂直線を用いる)現在ブロックを
三つのブロックに分割することを垂直方向トリプルツリー分割と言うことができ、水平方
向に沿って(すなわち、現在ブロックを横切る二つの水平線を用いる)現在ブロックを三
つのブロックに分割することを水平方向トリプルツリー分割と言える。トリプルツリー分
割の結果、現在ブロックは3個の非正方形パーティションに分割されることができる。こ
こで、現在ブロックの中央に位置するパーティションの幅/高さは他のパーティションの
幅/高さの2倍であることができる。図4の(d)の‘SPLIT_TT_VER’は垂
直方向トリプルツリー分割結果を示し、図4の(e)の‘SPLIT_TT_HOR’は
水平方向トリプルツリー分割結果を示す。
【0126】
コーディングツリーユニットの分割回数を分割深さ(Partitioning De
pth)に定義することができる。シーケンス又はピクチャレベルでコーディングツリー
ユニットの最大分割深さを決定することができる。これにより、シーケンス又はピクチャ
別にコーディングツリーユニットの最大分割深さが異なることができる。
【0127】
もしくは、分割技法のそれぞれに対する最大分割深さを個別的に決定することができる
。一例として、クワッドツリー分割が許される最大分割深さはバイナリーツリー分割及び
/又はトリプルツリー分割が許される最大分割深さと異なることができる。
【0128】
符号化器は、現在ブロックの分割形態又は分割深さの少なくとも一つを示す情報をビッ
トストリームによってシグナリングすることができる。復号化器は、ビットストリームか
らパーシングされる前記情報に基づいてコーディングツリーユニットの分割形態及び分割
深さを決定することができる。
【0129】
図5はコーディングツリーユニットの分割様相を例示する図である。
【0130】
クワッドツリー分割、バイナリーツリー分割及び/又はトリプルツリー分割などの分割
技法を用いてコーディングブロックを分割することをマルチツリー分割(Multi T
ree Partitioning)と言える。
【0131】
コーディングブロックにマルチツリー分割を適用することによって生成されるコーディ
ングブロックを下位コーディングブロックと言える。コーディングブロックの分割深さが
kの場合、下位コーディングブロックの分割深さをk+1に設定する。
【0132】
反対に、分割深さがk+1のコーディングブロックに対して、分割深さがkであるコー
ディングブロックを上位コーディングブロックと言える。
【0133】
現在コーディングブロックの分割タイプは、上位コーディングブロックの分割形態又は
隣接コーディングブロックの分割タイプの少なくとも一つに基づいて決定することができ
る。ここで、隣接コーディングブロックは現在コーディングブロックに隣接したものであ
り、現在コーディングブロックの上端隣接ブロック、左側隣接ブロック、又は左上端コー
ナーに隣り合う隣接ブロックの少なくとも一つを含むことができる。ここで、分割タイプ
は、クワッドツリー分割可否、バイナリーツリー分割可否、バイナリーツリー分割方向、
トリプルツリー分割可否、又はトリプルツリー分割方向の少なくとも一つを含むことがで
きる。
【0134】
コーディングブロックの分割形態を決定するために、コーディングブロックが分割され
るかを示す情報をビットストリームによってシグナリングすることができる。前記情報は
1ビットのフラグ‘split_cu_flag’であり、前記フラグが真のものは、頭
部ツリー分割技法によってコーディングブロックが分割されるものを示す。
【0135】
split_cu_flagが真の場合、コーディングブロックがクワッドツリー分割
されるかを示す情報をビットストリームによってシグナリングすることができる。前記情
報は1ビットのフラグsplit_qt_flagであり、前記フラグが真の場合、コー
ディングブロックは4個のブロックに分割されることができる。
【0136】
一例として、図5に示した例では、コーディングツリーユニットがクワッドツリー分割
されることにより、分割深さが1である4個のコーディングブロックが生成されるものが
示された。また、クワッドツリー分割の結果として生成された4個のコーディングブロッ
クの中で第1コーディングブロック及び第4コーディングブロックにさらにクワッドツリ
ー分割が適用されたものが示された。その結果、分割深さが2である4個のコーディング
ブロックが生成されることができる。
【0137】
また、分割深さが2であるコーディングブロックにさらにクワッドツリー分割を適用す
ることにより、分割深さが3であるコーディングブロックを生成することができる。
【0138】
コーディングブロックにクワッドツリー分割が適用されない場合、コーディングブロッ
クのサイズ、コーディングブロックがピクチャ境界に位置するか、最大分割深さ又は隣接
ブロックの分割形態の少なくとも一つを考慮して、前記コーディングブロックにバイナリ
ーツリー分割又はトリプルツリー分割を遂行するかを決定することができる。前記コーデ
ィングブロックにバイナリーツリー分割又はトリプルツリー分割を遂行することに決定さ
れた場合、分割方向を示す情報をビットストリームによってシグナリングすることができ
る。前記情報は1ビットのフラグmtt_split_cu_vertical_fla
gであることができる。前記フラグに基づき、分割方向が垂直方向であるか又は水平方向
であるかを決定することができる。追加として、バイナリーツリー分割又はトリプルツリ
ー分割の中でどれが前記コーディングブロックに適用されるかを示す情報をビットストリ
ームによってシグナリングすることができる。前記情報は1ビットのフラグmtt_sp
lit_cu_binary_flagであることができる。前記フラグに基づき、前記
コーディングブロックにバイナリーツリー分割が適用されるか又はトリプルツリー分割が
適用されるかを決定することができる。
【0139】
一例として、図5に示した例では、分割深さが1であるコーディングブロックに垂直方
向バイナリーツリー分割が適用され、前記分割の結果として生成されたコーディングブロ
ックの中で左側コーディングブロックには垂直方向トリプルツリー分割が適用され、右側
コーディングブロックには垂直方向バイナリーツリー分割が適用されたものが示されてい
る。
【0140】
インター予測は以前ピクチャの情報を用いて現在ブロックを予測する予測符号化モード
である。一例として、以前ピクチャ内の現在ブロックと同じ位置のブロック(以下、コロ
ケーテッドブロック、Collocated block)を現在ブロックの予測ブロッ
クに設定することができる。以下、現在ブロックと同じ位置のブロックに基づいて生成さ
れた予測ブロックをコロケーテッド予測ブロック(Collocated Predic
tion Block)と言う。
【0141】
一方、以前ピクチャに存在したオブジェクトが現在ピクチャでは他の位置に移動したな
らば、オブジェクトの動きを用いて効果的に現在ブロックを予測することができる。例え
ば、以前ピクチャと現在ピクチャを比較することによりオブジェクトの移動方向及びサイ
ズが分かれば、オブジェクトの動き情報を考慮して現在ブロックの予測ブロック(又は、
予測映像)を生成することができる。以下、動き情報を用いて生成された予測ブロックを
動き予測ブロックと言える。
【0142】
現在ブロックから予測ブロックを差し引いて残差ブロック(residual blo
ck)を生成することができる。ここで、オブジェクトの動きが存在する場合であれば、
コロケーテッド予測ブロックの代わりに動き予測ブロックを用いることにより、残差ブロ
ックのエネルギーを減らし、これにより残差ブロックの圧縮性能を向上させることができ
る。
【0143】
このように、動き情報を用いて予測ブロックを生成することを動き補償予測と言える。
大部分のインター予測では動き補償予測に基づいて予測ブロックを生成することができる
【0144】
動き情報は、モーションベクター、参照ピクチャインデックス、予測方向又は両方向加
重値インデックスの少なくとも一つを含むことができる。モーションベクターはオブジェ
クトの移動方向及びサイズを示す。参照ピクチャインデックスは参照ピクチャリストに含
まれる参照ピクチャの中で現在ブロックの参照ピクチャを特定する。予測方向は単方向L
0予測、単方向L1予測又は両方向予測(L0予測及びL1予測)のいずれか一つを示す
。現在ブロックの予測方向によって、L0方向の動いた情報又はL1方向の動き情報の少
なくとも一つを用いることができる。両方向加重値インデックスはL0予測ブロックに適
用される加重値及びL1予測ブロックに適用される加重値を特定する。
【0145】
図6は本発明の一実施例によるインター予測方法のフローチャートである。
【0146】
図6を参照すると、インター予測方法は、現在ブロックのインター予測モードを決定す
る段階(S601)、決定されたインター予測モードによって現在ブロックの動き情報を
獲得する段階(S602)、及び獲得された動き情報に基づいて現在ブロックに対する動
き補償予測を遂行する段階(S603)を含む。
【0147】
ここで、インター予測モードは現在ブロックの動き情報を決定するための多様な技法を
示すものであり、並進(Translation)動き情報を用いるインター予測モード
と、アフィン(Affine)動き情報を用いるインター予測モードとを含むことができ
る。一例として、並進動き情報を用いるインター予測モードは、マージモード及びモーシ
ョンベクター予測モードを含み、アフィン動き情報を用いるインター予測モードは、アフ
ィンマージモード及びアフィンモーションベクター予測モードを含むことができる。現在
ブロックの動き情報は、インター予測モードによって、現在ブロックに隣り合う隣接ブロ
ック又はビットストリームからパーシングされる情報に基づいて決定することができる。
【0148】
以下、アフィン動き情報を用いるインター予測方法について詳細に説明する。
【0149】
図7はオブジェクトの非線形的動きを例示する図である。
【0150】
映像内の物体の動きが線形でない動きが発生することができる。一例として、図7に示
した例のように、カメラズームイン(Zoom-in)、ズームアウト(Zoom-ou
t)、回転(Rotation)又はアフィン変換などのオブジェクトの非線形的動きが
発生することができる。オブジェクトの非線形的動きが発生した場合、並進動きベクター
ではオブジェクトの動きを効果的に表現することができない。よって、オブジェクトの非
線形的動きが発生する部分では並進動きの代わりにアフィン動きを用いて符号化効率を向
上させることができる。
【0151】
図8は本発明の一実施例によるアフィンモーションに基づくインター予測方法のフロー
チャートである。
【0152】
現在ブロックにアフィンモーションに基づくインター予測技法が適用されるかは、ビッ
トストリームからパーシングされる情報に基づいて決定することができる。具体的には、
現在ブロックにアフィンマージモードが適用されるかを示すフラグ又は現在ブロックにア
フィンモーションベクター予測モードが適用されるかを示すフラグの少なくとも一つに基
づいて、現在ブロックにアフィンモーションに基づくインター予測技法が適用されるかを
決定することができる。
【0153】
現在ブロックにアフィンモーションに基づくインター予測技法を適用する場合、現在ブ
ロックのアフィンモーションモデルを決定することができる(S801)。アフィンモー
ションモデルは6パラメーターアフィンモーションモデル又は4パラメーターアフィンモ
ーションモデルの少なくとも一つに決定することができる。6パラメーターアフィンモー
ションモデルは6個のパラメーターを用いてアフィンモーションを表現したものであり、
4パラメーターアフィンモーションモデルは4個のパラメーターを用いてアフィンモーシ
ョンを表現したものである。
【0154】
式1は6パラメーターを用いてアフィンモーションを表現したものである。アフィンモ
ーションはアフィンシードベクターによって決定される所定の領域に対する並進動きを示
す。
【0155】
[数1]
=ax-by+e
=cx+dy+f
【0156】
6個のパラメーターを用いてアフィンモーションを表現する場合、複雑な動きを表現す
ることができるが、各パラメーターを符号化するのに必要なビット数が多くなって符号化
効率が低下することがある。よって、4個のパラメーターを用いてアフィンモーションを
表現することもできる。式2は4パラメーターを用いてアフィンモーションを表現したも
のである。
【0157】
[数2]
=ax-by+e
=bx+ay+f
【0158】
現在ブロックのアフィンモーションモデルを決定するための情報を符号化し、ビットス
トリームによってシグナリングすることができる。一例として、前記情報は1ビットのフ
ラグ‘affine_type_flag’であることができる。前記フラグの値が0の
ものは4パラメーターアフィンモーションモデルが適用されることを示し、前記フラグの
値が1のものは、6パラメーターアフィンモーションモデルが適用されるものを示すこと
ができる。前記フラグは、スライス、タイル又はブロック(例えば、コーディングブロッ
ク又はコーディングツリーユニット)単位で符号化されることができる。スライスレベル
でフラグをシグナリングする場合、前記スライスレベルで決定されたアフィンモーション
モデルを前記スライスに属するブロックの全部に適用することができる。
【0159】
もしくは、現在ブロックのアフィンインター予測モードに基づいて現在ブロックのアフ
ィンモーションモデルを決定することができる。一例として、アフィンマージモードを適
用する場合、現在ブロックのアフィンモーションモデルを4パラメーターモーションモデ
ルに決定することができる。一方、アフィンモーションベクター予測モードを適用する場
合、現在ブロックのアフィンモーションモデルを決定するための情報を符号化し、ビット
ストリームによってシグナリングすることができる。一例として、現在ブロックにアフィ
ンモーションベクター予測モードを適用する場合、1ビットのフラグ‘affine_t
ype_flag’に基づいて現在ブロックのアフィンモーションモデルを決定すること
ができる。
【0160】
ついで、現在ブロックのアフィンシードベクターを誘導することができる(S802)
。4パラメーターアフィンモーションモデルが選択された場合、現在ブロックの二つのコ
ントロールポイントでのモーションベクターを誘導することができる。一方、6パラメー
ターアフィンモーションモデルが選択された場合、現在ブロックの三つのコントロールポ
イントでのモーションベクターを誘導することができる。コントロールポイントでのモー
ションベクターをアフィンシードベクターと言える。コントロールポイントは、現在ブロ
ックの左上端コーナー、右上端コーナー又は左下端コーナーの少なくとも一つを含むこと
ができる。
【0161】
図9はアフィンモーションモデル別のアフィンシードベクターを例示する図である。
【0162】
4パラメーターアフィンモーションモデルでは、左上端コーナー、右上端コーナー又は
左下端コーナーの中で二つに対するアフィンシードベクターを誘導することができる。一
例として、図9の(a)に示した例のように、4パラメーターアフィンモーションモデル
が選択された場合、現在ブロックの左上端コーナー(例えば、左上端サンプル(x1、y
1))に対するアフィンシードベクターsvと現在ブロックの右上端コーナー(例えば
、右上端サンプル(x1、y1))に対するアフィンシードベクターsvを用いてアフ
ィンベクターを誘導することができる。左上端コーナーに対するアフィンシードベクター
の代わりに左下端コーナーに対するアフィンシードベクターを使うか、右上端コーナーに
対するアフィンシードベクターの代わりに左下端コーナーに対するアフィンシードベクタ
ーを使うことも可能である。
【0163】
6パラメーターアフィンモーションモデルでは、左上端コーナー、右上端コーナー及び
左下端コーナーに対するアフィンシードベクターを誘導することができる。一例として、
図9の(b)に示した例のように、6パラメーターアフィンモーションモデルが選択され
た場合、現在ブロックの左上端コーナー(例えば、左上端サンプル(x1、y1))に対
するアフィンシードベクターsv、現在ブロックの右上端コーナー(例えば、右上端サ
ンプル(x1、y1))に対するアフィンシードベクターsv及び現在ブロックの左上
端コーナー(例えば、左上端サンプル(x2、y2))に対するアフィンシードベクター
svを用いてアフィンベクターを誘導することができる。
【0164】
後述する実施例では、4パラメーターアフィンモーションモデルで、左上端コントロー
ルポイント及び右上端コントロールポイントのアフィンシードベクターをそれぞれ第1ア
フィンシードベクター及び第2アフィンシードベクターと言う。後述する第1アフィンシ
ードベクター及び第2アフィンシードベクターを用いる実施例で、第1アフィンシードベ
クター及び第2アフィンシードベクターの少なくとも一つは左下端コントロールポイント
のアフィンシードベクター(第3アフィンシードベクター)又は右下端コントロールポイ
ントのアフィンシードベクター(第4アフィンシードベクター)に代替することができる
【0165】
また、6パラメーターアフィンモーションモデルで、左上端コントロールポイント、右
上端コントロールポイント及び左下端コントロールポイントのアフィンシードベクターを
それぞれ第1アフィンシードベクター、第2アフィンシードベクター及び第3アフィンシ
ードベクターと言う。後述する第1アフィンシードベクター、第2アフィンシードベクタ
ー及び第3アフィンシードベクターを用いる実施例で、第1アフィンシードベクター、第
2アフィンシードベクター及び第3アフィンシードベクターの少なくとも一つは右下端コ
ントロールポイントのアフィンシードベクター(第4アフィンシードベクター)に代替す
ることができる。
【0166】
アフィンシードベクターを用いてサブブロック別のアフィンベクターを誘導することが
できる(S803)。ここで、アフィンベクターはアフィンシードベクターに基づいて誘
導される並進モーションベクターを示す。サブブロックのアフィンベクターをアフィンサ
ブブロックモーションベクター又はサブブロックモーションベクターと言える。
【0167】
図10は4パラメーターモーションモデルで、サブブロックのアフィンベクターを例示
する図である。
【0168】
サブブロックのアフィンベクターは、コントロールポイントの位置、サブブロックの位
置及びアフィンシードベクターに基づいて誘導することができる。一例として、式3はア
フィンサブブロックモーションベクターを誘導する例を示す。
【0169】
【数3】
【0170】
前記式3で、(x、y)はサブブロックの位置を示す。ここで、サブブロックの位置は
サブブロックに含まれる基準サンプルの位置を示す。基準サンプルは、サブブロックの左
上端コーナーに位置するサンプル、又はx軸又はy軸座標の少なくとも一つが中央位置で
あるサンプルであることができる。(x、y)は第1コントロールポイントの位置を
示し、(sv0x、sv0y)は第1アフィンシードベクターを示す。また、(x、y
)は第2コントロールポイントの位置を示し、(sv1x、sv1y)は第2アフィン
シードベクターを示す。
【0171】
第1コントロールポイント及び第2コントロールポイントがそれぞれ現在ブロックの左
上端コーナー及び右上端コーナーに対応する場合、x-xは現在ブロックの幅と同じ
値に設定することができる。
【0172】
その後、各サブブロックのアフィンベクターを用いて各サブブロックに対する動き補償
予測を遂行することができる(S804)。動き補償予測の遂行の結果として、各サブブ
ロックに対する予測ブロックが生成されることができる。サブブロックの予測ブロックを
現在ブロックの予測ブロックに設定することができる。
【0173】
現在ブロックのアフィンシードベクターは現在ブロックに隣り合う隣接ブロックのアフ
ィンシードベクターに基づいて誘導することができる。現在ブロックのインター予測モー
ドがアフィンマージモードの場合、マージ候補リストに含まれるマージ候補のアフィンシ
ードベクターを現在ブロックのアフィンシードベクターに決定することができる。また、
現在ブロックのインター予測モードがアフィンマージモードの場合、現在ブロックの参照
ピクチャインデックス、特定方向予測フラグ又は両方向加重値の少なくとも一つを含む動
き情報もマージ候補と同様に設定することができる。
【0174】
次に、並進動き情報を用いるインター予測方法について詳細に説明する。
【0175】
現在ブロックの動き情報は現在ブロックの他のブロックの動き情報から誘導することが
できる。ここで、他のブロックは現在ブロックより先立ってインター予測によって符号化
/復号化されたブロックであることができる。現在ブロックの動き情報を他のブロックの
動き情報と同様に設定することをマージモードに定義することができる。また、他のブロ
ックの動きベクターを現在ブロックの動きベクターの予測値に設定することをモーション
ベクター予測モードに定義することができる。
【0176】
図11はマージモードの下で現在ブロックの動き情報を誘導する過程のフローチャート
である。
【0177】
現在ブロックのマージ候補を誘導することができる(S1101)。現在ブロックのマ
ージ候補は現在ブロックより先立ってインター予測によって符号化/復号化されたブロッ
クから誘導することができる。
【0178】
図12はマージ候補を誘導するために使われる候補ブロックを例示する図である。
【0179】
候補ブロックは、現在ブロックに隣り合うサンプルを含む隣接ブロック又は現在ブロッ
クに隣り合わないサンプルを含む非隣接ブロックの少なくとも一つを含むことができる。
以下、候補ブロックを決定するサンプルを基準サンプルに定義する。また、現在ブロック
に隣り合う基準サンプルを隣接基準サンプルと言い、現在ブロックに隣り合わない基準サ
ンプルを非隣接基準サンプルと言う。
【0180】
隣接基準サンプルは、現在ブロックの最左側列の隣接列又は現在ブロックの最上側行の
隣接行に含まれることができる。一例として、現在ブロックの左上端サンプルの座標を(
0、0)とするとき、(-1、H-1)位置の基準サンプルを含むブロック、(W-1、
-1)位置の基準サンプルを含むブロック、(W、-1)位置の基準サンプルを含むブロ
ック、(-1、H)位置の基準サンプルを含むブロック又は(-1、-1)位置の基準サ
ンプルを含むブロックの少なくとも一つを候補ブロックとして用いることができる。図面
を参照すると、インデックス0~インデックス4の隣接ブロックを候補ブロックとして用
いることができる。
【0181】
非隣接基準サンプルは、現在ブロックに隣り合う基準サンプルとのx軸距離又はy軸距
離の少なくとも一つが既定義の値を有するサンプルを示す。一例として、左側基準サンプ
ルとのx軸距離が既定義の値である基準サンプルを含むブロック、上端基準サンプルとの
y軸距離が既定義の値である非隣接サンプルを含むブロック、又は左上端基準サンプルと
のx軸距離及びy軸距離が既定義の値である非隣接サンプルを含むブロックの少なくとも
一つを候補ブロックとして用いることができる。既定義の値は、4、8、12、16など
の自然数であることができる。図面を参照すると、インデックス5~26のブロックの少
なくとも一つを候補ブロックとして用いることができる。
【0182】
隣接基準サンプルと同一の垂直線、水平線又は対角線上に位置しないサンプルを非隣接
基準サンプルに設定することもできる。
【0183】
マージ候補の動き情報は候補ブロックの動き情報と同様に設定することができる。一例
として、候補ブロックのモーションベクター、参照ピクチャインデックス、予測方向又は
両方向加重値インデックスの少なくとも一つをマージ候補の動き情報に設定することがで
きる。
【0184】
マージ候補を含むマージ候補リストを生成することができる(S1102)。
【0185】
マージ候補リスト内のマージ候補のインデックスは所定の順に割り当てることができる
。一例として、左側隣接ブロックから誘導されたマージ候補、上端隣接ブロックから誘導
されたマージ候補、右上端隣接ブロックから誘導されたマージ候補、左下端隣接ブロック
から誘導されたマージ候補、左上端隣接ブロックから誘導されたマージ候補、及び時間的
隣接ブロックから誘導されたマージ候補の順にインデックスを付与することができる。
【0186】
マージ候補に複数のマージ候補が含まれた場合、複数のマージ候補の少なくとも一つを
選択することができる(S1103)。具体的には、複数のマージ候補のいずれか一つを
特定するための情報をビットストリームによってシグナリングすることができる。一例と
して、マージ候補リストに含まれるマージ候補のいずれか一つのインデックスを示す情報
merge_idxをビットストリームによってシグナリングすることができる。
【0187】
マージ候補リストに含まれるマージ候補の数が閾値より小さい場合、モーション情報テ
ーブルに含まれるモーション情報候補をマージ候補としてマージ候補リストに追加するこ
とができる。ここで、閾値はマージ候補リストが含むことができる最大マージ候補の数又
は最大マージ候補の数からオフセットを差し引いた値であることができる。オフセットは
1又は2などの自然数であることができる。
【0188】
モーション情報テーブルは現在ピクチャ内のインター予測に基づいて符号化/復号化さ
れたブロックから誘導されるモーション情報候補を含む。一例として、モーション情報テ
ーブルに含まれるモーション情報候補の動き情報はインター予測に基づいて符号化/復号
化されたブロックの動き情報と同様に設定することができる。ここで、動き情報は、モー
ションベクター、参照ピクチャインデックス、予測方向又は両方向加重値インデックスの
少なくとも一つを含むことができる。
【0189】
モーション情報テーブルに含まれるモーション情報候補をインター領域マージ候補又は
予測領域マージ候補と言うこともできる。
【0190】
モーション情報テーブルが含むことができるモーション情報候補の最大数は符号化器及
び復号化器で既に定義されていることができる。一例として、モーション情報テーブルが
含むことができる最大モーション情報候補の数は、1、2、3、4、5、6、7、8又は
それ以上(例えば、16)であることができる。
【0191】
もしくは、モーション情報テーブルが含むことができるモーション情報候補の最大数を
示す情報をビットストリームによってシグナリングすることができる。前記情報は、シー
ケンス、ピクチャ、又はスライスレベルでシグナリングすることができる。前記情報はモ
ーション情報テーブルが含むことができるモーション情報候補の最大数を示すことができ
る。もしくは、前記情報はモーション情報テーブルが含むことができるモーション情報候
補の最大数とマージ候補リストが含むことができるマージ候補の最大数との間の差分を示
すことができる。
【0192】
もしくは、ピクチャのサイズ、スライスのサイズ又はコーディングツリーユニットのサ
イズによって、モーション情報テーブルが含むことができるモーション情報候補の最大数
を決定することができる。
【0193】
モーション情報テーブルは、ピクチャ、スライス、タイル、ブリック、コーディングツ
リーユニット、又はコーディングツリーユニットライン(行又は列)単位で初期化される
ことができる。一例として、スライスが初期化される場合、モーション情報テーブルも初
期化され、モーション情報テーブルは何のモーション情報候補も含まないことができる。
【0194】
もしくは、モーション情報テーブルを初期化するかを示す情報をビットストリームによ
ってシグナリングすることもできる。前記情報はスライス、タイル、ブリック又はブロッ
クレベルでシグナリングすることができる。前記情報がモーション情報テーブルを初期化
することを指示するまで、既に構成されたモーション情報テーブルを用いることができる
【0195】
もしくは、ピクチャパラメーターセット又はスライスヘッダーによって初期モーション
情報候補についての情報をシグナリングすることができる。スライスが初期化されても、
モーション情報テーブルは初期モーション情報候補を含むことができる。これにより、ス
ライス内の第1符号化/復号化対象であるブロックに対しても初期モーション情報候補を
用いることができる。
【0196】
もしくは、以前コーディングツリーユニットのモーション情報テーブルに含まれるモー
ション情報候補を初期モーション情報候補に設定することができる。一例として、以前コ
ーディングツリーユニットのモーション情報テーブルに含まれるモーション情報候補の中
でインデックスが最小のモーション情報候補又はインデックスが最大のモーション情報候
補を初期モーション情報候補に設定することができる。
【0197】
符号化/復号化の順にブロックを符号化/復号化し、インター予測に基づいて符号化/
復号化されたブロックを符号化/復号化の順に順次モーション情報候補に設定することが
できる。
【0198】
図13はモーション情報テーブルのアップデート様相を説明するための図である。
【0199】
現在ブロックに対してインター予測を遂行した場合(S1301)、現在ブロックに基
づいてモーション情報候補を誘導することができる(S1302)。モーション情報候補
の動き情報は現在ブロックの動き情報と同一に設定することができる。
【0200】
モーション情報テーブルが空の状態の場合(S1303)、現在ブロックに基づいて誘
導されたモーション情報候補をモーション情報テーブルに追加することができる(S13
04)。
【0201】
モーション情報テーブルが既にモーション情報候補を含んでいる場合(S1303)、
現在ブロックの動き情報(又は、これによって誘導されたモーション情報候補)に対する
重複性検査を実施することができる(S1305)。重複性検査は、モーション情報テー
ブルに既に保存されたモーション情報候補の動き情報と現在ブロックの動き情報とが同一
であるかを決定するためのものである。重複性検査は、モーション情報テーブルに既に保
存されたすべてのモーション情報候補を対象として遂行することができる。もしくは、モ
ーション情報テーブルに既に保存されたモーション情報候補の中でインデックスが閾値以
上又は閾値以下のモーション情報候補を対象として重複性検査を遂行することができる。
もしくは、既定義の数のモーション情報候補を対象として重複性検査を遂行することがで
きる。一例として、インデックスが小さい2個のモーション情報候補又はインデックスが
大きい2個のモーション情報候補を重複性検査対象として決定することができる。
【0202】
現在ブロックの動き情報と同じ動き情報を有するモーション情報候補が含まれていない
場合、現在ブロックに基づいて誘導されたモーション情報候補をモーション情報テーブル
に追加することができる(S1308)。モーション情報候補が同一であるかは、モーシ
ョン情報候補の動き情報(例えば、モーションベクター及び/又は参照ピクチャインデッ
クスなど)が同一であるかによって決定することができる。
【0203】
ここで、モーション情報テーブルに既に最大数のモーション情報候補が保存されている
場合(S1306)、一番古いモーション情報候補を削除し(S1307)、現在ブロッ
クに基づいて誘導されたモーション情報候補をモーション情報テーブルに追加することが
できる(S1308)。ここで、一番古いモーション情報候補はインデックスが最大のモ
ーション情報候補又はインデックスが最小のモーション情報候補であることができる。
【0204】
モーション情報候補はそれぞれインデックスによって識別することができる。現在ブロ
ックから誘導されたモーション情報候補がモーション情報テーブルに追加される場合、前
記モーション情報候補に最低のインデックス(例えば、0)を割り当て、既保存のモーシ
ョン情報候補のインデックスを1ずつ増加させることができる。ここで、モーション情報
テーブルに既に最大数のモーション情報候補が保存されている場合、インデックスが最大
のモーション情報候補を除去する。
【0205】
もしくは、現在ブロックから誘導されたモーション情報候補がモーション情報テーブル
に追加される場合、前記モーション情報候補に最大のインデックスを割り当てることがで
きる。一例として、モーション情報テーブルに既に保存されているモーション情報候補の
数が最大値より小さい場合、前記モーション情報候補には既保存のモーション情報候補の
数と同じ値のインデックスを割り当てることができる。もしくは、モーション情報テーブ
ルに既に保存されているモーション情報候補の数が最大値と同一である場合、前記モーシ
ョン情報候補には最大値から1を差し引いたインデックスを割り当てることができる。ま
た、インデックスが最も小さいモーション情報候補を除去し、残っている既保存のモーシ
ョン情報候補のインデックスを1ずつ減少させる。
【0206】
図14はモーション情報テーブルのアップデート様相を示す図である。
【0207】
現在ブロックから誘導されたモーション情報候補がモーション情報テーブルに加わり、
前記モーション情報候補に最大のインデックスが割り当てられると仮定する。また、モー
ション情報テーブルには既に最大数のモーション情報候補が保存されていると仮定する。
【0208】
現在ブロックから誘導されたモーション情報候補HmvpCand[n+1]をモーシ
ョン情報テーブルHmvpCandListに追加する場合、既保存のモーション情報候
補の中でインデックスが最小のモーション情報候補HmvpCand[0]を削除し、残
余モーション情報候補のインデックスを1ずつ減少させることができる。また、現在ブロ
ックから誘導されたモーション情報候補HmvpCand[n+1]のインデックスを最
大値(図14に示した例ではn)に設定することができる。
【0209】
現在ブロックに基づいて誘導されたモーション情報候補と同じモーション情報候補が既
に保存されている場合(S1305)、現在ブロックに基づいて誘導されたモーション情
報候補をモーション情報テーブルに追加しないことができる(S1309)。
【0210】
もしくは、現在ブロックに基づいて誘導されたモーション情報候補をモーション情報テ
ーブルに追加しながら、前記モーション情報候補と同一である既保存のモーション情報候
補を除去することもできる。この場合、既保存のモーション情報候補のインデックスを新
しく更新することと同じ効果を引き起こす。
【0211】
図15は既保存のモーション情報候補のインデックスを更新する例を示す図である。
【0212】
現在ブロックに基づいて誘導されたモーション情報候補mvCandと同一である既保
存のモーション情報候補のインデックスがhIdxの場合、前記既保存のモーション情報
候補を削除し、インデックスがhIdxより大きいモーション情報候補のインデックスを
1だけ減少させることができる。一例として、図15に示した例では、mvCandと同
じHmvpCand[2]がモーション情報テーブルHvmpCandListから削除
され、HmvpCand[3]からHmvpCand[n]までのインデックスが1ずつ
減少するものが示された。
【0213】
そして、現在ブロックに基づいて誘導されたモーション情報候補mvCandをモーシ
ョン情報テーブルの最後に追加することができる。
【0214】
もしくは、現在ブロックに基づいて誘導されたモーション情報候補と同一である既保存
のモーション情報候補に割り当てられたインデックスを更新することができる。例えば、
既保存のモーション情報候補のインデックスを最小値又は最大値に変更することができる
【0215】
所定の領域に含まれるブロックの動き情報はモーション情報テーブルに追加されないよ
うに設定することができる。一例として、マージ処理領域に含まれるブロックの動き情報
に基づいて誘導されるモーション情報候補はモーション情報テーブルに追加しないことが
できる。マージ処理領域に含まれるブロックに対しては符号化/復号化の手順が定義され
ていないので、これらの中でいずれか一つの動き情報を他のブロックのインター予測の際
に用いることは適切でない。これにより、マージ処理領域に含まれるブロックに基づいて
誘導されたモーション情報候補はモーション情報テーブルに追加しないことができる。
【0216】
もしくは、既設定のサイズより小さいブロックの動き情報はモーション情報テーブルに
追加されないように設定することができる。一例として、幅又は高さが4又は8より小さ
いコーディングブロックの動き情報、又は4×4サイズのコーディングブロックの動き情
報に基づいて誘導されるモーション情報候補はモーション情報テーブルに追加しないこと
ができる。
【0217】
現在ブロックのインター予測モードに基づいて現在ブロックをモーション情報候補とし
て用いるかを決定することもできる。一例として、アフィンモーションモデルに基づいて
符号化/復号化されたブロックはモーション情報候補として用いることができないものに
設定することができる。これにより、現在ブロックがインター予測によって符号化/復号
化されたとしても、現在ブロックのインター予測モードがアフィン予測モードの場合には
、現在ブロックに基づいてモーション情報テーブルをアップデートしないことができる。
【0218】
モーション情報候補が動き情報の他に追加情報を含むように設定することができる。一
例として、モーション情報候補に対して、ブロックのサイズ、形態又はブロックのパーテ
ィション情報の少なくとも一つをさらに保存することができる。現在ブロックのマージ候
補リストの構成の際、モーション情報候補の中で現在ブロックとサイズ、形態又はパーテ
ィション情報が同一又は類似のモーション情報候補のみを使うか、現在ブロックとサイズ
、形態又はパーティション情報が同一又は類似のモーション情報候補を先にマージ候補リ
ストに追加することができる。
【0219】
現在ブロックのマージ候補リストに含まれるマージ候補の数が閾値より少ない場合、モ
ーション情報テーブルに含まれるモーション情報候補をマージ候補としてマージ候補リス
トに追加することができる。前記追加過程は、モーション情報候補のインデックスを昇順
又は降順に整列したときの手順に遂行する。一例として、インデックスが最大のモーショ
ン情報候補から現在ブロックのマージ候補リストに追加することができる。
【0220】
モーション情報テーブルに含まれるモーション情報候補をマージ候補リストに追加しよ
うとする場合、モーション情報候補とマージ候補リストに既に保存されているマージ候補
との間の重複性検査を遂行することができる。重複性検査の遂行結果、既保存のマージ候
補と同じ動き情報を有するモーション情報候補はマージ候補リストに追加しないことがで
きる。
【0221】
重複性検査は、モーション情報テーブルに含まれるモーション情報候補の一部のみに対
して遂行することもできる。一例として、インデックスが閾値以上又は閾値以下であるモ
ーション情報候補のみに対して重複性検査を遂行することができる。もしくは、インデッ
クスが最大であるN個のモーション情報候補又はインデックスが最小であるN個のモーシ
ョン情報候補のみに対して重複性検査を遂行することができる。
【0222】
もしくは、マージ候補リストに既に保存されているマージ候補の一部のみに対して重複
性検査を遂行することができる。一例として、インデックスが閾値以上又は閾値以下のマ
ージ候補又は特定の位置のブロックから誘導されたマージ候補のみに対して重複性検査を
遂行することができる。ここで、特定の位置は、現在ブロックの左側隣接ブロック、上端
隣接ブロック、右上端隣接ブロック又は左下端隣接ブロックの少なくとも一つを含むこと
ができる。
【0223】
図16はマージ候補の一部のみに対して重複性検査を遂行する例を示す図である。
【0224】
モーション情報候補HmvpCand[j]をマージ候補リストに追加しようとする場
合、モーション情報候補に対してインデックスが最大である2個のマージ候補merge
CandList[NumMerge-2]及びmergeCandList[NumM
erge-1]との重複性検査を遂行することができる。ここで、NumMergeは可
用の空間的マージ候補及び時間的マージ候補の数を示すことができる。
【0225】
図示の例とは違い、モーション情報候補HmvpCand[j]をマージ候補リストに
追加しようとする場合、モーション情報候補に対してインデックスが最大である多くても
2個のマージ候補との重複性検査を遂行することもできる。例えば、mergeCand
List[0]及びmergeCandList[1]に対してHmvpCand[j]
との同一性を確認することができる。
【0226】
もしくは、特定の位置で誘導されたマージ候補のみに対して重複性検査を遂行すること
ができる。一例として、現在ブロックの左側に位置する周辺ブロックから誘導されたマー
ジ候補又は現在ブロックの上端に位置する周辺ブロックから誘導されたマージ候補の少な
くとも一つに対して重複性検査を遂行することができる。マージ候補リストに特定の位置
で誘導されたマージ候補が存在しない場合、重複性検査なしにモーション情報候補をマー
ジ候補リストに追加することができる。
【0227】
モーション情報候補HmvpCand[j]をマージ候補リストに追加しようとする場
合、モーション情報候補に対してインデックスが最大である2個のマージ候補merge
CandList[NumMerge-2]及びmergeCandList[NumM
erge-1]との重複性検査を遂行することができる。ここで、NumMergeは可
用の空間的マージ候補及び時間的マージ候補の数を示すことができる。
【0228】
モーション情報候補の一部のみに対してマージ候補との重複性検査を遂行することもで
きる。一例として、モーション情報テーブルに含まれるモーション情報候補の中でインデ
ックスが大きいN個又はインデックスが小さいN個のモーション情報候補のみに対して重
複性検査を遂行することができる。一例として、モーション情報テーブルに含まれるモー
ション情報候補の数との差分が閾値以下であるインデックスを有するモーション情報候補
のみに対して重複性検査を遂行することができる。閾値が2の場合、モーション情報テー
ブルに含まれるモーション情報候補の中でインデックス値が最大である3個のモーション
情報候補のみに対して重複性検査を遂行することができる。前記3個のモーション情報候
補を除いたモーション情報候補に対しては重複性検査を省略することができる。重複性検
査を省略する場合、マージ候補と同じ動き情報を有するかに関係なく、モーション情報候
補をマージ候補リストに追加することができる。
【0229】
これとは反対に、モーション情報テーブルに含まれるモーション情報候補の数との差分
が閾値以上のインデックスを有するモーション情報候補のみに対して重複性検査を遂行す
るように設定することもできる。
【0230】
重複性検査が遂行されるモーション情報候補の数は符号化器及び復号化器で既に定義さ
れていることができる。例えば、閾値は0、1又は2のような整数であることができる。
【0231】
もしくは、マージ候補リストに含まれるマージ候補の数又はモーション情報テーブルに
含まれるモーション情報候補の数の少なくとも一つに基づいて閾値を決定することができ
る。
【0232】
第1モーション情報候補と同じマージ候補が発見された場合、第2モーション情報候補
に対する重複性検査の際、前記第1モーション情報候補と同じマージ候補との重複性検査
を省略することができる。
【0233】
図17は特定のマージ候補との重複性検査を省略する例を示す図である。
【0234】
インデックスがiであるモーション情報候補HmvpCand[i]をマージ候補リス
トに追加しようとする場合、前記モーション情報候補とマージ候補リストに既に保存され
ているマージ候補との間の重複性検査を遂行する。ここで、モーション情報候補Hmvp
Cand[i]と同じマージ候補mergeCandList[j]が発見された場合、
モーション情報候補HmvpCand[i]をマージ候補リストに追加せず、インデック
スがi-1であるモーション情報候補HmvpCand[i-1]とマージ候補との間の
重複性検査を遂行することができる。ここで、モーション情報候補HmvpCand[i
-1]とマージ候補mergeCandList[j]との間の重複性検査は省略するこ
とができる。
【0235】
一例として、図17に示した例では、HmvpCand[i]とmergeCandL
ist[2]が同一であると決定された。これにより、HmvpCand[i]をマージ
候補リストに追加せず、HmvpCand[i-1]に対する重複性検査を遂行すること
ができる。ここで、HvmpCand[i-1]とmergeCandList[2]と
の間の重複性検査は省略することができる。
【0236】
現在ブロックのマージ候補リストに含まれるマージ候補の数が閾値より小さい場合、モ
ーション情報候補以外にも、ペアワイズマージ候補又はゼロマージ候補の少なくとも一つ
をさらに含むこともできる。ペアワイズマージ候補は二つ以上のマージ候補の動きベクタ
ーを平均した値を動きベクターとして有するマージ候補を意味し、ゼロマージ候補はモー
ションベクターが0のマージ候補を意味する。
【0237】
現在ブロックのマージ候補リストは次の順にマージ候補が追加されることができる。
【0238】
空間的マージ候補-時間的マージ候補-モーション情報候補-(アフィンモーション情
報候補)-ペアワイズマージ候補-ゼロマージ候補
【0239】
空間的マージ候補は隣接ブロック又は非隣接ブロックの少なくとも一つから誘導される
マージ候補を意味し、時間的マージ候補は以前参照ピクチャから誘導されるマージ候補を
意味する。アフィンモーション情報候補はアフィンモーションモデルに符号化/復号化さ
れたブロックから誘導されたモーション情報候補を示す。
【0240】
モーションベクター予測モードでもモーション情報テーブルを用いることができる。一
例として、現在ブロックの動きベクター予測候補リストに含まれる動きベクター予測候補
の数が閾値より小さい場合、モーション情報テーブルに含まれるモーション情報候補を現
在ブロックに対する動きベクター予測候補に設定することができる。具体的には、モーシ
ョン情報候補の動きベクターを動きベクター予測候補に設定することができる。
【0241】
現在ブロックの動きベクター予測候補リストに含まれる動きベクター予測候補のいずれ
か一つが選択されれば、選択された候補を現在ブロックの動きベクター予測子に設定する
ことができる。その後、現在ブロックの動きベクター残差値を復号化した後、動きベクタ
ー予測子と動きベクター残差値とを合わせて現在ブロックの動きベクターを獲得すること
ができる。
【0242】
現在ブロックの動きベクター予測候補リストは次の順に構成されることができる。
【0243】
空間的モーションベクター予測候補-時間的モーションベクター予測候補-モーション
情報候補-(アフィンモーション情報候補)-ゼロモーションベクター予測候補
【0244】
空間的モーションベクター予測候補は隣接ブロック又は非隣接ブロックの少なくとも一
つから誘導されるモーションベクター予測候補を意味し、時間的モーションベクター予測
候補は以前参照ピクチャから誘導されるモーションベクター予測候補を意味する。アフィ
ンモーション情報候補はアフィンモーションモデルに符号化/復号化されたブロックから
誘導されたモーション情報候補を示す。ゼロモーションベクター予測候補は動きベクター
の値が0である候補を示す。
【0245】
コーディングブロックより大きいサイズのマージ処理領域を定義されることができる。
マージ処理領域に含まれるコーディングブロックは順次符号化/復号化されず、並列処理
されることができる。ここで、順次符号化/復号化されないというのは、符号化/復号化
の手順が定義されていないことを意味する。これにより、マージ処理領域に含まれるブロ
ックの符号化/復号化過程は独立的に処理することができる。もしくは、マージ処理領域
に含まれるブロックはマージ候補を共有することができる。ここで、マージ候補はマージ
処理領域を基準に誘導することができる。
【0246】
上述した特徴によって、マージ処理領域を並列処理領域、マージ共有領域(Share
d Merge Region、SMR)又はMER(Merge Estimatio
n Region)と言うこともできる。
【0247】
現在ブロックのマージ候補はコーディングブロックを基準に誘導することができる。た
だ、現在ブロックが現在ブロックより大きいサイズのマージ処理領域に含まれる場合、現
在ブロックと同じマージ処理領域に含まれる候補ブロックはマージ候補として利用できな
いものに設定することができる。
【0248】
図18は現在ブロックと同じマージ処理領域に含まれる候補ブロックがマージ候補とし
て利用できないものに設定される例を示す図である。
【0249】
図18の左側に示した例で、CU5の符号化/復号化の際、CU5に隣接した基準サン
プルを含むブロックを候補ブロックに設定することができる。ここで、CU5と同じマー
ジ処理領域に含まれる候補ブロックX3及びX4はCU5のマージ候補として利用できな
いものに設定することができる。一方、CU5と同じマージ処理領域に含まれていない候
補ブロックX0、X1及びX2はマージ候補として利用可能なものに設定することができ
る。
【0250】
図18の右側に示した例で、CU8の符号化/復号化の際、CU8に隣接した基準サン
プルを含むブロックを候補ブロックに設定することができる。ここで、CU8と同じマー
ジ処理領域に含まれる候補ブロックX6、X7及びX8はマージ候補として利用できない
ものに設定することができる。一方、CU8と同じマージ領域に含まれていない候補ブロ
ックX5及びX9はマージ候補として利用可能なものに設定することができる。
【0251】
もしくは、現在ブロックがマージ処理領域に含まれる場合、現在ブロックに隣り合う隣
接ブロック及びマージ処理領域に隣り合う隣接ブロックを候補ブロックに設定することが
できる。
【0252】
図19は現在ブロックがマージ処理領域に含まれている場合、現在ブロックに対するマ
ージ候補を誘導する例を示す図である。
【0253】
図19の(a)に示した例のように、現在ブロックが隣り合う隣接ブロックを現在ブロ
ックのマージ候補を誘導するための候補ブロックに設定することができる。ここで、現在
ブロックと同じマージ処理領域に含まれる候補ブロックはマージ候補として利用できない
ものに設定することができる。一例として、コーディングブロックCU3に対するマージ
候補の誘導の際、コーディングブロックCU3と同じマージ処理領域に含まれる上端隣接
ブロックy3及び右上端隣接ブロックy4はコーディングブロックCU3のマージ候補と
して利用できないものに設定することができる。
【0254】
現在ブロックに隣り合う隣接ブロックを既定義の順にスキャンしてマージ候補を誘導す
ることができる。一例として、既定義の順は、y1、y3、y4、y0及びy2の順であ
ることができる。
【0255】
現在ブロックに隣り合う隣接ブロックから誘導することができるマージ候補の数がマー
ジ候補の最大数又は前記最大数からオフセットを差し引いた値より小さい場合、図19
(b)に示した例のように、マージ処理領域に隣り合う隣接ブロックを用いて現在ブロッ
クに対するマージ候補を誘導することができる。一例として、コーディングブロックCU
3を含むマージ処理領域に隣り合う隣接ブロックをコーディングブロックCU3に対する
候補ブロックに設定することができる。ここで、マージ処理領域に隣り合う隣接ブロック
は、左側隣接ブロックx1、上端隣接ブロックx3、左下端隣接ブロックx0、右上端隣
接ブロックx4又は左上端隣接ブロックx2の少なくとも一つを含むことができる。
【0256】
マージ処理領域に隣り合う隣接ブロックを既定義の順にスキャンしてマージ候補を誘導
することができる。一例として、既定義の順は、x1、x3、x4、x0及びx2の順で
あることができる。
【0257】
まとめると、マージ処理領域に含まれるコーディングブロックCU3に対するマージ候
補は次のスキャン順に候補ブロックをスキャンして誘導することができる。
【0258】
(y1、y3、y4、y0、y2、x1、x3、x4、x0、x2)
【0259】
ただ、前記例示の候補ブロックのスキャン順は本発明の一例を示すものに過ぎなく、前
記例示と違う順に候補ブロックをスキャンすることも可能である。もしくは、現在ブロッ
ク又はマージ処理領域のサイズ又は形態の少なくとも一つに基づいてスキャン順を適応的
に決定することもできる。
【0260】
マージ処理領域は正方形又は非正方形であることができる。マージ処理領域を決定する
ための情報をビットストリームによってシグナリングすることができる。前記情報は、マ
ージ処理領域の形態を示す情報又はマージ処理領域のサイズを示す情報の少なくとも一つ
を含むことができる。マージ処理領域が非正方形の場合、マージ処理領域のサイズを示す
情報、マージ処理領域の幅及び/又は高さを示す情報又はマージ処理領域の幅と高さとの
間の比を示す情報の少なくとも一つをビットストリームによってシグナリングすることが
できる。
【0261】
マージ処理領域のサイズは、ビットストリームによってシグナリングされる情報、ピク
チャ解像度、スライスのサイズ又はタイルサイズの少なくとも一つに基づいて決定するこ
とができる。
【0262】
マージ処理領域に含まれるブロックに対して動き補償予測が遂行されれば、動き補償予
測が遂行されたブロックの動き情報に基づいて誘導されたモーション情報候補をモーショ
ン情報テーブルに追加することができる。
【0263】
ただ、マージ処理領域に含まれるブロックから誘導されたモーション情報候補をモーシ
ョン情報テーブルに追加する場合、前記ブロックより実際に符号化/復号化が遅いマージ
処理領域内の他のブロックの符号化/復号化の際、前記ブロックから誘導されたモーショ
ン情報候補を使う場合が発生することができる。すなわち、マージ処理領域に含まれるブ
ロックの符号化/復号化の際、ブロック間の依存性を排除しなければならないことにもか
かわらず、マージ処理領域に含まれる他のブロックの動き情報を用いて動き予測補償が遂
行される場合が発生することができる。このような問題点を解消するために、マージ処理
領域に含まれるブロックの符号化/復号化が完了しても、符号化/復号化が完了したブロ
ックの動き情報をモーション情報テーブルに追加しないことができる。
【0264】
もしくは、マージ処理領域内の既定義の位置のブロックのみを用いてモーション情報テ
ーブルをアップデートすることができる。既定義の位置は、マージ処理領域内の左上端に
位置するブロック、右上端に位置するブロック、左下端に位置するブロック、右下端に位
置するブロック、中央に位置するブロック、右側境界に隣り合うブロック又は下端境界に
隣り合うブロックの少なくとも一つを含むことができる。一例として、マージ処理領域内
の右下端コーナーに隣り合うブロックの動き情報のみをモーション情報テーブルにアップ
デートし、他のブロックの動き情報はモーション情報テーブルにアップデートしないこと
ができる。
【0265】
もしくは、マージ処理領域に含まれるすべてのブロックの復号化が完了した後、前記ブ
ロックから誘導されたモーション情報候補をモーション情報テーブルに追加することがで
きる。すなわち、マージ処理領域に含まれるブロックが符号化/復号化されるうちにはモ
ーション情報テーブルがアップデートされないことができる。
【0266】
一例として、マージ処理領域に含まれるブロックに対して動き補償予測を遂行すれば、
前記ブロックから誘導されたモーション情報候補を既定義の順にモーション情報テーブル
に追加することができる。ここで、既定義の順はマージ処理領域又はコーディングツリー
ユニット内のコーディングブロックのスキャン順に決定することができる。前記スキャン
順は、ラスターヘスキャン、水平スキャン、垂直スキャン又はジグザグスキャンの少なく
とも一つであることができる。もしくは、既定義の順は各ブロックの動き情報又は同じ動
き情報を有するブロックの数に基づいて決定することができる。
【0267】
もしくは、単方向モーション情報を含むモーション情報候補を両方向モーション情報を
含むモーション情報候補より先にモーション情報テーブルに追加することができる。これ
とは反対に、両方向モーション情報を含むモーション情報候補を単方向モーション情報を
含むモーション情報候補より先にモーション情報テーブルに追加することもできる。
【0268】
もしくは、マージ処理領域又はコーディングツリーユニット内の使用頻度が高い順又は
使用頻度が低い順にモーション情報候補をモーション情報テーブルに追加することができ
る。
【0269】
現在ブロックがマージ処理領域に含まれており、現在ブロックのマージ候補リストに含
まれるマージ候補の数が最大数より少ない場合、モーション情報テーブルに含まれるモー
ション情報候補をマージ候補リストに追加することができる。ここで、現在ブロックと同
じマージ処理領域に含まれるブロックから誘導されたモーション情報候補は現在ブロック
のマージ候補リストに追加されないように設定することができる。
【0270】
もしくは、現在ブロックがマージ処理領域に含まれる場合、モーション情報テーブルに
含まれるモーション情報候補を使わないように設定することができる。すなわち、現在ブ
ロックのマージ候補リストに含まれるマージ候補の数が最大数より少ない場合であっても
、モーション情報テーブルに含まれるモーション情報候補をマージ候補リストに追加しな
いことができる。
【0271】
他の例として、マージ処理領域又はコーディングツリーユニットに対するモーション情
報テーブルを構成することができる。このモーション情報テーブルはマージ処理領域に含
まれるブロックのモーション情報を一時保存する役割を果たす。一般的なモーション情報
テーブルとマージ処理領域又はコーディングツリーユニットのためのモーション情報テー
ブルとを区別するために、マージ処理領域又はコーディングツリーユニットのためのモー
ション情報テーブルを一時モーション情報テーブルと言うことにする。また、一時モーシ
ョン情報テーブルに保存されたモーション情報候補を一時モーション情報候補と言う。
【0272】
図20は一時モーション情報テーブルを示す図である。
【0273】
コーディングツリーユニット又はマージ処理領域のための一時モーション情報テーブル
を構成することができる。コーディングツリーユニット又はマージ処理領域に含まれる現
在ブロックに対して動き補償予測が遂行された場合、前記ブロックの動き情報はモーショ
ン情報テーブルHmvpCandListに追加しないことができる。その代わりに、前
記ブロックから誘導された一時モーション情報候補を一時モーション情報テーブルHmv
pMERCandListに追加することができる。すなわち、一時モーション情報テー
ブルに追加された一時モーション情報候補はモーション情報テーブルに追加されないこと
ができる。これにより、モーション情報テーブルは現在ブロックを含むコーディングツリ
ーユニット又はマージ処理領域に含まれるブロックのモーション情報に基づいて誘導され
たモーション情報候補を含まないことができる。
【0274】
もしくは、頭部処理領域に含まれるブロックの一部ブロックの動き情報のみを一時モー
ション情報テーブルに追加することができる。一例として、マージ処理領域内の既定義の
位置のブロックのみをモーション情報テーブルをアップデートするのに用いることができ
る。既定義の位置は、マージ処理領域内の左上端に位置するブロック、右上端に位置する
ブロック、左下端に位置するブロック、右下端に位置するブロック、中央に位置するブロ
ック、右側境界に隣り合うブロック又は下端境界に隣り合うブロックの少なくとも一つを
含むことができる。一例として、マージ処理領域内の右下端コーナーに隣り合うブロック
の動き情報のみを一時モーション情報テーブルに追加し、他のブロックの動き情報は一時
モーション情報テーブルに追加しないことができる。
【0275】
一時モーション情報テーブルが含むことができる一時モーション情報候補の最大数はモ
ーション情報テーブルが含むことができるモーション情報候補の最大数と同一に設定する
ことができる。もしくは、一時モーション情報テーブルが含むことができる一時モーショ
ン情報候補の最大数はコーディングツリーユニット又はマージ処理領域のサイズによって
決定することができる。もしくは、一時モーション情報テーブルが含むことができる一時
モーション情報候補の最大数をモーション情報テーブルが含むことができるモーション情
報候補の最大数より少なく設定することができる。
【0276】
コーディングツリーユニット又はマージ処理領域に含まれる現在ブロックは当該コーデ
ィングツリーユニット又は当該マージ処理領域に対する一時モーション情報テーブルを用
いないように設定することができる。すなわち、現在ブロックのマージ候補リストに含ま
れるマージ候補の数が閾値より少ない場合、モーション情報テーブルに含まれるモーショ
ン情報候補をマージ候補リストに追加し、一時モーション情報テーブルに含まれる一時モ
ーション情報候補はマージ候補リストに追加しないことができる。これにより、現在ブロ
ックと同じコーディングツリーユニット又は同じマージ処理領域に含まれる他のブロック
の動き情報を現在ブロックの動き補償予測に用いないことができる。
【0277】
コーディングツリーユニット又はマージ処理領域に含まれるすべてのブロックの符号化
/復号化が完了すれば、モーション情報テーブルと一時モーション情報テーブルを併合す
ることができる。
【0278】
図21はモーション情報テーブルと一時モーション情報テーブルを併合する例を示す図
である。
【0279】
コーディングツリーユニット又はマージ処理領域に含まれるすべてのブロックの符号化
/復号化が完了すれば、図21に示した例のように、一時モーション情報テーブルに含ま
れる一時モーション情報候補をモーション情報テーブルにアップデートすることができる
【0280】
ここで、一時モーション情報テーブルに含まれる一時モーション情報候補は、一時モー
ション情報テーブルに挿入された順(すなわち、インデックス値の昇順又は降順)にモー
ション情報テーブルに追加することができる。
【0281】
他の例として、既定義の順に、一時モーション情報テーブルに含まれる一時モーション
情報候補をモーション情報テーブルに追加することができる。ここで、既定義の順はマー
ジ処理領域又はコーディングツリーユニット内のコーディングブロックのスキャン順によ
って決定することができる。前記スキャン順は、ラスターヘスキャン、水平スキャン、垂
直スキャン又はジグザグスキャンの少なくとも一つであることができる。もしくは、既定
義の順は各ブロックの動き情報又は同じ動き情報を有するブロックの数に基づいて決定す
ることができる。
【0282】
もしくは、単方向モーション情報を含む一時モーション情報候補を両方向モーション情
報を含む一時モーション情報候補より先にモーション情報テーブルに追加することができ
る。これとは反対に、両方向モーション情報を含む一時モーション情報候補を単方向モー
ション情報を含む一時モーション情報候補より先にモーション情報テーブルに追加するこ
ともできる。
【0283】
もしくは、マージ処理領域又はコーディングツリーユニット内の使用頻度が高い順又は
使用頻度が低い順に一時モーション情報候補をモーション情報テーブルに追加することが
できる。
【0284】
一時モーション情報テーブルに含まれる一時モーション情報候補をモーション情報テー
ブルに追加する場合、一時モーション情報候補に対する重複性検査を遂行することができ
る。一例として、一時モーション情報テーブルに含まれる一時モーション情報候補と同じ
モーション情報候補がモーション情報テーブルに既に保存されている場合、前記一時モー
ション情報候補をモーション情報テーブルに追加しないことができる。ここで、重複性検
査はモーション情報テーブルに含まれるモーション情報候補の一部を対象として遂行する
ことができる。一例として、インデックスが閾値以上又は閾値以下のモーション情報候補
を対象として重複性検査を遂行することができる。一例として、一時モーション情報候補
が既定義の値以上のインデックスを有するモーション情報候補と同じ場合には、前記一時
モーション情報候補をモーション情報テーブルに追加しないことができる。
【0285】
現在ブロックと同じコーディングツリーユニット又は同じマージ処理領域に含まれるブ
ロックから誘導されたモーション情報候補が現在ブロックのマージ候補として用いられる
ことを制限することができる。このために、モーション情報候補に対してブロックの住所
情報をさらに保存することができる。ブロックの住所情報は、ブロックの位置、ブロック
の住所、ブロックのインデックス、ブロックが含まれたマージ処理領域の位置、ブロック
が含まれたマージ処理領域の住所、ブロックが含まれたマージ処理領域のインデックス、
ブロックが含まれたコーディングツリー領域の位置、ブロックが含まれたコーディングツ
リー領域の住所又はブロックが含まれたコーディングツリー領域のインデックスの少なく
とも一つを含むことができる。
【0286】
イントラ予測は現在ブロック周辺に符号化/復号化が完了した復元サンプルを用いて現
在ブロックを予測することである。ここで、現在ブロックのイントラ予測には、インルー
プフィルターが適用される前の復元サンプルを用いることができる。
【0287】
イントラ予測技法は、マトリックス(Matrix)に基づくイントラ予測及び周辺復
元サンプルとの方向性を考慮した一般イントラ予測を含む。現在ブロックのイントラ予測
技法を指示する情報をビットストリームによってシグナリングすることができる。前記情
報は1ビットのフラグであることができる。もしくは、現在ブロックの位置、サイズ、形
態又は隣接ブロックのイントラ予測技法の少なくとも一つに基づいて現在ブロックのイン
トラ予測技法を決定することができる。一例として、現在ブロックがピクチャバウンダリ
ーにわたって存在する場合、現在ブロックにはマトリックスに基づくイントラ予測が適用
されないように設定することができる。
【0288】
マトリックスに基づくイントラ予測は、符号化器及び復号化器で既に保存されたマトリ
ックスと現在ブロック周辺の復元サンプルとの間の行列乗算に基づいて現在ブロックの予
測ブロックを獲得する方法である。既に保存された複数のマトリックスのいずれか一つを
特定するための情報をビットストリームによってシグナリングすることができる。復号化
器は前記情報及び現在ブロックのサイズに基づいて現在ブロックのイントラ予測のための
マトリックスを決定することができる。
【0289】
一般イントラ予測は、非方向性イントラ予測モード又は方向性イントラ予測モードに基
づいて現在ブロックに対する予測ブロックを獲得する方法である。以下、図面を参照して
、一般イントラ予測に基づくイントラ予測遂行過程についてより詳細に説明する。
【0290】
図22は本発明の一実施例によるイントラ予測方法のフローチャートである。
【0291】
現在ブロックの参照サンプルラインを決定することができる(S2201)。参照サン
プルラインは現在ブロックの上端及び/又は左側からk番目で離れたラインに含まれる参
照サンプルの集合を意味する。参照サンプルは現在ブロック周辺の符号化/復号化が完了
した復元サンプルから誘導することができる。
【0292】
複数の参照サンプルラインの中で現在ブロックの参照サンプルラインを識別するインデ
ックス情報をビットストリームによってシグナリングすることができる。一例として、現
在ブロックの参照サンプルラインを特定するためのインデックス情報intra_lum
a_ref_idxをビットストリームによってシグナリングすることができる。前記イ
ンデックス情報はコーディングブロック単位でシグナリングすることができる。
【0293】
複数の参照サンプルラインは、現在ブロックに上端及び/又は左側1番目ライン、2番
目ライン、及び3番目ラインの少なくとも一つを含むことができる。複数の参照サンプル
ラインの中で現在ブロックの上端に隣り合う行及び現在ブロックの左側に隣り合う列から
なる参照サンプルラインを隣接参照サンプルラインといい、その他の参照サンプルライン
を非隣接参照サンプルラインと言うこともできる。
【0294】
表1は候補参照サンプルラインそれぞれに割り当てられるインデックスを示すものであ
る。
【0295】
【表1】
【0296】
現在ブロックの位置、サイズ、形態又は隣接ブロックの予測符号化モードの少なくとも
一つに基づいて現在ブロックの参照サンプルラインを決定することもできる。一例として
、現在ブロックがピクチャ、タイル、スライス又はコーディングツリーユニットの境界に
隣り合う場合、隣接参照サンプルラインを現在ブロックの参照サンプルラインに決定する
ことができる。
【0297】
参照サンプルラインは、現在ブロックの上端に位置する上端参照サンプル及び現在ブロ
ックの左側に位置する左側参照サンプルを含むことができる。上端参照サンプル及び左側
参照サンプルは現在ブロック周辺の復元サンプルから誘導することができる。前記復元サ
ンプルはインループフィルターが適用される前の状態であることができる。
【0298】
ついで、現在ブロックのイントラ予測モードを決定することができる(S2202)。
現在ブロックのイントラ予測モードは非方向性イントラ予測モード又は方向性イントラ予
測モードの少なくとも一つを現在ブロックのイントラ予測モードに決定することができる
。非方向性イントラ予測モードはプラナー及びDCを含み、方向性イントラ予測モードは
左下端対角方向から右上端対角方向まで33個又は65個のモードを含む。
【0299】
図23はイントラ予測モードを示す図である。
【0300】
図23の(a)は35個のイントラ予測モードを示すものであり、図23の(b)は6
7個のイントラ予測モードを示すものである。
【0301】
図23に示したものより多い数又は少ない数のイントラ予測モードを定義することもで
きる。
【0302】
現在ブロックに隣り合う隣接ブロックのイントラ予測モードに基づいてMPM(Mos
t Probable Mode)を設定することができる。ここで、隣接ブロックは、
現在ブロックの左側に隣り合う左側隣接ブロック及び現在ブロックの上端に隣り合う上端
隣接ブロックを含むことができる。
【0303】
MPMリストに含まれるMPMの数は符号化器及び復号化器で既に設定されていること
ができる。一例として、MPMの数は、3個、4個、5個又は6個であることができる。
もしくは、MPMの数を示す情報をビットストリームによってシグナリングすることがで
きる。もしくは、隣接ブロックの予測符号化モード、現在ブロックのサイズ、形態又は参
照サンプルラインインデックスの少なくとも一つに基づいてMPMの数を決定することが
できる。一例として、隣接参照サンプルラインが現在ブロックの参照サンプルラインに決
定された場合にはN個のMPMを用いる反面、非隣接参照サンプルラインが現在ブロック
の参照サンプルラインに決定された場合にはM個のMPMを用いることができる。MはN
より小さい自然数であり、一例として、Nは6、Mは5、4又は3であることができる。
これにより、現在ブロックの参照サンプルラインのインデックスが0であり、MPMフラ
グが真の場合、現在ブロックのイントラ予測モードは6個の候補イントラ予測モードのい
ずれか一つに決定する反面、現在ブロックの参照サンプルラインのインデックスが0より
大きく、MPMフラグが真の場合、現在ブロックのイントラ予測モードは5個の候補イン
トラ予測モードのいずれか一つに決定することができる。
【0304】
もしくは、現在ブロックの参照サンプルラインのインデックスに関係なく固定された個
数(例えば、6個又は5個)のMPM候補を使うこともできる。
【0305】
複数のMPMを含むMPMリストを生成し、現在ブロックのイントラ予測モードと同じ
MPMがMPMリストに含まれているかを示す情報をビットストリームによってシグナリ
ングすることができる。前記情報は1ビットのフラグであり、MPMフラグと言える。前
記MPMフラグが、現在ブロックと同じMPMがMPMリストに含まれていることを示す
場合、MPMの一つを識別するインデックス情報をビットストリームによってシグナリン
グすることができる。一例として、複数のMPMのいずれか一つを特定するインデックス
情報mpm_idxをビットストリームによってシグナリングすることができる。前記イ
ンデックス情報によって特定されたMPMを現在ブロックのイントラ予測モードに設定す
ることができる。前記MPMフラグが、現在ブロックと同じMPMがMPMリストに含ま
れていないことを示す場合、MPMを除いた残余イントラ予測モードのいずれか一つを指
示する残余モード情報をビットストリームによってシグナリングすることができる。残余
モード情報は、MPMを除いた残余イントラ予測モードにインデックスを再び割り当てた
とき、現在ブロックのイントラ予測モードに対応するインデックス値を示す。復号化器は
、MPMを昇順に整列し、残余モード情報をMPMと比較して現在ブロックのイントラ予
測モードを決定することができる。一例として、残余モード情報がMPMと同じかそれよ
り小さい場合、残余モード情報に1を加算して現在ブロックのイントラ予測モードを誘導
することができる。
【0306】
現在ブロックのイントラ予測モードを誘導するとき、MPMの一部と残余モード情報に
対する比較は省略することができる。一例として、MPMの中で非方向性イントラ予測モ
ードであるMPMは比較対象から除くことができる。非方向性イントラ予測モードがMP
Mに設定された場合、残余モード情報は方向性イントラ予測モードを示すことが明らかで
あるので、非方向性イントラ予測モードを除いた残余MPMと残余モード情報との比較に
よって現在ブロックのイントラ予測モードを誘導することができる。非方向性イントラ予
測モードを比較対象から除く代わり、残余モード情報に非方向性イントラ予測モードの数
を加算した後、その結果値を残余MPMと比較することができる。
【0307】
デフォルトモードをMPMに設定する代わり、現在ブロックのイントラ予測モードがデ
フォルトモードであるかを示す情報をビットストリームによってシグナリングすることが
できる。前記情報は1ビットのフラグであり、前記フラグをデフォルトモードフラグと言
える。前記デフォルトモードフラグは、MPMフラグが現在ブロックと同じMPMがMP
Mリストに含まれていることを示す場合に限り、シグナリングすることができる。上述し
たように、デフォルトモードは、プラナー、DC、垂直方向モード又は水平方向モードの
少なくとも一つを含むことができる。一例として、プラナーがデフォルトモードに設定さ
れた場合、デフォルトモードフラグは現在ブロックのイントラ予測モードがプラナーであ
るかを指示することができる。デフォルトモードフラグが現在ブロックのイントラ予測モ
ードがデフォルトモードではないことを示す場合、インデックス情報によって指示される
MPMの一つを現在ブロックのイントラ予測モードに設定することができる。
【0308】
デフォルトモードフラグが用いられる場合、デフォルトモードと同じイントラ予測モー
ドはMPMに設定されないように設定することができる。一例として、デフォルトモード
フラグが現在ブロックのイントラ予測モードがプラナーであるかを指示する場合、プラナ
ーに相当するMPMを除いた5個のMPMを用いて現在ブロックのイントラ予測モードを
誘導することができる。
【0309】
複数のイントラ予測モードがデフォルトモードに設定された場合、デフォルトモードの
いずれか一つを指示するインデックス情報をさらにシグナリングすることができる。現在
ブロックのイントラ予測モードは前記インデックス情報が示すデフォルトモードに設定す
ることができる。
【0310】
現在ブロックの参照サンプルラインのインデックスが0ではない場合にはデフォルトモ
ードを用いることができないように設定することができる。一例として、非隣接参照サン
プルラインが現在ブロックの参照サンプルラインに決定された場合、DCモード又はプラ
ナーモードと同じ非方向性イントラ予測モードを使わないように設定することができる。
これにより、参照サンプルラインのインデックスが0ではない場合にはデフォルトモード
フラグをシグナリングせず、前記デフォルトモードフラグの値を既定義の値(すなわち、
偽)に設定することができる。
【0311】
現在ブロックのイントラ予測モードが決定されれば、決定されたイントラ予測モードに
基づいて現在ブロックに対する予測サンプルを獲得することができる(S2203)。
【0312】
DCモードが選択された場合、参照サンプルの平均値に基づいて現在ブロックに対する
予測サンプルを生成する。具体的には、予測ブロック内の全体サンプルの値は参照サンプ
ルの平均値に基づいて生成することができる。平均値は、現在ブロックの上端に位置する
上端参照サンプル及び現在ブロックの左側に位置する左側参照サンプルの少なくとも一つ
を用いて誘導することができる。
【0313】
現在ブロックの形態によって、平均値を誘導するのに用いられる参照サンプルの数又は
範囲が変わることができる。一例として、現在ブロックが幅が高さより大きい非正方形ブ
ロックである場合、上端参照サンプルのみを用いて平均値を計算することができる。一方
、現在ブロックが幅が高さより小さい非正方形ブロックの場合、左側参照サンプルのみを
用いて平均値を計算することができる。すなわち、現在ブロックの幅及び高さが異なる場
合、長さがより長い側に隣り合う参照サンプルのみを用いて平均値を計算することができ
る。もしくは、現在ブロックの幅と高さの比に基づいて、上端参照サンプルのみを用いて
平均値を計算するか又は左側参照サンプルのみを用いて平均値を計算するかを決定するこ
とができる。
【0314】
プラナーモードが選択された場合、水平方向予測サンプルと垂直方向予測サンプルとを
用いて予測サンプルを獲得することができる。ここで、水平方向予測サンプルは、予測サ
ンプルと同じ水平線上に位置する左側参照サンプル及び右側参照サンプルに基づいて獲得
し、垂直方向予測サンプルは、予測サンプルと同じ垂直線上に位置する上端参照サンプル
及び下端参照サンプルに基づいて獲得する。ここで、右側参照サンプルは、現在ブロック
の右上端コーナーに隣り合う参照サンプルをコピーして生成し、下端参照サンプルは、現
在ブロックの左下端コーナーに隣り合う参照サンプルをコピーして生成することができる
。水平方向予測サンプルは左側参照サンプル及び右側参照サンプルの加重和演算によって
獲得し、垂直方向予測サンプルは上端参照サンプル及び下端参照サンプルの加重和演算に
よって獲得することができる。ここで、各参照サンプルに付与される加重値は予測サンプ
ルの位置によって決定することができる。予測サンプルは水平方向予測サンプル及び垂直
方向予測サンプルの平均演算又は加重和演算によって獲得することができる。加重和演算
を遂行する場合、予測サンプルの位置に基づいて水平方向予測サンプル及び垂直方向予測
サンプルに付与される加重値を決定することができる。
【0315】
方向性予測モードが選択される場合、選択された方向性予測モードの予測方向(又は予
測角度)を示すパラメーターを決定することができる。下記の表2はイントラ予測モード
別にイントラ方向パラメーターintraPredAngを示すものである。
【0316】
【表2】
【0317】
表2は、35個のイントラ予測モードが定義されているとき、インデックスが2~34
のいずれか一つであるイントラ予測モードのそれぞれのイントラ方向パラメーターを示す
。33個より多い方向性イントラ予測モードが定義されている場合、表2をより細分化し
て方向性イントラ予測モードのそれぞれのイントラ方向パラメーターを設定することがで
きる。
【0318】
現在ブロックの上端参照サンプル及び左側参照サンプルを一列に配列した後、イントラ
方向パラメーターの値に基づいて予測サンプルを獲得することができる。ここで、イント
ラ方向パラメーターの値が負数の場合、左側参照サンプルと上端参照サンプルを一列に配
列することができる。
【0319】
図24及び図25は参照サンプルを一列に配列する一次元配列の例示を示す図である。
【0320】
図24は参照サンプルを垂直方向に配列する垂直方向一次元配列を例示するものであり
図25は参照サンプルを水平方向に配列する水平方向一次元配列を例示するものである
。35個のイントラ予測モードが定義された場合を仮定して図24及び図25の実施例を
説明する。
【0321】
イントラ予測モードインデックスが11~18のいずれか一つである場合、上端参照サ
ンプルを反時計方向に回転した水平方向一次元配列を適用し、イントラ予測モードインデ
ックスが19~25のいずれか一つである場合、左側参照サンプルを時計方向に回転した
垂直方向一次元配列を適用することができる。参照サンプルを一列に配列するに際して、
イントラ予測モード角度を考慮することができる。
【0322】
イントラ方向パラメーターに基づいて参照サンプル決定パラメーターを決定することが
できる。参照サンプル決定パラメーターは参照サンプルを特定するための参照サンプルイ
ンデックス及び参照サンプルに適用される加重値を決定するための加重値パラメーターを
含むことができる。
【0323】
参照サンプルインデックスiIdx及び加重値パラメーターifactはそれぞれ次の
式4及び5によって獲得することができる。
【0324】
[数4]
iIdx=(y+1)*Pang/32
【0325】
[数5]
fact=[(y+1)*Pang]&31
【0326】
式4及び5で、Pangはイントラ方向パラメーターを示す。参照サンプルインデック
スiIdxによって特定される参照サンプルは整数ペル(Integer pel)に相
当する。
【0327】
予測サンプルを誘導するために、少なくとも一つ以上の参照サンプルを特定することが
できる。具体的には、予測モードの勾配を考慮して、予測サンプルを誘導するのに用いら
れる参照サンプルの位置を特定することができる。一例として、参照サンプルインデック
スiIdxを用いて、予測サンプルを誘導するのに用いられる参照サンプルを特定するこ
とができる。
【0328】
ここで、イントラ予測モードの勾配が一つの参照サンプルでは表現されない場合、複数
の参照サンプルを補間して予測サンプルを生成することができる。一例として、イントラ
予測モードの勾配が予測サンプルと第1参照サンプルとの間の勾配と予測サンプルと第2
参照サンプルとの間の勾配との間の値である場合、第1参照サンプル及び第2参照サンプ
ルを補間して予測サンプルを獲得することができる。すなわち、イントラ予測角度による
アンギュラライン(Angular Line)が整数ペルに位置する参照サンプルを通
らない場合、前記アンギュララインが通る位置の左右又は上下に隣接して位置する参照サ
ンプルを補間して予測サンプルを獲得することができる。
【0329】
下記の式6は参照サンプルに基づいて予測サンプルを獲得する例を示すものである。
【0330】
[数6]
P(x,y)=((32-ifact)/32)*Ref_1D(x+iIdx+1)
+(ifact/32)*Ref_1D(x+iIdx+2)
【0331】
式6で、Pは予測サンプルを示し、Ref_1Dは一次元配列された参照サンプルのい
ずれか一つを示す。ここで、参照サンプルの位置は予測サンプルの位置(x、y)及び参
照サンプルインデックスiIdxによって決定することができる。
【0332】
イントラ予測モードの勾配が一つの参照サンプルで表現することができる場合、加重値
パラメーターifactは0に設定する。これにより、式6は次の式7のように簡素化す
ることができる。
【0333】
[数7]
P(x,y)=Ref_1D(x+iIdx+1)
【0334】
複数のイントラ予測モードに基づいて現在ブロックに対するイントラ予測を遂行するこ
ともできる。一例として、予測サンプル別にイントラ予測モードを誘導し、それぞれの予
測サンプルに割り当てられたイントラ予測モードに基づいて予測サンプルを誘導すること
ができる。
【0335】
もしくは、領域別にイントラ予測モードを誘導し、それぞれの領域に割り当てられたイ
ントラ予測モードに基づいて各領域に対するイントラ予測を遂行することができる。ここ
で、前記領域は少なくとも一つのサンプルを含むことができる。前記領域のサイズ又は形
態の少なくとも一つは現在ブロックのサイズ、形態又はイントラ予測モードの少なくとも
一つに基づいて適応的に決定することができる。もしくは、符号化器及び復号化器で現在
ブロックのサイズ又は形態とは独立的に領域のサイズ又は形態の少なくとも一つが既に定
義されていることができる。
【0336】
図26は方向性イントラ予測モードがx軸に平行な直線に対して形成する角度を例示す
る図である。
【0337】
図26に示した例のように、方向性予測モードは左下端対角方向と右上端対角方向との
間に存在することができる。x軸と方向性予測モードが形成する角度で説明すれば、方向
性予測モードは、45度(左下端対角方向)と-135度(右上端対角方向)との間に存
在することができる。
【0338】
現在ブロックが非正方形の場合、現在ブロックのイントラ予測モードによって、イント
ラ予測角度に沿うアンギュラライン上に位置する参照サンプルの中でより予測サンプルに
近い参照サンプルの代わりに、より予測サンプルから遠い参照サンプルを用いて予測サン
プルを誘導する場合が発生することができる。
【0339】
図27は現在ブロックが非正方形の場合、予測サンプルが獲得される様相を示す図であ
る。
【0340】
一例として、図27の(a)に示した例のように、現在ブロックが幅が高さより大きい
非正方形であり、現在ブロックのイントラ予測モードが0度から45度との間の角度を有
する方向性イントラ予測モードであると仮定する。この場合、現在ブロックの右側列付近
の予測サンプルAを誘導するとき、前記角度に沿うアンギュラーモード上に位置する参照
サンプルの中で前記予測サンプルに近い上端参照サンプルTの代わりに、前記予測サンプ
ルから遠い左側参照サンプルLを用いる場合が発生することができる。
【0341】
他の例として、図27の(b)に示した例のように、現在ブロックが高さが幅より大き
い非正方形であり、現在ブロックのイントラ予測モードが-90度と-135度との間の
方向性イントラ予測モードであると仮定する。この場合、現在ブロックの下側行付近の予
測サンプルAを誘導するとき、前記角度に沿うアンギュラーモード上に位置する参照サン
プルの中で前記予測サンプルに近い左側参照サンプルLの代わりに、前記予測サンプルか
ら遠い上端参照サンプルTを用いる場合が発生することができる。
【0342】
このような問題点を解消するために、現在ブロックが非正方形の場合、現在ブロックの
イントラ予測モードを反対方向のイントラ予測モードに置換することができる。これによ
り、非正方形ブロックに対しては、図23に示した方向性予測モードより大きいか又は小
さい角度を有する方向性予測モードを使うことができる。このような方向性イントラ予測
モードをワイドアングルイントラ予測モードに定義することができる。ワイドアングルイ
ントラ予測モードは45度から-135度の範囲に属しない方向性イントラ予測モードを
示す。
【0343】
図28はワイドアングルイントラ予測モードを示す図である。
【0344】
図28に示した例で、インデックスが-1から-14までのイントラ予測モード及びイ
ンデックスが67から80までのイントラ予測モードがワイドアングルイントラ予測モー
ドを示す。
【0345】
図28では角度が45度より大きい14個のワイドアングルイントラ予測モード(-1
から-14)及び角度が-135度より小さい14個のワイドアングルイントラ予測モー
ド(67から80)を例示するが、これより多い数又は少ない数のワイドアングルイント
ラ予測モードを定義することができる。
【0346】
ワイドアングルイントラ予測モードが使われる場合、上端参照サンプルの長さは2W+
1に設定し、左側参照サンプルの長さは2H+1に設定することができる。
【0347】
ワイドアングルイントラ予測モードを使うことにより、図28の(a)に示したサンプ
ルAは参照サンプルTを用いて予測し、図28の(b)に示したサンプルAは参照サンプ
ルLを用いて予測することができる。
【0348】
既存イントラ予測モードとN個のワイドアングルイントラ予測モードを合わせて総67
+N個のイントラ予測モードを使うことができる。一例として、表3は20個のワイドア
ングルイントラ予測モードが定義された場合、イントラ予測モードのイントラ方向パラメ
ーターを示すものである。
【0349】
【表3】
【0350】
現在ブロックが非正方形であり、S2502段階で獲得された現在ブロックのイントラ
予測モードが変換範囲に属する場合、現在ブロックのイントラ予測モードをワイドアング
ルイントラ予測モードに変換することができる。前記変換範囲は、現在ブロックのサイズ
、形態又は比の少なくとも一つに基づいて決定することができる。ここで、前記の比は現
在ブロックの幅と高さとの間の比を示すことができる。
【0351】
現在ブロックが幅が高さより大きい非正方形の場合、変換範囲は右上端対角方向のイン
トラ予測モードインデックス(例えば、66)から(右上端対角方向のイントラ予測モー
ドのインデックス-N)までに設定することができる。ここで、Nは現在ブロックの比に
基づいて決定することができる。現在ブロックのイントラ予測モードが変換範囲に属する
場合、前記イントラ予測モードをワイドアングルイントラ予測モードに変換することがで
きる。前記変換は前記イントラ予測モードから既定義の値を差し引くことであることがで
き、既定義の値はワイドアングルイントラ予測モードを除いたイントラ予測モードの総数
(例えば、67)であることができる。
【0352】
前記実施例によって、66番と53番との間のイントラ予測モードは、それぞれ-1番
と-14番との間のワイドアングルイントラ予測モードに変換することができる。
【0353】
現在ブロックが高さが幅より大きい非正方形の場合、変換範囲は左下端対角方向のイン
トラ予測モードインデックス(例えば、2)から(左下端対角方向のイントラ予測モード
のインデックス+M)までに設定することができる。ここで、Mは現在ブロックの比に基
づいて決定することができる。現在ブロックのイントラ予測モードが変換範囲に属する場
合、前記イントラ予測モードをワイドアングルイントラ予測モードに変換することができ
る。前記変換は前記イントラ予測モードに既定義の値を加算することであることができ、
既定義の値はワイドアングルイントラ予測モードを除いた方向性イントラ予測モードの総
数(例えば、65)であることができる。
【0354】
前記実施例によって、2番と15番との間のイントラ予測モードのそれぞれは67番と
80番との間のワイドアングルイントラ予測モードに変換することができる。
【0355】
以下、変換範囲に属するイントラ予測モードをワイドアングルイントラ代替予測モード
という。
【0356】
変換範囲は現在ブロックの比に基づいて決定することができる。一例として、表4及び
表5は、それぞれワイドアングルイントラ予測モードを除き、35個のイントラ予測モー
ドが定義された場合と67個のイントラ予測モードが定義された場合との変換範囲を示す
【0357】
【表4】
【0358】
【表5】
【0359】
表4及び表5に示した例のように、現在ブロックの比によって、変換範囲に含まれるワ
イドアングルイントラ代替予測モードの数が異なることができる。
【0360】
現在ブロックの比をより細分化して次の表6のように変換範囲を設定することもできる
【0361】
【表6】
【0362】
非隣接参照サンプルラインが現在ブロックの参照サンプルラインに決定された場合、又
は複数の参照サンプルラインのいずれか一つを選択するマルチラインイントラ予測符号化
方法が使用された場合、ワイドアングルイントラ予測モードが使われないように設定する
ことができる。すなわち、現在ブロックが非正方形であり、現在ブロックのイントラ予測
モードが変換範囲に属する場合であっても、現在ブロックのイントラ予測モードをワイド
アングルイントラ予測モードに変換しないことができる。
【0363】
もしくは、現在ブロックのイントラ予測モードがワイドアングルイントラ予測モードに
決定された場合、非隣接参照サンプルラインを現在ブロックの参照サンプルラインとして
利用できないものに設定するか、又は複数の参照サンプルラインのいずれか一つを選択す
るマルチラインイントラ予測符号化方法が使われないように設定することができる。マル
チラインイントラ予測符号化方法が使われない場合、隣接参照サンプルラインを現在ブロ
ックの参照サンプルラインに決定することができる。
【0364】
ワイドアングルイントラ予測モードが使われない場合、refW及びrefHをnTb
WとnTbHの和に設定することができる。これにより、左上端参照サンプルを除き、現
在ブロックとの距離がiである非隣接レファレンスサンプルは(nTbW+nTbH+o
ffsetX[i])個の上端参照サンプルと(nTbW+nTbH+offsetY[
i])個の左側参照サンプルとを含むことができる。すなわち、現在ブロックとの距離が
iである非隣接レファレンスサンプルは(2nTbW+2nTbH+offsetX[i
]+offsetY[i]+1)個の参照サンプルを含むことができる。例えば、whR
atioの値が1より大きい場合には、offsetXの値をoffsetYの値より大
きく設定することができる。一例として、offsetXの値は1に設定し、offse
tYの値は0に設定することができる。一方、whRatioの値が1より小さい場合に
は、offsetXの値よりoffsetYの値を大きく設定することができる。一例と
して、offsetXの値は0に設定し、offsetYの値は1に設定することができ
る。
【0365】
既存のイントラ予測モードに加えてワイドアングルイントラ予測モードを使うことによ
り、ワイドアングルイントラ予測モードを符号化するのに必要なリソースが増加して符号
化効率が低くなることがある。よって、ワイドアングルイントラ予測モードをそのまま符
号化する代わり、ワイドアングルイントラ予測モードに対する代替イントラ予測モードを
符号化して符号化効率を向上させることができる。
【0366】
一例として、現在ブロックが67番のワイドアングルイントラ予測モードを用いて符号
化された場合、67番のワイドアングル代替イントラ予測モードである2番を現在ブロッ
クのイントラ予測モードに符号化することができる。また、現在ブロックが-1番のワイ
ドアングルイントラ予測モードに符号化された場合、-1番のワイドアングル代替イント
ラ予測モードである66番を現在ブロックのイントラ予測モードに符号化することができ
る。
【0367】
復号化器は、現在ブロックのイントラ予測モードを復号化し、復号化されたイントラ予
測モードが変換範囲に含まれるかを判断することができる。復号化されたイントラ予測モ
ードがワイドアングル代替イントラ予測モードの場合、イントラ予測モードをワイドアン
グルイントラ予測モードに変換することができる。
【0368】
もしくは、現在ブロックがワイドアングルイントラ予測モードに符号化された場合、ワ
イドアングルイントラ予測モードをそのまま符号化することもできる。
【0369】
イントラ予測モードの符号化は上述したMPMリストに基づいて遂行することができる
。具体的には、隣接ブロックがワイドアングルイントラ予測モードに符号化された場合、
前記ワイドアングルイントラ予測モードに対応するワイドアングル代替イントラ予測モー
ドに基づいてMPMを設定することができる。
【0370】
原本映像から予測映像を差し引いて残差映像を誘導することができる。ここで、残差映
像を周波数ドメインに変更したとき、周波数成分から高周波成分を除去しても、映像の主
観的画質は大きく落ちない。よって、高周波成分の値を小さく変換するか、又は高周波成
分の値を0に設定すれば、視覚的歪みが大きく発生しないながらも圧縮効率を向上させる
ことができる効果がある。この特性を反映して、残差映像を2次元周波数成分に分解する
ために現在ブロックを変換することができる。前記変換は、DCT(Discrete
Cosine Transform)又はDST(Discrete Sine Tra
nform)などの変換技法を用いて遂行することができる。
【0371】
DCTはコサイン変換を用いて残差映像を2次元周波数成分に分解(又は変換)するも
のであり、DSTはサイン変換を用いて残差映像を2次元周波数成分に分解(又は変換)
するものである。残差映像変換の結果、周波数成分は基底映像で表現することができる。
一例として、N×Nサイズのブロックに対してDCT変換を遂行する場合、N個の基本
パターン成分を獲得することができる。変換によってN×Nサイズのブロックに含まれる
基本パターン成分のそれぞれのサイズを獲得することができる。使用する変換技法によっ
て、基本パターン成分のサイズをDCT係数又はDST係数と言える。
【0372】
変換技法DCTは0ではない低周波成分が多く分布する映像を変換するのに主に用いら
れる。変換技法DSTは高周波成分が多く分布する映像に主に用いられる。
【0373】
DCT又はDST以外の変換技法を使って残差映像を変換することもできる。
【0374】
以下、残差映像を2次元周波数成分に変換することを2次元映像変換と言う。また、変
換結果として獲得された基本パターン成分のサイズを変換係数と言う。一例として、変換
係数はDCT係数又はDST係数を意味することができる。後述する第1変換及び第2変
換が共に適用された場合、変換係数は第2変換の結果として生成された基本パターン成分
のサイズを意味することができる。また、変換スキップが適用された残差サンプルも変換
係数と言う。
【0375】
変換技法はブロック単位で決定することができる。変換技法は、現在ブロックの予測符
号化モード、現在ブロックのサイズ又は現在ブロックの形態の少なくとも一つに基づいて
決定することができる。一例として、現在ブロックがイントラ予測モードに符号化され、
現在ブロックのサイズがN×Nより小さい場合には、変換技法DSTを用いて変換を遂行
することができる。一方、前記条件を満たさない場合、変換技法DCTを用いて変換を遂
行することができる。
【0376】
残差映像の一部ブロックに対しては2次元映像変換を遂行しないこともできる。2次元
映像変換を遂行しないことを変換スキップ(Transform Skip)と言える。
変換スキップは、現在ブロックに第1変換及び第2変換を適用しないことを示す。変換ス
キップが適用された場合、変換が遂行されない残差値を対象として量子化を適用すること
ができる。
【0377】
現在ブロックに変換スキップを許すかは、現在ブロックのサイズ又は形態の少なくとも
一つに基づいて決定することができる。一例として、現在ブロックのサイズが閾値より小
さい場合に限り、変換スキップを適用することができる。閾値は、現在ブロックの幅、高
さ又はサンプル個数の少なくとも一つに係るものであり、32×32などに定義すること
ができる。もしくは、正方形ブロックのみに対して変換スキップを許すことができる。一
例として、32×32、16×16、8×8又は4×4サイズの正方形ブロックに対して
変換スキップを許すことができる。もしくは、サブパーティションイントラ符号化方法が
使われない場合にだけ変換スキップを許すことができる。
【0378】
もしくは、現在ブロックにサブパーティションイントラ符号化方法が適用された場合、
サブパーティション別に変換スキップを適用するかを決定することができる。
【0379】
図29はサブブロック別に変換スキップを適用するかを決定する例を示す図である。
【0380】
複数のサブブロックの一部のみに対して変換スキップを適用することができる。一例と
して、図29に示した例のように、現在ブロックの上端に位置するサブブロックには変換
スキップを適用し、下端に位置するサブブロックには変換スキップを許さないように設定
することができる。
【0381】
変換スキップを許さないサブブロックの変換タイプはビットストリームによってシグナ
リングされる情報に基づいて決定することができる。一例として、後述するtu_mts
_idxに基づいて変換タイプを決定することができる。
【0382】
もしくは、サブブロックのサイズに基づいてサブブロックの変換タイプを決定すること
ができる。一例として、サブブロックの幅が閾値以上であるか及び/又は閾値以下である
かに基づいて水平方向変換タイプを決定し、サブブロックの高さが閾値以上であるか及び
/又は閾値以下であるかに基づいて垂直方向変換タイプを決定することができる。
【0383】
DCT又はDSTを用いて現在ブロックを変換した後、変換された現在ブロックをさら
に変換することができる。ここで、DCT又はDSTに基づく変換を第1変換に定義し、
第1変換が適用されたブロックをさらに変換することを第2変換に定義することができる
【0384】
第1変換は複数の変換コア候補のいずれか一つを用いて遂行することができる。一例と
して、DCT2、DCT8又はDST7のいずれか一つを用いて第1変換を遂行すること
ができる。
【0385】
水平方向及び垂直方向に対して相異なる変換コアを使うこともできる。水平方向の変換
コア及び垂直方向の変換コアの組合せを示す情報をビットストリームによってシグナリン
グすることもできる。
【0386】
第1変換及び第2変換の遂行単位が異なることができる。一例として、8×8ブロック
に対して第1変換を遂行し、変換された8×8ブロックの中で4×4サイズのサブブロッ
クに対して第2変換を遂行することができる。もしくは、4×4サイズの3個のサブブロ
ックに属する変換係数に対して第2変換を遂行することができる。前記3個のサブブロッ
クは、現在ブロックの左上端に位置するサブブロック、前記サブブロックの右側に隣り合
うサブブロック及び前記サブブロックの下端に隣り合うサブブロックを含むことができる
。もしくは、8×8サイズのブロックに対して第2変換を遂行することもできる。
【0387】
第2変換が遂行されない残余領域の変換係数は0に設定することもできる。
【0388】
もしくは、4×4ブロックに対して第1変換を遂行し、変換された4×4ブロックを含
む8×8サイズの領域に対して第2変換を遂行することもできる。
【0389】
第2変換の遂行可否を示す情報をビットストリームによってシグナリングすることがで
きる。一例として、第2変換の遂行可否を示すフラグ、又は第2変換の遂行可否及び第2
変換に用いられる変換カーネルを特定するインデックス情報をシグナリングすることがで
きる。一例として、前記インデックス情報が0のものは、現在ブロックに第2変換が遂行
されないものを示す。一方、前記インデックス情報が0より大きい場合、前記インデック
ス情報によって、第2変換を遂行するための変換カーネルを決定することができる。
【0390】
もしくは、水平方向変換コアと垂直方向変換コアとが同一であるかに基づいて第2変換
の遂行可否を決定することができる。一例として、水平方向変換コアと垂直方向変換コア
とが同一である場合にだけ第2変換を遂行することができる。もしくは、水平方向変換コ
アと垂直方向変換コアとが異なる場合にだけ第2変換を遂行することができる。
【0391】
もしくは、水平方向の変換及び垂直方向の変換が既定義の変換コアを用いる場合に限り
、第2変換を許すことができる。一例として、水平方向の変換及び垂直方向の変換にDC
T2変換コアが使用された場合、第2変換を許すことができる。もしくは、現在ブロック
にサブパーティションイントラ符号化方法が適用された場合には、水平方向の変換及び垂
直方向の変換にDCT2変換コアが使用された場合に限り、第2変換を許すことができる
【0392】
もしくは、現在ブロックの非ゼロ変換係数の個数に基づいて第2変換の遂行可否を決定
することができる。一例として、現在ブロックの非ゼロ変換係数が閾値より小さいか同じ
場合、第2変換を使わないように設定し、現在ブロックの非ゼロ変換係数が閾値より大き
い場合、第2変換を使うように設定することができる。現在ブロックがイントラ予測で符
号化された場合に限り、第2変換を使うように設定することもできる。
【0393】
もしくは、現在ブロックの最後の非ゼロ変換係数の位置に基づいて第2変換の遂行可否
を決定することができる。一例として、現在ブロックの最後の非ゼロ変換係数のx軸座標
又はy軸座標の少なくとも一つが閾値より大きい場合、又は現在ブロックの最後の非ゼロ
変換係数が属するサブブロックのx軸座標又はy軸座標の少なくとも一つが閾値より大き
い場合、第2変換を遂行しないことができる。ここで、閾値は符号化器及び復号化器で既
に定義されていることができる。もしくは、現在ブロックのサイズ又は形態に基づいて閾
値を決定することができる。
【0394】
もしくは、現在ブロックにDC成分の変換係数のみが存在する場合、第2変換を遂行し
ないように設定することができる。ここで、DC成分は現在ブロック内の左上端位置の変
換係数を示す。
【0395】
もしくは、現在ブロックにマトリックスに基づくイントラ予測が適用された場合、第2
変換を遂行しないように設定することができる。
【0396】
現在ブロックの変換タイプを示す情報をビットストリームによってシグナリングするこ
とができる。前記情報は水平方向に対する変換タイプ及び垂直方向に対する変換タイプの
組合せの一つを示すインデックス情報tu_mts_idxであることができる。
【0397】
インデックス情報tu_mts_idxによって特定される変換タイプ候補に基づいて
、垂直方向に対する変換コア及び水平方向に対する変換コアを決定することができる。表
7はtu_mts_idxによる変換タイプの組合せを示すものである。
【0398】
【表7】
【0399】
変換タイプはDCT2、DST7又はDCT8のいずれか一つに決定することができる
。もしくは、変換スキップを変換タイプ候補に挿入することもできる。
【0400】
表7が用いられる場合、tu_mts_idxが0であれば、水平方向と垂直方向にD
CT2を適用することができる。tu_mts_idxが2であれば、水平方向にDCT
8を適用し、垂直方向にDCT7を適用することができる。
【0401】
サブパーティションイントラ符号化方法が適用された場合、サブブロックの変換コアを
独立的に決定することができる。一例として、サブブロックごとに変換タイプ組合せ候補
を特定するための情報を符号化してシグナリングすることができる。よって、サブブロッ
クの変換コアが互いに異なることができる。
【0402】
もしくは、サブブロックが同じ変換タイプを使うこともできる。この場合、変換タイプ
組合せ候補を特定するtu_mts_idxは一番目サブブロックのみに対してシグナリ
ングすることができる。もしくは、コーディングブロックレベルでtu_mts_idx
をシグナリングし、サブブロックの変換タイプはコーディングブロックレベルでシグナリ
ングされるtu_mts_idxを参照して決定することができる。もしくは、サブブロ
ックの一つのサイズ、形態又はイントラ予測モードの少なくとも一つに基づいて、変換タ
イプを決定し、決定された変換タイプがすべてのサブブロックのために使われるように設
定することもできる。
【0403】
図30はサブブロックが同じ変換タイプを使う例を示す図である。
【0404】
コーディングブロックが水平方向に分割された場合、コーディングブロックの上端に位
置するサブブロック(Sub-CU0)及び下端に位置するサブブロック(Sub-CU
1)の変換タイプを同一に設定することができる。一例として、図30の(a)に示した
例のように、上端サブブロックに対してシグナリングされるtu_mts_idxに基づ
いて水平方向タイプ及び垂直変換タイプが決定されれば、決定された変換タイプを下端サ
ブブロックにも適用することができる。
【0405】
コーディングブロックが垂直方向に分割された場合、コーディングブロックの左側に位
置するサブブロック(Sub-CU0)及び右側に位置するサブブロック(Sub-CU
1)の変換タイプを同一に設定することができる。一例として、図30の(b)に示した
例のように、左側サブブロックに対してシグナリングされるtu_mts_idxに基づ
いて水平方向タイプ及び垂直変換タイプが決定されれば、決定された変換タイプを右側サ
ブブロックにも適用することができる。
【0406】
現在ブロックのサイズ、形態、非ゼロ係数の個数、2次変換の遂行可否又はサブパーテ
ィションイントラ符号化方法の適用可否の少なくとも一つに基づいてインデックス情報の
符号化可否を決定することができる。一例として、現在ブロックにサブパーティションイ
ントラ符号化方法が適用された場合、又は非ゼロ係数の個数が閾値と同じかそれより小さ
い場合、インデックス情報のシグナリングを省略することができる。インデックス情報の
シグナリングが省略された場合、現在ブロックにはデフォルト変換タイプを適用すること
ができる。
【0407】
デフォルト変換タイプはDCT2又はDST7の少なくとも一つを含むことができる。
デフォルト変換タイプが複数の場合、現在ブロックのサイズ、形態、イントラ予測モード
、2次変換の遂行可否又はサブパーティションイントラ符号化方法の適用可否の少なくと
も一つを考慮して、複数のデフォルト変換タイプの一つを選択することができる。一例と
して、現在ブロックの幅が既設定の範囲に属するかに基づいて、複数の変換タイプの一つ
を水平方向変換タイプに決定し、現在ブロックの高さが既設定の範囲に属するかに基づい
て、複数の変換タイプの一つを垂直方向変換タイプに決定することができる。もしくは、
現在ブロックのサイズ、形態、イントラ予測モード又は2次変換が遂行されたかによって
デフォルトモードを異なるように決定することができる。
【0408】
もしくは、現在ブロックにDC成分の変換係数のみが存在する場合、水平方向変換タイ
プ及び垂直方向変換タイプをデフォルト変換タイプに設定することができる。一例として
、現在ブロックにDC成分の変換係数のみが存在する場合、水平方向変換タイプ及び垂直
方向変換タイプはDCT2に設定することができる。
【0409】
閾値は現在ブロックのサイズ又は形態に基づいて決定することができる。一例として、
現在ブロックのサイズが32×32より小さいか同じ場合には閾値を2に設定し、現在ブ
ロックが32×32より大きい場合には(例えば、現在ブロックが32×64又は64×
32サイズのコーディングブロックの場合)、閾値を4に設定することができる。
【0410】
複数のルックアップテーブルが符号化器/復号化器に既に保存されていることができる
。複数のルックアップテーブルは、変換タイプ組合せ候補に割り当てられるインデックス
値、変換タイプ組合せ候補の種類又は変換タイプ組合せ候補の数の少なくとも一つが異な
ることができる。
【0411】
現在ブロックのサイズ、形態、予測符号化モード、イントラ予測モード、2次変換の適
用可否又は隣接ブロックに変換スキップが適用されたかの少なくとも一つに基づいて、現
在ブロックに対するルックアップテーブルを選択することができる。
【0412】
一例として、現在ブロックのサイズが4×4以下の場合又は現在ブロックがインター予
測で符号化された場合には、第1ルックアップテーブルを用い、現在ブロックのサイズが
4×4より大きい場合又は現在ブロックがイントラ予測で符号化された場合には第2ルッ
クアップテーブルを用いることができる。
【0413】
もしくは、複数のルックアップテーブルのいずれか一つを示す情報をビットストリーム
によってシグナリングすることができる。復号化器は、前記情報に基づいて現在ブロック
に対するルックアップテーブルを選択することができる。
【0414】
他の例として、現在ブロックのサイズ、形態、予測符号化モード、イントラ予測モード
、2次変換の適用可否又は隣接ブロックに変換スキップが適用されたかの少なくとも一つ
に基づいて、変換タイプ組合せ候補に割り当てられるインデックスを適応的に決定するこ
とができる。一例として、現在ブロックのサイズが4×4の場合に変換スキップに割り当
てられるインデックスが現在ブロックのサイズが4×4より大きい場合に変換スキップに
割り当てられるインデックスより小さい値を有することができる。具体的には、現在ブロ
ックのサイズが4×4の場合、変換スキップにインデックス0を割り当て、現在ブロック
が4×4より大きく16×16以下の場合、変換スキップに0より大きいインデックス(
例えば、インデックス1)を割り当てることができる。現在ブロックが16×16より大
きい場合、変換スキップのインデックスに最大値(例えば、5)を割り当てることができ
る。
【0415】
もしくは、現在ブロックがインター予測で符号化された場合、変換スキップにインデッ
クス0を割り当てることができる。現在ブロックがイントラ予測で符号化された場合、変
換スキップに0より大きいインデックス(例えば、インデックス1)を割り当てることが
できる。
【0416】
もしくは、現在ブロックがインター予測で符号化された4×4サイズのブロックの場合
、変換スキップにインデックス0を割り当てることができる。一方、現在ブロックがイン
ター予測で符号化しなかったか、又は現在ブロックが4×4より大きい場合、変換スキッ
プに0より大きい値のインデックス(例えば、インデックス1)を割り当てることができ
る。
【0417】
表7に列挙した変換タイプ組合せ候補と異なる変換タイプ組合せ候補を定義して使うこ
ともできる。一例として、水平方向変換又は垂直方向変換のいずれか一方に変換スキップ
を適用し、他方にはDCT2、DCT8又はDST7などの変換コアが適用される変換タ
イプ組合せ候補を用いることができる。ここで、現在ブロックのサイズ(例えば、幅及び
/又は高さ)、形態、予測符号化モード又はイントラ予測モードの少なくとも一つに基づ
いて水平方向又は垂直方向に対する変換タイプ候補として変換スキップを使うかを決定す
ることができる。
【0418】
現在ブロックの変換タイプを決定するためのインデックス情報が明示的にシグナリング
されるかを示す情報をビットストリームによってシグナリングすることができる。一例と
して、シーケンスレベルで、イントラ予測で符号化されたブロックに対して明示的な変換
タイプの決定が許されるかを示す情報sps_explicit_intra_mts_
flag及び/又はインター予測で符号化されたブロックに対して明示的な変換タイプの
決定が許されるかを示す情報sps_explicit_inter_mts_flag
をシグナリングすることができる。
【0419】
明示的な変換タイプの決定が許される場合、ビットストリームによってシグナリングさ
れるインデックス情報tu_mts_idxに基づいて現在ブロックの変換タイプを決定
することができる。一方、明示的な変換タイプの決定が許されない場合、現在ブロックの
サイズ、形態、サブブロック単位の変換が許されるか、0ではない変換係数を含むサブブ
ロックの位置、第2変換が遂行されるか又はサブパーティションイントラ符号化方法の適
用可否の少なくとも一つに基づいて変換タイプを決定することができる。一例として、現
在ブロックの水平方向変換タイプは現在ブロックの幅に基づいて決定し、現在ブロックの
垂直方向変換タイプは現在ブロックの高さに基づいて決定することができる。例えば、現
在ブロックの幅が4より小さいか16より大きい場合、水平方向の変換タイプはDCT2
に決定することができる。そうではない場合、水平方向の変換タイプはDST7に決定す
ることができる。現在ブロックの高さが4より小さいか16より大きい場合、垂直方向の
変換タイプはDCT2に決定することができる。そうではない場合、垂直方向の変換タイ
プはDST7に決定することができる。ここで、水平方向の変換タイプ及び垂直方向の変
換タイプを決定するために、幅及び高さと比較される閾値は現在ブロックのサイズ、形態
又はイントラ予測モードの少なくとも一つに基づいて決定することができる。
【0420】
もしくは、現在ブロックが高さ及び幅が同一である正方形の場合、水平方向変換タイプ
及び垂直方向変換タイプを同じに設定する反面、現在ブロックが高さと幅とが異なる非正
方形の場合、水平方向変換タイプ及び垂直方向変換タイプを異なるように設定することが
できる。一例として、現在ブロックの幅が高さより大きい場合には、水平方向の変換タイ
プをDST7に決定し、垂直方向の変換タイプをDCT2に決定することができる。現在
ブロックの高さが幅より大きい場合には、垂直方向の変換タイプをDST7に決定し、水
平方向の変換タイプをDCT2に決定することができる。
【0421】
変換タイプ候補の数及び/又は種類又は変換タイプ組合せ候補の数及び/又は種類は明
示的な変換タイプの決定が許されるかによって異なることができる。一例として、明示的
な変換タイプの決定が許される場合、DCT2、DST7及びDCT8を変換タイプ候補
として用いることができる。これにより、水平方向変換タイプ及び垂直方向変換タイプの
それぞれをDCT2、DST8又はDCT8に設定することができる。明示的な変換タイ
プの決定が許されない場合、DCT2及びDST7のみを変換タイプ候補として用いるこ
とができる。よって、水平方向変換タイプ及び垂直方向変換タイプのそれぞれはDCT2
又はDST7に決定することができる。
【0422】
復号化器は、第2変換の逆変換(第2逆変換)を遂行し、その遂行結果に第1変換の逆
変換(第1逆変換)を遂行することができる。前記第2逆変換及び第1逆変換遂行の結果
、現在ブロックに対する残差信号を獲得することができる。
【0423】
符号化器で変換及び量子化を遂行すれば、復号化器は逆量子化及び逆変換によって残差
ブロックを獲得することができる。復号化器は、予測ブロックと残差ブロックとを合わせ
て現在ブロックに対する復元ブロックを獲得することができる。
【0424】
現在ブロックの復元ブロックが獲得されれば、インループフィルタリング(In-lo
op filtering)によって量子化及び符号化過程で発生する情報の損失を減ら
すことができる。インループフィルターは、デブロッキングフィルター(Deblock
ing filter)、サンプル適応的オフセットフィルター(Sample Ada
ptive Offset filter、SAO)又は適応的ループフィルター(Ad
aptive Loop Filter、ALF)の少なくとも一つを含むことができる
。以下、インループフィルターが適用される前の復元ブロックを第1復元ブロックといい
、インループフィルターが適用された後の復元ブロックを第2復元ブロックと言う。
【0425】
第1復元ブロックにデブロッキングフィルター、SAO又はALFの少なくとも一つを
適用して第2復元ブロックを獲得することができる。ここで、SAO又はALFはデブロ
ッキングフィルターが適用された後に適用することができる。
【0426】
デブロッキングフィルターはブロック単位で量子化を遂行することによって発生するブ
ロックの境界での画質劣化(Blocking Artifact)を緩和させるための
ものである。デブロッキングフィルターを適用するために、第1復元ブロックと隣接復元
ブロックとの間のブロック強度(Blocking Strength、BS)を決定す
ることができる。
【0427】
図31はブロック強度を決定する過程を示すフローチャートである。
【0428】
図31に示した例で、Pは第1復元ブロックを示し、Qは隣接復元ブロックを示す。こ
こで、隣接復元ブロックは現在ブロックの左側又は上端に隣り合うものであることができ
る。
【0429】
図31に示した例では、P及びQの予測符号化モード、0ではない変換係数が含まれて
いるか、同じ参照ピクチャを用いてインター予測されたか又は動きベクターの差分値が閾
値以上であるかを考慮してブロック強度を決定するものを示した。
【0430】
ブロック強度に基づいて、デブロッキングフィルターの適用可否を決定することができ
る。一例として、ブロック強度が0の場合にはフィルタリングを遂行しないことができる
【0431】
SAOは周波数領域で量子化を遂行することによって発生するリンギング現象(Rin
ging Artifact)を緩和させるためのものである。SAOは第1復元映像の
パターンを考慮して決定されるオフセットを加算又は減算することで遂行することができ
る。オフセットの決定方法は、エッジオフセット(Edge Offset、EO)又は
バンドオフセット(Band Offset)を含む。EOは周辺画素のパターンによっ
て現在サンプルのオフセットを決定する方法を示す。BOは領域内の類似した明るさ値を
有する画素の集合に対して共通のオフセットを適用する方法を示す。具体的には、画素の
明るさを32個の均等な区間に分けて、類似した明るさ値を有する画素を一つの集合に設
定することができる。一例として、32個のバンドの中で隣接した4個のバンドを一グル
ープに設定し、4個バンドに属するサンプルには同じオフセット値を適用することができ
る。
【0432】
ALFは第1復元映像又はデブロッキングフィルターが適用された復元映像に既定義の
サイズ/形状のフィルターを適用して第2復元映像を生成する方法である。下記の式8は
ALFの適用例を示す。
【0433】
【数8】
【0434】
ピクチャ、コーディングツリーユニット、コーディングブロック、予測ブロック又は変
換ブロック単位で既定義のフィルター候補のいずれか一つを選択することができる。それ
ぞれのフィルター候補はサイズ又は形状のいずれか一つが異なることができる。
【0435】
図32は既定義のフィルター候補を示す。
【0436】
図32に示した例のように、5×5、7×7又は9×9サイズのダイヤモンド形の少な
くとも一つを選択することができる。
【0437】
クロマ成分に対しては5×5サイズのダイヤモンド形のみを使うことができる。
【0438】
パノラミックビデオ、360度ビデオ又は4K/8K UHD(Ultra High
Definition)映像などの高解像度映像の実時間又は低遅延符号化のために一
つのピクチャを複数の領域に分け、複数領域を並列に符号化/復号化する方案を考慮する
ことができる。具体的には、処理目的によって、ピクチャをタイル又はスライス(又はタ
イルグループ)に分割することができる。
【0439】
タイルは並列符号化/復号化の基本単位を示す。各タイルは並列処理されることができ
る。タイルは長方形を有することができる。もしくは、非長方形のタイルを許すこともで
きる。
【0440】
非長方形のタイルの許容可否又は非長方形のタイルが存在するかを示す情報をビットス
トリームによってシグナリングすることができる。
【0441】
タイルの符号化/復号化の際、他のタイルのデータは用いないように設定することがで
きる。タイル間の符号化/復号化従属性を除去してタイルの並列処理を支援することがで
きる。具体的には、タイル単位でCABAC(Context adaptive Bi
nary Arithmetic Coding)コンテキストの確率テーブルを初期化
することができ、タイルの境界ではインループフィルターが適用されないように設定する
ことができる。また、他のタイルにあるデータを動きベクター誘導のための候補として使
わないことができる。例えば、他のタイルにあるデータは、マージ候補、動きベクター予
測候補(AMVP候補)又はモーション情報候補に用いられないように設定することがで
きる。また、他のタイルにあるデータをシンボルのコンテキスト計算に用いないように設
定することができる。
【0442】
スライスヘッダーを介して映像符号化/復号化情報をシグナリングすることができる。
スライスヘッダーを介してシグナリングされる情報はスライスに含まれるコーディングツ
リーユニット又はタイルに共通して適用することができる。スライスをタイルグループと
言うこともできる。
【0443】
図33は本発明の一実施例によるピクチャ分割方法を示す図である。
【0444】
まず、現在ピクチャを複数の処理単位に分割するかを決定することができる(S331
0)。ここで、処理単位はタイル又はスライスの少なくとも一つを含むことができる。一
例として、現在ピクチャが複数のタイル又はスライスに分割されるかを示すシンタックス
no_pic_partition_flagをビットストリームによってシグナリング
することができる。シンタックスno_pic_partition_flagの値が0
のものは、現在ピクチャが少なくとも一つのタイル又は少なくとも一つのスライスに分割
されるものを示す。一方、シンタックスno_pic_partiton_flagの値
が1のものは、現在ピクチャが複数のタイル又は複数のスライスに分割されないものを示
す。
【0445】
現在ピクチャが複数の処理単位に分割されないものに決定される場合、現在ピクチャの
分割過程を終了することができる。この場合、現在ピクチャは一つのタイル及び一つのス
ライス(又はタイルグループ)からなるものに理解することができる。
【0446】
もしくは、ピクチャに複数のタイルが存在するかを示す情報をビットストリームによっ
てシグナリングすることもできる。前記情報は、ピクチャに複数のタイルが存在するかを
示す1ビットのフラグ又はピクチャ内のタイルの数を特定する情報の少なくとも一つを含
むことができる。
【0447】
現在ピクチャが複数の処理単位に分割されるものに決定される場合、ビットストリーム
によってタイル分割情報をシグナリングすることができる。前記シグナリングされたタイ
ル分割情報に基づいてピクチャを少なくとも一つのタイルに分割することができる(S3
320)。
【0448】
現在ピクチャが複数のタイルに分割された場合、複数のタイルを併合するか、又は一つ
のタイルを分割することにより、スライスを決定することができる(S3330)。
【0449】
以下、本発明によるタイル分割方法及びスライス決定方法について詳細に説明する。
【0450】
図34はピクチャが複数のタイルに分割された例を示す。
【0451】
タイルは少なくとも一つのコーディングツリーユニットを含むことができる。タイルの
境界はコーディングツリーユニットの境界と一致するように設定することができる。すな
わち、一つのコーディングツリーユニットが複数に分割される分割形態は許さないことが
できる。
【0452】
ピクチャを複数のタイルに分割するとき、隣接したタイルの高さ又は隣接したタイルの
幅が同じ値を有するように設定することができる。
【0453】
一例として、図34に示した例のように、同じタイル行に属するタイルの高さ及び/又
は同じタイル列に属するタイルの幅は同じに設定することができる。同じタイル行に属す
るタイルを水平方向タイルセットといい、同じタイル列に属するタイルを垂直方向タイル
セットと言うこともできる。
【0454】
もしくは、符号化/復号化しようとするタイルの幅及び/又は高さが以前タイルの幅及
び/又は高さと同じに設定されるかを示す情報をシグナリングすることもできる。
【0455】
ピクチャの分割形態を示す情報をビットストリームによってシグナリングすることがで
きる。前記情報は、ピクチャパラメーターセット、シーケンスパラメーターセット又はス
ライスヘッダーを介して符号化してシグナリングすることができる。
【0456】
ピクチャの分割形態を示す情報は、タイルが均等なサイズに分割されるかを示す情報、
タイル列の個数を示す情報又はタイル行の個数を示す情報の少なくとも一つを含むことが
できる。ここで、タイル列の個数は垂直方向タイルセットの数を示し、タイル行の個数は
水平方向タイルセットの数を示す。
【0457】
タイルが均等なサイズに分割されるかを示す情報は1ビットのフラグuniform_
spacing_flagであることができる。ピクチャが均等なサイズのタイルに分割
されるものに決定された場合、ピクチャの右側及び/又は下端境界に隣り合うタイル(等
)を除いた残余タイルは同じサイズを有することができる。
【0458】
タイルが均等なサイズに分割されるものに決定される場合、タイルの幅を示すシンタッ
クスtile_cols_width_minus1及びタイルの高さを示すシンタック
スtile_rows_height_minus1をシグナリングすることができる。
【0459】
シンタックスtile_cols_width_minus1は均等なサイズのタイル
が含むコーディングツリーユニット列の個数から1を差し引いた値を示す。シンタックス
tile_rows_height_minus1は均等なサイズのタイルが含むコーデ
ィングツリーユニット行の個数から1を差し引いた値を示す。
【0460】
最後のタイル列は、シンタックスtile_cols_width_minus1によ
って特定される幅値又はこれより小さい値を有することができる。また、最後のタイル行
はシンタックスtile_rows_height_minus1によって特定される高
さ値又はこれより小さい値を有することができる。一例として、最後のタイル列のインデ
ックスがmであるとするとき、現在ピクチャの幅から0からm-1番目タイル列の幅の和
を差し引いた値を最後のタイル列の幅に設定することができる。一例として、最後のタイ
ル行のインデックスがnであるとするとき、現在ピクチャの高さから0からn-1番目タ
イル行の高さの和を差し引いた値を最後のタイル行の高さに設定することができる。すな
わち、現在ピクチャの右側境界に位置するタイルの幅及び/又は現在ピクチャの下端境界
に位置するタイルの高さはそれぞれ他のタイルの幅及び/又は高さより小さいか同一であ
ることができる。
【0461】
ピクチャを横切る垂直線又は水平線の少なくとも一つを用いてピクチャを分割すること
により、タイルのそれぞれは相異なる列(Column)及び/又は行(Row)に属す
る。ピクチャの分割形態を決定するために、タイル列の個数及び/又はタイル行の個数を
示す情報をシグナリングすることができる。一例として、ピクチャを分割することによっ
て生成されるタイル行の個数を示す情報num_tile_row_minus1及びタ
イル列の個数を示す情報num_tile_column_minus1をビットストリ
ームによってシグナリングすることができる。シンタックスnum_tile_row_
minus1はタイル行の個数から1を差し引いた値を示し、シンタックスnum_ti
le_column_minus1はタイル列の個数から1を差し引いた値を示す。
【0462】
図34に示した例で、タイル列の個数は4個であり、タイル行の個数は3個である。こ
れにより、num_tile_columns_minus1は3を示し、num_ti
le_rows_minus1は2を示すことができる。
【0463】
タイル列の個数を示すシンタックスnum_tile_column_minus1及
び/又はタイル行の個数を示すシンタックスnum_tile_rows_minus1
は、シンタックスuniform_tile_spacing_flagの値が0の場合
、シグナリングすることができる。すなわち、現在ピクチャが高さ及び幅の均等なタイル
に分割されないものに決定された場合、タイル列の個数を示すシンタックスnum_ti
le_column_minus1及び/又はタイル行の個数を示すシンタックスnum
_tile_rows_minus1をシグナリングすることができる。
【0464】
各タイル列の幅を示すシンタックス及び各タイル行の高さを示すシンタックスをビット
ストリームによってシグナリングすることができる。一例として、tile_cols_
width_minus1[i]はi番目タイル列の幅を示し、tile_rows_h
eight_minus[j]はj番目タイル行の高さを示すことができる。
【0465】
シンタックスtile_cols_width_minus1[i]はi番目タイル列
を構成するコーディングツリーユニット列の個数から1を差し引いた値を示す。最後のタ
イル列に対してはシンタックスtile_cols_width_minus1[i]の
シグナリングを省略することができる。最後のタイル列の幅は現在ピクチャの幅から以前
タイル列の幅を差し引くことによって誘導することができる。
【0466】
シンタックスtile_rows_height_minus1[j]はj番目タイル
行を構成するコーディングツリーユニット行の個数から1を差し引いた値を示す。最後の
タイル行に対してはシンタックスtile_rows_height_minus1[j
]のシグナリングを省略することができる。最後のタイル行の高さは現在ピクチャの高さ
から以前タイル行の高さを差し引くことによって誘導することができる。
【0467】
一方、コーディングツリーユニットのサイズを示す情報はシーケンスパラメーターセッ
ト又はピクチャパラメーターセットを介してシグナリングすることができる。
【0468】
一つのタイルは少なくとも一つのコーディングツリーユニットから構成されることがで
きる。ピクチャの右側又は下端境界に隣り合うタイルを除いた残余タイルはコーディング
ツリーユニットより小さい領域を含んでならないように設定することができる。すなわち
、タイルの境界はコーディングツリーユニットの境界と一致する。
【0469】
ピクチャの分割形態によって、ピクチャバウンダリーを除いたすべての領域でタイルが
同じサイズを有することができる。もしくは、水平方向に隣り合うタイルの高さを同じに
設定するか、垂直方向に隣り合うタイルの幅を同じに設定することができる。
【0470】
現在ピクチャが複数のタイルに分割されるかを示す情報をビットストリームによってシ
グナリングすることができる。一例として、ビットストリームによってシンタックスsi
ngle_tile_in_pic_flagをシグナリングすることができる。シンタ
ックスsingle_tile_in_pic_flagが1のものは現在ピクチャが複
数のタイルに分割されないものを示す。一方、single_tile_in_pic_
flagが0のものは現在ピクチャが複数のタイルに分割されるものを示す。
【0471】
現在ピクチャが複数のタイルに分割されるものに決定される場合、タイル列及びタイル
行の個数を決定するための情報、タイルが均等に分割されるかを示す情報及びタイル列及
びタイル行のサイズを決定するための情報の少なくとも一つを符号化することができる。
【0472】
【表8】
【0473】
タイルのサイズを決定するための情報を符号化してシグナリングすることができる。一
例として、i番目タイル列の幅を示すシンタックス要素tile_width_minu
s1[i]及びi番目タイル行の高さを示すシンタックス要素tile_height_
minus1[i]をビットストリームによって符号化することができる。
【0474】
現在ピクチャ内のタイル列の幅が明示的にシグナリングされるタイル列の個数を特定す
るための情報をビットストリームによってシグナリングすることができる。一例として、
タイル列の幅がシグナリングされるタイル列の個数を決定するためのシンタックスnum
_exp_tile_columns_minus1をビットストリームによってシグナ
リングすることができる。シンタックスnum_exp_tile_columns_m
inus1はタイル列の幅がシグナリングされるタイル列の個数から1を差し引いた値で
あることができる。
【0475】
シンタックスnum_exp_tile_columns_minus1に基づいて決
定された数の分だけ、タイル列の幅を特定するためのシンタックスを符号化してシグナリ
ングすることができる。一例として、i番目タイル列の幅を示すシンタックスtile_
width_minus1[i]をビットストリームによってシグナリングすることがで
きる。シンタックスtile_width_minus1[i]はタイル列が含むコーデ
ィングツリーユニット列の個数から1を差し引いたものであることができる。
【0476】
タイル列のインデックスiが幅が明示的にシグナリングされるタイル列の個数より小さ
い場合、当該タイル列の幅はビットストリームによってシグナリングされるシンタックス
tile_width_minus1[i]に基づいて決定することができる。
【0477】
一方、タイル列のインデックスjが幅が明示的にシグナリングされるタイル列の個数以
上の場合、当該タイル列の幅は最後にシグナリングされたシンタックスtile_wid
th_minus1[l]に基づいて決定することができる。ここで、lは最後に幅がシ
グナリングされたタイル列のインデックスを示し、jより小さい整数であることができる
。一例として、現在ピクチャの幅から以前タイル列の幅を差し引いた値がシンタックスt
ile_width_minus1[l]に1を加算した値以上の場合、タイル列jの幅
はシンタックスtile_width_minus1[l]に1を加算した値に設定する
ことができる。一方、現在ピクチャの幅から以前タイル列の幅を差し引いた値がシンタッ
クスtile_width_minus1[l]に1を加算した値より小さい場合、現在
ピクチャの幅から以前タイル列の幅を差し引いた差分値をタイル列jの幅に設定すること
ができる。
【0478】
表9はタイル列の幅を決定する過程を示すものである。
【0479】
【表9】
【0480】
表9で、変数PicWidthInCtbsYは現在ピクチャが含むコーディングツリ
ーユニット列の個数を示す。一例として、変数PicWidthInCtbsYは次の式
9のように誘導することができる。
【0481】
[数9]
PicWidthInCtbsY=Ceil(pic_width_in_luma_
samples/CtbSizeY)
【0482】
変数reminingWidthInCtbsYは変数PicWidthInCtbs
Yから累積したタイル列の幅を差し引いた値を示す。一例として、インデックスがiであ
るタイル列に対して、remainingWidthInCtbsYはPicWidth
InCtbsYから、0番からi-1番までのタイル列の幅を合算した値を差し引くこと
によって誘導することができる。
【0483】
表9に示した例のように、変数uniformTileColWidthは最後に明示
的にシグナリングされたタイル列の幅tile_column_width_minus
1[num_exp_tile_columns_minus1]に1を加算することに
よって誘導することができる。ここで、現在ピクチャ内の残余コーディングツリーユニッ
ト列の個数を示す変数remainingWidthInCtbYが変数uniform
TileColWidth以上であれば、残余領域は変数uniformTileCol
Widthのサイズに分割されることができる。
【0484】
一方、現在ピクチャ内の残余コーディングツリーユニット列の個数を示す変数rema
iningWidthInCtbYが変数uniformTileColWidthより
小さければ、残余領域をそのまま最後のタイル列に設定することができる。
【0485】
一方、タイル列のインデックスjが幅が明示的にシグナリングされるタイル列の個数以
上の場合、当該タイル列の幅は変数uniformTileColWidth及びrem
ainingWidthInCtbYの中で小さい値に設定することができる。
【0486】
すなわち、幅が明示的にシグナリングされるタイル列を除いた残余タイル列の幅は、幅
が明示的にシグナリングされるタイル列の中で最後のタイル列の幅より小さいか同じ値を
有することができる。
【0487】
もしくは、現在ピクチャ内のタイル行の高さがシグナリングされるタイル行の個数を特
定するための情報をビットストリームによってシグナリングすることができる。一例とし
て、タイル行の高さがシグナリングされるタイル行の個数を決定するためのシンタックス
num_exp_tile_rows_minus1をビットストリームによってシグナ
リングすることができる。シンタックスnum_exp_tile_rows_minu
s1はタイル行の高さがシグナリングされるタイル行の個数から1を差し引いた値である
ことができる。
【0488】
シンタックスnum_exp_tile_rows_minus1に基づいて決定され
た数の分だけ、タイル行の高さを特定するためのシンタックスを符号化してシグナリング
することができる。一例として、i番目タイル行の高さを示すシンタックスtile_h
eight_minus1[i]をビットストリームによってシグナリングすることがで
きる。シンタックスtile_height_minus1[i]はタイル行が含むコー
ディングツリーユニット行の個数から1を差し引いたものであることができる。
【0489】
タイル行のインデックスiが高さが明示的にシグナリングされるタイル行の個数より小
さい場合、当該タイル行の高さはビットストリームによってシグナリングされるシンタッ
クスtile_height_minus1[i]に基づいて決定することができる。
【0490】
一方、タイル行のインデックスjが高さが明示的にシグナリングされるタイル行の個数
以上の場合、当該タイル行の高さは最後にシグナリングされたシンタックスtile_h
eight_minus1[l]に基づいて決定することができる。ここで、lは最後に
高さがシグナリングされたタイル行のインデックスを示し、jより小さい整数であること
ができる。
【0491】
一例として、現在ピクチャの高さから以前タイル行の高さを差し引いた値がシンタック
スtile_height_minus1[l]に1を加算した値以上の場合、タイル行
jの高さはシンタックスtile_height_minus1[l]に1を加算した値
に設定することができる。一方、現在ピクチャの高さから以前タイル行の高さを差し引い
た値がシンタックスtile_height_minus1[l]に1を加算した値より
小さい場合、現在ピクチャの高さから以前タイル行の高さを差し引いた差分値をタイル行
jの高さに設定することができる。
【0492】
表10はタイル行の高さを決定する過程を示すものである。
【0493】
【表10】
【0494】
表10で、変数PicHeightInCtbsYは現在ピクチャが含むコーディング
ツリーユニット行の個数を示す。一例として、変数PicWidthInCtbsYは次
の式10のように誘導することができる。
【0495】
[数10]
PicHeightInCtbsY=Ceil(pic_height_in_lum
a_samples/CtbSizeY)
【0496】
変数reminingHeightInCtbsYは変数PicHeightInCt
bsYから累積したタイル行の高さを差し引いた値を示す。一例として、インデックスが
iであるタイル行に対して、remainingHeightInCtbsYは、Pic
HeightInCtbsYから、0番からi-1番までのタイル行の高さを合算した値
を差し引くことによって誘導することができる。
【0497】
表10に示した例のように、変数uniformTileRowHeightは最後に
明示的にシグナリングされたタイル行の高さtile_row_height_minu
s1[num_exp_tile_rows_minus1]に1を加算して誘導するこ
とができる。ここで、現在ピクチャ内の残余コーディングツリーユニット行の個数を示す
変数remainingHeightInCtbYが変数uniformTileRow
Height以上であれば、残余領域は変数uniformTileRowHeight
のサイズに分割することができる。
【0498】
一方、現在ピクチャ内の残余コーディングツリーユニット行の個数を示す変数rema
iningHeightInCtbYが変数uniformTileRowHeight
より小さければ、残余領域をそのまま最後のタイル行に設定することができる。
【0499】
一方、タイル行のインデックスjが高さが明示的にシグナリングされるタイル行の個数
以上の場合、当該タイル行の高さは変数uniformTileRowHeight及び
remainingHeightInCtbYの中で小さい値に設定することができる。
【0500】
すなわち、高さが明示的にシグナリングされるタイル行を除いた残余タイル行の高さは
、高さが明示的にシグナリングされるタイル行の中で最後のタイル行の幅より小さいか同
じ値を有することができる。
【0501】
表11は幅が明示的にシグナリングされるタイル列の個数を示すシンタックス及び高さ
が明示的にシグナリングされるタイル行の個数を示すシンタックスを含むシンタックステ
ーブルを例示するものである。
【0502】
【表11】
【0503】
一方、シンタックスloop_filter_across_tiles_enabl
ed_flagはピクチャパラメーターセットを参照するピクチャ内のタイルの境界でイ
ンループフィルターを適用することを許すかを示す。ここで、インループフィルターはデ
ブロッキングフィルター、ALF又はSAOの少なくとも一つを含むことができる。フラ
グloop_filter_across_tiles_enabled_flagの値
が1のものは、ピクチャパラメーターセットを参照するピクチャ内のタイルの境界を横切
るインループフィルターを適用することができるものを示す。一方、フラグloop_f
ilter_across_tiles_enabled_flagの値が0のものは、
ピクチャパラメーターセットを参照するピクチャ内のタイルの境界でインループフィルタ
ーを適用することを許さないものを示す。
【0504】
シンタックスloop_filter_across_slices_enabled
_flagはピクチャパラメーターセットを参照するピクチャ内のスライスの境界でイン
ループフィルターを適用することを許すかを示す。ここで、インループフィルターは、デ
ブロッキングフィルター、ALF又はSAOの少なくとも一つを含むことができる。フラ
グloop_filter_across_slices_enabled_flagの
値が1のものは、ピクチャパラメーターセットを参照するピクチャ内のスライスの境界を
横切るインループフィルターを適用することができるものを示す。一方、フラグloop
_filter_across_slices_enabled_flagの値が0のも
のは、ピクチャパラメーターセットを参照するピクチャ内のスライスの境界でインループ
フィルターを適用することを許さないものを示す。
【0505】
タイルを再帰的に分割することができる。一例として、一つのタイルを複数のタイルに
分割することができる。
【0506】
タイルを分割して生成された複数のタイルのそれぞれをサブタイル又はブリックと言う
こともできる。ブリックは並列処理の単位であることができる。一例として、ブリックは
互いに独立的に符号化/復号化されることができる。ブリックに含まれるブロックの符号
化/復号化の際、他のブロックのデータを用いないように設定することができる。一例と
して、他のブリックに含まれるサンプルはイントラ予測のための参照サンプルとして利用
できないものに設定することができる。もしくは、他のブリックにあるデータは、マージ
候補、動きベクター予測候補(AMVP候補)又はモーション情報候補として用いられな
いように設定することができる。もしくは、他のブリックにあるデータをシンボルのコン
テキスト計算に用いないことができる。
【0507】
図35はブリックの生成様相を説明するための図である。
【0508】
タイルを水平方向に分割してブリックを生成することができる。一例として、図35
示した例では、現在ピクチャ内の最後のタイル列に属するタイルが2個のブリックに分割
されるものを示した。
【0509】
タイルにラスタースキャンが適用されると仮定する場合、ブリックの間にもラスタース
キャンを適用することができる。一例として、特定のタイルに含まれるブリックをすべて
スキャンした後、次のタイルをスキャンすることができる。すなわち、ブリックはタイル
と同等な地位を有することができる。
【0510】
ブリックの境界はコーディングツリーユニットの境界と一致することができる。すなわ
ち、タイル内の少なくとも一つのコーディングツリーユニット行をブリックに定義するこ
とができる。
【0511】
タイルが複数のブリックに分割されるかを示す情報をビットストリームによってシグナ
リングすることができる。表12はタイルの分割可否を決定するための情報を含むシンタ
ックステーブルを示すものである。
【0512】
【表12】
【0513】
ブリック分割関連情報は、ブリックに分割されるタイルが少なくとも一つ存在するかを
示す情報、タイルがブリックに分割されるかを示す情報、タイル内のブリックの数を示す
情報又はブリックのサイズを示す情報の少なくとも一つを含むことができる。
【0514】
一例として、ブリックに分割されるタイルが少なくとも一つ存在するかを示すシンタッ
クスbrick_splitting_present_flagをビットストリームに
よってシグナリングすることができる。
【0515】
シンタックスbrick_splitting_present_flagが1の場合
、少なくとも一つ以上のタイルを複数のブリックに分割することができる。シンタックス
brick_splitting_present_flagが1の場合、タイルが複数
のブリックに分割されるかを示すbrick_split_flagをさらにシグナリン
グすることができる。
【0516】
シンタックスbrick_splitting_present_flagが0のもの
は、現在ピクチャ又はPPSを参照するピクチャ内の複数のブリックに分割されるタイル
が存在しないものを示す。シンタックスbrick_splitting_presen
t_flagが0の場合、タイルが複数のブリックに分割されるかを示すbrick_s
plit_flagの符号化を省略することができる。
【0517】
現在ピクチャ内の複数のブリックに分割されるタイルが存在するものに決定される場合
、i番目タイルが複数のブリックに分割されるかを示すシンタックスbrick_spl
it_flag[i]をシグナリングすることができる。一例として、シンタックスbr
ick_split_flag[i]の値が1のものは、タイルインデックスがiである
タイルが二つ以上のブリックに分割されるものを示す。シンタックスbrick_spl
it_flag[i]の値が0のものは、タイルインデックスがiであるタイルが複数の
ブリックに分割されないものを示す。
【0518】
タイルが複数のブリックに分割される場合、タイルの分割様相を決定するための情報を
ビットストリームによってシグナリングすることができる。一例として、シンタックスu
niform_brick_spacing_flagをビットストリームによってシグ
ナリングすることができる。シンタックスuniform_brick_spacing
_flagが1のものは、タイル内のブリックの高さが均等であるものを示す。unif
orm_brick_spacing_flag値が1であれば、ブリックの基本高さを
示すシンタックスbrick_height_minus1をシグナリングすることがで
きる。シンタックスbrick_height_minus1はブリックを構成するコー
ディングツリーユニット行の個数から1を差し引いた値を示す。
【0519】
タイル内の最後のブリックを除いた残余ブリックはシンタックスbrick_heig
ht_minus1によって決定される基本高さを有することができる。タイル内の最後
のブリックは残余ブリックを除いた領域に設定することができる。
【0520】
シンタックスuniform_brick_spacing_flag値が0であれば
、i番目タイル内のブリックの数を示すシンタックスnum_brick_rows_m
inus1[i]とi番目タイル内のj番目ブリックの高さを示すシンタックスbric
k_row_height_minus1[i][j]をシグナリングすることができる
。シンタックスnum_brick_rows_minus1[i]はi番目タイルが含
むブリックの数から1を差し引いた値を示す。
【0521】
タイル内の最後のブリックに対してはシンタックスbrick_row_height
_minus1[i][j]のシグナリングを省略することができる。タイル内の最後の
ブリックの高さはタイルの高さから以前ブリックの高さの和を差し引いて誘導することが
できる。
【0522】
ブリックの高さを示すシンタックスbrick_height_minus1[i]は
ブリックを含むタイルの高さから1を差し引いた値より小さい値を有することができる。
一例として、タイルの高さがrowHeightの場合、シンタックスbrick_he
ight_minus1[i]は0とrowHeight-2との間の値を有することが
できる。ここで、rowHeightはタイルが含むコーディングツリーユニット行の個
数を示す。
【0523】
もしくは、タイルが均等に分割されるかを示すフラグの符号化を省略し、ブリックの数
を示す情報及びブリックの高さを示す情報の少なくとも一つを用いてタイルの分割様相を
決定することができる。
【0524】
もしくは、高さが明示的にシグナリングされるブリックの数を特定する情報を用いてタ
イルの分割様相を決定することもできる。一例として、高さをシグナリングするブリック
の数を決定するためのシンタックスnum_exp_brick_minus1をビット
ストリームによってシグナリングすることができる。シンタックスnum_exp_br
ick_minus1は高さをシグナリングするブリックの数から1を差し引いた値であ
ることができる。
【0525】
シンタックスnum_exp_brick_minus1に基づいて決定された数の分
だけ、ブリックの高さを特定するためのシンタックスを符号化してシグナリングすること
ができる。一例として、brick_height_minus1[i]はi番目ブリッ
クの高さを示す。
【0526】
ブリックのインデックスiが高さがシグナリングされるブリックの数より小さい場合、
当該ブリックの高さはビットストリームによってシグナリングされるbrick_hei
ght_minus[i]に基づいて決定することができる。一方、ブリックのインデッ
クスjが高さがシグナリングされるブリックの数以上の場合、当該ブリックの高さは最後
にシグナリングされたシンタックスbrick_width_minus[l]と同じに
設定することができる。ここで、lは最後に高さがシグナリングされたブリックのインデ
ックスを示し、jより小さい整数であることができる。
【0527】
タイル及びブリックはタイルインデックスによって識別することができる。ラスタース
キャン順にタイル及びブリックのそれぞれにタイルインデックスを割り当てることができ
る。一つのタイルが複数のブリックに分割された場合、複数のブリックのそれぞれにタイ
ルインデックスを割り当てることができる。
【0528】
後述する実施例で、‘タイル’という用語は、タイルだけではなく、タイルを分割する
ことによって生成されたタイル(すなわち、サブタイル又はブリック)を含むことができ
る。
【0529】
少なくとも一つ以上のタイルを一つの処理単位に定義することができる。一例として、
複数のタイルを一つのスライスに定義することができる。スライスをタイルグループと言
うこともできる。
【0530】
もしくは、一つのタイルを複数の処理単位に分割することもできる。一例として、一つ
のタイルを複数のスライスに分割することもできる。ここで、一つのスライスは少なくと
も一つのコーディングツリーユニット列を含むことができる。一つのタイルが複数のスラ
イスに分割される場合、各スライスの高さを示す情報をビットストリームによってシグナ
リングすることができる。
【0531】
スライスヘッダーを介して映像符号化/復号化情報をシグナリングすることができる。
スライスヘッダーを介してシグナリングされる情報はスライスに属するタイル及び/又は
ブロックに共通して適用されることができる。
【0532】
スライスタイプを示す情報を、ビットストリームによってシグナリングすることができ
る。前記情報は、現在ピクチャ内のスライスの定義方法を示す。一例として、ビットスト
リームによってスライスタイプを示すシンタックスrect_slice_flagをシ
グナリングすることができる。
【0533】
シンタックスrec_slice_flagはタイルのラスタースキャン順にスライス
が定義されるか又は方形にスライスが定義されるかを示す。一例として、rec_sli
ce_flagが0のものは、タイルのラスタースキャン順にスライスが定義されるもの
を示す。一方、rec_slice_flagが1のものは、方形にスライスが定義され
るものを示す。
【0534】
以下、スライスを決定するための前記二つの方法について詳細に説明する。
【0535】
ラスタースキャンに基づく定義方法は、ラスタースキャン順に、少なくとも一つ以上の
タイルを特定した後、特定された少なくとも一つ以上のタイルをスライスに定義するため
のものである。ラスタースキャンに基づく定義方法による場合、一つ以上の連続したタイ
ル(等)をスライスに定義することができる。ここで、連続したタイルはラスタースキャ
ン順によって決定することができる。ラスタースキャンスライスを適用する場合、非方形
のスライスが生成されることもできる。
【0536】
図36及び図37はラスター順にスライスを定義した例を示す図である。
【0537】
一例として、図36に示した例で、一番目スライスslice0が3個のタイルを含む
と仮定するとき、一番目スライスslice0はラスタースキャン順に、Tile0~T
ile2を含むものに定義することができる。二番目スライスslice1が6個のタイ
ルを含むと仮定するとき、二番目スライスslice1はラスタースキャン順にTile
3~Tile8を含むものに定義することができる。最後のスライスslice2は、ラ
スタースキャン順に残余タイルTile9~Tile11を含むことができる。
【0538】
ラスタースキャン順にスライスを定義する場合、各スライスが含むタイルの数を示す情
報をシグナリングすることができる。最後のスライスに対してはスライスが含むタイルの
数を示す情報のシグナリングを省略することができる。
【0539】
スライスが複数のタイルを含む場合、スライスに含まれるタイルの幅又は高さは互いに
異なることができる。一例として、二番目スライスslice1が含むタイルの中でTi
le3の高さは残余タイルと異なるものを示した。
【0540】
方形スライス定義方法は長方形のスライスのみを許す分割方法である。方形スライス定
義方法を適用する場合、スライスの四角に位置するタイルが同じ行又は同じ列に属するよ
うになる。
【0541】
図38は方形のスライスのみを許す例を示す図である。
【0542】
図38に示した例のように、四番目スライスslice3は、Tile5、Tile6
、Tile9及びTile10を含む。図示の例のように、スライスが複数のタイルを含
む場合、スライスを構成する左上端タイル及び右下端タイルを二つの頂点とする長方形を
一つのスライスに定義することができる。
【0543】
スライスの境界はピクチャ境界及び/又はタイルの境界と一致することができる。一例
として、スライスの左側境界又は上端境界をピクチャの境界に設定するか、スライスの左
側境界又は上端境界をタイルの境界に設定することができる。
【0544】
もしくは、方形のスライス定義方法を適用する場合、一つのタイルを複数の方形スライ
スに分割することもできる。
【0545】
方形のスライス定義方法を適用する場合、ピクチャが単一スライスから構成されるかを
示す情報をシグナリングすることができる。一例として、ピクチャ内のスライスの個数が
1個であるかを示すシンタックスone_slice_in_pic_flagをビット
ストリームによってシグナリングすることができる。フラグone_slice_in_
pic_flagが1のものは、ピクチャが1個のスライスから構成されるものを示す。
一方、フラグone_slice_in_pic_flagが0のものは、ピクチャが少
なくとも2個以上のスライスから構成されるものを示す。フラグone_slice_i
n_pic_flagの値が0の場合、スライスの構成情報をさらにシグナリングするこ
とができる。一例として、表13はシンタックスone_slice_in_pic_f
lagを含むシンタックステーブルを例示するものである。
【0546】
【表13】
【0547】
例示のように、one_slice_in_pic_flagが1の場合、後述するス
ライスの構成についての情報(例えば、スライスが含むタイルのインデックスを示すシン
タックスtop_left_brick_idx[i]及び/又は第1スライスが含むタ
イルと第2スライスが含むタイルとの間のインデックス差分を示すシンタックスbott
om_right_bric_idx_delta[i]など)の符号化を省略すること
ができる。すなわち、one_slice_in_pic_flagはスライスの構成に
ついての情報が符号化されたかを決定するのに用いることができる。
【0548】
前記ピクチャはサブピクチャを示すこともできる。ピクチャは少なくとも一つのサブピ
クチャに分割することができる。サブピクチャ分割関連情報はシーケンスレベルでシグナ
リングすることができる。一例として、シーケンスパラメーターセットを介してシグナリ
ングされるサブピクチャ分割関連情報は、シーケンスパラメーターセットを参照するすべ
てのピクチャに共通して適用することができる。
【0549】
サブピクチャ分割関連情報は、ピクチャが複数のサブピクチャに分割されるかを示す情
報、サブピクチャの数を示す情報、サブピクチャのサイズを示す情報又はサブピクチャが
独立的なピクチャとして機能するかを示す情報を含むことができる。
【0550】
サブピクチャ別に、単一スライスから構成されているかを示すシンタックスone_s
lice_in_pic_flagをシグナリングすることができる。
【0551】
もしくは、シーケンス又はピクチャレベルで、各サブピクチャが単一スライスから構成
されているかを示すシンタックスone_slice_in_pic_flagをシグナ
リングすることができる。一例として、フラグone_slice_in_pic_fl
agが1のものは、現在ピクチャ内のすべてのサブピクチャが単一スライスから構成され
るものを示す。一方、フラグone_slice_in_pic_flagが0のものは
、現在ピクチャ内の少なくとも一つのサブピクチャが複数スライスから構成されるものを
示す。
【0552】
ピクチャが複数のスライスから構成されるものに決定される場合、ピクチャ内のスライ
スの個数を示すシンタックスを符号化してシグナリングすることができる。一例として、
ビットストリームによって、ピクチャ内のスライスの個数を示すシンタックスnum_s
lices_in_pic_minus2をシグナリングすることができる。シンタック
スnum_slices_in_pic_minus2はピクチャ内のスライスの個数か
ら2を差し引いた値を示すことができる。これにより、復号化器は、シンタックスnum
_slices_in_pic_minus2が示す値に2を加えてスライスの総数を決
定することができる。
【0553】
シンタックスnum_slices_in_pic_minus2の代わり、ピクチャ
内のスルライスイの数から1を差し引いた値を示すシンタックスnum_slices_
in_pic_minus1を符号化することもできる。
【0554】
方形のスライス定義方法を適用する場合、各スライスが含むタイルを決定するために、
各スライスが含むタイルを識別するための情報をシグナリングすることができる。前記情
報はスライスの一番目タイル又は最後のタイルの少なくとも一つを特定することに用いる
ことができる。タイル間の順番は、所定のスキャン順に決定することができる。一例とし
て、ラスタースキャン順による場合、一番目タイルはスライスの左上端に位置するタイル
を示し、最後のタイルはスライスの右下端に位置するタイルを示す。
【0555】
スライス内の左上端に位置するタイルのインデックス又はスライスの右下端に位置する
タイルのインデックスの少なくとも一つを識別するための情報をビットストリームによっ
てシグナリングすることができる。一例として、スライスの左上端に位置するタイルのイ
ンデックスを識別するためのシンタックスtop_left_tile_idx又はスラ
イスの右下端に位置するタイルのインデックスを識別するためのシンタックスbotto
m_right_tile_idxの少なくとも一つをビットストリームによってシグナ
リングすることができる。最後のスライスに対しては、スライスの左上端に位置するタイ
ルのインデックスを識別するためのシンタックス又はスライスの右下端に位置するタイル
のインデックスを識別するためのシンタックスの少なくとも一つの符号化を省略すること
ができる。現在ピクチャ内の以前スライスが占有する領域を除いた残余領域を最後のスラ
イスに設定することができる。
【0556】
一例として、図38に示した例で、slice0、slice1及びslice2に対
しては、各スライスの左上端に位置するタイルのインデックスtop_left_til
e_idx及び各スライスの右下端に位置するタイルのインデックスbottom_ri
ght_tile_idxをシグナリングすることができる。一方、ピクチャ内の最後の
スライスであるslice3に対しては、top_left_tile_idx及びbo
ttom_right_tileidxの符号化を省略することができる。ピクチャ内の
最後のスライスであるslice3の左上端タイルのインデックスは、ピクチャからsl
ice0、slice1及びslice2を除いた残余領域内の左上端に位置するタイル
のインデックスに設定し、slice3の右下端タイルのインデックスは前記残余領域内
の右下端に位置するタイル(又は、ピクチャの右下端に位置するタイル)のインデックス
に設定することができる。
【0557】
もしくは、スライスに含まれるタイルのインデックスを特定するための差分情報を符号
化してシグナリングすることができる。一例として、スライスの左上端に位置するタイル
のインデックスとスライスの右下端に位置するタイルのインデックスとの差分値を示す情
報をビットストリームによってシグナリングすることができる。一例として、i番目スラ
イスに対して、スライスの左上端に位置するタイルのインデックスを識別するためのシン
タックスtop_left_tile_idx[i]及びスライスの左上端に位置するタ
イルのインデックスとスライスの右下端に位置するタイルのインデックスとの間の差分を
示すシンタックスbottom_right_tile_idx_delta[i]をシ
グナリングすることができる。i番目スライスの右下端タイルのインデックスはtop_
left_tile_idx[i]及びbottom_right_tile_idx_
delta[i]を合わせて誘導することができる。最後のスライスに対しては、スライ
スの左上端に位置するタイルのインデックスを示すシンタックス又はスライスの左上端に
位置するタイルのインデックスとスライスの右下端に位置するタイルのインデックスとの
差分を示すシンタックスの少なくとも一つの符号化を省略することができる。現在ピクチ
ャ内の以前スライスが占有する領域を除いた残余領域を最後のスライスに設定することが
できる。
【0558】
もしくは、水平方向タイルインデックス差分情報又は垂直方向タイルインデックス差分
情報の少なくとも一つを符号化してシグナリングすることができる。水平方向タイルイン
デックス差分情報は、一番目タイルのインデックスと、一番目タイルと同じタイル行に含
まれる最右側タイルのインデックスとの間の差分を示すことができる。垂直方向タイルイ
ンデックス差分情報は、一番目タイルのインデックスと、一番目タイルと同じタイル列に
含まれる最下端タイルのインデックスとの間の差分を示すことができる。
【0559】
スライスの位置によって、符号化される差分情報タイプを決定することができる。一例
として、ピクチャの右側境界又は下端境界に隣り合うスライスに対しては、水平方向タイ
ルインデックス差分情報又は垂直方向インデックス差分情報を符号化してシグナリングす
ることができる。左上端タイルと右上端タイルとの間のインデックス差分を示す情報の代
わりに、水平方向タイルインデックス差分情報又は垂直方向インデックス差分情報を符号
化することによりビット量を減少させることができる。
【0560】
もしくは、ピクチャが少なくとも一つ以上のスライス行に分割される場合、ピクチャの
左側境界に隣り合うスライスに対しては、左上端タイルと右下端タイルとの間のインデッ
クス差分を示す情報を符号化することができる。同じ行に属するスライスは同じ高さを有
するように設定することができる。
【0561】
第1スライスが含むタイルのインデックスと第2スライスが含むタイルのインデックス
との間の差分情報を符号化してシグナリングすることもできる。ここで、第1スライス及
び第2スライスはスキャン順に決定し、各スライスが占有するタイルは互いに異なること
ができる。
【0562】
一例として、第1スライスを構成するタイルと第2スライスを構成するタイルとが異な
る場合、第2スライスのインデックスは第1スライスのインデックスiに1を加算したも
のであることができる。
【0563】
もしくは、第1タイルが複数のスライスを含むように分割された場合、第1タイルに含
まれる第1スライスとスキャン順において第1タイルの次のタイルである第2タイルを含
む第2スライス又は第2タイルに含まれる第2スライスとの間の差分情報を符号化するこ
とができる。ここで、第1タイルに含まれる複数のスライスの中で一番目スライス又は最
後のスライスのみに対して差分情報を符号化することができる。
【0564】
第1スライスと第2スライスとの差分情報を誘導するのに用いられるタイルは、スライ
スの左上端、右上端、右下端、左下端又は中央に位置するものであることができる。
【0565】
表14は差分情報を含むシンタックステーブルを例示するものである。
【0566】
【表14】
【0567】
一例として、i番目スライスの左上端タイルと以前スライス(すなわち、i-1番目ス
ライス)の左上端タイルとのインデックス差分を示すシンタックスtop_left_b
rick_idx_delta[i]をビットストリームによってシグナリングすること
ができる。
【0568】
差分情報に基づき、i番目スライス内の左上端タイルの位置を決定することができる。
具体的には、i番目スライスの左上端タイルのインデックスはi-1番目スライスの左上
端タイルインデックスとシンタックスtop_left_brick_idx_delt
a[i]を合わせて誘導することができる。式11はi番目スライスの左上端タイルのイ
ンデックスを誘導する例を示すものである。
【0569】
[数11]
TopLeftBrickIdx[i]=TopLeftBrickIdx[i-1]
+top_left_brick_idx_delta[i]
【0570】
前記式11で、TopLeftBrickIdx[i-1]はi-1番目スライスの左
上端タイルのインデックスを示す。
【0571】
一番目スライス(すなわち、インデックスiが0のスライス)に対しては、以前スライ
スとの差分情報を示すシンタックスtop_left_brick_idx_delta
[i]の符号化を省略することができる。一番目スライスに対しては、スライスの左上端
タイルと右上端タイルとの間のインデックス差分を示すシンタックスbottom_ri
ght_brick_idx_delta[i]を符号化してシグナリングすることがで
きる。
【0572】
表15は、差分情報を用いて各タイルが属するスライスを特定する過程を示す例である
【0573】
【表15】
【0574】
NumBricksInSlice[i]はスライスiが含むタイルの数を示す。To
pLeftBrickIdx[i]はスライスiの左上端タイルのインデックスを示す。
botRightBkIdxは右上端タイルのインデックスを示す。BrickColB
d[j]はタイルjが属するタイル列のインデックスを示す。BrickRowBd[j
]はタイルjが属するタイル行のインデックスを示す。BricksToSliceMa
p[j]=iはタイルjをスライスiに追加することを示す。
【0575】
もしくは、スライスの幅又は高さの少なくとも一つを特定する情報を用いてスライスを
定義することもできる。一例として、i番目スライスの幅を示すシンタックスslice
_width_in_tiles_minus1[i]又はi番目スライスの高さを示す
シンタックスslice_height_in_tiles_minus1[i]の少な
くとも一つをビットストリームによってシグナリングすることができる。
【0576】
シンタックスslice_width_in_tiles_minus1[i]はi番
目スライスに含まれるタイル列の個数から1を差し引いた値を示す。シンタックスsli
ce_height_in_tiles_minus[i]はi番目スライスに含まれる
タイ0ル行の個数から1を差し引いた値を示す。
【0577】
i番目スライスは、シンタックスslice_width_in_tiles_min
us1[i]に基づいて決定される個数の分だけのタイル列及びシンタックスslice
_height_in_tiles_minus1[i]に基づいて決定される個数の分
だけのタイル行から構成されることができる。ここで、i番目タイル列の左上端タイルは
、top_left_brick_idx_delta[i]に基づいて決定されるイン
デックス値を有することができる。
【0578】
もしくは、ピクチャの左側境界に隣り合うスライスのみに対して、スライスの高さを示
すシンタックスslice_height_in_tiles_minus1[i]をシ
グナリングし、その他のスライスに対してはシンタックスslice_height_i
n_tiles_minus1[i]の符号化を省略することができる。シンタックスs
lice_height_in_tiles_minus[i]の符号化が省略されるス
ライスの高さは、同じ行に含まれるスライスの中で現在ピクチャの左側境界に隣り合うス
ライスの高さと同じに設定することができる。
【0579】
一番目スライスの左上端タイルのインデックスTopLeftBrickIdx[0]
は0に設定することができる。これにより、二番目スライス(すなわち、インデックスi
が1のスライス)では、シンタックスtop_left_brick_idx_delt
a[i]が実質的に左上端タイルのインデックスと同じ値を有するようになる。これによ
り、二番目スライスに対しては、シンタックスtop_left_brick_idx_
delta[i]の代わりに、シンタックスtop_left_brick_idx[i
]をシグナリングすることができる。ここで、top_left_brick_idx[
i]はi番目スライスの左上端タイルのインデックスを示す。
【0580】
他の例として、シンタックスtop_left_brick_idx_delta[i
]をi番目スライスの一番目タイルとi+1番目スライスの一番目タイルとの間の差分に
設定することもできる。すなわち、i+1番目スライスの左上端タイルのインデックスは
、i番目スライスの左上端タイルのインデックスとi番目スライスに対してシグナリング
されるシンタックスtop_left_brick_idx_delta[i]を合わせ
て誘導することができる。シンタックスtop_left_brick_idx_del
ta[i]がi番目スライスとi+1番目スライスとの間の差分情報を示す場合、最後の
スライスに対してはシンタックスtop_left_brick_idx_delta[
i]の符号化を省略することができる。
【0581】
次の表16のようなシンタックステーブルを用いてスライスを決定することもできる。
【0582】
【表16】
【0583】
スライスタイプを示すフラグrect_slice_flagを符号化し、フラグre
ct_slice_flagが1の場合、ピクチャ内のスライスの個数を示すシンタック
スnum_slices_in_pic_minus1を符号化することができる。
【0584】
ピクチャが複数のスライスを含むものに決定された場合、各スライスの幅を示すシンタ
ックスslice_width_in_tiles_minus1[i]及び各スライス
の高さを示すシンタックスslice_height_in_tiles_minus1
[i]を符号化してシグナリングすることができる。
【0585】
また、i番目スライスに含まれるタイルのインデックスとi+1番目スライスに含まれ
るタイルのインデックスとの間の差分を示すシンタックスtile_idx_delta
[i]をシグナリングすることもできる。最後のタイルに対しては、シンタックスtil
e_idx_delta[i]の符号化を省略することができる。
【0586】
符号化器は、タイルインデックスの差分を示すシンタックスtile_idx_del
ta[i]の符号化可否を決定し、前記決定によって、シンタックスtile_idx_
delta[i]が符号化されたかを示すフラグtile_idx_delta_pre
sent_flagを符号化することができる。シンタックスtile_idx_del
ta[i]は、フラグtile_idx_delta_present_flagの値が
1の場合に限り、符号化することができる。
【0587】
一つのタイルを複数のスライスに分割することもできる。一例として、タイルを水平方
向に分割して複数スライドを生成することができる。
【0588】
スライスが複数のタイルを含まないものに決定された場合、タイルを複数のスライスに
分割するかを決定することができる。一例として、シンタックスslice_width
_in_tiles_minus1[i]及びシンタックスslice_height_
in_tiles_minus1[i]が共に0のものは、スライスが一つのタイルのみ
から構成されるか、一つのタイルが複数のスライスに分割されるものを示す。
【0589】
シンタックスslice_width_in_tiles_minus1[i]及びシ
ンタックスslice_height_in_tiles_minus1[i]が共に0
の場合、タイルが複数のスライスに分割されるかを示す情報をシグナリングすることがで
きる。
【0590】
一例として、タイルが含むスライスの個数を示すシンタックスnum_slices_
in_tile_minus1[i]をシグナリングすることができる。シンタックスn
um_slices_in_tile_minus1[i]はi番目タイルが含むスライ
スの個数から1を差し引いた値を示す。
【0591】
もしくは、明示的にシグナリングされなければならないスライス高さの個数を示す情報
を示すシンタックスnum_exp_slices_in_tile[i]をビットスト
リームによってシグナリングすることができる。シンタックスnum_exp_slic
es_in_tile[i]はタイルが含むスライスの個数と同じ又はそれより小さい値
を有することができる。
【0592】
シンタックスnum_exp_slices_in_tile[i]が0のものは、タ
イルが複数のスライスに分割されないものを示す。シンタックスnum_exp_sli
ces_in_tile[i]が0より大きいものは、タイルが複数のスライスに分割で
きるものを示す。
【0593】
シンタックスnum_exp_slices_in_tile[i]の個数の分だけス
ライスの高さを示す情報をシグナリングすることができる。一例として、シンタックスn
um_exp_slices_in_tileが1より大きい場合、タイル内のj番目ス
ライスの高さを示すシンタックスexp_slice_height_in_ctu_m
inus1[j]をシグナリングすることができる。
【0594】
スライスのインデックスjが高さが明示的にシグナリングされるスライスの個数より小
さい場合、スライスjの幅はビットストリームによってシグナリングされるシンタックス
exp_slice_height_in_ctu_minus1[j]に基づいて決定
することができる。一方、スライスのインデックスkが高さが明示的にシグナリングされ
るスライスの個数以上の場合、スライスkの高さは最後にシグナリングされたシンタック
スexp_slice_height_in_ctu_minus1[l]に基づいて決
定することができる。ここで、lは最後に高さがシグナリングされたスライスのインデッ
クスを示し、kより小さい整数であることができる。
【0595】
一例として、タイルの高さから以前スライスの高さを差し引いた値がシンタックスex
p_slice_height_in_ctu_minus1[l]に1を加算した値以
上の場合、スライスkの高さはシンタックスexp_slice_height_in_
ctu_minus1[l]に1を加算した値に設定することができる。一方、タイルの
高さから以前スライスの高さを差し引いた値がシンタックスexp_slice_hei
ght_in_ctu_minus1[l]に1を加算した値より小さい場合、タイルの
高さから以前スライスの高さを差し引いた差分値をスライスkの高さに設定することがで
きる。
【0596】
すなわち、高さが明示的にシグナリングされるスライスを除いた残余スライスの高さは
、高さが明示的にシグナリングされるスライスの中で最後のスライスの高さより小さいか
同じ値を有することができる。
【0597】
上述した例では、方形のスライス定義方法を適用する場合に限り、ピクチャが単一のス
ライスから構成されるかを示すシンタックスone_slice_in_pic_fla
gの符号化可否を決定するものを例示した。例示のものとは反対に、シンタックスone
_slice_in_pic_flagを先に符号化した後、フラグone_slice
_in_pic_flagの値によってシンタックスrect_slice_flagの
符号化可否を決定することもできる。一例として、one_slice_in_pic_
flagの値が1の場合、rect_slice_flagの符号化を省略することがで
きる。
【0598】
現在ピクチャ内のタイル列の個数が1の場合、シンタックスslice_width_
in_tiles_minus1の符号化を省略することができる。また、現在ピクチャ
内のタイル行の個数が1の場合、シンタックスslice_height_in_til
es_minus1の符号化を省略することができる。
【0599】
もしくは、スライスの幅を示す情報又はスライスの高さを示す情報の少なくとも一つの
符号化を省略することができる。
【0600】
一例として、スライスの幅を示すシンタックスslice_width_in_til
es_minus1の符号化を省略し、隣接スライス内の所定位置のタイルとの距離をス
ライスの幅に設定することができる。具体的には、シンタックスtop_left_br
ick_idx_delta[i]によって、i番目スライスの右側に隣り合うi+1番
目スライスの左上端タイルを特定することができる。i番目スライスの幅はi番目スライ
ス内の左上端タイルのx座標(例えば、左上端サンプルのx座標)と、i+1番目スライ
ス内の左上端タイルのx座標(例えば、左上端サンプルのx座標)との間の差分によって
誘導することができる。
【0601】
もしくは、スライスの高さを示すシンタックスslice_height_in_ti
les_minus1の符号化を省略し、隣接スライス内の所定位置のタイルとの距離を
スライスの幅に設定することができる。具体的には、シンタックスtop_left_b
rick_idx_delta[j-1]によって、i番目スライスの下端に位置するj
番目スライスの左上端タイルを特定することができる。i番目スライスの高さはi番目ス
ライス内の左上端タイルのy座標(例えば、左上端サンプルのy座標)とj番目スライス
内の左上端タイルのy座標(例えば、左上端サンプルのy座標)との間の差分によって誘
導することができる。
【0602】
もしくは、方形のスライスを定義するにあたり、差分値情報が用いられるかを示す情報
をビットストリームによってシグナリングすることができる。一例として、差分値情報の
利用可否を示すtile_idx_delta_present_flagをビットスト
リームによってシグナリングすることができる。シンタックスtile_idx_del
ta_present_flagの値が1のものは、タイルインデックスの差分値を示す
シンタックスを符号化してシグナリングするものを示す。一例として、シンタックスti
le_idx_delta_present_flagの値が1の場合、i番目スライス
はスライスのサイズを示すシンタックスslice_width_in_tiles_m
inus1[i]及びシンタックスslice_height_in_tiles_mi
nus1[i]とスライス内の左上端タイルの位置又は右上端タイルの位置を決定するた
めの差分値情報(例えば、top_left_brick_idx_delta[i-1
]又はbottom_right_brick_idx_delta[i])によって定
義することができる。
【0603】
シンタックスtile_idx_delta_present_flagの値が0の場
合、i番目スライスはスライスのサイズを示すシンタックスslice_width_i
n_tiles_minus1[i]及びシンタックスslice_height_in
_tiles_minus1[i]によって定義することができる。シンタックスtil
e_idx_delta_prsent_flagの値が0の場合、現在ピクチャの左側
境界に隣り合うスライスの右側に隣り合うスライスは、左側境界に隣り合うスライスと同
じ高さを有するように設定することができる。これにより、現在ピクチャの左側境界に隣
り合うスライスのみに対してスライスの高さを示す情報をシグナリングし、現在ピクチャ
の左側境界に隣り合わないスライスに対してはスライスの高さを示す情報のシグナリング
を省略することができる。
【0604】
スライス内のタイルのインデックスに基づき、スライスのサイズを示す情報のシグナリ
ング可否を決定することができる。一例として、表17はスライス内のタイルインデック
スに基づき、スライスのサイズを決定する情報のシグナリング可否を決定するシンタック
ス構造を示すものである。
【0605】
【表17】
【0606】
表17で、変数tileIdxはi番目スライスが含むタイルのインデックスを示す。
具体的には、i番目スライス内の既定義の位置のタイルのインデックスを変数tileI
dxに設定することができる。既定義の位置のタイルは左上端タイルを示すことができる
【0607】
変数NumTileColumnsはピクチャが含むタイル列の個数を示す。一例とし
て、i番目スライス内の左上端タイルのインデックスと変数NumTileColums
から1を差し引いた値との間のモジュラー演算(%)に基づき、左上端タイルが属するタ
イル列の位置を決定することができる。一例として、前記モジュラー演算による結果値n
は左上端タイルがインデックスnのタイル列に属することを示す。
【0608】
スライス内の左上端タイルがピクチャ内の最右側タイル列に属する場合、スライスの幅
を示すシンタックスslice_width_in_tiles_minus1[i]の
シグナリングを省略することができる。一例として、モジュラー演算の結果がピクチャ内
のタイル列の個数NumTileColumnsから1を差し引いた値と同一である場合
、シンタックスslice_width_in_tiles_minus1[i]の符号
化/復号化を省略することができる。この場合、シンタックスslice_width_
in_tiles_minus1[i]の値は0と見なすことができる。
【0609】
i番目スライス内の左上端タイルのインデックスと変数NumTileColumns
との間の割り算によって、左上端タイルが属するタイル行の位置を決定することができる
。一例として、割り算の商がmのものは、左上端タイルがインデックスmのタイル行に含
まれるものを示す。
【0610】
スライス内の左上端タイルがピクチャ内の最下端タイル行に属する場合、スライスの高
さを示すシンタックスslice_height_in_tiles_minus[i]
のシグナリングを省略することができる。一例として、割り算の結果がピクチャ内のタイ
ル行の個数NumTileRowsから1を差し引いた値と同一である場合、シンタック
スslice_height_in_tiles_minus1[i]の符号化/復号化
を省略することができる。この場合、シンタックスslice_height_in_t
iles_minus1[i]の値は0と見なすことができる。
【0611】
スライス内の左上端タイルがピクチャ内の最右側列に属するとともに最下側行に属する
場合、シンタックスslice_width_in_tiles_minus1[i]及
びシンタックスslice_height_in_tiles_minus1[i]の両
者の符号化を省略することができる。この場合、二つのシンタックスの値はいずれも0と
見なすことができる。
【0612】
スライス内の左上端タイルがピクチャ内の最下側行に含まれていない場合、スライス内
の左上端タイルがピクチャ内の最左側列に属するか及び/又はタイルインデックス間の差
分情報が符号化されたかの少なくとも一つを考慮して、スライスの高さを示すシンタック
スslice_height_in_tiles_minus1[i]の符号化/復号化
可否を決定することができる。
【0613】
一例として、スライス内の左上端タイルがピクチャ内の最下側行に含まれていなくても
、タイルインデックス差分が符号化された場合(例えば、tile_idx_delta
_present_flagが1の場合)、スライスの高さを示すシンタックスslic
e_height_in_tiles_minus1[i]の符号化/復号化を省略する
ことができる。
【0614】
もしくは、スライス内の左上端タイルがピクチャ内の最下側行に属しなくても、左上端
タイルがスライス内の最左側列に属しない場合、シンタックスslice_height
_in_tiles_minus1[i]の符号化/復号化を省略することができる。
【0615】
スライス内の左上端タイルがピクチャ内の最下側行に属していないが、シンタックスs
lice_height_in_tiles_minus1[i]の符号化/復号化が省
略された場合、前記シンタックスは以前スライスの高さslice_height_in
_tiles_minus[i-1]と同じに設定することができる。
【0616】
表18はシンタックスslice_width_in_tiles_minus1[i
]及びシンタックスslice_height_in_tiles_minus1[i]
に対するセマンティックス(semantics)を示す。
【0617】
【表18】
【0618】
表17の例で、タイルインデックスの差分を示す情報が符号化されたかを示すシンタッ
クスtile_idx_delta_present_flagは現在ピクチャに含まれ
るスライスの個数が1以上の場合に符号化/復号化されることを例示した。
【0619】
ピクチャ内のスライスの個数が2の場合、ピクチャを水平方向又は垂直方向に分割する
ことにより、2個の長方形のスライスを生成することができる。
【0620】
図39はピクチャが2個のスライスから構成された場合の例を示す図である。
【0621】
図39の(a)はピクチャが水平方向に分割された例を示し、図39の(b)はピクチ
ャが垂直方向に分割された例を示す。
【0622】
図示の例のように、ピクチャが2個のスライスのみを含む場合、スライスの幅を示すシ
ンタックス又はスライスの高さを示すシンタックスのみで2個のスライスそれぞれを区分
することができる。
【0623】
一例として、図39の(a)に示した例のように、ピクチャを水平方向に分割する場合
、インデックス0のスライスの幅を示すシンタックスslice_width_in_t
iles_minus1[0]及びインデックス0のスライスの高さを示すシンタックス
slice_height_in_tiles_minus1[0]に基づいてスライス
0を特定することができる。スライス1に対しては、スライスのサイズを決定するための
シンタックスの符号化/復号化を省略し、ピクチャ内のスライス0を除いた残余領域をス
ライス1に設定することができる。また、スライス1の左上端タイルのインデックスは、
スライス0に含まれるタイル行の個数とタイル列の個数との積から1を差し引いて誘導す
ることができる。
【0624】
図39の(b)に示した例のように、ピクチャを垂直方向に分割する場合、インデック
ス0のスライスの幅を示すシンタックスslice_width_in_tiles_m
inus1[0]及びインデックス0のスライスの高さを示すシンタックスslice_
height_in_tiles_minus1[0]に基づいてスライス0を特定する
ことができる。スライス1に対しては、スライスのサイズを決定するためのシンタックス
の符号化/復号化を省略し、ピクチャ内のスライス0を除いた残余領域をスライス1に設
定することができる。また、スライス1の左上端タイルのインデックスは、スライス1に
含まれるタイル行の個数と同様に誘導することができる。
【0625】
このように、ピクチャに2個のスライスのみが含まれた場合、タイルインデックスの差
分を示す情報の符号化を省略しても、すべてのスライス内の左上端タイルのインデックス
を誘導することができる。これにより、ピクチャに含まれるスライスの個数が2以下の場
合、タイルインデックス差分情報の符号化/復号化可否を示すシンタックスtile_i
dx_delta_present_flagの符号化/復号化を省略し、その値を0に
誘導することができる。これにより、スライス別にtile_idx_delta[i]
の符号化/復号化も省略することができる。
【0626】
表19は現在ピクチャが含むスライスの個数が2以下の場合、シンタックスtile_
idx_delta_present_flagの符号化/復号化を省略するシンタック
ス構造を示す。
【0627】
【表19】
【0628】
表19の例のように、シンタックスtile_idx_delta_present_
flagは、シンタックスnum_slices_in_pic_minus1が1より
大きい場合に限り、符号化/復号化することができる。
【0629】
ピクチャ内のタイル列の個数が1の場合又はタイル行の個数が1の場合にも、タイルイ
ンデックス差分情報を用いなくても、各スライス内の左上端タイル位置を識別することが
できる。
【0630】
図40はピクチャ内のタイル列又はタイル行の個数が1の場合を例示する図である。
【0631】
図40の(a)はピクチャが1個のタイル列を含む場合を例示するものであり、図40
の(b)はピクチャが1個のタイル行を含む場合を例示するものである。
【0632】
ピクチャが1個のタイル列を含む場合、スライスの左上端タイルのインデックスは以前
スライスの高さに基づいて誘導することができる。一例として、図40の(a)に示した
例のように、一番目タイルが2個のスライスに分割されれば、2個のスライスの中で一番
目スライスslice0に対する幅を示すシンタックスslice_width_in_
tiles_minus1[0]及び高さを示すシンタックスslice_width_
in_tiles_minus1[0]はいずれも0に設定する。二番目スライスsli
ce1は一番目スライスslice0と同じタイルに属するので、二番目スライスsli
ce1に対しては、シンタックスslice_width_in_tiles_minu
s1[i]及び高さを示すシンタックスslice_width-in_tiles_m
inus1[i]の符号化/復号化を省略することができる。
【0633】
三番目スライスの左側タイルインデックスは以前スライスに対してシグナリングされた
タイル行の個数に設定することができる。一例として、スライス0に対してシグナリング
されるシンタックスslice_height_in_tiles_minus1[0]
から、1個のタイル行がスライスから編成されることを認知することができるので、スラ
イス2の左上端タイル行のインデックスは1に設定することができる。
【0634】
スライス3の左上端タイル行のインデックスは以前スライスのタイル行の高さに基づい
て誘導することができる。一例として、スライス0に対してシグナリングされるシンタッ
クスslice_height_in_tiles_minus1[0]及びスライス2
に対してシグナリングされるシンタックスslice_height_width_in
_tiles_minus1[2]から、総3個のタイル行がスライスから編成されるこ
とを認知することができるので、スライス3の左上端タイル行のインデックスは3に設定
することができる。
【0635】
すなわち、ピクチャが1個のタイル列を含む場合、以前スライスが占有するタイル行の
個数を次のスライスの左上端タイルインデックスに決定することができる。
【0636】
ピクチャが1個のタイル行を含む場合、スライスの左上端タイルのインデックスは以前
スライスの幅に基づいて誘導することができる。一例として、図40の(b)に示した例
のように、一番目タイルが1個のスライスに設定された場合、一番目スライスslice
0の幅を示すシンタックスslice_width_in_tiles_minus1[
0]及び高さを示すシンタックスslice_width_in_tiles_minu
s1[0]はいずれも0に設定する。
【0637】
二番目スライスの左側タイルインデックスは以前スライスに対してシグナリングされた
タイル列の個数に設定することができる。一例として、スライス0に対してシグナリング
されるシンタックスslice_width_in_tiles_minus1[0]か
ら、1個のタイル列がスライスから編成されることを認知することができるので、スライ
ス1の左上端タイル行のインデックスは1に設定することができる。
【0638】
スライス2の左上端タイル行のインデックスは以前スライスのタイル列の高さに基づい
て誘導することができる。一例として、スライス0に対してシグナリングされるシンタッ
クスslice_width_in_tiles_minus1[0]及びスライス1に
対してシグナリングされるシンタックスslice_width_width_in_t
iles_minus1[1]から、総3個のタイル列がスライスから編成されることを
認知することができるので、スライス2の左上端タイル行のインデックスは3に設定する
ことができる。
【0639】
すなわち、ピクチャが1個のタイル行を含む場合、以前スライスが占有するタイル列の
個数を次のスライスの左上端タイルインデックスに決定することができる。
【0640】
このように、ピクチャが1個のタイル列又は1個のタイル行のみから構成される場合、
タイルインデックス差分情報なしにも、各スライスの左上端タイルのインデックスを特定
することができる。これにより、ピクチャに含まれるタイル列又はタイル行の個数が1の
場合、タイルインデックス差分情報の符号化/復号化可否を示すシンタックスtile_
idx_delta_present_flagの符号化/復号化を省略し、その値を0
に誘導することができる。これにより、スライス別にtile_idx_delta[i
]の符号化/復号化も省略することができる。
【0641】
表20は現在ピクチャが含むタイル列又はタイル行の個数が1の場合、シンタックスt
ile_idx_delta_present_flagの符号化/復号化を省略するシ
ンタックス構造を示す。
【0642】
【表20】
【0643】
表20の例のように、シンタックスtile_idx_delta_present_
flagは、タイル列の個数NumTileColumns又はタイル行の個数NumT
ileRowsが1より大きい場合に限り、符号化することができる。
【0644】
タイルのインデックスの代わりに、コーディングツリーユニットのインデックスに基づ
いてスライスを定義することも可能である。
【0645】
上述した例では、ラスタースキャン順にタイルに順番を付与してスライスを定義すると
仮定した。他の例として、垂直スキャン、水平スキャン又は対角スキャンの順にタイルに
順番を付与してスライスを定義することもできる。
【0646】
復号化過程又は符号化過程を中心に説明した実施例を符号化過程又は復号化過程に適用
することは本発明の範疇に含まれるものである。所定の順に説明した実施例を説明したも
のと異なる順に変更することも本発明の範疇に含まれるものである。
【0647】
上述した実施例は一連の段階又はフローチャートに基づいて説明したが、これは発明の
時系列順を限定したものではなく、必要によって同時に遂行するか他の順に遂行すること
ができる。また、上述した実施例で、ブロック図を構成する構成要素(例えば、ユニット
、モジュールなど)のそれぞれはハードウェア装置又はソフトウェアによって具現される
こともでき、複数の構成要素が結合して単一のハードウェア装置又はソフトウェアに具現
されることもできる。上述した実施例は多様なコンピュータ構成要素を介して遂行するこ
とができるプログラム命令語の形態に具現され、コンピュータ可読の記録媒体に記録され
ることができる。前記コンピュータ可読の記録媒体は、プログラム命令語、データファイ
ル、データ構造などを単独で又は組合せで含むことができる。コンピュータ可読の記録媒
体の例には、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、C
D-ROM、DVDのような光記録媒体、フロプティカルディスク(floptical
disk)のような磁気光媒体(magneto-optical media)、及
びROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存して遂行する
ように特別に構成されたハードウェア装置が含まれる。前記ハードウェア装置は、本発明
による処理を遂行するために、一つ以上のソフトウェアモジュールとして作動するように
構成されることができ、その逆も同様である。
【産業上の利用可能性】
【0648】
本発明は映像を符号化/復号化する電子装置に適用可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40