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

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

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

特許7579409変換に基づく映像コーディング方法及びその装置
<>
  • 特許-変換に基づく映像コーディング方法及びその装置 図1
  • 特許-変換に基づく映像コーディング方法及びその装置 図2
  • 特許-変換に基づく映像コーディング方法及びその装置 図3
  • 特許-変換に基づく映像コーディング方法及びその装置 図4
  • 特許-変換に基づく映像コーディング方法及びその装置 図5
  • 特許-変換に基づく映像コーディング方法及びその装置 図6
  • 特許-変換に基づく映像コーディング方法及びその装置 図7
  • 特許-変換に基づく映像コーディング方法及びその装置 図8
  • 特許-変換に基づく映像コーディング方法及びその装置 図9
  • 特許-変換に基づく映像コーディング方法及びその装置 図10
  • 特許-変換に基づく映像コーディング方法及びその装置 図11
  • 特許-変換に基づく映像コーディング方法及びその装置 図12
  • 特許-変換に基づく映像コーディング方法及びその装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-29
(45)【発行日】2024-11-07
(54)【発明の名称】変換に基づく映像コーディング方法及びその装置
(51)【国際特許分類】
   H04N 19/12 20140101AFI20241030BHJP
   H04N 19/132 20140101ALI20241030BHJP
   H04N 19/157 20140101ALI20241030BHJP
   H04N 19/176 20140101ALI20241030BHJP
   H04N 19/70 20140101ALI20241030BHJP
【FI】
H04N19/12
H04N19/132
H04N19/157
H04N19/176
H04N19/70
【請求項の数】 15
(21)【出願番号】P 2023172611
(22)【出願日】2023-10-04
(62)【分割の表示】P 2022507746の分割
【原出願日】2020-08-07
(65)【公開番号】P2023168536
(43)【公開日】2023-11-24
【審査請求日】2023-10-04
(31)【優先権主張番号】62/884,671
(32)【優先日】2019-08-08
(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)【参考文献】
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 6),JVET-O2001 (version 14),ITU,2019年07月31日,pp.1, 37-40, 62-66, 95, 142, 285-287,[online],[retrieved on 2023-02-21],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip>
【文献】KOO, Moonmo et al.,CE 6-1.1 (c,d): Fast DST-7/DCT-8 based on DFT and 32 Point MTS based on Skipping High Frequency Coef,JVET-L0132 (version 2),ITU,2018年10月03日,pp.1-7,[online],[retrieved on 2023-02-21],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0132-v2.zip>
【文献】LEANNEC, F. Le et al.,Non-CE6: Interaction between MTS and LFNST,JVET-O0466 (version 3),ITU,2019年07月07日,pp.1-9,[online],[retrieved on 2023-02-21],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0466-v3.zip>
【文献】NASER, Karam et al.,Non-CE6: Shape Adaptive Transform Selection for ISP, SBT and MTS,JVET-N0388 (version 5),ITU,2019年03月25日,pp.1-6,[online],[retrieved on 2023-02-21],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0388-v5.zip>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
レジデュアル情報を含むビットストリームを受信するステップと、
前記レジデュアル情報に基づいて現在ブロックに対する変換係数を導出するステップと、
前記変換係数に基づいて前記現在ブロックに対するレジデュアルサンプルを導出するステップと、
前記現在ブロックに対する予測サンプルを導出するステップと、
前記レジデュアルサンプル及び前記予測サンプルに基づいて復元ピクチャを生成するステップとを含み、
前記ビットストリームは、前記現在ブロックに、コーディングユニットを分割して変換を実行するためのサブブロック変換が適用されるかどうかに関連する第1のフラグ情報を含み、
前記変換係数を導出するステップは、
前記第1のフラグ情報が1である場合、MTS inter enabled flagがSPS(sequence parameter set)に存在するかを示す多重変換選択(Multiple Transform Selection、MTS) enabled flagに基づいて、前記現在ブロック内の有効変換係数が存在する領域に関連するゼロアウトブロックを導出するステップを含み、
前記MTSinter enabled flagが1に等しいことは、MTSインデックス情報がインタコーディングユニットに対して存在し得ることを示し、前記MTSinter enabled flagが0に等しいことは、前記MTSインデックス情報が前記インタコーディングユニットに対して存在しないことを示し、
前記MTSインデックス情報は、水平及び垂直変換カーネルを示す、映像デコーディング方法。
【請求項2】
前記MTSinter enabled flagが前記SPSに存在することを示す前記MTSenabled flagに基づいて、前記ゼロアウトブロックの幅または高さは、16に設定され、
前記MTSinter enabled flagが前記SPSに存在しないことを示す前記MTSenabled flagに基づいて、前記ゼロアウトブロックの幅または高さは、32以下に設定される、請求項1に記載の映像デコーディング方法。
【請求項3】
前記第1のフラグ情報は、コーディングユニットレベルでシグナリングされる、請求項1に記載の映像デコーディング方法。
【請求項4】
前記MTSenabled flagが前記SPSでシグナリングされる、請求項1に記載の映像デコーディング方法。
【請求項5】
前記現在ブロックを分割することによるサブブロックの高さが64より小さく、かつ前記サブブロックの幅が32である場合、前記ゼロアウトブロックの幅は16に設定され、
前記サブブロックの幅が64より小さく、かつ前記サブブロックの高さが32である場合、前記ゼロアウトブロックの高さは、16に設定される、請求項1に記載の映像デコーディング方法。
【請求項6】
前記現在ブロックの分割方向及び変換が適用されるサブブロックの位置に基づいて複数の変換カーネルが導出される、請求項1に記載の映像デコーディング方法。
【請求項7】
前記現在ブロックのルマ成分に対して前記ゼロアウトブロックが導出される、請求項1に記載の映像デコーディング方法。
【請求項8】
映像エンコーディング装置により実行される映像エンコーディング方法において、
現在ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出するステップと、
前記現在ブロックに対するレジデュアルサンプルに基づいて変換係数を導出するステップと、
前記変換係数についての情報を含むレジデュアル情報をエンコーディングするステップとを含み、
前記変換係数を導出するステップは、
コーディングユニットを分割することにより変換を実行することに対するサブブロック変換を前記現在ブロックに適用する場合、MTS inter enabled flagがSPS(sequence parameter set)に存在するかを示す多重変換選択(Multiple Transform Selection、MTS)enabled flagに基づいて、前記現在ブロック内の有効変換係数が存在する領域に関連するゼロアウトブロックを導出するステップを含み、
前記MTSinter enabled flagが1に等しいことは、MTSインデックス情報がインタコーディングユニットに対して存在し得ることを示し、前記MTSinter enabled flagが0に等しいことは、前記MTSインデックス情報が前記インタコーディングユニットに対して存在しないことを示し、
前記MTSインデックス情報は、水平及び垂直変換カーネルを示し、
前記サブブロック変換が適用されるかどうかに関連する第1のフラグ情報はビットストリームにエンコーディングされる、映像エンコーディング方法。
【請求項9】
前記MTSinter enabled flagが前記SPSに存在することを示す前記MTSenabled flagに基づいて、前記ゼロアウトブロックの幅または高さは、16に設定され、
前記MTSinter enabled flagが前記SPSに存在しないことを示す前記MTSenabled flagに基づいて、前記ゼロアウトブロックの幅または高さは、32以下に設定される、請求項8に記載の映像エンコーディング方法。
【請求項10】
前記第1のフラグ情報は、コーディングユニットレベルでシグナリングされる、請求項8に記載の映像エンコーディング方法。
【請求項11】
前記レジデュアル情報をエンコーディングするステップは、
前記MTS enabled flagをエンコーディングするステップをさらに含み、
前記MTS enabled flagは、前記SPSでシグナリングされる、請求項8に記載の映像エンコーディング方法。
【請求項12】
前記現在ブロックを分割して得られたサブブロックの高さが64より小さく、かつ前記サブブロックの幅が32である場合、前記ゼロアウトブロックの幅は、16に設定され、
前記サブブロックの幅が64より小さく、かつ前記サブブロックの高さが32である場合、前記ゼロアウトブロックの高さは、16に設定される、請求項8に記載の映像エンコーディング方法。
【請求項13】
前記現在ブロックの分割方向及び変換が適用されるサブブロックの位置に基づいて複数の変換カーネルが導出される、請求項8に記載の映像エンコーディング方法。
【請求項14】
前記現在ブロックのルマ成分に対して前記ゼロアウトブロックが導出される、請求項8に記載の映像エンコーディング方法。
【請求項15】
ビットストリームを取得するステップであって、
前記ビットストリームは、現在ブロックに対する予測サンプルを導出し、前記予測サンプルに基づいて現在ブロックに対するレジデュアルサンプルを導出し、前記現在ブロックに対するレジデュアルサンプルに基づいて、変換係数を導出し、前記変換係数についての情報を含むレジデュアル情報をエンコーディングすることにより生成される、ステップと、
前記レジデュアル情報を含む前記ビットストリームを送信するステップとを含み、
コーディングユニットを分割することにより変換を実行することに対するサブブロック変換を前記現在ブロックに適用する場合、MTS inter enabled flagがSPS(sequence parameter set)に存在するかを示す多重変換選択(Multiple Transform Selection、MTS)enabled flagに基づいて、前記現在ブロック内の有効変換係数が存在する領域に関連するゼロアウトブロックを導出するステップを含み、 前記MTSinter enabled flagが1に等しいことは、MTSインデックス情報がインタコーディングユニットに対して存在し得ることを示し、前記MTSinter enabled flagが0に等しいことは、前記MTSインデックス情報が前記インタコーディングユニットに対して存在しないことを示し、
前記MTSインデックス情報は、水平及び垂直変換カーネルを示し、
前記サブブロック変換が適用されるか否かに関連する第1フラグ情報は、前記ビットストリームにエンコーディングされる、変換方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、より詳しくは、映像コーディングシステムにおいて、変換(transform)に基づく映像コーディング方法及びその装置に関する。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)映像/ビデオのような高解像度、高品質の映像/ビデオに対する需要が多様な分野で増加している。映像/ビデオデータが高解像度、高品質になるほど、既存の映像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信し、または既存の格納媒体を利用して映像/ビデオデータを格納する場合、送信費用と格納費用が増加する。
【0003】
また、最近、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有する映像/ビデオに対する放送が増加している。
【0004】
これによって、前記のような多様な特性を有する高解像度、高品質の映像/ビデオの情報を効果的に圧縮して送信または格納し、再生するために、高効率の映像/ビデオ圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0006】
本文書の他の技術的課題は、レジデュアルコーディングの効率を上げる方法及び装置を提供することにある。
【0007】
本文書の他の技術的課題は、高周波ゼロイング(zeroing)に基づいて変換係数をコーディングしてレジデュアルコーディング効率を上げる方法及び装置を提供することにある。
【0008】
本文書の他の技術的課題は、多重変換選択に基づいて高周波ゼロイングを実行する映像コーディングの効率を上げる方法及び装置を提供することにある。
【0009】
本文書の他の技術的課題は、高周波ゼロイングが実行される時、データ損失を減少させることができる映像コーディングする方法及び装置を提供することにある。
【0010】
本文書の他の技術的課題は、高周波ゼロイングに基づいて現在ブロック(または、現在変換ブロック)に対する変換係数をコーディングする時、現在ブロックサイズに基づいて最後の有効変換係数位置情報に対するコンテキストモデルを導出するための方法及び装置を提供することにある。
【課題を解決するための手段】
【0011】
本文書の一実施例によると、デコーディング装置により実行される映像デコーディング方法を提供する。前記方法は、レジデュアル情報に基づいて現在ブロックに対する変換係数を導出するステップを含み、前記レジデュアル情報は、前記現在ブロックにコーディングユニットを分割して変換を実行するサブブロック変換が適用されるかどうかを示す第1のフラグ情報を含み、前記変換係数を導出するステップは、前記第1のフラグ情報が1である場合、前記現在ブロックに複数の変換カーネルが使われる多重変換選択(Multiple Transform Selection、MTS)が適用されるかどうかに基づいて、前記現在ブロック内の有効変換係数が存在できる領域を示すゼロアウトブロックを導出するステップを含む。
【0012】
前記多重変換選択が適用される場合、前記ゼロアウトブロックの幅または高さは、16に設定され、前記多重変換選択が適用されない場合、前記ゼロアウトブロックの幅または高さは、32以下に設定される。
【0013】
前記第1のフラグ情報は、コーディングユニットレベルでシグナリングされる。
【0014】
前記現在ブロックに前記多重変換選択が適用されるかどうかを指示する第2のフラグ情報に基づいて前記多重変換選択の適用可否が判断され、前記第2のフラグ情報は、シーケンスパラメータセットレベルでシグナリングされる。
【0015】
分割されたサブブロックの高さが64より小さい、かつ前記サブブロックの幅が32である場合、前記ゼロアウトブロックの幅は、16に設定され、前記サブブロックの幅が64より小さい、かつ前記サブブロックの高さが32である場合、前記ゼロアウトブロックの高さは、16に設定される。
【0016】
前記現在ブロックの分割方向及び変換が適用されるサブブロックの位置に基づいて前記変換カーネルが導出される。
【0017】
前記現在ブロックのルマ成分に対して前記ゼロアウトブロックが導出される。
【0018】
本文書の一実施例によると、エンコーディング装置により実行される映像エンコーディング方法を提供する。前記方法は、レジデュアルサンプルに基づいて変換係数を導出するステップ、及び前記変換係数に対する情報を含むレジデュアル情報をエンコーディングするステップを含み、前記変換係数を導出するステップは、前記現在ブロックにコーディングユニットを分割して変換を実行するサブブロック変換が適用される場合、前記現在ブロックに複数の変換カーネルが使われる多重変換選択(Multiple Transform Selection、MTS)が適用されるかどうかに基づいて、前記現在ブロック内の有効変換係数が存在できる領域を示すゼロアウトブロックを導出するステップを含み、前記レジデュアル情報をエンコーディングするステップは、前記サブブロック変換が適用されるかどうかを指示する第1のフラグ情報をエンコーディングするステップを含む。
【0019】
本文書の他の一実施例によると、エンコーディング装置により実行された映像エンコーディング方法によって生成されたエンコーディングされた映像情報及びビットストリームが含まれている映像データが格納されたデジタル格納媒体が提供される。
【0020】
本文書の他の一実施例によると、デコーディング装置により前記映像デコーディング方法を実行するようにするエンコーディングされた映像情報及びビットストリームが含まれている映像データが格納されたデジタル格納媒体が提供される。
【発明の効果】
【0021】
本文書によると、全般的な映像/ビデオ圧縮効率を上げることができる。
【0022】
本開示によると、レジデュアルコーディングの効率を上げることができる。
【0023】
本開示によると、高周波ゼロイング(zeroing)に基づいて変換係数をコーディングしてレジデュアルコーディングの効率を上げることができる。
【0024】
本開示によると、多重変換選択に基づいて高周波ゼロイングを実行する映像コーディングの効率を上げることができる。
【0025】
本開示によると、高周波ゼロイングが実行される時、データ損失を減少させることができる映像コーディング効率を上げることができる。
【0026】
本明細書の具体的な一例を介して得ることができる効果は、以上で羅列された効果に制限されるものではない。例えば、関連した技術分野の通常の知識を有する者(a person having ordinary skill in the related art)が本明細書から理解し、または誘導できる多様な技術的効果が存在できる。これによって、本明細書の具体的な効果は、本明細書に明示的に記載されたものに制限されるものではなく、本明細書の技術的特徴から理解され、または誘導されることができる多様な効果を含むことができる。
【図面の簡単な説明】
【0027】
図1】本文書が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
図2】本文書が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
図3】本文書が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図4】本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
図5】本文書の一実施例に係る多重変換技法を概略的に示す。
図6】65個予測方向のイントラ方向性モードを例示的に示す。
図7】本文書の一実施例に係るRSTを説明するための図である。
図8】本文書の一例に係るサブブロック変換に適用されるMTSを説明するための図である。
図9】本文書の一例に係るサブブロック変換に適用された32-pointゼロアウトを示す図である。
図10】本文書の一実施例に係るビデオデコーディング装置の動作を示す流れ図である。
図11】本文書の一実施例に係るビデオデコーディング装置による変換係数を導出する過程を示す流れ図である。
図12】本文書の一実施例に係るビデオエンコーディング装置の動作を示す流れ図である。
図13】本文書の一実施例に係る変換係数及び情報エンコーディング過程を示す流れ図である。
【発明を実施するための形態】
【0028】
本文書は、多様な変更を加えることができ、様々な実施例を有することができ、特定実施例を図面に例示して詳細に説明しようとする。しかし、これは本文書を特定実施例に限定しようとするものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであって、本文書の技術的思想を限定しようとする意図で使われるものではない。単数の表現は、コンテキスト上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたもの等の存在または付加可能性をあらかじめ排除しないと理解されなければならない。
【0029】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/または分離された実施例も、本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0030】
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
【0031】
この文書は、ビデオ/映像コーディングに関する。例えば、この文書に開示された方法/実施例は、VVC(Versatile Video Coding)標準(ITU-T Rec.H.266)、VVC以後の次世代ビデオ/イメージコーディング標準、またはその以外のビデオコーディング関連標準(例えば、HEVC(High Efficiency Video Coding)標準(ITU-T Rec.H.265)、EVC(essential video coding)標準、AVS2標準等)と関連付けられている。
【0032】
この文書ではビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は互いに組み合わせられて実行されることもできる。
【0033】
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは、一つ以上のスライス/タイルで構成されることができる。一つのピクチャは、一つ以上のタイルグループで構成されることができる。一つのタイルグループは、一つ以上のタイルを含むことができる。
【0034】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使われることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
【0035】
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び該当領域に関連した情報のうち少なくとも一つを含むことができる。一つのユニットは、一つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使われることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0036】
この文書において、「/」と「、」は、「及び/または」と解釈される。例えば、「A/B」は、「A及び/またはB」と解釈され、「A、B」は、「A及び/またはB」と解釈される。追加的に、「A/B/C」は、「A、B及び/またはCのうち少なくとも一つ」を意味する。また、「A、B、C」も「A、B及び/またはCのうち少なくとも一つ」を意味する。(In this document,the term 「/」 and 「、」 should be interpreted to indicate 「and/or.」For instance,the expression 「A/B」 may mean 「A and/or B.」Further,「A,B」 may mean 「A and/or B.」Further,「A/B/C」 may mean 「at least one of A,B,and/or C.」Also, 「A/B/C」 may mean 「at least one of A,B,and/or C.”)
【0037】
追加的に、本文書において、「または」は、「及び/または」と解釈される。例えば、「AまたはB」は、1)「A」のみを意味し、または2)「B」のみを意味し、または3)「A及びB」を意味することができる。他の表現としては、本文書の「または」は、「追加的にまたは代替的に(additionally or alternatively)」を意味することができる。(Further,in the document,the term 「or」 should be interpreted to indicate 「and/or.」For instance,the expression 「A or B」 may comprise 1)only A,2)only B,and/or 3)both A and B.In other words,the term 「or」 in this document should be interpreted to indicate 「additionally or alternatively.」)
【0038】
本明細書において、「少なくとも一つの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)」と同じく解釈されることができる。
【0039】
また、本明細書において、「少なくとも一つの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)」を意味することができる。
【0040】
また、本明細書で使われる括弧は、「例えば(for example)」を意味することができる。具体的に、「予測(イントラ予測)」で表示された場合、「予測」の一例として「イントラ予測」が提案されたものである。他の表現としては、本明細書の「予測」は、「イントラ予測」に制限(limit)されるものではなく、「イントラ予測」が「予測」の一例として提案されたものである。また、「予測(即ち、イントラ予測)」で表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものである。
【0041】
本明細書において、一つの図面内で個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
【0042】
図1は、本文書が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【0043】
図1を参照すると、ビデオ/映像コーディングシステムは、ソースデバイス及び受信デバイスを含むことができる。ソースデバイスは、エンコーディングされたビデオ(video)/映像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
【0044】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/映像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/映像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0045】
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイス及び/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成されることができ、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0046】
エンコーディング装置は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0047】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0048】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/映像をデコーディングすることができる。
【0049】
レンダラは、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
【0050】
図2は、本文書が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置とは、映像エンコーディング装置を含むことができる。
【0051】
図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は、実施例によって一つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0052】
映像分割部210は、エンコーディング装置200に入力された入力映像(または、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割できる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/またはターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/またはターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本文書によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使われることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、各々、前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であり、前記変換ユニットは、変換係数を誘導する単位及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位である。
【0053】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使われることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使われることができる。
【0054】
減算部231は、入力映像信号(原本ブロック、原本サンプルまたは原本サンプルアレイ)から、予測部220から出力された予測信号(予測されたブロック、予測サンプルまたは予測サンプルアレイ)を減算してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルまたはレジデュアルサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。予測部220は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部220は、現在ブロックまたはCU単位でイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができる。予測部は、各予測モードに対する説明で後述するように、予測モード情報など、予測に関する多様な情報を生成してエントロピーエンコーディング部240に伝達できる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0055】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測で、予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定によってそれ以上またはその以下の個数の方向性予測モードが使われることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用して、現在ブロックに適用される予測モードを決定することもできる。
【0056】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャは、同じこともあり、異なることもある。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が使われるかを指示する情報を生成することができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用できる。スキップモードの場合、マージモードとは違って、レジデュアル信号が送信されない。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることで、現在ブロックの動きベクトルを指示することができる。
【0057】
予測部220は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用できる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)を実行することもできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。
【0058】
インター予測部221及び/またはイントラ予測部222を介して生成された予測信号は、復元信号を生成するために利用され、またはレジデュアル信号を生成するために利用されることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)などを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとする時、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない可変大きさのブロックに適用されることもできる。
【0059】
量子化部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に含まれることもできる。
【0060】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号を予測部220から出力された予測信号に加えることによって復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルまたは復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使われることもできる。
【0061】
一方、ピクチャエンコーディング及び/または復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0062】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコーディング部240に伝達できる。フィルタリング関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0063】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使われることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置200とデコーディング装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0064】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部221に伝達できる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達できる。
【0065】
図3は、本文書が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【0066】
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を含んで構成されることができる。予測部330は、インター予測部332及びイントラ予測部331を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)322を含むことができる。前述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
【0067】
ビデオ/映像情報を含むビットストリームが入力される場合、デコーディング装置300は、図2のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを利用してデコーディングを実行することができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから、クアッドツリー構造、バイナリツリー構造及び/またはターナリツリー構造によって分割されることができる。コーディングユニットから一つ以上の変換ユニットが導出されることができる。そして、デコーディング装置300を介してデコーディング及び出力された復元映像信号は、再生装置を介して再生されることができる。
【0068】
デコーディング装置300は、図2のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/または前記一般制限情報にさらに基づいてピクチャをデコーディングすることができる。本文書で後述されるシグナリング/受信される情報及び/またはシンタックス要素は、前記デコーディング手順を介してデコーディングされて前記ビットストリームから取得されることができる。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコーディングし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳しくは、CABACエントロピーデコーディング方法は、ビットストリームで各構文要素に該当するbinを受信し、デコーディング対象構文要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/binの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってbinの発生確率を予測してbinの算術デコーディング(arithmetic decoding)を実行することで各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、コンテキストモデル決定後、次のシンボル/binのコンテキストモデルのためにデコーディングされたシンボル/binの情報を利用してコンテキストモデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち、予測に関する情報は、予測部330に提供され、エントロピーデコーディング部310でエントロピーデコーディングが実行されたレジデュアルに対する情報、即ち、量子化された変換係数及び関連パラメータ情報は、逆量子化部321に入力されることができる。また、エントロピーデコーディング部310でデコーディングされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されてもよく、または、受信部は、エントロピーデコーディング部310の構成要素であってもよい。一方、本文書によるデコーディング装置は、ビデオ/映像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、予測部330、加算部340、フィルタリング部350、及びメモリ360のうち少なくとも一つを含むことができる。
【0069】
逆量子化部321では量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列できる。この場合、前記再整列は、エンコーディング装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0070】
逆変換部322では変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0071】
予測部は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0072】
予測部は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することもできる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy、IBC)を実行することもできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。
【0073】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測で、予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0074】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0075】
加算部340は、取得されたレジデュアル信号を、予測部330から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることによって復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。
【0076】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使われることもできる。
【0077】
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0078】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用することで、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信できる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0079】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使われることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部332に伝達できる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達できる。
【0080】
本明細書において、デコーディング装置300の予測部330、逆量子化部321、逆変換部322、及びフィルタリング部350などで説明された実施例は、各々、エンコーディング装置200の予測部220、逆量子化部234、逆変換部235、及びフィルタリング部260などにも同一または対応されるように適用されることができる。
【0081】
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同じく導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに対する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで映像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0082】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出して関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングできる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックとに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0083】
図4は、本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0084】
また、本文書が適用されるコンテンツストリーミングシステムは、大いに、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0085】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。前記ビットストリームは、本文書が適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0086】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、どのようなサービスがあるかをユーザに知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0087】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間に格納することができる。
【0088】
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがある。前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0089】
図5は、本文書による多重変換技法を概略的に示す。
【0090】
図5を参照すると、変換部は、前述した図2のエンコーディング装置内の変換部に対応されることができ、逆変換部は、前述した図2のエンコーディング装置内の逆変換部または図3のデコーディング装置内の逆変換部に対応されることができる。
【0091】
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて1次変換を実行して(1次)変換係数を導出することができる(S510)。このような1次変換(primary transform)は、核心変換(core transform)と呼ばれることができる。ここで、前記1次変換は、多重変換選択(Multiple Transform Selection、MTS)に基づくことができ、1次変換として多重変換が適用される場合、多重核心変換と呼ばれることができる。
【0092】
多重核心変換は、DCT(Discrete Cosine Transform)タイプ2とDST(Discrete Sine Transform)タイプ7、DCTタイプ8、及び/またはDSTタイプ1を追加的に使用して変換する方式を示すことができる。即ち、前記多重核心変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8、及び前記DSTタイプ1の中から選択された複数の変換カーネルに基づいて、空間ドメインのレジデュアル信号(または、レジデュアルブロック)を周波数ドメインの変換係数(または、1次変換係数)に変換する変換方法を示すことができる。ここで、前記1次変換係数は、変換部立場で臨時変換係数と呼ばれることができる。
【0093】
即ち、既存の変換方法が適用される場合、DCTタイプ2に基づいて、レジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数が生成されることができた。これと違って、前記多重核心変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/またはDSTタイプ1などに基づいて、レジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数(または、1次変換係数)が生成されることができる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1等は、変換タイプ、変換カーネル(kernel)または変換コア(core)と呼ばれることができる。このようなDCT/DST変換タイプは、基底関数に基づいて定義されることができる。
【0094】
前記多重核心変換が実行される場合、前記変換カーネルの中から対象ブロックに対する垂直変換カーネル及び水平変換カーネルが選択されることができ、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が実行されることができる。ここで、前記水平変換は、前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は、前記対象ブロックの垂直成分に対する変換を示すことができる。前記垂直変換カーネル/水平変換カーネルは、レジデュアルブロックを含む対象ブロック(CUまたはサブブロック)の予測モード及び/または変換インデックスに基づいて適応的に決定されることができる。
【0095】
また、一例によると、MTSを適用して1次変換を実行する場合、特定基底関数を所定値に設定し、垂直変換または水平変換である時、どのような基底関数が適用されるかを組み合わせて変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向変換カーネルをtrTypeHorで表し、垂直方向変換カーネルをtrTypeVerで表す場合、trTypeHorまたはtrTypeVer値0はDCT2に設定され、trTypeHorまたはtrTypeVer値1はDST7に設定され、trTypeHorまたはtrTypeVer値2はDCT8に設定されることができる。
【0096】
この場合、多数の変換カーネルセットのうちいずれか一つを指示するために、MTSインデックス情報がエンコーディングされてデコーディング装置にシグナリングされることができる。例えば、MTSインデックスが0である場合、trTypeHor及びtrTypeVer値が両方とも0であることを指示し、MTSインデックスが1である場合、trTypeHor及びtrTypeVer値が両方とも1であることを指示し、MTSインデックスが2である場合、trTypeHor値は2であり、trTypeVer値は1であることを指示し、MTSインデックスが3である場合、trTypeHor値は1であり、trTypeVer値は2であることを指示し、MTSインデックスが4である場合、trTypeHor及びtrTypeVer値が両方とも2であることを指示することができる。
【0097】
一例によって、MTSインデックス情報による変換カーネルセットを表で示すと、以下の通りである。
【0098】
【表1】
【0099】
変換部は、前記(1次)変換係数に基づいて2次変換を実行して修正された(2次)変換係数を導出することができる(S520)。前記1次変換は、空間ドメインから周波数ドメインへの変換であり、前記2次変換は、(1次)変換係数間に存在する相関関係(correlation)を利用してもっと圧縮的な表現で変換することを意味する。前記2次変換は、非分離変換(non-separable transform)を含むことができる。この場合、前記2次変換は、非分離2次変換(non-separable secondary transform、NSST)またはMDNSST(mode-dependent non-separable secondary transform)と呼ばれることができる。前記非分離2次変換は、前記1次変換を介して導出された(1次)変換係数を非分離変換マトリクス(non-separable transform matrix)に基づいて2次変換してレジデュアル信号に対する修正された変換係数(または、2次変換係数)を生成する変換を示すことができる。ここで、前記非分離変換マトリクスに基づいて、前記(1次)変換係数に対して垂直変換及び水平変換を分離して(または、水平垂直変換を独立的に)適用せずに、一度に変換を適用することができる。即ち、前記非分離2次変換は、前記(1次)変換係数の垂直成分及び水平成分を分離するものではなく、例えば、2次元信号(変換係数)を特定決められた方向(例えば、行優先(row-first)方向または列優先(column-first)方向)を介して1次元信号に再整列した後、前記非分離変換マトリクスに基づいて修正された変換係数(または、2次変換係数)を生成する変換方法を示すことができる。例えば、行優先順序は、M×Nブロックに対して1番目の行、2番目の行、...、N番目の行の順序に一列に配置することであり、列優先順序は、M×Nブロックに対して1番目の列、2番目の列、...、M番目の列の順序に一列に配置することである。前記非分離2次変換は、(1次)変換係数で構成されたブロック(以下、変換係数ブロックと呼ばれることができる)の左上端(top-left)領域に対して適用されることができる。例えば、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも8以上であると、8×8非分離2次変換が前記変換係数ブロックの左上端8×8領域に対して適用されることができる。また、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも4以上であり、前記変換係数ブロックの幅(W)または高さ(H)が8より小さいと、4×4非分離2次変換が前記変換係数ブロックの左上端min(8、W)×min(8、H)領域に対して適用されることができる。ただし、実施例は、これに限定されるものではなく、例えば、前記変換係数ブロックの幅(W)または高さ(H)が両方とも4以上である条件のみを満たしても、4×4非分離2次変換が前記変換係数ブロックの左上端min(8、W)×min(8、H)領域に対して適用されることもできる。
【0100】
具体的に、例えば、4×4入力ブロックが使われる場合、非分離2次変換は、下記のように実行されることができる。
【0101】
前記4×4入力ブロックXは、以下のように示される。
【0102】
【数1】
【0103】
前記Xをベクトル形態で表す場合、ベクトル
は、以下のように示される。
【0104】
【数2】
【0105】
数式2のように、ベクトル
は、行優先(row-first)順序によって、数式1のXの2次元ブロックを1次元ベクトルで再配列する。
【0106】
この場合、前記2次非分離変換は、下記のように計算されることができる。
【0107】
【数3】
【0108】
ここで、
は、変換係数ベクトルを示し、Tは、16×16(非分離)変換マトリクスを示す。
【0109】
前記数式3を介して16×1変換係数ベクトル
が導出されることができ、前記
は、スキャン順序(水平、垂直、対角(diagonal)等)を介して4×4ブロックで再構成(re-organized)されることができる。ただし、前述した計算は、例示に過ぎず、非分離2次変換の計算複雑度を減らすために、HyGT(Hypercube-Givens Transform)などが非分離2次変換の計算のために使われることもできる。
【0110】
一方、前記非分離2次変換は、モードベースの(modedependent)変換カーネル(または、変換コア、変換タイプ)が選択されることができる。ここで、モードは、イントラ予測モード及び/またはインター予測モードを含むことができる。
【0111】
前述したように、前記非分離2次変換は、前記変換係数ブロックの幅(W)及び高さ(H)に基づいて決定された8×8変換または4×4変換に基づいて実行されることができる。8×8変換は、WとHが両方とも8より大きいまたは同じ時、該当変換係数ブロック内部に含まれている8×8領域に適用されることができる変換を指し、該当8×8領域は、該当変換係数ブロック内部の左上端8×8領域である。同様に、4×4変換は、WとHが両方とも4より大きいまたは同じ時、該当変換係数ブロック内部に含まれている4×4領域に適用されることができる変換を指し、該当4×4領域は、該当変換係数ブロック内部の左上端4×4領域である。例えば、8×8変換カーネルマトリクスは、64×64/16×64行列、4×4変換カーネルマトリクスは、16×16/8×16行列になることができる。
【0112】
このとき、モードベースの変換カーネル選択のために、8×8変換及び4×4変換の両方ともに対して非分離2次変換のための変換セット当たり2個ずつの非分離2次変換カーネルが構成されることができ、変換セットは、4個である。即ち、8×8変換に対して4個の変換セットが構成され、4×4変換に対して4個の変換セットが構成されることができる。この場合、8×8変換に対する4個の変換セットには、各々、2個ずつの8×8変換カーネルが含まれることができ、この場合、4×4変換に対する4個の変換セットには、各々、2個ずつの4×4変換カーネルが含まれることができる。
【0113】
ただし、前記変換のサイズ、即ち、変換が適用される領域のサイズは、例示に過ぎず、8×8または4×4以外のサイズが使われることができ、前記セットの数はn個、各セット内の変換カーネルの数はk個である。
【0114】
前記変換セットは、NSSTセットまたはLFNSTセットと呼ばれることができる。前記変換セットの中からの特定セットの選択は、例えば、現在ブロック(CUまたはサブブロック)のイントラ予測モードに基づいて実行されることができる。LFNST(Low-Frequency Non-Separable Transform)は、後述される減少された非分離変換の一例であり、低周波成分に対する非分離変換を示す。
【0115】
参考までに、例えば、イントラ予測モードは、2個の非方向性(non-directinoal、または非角度性(non-angular))イントラ予測モードと、65個の方向性(directional、または角度性(angular))イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは、2番乃至66番の65個のイントラ予測モードを含むことができる。ただし、これは例示に過ぎず、本文書は、イントラ予測モードの数が異なる場合にも適用されることができる。一方、場合によって、67番イントラ予測モードがさらに使用されることができ、前記67番イントラ予測モードは、LM(linear model)モードを示すことができる。
【0116】
図6は、65個の予測方向のイントラ方向性モードを例示的に示す。
【0117】
図6を参照すると、右下向対角予測方向を有する34番イントラ予測モードを中心にして、水平方向性(horizontal directionality)を有するイントラ予測モードと、垂直方向性(vertical directionality)を有するイントラ予測モードと、を区分することができる。図6のHとVは、各々、水平方向性と垂直方向性を意味し、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を示す。これはモードインデックス値に対するオフセットを示すことができる。2番乃至33番イントラ予測モードは水平方向性を有し、34番乃至66番イントラ予測モードは垂直方向性を有する。一方、34番イントラ予測モードは、厳密には、水平方向性でも垂直方向性でもないとみることができるが、2次変換の変換セットを決定する観点で水平方向性に属すると分類されることができる。これは、34番イントラ予測モードを中心にして対称される垂直方向モードに対しては入力データをトランスポーズ(transpose)して使用し、34番イントラ予測モードに対しては水平方向モードに対する入力データ整列方式を使用するためである。入力データをトランスポーズすることは、2次元ブロックデータM×Nに対して行が列になり、列が行になってN×Mデータを構成することを意味する。18番イントラ予測モードと50番イントラ予測モードは、各々、水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番イントラ予測モードは、左側参照ピクセルを有して右上向方向に予測するため、右上向対角イントラ予測モードと呼ばれることができ、同じ脈絡で、34番イントラ予測モードは右下向対角イントラ予測モードと呼ばれ、66番イントラ予測モードは左下向対角イントラ予測モードと呼ばれることができる。
【0118】
一例によって、イントラ予測モードによって4個の変換セットのマッピング(mapping)は、例えば、以下の表のように示される。
【0119】
【表2】
【0120】
表2のように、イントラ予測モードによって、4個の変換セットのうちいずれか一つ、即ち、lfnstTrSetIdxが0から3、即ち、4個のうちいずれか一つにマッピングされることができる。
【0121】
一方、非分離変換に特定セットが使われると決定される場合、非分離2次変換インデックスを介して前記特定セット内のk個の変換カーネルの中から一つが選択されることができる。エンコーディング装置は、RD(rate-distortion)チェックに基づいて特定変換カーネルを指す非分離2次変換インデックスを導出することができ、前記非分離2次変換インデックスをデコーディング装置にシグナリングできる。デコーディング装置は、前記非分離2次変換インデックスに基づいて特定セット内のk個の変換カーネルの中から一つを選択することができる。例えば、lfnstインデックス値0は、1番目の非分離2次変換カーネルを指すことができ、lfnstインデックス値1は、2番目の非分離2次変換カーネルを指すことができ、lfnstインデックス値2は、3番目の非分離2次変換カーネルを指すことができる。または、lfnstインデックス値0は、対象ブロックに対して1番目の非分離2次変換が適用されないことを指すことができ、lfnstインデックス値1乃至3は、前記3個の変換カーネルを指すことができる。
【0122】
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行して修正された(2次)変換係数を取得することができる。前記修正された変換係数は、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0123】
一方、前述したように、2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0124】
逆変換部は、前述した変換部で実行された手順の逆順に一連の手順を実行することができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S550)、前記(1次)変換係数に対して1次(逆)変換を実行してレジデュアルブロック(レジデュアルサンプルら)を取得することができる(S560)。ここで、前記1次変換係数は、逆変換部立場で修正された(modified)変換係数と呼ばれることができる。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックとに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは、前述の通りである。
【0125】
一方、デコーディング装置は、2次逆変換適用可否決定部(または、2次逆変換の適用可否を決定する要素)と、2次逆変換決定部(または、2次逆変換を決定する要素)をさらに含むことができる。2次逆変換適用可否決定部は、2次逆変換の適用可否を決定することができる。例えば、2次逆変換は、NSST、RSTまたはLFNSTであり、2次逆変換適用可否決定部は、ビットストリームからパーシングした2次変換フラグに基づいて2次逆変換の適用可否を決定することができる。他の一例として、2次逆変換適用可否決定部は、レジデュアルブロックの変換係数に基づいて2次逆変換の適用可否を決定することもできる。
【0126】
2次逆変換決定部は、2次逆変換を決定することができる。このとき、2次逆変換決定部は、イントラ予測モードによって指定されたLFNST(NSSTまたはRST)変換セットに基づいて現在ブロックに適用される2次逆変換を決定することができる。また、一実施例として、1次変換決定方法に依存的に(depend on)2次変換決定方法が決定されることができる。イントラ予測モードによって、1次変換と2次変換の多様な組み合わせが決定されることができる。また、一例として、2次逆変換決定部は、現在ブロックの大きさに基づいて2次逆変換が適用される領域を決定することもできる。
【0127】
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して前記1次(分離)逆変換を実行することでレジデュアルブロック(レジデュアルサンプル)を取得することができる。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは、前述の通りである。
【0128】
一方、本文書では非分離2次変換による計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリクス(カーネル)の大きさが減少されたRST(reduced secondary transform)を適用することができる。
【0129】
一方、本文書で説明された変換カーネル、変換マトリクス、変換カーネルマトリクスを構成する係数、即ち、カーネル係数またはマトリクス係数は8ビットで表現されることができる。これはデコーディング装置及びエンコーディング装置で具現されるための一つの条件であり、既存の9ビットまたは10ビットと比較して合理的に受け入れることができる性能低下と共に、変換カーネルを格納するためのメモリ要求量を減らすことができる。また、カーネルマトリクスを8ビットで表現することによって小さい掛け算器を使用することができ、最適のソフトウェア具現のために使われるSIMD(Single Instruction Multiple Data)命令にさらに適合できる。
【0130】
本明細書において、RSTは、簡素化ファクタ(factor)によって大きさが減少された変換マトリクス(transform matrix)に基づいて、対象ブロックに対するレジデュアルサンプルに対して実行される変換を意味することができる。簡素化変換を実行する場合、変換マトリクスの大きさ減少によって変換時に要求される演算量が減少されることができる。即ち、RSTは、大きさが大きいブロックの変換または非分離変換時に発生する演算複雑度(complexity)問題を解消するために利用されることができる。
【0131】
RSTは、減少された変換、減少変換、reduced transform、reduced secondary transform、reduction transform、simplified transform、simple transformなど、多様な用語で呼ばれることができ、RSTと呼ばれる名称は、羅列された例示に限定されるものではない。または、RSTは、主に変換ブロックで0でない係数を含む低周波領域で行われるため、LFNST(Low-Frequency Non-Separable Transform)と呼ばれることもできる。前記変換インデックスは、LFNSTインデックスと命名されることができる。
【0132】
一方、2次逆変換がRSTに基づいて行われる場合、エンコーディング装置200の逆変換部235とデコーディング装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書で変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出するのを意味することができる。
【0133】
図7は、本文書の一実施例に係るRSTを説明するための図である。
【0134】
本明細書において、「対象ブロック」は、コーディングが実行される現在ブロックまたはレジデュアルブロックまたは変換ブロックを意味することができる。
【0135】
一実施例に係るRSTで、N次元ベクトル(N dimensional vector)が異なる空間に位置したR次元ベクトル(R dimensional vector)にマッピングされて減少された変換マトリクスが決定されることができ、ここで、Rは、Nより小さい。Nは、変換が適用されるブロックの一辺の長さ(length)の自乗または変換が適用されるブロックと対応される変換係数の総個数を意味することができ、簡素化ファクタは、R/N値を意味することができる。簡素化ファクタは、減少されたファクタ、減少ファクタ、reduced factor、reduction factor、simplified factor、simple factorなど、多様な用語で呼ばれることができる。一方、Rは、簡素化係数(reduced coefficient)と呼ばれることができるが、場合によっては、簡素化ファクタがRを意味することもできる。また、場合によって、簡素化ファクタは、N/R値を意味することもできる。
【0136】
一実施例において、簡素化ファクタまたは簡素化係数は、ビットストリームを介してシグナリングされることができるが、実施例がこれに限定されるものではない。例えば、簡素化ファクタまたは簡素化係数に対する既定義された値が各エンコーディング装置200及びデコーディング装置300に格納されている場合があり、この場合、簡素化ファクタまたは簡素化係数は、別途にシグナリングされない。
【0137】
一実施例に係る簡素化変換マトリクスのサイズは、通常の変換マトリクスのサイズN×Nより小さいR×Nであり、以下の数式4のように定義されることができる。
【0138】
【数4】
【0139】
図7の(a)に示すReduced Transformブロック内のマトリクスTは、数式4のマトリクスTR×Nを意味することができる。図7の(a)のように、対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリクスTR×Nが掛けられる場合、対象ブロックに対する変換係数が導出されることができる。
【0140】
一実施例において、変換が適用されるブロックのサイズが8×8であり、R=16(即ち、R/N=16/64=1/4)である場合、図7の(a)によるRSTは、以下の数式5のような行列演算で表現されることができる。この場合、メモリと掛け演算が簡素化ファクタにより概略1/4に減少できる。
【0141】
本文書において、行列演算とは、行列を列ベクトルの左側に置いて行列と列ベクトルをかけて列ベクトルを得る演算と理解されることができる。
【0142】
【数5】
【0143】
数式5において、r乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができ、より具体的に、1次変換を適用して生成された変換係数である。数式5の演算結果、対象ブロックに対する変換係数cが導出されることができ、cの導出過程は、数式6の通りである。
【0144】
【数6】
【0145】
数式6の演算結果、対象ブロックに対する変換係数c乃至cが導出されることができる。即ち、R=16である場合、対象ブロックに対する変換係数c乃至c16が導出されることができる。もし、RSTではなく通常の(regular)変換が適用されてサイズが64×64(N×N)である変換マトリクスが、サイズが64×1(N×1)であるレジデュアルサンプルに掛けられた場合、対象ブロックに対する変換係数が64個(N個)が導出されるが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少してエンコーディング装置200がデコーディング装置300に送信するデータの量が減少するため、エンコーディング装置200-デコーディング装置300間の送信効率が増加できる。
【0146】
変換マトリクスのサイズ観点で検討すると、通常の変換マトリクスのサイズは64×64(N×N)であり、簡素化変換マトリクスのサイズは16×64(R×N)に減少するため、通常の変換を実行する時と比較すると、RSTを実行する時にメモリ使用をR/N割合に減少させることができる。また、通常の変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化変換マトリクスを利用する場合、掛け算演算数をR/N割合に減少(R×N)させることができる。
【0147】
一実施例において、エンコーディング装置200の変換部232は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を実行することによって対象ブロックに対する変換係数を導出することができる。このような変換係数は、デコーディング装置300の逆変換部に伝達されることができ、デコーディング装置300の逆変換部322は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて対象ブロックに対するレジデュアルサンプルを導出することができる。
【0148】
一実施例に係る逆RSTマトリクスTN×Rのサイズは、通常の逆変換マトリクスのサイズN×Nより小さいN×Rであり、数式4に示す簡素化変換マトリクスTR×Nとトランスポーズ(transpose)関係にある。
【0149】
図7の(b)に示すReduced Inv.Transformブロック内のマトリクスTは、逆RSTマトリクスTR×N を意味することができる(上付き文字Tは、トランスポーズを意味する)。図7の(b)のように、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられる場合、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルが導出されることができる。逆RSTマトリクスTR×N は、(TR×N N×Rで表現することもできる。
【0150】
より具体的に、2次逆変換として逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられると、対象ブロックに対する修正された変換係数が導出されることができる。一方、逆1次変換として逆RSTが適用されることができ、この場合、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられると、対象ブロックに対するレジデュアルサンプルが導出されることができる。
【0151】
一実施例において、逆変換が適用されるブロックのサイズが8×8であり、R=16(即ち、R/N=16/64=1/4である場合)である場合、図7の(b)によるRSTは、以下の数式7のような行列演算で表現されることができる。
【0152】
【数7】
【0153】
数式7において、c乃至c16は、対象ブロックに対する変換係数を示すことができる。数式7の演算結果、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すrが導出されることができ、rの導出過程は、数式8の通りである。
【0154】
【数8】
【0155】
数式8の演算結果、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すr乃至rが導出されることができる。逆変換マトリクスのサイズ観点で検討すると、通常の逆変換マトリクスのサイズは64×64(N×N)であり、簡素化逆変換マトリクスのサイズは64×16(N×R)に減少するため、通常の逆変換を実行する時と比較すると、逆RSTを実行する時にメモリ使用をR/N割合に減少させることができる。また、通常の逆変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化逆変換マトリクスを利用する場合、掛け算演算数をR/N割合に減少(N×R)させることができる。
【0156】
一方、8×8 RSTに対しても、表2のような変換セット構成を適用することができる。即ち、表2での変換セットによって該当8×8 RSTが適用されることができる。一つの変換セットは、画面内の予測モードによって2個または3個の変換(カーネル)で構成されているため、2次変換を適用しないとまで含んで最大4個の変換の中から一つを選択するように構成されることができる。2次変換を適用しない時の変換は、恒等行列が適用されたと見なされることができる。4個の変換に対して各々0、1、2、3のインデックスを付与するとした時(例えば、0番インデックスを恒等行列、即ち、2次変換を適用しない場合で割り当てることができる)、変換インデックスまたはlfnstインデックスというシンタックス要素(syntax element)を変換係数ブロック毎にシグナリングして適用される変換を指定することができる。即ち、変換インデックスを介して8×8左上端ブロックに対して、RST構成では8×8 RSTを指定することができ、またはLFNSTが適用される場合、8×8 lfnstを指定することができる。8×8 lfnst及び8×8 RSTは、変換の対象になる対象ブロックのWとHが両方とも8より大きいまたは同じ時、該当変換係数ブロック内部に含まれている8×8領域に適用されることができる変換を指し、該当8×8領域は、該当変換係数ブロック内部の左上端8×8領域である。同様に、4×4 lfnst及び4×4 RSTは、対象ブロックのWとHが両方とも4より大きいまたは同じ時、該当変換係数ブロック内部に含まれている4×4領域に適用されることができる変換を指し、該当4×4領域は該当変換係数ブロック内部の左上端4×4領域である。
【0157】
一方、本文書の一実施例によって、エンコーディング過程の変換で、8×8領域を構成する64個のデータに対して16×64変換カーネルマトリクスでない、48個のデータのみを選択して最大16×48変換カーネルマトリクスを適用することができる。ここで、「最大」とは、m個の係数を生成することができるm×48変換カーネルマトリクスに対してmの最大値が16であることを意味する。即ち、8×8領域にm×48変換カーネルマトリクス(m≦16)を適用してRSTを実行する場合、48個のデータの入力を受けてm個の係数を生成することができる。mが16である場合、48個のデータの入力を受けて16個の係数を生成する。即ち、48個のデータが48×1ベクトルをなすとした時、16×48行列と48×1ベクトルをじゅんにかけて16×1ベクトルが生成されることができる。このとき、8×8領域をなす48個のデータを適切に配列して48×1ベクトルを構成することができる。例えば、8×8領域のうち右下端4×4領域を除外した領域を構成する48個のデータに基づいて48×1ベクトルを構成することができる。このとき、最大16×48変換カーネルマトリクスを適用して行列演算を実行すると、16個の修正された変換係数が生成され、16個の修正された変換係数は、スキャニング順序によって左上端4×4領域に配置されることができ、右上端4×4領域と左下端4×4領域は、0で満たされることができる。
【0158】
デコーディング過程の逆変換には前記叙述された変換カーネルマトリクスのトランスポーズされたマトリクスが使われることができる。即ち、デコーディング装置で実行される逆変換過程として逆RSTまたはLFNSTが実行される場合、逆RSTを適用する入力係数データは、所定の配列順序によって1次元ベクトルで構成され、1次元ベクトルに該当逆RST行列を左側でかけて得られた修正された係数ベクトルを所定の配列順序によって2次元ブロックに配列されることができる。
【0159】
整理すると、変換過程で、8×8領域にRSTまたはLFNSTが適用される場合、8×8領域の変換係数のうち、8×8領域の右下端領域を除外した左上端、右上端、左下端領域の48個変換係数と16×48の変換カーネルマトリクスとの行列演算が実行される。行列演算のために、48個の変換係数は、1次元配列で入力される。このような行列演算が実行されると、16個の修正された変換係数が導出され、修正された変換係数は、8×8領域の左上端領域に配列されることができる。
【0160】
逆に、逆変換過程で、8×8領域に逆RSTまたはLFNSTが適用される場合、8×8領域の変換係数のうち8×8領域の左上端に対応する16個の変換係数は、スキャニング順序によって1次元配列形態で入力されて48×16の変換カーネルマトリクスと行列演算されることができる。即ち、このような場合の行列演算は、(48×16行列)*(16×1変換係数ベクトル)=(48×1修正された変換係数ベクトル)で表すことができる。ここで、n×1ベクトルは、n×1行列のような意味で解釈されることができるため、n×1列ベクトルで表記されることもできる。また、*は、行列掛け算演算を意味する。このような行列演算が実行される場合、48個の修正された変換係数が導出されることができ、48個の修正された変換係数は、8×8領域の右下端領域を除外した左上端、右上端、左下端領域に配列されることができる。
【0161】
一方、2次逆変換がRSTに基づいて行われる場合、エンコーディング装置200の逆変換部235とデコーディング装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書において、変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出することを意味することができる。
【0162】
一方、以下では減少された多重変換技法(Reduced adaptive multiple transform selection(or set)、RMTS)に対して説明する。
【0163】
前述したように、多重変換技法(Multiple Transform Set or Adaptive multiple transform)で多様な変換(DCT2、DST7、DCT8、DST1、DCT5等)の組み合わせが選択的に1次変換に使われる場合、複雑度減少のために全ての場合に対して変換を実行するものではなく、あらかじめ定義された領域に対してのみ変換を適用することによって、最悪の場合に対する複雑度を著しく減少させることができる。
【0164】
例えば、既に言及された減少された変換(Reduced transform、RT)の方法に基づいて、M×M大きさの画素ブロックに対して1次変換を適用した場合、M×M大きさの変換ブロックを得る代わりに、R×Rブロックの(M>=R)変換ブロックに対する計算のみを実行することができる。結果的に、R×R領域に対してのみ有効な係数(non-zero coefficients)が存在するようになり、その他の領域に存在する変換係数に対しては計算を実行せずにゼロ(zero)値と見なすことができる。以下の表は、1次変換が適用されるブロックの大きさ別にあらかじめ定義された簡素化ファクタ(reduced transform factor、R)値を使用する減少された適応的多重変換(reduced adaptive multiple transform、RAMT)の三つの例を示している。
【0165】
【表3】
【0166】
また、一例によると、前記のように減少された多重変換技法を適用するにあたって、簡素化ファクタが該当1次変換に基づいて決定されることができる。例えば、1次変換がDCT2である場合、他の1次変換に比べて計算量が比較的簡単であるため、少ないブロックに対しては減少された変換を使用しない、または相対的に大きいR値を使用することによって、符号化性能の減少を最小化することができる。例えば、DCT2の場合とその他の変換である場合、以下のように他の簡素化ファクタを使用することができる。
【0167】
【表4】
【0168】
表4に示すように、1次変換がDCT2である場合、変換の対象であるブロックの大きさが8×8、16×16以上であると、変換大きさが変更されなく、32×32以上であると、減少された変換大きさが32×32に制限される。
【0169】
または、一例によると、MTSが適用されるかどうかを指示するフラグ値が0である場合(即ち、横方向と縦方向に対して両方ともDCT-2変換が適用される場合)、二つの方向(horizontalまたはvertical)に対して左側及び上側から32個の係数のみを残し、高周波成分は、ゼロアウト(zero-out)するように、即ち、0に設定するように構成されることができる(ゼロアウト実施例1)。
【0170】
例えば、64×64変換ユニット(TU)の場合、左上端32×32領域にのみ変換係数が余るようになり、64×16TUの場合、左上端32×16領域にのみ変換係数が余るようになり、8×64TUの場合、左上端8×32領域にのみ変換係数が余るようになる。即ち、横と縦の両方とも最大長さ32ほどまで変換係数が存在するようになる。
【0171】
このようなゼロアウト方法は、イントラ予測が適用された残差信号にのみ適用されることもでき、インター予測が適用された残差信号にのみ適用されることもできる。または、イントラ予測が適用された残差信号とインター予測が適用された残差信号の両方ともに適用されることもできる。
【0172】
前述されたゼロアウトまたは高周波ゼロイング(high frequency zeroing)で表現されることができる変換ブロック大きさの変更は、第1の横大きさ(または、長さ)W1、第1の縦大きさ(または、長さ)H1を有する(変換)ブロックで一定値以上に高い周波数と関連した変換係数をゼロ化(即ち、0に決定)する過程を意味する。高周波ゼロイングが適用される場合、前記(変換)ブロック内の変換係数のうち第2の横大きさW2及び第2の縦大きさH2に基づいて構成される低周波変換係数領域の外部の変換係数の変換係数値は、全て0に決定(設定)されることができる。前記低周波変換係数領域の外部は、高周波変換係数領域と呼ばれることができる。一例示において、前記低周波変換係数領域は、前記(変換)ブロックの左上端から位置する長方形もようの領域である。
【0173】
即ち、高周波ゼロイングは、現在TB(transform block)の左上端位置に対する横方向x座標値を0とし、縦方向y座標値を0とした時(そして、x座標は左側から右側へ増加し、y座標は上側から下側へ増加する時)、x座標がw以上、またはy座標がh以上である位置に対する変換係数値を全て0に設定することを高周波ゼロイングに定義することができる。
【0174】
本文書では特定情報または概念を定義するための特定用語または文章を使用している。例えば、前述したように、本明細書では第1の横大きさ(または、長さ)W1、第1の縦大きさ(または、長さ)H1を有する(変換)ブロックで一定値以上の周波数に対応される変換係数をゼロ化する過程を「高周波ゼロイング」に定義しており、前記高周波ゼロイングを介してゼロイングが実行された領域を「高周波変換係数領域」に定義し、前記ゼロイングが実行されない領域を「低周波変換係数領域」に定義している。前記低周波変換係数領域のサイズを示すために、第2の横大きさ(または、長さ)W2と第2の縦大きさ(または、長さ)H2が使われている。
【0175】
しかし、「高周波ゼロイング」は、highfrequency zeroing、ハイフリークエンシーゼロイング、高周波ゼロ化、高周波ゼロアウト(highfrequency zero-out)、ゼロアウトなど、多様な用語に代替されることができ、前記「高周波変換係数領域」は、高周波ゼロイング適用領域、高周波ゼロイング領域、ハイフリークエンシー領域、高周波係数領域、高周波ゼロアウト領域など、多様な用語に代替されることができ、前記「低周波変換係数領域」は、高周波ゼロイング未適用領域、ローフリークエンシー領域、低周波係数領域、制限領域、ゼロアウト領域など、多様な用語に代替されることができ、本明細書で特定情報または概念を定義するために使われた特定用語または文章を明細書の全般で解釈するにあたって、その名称に限定された解釈をしてはならず、前記用語が表現しようとする内容による多様な動作、機能及び効果に注目して解釈する必要がある。
【0176】
または、一例によって、低周波変換係数領域は、高周波ゼロイングが実行されて残った領域、有効変換係数が残っている領域、即ち、0でない変換係数存在可能領域であって、これをゼロアウト領域またはゼロアウトブロックと命名することができる。
【0177】
一方、一例によって、MTSが適用されるかどうかを指示するフラグ値が1である場合に対して、即ち、横方向と縦方向に対してDCT-2以外の他の変換(DST-7またはDCT-8)が適用されることができる場合、下記のように一部左上端領域にのみ変換係数を残して、残りの領域はゼロアウトできる(ゼロアウト実施例2)。
【0178】
-幅(w)が2より大きいまたは同じ場合、左側からw/2長さほどに対してのみ変換係数を残して、残りは0値に固定(zero-out)させることができる。
【0179】
-高さ(h)が2より大きいまたは同じ場合、上側からh/2長さほどに対してのみ変換係数を残して、残りは0値に固定(zero-out)させることができる。
【0180】
このとき、m、n、p、q値は、0より大きいまたは同じ整数であって、具体的に下記の通りである。
【0181】
1)(m、n、p、q)=(5、5、1、1)
【0182】
2)(m、n、p、q)=(4、4、1、1)
【0183】
前記1)構成の場合、32×16TUに対しては左上端16×16領域にのみ変換係数が余るようになり、8×32TUに対しては左上端8×16領域にのみ変換係数が余るようになる。
【0184】
このようなゼロアウト方法は、イントラ予測が適用された残差信号にのみ適用されることもでき、インター予測が適用された残差信号にのみ適用されることもできる。または、イントラ予測が適用された残差信号とインター予測が適用された残差信号の両方ともに適用されることもできる。
【0185】
または、他の例によって、MTSが適用されるかどうかを指示するフラグ値が1である場合に対して、即ち、横方向と縦方向に対してDCT-2以外の他の変換(DST-7またはDCT-8)が適用されることができる場合、下記のように一部左上端領域にのみ変換係数を残して、残りの領域はゼロアウトできる(ゼロアウト実施例3)。
【0186】
-高さ(h)が幅(w)より大きいまたは同じ、高さが2より大きいまたは同じ場合、左上端w×(h/2)領域のみ変換係数を残して、残りの領域に対しては0値に固定(zero-out)させることができる。
【0187】
-幅(w)が高さ(h)より大きい、幅が2より大きいまたは同じ場合、左上端(w/2)×h領域のみ変換係数を残して、残りの領域に対しては0値に固定(zero-out)させることができる。
【0188】
前記条件で高さ(h)と幅(w)が同じ場合に対しては縦方向を減らすことと(h/2)されているが、横方向を減らすように(w/2)設定することもできる。
【0189】
このとき、m、n、p、q値は、0より大きいまたは同じ整数であり、具体的に下記のの通りである。
【0190】
1)(m、n、p、q)=(4、4、1、1)
【0191】
2)(m、n、p、q)=(5、5、1、1)
【0192】
前記1)構成の場合、32×16TUに対しては左上端16×16領域にのみ変換係数が余るようになり、8×16TUに対しては左上端8×8領域にのみ変換係数が余るようになる。
【0193】
このようなゼロアウト方法は、イントラ予測が適用された残差信号にのみ適用されることもでき、インター予測が適用された残差信号にのみ適用されることもできる。または、イントラ予測が適用された残差信号とインター予測が適用された残差信号の両方ともに適用されることもできる。
【0194】
前述された実施例ではMTSが適用されるかどうかを指示するフラグ値が0であり、またはMTSが適用されるかどうかを指示するフラグ値が1である場合に対して、変換係数領域を制限している。一例によると、これらの組み合わせが可能である。
【0195】
1)ゼロアウト実施例1+ゼロアウト実施例2
【0196】
2)ゼロアウト実施例1+ゼロアウト実施例3
【0197】
ゼロアウト実施例2とゼロアウト実施例3でも言及したように、ゼロアウト方法は、イントラ予測が適用された残差信号にのみ適用されることもでき、インター予測が適用された残差信号にのみ適用されることもできる。または、イントラ予測が適用された残差信号とインター予測が適用された残差信号の両方ともに適用されることもできる。したがって、MTSフラグが1である場合に対して以下の表のような構成が可能である(MTSフラグが0である場合に対してはゼロアウト実施例1を適用することができる)。このとき、MTSフラグは、MTSに対する変換カーネルを指示するMTSインデックスで具現されることもできる。例えば、MTSインデックスが0である場合、ゼロアウト実施例1が適用されることを指示することができる。
【0198】
【表5】
【0199】
ゼロアウト実施例1、ゼロアウト実施例2、及びゼロアウト実施例3ではTU内で0値を有する領域が明確に決められる。即ち、変換係数存在が許諾される左上端領域を除いて残りは0値にゼロアウトされる。したがって、一実施例によると、レジデュアル信号に対するエントロピーコーディング時、変換係数が0値を有することが確実な領域に対してはレジデュアルコーディングを実行せずにバイパスするように構成されることができる。例えば、下記のような構成が可能である。
【0200】
1)HEVCやVVC標準では一つのCG(Coefficient Group、サブブロック、TUブロックもようとルマ成分/クロマ成分であるかによって、4×4または2×2ブロックになることができる)内に0でない変換係数が存在するかを示すフラグをコーディングするようになる(subblock_flag)。subblock_flagが1である場合に限って、該当CG内部がスキャンされて係数レベル値がコーディングされる。したがって、0値にゼロアウトされる領域に属するCGに対してはsubblock_flagコーディングされずにデフォルトで0値に設定されることができる。
【0201】
2)HEVCやVVC標準では順方向スキャン順序内最も最後に位置する係数の位置(X方向位置であるlast_coefficient_position_xとY方向位置であるlast_coefficient_position_y)を先にコーディングするようになる。普通last_coefficient_position_xとlast_coefficient_position_yが有することができる値の最大値は、各々、TUの(幅-1)と(高さ-1)値になるが、前記ゼロアウトにより0でない係数が存在できる領域が制限される場合、last_coefficient_position_xとlast_coefficient_position_yが有することができる値の最大値も共に制限される。したがって、last_coefficient_position_xとlast_coefficient_position_yが有することができる最大値をゼロアウトを考慮して制限した後にコーディングできる。例えば、last_coefficient_position_xとlast_coefficient_position_yに適用される二進化方法がトランケイテッドユナリ(truncated unary)である場合、トランケイテッドユナリコードの最大長さ(last_coefficient_position_xとlast_coefficient_position_yが有することができるコードワード長さ)を調整された最大値に基づいて減らすことができる。
【0202】
前記のように、ゼロアウトが適用される時、特に左上端16×16領域を低周波変換係数領域とする場合(以下、32point Reduced MTSまたはRMTS32と命名することができる。)、MTS技法が適用される場合だけでなく、32-pointDST-7または32-pointDCT-8が適用される全ての場合に適用されることができる。
【0203】
図8は、本文書の一例に係るサブブロック変換に適用されるMTSを説明するための図である。
【0204】
一例によって、コーディングユニットがサブブロックに分割されて変換過程が実行されるサブブロック変換(subblock transform、SBT)が適用されることができる。サブブロック変換は、インター予測を介して生成されたレジデュアル信号に適用されてサブブロック変換によりレジデュアル信号ブロックが二つの分割されたサブブロックに分けられてそのうち一つのサブブロックにのみ分離変換(separable transform)が適用される。サブブロックは、水平方向または垂直方向に分割されることができ、分割されたサブブロックの幅または高さは、コーディングユニットの1/2または1/4になることができる。サブブロック変換が適用される場合、二つに分割されたサブブロックのうちいずれか一つに対してのみ変換が実行されるため、変換が実行されたサブブロックにのみレジデュアルデータが存在し、残りの一つのサブブロックにはレジデュアルデータが存在しない。
【0205】
変換が適用される該当サブブロックの場合、幅または高さのうちいずれか一つでも64長さ以上になる場合は、水平方向と垂直方向の両方ともDCT-2が適用され、幅及び高さが両方とも32以下以上であると、DST-7またはDCT-8が適用されることができる。したがって、SBTが適用される場合、変換が適用されるサブブロックの二辺の長さが全て32以下である場合に対してのみ、RMTS32を適用してゼロアウトを実行することができる。即ち、32長さ以下のDST-7またはDCT-8を各方向に(horizontal方向とvertical方向)適用して各行または列に対して最大16個の変換係数を残すことができる。
【0206】
図8のようにブロックが分割されてAと表示された領域に対して変換が適用される場合、各辺に対してDST-7またはDCT-8が適用されることができ、水平方向と垂直方向に適用される変換ペア(transform pair)は、図8に示す例示に限定されるものではない。図8において、全体ブロックの幅と高さは、各々、wとhで表示されており、実際分離変換(separable transform)が適用されるブロックの幅と高さは、(幅、高さ)の対で表現した時、(w1、h)または(w、h1)になる。w1は、wの1/2または1/4であり、h1もhの1/2または1/4である。
【0207】
変換が適用されるブロックは、図8のように全体ブロック内で左側または右側乃至は上側または下側に位置できる。また、図8のブロックは、インター予測により生成された残差信号である。該当残差信号に対して、図8のように分割して片側サブブロックのみ変換を適用するかを示すフラグをシグナリングすることができ、該当フラグが1である時、図8のように縦方向分割であるかまたは横方向分割であるかを示すフラグもシグナリングを介して設定できる。
【0208】
実際変換が適用されるブロックAが全体ブロック内で左側または右側に位置するかを指すフラグまたは上側または下側に位置するかを指すフラグもシグナリングされることができる。
【0209】
図8の例示のように、MTSシグナリングで水平方向の変換と垂直方向の変換が指定されずに、ある特定ブロックに対して水平方向の変換と垂直方向の変換が決められる場合、横方向と縦方向の各辺に対して長さが32である場合、前記提案したRMTS32を各々適用できる。RMTS32の場合、ゼロアウトになる領域に対してレジデュアルコーディングを省略するように構成でき、またはゼロアウトにならない領域のみをスキャニングしてレジデュアルコーディングを実行することもできる。
【0210】
図9は、本文書の一例に係るサブブロック変換に適用された32-pointゼロアウトを示す図である。
【0211】
図8のように分割されたサブブロックにRMTS32が適用されると、変換後レジデュアルデータが図9のように存在できる。即ち、図9は、サブブロック変換の適用によって分割されたブロックのうち変換が実行されるサブブロックに対してRMTS32が適用されることを示している。
【0212】
実際変換が適用されるAブロックの幅と高さは、元来変換ブロックの幅(w)及び高さ(h)に対して、各々、w/2とh/2またはw/4とh/4になることができる。
【0213】
整理すると、変換が適用されるどのようなブロックでも、水平方向と垂直方向の各方向に対して長さが32であるDST-7またはDCT-8が適用可能である場合、RMTS32が適用されることができる。長さが32であるDST-7またはDCT-8が適用されるかどうかは、既設定されたシグナリングを介して決定されることもでき、決められたコーディング条件によってシグナリング無しで決定されることもできる。
【0214】
一方、MTSが非活性化(disable)される場合(例えば、VVCの場合、シーケンスパラメータセット(sequence parameter set)で「sps_mts_enable_flag」が0に設定される時、MTSが非活性化されることができる)、SBTが適用される時、表3に提示されたDST7とDCT8の組み合わせが適用されるものではなく、水平方向と垂直方向の両方ともに対してDCT2が適用される。
【0215】
したがって、MTSが非活性化される場合には、変換対象ブロックがサブブロックに分割されてもRMTS32が適用されないようにしなければならない。前述したように、MTSが適用されない場合、1次変換としてDST7またはDCT8でないDCT2が適用され、DCT2が適用される0でない変換係数が存在できる左上端ブロックは、幅及び高さが32に縮小される高周波ゼロイングアウトが実行されることができる。即ち、逆DCT-2が適用される0でない変換係数が存在できる左上端ブロックは、幅及び高さが32に大きさが減少されることができるが、その以下にはゼロアウトされない。これはゼロアウトによるデータ損失を防止するためのことであって、逆DCT2が適用される前記左上端ブロックは、幅または高さが16に縮小されない。
【0216】
もし、MTSが非活性化される場合、DCT2が適用される分割されたサブブロックの幅または高さが16に減らないように、これを明示的にチェックする過程が必要である。
【0217】
一例によって、レジデュアルコーディングレベル(Residual coding syntax)で「sps_mts_enabled_flag」を判断することによって、SBTが適用される時、RMTS32によるゼロアウトが実行されないように構成できる。
【0218】
前記実施例が反映されたスペックテキストは、以下の表(表6乃至表16)で表すことができる。
【0219】
【表6】
【0220】
【表7】
【0221】
表6及び表7は、映像コーディングのためにシーケンスパラメータセットでシグナリングされる映像情報を含んでおり、変換と関連したフラグ情報を含んでいる。
【0222】
sps_transform_skip_enabled_flagは、変換スキップが適用されるかどうか、即ち、変換ユニットに対するシンタックスに変換スキップフラグ(transform_skip_flag)が存在できるかどうかを指示する。
【0223】
sps_mts_enabled_flagは、MTS、即ち、多重変換選択技法が明示的に使われることができるかどうかを示すフラグ情報であり、sps_mts_enabled_flagが1である場合、シーケンスパラメータセットシンタックス内のsps_explicit_mts_intra_enabled_flag及びsps_explicit_mts_inter_enabled_flagが存在することを示す。
【0224】
sps_explicit_mts_intra_enabled_flagとsps_explicit_mts_inter_enabled_flagのうちいずれか一つが1である場合、変換ユニットにMTSが適用されることができることを示し、これは変換ユニットシンタックス内のtu_mts_idxが存在できるということを意味する。例えば、sps_mts_enabled_flag値が1であり、sps_explicit_mts_intra_enabled_flag値が0である場合、イントラコーディングユニットに対して暗黙的MTS(implicit MTS)が適用されることができる。
【0225】
sps_sbt_enabled_flagは、インター予測に対するコーディングユニットに対して前述したサブブロック変換が適用されることができるかどうかを指示するフラグ情報である。
【0226】
sps_sbt_enabled_flagが1である場合、サブブロック変換が許容される最大コーディングユニットの幅及び高さに対するsps_sbt_max_size_64_flagがシグナリングされることができる。
【0227】
sps_sbt_max_size_64_flagが0である場合、サブブロック変換が許容される最大コーディングユニットの幅及び高さは、32であり、sps_sbt_max_size_64_flagが1である場合、サブブロック変換が許容される最大コーディングユニットの幅及び高さは、64として導出される。
【0228】
【表8】
【0229】
表8は、ピクチャパラメータセット内でシグナリングされる変換関連情報を示す。log2_transform_skip_max_size_minus2は、変換スキップが使われることができる最大ブロックサイズを導出するための情報であって、変換スキップが使われることができる最大ブロックサイズは、log2_transform_skip_max_size_minus2に2を足した値の2の累乗(1<<(log2_transform_skip_max_size_minus2+2)として導出される。
【0230】
【表9】
【0231】
【表10】
【0232】
表9及び表10は、インター予測が適用されるコーディングユニットに対するシンタックス及びセマンティクスを示し、SBTが適用される分割もようは、表9の4個のシンタックスエレメントにより決定されることができる。
【0233】
cu_sbt_flagは、該当コーディングユニットに対してSBTが適用されるかどうかを指し、cu_sbt_quad_flagは、一つのコーディングユニットが二つの分割ブロックに分割される時、変換が適用されるブロックが全体ブロックの1/4であるかを示すフラグ情報である。cu_sbt_quad_flag値が0である場合、分割されたサブブロックは、コーディングユニットの幅または高さの1/2大きさを有し、cu_sbt_quad_flag値が1である場合、分割されるサブブロックは、コーディングユニットの幅または高さの1/4大きさを有する。コーディングユニットの幅をw、高さをhとする時、分割ブロックの高さはh1=(1/4)×hまたは幅はw1=(1/4)×wである。
【0234】
cu_sbt_horizontal_flag値が1である場合、コーディングユニットは、横、即ち、水平方向に分割され、それに対して、cu_sbt_horizontal_flag値が0である場合、コーディングユニットは、縦、即ち、垂直方向に分割されることを示す。
【0235】
cu_sbt_pos_flag値が0である場合、水平方向に分割されたサブブロックのうち上側のサブブロックに変換を適用し、垂直方向に分割されたサブブロックのうち左側サブブロックに変換を適用する。もし、cu_sbt_pos_flagは、flag値が1である場合、水平方向に分割されたサブブロックのうち下側のサブブロックに変換を適用し、垂直方向に分割されたサブブロックのうち右側サブブロックに変換を適用する。
【0236】
cu_sbt_horizontal_flag及びcu_sbt_pos_flagによるtrTypeHor及びtrTypeVerを表で示すと、以下の通りである。
【0237】
【表11】
【0238】
前述したように、水平方向変換カーネルをtrTypeHorで表し、垂直方向変換カーネルをtrTypeVerで表す場合、trTypeHorまたはtrTypeVer値0はDCT2に設定され、trTypeHorまたはtrTypeVer値1はDST7に設定され、trTypeHorまたはtrTypeVer値2はDCT8に設定されることができる。したがって、変換が適用される該当分割ブロックの少なくとも一辺の長さが64以上になると、水平方向と垂直方向の両方ともDCT-2が適用され、それともDST-7またはDCT-8が適用されることができる。現在ブロックが分割されてサブブロックに変換が実行される場合、表11のように暗黙的にMTSが適用されることができる。
【0239】
一方、サブブロックの幅及び高さの両方とも32以下であるため、DST-7またはDCT-8が適用される場合、即ち、サブブロックにMTSが適用されると、前述されたRMTSが適用されることができる。例えば、サブブロックの各方向に対して長さが32である場合、32長さのDST-7またはDCT-8を適用して16個の変換係数のみを残すことができる。
【0240】
それに対して、サブブロックの幅または高さのうちいずれか一つでも64以上であると、水平方向及び垂直方向の両方ともにDCT-2が適用され、各方向で対して前記RMTSは適用されずに高周波ゼロアウトによって32個の変換係数のみを残すことができる。
【0241】
【表12】
【0242】
表12は、一例に係る変換ユニットのシンタックス及びセマンティクスの一部を示す。tu_mts_idx[x0][y0]は、変換ブロックに適用されるMTSインデックスを示し、表1のようにMTSインデックスによってtrTypeHorとtrTypeVerが決定されることができる。
【0243】
他の例によって、mts_idxは、変換ユニットレベルでないコーディングユニットレベルでシグナリングされることができる。
【0244】
【表13】
【0245】
表13は、一例に係るレジデュアルコーディングシンタックス及びセマンティクスの一部を示す。
【0246】
表13のシンタックス要素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、及びlast_sig_coeff_y_suffixは、変換ブロック内の最後の0でない変換係数の(x、y)位置情報を示す。より具体的に、last_sig_coeff_x_prefixは、変換ブロック内のスキャン順序(scanning order)での最後の(last)有効係数(significant coefficient)の列位置(column position)のプリフィクス(prefix)を示し、last_sig_coeff_y_prefixは、前記変換ブロック内の前記スキャン順序(scanning order)での最後の(last)有効係数(significant coefficient)の行位置(row position)のプリフィクス(prefix)を示し、last_sig_coeff_x_suffixは、前記変換ブロック内の前記スキャン順序(scanning order)での最後の(last)有効係数(significant coefficient)の列位置(column position)のサフィクス(suffix)を示し、last_sig_coeff_y_suffixは、前記変換ブロック内の前記スキャン順序(scanning order)での最後の(last)有効係数(significant coefficient)の行位置(row position)のサフィクス(suffix)を示す。ここで、有効係数は、前記0でない係数を示すことができる。前記スキャン順序は、右上向対角スキャン順序である。または、前記スキャン順序は、水平スキャン順序、または垂直スキャン順序である。前記スキャン順序は、対象ブロック(CB、またはTBを含むCB)にイントラ/インター予測が適用されるかどうか及び/または具体的なイントラ/インター予測モードに基づいて決定されることができる。
【0247】
表12のtu_mts_idx[x0][y0]に基づいて表13のレジデュアルコーディングでゼロアウト領域が設定されることができる。
【0248】
また、cu_sbt_flagが1であり、変換が適用されるブロックの高さが32以下(log2TbHeight<6)であり、幅が32であり(log2TbWidth<6&&log2TbWidth>4)、sps_mts_enabled_flag値が1である場合、0でない変換係数が存在できる左上端領域の幅は、16に設定される(log2ZoTbWidth=4)。同様に、cu_sbt_flagが1であり、変換が適用されるブロックの幅が32以下(log2TbWidth<6)であり、高さが32であり(log2TbHeight<6&&log2TbHeight>4)、sps_mts_enabled_flag値が1である場合、0でない変換係数が存在できる左上端領域の高さは、16に設定される(log2ZoTbHeight=4)。
【0249】
変換が適用されるブロックは、元来変換ブロックまたは分割されたサブブロックである。
【0250】
ここで、log2ZoTbWidth及びlog2ZoTbHeightは、0でない係数が存在できる変換ブロック内の左上端領域の最大幅及び最大高さを示し、前記左上端領域を「縮小された変換ブロック」と命名できる。即ち、log2ZoTbWidth及びlog2ZoTbHeightは、縮小された変換ブロックの幅及び高さを指示する変数に定義することができる。
【0251】
即ち、一例によって、コーディングユニットにサブブロック変換が適用される時、0でない係数が存在できる左上端ブロックの幅が16に減少され、残りの領域は0になるゼロアウト(RMTS)が適用されるためにはMTSが適用されるべきである。
【0252】
MTSが適用されない場合、コーディングユニットにSBTが適用されると確認されても(cu_sbt_flagが1である場合)、変換が適用されるサブブロックにMTSでないDCT-2が適用されるようにしなければならない。例えば、sps_mts_enabled_flagが0である場合には、コーディングブロックにSBTが適用されてもDST-7またはDCT-8でないDCT-2が適用される。
【0253】
また、コーディングブロックにSBTが適用される場合、サブブロックの幅または高さが64以上である場合にのみDCT-2が適用され、残りの場合にはDCT-2が適用される場合がない。
【0254】
即ち、サブブロックにDCT-2が適用される場合を保障し、DCT-2が適用されたサブブロックに対してデータ損失を誘発することができるRMTSが適用されないようにするために、エンコーディング装置は、sps_mts_enabled_flag値をチェックすることができるように映像情報を構成し、デコーディング装置は、このような映像情報の構成によってレジデュアルコーディング時にsps_mts_enabled_flag値をチェックする。
【0255】
整理すると、c映像デコーディング過程でcu_sbt_flagが1であることのみ確認された場合、DCT-2が適用されるサブブロックにRMTSが適用されることを排除するために、RMTSによる変換ブロック大きさを設定する時、シーケンスパラメータセットでシグナリングされるsps_mts_enabled_flag値をチェックすることができる。cu_sbt_flagが1であり、sps_mts_enabled_flag値が1である場合、RMTSが適用されて0でない変換係数が存在できる左上端ブロックの幅及び高さは、16に設定されることができ、cu_sbt_flagが1であり、sps_mts_enabled_flag値が0である場合、DCT-2が変換に使われてMTSが適用されないため、RMTSによるゼロアウトも適用されない。この場合、0でない変換係数が存在できる左上端ブロックの幅及び高さは、32以下に設定されることができる。
【0256】
例えば、サブブロック変換が適用される32×32変換ブロックの場合、sps_mts_enabled_flagが0である場合、変換カーネルとしてDCT-2が使われるため、32長さを有する幅または高さは、16に減少されない。
【0257】
このように、sps_mts_enabled_flag値をチェックすることによってMTSが非活性化(disable)される場合、16長さにゼロアウトされるRMTSを防止することができる。
【0258】
その他の場合、cu_sbt_flagが1でない、または変換ブロックの高さが32より大きい、または変換ブロックの幅が32でない、またはMTSが適用されない場合、変換ブロックの幅は、変換ブロックの幅及び32のうち小さい値に設定されることができる。即ち、高周波ゼロアウトによって、変換ブロックの最大幅は32に制限されることができる。また、cu_sbt_flagが1でない、または変換ブロックの幅が32より大きい、または変換ブロックの高さが32でない場合、変換ブロックの高さは、変換ブロックの高さ及び32のうち小さい値に設定されることができる。即ち、ゼロアウトによって、変換ブロックの最大高さは、32に制限されることができる。
【0259】
サブブロック変換(SBT)が適用される場合、分割ブロックの少なくとも一つの辺の長さが64以上になると、水平方向と垂直方向の両方ともDCT-2が適用され、それとも、表11のようにDST-7またはDCT-8が適用されることができる。したがって、SBTが適用される場合、変換が適用される分割ブロックの二辺の長さが全て2以下である場合に対してのみRMTS32を適用してゼロアウトが実行されることができる。即ち、ブロックの各方向に対して長さが32である場合、32長さのDST-7またはDCT-8を適用して16個の変換係数のみを残すことができる。
【0260】
表13に示すように、RMTS32を適用する時、元来の変換ユニットの幅と高さ値をコーディングに使用することなく、ゼロアウトされずに残った領域(低周波変換係数領域)の幅と高さを実質的な変換ブロックの幅と高さと見なしてコーディングできる(log2ZoTbWidth=4またはlog2ZoTbHeight=4)。
【0261】
例えば、元来変換ブロックの幅×高さが32×16である場合、RMTS32を適用するようになると、ゼロアウトによって左上端16×16領域に対してのみノンゼロ(non-zero)係数が存在するようになる。したがって、0でない変換係数が存在できる左上端領域の幅と高さを各々16と16に設定し、以後シンタックスエレメント(例えば、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix)に対するコーディングを進行することができる。
【0262】
整理すると、表13のレジデュアルコーディングによると、last_sig_coeff_x_prefixをコーディングする前に0でない係数が存在できる最大幅と最大高さを指すlog2ZoTbWidthとlog2ZoTbHeight値が設定され、log2ZoTbWidthとlog2ZoTbHeight値を適用して最後の0でない係数に対する位置をコーディングした以後に実質的な変換ブロックの幅と高さは、各々、log2ZoTbWidthとlog2ZoTbHeightに変更される(log2TbWidth=log2ZoTbWidth、log2TbHeight=log2ZoTbHeight)。変更された値によって、以後のシンタックス要素がコーディングされることができる。結果的に、レジデュアルコーディング部分でゼロアウトされた領域を除いて残した左上端領域を新しい変換ブロックに設定した後にレジデュアルサンプルを導出することができる。
【0263】
このように、高周波変換係数のゼロアウトによって変換ブロックの大きさが低周波領域の変換係数領域に減ると、表13のセマンティクスのように、last_sig_coeff_x_prefix及びlast_sig_coeff_y_prefix値の範囲は、0から(log2ZoTbWidth<<1)-1及び(log2ZoTbHeight<<1)-1間の値に限定されることができる。
【0264】
【表14-1】
【0265】
【表14-2】
【0266】
【表14-3】
【0267】
【表14-4】
【0268】
表14は、変換過程を示し、コーディングユニットにSBTが適用される場合、暗黙的にMTSが適用されることが示されている(cu_sbt_flag is equal to 1 and Max(nTbW、nTbH)is less than or equal to 32,implicitMtsEnabled is set equal to 1)。
【0269】
水平方向変換カーネルを示す変数trTypeHor及び垂直方向変換カーネルを示す変数trTypeVerは、Table8-14に基づいて導出されることができ、表14のTable8-14は、本文書の表1に対応されることができる。
【0270】
また、コーディングユニットにSBTが適用される場合の変数trTypeHor及びtrTypeVerは、Table8-15に基づいて導出されることができ、表14のTable8-15は、本文書の表11に対応されることができる。
【0271】
表13に開示された本ゼロアウトが適用されるブロック、即ち、ゼロアウトブロックの大きさに対する内容は、表14にnonZeroW及びnonZeroHで表現されている。nonZeroW及びnonZeroHは、0でない変換係数が存在できる左上端ブロックの幅及び高さを示す変数に定義されることができる。
【0272】
LFNSTが適用されない場合、nonZeroWは、trTypeHorが0より大きいかどうかに基づく値((trTypeHor>0)?16:32)と変換ブロックの幅(nTbW)のうち小さい値に設定されることができる(nonZeroW=Min(nTbW、(trTypeHor>0)?16:32))。trTypeHorが0より大きい場合は、MTSが適用されるため、「(trTypeHor>0)?16:32」は、16に設定され、nonZeroWは、変換ブロックの幅(nTbW)と16のうち小さい値に設定される。それに対して、trTypeHorが0より大きくない場合は、MTSが適用されないため、「(trTypeHor>0)?16:32」は、32に設定され、nonZeroWは、変換ブロックの幅(nTbW)と32のうち小さい値に設定される。
【0273】
同様に、LFNSTが適用されない場合、nonZeroHは、trTypeVerが0より大きいかどうかに基づく値((trTypeVer>0)?16:32)と変換ブロックの幅(nTbH)のうち小さい値に設定されることができる(nonZeroH=Min(nTbH、(trTypeVer>0)?16:32))。trTypeVerが0より大きい場合は、MTSが適用されるため、「(trTypeVer>0)?16:32」は、16に設定され、nonZeroHは、変換ブロックの高さ(nTbH)と16のうち小さい値に設定される。それに対して、trTypeVerが0より大きくない場合は、MTSが適用されないため、「(trTypeVer>0)?16:32」は、32に設定され、nonZeroHは、変換ブロックの高さ(nTbH)と32のうち小さい値に設定される。
【0274】
これはMTSの適用可否、即ち、trTypeHorとtrTypeVer値が0以上の値を有することができるかどうかによって、ゼロアウトブロックの大きさが16または32に設定されることを示している。
【0275】
レジデュアルサンプル値は、ゼロアウトを反映して設定されたnonZeroW及びnonZeroHに基づいて導出されることができる(When nTbH is greater than 1,each(vertical)column of scaled transform coefficients d[x][y]with x=0..nonZeroW-1,y=0..nonZeroH-1 is transformed to e[x][y]with x=0..nonZeroW-1,y=0..nTbH-1 by invoking the one-dimensional transformation process as specified inclause 8.7.4.4 for each column x=0..nonZeroW-1 with the height of the transform block nTbH,the non-zero height of the scaled transform coefficients nonZeroH,the list d[x][y]with y=0..nonZeroH-1 and the transform type variable trType set equal to trTypeVer as inputs,and the output is the list e[x][y]with y=0..nTbH-1)。
【0276】
一方、前記のようにゼロアウトを適用して変換ブロックの大きさが変更されると、last_sig_coeff_x_prefixとlast sig_coeff_y_prefixのコンテキスト選択(context selection)に使われる変換ブロックの大きさも変更されることができる。表15は、減少された変換ブロックを考慮したlast_sig_coeff_x_prefixとlast sig_coeff_y_prefixの二進化を示し、表16は、last_sig_coeff_x_prefixとlast sig_coeff_y_prefix導出のためのctxInc(コンテキストインクリメント)を導出する過程を示す。コンテキストインクリメントによりコンテキストが選択されて区分されることができるため、コンテキストモデルは、コンテキストインクリメントに基づいて導出されることができる。
【0277】
【表15】
【0278】
【表16】
【0279】
表15のように、last_sig_coeff_x_prefix及びlast_sig_coeff_y_prefixの最大値(cMax)は、低周波変換係数領域のように減少された変換ブロックの幅及び高さに対応するlog2ZoTbWidth及びlog2ZoTbHeightに基づいて設定される(cMax=(log2ZoTbWidth<<1)-1、cMax=(log2ZoTbHeight<<1)-1)。一方、last_sig_coeff_x_prefix及びlast_sig_coeff_y_prefixの二進化にトランケイテッドユナリが使われる場合、last_sig_coeff_x_prefix及びlast_sig_coeff_y_prefixの最大値(cMax)がlast_sig_coeff_x_prefix及びlast_sig_coeff_y_prefixの二進化に使われるコードワードの最大値と同じく設定されることができる。したがって、最後の有効係数プリフィクス情報を示すプリフィクスコードワードの最大長さは、ゼロアウトブロックの大きさに基づいて導出されることができる。
【0280】
表16のように、二つのシンタックス要素、即ち、last_sig_coeff_x_prefix及びlast_sig_coeff_y_prefixに対するCABACコンテキストのために、低周波変換係数領域の減少された変換ブロックでない元来変換ブロック(original TU)大きさが適用される(log2TbSize is set equal to log2TbWidth,log2TbSize is set equal to log2TbHeight)。
【0281】
整理すると、一例によって、最後の有効係数位置情報に基づいてレジデュアルサンプルを導出し、コンテキストモデルは、大きさが変更されない元来変換ブロックの大きさに基づいて導出され、最後の有効係数位置は、ゼロアウトが適用された変換ブロックの大きさに基づいて導出されることができる。このとき、ゼロアウトが適用された変換ブロック、ゼロアウトブロックの大きさ、具体的に、幅または高さは、元来変換ブロックの大きさ、幅または高さより小さい。
【0282】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されるものではない。
【0283】
図10は、本文書の一実施例に係るビデオデコーディング装置の動作を示す流れ図である。
【0284】
図10に開示された各ステップは、図3に開示されたデコーディング装置300により実行されることができる。より具体的に、S1000及びS1010は、図3に開示されたエントロピーデコーディング部310により実行されることができ、S1020は、図3に開示された逆量子化部321により実行されることができ、S1030は、図3に開示された逆変換部322により実行されることができ、S1040は、図3に開示された加算部340により実行されることができる。併せて、S1000乃至S1040による動作は、図4乃至図9で詳述された内容のうち一部に基づいていることである。したがって、図3乃至図6で詳述された内容と重複する具体的な内容は、説明を省略し、または簡単にする。
【0285】
一実施例に係るデコーディング装置は、レジデュアル情報を含むビットストリームを受信することができる(S1000)。より具体的に、デコーディング装置のエントロピーデコーディング部310は、レジデュアル情報を含むビットストリームを受信することができる。
【0286】
一実施例に係るデコーディング装置は、ビットストリームに含まれているレジデュアル情報に基づいて現在ブロックに対する量子化された変換係数を導出することができる(S1010)。より具体的に、デコーディング装置のエントロピーデコーディング部310は、ビットストリームに含まれているレジデュアル情報に基づいて現在ブロックに対する量子化された変換係数を導出することができる。
【0287】
一実施例に係るデコーディング装置は、逆量子化過程に基づいて量子化された変換係数から変換係数を導出することができる(S1020)。より具体的に、デコーディング装置の逆量子化部321は、逆量子化過程に基づいて量子化された変換係数から変換係数を導出することができる。
【0288】
一実施例に係るデコーディング装置は、導出された変換係数に逆変換を適用して現在ブロックに対するレジデュアルサンプルを導出することができる(S1030)。より具体的に、デコーディング装置の逆変換部322は、導出された変換係数に逆変換を適用して現在ブロックに対するレジデュアルサンプルを導出することができる。
【0289】
一実施例に係るデコーディング装置は、現在ブロックに対するレジデュアルサンプルに基づいて復元ピクチャを生成することができる(S1040)。より具体的に、デコーディング装置の加算部340は、現在ブロックに対するレジデュアルサンプルに基づいて復元ピクチャを生成することができる。
【0290】
一実施例において、前記現在ブロックの単位は、変換ブロック(Transform Block、TB)である。
【0291】
一実施例において、前記現在ブロックに対する前記変換係数の各々は、変換係数0で構成された高周波変換係数領域または少なくとも一つの有効変換係数を含む低周波変換係数領域に関連づけられている。
【0292】
一実施例において、前記レジデュアル情報は、前記現在ブロックに対する前記変換係数のうち最後の有効変換係数の位置に対する最後の有効係数プリフィクス情報(last significant coefficient prefix information)及び最後の有効係数サフィクス情報(last significant coefficient suffix information)を含むことができる。
【0293】
一例によって、最後の有効係数プリフィクス情報が有することができる最大値は、ゼロアウトブロックの大きさに基づいて決定されることができる。
【0294】
一実施例において、前記最後の有効変換係数の位置は、前記最後の有効係数プリフィクス情報を示すプリフィクスコードワード及び前記最後の有効係数サフィクス情報に基づいて決定されることができる。
【0295】
一実施例において、前記プリフィクスコードワードの最大長さ(maximum length)は、前記低周波変換係数領域、即ち、ゼロアウトブロックのサイズに基づいて決定されることができる。
【0296】
一実施例において、ゼロアウトブロックのサイズは、現在ブロックの幅(width)及び高さ(height)に基づいて決定されることができる。
【0297】
一実施例において、前記最後の有効係数プリフィクス情報は、x軸プリフィクス情報及びy軸プリフィクス情報を含み、前記プリフィクスコードワードは、前記x軸プリフィクス情報に対するコードワードまたは前記y軸プリフィクス情報に対するコードワードである。
【0298】
一例示において、前記x軸プリフィクス情報はlast_sig_coeff_x_prefixで、前記y軸プリフィクス情報はlast_sig_coeff_y_prefixで、前記最後の有効変換係数の位置は(LastSignificantCoeffX、LastSignificantCoeffY)で、表現されることができる。
【0299】
一実施例において、前記レジデュアル情報は、ゼロアウトブロックのサイズに対する情報を含むことができる。
【0300】
図11は、本文書の一実施例に係るビデオデコーディング装置による変換係数を導出する過程を示す流れ図である。
【0301】
図11に開示された各ステップは、図3に開示されたデコーディング装置300により実行されることができる。より具体的に、S1100乃至S1140は、図3に開示されたエントロピーデコーディング部310により実行されることができる。
【0302】
まず、図示されたように、デコーディング装置は、現在ブロックに対するゼロアウトブロックを導出するために、現在ブロックにコーディングユニットを分割して変換を実行するサブブロック変換が適用されるかどうかを示す第1のフラグ情報をチェックすることができる(S1100)。
【0303】
ゼロアウトブロックは、前述したように、0でない有効変換係数を含む低周波変換係数領域を意味し、デコーディング装置は、レジデュアルコーディングステップでゼロアウトブロックを導出することができる。
【0304】
デコーディング装置は、cu_sbt_flagのような第1のフラグ情報に基づいてサブブロック変換の適用可否を判断することができ、このような第1のフラグ情報は、コーディングユニットレベルでシグナリングされることができる。
【0305】
また、デコーディング装置は、現在ブロックに複数の変換カーネルが使われる多重変換選択が適用されるかどうかを指示する第2のフラグ情報をチェックすることができる(S1110)。
【0306】
現在ブロックに多重変換選択が適用されるかどうかを指示する第2のフラグ情報は、sps_mts_enabled_flagであり、このような第2のフラグ情報は、シーケンスパラメータセットレベルでシグナリングされることができる。
【0307】
デコーディング装置は、現在ブロックにMTSが適用されることができるかどうか、サブブロック変換が適用されるかどうか、即ち、第1のフラグ情報及び第2のフラグ情報及び現在ブロックの幅または高さに基づいて変換が適用されるゼロアウトブロックを導出することができる(S1120)。
【0308】
変換が適用される変換ブロックは、現在ブロック内の有効変換係数が存在できる領域を示すゼロアウトブロックで具現されることができ、ゼロアウトブロックの幅及び高さは、現在ブロックにMTS及びサブブロック変換が適用されるかどうかによって多様な値として導出されることができる。
【0309】
一例によって、デコーディング装置は、多重変換選択が適用される場合(DST-7/DCT-8を適用することができる場合)、ゼロアウトブロックの幅または高さを16に設定し、多重変換選択が適用されない場合、ゼロアウトブロックの幅または高さを32以下に設定できる。
【0310】
具体的に、ゼロアウトブロックの幅は、逆1次変換に使われる変換カーネルがDCT-2でないDST-7またはDCT-8が適用される場合、現在ブロックの幅が32であり、現在ブロックの高さが32以下であると、ゼロアウトブロックの幅は、16に設定されることができる。一方、前記条件を満たすことができない場合、即ち、変換カーネルがDCT-2であり、または現在ブロックの幅が32でない、または現在ブロックの高さが64以上であると、ゼロアウトブロックの幅は、現在ブロックの幅及び32のうち小さい値に設定されることができる。
【0311】
同様に、ゼロアウトブロックの高さは、逆1次変換に使われる変換カーネルがDCT-2でないDST-7またはDCT-8が適用される場合、現在ブロックの高さが32であり、現在ブロックの幅が32以下であると、ゼロアウトブロックの高さは、16に設定されることができる。一方、前記条件を満たすことができない場合、即ち、変換カーネルがDCT-2であり、または現在ブロックの高さが32でない、または現在ブロックの幅が64以上であると、ゼロアウトブロックの高さは、現在ブロックの高さ及び32のうち小さい値に設定されることができる。
【0312】
また、一例によって、ゼロアウトブロックの幅または高さは、現在ブロックがサブブロックに分割されて変換されるかどうかを指示するフラグ値が1であり、分割されたサブブロックの幅が32であり、サブブロックの高さが64より小さいと、サブブロック内で0でない変換係数が存在できる左上端領域の幅は、16に設定されることができる。または、現在ブロックがサブブロックに分割されて変換されるかどうかを指示するフラグ値が1であり、分割されたサブブロックの高さが32であり、サブブロック内で0でない変換係数が存在できる左上端領域の幅が64より小さいと、サブブロックの高さは、16に設定されることができる。
【0313】
現在ブロックの分割方向及び変換が適用されるサブブロックの位置に基づいて、表11のように変換カーネルが導出されることができる。
【0314】
ゼロアウトブロックの大きさは、現在ブロックの大きさより小さい。具体的に、ゼロアウトブロックの幅は、現在ブロックの幅より小さい、ゼロアウトブロックの高さは、現在ブロックの高さより小さい。
【0315】
一実施例において、ゼロアウトブロックのサイズは、32×16、16×32、16×16または32×32のうち一つである。
【0316】
一実施例において、現在ブロックのサイズは64×64であり、ゼロアウトブロックのサイズは32×32である。
【0317】
一方、一例によって、デコーディング装置は、現在ブロックの幅または高さに基づいて最後の有効係数位置情報に対するコンテキストモデルを導出し、導出されたコンテキストモデルに基づいて最後の有効係数位置の値を導出することができる
【0318】
一例によると、コンテキストモデルは、ゼロアウトブロック大きさでない元来変換ブロックの大きさに基づいて導出されることができる。より具体的に、最後の有効係数プリフィクス情報に該当するx軸プリフィクス情報及びy軸プリフィクス情報に対するコンテキストインクリメントが元来変換ブロックの大きさに基づいて導出されることができる。
【0319】
前述したように、最後の有効係数位置情報は、最後の有効係数プリフィクス情報(last significant coefficient prefix information)及び最後の有効係数サフィクス情報(last significant coefficient suffix information)を含むことができ、コンテキストモデルに基づいて最後の有効係数位置の値を導出することができる。
【0320】
デコーディング装置は、導出された最後の有効係数位置情報の値及びゼロアウトブロックの幅または高さに基づいて最後の有効係数位置を導出することができる(S1130)。
【0321】
一例によると、デコーディング装置は、元来現在ブロックでない現在ブロックより小さい大きさを有するゼロアウトブロックの大きさ範囲内で最後の有効係数位置を導出することができる。即ち、変換が適用される変換係数は、現在ブロックでないゼロアウトブロックの大きさ範囲内で導出されることができる。
【0322】
一例によって、最後の有効係数プリフィクス情報が有することができる最大値は、ゼロアウトブロックの大きさに基づいて決定されることができる。
【0323】
一例によって、最後の有効係数位置は、最後の有効係数プリフィクス情報を示すプリフィクスコードワード及び最後の有効係数サフィクス情報に基づいて導出され、プリフィクスコードワードの最大長さは、前記ゼロアウトブロックの大きさに基づいて導出されることができる。
【0324】
デコーディング装置は、ゼロアウトブロックの幅または高さに基づいて導出された最後の有効係数位置に基づいて変換係数を導出することができる(S1140)。
【0325】
変換係数は、表13のレジデュアルコーディング過程を介して導出されることができる。
【0326】
以後、デコーディング装置は、前述された非分離逆2次変換、表1及び表11に基づく逆1次変換のうち少なくとも一つを実行してレジデュアルサンプルを導出することができる。
【0327】
図12は、本文書の一実施例に係るビデオエンコーディング装置の動作を示す流れ図である。
【0328】
図12に開示された各ステップは、図2に開示されたエンコーディング装置200により実行されることができる。より具体的に、S1200は、図2に開示された減算部231により実行されることができ、S1210は、図2に開示された変換部232により実行されることができ、S1220は、図2に開示された量子化部233により実行されることができ、S1230は、図2に開示されたエントロピーエンコーディング部240により実行されることができる。併せて、S1200乃至S1230による動作は、図4乃至図9で詳述された内容のうち一部に基づいていることである。したがって、図2及び図4乃至図9で詳述された内容と重複する具体的な内容は、説明を省略し、または簡単にする。
【0329】
一実施例に係るエンコーディング装置は、現在ブロックに対するレジデュアルサンプルを導出することができる(S1200)。より具体的に、エンコーディング装置の減算部231は、現在ブロックに対するレジデュアルサンプルを導出することができる。
【0330】
一実施例に係るエンコーディング装置は、前記現在ブロックに対する前記レジデュアルサンプルを変換して前記現在ブロックに対する変換係数を導出することができる(S1210)。より具体的に、エンコーディング装置の変換部232は、前記現在ブロックに対する前記レジデュアルサンプルを変換して前記現在ブロックに対する変換係数を導出することができる。
【0331】
一実施例に係るエンコーディング装置は、量子化過程に基づいて前記変換係数から量子化された変換係数を導出することができる(S1220)。より具体的に、エンコーディング装置の量子化部233は、量子化過程に基づいて前記変換係数から量子化された変換係数を導出することができる。
【0332】
一実施例に係るエンコーディング装置は、前記量子化された変換係数に対する情報を含むレジデュアル情報をエンコーディングすることができる(S1230)。より具体的に、エンコーディング装置のエントロピーエンコーディング部240は、前記量子化された変換係数に対する情報を含むレジデュアル情報をエンコーディングすることができる。
【0333】
一実施例において、前記現在ブロックに対する前記変換係数の各々は、変換係数0で構成された高周波変換係数領域または少なくとも一つの有効変換係数を含む低周波変換係数領域、即ち、ゼロアウトブロックに関連づけられている。
【0334】
一実施例において、前記レジデュアル情報は、前記現在ブロックに対する前記変換係数のうち最後の有効変換係数の位置に対する最後の有効係数プリフィクス情報及び最後の有効係数サフィクス情報を含むことができる。
【0335】
一実施例において、前記最後の有効変換係数の位置は、前記最後の有効係数プリフィクス情報を示すプリフィクスコードワード及び前記最後の有効係数サフィクス情報に基づいている。
【0336】
一例によって、最後の有効係数プリフィクス情報が有することができる最大値は、ゼロアウトブロックの大きさに基づいて決定されることができる。
【0337】
一実施例において、前記プリフィクスコードワードの最大長さは、前記ゼロアウトブロックのサイズに基づいて決定されることができる。
【0338】
一実施例において、ゼロアウトブロックのサイズは、現在ブロックの幅(width)及び高さ(height)に基づいて決定されることができる。
【0339】
一実施例において、前記最後の有効係数プリフィクス情報は、x軸プリフィクス情報及びy軸プリフィクス情報を含み、前記プリフィクスコードワードは、前記x軸プリフィクス情報に対するコードワードまたは前記y軸プリフィクス情報に対するコードワードである。
【0340】
一例示において、前記x軸プリフィクス情報は、last_sig_coeff_x_prefixで、前記y軸プリフィクス情報はlast_sig_coeff_y_prefixで、前記最後の有効変換係数の位置は(LastSignificantCoeffX、LastSignificantCoeffY)で、表現されることができる。
【0341】
一実施例において、前記レジデュアル情報は、ゼロアウトブロックのサイズに対する情報を含むことができる。
【0342】
図13は、本文書の一実施例に係る変換係数及び情報エンコーディング過程を示す流れ図である。
【0343】
図13に開示された各ステップは、図2に開示されたエンコーディング装置200により実行されることができる。より具体的に、S1300乃至S1330は、変換部232によりS1340乃至S1350は、図2に開示されたエントロピーエンコーディング部240により実行されることができる。
【0344】
まず、エンコーディング装置は、現在ブロックに対するゼロアウトブロックを導出するために、現在ブロックにコーディングユニットを分割して変換を実行するサブブロック変換が適用されるかどうかを判断することができる(S1300)。
【0345】
ゼロアウトブロックは、前述したように、0でない有効変換係数を含む低周波変換係数領域を意味し、変換が適用される実質的な変換ブロックが該当する。
【0346】
現在ブロックにサブブロック変換が適用されるかどうかを指示する情報は、エンコーディング装置によりフラグ情報(cu_sbt_flag)で生成及び出力されることができ、このようなフラグ情報は、コーディングユニットレベルでシグナリングされることができる。
【0347】
また、エンコーディング装置は、現在ブロックに複数の変換カーネルが使われる多重変換選択が適用されるかどうかを判断することができる(S1310)。
【0348】
現在ブロックに多重変換選択が適用されるかどうかを指示する情報は、エンコーディング装置によりフラグ情報(sps_mts_enabled_flag)で生成及び出力されることができ、このようなフラグ情報は、シーケンスパラメータセットレベルでシグナリングされることができる。
【0349】
エンコーディング装置は、現在ブロックにMTSが適用されることができるかどうか、サブブロック変換が適用されるかどうか、及び現在ブロックの幅または高さに基づいて変換が適用されるゼロアウトブロックを導出することができる(S1320)。
【0350】
デコーディング過程で逆変換が適用される変換係数が存在する領域は、現在ブロック内の有効変換係数が存在できる領域を示すゼロアウトブロックで具現されることができ、ゼロアウトブロックの幅及び高さは、現在ブロックにMTS及びサブブロック変換が適用されるかどうかによって多様な値として導出されることができる。
【0351】
一例によって、エンコーディング装置は、多重変換選択が適用される場合、ゼロアウトブロックの幅または高さを16に設定し、多重変換選択が適用されない場合、ゼロアウトブロックの幅または高さを32以下に設定できる。
【0352】
具体的に、ゼロアウトブロックの幅は、1次変換に使われる変換カーネルがDCT-2でないDST-7またはDCT-8が適用される場合、現在ブロックの幅が32であり、現在ブロックの高さが32以下であると、ゼロアウトブロックの幅は、16に設定されることができる。一方、前記条件を満たすことができない場合、即ち、変換カーネルがDCT-2であり、または現在ブロックの幅が32でない、または現在ブロックの高さが64以上であると、ゼロアウトブロックの幅は、現在ブロックの幅及び32のうち小さい値に設定されることができる。
【0353】
同様に、ゼロアウトブロックの高さは、1次変換に使われる変換カーネルがDCT-2でないDST-7またはDCT-8が適用される場合、現在ブロックの高さが32であり、現在ブロックの幅が32以下であると、ゼロアウトブロックの高さは、16に設定されることができる。一方、前記条件を満たすことができない場合、即ち、変換カーネルがDCT-2であり、または現在ブロックの高さが32でない、または現在ブロックの幅が64以上であると、ゼロアウトブロックの高さは、現在ブロックの高さ及び32のうち小さい値に設定されることができる。
【0354】
また、一例によって、ゼロアウトブロックの幅または高さは、現在ブロックがサブブロックに分割されて変換されるかどうかに基づいて導出されることができる。例えば、現在ブロックがサブブロックに分割されて変換される場合、分割されたサブブロックの幅が32であり、サブブロックの高さが64より小さいと、サブブロックの幅は、16に設定されることができる。または、現在ブロックがサブブロックに分割されて変換される場合、分割されたサブブロックの高さが32であり、サブブロックの幅が64より小さいと、サブブロックの高さは、16に設定されることができる。
【0355】
現在ブロックの分割方向及び変換が適用されるサブブロックの位置に基づいて、表11のように変換カーネルが導出されることができる。
【0356】
一実施例において、ゼロアウトブロックのサイズは、32×16、16×32、16×16または32×32のうち一つである。
【0357】
一実施例において、現在ブロックのサイズは64×64であり、ゼロアウトブロックのサイズは32×32である。
【0358】
一方、エンコーディング装置は、前述された変換過程、即ち、表1及び表11に基づく1次変換、非分離逆2次変換のうち少なくとも一つを実行してレジデュアルサンプルから変換係数を導出することができる。
【0359】
エンコーディング装置は、導出されたゼロアウトブロックの幅または高さに基づいて最後の有効係数位置を導出することができる(S1330)。
【0360】
一例によると、エンコーディング装置は、元来現在ブロックでない現在ブロックより小さいまたは同じ大きさを有するゼロアウトブロックの大きさ範囲内で最後の有効係数位置を導出することができる。即ち、変換が適用される変換係数は、現在ブロックでないゼロアウトブロックの大きさ範囲内で導出されることができる。
【0361】
一例によって、最後の有効係数位置は、最後の有効係数プリフィクス情報を示すプリフィクスコードワード及び最後の有効係数サフィクス情報に基づいて導出され、プリフィクスコードワードの最大長さは、前記ゼロアウトブロックの大きさに基づいて導出されることができる。
【0362】
エンコーディング装置は、現在ブロックにコーディングユニットを分割して変換を実行するサブブロック変換が適用されるかどうかを示す第1のフラグをエンコーディングすることができる(S1340)。
【0363】
前述したように、第1のフラグ情報は、cu_sbt_flagでエンコーディングされてコーディングユニットレベルでシグナリングされることができ、第2のフラグ情報は、sps_mts_enabled_flagでエンコーディングされてシーケンスパラメータセットレベルでシグナリングされることができる。
【0364】
第1のフラグ情報は、コーディングユニット別にシグナリングされ、第2のフラグ情報は、その上位端であるシーケンスパラメータセットレベルでシグナリングされるため、第2のフラグ情報は、S1350以前にシグナリングされることができる。
【0365】
エンコーディング装置は、現在ブロックの幅または高さに基づいて最後の有効係数位置情報に対するコンテキストモデルを導出し、導出されたコンテキストモデルに基づいて最後の有効係数位置の値に対する位置情報をエンコーディングすることができる(S1350)。
【0366】
一例によると、コンテキストモデルは、ゼロアウトブロック大きさでない元来変換ブロックの大きさに基づいて導出されることができる。より具体的に、最後の有効係数プリフィクス情報に該当するx軸プリフィクス情報及びy軸プリフィクス情報に対するコンテキストインクリメントが元来変換ブロックの大きさに基づいて導出されることができる。
【0367】
前述したように、最後の有効係数位置情報は、最後の有効係数プリフィクス情報(last significant coefficient prefix information)及び最後の有効係数サフィクス情報(last significant coefficient suffix information)を含むことができ、コンテキストモデルに基づいて最後の有効係数位置の値がエンコーディングされることができる。
【0368】
本文書において、量子化/逆量子化及び/または変換/逆変換のうち少なくとも一つは省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数と呼ばれることもでき、または表現の統一性のために、依然として変換係数と呼ばれることもできる。
【0369】
また、本文書において、量子化された変換係数及び変換係数は、各々、変換係数及びスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、レジデュアル情報は、変換係数(ら)に関する情報を含むことができ、前記変換係数(ら)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数(ら)に関する情報)に基づいて変換係数が導出されることができ、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されることができる。これは本文書の他の部分でも同様に適用/表現されることができる。
【0370】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本文書は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の一つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0371】
前述した本文書による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/またはデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
【0372】
本文書において、実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。
【0373】
また、本文書が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0374】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み出すことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0375】
本明細書に記載された請求項は、多様な方式で組み合わせられることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置で具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法で具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置で具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法で具現されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13