(57)【要約】【課題】変換係数の符号化及び復号に係る処理量を削減する【解決手段】係数有無フラグ復号部１２４が備える周辺参照コンテキスト導出部１２４ｃは、当該対象サブブロックに属する各変換係数有無フラグに割り付けるコンテキストインデックスを、変換係数のスキャン方向を示すスキャンインデックスに基づいて選択された参照領域に含まれる復号済の非０変換係数の数に基づいて導出する。【選択図】図２１
2013192118.tif 000002
【特許請求の範囲】
【請求項１】
対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを復号する算術復号装置であって、
処理対象の単位領域に対応する対象周波数領域を所定サイズのサブブロックに分割するサブブロック分割手段と、
上記サブブロック分割手段により分割された各サブブロックについて、該サブブロックに非０変換係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを復号するサブブロック係数有無フラグ復号手段と、
対象周波数領域を、各周波数成分、及び、各サブブロックの少なくとも何れかを分割単位として複数の部分領域に分割する分割手段と、
各部分領域に属する各変換係数が０である否かを示すシンタックスである各変換係数有無フラグに割り付けるコンテキストインデックスを導出するコンテキストインデックス導出手段と、
各部分領域に属する各変換係数有無フラグを、該変換係数有無フラグに割りつけられたコンテキストインデックスによって指定される確率状態に基づいて算術復号するシンタックス復号手段と、
を備え、
対象サブブロックについて復号されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が少なくとも１つ含まれることを示している場合であって、当該対象サブブロックが、対象周波数領域において中周波数域の部分領域に属するものである場合、上記コンテキストインデックス導出手段は、当該対象サブブロックに属する各変換係数有無フラグに割り付けるコンテキストインデックスを、変換係数のスキャン方向を示すスキャンインデックスに基づいて選択された参照領域に含まれる復号済の非０変換係数の数に基づいて導出し、
対象サブブロックについて復号されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が含まれていないことを示している場合、当該対象サブブロックに属する全ての変換係数の各々についての変換係数有無フラグを、該変換係数が０であることを示すものとして復号処理を行う、
ことを特徴とする算術復号装置。
【請求項２】
前記スキャンインデックスが垂直方向優先スキャンを示すとき、変換係数の値の復号は水平方向優先スキャンを用い、変換係数の値の復号後にブロック全体を転置することを特徴とする請求項１に記載の算術復号装置。
【請求項３】
前記参照領域は、
前記スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する変換係数を均等に参照する参照領域であり、
前記スキャンインデックスが水平方向優先スキャンを示すとき、水平方向の変換係数を優先して参照する参照領域であり、
前記スキャンインデックスが垂直方向優先スキャンを示すときは、垂直方向の変換係数を優先して参照する参照領域であることを特徴とする請求項１または２に記載の算術復号装置。
【請求項４】
サブブロック内の係数位置に基づいて、処理順で直前に位置する座標の変換係数を含まない参照領域が選択されることを特徴とする請求項１から３の何れか１項に記載の算術復号装置。
【請求項５】
サブブロック内の係数位置に基づいて、処理対象の変換係数があるスキャン列の直前に復号されたスキャン列に位置する変換係数を含まない参照領域を選択することを特徴とする請求項１から３の何れか１項に記載の算術復号装置。
【請求項６】
前記参照領域は、
処理順で直前に位置する座標の変換係数を含まない参照領域であることを特徴とする請求項１から３の何れか１項に記載の算術復号装置。
【請求項７】
前記スキャンインデックスが水平方向優先スキャンを示すとき、サブブロック内のスキャン順が２つの４×２サブサブブロックを順にスキャンするスキャン順を用い、
前記スキャンインデックスが垂直方向優先スキャンを示すとき、サブブロック内のスキャン順として、２つの２×４サブサブブロックを順にスキャンするスキャン順を用いることを特徴とする請求項１から６の何れか１項に記載の算術復号装置。
【請求項８】
前記斜め方向スキャンは、サブブロック内の係数を斜め方向に１列毎にスキャンする斜め方向スキャンであって、
前記水平方向優先スキャンは、サブブロック内の係数を横１行毎にスキャンする水平方向優先スキャンであって、
前記垂直方向優先スキャンは、サブブロック内の係数を縦１列毎にスキャンする垂直方向優先スキャンであって、
前記斜め方向スキャンのときに適用する参照領域は、処理対象の変換係数があるスキャン列の直前に復号されたスキャン列に位置する変換係数を含まない参照領域であり、かつ
前記水平方向優先スキャン、または前記垂直方向優先スキャンのときに適用する参照領域は、処理対象の変換係数があるスキャン列に位置する復号済の変換係数を含まない参照領域であることを特徴とする請求項３に記載の算術復号装置。
【請求項９】
前記斜め方向スキャンは、正方形のサブブロック内の係数を斜め方向に１列毎にスキャンする斜め方向スキャンであり、
前記水平方向優先スキャンは、横長のサブブロック内の係数を斜め方向に１列毎にスキャンする水平方向優先スキャンであり、
前記垂直方向優先スキャンは、縦長のサブブロック内の係数を斜め方向に１列毎にスキャンする垂直方向優先スキャンであり、
サブブロック内の係数位置に基づいて、処理順で直前に位置する座標の変換係数を含まない参照領域が選択されることを特徴とする請求項３に記載の算術復号装置。
【請求項１０】
前記斜め方向スキャンは、正方形のサブブロック内の係数を斜め方向に１列毎にスキャンする斜め方向スキャンであり、
前記水平方向優先スキャンは、横長のサブブロック内の係数を水平方向にジグザグにスキャンする水平方向優先スキャンであり、
前記垂直方向優先スキャンは、縦長のサブブロック内の係数を垂直方向にジグザグにスキャンする垂直方向優先スキャンであり、
前記参照領域は、処理順で直前に位置する座標の変換係数を含まない参照領域であることを特徴とする請求項３に記載の算術復号装置。
【請求項１１】
対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを復号する算術復号装置であって、
処理対象の単位領域に対応する対象周波数領域を所定サイズのサブブロックに分割するサブブロック分割手段と、
上記サブブロック分割手段により分割された各サブブロックについて、該サブブロックに非０変換係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを復号するサブブロック係数有無フラグ復号手段と、
対象周波数領域を、各周波数成分、及び、各サブブロックの少なくとも何れかを分割単位として複数の部分領域に分割する分割手段と、
各部分領域に属する各変換係数が０である否かを示すシンタックスである各変換係数有無フラグに割り付けるコンテキストインデックスを導出するコンテキストインデックス導出手段と、
各部分領域に属する各変換係数有無フラグを、該変換係数有無フラグに割りつけられたコンテキストインデックスによって指定される確率状態に基づいて算術復号するシンタックス復号手段と、
を備え、
対象サブブロックについて復号されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が少なくとも１つ含まれることを示している場合であって、当該対象サブブロックが、対象周波数領域において中周波数域の部分領域に属するものである場合、上記コンテキストインデックス導出手段は、当該対象サブブロックに属する各変換係数有無フラグに割り付けるコンテキストインデックスを、処理対象の変換係数より前に復号された変換係数のうち、スキャン順で定まる所定範囲に含まれる復号済の非０変換係数の数に基づいて導出し、
対象サブブロックについて復号されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が含まれていないことを示している場合、当該対象サブブロックに属する全ての変換係数の各々についての変換係数有無フラグを、該変換係数が０であることを示すものとして復号処理を行う、
ことを特徴とする算術復号装置。
【請求項１２】
前記スキャン順で定まる所定範囲は、
スキャン順でｎ番目の処理対象の変換係数を基準として、スキャン順でｎ＋１からｎ＋Ｐ番目までのＰ個（Ｐは自然数）の変換係数を除く、スキャン順でｎ＋Ｐ＋１からｎ＋Ｐ＋Ｑ番目（Ｑは自然数）までの変換係数を含む第１の参照範囲、または、
スキャン順でｎ＋Ｐ＋１からスキャン順で、処理対象の変換係数を含むブロックの終端に位置する係数までの変換係数を含む第２の参照範囲のうち、参照係数の個数が少ない方の参照範囲であることを特徴とする請求項１１に記載の算術復号装置。
【請求項１３】
前記スキャン順で定まる所定範囲は、
スキャン順でｎ番目の処理対象の変換係数を基準として、スキャン順でｎ＋１からｎ＋Ｐ番目までのＰ個（Ｐは自然数）の変換係数を除く、スキャン順でｎ＋Ｐ＋１からｎ＋Ｐ＋Ｑ番目（Ｑは自然数）までの変換係数を含む第１の参照範囲、または、
スキャン順でｎ＋Ｐ＋１からスキャン順で、処理対象の変換係数を含むサブブロックの終端に位置する係数までの変換係数を含む第２の参照範囲のうち、参照係数の個数が少ない方の参照範囲であることを特徴とする請求項１１に記載の算術復号装置。
【請求項１４】
請求項１から１３の何れか１項に記載の算術復号装置と、
上記算術復号装置によって復号された変換係数を逆周波数変換することによって残差画像を生成する逆周波数変換手段と、
上記逆周波数変換手段によって生成された残差画像と、生成済みの復号画像から予測された予測画像とを加算することによって復号画像を生成する復号画像生成手段と、
を備えていることを特徴とする画像復号装置。
【請求項１５】
対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを生成する算術符号化装置であって、
処理対象の単位領域に対応する対象周波数領域を所定サイズのサブブロックに分割するサブブロック分割手段と、
上記サブブロック分割手段により分割された各サブブロックについて、該サブブロックに非０変換係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを符号化するサブブロック係数有無フラグ符号化手段と、
対象周波数領域を、各周波数成分、及び、各サブブロックの少なくとも何れかを分割単位として複数の部分領域に分割する分割手段と、
各部分領域に属する各変換係数が０である否かを示すシンタックスである各変換係数有無フラグに割り付けるコンテキストインデックスを導出するコンテキストインデックス導出手段と、
各部分領域に属する各変換係数有無フラグを、該変換係数有無フラグに割りつけられたコンテキストインデックスによって指定される確率状態に基づいて算術符号化するシンタックス符号化手段と、
を備え、
対象サブブロックについて符号化されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が少なくとも１つ含まれることを示している場合であって、当該対象サブブロックが、対象周波数領域において中周波数域の部分領域に属するものである場合、上記コンテキストインデックス導出手段は、当該対象サブブロックに属する各変換係数有無フラグに割り付けるコンテキストインデックスを、変換係数のスキャン方向を示すスキャンインデックスに基づいて選択された参照領域に含まれる符号化済の非０変換係数の数に基づいて導出し、
対象サブブロックについて符号化されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が含まれていないことを示している場合、当該対象サブブロックに属する全ての変換係数の各々についての変換係数有無フラグを、該変換係数が０であることを示すものとして符号化処理を行う、
ことを特徴とする算術符号化装置。
【請求項１６】
対象画像を単位領域毎に周波数変換することによって周波数成分毎に得られる各変換係数について、該変換係数を表す各種シンタックスを算術符号化することによって得られた符号化データを生成する算術符号化装置であって、
処理対象の単位領域に対応する対象周波数領域を所定サイズのサブブロックに分割するサブブロック分割手段と、
上記サブブロック分割手段により分割された各サブブロックについて、該サブブロックに非０変換係数が少なくとも１つ含まれるか否かを表すサブブロック係数有無フラグを符号化するサブブロック係数有無フラグ符号化手段と、
対象周波数領域を、各周波数成分、及び、各サブブロックの少なくとも何れかを分割単位として複数の部分領域に分割する分割手段と、
各部分領域に属する各変換係数が０である否かを示すシンタックスである各変換係数有無フラグに割り付けるコンテキストインデックスを導出するコンテキストインデックス導出手段と、
各部分領域に属する各変換係数有無フラグを、該変換係数有無フラグに割りつけられたコンテキストインデックスによって指定される確率状態に基づいて算術符号化するシンタックス符号化手段と、
を備え、
対象サブブロックについて符号化されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が少なくとも１つ含まれることを示している場合であって、当該対象サブブロックが、対象周波数領域において中周波数域の部分領域に属するものである場合、上記コンテキストインデックス導出手段は、当該対象サブブロックに属する各変換係数有無フラグに割り付けるコンテキストインデックスを、処理対象の変換係数より前に符号化された変換係数のうち、スキャン順で定まる所定範囲に含まれる符号化済みの非０変換係数の数に基づいて導出し、
対象サブブロックについて符号化されたサブブロック係数有無フラグが、当該対象サブブロックに非０変換係数が含まれていないことを示している場合、当該対象サブブロックに属する全ての変換係数の各々についての変換係数有無フラグを、該変換係数が０であることを示すものとして符号化処理を行う、
ことを特徴とする算術符号化装置。
【請求項１７】
符号化対象画像と予測画像との残差画像を単位領域毎に周波数変換することによって変換係数を生成する変換係数生成手段と、
請求項１５または１６に記載の算術符号化装置と、
を備えており、
上記算術符号化装置は、上記変換係数生成手段によって生成された変換係数を表す各種のシンタックスを算術符号化することによって符号化データを生成するものである、
ことを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算術符号化された符号化データを復号する算術復号装置、および、そのような算術復号装置を備えている画像復号装置に関する。また、算術符号化された符号化データを生成する算術符号化装置、および、そのような算術符号化装置を備えている画像符号化装置に関する。また、算術符号化装置によって生成され、算術復号装置によって参照される符号化データのデータ構造に関する。
【背景技術】
【０００２】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置（画像符号化装置）、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置（画像復号装置）が用いられている。
【０００３】
具体的な動画像符号化方式としては、例えば、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣや、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている方式（非特許文献１）などが挙げられる。
【０００４】
このような動画像符号化方式においては、動画像を構成する画像（ピクチャ）は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化単位（コーディングユニット（Coding Unit）と呼ばれることもある）、及び、符号化単位を分割することより得られるブロックおよびパーティションからなる階層構造により管理され、普通、ブロックごとに符号化／復号される。
【０００５】
また、このような符号化方式においては、通常、入力画像を符号化及び復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像と入力画像との差分画像（「残差画像」または「予測残差」と呼ぶこともある）をブロック毎にＤＣＴ（Discrete Cosine Transform）変換等の周波数変換を施すことによって得られる変換係数が符号化される。
【０００６】
変換係数の具体的な符号化の方式としては、コンテキスト適応型２値算術符号化（CABAC：Context-based Adaptive Binary Arithmetic Coding）が知られている。
【０００７】
ＣＡＢＡＣでは、変換係数を表す各種のシンタックスに対して２値化処理が施され、この２値化処理によって得られた２値データが算術符号化される。ここで、上記各種のシンタックスとしては、変換係数が０であるか否かを示すフラグ、すなわち非０変換係数の有無を示すフラグsignificant_coeff_flag（変換係数有無フラグとも呼ぶ）、並びに、処理順で最後の非０変換係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yなどが挙げられる。
【０００８】
また、ＣＡＢＡＣでは、シンボル（２値データの１ビット、Ｂｉｎとも呼ぶ）を１つ符号化する際、処理対象の周波数成分に割り付けられたコンテキストインデックスが参照され、当該コンテキストインデックスによって指定されるコンテキスト変数に含まれる確率状態インデックスの指し示す発生確率に応じた算術符号化が行われる。また、確率状態インデックスによって指定される発生確率は、シンボルを１つ符号化する毎に更新される。
【０００９】
非特許文献１には、例えば、処理対象ブロックのサイズが所定サイズ以上である場合には、以下の（１）〜（５）の手順を実行することで、変換係数有無フラグ（significant_coeff_flag）の復号（符号化）時に参照されるコンテキストインデックスを導出する技術が記載されている。
【００１０】
（１）処理対象ブロックの周波数領域を複数の部分領域に分割する。また、分割により得られた複数の部分領域が、低周波側〜高周波側のいずれに属するかに応じて以下の（２）〜（４）を実行する。
【００１１】
（２）低周波数側の部分領域に含まれる周波数成分に対して、周波数領域内での当該周波数成分の位置に応じて定まるコンテキストインデックス（位置コンテキストとも呼ぶ）を導出する。
【００１２】
（３）中周波数域の部分領域に含まれる周波数成分に対して、当該周波数成分の周辺の周波数成分における非ゼロ係数の数に応じて定まるコンテキストインデックス（周辺参照コンテキストとも呼ぶ）を導出する。
【００１３】
（４）高周波数域側の部分領域に含まれる周波数成分に対して、固定のコンテキストインデックスを導出する。
【００１４】
（５）処理対象ブロックのサイズが所定サイズ未満である場合には、さらに、周波数領域内での当該周波数成分の位置に応じて定まるコンテキストインデックス（位置コンテキストとも呼ぶ）を導出する。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】「High Efficiency Video Coding (HEVC) text specification draft 6 (JCTVC-H1003_dK)」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: San Jose, US, 1-10 Feburary, 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）を示し、（ｃ）は、ＴＵサイズが４×４であるときの、垂直方向優先スキャン（vertical fast scan）、及び、（ｄ）は、ＴＵサイズが４×４であるときの、斜め方向スキャン（Up-right diagonal scan）の各スキャンのスキャン順の一例を示している。なお、（ｂ）に示す水平方向優先スキャンは、サブブロックを上下半分に分割した小サブブロック単位に、水平方向へ斜め１列毎に係数をスキャンすることを特徴とし、（ｃ）に示す垂直方向優先スキャンは、サブブロックを左右半分に分割した小サブブロック単位に垂直方向へ斜め１列毎に係数をスキャンすることを特徴としている。
【図１５】ブロックおよびサブブロックのスキャン順について示す図である。（ａ）〜（ｃ）は、ＴＵサイズが８×８であり、かつ、サブブロックサイズが４×４であるとき、スキャンインデックスscanIdxで指定される各スキャンタイプのスキャン順の一例を示している。また、（ａ）〜（ｃ）に示す各例における矢印は、順スキャン方向を示している。なお、（ａ）に示す水平方向優先スキャンは、サブブロックを上下半分に分割した小サブブロック単位に、水平方向へ斜め１列毎に係数をスキャンすることを特徴とし、（ｂ）に示す垂直方向優先スキャンは、サブブロックを左右半分に分割した小サブブロック単位に垂直方向へ斜め１列毎に係数をスキャンすることを特徴としている。
【図１６】ブロックおよびサブブロックのスキャン順について示す図である。（ａ）〜（ｃ）は、ＴＵサイズが８×８であり、かつ、サブブロックサイズが異なるとき、スキャンインデックスscanIdxで指定される各スキャンタイプのスキャン順の一例を示している。また、（ａ）〜（ｃ）に示す各例における矢印は、順スキャン方向を示している。なお、（ａ）に示す水平方向優先スキャンは、横長のサブブロック単位に、水平方向へ斜め１列毎に係数をスキャンすることを特徴とし、（ｂ）に示す垂直方向優先スキャンは、縦長のサブブロックを単位に垂直方向へ斜め１列毎に係数をスキャンすることを特徴としている。
【図１７】実施形態に係るサブブロック係数有無フラグ復号部の構成を示すブロック図である。
【図１８】実施形態に係るサブブロック係数有無フラグ復号部による復号処理を説明するための図であって、（ａ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの下側に隣接する隣接サブブロック（ｘＣＧ、ｙＣＧ＋１）とを示しており、（ｂ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの右側に隣接する隣接サブブロック（ｘＣＧ＋１、ｙＣＧ）とを示しており、（ｃ）は、対象サブブロック（ｘＣＧ、ｙＣＧ）と、対象サブブロックの下側に隣接する隣接サブブロック（ｘＣＧ、ｙＣＧ＋１）と、対象サブブロックの右側に隣接する隣接サブブロック（ｘＣＧ＋１、ｙＣＧ）とを示している。
【図１９】実施形態に係るサブブロック係数有無フラグ符号化及び復号処理を説明するための図であって、（ａ）は、１６×１６ＴＵの周波数領域に存在する変換係数を示しており、（ｂ）は、各サブブロックに割り付けられたサブブロック係数有無フラグを示している。
【図２０】実施形態に係るコンテキストインデックス導出処理を説明するための図であって、（ａ）は、４×４成分のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示しており、（ｂ）は、４×４成分のサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示しており、（ｃ）は、８×８成分のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙ、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示している。
【図２１】実施形態に係る係数有無フラグ復号部の第１の構成例を示すブロック図である。
【図２２】実施形態に係る係数有無フラグ復号部の備える導出方法制御部による分類処理を説明するための図であって、（ａ）は、輝度に関する変換係数を復号する際に好適に適用される部分領域分割を示しており、（ｂ）は、色差に関する変換係数を復号する際に好適に適用される部分領域分割を示している。
【図２３】実施形態に係る係数有無フラグ復号部の備える周辺参照コンテキスト導出部によって、復号処理が逆スキャン順に行われる場合に参照される参照周波数成分を説明するための図であって、（ａ）は、周波数成分上の位置と選択するテンプレートの関係を示しており、（ｂ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５を対象周波数成分ｘとの相対位置を示しており、（ｃ）は、参照周波数成分ｃ１、ｃ２、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しており、（ｄ）は、参照周波数成分ｃ１、ｃ２、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しおり、（ｅ）は、４×４サブブロックにおける斜め方向スキャンのスキャン順（逆スキャン順）を表わしている。
【図２４】実施形態に係る係数有無フラグ復号部の備える周辺参照コンテキスト導出部によって、復号処理が逆スキャン順に行われる場合に参照される参照周波数成分を説明するための図であって、（ａ）は、周波数成分上の位置と選択するテンプレートの関係を示しており、（ｂ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５を対象周波数成分ｘとの相対位置を示しており、（ｃ）は、参照周波数成分ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しており、（ｄ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しおり、（ｅ）は、４×４サブブロックにおける水平方向優先スキャンのスキャン順（逆スキャン順）を表わしている。
【図２５】実施形態に係る係数有無フラグ復号部の備える周辺参照コンテキスト導出部によって、復号処理が逆スキャン順に行われる場合に参照される参照周波数成分を説明するための図であって、（ａ）は、周波数成分上の位置と選択するテンプレートの関係を示しており、（ｂ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５を対象周波数成分ｘとの相対位置を示しており、（ｃ）は、参照周波数成分ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しており、（ｄ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しおり、（ｅ）は、４×４サブブロックにおける垂直方向優先スキャンのスキャン順（逆スキャン順）を表わしている。
【図２６】実施形態に係る係数有無フラグ復号部の第１の構成例の動作を示すフローチャートである。
【図２７】実施形態に係るコンテキスト導出部の動作を説明するための図であって、コンテキスト導出部を構成する導出方法制御部、位置コンテキスト導出部および周辺参照コンテキスト導出部によるコンテキストインデックス導出処理を示すフローチャートである。
【図２８】実施形態に係るコンテキスト導出部の動作を説明するための図であって、コンテキスト導出部の備える周辺参照コンテキスト導出部によるコンテキストインデックス導出処理をより具体的に説明するためのフローチャートである。
【図２９】実施形態に係る係数有無フラグ復号部の備える周辺参照コンテキスト導出部によって、復号処理が逆スキャン順に行われる場合に参照される参照周波数成分を説明するための図であって、（ａ）は、４×４サブブロックにおいて、横１行毎に係数をスキャンする水平方向優先スキャンのスキャン順（逆スキャン順）を表わし、（ｂ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５を対象周波数成分ｘとの相対位置を示しており、（ｃ）は、参照周波数成分ｃ１、ｃ２、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しており、（ｄ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しおり、（ｅ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４と対象周波数成分ｘとの相対位置を示しており、（ｆ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示している。
【図３０】実施形態に係る係数有無フラグ復号部の備える周辺参照コンテキスト導出部によって、復号処理が逆スキャン順に行われる場合に参照される参照周波数成分を説明するための図であって、（ａ）は、４×４サブブロックにおいて、縦１列毎に係数をスキャンする垂直方向優先スキャンのスキャン順（逆スキャン順）を表わし、（ｂ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５を対象周波数成分ｘとの相対位置を示しており、（ｃ）は、参照周波数成分ｃ１、ｃ２、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しており、（ｄ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４、ｃ５と対象周波数成分ｘとの相対位置を示しおり、（ｅ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４と対象周波数成分ｘとの相対位置を示しており、（ｆ）は、参照周波数成分ｃ１、ｃ２、ｃ３、ｃ４ｃ、ｃ５と対象周波数成分ｘとの相対位置を示している。
【図３１】スキャンインデックスscanIdxが水平方向優先スキャンを示す場合における８×２サブブロック内のスキャンの一例について示す図である。（ａ）は、８×２サブブロック内の周波数成分上の位置と、それぞれの位置において選択されるテンプレートの関係を示す。（ｂ）は、（ａ）において、（ｂ）で示す位置において選択されるテンプレートを示す。（ｃ）は、（ａ）において、（ｃ）で示す位置において選択されるテンプレートを示す。（ｄ）は、８×２サブブロックにおける水平方向優先スキャンのスキャン順（逆スキャン順）を示す。
【図３２】スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合における２×８サブブロック内のスキャンの一例について示す図である。（ａ）は、２×８サブブロック内の周波数成分上の位置と、それぞれの位置において選択されるテンプレートの関係を示す。（ｂ）は、（ａ）において、（ｂ）で示す位置において選択されるテンプレートを示す。（ｃ）は、（ａ）において、（ｃ）で示す位置において選択されるテンプレートを示す。（ｄ）は、２×８サブブロックにおける垂直方向優先スキャンのスキャン順（逆スキャン順）を示す。
【図３３】スキャンインデックスscanIdxが水平方向優先スキャンを示す場合における８×２サブブロック内のスキャンの他の例について示す図である。（ａ）は、８×２サブブロック内の周波数成分上の位置と、それぞれの位置において選択されるテンプレートの関係を示す。（ｂ）は、（ａ）において、（ｂ）で示す位置において選択されるテンプレートを示す。（ｃ）は、（ａ）において、（ｃ）で示す位置において選択されるテンプレートを示す。（ｄ）は、水平方向の係数を優先して参照するテンプレートを示す。（ｅ）は、８×２サブブロックにおける水平方向優先スキャンのスキャン順（逆スキャン順）を示す。
【図３４】スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合における２×８サブブロック内のスキャンの他の例について示す図である。（ａ）は、２×８サブブロック内の周波数成分上の位置と、それぞれの位置において選択されるテンプレートの関係を示す。（ｂ）は、（ａ）において、（ｂ）で示す位置において選択されるテンプレートを示す。（ｃ）は、（ａ）において、（ｃ）で示す位置において選択されるテンプレートを示す。（ｄ）は、垂直方向の係数を優先して参照するテンプレートを示す。（ｅ）は、２×８サブブロックにおける垂直方向優先スキャンのスキャン順（逆スキャン順）を示す。
【図３５】実施形態に係る係数有無フラグ復号部の第２の構成例を示すブロック図である。
【図３６】図３５に示すスキャン順係数参照コンテキスト導出部において、処理対象の係数と、処理対象より直前に復号（符号化）された係数において、非０変換係数の個数をカウントするために参照する変換係数、および参照しない変換係数とのスキャン順における位置関係を説明するための図である。
【図３７】実施形態に係るコンテキスト導出部の動作を説明するための図であって、（ａ）は、コンテキスト導出部を構成する導出方法制御部、位置コンテキスト導出部およびスキャン順係数参照コンテキスト導出部によるコンテキストインデックス導出処理を示すフローチャートである。
【図３８】実施形態に係る変換係数復号部による変換係数復号処理の流れを示すフローチャートである。
【図３９】実施形態に係る変換係数復号部によるスキャンインデックスを設定する処理の流れを示すフローチャートである。
【図４０】実施形態に係る変換係数復号部によるサブブロック係数有無フラグを復号する処理の流れを示すフローチャートである。
【図４１】実施形態に係る変換係数復号部によるサブブロック内の各非ゼロ変換係数有無フラグsignificant_coeff_flagを復号する処理の流れを示すフローチャートである。
【図４２】実施形態に係る動画像符号化装置の構成を示すブロック図である。
【図４３】実施形態に係る動画像符号化装置の備える可変長符号符号化部の構成を示すブロック図である。
【図４４】本発明の実施形態に係る動画像符号化装置の備える量子化残差情報符号化部の構成を示すブロック図である。
【図４５】実施形態に係る係数有無フラグ符号化部の第１の構成例を示すブロック図である。
【図４６】実施形態に係るサブブロック係数有無フラグ符号化部の構成を示すブロック図である。
【図４７】実施形態に係る係数有無フラグ符号化部の第２の構成例を示すブロック図である。
【図４８】上記動画像符号化装置を搭載した送信装置、および、上記動画像復号装置を搭載した受信装置の構成について示した図である。（ａ）は、動画像符号化装置を搭載した送信装置を示しており、（ｂ）は、動画像復号装置を搭載した受信装置を示している。
【図４９】上記動画像符号化装置を搭載した記録装置、および、上記動画像復号装置を搭載した再生装置の構成について示した図である。（ａ）は、動画像符号化装置を搭載した記録装置を示しており、（ｂ）は、動画像復号装置を搭載した再生装置を示している。
【図５０】変換係数復号部１２０による変換係数復号処理の流れの一変形例を示すフローチャートである。
【図５１】変換係数の転置を説明する図である。（ａ）は４×４ＴＵが変換される例を示す。また（ｂ）は８×４ＴＵが４×８ＴＵに変換される例を示す。
【図５２】変換係数復号部１２０による変換係数復号処理の流れの他の変形例を示すフローチャートである。
【発明を実施するための形態】
【００６３】
本発明に係る復号装置および符号化装置の実施形態について図面に基づいて説明すれば以下のとおりである。なお、本実施形態に係る復号装置は、符号化データから動画像を復号するものである。したがって、以下では、これを「動画像復号装置」と呼称する。また、本実施形態に係る符号化装置は、動画像を符号化することによって符号化データを生成するものである。したがって、以下では、これを「動画像符号化装置」と呼称する。
【００６４】
ただし、本発明の適用範囲はこれに限定されるものではない。すなわち、以下の説明からも明らかなように、本発明の特徴は複数のフレームを前提としなくとも成立するものである。すなわち、動画像を対象とするか静止画像を対象とするかを問わず、復号装置一般および符号化装置一般に適用できるものである。
〔符号化データ＃１の構成〕
図２を用いて、動画像符号化装置２によって生成され、動画像復号装置１によって復号される符号化データ＃１の構成例について説明する。符号化データ＃１は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
【００６５】
シーケンスレイヤでは、処理対象のシーケンスを復号するために、動画像復号装置１が参照するデータの集合が規定されている。シーケンスレイヤにはシーケンスパラメータセットＳＰＳ、ピクチャパラメータセットＰＰＳ、ピクチャＰＩＣＴを含んでいる。
【００６６】
符号化データ＃１におけるピクチャレイヤ以下の階層の構造を図２に示す。図２の（ａ）〜（ｄ）は、それぞれ、ピクチャＰＩＣＴを規定するピクチャレイヤ、スライスＳを規定するスライスレイヤ、ツリーブロック（Tree block）ＴＢＬＫを規定するツリーブロックレイヤ、ツリーブロックＴＢＬＫに含まれる符号化単位（Coding Unit；ＣＵ）を規定するＣＵレイヤを示す図である。
【００６７】
（ピクチャレイヤ）
ピクチャレイヤでは、処理対象のピクチャＰＩＣＴ（以下、対象ピクチャとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。ピクチャＰＩＣＴは、図２の（ａ）に示すように、ピクチャヘッダＰＨ、及び、スライスＳ1〜ＳNSを含んでいる（ＮＳはピクチャＰＩＣＴに含まれるスライスの総数）。
【００６８】
なお、以下、スライスＳ1〜ＳNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ＃１に含まれるデータであって、添え字を付している他のデータについても同様である。
【００６９】
ピクチャヘッダＰＨには、対象ピクチャの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれている。
【００７０】
（スライスレイヤ）
スライスレイヤでは、処理対象のスライスＳ（対象スライスとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。スライスＳは、図２の（ｂ）に示すように、スライスヘッダＳＨ、及び、ツリーブロックＴＢＬＫ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
以下、横幅Ｗ×縦幅Ｈのサイズを有するＴＵをＷ×ＨＴＵと呼ぶ（例：４×４ＴＵ）。
【００９７】
（符号化単位情報のデータ構造）
続いて、図２の（ｄ）を参照しながら符号化単位情報ＣＵに含まれるデータの具体的な内容について説明する。図２の（ｄ）に示すように、符号化単位情報ＣＵは、具体的には、スキップモードフラグＳＫＩＰ、ＣＵ予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅ、ＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩを含む。
【００９８】
［スキップフラグ］
スキップフラグＳＫＩＰは、対象ＣＵについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグＳＫＩＰの値が１の場合、すなわち、対象ＣＵにスキップモードが適用されている場合、その符号化単位情報ＣＵにおけるＰＴ情報ＰＴＩは省略される。なお、スキップフラグＳＫＩＰは、Ｉスライスでは省略される。
【００９９】
［ＣＵ予測タイプ情報］
ＣＵ予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅは、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅおよびＰＵ分割タイプ情報ＰａｒｔＭｏｄｅを含む。ＣＵ予測タイプ情報のことを単に予測タイプ情報と呼ぶこともある。
【０１００】
ＣＵ予測方式情報ＰｒｅｄＭｏｄｅは、対象ＣＵに含まれる各ＰＵについての予測画像生成方法として、イントラ予測（イントラＣＵ）、および、インター予測（インターＣＵ）のいずれを用いるのかを指定するものである。なお、以下では、対象ＣＵにおける、スキップ、イントラ予測、および、インター予測の種別を、ＣＵ予測モードと称する。
【０１０１】
ＰＵ分割タイプ情報ＰａｒｔＭｏｄｅは、対象符号化単位（ＣＵ）の各ＰＵへの分割のパターンであるＰＵ分割タイプを指定するものである。以下、このように、ＰＵ分割タイプに従って、対象符号化単位（ＣＵ）を各ＰＵへ分割することをＰＵ分割と称する。
【０１０２】
ＰＵ分割タイプ情報ＰａｒｔＭｏｄｅは、例示的には、ＰＵ分割パターンの種類を示すインデックスであってもよいし、対象予測ツリーに含まれる各ＰＵの形状、サイズ、および、対象予測ツリー内での位置が指定されていてもよい。
【０１０３】
なお、選択可能なＰＵ分割タイプは、ＣＵ予測方式とＣＵサイズに応じて異なる。また、さらにいえば、選択可能なＰＵ分割タイプは、インター予測およびイントラ予測それぞれの場合において異なる。また、ＰＵ分割タイプの詳細については後述する。
【０１０４】
［ＰＴ情報］
ＰＴ情報ＰＴＩは、対象ＣＵに含まれるＰＴに関する情報である。言い換えれば、ＰＴ情報ＰＴＩは、ＰＴに含まれる１または複数のＰＵそれぞれに関する情報の集合である。上述のとおり予測画像の生成は、ＰＵを単位として行われるので、ＰＴ情報ＰＴＩは、動画像復号装置１によって予測画像が生成される際に参照される。ＰＴ情報ＰＴＩは、図２の（ｄ）に示すように、各ＰＵにおける予測情報等を含むＰＵ情報ＰＵＩ１〜ＰＵＩＮＰ（ＮＰは、対象ＰＴに含まれるＰＵの総数）を含む。
【０１０５】
予測情報ＰＵＩは、予測タイプ情報Ｐｒｅｄ＿ｍｏｄｅが何れの予測方法を指定するのかに応じて、イントラ予測パラメータＰＰ＿Ｉｎｔｒａ、または、インター予測パラメータＰＰ＿Ｉｎｔｅｒを含む。以下では、イントラ予測が適用されるＰＵをイントラＰＵとも呼称し、インター予測が適用されるＰＵをインターＰＵとも呼称する。
【０１０６】
インター予測パラメータＰＰ＿Ｉｎｔｅｒは、動画像復号装置１が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータを含む。
【０１０７】
インター予測パラメータＰＰ＿Ｉｎｔｅｒとしては、例えば、マージフラグ（ｍｅｒｇｅ＿ｆｌａｇ）、マージインデックス（ｍｅｒｇｅ＿ｉｄｘ）、推定動きベクトルインデックス（ｍｖｐ＿ｉｄｘ）、参照画像インデックス（ｒｅｆ＿ｉｄｘ）、インター予測フラグ（ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ）、および動きベクトル残差（ｍｖｄ）が挙げられる。
【０１０８】
イントラ予測パラメータＰＰ＿Ｉｎｔｒａは、動画像復号装置１が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータを含む。
【０１０９】
イントラ予測パラメータＰＰ＿Ｉｎｔｒａとしては、例えば、推定予測モードフラグ、推定予測モードインデックス、および、残余予測モードインデックスが挙げられる。
【０１１０】
なお、イントラ予測パラメータには、ＰＣＭモードを用いるか否かを示すＰＣＭモードフラグが含まれていてもよい。ＰＣＭモードフラグが符号化されている場合であって、ＰＣＭモードフラグがＰＣＭモードを用いることを示しているときには、予測処理（イントラ）、変換処理、および、エントロピー符号化の各処理が省略される。
【０１１１】
［ＴＴ情報］
ＴＴ情報ＴＴＩは、ＣＵに含まれるＴＴに関する情報である。言い換えれば、ＴＴ情報ＴＴＩは、ＴＴに含まれる１または複数のＴＵそれぞれに関する情報の集合であり、動画像復号装置１により残差データを復号する際に参照される。なお、以下、ＴＵのことをブロックと称することもある。
【０１１２】
ＴＴ情報ＴＴＩは、図２の（ｄ）に示すように、対象ＣＵの各変換ブロックへの分割パターンを指定するＴＴ分割情報ＳＰ＿ＴＵ、および、ＴＵ情報ＴＵＩ1〜ＴＵＩNT（ＮＴは、対象ＣＵに含まれるブロックの総数）を含んでいる。
【０１１３】
ＴＴ分割情報ＳＰ＿ＴＵは、具体的には、対象ＣＵに含まれる各ＴＵの形状、サイズ、および、対象ＣＵ内での位置を決定するための情報である。例えば、ＴＴ分割情報ＳＰ＿ＴＵは、対象となるノードの分割を行うのか否かを示す情報（split_transform_flag）と、その分割の深度を示す情報（trafoDepth）とから実現することができる。
【０１１４】
また、例えば、ＣＵのサイズが、６４×６４の場合、分割により得られる各ＴＵは、３２×３２画素から４×４画素までのサイズを取り得る。
【０１１５】
ＴＵ情報ＴＵＩ1〜ＴＵＩNTは、ＴＴに含まれる１または複数のＴＵそれぞれに関する個別の情報である。例えば、ＴＵ情報ＴＵＩは、量子化予測残差（量子化残差とも呼ぶ）を含んでいる。
【０１１６】
各量子化予測残差は、動画像符号化装置２が以下の処理１〜３を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
【０１１７】
処理１：符号化対象画像から予測画像を減算した予測残差を周波数変換（例えばＤＣＴ変換（Discrete Cosine Transform））する；
処理２：処理１にて得られた変換係数を量子化する；
処理３：処理２にて量子化された変換係数を可変長符号化する；
なお、上述した量子化パラメータｑｐは、動画像符号化装置２が変換係数を量子化する際に用いた量子化ステップＱＰの大きさを表す（ＱＰ＝２qp/6）。
【０１１８】
（ＰＵ分割タイプ）
ＰＵ分割タイプには、対象ＣＵのサイズを２Ｎ×２Ｎ画素とすると、次の合計８種類のパターンがある。すなわち、２Ｎ×２Ｎ画素、２Ｎ×Ｎ画素、Ｎ×２Ｎ画素、およびＮ×Ｎ画素の４つの対称的分割（symmetric splittings）、並びに、２Ｎ×ｎＵ画素、２Ｎ×ｎＤ画素、ｎＬ×２Ｎ画素、およびｎＲ×２Ｎ画素の４つの非対称的分割（asymmetric splittings）である。なお、Ｎ＝２ｍ（ｍは１以上の任意の整数）を意味している。以下、対称ＣＵを分割して得られる領域のことをパーティションとも称する。
【０１１９】
図３の（ａ）〜（ｈ）に、それぞれの分割タイプについて、ＣＵにおけるＰＵ分割の境界の位置を具体的に図示している。
【０１２０】
図３の（ａ）は、ＣＵの分割を行わない２Ｎ×２ＮのＰＵ分割タイプを示している。また、図３の（ｂ）、（ｃ）、および（ｄ）は、それぞれ、ＰＵ分割タイプが、２Ｎ×Ｎ、２Ｎ×ｎＵ、および、２Ｎ×ｎＤである場合のパーティションの形状について示している。また、図３の（ｅ）、（ｆ）、および（ｇ）は、それぞれ、ＰＵ分割タイプが、Ｎ×２Ｎ、ｎＬ×２Ｎ、および、ｎＲ×２Ｎである場合のパーティションの形状について示している。また、図３の（ｈ）は、ＰＵ分割タイプが、Ｎ×Ｎである場合のパーティションの形状を示している。
【０１２１】
図３の（ａ）および（ｈ）のＰＵ分割タイプのことを、そのパーティションの形状に基づいて、正方形分割とも称する。また、図３の（ｂ）〜（ｇ）のＰＵ分割タイプのことは、非正方形分割とも称する。
【０１２２】
また、図３の（ａ）〜（ｈ）において、各領域に付した番号は、領域の識別番号を示しており、この識別番号順に、領域に対して処理が行われる。すなわち、当該識別番号は、領域のスキャン順を表している。
【０１２３】
［インター予測の場合の分割タイプ］
インターＰＵでは、上記８種類の分割タイプのうち、Ｎ×Ｎ（図３の（ｈ））以外の７種類が定義されている。なお、上記６つの非対称的分割は、ＡＭＰ（Asymmetric Motion Partition）と呼ばれることもある。
【０１２４】
また、Ｎの具体的な値は、当該ＰＵが属するＣＵのサイズによって規定され、ｎＵ、ｎＤ、ｎＬ、および、ｎＲの具体的な値は、Ｎの値に応じて定められる。例えば、１２８×１２８画素のインターＣＵは、１２８×１２８画素、１２８×６４画素、６４×１２８画素、６４×６４画素、１２８×３２画素、１２８×９６画素、３２×１２８画素、および、９６×１２８画素のインターＰＵへ分割することが可能である。
【０１２５】
［イントラ予測の場合の分割タイプ］
イントラＰＵでは、次の２種類の分割パターンが定義されている。対象ＣＵを分割しない、すなわち対象ＣＵ自身が１つのＰＵとして取り扱われる分割パターン２Ｎ×２Ｎと、対象ＣＵを、４つのＰＵへと対称的に分割するパターンＮ×Ｎと、である。
【０１２６】
したがって、イントラＰＵでは、図３に示した例でいえば、（ａ）および（ｈ）の分割パターンを取ることができる。
【０１２７】
例えば、１２８×１２８画素のイントラＣＵは、１２８×１２８画素、および、６４×６４画素のイントラＰＵへ分割することが可能である。
【０１２８】
（ＴＵ分割タイプ）
次に、図３（ｉ）〜（ｏ）を用いて、ＴＵ分割タイプについて説明する。ＴＵ分割のパターンは、ＣＵのサイズ、分割の深度（trafoDepth）、および対象ＰＵのＰＵ分割タイプにより定まる。
【０１２９】
また、ＴＵ分割のパターンには、正方形の４分木分割と、非正方形の４分木分割とが含まれる。
【０１３０】
図３の（ｉ）〜（ｋ）は、正方形のノードを正方形または非正方形に４分木分割する分割方式について示している。より具体的には、図３の（ｉ）は、正方形のノードを正方形に４分木分割する分割方式を示している。また、同図の（ｊ）は、正方形のノードを横長の長方形に４分木分割する分割方式を示している。そして、同図の（ｋ）は、正方形のノードを縦長の長方形に４分木分割する分割方式を示している。
【０１３１】
また、図３の（ｌ）〜（ｏ）は、非正方形のノードを正方形または非正方形に４分木分割する分割方式について示している。より具体的には、図３の（ｌ）は、横長の長方形のノードを横長の長方形に４分木分割する分割方式を示している。また、同図の（ｍ）は、横長の長方形のノードを正方形に４分木分割する分割方式を示している。また、同図の（ｎ）は、縦長の長方形のノードを縦長の長方形に４分木分割する分割方式を示している。そして、同図の（ｏ）は、縦長の長方形のノードを正方形に４分木分割する分割方式を示している。
【０１３２】
（量子化残差情報ＱＤの構成）
図４及び図５は、量子化残差情報ＱＤ（図４ではresidual_coding()と表記）に含まれる各シンタックスが示されている。
【０１３３】
図４は、量子化残差情報ＱＤに含まれるシンタックスを示すシンタックステーブルの前半部分を示す図である。図５は、量子化残差情報ＱＤに含まれるシンタックスを示すシンタックステーブルの後半部分を示す図である。
【０１３４】
図４及び図５に示すように、量子化残差情報ＱＤは、シンタックス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は、順スキャン方向に沿って最後の非０変換係数の位置を示すシンタックスである。
【０１３８】
シンタックス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_group_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_level_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は、変換係数が正である場合に１をとり、変換係数が負である場合に０をとる。
【０１５６】
なお、サインハイディングとは、変換係数の符号を明示的に符号化せず、計算により算出する方法を言う。
【０１５７】
動画像復号装置１の備える可変長符号復号部１１は、シンタックス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”である。「３５」は、色差予測モード固有のものであり、輝度の予測に基づいて色差の予測を行うモードである。言い換えれば、色差予測モード「３５」は、輝度画素値と色差画素値との相関を利用した予測モードである。色差予測モード「３５」はＬＭモードとも称する。予測モード数（intraPredModeNum）は、対象ブロックのサイズによらず「３５」である。
【０１７１】
（予測方式決定部１２ｄ）
予測方式決定部１２ｄは、各パーティションが属するＰＵについての予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを決定する。そして、前者の場合には、インター予測画像生成部１２ｂにて生成されたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器１４に供給し、後者の場合には、イントラ予測画像生成部１２ｃにて生成されたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器１４に供給する。
【０１７２】
（逆量子化・逆変換部１３）
逆量子化・逆変換部１３は、（１）符号化データ＃１の量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆを逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱに対して逆ＤＣＴ（Discrete Cosine Transform）変換等の逆周波数変換を施し、（３）逆周波数変換によって得られた予測残差Ｄを加算器１４に供給する。なお、量子化残差情報ＱＤから復号された変換係数Ｃｏｅｆｆを逆量子化する際に、逆量子化・逆変換部１３は、可変長符号復号部１１から供給された量子化パラメータ差分Δｑｐから量子化ステップＱＰを導出する。量子化パラメータｑｐは、直前に逆量子化及び逆周波数変換したＴＵに関する量子化パラメータｑｐ’に量子化パラメータ差分Δｑｐを加算することによって導出でき、量子化ステップＱＰは、量子化パラメータｑｐから例えばＱＰ＝２ｐｑ／６によって導出できる。また、逆量子化・逆変換部１３による予測残差Ｄの生成は、ＴＵあるいはＴＵを分割したブロックを単位として行われる。
【０１７３】
なお、逆量子化・逆変換部１３によって行われる逆ＤＣＴ変換は、例えば、対象ブロックのサイズが８×８画素である場合、当該対象ブロックにおける画素の位置を（ｉ、ｊ）（０≦ｉ≦７、０≦ｊ≦７）とし、位置（ｉ、ｊ）における予測残差Ｄの値をＤ（ｉ、ｊ）と表すことにし、周波数成分（ｕ、ｖ）（０≦ｕ≦７、０≦ｖ≦７）における逆量子化された変換係数をＣｏｅｆｆ＿ＩＱ（ｕ、ｖ）と表すことにすると、例えば、以下の数式（１）によって与えられる。
【０１７４】
【数１】
2013192118.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はスキャンインデックスを表しており、ｎは、スキャン順に沿って付与された周波数成分識別インデックスを表している。また、図４及び図５において、ｘＣ及びｙＣは、処理対象の周波数成分の周波数領域における位置を表している。
【０１８８】
また、スキャン順テーブル格納部１２２に格納されたテーブルは、処理対象のＴＵ（ブロック）のサイズとイントラ予測モードの予測モードインデックスとに関連付けられたスキャンインデックスscanIdxによって指定される。処理対象のＴＵに用いられた予測方法がイントラ予測である場合には、係数復号制御部１２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxによって指定されるテーブルを参照して周波数成分のスキャン順を決定する。
【０１８９】
図１３は、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの例を示している。図１３において、log2TrafoSize-2＝０は、ＴＵサイズが４×４（４×４画素に対応）であることを示しており、log2TrafoSize-2＝１は、ＴＵサイズが８×８（８×８画素に対応）であることを示している。図１３に示すように、例えば、ＴＵサイズが４×４であり、イントラ予測モードインデックスが１であるとき、スキャンインデックス＝０が用いられ、ＴＵサイズが４×４であり、イントラ予測モードインデックスが６であるとき、スキャンインデックス＝２が用いられる。
【０１９０】
図１４（ａ）は、スキャンインデックスscanIdxの各値によって指定されるスキャンタイプScanTypeを示している。図１４（ａ）に示すように、スキャンインデックスが０であるとき、斜め方向スキャン（Up-right diagonal scan）が指定され、スキャンインデックスが１であるとき、水平方向優先スキャン（horizontal fast scan）が指定され、スキャンインデックスが２であるとき、垂直方向優先スキャン（vertical fact scan）が指定される。
【０１９１】
なお、ＣＵ予測方式情報ＰｒｅｄＭｏｄｅがインター予測の場合には、ＴＵサイズを用いてスキャンインデックスを導出することができる。ＴＵサイズが、ＴＵサイズの幅と高さが一致する場合には水平優先および垂直優先以外のスキャン順（スキャンインデックス＝０）を使用する。ＴＵサイズの幅と高さが一致しない場合で、ＴＵサイズの幅が高さよりも大きい場合には、水平優先のスキャン順（スキャンインデックス＝１）を使用する。一方、ＴＵサイズの高さが幅よりも大きい場合には、垂直優先のスキャン順（スキャンインデックス＝２）を使用する。
【０１９２】
また、図１４（ｂ）〜（ｄ）は、ＴＵサイズが４×４であるときの、スキャンインデックスscanIdxで指定される各スキャンタイプ（水平方向優先スキャン（horizontal fast scan）、垂直方向優先スキャン（vertical fast scan）、及び、斜め方向スキャン（Up-right diagonal scan））のスキャン順の一例を示している。また、図１４（ｂ）〜（ｄ）に示す各例は、順スキャン方向を示している。図１４（ｂ）に示す水平方向優先スキャンは、サブブロックを上下半分に分割した小サブブロック単位に、水平方向へ斜め１列毎に係数をスキャンすることを特徴とし、水平方向周波数成分に係数が集中する場合に好適である。また、図１４（ｃ）に示す垂直方向優先スキャンは、サブブロックを左右半分に分割した小サブブロック単位に垂直方向へ斜め１列毎に係数をスキャンすることを特徴とし、垂直方向周波数成分に係数が集中する場合に好適である。
【０１９３】
図１５（ａ）〜（ｃ）は、ＴＵサイズが８×８であり、かつサブブロックサイズが４×４であるときの、スキャンインデックスscanIdxで指定される各スキャンタイプのスキャン順の一例を示している。また、図１５（ａ）〜（ｃ）に示す各例は、順スキャン方向を示している。図１５（ａ）に示す水平方向優先スキャンは、サブブロックを上下半分に分割した小サブブロック単位に、水平方向へ斜め１列毎に係数をスキャンすることを特徴とし、水平方向周波数成分に係数が集中する場合に好適である。また、図１５（ｂ）に示す垂直方向優先スキャンは、サブブロックを左右半分に分割した小サブブロック単位に垂直方向へ斜め１列毎に係数をスキャンすることを特徴とし、垂直方向周波数成分に係数が集中する場合に好適である。
【０１９４】
図１６は、ＴＵサイズが８×８であり、スキャンインデックスscanIdxによって、サブブロックサイズが異なる場合の各スキャン順の一例を示している。
【０１９５】
図１６（ａ）は、ＴＵサイズが８×８であり、サブブロックサイズが８×２であるときの水平方向優先スキャンの一例を示している。図１６（ａ）に示す８×２サブブロック（横長のサブブロック）単位に、水平方向へ斜め１列毎に係数をスキャンする方法は、水平方向周波数成分に係数が集中する場合に好適である。
【０１９６】
図１６（ｂ）は、ＴＵサイズが８×８であり、サブブロックサイズが２×８であるときの垂直方向優先スキャンの一例を示している。図１６（ｂ）に示す２×８サブブロック（縦長のサブブロック）単位に、垂直方向へ斜め１列毎に係数をスキャンする方法は、垂直方向周波数成分に係数が集中する場合に好適である。
【０１９７】
図１６（c）は、ＴＵサイズが８×８であり、サブブロックサイズが４×４であるときの斜め方向スキャンの一例を示している。
【０１９８】
（サブブロックスキャン順テーブル）
また、スキャン順テーブル格納部１２２には、サブブロックのスキャン順を指定するためのサブブロックスキャン順テーブルが格納されている。サブブロックスキャン順テーブルは、処理対象のＴＵ（ブロック）のサイズとイントラ予測モードの予測モードインデックス（予測方向）とに関連付けられたスキャンインデックスscanIdxによって指定される。処理対象のＴＵに用いられた予測方法がイントラ予測である場合には、係数復号制御部１２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxによって指定されるテーブルを参照してサブブロックのスキャン順を決定する。
【０１９９】
（係数復号制御部１２３）
係数復号制御部１２３は、量子化残差情報復号部１１１の備える各部における復号処理の順序を制御するための構成である。
【０２００】
係数復号制御部１２３は、ラスト係数位置復号部１２１から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非０変換係数の位置を特定すると共に、特定した最後の非０変換係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部１２２に格納されたサブブロックスキャン順テーブルによって与えられるスキャン順の逆スキャン順に、各サブブロックの位置（ｘＣＧ、ｙＣＧ）を、サブブロック係数有無フラグ復号部１２７に供給する。また、係数復号制御部１２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxを、係数有無フラグ復号部１２４へ供給する。
【０２０１】
また、係数復号制御部１２３は、処理対象となるサブブロックに関して、スキャン順テーブル格納部１２２に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、当該処理対象となるサブブロックに含まれる各周波数成分の位置（ｘＣ、ｙＣ）を、係数有無フラグ復号部１２４及び復号係数記憶部１２６に供給する。ここで、処理対象となるサブブロックに含まれる各周波数成分のスキャン順としては、イントラ予測の場合には、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの示すスキャン順（水平方向優先スキャン、垂直方向優先スキャン、斜め方向スキャンのいずれか）を用い、インター予測の場合には、斜め方向スキャン（Up-right diagonal scan）を用いればよい。
【０２０２】
このように、係数復号制御部１２３は、処理対象の単位領域（ブロック、ＴＵ）に適用された予測方式がイントラ予測である場合に、該イントラ予測の予測方向に応じて、サブブロックスキャン順、及びサブブロック内スキャン順を設定する構成である。
【０２０３】
一般に、イントラ予測モードと変換係数の偏りとは互いに相関を有しているため、イントラ予測モードに応じてスキャン順を切り替えることにより、サブブロック係数有無フラグ、係数有無フラグの偏りに適したスキャンを行うことができる。これによって、符号化及び復号対象となるサブブロック係数有無フラグおよび係数有無フラグの符号量を削減することができるので、処理量が削減されると共に、符号化効率が向上する。
【０２０４】
（サブブロック係数有無フラグ復号部１２７）
サブブロック係数有無フラグ復号部１２７は、ビット復号部１３２から供給される各Ｂｉｎを解釈し、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるシンタックス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]を復号するために用いるコンテキストインデックスを導出する。
【０２２０】
なお、サブブロック係数有無フラグが０とされたブロックでは、係数有無フラグ復号部１２４が、係数有無フラグsignificant_coeff_flagの復号をスキップすることができるため、復号処理が簡略化される。
【０２２１】
図１９を用いて、具体的に例示すると次のとおりである。図１９（ａ）に示すように変換係数が分布している場合、それぞれのサブブロックに割り付けられるサブブロック係数有無フラグは、図１９（ｂ）に示すとおりとなる。すなわち、４×４のサブブロックのうち、１行目のサブブロックでは、非０係数が存在しているが、２行目以降のサブブロックでは、非０係数が存在しない。
【０２２２】
よって、図１９（ｂ）に示す例では、係数有無フラグ復号部１２４は、２行目以降のサブブロックの復号において、係数有無フラグsignificant_coeff_flagの復号をスキップすることができる。
【０２２３】
＜係数有無フラグ復号部１２４の第１の構成例＞
以下では、図２１を参照して、係数有無フラグ復号部１２４の第１の構成例について説明する。以下に説明する係数有無フラグ復号部１２４の第１の構成例では、係数有無フラグのコンテキストインデックス導出に関して、スキャンインデックス、及び係数の位置に応じて、周辺参照コンテキストに用いる係数の参照位置（テンプレートの形状）を切り替える。
【０２２４】
図２１は、係数有無フラグ復号部１２４の構成例を示すブロック図である。図２１に示すように、係数有無フラグ復号部１２４は、コンテキスト導出部１２４ｚ、係数有無フラグ記憶部１２４ｄ、及び係数有無フラグ設定部１２４ｅを備えている。さらに、コンテキスト導出部１２４ｚは、導出方法制御部１２４ａ、位置コンテキスト導出部１２４ｂ、周辺参照コンテキスト導出部１２４ｃを備えている。なお、図２１では、コンテキスト導出部１２４ｚにおいて、導出方法制御部１２４ａが、位置コンテキスト導出部１２４ｂ、および周辺参照コンテキスト導出部１２４ｃを内包する形で記載しているが、これは例示に過ぎない。コンテキスト導出部１２４ｚは、このような構成に限定されない。
【０２２５】
（コンテキスト導出部１２４ｚ）
（導出方法制御部１２４ａ）
導出方法制御部１２４ａには、処理対象の周波数成分の位置（ｘＣ,ｙＣ）と、変換ブロックの対数値（log2TrafoWidth、log2TrafoHeight）が入力される。対数値のサイズから、周波数領域の幅widthと高さheightを(1<<log2TrafoWidth)と(1<<log2TrafoHeight)により算出する。なお、対数値のサイズではなく、周波数領域の幅と高さを直接入力しても良い。
【０２２６】
導出方法制御部１２４ａは、対象となるＴＵサイズおよび周波数成分の位置に応じて、位置コンテキスト導出部１２４ｂ、周辺参照コンテキスト導出部１２４ｃを選択する。選択された各コンテキスト導出部ではコンテキストインデックスctxIdxが導出される。
【０２２７】
例えば、ＴＵサイズが所定のサイズ以下である場合（例えば、４×４ＴＵである場合）には、導出方法制御部１２４ａは、位置コンテキスト導出部１２４ｂを選択し、選択した位置コンテキスト導出部１２４ｂによって導出されたコンテキストインデックスctxIdxを、当該復号対象の周波数成分に割り付ける。
【０２２８】
一方で、対象となるＴＵサイズが所定のサイズよりも大きい場合（例えば、８×８ＴＵ、１６×１６ＴＵ、３２×３２ＴＵである場合等）、導出方法制御部１２４ａは、周波数領域における復号対象の周波数成分の位置に応じて、位置コンテキスト導出部１２４ｂ、及び周辺参照コンテキスト導出部１２４ｃのいずれかを選択し、選択した何れかのコンテキスト導出手段よって導出されたコンテキストインデックスctxIdxを、当該復号対象の周波数成分に割り付ける。なお、上記に限られず、導出方法制御部１２４ａは、４×４ＴＵ〜３２×３２ＴＵまでのＴＵサイズについて、共通のコンテキストインデックスctxIdx導出処理を実行する構成であっても構わない。すなわち、導出方法制御部１２４ａは、ＴＵのサイズによらず、位置コンテキスト導出部１２４ｂ、及び周辺参照コンテキスト導出部１２４ｃのいずれかを固定的に選択する構成であっても構わない。
【０２２９】
図２２（ａ）〜（ｂ）は、本処理例において、導出方法制御部１２４ａによって分割された部分領域を示す図であり、図２２（ａ）は、輝度値に関する変換係数を復号する際に好適に適用されるものであり、図２２（ｂ）は、色差に関する変換係数を復号する際に好適に適用されるものである。
【０２３０】
（位置コンテキスト導出部１２４ｂ）
位置コンテキスト導出部１２４ｂは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。なお、周波数成分の位置によらず、固定値となるコンテキストインデックスctxIdxを導出する場合も位置コンテキスト導出部１２４ｂで行われる。
【０２３１】
位置コンテキスト導出部１２４ｂは、処理対象のＴＵサイズが所定のサイズよりも大きい場合に、対象周波数成分の位置（xC,yC）で表わされるxC + yCが所定の閾値THZ未満である場合（図２２（ａ）（ｂ）に示す部分領域Ｒ０に属する周波数成分）、以下の式(eq.A1)を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０２３２】
ctxIdx = sigCtxOffsetR0・・・(eq.A1)
なお、上記式(eq.A1)において、sigCtxOffsetR0は、コンテキストインデックスの開始点を表す定数である。
【０２３３】
また、位置コンテキスト導出部１２４ｂは、対象周波数成分（xC, yC）が属するサブブロックの位置(xCG, yCG)で表わされるxCG + yCGが所定の閾値THhi以上の場合（図２２（ａ）（ｂ）に示す部分領域Ｒ３に属する周波数成分に対して、以下の式(eq.A2)を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０２３４】
ctxIdx = sigCtxOffsetR3・・・(eq.A2)
処理対象のＴＵサイズが所定のサイズ以下である場合には、位置コンテキスト導出部１２４ｂは、対象周波数成分の位置(xC,yC)に基づいて、図２０（ａ）〜（ｃ）に示すＴＵサイズ毎の各係数位置に割り当てられたコンテキストインデックスを導出する。
【０２３５】
図２０は、実施形態に係るコンテキストインデックス導出処理を説明するための図である。
【０２３６】
図２０（ａ）は、４×４成分のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示している。
【０２３７】
また、図２０（ｂ）は、４×４成分のサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示している。
【０２３８】
また図２０（ｃ）は、８×８成分のＴＵサイズを有する周波数領域に含まれる各周波数成分に対して導出されたコンテキストインデックスであって、輝度Ｙ、色差Ｕ、Ｖに関するsignificant_coeff_flagを復号する際に参照されるコンテキストインデックスを示している。
【０２３９】
なお、図２０（ａ）〜（ｃ）において、最も高周波成分側に位置する周波数成分（網掛け部分）に対しては、コンテキストインデックスの導出を省略することができる。
【０２４０】
（周辺参照コンテキスト導出部１２４ｃ）
周辺参照コンテキスト導出部１２４ｃは、復号対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について復号済みの非０変換係数の数ｃｎｔに基づいて導出する。より具体的には、周辺参照コンテキスト導出部１２４ｃは、対象周波数成分の位置（xC,yC）、もしくは、対象周波数成分が属するサブブロックの位置(xCG,yCG)が次の条件を満たす場合、スキャンインデックスscanIdxと変換係数の位置に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。
（輝度の場合の条件）
（１）xC+yC>=THZ、かつ、xCG+yCG<THloを満たす場合・・・図２２（ａ）に示す部分領域Ｒ１
（２）xCG+yCG>=THlo、かつ、xCG+yCG<THhiを満たす場合・・・図２２（a）に示す部分領域Ｒ２
（色差の場合の条件）
（１）xC+yC>=THZ、かつ、xCG+yCG<THhiを満たす場合・・・図２２（ｂ）に示す部分領域Ｒ２
ここで、閾値THZ、THlo、THhiは、例えば、以下の式(eq.A2-1)によって設定すればよいが、これに限定されない。
【０２４１】
THZ = 1,
THlo = 1,
THhi = (3 << ( max(log2TrafoWidth, log2TrafoHeight)- 2 ))・・・(eq.A2-1)
なお、以下では、例示的に、図２２（ａ）（ｂ）に示す領域Ｒ０に属する周波数成分を低周波成分と称し、領域Ｒ３に属する成分を高周波成分と称する。また、低周波成分は、基準となる周波数成分からの位置が所定範囲内にある成分であると表現することもできる。また、高周波成分は、基準となる周波数成分から所定距離以上離れた範囲に位置する成分であると表現することもできる。
【０２４２】
また、上記低周波成分の領域および上記高周波成分の領域以外の領域に属する周波数成分を中周波成分と称してもよい。すなわち、上記低周波成分側および上記高周波成分側以外の領域を中周波成分域と称してもよい。
【０２４３】
上記の条件下において、周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxと変換係数の位置に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。また、周辺参照コンテキスト導出部１２４ｃは、このようにして導出した復号済みの非０変換係数の数ｃｎｔに基づいてコンテキストインデックスctxIdxを導出する。
【０２４４】
以下、スキャンインデックスscanIdxが、“斜め方向スキャンを示す場合”、“水平方向優先スキャンを示す場合”および“垂直方向優先スキャンを示す場合”について順に説明する。
【０２４５】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合（図２３（ｅ））］
スキャンインデックスscanIdxが斜め方向スキャンを示す場合、周辺参照コンテキスト導出部１２４ｃは、以下のとおり、スキャンインデックスscanIdxと変換係数の位置に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。図２３（ａ）は、スキャンインデックスscanIdxが斜め方向スキャンを示す場合において、サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。４×４成分のサブブロックにおいて、位置に示す表記が（ｂ）の場合には、図２３（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図２３（ｃ）に示すテンプレートを用いる。図２３（ｂ）（ｃ）はテンプレートの形状を示す。すなわち、参照周波数成分（例えば、ｃ１、ｃ２、ｃ３、ｃ４、ｃ５）と対象周波数成分ｘとの相対位置を示す。図２３（ｅ）は、４×４サブブロックにおける斜め方向スキャンのスキャン順（逆スキャン順）を表わす図である。
【０２４６】
処理は、変換係数の位置（xC, yC）が以下の式（eq.A3）を満たす場合、すなわち、変換係数の位置がサブブロックの左上である、もしくは、変換係数の位置がサブブロックの右下の一つ上の場合と、それ以外の場合とで異なる。
【０２４７】
((xC &3)==0 && (yC &3)==0) || ((xC &3)==3 && (yC &3)==2)        （eq.A3）
なお、上記式（eq.A3）において、演算子‘＆’はビット単位の論理和を取る演算子であり、‘＆＆’は、論理積を示す演算子であり、‘｜｜’は、論理和を示す演算子である（以下において、同様）。
【０２４８】
また、式（eq.A3）は式(eq.A3’)によっても表現することができる。
【０２４９】
((xC %4)==0 && (yC %4)==0) || ((xC %4)==3 && (yC %4)==2)        （eq.A3’）
なお、上記式（eq.A3’）において、“％”は、剰余を求める演算子である（以下において、同様）。
【０２５０】
（非０変換係数の数ｃｎｔの導出）
（式（eq.A3）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.A3）を満たす場合、非０変換係数のカウント数ｃｎｔを、図２３（ｃ）に示す参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５）を用いて、以下の式（eq.A4）によって導出する。
【０２５１】
cnt = (c1!=0) + (c2!=0) + (c4!=0) + (c5!=0)        （eq.A4）
ここで、式(eq.A4)における各項は、（）内の比較が真である場合に１をとり、（）内の比較が偽である場合に０をとるものとする。
【０２５２】
または、以下の式(eq.A4’)に示すようにも表現できる。
【０２５３】
cnt = significant_coeff_flag[xC+1][yC]      // c1
+ significant_coeff_flag[xC+2][yC]      // c2
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC][yC+2]      // c5 ・・・(eq.A4’)
（式（eq.A3）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.A3）を満たさない場合は、図２３（ｂ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.A5）によって、非０変換係数の数ｃｎｔを算出する。
【０２５４】
cnt= (c1!=0) + (c2!=0) + (c3!=0) + (c4!=0) + (c5!=0)         （eq.A5）
また、上記式（eq.A5）は、以下の式（eq.A5’）に示すようにも表現できる。
【０２５５】
cnt = significant_coeff_flag[xC+1][yC]      // c1
+ significant_coeff_flag[xC+2][yC]      // c2
+ significant_coeff_flag[xC][yC+1]      // c3
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC][yC+2]      // c5 ・・・（eq.A5’）
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、以下の式（eq.A6）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０２５６】
ctxIdx = sigCtxOffsetR1  +  Min(2, ctxCnt)         （eq.A6）
ここで、ctxCntは、
ctxCnt（ｃｎｔ＋１）＞＞１
によって定まる。
【０２５７】
式（eq.4）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の下側）に位置する座標（ｃ３）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０２５８】
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図２４（ｅ））］
スキャンインデックスscanIdxが水平方向優先スキャンを示す場合、周辺参照コンテキスト導出部１２４ｃは、以下のとおり、スキャンインデックスscanIdxの示すスキャン方向に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。すなわち、水平方向優先スキャンが選択される場合は、水平方向に周波数成分が偏っている確率が高いため、水平方向の係数を優先して参照するテンプレートを選択することで、非ゼロ係数の相関を考慮したコンテキスト導出が可能となる。
【０２５９】
図２４（ａ）は、スキャンインデックスscanIdxが水平方向優先スキャン(horizontal fast scan)を示す場合において、サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。４×４成分のサブブロックにおいて、位置に示す表記が（ｂ）の場合には、図２４（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図２４（ｃ）に示すテンプレートを用いる。図２４（ｂ）（ｃ）はテンプレートの形状を示す。すなわち、参照周波数成分（例えば、ｃ１、ｃ２、ｃ３、ｃ４、ｃ５）と対象周波数成分ｘとの相対位置を示す。図２４（ｅ）は、４×４サブブロックにおける水平方向優先スキャンのスキャン順（逆スキャン順）を表わす図である。
【０２６０】
処理は、変換係数の位置（xC, yC）が以下の式（eq.AX1）を満たす場合、すなわち、変換係数の位置がサブブロックの左から1列目、かつ、上から1行目または3行目にある場合、もしくは、変換係数の位置がサブブロックの左から３列目、かつ上から2行目または４行目にある場合と、それ以外の場合とで異なる。
【０２６１】
((xC &3)==0 && (yC &1)==0) || ((xC &3)==2 && (yC &1)==1)        （eq.AX1）
なお、式（eq.AX1）は式(eq.AX1’)によっても表現することができる。
【０２６２】
((xC %4)==0 && (yC %2)==0) || ((xC %4)==2 && (yC %2)==1)        （eq.AX1’）
図２４（ｅ）の水平方向優先スキャンでは、４×４のサブブロックのスキャン順を２つの４×２のサブサブブロック（すなわち、サブブロックのサブブロック）のスキャン順から構成する。上のサブサブブロックの次に下のサブサブブロックをスキャンすることにより、上方向の周波数上の領域を先にスキャンすることができる。変換係数が上方向に集中するような、イントラ予測モードが水平方向に近い場合、ＴＵの幅が高さより大きい場合に、本スキャンを用いることで符号化効率が向上する効果を奏する。また、このスキャン順では、８×２のサブブロックを導入することなく水平方向優先スキャンが実現できるため、全てのスキャン順（全ての復号処理）において同一サイズのサブブロック（４×４のサブブロック）を用いることができる。サブブロックサイズの統一により、サブブロックを処理する復号装置の構成を簡略化することができる。
【０２６３】
図２４（ｅ）の水平方向優先スキャンの例では、また、４×２のサブサブブロックのスキャン順をサブサブブロック開始時の右方向（＋１、０）へのスキャンと、その後の、左下方向（−１、＋１）へのスキャンと右斜め上方向へのスキャン（＋２、−１）の繰り返し、と最後の左下方向（−１、＋１）へのスキャンと右方向（＋１、０）へのスキャンの組み合わせで構成する。
【０２６４】
（非０変換係数の数ｃｎｔの導出）
（式（eq.AX1）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.AX1）を満たす場合、非０変換係数のカウント数ｃｎｔを、図２４（ｃ）に示す参照周波数成分（ｃ２、ｃ３、ｃ４、ｃ５）を用いて、以下の式（eq.AX2）によって導出する。
【０２６５】
cnt = (c2!=0) + (c3!=0) + (c4!=0) + (c5!=0)        （eq.AX2）
ここで、(eq.AX2)における各項は、（）内の比較が真である場合に１をとり、（）内の比較が偽である場合に０をとるものとする。
【０２６６】
また、上記式（eq.AX2）は、以下の式（eq.AX2’）に示すようにも表現できる。
【０２６７】
cnt = significant_coeff_flag[xC+2][yC ]     // c2
+ significant_coeff_flag[xC ][yC+1]    // c3
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+2][yC+1]  // c5 ・・・（eq.AX2’）
（式（eq.AX1）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.AX1）を満たさない場合は、図２４（ｂ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.AX3）によって、非０変換係数の数ｃｎｔを算出する。
【０２６８】
cnt= (c1!=0) + (c2!=0) + (c3!=0) + (c4!=0) + (c5!=0)         （eq.AX3）
また、上記式（eq.AX3）は、以下の式（eq.AX3’）に示すようにも表現できる。
【０２６９】
cnt = significant_coeff_flag[xC+1][yC ]      // c1
+ significant_coeff_flag[xC+2][yC ]      // c2
+ significant_coeff_flag[xC ][yC+1]      // c3
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC+2][yC+1]    // c5 ・・・（eq.AX3’）
図２４（ｂ）（ｃ）（ｄ）に示すテンプレートは、水平方向の係数を優先して参照するテンプレートの例である。すなわち、対象変換係数の位置（xC, yC）から見て、参照変換係数の位置を(xC + xD, yC + yD)とすると、xD > yDとなる参照変換係数の数が、yD > xDとなる参照変換係数の数よりも大きいテンプレートである。
【０２７０】
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、以下の式（eq.AX4）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０２７１】
ctxIdx = sigCtxOffsetR1  +  Min(2, ctxCnt)         （eq.AX4）
ここで、ctxCntは、
ctxCnt（ｃｎｔ＋１）＞＞１
によって定まる。
【０２７２】
式（eq.AX2）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の右側）に位置する座標（ｃ１）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０２７３】
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図２５（ｅ））］
スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合、周辺参照コンテキスト導出部１２４ｃは、以下のとおり、スキャンインデックスscanIdxの示すスキャン方向に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。すなわち、垂直方向優先スキャンが選択される場合は、垂直方向に周波数成分が偏っている確率が高いため、垂直方向の係数を優先して参照するテンプレートを選択することで、非ゼロ係数の相関を考慮したコンテキスト導出が可能となる。
図２５（ａ）は、スキャンインデックスscanIdxが垂直方向優先スキャン(vertical fast scan)を示す場合において、サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。４×４成分のサブブロックにおいて、位置に示す表記が（ｂ）の場合には、図２５（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図２５（ｃ）に示すテンプレートを用いる。図２５（ｂ）（ｃ）はテンプレートの形状を示す。すなわち、参照周波数成分（例えば、ｃ１、ｃ２、ｃ３、ｃ４、ｃ５）と対象周波数成分ｘとの相対位置を示す。図２５（ｚ）は、４×４サブブロックにおける垂直方向優先スキャンのスキャン順（逆スキャン順）を表わす図である。
【０２７４】
処理は、変換係数の位置（xC, yC）が以下の式（eq.AY1）を満たす場合、すなわち、変換係数の位置がサブブロックの上から１行目、かつ、左から１列目または３列目にある場合、もしくは、変換係数の位置がサブブロックの上から３行目、かつ左から２列目または４列目にある場合と、それ以外の場合とで異なる。
【０２７５】
((xC &1)==0 && (yC &3)==0) || ((xC &1)==1 && (yC &3)==3)        （eq.AY1）
なお、式（eq.AY1）は式(eq.AY1’)によっても表現することができる。
【０２７６】
((xC %2)==0 && (yC %4)==0) || ((xC %2)==1 && (yC %4)==2)        （eq.AY1’）
図２５（ｅ）の垂直方向優先スキャンでは、４×４のサブブロックのスキャン順を２つの２×４のサブサブブロック（すなわち、サブブロックのサブブロック）のスキャン順から構成する。左のサブサブブロックの次に右のサブサブブロックをスキャンすることにより、左方向の周波数上の領域を先にスキャンすることができる。変換係数が左方向に集中するような、イントラ予測モードが垂直方向に近い場合、ＴＵの高さが幅より大きい場合に、本スキャンを用いることで符号化効率が向上する効果を奏する。また、このスキャン順では、２×８のサブブロックを導入することなく水平方向優先スキャンが実現できるため、全てのスキャン順（全ての復号処理）において同一サイズのサブブロック（４×４のサブブロック）を用いることができる。サブブロックサイズの統一により、サブブロックを処理する復号装置の構成を簡略化することができる。
【０２７７】
図２５（ｅ）の水平方向優先スキャンの例では、また、２×４のサブサブブロックのスキャン順をサブサブブロック開始時の下方向（０、＋１）へのスキャンと、その後の、右上方向（＋１、−１）へのスキャンと左斜め下方向へのスキャン（−１、＋２）の繰り返しと、最後の右上方向（＋１、−１）へのスキャンと下方向へのスキャン（０、＋１）の組み合わせで構成する。
【０２７８】
（非０変換係数の数ｃｎｔの導出）
（式（eq.AY1）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.AY1）を満たす場合、非０変換係数のカウント数ｃｎｔを、図２５（ｃ）に示す参照周波数成分（ｃ２、ｃ３、ｃ４、ｃ５）を用いて、以下の式（eq.AY2）によって導出する。
【０２７９】
cnt = (c2!=0) + (c3!=0) + (c4!=0) + (c5!=0)        （eq.AY2）
ここで、(eq.AY2)における各項は、（）内の比較が真である場合に１をとり、（）内の比較が偽である場合に０をとるものとする。
【０２８０】
また、上記式（eq.AY2）は、以下の式（eq.AY2’）に示すようにも表現できる。なお、下記式において、参照できない係数有無フラグsignificant_coeff_flag[ ][ ]は値を０として扱うものとする（以下、同様）。
【０２８１】
cnt = significant_coeff_flag[xC  ][yC+2]  // c2
+ significant_coeff_flag[xC+1][yC ]   // c3
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+1][yC+2]  // c5・・・（eq.AY2’）
（式（eq.AY1）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.AY1）を満たさない場合は、図２５（ｂ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.AY3）によって、非０変換係数の数ｃｎｔを算出する。
【０２８２】
cnt= (c1!=0) + (c2!=0) + (c3!=0) + (c4!=0) + (c5!=0)         （eq.AY3）
また、上記式（eq.AY3）は、以下の式（eq.AY3’）に示すようにも表現できる。
【０２８３】
cnt = significant_coeff_flag[xC  ][yC+1]  // c1
+ significant_coeff_flag[xC ][yC+2]   // c2
+ significant_coeff_flag[xC+1][yC ]   // c3
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+1][yC+2]  // c5・・・（eq.AY3’）
図２５（ｂ）（ｃ）（ｄ）に示すテンプレートは、垂直方向の係数を優先して参照するテンプレートの例である。すなわち、対象変換係数の位置（xC, yC）から見て、参照変換係数の位置を(xC + xD, yC + yD)とすると、yD > xDとなる参照変換係数の数が、xD > yDとなる参照変換係数の数よりも大きいテンプレートである。
【０２８４】
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、以下の式（eq.AY4）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０２８５】
ctxIdx = sigCtxOffsetR1  +  Min(2, ctxCnt)         （eq.AY4）
ここで、ctxCntは、
ctxCnt（ｃｎｔ＋１）＞＞１
によって定まる。
【０２８６】
式（eq.AY2）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の下側）に位置する座標（ｃ２）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０２８７】
（コンテキストインデックスctxIdxの導出の別例）
以上、周辺参照コンテキスト導出部１２４ｃでは、復号済みの非０変換係数の数ｃｎｔに基づいてコンテキストインデックスを導出する事例を説明したが、これに限定されない。例えば、復号済みの非０変換係数の数ｃｎｔの代わりに、復号済みの変換係数の絶対値和sumAbsLevelを用いて、コンテキストインデックスを導出しても良い。
【０２８８】
例えば、スキャンインデックスscanIdxが斜め方向スキャンを示す場合で、変換係数の位置（xC, yC）が、式（eq.A3）を満たす場合には、式（eq.A4’）に対応する以下の式(eq.A4’’)により、復号済みの変換係数の絶対値和sumAbsLevelを導出する。
【０２８９】
sumAbsLevel = | Coeff[xC+1][yC] |      // c1
+ | Coeff[xC+2][yC] |      // c2
+ | Coeff[xC+1][yC+1] |    // c4
+ | Coeff[xC][yC+2] |      // c5 ・・・(eq.A4’’)
なお、上記式において、‘|・|’は、|・|内の絶対値を返す演算式である(以下において、同様)。
【０２９０】
また、変換係数の位置（xC, yC）が、式(eq.A3)を満たさない場合には、式（eq.A5’）に対応する以下の式(eq.A5’’)により復号済みの変換係数の絶対値和sumAbsLevelを導出する。
【０２９１】
sumAbsLevel = | Coeff[xC+1][yC] |      // c1
+ | Coeff[xC+2][yC] |      // c2
+ | Coeff[xC][yC+1] |      // c3
+ | Coeff[xC+1][yC+1] |    // c4
+ | Coeff[xC][yC+2] |      // c5 ・・・(eq.A5’’)
さらに、周辺参照コンテキスト導出部１２４ｃは、コンテキストインデックスctxIdxを、式(eq.A6)の代わりに、以下の式(eq.A6’)により導出する。
【０２９２】
ctxIdx = Min(sumAbsLevel, 5) + baseCtx    ・・・(eq.A6’)
ここで、baseCtxは所定のオフセット値である。なお、復号済みの変換係数の絶対値和sumAbsLevelを用いてコンテストインデックスを導出する方法は、他のスキャン順および変換係数の位置でも用いることができる。以上、説明したテンプレートは、対象変換係数に対する参照変換係数の位置を示すものであり、復号済みの変換係数の絶対値和sumAbsLevelを用いて、コンテキストインデックスを導出する場合にも適用することができる。
【０２９３】
なお、本発明の他のコンテキスト導出部（後述のスキャン順係数参照コンテキスト導出部）においても、同様の方法で復号済みの変換係数の絶対値和sumAbsLevelを用いてコンテストインデックスを導出することができる。
【０２９４】
（係数有無フラグ設定部１２４ｅ）
係数有無フラグ設定部１２４ｅは、ビット復号部１３２から供給される各Ｂｉｎを解釈し、シンタックス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]を０に設定する。
【０２９６】
（係数有無フラグ記憶部１２４ｄ）
係数有無フラグ記憶部１２４ｄには、シンタックスsignificant_coeff_flag[xC][yC]の各値が格納される。係数有無フラグ記憶部１２４ｄに格納されたシンタックスsignificant_coeff_flag[xC][yC]の各値は、周辺参照コンテキスト導出部１２４ｃによって参照される。なお、各周波数成分の位置（xC、yC）に非０の変換係数が存在するか否かは係数有無フラグ専用の記憶部を用いずとも、復号した変換係数値を参照することでも参照できるため、係数有無フラグ記憶部１２４ｄを設けず、代わりに、復号係数記憶部１２６を用いることもできる。
【０２９７】
＜係数有無フラグ復号部１２４の第１の構成例の動作＞
図２６は、係数有無フラグ復号部１２４の第１の構成例の動作を示すフローチャートである。
【０２９８】
（ステップＳＢ００１）
サブブロック内のスキャン順を示すカウンタｎを１５に設定する。
【０２９９】
（ステップＳＢ００２）
対象サブブロック内のループを開始する。当該ループは、周波数成分を単位とするループである。
【０３００】
（ステップＳＢ００３）
対象変換係数の位置がラスト位置以降ではないかを判定する。ラスト係数以降ではない場合（ステップＳＢ００３でＹｅｓ）、すなわち、対象変換係数の位置がＤＣ成分からの距離としてn + offsetである場合において、n + offsetが、変換係数の数numCoeff-1より小さい場合には、ステップＳＢ００４へ遷移する。それ以外の場合は（ステップＳＢ００３でＮＯ）、ＳＢ００４〜ＳＢ００５はスキップされ、ＳＢ００６に遷移する。
【０３０１】
（ステップＳＢ００４）
コンテキスト導出部１２４ｚは、処理対象の変換係数に関して所定の方法によりコンテキストインデックスを導出する。その詳細動作については、後に説明する。
【０３０２】
（ステップＳＢ００５）
導出したコンテキストインデックスを用いて係数有無フラグを復号する。
【０３０３】
（ステップＳＢ００６）
カウンタｎを１だけデクリメントする。
【０３０４】
（ステップＳＢ００７）
サブブロック内のループを終了する。
【０３０５】
＜コンテキスト導出部１２４ｚの動作＞
図２７は、コンテキスト導出部１２４ｚを構成する導出方法制御部１２４ａ、位置コンテキスト導出部１２４ｂと周辺参照コンテキスト導出部１２４ｃの動作（ステップＳＢ００４の詳細の動作）を示すフローチャートである。
【０３０６】
（ステップＳＡ１０１）
導出方法制御部１２４ａは、ＴＵサイズが所定サイズより小さいか？を判定する。判定で例えば以下の式を用いる。
【０３０７】
log2TrafoWidth + log2TrafoHeight < THSize
なお、閾値THSizeとしては例えば６が用いられる。閾値THsizeに６を用いた場合には、４×４ＴＵが所定サイズより小さいと判定される。８×８ＴＵ、１６×４ＴＵ、４×１６ＴＵ、１６×１６ＴＵ、３２×４ＴＵ、４×３２ＴＵ、３２×３２ＴＵは所定サイズ以上であると判定されることになる。なお、閾値THSizeは０としてもよい。この場合、４×４ＴＵ〜３２×３２ＴＵが所定サイズ以上であると判定されることになる。
【０３０８】
（ステップＳＡ１０２）
処理対象のＴＵサイズが所定サイズ以上の場合（ステップＳＡ１０１でＮｏ）、導出方法制御部１２４ａは、対象変換係数の位置（xC,yC）が低周波成分であるか？（例えば、図２２（ａ）（ｂ）に示す部分領域Ｒ０であるか）を判定する。判定では例えば、以下の式を用いる。
【０３０９】
xC+yC<THZ
なお、閾値THZとしては例えば１が用いられる。閾値THZに１を用いた場合には、ＤＣ成分のみが低周波成分として判定される。
【０３１０】
（ステップＳＡ１０３）
対象変換係数の位置（xC,yC）が低周波成分でない場合（ステップＳＡ１０２においてＮｏ）、導出方法制御部１２４ａは、対象変換係数を含むサブブロックの位置（xCG,yCG）が高周波成分であるか？（例えば、図２２（ａ）（ｂ）に示す部分領域Ｒ３であるか？）を判定する。判定では例えば、以下の式を用いる。
【０３１１】
xCG+yCG>=THhi
例えば、閾値THhiには、以下の式を用いればよいが、これに限定されない。
【０３１２】
THhi = (3 << ( max(log2TrafoWidth, log2TrafoHeight) - 2 ))
（ステップＳＡ１０４）
対象変換係数を含むサブブロックが高周波成分ではない場合（ステップＳ１０３においてＮｏ）、導出方法制御部１２４ａは、コンテキスト導出手段として、周辺参照コンテキスト導出部１２４ｃを選択し、選択された周辺参照コンテキスト導出部１２４ｃによって、対象変換係数のコンテキストインデックスが導出される。その動作詳細については、後述する。
【０３１３】
（ステップＳＡ１０５）
処理対象のＴＵサイズが所定サイズ未満である場合（ステップＳＡ１０１においてＹｅｓ）、もしくは、対象変換係数の位置(xC, yC)が低波数成分である場合（ステップＳＡ１０２においてＹｅｓ）、もしくは対象変換係数を含むサブブロックが高周波数成分である場合（ステップＳＢ１０３においてＹｅｓ）、導出方法制御部１２４ａは、コンテキスト導出手段として、位置コンテキスト導出部１２４ｂを選択し、選択された位置コンテキスト導出部１２４ｂによって、対象変換係数のコンテキストインデックスが導出される。
【０３１４】
＜周辺参照コンテキスト導出部１２４ｃの動作＞
図２８は、周辺参照コンテキスト導出部１２４ｃによるコンテキストインデックス導出処理（ＳＡ１０４）をより具体的に説明するためのフローチャートである。
【０３１５】
（ステップＳＡ１２１）
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが水平方向優先スキャンであるか？を判定する。図１４（ａ）の例であれば、scanIdx=1が水平方向優先スキャンを示す。
【０３１６】
（ステップＳＡ１２２）
スキャンインデックスscanIdxが水平方向優先スキャンでない場合（ステップＳＡ１２１においてＮｏ）、周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが垂直方向優先スキャンであるか？を判定する。図１４（ａ）の例であれば、scanIdx=2が垂直方向優先スキャンを示す。
【０３１７】
（ステップＳＡ１２３）
スキャンインデックスが垂直方向優先スキャンでない場合（ステップＳＡ１２２においてＮｏ）、周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが斜め方向スキャンであると判定し、変換係数の位置に応じて図２３（ｂ）または図２３（ｃ）に示す参照位置（通常テンプレート）を選択する。
【０３１８】
（ステップＳＡ１２４）
スキャンインデックスが垂直方向優先スキャンである場合（ステップＳＡ１２２においてＹｅｓ）の場合、周辺参照コンテキスト導出部１２４ｃは、変換係数の位置に応じて図２５（ｂ）または図２５（ｃ）に示す垂直方向の変換係数を優先した参照位置（垂直方向優先テンプレート）を選択する。
【０３１９】
（ステップＳＡ１２５）
スキャンインデックスが水平方向優先スキャンである場合（ステップＳＡ１２１においてＹｅｓ）、周辺参照コンテキスト導出部１２４ｃは、変換係数の位置に応じて図２４（ｂ）または図２４（ｃ）に示す水平方向の変換係数を優先した参照位置（水平方向優先テンプレート）を選択する。
【０３２０】
（ステップＳＡ１２６）
周辺参照コンテキスト導出部１２４ｃは、ステップＳＡ１２３、またはステップＳＡ１２４、または、ステップＳＡ１２５において選択された変換係数の参照位置（テンプレート）を用いて、非０変換係数の個数cntを算出し、例えば、式(eq.A6)に示す非０変換係数の個数cntに基づいてコンテキストインデックスctxIdxを導出する。
【０３２１】
以上、係数有無フラグ復号部１２４の第１の構成例によれば、ＴＵサイズが所定サイズより大きい場合に、処理対象の係数有無フラグが低周波成分、もしくは高周波成分に位置する場合は、位置コンテキスト導出部により処理対象の係数有無フラグに関するコンテキストインデックスを導出し、処理対象の係数有無フラグが中周波数成分に位置する場合は、周辺参照コンテキスト導出部により処理対象の係数有無フラグに関するコンテキストインデックスを導出する。
【０３２２】
より具体的には、周辺参照コンテキスト導出部によりコンテキストインデックスを導出する場合には、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択する。
【０３２３】
このため、係数の偏りを考慮したコンテキストを導出することができ、係数有無フラグの符号量を削減し、符号化効率を改善する効果を奏する。
【０３２４】
また、スキャンインデックスと係数位置に基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレートを選択している。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる効果を奏する。
【０３２５】
＜変形例＞
（変形例１）
以下、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例１について説明する。
【０３２６】
係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃでは、スキャンインデックスと係数位置に基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレートを選択していたが、係数位置によらず直前のスキャン列を参照しないテンプレートをスキャンインデックスに応じて選択してもよい。
【０３２７】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合（図２３（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２３（ｅ）に示す４×４サブブロックを単位とする斜め方向スキャンである場合、図２３（ｄ）示すテンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.B1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３２８】
cnt = significant_coeff_flag[xC+2][yC  ]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC  ][yC+2]    // c3
+ significant_coeff_flag[xC+2][yC+1]    // c4
+ significant_coeff_flag[xC+1][yC+2]    // c5 ・・・（eq.B1）
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図２４（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２４（ｅ）に示す４×４サブブロックを単位とし、水平方向を優先とする斜め方向スキャン（水平方向優先スキャンともいう）である場合、図２４（ｄ）示す水平方向の係数を優先して参照するテンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.B2）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３２９】
cnt = significant_coeff_flag[xC+2][yC  ]     // c1
+ significant_coeff_flag[xC+3][yC  ]    // c2
+ significant_coeff_flag[xC+1][yC+1]    // c3
+ significant_coeff_flag[xC+2][yC+1]    // c4
+ significant_coeff_flag[xC+3][yC+1]    // c5 ・・・（eq.B2）
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図２５（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２５（ｅ）に示す４×４サブブロックを単位とし、垂直方向を優先とする斜め方向スキャン（垂直方向優先スキャンともいう）である場合、図２５（ｄ）示す垂直方向の係数を優先して参照するテンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.B3）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３３０】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC  ][yC+2]    // c2
+ significant_coeff_flag[xC+1][yC+1]    // c3
+ significant_coeff_flag[xC+1][yC+2]    // c4
+ significant_coeff_flag[xC+1][yC+3]    // c5 ・・・（eq.B3）
［変形例１の作用・効果］
以上、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例１によれば、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができるため、係数有無フラグの符号化効率を改善する効果を奏する。
【０３３１】
また、図２３（ｄ）、図２４（ｄ）、図２５（ｄ）に示すテンプレートを用いることで、対象とする変換係数ｘがあるスキャン列の直前のスキャン列に位置する変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前のスキャン列にある係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。少なくとも、連続する３つの変換係数に関して、コンテキスト導出処理を並列で処理することができる効果を奏する。
【０３３２】
（変形例２）
以下、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例２について説明する。
【０３３３】
係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例２では、４×４サブブロックを単位とし、斜め方向スキャンが図２３（ｅ）に示すスキャン順であり、水平方向優先スキャンが図２９（ａ）に示す横１行毎に係数をスキャンするスキャン順であり、垂直方向優先スキャンが図３０（ａ）に示す縦１列毎に係数をスキャンするスキャン順である場合について、スキャンインデックスscanIdxに応じて、対象となる変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないテンプレートを選択して、コンテキストインデックスを導出する例を説明する。
【０３３４】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合（図２３（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２３（ｅ）に示す４×４サブブロックを単位とする斜め方向スキャンである場合、図２３（ｃ）に示すテンプレート（参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５））を選択して、以下の式（eq.C1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３３５】
cnt = significant_coeff_flag[xC+1][yC  ]     // c1
+ significant_coeff_flag[xC+2][yC  ]    // c2
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC  ][yC+2]    // c5・・・（eq.C1）
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図２９（ａ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２９（ａ）に示す４×４サブブロックを単位とし、横１行毎に係数をスキャンする水平方向優先スキャンである場合、図２９（ｂ）示す水平方向の係数を優先して参照するテンプレート（水平方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.C2-1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３３６】
cnt = significant_coeff_flag[xC+2][yC  ]     // c1
+ significant_coeff_flag[xC+3][yC  ]    // c2
+ significant_coeff_flag[xC  ][yC+1]    // c3
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC+2][yC+1]    // c5 ・・・（eq.C2-1）
また図２９（ｂ）に示すテンプレートの代わりに、図２９（ｃ）に示す水平方向優先テンプレート（参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５））を選択して、以下の式（eq.C2-2）によって非０変換係数のカウント数cntを算出してもよい。
【０３３７】
cnt = significant_coeff_flag[xC+2][yC  ]     // c1
+ significant_coeff_flag[xC+3][yC  ]    // c2
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC+2][yC+1]    // c5 ・・・（eq.C2-2）
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図３０（ａ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図３０（ａ）に示す４×４サブブロックを単位とし、縦１列毎に係数をスキャンする垂直方向優先スキャンである場合、図３０（ｂ）示す垂直方向の係数を優先して参照するテンプレート（垂直方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.C3-1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３３８】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC  ][yC+2]    // c2
+ significant_coeff_flag[xC+1][yC+1]    // c3
+ significant_coeff_flag[xC+1][yC+2]    // c4
+ significant_coeff_flag[xC+1][yC+3]    // c5 ・・・（eq.C3-1）
また図３０（ｂ）に示すテンプレートの代わりに、図３０（ｃ）に示す垂直方向優先テンプレート（参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５））を選択して、以下の式（eq.C3-2）によって非０変換係数のカウント数cntを算出してもよい。
【０３３９】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC  ][yC+2]    // c2
+ significant_coeff_flag[xC+1][yC+2]    // c4
+ significant_coeff_flag[xC+1][yC+3]    // c5・・・（eq.C3-2）
［変形例２の作用・効果］
以上、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例２によれば、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが横１行毎に係数をスキャンする水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが縦１列毎に係数をスキャンする垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができるため、係数有無フラグの符号化効率を改善する効果を奏する。
【０３４０】
また、図２３（ｃ）、図２９（ｂ）または図２９（ｃ）、図３０（ｂ）または図３０（ｃ）に示すテンプレートを用いることで、対象とする変換係数ｘの位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる効果を奏する。
【０３４１】
（変形例３）
以下、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例３について説明する。
【０３４２】
係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例３では、４×４サブブロックを単位とし、斜め方向スキャンが図２３（ｅ）に示すスキャン順であり、水平方向優先スキャンが図２９（ａ）に示す横１行毎に係数をスキャンするスキャン順であり、垂直方向優先スキャンが図３０（ａ）に示す縦１列毎に係数をスキャンするスキャン順である場合について、スキャンインデックスscanIdxに応じて、対象となる変換係数の直前のスキャン列、あるいは、対象となる変換係数のあるスキャン列を参照しないテンプレートを選択して、コンテキストインデックスを導出する例を説明する。
【０３４３】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合（図２３（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２３（ｅ）に示す４×４サブブロックを単位とする斜め方向スキャンである場合、図２３（ｄ）に示すテンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.D1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３４４】
cnt = significant_coeff_flag[xC+2][yC  ]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC  ][yC+2]    // c3
+ significant_coeff_flag[xC+2][yC+1]    // c4
+ significant_coeff_flag[xC+1][yC+2]    // c5 ・・・（eq.D1）
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図２９（ａ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２９（ａ）に示す４×４サブブロックを単位とし、横１行毎に係数をスキャンする水平方向優先スキャンである場合、図２９（ｄ）に示す水平方向の係数を優先して参照するテンプレート（水平方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.D2-1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３４５】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+2][yC+1]    // c3
+ significant_coeff_flag[xC  ][yC+2]    // c4
+ significant_coeff_flag[xC+1][yC+2]    // c5 ・・・（eq.D2-1）
また図２９（ｄ）に示すテンプレートの代わりに、図２９（ｅ）に示す水平方向優先テンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４））を選択して、以下の式（eq.D2-2）によって非０変換係数のカウント数cntを算出してもよい。
【０３４６】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+2][yC+1]    // c3
+ significant_coeff_flag[xC+3][yC+1]    // c4・・・（eq.D2-2）
また図２９（ｅ）に示すテンプレートの代わりに、図２９（ｆ）に示す水平方向優先テンプレート（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.D2-3）によって非０変換係数のカウント数cntを算出してもよい。
【０３４７】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+2][yC+1]    // c3
+ significant_coeff_flag[xC+3][yC+1]    // c4
+ significant_coeff_flag[xC+4][yC+1]    // c5・・・（eq.D2-3）
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図３０（ａ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図３０（ａ）に示す４×４サブブロックを単位とし、縦１列毎に係数をスキャンする垂直方向優先スキャンである場合、図３０（ｄ）示す垂直方向の係数を優先して参照するテンプレート（垂直方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式（eq.D3-1）によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３４８】
cnt = significant_coeff_flag[xC+1][yC  ]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+1][yC+2]    // c3
+ significant_coeff_flag[xC+2][yC  ]    // c4
+ significant_coeff_flag[xC+2][yC+1]    // c5 ・・・（eq.D3-1）
また図３０（ｄ）に示すテンプレートの代わりに、図３０（ｅ）に示す垂直方向優先テンプレート（参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５））を選択して、以下の式（eq.D3-2）によって非０変換係数のカウント数cntを算出してもよい。
【０３４９】
cnt = significant_coeff_flag[xC+1][yC  ]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+1][yC+2]    // c3
+ significant_coeff_flag[xC+1][yC+3]    // c4・・・（eq.D3-2）
また図３０（ｅ）の代わりに、図３０（ｆ）に示す垂直方向優先テンプレートを選択して、以下の式（eq.D3-3）によって非０変換係数のカウント数cntを算出してもよい。
【０３５０】
cnt = significant_coeff_flag[xC+1][yC  ]     // c1
+ significant_coeff_flag[xC+1][yC+1]    // c2
+ significant_coeff_flag[xC+1][yC+2]    // c3
+ significant_coeff_flag[xC+1][yC+3]    // c4
+ significant_coeff_flag[xC+1][yC+4]    // c5・・・（eq.D3-3）
［変形例３の作用・効果］
以上、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例３によれば、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが横１行毎に係数をスキャンする水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが縦１列毎に係数をスキャンする垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができるため、係数有無フラグの符号化効率を改善する効果を奏する。
【０３５１】
また、斜め方向スキャンである場合は、図２３（ｄ）に示すテンプレートを用いることで、対象とする変換係数ｘがあるスキャン列の直前のスキャン列に位置する変換係数を参照しないようにしている。また、水平方向優先スキャンである場合は、図２９（ｄ）または図２９（ｅ）または図２９（ｆ）に示すテンプレートを、垂直方向優先スキャンである場合は、図３０（ｄ）または図３０（ｅ）または図３０（ｆ）に示すテンプレートを用いることで、対象とする変換係数ｘがあるスキャン列に位置する変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前のスキャン列に位置する係数有無フラグの値を、もしくは、ある位置の係数有無フラグが存在するスキャン列に位置する変換係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる効果を奏する。少なくとも、連続する３つの変換係数に関して、コンテキスト導出処理を並列で処理することができる効果を奏する。
【０３５２】
（変形例４）
以下、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例４について説明する。
【０３５３】
係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例４では、サブブロックサイズがスキャンインデックスscanIdxによって異なる場合において、スキャンインデックスと係数位置に基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレート形状を選択してもよい。すなわち、正方形のサブブロックでは、２次元のテンプレート形状を選択し、長方形のサブブロックでは、１次元のテンプレート形状を選択する。
【０３５４】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合(図２３（ｅ）) ］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２３（ｅ）に示す４×４サブブロックを単位とする斜め方向スキャンである場合、係数位置に応じて、図２３（ｂ）または図２３（ｃ）に示すテンプレートを選択し、非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、変換係数の位置(xC,yC)が、既述の式(eq.A3)を満たす場合、非０変換係数のカウントcntを図２３（ｃ）に示す参照周波数成分を用いて、既述の式(eq.A4)によって導出する。また、変換係数の位置(xC,yC)が、既述の式(eq.A3)を満たさない場合、非０変換係数のカウントcntを図２３（ｂ）に示す参照周波数成分を用いて、既述の式(eq.A5)によって導出する。
【０３５５】
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図３１（ｄ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxの示すスキャン方向に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。すなわち、水平方向優先スキャンが選択される場合は、水平方向に周波数成分が偏っている確率が高いため、水平方向の係数を優先して参照するテンプレートを選択することで、非ゼロ係数の相関を考慮したコンテキスト導出が可能となる。
【０３５６】
図３１（ａ）は、スキャンインデックスscanIdxが水平方向優先スキャン(horizontal fast scan)を示す場合において、８×２サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。８×２のサブブロックにおいて、位置に示す表記が（ｂ）の場合には、図３１（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図３１（ｃ）に示すテンプレートを用いる。図３１（ｂ）（ｃ）はテンプレートの形状を示す。図３１（ｄ）は、８×２サブブロックにおける水平方向優先スキャンのスキャン順（逆スキャン順）を表わす図である。
【０３５７】
処理は、変換係数の位置（xC, yC）が以下の式（eq.CA1）を満たす場合、すなわち、変換係数の位置がサブブロックの左から1列目、かつ、上から1行目にある場合、もしくは、変換係数の位置がサブブロックの左から７列目、かつ上から2行目にある場合と、それ以外の場合とで異なる。
【０３５８】
((xC &7)==0 && (yC &1)==0) || ((xC &7)==6 && (yC &1)==1)        （eq.CA1）
なお、式（eq.CA1）は式(eq.CA1’)によっても表現することができる。
【０３５９】
((xC %8)==0 && (yC %2)==0) || ((xC %8)==6 && (yC %2)==1)        （eq.CA1’）
（非０変換係数の数ｃｎｔの導出）
（式（eq.CA1）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.CA1）を満たす場合、非０変換係数のカウント数ｃｎｔを、図３１（ｃ）に示す参照周波数成分（ｃ２、ｃ３、ｃ４、ｃ５）を用いて、以下の式（eq.CA2）によって導出する。
【０３６０】
cnt = significant_coeff_flag[xC+2][yC ]   // c2
+ significant_coeff_flag[xC+3][yC ]  // c3
+ significant_coeff_flag[xC+4][yC ]  // c4
+ significant_coeff_flag[xC+5][yC ]  // c5       (eq.CA2)
（式（eq.CA1）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.CA1）を満たさない場合は、図３１（ｂ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.CA3）によって、非０変換係数の数ｃｎｔを算出する。
【０３６１】
cnt = significant_coeff_flag[xC+1][yC ]     // c1
+ significant_coeff_flag[xC+2][yC ]    // c2
+ significant_coeff_flag[xC+3][yC ]    // c3
+ significant_coeff_flag[xC+4][yC ]    // c4
+ significant_coeff_flag[xC+5][yC ]    // c5    (eq.CA3)
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、既述の式（eq.A6）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０３６２】
式（eq.CA2）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の右側）に位置する座標（ｃ１）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０３６３】
（水平方向優先スキャンの別の例）
なお、スキャンインデックスscanIdxが水平方向優先スキャンを示す場合において、８×２サブブロック内のスキャンは、図３１(ｄ)に示す８×２サブブロック内で斜め方向に係数を走査するスキャンに限定されない。例えば、図３３（ｅ）に示す８×２サブブロック内で係数をジグザグに走査するスキャンでもよい。図３３（ａ）は、図３３（ｅ）に示すスキャンの場合において、８×２サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。８×２サブブロック内において、位置に示す表記が（ｂ）の場合には、図３３（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図３３（ｃ）に示すテンプレートを用いる。
【０３６４】
処理は、変換係数の位置（xC, yC）が以下の式（eq.CA4）を満たす場合、すなわち、変換係数の位置がサブブロックの上から1行目にある場合と、それ以外の場合とで異なる。
【０３６５】
(yC &1)==0        （eq.CA4）
なお、式（eq.CA4）は式(eq.CA4’)によっても表現することができる。
【０３６６】
(yC %2)==0        （eq.CA4’）
水平方向優先スキャンの別の例（図３３（ｅ））では、スキャン順（順スキャンの場合）を下方向（０、＋１）へのスキャンと右上方向（＋１、―１）へのスキャンの繰り返しで構成する（逆スキャンの場合、上方向へのスキャンと左下方向へのスキャンの繰り返しで構成される）。この場合、処理順で直前に位置する座標が、対象とする変換係数の位置の下側もしくは右上側に設定されるため、対象とする変換係数と相関の高い水平方向（ｃ１）の変換係数が、処理順で直前の変換係数とならない。このスキャン順により、以下に説明するように、処理の並列性を高めた場合にも周辺参照においてｃ１の変換係数を参照することができる。
【０３６７】
（非０変換係数の数ｃｎｔの導出）
（式（eq.CA4）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.CA4）を満たす場合、非０変換係数のカウント数ｃｎｔを、図３３（ｂ）に示す参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５）を用いて、以下の式（eq.CA5）によって導出する。
【０３６８】
cnt = significant_coeff_flag[xC+1][yC ]   // c1
+ significant_coeff_flag[xC+2][yC ]  // c2
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+2][yC+1]  // c5       (eq.CA5)
（式（eq.CA4）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.CA4）を満たさない場合は、図３３（ｃ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.CA6）によって、非０変換係数の数ｃｎｔを算出する。
【０３６９】
cnt = significant_coeff_flag[xC+1][yC ]     // c1
+ significant_coeff_flag[xC+2][yC ]    // c2
+ significant_coeff_flag[xC ][yC+1]    // c3
+ significant_coeff_flag[xC+1][yC+1]    // c4
+ significant_coeff_flag[xC+2][yC+1]    // c5    (eq.CA6)
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、既述の式（eq.A6）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０３７０】
式（eq.CA5）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の下側）に位置する座標（ｃ３）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０３７１】
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図３２（ｄ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxの示すスキャン方向に応じて異なる参照位置（テンプレート）を用いて復号済みの非０変換係数の数ｃｎｔを導出する。すなわち、垂直方向優先スキャンが選択される場合は、垂直方向に周波数成分が偏っている確率が高いため、垂直方向の係数を優先して参照するテンプレートを選択することで、非ゼロ係数の相関を考慮したコンテキスト導出が可能となる。
【０３７２】
図３２（ａ）は、スキャンインデックスscanIdxが垂直方向優先スキャン(vertical fast scan)を示す場合において、２×８サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。２×８のサブブロックにおいて、位置に示す表記が（ｂ）の場合には、図３２（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図３２（ｃ）に示すテンプレートを用いる。図３２（ｂ）（ｃ）はテンプレートの形状を示す。図３２（ｄ）は、２×８サブブロックにおける垂直方向優先スキャンのスキャン順（逆スキャン順）を表わす図である。
【０３７３】
処理は、変換係数の位置（xC, yC）が以下の式（eq.CB1）を満たす場合、すなわち、変換係数の位置がサブブロックの上から１行目、かつ、左から１列目にある場合、もしくは、変換係数の位置がサブブロックの上から７行目、かつ左から２列目にある場合とそれ以外の場合で異なる。
【０３７４】
((xC &1)==0 && (yC &7)==0) || ((xC &1)==1 && (yC &7)==6)        （eq.CB1）
なお、式（eq.CB1）は式(eq.CB1’)によっても表現することができる。
【０３７５】
((xC %2)==0 && (yC %8)==0) || ((xC %2)==1 && (yC %8)==6)        （eq.CB1’）
（非０変換係数の数ｃｎｔの導出）
（式（eq.CB1）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.CB1）を満たす場合、非０変換係数のカウント数ｃｎｔを、図３２（ｃ）に示す参照周波数成分（ｃ２、ｃ３、ｃ４、ｃ５）を用いて、以下の式（eq.CB2）によって導出する。
【０３７６】
cnt = significant_coeff_flag[xC  ][yC+2]  // c2
+ significant_coeff_flag[xC ][yC+3]  // c3
+ significant_coeff_flag[xC ][yC+4]  // c4
+ significant_coeff_flag[xC ][yC+5]  // c5         (eq.CB2)
（式（eq.CB1）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.CB1）を満たさない場合は、図３２（ｂ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.CB3）によって、非０変換係数の数ｃｎｔを算出する。
【０３７７】
cnt = significant_coeff_flag[xC ][yC+1]  // c1
+ significant_coeff_flag[xC ][yC+2]  // c2
+ significant_coeff_flag[xC ][yC+3]  // c3
+ significant_coeff_flag[xC ][yC+4]  // c4
+ significant_coeff_flag[xC ][yC+5]  // c5         (eq.CB3)
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、既述の式（eq.A6）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０３７８】
式（eq.CB2）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の下側）に位置する座標（ｃ１）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０３７９】
（垂直方向優先スキャンの別の例）
なお、スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合において、２×８サブブロック内のスキャンは、図３２(ｄ)に示す２×８サブブロック内で斜め方向に係数を走査するスキャンに限定されない。例えば、図３４（ｅ）に示す２×８サブブロック内で係数をジグザグに走査するスキャンでもよい。図３４（ａ）は、図３４（ｅ）に示すスキャンの場合において、２×８サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。２×８サブブロック内において、位置に示す表記が（ｂ）の場合には、図３４（ｂ）に示すテンプレートを用い、表記が（ｃ）の場合には図３４（ｃ）に示すテンプレートを用いる。
【０３８０】
処理は、変換係数の位置（xC, yC）が以下の式（eq.CB4）を満たす場合、すなわち、変換係数の位置がサブブロックの上から1行目にある場合と、それ以外の場合とで異なる。
【０３８１】
(xC &1)==0        （eq.CB4）
なお、式（eq.CA4）は式(eq.CA4’)によっても表現することができる。
【０３８２】
(xC %2)==0        （eq.CB4’）
垂直方向優先スキャンの別の例（図３４（ｅ））では、スキャン順（順スキャンの場合）を右方向（＋１、０）へのスキャンと左下方向（−１、＋１）へのスキャンの繰り返しで構成する（逆スキャンの場合、左方向へのスキャンと右上方向へのスキャンの繰り返しで構成される）。この場合、処理順で直前に位置する座標が、対象とする変換係数の位置の右側もしくは左下側に設定されるため、対象とする変換係数と相関の高い垂直方向（ｃ１）の変換係数が、処理順で直前の変換係数とならない。このスキャン順により、以下に説明するように、処理の並列性を高めた場合にも周辺参照においてｃ１の変換係数を参照することができる。
【０３８３】
（非０変換係数の数ｃｎｔの導出）
（式（eq.CB4）を満たす場合）
変換係数の位置（xC, yC）が、式（eq.CB4）を満たす場合、非０変換係数のカウント数ｃｎｔを、図３４（ｂ）に示す参照周波数成分（ｃ１、ｃ２、ｃ４、ｃ５）を用いて、以下の式（eq.CB5）によって導出する。
【０３８４】
cnt = significant_coeff_flag[xC ][yC+1]   // c1
+ significant_coeff_flag[xC ][yC+2]  // c2
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+1][yC+2]  // c5       (eq.CB5)
（式（eq.CB4）を満たさない場合）
変換係数の位置（xC, yC）が、式（eq.CB4）を満たさない場合は、図３４（ｃ）に示す参照周波数成分ｃ１〜ｃ５を用いて、以下の式（eq.CB6）によって、非０変換係数の数ｃｎｔを算出する。
【０３８５】
cnt = significant_coeff_flag[xC ][yC+1]   // c1
+ significant_coeff_flag[xC ][yC+2]  // c2
+ significant_coeff_flag[xC+1][yC  ]  // c3
+ significant_coeff_flag[xC+1][yC+1]  // c4
+ significant_coeff_flag[xC+1][yC+2]  // c5       (eq.CB6)
（コンテキストインデックスctxIdxの導出）
続いて、周辺参照コンテキスト導出部１２４ｃは、既述の式（eq.A6）を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部１２４ａに供給する。
【０３８６】
式（eq.CB5）では、対象とする変換係数の位置の、処理順で直前（処理順が逆スキャン順である場合には、対象とする変換係数の位置の右側）に位置する座標（ｃ３）の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０３８７】
［変形例４の作用・効果］
以上、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例４によれば、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するのテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができ、係数有無フラグの符号量を削減し、符号化効率を改善する効果を奏する。
【０３８８】
また、スキャンインデックスと係数位置に基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレートを選択している。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる効果を奏する。
【０３８９】
（変形例５）
以下、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例５について説明する。
【０３９０】
係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例５では、サブブロックサイズがスキャンインデックスscanIdxによって異なる場合において、スキャンインデックスに基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレート形状を選択してもよい。すなわち、正方形のサブブロックでは、２次元のテンプレート形状を選択し、長方形のサブブロックでは、縦長または横長となる１次元のテンプレート形状を選択する。
【０３９１】
［スキャンインデックスscanIdxが斜め方向スキャンを示す場合(図２３（ｅ）) ］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図２３（ｅ）に示す４×４サブブロックを単位とする斜め方向スキャンである場合、図２３（ｃ）に示すテンプレートを選択し、既述の式(eq.A4)によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。
【０３９２】
［スキャンインデックスscanIdxが水平方向優先スキャンを示す場合（図３３（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図３３（ｅ）に示す８×２サブブロックを単位とし、ジグザグに係数をスキャンする水平方向優先スキャンである場合、図３３（ｄ）示す水平方向の係数を優先して参照するテンプレート（水平方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式(eq.CD1)によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３９３】
cnt = significant_coeff_flag[xC+1][yC  ]     // c1
+ significant_coeff_flag[xC+2][yC  ]    // c2
+ significant_coeff_flag[xC+3][yC  ]    // c3
+ significant_coeff_flag[xC+4][yC  ]    // c4
+ significant_coeff_flag[xC+5][yC  ]    // c5         (eq.CD1) 
［スキャンインデックスscanIdxが垂直方向優先スキャンを示す場合（図３４（ｅ））］
周辺参照コンテキスト導出部１２４ｃは、スキャンインデックスscanIdxが、図３４（ｅ）に示す２×８サブブロックを単位とし、ジグザグに係数をスキャンする垂直方向優先スキャンである場合、図３４（ｄ）示す垂直方向の係数を優先して参照するテンプレート（垂直方向優先テンプレートともいう）（参照周波数成分（ｃ１、ｃ２、ｃ３、ｃ４、ｃ５））を選択して、以下の式(eq.CD2)によって非０変換係数のカウント数cntを算出し、その算出結果を式（eq.A6）に適用してコンテキストインデックスctxIdxを導出する。なお、式(eq.A6)は既述のため説明を省略する。
【０３９４】
cnt = significant_coeff_flag[xC  ][yC+1]     // c1
+ significant_coeff_flag[xC  ][yC+2]    // c2
+ significant_coeff_flag[xC  ][yC+3]    // c3
+ significant_coeff_flag[xC  ][yC+4]    // c4
+ significant_coeff_flag[xC  ][yC+5]    // c5        (eq.CD2)
［変形例５の作用・効果］
以上、係数有無フラグ復号部１２４の第１の構成例の備える周辺参照コンテキスト導出部１２４ｃの変形例５によれば、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが水平方向にジグザグに係数をスキャンする水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが垂直方向にジグザグに係数をスキャンする垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができるため、係数有無フラグの符号化効率を改善する効果を奏する。
【０３９５】
また、図２３（ｃ）、図３３（ｄ）、図３４（ｄ）に示すテンプレートを用いることで、対象とする変換係数ｘの位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる効果を奏する。
【０３９６】
＜係数有無フラグ復号部１２４の第２の構成例＞
以下では、図３５を参照して、係数有無フラグ復号部１２４の第２の構成例について説明する。以下に説明する係数有無フラグ復号部１２４の第２の構成例では、係数有無フラグのコンテキストインデックス導出に関し、処理対象の係数より前に復号された係数を、スキャン順に基づいて参照し、参照した係数の個数をカウントし、コンテキストインデックスを導出する。
【０３９７】
図３５は、係数有無フラグ復号部１２４の第２の構成例１２４’を示すブロック図である。図３５に示すように、係数有無フラグ復号部１２４’は、コンテキスト導出部１２４ｚ、係数有無フラグ記憶部１２４ｄ、及び係数有無フラグ設定部１２４ｅを備えている。さらに、コンテキスト導出部１２４ｚは、導出方法制御部１２４ａ、位置コンテキスト導出部１２４ｂ、スキャン順係数参照コンテキスト導出部１２４ｆを備えている。
【０３９８】
なお、係数有無フラグ復号部１２４の第２の構成例１２４’を構成する、係数有無フラグ記憶部１２４ｄ、係数有無フラグ設定部１２４ｅは、係数有無フラグ復号１２４の第１の構成例における係数有無フラグ記憶部１２４ｄ、係数有無フラグ設定部１２４ｅと同一であるため説明を省略する。
【０３９９】
また、図３５では、コンテキスト導出部１２４ｚにおいて、導出方法制御部１２４ａが、位置コンテキスト導出部１２４ｂ、およびスキャン順係数参照コンテキスト導出部１２４ｆを内包する形で記載しているが、これは例示に過ぎない。コンテキスト導出部１２４ｚの構成は、このような構成に限定されない。
【０４００】
（コンテキスト導出部１２４ｚ）
（導出方法制御部１２４ａ）
導出方法制御部１２４ａには、処理対象の周波数成分の位置（ｘＣ,ｙＣ）と、変換ブロックの対数値（log2TrafoWidth、log2TrafoHeight）が入力される。対数値のサイズから、周波数領域の幅widthと高さheightを(1<<log2TrafoWidth)と(1<<log2TrafoHeight)により算出する。なお、対数値のサイズではなく、周波数領域の幅と高さを直接入力しても良い。
【０４０１】
導出方法制御部１２４ａは、対象となるＴＵサイズおよび周波数成分の位置に応じて、位置コンテキスト導出部１２４ｂ、スキャン順係数参照コンテキスト導出部１２４ｆを選択する。選択された各コンテキスト導出部ではコンテキストインデックスctxIdxが導出される。
【０４０２】
例えば、ＴＵサイズが所定のサイズ以下である場合（例えば、４×４ＴＵである場合）には、導出方法制御部１２４ａは、位置コンテキスト導出部１２４ｂを選択し、選択した位置コンテキスト導出部１２４ｂによって導出されたコンテキストインデックスctxIdxを、当該復号対象の周波数成分に割り付ける。
【０４０３】
一方で、対象となるＴＵサイズが所定のサイズよりも大きい場合（例えば、８×８ＴＵ、１６×１６ＴＵ、３２×３２ＴＵである場合等）、導出方法制御部１２４ａは、周波数領域における復号対象の周波数成分の位置に応じて、位置コンテキスト導出部１２４ｂ、及びスキャン順係数参照コンテキスト導出部１２４ｆのいずれかを選択し、選択した何れかのコンテキスト導出手段よって導出されたコンテキストインデックスctxIdxを、当該復号対象の周波数成分に割り付ける。
【０４０４】
なお、導出方法制御部１２４ａは、ＴＵのサイズによらず、位置コンテキスト導出部１２４ｂ、及びスキャン順係数参照コンテキスト導出部１２４ｆのいずれかを固定的に選択する構成であっても構わない。
【０４０５】
（位置コンテキスト導出部１２４ｂ）
位置コンテキスト導出部１２４ｂは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。なお、係数有無フラグ復号１２４の第１の構成例における位置コンテキスト導出部１２４ｂと同じであるため説明を省略する。
【０４０６】
（スキャン順係数参照コンテキスト導出部１２４ｆ）
スキャン順係数参照コンテキスト導出部１２４ｆは、図３６に示すように、スキャン順でｎ番目の復号対象となる変換係数（図３６中でＸ）に関する係数有無フラグのコンテキストインデックスctxIdxを、同一TU内で当該変換係数より前に復号されたＮｋ個の変換係数のうち、図３６でスキャン順でｎ＋１からｎ＋Ｐ番目までのＰ個（Ｐは自然数、または０以上の整数でもよい）の係数を除いて、図３６でスキャン順でｎ＋Ｐ＋１からｎ＋Ｐ＋Ｑ番目までのＱ個（Ｑは自然数、または０以上の整数でもよい）の係数（参照係数）、または、スキャン順でｎ＋Ｐ＋１からスキャン順で終端となるnLast番目の（nLast-(n+P)）個の係数（参照係数）のうち、係数の個数が少ない参照係数における非０変換係数の数ｃｎｔに基づいて導出する。すなわち、非０変換係数の数cntを以下の式（２）で導出し、導出した非０変換係数の個数cntを式(eq.A6)に適用して、コンテキストインデックスctxIdxを導出する。式(eq.A6)は既述のため、説明を省略する。
【０４０７】
【数２】
2013192118.tif 000004
式(２)において、Ｒは、スキャン順で参照する係数のうち、参照係数の終端位置を表わす。また、ｎLastは、スキャン順での変換ブロック内の終端の係数位置を表わし、Ｎ×Ｍ変換ブロックの場合、nLast = N×M - 1となる。また、Ｘｋはスキャン順でｋ番目の係数の変換ブロックにおけるｘ方向の係数位置を表し、Ｙｋはスキャン順でｋ番目の係数の変換ブロックにおけるｙ方向の係数位置を表わす。また、scanOrderX[ log2TrafoWidth ][ log2TrafoHeight][scanIdx][k]は、ＴＵサイズの対数値(log2TrafoWidth, log2TrafoHeight)とスキャンインデックスscanIdxとスキャン順での係数の位置ｋを引数として、変換ブロックにおける係数のｘ方向の位置を返すルックアップテーブルである。また、scanOrderY[ log2TrafoWidth ][ log2TrafoHeight][scanIdx][k]は、ＴＵサイズの対数値(log2TrafoWidth, log2TrafoHeight)とスキャンインデックスscanIdxとスキャン順での係数の位置ｋを引数として、変換ブロックにおける係数のy方向の位置を返すルックアップテーブルである。
【０４０８】
ここで、式(２)において変数Ｐは、スキャン順でｎ番目の処理対象の係数より直前に復号された係数であって、スキャン順でｎ＋１番目から参照しない係数の個数を意味し、変数Ｑは、スキャン順でｎ番目の処理対象の係数より直前に復号された係数であって、スキャン順でｎ＋Ｐ＋１番目から参照する係数の個数を意味する。変数のＰ、Ｑの具体例としては、例えば、Ｐ＝１、Ｑ＝５と設定すればよい。この場合、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理を並列に処理することができる。なお、変数Ｐ、Ｑの具体例として、Ｐ＝１、Ｑ＝５を例に述べたがこれに限定されない。例えば、Ｐ＝２、Ｑ＝５と設定してもよいし、Ｐ＝３、Ｑ＝５と設定してもよい。
【０４０９】
なお、係数位置（ｘＣ,ｙＣ）＝（Ｘｋ，Ｙｋ）に該当するスキャン順ｋは、以下の式(３)で算出される。
【０４１０】
【数３】
2013192118.tif 000005
式（３）において、InvScanOrder[log2TrafoWidth][log2TrafoHeight][scanIdx][xC][yC]は、ＴＵサイズの対数値(log2TrafoWidth, log2TrafoHeight)とスキャンインデックスscanIdxと係数の位置（xC,yC）を引数として、変換ブロックにおける係数のスキャン順での位置ｋを返すルックアップテーブルである。
【０４１１】
以上、スキャン順係数参照コンテキスト導出部１２４ｆによれば、スキャン順でｎ番目となる処理対象とする変換係数より直前に復号されたＰ個の変換係数（スキャン順でｎ＋１〜ｎ＋Ｐ番目の変換係数）より後のＱ個の変換係数（スキャン順でｎ＋Ｐ＋１〜ｎ＋Ｐ＋Ｑ番目の変換係数）を参照するようにしている。このような処理は、ある位置の係数有無フラグの復号に用いるコンテキスト導出を、直前のＰ個の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と復号処理とを並列に処理することができる。
【０４１２】
また、周辺参照コンテキスト導出部１２４ｃでは、スキャンインデックスscanIdx、あるいは、係数位置に応じて、非０変換係数を参照するためのテンプレートを選択する必要があった。一方、スキャン順係数参照コンテキスト導出部１２４ｆでは、参照する変換係数は常にスキャン順から定まるため、スキャンインデックスscanIdx、係数位置に応じた変換係数を参照するためのテンプレートを保持し、選択する必要がない。すなわち、周辺参照コンテキスト導出部１２４ｃよりも簡易にコンテキストインデックス導出処理をすることができる。
【０４１３】
ところで、式(２)において、スキャン順で参照する係数のうち、参照係数の終端位置Ｒを算出する際に用いるnLastを、スキャン順での変換ブロック内の終端の係数位置として説明したがこれに限定されない。例えば、処理対象の変換係数（ｘＣ，ｙＣ）を含むサブブロック（ｘＣＧ、ｙＣＧ）において、サブブロック内のスキャン順で終端の係数位置nLastInSbkをｎLastとしてもよい。例えば、スキャン順でｎ番目の処理対象の変換係数（ｘＣ，ｙＣ）と同一サブブロック内にある終端の係数位置nLastInSbkは、以下の式によって算出することができる。
【０４１４】
nLastInSbk = (coeffNumInSbk - 1) + ( n % coeffNumInSbk) + 
( n / coeffNumInSbk )* coeffNumInSbk
ここで、coeffNumInSbkは、サブブロック内の係数の総数を表わす。
【０４１５】
以上、nLastInSbkをnLastの代わりに用いることで、参照係数に用いる係数の一部が、処理対象の変換係数を含むサブブロックとは異なるサブブロックに含まれないようにすることができる。これは、同一サブブロック内の相関が高い係数のみをスキャン順で参照してコンテキストを導出することができ、係数有無フラグの符号量を削減し、符号化効率を改善する効果を奏する。
【０４１６】
＜係数有無フラグ復号部１２４’の第２の構成例の動作＞
係数有無フラグ復号部１２４’の動作は、係数有無フラグ復号部１２４について、図２６に示したフローチャートを用いて説明したものと概ね同様であるので、ここでは、その詳細な説明を省略する。ただし、ステップＳＢ００４については、係数有無フラグ復号部１２４のものと異なるため、その違いについて以下に詳しく説明する。
【０４１７】
＜係数有無フラグ復号部１２４’の備えるコンテキスト導出部１２４ｚの動作＞
図３７は、コンテキスト導出部１２４ｚを構成する導出方法制御部１２４ａ、位置コンテキスト導出部１２４ｂとスキャン順係数参照コンテキスト導出部１２４ｆの動作（図２６のステップＳＢ００４の詳細の動作）を示すフローチャートである。
【０４１８】
（ステップＳＢ１０１）
導出方法制御部１２４ａは、ＴＵサイズが所定サイズより小さいか？を判定する。判定で例えば以下の式を用いる。
【０４１９】
log2TrafoWidth + log2TrafoHeight < THSize
なお、閾値THSizeとしては例えば６が用いられる。閾値THsizeに６を用いた場合には、４×４ＴＵが所定サイズより小さいと判定される。８×８ＴＵ、１６×４ＴＵ、４×１６ＴＵ、１６×１６ＴＵ、３２×４ＴＵ、４×３２ＴＵ、３２×３２ＴＵは所定サイズ以上であると判定されることになる。なお、閾値THSizeは０としてもよい。この場合、４×４ＴＵ〜３２×３２ＴＵが所定サイズ以上であると判定されることになる。
【０４２０】
（ステップＳＢ１０２）
処理対象のＴＵサイズが所定サイズ以上の場合（ステップＳＢ１０１でＮｏ）、導出方法制御部１２４ａは、対象変換係数の位置（xC,yC）が低周波成分であるか？（例えば、図２２（ａ）（ｂ）に示す部分領域Ｒ０であるか）を判定する。判定では例えば、以下の式を用いる。
【０４２１】
xC+yC<THZ
なお、閾値THZとしては例えば１が用いられる。閾値THZに１を用いた場合には、ＤＣ成分のみが低周波成分として判定される。
【０４２２】
（ステップＳＢ１０３）
対象変換係数の位置（xC,yC）が低周波成分でない場合（ステップＳＡ１０２においてＮｏ）、導出方法制御部１２４ａは、対象変換係数を含むサブブロックの位置（xCG,yCG）が高周波成分であるか？（例えば、図２２（ａ）（ｂ）に示す部分領域Ｒ３であるか？）を判定する。判定では例えば、以下の式を用いる。
【０４２３】
xCG+yCG>=THhi
例えば、閾値THhiには、以下の式を用いればよいが、これに限定されない。
【０４２４】
THhi = (3 << ( max(log2TrafoWidth, log2TrafoHeight) - 2 ))
（ステップＳＢ１０４）
対象変換係数を含むサブブロックが高周波成分ではない場合（ステップＳＢ１０３においてＮｏ）、導出方法制御部１２４ａは、コンテキスト導出手段として、スキャン順係数参照コンテキスト導出部１２４ｆを選択し、選択されたスキャン順係数参照コンテキスト導出部１２４ｆによって、対象変換係数のコンテキストインデックスが導出される。
【０４２５】
（ステップＳＢ１０５）
処理対象のＴＵサイズが所定サイズ未満である場合（ステップＳＢ１０１においてＹｅｓ）、もしくは、対象変換係数の位置(xC, yC)が低波数成分である場合（ステップＳＢ１０２においてＹｅｓ）、もしくは対象変換係数を含むサブブロックが高周波数成分である場合（ステップＳＢ１０３においてＹｅｓ）、導出方法制御部１２４ａは、コンテキスト導出手段として、位置コンテキスト導出部１２４ｂを選択し、選択された位置コンテキスト導出部１２４ｂによって、対象変換係数のコンテキストインデックスが導出される。
【０４２６】
なお、上記に限られず、導出方法制御部１２４ａは、４×４ＴＵ〜３２×３２ＴＵまでのＴＵサイズについて、共通のコンテキストインデックスctxIdx導出処理を実行する構成であっても構わない。すなわち、導出方法制御部１２４ａは、ＴＵのサイズによらず、位置コンテキスト導出部１２４ｂ、及びスキャン順係数参照コンテキスト導出部１２４ｆのいずれかを固定的に選択する構成であっても構わない。
【０４２７】
＜変換係数復号部１２０による処理の流れ＞
以下では、変換係数復号部１２０による変換係数復号処理の流れについて、図３８〜４１を参照して説明する。
【０４２８】
図３８は、変換係数復号部１２０による変換係数復号処理の流れを示すフローチャートである。
【０４２９】
（ステップＳ２１）
まず、変換係数復号部１２０の備える係数復号制御部１２３は、スキャンインデックスscanIdxを設定する。
【０４３０】
（ステップＳ２２）
続いて、変換係数復号部１２０の備えるラスト係数位置復号部１２１は、順スキャンに沿って最後の変換係数の位置を示すシンタックス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を復号することによって行われる。
【０４３５】
（ステップＳ２７）
本ステップは、サブブロックを単位とするループの終端である。（ステップＳ２３のサブブロックを単位とするループの終端）
＜変換係数復号部１２０による処理の変形例１＞
以下では、変換係数復号部１２０による変換係数復号処理の変形例１について、図５０を参照して説明する。
【０４３６】
図５０は、変換係数復号部１２０による変換係数復号処理の変形例１を示すフローチャートである。ステップＳ２１〜ステップＳ２７については既に説明したので説明を省略する。ステップＳ５０Ａ〜ステップＳ５０Ｃは、スキャンインデックスの設定（Ｓ２１）の後、各変換係数の値を復号する前、すなわち、サブブロックのループ（Ｓ２２）の前に実行される。ステップＳ５０Ｄ〜ステップＳ５０Ｅは、各変換係数の値が復号後、すなわち、サブブロックのループ後（Ｓ２７）に実行される。
【０４３７】
（ステップＳ５０Ａ）
係数復号制御部１２３は、スキャンインデックスscanIdxが垂直方向優先スキャンか否かを判定する。
【０４３８】
（ステップＳ５０Ｂ）
スキャンインデックスscanIdxが垂直方向優先スキャンの場合（ステップＳ５０ＡでＹｅｓ）、係数復号制御部１２３は、スキャンインデックスscanIdxを水平方向優先スキャンに変更する。さらにリバースフラグを１に設定する。
【０４３９】
（ステップＳ５０Ｃ）
スキャンインデックスscanIdxが垂直方向優先スキャンではない場合（ステップＳ５０ＡでＮｏ）、係数復号制御部１２３は、リバースフラグを０に設定する。
【０４４０】
（ステップＳ５０Ｄ）
係数復号制御部１２３は、リバースフラグが１であるか否かを判定する。
【０４４１】
（ステップＳ５０Ｅ）
リバースフラグが１の場合（ステップＳ５０ＥでＹｅｓ）、係数復号制御部１２３は、復号した変換係数を転置する。
【０４４２】
図５１は、変換係数の転置を説明する図である。ＴＵサイズがwidth×heightのブロックはheight×widthのブロックに変換される。図５１（ａ）は４×４ＴＵが変換される例、図５１（ｂ）は８×４ＴＵが４×８ＴＵに変換される例である。ＴＵサイズは、この例に限らず、８×８ＴＵ、１６×１６ＴＵ、３２×３２ＴＵ、１６×４ＴＵ、３２×８ＴＵ、１６×４ＴＵ、８×３２ＴＵなどに利用できる。図５１に示すように、転置では（u、ｖ）の位置の変換係数は、（ｖ、u）の位置に移される。
【０４４３】
以上の処理では、変換係数の復号において水平方向優先スキャン順のみを用いることから、既に説明したコンテキスト導出部１２４ｚにおいては、垂直方向優先スキャン順に対応する図２５、図３０、図３２、図３４の周辺参照（テンプレート）及びスキャン順は不要になり、水平方向優先スキャン順に対応する図２４、図２９、図３１、図３３の周辺参照（テンプレート）及びスキャン順と、斜め方向スキャンに対応する図２３の周辺参照（テンプレート）及びスキャン順のみが必要となる。
【０４４４】
以上、説明したように、スキャン順が垂直方向優先スキャン順である場合には、変換係数を復号する際のスキャン順を水平方向優先スキャン順に変更した上で、変換係数の値の復号を行う。スキャン順の変更を行った場合には、変換係数の復号後に、ブロック全体を転置する。以上の処理により、垂直方向優先スキャン順や、垂直方向優先スキャン順に伴うテンプレートを定義することなく、復号処理を行うことができるため処理が簡略化される。また、垂直方向優先に対応する実装が不要になるため、実装も簡略化される。
【０４４５】
なお、図５０において水平方向優先スキャン順と垂直方向優先スキャン順スキャン順を逆にした場合にも、復号処理を簡略化する効果が得られる。この場合、スキャン順が水平方向優先スキャン順である場合には、変換係数を復号する際のスキャン順を垂直方向優先スキャン順に変更した上で、変換係数の値の復号を行う。スキャン順の変更を行った場合には、変換係数の復号後に、ブロック全体を転置する。
【０４４６】
なお、復号処理をソフトウェアで実現する場合には、周辺参照を行う際に参照する変換係数の位置について水平方向の変換係数を優先して参照する参照領域の方が参照しやすいという特徴を有する。ソフトウェアではメモリへのデータ格納はラスタ順に行われることから、対象変換係数の右の位置（xC+1、yC）へのアクセスの方が、対象変換係数の下の位置（xC、yC+1）へのアクセスよりも高速であるためである。
【０４４７】
＜変換係数復号部１２０による処理の変形例２＞
以下では、変換係数復号部１２０による変換係数復号処理の変形例２について、図５２を参照して説明する。
【０４４８】
図５２は、変換係数復号部１２０による変換係数復号処理の変形例２を示すフローチャートである。ステップＳ２１〜ステップＳ２７については既に説明したので説明を省略する。ステップＳ５２Ａ〜ステップＳ５２Ｃは、スキャンインデックスの設定（Ｓ２１）の後、各変換係数の値を復号する前、すなわち、サブブロックのループ（Ｓ２２）の前に実行される。ステップＳ５２Ｄ〜ステップＳ５２Ｅは、各変換係数の値が復号後、すなわち、サブブロックのループ後（Ｓ２７）に実行される。
【０４４９】
（ステップＳ５２Ａ）
係数復号制御部１２３は、ＴＵの高さがＴＵの幅よりも大きいか否かを判定する。
【０４５０】
（ステップＳ５２Ｂ）
ＴＵの高さがＴＵの幅よりも大きい場合（ステップＳ５２ＡでＹｅｓ）、リバースフラグを１に設定する。
【０４５１】
（ステップＳ５２Ｃ）
ＴＵの高さがＴＵの幅よりも大きくない場合（ステップＳ５２ＡでＮｏ）、係数復号制御部１２３は、リバースフラグを０に設定する。
【０４５２】
（ステップＳ５２Ｄ）
係数復号制御部１２３は、リバースフラグが１であるか否かを判定する。
【０４５３】
（ステップＳ５２Ｅ）
リバースフラグが１の場合（ステップＳ５２ＥでＹｅｓ）、係数復号制御部１２３は、復号した変換係数を転置する。
【０４５４】
変形例２の処理では、ＴＵの幅がＴＵの高さよりも大きい場合のみの復号処理を行えば良いので復号処理が簡略化される。ＴＵの高さがＴＵの幅よりも大きい場合に対応する実装が不要になるため実装が簡略化される。
【０４５５】
なお、図５３においてＴＵの幅とＴＵの高さを逆にした場合にも、復号処理を簡略化する効果が得られる。この場合、ＴＵの幅がＴＵの高さより大きい場合に変換係数の復号後にブロック全体を転置する。
【０４５６】
＜＜スキャンインデックス設定処理＞＞
図３９は、スキャンインデックスを設定する処理（ステップＳ２１）をより具体的に説明するためのフローチャートである。
【０４５７】
（ステップＳ２１１）
まず、変換係数復号部１２０の備える係数復号制御部１２３は、予測方式情報ＰｒｅｄＭｏｄｅが、イントラ予測方式ＭＯＤＥ＿ＩＮＴＲＡを示しているか否かを判別する。
【０４５８】
（ステップＳ２１２）
予測方式がイントラ予測方式であるとき（ステップＳ２１１でＹｅｓ）、変換係数復号部１２０の備える係数復号制御部１２３は、イントラ予測モード（予測方向）及び対象のＴＵサイズ（周波数領域のサイズ）に基づいて、スキャンインデックスを設定する。具体的なスキャンインデックスの設定処理については、すでに述べたため、ここでは説明を省略する。
【０４５９】
（ステップＳ２１３）
一方で、予測方式がイントラ予測方式でないとき（インター予測方式であるとき）（ステップＳ２１１でＮｏ）、変換係数復号部１２０の備える係数復号制御部１２３は、スキャンインデックスを斜め方向スキャン(up-right diagonal scan)を示す０に設定する。
＜＜サブブロック係数有無フラグの復号処理＞＞
図４０は、サブブロック係数有無フラグを復号する処理（図３８のステップＳ２４）をより具体的に説明するためのフローチャートである。
【０４６０】
サブブロック係数有無フラグ復号部１２７は、サブブロックのループを開始する前に対象周波数領域に含まれるサブブロック係数有無フラグsignificant_coeff_group_flagの値を初期化する。この初期化処理は、ＤＣ係数を含むサブブロックのサブブロック係数有無フラグと、ラスト係数を含むサブブロックのサブブロック係数有無フラグとを１に設定し、その他のサブブロック係数有無フラグを０に設定することによって行われる。
【０４６１】
（ステップＳ２４４）
サブブロック係数有無フラグ復号部１２４は、サブブロックの位置を取得する。
【０４６２】
（ステップＳ２４７）
係数有無フラグ復号部１２４は、対象サブブロックがラスト係数、もしくはＤＣ係数を含むサブブロックであるか否かを判別する。
【０４６３】
（ステップＳ２４８）
対象サブブロックがラスト係数、もしくはＤＣ係数を含むサブブロックでないとき（ステップＳ２４７でＮｏ）、係数有無フラグ復号部１２４は、サブブロック係数有無フラグsignificant_coeff_group_flagを復号する。
【０４６４】
＜＜係数有無フラグの復号処理＞＞
図４１は、サブブロック内の各非ゼロ変換係数有無フラグsignificant_coeff_flagを復号する処理（図３８のステップＳ２５）をより具体的に説明するためのフローチャートである。
【０４６５】
（ステップＳ２５４）
続いて、係数有無フラグ復号部１２４は、対象サブブロック内のループを開始する。当該ループは、周波数成分を単位とするループである。
【０４６６】
（ステップＳ２５５）
続いて、係数有無フラグ復号部１２４は、変換係数の位置を取得する。
【０４６７】
（ステップＳ２５６）
続いて、係数有無フラグ復号部１２４は、対象サブブロックに非０変換係数が存在するか否かを判別する。
【０４６８】
（ステップＳ２５７）
対象サブブロックに非０変換係数が存在する場合（ステップＳ２５６でＹｅｓ）、係数有無フラグ復号部１２４は、取得した変換係数の位置がラスト位置であるか否かを判別する。
【０４６９】
（ステップＳ２５８）
取得した変換係数の位置がラスト位置でないとき（ステップＳ２５７でＮｏ）、係数有無フラグ復号部１２４は、変換係数有無フラグsignificant_coeff_flagを復号する。
【０４７０】
（ステップＳ２５９）
本ステップは、対象サブブロック内の周波数成分を単位とするループの終端である。（ステップＳ２５９のサブブロック内のループの終端）
〔動画像符号化装置２〕
本実施形態に係る動画像符号化装置２の構成について図４２〜図４７を参照して説明する。動画像符号化装置２は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格に採用されている技術、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックであるＫＴＡソフトウェアに採用されている技術、ＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている技術、および、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている技術を実装している符号化装置である。以下では、既に説明した部分と同じ部分については同じ符号を付し、その説明を省略する。
【０４７１】
図４２は、動画像符号化装置２の構成を示すブロック図である。図４２に示すように、動画像符号化装置２は、予測画像生成部２１、変換・量子化部２２、逆量子化・逆変換部２３、加算器２４、フレームメモリ２５、ループフィルタ２６、可変長符号符号化部２７、および、減算器２８を備えている。また、図４２に示すように、予測画像生成部２１は、イントラ予測画像生成部２１ａ、動きベクトル検出部２１ｂ、インター予測画像生成部２１ｃ、予測方式制御部２１ｄ、および、動きベクトル冗長性削除部２１ｅを備えている。動画像符号化装置２は、動画像＃１０（符号化対象画像）を符号化することによって、符号化データ＃１を生成する装置である。
【０４７２】
（予測画像生成部２１）
予測画像生成部２１は、処理対象ＬＣＵを、１または複数の下位ＣＵに再帰的に分割し、各リーフＣＵをさらに１または複数のパーティションに分割し、パーティション毎に、画面間予測を用いたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒ、または、画面内予測を用いたイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。生成されたインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒおよびイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａは、予測画像Ｐｒｅｄとして、加算器２４および減算器２８に供給される。
【０４７３】
なお、予測画像生成部２１は、スキップモードの適応されたＰＵについては、当該ＰＵに属する他のパラメータの符号化を省略する。また、（１）対象ＬＣＵにおける下位ＣＵおよびパーティションへの分割の態様、（２）スキップモードを適用するか否か、および、（３）パーティション毎にインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒおよびイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａの何れを生成するか、は、符号化効率を最適化するように決定される。
【０４７４】
（イントラ予測画像生成部２１ａ）
イントラ予測画像生成部２１ａは、画面内予測によって、各パーティションに関する予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。具体的には、（１）各パーティションついてイントラ予測に用いる予測モードを選択し、（２）選択した予測モードを用いて、復号画像Ｐから予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する。イントラ予測画像生成部２１ａは、生成したイントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを、予測方式制御部２１ｄに供給する。
【０４７５】
また、イントラ予測画像生成部２１ａは、対象パーティションの周辺のパーティションに割り付けられた予測モードから対象パーティションに対する推定予測モードを決定し、当該推定予測モードと、対象パーティションについて実際に選択された予測モードとが同じであるか否かを示す推定予測モードフラグを、イントラ予測パラメータＰＰ＿Ｉｎｔｒａの一部として、予測方式制御部２１ｄを介して可変長符号符号化部２７に供給し、可変長符号符号化部２７は、当該フラグを、符号化データ＃１に含める構成とする。
【０４７６】
また、イントラ予測画像生成部２１ａは、対象パーティションについての推定予測モードと、対象パーティションについて実際に選択された予測モードとが異なる場合には、対象パーティションについての予測モードを示す残余予測モードインデックスを、イントラ予測パラメータＰＰ＿Ｉｎｔｒａの一部として、予測方式制御部２１ｄを介して可変長符号符号化部２７に供給し、可変長符号符号化部２７は当該残余予測モードインデックスを符号化データ＃１に含める構成とする。
【０４７７】
なお、イントラ予測画像生成部２１ａは、予測画像Ｐｒｅｄ＿Ｉｎｔｒａを生成する際に、図１１に示した予測モードから、より符号化効率が向上する予測モードを選択して適用する。
【０４７８】
（動きベクトル検出部２１ｂ）
動きベクトル検出部２１ｂは、各パーティションに関する動きベクトルｍｖを検出する。具体的には、（１）参照画像として利用する適応フィルタ済復号画像Ｐ＿ＡＬＦ’を選択し、（２）選択した適応フィルタ済復号画像Ｐ＿ＡＬＦ’において対象パーティションを最良近似する領域を探索することによって、対象パーティションに関する動きベクトルｍｖを検出する。ここで、適応フィルタ済復号画像Ｐ＿ＡＬＦ’は、既にフレーム全体の復号が完了した復号済みの復号画像に対して、ループフィルタ２６による適応的フィルタ処理を施すことによって得られる画像であり、動きベクトル検出部２１ｂは、適応フィルタ済復号画像Ｐ＿ＡＬＦ’を構成する各画素の画素値をフレームメモリ２５から読み出すことができる。動きベクトル検出部２１ｂは、検出した動きベクトルｍｖを、参照画像として利用した適応フィルタ済復号画像Ｐ＿ＡＬＦ’を指定する参照画像インデックスＲＩと共に、インター予測画像生成部２１ｃ及び動きベクトル冗長性削除部２１ｅに供給する。
【０４７９】
（インター予測画像生成部２１ｃ）
インター予測画像生成部２１ｃは、画面間予測によって、各インター予測パーティションに関する動き補償画像ｍｃを生成する。具体的には、動きベクトル検出部２１ｂから供給された動きベクトルｍｖを用いて、動きベクトル検出部２１ｂから供給された参照画像インデックスＲＩによって指定される適応フィルタ済復号画像Ｐ＿ＡＬＦ’から動き補償画像ｍｃを生成する。動きベクトル検出部２１ｂと同様に、インター予測画像生成部２１ｃは、適応フィルタ済復号画像Ｐ＿ＡＬＦ’を構成する各画素の画素値をフレームメモリ２５から読み出すことができる。インター予測画像生成部２１ｃは、生成した動き補償画像ｍｃ（インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒ）を、動きベクトル検出部２１ｂから供給された参照画像インデックスＲＩと共に、予測方式制御部２１ｄに供給する。
【０４８０】
（予測方式制御部２１ｄ）
予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａ及びインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを符号化対象画像と比較し、イントラ予測を行うかインター予測を行うかを選択する。イントラ予測を選択した場合、予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａを予測画像Ｐｒｅｄとして加算器２４及び減算器２８に供給すると共に、イントラ予測画像生成部２１ａから供給されるイントラ予測パラメータＰＰ＿Ｉｎｔｒａを可変長符号符号化部２７に供給する。一方、インター予測を選択した場合、予測方式制御部２１ｄは、インター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒを予測画像Ｐｒｅｄとして加算器２４及び減算器２８に供給すると共に、参照画像インデックスＲＩ、並びに、後述する動きベクトル冗長性削除部２１ｅから供給された推定動きベクトルインデックスＰＭＶＩ及び動きベクトル残差ＭＶＤをインター予測パラメータＰＰ＿Ｉｎｔｅｒとして可変長符号符号化部２７に供給する。また、予測方式制御部２１ｄは、イントラ予測画像Ｐｒｅｄ＿Ｉｎｔｒａ及びインター予測画像Ｐｒｅｄ＿Ｉｎｔｅｒのうち何れの予測画像を選択したのかを示す予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅを可変長符号符号化部２７に供給する。
【０４８１】
（動きベクトル冗長性削除部２１ｅ）
動きベクトル冗長性削除部２１ｅは、動きベクトル検出部２１ｂによって検出された動きベクトルｍｖにおける冗長性を削除する。具体的には、（１）動きベクトルｍｖの推定に用いる推定方法を選択し、（２）選択した推定方法に従って推定動きベクトルｐｍｖを導出し、（３）動きベクトルｍｖから推定動きベクトルｐｍｖを減算することにより動きベクトル残差ＭＶＤを生成する。動きベクトル冗長性削除部２１ｅは、生成した動きベクトル残差ＭＶＤを、選択した推定方法を示す推定動きベクトルインデックスＰＭＶＩと共に、予測方式制御部２１ｄに供給する。
【０４８２】
（変換・量子化部２２）
変換・量子化部２２は、（１）符号化対象画像から予測画像Ｐｒｅｄを減算した予測残差Ｄに対してブロック（変換単位）毎にＤＣＴ変換（Discrete Cosine Transform）等の周波数変換を施し、（２）周波数変換により得られた変換係数Ｃｏｅｆｆ＿ＩＱを量子化し、（３）量子化により得られた変換係数Ｃｏｅｆｆを可変長符号符号化部２７及び逆量子化・逆変換部２３に供給する。なお、変換・量子化部２２は、（１）量子化の際に用いる量子化ステップＱＰをＴＵ毎に選択し、（２）選択した量子化ステップＱＰの大きさを示す量子化パラメータ差分Δｑｐを可変長符号符号化部２８に供給し、（３）選択した量子化ステップＱＰを逆量子化・逆変換部２３に供給する。ここで、量子化パラメータ差分Δｑｐとは、周波数変換及び量子化するＴＵに関する量子化パラメータｑｐ（例えばＱＰ＝２ｐｑ／６）の値から、直前に周波数変換及び量子化したＴＵに関する量子化パラメータｑｐ’の値を減算して得られる差分値のことを指す。
【０４８３】
なお、変換・量子化部２２によって行われるＤＣＴ変換は、例えば、対象ブロックのサイズが８×８画素である場合、水平方向の周波数ｕおよび垂直方向の周波数ｖについての量子化前の変換係数をＣｏｅｆｆ＿ＩＱ（ｕ、ｖ）（０≦ｕ≦７、０≦ｖ≦７）と表すことにすると、例えば、以下の数式（４）によって与えられる。
【０４８４】
【数４】
2013192118.tif 000006
ここで、Ｄ（ｉ、ｊ）（０≦ｉ≦７、０≦ｊ≦７）は、対象ブロックにおける位置（ｉ、ｊ）での予測残差Ｄを表している。また、Ｃ（ｕ）およびＣ（ｖ）は、以下のように与えられる。
【０４８５】
・Ｃ（ｕ）＝１／√２  （ｕ＝０）
・Ｃ（ｕ）＝１        （ｕ≠０）
・Ｃ（ｖ）＝１／√２  （ｖ＝０）
・Ｃ（ｖ）＝１        （ｖ≠０）
（逆量子化・逆変換部２３）
逆量子化・逆変換部２３は、（１）量子化された変換係数Ｃｏｅｆｆを逆量子化し、（２）逆量子化によって得られた変換係数Ｃｏｅｆｆ＿ＩＱに対して逆ＤＣＴ（Discrete Cosine Transform）変換等の逆周波数変換を施し、（３）逆周波数変換によって得られた予測残差Ｄを加算器２４に供給する。量子化された変換係数Ｃｏｅｆｆを逆量子化する際には、変換・量子化部２２から供給された量子化ステップＱＰを利用する。なお、逆量子化・逆変換部２３から出力される予測残差Ｄは、変換・量子化部２２に入力される予測残差Ｄに量子化誤差が加わったものであるが、ここでは簡単のために共通の呼称を用いる。逆量子化・逆変換部２３のより具体的な動作は、動画像復号装置１の備える逆量子化・逆変換部１３とほぼ同様である。
【０４８６】
（加算器２４）
加算器２４は、予測方式制御部２１ｄにて選択された予測画像Ｐｒｅｄを、逆量子化・逆変換部２３にて生成された予測残差Ｄに加算することによって、（局所）復号画像Ｐを生成する。加算器２４にて生成された（局所）復号画像Ｐは、ループフィルタ２６に供給されると共にフレームメモリ２５に格納され、イントラ予測における参照画像として利用される。
【０４８７】
（可変長符号符号化部２７）
可変長符号符号化部２７は、（１）変換・量子化部２２から供給された量子化後の変換係数Ｃｏｅｆｆ並びにΔｑｐ、（２）予測方式制御部２１ｄから供給された量子化パラメータＰＰ（インター予測パラメータＰＰ＿Ｉｎｔｅｒ、および、イントラ予測パラメータＰＰ＿Ｉｎｔｒａ）、（３）予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅ、および、（４）ループフィルタ２６から供給されたフィルタパラメータＦＰを可変長符号化することによって、符号化データ＃１を生成する。
【０４８８】
図４３は、可変長符号符号化部２７の構成を示すブロック図である。図４３に示すように、可変長符号符号化部２７は、量子化後の変換係数Ｃｏｅｆｆを符号化する量子化残差情報符号化部２７１、予測パラメータＰＰを符号化する予測パラメータ符号化部２７２、予測タイプ情報Ｐｒｅｄ＿ｔｙｐｅを符号化する予測タイプ情報符号化部２７３、および、フィルタパラメータＦＰを符号化するフィルタパラメータ符号化部２７４を備えている。量子化残差情報符号化部２７１の具体的な構成については後述するためここでは説明を省略する。
【０４８９】
（減算器２８）
減算器２８は、予測方式制御部２１ｄにて選択された予測画像Ｐｒｅｄを、符号化対象画像から減算することによって、予測残差Ｄを生成する。減算器２８にて生成された予測残差Ｄは、変換・量子化部２２によって周波数変換及び量子化される。
【０４９０】
（ループフィルタ２６）
ループフィルタ２６は、（１）復号画像Ｐにおけるブロック境界、またはパーティション境界の周辺の画像の平滑化（デブロック処理）を行うデブロッキングフィルタ（DF:Deblocking Filter）としての機能と、（２）デブロッキングフィルタが作用した画像に対して、フィルタパラメータＦＰを用いて適応フィルタ処理を行う適応フィルタ（ALF:Adaptive Loop Filter）としての機能を有している。
【０４９１】
（量子化残差情報符号化部２７１）
量子化残差情報符号化部２７１は、量子化された変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）をコンテキスト適応型２値算術符号化（ＣＡＢＡＣ：（Context-based Adaptive Binary Arithmetic Coding））することによって、量子化残差情報ＱＤを生成する。生成された量子化残差情報ＱＤに含まれるシンタックスは、図４及び図５に示した各シンタックス、及びsignificant_coeff_group_flagである。
【０４９２】
なお、ｘＣおよびｙＣは、上述のように、周波数領域における各周波数成分の位置を表すインデックスであり、それぞれ、上述した水平方向周波数ｕおよび垂直方向周波数ｖに対応するインデックスである。なお、以下では、量子化された変換係数Ｃｏｅｆｆを、単に、変換係数Ｃｏｅｆｆと呼ぶこともある。
【０４９３】
（量子化残差情報符号化部２７１）
図４４は、量子化残差情報符号化部２７１の構成を示すブロック図である。図４４に示すように、量子化残差情報符号化部２７１は、変換係数符号化部２２０及び算術符号符号化部２３０を備えている。
【０４９４】
（算術符号符号化部２３０）
算術符号符号化部２３０は、変換係数符号化部２２０から供給される各Ｂｉｎをコンテキストを参照して符号化することによって量子化残差情報ＱＤを生成するための構成であり、図４４に示すように、コンテキスト記録更新部２３１及びビット符号化部２３２を備えている。
【０４９５】
（コンテキスト記録更新部２３１）
コンテキスト記録更新部２３１は、各コンテキストインデックスctxIdxによって管理されるコンテキスト変数ＣＶを記録及び更新するための構成である。ここで、コンテキスト変数ＣＶには、（１）発生確率が高い優勢シンボルＭＰＳ（most probable symbol）と、（２）その優勢シンボルＭＰＳの発生確率を指定する確率状態インデックスpStateIdxとが含まれている。
【０４９６】
コンテキスト記録更新部２３１は、変換係数符号化部２２０の備える各部から供給されるコンテキストインデックスctxIdx及びビット符号化部２３２によって符号化されたＢｉｎの値を参照することによってコンテキスト変数ＣＶを更新すると共に、更新されたコンテキスト変数ＣＶを次回更新されるまで記録する。なお、優勢シンボルＭＰＳは０か１である。また、優勢シンボルＭＰＳと確率状態インデックスpStateIdxは、ビット符号化部２３２がＢｉｎを１つ符号化する毎に更新される。
【０４９７】
また、コンテキストインデックスctxIdxは、各周波数成分についてのコンテキストを直接指定するものであってもよいし、処理対象のＴＵ毎に設定されるコンテキストインデックスのオフセットからの増分値であってもよい（以下同様）。
【０４９８】
（ビット符号化部２３２）
ビット符号化部２３２は、コンテキスト記録更新部２３１に記録されているコンテキスト変数ＣＶを参照し、変換係数符号化部２２０の備える各部から供給される各Ｂｉｎを符号化することによって量子化残差情報ＱＤを生成する。また、符号化したＢｉｎの値はコンテキスト記録更新部２３１にも供給され、コンテキスト変数ＣＶを更新するために参照される。
【０４９９】
（変換係数符号化部２２０）
図４４に示すように、変換係数符号化部２２０は、ラスト位置符号化部２２１、スキャン順テーブル格納部２２２、係数符号化制御部２２３、係数有無フラグ符号化部２２４、係数値符号化部２２５、符号化係数記憶部２２６、サブブロック係数有無フラグ２２７、及びシンタックス導出部２２８を備えている。
【０５００】
（シンタックス導出部２２８）
シンタックス導出部２２８は、変換係数Ｃｏｅｆｆ（ｘＣ、ｙＣ）の各値を参照し、対象周波数領域におけるこれらの変換係数を特定するためのシンタックス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は、係数有無フラグ符号化部２２４にも供給される。なお、各シンタックスが示す内容については上述したためここでは説明を省略する。
【０５０１】
（ラスト位置符号化部２２１）
ラスト位置符号化部２２１は、シンタックス導出部２２８より供給されるシンタックス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を参照し、順スキャンに沿った最後の非０変換係数の位置を特定すると共に、特定した最後の非０変換係数の位置を起点とするスキャン順であって、スキャン順テーブル格納部２２２に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各周波数成分の位置（ｘＣ、ｙＣ）を、係数有無フラグ符号化部に供給する。
【０５０７】
また、係数符号化制御部２２３は、処理対象のＴＵのサイズを、変換係数符号化部２２０の備える各部に供給する（図示省略）。
【０５０８】
なお、係数符号化制御部２２３は、スキャン順テーブル格納部２２２に格納されたスキャン順テーブルよって与えられるスキャン順の順スキャン順に、各周波数成分の位置（ｘＣ、ｙＣ）を、係数有無フラグ符号化部２２４に供給する構成としてもよい。
【０５０９】
（ＴＵサイズが所定のサイズよりも大きい場合）
ＴＵサイズが所定のサイズよりも大きい場合、係数符号化制御部２２３は、シンタックス導出部２２８から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非０変換係数の位置を特定すると共に、特定した最後の非０変換係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部２２２に格納されたサブブロックスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各サブブロックの位置（ｘＣＧ、ｙＣＧ）を、サブブロック係数有無フラグ符号化部２２７に供給する。
【０５１０】
また、係数符号化制御部２２３は、処理対象となるサブブロックに関して、スキャン順テーブル格納部２２２に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、当該処理対象となるサブブロックに含まれる各周波数成分の位置（ｘＣ、ｙＣ）を、係数有無フラグ符号化部２２４に供給する。ここで、処理対象となるサブブロックに含まれる各周波数成分のスキャン順としては、イントラ予測の場合には、イントラ予測モードインデックスIntraPredModeと、ＴＵサイズを指定する値log2TrafoSizeとによって指定されるスキャンインデックスscanIdxの示すスキャン順（水平方向優先スキャン、垂直方向優先スキャン、斜め方向スキャンのいずれか）を用い、インター予測の場合には、斜め方向スキャン（Up-right diagonal scan）を用いればよい。また、係数符号化制御部２２３は、当該ＴＵのサイズと当該ＴＵの予測モードとに関連付けられたスキャンインデックスscanIdxを、係数有無フラグ符号化部２２４へ供給する。
【０５１１】
このように、係数符号化制御部２２３は、イントラ予測モード毎に、スキャン順を切り替える構成である。一般に、イントラ予測モードと変換係数の偏りとは互いに相関を有しているため、イントラ予測モードに応じてスキャン順を切り替えることにより、サブブロック係数有無フラグ、係数有無フラグの偏りに適したスキャンを行うことができる。これによって、符号化及び復号対象となるサブブロック係数有無フラグおよび係数有無フラグの符号量を削減することができ、符号化効率が向上する。
【０５１２】
（係数値符号化部２２５）
係数値符号化部２２５は、シンタックス導出部２２８から供給されるシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_remainingを示すＢｉｎを生成する。また、生成した各Ｂｉｎをビット符号化部２３２に供給する。また、これらのシンタックスのＢｉｎを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部２３１に供給する。
【０５１３】
（係数有無フラグ符号化部２２４）
本実施形態に係る係数有無フラグ符号化部２２４は、各位置（ｘＣ、ｙＣ）によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を符号化する。より具体的には、各位置（ｘＣ、ｙＣ）によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を示すＢｉｎを生成する。生成された各Ｂｉｎは、ビット符号化部２３２に供給される。また、係数有無フラグ符号化部２２４は、算術符号符号化部２３０にてシンタックスsignificant_coeff_flag[xC][yC]のＢｉｎを符号化するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部２３１に供給される。
【０５１４】
（係数有無フラグ符号化部２２４の第１の構成例）
図４５は、本実施形態に係る係数有無フラグ符号化部２２４の第１の構成例を示すブロック図である。図４５に示すように、係数有無フラグ符号化部２２４は、コンテキスト導出部２２４ｚ、及び、係数有無フラグ設定部２２４ｅを備えている。さらに、コンテキスト導出部２２４ｚは、導出方法制御部２２４ａ、位置コンテキスト導出部２２４ｂ、周辺参照コンテキスト導出部２２４ｃを備える。なお、図４５では、コンテキスト導出部２２４ｚにおいて、導出方法制御部２２４ａが、位置コンテキスト導出部２２４ｂ、および周辺参照コンテキスト導出部２２４ｃを内包する形で記載しているが、これは例示に過ぎない。コンテキスト導出部２２４ｚの構成は、このような構成に限定されない。
【０５１５】
（導出方法制御部２２４ａ）
導出方法制御部２２４ａは、対象となるＴＵサイズが所定のサイズ以下のサイズである場合（例えば、４×４ＴＵである場合）、当該所定サイズ以下の周波数領域の各周波数成分に対して、その周波数成分の位置に応じて、当該周波数成分を複数の部分領域の何れかに分類すると共に、位置コンテキスト導出部２２４ｂによって導出されたコンテキストインデックスctxIdxを割り付ける。
【０５１６】
一方で、対象となるＴＵサイズが所定のサイズよりも大きいサイズである場合（例えば、８×８ＴＵ、１６×１６ＴＵ、３２×３２ＴＵである場合等）、導出方法制御部２２４ａは、周波数領域における復号対象の周波数成分の位置に応じて、当該周波数成分を複数の部分領域の何れかに分類すると共に、位置コンテキスト導出部２２４ｂ、及び周辺参照コンテキスト導出部２２４ｃの何れかによって導出されたコンテキストインデックスctxIdxを、当該復号対象の周波数成分に割り付ける。
【０５１７】
導出方法制御部２２４ａによる具体的な処理は、動画像復号装置１の備える導出方法制御部１２４ａと同様であるので、ここでは説明を省略する。
【０５１８】
（位置コンテキスト導出部２２４ｂ）
位置コンテキスト導出部２２４ｂは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。
【０５１９】
位置コンテキスト導出部２２４ｂによる具体的な処理は、動画像復号装置１の備える位置コンテキスト導出部１２４ｂと同様であるので、ここでは説明を省略する。
【０５２０】
（周辺参照コンテキスト導出部２２４ｃ）
周辺参照コンテキスト導出部２２４ｃは、符号化対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について符号化済みの非０変換係数の数ｃｎｔに基づいて導出する。より具体的には、周辺参照コンテキスト導出部２２４ｃは、対象周波数成分の位置（xC,yC）、もしくは、対象周波数成分が属するサブブロックの位置(xCG,yCG)が所定の条件を満たす場合、スキャンインデックスscanIdxと変換係数の位置に応じて異なる参照位置（テンプレート）を用いて符号化済みの非０変換係数の数ｃｎｔを導出する。
【０５２１】
周辺参照コンテキスト導出部２２４ｃによる具体的な処理は、動画像復号装置１の備える周辺参照コンテキスト導出部１２４ｃと同様であるので、ここでは説明を省略する。
【０５２２】
（係数有無フラグ設定部２２４ｅ）
係数有無フラグ設定部２２４ｅは、シンタックス導出部２２８から供給されるシンタックス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]は、サブブロック係数有無フラグ符号化部２２７に供給される。
【０５２３】
以上、係数有無フラグ符号化部２２４の第１の構成例によれば、ＴＵサイズが所定サイズより大きい場合に、処理対象の係数有無フラグが低周波成分、もしくは高周波成分に位置する場合は、位置コンテキスト導出部により処理対象の係数有無フラグに関するコンテキストインデックスを導出し、処理対象の係数有無フラグが中周波数成分に位置する場合は、周辺参照コンテキスト導出部により処理対象の係数有無フラグに関するコンテキストインデックスを導出する。より具体的には、周辺参照コンテキスト導出部によりコンテキストインデックスを導出する場合には、スキャンインデックスが斜め方向スキャンを示すとき、水平方向と垂直方向に位置する係数を均等に参照するテンプレートを選択し、スキャンインデックスが水平方向優先スキャンを示すとき、水平方向の係数を優先して参照するテンプレートを選択し、スキャンインデックスが垂直方向優先スキャンを示すときは、垂直方向の係数を優先して参照するテンプレートを選択するため、係数の偏りを考慮したコンテキストを導出することができるため、係数有無フラグの符号化効率を改善する効果を奏する。
【０５２４】
また、スキャンインデックスと係数位置に基づいて、対象とする変換係数の位置の、処理順（逆スキャン順）で直前に位置する座標の変換係数を参照しないようにテンプレートを選択している。このような処理は、ある位置の係数有無フラグの符号化に用いるコンテキスト導出を、直前の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と符号化処理とを並列に処理することができる効果を奏する。したがって、高い符号化効率を維持しつつ、コンテキストインデックス導出処理の処理を高速化することができる。
【０５２５】
（サブブロック係数有無フラグ符号化部２２７）
サブブロック係数有無フラグ符号化部２２７は、各サブブロック位置（ｘＣＧ、ｙＣＧ）によって指定されるシンタックス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]を示すＢｉｎを生成する。生成したＢｉｎは、ビット符号化部２３２に供給される。
【０５３１】
（係数有無フラグ符号化部の第２の構成例）
本実施形態に係る係数有無フラグ符号化部は、上述の構成に限られるものではない。以下では、図４７を参照して、係数有無フラグ符号化部の第２の構成例について説明する。図４７は、係数有無フラグ符号化部２２４の第２の構成例２２４’を示すブロック図である。図４７に示すように、係数有無フラグ符号化部２２４’は、コンテキスト導出部２２４ｚ、及び係数有無フラグ設定部２２４ｅを備えている。さらに、コンテキスト導出部２２４ｚは、導出方法制御部２２４ａ、位置コンテキスト導出部２２４ｂ、スキャン順係数参照コンテキスト導出部２２４ｆを備えている。
【０５３２】
なお、係数有無フラグ符号化部２２４の第２の構成例２２４’を構成する導出方法制御部２２４ａ、位置コンテキスト導出部２２４ｂ、係数有無フラグ設定部２２４ｅは、係数有無フラグ符号化２２４の第１の構成例における導出方法制御部２２４ａ、位置コンテキスト導出部２２４ｂ、係数有無フラグ設定部２２４ｅと同一であるため説明を省略する。なお、係数有無フラグ２２４の第２の構成例は、係数有無フラグ復号部１２４の第２の構成例１２４’に対応する構成を有するものとしてもよい。
【０５３３】
また、図４７では、コンテキスト導出部２２４ｚにおいて、導出方法制御部２２４ａが、位置コンテキスト導出部２２４ｂ、およびスキャン順係数参照コンテキスト導出部２２４ｆを内包する形で記載しているが、これは例示に過ぎない。コンテキスト導出部２２４ｚの構成は、このような構成に限定されない。
【０５３４】
ここで、スキャン順係数参照コンテキスト導出部２２４ｆは、図３６に示すように、スキャン順でｎ番目の符号化対象となる変換係数（図３６中でＸ）に関する係数有無フラグのコンテキストインデックスctxIdxを、同一TU内で当該変換係数より前に符号化されたＮｋ個の変換係数のうち、図３６でスキャン順でｎ＋１からｎ＋Ｐ番目までのＰ個（Ｐは自然数、または０以上の整数でもよい）の係数を除いて、図３６でスキャン順でｎ＋Ｐ＋１からｎ＋Ｐ＋Ｑ番目までのＱ個（Ｑは自然数、または０以上の整数でもよい）の係数（参照係数）、または、スキャン順でｎ＋Ｐ＋１からスキャン順で終端となるnLast番目の（nLast-(n+P)）個の係数（参照係数）のうち、係数の個数が少ない参照係数における非０変換係数の数ｃｎｔに基づいて導出する。
【０５３５】
スキャン順係数参照コンテキスト導出部２２４ｆによる具体的な処理については、スキャン順係数参照コンテキスト導出部１２４ｆと同様であるのでその説明を省略する。ただし、スキャン順係数参照コンテキスト導出部１２４ｆの説明における「復号」を「符号化」と読み替えるものとする。
【０５３６】
以上、スキャン順係数参照コンテキスト導出部２２４ｆによれば、スキャン順でｎ番目となる対象とする変換係数より直前に符号化されたＰ個の変換係数（スキャン順でｎ＋１〜ｎ＋Ｐ番目の変換係数）より後のＱ個の変換係数（スキャン順でｎ＋Ｐ＋１〜ｎ＋Ｐ＋Ｑ番目の変換係数）を参照するようにしている。このような処理は、ある位置の係数有無フラグの符号化に用いるコンテキスト導出を、直前のＰ個の係数有無フラグの値を参照せずに行うことができるため、コンテキスト導出処理と符号化処理とを並列に処理することができる。したがって、高い符号化効率を維持しつつ、コンテキストインデックス導出処理の処理を高速化することができる。
〔付記事項１〕
図４８および図４９を用いて、動画像符号化装置２及び動画像復号装置１の応用例について説明する。上述した動画像符号化装置２及び動画像復号装置１は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像（ＣＧおよびＧＵＩを含む）であってもよい。
【０５３７】
まず、上述した動画像符号化装置２及び動画像復号装置１を、動画像の送信及び受信に利用できることを、図４８を参照して説明する。
【０５３８】
図４８の（ａ）は、動画像符号化装置２を搭載した送信装置ＰＲＯＤ＿Ａの構成を示したブロック図である。図４８の（ａ）に示すように、送信装置ＰＲＯＤ＿Ａは、動画像を符号化することによって符号化データを得る符号化部ＰＲＯＤ＿Ａ１と、符号化部ＰＲＯＤ＿Ａ１が得た符号化データで搬送波を変調することによって変調信号を得る変調部ＰＲＯＤ＿Ａ２と、変調部ＰＲＯＤ＿Ａ２が得た変調信号を送信する送信部ＰＲＯＤ＿Ａ３と、を備えている。上述した動画像符号化装置２は、この符号化部ＰＲＯＤ＿Ａ１として利用される。
【０５３９】
送信装置ＰＲＯＤ＿Ａは、符号化部ＰＲＯＤ＿Ａ１に入力する動画像の供給源として、動画像を撮像するカメラＰＲＯＤ＿Ａ４、動画像を記録した記録媒体ＰＲＯＤ＿Ａ５、動画像を外部から入力するための入力端子ＰＲＯＤ＿Ａ６、及び、画像を生成または加工する画像処理部Ａ７を更に備えていてもよい。図４８の（ａ）においては、これら全てを送信装置ＰＲＯＤ＿Ａが備えた構成を例示しているが、一部を省略しても構わない。
【０５４０】
なお、記録媒体ＰＲＯＤ＿Ａ５は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体ＰＲＯＤ＿Ａ５と符号化部ＰＲＯＤ＿Ａ１との間に、記録媒体ＰＲＯＤ＿Ａ５から読み出した符号化データを記録用の符号化方式に従って復号する復号部（不図示）を介在させるとよい。
【０５４１】
図４８の（ｂ）は、動画像復号装置１を搭載した受信装置ＰＲＯＤ＿Ｂの構成を示したブロック図である。図４８の（ｂ）に示すように、受信装置ＰＲＯＤ＿Ｂは、変調信号を受信する受信部ＰＲＯＤ＿Ｂ１と、受信部ＰＲＯＤ＿Ｂ１が受信した変調信号を復調することによって符号化データを得る復調部ＰＲＯＤ＿Ｂ２と、復調部ＰＲＯＤ＿Ｂ２が得た符号化データを復号することによって動画像を得る復号部ＰＲＯＤ＿Ｂ３と、を備えている。上述した動画像復号装置１は、この復号部ＰＲＯＤ＿Ｂ３として利用される。
【０５４２】
受信装置ＰＲＯＤ＿Ｂは、復号部ＰＲＯＤ＿Ｂ３が出力する動画像の供給先として、動画像を表示するディスプレイＰＲＯＤ＿Ｂ４、動画像を記録するための記録媒体ＰＲＯＤ＿Ｂ５、及び、動画像を外部に出力するための出力端子ＰＲＯＤ＿Ｂ６を更に備えていてもよい。図４８の（ｂ）においては、これら全てを受信装置ＰＲＯＤ＿Ｂが備えた構成を例示しているが、一部を省略しても構わない。
【０５４３】
なお、記録媒体ＰＲＯＤ＿Ｂ５は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部ＰＲＯＤ＿Ｂ３と記録媒体ＰＲＯＤ＿Ｂ５との間に、復号部ＰＲＯＤ＿Ｂ３から取得した動画像を記録用の符号化方式に従って符号化する符号化部（不図示）を介在させるとよい。
【０５４４】
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送（ここでは、送信先が予め特定されていない送信態様を指す）であってもよいし、通信（ここでは、送信先が予め特定されている送信態様を指す）であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
【０５４５】
例えば、地上デジタル放送の放送局（放送設備など）／受信局（テレビジョン受像機など）は、変調信号を無線放送で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である。また、ケーブルテレビ放送の放送局（放送設備など）／受信局（テレビジョン受像機など）は、変調信号を有線放送で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である。
【０５４６】
また、インターネットを用いたＶＯＤ（Video On Demand）サービスや動画共有サービスなどのサーバ（ワークステーションなど）／クライアント（テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど）は、変調信号を通信で送受信する送信装置ＰＲＯＤ＿Ａ／受信装置ＰＲＯＤ＿Ｂの一例である（通常、ＬＡＮにおいては伝送媒体として無線又は有線の何れかが用いられ、ＷＡＮにおいては伝送媒体として有線が用いられる）。ここで、パーソナルコンピュータには、デスクトップ型ＰＣ、ラップトップ型ＰＣ、及びタブレット型ＰＣが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
【０５４７】
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置ＰＲＯＤ＿Ａ及び受信装置ＰＲＯＤ＿Ｂの双方として機能する。
【０５４８】
次に、上述した動画像符号化装置２及び動画像復号装置１を、動画像の記録及び再生に利用できることを、図４９を参照して説明する。
【０５４９】
図４９の（ａ）は、上述した動画像符号化装置２を搭載した記録装置ＰＲＯＤ＿Ｃの構成を示したブロック図である。図４９の（ａ）に示すように、記録装置ＰＲＯＤ＿Ｃは、動画像を符号化することによって符号化データを得る符号化部ＰＲＯＤ＿Ｃ１と、符号化部ＰＲＯＤ＿Ｃ１が得た符号化データを記録媒体ＰＲＯＤ＿Ｍに書き込む書込部ＰＲＯＤ＿Ｃ２と、を備えている。上述した動画像符号化装置２は、この符号化部ＰＲＯＤ＿Ｃ１として利用される。
【０５５０】
なお、記録媒体ＰＲＯＤ＿Ｍは、（１）ＨＤＤ（Hard Disk Drive）やＳＳＤ(Solid State Drive)などのように、記録装置ＰＲＯＤ＿Ｃに内蔵されるタイプのものであってもよいし、（２）ＳＤメモリカードやＵＳＢ（Universal Serial Bus）フラッシュメモリなどのように、記録装置ＰＲＯＤ＿Ｃに接続されるタイプのものであってもよいし、（３）ＤＶＤ（Digital Versatile Disc）やＢＤ（Blu-ray Disc:登録商標）などのように、記録装置ＰＲＯＤ＿Ｃに内蔵されたドライブ装置（不図示）に装填されるものであってもよい。
【０５５１】
また、記録装置ＰＲＯＤ＿Ｃは、符号化部ＰＲＯＤ＿Ｃ１に入力する動画像の供給源として、動画像を撮像するカメラＰＲＯＤ＿Ｃ３、動画像を外部から入力するための入力端子ＰＲＯＤ＿Ｃ４、動画像を受信するための受信部ＰＲＯＤ＿Ｃ５、及び、画像を生成または加工する画像処理部Ｃ６を更に備えていてもよい。図４９の（ａ）においては、これら全てを記録装置ＰＲＯＤ＿Ｃが備えた構成を例示しているが、一部を省略しても構わない。
【０５５２】
なお、受信部ＰＲＯＤ＿Ｃ５は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部ＰＲＯＤ＿Ｃ５と符号化部ＰＲＯＤ＿Ｃ１との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部（不図示）を介在させるとよい。
【０５５３】
このような記録装置ＰＲＯＤ＿Ｃとしては、例えば、ＤＶＤレコーダ、ＢＤレコーダ、ＨＤＤ（Hard Disk Drive）レコーダなどが挙げられる（この場合、入力端子ＰＲＯＤ＿Ｃ４又は受信部ＰＲＯＤ＿Ｃ５が動画像の主な供給源となる）。また、カムコーダ（この場合、カメラＰＲＯＤ＿Ｃ３が動画像の主な供給源となる）、パーソナルコンピュータ（この場合、受信部ＰＲＯＤ＿Ｃ５又は画像処理部Ｃ６が動画像の主な供給源となる）、スマートフォン（この場合、カメラＰＲＯＤ＿Ｃ３又は受信部ＰＲＯＤ＿Ｃ５が動画像の主な供給源となる）なども、このような記録装置ＰＲＯＤ＿Ｃの一例である。
【０５５４】
図４９の（ｂ）は、上述した動画像復号装置１を搭載した再生装置ＰＲＯＤ＿Ｄの構成を示したブロックである。図４９の（ｂ）に示すように、再生装置ＰＲＯＤ＿Ｄは、記録媒体ＰＲＯＤ＿Ｍに書き込まれた符号化データを読み出す読出部ＰＲＯＤ＿Ｄ１と、読出部ＰＲＯＤ＿Ｄ１が読み出した符号化データを復号することによって動画像を得る復号部ＰＲＯＤ＿Ｄ２と、を備えている。上述した動画像復号装置１は、この復号部ＰＲＯＤ＿Ｄ２として利用される。
【０５５５】
なお、記録媒体ＰＲＯＤ＿Ｍは、（１）ＨＤＤやＳＳＤなどのように、再生装置ＰＲＯＤ＿Ｄに内蔵されるタイプのものであってもよいし、（２）ＳＤメモリカードやＵＳＢフラッシュメモリなどのように、再生装置ＰＲＯＤ＿Ｄに接続されるタイプのものであってもよいし、（３）ＤＶＤやＢＤなどのように、再生装置ＰＲＯＤ＿Ｄに内蔵されたドライブ装置（不図示）に装填されるものであってもよい。
【０５５６】
また、再生装置ＰＲＯＤ＿Ｄは、復号部ＰＲＯＤ＿Ｄ２が出力する動画像の供給先として、動画像を表示するディスプレイＰＲＯＤ＿Ｄ３、動画像を外部に出力するための出力端子ＰＲＯＤ＿Ｄ４、及び、動画像を送信する送信部ＰＲＯＤ＿Ｄ５を更に備えていてもよい。図４９の（ｂ）においては、これら全てを再生装置ＰＲＯＤ＿Ｄが備えた構成を例示しているが、一部を省略しても構わない。
【０５５７】
なお、送信部ＰＲＯＤ＿Ｄ５は、符号化されていない動画像を送信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部ＰＲＯＤ＿Ｄ２と送信部ＰＲＯＤ＿Ｄ５との間に、動画像を伝送用の符号化方式で符号化する符号化部（不図示）を介在させるとよい。
【０５５８】
このような再生装置ＰＲＯＤ＿Ｄとしては、例えば、ＤＶＤプレイヤ、ＢＤプレイヤ、ＨＤＤプレイヤなどが挙げられる（この場合、テレビジョン受像機等が接続される出力端子ＰＲＯＤ＿Ｄ４が動画像の主な供給先となる）。また、テレビジョン受像機（この場合、ディスプレイＰＲＯＤ＿Ｄ３が動画像の主な供給先となる）、デジタルサイネージ（電子看板や電子掲示板等とも称され、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、デスクトップ型ＰＣ（この場合、出力端子ＰＲＯＤ＿Ｄ４又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、ラップトップ型又はタブレット型ＰＣ（この場合、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）、スマートフォン（この場合、ディスプレイＰＲＯＤ＿Ｄ３又は送信部ＰＲＯＤ＿Ｄ５が動画像の主な供給先となる）なども、このような再生装置ＰＲＯＤ＿Ｄの一例である。
〔付記事項２〕
上述した動画像復号装置１、および動画像符号化装置２の各ブロックは、集積回路（ＩＣチップ）上に形成された論理回路によってハードウェア的に実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェア的に実現してもよい。
【０５５９】
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（Read Only Memory）、上記プログラムを展開するＲＡＭ（Random Access Memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０５６０】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク類、ＩＣカード（メモリカードを含む）／光カード等のカード類、マスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ類、あるいはＰＬＤ（Programmable logic device）やＦＰＧＡ（Field Programmable Gate Array）等の論理回路類などを用いることができる。
【０５６１】
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（Virtual Private Network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１無線、ＨＤＲ（High Data Rate）、ＮＦＣ（Near Field Communication）、ＤＬＮＡ（Digital Living Network Alliance）、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【０５６２】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０５６３】
本発明は、算術符号化された符号化データを復号する算術復号装置、および、算術符号化された符号化データを生成する算術符号化装置に好適に用いることができる。
【符号の説明】
【０５６４】
１            動画像復号装置（画像復号装置）
１１          可変長符号復号部
１１１        量子化残差情報復号部（算術復号装置）
１２０        変換係数復号部
１２３        係数復号制御部（サブブロック分割手段）
１２４        係数有無フラグ復号部（コンテキストインデックス導出手段）
１２４ｚ      コンテキスト導出部
１２４ａ      導出方法制御部（分割手段）
１２４ｂ      位置コンテキスト導出部
１２４ｃ      周辺参照コンテキスト導出部
１２４ｄ      係数有無フラグ記憶部
１２４ｅ      係数有無フラグ設定部
１２４ｆ      スキャン順係数参照コンテキスト導出部（コンテキストインデックス導出手段）
１２７        サブブロック係数有無フラグ復号部（サブブロック係数有無フラグ復号手段）
１２７ａ      コンテキスト導出部
１２７ｂ      サブブロック係数有無フラグ記憶部
１２７ｃ      サブブロック係数有無フラグ設定部
１３０        算術符号復号部
１３１        コンテキスト記録更新部
１３２        ビット復号部（シンタックス復号手段）
２            動画像符号化装置（画像符号化装置）
２７          可変長符号符号化部
２７１        量子化残差情報符号化部（算術符号化装置）
２２０        変換係数符号化部
２２３        係数符号化制御部（サブブロック分割手段）
２２４        係数有無フラグ符号化部（コンテキストインデックス導出手段）
２２４ｚ      コンテキスト導出部
２２４ａ      導出方法制御部（分割手段）
２２４ｂ      位置コンテキスト導出部
２２４ｃ      周辺参照コンテキスト導出部
２２４ｅ      係数有無フラグ設定部
２２４ｆ      スキャン順係数参照コンテキスト導出部（コンテキストインデックス導出手段）
２２７        サブブロック係数有無フラグ符号化部（サブブロック係数有無フラグ符号化手段）
２２７ａ      コンテキスト導出部
２２７ｂ      サブブロック係数有無フラグ記憶部
２２７ｃ      サブブロック係数有無フラグ設定部
２２８        シンタックス導出部
２３０        算術符号符号化部
２３１        コンテキスト記録更新部
２３２        ビット符号化部（シンタックス符号化手段）
【図１】
2013192118.tif 000007
【図２】
2013192118.tif 000008
【図３】
2013192118.tif 000009
【図４】
2013192118.tif 000010
【図５】
2013192118.tif 000011
【図６】
2013192118.tif 000012
【図７】
2013192118.tif 000013
【図８】
2013192118.tif 000014
【図９】
2013192118.tif 000015
【図１０】
2013192118.tif 000016
【図１１】
2013192118.tif 000017
【図１２】
2013192118.tif 000018
【図１３】
2013192118.tif 000019
【図１４】
2013192118.tif 000020
【図１５】
2013192118.tif 000021
【図１６】
2013192118.tif 000022
【図１７】
2013192118.tif 000023
【図１８】
2013192118.tif 000024
【図１９】
2013192118.tif 000025
【図２０】
2013192118.tif 000026
【図２１】
2013192118.tif 000027
【図２２】
2013192118.tif 000028
【図２３】
2013192118.tif 000029
【図２４】
2013192118.tif 000030
【図２５】
2013192118.tif 000031
【図２６】
2013192118.tif 000032
【図２７】
2013192118.tif 000033
【図２８】
2013192118.tif 000034
【図２９】
2013192118.tif 000035
【図３０】
2013192118.tif 000036
【図３１】
2013192118.tif 000037
【図３２】
2013192118.tif 000038
【図３３】
2013192118.tif 000039
【図３４】
2013192118.tif 000040
【図３５】
2013192118.tif 000041
【図３６】
2013192118.tif 000042
【図３７】
2013192118.tif 000043
【図３８】
2013192118.tif 000044
【図３９】
2013192118.tif 000045
【図４０】
2013192118.tif 000046
【図４１】
2013192118.tif 000047
【図４２】
2013192118.tif 000048
【図４３】
2013192118.tif 000049
【図４４】
2013192118.tif 000050
【図４５】
2013192118.tif 000051
【図４６】
2013192118.tif 000052
【図４７】
2013192118.tif 000053
【図４８】
2013192118.tif 000054
【図４９】
2013192118.tif 000055
【図５０】
2013192118.tif 000056
【図５１】
2013192118.tif 000057
【図５２】
2013192118.tif 000058