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

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

▶ 三星電子株式会社の特許一覧

<>
  • 特許-映像の復号化方法及び装置 図1
  • 特許-映像の復号化方法及び装置 図2
  • 特許-映像の復号化方法及び装置 図3
  • 特許-映像の復号化方法及び装置 図4
  • 特許-映像の復号化方法及び装置 図5
  • 特許-映像の復号化方法及び装置 図6
  • 特許-映像の復号化方法及び装置 図7
  • 特許-映像の復号化方法及び装置 図8
  • 特許-映像の復号化方法及び装置 図9
  • 特許-映像の復号化方法及び装置 図10
  • 特許-映像の復号化方法及び装置 図11
  • 特許-映像の復号化方法及び装置 図12
  • 特許-映像の復号化方法及び装置 図13
  • 特許-映像の復号化方法及び装置 図14
  • 特許-映像の復号化方法及び装置 図15
  • 特許-映像の復号化方法及び装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-29
(45)【発行日】2024-03-08
(54)【発明の名称】映像の復号化方法及び装置
(51)【国際特許分類】
   H04N 19/12 20140101AFI20240301BHJP
   H04N 19/157 20140101ALI20240301BHJP
   H04N 19/176 20140101ALI20240301BHJP
   H04N 19/70 20140101ALI20240301BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/70
【請求項の数】 3
(21)【出願番号】P 2022504296
(86)(22)【出願日】2020-12-16
(65)【公表番号】
(43)【公表日】2022-10-17
(86)【国際出願番号】 KR2020018466
(87)【国際公開番号】W WO2021194052
(87)【国際公開日】2021-09-30
【審査請求日】2022-01-21
(31)【優先権主張番号】10-2020-0037703
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0160112
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0160114
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イ ソンヨン
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2020/060364(WO,A1)
【文献】Benjamin Bross Jianle Chen Shan Liu Ye-Kui Wang,Versatile Video Coding (Draft 8) [online], JVET-Q JVET-Q2001-vE,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v15.zip>,2020年03月12日,pp.1, 310-313
【文献】Jianle Chen Yan Ye Seung Hwan Kim,Algorithm description for Versatile Video Coding and Test Model 8 (VTM 8) [online], JVET-Q JVET-Q2002-v3,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2002-v3.zip>,2020年03月24日,pp.1, 56-58
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/12
H04N 19/157
H04N 19/176
H04N 19/70
(57)【特許請求の範囲】
【請求項1】
映像復号化装置により行われる映像復号化方法であって、
復号化対象ブロックに対する多重変換集合(Multiple Transform Set;MTS)が適用可能か否かを指示するパラメータと前記復号化対象ブロックのサイズに関する情報を取得するステップ、
前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータと前記復号化対象ブロックのサイズに関する情報に基づき、前記復号化対象ブロックに適用される変換タイプを判断するステップ、及び
前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータと前記復号化対象ブロックのサイズに関する情報に基づき、前記復号化対象ブロックのゼロアウト領域を設定するステップを含み、
前記復号化対象ブロックのサイズが64×64、64×32、32×64のうちのいずれか一つである場合、前記復号化対象ブロックの有効領域が前記復号化対象ブロックのうち左上側の32×32サイズの領域に設定され、前記復号化対象ブロックにおける前記有効領域を除いた残りの領域がゼロアウト領域に設定され、前記ゼロアウト領域の係数値は前記映像復号化装置にシグナリングされず、
前記復号化対象ブロックのサイズが64×64、64×32、32×64のうちのいずれか一つである場合、前記ゼロアウト領域が、前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示する前記パラメータと関係なく設定され、
前記復号化対象ブロックのサイズが32×32、32×16、16×32のうちのいずれか一つである場合、前記ゼロアウト領域が、前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示する前記パラメータを考慮して設定されることを特徴とする映像復号化方法。
【請求項2】
前記復号化対象ブロックに適用される変換タイプを判断するステップにおいて、
前記復号化対象ブロックの幅または高さのうち少なくとも一つが32よりも大きな値を有する場合、前記復号化対象ブロックは、デフォルト変換を用いて変換されたと判断することを特徴とする請求項1に記載の映像復号化方法。
【請求項3】
前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータは、sps_mts_enabled_flagであることを特徴とする請求項1に記載の映像復号化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオコーディング技術に係り、さらに詳しくは、映像の復号化過程中、復号化対象ブロックの一次変換(primary transform)のタイプを決める方法に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像についての需要が様々な分野で増加している。映像データが高解像度、高品質になるほど、既存の映像データに比べて、相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を用いて映像データを保存する場合、送信費用と保存費用が増加する。
【0003】
2013年、HEVC(High Efficiency Video Coding)ビデオコーデックの制定以来、4K、8Kのビデオ映像を用いた実感映像及び仮想現実サービス等が広がることにより、HEVCに対して2倍以上の性能改善を目標とする次世代ビデオコーデックであるVVC(Versatile Video Coding)標準化作業に取り掛かり、現在は、標準化作業が盛んに進行中である。VVCは、ビデオ符号化標準化グループであるISO/ICE MPEG(Moving Picture Experts Group)及びITU-T VCEG(Video Coding Experts Group)が共同で構成したJVET(Joint Video Exploration Team)において、HEVCに対して2倍以上の符号化圧縮性能の改善を目標として開発中である。VVC標準化は、2018年1月、121次光州MPEG、9次JVET会議において、提案要請書(Call for proposal)を発表し、122次サンディエゴMPEG及び10次JVET会議において、総23個の機関がビデオコーデック技術を提案することにより、本格的なビデオ標準化が始まった。122次MPEG及び10次JVET会議では、それぞれの機関から提案されたビデオコーデック技術に対する技術検討、客観的圧縮性能、及び主観的画質評価を行い、多くの技術のうち一部を採用して、Working Draft(WD)1.0及びビデオ参照ソフトウェアであるVTM(VVC Test Mode)1.0を発表した。VVC標準は、2019年7月、127次MPEG及び15次JVET会議の終了後、委員会原案(Committee Draft、CD)が完成され、2020年10月、最終国際標準案(Final Draft International Standard、FDIS)を制定することを目標として標準化が進まれている。
【0004】
従来、HEVCにおけるクアッドツリー(Quadtree)で階層的に分割する符号化構造において、VVCでは、QTBT(QuadTree Binary Tree)とTT(Ternary Tree)を結合した分割ブロック構造を採用した。これは、HEVCに比べて柔軟に予測残差信号を発生または処理することができるようにして、HEVCに比べてさらに向上した圧縮性能が得られる。このような基本ブロック構造以外に、適応ループフィルタ(Adaptive Loop Filter、ALF)技術、動き予測技術として、アフィン動き予測(Affine Motion Prediction、AMP)技術、デコーダ側動きベクトル精密化(Decoder-side Motion Vector Refinement、DMVR)技術等の既存コーデックでは用いられていない新たな技術が標準技術として採用された。変換及び量子化技術としては、既存のビデオコーデックにおいて多く用いられた変換カーネルであるDCT-IIが続けて用いられており、適用ブロックのサイズがさらに大きなブロックサイズにまで適用することに変更された。また、既存のHEVCにおいて、4×4のような小さな変換ブロックに対して適用されてきたDST-7カーネルが、大きな変換ブロックにまで拡大され、新たな変換カーネルであるDCT-8まで変換カーネルとして追加された。
【0005】
一方、HEVC標準では、映像をエンコードまたはデコードする場合、一つの変換タイプを用いて変換を行うため、映像に対する変換タイプに関する情報を送信する必要がなかったが、新たな技術では、DCT-II、DCT-8、DCT-7を用いる多重変換選択(Multiple Transform Selection)が適用され得るので、デコードの際に、MTSを適用するか否か、及びどんな一次変換タイプが適用されるかを定義するための技術が要求されている実情である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の技術的課題は、特定条件により予め正義された方法で逆変換を行うことにある。
【0007】
本発明の他の技術的課題は、復号化対象ブロックに最適化された変換タイプを適用して復号化を行うことにある。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、映像復号化装置により行われる映像復号化方法が提供される。前記映像復号化方法は、復号化対象ブロックに対する多重変換集合(Multiple Transform Set;MTS)が適用可能か否かを指示するパラメータ、前記復号化対象ブロックの幅、前記復号化対象ブロックの高さに関する情報を取得するステップ、前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータ、前記復号化対象ブロックの幅、前記復号化対象ブロックの高さに関する情報のうち少なくとも一つに基づき、前記復号化対象ブロックの変換タイプを判断するステップ、前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータ、前記復号化対象ブロックの幅、前記復号化対象ブロックの高さに関する情報のうち少なくとも一つに基づき、前記復号化対象ブロックのゼロアウト領域を設定するステップ、及び前記復号化対象ブロックのゼロアウト領域及び変換タイプに対する判断の結果に基づき、前記復号化対象ブロックに対する逆変換を行うステップを含む。
【0009】
本発明の他の態様によれば、前記復号化対象ブロックの変換タイプを判断するステップにおいて、前記復号化対象ブロックの幅または高さのうち少なくとも一つが32よりも大きな値を有する場合、前記復号化対象ブロックは、デフォルト変換を用いて変換されたと判断する。
【0010】
本発明のまた他の態様によれば、前記復号化対象ブロックのゼロアウト領域を設定するステップにおいて、前記復号化対象ブロックの幅または高さのうち一つが32よりも大きな値を有する場合、前記復号化対象ブロックの幅または高さが32よりも大きな領域をゼロアウト領域に設定する。
【0011】
本発明のまた他の態様によれば、前記復号化対象ブロックに対する多重変換集合が適用可能か否かを指示するパラメータは、sps_mts_enabled_flagである。
【0012】
本発明のまた他の態様によれば、映像復号化装置により行われる映像復号化方法が提供される。前記映像復号化方法は、復号化対象ブロックの多重変換集合の適用如何に関する情報、予測モードに関する情報、二次変換の適用如何に関する情報、行列を用いた予測の適用如何に関する情報、前記復号化対象ブロックのサイズに関する情報のうち少なくとも一つを取得するステップ、前記復号化対象ブロックの多重変換集合の適用如何に関する情報、予測モードに関する情報、二次変換の適用如何に関する情報、行列を用いた予測の適用如何に関する情報のうち少なくとも一つに基づき、前記復号化対象ブロックに暗黙的多重変換集合が適用されるか否かを判断するステップ、前記復号化対象ブロックに暗黙的多重変換集合が適用されるか否かに関する情報及び前記復号化対象ブロックのサイズに関する情報に基づき、変換タイプに関する情報を取得するステップ、及び前記変換タイプに関する情報に基づき逆変換を行うステップを含む。
【0013】
本発明のまた他の態様によれば、前記暗黙的多重変換集合が適用されるか否かを判断するステップは、前記復号化対象ブロックの多重変換集合の適用如何に関する情報、予測モードに関する情報、二次変換の適用如何に関する情報、行列を用いた予測の適用如何に関する情報を用いて、前記暗黙的多重変換集合が適用されるか否かを判断する。
【0014】
本発明のまた他の態様によれば、前記暗黙的多重変換集合は、一つのデフォルト変換(default transform)及び少なくとも一つの追加変換(extra transforms)を含む。
【0015】
本発明のまた他の態様によれば、前記復号化対象ブロックのサイズに関する情報に基づき、変換タイプに関する情報を取得するステップは、前記復号化対象ブロックの横軸長さが全て4以上16以下である場合、前記復号化対象ブロックは、前記横軸方向に対して追加変換タイプ(extra transform type)のうち少なくとも一つが適用される。
【0016】
本発明のまた他の態様によれば、前記復号化対象ブロックのサイズに関する情報に基づき、変換タイプに関する情報を取得するステップは、前記復号化対象ブロックの縦軸長さが全て4以上16以下である場合、前記復号化対象ブロックは、前記縦軸方向に対して追加変換タイプのうち少なくとも一つが適用される。
【0017】
本発明のまた他の態様によれば、前記復号化対象ブロックの多重変換集合の適用如何に関する情報は、sps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flagのうち少なくとも一つを含む。
【0018】
本発明のまた他の態様によれば、前記予測モードに関する情報は、CuPredModeを含む。
【0019】
本発明のまた他の態様によれば、前記二次変換の適用如何に関する情報は、lfnst_idxを含む。
【0020】
本発明のまた他の態様によれば、前記行列を用いた予測の適用如何に関する情報は、intra_mip_flagを含む。
【0021】
本発明のまた他の態様によれば、前記復号化対象ブロックの変換タイプに関する情報は、それぞれ横軸変換タイプに関する情報及び縦軸変換タイプに関する情報を含む。
【0022】
本発明のまた他の態様によれば、前記復号化対象ブロックに暗黙的多重変換集合が適用されるか否かを判断するステップは、前記復号化対象ブロックがルーマ(luma)ブロックであるか否かをさらに確認することにより取得される。
【0023】
本発明のまた他の態様によれば、メモリ及び少なくとも一つのプロセッサを含む映像復号化装置が提供される。前記映像復号化装置は、復号化対象ブロックの多重変換集合の適用如何に関する情報、予測モードに関する情報、二次変換の適用如何に関する情報、行列を用いた予測の適用如何に関する情報、前記復号化対象ブロックのサイズに関する情報のうち少なくとも一つを取得し、前記復号化対象ブロックの多重変換集合の適用如何に関する情報、予測モードに関する情報、二次変換の適用如何に関する情報、行列を用いた予測の適用如何に関する情報のうち少なくとも一つに基づき、前記復号化対象ブロックに暗黙的多重変換集合が適用されるか否かを判断し、前記復号化対象ブロックに暗黙的多重変換集合が適用されるか否かに関する情報及び前記復号化対象ブロックのサイズに関する情報に基づき、変換タイプに関する情報を取得し、前記変換タイプに関する情報に基づき逆変換を行う逆変換部を含む少なくとも一つのプロセッサを含む。
【発明の効果】
【0024】
本発明によれば、特定条件により予め正義された方法で逆変換を行うことができる。
【0025】
また、復号化対象ブロックに最適化された変換タイプを適用して復号化を行うことにより、圧縮性能の改善効果を期待することができる。
【図面の簡単な説明】
【0026】
図1】本発明が適用されるビデオエンコード装置の構成を概略的に示す図である。
図2】ビデオエンコード装置により行われる映像エンコード方法の一例を示す図である。
図3】本発明が適用されるビデオデコード装置の構成を概略的に示す図である。
図4】デコード装置により行われる映像デコード方法の一例を示す図である。
図5】対角線スキャン(diagonal scan)方式についてのサブブロック及び係数のスキャン順序を示す図である。
図6】量子化後の32×32符号化対象ブロックの一例を示す図である。
図7】M×N復号化対象ブロックの領域中、m×nを除いた残りのゼロアウト領域を示す図である。
図8】本発明の一実施形態による暗黙的MTS機能の適用如何の決定方法を示す図である。
図9】本発明の一実施形態による暗黙的MTSの該ブロックの幅及び高さによる変換情報を誘導する方法を示す図である。
図10】本発明の一実施形態による変換関連パラメータに基づく逆変換実行方法を示す図である。
図11】32×32復号化対象ブロック内において太線でマーキングした有効(valid)MTS領域を示す図である。
図12】本発明の一実施形態による有効MTSの判断方法を示す図である。
図13】本発明の他の実施形態による有効MTSの判断方法を示す図である。
図14】本発明のまた他の実施形態による有効MTSの判断方法を示す図である。
図15】本発明の一実施形態による明示的MTS機能の適用如何の決定方法を示す図である。
図16】本発明の他の実施形態による変換関連パラメータに基づく逆変換実行方法を示す図である。
【発明を実施するための形態】
【0027】
本発明は、様々な変更を加えてもよく、様々な実施形態を有してもよいので、特定の実施形態を図面に例示して詳細に説明する。しかし、これは、本発明を特定の実施形態に限定しようとするものではない。本明細書において用いる用語は、単に特定の実施形態を説明するために用いられたものであって、本発明の技術的思想を限定しようとする意図で用いられるものではない。単数の表現は、文脈上、明らかに異なる意味でない限り、複数の表現を含む。本明細書において「含む」または「有する」等の用語は、明細書上に記載された特徴、番号、ステップ、動作、構成要素、部品またはこれらの組合せが存在することを指定しようとするものであって、一つまたはそれ以上の他の特徴、番号、ステップ、動作、構成要素、部品、またはこれらの組合せ等の存在、または付加の可能性を予め排除しないものと理解されなければならない。
【0028】
一方、本発明で説明される図面上の各構成は、別個の特徴的な機能に関する説明の便宜のために独立して示されたものであって、各構成が互いに別個のハードウェアまたは別個のソフトウェアで実現されることを意味するものではない。例えば、各構成のうち二つ以上の構成が結合されて一つの構成をなしてもよく、一つの構成が複数の構成に分けられてもよい。各構成が統合及び/または分離された実施形態も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0029】
以下、添付の図面を参照して、本発明の好ましい実施形態をさらに詳細に説明する。以下、図面上の同一の構成要素に対しては、同一の参照符号を使用し、同一の構成要素に対して重複する説明を省略する。
【0030】
一方、本発明は、ビデオ/映像コーディングに関する。例えば、本発明に開示された方法/実施形態は、VVC(versatile video coding)標準、EVC(Essential Video Coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)、または次世代ビデオ/イメージコーディング標準(例えば、H.267、H.268等)に開示された方法に適用され得る。
【0031】
この明細書において、ピクチャ(picture)は、一般に、特定時間帯の一つの映像を示す単位を意味し、スライス(slice)は、コーディングにおいて、ピクチャの一部を構成する単位である。一つのピクチャは、複数のスライスで構成されてもよく、必要に応じて、ピクチャ及びスライスは、互いに混用してもよい。
【0032】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または映像)を構成する最小の単位を意味してもよい。また、ピクセルに対応する用語として「サンプル(sample)」が用いられてもよい。サンプルは、一般に、ピクセルまたはピクセルの値を示すか、輝度(luma)成分のピクセル/ピクセル値のみを示すか、彩度(chroma)成分のピクセル/ピクセル値のみを示してもよい。
【0033】
ユニット(unit)は、映像処理の基本単位を示す。ユニットは、ピクチャの特定領域及び当該領域に関する情報のうち少なくとも一つを含んでもよい。ユニットは、場合に応じて、ブロック(block)または領域(area)等の用語と混用してもよい。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示してもよい。
【0034】
図1は、本発明が適用されるビデオエンコード装置の構成を概略的に示す図である。
【0035】
図1を参照すると、ビデオエンコード装置100は、ピクチャ分割部105、予測部110、残差処理部120、エントロピーエンコーディング部130、加算部140、フィルタ部150、及びメモリ160を含んでもよい。残差処理部120は、減算部121、変換部122、量子化部123、再整列部124、逆量子化部125、及び逆変還部126を含んでもよい。
【0036】
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理ユニット(processing unit)に分割する。
【0037】
一例として、処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれてもよい。この場合、コーディングユニットは、コーディングツリーユニット(Coding Tree Unit、CTU)からQTBT(Quad-tree binary-tree)構造により再帰的に(recursively)分割されてもよい。例えば、一つのコーディングユニットは、クアッドツリー構造及び/またはバイナリツリー構造に基づき、下位(deeper)デプスの複数のノードに分割されてもよい。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造が後で適用されてもよい。あるいは、バイナリツリー構造が先に適用されてもよい。これ以上分割されない最終コーディングユニットに基づき、本発明によるコーディング手続きが行われてもよい。この場合、映像特性によるコーディング効率等に基づき、最大のコーディングユニットが直ちに最終コーディングユニットとして用いられてもよく、または必要に応じて、コーディングユニットは、再帰的にさらに下位デプスのコーディングユニットに分割されて、最適のサイズのコーディングユニットが最終のコーディングユニットとして用いられてもよい。ここで、コーディング手続きとは、後述する予測、変換、及び復元等の手続きを含んでもよい。
【0038】
他の例として、処理ユニットは、コーディングユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、または変換ユニット(transform unit、TU)を含んでもよい。コーディングユニットは、最大のコーディングユニット(largest coding unit、LCU)から、クアッドツリー構造により、下位デプスのコーディングユニットに分割(split)されてもよい。この場合、映像特性によるコーディング効率等に基づき、最大のコーディングユニットが直ちに最終コーディングユニットとして用いられてもよく、または必要に応じて、コーディングユニットは、再帰的にさらに下位デプスのコーディングユニットに分割されて、最適のサイズのコーディングユニットが最終のコーディングユニットとして用いられてもよい。最小のコーディングユニット(smallest coding unit、SCU)が設定された場合、コーディングユニットは、最小のコーディングユニットよりもさらに小さなコーディングユニットに分割されない。ここで、最終のコーディングユニットとは、予測ユニットまたは変換ユニットにパーティショニングまたは分割される基盤となるコーディングユニットを意味する。予測ユニットは、コーディングユニットからパーティショニング(partitioning)されるユニットであって、サンプル予測のユニットであってもよい。このとき、予測ユニットは、サブブロック(subblock)に分けられてもよい。変換ユニットは、コーディングユニットからクアッドツリー構造により分割されてもよく、変換係数を誘導するユニット及び/または変換係数から残差信号(residual signal)を誘導するユニットであってもよい。以下、コーディングユニットは、コーディングブロック(coding block、CB)、予測ユニットは、予測ブロック(prediction block、PB)、変換ユニットは、変換ブロック(transform block、TB)と呼ばれてもよい。予測ブロックまたは予測ユニットは、ピクチャ内でブロック形態の特定の領域を意味し、予測サンプルのアレイ(array)を含んでもよい。また、変換ブロックまたは変換ユニットは、ピクチャ内でブロック形態の特定の領域を意味し、変換係数または残差サンプルのアレイを含んでもよい。
【0039】
予測部110は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロックを生成する。予測部110で行われる予測の単位は、コーディングブロックであってもよく、変換ブロックであってもよく、予測ブロックであってもよい。
【0040】
予測部110は、現在ブロックにイントラ予測が適用されるか、インター予測が適用されるかを決定する。一例として、予測部110は、CU単位でイントラ予測またはインター予測が適用されるかを決定する。
【0041】
イントラ予測の場合、予測部110は、現在ブロックが属するピクチャ(以下、現在ピクチャという)内の現在ブロック外部の参照サンプルに基づき、現在ブロックに対する予測サンプルを誘導することができる。このとき、予測部110は、(i)現在ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを誘導してもよく、(ii)現在ブロックの隣接参照サンプルのうち予測サンプルに対して特定の(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導してもよい。(i)の場合は、非方向性モードまたは非角度モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれる。イントラ予測における予測モードは、例えば、33個の方向性予測モードと少なくとも2個の非方向性モードを有してもよい。非方向性モードは、DC予測モード及びプラナーモード(Planarモード)を含んでもよい。予測部110は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定してもよい。
【0042】
インター予測の場合、予測部110は、参照ピクチャ上において、動きベクトルにより特定されるサンプルに基づき、現在ブロックに対する予測サンプルを誘導することができる。予測部110は、スキップ(skip)モード、マージ(merge)モード、及びMVP(motion vector prediction)モードのうちいずれか一つを適用して現在ブロックに対する予測サンプルを誘導することができる。スキップモード及びマージモードの場合、予測部110は、隣接ブロックの動き情報を現在ブロックの動き情報として用いてもよい。スキップモードの場合、マージモードとは異なり、予測サンプルと原本サンプルとの間の差(残差)が送信されない。MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(Motion Vector Predictor)として用い、現在ブロックの動きベクトル予測子として用いて現在ブロックの動きベクトルを誘導することができる。
【0043】
インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)及び参照ピクチャ(reference picture)に存在する時間的隣接ブロック(temporal neighboring block)を含んでもよい。前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれてもよい。動き情報(motion information)は、動きベクトル及び参照ピクチャインデックスを含んでもよい。予測モード情報及び動き情報等の情報は、(エントロピー)エンコーディングされてビットストリームの形態で出力されてもよい。
【0044】
スキップモード及びマージモードで時間的隣接ブロックの動き情報が用いられる場合、参照ピクチャリスト(reference picture list)上の最上位ピクチャが参照ピクチャとして用いられてもよい。参照ピクチャリストに含まれる参照ピクチャは、現在ピクチャと当該参照ピクチャとの間のPOC(Picture order count)の差に基づいて整列されてもよい。POCは、ピクチャのディスプレイ順序に対応し、コーディング順序と区分され得る。
【0045】
減算部121は、原本サンプルと予測サンプルとの間の差である残差サンプルを生成する。スキップモードが適用される場合は、前述したように残差サンプルを生成しなくてもよい。
【0046】
変換部122は、変換ブロック単位で残差サンプルを変換して変換係数(transform coefficient)を生成する。変換部122は、当該変換ブロックのサイズと、当該変換ブロックと空間的に重なるコーディングブロックまたは予測ブロックに適用された予測モードに応じて、変換を行うことができる。例えば、前記変換ブロックと重なる前記コーディングブロックまたは前記予測ブロックにイントラ予測が適用され、前記変換ブロックが4×4の残差アレイ(array)であれば、残差サンプルは、DST(Discrete Sine Transform)変換カーネルを用いて変換され、その他の場合であれば、残差サンプルは、DCT(Discrete Cosine Transform)変換カーネルを用いて変換される。
【0047】
量子化部123は、変換係数を量子化し、量子化された変換係数を生成する。
【0048】
再整列部124は、量子化された変換係数を再整列する。再整列部124は、係数スキャニング(scanning)方法により、ブロック形態の量子化された変換係数を1次元ベクトル形態で再整列できる。ここで、再整列部124は、別途の構成で説明したが、量子化部123の一部であってもよい。
【0049】
エントロピーエンコーディング部130は、量子化された変換係数に対するエントロピーエンコーディングを行う。エントロピーエンコーディングは、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)等のようなエンコード方法を含んでもよい。エントロピーエンコーディング部130は、量子化された変換係数の他にビデオ復元に必要な情報(例えば、シンタックス要素(syntax element)の値等)を共にまたは別途にエンコードしてもよい。エントロピーエンコード化情報は、ビットストリームの形態でNAL(network abstraction layer)ユニット単位で送信または保存されてもよい。
【0050】
逆量子化部125は、量子化部123で量子化された値(量子化された変換係数)を逆量子化し、逆変換部126は、逆量子化部125で逆量子化された値を逆変換して残差サンプルを生成する。
【0051】
加算部140は、残差サンプルと予測サンプルを合わせてピクチャを復元する。残差サンプルと予測サンプルは、ブロック単位で加えられて復元ブロックが生成される。ここで、加算部140は、別途の構成で説明したが、予測部110の一部であってもよい。一方、加算部140は、復元部または復元ブロック生成部とも呼ばれる。
【0052】
復元されたピクチャ(reconstructed picture)に対して、フィルタ部150は、デブロッキングフィルタ及び/またはサンプル適応オフセット(sample adaptive offset)を適用することができる。デブロッキングフィルタリング及び/またはサンプル適応オフセットにより、復元ピクチャ内のブロック境界のアーチファクトや量子化過程での歪みが補正され得る。サンプル適応オフセットは、サンプル単位で適用されてもよく、デブロッキングフィルタリングの過程が完了した後に適用されてもよい。フィルタ部150は、復元されたピクチャにALF(Adaptive Loop Filter)を適用することもできる。ALFは、デブロッキングフィルタ及び/またはサンプル適応オフセットが適用された後の復元されたピクチャに対して適用されてもよい。
【0053】
メモリ160は、復元ピクチャ(デコードされたピクチャ)またはエンコード/デコードに必要な情報を保存する。ここで、復元ピクチャは、前記フィルタ部150によりフィルタリング手続きが完了した復元ピクチャであってもよい。前記保存された復元ピクチャは、他のピクチャの(インター)予測のための参照ピクチャとして活用されてもよい。例えば、メモリ160は、インター予測に用いられる(参照)ピクチャを保存することができる。このとき、インター予測に用いられるピクチャは、参照ピクチャセット(reference picture set)または参照ピクチャリスト(reference picture list)により指定されてもよい。
【0054】
図2は、ビデオエンコード装置により行われる映像エンコード方法の一例を示す。図2を参照すると、前記映像エンコード方法は、ブロックパーティショニング(block partitioning)、イントラ/インター予測、変換(transform)、量子化(quantization)、及びエントロピーエンコーディング(entropy encoding)過程を含んでもよい。例えば、現在ピクチャは、複数のブロックに分割されてもよく、イントラ/インター予測により、現在ブロックの予測ブロックが生成されてもよく、前記現在ブロックの入力ブロックと前記予測ブロックとの減算により、前記現在ブロックの残差ブロックが生成されてもよい。以降、前記残差ブロックに対する変換により、係数(coefficent)ブロック、すなわち、前記現在ブロックの変換係数が生成されてもよい。前記変換係数は、量子化及びエントロピーエンコーディングされて、ビットストリームに保存されてもよい。
【0055】
図3は、本発明が適用されるビデオデコード装置の構成を概略的に説明する図である。
【0056】
図3を参照すると、ビデオデコード装置300は、エントロピーデコーディング部310、残差処理部320、予測部330、加算部340、フィルタ部350、及びメモリ360を含んでもよい。ここで、残差処理部320は、再整列部321、逆量子化部322、逆変換部323を含んでもよい。
【0057】
ビデオ情報を含むビットストリームが入力されると、ビデオデコード装置300は、ビデオエンコード装置でビデオ情報が処理されたプロセスに対応してビデオを復元することができる。
【0058】
例えば、ビデオデコード装置300は、ビデオエンコード装置で適用された処理ユニットを用いてビデオデコーディングを行うことができる。従って、ビデオデコーディングの処理ユニットブロックは、一例としてコーディングユニットであってもよく、他の例としてコーディングユニット、予測ユニット、または変換ユニットであってもよい。コーディングユニットは、最大のコーディングユニットからクアッドツリー構造及び/またはバイナリツリー構造により分割されてもよい。
【0059】
予測ユニット及び変換ユニットが、場合に応じて、さらに使用されてもよく、この場合、予測ブロックは、コーディングユニットから導出またはパーティショニングされるブロックであって、サンプル予測のユニットであってもよい。このとき、予測ユニットは、サブブロックに分けられてもよい。変換ユニットは、コーディングユニットからクアッドツリー構造により分割されてもよく、変換係数を誘導するユニットまたは変換係数から残差信号を誘導するユニットであってもよい。
【0060】
エントロピーデコーディング部310は、ビットストリームをパーシングしてビデオ復元またはピクチャ復元に必要な情報を出力する。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLCまたはCABAC等のコーディング方法に基づき、ビットストリーム内の情報をデコーディングし、ビデオ復元に必要なシンタックスエレメントの値、残差に対する変換係数の量子化された値を出力することができる。
【0061】
さらに詳しくは、CABACエントロピーデコード方法は、ビットストリームで各シンタックス要素に相当するビンを受信し、デコーディング対象シンタックス要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前のステップでデコードされたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルにより、ビン(bin)の発生確率を予測してビンの算術符号化(arithmetic decoding)を行って各シンタックス要素の値に相当するシンボルを生成できる。このとき、CABACエントロピーデコード方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのためにデコードされたシンボル/ビンの情報を用いて、コンテキストモデルをアップデートすることができる。
【0062】
エントロピーデコーディング部310でデコードされた情報のうち予測に関する情報は、予測部330に提供され、エントロピーデコーディング部310でエントロピーデコーディングが行われた残差の値、即ち、量子化された変換係数は、再整列部421に入力される。
【0063】
再整列部321は、量子化されている変換係数を2次元のブロック形態で再整列する。再整列部321は、エンコード装置で行われた係数スキャニングに対応して再整列を行うことができる。ここで、再整列部321は、別途の構成で説明したが、逆量子化部322の一部であってもよい。
【0064】
逆量子化部322は、量子化されている変換係数を(逆)量子化パラメータに基づいて逆量子化して変換係数を出力することができる。このとき、量子化パラメータを誘導するための情報は、エンコード装置からシグナリングされてもよい。
【0065】
逆変換部323は、変換係数を逆変換して残差サンプルを誘導することができる。
【0066】
予測部330は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。予測部330で行われる予測の単位は、コーディングブロックであってもよく、変換ブロックであってもよく、予測ブロックであってもよい。
【0067】
予測部330は、前記予測に関する情報に基づき、イントラ予測を適用するか、インター予測を適用するかを決定する。このとき、イントラ予測とインター予測のうち、どれを適用するかを決定する単位と、予測サンプルを生成する単位とは異なる。併せて、インター予測及びイントラ予測において、予測サンプルを生成する単位も異なる。例えば、インター予測及びイントラ予測のうち、どれを適用するかは、CU単位で決定できる。また、例えば、インター予測において、PU単位で予測モードを決定して、予測サンプルを生成してもよく、イントラ予測において、PU単位で予測モードを決定して、TU単位で予測サンプルを生成してもよい。
【0068】
イントラ予測の場合、予測部330は、現在ピクチャ内の隣接参照サンプルに基づき、現在ブロックに対する予測サンプルを誘導することができる。予測部330は、現在ブロックの隣接参照サンプルに基づき、方向性モードまたは非方向性モードを適用して、現在ブロックに対する予測サンプルを誘導することができる。このとき、隣接ブロックのイントラ予測モードを用いて、現在ブロックに適用する予測モードが決定されてもよい。一方、事前にトレーニングされた行列に基づき、予測を行うMIP(Matrix-based Intra Prediction)が用いられてもよく、この場合、それぞれのブロックのサイズ別にMIPモードの数と行列のサイズが定義されており、参照サンプルを行列のサイズに合わせてダウンサンプリングした後、モード番号により決まった行列を掛け算し、予測ブロックのサイズに合わせて補間して予測値を生成する。
【0069】
インター予測の場合、予測部330は、参照ピクチャ上において、動きベクトルにより参照ピクチャ上において特定されるサンプルに基づき、現在ブロックに対する予測サンプルを誘導することができる。予測部330は、スキップ(skip)モード、マージ(merge)モード、及びMVPモードのうち、いずれか一つを適用して、現在ブロックに対する予測サンプルを誘導することができる。このとき、ビデオエンコード装置から提供された現在ブロックのインター予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデックス等に関する情報は、前記予測に関する情報に基づいて取得または誘導されてもよい。
【0070】
スキップモード及びマージモードの場合、隣接ブロックの動き情報が現在ブロックの動き情報として用いられてもよい。このとき、隣接ブロックは、空間的隣接ブロックと時間的隣接ブロックを含んでもよい。
【0071】
予測部330は、可用の隣接ブロックの動き情報でマージ候補リストを構成し、マージインデックスがマージ候補リスト上において指示する情報を現在ブロックの動きベクトルとして用いてもよい。マージインデックスは、エンコード装置からシグナリングされてもよい。動き情報は、動きベクトルと参照ピクチャを含んでもよい。スキップモード及びマージモードにおいて、時間的隣接ブロックの動き情報が用いられる場合、参照ピクチャリスト上の最上位ピクチャが参照ピクチャとして用いられてもよい。
【0072】
スキップモードの場合、マージモードとは異なり、予測サンプルと原本サンプルとの間の差(残差)が送信されない。
【0073】
MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用いて、現在ブロックの動きベクトルが誘導されてもよい。このとき、隣接ブロックは、空間的隣接ブロックと時間的隣接ブロックを含んでもよい。
【0074】
一例として、マージモードが適用される場合、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルを用いて、マージ候補リストが生成されてもよい。マージモードではマージ候補リストから選ばれた候補ブロックの動きベクトルが、現在ブロックの動きベクトルとして用いられる。前記予測に関する情報は、前記マージ候補リストに含まれた候補ブロックのうちから選ばれた最適の動きベクトルを有する候補ブロックを指示するマージインデックスを含んでもよい。このとき、予測部330は、前記マージインデックスを用いて、現在ブロックの動きベクトルを導出してもよい。
【0075】
他の例として、MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルを用いて、動きベクトル予測子候補リストが生成されてもよい。即ち、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルは、動きベクトル候補として用いられてもよい。前記予測に関する情報は、前記リストに含まれた動きベクトル候補のうちから選択された最適の動きベクトルを指示する予測動きベクトルインデックスを含んでもよい。このとき、予測部330は、前記動きベクトルインデックスを用いて、動きベクトル候補リストに含まれている動きベクトル候補のうちから、現在ブロックの予測動きベクトルを選ぶことができる。エンコード装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求め、これをエンコードしてビットストリームの形態で出力する。即ち、MVDは、現在ブロックの動きベクトルから前記動きベクトル予測子を引いた値として求められる。このとき、予測部330は、前記予測に関する情報に含まれた動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子の加算により、現在ブロックの前記動きベクトルを導出することができる。また、予測部は、参照ピクチャを指示する参照ピクチャインデックス等を前記予測に関する情報から取得または誘導することができる。
【0076】
加算部340は、残差サンプルと予測サンプルを加算して現在ブロックまたは現在ピクチャを復元する。加算部340は、残差サンプルと予測サンプルをブロック単位で加算して現在ピクチャを復元してもよい。スキップモードが適用された場合は、残差が送信されないため、予測サンプルが復元サンプルとなる。ここでは加算部340を別途の構成として説明したが、予測部330の一部であってもよい。一方、加算部340は、復元部または復元ブロック生成部とも呼ばれる。
【0077】
フィルタ部350は、復元されたピクチャにデブロッキングフィルタリングサンプル適応オフセット及び/またはALF等を適用してもよい。このとき、サンプル適応オフセットは、サンプル単位で適用されてもよく、デブロッキングフィルタリング以後に適用されてもよい。ALFは、デブロッキングフィルタリング及び/またはサンプル適応オフセット以後に適用されてもよい。
【0078】
メモリ360は、復元ピクチャ(デコードされたピクチャ)またはデコーディングに必要な情報を保存する。ここで、復元ピクチャは、前記フィルタ部350によりフィルタリング手続きが完了した復元ピクチャであってもよい。例えば、メモリ360は、インター予測に用いられるピクチャを保存してもよい。このとき、インター予測に用いられるピクチャは、参照ピクチャセットまたは参照ピクチャリストにより指定されてもよい。復元されたピクチャは、他のピクチャに対する参照ピクチャとして用いられてもよい。また、メモリ360は、復元されたピクチャを出力順序により出力してもよい。
【0079】
図4は、デコード装置により行われる映像デコード方法の一例を示す図である。図4を参照すると、前記映像デコード方法は、エントロピーデコーディング(entropy decoding)、逆量子化(inverse quantization)、逆変換(inverse transform)、及びイントラ/インター予測過程を含んでもよい。例えば、デコード装置では前記エンコード方法の逆過程が行われてもよい。具体的に、ビットストリームに対するエントロピーデコーディングにより量子化された変換係数が取得されてもよく、前記量子化された変換係数に対する逆量子化過程により、現在ブロックの係数ブロック、すなわち、変換係数が取得されてもよい。前記変換係数に対する逆変換により、前記現在ブロックの残差ブロックが導出されてもよく、イントラ/インター予測により導出された前記現在ブロックの予測ブロックと前記残差ブロックとの加算により、前記現在ブロックの復元ブロック(reconstructed block)が導出されてもよい。
【0080】
一方、後述する実施形態におけるオペレーターは、下記の表のように正義されてもよい。
【0081】
【表1】
【0082】
表1を参照すると、Floor(x)は、x以下の最大の整数値を示し、Log2(u)は、uの2を底(base)とする対数値を示し、Ceil(x)は、x以上の最小の整数値を示す。例えば、Floor(5.93)の場合、5.93以下の最大の整数値は、5であるので、5を示す。
【0083】
また、表1を参照すると、x>>yは、xをy番だけ右シフト(right shift)する演算子を示し、x<<yは、xをy番だけ左シフト(left shift)する演算子を示す。
【0084】
<導入>
HEVC標準は、一般に、一つの変換タイプ(transform type)であるDCTを用いる。したがって、変換タイプについての別途の決定過程及び決まった変換タイプに関する情報が送信される必要がない。但し、現在、ルーマブロックのサイズが4x4であるとともに、イントラ予測を行う場合、例外的にDST変換タイプを用いる。
【0085】
変換及び量子化過程を経た量子化された係数(quantized coefficient)のうち、ノンゼロ(non-zero)係数の位置を表現する情報は、大いに3種類に分類される。
【0086】
1.最後の有効係数(Last significant coefficient)の位置(x、y):符号化対象ブロック内におけるスキャン順序(scan order)上、最も後順位ノンゼロ係数(non-zero coefficients)の位置(以下、最後の位置と定義される)
【0087】
2.コード化サブブロックフラグ(Coded sub-block flag):符号化対象ブロックを多数のサブブロックに分割し、それぞれのサブブロックがノンゼロ係数を一つ以上含んでいるかを知らせるフラグ(あるいは、全てゼロ係数であるかを知らせるフラグ)
【0088】
3.有効係数フラグ(Significant coefficient flag):一つのサブブロック内のそれぞれの係数がノンゼロであるかゼロであるかを知らせるフラグ
【0089】
ここで、最後の有効係数の位置は、x軸成分、y軸成分に分けて表示され、それぞれの成分は、プレフィックス(prefix)及びサフィックス(suffix)に分けて表現される。すなわち、量子化された係数のノンゼロ位置を知らせるシンタックス(syntax)は、下記の総6個のシンタックスを含む。
【0090】
1.last_sig_coeff_x_prefix
2.last_sig_coeff_y_prefix
3.last_sig_coeff_x_suffix
4.1ast_sig_coeff_y_suffix
5.coded_sub_block_flag
6.sig_coeff_flag
【0091】
前記last_sig_coeff_x_prefixは、最後の有効係数の位置を示すx軸成分のプレフィックスを示し、last_sig_coeff_y_prefixは、最後の有効係数の位置を示すy軸成分のプレフィックスを示す。また、last_sig_coeff_x_suffixは、最後の有効係数の位置を示すx成分のサフィックスを示し、last_sig_coeff_y_suffixは、最後の有効係数の位置を示すy成分のサフィックスを示す。
【0092】
一方、coded_sub_block_flagは、該サブブロック内の全ての係数が全てゼロ(all zero)であれば「0」、一つ以上のノンゼロ係数が存在すれば「1」と表示する。sig_coeff_flagは、ゼロ係数の場合、「0」と表示し、ノンゼロ係数であれば「1」と表示する。符号化対象ブロック内における最後の有効係数の位置を考慮して、スキャン順序上、以前に存在するサブブロックに限ってcoded_sub_block_flagシンタックスを送信する。coded_sub_block_flagが「1」である場合、すなわち、一つ以上のノンゼロ係数が存在する場合、該サブブロック内の全ての係数のそれぞれに対するsig_coeff_flagシンタックスを送信する。
【0093】
HEVC標準は、係数のための以下の3種類の形態のスキャンを支援する。
【0094】
1)アップライト対角(up-right diagonal)
2)水平(horizontal)
3)垂直(vertical)
【0095】
符号化対象ブロックが画面間予測方式を用いて符号化する場合、該ブロックの係数は、アップライト対角方式でスキャンされ、ブロックが画面内予測方式で符号化した場合は、画面内予測モードにより前記3種類の形態うち一つを選んで、該ブロックの係数をスキャンするようになる。
【0096】
すなわち、映像符号化装置により符号化対象ブロックが符号化されるとき、画面間予測方式が用いられる場合、該ブロックの係数は、アップライト対角方式でスキャンされ、前記符号化対象ブロックの符号化において画面内予測方式が用いられる場合は、映像符号化装置は、画面内予測モードにより前記3種類の形態のうち一つを選んで、該ブロックの係数をスキャンする。前記スキャンは、図1の映像符号化装置において、再整列部124により行われてもよく、スキャンにより、2次元のブロック形態の係数を1次元のベクトル形態に変更してもよい。
【0097】
図5は、対角線スキャン方式についてのサブブロック及び係数のスキャン順序を示す図である。
【0098】
図5を参照すれば、図5のブロックが、映像符号化装置の再整列部124により対角線スキャン方式でスキャンされるとき、最も左上端にあるサブブロックである1番サブブロックから下方向及び対角線上の上端方向にスキャンが行われ、右下端の16番サブブロックに対して最後にスキャンが行われる。すなわち、再整列部124は、1、2、3、…、14、15、16番のサブブロック順でスキャンを行って、2次元ブロック形態の量子化された変換係数を1次元のベクトル形態に再整列する。同様に、映像符号化装置の再整列部124は、それぞれのサブブロック内の係数に対しても、サブブロックのスキャン方式と同じ対角線スキャン方式でスキャンを行う。例えば、1番サブブロック内では、0、1、2、…、13、14、15番の係数の順でスキャンを行う。
【0099】
但し、スキャンが行われた係数がビットストリームに保存されるとき、保存される順序は、スキャン順序の逆順で保存される。すなわち、図10のブロックが、映像符号化装置の再整列部124によりスキャンされるときは、0番係数から255番係数の順でスキャンが行われたが、それぞれの画素がビットストリームに保存される順序は、255番位置の画素から0番位置の画素順でビットストリームに保存される。
【0100】
図6は、映像符号化装置による量子化後の32×32符号化対象ブロックの一例を示す図である。ここで、図6に示された32×32ブロックは、映像符号化装置によりスキャンが行われるとき、任意で対角線方式を用いた。図6において、対角斜線で表示したピクセルは、ノンゼロ係数を示し、x表示されたピクセルは、最後の有効係数を示す。それ以外の白色係数は、全てゼロ値を有する。ここで、coded_sub_block_flagシンタックスを、図6のブロックに代入すれば、総64個のサブブロックのうち、スキャン順序上、最後の位置以前に存在する24個のサブブロック、すなわち、図6において太線で表示したサブブロックに対するcoded_sub_block_flag情報が必要である。24個のサブブロックのうち、DC値を含む一番目のサブブロック及び最後の位置係数を含む24番目サブブロックのためのcoded_sub_block_flag値は、「1」に誘導され、残りの22個のサブブロックのためのcoded_sub_block_flag値は、ビットストリームにより映像復号化装置に送信される。このとき、22個のサブブロックのうち一つ以上のノンゼロ係数を含んでいるサブブロックの場合、coded_sub_block_flag値が映像符号化装置により「1」に設定される。図6では一番目のサブブロック及び24番目のサブブロックを除いた22個のサブブロックのうち、灰色でマーキングされたピクセルを含んでいるサブブロックである4、5、11、18番目のサブブロックのcoded_sub_block_flag値が「1」に設定される。
【0101】
1.復号化対象ブロックの一次変換タイプの決定方法
本明細書は、映像の復号化過程中、復号化対象ブロックの一次変換のタイプを決める方法について開示する。すなわち、復号化対象ブロックが映像復号化装置により復号化されるときは、映像符号化装置による変換過程において、どんな変換タイプで一次変換されて符号化されたかを判断する過程が必要である。一次変換タイプは、一つのデフォルト変換及び複数の追加変換で構成される。復号化対象ブロックは、条件により、デフォルト変換を用いるか、あるいはデフォルト変換及び追加変換を含む多重変換集合を用いる。すなわち、復号化対象ブロックは、変換過程においてデフォルト変換のみが用いられて変換されているか、デフォルト変換及び追加変換を含む多重変換集合が用いられて変換されていてもよい。映像復号化装置の観点では、反対に復号化対象ブロックがデフォルト変換のみを用いているか、それともデフォルト変換及び追加変換を含む多重変換集合を用いているかを把握して復号化を行ってもよい。復号化対象ブロックがMTSを用いると、複数の変換のうち、実際に用いられる変換に関する情報を送信または誘導する。ここで、実際に用いられる変換に関する情報は、横軸変換タイプ及び縦軸変換タイプが別途に存在してもよい。すなわち、映像復号化装置は、復号化対象ブロックがMTSを用いて変換された場合、複数の変換タイプのうち、どんな変換タイプが用いられて変換されたかを受信または判断して復号化を行ってもよい。
【0102】
一実施形態によれば、DCT-IIがデフォルト変換に設定され、DST-7及びDCT-8が追加変換に設定されてもよい。このとき、デフォルト変換であるDCT-IIの最大サイズは64×64まで支援され、追加変換であるDST-7及びDCT-8の最大サイズは32×32まで支援される。例えば、復号化対象ブロックのサイズが64×64である場合、一つの64×64のDCT-IIを変換過程に適用する。すなわち、復号化対象ブロックの幅及び高さの一つ以上が32よりも大きな(32を超える)場合、MTSを適用することなく、直ちにデフォルト変換(*)を適用する。すなわち、映像復号化装置の観点では、復号化対象ブロックの横及び縦のサイズが全て32以下である場合にのみ、MTSが用いられて変換されたか否かを判断すればよい。これに対して、復号化対象ブロックの横または縦のサイズの一つが32よりも大きい場合は、デフォルト変換が適用されて変換されたと判断されてもよい。このように、復号化対象ブロックがデフォルト変換により変換された場合、MTSと関連して送信されるシンタックス情報は存在しない。本発明では、便宜上、DCT-IIの変換タイプ値を「0」に設定し、DST-7の変換タイプ値は「1」に、DCT-8の変換タイプ値を「2」に設定するが、これに限定しない。以下の表2は、trTypeシンタックスの各値に割り当てられる変換タイプを定義する。
【0103】
【表2】
【0104】
表3及び表4は、複合化対象ブロックのサイズが4×4であるとき、DST-7及びDCT-8の変換カーネルの一例を示す。
【0105】
表3は、tyTypeが「1」(DST-7)であり、復号化対象ブロックのサイズが4×4である場合の該変換カーネルの係数値を示し、表4は、tyTypeが「2」(DCT-8)であり、復号化対象ブロックのサイズが4×4である場合の該変換カーネルの係数値を示す。
【0106】
【表3】
【0107】
【表4】
【0108】
復号化対象ブロックの全体の変換領域には、ゼロアウト領域が含まれてもよい。変換は、ピクセルドメインの値を周波数ドメイン値に変換するが、このとき、左上側の周波数領域を低周波領域、右下側の周波数領域を高周波領域と称する。低周波成分は、該ブロックの一般的な(平均的な)特性を反映し、高周波成分は、該ブロックの鋭い(特異な)特性を反映する。そのため、低周波成分は、多数個の大きな値が存在し、高周波成分は、少数個の小さな値が存在する。変換後の量子化過程により、高周波領域内の少数個の小さな値は、大部分0値を有するようになる。ここで、左上側に属する低周波領域のほか、殆ど0値を有する残りの領域をゼロアウト領域と指称し、ゼロアウト領域は、シグナリング過程で除外されてもよい。復号化対象ブロック内のゼロアウト領域を除いた領域を有効領域と指称する。
【0109】
図7は、M×N復号化対象ブロックの領域中、m×nを除いた残りのゼロアウト領域を示す図である。
【0110】
図7を参照すれば、左上側の灰色領域は、低周波領域を示し、白い領域は、高周波のゼロアウトを示す。
【0111】
他の例示として、復号化対象ブロックが64×64である場合、左上側の32×32領域は、有効領域となり、これを除いた残りの領域がゼロアウト領域となり、シグナリングされない。
【0112】
また、復号化対象ブロックのサイズが64×64、64×32、32×64の一つである場合、左上側の32×32領域は、有効領域となり、これを除いた残りの部分はゼロアウト領域となり、復号化器が量子化された係数に対するシンタックスをパーシングするとき、ブロックのサイズが知っているので、ゼロアウト領域は、シグナリングされない。すなわち、前記復号化対象ブロックの幅または高さが32よりも大きな領域が、ゼロアウト領域に設定される。このとき、復号化対象ブロックの横または縦のサイズが32よりも大きな場合に相当するので、用いられる変換は、デフォルト変換であるDCT-IIとなる。追加変換であるDST-7及びDCT-8の最大サイズは、32×32まで支援されるため、このようなサイズの対象ブロックでは、MTSが適用されない。
【0113】
また、復号化対象ブロックのサイズが32×32、32×16、16×32の一つであり、かつ前記復号化対象ブロックにMTSが適用される場合(例えば、DST-7またはDCT-8を用いた場合)、左上側の16×16領域は、有効領域となり、これを除いた残りの部分は、ゼロアウト領域に設定される。ここで、ゼロアウト領域は、最後の有効係数の位置及びスキャン方法によりシグナリングされてもよい。これは、符号化器は、量子化された係数関連シンタックスのシグナリングを終えた後、MTSインデックス(mts_idx)値をシグナリングするので、復号化器が量子化された係数に対するシンタックスをパーシングするときは、変換タイプに関する情報が分からないからである。このようにゼロアウト領域がシグナリングされる場合、復号化器は、ゼロアウト領域に相当する量子化された係数を無視または除去した後、有効領域に対してのみ変換を行うことができる。ここで、実際に用いられる変換タイプに関する情報は、横軸変換タイプ及び縦軸変換タイプが別途に存在してもよい。例えば、復号化対象ブロックの横軸変換タイプがDST-7またはDCT-8である場合、前記復号化対象ブロックの横軸(幅)有効領域は16となり、復号化対象ブロックの縦軸変換タイプがDST-7またはDCT-8である場合、前記復号化対象ブロックの縦軸(高さ)有効領域は16となる。
【0114】
一方、復号化対象ブロックのサイズが32×32、32×16、16×32の一つであり、かつ前記復号化対象ブロックにMTSが適用されない場合(例えば、デフォルト変換であるDCT-IIを用いた場合)、全ての領域が有効な領域であり、ゼロアウト領域は存在せずに、デフォルト変換であるDCT-IIを用いて変換される。ここで、実際に用いられる変換に関する情報は、横軸変換タイプ及び縦軸変換タイプが別途に存在してもよい。例えば、復号化対象ブロックの横軸変換タイプがDCT-IIである場合、前記復号化対象ブロックの横軸(幅)有効領域は、該ブロックの幅となり、復号化対象ブロックの縦軸変換タイプがDCT-IIである場合、前記復号化対象ブロックの縦軸(高さ)有効領域は、該ブロックの高さとなる。すなわち、前記復号化対象ブロックの全ての領域(幅×高さ)が有効領域となる。
【0115】
一方、復号化対象ブロックが上記で正義されていない16よりも小さなサイズを有する場合、全ての領域が有効領域となり、ゼロアウト領域は存在しない。復号化対象ブロックのMTSの適用如何及び変換タイプ値は、暗黙的及び/または明示的な実施形態により決まる。
【0116】
本発明では、変換及び量子化過程を経た量子化された係数のうち、ノンゼロ係数の位置を表現するシンタックスの内容は、HEVC方式と同じである。但し、coded_sub_block_flagのシンタックス名をsb_coded_flagに変更して用いる。また、量子化された係数をスキャンする方式は、アップライト対角方式を用いる。
【0117】
本発明において、MTSは、ルーマブロックに適用されてもよい(クロマブロックには適用されない)。また、MTSの使用如何を示すフラグ、すなわち、sps_mts_enabled_flagを用いて、MTS機能をオン/オフすることができる。MTS機能を用いる場合、sps_mts_enabled_flag=onに設定され、画面内予測及び画面間予測のそれぞれに対する明示的MTS機能の使用如何を設定することができる。すなわち、画面内予測時のMTS使用如何を示すフラグのsps_explicit_mts_intra_enabled_flag及び画面間予測時のMTS使用如何を示すフラグのsps_explicit_mts_inter_enabled_flagを別途に設定してもよい。この明細書では、便宜上、3種類のMTSの使用如何を示すフラグのsps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flag、及びsps_explicit_mts_inter_enabled_flagの値がSPS(sequence parameter set)内に位置すると記述しているが、これに限定されない。すなわち、前記3つのフラグは、DCI(decoding capability information)、VPS(video parameter set)、SPS(sequence parameter set)、PPS(picture parameter set)、PH(picture header)、SH(slice header)の一つ以上の位置において、それぞれ設定されてもよい。また、前記3つのMTSの使用如何を示すフラグは、HLS(high level syntax)と正義されてもよい。
【0118】
MTSの使用は、明示的方法と暗黙的方法に分けられる。明示的MTSの使用は、SPS内において画面内及び/または画面間のMTSの使用如何を示すフラグ値がオンに設定され、特定の条件を満たす場合、MTS関連情報(例えば、実際に用いられる変換情報)を送信する。すなわち、映像復号化装置は、MTS関連情報を受信し、これに基づき、復号化対象ブロックがどんな変換タイプを用いて変換されたかを確認し、これに基づき、復号化を行うことができる。例えば、明示的MTSが用いられる環境では、前記3つのフラグが下記のように設定されてもよい。
【0119】
1.sps_mts_enabled_flag=on
2.sps_explicit_mts_intra_enabled_flag=on
3.sps_explicit_mts_inter_enabled_flag=on
【0120】
暗黙的MTSの使用は、SPS内において3つのフラグのうち、sps_mts_enabled_flagの値がオンに設定され、特定の条件を満たす場合、MTS関 連情報(例えば、実際に用いられる変換情報)を誘導する。例えば、暗黙的MTSが用いられる環境では、前記3つのフラグが下記のように設定されてもよい。
【0121】
1.sps_mts_enabled_flag=on
2.sps_explicit_mts_intra_enabled_flag=off
3.sps_explicit_mts_inter_enabled_flag=off(オン、オフを問わず)
【0122】
以下、いくつかの実施形態により、暗黙的MTS方法及び明示的MTS方法について記述する。
【0123】
2.第1実施形態(暗黙的MTS)
この実施形態で説明する暗黙的MTSは、復号化対象ブロックが画面内予測方法で符号化された場合に用いられてもよい。すなわち、復号化対象ブロックが映像符号化装置により符号化されるとき、画面内予測方法で符号化された場合、映像符号化装置及び/または映像復号化装置により、暗黙的MTSを用いて、符号化及び/または復号化が行われてもよい。一方、復号化対象ブロックを復号化するとき、暗黙的MTSを用いるか否かは、implicitMtsEnabledパラメータにより指示されてもよい。映像復号化装置は、implicitMtsEnabledパラメータの値を確認して、暗黙的MTSを用いて復号化を行うか否かを決めてもよい。例えば、復号化に暗黙的MTSが用いられる場合、implicitMtsEnableパラメータは、1の値を有してもよく、そうでない場合、implicitMtsEnableパラメータは、0の値を有してもよい。一方、この明細書において、前記implicitMtsEnabledは、場合に応じて、「implicit_MTS_enabled」で表示されてもよい。
【0124】
このような暗黙的MTSが適用されるためのHLS(high level syntax)の条件について調べると、sps_mts_enabled_flagは、暗黙的であるか明示的であるかを問わず、MTSが適用されるか否かを示すフラグであるので、暗黙的MTSが適用されるためには、「オン」に設定されなければならない。一方、暗黙的MTSは、復号化対象ブロックが映像符号化装置により符号化されるとき、画面内予測方法で符号化された場合に用いられる。したがって、映像復号化装置は、sps_explicit_mts_intra_enabled_flagの値を確認することにより、暗黙的MTSの使用如何を決めることができる。但し、sps_explicit_mts_intra_enabled_flagは、復号化対象ブロックが映像符号化装置により符号化されるとき、画面内予測方法で符号化され、明示的MTSが適用される場合に「オン」に設定される。したがって、復号化対象ブロックが映像符号化装置により暗黙的MTSで符号化された場合、sps_explicit_mts_intra_enabled_flagは、「オフ」に設定される。一方、上記で説明されたように、暗黙的MTSは、復号化対象ブロックが映像符号化装置により画面内予測方法で符号化された場合に用いられる。したがって、復号化対象ブロックが映像符号化装置により画面内予測方法で符号化された場合の明示的MTSを示すsps_explicit_mts_inter_enabled_flagの値が、どんな値を有するかは重要でない。一方、暗黙的MTSは、復号化対象ブロックが映像符号化装置により画面内予測方法で符号化された場合に用いられてもよいので、CuPredModeがMODE_INTRAの値を有する場合に適用されてもよい。
【0125】
まとめると、復号化対象ブロックが映像復号化装置により暗黙的MTSを用いて復号化されるための条件は、以下のように羅列され得る。
【0126】
1)sps_mts_enabled_flag is equal to 1
2)sps_explicit_mts_intra_enabled_flag is equal to 0
3)CuPredMode is equal to MODE_INTRA(画面内予測方法)
【0127】
一方、ルーマブロックにおける現在位置の予測モードを示すCuPredMode[0][xTbY][yTbY]は、MODE_INTRA値を有してもよい。
【0128】
暗黙的MTSの使用が可能な追加的な条件は、次の通りである。
【0129】
4)lfnst_idx is equal to 0
5)intra_mip_flag is equal to 0
【0130】
ここで、lfnst_idx値は、二次変換(secondary transform)を示し、lfnst_idx=0である場合、二次変換を用いていないことを意味する。Intra_mip_flag値は、画面内予測方法の一つである行列を用いた予測方法(matrix-based intra prediction:mip)を用いたか否かを指示する。intra_mip_flag=0である場合、行列を用いた予測を用いていないことを意味し、intra_mip_flag=1である場合、行列を用いた予測を用いていることを意味する。
【0131】
すなわち、この実施形態は、一般的な画面内予測方法で予測しながら、二次変換を用いない復号化対象ブロックのための一次変換タイプ(あるいは、MTS)を設定する方法について記述する。前記5つの条件を全て満たす場合、暗黙的MTS機能が活性化される(図13参考)。
【0132】
図8は、本発明の一実施形態による暗黙的MTS機能の適用如何の決定方法を示す図である。図8のそれぞれのステップは、映像復号化装置内で行われてもよい。
【0133】
図8を参照すれば、映像復号化装置は、sps_mts_enable_flagが1の値を有し、sps_explicit_mts_intra_enable_flagが0の値を有し、CuPredModeがMODE_INTRA値を有するか否かを判断する(S810)。判断の結果、前記S810の条件を全て満たす場合、映像復号化装置は、lfnst_idxが0の値を有し、intra_mip_flagが0の値を有するか否かを判断し(S820)、S810の条件とS820の条件を全て満たす場合、implicit_MTS_enabled値を1に設定する(S830)。一方、映像復号化装置は、前記S810またはS820の条件を一つでも満たさない場合、implicit_MTS_enabled値を0に設定する(S840)。
【0134】
復号化対象ブロックに対する暗黙的MTS機能が活性化されると(implicit_MTS_enabled=on)、該ブロックの幅及び高さにより、MTS値(実際に用いられる変換情報)を誘導する(図9参考)。このとき、変換は、対象ブロックの一部のみが変換過程を経るサブブロック変換(sub-block transform;sbt)であってはならない。すなわち、対象ブロックのcu_sbt_flag値は、「0」である。
【0135】
図9は、本発明の一実施形態による暗黙的MTSの該ブロックの幅及び高さによる変換情報を誘導する方法を示す図である。図9のそれぞれのステップは、映像復号化装置内において行われてもよい。
【0136】
図9を参照すれば、映像復号化装置は、implicit_MTS_enabled値が「1」であるか否かを判断する(S910)。このとき、図示されてはいないが、映像復号化装置は、cu_sbt_flag値が「0」の値を有するかをさらに確認してもよい。このとき、cu_sbt_flagが「1」の値を有する場合は、復号化対象ブロックが、対象ブロックの一部のみが変換過程を経るサブブロック変換により変換されたことを示す。これに対して、cu_sbt_flagが「0」の値を有する場合は、復号化対象ブロックが、対象ブロックの一部のみが変換過程を経るサブブロック変換により変換されていないことを示す。したがって、図14による動作は、前記cu_sbt_flagが「0」の値を有する場合にのみ動作するように設定されてもよい。
【0137】
implicit_MTS_enabled値が1である場合、nTbWの値が4以上16以下の値を有するか否かを判断し(S920)、implicit_MTS_enabled値が「1」ではない場合、動作を終了する。nTbWは、該変換ブロックの幅を示し、横軸方向に追加変換タイプであるDST-7が用いられるか否かを判断するために用いられる。
【0138】
ステップS920の判断の結果、nTbWの値が4以上16以下の値を有する場合、trTypeHorを「1」に設定し(S930)、nTbWの値が4以上16以下の値を有さない場合、trTypeHorを「0」に設定する(S940)。このとき、前記nTbWは、該変換ブロックの幅を示し、横軸方向に追加変換タイプであるDST-7が用いられるか否かを判断するために用いられる。このとき、tyTypeHorが「0」に設定された場合は、該変換ブロックが横軸方向にデフォルトタイプ変換であるDCT-II変換を用いて変換されたと判断することができる。一方、前記trTypeHorが「1」に設定された場合は、該変換ブロックが横軸方向に追加変換タイプの一つであるDST-7変換を用いて変換されたと判断することができる。
【0139】
また、映像復号化装置は、nTbHの値が4以上16以下の値を有するか否かを判断し(S950)、nTbHの値が4以上16以下の値を有する場合、trTypeVerを「1」に設定し(S960)、nTbWの値が4以上16以下の値を有さない場合、trTypeVerを「0」に設定する(S970)。前記nTbHは、該変換ブロックの高さを示し、縦軸方向に追加変換タイプであるDST-7が用いられるか否かを判断するために用いられる。このとき、trTypeVerが「0」に設定された場合は、該変換ブロックが縦軸方向にデフォルトタイプ変換であるDCT-II変換を用いて変換されたと判断することができる。一方、前記trTypeVerが「1」に設定された場合は、該変換ブロックが縦軸方向に追加変換タイプの一つであるDST-7変換を用いて変換されたと判断することができる。
【0140】
図10は、本発明の一実施形態による変換関連パラメータに基づく逆変換実行方法を示す図である。図10のそれぞれのステップは、映像復号化装置で行われてもよく、例えば、復号化装置の逆変換部で行われてもよい。
【0141】
図10を参照すれば、映像復号化装置は、sps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flag、CuPredMode[0][xTbY][yTbY]、lfnst_idx、IntraMipFlag[x0, Y0]、NTbW、nTbHを取得する(S1010)。このとき、sps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flag、CuPredMode[0][xTbY][yTbY]、lfnst_idx、IntraMipFlag[x0,Y0]が、それぞれ何を示すかについては、図8の関連説明で詳しく説明されており、前記パラメータは、復号化対象ブロックが暗黙的MTSを適用することができるか否かを判断するために用いられる。また、NTbW、nTbHは、それぞれ該変換ブロックの幅及び高さを示し、追加変換タイプであるDST-7が用いられるか否かを判断するために用いられる。
【0142】
次に、映像復号化装置は、sps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flag、CuPredMode[0][xTbY][yTbY]、Lfnst_idx、IntraMipFlag[x0,Y0]値に基づき、implicit_MTS_enabledを設定する(S1020)。このとき、前記implicit_MTS_enableは、図13のプロセスを行うことにより設定されてもよい。
【0143】
次に、映像復号化装置は、implicit_MTS_enabled、nTbW、nTbHの値に基づき、trTypeHor及びtrTypeVerを設定する(S1030)。このとき、前記trTypeHor及びtrTypeVerは、図9のプロセスを行うことにより設定されてもよい。
【0144】
次に、映像復号化装置は、trTypeHor、trTypeVerに基づき、逆変換を行う(S1040)。trTypeHor及びtrTypeVerにより適用される逆変換は、表2により構成されてもよい。例えば、trTypeHorが「1」であり、trTypeVerが「0」である場合、横軸方向にはDST-7が適用され、縦軸方向にはDST-IIが適用されてもよい。
【0145】
一方、図示されてはいないが、映像符号化装置の観点では、暗黙的MTSの使用如何を設定するために、sps_mts_enabled_flag、sps_explicit_mts_intra_enabled_flag、CuPredMode[0][xTbY][yTbY]、lfnst_idx、IntraMipFlag[x0, Y0]、NTbW、nTbHを設定してもよい。
【0146】
3. 第2実施形態(明示的MTS)
本実施形態では、HLS(high level syntax)で明示的にMTS機能を活性化する場合、復号化対象ブロックに適用される変換方法を説明する。明示的MTSが適用されるためのHLS(high level syntax)の条件に調べると、sps_mts_enabled_flagは、暗黙的であるか明示的であるかを問わず、MTSが適用されるか否かを示すフラグであるので、暗黙的MTSが適用されるためには、「オン」に設定されなければならない。一方、明示的MTSは、復号化対象ブロックが画面内予測方法で符号化された場合と画面間予測方法で符号化された場合に全て適用されてもよいので、明示的MTSが適用される場合、sps_explicit_mts_intra_enabled_flag及び/またはsps_explicit_mts_intra_enabled_flagが全て「オン」に設定される。まとめると、以下の条件のように羅列され得る。
【0147】
1) sps_mts_enabled_flag=on
2)sps_explicit_mts_intra_enabled_flag=on
3)sps_explicit_mts_inter_enabled_flag=on
【0148】
ここで、復号化対象ブロックが画面内予測方法で符号化された場合、sps_explicit_mts_intra_enabled_flag=「on」の条件を確認し、復号化対象ブロックが画面間予測方法で符号化された場合、sps_explicit_mts_inter_enabled_flag=「on」の条件を確認する。
【0149】
明示的MTSの使用が可能な追加的な条件は、次の通りである。
【0150】
4)lfnst_idx is equal to 0(暗黙的MTS参考)
5)transform_skip_flag is equal to 0
6)intra_subpartitions_mode_flag is equal to 0
7)cu_sbt_flag is equal to 0(暗黙的MTS参考)
8)valid MTS領域
9)対象ブロックの幅及び高さが32以下
【0151】
ここで、lfnst_idx値は、二次変換を示し、lfnst_idx=0である場合、二次変換を用いていないことを意味する。
【0152】
transform_skip_flag値は、変換過程を省略することを指示し、transform_skip_flag=0である場合、変換過程を省略することなく、正常に変換を進行することを示す。intra_subpartitions_mode_flag値は、画面内予測方法の一つとして、対象ブロックを多数個のサブブロックに分けて、予測、変換、量子化過程を経ることを指示する。すなわち、該フラグ値(intra_subpartitions_mode_flag)が「0」である場合、対象ブロックをサブブロックに分けずに、一般的な画面内予測を行ったことを意味する。一方、追加変換(extra transforms)(DST-7及びDCT-8)の支援されるサイズにより(最大32×32まで支援する、上述している)、MTSの使用が制限されてもよい。すなわち、対象ブロックの幅及び高さが32以下でなければ、MTSの使用ができない。すなわち、幅及び高さのうち一つでも32を超えると、(MTSの使用ができない)デフォルト変換(default transform)(*)であるDCT-IIが行われる。
【0153】
cu_sbt_flagは、対象ブロックの一部のみが変換過程を経るサブブロック変換(sub-block transform、sbt)であるか否かを指示する。すなわち、cu_sbt_flag値が「0」である場合、対象ブロックの一部のみが変換過程を経るサブブロック変換ではないことを意味する。
【0154】
以下、有効領域(以下、有効MTS領域という)について詳細に説明する。
【0155】
図11は、32×32復号化対象ブロック内において太線でマーキングした有効MTS領域を示す図である。
【0156】
図11を参照すれば、DC係数を除いた左上側の16×16領域が、有効MTS領域となる。すなわち、1×1(DC)領域を除いた左上側の16×16領域が有効MTS領域である。例えば、対象ブロック内の全てのノンゼロ係数の位置が、有効MTS領域に属すれば、MTSが適用可能であり、一つ以上のノンゼロ係数値が有効MTS領域を外れれば、MTS適用が不可能であり、デフォルト変換(*)であるDCT-IIが行われる。これは、上述したゼロアウト領域と同じ概念である。すなわち、32×32対象ブロックがMTS(すなわち、DST-7またはDCT-8)を用いると、左上側の16×16は、有効領域となり、残りの部分は、ゼロアウト領域となるのと同様に、32×32対象ブロック内の全てのノンゼロ係数が左上側の16×16領域に位置すれば、MTS(すなわち、DST-7またはDCT-8)の適用が可能である。但し、例外的にブロック内のノンゼロ係数が一つであり、その位置がDC(1x1)であれば、MTSの適用が不可能であって、デフォルト変換(*)であるDCT-IIが行われる。
【0157】
結果的に、この実施形態では、MTSが適用可能か否かを決めるために、有効MTS領域を確認しなければならず、有効MTS領域の確認のためには、下記の2条件を確認しなければならない。
【0158】
(a)ブロック内のノンゼロ係数が一つであるとき、その位置がDC(1x1)であるか
(b)ブロック内の全てのノンゼロ係数が、左上側の16×16領域に位置するか
【0159】
前記(a)条件を確認するために、最後の位置の情報を活用してもよい。ここで、最後の位置とは、対象ブロック内のスキャン順序上、最後に位置するノンゼロ係数、すなわち、最後の有効係数の位置を意味する。一例として、最後の位置、すなわち、最後のノンゼロ係数を含む最後のサブブロックの情報を活用してもよい。例えば、最後のサブブロックの位置が(0,0)でなければ、(a)条件を満たすことができる。言い換えれば、対象ブロック内のサブブロックのスキャン順序上、最後のサブブロックの位置が「0」でなければ(0よりも大きければ)、(a)条件を満たすことができる。または、最後のサブブロックの位置が「0」であれば、該サブブロック内の最後の位置の相対的位置を示す最後のスキャン位置の情報を活用してもよい。例えば、該サブブロック内の係数のスキャン順序上、最後のスキャン位置が「0」でなければ(0よりも大きければ)、(a)条件を満たすことができる(図12参考)。また、上述したように、本発明のMTSは、ルーマブロックに適用される。
【0160】
前記(b)条件を確認するために、一つ以上のノンゼロ係数を含むサブブロック情報を活用してもよい。ここで、一つ以上のノンゼロ係数を含むサブブロック情報は、該サブブロックのsb_coded_flag値で確認可能である。該フラグ値が「1」である場合(sb_coded_flag=1)、該サブブロック内には、一つ以上のノンゼロ係数が位置することを意味し、sb_coded_flag=0である場合、該サブブロック内の全ての係数が全てゼロであることを意味する。すなわち、対象ブロック内のsb_coded_flag値が「1」である全てのサブブロックの位置が(0,0)から(3,3)以内に位置すると、(b)条件を満たすことができる。これに対して、対象ブロック内のsb_coded_flag値が「1」であるサブブロックの一つでも(0,0)から(3,3)以内の位置から外れると、(b)条件を満たすことができない。言い換えれば、対象ブロック内のsb_coded_flag値が「1」であるサブブロックの一つでも、サブブロックのx座標またはy座標のうち3よりも大きな値があれば、(b)条件を満足することができない(図18参考)。他の実施形態において、対象ブロック内のサブブロックのスキャン順序上、sb_coded_flag値が「1」でありながら、サブブロックのx座標またはy座標のうち3よりも大きな値を有する一番目のサブブロックが発見されれば、(b)条件を虚偽(false)に設定し、スキャン順序上、以後のsb_coded_flag値が「1」であるサブブロックの確認過程を省略してもよい(図13参考)。また、上記で説明したように、本発明のMTSは、ルーマブロックに適用される。
【0161】
図12は、本発明の一実施形態による有効MTSの判断方法を示す図である。図12の実施形態は、上記で説明された有効MTS領域の確認のための2つの条件のうち、(a)の条件を確認する方法に関するものである。図12のそれぞれのステップは、映像復号化装置内で行われてもよい。
【0162】
図12を参照すれば、映像復号化装置は、MtsDcOnlyFlagを「1」に設定する(S1210)。前記MtsDcOnlyFlagは、ブロック内のノンゼロ係数が一つであり、その位置がDCであるか否かを指示することができる。例えば、ブロック内のノンゼロ係数が一つであり、その位置がDCである場合、前記MtsDcOnlyFlagは「1」の値を有し、その他の場合は、MtsDcOnlyFlagは「0」の値を有する。このとき、映像復号化装置は、MtsDcOnlyFlag値が「0」を有する場合、MTSが適用されてもよい。ステップS1210において、MtsDcOnlyFlagを「1」に設定する理由は、該ブロックが、以下のブロック内のノンゼロ係数が一つである場合、DC位置にない条件を満たすとき、MtsDcOnlyFlagを「0」に再設定し、そうではないときは、MTSを適用しないためである。
【0163】
次に、映像復号化装置は、対象ブロックがルーマブロックであるか否かを判断する(S1220)。対象ブロックがルーマブロックであるか否かを判断する目的は、上記で説明したように、MTSは、ルーマブロックにのみ適用されるからである。
【0164】
次に、映像復号化装置は、最後のサブブロックが0よりも大きいか否かを判断し(S1230)、最後のサブブロックが0よりも大きい場合、MtsDcOnlyFlagを「0」に設定し(S1240)、プロセスを終了する。
【0165】
ステップS1230の判断の結果、最後のサブブロックが0よりも大きくなければ、最後のスキャン位置が0よりも大きいか否かを判断する(S1250)。
【0166】
ステップS1250の判断の結果、最後のスキャン位置が0よりも大きい場合、MtsDcOnlyFlagを「0」に設定し(S1240)、プロセスを終了する。
【0167】
ステップS1250の判断の結果、最後のスキャン位置が0よりも大きくなければ、プロセスを終了する。
【0168】
この実施形態によれば、最後のサブブロックが0よりも大きいか、最後のスキャン位置が0よりも大きければ、MtsDcOnlyFlagを「0」に設定し、そうではない場合は、MtsDcOnlyFlagを「1」に設定する。
【0169】
以降、MTSを適用するか否かを決めるとき、MtsDcOnlyFlagを確認して「1」の値を有する場合は、MTSを適用せずに、デフォルト変換であるDCT-IIが適用されてもよい。
【0170】
図13は、本発明の他の実施形態による有効MTS領域を判断する方法を示す図である。図13の実施形態は、上記で説明された有効MTS領域の確認のための2つの条件のうち、(b)の条件を確認する方法を具体的に示す。図13のそれぞれのステップは、映像復号化装置内で行われてもよい。
【0171】
図13を参照すれば、映像復号化装置は、MtsZerooutFlagを「1」に設定する(S1305)。前記MtsZerooutFlagは、ブロック内のノンゼロ係数がゼロアウト領域に存在するか否かを指示する。例えば、ブロック内のノンゼロ係数のうち少なくとも一つがゼロアウト領域に存在する場合、MtsZerooutFlagは「0」の値を有し、ブロック内の全てのノンゼロ係数がゼロアウト領域に存在しない場合、MtsZerooutFlagは「1」の値を有してもよい。この実施形態では、ブロック内の全てのノンゼロ係数がゼロアウト領域に存在しないと仮定して、MtsZerooutFlagの初期値を「1」に設定し、ゼロアウト領域の条件とノンゼロ係数の条件を同時に満たす場合、MtsZerooutFlagを「0」に設定してもよい。このとき、「0」の値を有するMtsZerooutFlagが存在する場合は、明示的MTSを適用しなくてもよい。
【0172】
次に、映像復号化装置は、変数iの初期値を最後のサブブロックの値に設定するが、前記変数iの値から1ずつを差し引き、変数iの値が0となるまで、以下のステップS1325乃至ステップS1350のプロセスを繰り返して行う(S1320)。ステップS1820のルーチンを繰り返して行う目的は、最後のサブブロックから一番目のサブブロックまで、全てのサブブロックのsb_coded_flag値を確認するためである。上述のように、該フラグ値が「1」である場合、該サブブロック内には一つ以上のノンゼロ係数が存在することを意味し、該フラグ値が「0」である場合、該サブブロック内にはノンゼロ係数が存在しないことを意味する。したがって、図11を参照すれば、対象ブロック内のsb_coded_flag値が「1」である全てのサブブロックの位置が(0,0)から(3,3)内にのみ存在する場合、すなわち、変数iを基準として0乃至8以内にのみ存在する場合は、明示的MTSを適用するための(b)条件が満たされたと判断されてもよい。
【0173】
次に、映像復号化装置は、変数iが最後のサブブロックよりも小さく(i<最後のサブブロック)、変数iが0よりも大きい(i>0)という条件を同時に満たすか否かを判断する(S1325)。例えば、ステップS1320のルーチンが初めて実行されるときは、変数iの初期値が最後のサブブロックと同じ値に設定されるので、ステップS1325の条件は満たされない。
【0174】
ステップS1325の判断の結果、変数iが最後のサブブロックよりも小さく(i<最後のサブブロック)、変数iが0よりも大きい(i>0)という条件を同時に満たす場合、sb_coded_flagをパーシングし(S1830)。二つの条件を同時に満たさない場合、sb_coded_flagを「1」に設定する(S1835)。
【0175】
このとき、パーシングされるsb_coded_flagは、該サブブロック内に一つ以上のノンゼロ係数が存在するか否かを指示する。該サブブロック内に一つ以上のノンゼロ係数が存在する場合、sb_coded_flagは「1」の値を有し、該サブブロック内にノンゼロ係数が存在しない場合、sb_coded_flagは「0」の値を有する。
【0176】
一方、iが最後のサブブロックと一番目のサブブロックを指示する場合にのみ、ステップS1835が行われる。すなわち、最後のサブブロック内には、最後の位置係数が含まれるので、sb_coded_flag値は「1」の値がパーシングされ、一番目のサブブロック内には、DC係数が存在するので、sb_coded_flag値は「1」の値がパーシングされる。
【0177】
次に、映像復号化装置は、該ブロックがルーマブロックであるか否かを判断する(S1340)。対象ブロックがルーマブロックであるか否かを判断する目的は、上記で説明したように、MTSは、ルーマブロックでのみ適用されるからである。
【0178】
ステップS1340の判断の結果、該ブロックがルーマブロックである場合、「sb_coded_flag && (xSb>3||ySb>3)」の条件を満たすか否かを判断し(S1845)、ステップS1845の条件を満たす場合、MtsZerooutFlagを「0」に設定する(S1350)。
【0179】
この実施形態によれば、対象ブロック内のサブブロック(3,3)以外のサブブロック、すなわち、ゼロアウト領域において、ノンゼロ係数が一つでも発見される場合、MtsZerooutFlagは「0」に設定され、明示的MTSを適用できないと判断されてもよい。
【0180】
図14は、本発明のまた他の実施形態による有効MTSを判断する方法を示す図である。図14の実施形態は、上記で説明された有効MTS領域の確認のための2つの条件のうち、(b)の条件を確認する方法について具体的に示す。但し、図13の実施形態では、全てのサブブロックのsb_coded_flagを確認することにより、有効MTS領域を確認しているが、図14の実施形態では、一番目の無効(invalid)MTSが発見される場合、以降のsb_coded_flagを確認しなくてもよいことが異なる。図14のそれぞれのステップは、映像復号化装置内で行われてもよい。
【0181】
図14を参照すれば、映像復号化装置は、MtsZerooutFlagを「1」に設定する(S1405)。前記MtsZerooutFlagは、ブロック内のノンゼロ係数がゼロアウト領域に存在するか否かを指示する。例えば、ブロック内のノンゼロ係数の少なくとも一つがゼロアウト領域に存在する場合、MtsZerooutFlagは、「0」の値を有し、ブロック内の全てのノンゼロ係数がゼロアウト領域に存在しない場合、MtsZerooutFlagは「1」の値を有してもよい。この実施形態では、ブロック内の全てのノンゼロ係数がゼロアウト領域に存在しないと仮定して、MtsZerooutFlagの初期値を「1」に設定し、ゼロアウト領域の条件及びノンゼロ係数の条件を同時に満たす場合、MtsZerooutFlagを「0」に設定してもよい。このとき、「0」の値を有するMtsZerooutFlagが存在する場合は、明示的MTSを適用しなくてもよい。
【0182】
次に、映像復号化装置は、変数iの初期値を最後のサブブロックの値に設定するが、前記変数iの値から1ずつを差し引き、変数iの値が0となるまで、以下のステップS1425乃至ステップS1450のプロセスを繰り返して行う(S1420)。ステップS1420のルーチンを繰り返して行う目的は、最後のサブブロックから一番目のサブブロックまで全てのサブブロックのsb_coded_flag値を確認するためである。上述のように、sb_coded_flag値が「1」である場合、該サブブロック内には一つ以上のノンゼロ係数が存在することを意味し、sb_coded_flag値が「0」である場合、該サブブロック内にはノンゼロ係数が存在しないことを意味する。したがって、図16を参照すれば、対象ブロック内のsb_coded_flag値が「1」である全てのサブブロックの位置が(0, 0)から(3, 3)内にのみ存在する場合、すなわち、変数iを基準として0乃至8以内にのみ存在する場合は、明示的MTSを適用するための(b)条件が充足されたと判断されてもよい。
【0183】
次に、映像復号化装置は、変数iが最後のサブブロックよりも小さく(i<最後のサブブロック)、変数iが0よりも大きい(i>0)という条件を同時に満たすか否かを判断する(S1425)。例えば、ステップS1920のルーチンが初めて実行されるときは、変数iの初期値が最後のサブブロックと同じ値に設定されるので、ステップS1425の条件は満たされない。
【0184】
ステップS1425の判断の結果、変数iが最後のサブブロックよりも小さく(i<最後のサブブロック)、変数iが0よりも大きい(i>0)という条件を同時に満たす場合、sb_coded_flagをパーシングし(S1430)、二つの条件を同時に満たさない場合、sb_coded_flagを「1」に設定する(S1435)。
【0185】
このとき、パーシングされるsb_coded_flagは、該サブブロック内に一つ以上のノンゼロ係数が存在するか否かを指示する。該サブブロック内に一つ以上のノンゼロ係数が存在する場合、sb_coded_flagは「1」の値を有し、該サブブロック内にノンゼロ係数が存在しない場合、sb_coded_flagは「0」の値を有する。
【0186】
一方、iが最後のサブブロックと一番目のサブブロックを指示する場合にのみ、ステップS1435が行われる。すなわち、最後のサブブロック内には、最後の位置係数が含まれるので、sb_coded_flag値は「1」の値がパーシングされ、一番目のサブブロック内には、DC係数が存在するので、sb_coded_flag値は「1」の値がパーシングされる。
【0187】
次に、映像復号化装置は、「MtsZerooutFlag && luma block」の条件を満たすか否かを判断する(S1440)。
【0188】
ステップS1440の判断の結果、「MtsZerooutFlag && luma block」の条件を満たす場合、「sb_coded_flag && (xSb>3 ||ySb>3)」の条件を満たすか否かをさらに判断し(S1445)、「sb_coded_flag && (xSb>3||ySb>3)」の条件を満たす場合、MtsZerooutFlagを「0」に設定する(S1450)。
【0189】
ステップS1440の判断の結果、「MtsZerooutFlag && luma block」の条件を満たさない場合、該サブブロックにおけるプロセスを終了する。
【0190】
この実施形態によれば、該変数i、すなわち、該サブブロックにおいて一回でもMtsZerooutFlag値が「0」に設定されると、次のルーチンである変数i-1では、ステップS1940において、偽り(False)値が導出されて、sb_coded_flag値をこれ以上確認する必要がない。
【0191】
一方、復号化対象ブロックが前記(a)及び(b)の条件を全て満たす場合、明示的MTSの使用が確定されて、該ブロックに実際に用いられる変換情報をインデックス形態(mts_idx)で送信する。これに対して、全ての条件を満たさない場合、デフォルト変換(*)であるDCT-IIを用いる(図15参考)。表5は、mts_idx値による横軸及び縦軸の変換タイプを示す。
【0192】
【表5】
【0193】
表5において、trTypeHorは、横軸変換タイプを意味し、trTypeVerは、縦軸変換タイプを意味する。表5における変換タイプの値は、表2のtrType値を意味する。例えば、mts_idx値が「2」である場合、横軸変換でDCT-8(2)を、縦軸変換でDST-7(1)を用いればよい。
【0194】
本発明において、上記で言及したデフォルト変換(*)DCT-IIを使用/実行/適用する全ての場合は、「mts_idx値を「0」に誘導する」という表現で代替されてもよい。すなわち、mts_idx値が「0」である場合、横軸及び縦軸変換に全てDCT-II(0)が設定されるからである。
【0195】
本発明において、mts_idxの二進化方法は、TR(truncated rice)方式を用いており、TRのためのパラメータ値であるcMax値は、「4」であり、cRiceParam値は「0」である。表6は、MTSインデックスのコードワードを示す。
【0196】
【表6】
【0197】
表6を参照すれば、mts_idx値が「0」である場合、これに対応するコードワードは「0」であり、mts_idx値が「1」である場合、これに対応するコードワードは「10」であり、mts_idx値が「2」である場合、これに対応するコードワードは「110」であり、mts_idx値が「3」である場合、これに対応するコードワードは「1110」であり、mts_idx値が「4」である場合、これに対応するコードワードは「1111」であることが確認される。
【0198】
図15は、本発明の一実施形態による明示的MTS機能の適用如何の決定方法を示す図である。図15のそれぞれのステップは、映像復号化装置内で行われてもよい。
【0199】
図15を参照すれば、映像復号化装置は、「(sps_explicit_mts_intra_enabled_flag && CuPredMode=MODE_INTRA)||(sps_explicit_mts_inter_enabled_flag && CuPredMode=MODE_INTER)」の条件が満たされるか否かを判断する(S1510)。
【0200】
sps_explicit_mts_intra_enabled_flagは、画面内予測時の明示的MTSの使用如何を示すフラグであり、sps_explicit_mts_intra_enabled_flagは、画面間予測時の明示的MTSの使用如何を示すフラグである。sps_explicit_mts_intra_enabled_flagは、画面内予測時、明示的MTSを用いる場合「1」値を有し、それ以外の場合は、「0」の値を有する。sps_explicit_mts_intra_enabled_flagは、画面間予測時、明示的MTSを用いる場合、「1」の値を有し、それ以外の場合は、「0」の値を有する。
【0201】
CuPredModeは、復号化対象ブロックが、どの予測方法で符号化されたか否かを指示する。復号化対象ブロックが画面内予測方法で符号化された場合、CuPredModeは、MODE_INTRA値を有し、復号化対象ブロックが画面間予測方法で符号化された場合、CuPredModeは、MODE_INTER値を有する。
【0202】
したがって、復号化対象ブロックが画面内予測及び明示的MTSを用いる場合、「sps_explicit_mts_intra_enabled_flag && CuPredMode=MODE_INTRA」は、「1」の値を有し、復号化対象ブロックが画面間予測及び明示的MTSを用いる場合、「sps_explicit_mts_inter_enabled_flag && CuPredMode=MODE_INTER」は、「1」の値を有する。したがって、ステップS2010は、sps_explicit_mts_intra_enabled_flag、sps_explicit_mts_inter_enabled_flag、CuPredModeの値を確認することにより、復号化対象ブロックが明示的MTSを用いるか否かを判断することができる。
【0203】
ステップS1510の条件が満たされる場合、映像復号化装置は、「lfnst_idx=0 && transform_skip_flag=0 && cbW<32 && cbH<32 && intra_subpartitions_mode_flag=0 && cu_sbt_flag=0」の条件が満たされるか否かを判断する(S1520)。
【0204】
ここで、lfnst_idx値は、二次変換を示し、lfnst_idx=0である場合、二次変換を用いていないことを意味する。
【0205】
transform_skip_flag値は、現在ブロックに変換スキップが適用されるか否かを指示する。すなわち、現在のブロックに変換過程を省略するか否かを指示する。transform_skip_flag=0である場合、現在ブロックに変換スキップが適用されていないことを示す。
【0206】
cbW及びcbHは、それぞれ現在ブロックの幅及び高さを示す。上述のように、デフォルト変換であるDCT-IIの最大サイズは64×64まで支援され、追加変換であるDST-7及びDCT-8の最大サイズは32×32まで支援される。例えば、復号化対象ブロックのサイズが64×64である場合、一つの64×64のDCT-IIを変換過程に適用する。すなわち、復号化対象ブロックの幅及び高さの一つ以上が、32よりも大きい(32を超える)場合、MTSを適用することなく、直ちにデフォルト変換(*)を適用する。したがって、MTSが適用されるためには、cbW及びcbHの値が全て32以下の値を有さなければならない。
【0207】
intra_subpartitions_mode_flagは、イントラサブパーティションモード(intra subpartition mode)が適用されるか否かを指示する。イントラサブパーティションモードは、画面内予測方法の一つであって、対象ブロックを多数個のサブブロックに分けて、予測、変換、量子化過程を経ることを指示する。すなわち、該フラグ値(intra_subpartitions_mode_flag)が「0」である場合、対象ブロックをサブブロックに分けることなく、一般的な画面内予測を行うことを意味する。
【0208】
cu_sbt_flagは、対象ブロックの一部のみが変換過程を経るサブブロック変換が適用されるか否かを指示する。すなわち、cu_sbt_flag値が「0」である場合、対象ブロックの一部のみが変換過程を経るサブブロック変換が適用されないことを意味する。
【0209】
したがって、ステップS1520の条件が満たされるか否かにより、復号化対象ブロックが明示的MTSを適用できるか否かを判断してもよい。
【0210】
ステップS1510の条件が満たされない場合、映像復号化装置は、mts_idxの値を「0」に設定し(S1530)、プロセスを終了する。
【0211】
ステップS1520の条件が満たされる場合、映像復号化装置は、「MtsZeroOutFlag=1 && MtsDcOnlyFlag=0」の条件が満たされるか否かを判断する(S1540)。
【0212】
前記MtsZerooutFlagは、ブロック内のノンゼロ係数がゼロアウト領域に存在するか否かを指示する。ブロック内のノンゼロ係数の少なくとも一つがゼロアウト領域に存在する場合、MtsZerooutFlagは、「0」の値を有し、ブロック内の全てのノンゼロ係数がゼロアウト領域に存在しない場合、MtsZerooutFlagは、「1」の値を有してもよい。このとき、MtsZerooutFlagの値は、図13または図14のプロセスを行うことにより決まってもよい。
【0213】
MtsDcOnlyFlagは、ブロック内のノンゼロ係数が一つであり、その位置がDCであるか否かを指示する。ブロック内のノンゼロ係数が一つであり、その位置がDCである場合、前記MtsDcOnlyFlagは「1」の値を有し、その他の場合は、MtsDcOnlyFlagは「0」の値を有する。このとき、MtsDcOnlyFlagの値は、図17のプロセスを行うことにより決まってもよい。
【0214】
一方、ステップS1520の条件が満たされない場合、映像復号化装置は、mts_idxの値を「0」に設定し(S1530)、プロセスを終了する。
【0215】
ステップS1540の条件が満たされる場合、映像復号化装置は、mts_idxをパーシングし(S1550)、プロセスを終了する。このとき、mts_idxの値による横軸及び縦軸の変換タイプは、表5により割り当てられてもよい。このとき、表5における変換タイプの値は、表2のtrType値を意味する。例えば、mts_idx値が「2」である場合、横軸変換でDCT-8、縦軸変換でDST-7が適用されてもよい。
【0216】
また、ステップS1540の条件が満たされない場合にも、映像復号化装置は、mts_idxの値を「0」に設定し(S1530)、プロセスを終了する。
【0217】
図16は、本発明の他の実施形態による変換関連パラメータに基づく逆変換実行方法を示す図である。図16のそれぞれのステップは、映像復号化装置で行われてもよく、例えば、復号化装置の逆変換部で行われてもよい。
【0218】
図16を参照すれば、映像復号化装置は、sps_explicit_mts_intra_enable_flag、sps_explicit_mts_inter_enable_flag、CuPredMode、lfnst_idx、transform_skip_flag、cbW、cbH、intra_subpartitions_mode_flag、cu_sbt_flagの値を取得する(S1610)。このとき、sps_explicit_mts_intra_enable_flag、sps_explicit_mts_inter_enable_flag、CuPredMode、lfnst_idx、transform_skip_flag、cbW、cbH、intra_subpartitions_mode_flag、cu_sbt_flagがそれぞれ何を示すかについては、図15の関連説明において詳しく説明されており、前記パラメータは、復号化対象ブロックが明示的MTSを適用することができるか否かを判断するために用いられる。
【0219】
次に、映像復号化装置は、MtsZerooutFlag及びMtsDcOnlyFlag値を取得する(S1620)。このとき、前記MtsZerooutFlagは、図13または図14のプロセスを行うことにより取得し、MtsDcOnlyFlagは、図12のプロセスを行うことにより取得することができる。
【0220】
次に、映像復号化装置は、ステップS1610及びステップS1620で取得したパラメータに基づき、mts_idx値を取得する(S1630)。すなわち、映像復号化装置は、sps_explicit_mts_intra_enable_flag、sps_explicit_mts_inter_enable_flag、CuPredMode、lfnst_idx、transform_skip_flag、cbW、cbH、intra_subpartitions_mode_flag、cu_sbt_flag、MtsZerooutFlag、MtsDcOnlyFlagに基づき、mts_idx値を取得する。このとき、mts_idxは、図15のプロセスを行うことにより取得されてもよい。
【0221】
次に、映像復号化装置は、mts_idxに基づき、逆変換を行う(S1640)。mts_idx値により適用される逆変換は、表5及び表2により構成されてもよい。例えば、mts_idx値が「2」である場合、横軸方向にDCT-8が適用され、縦軸方向にDST-7が適用されてもよい。
【0222】
一方、図示されていないが、映像符号化装置の観点では、明示的MTSの使用如何を設定するために、sps_explicit_mts_intra_enable_flag、sps_explicit_mts_inter_enable_flag、CuPredMode、lfnst_idx、transform_skip_flag、cbW、cbH、intra_subpartitions_mode_flag、cu_sbt_flag、MtsZerooutFlag、MtsDcOnlyFlagを設定することができる。上述した実施形態において、方法は、一連のステップまたはブロックとして順序図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、上述とは異なるステップと異なる順序によりまたは同時に発生してもよい。また、当業者であれば、順序図に示されたステップが、排他的ではなく、他のステップが含まれるか、順序図の一つまたはそれ以上のステップが、本発明の範囲に影響を及ぼすことなく削除されてもよいことが理解されるであろう。
【0223】
この文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上において実現されて行われてもよい。例えば、それぞれの図面に示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上において実現されて行われてもよい。この場合、実現のための情報(例えば、指示事項情報)またはアルゴリズムがデジタル保存媒体に保存されてもよい。
【0224】
また、本発明が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信等のリアルタイム通信装置、モバイルストリーミング装置、保存媒体、カムコーダ、ビデオオンデマンド(注文型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれてもよく、ビデオ信号またはデータ信号を処理するために用いられてもよい。例えば、OTTビデオ(Over The Top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)等が挙げられる。
【0225】
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されてもよく、コンピュータで読み取り可能な保存媒体に保存されてもよい。本発明によるデータ構造を有するマルチメディアデータもコンピュータで読み取り可能な保存媒体に保存されてもよい。前記コンピュータで読み取り可能な保存媒体は、コンピュータで読み出すことができるデータが保存記憶されるあらゆる種類の保存装置及び分散記憶装置を含む。上記コンピュータで読み取り可能な保存媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学データ保存装置を含んでもよい。また、前記コンピュータで読み取り可能な保存媒体は、搬送波の形態(例えば、インターネットを介した送信)で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームは、コンピュータで読み取り可能な保存媒体に保存されるか、有無線通信ネットワークを介して送信されてもよい。
【0226】
また、本発明の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されてもよく、前記プログラムコードは、本発明の実施形態によりコンピュータで行われてもよい。前記プログラムコードは、コンピュータで読み取り可能なキャリア上に保存されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16