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

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

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

特許7400082パレットモードに基づく画像またはビデオコーディング
<>
  • 特許-パレットモードに基づく画像またはビデオコーディング 図1
  • 特許-パレットモードに基づく画像またはビデオコーディング 図2
  • 特許-パレットモードに基づく画像またはビデオコーディング 図3
  • 特許-パレットモードに基づく画像またはビデオコーディング 図4
  • 特許-パレットモードに基づく画像またはビデオコーディング 図5
  • 特許-パレットモードに基づく画像またはビデオコーディング 図6
  • 特許-パレットモードに基づく画像またはビデオコーディング 図7
  • 特許-パレットモードに基づく画像またはビデオコーディング 図8
  • 特許-パレットモードに基づく画像またはビデオコーディング 図9
  • 特許-パレットモードに基づく画像またはビデオコーディング 図10
  • 特許-パレットモードに基づく画像またはビデオコーディング 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】パレットモードに基づく画像またはビデオコーディング
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231211BHJP
【FI】
H04N19/70
【請求項の数】 3
(21)【出願番号】P 2022513283
(86)(22)【出願日】2020-08-26
(65)【公表番号】
(43)【公表日】2022-11-04
(86)【国際出願番号】 KR2020011383
(87)【国際公開番号】W WO2021040400
(87)【国際公開日】2021-03-04
【審査請求日】2022-04-12
(31)【優先権主張番号】62/891,951
(32)【優先日】2019-08-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】チャオ チエ
(72)【発明者】
【氏名】パルリ シータル
(72)【発明者】
【氏名】キム スンファン
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特表2018-507612(JP,A)
【文献】特表2018-532319(JP,A)
【文献】特表2017-515339(JP,A)
【文献】特表2016-529783(JP,A)
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 6),JVET-O2001 (version 14),ITU,2019年07月31日,p.37-40,67-70,89,143-146,198,199,282-285,[online],[retrieved on 2023-03-09],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip>
【文献】ZHAO, Jie et al.,Non-CE8: Minimum QP for Palette Escape Coding,JVET-P0460 (version 4),ITU,2019年10月04日,pp.1-4,[online],[retrieved on 2023-10-04],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0460-v4.zip>,JVET-P0460_r2.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置によって実行される画像デコーディング方法において、
ビットストリームからパレットモードでの量子化されたエスケープ値情報を含む画像情報を獲得するステップと、
前記量子化されたエスケープ値情報に基づいて現在ブロックに対するエスケープ値を導出するステップと、
前記エスケープ値に基づいて復元サンプルを生成するステップと、を含み、
前記現在ブロックが少なくとも一つのエスケープコーデッドサンプルを含むことに基づいて、前記エスケープ値は、前記量子化されたエスケープ値情報及び前記パレットモードの量子化パラメータに基づいて導出され、
前記パレットモードの量子化パラメータは、変換スキップモードに対する最小量子化パラメータについての情報に基づいて導出される、画像デコーディング方法。
【請求項2】
エンコーディング装置によって実行される画像エンコーディング方法において、
現在ブロックに対するパレットモードでのエスケープ値を導出するステップと、
前記エスケープ値に基づいて量子化されたエスケープ値を導出するステップと、
前記量子化されたエスケープ値情報を含む画像情報をエンコーディングするステップと、を含み、
前記量子化されたエスケープ値は、前記現在ブロック内の前記エスケープ値に対する前記パレットモードの量子化パラメータに基づいて導出され、
前記パレットモードの量子化パラメータは、変換スキップモードに対する最小量子化パラメータについての情報に基づいて導出される、画像エンコーディング方法。
【請求項3】
画像に対するデータの送信方法であって、
ビットストリームを生成するステップであって、前記ビットストリームは、現在ブロックに対するパレットモードの中のエスケープ値を導出し、前記エスケープ値に基づいて量子化されたエスケープ値を導出し、前記量子化されたエスケープ値情報を含む画像情報をエンコーディングして前記ビットストリームを生成することにより生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップを含み、
前記量子化されたエスケープ値は前記現在ブロックの中の前記エスケープ値に対する前記パレットモードの量子化パラメータに基づいて導出され、
前記パレットモードの量子化パラメータは、変換スキップモードに対する最小量子化パラメータについての情報に基づいて導出される、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ビデオまたは画像コーディングに関し、例えば、パレットモードに基づくコーディング技術に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオのような高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど、既存の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して画像データを送信するか、既存の格納媒体を利用して画像/ビデオデータを格納する場合、送信費用と格納費用が増加される。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム画像のように、現実画像と異なる画像特性を有する画像/ビデオに対する放送が増加している。
【0004】
これにより、上記のような様々な特性を有する高解像度・高品質の画像/ビデオの情報を効果的に圧縮して送信するか、格納し、再生するために高効率の画像/ビデオ圧縮技術が求められる。
【0005】
また、相当な量のテキスト及びグラフィックを含むコンピュータ生成ビデオ(computer generated video)のようなスクリーンコンテンツに対するコーディング効率性を向上させるために、パレットモードコーディング技術に関する論議がある。このような技術を効率的に適用するために、関連する情報をコーディングしてシグナリングする方案が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本文書の技術的課題は、ビデオ/画像コーディング効率を高める方法及び装置を提供することにある。
【0007】
本文書の他の技術的課題は、パレットモードコーディングで効率を高める方法及び装置を提供することにある。
【0008】
本文書のまた他の技術的課題は、パレットモードコーディングで用いられる多様な情報を効率的に構成してシグナリングする方法及び装置を提供することにある。
【0009】
本文書のまた他の技術的課題は、パレットモードでエスケープコーディングを効率的に適用する方法及び装置を提供することにある。
【課題を解決するための手段】
【0010】
本文書の一実施形態に係ると、パレットモードでの量子化されたエスケープ値に対するスケーリング過程で用いられる量子化パラメータを導出する際において、変換スキップモードに対する最小量子化パラメータ情報に基づいて導出されることができる。前記量子化パラメータは、変換スキップモードに対する最小量子化パラメータ値より大きいか同じ値を有することができる。
【0011】
本文書の一実施形態に係ると、パレットモードでの量子化されたエスケープ値の範囲をビット深度に基づいて制限することができる。例えば、ルマ成分に対する量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有し、クロマ成分に対する前記量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有することができる。
【0012】
本文書の一実施形態に係ると、パレットテーブルの最大インデックスに関するパレットサイズ情報を定義し、前記パレットサイズ情報をSPS(sequence parameter set)を通じてシグナリングすることができる。
【0013】
本文書の一実施形態に係ると、デコーディング装置によって実行されるビデオ/画像デコーディング方法を提供する。前記ビデオ/画像デコーディング方法は、本文書の実施形態で開示された方法を含むことができる。
【0014】
本文書の一実施形態に係ると、ビデオ/画像デコーディングを実行するデコーディング装置を提供する。前記デコーディング装置は、本文書の実施形態で開示された方法を実行することができる。
【0015】
本文書の一実施形態に係ると、エンコーディング装置によって実行されるビデオ/画像エンコーディング方法を提供する。前記ビデオ/画像エンコーディング方法は、本文書の実施形態で開示された方法を含むことができる。
【0016】
本文書の一実施形態に係ると、ビデオ/画像エンコーディングを実行するエンコーディング装置を提供する。前記エンコーディング装置は、本文書の実施形態で開示された方法を実行することができる。
【0017】
本文書の一実施形態に係ると、本文書の実施形態の少なくとも一つに開示されたビデオ/画像エンコーディング方法によって生成されたエンコーディングされたビデオ/画像情報が格納されたコンピュータ読み取り可能なデジタル記録媒体を提供する。
【0018】
本文書の一実施形態に係ると、デコーディング装置によって本文書の実施形態の少なくとも一つに開示されたビデオ/画像デコーディング方法を実行するように引き起こすエンコーディングされた情報またはエンコーディングされたビデオ/画像情報が格納されたコンピュータ読み取り可能なデジタル記録媒体を提供する。
【発明の効果】
【0019】
本文書は、多様な効果を奏することができる。例えば、本文書の一実施形態に係ると、全般的な画像/ビデオ圧縮効率を高めることができる。また、本文書の一実施形態に係ると、パレットモードコーディングで効率を向上させることができる。また、本文書の一実施形態に係ると、パレットモードコーディングで用いられる多様な情報を効率的に構成してシグナリングすることができる。また、本文書の一実施形態に係ると、パレットモードでエスケープコーディングを効率的に適用することにより、エスケープサンプルに対する正確度及びコーディング効率を向上させることができる。
【0020】
本文書の具体的な実施形態を通じて得ることができる効果は、以上で羅列された効果に制限されない。例えば、係わる技術分野において通常の知識を有する者(a person having ordinary skill in the related art)が本文書から理解したり誘導することができる多様な技術的効果が存在し得る。よって、本文書の具体的な効果は、本文書に明示的に記載されものに制限されず、本文書の技術的特徴から理解されたり誘導されることができる多様な効果を含むことができる。
【図面の簡単な説明】
【0021】
図1】本文書の実施形態に適用できるビデオ/画像コーディングシステムの例を概略的に示す。
図2】本文書の実施形態が適用できるビデオ/画像エンコーディング装置の構成を概略的に説明する図面である。
図3】本文書の実施形態が適用できるビデオ/画像デコーディング装置の構成を概略的に説明する図面である。
図4】本文書の実施形態が適用可能な概略的なビデオ/画像エンコーディング手順の例を示す。
図5】本文書の実施形態が適用可能な概略的なビデオ/画像デコーディング手順の例を示す。
図6】パレットコーディングの基本的な構造を説明するための一例を示す。
図7】パレットインデックスマップをコーディングするために用いられる水平及び垂直トラバーススキャン方法を説明するための一例を示す。
図8】パレットモードに基づくコーディング方法の一例を説明するための図面である。
図9】本文書の実施形態に係るビデオ/画像エンコーディング方法の一例を概略的に示す。
図10】本文書の実施形態に係るビデオ/画像デコーディング方法の一例を概略的に示す。
図11】本文書で開示された実施形態が適用できるコンテンツストリーミングシステムの例を示す。
【発明を実施するための形態】
【0022】
本文書は、様々な変更を加えることができ、種々の実施例を有することができ、特定実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施例に限定しようとするものではない。本明細書で常用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【0023】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成を複数の構成に分けることもできる。各構成が統合及び/または分離された実施例も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
【0024】
本文書において、“AまたはB(A or B)”は“ただA”、“ただB”または“AとBの両方とも”を意味することができる。他の表現としては、本文書において、“AまたはB(A or B)”は“A及び/またはB(A and/or B)”と解釈されることができる。例えば、本文書において、“A、BまたはC(A、B or C)”は“ただA”、“ただB”、“ただC”、または“A、B及びCの任意の全ての組み合わせ(any combination of A、B and C)”を意味することができる。
【0025】
本文書で用いられるスラッシュ(/)や読点(comma)は“及び/または(and/or)”を意味することができる。例えば、“A/B”は“A及び/またはB”を意味することができる。それによって、“A/B”は“ただA”、“ただB”、または“AとBの両方とも”を意味することができる。例えば、“A、B、C”は“A、BまたはC”を意味することができる。
【0026】
本文書において、“少なくとも一つのA及びB(at least one of A and B)”は、“ただA”、“ただB”または“AとBの両方とも”を意味することができる。また、本文書において、“少なくとも一つのAまたはB(at least one of A or B)”や“少なくとも一つのA及び/またはB(at least one of A and/or B)”という表現は“少なくとも一つのA及びB(at least one of A and B)”と同じく解釈されることができる。
【0027】
また、本文書において、“少なくとも一つのA、B及びC(at least one of A、B and C)”は、“ただA”、“ただB”、“ただC”、または“A、B及びCの任意の全ての組み合わせ(any combination of A、B and C)”を意味することができる。また、“少なくとも一つのA、BまたはC(at least one of A、B or C)”や“少なくとも一つのA、B及び/またはC(at least one of A、B and/or C)”は“少なくとも一つのA、B及びC(at least one of A、B and C)”を意味することができる。
【0028】
また、本文書で使われる括弧は“例えば(for example)”を意味することができる。具体的に、“予測(イントラ予測)”で表示された場合、“予測”の一例として“イントラ予測”が提案されたものであり得る。他の表現としては、本文書の“予測”は“イントラ予測”に制限(limit)されるものではなく、“イントラ予測”が“予測”の一例として提案されたものであり得る。また、“予測(即ち、イントラ予測)”で表示された場合も、“予測”の一例として“イントラ予測”が提案されたものである。
【0029】
本文書は、ビデオ/画像コーディングに関する。例えば、本文書に開示された方法/実施例は、VVC(Versatile Video Coding)標準に開示される方法に適用されることができる。また、本文書に開示された方法/実施例は、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)または次世代ビデオ/画像コーディング標準(例えば、H.267またはH.267など)に開示される方法に適用されることができる。
【0030】
本文書では、ビデオ/画像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は、互いに組み合わせて実行されることもできる。
【0031】
本文書において、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは、一つ以上のスライス/タイルで構成されることができる。タイルは、ピクチャ内の特定タイル列及び特定タイル列以内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and particular tile row in a picture)。前記タイル列は、CTUの四角領域であり、前記四角領域は、前記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素により明示されることができる(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。前記タイル行は、CTUの四角領域であり、前記四角領域は、ピクチャパラメータセット内のシンタックス要素により明示される幅を有し、高さは、前記ピクチャの高さと同じであり得る(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルスキャンは、ピクチャをパーティショニングするCTUの特定の順次的オーダリングを示すことができ、前記CTUは、タイル内のCTUラスタースキャンで連続的に整列されることができ、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタースキャンで連続的に整列されることができる(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、単一NALユニットに排他的に含まれることができる、整数個の完全なタイルまたはピクチャのタイル内の整数個の連続的な完全なCTU行を含むことができる(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit)。
【0032】
一方、一つのピクチャは、二つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の一つ以上のスライスの四角領域である(an rectangular region of one or more slices within a picture)。
【0033】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
【0034】
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち少なくとも一つを含むことができる。一つのユニットは、一つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0035】
また、本文書において、量子化/逆量子化及び/または変換/逆変換のうち少なくとも一つは、省略され得る。量子化/逆量子化が省略される場合、量子化された変換係数は、変換係数と呼ばれ得る。変換/逆変換が省略される場合、変換係数は、係数またはレジデュアル係数とも呼ばれ得、または、表現の統一性のために、 依然として変換係数とも呼ばれ得る。
【0036】
本文書において、量子化された変換係数及び変換係数は、各々、変換係数及びスケーリングされた(scaled)変換係数と呼ばれ得る。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、変換係数に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。レジデュアル情報(または、変換係数に関する情報)に基づいて変換係数が導出されることができ、変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。スケーリングされた変換係数に対する逆変換(変換)に基づいて、レジデュアルサンプルが導出されることができる。これは本文書の他の部分でも同様に適用/表現されることができる。
【0037】
本文書において、一つの図面内で個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
【0038】
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面において同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複した説明は、省略され得る。
【0039】
図1は、本文書の実施例に適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
【0040】
図1を参照すると、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコーディングされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
【0041】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/画像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/画像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0042】
ビデオソースは、ビデオ/画像のキャプチャ、合成または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程を関連データが生成される過程に代替されることができる。
【0043】
エンコーディング装置は、入力ビデオ/画像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0044】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0045】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコーディングすることができる。
【0046】
レンダラは、デコーディングされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
【0047】
図2は本文書の実施形態が適用できるビデオ/画像エンコーディング装置の構成を概略的に説明する図面である。以下で、エンコーディング装置とは、画像エンコーディング装置及び/またはビデオエンコーディング装置を含むことができる。
【0048】
図2に示すように、エンコーディング装置200は、画像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコーディング部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を備えて構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を備えることができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。レジデュアル処理部230は、減算部(subtractor、231)をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。上述した画像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250、及びフィルタリング部260は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体によって構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
【0049】
画像分割部210は、エンコーディング装置200に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/またはターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/またはターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本開示に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、前記予測ユニット及び前記変換ユニットは、各々上述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を導く単位及び/または変換係数からレジデュアル信号(residual signal)を導く単位であることができる。
【0050】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)等の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0051】
エンコーディング装置200は、入力画像信号(原本ブロック、原本サンプルアレイ)でインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力画像信号(原本ブロック、原本サンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0052】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0053】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードとマージモードとの場合に、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
【0054】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0055】
前記予測部(インター予測部221及び/または前記イントラ予測部222を備える)を介して生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうち少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現しようとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることができ、正方形でない可変大きさのブロックにも適用されることができる。
【0056】
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に送信され、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコーディング方法を行うことができる。エントロピーエンコーディング部240は、量子化された変換係数の他に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別にエンコーディングすることもできる。エンコーディングされた情報(例えば、エンコーディングされたビデオ/画像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信または格納されることができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)等、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、エンコーディング装置からデコーディング装置に伝達/シグナリングされる情報及び/またはシンタックス要素は、ビデオ/画像情報に含まれることができる。前記ビデオ/画像情報は、上述したエンコーディング手順を介してエンコーディングされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、または、デジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/または通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。エントロピーエンコーディング部240から出力された信号は、送信する送信部(図示せず)及び/または格納する格納部(図示せず)がエンコーディング装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピーエンコーディング部240に含まれることもできる。
【0057】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元できる。加算部155は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0058】
一方、ピクチャエンコーディング及び/または復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0059】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0060】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置100とデコーディング装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0061】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
【0062】
図3は本文書の実施形態が適用できるビデオ/画像デコーディング装置の構成を概略的に説明する図面である。以下で、デコーディング装置とは、画像デコーディング装置及び/またはビデオデコーディング装置を含むことができる。
【0063】
図3に示すように、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を備えて構成されることができる。予測部330は、インター予測部331及びイントラ予測部332を備えることができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)321を備えることができる。上述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
【0064】
ビデオ/画像情報を含むビットストリームが入力されれば、デコーディング装置300は、図3のエンコーディング装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元できる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/またはターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコーディング装置300を介してデコーディング及び出力された復元画像信号は、再生装置を介して再生されることができる。
【0065】
デコーディング装置300は、図3のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/または前記一般制限情報に基づいてさらにピクチャをデコーディングすることができる。本文書において後述されるシグナリング/受信される情報及び/またはシンタックス要素は、前記デコーディング手順を介してデコーディングされて、前記ビットストリームから取得されることができる。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコーディングし、画像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力できる。より具体的に、CABACエントロピーデコーディング方法は、ビットストリームで各シンタックス要素に該当するbinを受信し、デコーディング対象のシンタックス要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/binの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってbinの発生確率を予測してbinの算術デコーディング(arithmetic decoding)を行い、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後、次のシンボル/binの文脈モデルのためにデコーディングされたシンボル/binの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが行われたレジデュアル値、即ち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出することができる。また、エントロピーデコーディング部310でデコーディングされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコーディング部310の構成要素であることもできる。一方、本文書に係るデコーディング装置は、ビデオ/画像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち少なくとも1つを備えることができる。
【0066】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコーディング装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0067】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0068】
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0069】
予測部320は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/画像情報に含まれてシグナリングされることができる。
【0070】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0071】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。様々な予測モードに基づいてインター予測が行われ得るし、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0072】
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/またはイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0073】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または、次のピクチャのインター予測のために使用されることもできる。
【0074】
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0075】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0076】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納できる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納でき、イントラ予測部331に伝達することができる。
【0077】
本明細書において、エンコーディング装置100のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施形態は、各々デコーディング装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
【0078】
一方、前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同様に導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで画像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0079】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0080】
図4は本文書の実施形態が適用可能な概略的なビデオ/画像エンコーディング手順の例を示す。図4で、S400は、図2で上述したエンコーディング装置の予測部220で実行されることができ、S410は、レジデュアル処理部230で実行されることができ、S420は、エントロピーエンコーディング部240で実行されることができる。S400は、本文書で説明されたインター/イントラ予測手順を含むことができ、S410は、本文書で説明されたレジデュアル処理手順を含むことができ、S420は、本文書で説明された情報エンコーディング手順を含むことができる。
【0081】
図4を参照すると、ビデオ/画像エンコーディング手順は、図2に対する説明で示したように、概略的にピクチャ復元のための情報(例えば、予測情報、レジデュアル情報、パーティショニング情報など)をエンコーディングしてビットストリーム形態で出力する手順だけでなく、現在ピクチャに対する復元ピクチャを生成する手順、及び復元ピクチャにインループフィルタリングを適用する手順(optional)を含むことができる。エンコーディング装置は、逆量子化部234及び逆変換部235を通じて量子化された変換係数から(修正された)レジデュアルサンプルを導出することができ、S400の出力である予測サンプルと前記(修正された)レジデュアルサンプルに基づいて復元ピクチャを生成することができる。このように生成された復元ピクチャは、前述のデコーディング装置で生成した復元ピクチャと同じであり得る。前記復元ピクチャに対するインループフィルタリング手順を通じて修正された復元ピクチャが生成されることができ、これは復号ピクチャバッファまたはメモリ270に格納されることができ、デコーディング装置での場合と同じく、以後ピクチャのエンコーディングの時、インター予測手順で参照ピクチャとして用いられることができる。前述のように、場合によって、前記インループフィルタリング手順の一部または全部は省略され得る。前記インループフィルタリング手順が実行される場合、(インループ)フィルタリング関連情報(パラメータ)がエントロピーエンコーディング部240でエンコーディングされて、ビットストリーム形態で出力されることができ、デコーディング装置は、前記フィルタリング関連情報に基づいてエンコーディング装置と同じ方法でインループフィルタリング手順を実行することができる。
【0082】
このようなインループフィルタリング手順を通じてブロッキングアーティファクト(artifact)及びリングイング(ringing)アーティファクトなど画像/動画のコーディング時に発生するノイズを減少することができ、主観的/客観的ビジュアルクオリティを高めることができる。また、エンコーディング装置とデコーディング装置の両方でインループフィルタリング手順を実行することで、エンコーディング装置とデコーディング装置は、同じ予測結果を導出することができ、ピクチャコーディングの信頼性を高め、ピクチャコーディングのために送信すべきデータ量を減少することができる。
【0083】
前述のように、デコーディング装置だけでなく、エンコーディング装置でもピクチャ復元手順が実行されることができる。各ブロック単位で、イントラ予測/インター予測に基づいて復元ブロックが生成されることができ、復元ブロックを含む復元ピクチャが生成されることができる。現在ピクチャ/スライス/タイルグループがIピクチャ/スライス/タイルグループの場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測のみに基づいて復元されることができる。一方、現在ピクチャ/スライス/タイルグループがPまたはBピクチャ/スライス/タイルグループの場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測またはインター予測に基づいて復元されることができる。この場合、現在ピクチャ/スライス/タイルグループ内の一部ブロックに対してはインター予測が適用され、残り一部ブロックに対してはイントラ予測が適用されることもできる。ピクチャのカラー成分は、ルマ成分及びクロマ成分を含むことができ、本文書で明示的に制限しなければ、本文書で提案される方法及び実施形態は、ルマ成分及びクロマ成分に適用されることができる。
【0084】
図5は本文書の実施形態が適用可能な概略的なビデオ/画像デコーディング手順の例を示す。図5で、S500は、図3で上述したデコーディング装置のエントロピーデコーディング部310で実行されることができ、S510は、予測部330で実行されることができ、S520は、レジデュアル処理部320で実行されることができ、S530は、加算部340で実行されることができ、S540は、フィルタリング部350で実行されることができる。S500は、本文書で説明された情報デコーディング手順を含むことができ、S510は、本文書で説明されたインター/イントラ予測手順を含むことができ、S520は、本文書で説明されたレジデュアル処理手順を含むことができ、S530は、本文書で説明されたブロック/ピクチャ復元手順を含むことができ、S540は、本文書で説明されたインループフィルタリング手順を含むことができる。
【0085】
図5を参照すると、ピクチャデコーディング手順は、図3に対する説明で示したように、概略的に、ビットストリームから(デコーディングを通じた)画像/ビデオ情報獲得手順(S500)、ピクチャ復元手順(S510~S530)及び復元されたピクチャに対するインループフィルタリング手順(S540)を含むことができる。前記ピクチャ復元手順は、本文書で説明されたインター/イントラ予測(S510)及びレジデュアル処理(S520)(量子化された変換係数に対する逆量子化、逆変換)過程を経て獲得した予測サンプル及びレジデュアルサンプルに基づいて実行されることができる。前記ピクチャ復元手順を通じて生成された復元ピクチャに対するインループフィルタリング手順を通じて修正された(modified)復元ピクチャが生成されることができ、前記修正された復元ピクチャがデコーディングされたピクチャとして出力されることができ、また、デコーディング装置の復号ピクチャバッファまたはメモリ360に格納されて、以後ピクチャのデコーディングの時インター予測手順で参照ピクチャとして用いられることができる。
【0086】
場合によって、前記インループフィルタリング手順は省略されることができ、この場合、前記復元ピクチャがデコーディングされたピクチャとして出力されることができ、また、デコーディング装置の復号ピクチャバッファまたはメモリ360に格納されて、以後ピクチャのデコーディングの時インター予測手順で参照ピクチャとして用いられることができる。前記インループフィルタリング手順(S540)は、前述のように、デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順及び/または バイラテラルフィルタ(bi-lateral filter)手順などを含むことができ、その一部または全部が省略されることができる。また、前記デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順及びバイラテラルフィルタ(bi-lateral filter)手順の中の一つまたは一部が順次適用されることができ、または全部順次適用されることもできる。例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、SAO手順が実行されることができる。または、例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、ALF手順が実行されることができる。これは、エンコーディング装置でも同じく実行されることができる。
【0087】
前述のように、エンコーディング装置は、イントラ/インター/IBC予測などを通じて予測されたブロック(予測サンプル)に基づいてレジデュアルブロック(レジデュアルサンプル)を導出することができ、導出されたレジデュアルサンプルに変換及び量子化を適用して量子化された変換係数を導出することができる。量子化された変換係数に対する情報(レジデュアル情報)はレジデュアルコーディングシンタックスに含まれて、エンコーディング後にビットストリーム形態で出力されることができる。デコーディング装置は、前記ビットストリームから前記量子化された変換係数に対する情報(レジデュアル情報)を獲得し、デコーディングして量子化された変換係数を導出することができる。デコーディング装置は、量子化された変換係数に基づいて逆量子化/逆変換を経てレジデュアルサンプルを導出することができる。前述のように、前記量子化/逆量子化及び/または変換/逆変換の少なくとも一つは省略されることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数とも呼ばれ得、または表現の統一性のために、依然として変換係数とも呼ばれ得る。前記変換/逆変換の省略可否は、transform_skip_flagに基づいてシグナリングされることができる。例えば、transform_skip_flagの値が1の場合、前記変換/逆変換が省略されることを示すことができ、これを変換スキップモードと指称することができる。
【0088】
一般的に、ビデオ/画像コーディングでは量子化率を変化させることができ、変化された量子化率を利用して圧縮率を調節することができる。具現観点では、複雑度を考慮して、量子化率を直接用いる代わりに量子化パラメータ(quantization parameter、QP)が用いられることができる。例えば、0から63までの整数値の量子化パラメータが用いられることができ、各量子化パラメータ値は、実際量子化率に対応されることができる。また、例えば、ルマ成分(ルマサンプル)に対する量子化パラメータ(QP)とクロマ成分(クロマサンプル)に対する量子化パラメータ(QP)は異なるように設定されることができる。
【0089】
量子化過程は、変換係数(C)を入力とし、量子化率(Qstep)で割って、これに基づいて量子化された変換係数(C`)を得ることができる。この場合、計算の複雑度を考慮して、量子化率にスケールを掛けて正数形態に作り、スケール値に対応する値だけシフト演算を実行することができる。量子化率とスケール値の倍に基づいて量子化スケール(quantization scale)が導出されることができる。すなわち、QPによって前記量子化スケールが導出されることができる。例えば、前記変換係数(C)に前記量子化スケールを適用して、これに基づいて量子化された変換係数(C`)が導出されることもできる。
【0090】
逆量子化過程は、量子化過程の逆過程で量子化された変換係数(C`)に量子化率(Qstep)を掛けて、これに基づいて復元された変換係数(C``)を得ることができる。この場合、前記量子化パラメータによってレベルスケール(level scale)が導出されることができ、前記量子化された変換係数(C`)に前記レベルスケールを適用して、これに基づいて復元された変換係数(C``)が導出されることができる。復元された変換係数(C``)は、変換及び/または量子化過程での損失(loss)によって最初変換係数(C)と若干差があり得る。よって、エンコーディング装置でもデコーディング装置と同じく逆量子化を実行する。
【0091】
一方、予測を実行する際において、パレットコーディング(palette coding)に基づくことができる。パレットコーディングは、少ない数の固有の色相値を含むブロックを示すのに有用な技術である。ブロックに対して予測及び変換を適用する代わりに、パレットモードは、各サンプルのカラー値を示すためにインデックスをシグナリングする。このパレットモードは、ビデオメモリバッファ空間を節約するのに有用である。パレットモード(例えば、MODE_PLT)を用いてブロックがコーディングされることができる。このように、エンコーディングされたブロックをデコーディングするために、デコーダは、パレットカラー及びインデックスをデコーディングしなければならない。パレットカラーは、パレットテーブルによって示すことができ、パレットテーブルコーディング道具によってエンコーディングされることができる。
【0092】
図6はパレットコーディングの基本的な構造を説明するための一例を示す。
【0093】
図6を参照すると、イメージ600は、ヒストグラム610で示すことができる。この時、主なカラー値は、一般的にカラーインデックスにマッピングされ(620)、イメージはカラーインデックスマップを用いてコーディングされることができる(630)。
【0094】
パレットコーディングは、(イントラ)パレットモードまたは(イントラ)パレットコーディングモードなどと呼ばれ得る。パレットコーディングまたはパレットモードによって現在ブロックが復元されることができる。パレットコーディングは、イントラコーディングの一例として見られ、またはイントラ予測方法の一つとしても見られる。ただ、前述のスキップモードと同様に、当該ブロックに対する別途のレジデュアル値はシグナリングされないこともある。
【0095】
例えば、パレットモードは、相当な量のテキスト及びグラフィックを含むコンピュータ生成ビデオ(computer generated video)のようなスクリーンコンテンツに対するコーディング効率性を向上させるのに用いられることができる。一般的に、スクリーンコンテンツのローカル領域には、鋭いエッジ(sharp edge)によって分けられる数種の色がある。このような特性を活用するために、パレットモードは、パレットテーブルのカラーエントリ(color entries)を示すインデックス(indexes)に基づいてブロックのサンプルを示すことができる。
【0096】
例えば、パレットテーブルに対する情報がシグナリングされることができる。パレットテーブルは、それぞれのカラーに対応するインデックス値を含むことができる。パレットインデックス予測データが受信されることができ、ビデオデータのピクセルをパレットテーブルのカラーインデックスにマッピングするパレットインデックスマップ(palette index map)の少なくとも一部に対するインデックス値を示すデータを含むことができる。パレットインデックス予測データは、パレットインデックスマップの少なくとも一部に対するインデックス値とラン値(run values)を関連させるラン値データ(run value data)を含むことができる。ラン値は、エスケープカラーインデックス(escape color index)と関連されることができる。パレットインデックスマップは、最後のインデックス値に基づいてパレットインデックス予測データのインデックス値を調整するか否かを決めることにより、少なくとも部分的にパレットインデックス予測データから生成されることができる。ピクチャ内の現在ブロックはパレットインデックスマップによって再構成されることができる。
【0097】
パレットモードを用いる場合、CUのピクセル値は代表カラー値のセットで示されることができる。このようなセットは、パレットとして指称され得る。パレット内のカラー値に近い値を有するピクセルの場合、パレット内のカラー値に対応するパレットインデックスがシグナリングされることができる。パレット以外のカラー値を有するピクセルの場合、そのピクセルは、エスケープシンボル(escape symbol)で表示されることができ、量子化されたピクセル値が直接シグナリングされることができる。本文書で、ピクセルまたはピクセル値は、サンプルまたはサンプル値として指称され得る。
【0098】
パレットモードでエンコーディングされたブロックをデコーディングするために、デコーダは、パレットカラー及びインデックスをデコーディングしなければならない。パレットカラーは、パレットテーブルで示すことができ、パレットテーブルコーディング道具でエンコーディングされることができる。エスケープフラグが各CUに対してシグナリングされて、現在CUにエスケープシンボルが存在するか否かを示すことができる。エスケープシンボルが存在する場合、パレットテーブルが1だけ増加され、最後のインデックスがエスケープモードに割り当てられることができる。CU内の全てのピクセルのパレットインデックスは、パレットインデックスマップを形成し、パレットインデックスマップコーディング道具によってエンコーディングされることができる。
【0099】
例えば、パレットテーブルのコーディングのために、パレット予測子(palette predictor)が保持されることができる。予測子が0にリセットされる各スライスの開始部分で予測子が初期化されることができる。パレット予測子の各エントリーに対して、再利用フラグ(reuse flag)がシグナリングされて、現在パレットの一部であるか否かを示すことができる。再利用フラグは、0のrun-lengthコーディングを用いて送信されることができる。その後、新しいパレットエントリーの個数は、0次の指数ゴロム(exponential Golomb)コーディングを用いてシグナリングされることができる。最後に、新しいパレットエントリーに対するコンポーネント値(component value)がシグナリングされることができる。現在、CUをエンコーディングした後、パレット予測子は、現在パレットを用いてアップデートされることができ、現在パレットで再使用されない以前パレット予測子のエントリーは、許容される最大大きさに到逹するまで新しいパレット予測子の末に追加されることができる(palette stuffing、パレットスタッフィング)。
【0100】
例えば、パレットインデックスマップをコーディングするために、水平及び垂直トラバーススキャン(traverse scans)を用いてインデックスをコーディングすることができる。スキャン手順(scan order)は、フラグ情報(例えば、palette_transpose_flag)を用いてビットストリームから明示的にシグナリングされることができる。
【0101】
図7はパレットインデックスマップをコーディングするために用いられる水平及び垂直トラバーススキャン方法を説明するための一例を示す。
【0102】
図7の(a)は水平トラバーススキャンを用いてパレットインデックスマップをコーディングする一例を示し、図7の(b)は垂直トラバーススキャンを用いてパレットインデックスマップをコーディングする一例を示す。
【0103】
図7の(a)に示されたように、水平スキャンを用いる場合、現在ブロック(すなわち、現在CU)内の第一行(最上端行)にあるサンプルから最後行(最下端行)にあるサンプルまで水平方向にスキャンしてパレットインデックスをコーディングすることができる。
【0104】
図7の(b)に示されたように、垂直スキャンを用いる場合、現在ブロック(すなわち、現在CU)内の第一列(一番左側列)にあるサンプルから最後列(一番右側列)にあるサンプルまで垂直方向にスキャンしてパレットインデックスをコーディングすることができる。
【0105】
一方、パレットインデックスは、二つのパレットサンプルモードを用いてコーディングされることができる。例えば、「INDEX」モード及び「COPY_ABOVE」モードを用いることができる。このようなパレットモードは、「INDEX」モードであるか「COPY_ABOVE」モーであるかを示すフラグを用いてシグナリングされることができる。この時、水平スキャンが用いられる場合には、上端行(top row)を除いてフラグをシグナリングすることができ、垂直スキャンが用いられる場合、または以前モードが「COPY_ABOVE」モードの場合には、第一列(first column)を除いてフラグをシグナリングすることができる。「COPY_ABOVE」モードでは、上にある行のサンプルのパレットインデックスがコピーされることができる。「INDEX」モードではパレットインデックスが明示的にシグナリングされることができる。「INDEX」モード及び「COPY_ABOVE」モードの両方に対して、同じモードを利用してコーディングされたピクセル個数を示すラン値がシグナリングされることができる。
【0106】
インデックスマップに対するエンコーディング順序は次の通りである。まず、CUに対するインデックス値の個数がシグナリングされることができる。その次に、TB(truncated binary)コーディングを用いて全体CUに対する実際インデックス値をシグナリングすることができる。インデックス個数とインデックス値は、全部バイパスモード(bypass mode)でコーディングされることができる。これは、インデックス関連バイパスビン(index-related bypass bins)がともにグループ化されることができる。次に、パレットモード(INDEX``モードまたは「COPY_ABOVE」モード)及びランがインターリーブ方式(interleaved manner)でシグナリングされることができる。最後に、全体CUに対するエスケープサンプルに対応するコンポーネントエスケープ値が一緒にグループ化され、バイパスモードでコーディングされることができる。インデックス値をシグナリングした後、追加シンタックス要素であるlast_run_type_flagがシグナリングされることができる。このシンタックス要素はインデックス個数とともに、ブロック内の最後のランに対応するラン値をシグナリングする必要がない。
【0107】
一方、VVC標準では、ルマとクロマに対するコーディングユニットパーティショニングを分離するIスライスに対してデュアルツリーが使用(enabled)されることができる。パレットコーディング(パレットモード)は、ルマ(Y成分)及びクロマ(Cb及びCr成分)に個別的、または一緒に適用されることができる。デュアルツリーが用いられないと(disable)、パレットコーディング(パレットモード)はルマ(Y成分)及びクロマ(Cb及びCr成分)にともに適用されることができる。
【0108】
図8はパレットモードに基づくコーディング方法の一例を説明するための図面である。
【0109】
図8を参照すると、デコーディング装置は、ビットストリーム及び/または以前パレット情報に基づいてパレット情報を獲得することができる(S800)。
【0110】
一実施形態として、デコーディング装置は、ビットストリームからパレットインデックス情報、トラバース方向(スキャン順序)情報、CU内のサンプルを巡回して各サンプル位置に対するパレットモード情報及び各パレットモードの連続長さ(run-length)情報を受信することができる。
【0111】
デコーディング装置は、パレット情報に基づいてパレットを構成することができる(S810)。
【0112】
一実施形態として、デコーディング装置は、パレット予測子を構成することができる。以前ブロックで用いたパレット情報を追後に発生する次のパレットCU(すなわち、パレットモードでコーディングされるCU)のために格納することができる。これをパレット予測子エントリーと定義することができる。そして、デコーディング装置は、新規パレットエントリー情報を受信し、現在CUに対するパレットを構成することができる。例えば、デコーディング装置は受信されたパレット予測子再利用情報と現在CUで用いられる新しいパレットエントリー情報を受信した後、この二つのエントリー情報を結合して現在CUを代表する一つのパレットに構成することができる。
【0113】
デコーディング装置は、パレットに基づく現在ブロック内のサンプル値(サンプル予測値)を導出することができる(S820)。
【0114】
一実施形態として、デコーディング装置は、トラバース方向(スキャン手順)情報に基づいて、CU内のサンプルを水平方向或は垂直方向で巡回しながら、前記獲得されたパレット情報からサンプルを構成することができる。パレットモード情報がCOPY_ABOVEモードを示す場合、垂直方向スキャンでは左側サンプル位置のインデックス情報をコピーし、水平方向スキャンでは上端サンプル位置のインデックス情報をコピーして、CU内の各サンプル値を導出することができる。すなわち、CU内の各サンプルのインデックス情報に基づいて、前記構成されたパレットテーブルから各サンプルのカラー値を導出して、CU内予測サンプルを導出することができる。そして、デコーディング装置は、パレット情報を利用したCU内の各サンプル情報を再構成して、パレット予測子をアップデートすることができる。
【0115】
一方、前述のパレットコーディング(パレットモード或はパレットコーディングモード)は、現在CUに対してパレットモードでコーディングされた否かを指示し、パレットモードを適用してコーディングするための情報をシグナリングすることができる。
【0116】
一例として、パレットコーディングモードの可用可否に関する情報が、次の表1のように、SPS(sequence parameter set)を通じてシグナリングされることができる。
【0117】
【表1】
【0118】
前記表1のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表2のように示すことができる。
【0119】
【表2】
【0120】
前記表1及び表2を参照すると、SPSでsps_palette_enabled_flagシンタックス要素がパーシング/シグナリングされることができる。sps_palette_enabled_flagシンタックス要素は、パレットコーディングモードが可用であるか否かを示すことができる。例えば、sps_palette_enabled_flagの値が1の場合、パレットコーディングモードが可用であることを示すことができ、この時、コーディングユニットシンタックスで現在コーディングユニットに対してパレットコーディングモードを適用するか否かを示す情報(例:pred_mode_plt_flag)をパーシング/シグナリングすることができる。または、sps_palette_enabled_flagの値が0の場合、パレットコーディングモードが可用でないことを示すことができ、この時、コーディングユニットシンタックスで現在コーディングユニットに対してパレットコーディングモードを適用するか否かを示す情報(例:pred_mode_plt_flag)をパーシング/シグナリングしないことがある。
【0121】
また、一例として、パレットコーディングモードの可用可否に関する情報(例:sps_palette_enabled_flag)に基づいて、パレットモードを適用してコーディングするか否かに関する情報がシグナリングされることができ、次の表3のように、コーディングユニットシンタックスを通じてシグナリングされることができる。
【0122】
【表3】
【0123】
前記表3のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表4のように示すことができる。
【0124】
【表4】
【0125】
前記表3及び表4を参照すると、コーディングユニットシンタックスでpred_mode_plt_flagシンタックス要素がパーシング/シグナリングされることができる。pred_mode_plt_flagシンタックス要素は、現在コーディングユニットにパレットモードが適用されるか否かを示すことができる。例えば、pred_mode_plt_flagの値が1の場合、パレットモードが現在コーディングユニットに適用されることを指示し、pred_mode_plt_flagの値が0の場合、現在コーディングユニットにパレットモードが適用されないことを指示することができる。
【0126】
この時、pred_mode_plt_flagは、パレットコーディングモードの可用可否に関する情報(例:sps_palette_enabled_flag)に基づいてパーシング/シグナリングされることができる。例えば、sps_palette_enabled_flagの値が1の場合(すなわち、パレットコーディングモードが可用である場合)、pred_mode_plt_flagがパーシング/シグナリングされることができる。
【0127】
また、pred_mode_plt_flagに基づいて現在コーディングユニットに対してパレットモードを適用してコーディングを実行することができる。例えば、pred_mode_plt_flagの値が1の場合、palette_coding()シンタックスをパーシング/シグナリングすることで、現在コーディングユニットに対してパレットモードを適用して復元サンプルを生成することができる。
【0128】
一例として、次の表5は、パレットコーディングシンタックスを示す。
【0129】
【表5-1】
【0130】
【表5-2】
【0131】
【表5-3】
【0132】
前記表5のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表6のように示すことができる。
【0133】
【表6-1】
【0134】
【表6-2】
【0135】
【表6-3】
【0136】
【表6-4】
【0137】
【表6-5】
【0138】
【表6-6】
【0139】
前記表5及び表6を参照すると、現在ブロック(すなわち、現在コーディングユニット)に対してパレットモードが適用される場合、前記表5のようなパレットコーディングシンタックス(例:palette_coding())がパーシング/シグナリングされることができる。
【0140】
例えば、パレットエントリー情報に基づいてパレットテーブルを構成することができる。パレットエントリー情報は、palette_predictor_run、num_signalled_palette_entries、new_palette_entriesなどのシンタックス要素を含むことができる。
【0141】
また、パレットインデックス情報に基づいて現在ブロックに対するパレットインデックスマップを構成することができる。パレットインデックス情報は、num_palette_indices_minus1、palette_idx_idc、copy_above_indices_for_final_run_flag、palette_transpose_flagなどのシンタックス要素を含むことができる。前記のようなパレットインデックス情報に基づいて、トラバーススキャン方向(垂直方向或は水平方向)によって巡回しながら現在ブロック内のサンプルに対してパレットインデックス値(例:PaletteIndexIdc)を導出して、パレットインデックスマップ(例:PaletteIndexMap)を構成することができる。
【0142】
また、パレットインデックスマップに基づいてパレットテーブル内のパレットエントリーに対するサンプル値を導出し、前記パレットエントリーにマッピングされたサンプル値(すなわち、カラー値)に基づいて現在ブロックの復元サンプルを生成することができる。
【0143】
また、現在ブロック内のエスケープ値を有するサンプルが存在する場合(すなわち、palette_escape_val_present_flagの値が1の場合)、エスケープ情報に基づいて現在ブロックに対するエスケープ値を導出することができる。エスケープ情報は、palette_escape_val_present_flag、palette_escape_valなどのシンタックス要素を含むことができる。例えば、量子化されたエスケープ値情報(例:palette_escape_val)に基づいて現在ブロック内のエスケープコーディングされたサンプルに対するエスケープ値を導出することができる。前記エスケープ値に基づいて現在ブロックの復元サンプルを生成することができる。
【0144】
前述のように、本文書で開示されるシンタックステーブル内の情報(シンタックス要素)は、画像/ビデオ情報に含まれることができ、エンコーディング装置で実行されたコーディング技法(パレットコーディング含む)によって構成/エンコーディングされて、ビットストリーム形態でデコーディング装置に伝達されることができる。デコーディング装置は、当該シンタックステーブル内の情報(シンタックス要素)をパーシング/デコーディングすることができる。デコーディング装置は、デコーディングされた情報に基づいてパレットコーディングなどのコーディング技法を実行することができ、これに基づいてブロック/画像/ビデオ復元(デコーディング)手順を実行することができる。以下、本文書ではパレットコーディングに基づいてブロック/画像/ビデオを効率的にコーディングするためのシンタックステーブル及びシンタックス要素を提案する。
【0145】
本文書は、パレットモードコーディングでエスケープ値を効率的にコーディングしてシグナリングする方案を提案する。パレットモードでブロック内の周辺サンプルと特性の異なる値を有するサンプルに対して別途に当該サンプル値を伝送するために、エスケープ値が用いられることができる。このようなエスケープ値は追加的なデータであるので、これを節約するために量子化をすることができる。また、パレットモードのエスケープコーディングでは、変換が適用されず、量子化されたエスケープ値が直接シグナリングされることができる。これは、コーディングユニット(CU)に変換が適用されない変換スキップモードと類似することで考慮されることができる。
【0146】
現在VVC標準では、パレットモードでのエスケープ値に全体範囲の量子化パラメータ(quantization parameters;QP)値を適用する。しかし、本文書では、パレットモードでのエスケープ値コーディングのための量子化ステップサイズが1よりも小くなることを防止するために、QP値の範囲を制限する方案を提案する。一実施形態として、変換スキップのための最小QPと同じ制限がパレットモードでのエスケープ値コーディングに適用されることができる。変換スキップのための最小QPを用いてパレットモードのための最小QPをクリッピングすることができる。
【0147】
一例として、変換スキップのための最小QPに対する情報は、次の表7のように、SPS(sequence parameter set)を通じてシグナリングされることができる。
【0148】
【表7】
【0149】
前記表7のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表8のように示すことができる。
【0150】
【表8】
【0151】
前記表7及び表8を参照すると、SPSでmin_qp_prime_ts_minus4シンタックス要素がパーシング/シグナリングされることができる。min_qp_prime_ts_minus4シンタックス要素は、変換スキップモードに対して許容される最小量子化パラメータを示すことができる。言い換えれば、min_qp_prime_ts_minus4シンタックス要素に基づいて変換スキップモードでの最小量子化パラメータ値(例:QpPrimeTsMin)が導出されることができる。例えば、min_qp_prime_ts_minus4の値に4を加算することにより、最小量子化パラメータ値(例:QpPrimeTsMin)を導出することができる。
【0152】
前述のように、SPSでシグナリングされるmin_qp_prime_ts_minus4シンタックス要素に基づいて、パレットモードのエスケープ値に対するQPは、次の表9に開示されたアルゴリズムのように導出されることができる。すなわち、パレットモードに基づくデコーディング過程でエスケープ値を再構成するために用いられるQP値は、次の表9に開示されたアルゴリズムのように導出されることができる。
【0153】
【表9】
【0154】
表9を参照すると、パレットモードのエスケープ値が存在する場合、QP値が導出されることができる。すなわち、パレットモードのエスケープ値に対するQPは、前述のmin_qp_prime_ts_minus4シンタックス要素に基づいて導出される変換スキップモードでの最小量子化パラメータ値(例:QpPrimeTsMin)に基づいて導出されることができる。例えば、前記表9に示したように、パレットモードのエスケープ値に対するQPは、QpPrimeTsMin及び量子化パラメータQp(ルマ成分の場合Qp`Y、クロマ成分の場合Qp`CbまたはQp`Cr)のうち、大きい値に導出されることができる。そして、パレットモードのエスケープ値に対するQPに基づいてエスケープ値を導出して、ブロック内のサンプルを修復することができる。
【0155】
また、本文書では、前記のように、パレットモードでのQP範囲が変換スキップモードでの最小量子化パラメータ値(例:QpPrimeTsMin)より大きいか同じ場合に制限される時、パレットモードで量子化されたエスケープ値の範囲を制限することができる。一実施形態として、パレットモードで量子化されたエスケープ値の範囲は、ビット深度(bitdepth)に基づいて決められることができ、例えば(1<<BitDepth)-1より大きくないように制限されることができる。
【0156】
一例として、パレットモードで量子化されたエスケープ値は、シンタックス要素palette_escape_valで示すことができる。前記シンタックス要素palette_escape_valは、次の表10のように、パレットコーディングシンタックスを通じてシグナリングされることができる。
【0157】
【表10】
【0158】
前記表10のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表11のように示すことができる。
【0159】
【表11】
【0160】
前記表10及び表11を参照すると、パレットコーディングシンタックスでpalette_escape_valシンタックス要素がパーシング/シグナリングされることができる。palette_escape_valシンタックス要素は、量子化されたエスケープ値を示すことができる。また、表10に示したように、シンタックス要素palette_escape_valの値がPaletteEscapeValに設定されることができ、このPaletteEscapeValは、パレットインデックスマップ(PaletteIndexMap)が最大パレットインデックス(MaxPaletteIndex)と同じであり、palette_escape_val_present_flagの値が1のサンプルのエスケープ値を示すことができる。ここで、palette_escape_val_present_flagの値が1の場合とは、現在CUに少なくとも一つのエスケープコーディングされたサンプル(エスケープ値)を含むことを意味することができる。例えば、ルマ成分に対して、PaletteEscapeValは、0から(1<<(BitDepth))-1内の範囲に制限されることができる。クロマ成分に対して、PaletteEscapeValは、0から(1<<(BitDepth))-1内の範囲に制限されることができる。
【0161】
また、本文書では、パレットサイズを定義し、これをシグナリングする方案を提案する。パレットサイズは、パレットテーブルのエントリー個数(すなわち、パレットテーブルのインデックス個数)を示すことができる。一実施形態として、本文書では、一つ以上の定数(constant(s))でパレットサイズを定義することで、パレット内のエントリー個数を示すことができる。
【0162】
一例として、パレットサイズは、シンタックス要素palette_max_sizeで示すことができ、シンタックス要素palette_max_sizeは、全体シーケンスに対して同一またはCUサイズ(すなわち、CU内のピクセル個数)によって異なってもよい。例えば、パレットサイズ(palette_max_size)は、パレットテーブルの最大許容されるインデックスを示すことができ、31に定義されることができる。他の例として、パレットサイズ(palette_max_size)は、パレットテーブルの最大許容されるインデックスを示すことができ、CUサイズによって、次の表12のように定義されることができる。
【0163】
【表12】
【0164】
前記表12に開示されたパレットサイズ63、31、15などとCUサイズ1024、256などは、ただ例示として用いられただけで、他の数字に変更されることもできる。
【0165】
一実施形態として、パレットサイズを示す情報(例:palette_max_size)は、次の表13のように、SPSを通じてシグナリングされることができる。
【0166】
【表13】
【0167】
前記表13のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表14のように示すことができる。
【0168】
【表14】
【0169】
前記表13及び表14を参照すると、SPSで、palette_max_sizeシンタックス要素がパーシング/シグナリングされることができる。palette_max_sizeシンタックス要素は、パレットテーブルの最大許容されるインデックスを示すことができ、1から63内の範囲に制限されることができる。
【0170】
この時、palette_max_sizeシンタックス要素は、パレットモードが可用(enabled)であるか否かを指示するための情報であるsps_palette_enabled_flagシンタックス要素に基づいてパーシング/シグナリングされることができる。例えば、sps_palette_enabled_flagの値が1の場合(すなわち、パレットモードが可用であることと指示する場合)、palette_max_sizeシンタックス要素がパーシング/シグナリングされることができる。
【0171】
または、一実施形態として、パレットサイズを示す情報(例:log2_palette_max_size)は、次の表15のように、SPSを通じてシグナリングされることができる。
【0172】
【表15】
【0173】
前記表15のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表16のように示すことができる。
【0174】
【表16】
【0175】
前記表15及び表16を参照すると、SPSで、log2_palette_max_sizeシンタックス要素がパーシング/シグナリングされることができる。log2_palette_max_sizeシンタックス要素はパレットサイズ(すなわち、palette_max_size+1)のlog2値を示すことができる。よって、パレットテーブルの最大許容されるインデックスを示すpalette_max_sizeは、(1<<log2_palette_max_size)-1で計算して導出されることができ、1から63内の範囲に制限されることができる。
【0176】
この時、log2_palette_max_sizeシンタックス要素は、パレットモードが可用(enabled)であるか否かを指示するための情報であるsps_palette_enabled_flagシンタックス要素に基づいてパーシング/シグナリングされることができる。例えば、sps_palette_enabled_flagの値が1の場合(すなわち、パレットモードが可用であることと指示する場合)、log2_palette_max_sizeシンタックス要素がパーシング/シグナリングされることができる。
【0177】
または、一実施形態として、パレットサイズを示す情報(例:log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_default)は、次の表17のように、SPSを通じてシグナリングされることができる。
【0178】
【表17】
【0179】
前記表17のシンタックスに含まれたシンタックス要素(syntax elements)に対するセマンティック(semantics)は、次の表18のように示すことができる。
【0180】
【表18】
【0181】
前記表17及び表18を参照すると、SPSで、log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_defaultシンタックス要素がパーシング/シグナリングされることができる。
【0182】
log2_palette_CU_size_TH1シンタックス要素は、palette_max_size_TH1のサイズ制限のlog2値を示し、palette_max_size_TH1は1<<log2_Palette_CU_size_TH1に導出されることができる。
【0183】
log2_palette_max_size_TH1シンタックス要素は、(palette_max_size_TH1+1)のlog2値を示し、palette_max_size_TH1は、(1<<log2_palette_max_size_TH1)-1に導出されることができる。palette_max_size_TH1は、Palette_CU_size_TH1より大きいサイズを有するCUに対して、パレットテーブルの最大許容されるインデックスを示し、1から63までの範囲内に制限されることができる。
【0184】
log2_palette_max_size_defaultシンタックス要素は、(palette_max_size_default+1)のlog2値を示し、palette_max_size_defaultは、(1<<log2_palette_max_size_default)-1に導出されることができる。palette_max_size_defaultは、パレットテーブルの最大許容されるインデックスを示し、1から63までの範囲内に制限されることができる。
【0185】
この時、log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_defaultシンタックス要素は、パレットモードが可用(enabled)であるか否かを指示するための情報であるsps_palette_enabled_flagシンタックス要素に基づいてパーシング/シグナリングされることができる。例えば、sps_palette_enabled_flagの値が1の場合(すなわち、パレットモードが可用であることと指示する場合)、log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_defaultシンタックス要素がパーシング/シグナリングされることができる。
【0186】
また、palette_CU_size_TH及びpalette_max_size_THの一つ以上のセットがシグナリングされることができ、palette_max_sizeを示すのに用いられることができる。
【0187】
以下の図面は、本文書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な用語や名称(例えば、シンタックス/シンタックス要素の名称など)は、例示的に提示されたものであるので、本文書の技術的特徴が以下の図面に用いられた具体的な名称に制限されない。
【0188】
図9は本文書の実施形態に係るビデオ/画像エンコーディング方法の一例を概略的に示す。
【0189】
図9に開示された方法は、図2で開示されたエンコーディング装置200によって実行されることができる。具体的には、図9のステップS900~S910は、図2に開示された予測部220によって実行されることができ、図9のステップS920は、図2に開示されたエントロピーエンコーディング部240によって実行されることができる。また、図9で開示された方法は、本文書で上述した実施形態を含んで実行されることができる。よって、図9では前述した実施形態と重複される内容について具体的な説明を省略したり簡単にすることにする。
【0190】
図9を参照すると、エンコーディング装置は、現在ブロックに対するパレットモードでのエスケープ値を導出することができる(S900)。
【0191】
一実施形態として、エンコーディング装置は、現在ブロックに対する予測モードを決めて予測を実行することができる。例えば、エンコーディング装置は、現在ブロックにインター予測を実行するか、またはイントラ予測を実行するかを決めることができる。または、エンコーディング装置は、現在ブロックにCIIPモード、IBCモード、またはパレットモードなどに基づいて予測を実行するか否かを決めることができる。エンコーディング装置は、RDコストに基づいて予測モードを決めることができる。エンコーディング装置は、決まった予測モードによって予測を実行して、現在ブロックに対する予測サンプルを導出することができる。また、エンコーディング装置は、現在ブロックに適用された予測に関する情報(例えば、予測モード情報)を生成してエンコーディングすることができる。
【0192】
現在ブロックにパレットモードに基づく予測を実行する場合、エンコーディング装置は、前述の実施形態に開示されたパレットモードコーディングを適用することができる。すなわち、エンコーディング装置は、現在ブロックにパレットモードコーディングを適用して、パレットエントリー、パレットインデックス、エスケープ値などを導出することができる。
【0193】
一例として、エンコーディング装置は、現在ブロックのサンプル値に基づいてパレットエントリー情報を生成することができる。すなわち、エンコーディング装置は、パレットテーブルを構成するために以前パレットモードでコーディングされたブロックで用いられたパレット予測子エントリー及びパレットエントリー再利用情報を導出し、現在ブロックに対するパレットエントリーを導出することができる。例えば、前記表5及び表6で開示されたように、エンコーディング装置は、パレットテーブルを構成するために用いられるpalette_predictor_run、num_signalled_palette_entries、new_palette_entriesなどのパレットエントリー情報を導出することができる。
【0194】
また、エンコーディング装置は、パレットエントリー情報に基づいて現在ブロックに対するパレットインデックス情報を生成することができる。すなわち、エンコーディング装置は、現在ブロックのサンプルをトラバーススキャン方向(垂直方向或は水平方向)に沿って巡回しながら、各サンプルのパレットインデックス値を導出して、パレットインデックスマップを構成することができる。例えば、前記表5及び表6で開示されたように、エンコーディング装置は、パレットインデックスマップを構成するために用いられるpalette_transpose_flag、palette_idx_idc、copy_above_indices_for_final_run_flag、num_palette_indices_minus1などのパレットエントリー情報を導出することができる。
【0195】
ここで、パレットテーブルは、現在ブロック内のサンプルに対する代表カラー値(パレットエントリー)を含み、各カラー値に対応するパレットインデックス値で構成されることができる。すなわち、エンコーディング装置は、現在ブロック内の各サンプルに対してパレットテーブル内のエントリー(カラー値)に対応するパレットインデックス値を導出することで、これをデコーディング装置にシグナリングすることができる。
【0196】
エンコーディング装置は、前記パレットエントリー情報及びパレットインデックス情報を含む画像情報をエンコーディングし、これをデコーディング装置にシグナリングすることができる。
【0197】
また、現在ブロックにパレットモードに基づく予測を実行する際において、エンコーディング装置は、少なくとも一つのエスケープコーディングされたサンプルを含む現在ブロックに対してエスケープ値を導出することができる。
【0198】
前述のように、パレットモードで現在ブロック内の周辺サンプルと特性の異なる値を有するサンプルに対して別途の当該サンプル値を送ることがコーディング効率側面で効果的であるので、このサンプル値をエスケープ値にシグナリングすることができる。この時、エスケープ値は、追加的なデータであるので、これを節約するために量子化することができる。また、パレットモードのエスケープ値は、変換が適用されず、量子化された値が直接シグナリングされることができる。
【0199】
エンコーディング装置は、エスケープ値に基づいて量子化されたエスケープ値を導出することができる(S910)。
【0200】
一実施形態として、エンコーディング装置は、エスケープ値に対する量子化パラメータに基づいて前記エスケープ値に適用して量子化されたエスケープ値を導出することができる。
【0201】
ここで、量子化パラメータは、変換スキップモードに対する最小量子化パラメータ情報に基づいて導出されることができる。例えば、量子化パラメータは、前記表7乃至表9に開示された変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)に基づいて導出されることができる。前述のように、パレットモードのエスケープ値は変換が適用されないので、変換スキップモードで用いられる最小量子化パラメータ情報に基づいて量子化することができる。
【0202】
具体的例として、前述の表9のように、まず、エンコーディング装置は、変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)に基づいて最小量子化パラメータ値(例:QpPrimeTsMin)を導出することができる。そして、エンコーディング装置は、最小量子化パラメータ値(例:QpPrimeTsMin)及び量子化パラメータQp(ルマ成分の場合Qp`Y、クロマ成分の場合Qp`CbまたはQp`Cr)のうち大きい値を選択して、これをパレットモードでの量子化パラメータとして用いることができる。
【0203】
言い換えれば、パレットモードでの量子化パラメータは、変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)から導出される最小量子化パラメータ値(例:QpPrimeTsMin)より大きいか同じ値を有することができる。
【0204】
エンコーディング装置は、前記のように導出されたパレットモードでの量子化パラメータを適用して、量子化されたエスケープ値を導出することができる。エンコーディング装置は、量子化されたエスケープ値を前記表5及び表6で開示されたように、palette_escape_valシンタックス要素として生成し、これをシグナリングすることができる。また、エンコーディング装置は、現在ブロック内のエスケープ値を有するサンプルが存在することを指示するための情報(例:palette_escape_val_present_flag)を生成して、これをシグナリングすることができる。
【0205】
また、一実施形態において、エンコーディング装置は、量子化されたエスケープ値を特定範囲に制限することができる。エスケープ値は、周辺サンプルとは特性の異なる値を有するので、量子化して直接シグナリングするが、量子化による誤差が発生し得る。このような誤差を減少し、より正確な値をコーディングすることができるようにするために、量子化されたエスケープ値の範囲をビット深度(bitdepth)に基づいて制限することができる。
【0206】
例えば、量子化されたエスケープ値に対する情報の範囲は、前記表10及び表11に開示されたように、ビット深度に基づいて決められることができ、例えば(1<<BitDepth)-1より大きくないように制限されることができる。また、ビット深度は、ルマ成分に対するビット深度BitDepth及びクロマ成分に対するビット深度BitDepthを含むことができる。この時、ルマ成分に対する量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有し、クロマ成分に対する前記量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有することができる。
【0207】
また、一実施形態において、エンコーディング装置は、パレットテーブルのエントリー個数(すなわち、パレットテーブルのインデックス個数)を定義し、これをデコーディング装置にシグナリングすることができる。すなわち、エンコーディング装置は、パレットテーブルの最大インデックスに関するパレットサイズ情報を決めて、これをシグナリングすることができる。パレットサイズ情報は既設定された値であるか、またはコーディングユニットのサイズに基づいて決められることができる。
【0208】
例えば、パレットサイズは、前記表12に開示されたように、palette_max_sizeで示すことができ、全体シーケンスに対して同一、またはCUサイズ(すなわち、CU内のピクセル個数)によって異なるように決められることができる。
【0209】
また、例えば、パレットサイズは、前記表13及び表14に開示されたように、palette_max_sizeで示すことができ、SPSを通じてシグナリングされることができる。この時、パレットサイズ(例:palette_max_size)は、パレットテーブルの最大許容されるインデックスを示すことができ、1から63内の範囲に制限されることができる。また、パレットサイズ(例:palette_max_size)は、パレットモードが可用(enabled)であるか否かを指示するための情報(例:sps_palette_enabled_flag)に基づいてシグナリングされることもできる。
【0210】
また、例えば、パレットサイズは、前記表15及び表16に開示されたように、log2_palette_max_sizeで示すことができ、SPSを通じてシグナリングされることができる。この時、パレットサイズ(例:log2_palette_max_size)は、パレットサイズ(すなわち、palette_max_size+1)のlog2値を示すことができる。したがって、パレットテーブルの最大許容されるインデックスを示すpalette_max_sizeは、(1<<log2_palette_max_size)-1で計算して導出されることができ、1から63内の範囲に制限されることができる。また、パレットサイズ(例:log2_palette_max_size)は、パレットモードが可用(enabled)であるか否かを指示するための情報(例:sps_palette_enabled_flag)に基づいてシグナリングされることもできる。
【0211】
また、例えば、パレットサイズは、前記表17及び表18に開示されたように、log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_defaultに基づいて導出されることができ、SPSを通じてシグナリングされることができる。パレットサイズを導出してシグナリングする具体的な実施形態は、前記表17及び表18で前述したとおりであるので、ここでは、説明を省略することにする。
【0212】
エンコーディング装置は、画像情報(またはビデオ情報)をエンコーディングすることができる(S920)。ここで、画像情報は、前述したパレットモードコーディングのために用いられる多様な情報を含むことができる。
【0213】
一例として、エンコーディング装置は、量子化されたエスケープ値に対する情報を含む画像情報を生成してエンコーディングすることができる。また、エンコーディング装置は、パレットエントリー情報及びパレットインデックス情報を含む画像情報を生成してエンコーディングすることができる。また、エンコーディング装置は、変換スキップモードに対する最小量子化パラメータ情報を含む画像情報を生成して、エンコーディングすることができる。この時、画像情報はSPSを含むことができ、SPSは、前記変換スキップモードに対する最小量子化パラメータ情報を含むことができる。
【0214】
また、実施形態によって、エンコーディング装置は、パレットモードの可用可否に関する情報に基づいて、前述のパレットモードを用いて現在ブロックに対するコーディングを実行するか否かを決めることができる。
【0215】
例えば、前記表1乃至表4に開示されたように、エンコーディング装置は、パレットモードの可用可否を決め、前記決定によってパレットモードの可用可否に関する情報(例:sps_palette_enabled_flag)を生成し、SPSを通じてシグナリングすることができる。
【0216】
また、エンコーディング装置は、パレットモードの可用可否に関する情報(例:sps_palette_enabled_flag)に基づいて、現在ブロックにパレットモードを適用してコーディングするか否かを示す情報(例:pred_mode_plt_flag)を生成して、コーディングユニットシンタックスを通じてシグナリングすることができる。例えば、pred_mode_plt_flagの値が1の場合、palette_coding()シンタックスをシグナリングすることで、現在ブロックに対してパレットモードを適用して、復元サンプルを生成することができる。
【0217】
前記パレットモードの可用可否に関する情報(例:sps_palette_enabled_flag)、現在ブロックにパレットモードを適用してコーディングするか否かを示す情報(例:pred_mode_plt_flag)は、画像情報に含まれてエンコーディングされることができる。
【0218】
前述のような多様な情報を含む画像情報はエンコーディングされてビットストリーム形態で出力されることができる。ビットストリームは、ネットワークまたは(デジタル)記録媒体を通じてデコーディング装置に送信されることができる。ここで、ネットワークは、放送網及び/または通信網などを含むことができ、デジタル記録媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど多様な記録媒体を含むことができる。
【0219】
図10は本文書の実施形態に係るビデオ/画像デコーディング方法の一例を概略的に示す。
【0220】
図10に開示された方法は、図3で開示されたデコーディング装置300によって実行されることができる。具体的には、図10のステップS1000は、図3に開示されたエントロピーデコーディング部310によって実行されることができ、図10のステップS1010~S1020は、図3に開示された予測部330によって実行されることができる。また、図10で開示された方法は、本文書で前述の実施形態を含んで実行されることができる。したがって、図10では、前述の実施形態と重複される内容について具体的な説明を省略したり簡単にすることにする。
【0221】
図10を参照すると、デコーディング装置は、ビットストリームから画像情報(またはビデオ情報)を受信することができる(S1000)。
【0222】
デコーディング装置は、ビットストリームをパーシングして画像復元(またはピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。この時、画像情報は、予測に関する情報(例えば、予測モード情報)を含むことができる。また、画像情報は、前述のパレットモードコーディングのために用いられる多様な情報を含むことができる。例えば、画像情報は、量子化されたエスケープ値に対する情報、パレットエントリー情報、パレットインデックス情報、変換スキップモードに対する最小量子化パラメータ情報などを含むことができる。すなわち、画像情報は、デコーディング過程で必要な多様な情報を含むことができ、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてデコーディングされることができる。
【0223】
一実施形態として、デコーディング装置は、ビットストリームからパレットモードでの量子化されたエスケープ値情報を含む画像情報を獲得することができる。例えば、量子化されたエスケープ値情報は、前記表5及び表6で開示されたように、palette_escape_valシンタックス要素であり得る。この時、量子化されたエスケープ値情報(例:palette_escape_val)は、現在ブロック内のエスケープ値を有するサンプルが存在するか否かを示す情報(例:palette_escape_val_present_flag)に基づいて獲得されることができる。例えば、現在ブロック内のエスケープ値を有するサンプルが存在する場合(すなわち、palette_escape_val_present_flagの値が1の場合)、デコーディング装置はビットストリームから量子化されたエスケープ値情報(例:palette_escape_val)を獲得することができる。
【0224】
デコーディング装置は、量子化されたエスケープ値情報に基づいて現在ブロックに対するエスケープ値を導出することができる(S1010)。
【0225】
一実施形態として、デコーディング装置は、量子化パラメータに基づいて量子化されたエスケープ値に逆量子化(スケーリング過程)を実行してエスケープ値を導出することができる。
【0226】
ここで、量子化パラメータは、変換スキップモードに対する最小量子化パラメータ情報に基づいて導出されることができる。例えば、量子化パラメータは、前記表7乃至表9に開示された変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)に基づいて導出されることができる。前述のように、パレットモードのエスケープ値は変換が適用されないので、変換スキップモードで用いられる最小量子化パラメータ情報に基づいて量子化することができる。この時、変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)は、SPSからパーシング/シグナリングされることができる。
【0227】
具体的例として、前述の表9のように、まず、デコーディング装置は、変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)に基づいて最小量子化パラメータ値(例:QpPrimeTsMin)を導出することができる。そして、デコーディング装置は、最小量子化パラメータ値(例:QpPrimeTsMin)及び量子化パラメータQp(ルマ成分の場合Qp`Y、クロマ成分の場合Qp`CbまたはQp`Cr)のうち大きい値を選択して、これをパレットモードでの量子化パラメータとして用いることができる。
【0228】
言い換えれば、パレットモードでの量子化パラメータは、変換スキップモードに対する最小量子化パラメータ情報(例:min_qp_prime_ts_minus4)から導出される最小量子化パラメータ値(例:QpPrimeTsMin)より大きいか同じ値を有することができる。
【0229】
デコーディング装置は、前記のように導出されたパレットモードでの量子化パラメータに基づいて量子化されたエスケープ値からエスケープ値を導出することができる。
【0230】
また、一実施形態において、デコーディング装置は、量子化されたエスケープ値を特定範囲に制限することができる。エスケープ値は、周辺サンプルとは特性の異なる値を有するので、量子化して直接シグナリングするが、量子化による誤差が発生し得る。このような誤差を減少して、より正確な値をコーディングすることができるようにするために、量子化されたエスケープ値の範囲をビット深度(bitdepth)に基づいて制限することができる。
【0231】
例えば、量子化されたエスケープ値に対する情報の範囲は、前記表10及び表11に開示されたように、ビット深度に基づいて決められることができ、例えば(1<<BitDepth)-1より大きくないように制限されることができる。また、ビット深度は、ルマ成分に対するビット深度BitDepth及びクロマ成分に対するビット深度BitDepthを含むことができる。この時、ルマ成分に対する量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有し、クロマ成分に対する前記量子化されたエスケープ値情報の範囲は、0から(1<<BitDepth)-1の間の値を有することができる。
【0232】
また、一実施形態において、デコーディング装置は、パレットテーブルのエントリー個数(すなわち、パレットテーブルのインデックス個数)を含む画像情報を獲得することができる。すなわち、デコーディング装置は、パレットテーブルの最大インデックスに関するパレットサイズ情報を含む画像情報を獲得することができる。この時、パレットサイズ情報は、既設定された値であるか、またはコーディングユニットのサイズに基づいて決められることができる。
【0233】
例えば、パレットサイズは、前記表12に開示されたように、palette_max_sizeで示すことができ、全体シーケンスに対し同一またはCUサイズ(すなわち、CU内のピクセル個数)によって異なるように決められることができる。
【0234】
また、例えば、パレットサイズは、前記表13及び表14に開示されたように、palette_max_sizeで示すことができ、SPSを通じてパーシング/シグナリングされることができる。この時、パレットサイズ(例:palette_max_size)は、パレットテーブルの最大許容されるインデックスを示すことができ、1から63内の範囲に制限されることができる。また、パレットサイズ(例:palette_max_size)は、パレットモードが可用(enabled)であるか否かを指示するための情報(例:sps_palette_enabled_flag)に基づいてパーシング/シグナリングされることもできる。
【0235】
また、例えば、パレットサイズは、前記表15及び表16に開示されたように、log2_palette_max_sizeで示すことができ、SPSを通じてパーシング/シグナリングされることができる。この時、パレットサイズ(例:log2_palette_max_size)は、パレットサイズ(すなわち、palette_max_size+1)のlog2値を示すことができる。したがって、パレットテーブルの最大許容されるインデックスを示すpalette_max_sizeは、(1<<log2_palette_max_size)-1で計算して導出されることができ、1から63内の範囲に制限されることができる。また、パレットサイズ(例:log2_palette_max_size)は、パレットモードが可用(enabled)であるか否かを指示するための情報(例:sps_palette_enabled_flag)に基づいてパーシング/シグナリングされることもできる。
【0236】
また、例えば、パレットサイズは、前記表17及び表18に開示されたように、log2_palette_CU_size_TH1、log2_palette_max_size_TH1、log2_palette_max_size_defaultに基づいて導出されることができ、SPSを通じてパーシング/シグナリングされることができる。パレットサイズを導出してパーシング/シグナリングする具体的な実施形態は、前記表17及び表18で前述したので、ここでは説明を省略することにする。
【0237】
デコーディング装置は、エスケープ値に基づいて復元サンプルを生成することができる(S1020)。
【0238】
一実施形態として、デコーディング装置は、少なくとも一つのエスケープコーディングされたサンプルを含む現在ブロックに対して、エスケープ値に基づいて復元サンプルを生成することができる。例えば、現在ブロック内のエスケープ値を有するサンプルが存在する場合(すなわち、palette_escape_val_present_flagの値が1の場合)、デコーディング装置は、前述のように、エスケープ値を導出してエスケープコーディングされたサンプルの復元サンプルを生成することができる。
【0239】
また、現在ブロックにパレットモードに基づく予測を実行する際において(すなわち、現在ブロックに対してパレットモードが適用される場合)、現在ブロック内のエスケープコーディングされたサンプルではないサンプルに対して、デコーディング装置は、パレットエントリー情報及びパレットインデックス情報を含む画像情報を獲得し、これに基づいて復元サンプルを生成することができる。
【0240】
一例として、デコーディング装置は、パレットエントリー情報に基づいて現在ブロックに対するパレットテーブルを構成することができる。例えば、パレットエントリー情報は、前記表5及び表6で開示されたように、palette_predictor_run、num_signalled_palette_entries、new_palette_entriesなどを含むことができる。すなわち、デコーディング装置は、パレットテーブルを構成するために、以前パレットモードでコーディングされたブロックで用いられたパレット予測子エントリー及びパレットエントリー再利用情報を導出し、現在ブロックに対するパレットエントリーを導出することができる。そして、デコーディング装置は、以前パレット予測子エントリーと現在パレットエントリーに基づいてパレットテーブルを構成することができる。
【0241】
また、デコーディング装置は、パレットインデックス情報に基づいて現在ブロックに対するパレットインデックスマップを構成することができる。例えば、パレットインデックス情報は、前記表5及び表6で開示されたように、パレットインデックスマップを構成するために用いられるpalette_transpose_flag、palette_idx_idc、copy_above_indices_for_final_run_flag、num_palette_indices_minus1などを含むことができる。すなわち、デコーディング装置は、トラバーススキャン方向(垂直方向或は水平方向)を示す情報(例:palette_transpose_flag)に基づいて現在ブロックのサンプルを巡回しながら各サンプルのパレットインデックス値を示す情報(例:palette_idx_idc)に基づいてパレットインデックスマップ(例:PaletteIndexMap)を構成することができる。
【0242】
また、デコーディング装置は、パレットインデックスマップに基づいてパレットテーブル内のパレットエントリーに対するサンプル値を導出することができる。そして、デコーディング装置は、パレットインデックスマップ及びパレットエントリーに対するサンプル値に基づいて復元サンプルを生成することができる。
【0243】
ここで、パレットテーブルは、現在ブロック内のサンプルに対する代表カラー値(パレットエントリー)を含み、各カラー値に対応するパレットインデックス値で構成されることができる。よって、デコーディング装置は、パレットインデックスマップのインデックス値に対応するパレットテーブル内のエントリーのサンプル値(すなわち、カラー値)を導出し、これを現在ブロックの復元サンプル値として生成することができる。
【0244】
また、実施形態によって、デコーディング装置は、パレットモードの可用可否に関する情報に基づいて、前述したパレットモードを用いて現在ブロックに対するコーディングを実行するか否かを決めることができる。
【0245】
例えば、前記表1乃至表4に開示されたように、デコーディング装置は、パレットモードの可用可否に関する情報(例:sps_palette_enabled_flag)を含む画像情報を獲得し、この情報に基づいて前記パレットエントリー情報、パレットインデックス情報、量子化されたエスケープ値情報などをビットストリームから獲得することができる。
【0246】
また、例えば、デコーディング装置は、パレットモードの可用可否に関する情報(例:sps_palette_enabled_flag)に基づいて、現在ブロックにパレットモードを適用してコーディングするか否かを示す情報(例:pred_mode_plt_flag)をビットストリームから獲得することができる。例えば、pred_mode_plt_flagの値が1の場合、デコーディング装置は、palette_coding()シンタックスをさらに獲得することができ、前記palette_coding()シンタックスに含まれた情報に基づいて、現在ブロックに対してパレットモードを適用して復元サンプルを導出することができる。
【0247】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本文書の実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の一つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0248】
前述した本文書による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/またはデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を実行する装置に含まれることができる。
【0249】
本文書において、実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
【0250】
また、本文書が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0251】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み出すことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
【0252】
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0253】
図11は本文書で開示された実施形態が適用できるコンテンツストリーミングシステムの例を示す。
【0254】
図11を参照すると、本文書の実施形態に適用されるコンテンツストリーミングシステムは、大きく、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザデバイス及びマルチメディア入力装置を含むことができる。
【0255】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。
【0256】
前記ビットストリームは、本文書の実施例に適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0257】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0258】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
【0259】
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジがある。
【0260】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0261】
本文書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本文書の方法請求項の技術的特徴が組み合わせて装置で具現されることができ、本文書の装置請求項の技術的特徴が組み合わせて方法で具現されることができる。また、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて装置で具現されることができ、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて方法で具現されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11