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

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

▶ エルジー エレクトロニクス インコーポレイティドの特許一覧

特許7362910パレットモードを用いた画像符号化/復号化方法、装置、及びビットストリームの伝送方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-06
(45)【発行日】2023-10-17
(54)【発明の名称】パレットモードを用いた画像符号化/復号化方法、装置、及びビットストリームの伝送方法
(51)【国際特許分類】
   H04N 19/11 20140101AFI20231010BHJP
   H04N 19/157 20140101ALI20231010BHJP
   H04N 19/176 20140101ALI20231010BHJP
   H04N 19/186 20140101ALI20231010BHJP
   H04N 19/70 20140101ALI20231010BHJP
【FI】
H04N19/11
H04N19/157
H04N19/176
H04N19/186
H04N19/70
【請求項の数】 14
(21)【出願番号】P 2022518236
(86)(22)【出願日】2020-09-23
(65)【公表番号】
(43)【公表日】2022-11-24
(86)【国際出願番号】 KR2020012898
(87)【国際公開番号】W WO2021060844
(87)【国際公開日】2021-04-01
【審査請求日】2022-05-13
(31)【優先権主張番号】62/904,578
(32)【優先日】2019-09-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100109841
【弁理士】
【氏名又は名称】堅田 健史
(74)【代理人】
【識別番号】230112025
【弁護士】
【氏名又は名称】小林 英了
(74)【代理人】
【識別番号】230117802
【弁護士】
【氏名又は名称】大野 浩之
(74)【代理人】
【識別番号】100131451
【弁理士】
【氏名又は名称】津田 理
(74)【代理人】
【識別番号】100167933
【弁理士】
【氏名又は名称】松野 知紘
(74)【代理人】
【識別番号】100174137
【弁理士】
【氏名又は名称】酒谷 誠一
(74)【代理人】
【識別番号】100184181
【弁理士】
【氏名又は名称】野本 裕史
(72)【発明者】
【氏名】ジャン,ヒョン ムン
(72)【発明者】
【氏名】ヨ,ソンミ
(72)【発明者】
【氏名】ナム,ジュン ハク
【審査官】田部井 和彦
(56)【参考文献】
【文献】Yu-Chen Sun Jian Lou Yung-Hsuan Chao Hongtao Wang Vadim Seregin Marta Karczewicz,CE8: Proposed WD for palette mode of HEVC SCC (Test8.2.1) [online], JVET-M JVET-M0050WD,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0050-v3.zip>,2019年01月09日,pp.1-8, 11-12
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/11
H04N 19/157
H04N 19/176
H04N 19/186
H04N 19/70
(57)【特許請求の範囲】
【請求項1】
画像復号化装置によって行われる画像復号化方法であって、
前記画像復号化方法は、
現在ブロックにパレットモードが適用される場合、ビットストリームから前記現在ブロックに対するパレット情報及びパレットインデックス予測情報を取得するステップと;
前記パレット情報に基づいて前記現在ブロックに対するパレット予測子を構成し、前記パレット予測子に基づいて前記現在ブロックに対するパレットテーブルを構成するステップと;
前記パレットインデックス予測情報に基づいて、前記現在ブロックに対するパレットインデックスマップを生成するステップと;及び
前記パレットテーブル及び前記パレットインデックスマップに基づいて、前記現在ブロックを復号化するステップと;を含んでなり、
前記パレット予測子更新されるか否かは、前記現在ブロックの分割構造がローカルデュアルツリー構造であるか否かに基づいて決定される、画像復号化方法。
【請求項2】
前記現在ブロックがクロマブロックであり、前記現在ブロックの分割構造が前記ローカルデュアルツリー構造である場合、前記パレット予測子は更新されない、請求項1に記載の画像復号化方法。
【請求項3】
前記現在ブロックの分割構造が前記ローカルデュアルツリー構造であるか否かは、前記現在ブロックのツリータイプ及び前記現在ブロックを含むCTUの分割構造のうちの少なくとも一つに基づいて決定される、請求項2に記載の画像復号化方法。
【請求項4】
前記現在ブロックがクロマブロックであり、前記現在ブロックの分割構造が前記ローカルデュアルツリー構造でない場合、前記パレット予測子は、前記パレットテーブルに基づいて更新される、請求項1に記載の画像復号化方法。
【請求項5】
前記更新されたパレット予測子は、前記パレットテーブルに含まれた少なくとも一つのパレットエントリを含む、請求項4に記載の画像復号化方法。
【請求項6】
前記更新されたパレット予測子は、前記パレットテーブルに含まれない少なくとも一つの新しいパレットエントリを含む、請求項4に記載の画像復号化方法。
【請求項7】
前記現在ブロックにパレットモードを適用するか否かは、前記現在ブロックの予測モードタイプに基づいて決定される、請求項1に記載の画像復号化方法。
【請求項8】
前記現在ブロックの予測モードタイプが、イントラ予測、IBC(intra block copy)、パレットモード、及びインター予測が全て適用できる第1モードタイプである場合、前記現在ブロックにパレットモードが適用される、請求項7に記載の画像復号化方法。
【請求項9】
前記現在ブロックの予測モードタイプが、イントラ予測のみが適用できる第2モードタイプである場合、前記現在ブロックにパレットモードが適用されない、請求項7に記載の画像復号化方法。
【請求項10】
画像符号化装置によって行われる画像符号化方法であって、
現在ブロックにパレットモードが適用される場合、前記現在ブロックに対するパレット予測子を構成し、前記パレット予測子に基づいて前記現在ブロックに対するパレットテーブルを構成するステップと;
前記パレットテーブルに基づいて、前記現在ブロックに対するパレットインデックスマップを生成するステップと;及び
前記パレットインデックスマップに基づいて前記現在ブロックを符号化するステップと;を含んでなり、
前記パレット予測子更新されるか否かは、前記現在ブロックの分割構造がローカルデュアルツリー構造であるか否かに基づいて決定される、画像符号化方法。
【請求項11】
前記現在ブロックがクロマブロックであり、前記現在ブロックの分割構造が前記ローカルデュアルツリー構造である場合、前記パレット予測子は更新されない、請求項10に記載の画像符号化方法。
【請求項12】
前記現在ブロックがクロマブロックであり、前記現在ブロックの分割構造が前記ローカルデュアルツリー構造でない場合、前記パレット予測子は前記パレットテーブルに基づいて更新される、請求項10に記載の画像符号化方法。
【請求項13】
前記現在ブロックにパレットモードを適用するか否かは、前記現在ブロックの予測モードタイプに基づいて決定される、請求項10に記載の画像符号化方法。
【請求項14】
画像符号化方法によって、生成されたビットストリームを伝送する方法であって、
前記画像符号化方法は、
現在ブロックにパレットモードが適用される場合、前記現在ブロックに対するパレット予測子を構成し、前記パレット予測子に基づいて前記現在ブロックに対するパレットテーブルを構成するステップと;
前記パレットテーブルに基づいて、前記現在ブロックに対するパレットインデックスマップを生成するステップと;及び
前記パレットインデックスマップに基づいて前記現在ブロックを符号化するステップと;を含んでなり、
前記パレット予測子更新されるか否かは、前記現在ブロックの分割構造がローカルデュアルツリー構造であるか否かに基づいて決定される、伝送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パレットモードを用いた画像符号化/復号化方法、装置、及びビットストリームの伝送方法に係り、より詳細には、現在ブロックの分割構造に基づいてパレット予測子を選択的に更新する画像符号化/復号化方法、装置、及び本開示の画像符号化方法/装置によって生成されたビットストリームの伝送方法に関する。
【背景技術】
【0002】
最近、高解像度、高品質の画像、例えばHD(High Definition)画像及びUHD(Ultra High Definition)画像への需要が多様な分野で増加している。画像データが高解像度、高品質になるほど、従来の画像データに比べて、伝送される情報量又はビット量が相対的に増加する。伝送される情報量又はビット量の増加は、伝送費用と保存費用の増加をもたらす。
【0003】
これにより、高解像度、高品質画像の情報を効果的に伝送又は保存し、再生するための高効率の画像圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、符号化/復号化効率が向上した画像符号化/復号化方法及び装置を提供することを目的とする。
【0005】
また、本開示は、パレットモードを用いた画像符号化/復号化方法及び装置を提供することを目的とする。
【0006】
また、本開示は、現在ブロックの分割構造に基づいてパレット予測子を選択的に更新する画像符号化/復号化方法及び装置を提供することを目的とする。
【0007】
また、本開示は、現在ブロックの分割構造に基づいてパレットモードを選択的に適用する画像符号化/復号化方法及び装置を提供することを目的とする。
【0008】
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームの伝送方法を提供することを目的とする。
【0009】
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体を提供することを目的とする。
【0010】
また、本開示は、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体を提供することを目的とする。
【0011】
本開示で解決しようとする技術的課題は、上述した技術的課題に制限されず、上述していない別の技術的課題は、以降の記載から本開示の属する技術分野における通常の知識を有する者に明確に理解できるであろう。
【課題を解決するための手段】
【0012】
本開示の一態様による画像復号化方法は、現在ブロックにパレットモードが適用される場合、ビットストリームから前記現在ブロックに対するパレット情報及びパレットインデックス予測情報を取得するステップと、前記パレット情報に基づいて、前記現在ブロックに対するパレット予測子及びパレットテーブルを構成するステップと、前記パレットインデックス予測情報に基づいて、前記現在ブロックに対するパレットインデックスマップを生成するステップと、前記パレットテーブル及び前記パレットインデックスマップに基づいて、前記現在ブロックを復号化するステップと、を含み、前記パレット予測子は、前記現在ブロックの分割構造に基づいて選択的に更新できる。
【0013】
本開示の他の態様による画像復号化装置は、メモリ及び少なくとも一つのプロセッサを含み、前記少なくとも一つのプロセッサは、現在ブロックにパレットモードが適用される場合、ビットストリームから前記現在ブロックに対するパレット情報及びパレットインデックス予測情報を取得し、前記パレット情報に基づいて、前記現在ブロックに対するパレット予測子及びパレットテーブルを構成し、前記パレットインデックス予測情報に基づいて、前記現在ブロックに対するパレットインデックスマップを生成し、前記パレットテーブル及び前記パレットインデックスマップに基づいて、前記現在ブロックを復号化し、前記パレット予測子は、前記現在ブロックの分割構造に基づいて選択的に更新できる。
【0014】
本開示の別の態様による画像符号化方法は、現在ブロックにパレットモードが適用される場合、前記現在ブロックに対するパレット予測子及びパレットテーブルを構成するステップと、前記パレットテーブルに基づいて、前記現在ブロックに対するパレットインデックスマップを生成するステップと、前記パレットインデックスマップに基づいて前記現在ブロックを符号化するステップと、を含み、前記パレット予測子は、前記現在ブロックの分割構造に基づいて選択的に更新できる。
【0015】
また、本開示の別の態様による伝送方法は、本開示の画像符号化装置又は画像符号化方法によって生成されたビットストリームを伝送することができる。
【0016】
また、本開示の別の態様によるコンピュータ可読記録媒体は、本開示の画像符号化方法又は画像符号化装置によって生成されたビットストリームを保存することができる。
【0017】
本開示について簡略に要約して上述した特徴は、後述する本開示の詳細な説明の例示的な態様に過ぎず、本開示の範囲を制限するものではない。
【発明の効果】
【0018】
本開示によれば、符号化/復号化効率が向上した画像符号化/復号化方法及び装置が提供されることができる。
【0019】
また、本開示によれば、改善されたパレットモードに基づく画像符号化/復号化方法及び装置が提供されることができる。
【0020】
また、本開示によれば、現在ブロックの分割構造に基づいてパレットモードを選択的に適用する画像符号化/復号化方法及び装置が提供されることができる。
【0021】
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームの伝送方法が提供されることができる。
【0022】
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体が提供されることができる。
【0023】
また、本開示によれば、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体が提供されることができる。
【0024】
本開示で得られる効果は、上述した効果に限定されず、上述していない別の効果は、以降の記載から、本開示の属する技術分野における通常の知識を有する者に明確に理解できるだろう。
【図面の簡単な説明】
【0025】
図1】本開示による実施例が適用できるビデオコーディングシステムを概略的に示す図である。
図2】本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
図3】本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
図4】一実施例による画像の分割構造を示す図である。
図5】マルチタイプツリー構造によるブロックの分割タイプの一実施例を示す図である。
図6】本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造におけるブロック分割情報のシグナリングメカニズムを例示する図である。
図7】CTUが多重CUに分割される一実施例を示す図である。
図8】冗長(redundant)分割パターンの一実施例を示す図である。
図9】4:2:0のカラーフォーマットにおけるルマブロック及びクロマブロックの一例を示す図である。
図10a-10c】シングルツリー構造をデュアルツリー構造に切り替えるためのシンタックスの一例を示す図である。
図11】イントラ予測に基づくビデオ/画像符号化方法を示すフローチャートである。
図12】本開示によるイントラ予測部の構成を例示的に示す図である。
図13】イントラ予測に基づくビデオ/画像復号化方法を示すフローチャートである。
図14】本開示によるイントラ予測部の構成を例示的に示す図である。
図15】パレットモードで利用できるスキャン方式の一例を示す図である。
図16】現在ブロックのパレット符号化過程の一例を示す図である。
図17】パレットモードのためのcoding_unitシンタックスの一部を示す図である。
図18a-18e】パレットモードのためのpallett_codingシンタックスを示す図である。
図19】ローカルデュアルツリー構造を持つCTUの一例を示す図である。
図20図19の例におけるそれぞれのCUに対する復号化過程の一例を示す図である。
図21-22】図20の復号化過程でパレットモードを適用する際に発生する問題を説明するための図である。
図23】本開示の一実施例によるパレット符号化方法を示すフローチャートである。
図24図19の例における、パレット予測子が更新されない場合のパレット符号化過程を説明するための図である。
図25】現在ブロックの分割構造に基づいてパレット予測子を選択的に更新する過程の一例を示す図である。
図26】本開示の一実施例によるパレット復号化方法を示すフローチャートである。
図27】本開示の一実施例によるパレット符号化方法を示すフローチャートである。
図28】パレットモードフラグを含むcoding_unitシンタックスの具体的な一例を示す図である。
図29】本開示の一実施例によるパレット復号化方法を示すフローチャートである。
図30】本開示による実施例が適用できるコンテンツストリーミングシステムを例示的に示す図である。
【発明を実施するための形態】
【0026】
以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
【0027】
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
【0028】
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
【0029】
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素は、他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を、他の実施例で第1構成要素と呼んでもよい。
【0030】
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
【0031】
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
【0032】
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
【0033】
本開示において、「ピクチャ(picture)」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、ピクチャの一部を構成する符号化単位であって、一つのピクチャは、一つ以上のスライス/タイルで構成できる。また、スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。
【0034】
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0035】
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(block)」又は「領域(area)」などの用語と混用して使用できる。一般な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
【0036】
本開示において、「現在ブロック」は、「現在コーディングブロック」、「現在コーティングユニット」、「符号化対象ブロック」、「復号化対象ブロック」又は「処理対象ブロック」のうちのいずれか一つを意味することができる。予測が行われる場合、「現在ブロック」は、「現在予測ブロック」又は「予測対象ブロック」を意味することができる。変換(逆変換)/量子化(逆量子化)が行われる場合、「現在ブロック」は「現在変換ブロック」又は「変換対象ブロック」を意味することができる。フィルタリングが行われる場合、「現在ブロック」は「フィルタリング対象ブロック」を意味することができる。
【0037】
また、本開示において、「現在ブロック」は、クロマブロックという明示的な記載がない限り、ルマ成分ブロックとクロマ成分ブロックを全て含むブロック又は「現在ブロックのルマブロック」を意味することができる。現在ブロックのルマ成分ブロックは、明示的に「ルマブロック」又は「現在ルマブロック」のようにルマ成分ブロックという明示的な記載を含んで表現できる。また、現在ブロックのクロマ成分ブロックは、明示的に「クロマブロック」又は「現在クロマブロック」のようにクロマ成分ブロックという明示的な記載を含んで表現できる。
【0038】
本開示において、「/」と「、」は「及び/又は」と解釈されることができる。例えば、「A/B」と「A、B」は「A及び/又はB」と解釈されることができる。また、「A/B/C」と「A、B、C」は、「A、B及び/又はCのうちの少なくとも一つ」を意味することができる。
【0039】
本開示において、「又は」は「及び/又は」と解釈されることができる。例えば、「A又はB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「A及びB」を意味することができる。又は、本開示において、「又は」は、「追加的に又は代替的に(additionally or alternatively)」を意味することができる。
【0040】
ビデオコーディングシステムの概要
【0041】
図1は本開示によるビデオコーディングシステムを示す図である。
【0042】
一実施例によるビデオコーディングシステムは、符号化装置10及び復号化装置20を含むことができる。符号化装置10は、符号化されたビデオ(video)及び/又は画像(image)情報又はデータをファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20へ伝達することができる。
【0043】
一実施例による符号化装置10は、ビデオソース生成部11、符号化部12及び伝送部13を含むことができる。一実施例による復号化装置20は、受信部21、復号化部22及びレンダリング部23を含むことができる。前記符号化部12は、ビデオ/画像符号化部と呼ばれることができ、前記復号化部22は、ビデオ/画像復号化部と呼ばれることができる。伝送部13は、符号化部12に含まれることができる。受信部21は、復号化部22に含まれることができる。レンダリング部23は、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイス又は外部コンポーネントとして構成されることもできる。
【0044】
ビデオソース生成部11は、ビデオ/画像のキャプチャ、合成又は生成過程などを介してビデオ/画像を取得することができる。ビデオソース生成部11は、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して、仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程は、関連データが生成される過程に置き換えられることができる。
【0045】
符号化部12は、入力ビデオ/画像を符号化することができる。符号化部12は、圧縮及び符号化効率のために、予測、変換、量子化などの一連の手順を行うことができる。符号化部12は、符号化されたデータ(符号化されたビデオ/画像情報)をビットストリーム(bitstream)形式で出力することができる。
【0046】
伝送部13は、ビットストリーム形式で出力された、符号化されたビデオ/画像情報又はデータを、ファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20の受信部21に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray(登録商標:以下同じ)、HDD、SSDなどのさまざまな記憶媒体を含むことができる。伝送部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部21は、前記記憶媒体又はネットワークから前記ビットストリームを抽出/受信して復号化部22に伝達することができる。
【0047】
復号化部22は、符号化部12の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像を復号化することができる。
【0048】
レンダリング部23は、復号化されたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示されることができる。
【0049】
画像符号化装置の概要
【0050】
図2は本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
【0051】
図2に示されているように、画像符号化装置100は、画像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピー符号化部190を含むことができる。インター予測部180及びイントラ予測部185は、合わせて「予測部」と呼ばれることができる。変換部120、量子化部130、逆量子化部140及び逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は減算部115をさらに含むこともできる。
【0052】
画像符号化装置100を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって実現できる。
【0053】
画像分割部110は、画像符号化装置100に入力された入力画像(又は、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に(recursively)分割することにより取得されることができる。例えば、一つのコーディングニットは、四分木構造、二分木構造及び/又は三分木構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割されることができる。コーディングユニットの分割のために、四分木構造が先に適用され、二分木構造及び/又は三分木構造が後で適用されることができる。それ以上分割されない最終コーディングユニットを基に、本開示によるコーディング手順が行われることができる。最大コーディングユニットが最終コーディングユニットとして使用されることができ、最大コーディングユニットを分割して取得した下位デプスのコーディングユニットが最終コーディングユニットとして使用されることもできる。ここで、コーディング手順とは、後述する予測、変換及び/又は復元などの手順を含むことができる。他の例として、前記コーディング手順の処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)であることができる。前記予測ユニット及び前記変換ユニットは、それぞれ前記最終コーディングユニットから分割又はパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を誘導する単位、及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であることができる。
【0054】
予測部(インター予測部180又はイントラ予測部185)は、処理対象ブロック(現在ブロック)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか、或いはインター予測が適用されるかを決定することができる。予測部は、現在ブロックの予測に関するさまざまな情報を生成してエントロピー符号化部190に伝達することができる。予測に関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
【0055】
イントラ予測部185は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。参照される前記サンプルは、イントラ予測モード及び/又はイントラ予測技法に従って、前記現在ブロックの周辺(neighbor)に位置することもでき、或いは離れて位置することもできる。イントラ予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びPlanarモードを含むことができる。方向性モードは、予測方向の細密な程度に応じて、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定に基づいてそれ以上又はそれ以下の個数の方向性予測モードが使用できる。イントラ予測部185は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0056】
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、互いに異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができる。前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることができる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われることができ、例えばスキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)及び動きベクトル予測子に対するインジケータ(indicator)を符号化することにより、現在ブロックの動きベクトルをシグナリングすることができる。動きベクトル差分は、現在ブロックの動きベクトルと動きベクトル予測子との差を意味することができる。
【0057】
予測部は、後述する様々な予測方法及び/又は予測技法に基づいて予測信号を生成することができる。例えば、予測部は、現在ブロックの予測のために、イントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。現在ブロックの予測のためにイントラ予測とインター予測を同時に適用する予測方法は、CIIP(combined inter and intra prediction)と呼ばれることができる。また、予測部は、現在ブロックの予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。IBCは、現在ブロックから所定の距離だけ離れた位置の現在ピクチャ内の既に復元された参照ブロックを用いて現在ブロックを予測する方法である。IBCが適用される場合、現在ピクチャ内の参照ブロックの位置は前記所定の距離に該当するベクトル(ブロックベクトル)として符号化されることができる。IBCは、基本的に、現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点において、インター予測と同様に行われることができる。すなわち、IBCは、本開示で説明されるインター予測技法のうちの少なくとも一つを用いることができる。
【0058】
予測部によって生成された予測信号は、復元信号を生成するために用いられるか、或いはレジデュアル信号を生成するために用いられることができる。減算部115は、入力画像信号(原本ブロック、原本サンプルアレイ)から、予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、レジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部120に伝送されることができる。
【0059】
変換部120は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうちの少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元されたすべてのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形ではない、可変サイズのブロックに適用されることもできる。
【0060】
量子化部130は、変換係数を量子化してエントロピー符号化部190に伝送することができる。エントロピー符号化部190は、量子化された信号(量子化された変換係数に関する情報)を符号化してビットストリーム形式で出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順序(scan order)に基づいて、ブロック形式の量子化された変換係数を1次元ベクトル形式で再整列することができ、前記1次元ベクトル形式の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
【0061】
エントロピー符号化部190は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などの様々な符号化方法を行うことができる。エントロピー符号化部190は、量子化された変換係数の他に、ビデオ/画像復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を一緒に又は別々に符号化することもできる。符号化された情報(例えば、符号化されたビデオ/画像情報)は、ビットストリーム形式でNAL(network abstraction layer)ユニット単位で伝送又は保存されることができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本開示で言及されたシグナリング情報、伝送される情報及び/又はシンタックス要素は、上述した符号化手順を介して符号化されて前記ビットストリームに含まれることができる。
【0062】
前記ビットストリームは、ネットワークを介して伝送されることができ、又はデジタル記憶媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。エントロピー符号化部190から出力された信号を伝送する伝送部(図示せず)及び/又は保存する保存部(図示せず)が画像符号化装置100の内/外部要素として備えられることができ、又は伝送部はエントロピー符号化部190の構成要素として備えられることもできる。
【0063】
量子化部130から出力された、量子化された変換係数は、レジデュアル信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。
【0064】
加算部155は、復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0065】
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的にはメモリ170のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するようにフィルタリングに関する様々な情報を生成してエントロピー符号化部190に伝達することができる。フィルタリングに関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
【0066】
メモリ170に伝送された、修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。画像符号化装置100は、これを介してインター予測が適用される場合、画像符号化装置100と画像復号化装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
【0067】
メモリ170内のDPBは、インター予測部180での参照ピクチャとして使用するために、修正された復元ピクチャを保存することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内ブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部180に伝達されることができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部185に伝達することができる。
【0068】
画像復号化装置の概要
【0069】
図3は本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
【0070】
図3に示されているように、画像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成できる。インター予測部260及びイントラ予測部265を合わせて「予測部」と呼ばれることができる。逆量子化部220、逆変換部230はレジデュアル処理部に含まれることができる。
【0071】
画像復号化装置200を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPBを含むことができ、デジタル記憶媒体によって実現できる。
【0072】
ビデオ/画像情報を含むビットストリームを受信した画像復号化装置200は、図1の画像符号化装置100で行われたプロセスに対応するプロセスを実行して画像を復元することができる。例えば、画像復号化装置200は、画像符号化装置で適用された処理ユニットを用いて復号化を行うことができる。したがって、復号化の処理ユニットは、例えばコーディングユニットであることができる。コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットを分割して取得できる。そして、画像復号化装置200を介して復号化及び出力された復元画像信号は、再生装置(図示せず)を介して再生できる。
【0073】
画像復号化装置200は、図2の画像符号化装置から出力された信号をビットストリーム形式で受信することができる。受信された信号は、エントロピー復号化部210を介して復号化できる。例えば、エントロピー復号化部210は、前記ビットストリームをパーシングして画像復元(又はピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。画像復号化装置は、画像を復号化するために、前記パラメータセットに関する情報及び/又は前記一般制限情報をさらに用いることができる。本開示で言及されたシグナリング情報、受信される情報及び/又はシンタックス要素は、前記復号化手順を介して復号化されることにより、前記ビットストリームから取得されることができる。例えば、エントロピー復号化部210は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号化し、画像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピー復号化方法は、ビットストリームから各シンタックス要素に該当するビン(bin)を受信し、復号化対象シンタックス要素情報と周辺ブロック及び復号化対象ブロックの復号化情報、或いは以前ステップで復号化されたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいてビン(bin)の発生確率を予測してビンの算術復号化(arithmetic decoding)を行うことにより、各シンタックス要素の値に該当するシンボルを生成することができる。この時、CABACエントロピー復号化方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのために、復号化されたシンボル/ビンの情報を用いてコンテキストモデルを更新することができる。エントロピー復号化部210で復号化された情報のうち、予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)に提供され、エントロピー復号化部210でエントロピー復号化が行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピー復号化部210で復号化された情報のうち、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、画像符号化装置から出力された信号を受信する受信部(図示せず)が画像復号化装置200の内/外部要素としてさらに備えられることができ、又は受信部はエントロピー復号化部210の構成要素として備えられることもできる。
【0074】
一方、本開示による画像復号化装置は、ビデオ/画像/ピクチャ復号化装置と呼ばれることができる。前記画像復号化装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及び/又はサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)を含むこともできる。前記情報デコーダは、エントロピー復号化部210を含むことができ、前記サンプルデコーダは、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265のうちの少なくとも一つを含むことができる。
【0075】
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロック形式で再整列することができる。この場合、前記再整列は、画像符号化装置で行われた係数スキャン順序に基づいて行われることができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0076】
逆変換部230では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得することができる。
【0077】
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピー復号化部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか或いはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モード(予測技法)を決定することができる。
【0078】
予測部が後述の様々な予測方法(技法)に基づいて予測信号を生成することができるのは、画像符号化装置100の予測部についての説明で述べたのと同様である。
【0079】
イントラ予測部265は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。イントラ予測部185についての説明は、イントラ予測部265に対しても同様に適用されることができる。
【0080】
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。様々な予測モード(技法)に基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモード(技法)を指示する情報を含むことができる。
【0081】
加算部235は、取得されたレジデュアル信号を予測部(インター予測部260及び/又はイントラ予測部265を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155についての説明は、加算部235に対しても同様に適用されることができる。加算部235は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0082】
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的にはメモリ250のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。
【0083】
メモリ250のDPBに保存された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして使用されることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(又は復号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部265に伝達することができる。
【0084】
本明細書において、画像符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施例は、それぞれ画像復号化装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも、同様に又は対応するように適用されることができる。
【0085】
画像分割の概要
【0086】
本開示によるビデオ/画像コーディング方法は、次の画像分割構造に基づいて行われることができる。具体的には、後述する予測、レジデュアル処理((逆)変換、(逆)量子化など)、シンタックス要素コーディング、フィルタリングなどの手順は、前記画像分割構造に基づいて導出されたCTU、CU(及び/又はTU、PU)に基づいて行われることができる。画像はブロック単位で分割されることができ、ブロック分割手順は上述した符号化装置の画像分割部110で行われることができる。分割関連情報は、エントロピー符号化部190で符号化されてビットストリーム形式で復号化装置に伝達できる。復号化装置のエントロピー復号化部210は、前記ビットストリームから取得した前記分割関連情報に基づいて、現在ピクチャのブロック分割構造を導出し、これに基づいて画像復号化のための一連の手順(例えば、予測、レジデュアル処理、ブロック/ピクチャ復元、インループフィルタリングなど)を行うことができる。
【0087】
ピクチャは、コーディングツリーユニット(coding tree units、CTUs)のシーケンスに分割されることができる。図4はピクチャがCTUに分割される例を示す。CTUはコーディングツリーブロック(CTB)に対応することができる。或いは、CTUはルマサンプルのコーディングツリーブロックと、対応するクロマサンプルの二つのコーディングツリーブロックを含むことができる。例えば、三つのサンプルアレイを含むピクチャに対して、CTUは、ルマサンプルのN×Nブロックとクロマサンプルの二つの対応ブロックを含むことができる。
【0088】
CTU分割の概要
【0089】
前述したように、コーディングユニットは、コーディングツリーユニット(CTU)又は最大符号化ユニット(LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に分割することにより取得できる。例えば、CTUは、まず、四分木構造に分割されることができる。その後、四分木構造のリーフノードは、マルチタイプツリー構造によってさらに分割されることができる。
【0090】
四分木による分割は、現在CU(又はCTU)を4等分する分割を意味する。四分木による分割によって、現在CUは、同じ幅と同じ高さを有する4つのCUに分割されることができる。現在CUがそれ以上四分木構造に分割されない場合、現在CUは、四分木構造のリーフノードに該当する。四分木構造のリーフノードに該当するCUは、それ以上分割されず、前述した最終コーディングユニットとして使用できる。又は、四分木構造のリーフノードに該当するCUは、マルチタイプツリー構造によってさらに分割されることができる。
【0091】
図5はマルチタイプツリー構造によるブロックの分割タイプを示す図である。マルチタイプツリー構造による分割は、二分木構造による2つの分割と三分木構造による2つの分割を含むことができる。
【0092】
二分木構造による2つの分割は、垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)と水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)を含むことができる。垂直バイナリ分割(SPLIT_BT_VER)は、現在CUを垂直方向に二等分する分割を意味する。図5に示されているように、垂直バイナリ分割によって、現在CUの高さと同じ高さ及び現在CUの幅の半分の幅を有する2つのCUが生成されることができる。水平バイナリ分割(SPLIT_BT_HOR)は、現在CUを水平方向に二等分する分割を意味する。図5に示されているように、水平バイナリ分割によって、現在CUの高さの半分の高さをもって現在CUの幅と同じ幅を有する2つのCUが生成されることができる。
【0093】
三分木構造による2つの分割は、垂直ターナリ分割(vertical ternary splitting、SPLIT_TT_VER)と水平ターナリ分割(horizontal ternary splitting、SPLIT_TT_HOR)を含むことができる。垂直ターナリ分割(SPLIT_TT_VER)は、現在CUを垂直方向に1:2:1の割合で分割する。図5に示されているように、垂直ターナリ分割によって、現在CUの高さと同じ高さ及び現在CUの幅の1/4の幅を有する2つのCUと、現在CUの高さと同じ高さ及び現在CUの幅の半分の幅を有するCUが生成されることができる。水平ターナリ分割SPLIT_TT_HORは、現在CUを水平方向に1:2:1の割合で分割する。図4に示されているように、水平ターナリ分割によって、現在CUの高さの1/4の高さ及び現在CUの幅と同じ幅を有する2つのCUと、現在CUの高さの半分の高さ及び現在CUの幅と同じ幅を有する1つのCUが生成されることができる。
【0094】
図6は本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造でのブロック分割情報のシグナリングメカニズムを例示する図である。
【0095】
ここで、CTUは四分木のルート(root)ノードとして扱われ、CTUは四分木構造に初めて分割される。現在CU(CTU又は四分木のノード(QT_node))に対して四分木分割を行うか否かを指示する情報(例えば、qt_split_flag)がシグナリングされることができる。例えば、qt_split_flagが第1値(例えば、「1」)であれば、現在CUは四分木に分割されることができる。また、qt_split_flagが第2値(例えば、「0」)であれば、現在CUは、四分木に分割されず、四分木のリーフノード(QT_leaf_node)になる。各四分木のリーフノードは、以後、マルチタイプツリー構造にさらに分割されることができる。つまり、四分木のリーフノードは、マルチタイプツリーのノード(MTT_node)になることができる。マルチタイプツリー構造で、現在ノードがさらに分割されるかを指示するために、第1フラグ(a first flag、例えば、mtt_split_cu_flag)がシグナリングされることができる。もし当該ノードがさらに分割される場合(例えば、第1フラグが1である場合)には、分割方向(splitting direction)を指示するために、第2フラグ(a second flag、例えば、mtt_split_cu_verticla_flag)がシグナリングされることができる。例えば、第2フラグが1である場合には、分割方向は垂直方向であり、第2フラグが0である場合には、分割方向は水平方向であることができる。その後、分割タイプがバイナリ分割タイプであるかターナリ分割タイプであるかを指示するために、第3フラグ(a third flag、例えば、mtt_split_cu_binary_flag)がシグナリングされることができる。例えば、第3フラグが1である場合には、分割タイプはバイナリ分割タイプであり、第3フラグが0である場合には、分割タイプはターナリ分割タイプであることができる。バイナリ分割又はターナリ分割によって取得されたマルチタイプツリーのノードは、マルチタイプツリー構造にさらにパーティショニングされることができる。しかし、マルチタイプツリーのノードは四分木構造にパーティショニングされることはできない。前記第1フラグが0である場合、マルチタイプツリーの該当ノードは、それ以上分割されず、マルチタイプツリーのリーフノード(MTT_leaf_node)になる。マルチタイプツリーのリーフノードに該当するCUは、前述した最終コーディングユニットとして使用できる。
【0096】
前述したmtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagに基づいて、CUのマルチタイプツリー分割モード(multi-type tree splitting mode、MttSplitMode)が表1のとおりに導出されることができる。以下の説明において、マルチトリー分割モードは、マルチツリー分割タイプ又は分割タイプと略称することができる。
【0097】
【表1】
【0098】
図7は四分木の適用後にマルチタイプツリーが適用されることによりCTUが多重CUに分割される例を示す。図7において、太いブロックエッジ(bold block edge)710は四分木分割を示し、残りのエッジ720はマルチタイプツリー分割を示す。CUは、コーディングロック(CB)に対応することができる。一実施例において、CUは、ルマサンプルのコーディングブロックと、ルマサンプルに対応するクロマサンプルの二つのコーディングブロックと、を含むことができる。
【0099】
クロマ成分(サンプル)CB又はTBサイズは、ピクチャ/画像のカラーフォーマット(クロマフォーマット、例えば、4:4:4、4:2:2、4:2:0など)による成分比に従ってルマ成分(サンプル)CB又はTBサイズに基づいて導出されることができる。カラーフォーマットが4:4:4である場合、クロマ成分CB/TBサイズは、ルマ成分CB/TBサイズと同一に設定されることができる。カラーフォーマットが4:2:2である場合、クロマ成分CB/TBの幅はルマ成分CB/TBの幅の半分に設定されることができ、クロマ成分CB/TBの高さはルマ成分CB/TBの高さに設定されることができる。カラーフォーマットが4:2:0である場合、クロマ成分CB/TBの幅はルマ成分CB/TBの幅の半分に設定されることができ、クロマ成分CB/TBの高さはルマ成分CB/TBの高さの半分に設定されることができる。
【0100】
一実施例において、ルマサンプル単位を基準にCTUのサイズが128であるとき、CUのサイズは、CTUと同じサイズである128×128から4×4までのサイズを持つことができる。一実施例において、4:2:0カラーフォーマット(又はクロマフォーマット)である場合、クロマCBサイズは64×64から2×2までのサイズを持つことができる。
【0101】
一方、一実施例において、CUサイズとTUサイズとが同じであることができる。又は、CU領域内に複数のTUが存在することもできる。TUサイズとは、一般的に、ルマ成分(サンプル)TB(Transform Block)サイズを示すことができる。
【0102】
前記TUサイズは、予め設定された値である最大許容TBサイズ(maxTbSize)に基づいて導出されることができる。例えば、前記CUサイズが前記maxTbSizeよりも大きい場合、前記CUから、前記maxTbSizeを持つ複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。例えば、最大許容ルマTBサイズは64×64であり、最大許容クロマTBサイズは32×32であることができる。もし前記ツリー構造によって分割されたCBの幅又は高さが最大変換幅又は高さよりも大きい場合、当該CBは、自動的に(又は暗黙的に)水平及び垂直方向のTBサイズの制限を満足するまで分割されることができる。
【0103】
また、例えばイントラ予測が適用される場合、イントラ予測モード/タイプは、前記CU(又はCB)単位で導出され、周辺参照サンプル導出及び予測サンプル生成手順は、TU(又はTB)単位で行われることができる。この場合、一つのCU(又はCB)領域内に一つ又は複数のTU(又はTB)が存在することができ、この場合、前記複数のTU(又はTB)は同じイントラ予測モード/タイプを共有することができる。
【0104】
一方、マルチタイプツリーを伴った四分木コーディングツリースキームのために、次のパラメータがSPSシンタックス要素として符号化装置から復号化装置にシグナリングされることができる。例えば、四分木のルートノードのサイズを示すパラメータであるCTUsize、四分木のリーフノードの最小許容サイズを示すパラメータであるMinQTSize、二分木のルートノードの最大許容サイズを示すパラメータであるMaxBTSize、三分木のルートノードの最大許容サイズを示すパラメータであるMaxTTSize、四分木のリーフノードから分割されるマルチタイプツリーの最大許容階層深さ(maximum allowed hierarchy depth)を示すパラメータであるMaxMttDepth、二分木の最小許容リーフノードサイズを示すパラメータであるMinBtSize、及び三分木の最小許容リーフノードサイズを示すパラメータであるMinTtSizeのうちの少なくとも一つがシグナリングされることができる。
【0105】
4:2:0クロマフォーマットを用いる一実施例において、CTUサイズは128×128ルマブロック及びルマブロックに対応する二つの64×64クロマブロックに設定されることができる。この場合、MinQTSizeは16×16に設定され、MaxBtSizeは128×128に設定され、MaxTtSzieは64×64に設定され、MinBtSize及びMinTtSizeは4×4に設定され、MaxMttDepthは4に設定されことができる。四分木パーティショニングは、CTUに適用されて四分木のリーフノードを生成することができる。四分木のリーフノードはリーフQTノードと呼ばれることができる。四分木のリーフノードは16×16サイズ(例えば、the MinQTSize)乃至128×128サイズ(例えば、the CTU size)を持つことができる。もしリーフQTノードが128×128である場合、さらに二分木/三分木に分割されないことができる。これは、この場合に分割されてもMaxBtsize及びMaxTtszie(例えば、64×64)を超過するためである。これ以外の場合、リーフQTノードは、マルチタイプツリーにさらに分割されることができる。よって、リーフQTノードは、マルチタイプツリーに対するルートノード(root node)であり、リーフQTノードは、マルチタイプツリーデプス(mttDepth)0値を持つことができる。もし、マルチタイプツリーデプスがMaxMttdepth(例えば、4)に到達した場合、それ以上の追加分割は考慮されないことができる。もし、マルチタイプツリーノードの幅がMinBtSizeと同じであり、2xMinTtSizeと同じかそれより小さい場合、それ以上の追加的な水平分割は考慮されないことができる。もし、マルチタイプツリーノードの高さがMinBtSizeと同じであり、2xMinTtSizeと同じかそれより小さい場合、それ以上の追加的な垂直分割は考慮されないことができる。このように分割が考慮されない場合、符号化装置は、分割情報のシグナリングを省略することができる。このような場合、復号化装置は、所定の値に分割情報を誘導することができる。
【0106】
一方、一つのCTUは、ルマサンプルのコーディングブロック(以下、「ルマブロック」という)と、これに対応するクロマサンプルの二つのコーディングブロック(以下、「クロマブロック」という)と、を含むことができる。前述したコーディングツリースキームは、現在CUのルマブロック及びクロマブロックに対して同様に適用されることもでき、個別的に(separate)適用されることもできる。具体的には、一つのCTU内のルマブロック及びクロマブロックが同じブロックツリー構造に分割されることができ、この場合のツリー構造は、シングルツリー(SINGLE_TREE)と表すことができる。又は、一つのCTU内のルマブロック及びクロマブロックは、個別ブロックツリー構造に分割されることができ、この場合のツリー構造は、デュアルツリー(DUAL_TREE)と表すことができる。つまり、CTUがデュアルツリーに分割される場合、ルマブロックに対するブロックツリー構造とクロマブロックに対するブロックツリー構造が別個に存在することができる。このとき、ルマブロックに対するブロックツリー構造は、デュアルツリールマ(DUAL_TREE_LUMA)と呼ばれることができ、クロマブロックに対するブロックツリー構造は、デュアルツリークロマ(DUAL_TREE_CHROMA)と呼ばれることができる。P及びBスライス/タイルグループに対して、一つのCTU内のルマブロック及びクロマブロックは、同じコーディングツリー構造を持つように制限されることができる。しかし、Iスライス/タイルグループに対して、ルマブロック及びクロマブロックは、互いに個別ブロックツリー構造を持つことができる。もし個別ブロックツリー構造が適用される場合、ルマCTB(Coding Tree Block)は、特定のコーディングツリー構造に基づいてCUに分割され、クロマCTBは、他のコーディングツリー構造に基づいてクロマCUに分割されることができる。すなわち、個別ブロックツリー構造が適用されるIスライス/タイルグループ内のCUは、ルマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックで構成され、P又はBスライス/タイルグループのCUは、三つのカラー成分(ルマ成分及び二つのクロマ成分)のブロックで構成され得ることを意味することができる。
【0107】
上記において、マルチタイプツリーを伴った四分木コーディングツリー構造について説明したが、CUが分割される構造はこれに限定されない。例えば、BT構造及びTT構造は、多数の分割ツリー(Multiple Partitioning Tree、MPT)構造に含まれる概念と解釈されることができ、CUはQT構造及びMPT構造によって分割されると解釈することができる。QT構造及びMPT構造によってCUが分割される一例において、QT構造のリーフノードが幾つかのブロックに分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_type)及びQT構造のリーフノードが垂直及び水平のうちのどの方向に分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_mode)がシグナリングされることにより、分割構造が決定されることができる。
【0108】
別の例において、CUは、QT構造、BT構造又はTT構造とは異なる方法で分割されることができる。つまり、QT構造によって下位デプスのCUが上位デプスのCUの1/4サイズに分割されるか、或いはBT構造によって下位デプスのCUが上位デプスのCUの1/2サイズに分割されるか、或いはTT構造によって下位デプスのCUが上位デプスのCUの1/4又は1/2サイズに分割されるのとは異なり、下位デプスのCUは、場合によって、上位デプスのCUの1/5、1/3、3/8、3/5、2/3又は5/8のサイズに分割されることができ、CUが分割される方法は、これに限定されない。
【0109】
このように、前記マルチタイプツリーを伴った四分木コーディングブロック構造は、非常に柔軟なブロック分割構造を提供することができる。一方、マルチタイプツリーに支援される分割タイプのために、場合によって、異なる分割パターンが潜在的に同一のコーディングブロック構造の結果を導出することができる。符号化装置と復号化装置は、このような冗長(redundant)分割パターンの発生を制限することにより、分割情報のデータ量を減らすことができる。
【0110】
例えば、図8は二分木分割及び三分木分割で発生しうる冗長分割パターンを例示的に示す。図8に示されているように、2ステップレベルの一方向に対する連続バイナリ分割810と820は、ターナリ分割後のセンターパーティションに対するバイナリ分割と同じコーディングブロック構造を持つ。このような場合、三分木分割のセンターブロック830、840に対する二分木分割は禁止できる。このような禁止は、すべてのピクチャのCUに対して適用できる。このような特定の分割が禁止される場合、対応するシンタックス要素のシグナリングは、このように禁止される場合を反映して修正でき、これにより、分割のためにシグナリングされるビット数を減らすことができる。例えば、図8に示されている例のように、CUのセンターブロックに対する二分木分割が禁止される場合、分割がバイナリ分割であるかターナリ分割であるかを示すmtt_split_cu_binary_flagシンタックス要素はシグナリングされず、その値は復号化装置によって0に誘導されることができる。
【0111】
クロマフォーマットの概要
【0112】
ソース又はコード化ピクチャ/画像は、ルマ成分(Y)ブロックと二つのクロマ成分(cb,cr)ブロックを含むことができる。つまり、ピクチャ/画像の一つのピクセルは、ルマサンプル及び二つのクロマサンプル(cb,cr)を含むことができる。クロマフォーマットは、ルマサンプルとクロマサンプル(cb,cr)の構成フォーマットを示すことができ、カラーフォーマットと呼ばれることもできる。クロマフォーマットは、予め定められることもでき、或いは適応的にシグナリングされることもできる。例えば、前記クロマフォーマットは、表2に示すように、chroma_format_idc及びseparate_colour_plane_flagのうちの少なくとも一つに基づいてシグナリングされることができる。chroma_format_idc及びseparate_colour_plane_flagのうちの少なくとも一つは、DPS、VPS、SPS、又はPPSなどの上位レベルシンタックスを介してシグナリングされることができる。例えば、chroma_format_idc及びseparate_colour_plane_flagは、SPSシンタックスに含まれることができる。
【0113】
【表2】
【0114】
表2を参照すると、chroma_format_idcは、ルマサンプルとこれに対応するクロマサンプルのフォーマットを示すことができ、separate_colour_plane_flagは、4:4:4のクロマフォーマットで3つのカラー成分(Y,Cb,Cr)が別途符号化されるか否かを示すことができる。
【0115】
chroma_format_idcが0である場合、クロマフォーマットは、モノクローム(monochrome)フォーマットに該当し、現在ブロックは、クロマ成分ブロックを含まず、ルマ成分ブロックのみを含むことができる。
【0116】
又は、chroma_format_idcが1である場合、クロマフォーマットは、4:2:0のクロマフォーマットに該当し、クロマ成分ブロックの幅及び高さは、それぞれルマ成分ブロックの幅及び高さの半分に該当することができる。
【0117】
又は、chroma_format_idcが2である場合、クロマフォーマットは4:2:2のクロマフォーマットに該当し、クロマ成分ブロックの幅はルマ成分ブロックの幅の半分に該当し、クロマ成分ブロックの高さはルマ成分ブロックの高さと同じであり得る。
【0118】
又は、chroma_format_idcが3である場合、クロマフォーマットは4:4:4のクロマフォーマットに該当し、クロマ成分ブロックの幅及び高さはそれぞれルマ成分ブロックの幅及び高さと同じであり得る。
【0119】
SubWidthCとSubHeightCは、ルマサンプルとクロマサンプルとの比率を示すことができる。例えば、ルマ成分ブロックの幅及び高さがそれぞれCbWidth及びCbHeightである場合、クロマ成分ブロックの幅及び高さは、それぞれ(CbWidth/SubwidthC)及び(CbHeight/SubHeightC)で誘導されることができる。
【0120】
クロマブロックの最小サイズ制限
【0121】
画像符号化/復号化過程で、クロマブロックのサイズは、スループット(throughput)に大きい影響を及ぼすことができる。例えば、所定のサイズ以下のクロマブロックが過剰に生成される場合、画像符号化/復号化過程のスループットは著しく低下する可能性がある。かかる問題を解決するために、CU分割は、所定のサイズ以下のクロマブロックが生成されないように制限されることができる。
【0122】
画像符号化/復号化装置は、クロマブロックの最小サイズを設定することができる。一例において、クロマブロックは、少なくとも16個のクロマサンプルを含むように制限されることができる。例えば、2×2、2×4又は4×2のクロマブロックが生成されないように、ルマブロック又はクロマブロックの分割は制限されることができる。その結果、デュアルツリー構造において、2×8、4×4又は8×2のクロマブロックに対する4分木分割及び/又はバイナリ分割が制限されることができる。また、デュアルツリー構造において、2×8、2×16、4×4、4×8、8×2又は8×4のクロマブロックに対するターナリ分割が制限されることができる。
【0123】
具体的には、以下の条件1-1乃至条件1-4のいずれかが満たされる場合、現在ブロックに対する四分木分割は制限されることができる。
【0124】
(条件1-1)現在ブロックの分割構造がシングルツリー又はデュアルツリールマであり、ルマブロックのサイズが、四分木分割が可能な最小サイズ以下である場合
【0125】
(条件1-2)現在ブロックの分割構造がデュアルツリークロマであり、クロマブロックのサイズが、四分木分割が可能な最小サイズ以下である場合
【0126】
(条件1-3)現在ブロックの分割構造がデュアルツリークロマであり、クロマブロックのサイズが4以下である場合
【0127】
(条件1-4)現在ブロックの分割構造がデュアルツリークロマであり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAである場合
【0128】
又は、以下の条件2-1及び条件2-2のいずれかが満たされる場合、現在ブロックに対するバイナリ分割が制限されることができる。
【0129】
(条件2-1)現在ブロックの分割構造がデュアルツリークロマであり、クロマブロックの幅と高さの積が16以下である場合
【0130】
(条件2-2)現在ブロックの分割構造がデュアルツリークロマであり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAである場合
【0131】
又は、以下の条件3-1及び条件3-2のいずれかが満たされる場合、現在ブロックに対するターナリ分割が制限されることができる。
【0132】
(条件3-1)現在ブロックの分割構造がデュアルツリークロマであり、クロマブロックの幅と高さの積が32以下である場合
【0133】
(条件3-2)現在ブロックの分割構造がデュアルツリークロマであり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAである場合
【0134】
シングルツリー構造からデュアルツリー構造への切り替え
【0135】
シングルツリー構造において、ルマブロック及び前記ルマブロックに対応するクロマブロックは、同一の方式で分割されることができる。例えば、ルマブロックが垂直ターナリ分割される場合、前記ルマブロックに対応するクロマブロックも、垂直ターナリ分割されることができる。この場合、CUの分割如何は、前記CUに含まれるルマブロックのサイズに基づいて決定されることができる。そして、前記ルマブロックに対応するクロマブロックのサイズは、表2を参照して前述したように、前記ルマブロックのサイズ及びカラーフォーマット(color format)に基づいて決定されることができる。
【0136】
図9は4:2:0のカラーフォーマットにおけるルマブロック及びクロマブロックの一例を示す図である。図10a乃至図10cは、現在CTUをローカルデュアルツリーに分割するためのシンタックスの一例を示す図である。
【0137】
まず、図9を参照すると、4:2:0のカラーフォーマットにおけるルマブロックのサイズが16×8である場合、前記ルマブロックに対応するクロマブロックのサイズは8×4と決定できる。この場合、8×4のクロマブロックを垂直ターナリ分割すると、2×4のクロマブロックが生成できる。クロマブロックが少なくとも16個のクロマサンプルを含むように制限された場合、2×4のクロマブロックは、前記最小サイズ制限を満たすことができない。よって、4:2:0のカラーフォーマットにおける8×4のクロマブロックの追加分割は禁止できる。
【0138】
クロマブロックの追加分割が禁止された場合でも、ルマブロックの追加分割は許可されることができる。これにより、ルマブロックに対してのみ追加分割が行われる場合、現在CTU内でシングルツリー構造に分割されているルマブロックとクロマブロックは、デュアルツリー構造に切り替えられることができる。この場合、デュアルツリー構造に分割されたルマブロック及びクロマブロックの分割構造をローカルデュアルツリー構造と呼ぶことができる。
【0139】
図10a乃至図10cはシングルツリー構造をデュアルツリー構造に切り替えるためのシンタックスの一例を示す図である。図10a乃至図10cは、便宜上、1つのcoding_treeシンタックスを3つの図に分割して示す。
【0140】
図10a乃至図10cを参照すると、coding_treeシンタックス内のmodeTypeConditionパラメータに基づいて、現在CTUから生成されるCUそれぞれの予測モードタイプが決定されることができる。ここで、modeTypeConditionは、前記CUそれぞれの予測モード特性を示すことができる。また、modeTypeは、前記CUそれぞれの予測モードタイプを示すことができる。一例において、modeTypeは、イントラ予測、IBC、パレットモード、インター予測などのすべての予測モードが利用可能であることを示すMODE_TYPE_ALL、イントラ予測、IBC及びパレットモードのみが利用可能であることを示すMODE_TYPE_INTRA、及びインター予測モードのみが利用可能であることを示すMODE_TYPE_INTERのうちのいずれかの値を持つことができる。
【0141】
現在CUのmodeTypeConditionは、所定の条件に従って第1値(例えば、0)乃至第3値(例えば、2)のうちのいずれかを持つことができる。
【0142】
具体的には、下記の条件4-1乃至条件4-4のうちの少なくとも一つが満たされる場合、modeTypeConditionは、第1値(例えば、0)を持つことができる。
【0143】
(条件4-1)現在CUがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のCUはデュアルツリーのルートノード(root node)になる場合
【0144】
(条件4-2)modeTypeCurrがMODE_TYPE_ALLでない場合
【0145】
(条件4-3)現在ブロックのカラーフォーマット(クロマフォーマット)がモノクローム(monochrome)である場合
【0146】
(条件4-4)現在ブロックのカラーフォーマットが4:4:4フォーマットである場合
【0147】
これらの条件がすべて満たされず、下記の条件5-1乃至条件5-3のうちの少なくとも一つが満たされる場合、modeTypeConditionは、第2値(例えば、1)を持つことができる。条件5-1乃至条件5-3において、現在CUは、現在CUのルマ成分ブロックを意味することができる。
【0148】
(条件5-1)現在CUの幅と高さの積が64であり、現在CUが四分木分割される場合
【0149】
(条件5-2)現在CUの幅と高さの積が64であり、現在CUが水平ターナリ分割又は垂直ターナリ分割される場合
【0150】
(条件5-3)現在CUの幅と高さの積が32であり、現在CUが水平バイナリ分割又は垂直バイナリ分割される場合
【0151】
これらの条件がすべて満たされず、下記の条件6-1乃至条件6-4のうちの少なくとも一つが満たされる場合、modeTypeConditionは、現在CUがIスライスに含まれるか否かによって第2値(例えば、1)又は第3値(例えば、2)を持つことができる。例えば、条件6-1乃至条件6-4のうちの少なくとも一つが満たされる場合であって、現在CUがIスライスに含まれれば、modeTypeConditionは、第2値を持ち、現在CUがIスライスに含まれなければ、modeTypeConditionは、第3値を持つことができる。条件6-1乃至条件6-4において、現在CUは、現在CUのルマ成分ブロックを意味することができる。
【0152】
(条件6-1)現在CUの幅と高さの積が64であり、現在CUが水平バイナリ分割又は垂直バイナリ分割され、現在CUのカラーフォーマットが4:2:0のフォーマットである場合
【0153】
(条件6-2)現在CUに含まれるルマブロックの幅と高さの積が128であり、現在CUが水平ターナリ分割又は垂直ターナリ分割され、現在CUのカラーフォーマットが4:2:0フォーマットである場合
【0154】
(条件6-3)現在CUの幅が8であり、現在CUが水平バイナリ分割される場合
【0155】
(条件6-4)現在CTUの幅が16であり、現在CUが垂直ターナリ分割される場合
【0156】
これらの条件がすべて満たされない場合、modeTypeConditionは、第1値(例えば、0)を持つことができる。
【0157】
そして、modeTypeConditionの値に基づいて現在CUのmodeTypeが決定されることができる。
【0158】
具体的には、図10aを参照すると、modeTypeConditionが第2値(例えば、1)を持つ場合(1010)、modeTypeはMODE_TYPE_INTRAと決定されることができる(1020)。
【0159】
或いは、modeTypeConditionが第3値(例えば、2)を持つ場合(1030)、modeTypeはmode_constraint_flagの値に基づいて決定されることができる。ここで、mode_constraint_flagは、現在CUにインター予測モードが適用できるか否かを示すことができる。例えば、mode_constraint_flagの第1値(例えば、0)は、現在CUにインター予測モードのみが適用できることを示すことができる。そして、この場合、現在CUのmodeTypeは、MODE_TYPE_INTERと決定されることができる。これとは異なり、mode_constraint_flagの第2値(例えば、1)は、現在CUにインター予測モードが適用できないことを示すことができる。そして、この場合、modeTypeはMODE_TYPE_INTRAと決定されることができる(1040)。
【0160】
又は、modeTypeConditionが第2値(例えば、1)及び第3値(例えば、2)以外の値を持つ場合(例えば、modeTypeConditionが第1値(例えば、0)を持つ場合、modeTypeはmodeTypeCurrと同じ値に決定できる(1050)。ここで、modeTypeCurrは、coding_treeシンタックスの呼び出し入力値であって、現在CUの予測モードタイプを意味することができる。一例において、現在CUが分割ツリーのルートノードである場合、modeTypeCurrはMODE_TYPE_ALLであり得る。
【0161】
modeTypeConditionの値に基づいて決定されたmodeTypeは、現在CUを分割して取得される下位CUを呼び出すためのcoding_treeシンタックスの呼び出し入力値として使用できる。
【0162】
そして、現在CUのmodeTypeの値に基づいて、現在CUを分割して生成される下位CUの分割構造(treeType)が決定されることができる(1060)。例えば、現在CUのmodeTypeがMODE_TYPE_INTRAである場合、下位CUの分割構造は、デュアルツリールマ(DUAL_TREE_LUMA)と決定されることができる。これとは異なり、modeTypeがMODE_TYPE_INTRAでない場合、下位CUの分割構造は、現在CUの分割構造(treeTypeCurr)と同じであり得る。
【0163】
下位CUの分割構造に関する情報は、パラメータtreeTypeに保存できる。treeType及びmodeTypeは、現在CUをさらに分割して下位CUを呼び出すためのcoding_treeシンタックスの入力値として使用できる。
【0164】
下位CUのmodeTypeがMODE_TYPE_INTRAである場合、現在CUは、デュアルツリー構造にさらに分割できる。具体的には、図10bを参照すると、下位CUのmodeTypeがMODE_TYPE_INTRAである場合、下位CUは、デュアルツリールマ(DUAL_TREE_LUMA)のツリー構造を持つことができる。つまり、現在CUのルマ成分とクロマ成分は別個のツリー構造に分割されることができる(1070)。また、図10cを参照すると、現在CUのmodeTypeCurrがMODE_TYPE_ALLであり、下位CUのmodeTypeがMODE_TYPE_INTRAである場合、現在CUのクロマ成分は分割されず、下位CUはデュアルツリークロマ(DUAL_TRE_CHROMA)のツリー構造を持つことができる(1080)。
【0165】
このように、下位CUのmodeTypeは、modeTypeConditionに基づいて決定されることができる。また、下位CUのmodeTypeがMODE_TYPE_INTRAである場合、下位CUのルマ成分はデュアルツリールマのツリー構造を持ち、下位CUのクロマ成分はデュアルツリークロマのツリー構造を持つことができる。つまり、下位CUは、現在CTU内で部分的にデュアルツリー構造を持ち、このような分割構造をローカルデュアルツリー構造と呼ぶことができる。
【0166】
以下、イントラ予測モード及びクロマブロックのイントラ予測について説明する。
【0167】
イントラ予測モードの概要
【0168】
イントラ予測は、現在ブロックの属するピクチャ(以下、現在ピクチャ)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺参照サンプルが導出されることができる。前記現在ブロックの周辺参照サンプルは、サイズnW×nHの現在ブロックの左側(left)境界に隣接するサンプル及び左下側(bottom-left)に隣接する合計2×nH個のサンプル、現在ブロックの上側(top)境界に隣接するサンプル及び右上側(top-right)に隣接する合計2×nW個のサンプル、及び現在ブロックの左上側(top-left)に隣接する1つのサンプルを含むことができる。又は、前記現在ブロックの周辺参照サンプルは、複数列の上側周辺サンプル及び複数行の左側周辺サンプルを含むこともできる。また、前記現在ブロックの周辺参照サンプルは、サイズnW×nHの現在ブロックの右側(right)境界に隣接する合計nH個のサンプル、現在ブロックの下側(bottom)境界に隣接する合計nW個のサンプル、及び現在ブロックの右下側(bottom-right)に隣接する1つのサンプルを含むこともできる。
【0169】
ただし、現在ブロックの周辺参照サンプル中の一部は、未だ復号化されていないか或いは利用可能でないことができる。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して、予測に使用する周辺参照サンプルを構成することができる。又は、利用可能なサンプルの補間(interpolation)を介して、予測に使用する周辺参照サンプルを構成することができる。
【0170】
周辺参照サンプルが導出された場合、(i)現在ブロックの周辺(neighboring)参照サンプルの平均(average)又は補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの周辺参照サンプルのうちの予測サンプルに対して、特定の(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モード又は非角度モード、(ii)の場合は方向性(directional)モード又は角度(angular)モードと呼ばれることができる。
【0171】
また、前記周辺参照サンプルのうち、前記現在ブロックの予測対象サンプルを基準に、前記現在ブロックのイントラ予測モードの予測方向に位置する第1周辺サンプルとその反対方向に位置する第2周辺サンプルとの補間を介して前記予測サンプルが生成されることもできる。上述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。
【0172】
また、線形モデル(linear model)を用いてルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LM(Linear Model)モードと呼ばれることができる。
【0173】
また、フィルタリングされた周辺参照サンプルに基づいて前記現在ブロックの一時予測サンプルを導出し、前記従来の周辺参照サンプル、すなわち、フィルタリングされていない周辺参照サンプルのうち、前記イントラ予測モードに応じて導出された少なくとも一つの参照サンプルと前記一時予測サンプルを加重和(weighted sum)して、前記現在ブロックの予測サンプルを導出することもできる。この場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。
【0174】
また、現在ブロックの周辺多重参照サンプルラインのうち、最も予測精度が高い参照サンプルラインを選択して、当該ラインから予測方向に位置する参照サンプルを用いて予測サンプルを導出することができる。このとき、使用された参照サンプルラインに関する情報(例えば、intra_luma_ref_idx)は、ビットストリームに符号化されてシグナリングされることができる。この場合は、MRL(multi-reference line intra prediction)又はMRLベースのイントラ予測と呼ばれることができる。
【0175】
また、現在ブロックを垂直又は水平のサブパーティションに分割し、各サブパーティションに対して同一のイントラ予測モードに基づいてイントラ予測を行うことができる。このとき、イントラ予測の周辺参照サンプルは、各サブパーティション単位で導出されることができる。すなわち、符号化/復号化の順序上、以前のサブパーティションの復元されたサンプルが現在サブパーティションの周辺参照サンプルとして用いられることができる。この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同一に適用されるが、前記サブパーティション単位で周辺参照サンプルを導出して用いることにより、場合によってはイントラ予測性能を向上させることができる。このような予測方法は、ISP(intra sub-partitions)又はISPベースのイントラ予測と呼ばれることができる。
【0176】
前述したイントラ予測技法は、方向性又は非方向性のイントラ予測モードと区分してイントラ予測タイプ又は付加イントラ予測モードなどのさまざまな用語で呼ばれることができる。例えば、前記イントラ予測技法(イントラ予測タイプ又は付加イントラ予測モードなど)は、上述したLIP、LM、PDPC、MRL、ISPのうちの少なくとも一つを含むことができる。一方、必要に応じて、導出された予測サンプルに対する後処理フィルタリングが行われてもよい。
【0177】
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、周辺参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要に応じて、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが行われてもよい。
【0178】
図11はイントラ予測に基づくビデオ/画像符号化方法を示すフローチャートである。
【0179】
図11の符号化方法は、図2の画像符号化装置によって行われることができる。具体的には、ステップS1110は、イントラ予測部185によって行われることができ、ステップS1120は、レジデュアル処理部によって行われることができる。具体的には、ステップS1120は、減算部115によって行われることができる。ステップS1130は、エントロピー符号化部190によって行われることができる。ステップS1130の予測情報はイントラ予測部185によって導出され、ステップS1130のレジデュアル情報はレジデュアル処理部によって導出されることができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。前述したように、前記レジデュアルサンプルは、画像符号化装置の変換部120を介して変換係数に導出され、前記変換係数は、量子化部130を介して量子化された変換係数に導出されることができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
【0180】
画像符号化装置は、現在ブロックに対するイントラ予測を行うことができる(S1110)。画像符号化装置は、現在ブロックに対するイントラ予測モード/タイプを決定し、現在ブロックの周辺参照サンプルを導出した後、前記イントラ予測モード/タイプ、及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成することができる。ここで、イントラ予測モード/タイプの決定、周辺参照サンプルの導出及び予測サンプルの生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。
【0181】
図12は本開示によるイントラ予測部の構成を例示的に示す図である。
【0182】
図12に示すように、画像符号化装置のイントラ予測部185は、イントラ予測モード/タイプ決定部186、参照サンプル導出部187及び/又は予測サンプル導出部188を含むことができる。イントラ予測モード/タイプ決定部186は、前記現在ブロックに対するイントラ予測モード/タイプを決定することができる。参照サンプル導出部187は、前記現在ブロックの周辺参照サンプルを導出することができる。予測サンプル導出部188は、前記現在ブロックの予測サンプルを導出することができる。一方、たとえ図示されてはいないが、後述する予測サンプルフィルタリング手順が行われる場合、イントラ予測部185は、予測サンプルフィルタ部(図示せず)をさらに含むこともできる。
【0183】
画像符号化装置は、複数のイントラ予測モード/タイプのうち、前記現在ブロックに対して適用されるモード/タイプを決定することができる。画像符号化装置は、前記イントラ予測モード/タイプに対するレート歪みコスト(RD cost)を比較し、前記現在ブロックに対する最適のイントラ予測モード/タイプを決定することができる。
【0184】
一方、画像符号化装置は、予測サンプルフィルタリング手順を行うこともできる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、前記予測サンプルフィルタリング手順は省略できる。
【0185】
再び図11を参照すると、画像符号化装置は、予測サンプル又はフィルタリングされた予測サンプルに基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S1120)。画像符号化装置は、現在ブロックの原本サンプルから前記予測サンプルを減算して前記レジデュアルサンプルを導出することができる。つまり、画像符号化装置は、原本サンプル値から対応する予測サンプル値を減算することにより、レジデュアルサンプル値を導出することができる。
【0186】
画像符号化装置は、前記イントラ予測に関する情報(予測情報)、及び前記レジデュアルサンプルに関するレジデュアル情報を含む画像情報を符号化することができる(S1130)。前記予測情報は、イントラ予測モード情報及び/又はイントラ予測技法情報を含むことができる。画像符号化装置は、符号化された画像情報をビットストリーム形式で出力することができる。出力されたビットストリームは、記憶媒体又はネットワークを介して画像復号化装置へ伝達されることができる。
【0187】
前記レジデュアル情報は、後述するレジデュアルコーディングシンタックスを含むことができる。画像符号化装置は、前記レジデュアルサンプルを変換/量子化し、量子化された変換係数を導出することができる。前記レジデュアル情報は、前記量子化された変換係数に対する情報を含むことができる。
【0188】
一方、前述したように、画像符号化装置は、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。このために、画像符号化装置は、前記量子化された変換係数をさらに逆量子化/逆変換処理して(修正された)レジデュアルサンプルを導出することができる。このようにレジデュアルサンプルを変換/量子化した後、再び逆量子化/逆変換を行う理由は、画像復号化装置で導出されるレジデュアルサンプルと同一のレジデュアルサンプルを導出するためである。画像符号化装置は、前記予測サンプルと、前記(修正された)レジデュアルサンプルに基づいて、前記現在ブロックに対する復元サンプルを含む復元ブロックを生成することができる。前記復元ブロックに基づいて、前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、前述したとおりである。
【0189】
図13はイントラ予測に基づくビデオ/画像復号化方法を示すフローチャートである。
【0190】
画像復号化装置は、前記画像符号化装置で行われた動作と対応する動作を行うことができる。
【0191】
図13の復号化方法は、図3の画像復号化装置によって行われることができる。ステップS1310乃至S1330は、イントラ予測部265によって行われることができ、ステップS1310の予測情報及びステップS1440のレジデュアル情報は、エントロピー復号化部210によってビットストリームから取得されることができる。画像復号化装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックに対するレジデュアルサンプルを導出することができる(S1340)。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された、量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。ステップS1350は、加算部235又は復元部によって行われることができる。
【0192】
具体的には、画像復号化装置は、受信された予測情報(イントラ予測モード/タイプ情報)に基づいて、現在ブロックに対するイントラ予測モード/タイプを導出することができる(S1310)。また、画像復号化装置は、前記現在ブロックの周辺参照サンプルを導出することができる(S1320)。画像復号化装置は、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成することができる(S1330)。この場合、画像復号化装置は、予測サンプルフィルタリング手順を行うことができる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、予測サンプルフィルタリング手順は省略できる。
【0193】
画像復号化装置は、受信されたレジデュアル情報に基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S1340)。画像復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに前記現在ブロックに対する復元サンプルを生成し、前記復元サンプルを含む復元ブロックを導出することができる(S1350)。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャに基づいてインループフィルタリング手順などがさらに適用できるのは、前述したとおりである。
【0194】
図14は本開示によるイントラ予測部の構成を例示的に示す図である。
【0195】
図14に示すように、画像復号化装置のイントラ予測部265は、イントラ予測モード/タイプ決定部266、参照サンプル導出部267及び予測サンプル導出部268を含むことができる。イントラ予測モード/タイプ決定部266は、画像符号化装置のイントラ予測モード/タイプ決定部186で生成されてシグナリングされたイントラ予測モード/タイプ情報に基づいて、前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部266は、現在ピクチャ内の復元された参照領域から前記現在ブロックの周辺参照サンプルを導出することができる。予測サンプル導出部268は、前記現在ブロックの予測サンプルを導出することができる。一方、たとえ図示されてはいないが、前述した予測サンプルフィルタリング手順が行われる場合、イントラ予測部265は、予測サンプルフィルタ部(図示せず)をさらに含むこともできる。
【0196】
前記イントラ予測モード情報は、例えばMPM(most probable mode)が前記現在ブロックに適用されるか、それともリメイニングモード(remaining mode)が適用されるかを示すフラグ情報(例えば、intra_luma_mpm_flag及び/又はintra_chroma_mpm_flag)を含むことができ、前記MPMが前記現在ブロックに適用される場合、前記イントラ予測モード情報は、イントラ予測モード候補(MPM候補)のうちのいずれか一つを指すインデックス情報(例えば、intra_luma_mpm_idx及び/又はintra_chroma_mpm_idx)をさらに含むことができる。前記イントラ予測モード候補(MPM候補)は、MPM候補リスト又はMPMリストで構成されることができる。また、前記MPMが前記現在ブロックに適用されない場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうちのいずれか一つを指すリメイニングモード情報(例えば、intra_luma_mpm_remainder及び/又はintra_chroma_mpm_remainder)をさらに含むことができる。画像復号化装置は、前記イントラ予測モード情報に基づいて、前記現在ブロックのイントラ予測モードを決定することができる。MPM候補モードは、現在ブロックの周辺ブロック(例えば、左側周辺ブロック及び/又は上側周辺ブロック)のイントラ予測モード及び追加的な候補モードを含むことができる。
【0197】
一例として、イントラ予測モードは、2つの非方向性イントラ予測モードと、33個の方向性イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、Planarモード及びDCモードを含むことができ、前記方向性イントラ予測モードは、2番乃至34番のイントラ予測モードを含むことができる。前記Planarイントラ予測モードは、Planarモードと呼ばれることができ、前記DCイントラ予測モードは、DCモードと呼ばれることができる。
【0198】
又は、自然画像(natural video)で提示された任意のエッジ方向(edge direction)をキャプチャするために、イントラ予測モードは、2つの非方向性イントラ予測モードと、65個の拡張された方向性イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、Planarモード及びDCモードを含むことができ、前記拡張された方向性イントラ予測モードは、2番乃至66番のイントラ予測モードを含むことができる。前記イントラ予測モードは、すべてのサイズのブロックに適用されることができ、ルマ成分(ルマブロック)及びクロマ成分(クロマブロック)の両方ともに適用されることができる。
【0199】
又は、前記イントラ予測モードは、2つの非方向性イントラ予測モードと129個の方向性イントラ予測モードを含むことができる。前記非方向性イントラ予測モードは、Planarモード及びDCモードを含むことができ、前記方向性イントラ予測モードは、2番乃至130番のイントラ予測モードを含むことができる。
【0200】
一方、前記イントラ予測モードは、前述したイントラ予測モードの他にも、クロマサンプルのためのCCLM(cross-component linear model)モードをさらに含むことができる。CCLMモードは、LMパラメータの導出のために、左側サンプルを考慮するか、上側サンプルを考慮するか、両方を考慮するかによってL_CCLM、T_CCLM、LT_CCLMに分けられることができ、クロマ成分に対してのみ適用されることができる。
【0201】
他の例において、イントラ予測モードは、自然画像(natural video)で提示された任意のエッジ方向(edge direction)をキャプチャするために、 2つの非方向性イントラ予測モードと共に93個の方向性イントラ予測モードを含むことができる。非方向性イントラ予測モードは、Planarモード及びDCモードを含むことができる。前記PlanarモードはINTRA_PLANAR、DCモードはINTRA_DCとそれぞれ表記されることができる。そして、方向性イントラ予測モードは、INTRA_ANGULAR-14乃至INTRA_ANGULAR-1、及びINTRA_ANGULAR2乃至INTRA_ANGULAR80と表記されることができる。
【0202】
一方、前記イントラ予測技術情報は、様々な形態で実現できる。一例として、前記イントラ予測技法情報は、複数のイントラ予測技術のうちの一つを指示するイントラ予測技法インデックス情報を含むことができる。他の例として、前記イントラ予測技法情報は、前記MRLが前記現在ブロックに適用されるか、及び適用される場合には幾番目の参照サンプルラインが用いられるか否かを示す参照サンプルライン情報(例えば、intra_luma_ref_idx)、前記ISPが前記現在ブロックに適用されるかを示すISPフラグ情報(例えば、intra_subpartitions_mode_flag)、前記ISPが適用される場合にサブパーティションの分割タイプを指示するISPタイプ情報(例えば、intra_subpartitions_split_flag)、PDPCの適用如何を示すフラグ情報、又はLIPの適用如何を示すフラグ情報のうちの少なくとも一つを含むことができる。本開示において、ISPフラグ情報はISP適用インジケータと呼ばれることがある。
【0203】
前記イントラ予測モード情報及び/又は前記イントラ予測技法情報は、本開示で説明されたコーディング方法を用いて符号化/復号化できる。例えば、前記イントラ予測モード情報及び/又は前記イントラ予測技法情報は、truncated(rice) binary codeに基づいてエントロピーコーディング(例えば、CABAC、CAVLC)を介して符号化/復号化できる。
【0204】
クロマブロックのイントラ予測
【0205】
現在ブロックにイントラ予測が行われる場合、現在ブロックのルマ成分ブロック(ルマブロック)に対する予測及びクロマ成分ブロック(クロマブロック)に対する予測が行われることができ、この場合、クロマブロックに対するイントラ予測モードは、ルマブロックに対するイントラ予測モードとは個別に設定されることができる。
【0206】
例えば、クロマブロックに対するイントラ予測モードは、イントラクロマ予測モード情報に基づいて指示されることができ、前記イントラクロマ予測モード情報は、intra_chroma_pred_modeシンタックス要素の形態でシグナリングされることができる。一例として、前記イントラクロマ予測モード情報は、Planarモード、DCモード、垂直(vertical)モード、水平(horizontal)モード、DM(Derived Mode)、CCLM(Cross-component linear model)モードのうちの一つを指すことができる。ここで、前記Planerモードは0番イントラ予測モード、前記DCモードは1番イントラ予測モード、前記垂直モードは26番イントラ予測モード、前記水平モードは10番イントラ予測モードを示すことができる。DMはdirect modeと呼ばれることもある。また、CCLMはLM(Linear Model)と呼ばれることもある。
【0207】
DMとCCLMは、ルマブロックの情報を用いてクロマブロックを予測する従属的なイントラ予測モードである。前記DMは、前記ルマ成分に対するイントラ予測モードと同じイントラ予測モードが前記クロマ成分に対するイントラ予測モードに適用されるモードを示すことができる。また、前記CCLMは、クロマブロックに対する予測ブロックを生成する過程でルマブロックの復元されたサンプルをサブサンプリングした後、サブサンプリングされたサンプルにCCLMパラメータα及びβを適用して、数式1のように導出されるサンプルを前記クロマブロックの予測サンプルとして使用するイントラ予測モードを示すことができる。
【0208】
【数1】
〔数式1〕
【0209】
ここで、predc(i,j)は、現在CU内の前記現在クロマブロックの(i,j)座標の予測サンプルを示すことができる。recL′(i,j)は、前記CU内の前記現
在ルマブロックの(i,j)座標の復元サンプルを示すことができる。例えば、recL′(i,j)は、前記現在ルマブロックのダウンサンプリング(down-sample
d)された復元サンプルを示すことができる。線形モデル係数α及びβはシグナリングされてもよいが、周辺サンプルから誘導されてもよい。
【0210】
クロマブロックがDMで予測された場合、クロマブロックのイントラ予測モードは、対応ルマブロックのイントラ予測モードに導出されることができる。例えば、対応ルマブロックの所定位置のイントラ予測モードをクロマブロックのイントラ予測モードとして用いることができる。
【0211】
一方、クロマブロックのイントラ予測は、多重DM(Multiple Direct Modes:MDM)を用いて行われることもできる。多重DMは、上述した単一のDMを複数のモードに拡張して使用するモードであって、クロマブロックの画面内予測モードを誘導するために、複数のDM候補を含むDM候補リストを構成し、DM候補リストに含まれている候補のうちの一つをクロマブロックのイントラ予測モードとして導出することができる。多重DMが適用される場合、DM候補リストは、以下の複数のDM候補のうちの少なくとも一つを含むことができる。
【0212】
-対応ルマブロックのCR、TL、TR、BL、BR位置のイントラ予測モード
【0213】
-クロマブロックの周辺ブロックであるL、A、BL、AR、AL位置のイントラ予測モード
【0214】
-Planarモード及びDCモード
【0215】
-既に含まれている方向性モードに対して所定のオフセット(例えば、1)を加減して導出される方向性モード
【0216】
-デフォルトDM候補モード:垂直モード、水平モード、2、34、66、10、26番モード(65個の方向性モードの場合)
【0217】
-4つのデフォルトDM候補(PLANARモード、DCモード、垂直モード及び水平モード)がDM候補リストに含まれていない場合、含まれていないデフォルトDM候補で、リストに既に含まれているDM候補を代替
【0218】
クロマブロックのイントラ予測モードは、イントラクロマ予測モード情報(intra_chroma_pred_mode)及び/又は対応ルマブロックのイントラ予測モードに基づいて導出されることができる。例えば、イントラクロマ予測モード情報がDMを示す場合、クロマブロックのイントラ予測モードは、対応ルマブロックのイントラ予測モードと同一に決定されることができる。
【0219】
前述したイントラ予測方法によれば、ルマブロックに対するイントラ予測は、MPMリストに基づいて行われ、クロマブロックに対するイントラ予測は、所定のデフォルトモード及び/又はDMに基づいて行われることができる。前記デフォルトイントラ予測モードは、Planarモード、DCモード、垂直モード(vertical mode)及び水平モード(horizontal mode)を含むことができる。
【0220】
以下、パレットモード(palette mode)について説明する。
【0221】
パレットモードの概要
【0222】
パレットモードは、所定の代表カラー値セットを含むパレット(又は、パレットテーブル)に基づいて現在ブロックを符号化/復号化する予測モードを示すことができる。パレットモードにおいて、現在ブロック内のそれぞれのサンプルは、所定の代表カラー値を指示するパレットインデックスで表現できる。本開示において、パレットモードを用いた符号化/復号化をパレット符号化/復号化と呼ぶことができる。
【0223】
パレットモードは、特定の画像の符号化/復号化効率を向上させるために用いられることができる。例えば、相当量のテキスト及びグラフィックを含み、コンピュータやスマートフォンなどの電子機器によって生成される画像であるスクリーンコンテンツは、シャープエッジにて分離されるローカル領域を含み、前記ローカル領域は、相対的に少ない個数のピクセル値で表現できる。したがって、現在ブロック内の大部分のピクセル値を相対的に少ない個数のインデックスで表現するパレットモードは、他の予測モード(例えば、イントラ予測モード、インター予測モードなど)と比較してスクリーンコンテンツの符号化/復号化に効果的であり得る。
【0224】
パレットモードは、前述したイントラ予測モードの一種であり、パレット符号化モード、イントラパレットモード、イントラパレット符号化モードなどと呼ばれることができる。ただし、現在ブロックにパレットモードが適用される場合、イントラ予測モードの場合とは異なり、現在ブロックに対するレジデュアル値は別途シグナリングされないことができる。この点で、パレットモードは、前述したスキップモードと類似することができる。
【0225】
現在ブロックがシングルツリー構造を持つ場合、パレットモードは、現在ブロックのルマ成分及びクロマ成分の両方に対して一緒に適用できる。例えば、シングルツリー構造を持つ現在ブロックのルマ成分にパレットモードが適用される場合、現在ブロックのクロマ成分にはパレットモードが適用できる。これとは異なり、現在ブロックがデュアルツリー構造を持つ場合、パレットモードは、現在ブロックのルマ成分及びクロマ成分に対して個別に適用されることができる。例えば、デュアルツリー構造を持つ現在ブロックのルマ成分にパレットモードが適用される場合、現在ブロックのクロマ成分にはパレットモードが適用されることもでき、或いは他の予測モード(例えば、イントラ予測モード、インター予測モードなど)のうちのいずれか一つが適用されることもできる。
【0226】
現在ブロックにパレットモードが適用される場合、パレット予測子に基づいて現在ブロックに対するパレットテーブルが構成できる。
【0227】
パレット予測子は、一つ以上のパレットエントリ(代表カラー値)と前記パレットエントリのそれぞれを識別するための一つ以上のパレットインデックスを含むことができる。一例において、パレット予測子は、現在ブロックを含むCTU(又は、スライス)の最初の符号化/復号化時点で所定の値(例えば、0)に初期化されることができる。そして、パレット予測子は、パレット符号化/復号化に用いられた少なくとも一つのパレットエントリを用いて更新できる。一例において、パレット予測子のサイズが所定の最大サイズに達するまで(すなわち、パレット予測子が許可された最大個数のパレットエントリを含むときまで)、現在パレットテーブルに含まれていない以前パレット予測子のパレットエントリが次のパレット符号化のためにパレット予測子の最後の位置(インデックス)に付加されることができる。これをパレットスタッフィング(palette stuffing)と呼ぶことができる。
【0228】
パレットテーブルは、パレット予測子に含まれている少なくとも一つのパレットエントリ、及びパレットエントリを識別するための少なくとも一つのパレットインデックスを含むことができる。パレット予測子に含まれているそれぞれのパレットエントリに対して、前記パレットエントリがパレットテーブルに含まれるか否かを示す再使用フラグ(reuse flag)がビットストリームを介してシグナリングされることができる。この場合、第1値(例えば、0)を有する再使用フラグは、当該パレットエントリがパレットテーブルに含まれないことを示すことができる。これとは異なり、第2値(例えば、1)を有する再使用フラグは、当該パレットエントリがパレットテーブルに含まれることを示すことができる。再使用フラグは、例えば、0値に対するランレングス(run-length)コーディングを用いて符号化できる。
【0229】
また、パレットテーブルは、パレット予測子に含まれていない少なくとも一つの新しいパレットエントリ、及び前記新しいパレットエントリを識別するための少なくとも一つのパレットインデックスを含むことができる。新しいパレットエントリに関する情報(例えば、総数、コンポーネント値など)は、例えば、0次指数ゴロムコードを用いて符号化されてビットストリームを介してシグナリングされることができる。
【0230】
パレットテーブルに基づいて、符号化対象である現在ブロックに対するパレットインデックスマップが生成できる。具体的には、現在ブロック内の複数のサンプルそれぞれのピクセル値と代表カラー値との類似性に基づいて、前記複数のサンプルそれぞれにパレットテーブル内の所定のパレットインデックスをマッピングすることにより、現在ブロックに対するパレットインデックスマップが生成されることができる。この場合、現在ブロック内の複数のサンプルのうち、パレットテーブルで定義された代表カラー値(パレットエントリ)と類似しないピクセル値を有するサンプル(エスケープ(escape)サンプル)に対しては、エスケープパレットインデックスがマッピングされることができる。エスケープパレットインデックスは、エスケープサンプル(エスケープシンボル)を示し、パレットテーブル内で最も大きい値を持つことができる。一例において、現在ブロックがエスケープサンプルを含むか否かは、エスケープサンプルフラグ(例えば、palette_escape_val_present_flag)を用いてシグナリングされることができる。例えば、第1値(例えば、0)を有するpalette_escape_val_present_flagは、現在ブロックがエスケープサンプルを含まないことを示すことができる。これとは異なり、第2値(例えば、1)を有するpalette_escape_val_present_flagは、現在ブロックがエスケープサンプルを含むことを示すことができる。
【0231】
パレットインデックスマップに関するパレットインデックス予測情報は、ビットストリームを介してシグナリングされることができる。パレットインデックス予測情報は、現在ブロックにマッピングされた少なくとも一つのパレットインデックス及びパレットインデックスのラン値情報を含むことができる。パレットインデックスのラン値は、現在ブロックに同一の値で連続的にマッピングされたパレットインデックスの個数から1を差し引いた値を示すことができる。例えば、現在ブロックが所定のスキャン方向(例えば、水平方向)に沿って連続して存在する第1乃至第4サンプルを含み、前記第1乃至第3サンプルそれぞれには第1パレットインデックス(例えば、0)がマッピングされ、前記第4サンプルにはパレットインデックス(例えば、1)がマッピングされた場合、前記第1パレットインデックスのラン値は2であり、前記第2パレットインデックスのラン値は0であり得る。現在ブロックがエスケープサンプル(エスケープシンボル)を含む場合(例えば、palette_escape_val_present_flag=1)、パレットインデックス予測情報は、エスケープサンプルにマッピングされたエスケープパレットインデックスのラン値情報を含むことができる。
【0232】
パレットインデックス予測情報に基づいて、復号化対象である現在ブロックに対するパレットインデックスマップが生成されることができる。例えば、パレットインデックス予測情報から取得される一つ以上のパレットインデックスそれぞれを現在ブロック内の複数のサンプルそれぞれにマッピングすることにより、現在ブロックに対するパレットインデックスマップが生成できる。一例において、パレットインデックス予測情報から得られる1つ以上のパレットインデックスのうち(マッピング順序上)の最後のパレットインデックスに基づいて、前記一つ以上のパレットインデックスそれぞれの値は調整できる。例えば、パレットインデックス予測情報から取得される最後のパレットインデックスがエスケープパレットインデックスである場合、パレットインデックス予測情報から取得される一つ以上のパレットエントリは、所与のサイズ(例えば、1)だけ増加した値で現在ブロックにマッピングされることができる。
【0233】
現在ブロックは、パレットインデックスマップに基づいて符号化/復号化できる。現在ブロック内の複数のサンプルのうち、パレットテーブルに定義されている代表カラー値と同一又は類似のピクセル値を持つサンプルについては、当該代表カラー値を指示するパレットインデックスの値がビットストリームを介してシグナリングされることができる。これとは異なり、現在ブロック内の複数のサンプルのうち、パレットテーブルに定義されている代表カラー値と類似しないピクセル値を持つサンプルに対しては、当該サンプルの量子化されたピクセル値がビットストリームを介して直接シグナリングされることができる。
【0234】
現在ブロックにマッピングされているパレットインデックスを符号化するために、所定のスキャン方式を用いてパレットインデックスマップをスキャンすることができる。また、ビットストリームから取得されたパレットインデックスを用いてパレットインデックスマップを構成するために、所定のスキャン方式を用いて現在ブロックをスキャンすることができる。
【0235】
図15はパレットモードで利用可能なスキャン方式の一例を示す図である。
【0236】
図15を参照すると、パレットモードで利用可能なスキャン方式は、水平トラバーススキャン(horizontal traverse scan)及び垂直トラバーススキャン(vertical traverse scan)を含むことができる。水平トラバーススキャンは現在ブロック(又は、パレットインデックスマップ)の奇数番目の行(row)は左から右にスキャンし、現在ブロックの偶数番目の行は右から左にスキャンする方式を意味することができる。また、垂直トラバーススキャンは、現在ブロックの奇数番目の列(column)は上から下にスキャンし、現在ブロックの偶数番目の列は下から上にスキャンする方式を意味することができる。
【0237】
パレットモードで利用可能なスキャン方式に関する情報は、所定のフラグ(例えば、palette_transpose_flag)を用いてシグナリングされることができる。例えば、現在ブロックのパレット符号化のために水平トラバーススキャンが用いられた場合、第1値(例えば、0)を持つpalette_transpose_flagがビットストリームを介してシグナリングされることができる。これとは異なり、現在ブロックのパレット符号化のために垂直トラバーススキャンが用いられた場合、第2値(例えば、1)を持つpalette_transpose_flagがビットストリームを介してシグナリングされることができる。
【0238】
現在ブロック内のそれぞれのサンプルにマッピングされたパレットインデックスは、「INDEX」モードと「COPY_ABOVE」モードを用いて符号化できる。本開示において、「INDEX」モードと「COPY_ABOVE」モードをパレットサンプルモードと呼ぶことができる。
【0239】
水平トラバーススキャンにおける現在ブロックの一番上の行、垂直トラバーススキャンにおける現在ブロックの一番左の列、及び直前のパレットサンプルモードが「COPY_ABOVE」である場合を除き、パレットサンプルモードに関する情報は、所定のフラグ(例えば、copy_above_palette_indices_flag)を用いてシグナリングされることができる。例えば、第1値(例えば、0)を持つcopy_above_palette_indices_flagは、現在ブロックにマッピングされた所定のパレットインデックスが「INDEX」モードを用いて符号化されることを示すことができる。これとは異なり、第2値(例えば、1)を持つcopy_above_palette_indices_flagは、現在ブロックにマッピングされている所定のパレットインデックスが「COPY_ABOVE」モードを用いて符号化されることを示すことができる。
【0240】
「INDEX」モードで、パレットインデックスの値は明示的にビットストリームを介してシグナリングされることができる。「INDEX」モードと「COPY_ABOVE」モードで、同一のパレットサンプルモードを用いて連続的に符号化されたサンプルの個数を示すラン値情報がビットストリームを介してシグナリングされることができる。
【0241】
パレットインデックスマップに含まれているパレットインデックスは、次の順序で符号化できる。
【0242】
まず、現在ブロック(又は、現在CU)にマッピングされたパレットインデックスの個数がシグナリングされることができる。次に、固定長コーディング(fi xed length coding)を用いて前記パレットインデックスそれぞれの値がシグナリングされることができる。一例において、パレットインデックスの個数とパレットインデックスそれぞれの値は、バイパスモードを用いて符号化されることができる。これを介して、パレットインデックスに関連するバイパスビンがグループ化できる。そして、パレットサンプルモードに関する情報(例えば、copy_above_palette_indices_flag)及びパレットサンプルモードのラン値情報がインターリーブ方式でシグナリングされることができる。最後に、現在ブロック内のエスケープサンプルに対応するコンポーネントエスケープ値がグループ化されてバイパスモードで符号化されることができる。一例において、パレットインデックスそれぞれの値がシグナリングされた後、少なくとも一つの付加的なシンタックス要素(例えば、last_run_type_flag)がさらにシグナリングされることができる。この場合、パレットインデックスの個数及び付加的なシンタックス要素に基づいて、現在ブロック内の最後のランに対応するラン値に対するシグナリング過程はスキップできる。
【0243】
図16は現在ブロックのパレット符号化過程の一例を示す図である。
【0244】
図16を参照すると、現在ブロック内の複数のピクセル(サンプル)は、合計3つのカラー値を用いて表現できる(S1610)。例えば、第1ピクセルPX1は第1カラー値を有し、第2ピクセルPX2は第2カラー値を有し、第3ピクセルPX3は第3カラー値を有することができる。
【0245】
現在ブロックにパレットモードが適用される場合、現在ブロックに対するパレットテーブルが構成できる(S1620)。パレットテーブルは、それぞれのカラーコンポーネント(例えば、(G,B,R)、(Y,Cb,Cr)など)に対するパレットエントリ(代表カラー値)とそれぞれのパレットエントリを識別するためのパレットインデックス(例えば、0,1)を含むことができる。また、パレットテーブルは、エスケープ(escape)パレットインデックス(例えば、2)をさらに含むことができる。エスケープパレットインデックスは、現在ブロック内の複数のピクセルのうち、パレットテーブルに定義されている代表カラー値と類似しないピクセル値を有するエスケープサンプル(又は、エスケープシンボル)にマッピングされることができる。エスケープパレットインデックスがマッピングされたエスケープサンプルに対しては、エスケープサンプルの量子化ピクセル値がシグナリングされることができる。
【0246】
現在ブロック内の複数のサンプルそれぞれのピクセル値と代表カラー値との類似性に基づいて、前記複数のサンプルそれぞれにパレットテーブル内の所定のパレットインデックスをマッピングすることにより、現在ブロックに対するパレットインデックスマップが生成されることができる(S1630)。例えば、第1ピクセルPX1それぞれに対しては第1パレットインデックス(例えば、0)をマッピングし、第2ピクセルPX2それぞれに対しては第2パレットインデックス(例えば、1)をマッピングし、エスケープサンプルである第3ピクセルPX3に対してはエスケープパレットインデックス(例えば、2)をマッピングすることにより、現在ブロックに対するパレットインデックスマップが生成されることができる。
【0247】
パレットインデックスマップを符号化するために、所定のスキャン方式に従って、パレットインデックスマップに含まれているパレットインデックスをスキャンすることにより、現在ブロック内の複数のサンプルそれぞれのパレットサンプルモード及びパレットサンプルモードのラン値を導出することができる(S1640、S1650)。例えば、水平トラバーススキャンで、パレットインデックスマップの3行目に連続的にマッピングされたパレットインデックス「1,0,1,1,1」は、パレットインデックスマップの2行目の同じ位置にあるパレットインデックスと同一のインデックス値を持つので、「COPY_ABOVE」モードで符号化でき、前記「COPY_ABOVE」モードのラン値は4であり得る(S1640)。また、水平トラバーススキャンで、パレットインデックスマップの2行目に連続的にマッピングされたパレットインデックス「1,1,1」は、パレットインデックスマップの1行目の同じ位置にあるパレットインデックスとは異なるインデックス値を持つので、「INDEX」モードで符号化できる。前記「INDEX」モードのラン値は2であり得る(S1650)。一方、エスケープサンプルである第3ピクセルPX3にマッピングされているエスケープパレットインデックス(例えば、2)は、「INDEX」モードで符号化できる。
【0248】
このように、現在ブロックにパレットモードが適用される場合、現在ブロック内の複数のサンプルそれぞれには、パレットテーブル内の所定のパレットインデックスがマッピングされてパレットインデックスマップが生成され、パレットインデックスマップに含まれているパレットインデックスは、所定のスキャン方式に応じて「INDEX」モード又は「COPY_ABOVE」モードで符号化できる。
【0249】
以下、パレットモードのためのシンタックス要素を説明する。
【0250】
図17はパレットモードのためのcoding_unitシンタックスの一部を示す図であり、図18a~図18eはパレットモードのためのpallet_codingシンタックスを示す図である。パレットモードのためのシンタックス要素は、図17、及び図18a~図18eのように符号化されてビットストリームを介してシグナリングされることができる。
【0251】
まず、図17を参照すると、パレットモードフラグpred_mode_plt_flagは、現在ブロック(又は、現在CU)に対するパレットモードが適用されるか否かを示すことができる。例えば、pred_mode_plt_flagの第1値(例えば、0)は、現在ブロックに対してパレットモードが適用されないことを示すことができる。これとは異なり、pred_mode_plt_flagの第2値(例えば、1)は、現在ブロックに対してパレットモードが適用されることを示すことができる。pred_mode_plt_flagがビットストリームから取得されない場合、pred_mode_plt_flagの値は第1値と決定されることができる。
【0252】
図18aを参照すると、パラメータPredictorPaletteSize[startComp]は、現在ブロックに対するパレットテーブル(現在パレットテーブル)の1番目のカラーコンポーネントstartCompのためのパレット予測子のサイズを示すことができる。
【0253】
また、パラメータPalettePredictorEntryReuseFlags[i]は、パレット予測子内のi番目のパレットエントリが現在パレットテーブルに含ま
れるか否か(すなわち、再使用如何)を示すことができる。例えば、第1値(例えば、0)を持つPalettePredictorEntryReuseFlags[i]は、パレット予測子のi番目のパレットエントリが現在パレットテーブルで再使用されないことを示すことができる。これとは異なり、第2値(例えば、1)を持つPalettePredictorEntryReuseFlags[i]は、パレット予測子のi番目のパレットエントリが現在パレットテーブルで再使用されることを示すことができる。一例において、PalettePredictorEntryReuseFlags[i]の初期値は、0に設定されることができる。
【0254】
また、パラメータpalette_predictor_runは、PalettePredictorEntryReuseFlags配列において0でないパレットエントリよりも前に存在する0の個数を示すことができる。
【0255】
また、パラメータnum_signalled_palette_entriesは、現在パレットテーブルの1番目のカラーコンポーネントstartCompのために明示的にシグナリングされる現在パレットテーブル内のパレットエントリの個数を示すことができる。num_signalled_palette_entriesがビットストリームから取得されない場合、num_signalled_palette_entriesの値は0と推論できる。
【0256】
図18bを参照すると、パラメータCurrentPaletteSize[startComp]は、現在パレットテーブルの1番目のカラーコンポーネントstartCompのための現在パレットテーブルのサイズを示すことができる。CurrentPaletteSize[startComp]の値は、下記数式2の通りに算出できる。一例において、CurrentPaletteSize[startComp]は、0からpalette_max_sizeの間の値を持つことができる。
【0257】
〔数式2〕
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries+num_signalled_palette_entries
【0258】
また、パラメータnew_palette_entries[cIdx][i]は、カラーコンポーネントcIdxに対してi番目にシグナリングされる新しいパレットエントリの値を示すことができる。
【0259】
また、パラメータPredictorPaletteEntries[cIdx][i]は、カラーコンポーネントcIdxに対するパレット予測子におけるi番目のパレットエントリを示すことができる。
【0260】
また、パラメータCurrentPaletteEntries[cId][i]は、カラーコンポーネントcIdxに対する現在パレットテーブルにおけるi番目のパレットエントリを示すことができる。
【0261】
また、パラメータpalette_escape_val_present_flagは、エスケープサンプル(エスケープシンボル)の存否を示すことができる。例えば、第1値(例えば、0)を持つpalette_escape_val_present_flagは、現在ブロックがエスケープサンプルを含まないことを示すことができる。これとは異なり、第2値(例えば、1)を持つpalette_escape_val_present_flagは、現在ブロックが少なくとも一つのエスケープサンプルを含むことを示す。palette_escape_val_present_flagがビットストリームから取得されない場合、palette_escape_val_present_flagの値は1と推論できる。
【0262】
また、パラメータMaxPaletteIndexは、現在パレットテーブルにおけるパレットインデックスの最大値を示すことができる。MaxPaletteIndexの値は、下記数式3のように算出できる。
【0263】
〔数式3〕
MaxPaletteIndex=CurrentPaletteSize[startComp]+palette_escape_val_present_flag
【0264】
また、パラメータnum_palette_indices_minus1は、現在ブロックのパレット符号化過程でシグナリングされるパレットインデックスの個数から1を差し引いた値を示すことができる。num_palette_indices_minus1がビットストリームから取得されない場合、num_palette_indices_minus1の値は0と推論できる。
【0265】
また、パラメータpalette_idx_idcは、現在パレットテーブルCurrentPaletteEntriesに対するパレットインデックスのインジケータであり得る。palette_idx_idcは、当該ブロックの1番目のパレットインデックスに対して0乃至MaxPaletteIndexの間の値を持つことができ、当該ブロックの残りのパレットインデックスに対して0乃至MaxPaletteIndex-1の間の値を持つことができる。palette_idx_idcの値がビットストリームから取得されない場合、palette_idx_idcの値は0と推論できる。
【0266】
また、パラメータPaletteIndexIdc[i]は、i番目のpalette_idx_idcを示すことができる。一例において、配列PaletteIndexIdcのすべての値は0に初期化できる。
【0267】
また、パラメータcopy_above_indices_for_final_run_flagは、現在ブロック内の最後の位置のパレットインデックスが以前のパレットインデックスからコピーされたものであるか否かを示すことができる。例えば、第1値(例えば、0)を持つcopy_above_indices_for_final_run_flagは、現在ブロック内の最後の位置のパレットインデックスがPaletteIndexIdc[num_palette_indices_minus1]からコピーされたものであることを示すことができる。これとは異なり、第2値(例えば、1)を持つcopy_above_indices_for_final_run_flagは、現在ブロック内の最後の位置のパレットインデックスが周辺サンプルのパレットインデックスからコピーされたものであることを示すことができる。垂直トラバーススキャンが用いられる場合、周辺サンプルは、現在サンプルの左側の列(column)で現在サンプルと同じ位置にあるサンプルであり得る。水平トラバーススキャンが用いられる場合、周辺サンプルは、現在サンプルの上側の行(row)で現在サンプルと同じ位置にあるサンプルであり得る。copy_above_indices_for_final_run_flagがビットストリームから取得されない場合、copy_above_indices_for_final_run_flagの値は0と推論できる。
【0268】
また、パラメータpalette_transpose_flagは、現在ブロック(又は、パレットインデックスマップ)のスキャン方式を示すことができる。例えば、第1値(例えば、0)を持つpalette_transpose_flagは、現在ブロックに対して水平トラバーススキャンが適用されることを示すことができる。これとは異なり、第2値(例えば、1)を持つpalette_transpose_flagは、現在ブロックに対して垂直トラバーススキャンが適用されることを示すことができる。palette_transpose_flagがビットストリームで取得されない場合、palette_transpose_flagの値は0と推論できる。
【0269】
図18cを参照すると、パラメータcopy_above_palette_indices_flagは、現在ブロック内の現在サンプルに対する符号化モード(パレットサンプルモード)を示すことができる。例えば、第1値(例えば、0)を持つcopy_above_palette_indices_flagは、現在サンプルにマッピングされたパレットインデックスが「INDEX」モードで符号化されることを示すことができる。これとは異なり、第2値(例えば、1)を持つcopy_above_palette_indices_flagは、現在サンプルにマッピングされたパレットインデックスが「COPY_ABOVE」モードで符号化されることを示すことができる。
【0270】
また、パラメータCopyAboveIndicesFlag[xC][yC]は、現在ブロック内の複数のサンプルそれぞれに対する符号化モードを示すことができる。すなわち、CopyAboveIndicesFlagは、現在ブロック内の複数のサンプルそれぞれに対するcopy_above_palette_indices_flagの配列であり得る。ここで、xC及びyCは、現在ピクチャの左上側サンプルからの現在サンプルの相対的位置を示す座標インジケータであり得る。
【0271】
CopyAboveIndicesFlag[xC][yC]が第1値(例えば、0)を持つ場合、PaletteRunMinus1は、「COPY_ABOVE」モードを用いて連続的に符号化されたパレットインデックスの個数から1を差し引いた値を示すことができる。これとは異なり、CopyAboveIndicesFlag[xC][yC]が第2値(例えば、1)を持つ場合、PaletteRunMinus1は、「INDEX」モードを用いて連続的に符号化されたパレットインデックスの個数から1を差し引いた値を示すことができる。
【0272】
図18dを参照すると、パラメータPaletteIndexMap[xC][yC]は、現在ブロックに対するパレットインデックスマップを示すことができる。すなわち、PaletteIndexMapは、現在ブロック内の複数のサンプルそれぞれに対するCurrentPaletteEntriesの配列であり得る。ここで、xC及びyCは、現在ピクチャの左上側サンプルからの現在サンプルの相対的位置を示す座標インジケータであり得る。一例において、PaletteIndexMap[xC][yC]は、0乃至(MaxPaletteIndex-1)の間の値を持つことができる。
【0273】
また、パラメータPaletteMaxRunMinus1は、PaletteRunMinus1の最大値を示すことができる。一例において、PaletteMaxRunMinus1は、0よりも大きい値を持つことができる。
【0274】
また、パラメータpalette_run_prefixは、PaletteRunMinus1の二値化に使用されるプレフィックス部分を示すことができる。
【0275】
また、パラメータpalette_run_suffixは、PaletteRunMinus1の2値化に使用されるサフィックス部分を示すことができる。palette_run_suffixがビットストリームから取得されない場合、palette_run_suffixの値は0と推論できる。
【0276】
一例において、PaletteMaxRunMinus1の値が0であれば、PaletteRunMinus1の値は0に設定されることができる。これとは異なり、PaletteMaxRunMinus1が0より大きい場合、PaletteRunMinus1は、palette_run_prefixの値に基づいて設定できる。例えば、palette_run_prefixの値が2よりも小さい場合、PaletteRunMinus1の値は、下記数式4の通りに設定されることができる。
【0277】
〔数式4〕
PaletteRunMinus1=palette_run_prefix
【0278】
palette_run_prefixの値が2以上である場合、PaletteRunMinus1の値は、下記数式5の通りに算出されることができる。
【0279】
〔数式5〕
PrefixOffset=1<<(palette_run_prefix-1)
PaletteRunMinus1=PrefixOffset+palette_run_suffix
【0280】
図18eを参照すると、パラメータpalette_escape_valは、現在ブロック内のエスケープサンプルの量子化ピクセル値を示すことができる。
【0281】
また、パラメータPaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]の値がMaxPaletteIndexであり、palette_escape_val_present_flagの値が1である、エスケープサンプルの量子化ピクセル値を示すことができる。ここで、cIdxはカラーコンポーネントを示し、xC及びyCは現在ピクチャの左上側サンプルからの現在サンプルの相対的位置を示す座標インジケータであり得る。
【0282】
以下、ローカルデュアルツリー構造を持つ現在ブロックに対してパレットモードを適用する方法を説明する。
【0283】
ローカルデュアルツリー構造を持つ現在ブロックに対するパレットモードの適用
【0284】
図19はローカルデュアルツリー構造を持つCUの一例を示す図である。
【0285】
図19を参照すると、現在CUは、ルマ成分及びクロマ成分それぞれに対して四分木構造に分割されることができる。例えば、4:2:0のカラーフォーマットを持つ現在CUで、16×16のルマブロックが四分木分割され、それぞれ8×8サイズの第1乃至第4ルマブロック1911~1914が生成できる。また、8×8のクロマブロックが四分木分割され、それぞれ4×4サイズの第1乃至第4クロマブロック1921~1924が生成できる。この場合、第1クロマブロック1921は第1ルマブロック1911に対応し、第2クロマブロック1922は第2ルマブロック1912に対応し、第3クロマブロック1923は第3ルマブロック1913に対応し、第4クロマブロック1924は第4ルマブロック1914に対応することができる。
【0286】
クロマブロックの最小サイズが16個以上のクロマサンプルを含むように制限された場合、第1乃至第4クロマブロック1921~1924に対する追加分割は禁止できる。これに対し、符号化効率を向上させるため、第1乃至第4ルマブロック1911~1914に対する追加分割は許容できる。これにより、第3ルマブロック1913が垂直バイナリ分割され、それぞれ4×8サイズの2つのルマブロック1913-1、1913-2が生成できる。この場合、第3ルマブロック1913の分割構造をデュアルツリールマDUAL_TREE_LUMAと呼ぶことができ、第3クロマブロック1923の分割構造をデュアルツリークロマDUAL_TREE_CHROMAと呼ぶことができる。また、現在CUを分割して生成される複数の下位CUのうち、第3ルマブロック1913及び第3クロマブロック1923を含む下位CUのみがデュアルツリー構造を持つので、前記下位CUの分割構造をローカルデュアルツリー構造と呼ぶことができる。この場合、現在CUに対する復号化過程の一例は、図20に示す通りである。
【0287】
図20図19の例における現在CUに対する復号化過程の一例を示す図である。
【0288】
シングルツリー構造を持つ下位CUのルマブロック及びクロマブロックは、同じ予測モード(例えば、イントラ予測モード、IBC、パレットモード、インター予測モードなど)に基づいて復号化できる。これに対し、デュアルツリー構造を持つ下位CUのルマブロック及びクロマブロックは、様々な予測モードの組み合わせに基づいて個別に復号化できる。例えば、デュアルツリー構造を持つ下位CUのルマブロック及びクロマブロックは、同じ予測モードを用いて復号化されてもよく、或いは互いに異なる予測モードを用いて復号化されてもよい。
【0289】
図20では、シングルツリー構造を持つ下位CUと、デュアルツリー構造を持つ下位CUを区別するために、シングルツリー構造を持つ下位CUに対してはルマブロックのみを示し、デュアルツリー構造を持つ下位CUに対してはルマブロック及びクロマブロックの両方を示す。また、シングルツリー構造を持つ下位CUについては、ルマブロックを基準に復号化過程を説明する。
【0290】
図20を参照すると、シングルツリー構造を持つ第1ルマブロック1911は、インター予測モードを用いて復号化できる。また、シングルツリー構造を持つ第2ルマブロック1912は、パレットモードを用いて復号化できる。また、シングルツリー構造を持つ第4ルマブロック1914は、パレットモードを用いて復号化できる。これとは異なり、デュアルツリー構造を持つ第3-1ルマブロック1913-1はパレットモードを用いて復号化され、第3-2ルマブロック1913-2はイントラモードを用いて復号化され、第3クロマブロック1923はパレットモードを用いて復号化されることができる。
【0291】
第1乃至第4ルマブロック1911~1914に対する復号化過程は、順次行われることができる。また、第3-1ルマブロック1913-1及び第3-2ルマブロック1913-2に対する復号化過程と第3クロマブロック1923に対する復号化過程は、並列的に又は所定の順序に従って順次行われることができる。
【0292】
第2ルマブロック1912に対するパレット復号化が行われる場合、前述したように、ルマ成分及びクロマ成分それぞれに対するパレットエントリ及び前記パレットエントリを識別するためのパレットインデックスを含む一つのパレット予測子が構成できる。そして、パレット予測子は、次のパレット復号化のために第2ルマブロック1912に適用されたパレットエントリを用いて更新できる(S2010)。
【0293】
第2ルマブロック1912に対するパレット復号化が完了した場合、ステップS2010で更新されたパレット予測子を用いて、第3-1ルマブロック1913-1及び第3クロマブロック1923に対するパレット復号化が個別に行われることができる。
【0294】
第3-1ルマブロック1913-1に対するパレット予測子は、ステップS2010で更新されたパレット予測子においてルマ成分に対するパレットエントリ、及び前記パレットエントリを識別するためのパレットインデックスのみを含むことができる(S2020)。第3-1ルマブロック1913-1に対するパレット予測子をルマパレット予測子と呼ぶことができる。そして、第3-1ルマブロック1913-1に対するパレット復号化が完了した場合、前記ルマパレット予測子は、第3-1ルマブロック1913-1に適用されたパレットエントリを用いて更新できる(S2030)。
【0295】
第3クロマブロック1923に対するパレット予測子は、ステップS2010で更新されたパレット予測子においてクロマ成分に対するパレットエントリ、及び前記パレットエントリを識別するためのパレットインデックスのみを含むことができる(S2040)。第3クロマブロック1923に対するパレット予測子をクロマパレット予測子と呼ぶことができる。そして、第3クロマブロック1923に対するパレット復号化が完了した場合、前記クロマパレット予測子は、第3クロマブロック1923に適用されたパレットエントリを用いて更新できる(S2050)。
【0296】
第3-2ルマブロック1913-2に対する復号化が行われた後、第4ルマブロック1914に対するパレット復号化が行われることができる。
【0297】
第4ルマブロック1914に対するパレット予測子は、ステップS2030で更新されたルマパレット予測子と、ステップS2050で更新されたクロマパレット予測子とを組み合わせることにより構成できる(S2060)。つまり、第4ルマブロック1914に対するパレット予測子は、第3-1ルマブロック1913-1に対するルマ成分のパレットエントリ、及び第3クロマブロック1923に対するクロマ成分のパレットエントリと、それぞれのパレットエントリを識別するためのパレットインデックスとを含むことができる。この場合、第4ルマブロック1914に対するパレット予測子のサイズ(すなわち、パレットエントリの個数)は、ルマ成分のパレットエントリの個数に基づいて決定できる。例えば、ステップS2030で更新されたルマパレット予測子のサイズがNであり(Nは0よりも大きい整数)、ステップS2050で更新されたクロマパレット予測子のサイズがMである場合(Mは0よりも大きい整数)、第4ルマブロック1914に対するパレット予測子のサイズは、Nと決定されることができる。かかる特性により、パレット予測子は、無効な(invalid)パレットエントリを含むようになるか、或いは有効な(valid)パレットエントリを含まなくなるという問題が発生する可能性がある。図21及び図22は、図20の例においてローカルデュアルツリー構造を持つ下位CUにパレットモードを適用する場合に発生する問題を説明するための図である。
【0298】
まず、図21を参照すると、ローカルデュアルツリー構造を持つ第3-1ルマブロック1913-1に対するパレット復号化の結果として更新されたルマパレット予測子2110は、ルマ成分(例えば、Y成分)に対して、例えば、9つのパレットエントリ(代表カラー値)を含むことができる。また、デュアルツリー構造を持つ第3クロマブロック1923に対するパレット復号化の結果として更新されたクロマパレット予測子2120は、クロマ成分(例えば、Cb成分及びCr成分)それぞれに対して、例えば2つのパレットエントリを含むことができる。
【0299】
そして、第3-1ルマブロック1913-1及び第3クロマブロック1923に対する個別的なパレット復号化が行われた後、シングルツリー構造を持つ第4ルマブロック1914に対するパレット復号化が行われることができる。この場合、第4ルマブロック1914に対するパレット予測子2130は、前記ルマパレット予測子2110と前記クロマパレット予測子2120とを前記ルマパレット予測子2110のサイズを基準に組み合わせることにより構成できる。具体的には、前記ルマパレット予測子2110のサイズは9であり(例えば、PredictorPaletteSize[0]=9)、前記クロマパレット予測子2120のサイズはそれぞれのクロマ成分(例えば、Cb及びCr)に対して2であるので(例えば、PredictorPaletteSize[1]=2、PredictorPaletteSize[2]=2)、第4ルマブロック1914に対するパレット予測子2130のサイズは9と決定されることができる。このように決定されたサイズを満たすために、第4ルマブロック1914に対するパレット予測子2130は、それぞれのクロマ成分に対して7つのNULL値を持つパレットエントリ2131を含むことができる。その結果、NULL値を持つパレットエントリ2131を保存するための不要なメモリスペースが無駄になり、復号化効率が低下するという問題が発生する可能性がある。
【0300】
次に、図22を参照すると、ローカルデュアルツリー構造を持つ第3-1ルマブロック1913-1に対するパレット復号化の結果として更新されたルマパレット予測子2210は、ルマ成分(例えば、Y)に対して、例えば3つのパレットエントリ(代表カラー値)を含むことができる。また、ローカルデュアルツリー構造を持つ第3クロマブロック1923に対するパレット復号化の結果として更新されたクロマパレット予測子2220は、それぞれのクロマ成分(例えば、Cb及びCr)に対して、例えば、5つのパレットエントリを含むことができる。
【0301】
そして、第3-1ルマブロック1913-1及び第3クロマブロック1923に対する個別的なパレット復号化が行われた後、シングルツリー構造を持つ第4ルマブロック1914に対するパレット復号化が行われることができる。この場合、第4ルマブロック1914に対するパレット予測子2230は、前記ルマパレット予測子2210と前記クロマパレット予測子2220とを前記ルマパレット予測子2210のサイズを基準に組み合わせることにより構成できる。具体的には、前記ルマパレット予測子のサイズは3であり(例えば、PredictorPaletteSize[0]=3)、前記クロマパレット予測子2220のサイズはそれぞれのクロマ成分(例えば、Cb及びCr)に対して5であるので(例えば、PredictorPaletteSize[1]=5、PredictorPaletteSize[2]=5)、第4ルマブロック1914に対するパレット予測子2230のサイズは3と決定されることができる。このように決定されたサイズを満たすために、前記クロマパレット予測子2220に含まれているそれぞれのクロマ成分に対する最後の2つの有効なパレットエントリ2221は捨てられることができる。その結果、第4ルマブロック1914に対する最適なパレットテーブルを構成することができなくなるので、第4ルマブロック1914に対するパレット復号化性能が低下するという問題が発生する可能性がある。
【0302】
図21及び図22を参照して説明した問題を解決するために、本発明の実施例による画像符号化/復号化方法によれば、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かに基づいて、パレット予測子を更新する過程がスキップされるか、或いはパレットモードが選択的に適用されることができる。
【0303】
以下、添付図面を参照して、本発明の実施例を詳細に説明する。
【0304】
実施例#1
【0305】
本開示の実施例#1によれば、ローカルデュアルツリー構造を持つ現在ブロックをパレット符号化/復号化するにあたり、パレット予測子を更新する過程は、現在ブロックの分割構造に基づいて選択的に行われることができる。
【0306】
図23は本開示の一実施例によるパレット符号化方法を示すフローチャートである。
【0307】
図23のパレット符号化方法は、図2の画像符号化装置によって行われることができる。具体的には、ステップS2310~ステップS2350は、イントラ予測部165によって行われてもよく、或いはイントラ予測部165とは異なる別個の機能ブロック(例えば、パレット符号化部)によって行われてもよい。
【0308】
現在ブロックにパレットモードが適用されるか否かは、現在ブロックの予測モードタイプに基づいて決定されることができる。例えば、現在ブロックの予測モードタイプが、イントラ予測、IBC(intra block copy)、パレットモード、及びインター予測が全て適用できる第1モードタイプ(例えば、MODE_TYPE_ALL)である場合、現在ブロックにパレットモードが適用できる。これとは異なり、現在ブロックの予測モードタイプが、イントラ予測のみが適用できる第2モードタイプ(例えば、MODE_TYPE_INTRA)、又はインター予測のみが適用できる第3モードタイプ(例えば、MODE_TYPE_INTER)である場合、現在ブロックにパレットモードが適用できない。現在ブロックにパレットモードが適用されるか否かは、所定のフラグ(例えば、pred_mode_plt_flag)を用いてシグナリングされることができる。例えば、現在ブロックにパレットモードが適用されない場合、第1値(例えば、0)を持つpred_mode_plt_flagがシグナリングされることができる。これとは異なり、現在ブロックにパレットモードが適用される場合、第2値(例えば、1)を持つpred_mode_plt_flagがシグナリングされることができる。
【0309】
図23を参照すると、現在ブロックにパレットモードが適用される場合、画像符号化装置は、現在ブロックに対するパレット予測子及びパレットテーブルを構成することができる(S2310)。
【0310】
パレット予測子は、少なくとも一つのパレットエントリ(代表カラー値)及びそれぞれのパレットエントリを識別するためのパレットインデックスを含むことができる。現在ブロックが、現在CTU(又は、スライス)内で最初にパレット符号化されるブロックである場合、パレット予測子は、所定の初期値(例えば、0)を持つことができる。これとは異なり、現在ブロックが現在CTU内で最初にパレット符号化されるブロックではない場合、パレット予測子は、現在ブロック以前のパレット符号化過程で用いられた少なくとも一つのパレットエントリを含むことができる。
【0311】
画像符号化装置は、パレット予測子に基づいてパレットテーブルを構成することができる。パレットテーブルは、パレット予測子から選択された少なくとも一つのパレットエントリ、及びそれぞれのパレットエントリを識別するためのパレットインデックスを含むことができる。
【0312】
一例において、パレット予測子及びパレットテーブルは、現在ブロックのカラーフォーマット(又は、クロマフォーマット)に応じて様々に構成できる。例えば、現在ブロックのカラーフォーマットが、表2を参照して前述したモノクローム(monochrome)フォーマットである場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分に対するパレットエントリのみを含むことができる。これとは異なり、現在ブロックのカラーフォーマットが、表2を参照して前述した4:2:0、4:2:2、又は4:4:4のフォーマットである場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分それぞれに対するパレットエントリを含むことができる。
【0313】
一例において、パレット予測子及びパレットテーブルは、現在ブロックの分割構造に応じて様々に構成できる。例えば、現在ブロックがシングルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分に対して共通に適用される一つの構成を持つことができる。これとは異なり、現在ブロックがデュアルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分それぞれに対して個別に適用される複数の構成を持つことができる。例えば、現在ブロックに対するパレット予測子は、ルマ成分に対するルマパレット予測子、及びクロマ成分に対するクロマパレット予測子を含むことができる。この場合、ルマパレット予測子に含まれるパレットエントリの個数と、クロマパレット予測子に含まれるパレットエントリの個数とは互いに異なり得る。
【0314】
画像符号化装置は、パレットテーブルに基づいて現在ブロックに対するパレットインデックスマップを生成することができる(S2320)。
【0315】
パレットインデックスマップは、現在ブロック内のそれぞれのサンプルにパレットテーブル内の所定のパレットインデックスをマッピングさせたものを意味することができる。例えば、現在ブロック内の複数のサンプルのうち、パレットテーブルで定義されている代表カラー値と同一又は類似のピクセル値を持つサンプルに対しては、当該代表カラー値を指示するパレットインデックスがマッピングされることができる。これとは異なり、現在ブロックの複数のサンプルのうち、パレットテーブルで定義されている代表カラー値と類似しないピクセル値を持つサンプル(エスケープサンプル)に対しては、エスケープパレットインデックスがマッピングされることができる。一例において、各サンプルのピクセル値が、パレットテーブルで定義されている代表カラー値と類似するか否かは、所定の閾値を基準に判別できる。例えば、各サンプルのピクセル値と代表カラー値との差が所定の閾値以下である場合、当該サンプルには、代表カラー値を指示するパレットインデックスがマッピングされることができる。これとは異なり、各サンプルのピクセル値と代表カラー値との差が所定の閾値を超える場合、当該サンプルにはエスケープパレットインデックスがマッピングされることができる。
【0316】
画像符号化装置は、パレットインデックスマップに基づいて現在ブロックを符号化することができる(S2330)。
【0317】
現在ブロックの符号化過程は、パレットインデックスマップ内のパレットインデックスを所定のスキャン方式に従ってスキャンすることにより行われることができる。具体的には、画像符号化装置は、現在ブロックにマッピングされたパレットインデックスを所定のスキャン方式に従ってスキャンすることにより、前記パレットインデックスそれぞれの符号化モード(パレットサンプルモード)を決定することができる。
【0318】
パレット符号化のためのスキャン方式は、図15を参照して前述したように、水平トラバーススキャン(horizontal traverse scan)及び垂直トラバーススキャン(vertical traverse scan)を含むことができる。一例において、スキャン方式に関する情報は、palette_transpose_flagを用いてシグナリングされることができる。例えば、現在ブロックのパレット符号化のために水平トラバーススキャンが用いられる場合、第1値(例えば、0)を持つpalette_transpose_flagがシグナリングされることができる。これとは異なり、現在ブロックのパレット符号化のために垂直トラバーススキャンが用いられる場合、第2値(例えば、1)を持つpalette_transpose_flagがシグナリングされることができる。
【0319】
現在ブロックにマッピングされたパレットインデックスそれぞれを符号化するための符号化モードは、パレットサンプルモードと呼ばれることができる。パレットサンプルモードは、「INDEX」モード及び「COPY_ABOVE」モードを含むことができる。パレットサンプルモードが「INDEX」モードと決定された場合、当該パレットインデックスの値が符号化できる。これとは異なり、パレットサンプルモードが「COPY_ABOVE」モードと決定された場合、当該パレットインデックスの値は符号化されず、当該パレットインデックスが、上側(水平トラバーススキャンの場合)又は左側(垂直トラバーススキャンの場合)に存在するパレットインデックスと同じ値を持つことを示す情報が符号化できる。一例において、パレットサンプルモードに関する情報は、copy_above_palette_indices_flagを用いてシグナリングされることができる。例えば、現在サンプルに対するパレットサンプルモードが「INDEX」モードと決定された場合、第1値(例えば、0)を持つcopy_above_palette_indices_flagがシグナリングされることができる。これとは異なり、現在サンプルに対するパレットサンプルモードが「COPY_ABOVE」モードと決定された場合、第2値(例えば、1)を持つcopy_above_palette_indices_flagがシグナリングされることができる。
【0320】
また、「INDEX」モードと「COPY_ABOVE」モードで、同じパレットサンプルモードを用いて連続的に符号化されたパレットインデックスの個数を示すラン値情報がさらに符号化できる。
【0321】
一方、エスケープサンプルの場合、前記エスケープサンプルの量子化ピクセル値が符号化できる。一例において、現在ブロックがエスケープサンプルを含むか否かは、エスケープサンプルフラグ(例えば、palette_escape_val_present_flag)を用いてシグナリングされることができる。例えば、現在ブロックにエスケープサンプルが含まれない場合、第1値(例えば、0)を持つpalette_escape_val_present_flagがシグナリングされることができる。これとは異なり、現在ブロックがエスケープサンプルを含む場合、第2値(例えば、1)を持つpalette_escape_val_present_flagがシグナリングされることができる。
【0322】
画像符号化装置は、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かを決定することができる(S2340)。
【0323】
一例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックの予測モードタイプに基づいて決定されることができる。例えば、図10a~図10cを参照して前述したように、現在ブロックの予測モードタイプが、イントラ予測のみが適用できるMODE_TYPE_INTRAである場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAでない場合(例えば、MODE_TYPE_ALL)、現在ブロックの分割構造はシングルツリー構造であり得る。
【0324】
他の例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックのツリータイプtreeType及び現在CTUの分割構造のうちの少なくとも一つに基づいて決定されることができる。例えば、現在ブロックのツリータイプがシングルツリーSINGLE_TREEではなく、現在CTUが、P又はBスライスに含まれるか或いはシングルツリー構造に分割される場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックのツリータイプがシングルツリーSINGLE_TREEである場合、現在ブロックの分割構造はシングルツリー構造であり得る。又は、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のルマサンプルCUはデュアルツリーのルートノード(root node)になる場合、現在ブロックの分割構造はデュアルツリー構造であり得る。現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、下記数式6のようなLocalDualTreeFlagを用いてシグナリングされることができる。
【0325】
〔数式6〕
LocalDualTreeFlag=(treeType!=SINGLE_TREE&&(sh_slice_type!=I||(sh_slice_type==I&&sps_qtbtt_dual_tree_intra_flag==0)))?1:0
【0326】
数式6を参照すると、sps_qtbtt_dual_tree_intra_flagは、現在CTUの分割構造を示すことができる。例えば、第1値(例えば、0)を持つsps_qtbtt_dual_tree_intra_flagは、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUがシングルツリー構造に分割されることを示すことができる。これとは異なり、第2値(例えば、1)を持つsps_qtbtt_dual_tree_intra_flagは、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のルマサンプルCUはデュアルツリーのルートノード(root node)になることを示すことができる。
【0327】
LocalDualTreeFlagの値は、現在ブロックのツリータイプ(treeType)、スライスタイプ(sh_slice_type)、及び現在CTUの分割構造(sps_qtbtt_dual_tree_intra_flag)に基づいて決定されることができる。LocalDualTreeFlagの第1値(例えば、0)は、現在ブロックの分割構造がローカルデュアルツリー構造ではないことを示すことができ、LocalDualTreeFlagの第2値(例えば、1)は、現在ブロックの分割構造がローカルデュアルツリー構造であることを示すことができる。
【0328】
現在ブロックの分割構造がローカルデュアルツリー構造ではない場合(S2340の「NO」)、画像符号化装置は、現在ブロックに対するパレットテーブルを用いてパレット予測子を更新することができる(S2350)。例えば、現在ブロックがモノクロームフォーマットのルマブロックである場合、画像符号化装置はパレット予測子を更新することができる。また、現在ブロックがクロマブロックであり、現在ブロックの分割構造がローカルデュアルツリー構造ではない場合、画像符号化装置は、パレット予測子を更新することができる。これとは異なり、現在ブロックがクロマブロックであり、現在ブロックの分割構造がローカルデュアルツリー構造である場合、画像符号化装置は、パレット予測子を更新しなくてもよい。
【0329】
一例において、画像符号化装置は、パレットテーブルに含まれている少なくとも一つのパレットエントリをパレット予測子に追加することにより、パレット予測子を更新することができる。また、画像符号化装置は、パレット予測子に含まれている少なくとも一つのパレットエントリを、パレットテーブルに含まれている少なくとも一つのパレットエントリに置き換えることにより、パレット予測子を更新することもできる。この場合、パレット予測子において置き換えられるパレットエントリは、先入れ先出し方式(FIFO)に応じて、最も古いパレットエントリ又は最も少ない頻度で使用されたパレットエントリと決定されることができる。
【0330】
一例において、パレット予測子に対する更新過程は、パレット予測子が最大サイズに達するまで行い続けられることができる。パレット予測子が最大サイズに達していない場合、パレットテーブルで再使用されていないパレット予測子内の少なくとも一つのパレットエントリが新しいパレット予測子として追加できる。これをパレットスタッフィング(palette stuffing)と呼ぶことができる。そして、更新されたパレット予測子に関する情報が符号化されてシグナリングされることができる。
【0331】
現在ブロックの分割構造がローカルデュアルツリー構造である場合(S2340の「YES」)、画像符号化装置は、パレット予測子を更新するステップ(S2350)をスキップすることができる。この場合、現在CTU内で現在ブロックの次にパレット符号化されるブロックに対しては、現在ブロックに適用されたパレット予測子が再び適用されることができる。
【0332】
一方、図23には、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かを決定するステップ(S2340)が現在ブロックを符号化するステップ(S2330)の後に行われるものと示されているが、その動作順序は様々に変更できる。例えば、ステップS2340はステップS2330の前に行われてもよく、或いは、ステップS2340はステップS2330と同時に行われてもよい。
【0333】
図24図19の例における、パレット予測子が更新されない場合のパレット符号化過程を説明するための図である。
【0334】
図24を参照すると、第2ルマブロック1912に対する符号化過程(S2410)で更新されたパレット予測子において、ルマ成分に対するパレットエントリが第3-1ルマブロック1913-1のパレット符号化に用いられることができる(S2420)。また、第2ルマブロック1912に対する符号化過程(S2410)で更新されたパレット予測子において、クロマ成分に対するパレットエントリが第3クロマブロック1923のパレット符号化に用いられることができる(S2430)。そして、ローカルデュアルツリー構造を持つ第3-1ルマブロック1913-1及び第3クロマブロック1923のそれぞれに対するパレット符号化過程で、パレット予測子を更新する過程はスキップされてもよい。その結果、第3-1ルマブロック1913-1及び第3クロマブロック1923の次にパレット符号化される第4ルマブロック1914に対しては、第2ルマブロック1912に対するパレット符号化過程(S2410)で更新されたパレット予測子が再び適用できる(S2440)。
【0335】
図25は現在ブロックの分割構造に基づいてパレット予測子を選択的に更新する過程の一例を示す図である。
【0336】
図25を参照すると、パレット予測子(PredictorPaletteEntries[cIdx][i])を構成するパレットエントリ(PredictorPaletteEntries)に対する更新動作は、現在ブロックの予測モードタイプがイントラ予測、IBC(intra block copy)、パレットモード、及びインター予測が全て適用できる第1モードタイプ(例えば、MODE_TYPE_ALL)である場合にのみ行われることができる。
【0337】
パラメータCurrentPaletteSize[startComp]は、現在ブロックに対するパレットテーブルのサイズ(すなわち、パレットエントリの総数)を示すことができる。
【0338】
パラメータstartComp、numComps及びmaxNumPalettePredictorSizeそれぞれの値は、現在ブロックの分割ツリー構造によって異なるように設定できる。
【0339】
例えば、現在ブロックがシングルツリー構造を持つ場合、パラメータstartComp、numComps及びmaxNumPalettePredictorSizeそれぞれの値は、下記数式7の通りに設定されることができる。
【0340】
〔数式7〕
startComp=0
numComps=sps_chroma_format_idc==0?1:3
maxNumPalettePredictorSize=63
【0341】
数式7を参照すると、パレットテーブルの1番目のカラーコンポーネントstartCompは0に設定されることができる。また、パレットテーブルの総カラーコンポーネントの個数numCompsは、現在ブロックのカラーフォーマット(又は、クロマフォーマット)がモノクローム(monochrome)である場合には1に設定され、現在ブロックのカラーフォーマットが4:4:4のフォーマットである場合には3に設定されることができる。また、パレット予測子の最大サイズmaxNumPalettePredictorSizeは63に設定されることができる。
【0342】
これとは異なり、現在ブロックがデュアルツリールマ構造を持つ場合、パラメータstartComp、numComps、及びmaxNumPalettePredictorSizeそれぞれの値は、下記数式8の通りに設定されることができる。
【0343】
〔数式8〕
startComp=0
numComps=1
maxNumPalettePredictorSize=31
【0344】
数式8を参照すると、パレットテーブルの1番目のカラーコンポーネントstartCompは0に設定されることができる。また、パレットテーブルのカラーコンポーネントの総数numCompsは1に設定されることができる。また、パレット予測子の最大サイズmaxNumPalettePredictorSizeは31に設定されることができる。
【0345】
また、現在ブロックがデュアルツリークロマ構造を持つ場合、パラメータstartComp、numComps及びmaxNumPalettePredictorSizeそれぞれの値は、下記数式9の通りに設定されることができる。
【0346】
〔数式9〕
startComp=1
numComps=2
maxNumPalettePredictorSize=31
【0347】
数式9を参照すると、パレットテーブルの1番目のカラーコンポーネントstartCompは1に設定されることができる。また、パレットテーブルのカラーコンポーネントの総数numCompsは2に設定されることができる。また、パレット予測子の最大サイズmaxNumPalettePredictorSizeは31に設定されることができる。
【0348】
パレットテーブルのすべてのパレットエントリが新しいパレットエントリに設定されることができる(newPredictorPaletteEntries[cIdx][i]=CurrentPaletteEntries[cIdx][i])。ここで、cIdxはカラーコンポーネントを意味することができる。そして、1番目のカラーコンポーネントstartCompに対するパレットテーブルのサイズは、新しいパレット予測子のサイズに設定されることができる(newPredictorPaletteSize=CurrentPaletteSize[startComp])。
【0349】
次に、所定の再使用フラグPalettePredictorEntryReuseFlags[i]の値に基づいて、パレット予測子の少なくとも一つのパレットエントリが新しいパレットエントリに設定されることができる(newPredictorPaletteEntries[cIdx][newPredictorPaletteSize]=PredictorPaletteEntries[cIdx][i])。そして、新しいパレット予測子のサイズは1だけ増加することができる(newPredictorPaletteSize++)。
【0350】
次に、上述したすべての新しいパレットエントリは、新しいパレット予測子のパレットエントリに設定されることができる(PredictorPaletteEntries[cIdx][i]=newPredictorPaletteEntries[cIdx][i])。そして、新しいパレット予測子のサイズが、1番目のカラーコンポーネントstartCompに対するパレット予測子のサイズに設定されることができる(newPredictorPaletteSize=PredictorPaletteSize[StartComp])。
【0351】
図26は本開示の一実施例によるパレット復号化方法を示すフローチャートである。
【0352】
図26のパレット復号化方法は、図3の画像復号化装置によって行われることができる。具体的には、ステップS2610~ステップS2660は、イントラ予測部265によって行われてもよく、あるいは、イントラ予測部265とは異なる別個の機能ブロック(例えば、パレット復号化部)によって行われてもよい。
【0353】
図26を参照すると、現在ブロックにパレットモードが適用される場合、画像復号化装置は、ビットストリームから現在ブロックに対するパレット情報及びパレットインデックス予測情報を取得することができる(S2610)。
【0354】
パレット情報は、パレット予測子に関する情報を含むことができる。また、パレット情報は、新しいパレットエントリに関する情報をさらに含むことができる。一例において、画像復号化装置は、ビットストリームに含まれているPredictorPaletteEntries[cIdx][i]を復号化することにより、新しいパレット予測子に関する情報を取得することができる。また、一例において、画像復号化装置は、ビットストリームに含まれているnew_palette_entries[cIdx][i]を復号化することにより、新しいパレットエントリに関する情報を取得することができる。PredictorPaletteEntries[cIdx][i]及びnew_palette_entries[cIdx][i]において、cIdxはカラーコンポーネントを意味することができる。
【0355】
パレットインデックス予測情報は、現在ブロックに対するパレットインデックスマップに関する情報を含むことができる。一例において、画像復号化装置は、ビットストリームに含まれているPaletteIndexMap[xC][yC]を復号化することにより、現在ブロックにマッピングされた少なくとも一つのパレットインデックスを取得することができる。ここで、xC及びyCは、、現在ブロックの属するCTU(又は、スライス)の左上側サンプルからの現在サンプルの相対的位置を示す座標インジケータであり得る。一例において、画像復号化装置は、ビットストリームに含まれているPaletteRunMinus1を復号化することにより、パレットインデックスマップに含まれているパレットインデックスのラン値情報を取得することができる。
【0356】
画像復号化装置は、ビットストリームから取得されたパレット情報に基づいて、現在ブロックに対するパレット予測子及びパレットテーブルを構成することができる(S2620)。
【0357】
一例において、画像復号化装置は、ビットストリームに含まれているPredictorPaletteEntries[cIdx][i]に基づいて、現在ブロックに対するパレット予測子を構成することができる。パレット予測子は、例えば、現在ブロックを含むCTU(又は、スライス)の最初の復号化時点で初期化された所定の値(例えば、0)を持つことができる。又は、パレット予測子は、以前のパレット復号化過程で更新されたパレット予測子と同じ構成を持つことができる。
【0358】
画像復号化装置は、パレット予測子に基づいて現在ブロックに対するパレットテーブルを構成することができる。パレットテーブルは、パレット予測子に含まれているパレットエントリ、及びビットストリームから取得される新しいパレットエントリのうちの少なくとも一つと、それぞれのパレットエントリを識別するためのパレットインデックスとを含むことができる。
【0359】
一例において、パレット予測子及びパレットテーブルは、現在ブロックのカラーフォーマット(又は、クロマフォーマット)に応じて様々に構成できる。例えば、パレット予測子及びパレットテーブルは、現在ブロックのカラーフォーマットに応じて、ルマ成分に対するパレットエントリのみを含むか、或いはルマ成分及びクロマ成分それぞれに対するパレットエントリを全て含むことができる。
【0360】
一例において、パレット予測子及びパレットテーブルは、現在ブロックの分割構造に応じて様々に構成されることができる。例えば、現在ブロックがシングルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分に共通に適用される単一の構成を持つことができる。これとは異なり、現在ブロックがデュアルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分それぞれに対して別々に適用される多重構成を持つことができる。
【0361】
画像復号化装置は、ビットストリームから取得されたパレットインデックス予測情報に基づいて現在ブロックに対するパレットインデックスマップを生成することができる(S2630)。具体的には、画像復号化装置は、ビットストリームから取得されたパレットインデックス、パレットサンプルモード及びパレットサンプルモードのラン値を用いて、所定のスキャン方式に従って現在ブロック内のそれぞれのサンプルにパレットインデックスをマッピングすることにより、パレットインデックスマップを生成することができる。
【0362】
パレット復号化のためのスキャン方式は、図15を参照して前述したように、水平トラバーススキャン(horizontal traverse scan)及び垂直トラバーススキャン(vertical traverse scan)を含むことができる。一例において、パレット復号化のためのスキャン方式は、ビットストリームに含まれているpalette_transpose_flagを復号化することにより決定されることができる。例えば、palette_transpose_flagが第1値(例えば、0)を持つ場合、パレット復号化のためのスキャン方式は、水平トラバーススキャンと決定されることができる。これとは異なり、palette_transpose_flagが第2値(例えば、1)を持つ場合、パレット復号化のためのスキャン方式は、垂直トラバーススキャンと決定されることができる。
【0363】
パレットサンプルモードは、前述したように「INDEX」モード及び「COPY_ABOVE」モードを含むことができる。現在サンプルに「INDEX」モードが適用される場合、前記現在サンプルにマッピングされるパレットインデックスの値は、ビットストリームから直接取得できる。これに対し、現在サンプルに「COPY_ABOVE」モードが適用される場合、前記現在サンプルにマッピングされるパレットインデックスの値は、前記現在サンプルの上側(水平トラバーススキャンの場合)又は左側(垂直トラバーススキャンの場合)に存在する周辺サンプルにマッピングされたパレットインデックスの値と決定されることができる。
【0364】
一方、現在サンプルがエスケープサンプルである場合、前記現在サンプルの量子化ピクセル値がビットストリームから直接取得されることができる。エスケープサンプルにはエスケープパレットインデックスがマッピングされることができる。
【0365】
画像復号化装置は、現在ブロックに対するパレットテーブル及びパレットインデックスマップに基づいて現在ブロックを復号化することができる(S2640)。具体的には、画像復号化装置は、パレットテーブルを参照して、パレットインデックスマップ内のそれぞれのパレットインデックスの値を代表カラー値に逆マッピング(inverse mapping)することにより、現在ブロックに対する予測ブロックを生成することができる。
【0366】
そして、画像復号化装置は、現在ブロックがローカルデュアルツリー構造を持つか否かを決定することができる(S2650)。
【0367】
一例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックの予測モードタイプに基づいて決定されることができる。例えば、図10a~図10cを参照して前述したように、現在ブロックの予測モードタイプが、イントラ予測のみが適用できるMODE_TYPE_INTRAである場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAではない場合(例えば、MODE_TYPE_ALL)、現在ブロックの分割構造はシングルツリー構造であり得る。
【0368】
他の例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックのツリータイプtreeType及び現在ブロックを含むCTU(現在CTU)の分割構造のうちの少なくとも一つに基づいて決定されることができる。例えば、現在ブロックのツリータイプがシングルツリーSINGLE_TREEではなく、現在CTUがシングルツリー構造に分割される場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックのツリータイプがシングルツリーSINGLE_TREEである場合、現在ブロックの分割構造はシングルツリー構造であり得る。又は、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のルマサンプルCUはデュアルツリーのルートノード(root node)になる場合、現在ブロックの分割構造はデュアルツリー構造であり得る。現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、数式6を参照して前述したLocalDualTreeFlagを復号化することにより決定できる。例えば、LocalDualTreeFlagが第1値(例えば、0)を持つ場合、現在ブロックの分割構造はシングルツリー構造又はデュアルツリー構造と決定されることができる。これとは異なり、LocalDualTreeFlagが第2値(例えば、1)を持つ場合、現在ブロックの分割構造はローカルデュアルツリー構造と決定されることができる。
【0369】
現在ブロックの分割構造がローカルデュアルツリー構造ではない場合(S2650の「NO」)、画像復号化装置は、現在ブロックに対するパレットテーブルを用いてパレット予測子を更新することができる(S2660)。例えば、現在ブロックがモノクローム(monochrome)フォーマットのルマブロックである場合、画像復号化装置はパレット予測子を更新することができる。また、現在ブロックがクロマブロックであり、現在ブロックの分割構造がローカルデュアルツリー構造ではない場合、画像復号化装置はパレット予測子を更新することができる。これとは異なり、現在ブロックがクロマブロックであり、現在ブロックの分割構造がローカルデュアルツリー構造である場合、画像復号化装置はパレット予測子を更新しなくてもよい。
【0370】
一例において、画像復号化装置は、パレットテーブルに含まれている少なくとも一つのパレットエントリをパレット予測子に追加することにより、パレット予測子を更新することができる。また、画像復号化装置は、パレット予測子に含まれている少なくとも一つのパレットエントリを、パレットテーブルに含まれている少なくとも一つのパレットエントリに置き換えることにより、パレット予測子を更新することもできる。この場合、パレット予測子で置き換えられるパレットエントリは、先入れ先出し方式(FIFO)に応じて、最も古いパレットエントリ又は最も少ない頻度で使用されたパレットエントリと決定されることができる。
【0371】
一例において、パレット予測子に対する更新過程は、パレット予測子が最大サイズに達するまで行い続けられることができる。パレット予測子が最大サイズに達していない場合、パレットテーブルで再使用されていないパレット予測子内の少なくとも一つのパレットエントリが新しいパレット予測子として追加できる。これをパレットスタッフィング(palette stuffing)と呼ぶことができる。
【0372】
一例において、画像復号化装置は、画像符号化装置からシグナリングされたパレット予測子の更新情報に基づいてパレット予測子を更新することもできる。
【0373】
現在ブロックの分割構造がローカルデュアルツリー構造である場合(S2650の「YES」)、画像復号化装置は、パレット予測子を更新するステップ(S2660)をスキップすることができる。この場合、現在CTU内で現在ブロックの次にパレット復号化されるブロックに対しては、現在ブロックに適用されたパレット予測子が再び適用できる。
【0374】
以上、上述した本開示の実施例#1によれば、現在ブロックの分割構造がローカルデュアルツリー構造である場合、現在ブロックに適用されたパレット予測子を更新する過程がスキップできる。これにより、現在ブロックの次にパレット符号化/復号化されるブロックに対するパレット予測子が、現在ブロックに適用された有効な(valid)パレットエントリを含まなくなるか、或いは無効な(invalid)パレットエントリを含むようになるという問題を解決することができる。
【0375】
実施例#2
【0376】
本開示の実施例#2によれば、ローカルデュアルツリー構造を持つ現在ブロックを符号化/復号化するにあたり、パレットモードは、現在ブロックの分割構造に基づいて選択的に適用できる。
【0377】
図27は本開示の一実施例によるパレット符号化方法を示すフローチャートである。
【0378】
図27のパレット符号化方法は、図2の画像部符号化装置によって行われることができる。具体的には、S2710~S2760は、イントラ予測部165によって行われてもよく、或いはイントラ予測部165とは異なる別個の機能ブロック(例えば、パレット符号化部)によって行われてもよい。一方、図27のS2720~S2750は、それぞれ図23のS2310~S2330及びS2350に対応できる。よって、S2720~S2750についての説明は簡略にする。
【0379】
図27を参照すると、画像符号化装置は、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かを決定することができる(S2710)。
【0380】
一例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックの予測モードタイプに基づいて決定できる。例えば、図10a~図10cを参照して前述したように、現在ブロックの予測モードタイプが、イントラ予測のみが適用できるMODE_TYPE_INTRAである場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAではない場合(例えば、MODE_TYPE_ALL)、現在ブロックの分割構造はシングルツリー構造であり得る。
【0381】
他の例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックのツリータイプtreeType及び現在CTUの分割構造のうちの少なくとも一つに基づいて決定できる。例えば、現在ブロックのツリータイプがシングルツリーSINGLE_TREEではなく、現在CTUがP又はBスライスに含まれるか或いはシングルツリー構造に分割される場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックのツリータイプがシングルツリーSINGLE_TREEである場合、現在ブロックの分割構造はシングルツリー構造であり得る。又は、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のルマサンプルCUはデュアルツリーのルートノード(root node)になる場合、現在ブロックの分割構造はデュアルツリー構造であり得る。現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、数式6を参照して前述したLocalDualTreeFlagを用いてシグナリングされることができる。この場合、LocalDualTreeFlagの第1値(例えば、0)は、現在ブロックの分割構造がローカルデュアルツリー構造ではないことを示すことができ、LocalDualTreeFlagの第2値(例えば、1)は、現在ブロックの分割構造がローカルデュアルツリー構造であることを示すことができる。
【0382】
現在ブロックの分割構造がローカルデュアルツリー構造ではない場合(S2710の「NO」)、画像符号化装置は、現在ブロックに対してパレットモードを適用することを決定し、現在ブロックに対するパレット予測子及びパレットテーブルを構成することができる(S2720)。
【0383】
パレット予測子は、少なくとも一つのパレットエントリ(代表カラー値)及びそれぞれのパレットエントリを識別するためのパレットインデックを含むことができる。現在ブロックが現在CTU(又は、スライス)内で最初にパレット符号化されるブロックである場合、パレット予測子は、所定の初期値(例えば、0)を持つことができる。これとは異なり、現在ブロックが、現在CTU内で最初にパレット符号化されるブロックではない場合、パレット予測子は、現在CTU内で現在ブロック以前のパレット符号化過程で用いられた少なくとも一つのパレットエントリを含むことができる。
【0384】
画像符号化装置は、パレット予測子に基づいてパレットテーブルを構成することができる。パレットテーブルは、パレット予測子から選択された少なくとも一つのパレットエントリとそれぞれのパレットエントリを識別するためのパレットインデックスを含むことができる。
【0385】
一例において、パレット予測子及びパレットテーブルは、現在ブロックのカラーフォーマット(又は、クロマフォーマット)に応じて様々に構成されることができる。例えば、現在ブロックのカラーフォーマットが、表2を参照して前述したモノクロームフォーマットである場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分に対するパレットエントリのみを含むことができる。これとは異なり、現在ブロックのカラーフォーマットが、表2を参照して前述した4:2:0、4:2:2又は4:4:4のフォーマットである場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分それぞれに対するパレットエントリを含むことができる。
【0386】
一例において、パレット予測子及びパレットテーブルは、現在ブロックの分割構造に応じて様々に構成されることができる。例えば、現在ブロックがシングルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分に対して共通に適用される一つの構成を持つことができる。これとは異なり、現在ブロックがデュアルツリー構造を持つ場合、パレット予測子及びパレットテーブルは、現在ブロックのルマ成分及びクロマ成分それぞれに対して個別に適用される複数の構成を持つことができる。
【0387】
画像符号化装置は、パレットテーブルに基づいて現在ブロックに対するパレットインデックスマップを生成することができる(S2730)。具体的には、画像符号化装置は、現在ブロック内の各画素(サンプル)のピクセル値とパレットテーブル内の代表カラー値との同一又は類似か否かに基づいて、現在ブロック内の各ピクセルにパレットインデックスをマッピングすることにより、パレットインデックスマップを生成することができる。
【0388】
画像符号化装置は、パレットインデックスマップに基づいて現在ブロックを符号化することができる(S2740)。
【0389】
現在ブロックの符号化過程は、パレットインデックスマップ内のパレットインデックスを所定のスキャン方式に従ってスキャンすることにより行われることができる。具体的には、画像符号化装置は、現在ブロックにマッピングされたパレットインデックスを所定のスキャン方式に従ってスキャンすることにより、前記パレットインデックスそれぞれの符号化モード(パレットサンプルモード)を決定することができる。
【0390】
パレット符号化のためのスキャン方式は、図15を参照して前述したように、水平トラバーススキャン(horizontal traverse scan)及び垂直トラバーススキャン(vertical traverse scan)を含むことができる。一例において、スキャン方式に関する情報は、palette_transpose_flagを用いてシグナリングされることができる。
【0391】
パレットインデックスマップに含まれているパレットインデックスそれぞれを符号化するためのパレットサンプルモードは、「INDEX」モード及び「COPY_ABOVE」モードを含むことができる。パレットサンプルモードが「INDEX」モードと決定された場合、当該パレットインデックスの値が符号化されることができる。これとは異なり、パレットサンプルモードが「COPY_ABOVE」モードと決定された場合、当該パレットインデックスの値は符号化されず、当該パレットインデックスが上側(水平トラバーススキャンの場合)又は左側(垂直トラバーススキャンの場合)に存在するパレットインデックスと同じ値を持つことを示す情報が符号化されることができる。一例において、パレットサンプルモードに関する情報は、copy_above_palette_indices_flagを用いてシグナリングされることができる。
【0392】
また、「INDEX」モードと「COPY_ABOVE」モードで、同じパレットサンプルモードを用いて連続的に符号化されたパレットインデックスの個数を示すラン値情報がさらに符号化されることができる。
【0393】
一方、パレットインデックスマップがエスケープパレットインデックスを含むか否かを示す情報は、エスケープサンプルフラグ(例えば、palette_escape_val_present_flag)を用いてシグナリングされることができる。エスケープパレットインデックスがマッピングされたサンプル(エスケープサンプル)に対しては、当該サンプルの量子化ピクセル値が符号化されてシグナリングされることができる。
【0394】
画像符号化装置は、現在ブロックに対するパレットテーブルを用いてパレット予測子を更新することができる(S2750)。例えば、画像符号化装置は、パレットテーブルに含まれている少なくとも一つのパレットエントリをパレット予測子に追加することにより、パレット予測子を更新することができる。また、画像符号化装置は、パレット予測子に含まれている少なくとも一つのパレットエントリを、パレットテーブルに含まれている少なくとも一つのパレットエントリに置き換えることにより、パレット予測子を更新することもできる。パレット予測子において置き換えられるパレットエントリは、先入れ先出し方式(FIFO)に応じて、最も古いパレットエントリ又は最も少ない頻度で使用されたパレットエントリと決定されることができる。
【0395】
パレット予測子に対する更新過程は、パレット予測子が最大パレットサイズに達するまで行い続けられることができる。例えば、パレット予測子は、最大パレットサイズに達するまでパレットスタッフィング(palette stuffing)によって更新できる。
【0396】
現在ブロックの分割構造がローカルデュアルツリー構造である場合(S2710の「YES」)、画像符号化装置は、現在ブロックにパレットモードを適用せず、パレットモード以外の通常の予測モード(例えば、イントラ予測モード、インター予測モードなど)を用いて現在ブロックを符号化することができる(S2760)。通常の予測モードに関する具体的な内容は、図1図14を参照して前述した通りである。
【0397】
一方、現在ブロックにパレットモードが適用されるか否かに関する情報は、パレットモードフラグ(例えば、pred_mode_plt_flag)を用いてシグナリングできる。
【0398】
図28は、パレットモードフラグを含むcoding_unitシンタックスの具体的な一例を示す図である。
【0399】
図28を参照すると、pred_mode_plt_flagは、現在ブロック(又は、現在CU)に対してパレットモードが適用されるか否かを示すことができる。例えば、第1値(例えば、0)を持つpred_mode_plt_flagは、現在ブロックに対してパレットモードが適用されないことを示すことができる。これとは異なり、第2値(例えば、1)を持つpred_mode_plt_flagは、現在ブロックに対してパレットモードが適用されることを示すことができる。
【0400】
一例において、pred_mode_plt_flagは、現在ブロックの予測モードタイプに基づいてシグナリングできる。例えば、現在ブロックの予測モードタイプがイントラ予測、IBC(intra block copy)、パレットモード及びインター予測が全て適用できる第1モードタイプ(例えば、MODE_TYPE_ALL)である場合、pred_mode_plt_flagがシグナリングできる。これとは異なり、現在ブロックの予測モードタイプが、イントラ予測のみが適用できる第2モードタイプ(例えば、MODE_TYPE_INTRA)又はインター予測のみが適用できる第3モードタイプ(例えば、MODE_TYPE_INTER)である場合、pred_mode_plt_flagはシグナリングされなくてもよい。
【0401】
図29は本開示の一実施例によるパレット復号化方法を示すフローチャートである。
【0402】
図29のパレット復号化方法は、図3の画像復号化装置によって行われることができる。具体的には、ステップS2910~ステップS2980は、イントラ予測部265によって行われてもよく、或いはイントラ予測部265とは異なる別個の機能ブロック(例えば、パレット復号化部)によって行われてもよい。一方、図29のS2930~S2970は、それぞれ図26のS2610~S2640及びS2660に対応することができる。よって、S2930~S2970についての説明は簡略にする。
【0403】
図29を参照すると、画像復号化装置は、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かを決定することができる(S2910)。
【0404】
一例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックの予測モードタイプに基づいて決定できる。例えば、図10a~図10cを参照して前述したように、現在ブロックの予測モードタイプが、イントラ予測のみが適用できるMODE_TYPE_INTRAである場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックの予測モードタイプがMODE_TYPE_INTRAではない場合(例えば、MODE_TYPE_ALL)、現在ブロックの分割構造はシングルツリー構造であり得る。
【0405】
他の例において、現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、現在ブロックのツリータイプ(treeType)及び現在CTUの分割構造のうちの少なくとも一つに基づいて決定できる。例えば、現在ブロックのツリータイプがシングルツリーSINGLE_TREEではなく、現在CTUがP又はBスライスに含まれるか或いはシングルツリー構造に分割される場合、現在ブロックの分割構造はローカルデュアルツリー構造であり得る。これとは異なり、現在ブロックのツリータイプがシングルツリーSINGLE_TREEである場合、現在ブロックの分割構造はシングルツリー構造であり得る。又は、現在ブロックがIスライスに含まれ、当該スライスに含まれるCTUが64×64のルマサンプルCUに暗黙的四分木分割(implicit quadtree split)され、前記64×64のルマサンプルCUはデュアルツリーのルートノード(root node)になる場合、現在ブロックの分割構造はデュアルツリー構造であり得る。現在ブロックの分割構造がローカルデュアルツリー構造であるか否かは、数式6を参照して前述したLocalDualTreeFlagを用いてシグナリングできる。この場合、LocalDualTreeFlagの第1値(例えば、0)は、現在ブロックの分割構造がローカルデュアルツリー構造ではないことを示すことができ、LocalDualTreeFlagの第2値(例えば、1)は、現在ブロックの分割構造がローカルデュアルツリー構造であることを示すことができる。
【0406】
現在ブロックの分割構造がローカルデュアルツリー構造ではない場合(S2910の「NO」)、画像復号化装置は、現在ブロックにパレットモードが適用されるか否かを決定することができる。一例において、画像復号化装置は、ビットストリームから取得されるパレットモードフラグ(例えば、pred_mode_plt_flag)に基づいて、現在ブロックにパレットモードが適用されるか否かを決定することができる。例えば、図28を参照して前述したpred_mode_plt_flagが第1値(例えば、0)を持つ場合、現在ブロックに対してパレットモードが適用されなくてもよい。これとは異なり、pred_mode_plt_flagが第2値(例えば、1)を持つ場合、現在ブロックに対してパレットモードが適用できる。一方、pred_mode_plt_flagがビットストリームから取得されない場合、pred_mode_plt_flagの値は第1値を持つものと推論できる。
【0407】
現在ブロックにパレットモードが適用される場合(S2920の「YES」)、画像復号化装置は、ビットストリームから現在ブロックに対するパレット情報及びパレットインデックス予測情報を取得することができる(S2930)。パレット情報は、パレット予測子及び/又は新しいパレットエントリに関する情報を含むことができる。パレットインデックス予測情報は、現在ブロックにマッピングされたパレットインデックス及びパレットインデックスのラン値情報を含むことができる。
【0408】
画像復号化装置は、ビットストリームから取得されたパレット情報に基づいて、現在ブロックに対するパレット予測子及びパレットテーブルを構成することができる(S2940)。一例において、パレット予測子は、現在ブロック以前のパレット復号化過程で更新されたパレット予測子と同じ構成を持つことができる。一方、パレット予測子に関する情報がビットストリームから取得されない場合、パレット予測子は、所定の初期値(例えば、0)を持つか、或いは以前パレット復号化過程で用いられたパレット予測子と同じ構成を持つことができる。
【0409】
画像復号化装置は、パレット予測子に基づいて現在ブロックに対するパレットテーブルを構成することができる。パレットテーブルは、パレット予測子に含まれたパレットエントリ、及びビットストリームから取得された新しいパレットエントリのうちの少なくとも一つと、それぞれのパレットエントリを識別するためのパレットインデックスとを含むことができる。
【0410】
一例において、パレット予測子及びパレットテーブルは、現在ブロックのカラーフォーマット(又は、クロマフォーマット)に応じて様々に構成できる。また、パレット予測子及びパレットテーブルは、現在ブロックの分割構造に応じて様々に構成できる。
【0411】
画像復号化装置は、パレットインデックス予測情報に基づいて現在ブロックに対するパレットインデックスマップを生成することができる(S2950)。具体的には、画像復号化装置は、ビットストリームから取得されたパレットインデックス、パレットサンプルモード及びパレットサンプルモードのラン値を用いて、所定のスキャン方式に従って現在ブロック内のそれぞれのサンプルにパレットインデックスをマッピングすることにより、パレットインデックスマップを生成することができる。
【0412】
パレット復号化のためのスキャン方式は、図15を参照して前述したように、水平トラバーススキャン(horizontal traverse scan)及び垂直トラバーススキャン(vertical traverse scan)を含むことができる。一例において、パレット復号化のためのスキャン方式は、ビットストリームに含まれたpalette_transpose_flagを復号化することにより決定できる。例えば、palette_transpose_flagが第1値(例えば、0)を持つ場合、パレット復号化のためのスキャン方式は、水平トラバーススキャンと決定されることができる。これとは異なり、palette_transpose_flagが第2値(例えば、1)を持つ場合、パレット復号化のためのスキャン方式は、垂直トラバーススキャンと決定されることができる。
【0413】
パレットサンプルモードは、前述したように、「INDEX」モード及び「COPY_ABOVE」モードを含むことができる。現在サンプルに「INDEX」モードが適用される場合、前記現在サンプルにマッピングされるパレットインデックスの値はビットストリームから直接取得できる。これに対し、現在サンプルに「COPY_ABOVE」モードが適用される場合、前記現在サンプルにマッピングされるパレットインデックスの値は、前記現在サンプルの上側(水平トラバーススキャンの場合)又は左側(垂直トラバーススキャンの場合)に存在する周辺サンプルにマッピングされたパレットインデックスの値と決定されることができる。
【0414】
一方、現在サンプルがエスケープサンプルである場合、前記現在サンプルの量子化されたピクセル値がビットストリームから直接取得されることができる。エスケープサンプルにはエスケープパレットインデックスがマッピングされることができる。
【0415】
画像復号化装置は、現在ブロックに対するパレットテーブル及びパレットインデックスマップに基づいて現在ブロックを復号化することができる(S2960)。具体的には、画像復号化装置は、パレットテーブルを参照して、パレットインデックスマップ内のそれぞれのパレットインデックスの値を代表カラー値に逆マッピング(inverse mapping)することにより、現在ブロックに対する予測ブロックを生成することができる。
【0416】
画像復号化装置は、現在ブロックに対するパレットテーブルを用いてパレット予測子を更新することができる(S2970)。例えば、画像復号化装置は、パレットテーブルに含まれた少なくとも一つのパレットエントリをパレット予測子に追加することにより、パレット予測子を更新することができる。また、画像復号化装置は、パレット予測子に含まれた少なくとも一つのパレットエントリを、パレットテーブルに含まれた少なくとも一つのパレットエントリに置き換えることにより、パレット予測子を更新することもできる。
【0417】
パレット予測子に対する更新過は、パレット予測子が最大パレットサイズに達するまで行い続けられることができる。例えば、パレット予測子は、最大パレットサイズに達するまでパレットスタッフィング(palette stuffing)によって更新できる。
【0418】
一例において、画像復号化装置は、画像符号化装置からシグナリングされたパレット予測子の更新情報に基づいてパレット予測子を更新することもできる。
【0419】
現在ブロックの分割構造がローカルデュアルツリー構造である場合(S2910の「YES」)、画像復号化装置は、現在ブロックにパレットモードを適用せず、パレットモード以外の通常の予測モード(例えば、イントラ予測モード、インター予測モードなど)を用いて現在ブロックを復号化することができる(S2980)。通常の予測モードに関する具体的な内容は、図1乃至図14を参照して前述した通りである。この場合、現在CTU内で現在ブロックの後にパレット復号化されるブロックに対しては、所定の値(例えば、0)に初期化されたパレット予測子が適用されるか、或いは現在ブロックに適用されたパレット予測子が再び適用されることができる。
【0420】
以上、上述した本開示の実施例#2によれば、現在ブロックの分割構造がローカルデュアルツリー構造である場合、現在ブロックは、パレットモード以外の通常の予測モードを用いて符号化/復号化できる。これにより、パレット予測子を更新する過程もスキップされるので、パレット予測子が有効な(valid)パレットエントリを含まなくなるか或いは無効な(invalid)パレットエントリを含むようになるという問題が解決できる。
【0421】
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われてもよい。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
【0422】
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
【0423】
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、2つ以上の組み合わせで適用されてもよい。
【0424】
また、本開示の様々な実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア、又はそれらの組み合わせなどによって実現できる。ハードウェアによる実現の場合、1つ又はそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、汎用プロセッサ(general processor)、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって実現できる。
【0425】
また、本開示の実施例が適用された画像復号化装置及び画像符号化装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0426】
図30は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
【0427】
図30に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
【0428】
前記符号化サーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに伝送する役割を果たす。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記符号化サーバは省略できる。
【0429】
前記ビットストリームは、本開示の実施例が適用された画像符号化方法及び/又は画像符号化装置によって生成でき、前記ストリーミングサーバは、前記ビットストリームを伝送又は受信する過程で一時的に前記ビットストリームを保存することができる。
【0430】
前記ストリーミングサーバは、Webサーバを介したユーザの要求に基づいてマルチメディアデータをユーザ装置に伝送し、前記Webサーバは、ユーザにどんなサービスがあるかを知らせる媒介体の役割を果たすことができる。ユーザが前記Webサーバに所望のサービスを要求すると、前記Webサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを伝送することができる。この時、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たすことができる。
【0431】
前記ストリーミングサーバは、メディアストレージ及び/又は符号化サーバからコンテンツを受信することができる。例えば、前記符号化サーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間保存することができる。
【0432】
前記ユーザ装置の例としては、携帯電話、スマートフォン(smart phone)、ノートパソコン(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(smartwatch)、スマートグラス(smart glass)、HMD(head mounted display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどがあり得る。
【0433】
前記コンテンツストリーミングシステム内の各サーバは分散サーバとして運営されることができ、この場合、各サーバから受信するデータは分散処理されることができる。
【0434】
本開示の範囲は、様々な実施例の方法による動作が装置又はコンピュータ上で実行されるようにするソフトウェア又はマシン-実行可能なコマンド(例えば、オペレーティングシステム、アプリケーション、ファームウェア(firmware)、プログラムなど)、及びこのようなソフトウェア又はコマンドなどが保存されて装置又はコンピュータ上で実行できる非一時的なコンピュータ可読媒体(non-transitory computer-readable medium)を含む。
【産業上の利用可能性】
【0435】
本開示による実施例は、画像を符号化/復号化するのに利用可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10a
図10b
図10c
図11
図12
図13
図14
図15
図16
図17
図18a
図18b
図18c
図18d
図18e
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30