(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023129664
(43)【公開日】2023-09-14
(54)【発明の名称】残差コーディングに関する画像デコード方法およびその装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20230907BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023122433
(22)【出願日】2023-07-27
(62)【分割の表示】P 2022547999の分割
【原出願日】2021-02-05
(31)【優先権主張番号】62/970,698
(32)【優先日】2020-02-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】チェ チョンア
(72)【発明者】
【氏名】ユ ソンミ
(72)【発明者】
【氏名】ホ チン
(72)【発明者】
【氏名】チェ チャンウォン
(72)【発明者】
【氏名】キム スンファン
(57)【要約】
【課題】デコード装置が実行する画像デコード方法の提供。
【解決手段】方法は、現ブロックに対する予測関連情報を取得するステップと、従属量子化が使用可能であるかどうかに関する従属量子化使用可能フラグを取得するステップと、上記従属量子化使用可能フラグに基づいて、変換スキップ残差コーディングが使用可能であるかどうかに関するTSRC使用可能フラグを取得するステップと、上記TSRC使用可能フラグに基づいて導出された上記現ブロックに対する残差コーディングのシンタックスの残差情報を取得するステップと、上記予測関連情報に基づいて上記現ブロックの動き情報を導出するステップと、上記動き情報に基づいて上記現ブロックの予測サンプルを導出するステップと、上記残差情報に基づいて上記現ブロックの残差サンプルを導出するステップと、上記予測サンプルおよび上記残差サンプルに基づいて復元ピクチャを生成するステップと、を有する。
【選択図】
図13
【特許請求の範囲】
【請求項1】
デコード装置によって実行される画像デコード方法であって、
現ブロックに対する予測関連情報を取得するステップと、
従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグを取得するステップと、
前記従属量子化使用可能フラグに基づいて、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグを取得するステップと、
前記TSRC使用可能フラグに基づいて導出された前記現ブロックに対する残差コーディングのシンタックスの残差情報を取得するステップと、
前記予測関連情報に基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックの予測サンプルを導出するステップと、
前記残差情報に基づいて前記現ブロックの残差サンプルを導出するステップと、
前記予測サンプルおよび前記残差サンプルに基づいて復元ピクチャを生成するステップと、を有し、
前記TSRC使用可能フラグは、値が0である前記従属量子化使用可能フラグに基づいて取得される、画像デコード方法。
【請求項2】
値が1である前記従属量子化使用可能フラグは、前記従属量子化が使用可能であることを表し、
値が0である前記従属量子化使用可能フラグは、前記従属量子化が使用可能ではないことを表す、請求項1に記載の画像デコード方法。
【請求項3】
前記残差サンプルを導出するステップは、
前記現ブロックに対して前記従属量子化が適用される場合、現変換係数以前の変換係数の係数レベルに基づいて前記従属量子化に対する状態(Qstate)をアップデートするステップと、
前記アップデートされた状態および前記残差情報のうち前記現変換係数に関するシンタックスエレメントに基づいて、前記現変換係数の係数レベルを導出するステップと、
前記導出された係数レベルを逆量子化して前記残差サンプルを導出するステップと、を有する、請求項2に記載の画像デコード方法。
【請求項4】
値が1である前記TSRC使用可能フラグは、前記TSRCが使用可能ではないことを表し、値が0である前記TSRC使用可能フラグは、前記TSRCが使用可能であることを表す、請求項1に記載の画像デコード方法。
【請求項5】
前記従属量子化使用可能フラグの値が1である場合、前記TSRC使用可能フラグが取得されず、前記TSRC使用可能フラグの値は0として導出される、請求項1に記載の画像デコード方法。
【請求項6】
前記現ブロックに対して前記従属量子化が使用可能ではない場合、前記TSRC使用可能フラグが取得される、請求項1に記載の画像デコード方法。
【請求項7】
値が1である前記TSRC使用可能フラグに基づいて、前記現ブロックに対する前記残差コーディングのシンタックスは、レギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスとして決定される、請求項4に記載の画像デコード方法。
【請求項8】
前記現ブロックが変換スキップブロックであり、前記TSRC使用可能フラグの値が0である場合、前記現ブロックに対する前記残差コーディングのシンタックスは、TSRCシンタックスとして決定される、請求項7に記載の画像デコード方法。
【請求項9】
前記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグが取得され、
前記変換スキップフラグの値は1である、請求項8に記載の画像デコード方法。
【請求項10】
前記TSRCシンタックスは、変換係数に対してコンテキストコーディングされたシンタックスエレメントを有し、
前記コンテキストコーディングされたシンタックスエレメントは、前記変換係数がノンゼロ(non-zero)変換係数であるかどうかを表す有効係数フラグ、前記変換係数に対する係数レベルのパリティ(parity)に関するパリティレベルフラグ、前記変換係数に対する符号(sign)を表すサインフラグ、前記係数レベルが第1閾値よりも大きいかどうかに関する第1係数レベルフラグ、および前記変換係数の前記係数レベルが第2閾値よりも大きいかどうかに関する第2係数レベルフラグを有する、請求項8に記載の画像デコード方法。
【請求項11】
エンコード装置により実行される画像エンコード方法であって、
インター予測に基づいて現ブロックの予測サンプルを導出するステップと、
前記現ブロックに対する予測関連情報をエンコードするステップと、
従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードするステップと、
前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグをエンコードするステップと、
前記TSRC使用可能フラグに基づいて前記現ブロックに対する残差コーディングのシンタックスを決定するステップと、
前記現ブロックに対する前記決定された残差コーディングのシンタックスの残差情報をエンコードするステップと、
前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC使用可能フラグ、および前記残差情報を有するビットストリームを生成するステップと、を有し、
前記TSRC使用可能フラグは、値が0である前記従属量子化使用可能フラグに基づいてエンコードされる、画像エンコード方法。
【請求項12】
値が1である前記従属量子化使用可能フラグは、前記従属量子化が使用可能であることを表し、
値が0である前記従属量子化使用可能フラグは、前記従属量子化が使用可能ではないことを表す、請求項11に記載の画像エンコード方法。
【請求項13】
前記現ブロックに対して前記従属量子化が使用可能ではない場合、前記TSRC使用可能フラグがエンコードされる、請求項11に記載の画像エンコード方法。
【請求項14】
前記従属量子化使用可能フラグの値が1である場合、前記TSRC使用可能フラグがエンコードされない、請求項11に記載の画像エンコード方法。
【請求項15】
画像情報のビットストリームを有するデータに関する送信方法であって、
残差情報を有する前記画像情報の前記ビットストリームを取得するステップであって、前記ビットストリームは、
インター予測に基づいて現ブロックの予測サンプルを導出するステップと、
前記現ブロックに対する予測関連情報をエンコードするステップと、
従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードするステップと、
前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグをエンコードするステップと、
前記TSRC使用可能フラグに基づいて前記現ブロックに対する残差コーディングのシンタックスを決定するステップと、
前記現ブロックに対する前記決定された残差コーディングのシンタックスの前記残差情報をエンコードするステップと、
前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC使用可能フラグ、および前記残差情報を有する前記ビットストリームを生成するステップと、によって生成されるステップと、
前記残差情報を有する前記画像情報の前記ビットストリームを有する前記データを送信するステップと、を有し、
前記TSRC使用可能フラグは、値が0である前記従属量子化使用可能フラグに基づいてエンコードされる、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、画像コーディング技術に関し、より詳細には、画像コーディングシステムにおける現(現在)ブロックの残差(レジデュアル)データをコーディングするにあたって、TSRCが使用可能であるかどうか(の可用有無)(whether TSRC is enabled)を示すフラグ情報をコーディングする画像デコード方法およびその装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)画像およびUHD(Ultra High Definition)画像のような高解像度、高品質の画像に対する需要が様々な分野で増加している。画像データが高解像度、高品質になるほど、既存の画像データに比べて相対的に送信される情報量もしくはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して画像データを送信し、または既存の記録媒体を利用して画像データを記憶(格納)する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
それによって、高解像度、高品質画像の情報を効果的に送信または記憶し、再生するために、高効率の画像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本文書の技術的課題は、画像コーディング効率を上げる方法および装置を提供することにある。
【0005】
本文書の他の技術的課題は、残差コーディングの効率を上げる方法および装置を提供することにある。
【課題を解決するための手段】
【0006】
本文書の一実施形態によると、デコード装置により実行される画像デコード方法が提供される。前記方法は、現ブロックに対する予測関連情報を取得するステップと、従属量子化(dependent quantization)が使用可能(可用)である(enabled)かどうかに関する従属量子化使用可能(イネーブル、可用、enabled)フラグを取得するステップと、前記従属量子化使用可能フラグに基づいて、変換スキップ残差コーディング(符号化、coding)(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグを取得するステップと、前記TSRC使用可能フラグに基づいて導出された前記現ブロックに対する残差コーディングのシンタックスの残差情報を取得するステップと、前記予測関連情報に基づいて前記現ブロックの動き情報を導出するステップと、前記動き情報に基づいて前記現ブロックの予測サンプルを導出するステップと、前記残差情報に基づいて前記現ブロックの残差サンプルを導出するステップと、前記予測サンプルおよび前記残差サンプルに基づいて復元ピクチャを生成するステップと、を有することを特徴とする。
【0007】
本文書の別の一実施形態によると、画像デコードを実行するデコード装置が提供される。前記デコード装置は、現ブロックに対する予測関連情報を取得し、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグを取得し、前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグを取得し、前記TSRC使用可能フラグに基づいて導出された前記現ブロックに対する残差コーディングのシンタックスの残差情報を取得するエントロピ復号(デコード)部と、前記予測関連情報に基づいて前記現ブロックの動き報を導出し、前記動き情報に基づいて前記現ブロックの予測サンプルを導出する予測部と、前記残差情報に基づいて前記現ブロックの残差サンプルを導出する残差処理部と、前記予測サンプルおよび前記残差サンプルに基づいて復元ピクチャを生成する加算部と、を有することを特徴とする。
【0008】
本文書のさらに他の一実施形態によると、エンコード装置により実行されるビデオエンコード方法を提供する。前記方法は、インター予測に基づいて現ブロックの予測サンプルを導出するステップと、前記現ブロックに対する予測関連情報をエンコードする(符号化する、encode)ステップと、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードするステップと、前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグをエンコードするステップと、前記TSRC使用可能フラグに基づいて前記現ブロックに対する残差コーディングのシンタックスを決定するステップと、前記現ブロックに対する前記決定された残差コーディングのシンタックスの残差情報をエンコードするステップと、前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC使用可能フラグ、および前記残差情報を有するビットストリームを生成するステップと、を有することを特徴とする。
【0009】
本文書のさらに他の一実施形態によると、ビデオエンコード装置を提供する。前記エンコード装置は、インター予測に基づいて現ブロックの予測サンプルを導出する予測部と、前記現ブロックに対する予測関連情報をエンコードし、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードし、前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグをエンコードし、前記TSRC使用可能フラグに基づいて前記現ブロックに対する残差コーディングのシンタックスを決定し、前記現ブロックに対する前記決定された残差コーディングのシンタックスの残差情報をエンコードし、前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC使用可能フラグ、および前記残差情報を有するビットストリームを生成するエントロピ符号化(エンコード)部と、を有することを特徴とする。
【0010】
本文書のさらに他の一実施形態によると、画像デコード方法を行うように引き起こす画像情報を有するビットストリームが記憶されたコンピュータ読み取り可能デジタル記憶媒体を提供する。コンピュータ読み取り可能デジタル記憶媒体であって、前記画像デコード方法は、現ブロックに対する予測関連情報を取得するステップと、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグを取得するステップと、前記従属量子化使用可能フラグに基づいて変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグを取得するステップと、前記TSRC使用可能フラグに基づいて導出された前記現ブロックに対する残差コーディングのシンタックスの残差情報を取得するステップと、前記予測関連情報に基づいて前記現ブロックの動き情報を導出するステップと、前記動き情報に基づいて前記現ブロックの予測サンプルを導出するステップと、前記残差情報に基づいて前記現ブロックの残差サンプルを導出するステップと、前記予測サンプルおよび前記残差サンプルに基づいて復元ピクチャを生成するステップと、を有することを特徴とする。
【発明の効果】
【0011】
本文書によると、インター予測および/または残差コーディングに基づいて実行される画像コーディングの効率を向上させることができる。
【0012】
本文書によると、残差コーディングの効率を上げることができる。
【0013】
本文書によると、従属量子化使用可能フラグとTSRC使用可能フラグとの間のシグナリング関係を設定して、従属量子化が使用可能ではない場合にTSRC使用可能フラグをシグナリングすることができ、これを通じてTSRCが使用可能ではなく、変換スキップブロックに対してRRCシンタックスがコーディングされる場合に従属量子化が使用されないようにしてコーディング効率を向上させ、コーディングされるビット量を減らして、全般的な残差コーディング効率を向上させることができる。
【0014】
本文書によると、TSRC使用可能フラグは、従属量子化が使用されない場合にのみシグナリングされることができ、これを通じて変換スキップブロックに対してRRCシンタックスがコーディングされることと従属量子化が使用されることとが重複して実行されないようにし、TSRC使用可能フラグがより効果(効率)良くコーディングされるようにしてビット量を減らして、全般的な残差コーディング効率を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す図である。
【
図2】本文書の実施形態が適用され得るビデオ/画像エンコード装置の構成を概略的に説明する図である。
【
図3】本文書の実施形態が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
【
図4】インター予測ベース(基盤)のビデオ/画像エンコード方法の例を示す図である。
【
図5】インター予測ベースのビデオ/画像デコード方法の例を示す図である。
【
図7】シンタックスエレメント(syntax element)をエンコードするためのCABAC(Context-Adaptive Binary Arithmetic Coding)を例示的に示す図である。
【
図8】4×4ブロック内の変換係数などの例示を図示する図である。
【
図9】従属量子化で使用されるスカラ量子化器を例示的に示す図である。
【
図10】従属量子化のための状態切り替え(state transition)および量子化器の選択を例示的に示す図である。
【
図11】本文書に係るエンコード装置による画像エンコード方法を概略的に示す図である。
【
図12】本文書に係る画像エンコード方法を行うエンコード装置を概略的に示す図である。
【
図13】本文書に係るデコード装置による画像デコード方法を概略的に示す図である。
【
図14】本文書に係る画像デコード方法を行うデコード装置を概略的に示す図である。
【
図15】本文書の実施形態が適用されるコンテンツストリーミングシステム構造図を例示的に示す図である。
【発明を実施するための形態】
【0016】
本文書は、様々な変更を加えることができ、種々の実施形態を有することができ、特定の実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定の実施形態に限定しようとするものではない。本明細書において常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つもしくは複数の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【0017】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立して図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されることを意味するものではない。例えば、各構成のうち、2つ以上の構成が結合されて1つの構成をなすことができ、1つの構成を複数の構成に分けることもできる。各構成が統合および/または分離された実施形態も本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0018】
以下、添付した図面を参照して、本文書の好ましい実施形態をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重なった説明は省略されることができる。
【0019】
図1は、本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す。
【0020】
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)および第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル記録媒体またはネットワークを介して受信デバイスに伝達することができる。
【0021】
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを備えることができる。上記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信器は、エンコード装置に含まれることができる。受信器は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0022】
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程(処理、プロセス、process)などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイスおよび/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、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つのルマブロックおよび2つのクロマ(例えば、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】
本明細書において「AおよびBの(うちの)少なくとも1つ(少なくとも1つのAおよびB)(at least one of A and B)」は、「Aのみ」、「Bのみ」または「AおよびBの両方」を意味し得る。また、本明細書において「AまたはBの少なくとも1つ(at least one of A or B)」や「Aおよび/またはBの少なくとも1つ(at least one of A and/or B)」という表現は、「AおよびBの少なくとも1つ(at least one of A and B)」と同様に解釈され得る。
【0035】
また、本明細書において「A、BおよびCの少なくとも1つ(at least one of A, B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」または「A、BおよびCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。また、「A、BまたはCの少なくとも1つ(at least one of A, B or C)」や「A、Bおよび/またはCの少なくとも1つ(at least one of A, B and/or C)」は、「A、BおよびCの少なくとも1つ(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)または復元ブロック生成部(reconstructed 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】
本文書において、量子化/逆量子化および/または変換/逆変換のうちの少なくとも1つは省略されることができる。上記量子化/逆量子化が省略される場合、上記量子化された変換係数は、変換係数と呼ばれることができる。上記変換/逆変換が省略される場合、上記変換係数は、係数もしくは残差係数と呼ばれることができ、または、表現の統一性のために、変換係数と依然として呼ばれることもできる。
【0071】
本文書において量子化された変換係数および変換係数は、各々変換係数およびスケーリングされた(scaled)変換係数と称されることができる。この場合、残差情報は、変換係数(1つまたは複数(等))に関する情報を含むことができ、上記変換係数(1つまたは複数)に関する情報は、残差コーディングシンタックスを介してシグナリングされることができる。上記残差情報(または、上記変換係数(1つまたは複数)に関する情報)に基づいて変換係数が導出され得るし、上記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出され得る。上記スケーリングされた変換係数に対する逆変換(変換)に基づいて残差サンプルが導出され得る。これは、本文書の他の部分でも同様に適用/表現されることができる。
【0072】
上述したように、ビデオコーディングを行うのにおいて、圧縮効率を上げるために予測を行う。これを介してコーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成できる。ここで、上記予測されたブロックは、空間領域(ドメイン)(または、ピクセル領域)における予測サンプルを含む。上記予測されたブロックは、エンコード装置とデコード装置とで同一に導出され、上記エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でない上記オリジナルブロックと上記予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることにより画像コーディング効率を上げることができる。デコード装置は、上記残差情報に基づいて残差サンプルを含む残差ブロックを導出し、上記残差ブロックと上記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成でき、復元ブロックを含む復元ピクチャを生成できる。
【0073】
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、上記オリジナルブロックと上記予測されたブロックとの間の残差ブロックを導出し、上記残差ブロックに含まれる残差サンプル(残差サンプルアレイ)に変換手順を行って変換係数を導出し、上記変換係数に量子化手順を行って量子化された変換係数を導出し、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、上記残差情報は、上記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、上記残差情報に基づいて逆量子化/逆変換手順を行い、残差サンプル(または、残差ブロック)を導出できる。デコード装置は、予測されたブロックと上記残差ブロックとに基づいて復元ピクチャを生成できる。エンコード装置は、さらに以後のピクチャのインター予測のための参照のために、量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成できる。
【0074】
インター予測が適用される場合、エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出できる。インター予測は、現ピクチャ以外のピクチャ(1つまたは複数)のデータ要素(例えば、サンプル値、または動き情報)に依存する方法で導出される予測を表すことができる(Inter prediction can be a prediction derived in a manner that is dependent on data elements(ex., sample values or motion information) of picture(s) other than the current picture)。現ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現ブロックとの間の動き情報の相関性に基づいて現ブロックの動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測が適用される場合、周辺ブロックは、現ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)とを備えることができる。上記参照ブロックを備える参照ピクチャと上記時間周辺ブロックを備える参照ピクチャとは、同一であることができ、異なることもできる。上記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができ、上記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated Picture、colPic)とも呼ばれることができる。例えば、現ブロックの周辺ブロックに基づいて動き情報候補リストが構成され得るし、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するために、いずれの候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされ得る。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードおよびマージモードの場合に、現ブロックの動き情報は、選択された周辺ブロックの動き情報と同様であることができる。スキップモードの場合、マージモードとは異なり、残差信号が送信されないことができる。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)は、シグナリングされることができる。この場合、上記動きベクトル予測子および動きベクトル差分の合計を利用して上記現ブロックの動きベクトルを導出できる。
【0075】
上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)によってL0動き情報および/またはL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれることができ、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれることができる。L0動きベクトルに基づいた予測は、L0予測と呼ばれることができ、L1動きベクトルに基づいた予測は、L1予測と呼ばれることができ、上記L0動きベクトルおよび上記L1動きベクトルの両方に基づいた予測は、対(Bi)予測と呼ばれることができる。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連付けられ(連関し)た動きベクトルを表すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連付けられた動きベクトルを表すことができる。参照ピクチャリスストL0は、上記現ピクチャより出力順序上、以前(前)のピクチャを参照ピクチャとして備えることができ、参照ピクチャリストL1は、上記現ピクチャより出力順序上、以後(後)のピクチャを備えることができる。上記以前のピクチャは、順方向(参照)ピクチャと呼ばれることができ、上記以後のピクチャは、逆方向(参照)ピクチャと呼ばれることができる。上記参照ピクチャリストL0は、上記現ピクチャより出力順序上、以後のピクチャを参照ピクチャとしてさらに備えることができる。この場合、上記参照ピクチャリストL0内で上記以前のピクチャが先にインデキシングされ、上記以後のピクチャは、その次にインデキシングされることができる。上記参照ピクチャリストL1は、上記現ピクチャより出力順序上、以前のピクチャを参照ピクチャとしてさらに備えることができる。この場合、上記参照ピクチャリスト1(L1)内で上記以後のピクチャが先にインデキシングされ、上記以前のピクチャは、その次にインデキシングされることができる。ここで、出力順序は、POC(Picture Order Count)順序(order)に対応することができる。
【0076】
インター予測に基づいたビデオ/画像エンコード手順は、概略的に例えば、次を含むことができる。
【0077】
図4は、インター予測ベースのビデオ/画像エンコード方法の例を示す。
【0078】
エンコード装置は、現ブロックに対するインター予測を行う(S400)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、上記現ブロックの予測サンプルを生成できる。ここで、インター予測モード決定、動き情報導出、および予測サンプル生成手順は、同時に行われることができ、いずれか1つの手順が他の手順より先に行われることもできる。例えば、エンコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を備えることができ、予測モード決定部で上記現ブロックに対する予測モードを決定し、動き情報導出部で上記現ブロックの動き情報を導出し、予測サンプル導出部で上記現ブロックの予測サンプルを導出できる。例えば、エンコード装置のインター予測部は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチ領域)内で上記現ブロックと類似したブロックをサーチし、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出できる。これに基づいて上記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、上記参照ブロックと上記現ブロックとの位置差に基づいて動きベクトルを導出できる。エンコード装置は、様々な予測モードのうち、上記現ブロックに対して適用されるモードを決定できる。エンコード装置は、上記様々な予測モードに対するRD costを比較し、上記現ブロックに対する最適な予測モードを決定できる。
【0079】
例えば、エンコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補が指す参照ブロックのうち、上記現ブロックと、上記現ブロックとの差が最小または一定基準以下である参照ブロックと、を導出できる。この場合、上記導出された参照ブロックと関連付けられたマージ候補が選択され、上記選択されたマージ候補を指すマージインデックス情報が生成されてデコード装置にシグナリングされることができる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報を導出できる。
【0080】
他の例として、エンコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうち、選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして用いることができる。この場合、例えば、上述した動き推定によって導出された参照ブロックを指す動きベクトルが上記現ブロックの動きベクトルとして用いられることができ、上記mvp候補のうち、上記現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が上記選択されたmvp候補になり得る。上記現ブロックの動きベクトルから上記mvpを差し引いた差分であるMVD(Motion Vector Difference)が導出され得る。この場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、上記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて、別に上記デコード装置にシグナリングされることができる。
【0081】
エンコード装置は、上記予測サンプルに基づいて残差サンプルを導出できる(S410)。エンコード装置は、上記現ブロックのオリジナルサンプルと上記予測サンプルとの比較を介して上記残差サンプルを導出できる。
【0082】
エンコード装置は、予測情報および残差情報を含む画像情報をエンコードする(S420)。エンコード装置は、エンコードされた画像情報をビットストリーム形態で出力することができる。上記予測情報は、上記予測手順に関連する情報として予測モード情報(例えば、skip flag、merge flag or mode indexなど)および動き情報に関する情報を含むことができる。上記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag or mvp index)を含むことができる。また、上記動き情報に関する情報は、上述したMVDに関する情報および/または参照ピクチャインデックス情報を含むことができる。また、上記動き情報に関する情報は、L0予測、L1予測、または、対(bi)予測が適用されるか否かを表す情報を含むことができる。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含むことができる。
【0083】
出力されたビットストリームは、(デジタル)記録媒体に記憶されてデコード装置に伝達されることができ、または、ネットワークを介してデコード装置に伝達されることもできる。
【0084】
一方、上述したように、エンコード装置は、上記参照サンプルおよび上記残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成できる。これは、デコード装置で行われることと同じ予測結果をエンコード装置で導出するためであり、これを介してコーディング効率を上げることができるためである。したがって、エンコード装置は、復元ピクチャ(または、復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用することができる。上記復元ピクチャにインループフィルタリング手順などがさらに適用され得ることは、上述した通りである。
【0085】
インター予測に基づいたビデオ/画像デコード手順は、概略的に例えば、次を含むことができる。
【0086】
図5は、インター予測ベースのビデオ/画像デコード方法の例を示す。
【0087】
図5に示すように、デコード装置は、上記エンコード装置で行われた動作と対応する動作を行うことができる。デコード装置は、受信した予測情報に基づいて現ブロックに対する予測を行い、予測サンプルを導出できる。
【0088】
具体的には、デコード装置は、受信した予測情報に基づいて上記現ブロックに対する予測モードを決定できる(S500)。デコード装置は、上記予測情報内の予測モード情報に基づいて上記現ブロックにいずれのインター予測モードが適用されるかを決定することができる。
【0089】
例えば、上記merge flagに基づいて上記現ブロックに上記マージモードが適用されるか、または(A)MVPモードが決定されるかどうかを決定できる。あるいは、上記mode indexに基づいて様々なインター予測モード候補のうちの1つを選択できる。上記インター予測モード候補は、スキップモード、マージモード、および/もしくは(A)MVPモードを含むことができ、または、後述する様々なインター予測モードを含むことができる。
【0090】
デコード装置は、上記決定されたインター予測モードに基づいて上記現ブロックの動き情報を導出する(S510)。例えば、デコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補のうちの1つのマージ候補を選択できる。上記選択は、上述した選択情報(merge index)に基づいて行われることができる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報を導出できる。上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として利用されることができる。
【0091】
他の例として、デコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうち、選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして用いることができる。上記選択は、上述した選択情報(mvp flag or mvp index)に基づいて行われることができる。この場合、上記MVDに関する情報に基づいて上記現ブロックのMVDを導出でき、上記現ブロックのmvpおよび上記MVDに基づいて上記現ブロックの動きベクトルを導出できる。また、上記参照ピクチャインデックス情報に基づいて上記現ブロックの参照ピクチャインデックスを導出できる。上記現ブロックに関する参照ピクチャリスト内で上記参照ピクチャインデックスが指すピクチャが上記現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0092】
一方、後述するように、候補リスト構成なしで上記現ブロックの動き情報が導出され得るし、この場合、後述する予測モードで開示された手順によって上記現ブロックの動き情報が導出され得る。この場合、上述したような候補リスト構成は省略されることができる。
【0093】
デコード装置は、上記現ブロックの動き情報に基づいて上記現ブロックに対する予測サンプルを生成できる(S520)。この場合、上記現ブロックの参照ピクチャインデックスに基づいて上記参照ピクチャを導出し、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルを用いて上記現ブロックの予測サンプルを導出できる。この場合、後述するように、場合によって、上記現ブロックの予測サンプルのうち、全部または一部に対する予測サンプルフィルタリング手順がさらに行われることができる。
【0094】
例えば、デコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を備えることができ、予測モード決定部で受信された予測モード情報に基づいて上記現ブロックに対する予測モードを決定し、動き情報導出部で受信された動き情報に関する情報に基づいて上記現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部で上記現ブロックの予測サンプルを導出できる。
【0095】
デコード装置は、受信した残差情報に基づいて上記現ブロックに対する残差サンプルを生成する(S530)。デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて上記現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成できる。(S540)。その後、上記復元ピクチャにインループフィルタリング手順などがさらに適用され得ることは、上述した通りである。
【0096】
【0097】
図6を参照すれば、上述したように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードによる動き情報導出ステップ、導出された動き情報に基づいた予測実行(予測サンプル生成)ステップを含むことができる。上記インター予測手順は、上述したように、エンコード装置およびデコード装置で行われることができる。本文書においてコーディング装置とは、エンコード装置および/またはデコード装置を含むことができる。
【0098】
図6に示すように、コーディング装置は、現ブロックに対するインター予測モードを決定する(S600)。ピクチャ内の現ブロックの予測のために、様々なインター予測モードが使用され得る。例えば、マージモード、スキップモード、MVP(Motion Vector Prediction)モード、アフィン(Affine)モード、サブブロックマージモード、MMVD(Merge with MVD)モードなど、様々なモードが使用され得る。DMVR(Decoder side Motion Vector Refinement)モード、AMVR(Adaptive Motion Vector Resolution)モード、Bi-prediction with CU-level Weight (BCW)、Bi-Directional Optical Flow (BDOF)などが付随的なモードとしてさらにまたは代わりに使用されることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれることもできる。MVPモードは、AMVP(Advanced Motion Vector Prediction)モードと呼ばれることもできる。本文書において一部のモードおよび/または一部のモードによって導出された動き情報候補は、他のモードの動き情報関連候補のうちの1つとして含まれることもできる。例えば、HMVP候補は、上記マージ/スキップモードのマージ候補として追加されることができ、または、上記MVPモードのmvp候補として追加されることもできる。上記HMVP候補が上記マージモードまたはスキップモードの動き情報候補として使用される場合、上記HMVP候補は、HMVPマージ候補と呼ばれることができる。
【0099】
現ブロックのインター予測モードを指す予測モード情報が、エンコード装置からデコード装置にシグナリングされることができる。上記予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。上記予測モード情報は、複数の候補モードのうちの1つを指示するインデックス情報を含むことができる。あるいは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、上記予測モード情報は、1つまたは複数のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモード適用が可能か否かを指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモード適用が可能か否かを指示し、マージモードが適用されない場合に、MVPモードが適用されることを指示するか、追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされることができ、または、マージモードもしくはMVPモードなどに従属したモードでシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含むことができる。
【0100】
コーディング装置は、上記現ブロックに対する動き情報を導出する(S610)。上記動き情報導出を上記インター予測モードに基づいて導出することができる。
【0101】
コーディング装置は、現ブロックの動き情報を利用してインター予測を行うことができる。エンコード装置は、動き推定(motion estimation)手順を介して現ブロックに対する最適な動き情報を導出できる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを用いて相関性の高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内で分数(端数、fractional)ピクセル単位で探索することができ、これを介して動き情報を導出できる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または、現ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSADに基づいて計算されることができる。この場合、サーチスペース(探索領域)内のSADが最も小さい参照ブロックに基づいて動き情報を導出できる。導出された動き情報は、インター予測モードに基づいて種々の方法によってデコード装置にシグナリングされることができる。
【0102】
コーディング装置は、上記現ブロックに対する動き情報に基づいてインター予測を行う(S620)。コーディング装置は、上記動き情報に基づいて上記現ブロックに対する予測サンプル(1つまたは複数)を導出できる。上記予測サンプルを含む現ブロックは、予測されたブロックと呼ばれることができる。
【0103】
一方、前述した内容のように、エンコード装置は、例えば、指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの多様なエンコード方法を実行することができる。また、デコード装置は、指数ゴロム符号化、CAVLCまたはCABACなどのコード方法に基づいてビットストリーム内の情報をデコードし(復号し、decode)、画像復元に必要なシンタックスエレメントの値、残差に関する変換係数の量子化された値などを出力することができる。
【0104】
例えば、上述したコーディング方法などは、後述する内容のように行われることができる。
【0105】
図7は、シンタックスエレメント(syntax element)をエンコードするためのCABAC(Context-Adaptive Binary Arithmetic Coding)を例示的に示す。例えば、CABACの符号化過程において、エンコード装置は、入力信号が二進値でないシンタックスエレメントである場合には、上記入力信号の値を二進化(binarization)して、入力信号を二進値に変換することができる。また、上記入力信号が既に二進値である場合(すなわち、上記入力信号の値が二進値である場合)には、二進化が行われず、バイパス(bypass)されることができる。ここで、二進値を構成するそれぞれの二進数0または1をビン(bin)ということができる。例えば、二進化された後の二進ストリングが110である場合、1、1、0の各々を1つのビンという。1つのシンタックスエレメントに対する上記ビン(1つまたは複数)は、上記シンタックスエレメントの値を表すことができる。
【0106】
その後、上記シンタックスエレメントの二進化されたビンなどは、正規(regular)符号化エンジンまたはバイパス符号化エンジンとして入力されることができる。エンコード装置の正規符号化エンジンは、当該ビンに対して確率値を反映するコンテキストモデル(context model)を割り当てることができ、割り当てられたコンテキストモデルに基づいて当該ビンをエンコードすることができる。エンコード装置の上記正規符号化エンジンは、各ビンに対するエンコーディング(符号化、encoding)を行った後に、当該ビンに対するコンテキストモデルを更新できる。上述した内容のようにエンコードされるビンは、コンテキスト符号化ビン(context-coded bin)と表すことができる。
【0107】
一方、上記シンタックスエレメントの二進化されたビンなどが上記バイパス符号化エンジンに入力される場合には、次のようにコーディングされることができる。例えば、エンコード装置のバイパス符号化エンジンは、入力されたビンに対して確率を推定する手順と、符号化後に上記ビンに適用した確率モデルを更新する手順と、を省略する。バイパスエンコーディングが適用される場合、エンコード装置は、コンテキストモデルを割り当てる代わりに、均一な確率分布を適用して、入力されるビンをエンコードすることができ、これを通じてエンコーディング速度を向上させることができる。上述した内容のようにエンコードされるビンは、バイパスビン(bypass bin)と表すことができる。
【0108】
エントロピ復号(デコーディング、decoding)は、上述したエントロピ符号化と同じ過程を逆順に行う過程を表すことができる。
【0109】
例えば、シンタックスエレメントがコンテキストモデルに基づいてデコードされる場合、デコード装置は、ビットストリームを介して上記シンタックスエレメントに該当するビンを受信でき、上記シンタックスエレメントならびにデコーディング対象ブロックもしくは周辺ブロックのデコーディング情報または以前のステップでデコードされたシンボル/ビンの情報を利用してコンテキストモデル(context model)を決定でき、決定されたコンテキストモデルによって上記受信したビン(bin)の発生確率を予測し、ビンの算術復号(arithmetic decoding)を行って上記シンタックスエレメントの値を導出できる。その後、上記決定されたコンテキストモデルに次にデコードされるビンのコンテキストモデルがアップデートされ得る。
【0110】
また、例えば、シンタックスエレメントがバイパスデコードされる場合、デコード装置は、ビットストリームを介して上記シンタックスエレメントに該当するビンを受信でき、均一な確率分布を適用して、入力されるビンをデコードすることができる。この場合、デコード装置は、シンタックスエレメントのコンテキストモデルを導出する手順と、デコーディング以後に上記ビンに適用したコンテキストモデルを更新する手順と、は省略されることができる。
【0111】
上述したように、残差サンプルなどは、変換、量子化過程を経て量子化された変換係数などとして導出されることができる。量子化された変換係数などは、変換係数などとも呼ばれることができる。この場合、ブロック内の変換係数などは、残差情報の形態でシグナリングされることができる。上記残差情報は、残差コーディングシンタックスを含むことができる。すなわち、エンコード装置は、残差情報として残差コーディングシンタックスを構成し、これをエンコードしてビットストリーム形態で出力することができ、デコード装置は、ビットストリームから残差コーディングシンタックスをデコードして残差(量子化された)変換係数などを導出できる。上記残差コーディングシンタックスは、後述するように、当該ブロックに対して変換が適用されたか、ブロック内の最後の有効変換係数の位置がどこであるか、サブブロック内の有効変換係数が存在するか、有効変換係数の大きさ/符号がどうであるかなどを表すシンタックスエレメントなど(syntax elements)を含むことができる。
【0112】
例えば、残差データのエンコード/デコードに関するシンタックスエレメントは、次の表のように表すことができる。
【0113】
【0114】
【0115】
【0116】
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と混用され得ることは、上述の通りである。
【0117】
一方、上記変換スキップフラグがシグナリングされた後にシグナリングされるシンタックスエレメントは、後述する表2および/または表3に開示のシンタックスエレメントと同じであり、上記シンタックスエレメントに関する具体的な説明は後述の通りである。
【0118】
【0119】
【0120】
【0121】
【0122】
【0123】
【0124】
【0125】
【0126】
【0127】
本実施形態によると、表1に示すように、変換スキップフラグのシンタックスエレメントtransform_skip_flagの値によって、残差コーディングが分岐され得る。すなわち、変換スキップフラグの値に基づいて(変換スキップが使用可能かどうかに基づいて)、残差コーディングのために異なるシンタックスエレメントが用いられ得る。変換スキップが適用されない場合(すなわち、変換が適用された場合)に用いられる残差コーディングは、レギュラ残差コーディング(Regular Residual Coding、RRC)と呼ばれ得、変換スキップが適用される場合(すなわち、変換が適用されない場合)の残差コーディングは、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)と呼ばれ得る。また、上記レギュラ残差コーディングは、一般的な残差コーディング(general residual coding)とも呼ばれ得る。また、上記レギュラ残差コーディングは、一般的な残差コーディング(general residual coding)とも呼ばれ得る。また、上記レギュラ残差コーディングは、レギュラ残差コーディングのシンタックス構造と呼ばれ得、上記変換スキップ残差コーディングは、変換スキップ残差コーディングのシンタックス構造と呼ばれ得る。上記表2は、transform_skip_flagの値が0である場合、すなわち、変換が適用された場合の残差コーディングのシンタックスエレメントを表し得、表3は、transform_skip_flagの値が1である場合、すなわち、変換が適用されない場合の残差コーディングのシンタックスエレメントを表し得る。
【0128】
具体的には、例えば、変換ブロックの変換スキップが使用可能かどうかを指示する変換スキップフラグがパージングされ得、上記変換スキップフラグが1であるかどうかが判断されることができる。上記変換スキップフラグの値が0である場合、表2に示すように、変換ブロックの残差係数に関するシンタックスエレメントlast_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、coeff_sign_flagおよび/またはdec_abs_levelがパージングされ得、上記シンタックスエレメントに基づいて上記残差係数が導出され得る。この場合、上記シンタックスエレメントは順次パージングされてもよく、パージングの順序が変更されてもよい。また、上記abs_level_gtx_flagは、abs_level_gt1_flagおよび/またはabs_level_gt3_flagを表し得る。例えば、abs_level_gtx_flag[n][0]は、第1変換係数レベルフラグ(abs_level_gt1_flag)の一例であり得、上記abs_level_gtx_flag[n][1]は、第2変換係数レベルフラグ(abs_level_gt3_flag)の一例であり得る。
【0129】
前述の表2を参照すると、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag、および/またはdec_abs_levelがエンコード/デコードされ得る。一方、上記sb_coded_flagは、coded_sub_block_flagとも表し得る。
【0130】
一実施形態においてエンコード装置は、シンタックスエレメント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)にイントラ/インター予測が適用されるか否かおよび/または具体的なイントラ/インター予測モードに基づいて決定されることができる。
【0131】
次に、エンコード装置は、上記変換ブロックを4×4サブブロック(sub-block)などに分割した後、各4×4サブブロックごとに1ビットのシンタックス要素coded_sub_block_flagを使用して、現サブブロック内に0でない係数が存在するか否かを表すことができる。
【0132】
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であると仮定されることができる。
【0133】
coded_sub_block_flagの値が1であって、現サブブロック内に0でない係数が存在すると判断される場合、エンコード装置は、逆スキャン順序(逆にスキャンされた順序、reverse scanning order)に従って二進値を有する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でない有効係数であるか否かを表す有効係数フラグのシンタックスエレメントの一例に該当することができる。
【0134】
sig_coeff_flagに対する符号化以後の残りのレベル値は、下記の数式のように導出されることができる。すなわち、符号化すべきレベル値を表すシンタックス要素remAbsLevelは、下記の数式のように導出されることができる。
【0135】
【0136】
ここで、coeffは、実際の変換係数値を意味する。
【0137】
また、abs_level_gt1_flagは、当該スキャン位置(n)におけるremAbsLevelが1よりも大きいかどうかを表し得る。例えば、abs_level_gt1_flagの値が0であれば、当該位置の変換係数の絶対値(absolute value)は1であり得る。また、上記abs_level_gt1_flagの値が1であれば、以降符号化すべきレベル値を表す上記remAbsLevelは、下記の数式のようにアップデートされることができる。
【0138】
【0139】
また、前述の数式2に記載されたremAbsLevelのleast significant coefficient(LSB)値は、par_level_flagを介して、下記の数式3のようにエンコードされ得る。
【0140】
【0141】
ここで、par_level_flag[n]は、スキャン位置nにおける変換係数レベル(値)のパリティ(parity)を表し得る。
【0142】
par_leve_flagのエンコード後にエンコードすべき変換係数のレベル値remAbsLevelは、次の数式のようにアップデートされることができる。
【0143】
【0144】
abs_level_gt3_flagは、当該スキャン位置(n)におけるremAbsLevelが3よりも大きいかどうかを表し得る。abs_level_gt3_flagが1である場合にのみabs_remainderに対するエンコードが実行できる。実際の変換係数値であるcoeffと各シンタックス要素との関係は、次の数式の通りである。
【0145】
【0146】
また、次の表は、前述の数式5と関連する例を示す。
【0147】
【0148】
ここで、|coeff|は、変換係数のレベル(値)を表し、変換係数に対するAbsLevelと表示されることもある。また、各係数の符号は、1ビットシンボルであるcoeff_sign_flagを用いてエンコードされることができる。
【0149】
また、例えば、上記変換スキップフラグの値が1である場合、表3に示すように、変換ブロックの残差係数に関するシンタックスエレメントsb_coded_flag、sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag、par_level_flagおよび/またはabs_remainderがパージングされ得、上記シンタックスエレメントに基づいて上記残差係数が導出され得る。この場合、上記シンタックスエレメントは、順次パージングされてもよく、パージングの順序が変更されてもよい。また、上記abs_level_gtx_flagは、abs_level_gt1_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flagおよび/またはabs_level_gt9_flagを表し得る。例えば、abs_level_gtx_flag[n][j]は、スキャン位置nで、変換係数の絶対値またはレベル(値)が(j<<1)+1よりも大きいかどうかを表すフラグであり得る。上記(j<<1)+1は、場合によって、第1閾(臨界)値、第2閾値などの所定の閾値に代替されてもよい。
【0150】
一方、CABACは、高い性能を提供するが、スループット(throughput)性能が良くないという欠点を有する。これは、CABACの正規符号化エンジンによるものであって、正規符号化(すなわち、CABACの正規符号化エンジンを介したエンコード)は、以前のビン(bin)の符号化を介してアップデートされた確率状態および範囲を用いるため、高いデータ依存性を示し、確率区間を読んで現在の状態を判断するのに多くの時間がかかり得る。CABACのスループット問題は、コンテキスト符号化ビン(context-coded bin)の数を制限することによって解決できる。例えば、前述の表2のように、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagを表現するために用いられたビンの和が、当該ブロックのサイズによる個数に制限され得る。また、例えば、前述の表3のように、sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flagを表現するために用いられたビンの和が、当該ブロックのサイズによる個数に制限され得る。一例として、当該ブロックが4x4サイズのブロックである場合、上記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagまたはsig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flagに対するビンの和は32個(または、例えば28個)に制限され得、当該ブロックが2x2サイズのブロックである場合、上記sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagに対するビンの和は8個(または、例えば7個)に制限され得る。上記ビンの制限された個数は、remBinsPass1またはRemCcbsで表し得る。あるいは、一例として、より高いCABACのスループットのために、コンテキスト符号化ビン(context coded bin)の個数がコーディング対象のCGを含むブロック(CBまたはTB)に対して制限され得る。言い換えると、コンテキスト符号化ビンの個数がブロック(CBまたはTB)単位に制限され得る。例えば、現ブロックのサイズが16x16であれば、現在のCGと関係なく、現ブロックに対するコンテキスト符号化ビンの個数が上記現ブロックのピクセル個数の1.75倍、すなわち、448個に制限され得る。
【0151】
この場合、エンコード装置は、コンテキスト要素を符号化することに制限された個数のコンテキスト符号化ビンを全て用いた場合、残りの係数をコンテキストコーディングを用いることなく、後述する上記係数に対する二進化方法を通じて二進化し、バイパスコーディングを実行することができる。言い換えると、例えば、4x4のCGに対してコーディングされたコンテキスト符号化ビン(context coded bin)の数が32(または、例えば28)、または2x2のCGに対してコーディングされたコンテキスト符号化ビンの数が8(または、例えば7)になる場合は、これ以上コンテキスト符号化ビンでコーディングされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagは、コーディングされないことがあり、直ぐにdec_abs_levelでコーディングされ得る。あるいは、例えば、4x4ブロックに対してコーディングされたコンテキスト符号化ビン(context coded bin)の数がブロック全体のピクセル個数の1.75倍、すなわち、28に制限される場合、これ以上コンテキスト符号化ビンでコーディングされるsig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagはコーディングされないことがあり、後述する表5のようにすぐにdec_abs_levelでコーディングされ得る。
【0152】
【0153】
dec_abs_levelに基づいて|coeff|値が導出され得る。この場合、変換係数値である|coeff|は、次の数式のように導出され得る。
【0154】
【0155】
また、上記coeff_sign_flagは、当該スキャン位置(n)における変換係数レベルの符号(sign)を示す。すなわち、上記coeff_sign_flagは、当該スキャン位置(n)における変換係数の符号(sign)を示す。
【0156】
図8は、4×4ブロック内の変換係数の例を示す図である。
【0157】
図8の4×4ブロックは、量子化された係数の一例を示す。
図8に示されたブロックは、4×4変換ブロックであるか、または8×8、16×16、32×32、64×64変換ブロックの4×4サブブロックであり得る。
図8の4×4ブロックは、ルマブロックまたはクロマブロックを示す。
【0158】
一方、上述した内容のように、エンコード装置は、入力信号が二進値でないシンタックスエレメントである場合には、上記入力信号の値を二進化(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二進化プロセスに基づいて行われて、上記シンタックスエレメントの値を導出する過程を表すことができる。
【0159】
例えば、上記TR二進化プロセスは、次のように行われることができる。
【0160】
上記TR二進化プロセスの入力(input)は、TR二進化に対する要求(要請)とシンタックスエレメントに対するcMaxおよびcRiceParamとであることができる。また、上記TR二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するTR二進化であることができる。
【0161】
具体的には、一例として、シンタックスエレメントに対する接尾辞(suffix)ビンストリングが存在する場合には、上記シンタックスエレメントに対するTRビンストリングは、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(コンカチネーション、concatenation)であることができ、上記接尾辞ビンストリングが存在しない場合には、上記シンタックスエレメントに対する上記TRビンストリングは、上記接頭辞ビンストリングであることができる。例えば、上記接頭辞ビンストリングは、後述するように導出されることができる。
【0162】
上記シンタックスエレメントに対する上記symbolValの接頭辞値(prefix value)は、次の数式のように導出されることができる。
【0163】
【0164】
ここで、prefixValは、上記symbolValの接頭辞値を表すことができる。上記シンタックスエレメントの上記TRビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、後述するように導出されることができる。
【0165】
例えば、上記prefixValがcMax>>cRiceParamより小さい場合、接頭辞ビンストリングは、binIdxによりインデキシングされる(indexed)長さprefixVal+1のビットストリング(bit string)であることができる。すなわち、上記prefixValがcMax>>cRiceParamより小さい場合、上記接頭辞ビンストリングは、binIdxが指すprefixVal+1ビット数のビットストリングであることができる。prefixValより小さいbinIdxに対するビンは、1と同一であることができる。また、prefixValと同じbinIdxに対するビンは、0と同一であることができる。
【0166】
例えば、上記prefixValに対する単項二進化(unary binarization)で導出されるビンストリングは、次の表の通りであることができる。
【0167】
【0168】
一方、上記prefixValがcMax>>cRiceParamより小さくない場合、上記接頭辞ビンストリングは、長さがcMax>>cRiceParamであり、全てのビンが1であるビットストリングであることができる。
【0169】
また、cMaxがsymbolValより大きく、cRiceParamが0より大きい場合、TRビンストリングの接尾辞ビンストリングが存在しうる。例えば、上記接尾辞ビンストリングは、後述するように導出されることができる。
【0170】
上記シンタックスエレメントに対する上記symbolValの接尾辞値(suffix value)は、次の数式のように導出されることができる。
【0171】
【0172】
ここで、suffixValは、上記symbolValの接尾辞値を表すことができる。
【0173】
TRビンストリングの接尾辞(すなわち、接尾辞ビンストリング)は、cMax値が(1<<cRiceParam)-1であるsuffixValに対するFL二進化プロセスに基づいて導出されることができる。
【0174】
一方、入力パラメータであるcRiceParamの値が0であれば、上記TR二進化は、正確にトランケートされた単項二進化(truncated unary binarization)であることができ、常にデコードされるシンタックスエレメントの可能な最大値と同じcMax値が使用され得る。
【0175】
また、例えば、上記EGk二進化プロセスは、次のように行われることができる。ue(v)でコーディングされたシンタックスエレメントは、Exp-Golombコーディングされたシンタックスエレメントであることができる。
【0176】
一例として、0次Exp-Golomb(0-th order Exp-Golomb、EG0)二進化プロセスは、次のように行われることができる。
【0177】
上記シンタックスエレメントに対するパージングプロセス(parsingprocess)は、ビットストリームの現在位置から始めて、1番目のノンゼロ(non-zero)ビットを含むビットを読んで、0のような先行ビット数を数えること(counting)により始まることができる。上記過程は、次の表のように表すことができる。
【0178】
【0179】
また、変数codeNumは、次の数式のように導出できる。
【0180】
【0181】
ここで、read_bits(leadingZeroBits)で返還された値、すなわち、read_bits(leadingZeroBits)が表す値は、1番目に記録された最も重要なビット(最上位ビット)(most significant bit)に対するアンサインド整数(unsigned integer)の二進表現(binary representation)と解釈されることができる。
【0182】
ビットストリングを「接頭辞(prefix)」ビットと「接尾辞(suffix)」ビットとに分離したExp-Golombコードの構造は、次の表のように表すことができる。
【0183】
【0184】
「接頭辞」ビットは、leadingZeroBits計算のために前述のようにパージングされたビットであり、表8においてビットストリングの0または1と表示されることができる。すなわち、前述の表8の0または1から開始されたビットストリングは、接頭辞ビットストリングを示すことができる。「接尾辞」ビットは、codeNumの計算においてパージングされるビットであり、前述の表8においてxiで表示される。すなわち、前述の表8のxiから開始されたビットストリングは、接尾辞ビットストリングを示すことができる。ここで、iは、0からLeadingZeroBits-1の範囲の値であり得る。また、各xiは、0または1と同一であり得る。
【0185】
上記codeNumに割り当てられるビットストリングは、次の表の通りである。
【0186】
【0187】
シンタックスエレメントのディスクリプタ(descriptor)がue(v)である場合、すなわち、シンタックスエレメントがue(v)でコーディングされた場合、上記シンタックスエレメントの値は、codeNumと同一であることができる。
【0188】
また、例えば、上記EGk二進化プロセスは、次のように行われることができる。
【0189】
上記EGk二進化プロセスの入力(input)は、EGk二進化に対する要求であることができる。また、上記EGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するEGk二進化であることができる。
【0190】
symbolValに対するEGk二進化プロセスのビットストリングは、次のように導出されることができる。
【0191】
【0192】
上述した表10を参照すれば、put(x)の各コール(each call)を介して二進値Xをビンストリングの終わりに追加することができる。ここで、xは、0または1であることができる。
【0193】
また、例えば、上記Limited EGk二進化プロセスは、次のように行われることができる。
【0194】
上記Limited EGk二進化プロセスの入力(input)は、Limited EGk二進化に対する要求およびライスパラメータriceParam、最大値の二進対数を表す変数であるlog2TransformRange、および最大接頭辞拡張長さを表す変数であるmaxPreExtLenであることができる。また、上記Limited EGk二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するLimited EGk二進化であることができる。
【0195】
symbolValに対するLimited EGk二進化プロセスのビットストリングは、次のように導出されることができる。
【0196】
【0197】
また、例えば、上記FL二進化プロセスは、次のように行われることができる。
【0198】
上記FL二進化プロセスの入力(input)は、FL二進化に対する要求および上記シンタックスエレメントに対するcMaxであることができる。また、上記FL二進化プロセスの出力(output)は、ビンストリングに対応する値symbolValに対するFL二進化であることができる。
【0199】
FL二進化は、シンボル値symbolValの固定長であるビット数を有するビットストリングを使用して構成されることができる。ここで、上記固定長ビットは、符号なし整数ビットストリング(unsigned integer bitstring)であることができる。すなわち、FL二進化によってシンボル値symbolValに対するビットストリングが導出され得るし、上記ビットストリングのビット長(すなわち、ビット数)は、固定長であることができる。
【0200】
例えば、上記固定長は、次の数式のように導出されることができる。
【0201】
【0202】
FL二進化に対するビンなどのインデキシングは、最上位ビットから最下位ビット順に増加する値を使用する方式であることができる。例えば、上記最上位ビットと関連するビンインデックスは、binIdx=0であることができる。
【0203】
一方、例えば、上記残差情報のうち、シンタックスエレメントabs_remainderに対する二進化プロセスは、次のように行われることができる。
【0204】
上記abs_remainderに対する二進化プロセスの入力は、シンタックスエレメントabs_remainder[n]の二進化に対する要求、色相成分(colour component)cIdx、ルマ位置(x0、y0)であることができる。上記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現ルマ変換ブロックの左上端サンプルを指すことができる。
【0205】
上記abs_remainderに対する二進化プロセスの出力(output)は、上記abs_remainderの二進化(すなわち、上記abs_remainderの二進化されたビンストリング)であることができる。上記二進化プロセスによって上記abs_remainderに対する使用可能ビンストリングなどが導出され得る。
【0206】
上記abs_remainder[n]に対するライスパラメータcRiceParamは、上記色相成分cIdxおよびルマ位置(x0,y0)、現在の係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数であるlog2TbWidthおよび変換ブロックの高さの二進対数であるlog2TbHeightを入力として実行されるライスパラメータの導出過程を通じて導出され得る。上記ライスパラメータの導出過程に関する具体的な説明は後述する。
【0207】
また、例えば、現在コーディングされるabs_remainder[n]に対するcMaxは、上記ライスパラメータcRiceParamに基づいて導出され得る。上記cMaxは、次の数式のように導出され得る。
【0208】
【0209】
一方、上記abs_remainderに対する二進化、すなわち、上記abs_remainderに対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であり得る。また、上記接尾辞ビンストリングが存在しない場合には、上記abs_remainderに対する上記ビンストリングは、上記接頭辞ビンストリングであり得る。
【0210】
例えば、上記接頭辞ビンストリングは、後述のように導出され得る。
【0211】
上記abs_remainder[n]の接頭辞値(prefix value)prefixValは、次の数式のように導出され得る。
【0212】
【0213】
上記abs_remainder[n]の上記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、上記cMaxおよび上記cRiceParamを入力として用いる上記prefixValに対するTR二進化プロセスを通じて導出され得る。
【0214】
上記接頭辞ビンストリングが、全てのビットが1でありビット長が6であるビットストリングと同一である場合、上記abs_remainder[n]の上記ビンストリングの接尾辞ビンストリングが存在し得、後述のように導出され得る。
【0215】
上記abs_remainder[n]に対するライスパラメータの導出過程は、次の通りである。
【0216】
上記ライスパラメータの導出過程の入力は、色相成分インデックス(colour component index)cIdx、ルマ位置(x0,y0)、現在の係数スキャン位置(xC,yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidthおよび変換ブロックの高さの二進対数であるlog2TbHeightであり得る。上記ルマ位置(x0,y0)は、ピクチャの左上側ルマサンプルを基準とする現ルマ変換ブロックの左上側サンプルを指し得る。また、上記ライスパラメータの導出過程の出力は、上記ライスパラメータcRiceParamであり得る。
【0217】
例えば、与えられたコンポーネントインデックスcIdx、上記左上側ルマ位置(x0,y0)を有する変換ブロックに対する配列AbsLevel[x][y]に基づいて、変数locSumAbsは、次の表に開示された擬似コード(pseudo code)のように導出され得る。
【0218】
【0219】
その後、与えられた変数locSumAbsに基づいて、上記ライスパラメータcRiceParamは、次の表のように導出され得る。
【0220】
【0221】
また、例えば、abs_remainder[n]に対するライスパラメータの導出過程で、baseLevelは、4に設定されることができる。
【0222】
あるいは、例えば、現ブロックの変換スキップが使用可能かどうかに基づいて、上記ライスパラメータcRiceParamが決定されることができる。すなわち、現CGを含む現TBに対して変換が適用されない場合、言い換えると、上記現CGを含む上記現TBに対して変換スキップ(transform skip)が適用される場合、上記ライスパラメータcRiceParamは、1になるよう導出され得る。
【0223】
また、上記abs_remainderの接尾辞値(suffix value)suffixValは、次の数式のように導出され得る。
【0224】
【0225】
上記abs_remainderの上記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、riceParamは、cRiceParamに設定され、log2TransformRangeは、15に設定され、maxPreExtLenは、11に設定される上記suffixValに対するLimited EGk二進化プロセスによって導出されることができる。
【0226】
一方、例えば、上記残差情報のうち、シンタックスエレメントdec_abs_levelに対する二進化プロセスは、次のように行われることができる。
【0227】
上記dec_abs_levelに対する二進化プロセスの入力は、シンタックスエレメントdec_abs_level[n]の二進化に対する要求、色相成分(colour component)cIdx、ルマ位置(x0、y0)、現係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidth、および変換ブロックの高さの二進対数であるlog2TbHeightであることができる。上記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現ルマ変換ブロックの左上端サンプルを指すことができる。
【0228】
上記dec_abs_levelに対する二進化プロセスの出力(output)は、上記dec_abs_levelの二進化(すなわち、上記dec_abs_levelの二進化されたビンストリング)であることができる。上記二進化プロセスによって上記dec_abs_levelに対する使用可能ビンストリングなどが導出され得る。
【0229】
上記dec_abs_level[n]に対するライスパラメータcRiceParamは、上記色相成分cIdxおよびルマ位置(x0、y0)、現係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数であるlog2TbWidth、ならびに変換ブロックの高さの二進対数であるlog2TbHeightを入力として行われるライスパラメータ導出過程を介して導出されることができる。上記ライスパラメータ導出過程についての具体的な説明は後述する。
【0230】
また、例えば、上記dec_abs_level[n]に対するcMaxは、上記ライスパラメータcRiceParamに基づいて導出されることができる。上記cMaxは、次の数式のように導出されることができる。
【0231】
【0232】
一方、上記dec_abs_level[n]に対する二進化、すなわち、上記dec_abs_level[n]に対するビンストリングは、接尾辞(suffix)ビンストリングが存在する場合には、接頭辞(prefix)ビンストリングと接尾辞ビンストリングとの結合(concatenation)であることができる。また、上記接尾辞ビンストリングが存在しない場合には、上記dec_abs_level[n]に対する上記ビンストリングは、上記接頭辞ビンストリングであることができる。
【0233】
例えば、上記接頭辞ビンストリングは、後述するように導出されることができる。
【0234】
上記dec_abs_level[n]の接頭辞値(prefix value)prefixValは、次の数式のように導出されることができる。
【0235】
【0236】
上記dec_abs_level[n]の上記ビンストリングの接頭辞(すなわち、接頭辞ビンストリング)は、上記cMaxおよび上記cRiceParamを入力として使用する上記prefixValに対するTR二進化プロセスによって導出されることができる。
【0237】
上記接頭辞ビンストリングが、全てのビットが1であり、ビット長が6であるビットストリングと同一であれば、上記dec_abs_level[n]の上記ビンストリングの接尾辞ビンストリングが存在し得るし、後述するように導出されることができる。
【0238】
上記dec_abs_level[n]に対するライスパラメータ導出過程は、次の通りであることができる。
【0239】
上記ライスパラメータ導出過程の入力は、色相成分インデックス(colour componentindex)cIdx、ルマ位置(x0、y0)、現係数スキャン位置(xC、yC)、変換ブロックの幅の二進対数(binary logarithm)であるlog2TbWidthおよび変換ブロックの高さの二進対数であるlog2TbHeightであることができる。上記ルマ位置(x0、y0)は、ピクチャの左上端ルマサンプルを基準とする現ルマ変換ブロックの左上端サンプルを指すことができる。また、上記ライスパラメータ導出過程の出力は、上記ライスパラメータcRiceParamであることができる。
【0240】
例えば、与えられたコンポーネントインデックスcIdx、上記左上端ルマ位置(x0、y0)を有する変換ブロックに対する配列AbsLevel[x][y]に基づいて、変数locSumAbsは、次の表に開示された疑似コード(pseudo code)のように導出されることができる。
【0241】
【0242】
その後、与えられた変数locSumAbsに基づいて上記ライスパラメータcRiceParamは、次の表のように導出されることができる。
【0243】
【0244】
また、例えば、dec_abs_level[n]に対するライスパラメータ導出過程で、baseLevelは、0に設定されることができ、上記ZeroPos[n]は、次の数式のように導出されることができる。
【0245】
【0246】
また、上記dec_abs_level[n]の接尾辞値(suffix value)suffixValは、次の数式のように導出されることができる。
【0247】
【0248】
上記dec_abs_level[n]の上記ビンストリングの接尾辞ビンストリングは、kがcRiceParam+1に設定され、truncSuffixLenは、15に設定され、maxPreExtLenは、11に設定される上記suffixValに対するLimited EGk二進化プロセスを通じて導出されることができる。
【0249】
一方、前述したRRCとTSRCとは、次のような差を有し得る。
【0250】
- 例えば、RRCにおけるシンタックスエレメントabs_remainder[]とdec_abs_level[]のライスパラメータcRiceParamは、前述の内容のように、上記locSumAbs、look-up tableおよび/またはbaseLevelに基づいて導出され得るが、TSRCにおけるシンタックスエレメントabs_remainder[]のライスパラメータcRiceParamは、1として導出され得る。すなわち、例えば、現ブロック(例えば、現TB)に対して変換スキップ(transform skip)が適用される場合、上記現ブロックに対するTSRCのabs_remainder[]に対するライスパラメータcRiceParamは、1として導出され得る。
【0251】
- また、例えば、表3および表4を参照すると、RRCでは、abs_level_gtx_flag[n][0]および/またはabs_level_gtx_flag[n][1]がシグナリングされ得るが、TSRCでは、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]およびabs_level_gtx_flag[n][4]がシグナリングされ得る。ここで、上記abs_level_gtx_flag[n][0]は、abs_level_gt1_flagまたは第1係数レベルフラグと表し得、上記abs_level_gtx_flag[n][1]は、abs_level_gt3_flagまたは第2係数レベルフラグと表し得、上記abs_level_gtx_flag[n][2]は、abs_level_gt5_flagまたは第3係数レベルフラグと表し得、上記abs_level_gtx_flag[n][3]は、abs_level_gt7_flagまたは第4係数レベルフラグと表し得、上記abs_level_gtx_flag[n][4]は、abs_level_gt9_flagまたは第5係数レベルフラグと表し得る。具体的には、上記第1係数レベルフラグは、係数レベルが第1閾値(例えば、1)よりも大きいかどうかに関するフラグ、上記第2係数レベルフラグは、係数レベルが第2閾値(例えば、3)よりも大きいかどうかに関するフラグ、上記第3係数レベルフラグは、係数レベルが第3閾値(例えば、5)よりも大きいかどうかに関するフラグ、上記第4係数レベルフラグは、係数レベルが第4閾値(例えば、7)よりも大きいかどうかに関するフラグ、上記第5係数レベルフラグは、係数レベルが第5閾値(例えば、9)よりも大きいかどうかに関するフラグであり得る。前述の内容のように、TSRCは、RRCに比べて、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]と共に、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]およびabs_level_gtx_flag[n][4]をさらに含み得る。
【0252】
- また、例えば、RRCでシンタックスエレメントcoeff_sign_flagはバイパスコーディングされ得るが、TSRCでシンタックスエレメントcoeff_sign_flagは、バイパスコーディングまたはコンテキストコーディングされ得る。
【0253】
また、残差サンプルの量子化過程について、従属量子化(dependent quantization)が提案されることができる。従属量子化は、現変換係数に対して許容される復元値セットが復元順序で現変換係数より先行する変換係数の値(変換係数レベルの値)に依存する方式を表し得る。すなわち、例えば、従属量子化(dependent quantization)は、(a)復元レベルが他の2個のスカラ量子化器(scalar quantizers)を定義し、(b)上記スカラ量子化器の間を切り替えるためのプロセスを定義することによって実現できる。上記従属量子化は、既存の独立スカラ量子化に比べて、許容される復元ベクトルがN次元のベクトル空間でより密集するという効果を有することができる。ここで、上記Nは、変換ブロックの変換係数の数を表し得る。
【0254】
図9は、従属量子化で用いられるスカラ量子化器を例示的に示す。
図9を参照すると、使用可能な復元レベルの位置は、量子化ステップのサイズ△と指定され得る。
図9を参照すると、スカラ量子化器は、Q0およびQ1で表し得る。用いられるスカラ量子化器は、ビットストリームで明示的にシグナリングされずに導出され得る。例えば、現変換係数に用いられる量子化器は、コーディング/復元順序で現変換係数に先行する変換係数レベルのパリティによって決定できる。
【0255】
図10は、従属量子化のための状態切り替え(state transition)および量子化器の選択を例示的に示す。
【0256】
図10を参照すると、2個のスカラ量子化器(Q0およびQ1)の間の切り替えは、4個の状態を有する状態マシーン(state machine)により実現されることができる。4個の状態は、4個の異なる値(0、1、2、3)を有し得る。コーディング/復元順序で、現変換係数以前の変換係数レベルのパリティにより現変換係数に対する状態が決定されることができる。
【0257】
例えば、変換ブロックに対する逆量子化過程が開始される場合、従属量子化のための状態は0に設定されることができる。その後、上記変換ブロックに対する変換係数は、スキャン順序(すなわち、エントロピ復号されたものと同じ順序)で復元されることができる。例えば、現変換係数が復元された後、
図10に示すように、従属量子化のための状態がアップデートされ得る。上記スキャン順序上、現変換係数が復元された後に復元される変換係数に対する逆量子化過程は、アップデートされた状態に基づいて実行できる。
図10に示すkは、変換係数の値、すなわち、変換係数のレベル値を表し得る。例えば、現在の状態が0である場合、k(現変換係数の値)&1が0であれば、状態は0にアップデートされ、k&1が1であれば、状態は2にアップデートされることができる。また、例えば、現在の状態が1である場合、k&1が0であれば、状態は2にアップデートされ、k&1が1であれば、状態は0にアップデートされることができる。また、例えば、現在の状態が2である場合、k&1が0であれば、状態は1にアップデートされ、k&1が1であれば、状態は3にアップデートされることができる。また、例えば、現在の状態が3である場合、k&1が0であれば、状態は3にアップデートされ、k&1が1であれば、状態は1にアップデートされることができる。
図10を参照すると、状態が0および1のうちの1つである場合、逆量子化過程に用いられるスカラ量子化器はQ0であり得、状態が2および3のうちの1つである場合、逆量子化過程に用いられるスカラ量子化器はQ1であり得る。変換係数は、現在の状態に対するスカラ量子化器で変換係数の復元レベルに対する量子化パラメータに基づいて逆量子化されることができる。
【0258】
一方、本文書は、残差データコーディングと関連した実施形態を提案する。本文書で説明される実施形態は、互いに組み合わせてもよい。前述のように、残差データコーディングの方法は、レギュラ残差コーディング(Regular Residual Coding、RRC)および変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が存在し得る。
【0259】
前述した2つの方法のうち、現ブロックに対する残差データコーディングの方法は、表1に示すように、transform_skip_flagおよびsh_ts_residual_coding_disabled_flagの値に基づいて決定されることができる。ここで、シンタックスエレメントsh_ts_residual_coding_disabled_flagは、上記TSRCが使用可能であるかどうかを表し得る。したがって、上記transform_skip_flagが変換スキップされることを表す場合にも、sh_ts_residual_coding_disabled_flagが、上記TSRCが使用可能ではないことを表す場合、変換スキップブロックに対して、RRCによるシンタックスエレメントがシグナリングされ得る。すなわち、transform_skip_flagの値が0であるか、slice_ts_residual_coding_disabled_flagの値が1である場合、RRCが用いられ得、その他の場合にはTSRCが用いられ得る。
【0260】
上記slice_ts_residual_coding_disabled_flagを用いて特定の応用(例えば、無損失のコーディングなど)で高いコーディング効率が得られるが、既存のビデオ/画像コーディングの標準では、前述の従属量子化(dependent quantization)と上記slice_ts_residual_coding_disabled_flagとが共に用いられる場合に対する制約が提案されない。すなわち、上位レベル(例えば、SPS(Sequence Parameter Set)シンタックス/VPS(Video Parameter Set)シンタックス/DPS(Decoding Parameter Set)シンタックス/ピクチャヘッダシンタックス(picture header syntax)/スライスヘッダシンタックス(slice header syntax)など)または下位レベル(CU/TU)で従属量子化が活性化され、上記slice_ts_residual_coding_disabled_flagが1である場合、RRCにおける従属量子化の状態(state)に依存する値が不要な動作(すなわち、従属量子化による動作)を行うことによって、コーディング性能が落ちるか、エンコード装置における誤った設定により、意図せずにコーディング性能の損失が生じ得る。したがって、本実施形態では、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合の残差コーディング(すなわち、現スライス内の変換スキップブロックの残差サンプルをRRCでコーディング)とが共に用いられて、意図しないコーディングの損失を引き起こしたり誤動作したりするのを防止するために、両技術間の従属性/制約を設定する案を提案する。
【0261】
本文書は、一実施形態として、slice_ts_residual_coding_disabled_flagがph_dep_quant_enabled_flagに従属する(される)方法を提案する。例えば、本実施形態で提案するシンタックスエレメントは、次の表の通りである。
【0262】
【0263】
本実施形態によると、上記slice_ts_residual_coding_disabled_flagは、上記ph_dep_quant_enabled_flagの値が0である場合にシグナリングされ得る。ここで、上記ph_dep_quant_enabled_flagは、従属量子化が使用可能であるかどうかを表し得る。例えば、上記ph_dep_quant_enabled_flagの値が1である場合、上記ph_dep_quant_enabled_flagは、従属量子化が使用可能であることを表し得、上記ph_dep_quant_enabled_flagの値が0である場合、上記ph_dep_quant_enabled_flagは、従属量子化が使用可能ではないことを表し得る。
【0264】
したがって、本実施形態によると、上記従属量子化が使用可能ではない場合にのみslice_ts_residual_coding_disabled_flagがシグナリングされ得、上記従属量子化が使用可能であり、上記slice_ts_residual_coding_disabled_flagがシグナリングされない場合、上記slice_ts_residual_coding_disabled_flagは、0とみなされ得る(infer)。一方、上記ph_dep_quant_enabled_flagおよび上記slice_ts_residual_coding_disabled_flagは、ピクチャヘッダシンタックスおよび/もしくはスライスヘッダシンタックスでシグナリングされ得、またはピクチャヘッダシンタックスおよびスライスヘッダシンタックスではない他の上位レベルシンタックス(High Level Syntax、HLS)(例えば、SPSシンタックス/VPSシンタックス/DPSシンタックスなど)または下位レベル(CU/TU)でシグナリングされることもある。上記ph_dep_quant_enabled_flagが上記ピクチャヘッダシンタックス以外のシンタックスでシグナリングされる場合には、他の名称で呼ばれ得る。例えば、上記ph_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flagまたはsps_dep_quant_enabled_flagで表すこともある。
【0265】
また、本文書は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合の残差コーディング(すなわち、現スライス内の変換スキップブロックの残差サンプルをRRCでコーディング)との間の従属性/制約を設定する他の一実施形態を提案する。例えば、本実施形態は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合の残差コーディング(すなわち、現スライス内の変換スキップブロックの残差サンプルをRRCでコーディング)とが共に用いられて、意図しないコーディングの損失を引き起こしたり誤動作したりすることを防止するために、slice_ts_residual_coding_disabled_flagの値が1である場合、変換係数のレベル値のコーディングにおいて、上記従属量子化の状態(state)が使用されないようにする案を提案する。本実施形態に係る残差コーディングのシンタックスは、次の表の通りである。
【0266】
【0267】
【0268】
【0269】
【0270】
【0271】
【0272】
前述の表17を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合、QStateが導出され得、上記QStateに基づいて変換係数の値(変換係数レベル)が導出され得る。例えば、表17を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得、(QState>1?1:0)は、状態QStateの値が1よりも大きい場合、すなわち、状態QStateの値が2または3の場合は1、状態QStateの値が1以下の場合、すなわち、状態QStateの値が0または1の場合は0であることを表し得る。
【0273】
また、前述の表17を参照すると、slice_ts_residual_coding_disabled_flagの値が1である場合、変換係数の値(変換係数レベル)は、上記QStateを使用せずに導出され得る。例えば、表17を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得る。
【0274】
また、本実施形態によると、slice_ts_residual_coding_disabled_flagの値が1である場合、変換係数のレベル値のコーディングにおいて、上記従属量子化の状態(state)が使用されず、上記状態のアップデートも実行されないことがある。例えば、本実施形態に係る残差コーディングのシンタックスは、次の表の通りである。
【0275】
【0276】
【0277】
【0278】
【0279】
【0280】
【0281】
前述の表18を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合、QStateがアップデートされ得る。例えば、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合、QStateは、QStateTransTable[QState][AbsLevelPass1[xC][yC]&1]またはQStateTransTable[QState][AbsLevel[xC][yC]&1]にアップデートされ得る。また、slice_ts_residual_coding_disabled_flagの値が1である場合、QStateをアップデートする過程は実行されないことがある。
【0282】
また、前述の表18を参照すると、ph_dep_quant_enabled_flagの値が1であり、slice_ts_residual_coding_disabled_flagの値が0である場合、上記QStateに基づいて変換係数の値(変換係数レベル)が導出され得る。例えば、表18を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得、(QState>1?1:0)は、状態QStateの値が1よりも大きい場合、すなわち、状態QStateの値が2または3の場合は1、状態QStateの値が1以下の場合、すなわち、状態QStateの値が0または1の場合は0であることを表し得る。
【0283】
また、前述の表18を参照すると、slice_ts_residual_coding_disabled_flagの値が1である場合、変換係数の値(変換係数レベル)は、上記QStateを使用せずに導出され得る。例えば、表18を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得る。
【0284】
また、本文書は、従属量子化とslice_ts_residual_coding_disabled_flag=1である場合の残差コーディング(すなわち、現スライス内の変換スキップブロックの残差サンプルをRRCでコーディング)との間の従属性/制約を設定する他の一実施形態を提案する。例えば、本実施形態は、RRCにおける従属量子化の状態(state)アップデートまたは状態に依存して変換係数の値(変換係数レベル)を導出する過程にtransform_skip_flagを用いた制約を追加する案を提案する。すなわち、本実施形態は、上記transform_skip_flagに基づいて、RRCにおける従属量子化の状態(state)アップデートおよび/または状態に依存して変換係数の値(変換係数レベル)を導出する過程が使用されないようにする案を提案する。本実施形態に係る残差コーディングのシンタックスは、次の表の通りである。
【0285】
【0286】
【0287】
【0288】
【0289】
【0290】
【0291】
前述の表19を参照すると、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合、QStateがアップデートされ得る。例えば、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合、QStateは、QStateTransTable[QState][AbsLevelPass1[xC][yC]&1]またはQStateTransTable[QState][AbsLevel[xC][yC]&1]にアップデートされ得る。また、transform_skip_flagの値が1である場合、QStateをアップデートする過程は、実行されないことがある。
【0292】
また、前述の表19を参照すると、ph_dep_quant_enabled_flagの値が1であり、transform_skip_flagの値が0である場合、QStateが導出され得、上記QStateに基づいて変換係数の値(変換係数レベル)が導出され得る。例えば、表19を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得、(QState>1?1:0)は、状態QStateの値が1よりも大きい場合、すなわち、状態QStateの値が2または3の場合は1、状態QStateの値が1以下の場合、すなわち、状態QStateの値が0または1の場合は0であることを表し得る。
【0293】
また、前述の表19を参照すると、transform_skip_flagの値が1である場合、変換係数の値(変換係数レベル)は、上記QStateを使用せずに導出され得る。したがって、変換スキップブロックに対してRRCによる残差データがコーディングされる場合には、Qstateを使用せずに変換係数の値が導出され得る。例えば、表19を参照すると、上記変換係数レベルTransCoeffLevel[x0][y0][cIdx][xC][yC]は、AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])で導出され得る。ここで、AbsLevel[xC][yC]は、変換係数のシンタックスエレメントに基づいて導出された変換係数の絶対値であり得、coeff_sign_flag[n]は、変換係数の符号(sign)を表す符号フラグのシンタックスエレメントであり得る。
【0294】
一方、前述のように、本文書で開示されたシンタックステーブル内の情報(シンタックスエレメント)は、画像/ビデオ情報に含まれ得、エンコード装置で構成/エンコードされて、ビットストリームの形態でデコード装置に伝達されることができる。デコード装置は、当該シンタックステーブル内の情報(シンタックスエレメント)をパージング/デコードできる。デコード装置は、デコードされた情報に基づいてブロック/画像/ビデオの復元手順を実行することができる。
【0295】
図11は、本文書に係るエンコード装置による画像エンコード方法を概略的に示す。
図11に開示の方法は、
図2に開示のエンコード装置によって実行されることができる。具体的には、例えば、
図11のS1100は、上記エンコード装置の予測部によって実行されることができ、
図11のS1110ないしS1160は、上記エンコード装置のエントロピ符号化部によって実行されることができる。また、示してはいないが、上記現ブロックに対するオリジナルサンプルおよび予測サンプルに基づいて、上記現ブロックに対する残差サンプルを導出する過程は、上記エンコード装置の減算部によって実行されることができ、上記現ブロックに対する残差サンプルおよび予測サンプルに基づいて、上記現ブロックに対する復元サンプルおよび復元ピクチャを生成する過程は、上記エンコード装置の加算部によって実行されることができる。
【0296】
エンコード装置は、インター予測に基づいて現ブロックの予測サンプルを導出する(S1100)。例えば、エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し得、上記現ブロックの予測サンプルを生成し得る。ここで、インター予測モードの決定、動き情報の導出、および予測サンプルの生成手順は、前述の内容のように同時に実行されてもよく、何れかの手順が他の手順より先に実行されてもよい。例えば、エンコード装置は、動き推定(motion estimation)を介して、参照ピクチャの一定領域(サーチ領域)内で上記現ブロックと類似するブロックをサーチし得、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出し得る。これに基づいて、エンコード装置は、上記参照ブロックが位置する参照ピクチャを指す参照ピクチャのインデックスを導出し得、上記参照ブロックと上記現ブロックとの位置差に基づいて動きベクトルを導出し得る。エンコード装置は、多様なインター予測モードのうち、上記現ブロックに対して適用されるインター予測モードを決定できる。例えば、エンコード装置は、上記多様なインター予測モードに対するRDコスト(cost)を比較し、上記現ブロックに対する最適なインター予測モードを決定できる。
【0297】
例えば、エンコード装置は、現ブロックに対する動き情報候補リストを構成し得、上記動き情報候補リストに含まれている動き情報候補の指す参照ブロックのうち、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出し得る。この場合、上記導出された参照ブロックと関連する動き情報候補が選択され得、上記選択された動き情報候補の動き情報に基づいて、上記現ブロックの動き情報が導出され得る。
【0298】
エンコード装置は、上記現ブロックに対する予測関連情報をエンコードする(S1110)。画像情報は、上記現ブロックに対する予測関連情報を含み得る。例えば、上記予測関連情報は、上記予測手順に関連する情報であって、予測モード情報および上記現ブロックの動き情報に関する情報を含み得る。上記動き情報に関する情報は、動きベクトルを導出するための情報である動き情報候補のインデックス情報を含み得る。また、例えば、上記動き情報に関する情報は、前述のMVD(Motion Vector Difference、MVD)に関する情報および/または参照ピクチャのインデックス情報を含み得る。
【0299】
エンコード装置は、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードする(S1120)。エンコード装置は、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードできる。画像情報は、従属量子化使用可能フラグを含み得る。例えば、エンコード装置は、シーケンス(sequence)内ピクチャのブロックに対して従属量子化が使用可能であるかを決定することができ、従属量子化が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードすることができる。例えば、上記従属量子化使用可能フラグは、従属量子化(dependent quantization)が使用可能であるかどうかに関するフラグであり得る。例えば、従属量子化使用可能フラグは、従属量子化(dependent quantization)が使用可能であるかどうかを表し得る。すなわち、例えば、従属量子化使用可能フラグは、シーケンス(sequence)内ピクチャのブロックに対して、従属量子化が使用可能であるかどうかを表し得る。例えば、従属量子化使用可能フラグは、現スライスに対して従属量子化が使用されるかどうかを表す従属量子化使用フラグが存在できるかどうかを表し得る。例えば、値が1である上記従属量子化使用可能フラグは、上記従属量子化が使用可能であることを表し得、値が0である上記従属量子化使用可能フラグは、上記従属量子化が使用可能ではないことを表し得る。また、例えば、上記従属量子化使用可能フラグは、SPSシンタックスまたはスライスヘッダシンタックスなどでシグナリングされ得る。上記従属量子化使用可能フラグのシンタックスエレメントは、前述のsps_dep_quant_enabled_flagであり得る。上記sps_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flagまたはph_dep_quant_enabled_flagと呼ばれ得る。
【0300】
エンコード装置は、上記従属量子化使用可能フラグに基づいて、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグをエンコードする(S1130)。画像情報は、TSRC使用可能フラグを含み得る。
【0301】
例えば、エンコード装置は、上記従属量子化使用可能フラグに基づいて上記TSRC使用可能フラグをエンコードすることができる。例えば、上記TSRC使用可能フラグは、値が0である上記従属量子化使用可能フラグに基づいてエンコードされることができる。すなわち、例えば、上記従属量子化使用可能フラグの値が0である場合(すなわち、上記従属量子化使用可能フラグが、従属量子化が使用可能ではないことを表す場合)、上記TSRC使用可能フラグは、エンコードされることができる。言い換えると、例えば、上記従属量子化使用可能フラグの値が0である場合(すなわち、上記従属量子化使用可能フラグが、従属量子化が使用可能ではないことを表す場合)、上記TSRC使用可能フラグはシグナリングされ得る。また、例えば、上記従属量子化使用可能フラグの値が1である場合、上記TSRC使用可能フラグはエンコードされないことがあり、デコード装置で上記TSRC使用可能フラグの値は0として導出され得る。すなわち、例えば、上記従属量子化使用可能フラグの値が1である場合(例えば、現ブロックに対して従属量子化が適用(または使用)される場合)、上記TSRC使用可能フラグはシグナリングされないことがあり、デコード装置で上記TSRC使用可能フラグの値は0として導出され得る。したがって、例えば、上記現ブロックに対して従属量子化が使用可能ではない場合、上記TSRC使用可能フラグがシグナリング(またはエンコード)され得る。上記現ブロックに対して従属量子化が使用可能である場合、上記TSRC使用可能フラグがシグナリング(またはエンコード)されないことがあり、デコード装置で上記TSRC使用可能フラグの値は0として導出され得る。ここで、上記現ブロックは、コーディングブロック(Coding Block、CB)または変換ブロック(Transform Block、TB)であり得る。
【0302】
ここで、例えば、上記TSRC使用可能フラグは、TSRCが使用可能であるかどうかに関するフラグであり得る。すなわち、例えば、上記TSRC使用可能フラグは、スライス内のブロックに対して、TSRCが使用可能であるかどうかを表すフラグであり得る。例えば、値が1である上記TSRC使用可能フラグは、上記TSRCが使用可能ではないことを表し得、値が0である上記TSRC使用可能フラグは、上記TSRCが使用可能であることを表し得る。また、例えば、上記TSRC使用可能フラグは、スライスヘッダ(Slice Header)シンタックスでシグナリングされ得る。上記TSRC使用可能フラグのシンタックスエレメントは、前述のsh_ts_residual_coding_disabled_flagであり得る。
【0303】
エンコード装置は、上記TSRC使用可能フラグに基づいて上記現ブロックに対する残差コーディングのシンタックスを決定する(S1140)。エンコード装置は、上記TSRC使用可能フラグに基づいて、現ブロックに対する残差コーディングのシンタックスを決定することができる。例えば、エンコード装置は、上記TSRC使用可能フラグに基づいて、現ブロックに対する残差コーディングのシンタックスをレギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスおよび変換スキップ残差コーディング(Tranform Skip Residual Coding、TSRC)のシンタックスのうちの1つとして決定できる。RRCシンタックスは、RRCによるシンタックスを表し得、TSRCシンタックスは、TSRCによるシンタックスを表し得る。
【0304】
例えば、値が1である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、レギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスとして決定され得る。この場合、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグがエンコードされ得、上記変換スキップフラグの値は1であり得る。例えば、上記画像情報は、上記現ブロックに対する変換スキップフラグを含み得る。上記変換スキップフラグは、上記現ブロックの変換スキップが使用可能かどうかを表し得る。すなわち、上記変換スキップフラグは、上記現ブロックの変換係数に変換が適用されているかどうかを表し得る。上記変換スキップフラグを表すシンタックスエレメントは、前述のtransform_skip_flagであり得る。例えば、上記変換スキップフラグの値が1である場合、上記変換スキップフラグは、上記現ブロックに変換が適用されない(すなわち、変換スキップされる)ことを表し得、上記変換スキップフラグの値が0である場合、上記変換スキップフラグは、上記現ブロックに変換が適用されることを表し得る。例えば、上記現ブロックが変換スキップブロックである場合、上記現ブロックに対する変換スキップフラグの値が1であり得る。
【0305】
また、例えば、値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)のシンタックスとして決定され得る。また、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグがエンコードされ得、値が1である上記変換スキップフラグおよび値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)のシンタックスとして決定され得る。また、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグがエンコードされ得、値が0である上記変換スキップフラグおよび値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、レギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスとして決定され得る。
【0306】
エンコード装置は、上記現ブロックに対する上記決定された残差コーディングのシンタックスの残差情報をエンコードする(S1150)。エンコード装置は、上記現ブロックに対する残差サンプルを導出し得、上記現ブロックの上記残差サンプルに対する上記決定された残差コーディングのシンタックスの残差情報をエンコードすることができる。上記画像情報は、残差情報を含み得る。
【0307】
例えば、エンコード装置は、上記現ブロックに対するオリジナルサンプルと上記予測サンプルとの減算を介して、上記現ブロックに対する残差サンプルを導出し得る。
【0308】
その後、例えば、エンコード装置は、上記残差サンプルに基づいて上記現ブロックの変換係数を導出し得る。例えば、エンコード装置は、上記現ブロックに対して変換が適用されるかどうかを決定することができる。すなわち、エンコード装置は、上記現ブロックの上記残差サンプルに対して変換が適用されるかどうかを決定することができる。エンコード装置は、コーディング効率を考慮し、上記現ブロックに対する変換の適用が可能か否かを決定することができる。例えば、エンコード装置は、上記現ブロックに対して変換が適用されないと決定できる。上記変換が適用されないブロックは、変換スキップブロックと表し得る。すなわち、例えば、上記現ブロックは、変換スキップブロックであり得る。
【0309】
上記現ブロックに対して変換が適用されない場合、すなわち、上記残差サンプルに対して変換が適用されない場合、エンコード装置は、上記導出された残差サンプルを上記変換係数として導出し得る。また、上記現ブロックに対して変換が適用される場合、すなわち、上記残差サンプルに対して変換が適用される場合、エンコード装置は、上記残差サンプルに対する変換を行い、上記変換係数を導出し得る。上記現ブロックは、複数のサブブロックまたは係数グループ(Coefficient Group、CG)を含み得る。また、上記現ブロックのサブブロックのサイズは、4x4サイズまたは2x2サイズであり得る。すなわち、上記現ブロックの上記サブブロックは、最大16個のノンゼロ(non-zero)変換係数または最大4個のノンゼロ変換係数を含み得る。ここで、上記現ブロックは、コーディングブロック(Coding Block、CB)または変換ブロック(Transform Block、TB)であり得る。また、変換係数(transform coefficient)は、残差係数(residual coefficient)とも表し得る。
【0310】
一方、エンコード装置は、上記現ブロックに対して従属量子化が適用されるかどうかを決定することができる。例えば、上記現ブロックに対して上記従属量子化が適用される場合、エンコード装置は、上記変換係数に対する上記従属量子化過程を行い、上記現ブロックの上記変換係数を導出し得る。例えば、上記現ブロックに対して上記従属量子化が適用される場合、エンコード装置は、従属量子化に対する状態(Qstate)を、スキャン順序上、現変換係数直前の変換係数の係数レベルに基づいてアップデートでき、上記アップデートされた状態および上記現変換係数に関するシンタックスエレメントに基づいて上記現変換係数の係数レベルを導出し得、上記導出された係数レベルを量子化し、現変換係数を導出し得る。例えば、上記現変換係数は、上記アップデートされた状態に対するスカラ量子化器で上記現変換係数の復元レベルに対する量子化パラメータに基づいて量子化され得る。
【0311】
例えば、上記現ブロックに対する上記残差コーディングのシンタックスが上記RRCシンタックスとして決定された場合、エンコード装置は、上記現ブロックに対する上記RRCシンタックスの残差情報をエンコードすることができる。例えば、上記RRCシンタックスの上記残差情報は、前述の表2に開示のシンタックスエレメントを含み得る。
【0312】
例えば、上記RRCシンタックスの上記残差情報は、現ブロックの変換係数に関するシンタックスエレメントを含み得る。ここで、変換係数(transform coefficient)は、残差係数(residual coefficient)とも表し得る。
【0313】
例えば、上記シンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]および/またはabs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level、および/またはcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含み得る。
【0314】
具体的には、例えば、上記シンタックスエレメントは、上記現ブロックの残差係数の配列(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)とも呼ばれ得る。
【0315】
また、例えば、上記シンタックスエレメントは、上記現ブロックの現サブブロックがノンゼロ変換係数を含むかどうかを表す符号化済み(コデッド)サブブロックフラグ、上記現ブロックの変換係数がノンゼロ(non-zero)変換係数であるかどうかを表す有効係数フラグ、上記変換係数に対する係数レベルが第1閾値よりも大きいかどうかに関する第1係数レベルフラグ、上記係数レベルのパリティ(parity)に関するパリティレベルフラグ、および/または上記変換係数の上記係数レベルが第2閾値よりも大きいかどうかに関する第2係数レベルフラグを含み得る。ここで、上記符号化済みサブブロックフラグは、sb_coded_flagまたはcoded_sub_block_flagであり得、上記有効係数フラグは、sig_coeff_flagであり得、上記第1係数レベルフラグは、abs_level_gt1_flagまたはabs_level_gtx_flagであり得、上記パリティレベルフラグは、par_level_flagであり得、上記第2係数レベルフラグは、abs_level_gt3_flagまたはabs_level_gtx_flagであり得る。
【0316】
また、例えば、上記シンタックスエレメントは、上記現ブロックの変換係数の値に対する係数値関連情報を含み得る。上記係数値関連情報は、abs_remainderおよび/またはdec_abs_levelであり得る。
【0317】
また、例えば、上記シンタックスエレメントは、上記変換係数の符号(sign)を表すサインフラグを含み得る。上記サインフラグは、coeff_sign_flagであり得る。
【0318】
例えば、上記現ブロックに対する上記残差コーディングのシンタックスが上記TSRCシンタックスとして決定された場合、エンコード装置は、上記現ブロックに対する上記TSRCシンタックスの残差情報をエンコードすることができる。例えば、上記TSRCシンタックスの上記残差情報は、前述の表3に開示されたシンタックスエレメントを含み得る。
【0319】
例えば、上記TSRCシンタックスの上記残差情報は、現ブロックの変換係数に関するシンタックスエレメントを含み得る。ここで、変換係数(transform coefficient)は、残差係数(residual coefficient)とも表し得る。
【0320】
例えば、上記シンタックスエレメントは、変換係数に対するコンテキストコーディングされたシンタックスエレメントおよび/またはバイパスコーディングされたシンタックスエレメントを含み得る。上記シンタックスエレメントは、sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]および/またはabs_level_gtx_flag[n][4])、abs_remainderおよび/またはcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含み得る。
【0321】
例えば、上記変換係数に対するコンテキストコーディングされた上記シンタックスエレメントは、上記変換係数がノンゼロ(non-zero)変換係数であるかどうかを表す有効係数フラグ、上記変換係数に対する符号(sign)を表すサインフラグ、上記変換係数に対する係数レベルが第1閾値よりも大きいかどうかに関する第1係数レベルフラグおよび/または上記変換係数に対する係数レベルのパリティ(parity)に関するパリティレベルフラグを含み得る。また、例えば、上記コンテキストコーディングされたシンタックスエレメントは、上記変換係数の上記係数レベルが第2閾値よりも大きいかどうかに関する第2係数レベルフラグ、上記変換係数の上記係数レベルが第3閾値よりも大きいかどうかに関する第3係数レベルフラグ、上記変換係数の上記係数レベルが第4閾値よりも大きいかどうかに関する第4係数レベルフラグおよび/または上記変換係数の上記係数レベルが第5閾値よりも大きいかどうかに関する第5係数レベルフラグを含み得る。ここで、上記有効係数フラグは、sig_coeff_flagであり得、上記サインフラグは、ceff_sign_flagであり得、上記第1係数レベルフラグは、abs_level_gt1_flagであり得、上記パリティレベルフラグは、par_level_flagであり得る。また、上記第2係数レベルフラグは、abs_level_gt3_flagまたはabs_level_gtx_flagであり得、上記第3係数レベルフラグは、abs_level_gt5_flagまたはabs_level_gtx_flagであり得、上記第4係数レベルフラグは、abs_level_gt7_flagまたはabs_level_gtx_flagであり得、上記第5係数レベルフラグは、abs_level_gt9_flagまたはabs_level_gtx_flagであり得る。
【0322】
また、例えば、上記変換係数に対するバイパスコーディングされた上記シンタックスエレメントは、上記変換係数の値(または係数レベル)に関する係数レベル情報および/または上記変換係数に対する符号(sign)を表すサインフラグを含み得る。上記係数レベル情報は、abs_remainderおよび/またはdec_abs_levelであり得、上記サインフラグは、ceff_sign_flagであり得る。
【0323】
エンコード装置は、上記予測関連情報、上記従属量子化使用可能フラグ、上記TSRC使用可能フラグ、および上記残差情報を含むビットストリームを生成する(S1160)。例えば、エンコード装置は、上記予測関連情報、上記従属量子化使用可能フラグ、上記TSRC使用可能フラグ、および上記残差情報を含む画像情報をビットストリームで出力することができる。上記ビットストリームは、上記予測関連情報、上記従属量子化使用可能フラグ、上記TSRC使用可能フラグ、および上記残差情報を含み得る。
【0324】
一方、上記ビットストリームは、ネットワークまたは(デジタル)記憶媒体を介してデコード装置に送信されることができる。ここで、ネットワークは、放送網および/または通信網などを含み得、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの多様な記憶媒体を含み得る。
【0325】
図12は、本文書に係る画像エンコード方法を行うエンコード装置を概略的に示す。
図11に開示の方法は、
図12に開示のエンコード装置により実行されることができる。具体的には、例えば、
図12の上記エンコード装置の予測部は、
図11のS1100を実行することができ、
図12の上記エンコード装置のエントロピ符号化部は、
図11のS1110ないしS1160を実行することができる。また、示してはいないが、上記現ブロックに対するオリジナルサンプルおよび予測サンプルに基づいて上記現ブロックに対する残差サンプルを導出する過程は、上記エンコード装置の減算部によって実行されることができ、上記現ブロックに対する残差サンプルおよび予測サンプルに基づいて上記現ブロックに対する復元サンプルおよび復元ピクチャを生成する過程は、上記エンコード装置の加算部によって実行されることができる。
【0326】
図13は、本文書に係るデコード装置による画像デコード方法を概略的に示す。
図13に開示の方法は、
図3に開示のデコード装置により実行されることができる。具体的には、例えば、
図13のS1300ないしS1330は、上記デコード装置のエントロピ復号部によって実行されることができ、
図13の(S1300ないし)S1340ないしS1350は、上記デコード装置の予測部によって実行されることができ、
図13のS1360は、上記デコード装置の残差処理部によって実行されることができ、S1370は、上記デコード装置の加算部によって実行されることができる。
【0327】
デコード装置は、現ブロックに対する予測関連情報を取得する(S1300)。デコード装置は、ビットストリームを介して上記現ブロックに対する予測関連情報を取得することができる。例えば、上記画像情報は、現ブロックに対する予測関連情報を含み得る。例えば、上記予測関連情報は、上記現ブロックに対する予測モード情報を含み得る。デコード装置は、上記予測モード情報に基づいて、上記現ブロックにどのインター予測モードが適用されるかを決定することができる。例えば、上記インター予測モードは、スキップモード、マージモードおよび/もしくは(A)MVPモードを含み得、または前述の多様なインター予測モードを含み得る。
【0328】
デコード装置は、従属量子化(dependent quantization)が使用可能であるかどうかに関する従属量子化使用可能フラグを取得する(S1310)。デコード装置は、ビットストリームを介して上記従属量子化使用可能フラグを含む画像情報を取得することができる。画像情報は、上記従属量子化使用可能フラグを含み得る。例えば、上記従属量子化使用可能フラグは、従属量子化(dependent quantization)が使用可能であるかどうかに関するフラグであり得る。例えば、従属量子化使用可能フラグは、従属量子化(dependent quantization)が使用可能であるかどうかを表し得る。すなわち、例えば、従属量子化使用可能フラグは、シーケンス(sequence)内ピクチャのブロックに対して、従属量子化が使用可能であるかどうかを表し得る。例えば、従属量子化使用可能フラグは、現スライスに対して従属量子化が使用されるかどうかを表す従属量子化使用フラグが存在できるかどうかを表し得る。例えば、値が1である上記従属量子化使用可能フラグは、上記従属量子化が使用可能であることを表し得、値が0である上記従属量子化使用可能フラグは、上記従属量子化が使用可能ではないことを表し得る。また、例えば、上記従属量子化使用可能フラグは、SPSシンタックスまたはスライスヘッダシンタックスなどでシグナリングされ得る。上記従属量子化使用可能フラグのシンタックスエレメントは、前述のsps_dep_quant_enabled_flagであり得る。上記sps_dep_quant_enabled_flagは、sh_dep_quant_enabled_flag、sh_dep_quant_used_flagまたはph_dep_quant_enabled_flagと呼ばれ得る。
【0329】
デコード装置は、上記従属量子化使用可能フラグに基づいて、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)が使用可能であるかどうかに関するTSRC使用可能フラグを取得する(S1320)。画像情報は、TSRC使用可能フラグを含み得る。
【0330】
例えば、デコード装置は、上記従属量子化使用可能フラグに基づいて上記TSRC使用可能フラグを取得することができる。例えば、上記TSRC使用可能フラグは、値が0である上記従属量子化使用可能フラグに基づいて取得されることができる。すなわち、例えば、上記従属量子化使用可能フラグの値が0である場合(すなわち、上記従属量子化使用可能フラグが、従属量子化が使用可能ではないことを表す場合)、上記TSRC使用可能フラグは取得されることができる。言い換えると、例えば、上記従属量子化使用可能フラグの値が0である場合(すなわち、上記従属量子化使用可能フラグが、従属量子化が使用可能ではないことを表す場合)、上記TSRC使用可能フラグはシグナリングされ得る。また、例えば、上記従属量子化使用可能フラグの値が1である場合、上記TSRC使用可能フラグは取得されないことがあり、上記TSRC使用可能フラグの値は0として導出され得る。すなわち、例えば、上記従属量子化使用可能フラグの値が1である場合(例えば、現ブロックに対して従属量子化が適用(または使用)される場合)、上記TSRC使用可能フラグはシグナリングされないことがあり、上記TSRC使用可能フラグの値は0として導出され得る。したがって、例えば、上記現ブロックに対して従属量子化が使用可能ではない場合、上記TSRC使用可能フラグがシグナリング(または取得)され得る。上記現ブロックに対して従属量子化が使用可能である場合、上記TSRC使用可能フラグがシグナリング(または取得)されないことがあり、上記TSRC使用可能フラグの値は0として導出され得る。ここで、上記現ブロックは、コーディングブロック(Coding Block、CB)または変換ブロック(Transform Block、TB)であり得る。
【0331】
ここで、例えば、上記TSRC使用可能フラグは、TSRCが使用可能であるかどうかに関するフラグであり得る。すなわち、例えば、上記TSRC使用可能フラグは、スライス内のブロックに対して、TSRCが使用可能であるかどうかを表すフラグであり得る。例えば、値が1である上記TSRC使用可能フラグは、上記TSRCが使用可能ではないことを表し得、値が0である上記TSRC使用可能フラグは、上記TSRCが使用可能であることを表し得る。また、例えば、上記TSRC使用可能フラグは、スライスヘッダ(Slice Header)シンタックスでシグナリングされ得る。上記TSRC使用可能フラグのシンタックスエレメントは、前述のsh_ts_residual_coding_disabled_flagであり得る。
【0332】
デコード装置は、上記TSRC使用可能フラグに基づいて導出された上記現ブロックに対する残差コーディングのシンタックスの残差情報を取得する(S1330)。デコード装置は、上記TSRC使用可能フラグに基づいてレギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスおよびTSRCシンタックスのうちの1つを上記現ブロックに対する残差コーディングのシンタックスとして導出し得、上記導出された残差コーディングのシンタックスの残差情報を取得し得る。
【0333】
例えば、デコード装置は、上記TSRC使用可能フラグに基づいて現ブロックに対する残差コーディングのシンタックスを導出し得る。例えば、デコード装置は、上記TSRC使用可能フラグに基づいて現ブロックに対する残差コーディングのシンタックスをレギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスおよび変換スキップ残差コーディング(Tranform Skip Residual Coding、TSRC)のシンタックスのうちの1つとして導出し得る。RRCシンタックスは、RRCによるシンタックスを表し得、TSRCシンタックスは、TSRCによるシンタックスを表し得る。
【0334】
例えば、値が1である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、レギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスとして導出され得る。この場合、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグが取得され得、上記変換スキップフラグの値は1であり得る。例えば、上記画像情報は、上記現ブロックに対する変換スキップフラグを含み得る。上記変換スキップフラグは、上記現ブロックの変換スキップが使用可能かどうかを表し得る。すなわち、上記変換スキップフラグは、上記現ブロックの変換係数に変換が適用されているかどうかを表し得る。上記変換スキップフラグを表すシンタックスエレメントは、前述のtransform_skip_flagであり得る。例えば、上記変換スキップフラグの値が1である場合、上記変換スキップフラグは、上記現ブロックに変換が適用されない(すなわち、変換スキップされる)ことを表し得、上記変換スキップフラグの値が0である場合、上記変換スキップフラグは、上記現ブロックに変換が適用されることを表し得る。例えば、上記現ブロックが変換スキップブロックである場合、上記現ブロックに対する変換スキップフラグの値は1であり得る。
【0335】
また、例えば、値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)のシンタックスとして導出され得る。また、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグが取得され得、値が1である上記変換スキップフラグおよび値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、変換スキップ残差コーディング(Transform Skip Residual Coding、TSRC)のシンタックスとして導出され得る。また、例えば、上記現ブロックの変換スキップが使用可能かどうかに関する変換スキップフラグが取得され得、値が0である上記変換スキップフラグおよび値が0である上記TSRC使用可能フラグに基づいて、上記現ブロックに対する上記残差コーディングのシンタックスは、レギュラ残差コーディング(Regular Residual Coding、RRC)のシンタックスとして導出され得る。
【0336】
その後、例えば、デコード装置は、上記現ブロックに対する上記導出された残差コーディングのシンタックスの残差情報を取得できる。上記画像情報は、残差情報を含み得る。
【0337】
例えば、上記現ブロックに対する上記残差コーディングのシンタックスが上記RRCシンタックスとして導出された場合、デコード装置は、上記現ブロックに対する上記RRCシンタックスの残差情報を取得し得る。例えば、上記RRCシンタックスの上記残差情報は、前述の表2に開示されたシンタックスエレメントを含み得る。
【0338】
例えば、上記RRCシンタックスの上記残差情報は、現ブロックの変換係数に関するシンタックスエレメントを含み得る。ここで、変換係数(transform coefficient)は、残差係数(residual coefficient)とも表し得る。
【0339】
例えば、上記シンタックスエレメントは、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]および/またはabs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level、および/またはcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含み得る。
【0340】
具体的には、例えば、上記シンタックスエレメントは、上記現ブロックの残差係数の配列(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)とも呼ばれ得る。
【0341】
また、例えば、上記シンタックスエレメントは、上記現ブロックの現サブブロックがノンゼロ変換係数を含むかどうかを表す符号化済みサブブロックフラグ、上記現ブロックの変換係数がノンゼロ(non-zero)変換係数であるかどうかを表す有効係数フラグ、上記変換係数に対する係数レベルが第1閾値よりも大きいかどうかに関する第1係数レベルフラグ、上記係数レベルのパリティ(parity)に関するパリティレベルフラグ、および/または上記変換係数の上記係数レベルが第2閾値よりも大きいかどうかに関する第2係数レベルフラグを含み得る。ここで、上記符号化済みサブブロックフラグは、sb_coded_flagまたはcoded_sub_block_flagであり得、上記有効係数フラグは、sig_coeff_flagであり得、上記第1係数レベルフラグは、abs_level_gt1_flagまたはabs_level_gtx_flagであり得、上記パリティレベルフラグは、par_level_flagであり得、上記第2係数レベルフラグは、abs_level_gt3_flagまたはabs_level_gtx_flagであり得る。
【0342】
また、例えば、上記シンタックスエレメントは、上記現ブロックの変換係数の値に関する係数値関連情報を含み得る。上記係数値関連情報は、abs_remainderおよび/またはdec_abs_levelであり得る。
【0343】
また、例えば、上記シンタックスエレメントは、上記変換係数の符号(sign)を表すサインフラグを含み得る。上記サインフラグは、coeff_sign_flagであり得る。
【0344】
例えば、上記現ブロックに対する上記残差コーディングのシンタックスが上記TSRCシンタックスとして導出された場合、デコード装置は、上記現ブロックに対する上記TSRCシンタックスの残差情報を取得し得る。例えば、上記TSRCシンタックスの上記残差情報は、前述の表3に開示されたシンタックスエレメントを含み得る。
【0345】
例えば、上記TSRCシンタックスの上記残差情報は、現ブロックの変換係数に関するシンタックスエレメントを含み得る。ここで、変換係数(transform coefficient)は、残差係数(residual coefficient)とも表し得る。
【0346】
例えば、上記シンタックスエレメントは、変換係数に対するコンテキストコーディングされたシンタックスエレメントおよび/またはバイパスコーディングされたシンタックスエレメントを含み得る。上記シンタックスエレメントは、sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例えば、abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]および/またはabs_level_gtx_flag[n][4])、abs_remainderおよび/またはcoeff_sign_flagなどのシンタックスエレメント(syntax elements)を含み得る。
【0347】
例えば、上記変換係数に対するコンテキストコーディングされた上記シンタックスエレメントは、上記変換係数がノンゼロ(non-zero)変換係数であるかどうかを表す有効係数フラグ、上記変換係数に対する符号(sign)を表すサインフラグ、上記変換係数に対する係数レベルが第1閾値よりも大きいかどうかに関する第1係数レベルフラグおよび/または上記変換係数に対する係数レベルのパリティ(parity)に関するパリティレベルフラグを含み得る。また、例えば、上記コンテキストコーディングされたシンタックスエレメントは、上記変換係数の上記係数レベルが第2閾値よりも大きいかどうかに関する第2係数レベルフラグ、上記変換係数の上記係数レベルが第3閾値よりも大きいかどうかに関する第3係数レベルフラグ、上記変換係数の上記係数レベルが第4閾値よりも大きいかどうかに関する第4係数レベルフラグおよび/または上記変換係数の上記係数レベルが第5閾値よりも大きいかどうかに関する第5係数レベルフラグを含み得る。ここで、上記有効係数フラグは、sig_coeff_flagであり得、上記サインフラグは、ceff_sign_flagであり得、上記第1係数レベルフラグは、abs_level_gt1_flagであり得、上記パリティレベルフラグは、par_level_flagであり得る。また、上記第2係数レベルフラグは、abs_level_gt3_flagまたはabs_level_gtx_flagであり得、上記第3係数レベルフラグは、abs_level_gt5_flagまたはabs_level_gtx_flagであり得、上記第4係数レベルフラグは、abs_level_gt7_flagまたはabs_level_gtx_flagであり得、上記第5係数レベルフラグは、abs_level_gt9_flagまたはabs_level_gtx_flagであり得る。
【0348】
また、例えば、上記変換係数に対するバイパスコーディングされた上記シンタックスエレメントは、上記変換係数の値(または係数レベル)に関する係数レベル情報および/または上記変換係数に対する符号(sign)を表すサインフラグを含み得る。上記係数レベル情報は、abs_remainderおよび/またはdec_abs_levelであり得、上記サインフラグは、ceff_sign_flagであり得る。
【0349】
デコード装置は、上記予測関連情報に基づいて上記現ブロックの動き情報を導出する(S1340)。例えば、デコード装置は、上記予測関連情報に基づいて決定されたインター予測モードに基づいて、上記現ブロックの動き情報を導出し得る。例えば、デコード装置は、上記現ブロックに対する動き情報候補リストを構成し得、上記予測関連情報に含まれる動き情報候補のインデックス情報に基づいて動き情報候補リスト内の1つの動き情報候補を選択し得、上記選択された動き情報候補に基づいて上記現ブロックの動き情報を導出し得る。
【0350】
デコード装置は、上記動き情報に基づいて上記現ブロックの予測サンプルを導出する(S1350)。例えば、デコード装置は、上記現ブロックの参照ピクチャのインデックスに基づいて、上記現ブロックの参照ピクチャを導出し得、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルに基づいて上記現ブロックの予測サンプルを導出し得る。上記動き情報は、上記現ブロックの上記参照ピクチャのインデックスおよび上記動きベクトルを含み得る。
【0351】
デコード装置は、上記残差情報に基づいて上記現ブロックの残差サンプルを導出する(S1360)。例えば、デコード装置は、上記残差情報に基づいて上記現ブロックの変換係数を導出し得、上記変換係数に基づいて上記現ブロックの残差サンプルを導出し得る。
【0352】
例えば、デコード装置は、上記残差情報のシンタックスエレメントに基づいて上記現ブロックの変換係数を導出し得る。その後、デコード装置は、上記変換係数に基づいて上記現ブロックの残差サンプルを導出し得る。一例として、上記変換スキップフラグに基づいて、上記現ブロックに対して変換が適用されないと導出された場合、すなわち、上記変換スキップフラグの値が1である場合、デコード装置は、上記変換係数を上記現ブロックの上記残差サンプルとして導出し得る。あるいは、例えば、上記変換スキップフラグに基づいて上記現ブロックに対して変換が適用されないと導出された場合、すなわち、上記変換スキップフラグの値が1である場合、デコード装置は、上記変換係数を逆量子化し、上記現ブロックの上記残差サンプルを導出し得る。あるいは、例えば、上記変換スキップフラグに基づいて、上記現ブロックに対して変換が適用されたと導出された場合、すなわち、上記変換スキップフラグの値が0である場合、デコード装置は、上記変換係数を逆変換し、上記現ブロックの上記残差サンプルを導出し得る。あるいは、例えば、上記変換スキップフラグに基づいて、上記現ブロックに対して変換が適用されたと導出された場合、すなわち、上記変換スキップフラグの値が0である場合、デコード装置は、上記変換係数を逆量子化し、逆量子化された変換係数を逆変換して、上記現ブロックの上記残差サンプルを導出し得る。
【0353】
一方、例えば、上記従属量子化使用可能フラグに基づいて、上記現ブロックに上記従属量子化が適用されるかどうかが決定され得る。例えば、上記従属量子化使用可能フラグの値が1である場合(すなわち、上記従属量子化使用可能フラグが、上記従属量子化が使用可能であることを表す場合)、上記現ブロックに従属量子化が適用され得る。例えば、上記現ブロックに対して上記従属量子化が適用される場合、デコード装置は、上記変換係数に対する上記従属量子化過程を行い、上記現ブロックの上記残差サンプルを導出し得る。すなわち、例えば、上記現ブロックに対して上記従属量子化が適用される場合、デコード装置は、上記変換係数に対する従属量子化に基づいて、上記現ブロックの上記残差サンプルを導出し得る。例えば、上記現ブロックに対して上記従属量子化が適用される場合、デコード装置は、従属量子化に対する状態(Qstate)を、スキャン順序上、現変換係数直前の変換係数の係数レベルに基づいてアップデートでき、上記アップデートされた状態および上記現変換係数に関するシンタックスエレメントに基づいて上記現変換係数の係数レベルを導出し得、上記導出された係数レベルを逆量子化して残差サンプルを導出し得る。例えば、上記現変換係数は、上記アップデートされた状態に対するスカラ量子化器において上記現変換係数の復元レベルに対する量子化パラメータに基づいて逆量子化され得る。ここで、上記復元レベルは、上記現変換係数に関するシンタックスエレメントに基づいて導出され得る。
【0354】
また、例えば、上記現ブロックに対して上記従属量子化が適用されない場合、デコード装置は、上記現ブロックの変換係数に関するシンタックスエレメントに基づいて上記変換係数の係数レベルを導出し得、上記係数レベルを逆量子化して残差サンプルを導出し得る。すなわち、例えば、上記現ブロックに対して上記従属量子化が適用されない場合、デコード装置は、スキャン順序上、現変換係数直前の変換係数の係数レベルに基づいて行う状態(Qstate)アップデートの過程を実行しないことがある。
【0355】
デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて復元ピクチャを生成する(S1370)。例えば、デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて上記現ブロックの復元サンプルおよび/または復元ピクチャを生成できる。例えば、デコード装置は、上記予測サンプルと上記残差サンプルとの加算を介して、上記復元サンプルを生成できる。
【0356】
以降、必要に応じて、主観的/客観的画質を向上させるために、デブロックフィルタリング、SAOおよび/またはALF手順のようなインループフィルタリング手順が上記復元ピクチャに適用され得ることは前述の通りである。
【0357】
図14は、本文書に係る画像デコード方法を行うデコード装置を概略的に示す。
図13に開示の方法は、
図14に開示のデコード装置によって実行されることができる。具体的には、例えば、
図14の上記デコード装置のエントロピ復号部は、
図13のS1300ないしS1330を実行することができ、
図14の上記デコード装置の予測部は、
図13のS1340ないしS1350を実行することができ、
図14の上記デコード装置の残差処理部は、
図13のS1360を実行することができ、
図14の上記デコード装置の加算部は、
図13のS1370を実行することができる。
【0358】
前述の本文書によると、残差コーディングの効率を上げることができる。
【0359】
また、本文書によると、従属量子化使用可能フラグとTSRC使用可能フラグとの間のシグナリング関係を設定し、従属量子化が使用可能ではない場合にTSRC使用可能フラグをシグナリングすることができ、これを通じてTSRCが使用可能ではなく、変換スキップブロックに対してRRCシンタックスがコーディングされる場合に従属量子化が使用されないようにして、コーディング効率を向上させ、コーディングされるビット量を減らして、全般的な残差コーディング効率を向上させることができる。
【0360】
また、本文書によると、TSRC使用可能フラグは、従属量子化が使用されない場合にのみシグナリングされることができ、これを通じて変換スキップブロックに対してRRCシンタックスがコーディングされることと従属量子化が使用されることとが重複して実行されないようにし、TSRC使用可能フラグがより効果(効率)良くコーディングされるようにしてビット量を減らして、全般的な残差コーディング効率を向上させることができる。
【0361】
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図を基に説明されているが、本文書は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップおよび異なる順序でまたは同時に発生することができる。また、当業者であれば、流れ図に示されたステップが排他的でなく、他のステップが含まれ、または流れ図の1つもしくは複数のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0362】
本文書において説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。例えば、各図面において図示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。この場合、実現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記録媒体に記憶されることができる。
【0363】
また、本文書の実施形態が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記録媒体、カムコーダ、ビデオオンデマンド(注文型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over The Top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末など)、および医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使用されることができる。例えば、OTTビデオ(Over The Top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを備えることができる。
【0364】
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に記憶されることができる。本文書に係るデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に記憶されることができる。上記コンピュータが読み取り可能な記録媒体は、コンピュータで読み出すことができるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光学データ記憶装置を含むことができる。また、上記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介しての送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に記憶され、または有無線通信ネットワークを介して送信されることができる。
【0365】
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、上記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。上記プログラムコードは、コンピュータにより読み取り可能なキャリア上に記憶されることができる。
【0366】
図15は、本文書の実施形態が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0367】
本文書の実施形態が適用されるコンテンツストリーミングシステムは、大別して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア記憶装置(格納所、storage)、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0368】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略されることができる。
【0369】
上記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で一時的に上記ビットストリームを記憶することができる。
【0370】
上記ストリーミングサーバは、ウェブサーバを介したユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すると、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間命令/応答を制御する役割をする。
【0371】
上記ストリーミングサーバは、メディア記憶装置および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間記憶することができる。
【0372】
上記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタル署名(サイニジ)などがある。上記コンテンツストリーミングシステム内の各サーバは、分散サーバで運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0373】
本明細書に記載された請求項は、様々な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として実現されることもでき、本明細書の装置請求項の技術的特徴が組み合わせられて方法として実現されることもできる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として実現されることもでき、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として実現されることもできる。
【手続補正書】
【提出日】2023-08-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコード装置によって実行される画像デコード方法であって、
現ブロックに対する予測関連情報を取得するステップと、
従属量子化が使用可能であるかどうかに関する従属量子化使用可能フラグを取得するステップと、
前記従属量子化使用可能フラグに基づいて、TSRC(Transform Skip Residual Coding)が使用可能であるかどうかに関するTSRC無効フラグを取得するステップと、
前記TSRC無効フラグに基づいて導出された前記現ブロックに対する残差コーディングシンタックスの残差情報を取得するステップと、
前記予測関連情報に基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックの予測サンプルを導出するステップと、
前記残差情報に基づいて前記現ブロックの残差サンプルを導出するステップと、
前記予測サンプルおよび前記残差サンプルに基づいて復元ピクチャを生成するステップと、を含み、
前記TSRC無効フラグは、値が0である前記従属量子化使用可能フラグに基づいて取得され、
前記TSRC無効フラグは、スライスヘッダシンタックスを介してシグナリングされる、画像デコード方法。
【請求項2】
値が1である前記従属量子化使用可能フラグは、前記従属量子化が使用可能であることを表し、
前記値が0である前記従属量子化使用可能フラグは、前記従属量子化が使用可能でないことを表す、請求項1に記載の画像デコード方法。
【請求項3】
前記残差サンプルを導出するステップは、
前記現ブロックに対して前記従属量子化が適用される場合、現変換係数より前の変換係数の係数レベルに基づいて前記従属量子化に対する状態(Qstate)をアップデートするステップと、
前記アップデートされた状態、および前記残差情報内の前記現変換係数に関するシンタックスエレメントに基づいて、前記現変換係数の前記係数レベルを導出するステップと、
前記導出された係数レベルを逆量子化して前記残差サンプルを導出するステップと、を含む、請求項2に記載の画像デコード方法。
【請求項4】
値が1である前記TSRC無効フラグは、前記TSRCが使用可能でないことを表し、
前記値が0である前記TSRC無効フラグは、前記TSRCが使用可能であることを表す、請求項1に記載の画像デコード方法。
【請求項5】
前記従属量子化使用可能フラグの値が1である場合、前記TSRC無効フラグが取得されず、前記TSRC無効フラグの値は0として導出される、請求項1に記載の画像デコード方法。
【請求項6】
前記現ブロックに対して前記従属量子化が使用可能でない場合、前記TSRC無効フラグが取得される、請求項1に記載の画像デコード方法。
【請求項7】
前記値が1である前記TSRC無効フラグに基づく前記現ブロックに対する前記残差コーディングシンタックスは、RRC(Regular Residual Coding)シンタックスとして決定される、請求項4に記載の画像デコード方法。
【請求項8】
前記現ブロックが変換スキップブロックであり、前記TSRC無効フラグの値が0である場合、前記現ブロックに対する前記残差コーディングシンタックスは、TSRCシンタックスとして決定される、請求項7に記載の画像デコード方法。
【請求項9】
変換スキップが前記現ブロックに適用されるかどうかに関する変換スキップフラグが取得され、
前記変換スキップフラグの値は1である、請求項8に記載の画像デコード方法。
【請求項10】
前記TSRCシンタックスは、変換係数に対するコンテキストコーディングされたシンタックスエレメントを含み、
前記コンテキストコーディングされたシンタックスエレメントは、
前記変換係数がノンゼロ変換係数であるかどうかを表す有効係数フラグ、
前記変換係数に対する係数レベルのパリティに関するパリティレベルフラグ、
前記変換係数に対する符号を表すサインフラグ、
前記係数レベルが第1閾値より大きいかどうかに関する第1係数レベルフラグ、および、
前記変換係数の前記係数レベルが第2閾値より大きいかどうかに関する第2係数レベルフラグを含む、請求項8に記載の画像デコード方法。
【請求項11】
エンコード装置により実行される画像エンコード方法であって、
インター予測に基づいて現ブロックの予測サンプルを導出するステップと、
前記現ブロックに対する予測関連情報をエンコードするステップと、
従属量子化が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードするステップと、
前記従属量子化使用可能フラグに基づいてTSRC(Transform Skip Residual Coding)が使用可能であるかどうかに関するTSRC無効フラグをエンコードするステップと、
前記TSRC無効フラグに基づいて前記現ブロックに対する残差コーディングシンタックスを決定するステップと、
前記現ブロックに対する前記決定された残差コーディングシンタックスの残差情報をエンコードするステップと、
前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC無効フラグ、および前記残差情報を含むビットストリームを生成するステップと、を含み、
前記TSRC無効フラグは、値が0である前記従属量子化使用可能フラグに基づいてエンコードされ、
前記TSRC無効フラグは、スライスヘッダシンタックスを介してシグナリングされる、画像エンコード方法。
【請求項12】
値が1である前記従属量子化使用可能フラグは、前記従属量子化が使用可能であることを表し、
前記値が0である前記従属量子化使用可能フラグは、前記従属量子化が使用可能でないことを表す、請求項11に記載の画像エンコード方法。
【請求項13】
前記現ブロックに対して前記従属量子化が使用可能でない場合、前記TSRC無効フラグがエンコードされる、請求項11に記載の画像エンコード方法。
【請求項14】
前記従属量子化使用可能フラグの値が1である場合、前記TSRC無効フラグがエンコードされない、請求項11に記載の画像エンコード方法。
【請求項15】
画像情報のビットストリームを含むデータに関する送信方法であって、
残差情報を含む前記画像情報の前記ビットストリームを取得するステップであって、前記ビットストリームは、
インター予測に基づいて現ブロックの予測サンプルを導出するステップと、
前記現ブロックに対する予測関連情報をエンコードするステップと、
従属量子化が使用可能であるかどうかに関する従属量子化使用可能フラグをエンコードするステップと、
前記従属量子化使用可能フラグに基づいてTSRC(Transform Skip Residual Coding)が使用可能であるかどうかに関するTSRC無効フラグをエンコードするステップと、
前記TSRC無効フラグに基づいて前記現ブロックに対する残差コーディングシンタックスを決定するステップと、
前記現ブロックに対する前記決定された残差コーディングシンタックスの前記残差情報をエンコードするステップと、
前記予測関連情報、前記従属量子化使用可能フラグ、前記TSRC無効フラグ、および前記残差情報を含むビットストリームを生成するステップと、によって生成される、ステップと、
前記残差情報を含む前記画像情報の前記ビットストリームを含む前記データを送信するステップと、を含み、
前記TSRC無効フラグは、値が0である前記従属量子化使用可能フラグに基づいてエンコードされ、
前記TSRC無効フラグは、スライスヘッダシンタックスを介してシグナリングされる、送信方法。