(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-25
(45)【発行日】2024-04-02
(54)【発明の名称】映像コーディングシステムにおいて文脈コーディングされたサインフラグを使用する映像デコーディング方法及びその装置
(51)【国際特許分類】
H04N 19/13 20140101AFI20240326BHJP
H04N 19/157 20140101ALI20240326BHJP
H04N 19/176 20140101ALI20240326BHJP
H04N 19/70 20140101ALI20240326BHJP
H04N 19/91 20140101ALI20240326BHJP
【FI】
H04N19/13
H04N19/157
H04N19/176
H04N19/70
H04N19/91
(21)【出願番号】P 2022150957
(22)【出願日】2022-09-22
(62)【分割の表示】P 2021552626の分割
【原出願日】2020-03-04
【審査請求日】2022-10-04
(32)【優先日】2019-03-04
(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)【発明者】
【氏名】キム スンファン
【審査官】鉢呂 健
(56)【参考文献】
【文献】特許第7148739(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置により行われる映像デコーディング方法において、
現在ブロックに対するレジデュアル情報を受信する段階と、
前記現在ブロックの現在レジデュアル係数のサインを表すサインフラグに対する文脈インデックスインクリメントを導出する段階と、
前記文脈インデックスインクリメントに基づいて前記サインフラグに対する文脈インデックスを導出する段階と、
前記文脈インデックスにより示される前記サインフラグに対する文脈モデルに基づいて前記サインフラグをデコーディングする段階と、
前記サインフラグに基づいて現在レジデュアル係数を導出する段階と、
前記現在レジデュアル係数に基づいてレジデュアルサンプルを導出する段階と、
前記レジデュアルサンプルに基づいて復元ピクチャを生成する段階とを含み、
前記サインフラグに対する前記文脈インデックスインクリメントは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出される、映像デコーディング方法。
【請求項2】
前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記文脈インデックスインクリメントの値は0として導出され、
前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記文脈インデックスインクリメントの値は1として導出される、請求項1に記載の映像デコーディング方法。
【請求項3】
前記サインフラグに対する前記文脈インデックスインクリメントの値は、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされる複数のレジデュアル係数のサインフラグに基づいて複数の値のうち1つとして導出される、請求項1に記載の映像デコーディング方法。
【請求項4】
前記現在ブロック内の現在サブブロックが1番目の順序でデコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在サブブロックにおいて1番目にデコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数は、前記現在サブブロックの以前にデコーディングされたサブブロック内の最後にデコーディングされるレジデュアル係数として導出される、請求項1に記載の映像デコーディング方法。
【請求項5】
前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数は、前記現在レジデュアル係数に隣接するレジデュアル係数である、請求項1に記載の映像デコーディング方法。
【請求項6】
前記現在ブロックの変換適用の可否に基づいて前記サインフラグが前記文脈モデルに基づいてデコーディングされるか否かを判断する段階をさらに含む、請求項1に記載の映像デコーディング方法。
【請求項7】
前記現在ブロックに変換が適用される場合、前記サインフラグはバイパス(bypass)デコーディングされ、
前記現在ブロックに変換が適用されない場合、前記サインフラグが前記文脈モデルに基づいてデコーディングされる、請求項6に記載の映像デコーディング方法。
【請求項8】
エンコーディング装置により行われる映像エンコーディング方法において、
現在ブロックのレジデュアルサンプルを導出する段階と、
前記レジデュアルサンプルに基づいて前記現在ブロックの現在レジデュアル係数を導出する段階と、
前記現在レジデュアル係数のサインを表すサインフラグに対する文脈インデックスインクリメントを導出する段階と、
前記文脈インデックスインクリメントに基づいて前記サインフラグに対する文脈インデックスを導出する段階と、
前記文脈インデックスにより示される前記サインフラグに対する文脈モデルに基づいて前記サインフラグをエンコーディングする段階と、
前記サインフラグを含むビットストリームを生成する段階とを含み、
前記サインフラグに対する前記文脈インデックスインクリメントは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされるレジデュアル係数のサインフラグに基づいて導出される、映像エンコーディング方法。
【請求項9】
前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記文脈インデックスインクリメントの値は0として導出され、
前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記文脈インデックスインクリメントの値は1として導出される、請求項8に記載の映像エンコーディング方法。
【請求項10】
前記サインフラグに対する前記文脈インデックスインクリメントの値は、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされる複数のレジデュアル係数のサインフラグに基づいて複数の値のうち1つとして導出される、請求項8に記載の映像エンコーディング方法。
【請求項11】
前記現在ブロック内の現在のサブブロックが1番目の順序でエンコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在のサブブロックにおいて1番目にエンコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数は前記現在のサブブロックの以前にエンコーディングされたサブブロック内の最後にエンコーディングされるレジデュアル係数として導出される、請求項8に記載の映像エンコーディング方法 。
【請求項12】
前記現在ブロックの変換適用の可否に基づいて前記サインフラグが前記文脈モデルに基づいてエンコーディングされるか否かを判断する段階をさらに含む、請求項8に記載の映像エンコーディング方法。
【請求項13】
映像に対するデータを送信する方法であって、
現在ブロックの現在レジデュアル係数のサインを表すサインフラグを含む映像情報のビットストリームを取得する段階と、
前記サインフラグを含む前記映像情報のビットストリームを含む前記データを送信する段階とを含み、
前記サインフラグに対する文脈インデックスインクリメントが導出され、前記サインフラグに対する
文脈インデックスは前記文脈インデックスインクリメントに基づいて導出され、前記サインフラグは、前記文脈インデックスにより示された前記サインフラグに対する文脈モデルに基づいてエンコードされ、
前記サインフラグに対する前記文脈インデックスインクリメントは前記現在ブロックにおいて前記現在レジデュアル係数の以前にエンコードされたレジデュアル係数のサインフラグに基づいて導出される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、より詳細には、映像コーディングシステムにおいて以前にコーディングされたレジデュアル係数のサインフラグに基づいて現在レジデュアル係数の符号を表すサインフラグの文脈モデルを導出し、導出された文脈モデルに基づいて前記サインフラグをコーディングする映像デコーディング方法及びその装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が様々な分野で増加している。映像データが高解像度、高品質になるほど、既存の映像データに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信し、または既存の格納媒体を利用して映像データを格納する場合、送信費用と格納費用が増加される。
【0003】
それによって、高解像度、高品質映像の情報を効果的に送信または格納し、再生するために、高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本文書の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0005】
本文書の他の技術的課題は、レジデュアルコーディングの効率を上げる方法及び装置を提供することにある。
【0006】
本文書のまた他の技術的課題は、レジデュアル情報をコーディングするにおいて、レジデュアル係数の符号を表すサインフラグの文脈モデルを前記レジデュアル係数の以前にコーディングされた周辺レジデュアル係数のサインフラグに基づいて導出してコーディングする方法及び装置を提供することにある。
【課題を解決するための手段】
【0007】
本文書の一実施形態によれば、デコーディング装置により行われる映像デコーディング方法が提供される。前記方法は、現在ブロックの現在レジデュアル係数のサインフラグに対する文脈モデルを導出する段階と、前記文脈モデルに基づいて前記サインフラグをデコーディングする段階とを含み、前記サインフラグに対する前記文脈モデルは、前記ブロック内の現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出されることを特徴とする。
【0008】
本文書の他の一実施形態によれば、映像デコーディングを行うデコーディング装置が提供される。前記デコーディング装置は、現在ブロックの現在レジデュアル係数のサインフラグに対する文脈モデルを導出し、前記文脈モデルに基づいて前記サインフラグをデコーディングするエントロピーデコーディング部を含み、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出されることを特徴とする。
【0009】
本文書のまた他の一実施形態によれば、エンコーディング装置により行われるビデオエンコーディング方法を提供する。前記方法は、現在ブロックの現在レジデュアル係数を導出する段階と、前記現在レジデュアル係数のサインフラグに対する文脈モデルを導出する段階と、前記文脈モデルに基づいて前記サインフラグをエンコーディングする段階とを含み、前記サインフラグに対する前記文脈モデルは、前記ブロック内の前記現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出されることを特徴とする。
【0010】
本文書のまた他の実施形態によれば、ビデオエンコーディング装置を提供する。前記エンコーディング装置は、現在レジデュアル係数のサインフラグに対する文脈モデルを導出し、前記文脈モデルに基づいて前記サインフラグをエンコーディングするエントロピーエンコーディング部を含み、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出されることを特徴とする。
【発明の効果】
【0011】
本文書によれば、レジデュアルコーディングの効率を上げることができる。
【0012】
本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグを文脈モデルに基づいてコーディングし、これを通じてレジデュアル係数に対するサインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【0013】
本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグに対する文脈モデルを前記レジデュアル係数に隣接する周辺レジデュアル係数の符号に基づいて導出し、これにより隣接するレジデュアル係数間の相関性を考慮してサインフラグをコーディングし、前記サインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【0014】
本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグに対する文脈モデルを前記レジデュアル係数の以前にデコーディングされた周辺レジデュアル係数の符号に基づいて導出し、これにより隣接するレジデュアル係数間の相関性を考慮してサインフラグをコーディングし、前記サインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】本文書の実施形態が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【
図2】本文書の実施形態が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
【
図3】本文書の実施形態が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【
図4】シンタックスエレメント(syntax element)をエンコーディングするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。
【
図5】4×4ブロック内の変換係数等の例示を図示する図である。
【
図6】本実施形態によって現在レジデュアル係数のサインフラグの文脈モデルを決定する一例を示す。
【
図7】前記現在ブロックの変換適用の可否及び以前コーディングされたレジデュアル係数の符号に基づいて現在レジデュアル係数のサインフラグをコーディングするエンコーディング装置及びデコーディング装置を例示的に示す。
【
図8】本文書に係るエンコーディング装置による映像エンコーディング方法を概略的に示す。
【
図9】本文書に係る映像エンコーディング方法を行うエンコーディング装置を概略的に示す。
【
図10】本文書に係るデコーディング装置による映像デコーディング方法を概略的に示す。
【
図11】本文書に係る映像デコーディング方法を行うデコーディング装置を概略的に示す。
【
図12】本文書の実施形態が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【発明を実施するための形態】
【0016】
本文書は、様々な変更を加えることができ、種々の実施形態を有することができ、特定実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書において常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【0017】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて1つの構成をなすことができ、1つの構成を複数の構成に分けることもできる。各構成が統合及び/又は分離された実施形態も本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【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 Video 1)標準、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行の長方形領域を示す(a brick may represent a rectangular region of CTU rows within a tile in a picture)。タイルは多数のブリックでパーティショニングされ、各ブリックは前記タイル内の1つ以上のCTU行で構成される(A tile may be partitioned into multiple bricks, each of which consisting of one or more CTU rows within the tile)。複数のブリックによりパーティショニングされていないタイルもブリックと呼ばれてもよい(A tile that is not partitioned into multiple bricks may be also referred to as a brick)。ブリックスキャンはピクチャをパーティショニングするCTUの特定の順次オーダリングを示し、前記CTUはブリック内においてCTUラスタスキャンで整列され、タイル内のブリックは前記タイルの前記ブリックのラスタスキャンで連続的に整列され、そして、ピクチャ内のタイルは前記ピクチャの前記タイルのラスタスキャンで連続整列される(A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。また、サブピクチャはサブピクチャ内の1つ以上のスライスの長方形領域を示す(a subpicture may represent a rectangular region of one or more slices within a picture)。すなわち、サブピクチャはピクチャの長方形領域を総括的にカバーする1つ以上のスライスを含む(a subpicture contains one or more slices that collectively cover a rectangular region of a picture)。タイルは特定タイル列及び特定タイル列以内のCTUの長方形領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。前記タイル列はCTUの長方形領域であり、前記長方形領域は前記ピクチャの高さと同じ高さを有し、幅はピクチャパラメータセット内のシンタックス要素により明示される(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。前記タイル行はCTUの長方形領域であり、前記長方形領域はピクチャパラメータセット内のシンタックスエレメントにより明示される幅を有し、高さは前記ピクチャの高さと同一であり得る(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture )。タイルスキャンはピクチャをパーティショニングするCTUの特定の順次オーダリングを示し、前記CTUはタイル内のCTUラスタスキャンで連続整列され、ピクチャ内のタイルは前記ピクチャの前記タイルのラスタスキャンで連続整列される(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスはピクチャの整数個のブリックを含み、前記整数個のブリックは1つのNALユニットに含まれる(A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit)。スライスは複数の完全なタイルで構成され、または、1つのタイルの完全なブリックの連続的なシーケンスであり得る(A slice may consists of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile)。この文書では、タイルグループとスライスは混用されてもよい。例えば、本文書ではtile group/tile group headerはslice/slice headerと呼ばれてもよい。
【0030】
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0031】
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち、少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、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】
本明細書において「少なくとも1つのA及びB(at least one of A and B)」は、「Aのみ」、「Bのみ」又は「AとBの両方」を意味し得る。また、本明細書において「少なくとも1つのA又はB(at least one of A or B)」や「少なくとも1つのA及び/又はB(at least one of A and/or B)」という表現は、「少なくとも1つのA及びB(at least one of A and B)」と同様に解釈され得る。
【0035】
また、本明細書において「少なくとも1つのA、B及びC(at least one of A, B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」又は「A、B及びCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。また、「少なくとも1つのA、B又はC(at least one of A, B or C)」や「少なくとも1つのA、B及び/又はC(at least one of A, B and/or C)」は「少なくとも1つの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、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。レジデュアル処理部230は、減算部(subtractor)231をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。前述した映像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250、及びフィルタリング部260は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
【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)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【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つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して実行されることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【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)のうち、少なくとも1つを含むことができる。ここで、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】
メモリ270DPBは、修正された復元ピクチャをインター予測部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は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ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エントロピーデコーディング方法は、ビットストリームで各構文要素に該当するビンを受信し、デコーディング対象構文要素情報と隣接及びデコーディング対象ブロックのデコーディング情報、または以前ステップでデコーディングされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測し、ビンの算術デコーディング(arithmetic decoding)を実行して各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコーディングされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが実行されたレジデュアル値、即ち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出できる。また、エントロピーデコーディング部310でデコーディングされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコーディング部310の構成要素である。一方、本文書に係るデコーディング装置は、ビデオ/映像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち、少なくとも1つを備えることができる。
【0058】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコーディング装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0059】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0060】
予測部は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0061】
予測部320は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して実行されることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/映像情報に含まれてシグナリングされることができる。
【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】
上述した内容のように、エンコーディング装置は、例えば指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコーディング方法を行うことができる。また、デコーディング装置は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコーディングし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値などを出力できる。
【0071】
例えば、上述したコーディング方法等は、後述する内容のように行われることができる。
【0072】
図4は、シンタックスエレメント(syntax element)をエンコーディングするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。例えば、CABACの符号化過程は、エンコーディング装置は入力信号が二進値でないシンタックスエレメントである場合には、前記入力信号の値を二進化(binarization)して、入力信号を二進値に変換することができる。また、前記入力信号が既に二進値である場合(すなわち、前記入力信号の値が二進値である場合)には、二進化が行われず、バイパス(bypass)されることができる。ここで、二進値を構成するそれぞれの二進数0または1をビン(bin)ということができる。例えば、二進化された後の二進ストリングが110である場合、1、1、0の各々を1つのビンという。1つのシンタックスエレメントに対する前記ビン(等)は、前記シンタックスエレメントの値を表すことができる。
【0073】
その後、前記シンタックスエレメントの二進化されたビン等は、正規(regular)符号化エンジンまたはバイパス符号化エンジンとして入力されることができる。エンコーディング装置の正規符号化エンジンは、当該ビンに対して確率値を反映する文脈モデル(context model)を割り当てることができ、割り当てられた文脈モデルに基づいて当該ビンをエンコーディングすることができる。エンコーディング装置の前記正規符号化エンジンは、各ビンに対するエンコーディングを行った後に、当該ビンに対する文脈モデルを更新できる。上述した内容のようにエンコーディングされるビンは、文脈符号化ビン(context-coded bin)と表すことができる。
【0074】
一方、前記シンタックスエレメントの二進化されたビン等が前記バイパス符号化エンジンに入力される場合には、次のようにコーディングされることができる。例えば、エンコーディング装置のバイパス符号化エンジンは、入力されたビンに対して確率を推定する手順と、符号化後に前記ビンに適用した確率モデルを更新する手順とを省略する。バイパスエンコーディングが適用される場合、エンコーディング装置は、文脈モデルを割り当てる代わりに、均一な確率分布を適用して、入力されるビンをエンコーディングすることができ、これを通じてエンコーディング速度を向上させることができる。上述した内容のようにエンコーディングされるビンは、バイパスビン(bypass bin)と表すことができる。
【0075】
エントロピーデコーディングは、上述したエントロピーエンコーディングと同じ過程を逆順に行う過程を表すことができる。
【0076】
例えば、シンタックスエレメントが文脈モデルに基づいてデコーディングされる場合、デコーディング装置は、ビットストリームを介して前記シンタックスエレメントに該当するビンを受信でき、前記シンタックスエレメントとデコーディング対象ブロックまたは周辺ブロックのデコーディング情報或いは以前ステップでデコーディングされたシンボル/ビンの情報を利用して文脈モデル(context model)を決定でき、決定された文脈モデルによって前記受信されたビン(bin)の発生確率を予測し、ビンの算術デコーディング(arithmetic decoding)を行って前記シンタックスエレメントの値を導出できる。その後、前記決定された文脈モデルに次にデコーディングされるビンの文脈モデルがアップデートされ得る。
【0077】
また、例えば、シンタックスエレメントがバイパスデコーディングされる場合、デコーディング装置は、ビットストリームを介して前記シンタックスエレメントに該当するビンを受信でき、均一な確率分布を適用して、入力されるビンをデコーディングすることができる。この場合、デコーディング装置は、シンタックスエレメントの文脈モデルを導出する手順と、デコーディング以後に前記ビンに適用した文脈モデルを更新する手順とは省略されることができる。
【0078】
上述したように、レジデュアルサンプル等は、変換、量子化過程を経て量子化された変換係数等に導出されることができる。量子化された変換係数等は、変換係数等とも呼ばれることができる。この場合、ブロック内の変換係数等は、レジデュアル情報の形態にシグナリングされることができる。前記レジデュアル情報は、レジデュアルコーディングシンタックスを含むことができる。すなわち、エンコーディング装置は、レジデュアル情報としてレジデュアルコーディングシンタックスを構成し、これをエンコーディングしてビットストリーム形態に出力することができ、デコーディング装置は、ビットストリームからレジデュアルコーディングシンタックスをデコーディングしてレジデュアル(量子化された)変換係数等を導出できる。前記レジデュアルコーディングシンタックスは、後述するように、当該ブロックに対して変換が適用されたか、ブロック内の最後の有効変換係数の位置がどこであるか、サブブロック内の有効変換係数が存在するか、有効変換係数の大きさ/符号がどうであるかなどを表すシンタックスエレメント等(syntax elements)を含むことができる。
【0079】
例えば、(量子化された)変換係数(すなわち、前記レジデュアル情報)は、transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag、dec_abs_level、mts_idxなどのシンタックスエレメント等(syntax elements)に基づいてエンコーディング及び/又はデコーディングされることができる。レジデュアルデータエンコーディング/デコーディングと関連したシンタックスエレメント等は、次の表のように表すことができる。
【0080】
【0081】
【0082】
【0083】
【0084】
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と混用され得ることは、上述のとおりである。
【0085】
一方、前記変換スキップフラグがシグナリングされた後にシグナリングされるシンタックスエレメント等は、後述した表6に開示されたシンタックスエレメント等と同一であることができ、前記シンタックスエレメント等についての具体的な説明は、後述のとおりである。
【0086】
一方、上述したシンタックスエレメント等を送信する実施形態とは異なり、tu_mts_idxをシグナリングする方案が提案され得る。
【0087】
具体的に、既存のVVC Draft 3でtu_mts_idxをシグナリングする方案と提案されたtu_mts_idxをシグナリングする方案とを比較すれば、次のとおりであることができる。
【0088】
【0089】
表2に示されたように、既存の方案によれば、現在ブロックに対するMTSフラグが先にパーシングされた後、変換スキップフラグがパーシングされ、その後にMTSインデックスに対するコーディングが行われ得る。ここで、前記MTSインデックスに対するコーディングは、固定長さ二進化によって行われることができ、前記MTSインデックスに対する固定されたビット長さは、2であることができる。
【0090】
これとは異なり、提案された方案によれば、変換スキップフラグ及び前記MTSフラグが別にパーシングされず、前記MTSインデックスがコーディングされ得るし、前記MTSインデックスに対するコーディングには、トランケーテッド単項二進化(truncated unary binarization)が使用され得る。ここで、前記MTSインデックスは、現在ブロックのレジデュアル情報に対して変換が適用されるか否かを表すことができ、前記MTSが適用されるか否かを表すことができる。すなわち、提案された方案では、前記変換スキップフラグ、前記MTSフラグ、及び前記MTSインデックスを1つのシンタックスエレメントとしてシグナリングする方案が提案され得る。提案された方案において、前記MTSインデックスの1番目のビンは、現在ブロックのレジデュアル情報に対して変換が適用されるか否かを表すことができ、前記MTSインデックスの2番目のビンは、前記MTSが適用されるか否か及び適用される変換カーネルを表すことができる。
【0091】
前記提案された方法においてMTSインデックスの値が表す意味及び二進化値は、次の表のとおりであることができる。
【0092】
【0093】
例えば、前記MTSインデックスの値が0である場合、前記MTSインデックスは、前記現在ブロックに対する変換は適用され、MTSは適用されず、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DCT-2であることを表すことができる。また、前記MTSインデックスの値が1である場合、前記MTSインデックスは、前記現在ブロックに対する変換が適用されないことを表すことができる(すなわち、MTSも適用されず、変換カーネルタイプも指さない)。また、前記MTSインデックスの値が2である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DST-7であることを表すことができる。また、前記MTSインデックスの値が3である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプは、DCT-8であり、垂直変換カーネルタイプは、DST-7であることを表すことができる。また、前記MTSインデックスの値が4である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプは、DST-7であり、垂直変換カーネルタイプは、DCT-8であることを表すことができる。また、前記MTSインデックスの値が5である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DCT-8であることを表すことができる。
【0094】
または、前記MTSインデックスの値が表す意味及び二進化値の他の一例は、次の表のとおりであることができる。
【0095】
【0096】
例えば、前記MTSインデックスの値が0である場合、前記MTSインデックスは、前記現在ブロックに対する変換が適用されないことを表すことができる(すなわち、MTSも適用されず、変換カーネルタイプも指さない)。また、前記MTSインデックスの値が1である場合、前記MTSインデックスは、前記現在ブロックに対する変換は適用され、MTSは適用されず、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DCT-2であることを表すことができる。また、前記MTSインデックスの値が2である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DST-7であることを表すことができる。また、前記MTSインデックスの値が3である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプは、DCT-8であり、垂直変換カーネルタイプは、DST-7であることを表すことができる。また、前記MTSインデックスの値が4である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプは、DST-7であり、垂直変換カーネルタイプは、DCT-8であることを表すことができる。また、前記MTSインデックスの値が5である場合、前記MTSインデックスは、前記現在ブロックに対する変換及びMTSが適用され、水平変換カーネルタイプ及び垂直変換カーネルタイプは、DCT-8であることを表すことができる。
【0097】
一方、文脈モデルの数は変更されないことができ、前記tu_mts_idxの各binに対する文脈インデックスインクリメント(increment)ctxIncを指定する方法は、次の表のとおりであることができる。
【0098】
【0099】
前記提案されたMTSインデックスは、統合された(unified)MTSインデックスと表すこともできる。
【0100】
前記統合されたMTSインデックスを含むレジデュアルデータエンコーディング/デコーディングと関連したシンタックスエレメント等は、次の表のように表すことができる。
【0101】
【0102】
【0103】
【0104】
【0105】
上述した表6を参照すれば、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_remainder、dec_abs_level、及び/又はcoeff_sign_flagがエンコーディング/デコーディングされ得る。
【0106】
一実施形態においてエンコーディング装置は、シンタックスエレメント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)にイントラ/インター予測が適用されるか否か及び/又は具体的なイントラ/インター予測モードに基づいて決定されることができる。
【0107】
次に、エンコーディング装置は、前記変換ブロックを4×4サブブロック(sub-block)等に分割した後、各4×4サブブロック毎に1ビットのシンタックス要素coded_sub_block_flagを使用して、現在サブブロック内に0でない係数が存在するか否かを表すことができる。
【0108】
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であると仮定されることができる。
【0109】
仮に、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でない有効係数であるか否かを表す有効係数フラグのシンタックスエレメントの一例示に該当することができる。
【0110】
sig_coeff_flagに対する符号化以後の残りのレベル値は、下記の数式のように導出されることができる。すなわち、符号化すべきレベル値を表すシンタックス要素remAbsLevelは、下記の数式のように導出されることができる。
【0111】
【0112】
ここで、coeffは、実際変換係数値を意味する。
【0113】
また、abs_level_gt1_flagは、当該スキャニング位置nにおけるremAbsLevel’が1より大きいか否かを表すことができる。例えば、abs_level_gt1_flagの値が0であれば、当該位置の変換係数の絶対値(absolute value)は1であることができる。また、前記abs_level_gt1_flagの値が1であれば、その後に符号化すべきレベル値を表す前記remAbsLevelは、下記の数式のように導出されることができる。
【0114】
【0115】
また、上述した数式2に記載されたremAbsLevelのleast significant coefficient(LSB)値は、par_level_flagを介して下記の数式3のようにエンコーディングされることができる。
【0116】
【0117】
ここで、par_level_flag[n」は、スキャニング位置nにおける変換係数レベル(値)のパリティ(parity)を表すことができる。
【0118】
par_leve_flagエンコーディング後にエンコーディングすべき変換係数レベル値remAbsLevelは、次の数式のようにアップデートされることができる。
【0119】
【0120】
abs_level_gt3_flagは、当該スキャニング位置nにおけるremAbsLevelが3より大きいか否かを表すことができる。rem_abs_gt3_flagが1である場合にのみabs_remainderに対するエンコーディングが行われ得る。実際変換係数値であるcoeffと各シンタックス要素等との関係は、次の数式のとおりであることができる。
【0121】
【0122】
また、次の表は、上述した数式5と関連した例示等を表す。
【0123】
【0124】
ここで、|coeff|は、変換係数レベル(値)を表し、変換係数に対するAbsLevelと表示されることもできる。また、各係数の符号は、1ビットシンボルであるcoeff_sign_flagを用いてエンコーディングされることができる。
【0125】
一方、上述したシンタックスエレメント等を送信する実施形態と異なる例として、レジデュアルコーディングのために変換スキップが適用されるか否かによって互いに相違したレジデュアルコーディング方式、すなわち、変換スキップが適用されるか否かによって相違したレジデュアルシンタックスエレメント等を送信する実施形態が提案され得る。
【0126】
上述した例によるレジデュアルコーディングに対するシンタックスエレメント等は、次の表等のように表すことができる。
【0127】
【0128】
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
本実施形態によれば、表8に示されたように、変換スキップフラグのシンタックスエレメントtransform_skip_flagの値に応じてレジデュアルコーディングが分岐され得る。すなわち、変換スキップフラグの値に基づいて(変換スキップ可否に基づいて)レジデュアルコーディングのために相違したシンタックスエレメントが使用され得る。変換スキップが適用されない場合(すなわち、変換が適用された場合)に使用されるレジデュアルコーディングは、レギュラーレジデュアルコーディング(Regular Residual Coding、RRC)と呼ばれることができ、変換スキップが適用されない場合(すなわち、変換が適用されない場合)のレジデュアルコーディングは、変換スキップレジデュアルコーディング(Transform Skip Residual Coding、TSRC)と呼ばれることができる。前記表9は、transform_skip_flagの値が0である場合、すなわち、変換が適用された場合のレジデュアルコーディングのシンタックスエレメントを表すことができ、表10は、transform_skip_flagの値が1である場合、すなわち、変換が適用されない場合のレジデュアルコーディングのシンタックスエレメントを表すことができる。
【0136】
具体的に、例えば、変換ブロックの変換スキップ可否を指示する変換スキップフラグがパーシングされ得るし、前記変換スキップフラグが1であるか否かが判断され得る。前記変換スキップフラグの値が1である場合、表10に示されたように、変換ブロックのレジデュアル係数に対するシンタックスエレメント等sig_coeff_flag、coeff_sign_flag、abs_level_gtx_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で変換係数レベル(または、変換係数レベルを右側に1だけシフトした値)の絶対値が(j<<1)+1より大きいか否かを表すフラグであることができる。前記(j<<1)+1は、場合によって、第1閾値、第2閾値など、所定の閾値に代替されることもできる。
【0137】
また、前記変換スキップフラグの値が0である場合、表9に示されたように、変換ブロックのレジデュアル係数に対するシンタックスエレメント等sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、dec_abs_level、coeff_sign_flagがパーシングされ得るし、前記シンタックスエレメント等に基づいて前記レジデュアル係数が導出され得る。この場合、前記シンタックスエレメント等は、順次パーシングされることができ、パーシング順序が変更されることもできる。また、前記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)の一例示であることができる。
【0138】
上述したように、変換が適用されていない場合のレジデュアル係数に対するシンタックスエレメント等と、変換が適用された場合のレジデュアル係数に対するシンタックスエレメント等とを比較すれば、シンタックスエレメントpar_level_flagがエンコーディング及びデコーディングされないことができる。これは、レジデュアル係数のレベル値が大きい場合に、全てのレジデュアル係数に対するsig_coeff_flag、par_level_flag、abs_level_gtx_flagなどのシンタックスエレメント等を全てコーディングすることが、レジデュアル係数のレベル値をそのまま二進化して送信することに比べて重なった情報を送信する可能性が高く、これにより、本実施形態では、レジデュアル係数のレベル値が大きい可能性のある変換スキップが適用される場合には、シンタックスエレメントpar_level_flagを省略することで、コーディング効率を向上させることができる。
【0139】
一方、CABACは、高い性能を提供するが、処理量(throughput)性能が良くないという短所を有する。これは、CABACの正規符号化エンジンによることであり、正規符号化(すなわち、CABACの正規符号化エンジンによるエンコーディング)は、以前のビン(bin)の符号化によりアップデートされた確率状態と範囲を使用するため、高いデータ依存性を示し、確率区間を読み取って現在状態を判断するのに多くの時間を要する。CABACの処理量問題は、文脈符号化ビン(context-coded bin)の数を制限することにより解決できる。例えば、前述の表1、表6、表9または表10のようにsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagを表現するために使われたビンの和が当該ブロックのサイズに応じる個数に制限される。一例として、当該ブロックが4×4サイズのブロックである場合、前記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagに対するビンの和は32個に制限され、当該ブロックが2×2サイズのブロックである場合は、前記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagに対するビンの和は8つに制限される。前記ビンの制限された個数はremBinsPass1で表すことができる。または、一例として、より高いCABAC処理量のために、文脈符号化ビン(context coded bin)の個数がコーディング対象CGを含むブロック(CB又はTB)に対して制限される。言い換えると、文脈符号化ビンの個数がブロック(CB又はTB)単位に制限されることである。例えば、現在ブロックのサイズが16×16であると、現在のCGと関係なく現在ブロックに対する文脈符号化ビンの個数が前記現在ブロックのピクセル個数の1.75倍、すなわち、448個に制限される。
【0140】
この場合、エンコーディング装置は、文脈要素を符号化するために制限された個数の文脈符号化ビンを全て使用すると、残りの係数をCABACを使用せずに後述する前記係数に対する二進化方法により二進化し、バイパスエンコーディングを行う。言い換えると、例えば、4×4CGに対してコーディングされた文脈符号化ビン(context coded bin)の数が32、又は2×2CGに対してコーディングされた文脈符号化ビンの数が8になる場合は、これ以上文脈符号化ビンでコーディングされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagはエンコーディングされることなく、後述する表8のように直ちにdec_abs_levelでエンコーディングされることもある。また、例えば、4×4ブロックに対してコーディングされた文脈符号化ビン(context coded bin)の数が全体ブロックのピクセル数の1.75倍、すなわち、28に制限される場合、これ以上文脈符号化ビンでコーディングされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagはエンコーディングされることなく、後述する表8のように直ちにdec_abs_levelでエンコーディングされることもある。
【0141】
【0142】
dec_abs_levelに基づいて|coeff|値が導出され得る。この場合、変換係数値である|coeff|は、次の数式のように導出されることができる。
【0143】
【0144】
また、前記coeff_sign_flagは、当該スキャニング位置nにおける変換係数レベルの符号(sign)を表すことができる。すなわち、前記coeff_sign_flagは、当該スキャニング位置nにおける変換係数の符号(sign)を表すことができる。また、前記mts_idxは、現在変換ブロック内のレジデュアルサンプル等に対して水平方向及び垂直方向に適用される変換カーネル等を表すことができる。
【0145】
図5は、4×4ブロック内の変換係数等の例示を図示する図である。
【0146】
図5の4×4ブロックは、量子化された係数等の一例を示す。
図5に示されたブロックは、4×4変換ブロックであるか、または8×8、16×16、32×32、64×64変換ブロックの4×4サブブロックであることができる。
図5の4×4ブロックは、ルマブロックまたはクロマブロックを表すことができる。
【0147】
例えば、
図5の逆対角線スキャンされる係数に対するエンコーディング結果は、次の表のとおりであることができる。
【0148】
【0149】
上述した表12においてscan_posは、逆対角線スキャンによる係数の位置を表す。scan_pos15は、4×4ブロックで最も先にスキャンされる、すなわち、右下端コーナの変換係数であることができ、scan_pos0は、最も後にスキャンされる、すなわち、左上端コーナの変換係数であることができる。一方、一実施形態において前記scan_posは、スキャン位置と称されることもできる。例えば、前記scan_pos0は、スキャン位置0と称されることができる。
【0150】
一方、上述した内容のように、エンコーディング装置は、入力信号が二進値でないシンタックスエレメントである場合には、前記入力信号の値を二進化(binarization)して入力信号を二進値に変換することができる。また、デコーディング装置は、前記シンタックスエレメントをデコーディングして、前記シンタックスエレメントの二進化された値(すなわち、二進化されたビン)を導出でき、前記二進化された値を逆二進化して、前記シンタックスエレメントの値を導出できる。前記二進化過程は、後述するトランケーテッドライス(Truncated Rice、TR)二進化プロセス(binarization process)、k次Exp-Golomb(k-th order Exp-Golomb、EGk)二進化プロセス(binarization process)、k次Limited Exp-Golomb(Limited k-th order Exp-Golomb、Limited EGk)、または固定長さ(Fixed-length、FL)二進化プロセス(binarization process)などで行われることができる。また、逆二進化過程は、前記TR二進化プロセス、前記EGk二進化プロセス、または前記FL二進化プロセスに基づいて行われて、前記シンタックスエレメントの値を導出する過程を表すことができる。
【0151】
例えば、前記TR二進化プロセスは、次のように行われることができる。
【0152】
前記TR二進化プロセスの入力(input)は、TR二進化に対する要請とシンタックスエレメントに対するcMax及びcRiceParamであることができる。また、前記TR二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するTR二進化であることができる。
【0153】
具体的に、一例として、シンタックスエレメントに対する接尾辞(suffix)ビンストリングが存在する場合には、前記シンタックスエレメントに対するTRビンストリングは、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であることができ、前記接尾辞ビンストリングが存在しない場合には、前記シンタックスエレメントに対する前記TRビンストリングは、前記接頭辞ビンストリングであることができる。例えば、前記接頭辞ビンストリングは、後述するように導出されることができる。
【0154】
前記シンタックスエレメントに対する前記symbolValの接頭辞値(prefix value)は、次の数式のように導出されることができる。
【0155】
【0156】
ここで、prefixValは、前記symbolValの接頭辞値を表すことができる。前記シンタックスエレメントの前記TRビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、後述するように導出されることができる。
【0157】
例えば、前記prefixValがcMax>>cRiceParamより小さい場合、接頭辞ビンストリングは、binIdxによりインデクシングされる(indexed)長さprefixVal+1のビットストリング(bit string)であることができる。すなわち、前記prefixValがcMax>>cRiceParamより小さい場合、前記接頭辞ビンストリングは、binIdxが指すprefixVal+1ビット数のビットストリングであることができる。prefixValより小さいbinIdxに対するビンは、1と同一であることができる。また、prefixValと同じbinIdxに対するビンは、0と同一であることができる。
【0158】
例えば、前記prefixValに対する単項二進化(unary binarization)で導出されるビンストリングは、次の表のとおりであることができる。
【0159】
【0160】
一方、前記prefixValがcMax>>cRiceParamより小さくない場合、前記接頭辞ビンストリングは、長さがcMax>>cRiceParamであり、全てのビンが1であるビットストリングであることができる。
【0161】
また、cMaxがsymbolValより大きく、cRiceParamが0より大きい場合、TRビンストリングの接尾辞ビンストリングが存在しうる。例えば、前記接尾辞ビンストリングは、後述するように導出されることができる。
【0162】
前記シンタックスエレメントに対する前記symbolValの接尾辞値(suffix value)は、次の数式のように導出されることができる。
【0163】
【0164】
ここで、suffixValは、前記symbolValの接尾辞値を表すことができる。
【0165】
TRビンストリングの接尾辞(すなわち、接尾辞ビンストリング)は、cMax値が(1<<cRiceParam)-1であるsuffixValに対するFL二進化プロセスに基づいて導出されることができる。
【0166】
一方、入力パラメータであるcRiceParamの値が0であれば、前記TR二進化は、正確にトランケーテッド単項二進化(truncated unary binarization)であることができ、常にデコーディングされるシンタックスエレメントの可能な最大値と同じcMax値が使用され得る。
【0167】
また、例えば、前記EGk二進化プロセスは、次のように行われることができる。ue(v)でコーディングされたシンタックスエレメントは、Exp-Golombコーディングされたシンタックスエレメントであることができる。
【0168】
一例として、0次Exp-Golomb(0-th order Exp-Golomb、EG0)二進化プロセスは、次のように行われることができる。
【0169】
前記シンタックスエレメントに対するパーシングプロセス(parsingprocess)は、ビットストリームの現在位置から始めて、1番目のノンゼロ(non-zero)ビットを含むビットを読んで、0のような先行ビット数を数えること(counting)により始まることができる。前記過程は、次の表のように表すことができる。
【0170】
【0171】
また、変数codeNumは、次の数式のように導出されることができる。
【0172】
【0173】
ここで、read_bits(leadingZeroBits)で返還された値、すなわち、read_bits(leadingZeroBits)が表す値は、1番目に記録された最も重要なビット(most significant bit)に対するアンサインド整数(unsigned integer)の二進表現(binary representation)と解釈されることができる。
【0174】
ビットストリングを「接頭辞(prefix)」ビットと「接尾辞(suffix)」ビットとに分離したExp-Golombコードの構造は、次の表のように表すことができる。
【0175】
【0176】
「接頭辞」ビットは、leadingZeroBits計算のために、上述した内容のようにパーシングされたビットであることができ、表15においてビットストリングの0または1に表示されることができる。すなわち、上述した表15の0または1で開示されたビットストリングは、接頭辞ビットストリングを表すことができる。「接尾辞」ビットは、codeNumの計算でパーシングされるビットであることができ、上述した表15においてxiに表示されることができる。すなわち、上述した表15のxiで開示されたビットストリングは、接尾辞ビットストリングを表すことができる。ここで、iは、0からLeadingZeroBits-1の範囲の値であることができる。また、各xiは、0または1と同一であることができる。
【0177】
前記codeNumに割り当てられるビットストリングは、次の表のとおりであることができる。
【0178】
【0179】
シンタックスエレメントのディスクリプタ(descriptor)がue(v)である場合、すなわち、シンタックスエレメントがue(v)でコーディングされた場合、前記シンタックスエレメントの値は、codeNumと同一であることができる。
【0180】
また、例えば、前記EGk二進化プロセスは、次のように行われることができる。
【0181】
前記EGk二進化プロセスの入力(input)は、EGk二進化に対する要請であることができる。また、前記EGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するEGk二進化であることができる。
【0182】
symbolValに対するEGk二進化プロセスのビットストリングは、次のように導出されることができる。
【0183】
【0184】
上述した表17を参照すれば、put(x)の各コール(each call)を介して二進値Xをビンストリングの終わりに追加することができる。ここで、xは、0または1であることができる。
【0185】
また、例えば、前記Limited EGk二進化プロセスは、次のように行われることができる。
【0186】
前記Limited EGk二進化プロセスの入力(input)は、Limited EGk二進化に対する要請及びライスパラメータriceParam、最大値の二進対数を表す変数であるlog2TransformRange、及び最大接頭辞拡張長さを表す変数であるmaxPreExtLenであることができる。また、前記Limited EGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するLimited EGk二進化であることができる。
【0187】
symbolValに対するLimited EGk二進化プロセスのビットストリングは、次のように導出されることができる。
【0188】
【0189】
また、例えば、前記FL二進化プロセスは、次のように行われることができる。
【0190】
前記FL二進化プロセスの入力(input)は、FL二進化に対する要請及び前記シンタックスエレメントに対するcMaxであることができる。また、前記FL二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するFL二進化であることができる。
【0191】
FL二進化は、シンボル値symbolValの固定長さであるビット数を有するビットストリングを使用して構成されることができる。ここで、前記固定長さビットは、符号なし整数ビットストリング(unsigned integer bitstring)であることができる。すなわち、FL二進化によってシンボル値symbolValに対するビットストリングが導出され得るし、前記ビットストリングのビット長さ(すなわち、ビット数)は、固定長さであることができる。
【0192】
例えば、前記固定長さは、次の数式のように導出されることができる。
【0193】
【0194】
FL二進化に対するビン等のインデクシングは、最上位ビットから最下位ビット順に増加する値を使用する方式であることができる。例えば、前記最上位ビットと関連したビンインデックスは、binIdx=0であることができる。
【0195】
一方、例えば、前記レジデュアル情報のうち、シンタックスエレメントabs_remainderに対する二進化プロセスは、次のように行われることができる。
【0196】
前記abs_remainderに対する二進化プロセスの入力は、シンタックスエレメントabs_remainder[n]の二進化に対する要請、色相成分(colour component)cIdx、ルマ位置(x0、y0)であることができる。前記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを指すことができる。
【0197】
前記abs_remainderに対する二進化プロセスの出力(output)は、前記abs_remainderの二進化(すなわち、前記abs_remainderの二進化されたビンストリング)であることができる。前記二進化プロセスによって前記abs_remainderに対する可用ビンストリング等が導出され得る。
【0198】
まず、abs_remainder[n]に対するlastAbsRemainder及びlastRiceParamが次のように導出されることができる。ここで、前記lastAbsRemainderは、前記abs_remainder[n]以前に導出されたabs_remainderの値を表すことができ、前記lastRiceParamは、前記abs_remainder[n]以前に導出されたabs_remainderに対するライスパラメータcRiceParamを表すことができる。
【0199】
例えば、前記abs_remainder[n]に対するlastAbsRemainder及びlastRiceParamを導出するプロセスが現在サブブロックに対して初めて呼び出された場合、すなわち、前記現在サブブロックの変換係数等のうち、スキャニング順序上、1番目の順序の変換係数に対するabs_remainder[n]のプロセスが行われる場合、前記lastAbsRemainder及び前記lastRiceParamは、共に0に設定されることができる。
【0200】
また、前記場合でない場合、すなわち、前記プロセスが現在サブブロックに対して初めて呼び出された場合でなければ、前記lastAbsRemainder及び前記lastRiceParamは、それぞれの最後の呼び出しから導出されたabs_remainder[n]及びcRiceParamの値と同一に設定されることができる。すなわち、前記lastAbsRemainderは、現在コーディングされるabs_remainder[n]以前にコーディングされたabs_remainder[n]と同じ値で導出されることができ、前記lastRiceParamは、現在コーディングされるabs_remainder[n]以前にコーディングされたabs_remainder[n]に対するcRiceParamと同じ値で導出されることができる。
【0201】
その後、現在コーディングされるabs_remainder[n]に対するライスパラメータcRiceParamは、前記lastAbsRemainder及び前記lastRiceParamに基づいて導出されることができる。例えば、現在コーディングされるabs_remainder[n]に対するライスパラメータcRiceParamは、次の数式のように導出されることができる。
【0202】
【0203】
また、例えば、現在コーディングされるabs_remainder[n]に対するcMaxは、前記ライスパラメータcRiceParamに基づいて導出されることができる。前記cMaxは、次の数式のように導出されることができる。
【0204】
【0205】
または、例えば、現在ブロックの変換スキップ可否に基づいて前記ライスパラメータcRiceParamが決定され得る。すなわち、現在CGを含む現在TBに対して変換が適用されない場合、言い換えれば、前記現在CGを含む前記現在TBに対して変換スキップ(transform skip)が適用される場合、前記ライスパラメータcRiceParamは、1に導出されることができる。または、前記現在CGを含む前記現在TBに対して変換が適用される場合、言い換えれば、前記現在CGを含む前記現在TBに対して変換スキップが適用されない場合、上記のように、現在コーディングされるabs_remainder[n]に対するライスパラメータcRiceParamは、以前にコーディングされたabs_remainder[n]に対するcRiceParamと同じ値で導出されることができる。
【0206】
一方、前記abs_remainderに対する二進化、すなわち、前記abs_remainderに対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であることができる。また、前記接尾辞ビンストリングが存在しない場合には、前記abs_remainderに対する前記ビンストリングは、前記接頭辞ビンストリングであることができる。
【0207】
例えば、前記接頭辞ビンストリングは、後述するように導出されることができる。
【0208】
前記abs_remainder[n]の接頭辞値(prefix value)prefixValは、次の数式のように導出されることができる。
【0209】
【0210】
前記abs_remainder[n]の前記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、前記cMax及び前記cRiceParamを入力として使用する前記prefixValに対するTR二進化プロセスによって導出されることができる。
【0211】
前記接頭辞ビンストリングが、全てのビットが1であり、ビット長さが6であるビットストリングと同一であれば、前記abs_remainder[n]の前記ビンストリングの接尾辞ビンストリングが存在し得るし、後述するように導出されることができる。
【0212】
前記abs_remainderの接尾辞値(suffix value)suffixValは、次の数式のように導出されることができる。
【0213】
【0214】
前記abs_remainderの前記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、riceParamは、cRiceParamに設定され、log2TransformRangeは、15に設定され、maxPreExtLenは、11に設定される前記suffixValに対するLimited EGk二進化プロセスによって導出されることができる。
【0215】
一方、例えば、前記レジデュアル情報のうち、シンタックスエレメントdec_abs_levelに対する二進化プロセスは、次のように行われることができる。
【0216】
前記dec_abs_levelに対する二進化プロセスの入力は、シンタックスエレメントdec_abs_level[n]の二進化に対する要請、色相成分(colour component)cIdx、ルマ位置(x0、y0)、現在係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth、及び変換ブロックの高さの二進対数であるlog2TbHeightであることができる。前記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを指すことができる。
【0217】
前記dec_abs_levelに対する二進化プロセスの出力(output)は、前記dec_abs_levelの二進化(すなわち、前記dec_abs_levelの二進化されたビンストリング)であることができる。前記二進化プロセスによって前記dec_abs_levelに対する可用ビンストリング等が導出され得る。
【0218】
前記dec_abs_level[n]に対するライスパラメータcRiceParamは、前記色相成分cIdx及びルマ位置(x0、y0)、現在係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数であるlog2TbWidth、及び変換ブロックの高さの二進対数であるlog2TbHeightを入力として行われるライスパラメータ導出過程を介して導出されることができる。前記ライスパラメータ導出過程についての具体的な説明は後述する。
【0219】
また、例えば、前記dec_abs_level[n]に対するcMaxは、前記ライスパラメータcRiceParamに基づいて導出されることができる。前記cMaxは、次の数式のように導出されることができる。
【0220】
【0221】
一方、前記dec_abs_level[n]に対する二進化、すなわち、前記dec_abs_level[n]に対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であることができる。また、前記接尾辞ビンストリングが存在しない場合には、前記dec_abs_level[n]に対する前記ビンストリングは、前記接頭辞ビンストリングであることができる。
【0222】
例えば、前記接頭辞ビンストリングは、後述するように導出されることができる。
【0223】
前記dec_abs_level[n]の接頭辞値(prefix value)prefixValは、次の数式のように導出されることができる。
【0224】
【0225】
前記dec_abs_level[n]の前記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、前記cMax及び前記cRiceParamを入力として使用する前記prefixValに対するTR二進化プロセスによって導出されることができる。
【0226】
前記接頭辞ビンストリングが、全てのビットが1であり、ビット長さが6であるビットストリングと同一であれば、前記dec_abs_level[n]の前記ビンストリングの接尾辞ビンストリングが存在し得るし、後述するように導出されることができる。
【0227】
前記dec_abs_level[n]に対するライスパラメータ導出過程は、次のとおりであることができる。
【0228】
前記ライスパラメータ導出過程の入力は、色相成分インデックス(colour componentindex)cIdx、ルマ位置(x0、y0)、現在係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth及び変換ブロックの高さの二進対数であるlog2TbHeightであることができる。前記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現在ルマ変換ブロックの左上端サンプルを指すことができる。また、前記ライスパラメータ導出過程の出力は、前記ライスパラメータcRiceParamであることができる。
【0229】
例えば、与えられたシンタックスエレメント等sig_coeff_flag[x][y]と前記コンポーネントインデックスcIdx、前記左上端ルマ位置(x0、y0)を有する変換ブロックに対する配列AbsLevel[x][y]に基づいて変数locSumAbsは、次の表に開示されたスードウコード(pseudo code)のように導出されることができる。
【0230】
【0231】
前記ライスパラメータcRiceParamは、次のように導出されることができる。
【0232】
例えば、前記ライスパラメータcRiceParamは、前記導出された変数locSumAbs及び変数sに基づいて導出されることができる。前記変数sは、Max(0、QState-1)に設定されることができる。すなわち、前記sは、0とQState-1のうち、最大値に設定されることができる。
【0233】
前記変数locSumAbs及び前記変数sに基づいて導出される前記ライスパラメータcRiceParam及びZeroPos[n]は、次の表のとおりであることができる。
【0234】
【0235】
例えば、上述した表20を参照すれば、前記locSumAbsが6以下である場合、前記cRiceParamは、0に設定されることができ、前記locSumAbsが7以上であり、13以下である場合、前記cRiceParamは、1に設定されることができ、前記locSumAbsが14以上であり、27以下である場合、前記cRiceParamは、2に設定されることができ、前記locSumAbsが28以上である場合、前記cRiceParamは、3に設定されることができる。
【0236】
また、上述した表20を参照すれば、前記sが0であり、前記locSumAbsが4以下である場合、前記ZeroPos[n]は、0に設定されることができ、前記sが0であり、前記locSumAbsが5である場合、前記ZeroPos[n]は、1に設定されることができ、前記sが0であり、前記locSumAbsが6以上であり、11以下である場合、前記ZeroPos[n]は、2に設定されることができ、前記sが0であり、前記locSumAbsが12以上であり、22以下である場合、前記ZeroPos[n]は、4に設定されることができ、前記sが0であり、前記locSumAbsが23以上であり、27以下である場合、前記ZeroPos[n]は、8に設定されることができ、前記sが0であり、前記locSumAbsが28以上である場合、前記ZeroPos[n]は、16に設定されることができる。また、上述した表20を参照すれば、前記sが1であり、前記locSumAbsが3以下である場合、前記ZeroPos[n]は、1に設定されることができ、前記sが1であり、前記locSumAbsが4である場合、前記ZeroPos[n]は、2に設定されることができ、前記sが1であり、前記locSumAbsが5である場合、前記ZeroPos[n]は、3に設定されることができ、前記sが1であり、前記locSumAbsが6以上であり、8以下である場合、前記ZeroPos[n]は、4に設定されることができ、前記sが1であり、前記locSumAbsが9以上であり、11以下である場合、前記ZeroPos[n]は、6に設定されることができ、前記sが1であり、前記locSumAbsが12以上であり、15以下である場合、前記ZeroPos[n]は、8に設定されることができ、前記sが1であり、前記locSumAbsが16以上であり、17以下である場合、前記ZeroPos[n]は、4に設定されることができ、前記sが1であり、前記locSumAbsが18以上であり、25以下である場合、前記ZeroPos[n]は、12に設定されることができ、前記locSumAbsが26以上であり、31以下である場合、前記ZeroPos[n]は、16に設定されることができる。また、上述した表20を参照すれば、前記sが2であり、前記locSumAbsが1以下である場合、前記ZeroPos[n]は、1に設定されることができ、前記sが2であり、前記locSumAbsが2以上であり、4以下である場合、前記ZeroPos[n]は、2に設定されることができ、前記sが2であり、前記locSumAbsが5である場合、前記ZeroPos[n]は、3に設定されることができ、前記sが2であり、前記locSumAbsが6以上であり、8以下である場合、前記ZeroPos[n]は、4に設定されることができ、前記sが2であり、前記locSumAbsが9以上であり、11以下である場合、前記ZeroPos[n]は、6に設定されることができ、前記sが2であり、前記locSumAbsが12以上であり、17以下である場合、前記ZeroPos[n]は、8に設定されることができ、前記sが2であり、前記locSumAbsが18以上であり、24以下である場合、前記ZeroPos[n]は、12に設定されることができ、前記sが2であり、前記locSumAbsが25以上である場合、前記ZeroPos[n]は、16に設定されることができる。
【0237】
または、例えば、ZeroPos[n]は次の数式のように導出されることができ、ここで、後述する数式に含まれるcRiceParamは表20を参照して導出することができる。
【0238】
【0239】
また、前記dec_abs_level[n]の接尾辞値(suffix value)suffixValは、次の数式のように導出されることができる。
【0240】
【0241】
前記dec_abs_level[n]の前記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、riceParamは、cRiceParamに設定され、log2TransformRangeは、15に設定され、maxPreExtLenは、11に設定される前記suffixValに対するLimited EGk二進化プロセスによって導出されることができる。
【0242】
また、本文書は、量子化された予測レジデュアルを表す変換スキップレベル(すなわち、空間ドメインにおけるレジデュアル)の統計及び信号特性をレジデュアルコーディングに適応させるために、既存のレジデュアルコーディング方案で後述する内容を修正する方案を提案する。
【0243】
スキャニング順序:例えば、TBブロック内のサブブロック及びサブブロック内のレジデュアル係数に対するスキャニング順序は、右下端から左上端へ移動する対角スキャン順序であることができる。すなわち、TBブロック内のサブブロック及びサブブロック内のレジデュアル係数に対するスキャニング順序は、右下端から左上端方向へスキャンする対角スキャン順序であることができる。または、例えば、TBブロック内のサブブロック及びサブブロック内のレジデュアル係数に対するスキャニング順序は、左上端から右下端へ移動する対角スキャン順序であることができる。すなわち、TBブロック内のサブブロック及びサブブロック内のレジデュアル係数に対するスキャニング順序は、左上端から右下端方向へスキャンする対角スキャン順序であることができる。
【0244】
最後のノンゼロ(non-zero)変換係数位置なし:レジデュアル信号(すなわち、レジデュアルサンプル)は、予測後、空間的レジデュアルを反映し、変換スキップ(transform skip)で変換によるエネルギー圧縮が行われないので、後行する0に対する高い確率または変換ブロックの右下端にある重要でないレベルは、それ以上発生しないことができる。したがって、この場合には、最後のノンゼロ変換係数のスキャニング位置に関する情報をシグナリングすることは省略されることができる。その代わりに、最も先にコーディングされる1番目のサブブロックは、変換ブロック内の左上端サブブロックであることができる。一方、前記ノンゼロ変換係数は、有効係数(significant coefficient)と表すこともできる。
【0245】
サブブロックCBF:最後のノンゼロ変換係数のスキャニング位置に関する情報のシグナリングの不在は、変換スキップが適用され、coded_sub_block_flagを有するサブブロックのCBFシグナリングを次のように修正しなければならない。
【0246】
量子化により、上述した重要でないレベルのシーケンスは、依然として変換ブロック内で局部的に発生することができる。したがって、最後のノンゼロ変換係数のスキャニング位置に関する情報は、前述したように除去され、coded_sub_block_flagは、全てのサブブロックに対してコーディングされることができる。
【0247】
また、DC周波数位置に対するサブブロック(左上端サブブロック)に対するcoded_sub_block_flagは、特別なケースを表すことができる。例えば、VVC Draft 3で、前記左上端サブブロックに対するcoded_sub_block_flagは、シグナリングされずに常に1と同一であると導出されることができる。最後のノンゼロ変換係数のスキャニング位置が前記左上端サブブロック以外のサブブロックに位置する場合は、DCサブブロック(すなわち、前記左上端サブブロック)外部に少なくとも1つの有効レベル(significant level)があることを表すことができる。結果的に、前記DCサブブロックに対するcoded_sub_block_flagが1であることと導出されるが、0/非有効(non-significant)レベルだけを含むことができる。上述した内容のように、現在ブロックに変換スキップが適用され、最後のノンゼロ変換係数のスキャニング位置に関する情報がなければ、各サブブロックに対するcoded_sub_block_flagがシグナリングされ得る。ここには、前記DCサブブロック以外の全てのサブブロックに対するcoded_sub_block_flagが既に0である場合を除き、DCサブブロックに対するcoded_sub_block_flagも含まれることができる。一方、例えば、変換ブロックのスキャニング順序として右下端から左上端へ移動する対角スキャン順序が適用され、DCサブブロックに対するcoded_sub_block_flagがシグナリングされない場合、前記DCサブブロックに対するcoded_sub_block_flagが1と同一であると導出されることができる(inferDcSbCbf=1)。したがって、前記DCサブブロックには、少なくとも1つの有効レベルがなければならないので、前記DCサブブロック内の(0、0)の1番目位置に対するsig_coeff_flag以外のsig_coeff_flagなどが全て0である場合、前記(0、0)の1番目位置に対するsig_coeff_flagはシグナリングされずに、1と同一であると導出されることができる(inferSbDcSigCoeffFlag=1)。
【0248】
また、coded_sub_block_flagの文脈モデリングが変更され得る。例えば、文脈モデルインデックスは、現在サブブロックの左側サブブロックのcoded_sub_block_flag及び前記現在サブブロックの上側サブブロックのcoded_sub_block_flagの合計と前記coded_sub_block_flagなどの論理的分離で計算されることができる。
【0249】
sig_coeff_flag文脈モデリング:sig_coeff_flag文脈モデリングのローカルテンプレート(local template)は、現在スキャニング位置の左側位置NB0と上側位置NB1のみ含むように修正されることができる。文脈モデルオフセットは、有効周辺位置のsig_coeff_flag[NB0]+sig_coeff_flag[NB1]の数に導出されることができる。したがって、現在変換ブロックの対角線dによって相違した文脈セットの選択が除去され得る。その結果、sig_coeff_flagをコーディングするために、3個の文脈モデル等と単一文脈モデルが設定され得る。
【0250】
abs_level_gt1_flag及びpar_level_flag文脈モデリング:abs_level_gt1_flag及びpar_level_flagには、単一文脈モデルが使用され得る。
【0251】
abs_remainderコーディング:変換スキップレジデュアル絶対レベルの経験的分布は、依然としてラプラシアンまたは幾何分布に合うが、変換係数絶対レベルよりさらに大きい不安定性が存在しうる。特に、連続的な実現のウィンドウ内の分散は、レジデュアル絶対レベルに対してさらに高いことができる。これにより、abs_remainderの二進化及び文脈モデリングは、次のように修正されることができる。
【0252】
例えば、abs_remainderの二進化にさらに高いカットオフ(cutoff)値が使用され得る。これを通じて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、及びabs_level_gt3_flagを使用したコーディングでabs_remainderに対するライスコードへの切り換え地点及び各ビン位置に対する専用文脈モデルにさらに高い圧縮効率が提供され得る。前記カットオフを増加させれば、「xより大きい」フラグ(例えば、abs_level_gt5_flag、abs_level_gt7_flag等)がカットオフに到達するまでより多く発生することができる。カットオフは、5に固定されることができる(numGtFlags=5)。
【0253】
また、ライスパラメータ導出に対するテンプレートが修正され得る。すなわち、現在スキャニング位置の右側周辺位置及び下側周辺位置のみsig_coeff_flag文脈モデリングのローカルテンプレートと考慮されることができる。
【0254】
coeff_sign_flag文脈モデリング:符号(sign)シーケンス内部の不安定性及び予測レジデュアルの残差がたびたびバイアス(bias)されることにより、グローバル経験的分布(distribution)がほとんど均一に分布された場合にも、符号関連情報は、文脈モデルを使用してコーディングされることができる。シングル専用文脈モデルが符号関連情報のコーディングに使用されることができ、符号関連情報は、sig_coeff_flag以後にパーシングされて、全ての文脈符号化ビン等(context coded bins)とともに維持されることができる。
【0255】
文脈符号化ビン等の減少:1番目のスキャニングパスに対するシンタックスエレメント等(syntax elements)、すなわち、sig_coeff_flag、abs_level_gt1_flag、及びpar_level_flagの送信は変更されないことができる。しかし、サンプル当り文脈符号化ビン等(Context Coded Bins per sample、CCBs)の最大値の制限は除去され、異なるように調節されることができる。CCBの減少は、CCB>kである場合、有効でないモードと指定して導出されることができる。ここで、kは、正の整数(positive integer)であることができる。例えば、正規レベルコーディングモード(regular level coding mode)の場合、k=2であることができる。上述した制限は、量子化空間の減少に対応することができる。
【0256】
上述した修正等が適用されてコーディングされたレジデュアルデータと関連したシンタックスエレメント等は、次の表のように表すことができる。
【0257】
【0258】
一方、上述したレジデュアル情報に含まれた文脈基盤にてコーディングされたシンタックスエレメントの文脈モデルを指す文脈インデックス(ctxIdx)は、後述する説明のように導出されることができる。
【0259】
例えば、シンタックスエレメントに対する文脈インデックスを導出する過程の入力は、前記シンタックスエレメントに対するビンストリングで現在ビンの位置を表すbinIdxであることができ、ctxTable、ctxIdx、及びbypassFlagが出力として導出され得る。
【0260】
まず、シンタックスエレメントに対する現在ビンに対するctxIncが導出され得る。すなわち、前記シンタックスエレメントに対する現在ビンの位置を表すbinIdxに基づいてctxIncが導出され得る。前記ctxincは、文脈増加パラメータ(context increment parameter)と表すことができる。
【0261】
シンタックスエレメントに対するbinIdxによって導出されるctxIncは、次の表のとおりであることができる。
【0262】
【0263】
【0264】
【0265】
表22において「bypass」、「terminate」、または「na」でない値を有するビンの文脈インデックスは、次のように導出されることができる。
【0266】
シンタックスエレメントの現在ビンに対するctxIncは、表22に前記現在ビンに対する項目として指定された値で導出されることができる。また、前記現在ビンに対する項目として指定された値が複数である場合、前記項目で括弧内に開示された節の過程を介して前記ctxincが導出され得る。前記節は、VVC標準に開示された節を意味できる。その後、変数ctxIdxOffsetがinitTypeの現在値に応じてctxIdxの最も低い値に指定されることができる。また、シンタックスエレメントの現在ビンに対する文脈インデックス(ctxIdx)は、ctxIncとctxIdxOffsetとの合計と同一に設定されることができる。すなわち、前記文脈インデックスは、ctxIncとctxIdxOffsetとの合計に設定されることができる。また、bypassFlagは、0に設定されることができる。
【0267】
一方、表22において前記現在ビンに対する項目が「bypass」である場合、前記ビンの文脈インデックスは、次のように導出されることができる。例えば、前記現在ビンに対するctxTableは、0に設定されることができる。また、前記現在ビンに対する文脈インデックス(ctxIdx)は、0に設定されることができる。また、bypassFlagは、1に設定されることができる。
【0268】
一方、表22において前記現在ビンに対する項目が「terminate」である場合、前記ビンの文脈インデックスは、次のように導出されることができる。例えば、前記現在ビンに対するctxTableは、0に設定されることができる。また、前記現在ビンに対する文脈インデックス(ctxIdx)は、0に設定されることができる。また、bypassFlagは、0に設定されることができる。
【0269】
一方、表22において前記現在ビンに対する項目が「na」である場合、前記ビンに対するシンタックスエレメント等、すなわち、前記ビンに対する文脈インデックスは、次のように導出されることができる。例えば、前記現在ビンに対するctxIdx、ctxTable、及び/又はbypassFlagは、発生しないことができる。
【0270】
「bypass」、「terminate」、または「na」でない値を有するビンに対するctxIncを導出するための節等の過程等は、後述するとおりであることができる。
【0271】
例えば、9.5.4.2.2節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0272】
【0273】
また、例えば、9.5.4.2.3節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0274】
【0275】
また、例えば、9.5.4.2.4節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0276】
【0277】
また、例えば、9.5.4.2.5節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0278】
【0279】
また、例えば、9.5.4.2.6節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0280】
【0281】
また、例えば、9.5.4.2.7節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0282】
【0283】
また、例えば、9.5.4.2.8節によるctxIncを導出する過程は、次の表のとおりであることができる。
【0284】
【0285】
一方、上述した内容のように、変換エンコーディングを行わわないブロック、すなわち、変換が適用されていないレジデュアル係数を含む変換ブロックは、一般的な変換エンコーディングが行われたブロックとレジデュアル情報の特性が異なるので、変換エンコーディングを行わわないブロックのための効率的な残余データ符号化方法が必要である。一方、上述した内容のように、変換適用可否を表す変換スキップフラグは、変換ブロック単位で送信されることができ、本文書では、変換ブロックのサイズを限定しない。例えば、変換スキップフラグの値が1である場合、本文書において提案するレジデュアル情報エンコーディング/デコーディング方案が行われ得るし、前記変換スキップフラグの値が0である場合、上述した表1、表6、または表9において説明した既存のレジデュアル情報エンコーディング/デコーディング方案が行われ得る。または、前記変換スキップフラグが現在ブロックに変換が適用されないこと(変換がスキップされる)を表す場合、前記表10または表21に開示された変換スキップモードにおけるレジデュアル情報エンコーディング/デコーディング方案が行われることもできる。
【0286】
一方、前記現在ブロックに変換が適用されない場合、変換係数は、レジデュアルサンプルに導出されることができる。したがって、変換スキップの際のレジデュアルサンプルは、係数またはレジデュアル係数と呼ばれることができる。
【0287】
上述した表1、表6、または表9に記述されたように、レジデュアルエンコーディング/デコーディングのために、有効係数フラグ、第1変換係数レベルフラグ、パリティレベルフラグ、第2変換係数レベルフラグがエンコーディング/デコーディングされ得るし、リメインレベル値に対するシンタックスエレメント、すなわち、abs_remainderまたはdec_abs_levelがエンコーディング/デコーディングされ得るし、その後に、各レジデュアル係数に対するサインフラグがエンコーディング/デコーディングされ得る。ここで、前記有効係数フラグは、sig_coeff_flagであることができ、前記パリティレベルフラグは、par_level_flagであることができ、前記第1変換係数レベルフラグは、abs_level_gt1_flagであることができ、前記第2変換係数レベルフラグは、abs_level_gt3_flagまたはabs_level_gtx_flagであることができる。また、前記サインフラグは、上述したcoeff_sign_flagであることができる。
【0288】
一方、前記サインフラグは、前記表21についての説明に記述された方案のようにエンコーディング/デコーディングされることもできる。この場合、上述した表1、表6、または表9において前記サインフラグがバイパスコーディングされたこととは異なり、文脈モデルに基づいてエンコーディング/デコーディングされることができる。
【0289】
ここで、変換スキップブロック(すなわち、変換が適用されないブロック)の場合、変換が適用されないので、前記変換スキップブロック内のレジデュアル係数は、周辺の前記レジデュアル係数と類似した符号を有する可能性が高い。
【0290】
従って、本文書の本実施形態は、変換スキップされたレジデュアル信号、すなわち、変換スキップされたブロックのレジデュアル係数のサインフラグの文脈テーブル(ctxTable)を前記レジデュアル係数と隣接する周辺レジデュアル係数のサインフラグに基づいて決定し、決定された文脈テーブルに基づいて前記レジデュアル係数のサインフラグを文脈コーディングする方法を提案する。すなわち、本文書の本実施形態は、変換スキップされたレジデュアル信号、すなわち、変換スキップされたブロックのレジデュアル係数のサインフラグの文脈テーブル(ctxTable)を前記レジデュアル係数の直前にエンコーディング/デコーディングされたレジデュアル係数のサインフラグに基づいて決定し、決定された文脈テーブルに基づいて前記レジデュアル係数のサインフラグを文脈コーディングする方法を提案する。本実施形態は、現在ブロックの現在サブブロック内のレジデュアル係数のサインフラグに対する文脈モデルを前記現在ブロック内の前記レジデュアル係数の以前にコーディングされたレジデュアル係数のサインフラグに基づいて決定し、決定された文脈モデルに基づいてサインフラグをコーディングする方案を提案する。
【0291】
変換ブロックのCG(coefficient group)内で上述した表1、表6、または表21に開示されたサインフラグエンコーディング/デコーディングとは異なり、本実施形態では、前記サインフラグを文脈エンコーディング/デコーディングして圧縮性能を向上させることができる。前記CGは、サブブロックと表すこともできる。また、前記表21に開示されたサインフラグエンコーディング/デコーディングは、1つの文脈モデルだけを使用するが、本実施形態は、複数の文脈モデルのうち、前記レジデュアル係数の以前にコーディングされたレジデュアル係数のサインフラグに基づいて決定された文脈モデルを使用してコーディングするという差がある。
【0292】
本実施形態によれば、隣接するレジデュアル係数との高い相関性(correlation)を考慮してサインフラグがコーディングできる。前述のように、変換スキップブロック内の隣接するレジデュアル係数のサインフラグは互いに類似した値を有する傾向があるので、本実施形態は前述の点を考慮して、現在ブロック内のレジデュアル係数のサインフラグをエンコーディング/デコーディングするとき、係数スキャン順序に従う直前のレジデュアル係数のサインフラグの値(例えば、0又は1)に基づいて2つの文脈モデル(または文脈テーブル)を選択する方案を提案する。一方、前記現在ブロック内のレジデュアル係数が前記現在ブロックのレジデュアル係数のうち初めてコーディングされる場合、前記レジデュアル係数のサインフラグに対する文脈モデルは予め定義された文脈モデル(例えば、文脈モデル0)として導出される。また、例えば、前記現在ブロック内のレジデュアル係数が含まれたサブブロックが1番目にコーディングされるサブブロックではなく、以前にコーディングされたサブブロックが存在する場合は、前記レジデュアル係数の直前にコーディングされた周辺サブブロックのレジデュアル係数のサインフラグに基づいて、前記レジデュアル係数のサインフラグに対する文脈モデルが導出できる。前述の実施形態によりレジデュアル情報に対する圧縮性能を向上させることができる。一方、前記文脈モデルはctxIdx又はctxIncに基づいて指示されてもよく、前記ctxIdxは前記ctxIncに基づいて導出されてもよい。
【0293】
また、本文書は他の実施形態として、現在ブロック内のレジデュアル係数の以前にエンコーディング/デコーディングされた任意のN(N>=1)個のサインフラグを用いてM個の文脈モデルのうち1つを選択する方案が提案される。例えば、現在レジデュアルのサインフラグに対する文脈モデルは前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディング/デコーディングされる2つのレジデュアル係数のサインフラグに基づいて3つの文脈モデルのうちの1つとして導出できる。または、例えば、現在レジデュアルのサインフラグに対する文脈モデルは前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディング/デコーディングされる2つのレジデュアル係数のサインフラグに基づいて6つの文脈モデルのうち1つとして導出できる。または、例えば、現在レジデュアルのサインフラグに対する文脈モデルは前記現在レジデュアル係数に隣接する左側周辺レジデュアル係数のサインフラグ及び前記現在レジデュアル係数の上側周辺レジデュアル係数のサインフラグに基づいて3つの文脈モデルのうち1つとして導出できる。または、例えば、現在レジデュアルのサインフラグに対する文脈モデルは前記現在レジデュアル係数に隣接する左側周辺レジデュアル係数のサインフラグ及び前記現在レジデュアル係数の上側周辺レジデュアル係数のサインフラグに基づいて6つの文脈モデルのうち1つとして導出できる。一方、前記現在ブロック内のレジデュアル係数が前記現在ブロックのレジデュアル係数のうち初めてコーディングされる場合、前記レジデュアル係数のサインフラグに対する文脈モデルは予め定義された文脈モデル(例えば、文脈モデル0)として導出できる。
【0294】
例えば、現在サブブロックが5個のノンゼロ(non-zero)レジデュアル係数を含む場合、前記ノンゼロレジデュアル係数のサインフラグ等の値が(0、0、0、1、0)であれば、前記ノンゼロレジデュアル係数等の前記サインフラグ等に対する文脈モデル値は、(0、0、0、0、1)に定義されることができる。ここで、前記文脈モデル値は、文脈モデルを表すことができる。すなわち、前記文脈モデル値が0である場合、前記文脈モデル値は、文脈モデル0を表すことができ、前記文脈モデル値が1である場合、前記文脈モデル値は、文脈モデル1を表すことができる。本実施形態を表すスードウコード(pseudo code)は、次の表のとおりであることができる。
【0295】
【0296】
一方、本文書において提案したサインフラグの文脈モデルを導出する実施形態等は、次の表のように定義されることができる。
【0297】
【0298】
上述した表31に開示されたctxInc導出プロセスは、次のとおりであることができる。
【0299】
1.ラストサインフラグ(コーディングしようとするサインフラグ直前にエンコーディング/デコーディングされたサインフラグ)を入力する。
【0300】
2.ラストサインフラグをctxIncに出力する。すなわち、ラストサインフラグの値をctxIncに出力する。
【0301】
または、本文書において提案したサインフラグの文脈モデルを導出する実施形態等は、次の表のように定義されることができる。
【0302】
【0303】
前述の表32を参照すれば、現在レジデュアル係数に対するシンテックスエレメントcoeff_sign_flag(すなわち、サインフラグ)のビンに対する文脈モデルは、lastcoeffsignflagに基づいて決定される。具体的に、例えば、現在レジデュアル係数に対するシンテックスエレメントcoeff_sign_flagのビンに対する文脈モデルはctxIncに基づいて決定され、前記ctxIncは、lastcoeffsignflagの値が0であれば0として、lastcoeffsignflagの値が1であれば1として導出される。ここで、lastcoeffsignflagは、現在ブロック(例えば、TU)内の係数スキャン順序に従う現在レジデュアル係数のすぐ前のレジデュアル係数に対するcoeff_sign_flagの値と同じであり得る。一方、前記現在レジデュアル係数が前記現在ブロック内の1番目のレジデュアル係数である場合、前記lastcoeffsignflagは0に設定される。すなわち、前記lastcoeffsignflagの初期値は0に設定される。
【0304】
すなわち、例えば、前記実施形態によれば、現在ブロック内のレジデュアル係数のうち係数スキャン順序上に現在レジデュアル係数の以前のレジデュアル係数のcoeff_sign_flagの値に基づいて現在レジデュアル係数のcoeff_sign_flagのビンに対する文脈モデルが適応的に決定されることができ、これにより現在レジデュアル係数のcoeff_sign_flagのビンがデコーディングされ、前記レジデュアル係数のcoeff_sign_flagの値が導出されることができる。これにより、隣接するレジデュアル係数の相関性(correlation)を考慮することができ、コーディングゲイン(coding gain)を高めることができる。前記現在レジデュアル係数のcoeff_sign_flagの値を利用して現在レジデュアルサンプルの符号(sign)が導出できることは前述の通りである。
【0305】
一方、前述のように、現在レジデュアル係数のcoeff_sign_flagに対する前記ctxIncが導出された後、前記ctxIncに基づいて文脈モデルを導出する過程は前述のようである。
【0306】
具体的に、前記サインフラグに対するctxIdxOffsetは、前記サインフラグに対するctxIdxが有することができる値のうち最小値として導出される。例えば、前述の内容において、ctxIdx(文脈モデルを示す文脈モデルインデックス)は、0(すなわち、文脈モデル0)又は1(すなわち、文脈モデル1)のうち1つの値として導出できるので、前記ctxIdxOffsetは0として導出されることができる。その後、前記サインフラグに対するctxIdxは、ctxIdxOffsetと前記ctxIncの和として導出される。前記ctxIdxOffsetが0として導出されるので、前記サインフラグに対するctxIdxは前記ctxIncと同一であり得る。または、例えば、前記サインフラグに対するctxIdx(文脈モデルを示す文脈モデルインデックス)は0(すなわち、文脈モデル0)ないしN(すなわち、文脈モデルN)のうち1つの値として導出され、この場合、前記ctxIdxOffsetは0として導出されることができる。その後、前記サインフラグに対するctxIdxは、ctxIdxOffsetと前記ctxIncの和jとして導出される。前記ctxIdxOffsetが0として導出されるので、前記サインフラグに対するctxIdxは前記ctxIncと同一であり得る。一例として、前記Nは2又は5であり得る。
【0307】
一方、上述した実施形態等は、全ての変換スキップブロックに対して適用されることができる。または、サインフラグは、ノンゼロレジデュアル係数に対するのみエンコーディング/デコーディングされるので、サインフラグエンコーディング/デコーディング対象になるノンゼロレジデュアル係数の個数が一定個数以上である場合にのみ、上述した実施形態を適用することがさらに有利であることもできる。これにより、表1または表6に記述されたレジデュアルコーディング方法が使用される場合には、先にコーディングされたノンゼロレジデュアル係数の個数が導出され得るし、ノンゼロレジデュアル係数の個数によってサインフラグを文脈コーディングするか、またはバイパスコーディングするかの可否が決定され得る。すなわち、例えば、現在サブブロックのノンゼロレジデュアル係数の個数が特定値以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が特定値より小さければ、前記サインフラグは、バイパスコーディングされることができる。一例として、前記特定値は、5であることができる。具体的に、例えば、現在サブブロックのノンゼロレジデュアル係数の個数が5以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が5より小さければ、前記サインフラグは、バイパスコーディングされることができる。一方、前記現在サブブロックが4×4サイズのブロックである場合、前記ノンゼロレジデュアル係数の個数は、0~16のうち1つであることができ、前記現在サブブロックが2×2サイズのブロックである場合、前記ノンゼロレジデュアル係数の個数は、0~4のうち1つであることができる。本文書は、サインフラグがコーディングされる順序を限定せず、現在サブブロックのノンゼロレジデュアル係数の存在可否あるいはノンゼロレジデュアル係数の個数を把握した後には、どのステップでも適用されることができる。
【0308】
または、現在ブロックのサイズによって導出された特定値とノンゼロレジデュアル係数の個数に基づいてサインフラグの文脈コーディング/バイパスコーディング可否を決定する実施形態が提案され得る。ここで、閾値(threshold)として使用されるノンゼロレジデュアル係数の個数、すなわち、前記特定値は、0から現在ブロック(現在サブブロックを含むブロック)のサンプル個数までの数字のうち1つであることができ、または、サブブロック単位で制御されて、4×4サブブロックの場合、0~16のうち1つであることができ、2×2サブブロックの場合、0~4のうち1つであることができる。すなわち、前記現在ブロックまたは現在サブブロックのサイズに基づいて特定値が導出され得るし、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値より小さければ、前記サインフラグは、バイパスコーディングされることができる。
【0309】
例えば、現在ブロックのサイズが8×8サイズである場合、前記特定値は、5に導出されることができ、現在サブブロックのノンゼロレジデュアル係数の個数が5以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が5より小さければ、前記サインフラグは、バイパスコーディングされることができる。また、前記現在ブロックのサイズが4×4サイズである場合、前記特定値は、4に導出されることができ、現在サブブロックのノンゼロレジデュアル係数の個数が4以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が4より小さければ、前記サインフラグは、バイパスコーディングされることができる。
【0310】
または、現在ブロックのサイズ、現在サブブロックの位置によって導出された特定値とノンゼロレジデュアル係数の個数に基づいてサインフラグの文脈コーディング/バイパスコーディング可否を決定する実施形態が提案され得る。ここで、閾値(threshold)として使用されるノンゼロレジデュアル係数の個数、すなわち、前記特定値は、0から現在ブロック(現在サブブロックを含むブロック)のサンプル個数までの数字のうち1つであることができ、または、サブブロック単位で制御されて、4×4サブブロックの場合、0~16のうち1つであることができ、2×2サブブロックの場合、0~4のうち1つであることができる。すなわち、前記現在ブロックまたは現在サブブロックのサイズ及び現在サブブロックの位置に基づいて特定値が導出され得るし、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値より小さければ、前記サインフラグは、バイパスコーディングされることができる。
【0311】
例えば、現在ブロックのサイズが8×8サイズであり、現在サブブロックが対角スキャン(diagonal scan)順序により決定された順序のうち、最も先にエンコーディングされる3番CGである場合、前記特定値は、5に導出されることができ、現在サブブロックのノンゼロレジデュアル係数の個数が5以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が5より小さければ、前記サインフラグは、バイパスコーディングされることができる。ここで、前記3番CGは、右下側サブブロックであることができる。また、現在ブロックのサイズが8×8サイズであり、現在サブブロックが対角スキャン(diagonal scan)順序により決定された順序のうち、0番CGである場合、現在サブブロックのノンゼロレジデュアル係数の個数と関係なく、前記サインフラグは、文脈モデルに基づいてコーディングされることができる。すなわち、前記特定値は、0に導出されることができる。ここで、前記0番CGは、左上側サブブロックであることができる。
【0312】
または、現在ブロックのサイズ、現在サブブロックの位置、及び前記現在ブロックの予測モードによって導出された特定値とノンゼロレジデュアル係数の個数に基づいてサインフラグの文脈コーディング/バイパスコーディング可否を決定する実施形態が提案され得る。ここで、閾値(threshold)として使用されるノンゼロレジデュアル係数の個数、すなわち、前記特定値は、0から現在ブロック(現在サブブロックを含むブロック)のサンプル個数までの数字のうち1つであることができ、または、サブブロック単位で制御されて、4×4サブブロックの場合、0~16のうち1つであることができ、2×2サブブロックの場合、0~4のうち1つであることができる。すなわち、前記現在ブロックまたは現在サブブロックのサイズ、現在サブブロックの位置、及び前記現在ブロックの予測モードに基づいて特定値が導出され得るし、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が前記特定値より小さければ、前記サインフラグは、バイパスコーディングされることができる。
【0313】
例えば、現在ブロックのサイズが8×8サイズであり、現在サブブロックが対角スキャン(diagonal scan)順序により決定された順序のうち、最も先にエンコーディングされる3番CGであり、前記現在ブロックの予測モードがイントラ予測モードである場合、前記特定値は、5に導出されることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が5以上であれば、前記サインフラグは、文脈モデルに基づいてコーディングされることができ、前記現在サブブロックのノンゼロレジデュアル係数の個数が5より小さければ、前記サインフラグは、バイパスコーディングされることができる。ここで、前記3番CGは、右下側サブブロックであることができる。また、現在サブブロックが対角スキャン(diagonal scan)順序により決定された順序のうち、0番CGである場合、現在サブブロックのノンゼロレジデュアル係数の個数と関係なく、前記サインフラグは、文脈モデルに基づいてコーディングされることができる。すなわち、前記特定値は、0に導出されることができる。ここで、前記0番CGは、左上側サブブロックであることができる。
【0314】
または、例えば、前記現在ブロックの前記現在ブロックの変換適用の可否に基づいて前記サインフラグを文脈モデルに基づいてコーディングするか又はバイパスコーディングするかが決定される。
【0315】
図6は、本実施形態によって現在レジデュアル係数のサインフラグの文脈モデルを決定する一例を示す。
【0316】
図6に示すように、エンコーディング装置/デコーディング装置は、現在レジデュアル係数が現在ブロックの現在ブロック内の係数スキャン順序上に1番目にエンコーディング/デコーディングされるレジデュアル係数であるか否かを判断する(S610)。ここで、前記現在レジデュアル係数は、前記現在ブロック内のレジデュアル係数のうち現在のエンコーディング/デコーディング対象であるレジデュアル係数を示すことができる。また、例えば、現在ブロックはTU(Transform Unit)であり得る。
【0317】
前記現在レジデュアル係数が前記現在ブロック内の1番目にエンコーディング/デコーディングされるレジデュアル係数である場合、エンコーディング装置/デコーディング装置は前記現在レジデュアル係数のサインフラグに対する変数lastcoeffsignflagを0として導出し(S620)、前記現在レジデュアル係数のサインフラグに対するctxIncをlastcoeffsignflagと設定する(S630)。例えば、上述の表32を参照すると、前記lastcoeffsignflagの値が0である場合、前記現在レジデュアル係数のサインフラグに対する文脈モデルは文脈モデル0として導出される。具体的に、例えば、前記lastcoeffsignflagの値が0である場合、前記現在レジデュアル係数のサインフラグに対するctxIdcは0として導出され、前記サインフラグに対するctxIdxOffsetが0として導出されるので、前記サインフラグに対するctxIdxは0として導出(すなわち、文脈モデル0として導出)されることができる。
【0318】
または、前記現在レジデュアル係数が前記現在ブロック内の1番目にエンコーディング/デコーディングされるレジデュアル係数でない場合、エンコーディング装置/デコーディング装置は、前記現在レジデュアル係数の以前にエンコーディング/デコーディングされるレジデュアル係数のサインフラグの値(lastcoeffsignflag)が0であるか否かを判断する(S640)。例えば、前記以前にエンコーディング/デコーディングされるレジデュアル係数は隣接するレジデュアル係数であり得る。例えば、前記以前にエンコーディング/デコーディングされるレジデュアル係数は、前記現在レジデュアル係数の左側周辺レジデュアル係数及び上側周辺レジデュアル係数のうち少なくとも1つを含む。または、例えば、前記周辺レジデュアル係数は、前記現在レジデュアル係数の右側周辺レジデュアル係数及び下側周辺レジデュアル係数のうち少なくとも1つを含む。前記以前にエンコーディング/デコーディングされるレジデュアル係数のサインフラグの値が0である場合、エンコーディング装置/デコーディング装置は前記現在レジデュアル係数のサインフラグに対する変数lastcoeffsignflagを0として導出し(S620)、前記現在レジデュアル係数のサインフラグに対するctxIncをlastcoeffsignflagと設定する(S630)。
【0319】
また、前記以前にエンコーディング/デコーディングされるレジデュアル係数のサインフラグの値が0でない場合、エンコーディング装置/デコーディング装置は、前記現在レジデュアル係数のサインフラグに対する変数lastcoeffsignflagを1として導出し(S650)、前記現在レジデュアル係数のサインフラグに対するctxIncをlastcoeffsignflagと設定する(S630)。
【0320】
図7は、前記現在ブロックの変換適用の可否及び以前にコーディングされたレジデュアル係数の符号に基づいて現在レジデュアル係数のサインフラグをコーディングするエンコーディング装置及びデコーディング装置を例示的に示す。
【0321】
図7の(a)は、前記現在ブロックの変換適用の可否及び現在レジデュアル係数の以前にコーディングされたレジデュアル係数の符号に基づいて現在レジデュアル係数のサインフラグをエンコーディングするエンコーディング装置を例示的に示す。例えば、
図7の(a)に示すように、エンコーディング装置は、前記現在ブロックに変換が適用されないか否かを決定することができ、前記現在ブロックに変換が適用されない場合、エンコーディング対象である現在レジデュアル係数の以前にコーディングされたレジデュアル係数の符号に基づいて前記現在レジデュアル係数のサインフラグの文脈モデルを導出することができる。その後、エンコーディング装置は決定された文脈モデルに基づいて前記現在レジデュアル係数のサインフラグを文脈エンコーディングすることができ、エンコーディングされたサインフラグを含むビットストリームを伝達することができる。
【0322】
また、
図7の(b)は、前記現在ブロックの変換適用の可否及び現在レジデュアル係数の以前にコーディングされたレジデュアル係数の符号に基いて現在レジデュアル係数のサインフラグをデコーディングするデコーディング装置を例示的に示す。
図7の(b)に示すように、デコーディング装置は、現在ブロックの変換スキップフラグに基づいて前記現在ブロックに変換が適用されないか否かを導出することができ、前記現在ブロックに変換が適用されない場合、デコーディング対象である現在レジデュアル係数の以前にコーディングされたレジデュアル係数の符号に基づいて前記現在レジデュアル係数のサインフラグの文脈モデルを導出することができる。その後、デコーディング装置は、決定された文脈モデルに基づいて前記現在レジデュアル係数のサインフラグを文脈デコーディングすることができ、デコーディングされたサインフラグに基づいて前記現在レジデュアル係数を導出することができる。
【0323】
図8は、本文書によるエンコーディング装置による映像エンコーディング方法を概略的に示す。
図8において開示された方法は、
図2において開示されたエンコーディング装置により行われることができる。具体的に、例えば、
図8のS810ないしS820は前記エンコーディング装置のレジデュアル処理部により行われ、S830ないしS850は前記エンコーディング装置のエントロピーエンコーディング部により行われる。また、図示されてはいないが、予測サンプルを導出する過程は前記エンコーディング装置の予測部により行われ、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出する過程は前記エンコーディング装置の減算部により行われ、前記現在ブロックに対するレジデュアルサンプルと予測サンプルに基づいて前記現在ブロックに対する復元サンプル及び復元ピクチャを生成する過程は前記エンコーディング装置の加算部により行われる。
【0324】
エンコーディング装置は、現在ブロックのレジデュアルサンプルを導出する(S810)。例えば、エンコーディング装置は、現在ブロックにインター予測を行うか又はイントラ予測を行うかを決定し、具体的なインター予測モード又は具体的なイントラ予測モードをRDコストに基づいて決定する。決定されたモードに応じて、エンコーディング装置は、前記現在ブロックに対する予測サンプルを導出し、前記現在ブロックに対する原本サンプルと前記予測サンプルの減算により前記レジデュアルサンプルを導出する。
【0325】
エンコーディング装置は、前記レジデュアルサンプルに基づいて前記現在ブロックの現在レジデュアル係数を導出する(S820)。
【0326】
その後、エンコーディング装置は、前記現在ブロックに対して変換が適用されるか否かを決定できる。すなわち、エンコーディング装置は、前記現在ブロックの前記レジデュアルサンプルに対して変換が適用されるか否かを決定できる。エンコーディング装置は、コーディング効率を考慮して、前記現在ブロックに対する変換適用可否を決定できる。例えば、エンコーディング装置は、前記現在ブロックに対して変換が適用されないことと決定することができる。
【0327】
前記現在ブロックに対して変換が適用されない場合、すなわち、前記レジデュアルサンプルに対して変換が適用されない場合、エンコーディング装置は、前記導出されたレジデュアルサンプルを前記現在レジデュアル係数で導出することができる。また、前記現在ブロックに対して変換が適用される場合、すなわち、前記レジデュアルサンプルに対して変換が適用される場合、エンコーディング装置は、前記導出されたレジデュアルサンプルに対する変換を行って前記現在レジデュアル係数を導出できる。前記現在レジデュアル係数は、前記現在ブロックの現在サブブロックに含まれることができる。前記現在サブブロックは、現在CG(coefficient croup)と呼ばれることができる。また、前記現在ブロックの現在サブブロックのサイズは、4×4サイズまたは2×2サイズであることができる。すなわち、前記現在ブロックの前記現在サブブロックは、最大16個のノンゼロ(non-zero)レジデュアル係数または最大4個のノンゼロレジデュアル係数を含むことができる。
【0328】
一方、エンコーディング装置は、前記現在ブロックのレジデュアル係数等の変換適用可否を表す変換スキップフラグを生成及びエンコーディングすることができる。レジデュアル情報は、前記現在ブロックに対する変換スキップフラグを含むことができる。前記変換スキップフラグは、前記現在ブロックのレジデュアル係数等の変換適用可否を表すことができる。すなわち、前記変換スキップフラグは、前記レジデュアル係数等に変換が適用されたか否かを表すことができる。前記変換スキップフラグを表すシンタックスエレメントは、上述したtransform_skip_flagであることができる。
【0329】
エンコーディング装置は、前記現在レジデュアル係数のサインフラグに対する文脈モデルを導出する(S830)。
【0330】
例えば、エンコーディング装置は複数の文脈モデルのうち前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを導出することができる。
【0331】
一例として、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされるレジデュアル係数のサインフラグに基づいて導出される。例えば、前記現在ブロックに対する係数スキャン順序において前記現在レジデュアル係数の以前にエンコーディングされる(又は、スキャンされる)レジデュアル係数のうち前記現在レジデュアル係数の周辺レジデュアル係数のサインフラグに基づいて導出される。例えば、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを示す文脈インデックスの値が0として導出され、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈インデックスの値が1として導出される。すなわち、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルは文脈モデル0として導出され、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記現在レジデュアル係数のサインフラグに対する文脈モデルは文脈モデル1として導出される。一方、例えば、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にエンコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを示す文脈インデックスの値が0として導出される。すなわち、例えば、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にエンコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルは文脈モデル0として導出される。また、例えば、前記現在レジデュアル係数を含む前記現在ブロック内の現在サブブロックが1番目の順序でエンコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在サブブロックにおいて1番目にエンコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の以前にエンコーディングされる前記レジデュアル係数は前記現在サブブロックの以前にエンコーディングされたサブブロック内の最後にエンコーディングされるレジデュアル係数として導出される。すなわち、前記現在ブロック内の現在サブブロックが1番目の順序でエンコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在サブブロックにおいて1番目にエンコーディングされるレジデュアル係数である場合は、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にエンコーディングされることなく、以前にエンコーディングされたレジデュアル係数が存在するので、前記以前にエンコーディングされるレジデュアル係数として導出される。
【0332】
または、他の一例として、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされる複数のレジデュアル係数のサインフラグに基づいて導出される。前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされる複数のレジデュアル係数のサインフラグに基づいて複数の文脈モデルの1つとして導出できる。例えば、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされる2つのレジデュアル係数のサインフラグに基づいて3つの文脈モデルのうちの1つとして導出できる。または、例えば、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にエンコーディングされる2つのレジデュアル係数のサインフラグに基づいて6つの文脈モデルのい1つとして導出できる。
【0333】
一方、エンコーディング装置は、前記サインフラグが前記文脈モデルに基づいてエンコーディングされるか否かを判断でき、前記サインフラグが前記文脈モデルに基づいてエンコーディングされることと判断される場合に、前記サインフラグに対する前記文脈モデルを導出できる。
【0334】
例えば、エンコーディング装置は、前記現在ブロックに対する変換スキップフラグに基づいて前記サインフラグが前記文脈モデルに基づいてエンコーディングされるか否かを判断できる。すなわち、エンコーディング装置は、前記現在ブロックの変換適用可否に基づいて、前記サインフラグが前記文脈モデルに基づいてエンコーディングされるか否かを判断できる。前記変換スキップフラグは、前記現在ブロックに変換が適用されるか否かを表すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックのレジデュアル係数に変換が適用されるか否かを表すことができる。前記現在ブロックに対する前記レジデュアル情報は、前記変換スキップフラグを含むことができる。前記変換スキップフラグの値が0である場合、前記サインフラグは、前記文脈モデルに基づいてエンコーディングされないことができ(すなわち、前記サインフラグは、バイパスエンコーディングされることができ)、前記変換スキップフラグの値が1である場合、前記サインフラグは、前記文脈モデルに基づいてエンコーディングされることができる。すなわち、前記変換スキップフラグの値が1である場合、前記サインフラグが前記文脈モデルに基づいてエンコーディングされることと判断されることができ、エンコーディング装置は、前記サインフラグに対する前記文脈モデルを導出でき、前記文脈モデルに基づいて前記サインフラグをエンコーディングすることができる。
【0335】
または、例えば、エンコーディング装置は、現在サブブロック内のノンゼロ(non-zero)レジデュアル係数の個数と特定値を比較して前記サインフラグが前記文脈モデルに基づいてエンコーディングされるか否かを判断する。ここで、前記現在サブブロックは、前記現在レジデュアル係数を含む前記現在ブロックのサブブロックを意味し得る。前記ノンゼロレジデュアル係数の個数が前記特定値より小さい場合、前記サインフラグは前記文脈モデルに基づいてエンコーディングされなく(すなわち、前記サインフラグはバイパスエンコーディングされ)、前記ノンゼロレジデュアル係数の個数が前記特定値以上である場合、前記サインフラグは前記文脈モデルに基づいてエンコーディングされる。すなわち、前記ノンゼロレジデュアル係数が前記特定値以上である場合、エンコーディング装置は前記サインフラグが前記文脈モデルに基づいてエンコーディングされると判断し、エンコーディング装置は前記サインフラグに対する前記文脈モデルを導出でき、前記文脈モデルに基づいて前記サインフラグをエンコーディングすることができる。前記特定値は、臨界値(threshold)と表してもよい。
【0336】
ここで、一例として、前記特定値は、0ないし前記現在ブロックのサンプル個数のうち1つであることができる。例えば、前記特定値は、0~64のうち1つであることができる。または、例えば、前記特定値は、0ないし前記現在サブブロックのサンプル個数のうち1つであることができる。すなわち、例えば、前記現在サブブロックのサイズが4×4サイズである場合、前記特定値は、0~16のうち1つであることができ、前記現在サブブロックのサイズが2×2サイズである場合、前記特定値は、0~4のうち1つであることができる。一例として、前記特定値は、5であることができる。
【0337】
または、一例として、前記特定値は、前記現在ブロックのサイズに基づいて導出されることができる。例えば、前記現在ブロックのサイズが8×8サイズである場合、前記特定値は、5に導出されることができ、前記現在ブロックのサイズが4×4サイズである場合、前記特定値は、4に導出されることができる。
【0338】
または、一例として、前記特定値は、前記現在ブロックのサイズ及び前記現在ブロック内の前記現在サブブロックの位置に基づいて導出されることができる。
【0339】
例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックである場合、前記特定値は、5に導出されることができる。ここで、右下側サブブロックは、対角スキャンオーダー(diagonal scan order)により決定された順序のうち、3番サブブロック(すなわち、3番CG)であることができる。
【0340】
また、例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックである場合、前記特定値は、4に導出されることができる。ここで、左上側サブブロックは、対角スキャンオーダー(diagonal scan order)により決定された順序のうち、0番サブブロック(または、0番CG)であることができる。
【0341】
または、一例として、前記特定値は、前記現在ブロックのサイズ、前記現在ブロック内の前記サブブロックの位置、及び前記現在ブロックの予測モードに基づいて導出されることができる。
【0342】
例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックであり、前記現在ブロックの前記予測モードがイントラ予測モードである場合、前記特定値は、5に導出されることができる。すなわち、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックであり、前記現在ブロックに適用された予測モードが前記イントラ予測モードである場合、前記特定値は、5に導出されることができる。
【0343】
また、例えば、前記現在ブロックのサイズが前記8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックであり、前記現在ブロックの前記予測モードが前記イントラ予測モードである場合、前記特定値は、0に導出されることができる。すなわち、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックであり、前記現在ブロックに適用された予測モードが前記イントラ予測モードである場合、前記特定値は、0に導出されることができる。これにより、前記ノン-ゼロレジデュアル係数等の個数と関係なく、前記サインフラグが前記文脈モデルに基づいてエンコーディングされることと判断されることができる。
【0344】
エンコーディング装置は、前記文脈モデルに基づいて前記サインフラグをエンコーディングする(S840)。エンコーディング装置は、前記文脈モデルに基づいて前記サインフラグをエンコーディングする。すなわち、エンコーディング装置は、前記文脈モデルに基づいて前記サインフラグを文脈基盤にてエンコーディングする。前記サインフラグは、前記現在レジデュアル係数の符号(sign)を示す。前記サインフラグの値が0である場合、前記サインフラグは前記現在レジデュアル係数が正の数(positive value)であることを示し(すなわち、前記サインフラグは、前記現在レジデュアル係数の符号が1であることを示し)、前記サインフラグの値が1である場合、前記サインフラグは前記現在レジデュアル係数が負の数(negative value)であることを示す(すなわち、前記サインフラグは前記現在レジデュアル係数の符号が-1であることを示す)。すなわち、前記サインフラグの値が0である場合、前記現在レジデュアル係数は正の数(positive value)であり、前記サインフラグの値が1である場合、前記現在レジデュアル係数は負の数(negative value)であり得る。
【0345】
また、エンコーディング装置は、前記現在ブロックに関するレジデュアル情報をエンコーディングすることができる。
【0346】
前記レジデュアル情報は、前記現在ブロックのレジデュアル係数に対するシンテックスエレメントを含む。前記レジデュアル情報は、前記現在ブロックの現在レジデュアル係数に対するシンテックスエレメントを含む。ここで、前記のシンテックスエレメントは文脈基盤にてコーディングされたシンテックスエレメント及びバイパスコーディングされたシンテックスエレメント(すなわち、均一な確率分布に基づいてコーディングされたシンテックスエレメント)を含む。
【0347】
例えば、前記レジデュアル情報は、transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gtx_flag、abs_remainder、coeff_sign_flag、dec_abs_level、及び/又はmts_idxなどのシンタックスエレメント等(syntax elements)を含むことができる。
【0348】
具体的に、例えば、前記レジデュアル情報は、前記現在ブロックに対する変換スキップフラグを含むことができる。前記変換スキップフラグは、前記現在ブロックの変換適用可否を表すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックの前記レジデュアル係数等に変換が適用されたか否かを表すことができる。前記変換スキップフラグを表すシンタックスエレメントは、上述したtransform_skip_flagであることができる。
【0349】
また、例えば、前記レジデュアル情報は、前記現在ブロックのレジデュアル係数配列(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)と呼ばれることもできる。
【0350】
また、例えば、前記レジデュアル情報は、前記現在ブロックの現在レジデュアル係数に対する文脈基盤にてコーディングされたシンテックスエレメントを含む。前記シンテックスエレメントは、前記現在レジデュアル係数がノンゼロ(non-zero)レジデュアル係数であるか否かを示す有効係数フラグ、前記現在レジデュアル係数に対する係数レベルのパリティ(parity)に対するパリティレベルフラグ、前記係数レベルが第1臨界値より大きいか否かに対する第1係数レベルフラグ及び前記現在レジデュアル係数の前記係数レベルが第2臨界値より大きいか否かに対する第2係数レベルフラグを含む。ここで、前記有効係数フラグはsig_coeff_flag であり、前記パリティレベルフラグはpar_level_flagであり、前記第1係数レベルフラグはabs_level_gt1_flagであり、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであり得る。
【0351】
また、例えば、現在レジデュアル係数に対する文脈基盤にてコーディングされたシンタックスエレメント等は、前記現在レジデュアル係数の符号を表すサインフラグを含むことができる。一例として、前記現在ブロックに変換が適用されない場合(すなわち、変換スキップフラグの値が1である場合)、前記文脈基盤にてコーディングされたシンタックスエレメント等は、前記サインフラグを含むことができる。すなわち、前記現在ブロックに変換が適用されない場合(すなわち、変換スキップフラグの値が1である場合)、前記サインフラグは、文脈モデル(context model)に基づいてエンコーディングされることができる。
【0352】
また、例えば、前記レジデュアル情報は、前記現在ブロックの現在レジデュアル係数に対するバイパス基盤にてコーディングされたシンテックスエレメントを含む。前記バイパスコーディングされたシンテックスエレメントは、前記現在レジデュアル係数の値に対する係数値関連情報を含む。前記係数値に関する情報はabs_remainder及び/又はdec_abs_levelであり得る。また、一例として、前記現在ブロックに変換が適用される場合(すなわち、変換スキップフラグの値が0である場合)、前記バイパスコーディングされたシンテックスエレメントは前記サインフラグを含む。すなわち、前記現在ブロックに変換が適用される場合(すなわち、変換スキップフラグの値が0である場合)、前記サインフラグはバイパスエンコーディング(すなわち、前記サインフラグは均一な確率分布に基づいてエンコーディング)されることができる。
【0353】
エンコーディング装置は、前記サインフラグを含むビットストリームを生成する(S850)。例えば、エンコーディング装置は、前記サインフラグを含むレジデュアル情報を含む映像情報をビットストリームとして出力する。前記ビットストリームは前記レジデュアル情報を含む。
【0354】
一方、前記ビットストリームは、前記現在ブロックに対する予測情報を含むことができる。前記予測情報は、前記現在ブロックに行われるインター予測モードまたはイントラ予測モードに関する情報を含むことができる。エンコーディング装置は、前記現在ブロックに対する予測情報を生成及びエンコーディングすることができる。
【0355】
一方、前記ビットストリームは、ネットワークまたは(デジタル)格納媒体を介してデコーディング装置に送信されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。
【0356】
図9は、本文書による映像エンコーディング方法を行うエンコーディング装置を概略的に示す。
図8において開示された方法は
図9において開示されたエンコーディング装置により行われることができる。具体的に、例えば、
図9の前記エンコーディング装置のレジデュアル処理部は
図8のS810ないしS820を行い、
図9の前記エンコーディング装置のエントロピーエンコーディング部は
図8のS830ないしS850を行うことができる。また、図示されてはいないが、予測サンプルを導出する過程は前記エンコーディング装置の予測部により行われ、前記現在ブロックに対するレジデュアルサンプルと予測サンプルに基づいて前記現在ブロックに対する復元サンプルを導出する過程は前記エンコーディング装置の加算部により行われ、前記現在ブロックに対する予測情報をエンコーディングする過程は前記エンコーディング装置のエントロピーエンコーディング部により行われることができる。
【0357】
図10は、本文書によるデコーディング装置による映像デコーディング方法を概略的に示す。
図10において開示された方法は、
図3において開示されたデコーディング装置により行われることができる。具体的に、例えば、
図10のS1010、S1030ないしS1050は前記デコーディング装置のエントロピーデコーディング部により行われ、
図10のS1020は前記デコーディング装置の予測部により行われ、S1060は前記デコーディング装置のレジデュアル処理部により行われ、S1070は前記デコーディング装置の加算部により行われることができる。
【0358】
デコーディング装置は、現在ブロックに対するレジデュアル情報を受信する(S1010)。デコーディング装置は、ビットストリームを介して前記現在ブロックに対するレジデュアル情報を含む映像情報を受信する。ここで、前記現在ブロックはコーディングブロック(Coding Block:CB)または変換ブロック(Transform Block:TB)であり得る。前記レジデュアル情報は、前記現在ブロックのレジデュアル係数に対するシンテックスエレメントを含む。ここで、前記シンテックスエレメントは文脈基盤にてコーディングされたシンテックスエレメント及びバイパスコーディングされたシンテックスエレメント(すなわち、均一な確率分布に基づいてコーディングされたシンテックスエレメント)を含む。
【0359】
例えば、前記レジデュアル情報は、transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gtx_flag、abs_remainder、coeff_sign_flag、dec_abs_level、及び/又はmts_idxなどのシンタックスエレメント等(syntax elements)を含むことができる。
【0360】
具体的に、例えば、前記レジデュアル情報は、前記現在ブロックに対する変換スキップフラグを含むことができる。前記変換スキップフラグは、前記現在ブロックの変換適用可否を表すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックの前記レジデュアル係数等に変換が適用されたか否かを表すことができる。前記変換スキップフラグを表すシンタックスエレメントは、上述したtransform_skip_flagであることができる。
【0361】
また、例えば、前記レジデュアル情報は、前記現在ブロックのレジデュアル係数配列(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)と呼ばれることもできる。
【0362】
また、例えば、前記レジデュアル情報は、前記現在ブロックの現在レジデュアル係数に対する文脈基盤にてコーディングされたシンテックスエレメントを含む。前記シンテックスエレメントは、前記現在レジデュアル係数がノンゼロ(non-zero)レジデュアル係数であるか否かを示す有効係数フラグ、前記現在レジデュアル係数に対する係数レベルのパリティ(parity)に対するパリティレベルフラグ、前記係数レベルが第1臨界値より大きいか否かに対する第1係数レベルフラグ及び前記現在レジデュアル係数の前記係数レベルが第2臨界値より大きいか否かに対する第2係数レベルフラグを含む。ここで、前記有効係数フラグはsig_coeff_flag であり、前記パリティレベルフラグはpar_level_flag であり、前記第1係数レベルフラグはabs_level_gt1_flag であり、前記第2係数レベルフラグはabs_level_gt3_flag又はabs_level_gtx_flagであり得る。
【0363】
また、例えば、現在レジデュアル係数に対する文脈基盤にてコーディングされたシンタックスエレメント等は、前記現在レジデュアル係数の符号を表すサインフラグを含むことができる。一例として、前記現在ブロックに変換が適用されない場合(すなわち、変換スキップフラグの値が1である場合)、前記文脈基盤にてコーディングされたシンタックスエレメント等は、前記サインフラグを含むことができる。すなわち、前記現在ブロックに変換が適用されない場合(すなわち、変換スキップフラグの値が1である場合)、前記サインフラグは、文脈モデル(context model)に基づいてデコーディングされることができる。
【0364】
また、例えば、前記レジデュアル情報は、前記現在ブロックの現在レジデュアル係数に対するバイパス基盤にてコーディングされたシンテックスエレメントを含む。前記バイパスコーディングされたシンテックスエレメントは、前記現在レジデュアル係数の値に対する係数値関連情報を含む。前記係数値関連情報はabs_remainder及び/又はdec_abs_levelであり得る。また、一例として、前記現在ブロックに変換が適用される場合(すなわち、変換スキップフラグの値が0である場合)、前記バイパスコーディングされたシンテックスエレメントは前記サインフラグを含む。すなわち、前記現在ブロックに変換が適用される場合(すなわち、変換スキップフラグの値が0である場合)、前記サインフラグはバイパスデコーディング(すなわち、前記サインフラグは均一な確率分布に基づいてデコーディング)される。
【0365】
一方、前記ビットストリームは、前記現在ブロックに対する予測情報を含む。前記予測情報は、前記現在ブロックに行われるインター予測モード又はイントラ予測モードに関する情報を含む。
【0366】
デコーディング装置は、前記現在ブロックの予測サンプルを導出する(S1020)。例えば、デコーディング装置は、前記ビットストリームを介して受信された前記予測情報に基づいて前記現在ブロックに対するインター予測またはイントラ予測を行い、前記現在ブロックの予測サンプルを導出する。例えば、デコーディング装置は前記予測情報に基づいて前記現在ブロックに適用される予測モードを導出する。例えば、前記現在ブロックにインター予測が適用される場合、デコーディング装置は前記予測情報に基づいて前記現在ブロックの動き情報を導出し、前記動き情報に基づいて前記現在ブロックの前記予測サンプルを導出する。また、例えば、前記現在ブロックにイントラ予測が適用される場合、デコーディング装置は前記現在ブロックの周辺サンプルに基づいて参照サンプルを導出し、前記参照サンプル及び前記現在ブロックのイントラ予測モードに基づいて前記現在ブロックの前記予測サンプルを導出する。
【0367】
デコーディング装置は、前記現在ブロックの現在レジデュアル係数のサインフラグに対する文脈モデルを導出する(S1030)。
【0368】
例えば、デコーディング装置は複数の文脈モデルのうち前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを導出する。
【0369】
一例として、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされるレジデュアル係数のサインフラグに基づいて導出される。例えば、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされた前記現在レジデュアル係数の周辺レジデュアル係数のサインフラグに基づいて導出される。すなわち、前記現在ブロックに対する係数スキャン順序において前記現在レジデュアル係数の以前にデコーディングされる(又は、スキャンされる)レジデュアル係数のサインフラグに基づいて導出される。例えば、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを示す文脈インデックスの値が0として導出され、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを示す文脈インデックスの値が1として導出される。すなわち、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が0である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルは文脈モデル0として導出され、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数の前記サインフラグの値が1である場合、前記現在レジデュアル係数のサインフラグに対する文脈モデルは文脈モデル1として導出される。一方、例えば、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にデコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルを示す文脈インデックスの値が0として導出される。すなわち、例えば、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にデコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の前記サインフラグに対する文脈モデルは文脈モデル0として導出される。また、例えば、前記現在レジデュアル係数を含む前記現在ブロック内の現在サブブロックが1番目の順序でデコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在サブブロックにおいて1番目にデコーディングされるレジデュアル係数である場合、前記現在レジデュアル係数の以前にデコーディングされる前記レジデュアル係数は、前記現在サブブロックの以前にデコーディングされたサブブロック内の最後にデコーディングされるレジデュアル係数として導出される。すなわち、前記現在ブロック内の現在サブブロックが1番目の順序でデコーディングされるサブブロックではなく、前記現在レジデュアル係数が前記現在サブブロックにおいて1番目にデコーディングされるレジデュアル係数である場合は、前記現在レジデュアル係数が前記現在ブロックにおいて1番目にデコーディングされることなく、以前にデコーディングされたレジデュアル係数が存在するので、前記以前にデコーディングされるレジデュアル係数として導出されることができる。
【0370】
または、他の一例として、前記サインフラグに対する前記文脈モデルは前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされる複数のレジデュアル係数のサインフラグに基づいて導出される。前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされる複数のレジデュアル係数のサインフラグに基づいて複数の文脈モデルの1つとして導出される。例えば、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされる2つのレジデュアル係数のサインフラグに基づいて3つの文脈モデルのうちの1つとして導出される。または、例えば、前記サインフラグに対する前記文脈モデルは、前記現在ブロック内の前記現在レジデュアル係数の以前にデコーディングされる2つのレジデュアル係数のサインフラグに基づいて6つの文脈モデルのうち1つとして導出される。
【0371】
一方、デコーディング装置は、前記サインフラグが前記文脈モデルに基づいてデコーディングされるか否かを判断でき、前記サインフラグが前記文脈モデルに基づいてデコーディングされることと判断される場合に、前記サインフラグに対する前記文脈モデルを導出することもできる。
【0372】
例えば、デコーディング装置は、前記現在ブロックに対する変換スキップフラグに基づいて、前記サインフラグが前記文脈モデルに基づいてデコーディングされるか否かを判断できる。すなわち、デコーディング装置は、前記現在ブロックの変換適用可否に基づいて前記サインフラグが前記文脈モデルに基づいてデコーディングされるか否かを判断できる。前記変換スキップフラグは、前記現在ブロックに変換が適用されるか否かを表すことができる。すなわち、前記変換スキップフラグは、前記現在ブロックのレジデュアル係数等に変換が適用されるか否かを表すことができる。前記現在ブロックに対する前記レジデュアル情報は、前記変換スキップフラグを含むことができる。前記変換スキップフラグの値が0である場合、前記サインフラグは、前記文脈モデルに基づいてデコーディングされないことができ(すなわち、前記サインフラグは、バイパスデコーディングされることができ)、前記変換スキップフラグの値が1である場合、前記サインフラグは、前記文脈モデルに基づいてデコーディングされることができる。すなわち、前記変換スキップフラグの値が1である場合、前記サインフラグが前記文脈モデルに基づいてデコーディングされることと判断されることができ、デコーディング装置は、前記サインフラグに対する前記文脈モデルを導出でき、前記文脈モデルに基づいて前記サインフラグをデコーディングすることができる。
【0373】
または、例えば、デコーディング装置は、現在サブブロック内のノンゼロ(non-zero)レジデュアル係数と特定値を比較して前記サインフラグが前記文脈モデルに基づいてデコーディングされるか否かを判断する。ここで、前記現在サブブロックは、前記現在レジデュアル係数を含む前記現在ブロックのサブブロックを意味し得る。前記ノンゼロレジデュアル係数の個数が前記特定値より小さい場合、前記サインフラグは前記文脈モデルに基づいてデコーディングされなく(すなわち、前記サインフラグはバイパスデコーディングされ)、前記ノンゼロレジデュアル係数の個数が前記特定値以上である場合、前記サインフラグは前記文脈モデルに基づいてデコーディングできる。言い換えると、前記ノンゼロレジデュアル係数の個数が前記特定値以上である場合、デコーディング装置は前記サインフラグが前記文脈モデルに基づいてデコーディングされると判断し、デコーディング装置は前記サインフラグに対する前記文脈モデルを導出し、前記文脈モデルに基づいて前記サインフラグをデコーディングすることができる。前記特定値は、臨界値(threshold)と表してもい。
【0374】
ここで、一例として、前記特定値は、0ないし前記現在ブロックのサンプル個数のうち1つであることができる。例えば、前記特定値は、0~64のうち1つであることができる。または、例えば、前記特定値は、0ないし前記現在サブブロックのサンプル個数のうち1つであることができる。すなわち、例えば、前記現在サブブロックのサイズが4×4サイズである場合、前記特定値は、0~16のうち1つであることができ、前記現在サブブロックのサイズが2×2サイズである場合、前記特定値は、0~4のうち1つであることができる。一例として、前記特定値は、5であることができる。
【0375】
または、一例として、前記特定値は、前記現在ブロックのサイズに基づいて導出されることができる。例えば、前記現在ブロックのサイズが8×8サイズである場合、前記特定値は、5に導出されることができ、前記現在ブロックのサイズが4×4サイズである場合、前記特定値は、4に導出されることができる。
【0376】
または、一例として、前記特定値は、前記現在ブロックのサイズ及び前記現在ブロック内の前記現在サブブロックの位置に基づいて導出されることができる。
【0377】
例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックである場合、前記特定値は、5に導出されることができる。ここで、右下側サブブロックは、対角スキャンオーダー(diagonal scan order)により決定された順序のうち、3番サブブロック(すなわち、3番CG)であることができる。
【0378】
また、例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックである場合、前記特定値は、4に導出されることができる。ここで、左上側サブブロックは、対角スキャンオーダー(diagonal scan order)により決定された順序のうち、0番サブブロック(または、0番CG)であることができる。
【0379】
または、一例として、前記特定値は、前記現在ブロックのサイズ、前記現在ブロック内の前記サブブロックの位置、及び前記現在ブロックの予測モードに基づいて導出されることができる。
【0380】
例えば、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックであり、前記現在ブロックの前記予測モードがイントラ予測モードである場合、前記特定値は、5に導出されることができる。すなわち、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの右下側サブブロックであり、前記現在ブロックに適用された予測モードが前記イントラ予測モードである場合、前記特定値は、5に導出されることができる。
【0381】
また、例えば、前記現在ブロックのサイズが前記8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックであり、前記現在ブロックの前記予測モードが前記イントラ予測モードである場合、前記特定値は、0に導出されることができる。すなわち、前記現在ブロックのサイズが8×8サイズであり、前記現在サブブロックが前記現在ブロックの左上側サブブロックであり、前記現在ブロックに適用された予測モードが前記イントラ予測モードである場合、前記特定値は、0に導出されることができる。これにより、前記ノン-ゼロレジデュアル係数の個数と関係なく、前記サインフラグが前記文脈モデルに基づいてデコーディングされることと判断されることができる。
【0382】
デコーディング装置は、前記文脈モデルに基づいて前記サインフラグをデコーディングする(S1040)。デコーディング装置は前記文脈モデルに基づいて前記サインフラグをデコーディングすることができる。前記サインフラグは、前記現在レジデュアル係数の符号(sign)を示す。前記サインフラグの値が0である場合、前記サインフラグは前記現在レジデュアル係数が正の数(positive value)であることを示し(すなわち、前記サインフラグは前記現在レジデュアル係数の符号が1であることを示し)、前記サインフラグの値が1である場合、前記サインフラグは前記現在レジデュアル係数が負の数(negative value)であることを示す(すなわち、前記サインフラグは前記レジデュアル係数の符号が-1であることを示す)。すなわち、前記サインフラグの値が0である場合、前記現在レジデュアル係数は正の数(positive value)であり、前記サインフラグの値が1である場合、前記現在レジデュアル係数は負の数(negative value)であり得る。
【0383】
デコーディング装置は、前記サインフラグに基づいて前記現在レジデュアル係数を導出する(S1050)。デコーディング装置は、前記レジデュアル情報(例えば、前記現在レジデュアル係数に対するサイズ関連情報)に基づいて前記現在レジデュアル係数のサイズ(すなわち、レベル値)を導出し、前記サインフラグに基づいて導出された前記現在レジデュアル係数の符号及び前記現在レジデュアル係数のサイズとして前記現在ブロックの前記現在レジデュアル係数を導出することができる。すなわち、デコーディング装置は前記現在レジデュアル係数に対するサインフラグ及び前記レジデュアル情報(前記現在レジデュアル係数に対するシンテックスエレメント)に基づいて前記現在ブロックの前記現在レジデュアル係数を導出することができる。
【0384】
デコーディング装置は、前記現在レジデュアル係数に基づいてレジデュアルサンプルを導出する(S1060)。
【0385】
デコーディング装置は、前記現在レジデュアル係数に基づいて前記現在ブロックのレジデュアルサンプルを導出する。すなわち、デコーディング装置は前記現在レジデュアル係数に基づいて前記現在ブロックのレジデュアルサンプルを導出する。一例として、前記変換スキップフラグに基づいて前記現在ブロックに対して変換が適用されないと導出された場合、すなわち、前記変換スキップフラグの値が1である場合、デコーディング装置は前記現在レジデュアル係数を前記現在ブロックの前記レジデュアルサンプルとして導出することができる。または、例えば、前記変換スキップフラグに基づいて前記現在ブロックに対して変換が適用されないと導出された場合、すなわち、前記変換スキップフラグの値が1である場合、デコーディング装置は前記現在レジデュアル係数を逆量子化して前記現在ブロックの前記レジデュアルサンプルを導出することができる。または、例えば、前記変換スキップフラグに基づいて前記現在ブロックに対して変換が適用されたと導出された場合、すなわち、前記変換スキップフラグの値が0である場合、デコーディング装置は前記現在レジデュアル係数を逆変換して前記現在ブロックの前記レジデュアルサンプルを導出する。または、例えば、前記変換スキップフラグに基づいて前記現在ブロックに対して変換が適用されたと導出された場合、すなわち、前記変換スキップフラグの値が0である場合、デコーディング装置は、前記現在レジデュアル係数を逆量子化し、逆量子化された係数を逆変換して前記現在ブロックの前記レジデュアルサンプルを導出することができる。
【0386】
デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャを生成する(S1070)。
【0387】
例えば、デコーディング装置は、ビットストリームを介して受信された予測情報に基づいて前記現在ブロックに対するインター予測モードまたはイントラ予測モードを行って予測サンプルを導出でき、前記予測サンプルと前記レジデュアルサンプルとの加算を介して前記復元ピクチャを生成できる。また、例えば、前記予測情報は、前記現在ブロックのイントラ予測モードを表す情報を含むことができる。デコーディング装置は、前記現在ブロックのイントラ予測モードを表す情報に基づいて前記現在ブロックの前記イントラ予測モードを導出でき、前記現在ブロックの参照サンプル等及び前記イントラ予測モードに基づいて前記現在ブロックの予測サンプルを導出できる。前記参照サンプル等は、前記現在ブロックの上側参照サンプル等及び左側参照サンプル等を含むことができる。例えば、前記現在ブロックのサイズがN×Nであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記左側参照サンプル等は、p[-1][0]~p[-1][2N-1]、前記上側参照サンプル等は、p[0][-1]~p[2N-1][-1]であることができる。
【0388】
その後、必要に応じて主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO、及び/又はALF手順のようなインループフィルタリング手順が前記復元ピクチャに適用され得ることは、上述のとおりである。
【0389】
図11は,本文書による映像デコーディング方法を行うデコーディング装置を概略的に示す。
図10において開示された方法は、
図11において開示されたデコーディング装置により行われることができる。具体的に、例えば、
図11の前記デコーディング装置のエントロピーデコーディング部は
図10のS1010、S1030ないしS1050を行い、
図11の前記デコーディング装置の予測部は
図10のS1020を行い、
図11の前記デコーディング装置のレジデュアル処理部は
図10のS1060を行い、
図11の前記デコーディング装置の加算部は
図10のS1070を行うことができる。
【0390】
上述した本文書によれば、レジデュアルコーディングの効率を上げることができる。
【0391】
また、本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグを文脈モデルに基づいてコーディングし、これを通じてレジデュアル係数に対するサインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【0392】
また、本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグに対する文脈モデルを前記レジデュアル係数に隣接する周辺レジデュアル係数の符号に基づいて導出し、これにより隣接するレジデュアル係数間の相関性を考慮してサインフラグをコーディングし、前記サインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【0393】
また、本文書によれば、レジデュアル係数の符号(sign)を表すサインフラグに対する文脈モデルを前記レジデュアル係数の以前にデコーディングされた周辺レジデュアル係数の符号に基づいて導出し、これにより隣接するレジデュアル係数間の相関性を考慮してサインフラグをコーディングし、前記サインフラグに割り当てられるビット量を節約し、全般的なレジデュアルコーディング効率を向上させることができる。
【0394】
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図を基に説明されているが、本文書は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと異なる順序でまたは同時に発生することができる。また、当業者であれば、流れ図に示されたステップが排他的でなく、他のステップが含まれ、または流れ図の1つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0395】
本文書において説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で具現されて実行されることができる。例えば、各図面において図示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
【0396】
また、本文書の実施形態が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使用されることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを備えることができる。
【0397】
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。本文書に係るデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み出すことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介しての送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または有無線通信ネットワークを介して送信されることができる。
【0398】
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0399】
図12は、本文書の実施形態が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0400】
本文書の実施形態が適用されるコンテンツストリーミングシステムは、大別して、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0401】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。
【0402】
前記ビットストリームは、本文書の実施形態が適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0403】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間命令/応答を制御する役割をする。
【0404】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
【0405】
前記ユーザ装置の例として、携帯電話、スマートフォン(smartphone)、ノートブックコンピュータ(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、デスクトップコンピュータ、デジタルサイニジなどがある。前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは分散処理されることができる。
【0406】
本明細書に記載された請求項は様々な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として実現されることもでき、本明細書の装置請求項の技術的特徴が組み合わせられて方法として実現されることもできる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置として実現されることもでき、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法として実現されることもできる。