(57)【要約】【課題】予め定められたビット精度で重み係数を表現可能としつつ、符号化効率を向上する。【解決手段】実施形態の符号化方法は、輝度の重み係数の第１固定小数点精度を符号化するステップと、前記第１固定小数点精度と、色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値を符号化するステップと、前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値である、前記輝度の重み係数の第２差分値を符号化するステップと、を含む。【選択図】図１
2020074609.tif 000002
【特許請求の範囲】
【請求項１】
符号化データを記憶する記憶部を備え、
前記符号化データは、ハードウェア回路による動画の復号の処理に用いられるものであって、
画像に対する重み付き動き補償予測で用いられる輝度の重み係数の第１固定小数点精度が符号化されたデータと、
前記第１固定小数点精度と、前記重み付き動き補償予測で用いられる色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値が符号化されたデータであって、前記第１固定小数点精度と前記第１差分値とが加算されることにより、前記第２固定小数点精度を決定する処理に用いられるためのデータと、
前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値であって、前記第１固定小数点精度によらず−１２８から＋１２７までの範囲をとりうる値とする、前記輝度の重み係数の第２差分値が符号化されたデータであって、前記第１基準値と前記第２差分値とが加算されることにより、前記輝度の重み係数を決定する処理に用いられるためのデータと、
を含む、
記憶装置。
【請求項２】
符号化データを送信する送信部を備え、
前記符号化データは、ハードウェア回路による動画の復号の処理に用いられるものであって、
画像に対する重み付き動き補償予測で用いられる輝度の重み係数の第１固定小数点精度が符号化されたデータと、
前記第１固定小数点精度と、前記重み付き動き補償予測で用いられる色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値が符号化されたデータであって、前記第１固定小数点精度と前記第１差分値とが加算されることにより、前記第２固定小数点精度を決定する処理に用いられるためのデータと、
前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値であって、前記第１固定小数点精度によらず−１２８から＋１２７までの範囲をとりうる値とする、前記輝度の重み係数の第２差分値が符号化されたデータであって、前記第１基準値と前記第２差分値とが加算されることにより、前記輝度の重み係数を決定する処理に用いられるためのデータと、
を含む、
送信装置。
【請求項３】
符号化データを受信する受信部を備え、
前記符号化データは、ハードウェア回路による動画の復号の処理に用いられるものであって、
画像に対する重み付き動き補償予測で用いられる輝度の重み係数の第１固定小数点精度が符号化されたデータと、
前記第１固定小数点精度と、前記重み付き動き補償予測で用いられる色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値が符号化されたデータであって、前記第１固定小数点精度と前記第１差分値とが加算されることにより、前記第２固定小数点精度を決定する処理に用いられるためのデータと、
前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値であって、前記第１固定小数点精度によらず−１２８から＋１２７までの範囲をとりうる値とする、前記輝度の重み係数の第２差分値が符号化されたデータであって、前記第１基準値と前記第２差分値とが加算されることにより、前記輝度の重み係数を決定する処理に用いられるためのデータと、
を含む、
受信装置。
【請求項４】
ハードウェア回路および記憶部を備える電子装置に用いられ、前記記憶部に記憶される符号化データであって、
画像に対する重み付き動き補償予測で用いられる輝度の重み係数の第１固定小数点精度が符号化されたデータと、
前記第１固定小数点精度と、前記重み付き動き補償予測で用いられる色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値が符号化されたデータであって、前記ハードウェア回路により、前記第１固定小数点精度と前記第１差分値とが加算されることにより、前記第２固定小数点精度を決定する処理に用いられるデータと、
前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値であって、前記第１固定小数点精度によらず−１２８から＋１２７までの範囲をとりうる値とする、前記輝度の重み係数の第２差分値が符号化されたデータであって、前記ハードウェア回路により、前記第１基準値と前記第２差分値とが加算されることにより、前記輝度の重み係数を決定する処理に用いられるデータと、
を含み、
前記ハードウェア回路が、前記記憶部から前記符号化データを読み出し、
読みだされた前記符号化データは、前記ハードウェア回路による復号するための処理に用いられる、
符号化データ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置、送信装置、受信装置及び符号化データに関する。
【背景技術】
【０００２】
近年、符号化効率を大幅に向上させた画像符号化方法が、ＩＴＵ−Ｔ（International  Telecommunication  Union  Telecommunication  Standardization  Sector）とＩＳＯ（International  Organization  for  Standardization）／ＩＥＣ（International  Electrotechnical  Commission）との共同で、ＩＴＵ−Ｔ  ＲＥＣ．  Ｈ．２６４及びＩＳＯ／ＩＥＣ  １４４９６−１０（以下、「Ｈ．２６４」という）として勧告されている。
【０００３】
Ｈ．２６４には、符号化済みの画像を参照画像に用いて分数精度の動き補償予測を行うことにより、時間方向の冗長性を削除し、高い符号化効率を実現するインター予測符号化方式が開示されている。
【０００４】
また、ＩＳＯ／ＩＥＣ  ＭＰＥＧ（Moving  Picture  Experts  Group）−１，２，４におけるインター予測符号化方式よりも、フェードやディゾルブ効果を含む動画像を高効率に符号化する方式も提案されている。この方式では、時間方向における明度変化を予測する枠組みとして、輝度と２つの色差とを有する入力動画像に対して分数精度の動き補償予測を行う。そして、参照画像、輝度及び２つの色差毎の重み係数、並びに輝度及び２つの色差毎のオフセットなどを用いて、予測画像に重み係数を乗じ、オフセットを加算する。重み係数は、固定小数点精度を示すパラメータにより、所定の精度で分数値を表現することができ、画像間の画素値変化をより細かい精度で重み付きの動き補償予測を行うことが可能となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−７３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したような従来技術では、参照画像、重み係数、及びオフセットなどはインデックスとして符号化されるが、インデックスは予め定められたビット精度で表現するよう規定されているため、重み係数を表現できない場合がある。本発明が解決しようとする課題は、予め定められたビット精度で重み係数を表現可能としつつ、符号化効率を向上できる電子機器、復号方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の符号化方法は、輝度の重み係数の第１固定小数点精度を符号化するステップと、前記第１固定小数点精度と、色差の重み係数の第２固定小数点精度との差異と同じ値である、第１差分値を符号化するステップと、前記第１固定小数点精度で定められるビット数だけ“１”を左シフトすることによって得られる値と同じ値である第１基準値と、前記輝度の重み係数と、の差異と同じ値である、前記輝度の重み係数の第２差分値を符号化するステップと、を含む。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の符号化装置の例を示すブロック図。
【図２Ａ】第１実施形態の画素ブロックの予測符号化順序例を示す説明図。
【図２Ｂ】第１実施形態の画素ブロックの予測符号化順序の他の例を示す説明図。
【図３Ａ】第１実施形態におけるコーディングツリーブロックのブロックサイズ例を示す図。
【図３Ｂ】第１実施形態のコーディングツリーブロックの具体例を示す図。
【図３Ｃ】第１実施形態のコーディングツリーブロックの具体例を示す図。
【図３Ｄ】第１実施形態のコーディングツリーブロックの具体例を示す図。
【図４】第１実施形態の予測画像生成部の例を示すブロック図。
【図５】第１実施形態の双方向予測における動き補償予測の動きベクトルの関係の例を示す図。
【図６】第１実施形態の複数フレーム動き補償部の例を示すブロック図。
【図７】重み係数の説明のための参考図。
【図８】Ｈ．２６４の重み係数の選択範囲を示す参考図。
【図９】第１実施形態の重み係数の選択範囲の例を示す説明図。
【図１０Ａ】第１実施形態の重み係数の選択範囲の具体例を示す説明図。
【図１０Ｂ】第１実施形態の重み係数の選択範囲の具体例を示す説明図。
【図１１】Ｈ．２６４の重み係数の最小値及び最大値を示す参考図。
【図１２】第１実施形態の重み係数の最小値及び最大値の例を示す説明図。
【図１３Ａ】第１実施形態のＷＰパラメータ情報例を示す図。
【図１３Ｂ】第１実施形態のＷＰパラメータ情報例を示す図。
【図１４】第１実施形態の重み係数の選択範囲の導出処理例を示すフローチャート。
【図１５】第１実施形態のシンタクスの例を示す図。
【図１６】第１実施形態のピクチャパラメータセットシンタクスの例を示す図。
【図１７】第１実施形態のスライスヘッダーシンタクスの例を示す図。
【図１８】第１実施形態のプレッドウェイトテーブルシンタクスの例を示す図。
【図１９】第１実施形態のシンタクス要素の値の関係の例を示す説明図。
【図２０】第２実施形態の復号装置の構成例を示すブロック図。
【図２１】変形例１のオフセットの選択範囲の例を示す説明図。
【図２２】変形例１のオフセットの選択範囲の導出処理例を示すフローチャート。
【図２３】変形例２の重み係数の選択範囲の例を示す説明図。
【図２４】変形例２の重み係数の選択範囲の導出処理例を示すフローチャート。
【図２５】変形例３の符号化対象の重み係数の差分値の範囲の例を示す説明図。
【図２６】変形例３のシンタクス要素の値の関係の例を示す説明図。
【図２７】変形例４の重み係数の差分値の範囲の例を示す説明図。
【図２８】変形例４の復号後の重み係数の選択範囲の例を示す説明図。
【図２９】変形例５の重み係数の差分値のラップ処理例を示すフローチャート。
【図３０】変形例５の重み係数の差分値の復元処理例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、実施形態を詳細に説明する。以下の各実施形態の符号化装置及び復号装置は、ＬＳＩ（Large-Scale  Integration）チップ、ＤＳＰ（Digital  Signal  Processor）、又はＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアにより実現できる。また、以下の各実施形態の符号化装置及び復号装置は、コンピュータにプログラムを実行させること、即ち、ソフトウェアにより実現させることもできる。なお、以降の説明において、「画像」という用語は、「映像」、「画素」、「画像信号」、「絵」、又は「画像データ」などの用語に適宜読み替えることができる。
【００１０】
（第１実施形態）
第１実施形態では、動画像を符号化する符号化装置について説明する。
【００１１】
図１は、第１実施形態の符号化装置１００の構成の一例を示すブロック図である。
【００１２】
符号化装置１００は、入力画像を構成する各フレーム又は各フィールドを複数の画素ブロックに分割し、符号化制御部１１１から入力される符号化パラメータを用いて、分割した画素ブロックに対して予測符号化を行い、予測画像を生成する。そして符号化装置１００は、複数の画素ブロックに分割した入力画像と予測画像とを減算して予測誤差を生成し、生成した予測誤差を直交変換及び量子化し、更にエントロピー符号化を行って符号化データを生成し、出力する。
【００１３】
符号化装置１００は、画素ブロックのブロックサイズ及び予測画像の生成方法の少なくともいずれかが異なる複数の予測モードを選択的に適用して予測符号化を行う。予測画像の生成方法は、大別すると、符号化対象フレーム内で予測を行うイントラ予測と、時間的に異なる１以上の参照フレームを用いて動き補償予測を行うインター予測との２種類である。なお、イントラ予測は、画面内予測又はフレーム内予測などとも称され、インター予測は、画面間予測、フレーム間予測、又は動き補償予測などとも称される。
【００１４】
図２Ａは、第１実施形態における画素ブロックの予測符号化順序の一例を示す説明図である。図２Ａに示す例では、符号化装置１００は、画素ブロックの左上から右下に向かって予測符号化を行っており、符号化処理対象のフレームｆにおいて、符号化対象画素ブロックｃよりも左側及び上側に符号化済み画素ブロックｐが位置している。
【００１５】
図２Ｂは、第１実施形態における画素ブロックの予測符号化順序の他の例を示す説明図である。図２Ｂに示す例は、符号化装置１００は、予め画面を複数のタイル状又はスライス状に分割した上で、各タイル又は各スライスの中の画素ブロックの左上から右下に向かって予測符号化を行っており、符号化処理対象のフレームｆにおいて、符号化対象画素ブロックｃよりも左側及び上側に符号化済み画素ブロックｐが位置している。なお、タイルは、画面を任意の矩形領域で切り出した領域を意味し、スライスは、予測符号化順に従って後述する任意数のラージコーディングツリーブロックで切り出した領域を意味する。
【００１６】
図２Ｂに示す例のように、画面を複数のタイル状又は複数のスライス状に分割した後に、タイル毎又はスライス毎に符号化処理を行うことにより、タイル毎又はスライス毎の復号処理が可能となる。このため、高解像度映像の復号処理を並列して行うことにより、復号に必要となる演算量を分散することが可能となる。つまり、図２Ｂに示す例の場合、符号化処理及び復号処理の高速化が可能となる。
【００１７】
以下では、説明の簡単化のため、符号化装置１００は、図２Ａに示す順序で予測符号化を行うものとするが、予測符号化の順序はこれに限定されるものではない。
【００１８】
画素ブロックは、画像を処理する単位を示し、例えば、Ｍ×Ｎサイズのブロック（Ｍ及びＮは自然数）、コーディングツリーブロック、マクロブロック、サブブロック、又は１画素などが該当する。以降の説明では、基本的に、画素ブロックをコーディングツリーブロックの意味で使用するが、他の意味で使用する場合もある。例えば、プレディクションユニットの説明では、画素ブロックを、プレディクションユニットの画素ブロックの意味で使用する。また、ブロックはユニットなどの名称で呼ばれることもある。例えばコーディングブロックをコーディングユニットと呼ぶ。
【００１９】
図３Ａは、第１実施形態におけるコーディングツリーブロックのブロックサイズの一例を示す図である。コーディングツリーブロックは、典型的には、図３Ａに示すような６４×６４の画素ブロックである。但し、これに限定されるものではなく、３２×３２の画素ブロック、１６×１６の画素ブロック、８×８の画素ブロック、又は４×４の画素ブロックなどであってもよい。また、コーディングツリーブロックは、正方形でなくてもよく、例えば、Ｍ×Ｎサイズ（Ｍ≠Ｎ）の画素ブロックであってもよい。
【００２０】
図３Ｂ〜図３Ｄは、第１実施形態のコーディングツリーブロックの具体例を示す図である。図３Ｂは、ブロックサイズが６４×６４（Ｎ＝３２）のコーディングツリーブロックを示している。Ｎは、基準となるコーディングツリーブロックのサイズを表しており、分割された場合のサイズがＮ、分割されない場合のサイズが２Ｎと定義されている。図３Ｃは、図３Ｂのコーディングツリーブロックを四分木分割したコーディングツリーブロックを示している。コーディングツリーブロックは、図３Ｃに示すように、四分木構造を持つ。コーディングツリーブロックが分割された場合、分割後の４つの画素ブロックに対して、図３Ｃに示すように、Ｚスキャン順で番号が付される。
【００２１】
なお、コーディングツリーブロックは、１つの四分木の番号内で更に四分木分割することができる。これにより、コーディングツリーブロックを階層的に分割することができる。この場合、分割の深さは、Ｄｅｐｔｈで定義される。図３Ｄは、図３Ｂのコーディングツリーブロックを四分木分割したコーディングツリーブロックの１つを示し、ブロックサイズが３２×３２（Ｎ＝１６）となっている。図３Ｂに示すコーディングツリーブロックのＤｅｐｔｈは０であり、図３Ｄに示すコーディングツリーブロックのＤｅｐｔｈは、１である。なお、最もユニットが大きいコーディングツリーブロックは、ラージコーディングツリーブロックと呼ばれ、この単位で入力画像信号がラスタースキャン順に符号化される。
【００２２】
以降の説明では、入力画像の符号化対象ブロック又はコーディングツリーブロックを予測対象ブロック又は予測画素ブロックと称することもある。なお、符号化単位は画素ブロックに限らず、フレーム、フィールド、スライス、ライン、及び画素の少なくともいずれかを用いることもできる。
【００２３】
符号化装置１００は、図１に示すように、減算部１０１と、直交変換部１０２と、量子化部１０３と、逆量子化部１０４と、逆直交変換部１０５と、加算部１０６と、予測画像生成部１０７と、インデックス設定部１０８と、動き評価部１０９と、符号化部１１０とを、備える。なお、図１に示す符号化制御部１１１は、符号化装置１００を制御するものであり、例えば、ＣＰＵ（Central  Processing  Unit）などにより実現できる。
【００２４】
減算部１０１は、画素ブロックに分割された入力画像から対応する予測画像を減算して予測誤差を得る。減算部１０１は、予測誤差を出力し、直交変換部１０２に入力する。
【００２５】
直交変換部１０２は、減算部１０１から入力された予測誤差に対して、例えば、離散コサイン変換（ＤＣＴ）又は離散サイン変換（ＤＳＴ）のような直交変換を行い、変換係数を得る。直交変換部１０２は、変換係数を出力し、量子化部１０３に入力する。
【００２６】
量子化部１０３は、直交変換部１０２から入力された変換係数に対して量子化処理を行い、量子化変換係数を得る。具体的には、量子化部１０３は、符号化制御部１１１によって指定される量子化パラメータや量子化マトリクスなどの量子化情報に従って量子化を行う。より詳細には、量子化部１０３は、変換係数を量子化情報によって導出される量子化ステップサイズで除算し、量子化変換係数を得る。量子化パラメータは、量子化の細かさを示す。量子化マトリクスは、量子化の細かさを変換係数の成分毎に重み付けするために使用される。量子化部１０３は、量子化変換係数を出力し、逆量子化部１０４及び符号化部１１０に入力する。
【００２７】
逆量子化部１０４は、量子化部１０３から入力された量子化変換係数に対して逆量子化処理を行い、復元変換係数を得る。具体的には、逆量子化部１０４は、量子化部１０３において使用された量子化情報に従って逆量子化を行う。より詳細には、逆量子化部１０４は、量子化情報によって導出された量子化ステップサイズを量子化変換係数に乗算し、復元変換係数を得る。なお、量子化部１０３において使用された量子化情報は、符号化制御部１１１の図示せぬ内部メモリからロードされて利用される。逆量子化部１０４は、復元変換係数を出力し、逆直交変換部１０５に入力する。
【００２８】
逆直交変換部１０５は、逆量子化部１０４から入力された復元変換係数に対して、例えば、逆離散コサイン変換（ＩＤＣＴ）又は逆離散サイン変換（ＩＤＳＴ）などのような逆直交変換を行い、復元予測誤差を得る。なお、逆直交変換部１０５が行う逆直交変換は、直交変換部１０２において行われた直交変換に対応する。逆直交変換部１０５は、復元予測誤差を出力し、加算部１０６に入力する。
【００２９】
加算部１０６は、逆直交変換部１０５から入力された復元予測誤差と対応する予測画像とを加算し、局所復号画像を生成する。加算部１０６は、局所復号画像を出力し、予測画像生成部１０７に入力する。
【００３０】
予測画像生成部１０７は、加算部１０６から入力された局所復号画像を参照画像としてメモリ（図１では図示省略）に蓄積し、メモリに蓄積した参照画像を出力し、動き評価部１０９に入力する。また予測画像生成部１０７は、動き評価部１０９から入力される動き情報及びＷＰパラメータ情報に基づいて重み付き動き補償予測を行い、予測画像を生成する。予測画像生成部１０７は、予測画像を出力し、減算部１０１及び加算部１０６に入力する。
【００３１】
図４は、第１実施形態の予測画像生成部１０７の構成の一例を示すブロック図である。予測画像生成部１０７は、図４に示すように、複数フレーム動き補償部２０１と、メモリ２０２と、単方向動き補償部２０３と、予測パラメータ制御部２０４と、参照画像セレクタ２０５と、フレームメモリ２０６と、参照画像制御部２０７と、を備える。
【００３２】
フレームメモリ２０６は、参照画像制御部２０７の制御の下、加算部１０６から入力された局所復号画像を参照画像として格納する。フレームメモリ２０６は、参照画像を一時保持するための複数のメモリセットＦＭ１〜ＦＭＮ（Ｎ≧１）を有する。
【００３３】
予測パラメータ制御部２０４は、動き評価部１０９から入力される動き情報に基づいて、参照画像番号と予測パラメータとの複数の組み合わせをテーブルとして用意している。ここで、動き情報とは、動き補償予測で用いられる動きのズレ量を示す動きベクトルや参照画像番号、単方向／双方向予測などの予測モードに関する情報などを指す。予測パラメータは、動きベクトル及び予測モードに関する情報を指す。そして予測パラメータ制御部２０４は、入力画像に基づいて、予測画像の生成に用いる参照画像番号と予測パラメータとの組み合わせを選択して出力し、参照画像番号を参照画像セレクタ２０５に入力し、予測パラメータを単方向動き補償部２０３に入力する。
【００３４】
参照画像セレクタ２０５は、フレームメモリ２０６が有するフレームメモリＦＭ１〜ＦＭＮのいずれの出力端を接続するかを、予測パラメータ制御部２０４から入力された参照画像番号に従って切り替えるスイッチである。参照画像セレクタ２０５は、例えば、参照画像番号が０であれば、ＦＭ１の出力端を参照画像セレクタ２０５の出力端に接続し、参照画像番号がＮ−１であれば、ＦＭＮの出力端を参照画像セレクタ２０５の出力端に接続する。参照画像セレクタ２０５は、フレームメモリ２０６が有するフレームメモリＦＭ１〜ＦＭＮのうち、出力端が接続されているフレームメモリに格納されている参照画像を出力し、単方向動き補償部２０３及び動き評価部１０９へ入力する。
【００３５】
単方向動き補償部２０３は、予測パラメータ制御部２０４から入力された予測パラメータと参照画像セレクタ２０５から入力された参照画像に従って、動き補償予測処理を行い、単方向予測画像を生成する。
【００３６】
図５は、第１実施形態の双方向予測における動き補償予測の動きベクトルの関係の一例を示す図である。動き補償予測では、参照画像を用いて補間処理が行われ、作成された補間画像と入力画像との符号化対象位置の画素ブロックからの動きのズレ量を元に単方向予測画像が生成される。ここで、ズレ量は、動きベクトルである。図５に示すように、双方向予測スライス（Ｂ−ｓｌｉｃｅ）では、２種類の参照画像と動きベクトルのセットを用いて予測画像が生成される。補間処理としては、１／２画素精度の補間処理や、１／４画素精度の補間処理などが用いられ、参照画像に対してフィルタリング処理が行われることによって、補間画像の値が生成される。例えば、輝度信号に対して１／４画素精度までの補間処理な可能なＨ．２６４では、ズレ量は整数画素精度の４倍で表現される。
【００３７】
単方向動き補償部２０３は、単方向予測画像を出力し、メモリ２０２に一時的に格納する。ここで、動き情報（予測パラメータ）が双方向予測を示す場合には、複数フレーム動き補償部２０１が２種類の単方向予測画像を用いて重み付き予測を行うため、単方向動き補償部２０３は、１つ目に対応する単方向予測画像をメモリ２０２に格納し、２つ目に対応する単方向予測画像を複数フレーム動き補償部２０１に直接出力する。ここでは、１つ目に対応する単方向予測画像を第一予測画像とし、２つ目に対応する単方向予測画像を第二予測画像とする。
【００３８】
なお、単方向動き補償部２０３を２つ用意し、それぞれが２つの単方向予測画像を生成するようにしてもよい。この場合、動き情報（予測パラメータ）が単方向予測を示すときには、単方向動き補償部２０３が、１つ目の単方向予測画像を第一予測画像として複数フレーム動き補償部２０１に直接出力すればよい。
【００３９】
複数フレーム動き補償部２０１は、メモリ２０２から入力される第一予測画像、単方向動き補償部２０３から入力される第二予測画像、及び動き評価部１０９から入力されるＷＰパラメータ情報を用いて、重み付き予測を行って予測画像を生成する。複数フレーム動き補償部２０１は、予測画像を出力し、減算部１０１及び加算部１０６に入力する。
【００４０】
図６は、第１実施形態の複数フレーム動き補償部２０１の構成の一例を示すブロック図である。複数フレーム動き補償部２０１は、図６に示すように、デフォルト動き補償部３０１と、重み付き動き補償部３０２と、ＷＰパラメータ制御部３０３と、ＷＰセレクタ３０４、３０５とを、備える。
【００４１】
ＷＰパラメータ制御部３０３は、動き評価部１０９から入力されるＷＰパラメータ情報に基づいて、ＷＰ適用フラグ及び重み情報を出力し、ＷＰ適用フラグをＷＰセレクタ３０４、３０５に入力し、重み情報を重み付き動き補償部３０２に入力する。具体的には、ＷＰパラメータ制御部３０３は、動き評価部１０９からＷＰパラメータ情報が入力されると、ＷＰパラメータ情報を第一ＷＰ適用フラグ、第二ＷＰ適用フラグ、及び重み情報に分離して出力し、第一ＷＰ適用フラグをＷＰセレクタ３０４に入力し、第二ＷＰ適用フラグをＷＰセレクタ３０５に入力し、重み情報を重み付き動き補償部３０２に入力する。
【００４２】
ここで、ＷＰパラメータ情報は、第一ＷＰ適用フラグ（詳細には、第一ＷＰ適用フラグのフラグ情報）、第二ＷＰ適応フラグ（詳細には、第二ＷＰ適用フラグのフラグ情報）、及び重み情報の情報を含む。第一ＷＰ適用フラグ、第二ＷＰ適用フラグは、該当する参照画像及び信号成分毎に設定可能なパラメータであり、それぞれ、第一予測画像、第二予測画像の予測に関してデフォルト動き補償予測を行うか重み付き動き補償予測を行うかの情報を含む。ここでは、第一ＷＰ適用フラグ、第二ＷＰ適用フラグは、いずれも、０である場合デフォルト動き補償予測を行うことを示し、１である場合重み付き動き補償予測を行うことを示すものとする。
【００４３】
重み情報は、第一重み係数の値ｗ０Ｃ、第二重み係数の値ｗ１Ｃ、第一重み係数及び第二重み係数の固定小数点精度を示すパラメータＬＷＤ（以下、「固定小数点精度ＬＷＤ」と称する場合がある）、第一オフセットｏ０Ｃ、及び第二オフセットｏ１Ｃの情報を含む。なお、変数Ｃは、信号成分を意味する。例えば、ＹＵＶ空間信号の場合、輝度信号をＣ＝Ｙとし、Ｃｒ色差信号をＣ＝Ｃｒ、Ｃｂ色差成分をＣ＝Ｃｂと表す。
【００４４】
第一重み係数は、第一予測画像に対応する重み係数であり、固定小数点精度ＬＷＤによって値が定まる（変動する）パラメータである。第二重み係数は、第二予測画像に対応する重み係数であり、固定小数点精度ＬＷＤによって値が定まる（変動する）パラメータである。固定小数点精度ＬＷＤは、第一重み係数及び第二重み係数の分数精度に対応する刻み幅を制御するパラメータである。固定小数点精度ＬＷＤは、輝度と色差で異なる値を使ってもよいが、ここでは、簡単化のため、色信号毎に明示的に分けずに説明する。例えば、ｗ０Ｃが実数値で表現した場合に１．０（２進数表記で１）、ＬＷＤが５の場合、第一重み係数は３２（２進数表記で１０００００）となり、ｗ１Ｃが実数値で表現した場合に２．０（２進数表記で１０）、ＬＷＤが５の場合、第二重み係数は６４（２進数表記で１００００００）となる。第一オフセットｏ０Ｃは、第一予測画像に対応するオフセットであり、第二オフセットｏ１Ｃは、第二予測画像に対応するオフセットである。
【００４５】
なお、ＷＰパラメータ制御部３０３は、ＷＰパラメータ情報が入力されると、重み情報の値が規定の範囲内に収まっているかどうかチェックし、範囲外の値を範囲内の値に再設定したり、ＷＰ適用フラグの値を変更したりする。例えば、ｗ０Ｃが実数値で表現した場合に３．０、ＬＷＤが７の場合、第一重み係数は３８４となる。ここで、３８４は、第一重み係数の範囲外であり、使用できないが、９６は、第一重み係数の範囲内であり、使用できるとする。この場合、ＷＰパラメータ制御部３０３は、ＬＷＤを５、第一重み係数は９６とすることで、ｗ０Ｃを実数値で表現した場合に３．０としたまま、第一重み係数を範囲内に再設定してもよい。またこの際に、ＷＰパラメータ制御部３０３は、量子化処理を行ってもよい。例えば、ＬＷＤが７であり、第一重み係数が３８５となる場合、ＷＰパラメータ制御部３０３は、量子化処理を行って第一重み係数を３８４とした後に、ＬＷＤを５、ｗ０Ｃを実数値で表現した場合に３．０とすることで、第一重み係数は９６に再設定してもよい。また、ＷＰパラメータ制御部３０３は、第一ＷＰ適用フラグの値を１から０に変更し、重み付き動き補償予測を利用しないようにしてもよい。これらの手法に限定されないが、ＷＰパラメータ制御部３０３は、重み情報の値が仕様等で定められた規定の範囲を超えて使用されないように制御する。
【００４６】
ＷＰセレクタ３０４、３０５は、ＷＰパラメータ制御部３０３から入力されたＷＰ適用フラグに基づいて、各々の予測画像の接続端を切り替える。ＷＰセレクタ３０４、３０５は、各々のＷＰ適用フラグが０の場合、各々の出力端をデフォルト動き補償部３０１へ接続する。そしてＷＰセレクタ３０４、３０５は、第一予測画像及び第二予測画像を出力し、デフォルト動き補償部３０１に入力する。一方、ＷＰセレクタ３０４、３０５は、各々のＷＰ適用フラグが１の場合、各々の出力端を重み付き動き補償部３０２へ接続する。そしてＷＰセレクタ３０４、３０５は、第一予測画像及び第二予測画像を出力し、重み付き動き補償部３０２に入力する。
【００４７】
デフォルト動き補償部３０１は、ＷＰセレクタ３０４、３０５から入力された２つの単方向予測画像（第一予測画像及び第二予測画像）を元に平均値処理（デフォルト動き補償予測）を行い、予測画像を生成する。具体的には、デフォルト動き補償部３０１は、第一ＷＰ適用フラグ及び第二ＷＰ適用フラグが０の場合、数式（１）に基づいて平均値処理を行う。
【００４８】
Ｐ［ｘ，ｙ］＝Ｃｌｉｐ１（（ＰＬ０［ｘ，ｙ］＋ＰＬ１［ｘ，ｙ］＋ｏｆｆｓｅｔ２）＞＞（ｓｈｉｆｔ２）)      …（１）
【００４９】
ここで、Ｐ［ｘ，ｙ］は予測画像、ＰＬ０［ｘ，ｙ］は第一予測画像、ＰＬ１［ｘ，ｙ］は第二予測画像である。ｏｆｆｓｅｔ２及びｓｈｉｆｔ２は平均値処理における丸め処理のパラメータであり、第一予測画像及び第二予測画像の内部演算精度によって定まる。Ｃｌｉｐ１（Ｘ）は、変数Ｘを特定のビット精度内にクリップする関数であり、ここでは、予測画像のビット精度内にクリップする。例えば予測画像のビット精度をＬ＝８とした場合、０から２５５の範囲外の値を０から２５５にクリップする。更に具体的に説明すると、０以下の値を０に設定し、２５５より大きい値を２５５に設定する。
【００５０】
予測画像のビット精度をＬ、第一予測画像及び第二予測画像のビット精度をＭ（Ｌ≦Ｍ）とすると、ｓｈｉｆｔ２は数式（２）で定式化され、ｏｆｆｓｅｔ２は数式（３）で定式化される。
【００５１】
ｓｈｉｆｔ２＝（Ｍ−Ｌ＋１）      …（２）
【００５２】
ｏｆｆｓｅｔ２＝（１＜＜（ｓｈｉｆｔ２−１）      …（３）
【００５３】
例えば、予測画像のビット精度が８であり、第一予測画像及び第二予測画像のビット精度が１４である場合、数式（２）よりｓｈｉｆｔ２＝７、数式（３）よりｏｆｆｓｅｔ２＝（１＜＜６）となる。
【００５４】
なお、動き情報（予測パラメータ）で示される予測モードが単方向予測である場合、デフォルト動き補償部３０１は、第一予測画像のみを用いて、数式（４）に基づいて最終的な予測画像を算出する。
【００５５】
Ｐ［ｘ，ｙ］＝Ｃｌｉｐ１（（ＰＬＸ［ｘ，ｙ］＋ｏｆｆｓｅｔ１）＞＞（ｓｈｉｆｔ１）)      …（４）
【００５６】
ここで、ＰＬＸ［ｘ，ｙ］は単方向予測画像（第一予測画像）を示しており、Ｘは参照リストの０又は１のいずれかを示す識別子である。例えば、参照リストが０の場合はＰＬ０［ｘ，ｙ］、参照リストが１の場合はＰＬ１［ｘ，ｙ］となる。ｏｆｆｓｅｔ１及びｓｈｉｆｔ１は丸め処理のパラメータであり、第一予測画像の内部演算精度によって定まる。予測画像のビット精度をＬ、第一予測画像のビット精度をＭとすると、ｓｈｉｆｔ１は数式（５）で定式化され、ｏｆｆｓｅｔ１は数式（６）で定式化される。
【００５７】
ｓｈｉｆｔ１＝（Ｍ−Ｌ）      …（５）
【００５８】
ｏｆｆｓｅｔ１＝（１＜＜（ｓｈｉｆｔ１−１）      …（６）
【００５９】
例えば、予測画像のビット精度が８であり、第一予測画像のビット精度が１４である場合、数式（５）よりｓｈｉｆｔ１＝６、数式（６）よりｏｆｆｓｅｔ１＝（１＜＜５）となる。
【００６０】
重み付き動き補償部３０２は、ＷＰセレクタ３０４、３０５から入力された２つの単方向予測画像（第一予測画像及び第二予測画像）とＷＰパラメータ制御部３０３から入力された重み情報とを元に重み付き動き補償（重み付き動き補償予測）を行う。
【００６１】
ここで、重み係数について更に説明する。図７は、重み係数の説明のための参考図であり、時間方向の画素値変化がある動画像の階調値の変化の一例を示している。図７に示す例では、符号化対象フレームをＦｒａｍｅ（ｔ）とし、時間的に１つ前のフレームをＦｒａｍｅ（ｔ−１）、時間的に１つ後のフレームをＦｒａｍｅ（ｔ＋１）としている。図７に示すように、白から黒に変化するフェード画像では、画像の明度（階調値）が時間とともに減少していく。重み係数の値は、図７で説明したような画素値変化の度合いを意味しており、画素値変化が無い場合（画素値変化が０の場合）に実数値で表現すると１．０の値を取る。
【００６２】
ここで、画素値変化が無い場合について更に説明する。例えば、同一の静止画像が時間的に連続している動画像を想定した場合、画面間の輝度変化は０となる。この場合、重み付き動き補償部３０２は、重み付き動き補償予測を行っても画素値変化が０であるため、デフォルト動き補償予測を行っていることと等価となる。このような場合、即ち、画素値変化が無い場合、重み付き動き補償部３０２は、重み係数の基準値を選択することで、デフォルト動き補償予測を重み付き動き補償予測で実現する。ここで、重み係数の基準値は、固定小数点精度に従って導出でき、（１＜＜ＬＷＤ）となる。
【００６３】
また、一般的に、フェード効果やディゾルブ効果などの動画像の画素値変化はフレーム毎にそれほど大きく変化しないため、重み係数の値は、実数値で表現した場合に１．０近傍に偏っている。なお、第１実施形態では、重み係数の値は２のべき乗で示される固定小数点精度に量子化されているため、２つの画像間で平均的な画素値変化が僅かに生じたとしても１／１２８精度以下での変化であれば、重み係数の値は実数値で表現した場合に１．０に量子化される。このため、第１実施形態では、画素値変化が生じたとしても実質的に画素値変化が無い場合として扱うことができる。以下では、説明を簡単にするため、画素値変化が無い場合、即ち、重み係数の値を実数値で表現すると１．０となる場合を想定して、説明を行う。なお、画素値変化が無い場合は、画素値変化が所定の値（重み係数の精度よりも十分小さい値）以下であることに相当する。
【００６４】
このため、重み付き動き補償部３０２は、第一ＷＰ適用フラグ及び第二ＷＰ適用フラグが１の場合、数式（７）に基づいて重み付き処理を行う。
【００６５】
Ｐ［ｘ，ｙ］＝Ｃｌｉｐ１（（（ＰＬ０［ｘ，ｙ］＊ｗ０Ｃ＋ＰＬ１［ｘ，ｙ］＊ｗ１Ｃ＋（（ｏ０Ｃ＋ｏ１Ｃ＋１）＜＜ＬＷＤ））＞＞（ＬＷＤ＋１）））      …（７）
【００６６】
なお、重み付き動き補償部３０２は、第一予測画像及び第二予測画像と予測画像との演算精度が異なる場合、ＬＷＤを数式（８）のように制御することで丸め処理を実現する。
【００６７】
ＬＷＤ’＝ＬＷＤ＋ｏｆｆｓｅｔ１      …（８）
【００６８】
丸め処理は、数式（７）のＬＷＤを、数式（８）のＬＷＤ’に置き換えることで実現できる。例えば、予測画像のビット精度が８であり、第一予測画像及び第二予測画像のビット精度が１４である場合、ＬＷＤを再設定することにより、数式（１）のｓｈｉｆｔ２と同様の演算精度における一括丸め処理を実現することが可能となる。
【００６９】
なお、動き情報（予測パラメータ）で示される予測モードが単方向予測である場合、重み付き動き補償部３０２は、第一予測画像のみを用いて、数式（９）に基づいて最終的な予測画像を算出する。
【００７０】
Ｐ［ｘ，ｙ］＝Ｃｌｉｐ１（（ＰＬＸ［ｘ，ｙ］＊ｗＸＣ＋（１＜＜（ＬＷＤ−１）））＞＞（ＬＷＤ）＋ｏＸＣ）      …（９）
【００７１】
ここで、ＰＬＸ［ｘ，ｙ］は単方向予測画像（第一予測画像）を示し、ｗＸＣは単方向予測に対応する重み係数を示しており、Ｘは参照リストの０又は１のいずれかを示す識別子であり、ｏＸＣは単方向予測に対応するオフセットを示す。例えば、参照リストが０の場合はＰＬ０［ｘ，ｙ］、ｗ０Ｃ、ｏ０Ｃ、参照リストが１の場合はＰＬ１［ｘ，ｙ］、ｗ１Ｃ、ｏ１Ｃとなる。
【００７２】
なお、重み付き動き補償部３０２は、第一予測画像及び第二予測画像と予測画像との演算精度が異なる場合、ＬＷＤを双方向予測時と同様に数式（８）のように制御することで丸め処理を実現する。
【００７３】
丸め処理は、数式（９）のＬＷＤを、数式（８）のＬＷＤ’に置き換えることで実現できる。例えば、予測画像のビット精度が８であり、第一予測画像のビット精度が１４である場合、ＬＷＤを再設定することにより、数式（４）のｓｈｉｆｔ１と同様の演算精度における一括丸め処理を実現することが可能となる。
【００７４】
なお、単方向予測の場合には、第二予測画像に対応する各種パラメータ（第二ＷＰ適応フラグ、第二重み係数、及び第二オフセットの情報）は利用されないため、予め定めた初期値に設定されていてもよい。
【００７５】
図１に戻り、動き評価部１０９は、入力画像と予測画像生成部１０７から入力された参照画像とに基づき複数フレーム間の動き評価を行い、動き情報及びＷＰパラメータ情報を出力し、動き情報を予測画像生成部１０７及び符号化部１１０に入力し、ＷＰパラメータ情報を予測画像生成部１０７及びインデックス設定部１０８に入力する。
【００７６】
動き評価部１０９は、例えば、予測対象画素ブロックの入力画像と同位置に対応する複数の参照画像を起点として差分値を計算することで誤差を算出し、この位置を分数精度でずらし、誤差最小のブロックを探すブロックマッチングなどの手法により、最適な動き情報を算出する。動き評価部１０９は、双方向予測の場合には、単方向予測で導出された動き情報を用いて、数式（１）及び数式（４）に示すようなデフォルト動き補償予測を含むブロックマッチングを行うことにより、双方向予測の動き情報を算出する。
【００７７】
この際、動き評価部１０９は、数式（７）及び数式（９）で示されるような重み付き動き補償予測を含むブロックマッチングを行うことにより、ＷＰパラメータ情報を算出できる。なお、ＷＰパラメータ情報の算出には、入力画像の画素勾配を用いて重み係数やオフセットを算出する方法や、符号化した際の予測誤差の累積による重み係数やオフセットの算出方法などを用いてもよい。またＷＰパラメータ情報は、符号化装置毎に予め定めた固定値を用いてもよい。
【００７８】
ここで、再度図７を参照しながら、時間的に画素値変化のある動画像から、重み係数、重み係数の固定小数点精度、及びオフセットを算出する方法を説明する。前述したように、図７に示すような白から黒に変化するフェード画像では、画素値（階調値）が時間とともに減少していく。動き評価部１０９は、この傾きを計算することにより、重み係数を算出することができる。
【００７９】
また、重み係数の固定小数点精度は、この傾きの精度を示す情報であり、動き評価部１０９は、参照画像の時間的な距離と画像値の変化度から、最適な値を計算できる。例えば、図７において、Ｆｒａｍｅ（ｔ−１）〜Ｆｒａｍｅ（ｔ＋１）間の重み係数の値を実数精度で表現すると０．７５である場合、１／４精度であれば、３／４が表現できるため、動き評価部１０９は、固定小数点精度を２（１＜＜２）に設定する。固定小数点精度の値は、重み係数を符号化した場合の符号量に影響を与えるため、符号量と予測精度を考慮して最適な値を選択すればよい。なお、固定小数点精度の値は、予め定めた固定値としてもよい。
【００８０】
また、動き評価部１０９は、傾きが一致しない場合、一次関数の切片に対応する補正値（ズレ量）を求めることでオフセット値を算出できる。例えば、図７において、Ｆｒａｍｅ（ｔ−１）〜Ｆｒａｍｅ（ｔ＋１）間の重み係数の値を実数精度で表現すると０．６０であり、固定小数点精度が１（１＜＜１）である場合、重み係数は１（つまり、重み係数の値を実数精度で表現した場合の０．５０に該当）が設定される可能性が高い。この場合、重み係数の小数点精度は、最適な値である０．６０から０．１０ずれているため、動き評価部１０９は、この分の補正値を画素の最大値から計算し、オフセット値として設定する。画素の最大値が２５５である場合、動き評価部１０９は、２５（２５５×０．１）などの値を設定すればよい。
【００８１】
なお第１実施形態では、符号化装置１００の一機能として動き評価部１０９を例示しているが、動き評価部１０９は符号化装置１００の必須の構成ではなく、例えば、動き評価部１０９を符号化装置１００外の装置としてもよい。この場合、動き評価部１０９で算出された動き情報及びＷＰパラメータ情報を符号化装置１００にロードするようにすればよい。
【００８２】
インデックス設定部１０８は、動き評価部１０９から入力されたＷＰパラメータ情報を受け取り、参照リスト（リスト番号）と参照画像（参照番号）とを確認して、インデックス情報を出力し、符号化部１１０に入力する。インデックス設定部１０８は、動き評価部１０９から入力されたＷＰパラメータ情報を、後述するシンタクス要素にマッピングしてインデックス情報を生成する。この際、インデックス設定部１０８は、重み係数の選択範囲を導出し、重み係数が当該選択範囲に含まれていることを確認する。
【００８３】
ここで、重み係数の選択範囲の導出について説明する。
【００８４】
第１実施形態では、前述したように、画素値変化が無く、重み係数の値を実数値で表現すると１．０となる場合を想定しており、この場合、重み係数／重み係数の基準値＝１が成立する。重み係数の基準値は、前述したように、（１＜＜ＬＷＤ）であるため、第１実施形態では、重み係数は（１＜＜ＬＷＤ）となり、重み係数の基準値と同値となる。
【００８５】
ところで、Ｈ．２６４などでは、重み係数やオフセットなどのインデックスは、−１２８から１２７までの符号付き８ビットの値を取るよう規定され、固定小数点精度は、０から７までの値を取るように規定されている。このため第１実施形態では、重み係数が規定の範囲外となる場合が生じる。
【００８６】
図８は、Ｈ．２６４における重み係数の選択範囲を示す参考図であり、固定小数点精度ＬＷＤがそれぞれ０から７の値を取った場合の重み係数（１＜＜ＬＷＤ）を示している。図８から明らかなように、重み係数は、固定小数点精度ＬＷＤの値が小さくなると０近辺の正の値を取るが、固定小数点精度ＬＷＤの値が７になると１２８となり、Ｈ．２６４の規定の範囲外となる。
【００８７】
このように、Ｈ．２６４の規定では、使用したい重み係数の範囲が規定の範囲外となってしまい、実用面に則さないことがある。また、単方向予測では、負の方向に対応する重み係数を選択したとしても、単方向予測で出力される予測画素値が入力画像のビット範囲にクリップ処理され０となる可能性が高く、負の方向に対応する重み係数を実質的に選択できない。一方、双方向予測では、外挿予測を実現するために、片方の単方向予測の重み係数を負の値に設定し、他方の重み係数を正の値に設定するといった使い方が可能であるが、負側の値は、重み係数の範囲として、正側の値と同じ精度が必要とならない場合が多い。
【００８８】
このため、第１実施形態では、インデックス設定部１０８は、重み係数の基準値を略中心として負の方向と正の方向に値を割り振ることにより重み係数の選択範囲を導出し、導出した重み係数の選択範囲内に重み係数が含まれていることを確認する。
【００８９】
図９は、第１実施形態の重み係数の選択範囲の一例を示す説明図である。図９に示す例では、図８で説明した重み係数の選択範囲と異なり、重み係数の基準値（１＜＜ＬＷＤ）が、選択範囲の略中心に位置するように配置され、重み係数の基準値から１２８を減算した値（−１２８＋（１＜＜ＬＷＤ））が選択範囲の最小値となり、重み係数の基準値に１２７を加算した値（１２７＋（１＜＜ＬＷＤ））が選択範囲の最大値となっている。
【００９０】
インデックス設定部１０８は、数式（１０）及び数式（１１）を用いて、重み係数の選択範囲を設定する。なお、数式（１０）で選択範囲の最小値が定式化され、数式（１１）で選択範囲の最大値が定式化される。
【００９１】
ｍｉｎ＿ｗＸＣ＝−１２８＋（１＜＜ＬＷＤ）      …（１０）
【００９２】
ｍａｘ＿ｗＸＣ＝１２７＋（１＜＜ＬＷＤ）      …（１１）
【００９３】
図１０Ａ及び図１０Ｂは、第１実施形態の重み係数の選択範囲の具体例を示す説明図であり、図１０Ａは、固定小数点精度ＬＷＤの値が７の場合の重み係数の選択範囲を示し、図１０Ｂは、固定小数点精度ＬＷＤの値が５の場合の重み係数の選択範囲を示している。図１０Ａに示す例では、重み係数の基準値である１２８が選択範囲の略中心に位置するように配置され、選択範囲の最小値が０となり、選択範囲の最大値が２５５となっている。図１０Ｂに示す例では、重み係数の基準値である３２が選択範囲の略中心に位置するように配置され、選択範囲の最小値が−９６となり、選択範囲の最大値が１５９となっている。
【００９４】
図１１は、Ｈ．２６４における重み係数の選択範囲の最小値及び最大値を示す参考図であり、図１２は、第１実施形態の重み係数の選択範囲の最小値及び最大値の一例を示す説明図である。図１１に示すように、Ｈ．２６４では、重み係数の選択範囲の最小値及び最大値は、重み係数の基準値に依存せず、一定である。一方、図１２に示すように、第１実施形態では、重み係数の選択範囲の最小値及び最大値は、重み係数の基準値に依存して変動している。
【００９５】
図１２に示すように、重み係数の基準値を略中心として重み係数の選択範囲を設定した場合、重み係数の取りうる範囲は、−１２７から２５５となり、符号付き９ビットの精度が必要となる。このため、第１実施形態では、後述の符号化部１１０が、インデックスとして設定された重み係数、即ち、符号化対象の値を、重み係数と重み係数の基準値との差分値に更新する。図９に示すように、導出した重み係数の選択範囲から重み係数の基準値を減算すると、重み係数の差分値の範囲が−１２８から１２７までの符号付き８ビットの値を取ることが分かる。つまり、重み係数の基準値を略中心として重み係数の選択範囲を設定した場合、重み係数の選択範囲は重み係数の基準値に依存して変動するが、重み係数の選択範囲から重み係数の基準値を減算することにより、重み係数の差分値の範囲は、重み係数の基準値に依存せず、一定となる。このように第１実施形態では、重み係数を重み係数の差分値に置き換えるので、重み係数の選択範囲を拡張し、かつ符号付き８ビット精度の選択範囲を規定することができる。
【００９６】
なお、インデックス設定部１０８は、重み係数が導出した重み係数の選択範囲内に含まれていないことを確認した場合、重み係数の選択範囲の最大値又は最小値を用いてクリップ処理を行ってもよい。この場合、インデックス設定部１０８は、重み係数が選択範囲の最小値より小さければ当該最小値でクリップし、重み係数が選択範囲の最大値よりも大きければ当該最大値でクリップすればよい。このようなクリップ処理を導入することで、特定の範囲制約を設けなくても、重み係数の差分値などの符号化対象の値は、予め定められたビット精度内の値を取るため、ハードウェアが用いる回路規模の構成を明確化できる。
【００９７】
また第１実施形態では、重み係数の選択範囲が符号付き８ビットの精度である場合を想定しているが、重み係数の選択範囲の精度はこれに限定されるものではなく、例えば、符号付き９ビットの精度としてもよい。この場合、重み係数の選択範囲は、−２５６から２５５までとなるが、数式（１０）の−１２８を−２５６に置き換え、数式（１１）の１２７を２５５に置き換えればよい。
【００９８】
また第１実施形態では、重み係数の選択範囲の導出をインデックス設定部１０８が行う例について説明したが、これに限定されず、符号化部１１０で行うようにしてもよい。つまり、インデックス設定部１０８を導出部としてもよいし、符号化部１１０を導出部としてもよい。
【００９９】
図１３Ａ及び図１３Ｂは、第１実施形態のインデックス設定部１０８に入力されるＷＰパラメータ情報の一例を示す図である。Ｐ−ｓｌｉｃｅ時のＷＰパラメータ情報の一例は、図１３Ａに示すとおりであり、Ｂ−ｓｌｉｃｅ時のＷＰパラメータ情報の一例は、図１３Ａ及び図１３Ｂに示すとおりである。リスト番号は、予測方向を示す識別子であり、単方向予測時は０の値を取り、双方向予測時は２種類の予測を用いることができるため、０と１の２つの値を取る。参照番号は、フレームメモリ２０６に示される１〜Ｎに対応する値である。ＷＰパラメータ情報は、参照リストと参照画像毎に保持されるため、Ｂ−ｓｌｉｃｅ時で必要な情報は、参照画像がＮ個とすると２Ｎ個となる。
【０１００】
図１４は、第１実施形態の重み係数の選択範囲の導出処理の一例を示すフローチャートである。ここでは、インデックス設定部１０８が重み係数の選択範囲の導出処理を行う場合を想定して説明するが、前述したように、符号化部１１０が行ってもよい。
【０１０１】
まず、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤを導出する（ステップＳ０２）。ここで、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤをＷＰパラメータ情報から導出してもよいし、インデックス情報から導出してもよい。
【０１０２】
続いて、インデックス設定部１０８は、導出した固定小数点精度ＬＷＤを用いて、重み係数の基準値（１＜＜ＬＷＤ）を導出する（ステップＳ０３）。
【０１０３】
続いて、インデックス設定部１０８は、導出した重み係数の基準値（１＜＜ＬＷＤ）から１２８を減算し、重み係数の選択範囲の最小値を導出する（ステップＳ０４）。
【０１０４】
続いて、インデックス設定部１０８は、導出した重み係数の基準値（１＜＜ＬＷＤ）に１２７を加算し、重み係数の選択範囲の最大値を導出する（ステップＳ０５）。
【０１０５】
そしてインデックス設定部１０８は、導出した重み係数の選択範囲内に重み係数が含まれていることを確認する。
【０１０６】
図１に戻り、符号化部１１０は、量子化部１０３から入力された量子化変換係数、動き評価部１０９から入力された動き情報、インデックス設定部１０８から入力されたインデックス情報及び重み係数の選択範囲、並びに符号化制御部１１１によって指定される量子化情報などの様々な符号化パラメータに対して符号化処理を行い、符号化データを生成する。符号化処理は、例えば、ハフマン符号化や算術符号化などが該当する。
【０１０７】
符号化パラメータとは、予測方法などを示す予測情報、量子化変換係数に関する情報、及び量子化に関する情報などの復号に必要となるパラメータである。例えば、符号化制御部１１１が図示せぬ内部メモリを持ち、この内部メモリに符号化パラメータが保持され、画素ブロックを符号化する際に隣接する既に符号化済みの画素ブロックの符号化パラメータを用いるようにできる。例えば、Ｈ．２６４のイントラ予測では、符号化済みの隣接ブロックの予測情報から、画素ブロックの予測情報を導出することができる。
【０１０８】
符号化部１１０は、生成した符号化データを、符号化制御部１１１が管理する適切な出力タイミングに従って出力する。出力された符号化データは、例えば、図示せぬ多重化部などで様々な情報が多重化されて、図示せぬ出力バッファなどに一時的に蓄積された後に、例えば、図示せぬ蓄積系（蓄積メディア）又は伝送系（通信回線）へ出力される。
【０１０９】
符号化部１１０は、エントロピー符号化部１１０Ａと、インデックス再構成部１１０Ｂとを、備える。
【０１１０】
エントロピー符号化部１１０Ａは、入力されてきた情報に対して可変長符号化や算術符号化などの符号化処理を行う。例えば、Ｈ．２６４では、コンテキスト適応型の可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ  ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）やコンテキスト適応型の算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）などが用いられる。
【０１１１】
インデックス再構成部１１０Ｂは、インデックス設定部１０８から入力されたインデックス情報のシンタクス要素の符号長を削減するため、シンタクス要素のパラメータの特徴に応じて予測処理を行い、シンタクス要素のそのままの値（直値）と予測値の差分値とを計算し、エントロピー符号化部１１０Ａに出力する。予測処理の具体例は、後述する。なお、重み係数の選択範囲の導出を符号化部１１０で行う場合、インデックス再構成部１１０Ｂで行うことになる。
【０１１２】
図１５は、第１実施形態の符号化装置１００が利用するシンタクス５００の一例を示す図である。シンタクス５００は、符号化装置１００が入力画像（動画像データ）を符号化して生成した符号化データの構造を示している。符号化データを復号する場合、後述の復号装置は、シンタクス５００と同一のシンタクス構造を参照して動画像データのシンタクス解釈を行う。
【０１１３】
シンタクス５００は、ハイレベルシンタクス５０１、スライスレベルシンタクス５０２及びコーディングツリーレベルシンタクス５０３の３つのパートを含む。ハイレベルシンタクス５０１は、スライスよりも上位のレイヤのシンタクス情報を含む。シンタクス情報は、例えば、図２Ｂに示す例で説明したタイル状の分割情報を含む。スライスとは、フレーム若しくはフィールドに含まれる矩形領域又は連続領域を指す。スライスレベルシンタクス５０２は、各スライスを復号するために必要な情報を含む。コーディングツリーレベルシンタクス５０３は、各コーディングツリー（即ち、各コーディングツリーブロック）を復号するために必要な情報を含む。これら各パートは、更に詳細なシンタクスを含む。
【０１１４】
ハイレベルシンタクス５０１は、シーケンスパラメータセットシンタクス５０４、ピクチャパラメータセットシンタクス５０５、及びアダプテーションパラメータセットシンタクス５０６などのシーケンス及びピクチャレベルのシンタクスを含む。
【０１１５】
スライスレベルシンタクス５０２は、スライスヘッダーシンタクス５０７、プレッドウェイトテーブルシンタクス５０８、及びスライスデータシンタクス５０９などを含む。プレッドウェイトテーブルシンタクス５０８は、スライスヘッダーシンタクス５０７から呼び出される。
【０１１６】
コーディングツリーレベルシンタクス５０３は、コーディングツリーユニットシンタクス５１０、トランスフォームユニットシンタクス５１１、及びプレディクションユニットシンタクス５１２などを含む。コーディングツリーユニットシンタクス５１０は、四分木構造を持つことができる。具体的には、コーディングツリーユニットシンタクス５１０のシンタクス要素として、更にコーディングツリーユニットシンタクス５１０を再帰呼び出しすることができる。即ち、１つのコーディングツリーブロックを四分木で細分化することができる。また、コーディングツリーユニットシンタクス５１０内にはトランスフォームユニットシンタクス５１１が含まれている。トランスフォームユニットシンタクス５１１は、四分木の最末端の各コーディングツリーユニットシンタクス５１０において呼び出される。トランスフォームユニットシンタクス５１１は、逆直交変換及び量子化などに関わる情報が記述されている。これらのシンタクスには、重み付き動き補償予測に関する情報が記述されてもよい。
【０１１７】
図１６は、第１実施形態のピクチャパラメータセットシンタクス５０５の一例を示す図である。weighted_pred_flagは、例えば、Ｐ−ｓｌｉｃｅに関する第１実施形態の重み付き補償予測の有効又は無効を示すシンタクス要素である。weighted_pred_flagが０である場合、Ｐ−ｓｌｉｃｅ内での第１実施形態の重み付き動き補償予測は無効となる。従って、ＷＰパラメータ情報に含まれるＷＰ適用フラグは常に０に設定され、ＷＰセレクタ３０４、３０５は、各々の出力端をデフォルト動き補償部３０１へ接続する。一方、weighted_pred_flagが１である場合、Ｐ−ｓｌｉｃｅ内での第１実施形態の重み付き動き補償予測は有効となる。
【０１１８】
なお、別の例として、weighted_pred_flagが１である場合には、より下位のレイヤ（スライスヘッダー、コーディングツリーブロック、トランスフォームユニット、及びプレディクションユニットなど）のシンタクスにおいて、スライス内部の局所領域毎に第１実施形態の重み付き動き補償予測の有効又は無効を規定するようにしてもよい。
【０１１９】
weighted_bipred_idcは、例えば、Ｂ−ｓｌｉｃｅに関する第１実施形態の重み付き補償予測の有効又は無効を示すシンタクス要素である。weighted_bipred_idcが０である場合、Ｂ−ｓｌｉｃｅ内での第１実施形態の重み付き動き補償予測は無効となる。従って、ＷＰパラメータ情報に含まれるＷＰ適用フラグは常に０に設定され、ＷＰセレクタ３０４、３０５は、各々の出力端をデフォルト動き補償部３０１へ接続する。一方、weighted_bipred_idcが１である場合、Ｂ−ｓｌｉｃｅ内での第１実施形態の重み付き動き補償予測は有効となる。
【０１２０】
なお、別の例として、weighted_bipred_idcが１である場合には、より下位のレイヤ（スライスヘッダー、コーディングツリーブロック、及びトランスフォームユニットなど）のシンタクスにおいて、スライス内部の局所領域毎に第１実施形態の重み付き動き補償予測の有効又は無効を規定するようにしてもよい。
【０１２１】
図１７は、第１実施形態のスライスヘッダーシンタクス５０７の一例を示す図である。slice_typeはスライスのスライスタイプ（Ｉ−ｓｌｉｃｅ，Ｐ−ｓｌｉｃｅ，Ｂ−ｓｌｉｃｅなど）を示している。pic_parameter_set_idは、いずれのピクチャパラメータセットシンタクス５０５を参照するかを示す識別子である。num_ref_idx_active_override_flagは、有効な参照画像の数を更新するかどうかを示すフラグであり、本フラグが１の場合、参照リストの参照画像数を定義するnum_ref_idx_l0_active_minus1及びnum_ref_idx_l1_active_minus1が利用できる。pred_weight_table()は、重み付き動き補償予測に利用するプレッドウェイトテーブルシンタクスを示す関数であり、前述のweighted_pred_flagが１かつＰ−ｓｌｉｃｅの場合、及びweighted_bipred_idcが１かつＢ−ｓｌｉｃｅの場合に、本関数が呼び出される。
【０１２２】
図１８は、第１実施形態のプレッドウェイトテーブルシンタクス５０８の一例を示す図である。luma_log2_weight_denomは、スライスにおける輝度信号の重み係数の固定小数点精度（ＬＷＤ）を表しており、数式（７）又は数式（９）のＬＷＤに対応する値である。delta_chroma_log2_weight_denomは、スライスにおける色差信号の重み係数の固定小数点精度を表しており、導出方法は後述する。chroma_format_idcは、色空間を表す識別子であり、MONO_IDXはモノクロ映像を示す値である。num_ref_common_active_minus1は、スライスにおける共通リストに含まれる参照画像の数から１を引いた値を示している。
【０１２３】
luma_weight_l0_flag及びluma_weight_l1_flagは、リスト０及びリスト１のそれぞれに対応する輝度信号におけるＷＰ適応フラグを示している。本フラグが１の場合、スライス内全域で第１実施形態の輝度信号の重み付き動き補償予測が有効となる。chroma_weight_l0_flag及びchroma_weight_l1_flagは、リスト０及びリスト１のそれぞれに対応する色差信号におけるＷＰ適応フラグを示している。本フラグが１の場合、スライス内全域で第１実施形態の色差信号の重み付き動き補償予測が有効となる。luma_weight_l0[i]及びluma_weight_l1[i]は、リスト０及びリスト１のそれぞれで管理された参照番号i番目に対応する輝度信号の重み係数である。luma_offset_l0[i]及びluma_offset_l1[i]は、リスト０及びリスト１のそれぞれで管理された参照番号i番目に対応する輝度信号のオフセットである。これらは、それぞれ、数式（７）又は数式（９）のｗ０Ｃ、ｗ１Ｃ、ｏ０Ｃ、ｏ１Ｃに対応する値である。但し、Ｃ＝Ｙとする。
【０１２４】
chroma_weight_l0[i][j]及びchroma_weight_l1[i][j]は、リスト０及びリスト１のそれぞれで管理された参照番号i番目に対応する色差信号の重み係数である。chroma_offset_l0[i][j]及びchroma_offset_l1[i][j]は、リスト０及びリスト１のそれぞれで管理された参照番号i番目に対応する色差信号のオフセットである。これらは、それぞれ、数式（７）又は数式（９）のｗ０Ｃ、ｗ１Ｃ、ｏ０Ｃ、ｏ１Ｃに対応する値である。但し、Ｃ＝Ｃｒ又はＣｂとする。ｊは色差成分のコンポーネントを示しており、例えばＹＵＶ４：２：０信号の場合、j=0がＣｒ成分、j=1がＣｂ成分であることを示す。なお、本表記はj=0がＣｂ成分、j=1がＣｒ成分として用いてもよい。
【０１２５】
ここで、シンタクス構成における重み付き予測に関連するそれぞれのシンタクス要素の予測方法の詳細について説明する。シンタクス要素の予測は、インデックス再構成部１１０Ｂにより行われる。図１８に示す例では、予測を導入したシンタクス要素をdeltaの接頭語を付けて示している。
【０１２６】
まず、重み係数の固定小数点精度を示すluma_log2_weight_denom及びchroma_log2_weight_denomの信号間の予測方法について説明する。インデックス再構成部１１０Ｂは、数式（１２）を用いて、luma_log2_weight_denom及びchroma_log2_weight_denomの信号間の予測処理を行い、数式（１３）を用いて、復元処理を行う。ここでは、図１８に示すとおり、luma_log2_weight_denomが先に定義されているため、luma_log2_weight_denomの値からchroma_log2_weight_denomを予測する。
【０１２７】
delta_chroma_log2_weight_denom  =  (chroma_log2_weight_denom  -  luma_log2_weight_denom)      …（１２）
【０１２８】
chroma_log2_weight_denom  =  (luma_log2_weight_denom  +  delta_chroma_log2_weight_denom)        …（１３）
【０１２９】
フェード効果は、一般的に色空間別に異なる時間的変化をさせるケースが少ないため、信号成分毎の固定小数点精度は、輝度成分と色差成分で強い相関がある。このため、このように色空間内で予測することにより、固定小数点精度を示す情報量を削減できる。
【０１３０】
なお、数式（１２）では、色差成分から輝度成分を減算しているが、輝度成分から色差成分を減算してもよい。この場合、数式（１２）に応じて数式（１３）も式を変形すればよい。
【０１３１】
次に、輝度及び色差信号の重み係数をそれぞれ表すluma_weight_lx[i]及びchroma_weight_lx[i][j]の予測方法について説明する。ここで、xは、0又は1を示す識別子である。luma_weight_lx[i]及びchroma_weight_lx[i][j]の値は、それぞれ、luma_log2_weight_denom及びchroma_log2_weight_denomの値に応じて変化する。例えば、luma_log2_weight_denomの値が3である場合、画素値変化がない場合のluma_weight_lx[i]は、(1<<3)となる。一方、luma_log2_weight_denomの値が5である場合、明度変化がないと仮定した場合のluma_weight_lx[i]は、(1<<5)となる。
【０１３２】
このため、インデックス再構成部１１０Ｂは、画素値変化がない場合の重み係数を基準係数（デフォルト値）として予測処理を行う。具体的には、インデックス再構成部１１０Ｂは、数式（１４）〜（１５）を用いてluma_weight_lx[i]の予測処理を行い、数式（１６）を用いて、復元処理を行う。同様に、インデックス再構成部１１０Ｂは、数式（１７）〜（１８）を用いてchroma_weight_lx[i]の予測処理を行い、数式（１９）を用いて、復元処理を行う。
【０１３３】
delta_luma_weight_lx[i]  =  (luma_weight_lx[i]  -  default_luma_weight_lx)      …（１４）
【０１３４】
default_luma_weight_lx  =  (1<<luma_log2_weight_denom)      …（１５）
【０１３５】
luma_weight_lx[i]  =  (default_luma_weight_lx  +  delta_luma_weight_lx[i])      …（１６）
【０１３６】
delta_chroma_weight_lx[i][j]  =  (chroma_weight_lx[i][j]  -  default_chroma_weight_lx)      …（１７）
【０１３７】
default_chroma_weight_lx  =  (1<<chroma_log2_weight_denom)      …（１８）
【０１３８】
chroma_weight_lx[i][j]  =  (default_chroma_weight_lx  +  delta_chroma_weight_lx[i][j])      …（１９）
【０１３９】
ここで、default_luma_weight_lx、default_chroma_weight_lxは、それぞれ、輝度成分、色差成分における画素値変化がない基準値（デフォルト値）である。
【０１４０】
フェード効果を含む画像は、ある特定のフェード変化点でフェードを行い、それ以外の画像は通常の自然画像又はフェード効果のない画像であることが多い。この場合、重み係数は画素値変化がない場合を取ることが多くなる。そこで、画素値変化がない場合の初期値を、固定小数点精度から導出し、予測値として用いることで重み係数の符号量を削減できる。
【０１４１】
次に、色差信号のオフセットを表すchroma_offset_lx[i][j]の予測方法について説明する。ＹＵＶの色空間では、色差成分は、中央値からのズレ量で色を表現する。このため、重み係数を用いて中央値を考慮した画素値変化からの変化量を予測値とすることができる。具体的には、インデックス再構成部１１０Ｂは、数式（２０）〜（２１）を用いてchroma_offset_lx[i][j]の予測処理を行い、数式（２２）を用いて、復元処理を行う。
【０１４２】
delta_chroma_offset_lx[i][j]  =  (chroma_offset_lx[i][j]  +  (  (  MED  *  chroma_weight_lx[i][j])>>  chroma_log2_weight_denom)  -  MED  )      …（２０）
【０１４３】
MED  =  (MaxChromaValue>>1)      …（２１）
【０１４４】
ここで、MaxChromaValueは色差信号が取れる最大画素値を示している。例えば、8ビットの信号である場合、MaxChromaValueは255であり、MEDは128となる。
【０１４５】
chroma_offset_lx[i][j]  =  (delta_chroma_offset_lx[i][j]  -  (  (  MED  *  chroma_weight_lx[i][j])>>  chroma_log2_weight_denom)  +  MED  )      …（２２）
【０１４６】
色差信号の信号特性を利用して、中央値からのズレ量を考慮した予測値を導入することにより、オフセット値をそのまま符号化する場合と比較して、色差信号のオフセット値の符号量を削減できる。
【０１４７】
図１９は、第１実施形態のシンタクス要素の値の関係の一例を示す説明図であり、luma_log2_weight_denom、default_luma_weight_lx、luma_weight_lx[i]、及びdelta_luma_weight_lx[i]の値の関係を示している。図１９に示すように、エントロピー符号化部１１０Ａによって符号化されるシンタクス要素であるdelta_luma_weight_lx[i]、即ち、重み係数の差分値の取りうる範囲は、−１２８から１２７の範囲に固定されており、符号付き８ビット精度となっている。
【０１４８】
以上のように第１実施形態では、画素値変化が０となる重み係数の基準点を略中心として負の方向と正の方向に値を割り振ることにより重み係数の選択範囲を導出し、導出した重み係数の選択範囲内に重み係数が含まれていることを確認する。このため第１実施形態によれば、Ｈ．２６４等と比較して、重み係数の選択範囲を拡張し、選択頻度の高い正側の値を取りやすくすることができる。また第１実施形態によれば、符号化対象の重み係数の差分値が−１２８から１２７までの符号付き８ビットの値を固定値として取るため、重み係数の選択範囲を拡張しつつ、符号付き８ビット精度の選択範囲を規定することができる。
【０１４９】
このように第１実施形態では、符号化するシンタクス（重み係数の差分値）の範囲を固定値にできるため、エンコーダがこれらの範囲を動的に変更するような構成と比較して、仕様を簡略化できる。例えば、符号化するシンタクスを重み係数とし、重み係数の選択範囲が重み係数の基準値に応じて変動する場合、重み係数の基準値と重み係数の選択範囲の最小値及び最大値を対応付けたテーブルを用意して重み係数の選択範囲の導出後に都度参照するような構成や、重み係数の選択範囲を都度計算して導出するような構成が必要となる。このような場合、テーブルをメモリにロードして都度参照するという構成や、重み係数の選択範囲を都度計算するための演算回路が必要になり、ハードウェア規模が増大する。これに対し、第１実施形態では、符号化するシンタクス（重み係数の差分値）の範囲を固定値にできるため、上述したようなハードウェア構成などの制約を受けず、ハードウェア規模を削減することができる。
【０１５０】
更に第１実施形態では、範囲が符号付き８ビット精度に固定された重み係数の差分値を符号化することになるが、重み係数の差分値は範囲の中心付近（０付近）の値を取るため、符号化時の符号長を短くすることができ、符号化効率を向上できる。Ｈ．２６４などでは、重み係数を符号付き指数ゴロム符号（ｓｅ（ｖ））で符号化するが、この符号は、符号化する値が０を基準として指数的に増加するシンボルに対して有効な符号であるため、一番利用頻度が高い基準値を範囲の中心にすることが一般的である。第１実施形態では、一般的な動画像でピクチャ間の画素値変化が０となる場合を重み係数の基準値とし、かつ重み係数の選択範囲の予測においても上記基準値からの予測を導入している。これにより、指数ゴロム符号と予測及び重み係数の選択範囲が一致するため、符号量削減効果が高いとともに、基準値を中心に係数範囲を決めているため、大きな値を取る場合でも正の値と負の値の基準値からの距離が同程度になり、従来手法と比較して短い符号長で符号化できる効果を奏する。
【０１５１】
なお、第１実施形態の図１６〜図１８に例示するシンタクステーブルの行間には、本実施形態において規定していないシンタクス要素が挿入されてもよいし、その他の条件分岐に関する記述が含まれていてもよい。また、シンタクステーブルを複数のテーブルに分割したり、複数のシンタクステーブルを統合したりしてもよい。また、例示した各シンタクス要素の用語は、任意に変更可能である。
【０１５２】
（第２実施形態）
第２実施形態では、第１実施形態の符号化装置で符号化された符号化データを復号する復号装置について説明する。なお第２実施形態においても、第１実施形態同様、画素値変化が無い場合、即ち、重み係数の値を実数値で表現すると１．０となる場合を想定して、説明を行う。
【０１５３】
図２０は、第２実施形態の復号装置８００の構成の一例を示すブロック図である。
【０１５４】
復号装置８００は、図示せぬ入力バッファなどに蓄積された符号化データを復号画像に復号し、出力画像として図示せぬ出力バッファに出力する。符号化データは、例えば、図１の符号化装置１００などから出力され、図示せぬ蓄積系、伝送系、又はバッファなどを経て、復号装置８００に入力される。
【０１５５】
復号装置８００は、図２０に示すように、復号部８０１と、逆量子化部８０２と、逆直交変換部８０３と、加算部８０４と、予測画像生成部８０５と、インデックス設定部８０６とを、備える。逆量子化部８０２、逆直交変換部８０３、加算部８０４、予測画像生成部８０５は、それぞれ、図１の逆量子化部１０４、逆直交変換部１０５、加算部１０６、予測画像生成部１０７、と実質的に同一又は類似の要素である。なお、図２０に示す復号制御部８０７は、復号装置８００を制御するものであり、例えば、ＣＰＵなどにより実現できる。
【０１５６】
復号部８０１は、符号化データの復号のために、１フレーム又は１フィールド毎にシンタクスに基づいて解読を行う。復号部８０１は、エントロピー復号部８０１Ａと、インデックス再構成部８０１Ｂとを、備える。
【０１５７】
エントロピー復号部８０１Ａは、各シンタクスの符号列を順次エントロピー復号し、予測モード、動きベクトル、及び参照番号などを含む動き情報、重み付き動き補償予測のためのインデックス情報、並びに量子化変換係数などの符号化対象ブロックの符号化パラメータを再生する。なお、エントロピー復号は、パース処理などとも称される。ここで、符号化パラメータとは、上記以外にも変換係数に関する情報、量子化に関する情報、などの復号に必要となるすべてのパラメータである。
【０１５８】
具体的には、エントロピー復号部８０１Ａは、入力されてきた符号化データに対して可変長復号処理や算術復号処理などの復号処理を行う機能を有する。例えば、Ｈ．２６４ではコンテキスト適応型の可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ  ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）やコンテキスト適応型の算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）などが用いられ、入力されてきた符号化データを意味のあるシンタクス要素に復号している。これらの処理は解読処理とも呼ばれる。
【０１５９】
インデックス再構成部８０１Ｂは、解読されたインデックス情報を復元し、インデックス情報を再構成する。具体的には、インデックス再構成部８０１Ｂは、解読されたインデックス情報のシンタクス要素の符号長を削減するために、シンタクス要素のパラメータの特徴に応じて予測処理を行い、シンタクス要素を復元し、インデックス情報を再構成する。予測処理の具体例は、後述する。
【０１６０】
復号部８０１は、動き情報、インデックス情報、及び量子化変換係数を出力し、量子化変換係数を逆量子化部８０２に入力し、インデックス情報をインデックス設定部８０６に入力し、動き情報を予測画像生成部８０５に入力する。
【０１６１】
逆量子化部８０２は、復号部８０１から入力された量子化変換係数に対して逆量子化処理を行い、復元変換係数を得る。具体的には、逆量子化部８０２は、復号部８０１において使用された量子化情報に従って逆量子化を行う。より詳細には、逆量子化部８０２は、量子化情報によって導出された量子化ステップサイズを量子化変換係数に乗算し、復元変換係数を得る。逆量子化部８０２は、復元変換係数を出力し、逆直交変換部８０３に入力する。
【０１６２】
逆直交変換部８０３は、逆量子化部８０２から入力された復元変換係数に対して、符号化側において行われた直交変換に対応する逆直交変換を行い、復元予測誤差を得る。逆直交変換部８０３は、復元予測誤差を出力し、加算部８０４に入力する。
【０１６３】
加算部８０４は、逆直交変換部８０３から入力された復元予測誤差と、対応する予測画像とを加算し、復号画像を生成する。加算部８０４は、復号画像を出力し、予測画像生成部８０５に入力する。また加算部８０４は、復号画像を出力画像として外部に出力する。出力画像は、その後図示せぬ外部の出力バッファなどに一時的に蓄積され、例えば、復号制御部８０７によって管理される出力タイミングに従って、図示せぬディスプレイやモニタなどの表示装置系又は映像デバイス系へ出力される。
【０１６４】
インデックス設定部８０６は、復号部８０１から入力されたインデックス情報を受け取り、ＷＰパラメータ情報に変換して出力し、予測画像生成部８０５に入力する。具体的には、インデックス設定部８０６は、エントロピー復号部８０１Ａで復号処理され、インデックス再構成部８０１Ｂで再構成されたインデックス情報を受け取る。そしてインデックス設定部８０６は、参照画像のリストと参照番号を確認して、ＷＰパラメータ情報に変換し、変換したＷＰパラメータ情報を予測画像生成部８０５へ出力する。インデックス設定部８０６は、インデックス情報をＷＰパラメータ情報に変換する際に、重み係数の選択範囲を導出し、重み係数が当該選択範囲に含まれていることを確認する。なお、重み係数の選択範囲の導出については、第１実施形態と同様であるため、詳細な説明は省略する。また、重み係数の選択範囲の導出をインデックス設定部８０６ではなく、インデックス再構成部８０１Ｂで行うようにしてもよい。つまり、インデックス設定部８０６を導出部としてもよいし、インデックス再構成部８０１Ｂ（復号部８０１）を導出部としてもよい。
【０１６５】
また、ＷＰパラメータ情報は、第１実施形態同様、第一ＷＰ適用フラグ、第二ＷＰ適応フラグ及び重み情報の情報を含む。また、重み情報は、第１実施形態同様、第一重み係数の値ｗ０Ｃ、第二重み係数の値ｗ１Ｃ、第一重み係数及び第二重み係数の固定小数点精度ＬＷＤ、第一オフセットｏ０Ｃ、及び第二オフセットｏ１Ｃの情報を含む。
【０１６６】
予測画像生成部８０５は、復号部８０１から入力された動き情報、インデックス設定部８０６から入力されたＷＰパラメータ情報、及び加算部８０４から入力された復号画像を用いて、予測画像を生成する。
【０１６７】
ここで、図４を参照しながら、予測画像生成部８０５の詳細について説明する。予測画像生成部８０５は、予測画像生成部１０７同様、複数フレーム動き補償部２０１と、メモリ２０２と、単方向動き補償部２０３と、予測パラメータ制御部２０４と、参照画像セレクタ２０５と、フレームメモリ２０６と、参照画像制御部２０７と、を備える。
【０１６８】
フレームメモリ２０６は、参照画像制御部２０７の制御の下、加算部１０６から入力された復号画像を参照画像として格納する。フレームメモリ２０６は、参照画像を一時保持するための複数のメモリセットＦＭ１〜ＦＭＮ（Ｎ≧１）を有する。
【０１６９】
予測パラメータ制御部２０４は、復号部８０１から入力される動き情報に基づいて、参照画像番号と予測パラメータとの複数の組み合わせをテーブルとして用意している。ここで、動き情報とは、動き補償予測で用いられる動きのズレ量を示す動きベクトルや参照画像番号、単方向／双方向予測などの予測モードに関する情報などを指す。予測パラメータは、動きベクトル及び予測モードに関する情報を指す。そして予測パラメータ制御部２０４は、動き情報に基づいて、予測画像の生成に用いる参照画像番号と予測パラメータとの組み合わせを選択して出力し、参照画像番号を参照画像セレクタ２０５に入力し、予測パラメータを単方向動き補償部２０３に入力する。
【０１７０】
参照画像セレクタ２０５は、フレームメモリ２０６が有するフレームメモリＦＭ１〜ＦＭＮのいずれの出力端を接続するかを、予測パラメータ制御部２０４から入力された参照画像番号に従って切り替えるスイッチである。参照画像セレクタ２０５は、例えば、参照画像番号が０であれば、ＦＭ１の出力端を参照画像セレクタ２０５の出力端に接続し、参照画像番号がＮ−１であれば、ＦＭＮの出力端を参照画像セレクタ２０５の出力端に接続する。参照画像セレクタ２０５は、フレームメモリ２０６が有するフレームメモリＦＭ１〜ＦＭＮのうち、出力端が接続されているフレームメモリに格納されている参照画像を出力し、単方向動き補償部２０３へ入力する。なお、復号装置８００では、予測画像生成部８０５以外で参照画像は利用されないため、予測画像生成部８０５の外部へ参照画像を出力しなくてもよい。
【０１７１】
単方向動き補償部２０３は、予測パラメータ制御部２０４から入力された予測パラメータと参照画像セレクタ２０５から入力された参照画像に従って、動き補償予測処理を行い、単方向予測画像を生成する。動き補償予測については、図５を参照して既に説明しているため、説明を省略する。
【０１７２】
単方向動き補償部２０３は、単方向予測画像を出力し、メモリ２０２に一時的に格納する。ここで、動き情報（予測パラメータ）が双方向予測を示す場合には、複数フレーム動き補償部２０１が２種類の単方向予測画像を用いて重み付き予測を行うため、単方向動き補償部２０３は、１つ目に対応する単方向予測画像をメモリ２０２に格納し、２つ目に対応する単方向予測画像を複数フレーム動き補償部２０１に直接出力する。ここでは、１つ目に対応する単方向予測画像を第一予測画像とし、２つ目に対応する単方向予測画像を第二予測画像とする。
【０１７３】
なお、単方向動き補償部２０３を２つ用意し、それぞれが２つの単方向予測画像を生成するようにしてもよい。この場合、動き情報（予測パラメータ）が単方向予測を示すときには、単方向動き補償部２０３が、１つ目の単方向予測画像を第一予測画像として複数フレーム動き補償部２０１に直接出力すればよい。
【０１７４】
複数フレーム動き補償部２０１は、メモリ２０２から入力される第一予測画像、単方向動き補償部２０３から入力される第二予測画像、及び動き評価部１０９から入力されるＷＰパラメータ情報を用いて、重み付き予測を行って予測画像を生成する。複数フレーム動き補償部２０１は、予測画像を出力し、加算部８０４に入力する。
【０１７５】
ここで、図６を参照しながら、複数フレーム動き補償部２０１の詳細について説明する。複数フレーム動き補償部２０１は、予測画像生成部１０７同様、デフォルト動き補償部３０１と、重み付き動き補償部３０２と、ＷＰパラメータ制御部３０３と、ＷＰセレクタ３０４、３０５とを、備える。
【０１７６】
ＷＰパラメータ制御部３０３は、インデックス設定部８０６から入力されるＷＰパラメータ情報に基づいて、ＷＰ適用フラグ及び重み情報を出力し、ＷＰ適用フラグをＷＰセレクタ３０４、３０５に入力し、重み情報を重み付き動き補償部３０２に入力する。
【０１７７】
詳細には、ＷＰパラメータ制御部３０３は、インデックス設定部８０６からＷＰパラメータ情報が入力されると、ＷＰパラメータ情報を第一ＷＰ適用フラグ、第二ＷＰ適用フラグ、及び重み情報に分離して出力し、第一ＷＰ適用フラグをＷＰセレクタ３０４に入力し、第二ＷＰ適用フラグをＷＰセレクタ３０５に入力し、重み情報を重み付き動き補償部３０２に入力する。
【０１７８】
なお、ＷＰパラメータ制御部３０３は、ＷＰパラメータ情報が入力されると、重み情報の値が規定の範囲内に収まっているかどうかチェックする。例えば、ｗ０Ｃが実数値で表現した場合に３．０、ＬＷＤが７の場合、第一重み係数は３８４となる。ここで、３８４は、第一重み係数の範囲外であり、使用できないとする。この場合、ＷＰパラメータ制御部３０３は、規格違反のデータであるため、規格違反であることを示す情報を復号制御部８０７に通知し、復号処理をやめてもよい。また、ＷＰパラメータ制御部３０３は、第一重み係数の範囲内にクリップ処理を行い、復号処理を進めてもよい。また、ＷＰパラメータ制御部３０３は、第一ＷＰ適用フラグの値を１から０に変更し、デフォルト動き補償予測を行ってもよい。
【０１７９】
ＷＰセレクタ３０４、３０５は、ＷＰパラメータ制御部３０３から入力されたＷＰ適用フラグに基づいて、各々の予測画像の接続端を切り替える。ＷＰセレクタ３０４、３０５は、各々のＷＰ適用フラグが０の場合、各々の出力端をデフォルト動き補償部３０１へ接続する。そしてＷＰセレクタ３０４、３０５は、第一予測画像及び第二予測画像を出力し、デフォルト動き補償部３０１に入力する。一方、ＷＰセレクタ３０４、３０５は、各々のＷＰ適用フラグが１の場合、各々の出力端を重み付き動き補償部３０２へ接続する。そしてＷＰセレクタ３０４、３０５は、第一予測画像及び第二予測画像を出力し、重み付き動き補償部３０２に入力する。
【０１８０】
デフォルト動き補償部３０１は、ＷＰセレクタ３０４、３０５から入力された２つの単方向予測画像（第一予測画像及び第二予測画像）を元に平均値処理を行い、予測画像を生成する。具体的には、デフォルト動き補償部３０１は、第一ＷＰ適用フラグ及び第二ＷＰ適用フラグが０の場合、数式（１）に基づいて平均値処理を行う。
【０１８１】
なお、動き情報（予測パラメータ）で示される予測モードが単方向予測である場合、デフォルト動き補償部３０１は、第一予測画像のみを用いて、数式（４）に基づいて最終的な予測画像を算出する。
【０１８２】
重み付き動き補償部３０２は、ＷＰセレクタ３０４、３０５から入力された２つの単方向予測画像（第一予測画像及び第二予測画像）とＷＰパラメータ制御部３０３から入力された重み情報とを元に重み付き動き補償を行う。具体的には、重み付き動き補償部３０２は、第一ＷＰ適用フラグ及び第二ＷＰ適用フラグが１の場合、数式（７）に基づいて重み付き処理を行う。
【０１８３】
なお、重み付き動き補償部３０２は、第一予測画像及び第二予測画像と予測画像との演算精度が異なる場合、固定小数点精度であるＬＷＤを数式（８）のように制御することで丸め処理を実現する。
【０１８４】
また、動き情報（予測パラメータ）で示される予測モードが単方向予測である場合、重み付き動き補償部３０２は、第一予測画像のみを用いて、数式（９）に基づいて最終的な予測画像を算出する。
【０１８５】
なお、重み付き動き補償部３０２は、第一予測画像及び第二予測画像と予測画像との演算精度が異なる場合、固定小数点精度であるＬＷＤを双方向予測時と同様に数式（８）のように制御することで丸め処理を実現する。
【０１８６】
重み係数の固定小数点精度については、図７を参照して既に説明しているため、説明を省略する。なお、単方向予測の場合には、第二予測画像に対応する各種パラメータ（第二ＷＰ適応フラグ、第二重み係数、及び第二オフセットの情報）は利用されないため、予め定めた初期値に設定されていてもよい。
【０１８７】
復号部８０１は、図１５に示すシンタクス５００を利用する。シンタクス５００は、復号部８０１の復号対象の符号化データの構造を示している。シンタクス５００については、図１５を参照して既に説明しているため、説明を省略する。また、ピクチャパラメータセットシンタクス５０５については、符号化が復号である点を除き、図１６を参照して既に説明しているため、説明を省略する。また、スライスヘッダーシンタクス５０７についても、符号化が復号である点を除き、図１７を参照して既に説明しているため、説明を省略する。また、プレッドウェイトテーブルシンタクス５０８についても、符号化が復号である点を除き、図１８を参照して既に説明しているため、説明を省略する。
【０１８８】
ここで、シンタクス構成における重み付き予測に関連するそれぞれのシンタクス要素の予測方法の詳細について説明する。シンタクス要素の予測は、インデックス再構成部８０１Ｂにより行われる。第２実施形態の予測方法を明示的に示したシンタクス構成は、第１実施形態と同様である。
【０１８９】
重み係数の固定小数点精度を示すluma_log2_weight_denom及びchroma_log2_weight_denomの信号間の予測方法については、数式（１３）を用いて、復元処理が行われる。
【０１９０】
輝度及び色差信号の重み係数を表すluma_weight_lx[i]及びchroma_weight_lx[i][j]の予測方法については、数式（１６）及び（１９）を用いて、復元処理が行われる。
【０１９１】
なお、上記説明した複数の予測手法は、単独で使用するだけでなく組み合わせて利用することもできる。例えば、数式（１３）、数式（１５）、及び数式（１９）等を組み合わせるなどとすることにより、インデックス情報におけるシンタクス要素の符号量を効率良く削減することが可能となる。
【０１９２】
以上のように第２実施形態では、画素値変化が０となる重み係数の基準点を略中心として負の方向と正の方向に値を割り振ることにより重み係数の選択範囲を導出し、導出した重み係数の選択範囲内に重み係数が含まれていることを確認する。このため第２実施形態によれば、Ｈ．２６４等と比較して、重み係数の選択範囲を拡張し、選択頻度の高い正側の値を取りやすくすることができる。また第２実施形態によれば、復号対象の重み係数の差分値が−１２８から１２７までの符号付き８ビットの値を固定値として取るため、重み係数の選択範囲を拡張しつつ、符号付き８ビット精度の選択範囲を規定することができる。
【０１９３】
このように第２実施形態では、復号するシンタクス（重み係数の差分値）の範囲を固定値にできるため、デコーダは復号処理した符号化データが予め定められた仕様の範囲内に収まっているかどうかを簡単にチェックすることができ仕様を簡略化できる。例えば、復号するシンタクスを重み係数とし、重み係数の選択範囲が重み係数の基準値に応じて変動する場合、重み係数の基準値と重み係数の選択範囲の最小値及び最大値を対応付けたテーブルを用意して重み係数の選択範囲の導出後に都度参照するような構成が必要となる。このような場合、テーブルをメモリにロードして都度参照するという構成が必要になり、ハードウェア規模が増大する。これに対し、第２実施形態では、復号するシンタクス（重み係数の差分値）の範囲を固定値にできるため、上述したようなハードウェア構成などの制約を受けず、ハードウェア規模を削減することができる。
【０１９４】
更に第２実施形態では、範囲が符号付き８ビット精度に固定された重み係数の差分値を復号することになるが、重み係数の差分値は範囲の中心付近（０付近）の値を取るため、復号時の符号長を短くすることができ、復号効率を向上できる。Ｈ．２６４などでは、重み係数を符号付き指数ゴロム符号（ｓｅ（ｖ））で復号するが、この符号は、復号する値が０を基準として指数的に増加するシンボルに対して有効な符号であるため、一番利用頻度が高い基準値を範囲の中心にすることが一般的である。第２実施形態では、一般的な動画像でピクチャ間の画素値変化が０となる場合を重み係数の基準値とし、かつ重み係数の選択範囲の予測においても上記基準値からの予測を導入している。これにより、指数ゴロム符号と予測及び重み係数の選択範囲が一致するため、符号量削減効果が高いとともに、基準値を中心に係数範囲を決めているため、大きな値を取る場合でも正の値と負の値の基準値からの距離が同程度になり、従来手法と比較して短い符号長で復号できる効果を奏する。
【０１９５】
（第１実施形態の変形例１）
第１実施形態では、符号化装置１００での重み係数の選択範囲の導出について説明したが、変形例１では、符号化装置１００でのオフセットの選択範囲の導出について説明する。
【０１９６】
数式（２０）〜数式（２２）で説明したとおり、ＹＵＶの色空間では、色差成分は中央値からのズレ量で色を表現する。このため、重み係数を用いて中央値を考慮した画素値変化からの変化量を予測値とすることができる。この予測値は、重み係数の影響を排除した場合のオフセットの基準値を示している。つまり、インデックス設定部１０８は、予測値（オフセットの基準値）を略中心として値の取りうる範囲を割り振ることで、オフセットの選択範囲を導出でき、オフセットが導出したオフセットの選択範囲内に含まれていることを確認できる。
【０１９７】
例えば、ＬＷＤが２、重み係数の値が５の場合、重み係数の基準値は（１＜＜２）、即ち、４となる。一方、重み係数の値が５であるため、画素値変化が生じる。色差信号は、中央値からのズレ量で色を表現するため、インデックス設定部１０８は、重み係数の影響を排除することで、オフセットの基準値を求める。オフセットの基準値は、数式（２３）で定式化される。
【０１９８】
Pred  ＝(  MED  −  （  (  MED  *  chroma_weight_lx[i][j])>>  chroma_log2_weight_denom))      …（２３）
【０１９９】
Predは色差信号のオフセットの基準値を示し、MEDは色差信号の中央値（８ビット時に１２８）を示し、右側の項は重み係数の影響による中央値からのズレ量を意味している。なお、数式（２３）は、数式（２０）の右端の項の符号を反転した値に対応している。数式（２３）に示すように、色差信号のオフセットの基準値は、色差信号の重み係数及び固定小数点精度に従って定まる。
【０２００】
なお、数式（２３）は、数式（２４）のように変形できる。
【０２０１】
Pred  ＝(  (  1  <<  (  BitDepth  −  1  ))  −  （  (  chroma_weight_lx[i][j]    )  <<  (BitDepth  −  1  −  chroma_log2_weight_denom))      …（２４）
【０２０２】
ここで、BitDepthは色差信号の画素深度を表しており、８ビット信号であればBitDepthは８である。数式（２３）のMEDは、２のべき乗で表現される値であるため、右辺のシフト内をBitDepthを利用して書き換えると数式（２４）のように表現することが可能となる。
【０２０３】
図２１は、変形例１の色差信号のオフセットの選択範囲の一例を示す説明図である。図２１に示す例では、Predが、選択範囲の略中心に位置するように配置され、(Pred)-(1<<OR)が選択範囲の最小値となり、(Pred)+(1<<OR)-1が選択範囲の最大値となっている。ORは、オフセットのビット精度を意味し、例えば、Ｈ．２６４などでは、８となる。図２１に示すように、色差信号のオフセットの選択範囲は、色差信号のオフセットの基準値を略中心として、所定のビット精度の中で定義される。また、詳細な説明は省略するが、符号化対象の色差信号のオフセットの差分値（色差信号のオフセットと色差信号のオフセットの基準値との差分値）は、オフセットのビット精度の固定値で定義できる。例えば、８ビット精度であれば、色差信号のオフセットの差分値は、−１２８から１２７の８ビット固定値となる。また、例えば９ビット精度であれば、色差信号のオフセットの差分値は、−２５６から２５５の９ビット固定値となる。
【０２０４】
これにより、基準値を復元しないと符号化する値の範囲が決まらないような問題を解決できる。なお、変形例１では、色差信号のオフセットの選択範囲の導出をインデックス設定部１０８が行う例について説明したが、これに限定されず、符号化部１１０で行うようにしてもよい。
【０２０５】
図２２は、変形例１の色差信号のオフセットの選択範囲の導出処理の一例を示すフローチャートである。ここでは、インデックス設定部１０８が色差信号のオフセットの選択範囲の導出処理を行う場合を想定して説明するが、前述したように、符号化部１１０が行ってもよい。
【０２０６】
まず、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤを導出する（ステップＳ１２）。ここで、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤをＷＰパラメータ情報から導出してもよいし、インデックス情報から導出してもよい。
【０２０７】
続いて、インデックス設定部１０８は、重み係数Ｗｘｃを導出する（Ｓ１３）。ここで、インデックス設定部１０８は、重み係数ＷｘｃをＷＰパラメータ情報から導出してもよいし、インデックス情報から導出してもよい。
【０２０８】
続いて、インデックス設定部１０８は、導出した重み係数の固定小数点精度ＬＷＤ及び重み係数Ｗｘｃを用いて、色差信号のオフセットの基準値を数式（２３）より導出する（ステップＳ１４）。
【０２０９】
続いて、インデックス設定部１０８は、導出した色差信号のオフセットの基準値から(1<<OR)を減算し、色差信号のオフセットの選択範囲の最小値を導出する（ステップＳ１５）。
【０２１０】
続いて、インデックス設定部１０８は、導出した色差信号のオフセットの基準値に(1<<OR)-1を加算し、色差信号のオフセットの選択範囲の最大値を導出する（ステップＳ１６）。
【０２１１】
そしてインデックス設定部１０８は、導出した色差信号のオフセットの選択範囲内に色差信号のオフセットが含まれていることを確認する。なお、インデックス設定部１０８は、色差信号のオフセットが色差信号のオフセットの選択範囲内に含まれていないことを確認した場合、色差信号のオフセットの選択範囲の最大値又は最小値を用いてクリップ処理を行ってもよい。この場合、インデックス設定部１０８は、色差信号のオフセットが選択範囲の最小値より小さければ当該最小値でクリップし、色差信号のオフセットが選択範囲の最大値よりも大きければ当該最大値でクリップすればよい。このようなクリップ処理を導入することで、特定の範囲制約を設けなくても、色差信号のオフセットの差分値などの符号化対象の値は、予め定められたビット精度内の値を取るため、ハードウェアが用いる回路規模の構成を明確化できる。
【０２１２】
なお、図１８で説明したとおり、重み係数の値と固定小数点精度の情報は、オフセットの情報よりも先に符号化されるため、オフセットの基準値を導出する際に重み係数の値を導出できる。
【０２１３】
また、変形例１で説明した色差信号に対する第１オフセット及び第２オフセットの選択範囲を、第１実施形態で説明した第１重み係数及び第２重み係数の選択範囲と別々に適用してもよい。例えば、第１重み係数、第２重み係数の選択範囲は、Ｈ．２６４と同一とし、色差信号に対する第１オフセット及び第２オフセットの選択範囲は、変形例１のようにしてもよい。
【０２１４】
変形例１によれば、符号化するシンタクス（オフセットの差分値）の範囲を固定値にできるため、エンコーダがこれらの範囲を動的に変更するような構成と比較して、仕様を簡略化できる。なお、復号するシンタクスをオフセットとし、オフセットの選択範囲がオフセットの基準値に応じて変動する場合、オフセットの基準値とオフセットの選択範囲の最小値及び最大値を対応付けたテーブルを用意して、オフセットの選択範囲を導出後に都度参照するような構成やオフセットの選択範囲を都度計算して導出するような構成が必要となる。このような場合、テーブルをメモリにロードして都度参照するという構成や計算するための演算回路が必要になりハードウェア規模が増大する。これに対し、変形例１のように符号化するシンタクス（オフセットの差分値）の範囲が固定であると、このようなハードウェア構成などの制約を受けないため、ハードウェア規模を削減できる。
【０２１５】
（第２実施形態の変形例１）
第２実施形態では、復号装置８００での重み係数の選択範囲の導出について説明したが、第２実施形態の変形例１では、復号装置８００でのオフセットの選択範囲の導出について説明する。第２実施形態の変形例１では、インデックス設定部８０６が、予測値（オフセットの基準値）を略中心として値の取りうる範囲を割り振ることで、オフセットの選択範囲を導出でき、オフセットが導出したオフセットの選択範囲内に含まれていることを確認できる。なお、オフセットの選択範囲を導出については、第１実施形態の変形例１と同様であるため、詳細な説明は省略する。また、オフセットの選択範囲の導出をインデックス設定部８０６ではなく、インデックス再構成部８０１Ｂで行うようにしてもよい。
【０２１６】
第２実施形態の変形例１によれば、符号化するシンタクス（オフセットの差分値）の範囲を固定値にできるため、デコーダがこれらの範囲を動的に変更するような構成と比較して、仕様を簡略化できる。なお、復号するシンタクスをオフセットとし、オフセットの選択範囲がオフセットの基準値に応じて変動する場合、オフセットの基準値とオフセットの選択範囲の最小値及び最大値を対応付けたテーブルを用意して、オフセットの選択範囲を導出後に都度参照するような構成やオフセットの選択範囲を都度計算して導出するような構成が必要となる。このような場合、テーブルをメモリにロードして都度参照するという構成や計算するための演算回路が必要になりハードウェア規模が増大する。これに対し、変形例１のように符号化するシンタクス（オフセットの差分値）の範囲が固定であると、このようなハードウェア構成などの制約を受けないため、ハードウェア規模を削減できる。
【０２１７】
（第１実施形態の変形例２）
第１実施形態では、符号化装置１００での重み係数の選択範囲の導出について説明したが、変形例２では、符号化装置１００での重み係数の選択範囲の導出の際に、重み係数の選択範囲をシフトする例について説明する。
【０２１８】
第１実施形態では、図９で説明したように、重み係数の選択範囲の略中心を、重み係数の基準値としていた。また、図７等で説明したように、画像間で平均的な画素値変化が無い場合、重み係数の値を実数値で表現すると１．０となり、重み係数が負となる範囲は単方向の重み付き予測では選択されない。これより、実運用上の重み係数の選択範囲は、基準値近辺の選択頻度が最も高く、負の範囲はあまり利用されないことが判る。このため、変形例２では、インデックス設定部１０８は、重み係数の選択範囲の導出の際に、重み係数の選択範囲を正側にシフトする。
【０２１９】
図２３は、変形例２の重み係数の選択範囲の一例を示す説明図である。図２３に示す例では、図９で説明した重み係数の選択範囲と異なり、重み係数の基準値（１＜＜ＬＷＤ）にシフト値ＳＨＦＴを加算した新たな基準値（（１＜＜ＬＷＤ）＋ＳＨＦＴ）が、選択範囲の略中心に位置するように配置され、この値から１２８を減算した値（−１２８＋（１＜＜ＬＷＤ）＋ＳＨＦＴ）が選択範囲の最小値となり、この値に１２７を加算した値（１２７＋（１＜＜ＬＷＤ）＋ＳＨＦＴ）が選択範囲の最大値となっている。この際、固定小数点精度ＬＷＤの値によって最大値が２５５よりも大きくなる場合が発生するが、インデックス設定部１０８は、最大値を２５５でクリップ処理してもよいし、固定小数点ごとに取りうるＳＨＦＴの値を変更してもよい。なお、変形例２では、重み係数の選択範囲の導出をインデックス設定部１０８が行う例について説明したが、これに限定されず、符号化部１１０で行うようにしてもよい。
【０２２０】
図２４は、変形例２の重み係数の選択範囲の導出処理の一例を示すフローチャートである。ここでは、インデックス設定部１０８が重み係数の選択範囲の導出処理を行う場合を想定して説明するが、前述したように、符号化部１１０が行ってもよい。
【０２２１】
まず、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤを導出する（ステップＳ２２）。ここで、インデックス設定部１０８は、重み係数の固定小数点精度ＬＷＤをＷＰパラメータ情報から導出してもよいし、インデックス情報から導出してもよい。
【０２２２】
続いて、インデックス設定部１０８は、導出した固定小数点精度ＬＷＤ及びシフト値ＳＨＦＴを用いて、重み係数の基準値（（１＜＜ＬＷＤ）＋ＳＨＦＴ）を導出する（ステップＳ２３）。
【０２２３】
続いて、インデックス設定部１０８は、導出した重み係数の基準値（（１＜＜ＬＷＤ）＋ＳＨＦＴ）から１２８を減算し、重み係数の選択範囲の最小値を導出する（ステップＳ２４）。
【０２２４】
続いて、インデックス設定部１０８は、導出した重み係数の基準値（（１＜＜ＬＷＤ）＋ＳＨＦＴ）に１２７を加算し、重み係数の選択範囲の最大値を導出する（ステップＳ２５）。
【０２２５】
そしてインデックス設定部１０８は、導出した重み係数の選択範囲内に重み係数が含まれていることを確認する。なお、インデックス設定部１０８は、重み係数が導出した重み係数の選択範囲内に含まれていないことを確認した場合、重み係数の選択範囲の最大値又は最小値を用いてクリップ処理を行ってもよい。この場合、インデックス設定部１０８は、重み係数が選択範囲の最小値より小さければ当該最小値でクリップし、重み係数が選択範囲の最大値よりも大きければ当該最大値でクリップすればよい。このようなクリップ処理を導入することで、特定の範囲制約を設けなくても、重み係数の差分値などの符号化対象の値は、予め定められたビット精度内の値を取るため、ハードウェアが用いる回路規模の構成を明確化できる。
【０２２６】
以上のように変形例２では、重み係数の選択範囲を、重み係数の変化分を考慮した上で所定の値だけシフトした基準点を中心として、負の方向と正の方向に値を割り振ることにより、符号化する値の範囲を固定とすることができる。
【０２２７】
（第２実施形態の変形例２）
第２実施形態では、復号装置８００での重み係数の選択範囲の導出について説明したが、第２実施形態の変形例２では、復号装置８００での重み係数の選択範囲の導出の際に、重み係数の選択範囲をシフトする例について説明する。第２実施形態の変形例２では、インデックス設定部８０６が、重み係数の選択範囲の導出の際に、重み係数の選択範囲を正側にシフトする。なお、重み係数の選択範囲の導出については、第１実施形態の変形例２と同様であるため、詳細な説明は省略する。また、重み係数の選択範囲の導出をインデックス設定部８０６ではなく、インデックス再構成部８０１Ｂで行うようにしてもよい。
【０２２８】
以上のように第２実施形態の変形例２では、重み係数の選択範囲を、重み係数の変化分を考慮した上で所定の値だけシフトした基準点を中心として、負の方向と正の方向に値を割り振ることにより、復号する値の範囲を固定とすることができる。
【０２２９】
（第１実施形態の変形例３）
変形例３では、第１実施形態の符号化装置１００での重み係数の選択範囲の導出手法と異なる導出手法について説明する。
【０２３０】
変形例３では、数式（１４）〜数式（１６）におけるluma_weight_lx[i]が固定の選択範囲を持ち、delta_luma_weight_lx[i]が、ＬＷＤに応じて動的な選択範囲を持つ。なお、変形例５の重み係数（luma_weight_lx[i]）の選択範囲は図９と同様である。
【０２３１】
図２５は、変形例３における符号化対象の重み係数の差分値の範囲の一例を示す説明図である。図２５に示す例では、重み係数の差分値（delta_luma_weight_lx[i]）は、符号付き８ビット信号の加減算を行うため、符号付き９ビットの値を取る。一方、重み係数の基準値は固定小数点精度に応じて大きくなる値を取るため、重み係数の差分値は固定小数点精度の値が大きくなるにつれて負側に偏る傾向がある。
【０２３２】
図２６は、変形例３のシンタクス要素の値の関係の一例を示す説明図であり、luma_log2_weight_denom、default_luma_weight_lx、luma_weight_lx[i]、及びdelta_luma_weight_lx[i]の値の関係を示している。エントロピー符号化部１１０Ａによって符号化されるシンタクス要素であるdelta_luma_weight_lx[i]、即ち、重み係数の差分値の取りうる範囲は、図１９に示すように、固定小数点精度を表すluma_log2_weight_denomの値が大きくなるにつれて負側に偏る傾向があることが判る。一方、復号した重み係数の値（luma_weight_lx[i]）は、−１２８から１２７まで固定の範囲となることが判る。
【０２３３】
以上のように変形例３では、復号した重み係数の値が固定の選択範囲を持つように符号化する差分値の範囲を定めることにより、予測方法が変わった場合においてもＨ．２６４と同一の選択範囲を定めることが出来るようになる。
【０２３４】
（第２実施形態の変形例３）
第２実施形態の変形例３では、第２実施形態の復号装置８００での重み係数の選択範囲の導出手法と異なる導出手法について説明する。但し、第２実施形態の変形例３の重み係数の選択範囲の導出手法は、第１実施形態の変形例３と同様であるため、詳細な説明は省略する。
【０２３５】
以上のように第２実施形態の変形例３では、重み係数の値が固定の選択範囲を持つように復号する差分値の範囲を定めることにより、予測方法が変わった場合においてもＨ．２６４と同一の選択範囲を定めることが出来るようになる。
【０２３６】
（第１実施形態の変形例４）
変形例４では、第１実施形態の変形例３の重み係数の選択範囲の導出の際に、重み係数の選択範囲をシフトする例について説明する。
【０２３７】
変形例４では、インデックス設定部１０８が重み係数の差分値の範囲を正側にシフトするが、これは実質的に復号後の重み係数の選択範囲を正側にシフトしていることと等価である。
【０２３８】
図２７は、変形例４の重み係数の差分値の範囲の一例を示す説明図である。第１実施形態の変形例３と比較して、−１２８から１２７までの８ビット範囲の値を取る重み係数の差分値の範囲が、正側にＳＨＦＴ分シフトしている。
【０２３９】
図２８は、変形例４の復号後の重み係数の選択範囲を示している。図２８より、変形例４では、差分値のシフト分だけ、重み係数の範囲を正側にシフトしていることが判る。このような構成としても、従来選択することが出来なかったＬＷＤが７の場合の基準値も選択することが出来るようになる。
【０２４０】
（第２実施形態の変形例４）
第２実施形態の変形例４では、第２実施形態の変形例３の重み係数の選択範囲の導出の際に、重み係数の選択範囲をシフトする例について説明する。但し、第２実施形態の変形例４の重み係数の選択範囲をシフトする手法は、第１実施形態の変形例４と同様であるため、詳細な説明は省略する。このような構成としても、従来選択することが出来なかったＬＷＤが７の場合の基準値も選択することが出来るようになる。
【０２４１】
（第１実施形態の変形例５）
変形例５では、第１実施形態の変形例３及び変形例４において重み係数の差分値をラップ処理する例について説明する。
【０２４２】
図２５で説明したように、重み係数の差分値は、符号付き９ビット信号（−２５６から１２６）であって、固定小数点精度が大きくなると負側に偏っている。重み係数は、一般的に指数ゴロム符号などを用いてエントロピー符号化されるため、正負のバランスが偏っている場合、符号化効率が低下する場合がある。重み係数の差分値の範囲は、固定小数点精度に応じて異なるが、固定小数点精度が確定した場合の範囲は８ビット内に収まっている。例えば、ＬＷＤが７の場合、差分値の範囲は−２５６から−１までであり、０基準にシフトすると０から２５５までの８ビットの値となる。このため、インデックス再構成部１１０Ｂは、固定小数点精度に応じて、符号付き９ビットを符号無し８ビットにラップ処理する。この場合、正方向の値は従来通りの値を取り、負の値は正の値の終端に接続される。
【０２４３】
図２９は、変形例５の重み係数の差分値のラップ処理の一例を示すフローチャートである。
【０２４４】
まず、インデックス再構成部１１０Ｂは、インデックス情報から重み係数の固定小数点精度ＬＷＤを導出する（ステップＳ３２）。
【０２４５】
続いて、インデックス再構成部１１０Ｂは、インデックス情報から重み係数を導出する（ステップＳ３３）。
【０２４６】
続いて、インデックス再構成部１１０Ｂは、導出した固定小数点精度ＬＷＤを用いて、重み係数の基準値（１＜＜ＬＷＤ）を導出する（ステップＳ３４）。
【０２４７】
続いて、インデックス再構成部１１０Ｂは、数式（１４）より重み係数の差分値を導出する（ステップＳ３５）。
【０２４８】
続いて、インデックス再構成部１１０Ｂは、重み係数の基準値（１＜＜ＬＷＤ）に基づいて、ラップ処理を行い、正の値はそのままに負の値を正の最大値の後ろに接続することで符号無し８ビットコードを生成する（ステップＳ３６）。
【０２４９】
そして、インデックス再構成部１１０Ｂにより生成されたコードがエントロピー符号化部１１０Ａでエントロピー符号化される。
【０２５０】
以上のように変形例５では、符号付き９ビットの値に対してラップ処理を施すことにより、常に符号無し８ビットで符号化できるようになり、符号付き９ビットの指数ゴロム符号化部などのハードウェアを持つ必要が無くなる。
【０２５１】
（第２実施形態の変形例５）
第２実施形態の変形例５では、第２実施形態の変形例３及び変形例４において重み係数の差分値をラップ処理する例について説明する。
【０２５２】
図２５で説明したように、重み係数の差分値は、符号付き９ビット信号（−２５６から１２６）であって、固定小数点精度が大きくなると負側に偏っている。重み係数は、一般的に指数ゴロム符号などを用いてエントロピー符号化されるため、正負のバランスが偏っている場合、符号化効率が低下する場合がある。重み係数の差分値の範囲は、固定小数点精度に応じて異なるが、固定小数点精度が確定した場合の範囲は８ビット内に収まっている。例えば、ＬＷＤが７の場合、差分値の範囲は−２５６から−１までであり、０基準にシフトすると０から２５５までの８ビットの値となる。このため、インデックス再構成部８０１Ｂは、固定小数点精度に応じて、符号付き９ビットを符号無し８ビットにラップ処理する。この場合、正方向の値は従来通りの値を取り、負の値は正の値の終端に接続される。
【０２５３】
図３０は、第２実施形態の変形例５の重み係数の差分値の復元処理の一例を示すフローチャートである。
【０２５４】
まず、エントロピー復号部８０１Ａは、符号化データを復号して重み係数の固定小数点精度ＬＷＤを導出する（ステップＳ４２）。
【０２５５】
続いて、エントロピー復号部８０１Ａは、次に符号化データを復号して重み係数の差分値を示す符号無し８ビットコードを復号する（ステップＳ４３）。
【０２５６】
続いて、インデックス再構成部８０１Ｂは、導出した固定小数点精度ＬＷＤを用いて、重み係数の基準値（１＜＜ＬＷＤ）を導出する（ステップＳ４４）。
【０２５７】
続いて、インデックス再構成部８０１Ｂは、導出した重み係数の基準値（１＜＜ＬＷＤ）を用いて、符号無し８ビットコードを符号付き９ビットの差分値に復元する（ステップＳ４５）。ここでは、復号したデータから基準値を下回る値をそのままにし、基準値以上のコードを負側に接続することで差分値を復元する。以上により、復元された重み係数の差分値を導出し、数式（１５）により重み係数を復元する。
【０２５８】
以上のように第２実施形態の変形例５では、符号付き９ビットの値に対してラップ処理を施すことにより、常に符号無し８ビットで符号化できるようになり、符号付き９ビットの指数ゴロム符号化部などのハードウェアを持つ必要が無くなる。
【０２５９】
（変形例６）
上記第１〜第２実施形態では、フレームを１６×１６画素サイズなどの矩形ブロックに分割し、画面左上のブロックから右下に向かって順に符号化／復号を行う例について説明している（図２Ａを参照）。しかしながら、符号化順序及び復号順序はこの例に限定されない。例えば、右下から左上に向かって順に符号化及び復号が行われてもよいし、画面中央から画面端に向かって渦巻を描くように符号化及び復号が行われてもよい。更に、右上から左下に向かって順に符号化及び復号が行われてもよいし、画面端から画面中央に向かって渦巻きを描くように符号化及び復号が行われてもよい。この場合、符号化順序によって参照できる隣接画素ブロックの位置が変わるので、適宜利用可能な位置に変更すればよい。
【０２６０】
上記第１〜第２実施形態では、４×４画素ブロック、８×８画素ブロック、１６×１６画素ブロックなどの予測対象ブロックサイズを例示して説明を行ったが、予測対象ブロックは均一なブロック形状でなくてもよい。例えば、予測対象ブロックサイズは、１６×８画素ブロック、８×１６画素ブロック、８×４画素ブロック、４×８画素ブロックなどであってもよい。また、１つのコーディングツリーブロック内で全てのブロックサイズを統一させる必要はなく、複数の異なるブロックサイズを混在させてもよい。１つのコーディングツリーブロック内で複数の異なるブロックサイズを混在させる場合、分割数の増加に伴って分割情報を符号化又は復号するための符号量も増加する。そこで、分割情報の符号量と局所復号画像または復号画像の品質との間のバランスを考慮して、ブロックサイズを選択することが望ましい。
【０２６１】
上記第１〜第２実施形態では、簡単化のために、輝度信号と色差信号における予測処理や選択範囲の導出方法とを区別せず、色信号成分に関して包括的な説明を記述した部分がある。しかしながら、予測処理や選択範囲の導出方法が輝度信号と色差信号との間で異なる場合には、同一または異なる予測方法が用いられてよい。輝度信号と色差信号との間で異なる予測方法が用いられるならば、色差信号に対して選択した予測方法を輝度信号と同様の方法で符号化又は復号できる。
【０２６２】
上記第１〜第２実施形態では、簡単化のために、輝度信号と色差信号における重み付き動き補償予測処理とを区別せず、色信号成分に関して包括的な説明を記述した。しかしながら、重み付き動き補償予測処理が輝度信号と色差信号との間で異なる場合には、同一または異なる重み付き動き補償予測処理が用いられてよい。輝度信号と色差信号との間で異なる重み付き動き補償予測処理が用いられるならば、色差信号に対して選択した重み付き動き補償予測処理を輝度信号と同様の方法で符号化又は復号できる。
【０２６３】
上記第１〜第２実施形態では、シンタクス構成に示す表の行間には、本実施形態で規定していないシンタクス要素が挿入されることも可能であるし、それ以外の条件分岐に関する記述が含まれていても構わない。或いは、シンタクステーブルを複数のテーブルに分割、統合することも可能である。また、必ずしも同一の用語を用いる必要は無く、利用する形態によって任意に変更しても構わない。
【０２６４】
以上説明したように、各実施形態及び各変形例は、重み付き動き補償予測を行う際にシンタクス要素の取りうる値の範囲を定義し、それに伴う値の範囲を予め定めたビット精度の範囲で設定し、実際に利用頻度の高い値に対して短い符号長を与える構成とすることで、シンタクス要素の冗長な情報を符号化する問題を解消しつつ、高効率な重み付き動き補償予測処理を実現する。故に、各実施形態及び各変形例によれば、符号化効率が向上し、ひいては主観画質も向上する。
【０２６５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０２６６】
例えば、上記各実施形態の処理を実現するプログラムを、コンピュータで読み取り可能な記憶媒体に格納して提供することも可能である。記憶媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなど、プログラムを記憶でき、かつ、コンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【０２６７】
また、上記各実施形態の処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【０２６８】
１００  符号化装置
１０１  減算部
１０２  直交変換部
１０３  量子化部
１０４  逆量子化部
１０５  逆直交変換部
１０６  加算部
１０７  予測画像生成部
１０８  インデックス設定部
１０９  動き評価部
１１０  符号化部
１１０Ａ  エントロピー符号化部
１１０Ｂ  インデックス再構成部
１１１  符号化制御部
２０１  複数フレーム動き補償部
２０２  メモリ
２０３  単方向動き補償部
２０４  予測パラメータ制御部
２０５  参照画像セレクタ
２０６  フレームメモリ
２０７  参照画像制御部
３０１  デフォルト動き補償部
３０２  重み付き動き補償部
３０３  ＷＰパラメータ制御部
３０４、３０５  ＷＰセレクタ
８００  復号装置
８０１  復号部
８０１Ａ  エントロピー復号部
８０１Ｂ  インデックス再構成部
８０２  逆量子化部
８０３  逆直交変換部
８０４  加算部
８０５  予測画像生成部
８０６  インデックス設定部
８０７  復号制御部
【図１】
2020074609.tif 000003
【図２Ａ】
2020074609.tif 000004
【図２Ｂ】
2020074609.tif 000005
【図３Ａ】
2020074609.tif 000006
【図３Ｂ】
2020074609.tif 000007
【図３Ｃ】
2020074609.tif 000008
【図３Ｄ】
2020074609.tif 000009
【図４】
2020074609.tif 000010
【図５】
2020074609.tif 000011
【図６】
2020074609.tif 000012
【図７】
2020074609.tif 000013
【図８】
2020074609.tif 000014
【図９】
2020074609.tif 000015
【図１０Ａ】
2020074609.tif 000016
【図１０Ｂ】
2020074609.tif 000017
【図１１】
2020074609.tif 000018
【図１２】
2020074609.tif 000019
【図１３Ａ】
2020074609.tif 000020
【図１３Ｂ】
2020074609.tif 000021
【図１４】
2020074609.tif 000022
【図１５】
2020074609.tif 000023
【図１６】
2020074609.tif 000024
【図１７】
2020074609.tif 000025
【図１８】
2020074609.tif 000026
【図１９】
2020074609.tif 000027
【図２０】
2020074609.tif 000028
【図２１】
2020074609.tif 000029
【図２２】
2020074609.tif 000030
【図２３】
2020074609.tif 000031
【図２４】
2020074609.tif 000032
【図２５】
2020074609.tif 000033
【図２６】
2020074609.tif 000034
【図２７】
2020074609.tif 000035
【図２８】
2020074609.tif 000036
【図２９】
2020074609.tif 000037
【図３０】
2020074609.tif 000038