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

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

▶ ソニー株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024103680
(43)【公開日】2024-08-01
(54)【発明の名称】画像処理装置および方法
(51)【国際特許分類】
   H04N 19/13 20140101AFI20240725BHJP
   H04N 19/136 20140101ALI20240725BHJP
   H04N 19/60 20140101ALI20240725BHJP
   H04N 19/176 20140101ALI20240725BHJP
【FI】
H04N19/13
H04N19/136
H04N19/60
H04N19/176
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2024089340
(22)【出願日】2024-05-31
(62)【分割の表示】P 2021525944の分割
【原出願日】2020-05-01
(31)【優先権主張番号】62/860,606
(32)【優先日】2019-06-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】筑波 健史
(57)【要約】
【課題】復号処理の負荷の増大を抑制することができるようにする。
【解決手段】ブロックサイズに関する情報が所定の閾値以下である場合のみセカンダリ変換を行うように、セカンダリ変換識別子を設定し、その設定されたセカンダリ変換識別子に基づいて、画像データから導出された係数データに対してセカンダリ変換を行い、その設定されたセカンダリ変換識別子を符号化し、ビットストリームを生成する。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、情報処理装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。
【選択図】図47
【特許請求の範囲】
【請求項1】
ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定する設定部と、
前記設定部により設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術符号化する符号化部と
を備える画像処理装置。
【請求項2】
前記設定部は、前記ツリータイプに基づいて、前記セカンダリ変換識別子の1bin目のコンテキストインデックスを設定する
請求項1に記載の画像処理装置。
【請求項3】
ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定し、
設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術符号化する
画像処理方法。
【請求項4】
ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定する設定部と、
前記設定部により設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術復号する復号部と
を備える画像処理装置。
【請求項5】
ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定し、
設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術復号する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、復号処理の負荷の増大を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、画像の符号化において、プライマリ変換後の変換係数に対して、低域セカンダリ変換(LFST(Low Frequency Secondary Transform))を行い、さらにエナジーコンパクションを改善する符号化ツールがあった(例えば、非特許文献1および非特許文献2参照)。低域セカンダリ変換では、処理対象ブロックの内、低域部の係数データのみがセカンダリ変換される。この低域セカンダリ変換に関するモード情報として、セカンダリ変換識別子st_idxがある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 5)", JVET-N1001v8, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar. 2019
【非特許文献2】Moonmo Koo, Jaehyun Lim, Mehdi Salehifar, Seung Hwan Kim, "CE6: Reduced Secondary Transform (RST) (CE6-3.1)", JVET-N0193, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このセカンダリ変換識別子は、CU内の非ゼロ変換係数の総数に依存して決定されるため、CU内の各TUがシグナリングされた後にシグナリングされる。そのため、CU内の全てのTUの復号が完了し、さらにセカンダリ変換識別子の復号が完了するまで、そのCU内の各変換ブロックの逆量子化や逆変換処理を開始することができなかった。そのため復号処理の負荷が増大するおそれがあった。
【0005】
本開示は、このような状況に鑑みてなされたものであり、復号処理の負荷の増大を抑制することができるようにするものである。
【課題を解決するための手段】
【0006】
本技術の一側面の画像処理装置は、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定する設定部と、前記設定部により設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術符号化する符号化部とを備える画像処理装置である。
【0007】
本技術の一側面の画像処理方法は、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定し、設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術符号化する画像処理方法である。
【0008】
本技術の他の側面の画像処理装置は、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定する設定部と、前記設定部により設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術復号する復号部とを備える画像処理装置である。
【0009】
本技術の他の側面の画像処理方法は、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスを設定し、設定された前記コンテキストのインデックスに従って、前記セカンダリ変換識別子を算術復号する画像処理方法である。
【0010】
本技術の一側面の画像処理装置および方法においては、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスが設定され、その設定されたコンテキストのインデックスに従って、そのセカンダリ変換識別子が算術符号化される。
【0011】
本技術の他の側面の画像処理装置および方法においては、ツリータイプに基づいて、セカンダリ変換識別子のコンテキストのインデックスが設定され、その設定されたコンテキストのインデックスに従って、そのセカンダリ変換識別子が算術復号される。
【図面の簡単な説明】
【0012】
図1】CU内の残差データに関するシンタックスの例を示す図である。
図2】変換ツリーに関するシンタックスの例を示す図である。
図3】st_modeに関するシンタックスの例を示す図である。
図4】非ゼロ変換係数のカウントに関するシンタックスの例を示す図である。
図5】CUの4分木構造の例を示す図である。
図6】CUの復号の流れの例を説明する図である。
図7】非ゼロ変換係数のカウントの様子の例を説明する図である。
図8】コンテキストの設定に関するシンタックスの例を示す図である。
図9】セカンダリ変換の簡略化について説明する図である。
図10】有効変換領域サイズの導出に関するシンタックスの例を示す図である。
図11】ラスト係数位置の2値化の例を示す図である。
図12】ラスト係数位置のビン列の例を示す図である。
図13】CU内の残差データに関するシンタックスの例を示す図である。
図14】st_modeに関するシンタックスの例を示す図である。
図15】transform_modeに関するシンタックスの例を示す図である。
図16】コンテキストの設定に関するシンタックスの例を示す図である。
図17】画像符号化装置の主な構成例を示すブロック図である。
図18】制御部の主な構成例を示すブロック図である。
図19】直交変換部の主な構成例を示すブロック図である。
図20】画像符号化処理の流れの例を示すフローチャートである。
図21】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図22】直交変換処理の流れの例を示すフローチャートである。
図23】画像復号装置の主な構成例を示すブロック図である。
図24】復号部の主な構成例を示すブロック図である。
図25】逆直交変換部の主な構成例を示すブロック図である。
図26】画像復号処理の流れの例を示すフローチャートである。
図27】復号処理の流れの例を示すフローチャートである。
図28】逆直交変換処理の流れの例を示すフローチャートである。
図29】変換ユニットに関するシンタックスの例を示す図である。
図30】st_modeに関するシンタックスの例を示す図である。
図31】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図32】復号処理の流れの例を示すフローチャートである。
図33】変換ユニットに関するシンタックスの例を示す図である。
図34】st_modeに関するシンタックスの例を示す図である。
図35】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図36】復号処理の流れの例を示すフローチャートである。
図37】CU内の残差データに関するシンタックスの例を示す図である。
図38】st_modeに関するシンタックスの例を示す図である。
図39】コンテキストの設定に関するシンタックスの例を示す図である。
図40】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図41】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図42】復号処理の流れの例を示すフローチャートである。
図43】CU内の残差データに関するシンタックスの例を示す図である。
図44】st_modeに関するシンタックスの例を示す図である。
図45】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図46】復号処理の流れの例を示すフローチャートである。
図47】st_modeに関するシンタックスの例を示す図である。
図48】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図49】復号処理の流れの例を示すフローチャートである。
図50】CU内の残差データに関するシンタックスの例を示す図である。
図51】制御部の主な構成例を示すブロック図である。
図52】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図53】復号部の主な構成例を示すブロック図である。
図54】復号処理の流れの例を示すフローチャートである。
図55】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図56】復号処理の流れの例を示すフローチャートである。
図57】CU内の残差データに関するシンタックスの例を示す図である。
図58】符号化パラメータ設定処理の流れの例を示すフローチャートである。
図59】復号処理の流れの例を示すフローチャートである。
図60】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.セカンダリ変換
2.第1の実施の形態
3.第2の実施の形態
4.第3の実施の形態
5.第4の実施の形態
6.第5の実施の形態
7.第6の実施の形態
8.第7の実施の形態
9.第8の実施の形態
10.第9の実施の形態
11.付記
【0014】
<1.セカンダリ変換>
<1-1.技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
【0015】
非特許文献1:(上述)
非特許文献2:(上述)
非特許文献3:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
非特許文献4:Recommendation ITU-T H.265 (12/2016) "High efficiency video coding", December 2016
非特許文献5:J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,"Algorithm Description of Joint Exploration Test Model (JEM7)", JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
非特許文献6:B. Bross, J. Chen, S. Liu , "Versatile Video Coding (Draft 3), " JVET-L1001, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct. 2018
非特許文献7:J. J. Chen, Y. Ye, S. Kim,"Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)", JVET-L1002, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct. 2018
非特許文献8:Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", JVET-N1002-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar. 2019
非特許文献9:Mischa Siekmann, Martin Winken, Heiko Schwarz, Detlev Marpe "CE6 - related: Simplification of the Reduced Secondary Transform", JVET-N0555-v3, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
非特許文献10:C. Rosewarne, J. Gan, "CE6-related: RST binarization", JVET-N0105-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
【0016】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されているQuad-Tree Block Structure、QTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【0017】
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献に記載されている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)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
【0018】
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
【0019】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【0020】
<1-2.低域セカンダリ変換>
<セカンダリ変換識別子の導出>
画像の符号化において、プライマリ変換後の変換係数に対して、低域セカンダリ変換(LFST(Low Frequency Secondary Transform))を行い、さらにエナジーコンパクションを改善する符号化ツールがある。この低域セカンダリ変換では、処理対象ブロックの内、低域部の係数データのみがセカンダリ変換される。この低域セカンダリ変換に関するモード情報として、セカンダリ変換識別子st_idxがある。
【0021】
図1に、CU(符号化ユニット)内の残差データ(cu_residual)に関するシンタックスの例を示す。このシンタックスに示されるように、セカンダリ変換識別子st_idxは、CUのデータ構造の最後に配置されている。つまり、CU内の各TU(transform_tree)がシグナリングされた後にst_idx(st_mode)がシグナリングされる。
【0022】
図1のシンタックスに含まれる変換ツリー(transform_tree)に関するシンタックスの例を図2に示す。このシンタックスに示されるように、処理対象CU内の各TU(変換ユニット)がシグナリングされる。また、図1のシンタックスに含まれるst_modeに関するシンタックスの例を図3のAに示す。このシンタックスに含まれるsps_st_enabled_flagとst_idxのセマンティクスの例を図3のBに示す。図3のAのシンタックスに示されるように、セカンダリ変換識別子st_idxがシグナリングされる。また、図3のBのセマンティクスに示されるように、セカンダリ変換識別子st_idxは、選択された変換セット内の2つの候補カーネル間に適用されるセカンダリ変換カーネルを指定する。st_idx = 0は、セカンダリ変換が適用されないことを示す。
【0023】
このように、セカンダリ変換識別子st_idxが、CU内の各TU(transform_tree)より後にシグナリングされるのは、セカンダリ変換識別子をシグナリングする(符号化・復号する)か否かの条件判定として、CUに含まれる全TU内の全変換ブロック内のLFNST(Low Frequency Non-Separable Transform)が適用される領域(LFNSTコーナー(またはDCサブブロック)とも称する)と、LFNSTが適用されない領域(非LFNSTコーナーとも称する)のそれぞれの非ゼロ変換係数の総数に依存するためである。つまり、低域セカンダリ変換されるブロックの非ゼロ変換係数の数と、低域セカンダリ変換されないブロックの非ゼロ変換係数の数によって、セカンダリ変換識別子の値が決定される。この非ゼロ変換係数の導出に関するシンタックスの例を図4に示す。
【0024】
ところで、このような画像符号化・復号において、64x64単位でTU単位の処理を行うことができるようにするため、VPDU(Vertual Pipeline Decording Unit)という概念が適用されている。これにより128x128のCUは、図5に示される例のように、暗黙的なTU分割(4分木)により、4個の64x64のTUに分割される。シングルツリーの場合、TUには、さらに、コンポーネントID = 0..2(Y, Cb, Cr)に対応するTB(変換ブロック)が含まれる。輝度デュアルツリーの場合、コンポーネントID = 0(Y)に対応する変換ブロックが含まれ、色差デュアルツリーの場合、コンポーネントID = 1..2(Cb, Cr)に対応する2つの変換ブロックが含まれる。
【0025】
このような構成のため、セカンダリ変換識別子は、CU内の各TUがシグナリングされた後にシグナリングされる。そのため、CU内の全てのTUの復号が完了し、さらにセカンダリ変換識別子の復号が完了するまで、CU内の最初の変換ブロックの逆量子化や逆変換処理を開始することができなかった。
【0026】
例えば、図6のように、TU0乃至TU3からなる128x128のCUの場合、TU0内の各変換ブロックの逆量子化や逆変換処理は、CABACにおいてTU0乃至TU3の復号が完了し、さらにセカンダリ変換識別子st_idxの復号が完了するまで(つまり、時刻T1まで)開始することができなかった。すなわち、処理の遅延が増大するおそれがあった。
【0027】
また、図6の例のように、128x128のCUの場合、セカンダリ変換識別子st_idxを復号するためには、シングルツリーの場合、4個のTU×3コンポーネント分の変換ブロックの情報(Data1)をバッファリングする(メモリ上に保持する)必要があった。すなわち、必要なメモリ容量(すなわちハードウェアコスト)が増大するおそれがあった。
【0028】
これらのように、復号処理の負荷が増大するおそれがあった。
【0029】
<ブロックサイズの制限>
そこで、ブロックサイズに関する情報が閾値以下の場合のみセカンダリ変換識別子をシグナルするようにする。換言するに、ブロックサイズに関する情報が所定の閾値以下である場合のみセカンダリ変換を行うように、セカンダリ変換識別子を設定する。つまり、所定のサイズ以下のブロックのみセカンダリ変換を行うようにする。
【0030】
このようにすることにより、所定のサイズより大きなブロックサイズの符号化ブロックに対するセカンダリ変換をスキップ(省略)することができる。つまり、遅延時間やメモリ使用量の少ない符号化ブロック(すなわちブロックサイズが小さな符号化ブロック)のみ、セカンダリ変換識別子の復号を待ってから変換ブロックの逆量子化や逆変換処理を開始し、遅延時間やメモリ使用量の大きな符号化ブロック(すなわちブロックサイズが大きな符号化ブロック)の場合、セカンダリ変換識別子の復号を待たずに、変換ブロックの逆量子化や逆変換処理を開始することができる。
【0031】
したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0032】
<st_idxシグナリング位置>
また、セカンダリ変換識別子をCUのフッタ以外においてシグナルしてもよい。換言するに、符号化ブロックのフッタ以外に格納されるセカンダリ変換識別子を設定するセカンダリ変換識別子を設定してもよい。
【0033】
例えば、フッタよりも前の位置においてセカンダリ変換識別子をシグナルしてもよい。例えば、CUのヘッダにおいて、セカンダリ変換識別子をシグナルしてもよい。
【0034】
また、例えば、符号化ブロックよりも小さいデータ単位でセカンダリ変換識別子をシグナルしてもよい。例えば、変換ユニット単位で(つまりコンポーネント共通で)セカンダリ変換識別子をシグナルしてもよい。また、変換ブロック単位で(つまり、コンポーネント毎に)セカンダリ変換識別子をシグナルしてもよい。さらに、変換ユニット単位で、輝度(Y)用のセカンダリ変換識別子と色差(Cb,Cr)用のセカンダリ変換識別子とをそれぞれシグナルしてもよい。
【0035】
このようにすることにより、変換ブロックの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0036】
<非ゼロ変換係数のカウント>
さらに、図7に示されるように、セカンダリ変換識別子st_idxを復号するために、CUに含まれる全変換ブロック内で、LFNSTコーナーのゼロアウト領域内にある非ゼロ変換係数の数numZeroOutSigCoefと、CUに含まれる全変換ブロック内の非ゼロ変換係数の数numSigCoefとをカウントする必要がある(図4)。この非ゼロ変換係数のカウントのために煩雑な処理が必要であり、ハードウェアコストが増大するおそれがあった。このように、復号処理の負荷が増大するおそれがあった。
【0037】
<非ゼロ変換係数のカウントの省略>
そこで、セカンダリ変換識別子の復号/符号化条件から非ゼロ変換係数の数を参照する条件式を削除する。このようにすることにより、煩雑な処理を必要とせずに、セカンダリ変換識別子を導出することができる。また、復号処理においてセカンダリ変換識別子を解析する際に、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0038】
<1-3.コンテキストの導出>
<ctxInc>
また、コンテキストの初期値(オフセット)ctxIncは、図8のシンタックスのように導出される。つまり、MTS(Multiple Transform Selection)の識別子、すなわち、変換ユニットの適応直交変換識別子tu_mts_idxとツリータイプ(treeType)に基づいてctxInc(mtsCtx)が導出される。そのため、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスの導出に煩雑な処理が必要であり、復号処理の負荷が増大するおそれがあった。
【0039】
<導出の簡略化>
そこで、適応直交変換識別子を用いずにこのコンテキストを導出するようにする。このようにすることにより、コンテキストの導出を簡略化することができ、復号処理の負荷の増大を抑制することができる。
【0040】
<1-4.セカンダリ変換の簡略化>
<有効変換領域サイズの導出>
また、非特許文献9に記載のセカンダリ変換の場合、図9に示されるように、RST変換行列によって変更されないプライマリ変換係数、すなわち、LFNSTコーナー以外のプライマリ変換係数をゼロ化する(値をゼロにする)。これにより、符号化効率を向上させることができる。
【0041】
例えば、64x16 RST matrixが適用されるTB(つまりセカンダリ変換が適用される変換ブロック)の内、有効な非ゼロ変換係数が存在しうる領域は、4x4のサイズのLFNSTコーナー(DCサブブロック)の領域である。
【0042】
例えば、DCサブブロックのラスト係数位置(lastX, lastY)が(3, 3)である場合、図10に示されるシンタックスのような方法で、ゼロ化された後も非ゼロ変換係数が残っている領域である有効変換領域サイズ(log2ZoTbWidth, log2ZoHeight)が導出される。そして、その値を用いて、図11に示される表に従ってラスト係数位置(lastX, lastY)の各プリフィックス部(last_sig_coeff_x_prefix, last_sig_coeff_y_prefix)が2値化される。そして、図12に示される表に従って、そのビン列が生成される。
【0043】
図9に示される16x16のTBの場合、ラスト係数位置(lastX, lastY)のプリフィックス部のビン列binsは図12に示される表の右から1列目の上から7行目の「1110」のコードとなる。つまり4ビットである。
【0044】
仮に、有効変換領域サイズを4x4として2値化をすると、プリフィックス部のビン列binsは、図12に示される表の右から2列目の上から7行目の「111」のコードとなる。つまり、4ビンである。すなわち、上述の例よりも1ビン短かくすることができる。
【0045】
X方向およびY方向を考慮すると、最大2ビン削減する余地がある。つまり、非特許文献9に記載の方法では、符号量が不要に増大し、符号化効率が低減するおそれがあった。また、復号処理する符号量が増大するので、復号処理の負荷が増大するおそれがあった。
【0046】
<セカンダリ変換識別子に基づく導出方法制御>
そこで、セカンダリ変換識別子の値に基づいて、有効変換領域サイズの導出を行うようにする。このようにすることにより、セカンダリ変換に対応した方法で有効変換領域サイズを導出し、それを用いてラスト係数のプリフィックス部を求めるようにすることができる。これにより、そのコード長の増大を抑制することができる。つまり、ラスト係数のビン長の増大を抑制することができる(典型的にはビン長を削減することができる)。すなわち、符号量の増大を抑制する(符号化効率の低減を抑制する)ことができる。そのため、復号処理の負荷の増大を抑制することができる。
【0047】
<2.第1の実施の形態>
<2-1.セカンダリ変換識別子のシグナリング>
<CUヘッダにおけるシグナリング>
セカンダリ変換識別子st_idxをCUヘッダにおいてシグナリングする。つまり、セカンダリ変換識別子を、そのCU内の各TUよりも先にシグナリングする。例えば、符号化の際に、符号化ブロックのヘッダに格納するように、セカンダリ変換識別子を設定する。換言するに、各変換ブロックよりも先にシグナリングするように、セカンダリ変換識別子を設定する。また、例えば、復号の際に、符号化ブロックのヘッダに格納されるセカンダリ変換識別子を解析する。換言するに、各変換ブロックよりも先にシグナリングされるセカンダリ変換識別子を解析する。
【0048】
その場合のCU内の残差データ(cu_residual)に関するシンタックスの例を図13に示す。図13の例の場合、上から8行目(グレー地の行)において、st_mode(つまり、st_idx)がシグナリングされている。つまり、CU内の各TU(transform_tree)(上から10行目)よりも先にセカンダリ変換識別子がシグナリングされている。
【0049】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。つまり、変換ブロックの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0050】
<非ゼロ変換係数のカウントの省略>
なおこの場合、セカンダリ変換識別子の復号/符号化条件から非ゼロ変換係数の数を参照する条件式を削除してもよい。例えば、符号化ブロック内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。また例えば、符号化ブロック内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析してもよい。
【0051】
このようにすることにより、符号化処理においてセカンダリ変換識別子を導出する際に、その煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においてセカンダリ変換識別子を解析する際に、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0052】
<残差PCMモードに基づくセカンダリ変換識別子の設定>
ところで、残差PCM符号化モード(BDPCM(Block-based Delta Pulse Code Modulation))がある。この残差PCM符号化モードの場合、セカンダリ変換がスキップされたブロックの残差と、その隣接ブロックの残差との差分が導出され、そのブロック毎の残差の差分が符号化される。bdpcm_flagは、このような残差PCM符号化モードが適用されるか否かを判定するフラグ情報である。bdpcm_flag = 1の場合残差PCM符号化モードが適用され、bdpcm_flag = 0の場合残差PCM符号化モードが適用されない。
【0053】
このような、残差PCM符号化モードが適用されない場合のみセカンダリ変換識別子をシグナリングする(つまり、残差PCM符号化モードが適用される場合、セカンダリ変換識別子をシグナリングしない)ようにしてもよい。
【0054】
このようにすることにより、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を設定することができる。また、復号の際に、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0055】
その場合のst_modeに関するシンタックスの例を図14に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、bdpcm_flag = 0である必要がある。つまり、残差PCM符号化モードが適用される場合、セカンダリ変換識別子がシグナリングされない。このように、非ゼロ変換係数の数に基づいてセカンダリ変換識別子を設定する代わりに、残差PCM符号化モードを適用するか否かを示すフラグに基づいて、セカンダリ変換識別子を設定してもよい。
【0056】
もちろん、このbdpcm_flagが適用されないとき(bdpcm_flag == 0)の条件は、セカンダリ変換を行うか否かの判定(stAllowedの導出)から除いてもよい。
【0057】
<変換スキップと適応直交変換の設定>
さらに、この場合、変換スキップするか否かを、セカンダリ変換を行うか否かに基づいて設定してもよい。つまり、セカンダリ変換を行わない場合のみ、変換スキップを行うことができるようにしてもよい。
【0058】
その場合のtransform_modeに関するシンタックスの例を図15に示す。図15に示されるように、上から2番目の行(グレー地の行)においてtsAllowedの値が設定される。このtsAllowedが真であるようにするためには、st_idx = 0である必要がある。つまり、セカンダリ変換がスキップされる場合のみ、tsAllowedが真となり得る。tsAllowedは、直交変換処理をスキップ(省略)する変換スキップを行うか否かを示す変換スキップフラグtransform_skip_flagの値を設定するパラメータである。上から4番目乃至6番目の行に示されるように、tsAllowedが真の場合、変換スキップフラグtransform_skip_flagがシグナリングされる。換言するに、tsAllowedが偽の場合、変換スキップフラグtransform_skip_flagがシグナリングされない。その場合、復号側においては、transform_skip_flag = 0と推定され、変換スキップが行われない。つまり、セカンダリ変換がスキップされる場合のみ、変換スキップを行うことができる。
【0059】
このようにすることにより、セカンダリ変換識別子に応じて容易に変換スキップフラグを設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に変換スキップフラグを解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0060】
もちろん、セカンダリ変換のスキップを変換スキップするか否かの条件に加えなくてもよい。
【0061】
なお、この変換スキップフラグtransform_skip_flagの場合と同様に、適応直交変換を適用するか否かの条件に、セカンダリ変換のスキップを加えてもよい。
【0062】
図15の上から3番目の行においてmtsAllowedの値が設定される。図15の変換スキップフラグtransform_skip_flagの場合と同様に、このmtsAllowedの設定条件に、st_idx = 0(&& (st_idx[x0][y0] == 0))を追加してもよい。つまり、セカンダリ変換がスキップされる場合のみ、mtsAllowedが真となり得るようにしてもよい。mtsAllowedは、TU毎に適応直交変換処理を適用するか否かを示す適応直交変換識別子tu_mts_idxの値を設定するパラメータである。上から7番目乃至9番目の行に示されるように、mtsAllowedが真の場合、適応直交変換識別子tu_mts_idxがシグナリングされる。換言するに、mtsAllowedが偽の場合、適応直交変換識別子tu_mts_idxがシグナリングされない。その場合、復号側においては、tu_mts_idx = 0と推定され、適応直交変換が適用されない。つまり、セカンダリ変換がスキップされる場合のみ、適応直交変換を行うことができる。
【0063】
このようにすることにより、セカンダリ変換識別子に応じて容易に適応直交変換識別子を設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に適応直交変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0064】
もちろん、セカンダリ変換のスキップを、適応直交変換を適用するか否かの条件に加えなくてもよい。つまり、図15のシンタックスにおいて、st_idx = 0(&& (st_idx[x0][y0] == 0))を、上から2番目の行にのみ追加してもよいし、上から3番目の行にのみ追加してもよいし、上から2番目の行と3番目の行との両方に追加してもよいし、どちらにも追加しなくてもよい。
【0065】
<コンテキストの導出>
また、この場合、例えば図16に示されるように、コンテキストの初期値(オフセット)ctxIncを、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて導出するようにしてもよい。
【0066】
図16において、mtsCtxは、ツリータイプがシングルツリーか否かのみに基づいて設定される。そのため、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。復号の際においても同様に、より容易に、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0067】
<2-2.符号化側>
<画像符号化装置>
次に、符号化側について説明する。図17は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図17に示される画像符号化装置100は、動画像の画像データを符号化する装置である。例えば、画像符号化装置100は、非特許文献1乃至非特許文献10のいずれかに記載の符号化方式で動画像の画像データを符号化する。
【0068】
なお、図17においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図17に示されるものが全てとは限らない。つまり、画像符号化装置100において、図17においてブロックとして示されていない処理部が存在したり、図17において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0069】
図17に示されるように画像符号化装置100は、制御部101、並べ替えバッファ111、演算部112、直交変換部113、量子化部114、符号化部115、蓄積バッファ116、逆量子化部117、逆直交変換部118、演算部119、インループフィルタ部120、フレームメモリ121、予測部122、およびレート制御部123を有する。
【0070】
<制御部>
制御部101は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ111により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部101は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【0071】
これらの符号化パラメータの詳細については後述する。制御部101は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【0072】
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部115と予測部122とに供給される。
変換情報Tinfoは、符号化部115、直交変換部113、量子化部114、逆量子化部117、および逆直交変換部118に供給される。
フィルタ情報Finfoは、インループフィルタ部120に供給される。
【0073】
<並べ替えバッファ>
画像符号化装置100には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ111は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ111は、制御部101の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ111は、処理後の各入力画像を演算部112に供給する。また、並べ替えバッファ111は、その各入力画像(元画像)を、予測部122やインループフィルタ部120にも供給する。
【0074】
<演算部>
演算部112は、処理単位のブロックに対応する画像I、および予測部122より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部113に供給する。
【0075】
D = I - P
【0076】
<直交変換部>
直交変換部113は、演算部112から供給される予測残差Dと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。なお、直交変換部113は、直交変換のタイプ(変換係数)を適応的に選択する適応直交変換を行うことができる。直交変換部113は、その得られた変換係数Coeffを量子化部114に供給する。
【0077】
<量子化部>
量子化部114は、直交変換部113から供給される変換係数Coeffと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部123により制御される。量子化部114は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部115および逆量子化部117に供給する。
【0078】
<符号化部>
符号化部115は、量子化部114から供給された量子化変換係数レベルlevelと、制御部101から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部120から供給されるフィルタ係数等のフィルタに関する情報と、予測部122から供給される最適な予測モードに関する情報とを入力とする。符号化部115は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
【0079】
また、符号化部115は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【0080】
さらに、符号化部115は、インループフィルタ部120から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部122から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部115は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
【0081】
また、符号化部115は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部115は、その符号化データを蓄積バッファ116に供給する。
【0082】
<蓄積バッファ>
蓄積バッファ116は、符号化部115において得られた符号化データを、一時的に保持する。蓄積バッファ116は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置100の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ116は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
【0083】
<逆量子化部>
逆量子化部117は、逆量子化に関する処理を行う。例えば、逆量子化部117は、量子化部114から供給される量子化変換係数レベルlevelと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部114において行われる量子化の逆処理である。逆量子化部117は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部118に供給する。
【0084】
<逆直交変換部>
逆直交変換部118は、逆直交変換に関する処理を行う。例えば、逆直交変換部118は、逆量子化部117から供給される変換係数Coeff_IQと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部113において行われる直交変換の逆処理である。つまり、逆直交変換部118は、逆直交変換のタイプ(変換係数)を適応的に選択する適応逆直交変換を行うことができる。
【0085】
逆直交変換部118は、このような逆直交変換により得られた予測残差D'を演算部119に供給する。なお、逆直交変換部118は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部118については、復号側について行う説明(後述する)を適用することができる。
【0086】
<演算部>
演算部119は、逆直交変換部118から供給される予測残差D'と、予測部122から供給される予測画像Pとを入力とする。演算部119は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部119は、導出した局所復号画像Rlocalをインループフィルタ部120およびフレームメモリ121に供給する。
【0087】
<インループフィルタ部>
インループフィルタ部120は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部120は、演算部119から供給される局所復号画像Rlocalと、制御部101から供給されるフィルタ情報Finfoと、並べ替えバッファ111から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部120に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部120に入力されるようにしてもよい。
【0088】
インループフィルタ部120は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部120は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
【0089】
例えば、インループフィルタ部120は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0090】
もちろん、インループフィルタ部120が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部120がウィーナーフィルタ等を適用するようにしてもよい。
【0091】
インループフィルタ部120は、フィルタ処理された局所復号画像Rlocalをフレームメモリ121に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部120は、そのフィルタに関する情報を符号化部115に供給する。
【0092】
<フレームメモリ>
フレームメモリ121は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ121は、演算部119から供給される局所復号画像Rlocalや、インループフィルタ部120から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ121は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ121内のバッファへ格納する)。フレームメモリ121は、予測部122の要求に応じて、その復号画像R(またはその一部)を予測部122に供給する。
【0093】
<予測部>
予測部122は、予測画像の生成に関する処理を行う。例えば、予測部122は、制御部101から供給される予測モード情報Pinfoと、並べ替えバッファ111から供給される入力画像(元画像)と、フレームメモリ121から読み出す復号画像R(またはその一部)を入力とする。予測部122は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部122は、生成した予測画像Pを演算部112および演算部119に供給する。また、予測部122は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部115に供給する。
【0094】
<レート制御部>
レート制御部123は、レート制御に関する処理を行う。例えば、レート制御部123は、蓄積バッファ116に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。
【0095】
なお、これらの処理部(制御部101、並べ替えバッファ111乃至レート制御部123)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【0096】
画像符号化装置100は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して画像の符号化を行う。したがって、上述したように、復号処理の負荷の増大を抑制することができる。
【0097】
<制御部>
図18は、制御部101の主な構成例を示すブロック図である。図18に示されるように、制御部101は、セカンダリ変換識別子設定部151、変換スキップフラグ設定部152、適応直交変換識別子設定部153、およびコンテキスト設定部154を有する。
【0098】
セカンダリ変換識別子設定部151は、セカンダリ変換識別子st_idxの設定に関する処理を行う。例えば、セカンダリ変換識別子設定部151は、符号化パラメータとして、並べ替えバッファ111に保持されているフレーム画像の処理対象CUについてのセカンダリ変換識別子を設定する。その際、セカンダリ変換識別子設定部151は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用する。
【0099】
例えば、セカンダリ変換識別子設定部151は、CUヘッダに格納するように(つまり、各TUよりも先にシグナリングするように)、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0100】
また、セカンダリ変換識別子設定部151は、CU内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においても、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0101】
さらに、セカンダリ変換識別子設定部151は、残差PCM符号化モードが適用されない場合のみセカンダリ変換識別子をシグナリングすることができる。このようにすることにより、復号の際に、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0102】
以上のようにセカンダリ変換識別子設定部151により設定されたセカンダリ変換識別子st_idxは、Tinfoとして、直交変換部113、符号化部115、および逆直交変換部118に供給される。
【0103】
変換スキップフラグ設定部152は、変換スキップフラグtransform_skip_flagの設定に関する処理を行う。例えば、変換スキップフラグ設定部152は、符号化パラメータとして、並べ替えバッファ111に保持されているフレーム画像の処理対象TUについての変換スキップフラグを設定する。その際、変換スキップフラグ設定部152は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0104】
例えば、変換スキップフラグ設定部152は、セカンダリ変換を行うか否かに基づいて、変換スキップフラグを設定してもよい。つまり、tsAllowedの設定条件に、st_idx = 0(&& (st_idx[x0][y0] == 0))を追加してもよい。このようにすることにより、セカンダリ変換識別子に応じて容易に変換スキップフラグを設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に変換スキップフラグを解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0105】
以上のように変換スキップフラグ設定部152により設定された変換スキップフラグtransform_skip_flagは、Tinfoとして、直交変換部113、符号化部115、および逆直交変換部118に供給される。
【0106】
適応直交変換識別子設定部153は、適応直交変換識別子tu_mts_idxの設定に関する処理を行う。例えば、適応直交変換識別子設定部153は、符号化パラメータとして、並べ替えバッファ111に保持されているフレーム画像の処理対象TUについての適応直交変換識別子を設定する。その際、適応直交変換識別子設定部153は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0107】
例えば、適応直交変換識別子設定部153は、セカンダリ変換を行うか否かに基づいて、適応直交変換識別子を設定してもよい。つまり、mtsAllowedの設定条件に、st_idx = 0(&& (st_idx[x0][y0] == 0))を追加してもよい。このようにすることにより、セカンダリ変換識別子に応じて容易に適応直交変換識別子を設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に適応直交変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0108】
以上のように適応直交変換識別子設定部153により設定された適応直交変換識別子tu_mts_idxは、Tinfoとして、直交変換部113、符号化部115、および逆直交変換部118に供給される。
【0109】
コンテキスト設定部154は、コンテキストの設定に関する処理を行う。例えば、コンテキスト設定部154は、符号化パラメータとして、並べ替えバッファ111に保持されているフレーム画像の処理対象CUについてのセカンダリ変換識別子を設定するために用いられるコンテキストの初期値(オフセット)ctxIncを導出する。その際、コンテキスト設定部154は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0110】
例えば、コンテキスト設定部154は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出してもよい。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。
【0111】
なお、制御部101は、その他の符号化パラメータも生成することができる。また、制御部101は、符号化パラメータの生成以外の任意の処理も行うことができる。それらの説明については省略する。
【0112】
<直交変換部>
図19は、直交変換部113の主な構成例を示すブロック図である。図19において、直交変換部1123は、プライマリ変換部171およびセカンダリ変換部172を有する。
【0113】
プライマリ変換部171は、プライマリ変換に関する処理を行う。例えば、プライマリ変換部171は、演算部112から供給される予測残差Dを取得する。また、プライマリ変換部171は、その予測残差Dに対して、所定の行列演算等を行い、プライマリ変換後の変換係数Coeff_P(プライマリ変換係数とも称する)を導出する。つまり、プライマリ変換部171は、予測残差Dに対してプライマリ変換を行う。
【0114】
なお、プライマリ変換部171は、制御部101から供給されるTinfo等の符号化パラメータに基づいてこのプライマリ変換を行う。つまり、プライマリ変換部171は、制御部101の制御に従ってプライマリ変換を行う。プライマリ変換部171は、このように導出したプライマリ変換係数Coeff_Pをセカンダリ変換部172に供給する。
【0115】
なお、プライマリ変換部171は、制御部101の制御に従って(制御部101から供給される符号化パラメータに従って)、このプライマリ変換をスキップ(省略)することもできる。その場合、プライマリ変換部171は、予測残差Dをプライマリ変換係数Coeff_Pとしてセカンダリ変換部172に供給する。
【0116】
セカンダリ変換部172は、セカンダリ変換に関する処理を行う。例えば、セカンダリ変換部172は、プライマリ変換部171から供給されるプライマリ変換係数Coeff_Pを取得する。セカンダリ変換部172は、そのプライマリ変換係数Coeff_Pに対して、所定の行列演算等を行い、セカンダリ変換後の変換係数Coeff(セカンダリ変換係数とも称する)を導出する。つまり、セカンダリ変換部172は、プライマリ変換係数Coeff_Pに対してセカンダリ変換を行う。
【0117】
なお、セカンダリ変換部172は、制御部101から供給されるTinfo等の符号化パラメータに基づいてこのセカンダリ変換を行う。つまり、セカンダリ変換部172は、制御部101の制御に従ってセカンダリ変換を行う。セカンダリ変換部172は、このように導出したセカンダリ変換係数Coeff(すなわち、変換係数Coeff)を量子化部114に供給する。
【0118】
なお、セカンダリ変換部172は、制御部101の制御に従って(制御部101から供給される符号化パラメータに従って)、このセカンダリ変換をスキップ(省略)することもできる。その場合、セカンダリ変換部172は、プライマリ変換係数Coeff_Pをセカンダリ変換係数Coeff(すなわち、変換係数Coeff)として量子化部114に供給する。
【0119】
セカンダリ変換部172は、ラスタライズ部181、行列演算部182、スケーリング部183、行列化部184、および行列設定部185を有する。
【0120】
ラスタライズ部181は、サブブロック単位(4x4サブブロック)毎に、プライマリ変換部171から供給されるプライマリ変換係数Coeff_Pを1次元ベクトル(1x16の係数群)へ変換する。ラスタライズ部181は、得られた1次元ベクトルを行列演算部182に供給する。
【0121】
行列演算部182は、行列演算に関する処理を行う。例えば、行列演算部182は、ラスタライズ部181から供給される1次元ベクトルを取得する。また、行列演算部182は、行列設定部185から供給されるセカンダリ変換行列Rを取得する。行列演算部182は、その1次元ベクトルとセカンダリ変換行列Rとを用いて行列演算(行列積)を行う。行列演算部182は、その行列演算結果(行列演算により得られた係数データ)をスケーリング部183に供給する。
【0122】
スケーリング部183は、係数データのスケーリングに関する処理を行う。例えば、スケーリング部183は、行列演算部182から供給される係数データ(行列演算結果)を取得する。スケーリング部183は、その係数データに対してクリップ処理等を行う。スケーリング部183は、処理後の係数データを行列化部184に供給する。
【0123】
行列化部184は、1次元ベクトルの行列化に関する処理を行う。例えば、行列化部184は、スケーリング部から供給されるスケーリングされた1x16の係数データ(1次元ベクトル)を取得する。また、行列化部184は、ラスタライズ部181の手法に対応する手法により、その1次元ベクトルを4x4行列に変換する。行列化部184は、このようにして得られた行列(係数データ群)を変換係数Coeffとして量子化部114に供給する。
【0124】
行列設定部185は、行列演算部182において用いられるセカンダリ変換行列Rの設定に関する処理を行う。例えば、行列設定部185は、制御部101により設定されたセカンダリ変換識別子st_idxを取得する。また、行列設定部185は、そのセカンダリ変換識別子st_idxに基づいて、セカンダリ変換行列Rを設定する。例えば、行列設定部185は、内部メモリ(不図示)に記憶されている候補の中から、セカンダリ変換識別子st_idxに対応するものを読み出し、行列演算部182に供給する。
【0125】
つまり、セカンダリ変換部172は、制御部101により設定されたセカンダリ変換識別子st_idxに従って(つまり、制御部101の制御に従って)セカンダリ変換を行う。
【0126】
<符号化部>
図17の符号化部115は、制御部101により設定された符号化パラメータを符号化し、その符号化パラメータを含む符号化データ(ビットストリーム)を生成する。その際、符号化部115は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0127】
つまり、符号化部115は、セカンダリ変換識別子st_idxをCUヘッダにおいて(そのCU内の各TUよりも先に)シグナリングする。このようにすることにより、上述したように、復号の負荷の増大を抑制することができる。
【0128】
<画像符号化処理の流れ>
次に、以上のような構成の画像符号化装置100により実行される画像符号化処理の流れの例を、図20のフローチャートを参照して説明する。
【0129】
画像符号化処理が開始されると、ステップS101において、並べ替えバッファ111は、制御部101に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【0130】
ステップS102において、制御部101は、並べ替えバッファ111が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
【0131】
ステップS103において、制御部101は、並べ替えバッファ111が保持する入力画像についての符号化パラメータを決定(設定)する。
【0132】
ステップS104において、予測部122は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部122は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【0133】
ステップS105において、演算部112は、入力画像と、ステップS104の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部112は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【0134】
ステップS106において、直交変換部113は、ステップS105の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
【0135】
ステップS107において、量子化部114は、制御部101により算出された量子化パラメータを用いる等して、ステップS106の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
【0136】
ステップS108において、逆量子化部117は、ステップS107の処理により生成された量子化変換係数レベルlevelを、そのステップS107の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
【0137】
ステップS109において、逆直交変換部118は、ステップS108の処理により得られた変換係数Coeff_IQを、ステップS106の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS109の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
【0138】
ステップS110において、演算部119は、ステップS109の処理により導出された予測残差D'に、ステップS104の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【0139】
ステップS111において、インループフィルタ部120は、ステップS110の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【0140】
ステップS112において、フレームメモリ121は、ステップS110の処理により導出された、局所的に復号された復号画像や、ステップS111においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【0141】
ステップS113において、符号化部115は、ステップS107の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部115は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部115は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部115は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【0142】
ステップS114において、蓄積バッファ116は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置100の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部123は、必要に応じてレート制御を行う。
【0143】
ステップS114の処理が終了すると、画像符号化処理が終了する。
【0144】
<符号化パラメータ設定処理の流れ>
図20のステップS103において実行される符号化パラメータ設定処理の流れの例を、図21のフローチャートを参照して説明する。制御部101は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。
【0145】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS131において、CUヘッダに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、各TUよりも先にシグナリングするように、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0146】
なお、その際、セカンダリ変換識別子設定部151は、CU内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においても、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0147】
さらに、セカンダリ変換識別子設定部151は、残差PCM符号化モードが適用されない場合のみセカンダリ変換識別子をシグナリングすることができる。このようにすることにより、復号の際に、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0148】
ステップS132において、変換スキップフラグ設定部152は、ステップS131において設定されたセカンダリ変換識別子に基づいて、変換スキップフラグを設定する。つまり、変換スキップフラグ設定部152は、セカンダリ変換を行うか否かに基づいて、変換スキップフラグを設定する。このようにすることにより、セカンダリ変換識別子に応じて容易に変換スキップフラグを設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に変換スキップフラグを解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0149】
ステップS133において、適応直交変換識別子設定部153は、ステップS131において設定されたセカンダリ変換識別子に基づいて、適応直交変換識別子を設定する。つまり、適応直交変換識別子設定部153は、セカンダリ変換を行うか否かに基づいて、適応直交変換識別子を設定する。このようにすることにより、セカンダリ変換識別子に応じて容易に適応直交変換識別子を設定することができる。また、復号の際に、セカンダリ変換識別子に応じて容易に適応直交変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0150】
ステップS134において、コンテキスト設定部154は、適応直交変換識別子を用いずにコンテキストを設定する。つまり、コンテキスト設定部154は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出する。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。
【0151】
ステップS134の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0152】
なお、ステップS132において、変換スキップフラグ設定部152が、セカンダリ変換識別子を用いずに変換スキップフラグを設定してもよい。また、ステップS133において、適応直交変換識別子設定部153が、セカンダリ変換識別子を用いずに適応直交変換識別子を設定してもよい。さらに、ステップS134において、コンテキスト設定部154が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0153】
<直交変換処理の流れ>
図20のステップS106において実行される直交変換処理の流れの例を、図22のフローチャートを参照して説明する。
【0154】
直交変換処理が開始されると、直交変換部113のプライマリ変換部171は、ステップS151において、図20のステップS103の処理において設定された符号化パラメータに基づいてプライマリ変換を行う。例えば、プライマリ変換部171は、符号化パラメータにより指定される方法により、プライマリ変換を行う。また、符号化パラメータによりプライマリ変換のスキップが指定される場合、プライマリ変換部171は、そのプライマリ変換をスキップする。
【0155】
ステップS152において、セカンダリ変換部172は、図20のステップS103の処理において設定された符号化パラメータに基づいてセカンダリ変換を行う。例えば、セカンダリ変換部172は、図21のフローチャートを参照して説明したように設定された各種パラメータを用いてセカンダリ変換を行う。なお、セカンダリ変換識別子等により、セカンダリ変換のスキップが指定される場合、セカンダリ変換部172は、そのセカンダリ変換をスキップする。
【0156】
ステップS152の処理が終了すると直交変換処理が終了し、処理は図20に戻る。
【0157】
<符号化処理>
図20の画像符号化処理のステップS113において、符号化部115は、ステップS103において設定された符号化パラメータを符号化する。その際、符号化部115は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0158】
つまり、符号化部115は、セカンダリ変換識別子st_idxをCUヘッダにおいて(そのCU内の各TUよりも先に)シグナリングする。このようにすることにより、上述したように、復号の負荷の増大を抑制することができる。
【0159】
<2-3.復号側>
<画像復号装置>
次に、復号側について説明する。図23は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図23に示される画像復号装置200は、動画像の符号化データを符号化する装置である。例えば、画像復号装置200は、非特許文献1乃至非特許文献10のいずれかに記載の復号方式で符号化データを復号し、動画像データを生成する。例えば、画像復号装置200は、上述の画像符号化装置100により生成された符号化データ(ビットストリーム)を復号し、動画像データを生成する。
【0160】
なお、図23においては、処理部やデータの流れ等の主なものを示しており、図23に示されるものが全てとは限らない。つまり、画像復号装置200において、図23においてブロックとして示されていない処理部が存在したり、図23において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【0161】
図23において、画像復号装置200は、蓄積バッファ211、復号部212、逆量子化部213、逆直交変換部214、演算部215、インループフィルタ部216、並べ替えバッファ217、フレームメモリ218、および予測部219を有する。なお、予測部219は、不図示のイントラ予測部、およびインター予測部を有する。
【0162】
<蓄積バッファ>
蓄積バッファ211は、画像復号装置200に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ211は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部212に供給する。
【0163】
<復号部>
復号部212は、画像の復号に関する処理を行う。例えば、復号部212は、蓄積バッファ211から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【0164】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部212は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
【0165】
<ヘッダ情報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(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
【0166】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【0167】
コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
【0168】
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
【0169】
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【0170】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【0171】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
【0172】
コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【0173】
多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
【0174】
色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式のような割り当て方となる。
【0175】
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
【0176】
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
【0177】
色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【0178】
動き予測情報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を参照)。
【0179】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0180】
<変換情報Tinfo>
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0181】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。
変換スキップフラグ(transform_skip_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子(scanIdx)
セカンダリ変換識別子(st_idx)
適応直交変換識別子(mts_idx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
【0182】
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
【0183】
cbf(coded_block_flag):残差データ有無フラグ
last_sig_coeff_x_pos:ラスト非ゼロ変換係数X座標
last_sig_coeff_y_pos:ラスト非ゼロ変換係数Y座標
coded_sub_block_flag:サブブロック非ゼロ変換係数有無フラグ
sig_coeff_flag:非ゼロ変換係数有無フラグ
gr1_flag:非ゼロ変換係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
gr2_flag:非ゼロ変換係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
sign_flag:非ゼロ変換係数の正負を示す符号(サイン符号とも呼ぶ)
coeff_abs_level_remaining:非ゼロ変換係数の残余レベル(非ゼロ変換係数残余レベルとも呼ぶ)
など。
【0184】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0185】
<フィルタ情報Finfo>
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【0186】
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【0187】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【0188】
復号部212の説明に戻る。復号部212は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部212は、その量子化変換係数レベルlevelを、逆量子化部213に供給する。
【0189】
また、復号部212は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【0190】
ヘッダ情報Hinfoは、逆量子化部213、逆直交変換部214、予測部219、インループフィルタ部216に供給される。
予測モード情報Pinfoは、逆量子化部213および予測部219に供給される。
変換情報Tinfoは、逆量子化部213および逆直交変換部214に供給される。
フィルタ情報Finfoは、インループフィルタ部216に供給される。
【0191】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【0192】
<逆量子化部>
逆量子化部213は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部213は、復号部212から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。
【0193】
なお、この逆量子化は、画像符号化装置100の量子化部114による量子化の逆処理として行われる。また、この逆量子化は、画像符号化装置100の逆量子化部117による逆量子化と同様の処理である。つまり、画像符号化装置100の逆量子化部117は、逆量子化部213と同様の処理(逆量子化)を行う。
【0194】
逆量子化部213は、導出した変換係数Coeff_IQを逆直交変換部214に供給する。
【0195】
<逆直交変換部>
逆直交変換部214は、逆直交変換に関する処理を行う。例えば、逆直交変換部214は、逆量子化部213から供給される変換係数Coeff_IQ、および、復号部212から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。
【0196】
なお、この逆直交変換は、画像符号化装置100の直交変換部113による直交変換の逆処理として行われる。また、この逆直交変換は、画像符号化装置100の逆直交変換部118による逆直交変換と同様の処理である。つまり、画像符号化装置100の逆直交変換部118は、逆直交変換部214と同様の処理(逆直交変換)を行う。
【0197】
逆直交変換部214は、導出した予測残差D'を演算部215に供給する。
【0198】
<演算部>
演算部215は、画像に関する情報の加算に関する処理を行う。例えば、演算部215は、逆直交変換部214から供給される予測残差D'と、予測部219から供給される予測画像Pとを入力とする。演算部215は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
【0199】
Rlocal = D' + P
【0200】
演算部215は、導出した局所復号画像Rlocalを、インループフィルタ部216およびフレームメモリ218に供給する。
【0201】
<インループフィルタ部>
インループフィルタ部216は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部216は、演算部215から供給される局所復号画像Rlocalと、復号部212から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部216に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【0202】
インループフィルタ部216は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【0203】
例えば、インループフィルタ部216は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【0204】
インループフィルタ部216は、符号化側(例えば画像符号化装置100のインループフィルタ部120)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部216が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部216がウィーナーフィルタ等を適用するようにしてもよい。
【0205】
インループフィルタ部216は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ217およびフレームメモリ218に供給する。
【0206】
<並べ替えバッファ>
並べ替えバッファ217は、インループフィルタ部216から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ217は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ217は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ217は、並べ替えた復号画像R群を動画像データとして画像復号装置200の外部に出力する。
【0207】
<フレームメモリ>
フレームメモリ218は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ218は、演算部215より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。
【0208】
また、フレームメモリ218は、インループフィルタ部216から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。フレームメモリ218は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部219に供給する。
【0209】
なお、フレームメモリ218が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【0210】
<予測部>
予測部219は、予測画像の生成に関する処理を行う。例えば、予測部219は、復号部212から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部219は、その予測モード情報Pinfoによって指定される、フレームメモリ218に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部219は、導出した予測画像Pを、演算部215に供給する。
【0211】
なお、これらの処理部(蓄積バッファ211乃至予測部219)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
【0212】
画像復号装置200は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して符号化データの復号を行う。したがって、上述したように、復号処理の負荷の増大を抑制することができる。
【0213】
<復号部>
図24は、復号部212の主な構成例を示すブロック図である。図24に示されるように、復号部212は、復号部241および解析部242を有する。
【0214】
復号部241は、符号化データ(ビットストリーム)の復号に関する処理を行う。例えば、復号部241は、蓄積バッファ211から供給されるビットストリームを取得する。また、復号部241は、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号する。復号部241は、その復号結果を解析部242に供給する。
【0215】
解析部242は、パラメータの解析に関する処理を行う。例えば、解析部242は、復号部241から供給される復号結果を取得する。また、解析部242は、その復号結果から、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報をパースする(解析して取得する)。
【0216】
また、解析部242は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出し、逆量子化部213に供給する。
【0217】
解析部242は、セカンダリ変換識別子解析部251、変換スキップフラグ解析部252、適応直交変換識別子解析部253、およびコンテキスト設定部254を有する。
【0218】
セカンダリ変換識別子解析部251は、セカンダリ変換識別子st_idxの解析に関する処理を行う。例えば、セカンダリ変換識別子解析部251は、復号部241から供給された復号結果から、シグナリングされたセカンダリ変換識別子をパースする。その際、セカンダリ変換識別子解析部251は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用する。
【0219】
例えば、セカンダリ変換識別子解析部251は、CUヘッダに格納された(つまり、各TUよりも先にシグナリングされた)セカンダリ変換識別子をパースする。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0220】
また、セカンダリ変換識別子解析部251は、CU内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子をパースすることができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0221】
さらに、セカンダリ変換識別子解析部251は、残差PCM符号化モードが適用されない場合のみシグナリングされるセカンダリ変換識別子をパースすることができる。つまり、例えば、bdpcm_flag = 1の場合、セカンダリ変換識別子解析部251は、そのことに基づいてセカンダリ変換が行われないと判定する。このようにすることにより、より容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0222】
以上のようにセカンダリ変換識別子解析部251によりパースされたセカンダリ変換識別子st_idxは、Tinfoとして、逆量子化部213や逆直交変換部214に供給される。
【0223】
変換スキップフラグ解析部252は、変換スキップフラグtransform_skip_flagの解析に関する処理を行う。例えば、変換スキップフラグ解析部252は、符号化パラメータとして、処理対象TUについての変換スキップフラグをパースする。その際、変換スキップフラグ解析部252は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0224】
例えば、変換スキップフラグ解析部252は、セカンダリ変換を行うか否かに基づいて、変換スキップフラグをパースする。例えば、変換スキップフラグ解析部252は、セカンダリ変換が行われる場合、変換スキップが行われないと判定する。このように、セカンダリ変換識別子に応じて容易に変換スキップフラグを解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0225】
以上のように変換スキップフラグ解析部252によりパースされた変換スキップフラグtransform_skip_flagは、Tinfoとして、逆量子化部213や逆直交変換部214に供給される。
【0226】
適応直交変換識別子解析部253は、適応直交変換識別子tu_mts_idxの解析に関する処理を行う。例えば、適応直交変換識別子解析部253は、符号化パラメータとして、処理対象TUについての適応直交変換識別子をパースする。その際、適応直交変換識別子解析部253は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0227】
例えば、適応直交変換識別子解析部253は、セカンダリ変換を行うか否かに基づいて、適応直交変換識別子をパースする。例えば、適応直交変換識別子解析部253は、セカンダリ変換が行われる場合、適応直交変換が適用されないと判定する。このように、セカンダリ変換識別子に応じて容易に適応直交変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0228】
以上のように適応直交変換識別子解析部253により設定された適応直交変換識別子tu_mts_idxは、Tinfoとして、逆量子化部213や逆直交変換部214に供給される。
【0229】
コンテキスト設定部254は、コンテキストの設定に関する処理を行う。例えば、コンテキスト設定部254は、処理対象CUについてのセカンダリ変換識別子を設定するために用いられるコンテキストの初期値(オフセット)ctxIncを導出する。その際、コンテキスト設定部254は、<2-1.セカンダリ変換識別子のシグナリング>において説明した手法を適用することができる。
【0230】
例えば、コンテキスト設定部254は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出してもよい。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0231】
なお、解析部242は、その他の符号化パラメータもパースすることができる。また、解析部242は、符号化パラメータの解析以外の任意の処理も行うことができる。それらの説明については省略する。
【0232】
<逆直交変換部>
図25は、図23の逆直交変換部214の主な構成例を示すブロック図である。図25に示されるように、逆直交変換部214は、逆セカンダリ変換部271および逆プライマリ変換部272を有する。
【0233】
逆セカンダリ変換部271は、セカンダリ変換の逆処理である逆セカンダリ変換に関する処理を行う。例えば、逆セカンダリ変換部271は、逆量子化部213から供給される変換係数Coeff_IQを取得する。また、逆セカンダリ変換部271は、その変換係数Coeff_IQに対して、所定の行列演算等を行い、逆セカンダリ変換後の変換係数Coeff_IS(プライマリ変換係数ともいう)を導出する。つまり、逆セカンダリ変換部271は、変換係数Coeff_IQに対して逆セカンダリ変換を行う。
【0234】
なお、逆セカンダリ変換部271は、復号部212から供給されるTinfo等の符号化パラメータ(ビットストリームにおいてシグナリングされた符号化パラメータを復号部212がパースしたもの)に基づいてこの逆セカンダリ変換を行う。つまり、逆セカンダリ変換部271は、復号部212の制御に従って逆セカンダリ変換を行う。逆セカンダリ変換部271は、このように導出したプライマリ変換係数Coeff_ISを逆プライマリ変換部272に供給する。
【0235】
なお、逆セカンダリ変換部271は、復号部212の制御に従って(復号部212から供給される符号化パラメータに従って)、この逆セカンダリ変換をスキップ(省略)することもできる。その場合、逆セカンダリ変換部271は、変換係数Coeff_IQをプライマリ変換係数Coeff_ISとして逆プライマリ変換部272に供給する。
【0236】
逆プライマリ変換部272は、プライマリ変換の逆処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部272は、逆セカンダリ変換部271から供給されるプライマリ変換係数Coeff_ISを取得する。また、逆プライマリ変換部272は、そのプライマリ変換係数Coeff_ISに対して、所定の行列演算等を行い、予測残差D'を導出する。
【0237】
なお、逆プライマリ変換部272は、復号部212から供給されるTinfo等の符号化パラメータ(ビットストリームにおいてシグナリングされた符号化パラメータを復号部212がパースしたもの)に基づいてこの逆プライマリ変換を行う。つまり、逆プライマリ変換部272は、復号部212の制御に従って逆プライマリ変換を行う。逆プライマリ変換部272は、このように導出した予測残差D'を演算部215に供給する。
【0238】
なお、逆プライマリ変換部272は、復号部212の制御に従って(復号部212から供給される符号化パラメータに従って)、この逆プライマリ変換をスキップ(省略)することもできる。その場合、逆プライマリ変換部272は、プライマリ変換係数Coeff_ISを予測残差D'として演算部215に供給する。
【0239】
逆セカンダリ変換部271は、ラスタライズ部281、行列演算部282、スケーリング部283、行列化部284、および行列設定部285を有する。
【0240】
ラスタライズ部281は、サブブロック単位(4x4サブブロック)毎に、逆量子化部213から供給される変換係数Coeff_IQを1次元ベクトル(1x16の係数群)へ変換する。ラスタライズ部281は、得られた1次元ベクトルを行列演算部282に供給する。
【0241】
行列演算部282は、行列演算に関する処理を行う。例えば、行列演算部282は、ラスタライズ部281から供給される1次元ベクトルを取得する。また、行列演算部282は、行列設定部285から供給される逆セカンダリ変換行列IR(=RT)を取得する。行列演算部282は、その1次元ベクトルと逆セカンダリ変換行列IRとを用いて行列演算(行列積)を行う。行列演算部282は、その行列演算結果(行列演算により得られた係数データ)をスケーリング部283に供給する。
【0242】
スケーリング部283は、係数データのスケーリングに関する処理を行う。例えば、スケーリング部283は、行列演算部282から供給される係数データ(行列演算結果)を取得する。スケーリング部283は、その係数データに対してクリップ処理等を行う。スケーリング部283は、処理後の係数データを行列化部284に供給する。
【0243】
行列化部284は、1次元ベクトルの行列化に関する処理を行う。例えば、行列化部284は、スケーリング部283から供給されるスケーリングされた1x16の係数データ(1次元ベクトル)を取得する。また、行列化部284は、ラスタライズ部281の手法に対応する手法により、その1次元ベクトルを4x4行列に変換する。行列化部284は、このようにして得られた行列(係数データ群)をプライマリ変換係数Coeff_ISとして逆プライマリ変換部272に供給する。
【0244】
行列設定部285は、行列演算部282において用いられる逆セカンダリ変換行列IRの設定に関する処理を行う。例えば、行列設定部285は、復号部212から供給されたセカンダリ変換識別子st_idxを取得する。また、行列設定部285は、そのセカンダリ変換識別子st_idxに基づいて、逆セカンダリ変換行列IRを設定する。例えば、行列設定部285は、内部メモリ(不図示)に記憶されている候補の中から、セカンダリ変換識別子st_idxに対応するもの(セカンダリ変換識別子st_idxに対応するセカンダリ変換行列Rの転置行列)を読み出し、行列演算部282に供給する。
【0245】
つまり、逆セカンダリ変換部271は、復号部212から供給されたセカンダリ変換識別子st_idxに従って(つまり、復号部212の制御に従って)逆セカンダリ変換を行う。
【0246】
<画像復号処理の流れ>
次に、以上のような構成の画像復号装置200により実行される各処理の流れについて説明する。最初に、図26のフローチャートを参照して、画像復号処理の流れの例を説明する。
【0247】
画像復号処理が開始されると、蓄積バッファ211は、ステップS201において、画像復号装置200の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
【0248】
ステップS202において、復号部212は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る。また、復号部212は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
【0249】
ステップS203において、逆量子化部213は、ステップS202の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
【0250】
ステップS204において、逆直交変換部214は、ステップS203において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
【0251】
ステップS205において、予測部219は、ステップS202においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ218に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【0252】
ステップS206において、演算部215は、ステップS204において得られた予測残差D'と、ステップS205において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【0253】
ステップS207において、インループフィルタ部216は、ステップS206の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【0254】
ステップS208において、並べ替えバッファ217は、ステップS207の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置200の外部に出力される。
【0255】
また、ステップS209において、フレームメモリ218は、ステップS206の処理により得られた局所復号画像Rlocal、および、ステップS207の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【0256】
ステップS209の処理が終了すると、画像復号処理が終了する。
【0257】
<復号処理の流れ>
図26のステップS202において実行される復号処理の流れの例を、図27のフローチャートを参照して説明する。復号部212は、<2-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0258】
復号処理が開始されると、復号部241は、ステップS231において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0259】
ステップS232において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、CUヘッダの(TUより先にシグナリングされた)セカンダリ変換識別子を解析する。
【0260】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子が得られる。つまり、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。つまり、変換ブロックの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0261】
なお、セカンダリ変換識別子は、CU内の非ゼロ変換係数の数に依らずに設定されていてもよい。その場合、セカンダリ変換識別子解析部251は、CU内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0262】
さらに、セカンダリ変換識別子は、残差PCM符号化モードが適用されない場合のみシグナリングされたものであってもよい。その場合、セカンダリ変換識別子解析部251は、残差PCM符号化モードが適用されたか否かに基づいてセカンダリ変換識別子を解析することができる。例えば、セカンダリ変換識別子解析部251は、残差PCM符号化モードが適用された場合、セカンダリ変換識別子がシグナリングされていない(つまり、セカンダリ変換をスキップする)と判定することができる。したがって、容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0263】
ステップS233において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。この変換スキップフラグは、セカンダリ変換識別子に基づいて設定されていてもよい。その場合、変換スキップフラグ解析部252は、セカンダリ変換を行うか否かに基づいて、変換スキップフラグを解析することができる。例えば、変換スキップフラグ解析部252は、セカンダリ変換が行われる場合、変換スキップフラグがシグナリングされていない(つまり、変換スキップを行わない)と判定することができる。したがって、容易に変換スキップフラグを解析することができ、復号処理の負荷の増大を抑制することができる。
【0264】
ステップS234において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。この適応直交変換識別子は、セカンダリ変換識別子に基づいて設定されていてもよい。その場合、適応直交変換識別子解析部253は、セカンダリ変換を行うか否かに基づいて、適応直交変換識別子を解析することができる。例えば、適応直交変換識別子解析部253は、セカンダリ変換が行われる場合、適応直交変換識別子がシグナリングされていない(つまり、適応直交変換を行わない)と判定することができる。したがって、容易に適応直交変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0265】
ステップS235において、コンテキスト設定部254は、適応直交変換識別子を用いずにコンテキストを設定する。つまり、コンテキスト設定部254は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出する。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0266】
ステップS235の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0267】
なお、ステップS233において、変換スキップフラグ解析部252が、セカンダリ変換識別子を用いずに変換スキップフラグを解析してもよい。また、ステップS234において、適応直交変換識別子解析部253が、セカンダリ変換識別子を用いずに適応直交変換識別子を解析してもよい。さらに、ステップS235において、コンテキスト設定部254が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0268】
<逆直交変換処理の流れ>
図26のステップS204において実行される逆直交変換処理の流れの例を、図28のフローチャートを参照して説明する。
【0269】
逆直交変換処理が開始されると、逆直交変換部214の逆セカンダリ変換部271は、ステップS251において、図26のステップS202の処理において復号された符号化パラメータに基づいて逆セカンダリ変換を行う。例えば、逆セカンダリ変換部271は、図27のフローチャートを参照して説明したように解析された各種符号化パラメータを用いて逆セカンダリ変換を行う。なお、セカンダリ変換識別子等により、逆セカンダリ変換のスキップが指定される場合、逆セカンダリ変換部271は、その逆セカンダリ変換をスキップする。
【0270】
ステップS252において、逆プライマリ変換部272は、図26のステップS202の処理において復号された符号化パラメータに基づいて逆プライマリ変換を行う。例えば、逆プライマリ変換部272は、その符号化パラメータにより指定される方法により、逆プライマリ変換を行う。なお、符号化パラメータにより逆プライマリ変換のスキップが指定される場合、逆プライマリ変換部272は、その逆プライマリ変換をスキップする。
【0271】
ステップS252の処理が終了すると逆直交変換処理が終了し、処理は図26に戻る。
【0272】
<3.第2の実施の形態>
<3-1.セカンダリ変換識別子のシグナリング>
<TUフッタにおけるシグナリング>
セカンダリ変換識別子st_idxをTUフッタにおいてシグナリングする。つまり、セカンダリ変換識別子を、各TUに格納し、TU毎にシグナリングする。例えば、符号化の際に、TUのフッタに格納するように、セカンダリ変換識別子を設定する。換言するに、各TUにおいて、変換係数の後にシグナリングするように、TU毎のセカンダリ変換識別子を設定する。また、例えば、復号の際に、TUのフッタに格納されるセカンダリ変換識別子を解析する。換言するに、各TUにおいて変換係数の後にシグナリングされる、TU毎のセカンダリ変換識別子を解析する。
【0273】
その場合の変換ユニット(transform_unit)に関するシンタックスの例を図29に示す。図29の例の場合、下から2行目(グレー地の行)において、st_mode(つまり、st_idx)がシグナリングされている。つまり、この場合、セカンダリ変換識別子がTU毎に設定され、各セカンダリ変換識別子は、自身が対応するTUの変換係数(residual_coding)の後にシグナリングされる。
【0274】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTUに対応するセカンダリ変換識別子を復号すれば、そのTUの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。
【0275】
そのため、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0276】
なお、TU毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理や復号処理の負荷の増大を抑制することができる。
【0277】
<セカンダリ変換識別子のシグナリング制御>
また、この場合、TU毎にセカンダリ変換識別子をシグナリングするので、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTU毎に制御することができる。
【0278】
その場合のst_modeに関するシンタックスの例を図30に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight)の内の小さい方が、所定の閾値(minStSize)以上である必要がある。つまり、閾値より小さい変換ブロックサイズの変換ブロックでは、セカンダリ変換識別子がシグナリングされない。このように、符号化ブロックサイズに基づいてセカンダリ変換識別子を設定する代わりに、変換ブロックサイズに基づいて、セカンダリ変換識別子を設定してもよい。
【0279】
<輝度、色差の分離>
TUは、輝度(Y)の変換ブロック(TB)と、色差(Cb, Cr)の変換ブロックとを含む。そこで、輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを分けてシグナリングしてもよい。つまり、各TUのフッタにおいて、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とをシグナリングするようにしてもよい。
【0280】
例えば、符号化の際に、各TUにおいて、そのフッタに格納するように(変換係数の後にシグナリングするように)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを設定する。また、例えば、復号の際に、TUのフッタに格納される(変換係数の後にシグナリングされる)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを解析する。
【0281】
この場合も、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0282】
<3-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図18を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0283】
<符号化パラメータ設定処理の流れ>
また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0284】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図31のフローチャートを参照して説明する。この場合、制御部101は、<3-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。
【0285】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS301において、TUフッタに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、TU毎に、そのTUの変換係数の後にシグナリングするように、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0286】
なお、TU毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理の負荷の増大を抑制することができる。
【0287】
また、セカンダリ変換識別子設定部151は、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行ってもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTU毎に制御することができる。
【0288】
さらに、セカンダリ変換識別子設定部151は、各TUにおいて、そのフッタに格納するように(変換係数の後にシグナリングするように)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを設定してもよい。
【0289】
ステップS302において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS303において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。ステップS304において、コンテキスト設定部154は、コンテキストを設定する。ステップS304の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0290】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0291】
<3-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図24を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0292】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0293】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図32のフローチャートを参照して説明する。この場合、復号部212は、<3-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0294】
復号処理が開始されると、復号部241は、ステップS321において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0295】
ステップS322において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TUフッタの(TU毎に、そのTUの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0296】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTUに対応するセカンダリ変換識別子を復号すれば、そのTUの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。
【0297】
そのため、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0298】
なお、セカンダリ変換識別子がTU毎にシグナリングされることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0299】
また、セカンダリ変換識別子解析部251は、セカンダリ変換識別子をシグナリングされたか否かの判定を、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングされたか否かの判定をTU毎に行うことができる。
【0300】
さらに、セカンダリ変換識別子は、輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを分けてシグナリングされたものであってもよい。その場合、セカンダリ変換識別子解析部251は、TUフッタの(TU毎に、そのTUの変換係数の後にシグナリングされた)輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを解析する。
【0301】
ステップS323において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS324において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。ステップS325において、コンテキスト設定部254は、コンテキストを設定する。ステップS325の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0302】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0303】
<4.第3の実施の形態>
<4-1.セカンダリ変換識別子のシグナリング>
<TUヘッダにおけるシグナリング>
セカンダリ変換識別子st_idxをTUヘッダにおいてシグナリングする。つまり、セカンダリ変換識別子を、各TUに格納し、TU毎にシグナリングする。例えば、符号化の際に、TUのヘッダに格納するように、セカンダリ変換識別子を設定する。換言するに、各TUにおいて、変換係数の前にシグナリングするように、TU毎のセカンダリ変換識別子を設定する。また、例えば、復号の際に、TUのヘッダに格納されるセカンダリ変換識別子を解析する。換言するに、各TUにおいて変換係数の前にシグナリングされる、TU毎のセカンダリ変換識別子を解析する。
【0304】
その場合の変換ユニット(transform_unit)に関するシンタックスの例を図33に示す。図33の例の場合、上から15行目と16行目(グレー地の行)において、st_mode(つまり、st_idx)がシグナリングされている。つまり、この場合、セカンダリ変換識別子がTU毎に設定され、各セカンダリ変換識別子は、自身が対応するTUの変換係数(residual_coding)の前にシグナリングされる。
【0305】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTUに対応するセカンダリ変換識別子を復号すれば、そのTUの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。
【0306】
そのため、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0307】
なお、TU毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理や復号処理の負荷の増大を抑制することができる。
【0308】
<セカンダリ変換識別子のシグナリング制御>
また、第2の実施の形態の場合と同様に、この場合、TU毎にセカンダリ変換識別子をシグナリングするので、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTU毎に制御することができる。
【0309】
その場合のst_modeに関するシンタックスの例を図34に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight)の内の小さい方が、所定の閾値(minStSize)以上である必要がある。つまり、閾値より小さい変換ブロックサイズの変換ブロックでは、セカンダリ変換識別子がシグナリングされない。このように、符号化ブロックサイズに基づいてセカンダリ変換識別子を設定する代わりに、変換ブロックサイズに基づいて、セカンダリ変換識別子を設定してもよい。
【0310】
<非ゼロ変換係数のカウントの省略>
さらに、第1の実施の形態の場合と同様に、この場合、セカンダリ変換識別子の復号/符号化条件から非ゼロ変換係数の数を参照する条件式を削除してもよい。例えば、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。また例えば、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析してもよい。
【0311】
このようにすることにより、符号化処理においてセカンダリ変換識別子を導出する際に、その煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においてセカンダリ変換識別子を解析する際に、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0312】
<残差PCMモードに基づくセカンダリ変換識別子の設定>
また、第1の実施の形態の場合と同様に、この場合、残差PCM符号化モードが適用されない場合のみセカンダリ変換識別子をシグナリングする(つまり、残差PCM符号化モードが適用される場合、セカンダリ変換識別子をシグナリングしない)ようにしてもよい。
【0313】
このようにすることにより、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を設定することができる。また、復号の際に、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0314】
図34の例の場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、bdpcm_flag = 0である必要がある。つまり、残差PCM符号化モードが適用される場合、セカンダリ変換識別子がシグナリングされない。このように、非ゼロ変換係数の数に基づいてセカンダリ変換識別子を設定する代わりに、残差PCM符号化モードを適用するか否かを示すフラグに基づいて、セカンダリ変換識別子を設定してもよい。
【0315】
もちろん、このbdpcm_flagが適用されないとき(bdpcm_flag == 0)の条件は、セカンダリ変換を行うか否かの判定(stAllowedの導出)から除いてもよい。
【0316】
<コンテキストの導出>
また、第1の実施の形態の場合と同様に、この場合、コンテキストの初期値(オフセット)ctxIncを、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて導出するようにしてもよい(図16)。
【0317】
このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。復号の際においても同様に、より容易に、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0318】
<輝度、色差の分離>
TUは、輝度(Y)の変換ブロック(TB)と、色差(Cb, Cr)の変換ブロックとを含む。そこで、輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを分けてシグナリングしてもよい。つまり、各TUのヘッダにおいて、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とをシグナリングするようにしてもよい。
【0319】
例えば、符号化の際に、各TUにおいて、そのヘッダに格納するように(変換係数の前にシグナリングするように)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを設定する。また、例えば、復号の際に、TUのヘッダに格納される(変換係数の前にシグナリングされる)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを解析する。
【0320】
この場合も、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0321】
<4-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図18を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0322】
<符号化パラメータ設定処理の流れ>
また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0323】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図35のフローチャートを参照して説明する。この場合、制御部101は、<4-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。
【0324】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS341において、TUヘッダに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、TU毎に、そのTUの変換係数の前にシグナリングするように、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0325】
なお、TU毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理の負荷の増大を抑制することができる。
【0326】
また、セカンダリ変換識別子設定部151は、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行ってもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTU毎に制御することができる。
【0327】
さらに、セカンダリ変換識別子設定部151は、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においても、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0328】
また、セカンダリ変換識別子設定部151は、残差PCM符号化モードが適用されない場合のみセカンダリ変換識別子をシグナリングしてもよい。このようにすることにより、復号の際に、残差PCM符号化モードに応じて容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0329】
さらに、セカンダリ変換識別子設定部151は、各TUにおいて、そのヘッダに格納するように(変換係数の前にシグナリングするように)、そのTUに含まれる輝度のTBに対応するセカンダリ変換識別子と、色差のTBに対応するセカンダリ変換識別子とを設定してもよい。
【0330】
ステップS342において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS343において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。
【0331】
ステップS344において、コンテキスト設定部154は、適応直交変換識別子を用いずにコンテキストを設定する。つまり、コンテキスト設定部154は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出する。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。
【0332】
ステップS344の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0333】
なお、ステップS344において、コンテキスト設定部154が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0334】
<4-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図24を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0335】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0336】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図36のフローチャートを参照して説明する。この場合、復号部212は、<4-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0337】
復号処理が開始されると、復号部241は、ステップS361において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0338】
ステップS362において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TUヘッダの(TU毎に、そのTUの変換係数の前にシグナリングされた)セカンダリ変換識別子を解析する。
【0339】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTUに対応するセカンダリ変換識別子を復号すれば、そのTUの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TUの逆量子化や逆変換処理を開始することができる。
【0340】
そのため、各TUの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0341】
なお、セカンダリ変換識別子がTU毎にシグナリングされることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TU内だけ非ゼロ変換係数をカウントすれば良いので、復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0342】
また、セカンダリ変換識別子解析部251は、セカンダリ変換識別子をシグナリングされたか否かの判定を、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングされたか否かの判定をTU毎に行うことができる。
【0343】
さらに、セカンダリ変換識別子は、非ゼロ変換係数の数に依らずに設定されていてもよい。その場合、セカンダリ変換識別子解析部251は、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0344】
また、セカンダリ変換識別子は、残差PCM符号化モードが適用されない場合のみシグナリングされたものであってもよい。その場合、セカンダリ変換識別子解析部251は、残差PCM符号化モードが適用されたか否かに基づいてセカンダリ変換識別子を解析することができる。例えば、セカンダリ変換識別子解析部251は、残差PCM符号化モードが適用された場合、セカンダリ変換識別子がシグナリングされていない(つまり、セカンダリ変換をスキップする)と判定することができる。したがって、容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0345】
さらに、セカンダリ変換識別子は、輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを分けてシグナリングされたものであってもよい。その場合、セカンダリ変換識別子解析部251は、TUヘッダの(TU毎に、そのTUの変換係数の前にシグナリングされた)輝度用のセカンダリ変換識別子と、色差用のセカンダリ変換識別子とを解析する。
【0346】
ステップS363において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS364において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。
【0347】
ステップS365において、コンテキスト設定部254は、適応直交変換識別子を用いずにコンテキストを設定する。つまり、コンテキスト設定部254は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出する。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0348】
ステップS365の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0349】
なお、ステップS365において、コンテキスト設定部254が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0350】
<5.第4の実施の形態>
<5-1.セカンダリ変換識別子のシグナリング>
<TBフッタにおけるシグナリング>
セカンダリ変換識別子st_idxをTBフッタにおいてシグナリングする。つまり、セカンダリ変換識別子を、各TBに格納し、TB毎にシグナリングする。つまり、輝度(Y)のTB、色差(Cr)のTB、色差(Cb)のTBのそれぞれにおいて、そのTBに対応するセカンダリ変換識別子をシグナリングする。
【0351】
例えば、符号化の際に、TBのフッタに格納するように、セカンダリ変換識別子を設定する。換言するに、各TBにおいて、変換係数の後にシグナリングするように、TB毎のセカンダリ変換識別子を設定する。また、例えば、復号の際に、TBのフッタに格納されるセカンダリ変換識別子を解析する。換言するに、各TBにおいて変換係数の後にシグナリングされる、TB毎のセカンダリ変換識別子を解析する。
【0352】
その場合の変換ブロック(residual_coding)に関するシンタックスの例を図37に示す。図37の例の場合、下から2行目(グレー地の行)において、st_mode(つまり、st_idx)がシグナリングされている。つまり、この場合、セカンダリ変換識別子がTB毎に(コンポーネントを識別するcIdx毎に)設定される。また、セカンダリ変換識別子は、自身が対応するTBの変換係数の後にシグナリングされる。
【0353】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTBに対応するセカンダリ変換識別子を復号すれば、そのTBの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TBの逆量子化や逆変換処理を開始することができる。
【0354】
そのため、変換ブロックの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0355】
なお、TB毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TBに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理や復号処理の負荷の増大を抑制することができる。
【0356】
<セカンダリ変換識別子のシグナリング制御>
また、この場合、TB毎にセカンダリ変換識別子をシグナリングするので、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTB毎に制御することができる。
【0357】
その場合のst_modeに関するシンタックスの例を図38に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight)の内の小さい方が、所定の閾値(minStSize)以上である必要がある。つまり、閾値より小さい変換ブロックサイズの変換ブロックでは、セカンダリ変換識別子がシグナリングされない。このように、符号化ブロックサイズに基づいてセカンダリ変換識別子を設定する代わりに、変換ブロックサイズに基づいて、セカンダリ変換識別子を設定してもよい。
【0358】
<コンテキストの導出>
また、この場合、コンテキストの初期値(オフセット)ctxIncを、コンポーネントに基づいて(例えばコンポーネントを識別する識別子cIdxの値に基づいて)導出するようにしてもよい。
【0359】
例えば、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncを導出してもよい。輝度と色差でセカンダリ変換の適用される確率が異なるため、このようにすることにより、より効率よくコンポーネント毎のセカンダリ変換識別子st_idxを符号化・復号することができる。
【0360】
また、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncを導出してもよい。このようにすることにより、コンテキスト変数ctxをより詳細に設定することができるので、セカンダリ変換識別子st_idxをより効率よく符号化・復号することができる。
【0361】
例えば、図39のAの場合、コンポーネントを識別する識別子cIdxの値が、輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncに0または1がセットされる。また、例えば、図39のBの場合、コンポーネントを識別する識別子cIdxの値が、コンテキストの初期値(オフセット)ctxIncにセットされる。
【0362】
<5-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図18を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0363】
<符号化パラメータ設定処理の流れ1>
また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0364】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図40のフローチャートを参照して説明する。この場合、制御部101は、<5-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。なお、この例では、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncが導出される(図39のA)。
【0365】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS401において、TBフッタに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、TB毎に、そのTBの変換係数の後にシグナリングするように、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0366】
なお、TB毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TBに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理の負荷の増大を抑制することができる。
【0367】
また、セカンダリ変換識別子設定部151は、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行ってもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTB毎に制御することができる。
【0368】
ステップS402において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS403において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。
【0369】
ステップS404において、コンテキスト設定部154は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストを設定する。ステップS404の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0370】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0371】
<符号化パラメータ設定処理の流れ2>
この場合の制御部101により実行される符号化パラメータ設定処理の流れの他の例を、図41のフローチャートを参照して説明する。この場合、制御部101は、<5-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。なお、この例では、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncが導出される(図39のB)。
【0372】
この場合、ステップS421乃至ステップS423の各処理は、図40のステップS401乃至ステップS403の各処理と同様に実行される。
【0373】
ステップS424において、コンテキスト設定部154は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストを設定する。ステップS424の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0374】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0375】
<5-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図24を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0376】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0377】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図42のフローチャートを参照して説明する。この場合、復号部212は、<5-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0378】
復号処理が開始されると、復号部241は、ステップS441において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0379】
ステップS442において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TBフッタの(TB毎に、そのTBの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0380】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTBに対応するセカンダリ変換識別子を復号すれば、そのTBの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TBの逆量子化や逆変換処理を開始することができる。
【0381】
そのため、各TBの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0382】
なお、セカンダリ変換識別子がTB毎にシグナリングされることで、非ゼロ変換係数のカウントが処理対象TBに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0383】
また、セカンダリ変換識別子解析部251は、セカンダリ変換識別子をシグナリングされたか否かの判定を、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングされたか否かの判定をTU毎に行うことができる。
【0384】
ステップS443において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS444において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。
【0385】
ステップS445において、コンテキスト設定部254は、コンテキストを設定する。その際、コンテキスト設定部254は、ステップS404(図40)の処理と同様に、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストを設定してもよい。また、コンテキスト設定部254は、ステップS424(図41)の処理と同様に、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストを設定してもよい。
【0386】
このように設定することにより、セカンダリ変換識別子st_idxをより効率よく復号することができる。
【0387】
ステップS445の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0388】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0389】
<6.第5の実施の形態>
<6-1.セカンダリ変換識別子のシグナリング>
<TBヘッダにおけるシグナリング>
セカンダリ変換識別子st_idxをTBヘッダにおいてシグナリングする。つまり、セカンダリ変換識別子を、各TBに格納し、TB毎にシグナリングする。例えば、符号化の際に、TBのヘッダに格納するように、セカンダリ変換識別子を設定する。換言するに、各TBにおいて、変換係数の前にシグナリングするように、TB毎のセカンダリ変換識別子を設定する。また、例えば、復号の際に、TBのヘッダに格納されるセカンダリ変換識別子を解析する。換言するに、各TBにおいて変換係数の前にシグナリングされる、TB毎のセカンダリ変換識別子を解析する。
【0390】
その場合の変換ブロック(residual_coding)に関するシンタックスの例を図43に示す。図43の例の場合、上から2行目(グレー地の行)において、st_mode(つまり、st_idx)がシグナリングされている。つまり、この場合、セカンダリ変換識別子がTB毎に(コンポーネントを識別するcIdx毎に)設定されている。また、セカンダリ変換識別子は、自身が対応するTBの変換係数の前にシグナリングされる。
【0391】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTBに対応するセカンダリ変換識別子を復号すれば、そのTBの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TBの逆量子化や逆変換処理を開始することができる。
【0392】
そのため、変換ブロックの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0393】
なお、TB毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TBに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理や復号処理の負荷の増大を抑制することができる。
【0394】
<セカンダリ変換識別子のシグナリング制御>
また、この場合、TB毎にセカンダリ変換識別子をシグナリングするので、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTB毎に制御することができる。
【0395】
その場合のst_modeに関するシンタックスの例を図44に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight)の内の小さい方が、所定の閾値(minStSize)以上である必要がある。つまり、閾値より小さい変換ブロックサイズの変換ブロックでは、セカンダリ変換識別子がシグナリングされない。このように、符号化ブロックサイズに基づいてセカンダリ変換識別子を設定する代わりに、変換ブロックサイズに基づいて、セカンダリ変換識別子を設定してもよい。
【0396】
<非ゼロ変換係数のカウントの省略>
さらに、第1の実施の形態の場合と同様に、この場合、セカンダリ変換識別子の復号/符号化条件から非ゼロ変換係数の数を参照する条件式を削除してもよい(図44)。例えば、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。また例えば、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析してもよい。
【0397】
このようにすることにより、符号化処理においてセカンダリ変換識別子を導出する際に、その煩雑な非ゼロ係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においてセカンダリ変換識別子を解析する際に、その煩雑な非ゼロ係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0398】
なお、図43のTBのシンタックス(residual_coding)においても、非ゼロ変換係数のカウントを省略することができる(図43の下から6行目(グレー地の行))。
【0399】
<変換スキップフラグに基づくセカンダリ変換識別子の設定>
また、この場合、変換スキップが適用されない場合のみセカンダリ変換識別子をシグナリングする(つまり、変換スキップが適用される場合、セカンダリ変換識別子をシグナリングしない)ようにしてもよい。
【0400】
このようにすることにより、変換スキップフラグに応じて容易にセカンダリ変換識別子を設定することができる。また、復号の際に、変換スキップフラグに応じて容易にセカンダリ変換識別子を解析することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0401】
例えば、図44の上から2行目において、変換スキップが適用されないことが、stAllowedが真となる条件に含まれている(&& ! transform_skip_flag[x0][y0][cIdx])。つまり、stAllowedが真であるようにするためには、変換スキップが適用されないことが必要である。このように、非ゼロ変換係数の数に基づいてセカンダリ変換識別子を設定する代わりに、変換スキップを適用するか否かを示すフラグに基づいて、セカンダリ変換識別子を設定してもよい。
【0402】
<コンテキストの導出>
また、第1の実施の形態の場合と同様に、この場合、コンテキストの初期値(オフセット)ctxIncを、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて導出するようにしてもよい(図16)。
【0403】
このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。復号の際においても同様に、より容易に、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0404】
また、第4の実施の形態の場合と同様に、この場合、コンテキストの初期値(オフセット)ctxIncを、コンポーネントに基づいて(例えばコンポーネントを識別する識別子cIdxの値に基づいて)導出するようにしてもよい(図39)。
【0405】
例えば、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncを導出してもよい。輝度と色差でセカンダリ変換の適用される確率が異なるため、このようにすることにより、より効率よくコンポーネント毎のセカンダリ変換識別子st_idxを符号化・復号することができる。
【0406】
また、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストの初期値(オフセット)ctxIncを導出してもよい。このようにすることにより、コンテキスト変数ctxをより詳細に設定することができるので、セカンダリ変換識別子st_idxをより効率よく符号化・復号することができる。
【0407】
<6-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図18を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0408】
<符号化パラメータ設定処理の流れ>
また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0409】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図45のフローチャートを参照して説明する。この場合、制御部101は、<6-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。
【0410】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS461において、TBヘッダに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、TB毎に、そのTBの変換係数の前にシグナリングするように、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができ、復号処理の負荷の増大を抑制することができる。
【0411】
なお、TB毎にセカンダリ変換識別子をシグナリングすることで、非ゼロ変換係数のカウントが処理対象TUに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、符号化や復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、符号化処理の負荷の増大を抑制することができる。
【0412】
また、セカンダリ変換識別子設定部151は、セカンダリ変換識別子をシグナリングするか否かを、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行ってもよい。このようにすることにより、セカンダリ変換識別子をシグナリングするか否かをTB毎に制御することができる。
【0413】
さらに、セカンダリ変換識別子設定部151は、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。また、復号処理においても、その煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0414】
また、セカンダリ変換識別子設定部151は、変換スキップが適用されない場合のみセカンダリ変換識別子をシグナリングしてもよい。このようにすることにより、復号の際に、変換スキップフラグに応じて容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0415】
ステップS462において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS463において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。
【0416】
ステップS464において、コンテキスト設定部154は、コンテキストを設定する。その際、例えば、コンテキスト設定部154は、適応直交変換識別子を用いずにコンテキストを設定してもよい。つまり、この場合、コンテキスト設定部154は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出する。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。
【0417】
なお、コンテキスト設定部154は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストを設定してもよい。さらに、コンテキスト設定部154は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストを設定してもよい。このようにすることにより、より効率よくコンポーネント毎のセカンダリ変換識別子st_idxを符号化することができる。
【0418】
ステップS464の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0419】
なお、ステップS464において、コンテキスト設定部154が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0420】
<6-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図24を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0421】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0422】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図46のフローチャートを参照して説明する。この場合、復号部212は、<6-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0423】
復号処理が開始されると、復号部241は、ステップS481において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0424】
ステップS482において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TBヘッダの(TB毎に、そのTBの変換係数の前にシグナリングされた)セカンダリ変換識別子を解析する。
【0425】
このようにすることにより、CU内の全TUが復号される前にセカンダリ変換識別子を復号することができる。つまり、あるTBに対応するセカンダリ変換識別子を復号すれば、そのTBの逆量子化や逆変換処理を開始することができるので、CU内の全てのTUが復号される前に、各TBの逆量子化や逆変換処理を開始することができる。
【0426】
そのため、各TBの逆量子化や逆変換処理を開始するまでに必要な情報のバッファリングの期間を、CUのフッタでシグナリングする場合よりも短くすることができる。したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0427】
なお、セカンダリ変換識別子がTB毎にシグナリングされることで、非ゼロ変換係数のカウントが処理対象TBに閉じる。つまり、当該TB内だけ非ゼロ変換係数をカウントすれば良いので、復号の際の非ゼロ変換係数のカウント処理を簡易化することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0428】
また、セカンダリ変換識別子解析部251は、セカンダリ変換識別子をシグナリングされたか否かの判定を、変換ブロックサイズ(水平方向の変換ブロックサイズ(tbWidth)および垂直方向の変換ブロックサイズ(tbHeight))に基づいて行うようにしてもよい。このようにすることにより、セカンダリ変換識別子をシグナリングされたか否かの判定をTB毎に行うことができる。
【0429】
さらに、セカンダリ変換識別子は、非ゼロ変換係数の数に依らずに設定されていてもよい。その場合、セカンダリ変換識別子解析部251は、非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0430】
また、セカンダリ変換識別子は、変換スキップが適用されない場合のみシグナリングされたものであってもよい。その場合、セカンダリ変換識別子解析部251は、変換スキップが適用されたか否かに基づいてセカンダリ変換識別子を解析することができる。例えば、セカンダリ変換識別子解析部251は、変換スキップが適用された場合、セカンダリ変換識別子がシグナリングされていない(つまり、セカンダリ変換をスキップする)と判定することができる。したがって、容易にセカンダリ変換識別子を解析することができ、復号処理の負荷の増大を抑制することができる。
【0431】
ステップS483において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS484において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。
【0432】
ステップS485において、コンテキスト設定部254は、コンテキストを設定する。その際、コンテキスト設定部254は、適応直交変換識別子を用いずにコンテキストを設定してもよい。つまり、コンテキスト設定部254は、適応直交変換識別子tu_mts_idxに依存せずに、ツリータイプ(treeType)のみに基づいて、コンテキストctxIncを導出してもよい。このようにすることにより、煩雑な処理が必要とせずに(より容易に)、セカンダリ変換識別子st_idxの1ビン目のコンテキストインデックスを導出することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0433】
なお、コンテキスト設定部254は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか色差(CbまたはCr)であるかに基づいて、コンテキストを設定してもよい。さらに、コンテキスト設定部254は、コンポーネントを識別する識別子cIdxを参照し、コンポーネントが輝度(Y)であるか、色差(Cb)であるか、色差(Cr)であるかに基づいて、コンテキストを設定してもよい。このようにすることにより、より効率よくコンポーネント毎のセカンダリ変換識別子st_idxを符号化することができる。
【0434】
ステップS485の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0435】
なお、ステップS485において、コンテキスト設定部254が、適応直交変換識別子とツリータイプに基づいてコンテキストを設定してもよい。また、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0436】
<7.第6の実施の形態>
<7-1.セカンダリ変換識別子のシグナリング>
<ブロックサイズの制限>
ブロックサイズに関する情報が閾値以下の場合のみセカンダリ変換識別子をシグナルするようにする。換言するに、ブロックサイズに関する情報が所定の閾値以下である場合のみセカンダリ変換を行うように、セカンダリ変換識別子を設定する。つまり、所定のサイズ以下のブロックのみセカンダリ変換を行うようにする。
【0437】
このようにすることにより、所定のサイズより大きなブロックサイズの符号化ブロックに対するセカンダリ変換をスキップ(省略)することができる。つまり、遅延時間やメモリ使用量の少ない符号化ブロック(すなわちブロックサイズが小さな符号化ブロック)のみ、セカンダリ変換識別子の復号を待ってから変換ブロックの逆量子化や逆変換処理を開始し、遅延時間やメモリ使用量の大きな符号化ブロック(すなわちブロックサイズが大きな符号化ブロック)の場合、セカンダリ変換識別子の復号を待たずに、変換ブロックの逆量子化や逆変換処理を開始することができる。
【0438】
したがって、遅延やメモリ使用量の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0439】
なお、ブロックサイズが大きい程、非ゼロ変換係数のカウントの負荷は大きくなる。したがって、上述のように、セカンダリ変換が適用される場合のブロックサイズに上限を設けることにより、非ゼロ変換係数のカウントの負荷の増大を抑制することができる。
【0440】
なお、セカンダリ変換識別子の復号/符号化条件から非ゼロ変換係数の数を参照する条件式を削除してもよい。例えば、符号化ブロック内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定してもよい。また例えば、符号化ブロック内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析してもよい。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理や復号処理の負荷の増大を抑制することができる。
【0441】
例えば、閾値は最大変換ブロックサイズとしてもよい。例えば、水平方向のブロックサイズが最大変換ブロックサイズ以下であり、かつ、垂直方向のブロックサイズが最大変換ブロックサイズ以下である場合にセカンダリ変換を行うように、セカンダリ変換識別子を設定してもよい。
【0442】
このようにすることにより、セカンダリ変換を行う符号化ブロックのブロックサイズを最大変換ブロックサイズ以下に限定することができ、上述のように復号の負荷の増大を抑制することができる。
【0443】
st_modeに関するシンタックスの例を図47に示す。この場合、上から2番目の行(グレー地の行)に示されるように、stAllowedが真であるようにするためには、水平方向の符号化ブロックサイズ(cbWidth)と垂直方向の符号化ブロックサイズ(cbHeight)とが、それぞれ、最大変換ブロックサイズ(axTbSize)以下である必要がある(&& (cbWidth <= maxTbSize && cbHeight <= maxTbSize))。つまり、水平方向の符号化ブロックサイズ(cbWidth)、または、垂直方向の符号化ブロックサイズ(cbHeight)が、最大変換ブロックサイズ(axTbSize)より大きい場合、セカンダリ変換識別子がシグナリングされない。このように、非ゼロ変換係数の数に基づいてセカンダリ変換識別子を設定する代わりに、符号化ブロックサイズに基づいて、セカンダリ変換識別子を設定してもよい。
【0444】
なお、閾値は任意であり、最大変換ブロックサイズ以外であってもよい。また、この閾値を用いた制御は、セカンダリ変換の対象とするブロックサイズを制限するためのものであればよく、そのための閾値との比較の具体的な方法は任意であり、図47の例に限定されない。例えば、符号化ブロックの長手方向(水平方向と垂直方向の内の長い方)のブロックサイズと最大変換ブロックサイズとを比較してもよい。また、面積(つまりは水平方向のブロックサイズと垂直方向のブロックサイズとの積)を用いて閾値(例えば最大変換ブロックサイズの2乗)との比較を行うようにしてもよい。さらに、対数値(log値)を用いて比較を行うようにしてもよい。
【0445】
なお、この場合、セカンダリ変換識別子は、CUのフッタに格納する(つまり、CU内の全TUをシグナリングした後にst_idxをシグナリングする)ようにしてもよい。
【0446】
<7-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図18を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0447】
<符号化パラメータ設定処理の流れ>
また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0448】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図48のフローチャートを参照して説明する。この場合、制御部101は、<7-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この符号化パラメータ設定処理を実行する。
【0449】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS501において、ブロックサイズに応じてCUフッタに格納するセカンダリ変換識別子st_idxを設定する。つまり、セカンダリ変換識別子設定部151は、所定のブロックサイズ以下のCUのみセカンダリ変換識別子をシグナリングするように(所定のブロックサイズより大きなCUについてはセカンダリ変換をスキップするように)、セカンダリ変換識別子を設定する。したがって、上述したように、復号処理における遅延やメモリ使用量の増大を抑制することができる。また、非ゼロ変換係数のカウントの負荷の増大を抑制することができる。したがって、復号処理の負荷の増大を抑制することができる。
【0450】
なお、その際、セカンダリ変換識別子設定部151は、CU内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を設定することができる。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、符号化処理の負荷の増大を抑制することができる。
【0451】
ステップS502において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS503において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。ステップS504において、コンテキスト設定部154は、コンテキストを設定する。ステップS504の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0452】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0453】
<7-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図24を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0454】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0455】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図49のフローチャートを参照して説明する。この場合、復号部212は、<7-1.セカンダリ変換識別子のシグナリング>において説明した各種手法を適用して、この復号処理を実行する。
【0456】
復号処理が開始されると、復号部241は、ステップS521において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0457】
ステップS522において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、CUフッタの(そのCUの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0458】
この場合のセカンダリ変換識別子は、閾値(例えば最大変換ブロックサイズ)以下の符号化ブロックの場合のみシグナリングされている。したがって、遅延時間やメモリ使用量の少ない符号化ブロック(すなわちブロックサイズが小さな符号化ブロック)のみ、セカンダリ変換識別子の復号を待ってから変換ブロックの逆量子化や逆変換処理を開始し、遅延時間やメモリ使用量の大きな符号化ブロック(すなわちブロックサイズが大きな符号化ブロック)の場合、セカンダリ変換識別子の復号を待たずに、変換ブロックの逆量子化や逆変換処理を開始することができる。
【0459】
したがって、遅延やメモリ使用量の増大を抑制することができる。また、このように、セカンダリ変換が適用される場合のブロックサイズに上限を設けることにより、非ゼロ変換係数のカウントの負荷の増大を抑制することができる。つまり、復号の負荷の増大を抑制することができる。
【0460】
なお、符号化ブロック内の非ゼロ変換係数の数に依らずに、セカンダリ変換識別子を解析してもよい。このようにすることにより、煩雑な非ゼロ変換係数のカウントを省略することができるので、復号処理の負荷の増大を抑制することができる。
【0461】
ステップS523において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS524において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。ステップS525において、コンテキスト設定部254は、コンテキストを設定する。ステップS525の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0462】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0463】
<8.第7の実施の形態>
<8-1.セカンダリ変換の簡略化>
<有効変換領域サイズの制御>
非特許文献9に記載のような、高域のプライマリ変換係数をゼロ化するセカンダリ変換を適用する場合、すなわち、RST変換行列によって変更されないプライマリ変換係数(LFNSTコーナー以外のプライマリ変換係数)をゼロ化する場合、セカンダリ変換識別子の値に基づいて、有効変換領域サイズの導出を行うようにする。例えば、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする。
【0464】
このようにすることにより、セカンダリ変換に対応した方法で有効変換領域サイズを導出し、それを用いてラスト係数のプリフィックス部を求めるようにすることができる。これにより、そのコード長の増大を抑制することができる。つまり、ラスト係数のビン長の増大を抑制することができる(典型的にはビン長を削減することができる)。すなわち、符号量の増大を抑制する(符号化効率の低減を抑制する)ことができる。そのため、復号処理の負荷の増大を抑制することができる。
【0465】
その場合の変換ブロック(residual_coding)に関するシンタックスの例を図50に示す。図50の例の場合、上から4行目および5行目(グレー地の行)において、セカンダリ変換が行われ、かつ、水平方向および垂直方向の変換ブロックサイズの対数値が2より大きい場合(つまり、変換ブロックが4x4より大きい場合)、水平方向の有効変換領域サイズの対数値(log2ZoTbWidth)が2に設定される。
【0466】
同様に、上から10行目および11行目(グレー地の行)において、セカンダリ変換が行われ、かつ、水平方向および垂直方向の変換ブロックサイズの対数値が2より大きい場合(つまり、変換ブロックが4x4より大きい場合)、垂直方向の有効変換領域サイズの対数値(log2ZoTbHeight)が2に設定される。
【0467】
このようにすることにより、プリフィックス部のビン列binsの長さの増大を抑制することができる。
【0468】
例えば、DCサブブロックのラスト係数位置(lastX, lastY)が(3, 3)であるとする。図9に示される16x16のTBの場合、図10乃至図12を用いて導出されたラスト係数位置の各プリフィックス部(last_sig_coeff_x_prefix, last_sig_coeff_y_prefix)のビン列は「1110」となる。つまりビンの長さは4ビンとなる。
【0469】
これに対して、有効変換領域サイズが4x4の場合、プリフィックス部のビン列は「111」となる。つまりビンの長さは3ビンとなる。
【0470】
このように変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にすることにより、上述の例よりも1ビン短かくすることができる。X方向およびY方向を考慮すると、最大2ビン削減することができる。このように、符号化効率の低減を抑制することができる。また、符号量の増大を抑制することにより、復号処理の負荷の増大を抑制することができる。
【0471】
<8-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と基本的に同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0472】
<制御部>
この場合の制御部101の主な構成例を図51に示す。図51に示されるように、この場合の制御部101は、セカンダリ変換識別子設定部151乃至コンテキスト設定部154の他、さらに、有効変換領域サイズ導出部401およびラスト係数位置設定部402を有する。
【0473】
有効変換領域サイズ導出部401は、有効変換領域サイズの導出に関する処理を行う。例えば、有効変換領域サイズ導出部401は、符号化パラメータとして、高域のプライマリ変換係数をゼロ化するセカンダリ変換において、ゼロ化された後も非ゼロ変換係数が残っている領域である有効変換領域サイズ(log2ZoTbWidth, log2ZoHeight)を導出する。その際、有効変換領域サイズ導出部401は、<8-1.セカンダリ変換の簡略化>において説明した手法を適用する。
【0474】
例えば、有効変換領域サイズ導出部401は、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする。このようにすることにより、ラスト係数のプリフィックス部のビン長の増大を抑制することができ、符号化効率の低減を抑制することができる。そのため、復号処理の負荷の増大を抑制することができる。
【0475】
ラスト係数位置設定部402は、ラスト係数位置の設定に関する処理を行う。例えば、ラスト係数位置設定部402は、有効変換領域サイズ(log2ZoTbWidth, log2ZoHeight)を用いて、図11に示される表に従ってラスト係数位置(lastX, lastY)の各プリフィックス部(last_sig_coeff_x_prefix, last_sig_coeff_y_prefix)を2値化し、図12に示される表に従って、そのビン列を生成する。ラスト係数位置設定部402は、このビン列を符号化部115に供給し、符号化させる。
【0476】
<符号化パラメータ設定処理の流れ>
この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0477】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図52のフローチャートを参照して説明する。この場合、制御部101は、<8-1.セカンダリ変換の簡略化>において説明した手法を適用して、この符号化パラメータ設定処理を実行する。
【0478】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS541において、CUフッタに格納するセカンダリ変換識別子st_idxを設定する。
【0479】
ステップS542において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS543において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。ステップS544において、コンテキスト設定部154は、コンテキストを設定する。
【0480】
ステップS545において、有効変換領域サイズ導出部401は、CUのセカンダリ変換識別子に基づいて、有効変換領域サイズを導出する。例えば、有効変換領域サイズ導出部401は、高域のプライマリ変換係数をゼロ化するセカンダリ変換の場合、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする。
【0481】
ステップS546において、ラスト係数位置設定部402は、有効変換領域サイズに基づいて、ラスト係数位置を導出する。
【0482】
ステップS547において、ラスト係数位置設定部402は、ラスト係数位置のプリフィックス部を2値化し、ビン列を導出する。
【0483】
ステップS547の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0484】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0485】
このように符号化パラメータ設定処理を実行することにより、符号化効率の低減を抑制することができる。
【0486】
<8-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と基本的に同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0487】
<復号部>
この場合の復号部212の主な構成例を図53に示す。図53に示されるように、この場合の復号部212は、第1の実施の形態の場合と同様に、復号部241および解析部242を有する。
【0488】
また、解析部242は、セカンダリ変換識別子解析部251乃至コンテキスト設定部254の他、さらに、ラスト係数位置解析部421および有効変換領域サイズ解析部422を有する。
【0489】
ラスト係数位置解析部421は、ラスト係数位置の解析に関する処理を行う。例えば、ラスト係数位置解析部421は、ラスト係数位置のプリフィックス部のビン列を逆2値化(多値化)する。
【0490】
有効変換領域サイズ解析部422は、有効変換領域サイズの解析に関する処理を行う。例えば、有効変換領域サイズ解析部422は、ラスト係数位置解析部421により得られたラスト係数位置に基づいて、有効変換領域サイズを求める。有効変換領域サイズ解析部422は、求めた有効変換領域サイズを逆直交変換部214に供給する。逆直交変換部214の逆セカンダリ変換部271は、その有効変換領域サイズを用いて、高域のプライマリ変換係数をゼロ化するセカンダリ変換に対応する逆セカンダリ変換を行う(図9)。
【0491】
<復号処理の流れ>
また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0492】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図54のフローチャートを参照して説明する。
【0493】
復号処理が開始されると、復号部241は、ステップS561において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0494】
ステップS562において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、CUフッタの(そのCUの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0495】
ステップS563において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS564において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。ステップS565において、コンテキスト設定部254は、コンテキストを設定する。
【0496】
ステップS566において、ラスト係数位置解析部421は、ラスト係数位置のプリフィックス部のビン列を逆2値化(多値化)する。
【0497】
ステップS567において、有効変換領域サイズ解析部422は、得られたラスト係数位置に基づいて、有効変換領域サイズを求める。
【0498】
ステップS567の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0499】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0500】
<9.第8の実施の形態>
<9-1.セカンダリ変換の簡略化>
<有効変換領域サイズの制御>
第7の実施の形態において説明した本技術は、第2の実施の形態と組み合わせてもよい。つまり、セカンダリ変換識別子がTU毎にシグナリングされてもよい。すなわち、この第2の実施の形態に第7の実施の形態において説明した本技術を適用する場合も、高域のプライマリ変換係数をゼロ化するセカンダリ変換において、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にするようにしてもよい。
【0501】
このようにすることにより、第7の実施の形態の場合と同様に、ラスト係数のビン長の増大を抑制し、符号化効率の低減を抑制することができる。そのため、復号処理の負荷の増大を抑制することができる。
【0502】
<9-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第7の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図51を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0503】
<符号化パラメータ設定処理の流れ>
この場合の画像符号化装置100は、第7の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0504】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図55のフローチャートを参照して説明する。この場合、制御部101は、<9-1.セカンダリ変換の簡略化>において説明した手法を適用して、この符号化パラメータ設定処理を実行する。
【0505】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS601において、TUフッタに格納するセカンダリ変換識別子st_idxを設定する。
【0506】
ステップS602において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS603において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。ステップS604において、コンテキスト設定部154は、コンテキストを設定する。
【0507】
ステップS605において、有効変換領域サイズ導出部401は、TUのセカンダリ変換識別子に基づいて、有効変換領域サイズを導出する。例えば、有効変換領域サイズ導出部401は、高域のプライマリ変換係数をゼロ化するセカンダリ変換の場合、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする。
【0508】
ステップS606において、ラスト係数位置設定部402は、有効変換領域サイズに基づいて、ラスト係数位置を導出する。ステップS607において、ラスト係数位置設定部402は、ラスト係数位置のプリフィックス部を2値化し、ビン列を導出する。ステップS607の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0509】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0510】
このように符号化パラメータ設定処理を実行することにより、符号化効率の低減を抑制することができる。
【0511】
<9-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第7の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図53を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0512】
<復号処理の流れ>
また、この場合の画像復号装置200は、第7の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0513】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図56のフローチャートを参照して説明する。
【0514】
復号処理が開始されると、復号部241は、ステップS621において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0515】
ステップS622において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TUフッタの(そのTUの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0516】
ステップS623において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS624において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。ステップS625において、コンテキスト設定部254は、コンテキストを設定する。
【0517】
ステップS626において、ラスト係数位置解析部421は、ラスト係数位置のプリフィックス部のビン列を逆2値化(多値化)する。ステップS627において、有効変換領域サイズ解析部422は、得られたラスト係数位置に基づいて、有効変換領域サイズを求める。ステップS627の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0518】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0519】
<10.第9の実施の形態>
<10-1.セカンダリ変換の簡略化>
<有効変換領域サイズの制御>
第7の実施の形態において説明した本技術は、第4の実施の形態と組み合わせてもよい。つまり、セカンダリ変換識別子がTB毎にシグナリングされてもよい。すなわち、この第4の実施の形態に第7の実施の形態において説明した本技術を適用する場合も、高域のプライマリ変換係数をゼロ化するセカンダリ変換において、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にするようにしてもよい。
【0520】
このようにすることにより、第7の実施の形態の場合と同様に、ラスト係数のビン長の増大を抑制し、符号化効率の低減を抑制することができる。そのため、復号処理の負荷の増大を抑制することができる。
【0521】
その場合の変換ブロック(residual_coding)に関するシンタックスの例を図57に示す。図57の例の場合、上から4行目および5行目(グレー地の行)において、セカンダリ変換が行われ、かつ、水平方向および垂直方向の変換ブロックサイズの対数値が2より大きい場合(つまり、変換ブロックが4x4より大きい場合)、水平方向の有効変換領域サイズの対数値(log2ZoTbWidth)が2に設定される。その際、セカンダリ変換の判定は、コンポーネント毎(cIdx毎)、つまり変換ブロック毎に行われる。
【0522】
同様に、上から10行目および11行目(グレー地の行)において、セカンダリ変換が行われ、かつ、水平方向および垂直方向の変換ブロックサイズの対数値が2より大きい場合(つまり、変換ブロックが4x4より大きい場合)、垂直方向の有効変換領域サイズの対数値(log2ZoTbHeight)が2に設定される。その際、セカンダリ変換の判定は、コンポーネント毎(cIdx毎)、つまり変換ブロック毎に行われる。
【0523】
このようにすることにより、プリフィックス部のビン列binsの長さの増大を抑制することができる。
【0524】
<10-2.符号化側>
<構成>
次に、符号化側について説明する。この場合の符号化側の構成は、第7の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図17を参照して説明した構成と同様の構成を有する。また、この場合の制御部101は、図51を参照して説明した構成と同様の構成を有する。さらに、この場合の直交変換部113は、図19を参照して説明した構成と同様の構成を有する。
【0525】
<符号化パラメータ設定処理の流れ>
この場合の画像符号化装置100は、第7の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図20のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の直交変換部113により実行される直交変換処理は、図22のフローチャートを参照して説明した場合と同様の流れで行われる。
【0526】
図20のステップS103において、この場合の制御部101により実行される符号化パラメータ設定処理の流れの例を、図58のフローチャートを参照して説明する。この場合、制御部101は、<10-1.セカンダリ変換の簡略化>において説明した手法を適用して、この符号化パラメータ設定処理を実行する。
【0527】
符号化パラメータ設定処理が開始されると、制御部101のセカンダリ変換識別子設定部151は、ステップS641において、TBフッタに格納するセカンダリ変換識別子st_idxを設定する。
【0528】
ステップS642において、変換スキップフラグ設定部152は、変換スキップフラグを設定する。ステップS643において、適応直交変換識別子設定部153は、適応直交変換識別子を設定する。ステップS644において、コンテキスト設定部154は、コンテキストを設定する。
【0529】
ステップS645において、有効変換領域サイズ導出部401は、TBのセカンダリ変換識別子に基づいて、有効変換領域サイズを導出する。例えば、有効変換領域サイズ導出部401は、高域のプライマリ変換係数をゼロ化するセカンダリ変換の場合、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする。
【0530】
ステップS646において、ラスト係数位置設定部402は、有効変換領域サイズに基づいて、ラスト係数位置を導出する。ステップS647において、ラスト係数位置設定部402は、ラスト係数位置のプリフィックス部を2値化し、ビン列を導出する。ステップS647の処理が終了すると符号化パラメータ設定処理が終了し、処理は図20に戻る。
【0531】
なお、この符号化パラメータ設定処理において、その他の任意の符号化パラメータを生成するステップを追加してもよい。
【0532】
このように符号化パラメータ設定処理を実行することにより、符号化効率の低減を抑制することができる。
【0533】
<10-3.復号側>
<構成>
次に、復号側について説明する。この場合の復号側の構成は、第7の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図23を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図53を参照して説明した構成と同様の構成を有する。さらに、この場合の逆直交変換部214は、図25を参照して説明した構成と同様の構成を有する。
【0534】
<復号処理の流れ>
また、この場合の画像復号装置200は、第7の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図26のフローチャートを参照して説明した場合と同様の流れで行われる。また、この場合の逆直交変換部214により実行される逆直交変換処理は、図28のフローチャートを参照して説明した場合と同様の流れで行われる。
【0535】
図26のステップS202において、この場合の復号部212により実行される復号処理の流れの例を、図59のフローチャートを参照して説明する。
【0536】
復号処理が開始されると、復号部241は、ステップS661において、蓄積バッファ211の符号化データ(ビットストリーム)を復号する。
【0537】
ステップS662において、解析部242のセカンダリ変換識別子解析部251は、その復号結果から、TBフッタの(そのTBの変換係数の後にシグナリングされた)セカンダリ変換識別子を解析する。
【0538】
ステップS663において、変換スキップフラグ解析部252は、変換スキップフラグを解析する。ステップS664において、適応直交変換識別子解析部253は、適応直交変換識別子を解析する。ステップS665において、コンテキスト設定部254は、コンテキストを設定する。
【0539】
ステップS666において、ラスト係数位置解析部421は、ラスト係数位置のプリフィックス部のビン列を逆2値化(多値化)する。ステップS667において、有効変換領域サイズ解析部422は、得られたラスト係数位置に基づいて、有効変換領域サイズを求める。ステップS667の処理が終了すると復号処理が終了し、処理は図26に戻る。
【0540】
なお、この復号処理において、その他の任意の符号化パラメータを解析するステップを追加してもよい。
【0541】
<11.付記>
<組み合わせ>
以上の各実施の形態において説明した本技術は、矛盾が生じない限り、他の任意の実施の形態において説明した本技術と組み合わせて適用することができる。
【0542】
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0543】
図60は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0544】
図60に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
【0545】
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
【0546】
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
【0547】
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0548】
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
【0549】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
【0550】
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
【0551】
<情報・処理の単位>
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【0552】
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報(例えばpresent_flag)を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【0553】
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【0554】
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
【0555】
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
【0556】
また、以上においては、本技術の適用例として、画像符号化装置100および画像復号装置200について説明したが、本技術は、任意の構成に適用することができる。
【0557】
例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
【0558】
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
【0559】
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
【0560】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0561】
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【0562】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【0563】
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【0564】
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【0565】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
【0566】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0567】
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0568】
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0569】
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0570】
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0571】
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0572】
なお、本技術は以下のような構成も取ることができる。
(1) ブロックサイズに関する情報が所定の閾値以下である場合のみセカンダリ変換を行うように、セカンダリ変換識別子を設定する設定部と、
前記設定部により設定された前記セカンダリ変換識別子に基づいて、画像データから導出された係数データに対してセカンダリ変換を行う変換部と、
前記設定部により設定された前記セカンダリ変換識別子を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
(2) 前記閾値は、最大変換ブロックサイズである
(1)に記載の画像処理装置。
(3) 前記ブロックサイズに関する情報は、処理対象ブロックの水平方向のブロックサイズと、前記処理対象ブロックの垂直方向のブロックサイズであり、
前記設定部は、前記水平方向のブロックサイズおよび前記垂直方向のブロックサイズが前記最大変換ブロックサイズ以下である場合に前記セカンダリ変換を行うように、前記セカンダリ変換識別子を設定する
(2)に記載の画像処理装置。
(4) 前記設定部は、非ゼロ変換係数の数に基づいて前記セカンダリ変換識別子を設定する代わりに、前記水平方向のブロックサイズおよび前記垂直方向のブロックサイズが前記最大変換ブロックサイズ以下である場合に前記セカンダリ変換を行うように、前記セカンダリ変換識別子を設定する
(3)に記載の画像処理装置。
(5) 前記設定部は、符号化ブロックのフッタに格納される前記セカンダリ変換識別子を設定する
(4)に記載の画像処理装置。
(6) ブロックサイズに関する情報が所定の閾値以下である場合のみセカンダリ変換を行うように、セカンダリ変換識別子を設定し、
設定された前記セカンダリ変換識別子に基づいて、画像データから導出された係数データに対してセカンダリ変換を行い、
設定された前記セカンダリ変換識別子を符号化し、ビットストリームを生成する
画像処理方法。
【0573】
(7) 符号化ブロックのフッタ以外に格納されるセカンダリ変換識別子を設定するセカンダリ変換識別子設定部と、
前記セカンダリ変換識別子設定部により設定された前記セカンダリ変換識別子に基づいて、画像データから導出された係数データに対してセカンダリ変換を行う変換部と、
前記セカンダリ変換識別子設定部により設定された前記セカンダリ変換識別子を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
(8) 前記セカンダリ変換識別子設定部は、前記符号化ブロックのヘッダに格納される前記セカンダリ変換識別子を設定する
(7)に記載の画像処理装置。
(9) 前記セカンダリ変換識別子設定部は、非ゼロ変換係数の数に基づいて前記セカンダリ変換識別子を設定する代わりに、残差PCM符号化モードを適用するか否かを示すフラグに基づいて、前記セカンダリ変換識別子を設定する
(7)または(8)に記載の画像処理装置。
(10) ツリータイプに基づいてコンテキストの設定を行うコンテキスト設定部をさらに備える
(7)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記セカンダリ変換識別子設定部は、変換ユニットに格納される前記セカンダリ変換識別子を設定する
(7)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記セカンダリ変換識別子設定部は、変換ブロックに格納される前記セカンダリ変換識別子を設定する
(7)乃至(10)のいずれかに記載の画像処理装置。
(13) コンポーネントに基づいてコンテキストの設定を行うコンテキスト設定部をさらに備える
(7)乃至(12)のいずれかに記載の画像処理装置。
(14) 高域のプライマリ変換係数をゼロ化するセカンダリ変換を適用する変換ブロックであって、変換ブロックサイズが4x4より大きい場合、有効変換領域サイズを4x4にする有効変換領域サイズ導出部をさらに備える
(7)乃至(13)のいずれかに記載の画像処理装置。
(15) 符号化ブロックのフッタ以外に格納されるセカンダリ変換識別子を設定し、 設定された前記セカンダリ変換識別子に基づいて、画像データから導出された係数データに対してセカンダリ変換を行い、
設定された前記セカンダリ変換識別子を符号化し、ビットストリームを生成する
画像処理方法。
【符号の説明】
【0574】
100 画像符号化装置, 101 制御部, 113 直交変換部, 115 符号化部, 118 逆直交変換部, 151 セカンダリ変換識別子設定部, 152 変換スキップフラグ設定部, 153 適応直交変換識別子設定部, 154 コンテキスト設定部, 172 セカンダリ変換部, 200 画像復号装置, 212 復号部, 214 逆直交変換部, 242 解析部, 251 セカンダリ変換識別子解析部, 252 変換スキップフラグ解析部, 253 適応直交変換識別子解析部, 254 コンテキスト設定部, 271 逆セカンダリ変換部, 401 有効変換領域サイズ導出部, 402 ラスト係数位置設定部, 421 ラスト係数位置解析部, 422 有効変換領域サイズ解析部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60