(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】色空間変換を用いる画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
(51)【国際特許分類】
H04N 19/126 20140101AFI20240213BHJP
H04N 19/176 20140101ALI20240213BHJP
H04N 19/186 20140101ALI20240213BHJP
H04N 19/70 20140101ALI20240213BHJP
【FI】
H04N19/126
H04N19/176
H04N19/186
H04N19/70
(21)【出願番号】P 2022525280
(86)(22)【出願日】2020-10-28
(86)【国際出願番号】 KR2020014844
(87)【国際公開番号】W WO2021086020
(87)【国際公開日】2021-05-06
【審査請求日】2022-06-23
(32)【優先日】2019-10-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100109841
【氏名又は名称】堅田 健史
(74)【代理人】
【識別番号】230112025
【氏名又は名称】小林 英了
(72)【発明者】
【氏名】ザオ,ジェ
(72)【発明者】
【氏名】キム,スンファン
(72)【発明者】
【氏名】ヘンドリー,ヘンドリー
(72)【発明者】
【氏名】パルリ,シーサル
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2016/0100168(US,A1)
【文献】Xiaoyu Xiu, et al.,Support of adaptive color transform for 444 video coding in VVC,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0517_r1,16th Meeting: Geneva, CH,2019年10月,pp.1-4
【文献】Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,Versatile Video Coding (Draft 7),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P2001 (version 10),16th Meeting: Geneva, CH,2019年10月25日,pp.297-299
【文献】Rickard Sjoberg, Martin Pettersson, Mitra Damghanian, and Davood Saffar,AHG15: QP offsets for adaptive colour transform,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q0425-v2,17th Meeting: Brussels, BE,2020年01月,pp.1-4
【文献】Jie Zhao, et al.,On ACT QP clipping,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET- Q0511,17th Meeting: Brussels, BE,2020年01月,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像復号化装置によって行われる画像復号化方法であって、
現在ブロックのレジデュアル(residual)サンプルの為の色空間変換(color space transform)に基づいて、前記現在ブロックの量子化パラメータを誘導するステップと、
前記量子化パラメータに基づいて、前記現在ブロックの変換係数を誘導するステップと、
前記変換係数に基づいて、前記現在ブロックのレジデュアルサンプルを誘導するステップと、
前記色空間変換が適用されることに基づいて、前記レジデュアルサンプルの値を修正するステップと、を含んでなり、
前記現在ブロックの変換スキップフラグ(transformation skip flag)の値に基づいて、前記量子化パラメータがクリッピング動作により誘導され、
前記クリッピング動作は、所定の下限値から所定の上限値への範囲となるように前記量子化パラメータの値を調整することを含み、
量子化パラメータ範囲オフセット及び所定の定数値に基づいて、前記所定の上限値が誘導される、画像復号化方法。
【請求項2】
前記所定の定数値は63である、請求項1に記載の画像復号化方法。
【請求項3】
前記現在ブロックの色成分に基づいて誘導される初期量子化パラメータに基づいて、前記量子化パラメータが誘導される、請求項1に記載の画像復号化方法。
【請求項4】
前記現在ブロックの色成分に基づいて誘導される量子化パラメータオフセットに基づいて前記量子化パラメータが誘導さ
れ、
前記量子化パラメータオフセットは、前記量子化パラメータを修正するオフセットである、請求項1に記載の画像復号化方法。
【請求項5】
前記現在ブロックの前記色成分がルマ成分であること、及び、前記色空間変換が適用されること、に基づいて、前記量子化パラメータオフセットのサイズが5として誘導される、請求項4に記載の画像復号化方法。
【請求項6】
前記現在ブロックの前記色成分がクロマCr成分であること、及び、前記色空間変換が適用されること、に基づいて、前記量子化パラメータオフセットのサイズが3として誘導される、請求項4に記載の画像復号化方法。
【請求項7】
前記量子化パラメータオフセットの第1値のサイズ及び前記量子化パラメータオフセットの第2値のサイズが2であり、
前記色空間変換が適用されることに基づいて、
前記現在ブロックの前記色成分の前記量子化パラメータオフセットがクロマCr成分であることに基づいて、前記第1値が誘導され、
前記現在ブロックの前記色成分の前記量子化パラメータオフセットがクロマCb成分であることに基づいて、前記第2値が誘導される、請求項4に記載の画像復号化方法。
【請求項8】
前記現在ブロックの前記変換スキップフラグに基づいて、前記所定の下限値が誘導される、請求項1に記載の画像復号化方法。
【請求項9】
前記変換スキップフラグが前記現在ブロック
の変換
係数を適用しないことを指示することに基づいて、前記所定の下限値が変換スキップモードの為の許容される最小量子化パラメータとして誘導される、請求項1に記載の画像復号化方法。
【請求項10】
前記現在ブロック
の変換
係数を適用することが、他のシンタックス要素により決定されることを指示する前記変換スキップフラグに基づいて、前記所定の下限値が0として誘導される、請求項1に記載の画像復号化方法。
【請求項11】
前記現在ブロックのビットデプスの為のシンタックス要素に基づいて、前記量子化パラメータ範囲オフセットの値が誘導される、請求項1に記載の画像復号化方法。
【請求項12】
画像符号化装置によって行われる画像符号化方法であって、
色空間変換(color space transform)が適用されることに基づいて、現在ブロックのレジデュアル(residual)サンプルの値を誘導するステップと、
前記現在ブロックの前記レジデュアルサンプルに基づいて、前記現在ブロックの変換係数を誘導するステップと、
前記色空間変換が適用されることに基づいて、前記現在ブロックの量子化パラメータを決定するステップと、
前記量子化パラメータに基づいて、前記変換係数を符号化するステップと、を含んでなり、
前記現在ブロックの変換スキップフラグ(transformation skip flag)の値に基づいて、前記量子化パラメータがクリッピング動作により誘導され、
前記クリッピング動作は、所定の下限値から所定の上限値への範囲とするように、前記量子化パラメータの値を調整することを含み、
量子化パラメータ範囲オフセット及び所定の定数値に基づいて、前記所定の上限値が誘導される、画像
符号化方法。
【請求項13】
前記所定の定数値は63である、請求項12に記載の画像
符号化方法。
【請求項14】
ビットストリームを伝送する方法であって、
前記ビットストリームは、請求項12に記載の画像符号化方法によって生成されたものである、伝送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像符号化/復号化方法及び装置に係り、より詳細には、色空間変換を用いる画像符号化/復号化方法、装置、及び本開示の画像符号化方法/装置によって生成されたビットストリームを伝送する方法に関する。
【背景技術】
【0002】
最近、高解像度、高品質の画像、例えばHD(High Definition)画像及びUHD(Ultra High Definition)画像への需要が多様な分野で増加している。画像データが高解像度、高品質になるほど、従来の画像データに比べて、伝送される情報量又はビット量が相対的に増加する。伝送される情報量又はビット量の増加は、伝送費用と保存費用の増加をもたらす。
【0003】
これにより、高解像度、高品質画像の情報を効果的に伝送又は保存し、再生するための高効率の画像圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、符号化/復号化効率が向上した画像符号化/復号化方法及び装置を提供することを目的とする。
【0005】
また、本開示は、選択的色空間変換を行うことにより、符号化/復号化効率の向上を図る画像符号化/復号化方法及び装置を提供することを目的とする。
【0006】
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームを伝送する方法を提供することを目的とする。
【0007】
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体を提供することを目的とする。
【0008】
また、本開示は、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体を提供することを目的とする。
【0009】
本開示で解決しようとする技術的課題は上述した技術的課題に制限されず、上述していない別の技術的課題は以降の記載から本開示の属する技術分野における通常の知識を有する者に明確に理解できるであろう。
【課題を解決するための手段】
【0010】
本開示の一態様による画像復号化装置によって行われる画像復号化方法は、現在ブロックのレジデュアルサンプルに色空間(color space)の変換が適用されるか否かに基づいて前記現在ブロックの量子化パラメータを決定するステップと、前記量子化パラメータに基づいて前記現在ブロックの変換係数を決定するステップと、前記変換係数を用いて前記現在ブロックのレジデュアルサンプルを決定するステップと、前記色空間の変換が適用されるか否かに基づいて前記レジデュアルサンプルの値を再設定するステップと、を含むことができる。ここで、前記量子化パラメータを決定するステップは、前記量子化パラメータの値が所定の上限値以下の値を有し、所定の下限値以上の値を有するように前記量子化パラメータにクリッピングを行うことにより行われ得る。
【0011】
また、本開示の一態様による画像復号化装置は、メモリ及び少なくとも一つのプロセッサを含む画像復号化装置であって、前記少なくとも一つのプロセッサは、現在ブロックのレジデュアルサンプルに色空間(color space)の変換が適用されるか否かに基づいて前記現在ブロックの量子化パラメータを決定し、前記量子化パラメータに基づいて前記現在ブロックの変換係数を決定し、前記変換係数を用いて前記現在ブロックのレジデュアルサンプルを決定し、前記色空間の変換が適用されるか否かに基づいて前記レジデュアルサンプルの値を再設定することができる。ここで、前記プロセッサは、前記量子化パラメータの値が所定の上限値以下の値を有し、所定の下限値以上の値を有するように前記量子化パラメータにクリッピングを行うことができる。
【0012】
また、本開示の一態様による画像符号化装置によって行われる画像符号化方法は、色空間の変換が適用されたか否かに基づいてレジデュアルサンプルを再設定するステップと、前記再設定されたレジデュアルサンプルを用いて変換係数を決定するステップと、前記色空間の変換が適用されるか否かに基づいて量子化パラメータを決定するステップと、前記量子化パラメータに基づいて前記変換係数を符号化するステップと、を含むことができる。ここで、前記量子化パラメータを決定するステップは、前記量子化パラメータの値が所定の上限値以下の値を有し、所定の下限値以上の値を有するように前記量子化パラメータにクリッピングを行うことにより行われ得る。
【0013】
また、本開示の一態様による伝送方法は、本開示の画像符号化装置又は画像符号化方法によって生成されたビットストリームを伝送することができる。
【0014】
また、本開示の一態様によるコンピュータ可読記録媒体は、本開示の画像符号化方法又は画像符号化装置によって生成されたビットストリームを保存することができる。
【0015】
本開示について簡略に要約して上述した特徴は、後述する本開示の詳細な説明の例示的な態様に過ぎず、本開示の範囲を制限するものではない。
【発明の効果】
【0016】
本開示によれば、符号化/復号化効率が向上した画像符号化/復号化方法及び装置が提供されることができる。
【0017】
また、本開示によれば、選択的色空間変換を行うことにより、符号化/復号化効率の向上を図ることができる画像符号化/復号化方法及び装置が提供されることができる。
【0018】
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームを伝送する方法が提供されることができる。
【0019】
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体が提供されることができる。
【0020】
また、本開示によれば、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体が提供されることができる。
【0021】
本開示で得られる効果は、上述した効果に限定されず、上述していない別の効果は、以降の記載から、本開示の属する技術分野における通常の知識を有する者に明確に理解できるだろう。
【図面の簡単な説明】
【0022】
【
図1】本開示による実施例が適用できるビデオコーディングシステムを概略的に示す図である。
【
図2】本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
【
図3】本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
【
図4】一実施例による画像の分割構造を示す図である。
【
図5】マルチタイプツリー構造によるブロックの分割タイプの一実施例を示す図である。
【
図6】本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造におけるブロック分割情報のシグナリングメカニズムを例示する図である。
【
図7】CTUが多重CUに分割される一実施例を示す図である。
【
図8】一つのシンタックス要素を符号化するための一実施例によるCABACを示すブロック図である。
【
図9-12】一実施例によるエントロピー符号化と復号化を説明する図である。
【
図13-14】一実施例によるピクチャ復号化及び符号化手順の一例を示す図である。
【
図15】一実施例によるコーディングされた画像に対する階層構造を示す図である。
【
図16】一実施例による周辺参照サンプルを示す図である。
【
図17-18】一実施例によるイントラ予測を説明する図である。
【
図19】ACTを適用した復号化過程の一実施例を示す図である。
【
図20】ACTに関連するシンタックス要素がシグナリングされるシーケンスパラメータセットシンタックステーブルの一実施例を示す図である。
【
図21-27】ACTに関連するシンタックス要素がシグナリングされる符号化単位のシンタックステーブルの一実施例を連続的に示す図である。
【
図28】一実施例による符号化ツリーシンタックス(coding tree syntax)を示す図である。
【
図29】一実施例によってBDPCMのレジデュアルサンプルを符号化する方法を説明するための図である。
【
図30】一実施例によってBDPCMを行って生成された、修正された量子化レジデュアルブロックを示す。
【
図31】一実施例による画像符号化装置においてBDPCMを適用して現在ブロックを符号化する手順を示すフローチャートである。
【
図32】一実施例による画像復号化装置においてBDPCMを適用して現在ブロックを復元する手順を示すフローチャートである。
【
図33-35】BDPCMに関する情報をシグナリングするためのシンタックスを概略的に示す図である。
【
図36-51】本開示による個別実施例によってACTシンタックス要素をシグナリングするためのシンタックステーブルを示す図である。
【
図52】一実施例による画像復号化方法を説明する図である。
【
図53】一実施例による画像符号化方法を説明する図である。
【
図54】本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
【発明を実施するための形態】
【0023】
以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
【0024】
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
【0025】
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
【0026】
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素は、他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を、他の実施例で第1構成要素と呼んでもよい。
【0027】
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
【0028】
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
【0029】
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
【0030】
本開示において、「ビデオ(video)」は、時間の流れによる一連の画像(image)の集合を意味することができる。「ピクチャ(picture」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、符号化においてピクチャの一部を構成する符号化単位である。一つのピクチャは、一つ以上のスライス/タイルで構成できる。また、スライス/タイルは一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは一つ以上のスライス/タイルで構成できる。一つのピクチャは一つ以上のタイルグループで構成できる。一つのタイルグループは一つ以上のタイルを含むことができる。ブリックは、ピクチャ内のタイル内のCTU行の四角領域を示すことができる。一つのタイルは一つ以上のブリック(Brick)を含むことができる。ブリックはタイル内のCTU行の四角領域を示すことができる。一つのタイルは、複数のブリックに分割されることができ、それぞれのブリックは、タイルに属する一つ以上のCTU行を含むことができる。複数のブリックに分割されないタイルもブリックとして取り扱われることができる。
【0031】
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0032】
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。一つのユニットは、一つのルマブロック及び二つのクロマ(例えば、Cb、Cr)ブロックを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(block)」又は「領域(area)」などの用語と混用して使用できる。一般な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
【0033】
本開示において、「現在ブロック」は、「現在コーディングブロック」、「現在コーディングユニット」、「符号化対象ブロック」、「復号化対象ブロック」又は「処理対象ブロック」のうちのいずれか一つを意味することができる。予測が行われる場合、「現在ブロック」は、「現在予測ブロック」又は「予測対象ブロック」を意味することができる。変換(逆変換)/量子化(逆量子化)が行われる場合、「現在ブロック」は「現在変換ブロック」又は「変換対象ブロック」を意味することができる。フィルタリングが行われる場合、「現在ブロック」は「フィルタリング対象ブロック」を意味することができる。
【0034】
また、本開示において、「現在ブロック」は、クロマブロックという明示的な記載がない限り、「現在ブロックのルマブロック」を意味することができる。「現在ブロックのクロマブロック」は、明示的に「クロマブロック」又は「現在クロマブロック」のようにクロマブロックという明示的な記載を含んで表現できる。
【0035】
本開示において、「/」と「、」は「及び/又は」と解釈されることができる。例えば、「A/B」と「A、B」は「A及び/又はB」と解釈されることができる。また、「A/B/C」と「A、B、C」は、「A、B及び/又はCのうちの少なくとも一つ」を意味することができる。
【0036】
本開示において、「又は」は、「及び/又は」と解釈されることができる。例えば、「A又はB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「A及びB」を意味することができる。又は、本開示において、「又は」は、「追加的に又は代替的に(additionally or alternatively)」を意味することができる。
【0037】
ビデオコーディングシステムの概要
【0038】
図1は本開示によるビデオコーディングシステムを示す図である。
【0039】
一実施例によるビデオコーディングシステムは、ソースデバイス10及び受信デバイス20を含むことができる。ソースデバイス10は、符号化されたビデオ(video)及び/又は画像(image)情報又はデータをファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して受信デバイス20へ伝達することができる。
【0040】
一実施例によるソースデバイス10は、ビデオソース生成部11、符号化装置12及び伝送部13を含むことができる。一実施例による受信デバイス20は、受信部21、復号化装置22及びレンダリング部23を含むことができる。前記符号化装置12は、ビデオ/画像符号化装置と呼ばれることができ、前記復号化装置22は、ビデオ/画像復号化装置と呼ばれることができる。伝送部13は、符号化装置12に含まれることができる。受信部21は、復号化装置22に含まれることができる。レンダリング部23は、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイス又は外部コンポーネントとして構成されることもできる。
【0041】
ビデオソース生成部11は、ビデオ/画像のキャプチャ、合成又は生成過程などを介してビデオ/画像を取得することができる。ビデオソース生成部11は、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して、仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程は、関連データが生成される過程に置き換えられることができる。
【0042】
符号化装置12は、入力ビデオ/画像を符号化することができる。符号化装置12は、圧縮及び符号化効率のために、予測、変換、量子化などの一連の手順を行うことができる。符号化装置12は、符号化されたデータ(符号化されたビデオ/画像情報)をビットストリーム(bitstream)形式で出力することができる。
【0043】
伝送部13は、ビットストリーム形式で出力された、符号化されたビデオ/画像情報又はデータを、ファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して受信デバイス20の受信部21に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray(登録商標:以下同じ)、HDD、SSDなどのさまざまな記憶媒体を含むことができる。伝送部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部21は、前記記憶媒体又はネットワークから前記ビットストリームを抽出/受信して復号化装置22に伝達することができる。
【0044】
復号化装置22は、符号化装置12の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像を復号化することができる。
【0045】
レンダリング部23は、復号化されたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示されることができる。
【0046】
画像符号化装置の概要
【0047】
図2は本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
【0048】
図2に示されているように、画像符号化装置100は、画像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピー符号化部190を含むことができる。インター予測部180及びイントラ予測部185は、合わせて「予測部」と呼ばれることができる。変換部120、量子化部130、逆量子化部140及び逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は減算部115をさらに含むこともできる。
【0049】
画像符号化装置100を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって実現できる。
【0050】
画像分割部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)を誘導する単位であることができる。
【0051】
予測部(インター予測部180又はイントラ予測部185)は、処理対象ブロック(現在ブロック)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか、或いはインター予測が適用されるかを決定することができる。予測部は、現在ブロックの予測に関するさまざまな情報を生成してエントロピー符号化部190に伝達することができる。予測に関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
【0052】
イントラ予測部185は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。参照される前記サンプルは、イントラ予測モード及び/又はイントラ予測技法に従って、前記現在ブロックの周辺(neighbor)に位置することもでき、或いは離れて位置することもできる。イントラ予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びPlanarモードを含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定に基づいてそれ以上又はそれ以下の個数の方向性予測モードが使用できる。イントラ予測部185は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0053】
インター予測部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)を符号化することにより、現在ブロックの動きベクトルをシグナリングすることができる。動きベクトル差分は、現在ブロックの動きベクトルと動きベクトル予測子との差を意味することができる。
【0054】
予測部は、後述する様々な予測方法及び/又は予測技法に基づいて予測信号を生成することができる。例えば、予測部は、現在ブロックの予測のために、イントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。現在ブロックの予測のためにイントラ予測とインター予測を同時に適用する予測方法は、CIIP(combined inter and intra prediction)と呼ばれることができる。また、予測部は、現在ブロックの予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。IBCは、現在ブロックから所定の距離だけ離れた位置の現在ピクチャ内の既に復元された参照ブロックを用いて現在ブロックを予測する方法である。IBCが適用される場合、現在ピクチャ内の参照ブロックの位置は前記所定の距離に該当するベクトル(ブロックベクトル)として符号化されることができる。IBCは、基本的に、現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点において、インター予測と同様に行われることができる。すなわち、IBCは、本開示で説明されるインター予測技法のうちの少なくとも一つを用いることができる。
【0055】
予測部によって生成された予測信号は、復元信号を生成するために用いられるか、或いはレジデュアル信号を生成するために用いられることができる。減算部115は、入力画像信号(原本ブロック、原本サンプルアレイ)から、予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、レジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部120に伝送されることができる。
【0056】
変換部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)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形ではない、可変サイズのブロックにも適用されることもできる。
【0057】
量子化部130は、変換係数を量子化してエントロピー符号化部190に伝送することができる。エントロピー符号化部190は、量子化された信号(量子化された変換係数に関する情報)を符号化してビットストリーム形式で出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順序(scan order)に基づいて、ブロック形式の量子化された変換係数を1次元ベクトル形式で再整列することができ、前記1次元ベクトル形式の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
【0058】
エントロピー符号化部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)をさらに含むことができる。本開示で言及されたシグナリング情報、伝送される情報及び/又はシンタックス要素は、上述した符号化手順を介して符号化されて前記ビットストリームに含まれることができる。
【0059】
前記ビットストリームは、ネットワークを介して伝送されることができ、又はデジタル記憶媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。エントロピー符号化部190から出力された信号を伝送する伝送部(図示せず)及び/又は保存する保存部(図示せず)が画像符号化装置100の内/外部要素として備えられることができ、又は伝送部はエントロピー符号化部190の構成要素として備えられることもできる。
【0060】
量子化部130から出力された、量子化された変換係数は、レジデュアル信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。
【0061】
加算部155は、復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0062】
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的にはメモリ170のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するようにフィルタリングに関する様々な情報を生成してエントロピー符号化部190に伝達することができる。フィルタリングに関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
【0063】
メモリ170に伝送された、修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。画像符号化装置100は、これを介してインター予測が適用される場合、画像符号化装置100と画像復号化装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
【0064】
メモリ170内のDPBは、インター予測部180での参照ピクチャとして使用するために、修正された復元ピクチャを保存することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内ブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部180に伝達されることができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部185に伝達することができる。
【0065】
画像復号化装置の概要
【0066】
図3は本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
【0067】
図3に示されているように、画像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成できる。インター予測部260及びイントラ予測部265を合わせて「予測部」と呼ばれることができる。逆量子化部220、逆変換部230はレジデュアル処理部に含まれることができる。
【0068】
画像復号化装置200を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPBを含むことができ、デジタル記憶媒体によって実現できる。
【0069】
ビデオ/画像情報を含むビットストリームを受信した画像復号化装置200は、
図1の画像符号化装置100で行われたプロセスに対応するプロセスを実行して画像を復元することができる。例えば、画像復号化装置200は、画像符号化装置で適用された処理ユニットを用いて復号化を行うことができる。したがって、復号化の処理ユニットは、例えばコーディングユニットであることができる。コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットを分割して取得できる。そして、画像復号化装置200を介して復号化及び出力された復元画像信号は、再生装置(図示せず)を介して再生できる。
【0070】
画像復号化装置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の構成要素として備えられることもできる。
【0071】
一方、本開示による画像復号化装置は、ビデオ/画像/ピクチャ復号化装置と呼ばれることができる。前記画像復号化装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及び/又はサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)を含むこともできる。前記情報デコーダは、エントロピー復号化部210を含むことができ、前記サンプルデコーダは、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265のうちの少なくとも一つを含むことができる。
【0072】
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロック形式で再整列することができる。この場合、前記再整列は、画像符号化装置で行われた係数スキャン順序に基づいて行われることができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0073】
逆変換部230では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得することができる。
【0074】
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピー復号化部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか或いはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モード(予測技法)を決定することができる。
【0075】
予測部が後述の様々な予測方法(技法)に基づいて予測信号を生成することができるのは、画像符号化装置100の予測部についての説明で述べたのと同様である。
【0076】
イントラ予測部265は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。イントラ予測部185についての説明は、イントラ予測部265に対しても同様に適用されることができる。
【0077】
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。様々な予測モード(技法)に基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモード(技法)を指示する情報を含むことができる。
【0078】
加算部235は、取得されたレジデュアル信号を予測部(インター予測部260及び/又はイントラ予測部265を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155についての説明は、加算部235に対しても同様に適用されることができる。加算部235は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0079】
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的にはメモリ250のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などを含むことができる。
【0080】
メモリ250のDPBに保存された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして使用されることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(又は復号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部265に伝達することができる。
【0081】
本明細書において、画像符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施例は、それぞれ画像復号化装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも、同様に又は対応するように適用されることができる。
【0082】
画像分割の概要
【0083】
本開示によるビデオ/画像コーディング方法は、次の画像分割構造に基づいて行われることができる。具体的には、後述する予測、レジデュアル処理((逆)変換、(逆)量子化など)、シンタックス要素コーティング、フィルタリングなどの手順は、前記画像分割構造に基づいて導出されたCTU、CU(及び/又はTU、PU)に基づいて行われることができる。画像はブロック単位で分割されることができ、ブロック分割手順は上述した符号化装置の画像分割部110で行われることができる。分割関連情報は、エントロピー符号化部190で符号化されてビットストリーム形式で復号化装置に伝達できる。復号化装置のエントロピー復号化部210は、前記ビットストリームから取得した前記分割関連情報に基づいて、現在ピクチャのブロック分割構造を導出し、これに基づいて画像復号化のための一連の手順(例えば、予測、レジデュアル処理、ブロック/ピクチャ復元、インループフィルタリングなど)を行うことができる。
【0084】
ピクチャは、コーティングツリーユニット(coding tree units、CTUs)のシーケンスに分割されることができる。
図4はピクチャがCTUに分割される例を示す。CTUはコーティングツリーブロック(CTB)に対応することができる。或いは、CTUはルマサンプルのコーティングツリーブロックと、対応するクロマサンプルの二つのコーティングツリーブロックを含むことができる。例えば、三つのサンプルアレイを含むピクチャに対して、CTUは、ルマサンプルのN×Nブロックとクロマサンプルの二つの対応ブロックを含むことができる。
【0085】
CTU分割の概要
【0086】
前述したように、コーディングユニットは、コーディングツリーユニット(CTU)又は最大コーディングユニット(LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に分割することにより取得できる。例えば、CTUは、まず、四分木構造に分割されることができる。その後、四分木構造のリーフノードは、マルチタイプツリー構造によってさらに分割されることができる。
【0087】
四分木による分割は、現在CU(又はCTU)を4等分する分割を意味する。四分木による分割によって、現在CUは、同じ幅と同じ高さを有する4つのCUに分割されることができる。現在CUがそれ以上四分木構造に分割されない場合、現在CUは、四分木構造のリーフノードに該当する。四分木構造のリーフノードに該当するCUは、それ以上分割されず、前述した最終コーディングユニットとして使用できる。又は、四分木構造のリーフノードに該当するCUは、マルチタイプツリー構造によってさらに分割されることができる。
【0088】
図5はマルチタイプツリー構造によるブロックの分割タイプを示す図である。マルチタイプツリー構造による分割は、二分木構造による2つの分割と三分木構造による2つの分割を含むことができる。
【0089】
二分木構造による2つの分割は、垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)と水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)を含むことができる。垂直バイナリ分割(SPLIT_BT_VER)は、現在CUを垂直方向に二等分する分割を意味する。
図4に示されているように、垂直バイナリ分割によって、現在CUの高さと同じ高さ及び現在CUの幅の半分の幅を有する2つのCUが生成されることができる。水平バイナリ分割(SPLIT_BT_HOR)は、現在CUを水平方向に二等分する分割を意味する。
図5に示されているように、水平バイナリ分割によって、現在CUの高さの半分の高さをもって現在CUの幅と同じ幅を有する2つのCUが生成されることができる。
【0090】
三分木構造による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の幅と同じ幅を有する一つのCUが生成されることができる。
【0091】
図6は本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造でのブロック分割情報のシグナリングメカニズムを例示する図である。
【0092】
ここで、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は、前述した最終コーディングユニットとして使用できる。
【0093】
前述したmtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagに基づいて、CUのマルチタイプツリー分割モード(multi-type tree splitting mode、MttSplitMode)が表1のとおりに導出されることができる。以下の説明において、マルチツリー分割モードは、マルチツリー分割タイプ又は分割タイプと略称することができる。
【0094】
【0095】
図7は四分木の適用後にマルチタイプツリーが適用されることによりCTUが多重CUに分割される例を示す。
図7において、太いブロックエッジ(bold block edge)710は四分木分割を示し、残りのエッジ720はマルチタイプツリー分割を示す。CUはコーディングブロックCBに対応することができる。一実施例において、CUは、ルマサンプルのコーディングブロックと、ルマサンプルに対応するクロマサンプルの二つのコーディングブロックと、を含むことができる。クロマ成分(サンプル)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の高さの半分に設定されることができる。
【0096】
一実施例において、ルマサンプル単位を基準にCTUのサイズが128であるとき、CUのサイズは、CTUと同じサイズである128×128から4×4までのサイズを有することができる。一実施例において、4:2:0カラーフォーマット(又はクロマフォーマット)である場合、クロマCBサイズは64×64から2×2までのサイズを持つことができる。
【0097】
一方、一実施例において、CUサイズとTUサイズとが同じであることができる。又は、CU領域内に複数のTUが存在することもできる。TUサイズとは、一般的に、ルマ成分(サンプル)TB(Transform Block)サイズを示すことができる。
【0098】
前記TUサイズは、予め設定された値である最大許容TBサイズ(maxTbSize)に基づいて導出されることができる。例えば、前記CUサイズが前記maxTbSizeよりも大きい場合、前記CUから、前記maxTbSizeを持つ複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。例えば、最大許容ルマTBサイズは64×64であり、最大許容クロマTBサイズは32×32であることができる。もし前記ツリー構造によって分割されたCBの幅又は高さが最大変換幅又は高さよりも大きい場合、当該CBは、自動的に(又は暗黙的に)水平及び垂直方向のTBサイズの制限を満足するまで分割されることができる。
【0099】
また、例えばイントラ予測が適用される場合、イントラ予測モード/タイプは、前記CU(又はCB)単位で導出され、周辺参照サンプル導出及び予測サンプル生成手順は、TU(又はTB)単位で行われることができる。この場合、一つのCU(又はCB)領域内に一つ又は複数のTU(又はTB)が存在することができ、この場合、前記複数のTU(又はTB)は同じイントラ予測モード/タイプを共有することができる。
【0100】
一方、マルチタイプツリーを伴った四分木コーディングツリースキームのために、次のパラメータがSPSシンタックス要素として符号化装置から復号化装置にシグナリングされることができる。例えば、四分木のルートノードのサイズを示すパラメータであるCTUsize、四分木のリーフノードの最小許容サイズを示すパラメータであるMinQTSize、二分木のルートノードの最大許容サイズを示すパラメータであるMaxBTSize、三分木のルートノードの最大許容サイズを示すパラメータであるMaxTTSize、四分木のリーフノードから分割されるマルチタイプツリーの最大許容階層深さ(maximum allowed hierarchy depth)を示すパラメータであるMaxMttDepth、二分木の最小許容リーフノードサイズを示すパラメータであるMinBtSize、及び三分木の最小許容リーフノードサイズを示すパラメータであるMinTtSizeのうちの少なくとも一つがシグナリングされることができる。
【0101】
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と同じかそれより小さい場合、それ以上の追加的な垂直分割は考慮されないことができる。このように分割が考慮されない場合、符号化装置は、分割情報のシグナリングを省略することができる。このような場合、復号化装置は、所定の値に分割情報を誘導することができる。
【0102】
一方、一つの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は、三つの色成分(ルマ成分及び二つのクロマ成分)のブロックで構成され得ることを意味することができる。
【0103】
上記において、マルチタイプツリーを伴った四分木コーディングツリー構造について説明したが、CUが分割される構造はこれに限定されない。例えば、BT構造及びTT構造は、多数の分割ツリー(Multiple Partitioning Tree、MPT)構造に含まれる概念と解釈されることができ、CUはQT構造及びMPT構造によって分割されると解釈することができる。QT構造及びMPT構造によってCUが分割される一例において、QT構造のリーフノードが幾つかのブロックに分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_type)及びQT構造のリーフノードが垂直及び水平のうちのどの方向に分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_mode)が、シグナリングされることにより、分割構造が決定されることができる。
【0104】
別の例において、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が分割される方法は、これに限定されない。
【0105】
このように、前記マルチタイプツリーを伴った四分木コーディングブロック構造は、非常に柔軟なブロック分割構造を提供することができる。一方、マルチタイプツリーに支援される分割タイプのために、場合によって、異なる分割パターンが潜在的に同一のコーディングブロック構造の結果を導出することができる。符号化装置と復号化装置は、このような冗長(redundant)分割パターンの発生を制限することにより、分割情報のデータ量を減らすことができる。
【0106】
また、本明細書によるビデオ/画像の符号化及び復号化において、画像処理単位は階層的構造を持つことができる。一つのピクチャは、一つ以上のタイル、ブリック、スライス、及び/又はタイルグループに区分できる。一つのスライスは一つ以上のブリックを含むことができる。一つのブリックは、タイル内の一つ以上のCTU行(row)を含むことができる。スライスはピクチャの整数個のブリックを含むことができる。一つのタイルグループは一つ以上のタイルを含むことができる。一つのタイルは一つ以上のCTUを含むことができる。前記CTUは一つ以上のCUに分割されることができる。タイルは、ピクチャ内で複数のCTUからなる特定のタイル行及び特定のタイル列で構成される四角領域であり得る。タイルグループは、ピクチャ内のタイルラスタースキャンによる整数個のタイルを含むことができる。スライスヘッダーは、該当スライス(スライス内のブロック)に適用できる情報/パラメータを運ぶことができる。符号化装置又は復号化装置がマルチコアプロセッサを有する場合、前記タイル、スライス、ブリック及び/又はタイルグループに対する符号化/復号化手順は並列処理できる。
【0107】
本開示において、スライス又はタイルグループの呼称又は概念は混用できる。すなわち、タイルグループヘッダーは、スライスヘッダーと呼ばれることができる。ここで、スライスは、intra(I)slice、predictive(P)slice、及びbi-predictive(B)sliceを含むスライスタイプのうちの一つのタイプを有することができる。Iスライス内のブロックに対しては、予測のためにインター予測は使用されず、イントラ予測のみ使用されることができる。もちろん、この場合にも、予測なしに原本サンプル値をコーディングしてシグナリングすることもできる。Pスライス内のブロックに対しては、イントラ予測又はインター予測が使用でき、インター予測が使用される場合には、単(uni)予測のみ使用できる。一方、Bスライス内のブロックに対しては、イントラ予測又はインター予測が使用でき、インター予測が使用される場合には、最大双(bi)予測まで使用できる。
【0108】
符号化装置は、ビデオ画像の特性(例えば、解像度)に応じて、或いはコーディングの効率又は並列処理を考慮して、タイル/タイルグループ、ブリック、スライス、最大及び最小コーディングユニットサイズを決定することができる。そして、これに関する情報又はこれを誘導し得る情報がビットストリームに含まれることができる。
【0109】
復号化装置は、現在ピクチャのタイル/タイルグループ、ブリック、スライス、タイル内のCTUが多数のコーディングユニットに分割されたかなどを示す情報を取得することができる。符号化装置及び復号化装置は、このような情報を特定の条件下でのみシグナリングすることにより、符号化効率を高めることもできる。
【0110】
前記スライスヘッダー(スライスヘッダーシンタックス)は、前記スライスに共通に適用可能な情報/パラメータを含むことができる。APS(APSシンタックス)又はPPS(PPSシンタックス)は、一つ以上のピクチャに共通に適用可能な情報/パラメータを含むことができる。SPS(SPSシンタックス)は、一つ以上のシーケンスに共通に適用可能な情報/パラメータを含むことができる。VPS(VPSシンタックス)は、多重レイヤーに共通に適用可能な情報/パラメータを含むことができる。DPS(DPSシンタックス)は、ビデオ全般に共通に適用可能な情報/パラメータを含むことができる。DPSは、CVS(coded video sequence)の結合に関連する情報/パラメータを含むことができる。
【0111】
また、例えば、前記タイル/タイルグループ/ブリック/スライスの分割及び構成などに関する情報は、前記上位レベルシンタックスを介して符号化段階において構成されてビットストリーム形式で復号化装置へ伝達できる。
【0112】
量子化/逆量子化
【0113】
上述したように、符号化装置の量子化部は、変換係数に量子化を適用して、量子化された変換係数を導出することができ、符号化装置の逆量子化部又は復号化装置の逆量子化部は、量子化された変換係数に逆量子化を適用して変換係数を導出することができる。
【0114】
動画像/静止画像の符号化及び復号化では、量子化率を変化させることができ、変化した量子化率を用いて圧縮率を調節することができる。実現の観点では、複雑度を考慮して量子化率を直接使用する代わりに、量子化パラメータ(QP、quantization parameter)を使用することができる。例えば、0から63までの整数値の量子化パラメータを使用することができ、各量子化パラメータ値は、実際の量子化率に対応することができる。また、ルマ成分(ルマサンプル)に対する量子化パラメータQPYと、クロマ成分(クロマサンプル)に対する量子化パラメータQPCとは異なるように設定されることができる。
【0115】
量子化過程は、変換係数Cを入力とし、量子化率(Qstep)で除算して、これに基づいて、量子化された変換係数C`を得ることができる。この場合、計算複雑度を考慮して量子化率にスケールを乗じて整数形態にし、スケール値に対応する値だけシフト演算を行うことができる。量子化率とスケール値との積に基づいて量子化スケール(quantization scale)が導出できる。すなわち、QPに応じて、前記量子化スケールが導出できる。前記変換係数Cに前記量子化スケールを適用して、これに基づいて、量子化された変換係数C’を導出することもできる。
【0116】
逆量子化過程は、量子化過程の逆過程であり、量子化された変換係数C’に量子化率Qstepを乗じて、これに基づいて、復元された変換係数C’’を得ることができる。この場合、前記量子化パラメータに応じてレベルスケール(level scale)が導出でき、前記量子化された変換係数C’に前記レベルスケールを適用して、これに基づいて、復元された変換係数C’を導出すことができる。復元された変換係数C’’は、変換及び/又は量子化過程における損失(loss)により最初変換係数Cとは多少差異がありうる。したがって、符号化装置においても、復号化装置と同様に逆量子化を行うことができる。
【0117】
一方、周波数に応じて量子化強度を調節する適応的周波数別重み付け量子化(adaptive frequency weighting quantization)技術が適用できる。前記適応的周波数別重み付け量子化技術は、周波数別に量子化強度を異なるように適用する方法である。前記適応的周波数別重み付け量子化は、予め定義された量子化スケーリングマトリクスを用いて各周波数別量子化強度を異なるように適用することができる。つまり、上述した量子化/逆量子化過程は、前記量子化スケーリングマトリクスをより基にして行われることができる。例えば、現在ブロックのサイズ及び/又は前記現在ブロックのレジデュアル信号を生成するために、前記現在ブロックに適用された予測モードがインター予測であるか、又はイントラ予測であるかによって異なる量子化スケーリングマトリクスが使用できる。前記量子化スケーリングマトリクスは、量子化マトリクス又はスケーリングマトリクスと呼ばれることができる。前記量子化スケーリングマトリクスは、予め定義されることができる。また、周波数適応的スケーリングのために、前記量子化スケーリングマトリクスに対する周波数別量子化スケール情報が符号化装置で構成/符号化されて復号化装置へシグナリングされることができる。前記周波数別量子化スケール情報は量子化スケーリング情報と呼ばれることができる。前記周波数別量子化スケール情報は、スケーリングリストデータ(scaling_list_data)を含むことができる。前記スケーリングリストデータに基づいて、(修正された)前記量子化スケーリングマトリクスが導出されることができる。また、前記周波数別量子化スケール情報は、前記スケーリングリストデータの存否を指し示す存否フラグ(present flag)情報を含むことができる。又は、前記スケーリングリストデータが上位レベル(例えば、SPS)でシグナリングされた場合、より下位レベル(例えば、PPS or tile group headerなど)で前記スケーリングリストデータが修正されるか否かを指し示す情報などがさらに含まれることができる。
【0118】
変換/逆変換
【0119】
前述したように、符号化装置は、イントラ/インター/IBC予測などを介して予測されたブロック(予測サンプル)に基づいてレジデュアルブロック(レジデュアルサンプル)を導出することができ、導出されたレジデュアルサンプルに変換及び量子化を適用して、量子化された変換係数を導出することができる。量子化された変換係数に対する情報(レジデュアル情報)は、レジデュアルコーディングシンタックスに含まれて符号化された後、ビットストリーム形式で出力されることができる。復号化装置は、前記ビットストリームから前記量子化された変換係数に対する情報(レジデュアル情報)を取得し、復号化して量子化された変換係数を導出することができる。復号化装置は、量子化された変換係数に基づいて逆量子化/逆変換を経てレジデュアルサンプルを導出することができる。上述したように、前記量子化/逆量子化及び/又は変換/逆変換のうちの少なくとも一つは省略可能である。前記変換/逆変換が省略される場合、前記変換係数は係数又はレジデュアル係数と呼ばれることもでき、或いは表現の統一性のために変換係数と依然として呼ばれることもできる。前記変換/逆変換の省略如何は、変換スキップフラグ(例えば、transform_skip_flag)に基づいてシグナリングされることができる。transform_skip_flagの第1値(例えば、0)は、変換省略如何が他のシンタックス要素によって決定されることを示すことができる。transform_skip_flagの第2値(例えば、1)は、変換省略(例えば、スキップ)を示すことができる。
【0120】
前記変換/逆変換は、変換カーネルに基づいて行われることができる。例えば、変換/逆変換を行うためのMTS(multiple transform selection)スキーム(scheme)が適用できる。この場合、多数の変換カーネルセットのうちの一部が選択されて現在ブロックに適用できる。変換カーネルは、変換マトリクスや変換タイプなど、さまざまな用語で呼ばれることができる。例えば、変換カーネルセットは、垂直方向変換カーネル(垂直変換カーネル)及び水平方向変換カーネル(水平変換カーネル)の組み合わせを示すことができる。
【0121】
前記変換/逆変換は、CU又はTU単位で行われることができる。すなわち、前記変換/逆変換は、CU内のレジデュアルサンプル又はTU内のレジデュアルサンプルに対して適用できる。CUサイズとTUサイズとが同じでもよく、或いはCU領域内に複数のTUが存在してもよい。一方、CUサイズとは、一般にルマ成分(サンプル)CBサイズを示すことができる。TUサイズとは、一般にルマ成分(サンプル)TBサイズを示すことができる。クロマ成分(サンプル)CB又はTBサイズは、カラーフォーマット(クロマフォーマット、例えば、4:4:4、4:2:2、4:2:0など)による成分比に応じて、ルマ成分(サンプル)CB又はTBサイズに基づいて導出されることができる。前記TUサイズは、maxTbSizeに基づいて導出されることができる。例えば、前記CUサイズが前記maxTbSizeより大きい場合、前記CUから前記maxTbSizeの複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。前記maxTbSizeは、ISPなどの様々なイントラ予測タイプの適用如何判断などに考慮できる。前記maxTbSizeに対する情報は、予め決定されてもよく、或いは符号化装置で生成及び符号化されて符号化装置へシグナリングされてもよい。
【0122】
エントロピーコーディング
【0123】
先立って
図2を参照して説明したように、ビデオ/画像情報の一部又は全部は、エントロピー符号化部190によってエントロピー符号化でき、
図3を参照して説明したビデオ/画像情報の一部又は全部は、エントロピー復号化部310によってエントロピー復号化できる。この場合、前記ビデオ/画像情報は、シンタックス要素(syntax element)単位で符号化/復号化できる。本明細書において、情報が符号化/復号化されるとは、本段落で説明される方法によって符号化/復号化されることを含むことができる。
【0124】
図8は一つのシンタックス要素を符号化するためのCABACのブロック図を示す。CABACの符号化過程は、まず、入力信号が2進値ではなく、シンタックス要素である場合に2値化(binarization)を介して入力信号を2進値に変換することができる。入力信号が既に2進値である場合には、2値化を経ることなくバイパスできる。ここで、2進値を構成するそれぞれの2進数0又は1をビン(bin)と呼ぶことができる。例えば、二値化後の2進ストリング(ビンストリング)が110である場合、1、1、0のそれぞれを一つのビンと呼ぶことができる。一つのシンタックス要素に対する前記ビンは、当該シンタックス要素の値を示すことができる。
【0125】
2値化されたビンは、正規(regular)コーディングエンジン又はバイパス(bypass)コーディングエンジンに入力されることができる。正規コーディングエンジンは、当該ビンに対して確率値を反映するコンテキスト(context)モデルを割り当て、割り当てられたコンテキストモデルに基づいて当該ビンを符号化することができる。正規コーディングエンジンでは、各ビンに対するコーディングを行った後、当該ビンに対する確率モデルを更新することができる。このようにコーディングされるビンを、コンテキストコーディングされたビン(context-coded bin)と呼ぶことができる。バイパスコーディングエンジンは、入力されたビンに対して確率を推定する手順と、コーディング後に当該ビンに適用した確率モデルを更新する手順を省略することができる。バイパスコーディングエンジンの場合、コンテキストを割り当てる代わりに均一な確率分布(例えば、50:50)を適用して入力されるビンをコーディングすることにより、コーディング速度を向上させることができる。このようにコーディングされるビンをバイパスビン(bypass bin)と呼ぶことができる。コンテキストモデルは、コンテキストコーディング(正規コーディング)されるビン別に割当及び更新されることができ、コンテキストモデルは、ctxidx又はctxIncに基づいて指示されることができる。ctxidxはctxIncに基づいて導出されることができる。具体的には、例えば、前記正規コーディングされるビンのそれぞれに対するコンテキストモデルを指すコンテキストインデックス(ctxidx)は、context index increment(ctxInc)及びcontext index offset(ctxIdxOffset)の和として導出されることができる。ここで、前記ctxIncは、各ビン別に異なるように導出されることができる。前記ctxIdxOffsetは、前記ctxIdxの最小値(the lowest value)で表されることができる。前記ctxIdxの最小値は、前記ctxIdxの初期値(initValue)と呼ばれることができる。前記ctxIdxOffsetは、一般に、他のシンタックス要素に対するコンテキストモデルとの区分のために用いられる値であり、一つのシンタックス要素に対するコンテキストモデルは、ctxincに基づいて区分/導出されることができる。
【0126】
エントロピー符号化手順で正規コーディングエンジンを介して符号化を行うのか、バイパスコーディングエンジンを介して符号化を行うのかを決定し、コーディング経路をスイッチングすることができる。エントロピー復号化は、エントロピー符号化と同様の過程を逆順に行うことができる。
【0127】
上述したエントロピーコーディングは、例えば、
図9及び
図10のように行われることができる。
図9及び
図10を参照すると、符号化装置(エントロピー符号化部)は、画像/ビデオ情報に関するエントロピーコーディング手順を行うことができる。前記画像/ビデオ情報は、パーティショニング関連情報、予測関連情報(例えば、インター/イントラ予測区分情報、イントラ予測モード情報、インター予測モード情報など)、レジデュアル情報、インループフィルタリング関連情報などを含むことができ、或いは、それに関する様々なシンタックス要素を含むことができる。前記エントロピーコーディングは、シンタックス要素単位で行われることができる。
図9のステップS910~S920は、上述した
図2の符号化装置のエントロピー符号化部190によって行われることができる。
【0128】
符号化装置は、対象シンタックス要素に対する2値化を行うことができる(S910)。ここで、前記2値化は、Truncated Rice binarization process、Fixed-length binarization processなどの多様な2値化方法に基づくことができ、対象シンタックス要素に対する2値化方法は、予め定義されることができる。前記2値化手順は、エントロピー符号化部190内の2値化部191によって行われることができる。
【0129】
符号化装置は、前記対象シンタックス要素に対するエントロピー符号化を行うことができる(S920)。符号化装置は、CABAC(context-adaptive arithmetic coding)又はCAVLC(context-adaptive variable length coding)などのエントロピーコーディング技法に基づいて、対象シンタックス要素のビンストリングに対して、正規コーディングベース(コンテキストベース)又はバイパスコーディングベースの符号化を行うことができ、その出力は、ビットストリームに含まれることができる。前記エントロピー符号化手順は、エントロピー符号化部190内のエントロピー符号化処理部192によって行われることができる。前述したように、前記ビットストリームは、(デジタル)記憶媒体又はネットワークを介して復号化装置へ伝達できる。
【0130】
図11及び
図12を参照すると、復号化装置(エントロピー復号化部)は、符号化された画像/ビデオ情報を復号化することができる。前記画像/ビデオ情報は、パーティショニング関連情報、予測関連情報(例えば、インター/イントラ予測区分情報、イントラ予測モード情報、インター予測モード情報など)、レジデュアル情報、インループフィルタリング関連情報などを含むことができ、或いは、それに関する様々なシンタックス要素を含むことができる。前記エントロピーコーディングは、シンタックス要素単位で行われることができる。S1110~S1120は、上述した
図3の復号化装置のエントロピー復号化部210によって行われることができる。
【0131】
復号化装置は、対象シンタックス要素に対する2値化を行うことができる(S1110)。ここで、前記2値化は、Truncated Rice binarization process、Fixed-length binarization processなどの多様な2値化方法に基づくことができ、対象シンタックス要素に対する2値化方法は、予め定義されることができる。復号化装置は、前記2値化手順を介して、対象シンタックス要素の利用可能値に対する利用可能ビンストリング(ビンストリング候補)を導出することができる。前記2値化手順は、エントロピー復号化部210内の2値化部211によって行われることができる。
【0132】
復号化装置は、前記対象シンタックス要素に対するエントロピー復号化を行うことができる(S1120)。復号化装置は、ビットストリーム内の入力ビットから前記対象シンタックス要素に対する各ビンを順次復号化及びパーシングしながら、導出されたビンストリングを当該シンタックス要素に対する利用可能ビンストリングと比較することができる。もし、導出されたビンストリングが前記利用可能ビンストリングのうちの一つと同じであれば、当該ビンストリングに対応する値が当該シンタックス要素の値として導出されることができる。もし、そうでなければ、前記ビットストリーム内の次のビットをさらにパーシングした後、上述した手順を再び行うことができる。このような過程によってビットストリーム内に特定の情報(特定のシンタックス要素)に対する開始ビット又は終了ビットを使用しなくても、可変長ビットを用いて当該情報をシグナリングすることができる。これにより、低い値に対しては相対的にさらに少ないビットを割り当てることができ、全般的なコーディング効率を高めることができる。
【0133】
復号化装置は、CABAC又はCAVLCなどのエントロピーコーディング技法に基づいてビットストリームから前記ビンストリング内の各ビンに対してコンテキストベース又はバイパスベースの復号化を行うことができる。前記エントロピー復号化手順は、エントロピー復号化部210内のエントロピー復号化処理部212によって行われることができる。前記ビットストリームは、上述したように画像/ビデオ復号化のための様々な情報を含むことができる。上述したように、前記ビットストリームは、(デジタル)記憶媒体又はネットワークを介して復号化装置へ伝達されることができる。
【0134】
本明細書において、符号化装置から復号化装置への情報のシグナリングを示すために、シンタックス要素を含むテーブル(シンタックステーブル)が使用できる。本明細書で使用される前記シンタックス要素を含むテーブルのシンタックス要素の順序は、ビットストリームからシンタックス要素のパーシング順序(parsing order)を示すことができる。符号化装置は、前記シンタックス要素がパーシング順序に従って復号化装置でパーシングできるようにシンタックステーブルを構成及び符号化することができ、復号化装置は、ビットストリームから当該シンタックステーブルのシンタックス要素をパーシング順序に従ってパーシング及び復号化してシンタックス要素の値を取得することができる。
【0135】
一般的な画像/ビデオコーディング手順
【0136】
画像/ビデオコーディングにおいて、画像/ビデオを構成するピクチャは、一連の復号化順序(decoding order)に従って符号化/復号化されることができる。復号化されたピクチャの出力順序(output order)に該当するピクチャ順序(picture order)は、前記復号化順序とは異なるように設定されることができる。これに基づいて、インター予測の際に、順方向予測だけでなく逆方向予測も行うことができる。
【0137】
図13は本明細書の実施例が適用可能な概略的なピクチャ復号化手順の例を示す。
図13において、S1310は、
図3で上述した復号化装置のエントロピー復号化部210で行われることができ、S1320は、イントラ予測部265及びインター予測部260を含む予測部で行われることができ、S1330は、逆量子化部220及び逆変換部230を含むレジデュアル処理部で行われることができ、S1340は、加算部235で行われることができ、S1350は、フィルタリング部240で行われることができる。S1310は、本明細書で説明された情報復号化手順を含むことができ、S1320は、本明細書で説明されたインター/イントラ予測手順を含むことができ、S1330は、本明細書で説明されたレジデュアル処理手順を含むことができ、S1340は、本明細書で説明されたブロック/ピクチャ復元手順を含むことができ、S1350は、本明細書で説明されたインループフィルタリング手順を含むことができる。
【0138】
図13を参照すると、ピクチャ復号化手順は、
図3についての説明で示されているように、概略的に、ビットストリームから(復号化による)画像/ビデオ情報取得手順(S1310)、ピクチャ復元手順(S1320~S1340)、及び復元されたピクチャに対するインループフィルタリング手順(S1350)を含むことができる。前記ピクチャ復元手順は、本明細書で説明されたインター/イントラ予測(S1320)及びレジデュアル処理(S1330、量子化された変換係数に対する逆量子化、逆変換)過程を経て取得した予測サンプル及びレジデュアルサンプルに基づいて行われることができる。前記ピクチャ復元手順によって生成された復元ピクチャに対するインループフィルタリング手順を介して、修正(modified)された復元ピクチャが生成されることができ、前記修正された復元ピクチャが、復号化されたピクチャとして出力されることができ、また、復号化装置の復号ピクチャバッファ又はメモリ250に保存されて以後ピクチャの復号化時にインター予測手順で参照ピクチャとして使用されることができる。場合によっては、前記インループフィルタリング手順は省略可能であり、この場合、前記復元ピクチャが復号化されたピクチャとして出力されることができ、また、復号化装置の復号ピクチャバッファ又はメモリ250に保存されて以後ピクチャの復号化時にインター予測手順で参照ピクチャとして使用されることができる。前記インループフィルタリング手順(S1350)は、上述したように、デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順、及び/又はバイラテラルフィルター(bi-lateral filter)手順などを含むことができ、その一部又は全部が省略可能である。また、前記デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順、及びバイラテラルフィルター(bi-lateral filter)手順のうちの一つ又は一部が順次適用されることができ、或いはすべてが順次適用されることもできる。例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、SAO手順が行われることができる。または、例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、ALF手順が行われることができる。これは、符号化装置においても同様に行われることができる。
【0139】
図14は本明細書の実施例が適用できる概略的なピクチャ符号化手順の例を示す。
図14において、S1410は、
図2で上述した符号化装置のイントラ予測部185又はインター予測部180を含む予測部で行われることができ、S1420は、変換部120及び/又は量子化部130を含むレジデュアル処理部で行われることができ、S1430は、エントロピー符号化部190で行われることができ、S1410は、本明細書で説明されたインター/イントラ予測手順を含むことができ、S1420は、本明細書で説明されたレジデュアル処理手順を含むことができ、S1430は、本明細書で説明された情報符号化手順を含むことができる。
【0140】
図14を参照すると、ピクチャ符号化手順は、
図2についての説明で示されているように、概略的にピクチャ復元のための情報(例えば、予測情報、レジデュアル情報、パーティショニング情報など)を符号化してビットストリーム形式で出力する手順だけでなく、現在ピクチャに対する復元ピクチャを生成する手順、及び復元ピクチャにインループフィルタリングを適用する手順(optional)を含むことができる。符号化装置は、逆量子化部140及び逆変換部150を介して、量子化された変換係数から(修正された)レジデュアルサンプルを導出することができ、S1410の出力である予測サンプルと前記(修正された)レジデュアルサンプルに基づいて復元ピクチャを生成することができる。このように生成された復元ピクチャは、上述した復号化装置で生成した復元ピクチャと同一であり得る。前記復元ピクチャに対するインループフィルタリング手順を介して、修正された復元ピクチャが生成されることができ、これは、復号ピクチャバッファ又はメモリ170に保存されることができ、復号化装置での場合と同様に、以後ピクチャの符号化時にインター予測手順で参照ピクチャとして使用されることができる。上述したように、場合によっては、前記インループフィルタリング手順の一部又は全部は省略可能である。前記インループフィルタリング手順が行われる場合、(インループ)フィルタリング関連情報(パラメータ)がエントロピー符号化部190で符号化されてビットストリーム形式で出力されることができ、復号化装置は、前記フィルタリング関連情報に基づいて符号化装置と同様の方法でインループフィルタリング手順を行うことができる。
【0141】
このようなインループフィルタリング手順を介して、ブロッキングアーチファクト(artifact)及びリンギング(ringing)アーチファクトなど、画像/動画像コーディング時に発生するノイズを低減することができ、主観的/客観的ビジュアルクオリティを高めることができる。また、符号化装置と復号化装置の両方でインループフィルタリング手順を行うことにより、符号化装置と復号化装置は、同一の予測結果を導出することができ、ピクチャコーディングの信頼性を高め、ピクチャコーディングのために伝送されるべきデータ量を減らすことができる。
【0142】
上述したように、復号化装置だけでなく、符号化装置においてもピクチャ復元手順が行われることができる。各ブロック単位でイントラ予測/インター予測に基づいて復元ブロックが生成されることができ、復元ブロックを含む復元ピクチャが生成されることができる。現在ピクチャ/スライス/タイルグループがIピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測のみに基づいて復元されることができる。一方、現在ピクチャ/スライス/タイルグループがP又はBピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測又はインター予測に基づいて復元されることができる。この場合、現在ピクチャ/スライス/タイルグループ内の一部のブロックに対してはインター予測が適用され、残りの一部のブロックに対してはイントラ予測が適用されることもできる。ピクチャの色成分は、ルマ成分及びクロマ成分を含むことができ、本明細書で明示的に制限しなければ、本明細書で提案される方法及び実施例は、ルマ成分及びクロマ成分に適用できる。
【0143】
コーディング階層及び構造の例
【0144】
本明細書によるコーディングされたビデオ/画像は、例えば、後述するコーディング階層及び構造に従って処理できる。
【0145】
図15はコーディングされた画像に対する階層構造を示す図である。コーディングされた画像は、画像の復号化処理及びそれ自体を扱うVCL(video coding layer、ビデオコーディング階層)、符号化された情報を伝送し保存する下位システム、そしてVCLと下位システムとの間に存在し、ネットワーク適応機能を担当するNAL(network abstraction layer、ネットワーク抽象階層)に区分されることができる。
【0146】
VCLでは、圧縮された画像データ(スライスデータ)を含むVCLデータを生成するか、或いはピクチャパラメータセット(Picture Parameter Set:PPS)、シーケンスパラメータセット(Sequence Parameter Set:SPS)、ビデオパラメータセット(Video Parameter Set:VPS)などの情報を含むパラメータセット又は画像の復号化処理に付加的に必要なSEI(Supplemental Enhancement Information)メッセージを生成することができる。
【0147】
NALでは、VCLで生成されたRBSP(Raw Byte Sequence Payload)にヘッダー情報(NALユニットヘッダー)を付加してNALユニットを生成することができる。このとき、RBSPは、VCLで生成されたスライスデータ、パラメータセット、SEIメッセージなどをいう。NALユニットヘッダーには、該当NALユニットに含まれるRBSPデータによって特定されるNALユニットタイプ情報を含むことができる。
【0148】
図示されているように、NALユニットは、VCLで生成されたRBSPによってVCL NALユニットとNon-VCL NALユニットに区分されることができる。VCL NALユニットは、画像に対する情報(スライスデータ)を含んでいるNALユニットを意味することができ、Non-VCL NALユニットは、画像を復号化するために必要な情報(パラメータセット又はSEIメッセージ)を含んでいるNALユニットを意味することができる。
【0149】
上述したVCL NALユニット、Non-VCL NALユニットは、下位システムのデータ規格に応じてヘッダー情報を付けてネットワークを介して伝送されることができる。例えば、NALユニットは、H.266/VVCファイルフォーマット、RTP(Real-time Transport Protocol)、TS(Transport Stream)などの所定の規格のデータ形式に変形して様々なネットワークを介して伝送されることができる。
【0150】
上述したように、NALユニットは、当該NALユニットに含まれるRBSPデータ構造(structure)に応じてNALユニットタイプが特定されることができ、このようなNALユニットタイプに対する情報は、NALユニットヘッダーに保存されてシグナリングされることができる。
【0151】
例えば、NALユニットが画像に対する情報(スライスデータ)を含むか否かによって、大きくVCL NALユニットタイプとNon-VCL NALユニットタイプに分類されることができる。VCL NALユニットタイプは、VCL NALユニットが含むピクチャの性質及び種類などによって分類されることができ、Non-VCL NALユニットタイプは、パラメータセットの種類などによって分類されることができる。
【0152】
以下に、Non-VCL NALユニットタイプが含むパラメータセットの種類などによって特定されたNALユニットタイプの一例を羅列する。
【0153】
-APS(Adaptation Parameter Set) NAL unit:APSを含むNALユニットに対するタイプ
【0154】
-DPS(Decoding Parameter Set) NAL unit:DPSを含むNALユニットに対するタイプ
【0155】
-VPS(Video Parameter Set) NALユニット:VPSを含むNALユニットに対するタイプ
【0156】
-SPS(Sequence Parameter Set) NAL unit:SPSを含むNALユニットに対するタイプ
【0157】
-PPS(Picture Parameter Set) NALユニット:PPSを含むNALユニットに対するタイプ
【0158】
上述したNALユニットタイプは、NALユニットタイプのためのシンタックス情報を有し、前記シンタックス情報は、NALユニットヘッダーに保存されてシグナリングされることができる。例えば、前記シンタックス情報はnal_unit_typeであることができ、NALユニットタイプはnal_unit_typeの値で特定できる。
【0159】
前記スライスヘッダー(スライスヘッダーシンタックス)は、前記スライスに共通に適用可能な情報/パラメータを含むことができる。前記APS(APSシンタックス)又はPPS(PPSシンタックス)は、一つ以上のスライス又はピクチャに共通に適用可能な情報/パラメータを含むことができる。前記SPS(SPSシンタックス)は、一つ以上のシーケンスに共通に適用可能な情報/パラメータを含むことができる。前記VPS(VPSシンタックス)は、多重レイヤーに共通に適用可能な情報/パラメータを含むことができる。前記DPS(DPSシンタックス)は、ビデオ全般に共通に適用可能な情報/パラメータを含むことができる。前記DPSは、CVS(coded video sequence)の連結(concatenation)に関する情報/パラメータを含むことができる。本明細書において、上位レベルシンタックス(High level syntax、HLS)とは、前記APSシンタックス、PPSシンタックス、SPSシンタックス、VPSシンタックス、DPSシンタックス、及びスライスヘッダーシンタックスのうちの少なくとも一つを含むことができる。
【0160】
本明細書において、符号化装置から復号化装置へ符号化されてビットストリーム形式でシグナリングされる画像/ビデオ情報は、ピクチャ内のパーティショニング関連情報、イントラ/インター予測情報、レジデュアル情報、インループフィルタリング情報などを含むだけでなく、前記スライスヘッダーに含まれた情報、前記APSに含まれた情報、前記PPSに含まれた情報、SPSに含まれた情報、及び/又はVPSに含まれた情報を含むことができる。
【0161】
イントラ予測の概要
【0162】
以下、上述した符号化装置及び復号化装置が行うイントラ予測についてより詳細に説明する。イントラ予測は、現在ブロックの属するピクチャ(以下、現在ピクチャ)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。
【0163】
図16を参照して説明する。現在ブロック1601にイントラ予測が適用される場合、現在ブロック1601のイントラ予測に使用する周辺参照サンプルが導出されることができる。前記現在ブロックの周辺参照サンプルは、nW×nHサイズの現在ブロックの左側(left)境界に隣接するサンプル1611及び左下側(bottom-left)に隣接するサンプル1612を含む合計2×nH個のサンプル、現在ブロックの上側(top)境界に隣接するサンプル1621及び右上側(top-right)に隣接するサンプル1622を含む合計2×nW個のサンプル、並びに現在ブロックの左上側(top-light)に隣接する一つのサンプル1631を含むことができる。又は、前記現在ブロックの周辺参照サンプルは、複数列の上側周辺サンプル及び複数行の左側周辺サンプルを含むこともできる。
【0164】
また、前記現在ブロックの周辺基準サンプルは、nW×nHサイズの現在ブロックの右側(right)境界に隣接する合計nH個のサンプル1641、現在ブロックの下側(bottom)境界に隣接する合計nW個のサンプル1651、及び現在ブロックの右下側(bottom-right)に隣接する一つのサンプル1642を含むこともできる。
【0165】
ただし、現在ブロックの周辺参照サンプルのうちの一部は、まだ復号化されていないか、或いは利用可能でない可能性がある。この場合、復号化装置は、利用可能でないサンプルを利用可能なサンプルで置き換える(substitution)ことにより、予測に使用する周辺参照サンプルを構成することができる。又は、利用可能なサンプルの補間(interpolation)を介して、予測に使用する周辺参照サンプルを構成することができる。
【0166】
周辺参照サンプルが導出された場合、(i)現在ブロックの周辺(neighboring)参照サンプルの平均(average)或いはインターポーレーション(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの周辺参照サンプルのうちの予測サンプルに対して特定(予測)の方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モード又は非角度モード、(ii)の場合は方向性(directional)モード又は角度(angular)モードと呼ばれることができる。また、前記周辺参照サンプルのうち、前記現在ブロックの予測サンプルを基準に、前記現在ブロックのイントラ予測モードの予測方向の反対方向に位置する前記第2周辺サンプルと前記第1周辺サンプルとの補間を介して、前記予測サンプルが生成されることもできる。上述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ぶことができる。また、線形モデル(linear model)を用いてルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。また、フィルタリングされた周辺参照サンプルに基づいて前記現在ブロックの臨時予測サンプルを導出し、前記既存の周辺参照サンプル、すなわちフィルタリングされていない周辺参照サンプルのうちの前記イントラ予測モードに従って導出された少なくとも一つの参照サンプルと前記臨時予測サンプルとを加重和(weighted sum)して前記現在ブロックの予測サンプルを導出することもできる。上述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。また、現在ブロックの周辺多重参照サンプルラインの中から、最も予測精度の高い参照サンプルラインを選択して、当該ラインにおいて予測方向に位置する参照サンプルを用いて予測サンプルを導出し、このとき、使用された参照サンプルラインを復号化装置に指示(シグナリング)する方法でイントラ予測符号化を行うことができる。上述した場合は、multi-reference line(MRL)intra prediction又はMRLベースのイントラ予測と呼ばれることができる。また、現在ブロックを垂直又は水平のサブパーティションに分けて同一のイントラ予測モードに基づいてイントラ予測を行うが、前記サブパーティション単位で周辺参照サンプルを導出して用いることができる。すなわち、この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同一に適用されるが、前記サブパーティション単位で周辺参照サンプルを導出して用いることにより、場合によってイントラ予測性能を高めることができる。このような予測方法は、intra sub-partitions(ISP)又はISPベースのイントラ予測と呼ばれることができる。このようなイントラ予測方法は、イントラ予測モード(例えば、DCモード、Planarモード及び方向性モード)と区分してイントラ予測タイプと呼ばれることができる。前記イントラ予測タイプは、イントラ予測技法又は付加イントラ予測モードなどの様々な用語で呼ばれることができる。例えば、前記イントラ予測タイプ(又は付加イントラ予測モードなど)は、上述したLIP、PDPC、MRL、ISPのうちの少なくとも一つを含むことができる。前記LIP、PDPC、MRL、ISPなどの特定のイントラ予測タイプを除いた一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、上述した特定のイントラ予測タイプが適用されない場合を指すことができ、上述したイントラ予測モードに基づいて予測が行われることができる。一方、必要に応じて、導出された予測サンプルに対する後処理フィルタリングが行われることもできる。
【0167】
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、周辺参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。さらに、必要に応じて、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが行われることもできる。
【0168】
一方、上述したイントラ予測タイプの他にも、ALWIP(affine linear weighted intra prediction)が使用されることができる。前記ALWIPは、LWIP(linear weighted intra prediction)又はMIP(matrix weighted intra prediction又はmatrix based intra prediction)と呼ばれることもできる。前記MIPが現在ブロックに対して適用される場合、i)平均化(averaging)手順が行われた周辺参照サンプルを用いてii)マトリクスベクトルマルチプリケーション(matrix-vector-multiplication)手順を行い、iii)必要に応じて水平/垂直補間(interpolation)手順をさらに行うことにより、前記現在ブロックに対する予測サンプルを導出することができる。前記MIPのために使用されるイントラ予測モードは、上述したLIP、PDPC、MRL、ISPイントラ予測、又はノーマルイントラ予測で使用されるイントラ予測モードとは異なるように構成できる。前記MIPのためのイントラ予測モードは、MIPイントラ予測モード、MIP予測モード又はMIPモードと呼ばれることができる。例えば、前記MIPのためのイントラ予測モードに応じて、前記マトリクスベクトルマルチプリケーションで使用されるマトリクス及びオフセットが異なるように設定されることができる。ここで、前記マトリクスは(MIP)重みマトリクスと呼ばれることができ、前記オフセットは(MIP)オフセットベクトル又は(MIP)バイアス(bias)ベクトルと呼ばれることができる。具体的なMIP方法については後述する。
【0169】
イントラ予測に基づくブロック復元手順及び符号化装置内のイントラ予測部は、概略的に例を挙げて以下を含むことができる。S1710は、符号化装置のイントラ予測部185によって行われることができ、S1720は、符号化装置の減算部115、変換部120、量子化部130、逆量子化部140及び逆変換部150のうちの少なくとも一つを含むレジデュアル処理部によって行われることができる。具体的には、S1720は、符号化装置の減算部115によって行われることができる。S1730で、予測情報は、イントラ予測部185によって導出され、エントロピー符号化部190によって符号化されることができる。S1730で、レジデュアル情報は、レジデュアル処理部によって導出され、エントロピー符号化部190によって符号化されることができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。上述したように、前記レジデュアルサンプルは、符号化装置の変換部120を介して変換係数に導出され、前記変換係数は、量子化部130を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報が、レジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
【0170】
符号化装置は、現在ブロックに対するイントラ予測を行うことができる(S1710)。符号化装置は、現在ブロックに対するイントラ予測モード/タイプを導出し、現在ブロックの周辺参照サンプルを導出することができ、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成する。ここで、イントラ予測モード/タイプの決定、周辺参照サンプルの導出、及び予測サンプルの生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。例えば、図示されてはいないが、符号化装置のイントラ予測部185は、イントラ予測モード/タイプ決定部、参照サンプル導出部、予測サンプル導出部を含むことができ、イントラ予測モード/タイプ決定部で前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部で前記現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部で前記現在ブロックの予測サンプルを導出することができる。一方、後述する予測サンプルフィルタリング手順が行われる場合、イントラ予測部185は、予測サンプルフィルター部をさらに含むこともできる。符号化装置は、複数のイントラ予測モード/タイプのうち、前記現在ブロックに対して適用されるモード/タイプを決定することができる。符号化装置は、前記イントラ予測モード/タイプに対するRDコストを比較し、前記現在ブロックに対する最適なイントラ予測モード/タイプを決定することができる。
【0171】
一方、符号化装置は、予測サンプルフィルタリング手順を行うこともできる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、前記予測サンプルフィルタリング手順は省略可能である。
【0172】
符号化装置は、(フィルタリングされた)予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを生成することができる(S1720)。符号化装置は、現在ブロックの原本サンプルにおける前記予測サンプルを位相に基づいて比較し、前記レジデュアルサンプルを導出することができる。
【0173】
符号化装置は、前記イントラ予測に関する情報(予測情報)、及び前記レジデュアルサンプルに関するレジデュアル情報を含む画像情報を符号化することができる(S1730)。前記予測情報は、前記イントラ予測モード情報、前記イントラ予測タイプ情報を含むことができる。符号化装置は、符号化された画像情報がビットストリーム形式で出力されることができる。出力されたビットストリームは、記憶媒体又はネットワークを介して復号化装置へ伝達されることができる。
【0174】
前記レジデュアル情報は、後述するレジデュアルコーディングシンタックスを含むことができる。符号化装置は、前記レジデュアルサンプルを変換/量子化して、量子化された変換係数を導出することができる。前記レジデュアル情報は、前記量子化された変換係数に対する情報を含むことができる。
【0175】
一方、上述したように、符号化装置は、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。このために、符号化装置は、前記量子化された変換係数を再び逆量子化/逆変換処理して(修正された)レジデュアルサンプルを導出することができる。このようにレジデュアルサンプルを変換/量子化した後、再び逆量子化/逆変換を行う理由は、上述したように復号化装置で導出されるレジデュアルサンプルと同一のレジデュアルサンプルを導出するためである。符号化装置は、前記予測サンプルと(修正された)レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを含む復元ブロックを生成することができる。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
【0176】
イントラ予測に基づくビデオ/画像復号化手順及び復号化装置内のイントラ予測部は、概略的に例を挙げて以下を含むことができる。復号化装置は、前記符号化装置で行われた動作と対応する動作を行うことができる。
【0177】
S1810~S1830は、復号化装置のイントラ予測部265によって行われることができ、S1810の予測情報及びS1840のレジデュアル情報は、復号化装置のエントロピー復号化部210によってビットストリームから取得できる。復号化装置の逆量子化部220及び逆変換部230のうちの少なくとも一つを含むレジデュアル処理部は、前記レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプルを導出することができる。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。S1850は、復号化装置の加算部235又は復元部によって行われることができる。
【0178】
具体的には、復号化装置は、受信した予測情報(イントラ予測モード/タイプ情報)に基づいて、現在ブロックに対するイントラ予測モード/タイプを導出することができる(S1810)。復号化装置は、前記現在ブロックの周辺参照サンプルを導出することができる(S1820)。復号化装置は、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成することができる(S1830)。この場合、復号化装置は予測サンプルフィルタリング手順を行うことができる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、予測サンプルフィルタリング手順は省略可能である。
【0179】
復号化装置は、受信したレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成することができる。復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、前記復元サンプルを含む復元ブロックを導出することができる(S1840)。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
【0180】
ここで、復号化装置のイントラ予測部265は、たとえ図示されてはいないが、イントラ予測モード/タイプ決定部、参照サンプル導出部、予測サンプル導出部を含むことができ、イントラ予測モード/タイプ決定部は、エントロピー復号化部210で取得されたイントラ予測モード/タイプ情報に基づいて前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部は、前記現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部は、前記現在ブロックの予測サンプルを導出することができる。一方、上述した予測サンプルフィルタリング手順が行われる場合、イントラ予測部265は、予測サンプルフィルター部をさらに含むこともできる。
【0181】
前記イントラ予測モード情報は、例えば、MPM(most probable mode)が前記現在ブロックに適用されるのか、それともリメイニングモード(remaining mode)が適用されるのかを示すフラグ情報(例えば、intra_luma_mpm_flag)を含むことができ、前記MPMが前記現在ブロックに適用される場合、前記予測モード情報は、前記イントラ予測モード候補(MPM候補)のうちのいずれか一つを指すインデックス情報(例えば、intra_luma_mpm_idx)をさらに含むことができる。前記イントラ予測モード候補(MPM候補)は、MPM候補リスト又はMPMリストから構成されることができる。また、前記MPMが前記現在ブロックに適用されない場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうちのいずれか一つを指すリメイニングモード情報(例えば、intra_luma_mpm_remainder)をさらに含むことができる。復号化装置は、前記イントラ予測モード情報に基づいて前記現在ブロックのイントラ予測モードを決定することができる。上述したMIPのために、別途のMPMリストが構成されることができる。
【0182】
さらに、前記イントラ予測タイプ情報は、様々な形態で実現できる。一例として、前記イントラ予測タイプ情報は、前記イントラ予測タイプのうちのいずれか一つを指示するイントラ予測タイプインデックス情報を含むことができる。他の例として、前記イントラ予測タイプ情報は、前記MRLが前記現在ブロックに適用されるか、及び適用される場合には幾番目の参照サンプルラインが用いられるかを示す参照サンプルライン情報(例えば、intra_luma_ref_idx)、前記ISPが前記現在ブロックに適用されるかを示すISPフラグ情報(例えば、intra_subpartitions_mode_flag)、前記ISPが適用される場合にサブパーティションが分割タイプを指示するISPタイプ情報(例えば、intra_subpartitions_split_flag)、PDCPの適用如何を示すフラグ情報、又はLIPの適用如何を示すフラグ情報のうちの少なくとも一つを含むことができる。また、前記イントラ予測タイプ情報は、前記現在ブロックにMIPが適用されるか否かを示すMIPフラグを含むことができる。
【0183】
前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、本明細書で説明したコーディング方法を介して符号化/復号化されることができる。例えば、前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、truncated(rice)binary codeに基づいてエントロピーコーディング(例えば、CABAC、CAVLC)コーディングを介して符号化/復号化されることができる。
【0184】
ACT(Adaptive Color Transform)の概要
【0185】
ACT(Adaptive Color Transform)は、カラーコンポーネント間の不要な重複を除去するための色空間(color space)変換(conversion)技術であって、HEVCスクリーンコンテンツ拡張バージョンで活用されたことがある。これはまた、VVCも適用できる。
【0186】
HEVC SCC拡張(HEVC screen content extension)において、予測レジデュアルを既存の色空間からYCgCo色空間へ適応的に変換するためにACTが使用されたことがある。それぞれの変換単位に対して一つのACTフラグをシグナリングすることにより、2つの色空間のうちの一つの色空間が選択的に選択されることができる。
【0187】
例えば、フラグの第1値(例えば1)は、変換単位のレジデュアルがオリジナル色空間で符号化されていることを示すことができる。フラグの第2値(例えば1)は、変換単位のレジデュアルがYCgCo色空間で符号化されていることを示すことができる。
【0188】
図19はACTを適用した復号化過程の一実施例を示す図である。
図19の実施例において、動き補償予測(motion compensated prediction)は、本開示におけるインター予測に対応することができる。
【0189】
図19に示すように、復元ピクチャ(又は復元ブロック、復元サンプル配列、復元サンプル、復元されたシグナル)は、予測出力値及びレジデュアル出力値に基づいて生成されることができる。ここで、レジデュアル出力値は逆変換出力値であり得る。ここで、逆変換は正規逆変換であり得る。ここで、正規逆変換はMTSベースの逆変換又は逆LFNST(low frequency non-seperable transform)であり得る。
【0190】
ここで、予測出力値は、予測ブロック、予測サンプル配列、予測サンプル又は予測信号であることができ、レジデュアル出力値は、レジデュアルブロック、レジデュアルサンプル配列、レジデュアルサンプル又はレジデュアル信号であることができる。
【0191】
例えば、符号化装置の側面で、ACTプロセスは、予測サンプルに基づいて誘導されたレジデュアルサンプルに対して行われることができる。そして、ACTプロセスの出力値は正規変換プロセスの入力として提供されることができる。ここで、正規変換プロセスは、MTSベースの変換又はLFNSTであり得る。
【0192】
(逆)ACTに関する情報(パラメータ)は、符号化装置によって生成され、符号化されることができる。そして、ビットストリーム形式で復号化装置へ伝送されることができる。
【0193】
復号化装置は、(逆)ACT関連情報(パラメータ)を取得し、パーシングし、復号化することができ、(逆)ACTに関連する情報(パラメータ)に基づいて逆ACTを行うことができる。
【0194】
逆ACTに基づいて、(修正された)レジデュアルサンプル(又はレジデュアルブロック)が誘導されることができる。例えば、量子化された(変換)係数に逆量子化を適用することにより、(変換)係数が誘導されることができる。そして、(変換)係数に逆変換を行うことにより、レジデュアルサンプルが誘導されることができる。そして、レジデュアルサンプルに逆ACTを適用することにより、(修正された)レジデュアルサンプルが取得されることができる。(逆)ACTに関する情報(パラメータ)については詳細に後述する。
【0195】
一実施例において、HEVCで使用されるコア変換関数が色空間変換のためのコア変換関数(変換カーネル)として使用できる。例えば、下記数式のような順方向変換及び逆方向変換のための行列が使用できる。
【0196】
【0197】
【0198】
ここで、C0、C1及びC2はG、B、Rに対応することができる。ここで、Gは緑(green)色成分、Bは青(blue)色成分、Rは赤(red)色成分である。そして、C0’、C1’及びC2’はY、Cg、Coに対応することができる。ここで、Yは輝度、Cgは緑色色差、Coはオレンジ色色差成分である。
【0199】
さらに、色変換以前及び以後のレジデュアルの動的範囲変化を補償するために、変換レジデュアルに(-5、-5、-3)だけのQP調整が適用できる。QP調整の詳細な事項は後述する。
【0200】
一方、一実施例による符号化及び復号過程において、ACTが適用できる場合、以下の制限が適用できる。
【0201】
-デュアルツリー符号化/復号化の場合、ACTが不活性化される。例えば、ACTはシングルツリー符号化/復号化に対してのみ適用できる。
【0202】
-ISPの符号化及び復号化が適用される場合、ACTは不活性化できる。
【0203】
-BDPCMが適用されたクロマブロックに対して、ACTは不活性化できる。BDPCMが適用されたルマブロックに対してのみ、ACTが活性化できる。
【0204】
-ACTの適用が可能な場合、CCLMは不活性化できる。
【0205】
図20はACTに関連するシンタックス要素がシグナリングされるシーケンスパラメータセットシンタックステーブルの一実施例を示す図である。
【0206】
図21~
図27はACTに関連するシンタックス要素がシグナリングされる符号化単位のシンタックステーブルの一実施例を連続的に示す図である。
【0207】
図20に示すように、復号化過程でACTが活性化されるか否かを示すACT活性化フラグとして、sps_act_enabled_flag(2010)が使用できる。
【0208】
sps_act_enabled_flagの第1値(例えば0)は、ACTが使用されず、符号化単位でACTの適用如何を示すフラグcu_act_enabled_flag(2110、2710)が符号化単位に対するシンタックスで提供されないことを示すことができる。
【0209】
sps_act_enabled_flagの第2値(例えば1)は、ACTが使用でき、cu_act_enabled_flagが符号化単位に対するシンタックスで提供できることを示すことができる。
【0210】
sps_act_enabled_flagがビットストリームで取得されない場合、sps_act_enabled_flagの値は第1値(例えば0)に誘導されることができる。
【0211】
また、
図21に示すように、現在符号化単位のレジデュアルがYCgCo色空間で符号化されたかを示すACTフラグとして、cu_act_enabled_flag(2110、2710)が使用できる。
【0212】
cu_act_enabled_flagの第1値(例えば0)は、現在符号化単位のレジデュアルがオリジナル色空間で符号化されたことを示すことができる。cu_act_enabled_flagの第2値(例えば1)は、現在符号化単位のレジデュアルがYCgCo色空間で符号化されたことを示すことができる。
【0213】
cu_act_enabled_flagがビットストリームで提供されない場合、これは第1値(例えば0)に誘導されることができる。ここで、オリジナル色空間はRGB色空間であり得る。
【0214】
ACT QPオフセットを用いた変換単位のQP誘導方法
【0215】
一実施例において、変換係数に対するスケーリングプロセスにおける量子化パラメータの誘導プロセスとQp更新プロセスが、次のように行われることができる。例えば、量子化パラメータ誘導プロセスが、次のパラメータを用いて行われることができる。
【0216】
-現在ピクチャの左上側ルマサンプルに対する現在符号化ブロックの左上側ルマサンプルの相対座標を示すルマ座標(xCb,yCb)、
【0217】
-現在符号化ブロックの幅をルマサンプル単位で表す変数cbWidth、
【0218】
-現在符号化ブロックの高さをルマサンプル単位で表す変数cbHeight
【0219】
-現在符号化ツリーノードを分割するためにシングルツリー(SINGLE_TREE)又はデュアルツリーが使用されたか否かを表し、デュアルツリーが使用される場合、ルマ成分デュアルツリー(DAUL_TREE_LUMA)なのか或いはクロマ成分デュアルツリー(DAUL_TREE_CHROMA)なのかを表す変数treeType
【0220】
本プロセスにおいて、ルマ量子化パラメータQp’Y並びにクロマ量子化パラメータQp’Cb、Qp’Cr及びQp’CbCrが誘導されることができる。
【0221】
変数ルマ位置(xQg,yQg)は、現在ピクチャの左上側サンプルに対応する現在量子化グループの左上側ルマサンプルの位置を示すことができる。ここで、水平(horizontal)位置xQg及び垂直(vertical)位置yQgは、それぞれ変数CuQgTopLeftX及び変数CuQgTopLeftYの値と同一に設定されることができる。CuQgTopLeftX及びCuQgTopLeftYは、
図28のような符号化ツリーシンタックス(Coding tree syntax)において所定の値として定義されることができる。
【0222】
ここで、現在量子化グループは、符号化ツリーブロック内の四角領域であることができ、同一のqPY_PRED値を共有することができる。その幅及び高さは、左上側ルマサンプル位置がCuQgTopLeftX及びCuQgTopLeftYにそれぞれ割り当てられる符号化ツリーノードの幅及び高さと同じであり得る。
【0223】
treeTypeがSINGLE_TREE又はDUAL_TREE_LUMAである場合、ルマ量子化パラメータ予測値qPY_PREDは、次のステップのように誘導できる。
【0224】
1.変数qPY_PREDは、次のように誘導される。
【0225】
(条件1)以下の条件のいずれか一つが真である場合、qPY_PREDの値はSliceQpYと同じ値に設定されることができる(ここで、SliceQpYは、ピクチャ内のすべてのスライスに対する量子化パラメータQpYの初期値を示し、これはビットストリームから取得できる)。そうでなければ、qPY_PREDの値は、復号化順序による直前の量子化グループの最終ルマ符号化単位のルマ量子化パラメータQpYの値に設定されることができる。
【0226】
-(条件1-1)現在量子化グループがスライスにおける最初の量子化グループである場合
【0227】
-(条件1-2)現在量子化グループがタイルにおける最初の量子化グループである場合
【0228】
-(条件1-3)現在量子化グループがタイルにおけるCTB行での最初の量子化グループであり、所定の同期化が発生する場合(例えば、entropy_coding_sync_enabled_flagの値が1である場合)
【0229】
2.変数qPY_Aの値は、次のように誘導できる。
【0230】
(条件2)以下の条件の少なくとも一つが真である場合、qPY_Aの値は、qPY_PREDの値に設定されることができる。そうでなければ、qPY_Aの値は、ルマサンプル位置(xQg-1,yQg)をカバーするルマ符号化ブロックを含む符号化単位のルマ量子化パラメータQpYの値に設定されることができる。
【0231】
-(条件2-1)サンプル位置(xCb,yCb)で識別されるブロックに対して、サンプル位置(xQg-1,yQg)で識別されるブロックが利用可能隣接ブロックでない場合、
【0232】
-(条件2-2)ルマサンプル位置(xQg-1,yQg)をカバーするルマ符号化ブロックを含むCTBが、ルマサンプル位置(xCb,yCb)における現在ルマ符号化ブロックを含むCTBと同一でない場合、例えば、以下のすべての条件が真である場合、
【0233】
-(条件2-2-1)(xQg-1)>>CtbLog2SizeYの値が(xCb)>>CtbLog2SizeYと異なる
【0234】
-(条件2-2-2)(yQg)>>CtbLog2SizeYの値が(yCb)>>CtbLog2SizeYと異なる
【0235】
3.変数qPY_Bの値は、次のように誘導できる。
【0236】
(条件3)以下の条件の少なくとも一つが真である場合、qPY_Bの値は、qPY_PREDの値に設定されることができる。そうでなければ、qPY_Bの値は、ルマサンプル位置(xQg,yQg-1)をカバーするルマ符号化ブロックを含む符号化単位のルマ量子化パラメータQpYの値に設定されることができる。
【0237】
-(条件3-1)サンプル位置(xCb,yCb)で識別されるブロックに対して、サンプル位置(xQg,yQg-1)で識別されるブロックが利用可能隣接ブロックでない場合、
【0238】
-(条件3-2)ルマサンプル位置(xQg,yQg-1)をカバーするルマ符号化ブロックを含むCTBが、ルマサンプル位置(xCb,yCb)における現在ルマ符号化ブロックを含むCTBと同一でない場合、例えば、以下のすべての条件が真である場合、
【0239】
-(条件3-2-1)(xQg)>>CtbLog2SizeYの値が(xCb)>>CtbLog2SizeYと異なる
【0240】
-(条件3-2-2)(yQg-1)>>CtbLog2SizeYの値が(yCb)>>CtbLog2SizeYと異なる
【0241】
4.ルマ量子化パラメータ予測値qPY_PREDは、次のように誘導できる。
【0242】
以下の条件がすべて真である場合、qPY_PREDは、ルマサンプル位置(xQg,yQg-1)をカバーするルマ符号化ブロックを含む符号化単位のルマ量子化パラメータQpYに設定されることができる。
【0243】
-(条件3-1)サンプル位置(xCb,yCb)で識別されるブロックに対して、サンプル位置(xQg,yQg-1)で識別されるブロックが利用可能隣接ブロックである場合
【0244】
-現在量子化グループがタイル内のCTB行における最初の量子化グループである場合
【0245】
一方、上記条件が全て真でない場合、qPY_PREDは、下記数式のように誘導できる。
【0246】
[数式3]
qPY_PRED=(qPY_A+qPY_B+1)>>1
【0247】
変数QpYは、下記数式に従って誘導できる。
【0248】
[数式4]
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffset)%(64+QpBdOffset))-QpBdOffset
【0249】
ここで、CuQpDeltaValは、符号化単位に対するルマ量子化パラメータとその予測値との差分を表す。この値はビットストリームから取得できる。QpBdOffsetは、ルマ及びクロマ量子化パラメータ範囲オフセットを表す。QpBdOffsetは、所定の定数に予め設定されるか、或いはビットストリームから取得され得る。例えば、QpBdOffsetは、ルマ又はクロマサンプルのビットデプスを示すシンタックス要素の値に所定の定数を掛けることにより計算できる。ルマ量子化パラメータQp’Yは、下記数式に従って誘導できる。
【0250】
[数式5]
Qp′Y=QpY+QpBdOffset
【0251】
クロマ配列のタイプを表す変数ChromaArrayTypeの値が第1値(例えば0)ではなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAである場合、以下の処理が行われることができる。
【0252】
-treeTypeの値がDUAL_TREE_CHROMAである場合、変数QpYの値は、ルマサンプル位置(xCb+cbWidth/2、yCb+cbHeight/2)をカバーするルマ符号化単位のルマ量子化パラメータQpYと同じ値に設定されることができる。
【0253】
-変数qPCb、qPCr及びqPCbCrは、下記数式のように誘導できる。
【0254】
[数式6]
qPChroma=Clip3(-QpBdOffset,63,QpY)
qPCb=ChromaQpTable[0][qPChroma]
qPCr=ChromaQpTable[1][qPChroma]
qPCbCr=ChromaQpTable[2][qPChroma]
【0255】
Cb及びCr成分のためのクロマ量子化パラメータQp′Cb及びQp′CrとCb-Cr共同符号化(joint Cb-Cr coding)のためのクロマ量子化パラメータQp′CbCrは、下記数式のように誘導できる。
【0256】
[数式7]
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset
【0257】
上記数式において、pps_cb_qp_offset、pps_cr_qp_offsetは、Qp’Cb及びQp’Crを誘導するために使用されるオフセットであり、ピクチャパラメータセットに対するビットストリームから取得されることができる。slice_cb_qp_offset及びslice_cr_qp_offsetは、Qp’CbとQp’Crを誘導するために使用されるオフセットであり、スライスヘッダーに対するビットストリームから取得されることができる。CuQpOffsetCb及びCuQpOffsetCrは、Qp’Cb及びQp’Crを誘導するために使用されるオフセットであり、変換単位に対するビットストリームから取得されることができる。
【0258】
また、例えば、変換係数に対する逆量子化プロセスが、以下のパラメータを用いて行われることができる。
【0259】
-現在ピクチャの左上側ルマサンプルに対する現在ルマ変換ブロックの左上側サンプルの相対座標を表すルマ座標(xTbY,yTbY)
【0260】
-変換ブロックの幅を表す変数nTbW
【0261】
-変換ブロックの高さを表す変数nTbH
【0262】
-現在ブロックの色成分を表す変数cIdx
【0263】
本プロセスの出力は、スケールされた変換係数の配列dであり得る。ここで、配列dの大きさは(nTbW)×(nTbH)であり得る。これを構成する個別要素は、d[x][y]で識別されることができる。
【0264】
このために、量子化パラメータqPは、次のように誘導できる。cIdxの値が0である場合、qPは下記数式のように誘導できる。
【0265】
[数式8]
qP=Qp′Y
【0266】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、下記数式のように誘導できる。
【0267】
[数式9]
qP=Qp′CbCr
【0268】
そうでなければ、cIdxの値が1である場合、qPは下記数式のように誘導できる。
【0269】
[数式10]
qP=Qp′Cb
【0270】
そうでなければ、cIdxの値が2である場合、qPは下記数式のように誘導できる。
【0271】
[数式11]
qP=Qp′Cr
【0272】
その後、量子化パラメータqPを、次のように更新できる。そして、変数rectNonTsFlag及びbdShiftは、次のように誘導できる。例えば、transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合(例えば、現在変換ブロックに対して変換がスキップされない場合)、下記数式のように誘導できる。
【0273】
[数式12]
qP=qP-(cu_act_enabled_flag[xTbY][yTbY]5:0)
rectNonTsFlag=0
bdShift=10
【0274】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合(例えば、現在変換ブロックに対して変換がスキップされる場合)、下記数式のように誘導できる。
【0275】
[数式13]
qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0)
rectNonTsFlag=((((Log2(nTbW)+Log2(nTbH))&1)==1
bdShift=BitDepth+(rectNonTsFlag?1:0)+((Log2(nTbW)+Log2(nTbH))/2)-+pic_dep_quant_enabled_flag
【0276】
ここで、QpPrimeTsMinは、変換スキップモードが適用される場合に許容される最小量子化パラメータ値を表すことができる。これは、所定の定数に決定されるか、或いはこれに関するビットストリームのシンタックス要素から誘導されることができる。
【0277】
ここで、サフィックスY、Cb、Crは、RGB色モデルにおけるG、B、R色成分を表すか、或いはYCgCo色モデルにおけるY、Cg、Co色成分を表すことができる。
【0278】
BDPCM(Block Difference Pulse Code Modulation)の概要
【0279】
一実施例による画像符号化装置と画像復号化装置は、レジデュアル信号の差分符号化を行うことができる。例えば、画像符号化装置は、現在ブロックのレジデュアル信号に対して予測信号を減算することにより、レジデュアル信号を符号化することができ、画像復号化装置は、現在ブロックのレジデュアル信号に予測信号を加算することにより、レジデュアル信号を復号化することができる。一実施例による画像符号化装置と画像復号化装置は、後述するBDPCMを適用することにより、レジデュアル信号の差分符号化を行うことができる。
【0280】
本開示によるBDPCMは、量子化されたレジデュアルドメイン(quantized redisual domain)で行われることができる。量子化されたレジデュアルドメインは、量子化されたレジデュアル信号(又は量子化されたレジデュアル係数)を含むことができ、BDPCMを適用する場合、量子化されたレジデュアル信号に対する変換はスキップされることができる。例えば、BDPCMを適用する場合、レジデュアル信号に対して変換がスキップされ、量子化が適用されることができる。或いは、量子化されたレジデュアルドメインは、量子化された変換係数を含むことができる。
【0281】
BDPCMが適用される一実施例において、画像符号化装置は、イントラ予測モードで予測された現在ブロックのレジデュアルブロックを誘導し、レジデュアルブロックを量子化してレジデュアルブロックを誘導することができる。画像符号化装置は、現在ブロックに対してレジデュアル信号の差分符号化モードが行われる場合、レジデュアルブロックに対して差分符号化を行うことにより、修正されたレジデュアルブロックを誘導することができる。そして、画像符号化装置は、レジデュアル信号の差分符号化モードを示す差分符号化モード情報と、前記修正されたレジデュアルブロックとを符号化してビットストリームを生成することができる。
【0282】
より具体的には、現在ブロックにBDPCMが適用される場合、現在ブロックの予測されたサンプルを含む予測されたブロック(予測ブロック)は、イントラ予測によって生成されることができる。このとき、イントラ予測を行うためのイントラ予測モードは、ビットストリームを介してシグナリングされることもでき、後述するBDPCMの予測方向に基づいて誘導されることもできる。また、このとき、イントラ予測モードは、垂直予測方向モード又は水平予測方向モードのうちのいずれか一つに決定されることができる。例えば、BDPCMの予測方向が水平方向である場合、イントラ予測モードは、水平予測方向モードと決定され、現在ブロックの予測ブロックは、水平方向のイントラ予測によって生成されることができる。或いは、BDPCMの予測方向が垂直方向である場合、イントラ予測モードは垂直予測方向モードと決定され、現在ブロックの予測ブロックは垂直方向のイントラ予測によって生成されることができる。水平方向のイントラ予測が適用される場合、現在ブロックの左側に隣接するピクセルの値が現在ブロックの当該行(row)に含まれたサンプルの予測されたサンプル値と決定されることができる。垂直方向のイントラ予測が適用される場合、現在ブロックの上側に隣接するピクセルの値が、現在ブロックの当該列(column)に含まれたサンプルの予測サンプル値と決定されることができる。現在ブロックにBDPCMが適用される場合、現在ブロックの予測ブロックを生成する方法は、画像符号化装置及び画像復号化装置で同様に行われることができる。
【0283】
現在ブロックにBDPCMが適用される場合、画像符号化装置は、現在ブロックから前記予測ブロックを減算することにより、現在ブロックのレジデュアルサンプルを含むレジデュアルブロックを生成することができる。画像符号化装置は、前記レジデュアルブロックを量子化した後、量子化レジデュアルサンプルと当該量子化レジデュアルサンプルの予測子(predictor)との差分値(difrence又はdelta)を符号化することができる。画像復号化装置は、ビットストリームから復元された差異値と予測子に基づいて現在ブロックの量子化レジデュアルサンプルを取得することにより、現在ブロックの量子化レジデュアルブロックを生成することができる。その後、画像復号化装置は、量子化レジデュアルブロックを逆量子化した後、前記予測ブロックに加算することにより、現在ブロックを復元することができる。
【0284】
図29は本開示によってBDPCMのレジデュアルサンプルを符号化する方法を説明するための図である。
図29のレジデュアルブロック(residual block)は、画像符号化装置が現在ブロックから予測ブロックを減算することにより生成できる。
図29の量子化レジデュアルブロック(quantized residual block)は、画像符号化装置が前記レジデュアルブロックを量子化することにより生成できる。
図29において、r
i,jは現在ブロック内の(i,j)座標のレジデュアルサンプルの値を示す。現在ブロックのサイズがM×Nであるとき、i値は0以上M-1以下であり得る。また、j値は0以上N-1以下であり得る。例えば、レジデュアルは、原本ブロックと予測ブロックとの差分を示すことができる。例えば、r
i,jは、現在ブロック内の(i,j)座標の原本サンプルの値から予測サンプルの値を差し引くことにより導出できる。例えば、r
i,jは、上側又は左側境界サンプルからのフィルタリングされていないサンプルを用いた、左側隣接ピクセルの値を、予測ブロックを横切るラインに沿ってコピーする水平イントラ予測、又は上側隣接ラインを予測ブロックの個別ラインにコピーする垂直イントラ予測を行った後の予測レジデュアルであり得る。
【0285】
図29において、Q(r
i,j)は、現在ブロック内の(i,j)座標の量子化レジデュアルサンプルの値を示す。例えば、Q(r
i,j)はr
i,jの量子化された値を示すことができる。
【0286】
BDPCMの予測は、
図29の量子化レジデュアルサンプルに対して行われ、修正された量子化レジデュアルサンプル(modified quantized residual samples)r’を含むM×Nサイズの修正された量子化レジデュアルブロック(modified quantized residual block)R’が生成されることができる。
【0287】
BDPCMの予測方向が水平方向であるとき、現在ブロック内の(i,j)座標の修正された量子化レジデュアルサンプルの値(r’i,j)は、下記数式のように計算できる。
【0288】
【0289】
前記数式14のように、BDPCMの予測方向が水平方向であるとき、(0,j)座標のr’0,j値は、量子化レジデュアルサンプルの値Q(r0,j)がそのまま割り当てられる。その他の(i,j)座標のr’i,j値は、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)と(i-1,j)座標の量子化レジデュアルサンプルの値Q(ri-1,j)との差異値として誘導される。つまり、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)を符号化する代わりに、(i-1,j)座標の量子化レジデュアルサンプルの値Q(ri-1,j)を予測値として用いて計算された差異値を、修正された量子化レジデュアルサンプル値(r’i,j)として誘導した後、r’i,j値を符号化する。
【0290】
BDPCMの予測方向が垂直方向であるとき、現在ブロック内の(i,j)座標の修正された量子化レジデュアルサンプルの値(r’i,j)は、下記数式のように計算できる。
【0291】
【0292】
前記数式15のように、BDPCMの予測方向が垂直方向であるとき、(i,0)座標のr’i,0値は、量子化レジデュアルサンプルの値Q(ri,0)がそのまま割り当てられる。その他の(i,j)座標のr’i,j値は、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)と(i,j-1)座標の量子化レジデュアルサンプルの値Q(ri,j-1)との差異値として誘導される。つまり、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)を符号化する代わりに、(i,j-1)座標の量子化レジデュアルサンプルの値Q(ri,j-1)を予測値として用いて計算された差異値を、修正された量子化レジデュアルサンプル値(r’i,j)として誘導した後、r’i,j値を符号化する。
【0293】
前述したように、隣接する量子化レジデュアルサンプル値を予測値として用いて、現在量子化レジデュアルサンプル値を修正する過程を、BDPCM予測と呼ぶことができる。
【0294】
最後に、画像符号化装置は、修正された量子化レジデュアルサンプルを含む修正された量子化レジデュアルブロックを符号化して画像復号化装置に伝送することができる。このとき、上述したように、修正された量子化レジデュアルブロックに対する変換は行われない。
【0295】
図30は、本開示のBDPCMを行って生成された、修正された量子化レジデュアルブロックを示す。
【0296】
図30において、Horizontal BDPCMは、BDPCMの予測方向が水平方向であるとき、前記数式14に従って生成された、修正された量子化レジデュアルブロックを示す。また、Vertical BDPCMは、BDPCMの予測方向が垂直方向であるとき、前記数式15に従って生成された、修正された量子化レジデュアルブロックを示す。
【0297】
図31は、画像符号化装置においてBDPCMを適用して現在ブロックを符号化する手順を示すフローチャートである。
【0298】
まず、符号化対象ブロックである現在ブロックが入力されると(S3110)、現在ブロックに対して予測を行って予測ブロックを生成することができる(S3120)。ステップS3120の予測ブロックは、イントラ予測ブロックであり、イントラ予測モードは、上述したように決定できる。ステップS3120で生成された予測ブロックに基づいて現在ブロックのレジデュアルブロックを生成することができる(S3130)。例えば、画像符号化装置は、現在ブロック(原本サンプルの値)から予測ブロック(予測されたサンプルの値)を差し引くことにより、レジデュアルブロック(レジデュアルサンプルの値)を生成することができる。例えば、ステップS3130の実行によって、
図29のレジデュアルブロックが生成されることができる。ステップS3130で生成されたレジデュアルブロックに対して量子化を行い(S3140)、量子化レジデュアルブロックが生成され、量子化レジデュアルブロックに対してBDPCM予測が行われることができる(S3150)。ステップS3140の実行結果として生成された量子化レジデュアルブロックは、
図29の量子化レジデュアルブロックであり、ステップS3150のBDPCM予測結果、予測方向に応じて
図30の修正された量子化レジデュアルブロックが生成されることができる。ステップS3150のBDPCM予測は、
図29及び
図30を参照して説明したので、具体的な説明は省略する。その後、画像符号化装置は、修正された量子化レジデュアルブロックを符号化して(S3160)ビットストリームを生成することができる。このとき、修正された量子化レジデュアルブロックに対する変換はスキップされることができる。
【0299】
図29乃至
図31を参照して説明された画像符号化装置におけるBDPCM動作は、画像復号化装置で逆に行われることができる。
【0300】
図32は、画像復号化装置においてBDPCMを適用して現在ブロックを復元する手順を示すフローチャートである。
【0301】
画像復号化装置は、ビットストリームから現在ブロックの復元に必要な情報(画像情報)を取得することができる(S3210)。現在ブロックの復元に必要な情報は、現在ブロックの予測に関する情報(予測情報)、現在ブロックのレジデュアルに関する情報(レジデュアル情報)などを含むことができる。画像復号化装置は、現在ブロックに対する情報に基づいて現在ブロックに対して予測を行い、予測ブロックを生成することができる(S3220)。現在ブロックに対する予測はイントラ予測であり、具体的な説明は
図31を参照して説明したのと同様である。
図32において、現在ブロックに対する予測ブロックを生成するステップ(S3220)は、現在ブロックのレジデュアルブロックを生成するステップS3230乃至S3250に先行して行われるものと図示された。しかし、これに限定されず、現在ブロックのレジデュアルブロックが生成された後に現在ブロックの予測ブロックが生成されることもできる。或いは、現在ブロックのレジデュアルブロックと現在ブロックの予測ブロックは同時に生成されることもできる。
【0302】
画像復号化装置は、ビットストリームから現在ブロックのレジデュアル情報をパーシングすることにより、現在ブロックのレジデュアルブロックを生成することができる(S3230)。ステップS3230で生成されたレジデュアルブロックは、
図30に示された、修正された量子化レジデュアルブロックであり得る。
【0303】
画像復号化装置は、
図30の修正された量子化レジデュアルブロックに対してBDPCM予測を行い(S3240)、
図29の量子化レジデュアルブロックを生成することができる。ステップS3240のBDPCM予測は、
図30の修正された量子化レジデュアルブロックから
図29の量子化レジデュアルブロックを生成する手順であるので、画像符号化装置で行われるステップS3150の逆過程に対応することができる。例えば、画像復号化装置は、ビットストリームから取得された差分符号化モード情報(例えば、bdpcm_flag)が、BDPCMが適用されることによりレジデュアル係数の差分符号化が行われる差分符号化モードを示せば、レジデュアルブロックに対して差分符号化を行うことにより、修正されたレジデュアルブロックを誘導することができる。画像復号化装置は、修正対象レジデュアル係数と予測レジデュアル係数を用いて、レジデュアルブロック内のレジデュアル係数のうちの少なくとも一つの修正対象レジデュアル係数を修正することができる。前記予測レジデュアル係数は、前記ビットストリームから取得された差分符号化方向情報(例えば、bdpcm_dir_flag)が示す予測方向に基づいて決定されることができる。差分符号化方向情報は、垂直方向及び水平方向のうちのいずれか一方向を示すことができる。画像復号化装置は、前記修正対象レジデュアル係数と前記予測レジデュアル係数とを加えた値を、前記修正対象レジデュアル係数の位置に割り当てることができる。ここで、予測レジデュアル係数は、前記予測方向による順序上、前記修正対象レジデュアル係数の直前に隣接する係数であり得る。
【0304】
以下、画像復号化装置で行われるステップS3240のBDPCM予測について、より詳細に説明する。復号化装置は、先立って符号化装置が行った計算を逆に行うことにより、量子化レジデュアルサンプルQ(ri,j)を計算することができる。例えば、BDPCMの予測方向が水平方向であるとき、画像復号化装置は、数式16を用いて、修正された量子化レジデュアルブロックから量子化レジデュアルブロックを生成することができる。
【0305】
【0306】
数式16に規定されているように、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)は、(0,j)座標から(i,j)座標までの修正された量子化レジデュアルサンプルの値を合算することにより計算できる。
【0307】
或いは、前記数式16の代わりに数式17を用いて(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)を計算することができる。
【0308】
【0309】
前記数式17は、数式14に対応する逆過程である。前記数式17によれば、(0,j)座標の量子化レジデュアルサンプルの値Q(r0,j)は、(0,j)座標の修正された量子化レジデュアルサンプルの値r’0,jとして誘導される。その他の(i,j)座標のQ(ri,j)は、(i,j)座標の修正された量子化レジデュアルサンプルの値r’i,jと(i-1,j)座標の量子化レジデュアルサンプルの値Q(ri-1,j)との和として誘導される。すなわち、(i-1,j)座標の量子化レジデュアルサンプル値Q(ri-1,j)を予測値として用いて差異値r’i,jを合算することにより、量子化レジデュアルサンプル値Q(ri,j)が誘導されることができる。
【0310】
BDPCMの予測方向が垂直方向であるとき、画像復号化装置は、数式18を用いて、修正された量子化レジデュアルブロックから量子化レジデュアルブロックを生成することができる。
【0311】
【0312】
数式18に規定されているように、(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)は、(i,0)座標から(i,j)座標までの修正された量子化レジデュアルサンプルの値を合算することにより計算できる。
【0313】
或いは、前記数式18の代わりに数式19を用いて(i,j)座標の量子化レジデュアルサンプルの値Q(ri,j)を計算することができる。
【0314】
【0315】
前記数式19は、数式15に対応する逆過程である。前記数式19によれば、(i,0)座標の量子化レジデュアルサンプルの値Q(ri,0)は、(i,0)座標の修正された量子化レジデュアルサンプルの値r’i,0として誘導される。その他の(i,j)座標のQ(ri,j)は、(i,j)座標の修正された量子化レジデュアルサンプルの値r’i,j、と(i,j-1)座標の量子化レジデュアルサンプルの値Q(ri,j-1)との和として誘導される。すなわち、(i,j-1)座標の量子化レジデュアルサンプルの値Q(ri,j-1)を予測値として用いて差異値r’i,jを合算することにより、量子化レジデュアルサンプル値Q(ri,j)が誘導されることができる。
【0316】
上述した方法によってステップS3240を行い、量子化レジデュアルサンプルで構成された量子化レジデュアルブロックが生成されると、画像復号化装置は、量子化レジデュアルブロックに対して逆量子化を行うことにより(S3250)、現在ブロックのレジデュアルブロックを生成することができる。BDPCMが適用される場合、前述したように現在ブロックに対する変換はスキップされるので、逆量子化レジデュアルブロックに対する逆変換はスキップされることができる。
【0317】
その後、画像復号化装置は、ステップS3220で生成された予測ブロックと、ステップS3250で生成されたレジデュアルブロックとに基づいて現在ブロックを復元することができる(S3260)。例えば、画像復号化装置は、予測ブロック(予測されたサンプルの値)とレジデュアルブロック(レジデュアルサンプルの値)とを加算することにより、現在ブロック(復元サンプルの値)を復元することができる。例えば、イントラブロック予測値に、逆量子化された量子化サンプルQ-1(Q(ri,j))が加算されることにより、復元されたサンプル値を生成することができる。現在ブロックにBDPCMが適用されるか否かを指示する差分符号化モード情報がビットストリームを介してグナリングされることができる。また、現在ブロックにBDPCMが適用される場合、BDPCMの予測方向を指示する差分符号化方向情報がビットストリームを介してシグナリングされることができる。現在ブロックにBDPCMが適用されない場合、前記差分符号化方向情報はシグナリングされない可能性がある。
【0318】
図33乃至
図35はBDPCMに関する情報をシグナリングするためのシンタックスを概略的に示す図である。
【0319】
図33はBDPCM情報をシグナリングするための一実施例によるシーケンスパラメータセットのシンタックスを示す図である。一実施例において、時間的ID(TemporalId)として0を有する少なくとも一つのアクセスユニット(access unit、AU)に含まれるか、或いは外部手段を介して提供された、すべてのSPS RBSPは、復号化過程でそれが参照される以前に使用できるように設定できる。そして、SPS RBSPを含むSPS NALユニットは、これを参照するPPS NALユニットのnuh_layer_idと同一のnuh_layer_idを持つように設定されることができる。CVSにおいて、特定のsps_seq_parameter_set_id値を持つすべてのSPS NALユニットは、同一のコンテンツを持つように設定できる。
図33のseq_parameter_set_rbsp()シンタックスには、上述したsps_transform_skip_enable_flagと、後述するsps_bdpcm_enabled_flagが開示されている。
【0320】
シンタックス要素sps_bdpcm_enabled_flagは、イントラコーディングユニットに対してintra_bdpcm_flagがCUシンタックスで提供されるか否かを示すことができる。例えば、sps_bdpcm_enabled_flagの第1値(例えば0)は、イントラコーディングユニットに対してintra_bdpcm_flagがCUシンタックスで提供されないことを示すことができる。sps_bdpcm_enabled_flagの第2値(例えば1)は、イントラコーディングユニットに対して、intra_bdpcm_flagがCUシンタックスで提供できることを示すことができる。一方、sps_bdpcm_enabled_flagが提供されない場合、sps_bdpcm_enabled_flagの値は第1値(例えば0)に設定されることができる。
【0321】
図34はBDPCMに対する制限が適用されるか否かをシグナリングするシンタックスの一実施例を示す図である。一実施例において、符号化/復号化過程における所定の制限条件が、general_constraint_info()シンタックスを用いてシグナリングされることができる。
図34のシンタックスを用いて、上述したsps_bdpcm_enabled_flagの値が0に設定されるべきであるかを示すシンタックス要素no_bdpcm_constraint_flagがシグナリングされることができる。例えば、no_bdpcm_constraint_flagの第1値(例えば0)は、このような制限が適用されないことを示すことができる。no_bdpcm_constraint_flagの値が第2値(例えば1)である場合、sps_bdpcm_enabled_flagの値は第1値(例えば0)に強制できる。
【0322】
図35は符号化ユニットに対してBDPCMに関する情報をシグナリングするcoding unit()シンタックスの一実施例を示す図である。
図35に示すように、coding_unit()シンタックスを用いて、シンタックス要素intra_bdpcm_flagとintra_bdpcm_dir_flagがシグナリングされることができる。シンタックス要素はintra_bdpcm_flagは、(x0,y0)に位置する現在ルマ符号化ブロックにBDPCMが適用されるか否かを示すことができる。
【0323】
例えば、intra_bdpcm_flagの第1値(例えば0)は、現在ルマ符号化ブロックにBDPCMが適用されないことを示すことができる。intra_bdpcm_flagの第2値(例えば1)は、現在ルマ符号化ブロックにBDPCMが適用されることを示すことができる。intra_bdpcm_flagは、BDPCMが適用されることを示すことにより、変換がスキップされるかと共に、イントラルマ予測モードが後述のintra_bdpcm_dir_flagによって行われるか否かを示すことができる。
【0324】
一方、上述した変数BdpcmFlag[x][y]の値は、x=x0..x0+cbWidth-1及びy=y0..y0+cbHeight-1に対して、intra_bdpcm_flagの値に設定されることができる。
【0325】
シンタックス要素intra_bdpcm_dir_flagは、BDPCMの予測方向を示すことができる。例えば、intra_bdpcm_dir_flagの第1値(例えば0)は、BDPCM予測方向が水平方向であることを示すことができる。intra_bdpcm_dir_flagの第2値(例えば1)は、BDPCM予測方向が垂直方向であることを示すことができる。
【0326】
一方、変数BdpcmDir[x][y]の値は、x=x0..x0+cbWidth-1及びy=y0..y0+cbHeight-1に対して、intra_bdpcm_dir_flagの値に設定されることができる。
【0327】
クロマブロックに対するイントラ予測
【0328】
現在ブロックにイントラ予測が行われる場合、現在ブロックのルマ成分ブロック(ルマブロック)に対する予測、及びクロマ成分ロック(クロマブロック)に対する予測が行われることができ、この場合、クロマブロックに対するイントラ予測モードは、ルマブロックに対するイントラ予測モードとは別個に設定されることができる。
【0329】
例えば、クロマブロックに対するイントラ予測モードは、イントラクロマ予測モード情報に基づいて指示されることができ、前記イントラクロマ予測モード情報は、intra_chroma_pred_modeシンタックス要素の形態でシグナリングされることができる。一例として、前記イントラクロマ予測モード情報は、Planarモード、DCモード、垂直(vertical)モード、水平(horizontal)モード、DM(Derived Mode)、CCLM(Cross-component linear model)モードのうちのいずれか一つを指すことができる。ここで、Planarモードは0番イントラ予測モード、前記DCモードは1番イントラ予測モード、前記垂直モードは26番イントラ予測モード、前記水平モードは10番イントラ予測モードをそれぞれ示すことができる。DMはdirect modeとも呼ばれることができる。CCLMはLM(linear model)とも呼ばれることができる。CCLMはL_CCLM、T_CCLM、LT_CCLMのうちのいずれか一つを含むことができる。
【0330】
一方、DMとCCLMは、ルマブロックの情報を用いてクロマブロックを予測する従属的なイントラ予測モードである。前記DMは、前記ルマ成分に対するイントラ予測モードと同一のイントラ予測モードが前記クロマ成分に対するイントラ予測モードとして適用されるモードを示すことができる。また、前記CCLMは、クロマブロックに対する予測ブロックを生成する過程でルマブロックの復元されたサンプルをサブサンプリングした後、サブサンプリングされたサンプルにCCLMパラメータα及びβを適用して導出されたサンプルを前記クロマブロックの予測サンプルとして使用するイントラ予測モードを示すことができる。
【0331】
CCLM(Cross-component linear model)モードの概要
【0332】
前述したように、クロマブロックにはCCLMモードを適用できる。CCLMモードは、ルマブロックと、前記ルマブロックに対応するクロマブロックとの相関性(correlation)を用いたイントラ予測モードであり、ルマブロックの周辺サンプル及びクロマブロックの周辺サンプルに基づいて線形モデルを導出して行われる。そして、導出された線形モデル及び前記ルマブロックの復元サンプルに基づいて、前記クロマブロックの予測サンプルが導出されることができる。
【0333】
具体的には、現在クロマブロックにCCLMモードが適用される場合、現在クロマブロックのイントラ予測に使用される周辺サンプル及び現在ルマブロックのイントラ予測に使用される周辺サンプルに基づいて線形モデルに対するパラメータが導出されることができる。例えば、CCLMのための線形モデルは、下記数式に基づいて表すことができる。
【0334】
【0335】
ここで、predc(i,j)は、現在CU内の前記現在クロマブロックの(i,j)座標の予測サンプルを示すことができる。recL’(i,j)は、前記CU内の前記現在ルマブロックの(i,j)座標の復元サンプルを示すことができる。例えば、前記recL’(i,j)は、前記現在ルマブロックのダウンサンプリング(down-sanmpled)された復元サンプルを示すができる。線形モデル係数α及びβは、シグナリングされることもできるが、周辺サンプルから誘導されることもできる。
【0336】
レジデュアルの共同符号化(ジョイントCbCr)
【0337】
一実施例による符号化/復号化過程で、クロマレジデュアルは共に符号化/復号化されることができる。これをレジデュアルの共同符号化と呼ぶことができ、ジョイントCbCr(Joint CbCr)と呼ぶこともできる。CbCrの共同符号化モードの適用(活性化)如何は、変換単位レベルでシグナリングされる共同符号化モードシグナリングフラグであるtu_joint_cbcr_residual_flagによってシグナリングされることができる。そして、選択された符号化モードは、クロマCBFによって誘導されることができる。フラグtu_joint_cbcr_residual_flagは、変換単位に対する少なくとも一つのクロマCBFの値が1である場合に存在することができる。正規クロマレジデュアル符号化モードに対してシグナリングされる通常のクロマQPオフセット値とCbCr共同符号化モードのためのクロマQPオフセット値との差分を示すためのクロマQPオフセット値が、PPS又はスライスヘッダーを介してシグナリングされることができる。このようなQPオフセット値は、共同クロマレジデュアル符号化モードを用いるブロックに対するクロマQP値を誘導するために使用できる。
【0338】
対応する共同クロマ符号化モードで、下記表におけるモード2が変換単位に対して活性化されている場合、当該変換単位の量子化及び復号化を行う途中でそのクロマQPオフセットが対象ルマ誘導クロマQP(applied luma-derived chroma QP)に加えられることができる。
【0339】
下記表におけるモード1及び3のような他のモードに対して、クロマQPは、通常のCb又はCrブロックに対して取得される方式で誘導されることができる。このような変換ブロックからのクロマレジデュアル(resCb及びresCr)の復元プロセスは、下記表によって選択できる。このモードが活性化される場合、一つの単独共同クロマレジデュアルブロック(下記表におけるresJointC[x][y])がシグナリングされ、CbのためのレジデュアルブロックresCb及びCrのためのレジデュアルブロックresCrがtu_cbf_cb、tu_cbf_cr、及びスライスヘッダーに記載された符号値であるCSignのような情報を考慮して誘導されることができる。
【0340】
符号化装置において、共同クロマ成分は次のように誘導できる。共同符号化モードに応じて、resJointC{1,2}を次の順序に従って生成できる。モードが2である場合(single residual with reconstruction Cb=C、Cr=CSign*C)、共同レジデュアルは下記数式に従って決定できる。
【0341】
[数式21]
resJointC[x][y]=(resCb[x][y]+CSign*resCr[x][y])/2。
【0342】
そうではなく、モードが1である場合(single residual with reconstruction Cb=C、Cr=(CSign*C)/2)、共同レジデュアルは、下記数式に従って決定できる。
【0343】
[数式22]
resJointC[x][y]=(4*resCb[x][y]+2*CSign*resCr[x][y])/5。
【0344】
そうではなく、モードが3である場合(single residual with reconstruction Cr=C、Cb=(CSign*C)/2)、共同レジデュアルは、下記数式に従って決定できる。
【0345】
[数式23]
resJointC[x][y]=(4*resCr[x][y]+2*CSign*resCb[x][y])/5。
【0346】
【0347】
上記表は、クロマレジデュアルの復元を示す。CSignは、スライスヘッダーで指定された符号値+1又は-1を示す。resJointC[][]は、伝送されたレジデュアルを示す。上記表におけるモードは、後述するTuCResModeを示す。上記表における3つの共同クロマ符号化モードは、Iスライスに対してのみ支援できる。P及びBスライスに対して、モード2のみ支援できる。したがって、P及びBスライスに対して、シンタックス要素tu_joint_cbcr_residual_flagは、2つのクロマcbf(例えば、tu_cbf_cb及びtu_cbf_cr)の値がいずれも1である場合にのみ提供できる。一方、tu_cbf_luma及びtu_cbf_cbのコンテキストモデリングにおいて変換デプスが除去できる。
【0348】
実施例1:ACT Qp_offsetを用いたQP更新方案
【0349】
前述したように、ACTを適用するためのQPの更新が行われることができる。前述したQPの更新は、様々な問題点を持っている。例えば、前述した方式を使用する場合、個別色成分ごとに異なるACT Qpオフセットを設定することができない。さらに、誘導されたqP値は負の値を有することもできる。これにより、以下の実施例では、色成分値のACT QPオフセットの値に基づいて誘導されたQp値にクリッピングを適用する方法を説明する。
【0350】
一実施例において、量子化パラメータqPは、次のように誘導できる。
【0351】
まず、cIdxの値が0である場合、qP及びACT Qpオフセットは、下記数式のように誘導できる。
【0352】
[数式24]
qP=Qp’Y
ActQpOffset=5
【0353】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0354】
[数式25]
qP=Qp’CbCr
ActQpOffset=5
【0355】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0356】
[数式26]
qP=Qp’Cb
ActQpOffset=3
【0357】
量子化パラメータqPは、次のように更新できる。
【0358】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0359】
[数式27]
qP=Max(0,qP-(cu_act_enabled_flag[xTbY][yTbY]ActQpOffset:0))
【0360】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0361】
[数式28]
qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0362】
他の実施例において、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように0の代わりにQpPrimeTsMinの値を用いてクリッピングされることができる。
【0363】
[数式29]
qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0364】
一方、他の一実施例において、量子化パラメータqPは、次のように誘導できる。
【0365】
まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0366】
[数式30]
qP=Qp’Y
ActQpOffset=5
【0367】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0368】
[数式31]
qP=Qp’CbCr
ActQpOffset=5
【0369】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0370】
[数式32]
qP=Qp’Cb
ActQpOffset=5
【0371】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0372】
[数式33]
qP=Qp’Cr
ActQpOffset=3
【0373】
量子化パラメータqPは、次のように更新できる。
【0374】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0375】
[数式34]
qP=Max(0,qP-(cu_act_enabled_flag[xTbY][yTbY]ActQpOffset:0))
【0376】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0377】
[数式35]
qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0378】
他の実施例において、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは、下記数式のように、0の代わりにQpPrimeTsMinの値を用いてクリッピングできる。
【0379】
[数式36]
qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0380】
一方、別の一実施例において、量子化パラメータqPは、次のように誘導できる。
【0381】
まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0382】
[数式37]
qP=Qp′Y
ActQpOffset=-5
【0383】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0384】
[数式38]
qP=Qp′CbCr
ActQpOffset=-5
【0385】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0386】
[数式39]
qP=Qp′Cb
ActQpOffset=-5
【0387】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0388】
[数式40]
qP=Qp′Cr
ActQpOffset=-3
【0389】
量子化パラメータqPは、次のように更新できる。
【0390】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0391】
[数式41]
qP=Max(0,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0392】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0393】
[数式42]
qP=Max(0,Max(QpPrimeTsMin,qP)+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0394】
一方、他の実施例において、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは、下記数式のように、0の代わりにQpPrimeTsMinの値を用いてクリッピングできる。
【0395】
[数式43]
qP=Max(QpPrimeTsMin,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0396】
前述した説明において、Y、Cb、Crは3つの色成分を示すことができる。例えば、ACT変換において、YはC0に対応することができる。CbはC1又はCgに対応することができる。そして、CrはC2又はCoに対応することができる。
【0397】
また、前記3つの色成分に対するACTQpOffsetの値-5、-5、-3は、他の値又は他の変数で置き換えられてもよい。
【0398】
実施例2:ACTに対するQPオフセット調整分のシグナリング
【0399】
前述した実施例において、ACT QPオフセット調整は、Y、Cg、Co成分に対して-5、-5及び-3に固定されている。本実施例において、ACT QP調整オフセットにさらに多くの柔軟性を提供するために、ACT QPオフセットをシグナリングする方法について説明する。ACT QPオフセットは、PPS内のパラメータとしてシグナリングされることができる。
【0400】
一実施例において、qp_offsetは、
図36のシンタックステーブルに従ってシグナリングできる。これに対するシンタックス要素は、次の通りである。
【0401】
シンタックス要素pps_act_qp_offsets_present_flagは、ACT QPオフセットに関するシンタックス要素がPPS内に存在するか否かを示すことができる。例えば、pps_act_qp_offsets_present_flagは、後述するシンタックス要素pps_act_y_qp_offset、pps_act_cb_qp_offset及びpps_act_cr_qp_offsetがPPSとしてシグナリングされるか否かを示すことができる。
【0402】
例えば、pps_act_qp_offsets_present_flagの第1値(例えば0)は、pps_act_y_qp_offset、pps_act_cb_qp_offset及びpps_act_cr_qp_offsetがPPSシンタックステーブルを介してシグナリングされないことを示すことができる。
【0403】
pps_act_qp_offsets_present_flagの第2値(例えば1)は、pps_act_y_qp_offset、pps_act_cb_qp_offset及びpps_act_cr_qp_offsetがPPSシンタックステーブルを介してシグナリングされることを示すことができる。
【0404】
pps_act_qp_offsets_present_flagがビットストリームから提供されない場合、pps_act_qp_offsets_present_flagは第1値(例えば0)に誘導されることができる。例えば、ACTが適用できることを示すフラグ(例えば、SPSでシグナリングされるsps_act_enabled_flag)が、ACTが適用されないことを示す第1値(例えば0)を有する場合、pps_act_qp_offsets_present_flagは第1値(例えば0)を有するように強制できる。
【0405】
シンタックス要素pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5及びpps_act_cr_qp_offset_plus3は、シンタックス要素cu_act_enabled_flagの値が現在符号化単位に対してACTが適用されることを示す第2値(例えば1)である場合、ルマ、Cb、Cr成分のそれぞれに対する量子化パラメータ値qPに適用されるオフセットを決定するために使用できる。pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5及びpps_act_cr_qp_offset_plus3の値がビットストリームに存在しない場合、各値は0に設定できる。
【0406】
前記シンタックス要素によって、変数PpsActQpOffsetYの値はpps_act_y_qp_offset_plus5-5と決定されることができる。変数PpsActQpOffsetCbの値は、pps_act_cb_qp_offset_plus5-5と決定されることができる。そして、変数PpsActQpOffsetCrの値は、pps_act_cb_qp_offset_plus3-3と決定されることができる。
【0407】
ここで、ACTが直交変換(orthonormal transformation)ではないため、上記減算される定数オフセット値として5、5及び3が適用できる。一実施例において、ビットストリーム整合性のために、PpsActQpOffsetY、PpsActQpOffsetCb、及びPpsActQpOffsetCrの値は、-12から12までの値を有することができる。そして、実施例によって、Qpオフセット値は、5、5、3以外の他の定数値で置き換えられて使用できる。
【0408】
他の一実施例において、より柔軟なACT_QPオフセットを用いてQPが調整できる。以下の実施例では、ACT QPオフセットがビットストリームを介してシグナリングされる例を説明する。これにより、ACT QPオフセットはより広いオフセット範囲を持つことができる。よって、ACT QPオフセットを用いて更新されたQPは、利用可能範囲から外れる可能性がさらに高いため、更新されたQPに対して上限及び下限に対するクリッピングを行う必要がある(より詳細な実施例は、後述する実施例6及び7に開示されている。)。
【0409】
ACT QPオフセットを示す変数PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、及びPpsActQpOffsetCbCrは、ビットストリームを介してシグナリングされるACT QPオフセットを用いて誘導される値、或いは予め設定された定数であり得る。ビットストリーム適合性のために、PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、及びPpsActQpOffsetCbCrは、-12から+12までの値を有することができる。
【0410】
固定された値を使用せずにQPオフセットの値がシグナリングされる場合、そしてその値が-12から12までの値を有する場合、負の値を持つQPを回避するために誘導されたQPの値の下限値をクリッピングすることに加えて、誘導されたQP値の上限値をクリッピングする必要もある。
【0411】
qPの値が負の値を持たないようにするために、qPの最小値は0に強制されることができる。或いは、qPの最小値は、シグナリングされるシンタックス要素によって定められる値に設定できる。例えば、変換スキップモードが適用される場合にqPの最小値をシグナリングするために、変換スキップモードが適用される場合に適用されるqPの値を示すシンタックス要素QpPrimeTsMinが使用できる。qPの最大値は、qPの利用可能最大値(例えば63)又はシグナリングされるシンタックス要素によって決定される最大利用可能qP値に制限できる。
【0412】
上記による一実施例において、量子化パラメータqPは、次のように誘導できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0413】
[数式44]
qP=Qp′Y
ActQpOffset=PpsActQpOffsetY
【0414】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0415】
[数式45]
qP=Qp′CbCr
ActQpOffset=PpsActQpOffsetCbCr
【0416】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0417】
[数式46]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb
【0418】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0419】
[数式47]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr
【0420】
一実施例において、量子化パラメータqPは次のように更新できる。
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0421】
[数式48]
qP=Clip3(0,63,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0422】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0423】
[数式49]
qP=Clip3(0,63,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0424】
他の実施例において、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPの最小値は、下記数式のように、0の代わりにQpPrimeTsMinの値を用いてクリッピングできる。
【0425】
[数式50]
量子化パラメータqPは、次のように更新できる。
【0426】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0427】
qP=Clip3(0,63,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0428】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0429】
qP=Clip3(QpPrimeTsMin,63,qP-cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0430】
他の一実施例において、量子化パラメータqPは次のように更新できる。
【0431】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0432】
[数式51]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0433】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0434】
[数式52]
qP=Clip3(0,63+QpBdOffset,Max(QpPrimeTsMin,qP)+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0435】
他の実施例において、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPの最小値は、下記数式のように、0の代わりにQpPrimeTsMinの値を用いてクリッピングできる。
【0436】
[数式53]
量子化パラメータqPは、次のように更新できる。
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0437】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0438】
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0439】
実施例3:クロマBDPCMが行われる場合にACTを許容する方案
【0440】
一実施例において、BDPCMがルマ成分ブロックに対して適用される場合、ACTは、当該ブロックを符号化/復号化するために適用できる。しかし、BDPCMがクロマ成分ブロックに対して適用される場合、ACTは、当該ブロックを符号化/復号化するために適用されないように制限できる。
【0441】
一方、クロマ成分ブロックに対してBDPCMが適用される場合でも、当該ブロックにACTを適用することにより、符号化性能を向上させることができる。
図37は、クロマ成分ブロックに対してBDPCMを適用する場合にもACTを適用するためのシンタックス構成の一実施例を示す。
図37に示すように、現在符号化単位にACTが適用されるか否かを示すcu_act_enabled_flagの値に応じて、クロマ成分に対するBDPCMシンタックス要素を取得する条件を除去することにより、クロマ成分ブロックにACTが適用されるかに関係なく、それに対するBDPCMシンタックス要素を取得することができ、これによりBDCPM符号化を行うことができる。
【0442】
実施例4:CCLMで符号化/復号化される場合にもACTを適用する方案
【0443】
CCLMとACTはいずれも、成分間の不要な重複を除去することを目的とする。CCLMとACTの間に一部重複適用される部分があるが、これをすべて適用した後にも、成分間の重複は完全には除去されない。よって、CCLMとACTを一緒に適用することにより、成分間の重複をもっと除去することができる。
【0444】
以下の実施例は、CCLMとACTを一緒に適用する実施例について説明する。復号化装置は、復号化を行う際にCCLMを先に適用し、次にACTを適用することができる。クロマ成分に対するBDPCMとCCLMの両方にACTを適用する場合、これをシグナリングするためのシンタックステーブルは、
図38のように修正できる。これにより、
図38のシンタックステーブルに示すように、intra_bdpcm_chroma及びcclmに関連するシンタックス要素をシグナリングするための制限のうち、ACTが適用されていないかどうかに応じてシンタックス要素をシグナリングするためのif(!cu_act_enabled_flag)がシンタックステーブルから除去できる。
【0445】
実施例5:ジョイントCbCrを含む柔軟なACT Qpの適用方案
【0446】
ACTモードが適用される場合、予測レジデュアルは、一つの色空間から(例えば、GBR又はYCbCr)YCgCo色空間に変換できる。そして、変換単位のレジデュアルは、YCgCo色空間で符号化できる。色空間変換のために使用されるACTコア変換(変換カーネル)の一実施例として、前述した下記変換カーネルが使用できる。
【0447】
【0448】
【0449】
上記の数式に記載されているように、C0’、C1’及びC2’(ここで、C0’=Y、C1’=Cg、C2’=Co)変換は正規化されない。例えば、L2ノルム(L2norm)は1の値を有しない。例えば、個別成分に対する変換のL2ノルムは、C0’とC1’に対して約0.6の値を有し、C2’に対して約0.7の値を有する。ここで、L2ノルムは、各係数の二乗を全て加算した値の平方根として得られる値である。例えば、C0’=2/4*C0+1/4*C1+1/4*C2と計算できる。したがって、C0’のノルムは、(2/4*2/4+1/4*1/4+1/4*1/4)の平方根として計算できる。よって、これは6/16の平方根として計算でき、約0.6の値を有するものと計算できる。
【0450】
正規化された変換が適用されない場合、個別成分の動的範囲は不規則になる。そして、これは通常のビデオ圧縮システムにおける符号化性能の低下をもたらす。
【0451】
レジデュアル信号の動的範囲を補償するために、個別変換成分に対する動的範囲変化を補償するためのQPオフセット値を伝送することにより、QP調整が行われ得る。例えば、このような実施例は、ACT変換のための一般的なQP調整制御方法だけでなく、ジョイントCbCrに対しても適用できる。
【0452】
個別色成分が独立して符号化されるのではなく、一緒に符号化されるので、先立ってジョイントCbCrに対する実施例3で説明されたような方法は、個別色成分間の動的範囲変化をもたらす。
【0453】
一実施例による符号化及び復号化方法において、ACT QPオフセット調整は-5に固定でき、これはY、Cg、Coに対して同様に適用できる。
【0454】
一実施例において、個別成分とジョイントCbCrに対する柔軟なQp制御を提供するために、Y、Cb、Cr及び/又はジョイントCbCrに対する互いに異なるACT Qpオフセットを使用することが許容できる。ACT Qpオフセット値は、成分インデックス及び/又はジョイントCbCrであるか、及び/又はジョイントCbCrモードであるかに基づいて決定できる。
【0455】
ACT Qpオフセットを表記するために、ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCrを使用することができる。そして、Cb成分及びCr成分の両方が0以外の値を持つCBFを有するジョイントCbCrモード2のACT QPオフセットのために、ppsActQpOffsetCbCrが使用できる。これらの値(例えば、ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr、ppsActQpOffsetCbCr)は、予め所定の値に決定されているか、或いはビットストリームを介してシグナリングされることができる。ジョイントCbCrモードのACT QPオフセットは、他の方式又は他の値に設定されてもよい。
【0456】
一実施例において、Y、Cb、Crに対してACT Qpオフセットは-5、-5、-3が使用でき、ジョイントCbCrのために-4が使用できる。
【0457】
他の一実施例において、Y、Cb、Crに対してACT Qpオフセットは-5、-4、-3が使用でき、tu_cbf_cbの値が0ではないジョイントCbCrモードのために-3が使用できる。
【0458】
別の一実施例において、ジョイントCbCrモード2のACT QPオフセットは、それに対する自己オフセット値を有することができる。他のジョイントCbCrモードの場合、ACT QPオフセットは当該成分のオフセットを使用することができる。例えば、下記のように量子化パラメータqPが決定できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0459】
[数式56]
qP=Qp′Y
ActQpOffset=ppsActQpOffsetY
【0460】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0461】
[数式57]
qP=Qp′CbCr
ActQpOffset=ppsActQpOffsetCbCr
【0462】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0463】
[数式58]
qP=Qp′Cb
ActQpOffset=ppsActQpOffsetCb
【0464】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0465】
[数式59]
qP=Qp′Cr
ActQpOffset=ppsActQpOffsetCr
【0466】
一実施例において、量子化パラメータqPは次のように更新できる。
【0467】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0468】
[数式60]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0469】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0470】
[数式61]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0471】
他の一実施例において、tu_cbf_cb!=0のジョイントCbCrモードに対して(例えば、モード1及び2に該当する場合)、ppsActQpOffsetCbを用いてジョイントCbCrのためのオフセットを決定することができる。或いは、tu_cbf_cb==0のジョイントCbCrモードに対して(例えば、モード3に該当する場合)、ppsActQpOffsetCrを用いてジョイントCbCrのためのオフセットを決定することができる。例えば、前述した実施例は、次のように修正されて適用できる。
【0472】
量子化パラメータqPは、次のように更新できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0473】
[数式62]
qP=Qp′Y
ActQpOffset=ppsActQpOffsetY
【0474】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPは下記数式のように誘導できる。
【0475】
[数式63]
qP=Qp′CbCr
【0476】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0477】
[数式64]
qP=Qp′Cb
ActQpOffset=ppsActQpOffsetCb
【0478】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0479】
[数式65]
qP=Qp′Cr
ActQpOffset=ppsActQpOffsetCr
【0480】
ジョイントCbCrモードに対するACT Qpオフセットは、cIdxの値が0ではなく、TuCResMode[xTbY][yTbY]の値が0でなければ、下記の擬似コードに従って決定できる。
【0481】
[数式66]
if(TuCResMode[xTbY][yTbY] is euqal to 1 or 2)
ActQpOffset=ppsActQpOffsetCb;
else
ActQpOffset=ppsActQpOffsetCr;
【0482】
一実施例において、量子化パラメータqPは次のように更新できる。transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0483】
[数式67]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0484】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは下記数式のように誘導できる。
【0485】
[数式68]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
【0486】
他の一実施例において、ジョイントCbCrモードに関係なく、成分インデックスがYである場合には、ppsActQpOffsetYを使用し、成分インデックスがCbである場合には、ppsActQpOffsetCbを使用し、成分インデックスがCrである場合には、ppsActQpOffsetCrを用いてqPが誘導できる。例えば、量子化パラメータqPは、次のように誘導できる。
【0487】
まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0488】
[数式69]
qP=Qp′Y
ActQpOffset=ppsActQpOffsetY
【0489】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0490】
[数式70]
qP=Qp′CbCr
ActQpOffset=(cIdx==1)?ppsActQpOffsetCb:ppsActQpOffsetCr
【0491】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0492】
[数式71]
qP=Qp′Cb
ActQpOffset=ppsActQpOffsetCb
【0493】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0494】
[数式72]
qP=Qp′Cr
ActQpOffset=ppsActQpOffsetCr
【0495】
量子化パラメータqPは、次のように更新できる。
【0496】
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、qPは下記数式のように誘導できる。
【0497】
[数式73]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
【0498】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合、qPは、下記数式のように誘導できる。
【0499】
[数式74]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:
【0500】
実施例6:ジョイントCbCrを含むACT Qpオフセットをシグナリングする方案
【0501】
以下、より柔軟性を提供するためにACT QPオフセットがビットストリームを介してシグナリングされる例を説明する。ACT QPオフセットは、SPS、PPS、ピクチャヘッダー、スライスヘッダー、又はその他の類型にヘッダーセットを介してシグナリングされることができる。ジョイントCbCrのACT Qpオフセットは、別途シグナリングされてもよく、Y、Cb、Crに対するACT QPオフセットから誘導されてもよい。
【0502】
一般性を失わずに(Without loss of generality)、PPSでACT Qpオフセットをシグナリングするシンタックステーブルの例示が
図39に示されている。
図39の実施例のように、ジョイントCbCrのために一つのACT Qpオフセットがシグナリングされることができる。
図39のシンタックステーブルに表記されたシンタックス要素について説明する。
【0503】
シンタックス要素pps_act_qp_offsets_present_flagは、ACT QPオフセットに関するシンタックス要素がPPS内に存在するか否かを示すことができる。例えば、pps_act_qp_offsets_present_flagは、後述するシンタックス要素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、及びpps_act_cbcr_qp_offset_plusX4がPPSとしてシグナリングされるか否かを示すことができる。
【0504】
例えば、pps_act_qp_offsets_present_flagの第1値(例えば0)は、pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、及びpps_act_cbcr_qp_offset_plusX4がPPSシンタックステーブルを介してシグナリングされないことを示すことができる。
【0505】
pps_act_qp_offsets_present_flagの第2値(例えば1)は、pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、及びpps_act_cbcr_qp_offset_plusX4がPPSシンタックステーブルを介してシグナリングされることを示すことができる。
【0506】
pps_act_qp_offsets_present_flagがビットストリームから提供されない場合、pps_act_qp_offsets_present_flagは、第1値(例えば0)に誘導されることができる。例えば、ACTが適用できることを示すフラグ(例えば、SPSでシグナリングされるsps_act_enabled_flag)が、ACTが適用されないことを示す第1値(例えば0)を有する場合、pps_act_qp_offsets_present_flagは第1値(例えば0)を有するように強制できる。
【0507】
シンタックス要素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、及びpps_act_cbcr_qp_offset_plusX4は、シンタックス要素cu_act_enabled_flagの値が、現在符号化単位に対してACTが適用されることを示す第2値(例えば1)である場合、ルマ、Cb、Cr成分及びジョイントCbCr成分のそれぞれに対する量子化パラメータ値qPに適用されるオフセットを決定するために使用できる。pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、及びpps_act_cbcr_qp_offset_plusX4の値がビットストリームに存在しない場合、各値は0に設定できる。
【0508】
前記シンタックス要素に応じて、下記数式のように変数PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、及びPpsActQpOffsetCbCrの値が決定できる。
【0509】
[数式75]
PpsActQpOffsetY=pps_act_y_qp_offset_plusX1-X1
PpsActQpOffsetCb=pps_act_cb_qp_offset_plusX2-X2
PpsActQpOffsetCr=pps_act_cr_qp_offset_plusX3-X3
PpsActQpOffsetCbCr=pps_act_cbcr_qp_offset_plusX4-X4
【0510】
ここで、X1、X2、X3、及びX4は、所定の定数値を表すことができる。これは、互いに同じ値でも異なる値でもよく、一部のみが互いに同じ値を有してもよい。
【0511】
一実施例において、ビットストリーム整合性のために、PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr及びPpsActQpOffsetCbCrの値は、-12から12までの値を有するように制限できる。
【0512】
前記変数の決定に応じて、量子化パラメータqPは、以下のように決定できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0513】
[数式76]
qP=Qp′Y
ActQpOffset=PpsActQpOffsetY
【0514】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0515】
[数式77]
qP=Qp′CbCr
ActQpOffset=PpsActQpOffsetCbCr
【0516】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0517】
[数式78]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb
【0518】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
[数式79]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr
【0519】
ACT Qpオフセットをシグナリングする他の一実施例において、modeA及びmodeBとして識別される互いに異なるジョイントCbCrモードのために複数のACT QPオフセットがシグナリングされることができる。
【0520】
ジョイントCbCrモードAは、前述した表2のモード1及びモード2のような、0以外の値を持つtu_cbf_cbを有するジョイントCbCrモードを示すことができる。そして、ジョイントCbCrモードBは、前述した表2のモード3のような、0の値を持つtu_cbf_cbを有するジョイントCbCrモードを示すことができる。これにより、変更されたシンタックステーブルが
図40に示されている。
図40のシンタックステーブルに表記されたシンタックス要素について説明する。
【0521】
シンタックス要素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、pps_act_cbcr_qp_offset_modeA_plusX4、及びpps_act_cbcr_qp_offset_modeB_plusX5は、シンタックス要素cu_act_enabled_flagの値が、現在符号化単位に対してACTが適用されることを示す第2値(例えば1)である場合、ルマ、Cb、Cr成分及びジョイントCbCr成分のそれぞれに対する量子化パラメータ値qPに適用されるオフセットを決定するために使用できる。pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、pps_act_cbcr_qp_offset_modeA_plusX4及びpps_act_cbcr_qp_offset_plusX5の値がビットストリームに存在しない場合、各値は0に設定できる。
【0522】
前記シンタックス要素に応じて、下記数式のように変数PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、PpsActQpOffsetCbCrModeA及びPpsActQpOffsetCbCrModeBの値が決定できる。
【0523】
[数式80]
PpsActQpOffsetY=pps_act_y_qp_offset_plusX1-X1
PpsActQpOffsetCb=pps_act_cb_qp_offset_plusX2-X2
PpsActQpOffsetCr=pps_act_cr_qp_offset_plusX3-X3
PpsActQpOffsetCbCrModeA=pps_act_cbcr_qp_offset_modeA_plusX4-X4
PpsActQpOffsetCbCrModeB=pps_act_cbcr_qp_offset_modeB_plusX5-X5
【0524】
ここで、X1、X2、X3、X4及びX5は、所定の定数値を表すことができる。これは、互いに同じ値でも異なる値でもよく、一部のみが互いに同じ値を有してもよい。一実施例において、ビットストリーム整合性のために、PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、PpsActQpOffsetCbCrModeA及びPpsActQpOffsetCbCrModeBの値は、-12から12までの値を持つように制限できる。
【0525】
前記変数の決定に応じて、量子化パラメータqPは、以下のように決定できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0526】
[数式81]
qP=Qp′Y
ActQpOffset=PpsActQpOffsetY
【0527】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPは下記数式のように誘導できる。
【0528】
[数式82]
qP=Qp′CbCr
【0529】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0530】
[数式83]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb
【0531】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0532】
[数式84]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr
【0533】
そして、cIdxの値が0ではなく、TuCResMode[xTbY][yTbY]の値が0でない場合、ACT Qpオフセットは下記数式のように誘導できる。
【0534】
[数式85]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?PpsActQpOffsetCbCrModeA:PpsActQpOffsetCbCrModeB
【0535】
一方、他の実施例において、ActQpOffsetは、TuCResMode[xTbY][yTbY]の値が2である場合、下記数式のように誘導されてもよい。
【0536】
[数式86]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCbCrModeA+slice_act_CbCr_qp_offset_ModeA):(PPsQpOffsetCbCrModeB+slice_act_CbCr_qp_offset_ModeB)
【0537】
ACT Qpオフセットをシグナリングする他の一実施例において、Y、Cb、CrのためのACT QPオフセットのみが、
図41のシンタックステーブルのようにシグナリングされることができる。ジョイントCbCrのためのACT QPオフセットは、PpsActQpOffsetY、PpsActQpOffsetCb及び/又はPpsActQpOffsetCrから誘導できる。
【0538】
一実施例において、CbCrのためのACT Qpオフセットは、PpsActQpOffsetCbの値に設定されることができる。他の実施例において、CbCrのためのACT Qpオフセットは、tu_cbf_cbの値が0でないジョイントCbCrモードの場合には、PpsActQpOffsetCbと同じ値に設定でき、tu_cbf_cbの値が0であるジョイントCbCrモードの場合には、PpsActQpOffsetCrと同じ値に設定できる。或いは、その逆に設定されることも可能である。
【0539】
図41はPPSでACT Qpオフセットをシグナリングするシンタックステーブルの別の実施例を示す図である。
図41のシンタックス要素の決定に応じて、量子化パラメータqPは次のように決定できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0540】
[数式87]
qP=Qp′Y
ActQpOffset=PpsActQpOffsetY
【0541】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0542】
[数式88]
qP=Qp′CbCr
ActQpOffset=(cIdx==1)?PpsActQpOffsetCb:PpsActQpOffsetCr
【0543】
一方、他の実施例において、ActQpOffsetの値は、以下のように決定されることもできる。
【0544】
[数式89]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?PpsActQpOffsetCb:PpsActQpOffsetCr
【0545】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0546】
[数式90]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb
【0547】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0548】
[数式91]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr
【0549】
実施例7:多重レベルにおけるACT Qpオフセットのシグナリング
【0550】
一実施例において、ACT QPオフセットは、複数のレベルでシグナリングされることができる。前の実施例6のように、PPSのような一つのレベルでACT QPオフセットをシグナリングすることに加えて、ACT QPオフセットは、より下位レベルでも(例えば、スライスヘッダー、ピクチャヘッダー又はQpコントロールを行うのに適切な他の類型のヘッダー)シグナリングされることができる。
【0551】
以下、2つの実施例を説明する。
図42及び
図43は、スライスヘッダーとピクチャヘッダーを介してACT QPオフセットがシグナリングされる例を示す。このような方式で、多数のレベルでACT QPオフセットをシグナリングされることができる。
【0552】
以下、
図42及び
図43に示されているシンタックス要素について説明する。シンタックス要素pps_slice_act_qp_offsets_present_flagは、後述するシンタックス要素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetがスライスヘッダーに存在するか否かを示すことができる。
【0553】
例えば、pps_slice_act_qp_offsets_present_flagの第1値(例えば0)は、slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetがスライスヘッダーに存在しないことを示すことができる。
【0554】
例えば、pps_slice_act_qp_offsets_present_flagの第2値(例えば1)は、slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetがスライスヘッダーに存在することを示すことができる。
【0555】
シンタックス要素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetは、ルマ、Cb、Cr成分、及びジョイントCbCr成分のそれぞれに対する量子化パラメータ値qPに対するオフセットを示すことができる。slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetの値は、-12から12までの値を持つように制限できる。slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetの値がビットストリームに存在しない場合、各値は0に設定できる。PpsActQpOffsetY+slice_act_y_qp_offset、PpsActQpOffsetCb+slice_act_cb_qp_offset、PpsActQpOffsetCr+slice_act_cr_qp_offset及びPpsActQpOffsetCbCr+slice_act_cbcr_qp_offsetの値も、-12から12までの値を持つように制限できる。
【0556】
PPSレベルでジョイントCbCrのためのACT QPオフセットをシグナリングする様々な変更実施例が適用できる。例えば、ジョイントCbCrに対して一つのQPオフセットをシグナリングするか、互いに異なるモードのジョイントCbCrに対して複数のACT Qpオフセットをシグナリングするか、或いはジョイントCbCrに対するACT Qpオフセットをシグナリングせずに、Y、Cb、Crに対するACTQpOffset及び/又はジョイントCbCrのモードを用いてこれを誘導する方案が、スライスヘッダーを介してシグナリングするときに適用できる。
【0557】
2つの変更実施例が
図44及び
図45に示されている。
図44は、スライスヘッダー内でのACT Qpオフセットをシグナリングする一実施例を示す。
図45は、スライスヘッダーにおいてACT Qpオフセットをシグナリングする他の一実施例を示す。
図45において、Y、Cb、Crに対するACT Qpオフセットのみがシグナリングされることができ、ジョイントCbCrに対するスライスレベルのACT QPオフセットは、slice_act_y_qp_offset、slice_act_cb_qp_offset、及び/又はslice_act_cr_qp_offsetから誘導できる。これは、ジョイントCbCrのモードタイプに基づいて決定できる。一実施例において、CbCrのためのスライスレベルACT Qpオフセットは、slice_act_cb_qp_offsetと同じ値に設定されることができる。他の実施例において、0以外の値を持つtu_cbf_cbを有するジョイントCbCrモードの場合、ジョイントCbCrのためのスライスレベルのACT Qpオフセットは、slice_act_cb_qp_offsetと同じ値に設定されることができる。そして、0値を持つtu_cbf_cbを有するジョイントCbCrモードの場合、ジョイントCbCrのためのスライスレベルのACT Qpオフセットは、slice_act_cr_qp_offsetと同じ値に設定されることができる。
【0558】
一方、他の実施例において、シンタックス要素はスライスヘッダー又はピクチャヘッダーでシグナリングされることができる。これを実現するために、以下のように符号化/復号化が行われることができる。
【0559】
-ACT Qpオフセットがピクチャヘッダーに存在するのか、或いはスライスヘッダーに存在するのかを示すフラグpps_picture_slice_act_qp_offsets_present_flagをPPSでシグナリングすることができる。
【0560】
-ACTが適用可能であり、pps_picture_slice_act_qp_offsets_present_flagの値が第2値(例えば1)である場合、ACT Qpオフセットがピクチャヘッダーに存在するか否かを示すフラグpic_act_qp_offsets_present_flagをピクチャヘッダーでシグナリングすることができる。ここで、pic_act_qp_offsets_present_flagの第2値(例えば1)は、当該ピクチャヘッダーに対応するピクチャのすべてのスライスに対するACT Qpオフセットは、ピクチャヘッダーで提供されることを示すことができる。
【0561】
-pic_act_qp_offsets_present_flagの第1値(例えば0)は、当該ピクチャヘッダーに対応するピクチャのすべてのスライスに対するACT Qpオフセットがピクチャヘッダーで提供されないことを示すことができる。例えば、ACTが適用可能であり、pps_picture_slice_act_qp_offsets_present_flagの値が第2値(例えば1)であり、pic_act_qp_offsets_present_flagの値が第1値(例えば0)である場合、スライスのためのACT Qpオフセットはスライスヘッダーで提供できる。
【0562】
図46は、pps_pic_slice_act_qp_offsets_present_flagがシグナリングされるPPSのシンタックステーブルを示す図である。シンタックス要素pps_pic_slice_act_qp_offsets_present_flagは、ACT Qpオフセットがピクチャヘッダー及び/又はスライスヘッダーで提供されるか否かを示すことができる。例えば、pps_pic_slice_act_qp_offsets_present_flagの第1値(例えば0)は、ACT Qpオフセットがピクチャヘッダー及びスライスヘッダーで提供されないことを示すことができる。pps_pic_slice_act_qp_offsets_present_flagの第2値(例えば1)は、ACT Qpオフセットがピクチャヘッダー又はスライスヘッダーで提供できることを示すことができる。pps_pic_slice_act_qp_offsets_present_flagがビットストリームで提供されない場合、pps_pic_slice_act_qp_offsets_present_flagの値は第1値(例えば0)と決定されることができる。
【0563】
図47はACT Qpオフセットをシグナリングするためのピクチャヘッダーのシンタックステーブルを示す図である。シンタックス要素pic_act_qp_offsets_present_flagは、ACT Qpオフセットがピクチャヘッダーで提供されるか否かを示すことができる。pic_act_qp_offsets_present_flagの第1値(例えば0)は、ACT Qpオフセットがピクチャヘッダーで提供されず、スライスヘッダーで提供できることを示すことができる。pic_act_qp_offsets_present_flagの第2値(例えば1)は、ACT Qpオフセットがピクチャヘッダーで提供されることを示すことができる。pic_act_qp_offsets_present_flagの値がビットストリームで提供されない場合、その値は0と決定されることができる。
【0564】
図48はACT Qpオフセットをシグナリングするためのスライスヘッダーのシンタックステーブルを示す図である。
図48のシンタックステーブルにおいて、シンタックス要素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetは、ルマ、Cb及びCr成分に対する量子化パラメータ値qPに対するオフセットを示すことができる。slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetの値は、-12から12までの値を持つことができる。さらに、PpsActQpOffsetY+slice_act_y_qp_offset、PpsActQpOffsetCb+slice_act_cb_qp_offset、及びPpsActQpOffsetCr+slice_act_cr_qp_offsetは、-12から12までの値の範囲を持つように制限できる。
【0565】
一方、slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset、及びslice_act_cbcr_qp_offsetの値がビットストリームで提供されない場合、pps_pic_slice_act_qp_offsets_present_flagの値が第1値(例えば0)であれば、slice_act_y_qp_offset、slice_act_cb_qp_offset、及びslice_act_cr_qp_offsetの値は0と決定できる。そうではなく、pps_pic_slice_act_qp_offsets_present_flagの値が第2値(例えば1)であれば、slice_act_y_qp_offset、slice_act_cb_qp_offset、及びslice_act_cr_qp_offsetの値は、それぞれpps_act_y_qp_offset、pps_act_cb_qp_offset、及びpps_act_cr_qp_offsetと同じ値に決定できる。
【0566】
一方、ACT Qpオフセットがスライスヘッダー又はピクチャヘッダーの両方に存在する場合、qP値を誘導するために使用される最終オフセット値は、PPSでシグナリングされるオフセットの値と、スライスヘッダー又はピクチャヘッダーでシグナリングされるオフセットの値とを加算した値に決定できる。
【0567】
より詳細には、一実施例において、量子化パラメータqPは以下のように決定できる。まず、cIdxの値が0である場合、qP及びACT Qpオフセットは下記数式のように誘導できる。
【0568】
[数式92]
qP=Qp′Y
ActQpOffset=PPsQpOffsetY+slice_act_y_qp_offset
【0569】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0570】
[数式93]
qP=Qp′CbCr
ActQpOffset=PPsQpOffsetCbCr+slice_act_CbCr_qp_offset
【0571】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0572】
[数式94]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb+slice_act_Cb_qp_offset
【0573】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0574】
[数式95]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr+slice_act_Cr_qp_offset
【0575】
他の一実施例において、ジョイントCbCrに対する多数のACT Qpオフセットがシグナリングされる場合、ジョイントCbCrに対するActQpOffsetは、以下のように決定できる。
【0576】
まず、cIdxの値が0である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0577】
[数式96]
qP=Qp′Y
ActQpOffset=PPsQpOffsetY+slice_act_y_qp_offset
【0578】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPは下記数式のように誘導できる。
【0579】
[数式97]
qP=Qp′CbCr
【0580】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0581】
[数式98]
qP=Qp′Cb
ActQpOffset=PpsActQpOffsetCb+slice_act_Cb_qp_offset
【0582】
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0583】
[数式99]
qP=Qp′Cr
ActQpOffset=PpsActQpOffsetCr+slice_act_Cr_qp_offset
【0584】
そして、cIdxの値が0ではなく、TuCResMode[xTbY][yTbY]の値が0ではない場合、ACT Qpオフセットは下記数式のように誘導できる。
【0585】
[数式100]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCbCrModeA+slice_act_CbCr_qp_offset_ModeA):(PPsQpOffsetCbCrModeB+slice_act_CbCr_qp_offset_ModeB)
【0586】
別の一実施例において、ジョイントCbCrに対するACT Qpオフセットが提供されない場合、Y、Cb及び/又はCr成分に対するqPとActQpOffsetが決定され、ジョイントCbCrに対するActQpOffsetは、次のようにY、Cb及び/又はCr成分のACT Qpオフセットを用いて決定され得る。例えば、前述した実施例において、数式97に関連するTuCResMode[xTbY][yTbY]の値が2である場合、qPの計算ステップは、次のように変更されて実施できる。
【0587】
「そうでない場合、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0588】
[数式101]
qP=Qp′CbCr
ActQpOffset=(cIdx==1])?(PPsQpOffsetCb+slice_act_Cb_qp_offset):(PPsQpOffsetCr+slice_act_Cr_qp_offset)」
【0589】
一方、他の実施例において、ActQpOffsetの値は下記数式のように決定できる。
【0590】
[数式102]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCb+slice_act_Cb_qp_offset):(PPsQpOffsetCr+slice_act_Cr_qp_offset)
【0591】
実施例8:多数のACT Qpオフセットのセットをシグナリングする方案
【0592】
本実施例では、ACT Qpオフセットのリストを用いる方案について説明する。このために、以下の処理が行われ得る。
【0593】
a)パラメータセット(例えば、SPS又はPPS)内で、リストの形態で多数のACT Qpオフセットのセットがシグナリングできる。リスト内のそれぞれのセットは、Y、Cb、Cr、及びジョイントCbCr成分に対するACT Qpオフセットを含むことができる。単純化のために、ACT Qpオフセットのリストは、クロマQpオフセットのリストをシグナリングするパラメータセットと同じパラメータセットでシグナリングされることができる。
【0594】
b)リスト内のACT Qpオフセットのセットの数は、PPSでシグナリングされるクロマQpオフセットのセットの数と同じであり得る。
【0595】
c)それぞれの符号化単位に対するqPを誘導するために使用されるACT Qpオフセットとして、符号化単位に対するクロマQpオフセットに対するインデックス(例えば、cu_chroma_qp_offset_idx)を有するリスト内に属するACT Qpオフセットが使用できる。
【0596】
d)前記b)及びc)の代替実施例として、以下が行われることができる。
【0597】
-リスト内のACT Qpオフセットのセットの数がシグナリングされることができる。リスト内のACT Qpオフセットのセットの数は、クロマQpオフセットのセットの数と異なり得る。
【0598】
-ACTが適用できる場合、符号化単位に対して使用されるACT Qpオフセットのインデックスを示すインデックスがシグナリングできる。
【0599】
上記のコンセプトから外れない、ACT Qpオフセットのリストをシグナリングするシンタックスが
図49のように使用できる。例えば、pps_act_y_qp_offset、pps_act_cb_qp_offset、pps_act_cr_qp_offset、及びpps_act_cbcr_qp_offsetが、cu_act_enabled_flagの値が1である場合、ルマ、Cb及びCr成分とジョイントCbCrのための量子化パラメータ値qPに適用されるためのオフセットを決定するために使用できる。
【0600】
pps_act_y_qp_offset、pps_act_cb_qp_offset、pps_act_cr_qp_offset、及びpps_act_cbcr_qp_offsetの値が存在しない場合、各値は0に誘導できる。
【0601】
cu_act_enabled_flagの値が第2値(例えば1)であり、cu_chroma_qp_offset_flagの値が第2値(例えば1)であるとき、act_y_qp_offset_list[i]、act_cb_qp_offset_list[i]、act_cr_qp_offset_list[i]、及びact_cbcr_qp_offset_list[i]がルマ、Cb及びCr成分とジョイントCbCr成分のそれぞれに対して量子化パラメータ値qPに適用されるオフセットを決定するために使用できる。act_y_qp_offset_list[i]、act_cb_qp_offset_list[i]、act_cr_qp_offset_list[i]、及びact_cbcr_qp_offset_list[i]の値が存在しない場合、各値は0に誘導できる。
【0602】
本実施例において、量子化パラメータqPは以下のように決定できる。まず、cIdxの値が0である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0603】
[数式103]
qP=Qp′Y
ActQpOffset=pps_act_y_qp_offset+(cu_chroma_qp_offset_flag)?act_y_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_y_qp_offset
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0604】
[数式104]
qP=Qp′CbCr
ActQpOffset=pps_act_cbcr_qp_offset+(cu_chroma_qp_offset_flag)?act_cbcr_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cbcr_qp_offset
【0605】
そうでなければ、cIdxの値が1である場合、qPとACT Qpオフセットは、下記数式のように誘導できる。
【0606】
[数式105]
qP=Qp′Cb
[ActQpOffset=pps_act_cb_qp_offset+(cu_chroma_qp_offset_flag)?act_cb_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cb_qp_offset
そうでなければ、cIdxの値が2である場合、qPとACT Qpオフセットは下記数式のように誘導できる。
【0607】
[数式106]
qP=Qp′Cr
ActQpOffset=pps_act_cr_qp_offset+(cu_chroma_qp_offset_flag)?act_cr_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cr_qp_offset
実施例9:無損失符号化と損失符号化の両方に適用するためのACT色空間変換方案
【0608】
前述した順方向変換及び逆方向変換のための行列ベース色空間間の変換は、次のようにまとめられる。
【0609】
【0610】
上記の変換は、CoとCgの処理において一部の値の損失が発生するため、元の状態への復元が不可能である。例えば、RGB色空間のサンプル値をYCgCo色空間に変換してから再びRGB色空間に逆変換する場合、原サンプルの値が完全には復元されなくなる。よって、前記表3による変換は、無損失符号化のために使用できない。無損失符号化が適用される場合にも、色空間変換後にサンプル値の損失が発生しないように色空間変換アルゴリズムを改善する必要がある。実施例9及び10は、無損失符号化だけでなく、損失符号化においても適用可能な色空間変換アルゴリズムを開示する。
【0611】
以下の実施例で、損失符号化だけでなく、無損失符号化にも適用できる元の状態に復元可能な(reversible)色空間変換を用いてACTを行う方案について説明する。このように復元可能な色空間変換は、前述した符号化及び復号化方法に適用できる。ACT Qpオフセットも、以下の色空間変換のために調整できる。一実施例による色空間変換は、下記数式のように実行できる。例えば、GBR色空間からYCgCo色空間への順方向変換は、下記数式によって行われ得る。
【0612】
[数式107]
Co=R-B;
t=B+(Co>>1);
Cg=G-t;
Y=t+(Cg>>1);
【0613】
また、YCgCo色空間からGBR色空間への逆方向変換は、下記数式によって行われ得る。
【0614】
[数式108]
t=Y-(Cg>>1)
G=Cg+t
B=t-(Co>>1)
R=Co+B
【0615】
上記の数式によるYCgCo色空間とRGB色空間間の変換は、元の状態に復元可能である。すなわち、上記の数式による色空間変換は完全な復元を支援し、例えば、順方向変換後に逆方向変換を行っても、サンプル値は同一に維持される。これにより、前記数式による色空間変換は、復元可能なYCgCo-R色変換と呼ぶことができる。ここで、Rは、元の状態に復元可能であることを意味するreversibleの略語であり得る。YCgCo-R変換は、Cg及びCoのビットデプスを既存の変換よりも1増加させることにより備えられ得る。このような条件を備える場合、他の形態の復元可能な変換も上記の変換のように使用できる。
【0616】
上記数式のような変換は、前述した変換とは異なるノルム(norm)値を有するので、Y、Cg、Coに対するACT Qpオフセットは、色空間変換による動的範囲変化を補償するために調整できる。
【0617】
前述した変換が適用される場合、一実施例による ACT Qpオフセットは、Y、Cg、Coに対して(-5、-5、-5)の値を有することができることが説明されたことがある。しかし、本実施例における復元可能な変換が適用される場合、一実施例による ACT Qpオフセットとして、(-5、-5、-5)以外の値が指定できる。例えば、一実施例による ACT Qpオフセットとして、Y、Cg、Coに対して(-5、1、3)の値が使用できる。
【0618】
他の実施例において、ACT QPオフセットは、前述の実施例6又は7のようにビットストリームを介してシグナリングされることができる。
【0619】
例えば、前述したYCgCo-R変換がACT QPオフセット(-5、1、3)と一緒に使用される場合、下記図のように、損失符号化環境(例えば、QP 22、27、32、37)に対して符号化損失が存在しないことが観測された。さらに、ACTを適用する場合、無損失符号化を実現するにあたり、5%の符号化性能をさらに得ることができることが観測された。
【0620】
【0621】
統合されたACTマトリクスを含むためのVVC仕様は、下記表のように記載できる。
【0622】
【0623】
例えば、(nTbW)×(nTbH)サイズのレジデュアルサンプル配列rY、rCb及びrCrは、次のように更新できる。
【0624】
[数式109]
tmp=rY[x][y]-(rCb[x][y]>>1)
rY[x][y]=tmp+rCb[x][y]
rCb[x][y]=tmp-(rCr[x][y]>>1)
rCr[x][y]=rCb[x][y]+rCr[x][y]
【0625】
実施例10:明示的なシグナリングに基づく多数の色変換を行うACT実行方案
【0626】
本実施例において、少なくとも一つの色変換がACTによって行われ得る。どの色変換が行われるかが、ビットストリームを介してシグナリングされるフラグによって決定できる。このようなフラグは、SPS、PPS、ピクチャヘッダー及びスライスなどの多数のレベル又は識別可能な構成部分(granularies)でシグナリングできる。
【0627】
一実施例において、どのACTが適用されるかを示すために、所定のフラグがシグナリングできる。例えば、当該フラグの値が1であれば、復元可能な色変換に基づくACTが適用できる。当該フラグの値が0であれば、復元不可能な色変換に基づくACTが適用できる。
【0628】
他の実施例において、ACTに対する所定のフラグが、どの色変換が使用されるかを示すためにシグナリングできる。SPSでシグナリングされるシンタックスの例示が
図50に記載されている。
図50のシンタックス要素について説明する。シンタックス要素sps_act_reversible_conversionは、元の状態に復元されない変換数式を用いるか否かを示すことができる。sps_act_reversible_conversionの第1値(例えば0)は、ACTが元の状態に復元されない変換数式を用いることを示すことができる。sps_act_reversible_conversionの第2値(例えば1)は、ACTが元の状態に復元可能な変換数式を使用することを示すことができる。
【0629】
これにより、損失符号化が行われるか否かを示す変数lossyCodingは、下記数式のように設定できる。
【0630】
[数式110]
lossyCoding=(!sps_act_reversible_conversion)
【0631】
lossyCodingフラグを用いて、復号化過程で復号化装置がYCgCoからGBRへの逆方向変換を行うための擬似コードは、以下のように表現できる。
【0632】
[数式111]
If(sps_act_reversible_conversion==1)
{
//YCgCo-R reversible conversion
t=Y-(Cg>>1)
G=Cg+t
B=t-(Co>>1)
R=Co+B
}
else{
t=Y-Cg
G=Y+Cg
B=t-Co
R=t+Co
}
【0633】
これにより、実施例9の表5に示されているVVC仕様は、下記表のように修正できる。
【0634】
【0635】
上記の表によって、色空間変換を用いるレジデュアル更新プロセスは、本プロセスに対する入力として次のパラメータを用いることができる。
-ブロックの幅を表す変数nTbW
-ブロックの高さを表す変数nTbH
-要素rY[x][y]で構成された、ルマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの配列rY、
-要素rCb[x][y]で構成された、クロマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの配列rCb、
-要素rCr[x][y]で構成された、クロマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの配列rCr、
【0636】
本プロセスに対する出力は、次のとおりである。
【0637】
-ルマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの更新された配列rY、
-クロマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの更新された配列rCb、
-クロマレジデュアルサンプルに対する(nTbW)×(nTbH)サイズの更新された配列rCr、
【0638】
本プロセスの実行によって、(nTbW)×(nTbH)サイズのレジデュアルサンプル配列rY、rCb及びrCrは、次のように更新できる。
【0639】
まず、sps_act_reversible_conversionの値が第2値(例えば1)である場合、(nTbW)×(nTbH)サイズのレジデュアルサンプル配列rY、rCb及びrCrは、下記数式のように更新できる。
【0640】
[数式112]
tmp=rY[x][y]-(rCb[x][y]>>1))
rY[x][y]=tmp+rCb[x][y])
rCb[x][y]=tmp-(rCr[x][y]>>1))
rCr[x][y]=rCb[x][y]+rCr[x][y]
【0641】
そうでなければ(例えば、sps_act_reversible_conversionの値が第1値(例えば0)であれば)、(nTbW)×(nTbH)サイズのレジデュアルサンプル配列rY、rCb及びrCrは、下記数式のように更新できる。
【0642】
[数式113]
tmp=rY[x][y]-rCb[x][y]
rY[x][y]=rY[x][y]+rCb[x][y]
rCb[x][y]=tmp-rCr[x][y]
rCr[x][y]=tmp+rCr[x][y]
【0643】
YCgCo逆方向変換及びYCgCo-R逆方向変換は、一部の類似点を有する。元の状態に復元可能な変換において、Cg及びCoがCg’=Cg<<1及びCo’=Co<<1で置き換えられる場合、これは、損失逆方向変換で動作することができる。下記数式はこれに対する実施例を示す。
【0644】
[数式114]
t=Y-(Cg’>>1)=Y-Cg
G=Cg’+t=Y+Cg
B=t-(Co’>>1)=t-Co=Y-Cg-Co
R=Co’+B=t+Co=Y-Cg+Co
【0645】
したがって、代替的な実施例において、2つの色変換を維持する代わりに、元の状態に復元可能な変換のみを使用することができる。損失符号化事例において、Cg、Co成分は、符号化装置の動作において1/2倍スケールされ、復号化装置の動作において2倍スケールされ得る。これにより、損失及び無損失ケースを支援する場合でも、一つの統合された変換を使用することができるようになる。さらに、損失符号化が行われる場合にも、ビットデップスが変わらない可能性があるという更なる利点も有することができる。
【0646】
【0647】
一実施例において、どのACT変換が用いられるかを示すフラグ(例えば、actShiftFlag)が
図51のシンタックスに従って使用できる。
図51のシンタックステーブルにおいて、シンタックス要素sps_act_shift_flagは、ACTが適用される間に色成分のシフトを行うステップが適用されるか否かを示すことができる。例えば、sps_act_shift_flagの第1値(例えば0)は、ACTが適用される間に色成分のシフトを行うステップが適用されないことを示すことができる。sps_act_shift_flagの第2値(例えば1)は、ACTが適用される間に色成分のシフトを行うステップが適用されることを示すことができる。変数actShiftFlagは、sps_act_shift_flagの値に設定されることができる。復号化装置におけるYCgCoからGBRへの逆方向変換を実現するための擬似コードがactShiftFlgaを用いて次のように作成できる。
【0648】
【0649】
実施例11:変換タイプの誘導を用いた多数の色変換を行うACT実行方案
一実施例において、ACTを行う際に少なくとも一つの色変換が用いられ得る。そして、どの色変換タイプが用いられるかがビットストリームの他の情報に基づいて誘導できる。
【0650】
一実施例において、元の状態に復元可能なACT変換、及び元の状態に復元不可能なACT変換を含む2つのACT変換タイプが利用可能である。ACT変換タイプは、変換タイプによって誘導できる。例えば、変数tuIsTransformSkipによって識別されるように変換タイプが変換スキップであれば、元の状態に復元可能なACT変換が用いられ得る。そうでなければ(例えば、変換タイプが変換スキップでなければ)、元の状態に復元不可能なACT変換が用いられ得る。2つのタイプの擬似コードが使用できる。
【0651】
【0652】
【0653】
他の実施例において、ACT変換タイプはQP値に基づいて決定できる。Qp値が所定の閾値(例えば、QpPrimeTsMin)以下の値である場合、元の状態に復元可能なACT変換が用いられ得る。そうでない場合(例えば、Qp値が所定の閾値を超える場合)、復元不可能なACT変換が用いられ得る。
【0654】
実施例12:ACT QPオフセットを用いたQP誘導方案
【0655】
本実施例は、前述の実施例1及び2に関する。前述の実施例1及び2において、既に誘導されたQp’Y、Qp’CbCr、Qp’Cb、Qp’CrをQPとして含むものと説明された。実施例1及び2に記載されている方法は、誘導されたQp値をACT QPオフセットを用いて修正し、変換係数スケーリングのための修正されたQP値が有効範囲を外れないように必須的なクリッピング技法を適用する。
【0656】
本実施例は、Qp’Y、Qp’CbCr、Qp’Cb、Qp’Crを誘導するQP誘導プロセスにACT QPオフセットを含ませる方案を説明する。誘導されたQP値が有効範囲から外れないように、QP誘導プロセスが所定のクリッピングステップを既に含んでいるので、ACT QPオフセットをQP誘導プロセスに含めさせることは、追加のクリッピングステップを回避しながら、変換係数スケーリングプロセスのための全体的なQP誘導ステップを単純化しながらも、最終的なQPが有効範囲から外れないように保障することができる。
【0657】
以前の実施例で説明したように、ACT QPオフセットは、定数に予め指定されてもよく、ビットストリームを介してシグナリングされてもよい。一貫性から外れることなく、Y、Cb、Cr及びCbCrのためのACT QPオフセットは、後述する説明においてppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr、ppsActQpOffsetCbCrと記載されることができる。ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr、ppsActQpOffsetCbCrは、-MからNまでの値を有する定数又は変数であり得る。ここで、MとNは、一実施例において、損失符号化ケースではそれぞれ12と設定されてもよく、無損失符号化ケースではそれぞれ0と設定されてもよい。さらに、少なくとも一つのACT QPオフセットは、他のACT QPオフセット値から誘導できる。例えば、ppsActQpOffsetCbCrは、ジョイントCbCrモードに基づいてppsActQpOffsetCb又はppsActQpOffsetCrと同じ値に設定され得る。
【0658】
ACT QPオフセットを用いたQP誘導に対する復号化処理は、以下の説明のように行われ得る。まず、量子化パラメータ誘導プロセスの場合、本プロセスのために以下のパラメータが活用できる。
【0659】
-現在ピクチャの左上側ルマサンプルに対する現在符号化ブロックの左上側ルマサンプルの相対座標を示すルマ座標(xCb,yCb)、
【0660】
-現在符号化ブロックの幅をルマサンプル単位で表す変数cbWidth、
【0661】
-現在符号化ブロックの高さをルマサンプル単位で表す変数cbHeight
【0662】
-現在符号化ツリーノードを分割するためにシングルツリー(SINGLE_TREE)又はデュアルツリーが使用されたか否かを示し、デュアルツリーが使用される場合、ルマ成分デュアルツリー(DAUL_TREE_LUMA)であるか或いはクロマ成分デュアルツリー(DAUL_TREE_CHROMA)であるかを示す変数treeType
【0663】
本量子化パラメータ誘導プロセスにおいて、ルマ量子化パラメータQp’Y及びクロマ量子化パラメータQp’Cb、Qp’Cr及びQp’CbCrが誘導できる。
【0664】
その後、変数QpYは、下記数式によって誘導できる。
【0665】
[数式115]
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffset)%(64+QpBdOffset))-QpBdOffset
【0666】
ルマ量子化パラメータQp’Yは、下記数式によって誘導できる。
【0667】
[数式116]
actQpOffsetY=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetY:0
Qp′Y=QpY+QpBdOffset+actQpOffsetY
Qp′Y=Clip3(0,63+QpBdOffset,Qp′Y)
【0668】
クロマ配列のタイプを表す変数ChromaArrayTypeの値が第1値(例えば0)ではなく、treeTypeがSINGLE_TREE又はDUAL_TREE_CHROMAである場合、以下の処理が行われ得る。
【0669】
-treeTypeの値がDUAL_TREE_CHROMAである場合、変数QpYの値は、ルマサンプル位置(xCb+cbWidth/2、yCb+cbHeight/2)をカバーするルマ符号化単位のルマ量子化パラメータQpYと同じ値に設定され得る。
【0670】
-変数qPCb、qPCr及びqPCbCrが下記数式のように誘導できる。
【0671】
[数式117]
qPChroma=Clip3(-QpBdOffset,63,QpY)
qPCb=ChromaQpTable[0][qPChroma]
qPCr=ChromaQpTable[1][qPChroma]
qPCbCr=ChromaQpTable[2][qPChroma]
【0672】
-Cb及びCr成分のためのクロマ量子化パラメータQp′Cb及びQp′CrとCb-Cr共同符号化(joint Cb-Cr coding)のためのクロマ量子化パラメータQp′CbCrは、下記数式のように誘導できる。
【0673】
[数式118]
actQpOffsetCb=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCb:0
actQpOffsetCr=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCr:0
actQpOffsetCbCr=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCbCr:0
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb+actQpOffsetCb)+QpBdOffset
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr+actQpOffsetCr)+QpBdOffset
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+
slice_joint_cbcr_qp_offset+CuQpOffsetCbCr+actQpOffsetCbCr)+QpBdOffset
【0674】
次に、変換係数に対する逆量子化プロセスが行われ、本プロセスのために以下の情報が入力として活用され得る。
【0675】
-現在ピクチャの左上側ルマサンプルに対する現在ルマ変換ブロックの左上側サンプルの相対座標を表すルマ座標(xTbY,yTbY)、
-変換ブロックの幅を表す変数nTbW、
-変換ブロックの高さを表す変数nTbH、
-符号化単位の予測モードを表す変数predMode、
-現在ブロックの色成分を表す変数cIdx
【0676】
本変換係数に対する逆量子化プロセスの出力は、スケールされた変換係数の配列dであり得る。ここで、配列dの大きさは(nTbW)×(nTbH)であり得る。これを構成する個別要素はd[x][y]として識別できる。
【0677】
本プロセスの実行において、量子化パラメータqPは、次のように誘導できる。cIdxの値が0である場合、qPは下記数式のように誘導できる。
【0678】
[数式119]
qP=Qp′Y
【0679】
そうでなければ、TuCResMode[xTbY][yTbY]の値が2である場合、下記数式のように誘導できる。
【0680】
[数式120]
qP=Qp′CbCr
【0681】
そうでなければ、cIdxの値が1である場合、qPは下記数式のように誘導できる。
【0682】
[数式121]
qP=Qp′Cb
【0683】
そうでなければ、cIdxの値が2である場合、qPは下記数式のように誘導できる。
【0684】
[数式122]
qP=Qp′Cr
【0685】
量子化パラメータqPは、次のように更新できる。そして、変数rectNonTsFlag及びbdShiftは、次のように誘導できる。
transform_skip_flag[xTbY][yTbY][cIdx]の値が0である場合、下記数式のように誘導できる。
【0686】
[数式123]
rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)?1:0
【0687】
bdShift=BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH))/2)-5+pic_dep_quant_enabled_flag
【0688】
そうではなく、transform_skip_flag[xTbY][yTbY][cIdx]の値が1である場合(例えば、現在変換ブロックに対して変換がスキップされる場合)、下記数式のように誘導できる。
【0689】
[数式124]
qP= Max(QpPrimeTsMin,qP)
rectNonTsFlag=0
bdShift=10
【0690】
符号化及び復号化方法
【0691】
以下、
図52及び
図53を参照して、画像符号化装置及び画像復号化装置によって行われる画像符号化方法及び復号化方法について説明する。
【0692】
まず、復号化装置の動作について説明する。一実施例による画像復号化装置は、メモリとプロセッサを含み、復号化装置は、プロセッサの動作によって復号化を行うことができる。例えば、
図52に示すように、復号化装置は、現在ブロックのレジデュアルサンプルに色空間(color space)の変換が適用されるか否かに基づいて現在ブロックの量子化パラメータを決定することができる(S5210)。ここで、色空間の変換は前述したACTであり得る。ここで、量子化パラメータを決定するステップは、量子化パラメータの値が所定の上限値以下の値を有し、所定の下限値以上の値を有するように、量子化パラメータにクリッピングを行うことにより行われることができる。ここで、量子化パラメータの所定の下限値は0であり得る。そして、量子化パラメータの所定の上限値は、サンプルのビットデプスを表すシンタックス要素に基づいて決定されることができる。
【0693】
量子化パラメータを決定するステップは、現在ブロックの色成分に基づいて量子化パラメータを決定するステップと、現在ブロックの色成分に基づいて量子化パラメータオフセットを決定するステップと、量子化パラメータオフセットを用いて量子化パラメータを再設定するステップと、を含んで行われ得る。
【0694】
量子化パラメータオフセットを用いて量子化パラメータを再設定するステップは、量子化パラメータに量子化パラメータオフセットを加えることにより行われ得る。ここで、現在ブロックのレジデュアルサンプルに色空間(color space)の変換が適用され、現在ブロックの色成分がルマ成分である場合、量子化パラメータオフセットの値は-5と決定できる。
【0695】
そして、現在ブロックのレジデュアルサンプルに色空間の変換が適用され、現在ブロックの色成分がクロマCb成分である場合、量子化パラメータオフセットの値は1と決定できる。現在ブロックのレジデュアルサンプルに色空間の変換が適用され、現在ブロックの色成分がクロマCr成分である場合、量子化パラメータオフセットの値は3と決定できる。
【0696】
次に、復号化装置は、量子化パラメータに基づいて現在ブロックの変換係数を決定することができる(S5220)。その後、復号化装置は、変換係数を用いて現在ブロックのレジデュアルサンプルを決定することができる(S5230)。次に、復号化装置は、色空間の変換が適用されるか否かに基づいてレジデュアルサンプルの値を再設定することができる(S5240)。
【0697】
ここで、レジデュアルサンプルの値を再設定するステップは、ルマ成分レジデュアルサンプル値とクロマレジデュアルサンプル値の半値に基づいて行われ得る。例えば、クロマレジデュアルサンプル値にシフト演算を行うことにより、クロマレジデュアルサンプル値の半値が得られる。また、ルマ成分レジデュアルサンプル値にクロマCb成分レジデュアルサンプル値の半値を加算することにより、ルマ成分レジデュアルサンプル値が再設定できる。また、ルマ成分レジデュアルサンプル値にクロマCb成分レジデュアルサンプル値の半値とクロマCr成分レジデュアルサンプル値の半値を減算することにより、クロマCb成分レジデュアルサンプル値が再設定できる。
【0698】
次に、符号化装置の動作について説明する。一実施例による画像符号化装置は、メモリとプロセッサとを含み、符号化装置は、プロセッサの動作によって、前記復号化装置の復号化に対応する方式で符号化を行うことができる。例えば、
図53に示すように、符号化装置は、色空間(color space)の変換が適用されるか否かに基づいてレジデュアルサンプルを再設定することができる(S5310)。ここで、色空間の変換は、前述したACTであり得る。
【0699】
さらに、レジデュアルサンプルの値を再設定するステップは、ルマ成分レジデュアルサンプル値とクロマレジデュアルサンプル値の半値に基づいて行われることができる。例えば、クロマレジデュアルサンプル値にシフト演算を行うことにより、クロマレジデュアルサンプル値の半値が得られる。また、上述した復号化装置における再設定演算を逆に行うことにより、符号化装置は、ルマ成分レジデュアルサンプル値、クロマCb成分レジデュアルサンプル値及びクロマCr成分レジデュアルサンプル値を再設定することができる。
【0700】
次に、符号化装置は、再設定されたレジデュアルサンプルを用いて変換係数を決定することができる(S5320)。その後、符号化装置は、色空間の変換が適用されるか否かに基づいて量子化パラメータを決定することができる(S5330)。ここで、量子化パラメータを決定するステップは、量子化パラメータの値が所定の上限値以下の値を有し、所定の下限値以上の値を有するように量子化パラメータにクリッピングを行うことにより行われ得る。ここで、量子化パラメータの所定の下限値は0であってもよい。そして、量子化パラメータの所定の上限値は、サンプルのビットデプスを表すシンタックス要素に基づいて決定できる。
【0701】
量子化パラメータを決定するステップは、現在ブロックの色成分に基づいて量子化パラメータを決定するステップと、現在ブロックの色成分に基づいて量子化パラメータオフセットを決定するステップと、量子化パラメータオフセットを用いて量子化パラメータを再設定するステップと、を含んで行われ得る。
【0702】
量子化パラメータオフセットを用いて量子化パラメータを再設定するステップは、量子化パラメータに量子化パラメータオフセットを加えることにより行われ得る。ここで、現在ブロックのレジデュアルサンプルに色空間の変換が適用され、現在ブロックの色成分がルマ成分である場合、量子化パラメータオフセットの値は-5と決定できる。
【0703】
そして、現在ブロックのレジデュアルサンプルに色空間の変換が適用され、現在ブロックの色成分がクロマCb成分である場合、量子化パラメータオフセットの値は1と決定できる。現在ブロックのレジデュアルサンプルに色空間の変換が適用され、現在ブロックの色成分がクロマCr成分である場合、量子化パラメータオフセットの値は3と決定できる。
【0704】
次に、符号化装置は、量子化パラメータに基づいて変換係数を符号化することができる(S5340)。
【0705】
応用実施例
【0706】
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
【0707】
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
【0708】
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、2つ以上の組み合わせで適用されてもよい。
【0709】
また、本開示の様々な実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア、又はそれらの組み合わせなどによって実現できる。ハードウェアによる実現の場合、一つ又はそれ以上の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)、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって実現できる。
【0710】
また、本開示の実施例が適用された画像復号化装置及び画像符号化装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0711】
図54は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
【0712】
図54に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
【0713】
前記符号化サーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに伝送する役割を果たす。他の例として、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記符号化サーバは省略できる。
【0714】
前記ビットストリームは、本開示の実施例が適用された画像符号化方法及び/又は画像符号化装置によって生成でき、前記ストリーミングサーバは、前記ビットストリームを伝送又は受信する過程で一時的に前記ビットストリームを保存することができる。
【0715】
前記ストリーミングサーバは、Webサーバを介してユーザの要求に基づいてマルチメディアデータをユーザ装置に伝送し、前記Webサーバは、ユーザにどんなサービスがあるかを知らせる媒介体の役割を果たすことができる。ユーザが前記Webサーバに所望のサービスを要求すると、前記Webサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを伝送することができる。この時、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たすことができる。
【0716】
前記ストリーミングサーバは、メディアストレージ及び/又は符号化サーバからコンテンツを受信することができる。例えば、前記符号化サーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間保存することができる。
【0717】
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがあり得る。
【0718】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバから受信するデータは、分散処理されることができる。
【0719】
本開示の範囲は、様々な実施例の方法による動作が装置又はコンピュータ上で実行されるようにするソフトウェア又はマシン-実行可能なコマンド(例えば、オペレーティングシステム、アプリケーション、ファームウェア(firmware)、プログラムなど)、及びこのようなソフトウェア又はコマンドなどが保存されて装置又はコンピュータ上で実行できる非一時的なコンピュータ可読媒体(non-transitory computer-readable medium)を含む。
【産業上の利用可能性】
【0720】
本開示による実施例は、画像を符号化/復号化するために利用可能である。