(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105675
(43)【公開日】2024-08-06
(54)【発明の名称】画像処理装置および方法
(51)【国際特許分類】
H04N 19/70 20140101AFI20240730BHJP
H04N 19/12 20140101ALI20240730BHJP
H04N 19/176 20140101ALI20240730BHJP
【FI】
H04N19/70
H04N19/12
H04N19/176
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024083434
(22)【出願日】2024-05-22
(62)【分割の表示】P 2021558326の分割
【原出願日】2020-11-12
(31)【優先権主張番号】62/939102
(32)【優先日】2019-11-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】筑波 健史
(57)【要約】
【課題】符号化効率の低減を抑制することができるようにする。
【解決手段】画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真の場合、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽の場合、セカンダリ変換制御情報を符号化する。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、送信装置、受信装置、送受信装置、情報処理装置、撮像装置、再生装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像符号化における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
符号化部
を備える画像処理装置。
【請求項2】
前記符号化部は、前記画像符号化のツリータイプがシングルツリーの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグ、Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Y成分変換スキップフラグ、前記Cb成分変換スキップフラグ、および前記Cr成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項3】
前記符号化部は、前記画像符号化のツリータイプがデュアルツリールマの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Y成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項4】
前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマの場合、
Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Cb成分変換スキップフラグおよび前記Cr成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項5】
前記セカンダリ変換制御情報は、前記セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子を含む
請求項1に記載の画像処理装置。
【請求項6】
前記セカンダリ変換は、LFNST(Low Frequency Non-Separable Transform)である
請求項1に記載の画像処理装置。
【請求項7】
前記符号化部は、前記画像符号化における有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項8】
前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項9】
前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
少なくとも1つのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
請求項1に記載の画像処理装置。
【請求項10】
画像符号化における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
画像処理方法。
【請求項11】
画像復号における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する
復号部
を備える画像処理装置。
【請求項12】
前記復号部は、前記画像復号のツリータイプがシングルツリーの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグ、Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Y成分変換スキップフラグ、前記Cb成分変換スキップフラグ、および前記Cr成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項13】
前記復号部は、前記画像復号のツリータイプがデュアルツリールマの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Y成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項14】
前記復号部は、前記画像復号のツリータイプがデュアルツリークロマの場合、
Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Cb成分変換スキップフラグおよび前記Cr成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項15】
前記セカンダリ変換制御情報は、前記セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子を含む
請求項11に記載の画像処理装置。
【請求項16】
前記セカンダリ変換は、LFNST(Low Frequency Non-Separable Transform)である
請求項11に記載の画像処理装置。
【請求項17】
前記復号部は、前記画像復号における有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項18】
前記復号部は、前記画像復号のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項19】
前記復号部は、前記画像復号のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
少なくとも1つのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
請求項11に記載の画像処理装置。
【請求項20】
画像復号における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、動画像の予測残差を導出し、係数変換し、量子化して符号化する符号化方法が提案された(例えば、非特許文献1)。非特許文献1に記載のVVC(Versatile Video Coding)では、プライマリ変換後の変換係数に対して、セカンダリ変換としてLFNST(Low Frequency Non-Separable Transform)を行い、さらにエナジーコンパクションを改善する符号化ツールがあった。そして、このセカンダリ変換に関する制御情報であるセカンダリ変換制御情報がシグナリングされた(つまり、セカンダリ変換制御情報が符号化され、復号側に伝送された)。
【0003】
このセカンダリ変換制御情報として、例えば、LFNSTのモードを示すLFNST識別子(lfnst_idx)がシグナリングされた。このLFNST識別子は、ツリータイプ(treeType)と変換スキップフラグ(transform_skip_flag)の値に応じてシグナリングされた。変換スキップフラグは、画像符号化において、上述のプライマリ変換やセカンダリ変換等を含む係数変換をスキップ(省略)するか否かを示すフラグ情報である。なお、この変換スキップフラグは、画像復号において、その係数変換の逆処理(逆変換)をスキップ(省略)するか否かも示す。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Benjamin Bross, Jianle Chen, Shan Liu, Ye-Kui Wang, "Versatile Video Coding (Draft 7)", JVET-P2001-vE, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 16th Meeting: Geneva, CH, 1-11 Oct 2019
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載の方法の場合、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真(例えば1)である場合にも、そのLFNST識別子がシグナルされるので、冗長となるおそれがあった。つまり、符号化効率が低減するおそれがあった。
【0006】
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。
【課題を解決するための手段】
【0007】
本技術の一側面の画像処理装置は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する符号化部を備える画像処理装置である。
【0008】
本技術の一側面の画像処理方法は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する画像処理方法である。
【0009】
本技術の他の側面の画像処理装置は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する復号部を備える画像処理装置である。
【0010】
本技術の他の側面の画像処理方法は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する画像処理方法である。
【0011】
本技術の一側面の画像処理装置および方法においては、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化が省略され、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報が符号化される。
【0012】
本技術の他の側面の画像処理装置および方法においては、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号が省略され、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定され、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。
【図面の簡単な説明】
【0013】
【
図1】LFNST識別子に関するシンタックステーブルの例を示す図である。
【
図2】ツリータイプと変換スキップフラグに基づくLFNST識別子の例を示す図である。
【
図3】ツリータイプと変換スキップフラグに基づくLFNST識別子の例を示す図である。
【
図4】LFNST識別子に関するシンタックステーブルの例を示す図である。
【
図5】符号化条件conditionの例を示す図である。
【
図6】LFNST識別子に関するシンタックステーブルの例を示す図である。
【
図7】符号化条件conditionの例を示す図である。
【
図8】ツリータイプと変換スキップフラグに基づくLFNST識別子の例を示す図である。
【
図9】ツリータイプと変換スキップフラグに基づくLFNST識別子の例を示す図である。
【
図10】ツリータイプと変換スキップフラグに基づくLFNST識別子の例を示す図である。
【
図11】符号化装置の主な構成例を示すブロック図である。
【
図12】符号化処理の流れの例を示すフローチャートである。
【
図13】復号装置の主な構成例を示すブロック図である。
【
図14】復号処理の流れの例を示すフローチャートである。
【
図15】画像符号化装置の主な構成例を示すブロック図である。
【
図16】画像符号化処理の流れの例を示すフローチャートである。
【
図17】画像復号装置の主な構成例を示すブロック図である。
【
図18】画像復号処理の流れの例を示すフローチャートである。
【
図19】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.LFNST識別子のシグナリングパタン
2.第1の実施の形態(符号化装置)
3.第2の実施の形態(復号装置)
4.第3の実施の形態(画像符号化装置)
5.第4の実施の形態(画像復号装置)
6.付記
【0015】
<1.LFNST識別子のシグナリングパタン>
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
【0016】
非特許文献1:(上述)
非特許文献2:Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 7 (VTM 7)", JVET-P2002-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 16th Meeting: Geneva, CH, 1-11 Oct. 2019
非特許文献3:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
非特許文献4:Recommendation ITU-T H.265 (02/18) "High efficiency video coding", February 2018
【0017】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されているQuad-Tree Block Structure、QTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【0018】
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献に記載されているTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
【0019】
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
【0020】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【0021】
<LFNST識別子>
非特許文献1に記載のVVC(Versatile Video Coding)では、プライマリ変換後の変換係数に対して、セカンダリ変換としてLFNST(Low Frequency Non-Separable Transform)を行い、さらにエナジーコンパクションを改善する符号化ツールがあった。そして、このセカンダリ変換に関する制御情報であるセカンダリ変換制御情報がシグナリングされた(つまり、セカンダリ変換制御情報がエンコーダにおいて符号化され、復号側(デコーダ)に伝送された)。
【0022】
このセカンダリ変換制御情報として、例えば、LFNSTのモードを示す識別子であるLFNST識別子(lfnst_idx)がシグナリングされた。LFNST識別子(lfnst_idx)の値が「0」の場合、セカンダリ変換(LFNST)をスキップ(省略)することを示す。また、LFNST識別子(lfnst_idx)の値が「1」の場合、第1の方法によるセカンダリ変換が適用されることを示す。さらに、LFNST識別子(lfnst_idx)の値が「2」の場合、第2の方法によるセカンダリ変換が適用されることを示す。なお、後述するように、このLFNST識別子(lfnst_idx)のシグナリングは、スキップ(省略)することもできる。LFNST識別子(lfnst_idx)のシグナリングがスキップされた場合、復号側(デコーダ)は、その値を推定する。
【0023】
デコーダは、このように符号化側(エンコーダ)からシグナリングされたLFNST識別子(または推定したLFNST識別子)に基づいて、エンコーダにおいて行われたセカンダリ変換に対応するモードで、そのセカンダリ変換の逆処理である逆セカンダリ変換を行うことができた。つまり、セカンダリ変換制御情報は、逆セカンダリ変換に関する制御情報とも言える。また、LFNST識別子は、逆セカンダリ変換として行われるLFNSTの逆処理のモードを示す識別子とも言える。
【0024】
上述のようにLFNST識別子をシグナリングすることにより、符号化側(エンコーダ)が復号側(デコーダ)における逆セカンダリ変換を制御することができた。つまり、エンコーダは、デコーダに、符号化時のセカンダリ変換に対応するモードで逆セカンダリ変換を行わせることができた。
【0025】
非特許文献1に記載のVVCにおける、このLFNST識別子に関するシンタックステーブルの例を
図1に示す。
図1に示されるように、このシンタックステーブルの上から7段目および8段目の条件を満たす場合、上から9段目に示されるLFNST識別子(lfnst_idx)がシグナリングされた。つまり、このLFNST識別子は、ツリータイプ(treeType)と変換スキップフラグ(transform_skip_flag)の値に応じてシグナリングされた。変換スキップフラグは、画像符号化において、上述のプライマリ変換やセカンダリ変換等を含む係数変換をスキップ(省略)するか否かを示すフラグ情報である。なお、この変換スキップフラグは、画像復号において、その係数変換の逆処理(逆変換)をスキップ(省略)するか否かも示す。
【0026】
このツリータイプと変換スキップフラグの組み合わせとLFNST識別子のシグナリングとの対応関係の例を
図2に示す。
図2において、ツリータイプは、SINGLE_TREE、DUAL_TREE_LUMA、DUAL_TREE_CHROMAの3種類がある。また、transform_skip_flag[0]は、輝度(Y)成分の変換スキップフラグを示す。transform_skip_flag[1]は、色差(Cb)成分の変換スキップフラグを示す。transform_skip_flag[2]は、色差(Cr)成分の変換スキップフラグを示す。
図2に示される表の各変換スキップフラグの列の「0」および「1」は、その変換スキップフラグの値を示す。この例では、値「1」は真を示し、値「0」は偽を示す。なお、各ツリータイプの有効でないコンポーネント(Y,Cb,Cr)の変換スキップフラグはシグナリングされない。
図2においては、そのような有効でないコンポーネントの変換スキップフラグの値が「-」で示されている。
【0027】
この例においては、transform_skip_flag[0]の値が「0」である場合、または、ツリータイプがDUAL_TREE_CHROMAの場合、LFNST識別子がシグナリングされ得る(possible)。それ以外の場合、LFNST識別子のシグナリングはスキップ(省略)される。この場合、デコーダにおいては、LFNST識別子の値が「0」であると推定される(Infer to 0)。
【0028】
しかしながら、
図2の表の最下行に示されるように、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真(例えば1)である場合にも、そのLFNST識別子がシグナリングされた。上述のように、変換スキップフラグが真の場合、係数変換(逆係数変換)がスキップされるため、セカンダリ変換(逆セカンダリ変換)もスキップされる。ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)の場合、有効なコンポーネントは、CbとCrであるので、これらの成分の変換スキップフラグが真であるならば、セカンダリ変換(逆セカンダリ変換)は必ずスキップされる。したがって、LFNST識別子のシグナリングは冗長となるおそれがあった。つまり、符号化効率が不要に低減するおそれがあった。
【0029】
<方法1>
そこで、有効なコンポーネントにおいて、少なくとも1つのコンポーネントの変換スキップフラグが真の場合、LFNST識別子のシグナリングがスキップされるようにする(方法1)。
【0030】
例えば、画像処理方法において、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化するようにする。
【0031】
例えば、画像処理装置において、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化する符号化部を備えるようにする。
【0032】
例えば、画像処理方法において、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成するようにする。
【0033】
例えば、画像処理装置において、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成する復号部を備えるようにする。
【0034】
なお、セカンダリ変換制御情報に関する復号とは、セカンダリ変換制御情報が符号化されて生成されたビットストリーム(符号化データとも称する)を復号して、そのセカンダリ変換制御情報を生成することである。また、セカンダリ変換のスキップを示す所定の値は、任意である。例えば、「0」であってもよい。
【0035】
なお、セカンダリ変換制御情報は、セカンダリ変換に関する制御情報であればどのような情報であってもよいが、例えば、セカンダリ変換(および逆セカンダリ変換)のタイプを示す識別子であるセカンダリ変換識別子を含んでもよい。
【0036】
また、セカンダリ変換は、どのような係数変換であってもよいが、例えば、LFNST(Low Frequency Non-Separable Transform)であってもよい。その場合、逆セカンダリ変換は、LFNSTの逆処理であってもよい。また、この場合、セカンダリ変換識別子は、LFNST識別子(lfnst_idx)である。そして、セカンダリ変換のスキップを示す所定の値は「0」であってもよい(lfnst_idx == 0)。
【0037】
この方法1を適用する場合の、ツリータイプと変換スキップフラグの組み合わせとLFNST識別子のシグナリングとの対応関係の例を
図3に示す。
図3は、
図2の表に対応する表である。セカンダリ変換は、LFNSTであり、セカンダリ変換情報としてLFNST識別子がシグナリングされる。また、セカンダリ変換のスキップを示す所定の値は「0」であるとする(lfnst_idx == 0)。
【0038】
図2の場合と同様に、ツリータイプは、SINGLE_TREE、DUAL_TREE_LUMA、DUAL_TREE_CHROMAの3種類がある。また、transform_skip_flag[0]は、輝度(Y)成分の変換スキップフラグを示す。transform_skip_flag[1]は、色差(Cb)成分の変換スキップフラグを示す。transform_skip_flag[2]は、色差(Cr)成分の変換スキップフラグを示す。各変換スキップフラグの列の「0」および「1」は、その変換スキップフラグの値を示す。この例では、値「1」は真を示し、値「0」は偽を示す。なお、各ツリータイプの有効でないコンポーネント(Y,Cb,Cr)の変換スキップフラグ(「-」で示される変換スキップフラグ)はシグナリングされない。
【0039】
この例においては、ツリータイプに関わらず、有効なコンポーネントの内の全てのコンポーネントの変換スキップフラグが偽(値「0」)の場合のみ、LFNST識別子がシグナリングされ得る(possible)。有効なコンポーネントの内の少なくとも1つのコンポーネントの変換スキップフラグが真(値「1」)の場合、LFNST識別子のシグナリングはスキップ(省略)される。その場合、復号側(デコーダ)においては、LFNST識別子の値が「0」(つまり、セカンダリ変換のスキップを示す値)であると推定される(Infer to 0)。
【0040】
このようにすることにより、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる(
図3の表の最下行)。そして、このようにLFNST識別子のシグナリングがスキップされても、デコーダは、そのLFNST識別子に基づいて逆セカンダリ変換をスキップすることができる。つまり、デコーダは、シグナリングされた変換スキップフラグと矛盾しない値のLFNST識別子を得ることができ、正しく画像復号を行うことができる。換言するに、エンコーダは、デコーダにおける逆セカンダリ変換を正しく制御することができる。
【0041】
すなわち、上述の方法1を適用することにより、LFNST識別子のシグナリングの冗長性を抑制することができ、符号化効率の低減を抑制することができる。
【0042】
例えば、画像符号化のツリータイプがシングルツリー(SINGLE_TREE)の場合、Y、Cb、およびCrが有効なコンポーネントである。したがって、この場合、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内、少なくとも1つが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。なお、Y成分変換スキップフラグとは、Y成分の変換スキップフラグ(transform_skip_flag[0])のことである。Cb成分変換スキップフラグとは、Cb成分の変換スキップフラグ(transform_skip_flag[1])のことである。Cr成分変換スキップフラグとは、Cr成分の変換スキップフラグ(transform_skip_flag[2])のことである。
【0043】
これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0044】
また、例えば、画像復号のツリータイプがシングルツリーの場合、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内、少なくとも1つが真であれば、セカンダリ変換制御情報に関する復号がスキップされる。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0045】
なお、
図2の例の場合、ツリータイプがシングルツリーであり、かつ、Y成分変換スキップフラグが偽(transform_skip_flag[0] == 0)の場合、LFNST識別子(lfnst_idx)がシグナリングされた。
【0046】
これに対して、
図3の例の場合、ツリータイプがシングルツリーであり、かつ、Y成分変換スキップフラグが偽の場合、さらに、Cb成分変換スキップフラグとCr成分変換スキップフラグも偽でなければ(transform_skip_flag[1] == 0 && transform_skip_flag[2] == 0)、LFNST識別子(lfnst_idx)のシグナリングはスキップされる。したがって、デコーダにおいて、バッファの容量増大を抑制することができる。また、復号処理の遅延の増大を抑制することができる。
【0047】
例えば、画像符号化のツリータイプがデュアルツリールマ(DUAL_TREE_LUMA)の場合、輝度Yが有効なコンポーネントである。したがって、この場合、Y成分変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0048】
また、例えば、画像復号のツリータイプがデュアルツリールマの場合、Y成分変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号がスキップされる。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0049】
例えば、画像符号化のツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)の場合、色差CbとCrが有効なコンポーネントである。したがってこの場合、Cb成分変換スキップフラグおよびCr成分変換スキップフラグの内、少なくとも1つが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Cb成分変換スキップフラグおよびCr成分変換スキップフラグが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0050】
また、例えば、画像復号のツリータイプがデュアルツリークロマの場合、Cb成分変換スキップフラグおよびCr成分変換スキップフラグの内、少なくとも1つが真であれば、セカンダリ変換制御情報に関する復号が省略される。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Cb成分変換スキップフラグおよびCr成分変換スキップフラグが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0051】
非特許文献1に記載のVVCにこの方法1を適用する場合の、LFNST識別子に関するシンタックステーブルの例を
図4に示す。この場合、エンコーダ(またはデコーダ)は、ツリータイプ毎に、有効なコンポーネントについて変数nonTsUsedを
図4の最上段に示されるように設定される。この変数nonTsUsedは、変換スキップが適用されていないか否かを示す変数である。この値が真(例えば「1」)の場合、変換スキップが適用されていないことを示す。この値が偽(例えば「0」)の場合、変換スキップが適用されたことを示す。
【0052】
例えば、ツリータイプがデュアルツリールマの場合、Y成分変換スキップフラグが偽であれば(treeType == DUAL_TREE_LUMA && transform_skip_flag[x0][y0][0] == 0)、変数nonTsUsedは真に設定される(nonTsUsed == 1)。これに対して、Y成分変換スキップフラグが真であれば、変数nonTsUsedは偽に設定される(nonTsUsed == 0)。
【0053】
また、ツリータイプがデュアルツリークロマの場合、Cb成分変換スキップフラグおよびCr成分変換スキップフラグが偽であれば(treeType == DUAL_TREE_CHROMA && transform_skip_flag[x0][y0][1] == 0 && transform_skip_flag[x0][y0][2] == 0)、変数nonTsUsedは真に設定される(nonTsUsed == 1)。これに対して、Cb成分変換スキップフラグまたはCr成分変換スキップフラグが真であれば、変数nonTsUsedは偽に設定される(nonTsUsed == 0)。
【0054】
さらに、ツリータイプがシングルツリーの場合、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが偽であれば(treeType == SINGLE_TREE && transform_skip_flag[x0][y0][0] == 0 && transform_skip_flag[x0][y0][1] == 0 && transform_skip_flag[x0][y0][2] == 0)、変数nonTsUsedは真に設定される(nonTsUsed == 1)。これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内の少なくとも1つが真であれば、変数nonTsUsedは偽に設定される(nonTsUsed == 0)。
【0055】
そして、その変数nonTsUsedを条件の1つとして用いて、LFNST識別子(lfnst_idx)をシグナリングするか否かが制御される。例えば、この変数nonTsUsedが真であり(nonTsUsed == 1)、その他の条件を満たす場合、エンコーダは、LFNST識別子(lfnst_idx)を符号化する。またデコーダは、そのLFNST識別子(lfnst_idx)に関する復号を行う。
【0056】
また、この変数nonTsUsedが偽である場合(nonTsUsed == 0)、エンコーダは、LFNST識別子(lfnst_idx)の符号化をスキップする。またデコーダは、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子(lfnst_idx)の値が「0」であると推定する。
【0057】
図5は、
図4のシンタックステーブルと等価の、LFNST識別子の符号化条件(復号条件)conditionを示す図である。例えば、エンコーダは、ツリータイプ毎に、変数NonTsUsed(
図5の上側)を設定する。そして、エンコーダは、その変数NonTsUsedを条件の1つとして用い、LFNST識別子の符号化条件condition(
図5の下側)を設定する。そして、エンコーダは、その符号化条件conditionが真の場合、LFNST識別子(lfnst_idx)をシグナリングする。符号化条件conditionが偽の場合、エンコーダは、LFNST識別子(lfnst_idx)のシグナリングをスキップする。
【0058】
例えば、デコーダは、ツリータイプ毎に、変数NonTsUsed(
図5の上側)を設定する。そして、デコーダは、その変数NonTsUsedを条件の1つとして用い、LFNST識別子の復号条件condition(
図5の下側)を設定する。そして、デコーダは、その復号条件conditionが真の場合、ビットストリームを復号し、シグナリングされたLFNST識別子(lfnst_idx)を得る。復号条件conditionが偽の場合、デコーダは、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子(lfnst_idx)の値が「0」であると推定する。
【0059】
このようにすることにより、非特許文献1に記載のVVCにおいて、符号化効率の低減を抑制することができる。
【0060】
なお、
図6に示されるシンタックステーブルのように、条件式に否定表現を用いてもよい。
図6に示されるシンタックステーブルは、
図4に示されるシンタックステーブルに対応するが、
図4の変数nonTsUsedの代わりに、変数TsUsedを用いている。変数TsUsedは、変換スキップが適用されたか否かを示す変数であり、この値が真(例えば「1」)の場合、変換スキップが適用されたことを示す。この値が偽(例えば「0」)の場合、変換スキップが適用されていないことを示す。
【0061】
例えば、変数TsUsedは、
図6の最上段に示されるように設定される。すなわち、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内の少なくとも1つが真であれば(transform_skip_flag[x0][y0][0] == 1 || transform_skip_flag[x0][y0][1] == 1 || transform_skip_flag[x0][y0][2] == 1)、変数TsUsedは真に設定される(TsUsed == 1)。これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが偽であれば、変数TsUsedは偽に設定される(TsUsed == 0)。
【0062】
そして、その変数TsUsedを条件の1つとして用いて、LFNST識別子(lfnst_idx)をシグナリングするか否かが制御される。例えば、この変数TsUsedが偽であり(TsUsed == 0)、その他の条件を満たす場合、エンコーダは、LFNST識別子(lfnst_idx)を符号化し、デコーダは、そのLFNST識別子(lfnst_idx)に関する復号を行う。
【0063】
また、この変数TsUsedが真である場合(TsUsed == 1)、エンコーダは、LFNST識別子(lfnst_idx)の符号化をスキップする。そしてデコーダは、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子(lfnst_idx)の値が「0」であると推定する。
【0064】
図7は、
図6のシンタックステーブルと等価の、LFNST識別子の符号化条件(復号条件)conditionを示す図である。例えば、エンコーダは、変数TsUsed(
図7の上側)を設定する。そして、エンコーダは、その変数TsUsedを条件の1つとして用い、LFNST識別子の符号化条件condition(
図7の下側)を設定する。そして、エンコーダは、その符号化条件conditionが真の場合、LFNST識別子(lfnst_idx)をシグナリングする。符号化条件conditionが偽の場合、エンコーダは、LFNST識別子(lfnst_idx)のシグナリングをスキップする。
【0065】
例えば、デコーダは、変数TsUsed(
図7の上側)を設定する。そして、デコーダは、その変数TsUsedを条件の1つとして用い、LFNST識別子の復号条件condition(
図7の下側)を設定する。そして、デコーダは、その復号条件conditionが真の場合、ビットストリームを復号し、シグナリングされたLFNST識別子(lfnst_idx)を得る。復号条件conditionが偽の場合、デコーダは、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子(lfnst_idx)の値が「0」であると推定する。
【0066】
このようにすることにより、非特許文献1に記載のVVCにおいて、符号化効率の低減を抑制することができる。
【0067】
<方法2>
例えば、有効なコンポーネントにおいて、全てのコンポーネントの変換スキップフラグが真の場合、LFNST識別子のシグナリングがスキップされるようにしてもよい(方法2)。
【0068】
例えば、画像符号化における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0069】
また例えば、画像復号における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成してもよい。
【0070】
方法2においても、方法1の場合と同様に、セカンダリ変換制御情報に関する復号とは、セカンダリ変換制御情報が符号化されて生成されたビットストリームを復号して、そのセカンダリ変換制御情報を生成することを示す。また、セカンダリ変換のスキップを示す所定の値は、任意である。
【0071】
さらに、セカンダリ変換制御情報は、セカンダリ変換に関する制御情報であればどのような情報であってもよい。例えば、セカンダリ変換(および逆セカンダリ変換)のタイプを示す識別子であるセカンダリ変換識別子を含んでもよい。
【0072】
また、セカンダリ変換は、どのような係数変換であってもよい。例えば、LFNSTであってもよい。その場合、逆セカンダリ変換は、LFNSTの逆処理であってもよい。また、この場合、セカンダリ変換識別子は、LFNST識別子(lfnst_idx)である。そして、セカンダリ変換のスキップを示す所定の値は「0」であってもよい(lfnst_idx == 0)。
【0073】
この方法2を適用する場合の、ツリータイプと変換スキップフラグの組み合わせとLFNST識別子のシグナリングとの対応関係の例を
図8に示す。
図8は、
図2の表に対応する表である。セカンダリ変換は、LFNSTであり、セカンダリ変換情報としてLFNST識別子がシグナリングされる。また、セカンダリ変換のスキップを示す所定の値は「0」であるとする(lfnst_idx == 0)。
【0074】
図2の場合と同様に、ツリータイプは、SINGLE_TREE、DUAL_TREE_LUMA、DUAL_TREE_CHROMAの3種類がある。また、transform_skip_flag[0]は、Y成分変換スキップフラグを示す。transform_skip_flag[1]は、Cb成分変換スキップフラグを示す。transform_skip_flag[2]は、Cr成分変換スキップフラグを示す。各変換スキップフラグの列の「0」および「1」は、その変換スキップフラグの値を示す。この例では、値「1」は真を示し、値「0」は偽を示す。なお、各ツリータイプの有効でないコンポーネント(Y,Cb,Cr)の変換スキップフラグ(「-」で示される変換スキップフラグ)はシグナリングされない。
【0075】
この例においては、ツリータイプに関わらず、有効なコンポーネントの内の少なくとも1つのコンポーネントの変換スキップフラグが偽(値「0」)の場合、LFNST識別子がシグナリングされ得る(possible)。有効なコンポーネントの内の全てのコンポーネントの変換スキップフラグが真(値「1」)の場合のみ、LFNST識別子のシグナリングはスキップ(省略)される。その場合、復号側(デコーダ)においては、LFNST識別子の値が「0」(つまり、セカンダリ変換のスキップを示す値)であると推定される(Infer to 0)。
【0076】
このようにすることにより、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる(
図8の表の最下行)。そして、このようにLFNST識別子のシグナリングがスキップされても、デコーダは、そのLFNST識別子に基づいて逆セカンダリ変換をスキップすることができる。つまり、デコーダは、シグナリングされた変換スキップフラグと矛盾しない値のLFNST識別子を得ることができ、正しく画像復号を行うことができる。換言するに、エンコーダは、デコーダにおける逆セカンダリ変換を正しく制御することができる。
【0077】
すなわち、上述の方法2を適用することにより、LFNST識別子のシグナリングの冗長性を抑制することができ、符号化効率の低減を抑制することができる。
【0078】
例えば、画像符号化のツリータイプがシングルツリー(SINGLE_TREE)の場合、Y、Cb、およびCrが有効なコンポーネントである。したがって、この場合、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内、少なくとも1つが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0079】
また、例えば、画像復号のツリータイプがシングルツリーの場合、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号がスキップされる。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内、少なくとも1つが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0080】
なお、
図2の例の場合、画像復号のツリータイプがシングルツリーであって、Y成分変換スキップフラグが真(transform_skip_flag[0] == 1)であるとき、LFNST識別子(lfnst_idx)のシグナリングがスキップされた。したがって、このときCb成分変換スキップフラグやCr成分変換スキップフラグが偽(transform_skip_flag[1] == 0 || transform_skip_flag[2] == 0)であっても、Cb成分やCr成分に対してセカンダリ変換(LFNST)を適用することができなかった。そのため、Cb成分やCr成分の符号化効率が低減するおそれがあった。
【0081】
これに対して
図8の例の場合、上述のように、Y成分変換スキップフラグ、Cb成分変換スキップフラグ、およびCr成分変換スキップフラグの内の少なくとも1つが偽であれば、LFNST識別子がシグナリングされ得る。つまり、画像復号のツリータイプがシングルツリーであって、Y成分変換スキップフラグが真(transform_skip_flag[0] == 1)であるときも、Cb成分変換スキップフラグやCr成分変換スキップフラグが偽(transform_skip_flag[1] == 0 || transform_skip_flag[2] == 0)であれば、Cb成分やCr成分に対してセカンダリ変換(LFNST)を適用することができる。そのため、Cb成分やCr成分の符号化効率の低減を抑制することができる。
【0082】
例えば、画像符号化のツリータイプがデュアルツリールマ(DUAL_TREE_LUMA)の場合、輝度Yが有効なコンポーネントである。したがって、この場合、Y成分変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0083】
また、例えば、画像復号のツリータイプがデュアルツリールマの場合、Y成分変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号がスキップされる。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Y成分変換スキップフラグが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0084】
例えば、画像符号化のツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)の場合、色差CbとCrが有効なコンポーネントである。したがってこの場合、Cb成分変換スキップフラグおよびCr成分変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化がスキップされる。つまり、この場合、LFNST識別子(lfnst_idx)のシグナリングがスキップされる。そして、デコーダにおいては、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Cb成分変換スキップフラグおよびCr成分変換スキップフラグの内の少なくとも1つが偽であれば、セカンダリ変換制御情報が符号化され得る(possible)。つまり、LFNST識別子(lfnst_idx)がシグナリングされる。
【0085】
また、例えば、画像復号のツリータイプがデュアルツリークロマの場合、Cb成分変換スキップフラグおよびCr成分変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号が省略される。そして、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定される。つまり、この場合、LFNST識別子(lfnst_idx)に関する復号がスキップされる。そして、LFNST識別子の値が「0」と推定される(Infer to 0)。これに対して、Cb成分変換スキップフラグおよびCr成分変換スキップフラグの内の少なくとも1つが偽であれば、ビットストリームが復号されてセカンダリ変換制御情報が生成される。つまり、シグナリングされたLFNST識別子(lfnst_idx)が得られる。
【0086】
<方法3>
例えば、ツリータイプがシングルツリーの場合と、デュアルツリールマの場合は、非特許文献1に記載の方法と同様の方法でLFNST識別子のシグナリングが制御され、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)の場合のみ、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真のとき、LFNST識別子のシグナリングがスキップされるようにしてもよい(方法3)。
【0087】
例えば、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化をスキップし、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0088】
また例えば、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号をスキップし、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成してもよい。
【0089】
方法3においても、方法1の場合と同様に、セカンダリ変換制御情報に関する復号とは、セカンダリ変換制御情報が符号化されて生成されたビットストリームを復号して、そのセカンダリ変換制御情報を生成することを示す。また、セカンダリ変換のスキップを示す所定の値は、任意である。
【0090】
さらに、セカンダリ変換制御情報は、セカンダリ変換に関する制御情報であればどのような情報であってもよい。例えば、セカンダリ変換(および逆セカンダリ変換)のタイプを示す識別子であるセカンダリ変換識別子を含んでもよい。
【0091】
また、セカンダリ変換は、どのような係数変換であってもよい。例えば、LFNSTであってもよい。その場合、逆セカンダリ変換は、LFNSTの逆処理であってもよい。また、この場合、セカンダリ変換識別子は、LFNST識別子(lfnst_idx)である。そして、セカンダリ変換のスキップを示す所定の値は「0」であってもよい(lfnst_idx == 0)。
【0092】
この方法3を適用する場合の、ツリータイプと変換スキップフラグの組み合わせとLFNST識別子のシグナリングとの対応関係の例を
図9に示す。
図9は、
図2の表に対応する表である。セカンダリ変換は、LFNSTであり、セカンダリ変換情報としてLFNST識別子がシグナリングされる。また、セカンダリ変換のスキップを示す所定の値は「0」であるとする(lfnst_idx == 0)。
【0093】
図2の場合と同様に、ツリータイプは、SINGLE_TREE、DUAL_TREE_LUMA、DUAL_TREE_CHROMAの3種類がある。また、transform_skip_flag[0]は、Y成分変換スキップフラグを示す。transform_skip_flag[1]は、Cb成分変換スキップフラグを示す。transform_skip_flag[2]は、Cr成分変換スキップフラグを示す。各変換スキップフラグの列の「0」および「1」は、その変換スキップフラグの値を示す。この例では、値「1」は真を示し、値「0」は偽を示す。なお、各ツリータイプの有効でないコンポーネント(Y,Cb,Cr)の変換スキップフラグ(「-」で示される変換スキップフラグ)はシグナリングされない。
【0094】
この例においては、ツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、LFNST識別子がシグナリングされ得る(possible)。これに対して、全てのコンポーネントの変換スキップフラグが真(値「1」)であれば、LFNST識別子の符号化がスキップ(省略)される。その場合、復号側(デコーダ)においては、LFNST識別子の値が「0」(つまり、セカンダリ変換のスキップを示す値)であると推定される(Infer to 0)。
【0095】
なお、ツリータイプがシングルツリーの場合とデュアルツリールマの場合は、非特許文献1に記載の方法と同様の方法でLFNST識別子のシグナリングが制御される。つまり、LFNST識別子のシグナリングが
図2の表の場合と同様に制御される。
【0096】
このようにすることにより、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる(
図9の表の最下行)。そして、このようにLFNST識別子のシグナリングがスキップされても、デコーダは、そのLFNST識別子に基づいて逆セカンダリ変換をスキップすることができる。つまり、デコーダは、シグナリングされた変換スキップフラグと矛盾しない値のLFNST識別子を得ることができ、正しく画像復号を行うことができる。換言するに、エンコーダは、デコーダにおける逆セカンダリ変換を正しく制御することができる。
【0097】
すなわち、上述の方法3を適用することにより、LFNST識別子のシグナリングの冗長性を抑制することができ、符号化効率の低減を抑制することができる。
【0098】
<方法4>
例えば、ツリータイプがシングルツリーの場合と、デュアルツリールマの場合は、非特許文献1に記載の方法と同様の方法でLFNST識別子のシグナリングが制御され、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)の場合のみ、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真のとき、LFNST識別子のシグナリングがスキップされるようにしてもよい(方法4)。
【0099】
例えば、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化をスキップし、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0100】
また例えば、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号をスキップし、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成してもよい。
【0101】
方法4においても、方法1の場合と同様に、セカンダリ変換制御情報に関する復号とは、セカンダリ変換制御情報が符号化されて生成されたビットストリームを復号して、そのセカンダリ変換制御情報を生成することを示す。また、セカンダリ変換のスキップを示す所定の値は、任意である。
【0102】
さらに、セカンダリ変換制御情報は、セカンダリ変換に関する制御情報であればどのような情報であってもよい。例えば、セカンダリ変換(および逆セカンダリ変換)のタイプを示す識別子であるセカンダリ変換識別子を含んでもよい。
【0103】
また、セカンダリ変換は、どのような係数変換であってもよい。例えば、LFNSTであってもよい。その場合、逆セカンダリ変換は、LFNSTの逆処理であってもよい。また、この場合、セカンダリ変換識別子は、LFNST識別子(lfnst_idx)である。そして、セカンダリ変換のスキップを示す所定の値は「0」であってもよい(lfnst_idx == 0)。
【0104】
この方法4を適用する場合の、ツリータイプと変換スキップフラグの組み合わせとLFNST識別子のシグナリングとの対応関係の例を
図10に示す。
図10は、
図2の表に対応する表である。セカンダリ変換は、LFNSTであり、セカンダリ変換情報としてLFNST識別子がシグナリングされる。また、セカンダリ変換のスキップを示す所定の値は「0」であるとする(lfnst_idx == 0)。
【0105】
図2の場合と同様に、ツリータイプは、SINGLE_TREE、DUAL_TREE_LUMA、DUAL_TREE_CHROMAの3種類がある。また、transform_skip_flag[0]は、Y成分変換スキップフラグを示す。transform_skip_flag[1]は、Cb成分変換スキップフラグを示す。transform_skip_flag[2]は、Cr成分変換スキップフラグを示す。各変換スキップフラグの列の「0」および「1」は、その変換スキップフラグの値を示す。この例では、値「1」は真を示し、値「0」は偽を示す。なお、各ツリータイプの有効でないコンポーネント(Y,Cb,Cr)の変換スキップフラグ(「-」で示される変換スキップフラグ)はシグナリングされない。
【0106】
この例においては、ツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが偽であれば、LFNST識別子がシグナリングされ得る(possible)。これに対して、少なくとも1つのコンポーネントの変換スキップフラグが真(値「1」)であれば、LFNST識別子の符号化がスキップ(省略)される。その場合、復号側(デコーダ)においては、LFNST識別子の値が「0」(つまり、セカンダリ変換のスキップを示す値)であると推定される(Infer to 0)。
【0107】
なお、方法3の場合と同様に、ツリータイプがシングルツリーの場合とデュアルツリールマの場合は、非特許文献1に記載の方法と同様の方法でLFNST識別子のシグナリングが制御される。つまり、LFNST識別子のシグナリングが
図2の表の場合と同様に制御される。
【0108】
このようにすることにより、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる(
図10の表の最下行)。そして、このようにLFNST識別子のシグナリングがスキップされても、デコーダは、そのLFNST識別子に基づいて逆セカンダリ変換をスキップすることができる。つまり、デコーダは、シグナリングされた変換スキップフラグと矛盾しない値のLFNST識別子を得ることができ、正しく画像復号を行うことができる。換言するに、エンコーダは、デコーダにおける逆セカンダリ変換を正しく制御することができる。
【0109】
すなわち、上述の方法4を適用することにより、LFNST識別子のシグナリングの冗長性を抑制することができ、符号化効率の低減を抑制することができる。
【0110】
<組み合わせ>
上述した方法1乃至方法4は、それらの一部または全部を適宜組み合わせて適用することができる。
【0111】
<2.第1の実施の形態>
<符号化装置>
<1.LFNST識別子のシグナリングパタン>において説明した本技術(方法1乃至方法4)は、いずれも任意の装置において適用することができる。以下において本技術の適用例について説明する。
図11は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。
図11に示される符号化装置100は、LFNST識別子(lfnst_idx)を符号化する装置である。符号化装置100は、例えば、CABAC(Context-based Adaptive Binary Arithmetic Code)を適用して符号化を行う。
【0112】
なお、
図11においては、処理部やデータの流れ等の主なものを示しており、
図11に示されるものが全てとは限らない。つまり、符号化装置100において、
図11においてブロックとして示されていない処理部が存在したり、
図11において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0113】
図11に示されるように、符号化装置100は、LFNST識別子符号化部101を有する。
【0114】
LFNST識別子符号化部101は、LFNST識別子の符号化に関する処理を行う。例えば、LFNST識別子符号化部101は、外部より、LFNST識別子(lfnst_idx)を取得する。LFNST識別子符号化部101は、取得したLFNST識別子を符号化し、ビットストリームを生成する。LFNST識別子符号化部101は、生成したビットストリームを符号化装置100の外部に出力する。このビットストリームは、例えば、通信媒体等を介して復号側(デコーダ)に伝送されたり、記憶媒体に記憶されたりする。
【0115】
また、LFNST識別子符号化部101は、LFNST識別子の符号化に利用する各種パラメータを取得する。例えば、LFNST識別子符号化部101は、treeType、transform_skip_flag[0]、transform_skip_flag[1]、transform_skip_flag[2]、lfnstWidth、lfnstHeight、sps_lfnst_enabled_flag、intra_mip_flag、cbWidth、cbHeight、IntraSubPartitionSplitType、LfnstDcOnly、LfnstZeroOutSigCoefFlag等のパラメータを取得する。これらのパラメータは、上述の非特許文献(例えば非特許文献1)に記載のパラメータである。
【0116】
そして、LFNST識別子符号化部101は、これらのパラメータを用いて、<1.LFNST識別子のシグナリングパタン>において説明したように、LFNST識別子(lfnst_idx)の符号化(シグナリング)の制御を行う。
【0117】
例えば、LFNST識別子符号化部101は、上述の方法1を適用して、このLFNST識別子の符号化の制御を行う。つまり、LFNST識別子符号化部101は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化する。
【0118】
例えば、LFNST識別子符号化部101は、
図4に示されるシンタックステーブルに従って、LFNST識別子の符号化を制御する。なお、LFNST識別子符号化部101が、
図6に示されるシンタックステーブルに従って、LFNST識別子の符号化を制御するようにしてもよい。これらのシンタックステーブルに従うことにより、LFNST識別子符号化部101は、
図3に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0119】
なお、LFNST識別子符号化部101は、上述の方法2を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、LFNST識別子符号化部101が、画像符号化における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0120】
このようにすることにより、LFNST識別子符号化部101は、
図8に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0121】
また、LFNST識別子符号化部101は、上述の方法3を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、LFNST識別子符号化部101が、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0122】
このようにすることにより、LFNST識別子符号化部101は、
図9に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0123】
また、LFNST識別子符号化部101は、上述の方法4を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、LFNST識別子符号化部101が、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0124】
このようにすることにより、LFNST識別子符号化部101は、
図10に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0125】
方法1乃至方法4の内のいずれの方法を適用する場合も、LFNST識別子符号化部101は、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる。したがって、符号化装置100は、符号化効率の低減を抑制することができる。
【0126】
<符号化処理の流れ>
次に、この符号化装置100により実行される符号化処理の流れの例を、
図12のフローチャートを参照して説明する。
【0127】
符号化処理が開始されると、符号化装置100のLFNST識別子符号化部101は、ステップS101において、LFNST識別子の符号化条件conditionを導出する。例えば、<1.LFNST識別子のシグナリングパタン>において上述した方法1を適用する場合、LFNST識別子符号化部101は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化する。例えば、LFNST識別子符号化部101は、
図5に示される変数NonTsUsedを導出し、その導出した変数NonTsUsedを用いて、
図5に示される符号化条件conditionを導出する。
【0128】
なお、LFNST識別子符号化部101が、
図7に示される変数TsUsedを導出し、その導出した変数TsUsedを用いて、
図7に示される符号化条件conditionを導出してもよい。また、LFNST識別子符号化部101が、方法2乃至方法4の内のいずれかを適用し、符号化条件conditionを導出してもよい。
【0129】
ステップS102において、LFNST識別子符号化部101は、その符号化条件conditionを満たすか否かを判定する。つまり、LFNST識別子符号化部101は、ステップS101において導出した符号化条件conditionが真であるか否かを判定する。この符号化条件conditionが真であると判定された場合、処理はステップS103に進む。
【0130】
ステップS103において、LFNST識別子符号化部101は、LFNST識別子(lfnst_idx)を符号化し、ビットストリームを生成する。つまり、符号化条件conditionを満たす場合、LFNST識別子符号化部101は、LFNST識別子(lfnst_idx)を符号化し、ビットストリームを生成する。このビットストリームは、例えば、通信媒体を介してデコーダに供給される。また、このビットストリームは、記憶媒体に記憶されてもよい。ステップS103の処理が終了すると符号化処理が終了する。
【0131】
また、ステップS102において、ステップS101において導出した符号化条件conditionが偽であると判定された場合、処理はステップS104に進む。
【0132】
ステップS104において、LFNST識別子符号化部101は、LFNST識別子(lfnst_idx)の符号化をスキップ(省略)する。つまり、符号化条件conditionを満たさない場合、LFNST識別子符号化部101は、LFNST識別子(lfnst_idx)の符号化をスキップする。つまり、この場合、LFNST識別子のビットストリームは生成されない(すなわち、LFNST識別子がシグナリングされない)。ステップS104の処理が終了すると符号化処理が終了する。
【0133】
このように符号化処理を実行することにより、LFNST識別子符号化部101は、方法1乃至方法4の内のいずれの方法を適用する場合も、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真であるとき、そのLFNST識別子のシグナリングをスキップすることができる。したがって、符号化装置100は、符号化効率の低減を抑制することができる。
【0134】
<補足>
なお、符号化装置100(LFNST識別子符号化部101)は、LFNST識別子の例に限らず、任意のセカンダリ変換識別子(任意のセカンダリ変換制御情報)を符号化してもよい。つまり、セカンダリ変換は、LFNSTに限定されず、任意の係数変換であってもよい。また、上述した方法1乃至方法4は、それらの一部または全部を適宜組み合わせて適用することができる。
【0135】
<3.第2の実施の形態>
<復号装置>
図13は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。
図13に示される復号装置200は、LFNST識別子(lfnst_idx)のビットストリーム(符号化データ)を復号する装置である。復号装置200は、符号化装置100の符号化方式に対応する復号方式(例えばCABAC)を適用して復号を行う。例えば、復号装置200は、符号化装置100により生成されたビットストリームを復号する。
【0136】
なお、
図13においては、処理部やデータの流れ等の主なものを示しており、
図13に示されるものが全てとは限らない。つまり、復号装置200において、
図13においてブロックとして示されていない処理部が存在したり、
図13において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0137】
図13に示されるように、復号装置200は、LFNST識別子復号部201を有する。
【0138】
LFNST識別子復号部201は、LFNST識別子に関する復号に関する処理を行う。例えば、LFNST識別子復号部201は、外部より、ビットストリームを取得する。LFNST識別子復号部201は、取得したビットストリームを復号し、LFNST識別子(lfnst_idx)を生成する。LFNST識別子復号部201は、その生成したLFNST識別子を復号装置200の外部に出力する。このLFNST識別子は、例えば、通信媒体等を介して復号側(デコーダ)に伝送されたり、記憶媒体に記憶されたりする。
【0139】
また、LFNST識別子復号部201は、LFNST識別子に関する復号に利用する各種パラメータを取得する。例えば、LFNST識別子復号部201は、treeType、transform_skip_flag[0]、transform_skip_flag[1]、transform_skip_flag[2]、lfnstWidth、lfnstHeight、sps_lfnst_enabled_flag、intra_mip_flag、cbWidth、cbHeight、IntraSubPartitionSplitType、LfnstDcOnly、LfnstZeroOutSigCoefFlag等のパラメータを取得する。これらのパラメータは、上述の非特許文献(例えば非特許文献1)に記載のパラメータである。
【0140】
これらのパラメータは、エンコーダ(例えば符号化装置100)において符号化され、ビットストリームとして供給される(つまり、シグナリングされる)。復号装置200は、このビットストリームを取得し、復号することにより、これらのパラメータを生成する。なお、この復号は、LFNST識別子復号部201の外部の復号部(図示せず)において行われてもよいし、LFNST識別子復号部201が行ってもよい。
【0141】
そして、LFNST識別子復号部201は、これらのパラメータを用いて、<1.LFNST識別子のシグナリングパタン>において説明したように、LFNST識別子(lfnst_idx)の復号の制御を行う。
【0142】
例えば、LFNST識別子復号部201は、上述の方法1を適用して、このLFNST識別子に関する復号の制御を行う。つまり、LFNST識別子復号部201は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成する。
【0143】
例えば、LFNST識別子復号部201は、
図4に示されるシンタックステーブルに従って、LFNST識別子に関する復号を制御する。なお、LFNST識別子復号部201が、
図6に示されるシンタックステーブルに従って、LFNST識別子に関する復号を制御するようにしてもよい。これらのシンタックステーブルに従うことにより、LFNST識別子復号部201は、
図3に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0144】
なお、LFNST識別子復号部201は、上述の方法2を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、LFNST識別子復号部201が、画像復号における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、LFNST識別子復号部201が、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行ってもよい。
【0145】
このようにすることにより、LFNST識別子復号部201は、
図8に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0146】
また、LFNST識別子復号部201は、上述の方法3を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、LFNST識別子復号部201が、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号をスキップ(省略)し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、LFNST識別子復号部201が、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行ってもよい。
【0147】
このようにすることにより、LFNST識別子復号部201は、
図9に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0148】
また、LFNST識別子復号部201は、上述の方法4を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、LFNST識別子復号部201が、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行ってもよい。
【0149】
このようにすることにより、LFNST識別子復号部201は、
図10に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0150】
方法1乃至方法4の内のいずれの方法を適用する場合も、LFNST識別子復号部201は、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子に関する復号をスキップすることができる。したがって、復号装置200は、符号化効率の低減を抑制することができる。
【0151】
<復号処理の流れ>
次に、この復号装置200により実行される復号処理の流れの例を、
図14のフローチャートを参照して説明する。
【0152】
復号処理が開始されると、復号装置200のLFNST識別子復号部201は、ステップS201において、LFNST識別子の復号条件conditionを導出する。例えば、<1.LFNST識別子のシグナリングパタン>において上述した方法1を適用する場合、LFNST識別子復号部201は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行う。例えば、LFNST識別子復号部201は、
図5に示される変数NonTsUsedを導出し、その導出した変数NonTsUsedを用いて、
図5に示される復号条件conditionを導出する。
【0153】
なお、LFNST識別子復号部201が、
図7に示される変数TsUsedを導出し、その導出した変数TsUsedを用いて、
図7に示される復号条件conditionを導出してもよい。また、LFNST識別子復号部201が、方法2乃至方法4の内のいずれかを適用し、復号条件conditionを導出してもよい。
【0154】
ステップS202において、LFNST識別子復号部201は、その復号条件conditionを満たすか否かを判定する。つまり、LFNST識別子復号部201は、ステップS201において導出した復号条件conditionが真であるか否かを判定する。この復号条件conditionが真であると判定された場合、処理はステップS203に進む。
【0155】
ステップS203において、LFNST識別子復号部201は、ビットストリームを復号し、LFNST識別子(lfnst_idx)を生成する。つまり、復号条件conditionを満たす場合、LFNST識別子復号部201は、ビットストリームを復号し、LFNST識別子(lfnst_idx)を生成する。ステップS203の処理が終了すると復号処理が終了する。
【0156】
また、ステップS202において、ステップS201において導出した復号条件conditionが偽であると判定された場合、処理はステップS204に進む。
【0157】
ステップS204において、LFNST識別子復号部201は、LFNST識別子(lfnst_idx)に関する復号をスキップ(省略)する。つまり、復号条件conditionを満たさない場合、LFNST識別子復号部201は、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子の値が「0」であると推定する(lfnst_idx = 0)。ステップS204の処理が終了すると復号処理が終了する。
【0158】
このように復号処理を実行することにより、LFNST識別子復号部201は、方法1乃至方法4の内のいずれの方法を適用する場合も、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真であるとき、そのLFNST識別子に関する復号をスキップすることができる。したがって、復号装置200は、符号化効率の低減を抑制することができる。
【0159】
<補足>
なお、復号装置200(LFNST識別子復号部201)は、LFNST識別子の例に限らず、任意のセカンダリ変換識別子(任意のセカンダリ変換制御情報)に関する復号を行ってもよい。つまり、逆セカンダリ変換は、LFNSTの逆処理に限定されず、任意の逆係数変換であってもよい。また、上述した方法1乃至方法4は、それらの一部または全部を適宜組み合わせて適用することができる。
【0160】
<4.第3の実施の形態>
<画像符号化装置>
図15は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。
図15に示される画像符号化装置300は、動画像の画像データを符号化する装置である。例えば、画像符号化装置300は、上述の非特許文献のいずれかに記載の符号化方式で動画像の画像データを符号化することができる。
【0161】
なお、
図15においては、処理部(ブロック)やデータの流れ等の主なものを示しており、
図15に示されるものが全てとは限らない。つまり、画像符号化装置300において、
図15においてブロックとして示されていない処理部が存在したり、
図15において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0162】
図15に示されるように画像符号化装置300は、制御部301、並べ替えバッファ311、演算部312、直交変換部313、量子化部314、符号化部315、蓄積バッファ316、逆量子化部317、逆直交変換部318、演算部319、インループフィルタ部320、フレームメモリ321、予測部322、およびレート制御部323を有する。
【0163】
<制御部>
制御部301は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ311により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【0164】
これらの符号化パラメータの詳細については後述する。制御部301は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【0165】
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部315と予測部322とに供給される。
変換情報Tinfoは、符号化部315、直交変換部313、量子化部314、逆量子化部317、および逆直交変換部318に供給される。
フィルタ情報Finfoは、インループフィルタ部320に供給される。
【0166】
<並べ替えバッファ>
画像符号化装置300には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ311は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ311は、制御部301の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ311は、処理後の各入力画像を演算部312に供給する。また、並べ替えバッファ311は、その各入力画像(元画像)を、予測部322やインループフィルタ部320にも供給する。
【0167】
<演算部>
演算部312は、処理単位のブロックに対応する画像I、および予測部322より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部313に供給する。
【0168】
D = I - P
【0169】
<直交変換部>
直交変換部313は、係数変換に関する処理を行う。例えば、直交変換部313は、演算部312から供給される予測残差Dを取得する。また、直交変換部313は、制御部301から供給される変換情報Tinfoを取得する。
【0170】
直交変換部313は、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。例えば、直交変換部313は、予測残差Dに対してプライマリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してセカンダリ変換を行ってセカンダリ変換係数を生成する。直交変換部313は、その得られたセカンダリ変換係数を変換係数Coeffとして量子化部314に供給する。
【0171】
なお、直交変換は、係数変換の一例であり、この例に限定されない。つまり、直交変換部313は、予測残差Dに対して任意の係数変換を行うことができる。付言するに、直交変換部313は、プライマリ変換およびセカンダリ変換として、それぞれ、任意の係数変換を行うことができる。
【0172】
<量子化部>
量子化部314は、量子化に関する処理を行う。例えば、量子化部314は、直交変換部313から供給される変換係数Coeffを取得する。また、量子化部314は、制御部301から供給される変換情報Tinfoを取得する。さらに、量子化部314は、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化の方法は任意である。また、この量子化のレートは、レート制御部323により制御される。量子化部314は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部315および逆量子化部317に供給する。
【0173】
<符号化部>
符号化部315は、符号化に関する処理を行う。例えば、符号化部315は、量子化部314から供給された量子化変換係数レベルlevelを取得する。また、符号化部315は、制御部301から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を取得する。さらに、符号化部315は、インループフィルタ部320から供給されるフィルタ係数等のフィルタに関する情報を取得する。また、符号化部315は、予測部322から供給される最適な予測モードに関する情報を取得する。
【0174】
符号化部315は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。また、符号化部315は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【0175】
符号化部315は、インループフィルタ部320から供給されるフィルタに関する情報をフィルタ情報Finfoに含める。また、符号化部315は、予測部322から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部315は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
【0176】
符号化部315は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部315は、その符号化データを蓄積バッファ316に供給する。
【0177】
<蓄積バッファ>
蓄積バッファ316は、符号化部315において得られた符号化データを、一時的に保持する。蓄積バッファ316は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置300の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ316は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
【0178】
<逆量子化部>
逆量子化部317は、逆量子化に関する処理を行う。例えば、逆量子化部317は、量子化部314から供給される量子化変換係数レベルlevelを取得する。また、逆量子化部317は、制御部301から供給される変換情報Tinfoを取得する。
【0179】
逆量子化部317は、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部314において行われる量子化の逆処理である。逆量子化部317は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部318に供給する。
【0180】
<逆直交変換部>
逆直交変換部318は、逆係数変換に関する処理を行う。例えば、逆直交変換部318は、逆量子化部317から供給される変換係数Coeff_IQを取得する。また、逆直交変換部318は、制御部301から供給される変換情報Tinfoを取得する。
【0181】
逆直交変換部318は、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部313において行われる直交変換の逆処理である。例えば、逆直交変換部318は、変換係数Coeff_IQ(セカンダリ変換係数)に対して逆セカンダリ変換を行ってプライマリ変換係数を生成する。また、逆直交変換部318は、そのプライマリ変換係数に対して逆プライマリ変換を行って予測残差D'を生成する。なお、逆セカンダリ変換は、直交変換部313において行われるセカンダリ変換の逆処理である。また、逆プライマリ変換は、直交変換部313において行われるプライマリ変換の逆処理である。
【0182】
逆直交変換部318は、このような逆直交変換により得られた予測残差D'を演算部319に供給する。なお、逆直交変換部318は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部318については、復号側について行う説明(後述する)を適用することができる。
【0183】
<演算部>
演算部319は、逆直交変換部318から供給される予測残差D'と、予測部322から供給される予測画像Pとを入力とする。演算部319は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部319は、導出した局所復号画像Rlocalをインループフィルタ部320およびフレームメモリ321に供給する。
【0184】
<インループフィルタ部>
インループフィルタ部320は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部320は、演算部319から供給される局所復号画像Rlocalと、制御部301から供給されるフィルタ情報Finfoと、並べ替えバッファ311から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部320に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部320に入力されるようにしてもよい。
【0185】
インループフィルタ部320は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部320は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
【0186】
例えば、インループフィルタ部320は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0187】
もちろん、インループフィルタ部320が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部320がウィーナーフィルタ等を適用するようにしてもよい。
【0188】
インループフィルタ部320は、フィルタ処理された局所復号画像Rlocalをフレームメモリ321に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部320は、そのフィルタに関する情報を符号化部315に供給する。
【0189】
<フレームメモリ>
フレームメモリ321は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ321は、演算部319から供給される局所復号画像Rlocalや、インループフィルタ部320から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ321は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ321内のバッファへ格納する)。フレームメモリ321は、予測部322の要求に応じて、その復号画像R(またはその一部)を予測部322に供給する。
【0190】
<予測部>
予測部322は、予測画像の生成に関する処理を行う。例えば、予測部322は、制御部301から供給される予測モード情報Pinfoを取得する。また、予測部322は、並べ替えバッファ311から供給される入力画像(元画像)を取得する。さらに、予測部322は、フレームメモリ321から読み出す復号画像R(またはその一部)を取得する。
【0191】
予測部322は、予測モード情報Pinfoや入力画像(元画像)を用いてインター予測やイントラ予測等の予測処理を行う。つまり、予測部322は、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。
【0192】
予測部322は、生成した予測画像Pを演算部312および演算部319に供給する。また、予測部322は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部315に供給する。
【0193】
<レート制御部>
レート制御部323は、レート制御に関する処理を行う。例えば、レート制御部323は、蓄積バッファ316に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部314の量子化動作のレートを制御する。
【0194】
<LFNST識別子の符号化制御>
以上のような構成の画像符号化装置300に対して、<1.LFNST識別子のシグナリングパタン>において説明した本技術を適用することができる。
【0195】
例えば、直交変換部313は、セカンダリ変換としてLFNSTを行い、セカンダリ変換制御情報(セカンダリ変換識別子)としてLFNST識別子(lfnst_idx)を符号化部315に供給する(矢印331)。なお、直交変換部313は、そのLFNST識別子(lfnst_idx)を逆直交変換部318にも供給する(矢印332)。
【0196】
符号化部315は、符号化装置100(
図11)のLFNST識別子符号化部101を有する。そのLFNST識別子符号化部101は、直交変換部313から供給されるLFNST識別子を取得する。LFNST識別子符号化部101は、取得したLFNST識別子を符号化し、ビット列を生成する。符号化部315は、その生成したビット列を他の情報のビット列と多重化し、符号化データを生成する。符号化部315は、その符号化データを蓄積バッファ316に供給する。
【0197】
また、LFNST識別子符号化部101は、制御部301から変換情報Tinfoとして供給される、
図11に示されるようなLFNST識別子の符号化の制御に用いられる各種パラメータを取得する。例えば、LFNST識別子符号化部101は、treeType、transform_skip_flag[0]、transform_skip_flag[1]、transform_skip_flag[2]、lfnstWidth、lfnstHeight、sps_lfnst_enabled_flag、intra_mip_flag、cbWidth、cbHeight、IntraSubPartitionSplitType、LfnstDcOnly、LfnstZeroOutSigCoefFlag等のパラメータを取得する。これらのパラメータは、上述の非特許文献(例えば非特許文献1)に記載のパラメータである。
【0198】
そして、LFNST識別子符号化部101(つまり符号化部315)は、これらのパラメータを用いて、<1.LFNST識別子のシグナリングパタン>において説明したように、LFNST識別子(lfnst_idx)の符号化(シグナリング)の制御を行う。
【0199】
例えば、符号化部315は、上述の方法1を適用して、このLFNST識別子の符号化の制御を行う。つまり、符号化部315は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化する。
【0200】
例えば、符号化部315は、
図4に示されるシンタックステーブルに従って、LFNST識別子の符号化を制御する。なお、符号化部315が、
図6に示されるシンタックステーブルに従って、LFNST識別子の符号化を制御するようにしてもよい。これらのシンタックステーブルに従うことにより、符号化部315は、
図3に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0201】
なお、符号化部315は、上述の方法2を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、符号化部315が、画像符号化における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0202】
このようにすることにより、符号化部315は、
図8に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0203】
また、符号化部315は、上述の方法3を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、符号化部315が、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0204】
このようにすることにより、符号化部315は、
図9に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0205】
また、符号化部315は、上述の方法4を適用して、このLFNST識別子の符号化の制御を行ってもよい。つまり、符号化部315が、画像符号化のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化してもよい。
【0206】
このようにすることにより、符号化部315は、
図10に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子の符号化を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0207】
方法1乃至方法4の内のいずれの方法を適用する場合も、符号化部315は、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子のシグナリングをスキップすることができる。したがって、画像符号化装置300は、符号化効率の低減を抑制することができる。
【0208】
<構成例>
なお、これらの処理部(制御部301、並べ替えバッファ311乃至レート制御部323)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【0209】
<画像符号化処理の流れ>
次に、以上のような構成の画像符号化装置300により実行される画像符号化処理の流れの例を、
図16のフローチャートを参照して説明する。
【0210】
画像符号化処理が開始されると、ステップS301において、並べ替えバッファ311は、制御部301に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【0211】
ステップS302において、制御部301は、並べ替えバッファ311が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
【0212】
ステップS303において、制御部301は、並べ替えバッファ311が保持する入力画像についての符号化パラメータを決定(設定)する。
【0213】
ステップS304において、予測部322は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部322は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【0214】
ステップS305において、演算部312は、入力画像と、ステップS304の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部312は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【0215】
ステップS306において、直交変換部313は、ステップS305の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。例えば、直交変換部313は、予測残差Dに対してプライマリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してセカンダリ変換を行ってセカンダリ変換係数(変換係数Coeff)を生成する。
【0216】
ステップS307において、量子化部314は、制御部301により算出された量子化パラメータを用いる等して、ステップS306の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
【0217】
ステップS308において、逆量子化部317は、ステップS307の処理により生成された量子化変換係数レベルlevelを、そのステップS307の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
【0218】
ステップS309において、逆直交変換部318は、ステップS308の処理により得られた変換係数Coeff_IQを、ステップS306の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。例えば、逆直交変換部318は、変換係数Coeff_IQ(セカンダリ変換係数)に対して逆セカンダリ変換を行ってプライマリ変換係数を生成する。また、逆直交変換部318は、そのプライマリ変換係数に対して逆プライマリ変換を行って予測残差D'を生成する。
【0219】
なお、この逆直交変換処理は、復号側において行われる逆直交変換処理と同様である。したがって、このステップS309の逆直交変換処理については、後述する復号側についての説明を適用することができる。
【0220】
ステップS310において、演算部319は、ステップS309の処理により導出された予測残差D'に、ステップS304の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【0221】
ステップS311において、インループフィルタ部320は、ステップS310の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【0222】
ステップS312において、フレームメモリ321は、ステップS310の処理により導出された、局所的に復号された復号画像や、ステップS311においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【0223】
ステップS313において、符号化部315は、ステップS307の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部315は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部315は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部315は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【0224】
ステップS314において、蓄積バッファ316は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置300の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部323は、必要に応じてレート制御を行う。
【0225】
ステップS314の処理が終了すると、画像符号化処理が終了する。
【0226】
<LFNST識別子の符号化制御>
以上のような流れの画像符号化処理に対して<1.LFNST識別子のシグナリングパタン>において説明した本技術を適用することができる。
【0227】
例えば、ステップS306において、直交変換部313は、セカンダリ変換としてLFNSTを行う。直交変換部313は、そのセカンダリ変換(LFNST)についてのセカンダリ変換制御情報(セカンダリ変換識別子)としてLFNST識別子(lfnst_idx)を生成する。
【0228】
ステップS313において、符号化部315(のLFNST識別子符号化部101)は、そのLFNST識別子を符号化する。その際、符号化部315は、変換情報Tinfoに基づいてそのLFNST識別子の符号化を制御する。つまり、符号化部315は、ステップS313の処理の1つとして、
図12のフローチャートで示される符号化処理を行う。
【0229】
例えば、ステップS101において、符号化部315は、変換情報Tinfoに含まれる上述した各種パラメータに基づいて、LFNST識別子の符号化条件conditionを導出する。ステップS102において、符号化部315は、その符号化条件conditionを満たすか否かを判定する。この符号化条件conditionが真であると判定された場合、符号化部315は、ステップS103において、LFNST識別子を符号化し、ビット列を生成する。符号化部315は、その生成したビット列を他の情報のビット列と多重化し、符号化データを生成する。つまり、この場合、LFNST識別子がシグナリングされる。
【0230】
また、ステップS102において、ステップS101において導出した符号化条件conditionが偽であると判定された場合、符号化部315は、ステップS104において、LFNST識別子の符号化をスキップ(省略)する。つまり、この場合、LFNST識別子のビット列は生成されない。すなわち、LFNST識別子がシグナリングされない。
【0231】
以上のような符号化処理において、符号化部315(のLFNST識別子符号化部101)は、例えば、<1.LFNST識別子のシグナリングパタン>において上述した方法1を適用する。つまり、符号化部315は、画像符号化における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報を符号化する。
【0232】
その場合、符号化部315は、ステップS101において、
図5に示される変数NonTsUsedを導出し、その導出した変数NonTsUsedを用いて、
図5に示される符号化条件conditionを導出する。なお、符号化部315が、
図7に示される変数TsUsedを導出し、その導出した変数TsUsedを用いて、
図7に示される符号化条件conditionを導出してもよい。また、符号化部315が、方法2乃至方法4の内のいずれかを適用し、符号化条件conditionを導出してもよい。
【0233】
このように画像符号化処理を実行することにより、符号化部315は、方法1乃至方法4の内のいずれの方法を適用する場合も、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真であるとき、そのLFNST識別子のシグナリングをスキップすることができる。したがって、画像符号化装置300は、符号化効率の低減を抑制することができる。
【0234】
<補足>
なお、画像符号化装置300は、セカンダリ変換として任意の係数変換を適用することができる。したがって、符号化部315は、LFNST識別子の例に限らず、任意のセカンダリ変換識別子(任意のセカンダリ変換制御情報)を符号化することができる。また、上述した方法1乃至方法4は、それらの一部または全部を適宜組み合わせて適用することができる。
【0235】
<5.第4の実施の形態>
<画像復号装置>
図17は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。
図17に示される画像復号装置400は、動画像の符号化データを符号化する装置である。例えば、画像復号装置400は、上述の非特許文献のいずれかに記載の復号方式で符号化データを復号することができる。例えば、画像復号装置400は、上述の画像符号化装置300により生成された符号化データ(ビットストリーム)を復号する。
【0236】
なお、
図17においては、処理部(ブロック)やデータの流れ等の主なものを示しており、
図17に示されるものが全てとは限らない。つまり、画像復号装置400において、
図17においてブロックとして示されていない処理部が存在したり、
図17において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0237】
図17において、画像復号装置400は、蓄積バッファ411、復号部412、逆量子化部413、逆直交変換部414、演算部415、インループフィルタ部416、並べ替えバッファ417、フレームメモリ418、および予測部419を備えている。なお、予測部419は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置400は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
【0238】
<蓄積バッファ>
蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。
【0239】
<復号部>
復号部412は、画像に関する復号についての処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを取得する。また、復号部412は、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【0240】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部412は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
【0241】
<ヘッダ情報Hinfo>
ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
【0242】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【0243】
例えば、ヘッダ情報Hinfoには、コンポーネント間予測有効フラグ(ccp_enabled_flag)が含まれ得る。コンポーネント間予測有効フラグは、コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
【0244】
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
【0245】
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【0246】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれ得る。
【0247】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))が含まれ得る。コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【0248】
また、イントラ予測モード情報IPinfoには、多クラス線形予測モードフラグ(mclm_flag)が含まれ得る。多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
【0249】
さらに、イントラ予測モード情報IPinfoには、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)が含まれ得る。色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式のような割り当て方となる。
【0250】
chroma_sample_loc_type_idx == 0:Type2
chroma_sample_loc_type_idx == 1:Type3
chroma_sample_loc_type_idx == 2:Type0
chroma_sample_loc_type_idx == 3:Type1
【0251】
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(つまり、色差コンポーネントの画素位置に関する情報に格納されて)伝送される。
【0252】
また、イントラ予測モード情報IPinfoには、色差MPM識別子(chroma_mpm_idx)が含まれ得る。色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【0253】
さらに、イントラ予測モード情報IPinfoには、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)が含まれ得る。
【0254】
動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
【0255】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0256】
<変換情報Tinfo>
変換情報Tinfoには、例えば、処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSizeが含まれ得る。なお、この処理対象変換ブロックの横幅サイズTBWSizeの代わりに、2を底とする対数値log2TBWSizeを適用してもよい。また、この処理対象変換ブロックの縦幅TBHSize代わりに、2を底とする対数値log2TBHSizeを適用してもよい。
【0257】
また、変換情報Tinfoには、変換スキップフラグ(transform_skip_flag(またはts_flag))が含まれ得る。この変換スキップフラグは、係数変換(または逆係数変換)をスキップするか否かを示すフラグである。なお、この変換スキップフラグは、Y,Cb,Crのコンポーネント毎にシグナリングされてもよい(transform_skip_flag[0]、transform_skip_flag[1]、transform_skip_flag[2])。
【0258】
さらに、変換情報Tinfoには、スキャン識別子(scanIdx)、量子化パラメータ(qp)、量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))等のパラメータが含まれ得る。
【0259】
もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0260】
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば、残差データ有無フラグ(cbf(coded_block_flag))が含まれ得る。また、残差情報Rinfoには、ラスト非ゼロ係数X座標(last_sig_coeff_x_pos)やラスト非ゼロ係数Y座標(last_sig_coeff_y_pos)が含まれ得る。さらに、残差情報Rinfoには、サブブロック非ゼロ係数有無フラグ(coded_sub_block_flag)や非ゼロ係数有無フラグ(sig_coeff_flag)が含まれ得る。
【0261】
また、残差情報Rinfoには、非ゼロ係数のレベルが1より大きいかを示すフラグであるGR1フラグ(gr1_flag)や、非ゼロ係数のレベルが2より大きいかを示すフラグであるGR2フラグ(gr2_flag)が含まれ得る。さらに、残差情報Rinfoには、非ゼロ係数の正負を示す符号であるサイン符号(sign_flag)が含まれ得る。また、残差情報Rinfoには、非ゼロ係数の残余レベルである非ゼロ係数残余レベル(coeff_abs_level_remaining)が含まれ得る。
【0262】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0263】
<フィルタ情報Finfo>
フィルタ情報Finfoには、フィルタ処理に関する制御情報が含まれる。例えば、フィルタ情報Finfoには、デブロッキングフィルタ(DBF)に関する制御情報が含まれ得る。また、フィルタ情報Finfoには、画素適応オフセット(SAO)に関する制御情報が含まれ得る。さらに、フィルタ情報Finfoには、適応ループフィルタ(ALF)に関する制御情報が含まれ得る。また、フィルタ情報Finfoには、その他の線形・非線形フィルタに関する制御情報が含まれ得る。
【0264】
例えば、フィルタ情報Finfoには、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報が含まれ得る。また、フィルタ情報Finfoには、CU単位のフィルタOn/Off制御情報が含まれ得る。さらに、フィルタ情報Finfoには、スライスやタイルの境界に関するフィルタOn/Off制御情報が含まれ得る。
【0265】
もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0266】
復号部412の説明に戻る。復号部412は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部412は、その量子化変換係数レベルlevelを、逆量子化部413に供給する。
【0267】
また、復号部412は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【0268】
ヘッダ情報Hinfoは、逆量子化部413、逆直交変換部414、予測部419、インループフィルタ部416に供給される。予測モード情報Pinfoは、逆量子化部413および予測部419に供給される。変換情報Tinfoは、逆量子化部413および逆直交変換部414に供給される。フィルタ情報Finfoは、インループフィルタ部416に供給される。
【0269】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【0270】
<逆量子化部>
逆量子化部413は、逆量子化に関する処理を行う。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを取得する。また、逆量子化部413は、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。
【0271】
なお、この逆量子化は、画像符号化装置300の量子化部314による量子化の逆処理として行われる。また、この逆量子化は、画像符号化装置300の逆量子化部317による逆量子化と同様の処理である。換言するに、逆量子化部317は、逆量子化部413と同様の処理(逆量子化)を行う。
【0272】
逆量子化部413は、導出した変換係数Coeff_IQを逆直交変換部414に供給する。
【0273】
<逆直交変換部>
逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQを取得する。また、逆直交変換部414は、復号部412から供給される変換情報Tinfoを取得する。
【0274】
逆直交変換部414は、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。例えば、逆直交変換部414は、変換係数Coeff_IQに対して逆セカンダリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してプライマリ変換を行い、予測残差D'を生成する。
【0275】
なお、この逆直交変換は、画像符号化装置300の直交変換部313による直交変換の逆処理として行われる。また、この逆直交変換は、画像符号化装置300の逆直交変換部318による逆直交変換と同様の処理である。換言するに、逆直交変換部318は、逆直交変換部414と同様の処理(逆直交変換)を行う。
【0276】
逆直交変換部414は、導出した予測残差D'を演算部415に供給する。
【0277】
<演算部>
演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'を取得する。また、演算部415は、予測部419から供給される予測画像Pを取得する。演算部415は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
【0278】
Rlocal = D' + P
【0279】
演算部415は、導出した局所復号画像Rlocalを、インループフィルタ部416およびフレームメモリ418に供給する。
【0280】
<インループフィルタ部>
インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalを取得する。また、インループフィルタ部416は、復号部412から供給されるフィルタ情報Finfoを取得する。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【0281】
インループフィルタ部416は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。例えば、インループフィルタ部416は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0282】
インループフィルタ部416は、符号化側(例えば画像符号化装置300のインループフィルタ部320)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部416が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部416がウィーナーフィルタ等を適用するようにしてもよい。
【0283】
インループフィルタ部416は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ417およびフレームメモリ418に供給する。
【0284】
<並べ替えバッファ>
並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置400の外部に出力する。
【0285】
<フレームメモリ>
フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを取得する。そして、フレームメモリ418は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築する。フレームメモリ418は、再構築した復号画像Rをフレームメモリ418内のバッファへ格納する。
【0286】
また、フレームメモリ418は、インループフィルタ部416から供給される、インループフィルタ処理された局所復号画像Rlocalを取得する。そして、フレームメモリ418は、そのインループフィルタ処理された局所復号画像Rlocalを用いて、ピクチャ単位毎の復号画像Rを再構築する。フレームメモリ418は、再構築した復号画像Rをフレームメモリ418内のバッファへ格納する。
【0287】
さらに、フレームメモリ418は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部419に供給する。
【0288】
なお、フレームメモリ418が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【0289】
<予測部>
予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを取得する。また、予測部419は、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納された復号画像R(またはその一部)を、参照画像として利用する。この復号画像Rは、フィルタ前のものであってもよいし、フィルタ後のものであってもよい。予測部419は、導出した予測画像Pを、演算部415に供給する。
【0290】
<LFNST識別子の符号化制御>
以上のような構成の画像符号化装置300に対して、<1.LFNST識別子のシグナリングパタン>において説明した本技術を適用することができる。
【0291】
例えば、逆直交変換部414は、逆セカンダリ変換としてLFNSTの逆処理を行う。その際、逆直交変換部414は、復号部412からセカンダリ変換制御情報(セカンダリ変換識別子)として供給されるLFNST識別子(lfnst_idx)を取得する(矢印431)。そして、逆直交変換部414は、そのLFNST識別子に従って逆セカンダリ変換を行う。
【0292】
つまり、復号部412は、そのLFNST識別子(lfnst_idx)を逆直交変換部414に供給する(矢印431)。復号部412は、復号装置200(
図13)のLFNST識別子復号部201を有する。例えば、LFNST識別子がシグナリングされた場合、LFNST識別子復号部201は、ビットストリームを復号してそのLFNST識別子を生成し、逆直交変換部414に供給する。LFNST識別子がシグナリングされなかった場合、LFNST識別子復号部201は、LFNST識別子に関する復号を省略し、その値を「0」と推定し、値「0」のLFNST識別子を逆直交変換部414に供給する。
【0293】
その際、LFNST識別子復号部201は、シグナリングされた変換情報Tinfoに基づいて、LFNST識別子がシグナリングされたか否か(LFNST識別子に関する復号を行うか否か)を判定する。例えば、復号部412は、ビットストリームを復号して変換情報Tinfoを生成する。LFNST識別子復号部201は、その変換情報Tinfoに含まれる、LFNST識別子に関する復号に利用する各種パラメータを取得する。例えば、LFNST識別子復号部201は、treeType、transform_skip_flag[0]、transform_skip_flag[1]、transform_skip_flag[2]、lfnstWidth、lfnstHeight、sps_lfnst_enabled_flag、intra_mip_flag、cbWidth、cbHeight、IntraSubPartitionSplitType、LfnstDcOnly、LfnstZeroOutSigCoefFlag等のパラメータを取得する。これらのパラメータは、上述の非特許文献(例えば非特許文献1)に記載のパラメータである。
【0294】
復号部412は、ビットストリームを復号することにより、これらのパラメータを生成する。そして、LFNST識別子復号部201は、これらのパラメータを用いて、<1.LFNST識別子のシグナリングパタン>において説明したように、LFNST識別子(lfnst_idx)の復号の制御を行う。
【0295】
例えば、復号部412は、上述の方法1を適用して、このLFNST識別子に関する復号の制御を行う。つまり、復号部412は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値がセカンダリ変換のスキップを示す所定の値であると推定し、全てのコンポーネントの変換スキップフラグが偽であれば、ビットストリームを復号してセカンダリ変換制御情報を生成する。
【0296】
例えば、復号部412は、
図4に示されるシンタックステーブルに従って、LFNST識別子に関する復号を制御する。なお、復号部412が、
図6に示されるシンタックステーブルに従って、LFNST識別子に関する復号を制御するようにしてもよい。これらのシンタックステーブルに従うことにより、復号部412は、
図3に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0297】
なお、復号部412は、上述の方法2を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、復号部412が、画像復号における有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、復号部412が、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行ってもよい。
【0298】
このようにすることにより、復号部412は、
図8に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0299】
また、復号部412は、上述の方法3を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、復号部412が、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、全てのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号をスキップ(省略)し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、復号部412が、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行ってもよい。
【0300】
このようにすることにより、復号部412は、
図9に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0301】
また、復号部412は、上述の方法4を適用して、このLFNST識別子に関する復号の制御を行ってもよい。つまり、復号部412が、画像復号のツリータイプがデュアルツリークロマであり、そのデュアルツリークロマにおいて有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換制御情報に関する復号を省略し、そのセカンダリ変換制御情報の値が「0」であると推定してもよい。また、全てのコンポーネントの変換スキップフラグが偽であれば、復号部412が、セカンダリ変換制御情報に関する復号を行ってもよい。
【0302】
このようにすることにより、復号部412は、
図10に示される表のように、ツリータイプと変換スキップフラグに応じてLFNST識別子に関する復号を制御することができる。各ツリータイプにおける制御方法は<1.LFNST識別子のシグナリングパタン>において上述した通りである。
【0303】
方法1乃至方法4の内のいずれの方法を適用する場合も、復号部412は、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真である場合に、そのLFNST識別子に関する復号をスキップすることができる。したがって、画像復号装置400は、符号化効率の低減を抑制することができる。
【0304】
<構成例>
なお、これらの処理部(蓄積バッファ411乃至予測部419)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【0305】
<画像復号処理の流れ>
次に、以上のような構成の画像復号装置400により実行される画像復号処理の流れの例を、
図18のフローチャートを参照して説明する。
【0306】
画像復号処理が開始されると、蓄積バッファ411は、ステップS401において、画像復号装置400の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
【0307】
ステップS402において、復号部412は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る。また、復号部412は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
【0308】
ステップS403において、逆量子化部413は、ステップS402の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
【0309】
ステップS404において、逆直交変換部414は、ステップS403において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。例えば、逆直交変換部414は、変換係数Coeff_IQ(セカンダリ変換係数)に対して逆セカンダリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対して逆プライマリ変換を行って予測残差D'を生成する。
【0310】
ステップS405において、予測部419は、ステップS402においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ418に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【0311】
ステップS406において、演算部415は、ステップS404において得られた予測残差D'と、ステップS405において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【0312】
ステップS407において、インループフィルタ部416は、ステップS406の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【0313】
ステップS408において、並べ替えバッファ417は、ステップS407の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置400の外部に出力される。
【0314】
また、ステップS409において、フレームメモリ418は、ステップS406の処理により得られた局所復号画像Rlocal、および、ステップS407の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【0315】
ステップS409の処理が終了すると、画像復号処理が終了する。
【0316】
<LFNST識別子に関する復号制御>
以上のような流れの画像復号処理に対して<1.LFNST識別子のシグナリングパタン>において説明した本技術を適用することができる。例えば、ステップS402において、復号部412(のLFNST識別子復号部201)は、ビットストリームを復号してLFNST識別子を生成する。そして、逆直交変換部414は、ステップS404において、そのLFNST識別子に従って逆セカンダリ変換を行う。
【0317】
その際、復号部412は、変換情報Tinfoに基づいてそのLFNST識別子に関する復号を制御する。つまり、復号部412は、ステップS402の処理の1つとして、
図14のフローチャートで示される復号処理を行う。
【0318】
例えば、ステップS201において、復号部412は、変換情報Tinfoに含まれる上述した各種パラメータに基づいて、LFNST識別子の復号条件conditionを導出する。ステップS202において、復号部412は、その復号条件conditionを満たすか否かを判定する。この復号条件conditionが真であると判定された場合、LFNST識別子がシグナリングされたので、復号部412は、ステップS203において、ビットストリームを復号し、そのシグナリングされたLFNST識別子(lfnst_idx)を得る。
【0319】
また、ステップS202において、ステップS201において導出した復号条件conditionが偽であると判定された場合、LFNST識別子がシグナリングされなかったので、復号部412は、ステップS204において、LFNST識別子(lfnst_idx)に関する復号をスキップ(省略)する。つまり、復号条件conditionを満たさない場合、復号部412は、LFNST識別子(lfnst_idx)に関する復号をスキップし、そのLFNST識別子の値が「0」であると推定する(lfnst_idx = 0)。
【0320】
以上のような復号処理において、復号部412(のLFNST識別子復号部201)は、例えば、<1.LFNST識別子のシグナリングパタン>において上述した方法1を適用する。つまり、復号部412は、画像復号における有効なコンポーネントの内、少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、全てのコンポーネントの変換スキップフラグが偽であれば、セカンダリ変換制御情報に関する復号を行う。
【0321】
その場合、復号部412は、ステップS201において、
図5に示される変数NonTsUsedを導出し、その導出した変数NonTsUsedを用いて、
図5に示される符号化条件conditionを導出する。なお、復号部412が、
図7に示される変数TsUsedを導出し、その導出した変数TsUsedを用いて、
図7に示される符号化条件conditionを導出してもよい。また、復号部412が、方法2乃至方法4の内のいずれかを適用し、符号化条件conditionを導出してもよい。
【0322】
このように画像復号処理を実行することにより、復号部412は、方法1乃至方法4の内のいずれの方法を適用する場合も、ツリータイプがデュアルツリークロマ(DUAL_TREE_CHROMA)であって、画像のCb成分とCr成分の両方の変換スキップフラグが真であるとき、そのLFNST識別子に関する復号をスキップすることができる。したがって、画像復号装置400は、符号化効率の低減を抑制することができる。
【0323】
<補足>
なお、画像復号装置400は、逆セカンダリ変換として任意の逆係数変換を適用することができる。したがって、復号部412は、LFNST識別子の例に限らず、任意のセカンダリ変換識別子(任意のセカンダリ変換制御情報)に関する復号を行ってもよい。また、上述した方法1乃至方法4は、それらの一部または全部を適宜組み合わせて適用することができる。
【0324】
<6.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0325】
図19は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0326】
図19に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
【0327】
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
【0328】
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
【0329】
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0330】
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
【0331】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
【0332】
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
【0333】
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【0334】
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
【0335】
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
【0336】
また、以上においては、本技術の適用例として、符号化装置100、復号装置200、画像符号化装置300、および画像復号装置400について説明したが、本技術は、任意の構成に適用することができる。
【0337】
例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
【0338】
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
【0339】
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
【0340】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0341】
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【0342】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【0343】
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【0344】
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【0345】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
【0346】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0347】
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0348】
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0349】
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0350】
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0351】
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0352】
なお、本技術は以下のような構成も取ることができる。
(1) 画像符号化における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
符号化部
を備える画像処理装置。
(2) 前記符号化部は、前記画像符号化のツリータイプがシングルツリーの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグ、Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Y成分変換スキップフラグ、前記Cb成分変換スキップフラグ、および前記Cr成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)に記載の画像処理装置。
(3) 前記符号化部は、前記画像符号化のツリータイプがデュアルツリールマの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Y成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)または(2)に記載の画像処理装置。
(4) 前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマの場合、
Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
前記Cb成分変換スキップフラグおよび前記Cr成分変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記セカンダリ変換制御情報は、前記セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子を含む
(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記セカンダリ変換は、LFNST(Low Frequency Non-Separable Transform)である
(1)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記符号化部は、前記画像符号化における有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記符号化部は、前記画像符号化のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
少なくとも1つのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 画像符号化における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報の符号化を省略し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記セカンダリ変換制御情報を符号化する
画像処理方法。
【0353】
(11) 画像復号における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する
復号部
を備える画像処理装置。
(12) 前記復号部は、前記画像復号のツリータイプがシングルツリーの場合、
Y成分の前記変換スキップフラグであるY成分変換スキップフラグ、Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Y成分変換スキップフラグ、前記Cb成分変換スキップフラグ、および前記Cr成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)に記載の画像処理装置。
(13) 前記復号部は、前記画像復号のツリータイプがデュアルツリールマの場合、 Y成分の前記変換スキップフラグであるY成分変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Y成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)または(12)に記載の画像処理装置。
(14) 前記復号部は、前記画像復号のツリータイプがデュアルツリークロマの場合、
Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグ、およびCr成分の前記変換スキップフラグであるCr成分変換スキップフラグの内、少なくとも1つが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
前記Cb成分変換スキップフラグおよび前記Cr成分変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)乃至(13)のいずれかに記載の画像処理装置。
(15) 前記セカンダリ変換制御情報は、前記セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子を含む
(11)乃至(14)のいずれかに記載の画像処理装置。
(16) 前記セカンダリ変換は、LFNST(Low Frequency Non-Separable Transform)である
(11)乃至(15)のいずれかに記載の画像処理装置。
(17) 前記復号部は、前記画像復号における有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)乃至(16)のいずれかに記載の画像処理装置。
(18) 前記復号部は、前記画像復号のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
全てのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
少なくとも1つのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)乃至(17)のいずれかに記載の画像処理装置。
(19) 前記復号部は、前記画像復号のツリータイプがデュアルツリークロマであり、前記デュアルツリークロマにおいて有効なコンポーネントの内、
少なくとも1つのコンポーネントの前記変換スキップフラグが真であれば、前記セカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、前記ビットストリームを復号して前記セカンダリ変換制御情報を生成する
(11)乃至(18)のいずれかに記載の画像処理装置。
(20) 画像復号における有効なコンポーネントの内、
少なくとも1つのコンポーネントの変換スキップフラグが真であれば、セカンダリ変換に関する制御情報であるセカンダリ変換制御情報に関する復号を省略し、前記セカンダリ変換制御情報の値が前記セカンダリ変換のスキップを示す所定の値であると推定し、
全てのコンポーネントの前記変換スキップフラグが偽であれば、ビットストリームを復号して前記セカンダリ変換制御情報を生成する
画像処理方法。
【符号の説明】
【0354】
100 符号化装置, 101 LFNST識別子符号化部, 200 復号装置, 201 LFNST識別子復号部, 300 画像符号化装置, 301 制御部, 313 直交変換部, 315 符号化部, 400 画像復号装置, 412 復号部, 414 逆直交変換部
【手続補正書】
【提出日】2024-05-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出する導出部と、
前記導出部により導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する符号化を省略する符号化部と
を備える画像処理装置。
【請求項2】
前記符号化部は、前記導出部により導出された前記変数が真であることを示す場合に、前記セカンダリ変換識別子に対する符号化を実行する
請求項1に記載の画像処理装置。
【請求項3】
前記符号化部は、前記ツリータイプがシングルツリーである場合、かつ、Y成分の前記変換スキップフラグであるY成分変換スキップフラグとCb成分の前記変換スキップフラグであるCb成分変換スキップフラグとCr成分の前記変換スキップフラグであるCr成分変換スキップフラグとが全て偽である場合、前記セカンダリ変換識別子に対する符号化を実行する
請求項2に記載の画像処理装置。
【請求項4】
前記符号化部は、前記ツリータイプがデュアルツリールマである場合、かつ、Y成分の前記変換スキップフラグであるY成分変換スキップフラグが偽である場合、前記セカンダリ変換識別子に対する符号化を実行する
請求項2に記載の画像処理装置。
【請求項5】
前記符号化部は、前記ツリータイプがデュアルツリークロマである場合、かつ、Cb成分の前記変換スキップフラグであるCb成分変換スキップフラグとCr成分の前記変換スキップフラグであるCr成分変換スキップフラグとが偽である場合、前記セカンダリ変換識別子に対する符号化を実行する
請求項2に記載の画像処理装置。
【請求項6】
前記セカンダリ変換は、LFNST(Low Frequency Non-Separable Transform)である
請求項1に記載の画像処理装置。
【請求項7】
変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出することと、
導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する符号化を省略することと
を含む画像処理方法。
【請求項8】
変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出する導出部と、
前記導出部により導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する復号を省略する復号部と
を備える画像処理装置。
【請求項9】
前記復号部は、前記導出部により導出された前記変数が偽であることを示す場合に、さらに、前記セカンダリ変換識別子が前記セカンダリ変換のスキップを示すと推定する
請求項8に記載の画像処理装置。
【請求項10】
変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出することと、
導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する復号を省略することと
を含む画像処理方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
本技術の一側面の画像処理装置は、変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出する導出部と、前記導出部により導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する符号化を省略する符号化部とを備える画像処理装置である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
本技術の一側面の画像処理方法は、変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出することと、導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する符号化を省略することとを含む画像処理方法である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
本技術の他の側面の画像処理装置は、変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出する導出部と、前記導出部により導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する復号を省略する復号部と備える画像処理装置である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
本技術の他の側面の画像処理方法は、変換スキップフラグとツリータイプとを参照して、全てのコンポーネントに対して変換スキップが適用されないことを示す変数を導出することと、導出された前記変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する復号を省略することとを含む画像処理方法である。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
本技術の一側面の画像処理装置および方法においては、変換スキップフラグとツリータイプとが参照されて、全てのコンポーネントに対して変換スキップが適用されないことを示す変数が導出されることと、その導出された変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する符号化が省略されることとが実行される。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正の内容】
【0012】
本技術の他の側面の画像処理装置および方法においては、変換スキップフラグとツリータイプとが参照されて、全てのコンポーネントに対して変換スキップが適用されないことを示す変数が導出されることと、その導出された変数が偽であることを示す場合に、セカンダリ変換のタイプを示す識別子であるセカンダリ変換識別子に対する復号が省略されることとが実行される。