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

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

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

特許7493612レジデュアルコーディングに対する映像デコーディング方法及びその装置
<>
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図1
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図2
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図3
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図4
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図5
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図6
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図7
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図8
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図9
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図10
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図11
  • 特許-レジデュアルコーディングに対する映像デコーディング方法及びその装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-23
(45)【発行日】2024-05-31
(54)【発明の名称】レジデュアルコーディングに対する映像デコーディング方法及びその装置
(51)【国際特許分類】
   H04N 19/132 20140101AFI20240524BHJP
   H04N 19/157 20140101ALI20240524BHJP
   H04N 19/18 20140101ALI20240524BHJP
   H04N 19/70 20140101ALI20240524BHJP
【FI】
H04N19/132
H04N19/157
H04N19/18
H04N19/70
【請求項の数】 12
(21)【出願番号】P 2022559602
(86)(22)【出願日】2021-03-30
(65)【公表番号】
(43)【公表日】2023-05-15
(86)【国際出願番号】 KR2021003892
(87)【国際公開番号】W WO2021201549
(87)【国際公開日】2021-10-07
【審査請求日】2022-11-29
(31)【優先権主張番号】63/003,221
(32)【優先日】2020-03-31
(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)【発明者】
【氏名】ナム チョンハク
(72)【発明者】
【氏名】ホ チン
(72)【発明者】
【氏名】チェ チャンウォン
(72)【発明者】
【氏名】キム スンファン
【審査官】久保 光宏
(56)【参考文献】
【文献】国際公開第2021/195240(WO,A1)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 8)",Document: JVET-Q2001-vE, [online],JVET-Q2001 (version 15),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年03月12日,Pages 39-44,47-50,59-61,82-87,110,125,and Pages 147,170-172, 413-417, [令和4年12月14日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9675> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v15.zip>.,(See document file "JVET-Q2001-vE.docx" in the zip file "JVET-Q2001-v15.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
デコーディング装置によって行われる映像デコーディング方法であって、
サインデータハイディング(sign data hiding)可用フラグと従属量子化可用フラグを取得する段階と、
前記サインデータハイディング可用フラグと前記従属量子化可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)が可用でないフラグを取得する段階と、
前記TSRCが可用でないフラグに基づいて現在ブロックに対するレジデュアル情報を取得する段階と、
前記レジデュアル情報に基づいて前記現在ブロックのレジデュアルサンプルを導出する段階と、
前記レジデュアルサンプルに基づいて復元ピクチャーを生成する段階とを含み、
前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かに対するフラグであり、
前記従属量子化可用フラグは、従属量子化が可用であるかに対するフラグであり
前記TSRCが可用でないフラグは、TSRCシンタックスが利用されるか否かに対するフラグであり、
前記TSRCが可用でないフラグは、前記サインデータハイディング可用フラグの値が0に等しく、前記従属量子化可用フラグの値が0に等しいことに基づいて、ビットストリームから取得される、映像デコーディング方法。
【請求項2】
前記サインデータハイディング可用フラグの値が1に等しいことに基づいて、前記TSRCが可用でないフラグが前記ビットストリームから取得されず、前記TSRCが可用でないフラグの値は0と導出される、請求項1に記載の映像デコーディング方法。
【請求項3】
前記サインデータハイディング可用フラグの値が1に等しいことに応答して、前記現在ブロック内の現在CG(coefficient group)の最初の有効変換係数の符号(sign)は、前記現在CG内の有効変換係数の絶対値の和に基づいて導出される、請求項に記載の映像デコーディング方法。
【請求項4】
前記サインデータハイディング可用フラグの値が1に等しいことに基づいて、前記最初の有効変換係数に対するサインフラグはシグナルされない、請求項に記載の映像デコーディング方法。
【請求項5】
記サインデータハイディング可用フラグの値が1に等しいことは、前記サインデータハイディングが可用であることを示し、
記サインデータハイディング可用フラグの値が0に等しいことは、前記サインデータハイディングが可用でないことを示す、請求項1に記載の映像デコーディング方法。
【請求項6】
記TSRCが可用でないフラグの値が1に等しいことは、前記TSRCシンタックスが利用されないことを示し、
記TSRCが可用でないフラグの値が0に等しいことは、前記TSRCシンタックスが利用されることを示す、請求項1に記載の映像デコーディング方法。
【請求項7】
前記TSRCが可用でないフラグの値が1に等しいことに基づいて、前記現在ブロックに対するレジデュアル情報は、レギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスから取得される、請求項に記載の映像デコーディング方法。
【請求項8】
前記現在ブロックに変換スキップが適用されるか否かに対する変換スキップフラグが前記ビットストリームから取得される、請求項に記載の映像デコーディング方法。
【請求項9】
前記現在ブロックが変換スキップブロックであり、前記TSRCが可用でないフラグの値が0に等しいことに基づいて、前記現在ブロックに対する前記レジデュアル情報は、前記TSRCシンタックスから取得される、請求項に記載の映像デコーディング方法。
【請求項10】
前記TSRCシンタックスの前記レジデュアル情報は、変換係数に対するコンテクストコードされたシンタックスエレメントを含み、
前記コンテクストコードされたシンタックスエレメントは、前記変換係数がノンゼロ(non-zero)変換係数であるか否かを示す有効係数フラグと、前記変換係数に対する係数レベルのパリティ(parity)に対するパリティレベルフラグと、前記変換係数に対する符号(sign)を示すサインフラグと、前記係数レベルが第1臨界値よりも大きいか否かに対する第1係数レベルフラグと、前記変換係数の前記係数レベルが第2臨界値よりも大きいか否かに対する第2係数レベルフラグを含む、請求項に記載の映像デコーディング方法。
【請求項11】
エンコーディング装置によって行われる映像エンコーディング方法であって、
サインデータハイディング(sign data hiding)可用フラグと、従属量子化可用フラグをエンコードする段階と、
前記サインデータハイディング可用フラグと前記従属量子化可用フラグに基づいて、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)が可用でないフラグをエンコードする段階と、
前記TSRCが可用でないフラグに基づいて現在ブロックに対するレジデュアル情報をエンコードする段階と、
前記サインデータハイディング可用フラグ、前記従属量子化可用フラグ、前記TSRCが可用でないフラグ及び前記レジデュアル情報を含むビットストリームを生成する段階を含み、
前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるかに対するフラグであり
前記従属量子化可用フラグは、従属量子化が可用であるかに対するフラグであり
前記TSRCが可用でないフラグは、TSRCシンタックスが利用されるか否かに対するフラグであり
前記TSRCが可用でないフラグは、前記サインデータハイディング可用フラグの値が0に等しく、前記従属量子化可用フラグの値が0に等しいことに基づいて前記ビットストリームにエンコードされる、映像エンコーディング方法。
【請求項12】
前記サインデータハイディング可用フラグの値が1に等しいことに基づいて、前記TSRCが可用でないフラグはエンコードされない、請求項11に記載の映像エンコーディング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、より詳細には、映像コーディングシステムにおいて現在ブロックのレジデュアルデータをコードするとき、TSRC可用であるか否かを示すフラグ情報をコードする映像デコーディング方法及びその装置に関する。
【背景技術】
【0002】
近年、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が様々な分野で増加している。映像データが高解像度化、高品質化するほど、既存の映像データに比べて伝送される情報量又はビット量がより増加するため、既存の有無線広帯域回線のような媒体を用いて映像データを伝送したり既存の記憶媒体を用いて映像データを記憶する場合に、伝送及び記憶にかかるコストが増加する。
【0003】
このため、高解像度・高品質の映像の情報を効果的に伝送、記憶及び再生するには高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本文書の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0005】
本文書の他の技術的課題は、レジデュアルコーディングの効率を上げる方法及び装置を提供することにある。
【課題を解決するための手段】
【0006】
本文書の一実施例によれば、デコーディング装置によって行われる映像デコーディング方法が提供される。前記方法は、サインデータハイディング(sign data hiding)可用フラグを取得する段階、サインデータハイディング可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)可用フラグを取得する段階、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報を取得する段階、前記レジデュアル情報に基づいて前記現在ブロックのレジデュアルサンプルを導出する段階、及び前記レジデュアルサンプルに基づいて復元ピクチャーを生成する段階を含み、前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、TSRCが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいて取得されることを特徴とする。
【0007】
本文書の他の実施例によれば、映像デコーディングを行うデコーディング装置が提供される。前記デコーディング装置は、サインデータハイディング(sign data hiding)可用フラグを取得し、サインデータハイディング可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)可用フラグを取得し、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報を取得するエントロピーデコーディング部、前記レジデュアル情報に基づいて前記現在ブロックのレジデュアルサンプルを導出するレジデュアル処理部、及び前記レジデュアルサンプルに基づいて復元ピクチャーを生成する加算部を含み、前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、TSRCが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいて取得されることを特徴とする。
【0008】
本文書のさらに他の一実施例によれば、エンコーディング装置によって行われるビデオエンコーディング方法を提供する。前記方法は、サインデータハイディング(sign data hiding)が可用であるか否かに対するサインデータハイディング可用フラグをエンコードする段階、前記サインデータハイディング可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)が可用であるか否かに対するTSRC可用フラグをエンコードする段階、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報をエンコードする段階、及び前記サインデータハイディング可用フラグ、前記TSRC可用フラグ及び前記レジデュアル情報を含むビットストリームを生成する段階を含み、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいてエンコードされることを特徴とする。
【0009】
本文書のさらに他の一実施例によれば、ビデオエンコーディング装置を提供する。前記エンコーディング装置は、サインデータハイディング(sign data hiding)が可用であるか否かに対するサインデータハイディング可用フラグをエンコードし、前記サインデータハイディング可用フラグに基づいて、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)が可用であるか否かに対するTSRC可用フラグをエンコードし、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報をエンコードし、前記サインデータハイディング可用フラグ、前記TSRC可用フラグ及び前記レジデュアル情報を含むビットストリームを生成するエントロピーエンコーディング部を含み、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいてエンコードされることを特徴とする。
【0010】
本文書のさらに他の一実施例によれば、映像デコーディング方法を行うようにする映像情報を含むビットストリームが記憶されたコンピュータ可読デジタル記憶媒体を提供する。コンピュータ可読デジタル記憶媒体において、前記映像デコーディング方法は、サインデータハイディング(sign data hiding)可用フラグを取得する段階、サインデータハイディング可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)可用フラグを取得する段階、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報を取得する段階、前記レジデュアル情報に基づいて前記現在ブロックのレジデュアルサンプルを導出する段階、及び前記レジデュアルサンプルに基づいて復元ピクチャーを生成する段階を含み、前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、TSRCが可用であるか否かに対するフラグであり、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいて取得されることを特徴とする。
【発明の効果】
【0011】
本文書によれば、レジデュアルコーディングの効率を上げることができる。
【0012】
本文書によれば、サインデータハイディング可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、サインデータハイディングが可用でない場合にTSRC可用フラグをシグナルすることにより、TSRCが可用でなくて変換スキップブロックに対してRRCシンタックスがコードされる場合にサインデータハイディングが用いられないようにし、これにより、コーディング効率を向上させ、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【0013】
本文書によれば、従属量子化可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、従属量子化が可用でない場合にTSRC可用フラグをシグナルすることにより、TSRCが可用でなくて変換スキップブロックに対してRRCシンタックスがコードされる場合に従属量子化が用いられないようにし、これにより、コーディング効率を向上させ、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【0014】
本文書によれば、変換スキップ可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、変換スキップが可用である場合にTSRC可用フラグをシグナルすることにより、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【図面の簡単な説明】
【0015】
図1】本文書の実施例が適用可能なビデオ/映像コーディングシステムの例を概略的に示す図である。
図2】本文書の実施例が適用可能なビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
図3】本文書の実施例が適用可能なビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図4】シンタックスエレメント(syntax element)をエンコードするためのCABAC(context-adaptive binary arithmetic coding)を例示する図である。
図5】4x4ブロック内変換係数の例示を示す図である。
図6】従属量子化で用いられるスカラー量子化器を例示する図である。
図7】従属量子化のためのステート転換(state transition)及び量子化器選択を例示する図である。
図8】本文書に係るエンコーディング装置による映像エンコーディング方法を概略的に示す図である。
図9】本文書に係る映像エンコーディング方法を行うエンコーディング装置を概略的に示す図である。
図10】本文書に係るデコーディング装置による映像デコーディング方法を概略的に示す図である。
図11】本文書に係る映像デコーディング方法を行うデコーディング装置を概略的に示す図である。
図12】本文書の実施例が適用されるコンテンツストリーミングシステムの構造を例示する図である。
【発明を実施するための形態】
【0016】
本文書は様々な変更を加えることができ、様々な実施例を有し得るところ、特定実施例を図面に例示して詳細に説明する。ただし、これは、本文書の実施例を特定実施例に限定しようとするものではない。本明細書で常用する用語は特定の実施例を説明するために使われるだけで、本文書の技術的思想を限定する意図で使われるものではない。単数の表現は、文脈において別に断らない限り、複数の表現をも含む。本明細書において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品又はそれらを組み合わせたものが存在することを指定するためのものであり、1つ又はそれ以上の他の特徴、数字、段階、動作、構成要素、部品又はそれらを組み合わせたものの存在又は付加の可能性をあらかじめ排除しないものとして理解されるべきである。
【0017】
一方、本文書で説明される図面上の各構成は、それぞれ異なる特徴的な機能に関する説明の便宜のために独立して示すものであり、各構成が互いに別個のハードウェアや別個のソフトウェアとして具現されるということを意味するものではない。例えば、各構成のうち2つ以上の構成が合わせられて一つの構成をなしてもよく、一つの構成が複数の構成に分けられてもよい。各構成が統合及び/又は分離された実施例も、本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0018】
以下、添付の図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同一の構成要素には同一の参照符号を付し、同一の構成要素について重複する説明は省略する。
【0019】
図1には、本文書の実施例が適用可能なビデオ/映像コーディングシステムの例を概略的に示す。
【0020】
図1を参照すると、ビデオ/映像コーディングシステムは、第1装置(ソースデバイス)及び第2装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/映像(image)情報又はデータをファイル又はストリーミングの形態でデジタル記憶媒体又はネットワークを介して受信デバイスに伝達することができる。
【0021】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置及びレンダラーを含むことができる。前記エンコーディング装置はビデオ/映像エンコーディング装置と呼ばれてもよく、前記デコーディング装置はビデオ/映像デコーディング装置と呼ばれてもよい。送信機はエンコーディング装置に含まれてよい。受信機はデコーディング装置に含まれてよい。レンダラーはディスプレイ部を含むこともでき、ディスプレイ部は別個のデバイス又は外部コンポーネントとして構成されてもよい。
【0022】
ビデオソースは、ビデオ/映像のキャプチャー、合成又は生成過程などによってビデオ/映像を取得できる。ビデオソースは、ビデオ/映像キャプチャーデバイス及び/又はビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャーデバイスは、例えば、1つ以上のカメラ、以前にキャプチャーされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどによって仮想のビデオ/映像が生成されてよく、この場合、関連データが生成される過程でビデオ/映像のキャプチャー過程に代えてよい。
【0023】
エンコーディング装置は、入力ビデオ/映像をエンコードすることができる。エンコーディング装置は、圧縮及びコーディング効率のために予測、変換、量子化などの一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)の形態で出力されてよい。
【0024】
送信部は、ビットストリームの形態で出力されたエンコードされたビデオ/映像情報又はデータをファイル又はストリーミングの形態で、デジタル記憶媒体又はネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含むことができる。送信部は、あらかじめ定められたファイルフォーマットによってメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した伝送のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0025】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/映像をデコードすることができる。
【0026】
レンダラーは、デコードされたビデオ/映像をレンダーすることができる。レンダーされたビデオ/映像は、ディスプレイ部でディスプレイされてよい。
【0027】
この文書は、ビデオ/映像コーディングに関する。例えば、この文書に開示の方法/実施例は、VVC(versatile video coding)標準、EVC(essential video coding)標準、AV1(AOMedia Video1)標準、AVS2(2nd generation of audio video coding standard)又は次世代ビデオ/映像コーディング標準(例えば、H.267又はH.268など)に開示される方法に適用されてよい。
【0028】
この文書ではビデオ/映像コーディングに関する様々な実施例を提示し、特に言及がない限り、前記実施例は互いに組み合わせられて行われてもよい。
【0029】
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味できる。ピクチャー(picture)は一般に、特定時間帯の1つの映像を表す単位を意味し、サブピクチャー(subpicture)/スライス(slice)/タイル(tile)は、コーディングにおいてピクチャーの一部を構成する単位である。サブピクチャー/スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャーは1つ以上のサブピクチャー/スライス/タイルで構成されてよい。1つのピクチャーは1つ以上のタイルグループで構成されてよい。1つのタイルグループは1つ以上のタイルを含むことができる。ブリックは、ピクチャーのタイル内でCTU行の四角領域を表すことができる。タイルは、複数のブリックにパーティショニングされてよく、各ブリックは、前記タイル内で1つ以上のCTU行で構成されてよい。複数のブリックにパーティショニングされていないタイルもブリックと呼ぶことができる。ブリックスキャンは、ピクチャーをパーティショニングするCTUの特定の順次的オーダーリングを表すことができ、これらのCTUはブリック内でCTUラスタースキャンで整列されてよく、タイル内のブリックは、前記タイルの前記ブリックのラスタースキャンで連続して整列されてよく、そしてピクチャー内のタイルは、前記ピクチャーの前記タイルのラスタースキャンで連続して整列されてよい。また、サブピクチャーは、ピクチャー内の1つ以上のスライスの四角領域を表すことができる。すなわち、サブピクチャーは、ピクチャーの長方形の領域をまとめてカバーする1つ以上のスライスを含むことができる。タイルは、ピクチャーにおいて特定タイル行及び特定タイル列以内のCTUの四角領域である。前記タイル列はCTUの四角領域であり、前記四角領域は、前記ピクチャーの高さと同じ高さを有し、幅はピクチャーパラメータセット内のシンタックス要素によって明示されてよい。前記タイル行はCTUの四角領域であり、前記四角領域は、ピクチャーパラメータセット内のシンタックス要素によって明示される幅を有し、高さは前記ピクチャーの高さと同一であってよい。タイルスキャンは、ピクチャーをパーティショニングするCTUの特定の順次的オーダーリングを表すことができ、前記CTUは、タイル内にCTUラスタースキャンで連続して整列されてよく、ピクチャー内のタイルは、前記ピクチャーの前記タイルのラスタースキャンで連続して整列されてよい。スライスは、ピクチャーの整数個のブリックを含むことができ、前記整数個のブリックは単一NALユニットに含まれてよい。スライスは、複数の完全なタイルで構成されてよく、又は1つのタイルの完全なブリックの連続したシーケンスであってよい。この文書においてタイルグループとスライスは同じ意味で使われてよい。例えば、本文書においてタイルグループ/タイルグループヘッダーはスライス/スライスヘッダーと呼ばれてよい。
【0030】
ピクセル(pixel)又はPEL(pel)は、1つのピクチャー(又は、映像)を構成する最小の単位を意味できる。また、ピクセルに対応する用語として「サンプル(sample)」が使われてよい。サンプルは一般に、ピクセル又はピクセルの値を表すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを表してもよく、クロマ(chroma)成分のピクセル/ピクセル値のみを表してもよい。
【0031】
ユニット(unit)は、映像処理の基本単位を表すことができる。ユニットは、ピクチャーの特定領域及び当該領域に関連した情報のうち少なくとも一つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(ex.cb,cr)ブロックを含むことができる。ユニットは、場合によってブロック(block)又は領域(area)などの用語と同じ意味で使われてよい。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル(又は、サンプルアレイ)又は変換係数(transform coefficient)の集合(又は、アレイ)を含むことができる。
【0032】
本明細書において、「A又はB(A or B)」は、「Aのみ」、「Bのみ」又は「AとBの両方」を意味できる。言い換えると、本明細書において「A又はB(A or B)」は「A及び/又はB(A and/or B)」と解釈できる。例えば、本明細書において「A、B又はC(A,B or C)」は、「Aのみ」、「Bのみ」、「Cのみ」、又は「A、B及びCの任意の全ての組合せ(any combination of A,B and C)」を意味できる。
【0033】
本明細書で使われるスラッシュ(/)やコンマ(comma)は、「及び/又は(and/or)」を意味できる。例えば、「A/B」は「A及び/又はB」を意味できる。したがって、「A/B」は、「Aのみ」、「Bのみ」、又は「AとBの両方」を意味できる。例えば、「A、B、C」は「A、B又はC」を意味できる。
【0034】
本明細書において「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)」と同一に解釈されてよい。
【0035】
また、本明細書において「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)」を意味できる。
【0036】
また、本明細書で使われる括弧は、「例えば(for example)」を意味できる。具体的には、「予測(イントラ予測)」と表示された場合に、「予測」の一例として「イントラ予測」が提案されたものであってよい。言い換えると、本明細書における「予測」は「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであろう。また、「予測(すなわち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであろう。
【0037】
本明細書において、1つの図面で個別に説明される技術的特徴は、個別に具現されてもよく、同時に具現されてもよい。
【0038】
以下の図面は、本明細書の具体的な一例を説明するために作成されたものである。図面に記載された具体的な装置の名称又は具体的な信号/メッセージ/フィールドの名称は例示的に提示されたものであり、本明細書の技術的特徴は、以下の図面における具体的な名称に制限されない。
【0039】
図2は、本文書の実施例が適用可能なビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置は、映像エンコーディング装置を含むことができる。
【0040】
図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)、量子化部(quantizer233)、逆量子化部(dequantizer,234)、逆変換部(inverse transformer,235)を含むことができる。レジデュアル処理部230は、減算部(subtractor,231)をさらに含むことができる。加算部250は、復元部(reconstructor)又は復元ブロック生成部(recontructged block generator)と呼ばれてもよい。上述した映像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250及びフィルタリング部260は、実施例によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセット又はプロセッサ)によって構成されてよい。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって構成されてもよい。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0041】
映像分割部210は、エンコーディング装置200に入力された入力映像(又は、ピクチャー、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit,CU)と呼ぶことができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit,CTU)又は最大コーディングユニット(largest coding unit,LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されてよい。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はタナーリー構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されてよい。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はタナーリー構造が後で適用されてよい。又は、バイナリツリー構造が先に適用されてもよい。それ以上分割されない最終コーディングユニットに基づいて、本文書によるコーディング手順が行われてよい。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが直ちに最終コーディングユニットとして用いられてよく、又は、必要によってコーディングユニットは再帰的に(recursively)さらに下位デプスのコーディングユニットに分割され、最適のサイズのコーディングユニットが最終コーディングユニットとして用いられてよい。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットはそれぞれ、上述した最終コーディングユニットから分割又はパーティショニングされてよい。前記予測ユニットはサンプル予測の単位であってよく、前記変換ユニットは、変換係数を誘導する単位及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であってよい。
【0042】
ユニットは、場合によって、ブロック(block)又は領域(area)などの用語と同じ意味で使われてよい。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を表すことができる。サンプルは一般に、ピクセル又はピクセルの値を表すことができ、輝度(luma)成分のピクセル/ピクセル値のみを表すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを表すこともできる。サンプルは、ピクセル(pixel)又はペル(pel)に対する1つのピクチャー(又は、映像)に対応する用語として使われてよい。
【0043】
エンコーディング装置200は、入力映像信号(原本ブロック、原本サンプルアレイ)から、インター予測部221又はイントラ予測部222から出力された予測信号(予測ブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal;残余ブロック、残余サンプルアレイ)を生成でき、生成されたレジデュアル信号は変換部232に伝送される。この場合、図示のようにエンコーディング装置200において、入力映像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部231と呼ばれてよい。予測部は、処理対象ブロック(以下、現在ブロックという。)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測ブロック(predicted block)を生成できる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか又はインター予測が適用されるかを決定できる。予測部は、各予測モードに関する説明で後述するように、予測モード情報などの予測に関する様々な情報を生成してエントロピーエンコーディング部240に伝達できる。予測に関する情報は、エントロピーエンコーディング部240でエンコードされてビットストリームの形態で出力されてよい。
【0044】
イントラ予測部222は、現在ピクチャー内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの周辺(neighbor)に位置してよく、離れて位置してもよい。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプレーナーモード(Planar mode)を含むことができる。方向性モードは、予測方向の細密な程度によって、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示であり、設定によってそれ以上又はそれ以下の個数の方向性予測モードが用いられてもよい。イントラ予測部222は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0045】
インター予測部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)をシグナルすることによって現在ブロックの動きベクトルを指示することができる。
【0046】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測又はインター予測を適用できる他に、イントラ予測とインター予測を同時に適用することもできる。これをCIIP(combined inter and intra prediction)と呼ぶことができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy,IBC)予測モードに基づいてもよく、又はパレットモード(palette mode)に基づいてもよい。前記IBC予測モード又はパレットモードは、例えばSCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像のコーディングのために用いられてよい。IBCは基本的に現在ピクチャー内で予測を行うが、現在ピクチャー内で参照ブロックを導出する点でインター予測と類似に行われてよい。すなわち、IBCは、本文書で説明されるインター予測手法のうち少なくとも一つを用いることができる。パレットモードは、イントラコーディング又はイントラ予測の一例と見なすことができる。パレットモードが適用される場合に、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャー内サンプル値をシグナルすることができる。
【0047】
前記予測部(インター予測部221及び/又は前記イントラ予測部222含む。)で生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられてよい。変換部232は、レジデュアル信号に変換手法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換手法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうち少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同一サイズを有するピクセルブロックに適用されてもよく、正方形以外の可変サイズのブロックに適用されてもよい。
【0048】
量子化部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に含まれてもよい。
【0049】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられてよい。例えば、量子化された変換係数に、逆量子化部234及び逆変換部235で逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号を、インター予測部221又はイントラ予測部222から出力された予測信号に加算することによって、復元(reconstructed)信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合に、予測されたブロックが復元ブロックとして用いられてよい。加算部250は、復元部又は復元ブロック生成部と呼ぶことができる。生成された復元信号は、現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてよく、後述するように、フィルタリングを経て次のピクチャーのインター予測のために用いられてもよい。
【0050】
一方、ピクチャーエンコーディング及び/又は復元過程においてLMCS(luma mapping with chroma scaling)が適用されてもよい。
【0051】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャーに様々なフィルタリング方法を適用し、修正された(modified)復元ピクチャーを生成でき、前記修正された復元ピクチャーをメモリ270、具体的にメモリ270のDPBに記憶させることができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、両方向フィルター(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に関する説明で後述されるように、フィルタリングに関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリング関する情報は、エントロピーエンコーディング部240でエンコードされてビットストリームの形態で出力されてよい。
【0052】
メモリ270に伝送された修正された復元ピクチャーは、インター予測部221で参照ピクチャーとして用いられてよい。エンコーディング装置は、これによってインター予測が適用される場合に、エンコーディング装置200とデコーディング装置300での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0053】
メモリ270のDPBは、修正された復元ピクチャーをインター予測部221での参照ピクチャーとして使用するために記憶することができる。メモリ270は、現在ピクチャー内動き情報が導出された(又は、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャー内ブロックの動き情報を記憶することができる。前記記憶された動き情報は、空間的周辺ブロックの動き情報又は時間的周辺ブロックの動き情報として活用するためにインター予測部221に伝達することができる。メモリ270は、現在ピクチャー内復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
【0054】
図3は、本文書の実施例が適用可能なビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【0055】
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder,310)、レジデュアル処理部(residual processor,320)、予測部(predictor,330)、加算部(adder,340)、フィルタリング部(filter,350)及びメモリ(memory,360)を含んで構成されてよい。予測部330は、インター予測部331及びイントラ予測部332を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer,321)及び逆変換部(inverse transformer,322)を含むことができる。上述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340及びフィルタリング部350は、実施例によって、一つのハードウェアコンポーネント(例えば、デコーダチップセット又はプロセッサ)によって構成されてもよい。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって構成されてもよい。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
【0056】
ビデオ/映像情報を含むビットストリームが入力されると、デコーディング装置300は、図2のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えばコーディングユニットであってよく、コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットから、クアッドツリー構造、バイナリツリー構造及び/又はタナーリーツリー構造をしたがって分割されてよい。コーディングユニットから1つ以上の変換ユニットが導出されてよい。そして、デコーディング装置300でデコーディング及び出力された復元映像信号は、再生装置で再生されてよい。
【0057】
デコーディング装置300は、図2のエンコーディング装置から出力された信号をビットストリームの形態で受信することができ、受信された信号は、エントロピーデコーディング部310でデコードされてよい。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングし、映像復元(又は、ピクチャー復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャーパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報にさらに基づいてピクチャーをデコードすることができる。本文書で後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコーディング手順によってデコードされ、前記ビットストリームから取得されてよい。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内情報をデコードし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピーデコーディング方法は、ビットストリームから各構文要素に該当するビン(bin)を受信し、デコーディング対象構文要素情報、周辺及びデコーディング対象ブロックのデコーディング情報、或いは以前段階でデコードされたシンボル/ビンの情報を用いて文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行い、各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後に、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を用いて文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコードされた情報のうち予測に関する情報は予測部330(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが行われたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されてよい。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出することができる。また、エントロピーデコーディング部310でデコードされた情報のうちフィルタリングに関する情報は、フィルタリング部350に提供されてよい。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されてよく、又は受信部はエントロピーデコーディング部310の構成要素であってよい。一方、本文書に係るデコーディング装置は、ビデオ/映像/ピクチャーデコーディング装置と呼ぶことができ、該デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャー情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャーサンプルデコーダ)に区別できる。前記情報デコーダは、前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332及びイントラ予測部331のうち少なくとも一つを含むことができる。
【0058】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を、2次元ブロックの形態で再整列できる。この場合、前記再整列は、エンコーディング装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0059】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得する。
【0060】
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか又はインター予測が適用されるかが決定でき、具体的なイントラ/インター予測モードを決定することができる。
【0061】
予測部320は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、一つのブロックに対する予測のためにイントラ予測又はインター予測を適用できる他に、イントラ予測とインター予測を同時に適用することもできる。これをCIIP(combined inter and intra prediction)モードと呼ぶことができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy,IBC)予測モードに基づいてもよく、又はパレットモード(palette mode)に基づいてもよい。前記IBC予測モード又はパレットモードは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像のコーディングのために用いられてよい。IBCは基本的に現在ピクチャー内で予測を行うが、現在ピクチャー内で参照ブロックを導出する点でインター予測と類似に行われてよい。すなわち、IBCは、本文書で説明されるインター予測手法のうち少なくとも一つを用いることができる。パレットモードは、イントラコーディング又はイントラ予測の一例と見なすことができる。パレットモードが適用される場合に、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/映像情報に含まれてシグナルされてよい。
【0062】
イントラ予測部331は、現在ピクチャー内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの周辺(neighbor)に位置してもよく、又は離れて位置してもよい。イントラ予測において、予測モードは複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部331は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0063】
インター予測部332は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロック間の動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャーインデックスを含むことができる。前記動き情報は、インター予測方向情報(L0予測、L1予測、Bi予測など)をさらに含むことができる。インター予測において、周辺ブロックは、現在ピクチャー内に存在する空間的周辺ブロック(spatial neighboring block)と、参照ピクチャーに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部332は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出することができる。様々な予測モードに基づいてインター予測が行われてよく、前記予測に関する情報は、前記現在ブロックに対するインター予測モードを指示する情報を含むことができる。
【0064】
加算部340は、取得されたレジデュアル信号を、予測部(インター予測部332及び/又はイントラ予測部331含む。)から出力された予測信号(予測ブロック、予測サンプルアレイ)に足すことにより、復元信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合に、予測されたブロックが復元ブロックとして用いられてよい。
【0065】
加算部340は、復元部又は復元ブロック生成部と呼ぶことができる。生成された復元信号は、現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてよく、後述するように、フィルタリングを経て出力されてもよく、又は次のピクチャーのインター予測のために用いられてもよい。
【0066】
一方、ピクチャーデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されてもよい。
【0067】
フィルタリング部350は、復元信号にフィルタリングを適用して、主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャーに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャーを生成でき、前記修正された復元ピクチャーを、メモリ360、具体的にメモリ360のDPBに伝送することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、両方向フィルター(bilateral filter)などを含むことができる。
【0068】
メモリ360のDPBに記憶された(修正された)復元ピクチャーは、インター予測部332で参照ピクチャーとして用いられてよい。メモリ360は、現在ピクチャー内の動き情報が導出された(又は、デコードされた)ブロックの動き情報、及び/又は既に復元されたピクチャー内のブロックの動き情報を記憶することができる。該記憶された動き情報は、空間的周辺ブロックの動き情報又は時間的周辺ブロックの動き情報として活用するためにインター予測部260に伝達できる。メモリ360は、現在ピクチャー内の復元されたブロックの復元サンプルを記憶でき、イントラ予測部331に伝達することができる。
【0069】
本明細書において、エンコーディング装置200のフィルタリング部260、インター予測部221及びイントラ予測部222で説明された実施例は、それぞれ、デコーディング装置300のフィルタリング部350、インター予測部332及びイントラ予測部331にも同一に又は対応するように適用されてよい。
【0070】
本文書において、量子化/逆量子化及び/又は変換/逆変換のうち少なくとも一つは省略されてよい。前記量子化/逆量子化が省略される場合に、前記量子化された変換係数は、変換係数と呼ぶことができる。前記変換/逆変換が省略される場合に、前記変換係数は、係数又はレジデュアル係数と呼ぶこともでき、又は表現の統一性のために変換係数と相変らず呼ぶこともできる。
【0071】
また、本文書において、量子化された変換係数及び変換係数はそれぞれ、変換係数及びスケーリングされた(scaled)変換係数と呼ぶことができる。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、前記変換係数に関する情報は、レジデュアルコーディングシンタックスによってシグナルされてよい。前記レジデュアル情報(又は、前記変換係数に関する情報)に基づいて変換係数が導出されてよく、前記変換係数に対する逆変換(スケーリング)によってスケーリングされた変換係数が導出されてよい。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されてよい。これは、本文書の他の部分でも、同一に適用/表現されてよい。
【0072】
上述の内容のように、エンコーディング装置は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコーディング方法を行うことができる。また、デコーディング装置は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内情報をデコードし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。
【0073】
例えば、上述したコーディング方法は、後述する内容のように行われてよい。
【0074】
図4には、シンタックスエレメント(syntax element)をエンコードするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。例えば、CABACの符号化過程では、エンコーディング装置は、入力信号が二進値でないシンタックスエレメントである場合には、前記入力信号の値を二進化(binarization)して入力信号を二進値として変換できる。また、前記入力信号が既に二進値である場合(すなわち、前記入力信号の値が二進値である場合)には、二進化が行われずにバイパス(bypass)されてよい。ここで、二進値を構成するそれぞれの二進数0又は1をビン(bin)と呼ぶことができる。例えば、二進化された後の二進ストリングが110である場合に、1、1、0のそれぞれを1つのビンと呼ぶ。1つのシンタックスエレメントに対する前記ビンは、前記シンタックスエレメントの値を示すことができる。
【0075】
その後、前記シンタックスエレメントの二進化されたビンは、正規(regular)符号化エンジン又はバイパス符号化エンジンに入力されてよい。エンコーディング装置の正規符号化エンジンは、当該ビンに対して確率値を反映するコンテクストモデル(context model)を割り当てることができ、割り当てられたコンテクストモデルに基づいて当該ビンをエンコードできる。エンコーディング装置の前記正規符号化エンジンは、各ビンに対するエンコーディングを行った後に当該ビンに対するコンテクストモデルを更新できる。上述の内容のようにエンコードされるビンは、文脈符号化ビン(context-coded bin)と称することができる。
【0076】
一方、前記シンタックスエレメントの二進化されたビンが前記バイパス符号化エンジンに入力される場合には、次のようにコードされてよい。例えば、エンコーディング装置のバイパス符号化エンジンは、入力されたビンに対して確率を推定する手順と、符号化後に前記ビンに適用した確率モデルを更新する手順を省略する。バイパスエンコーディングが適用される場合に、エンコーディング装置は、コンテクストモデルを割り当てる代わりに均一な確率分布を適用することにより、入力されるビンをエンコードでき、これにより、エンコーディング速度を向上させることができる。上述の内容のようにエンコードされるビンは、バイパスビン(bypass bin)と称することができる。
【0077】
エントロピーデコーディングは、上述したエントロピーエンコーディングにおける過程を逆順で行う過程を表すことができる。
【0078】
例えば、シンタックスエレメントがコンテクストモデルに基づいてデコードされる場合に、デコーディング装置は、ビットストリームによって前記シンタックスエレメントに該当するビンを受信することができ、前記シンタックスエレメントとデコーディング対象ブロック又は周辺ブロックのデコーディング情報或いは以前段階でデコードされたシンボル/ビンの情報を用いてコンテクストモデル(context model)を決定でき、決定されたコンテクストモデルによって前記受信したビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行い、前記シンタックスエレメントの値を導出することができる。その後、次にデコードされるビンのコンテクストモデルが前記決定されたコンテクストモデルにアップデートされてよい。
【0079】
また、例えば、シンタックスエレメントがバイパスデコードされる場合に、デコーディング装置は、ビットストリームを用いて前記シンタックスエレメントに該当するビンを受信でき、均一な確率分布を適用することによって、入力されるビンをデコードすることができる。この場合、デコーディング装置は、シンタックスエレメントのコンテクストモデルを導出する手順と、デコーディング後に前記ビンに適用したコンテクストモデルを更新する手順を省略することができる。
【0080】
上述したように、レジデュアルサンプルは、変換、量子化過程を経て量子化された変換係数として導出されてよい。量子化された変換係数は、変換係数と呼ぶこともできる。この場合、ブロック内変換係数はレジデュアル情報の形態でシグナルされてよい。前記レジデュアル情報は、レジデュアルコーディングシンタックスを含むことができる。すなわち、エンコーディング装置は、レジデュアル情報でレジデュアルコーディングシンタックスを構成し、これをエンコードしてビットストリームの形態で出力でき、デコーディング装置は、ビットストリームからレジデュアルコーディングシンタックスをデコードしてレジデュアル(量子化された)変換係数を導出することができる。前記レジデュアルコーディングシンタックスは、後述するように、当該ブロックに対して変換が適用された否か、ブロック内最後の有効変換係数の位置、サブブロック内有効変換係数が存在するか否か、有効変換係数のサイズ/符号などを示すシンタックスエレメント(syntax elements)を含むことができる。
【0081】
例えば、レジデュアルデータエンコーディング/デコーディングと関連したシンタックスエレメントは、次表のように表すことができる。
【0082】
【表1-1】
【0083】
【表1-2】
【0084】
【表1-3】
【0085】
transform_skip_flagは、関連しているブロック(associated block)に変換が省略されるか否かを示す。前記transform_skip_flagは、変換スキップフラグのシンタックスエレメントであってよい。前記関連したブロックは、CB(coding block)又はTB(Transform block)であってよい。変換(及び量子化)及びレジデュアルコーディング手順に関して、CBとTBは同じ意味で使われてよい。例えば、CBに対してレジデュアルサンプルが導出され、前記レジデュアルサンプルに対する変換及び量子化によって(量子化された)変換係数が導出され得ることは上述の通りであり、レジデュアルコーディング手順によって前記(量子化された)変換係数の位置、サイズ、符号などを効率的に示す情報(例えば、シンタックスエレメント)が生成され、シグナルされてよい。量子化された変換係数は、簡単に変換係数と呼ぶことができる。一般に、CBが最大TBよりも大きくない場合に、CBのサイズはTBのサイズと同一であってよく、この場合、変換(及び量子化)及びレジデュアルコードされる対象ブロックは、CB又はTBと呼ぶことができる。一方、CBが最大TBよりも大きい場合には、変換(及び量子化)及びレジデュアルコードされる対象ブロックをTBと呼ぶことができる。以下、レジデュアルコーディングに関連したシンタックス要素が変換ブロック(TB)単位でシグナルされるとして説明するが、これは例示であり、前記TBはコーディングブロック(CB)と同じ意味で使われてよいことは上述した通りである。
【0086】
一方、前記変換スキップフラグがシグナルされた後にシグナルされるシンタックスエレメントは、後述する表2及び/又は表3に開示されたシンタックスエレメントと同一であってよく、前記シンタックスエレメントに関する具体的な説明は、後述する通りである。
【0087】
【表2-1】
【0088】
【表2-2】
【0089】
【表2-3】
【0090】
【表2-4】
【0091】
【表2-5】
【0092】
【表2-6】
【0093】
【表3-1】
【0094】
【表3-2】
【0095】
【表3-3】
【0096】
本実施例によれば、表1に示すように、変換スキップフラグのシンタックスエレメントtransform_skip_flagの値によって、レジデュアルコーディングが分岐されてよい。すなわち、変換スキップフラグの値に基づいて(変換スキップであるか否かに基づいて)、レジデュアルコーディングのために互いに異なるシンタックスエレメントが用いられてよい。変換スキップが適用されない場合(すなわち、変換が適用された場合)に用いられるレジデュアルコーディングは、レギュラーレジデュアルコーディング(Regular Residual Coding,RRC)と呼ぶことができ、変換スキップが適用される場合(すなわち、変換が適用されていない場合)のレジデュアルコーディングは、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)と呼ぶことができる。また、前記レギュラーレジデュアルコーディングは、一般のレジデュアルコーディング(general residual coding)と呼ぶこともできる。また、前記レギュラーレジデュアルコーディングは、レギュラーレジデュアルコーディングシンタックス構造と呼ぶことができ、前記変換スキップレジデュアルコーディングは、変換スキップレジデュアルコーディングシンタックス構造と呼ぶことができる。前記表2は、transform_skip_flagの値が0の場合、すなわち、変換が適用された場合のレジデュアルコーディングのシンタックスエレメントを表すことができ、表3は、transform_skip_flagの値が1の場合、すなわち、変換が適用されていない場合のレジデュアルコーディングのシンタックスエレメントを表すことができる。
【0097】
具体的には、例えば、変換ブロックの変換をスキップするか否かを示す変換スキップフラグがパースされてよく、前記変換スキップフラグが1か否かが判断されてよい。前記変換スキップフラグの値が0である場合、表2に示すように、変換ブロックのレジデュアル係数に対するシンタックスエレメントlast_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、coeff_sign_flag及び/又はdec_abs_levelがパースされてよく、前記シンタックスエレメントに基づいて前記レジデュアル係数が導出されてよい。この場合、前記シンタックスエレメントは順次にパースされてもよく、パーシング順序が変更されてもよい。また、前記abs_level_gtx_flagは、abs_level_gt1_flag及び/又はabs_level_gt3_flagを表すことができる。例えば、abs_level_gtx_flag[n][0]は、第1変換係数レベルフラグ(abs_level_gt1_flag)の一例示であってよく、前記abs_level_gtx_flag[n][1]は、第2変換係数レベルフラグ(abs_level_gt3_flag)の一例示であってよい。
【0098】
上記表2を参照すると、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag、及び/又はdec_abs_levelがエンコード/デコードされてよい。一方、前記sb_coded_flagは、coded_sub_block_flagと表すこともできる。
【0099】
一実施例において、エンコーディング装置は、シンタックスエレメント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でない係数(non-zero coefficient)を表すことができる。また、前記スキャン順序は、右上向き対角スキャン順序であってよい。又は、前記スキャン順序は、水平スキャン順序、又は垂直スキャン順序であってよい。前記スキャン順序は、対象ブロック(CB、又はTBを含むCB)にイントラ/インター予測が適用されるか否か及び/又は具体的なイントラ/インター予測モードに基づいて決定されてよい。
【0100】
その後、エンコーディング装置は、前記変換ブロックを4x4サブブロック(sub-block)に分割した後、各4x4サブブロックごとに1ビットのシンタックス要素coded_sub_block_flagを用いて、現在サブブロック内に0でない係数が存在するか否かを示すことができる。
【0101】
coded_sub_block_flagの値が0であれば、それ以上伝送する情報がないので、エンコーディング装置は現在サブブロックに対する符号化過程を終了できる。逆に、coded_sub_block_flagの値が1であれば、エンコーディング装置は、sig_coeff_flagに対する符号化過程を引き続き行うことができる。最後の0でない係数を含むサブブロックは、coded_sub_block_flagに対する符号化が不要であり、変換ブロックのDC情報を含んでいるサブブロックは0でない係数を含む確率が高いので、coded_sub_block_flagは符号化されず、その値が1であると仮定されてよい。
【0102】
仮に、coded_sub_block_flagの値が1であることから、現在サブブロック内に0でない係数が存在すると判断されると、エンコーディング装置は、逆にスキャンされた順序によって、二進値を有するsig_coeff_flagをエンコードすることができる。エンコーディング装置は、スキャン順序によって、それぞれの変換係数に対する1ビットシンタックスエレメントsig_coeff_flagをエンコードすることができる。仮に現在スキャン位置での変換係数の値が0でなければ、sig_coeff_flagの値は1になり得る。ここで、最後の0でない係数を含んでいるサブブロックの場合、最後の0でない係数に対してはsig_coeff_flagがエンコードされる必要がないので、前記サブブロックに対する符号化過程が省略されてよい。sig_coeff_flagが1である場合にのみレベル情報符号化が行われてよく、レベル情報符号化過程には4個のシンタックスエレメントが用いられてよい。より具体的には、各sig_coeff_flag[xC][yC]は、現在TB内の各変換係数位置(xC,yC)における当該変換係数のレベル(値)が0でない(non-zero)か否かを示すことができる。一実施例において、前記sig_coeff_flagは、量子化された変換係数が0でない有効係数であるか否かを示す有効係数フラグのシンタックスエレメントの一例示に該当し得る。
【0103】
sig_coeff_flagに対する符号化後の残ったレベル値は、次式のように導出されてよい。すなわち、符号化しなければならないレベル値を示すシンタックス要素remAbsLevelは、次式のように導出されてよい。
【0104】
【数1】
【0105】
ここで、coeffは、実際変換係数値を意味する。
【0106】
また、abs_level_gt1_flagは、当該スキャニング位置(n)でのremAbsLevelが1よりも大きいか否かを示すことができる。例えば、abs_level_gt1_flagの値が0であれば、当該位置の変換係数の絶対値(absolute value)は1であってよい。また、前記abs_level_gt1_flagの値が1であれば、後で符号化しなければならないレベル値を示す前記remAbsLevelは、次の式のようにアップデートされてよい。
【0107】
【数2】
【0108】
また、上述の式2に記載されたremAbsLevelのleast significant coefficient(LSB)値は、par_level_flagによって次の式3のようにエンコードされてよい。
【0109】
【数3】
【0110】
ここで、par_level_flag[n]は、スキャニング位置nでの変換係数レベル(値)のパリティ(parity)を示すことができる。
【0111】
par_leve_flagエンコーディング後にエンコードしなければならない変換係数レベル値remAbsLevelは、次の式のようにアップデートされてよい。
【0112】
【数4】
【0113】
abs_level_gt3_flagは、当該スキャニング位置(n)でのremAbsLevelが3よりも大きいか否かを示すことができる。abs_level_gt3_flagが1である場合にのみ、abs_remainderに対するエンコーディングが行われてよい。実際変換係数値であるcoeffと各シンタックス要素との関係は、次の式の通りでよい。
【0114】
【数5】
【0115】
また、次の表は、上述の式5と関連した例示を表す。
【0116】
【表4】
【0117】
ここで、|coeff|は、変換係数レベル(値)を表し、変換係数に対するAbsLevelと表示されてもよい。また、各係数の符号は、1ビットシンボルであるcoeff_sign_flagを用いてエンコードされてよい。
【0118】
また、例えば、前記変換スキップフラグの値が1であれば、表3に示すように、変換ブロックのレジデュアル係数に対するシンタックスエレメントsb_coded_flag、sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag、par_level_flag及び/又はabs_remainderがパースされてよく、前記シンタックスエレメントに基づいて前記レジデュアル係数が導出されてよい。この場合、前記シンタックスエレメントは順次にパースされてもよく、パーシング順序が変更されてもよい。また、前記abs_level_gtx_flagは、abs_level_gt1_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag及び/又はabs_level_gt9_flagを表すことができる。例えば、abs_level_gtx_flag[n][j]は、スキャニング位置nで変換係数の絶対値又はレベル(値)が(j<<1)+1よりも大きいか否かを示すフラグであってよい。前記(j<<1)+1は、場合によって、第1臨界値、第2臨界値などの所定の臨界値に代替されてもよい。
【0119】
一方、CABACは、高い性能を提供するが、処理量(throughput)性能がよくないという短所がある。これは、CABACの正規符号化エンジンに起因するものであり、正規符号化(すなわち、CABACの正規符号化エンジンを用いたエンコーディング)は、以前ビン(bin)の符号化によってアップデートされた確率状態と範囲を用いるため、高いデータ依存性を示し、確率区間を読んで現在状態を判断することに長い時間がかかることがある。CABACの処理量問題は、文脈符号化ビン(context-coded bin)の数を制限することによって解決できる。例えば、上記表2のように、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagを表現するために用いられたビンの和が、当該ブロックのサイズによる個数に制限されてよい。また、例えば、上記表3のように、sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flagを表現するために用いられたビンの和が、当該ブロックのサイズによる個数に制限されてよい。一例として、当該ブロックが4x4サイズのブロックである場合に、前記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag又はsig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flagに対するビンの和は、32個(又は、例えば28個)に制限されてよく、当該ブロックが2x2サイズのブロックである場合に、前記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagに対するビンの和は、8個(又は、例えば7個)に制限されてよい。前記ビンの制限された個数は、remBinsPass1又はRemCcbsで示すことができる。又は、一例として、より高いCABAC処理量のために、コンテキスト符号化ビン(context coded bin)の個数がコーディング対象CGを含むブロック(CB又はTB)に対して制限されてよい。言い換えると、コンテキスト符号化ビンの個数がブロック(CB又はTB)単位で制限されてよい。例えば、現在ブロックのサイズが16x16であれば、現在CGに関係なく、現在ブロックに対するコンテキスト符号化ビンの個数が前記現在ブロックのピクセル個数の1.75倍、すなわち、448個に制限されてよい。
【0120】
この場合、エンコーディング装置は、文脈要素の符号化に、制限された個数の文脈符号化ビンを全て使用した場合は、残りの係数を、コンテクストコーディングを用いずに後述の前記係数に対する二進化方法によって二進化し、バイパスコーディングを行うことができる。言い換えると、例えば、4x4 CGに対してコードされたコンテクスト符号化ビン(context coded bin)の数が32(又は、例えば28)、又は2x2 CGに対してコードされたコンテクスト符号化ビンの数が8(又は、例えば7)になる場合には、それ以上コンテクスト符号化ビンにコードされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagはコードされなくてよく、直ちにdec_abs_levelにコードされてよい。又は、例えば、4x4ブロックに対してコードされたコンテクスト符号化ビン(context coded bin)の数が全体ブロックのピクセル個数の1.75倍、すなわち、28に制限される場合に、それ以上コンテクスト符号化ビンにコードされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagはコードされなくてよく、後述の表5のように直ちにdec_abs_levelにコードされてよい。
【0121】
【表5】
【0122】
dec_abs_levelに基づいて|coeff|値が導出されてよい。この場合、変換係数値である|coeff|は、次式のように導出されてよい。
【0123】
【数6】
【0124】
また、前記coeff_sign_flagは、当該スキャニング位置(n)での変換係数レベルの符号(sign)を示すことができる。すなわち、前記coeff_sign_flagは、当該スキャニング位置(n)での変換係数の符号(sign)を示すことができる。
【0125】
図5は、4x4ブロック内変換係数の例示を示す図である。
【0126】
図5の4x4ブロックは、量子化された係数の一例を表す。図5に示すブロックは、4x4変換ブロックであるか、又は8x8、16x16、32x32、64x64変換ブロックの4x4サブブロックであってよい。図5の4x4ブロックは、ルマブロック又はクロマブロックを表すことができる。
【0127】
一方、上述の内容のように、エンコーディング装置は、入力信号が二進値でないシンタックスエレメントである場合には、前記入力信号の値を二進化(binarization)して入力信号を二進値に変換できる。また、デコーディング装置は、前記シンタックスエレメントをデコードし、前記シンタックスエレメントの二進化された値(すなわち、二進化されたビン)を導出することができ、前記二進化された値を逆二進化して前記シンタックスエレメントの値を導出することができる。前記二進化過程は、後述するトランケイテッドライス(Truncated Rice,TR)二進化プロセス(binarization process)、k次Exp-Golomb(k-th order Exp-Golomb,EGk)二進化プロセス(binarization process)、k次リミテッドExp-Golomb(Limited k-th order Exp-Golomb,Limited EGk)、又は固定長(Fixed-length,FL)二進化プロセス(binarization process)などで行われてよい。また、逆二進化過程は、前記TR二進化プロセス、前記EGk二進化プロセス又は前記FL二進化プロセスに基づいて行われて前記シンタックスエレメントの値を導出する過程を表すことができる。
【0128】
例えば、前記TR二進化プロセスは次のように行われてよい。
【0129】
前記TR二進化プロセスの入力(input)は、TR二進化に対する要請とシンタックスエレメントに対するcMax及びcRiceParamであってよい。また、前記TR二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するTR二進化であってよい。
【0130】
具体的に、一例として、シンタックスエレメントに対する接尾辞(suffix)ビンストリングが存在する場合には、前記シンタックスエレメントに対するTRビンストリングは、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であってよく、前記接尾辞ビンストリングが存在しない場合には、前記シンタックスエレメントに対する前記TRビンストリングは前記接頭辞ビンストリングであってよい。例えば、前記接頭辞ビンストリングは後述のように導出されてよい。
【0131】
前記シンタックスエレメントに対する前記symbolValの接頭辞値(prefix value)は、次式のように導出されてよい。
【0132】
【数7】
【0133】
ここで、prefixValは、前記symbolValの接頭辞値を表すことができる。前記シンタックスエレメントの前記TRビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、後述のように導出されてよい。
【0134】
例えば、前記prefixValがcMax>>cRiceParamよりも小さな場合に、接頭辞ビンストリングは、binIdxによってインデクシングされる(indexed)長さprefixVal+1のビットストリング(bit string)であってよい。すなわち、前記prefixValがcMax>>cRiceParamよりも小さい場合に、前記接頭辞ビンストリングは、binIdxが示すprefixVal+1ビット数のビットストリングであってよい。prefixValよりも小さいbinIdxに対するビンは、1と同一であってよい。また、prefixValと同じbinIdxに対するビンは、0と同一であってよい。
【0135】
例えば、前記prefixValに対する単項二進化(unary binarization)で導出されるビンストリングは、次表の通りでよい。
【0136】
【表6】
【0137】
一方、前記prefixValがcMax>>cRiceParamよりも小さくない場合に、前記接頭辞ビンストリングは、長さがcMax>>cRiceParamであり、全てのビンが1であるビットストリングであってよい。
【0138】
また、cMaxがsymbolValよりも大きく、cRiceParamが0よりも大きい場合に、TRビンストリングの接尾辞ビンストリングが存在してよい。例えば、前記接尾辞ビンストリングは後述のように導出されてよい。
【0139】
前記シンタックスエレメントに対する前記symbolValの接尾辞値(suffix value)は、次式のように導出されてよい。
【0140】
【数8】
【0141】
ここで、suffixValは、前記symbolValの接尾辞値を表すことができる。
【0142】
TRビンストリングの接尾辞(すなわち、接尾辞ビンストリング)は、cMax値が(1<<cRiceParam)-1であるsuffixValに対するFL二進化プロセスに基づいて導出されてよい。
【0143】
一方、入力パラメータであるcRiceParamの値が0であれば、前記TR二進化は正確にトランケイテッド単項二進化(truncated unary binarization)であってよく、常にデコードされるシンタックスエレメントの可能な最大値と同じcMax値が用いられてよい。
【0144】
また、例えば、前記EGk二進化プロセスは、次のように行われてよい。ue(v)でコードされたシンタックスエレメントは、Exp-Golombコードされたシンタックスエレメントであってよい。
【0145】
一例として、0次Exp-Golomb(0-th order Exp-Golomb,EG0)二進化プロセスは、次のように行われてよい。
【0146】
前記シンタックスエレメントに対するパーシングプロセス(parsing process)は、ビットストリームの現在位置から始まって1番目のノンゼロ(non-zero)ビットを含むビットを読んで0のような先行ビット数を数えること(counting)から始まってよい。前記過程を次表のように表すことができる。
【0147】
【表7】
【0148】
また、変数codeNumは、次式のように導出されてよい。
【0149】
【数9】
【0150】
ここで、read_bits(leadingZeroBits)から返された値、すなわち、read_bits(leadingZeroBits)が示す値は、最初に記録された最も重要なビット(most significant bit)に対する符号なし整数(unsigned integer)の二進表現(binary representation)と解釈できる。
【0151】
ビットストリングを「接頭辞(prefix)」ビットと「接尾辞(suffix)」ビットとに分離したExp-Golombコードの構造は、次表のように表すことができる。
【0152】
【表8】
【0153】
「接頭辞」ビットは、leadingZeroBits計算のために上述の内容のようにパースされたビットであってよく、表8で、ビットストリングの0又は1で表示されてよい。すなわち、上記表8の0又は1で表示されたビットストリングは、接頭辞ビットストリングを表すことができる。「接尾辞」ビットは、codeNumの計算でパースされるビットであってよく、上記表8でxiで表示されてよい。すなわち、上記表8のxiで表示されたビットストリングは、接尾辞ビットストリングを表すことができる。ここで、iは、0からLeadingZeroBits-1の範囲の値であってよい。また、各xiは、0又は1と同一であってよい。
【0154】
前記codeNumに割り当てられるビットストリングは、次表の通りでよい。
【0155】
【表9】
【0156】
シンタックスエレメントのディスクリプタ(descriptor)がue(v)である場合に、すなわち、シンタックスエレメントがue(v)でコードされた場合に、前記シンタックスエレメントの値はcodeNumと同一であってよい。
【0157】
また、例えば、前記EGk二進化プロセスは次のように行われてよい。
【0158】
前記EGk二進化プロセスの入力(input)は、EGk二進化に対する要請であってよい。また、前記EGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するEGk二進化であってよい。
【0159】
symbolValに対するEGk二進化プロセスのビットストリングは、次のように導出されてよい。
【0160】
【表10】
【0161】
上記表10を参照すると、put(X)の各コール(each call)を用いて二進値Xをビンストリングの末尾に追加することができる。ここで、Xは0又は1であってよい。
【0162】
また、例えば、前記リミテッドEGk二進化プロセスは次のように行われてよい。
【0163】
前記リミテッドEGk二進化プロセスの入力(input)は、リミテッドEGk二進化に対する要請及びライスパラメータriceParam、最大値の二進対数を表す変数であるlog2TransformRange及び最大接頭辞拡張長を表す変数であるmaxPreExtLenであってよい。また、前記リミテッドEGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するリミテッドEGk二進化であってよい。
【0164】
symbolValに対するリミテッドEGk二進化プロセスのビットストリングは、次のように導出されてよい。
【0165】
【表11】
【0166】
また、例えば、前記FL二進化プロセスは次のように行われてよい。
【0167】
前記FL二進化プロセスの入力(input)は、FL二進化に対する要請及び前記シンタックスエレメントに対するcMaxであってよい。また、前記FL二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するFL二進化であってよい。
【0168】
FL二進化は、シンボル値symbolValの固定長であるビット数を有するビットストリングを用いて構成されてよい。ここで、前記固定長ビットは、符号ない整数ビットストリング(unsigned integer bit string)であってよい。すなわち、FL二進化によってシンボル値symbolValに対するビットストリングが導出されてよく、前記ビットストリングのビット長(すなわち、ビット数)は、固定長であってよい。
【0169】
例えば、前記固定長は、次式のように導出されてよい。
【0170】
【数10】
【0171】
FL二進化に対するビンのインデクシングは、最上位ビットから最下位ビットの順序で増加する値を使用する方式であってよい。例えば、前記最上位ビットと関連したビンインデックスは、binIdx=0であってよい。
【0172】
一方、例えば、前記レジデュアル情報のうちシンタックスエレメントabs_remainderに対する二進化プロセスは、次のように行われてよい。
【0173】
前記abs_remainderに対する二進化プロセスの入力は、シンタックスエレメントabs_remainder[n]の二進化に対する要請、色相成分(colour component)cIdx、ルマ位置(x0,y0)であってよい。前記ルマ位置(x0,y0)は、ピクチャーの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを示すことができる。
【0174】
前記abs_remainderに対する二進化プロセスの出力(output)は、前記abs_remainderの二進化(すなわち、前記abs_remainderの二進化されたビンストリング)であってよい。前記二進化プロセスによって前記abs_remainderに対する可用ビンストリングが導出されてよい。
【0175】
前記abs_remainder[n]に対するライスパラメータcRiceParamは、前記色相成分cIdx及びルマ位置(x0,y0)、現在係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数であるlog2TbWidth、及び変換ブロックの高さの二進対数であるlog2TbHeightを入力として行われるライスパラメータ導出過程によって導出されてよい。前記ライスパラメータ導出過程に関する具体的な説明は後述する。
【0176】
また、例えば、現在コードされるabs_remainder[n]に対するcMaxは、前記ライスパラメータcRiceParamに基づいて導出されてよい。前記cMaxは次式のように導出されてよい。
【0177】
【数11】
【0178】
一方、前記abs_remainderに対する二進化、すなわち、前記abs_remainderに対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であってよい。また、前記接尾辞ビンストリングが存在しない場合には、前記abs_remainderに対する前記ビンストリングは前記接頭辞ビンストリングであってよい。
【0179】
例えば、前記接頭辞ビンストリングは後述のように導出されてよい。
【0180】
前記abs_remainder[n]の接頭辞値(prefix value)prefixValは、次式のように導出されてよい。
【0181】
【数12】
【0182】
前記abs_remainder[n]の前記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、前記cMax及び前記cRiceParamを入力として用いる前記prefixValに対するTR二進化プロセスによって導出されてよい。
【0183】
前記接頭辞ビンストリングが、全てのビットが1であり、ビット長が6であるビットストリングと同一であれば、前記abs_remainder[n]の前記ビンストリングの接尾辞ビンストリングが存在してよく、後述のように導出されてよい。
【0184】
前記abs_remainder[n]に対するライスパラメータ導出過程は、次の通りでよい。
【0185】
前記ライスパラメータ導出過程の入力は、色相成分インデックス(colour component index)cIdx、ルマ位置(x0,y0)、現在係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth及び変換ブロックの高さの二進対数インlog2TbHeightであってよい。前記ルマ位置(x0,y0)は、ピクチャーの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを示すことができる。また、前記ライスパラメータ導出過程の出力は、前記ライスパラメータcRiceParamであってよい。
【0186】
例えば、与えられたコンポーネントインデックスcIdx、前記左上端ルマ位置(x0,y0)を有する変換ブロックに対する配列AbsLevel[x][y]に基づき、変数locSumAbsは、次の表に表された疑似コード(pseudo code)のように導出されてよい。
【0187】
【表12】
【0188】
その後、与えられた変数locSumAbsに基づき、前記ライスパラメータcRiceParamは、次表のように導出されてよい。
【0189】
【表13】
【0190】
また、例えば、abs_remainder[n]に対するライスパラメータ導出過程においてbaseLevelは4に設定されてよい。
【0191】
又は、例えば、現在ブロックの変換をスキップするか否かに基づいて前記ライスパラメータcRiceParamが決定されてよい。すなわち、現在CGを含む現在TBに対し変換が適用されない場合に、言い換えると、前記現在CGを含む前記現在TBに対して変換スキップ(transform skip)が適用される場合に、前記ライスパラメータcRiceParamは1と導出されてよい。
【0192】
また、前記abs_remainderの接尾辞値(suffix value)suffixValは、次式のように導出されてよい。
【0193】
【数13】
【0194】
前記abs_remainderの前記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、riceParamはcRiceParamに設定され、log2TransformRangeは15に設定され、maxPreExtLenは11に設定される前記suffixValに対するリミテッドEGk二進化プロセスによって導出されてよい。
【0195】
一方、例えば、前記レジデュアル情報のうちシンタックスエレメントdec_abs_levelに対する二進化プロセスは、次のように行われてよい。
【0196】
前記dec_abs_levelに対する二進化プロセスの入力は、シンタックスエレメントdec_abs_level[n]の二進化に対する要請、色相成分(colour component)cIdx、ルマ位置(x0,y0)、現在係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth及び変換ブロックの高さの二進対数であるlog2TbHeightであってよい。前記ルマ位置(x0,y0)は、ピクチャーの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを示すことができる。
【0197】
前記dec_abs_levelに対する二進化プロセスの出力(output)は、前記dec_abs_levelの二進化(すなわち、前記dec_abs_levelの二進化されたビンストリング)であってよい。前記二進化プロセスによって前記dec_abs_levelに対する可用ビンストリングが導出されてよい。
【0198】
前記dec_abs_level[n]に対するライスパラメータcRiceParamは、前記色相成分cIdx及びルマ位置(x0,y0)、現在係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数であるlog2TbWidth及び変換ブロックの高さの二進対数であるlog2TbHeightを入力として行われるライスパラメータ導出過程によって導出されてよい。前記ライスパラメータ導出過程に関する具体的な説明は後述する。
【0199】
また、例えば、前記dec_abs_level[n]に対するcMaxは、前記ライスパラメータcRiceParamに基づいて導出されてよい。前記cMaxは次式のように導出されてよい。
【0200】
【数14】
【0201】
一方、前記dec_abs_level[n]に対する二進化、すなわち、前記dec_abs_level[n]に対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であってよい。また、前記接尾辞ビンストリングが存在しない場合には、前記dec_abs_level[n]に対する前記ビンストリングは前記接頭辞ビンストリングであってよい。
【0202】
例えば、前記接頭辞ビンストリングは後述のように導出されてよい。
【0203】
前記dec_abs_level[n]の接頭辞値(prefix value)prefixValは、次式のように導出されてよい。
【0204】
【数15】
【0205】
前記dec_abs_level[n]の前記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、前記cMax及び前記cRiceParamを入力として用いる前記prefixValに対するTR二進化プロセスによって導出されてよい。
【0206】
前記接頭辞ビンストリングが、全てのビットが1であり、ビット長が6であるビットストリングと同一であれば、前記dec_abs_level[n]の前記ビンストリングの接尾辞ビンストリングが存在してよく、後述のように導出されてよい。
【0207】
前記dec_abs_level[n]に対するライスパラメータ導出過程は、次の通りでよい。
【0208】
前記ライスパラメータ導出過程の入力は、色相成分インデックス(colour component index)cIdx、ルマ位置(x0,y0)、現在係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth及び変換ブロックの高さの二進対数インlog2TbHeightであってよい。前記ルマ位置(x0,y0)は、ピクチャーの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを示すことができる。また、前記ライスパラメータ導出過程の出力は、前記ライスパラメータcRiceParamであってよい。
【0209】
例えば、与えられたコンポーネントインデックスcIdx、前記左上端ルマ位置(x0,y0)を有する変換ブロックに対する配列AbsLevel[x][y]に基づき、変数locSumAbsは、次の表に表された疑似コード(pseudo code)のように導出されてよい。
【0210】
【表14】
【0211】
その後、与えられた変数locSumAbsに基づき、前記ライスパラメータcRiceParamは次表のように導出されてよい。
【0212】
【表15】
【0213】
また、例えば、dec_abs_level[n]に対するライスパラメータ導出過程において、baseLevelは0に設定されてよく、前記ZeroPos[n]は次の数式のように導出されてよい。
【0214】
【数16】
【0215】
また、前記dec_abs_level[n]の接尾辞値(suffix value)suffixValは、次式のように導出されてよい。
【0216】
【数17】
【0217】
前記dec_abs_level[n]の前記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、truncSuffixLenは15に設定され、maxPreExtLenは11に設定される前記suffixValに対するリミテッドEGk二進化プロセスによって導出されてよい。
【0218】
一方、上述したRRCとTSRCは、次のような相違を有し得る。
【0219】
- 例えば、TSRCにおいて、シンタックスエレメントabs_remainder[]に対するライスパラメータは1と導出されてよい。RRCにおいて、シンタックスエレメントabs_remainder[]のライスパラメータcRiceParamは、上述の内容のように、前記lastAbsRemainder及び前記lastRiceParamに基づいて導出されてよいが、TSRCにおけるシンタックスエレメントabs_remainder[]のライスパラメータcRiceParamは、1と導出されてよい。すなわち、例えば、現在ブロック(例えば、現在TB)に対して変換スキップ(transform skip)が適用される場合に、前記現在ブロックに対するTSRCのabs_remainder[]に対するライスパラメータcRiceParamは1と導出されてよい。
【0220】
- また、例えば、表3及び表4を参照すると、RRCではabs_level_gtx_flag[n][0]及び/又はabs_level_gtx_flag[n][1]がシグナルされてよいが、TSRCではabs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]及びabs_level_gtx_flag[n][4]KAシグナルされてよい。ここで、前記abs_level_gtx_flag[n][0]は、abs_level_gt1_flag又は第1係数レベルフラグとして表すことができ、前記abs_level_gtx_flag[n][1]は、abs_level_gt3_flag又は第2係数レベルフラグとして表すことができ、前記abs_level_gtx_flag[n][2]は、abs_level_gt5_flag又は第3係数レベルフラグとして表すことができ、前記abs_level_gtx_flag[n][3]は、abs_level_gt7_flag又は第4係数レベルフラグとして表すことができ、前記abs_level_gtx_flag[n][4]は、abs_level_gt9_flag又は第5係数レベルフラグとして表すことができる。具体的には、前記第1係数レベルフラグは、係数レベルが第1臨界値(例えば、1)よりも大きいか否かに対するフラグ、前記第2係数レベルフラグは、係数レベルが第2臨界値(例えば、3)よりも大きいか否かに対するフラグ、前記第3係数レベルフラグは、係数レベルが第3臨界値(例えば、5)よりも大きいか否かに対するフラグ、前記第4係数レベルフラグは、係数レベルが第4臨界値(例えば、7)よりも大きいか否かに対するフラグ、前記第5係数レベルフラグは、係数レベルが第5臨界値(例えば、9)よりも大きいか否かに対するフラグであってよい。上述の内容のように、TSRCはRRCと比較して、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]に加えて、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]及びabs_level_gtx_flag[n][4]をさらに含むことができる。
【0221】
- また、例えば、RRCにおいてシンタックスエレメントcoeff_sign_flagはバイパスコードされてよいが、TSRCでは、シンタックスエレメントcoeff_sign_flagはバイパスコーディング又はコンテクストコードされてよい。
【0222】
また、レジデュアルサンプルの量子化過程に対して従属量子化(dependent quantization)を提案できる。従属量子化は、現在変換係数に対して許容される復元値セットが復元順序おいて現在変換係数よりも先行する変換係数の値(変換係数レベルの値)に依存する方式を表すことができる。すなわち、例えば、従属量子化(dependent quantization)は、(a)復元レベルが異なる2つのスカラー量子化器(scalar quantizer)を定義し、(b)これらのスカラー量子化器の間を転換するためのプロセスを定義することによって実現できる。前記従属量子化は、既存の独立スカラー量子化と比較して、許容される復元ベクトルがN次元ベクトル空間においてより密集する効果を有し得る。ここで、前記Nは変換ブロックの変換係数の数を表すことができる。
【0223】
図6には、従属量子化で用いられるスカラー量子化器を例示する。図6を参照すると、可用の復元レベルの位置は、量子化ステップサイズ△と指定されてよい。図6を参照すると、スカラー量子化器はQ0及びQ1と表すことができる。用いられるスカラー量子化器は、ビットストリームで明示的にシグナルされず、導出されてよい。例えば、現在変換係数に用いられる量子化器は、コーディング/復元順序において現在変換係数に先行する変換係数レベルのパリティによって決定されてよい。
【0224】
図7には、従属量子化のためのステート転換(state transition)及び量子化器選択を例示する。
【0225】
図7を参照すると、2つのスカラー量子化器(Q0及びQ1)間の転換は、4個の状態を持つ状態マシーン(state machine)によって実現されてよい。4つの状態は、4つの異なる値(0,1,2,3)を有することができる。コーディング/復元順序において現在変換係数以前の変換係数レベルのパリティによって現在変換係数に対する状態が決定されてよい。
【0226】
例えば、変換ブロックに対する逆量子化過程が始まる場合に、従属量子化のための状態は0に設定されてよい。その後、前記変換ブロックに対する変換係数は、スキャン順序(すなわち、エントロピーデコードされたのと同じ順序)で復元されてよい。例えば、現在変換係数が復元された後に、図7に示すように従属量子化のための状態がアップデートされてよい。前記スキャン順序において現在変換係数が復元された後に復元される変換係数に対する逆量子化過程は、アップデートされた状態に基づいて行われてよい。図7に示すkは、変換係数の値、すなわち、変換係数レベル値を表すことができる。例えば、現在状態が0である場合に、k(現在変換係数の値)&1が0であれば、状態は0にアップデートされてよく、k&1が1であれば、状態は2にアップデートされてよい。また、例えば、現在状態が1である場合に、k&1が0であれば、状態は2にアップデートされてよく、k&1が1であれば、状態は0にアップデートされてよい。また、例えば、現在状態が2である場合に、k&1が0であれば、状態は1にアップデートされてよく、k&1が1であれば、状態は3にアップデートされてよい。また、例えば、現在状態が3である場合に、k&1が0であれば、状態は3にアップデートされてよく、k&1が1であれば、状態は1にアップデートされてよい。図7を参照すると、状態が0及び1のいずれか一つである場合に、逆量子化過程に用いられるスカラー量子化器はQ0であってよく、状態が2及び3のいずれか一つである場合に、逆量子化過程に用いられるスカラー量子化器はQ1であってよい。変換係数は、現在状態に対するスカラー量子化器において変換係数の復元レベルに対する量子化パラメータに基づいて逆量子化されてよい。
【0227】
一方、本文書は、レジデュアルデータコーディングと関連した実施例を提案する。本文書で説明される実施例は互いに組み合わせられてもよい。上述したように、レジデュアルデータコーディング方法は、レギュラーレジデュアルコーディング(Regular Residual Coding,RRC)と変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)を含むことができる。
【0228】
上述した2つの方法のうち、現在ブロックに対するレジデュアルデータコーディング方法は、表1に示すように、transform_skip_flagとsh_ts_residual_coding_disabled_flagの値に基づいて決定されてよい。ここで、シンタックスエレメントsh_ts_residual_coding_disabled_flagは、前記TSRCが可用であるか否かを示すことができる。したがって、前記transform_skip_flagが、変換スキップされることを示す場合にも、sh_ts_residual_coding_disabled_flagが前記TSRCが可用でないことを示すと、変換スキップブロックに対してRRCによるシンタックスエレメントがシグナルされてよい。すなわち、transform_skip_flagの値が0であるか、sh_ts_residual_coding_disabled_flagの値が1である場合に、RRCが用いられてよく、その他の場合にはTSRCが用いられてよい。
【0229】
前記slice_ts_residual_coding_disabled_flagを用いて特定応用(例えば、無損失コーディングなど)において高いコーディング効率を得ることができるが、既存のビデオ/映像コーディング標準では、上述した従属量子化(dependent quantization)と前記slice_ts_residual_coding_disabled_flagが共に用いられる場合に対する制約が提案されていない。すなわち、ハイレベル(例えば、SPS(sequence parameter set)シンタックス/VPS(video parameter set)シンタックス/DPS(Decoding parameter set)シンタックス/ピクチャーヘッダーシンタックス(picture header syntax)/スライスヘッダーシンタックス(slice header syntax)など)又はローレベル(CU/TU)において従属量子化が活性化され、前記slice_ts_residual_coding_disabled_flagが1である場合に、RRCにおける従属量子化の状態(state)に依存する値が不要な動作(すなわち、従属量子化による動作)をすることにより、コーディング性能が低下したり、エンコーディング装置での誤った設定によって意図せぬコーディング性能損失が起きたりすることがある。このため、本実施例では、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合のレジデュアルコーディング(すなわち、現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCでコーディング)が共に用いられ、意図せぬコーディング損失を招いたり誤動作したりすることを防止するために両技術間の従属性/制約を設定する方案を提案する。
【0230】
本文書は、一実施例として、slice_ts_residual_coding_disabled_flagがph_dep_quant_enabled_flagに従属する方法を提案する。例えば、本実施例で提案するシンタックスエレメントは、次表の通りでよい。
【0231】
【表16】
【0232】
本実施例によれば、前記slice_ts_residual_coding_disabled_flagは、前記ph_dep_quant_enabled_flagの値が0である場合にシグナルされてよい。ここで、前記ph_dep_quant_enabled_flagは、従属量子化が可用であるか否かを示すことができる。例えば、前記ph_dep_quant_enabled_flagの値が1である場合に、前記ph_dep_quant_enabled_flagは、従属量子化が可用であることを示すことができ、前記ph_dep_quant_enabled_flagの値が0である場合に、前記ph_dep_quant_enabled_flagは、従属量子化が可用でないことを示すことができる。
【0233】
したがって、本実施例によれば、前記従属量子化が可用でない場合にのみslice_ts_residual_coding_disabled_flagがシグナルされてよく、前記従属量子化が可用であり、前記slice_ts_residual_coding_disabled_flagがシグナルされない場合には、前記slice_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。一方、前記ph_dep_quant_enabled_flag及び前記slice_ts_residual_coding_disabled_flagは、ピクチャーヘッダーシンタックス及び/又はスライスヘッダーシンタックスでシグナルされてよく、又はピクチャーヘッダーシンタックス及びスライスヘッダーシンタックス以外の他のハイレベルシンタックス(High Level Syntax,HLS)(例えば、SPSシンタックス/VPSシンタックス/DPSシンタックスなど)又はローレベル(CU/TU)でシグナルされてもよい。前記ph_dep_quant_enabled_flagが前記ピクチャーヘッダーシンタックス以外のシンタックスでシグナルされる場合には別の名称とされてよい。例えば、前記ph_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flag又はsps_dep_quant_enabled_flagと表すこともできる。
【0234】
また、本文書は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合のレジデュアルコーディング(すなわち、現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCでコーディング)間の従属性/制約を設定する他の実施例を提案する。例えば、本実施例は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合のレジデュアルコーディング(すなわち、現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCでコーディング)が共に用いられ、意図せぬコーディング損失を招いたり誤動作したりすることを防止するために、slice_ts_residual_coding_disabled_flagの値が1である場合に、変換係数のレベル値のコーディングにおいて前記従属量子化の状態(state)が用いられないようにする方案を提案する。本実施例によるレジデュアルコーディングシンタックスは、次表の通りでよい。
【0235】
【表17-1】
【0236】
【表17-2】
【0237】
【表17-3】
【0238】
【表17-4】
【0239】
【表17-5】
【0240】
【表17-6】
【0241】
上述した表17を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合に、QStateが導出されてよく、前記QStateに基づいて変換係数の値(変換係数レベル)が導出されてよい。例えば、表17を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>11:0))*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであり、(QState>1?1:0)は、状態QStateの値が1より大きければ、すなわち、状態QStateの値が2又は3であれば1、状態QStateの値が1以下であれば、すなわち、状態QStateの値が0又は1であれば0、を表すことができる。
【0242】
また、上述した表17を参照すると、slice_ts_residual_coding_disabled_flagの値が1である場合に、変換係数の値(変換係数レベル)は、前記QStateを用いずに導出されてよい。例えば、表17を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであってよい。
【0243】
また、本実施例によれば、slice_ts_residual_coding_disabled_flagの値が1である場合に、変換係数のレベル値のコーディングにおいて前記従属量子化の状態(state)が用いられず、前記状態アップデートも行われなくてよい。例えば、本実施例によるレジデュアルコーディングシンタックスは、次表の通りでよい。
【0244】
【表18-1】
【0245】
【表18-2】
【0246】
【表18-3】
【0247】
【表18-4】
【0248】
【表18-5】
【0249】
【表18-6】
【0250】
上述した表18を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合に、QStateがアップデートされてよい。例えば、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合に、QStateはQStateTransTable[QState][AbsLevelPass1[xC][yC]&1]又はQStateTransTable[QState][AbsLevel[xC][yC]&1]とアップデートされてよい。また、slice_ts_residual_coding_disabled_flagの値が1である場合に、QStateをアップデートする過程は行われなくてよい。
【0251】
また、上述した表18を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合に、前記QStateに基づいて変換係数の値(変換係数レベル)が導出されてよい。例えば、表18を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>11:0))*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであり、(QState>1?1:0)は、状態QStateの値が1より大きければ、すなわち、状態QStateの値が2又は3であれば、1、状態QStateの値が1以下であれば、すなわち、状態QStateの値が0又は1であれば0、を表すことができる。
【0252】
また、上述した表18を参照すると、slice_ts_residual_coding_disabled_flagの値が1である場合に、変換係数の値(変換係数レベル)は、前記QStateを用いずに導出されてよい。例えば、表18を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであってよい。
【0253】
また、本文書は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合のレジデュアルコーディング(すなわち、現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCでコーディング)間の従属性/制約を設定する他の実施例を提案する。例えば、本実施例は、RRCにおける従属量子化の状態(state)アップデート又は状態に依存して変換係数の値(変換係数レベル)を導出する過程にtransform_skip_flagを用いた制約を追加する方案を提案する。すなわち、本実施例は、前記transform_skip_flagに基づいてRRCにおける従属量子化の状態(state)アップデート及び/又は状態に依存して変換係数の値(変換係数レベル)を導出する過程が用いられないようにする方案を提案する。本実施例によるレジデュアルコーディングシンタックスは、次表の通りでよい。
【0254】
【表19-1】
【0255】
【表19-2】
【0256】
【表19-3】
【0257】
【表19-4】
【0258】
【表19-5】
【0259】
【表19-6】
【0260】
上述した表19を参照すると、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合に、QStateがアップデートされてよい。例えば、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合に、QStateは、QStateTransTable[QState][AbsLevelPass1[xC][yC]&1]又はQStateTransTable[QState][AbsLevel[xC][yC]&1]とアップデートされてよい。また、transform_skip_flagの値が1である場合に、QStateをアップデートする過程は行われなくてよい。
【0261】
また、上述した表19を参照すると、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合に、QStateが導出されてよく、前記QStateに基づいて変換係数の値(変換係数レベル)が導出されてよい。例えば、表19を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであり、(QState>1?1:0)は、状態QStateの値が1より大きければ、すなわち、状態QStateの値が2又は3であれば1、状態QStateの値が1以下であれば、すなわち、状態QStateの値が0又は1であれば0、を表すことができる。
【0262】
また、上述した表19を参照すると、transform_skip_flagの値が1である場合に、変換係数の値(変換係数レベル)は、前記QStateを用いずに導出されてよい。したがって、変換スキップブロックに対してRRCによるレジデュアルデータがコードされる場合には、Qstateを用いずに変換係数の値が導出されてよい。例えば、表19を参照すると、前記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])と導出されてよい。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり、coeff_sign_flag[n]は、変換係数の符号(sign)を示す符号フラグのシンタックスエレメントであってよい。
【0263】
また、本文書は、上述したシンタックスエレメントsh_ts_residual_coding_disabled_flagのシグナリングと関連した様々な実施例を提案する。
【0264】
例えば、上述したように、sh_ts_residual_coding_disabled_flagは、TSRCが可用でないか否かを定義するシンタックスエレメントであるので、変換スキップブロックが用いられない場合にはシグナルされなくてもよい。すなわち、変換スキップブロックの用いられる否かに対するシンタックスエレメントが、変換スキップブロックが用いられることを示す場合にのみ、前記sh_ts_residual_coding_disabled_flagをシグナルすることが有意味であり得る。
【0265】
そこで、本文書は、sps_transform_skip_enabled_flagが1である場合にのみsh_ts_residual_coding_disabled_flagをシグナルする実施例を提案する。本実施例によるシンタックスは、次表のようである。
【0266】
【表20】
【0267】
表20を参照すると、sps_transform_skip_enabled_flagが1である場合に、sh_ts_residual_coding_disabled_flagがシグナルされてよく、sps_transform_skip_enabled_flagが0である場合に、sh_ts_residual_coding_disabled_flagがシグナルされなくてよい。ここで、例えば、前記sps_transform_skip_enabled_flagは、変換スキップブロックが用いられるか否かを示すことができる。すなわち、例えば、前記sps_transform_skip_enabled_flagは、変換スキップが可用であるか否かを示すことができる。例えば、前記sps_transform_skip_enabled_flagの値が1である場合に、前記sps_transform_skip_enabled_flagは、変換ユニットシンタックス(transform unit syntax)に変換スキップフラグ(transform_skip_flag)が存在し得ることを示すことができ、前記sps_transform_skip_enabled_flagの値が0である場合に、前記sps_transform_skip_enabled_flagは、変換ユニットシンタックスに変換スキップフラグが存在しないことを示すことができる。一方、sh_ts_residual_coding_disabled_flagがシグナルされない場合に、sh_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。また、上述したsps_transform_skip_enabled_flagはSPSでシグナルされてよく、又はSPS以外の他のハイレベルシンタックス(VPS、PPS、ピクチャーヘッダーシンタックス、スライスヘッダーシンタックスなど)又はローレベルシンタックス(スライスデータシンタックス(slice data syntax)、コーディングユニットシンタックス(coding unit syntax)、変換ユニットシンタックス(tansform unit syntax)など)でシグナルされてよい。また、slice_ts_residual_coding_disabled_flagよりも先行してシグナルされてよい。
【0268】
また、本文書は、sh_ts_residual_coding_disabled_flagのシグナリングと関連して上述した実施例を組み合わせた実施例を提案する。例えば、次表のようにsh_ts_residual_coding_disabled_flagをシグナルする実施例が提案されてよい。
【0269】
【表21】
【0270】
表21を参照すると、sps_transform_skip_enabled_flagが1であるか又はph_dep_quant_enabled_flagが0である場合に、sh_ts_residual_coding_disabled_flagがシグナルされてよく、それ以外の場合には、sh_ts_residual_coding_disabled_flagがシグナルされなくてよい。一方、sh_ts_residual_coding_disabled_flagがシグナルされない場合に、sh_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0271】
又は、例えば、次表のようにsh_ts_residual_coding_disabled_flagをシグナルする実施例が提案されてよい。
【0272】
【表22】
【0273】
表22を参照すると、sh_ts_residual_coding_disabled_flagは、ピクチャーヘッダー(picture header)でシグナルされてよい。前記sh_ts_residual_coding_disabled_flagは、ph_ts_residual_coding_disabled_flagと表すことができる。また、表22を参照すると、ph_dep_quant_enabled_flagは、ピクチャーヘッダー(picture header)でシグナルされてよい。
【0274】
例えば、表22を参照すると、ph_dep_quant_enabled_flagが0であり、sps_transform_skip_enabled_flagが1である場合に、ph_ts_residual_coding_disabled_flagがシグナルされてよく、それ以外の場合には、ph_ts_residual_coding_disabled_flagがシグナルされなくてよい。一方、ph_ts_residual_coding_disabled_flagがシグナルされない場合に、ph_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0275】
一方、本文書の実施例で記述したシンタックスエレメントと関連して、既存のビデオ/映像コーディング標準では、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記sh_ts_residual_coding_disabled_flagは、スライスヘッダーシンタックスでシグナルされてよい。これと関連して、本文書は、両シンタックスエレメントを同一のハイレベルシンタックス又はローレベルシンタックスでシグナルする実施例を提案する。
【0276】
例えば、前記ph_dep_quant_enabled_flag及び前記sh_ts_residual_coding_disabled_flagの両方ともピクチャーヘッダーシンタックスでシグナルされる実施例が提案されてよい。この場合、前記sh_ts_residual_coding_disabled_flagは、ph_ts_residual_coding_disabled_flagと呼ぶことができる。
【0277】
又は、例えば、前記ph_dep_quant_enabled_flag及び前記sh_ts_residual_coding_disabled_flagの両方ともスライスヘッダーシンタックスでシグナルされる実施例が提案されてよい。この場合、前記ph_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flag又はslice_dep_quant_enabled_flagなどと呼ぶことができる。
【0278】
又は、例えば、ph_dep_quant_enabled_flagとph_ts_residual_coding_disabled_flagの両方が同一のHLSでシグナルされるが、前記ph_ts_residual_coding_disabled_flagは、前記ph_dep_quant_enabled_flagの値が0である場合にのみシグナルされる実施例が提案されてよい。例えば、前記ph_dep_quant_enabled_flag及び前記ph_ts_residual_coding_disabled_flagがいずれもピクチャーヘッダーシンタックスでシグナルされる例は、次表の通りでよい。
【0279】
【表23】
【0280】
表23を参照すると、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_dep_quant_enabled_flagの値が0である場合に、前記ph_ts_residual_coding_disabled_flagはピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_dep_quant_enabled_flagの値が1である場合に、前記ph_ts_residual_coding_disabled_flagはシグナルされなくてよい。例えば、前記ph_ts_residual_coding_disabled_flagがシグナルされない場合に、前記ph_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0281】
一方、上述した実施例一例として、前記ph_dep_quant_enabled_flag及び前記ph_ts_residual_coding_disabled_flagがピクチャーヘッダーシンタックス以外の他のハイレベルシンタックス(VPS、SPS、PPS、スライスヘッダーシンタックスなど)又はローレベルシンタックス(スライスデータシンタックス、コーディングユニットシンタックス、変換ユニットシンタックスなど)でシグナルされる例が提案されてよい。
【0282】
また、例えば、ph_ts_residual_coding_disabled_flagとph_dep_quant_enabled_flagの両方が同一のHLSでシグナルされるが、前記ph_dep_quant_enabled_flagは、前記ph_ts_residual_coding_disabled_flagの値が0である場合にのみシグナルされる実施例が提案されてよい。
【0283】
【表24】
【0284】
表24を参照すると、前記ph_ts_residual_coding_disabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_ts_residual_coding_disabled_flagの値が0である場合に、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_ts_residual_coding_disabled_flagの値が1である場合に、前記ph_dep_quant_enabled_flagはシグナルされなくてよい。例えば、前記ph_dep_quant_enabled_flagがシグナルされない場合に、前記ph_dep_quant_enabled_flagは0と見なされてよい(infer)。
【0285】
一方、上述した実施例は、一例として、前記ph_ts_residual_coding_disabled_flag及び前記ph_dep_quant_enabled_flagがピクチャーヘッダーシンタックス以外の他のハイレベルシンタックス(VPS、SPS、PPS、スライスヘッダーシンタックスなど)又はローレベルシンタックス(スライスデータシンタックス、コーディングユニットシンタックス、変換ユニットシンタックスなど)でシグナルされる例が提案されてよい。
【0286】
また、例えば、上述した実施例を組み合わせた実施例が提案されてよい。例えば、ph_dep_quant_enabled_flagとph_ts_residual_coding_disabled_flagの両方が同一のHLSでシグナルされるが、前記ph_ts_residual_coding_disabled_flagは、前記ph_dep_quant_enabled_flagの値が0であるか又はsps_transform_skip_enabled_flagの値が1である場合にのみシグナルされる実施例が提案されてよい。
【0287】
【表25】
【0288】
表25を参照すると、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_dep_quant_enabled_flagの値が0であるか又は前記sps_transform_skip_enabled_flagの値が1である場合に、前記ph_ts_residual_coding_disabled_flagはピクチャーヘッダーシンタックスでシグナルされてよく、それ以外の場合には、前記ph_ts_residual_coding_disabled_flagはシグナルされなくてよい。ここで、例えば、前記sps_transform_skip_enabled_flagは、変換スキップブロックが用いられるか否かを示すことができる。すなわち、例えば、前記sps_transform_skip_enabled_flagは、変換スキップが可用であるか否かを示すことができる。例えば、前記sps_transform_skip_enabled_flagの値が1である場合に、前記sps_transform_skip_enabled_flagは、変換ユニットシンタックス(transform unit syntax)に変換スキップフラグ(transform_skip_flag)が存在し得ることを示すことができ、前記sps_transform_skip_enabled_flagの値が0である場合に、前記sps_transform_skip_enabled_flagは、変換ユニットシンタックスに変換スキップフラグが存在しないことを示すことができる。例えば、前記ph_ts_residual_coding_disabled_flagがシグナルされない場合に、前記ph_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0289】
また、例えば、ph_dep_quant_enabled_flagとph_ts_residual_coding_disabled_flagの両方が同一のHLS(例えば、スライスヘッダーシンタックスなど)でシグナルされるが、前記ph_ts_residual_coding_disabled_flagは、前記ph_dep_quant_enabled_flagの値が0であり、sps_transform_skip_enabled_flagの値が1である場合にのみシグナルされる実施例が提案されてよい。
【0290】
【表26】
【0291】
表26を参照すると、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_dep_quant_enabled_flagの値が0であり、前記sps_transform_skip_enabled_flagの値が1である場合に、前記ph_ts_residual_coding_disabled_flagはピクチャーヘッダーシンタックスでシグナルされてよく、それ以外の場合には、前記ph_ts_residual_coding_disabled_flagはシグナルされなくてよい。例えば、前記ph_ts_residual_coding_disabled_flagがシグナルされない場合に、前記ph_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0292】
また、例えば、ph_dep_quant_enabled_flagとph_ts_residual_coding_disabled_flagの両方が同一のHLSでシグナルされるが、前記ph_ts_residual_coding_disabled_flagは、前記sps_transform_skip_enabled_flagの値が1である場合にのみシグナルされ、前記ph_dep_quant_enabled_flagは、前記ph_ts_residual_coding_disabled_flagの値が0である場合にのみシグナルされる実施例が提案されてよい。
【0293】
【表27】
【0294】
表27を参照すると、前記sps_transform_skip_enabled_flagの値が1である場合に、前記ph_ts_residual_coding_disabled_flagはピクチャーヘッダーシンタックスでシグナルされてよく、前記ph_ts_residual_coding_disabled_flagの値が0である場合に、前記ph_dep_quant_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよい。例えば、前記sps_transform_skip_enabled_flagの値が0である場合に、前記ph_ts_residual_coding_disabled_flagはシグナルされなくてよい。例えば、前記ph_ts_residual_coding_disabled_flagがシグナルされない場合に、前記ph_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。また、例えば、前記ph_ts_residual_coding_disabled_flagの値が1である場合に、前記ph_dep_quant_enabled_flagはシグナルされなくてよい。例えば、前記ph_dep_quant_enabled_flagがシグナルされない場合に、前記ph_dep_quant_enabled_flagは0と見なされてよい(infer)。
【0295】
一方、上述したように、本文書に開示のシンタックステーブル内情報(シンタックスエレメント)は、映像/ビデオ情報に含まれてよく、エンコーディング装置で構成/エンコードされてビットストリームの形態でデコーディング装置で伝達されてよい。デコーディング装置は、該当シンタックステーブル内情報(シンタックスエレメント)をパース/デコードすることができる。デコーディング装置は、デコードされた情報に基づいてブロック/映像/ビデオの復元手順を行うことができる。
【0296】
また、本文書は、上述したシンタックスエレメントsh_ts_residual_coding_disabled_flagのシグナリングと関連した様々な実施例を提案する。
【0297】
例えば、上述したように、前記slice_ts_residual_coding_disabled_flagを用いて特定応用(例えば、無損失コーディングなど)において高いコーディング効率を得ることができるが、既存のビデオ/映像コーディング標準では、サインデータハイディング(Sign Data Hiding,SDH)が前記slice_ts_residual_coding_disabled_flagと共に用いられる場合に対する制約が提案されていない。
【0298】
ここで、前記サインデータ省略方法は、次の通りであってよい。変換係数を導出するとき、変換係数の符号は、1ビット(bit)のサインフラグ(上述したシンタックスエレメントcoeff_sign_flag)に基づいて導出されてよい。これと関連して、SDHは、コーディング効率を向上させるために、サブブロック/係数グループ(Coefficient Group,CG)内の最初の有効変換係数に対するcoeff_sign_flagの明示的シグナリングを省略する技術を示すことができる。ここで、前記最初の有効変換係数に対するcoeff_sign_flagの値は、当該サブブロック/係数グループ内の前記有効変換係数の絶対レベル(すなわち、絶対値)の和に基づいて導出されてよい。すなわち、前記最初の有効変換係数の符号(sign)は、当該サブブロック/係数グループ内の有効変換係数に対する絶対レベルの和に基づいて導出されてよい。一方、有効変換係数は、(絶対)値が0でない変換係数(non-zero transform coefficient)を意味できる。例えば、前記有効変換係数に対する絶対レベルの和が偶数(even)である場合に、前記最初の有効変換係数に対するcoeff_sign_flagの値は1と導出されてよく、前記有効変換係数に対する絶対レベルの和が奇数(odd)である場合に、前記最初の有効変換係数に対するcoeff_sign_flagの値は0と導出されてよい。言い換えると、例えば、前記有効変換係数に対する絶対レベルの和が偶数(even)である場合に、前記最初の有効変換係数に対する符号は負数(negative value)と導出されてよく、前記有効変換係数に対する絶対レベルの和が奇数(odd)である場合に、前記最初の有効変換係数に対する符号は正数(positive value)と導出されてよい。又は、例えば、前記有効変換係数に対する絶対レベルの和が偶数(even)である場合に、前記最初の有効変換係数に対するcoeff_sign_flagの値は0と導出されてよく、前記有効変換係数に対する絶対レベルの和が奇数(odd)である場合に、前記最初の有効変換係数に対するcoeff_sign_flagの値は1と導出されてよい。言い換えると、例えば、前記有効変換係数に対する絶対レベルの和が偶数(even)である場合に、前記最初の有効変換係数に対する符号は正数(positive value)と導出されてよく、前記有効変換係数に対する絶対レベルの和が奇数(odd)である場合に、前記最初の有効変換係数に対する符号は負数(negative value)と導出されてよい。
【0299】
例えば、レジデュアルシンタックスにおける前記SDHは、次の表のように示すことができる。
【0300】
【表28】
【0301】
表28を参照すると、変数signHiddenFlagは、前記SDHが適用されるか否かを示すことができる。前記変数signHiddenFlagは、signHiddenと呼ばれてもよい。例えば、変数signHiddenFlagの値が0である場合に、変数signHiddenFlagは、前記SDHが適用されないことを示すことができ、変数signHiddenFlagの値が1である場合に、変数signHiddenFlagは、前記SDHが適用されることを示すことができる。例えば、変数signHiddenFlagの値は、シグナルされるフラグ情報(例えば、sh_sign_data_hiding_used_flag又はpic_sign_data_hiding_enabled_flag又はsps_sign_data_hiding_enabled_flag)に基づいて設定されてよい。また、例えば、変数signHiddenFlagの値は、lastSigScanPosSb及びfirstSigScanPosSbに基づいて設定されてよい。ここで、lastSigScanPosSbは、スキャン順序によって当該サブブロック/係数グループ内で探索される最後の有効変換係数位置を示すことができ、firstSigScanPosSbは、スキャン順序によって当該サブブロック/係数グループ内で探索される最初の有効変換係数位置を示すことができる。一般に、lastSigScanPosSbは、firstSigScanPosSbに比べてより高周波成分領域に位置してよい。そこで、lastSigScanPosSb-firstSigScanPosSbが所定の臨界値よりも大きい場合に、前記signHidden値は1と導出されてよく(すなわち、SDH適用)、その他の場合、前記signHidden値は0と導出されてよい(すなわち、SDH非適用)。ここで、例えば、表28を参照すると、前記臨界値は3に設定されてよい。
【0302】
一方、ハイレベルシンタックス(VPS、SPS、PPS、スライスヘッダーシンタックスなど)又はローレベルシンタックス(スライスデータシンタックス、コーディングユニットシンタックス、変換ユニットシンタックスなど)において上述のサインデータハイディングが活性化され、前記slice_ts_residual_coding_disabled_flagが1である場合に、RRCのサインデータハイディング過程が無損失コーディングで用いられてよい。したがって、エンコーディング装置における誤った設定によって無損失コーディングが不可能になることがある。又は、無損失コーディングではなく損失コーディング(loss coding)(すなわち、非可逆的なコーディング方法)が適用され、変換スキップが適用されたレジデュアル信号がRRCでコードされながら同時にBDPCMが適用される場合に、BDPCMは、レジデュアル間の差分(difference)によってレジデュアル値が0になる区間が一般の場合に比べて多く発生するにもかかわらず、SDH適用条件に符合してSDHが行われることにより、コーディング損失が発生することがある。具体的には、例えば、CG内の0番位置と15番位置に有効変換係数(ノンゼロレジデュアルデータ)がそれぞれ存在し、前記CG内の残り位置の変換係数の値は0である場合に、上述したSDH適用条件によって前記CGにSDHが適用されてよく、したがって、前記CGの最初の有効変換係数に対するサインデータ(すなわち、サインフラグのコーディング)は省略されてよい。したがって、この場合、サインデータの省略のために、量子化段階において前記CGの2個だけあるレジデュアルデータのパリティが調節されることがあり、むしろ、SDHが適用されない場合に比べてコーディング損失がより多く発生することがある。このような事例は、BDPCMが適用されないブロックにおいても発生し得るが、BDPCMの特性の上、周辺レジデュアルとの差分によってレベルを下げるため、SDHを適用する際に不利な場合がより頻繁に発生することがある。
【0303】
したがって、本文書は、SDHとslice_ts_residual_coding_disabled_flag=1である場合のレジデュアルコーディング(すなわち、現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCでコーディング)が共に用いられて意図せぬコーディング損失が起きたり誤動作したりすることを防止するために、両技術間の従属性/制約を設定する実施例を提案する。
【0304】
例えば、本実施例は、slice_ts_residual_coding_disabled_flagがpic_sign_data_hiding_enabled_flagに従属する方案を提案する。本実施例に係るレジデュアルコーディングシンタックスは、次の表の通りでよい。
【0305】
【表29】
【0306】
ここで、slice_ts_residual_coding_disabled_flagは、スライスヘッダーシンタックスでシグナルされてよく、又はスライスヘッダーシンタックス以外の他のハイレベルシンタックス(High Level Syntax,HLS)(例えば、SPSシンタックス/VPSシンタックス/DPSシンタックスなど)又はローレベル(CU/TU)においてシグナルされてよい。また、pic_sign_data_hiding_enabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよく、又はピクチャーヘッダーシンタックス以外の他のハイレベルシンタックス(High Level Syntax,HLS)(例えば、SPSシンタックス/VPSシンタックス/DPSシンタックスなど)又はローレベル(CU/TU)においてシグナルされてよい。例えば、前記pic_sign_data_hiding_enabled_flagが前記ピクチャーヘッダーシンタックス以外のシンタックスでシグナルされる場合には、別の名称としてもよい。例えば、前記pic_sign_data_hiding_enabled_flagは、sps_sign_data_hiding_enabled_flagと表してもよい。
【0307】
また、sps_sign_data_hiding_enabled_flagは、サインデータハイディングが可用であるか否かに対するフラグであってもよい。すなわち、例えば、sps_sign_data_hiding_enabled_flagは、前記サインデータハイディングが可用であるか否かを示すことができる。例えば、sps_sign_data_hiding_enabled_flagの値が1である場合に、sps_sign_data_hiding_enabled_flagは、前記サインデータハイディングが可用であることを示すことができ、sps_sign_data_hiding_enabled_flagの値が0である場合に、sps_sign_data_hiding_enabled_flagは、前記サインデータハイディングが可用でないことを示すことができる。
【0308】
本実施例を開示した表29によれば、サインデータハイディングが可用でない場合にのみ、slice_ts_residual_coding_disabled_flagがシグナルされてよい。また、サインデータハイディングが可用である場合に、slice_ts_residual_coding_disabled_flagはシグナルされなくてよく、slice_ts_residual_coding_disabled_flagの値は0(現在スライス内の変換スキップブロックのレジデュアルサンプルをTSRCシンタックスでコーディング)又は1(現在スライス内の変換スキップブロックのレジデュアルサンプルをRRCシンタックスでコーディング)と見なしてよい(infer)。
【0309】
また、本文書はsh_ts_residual_coding_disabled_flagのシグナリングと関連して上述した実施例を組合1実施例を提案する。例えば、次の表のようにsh_ts_residual_coding_disabled_flagをシグナルする実施例が提案されてよい。
【0310】
【表30】
【0311】
表30を参照すると、sps_transform_skip_enabled_flagが1であり、ph_dep_quant_enabled_flagが0であり、pic_sign_data_hiding_enabled_flagが0である場合に、sh_ts_residual_coding_disabled_flagがシグナルされてよく、それ以外の場合にはsh_ts_residual_coding_disabled_flagがシグナルされなくてよい。一方、sh_ts_residual_coding_disabled_flagがシグナルされない場合に、sh_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0312】
一方、表30の実施例は一例示であり、ph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag、ph_ts_residual_coding_disabled_flagがいずれも同一のHLS(例えば、スライスヘッダーシンタックスなど)においてシグナルされる例が提案されてよい。
【0313】
又は、例えば、次の表のように、sh_ts_residual_coding_disabled_flagをシグナルする実施例が提案されてよい。
【0314】
【表31】
【0315】
表31を参照すると、ph_dep_quant_enabled_flagが0であり、pic_sign_data_hiding_enabled_flagが0である場合に、sh_ts_residual_coding_disabled_flagがシグナルされてよく、それ以外の場合にはsh_ts_residual_coding_disabled_flagがシグナルされなくてよい。一方、sh_ts_residual_coding_disabled_flagがシグナルされない場合に、sh_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0316】
一方、表31の実施例は一例示であり、ph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag、ph_ts_residual_coding_disabled_flagがいずれも同一のHLS(例えば、スライスヘッダーシンタックスなど)でシグナルされる例が提案されてよい。
【0317】
又は、例えば、次の表のように、sh_ts_residual_coding_disabled_flagをシグナルする実施例が提案されてよい。
【0318】
【表32】
【0319】
表32を参照すると、ph_dep_quant_enabled_flagが0であるか又はpic_sign_data_hiding_enabled_flagが0である場合に、sh_ts_residual_coding_disabled_flagがシグナルされてよく、それ以外の場合にはsh_ts_residual_coding_disabled_flagがシグナルされなくてよい。一方、sh_ts_residual_coding_disabled_flagがシグナルされない場合に、sh_ts_residual_coding_disabled_flagは0と見なされてよい(infer)。
【0320】
また、本文書は、上述したシンタックスエレメントph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag及びslice_ts_residual_coding_disabled_flagを、同一のハイレベルシンタックス又はローレベルシンタックスでシグナルする実施例を提案する。
【0321】
例えば、次の表のように、ph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag及びslice_ts_residual_coding_disabled_flagがいずれもピクチャーヘッダーシンタックスでシグナルされる実施例が提案されてよい。
【0322】
【表33】
【0323】
この場合、前記slice_ts_residual_coding_disabled_flagは、ph_ts_residual_coding_disabled_flagと呼ぶことができる。
【0324】
表33を参照すると、ph_ts_residual_coding_disabled_flagは、ピクチャーヘッダーシンタックスにおいてシグナルされてよく、ph_ts_residual_coding_disabled_flagの値が0である場合に、sps_dep_quant_enabled_flagの値が1であれば、ph_dep_quant_enabled_flagがピクチャーヘッダーシンタックスでシグナルされてよい。また、ph_ts_residual_coding_disabled_flagの値が0である場合に、sps_sign_data_hiding_enabled_flagの値が1で、ph_dep_quant_enabled_flag0であれば、pic_sign_data_hiding_enabled_flagがピクチャーヘッダーシンタックスでシグナルされてよい。一方、例えば、ph_ts_residual_coding_disabled_flagの値が1である場合に、ph_dep_quant_enabled_flag及びpic_sign_data_hiding_enabled_flagはシグナルされなくてよい。
【0325】
又は、例えば、次の表のように、ph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag及びslice_ts_residual_coding_disabled_flagがいずれもピクチャーヘッダーシンタックスでシグナルされる実施例が提案されてよい。
【0326】
【表34】
【0327】
表34を参照すると、sps_transform_skip_enabled_flagの値が1である場合に、ph_ts_residual_coding_disabled_flagは、ピクチャーヘッダーシンタックスでシグナルされてよい。また、例えば、sps_transform_skip_enabled_flagの値が0である場合に、ph_ts_residual_coding_disabled_flagはシグナルされなくてよい。ph_ts_residual_coding_disabled_flagがシグナルされない場合に、ph_ts_residual_coding_disabled_flagは、デコーディング装置において0と見なされてよい(infer)。
【0328】
また、表34を参照すると、ph_ts_residual_coding_disabled_flagの値が0である場合に、sps_dep_quant_enabled_flagの値が1であれば、ph_dep_quant_enabled_flagがピクチャーヘッダーシンタックスでシグナルされてよい。また、ph_ts_residual_coding_disabled_flagの値が0である場合に、sps_sign_data_hiding_enabled_flagの値が1で、ph_dep_quant_enabled_flag0であれば、pic_sign_data_hiding_enabled_flagがピクチャーヘッダーシンタックスでシグナルされてよい。一方、例えば、ph_ts_residual_coding_disabled_flagの値が1である場合に、ph_dep_quant_enabled_flag及びpic_sign_data_hiding_enabled_flagはシグナルされなくてよい。また、例えば、ph_dep_quant_enabled_flagがシグナルされない場合に、ph_dep_quant_enabled_flagは、デコーディング装置において0と見なされてよい(infer)。また、例えば、pic_sign_data_hiding_enabled_flagがシグナルされない場合に、pic_sign_data_hiding_enabled_flagは、デコーディング装置において0と見なされてよい(infer)。
【0329】
一方、上述した実施例は例示であり、ph_ts_residual_coding_disabled_flag、ph_dep_quant_enabled_flag及びpic_sign_data_hiding_enabled_flagは、ピクチャーヘッダーシンタックス以外の他のハイレベルシンタックス(VPS、SPS、PPS、スライスヘッダーシンタックスなど)又はローレベルシンタックス(スライスデータシンタックス、コーディングユニットシンタックス、変換ユニットシンタックスなど)でシグナルされる例が提案されてよい。
【0330】
一方、上述したように、本文書に開示のシンタックステーブル内の情報(シンタックスエレメント)は、映像/ビデオ情報に含まれてよく、エンコーディング装置で構成/エンコードされてビットストリームの形態でデコーディング装置に伝達されてよい。デコーディング装置は、当該シンタックステーブル内の情報(シンタックスエレメント)をパース/デコードすることができる。デコーディング装置は、デコードされた情報に基づいてブロック/映像/ビデオ復元手順を行うことができる。
【0331】
図8には、本文書に係るエンコーディング装置による映像エンコーディング方法を概略的に示す。図8に開示の方法は、図2に開示のエンコーディング装置によって行われてよい。具体的には、例えば、図8のS800~S830は、前記エンコーディング装置のエントロピーエンコーディング部によって行われてよい。また、たとえ図示してはいないが、予測サンプルを導出する過程は、前記エンコーディング装置の予測部によって行われてよく、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出する過程は、前記エンコーディング装置の減算部によって行われてよく、前記現在ブロックに対するレジデュアルサンプルと予測サンプルに基づいて前記現在ブロックに対する復元サンプル及び復元ピクチャーを生成する過程は、前記エンコーディング装置の加算部によって行われてよい。
【0332】
エンコーディング装置は、現在スライスに対してサインデータハイディング(sign data hiding)が可用であるか否かに対するサインデータハイディング可用フラグをエンコードする(S800)。エンコーディング装置は、サインデータハイディング(sign data hiding)が可用であるか否かに対するサインデータハイディング可用フラグをエンコードすることができる。映像情報は、サインデータハイディング可用フラグを含むことができる。例えば、エンコーディング装置は、シーケンス(sequence)内ピクチャーのブロックに対してサインデータハイディングが可用であるか決定でき、サインデータハイディングが可用であるか否かに対するサインデータハイディング可用フラグをエンコードすることができる。例えば、前記サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かに対するフラグであってよい。例えば、サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かを示すことができる。すなわち、例えば、サインデータハイディング可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対してサインデータハイディングが可用であるか否かを示すことができる。例えば、サインデータハイディング可用フラグは、現在スライスに対してサインデータハイディングが用いられるか否かを示すサインデータハイディング使用フラグが存在できるか否かを示すことができる。例えば、値が1である前記サインデータハイディング可用フラグは、前記サインデータハイディングが可用であることを示すことができ、値が0である前記サインデータハイディング可用フラグは、前記サインデータハイディングが可用でないことを示すことができる。例えば、値が1である前記サインデータハイディング可用フラグは、前記サインデータハイディング使用フラグが存在し得ることを示すことができ、値が0である前記サインデータハイディング可用フラグは、前記サインデータハイディング使用フラグが存在しないことを示すことができる。また、例えば、前記サインデータハイディング可用フラグは、SPS(Sequence Parameter Set)シンタックスでシグナルされてよい。又は、例えば、前記サインデータハイディング可用フラグは、ピクチャーヘッダーシンタックス又はスライスヘッダーシンタックスでシグナルされてよい。前記サインデータハイディング可用フラグのシンタックスエレメントは、上述したsps_sign_data_hiding_enabled_flagであってよい。
【0333】
エンコーディング装置は、前記サインデータハイディング可用フラグに基づいて、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)が可用であるか否かに対するTSRC可用フラグをエンコードする(S810)。映像情報はTSRC可用フラグを含むことができる。
【0334】
例えば、エンコーディング装置は、前記サインデータハイディング可用フラグに基づいて前記TSRC可用フラグをエンコードすることができる。例えば、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいてエンコードされてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が0である場合(すなわち、前記サインデータハイディング可用フラグがサインデータハイディングが可用でないことを示す場合)、前記TSRC可用フラグはエンコードされてよい。言い換えると、例えば、前記サインデータハイディング可用フラグの値が0である場合(すなわち、前記サインデータハイディング可用フラグがサインデータハイディングが可用でないことを示す場合)、前記TSRC可用フラグはシグナルされてよい。また、例えば、前記サインデータハイディング可用フラグの値が1である場合、前記TSRC可用フラグはエンコードされなくてよく、デコーディング装置で前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が1である場合、前記TSRC可用フラグはシグナルされなくてよく、デコーディング装置で前記TSRC可用フラグの値は0と導出されてよい。
【0335】
ここで、例えば、前記TSRC可用フラグは、TSRCが可用であるか否かに対するフラグであってよい。すなわち、例えば、前記TSRC可用フラグは、スライス内ブロックに対してTSRCが可用であるか否かを示すフラグであってよい。例えば、値が1である前記TSRC可用フラグは、前記TSRCが可用でないことを示すことができ、値が0である前記TSRC可用フラグは、前記TSRCが可用であることを示すことができる。また、例えば、前記TSRC可用フラグは、スライスヘッダー(Slice Header)シンタックスでシグナルされてよい。前記TSRC可用フラグのシンタックスエレメントは、上述したsh_ts_residual_coding_disabled_flagであってよい。
【0336】
一方、例えば、エンコーディング装置は、シーケンス(sequence)内ピクチャーのブロックに対して従属量子化が可用であるか否か決定でき、従属量子化が可用であるか否かに対する従属量子化可用フラグをエンコードすることができる。映像情報は、前記従属量子化可用フラグを含むことができる。例えば、前記従属量子化可用フラグは、従属量子化(dependent quantization)が可用であるか否かに対するフラグであってよい。例えば、従属量子化可用フラグは、従属量子化(dependent quantization)が可用であるか否かを示すことができる。すなわち、例えば、従属量子化可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対して従属量子化が可用であるか否かを示すことができる。例えば、従属量子化可用フラグは、現在スライスに対して従属量子化が用いられるか否かを示す従属量子化使用フラグが存在できるか否かを示すことができる。例えば、値が1である前記従属量子化可用フラグは、前記従属量子化が可用であることを示すことができ、値が0である前記従属量子化可用フラグは、前記従属量子化が可用でないことを示すことができる。また、例えば、前記従属量子化可用フラグは、SPSシンタックス又はスライスヘッダーシンタックスなどでシグナルされてよい。前記従属量子化可用フラグのシンタックスエレメントは、上述したsps_dep_quant_enabled_flagであってよい。前記sps_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flag又はph_dep_quant_enabled_flagと呼ぶことができる。
【0337】
また、例えば、エンコーディング装置は、変換スキップ(transform skip)が可用であるか否かに対する変換スキップ可用フラグをエンコードすることができる。映像情報は、変換スキップ可用フラグを含むことができる。例えば、エンコーディング装置は、シーケンス(sequence)内ピクチャーのブロックに対して変換スキップが可用であるか決定でき、変換スキップ(transform skip)が可用であるか否かに対する変換スキップ可用フラグをエンコードすることができる。例えば、前記変換スキップ可用フラグは、変換スキップ(transform skip)が可用であるか否かに対するフラグであってよい。例えば、変換スキップ可用フラグは、変換スキップ(transform skip)が可用であるか否かを示すことができる。すなわち、例えば、変換スキップ可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対して変換スキップが可用であるか否かを示すことができる。例えば、変換スキップ可用フラグは、変換スキップフラグが存在できるか否かを示すことができる。例えば、値が1である前記変換スキップ可用フラグは、前記変換スキップが可用であることを示すことができ、値が0である前記変換スキップ可用フラグは、前記変換スキップが可用でないことを示すことができる。すなわち、例えば、値が1である前記変換スキップ可用フラグは、前記変換スキップフラグが存在できることを示すことができ、値が0である前記変換スキップ可用フラグは、前記変換スキップフラグが存在しないことを示すことができる。また、例えば、前記変換スキップ可用フラグは、SPS(Sequence Parameter Set)シンタックスでシグナルされてよい。前記変換スキップ可用フラグのシンタックスエレメントは、上述したsps_transform_skip_enabled_flagであってよい。
【0338】
また、例えば、前記TSRC可用フラグは、前記サインデータハイディング可用フラグ、前記従属量子化可用フラグ及び/又は前記変換スキップ可用フラグに基づいてエンコードされてよい。例えば、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグ、値が0である前記従属量子化可用フラグ、及び値が1である前記変換スキップ可用フラグに基づいてエンコードされてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が0であり(すなわち、前記サインデータハイディング可用フラグが、サインデータハイディングが可用でないことを示し)、前記従属量子化可用フラグの値が0であり(すなわち、前記従属量子化可用フラグが、従属量子化が可用でないことを示し)、前記変換スキップ可用フラグの値が1である(すなわち、前記変換スキップ可用フラグが、前記変換スキップが可用であることを示す)場合に、前記TSRC可用フラグはエンコード(又は、シグナル)されてよい。また、例えば、前記従属量子化可用フラグの値が1である場合に、前記TSRC可用フラグはエンコードされなくてよく、デコーディング装置において前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記従属量子化可用フラグの値が1である場合に、前記TSRC可用フラグはシグナルされなくてよく、デコーディング装置において前記TSRC可用フラグの値は0と導出されてよい。また、例えば、前記変換スキップ可用フラグの値が0である場合に、前記TSRC可用フラグはエンコードされなくてよく、前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記変換スキップ可用フラグの値が0である場合に、前記TSRC可用フラグはシグナルされなくてよく、前記TSRC可用フラグの値は0と導出されてよい。
【0339】
エンコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報をエンコードする(S820)。エンコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報をエンコードすることができる。
【0340】
例えば、エンコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアルコーディングシンタックスを決定できる。例えば、エンコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアルコーディングシンタックスを、レギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックス及び変換スキップレジデュアルコーディング(Tranform Skip Residual Coding,TSRC)シンタックスのうち一つと決定できる。RRCシンタックスはRRCによるシンタックスを表すことができ、TSRCシンタックスはTSRCによるシンタックスを表すことができる。
【0341】
例えば、値が1である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスはレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスと決定されてよい。この場合、例えば、前記現在ブロックの変換をスキップするか否かに対する変換スキップフラグがエンコードされてよく、前記変換スキップフラグの値は1であってよい。例えば、前記映像情報は、前記現在ブロックに対する変換スキップフラグを含むことができる。前記変換スキップフラグは、前記現在ブロックの変換がスキップされるか否かを示すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックの変換係数に変換が適用されたか否かを示すことができる。前記変換スキップフラグを示すシンタックスエレメントは、上述したtransform_skip_flagであってよい。例えば、前記変換スキップフラグの値が1である場合、前記変換スキップフラグは、前記現在ブロックに変換が適用されないこと(すなわち、変換スキップされること)を示すことができ、前記変換スキップフラグの値が0である場合、前記変換スキップフラグは、前記現在ブロックに変換が適用されることを示すことができる。例えば、前記現在ブロックが変換スキップブロックである場合に、前記現在ブロックに対する変換スキップフラグの値が1であってよい。
【0342】
また、例えば、値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスは変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)シンタックスと決定されてよい。また、例えば、前記現在ブロックの変換がスキップされるか否かに対する変換スキップフラグがエンコードされてよく、値が1である前記変換スキップフラグ及び値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスは変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)シンタックスと決定されてよい。また、例えば、前記現在ブロックの変換がスキップされるか否かに対する変換スキップフラグがエンコードされてよく、値が0である前記変換スキップフラグ及び値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスはレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスと決定されてよい。
【0343】
その後、例えば、エンコーディング装置は、前記現在ブロックに対する前記決定されたレジデュアルコーディングシンタックスのレジデュアル情報をエンコードすることができる。エンコーディング装置は、前記現在ブロックに対するレジデュアルサンプルを導出することができ、前記現在ブロックの前記レジデュアルサンプルに対する前記決定されたレジデュアルコーディングシンタックスのレジデュアル情報をエンコードすることができる。例えば、値が1である前記TSRC可用フラグに基づいてレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスのレジデュアル情報がエンコードされてよく、値が0である前記TSRC可用フラグに基づいてTSRCシンタックスのレジデュアル情報がエンコードされてよい。前記映像情報はレジデュアル情報を含むことができる。
【0344】
例えば、エンコーディング装置は、現在ブロックにインター予測を行うか又はイントラ予測を行うかを決定でき、具体的なインター予測モード又は具体的なイントラ予測モードをRDコストに基づいて決定することができる。決定されたモードによって、エンコーディング装置は、前記現在ブロックに対する予測サンプルを導出することができ、前記現在ブロックに対する原本サンプルと前記予測サンプルの減算によって前記現在ブロックに対するレジデュアルサンプルを導出することができる。
【0345】
その後、例えば、エンコーディング装置は、前記レジデュアルサンプルに基づいて前記現在ブロックの変換係数を導出することができる。例えば、エンコーディング装置は、前記現在ブロックに対して変換が適用されるか否かを決定できる。すなわち、エンコーディング装置は、前記現在ブロックの前記レジデュアルサンプルに対して変換が適用されるか否かを決定できる。エンコーディング装置は、コーディング効率を考慮して、前記現在ブロックに対して変換が適用されるか否かを決定できる。例えば、エンコーディング装置は、前記現在ブロックに対して変換が適用されないと決定できる。前記変換が適用されないブロックは、変換スキップブロックと呼ぶことができる。すなわち、例えば、前記現在ブロックは変換スキップブロックであってよい。
【0346】
前記現在ブロックに対して変換が適用されない場合に、すなわち、前記レジデュアルサンプルに対して変換が適用されない場合に、エンコーディング装置は、前記導出されたレジデュアルサンプルを前記現在変換係数と導出することができる。また、前記現在ブロックに対して変換が適用される場合に、すなわち、前記レジデュアルサンプルに対して変換が適用される場合に、エンコーディング装置は、前記レジデュアルサンプルに対する変換を行って前記変換係数を導出することができる。前記現在ブロックは複数のサブブロック又は係数グループ(Coefficient Group,CG)を含むことができる。また、前記現在ブロックのサブブロックのサイズは、4x4サイズ又は2x2サイズであってよい。すなわち、前記現在ブロックの前記サブブロックは、最大で16個のノン-ゼロ(non-zero)変換係数又は最大で4個のノン-ゼロ変換係数を含むことができる。ここで、前記現在ブロックは、コーディングブロック(Coding Block,CB)又は変換ブロック(Transform Block,TB)であってよい。また、変換係数(transform coefficient)は、レジデュアル係数(residual coefficient)と表すこともできる。
【0347】
一方、エンコーディング装置は、前記現在ブロックに対して従属量子化が適用されるか否かを決定できる。例えば、前記現在ブロックに対して前記従属量子化が適用される場合に、エンコーディング装置は、前記変換係数に対する前記従属量子化過程を行って前記現在ブロックの前記変換係数を導出することができる。例えば、前記現在ブロックに対して前記従属量子化が適用される場合に、エンコーディング装置は、従属量子化に対する状態(Qstate)を、スキャニング順序において現在変換係数直前の変換係数の係数レベルに基づいてアップデートでき、前記アップデートされた状態及び前記現在変換係数に対するシンタックスエレメントに基づいて前記現在変換係数の係数レベルを導出することができ、前記導出された係数レベルを量子化して現在変換係数を導出することができる。例えば、前記現在変換係数は、前記アップデートされた状態に対するスカラー量子化器において前記現在変換係数の復元レベルに対する量子化パラメータに基づいて量子化されてよい。
【0348】
例えば、前記現在ブロックに対する前記レジデュアルコーディングシンタックスが前記RRCシンタックスと導出された場合に、エンコーディング装置は、前記現在ブロックに対する前記RRCシンタックスのレジデュアル情報をエンコードすることができる。例えば、前記RRCシンタックスの前記レジデュアル情報は、上述した表2に開示されたシンタックスエレメントを含むことができる。
【0349】
例えば、前記RRCシンタックスの前記レジデュアル情報は、現在ブロックの変換係数に対するシンタックスエレメントを含むことができる。ここで、変換係数(transform coefficient)は、レジデュアル係数(residual coefficient)と表すこともできる。
【0350】
例えば、前記シンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]及び/又はabs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level、及び/又はcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含むことができる。
【0351】
具体的には、例えば、前記シンタックスエレメントは、前記現在ブロックのレジデュアル係数配列(array)において最後のノン-ゼロ(non-zero)変換係数の位置を示す位置情報を含むことができる。すなわち、前記シンタックスエレメントは、前記現在ブロックのスキャニング順序(scanning order)における最後のノン-ゼロ(non-zero)変換係数の位置を示す位置情報を含むことができる。前記位置情報は、前記最後のノン-ゼロ変換係数の列位置(column position)のプレフィックス(prefix)を示す情報、前記最後のノン-ゼロ変換係数の行位置(row position)のプレフィックス(prefix)を示す情報、前記最後のノン-ゼロ変換係数の列位置(column position)のサフィックス(suffix)を示す情報、前記最後のノン-ゼロ変換係数の行位置(row position)のサフィックス(suffix)を示す情報を含むことができる。前記位置情報に対するシンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffixであっよい。一方、ノン-ゼロ変換係数は、有効係数(significant coefficient)と呼ぶこともできる。
【0352】
また、例えば、前記シンタックスエレメントは、前記現在ブロックの現在サブブロックがノン-ゼロ変換係数を含むか否かを示すコーデッドサブブロックフラグ、前記現在ブロックの変換係数がノン-ゼロ(non-zero)変換係数であるか否かを示す有効係数フラグ、前記変換係数に対する係数レベルが第1臨界値よりも大きいか否かに対する第1係数レベルフラグ、前記係数レベルのパリティ(parity)に対するパリティレベルフラグ、及び/又は前記変換係数の前記係数レベルが第2臨界値よりも大きいか否かに対する第2係数レベルフラグを含むことができる。ここで、前記コーデッドサブブロックフラグはsb_coded_flag又はcoded_sub_block_flagであってよく、前記有効係数フラグはsig_coeff_flagであってよく、前記第1係数レベルフラグはabs_level_gt1_flag又はabs_level_gtx_flagであってよく、前記パリティレベルフラグはpar_level_flagであってよく、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであってよい。
【0353】
また、例えば、前記シンタックスエレメントは、前記現在ブロックの変換係数の値に対する係数値関連情報を含むことができる。前記係数値関連情報はabs_remainder及び/又はdec_abs_levelであってよい。
【0354】
また、例えば、前記シンタックスエレメントは、前記変換係数の符号(sign)を示すサインフラグを含むことができる。前記サインフラグはcoeff_sign_flagであってよい。
【0355】
一方、例えば、前記現在ブロックに対して前記サインデータハイディングが適用される場合、前記現在ブロック内の現在CG(coefficient group)の最初の有効変換係数のサインフラグは、エンコード及びシグナルされなくてよい。すなわち、例えば、前記現在ブロックに対して前記サインデータハイディングが適用される場合、前記シンタックスエレメントは、前記最初の有効変換係数の符号(sign)を示すサインフラグを含まなくてよい。一方、例えば、前記現在ブロックに対して前記サインデータハイディングが適用されるか否かは、前記サインデータハイディング可用フラグ及び/又は前記現在CGの最初の有効変換係数位置及び最後の有効変換係数位置に基づいて導出されてよい。例えば、前記サインデータハイディング可用フラグの値が1であり、前記最後の有効変換係数位置から前記最初の有効変換係数位置を引いた値が3よりも大きい場合(すなわち、前記サインデータハイディング可用フラグの値が1であり、前記現在CG内有効変換係数の個数が3よりも大きい場合)に、前記現在ブロックの前記現在CGに対して前記サインデータハイディングが適用されてよい。
【0356】
また、例えば、前記現在ブロックに対する前記レジデュアルコーディングシンタックスが前記TSRCシンタックスと決定された場合に、エンコーディング装置は、前記現在ブロックに対する前記TSRCシンタックスのレジデュアル情報をエンコードすることができる。例えば、前記TSRCシンタックスの前記レジデュアル情報は、上記表3に開示されたシンタックスエレメントを含むことができる。
【0357】
例えば、前記TSRCシンタックスの前記レジデュアル情報は、現在ブロックの変換係数に対するシンタックスエレメントを含むことができる。ここで、変換係数(transform coefficient)は、レジデュアル係数(residual coefficient)と呼ぶこともできる。
【0358】
例えば、前記シンタックスエレメントは、変換係数に対するコンテクストコードされたシンタックスエレメント及び/又はバイパスコードされたシンタックスエレメントを含むことができる。前記シンタックスエレメントは、sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]及び/又はabs_level_gtx_flag[n][4])、abs_remainder及び/又はcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含むことができる。
【0359】
例えば、前記変換係数に対するコンテクストコードされた前記シンタックスエレメントは、前記変換係数がノンゼロ(non-zero)変換係数か否かを示す有効係数フラグ、前記変換係数に対する符号(sign)を示すサインフラグ、前記変換係数に対する係数レベルが第1臨界値よりも大きいか否かに対する第1係数レベルフラグ、及び/又は前記変換係数に対する係数レベルのパリティ(parity)に対するパリティレベルフラグを含むことができる。また、例えば、前記コンテクストコードされたシンタックスエレメントは、前記変換係数の前記係数レベルが第2臨界値よりも大きいか否かに対する第2係数レベルフラグ、前記変換係数の前記係数レベルが第3臨界値よりも大きいか否かに対する第3係数レベルフラグ、前記変換係数の前記係数レベルが第4臨界値よりも大きいか否かに対する第4係数レベルフラグ、及び/又は前記変換係数の前記係数レベルが第5臨界値よりも大きいか否かに対する第5係数レベルフラグを含むことができる。ここで、前記有効係数フラグはsig_coeff_flagであってよく、前記サインフラグはcoeff_sign_flagであってよく、前記第1係数レベルフラグはabs_level_gt1_flagであってよく、前記パリティレベルフラグはpar_level_flagであってよい。また、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであってよく、前記第3係数レベルフラグはabs_level_gt5_flag又はabs_level_gtx_flagであってよく、前記第4係数レベルフラグはabs_level_gt7_flag又はabs_level_gtx_flagであってよく、前記第5係数レベルフラグはabs_level_gt9_flag又はabs_level_gtx_flagであってよい。
【0360】
また、例えば、前記変換係数に対するバイパスコードされた前記シンタックスエレメントは、前記変換係数の値(又は、係数レベル)に対する係数レベル情報及び/又は前記変換係数に対する符号(sign)を示すサインフラグを含むことができる。前記係数レベル情報はabs_remainder及び/又はdec_abs_levelであってよく、前記サインフラグはcoeff_sign_flagであってよい。
【0361】
エンコーディング装置は、前記サインデータハイディング可用フラグ、前記TSRC可用フラグ、及び前記レジデュアル情報を含むビットストリームを生成する(S830)。例えば、エンコーディング装置は、前記サインデータハイディング可用フラグ、前記TSRC可用フラグ、及び前記レジデュアル情報を含む映像情報をビットストリームとして出力できる。前記ビットストリームは、前記サインデータハイディング可用フラグ、前記TSRC可用フラグ、及び前記レジデュアル情報を含むことができる。また、前記ビットストリームは、前記従属量子化可用フラグ及び/又は前記変換スキップ可用フラグをさらに含むことができる。
【0362】
一方、前記映像情報は、前記現在ブロックに対する予測関連情報を含むことができる。前記予測関連情報は、前記現在ブロックに行われるインター予測モード又はイントラ予測モードに対する予測モード情報を含むことができる。
【0363】
一方、前記ビットストリームは、ネットワーク又は(デジタル)記憶媒体を介してデコーディング装置に送信されてよい。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含むことができる。
【0364】
図9には、本文書に係る映像エンコーディング方法を行うエンコーディング装置を概略的に示す。図8に開示の方法は、図9に開示のエンコーディング装置によって行われてよい。具体的には、例えば、図9の前記エンコーディング装置のエントロピーエンコーディング部は、図8のS800~S830を行うことができる。また、たとえ図示してはいないが、予測サンプルを導出する過程は、前記エンコーディング装置の予測部によって行われてよく、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出する過程は、前記エンコーディング装置の減算部によって行われてよく、前記現在ブロックに対するレジデュアルサンプルと予測サンプルに基づいて前記現在ブロックに対する復元サンプル及び復元ピクチャーを生成する過程は、前記エンコーディング装置の加算部によって行われてよい。
【0365】
図10には、本文書に係るデコーディング装置による映像デコーディング方法を概略的に示す。図10に開示の方法は、図3に開示のデコーディング装置によって行われてよい。具体的には、例えば、図10のS1000~S1020は、前記デコーディング装置のエントロピーデコーディング部によって行われてよく、図10のS1030は、前記デコーディング装置のレジデュアル処理部によって行われてよく、S1040は、前記デコーディング装置の加算部によって行われてよい。また、たとえ図示してはいないが、現在ブロックに対する予測情報を受信する過程は、前記デコーディング装置のエントロピーデコーディング部によって行われてよく、現在ブロックの予測サンプルを導出する過程は、前記デコーディング装置の予測部によって行われてよい。
【0366】
デコーディング装置は、サインデータハイディング(sign data hiding)可用フラグを取得する(S1000)。デコーディング装置は、ビットストリームを用いて前記サインデータハイディング可用フラグを含む映像情報を取得することができる。映像情報は、前記サインデータハイディング可用フラグを含むことができる。例えば、前記サインデータハイディング可用フラグは、サインデータハイディング(sign data hiding)が可用であるか否かに対するフラグであってよい。例えば、サインデータハイディング可用フラグは、サインデータハイディングが可用であるか否かを示すことができる。すなわち、例えば、サインデータハイディング可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対してサインデータハイディングが可用であるか否かを示すことができる。例えば、サインデータハイディング可用フラグは、現在スライスに対してサインデータハイディングが用いられるか否かを示すサインデータハイディング使用フラグが存在できるか否かを示すことができる。例えば、値が1である前記サインデータハイディング可用フラグは、前記サインデータハイディングが可用であることを示すことができ、値が0である前記サインデータハイディング可用フラグは、前記サインデータハイディングが可用でないことを示すことができる。例えば、値が1である前記サインデータハイディング可用フラグは、前記サインデータハイディング使用フラグが存在し得ることを示すことができ、値が0である前記サインデータハイディング可用フラグは、前記サインデータハイディング使用フラグが存在しないことを示すことができる。また、例えば、前記サインデータハイディング可用フラグは、SPS(Sequence Parameter Set)シンタックスでシグナルされてよい。又は、例えば、前記サインデータハイディング可用フラグは、ピクチャーヘッダーシンタックス又はスライスヘッダーシンタックスでシグナルされてよい。前記サインデータハイディング可用フラグのシンタックスエレメントは、上述したsps_sign_data_hiding_enabled_flagであってよい。
【0367】
デコーディング装置は、前記サインデータハイディング可用フラグに基づいて変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)可用フラグを取得する(S1010)。映像情報はTSRC可用フラグを含むことができる。
【0368】
例えば、デコーディング装置は、前記サインデータハイディング可用フラグに基づいて前記TSRC可用フラグを取得できる。例えば、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグに基づいて取得されてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が0である場合(すなわち、前記サインデータハイディング可用フラグがサインデータハイディングが可用でないことを示す場合)に、前記TSRC可用フラグは取得されてよい。言い換えると、例えば、前記サインデータハイディング可用フラグの値が0である場合(すなわち、前記サインデータハイディング可用フラグがサインデータハイディングが可用でないことを示す場合)に、前記TSRC可用フラグはシグナルされてよい。また、例えば、前記サインデータハイディング可用フラグの値が1である場合、前記TSRC可用フラグは取得されなくてよく、前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が1である場合に、前記TSRC可用フラグはシグナルされなくてよく、前記TSRC可用フラグの値は0と導出されてよい。
【0369】
ここで、例えば、前記TSRC可用フラグは、TSRCが可用であるか否かに対するフラグであってよい。すなわち、例えば、前記TSRC可用フラグは、スライス内ブロックに対してTSRCが可用であるか否かを示すフラグであってよい。例えば、値が1である前記TSRC可用フラグは、前記TSRCが可用でないことを示すことができ、値が0である前記TSRC可用フラグは、前記TSRCが可用であることを示すことができる。また、例えば、前記TSRC可用フラグは、スライスヘッダー(Slice Header)シンタックスでシグナルされてよい。前記TSRC可用フラグのシンタックスエレメントは、上述したsh_ts_residual_coding_disabled_flagであってよい。
【0370】
一方、例えば、デコーディング装置は従属量子化可用フラグを取得できる。デコーディング装置は、ビットストリームを用いて、前記従属量子化可用フラグを含む映像情報を取得できる。映像情報は、前記従属量子化可用フラグを含むことができる。例えば、前記従属量子化可用フラグは、従属量子化(dependent quantization)が可用であるか否かに対するフラグであってよい。例えば、従属量子化可用フラグは、従属量子化(dependent quantization)が可用であるか否かを示すことができる。すなわち、例えば、従属量子化可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対して従属量子化が可用であるか否かを示すことができる。例えば、従属量子化可用フラグは、現在スライスに対して従属量子化が用いられるか否かを示す従属量子化使用フラグが存在できるか否かを示すことができる。例えば、値が1である前記従属量子化可用フラグは、前記従属量子化が可用であることを示すことができ、値が0である前記従属量子化可用フラグは、前記従属量子化が可用でないことを示すことができる。また、例えば、前記従属量子化可用フラグは、SPSシンタックス又はスライスヘッダーシンタックスなどでシグナルされてよい。前記従属量子化可用フラグのシンタックスエレメントは、上述したsps_dep_quant_enabled_flagであってよい。前記sps_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flag又はph_dep_quant_enabled_flagと呼ぶことができる。
【0371】
また、例えば、デコーディング装置は、変換スキップ可用フラグを取得できる。デコーディング装置はビットストリームを用いて前記変換スキップ可用フラグを含む映像情報を取得できる。映像情報は、前記変換スキップ可用フラグを含むことができる。ここで、前記現在ブロックは、コーディングブロック(Coding Block,CB)又は変換ブロック(Transform Block,TB)であってよい。例えば、前記変換スキップ可用フラグは、変換スキップ(transform skip)が可用であるか否かに対するフラグであってよい。例えば、変換スキップ可用フラグは、変換スキップ(transform skip)が可用であるか否かを示すことができる。すなわち、例えば、変換スキップ可用フラグは、シーケンス(sequence)内ピクチャーのブロックに対して変換スキップが可用であるか否かを示すことができる。例えば、変換スキップ可用フラグは、変換スキップフラグが存在できるか否かを示すことができる。例えば、値が1である前記変換スキップ可用フラグは、前記変換スキップが可用であることを示すことができ、値が0である前記変換スキップ可用フラグは、前記変換スキップが可用でないことを示すことができる。すなわち、例えば、値が1である前記変換スキップ可用フラグは、前記変換スキップフラグが存在できることを示すことができ、値が0である前記変換スキップ可用フラグは、前記変換スキップフラグが存在しないことを示すことができる。また、例えば、前記変換スキップ可用フラグは、SPS(Sequence Parameter Set)シンタックスでシグナルされてよい。前記変換スキップ可用フラグのシンタックスエレメントは、上述したsps_transform_skip_enabled_flagであってよい。
【0372】
また、例えば、前記TSRC可用フラグは、前記サインデータハイディング可用フラグ、前記従属量子化可用フラグ、及び/又は前記変換スキップ可用フラグに基づいて取得されてよい。例えば、前記TSRC可用フラグは、値が0である前記サインデータハイディング可用フラグ、値が0である前記従属量子化可用フラグ、及び値が1である前記変換スキップ可用フラグに基づいて取得されてよい。すなわち、例えば、前記サインデータハイディング可用フラグの値が0であり(すなわち、前記サインデータハイディング可用フラグが、サインデータハイディングが可用でないことを示し)、前記従属量子化可用フラグの値が0であり(すなわち、前記従属量子化可用フラグが、従属量子化が可用でないことを示し)、前記変換スキップ可用フラグの値が1である場合(すなわち、前記変換スキップ可用フラグが、前記変換スキップが可用であることを示す場合)に、前記TSRC可用フラグは取得(又は、シグナル)されてよい。また、例えば、前記従属量子化可用フラグの値が1である場合に、前記TSRC可用フラグは取得されなくてよく、前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記従属量子化可用フラグの値が1である場合に、前記TSRC可用フラグはシグナルされなくてよく、前記TSRC可用フラグの値は0と導出されてよい。また、例えば、前記変換スキップ可用フラグの値が0である場合に、前記TSRC可用フラグは取得されなくてよく、前記TSRC可用フラグの値は0と導出されてよい。すなわち、例えば、前記変換スキップ可用フラグの値が0である場合に、前記TSRC可用フラグはシグナルされなくてよく、前記TSRC可用フラグの値は0と導出されてよい。
【0373】
デコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報を取得する(S1020)。デコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアル情報を取得することができる。
【0374】
例えば、デコーディング装置は、前記TSRC可用フラグに基づいて現在ブロックに対するレジデュアルコーディングシンタックスを決定することができる。例えば、デコーディング装置は、前記TSRC可用フラグに基づいて、現在ブロックに対するレジデュアルコーディングシンタックスを、レギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックス及び変換スキップレジデュアルコーディング(Tranform Skip Residual Coding,TSRC)シンタックスのうち一つと決定できる。RRCシンタックスはRRCによるシンタックスを表すことができ、TSRCシンタックスはTSRCによるシンタックスを表すことができる。
【0375】
例えば、値が1である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスはレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスと決定されてよい。この場合、例えば、値が1である前記変換スキップ可用フラグに基づいて、前記現在ブロックの変換をスキップするか否かに対する変換スキップフラグが取得されてよく、前記変換スキップフラグの値は1であってよい。例えば、前記映像情報は、前記現在ブロックに対する変換スキップフラグを含むことができる。前記変換スキップフラグは、前記現在ブロックの変換をスキップするか否かを示すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックの変換係数に変換が適用されたか否かを示すことができる。前記変換スキップフラグを表すシンタックスエレメントは、上述したtransform_skip_flagであってよい。例えば、前記変換スキップフラグの値が1である場合、前記変換スキップフラグは、前記現在ブロックに変換が適用されないこと(すなわち、変換スキップされること)を示すことができ、前記変換スキップフラグの値が0である場合、前記変換スキップフラグは、前記現在ブロックに変換が適用されることを示すことができる。例えば、前記現在ブロックが変換スキップブロックである場合に、前記現在ブロックに対する変換スキップフラグの値が1であってよい。
【0376】
また、例えば、値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスは、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)シンタックスと決定されてよい。また、例えば、前記現在ブロックの変換をスキップするか否かに対する変換スキップフラグが取得されてよく、値が1である前記変換スキップフラグ及び値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスは、変換スキップレジデュアルコーディング(Transform Skip Residual Coding,TSRC)シンタックスと決定されてよい。また、例えば、前記現在ブロックの変換をスキップするか否かに対する変換スキップフラグが取得されてよく、値が0である前記変換スキップフラグ及び値が0である前記TSRC可用フラグに基づいて、前記現在ブロックに対する前記レジデュアルコーディングシンタックスはレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスと決定されてよい。
【0377】
その後、例えば、デコーディング装置は、前記現在ブロックに対する前記決定されたレジデュアルコーディングシンタックスのレジデュアル情報を取得できる。例えば、値が1である前記TSRC可用フラグに基づいてレギュラーレジデュアルコーディング(Regular Residual Coding,RRC)シンタックスのレジデュアル情報が取得されてよく、値が0である前記TSRC可用フラグに基づいてTSRCシンタックスのレジデュアル情報が取得されてよい。前記映像情報はレジデュアル情報を含むことができる。
【0378】
例えば、前記現在ブロックに対する前記レジデュアルコーディングシンタックスが前記RRCシンタックスと決定された場合、デコーディング装置は、前記現在ブロックに対する前記RRCシンタックスのレジデュアル情報を取得できる。例えば、前記RRCシンタックスの前記レジデュアル情報は、上記表2に開示されたシンタックスエレメントを含むことができる。
【0379】
例えば、前記RRCシンタックスの前記レジデュアル情報は、現在ブロックの変換係数に対するシンタックスエレメントを含むことができる。ここで、変換係数(transform coefficient)は、レジデュアル係数(residual coefficient)と表すこともできる。
【0380】
例えば、前記シンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]及び/又はabs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level、及び/又はcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含むことができる。
【0381】
具体的には、例えば、前記シンタックスエレメントは、前記現在ブロックのレジデュアル係数配列(array)において最後のノンゼロ(non-zero)変換係数の位置を示す位置情報を含むことができる。すなわち、前記シンタックスエレメントは、前記現在ブロックのスキャニング順序(scanning order)における最後のノンゼロ(non-zero)変換係数の位置を示す位置情報を含むことができる。前記位置情報は、前記最後のノンゼロ変換係数の列位置(column position)のプレフィックス(prefix)を示す情報、前記最後のノンゼロ変換係数の行位置(row position)のプレフィックス(prefix)を示す情報、前記最後のノンゼロ変換係数の列位置(column position)のサフィックス(suffix)を示す情報、前記最後のノンゼロ変換係数の行位置(row position)のサフィックス(suffix)を示す情報を含むことができる。前記位置情報に対するシンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffixであってよい。一方、ノンゼロ変換係数は、有効係数(significant coefficient)と呼ぶこともできる。
【0382】
また、例えば、前記シンタックスエレメントは、前記現在ブロックの現在サブブロックがノンゼロ変換係数を含むか否かを示す符号化(coded)サブブロックフラグ、前記現在ブロックの変換係数がノンゼロ(non-zero)変換係数か否かを示す有効係数フラグ、前記変換係数に対する係数レベルが第1臨界値よりも大きいか否かに対する第1係数レベルフラグ、前記係数レベルのパリティ(parity)に対するパリティレベルフラグ、及び/又は前記変換係数の前記係数レベルが第2臨界値よりも大きいか否かに対する第2係数レベルフラグを含むことができる。ここで、前記符号化サブブロックフラグはsb_coded_flag又はcoded_sub_block_flagであってよく、前記有効係数フラグはsig_coeff_flagであってよく、前記第1係数レベルフラグはabs_level_gt1_flag又はabs_level_gtx_flagであってよく、前記パリティレベルフラグはpar_level_flagであってよく、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであってよい。
【0383】
また、例えば、前記シンタックスエレメントは、前記現在ブロックの変換係数の値に対する係数値関連情報を含むことができる。前記係数値関連情報はabs_remainder及び/又はdec_abs_levelであってよい。
【0384】
また、例えば、前記シンタックスエレメントは、前記変換係数の符号(sign)を示すサインフラグを含むことができる。前記サインフラグはcoeff_sign_flagであってよい。
【0385】
一方、例えば、前記現在ブロックに対して前記サインデータハイディングが適用される場合、前記現在ブロック内の現在CG(coefficient group)の最初の有効変換係数のサインフラグはシグナルされなくてよい。すなわち、例えば、前記現在ブロックに対して前記サインデータハイディングが適用される場合、前記シンタックスエレメントは、前記最初の有効変換係数の符号(sign)を示すサインフラグを含まなくてよい。一方、例えば、前記現在ブロックに対して前記サインデータハイディングが適用されるか否かは、前記サインデータハイディング可用フラグ及び/又は前記現在CGの最初の有効変換係数位置及び最後の有効変換係数位置に基づいて導出されてよい。例えば、前記サインデータハイディング可用フラグの値が1であり、前記最後の有効変換係数位置から前記最初の有効変換係数位置を引いた値が3よりも大きい場合(すなわち、前記サインデータハイディング可用フラグの値が1であり、前記現在CG内有効変換係数の個数が3よりも大きい場合)に、前記現在ブロックの前記現在CGに対して前記サインデータハイディングが適用されてよい。
【0386】
また、例えば、前記現在ブロックに対する前記レジデュアルコーディングシンタックスが前記TSRCシンタックスと決定された場合、デコーディング装置は、前記現在ブロックに対する前記TSRCシンタックスのレジデュアル情報を取得できる。例えば、前記TSRCシンタックスの前記レジデュアル情報は、上記表3に開示されたシンタックスエレメントを含むことができる。
【0387】
例えば、前記TSRCシンタックスの前記レジデュアル情報は、現在ブロックの変換係数に対するシンタックスエレメントを含むことができる。ここで、変換係数(transform coefficient)は、レジデュアル係数(residual coefficient)と表すこともできる。
【0388】
例えば、前記シンタックスエレメントは、変換係数に対するコンテクストコードされたシンタックスエレメント及び/又はバイパスコードされたシンタックスエレメントを含むことができる。前記シンタックスエレメントは、sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]及び/又はabs_level_gtx_flag[n][4])、abs_remainder及び/又はcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含むことができる。
【0389】
例えば、前記変換係数に対するコンテクストコードされた前記シンタックスエレメントは、前記変換係数がノンゼロ(non-zero)変換係数か否かを示す有効係数フラグ、前記変換係数に対する符号(sign)を示すサインフラグ、前記変換係数に対する係数レベルが第1臨界値よりも大きいか否かに対する第1係数レベルフラグ及び/又は前記変換係数に対する係数レベルのパリティ(parity)に対するパリティレベルフラグを含むことができる。また、例えば、前記コンテクストコードされたシンタックスエレメントは、前記変換係数の前記係数レベルが第2臨界値よりも大きいか否かに対する第2係数レベルフラグ、前記変換係数の前記係数レベルが第3臨界値よりも大きいか否かに対する第3係数レベルフラグ、前記変換係数の前記係数レベルが第4臨界値よりも大きいか否かに対する第4係数レベルフラグ及び/又は前記変換係数の前記係数レベルが第5臨界値よりも大きいか否かに対する第5係数レベルフラグを含むことができる。ここで、前記有効係数フラグはsig_coeff_flagであってよく、前記サインフラグはcoeff_sign_flagであってよく、前記第1係数レベルフラグはabs_level_gt1_flagであってよく、前記パリティレベルフラグはpar_level_flagであってよい。また、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであってよく、前記第3係数レベルフラグはabs_level_gt5_flag又はabs_level_gtx_flagであってよく、前記第4係数レベルフラグはabs_level_gt7_flag又はabs_level_gtx_flagであってよく、前記第5係数レベルフラグはabs_level_gt9_flag又はabs_level_gtx_flagであってよい。
【0390】
また、例えば、前記変換係数に対するバイパスコードされた前記シンタックスエレメントは、前記変換係数の値(又は、係数レベル)に対する係数レベル情報及び/又は前記変換係数に対する符号(sign)を示すサインフラグを含むことができる。前記係数レベル情報はabs_remainder及び/又はdec_abs_levelであってよく、前記サインフラグはcoeff_sign_flagであってよい。
【0391】
デコーディング装置は、前記レジデュアル情報に基づいて前記現在ブロックのレジデュアルサンプルを導出する(S1030)。例えば、デコーディング装置は、前記レジデュアル情報に基づいて前記現在ブロックの変換係数を導出することができ、前記変換係数に基づいて前記現在ブロックのレジデュアルサンプルを導出することができる。
【0392】
例えば、デコーディング装置は、前記レジデュアル情報のシンタックスエレメントに基づいて前記現在ブロックの変換係数を導出することができる。その後、デコーディング装置は、前記変換係数に基づいて前記現在ブロックのレジデュアルサンプルを導出することができる。一例として、前記変換スキップフラグに基づいて、前記現在ブロックに対して変換が適用されないことと導出された場合、すなわち、前記変換スキップフラグの値が1である場合、デコーディング装置は、前記変換係数を前記現在ブロックの前記レジデュアルサンプルとして導出することができる。又は、例えば、前記変換スキップフラグに基づいて、前記現在ブロックに対して変換が適用されないことと導出された場合、すなわち、前記変換スキップフラグの値が1である場合、デコーディング装置は、前記変換係数を逆量子化して前記現在ブロックの前記レジデュアルサンプルを導出することができる。又は、例えば、前記変換スキップフラグに基づいて、前記現在ブロックに対して変換が適用されたことと導出された場合に、すなわち、前記変換スキップフラグの値が0である場合に、デコーディング装置は、前記変換係数を逆変換して前記現在ブロックの前記レジデュアルサンプルを導出することができる。又は、例えば、前記変換スキップフラグに基づいて前記現在ブロックに対して変換が適用されたことと導出された場合、すなわち、前記変換スキップフラグの値が0である場合、デコーディング装置は、前記変換係数を逆量子化し、逆量子化された変換係数を逆変換して、前記現在ブロックの前記レジデュアルサンプルを導出することができる。
【0393】
一方、前記現在ブロックに対して前記従属量子化が適用される場合に、デコーディング装置は、前記変換係数に対する前記従属量子化過程を行って前記現在ブロックの前記レジデュアルサンプルを導出することができる。例えば、前記現在ブロックに対して前記従属量子化が適用される場合に、デコーディング装置は、従属量子化に対する状態(Qstate)を、スキャニング順序において現在変換係数直前の変換係数の係数レベルに基づいてアップデートでき、前記アップデートされた状態及び前記現在変換係数に対するシンタックスエレメントに基づいて前記現在変換係数の係数レベルを導出することができ、前記導出された係数レベルを逆量子化してレジデュアルサンプルを導出することができる。例えば、前記現在変換係数は、前記アップデートされた状態に対するスカラー量子化器において前記現在変換係数の復元レベルに対する量子化パラメータに基づいて逆量子化されてよい。ここで、前記復元レベルは、前記現在変換係数に対するシンタックスエレメントに基づいて導出されてよい。
【0394】
一方、例えば、前記現在ブロックに対して前記サインデータハイディングが適用される場合に、前記現在ブロック内前記現在CGの最初の有効変換係数の符号(sign)は、前記現在CG内有効変換係数の絶対値の和に基づいて導出されてよい。例えば、例えば、前記有効変換係数の絶対値の和が偶数(even)である場合、前記最初の有効変換係数の符号は正数(positive value)として導出されてよく、前記有効変換係数の絶対値の和が奇数(odd)である場合、前記最初の有効変換係数の符号は負数(negative value)として導出されてよい。
【0395】
デコーディング装置は、前記レジデュアルサンプルに基づいて復元ピクチャーを生成する(S1040)。例えば、デコーディング装置は、前記レジデュアルサンプルに基づいて前記現在ブロックの復元サンプル及び/又は復元ピクチャーを生成することができる。例えば、デコーディング装置は、ビットストリームによって受信された予測情報に基づいて、前記現在ブロックに対するインター予測モード又はイントラ予測モードを行って予測サンプルを導出することができ、前記予測サンプルと前記レジデュアルサンプルとの加算によって前記復元サンプルを生成することができる。
【0396】
その後、必要によって、主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO及び/又はALF手順のようなインループフィルタリング手順が前記復元ピクチャーに適用されてよいことは、上述した通りである。
【0397】
図11には、本文書に係る映像デコーディング方法を行うデコーディング装置を概略的に示す。図10に開示の方法は、図11に開示のデコーディング装置によって行われてよい。具体的には、例えば、図11の前記デコーディング装置のエントロピーデコーディング部は、図10のS1000~S1020を行うことができ、図11の前記デコーディング装置のレジデュアル処理部は、図10のS1030を行うことができ、図11の前記デコーディング装置の加算部は、図10のS1040を行うことができる。また、たとえ図示してはいないが、現在ブロックに対する予測情報を受信する過程は、図11の前記デコーディング装置のエントロピーデコーディング部によって行われてよく、現在ブロックの予測サンプルを導出する過程は、図11の前記デコーディング装置の予測部によって行われてよい。
【0398】
上述した本文書によれば、レジデュアルコーディングの効率を上げることができる。
【0399】
また、本文書によればサインデータハイディング可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、サインデータハイディングが可用でない場合にTSRC可用フラグをシグナルしないことにより、TSRCが可用でなくて変換スキップブロックに対してRRCシンタックスがコードされる場合にサインデータハイディングが用いられないようにし、これにより、コーディング効率を向上させ、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【0400】
また、本文書によれば、従属量子化可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、従属量子化が可用でない場合にTSRC可用フラグをシグナルすることにより、TSRCが可用でなくて変換スキップブロックに対してRRCシンタックスがコードされる場合に従属量子化が用いられないようにし、これにより、コーディング効率を向上させ、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【0401】
また、本文書によれば、変換スキップ可用フラグとTSRC可用フラグ間のシグナリング関係を設定し、変換スキップが可用である場合にTSRC可用フラグをシグナルすることにより、コードされるビット量を減らしてレジデュアルコーディング効率全般を向上させることができる。
【0402】
上述した実施例において、方法は、一連の段階又はブロックであり、順序図に基づいて説明されているが、本文書は、段階の順序に限定されるものではなく、ある段階は、上述したのと異なる段階と異なる順序で又は同時に発生してもよい。また、当業者であれば、順序図に示された段階が排他的でなく、他の段階が含まれたり順序図の1つ又はそれ以上の段階が本文書の範囲に影響を及ぼさずに削除されてもよいことが理解できよう。
【0403】
本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で)具現され行われてよい。例えば、各図に示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われてよい。この場合、具現のための情報(例えば、information on instructions)又はアルゴリズムがデジタル記憶媒体に記憶されてよい。
【0404】
また、本文書の実施例が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信のような実時間通信装置、モバイルストリーミング装置、記憶媒体、キャムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末など)及び医療用ビデオ装置などに含まれてよく、ビデオ信号又はデータ信号を処理するために用いられてよい。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
【0405】
また、本文書の実施例が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されてよく、コンピュータ可読記録媒体に記憶されてよい。本文書によるデータ構造を有するマルチメディアデータも、コンピュータ可読記録媒体に記憶されてよい。前記コンピュータ可読記録媒体は、コンピュータで読み取り可能なデータが記憶されるあらゆる種類の記憶装置及び分散記憶装置を含む。前記コンピュータ可読記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク及び光学的データ記憶装置を含むことができる。また、前記コンピュータ可読記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータ可読記録媒体に記憶されてもよく、有無線通信ネットワークを通じて送信されてもよい。
【0406】
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品として具現されてよく、前記プログラムコードは、本文書の実施例によってコンピュータで実行されてよい。前記プログラムコードは、コンピュータで読み取り可能なキャリア上に記憶されてよい。
【0407】
図12には、本文書の実施例が適用されるコンテンツストリーミングシステム構造図を例示する。
【0408】
本文書の実施例が適用されるコンテンツストリーミングシステムは、大きく、エンコーディングサーバー、ストリーミングサーバー、ウェブサーバー、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
【0409】
前記エンコーディングサーバーは、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータとして圧縮してビットストリームを生成し、これを前記ストリーミングサーバーに送信する役割を担う。他の例として、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合に、前記エンコーディングサーバーは省略されてよい。
【0410】
前記ビットストリームは、本文書の実施例が適用されるエンコーディング方法又はビットストリーム生成方法によって生成されてよく、前記ストリーミングサーバーは、前記ビットストリームを送信又は受信する過程で一時的に前記ビットストリームを記憶することができる。
【0411】
前記ストリーミングサーバーは、ウェブサーバーを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバーはユーザにどのようなサービスがあるかを知らせる媒介体として働く。ユーザ所望のサービスを前記ウェブサーバーに要請すれば、前記ウェブサーバーはそれをストリーミングサーバーに伝達し、前記ストリーミングサーバーはユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは別個の制御サーバーを含むことができ、この場合、前記制御サーバーは前記コンテンツストリーミングシステムにおける各装置間の命令/応答を制御する役割を担う。
【0412】
前記ストリーミングサーバーは、メディアストレージ及び/又はエンコーディングサーバーからコンテンツを受信することができる。例えば、前記エンコーディングサーバーからコンテンツを受信する場合に、前記コンテンツを実時間で受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバーは前記ビットストリームを一定時間記憶することができる。
【0413】
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどを挙げることができる。前記コンテンツストリーミングシステム内の各サーバーは、分散サーバーとして運営されてよく、この場合、各サーバーで受信するデータは分散処理されてよい。
【0414】
本明細書に記載された請求項は様々な方式で組み合わせられてよい。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されてよく、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されてよい。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置として具現されてよく、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法として具現されてよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12