(57)【要約】【課題】変換係数の符号化及び復号に係る処理量を削減する【解決手段】量子化残差情報復号部１１１の備える係数有無フラグ復号部１２４は、対象周波数領域、または対象画素領域をサブブロックに分割し、変換スキップあるいは変換量子化バイパスによって得られる画素領域における各変換係数と、周波数変換によって周波数成分毎に得られる各変換係数に対して、異なるコンテキストインデックスを導出する。【選択図】図１
2020171063.tif 000002
【特許請求の範囲】
【請求項１】
対象画像を単位領域毎に周波数変換することによって得られる変換係数、および変換スキップあるいは変換量子化バイパスによって得られる各変換係数の符号化データを復号する算術復号装置において、
変換スキップフラグ、変換量子化バイパスフラグ、および対象サブブロック内における非０係数の位置の差を参照して、サインハイディングを行うか否かを示すサインハイディングフラグを導出するサインハイディングフラグ導出手段と、
前記サインハイディングフラグがサインハイディングを行わないことを示す場合、前記符号化データから前記変換係数の符号を復号し、
前記サインハイディングフラグがサインハイディングを行うことを示す場合、係数レベルの絶対値の和を参照して前記変換係数の符号を導出する、
係数サイン復号手段と、
を備えていることを特徴とする算術復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算術符号化された符号化データを復号する算術復号装置、および、そのような算術復号装置を備えている画像復号装置に関する。また、算術符号化された符号化データを生成する算術符号化装置、および、そのような算術符号化装置を備えている画像符号化装置に関する。
【背景技術】
【０００２】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置（画像符号化装置）、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置（画像復号装置）が用いられている。
【０００３】
具体的な動画像符号化方式としては、例えば、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣや、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている方式（非特許文献１）などが挙げられる。
【０００４】
このような動画像符号化方式においては、動画像を構成する画像（ピクチャ）は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化単位（コーディングユニット（Coding Unit）と呼ばれることもある）、及び、符号化単位を分割することより得られるブロックおよびパーティションからなる階層構造により管理され、普通、ブロックごとに符号化／復号される。
【０００５】
また、このような符号化方式においては、通常、入力画像を符号化及び復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像と入力画像との差分画像（「残差画像」または「予測残差」と呼ぶこともある）をブロック毎にＤＣＴ（Discrete Cosine Transform）変換等の周波数変換を施すことによって得られる変換係数が符号化される。
【０００６】
変換係数の具体的な符号化の方式としては、コンテキスト適応型２値算術符号化（CABAC：Context-based Adaptive Binary Arithmetic Coding）が知られている。
【０００７】
ＣＡＢＡＣでは、変換係数を表す各種のシンタックスに対して２値化処理が施され、この２値化処理によって得られた２値データが算術符号化される。ここで、上記各種のシンタックスとしては、変換係数が０であるか否かを示すフラグ、すなわち非０係数の有無を示すフラグsignificant_coeff_flag（係数有無フラグとも呼ぶ）、変換係数の絶対値が１を超えるものであるか否かを示すフラグcoeff_abs_level_greater1_flag（ＧＲ１フラグとも呼ぶ）、変換係数の絶対値が２を超えるものであるか否かを示すフラグcoeff_abs_level_greater2_flag（ＧＲ２フラグ）、並びに、処理順で最後の非０係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yなどが挙げられる。
【０００８】
また、ＣＡＢＡＣでは、シンボル（２値データの１ビット、Ｂｉｎとも呼ぶ）を１つ符号化する際、コンテキストインデックスが参照され、当該コンテキストインデックスによって指定されるコンテキスト変数に含まれる確率状態インデックスの指し示す発生確率に応じた算術符号化が行われる。コンテキストインデックスは、例えば、算術符号化の対象シンタックスが係数有無フラグである場合、変換係数の周波数成分内の位置に応じて導出される。また、確率状態インデックスによって指定される発生確率は、シンボルを１つ符号化する毎に更新される。なお、以下の記載では、特定のＢｉｎの符号化時に参照するコンテキストインデックスを導出する処理のことを、コンテキスト導出処理とも表現する。
【０００９】
非特許文献１では、変換係数の正負を表わす符号の符号化方法として、サインハイディングが採用されている。サインハイディングとは、変換係数の符号を明示的に符号化せず、計算により算出する方法である。
【００１０】
また、非特許文献１では、非０係数の符号化方法として、２レイヤ符号化が採用されている。２レイヤ符号化とは、変換単位を複数のサブブロックに2分割し、当該サブブロックに含まれる変換係数それぞれについて、変換係数が非０であるか否かを示すフラグ（significant_coeff_flag）を符号化するとともに、サブブロック単位で、非０係数が含まれているか否かを示すフラグ（significant_coeff_group_flag）を符号化する。
【００１１】
また、非特許文献１では、変換単位（Transform unit;ＴＵ）のサイズに応じて次のように符号化を行う。すなわち、小ＴＵ（４×４、８×８）では、サブブロックサイズとして、４×４または８×２が用いられ、位置ベースで周波数成分に割り付けるコンテキストが導出される。位置ベースでのコンテキスト導出では、周波数成分に対して、周波数領域内での当該周波数成分の位置に応じて定まるコンテキストインデックス（位置コンテキストとも呼ぶ）が割り付けられる。
【００１２】
また、大ＴＵ（１６×１６、３２×３２、１６×４、４×１６、３２×８、８×３２）では、サブブロックサイズとして、４×４が用いられ、周辺参照ベースで周波数成分に割り付けるコンテキストが導出される。周辺参照ベースでのコンテキスト導出では、周波数成分に対して、当該周波数成分の周辺の周波数成分における非０係数の数（すなわち、significant_coeff_flagが参照される）に応じて定まるコンテキストインデックス（周辺参照コンテキストとも呼ぶ）が割り付けられる。
【００１３】
また、非特許文献２では、変換単位毎に、周波数変換の処理をスキップするか否かを制御する技術が開示されている。以降、周波数変換の処理をスキップすることを変換スキップと称する。
【００１４】
また、非特許文献３では、符号化単位毎に、周波数変換、量子化およびループフィルタの処理をスキップするか否かを制御する技術が開示されている。以降、周波数変換、量子化の処理をスキップすることを変換量子化バイパスと称する。変換量子化バイパスは、主にロスレス符号化時に利用される。
そのため、変換量子化バイパスと呼ばず、単にロスレスモードと呼ぶこともできる。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】「Suggested bug-fixes for HEVC text specification draft6（JCTVC-I0030）」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting: Geneva, CH, 27 April ‐ 7 May 2012（２０１２年４月公開）
【非特許文献２】＃Transform Skipping(JCTVC-I0408) 「Intra transform skipping（JCTVC-I0408）」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 9th Meeting: Geneva, CH, 27 April ‐ 7 May 2012（２０１２年４月公開）
【非特許文献３】＃cu_transquant_bypass_flag(JCTVC-I0529) 「AHG 13: Proposed bugfix for tickets 410 and 470 related to lossless coding（JCTVC-I0529）」, Joint Collaborative Team on Video Coding (JCT-VC) of ITUTSG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 9th Meeting: Geneva, CH, 27 April ‐ 7 May 2012（２０１２年４月公開）
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述の従来技術では、変換スキップ、または、変換量子化バイパスを適用する際に、非０係数の有無を示すフラグや、レベル値が特定の値であるかを示すフラグ（ＧＲ１フラグ、ＧＲ２フラグ）のコンテキストが、ＴＵ内もしくはサブブロック内で一様ではないため、変換係数の符号化及び復号に係る処理量の削減が十分ではないという問題があった。また、変換スキップにおいて一部係数の符号（サイン）を復号しない、サインハイディングを行うための処理が必要になるという問題があった。
【００１７】
また、変換スキップおよび変換量子化バイパスを適用する場合には、ＴＵ内もしくはサブブロック内での係数の出現確率が一様である傾向があるが、従来技術では、変換係数の位置に応じてコンテキストを変更するため、符号化効率が十分ではないという問題があった。
【００１８】
また、ロスレスにおいて、サブブロック内で一様なコンテキストを用いる場合には、コンテキストインデックスが増加するという問題があった。
【００１９】
また、変換スキップにおいてサインハイディングを行う場合には、サインハイディングにより符号化効率が低下するという問題があった。変換係数の符号化及び復号に係る処理量の削減が十分ではないという問題があった。
【００２０】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、従来の構成に比べて変換係数の符号化及び復号に係る処理量の削減、および符号化効率の向上を図ることのできる算術復号装置及び算術符号化装置等を実現することにある。
【課題を解決するための手段】
【００２１】
上記課題を解決するために、本発明に係る算術復号装置は、対象画像を単位領域毎に周波数変換することによって得られる変換係数、および変換スキップあるいは変換量子化バイパスによって得られる各変換係数の符号化データを復号する算術復号装置において、変換スキップフラグ、変換量子化バイパスフラグ、および対象サブブロック内における非０係数の位置の差を参照して、サインハイディングを行うか否かを示すサインハイディングフラグを導出するサインハイディングフラグ導出手段と、前記サインハイディングフラグがサインハイディングを行わないことを示す場合、前記符号化データから前記変換係数の符号を復号し、前記サインハイディングフラグがサインハイディングを行うことを示す場合、係数レベルの絶対値の和を参照して前記変換係数の符号を導出する、係数サイン復号手段と、を備えている。
【発明の効果】
【００２２】
以上のように、本発明に係る算術復号装置は、変換スキップフラグ、変換量子化バイパスフラグ、および対象サブブロック内における非０係数の位置の差を参照して、サインハイディングを行うか否かを示すサインハイディングフラグを導出するサインハイディングフラグ導出手段と、前記変換係数の符号を復号または導出する係数サイン復号手段と、を備える構成である。係数サイン復号手段は、前記サインハイディングフラグがサインハイディングを行わないことを示す場合、前記符号化データから前記変換係数の符号を復号し、前記サインハイディングフラグがサインハイディングを行うことを示す場合、係数レベルの絶対値の和を参照して前記変換係数の符号を導出する。
【００２３】
上記の構成によれば、従来の構成に比べて変換係数の符号化及び復号に係る処理量の削減、および符号化効率の向上を図ることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る動画像復号装置の備える量子化残差情報復号部の構成を示すブロック図である。
【図２】本発明の実施形態に係る動画像符号化装置によって生成され、動画像復号装置によって復号される符号化データのデータ構成を示す図であり、（ａ）〜（ｄ）は、それぞれ、ピクチャレイヤ、スライスレイヤ、ツリーブロックレイヤ、およびＣＵレイヤを示す図である。
【図３】（ａ）〜（ｈ）は、ＰＵ分割タイプのパターンを示す図であり、それぞれ、ＰＵ分割タイプが、２Ｎ×Ｎ、２Ｎ×ｎＵ、２Ｎ×ｎＤ、２Ｎ×Ｎ、２Ｎ×ｎＵ、および、２Ｎ×ｎＤの場合のパーティション形状について示している。（ｉ）〜（ｏ）は、正方形のノードを正方形または非正方形に４分木分割する分割方式について示す図であり。（ｉ）は、正方形の分割、（ｊ）は、横長の長方形の分割、（ｋ）は、縦長の長方形の分割、（ｌ）は、横長のノードの横長の分割、（ｍ）は、横長のノードの正方形の分割、（ｎ）は、縦長のノードの縦長の分割、および（ｏ）は、縦長のノードの正方形の分割を示している。
【図４】実施形態に係る符号化データの量子化残差情報に含まれるシンタックスを示すシンタックステーブルの前半部分を示す図である。
【図５】実施形態に係る符号化データの量子化残差情報に含まれるシンタックスを示すシンタックステーブルの後半部分を示す図である。
【図６】ブロックとサブブロックの関係を示す図であり、（ａ）は４×４ＴＵが４×４成分からなる１個のサブブロックから構成される例を示し、（ｂ）は８×８ＴＵが４×４成分からなる４個のサブブロックから構成される例を示し、（ｃ）は１６×１６ＴＵが４×４成分からなる１６個のサブブロックから構成される例を示す。
【図７】実施形態に係る復号処理及び符号化処理のスキャン順を説明するための図であって、（ａ）は、サブブロックスキャンが順スキャンである場合を示しており、（ｂ）は、サブブロック内スキャンが順スキャンである場合を示しており、（ｃ）は、サブブロックスキャンが逆スキャンである場合を示しており、（ｄ）は、サブブロック内スキャンが逆スキャンである場合を示している。
【図８】実施形態における非０係数の復号処理を説明するための図であって、（ａ）は、ＴＵサイズが８×８であるブロックが４×４のサイズのサブブロックに分割された場合に、順スキャンにて各周波数成分がスキャンされる場合のスキャン順を示しており、（ｂ）は、ＴＵサイズが８×８の周波数成分よりなる周波数領域における０でない変換係数（非０変化係数）を例示しており、（ｃ）は、復号対象の変換係数が、（ｂ）に示すものである場合の各サブブロックについて復号されたサブブロック係数有無フラグsignificant_coeff_group_flagの各値を示しており、（ｄ）は、復号対象の変換係数が、図８（ｂ）に示すものである場合の非０係数の有無を示すシンタックスsignificant_coeff_flagの各値を示しており、（ｅ）は、復号対象の変換係数が、（ｂ）に示すものである場合のシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、及びcoeff_abs_level_remainingを復号することによって得られた各変換係数の絶対値を示しており、（ｆ）は、復号対象の変換係数が、（ｂ）に示すものである場合のシンタックスcoeff_sign_flagを示している。
【図９】実施形態に係る動画像復号装置の構成を示すブロック図である。
【図１０】実施形態に係る動画像復号装置の備える可変長符号復号部の構成を示すブロック図である。
【図１１】実施形態に係る動画像復号装置において利用可能なイントラ予測の方向について示す図である。
【図１２】イントラ予測モードと、当該イントラ予測モードに対応付けられている名前とを示す図である。
【図１３】イントラ予測モードインデックスIntraPredModeと、log2TrafoSize-2の各値とによって指定されるスキャンインデックスscanIdxの例を示す表である。
【図１４】スキャンインデックスを説明するための図であって、（ａ）は、スキャンインデックスscanIdxの各値によって指定されるスキャンタイプScanTypeを示しており、（ｂ）は、ＴＵサイズが４×４成分であるときの、水平方向優先スキャン（horizontal fast scan）、垂直方向優先スキャン（verticalfact scan）、及び、斜め方向スキャン（Up-right diagonal scan）の各スキャンのスキャン順を示している。（ｃ）は、水平方向優先スキャン（horizontal fast scan）、垂直方向優先スキャン（vertical fact scan）の別の例を示す。
【図１５】実施形態に係るサブブロック係数有無フラグ復号部の構成を示すブロック図である。
【図１６】実施形態に係るサブブロック係数有無フラグ復号部による復号処理を説明するための図であって、（ａ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの下側に隣接する隣接サブブロック（ｘＣＧ、ｙＣＧ＋１）とを示しており、（ｂ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの右側に隣接する隣接サブブロック（ｘＣＧ＋１、ｙＣＧ）とを示しており、（ｃ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの下側に隣接する隣接サブブロック（ｘＣＧ、ｙＣＧ＋１）と、対象サブブロックの右側に隣接する隣接サブブロック（ｘＣＧ＋１、ｙＣＧ）とを示している。
【図１７】実施形態に係るサブブロック係数有無フラグ符号化及び復号処理を説明するための図であって、（ａ）は、１６×１６ＴＵの周波数領域に存在する変換係数を示しており、（ｂ）は、各サブブロックに割り付けられたサブブロック係数有無フラグを示している。
【図１８】実施形態に係る係数有無フラグ復号部の構成を示すブロック図である。
【図１９】変換スキップ・変換量子化バイパスフラグの復号処理を示す図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は復号処理を具体的に説明するためのフローチャートである。
【図２０】変換スキップ・変換量子化バイパスフラグの復号処理を示す図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は復号処理を具体的に説明するためのフローチャートである。
【図２１】従来例の変換スキップ・変換量子化バイパスフラグの復号処理を示す図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は復号処理を具体的に説明するためのフローチャートである。
【図２２】実施形態に係るコンテキストインデックス導出処理を説明するための図であって、（ａ）は、４×４のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙ、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示しており、（ｂ）は、８×８のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙ、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示している。
【図２３】実施形態に係る変換係数復号部によるスキャンタイプを選択する処理の流れを示すフローチャートである。
【図２４】実施形態に係る変換係数復号部による変換係数復号処理の流れを示すフローチャートである。
【図２５】実施形態に係る変換係数復号部によるサブブロック係数有無フラグを復号する処理の流れを示すフローチャートである。
【図２６】実施形態に係る変換係数復号部によるサブブロック内の各係数有無フラグsignificant_coeff_flagを復号する処理の流れを示すフローチャートである。
【図２７】ＣＵ予測方式情報ＰｒｅｄＭｏｄｅ、ＴＵサイズ及びイントラ予測モードインデックスIntraPredModeにより、サブブロックサイズを導出する方法を示す図である。
【図２８】パターンインデックスidxCGに従って、処理対象の周波数成分のサブブロック内での座標からコンテキストインデックスを導出するための疑似コードの別の例を示す図である。
【図２９】図２８に示す疑似コードによるコンテキストインデックス導出方法におけるコンテキストインデックスの値の配置を示す図である。
【図３０】コンテキスト導出手段選択部におけるコンテキスト導出手段の選択処理を説明するためのフローチャートである。
【図３１】コンテキスインデックスctxIdxの導出処理を説明するための図であり、（ａ）は、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ log2TrafoWidth-2 ][ log2TrafoHeight -2 ]を示す図であり、（ｂ）は、ＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ log2TrafoSize-2 ]を示す図である。
【図３２】予測タイプPredTypeとＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightとに対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[PredType][ log2TrafoWidth-2 ][ log2TrafoHeight -2 ]を示す図である。
【図３３】予測タイプPredTypeとＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType ][ log2TrafoSize-2 ]を示す図である。
【図３４】変換スキップと変換量子化バイパスを識別する識別子indexと、ＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType ][ log2TrafoSize-2 ]を示す図である。
【図３５】ＧＲ１フラグの復号処理を示すフローチャートである。
【図３６】ＧＲ２フラグの復号処理を示すフローチャートである。
【図３７】残余係数レベルの復号処理を示すフローチャートである。
【図３８】ＧＲ１フラグの符号化処理を示すフローチャートである。
【図３９】フラグの符号化処理を示すフローチャートである。
【図４０】残余係数レベルの符号化処理を示すフローチャートである。
【図４１】パターンインデックスidxCGに従って、処理対象の周波数成分のサブブロック内での座標からコンテキストインデックスを導出するための実施例に係る疑似コードを示す図である。
【図４２】図４１に示す疑似コードによるコンテキストインデックス導出方法におけるコンテキストインデックスの値の配置を示す図である。
【図４３】係数値復号部の構成例を示すブロック図である。
【図４４】実施形態に掛る係数サイン復号部の動作を示すフローチャートである。
【図４５】サインハイディングフラグ導出部におけるサインハイディングフラグ導出処理の流れを示すフローチャートである。
【図４６】係数値復号部の別の構成例を示すブロック図である。
【図４７】サイン符号導出部におけるサインハイディングの符号計算処理の詳細動作の流れを示すフローチャートである。
【図４８】係数絶対値和sumAbsを用いない場合の係数サイン復号部の動作を示すフローチャートである。
【図４９】係数絶対値和sumAbsを用いない構成におけるサイン符号導出部におけるサインハイディングの符号計算処理の詳細動作を示すフローチャートである。
【図５０】実施形態に係る動画像符号化装置の構成を示すブロック図である。
【図５１】実施形態に係る動画像符号化装置の備える可変長符号符号化部の構成を示すブロック図である。
【図５２】本発明の実施形態に係る動画像符号化装置の備える量子化残差情報符号化部の構成を示すブロック図である。
【図５３】変換スキップ・変換量子化バイパスフラグの符号化処理を説明するための図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は符号化処理を具体的に説明するためのフローチャートである。
【図５４】変換スキップ・変換量子化バイパスフラグの符号化処理を説明するための図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は符号化処理を具体的に説明するためのフローチャートである。
【図５５】従来の変換スキップ・変換量子化バイパスフラグの符号化処理を説明するための図であり、（ａ）は、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、（ｂ）は符号化処理を具体的に説明するためのフローチャートである。
【図５６】実施形態に係る係数有無フラグ符号化部の構成を示すブロック図である。
【図５７】実施形態に係るサブブロック係数有無フラグ符号化部の構成を示すブロック図である。
【図５８】実施形態に係る係数値シンタックス導出部の構成例を示すブロック図である。
【図５９】係数有無フラグ復号部の別の構成例を示すブロック図である。
【図６０】コンテキスト導出手段選択部におけるコンテキスト導出手段の選択処理を説明するためのフローチャートである。
【図６１】係数有無フラグ符号化部の別の構成例を示すブロック図である。
【図６２】上記動画像符号化装置を搭載した送信装置、および、上記動画像復号装置を搭載した受信装置の構成について示した図である。（ａ）は、動画像符号化装置を搭載した送信装置を示しており、（ｂ）は、動画像復号装置を搭載した受信装置を示している。
【図６３】上記動画像符号化装置を搭載した記録装置、および、上記動画像復号装置を搭載した再生装置の構成について示した図である。（ａ）は、動画像符号化装置を搭載した記録装置を示しており、（ｂ）は、動画像復号装置を搭載した再生装置を示している。
【発明を実施するための形態】
【００２５】
本発明に係る復号装置および符号化装置の実施形態について図面に基づいて説明すれば以下のとおりである。なお、本実施形態に係る復号装置は、符号化データから動画像を復号するものである。したがって、以下では、これを「動画像復号装置」と呼称する。また、本実施形態に係る符号化装置は、動画像を符号化することによって符号化データを生成するものである。したがって、以下では、これを「動画像符号化装置」と呼称する。
【００２６】
ただし、本発明の適用範囲はこれに限定されるものではない。すなわち、以下の説明からも明らかなように、本発明の特徴は複数のフレームを前提としなくとも成立するものである。すなわち、動画像を対象とするか静止画像を対象とするかを問わず、復号装置一般および符号化装置一般に適用できるものである。
【００２７】
（符号化データ＃１の構成）
図２を用いて、動画像符号化装置２によって生成され、動画像復号装置１によって復号される符号化データ＃１の構成例について説明する。符号化データ＃１は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
【００２８】
シーケンスレイヤでは、処理対象のシーケンスを復号するために、動画像復号装置１が参照するデータの集合が規定されている。シーケンスレイヤにはシーケンスパラメータセットＳＰＳ、ピクチャパラメータセットＰＰＳ、ピクチャＰＩＣＴを含んでいる。
【００２９】
符号化データ＃１におけるピクチャレイヤ以下の階層の構造を図２に示す。図２の（ａ）〜（ｄ）は、それぞれ、ピクチャＰＩＣＴを規定するピクチャレイヤ、スライスＳを規定するスライスレイヤ、ツリーブロック（Tree block）ＴＢＬＫを規定するツリーブロックレイヤ、ツリーブロックＴＢＬＫに含まれる符号化単位（Coding Unit；ＣＵ）を規定するＣＵレイヤを示す図である。
【００３０】
（ピクチャレイヤ）
ピクチャレイヤでは、処理対象のピクチャＰＩＣＴ（以下、対象ピクチャとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。ピクチャＰＩＣＴは、図２の（ａ）に示すように、ピクチャヘッダＰＨ、及び、スライスＳ1〜ＳNSを含んでいる（ＮＳはピクチャＰＩＣＴに含まれるスライスの総数）。
【００３１】
なお、以下、スライスＳ1〜ＳNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ＃１に含まれるデータであって、添え字を付している他のデータについても同様である。
【００３２】
ピクチャヘッダＰＨには、対象ピクチャの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれている。ピクチャヘッダＰＨに含まれる符号化パラメータとしては、例えば、符号化単位毎（ＣＵ単位）に、逆量子化、逆周波数変換の処理をスキップするか否かを示すフラグ（cu_transqunat_bypass_flag；変換量子化バイパスフラグ）を明示的に符号化データから復号するか否かを示す変換量子化バイパス有効フラグ（transqunat_bypass_enable_flag）や、変換単位毎（ＴＵ単位）に、逆周波数変換の処理をスキップするか否かを示すフラグ(transform_skip_flag;変換スキップフラグ)を明示的に符号化データから復号するか否かを示す変換スキップ有効フラグ（transform_skip_enable_flag）などが挙げられる。
【００３３】
なお、変換量子化バイパスはロスレス時に主に用いられるため、変換量子化バイパスフラグと呼ばずロスレスフラグ(cu_lossless_flag)と呼ぶこともできる。なお、上記変換量子化バイパス有効フラグと、変換スキップ有効フラグは、ピクチャヘッダＰＨではなく、上位のレイヤ（シーケンスパラメータセットＳＰＳ、ピクチャパラメータセットＰＰＳ）や、下位のレイヤ（スライスヘッダＳＨ）の符号化パラメータに記述示してもよい。
【００３４】
（スライスレイヤ）
スライスレイヤでは、処理対象のスライスＳ（対象スライスとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。スライスＳは、図２の（ｂ）に示すように、スライスヘッダＳＨ、及び、ツリーブロックＴＢＬＫ1〜ＴＢＬＫNC（ＮＣはスライスＳに含まれるツリーブロックの総数）を含んでいる。
【００３５】
スライスヘッダＳＨには、対象スライスの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報（slice_type）は、スライスヘッダＳＨに含まれる符号化パラメータの一例である。
【００３６】
スライスタイプ指定情報により指定可能なスライスタイプとしては、（１）符号化の際にイントラ予測のみを用いるＩスライス、（２）符号化の際に単予測、又は、イントラ予測を用いるＰスライス、（３）符号化の際に単予測、双予測、又は、イントラ予測を用いるＢスライスなどが挙げられる。
【００３７】
また、スライスヘッダＳＨには、動画像復号装置１の備えるループフィルタによって参照されるフィルタパラメータＦＰが含まれている。フィルタパラメータＦＰは、フィルタ係数群を含んでいる。フィルタ係数群には、（１）フィルタのタップ数を指定するタップ数指定情報、（２）フィルタ係数a0〜aNT-1（NTは、フィルタ係数群に含まれるフィルタ係数の総数）、および、（３）オフセットが含まれる。
【００３８】
（ツリーブロックレイヤ）
ツリーブロックレイヤでは、処理対象のツリーブロックＴＢＬＫ（以下、対象ツリーブロックとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。
【００３９】
ツリーブロックＴＢＬＫは、ツリーブロックヘッダＴＢＬＫＨと、符号化単位情報ＣＵ１〜ＣＵＮＬ（ＮＬはツリーブロックＴＢＬＫに含まれる符号化単位情報の総数）とを含む。ここで、まず、ツリーブロックＴＢＬＫと、符号化単位情報ＣＵとの関係について説明すると次のとおりである。
【００４０】
ツリーブロックＴＢＬＫは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのユニットに分割される。
【００４１】
ツリーブロックＴＢＬＫの上記ユニットは、再帰的な４分木分割により分割されている。この再帰的な４分木分割により得られる木構造のことを以下、符号化ツリー（coding tree）と称する。
【００４２】
以下、符号化ツリーの末端のノードであるリーフ（leaf）に対応するユニットを、符号化ノード（coding node）として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位（ＣＵ）とも称する。
【００４３】
つまり、符号化単位情報ＣＵ１〜ＣＵＮＬは、ツリーブロックＴＢＬＫを再帰的に４分木分割して得られる各符号化ノード（符号化単位）に対応する情報である。
【００４４】
また、符号化ツリーのルート（root）は、ツリーブロックＴＢＬＫに対応付けられる。換言すれば、ツリーブロックＴＢＬＫは、複数の符号化ノードを再帰的に含む４分木分割の木構造の最上位ノードに対応付けられる。
【００４５】
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード（すなわち、当該符号化ノードの１階層上位のノードのユニット）のサイズの縦横とも半分である。
【００４６】
また、各符号化ノードの取り得るサイズは、符号化データ＃１のシーケンスパラメータセットＳＰＳに含まれる、符号化ノードのサイズ指定情報および最大階層深度（maximum hierarchical depth）に依存する。例えば、ツリーブロックＴＢＬＫのサイズが６４×６４画素であって、最大階層深度が３である場合には、当該ツリーブロックＴＢＬＫ以下の階層における符号化ノードは、４種類のサイズ、すなわち、６４×６４画素、３２×３２画素、１６×１６画素、および８×８画素の何れかを取り得る。
【００４７】
（ツリーブロックヘッダ）
ツリーブロックヘッダＴＢＬＫＨには、対象ツリーブロックの復号方法を決定するために動画像復号装置１が参照する符号化パラメータが含まれる。具体的には、図２の（ｃ）に示すように、対象ツリーブロックの各ＣＵへの分割パターンを指定するツリーブロック分割情報ＳＰ＿ＴＢＬＫ、および、量子化ステップの大きさを指定する量子化パラメータ差分Δｑｐ（qp_delta）が含まれる。
【００４８】
ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各ＣＵの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
【００４９】
なお、ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ＣＵの形状やサイズを明示的に含んでいなくてもよい。例えばツリーブロック分割情報ＳＰ＿ＴＢＬＫは、対象ツリーブロック全体またはツリーブロックの部分領域を四分割するか否かを示すフラグ(split_coding_unit_flag)の集合であってもよい。その場合、ツリーブロックの形状やサイズを併用することで各ＣＵの形状やサイズを特定できる。
【００５０】
また、量子化パラメータ差分Δｑｐは、対象ツリーブロックにおける量子化パラメータｑｐと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータｑｐ’との差分ｑｐ−ｑｐ’である。
【００５１】
（ＣＵレイヤ）
ＣＵレイヤでは、処理対象のＣＵ（以下、対象ＣＵとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。
【００５２】
ここで、符号化単位情報ＣＵに含まれるデータの具体的な内容の説明をする前に、ＣＵに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー（prediction tree；ＰＴ）および変換ツリー（transform tree；ＴＴ）のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
【００５３】
予測ツリーにおいては、符号化ノードが１または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ノードを構成する１または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた１または複数の予測ブロックを含む。
【００５４】
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位（prediction unit；ＰＵ）とも称する。
【００５５】
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との２つがある。
【００５６】
イントラ予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）と、Ｎ×Ｎとがある。
【００５７】
また、インター予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）、２Ｎ×Ｎ、Ｎ×２Ｎ、および、Ｎ×Ｎなどがある。
【００５８】
また、変換ツリーにおいては、符号化ノードが１または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ノードを構成する１または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた１または複数の変換ブロックを含む。
【００５９】
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位（transform unit；ＴＵ）とも称する。ＴＵのサイズは、変換ブロックの横幅の対数値log2TrafoWidthと縦幅の対数値log2TrafoHeightとで表される。ＴＵのサイズはまた、以下の式で得られる値log2TrafoSizeでも表される。
【００６０】
log2TrafoSize = ( log2TrafoWidth + log2TrafoHeight ) >> 1以下、横幅Ｗ×縦幅Ｈのサイズを有するＴＵをＷ×ＨＴＵと呼ぶ（例：４×４ＴＵ）。
【００６１】
（符号化単位情報のデータ構造）
続いて、図２の（ｄ）を参照しながら符号化単位情報ＣＵに含まれるデータの具体的な内容について説明する。図２の（ｄ）に示すように、符号化単位情報ＣＵは、具体的には、変換量子化バイパスフラグ(transquant_bypass_flag; ＴＢＦとも称する)、スキップモードフラグＳＫＩＰ、ＣＵ予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅ、ＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩを含む。
【００６２】
［変換量子化バイパスフラグ］
変換量子化バイパスフラグtransquant_bypass_flagは、対象ＣＵに含まれる各ＴＵについて、逆量子化、及び逆変換を適用するか否かを示すフラグである。変換量子化バイパスフラグの値が１の場合、対象ＣＵに含まれる各ＴＵに関して、逆量子化・逆変換の処理は省略される。なお、変換量子化バイパスフラグtransquant_bypass_flagは、transquant_bypass_enable_flagの値が１の場合、明示的に符号化（復号）される。一方、transquant_bypass_enable_flagの値が０の場合は、変換量子化バイパスフラグのシンタックスの符号化（復号）は省略され、変換量子化バイパスフラグの値は０(transqunt_bypass_flag==0)と解釈される。なお変換量子化バイパスフラグは、ＣＵレイヤではなく、下位レイヤである変換単位（ＴＵ）毎に符号化（復号）されてもよい。
【００６３】
［スキップフラグ］
スキップフラグＳＫＩＰは、対象ＣＵについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグＳＫＩＰの値が１の場合、すなわち、対象ＣＵにスキップモードが適用されている場合、その符号化単位情報ＣＵにおけるＰＴ情報ＰＴＩは省略される。なお、スキップフラグＳＫＩＰは、Ｉスライスでは省略される。
【００６４】
［ＣＵ予測タイプ情報］
ＣＵ予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅは、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅおよびＰＵ分割タイプ情報ＰａｒｔＭｏｄｅを含む。ＣＵ予測タイプ情報のことを単に予測タイプ情報と呼ぶこともある。
【００６５】
ＣＵ予測方式情報ＰｒｅｄＭｏｄｅは、対象ＣＵに含まれる各ＰＵについての予測画像生成方法として、イントラ予測（イントラＣＵ）、および、インター予測（インターＣＵ）のいずれを用いるのかを指定するものである。なお、以下では、対象ＣＵにおける、スキップ、イントラ予測、および、インター予測の種別を、ＣＵ予測モードと称する。
【００６６】
ＰＵ分割タイプ情報ＰａｒｔＭｏｄｅは、対象符号化単位（ＣＵ）の各ＰＵへの分割のパターンであるＰＵ分割タイプを指定するものである。以下、このように、ＰＵ分割タイプに従って、対象符号化単位（ＣＵ）を各ＰＵへ分割することをＰＵ分割と称する。
【００６７】
ＰＵ分割タイプ情報ＰａｒｔＭｏｄｅは、例示的には、ＰＵ分割パターンの種類を示すインデックスであってもよいし、対象予測ツリーに含まれる各ＰＵの形状、サイズ、および、対象予測ツリー内での位置が指定されていてもよい。
【００６８】
なお、選択可能なＰＵ分割タイプは、ＣＵ予測方式とＣＵサイズに応じて異なる。また、さらにいえば、選択可能なＰＵ分割タイプは、インター予測およびイントラ予測それぞれの場合において異なる。また、ＰＵ分割タイプの詳細については後述する。
【００６９】
［ＰＴ情報］
ＰＴ情報ＰＴＩは、対象ＣＵに含まれるＰＴに関する情報である。言い換えれば、ＰＴ情報ＰＴＩは、ＰＴに含まれる１または複数のＰＵそれぞれに関する情報の集合である。上述のとおり予測画像の生成は、ＰＵを単位として行われるので、ＰＴ情報ＰＴＩは、動画像復号装置１によって予測画像が生成される際に参照される。ＰＴ情報ＰＴＩは、図２の（ｄ）に示すように、各ＰＵにおける予測情報等を含むＰＵ情報ＰＵＩ１〜ＰＵＩＮＰ（ＮＰは、対象ＰＴに含まれるＰＵの総数）を含む。
【００７０】
予測情報ＰＵＩは、予測タイプ情報Ｐｒｅｄ＿ｍｏｄｅが何れの予測方法を指定するのかに応じて、イントラ予測パラメータＰＰ＿Ｉｎｔｒａ、または、インター予測パラメータＰＰ＿Ｉｎｔｅｒを含む。以下では、イントラ予測が適用されるＰＵをイントラＰＵとも呼称し、インター予測が適用されるＰＵをインターＰＵとも呼称する。
【００７１】
インター予測パラメータＰＰ＿Ｉｎｔｅｒは、動画像復号装置１が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータを含む。
【００７２】
インター予測パラメータＰＰ＿Ｉｎｔｅｒとしては、例えば、マージフラグ（ｍｅｒｇｅ＿ｆｌａｇ）、マージインデックス（ｍｅｒｇｅ＿ｉｄｘ）、推定動きベクトルインデックス（ｍｖｐ＿ｉｄｘ）、参照画像インデックス（ｒｅｆ＿ｉｄｘ）、インター予測フラグ（ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ）、および動きベクトル残差（ｍｖｄ）が挙げられる。
【００７３】
イントラ予測パラメータＰＰ＿Ｉｎｔｒａは、動画像復号装置１が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータを含む。
【００７４】
イントラ予測パラメータＰＰ＿Ｉｎｔｒａとしては、例えば、推定予測モードフラグ、推定予測モードインデックス、および、残余予測モードインデックスが挙げられる。
【００７５】
なお、イントラ予測パラメータには、ＰＣＭモードを用いるか否かを示すＰＣＭモードフラグが含まれていてもよい。ＰＣＭモードフラグが符号化されている場合であって、ＰＣＭモードフラグがＰＣＭモードを用いることを示しているときには、予測処理（イントラ）、変換処理、および、エントロピー符号化の各処理が省略される。
【００７６】
［ＴＴ情報］
ＴＴ情報ＴＴＩは、ＣＵに含まれるＴＴに関する情報である。言い換えれば、ＴＴ情報ＴＴＩは、ＴＴに含まれる１または複数のＴＵそれぞれに関する情報の集合であり、動画像復号装置１により残差データを復号する際に参照される。なお、以下、ＴＵのことをブロックと称することもある。
【００７７】
ＴＴ情報ＴＴＩは、図２の（ｄ）に示すように、対象ＣＵの各変換ブロックへの分割パターンを指定するＴＴ分割情報ＳＰ＿ＴＵ、および、ＴＵ情報ＴＵＩ1〜ＴＵＩNT（ＮＴは、対象ＣＵに含まれるブロックの総数）を含んでいる。
【００７８】
ＴＴ分割情報ＳＰ＿ＴＵは、具体的には、対象ＣＵに含まれる各ＴＵの形状、サイズ、および、対象ＣＵ内での位置を決定するための情報である。例えば、ＴＴ分割情報ＳＰ＿ＴＵは、対象となるノードの分割を行うのか否かを示す情報（split_transform_flag）と、その分割の深度を示す情報（trafoDepth）とから実現することができる。
【００７９】
また、例えば、ＣＵのサイズが、６４×６４の場合、分割により得られる各ＴＵは、３２×３２画素から４×４画素までのサイズを取り得る。
【００８０】
ＴＵ情報ＴＵＩ1〜ＴＵＩNTは、ＴＴに含まれる１または複数のＴＵそれぞれに関する個別の情報である。例えば、ＴＵ情報ＴＵＩは、量子化予測残差（量子化残差とも呼ぶ）を含んでいる。
【００８１】
各量子化予測残差は、動画像符号化装置２が以下の処理Ａ、または、Ｂ、またはＣを、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
【００８２】
（処理Ａ：周波数変換・量子化を実施し、量子化された変換係数を可変長符号化する場合）
処理Ａ−１：符号化対象画像から予測画像を減算した予測残差を周波数変換（例えばＤＣＴ変換（Discrete Cosine Transform））する；
処理Ａ−２：処理Ａ−１にて得られた変換係数を量子化する；
処理Ａ−３：処理Ａ−２にて量子化された変換係数を可変長符号化する；
（処理Ｂ：周波数変換をスキップし、量子化を実施し、量子化された予測残差の値を可変長符号化する場合（変換スキップ時））
処理Ｂ−１：符号化対象画像から予測画像を減算した予測残差を量子化する；
処理Ｂ−２：処理Ｂ−１にて量子化された予測残差（係数）を可変長符号化する；
（処理Ｃ：周波数変換、及び量子化をスキップし、予測残差の値を可変長符号化する場合（変換量子化バイパス時））
処理Ｃ−１：符号化対象画像から予測画像を減算した予測残差を可変長符号化する；
以下、予測残差の変換係数、予測残差の係数を区別せず単に「変換係数」と呼ぶ。
【００８３】
なお、上述した量子化パラメータｑｐは、動画像符号化装置２が変換係数を量子化する際に用いた量子化ステップＱＰの大きさを表す（ＱＰ＝２qp/6）。
【００８４】
（ＰＵ分割タイプ）
ＰＵ分割タイプには、対象ＣＵのサイズを２Ｎ×２Ｎ画素とすると、次の合計８種類のパターンがある。すなわち、２Ｎ×２Ｎ画素、２Ｎ×Ｎ画素、Ｎ×２Ｎ画素、およびＮ×Ｎ画素の４つの対称的分割（symmetric splittings）、並びに、２Ｎ×ｎＵ画素、２Ｎ×ｎＤ画素、ｎＬ×２Ｎ画素、およびｎＲ×２Ｎ画素の４つの非対称的分割（asymmetric splittings）である。なお、Ｎ＝２ｍ（ｍは１以上の任意の整数）を意味している。以下、対称ＣＵを分割して得られる領域のことをパーティションとも称する。
【００８５】
図３の（ａ）〜（ｈ）に、それぞれの分割タイプについて、ＣＵにおけるＰＵ分割の境界の位置を具体的に図示している。
【００８６】
図３の（ａ）は、ＣＵの分割を行わない２Ｎ×２ＮのＰＵ分割タイプを示している。また、図３の（ｂ）、（ｃ）、および（ｄ）は、それぞれ、ＰＵ分割タイプが、２Ｎ×Ｎ、２Ｎ×ｎＵ、および、２Ｎ×ｎＤである場合のパーティションの形状について示している。また、図３の（ｅ）、（ｆ）、および（ｇ）は、それぞれ、ＰＵ分割タイプが、Ｎ×２Ｎ、ｎＬ×２Ｎ、および、ｎＲ×２Ｎである場合のパーティションの形状について示している。また、図３の（ｈ）は、ＰＵ分割タイプが、Ｎ×Ｎである場合のパーティションの形状を示している。
【００８７】
図３の（ａ）および（ｈ）のＰＵ分割タイプのことを、そのパーティションの形状に基づいて、正方形分割とも称する。また、図３の（ｂ）〜（ｇ）のＰＵ分割タイプのことは、非正方形分割とも称する。
【００８８】
また、図３の（ａ）〜（ｈ）において、各領域に付した番号は、領域の識別番号を示しており、この識別番号順に、領域に対して処理が行われる。すなわち、当該識別番号は、領域のスキャン順を表している。
【００８９】
［インター予測の場合の分割タイプ］
インターＰＵでは、上記８種類の分割タイプのうち、Ｎ×Ｎ（図３の（ｈ））以外の７種類が定義されている。なお、上記６つの非対称的分割は、ＡＭＰ（Asymmetric Motion Partition）と呼ばれることもある。
【００９０】
また、Ｎの具体的な値は、当該ＰＵが属するＣＵのサイズによって規定され、ｎＵ、ｎＤ、ｎＬ、および、ｎＲの具体的な値は、Ｎの値に応じて定められる。例えば、１２８×１２８画素のインターＣＵは、１２８×１２８画素、１２８×６４画素、６４×１２８画素、６４×６４画素、１２８×３２画素、１２８×９６画素、３２×１２８画素、および、９６×１２８画素のインターＰＵへ分割することが可能である。
【００９１】
［イントラ予測の場合の分割タイプ］
イントラＰＵでは、次の２種類の分割パターンが定義されている。対象ＣＵを分割しない、すなわち対象ＣＵ自身が１つのＰＵとして取り扱われる分割パターン２Ｎ×２Ｎと、対象ＣＵを、４つのＰＵへと対称的に分割するパターンＮ×Ｎと、である。
【００９２】
したがって、イントラＰＵでは、図３に示した例でいえば、（ａ）および（ｈ）の分割パターンを取ることができる。
【００９３】
例えば、１２８×１２８画素のイントラＣＵは、１２８×１２８画素、および、６４×６４画素のイントラＰＵへ分割することが可能である。
【００９４】
（ＴＵ分割タイプ）
次に、図３（ｉ）〜（ｏ）を用いて、ＴＵ分割タイプについて説明する。ＴＵ分割のパターンは、ＣＵのサイズ、分割の深度（trafoDepth）、および対象ＰＵのＰＵ分割タイプにより定まる。
【００９５】
また、ＴＵ分割のパターンには、正方形の４分木分割と、非正方形の４分木分割とが含まれる。
【００９６】
図３の（ｉ）〜（ｋ）は、正方形のノードを正方形または非正方形に４分木分割する分割方式について示している。より具体的には、図３の（ｉ）は、正方形のノードを正方形に４分木分割する分割方式を示している。また、同図の（ｊ）は、正方形のノードを横長の長方形に４分木分割する分割方式を示している。そして、同図の（ｋ）は、正方形のノードを縦長の長方形に４分木分割する分割方式を示している。
【００９７】
また、図３の（ｌ）〜（ｏ）は、非正方形のノードを正方形または非正方形に４分木分割する分割方式について示している。より具体的には、図３の（ｌ）は、横長の長方形のノードを横長の長方形に４分木分割する分割方式を示している。また、同図の（ｍ）は、横長の長方形のノードを正方形に４分木分割する分割方式を示している。また、同図の（ｎ）は、縦長の長方形のノードを縦長の長方形に４分木分割する分割方式を示している。そして、同図の（ｏ）は、縦長の長方形のノードを正方形に４分木分割する分割方式
を示している。
【００９８】
（量子化残差情報ＱＤの構成）
量子化残差情報ＱＤは、最後の非０係数の位置や、サブブロック内の非０係数の有無、各位置での非０係数の有無、変換係数のレベル、係数の符号等の情報を含んでいてもよい。例えば、図４及び図５では、量子化残差情報ＱＤ（図４ではresidual_coding_cabac()と表記）に含まれる各シンタックスが示されている。
【００９９】
図４は、量子化残差情報ＱＤに含まれるシンタックスを示すシンタックステーブルの前半部分を示す図である。図５は、量子化残差情報ＱＤに含まれるシンタックスを示すシンタックステーブルの後半部分を示す図である。
【０１００】
図４及び図５に示すように、量子化残差情報ＱＤは、シンタックスtransqunat_bypass_flag, transform_skip_flag、last_significant_coeff_x、last_significant_coeff_y、significant_coeff_group_flag、significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、coeff_abs_level_remainingを含む構成であってもよい。
【０１０１】
量子化残差情報ＱＤに含まれる各シンタックスは、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）によって符号化されている。
【０１０２】
変換係数は、低周波数側から高周波数側に向かって順次スキャンが行われる。このスキャン順を、順スキャンと呼ぶこともある。一方で、順スキャンとは逆に高周波数側から低周波数側のスキャンも用いられる。このスキャン順を、逆スキャンと呼ぶこともある。なお、変換スキップ、あるいは変換量子化バイパスが実施される場合には、画素領域において、上記順スキャン、および逆スキャンが適用される。
【０１０３】
シンタックスlast_significant_coeff_x及びlast_significant_coeff_yは、順スキャン方向に沿って最後の非０係数の位置を示すシンタックスである。なお、各シンタックスをさらにprefixとsuffixに分けて符号化しても構わない。ラスト係数位置のプレフィックスlast_significant_coeff_x_prefix、last_significant_coeff_y_prefixと、ラスト係数位置のサフィックスlast_significant_coeff_x_suffix、last_significant_coeff_y_suffixと、を用いて、ラスト係数位置が導出されても構わない。
【０１０４】
シンタックスsignificant_coeff_flagは、非０係数を起点として逆スキャン方向に沿った各周波数成分について、非０係数の有無を示すシンタックスである。シンタックスsignificant_coeff_flagは、各ｘＣ、ｙＣについて、変換係数が０であれば０、変換係数が０でなければ１をとるフラグである。なお、シンタックスsignificant_coeff_flagを係数有無フラグとも呼称する。なお、significant_coeff_flagを独立のシンタックスとして扱わず、変換係数の絶対値を表すシンタックスcoeff_abs_levelに含まれるとしても良い。この場合、シンタックスcoeff_abs_levelの１ビット目がsignificant_coeff_flagに相当し、以下のsignificant_coeff_flagのコンテキストインテックスを導出する処理は、シンタックスcoeff_abs_levelの１ビット目のコンテキストインデックスを導出する処理に相当する。
【０１０５】
動画像復号装置１の備える可変長符号復号部１１は、変換ブロックを複数のサブブロックに分割し、サブブロックを処理単位として、significant_coeff_flagの復号を行う。量子化残差情報ＱＤには、サブブロック単位で、サブブロック内に少なくとも１つの非０係数が存在するか否かを示すフラグ（サブブロック係数有無フラグsignificant_coeff_group_flag）が含まれる。
【０１０６】
以下では、復号処理について、図６〜図８を参照して説明する。
【０１０７】
図６は、ブロックとサブブロックの関係を示す図である。図６（ａ）は、４×４ＴＵが４×４成分からなる１個のサブブロックから構成される例を示す。図６（ｂ）は、８×８ＴＵが４×４成分からなる４個のサブブロックから構成される例を示す。図６（ｃ）は、１６×１６ＴＵが４×４成分からなる１６個のサブブロックから構成される例を示す。なお、ＴＵサイズとサブブロックサイズの関係および分割方法はこの例に限らない。
【０１０８】
図７（ａ）は、ブロックを分割して得られる複数の（図７（ａ）では４×４＝１６個の）サブブロックに対するスキャン順を示す図である。以下では、サブブロックを単位とするスキャンをサブブロックスキャンとも呼ぶ。サブブロックに対して図７（ａ）のようにスキャンが行われる場合、サブブロック内の各周波数領域に対して図７（ｂ）に示すスキャン順でスキャンが行われる。図７（ａ）及び図７（ｂ）に示すスキャン順を「順スキャン」とも呼ぶ。
【０１０９】
図７（ｃ）は、ブロックを分割して得られる複数の（図７（ｂ）では４×４＝１６個の）サブブロックに対するスキャン順を示す図である。サブブロックに対して図７（ｃ）のようにスキャンが行われる場合、サブブロック内の各周波数領域に対して図７（ｄ）に示すスキャン順でスキャンが行われる。図７（ｃ）及び図７（ｄ）に示すスキャン順を「逆スキャン」とも呼ぶ。
【０１１０】
図８（ａ）〜（ｆ）の横軸は、水平方向周波数ｘＣ（０≦ｘＣ≦７）を表しており、縦軸は、垂直方向周波数ｙＣ（０≦ｙＣ≦７）を表している。以下の説明では、周波数領域に含まれる各部分領域のうち、水平方向周波数ｘＣ、および、垂直方向周波数ｙＣによって指定される部分領域を、周波数成分（ｘＣ、ｙＣ）とも呼称する。また、周波数成分（ｘＣ、ｙＣ）についての変換係数をＣｏｅｆｆ（ｘＣ、ｙＣ）とも表記する。変換係数Ｃｏｅｆｆ（０、０）は、ＤＣ成分を示しており、それ以外の変換係数は、ＤＣ成分以外の成分を表している。本明細書において、（ｘＣ、ｙＣ）を（ｕ、ｖ）と表記することもある。なお、変換スキップ、あるいは、変換量子化バイパスが適用される場合には、上記水平方向周波数ｘＣを画素領域での水平方向画素位置ｘＣ、上記垂直方向周波数ｘＣを画素領域での垂直方向画素位置ｘＣと解釈するものとする。水平方向画素位置ｘＣ、垂直方向画素位置ｙＣで指定される画素を、画素（ｘＣ、ｙＣ）とも呼称する。また、画素（ｘＣ、ｙＣ）についての予測残差をＣｏｅｆｆ（ｘＣ、ｙＣ）とも表記する。
【０１１１】
図８（ａ）は、ＴＵサイズが８×８であるブロックが４×４のサイズのサブブロックに分割された場合に、順スキャンにて各周波数成分（あるいは各画素）がスキャンされる場合のスキャン順を示す図である。
【０１１２】
図８（ｂ）は、８×８の周波数成分からなる周波数領域（あるいは８×８のサイズからなる画素領域）における０でない変換係数（非０係数）を例示する図である。図８（ｂ）に示す例の場合、last_significant_coeff_x＝６、last_significant_coeff_y＝０である。
【０１１３】
図８（ｃ）は、復号対象の変換係数が、図８（ｂ）に示すものである場合の各サブブロックについて復号されたサブブロック係数有無フラグsignificant_coeff_group_flagの各値を示す図である。少なくとも１つの非０係数を含むサブブロックに関するsignificant_coeff_group_flagは、値として１をとり、非０係数を１つも含まないサブブロックに関するsignificant_coeff_group_flagは、値として０をとる。
【０１１４】
図８（ｄ）は、復号対象の変換係数が、図８（ｂ）に示すものである場合の非０係数の有無を示すシンタックスsignificant_coeff_flagの各値を示す図である。significant_coeff_group_flag＝１であるサブブロックに対しては、significant_coeff_flagは逆スキャン順に復号され、significant_coeff_group_flag＝０であるサブブロックに対しては、当該サブブロックに対するsignificant_coeff_flagの復号処理を行うことなく、当該サブブロックに含まれる全ての周波数成分（あるいは画素）に対するsignificant_coeff_flagが０に設定される（図８（ｄ）の左下のサブブロック）。
【０１１５】
図８（ｅ）は、復号対象の変換係数が、図８（ｂ）に示すものである場合のシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、及びcoeff_abs_level_remainingを復号することによって得られた各変換係数の絶対値を示している。
【０１１６】
図８（ｆ）は、復号対象の変換係数が、図８（ｂ）に示すものである場合のシンタックスcoeff_sign_flagを示す図である。
【０１１７】
各変換係数の値を示すシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、及びcoeff_abs_level_remainingの復号は、モード（ハイスループットモード）により変化する。サブブロックの開始時には、ハイスループットモードがオフであり、サブブロック内の非０係数の数が所定の定数以上となった時点で、ハイスループットモードがオンとなる。ハイスループットモードでは、一部のシンタックスの復号をスキップする。
【０１１８】
シンタックスcoeff_abs_level_greater1_flagは、変換係数の絶対値が１を越えるものであるのか否かを示すフラグであり、シンタックスsignificant_coeff_flagの値が１である周波数成分について符号化される。変換係数の絶対値が１を越えるものであるとき、coeff_abs_level_greater1_flagの値は１であり、そうでないときにcoeff_abs_level_greater1_flagの値は０である。なお、coeff_abs_level_greater1_flagの復号は、ハイスループットモードの場合にはスキップされる。
【０１１９】
シンタックスcoeff_abs_level_greater2_flagは、変換係数の絶対値が２を越えるものであるのか否かを示すフラグであり、coeff_abs_level_greater1_flagの値が１であるときに符号化される。変換係数の絶対値が２を越えるものであるとき、coeff_abs_level_greater2_flagの値は１であり、そうでないときにcoeff_abs_level_greater2_flagの値は０である。なお、coeff_abs_level_greater2_flagの復号は、各サブブロックで１回目以降、及びハイスループットモードの場合にはスキップされる。
【０１２０】
シンタックスcoeff_abs_level_remainingは、変換係数の絶対値が所定のベースレベルbaseLevelである場合に、当該変換係数の絶対値を指定するためのシンタックスであり、coeff_abs_level_greater1_flagの復号がスキップされる場合、coeff_abs_level_greater2_flagがスキップされcoeff_abs_level_greater1_flagが１の場合、coeff_abs_level_greater2_flagの値が１であるときに符号化される。シンタックスcoeff_abs_remainingの値は、変換係数の絶対値からbaseLevelを引いたものである。例えば、coeff_abs_level_remaining＝１は、変換係数の絶対値がbaseLevel＋１であることを示している。なお、baseLevelは以下のように定まる。
【０１２１】
baseLevel ＝ １ （coeff_abs_level_greater1_flagの復号がスキップされた場合）
baseLevel ＝ ２ （上記以外でcoeff_abs_level_greater2_flagの復号がスキップされた場合）
baseLevel ＝ ３ （上記以外でcoeff_abs_level_greater2_flagが１の場合）
シンタックスcoeff_sign_flagは、変換係数の符号（正であるのか負であるのか）を示すフラグであり、サインハイディングが行われる場合を除き、シンタックスsignificant_coeff_flagの値が１である周波数成分について符号化される。シンタックスcoeff_sign_flagは、変換係数が正である場合に１をとり、変換係数が負である場合に０をとる。
【０１２２】
なお、サインハイディングとは、変換係数の符号を明示的に符号化せず、計算により算出する方法を言う。
【０１２３】
動画像復号装置１の備える可変長符号復号部１１は、シンタックスtransquant_bypass_flag, transform_skip_flag, last_significant_coeff_x、last_significant_coeff_y、significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、coeff_abs_level_remainingを復号することにより、各周波数成分（あるいは各画素）についての変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）を生成することができる。
【０１２４】
なお、特定の領域（例えばＴＵ）内の非０係数の集合をsignificance mapと呼ぶこともある。
【０１２５】
各種シンタックスの復号処理の詳細については、後述することとし、続いて動画像復号装置１の構成について説明を行う。
【０１２６】
（動画像復号装置１）
以下では、本実施形態に係る動画像復号装置１について図面を参照して説明する。動画像復号装置１は、Ｈ．２６４／ＭＰＥＧ−４ ＡＶＣ規格の後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている技術を実装している復号装置である。
【０１２７】
図９は、動画像復号装置１の構成を示すブロック図である。図９に示すように、動画像復号装置１は、可変長符号復号部１１、予測画像生成部１２、逆量子化・逆変換部１３、加算器１４、フレームメモリ１５、および、ループフィルタ１６を備えている。また、図９に示すように、予測画像生成部１２は、動きベクトル復元部１２ａ、インター予測画像生成部１２ｂ、イントラ予測画像生成部１２ｃ、および、予測方式決定部１２ｄを備えている。動画像復号装置１は、符号化データ＃１を復号することによって動画像＃２を生成するための装置である。
【０１２８】
（可変長符号復号部１１）
図１０は、可変長符号復号部１１の要部構成を示すブロック図である。図１０に示すように、可変長符号復号部１１は、量子化残差情報復号部１１１、予測パラメータ復号部１１２、予測タイプ情報復号部１１３、および、フィルタパラメータ復号部１１４を備えている。
【０１２９】
可変長符号復号部１１は、予測パラメータ復号部１１２にて、各パーティションに関する予測パラメータＰＰを、符号化データ＃１から復号し、予測画像生成部１２に供給する。具体的には、予測パラメータ復号部１１２は、インター予測パーティションに関しては、参照画像インデックス、推定動きベクトルインデックス、及び、動きベクトル残差を含むインター予測パラメータＰＰ＿Ｉｎｔｅｒを符号化データ＃１から復号し、これらを動きベクトル復元部１２ａに供給する。一方、イントラ予測パーティションに関しては、推定予測モードフラグ、推定予測モードインデックス、および、残余予測モードインデックスを含むイントラ予測パラメータＰＰ＿Ｉｎｔｒａを符号化データ＃１から復号し、これらをイントラ予測画像生成部１２ｃに供給する。
【０１３０】
また、可変長符号復号部１１は、予測タイプ情報復号部１１３にて、各パーティションについての予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅを符号化データ＃１から復号し、これを予測方式決定部１２ｄに供給する。更に、可変長符号復号部１１は、量子化残差情報復号部１１１にて、ブロックに関する量子化残差情報ＱＤ、及び、そのブロックを含むＴＵに関する量子化パラメータ差分Δｑｐを符号化データ＃１から復号し、これらを逆量子化・逆変換部１３に供給する。また、可変長符号復号部１１は、フィルタパラメータ復号部１１４にて、符号化データ＃１からフィルタパラメータＦＰを復号し、これをループフィルタ１６に供給する。なお、量子化残差情報復号部１１１の具体的な構成については後述するためここでは説明を省略する。
【０１３１】
（予測画像生成部１２）
予測画像生成部１２は、各パーティションについての予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを識別する。そして、前者の場合には、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを生成すると共に、生成したインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器１４に供給し、後者の場合には、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成すると共に、生成したイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを加算器１４に供給する。なお、予測画像生成部１２は、処理対象ＰＵに対してスキップモードが適用されている場合には、当該ＰＵに属する他のパラメータの復号を省略する。
【０１３２】
（動きベクトル復元部１２ａ）
動きベクトル復元部１２ａは、各インター予測パーティションに関する動きベクトルｍｖを、そのパーティションに関する動きベクトル残差と、他のパーティションに関する復元済みの動きベクトルｍｖ’とから復元する。具体的には、（１）推定動きベクトルインデックスにより指定される推定方法に従って、復元済みの動きベクトルｍｖ’から推定動きベクトルを導出し、（２）導出した推定動きベクトルと動きベクトル残差とを加算することによって動きベクトルｍｖを得る。なお、他のパーティションに関する復元済みの動きベクトルｍｖ’は、フレームメモリ１５から読み出すことができる。動きベクトル復元部１２ａは、復元した動きベクトルｍｖを、対応する参照画像インデックスＲＩと共に、インター予測画像生成部１２ｂに供給する。
【０１３３】
（インター予測画像生成部１２ｂ）
インター予測画像生成部１２ｂは、画面間予測によって、各インター予測パーティションに関する動き補償画像ｍｃを生成する。具体的には、動きベクトル復元部１２ａから供給された動きベクトルｍｖを用いて、同じく動きベクトル復元部１２ａから供給された参照画像インデックスＲＩによって指定される適応フィルタ済復号画像Ｐ＿ＡＬＦ’から動き補償画像ｍｃを生成する。ここで、適応フィルタ済復号画像Ｐ＿ＡＬＦ’は、既にフレーム全体の復号が完了した復号済みの復号画像に対して、ループフィルタ１６によるフィルタ処理を施すことによって得られる画像であり、インター予測画像生成部１２ｂは、適応フィルタ済復号画像Ｐ＿ＡＬＦ’を構成する各画素の画素値をフレームメモリ１５から読み出すことができる。インター予測画像生成部１２ｂによって生成された動き補償画像ｍｃは、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒとして予測方式決定部１２ｄに供給される。
【０１３４】
（イントラ予測画像生成部１２ｃ）
イントラ予測画像生成部１２ｃは、各イントラ予測パーティションに関する予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。具体的には、まず、可変長符号復号部１１から供給されたイントラ予測パラメータＰＰ＿Ｉｎｔｒａに基づいて予測モードを特定し、特定された予測モードを対象パーティションに対して、例えば、ラスタスキャン順に割り付ける。
【０１３５】
ここで、イントラ予測パラメータＰＰ＿Ｉｎｔｒａに基づく予測モードの特定は、以下のように行うことができる。（１）推定予測モードフラグを復号し、当該推定予測モードフラグが、処理対象である対象パーティションについての予測モードと、当該対象パーティションの周辺のパーティションに割り付けられた予測モードとが同一であることを示している場合には、対象パーティションに対して、当該対象パーティションの周辺のパーティションに割り付けられた予測モードを割り付ける。（２）一方で、推定予測モード
フラグが、処理対象である対象パーティションについての予測モードと、当該対象パーティションの周辺のパーティションに割り付けられた予測モードとが同一でないことを示している場合には、残余予測モードインデックスを復号し、当該残余予測モードインデックスの示す予測モードを対象パーティションに対して割り付ける。
【０１３６】
イントラ予測画像生成部１２ｃは、対象パーティションに割り付けられた予測モードの示す予測方法に従って、画面内予測によって、（局所）復号画像Ｐから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。イントラ予測画像生成部１２ｃによって生成されたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａは、予測方式決定部１２ｄに供給される。なお、イントラ予測画像生成部１２ｃは、画面内予測によって、適応フィルタ済復号画像Ｐ＿ＡＬＦから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する構成とすることも可能である。
【０１３７】
図１１を用いて、予測モードの定義について説明する。図１１は、予測モードの定義を示している。同図に示すように、３６種類の予測モードが定義されており、それぞれの予測モードは、「０」〜「３５」の番号（イントラ予測モードインデックス）によって特定される。また、図１２に示すように、各予測モードには次のような名称が割り当てられている。すなわち、「０」は、“Intra_Planar（プラナー予測モード、平面予測モード）”であり、「１」は、“Intra DC(イントラＤＣ予測モード)”であり、「２」〜「３４」は、“Intra Angular（方向予測）”であり、「３５」は、“Intra From Luma”である。「３５」は、色差予測モード固有のものであり、輝度の予測に基づいて色差の予測を行うモードである。言い換えれば、色差予測モード「３５」は、輝度画素値と色差画素値との相関を利用した予測モードである。色差予測モード「３５」はＬＭモードとも称する。予測モード数（intraPred
ModeNum）は、対象ブロックのサイズによらず「３５」である。
【０１３８】
（予測方式決定部１２ｄ）
予測方式決定部１２ｄは、各パーティションが属するＰＵについての予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを決定する。そして、前者の場合には、インター予測画像生成部１２ｂにて生成されたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器１４に供給し、後者の場合には、イントラ予測画像生成部１２ｃにて生成されたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器１４に供給する。
【０１３９】
（逆量子化・逆変換部１３）
逆量子化・逆変換部１３は、通常（変換スキップフラグを実施しない場合(transform_skip_flag==0)、かつ、変換量子化バイパスを実施しない場合(transquant_bypass_flag==0)）、（１）符号化データ＃１の量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆを逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱに対して逆ＤＣＴ（Discrete Cosine Transform）変換等の逆周波数変換を施し、（３）逆周波数変換によって得られた予測残差Ｄを加算器１４に供給する。また、変換量子化バイパスを実施する場合（transquant_bypass_flag==1）、逆量子化・逆変換部１３は、（１）符号化データ＃１の量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆ(予測残差Ｄと等価）を加算器１４に供給する。また、変換スキップを実施する場合（transform_skip_flag==1）、逆量子化・逆変換部１３は、（１）符号化データ＃１の量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆを逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱ（予測残差Ｄと等価）を加算器１４に供給する。なお、量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆを逆量子化する際に、逆量子化・逆変換部１３は、可変長符号復号部１１から供給された量子化パラメータ差分Δｑｐから量子化ステップＱＰを導出する。量子化パラメータｑｐは、直前に逆量子化及び逆周波数変換したＴＵに関する量子化パラメータｑｐ’に量子化パラメータ差分Δｑｐを加算することによって導出でき、量子化ステップＱＰは、量子化パラメータｑｐから例えばＱＰ＝２ｐｑ／６によって導出できる。また、逆量子化・逆変換部１３による予測残差Ｄの生成は、ＴＵあるいはＴＵを分割したブロックを単位として行われる。
【０１４０】
なお、逆量子化・逆変換部１３によって行われる逆ＤＣＴ変換は、例えば、対象ブロックのサイズが８×８画素である場合、当該対象ブロックにおける画素の位置を（ｉ、ｊ）（０≦ｉ≦７、０≦ｊ≦７）とし、位置（ｉ、ｊ）における予測残差Ｄの値をＤ（ｉ、ｊ）と表すことにし、周波数成分（ｕ、ｖ）（０≦ｕ≦７、０≦ｖ≦７）における逆量子化された変換係数をＣｏｅｆｆ＿ＩＱ（ｕ、ｖ）と表すことにすると、例えば、以下の数式（１）によって与えられる。
【０１４１】
【数１】
2020171063.tif 000003
ここで、（ｕ、ｖ）は、上述した（ｘＣ、ｙＣ）に対応する変数である。Ｃ（ｕ）およびＣ（ｖ）は、以下のように与えられる。
【０１４２】
・Ｃ（ｕ）＝１／√２ （ｕ＝０）
・Ｃ（ｕ）＝１ （ｕ≠０）
・Ｃ（ｖ）＝１／√２ （ｖ＝０）
・Ｃ（ｖ）＝１ （ｖ≠０）
なお、変換スキップが実施される場合、逆周波数変換は施されないため、当該対象ブロックにおける画素の位置（ｉ，ｊ）における予測残差Ｄ（ｉ，ｊ）と逆量子化された変換係数Ｃｏｅｆｆ＿ＩＱ（ｕ、ｖ）は次式のように等価である。
【０１４３】
Ｄ（ｉ，ｊ）＝Ｃｏｅｆｆ＿ＩＱ（ｕ，ｖ） （ｉ＝ｕ、ｊ＝ｖ）
また、変換量子化バイパスが実施される場合、逆量子化、及び逆周波数変換は施されないため、当該対象ブロックにおける画素の位置（ｉ，ｊ）における予測残差Ｄ（ｉ，ｊ）と変換係数Ｃｏｅｆｆ（ｕ、ｖ）は次式のように等価である。
【０１４４】
Ｄ（ｉ，ｊ）＝Ｃｏｅｆｆ（ｕ，ｖ）＝ （ｉ＝ｕ、ｊ＝ｖ）
（加算器１４）
加算器１４は、予測画像生成部１２から供給された予測画像Ｐｒｅｄと、逆量子化・逆変換部１３から供給された予測残差Ｄとを加算することによって復号画像Ｐを生成する。生成された復号画像Ｐは、フレームメモリ１５に格納される。
【０１４５】
（ループフィルタ１６）
ループフィルタ１６は、（１）復号画像Ｐにおけるブロック境界、またはパーティション境界の周辺の画像の平滑化（デブロック処理）を行うデブロッキングフィルタ（DF:Deblocking Filter）としての機能と、（２）デブロッキングフィルタが作用した画像に対して、フィルタパラメータＦＰを用いて適応フィルタ処理を行う適応フィルタ（ALF:Adaptive
Loop Filter）としての機能とを有している。
【０１４６】
（量子化残差情報復号部１１１）
量子化残差情報復号部１１１は、符号化データ＃１に含まれる量子化残差情報ＱＤから、各係数位置（各周波数成分、または各画素）（ｘＣ、ｙＣ）についての量子化された変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）を復号するための構成である。ここで、ｘＣおよびｙＣは、周波数領域における各周波数成分の位置、あるいは画素領域における各係数の位置を表すインデックスであり、それぞれ、上述した周波数領域における水平方向周波数ｕおよび垂直方向周波数ｖ、あるいは画素領域における水平方向画素位置ｕおよび垂直方向画素位置ｖに対応するインデックスである。以下では、量子化された変換係数Ｃｏｅｆｆを、単に、変換係数Ｃｏｅｆｆと呼ぶこともある。
【０１４７】
図１は、量子化残差情報復号部１１１の構成を示すブロック図である。図１に示すように、量子化残差情報復号部１１１は、変換係数復号部１２０及び算術符号復号部１３０を備えている。
【０１４８】
（算術符号復号部１３０）
算術符号復号部１３０は、量子化残差情報ＱＤに含まれる各ビットをコンテキストを参照して復号するための構成であり、図１に示すように、コンテキスト記録更新部１３１及びビット復号部１３２を備えている。
【０１４９】
[コンテキスト記録更新部１３１]
コンテキスト記録更新部１３１は、各コンテキストインデックスctxIdxによって管理されるコンテキスト変数ＣＶを記録及び更新するための構成である。ここで、コンテキスト変数ＣＶには、（１）発生確率が高い優勢シンボルＭＰＳ（most probable symbol）と、（２）その優勢シンボルＭＰＳの発生確率を指定する確率状態インデックスpStateIdxとが含まれている。
【０１５０】
コンテキスト記録更新部１３１は、変換係数復号部１２０の備える各部から供給されるコンテキストインデックスctxIdx及びビット復号部１３２によって復号されたＢｉｎの値を参照することによってコンテキスト変数ＣＶを更新すると共に、更新されたコンテキスト変数ＣＶを次回更新されるまで記録する。なお、優勢シンボルＭＰＳは０か１である。また、優勢シンボルＭＰＳと確率状態インデックスpStateIdxは、ビット復号部１３２がＢｉｎを１つ復号する毎に更新される。
【０１５１】
また、コンテキストインデックスctxIdxは、各係数位置、（各周波数成分、あるいは各画素）についてのコンテキストを直接指定するものであってもよいし、処理対象のＴＵ毎に設定されるコンテキストインデックスのオフセットからの増分値であってもよい（以下同様）。
【０１５２】
[ビット復号部１３２]
ビット復号部１３２は、コンテキスト記録更新部１３１に記録されているコンテキスト変数ＣＶを参照し、量子化残差情報ＱＤに含まれる各ビット（Ｂｉｎとも呼ぶ）を復号する。また、復号して得られたＢｉｎの値を変換係数復号部１２０の備える各部に供給する。また、復号して得られたＢｉｎの値は、コンテキスト記録更新部１３１にも供給され、コンテキスト変数ＣＶを更新するために参照される。
【０１５３】
（変換係数復号部１２０）
図１に示すように、変換係数復号部１２０は、ラスト係数位置復号部１２１、スキャン順テーブル格納部１２２、係数復号制御部１２３、係数有無フラグ復号部、係数値復号部１２５、復号係数記憶部１２６、サブブロック係数有無フラグ復号部１２７、および変換・変換量子化バイパスフラグ復号１２８を備えている。
【０１５４】
[ラスト係数位置復号部１２１]
ラスト係数位置復号部１２１は、ビット復号部１３２より供給される復号ビット（Ｂｉｎ）を解釈し、シンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。復号したシンタックスlast_significant_coeff_x及びlast_significant_coeff_yは、係数復号制御部１２３に供給される。また、ラスト係数位置復号部１２１は、算術符号復号部１３０にてシンタックスlast_significant_coeff_x及びlast_significant_coeff_yのＢｉｎを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部１３１に供給される。
【０１５５】
[スキャン順テーブル格納部１２２]
スキャン順テーブル格納部１２２には、処理対象のＴＵ（ブロック）のサイズ、スキャン方向の種別を表すスキャンインデックス、及びスキャン順に沿って付与された係数位置識別インデックスを引数として、処理対象の変換ブロックの周波数領域、または画素領域における位置を与えるテーブルが格納されている。
【０１５６】
このようなスキャン順テーブルの一例としては、図４及び図５に示したScanOrderが挙げられる。図４及び図５に示したScanOrderは、処理対象のＴＵの横幅のサイズlog2TrafoWidth、処理対象のＴＵの縦幅のサイズlog2TrafoHeight、スキャンインデックスscanIdx、および、スキャン順に沿って付与された係数位置識別インデックスｎに基づいて、処理対象の変換ブロックの周波数領域における位置（ｘＣ、ｙＣ）を取得するためのテーブルである。なお、変換スキップあるいは変換量子化バイパスが適用される場合は、ScanOrderは、処理対象のＴＵの横幅のサイズlog2TrafoWidth、処理対象のＴＵの縦幅のサイズlog2TrafoHeight、スキャンインデックスscanIdx、および、スキャン順に沿って付与された係数位置識別インデックスｎに基づいて、処理対象の変換ブロックの画素領域における位置（ｘＣ、ｙＣ）を取得するためのテーブルとなる。なお、以下において、処理対象の変換ブロックの周波数領域、あるいは画素領域における位置（ｘＣ、ｙＣ）のことを、単に係数位置（ｘＣ、ｙＣ）と称することもある。
【０１５７】
また、スキャン順テーブル格納部１２２に格納されたテーブルは、処理対象のＴＵ（ブロック）のサイズとイントラ予測モードの予測モードインデックスとに関連付けられたスキャンインデックスscanIdxによって指定される。処理対象のＴＵに用いられた予測方法がイントラ予測である場合には、係数復号制御部１２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxによって指定されるテーブルを参照して変換ブロックのスキャン順を決定する。
【０１５８】
図１３は、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの例を示している。図１３において、log2TrafoSize-2＝０は、ＴＵサイズが４×４（４×４画素に対応）であることを示しており、log2TrafoSize-2＝１は、ＴＵサイズが８×８（８×８画素に対応）であることを示している。図１３に示すように、例えば、ＴＵサイズが４×４であり、イントラ予測モードインデックスが１であるとき、スキャンインデックス＝０が用いられ、ＴＵサイズが４×４であり、イントラ予測モードインデックスが６であるとき、スキャンインデックス＝２が用いられる。
【０１５９】
図１４（ａ）は、スキャンインデックスscanIdxの各値によって指定されるスキャンタイプScanTypeを示している。図１４（ａ）に示すように、スキャンインデックスが０であるとき、斜め方向スキャン（Up-right diagonal scan）が指定され、スキャンインデックスが１であるとき、水平方向優先スキャン（horizontal fast scan）が指定され、スキャンインデックスが２であるとき、垂直方向優先スキャン（vertical fact scan）が指定される。
【０１６０】
また、図１４（ｂ）は、ＴＵサイズが４×４であるときの、水平方向優先スキャン（horizontal fast scan）、垂直方向優先スキャン（vertical factscan）、及び、斜め方向スキャン（Up-right diagonal scan）の各スキャンのスキャン順を示している。図１４（ｂ）において各係数位置に付された番号は、該係数位置がスキャンされる順番を示している。また、図１４（ｂ）に示す各例は、順スキャン方向を示している。なお、図１４（ｂ）のスキャンは４×４ＴＵサイズに限らず、４×４のサブブロックで使用しても良い。また、同様のスキャンを４×４より大きいＴＵやサブブロックで使用しても良い。
【０１６１】
図１４（ｃ）は、水平方向優先スキャンと垂直方向優先スキャンの別の例を示す。本例では８×２と２×８のＴＵサイズもしくはサブブロックで使用される例を示す。
【０１６２】
[サブブロックスキャン順テーブル]
また、スキャン順テーブル格納部１２２には、サブブロックのスキャン順を指定するためのサブブロックスキャン順テーブルが格納されている。サブブロックスキャン順テーブルは、処理対象のＴＵ（ブロック）のサイズとイントラ予測モードの予測モードインデックス（予測方向）とに関連付けられたスキャンインデックスscanIdxによって指定される。処理対象のＴＵに用いられた予測方法がイントラ予測である場合には、係数復号制御部１２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxによって指定されるテーブルを参照してサブブロックのスキャン順を決定する。
【０１６３】
[係数復号制御部１２３]
係数復号制御部１２３は、量子化残差情報復号部１１１の備える各部における復号処理の順序を制御するための構成である。
【０１６４】
係数復号制御部１２３は、図示しないサブブロック分割部１２９を備える。サブブロック分割部１２９は、ＴＵを各サブブロックに分割する。サブブロック分割部１２９の詳細は後述する。
【０１６５】
係数復号制御部１２３は、ラスト係数位置復号部１２１から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非０係数の位置を特定すると共に、特定した最後の非０係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部１２２に格納されたサブブロックスキャン順テーブルによって与えられるスキャン順の逆スキャン順に、各サブブロックの位置（ｘＣＧ、ｙＣＧ）を、サブブロック係数有無フラグ復号部１２７に供給する。
【０１６６】
また、係数復号制御部１２３は、処理対象となるサブブロックに関して、スキャン順テーブル格納部１２２に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、当該処理対象となるサブブロックに含まれる各係数位置（ｘＣ、ｙＣ）を、係数有無フラグ復号部１２４及び復号係数記憶部１２６に供給する。ここで、処理対象となるサブブロックに含まれる各係数（各周波数成分、または各画素）のスキャン順としては、イントラ予測の場合には、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの示すスキャン順（水平方向優先スキャン、垂直方向優先スキャン、斜め方向スキャンのいずれか）を用い、インター予測の場合には、斜め方向スキャン（Up-right diagonal scan）を用いればよい。
【０１６７】
このように、係数復号制御部１２３は、処理対象の単位領域（ブロック、ＴＵ）に適用された予測方式がイントラ予測である場合に、該イントラ予測の予測方向に応じて、サブブロックスキャン順を設定する構成である。
【０１６８】
一般に、イントラ予測モードと変換係数の偏りとは互いに相関を有しているため、イントラ予測モードに応じてスキャン順を切り替えることにより、サブブロック係数有無フラグ、係数有無フラグの偏りに適したスキャンを行うことができる。これによって、符号化及び復号対象となるサブブロック係数有無フラグおよび係数有無フラグの符号量を削減することができるので、処理量が削減されると共に、符号化効率が向上する。
【０１６９】
[サブブロック分割手段１２９]
サブブロック分割手段１２９は、サブブロック分割手段１２９は、スキャン順およびＴＵサイズに応じてに応じてサブブロックサイズを導出し、導出されたサブブロックサイズでＴＵを分割することでＴＵをサブブロックに分割する。以下、サブブロックサイズの導出方法を順に説明する。なお、既に説明したように、スキャン順が、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅ、ＴＵサイズ及びイントラ予測モードインデックスIntraPredModeで定まる場合には、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅ、ＴＵサイズ及びイントラ予測モードインデックスIntraPredModeにより、サブブロックサイズを導出する構成も等価である。
【０１７０】
（ＣＵ予測方式情報ＰｒｅｄＭｏｄｅ、ＴＵサイズ及びイントラ予測モードインデックスIntraPredModeにより、サブブロックサイズを導出する構成）
図２７は、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅ、ＴＵサイズ及びイントラ予測モードインデックスIntraPredModeにより、サブブロックサイズを導出する方法を示す図である。ＣＵ予測方式情報ＰｒｅｄＭｏｄｅがイントラ予測の場合には、図１３で示すようにＴＵサイズ及びイントラ予測モードインデックスIntraPredModeに基づいて水平方向優先スキャンが用いられる場合には８×２、垂直方向優先スキャンが用いられる場合には２×８、それ以外のスキャン（斜め方向スキャン）が用いられる場合には、４×４のサブブロックサイズを用いる。
【０１７１】
ＣＵ予測方式情報ＰｒｅｄＭｏｄｅがインター予測の場合には、ＴＵサイズが、ＴＵサイズの幅と高さが一致する場合には４×４のサブブロックを使用する。ＴＵサイズの幅と高さが一致しない場合で、ＴＵサイズの幅が高さよりも大きい場合には、８×２のサブブロックを使用する。一方、ＴＵサイズの高さが幅よりも大きい場合には、２×８のサブブロックを使用する。また、インター予測の場合には、ＴＵサイズによらず、サブブロックサイズを４×４としてもよい。
【０１７２】
以上の構成により、サブブロックを分割することによって、ＣＵがイントラ予測の場合にもインター予測に場合にも、変換係数の偏りに応じて適切なサブブロック分割が行われるため符号化効率が向上する。
【０１７３】
[変換スキップ・変換量子化バイパスフラグ復号部１２８]
変換スキップ・変換量子化バイパスフラグ復号部１２８は、ビット復号部１３２より供給される復号ビット（Ｂｉｎ）を解釈し、シンタックスtransquant_bypass_flag及びtransform_skip_flagを復号する。復号したシンタックスtransquant_bypass_flag及びtransform_skip_flagは、係数有無フラグ復号部１２４、および係数値復号部１２５、および逆量子化・逆変換部１３に供給される。また、変換スキップ・変換量子化バイパスフラグ復号部１２８は、算術符号復号部１３０にてシンタックスtransquant_bypass_flag及びtransform_skip_flagのＢｉｎを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部１３１に供給される。
【０１７４】
以下では、図１９を用いて変換量子化バイパスフラグ、及び変換スキップ
フラグの復号処理について具体的に説明する。
＜＜変換量子化バイパスフラグ、及び変換スキップフラグの復号処理１＞＞
図１９（ａ）は、変換量子化バイパスフラグ及び変換スキップフラグのシンタックス例を示し、図１９（ｂ）は、その復号処理をより具体的に説明するためのフローチャートである。
【０１７５】
（ステップＳ２０−１）
まず、変換スキップ・変換量子化バイパスフラグ復号部１２８は、外部より入力された変換量子化バイパス有効フラグ(transquant_bypass_enable_flag)が１であるかを判別する。変換量子化バイパス有効フラグが１である場合（ステップＳ２０−１においてＹｅｓ）、ステップＳ２０−２へ進む。それ以外である場合（ステップＳ２０−１においてＮｏ）、ステップＳ２０-３へ進む。
【０１７６】
(ステップＳ２０−２)
変換スキップ・変換量子化バイパスフラグ復号部１２８は、対象ＴＵに関して、符号化データから変換量子化バイパスフラグ(transquant_bypass_flag)を復号し、ステップＳ２０-４へ進む。
【０１７７】
(ステップＳ２０−３)
変換スキップ・変換量子化バイパスフラグ復号部１２８は、対象ＴＵに関して、暗黙的に変換量子化バイパスフラグ(transquant_bypass_flag)は０であると解釈し、値を０に設定し、ステップＳ２０-４へ進む。
【０１７８】
（ステップＳ２０−４）
変換スキップ・変換量子化バイパスフラグ復号部１２８は、外部より入力された変換スキップ有効フラグ（transform_skip_enable_flag）が１であるか判別する。変換スキップ有効フラグが１である場合（ステップＳ２０-４においてＹｅｓ）、ステップＳ２０-５へ進む。それ以外の場合（ステップＳ２０-４においてＮｏ）、ステップＳ２０-７へ進む。
【０１７９】
（ステップＳ２０−５）
変換スキップ・変換量子化バイパスフラグ復号部１２８は、変換バイパスフラグが０であるか否かを判別する。変換バイパスフラグが０である場合（ステップＳ２０-５においてＹｅｓ）、ステップＳ２０−６へ進む。それ以外の場合は、ステップＳ２０-７へ進む。
【０１８０】
（ステップＳ２０−６）
変換スキップ・変換量子化バイパスフラグ復号部１２８は、対象ＴＵに関して、符号化データから変換スキップフラグ(transform_skip_flag)を復号する。
【０１８１】
（ステップＳ２０−７）
変換スキップ・変換量子化バイパスフラグ復号部１２８は、対象ＴＵに関して、暗黙的に変換スキップフラグ(transform_skip_flag)は０であると解釈し、値を０に設定する。
【０１８２】
なお、上記変換スキップフラグ及び変換量子化バイパスフラグの復号処理は、上記手順に限定されず、実施できる範囲で手順を変更しても構わない。さらに、変換スキップ・変換量子化バイパスフラグ復号部１２８は、対象ＴＵに関して、符号化データから変換スキップフラグのみを復号してもよい（変換量子化バイパスフラグの復号を省略しても構わない）。
【０１８３】
例えば、図２０に示すように、ステップＳ２０−５の次に、ＴＵサイズが所定サイズより小さいか否かを判定して（ステップＳ２０−８）、ステップＳ２０−６またはステップＳ２０−７に進んでもよい。
【０１８４】
以上、上記変換スキップ・変換量子化バイパスフラグ復号部１２８によれば、従来（図２１参照）に比べて、ＴＵ毎に、変換スキップを実施するか否かをＴＵサイズや予測モードによらず、適切に選択することができる。そのため、符号化及び復号対象となるＴＵに関する変換係数の符号量を削減することができるので、処理量が削減されると共に、符号化効率が向上する。また、変換スキップフラグを復号するか否かに関する分岐処理を削減することができるため、変換係数の復号に係る処理量をが軽減することができる。
【０１８５】
[サブブロック係数有無フラグ復号部１２７]
サブブロック係数有無フラグ復号部１２７は、ビット復号部１３２から供給される各Ｂｉｎを解釈し、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるシンタックスsignificant_coeff_group_flag[xCG][yCG]を復号する。また、サブブロック係数有無フラグ復号部１２７は、算術符号復号部１３０にてシンタックスsignificant_coeff_group_flag [xCG][yCG]のＢｉｎを復号するために用いられるコンテキストを決定するためのコンテキ
ストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部１３１に供給される。ここで、シンタックスsignificant_coeff_group_flag[xCG][yCG]は、サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるサブブロックに、少なくとも１つの非０係数が含まれている場合に１をとり、非０係数が１つも含まれていない場合に０をとるシンタックスである。復号されたシンタックスsignificant_coeff_group_flag[xCG][yCG]の値は、復号係数記憶部１２６に格納される。
【０１８６】
なお、サブブロック係数有無フラグ復号部１２７のより具体的な構成については後述する。
【０１８７】
[係数有無フラグ復号部１２４]
本実施形態に係る係数有無フラグ復号部１２４は、各係数位置（ｘＣ、ｙＣ）によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を復号する。復号されたシンタックスsignificant_coeff_flag[xC][yC]の値は、復号係数記憶部１２６に格納される。また、係数有無フラグ復号部１２４は、算術符号復号部１３０にてシンタックスsignificant_coeff_flag[xC][yC]のＢｉｎを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部１３１に供給される。係数有無フラグ復号部１２４の具体的な構成については後述する。
【０１８８】
[係数値復号部１２５]
係数値復号部１２５は、ビット復号部１３２から供給される各Ｂｉｎを解釈し、シンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_remainingを復号すると共に、これらのシンタックスを復号した結果に基づき、処理対象の各係数位置（周波数成分、または画素位置における変換係数（より具体的には非０係数））の値を導出する。また、各種シンタックスの復号に用いたコンテキス
トインデックスctxIdxは、コンテキスト記録更新部１３１に供給される。導出された変換係数の値は、復号係数記憶部１２６に格納される。係数値復号部１２５の具体的な構成については後述する。
【０１８９】
[復号係数記憶部１２６]
復号係数記憶部１２６は、係数値復号部１２５によって復号された変換係数の各値を記憶しておくための構成である。また、復号係数記憶部１２６には、係数有無フラグ復号部１２４によって復号されたシンタックスsignificant_coeff_flagの各値が記憶される。復号係数記憶部１２６によって記憶されている変換係数の各値は、逆量子化・逆変換部１３に供給される。
【０１９０】
（サブブロック係数有無フラグ復号部１２７の構成例）
以下では、図１５を参照して、サブブロック係数有無フラグ復号部１２７の具体的な構成例について説明する。
【０１９１】
図１５は、サブブロック係数有無フラグ復号部１２７の構成例を示すブロック図である。図１５に示すように、サブブロック係数有無フラグ復号部１２７は、サブブロック係数有無フラグコンテキスト導出部１２７ａ、サブブロック係数有無フラグ記憶部１２７ｂ、及び、サブブロック係数有無フラグ設定部１２７ｃを備えている。
【０１９２】
以下では、サブブロック係数有無フラグ復号部１２７に対して、係数復号制御部１２３から、サブブロック位置（ｘＣＧ、ｙＣＧ）が逆スキャン順に供給される場合を例に挙げて説明を行う。なお、この場合、サブブロック係数有無フラグ復号部１２７に対応する符号化装置側の構成では、サブブロック位置（ｘＣＧ、ｙＣＧ）が順スキャン順に供給されることになる。
【０１９３】
（サブブロック係数有無フラグコンテキスト導出部１２７ａ）
サブブロック係数有無フラグ復号部１２７の備えるサブブロック係数有無フラグコンテキスト導出部１２７ａは、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるサブブロックに割り付けるコンテキストインデックスを導出する。サブブロックに割り付けられたコンテキストインデックスは、当該サブブロックについてのシンタックスsignificant_coeff_group_flagを示すＢｉｎを復号する際に用いられる。また、コンテキストインデックスを導出する際には、サブブロック係数有無フラグ記憶部１２７ｂに記憶された復号済みのサブブロック係数有無フラグの値が参照される。サブブロック係数有無フラグコンテキスト導出部１２７ａは、導出したコンテキストインデックスをコンテキスト記録更新部１３１に供給する。
【０１９４】
サブブロックに割り付けるコンテキストインデックスは、具体的には、サブブロック位置（ｘＣＧ,ｙＣＧ）、及びサブブロック係数有無フラグ記憶部１２７ｂに記憶された復号済みのサブブロック係数有無フラグの値を用いて、次のように導出される。
【０１９５】
コンテキストインデックスには、サブブロック位置（ｘＣＧ、ｙＣＧ）の右隣に位置する復号済みサブブロック係数有無フラグsignificant_coeff_group_flag[xCG+1][yCG]と、サブブロック位置（ｘＣＧ,ｙＣＧ）の下に位置する復号済サブブロック係数有無フラグsiginificant_coeff_group_flag[xCG][yCG+1]の値を参照して次のように設定される。
ctxIdx = ctxIdxOffset + Min ((significant_coeff_group_flag[xCG+1][yCG]+significant_coeff_group_flag[xCG][yCG+1] ), 1)
なお、初期値ctxIdxOffsetは、色空間を示すcIdxにより定まる。なお、（ｘＣＧ＋１，ｙＣＧ）、あるいは（ｘＣＧ、ｙＣＧ＋１）に位置する復号済サブブロックが存在しない場合は、（ｘＣＧ＋１、ｙＣＧ）、あるいは（ｘＣＧ、ｙＣＧ＋１）に位置するサブブロック係数有無フラグの値をゼロとして扱う。
【０１９６】
（サブブロック係数有無フラグ記憶部１２７ｂ）
サブブロック係数有無フラグ記憶部１２７ｂには、サブブロック係数有無フラグ設定部１２７ｃによって復号又は設定されたシンタックスsignificant_coeff_group_flagの各値が記憶されている。サブブロック係数有無フラグ設定部１２７ｃは、隣接サブブロックに割り付けられたシンタックスsignificant_coeff_group_flagを、サブブロック係数有無フラグ記憶部１２７ｂから読み出すことができる。
【０１９７】
（サブブロック係数有無フラグ設定部１２７ｃ）
サブブロック係数有無フラグ設定部１２７ｃは、ビット復号部１３２から供給される各Ｂｉｎを解釈し、シンタックスsignificant_coeff_group_flag[xCG][yCG]を復号または設定する。より具体的には、サブブロック係数有無フラグ設定部１２７ｃは、サブブロック位置（ｘＣＧ、ｙＣＧ）、及び、サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるサブブロックに隣接するサブブロック（隣接サブブロックとも呼ぶ）に割り付けられたシンタックスsignificant_coeff_group_flagを参照し、シンタックスsignificant_coeff_group_flag[xCG][yCG]を復号または設定する。また、復号または設定されたシンタックスsignificant_coeff_group_flag[xCG][yCG]の値は、係数有無フラグ復号部１２４に供給される。
【０１９８】
サブブロック係数有無フラグ設定部１２７ｃは、図１６（ｃ）に示すように、サブブロック（ｘＣＧ、ｙＣＧ）に隣接するサブブロック（ｘＣＧ＋１、ｙＣＧ）に割り付けられたサブブロック係数有無フラグsignificant_coeff_group_flag[xCG+1][yCG]の値とサブブロック（ｘＣＧ、ｙＣＧ＋１）に割り付けられたサブブロック係数有無フラグsignificant_coeff_group_flag[xCG][yCG+1]の値とを参照し、サブブロック係数有無フラグsignificant_coeff_group_flag[xCG][yCG+1]を復号するために用いるコンテキストインデックスを導出する。
【０１９９】
なお、サブブロック係数有無フラグが０とされたブロックでは、係数有無フラグsignigicant_coeff_flagの復号をスキップすることができるため、復号処理が簡略化される。
【０２００】
図１７を用いて、具体的に例示すると次のとおりである。図１７（ａ）に示すように変換係数が分布している場合、それぞれのサブブロックに割り付けられるサブブロック係数有無フラグは、図１７（ｂ）に示すとおりとなる。すなわち、４×４のサブブロックのうち、１行目のサブブロックでは、非０係数が存在しているが、２行目以降のサブブロックでは、非０係数が存在しない。
【０２０１】
よって、図１７（ｂ）に示す例では、係数有無フラグ復号部１２４は、２行目以降のサブブロックの復号において、係数有無フラグsignificant_coeff_flagの復号をスキップすることができる。
【０２０２】
＜＜係数有無フラグ復号部１２４の構成例＞＞
以下では、図１８を参照して、係数有無フラグ復号部１２４の具体的な構成例について説明する。
【０２０３】
図１８は、係数有無フラグ復号部１２４の構成例を示すブロック図である。図１８に示すように、係数有無フラグ復号部１２４は、コンテキスト導出手段選択部１２４a、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃ、変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄ、及び係数有無フラグ設定部１２４ｅを備えている。
【０２０４】
（係数有無フラグ設定部１２４ｅ）
係数有無フラグ設定部１２４ｅは、ビット復号部１３２から供給される各Ｂｉｎを解釈し、シンタックスsignificant_coeff_flag[xC][yC]を設定する。設定されたシンタックスsignificant_coeff_flag[xC][yC]は、復号係数記憶部１２６に供給される。
【０２０５】
係数有無フラグ設定部１２４ｅは、対象変換ブロック（対象周波数領域、あるいは対象画素領域）がサブブロックに分割されている場合、対象サブブロックに割り付けられたシンタックスsignificant_coeff_group_flag[xCG][yCG]を参照し、significant_coeff_group_flag[xCG][yCG]の値が０である場合には、当該対象サブブロックに含まれる全ての係数位置についてのsignificant_coeff_flag[xC][yC]を０に設定する。
【０２０６】
（コンテキスト導出手段選択部１２４ａ）
コンテキスト導出手段選択部１２４ａには、処理対象の周波数成分、または画素の位置（係数位置とも呼ぶ）（ｘＣ,ｙＣ）と、変換ブロックの対数値（log2TrafoWidth、log2TrafoHeight）が入力される。対数値のサイズから、変換ブロックの幅widthと高さheightを(1<<log2TrafoWidth)と(1<<log2TrafoHeight)により算出する。なお、対数値のサイズではなく、変換ブロックの幅と高さを直接入力しても良い。さらに、コンテキスト導出手段選択部１２４ａには、変換スキップフラグ（transform_skip_flag）、および、変換量子化バイパスフラグ(transquant_bypass_flag)が入力される。
【０２０７】
コンテキスト導出手段選択部１２４ａは、変換スキップフラグ、変換量子化バイパスフラグと、対象となるＴＵサイズおよび復号対象となる係数の位置に応じて、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃ、または変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄを選択する。選択された各コンテキスト導出部ではコンテキストインデックスctxIdxが導出される。
【０２０８】
以下、図３０を用いてコンテキスト導出手段選択部１２４におけるコンテキスト導出手段の選択処理について具体的に説明する。
【０２０９】
まず、変換スキップを実施するか否か、あるいは、変換量子化バイパスを実施するか否かを示すか判別する（図３０においてステップＳＢ８０１）。変換スキップフラグが変換スキップを実施することを示す場合（transform_skip_flag==1）、あるいは変換量子化バイパスフラグが変換量子化バイパスを実施することを示す場合（transquant_bypass_flag==1）（ステップＳＢ８０１においてＹｅｓ）には、コンテキスト導出選択手段は、変換スキップ・変換量子化バイパスコンテキスト導出手段を選択する(ステップＳＢ８０５)。なお、変換スキップ、あるいは、変換量子化バイパスが実施される場合、逆変換の処理はスキップされるため、係数の位置は、ＴＵ内での画素の位置となる。
【０２１０】
上記条件を満たさない場合（ステップＳＢ８０１においてＮｏ）は、コンテキスト導出手段選択部１２４ａは、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃのいずれかを選択する。
【０２１１】
まず、対象の係数位置が、周波数領域においてＤＣであるか（ｘＣ＋ｙＣ＝＝０）、もしくは、ＴＵサイズが所定のサイズ以下（例えば、４×４ＴＵ、８×８ＴＵである場合）であるかを判別する（ステップＳＢ８０２）。対象の係数位置が、周波数領域においてＤＣであるか、または、ＴＵサイズが所定のサイズ以下である場合（ステップＳＢ８０２においてＹｅｓ）には、コンテキスト導出手段選択部１２４ａは、位置コンテキスト導出部１２４ｂを選択する。
【０２１２】
上記条件を満たさない場合（ステップＳＢ８０２においてＮｏ）、コンテキスト導出手段選択部部１２４ａは、隣接サブブロック係数有無コンテキスト導出部１２４ｃを選択する（ステップＳＢ８０３）。
【０２１３】
なお、上記に限られず、コンテキスト導出手段選択部１２４ａは、４×４ＴＵ〜３２×３２ＴＵまでのＴＵサイズについて、共通のコンテキストインデックスctxIdx導出処理を実行する構成であっても構わない。すなわち、コンテキスト導出手段選択部１２４ａは、ＴＵのサイズによらず、位置コンテキスト導出部１２４ｂ、及び隣接サブブロック係数有無コンテキスト導出部１２４ｃのいずれかを固定的に選択する構成であっても構わない。
【０２１４】
（位置コンテキスト導出部１２４ｂ）
位置コンテキスト導出部１２４ｂは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。なお、周波数成分の位置によらず、固定値となるコンテキストインデックスctxIdxを導出する場合、位置コンテキスト導出部１２４ｂで当該導出処理を行ってもよい。
【０２１５】
図２２は、位置コンテキスト導出部１２４ｂが、ＴＵサイズが所定のサイズ以下（例えば、４×４ＴＵ、８×８ＴＵである場合）における各係数位置に関するコンテキストインデックスの一例を示している。図２２（ａ）は４×４ＴＵの場合を示し、図２２（ｂ）は８×８ＴＵの場合を示す。
【０２１６】
（隣接サブブロック係数有無コンテキスト導出部１２４ｃ）
隣接サブブロック係数有無コンテキスト導出部１２４ｃは、隣接サブブロックに非０係数があるか否かに応じて、コンテキスト導出パターンを選択し、選択した導出パターンに従って、処理対象の周波数成分のサブブロック内での座標から、復号対象の周波数成分に対するコンテキストインデックスを導出する。
【０２１７】
まず、隣接サブブロック有無コンテキスト導出部１２４ｃは、図１６（ｂ）に示す右隣接サブブロックおよび図１６（ａ）に示す下隣接サブブロックを参照し、それぞれの隣接サブブロックにおけるサブブロック係数有無フラグからコンテキスト導出パターンを特定するインデックスであるパターンインデックスidxCGを、以下の式（Ａ）により求める。
【０２１８】
idxCG = significant_coeff_group_flag[xCG + 1][yCG] + (significant_coeff_group_flag[xCG][yCG + 1] << 1) … （Ａ）
上記式（Ａ）において、significant_coeff_group_flagは、上述したとおり、サブブロック内に少なくとも１つの非０変換係数が存在するか否かを示すフラグである。サブブロック内に少なくとも１つの非０変換係数が存在する場合、significant_coeff_group_flagの値は“１”であり、存在しない場合、significant_coeff_group_flag の値は“０”である。
【０２１９】
上記パターンインデックスidxCGに基づいて、対象サブブロックの各周波数成分に割り当てられるコンテキストインデックスctxIdx(sigCtx)を導出に関する疑似コードを図４１に示す。また、図４１に示す疑似コードにより得られる各パターンインデックスidxCGにおけるコンテキストインデックスの配置を図４２に示す。図４２（ａ）はパターンインデックスidxCG==0の場合を示し、図４２（ｂ）はパターンインデックスidxCG==1の場合を示し、図４２（ｃ）はパターンインデックスidxCG==2の場合を示し、図４２（ｄ）はパターンインデックスidxCG==3の場合を示す。また各パターンインデックスidxCGに対応するコンテキストインデックスの割り当ては、図４１に示す疑似コードに限定されず、図２８に示す疑似コードにより導出してもよい。図２８に示す疑似―ドにより得られる各パターンインデックスidxCGにおけるコンテキストインデックスの配置を図２９に示す。図２９（ａ）はパターンインデック
スidxCG==0の場合を示し、図２９（ｂ）はパターンインデックスidxCG==1の場合を示し、図２９（ｃ）はパターンインデックスidxCG==2の場合を示し、図２９（ｄ）はパターンインデックスidxCG==3の場合を示す。
【０２２０】
（変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄ）
（実施例１）
変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領域における係数に対するコンテキストインデックスctxIdxを所定の方法に基づいて導出する。例えば、ＴＵの横幅サイズとＴＵの縦幅サイズに対応する相対コンテキストインデックスに基づいて導出する。
【０２２１】
具体的なコンテキスインデックスctxIdxの導出処理について、図３１（ａ）を用いて説明する。図３１（a）は、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[log2TrafoWidth-2 ][ log2TrafoHeight-2 ]である。コンテキストインデックスctxIdxは上記テーブルを参照して次式により導出される。
【０２２２】
ctxIdx = TBL_CTX_IDX[ log2TrafoWidth -2 ][ log2TrafoHeight ‐ 2 ] +offset
・・・(eq.A-1)
上記式(eq.A-1)において、変数offsetは、位置コンテキスト導出部１２４ｂ、及び隣接サブブロック係数有無コンテキスト導出部１２４ｃで導出されるコンテキストインデックスと識別するための所定のオフセット値であり、変換スキップ、あるいは変換量子化バイパスが適用される場合にコンテキストインデックスの開始点を表す（以下、式（eq.A-2）〜（eq.A-6）についても同様である）。
【０２２３】
変換スキップ、あるいは変換量子化バイパスが実施される場合、復号対象となる係数有無フラグは、画素領域における非０係数である。画素領域における各係数位置の非０係数の出現確率と、周波数領域における各係数位置の非０係数の出現確率は異なるため、画素領域と周波数領域とで、係数有無フラグに関するコンテキストを区別することが好ましい。
【０２２４】
以上、上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、変換スキップが実施される際、ＴＵ内およびサブブロック内において固定的なコンテキストインデックスを用いる。これにより、変換スキップ実施時には、ＴＵ内の位置もしくはサブブロック内の位置によらずコンテキストインデックスを導出することができるため処理が容易になる。また、変換スキップ時には、ＴＵ内もしくはサブブロック内での係数の出現確率が一様であるという性質にあったコンテキストを用いるため、符号化効率を改善する効果を奏する。
【０２２５】
また、変換量子化バイパスが実施される場合も同様に、ＴＵ内の位置もしくはサブブロック内の位置によらず一様な（固定の、とも言う）コンテキストインデックスを導出することができるため処理が容易になる。また、変換量子化バイパス時には、ＴＵ内もしくはサブブロック内での係数の出現確率が一様であるという性質にあったコンテキストを用いるため、符号化効率を改善する効果を奏する。
【０２２６】
また、以上の構成では、変換スキップを実施する場合に用いる場合と、変換量子化バイパスを実施する場合とで同じコンテキストインデックスを用いる。これにより、変換スキップを実施する場合に用いるコンテキストと、変換量子化バイパスを実施する場合に用いるコンテキストを共有することにより、コンテキスト数を抑制する効果を奏する。一般に、ロスレス符号化を用いるピクチャでは、ピクチャ全体が一様に高画質となるよう、ロスレス以外のブロックでも低ＱＰ（小さい量子化ステップ）で符号化することが多い。この場合、ロスレス符号化で主に用いられる変換量子化バイパスの係数と、変換スキップの係数とは同様の出現確率となるため、変換スキップと変換量子化バイパスとでコンテキストを共有することができる。
【０２２７】
また、以上の構成では、画素領域においても、ＴＵサイズ毎に非０係数の出現確率は異なるため、ＴＵサイズ毎に係数有無フラグに関するコンテキストを区別することが好ましい。すなわち、上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、ＴＵサイズ毎に、画素領域における非０係数に対して、適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量をさらに削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０２２８】
（変形例１−Ａ）
また、変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightの代わりに、ＴＵサイズの対数値log2TrafoSize(=(log2TrafoWidth+log2TrafoHeight)>>1)に基づいてコンテキストインデックスctxIdxを導出してもよい。例えば、図３１（ｂ）に示すＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ log2TrafoSize-2 ] を参照して、次式により導出する。
【０２２９】
ctxIdx = TBL_CTX_IDX[ log2TrafoSize- 2 ] + offset
・・・(eq.A-2)
一般的に、非正方形であるＴＵサイズは、正方形であるＴＵサイズと比較して出現頻度が小さい。そのため、非正方形であるＴＵサイズと要素数が等しい正方形であるＴＵサイズとで、画素領域における非０係数のコンテキストを共有することによる符号化効率の改善幅の低下は軽微である。
【０２３０】
以上、上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、変換スキップ、あるいは変換量子化バイパス用に、新たに導入する画素領域における非０係数有無フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０２３１】
（変形例１―Ｂ）
変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領域における係数に対するコンテキストインデックスctxIdxを予測タイプPredTypeとＴＵの横幅サイズとＴＵの縦幅サイズに対応する相対コンテキストインデックスに基づいて導出してもよい。例えば、図３２に示す予測タイプPredTypeとＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightとに対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[PredType][ log2TrafoWidth-2 ][ log2TrafoHeight -2 ]を参照して、次式によりコンテキストインデックスを導出する。
【０２３２】
ctxIdx = TBL_CTX_IDX[PredType][ log2TrafoWidth-2 ][ log2TrafoHeight
-2 ]
+ offset・・・(eq.A-3)
ここで、予測タイプPredTypeは、イントラ予測の場合、値は０をとり、インター予測の場合、値は１をとるものとする。
【０２３３】
一般的に、変換スキップあるいは変換量子化バイパスが実施される場合、復号対象となる画素領域における非０係数の出現確率は、イントラ予測とインター予測において異なるため、予測タイプ毎に係数有無フラグに関するコンテキストを区別することが好ましい。
【０２３４】
以上、上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、画素領域における非０係数に対して、予測タイプとＴＵサイズ毎に適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量を削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０２３５】
（変形例１−Ｃ）
変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightの代わりに、ＴＵサイズの対数値log2TrafoSize(=(log2TrafoWidth+log2TrafoHeight)>>1)と予測タイプに基づいてコンテキストインデックスctxIdxを導出してもよい。例えば、図３３に示す予測タイプPredTypeとＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType][
log2TrafoSize-2 ] を参照して、次式により導出する。
【０２３６】
ctxIdx = TBL_CTX_IDX[ PredType ][ log2TrafoSize- 2 ] + offset・・・(eq.A-4)
非正方形であるＴＵサイズは、正方形であるＴＵサイズと比較して出現頻度が小さい。そのため、非正方形であるＴＵサイズと要素数が等しい正方形であるＴＵサイズとで、画素領域における非０係数のコンテキストを共有することによる符号化効率の改善幅の低下は軽微である。
【０２３７】
以上、上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、変換スキップ、あるいは変換量子化バイパス用に、新たに予測タイプ毎に導入する画素領域における非０係数有無フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０２３８】
（変形例１−Ｄ）
以上、変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、ＴＵサイズや予測タイプによって個別のコンテキストインデックスを導出する例について説明したが、これに限定されない。例えば、変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領域における係数に対して固定のコンテキストインデックスを割り当ててもよい。
すなわち、ctxIdx = offset ・・・(eq.A-5)
これによって、新たに導入する画素領域における非０係数有無フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０２３９】
(変形例１−Ｅ)
上記変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄでは、変換スキップ時と変換量子化バイパス時において、画素領域における非０係数有無フラグに関するコンテキストインデックスを共通にしていてが、変換スキップ時と変換量子化バイパス時において、個別のコンテキストインデックスを割り当ててもよい。一般的に、変換スキップ時と変換量子化バイパス時とでは、画素領域における非０係数の出現確率は異なるため、係数有無フラグに関するコンテキストを区別することが好ましい。例えば、図３４に示すように、変換スキップと変換量子化バイパスを識別する識別子indexと、ＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType ][ log2TrafoSize-2 ] を参照して、次式により導出する。
【０２４０】
ctxIdx = TBL_CTX_IDX[ index ][ log2TrafoSize- 2 ] + offset・・・(eq.A-6)
なお上記式において識別子indexは、変換スキップ時に値０をとり、変換量子化バイパス時に値１をとるものとする。
【０２４１】
ピクチャ内の画質の変化を許すような利用状況では、ロスレス以外のブロックにおいて比較的量子化ステップの大きな量子化が行われることもありえる。この場合、ロスレス符号化で主に用いられる変換量子化バイパスの係数と、変換スキップの係数とは出現確率が異なる（量子化が行われる変換スキップの場合に出現確率が低い）ため、係数有無フラグに関するコンテキストを区別することが好ましい。
【０２４２】
以上、変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄによれば、変換スキップ時と変換量子化バイパス時のそれぞれに対して、画素領域における非０係数に対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量を削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０２４３】
以上、変換スキップが実施される場合、または変換量子化バイパスが実施される場合に、非０係数有無フラグに関するコンテキストを、周波数領域における係数と画素領域における係数とで区別する場合について説明したが、ＧＲ１フラグ(coeff_abs_level_greater1_flag)、及びＧＲ２フラグ(coeff_abs_level_greater2_flag)に関しても、ＧＲ１フラグに関するコンテキスト、及びＧＲ２フラグに関するコンテキストを、変換スキップ、または変換量子化バイパスが実施される場合、周波数領域における係数と、画素領域における係数とで区別してもよい。
【０２４４】
＜＜係数有無フラグ復号部１２４の別の構成例＞＞
以下では、図５９を参照して、係数有無フラグ復号部１２４の別の構成例について説明する。
【０２４５】
図５９は、係数有無フラグ復号部１２４の別の構成例を示すブロック図である。図５９に示すように、係数有無フラグ復号部１２４は、コンテキスト導出手段選択部１２４Ａa、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃ、変換スキップコンテキスト導出部１２４Ａｄ、及び係数有無フラグ設定部１２４ｅを備えている。なお、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃ、及び、係数有無フラグ設定部１２４ｅは、図１８の対応する構成要素と同じ機能を有するため同一の符号を付与して説明を省略する。
【０２４６】
（コンテキスト導出手段選択部１２４Ａａ）
コンテキスト導出手段選択部１２４Ａａには、処理対象の係数位置（ｘＣ,ｙＣ）と、変換ブロックサイズの対数値（log2TrafoWidth、log2TrafoHeight）と、変換スキップフラグ（transform_skip_flag）が少なくとも入力される。
【０２４７】
コンテキスト導出手段選択部１２４Ａａは、変換スキップフラグ、対象変換ブロックサイズ、および、対象の係数位置に応じて、位置コンテキスト導出部１２４ｂ、隣接サブブロック係数有無コンテキスト導出部１２４ｃ、または、変換スキップコンテキスト導出部１２４Ａｄの何れかを選択する。選択された各コンテキスト導出部では対象の係数位置における係数有無フラグの復号時に参照されるコンテキストインデックスctxIdxが導出される。
【０２４８】
以下、図６０を用いてコンテキスト導出手段選択部１２４Ａａにおけるコンテキスト導出手段の選択処理について具体的に説明する。
【０２４９】
まず、ステップＳＢ８０１Ａでは、変換サイズが４×４か否かを判別する。変換サイズが４×４である場合（ステップＳＢ８０１ＡでＹｅｓ）、ステップＳＢ８０２Ａへ進み、そうでない場合（ステップＳＢ８０１ＡでＮｏ）、ステップＳＢ８０３Ａへ進む。
【０２５０】
ステップＳＢ８０２Ａでは、対象ブロックにおいて変換スキップを適用するか否かを判定する。変換スキップを適用する（変換スキップフラグが１である）場合（ステップＳＢ８０２ＡでＹｅｓ）、ステップＳＢ８０６Ａに進む。変換スキップを適用しない場合（ステップＳＢ８０２ＡでＮｏ）、ステップＳＢ８０３Ａに進む。
【０２５１】
ステップＳＢ８０３Ａでは、対象の係数位置が周波数領域におけるＤＣ成分の位置であるか、または、対象変換ブロックサイズが所定のサイズ以下（８×８以下）である場合、ステップＳＢ８０５Ａに進む。それ以外の場合、ステップＳＢ８０４Ａに進む。
【０２５２】
ステップＳＢ８０４Ａでは、コンテキスト導出選択手段は、隣接サブブロック係数有無コンテキスト導出手段を選択し、コンテキストインデックスを導出して、処理を終了する。
【０２５３】
ステップＳＢ８０５Ａでは、コンテキスト導出選択手段は、位置コンテキスト導出手段を選択し、コンテキストインデックスを導出して、処理を終了する。
【０２５４】
ステップＳＢ８０６Ａでは、コンテキスト導出選択手段は、変換スキップコンテキスト導出手段を選択し、コンテキストインデックスを導出して、処理を終了する。
【０２５５】
（変換スキップコンテキスト導出部１２４Ａｄ）
変換スキップコンテキスト導出部１２４Ａｄは、変換スキップ時に、対象係数における係数有無フラグの復号時に参照されるコンテキスト（コンテキストインデックスctxIdx）を導出する。ここで導出されるコンテキストは、対象係数のサブブロック内の位置に依らず、単一のコンテキストが導出される。ここで、当該単一のコンテキストとしては、独立のコンテキストを設定してもよい。具体的には、他のコンテキスト導出部（位置コンテキスト導出部１２４ｂと隣接サブブロック係数有無コンテキスト導出部１２４ｃ）において導出されるコンテキストとは異なるコンテキストを導出する。
【０２５６】
変換スキップが実施される場合、復号対象となる係数有無フラグは、画素領域における非０係数を意味する。一方、変換スキップが適用されない場合、係数有無フラグは、周波数領域における非０係数を表す。画素領域における非０係数の出現確率と、周波数領域における非０係数の出現確率は異なるため、画素領域と周波数領域とで、係数有無フラグに関するコンテキストを区別することが好ましい。さらに、画素領域における非０係数の出現確率は、変換ブロック内、または、サブブロック内の係数位置との関連性が、周波
数領域における非０係数の出現確率に較べて低い。そのため、画素領域における非０係数の出現確率に対応する、変換スキップ適用時の係数有無フラグの復号に参照するコンテキストは、変換ブロック内、または、サブブロック内の係数位置に依存せずに決定してもよい。その場合、係数位置に応じて複数のコンテキストから選択する場合に較べて、コンテキスト数を削減できる。
【０２５７】
なお、上記では、変換スキップコンテキスト導出部１２４Ａｄにおいて、係数有無フラグの復号時に参照される単一のコンテキストとして、独立のコンテキストを説明する例を説明したが、変換スキップが適用されない場合の係数有無フラグの復号時に参照されるコンテキストを導出してもよい。すなわち、変換スキップ適用時のコンテキストと、変換スキップ未適用時のコンテキストを共有してもよい。この場合、コンテキストの総数が増加しないという利点がある。
【０２５８】
ここで、変換スキップ適用時と未適用時に、コンテキストを共有する具体例を挙げる。変換スキップ適用時に導出されるコンテキストは、位置コンテキスト導出部１２４ｂにおいて、高周波成分の位置における係数有無フラグに対して導出されるコンテキストであることが好ましい。より具体的には、図２２（ａ）において、‘８’で示された高周波領域の係数有無フラグに対して導出されるコンテキストを、変換スキップ適用時の係数有無フラグのコンテキストとして導出できる。周波数領域において高周波成分の位置における係数有無フラグの係数位置への依存性は、低周波成分の位置における係数有無フラグの係数位置への依存性に較べて小さい。変換スキップ適用時には、空間領域において係数有無フラグの係数位置への依存性が比較的小さいことから、コンテキストを共有するのであれば、高周波成分におけるコンテキストを共有することが好ましい。
【０２５９】
以上、上記変換スキップコンテキスト導出部１２４ｄによれば、変換スキップが実施される際、画素領域における非０係数に対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となる変換ブロックにおいて、非０係数の符号量を削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０２６０】
（係数値復号部１２５の構成例）
図４３は、係数値復号部１２５の構成例を示すブロック図である。図４３に示すように、係数値復号部１２５は、係数レベル復号部１２５ａ、係数サイン復号部１２５ｂ、係数値復元部１２５ｃ及び、係数数導出部１２５ｄを備えている。係数サイン復号部１２５ｂは、係数位置導出部１２５ｅ、サインハイディングフラグ導出部１２５ｆ、係数和算出部１２５ｇ、サイン符号導出部１２５ｈを備えている。
【０２６１】
係数レベル復号部１２５ａは、シンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、及びcoeff_abs_level_remainingを復号し、変換係数の絶対値absLevelを復号する。係数数導出部１２５ｄから供給されるサブブロック内の非０係数の数numCoeffが所定の閾値ＴＨ以上である場合には、ハイスループットモードに移る。
【０２６２】
係数値復元部１２５ｃは、係数レベル復号部１２５ａから供給される変換係数の絶対値absLevelと、係数サイン復号部１２５ｂから供給される変換係数の符号coeff_sign_flagから以下の式によって、変換係数の値を復号する。
【０２６３】
Coeff = absLevel * (1 ‐ 2*coeff_sign_flag)
coeff_sign_flagは符号が正のとき値は０、符号が負のとき値は１となる。
【０２６４】
係数数導出部１２５ｄは、サブブロック内の非０の変換係数の数numCoeffを導出し、係数レベル復号部１２５ａに供給する。また、係数サイン復号部１２５ｂにおいてサインハインディングフラグsignHiddenの導出にサブブロック内の非０の変換係数の数numCoeffを用いる場合には、係数サイン復号部１２５ｂにも供給する。
【０２６５】
係数サイン復号部１２５ｂは、符号化データから変換係数の符号coeff_signを復号もしくは導出する。
【０２６６】
係数位置導出部１２５ｅは、スキャン順で最後の非０係数の位置lastNZPosInCGとスキャン順で最初の非０係数の位置firstNZPosInCGを求めサインハイディングフラグ導出部１２５ｆに供給する。サインハイディングフラグ導出部１２５ｆでは対象サブブロックでサインハイディングを行うか否かを示すフラグsignHiddenを導出し、サイン符号導出部１２５ｈに供給する。係数和算出部１２５ｇは、対象サブブロックの係数絶対値和sumAbsを算出しサイン符号導出部１２５ｈに供給する。
【０２６７】
サイン符号導出部１２５ｈは、サインハイディングを行う場合には、対象サブブロックの係数絶対値和sumAbsから位置firstNZPosInCGの変換係数の符号coeff_signを以下の式により算出する。
【０２６８】
coeff_sign ＝(sumAbs % 2) == 1 ? -1 : 1
サインハイディングを行わない場合には、符号化データからシンタックスcoeff_sign_flagを復号することにより、変換係数の符号を復号する。
【０２６９】
図４４は、実施形態に係る係数サイン復号部１２５ｂの動作を示すフローチャートである。
【０２７０】
（ステップＳＤ００１）
サインハイディングフラグ導出部１２５ｆはサインハイディングフラグsignHiddenを導出する。サインハイディングフラグsignHiddenは、当該サブブロックでサインハイディングを行うか否かを示す。signHiddenの導出はサブブロックに１回行われる。導出方法の詳細は後述する。
【０２７１】
（ステップＳＤ００２）
対象サブブロック内のループを開始する。当該ループは、係数位置を単位とするループである。
【０２７２】
（ステップＳＤ００３）
対象変換係数の位置に非０係数が存在するか否かを判定する。
【０２７３】
（ステップＳＤ００４）
非０係数が存在する場合（ステップＳＤ００３でＹｅｓ）、サインハイディング許可フラグフラグsign_data_hiding_flagが１であるか否かを判定する。サインハイディング許可フラグフラグsign_data_hiding_flagは、シーケンスやピクチャ、スライス全体でサインハイディングを許可するか否かのフラグであり、ＳＰＳやＰＰＳなどのパラメータセットもしくはスライスヘッダで符号化される。
【０２７４】
（ステップＳＤ００５）
サインハイディング許可フラグフラグsign_data_hiding_flagが１の場合（ステップＳＤ００４でＹｅｓ）、サインハイディングフラグsignHiddenが１であるであるかを判定する。
【０２７５】
（ステップＳＤ００６）
サインハイディングフラグsignHiddenが１である場合（ステップＳＤ００５でＹｅｓ）、サインハイディングフラグsignHidden対象変換係数がサブブロックの中においてスキャン順で最初（逆スキャン順で最後）の非０係数であるであるか（firstNZPosInCG ?）を判定する。
【０２７６】
（ステップＳＤ００７）
対象変換係数がサブブロックの中においてスキャン順で最初の非０係数である場合（ステップＳＤ００６でＹｅｓ）、サイン符号導出部１２５ｈは計算によりサインを導出する。
【０２７７】
（ステップＳＤ００８）
サインハイディングを行うか否かの判定のいずれかがＮｏの場合、サイン符号導出部１２５ｈは符号化データからサインを復号する。
【０２７８】
（ステップＳＤ００９）
サブブロック内のループを終了する。
【０２７９】
図４５は、サインハイディングフラグ導出部１２５ｆにおけるサインハイディングフラグsignHidden導出処理（ステップＳＤ００１）を説明するためのフローチャートである。
【０２８０】
（ステップＳＤ１２０１)
変換量子化バイパスを実施するか否かを判別する。変換量子化バイパスを実施しない場合（transquant_bypass_flag==0） (ステップＳＤ１２０１でＹｅｓ)、ステップＳＤ１２０２へ進む。それ以外の場合は（ステップＳＤ１２０１でＮｏ）、ステップＳ１２０５へ進む。
【０２８１】
(ステップＳＤ１２０２)
変換スキップを実施するか否かを判別する。変換スキップを実施しない場合（transform_skip_flag==0）(ステップＳＤ１２０２でＹｅｓ)、ステップＳＤ１２０３へ進む。それ以外の場合は、ステップＳ１２０５へ進む。
【０２８２】
（ステップＳＤ１２０３）
サブブロック内において、スキャン順で最後に出現する（逆スキャン順で最初に出現する）非０係数の位置lastNZPosInCGとスキャン順で最初に出現する（逆スキャン順で最後に出現する）非０係数の位置firstNZPosInCGの差が所定の閾値sign_hiding_threshold以上であるかを判定する。スキャン位置の差が所定の閾値以上である場合（ステップＳＤ１２０１でＹｅｓ）、ステップＳ１２０４へ進む。それ以外の場合は(ステップＳＤ１２０３でＮｏ)、ステップＳ１２０５へ進む。
【０２８３】
（ステップＳＤ１２０４）
、サインハイディングフラグsignHiddenをサインハインディングを行うことを意味する１に設定する。
【０２８４】
（ステップＳＤ１２０５）
サインハイディングフラグsignHiddenをサインハインディングを行わないことを意味する０に設定する。
【０２８５】
ここで、ステップＳＤ１２０３では、閾値sign_hiding_thresholdを用いてサインハイディングを行うか否かを決定するが、この閾値の具体例としては４が好適である。
【０２８６】
上記ステップＳＤ１２０２〜ＳＤ１２０５の処理を式で表せば、次式で表される。
【０２８７】
signHidden = (lastNZPosInCG ‐ firstNZPosInCG >= sign_hiding_thresh
old) &&
!transquant_bypass_flag && !transform_skip_flag ? 1 :0
変換スキップを実施する場合、もしくは変換量子化バイパスを実施する場合、画素領域の係数に対して、係数レベル値の補正を伴うサインハイディングを実施することは、主観画質の低下を招く可能性があるため、サインハイディングの実施を禁止することが好ましい。以上、本構成では、変換スキップ、もしくは、変換量子化バイパスを実施時において、サインハイディング処理を禁止することによって、主観画質向上の効果を得る効果を奏する。
【０２８８】
なお、上記サインハイディングフラグ導出部１２５ｆでは、変換スキップを実施するか否かと変換量子化バイパスを実施するか否かと、及びスキャン順で最初に出現する非０係数の位置と、スキャン順で最後に出現する非０係数の位置とのスキャン位置の差が所定の閾値sign_hiding_thresholdであるかによって、サインハイディングフラグsignHiddenを導出しているが、これに限定されない。例えば、スキャン順で最後に出現する非０係数の位置が所定の閾値sign_hiding_thresholdであるかによって、サインハイディングフラグsignHiddenを導出してもよい。
【０２８９】
すなわち、
signHidden = (lastNZPosInCG >= sign_hiding_threshold) &&
!transquant_bypass_flag && !transform_skip_flag ? 1 :0
（係数値復号部１２５の別の構成例）
図４６は、係数値復号部１２５の別の構成例を示すブロック図である。図４６に示すように、係数値復号部１２５は、係数レベル復号部１２５ａ、係数サイン復号部１２５ｂ´、係数値復元部１２５ｃ及び、係数数導出部１２５ｄを備えている。係数サイン復号部１２５ｂ´は、係数位置導出部１２５ｅ、サインハインディングフラグ導出部１２５ｆ´、係数和算出部１２５ｇ、サイン符号導出部１２５ｈを備えている。図４３に示す構成と異なり、係数位置導出部１２５ｅは存在しない。
【０２９０】
上記構成の場合、サインハイディングフラグ導出部１２５ｆ´は、変換スキップを実施するか否かと変換量子化バイパスを実施するか否かと、サブブロック内の非０係数の数numCoeffが所定の閾値sign_hiding_threshold以上であるかによって、サインハイディングフラグsignHiddenを導出する。
【０２９１】
すなわち、
signHidden = (numSigCoeff>=sign_hiding_threhold) &&
!transquant_bypass_flag && !transform_skip_flag ? 1 :0
本判定において、サブブロック内の変換係数の数numCoeffは、レベル復号においてもカウントされる変数であるため、サインハインディング用に特別な処理が不要になり処理が単純になる効果を奏する。
【０２９２】
（サインハイディング時の符号計算処理）
図４７は、サイン符号導出部１２５ｈにおけるサインハイディングの符号計算処理（ステップＳＤ００７）の詳細動作を示すフローチャートである。
【０２９３】
（ステップＳＤ９０１）
サイン符号導出部１２５ｈは、対象サブブロックの係数絶対値和sumAbsが奇数かどうかを判定する。
【０２９４】
（ステップＳＤ９０２）
対象サブブロックの係数絶対値和sumAbsが奇数の場合（ステップＳＤ９０１でＹｅｓ）、対象とする変換係数の符号を負と導出する。既に復号された絶対値absLevelを反転する。
【０２９５】
（ステップＳＤ９０３）
対象サブブロックの係数絶対値和sumAbsが偶数の場合（ステップＳＤ９０１でＮｏ）、対象とする変換係数の符号は正と導出する。既に復号された絶対値absLevelは反転せずそのままとする。
【０２９６】
（サインハイディングにおいて係数絶対値和sumAbsを用いない構成）
図４８は、係数絶対値和sumAbsを用いない場合の係数サイン復号部１２５ｂの動作を示すフローチャートである。ステップＳＤ１００１からステップＳＤ１００５、ステップＳＤ１００７、ステップＳＤ１００８の動作は、図４４のステップＳＤ００１からステップＳＤ００５、ステップＳＤ００７、ステップＳＤ００８の動作と同じであるから説明を省略する。
【０２９７】
（ステップＳＤ１００６）
サインハイディングフラグsignHiddenが１である場合（ステップＳＤ１００５でＹｅｓ）、サインハイディングフラグsignHidden対象変換係数がサブブロックの中においてスキャン順で最後（最も高周波数側）の非０係数であるであるか（lastNZPosInCG ?）を判定する。
【０２９８】
（ステップＳＤ１００７）
対象変換係数がサブブロックの中においてスキャン順で最後の非０係数である場合（ステップＳＤ１００６でＹｅｓ）、サイン符号導出部１２５ｈは、スキャン順で最後の非０係数の絶対値から計算によりサインを導出する。
【０２９９】
図４９は、係数絶対値和sumAbsを用いない構成におけるサイン符号導出部１２５ｈにおけるサインハイディングの符号計算処理（ステップＳＤ１００７）の詳細動作を示すフローチャートである。
【０３００】
（ステップＳＤ１１０１）
サイン符号導出部１２５ｈは、サインハイディングの対象となる変換係数の係数絶対値absLevelが奇数かどうかを判定する。
【０３０１】
（ステップＳＤ１１０２）
対象係数の絶対値absLevelが奇数の場合（ステップＳＤ１１０１でＹｅｓ）、対象とする変換係数の符号を負と導出する。既に復号された絶対値absLevelを反転する。
【０３０２】
（ステップＳＤ１１０３）
対象係数の絶対値absLevelが偶数の場合（ステップＳＤ１１０１でＮｏ）、対象とする変換係数の符号は正と導出する。既に復号された絶対値absLevelは反転せずそのままとする。
【０３０３】
（実施例３）
以下では、係数レベル復号部１２５ａにおけるＧＲ１フラグ、ＧＲ２フラグ、残余係数レベルの復号処理について説明する。
【０３０４】
（ＧＲ１フラグの復号処理）
以下では、係数レベル復号部１２５ａにおけるＧＲ１フラグの復号処理について説明する。図３５は、ＧＲ１フラグの復号処理を示すフローチャートである。
【０３０５】
なお、予めＧＲ１フラグの値を格納するcoeff_abs_level_greatr1_flag[n]は初期化しておくものとする。
【０３０６】
（ステップＳＤ１０１）
係数レベル復号部１２５ａは、ＧＲ１フラグの復号に関連する各種パラメータを初期化する。
【０３０７】
係数位置識別インデックスnを15に設定する。n = 15
係数数numSigCoeffを０に設定する。numSigCoeff = 0
サブブロック内で最初に出現するＧＲ１フラグの値が１となる係数位置firstGreater1CoeffIdxを-1に設定する。firstGreatr1CoeffIdx = -1
復号対象サブブロックの位置(subset)がラスト係数を含むサブブロックである場合、復号済ＧＲ１フラグの値が０である個数を表わす変数greatr1Ctxは１に初期化される。すなわち、
greater1Ctx = 1
また、復号対象サブブロックの位置(subset)がラスト係数を含むサブブロック以外の場合は、復号済ＧＲ１フラグの値が０である個数を表わす変数greatr1Ctxを次式により更新する。
【０３０８】
greater1Ctx = greater1Ctx >> 1
（ステップＳＤ１０２）
対象サブブロック内のループを開始する。当該ループは、係数位置を単位とするループである。
【０３０９】
（ステップＳＤ１０３）
係数位置識別インデックスnで特定される係数位置(xC,yC)が非０係数であるか判別する。非０係数である場合( significant_coeff_flag[xC][yC]==1 )
（ステップＳＤ１０３でＹｅｓ）、ステップＳＤ１０４へ進む。それ以外の場合（significant_coeff_flag[xC][yC]==0（ステップＳＤ１０３でＮｏ）、ステップＳＤ１０９へ進む。
【０３１０】
(ステップＳＤ１０４)
サブブロック内で復号したＧＲ１フラグの個数numSigCoeffが所定閾値未満であるか判別する。ＧＲ１フラグの個数numSigCoeffが所定閾値未満である場合(ステップＳＤ１０４でＹｅｓ)、ステップＳＤ１０４へ進む。それ以外の場合（ステップＳＤ１０４でＮｏ）、ステップＳＤ１０９へ進む。
【０３１１】
（ステップＳＤ１０５）
係数位置識別インデックスnのＧＲ１フラグを復号する。なお、ＧＲ１フラグの復号時に参照するコンテキストインデックスは以下のように算出される。
【０３１２】
（変換スキップ、変換量子化バイパスのいずれも実施しない場合）
変換スキップ、変換量子化バイパスのいずれも実施しない場合、周波数領域における各係数位置のＧＲ１フラグに関するコンテキストインデックスを次式により導出する。
【０３１３】
ctxIdx = 4 * ctxset + min( 3, greater1ctx ) ・・・(eq.B-1)
ここで、式(eq.B-1)において、変数ctxsetは、復号対象変換ブロック内の対象サブブロックより前に復号したサブブロック内の変換係数レベルabslevelが２以上(GR1フラグの値が１)となる係数の個数numGreater1と、復号対象サブブロックの位置(subset)と、色空間cIdxによって定まる値である。
【０３１４】
まず、変数ctxsetは、復号対象サブブロックのＧＲ１フラグの復号開始前に、予め次式によって初期化される。
【０３１５】
ctxset = ( subset>0 && cIdx==0 ) ? 2 : 0 ・・・(eq.B-2)
すなわち、色空間cIdxが輝度（Ｙ）を示し（cIdx==0）、かつ復号対象サブブロックの位置subsetがＤＣ係数を含まないサブブロックである(subset>0)場合には、変数ctxsetを２に設定する。。それ例外の場合（ subset==0 || cIdx>0 ）、すなわち、復号対象サブブロックの位置subsetがＤＣ係数を含むサブブロックである場合(subset==0)、または、色空間cIdxが色差（Ｕ，Ｖ）である場合は、変数ctxsetを0に設定する。
【０３１６】
また、上記式(eq.B-2)により変数ctxsetの初期化が実施された後は、復号対象サブブロック内のＧＲ１フラグの復号開始前に、変数ctxsetは変数numGreater1と、変換スキップフラグtransform_skip、または、変換量子化バイパスフラグtransquant_bypass_flagに基づいて値が更新される。
【０３１７】
if ( !transform_skip_flag && !transquant_bypass_flag){
ctxset = (numGreater1 > 0) ? ctxset + 1 : ctxset
}・・・(eq.B-3)
また、式(eq.B-1)において、変数greater1Ctxは、ステップＳＤ１０５において復号されたＧＲ１フラグ(lastGrater1Ctx)と、変換スキップフラグ、変換量子化バイパスフラグによって定まる値である。
【０３１８】
if( !transform_skip_flag && !transquant_bypass_flag){
greater1Ctx = (lastGreater1Ctx==1) ? 0 : greatr1Ctx + 1
｝・・・(eq.B-4)
ここで、式(eq.B-4)において、変数lastGreater1Ctxは、直前に復号したＧＲ１フラグの値を示す。また、上記式(eq.B-3)及び（eq.B-4）において、変換スキップ、あるいは、変換量子化バイパスが実施される場合は、変数ctxset及びgreater1Ctxの値を更新しない。なぜならば、変換スキップ、あるいは、変換量子化バイパスが実施される場合、ＧＲ１フラグは画素領域における変換係数であり、周波数領域における変換係数に関するＧＲ１フラグのコンテキストを導出するために用いる変数を更新することは、周波数領域における変換係数に関するＧＲ１フラグのコンテキストの状態をが適切に更新されず、符号化効率の低下を招く可能性があるためである。
【０３１９】
（変換スキップ、あるいは変換量子化バイパスを実施する場合）
変換スキップ、あるいは変換量子化バイパスを実施する場合、画素領域における各係数位置のＧＲ１フラグに関するコンテキストインデックスを所定の方法に基づいて導出する。具体的な導出の仕方については後述する。
【０３２０】
（ステップＳＤ１０６）
復号したＧＲ１フラグの個数をカウントする。すなわち、
numSigCoeff = numSigCoeff + 1
また、復号した係数位置(xC, yC)の係数レベル値が２以上であるか(ＧＲ１フラグの値が１でるか)と、変換スキップフラグ、変換量子化バイパスフラグに基づいて、変数numGreater1を更新する。すなわち、
if( !transform_skip_flag && !transquant_bypass_flag){
numGreater1 = coeff_abs_level_greater1_flag[n]==1 ?
numGreater1 + 1 : numGreater1
} ・・・(eq.B-5)
ここで、式(eq.B-5)において、変換スキップ、あるいは、変換量子化バイパスが実施される場合は、変数numGreater1を更新しない。なぜならば、変換スキップ、あるいは、変換量子化バイパスが実施される場合、ＧＲ１フラグおよびＧＲ２フラグは画素領域における変換係数であり、周波数領域における変換係数に関するＧＲ１フラグおよびＧＲ２フラグのコンテキストを導出するために用いる変数を更新することは、周波数領域における変換係数に関するＧＲ１フラグ、及びＧＲ２フラグのコンテキストの状態が適切に更新されず、符号化効率の低下を招く可能性があるためである。
【０３２１】
(ステップＳＤ１０７)
サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置であるか判別する。サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置である場合（ステップＳＤ１０７でＹｅｓ）、ステップＳＤ１０８へ進む。それ以外の場合は、ステップＳＤ１０９へ進む。
【０３２２】
（ステップＳＤ１０８）
サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置（係数位置識別インデックス）を変数firstGreater1CoeffIdxへ設定する。すなわち、
firstGreater1CoeffIdx = n
（ステップＳＤ１０９）
係数位置識別インデックスｎを更新する。すなわち、
n = n - 1
（ステップＳＤ１１０）
サブブロック内のループを終了する。
【０３２３】
（ＧＲ２フラグの復号処理）
以下では、係数レベル復号部１２５ａにおけるＧＲ２フラグの復号処理について説明する。図３６は、ＧＲ２フラグの復号処理を示すフローチャートである。
【０３２４】
なお、予めＧＲ２フラグの値を格納するcoeff_abs_level_greatr2_flag[n]は初期化しておくものとする。
【０３２５】
（ステップＳＥ１０１）
ＧＲ１フラグの復号処理において求めた、サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数があるか否かを判別する。すなわち、変数firstGreater1CoeffIdxが-１であるか否かを判別する。ここで、変数firstGreater1coeffIdxが-1でない場合（ステップＳＥ１０１においてＹｅｓ）、ステップＳ１０２へ進む。それ以外の場合（ステップＳＥ１０１においてＮｏ）、ＧＲ２フラグを復号せず、ＧＲ２フラグの復号処理を終了する。
【０３２６】
（ステップＳＥ１０２）
変数firstGreatr1CoeffIdxが示す係数位置のＧＲ２フラグ(coeff_abs_level_greater2_flag[ firstGreatr1CoeffIdx ])を復号する。
【０３２７】
なお、ＧＲ２フラグの復号時に参照するコンテキストインデックスは以下のように算出される。
【０３２８】
（変換スキップ、変換量子化バイパスのいずれも実施しない場合）
変換スキップ、変換量子化バイパスのいずれも実施しない場合、周波数領域における各係数位置のＧＲ２フラグに関するコンテキストインデックスを次式により導出する。
【０３２９】
ctxIdx = (cIdx==0) ? ctxset : ctxset + 4・・・(eq.C-1)
ここで、式(eq.C-1)において、変数ctxsetは、復号対象変換ブロック内の対象サブブロックより前に復号したサブブロック内の変換係数レベルabslevelが２以上となる係数の個数numGreater1と、復号対象サブブロックの開始位置と、色空間cIdxによって定まる値である。なお、ctxsetの導出方法は、既に説明したため省略する。
【０３３０】
（変換スキップ、あるいは変換量子化バイパスを実施する場合）
変換スキップ、あるいは変換量子化バイパスを実施する場合、画素領域における各係数位置のＧＲ２フラグに関するコンテキストインデックスを所定の方法に基づいて導出する。具体的な導出の仕方については後述する。
【０３３１】
（残余係数レベルの復号処理）
以下では、係数レベル復号部１２５ａにおける残余係数レベルの復号処理について説明する。図３７は、残余係数レベルの復号処理を示すフローチャートである。
【０３３２】
（ステップＳＦ１０１）
係数レベル復号部１２５ａは、残余係数レベルの復号に関連する各種パラメータを初期化する。
【０３３３】
係数位置識別インデックスnを15に設定する。n = 15
係数数numSigCoeffを０に設定する。numSigCoeff = 0
（ステップＳＦ１０２）
対象サブブロック内のループを開始する。当該ループは、係数位置を単位とするループである。
【０３３４】
（ステップＳＦ１０３）
係数位置識別インデックスnで特定される係数位置(xC,yC)が非０係数であるか判別する。非０係数である場合( significant_coeff_flag[xC][yC]==1 )（ステップＳＦ１０３でＹｅｓ）、ステップＳＦ１０４へ進む。それ以外の場合（ significant_coeff_flag[xC][yC]==0（ステップＳＦ１０３でＮｏ）、ステップＳＦ１０９へ進む。
【０３３５】
(ステップＳＦ１０４)
係数位置(xC, yC)の変換係数のベースレベルbaseLevelを次式により算出する。
【０３３６】
baseLevel = 1 + coeff_abs_level_greater1_flag[ n ]
+ coeff_abs_level_greater2_flag[ n ] ・・・(eq.E-1)
(ステップＳＦ１０５)
係数位置（xC,yC）の変換係数のベースレベルbaseLevelが所定値を満たすか否かを判別する。所定値は次式で表わされる。
【０３３７】
baseLevel == (numSigCoeff < TH) ?
( ( n==firstGreater1CoeffIdx) ? 3 : 2 ) : 1・・・(eq.E-2)
すなわち、
１）係数数numSigCoeffが所定閾値TH以上の場合(numSigCoeff>=TH)、baseLevelが１と等しいか判定する。
【０３３８】
２）係数数numSigCoeffが所定閾値未満(numSigCoeff<TH)、かつ、係数識別インデックスnがfirstGreater1CoeffIdxではない場合、baseLevelが２と等しいか判定する。
【０３３９】
３）係数数numSigCoeffが所定閾値未満(numSigCoeff<TH)、かつ、係数識別インデックスnがfirstGreater1CoeffIdxである場合、baseLevelが３と等しいか判定する。
【０３４０】
以上、baseLevelが上記条件で取り得る値と等しい場合（ステップＳＦ１０５でＹｅｓ）、ステップＳＦ１０６へ進む。それ以外の場合（ステップＳＦ１０５でＮｏ）、残余係数レベルcoeff_abs_level_remainingの復号をスキップ(coeff_abs_level_remaining[n]=0として扱う)し、ステップＳＦ１０７へ進む。
【０３４１】
(ステップＳＦ１０６)
係数位置(xC,yC)の変換係数の残余係数レベルcoeff_abs_level_remaining[n]を復号する。
【０３４２】
(ステップＳＦ１０７)
係数位置(xC,yC)の変換係数の係数レベル値absLevelを次式により算出する。
【０３４３】
absLevel = coeff_abs_level_remaining[ n ] + baseLevel ・・・(eq.E-3)
（ステップＳＦ１０８）
復号した係数数numSigCoeffを更新する。すなわち、
numSigCoeff = numSigCoeff + 1
(ステップＳＦ１０９)
係数位置識別インデックスｎを更新する。すなわち、
n = n - 1
（ステップＳＦ１１０）
サブブロック内のループを終了する。
【０３４４】
（変換スキップ、または変換量子化バイパス時のＧＲ１フラグ／ＧＲ２フラグのコンテキストインデックス導出に関して）
係数レベル復号部１２５ａは、変換スキップ、または変換量子化バイパスが適用される場合、ＧＲ１フラグとＧＲ２フラグに関するコンテキストインデックスctxIdxを例えば、ＴＵの横幅サイズとＴＵの縦幅サイズに対応する相対コンテキストインデックスに基づいて導出する。
【０３４５】
具体的なコンテキストインデックスctxIdxの導出処理について、図３１（ａ）を用いて説明する。図３１（ａ）は、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX [ log2TrafoWidth-2 ][ log2TrafoHeight -2 ]である。コンテキストインデックスctxIdx
は上記テーブルを参照して次式により導出される。
【０３４６】
ctxIdx = TBL_CTX_IDX[ log2TrafoWidth -2 ][ log2TrafoHeight ‐ 2 ] +
offset
・・・(eq.C-1)
上記式(eq.C-1)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、ＧＲ２フラグの場合、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値であり、変換スキップ、あるいは変換量子化バイパスが適用される場合の各ＧＲ１フラグ、または、ＧＲ２フラグに関するコンテキストインデックスの開始点を表わす。以下、式（eq.C-2）〜式(eq.C-6)における変数offsetついても同様である。
【０３４７】
変換スキップ、あるいは変換量子化バイパスが実施される場合、復号対象となるＧＲ１フラグ、及びＧＲ２フラグは、画素領域における変換係数である。画素領域における各係数位置のＧＲ１フラグ、及びＧＲ２フラグの出現確率と、周波数領域における各係数位置のＧＲ１フラグ、及びＧＲ２の出現確率は異なるため、画素領域と周波数領域とで、ＧＲ１フラグ及びＧＲ２フラグに関するコンテキストを区別することが好ましい。
【０３４８】
以上、係数レベル復号部１２５ａによれば、変換スキップ、あるいは変換量子化バイパスが実施される際、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグ及びＧＲ２フラグの符号量を削減することができるので、ＧＲ１フラグおよびＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０３４９】
また、画素領域においても、ＴＵサイズ毎に非０係数の出現確率は異なるため、ＴＵサイズ毎にＧＲ１フラグ及びＧＲ２フラグに関するコンテキストを区別することが好ましい。すなわち、上記係数レベル復号部１２５ａによれば、ＴＵサイズ毎に、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグに対して、適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグ、及びＧＲ２フラグの符号量をさらに削減することができるので、ＧＲ１フラグ、及びＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０３５０】
なお、上記では、変換スキップあるいは変換量子化バイパスが実施される場合、すなわち、画素領域における変換係数について、ＧＲ１フラグのコンテキストを、周波数領域におけるコンテキストと区別する例を記載したが、それに限らない。例えば、変換スキップが実施される場合には、周波数領域におけるコンテキストとは異なるコンテキストを用い、変換量子化バイパスが実施される場合には、周波数領域におけるコンテキストを共有して用いる構成でも構わない。
【０３５１】
変換量子化バイパスを適用する場合は、変換係数を量子化しないため、変換係数の符号量が多くなる。そのため、量子化後の変換係数の値が１より大きか否かを示すフラグであるＧＲ１フラグの符号量が、変換係数の符号量に占める割合は低い。そのため、周波数領域におけるコンテキストと異なるコンテキストを用いてＧＲ１フラグの符号量を削減しても符号化データ全体の符号量は大きく低減できない可能性がある。一方、変換スキップを適用する場合は、変換係数を量子化するため、変換係数の符号量が変換量子化バイパスを適用する場合に比べて小さくなる。ゆえに、周波数領域におけるコンテキストと異なるコンテキストを用いてＧＲ１フラグの符号量を削減することで符号化データ全体の符号量が比較的大きく低減できる。したがって、変換スキップを適用する場合に、周波数領域と異なるコンテキストでＧＲ１フラグを符号化し、変換量子化バイパスを適用する場合に、周波数領域とコンテキストを共有してＧＲ１フラグを符号化することで、コンテキスト数を大きく増加することなく符号量が削減できるという効果を奏する。
【０３５２】
以上の議論はＧＲ２フラグについても成り立ち、変換スキップを適用する場合に、周波数領域と異なるコンテキストでＧＲ２フラグを符号化し、変換量子化バイパスを適用する場合に、周波数領域とコンテキストを共有してＧＲ２フラグを符号化することで、コンテキスト数を大きく増加することなく符号量が削減できるという効果を奏する。
【０３５３】
（変形例３−Ａ）
また、係数レベル復号部１２５ａは、変換スキップ時、あるいは、変換量子化バイパス時に、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightの代わりに、ＴＵサイズの対数値log2TrafoSize(=(log2TrafoWidth+log2TrafoHeight)>>1)に基づいてコンテキストインデックスctxIdxを導出してもよい。例えば、図３１（ｂ）に示すＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ log2TrafoSize-2 ] を参照して、次式により導出する。
【０３５４】
ctxIdx = TBL_CTX_IDX[ log2TrafoSize- 2 ] + offset・・・(eq.C-2)
上記式(eq.C-2)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、ＧＲ２フラグの場合、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値である。
【０３５５】
一般的に、非正方形であるＴＵサイズは、正方形であるＴＵサイズと比較して出現頻度が小さい。そのため、非正方形であるＴＵサイズと要素数が等しい正方形であるＴＵサイズとで、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグのコンテキストを共有することによる符号化効率の改善幅の低下は軽微である。従って、変換スキップ、あるいは変換量子化バイパス用に、新たに導入する画素領域におけるＧＲ１フラグ、及びＧＲ２フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０３５６】
（変形例３―Ｂ）
係数レベル復号部１２５ａは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領係数にＧＲ１フラグ及びＧＲ２フラグ対するコンテキストインデックスctxIdxを予測タイプPredTypeとＴＵの横幅サイズとＴＵの縦幅サイズに対応する相対コンテキストインデックスに基づいて導出してもよい。例えば、図３２に示す予測タイプPredTypeとＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightとに対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[PredType][ log2TrafoWidth-2 ][ log2TrafoHeight -2 ]を参照して、次式によりＧＲ１フラグ、およびＧＲ２フラグのコンテキストインデックスを導出する。
【０３５７】
ctxIdx = TBL_CTX_IDX[PredType][ log2TrafoWidth-2 ][ log2TrafoHeight-2 ]
+ offset・・・(eq.C-3)
上記式(eq.C-3)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、ＧＲ２フラグの場合、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値である。
【０３５８】
ここで、予測タイプPredTypeは、イントラ予測の場合、値は０をとり、インター予測の場合、値は１をとるものとする。
【０３５９】
一般的に、変換スキップ、あるいは変換量子化バイパスが実施される場合、復号対象となる画素領域におけＧＲ１フラグ、およびＧＲ２フラグの出現確率は、イントラ予測とインター予測において異なるため、予測タイプ毎にＧＲ１フラグ、ＧＲ２フラグに関するコンテキストを区別することが好ましい。すなわち、上記係数レベル復号部１２５ａによれば、画素領域におけるＧＲ１フラグ、またはＧＲ２フラグに対して、予測タイプとＴＵサイズ毎に適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグ、ＧＲ２フラグの符号量を削減することができるので、ＧＲ１フラグ、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０３６０】
（変形例３−Ｃ）
また、上記係数値レベル復号部１２５ａは、変換スキップ時、あるいは、変換量子化バイパス時に、ＴＵ横幅サイズの対数値log2TrafoWidthとＴＵ縦幅サイズの対数値log2TrafoHeightの代わりに、ＴＵサイズの対数値log2TrafoSize(=(log2TrafoWidth+log2TrafoHeight)>>1)と予測タイプに基づいてコンテキストインデックスctxIdxを導出してもよい。例えば、図３３に示す予測タイプPredTypeとＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType ][ log2TrafoSize-2 ]を参照して、次式により導出する。
【０３６１】
ctxIdx = TBL_CTX_IDX[ PredType ][ log2TrafoSize- 2 ] + offset・・・(eq.C-4)
上記式(eq.C-4)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、ＧＲ２のフラグの場合、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値である。
【０３６２】
非正方形であるＴＵサイズは、正方形であるＴＵサイズと比較して出現頻度が小さい。そのため、非正方形であるＴＵサイズと要素数が等しい正方形であるＴＵサイズとで、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグのコンテキストを共有することによる符号化効率の改善幅の低下は軽微である。以上、係数値レベル復号部１２５ａは、変換スキップ、あるいは変換量子化バイパス用に、新たに予測タイプ毎に導入する画素領域におけるＧＲ１フラグ、及びＧＲ２フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０３６３】
（変形例３−Ｄ）
上記係数値レベル復号部１２５ａは、ＧＲ１フラグ、及びＧＲ２フラグに関して、ＴＵサイズや予測タイプによって、独立のコンテキストインデックスを導出する例について説明したが、これに限定されない。例えば、係数値レベル復号部１２５ａは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領域におけるＧＲ１フラグ、または、ＧＲ２フラグに対して、固定のコンテキストインデックスを割り当ててもよい。すなわち、
ctxIdx = offset ・・・(eq.C-5)
上記式(eq.C-5)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、ＧＲ２のフラグの場合、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値である。
【０３６４】
これによって、新たに導入する画素領域におけるＧＲ１フラグ、ＧＲ２フラグに関するコンテキスト数を抑制すると共に、符号化効率の改善の効果を奏する。
【０３６５】
(変形例３−Ｅ)
また、上記係数値レベル復号部１２５ａでは、変換スキップ時と変換量子化バイパス時において、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグに関するコンテキストインデックスを共通にしているが、変換スキップ時と変換量子化バイパス時において、個別のコンテキストインデックスを割り当ててもよい。一般的に、変換スキップ時と変換量子化バイパス時とでは、画素領域におけるＧＲ１フラグ、及びＧＲ２フラグの出現確率は異なるため、ＧＲ１フラグ及びＧＲ２フラグに関するコンテキストを、変換スキップ時と変換量子化バイパス時とで区別することが好ましい。例えば、図３４に示すように、変換スキップと変換量子化バイパスを識別する識別子indexと、ＴＵサイズの対数値log2TrafoSizeと対応する相対コンテキストインデックスのテーブルTBL_CTX_IDX[ PredType ][ log2TrafoSize-2 ] を参照して、次式により導出する。
【０３６６】
ctxIdx = TBL_CTX_IDX[ index ][ log2TrafoSize- 2 ] + offset・・・(eq.C-6)
なお上記式において識別子indexは、変換スキップ時に値０をとり、変換量子化バイパス時に値１をとるものとする。
上記式(eq.C-6)において、変数offsetは、ＧＲ１フラグの場合、周波数領域におけるＧＲ１フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ１フラグのコンテキストインデックスとを識別するための所定のオフセット値である。同様に、周波数領域におけるＧＲ２フラグのコンテキストインデックスと、変換スキップ、あるいは変換量子化バイパスが適用される場合のＧＲ２フラグのコンテキストインデックスとを識別するための所定のオフセット値である。
【０３６７】
以上、係数値レベル復号部１２５ａによれば、変換スキップ時と変換量子化バイパス時のそれぞれに対して、画素領域におけるＧＲ１フラグ及びＧＲ２フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグ、ＧＲ２フラグの符号量を削減することができるので、ＧＲ１フラグ、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０３６８】
（変形例３−Ｆ）
また、上記係数レベル復号部１２５ａは、ＧＲ１フラグ及びＧＲ２フラグの両方に対して、変換スキップ、あるいは変換量子化バイパス時に、周波数領域のＧＲ１フラグ、ＧＲ２フラグとは独立のコンテキストインデックスを導出するが、これに限定されない。
【０３６９】
係数値レベル復号部１２５ａは、変換スキップ、あるいは変換量子化バイパス時に、少なくともＧＲ１フラグに対して、変形例３−Ａ〜変形例３−Ｅのいずれかの方法により、周波数領域のＧＲ１フラグと独立のコンテキストを導出し、ＧＲ２フラグは、周波数領域のＧＲ２フラグのコンテキストと共有する構成としてもよい。すなわち、周波数領域におけるＧＲ２フラグと同様に方法(既述の式(eq.C-1)及び(eq.B-2))によってコンテキストインデックスctxIdxを導出する。
【０３７０】
なぜならば、係数値レベル復号部１２５ａにおいて、ＧＲ１フラグは、サブブロック内において複数発生しうるが、ＧＲ２フラグは、サブブロック内で最高でも１個しか出現しない（すなわち、ＧＲ２フラグの出現頻度は小さい）。そのため、変換スキップ時、あるいは変換量子化バイパス時のＧＲ２フラグに関するコンテキストを、周波数領域におけるＧＲ２フラグに関するコンテキストと共有することによる、符号化効率の改善幅の低減は小さい。そのため、ＧＲ２フラグに関するコンテキスト数の増加を抑制しつつ、ＧＲ
１フラグ、ＧＲ２フラグの符号量を削減することができるので、ＧＲ１フラグ、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善する効果を奏する。
【０３７１】
（変形例３−Ｇ）
変換スキップ、あるいは変換量子化バイパスが実施されない場合、周波数領域におけるＧＲ１フラグ、及びＧＲ２フラグに関するコンテキストインデックスは、復号対象変換ブロック内の対象サブブロックより前に復号したサブブロック内の変換係数レベルabslevelが２以上(GR1フラグの値が１)となる係数の個数numGreater1と、復号済ＧＲ１フラグの値が０である個数を表わす変数greatr1Ctxの個数に応じて導出されている。そのため、各ＧＲ１フラグ、ＧＲ２フラグのコンテキストインデックスは、復号対象となるＧＲ１フラグより１つ前のＧＲ１フラグが復号されなければ決定できない。すなわち、サブブロック内の各係数位置におけるＧＲ１フラグ、及びＧＲ２フラグに関して並列でコンテキストインデックスを導出することができない課題がある。
以下では、係数値レベル復号部１２５ａにおけるＧＲ１フラグ及び、ＧＲ２フラグのコンテキストインデックスの導出に関して、隣接サブブロックに非０係数があるか否かに応じて、導出パターンを選択し、選択した導出パターンに従って、サブブロック内の位置からＧＲ１フラグおよびＧＲ２フラグのコンテキストインデックスを導出する例について説明する。この場合、係数レベル復号部１２５ａは図示されない隣接サブブロック係数有無コンテキスト導出部１２４ｃを備える。
【０３７２】
処理対象のサブブロックＸについて、サブブロックＸの右隣接サブブロックＡおよび下隣接サブブロックＢにおける非０係数の状態から以下のパターンを求める。
【０３７３】
（パターン０） 右隣接サブブロック（ｘＣＧ＋１，ｙＣＧ）および下隣接サブブロック（ｘＣＧ，ｙＣＧ＋１）のいずれにおいてもサブブロック係数有無フラグの値が０である場合。
【０３７４】
（パターン１） 右隣接サブブロック（ｘＣＧ＋１，ｙＣＧ）においてサブブロック係数有無フラグの値が１であり、かつ下隣接サブブロック（ｘＣＧ，ｙＣＧ＋１）においてサブブロック係数有無フラグの値が０である場合。
【０３７５】
（パターン２） 右隣接サブブロック（ｘＣＧ＋１，ｙＣＧ）においてサブブロック係数有無フラグの値が０であり、かつ下隣接サブブロック（ｘＣＧ，ｙＣＧ＋１）においてサブブロック係数有無フラグの値が１である場合。
【０３７６】
（パターン３） 右隣接サブブロック（ｘＣＧ＋１，ｙＣＧ）および下隣接サブブロック（ｘＣＧ，ｙＣＧ＋１）の両方においてサブブロック係数有無フラグの値が１である場合。
【０３７７】
そして、上記パターンを示すパターンインデックスidxCGを、下記式（Ｘ）を用いて求める。
【０３７８】
idxCG = significant_coeff_group_flag[xCG + 1][yCG] + (significant_coeff_group_flag[xCG][yCG + 1] << 1)・・・（Ｘ）
そして、パターンインデックスidxCGに応じて、図４１に示す方法で、サブブロックＸ内の座標（ｘＢ，ｙＢ）を用いてコンテキストインデックスを導出する。図４１を参照しながら、パターン０〜３のそれぞれの場合において導出されるコンテキストインデックスの値について説明すると次のとおりである。
【０３７９】
（パターン０の場合）
パターン０の場合、sigCtx = (xB + yB <= 2) ? 1 : 0 によりコンテキストインデックスを導出する。
【０３８０】
コンテキストインデックスの値は、図４２（ａ）に示すような配置となる。
【０３８１】
（パターン１の場合）
パターン１の場合、sigCtx = (yB <= 1) ? 1 : 0 によりコンテキストインデックスを導出する。
【０３８２】
よって、図４２（ｂ）に示すように、サブブロックの第１行目および第２行目では、コンテキストインデックスの値が１となり、サブブロックの第３行目および第４行目では、コンテキストインデックスの値が０となる。
【０３８３】
（パターン２の場合）
パターン２の場合、sigCtx = (xB <= 1) ? 1 : 0 によりコンテキストインデックスを導出する。
【０３８４】
よって、図４２（ｃ）に示すように、サブブロックの第１列目および第２列目では、コンテキストインデックスの値が１となり、サブブロックの第３列目および第４列目では、コンテキストインデックスの値が０となる。
【０３８５】
（パターン３の場合）
パターン３の場合、sigCtx = (xB + yB <= 4) ? 2 : 1 によりコンテキストインデックスを導出する。
【０３８６】
よって、パターン３の場合、サブブロック内での座標（ｘＢ,ｙＢ）の水平方向の座標ｘＢと、垂直方向の座標ｙＢとの和が４以下であれば、コンテキストインデックスの値は、“１”であり、そうでなければ、コンテキストインデックスの値は、“０”である。
【０３８７】
これにより、コンテキストインデックスの値は、図４２（ｄ）に示すような配置となる。
【０３８８】
また、次のように構成することもできる。
【０３８９】
図２８および図２９を用いて説明する。図２８は、パターンインデックスidxCGに従って、処理対象の周波数成分のサブブロック内での座標からＧＲ１フラグ、ＧＲ２フラグに関するコンテキストインデックスを導出するための疑似コードの例を示す図である。図２９は、図２８に示す疑似コードによるコンテキストインデックス導出方法におけるコンテキストインデックスの値の配置を示す図である。
【０３９０】
図２８および図２９を参照しながら、パターン０〜３のそれぞれの場合において導出されるコンテキストインデックスの値について説明すると次のとおりである。なお、図２９に示す網掛け部分は、図４２に示すコンテキストインデックスの値の配置からの変更部分である。
【０３９１】
（パターン０の場合）
パターン０の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、ｘＢ＋ｙＢの値に応じて、次のようにコンテキストインデックスを導出する。
【０３９２】
ｘＢ＋ｙＢが、０以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=2を導出する。また、ｘＢ＋ｙＢが、１より大きく、かつ２以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=1を導出する。これら以外の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=0を導出する。これにより、コンテキストインデックスの値は、図２９（ａ）に示すような配置となる。
【０３９３】
（パターン１の場合）
パターン１の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、ｙＢの値に応じて、次のようにコンテキストインデックスを導出する。
【０３９４】
ｙＢが、０以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=2を導出する。また、ｙＢが、０より大きく、かつ１以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=1を導出する。これら以外の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=0を導出する。これにより、コンテキストインデックスの値は、図２９（ｂ）に示すような配置となる。
【０３９５】
すなわち、図２９（ｂ）に示すように、サブブロックの第１行目では、コンテキストインデックスの値が２となり、サブブロックの第２行目では、コンテキストインデックスの値が１となる。また、サブブロックの第３行目および第４行目では、コンテキストインデックスの値が０となる。
【０３９６】
（パターン２の場合）
パターン２の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、ｘＢの値に応じて、次のようにコンテキストインデックスを導出する。
【０３９７】
ｘＢが、０以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=2を導出する。また、ｘＢが、０より大きく、かつ１以下である場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=1を導出する。これら以外の場合、隣接サブブロック係数有無コンテキスト導出部１２４ｃは、sigCtx=0を導出する。これにより、コンテキストインデックスの値は、図２９（ｃ）に示すような配置となる。
【０３９８】
すなわち、図２９（ｃ）に示すように、サブブロックの第１列目では、コンテキストインデックスの値が２となり、サブブロックの第２列目では、コンテキストインデックスの値が１となる。また、サブブロックの第３列目および第４列目では、コンテキストインデックスの値が０となる。
【０３９９】
（パターン３の場合）
パターン３の場合、図２９（ｄ）に示すように隣接サブブロック係数有無コンテキスト導出部１２４ｃは、ｘＢおよびｙＢの値によらずサブブロック内で一様にsigCtx=2を導出する。
【０４００】
以上、上記構成によれば、隣接サブブロックに非０係数があるか否かに応じて、導出パターンを選択し、選択した導出パターンに従って、サブブロック内の位置からＧＲ１フラグ、およびＧＲ２フラグのコンテキストインデックスを導出することができる。そのため、各ＧＲ１フラグ、ＧＲ２フラグのコンテキストインデックスは、復号対象となるＧＲ１フラグより１つ前のＧＲ１フラグに依存しないで、サブブロック内の各係数位置におけるＧＲ１フラグ、ＧＲ２フラグに関するコンテキストインデックスを並列で導出することができる効果を奏する。
【０４０１】
＜変換係数復号部１２０による処理の流れ＞
以下では、変換係数復号部１２０による変換係数復号処理の流れについて、図２３〜２６を参照して説明する。
【０４０２】
図２４は、ＴＵサイズが所定のサイズより大きい場合の変換係数復号部１２０による変換係数復号処理の流れを示すフローチャートである。
【０４０３】
（ステップＳ２０）
まず、変換係数復号部１２０の備える変換スキップ・変換バイパスフラグ復号部１２８は、変換量子化バイパスをするか否かを示すシンタックスtransquant_bypass_flag、および変換スキップをするか否かを示すシンタックスtransform_skip_flagを復号する。なお、詳細な復号処理については既に説明しているため、省略する。
【０４０４】
（ステップＳ２１）
続いて、変換係数復号部１２０の備える係数復号制御部１２３は、スキャンタイプScanTypeを選択する。
【０４０５】
（ステップＳ２２）
続いて、変換係数復号部１２０の備えるラスト係数位置復号部１２１は、順スキャンに沿って最後の変換係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。
【０４０６】
（ステップＳ２３）
続いて、係数復号制御部１２３は、サブブロックを単位とするループを開始する。なお、ラスト係数のあるサブブロックをループの開始位置とし、サブブロックスキャンの逆スキャン順に、サブブロック単位の復号処理が行われる。
【０４０７】
（ステップＳ２４）
続いて、変換係数復号部１２０の備えるサブブロック係数有無フラグ復号部１２７は、サブブロック係数有無フラグsignificant_coeff_group_flagを復号する。
【０４０８】
（ステップＳ２５）
続いて、変換係数復号部１２０の備える係数有無フラグ復号部１２４は、対象サブブロック内の各係数有無フラグsignificant_coeff_flagを復号する。
【０４０９】
（ステップＳ２６）
続いて、変換係数復号部１２０の備える係数値復号部１２５は、対象サブグループ内の非０係数の符号及び大きさを復号する。これは、各シンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、coeff_abs_level_remainingを復号することによって行われる。
【０４１０】
（ステップＳ２７）
本ステップは、サブブロックを単位とするループの終端である。（ステップＳ２３のサブブロックを単位とするループの終端）
＜＜スキャンインデックス設定処理＞＞
図２３は、スキャンタイプを選択する処理（ステップＳ２１）をより具体的に説明するためのフローチャートである。
【０４１１】
（ステップＳ１１１）
まず、変換係数復号部１２０の備える係数復号制御部１２３は、予測方式情報ＰｒｅｄＭｏｄｅが、イントラ予測方式ＭＯＤＥ＿ＩＮＴＲＡを示しているか否かを判別する。
【０４１２】
（ステップＳ１１２）
予測方式がイントラ予測方式であるとき（ステップＳ１１１でＹｅｓ）、変換係数復号部１２０の備える係数復号制御部１２３は、イントラ予測モード（予測方向）及び対象のＴＵサイズ（周波数領域のサイズ）に基づいて、スキャンタイプを設定する。具体的なスキャンタイプの設定処理については、すでに述べたため、ここでは説明を省略する。
【０４１３】
一方で、予測方式がイントラ予測方式でないとき（ステップＳ１１１でＮｏ）、変換係数復号部１２０の備える係数復号制御部１２３は、スキャンタイプを斜め方向スキャンに設定する。
＜＜サブブロック係数有無フラグの復号処理＞＞
図２５は、サブブロック係数有無フラグを復号する処理（ステップＳ２４）をより具体的に説明するためのフローチャートである。
【０４１４】
サブブロック係数有無フラグ復号部１２７は、サブブロックのループを開始する前に対象周波数領域に含まれるサブブロック係数有無フラグsignificant_coeff_group_flagの値を初期化する。この初期化処理は、ＤＣ係数を含むサブブロックのサブブロック係数有無フラグと、ラスト係数を含むサブブロックのサブブロック係数有無フラグとを１に設定し、その他のサブブロック係数有無フラグを０に設定することによって行われる。
【０４１５】
（ステップＳ２４４）
サブブロック係数有無フラグ復号部１２７は、サブブロックの位置を取得する。
【０４１６】
（ステップＳ２４７）
サブブロック係数有無フラグ復号部１２７は、対象サブブロックがラスト係数を含むサブブロック、もしくはＤＣ係数であるか否かを判別する。
【０４１７】
（ステップＳ２４８）
対象サブブロックがラスト係数を含むサブブロック、もしくはＤＣ係数でないとき（ステップＳ２４７でＮｏ）、係数有無フラグ復号部１２４は、サブブロック係数有無フラグsignificant_coeff_group_flagを復号する。
＜＜係数有無フラグの復号処理＞＞
図２６は、サブブロック内の各係数有無フラグsignificant_coeff_flagを復号する処理（図２４のステップＳ２７）をより具体的に説明するためのフローチャートである。
【０４１８】
（ステップＳ２７４）
続いて、係数有無フラグ復号部１２４は、対象サブブロック内のループを開始する。当該ループは、周波数成分を単位とするループである。
【０４１９】
（ステップＳ２７５）
続いて、係数有無フラグ復号部１２４は、変換係数の位置を取得する。
【０４２０】
（ステップＳ２７６）
続いて、係数有無フラグ復号部１２４は、対象サブブロックに非０係数が存在するか否かを判別する。
【０４２１】
（ステップＳ２７７）
対象サブブロックに非０係数が存在する場合（ステップＳ２７６でＹｅｓ）、係数有無フラグ復号部１２４は、取得した変換係数の位置がラスト位置であるか否かを判別する。
【０４２２】
（ステップＳ２７８）
取得した変換係数の位置がラスト位置でないとき（ステップＳ２７７でＮｏ）、係数有無フラグ復号部１２４は、係数有無フラグsignificant_coeff_flagを復号する。
【０４２３】
（動画像符号化装置２）
本実施形態に係る動画像符号化装置２の構成について図面を参照して説明する。動画像符号化装置２は、Ｈ．２６４／ＭＰＥＧ−４ ＡＶＣ規格に採用されている技術、および、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている技術を実装している符号化装置である。以下では、既に説明した部分と同じ部分については同じ符号を付し、その説明を省略する。
【０４２４】
図５０は、動画像符号化装置２の構成を示すブロック図である。図５０に示すように、動画像符号化装置２は、予測画像生成部２１、変換・量子化部２２、逆量子化・逆変換部２３、加算器２４、フレームメモリ２５、ループフィルタ２６、可変長符号符号化部２７、および、減算器２８を備えている。また、図５０に示すように、予測画像生成部２１は、イントラ予測画像生成部２１ａ、動きベクトル検出部２１ｂ、インター予測画像生成部２１ｃ、予測方式制御部２１ｄ、および、動きベクトル冗長性削除部２１ｅを備えている。動画像符号化装置２は、動画像＃１０（符号化対象画像）を符号化することによって、符号化データ＃１を生成する装置である。
【０４２５】
（予測画像生成部２１）
予測画像生成部２１は、処理対象ＬＣＵを、１または複数の下位ＣＵに再帰的に分割し、各リーフＣＵをさらに１または複数のパーティションに分割し、パーティション毎に、画面間予測を用いたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒ、または、画面内予測を用いたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。生成されたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒおよびイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａは、予測画像Ｐｒｅｄとして、加算器２４および減算器２８に供給される。
【０４２６】
なお、予測画像生成部２１は、スキップモードの適応されたＰＵについては、当該ＰＵに属する他のパラメータの符号化を省略する。また、（１）対象ＬＣＵにおける下位ＣＵおよびパーティションへの分割の態様、（２）スキップモードを適用するか否か、および、（３）パーティション毎にインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒおよびイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａの何れを生成するか、は、符号化効率を最適化するように決定される。
【０４２７】
（イントラ予測画像生成部２１ａ）
イントラ予測画像生成部２１ａは、画面内予測によって、各パーティションに関する予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。具体的には、（１）各パーティションついてイントラ予測に用いる予測モードを選択し、（２）選択した予測モードを用いて、復号画像Ｐから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。イントラ予測画像生成部２１ａは、生成したイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを、予測方式制御部２１ｄに供給する。
【０４２８】
また、イントラ予測画像生成部２１ａは、対象パーティションの周辺のパーティションに割り付けられた予測モードから対象パーティションに対する推定予測モードを決定し、当該推定予測モードと、対象パーティションについて実際に選択された予測モードとが同じであるか否かを示す推定予測モードフラグを、イントラ予測パラメータＰＰ＿Ｉｎｔｒａの一部として、予測方式制御部２１ｄを介して可変長符号符号化部２７に供給し、可変長符号符号化部２７は、当該フラグを、符号化データ＃１に含める構成とする。
【０４２９】
また、イントラ予測画像生成部２１ａは、対象パーティションについての推定予測モードと、対象パーティションについて実際に選択された予測モードとが異なる場合には、対象パーティションについての予測モードを示す残余予測モードインデックスを、イントラ予測パラメータＰＰ＿Ｉｎｔｒａの一部として、予測方式制御部２１ｄを介して可変長符号符号化部２７に供給し、可変長符号符号化部２７は当該残余予測モードインデックスを符号化データ＃１に含める構成とする。
【０４３０】
なお、イントラ予測画像生成部２１ａは、予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する際に、図１１に示した予測モードからより符号化効率が向上する予測モードを選択して適用する。
【０４３１】
（動きベクトル検出部２１ｂ）
動きベクトル検出部２１ｂは、各パーティションに関する動きベクトルｍｖを検出する。具体的には、（１）参照画像として利用する適応フィルタ済復号画像Ｐ＿ＡＬＦ’を選択し、（２）選択した適応フィルタ済復号画像Ｐ＿ＡＬＦ’において対象パーティションを最良近似する領域を探索することによって、対象パーティションに関する動きベクトルｍｖを検出する。ここで、適応フィルタ済復号画像Ｐ＿ＡＬＦ’は、既にフレーム全体の復号が完了した復号済みの復号画像に対して、ループフィルタ２６による適応的フィルタ処理を施すことによって得られる画像であり、動きベクトル検出部２１ｂは、適応フィルタ済復号画像Ｐ＿ＡＬＦ’を構成する各画素の画素値をフレームメモリ２５から読み出すことができる。動きベクトル検出部２１ｂは、検出した動きベクトルｍｖを、参照画像として利用した適応フィルタ済復号画像Ｐ＿ＡＬＦ’を指定する参照画像インデックスＲＩと共に、インター予測画像生成部２１ｃ及び動きベクトル冗長性削除部２１ｅに供給する。
【０４３２】
（インター予測画像生成部２１ｃ）
インター予測画像生成部２１ｃは、画面間予測によって、各インター予測パーティションに関する動き補償画像ｍｃを生成する。具体的には、動きベクトル検出部２１ｂから供給された動きベクトルｍｖを用いて、動きベクトル検出部２１ｂから供給された参照画像インデックスＲＩによって指定される適応フィルタ済復号画像Ｐ＿ＡＬＦ’から動き補償画像ｍｃを生成する。動きベクトル検出部２１ｂと同様に、インター予測画像生成部２１ｃは、適応フィルタ済復号画像Ｐ＿ＡＬＦ’を構成する各画素の画素値をフレームメモリ２５から読み出すことができる。インター予測画像生成部２１ｃは、生成した動き補償画像ｍｃ（インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒ）を、動きベクトル検出部２１ｂから供給された参照画像インデックスＲＩと共に、予測方式制御部２１ｄに供給する。
【０４３３】
（予測方式制御部２１ｄ）
予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａ及びインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを符号化対象画像と比較し、イントラ予測を行うかインター予測を行うかを選択する。イントラ予測を選択した場合、予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器２４及び減算器２８に供給すると共に、イントラ予測画像生成部２１ａから供給されるイントラ予測パラメータＰＰ＿Ｉｎｔｒａを可変長符号符号化部２７に供給する。一方、インター予測を選択した場合、予測方式制御部２１ｄは、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器２４及び減算器２８に供給すると共に、参照画像インデックスＲＩ、並びに、後述する動きベクトル冗長性削除部２１ｅから供給された推定動きベクトルインデックスＰＭＶＩ及び動きベクトル残差ＭＶＤをインター予測パラメータＰＰ＿Ｉｎｔｅｒとして可変長符号符号化部２７に供給する。また、予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａ及びインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒのうち何れの予測画像を選択したのかを示す予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅを可変長符号符号化部２７に供給する。
【０４３４】
（動きベクトル冗長性削除部２１ｅ）
動きベクトル冗長性削除部２１ｅは、動きベクトル検出部２１ｂによって検出された動きベクトルｍｖにおける冗長性を削除する。具体的には、（１）動きベクトルｍｖの推定に用いる推定方法を選択し、（２）選択した推定方法に従って推定動きベクトルｐｍｖを導出し、（３）動きベクトルｍｖから推定動きベクトルｐｍｖを減算することにより動きベクトル残差ＭＶＤを生成する。動きベクトル冗長性削除部２１ｅは、生成した動きベクトル残差
ＭＶＤを、選択した推定方法を示す推定動きベクトルインデックスＰＭＶＩと共に、予測方式制御部２１ｄに供給する。
【０４３５】
（変換・量子化部２２）
変換・量子化部２２は、通常（変換スキップフラグを実施しない場合(transform_skip_flag==0)、かつ、変換量子化バイパスを実施しない場合(transquant_bypass_flag==0)）、（１）符号化対象画像から予測画像Ｐｒｅｄを減算した予測残差Ｄに対してブロック（変換単位）毎にＤＣＴ変換（Discrete Cosine Transform）等の周波数変換を施し、（２）周波数変換により得られた変換係数Ｃｏｅｆｆ＿ＩＱを量子化し、（３）量子化により得られた変換係数Ｃｏｅｆｆを可変長符号符号化部２７及び逆量子化・逆変換部２３に供給する。また、変換量子化バイパスを実施する場合（transquant_bypass_flag==1）、変換・量子化部２２は、（１）符号化対象画像から予測画像Ｐｒｅｄを減算した予測残差Ｄをブロック（変換単位）毎に、可変長符号符号化部２７及び逆量子化・逆変換部２３に供給する。また、変換スキップを実施する場合（transform_skip_flag==1）、変換・量子化部２２は、（１）符号化対象画像から予測画像Ｐｒｅｄを減算した予測残差Ｄを、ブロック（変換単位）毎に量子化し、（２）量子化により得られた変換係数Ｃｏｅｆｆ（量子化された予測残差Ｄ）を可変長符号符号化部２７及び逆量子化・逆変換部２３に供給する。
【０４３６】
なお、変換・量子化部２２は、（１）量子化の際に用いる量子化ステップＱＰをＴＵ毎に選択し、（２）選択した量子化ステップＱＰの大きさを示す量子化パラメータ差分Δｑｐを可変長符号符号化部２７に供給し、（３）選択した量子化ステップＱＰを逆量子化・逆変換部２３に供給する。ここで、量子化パラメータ差分Δｑｐとは、周波数変換及び量子化するＴＵに関する量子化パラメータｑｐ（例えばＱＰ＝２ｐｑ／６）の値から、直前に周波数変換及び量子化したＴＵに関する量子化パラメータｑｐ’の値を減算して得られる差分値のことを指す。
【０４３７】
なお、変換・量子化部２２は、変換スキップをするか否か、および変換量子化バイパスをするか否かを決定する。変換スキップをする場合は、変換スキップフラグ(transform_skip_flag)の値を１に設定する。変換スキップをしない場合は、変換スキップフラグの値を０に設定する。また、変換量子化バイパスを実施する場合は、変換量子化バイパスフラグ(transquant_bypass_flag)の値を１に設定する。変換量子化バイパスをしない場合は、変換量子化バイパスフラグの値を０に設定する。なお、変換スキップフラグ、および変換量子化バイパスフラグは、可変長符号符号化部２７、および逆量子化・逆変換部２３へ供給される。
【０４３８】
なお、変換・量子化部２２によって行われるＤＣＴ変換は、例えば、対象ブロックのサイズが８×８画素である場合、水平方向の周波数ｕおよび垂直方向の周波数ｖについての量子化前の変換係数をＣｏｅｆｆ＿ＩＱ（ｕ、ｖ）（０≦ｕ≦７、０≦ｖ≦７）と表すことにすると、例えば、以下の数式（２）によって与えられる。
【０４３９】
【数２】
2020171063.tif 000004
ここで、Ｄ（ｉ、ｊ）（０≦ｉ≦７、０≦ｊ≦７）は、対象ブロックにおける位置（ｉ、ｊ）での予測残差Ｄを表している。また、Ｃ（ｕ）およびＣ（ｖ）は、以下のように与えられる。
【０４４０】
・Ｃ（ｕ）＝１／√２ （ｕ＝０）
・Ｃ（ｕ）＝１ （ｕ≠０）
・Ｃ（ｖ）＝１／√２ （ｖ＝０）
・Ｃ（ｖ）＝１ （ｖ≠０）
なお、変換スキップが実施される場合、周波数変換は施されないため、当該対象ブロックにおける画素の位置（ｉ，ｊ）における予測残差Ｄ（ｉ，ｊ）と量子化前の変換係数Ｃｏｅｆｆ＿ＩＱ（ｕ、ｖ）は次式のように等価である。
【０４４１】
Ｃｏｅｆｆ＿ＩＱ（ｕ，ｖ）＝Ｄ（ｉ，ｊ） （ｕ＝ｉ、ｖ＝ｊ）
また、変換量子化バイパスが実施される場合、周波数変換、及び量子化は施されないため、当該対象ブロックにおける画素の位置（ｉ，ｊ）における予測残差Ｄ（ｉ，ｊ）と変換係数Ｃｏｅｆｆ（ｕ、ｖ）は次式のように等価である。
【０４４２】
Ｃｏｅｆｆ（ｕ，ｖ）＝Ｄ（ｉ，ｊ） （ｕ＝ｉ、ｖ＝ｊ）
（逆量子化・逆変換部２３）
逆量子化・逆変換部２３は、通常（変換スキップフラグを実施しない場合(transform_skip_flag==0)、かつ、変換量子化バイパスを実施しない場合(transquant_bypass_flag==0)）、（１）量子化された変換係数Ｃｏｅｆｆを逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱに対して逆ＤＣＴ（Discrete Cosine Transform）変換等の逆周波数変換を施し、（３）逆周波数変換によって得られた予測残差Ｄを加算器２４に供給する。また、変換量子化バイパスを実施する場合（transquant_bypass_flag==1）、逆量子化・逆変換部２３は、（１）変換係数Ｃｏｅｆｆ（予測残差Ｄと等価）を加算器２４に供給する。また、変換スキップを実施する場合（transform_skip_flag==1）、逆量子化・逆変換部２３は、（１）量子化された変換係数Ｃｏｅｆｆ（量子化された予測残差Ｄと等価）を逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱ（予測残差Ｄと等価）を加算器１４に供給する。量子化された変換係数Ｃｏｅｆｆを逆量子化する際には、変換・量子化部２２から供給された量子化ステップＱＰを利用する。なお、逆量子化・逆変換部２３から出力される予測残差Ｄは、変換・量子化部２２に入力される予測残差Ｄに量子化誤差が加わったものであるが、ここでは簡単のために共通の呼称を用いる。逆量子化・逆変換部２３のより具体的な動作は、動画像復号装置１の備える逆量子化・逆変換部１３とほぼ同様である。
【０４４３】
（加算器２４）
加算器２４は、予測方式制御部２１ｄにて選択された予測画像Ｐｒｅｄを、逆量子化・逆変換部２３にて生成された予測残差Ｄに加算することによって、（局所）復号画像Ｐを生成する。加算器２４にて生成された（局所）復号画像Ｐは、ループフィルタ２６に供給されると共にフレームメモリ２５に格納され、イントラ予測における参照画像として利用される。
【０４４４】
（可変長符号符号化部２７）
可変長符号符号化部２７は、（１）変換・量子化部２２から供給された量子化後の変換係数Ｃｏｅｆｆ、Δｑｐ、変換スキップフラグ、並びに変換量子化バイパスフラグ、（２）予測方式制御部２１ｄから供給された量子化パラメータＰＰ（インター予測パラメータＰＰ＿Ｉｎｔｅｒ、および、イントラ予測パラメータＰＰ＿Ｉｎｔｒａ）、（３）予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅ、および、（４）ループフィルタ２６から供給されたフィルタパラメータＦＰを可変長符号化することによって、符号化データ＃１を生成する。
【０４４５】
図５１は、可変長符号符号化部２７の構成を示すブロック図である。図５１に示すように、可変長符号符号化部２７は、量子化後の変換係数Ｃｏｅｆｆを符号化する量子化残差情報符号化部２７１、予測パラメータＰＰを符号化する予測パラメータ符号化部２７２、予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅを符号化する予測タイプ情報符号化部２７３、および、フィルタパラメータＦＰを符号化するフィルタパラメータ符号化部２７４を備えている。量子化残差情報符号化部２７１の具体的な構成については後述するためここでは説明を省略する。
【０４４６】
（減算器２８）
減算器２８は、予測方式制御部２１ｄにて選択された予測画像Ｐｒｅｄを、符号化対象画像から減算することによって、予測残差Ｄを生成する。減算器２８にて生成された予測残差Ｄは、変換・量子化部２２によって周波数変換及び量子化される。
【０４４７】
（ループフィルタ２６）
ループフィルタ２６は、（１）復号画像Ｐにおけるブロック境界、またはパーティション境界の周辺の画像の平滑化（デブロック処理）を行うデブロッキングフィルタ（DF:Deblocking Filter）としての機能と、（２）デブロッキングフィルタが作用した画像に対して、フィルタパラメータＦＰを用いて適応フィルタ処理を行う適応フィルタ（ALF:Adaptive
Loop Filter）としての機能を有している。
【０４４８】
（量子化残差情報符号化部２７１）
量子化残差情報符号化部２７１は、量子化された変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）をコンテキスト適応型２値算術符号化（ＣＡＢＡＣ：（Context-based Adaptive Binary Arithmetic Coding））することによって、量子化残差情報ＱＤを生成する。生成された量子化残差情報ＱＤに含まれるシンタックスは、既に説明した通りである。
【０４４９】
なお、ｘＣおよびｙＣは、上述のように、周波数領域における各周波数成分の位置を表すインデックスであり、それぞれ、上述した水平方向周波数ｕおよび垂直方向周波数ｖに対応するインデックスである。なお、以下では、量子化された変換係数Ｃｏｅｆｆを、単に、変換係数Ｃｏｅｆｆと呼ぶこともある。
【０４５０】
（量子化残差情報符号化部２７１）
図５２は、量子化残差情報符号化部２７１の構成を示すブロック図である。図５２に示すように、量子化残差情報符号化部２７１は、変換係数符号化部２２０及び算術符号符号化部２３０を備えている。
【０４５１】
（算術符号符号化部２３０）
算術符号符号化部２３０は、変換係数符号化部２２０から供給される各Ｂｉｎをコンテキストを参照して符号化することによって量子化残差情報ＱＤを生成するための構成であり、図５２に示すように、コンテキスト記録更新部２３１及びビット符号化部２３２を備えている。
【０４５２】
（コンテキスト記録更新部２３１）
コンテキスト記録更新部２３１は、各コンテキストインデックスctxIdxによって管理されるコンテキスト変数ＣＶを記録及び更新するための構成である。ここで、コンテキスト変数ＣＶには、（１）発生確率が高い優勢シンボルＭＰＳ（most probable symbol）と、（２）その優勢シンボルＭＰＳの発生確率を指定する確率状態インデックスpStateIdxとが含まれている。
【０４５３】
コンテキスト記録更新部２３１は、変換係数符号化部２２０の備える各部から供給されるコンテキストインデックスctxIdx及びビット符号化部２３２によって符号化されたＢｉｎの値を参照することによってコンテキスト変数ＣＶを更新すると共に、更新されたコンテキスト変数ＣＶを次回更新されるまで記録する。なお、優勢シンボルＭＰＳは０か１である。また、優勢シンボルＭＰＳと確率状態インデックスpStateIdxは、ビット符号化部２３２がＢｉｎを１つ符号化する毎に更新される。
【０４５４】
また、コンテキストインデックスctxIdxは、各周波数成分（あるいは各画素）についてのコンテキストを直接指定するものであってもよいし、処理対象のＴＵ毎に設定されるコンテキストインデックスのオフセットからの増分値であってもよい（以下同様）。
【０４５５】
（ビット符号化部２３２）
ビット符号化部２３２は、コンテキスト記録更新部２３１に記録されているコンテキスト変数ＣＶを参照し、変換係数符号化部２２０の備える各部から供給される各Ｂｉｎを符号化することによって量子化残差情報ＱＤを生成する。また、符号化したＢｉｎの値はコンテキスト記録更新部２３１にも供給され、コンテキスト変数ＣＶを更新するために参照される。
【０４５６】
（変換係数符号化部２２０）
図５２に示すように、変換係数符号化部２２０は、ラスト位置符号化部２２１、スキャン順テーブル格納部２２２、係数符号化制御部２２３、係数有無フラグ符号化部２２４、係数値符号化部２２５、符号化係数記憶部２２６、サブブロック係数有無フラグ符号化部２２７、変換スキップ・変換量子化バイパスフラグ符号化部２２８、及びシンタックス導出部２２９を備えている。
【０４５７】
[変換スキップ・変換量子化バイパスフラグ符号化部２２８]
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、変換・量子化部２２より供給されるシンタックス、変換スキップフラグtransform_skip_flag、および変換量子化バイパスフラグtransquant_bypass_flagを示すＢｉｎを生成する。また、生成した各Ｂｉｎをビット符号化部２３２に供給する。また、シンタックスtransform_skip_flagおよびtransquant_bypass_flagのＢｉｎを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部２３１に供給する。
＜＜変換量子化バイパスフラグ、及び変換スキップフラグの符号化処理１＞＞
以下では、図５３を用いて変換量子化バイパスフラグ、及び変換スキップフラグの符号化処理について具体的に説明する。なお、この符号化処理１は、動画像復号装置１が備える変換スキップ・変換スキップ量子化バイパス復号部１２８における変換量子化バイパスフラグ、及び変換スキップフラグの復号処理１に対応する処理である。
【０４５８】
図５３（ａ）、変換量子化バイパスフラグ、及び変換スキップフラグのシンタックス例を示し、図５３（ｂ）はその符号化処理をより具体的に説明するためのフローチャートである。
【０４５９】
（ステップＳ２０−１）
まず、変換スキップ・変換量子化バイパスフラグ符号化部２２８は、外部より入力された変換量子化バイパス有効フラグ(transquant_bypass_enable_flag)が１であるかを判別する。変換量子化バイパス有効フラグが１である場
合（ステップＳ２０−１においてＹｅｓ）、ステップＳ２０−２Ａへ進む。それ以外である場合（ステップＳ２０−１においてＮｏ）、ステップＳ２０-３Ａへ進む。
【０４６０】
(ステップＳ２０−２Ａ)
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、対象ＴＵに関して、明示的に変換量子化バイパスフラグ(transquant_bypass_flag)を符号化し、ステップＳ２０-４へ進む。
【０４６１】
(ステップＳ２０−３)
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、対象ＴＵに関して、暗黙的に変換量子化バイパスフラグ(transquant_bypass_flag)は０であると解釈し、変換量子化バイパスフラグの符号化をスキップし、ステップＳ２０-４へ進む。
【０４６２】
（ステップＳ２０−４）
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、外部より入力された変換スキップ有効フラグ（transform_skip_enable_flag）が１であるか判別する。変換スキップ有効フラグが１である場合（ステップＳ２０-４においてＹｅｓ）、ステップＳ２０-５へ進む。それ以外の場合（ステップＳ２０-４においてＮｏ）、ステップＳ２０-７Ａへ進む。
【０４６３】
（ステップＳ２０−５）
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、変換バイパスフラグが０であるか否かを判別する。変換バイパスフラグが０である場合（ステップＳ２０-５においてＹｅｓ）、ステップＳ２０−６Ａへ進む。それ以外の場合は、ステップＳ２０-７Ａへ進む。
【０４６４】
（ステップＳ２０−６Ａ）
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、対象ＴＵに関して、明示的に変換スキップフラグ(transform_skip_flag)を符号化する。
【０４６５】
（ステップＳ２０−７Ａ）
変換スキップ・変換量子化バイパスフラグ符号化部２２８は、対象ＴＵに関して、暗黙的に変換スキップフラグ(transform_skip_flag)は０であると解釈し、変換スキップフラグの符号化をスキップする。
【０４６６】
なお、上記変換スキップフラグ、及び変換量子化バイパスフラグの符号化処理は、上記手順に限定されず、実施できる範囲で手順を変更しても構わない。
【０４６７】
例えば、図５４に示すように、ステップＳ２０−５の次に、ＴＵサイズが所定サイズより小さいか否かを判定して（ステップＳ２０−８）、ステップＳ２０−６ＡまたはステップＳ２０−７Ａに進んでもよい。
【０４６８】
以上、上記変換スキップ・変換量子化バイパスフラグ符号化部２２８によれば、従来（図５５参照）に比べて、ＴＵ毎に、変換スキップを実施するか否かをＴＵサイズや予測モードによらず、適切に選択することができる。そのため、符号化及び復号対象となるＴＵに関する変換係数の符号量を削減することができるので、処理量が削減されると共に、符号化効率が向上する。また、変換スキップフラグを符号化するか否かに関する分岐処理を削減することができるため、変換係数の符号化に係る処理量をが軽減することができる。
【０４６９】
[シンタックス導出部２２９]
シンタックス導出部２２９は、変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）の各値を参照し、対象周波数領域におけるこれらの変換係数を特定するためのシンタックスlast_significant_coeff_x、last_significant_coeff_y、significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_remainingの各値を導出する。
導出された各シンタックスは、符号化係数記憶部２２６に供給される。また、導出されたシンタックスのうちlast_significant_coeff_x、last_significant_coeff_yは、係数符号化制御部２２３及びラスト位置符号化部２２１にも供給される。また、導出されたシンタックスのうちsignificant_coeff_flagは、係数有無フラグ符号化部２２４にも供給される。なお、各シンタックスが示す内容については上述したためここでは説明を省略する。
【０４７０】
（係数値シンタックス導出部２２８５の構成例）
シンタックス導出部２２８は図示しない係数値シンタックス導出部２２８５を備える。係数値シンタックス導出部２２８５は、significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_remainingの各値を導出する。
【０４７１】
図５８は、係数値シンタックス導出部２２８５の構成例を示すブロック図である。図５８に示すように、係数値シンタックス導出部２２８５は、係数レベルシンタックス導出部２２５ａ、係数サインシンタックス導出部２２５ｂ、係数数導出部１２５ｄを備えている。係数サインシンタックス導出部２２５ｂは、係数位置導出部１２５ｅ、サインハインディングフラグ導出部１２５ｆ、サインシンタックス導出及びレベル値補部２２５ｈ、係数和算出部１２５ｇを備えている。係数数導出部１２５ｄ、係数位置導出部１２５ｅ、サインハインディングフラグ導出部１２５ｆ、係数和算出部１２５ｇは、動画像復号装置１の説明で上述した同じ名称のブロックと同様の機能を奏するものであるので、ここでは説明を省略する。
【０４７２】
係数レベルシンタックス導出部２２５ａは、変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）の各値を参照し、シンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、及びcoeff_abs_level_remainingを導出する。
【０４７３】
係数サイン復号部２２５ｂは、変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）の各値を参照し、coeff_sign_flagを導出する。サインシンタックス導出及びレベル値補部２２５ｈは、サインハイディングフラグ導出部２２５ｆにおいてサインハイディングを行うと判定された場合には、各サブブロックの数−１の数のcoeff_sign_flagを導出する。サインハイディングを行わないと判定された場合には、各サブブロックの数のcoeff_sign_flagを導出する。
【０４７４】
サインシンタックス導出及びレベル値補部２２５ｈは、また、サインハイディングを行うと判定された場合には、各サブブロックでスキャン順で最初の非０係数の位置firstNZPosInCGの変換係数の符号と、係数和算出部１２５ｇから導出される係数和sumAbsで定まる符号を比較する。２つの符号が等しい場合には、対象変換係数の値を補正しない。２つの符号が異なる場合には、対象サブブロック内のいずれかの変換係数の絶対値を−１もしくは＋１することにより補正する。サインハイディングを行わないと判定された場合にはこのような補正は行わない。
【０４７５】
[ラスト位置符号化部２２１]
ラスト位置符号化部２２１は、シンタックス導出部２２８より供給されるシンタックスlast_significant_coeff_x、last_significant_coeff_yを示すＢｉｎを生成する。また、生成した各Ｂｉｎをビット符号化部２３２に供給する。また、シンタックスlast_significant_coeff_x及びlast_significant_coeff_yのＢｉｎを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部２３１に供給する。
【０４７６】
[スキャン順テーブル格納部２２２]
スキャン順テーブル格納部２２２には、処理対象のＴＵ（ブロック）のサイズ、スキャン方向の種別を表すスキャンインデックス、及びスキャン順に沿って付与された周波数成分識別インデックスを引数として、処理対象の周波数成分の周波数領域における位置、または処理対象の画素領域における画素の位置を与えるテーブルが格納されている。このようなスキャン順テーブルの一例としては、図７及び図８に示したScanOrderが挙げられる。
【０４７７】
また、スキャン順テーブル格納部２２２には、サブブロックのスキャン順を指定するためのサブブロックスキャン順テーブルが格納されている。ここで、サブブロックスキャン順テーブルは、処理対象のＴＵ（ブロック）のサイズとイントラ予測モードの予測モードインデックスとに関連付けられたスキャンインデックスscanIdxによって指定される。
【０４７８】
スキャン順テーブル格納部２２２に格納されているスキャン順テーブル及びサブブロックスキャン順テーブルは、動画像復号装置１の備えるスキャン順テーブル格納部１２２に格納されているものと同様であるので、ここでは説明を省略する。
【０４７９】
[係数符号化制御部２２３]
係数符号化制御部２２３は、量子化残差情報符号化部２７１の備える各部における符号化処理の順序を制御するための構成である。
【０４８０】
係数符号化制御部２２３は、シンタックス導出部２２８から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非０係数の位置を特定すると共に、特定した最後の非０係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部２２２に格納されたサブブロックスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各サブブロックの位置（ｘＣＧ、ｙＣＧ）を、サブブロック係数有無フラグ符号化部２２７に供給する。
【０４８１】
また、係数符号化制御部２２３は、処理対象となるサブブロックに関して、スキャン順テーブル格納部２２２に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、当該処理対象となるサブブロックに含まれる各変換係数の係数位置（ｘＣ、ｙＣ）を、係数有無フラグ符号化部２２４に供給する。ここで、処理対象となるサブブロックに含まれる各係数位置（各周波数成分、または各画素）のスキャン順としては、イントラ予測の場合には、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの示すスキャン順（水平方向優先スキャン、垂直方向優先スキャン、斜め方向スキャンのいずれか）を用い、インター予測の場合には、斜め方向スキャン（Up-right diagonal scan）を用いればよい。
【０４８２】
このように、係数符号化制御部２２３は、イントラ予測モード毎に、スキャン順を切り替える構成である。一般に、イントラ予測モードと変換係数の偏りとは互いに相関を有しているため、イントラ予測モードに応じてスキャン順を切り替えることにより、サブブロック係数有無フラグ、係数有無フラグの偏りに適したスキャンを行うことができる。これによって、符号化及び復号対象となるサブブロック係数有無フラグおよび係数有無フラグの符号量を削減することができ、符号化効率が向上する。
【０４８３】
[係数値符号化部２２５]
係数値符号化部２２５は、シンタックス導出部２２８から供給されるシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_remainingを示すＢｉｎを生成する。また、生成した各Ｂｉｎをビット符号化部２３２に供給する。また、これらのシンタックスのＢｉｎを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部２３１に供給する。なお、動画像復号装置１の備える係数レベル復号部１２５ａと対応するＧＲ１フラグ(coeff_abs_level_greater1_flag)、ＧＲ２フラグ(coeff_abs_level_greater2_flag)、及び残余係数レベル(coeff_abs_level_remaining)の符号化処理については、後述する。
【０４８４】
[係数有無フラグ符号化部２２４]
本実施形態に係る係数有無フラグ符号化部２２４は、各位置（ｘＣ、ｙＣ）によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を符号化する。より具体的には、各位置（ｘＣ、ｙＣ）によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を示すＢｉｎを生成する。生成された各Ｂｉｎは、ビット符号化部２３２に供給される。また、係数有無フラグ符号化部２２４は、算術符号符号化部２３０にてシンタックスsignificant_coeff_flag[xC][yC]のＢｉｎを符号化するために用いられるコンテキストを決
定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部２３１に供給される。
【０４８５】
図５６は、係数有無フラグ符号化部２２４の構成を示すブロック図である。図５６に示すように、係数有無フラグ符号化部２２４は、コンテキスト導出手段選択部２２４a、位置コンテキスト導出部２２４ｂ、隣接サブブロック係数有無コンテキスト導出部２２４ｃ、変換スキップ・変換量子化バイパスコンテキスト導出部２２４ｄ、及び、係数有無フラグ設定部２２４ｅ、を備えている。
【０４８６】
（コンテキスト導出手段選択部２２４ａ）
処理対象の周波数成分、または画素の位置（係数位置とも呼ぶ）（ｘＣ,ｙＣ）と、変換ブロックの対数値（log2TrafoWidth、log2TrafoHeight）が入力される。対数値のサイズから、変換ブロックの幅widthと高さheightを(1<<log2TrafoWidth)と(1<<log2TrafoHeight)により算出する。なお、対数値のサイズではなく、変換ブロックの幅と高さを直接入力しても良い。さらに、コンテキスト導出手段選択部１２４ａには、変換スキップフラグ（transform_skip_flag）、および、変換量子化バイパスフラグ(transquant_bypass_flag)が入力される。
【０４８７】
コンテキスト導出手段選択部２２４ａは、変換スキップフラグ、変換量子化バイパスフラグと、対象となるＴＵサイズおよび復号対象となる係数の位置に応じて、位置コンテキスト導出部２２４ｂ、隣接サブブロック係数有無コンテキスト導出部２２４ｃ、または変換スキップ・変換量子化バイパスコンテキスト導出部２２４ｄを選択する。選択された各コンテキスト導出部ではコンテキストインデックスctxIdxが導出される。
【０４８８】
コンテキスト導出手段選択部２２４ａによる具体的な処理は、動画像復号装置１の備えるコンテキスト導出手段選択部１２４ａと同様であるので、ここでは説明を省略する。
【０４８９】
（位置コンテキスト導出部２２４ｂ）
位置コンテキスト導出部２２４ｂは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。
【０４９０】
位置コンテキスト導出部２２４ｂによるその他の具体的な処理は、動画像復号装置１の備える位置コンテキスト導出部１２４ｂと同様であるので、ここでは説明を省略する。
【０４９１】
（隣接サブブロック係数有無コンテキスト導出部２２４ｃ）
隣接サブブロック係数有無コンテキスト導出部２２４ｃは、、隣接サブブロックに非０係数があるか否かに応じて、コンテキスト導出パターンを選択し、選択した導出パターンに従って、処理対象の周波数成分のサブブロック内での座標から、符号化対象の周波数成分に対するコンテキストインデックスを導出する。隣接サブブロック係数有無コンテキスト導出部２２４ｃによる具体的な処理は、動画像復号装置１の備える隣接サブブロック係数有無コンテキスト導出部２２４ｃと同様であるので、ここでは説明を省略する。
【０４９２】
（変換スキップ・変換量子化バイパスコンテキスト導出部２２４ｄ）
変換スキップ・変換量子化バイパスコンテキスト導出部２２４ｄは、変換スキップ時、あるいは、変換量子化バイパス時に、対象変換ブロックの画素領域における係数に対するコンテキストインデックスctxIdxを所定の方法に基づいて導出する。
【０４９３】
変換スキップ・変換量子化バイパスコンテキスト導出部２２４ｄの具体的な処理は、動画像復号装置１の備える変換スキップ・変換量子化バイパスコンテキスト導出部１２４ｄと同様であるので、ここでは説明を省略する。
【０４９４】
（係数有無フラグ設定部２２４ｅ）
係数有無フラグ設定部２２４ｅは、シンタックス導出部２２８から供給されるシンタックスsignificant_coeff_flag[xC][yC]を示すＢｉｎを生成する。生成したＢｉｎは、ビット符号化部２３２に供給される。また、係数有無フラグ設定部２２４ｅは、対象サブブロックに含まれるsignificant_coeff_flag[xC][yC]の値を参照し、対象サブブロックに含まれる全てのsignificant_coeff_flag[xC][yC]が０である場合、すなわち、当該対象サブブロックに非０係数が含まれていない場合に、当該対象サブブロックに関するsignificant_coeff_group_flag[xCG][yCG]の値を０に設定し、そうでない場合に当該対象サブブロックに関するsignificant_coeff_group_flag[xCG][yCG]の値を１に設定する。このように値が付されたsignificant_coeff_group_flag[xCG][yCG]は、サブブロック係数有無フラグ符号化部２２７に供給される。
＜＜係数有無フラグ符号化部２２４の別の構成例＞＞
以下では、図６１を参照して、係数有無フラグ符号化部２２４の別の構成例について説明する。
【０４９５】
図６１は、係数有無フラグ符号化部２２４の別の構成例を示すブロック図である。図６１に示すように、係数有無フラグ符号化部２２４は、コンテキスト導出手段選択部２２４Ａa、位置コンテキスト導出部２２４ｂ、隣接サブブロック係数有無コンテキスト導出部２２４ｃ、変換スキップ導出部２２４Ａｄ、及び、係数有無フラグ設定部２２４ｅ、を備えている。なお、位置コンテキスト導出部２２４ｂ、隣接サブブロック係数有無コンテキスト導出部２２４ｃ、及び、係数有無フラグ設定部２２４ｅは、図５６の対応する構成要素と同じ機能を有するため同一の符号を付与して説明を省略する。
【０４９６】
（コンテキスト導出手段選択部２２４Ａａ）
コンテキスト導出手段選択部２２４Ａａには、処理対象の係数位置（ｘＣ,ｙＣ）と、変換ブロックサイズの対数値（log2TrafoWidth、log2TrafoHeight）と、変換スキップフラグ（transform_skip_flag）が少なくとも入力される。
【０４９７】
コンテキスト導出手段選択部２２４Ａａは、変換スキップフラグ、対象変換ブロックサイズ、および、対象の係数位置に応じて、位置コンテキスト導出部２２４ｂ、隣接サブブロック係数有無コンテキスト導出部２２４ｃ、または、変換スキップコンテキスト導出部２２４Ａｄの何れかを選択する。選択された各コンテキスト導出部では対象の係数位置における係数有無フラグの符号化時に参照されるコンテキストインデックスctxIdxが導出される。なお、コンテキスト導出手段選択部２２４Ａａにおけるコンテキスト導出手段の選択処理については、動画像復号装置１の備えるコンテキスト導出手段選択部１２４Ａａと同一であるため、説明を省略する。
【０４９８】
（変換スキップコンテキスト導出部２２４Ａｄ）
変換スキップコンテキスト導出部２２４Ａｄは、変換スキップ時に、対象係数における係数有無フラグの符号化時に参照されるコンテキスト（コンテキストインデックスctxIdx）を導出する。ここで導出されるコンテキストは、対象係数のサブブロック内の位置に依らず、単一のコンテキストが導出される。なお、変換スキップコンテキスト導出部２２４Ａｄの具体的な処理は、動画像復号装置１の備える変換スキップコンテキスト導出部１２４Ａｄと同様であるので、ここでは説明を省略する。
【０４９９】
（サブブロック係数有無フラグ符号化部２２７）
サブブロック係数有無フラグ符号化部２２７は、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるシンタックスsignificant_coeff_group_flag[xCG][yCG]を符号化する。より具体的には、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるシンタックスsignificant_coeff_group_flag[xCG][yCG]を示すＢｉｎを生成する。生成された各Ｂｉｎは、ビット符号化部２３２に供給される。また、サブブロック係数有無フラグ符号化部２２７は、算術符号符号化部２３０にてシンタックスsignificant_coeff_flag[xC][yC]のＢｉｎを符号化するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部２３１に供給される。
【０５００】
図５７は、サブブロック係数有無フラグ符号化部２２７の構成を示すブロック図である。図５７に示すように、サブブロック係数有無フラグ符号化部２２７は、コンテキスト導出部２２７ａ、サブブロック係数有無フラグ記憶部２２７ｂ、及びサブブロック係数有無フラグ設定部２２７ｃを備えている。
【０５０１】
以下では、サブブロック係数有無フラグ符号化部２２７に対して、係数符号化制御部２２３から、サブブロック位置（ｘＣＧ、ｙＣＧ）が順スキャン順に供給される場合を例に挙げて説明を行う。なお、この場合、動画像復号装置１の備えるサブブロック係数有無フラグ復号部１２７では、サブブロック位置（ｘＣＧ、ｙＣＧ）が逆スキャン順に供給されることが好ましい。
【０５０２】
（コンテキスト導出部２２７ａ）
サブブロック係数有無フラグ符号化部２２７の備えるコンテキスト導出部２２７ａは、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるサブブロックに割り付けるコンテキストインデックスを導出する。サブブロックに割り付けられたコンテキストインデックスは、当該サブブロックについてのシンタックスsignificant_coeff_group_flagを示すＢｉｎを復号する際に用いられる。また、コンテキストインデックスを導出する際には、サブブロック係数有無フラグ記憶部２２７ｂに記憶されたサブブロック係数有無フラグの値が参照される。コンテキスト導出部２２７ａは、導出したコンテキストインデックスをコンテキスト記録更新部２３１に供給する。
【０５０３】
（サブブロック係数有無フラグ記憶部２２７ｂ）
サブブロック係数有無フラグ記憶部２２７ｂには、係数有無フラグ符号化部２２４から供給されたシンタックスsignificant_coeffgroup_flagの各値が記憶されている。サブブロック係数有無フラグ設定部２２７ｃは、隣接サブブロックに割り付けられたシンタックスsignificant_coeffgroup_flagを、サブブロック係数有無フラグ記憶部２２７ｂから読み出すことができる。
【０５０４】
（サブブロック係数有無フラグ設定部２２７ｃ）
サブブロック係数有無フラグ設定部２２７ｃは、サブブロック係数有無フラグ設定部２２７ｃは、係数有無フラグ符号化部２２４から供給されるシンタックスsignificant_coeff_group_flag[xCG][yCG]を示すＢｉｎを生成する。生成したＢｉｎは、ビット符号化部２３２に供給される。
【０５０５】
以下では、動画像復号装置１の備える係数レベル復号部１２５ａと対応する係数値符号化部２２５におけるＧＲ１フラグ、ＧＲ２フラグ、残余係数レベルの符号化処理について説明する。
【０５０６】
（ＧＲ１フラグの符号化処理）
以下では、係数値符号化部２２５におけるＧＲ１フラグの符号化処理について説明する。図３８は、ＧＲ１フラグの符号化処理を示すフローチャートである。
【０５０７】
（ステップＳＤ２０１）
係数値符号化２２５は、ＧＲ１フラグの符号化に関連する各種パラメータを初期化する。
【０５０８】
係数位置識別インデックスnを15に設定する。n = 15
係数数numSigCoeffを０に設定する。numSigCoeff = 0
サブブロック内で最初に出現するＧＲ１フラグの値が１となる係数位置firstGreater1CoeffIdxを-1に設定する。firstGreatr1CoeffIdx = -1
符号化対象サブブロックの位置(subset)がラスト係数を含むサブブロックである場合、符号化済ＧＲ１フラグの値が０である個数を表わす変数greatr1Ctxは１に初期化される。すなわち、
greater1Ctx = 1
また、符号化対象サブブロックの位置(subset)がラスト係数を含むサブブロック以外の場合は、符号化済ＧＲ１フラグの値が０である個数を表わす変数greatr1Ctxを次式により更新する。
【０５０９】
greater1Ctx = greater1Ctx >> 1
（ステップＳＤ２０２）
対象サブブロック内のループを開始する。当該ループは、係数位置を単位とするループである。
【０５１０】
（ステップＳＤ２０３）
係数位置識別インデックスnで特定される係数位置(xC,yC)が非０係数であるか判別する。非０係数である場合( significant_coeff_flag[xC][yC]==1 )
（ステップＳＤ２０３でＹｅｓ）、ステップＳＤ２０４へ進む。それ以外の場合（ significant_coeff_flag[xC][yC]==0（ステップＳＤ２０３でＮｏ）、ステップＳＤ２０９へ進む。
【０５１１】
(ステップＳＤ２０４)
サブブロック内で符号化したＧＲ１フラグの個数numSigCoeffが所定閾値未満であるか判別する。ＧＲ１フラグの個数numSigCoeffが所定閾値未満である場合(ステップＳＤ１０４でＹｅｓ)、ステップＳＤ２０４へ進む。それ以外の場合（ステップＳＤ２０４でＮｏ）、ステップＳＤ２０９へ進む。
【０５１２】
（ステップＳＤ２０５）
係数位置識別インデックスnのＧＲ１フラグを符号化する。なお、ＧＲ１フラグの符号化時に参照するコンテキストインデックスの導出方法は、ＧＲ１フラグの復号時に参照するコンテキストインデックスの導出方法と同様であるため、説明を省略する。ただし、ＧＲ１フラグの復号時のコンテキストインデックスの導出方法において、“復号”部分を“符号化“と読み替えるものとする。
【０５１３】
（ステップＳＤ２０６）
符号化したＧＲ１フラグの個数をカウントする。すなわち、
numSigCoeff = numSigCoeff + 1
また、符号化した係数位置(xC, yC)の係数レベル値が２以上であるか(ＧＲ１フラグの値が１でるか)と、変換スキップフラグ、変換量子化バイパスフラグに基づいて、変数numGreater1を更新する。すなわち、
if( !transform_skip_flag && !transquant_bypass_flag){
numGreater1 = coeff_abs_level_greater1_flag[n]==1 ?
numGreater1 + 1 : numGreater1
} ・・・(eq.B-5)
ここで、式(eq.B-5)において、変換スキップ、あるいは、変換量子化バイパスが実施される場合は、変数numGreater1の値を更新しない。なぜならば、変換スキップ、あるいは、変換量子化バイパスが実施される場合、ＧＲ１フラグおよびＧＲ２フラグは画素領域における変換係数であり、周波数領域における変換係数に関するＧＲ１フラグおよびＧＲ２フラグのコンテキストを導出するために用いる変数を更新することは、周波数領域における変換係数に関するＧＲ１フラグ、及びＧＲ２フラグのコンテキストの状態が適切に更新されず、符号化効率の低下を招く可能性があるためである。
【０５１４】
(ステップＳＤ２０７)
サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置であるか判別する。サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置である場合（ステップＳＤ２０７でＹｅｓ）、ステップＳＤ２０８へ進む。それ以外の場合は、ステップＳＤ２０９へ進む。
【０５１５】
（ステップＳＤ２０８）
サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数位置（係数位置識別インデックス）を変数firstGreater1CoeffIdxへ設定する。すなわち、
firstGreater1CoeffIdx = n
（ステップＳＤ２０９）
係数位置識別インデックスｎを更新する。すなわち、
n = n - 1
（ステップＳＤ２１０）
サブブロック内のループを終了する。
【０５１６】
（ＧＲ２フラグの符号化処理）
以下では、係数値符号化部２２５におけるＧＲ２フラグの符号化処理について説明する。図３９は、ＧＲ２フラグの符号化処理を示すフローチャートである。
【０５１７】
（ステップＳＥ２０１）
ＧＲ１フラグの符号化処理において求めた、サブブロック内で最初に出現する、ＧＲ１フラグの値が１となる係数があるか否かを判別する。すなわち、変数firstGreater1CoeffIdxが-１であるか否かを判別する。ここで、変数firstGreater1coeffIdxが-1でない場合（ステップＳＥ２０１においてＹｅｓ）、ステップＳ２０２へ進む。それ以外の場合（ステップＳＥ１０１においてＮｏ）、ＧＲ２フラグを符号化せず、ＧＲ２フラグの符号化処理を終了する。
【０５１８】
（ステップＳＥ２０２）
変数firstGreatr1CoeffIdxが示す係数位置のＧＲ２フラグ(coeff_abs_level_greater2_flag[ firstGreatr1CoeffIdx ])を符号化する。
なお、ＧＲ２フラグの符号化時に参照するコンテキストインデックスの導出方法は、ＧＲ２フラグの復号時に参照するコンテキストインデックスの導出方法と同様であるため、説明を省略する。ただし、ＧＲ２フラグの復号時のコンテキストインデックスの導出方法において、“復号”部分を“符号化“と読み替えるものとする。
【０５１９】
（残余係数レベルの符号化処理）
以下では、係数値符号化部２２５における残余係数レベルの符号化処理について説明する。図４０は、残余係数レベルの符号化処理を示すフローチャートである。
【０５２０】
（ステップＳＦ２０１）
係数値符号化部２２５は、残余係数レベルの符号化に関連する各種パラメータを初期化する。
【０５２１】
係数位置識別インデックスnを15に設定する。n = 15
係数数numSigCoeffを０に設定する。numSigCoeff = 0
（ステップＳＦ２０２）
対象サブブロック内のループを開始する。当該ループは、係数位置を単位とするループである。
【０５２２】
（ステップＳＦ２０３）
係数位置識別インデックスnで特定される係数位置(xC,yC)が非０係数であるか判別する。非０係数である場合( significant_coeff_flag[xC][yC]==1 )
（ステップＳＦ１０３でＹｅｓ）、ステップＳＦ２０４へ進む。それ以外の場合（significant_coeff_flag[xC][yC]==0（ステップＳＦ２０３でＮｏ）、ステップＳＦ２０９へ進む。
【０５２３】
(ステップＳＦ２０４)
係数位置(xC, yC)の変換係数のベースレベルbaseLevelを次式により算出する。
【０５２４】
baseLevel = 1 + coeff_abs_level_greater1_flag[ n ]
+ coeff_abs_level_greater2_flag[ n ] ・・・(eq.E-1)
(ステップＳＦ２０５)
係数位置（xC,yC）の変換係数のベースレベルbaseLevelが所定値を満たすか否かを判別する。所定値は次式で表わされる。
【０５２５】
baseLevel == (numSigCoeff < TH) ?
( ( n==firstGreater1CoeffIdx) ? 3 : 2 ) : 1・・・
(eq.E-2)
すなわち、
１）係数数numSigCoeffが所定閾値TH以上の場合(numSigCoeff>=TH)、baseLevelが１と等しいか判定する。
【０５２６】
２）係数数numSigCoeffが所定閾値未満(numSigCoeff<TH)、かつ、係数識別インデックスnがfirstGreater1CoeffIdxではない場合、baseLevelが２と等しいか判定する。
【０５２７】
３）係数数numSigCoeffが所定閾値未満(numSigCoeff<TH)、かつ、係数識別インデックスnがfirstGreater1CoeffIdxである場合、baseLevelが３と等しいか判定する。
【０５２８】
以上、baseLevelが上記条件で取り得る値と等しい場合（ステップＳＦ２０５でＹｅｓ）、ステップＳＦ２０６へ進む。それ以外の場合（ステップＳＦ２０５でＮｏ）、残余係数レベルcoeff_abs_level_remainingの符号化をスキップ(coeff_abs_level_remaining[n] =0として扱う)し、ステップＳＦ２０８へ進む。
【０５２９】
(ステップＳＦ２０６)
係数位置(xC,yC)の変換係数の残余係数レベルcoeff_abs_level_remaining[n]を係数レベル値absLevelとベースレベルbaseLevelに基づいて次式により算出する。
【０５３０】
coeff_abs_level_remaining[ n ] = absLevel ‐baseLevel ・・・(eq.E-3)
復号する。
【０５３１】
(ステップＳＦ２０７)
係数位置(xC,yC)の変換係数の係数レベル値absLevelを次式により算出する。
【０５３２】
absLevel = coeff_abs_level_remaining[ n ] + baseLevel ・・・(eq.E-3)
（ステップＳＦ２０８）
復号した係数数numSigCoeffを更新する。すなわち、
numSigCoeff = numSigCoeff + 1
(ステップＳＦ２０９)
係数位置識別インデックスｎを更新する。すなわち、
n = n - 1
（ステップＳＦ２１０）
サブブロック内のループを終了する。
【０５３３】
（付記事項１）
上述した動画像符号化装置２及び動画像復号装置１は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像（ＣＧおよびＧＵＩを含む）であってもよい。
【０５３４】
まず、上述した動画像符号化装置２及び動画像復号装置１を、動画像の送信及び受信に利用できることを、図６２を参照して説明する。
【０５３５】
図６２の（ａ）は、動画像符号化装置２を搭載した送信装置ＰＲＯＤ＿Ａの構成を示したブロック図である。図６２の（ａ）に示すように、送信装置ＰＲＯＤ＿Ａは、動画像を符号化することによって符号化データを得る符号化部ＰＲＯＤ＿Ａ１と、符号化部ＰＲＯＤ＿Ａ１が得た符号化データで搬送波を変調することによって変調信号を得る変調部ＰＲＯＤ＿Ａ２と、変調部ＰＲＯＤ＿Ａ２が得た変調信号を送信する送信部ＰＲＯＤ＿Ａ３と、を備えている。上述した動画像符号化装置２は、この符号化部ＰＲＯＤ＿Ａ１として利用される。
【０５３６】
送信装置ＰＲＯＤ＿Ａは、符号化部ＰＲＯＤ＿Ａ１に入力する動画像の供給源として、動画像を撮像するカメラＰＲＯＤ＿Ａ４、動画像を記録した記録媒体ＰＲＯＤ＿Ａ５、動画像を外部から入力するための入力端子ＰＲＯＤ＿Ａ６、及び、画像を生成または加工する画像処理部Ａ７を更に備えていてもよい。図６２の（ａ）においては、これら全てを送信装置ＰＲＯＤ＿Ａが備えた構成を例示しているが、一部を省略しても構わない。
【０５３７】
なお、記録媒体ＰＲＯＤ＿Ａ５は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体ＰＲＯＤ＿Ａ５と符号化部ＰＲＯＤ＿Ａ１との間に、記録媒体ＰＲＯＤ＿Ａ５から読み出した符号化データを記録用の符号化方式に従って復号する復号部（不図示）を介在させるとよい。
【０５３８】
図６２の（ｂ）は、動画像復号装置１を搭載した受信装置ＰＲＯＤ＿Ｂの構成を示したブロック図である。図６２の（ｂ）に示すように、受信装置ＰＲＯＤ＿Ｂは、変調信号を受信する受信部ＰＲＯＤ＿Ｂ１と、受信部ＰＲＯＤ＿Ｂ１が受信した変調信号を復調することによって符号化データを得る復調部ＰＲＯＤ＿Ｂ２と、復調部ＰＲＯＤ＿Ｂ２が得た符号化データを復号することによって動画像を得る復号部ＰＲＯＤ＿Ｂ３と、を備えている。上述した動画像復号装置１は、この復号部ＰＲＯＤ＿Ｂ３として利用される。
【０５３９】
受信装置ＰＲＯＤ＿Ｂは、復号部ＰＲＯＤ＿Ｂ３が出力する動画像の供給先として、動画像を表示するディスプレイＰＲＯＤ＿Ｂ４、動画像を記録するための記録媒体ＰＲＯＤ＿Ｂ５、及び、動画像を外部に出力するための出力端子ＰＲＯＤ＿Ｂ６を更に備えていてもよい。図６２の（ｂ）においては、これら全てを受信装置ＰＲＯＤ＿Ｂが備えた構成を例示しているが、一部を省略しても構わない。
【０５４０】
なお、記録媒体ＰＲＯＤ＿Ｂ５は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部ＰＲＯＤ＿Ｂ３と記録媒体ＰＲＯＤ＿Ｂ５との間に、復号部ＰＲＯＤ＿Ｂ３から取得した動画像を記録用の符号化方式に従って符号化する符号化部（不図示）を介在させるとよい。
【０５４１】
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送（ここでは、送信先が予め特定されていない送信態様を指す）であってもよいし、通信（ここでは、送信先が予め特定されている送信態様を指す）であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
【０５４２】
例えば、地上デジタル放送の放送局（放送設備など）／受信局（テレビジョン受像機など）は、変調信号を無線放送で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である。また、ケーブルテレビ放送の放送局（放送設備など）／受信局（テレビジョン受像機など）は、変調信号を有線放送で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である。
【０５４３】
また、インターネットを用いたＶＯＤ（Video On Demand）サービスや動画共有サービスなどのサーバ（ワークステーションなど）／クライアント（テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど）は、変調信号を通信で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である（通常、ＬＡＮにおいては伝送媒体として無線又は有線の何れかが用いられ、ＷＡＮにおいては伝送媒体として有線が用いられる）。ここで、パーソナルコンピュータには、デスクトップ型ＰＣ、ラップトップ型ＰＣ、及びタブレット型ＰＣが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
【０５４４】
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置ＰＲＯＤ＿Ａ及び受信装置ＰＲＯＤ＿Ｂの双方として機能する。
【０５４５】
次に、上述した動画像符号化装置２及び動画像復号装置１を、動画像の記録及び再生に利用できることを、図６３を参照して説明する。
【０５４６】
図６３の（ａ）は、上述した動画像符号化装置２を搭載した記録装置ＰＲＯＤ＿Ｃの構成を示したブロック図である。図６３の（ａ）に示すように、記録装置ＰＲＯＤ＿Ｃは、動画像を符号化することによって符号化データを得る符号化部ＰＲＯＤ＿Ｃ１と、符号化部ＰＲＯＤ＿Ｃ１が得た符号化データを記録媒体ＰＲＯＤ＿Ｍに書き込む書込部ＰＲＯＤ＿Ｃ２と、を備えている。上述した動画像符号化装置２は、この符号化部ＰＲＯＤ＿Ｃ１として利用される。
【０５４７】
なお、記録媒体ＰＲＯＤ＿Ｍは、（１）ＨＤＤ（Hard Disk Drive）やＳＳＤ(Solid State Drive)などのように、記録装置ＰＲＯＤ＿Ｃに内蔵されるタイプのものであってもよいし、（２）ＳＤメモリカードやＵＳＢ（UniversalSerial Bus）フラッシュメモリなどのように、記録装置ＰＲＯＤ＿Ｃに接続されるタイプのものであってもよいし、（３）ＤＶＤ（Digital Versatile Disc）やＢＤ（Blu-ray Disc:登録商標）などのように、記録装置ＰＲＯＤ＿Ｃに内蔵されたドライブ装置（不図示）に装填されるものであってもよい。
【０５４８】
また、記録装置ＰＲＯＤ＿Ｃは、符号化部ＰＲＯＤ＿Ｃ１に入力する動画像の供給源として、動画像を撮像するカメラＰＲＯＤ＿Ｃ３、動画像を外部から入力するための入力端子ＰＲＯＤ＿Ｃ４、動画像を受信するための受信部ＰＲＯＤ＿Ｃ５、及び、画像を生成または加工する画像処理部Ｃ６を更に備えていてもよい。図６３の（ａ）においては、これら全てを記録装置ＰＲＯＤ＿Ｃが備えた構成を例示しているが、一部を省略しても構わない。
【０５４９】
なお、受信部ＰＲＯＤ＿Ｃ５は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部ＰＲＯＤ＿Ｃ５と符号化部ＰＲＯＤ＿Ｃ１との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部（不図示）を介在させるとよい。
【０５５０】
このような記録装置ＰＲＯＤ＿Ｃとしては、例えば、ＤＶＤレコーダ、ＢＤレコーダ、ＨＤＤ（Hard Disk Drive）レコーダなどが挙げられる（この場合、入力端子ＰＲＯＤ＿Ｃ４又は受信部ＰＲＯＤ＿Ｃ５が動画像の主な供給源となる）。また、カムコーダ（この場合、カメラＰＲＯＤ＿Ｃ３が動画像の主な供給源となる）、パーソナルコンピュータ（この場合、受信部ＰＲＯＤ＿Ｃ５又は画像処理部Ｃ６が動画像の主な供給源となる）、スマートフォン（この場合、カメラＰＲＯＤ＿Ｃ３又は受信部ＰＲＯＤ＿Ｃ５が動画像の主な供給源となる）なども、このような記録装置ＰＲＯＤ＿Ｃの一例である。
【０５５１】
図６３の（ｂ）は、上述した動画像復号装置１を搭載した再生装置ＰＲＯＤ＿Ｄの構成を示したブロックである。図６３の（ｂ）に示すように、再生装置ＰＲＯＤ＿Ｄは、記録媒体ＰＲＯＤ＿Ｍに書き込まれた符号化データを読み出す読出部ＰＲＯＤ＿Ｄ１と、読出部ＰＲＯＤ＿Ｄ１が読み出した符号化データを復号することによって動画像を得る復号部ＰＲＯＤ＿Ｄ２と、を備えている。上述した動画像復号装置１は、この復号部ＰＲＯＤ＿Ｄ２として利用される。
【０５５２】
なお、記録媒体ＰＲＯＤ＿Ｍは、（１）ＨＤＤやＳＳＤなどのように、再生装置ＰＲＯＤ＿Ｄに内蔵されるタイプのものであってもよいし、（２）ＳＤメモリカードやＵＳＢフラッシュメモリなどのように、再生装置ＰＲＯＤ＿Ｄに接続されるタイプのものであってもよいし、（３）ＤＶＤやＢＤなどのように、再生装置ＰＲＯＤ＿Ｄに内蔵されたドライブ装置（不図示）に装填されるものであってもよい。
【０５５３】
また、再生装置ＰＲＯＤ＿Ｄは、復号部ＰＲＯＤ＿Ｄ２が出力する動画像の供給先として、動画像を表示するディスプレイＰＲＯＤ＿Ｄ３、動画像を外部に出力するための出力端子ＰＲＯＤ＿Ｄ４、及び、動画像を送信する送信部ＰＲＯＤ＿Ｄ５を更に備えていてもよい。図６３の（ｂ）においては、これら全てを再生装置ＰＲＯＤ＿Ｄが備えた構成を例示しているが、一部を省略しても構わない。
【０５５４】
なお、送信部ＰＲＯＤ＿Ｄ５は、符号化されていない動画像を送信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部ＰＲＯＤ＿Ｄ２と送信部ＰＲＯＤ＿Ｄ５との間に、動画像を伝送用の符号化方式で符号化する符号化部（不図示）を介在させるとよい。
【０５５５】
このような再生装置ＰＲＯＤ＿Ｄとしては、例えば、ＤＶＤプレイヤ、ＢＤプレイヤ、ＨＤＤプレイヤなどが挙げられる（この場合、テレビジョン受像機等が接続される出力端子ＰＲＯＤ＿Ｄ４が動画像の主な供給先となる）。また、テレビジョン受像機（この場合、ディスプレイＰＲＯＤ＿Ｄ３が動画像の主な供給先となる）、デジタルサイネージ（電子看板や電子掲示板等とも称され、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、デスクトップ型ＰＣ（この場合、出力端子ＰＲＯＤ＿Ｄ４又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、ラップトップ型又はタブレット型ＰＣ（この場合、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、スマートフォン（この場合、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）なども、このような再生装置ＰＲＯＤ＿Ｄの一例である。
【０５５６】
（付記事項２）
上述した動画像復号装置１、および動画像符号化装置２の各ブロックは、集積回路（ＩＣチップ）上に形成された論理回路によってハードウェア的に実現していてもよいし、ＣＰＵ（central processing unit）を用いてソフトウェア的に実現してもよい。
【０５５７】
後者の場合、動画像復号装置１、および動画像符号化装置２は、各機能を実現する制御プログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（randomaccess memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである動画像復号装置１、および動画像符号化装置２の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記動画像復号装置１、および動画像符号化装置２に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ（micro processing unit））が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０５５８】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ（compact disc read-only memory）／ＭＯ（magneto-optical）／ＭＤ（Mini Disc）／ＤＶＤ（digital versatile disk）／ＣＤ−Ｒ（CDRecordable）等の光ディスクを含むディスク類、ＩＣカード（メモリカードを含む）／光カード等のカード類、マスクＲＯＭ／ＥＰＲＯＭ（erasable programmable read-only memory）／ＥＥＰＲＯＭ（登録商標）（electricallyerasable and programmable read-only memory）／フラッシュＲＯＭ等の半導体メモリ類、あるいはＰＬＤ（Programmable logic device）やＦＰＧＡ（Field Programmable Gate
Array）等の論理回路類などを用いることができる。
【０５５９】
また、動画像復号装置１、および動画像符号化装置２を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ（local area network）、ＩＳＤＮ（integratedservices digital network）、ＶＡＮ（value-added network）、ＣＡＴＶ（community antenna television）通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、ＩＥＥＥ（institute of electrical and electronic engineers）１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（asynchr
onous digital subscriber loop）回線等の有線でも、ＩｒＤＡ（infrared data association）やリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１無線、ＨＤＲ（high data rate）、ＮＦＣ（Near Field Communication）、ＤＬＮＡ（Digital Living Network Alliance：登録商標）、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０５６０】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０５６１】
〔まとめ〕
上記課題を解決するために、本発明に係る算術復号装置は、対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数および変換スキップによって得られる画素領域における各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを復号する算術復号装置であって、処理対象の単位領域に対応する対象周波数領域、または対象画素領域を所定サイズのサブブロックに分割するサブブロック分割手段と、上記サブブロック分割手段により分割された各サブブロックについて、非０係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを復号するサブブロック係数有無フラグ復号手段と、上記各サブブロック内の変換係数が０であるか否かを表す非０係数有無フラグを復号する非０係数有無フラグ復号手段と、を備え、上記非０係数有無フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応する非０係数有無フラグおよび周波数変換によって周波数成分毎に得られる各変換係数と対応する非０係数有無フラグのそれぞれにおいて、独立したコンテキストインデックスを導出することを特徴としている。
【０５６２】
変換スキップが実施される場合、復号対象となる係数有無フラグは、画素領域における非０係数である。画素領域における各係数位置の非０係数の出現確率と、周波数領域における各係数位置の非０係数の出現確率は異なるため、画素領域と周波数領域とで、係数有無フラグに関するコンテキストを区別することが好ましい。
【０５６３】
上記の構成によれば、少なくとも変換スキップが実施される際、画素領域における非０係数に対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量を削減することができるため、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５６４】
本発明に係る算術復号装置では、上記非０係数有無フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応する非０係数有無フラグに対して、変換ブロック内で固定のコンテキストインデックスを導出するものであってもよい。
【０５６５】
本発明に係る算術復号装置では、上記非０係数有無フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応する非０係数有無フラグに対して、変換ブロックサイズに基づく値を、コンテキストインデックスとして導出するものであってもよい。
【０５６６】
画素領域においても、ＴＵサイズ毎に非０係数の出現確率は異なるため、ＴＵサイズ毎に係数有無フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、ＴＵサイズ毎に、画素領域における非０係数に対して、適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量をさらに削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５６７】
本発明に係る算術復号装置では、上記非０係数有無フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応する非０係数有無フラグに対して、予測タイプと変換ブロックサイズに基づいて、所定のコンテキストインデックスを導出するものであってもよい。
【０５６８】
変換スキップが実施される場合、復号対象となる画素領域における非０係数のの出現確率は、イントラ予測とインター予測において異なるため、予測タイプ毎に係数有無フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、画素領域における非０係数に対して、予測タイプとＴＵサイズ毎に適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量を削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５６９】
本発明に係る算術復号装置では、上記非０係数有無フラグ復号手段は、変換スキップ、または変換量子化バイパスによって得られる画素領域における各変換係数と対応する非０係数有無フラグに対して、変換スキップ時の非０係数有無フラグおよび変換量子化バイパス時の非０係数有無フラグのそれぞれにおいて、独立したコンテキストインデックスを導出するものであってもよい。
【０５７０】
一般的に、変換スキップ時と変換量子化バイパス時とでは、画素領域における非０係数の出現確率は異なるため、係数有無フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、変換スキップ時と変換量子化バイパス時のそれぞれにおいて、画素領域における非０係数に対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、非０係数の符号量を削減することができるので、非０係数の復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５７１】
本発明に係る算術復号装置では、上記各サブブロック内の変換係数の絶対値が１を超えるか否かを示すＧＲ１フラグを復号するＧＲ１フラグ復号手段を備え、上記ＧＲ１フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応するＧＲ１フラグおよび周波数変換によって周波数成分毎に得られる各変換係数と対応するＧＲ１フラグのそれぞれにおいて、独立したコンテキストインデックスを導出するものであってもよい。
【０５７２】
変換スキップが実施される場合、復号対象となるＧＲ１フラグは、画素領域におけるＧＲ１フラグである。画素領域における各係数位置のＧＲ１フラグの出現確率と、周波数領域における各係数位置のＧＲ１フラグの出現確率は異なるため、画素領域と周波数領域とで、ＧＲ１フラグに関するコンテキストを区別することが好ましい。
【０５７３】
上記の構成によれば、少なくとも変換スキップが実施される際、画素領域におけるＧＲ１フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグの符号量を削減することができるので、ＧＲ１フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５７４】
本発明に係る算術復号装置では、上記ＧＲ１フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応するＧＲ１フラグに対して、変換ブロックサイズに基づく値を、コンテキストインデックスとして導出するものであってもよい。
【０５７５】
画素領域においても、ＴＵサイズ毎にＧＲ１フラグの出現確率は異なるため、ＴＵサイズ毎にＧＲ１フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、、ＴＵサイズ毎に、画素領域におけるＧＲ１フラグに対して、適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグの符号量をさらに削減することができるので、ＧＲ１フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５７６】
本発明に係る算術復号装置では、上記ＧＲ１フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応するＧＲ１フラグに対して、予測タイプと変換ブロックサイズに基づいて、所定のコンテキストインデックスを導出するものであってもよい。
【０５７７】
変換スキップが実施される場合、復号対象となる画素領域におけるＧＲ１の出現確率は、イントラ予測とインター予測において異なるため、予測タイプ毎にＧＲ１フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、画素領域におけるＧＲ１フラグに対して、予測タイプとＴＵサイズ毎に適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグの符号量を削減することができるので、ＧＲ１フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５７８】
本発明に係る算術復号装置では、上記ＧＲ１フラグ復号手段は、変換スキップまたは変換量子化バイパスによって得られる画素領域における各変換係数と対応するＧＲ１フラグに対して、変換スキップ時のＧＲ１フラグおよび変換量子化バイパス時のＧＲ１フラグのそれぞれにおいて、独立したコンテキストインデックスを導出するものであってもよい。
【０５７９】
一般的に、変換スキップ時と変換量子化バイパス時とでは、画素領域におけるＧＲ１フラグの出現確率は異なるため、ＧＲ１フラグに関するコンテキストを区別することが好ましい。上記の構成によれば、変換スキップ時と変換量子化バイパス時のそれぞれにおいて、画素領域におけるＧＲ１フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ１フラグの符号量を削減することができるので、ＧＲ１フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５８０】
本発明に係る算術復号装置では、上記各サブブロック内の変換係数の絶対値が２を超えるか否かを示すＧＲ２フラグを復号するＧＲ２フラグ復号手段を備え、上記ＧＲ２フラグ復号手段は、少なくとも変換スキップによって得られる画素領域における各変換係数および周波数変換によって周波数成分毎に得られる各変換係数のそれぞれにおいて、独立したコンテキストインデックスを導出するものであってもよい。
【０５８１】
変換スキップが実施される場合、復号対象となるＧＲ２フラグは、画素領域におけるＧＲ２フラグである。画素領域における各係数位置のＧＲ２フラグの出現確率と、周波数領域における各係数位置のＧＲ２フラグの出現確率は異なるため、画素領域と周波数領域とで、ＧＲ２フラグに関するコンテキストを区別することが好ましい。
【０５８２】
上記の構成によれば、変換スキップが実施される際、画素領域におけるＧＲ２フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ２フラグの符号量を削減することができるので、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５８３】
本発明に係る算術復号装置では、上記ＧＲ２フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応するＧＲ２フラグに対して、変換ブロックサイズに基づく値を、コンテキストインデックスとして導出するものであってもよい。
【０５８４】
画素領域においても、ＴＵサイズ毎にＧＲ２フラグの出現確率は異なるため、ＴＵサイズ毎にＧＲ２フラグに関するコンテキストを区別することが好ましい。上記構成によれば、、ＴＵサイズ毎に、画素領域におけるＧＲ２フラグに対して、適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ２フラグの符号量をさらに削減することができるので、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５８５】
本発明に係る算術復号装置では、上記ＧＲ２フラグ復号手段は、変換スキップによって得られる画素領域における各変換係数と対応するＧＲ２フラグに対して、予測タイプと変換ブロックサイズに基づいて、所定のコンテキストインデックスを導出するものであってもよい。
【０５８６】
変換スキップが実施される場合、復号対象となる画素領域におけるＧＲ２フラグの出現確率は、イントラ予測とインター予測において異なるため、予測タイプ毎にＧＲ２フラグに関するコンテキストを区別することが好ましい。上記構成によれば、画素領域におけるＧＲ２フラグに対して、予測タイプとＴＵサイズ毎に適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ２フラグの符号量を削減することができるので、ＧＲ２フラグの復号に関する処理量を削減
すると共に、符号化効率を改善することができる。
【０５８７】
本発明に係る算術復号装置では、上記ＧＲ２フラグ復号手段は、変換スキップまたは変換量子化バイパスによって得られる画素領域における各変換係数と対応するＧＲ２フラグに対して、変換スキップ時のＧＲ２フラグおよび変換量子化バイパス時のＧＲ２フラグのそれぞれにおいて、独立したコンテキストインデックスを導出するものであってもよい。
【０５８８】
一般的に、変換スキップ時と変換量子化バイパス時とでは、画素領域におけるＧＲ２フラグの出現確率は異なるため、ＧＲ２フラグに関するコンテキストを区別することが好ましい。上記構成によれば、変換スキップ時と変換量子化バイパス時のそれぞれにおいて、画素領域におけるＧＲ２フラグに対して適切なコンテキストインデックスを導出することができる。そのため、符号化及び復号対象となるＴＵにおいて、ＧＲ２フラグの符号量を削減することができるので、ＧＲ２フラグの復号に関する処理量を削減すると共に、符号化効率を改善することができる。
【０５８９】
上記課題を解決するために、本発明に係る算術復号装置は、対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる変換係数および変換スキップ、あるいは変換量子化バイパスによって得られる画素領域における各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを復号する算術復号装置であって、サインハイディングを行う変換係数の符号は、変換係数の符号を既に復号した変換係数の絶対値もしくは既に復号した変換係数の絶対値の和を用いて導出し、サインハイディングを行わない変換係数の符号は、符号化データからシンタックスを復号する係数サイン復号手段と、サインハイディングを行うか否かの判定に用いるサインハイディングフラグを、変換スキップフラグと変換量子化バイパスフラグと、対象サブブロック内で既に復号した非０係数の位置の差、または、対象サブブロック内で既に既に復号した非０係数の数と所定の閾値との比較により導出するサインハイディングフラグ導出手段と、を備えていることを特徴としている。
【０５９０】
変換スキップを実施する場合、もしくは変換量子化バイパスを実施する場合、画素領域の係数に対して、係数レベル値の補正を伴うサインハイディングを実施することは、主観画質の低下を招く可能性があるため、サインハイディングの実施を禁止することが好ましい。上記の構成では、変換スキップ、もしくは、変換量子化バイパスを実施時において、サインハイディング処理を禁止するため、主観画質を向上させることができる。
【０５９１】
上記課題を解決するために、本発明に係る画像復号装置は、上記算術復号装置と、上記算術復号装置によって復号された変換係数を逆周波数変換することによって残差画像を生成する逆周波数変換手段と、上記逆周波数変換手段によって生成された残差画像と、生成済みの復号画像から予測された予測画像とを加算することによって復号画像を生成する復号画像生成手段と、を備えていることを特徴としている。
【０５９２】
上記課題を解決するために、本発明に係る算術符号化装置は、対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数および変換スキップによって得られる画素領域における各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって符号化データを生成する算術符号化装置であって、処理対象の単位領域に対応する対象周波数領域を所定サイズのサブブロックに分割するサブブロック分割手段と、上記サブブロック分割手段により分割された各サブブロックについて、非０係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを符号化するサブブロック係数有無フラグ符号化手段と、上記各サブブロック内の変換係数が０であるか否かを表す非０係数有無フラグを符号化する非０係数有無フラグ符号化手段と、を備え、上記非０係数有無フラグ符号化手段は、変換スキップによって得られる画素領域における各変換係数と対応する非０係数有無フラグおよび周波数変換によって周波数成分毎に得られる各変換係数と対応する非０係数有無フラグのそれぞれにおいて、独立したコンテキストインデックスを用いることを特徴としている。
【０５９３】
上記課題を解決するために、本発明に係る画像符号化装置は、符号化対象画像と予測画像との残差画像を単位領域毎に周波数変換することによって変換係数を生成する変換係数生成手段と、上記算術符号化装置と、を備えており、上記算術符号化装置は、上記変換係数生成手段によって生成された変換係数を表す各種のシンタックスを算術符号化することによって符号化データを生成するものである、ことを特徴としている。
【０５９４】
上記課題を解決するために、本発明に係る算術復号装置は、対象画像を単位領域毎に周波数変換することによって得られる各変換係数、及び、変換スキップ、または変換量子化バイパスによって得られる各変換係数の符号化データを復号する算術復号装置において、前記変換係数が０であるか否かを示す非０変換係数有無フラグのコンテキストインデックスを導出するコンテキストインデックス導出手段と、導出した前記コンテキストインデックスを参照して、前記非０変換係数有無フラグを算術復号するシンタックス復号手段とを備え、前記コンテキストインデックス導出手段は、変換スキップ及び変換量子化バイパスによって得られる各変換係数に対応する非０係数有無フラグについて共通のコンテキストインデックスを導出し、（１）変換スキップフラグが１、または変換量子化バイパスフラグが１の場合と、（２）そうでない場合とで、別々のコンテキストインデックスを導出し、変換スキップフラグが１、または変換量子化バイパスフラグが１の場合、単位領域のサイズに関わらず、共通のコンテキストインデックスを導出する。
【産業上の利用可能性】
【０５９５】
本発明は、算術符号化された符号化データを復号する算術復号装置、および、算術符号化された符号化データを生成する算術符号化装置に好適に用いることができる。
【符号の説明】
【０５９６】
１ 動画像復号装置（画像復号装置）
１１ 可変長符号復号部
１１１ 量子化残差情報復号部（算術復号装置）
１２０ 変換係数復号部
１２３ 係数復号制御部（サブブロック分割手段、サブブロックスキャン順設定手段）
１２４ 係数有無フラグ復号部（コンテキストインデックス導出手段、係数有無フラグ復号手段）
１２４ａ、１２４Ａａ コンテキスト導出手段選択部
１２４ｂ 位置コンテキスト導出部
１２４ｃ 隣接サブブロック係数有無コンテキスト導出部
１２４ｄ 変換スキップ・変換量子化バイパスコンテキスト導出部
１２４Ａｄ 変換スキップコンテキスト導出部
１２４ｅ 係数有無フラグ設定部
１２５ 係数値復号部（ＧＲ１フラグ復号手段、ＧＲ２フラグ復号手段）
１２５ａ 係数レベル復号部
１２５ｂ 係数サイン復号部
１２５ｃ 係数値復元部
１２５ｄ 係数数算出部
１２５ｅ 係数位置導出部
１２５ｆ サインハイディングフラグ導出部
１２５ｇ 係数和算出部
１２５ｈ サイン符号導出部
１２７ サブブロック係数有無フラグ復号部（サブブロック係数有無フラグ復号手段）
１２７ａ コンテキスト導出部
１２７ｂ サブブロック係数有無フラグ記憶部
１２７ｃ サブブロック係数有無フラグ設定部
１２８ 変換スキップ・変換量子化バイパスフラグ復号部
１３０ 算術符号復号部
１３１ コンテキスト記録更新部
１３２ ビット復号部（シンタックス復号手段）
２ 動画像符号化装置（画像符号化装置）
２７ 可変長符号符号化部
２７１ 量子化残差情報符号化部（算術符号化装置）
２２０ 変換係数符号化部
２２３ 係数符号化制御部（サブブロック分割手段、サブブロックスキャン順設定手段）
２２４ 係数有無フラグ符号化部（コンテキストインデックス導出手段）
２２４ａ、２２４Ａａ コンテキスト導出手段選択部
２２４ｂ 位置コンテキスト導出部
２２４ｃ 隣接サブブロック係数有無コンテキスト導出部
２２４ｄ 変換スキップ・変換量子化バイパスコンテキスト導出部
２２４Ａｄ 変換スキップコンテキスト導出部
２２４ｅ 係数有無フラグ設定部
２２５ 係数値符号化部（ＧＲ１フラグ符号化手段、ＧＲ２フラグ符号化手段）
２２８５ 係数値シンタックス導出部
２２５ａ 係数レベルシンタックス導出部
２２５ｂ 係数サインシンタックス導出部
２２５ｈ サインシンタックス導出及びレベル値補正部
２２７ サブブロック係数有無フラグ符号化部（サブブロック係数有無フラグ符号化手段）
２２７ａ コンテキスト導出部
２２７ｂ サブブロック係数有無フラグ記憶部
２２７ｃ サブブロック係数有無フラグ設定部
２２８ シンタックス導出部
２３０ 算術符号符号化部
２３１ コンテキスト記録更新部
２３２ ビット符号化部（シンタックス符号化手段）
【図１】
2020171063.tif 000005
【図２】
2020171063.tif 000006
【図３】
2020171063.tif 000007
【図４】
2020171063.tif 000008
【図５】
2020171063.tif 000009
【図６】
2020171063.tif 000010
【図７】
2020171063.tif 000011
【図８】
2020171063.tif 000012
【図９】
2020171063.tif 000013
【図１０】
2020171063.tif 000014
【図１１】
2020171063.tif 000015
【図１２】
2020171063.tif 000016
【図１３】
2020171063.tif 000017
【図１４】
2020171063.tif 000018
【図１５】
2020171063.tif 000019
【図１６】
2020171063.tif 000020
【図１７】
2020171063.tif 000021
【図１８】
2020171063.tif 000022
【図１９】
2020171063.tif 000023
【図２０】
2020171063.tif 000024
【図２１】
2020171063.tif 000025
【図２２】
2020171063.tif 000026
【図２３】
2020171063.tif 000027
【図２４】
2020171063.tif 000028
【図２５】
2020171063.tif 000029
【図２６】
2020171063.tif 000030
【図２７】
2020171063.tif 000031
【図２８】
2020171063.tif 000032
【図２９】
2020171063.tif 000033
【図３０】
2020171063.tif 000034
【図３１】
2020171063.tif 000035
【図３２】
2020171063.tif 000036
【図３３】
2020171063.tif 000037
【図３４】
2020171063.tif 000038
【図３５】
2020171063.tif 000039
【図３６】
2020171063.tif 000040
【図３７】
2020171063.tif 000041
【図３８】
2020171063.tif 000042
【図３９】
2020171063.tif 000043
【図４０】
2020171063.tif 000044
【図４１】
2020171063.tif 000045
【図４２】
2020171063.tif 000046
【図４３】
2020171063.tif 000047
【図４４】
2020171063.tif 000048
【図４５】
2020171063.tif 000049
【図４６】
2020171063.tif 000050
【図４７】
2020171063.tif 000051
【図４８】
2020171063.tif 000052
【図４９】
2020171063.tif 000053
【図５０】
2020171063.tif 000054
【図５１】
2020171063.tif 000055
【図５２】
2020171063.tif 000056
【図５３】
2020171063.tif 000057
【図５４】
2020171063.tif 000058
【図５５】
2020171063.tif 000059
【図５６】
2020171063.tif 000060
【図５７】
2020171063.tif 000061
【図５８】
2020171063.tif 000062
【図５９】
2020171063.tif 000063
【図６０】
2020171063.tif 000064
【図６１】
2020171063.tif 000065
【図６２】
2020171063.tif 000066
【図６３】
2020171063.tif 000067