(57)【要約】      （修正有）【課題】画像符号化及び復号化に適したブロック分割を行うことにより、符号化効率を向上させる技術を提供する。【解決手段】符号化ブロック単位でアフィン変換を行う動画像符号化装置であって、符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出部と、符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出部と、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出部と、を備える。アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する。【選択図】図４０
2020109964.tif 000002
【特許請求の範囲】
【請求項１】
符号化ブロック単位でアフィン変換を行う動画像符号化装置であって、
符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出部と、
符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出部と、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出部と、
を備え、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像符号化装置。
【請求項２】
符号化ブロック単位でアフィン変換を行う動画像符号化方法であって、
符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、
符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップと、
を有し、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像符号化方法。
【請求項３】
符号化ブロック単位でアフィン変換を行う、コンピュータ読み出し可能な非一時的記録媒体に格納された動画像符号化プログラムであって、
符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、
符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップとをコンピュータに実行させ、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像符号化プログラム。
【請求項４】
復号ブロック単位でアフィン変換を行う動画像復号装置であって、
復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出部と、
復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出部と、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出部と、
を備え、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像復号装置。
【請求項５】
復号ブロック単位でアフィン変換を行う動画像復号方法であって、
復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、
復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップと、
を有し、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像復号方法。
【請求項６】
復号ブロック単位でアフィン変換を行う、コンピュータ読み出し可能な非一時的記録媒体に格納された動画像復号プログラムであって、
復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、
復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、
アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップとをコンピュータに実行させ、
前記アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、
ことを特徴とする動画像復号プログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像をブロックに分割し、予測を行う画像符号化及び復号技術に関する。
【背景技術】
【０００２】
画像の符号化及び復号では、処理の対象となる画像を所定数の画素の集合であるブロックに分割し、ブロック単位で処理をする。適切なブロックに分割し、画面内予測（イントラ予測）、画面間予測（インター予測）を適切に設定することにより、符号化効率が向上する。
【０００３】
動画像の符号化・復号では、符号化・復号済みのピクチャから予測するインター予測により符号化効率を向上している。特許文献１には、インター予測の際に、アフィン変換を適用する技術が記載されている。動画像では、物体が拡大・縮小、回転といった変形を伴うことは珍しいことではなく、特許文献１の技術を適用することにより、効率的な符号化が可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１７２６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術は画像の変換を伴うものであるため、処理負荷が多大という課題がある。本発明は上記の課題に鑑み、低負荷で効率的な符号化技術を提供する。
【課題を解決するための手段】
【０００６】
後述の実施形態は、例えば、以下のような側面に関連し得る。
第1の側面は、符号化ブロック単位でアフィン変換を行う動画像符号化装置であって、符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出部と、符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出部と、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出部と、を備え、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、動画像符号化装置である。
【０００７】
第2の側面は、符号化ブロック単位でアフィン変換を行う動画像符号化方法であって、符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップと、を有し、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、動画像符号化方法である。
【０００８】
第3の側面は、符号化ブロック単位でアフィン変換を行う、コンピュータ読み出し可能な非一時的記録媒体に格納された動画像符号化プログラムであって、符号化対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、符号化対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップとをコンピュータに実行させ、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、動画像符号化プログラムである。
【０００９】
第4の側面は、復号ブロック単位でアフィン変換を行う動画像復号装置であって、復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出部と、復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出部と、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出部と、を備え、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、動画像復号装置である。
【００１０】
第5の側面は、復号ブロック単位でアフィン変換を行う動画像復号方法であって、復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップと、を有し、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、ことを特徴とする動画像復号方法である。
【００１１】
第6の側面は、復号ブロック単位でアフィン変換を行う、コンピュータ読み出し可能な非一時的記録媒体に格納された動画像復号プログラムであって、復号対象ブロックに空間的に近接するブロックの有するアフィンモデルを継承するアフィン継承マージ候補を導出するアフィン継承マージ候補導出ステップと、復号対象ブロックに空間的又は時間的に近接するブロックの有する複数の動き情報から、アフィン構築マージ候補を導出するアフィン構築マージ候補導出ステップと、アフィン制御点の動き情報が固定されたアフィン固定マージ候補を導出するアフィン固定マージ候補導出ステップとをコンピュータに実行させ、アフィン固定マージ候補は、各アフィン制御点の動きベクトルを（０，０）に固定する、動画像復号プログラムである。なお、これらの記載は例示である。本願及び本発明の範囲は、これらの記載によって限定もしくは制限されるものではない。また、本明細書において、「本発明」との記載は、本発明や本願の範囲を限定するものではなく、例示のために使用されるものであることが理解されるべきである。
【発明の効果】
【００１２】
本発明によれば、高効率な画像符号化・復号処理を低負荷で実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る画像符号化装置のブロック図である。
【図２】本発明の実施の形態に係る画像復号装置のブロック図である。
【図３】ツリーブロックを分割する動作を説明するためのフローチャートである。
【図４】入力された画像をツリーブロックに分割する様子を示す図である。
【図５】ｚ−スキャンを説明する図である。
【図６Ａ】ブロックの分割形状を示す図である。
【図６Ｂ】ブロックの分割形状を示す図である。
【図６Ｃ】ブロックの分割形状を示す図である。
【図６Ｄ】ブロックの分割形状を示す図である。
【図６Ｅ】ブロックの分割形状を示す図である。
【図７】ブロックを４分割する動作を説明するためのフローチャートである。
【図８】ブロックを２分割または３分割する動作を説明するためのフローチャートである。
【図９】ブロック分割の形状を表現するためのシンタックスである。
【図１０Ａ】イントラ予測を説明するための図である。
【図１０Ｂ】イントラ予測を説明するための図である。
【図１１】インター予測の参照ブロックを説明するための図である。
【図１２】符号化ブロック予測モードを表現するためのシンタックスである。
【図１３】インター予測に関するシンタックスエレメントとモードの対応を示す図である。
【図１４】制御点２点のアフィン変換動き補償を説明するための図である。
【図１５】制御点３点のアフィン変換動き補償を説明するための図である。
【図１６】図１のインター予測部１０２の詳細な構成のブロック図である。
【図１７】図１６の通常予測動きベクトルモード導出部３０１の詳細な構成のブロック図である。
【図１８】図１６の通常マージモード導出部３０２の詳細な構成のブロック図である。
【図１９】図１６の通常予測動きベクトルモード導出部３０１の通常予測動きベクトルモード導出処理を説明するためのフローチャートである。
【図２０】通常予測動きベクトルモード導出処理の処理手順を表すフローチャートである。
【図２１】通常マージモード導出処理の処理手順を説明するフローチャートである。
【図２２】図２のインター予測部２０３の詳細な構成のブロック図である。
【図２３】図２２の通常予測動きベクトルモード導出部４０１の詳細な構成のブロック図である。
【図２４】図２２の通常マージモード導出部４０２の詳細な構成のブロック図である。
【図２５】図２２の通常予測動きベクトルモード導出部４０１の通常予測動きベクトルモード導出処理を説明するためのフローチャートである。
【図２６】履歴予測動きベクトル候補リスト初期化・更新処理手順を説明する図である。
【図２７】履歴予測動きベクトル候補リスト初期化・更新処理手順における、同一要素確認処理手順のフローチャートである。
【図２８】履歴予測動きベクトル候補リスト初期化・更新処理手順における、要素シフト処理手順のフローチャートである。
【図２９】履歴予測動きベクトル候補導出処理手順を説明するフローチャートである。
【図３０】履歴マージ候補導出処理手順を説明するフローチャートである。
【図３１Ａ】履歴予測動きベクトル候補リスト更新処理の一例を説明するための図である。
【図３１Ｂ】履歴予測動きベクトル候補リスト更新処理の一例を説明するための図である。
【図３１Ｃ】履歴予測動きベクトル候補リスト更新処理の一例を説明するための図である。
【図３２】Ｌ０予測であってＬ０の参照ピクチャ（ＲｅｆＬ０Ｐｉｃ）が処理対象ピクチャ（ＣｕｒＰｉｃ）より前の時刻にある場合の動き補償予測を説明するための図である。
【図３３】Ｌ０予測であってＬ０予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合の動き補償予測を説明するための図である。
【図３４】双予測であってＬ０予測の参照ピクチャが処理対象ピクチャより前の時刻にあって、Ｌ１予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合の動き補償予測の予測方向を説明するための図である。
【図３５】双予測であってＬ０予測の参照ピクチャとＬ１予測の参照ピクチャが処理対象ピクチャより前の時刻にある場合の動き補償予測の予測方向を説明するための図である。
【図３６】双予測であってＬ０予測の参照ピクチャとＬ１予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合の動き補償予測の予測方向を説明するための図である。
【図３７】本発明の実施の形態の符号化復号装置のハードウェア構成の一例を説明するための図である。
【図３８】本願の符号化装置におけるサブブロック予測動きベクトルモード導出部３０３のブロック図である。
【図３９】本願の復号装置におけるサブブロック予測動きベクトルモード導出部４０３のブロック図である。
【図４０】本願の符号化装置におけるサブブロックマージモード導出部３０４のブロック図である。
【図４１】本願の復号装置におけるサブブロックマージモード導出部４０４のブロック図である。
【図４２】アフィン継承予測動きベクトル候補導出を説明する図である。
【図４３】アフィン構築予測動きベクトル候補導出を説明する図である。
【図４４】アフィン継承マージ候補導出を説明する図である。
【図４５】アフィン構築マージ候補導出を説明する図である。
【図４６】アフィン継承予測動きベクトル候補導出のフローチャートである。
【図４７】アフィン構築予測動きベクトル候補導出のフローチャートである。
【図４８】アフィン継承マージ候補導出のフローチャートである。
【図４９】アフィン構築マージ候補導出のフローチャートである。
【図５０】サブブロック時間マージ候補導出部３８１の動作を説明するためのフローチャートである。
【図５１】ブロックの隣接動き情報を導出する処理を説明するためのフローチャートである。
【図５２】テンポラル動きベクトルを導出する処理を説明するためのフローチャートである。
【図５３】インター予測情報の導出を説明するためのフローチャートである。
【図５４】サブブロック動き情報を導出する処理を説明するためのフローチャートである。
【図５５】ピクチャの時間的な前後関係を説明するための図である。
【図５６】通常予測動きベクトルモード導出部301における時間予測動きベクトル候補の導出処理を説明するためのフローチャートである。
【図５７】通常予測動きベクトルモード導出部301における時間予測動きベクトル候補の導出処理における、ColPicの導出処理を説明するためのフローチャートである。
【図５８】通常予測動きベクトルモード導出部301における時間予測動きベクトル候補の導出処理における、ColPicの符号化情報を導出する処理を説明するためのフローチャートである。
【図５９】インター予測情報の導出処理を説明するためのフローチャートである。
【図６０】符号化ブロックcolCbのインター予測モードが双予測（Pred_BI）のときの符号化ブロックのインター予測情報の導出処理手順を示すフローチャートである。
【図６１】動きベクトルのスケーリング演算処理手順を説明するためのフローチャートである。
【図６２】時間マージ候補の導出処理を説明するためのフローチャートである。
【図６３】アフィン構築マージ候補導出において、動き情報の比較対象を表す図である。
【発明を実施するための形態】
【００１４】
本実施の形態において使用する技術、及び技術用語を定義する。
【００１５】
＜ツリーブロック＞
実施の形態では、所定の大きさで符号化・復号処理対象画像を均等分割する。この単位をツリーブロックと定義する。図４では、ツリーブロックのサイズを１２８ｘ１２８画素としているが、ツリーブロックのサイズはこれに限定されるものではなく、任意のサイズを設定してよい。処理対象（符号化処理においては符号化対象、復号処理においては復号対象に対応する。）のツリーブロックは、ラスタスキャン順、すなわち左から右、上から下の順序で切り替わる。各ツリーブロックの内部は、さらに再帰的な分割が可能である。ツリーブロックを再帰的に分割した後の、符号化・復号の対象となるブロックを符号化ブロックと定義する。また、ツリーブロック、符号化ブロックを総称してブロックと定義する。適切なブロック分割を行うことにより効率的な符号化が可能となる。ツリーブロックのサイズは、符号化装置と復号装置で予め取り決めた固定値とすることもできるし、符号化装置が決定したツリーブロックのサイズを復号装置に伝送するような構成をとることもできる。ここでは、ツリーブロックの最大サイズを１２８ｘ１２８画素、ツリーブロックの最小サイズを１６ｘ１６画素とする。また、符号化ブロックの最大サイズを６４ｘ６４画素、符号化ブロックの最小サイズを４ｘ４画素とする。
【００１６】
＜予測モード＞
処理対象符号化ブロック単位で、処理対象画像の処理済み画像信号から予測を行うイントラ予測（MODE_INTRA）、及び処理済み画像の画像信号から予測を行うインター予測（MODE_INTER）を切り替える。
処理済み画像は、符号化処理においては符号化が完了した信号を復号した画像、画像信号、ツリーブロック、ブロック、符号化ブロック等に用いられ、復号処理においては復号が完了した画像、画像信号、ツリーブロック、ブロック、符号化ブロック等に用いられる。
このイントラ予測（MODE_INTRA）とインター予測（MODE_INTER）を識別するモードを予測モード（PredMode）と定義する。予測モード（PredMode）はイントラ予測（MODE_INTRA）、またはインター予測（MODE_INTER）を値として持つ。
【００１７】
＜インター予測＞
処理済み画像の画像信号から予測を行うインター予測では、複数の処理済み画像を参照ピクチャとして用いることができる。複数の参照ピクチャを管理するため、Ｌ０（参照リスト０）とＬ１（参照リスト１）の２種類の参照リストを定義し、それぞれ参照インデックスを用いて参照ピクチャを特定する。ＰスライスではＬ０予測（Pred_L0）が利用可能である。ＢスライスではＬ０予測（Pred_L0）、Ｌ１予測（Pred_L1）、双予測（Pred_BI）が利用可能である。Ｌ０予測（Pred_L0）はＬ０で管理されている参照ピクチャを参照するインター予測であり、Ｌ１予測（Pred_L1）はＬ１で管理されている参照ピクチャを参照するインター予測である。双予測（Pred_BI）はＬ０予測とＬ１予測が共に行われ、Ｌ０とＬ１のそれぞれで管理されている１つずつの参照ピクチャを参照するインター予測である。Ｌ０予測、Ｌ１予測、双予測を特定する情報を、インター予測モードと定義する。以降の処理において出力に添え字ＬＸが付いている定数、変数に関しては、Ｌ０、Ｌ１ごとに処理が行われることを前提とする。
【００１８】
＜予測動きベクトルモード＞
予測動きベクトルモードは、予測動きベクトルを特定するためのインデックス、差分動きベクトル、インター予測モード、参照インデックスを伝送し、処理対象ブロックのインター予測情報を決定するモードである。予測動きベクトルは、処理対象ブロックに隣接する処理済みブロック、または処理済み画像に属するブロックで処理対象ブロックと同一位置またはその付近（近傍）に位置するブロックから導出した予測動きベクトル候補と、予測動きベクトルを特定するためのインデックスから導出する。
【００１９】
＜マージモード＞
マージモードは、差分動きベクトル、参照インデックスを伝送せずに、処理対象ブロックに隣接する処理済みブロック、または処理済み画像に属するブロックで処理対象ブロックと同一位置またはその付近（近傍）に位置するブロックのインター予測情報から、処理対象ブロックのインター予測情報を導出するモードである。
【００２０】
処理対象ブロックに隣接する処理済みブロック、およびその処理済みブロックのインター予測情報を空間マージ候補と定義する。処理済み画像に属するブロックで処理対象ブロックと同一位置またはその付近（近傍）に位置するブロック、およびそのブロックのインター予測情報から導出されるインター予測情報を時間マージ候補と定義する。各マージ候補はマージ候補リストに登録され、マージインデックスにより、処理対象ブロックの予測で使用するマージ候補を特定する。
【００２１】
＜隣接ブロック＞
図１１は、予測動きベクトルモード、マージモードで、インター予測情報を導出するために参照する参照ブロックを説明する図である。Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｂ３は、処理対象ブロックに隣接する処理済みブロックである。Ｔ０は、処理済み画像に属するブロックで、処理対象画像における処理対象ブロックと同一位置またはその付近（近傍）に位置するブロックである。
【００２２】
Ａ１，Ａ２は、処理対象符号化ブロックの左側に位置し、処理対象符号化ブロックに隣接するブロックである。Ｂ１，Ｂ３は、処理対象符号化ブロックの上側に位置し、処理対象符号化ブロックに隣接するブロックである。Ａ０，Ｂ０，Ｂ２はそれぞれ、処理対象符号化ブロックの左下、右上、左上に位置するブロックである。
【００２３】
予測動きベクトルモード、マージモードにおいて隣接ブロックをどのように扱うかの詳細については後述する。
【００２４】
＜アフィン変換動き補償＞
アフィン変換動き補償は、符号化ブロックを所定単位のサブブロックに分割し、分割された各サブブロックに対して個別に動きベクトルを決定して動き補償を行うものである。各サブブロックの動きベクトルは、処理対象ブロックに隣接する処理済みブロック、または処理済み画像に属するブロックで処理対象ブロックと同一位置またはその付近（近傍）に位置するブロックのインター予測情報から導出する１つ以上の制御点に基づき導出する。本実施の形態では、サブブロックのサイズを４ｘ４画素とするが、サブブロックのサイズはこれに限定されるものではないし、画素単位で動きベクトルを導出してもよい。
【００２５】
図１４に、制御点が２つの場合のアフィン変換動き補償の例を示す。この場合、２つの制御点が水平方向成分、垂直方向成分の２つのパラメータを有する。このため、制御点が２つの場合のアフィン変換を、４パラメータアフィン変換と呼称する。図１４のＣＰ１、ＣＰ２が制御点である。
図１５に、制御点が３つの場合のアフィン変換動き補償の例を示す。この場合、３つの制御点が水平方向成分、垂直方向成分の２つのパラメータを有する。このため、制御点が３つの場合のアフィン変換を、６パラメータアフィン変換と呼称する。図１５のＣＰ１、ＣＰ２、ＣＰ３が制御点である。
【００２６】
アフィン変換動き補償は、予測動きベクトルモードおよびマージモードのいずれのモードにおいても利用可能である。予測動きベクトルモードでアフィン変換動き補償を適用するモードをサブブロック予測動きベクトルモードと定義し、マージモードでアフィン変換動き補償を適用するモードをサブブロックマージモードと定義する。
【００２７】
＜インター予測のシンタックス＞
図１２、図１３を用いて、インター予測に関するシンタックスを説明する。
図１２のmerge_flagは、処理対象符号化ブロックをマージモードとするか、予測動きベクトルモードとするかを示すフラグである。merge_affine_flagは、マージモードの処理対象符号化ブロックでサブブロックマージモードを適用するか否かを示すフラグである。inter_affine_flagは、予測動きベクトルモードの処理対象符号化ブロックでサブブロック予測動きベクトルモードを適用するか否かを示すフラグである。cu_affine_type_flagは、サブブロック予測動きベクトルモードにおいて、制御点の数を決定するためのフラグである。
図１３に各シンタックスエレメントの値と、それに対応する予測方法を示す。merge_flag=1,merge_affine_flag=0 は、通常マージモードに対応する。通常マージモードは、サブブロックマージでないマージモードである。merge_flag=1,merge_affine_flag=1は、サブブロックマージモードに対応する。merge_flag=0,inter_affine_flag=0は、通常予測動きベクトルモードに対応する。通常予測動きベクトルモードは、サブブロック予測動きベクトルモードでない予測動きベクトルマージである。merge_flag=0,inter_affine_flag=1は、サブブロック予測動きベクトルモードに対応する。merge_flag=0,inter_affine_flag=1の場合は、さらにcu_affine_type_flagを伝送し、制御点の数を決定する。
【００２８】
＜ＰＯＣ＞
ＰＯＣ（Picture Order Count）は符号化されるピクチャに関連付けられる変数であり、ピクチャの出力順序に応じた１ずつ増加する値が設定される。ＰＯＣの値によって、同じピクチャであるかを判別したり、出力順序でのピクチャ間の前後関係を判別したり、ピクチャ間の距離を導出したりすることができる。例えば、２つのピクチャのＰＯＣが同じ値を持つ場合、同一のピクチャであると判断できる。２つのピクチャのＰＯＣが違う値を持つ場合、ＰＯＣの値が小さいピクチャのほうが、先に出力されるピクチャであると判断でき、２つのピクチャのＰＯＣの差が時間軸方向でのピクチャ間距離を示す。
【００２９】
（第１の実施の形態）
本発明の第１の実施の形態に係る画像符号化装置１００及び画像復号装置２００について説明する。
【００３０】
図１は、第１の実施の形態に係る画像符号化装置１００のブロック図である。実施の形態の画像符号化装置１００は、ブロック分割部１０１、インター予測部１０２、イントラ予測部１０３、復号画像メモリ１０４、予測方法決定部１０５、残差生成部１０６、直交変換・量子化部１０７、ビット列符号化部１０８、逆量子化・逆直交変換部１０９、復号画像信号重畳部１１０、および符号化情報格納メモリ１１１を備える。
【００３１】
ブロック分割部１０１は、入力された画像を再帰的に分割して、符号化ブロックを生成する。ブロック分割部１０１は、分割対象となるブロックを水平方向と垂直方向にそれぞれ分割する４分割部と、分割対象となるブロックを水平方向または垂直方向のいずれかに分割する２−３分割部とを含む。ブロック分割部１０１は、生成した符号化ブロックを処理対象符号化ブロックとし、その処理対象符号化ブロックの画像信号を、インター予測部１０２、イントラ予測部１０３および残差生成部１０６に供給する。また、ブロック分割部１０１は、決定した再帰分割構造を示す情報をビット列符号化部１０８に供給する。ブロック分割部１０１の詳細な動作は後述する。
【００３２】
インター予測部１０２は、処理対象符号化ブロックのインター予測を行う。インター予測部１０２は、符号化情報格納メモリ１１１に格納されているインター予測情報と、復号画像メモリ１０４に格納されている復号済みの画像信号とから、複数のインター予測情報の候補を導出し、導出した複数の候補の中から適したインター予測モードを選択し、選択されたインター予測モード、及び選択されたインター予測モードに応じた予測画像信号を予測方法決定部１０５に供給する。インター予測部１０２の詳細な構成と動作は後述する。
【００３３】
イントラ予測部１０３は、処理対象符号化ブロックのイントラ予測を行う。イントラ予測部１０３は、復号画像メモリ１０４に格納されている復号済みの画像信号を参照画素として参照し、符号化情報格納メモリ１１１に格納されているイントラ予測モード等の符号化情報に基づくイントラ予測により予測画像信号を生成する。イントラ予測では、イントラ予測部１０３は、複数のイントラ予測モードの中から適したイントラ予測モードを選択し、選択されたイントラ予測モード、及び選択されたイントラ予測モードに応じた予測画像信号を予測方法決定部１０５に供給する。
図１０Ａ及び図１０Ｂにイントラ予測の例を示す。図１０Ａは、イントラ予測の予測方向とイントラ予測モード番号の対応を示したものである。例えば、イントラ予測モード５０は、垂直方向に参照画素をコピーすることによりイントラ予測画像を生成する。イントラ予測モード１は、ＤＣモードであり、処理対象ブロックのすべての画素値を参照画素の平均値とするモードである。イントラ予測モード０は、Ｐｌａｎａｒモードであり、垂直方向・水平方向の参照画素から２次元的なイントラ予測画像を作成するモードである。図１０Ｂは、イントラ予測モード４０の場合のイントラ予測画像を生成する例である。イントラ予測部１０３は、処理対象ブロックの各画素に対し、イントラ予測モードの示す方向の参照画素の値をコピーする。イントラ予測部１０３は、イントラ予測モードの参照画素が整数位置でない場合には、周辺の整数位置の参照画素値から補間により参照画素値を決定する。
【００３４】
復号画像メモリ１０４は、復号画像信号重畳部１１０で生成した復号画像を格納する。復号画像メモリ１０４は、格納している復号画像を、インター予測部１０２、イントラ予測部１０３に供給する。
【００３５】
予測方法決定部１０５は、イントラ予測とインター予測のそれぞれに対して、符号化情報及び残差の符号量、予測画像信号と処理対象画像信号との間の歪量等を用いて評価することにより、最適な予測モードを決定する。イントラ予測の場合は、予測方法決定部１０５は、イントラ予測モード等のイントラ予測情報を符号化情報としてビット列符号化部１０８に供給する。インター予測のマージモードの場合は、予測方法決定部１０５は、マージインデックス、サブブロックマージモードか否かを示す情報（サブブロックマージフラグ）等のインター予測情報を符号化情報としてビット列符号化部１０８に供給する。インター予測の予測動きベクトルモードの場合は、予測方法決定部１０５は、インター予測モード、予測動きベクトルインデックス、Ｌ０、Ｌ１の参照インデックス、差分動きベクトル、サブブロック予測動きベクトルモードか否かを示す情報（サブブロック予測動きベクトルフラグ）等のインター予測情報を符号化情報としてビット列符号化部１０８に供給する。さらに、予測方法決定部１０５は、決定した符号化情報を符号化情報格納メモリ１１１に供給する。予測方法決定部１０５は、残差生成部１０６及び予測画像信号を復号画像信号重畳部１１０に供給する。
【００３６】
残差生成部１０６は、処理対象の画像信号から予測画像信号を減ずることにより残差を生成し、直交変換・量子化部１０７に供給する。
【００３７】
直交変換・量子化部１０７は、残差に対して量子化パラメータに応じて直交変換及び量子化を行い直交変換・量子化された残差を生成し、生成した残差をビット列符号化部１０８と逆量子化・逆直交変換部１０９とに供給する。
【００３８】
ビット列符号化部１０８は、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報に加えて、符号化ブロック毎に予測方法決定部１０５によって決定された予測方法に応じた符号化情報を符号化する。具体的には、ビット列符号化部１０８は、符号化ブロック毎の予測モードPredModeを符号化する。予測モードがインター予測（MODE_INTER）の場合、ビット列符号化部１０８は、マージモードか否かを判別するフラグ、サブブロックマージフラグ、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、予測動きベクトルインデックス、差分動きベクトルに関する情報、サブブロック予測動きベクトルフラグ等の符号化情報（インター予測情報）を規定のシンタックス（ビット列の構文規則）に従って符号化し、第１のビット列を生成する。予測モードがイントラ予測（MODE_INTRA）の場合、イントラ予測モード等の符号化情報（イントラ予測情報）を規定のシンタックス（ビット列の構文規則）に従って符号化し、第１のビット列を生成する。また、ビット列符号化部１０８は、直交変換及び量子化された残差を規定のシンタックスに従ってエントロピー符号化して第２のビット列を生成する。ビット列符号化部１０８は、第１のビット列と第２のビット列を規定のシンタックスに従って多重化し、ビットストリームを出力する。
【００３９】
逆量子化・逆直交変換部１０９は、直交変換・量子化部１０７から供給された直交変換・量子化された残差を逆量子化及び逆直交変換して残差を算出し、算出した残差を復号画像信号重畳部１１０に供給する。
【００４０】
復号画像信号重畳部１１０は、予測方法決定部１０５による決定に応じた予測画像信号と逆量子化・逆直交変換部１０９で逆量子化及び逆直交変換された残差を重畳して復号画像を生成し、復号画像メモリ１０４に格納する。なお、復号画像信号重畳部１１０は、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施した後、復号画像メモリ１０４に格納してもよい。
【００４１】
符号化情報格納メモリ１１１は、予測方法決定部１０５で決定した、予測モード（インター予測またはイントラ予測）等の符号化情報を格納する。インター予測の場合は、符号化情報格納メモリ１１１が格納する符号化情報には、決定した動きベクトル、参照リストＬ０、Ｌ１の参照インデックス、履歴予測動きベクトル候補リスト等のインター予測情報が含まれる。またインター予測のマージモードの場合は、符号化情報格納メモリ１１１が格納する符号化情報には、上述の各情報に加え、マージインデックス、サブブロックマージモードか否かを示す情報（サブブロックマージフラグ）のインター予測情報が含まれる。またインター予測の予測動きベクトルモードの場合は、符号化情報格納メモリ１１１が格納する符号化情報には、上述の各情報に加え、インター予測モード、予測動きベクトルインデックス、差分動きベクトル、サブブロック予測動きベクトルモードか否かを示す情報（サブブロック予測動きベクトルフラグ）等のインター予測情報が含まれる。イントラ予測の場合は、符号化情報格納メモリ１１１が格納する符号化情報には、決定したイントラ予測モード等のイントラ予測情報が含まれる。
【００４２】
図２は、図１の画像符号化装置に対応した本発明の実施の形態に係る画像復号装置の構成を示すブロックである。実施の形態の画像復号装置は、ビット列復号部２０１、ブロック分割部２０２、インター予測部２０３、イントラ予測部２０４、符号化情報格納メモリ２０５、逆量子化・逆直交変換部２０６、復号画像信号重畳部２０７、および復号画像メモリ２０８を備える。
【００４３】
図２の画像復号装置の復号処理は、図１の画像符号化装置の内部に設けられている復号処理に対応するものであるから、図２の符号化情報格納メモリ２０５、逆量子化・逆直交変換部２０６、復号画像信号重畳部２０７、および復号画像メモリ２０８の各構成は、図１の画像符号化装置の符号化情報格納メモリ１１１、逆量子化・逆直交変換部１０９、復号画像信号重畳部１１０、および復号画像メモリ１０４の各構成とそれぞれ対応する機能を有する。
【００４４】
ビット列復号部２０１に供給されるビットストリームは、規定のシンタックスの規則に従って分離される。ビット列復号部２０１は、分離された第１のビット列を復号し、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報、及び、符号化ブロック単位の符号化情報を得る。具体的には、ビット列復号部２０１は、符号化ブロック単位でインター予測（MODE_INTER）かイントラ予測（MODE_INTRA）かを判別する予測モードPredModeを復号する。予測モードがインター予測（MODE_INTER）の場合、ビット列復号部２０１は、マージモードか否かを判別するフラグ、マージモードの場合はマージインデックス、サブブロックマージフラグ、予測動きベクトルモードである場合はインター予測モード、予測動きベクトルインデックス、差分動きベクトル、サブブロック予測動きベクトルフラグ等に関する符号化情報（インター予測情報）を規定のシンタックスに従って復号し、符号化情報（インター予測情報）をインター予測部２０３、およびブロック分割部２０２を介して符号化情報格納メモリ２０５に供給する。予測モードがイントラ予測（MODE_INTRA）の場合、イントラ予測モード等の符号化情報（イントラ予測情報）を規定のシンタックスに従って復号し、符号化情報（イントラ予測情報）をインター予測部２０３またはイントラ予測部２０４、およびブロック分割部２０２を介して符号化情報格納メモリ２０５に供給する。ビット列復号部２０１は、分離した第２のビット列を復号して直交変換・量子化された残差を算出し、直交変換・量子化された残差を逆量子化・逆直交変換部２０６に供給する。
【００４５】
インター予測部２０３は、処理対象の符号化ブロックの予測モードPredModeがインター予測（MODE_INTER）で予測動きベクトルモードである時に、符号化情報格納メモリ２０５に記憶されている既に復号された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を導出して、導出した複数の予測動きベクトルの候補を、後述する予測動きベクトル候補リストに登録する。インター予測部２０３は、予測動きベクトル候補リストに登録された複数の予測動きベクトルの候補の中から、ビット列復号部２０１で復号され供給される予測動きベクトルインデックスに応じた予測動きベクトルを選択し、ビット列復号部２０１で復号された差分動きベクトルと選択された予測動きベクトルから動きベクトルを算出し、算出した動きベクトルを他の符号化情報とともに符号化情報格納メモリ２０５に格納する。ここで供給・格納する符号化ブロックの符号化情報は、予測モードPredMode、Ｌ０予測、及びＬ１予測を利用するか否かを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、Ｌ０、Ｌ１の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、Ｌ０、Ｌ１の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等である。ここで、xP、yPはピクチャ内での符号化ブロックの左上の画素の位置を示すインデックスである。予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０予測を利用するか否かを示すフラグpredFlagL0は１、Ｌ１予測を利用するか否かを示すフラグpredFlagL1は０である。インター予測モードがＬ１予測（Pred_L1）の場合、Ｌ０予測を利用するか否かを示すフラグpredFlagL0は０、Ｌ１予測を利用するか否かを示すフラグpredFlagL1は１である。インター予測モードが双予測（Pred_BI）の場合、Ｌ０予測を利用するか否かを示すフラグpredFlagL0、Ｌ１予測を利用するか否かを示すフラグpredFlagL1は共に１である。さらに、処理対象の符号化ブロックの予測モードPredModeがインター予測（MODE_INTER）でマージモードの時に、マージ候補を導出する。符号化情報格納メモリ２０５に記憶されている既に復号された符号化ブロックの符号化情報を用いて、複数のマージの候補を導出して後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中からビット列復号部２０１で復号され供給されるマージインデックスに対応したマージ候補を選択し、選択されたマージ候補のＬ０予測、及びＬ１予測を利用するか否かを示すフラグpredFlagL0[xP][yP], predFlagL1[xP][yP]、Ｌ０、Ｌ１の参照インデックスrefIdxL0[xP][yP], refIdxL1[xP][yP]、Ｌ０、Ｌ１の動きベクトルmvL0[xP][yP], mvL1[xP][yP]等のインター予測情報を符号化情報格納メモリ２０５に格納する。ここで、xP、yPはピクチャ内での符号化ブロックの左上の画素の位置を示すインデックスである。インター予測部２０３の詳細な構成と動作は後述する。
【００４６】
イントラ予測部２０４は、処理対象の符号化ブロックの予測モードPredModeがイントラ予測（MODE_INTRA）の時に、イントラ予測を行う。ビット列復号部２０１で復号された符号化情報にはイントラ予測モードが含まれている。イントラ予測部２０４は、ビット列復号部２０１で復号された符号化情報に含まれるイントラ予測モードに応じて、復号画像メモリ２０８に格納されている復号済みの画像信号からイントラ予測により予測画像信号を生成し、生成した予測画像信号を復号画像信号重畳部２０７に供給する。イントラ予測部２０４は、画像符号化装置１００のイントラ予測部１０３に対応するものであるから、イントラ予測部１０３と同様の処理を行う。
【００４７】
逆量子化・逆直交変換部２０６は、ビット列復号部２０１で復号された直交変換・量子化された残差に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差を得る。
【００４８】
復号画像信号重畳部２０７は、インター予測部２０３でインター予測された予測画像信号、またはイントラ予測部２０４でイントラ予測された予測画像信号と、逆量子化・逆直交変換部２０６により逆直交変換・逆量子化された残差とを重畳することにより、復号画像信号を復号し、復号した復号画像信号を復号画像メモリ２０８に格納する。復号画像メモリ２０８に格納する際には、復号画像信号重畳部２０７は、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施した後、復号画像メモリ２０８に格納してもよい。
【００４９】
次に、画像符号化装置１００におけるブロック分割部１０１の動作について説明する。図３は、画像をツリーブロックに分割し、各ツリーブロックをさらに分割する動作を示すフローチャートである。まず、入力された画像を、所定サイズのツリーブロックに分割する（ステップＳ１００１）。各ツリーブロックについては、所定の順序、すなわちラスタスキャン順に走査し（ステップＳ１００２）、処理対象のツリーブロックの内部を分割する（ステップＳ１００３）。
【００５０】
図７は、ステップＳ１００３の分割処理の詳細動作を示すフローチャートである。まず、処理対象のブロックを４分割するか否かを判断する（ステップＳ１１０１）。
【００５１】
処理対象ブロックを４分割すると判断した場合は、処理対象ブロックを４分割する（ステップＳ１１０２）。処理対象ブロックを分割した各ブロックについて、Ｚスキャン順、すなわち左上、右上、左下、右下の順に走査する（ステップＳ１１０３）。図５は、Ｚスキャン順の例であり、図６Ａの６０１は、処理対象ブロックを４分割した例である。図６Ａの６０１の番号０〜３は処理の順番を示したものである。そしてステップＳ１１０１で分割した各ブロックについて、図７の分割処理を再帰的に実行する（ステップＳ１１０４）。
【００５２】
処理対象ブロックを４分割しないと判断した場合は、２−３分割を行う（ステップＳ１１０５）。
【００５３】
図８は、ステップＳ１１０５の２−３分割処理の詳細動作を示すフローチャートである。まず、処理対象のブロックを２−３分割するか否か、すなわち２分割または３分割の何れかを行うか否かを判断する（ステップＳ１２０１）。
【００５４】
処理対象ブロックを２−３分割すると判断しない場合、すなわち分割しないと判断した場合は、分割を終了する（ステップＳ１２１１）。つまり、再帰的な分割処理により分割されたブロックに対して、さらなる再帰的な分割処理はしない。
【００５５】
処理対象のブロックを２−３分割すると判断した場合は、さらに処理対象ブロックを２分割するか否か（ステップＳ１２０２）を判断する。
【００５６】
処理対象ブロックを２分割すると判断した場合は、処理対象ブロックを上下（垂直方向）に分割するか否かを判断し（ステップＳ１２０３）、その結果に基づき、処理対象ブロックを上下（垂直方向）に２分割する（ステップＳ１２０４）か、処理対象ブロックを左右（水平方向）に２分割する（ステップＳ１２０５）。ステップＳ１２０４の結果、処理対象ブロックは、図６Ｂの６０２に示す通り、上下（垂直方向）２分割に分割され、ステップＳ１２０５の結果、処理対象ブロックは、図６Ｄの６０４に示す通り、左右（水平方向）２分割に分割される。
【００５７】
ステップＳ１２０２において、処理対象のブロックを２分割すると判断しなかった場合、すなわち３分割すると判断した場合は、処理対象ブロックを上中下（垂直方向）に分割するか否かを判断し（ステップＳ１２０６）、その結果に基づき、処理対象ブロックを上中下（垂直方向）に３分割する（ステップＳ１２０７）か、処理対象ブロックを左中右（水平方向）に３分割する（ステップＳ１２０８）。ステップＳ１２０７の結果、処理対象ブロックは、図６Ｃの６０３に示す通り、上中下（垂直方向）３分割に分割され、ステップＳ１２０８の結果、処理対象ブロックは、図６Ｅの６０５に示す通り、左中右（水平方向）３分割に分割される。
【００５８】
ステップＳ１２０４、ステップＳ１２０５、ステップＳ１２０７、ステップＳ１２０８のいずれかを実行後、処理対象ブロックを分割した各ブロックについて、左から右、上から下の順に走査する（ステップＳ１２０９）。図６Ｂ〜Ｅの６０２から６０５の番号０〜２は処理の順番を示したものである。分割した各ブロックについて、図８の２−３分割処理を再帰的に実行する（ステップＳ１２１０）。
【００５９】
ここで説明した再帰的なブロック分割は、分割する回数、または、処理対象のブロックのサイズ等により、分割要否を制限してもよい。分割要否を制限する情報は、符号化装置と復号化装置の間で予め取り決めを行うことで、情報の伝達を行わない構成で実現してもよいし、符号化装置が分割要否を制限する情報を決定し、ビット列に記録することにより、復号化装置に伝達する構成で実現してもよい。
【００６０】
あるブロックを分割したとき、分割前のブロックを親ブロックと呼び、分割後の各ブロックを子ブロックと呼ぶ。
【００６１】
次に、画像復号装置２００におけるブロック分割部２０２の動作について説明する。ブロック分割部２０２は、画像符号化装置１００のブロック分割部１０１と同様の処理手順でツリーブロックを分割するものである。ただし、画像符号化装置１００のブロック分割部１０１では、画像認識による最適形状の推定や歪レート最適化等最適化手法を適用し、最適なブロック分割の形状を決定するのに対し、画像復号装置２００におけるブロック分割部２０２は、ビット列に記録されたブロック分割情報を復号することにより、ブロック分割形状を決定する点が異なる。
【００６２】
第１の実施の形態のブロック分割に関するシンタックス（ビット列の構文規則）を図９に示す。coding_quadtree()はブロックの４分割処理にかかるシンタックスを表す。multi_type_tree()はブロックの２分割または３分割処理にかかるシンタックスを表す。qt_splitはブロックを４分割するか否かを示すフラグである。ブロックを４分割する場合は、qt_split=1とし、４分割しない場合は、qt_split=0とする。４分割する場合(qt_split=1)、４分割した各ブロックについて、再帰的に４分割処理をする(coding_quadtree(0), coding_quadtree(1), coding_quadtree(2), coding_quadtree(3)、引数の０〜３は図６Ａの６０１の番号に対応する。)。４分割しない場合(qt_split=0)は、multi_type_tree()に従い、後続の分割を決定する。mtt_splitは、さらに分割をするか否かを示すフラグである。さらに分割をする場合(mtt_split=1)、垂直方向に分割するか水平方向に分割するかを示すフラグであるmtt_split_verticalと、２分割するか３分割するかを決定するフラグであるmtt_split_binaryを伝送する。mtt_split_vertical=1は、垂直方向に分割することを示し、mtt_split_vertical=0は、水平方向に分割することを示す。mtt_split_binary=1は、２分割することを示し、mtt_split_binary=0は３分割することを示す。２分割する場合(mtt_split_binary=1)、２分割した各ブロックについて、再帰的に分割処理をする(multi_type_tree(0), multi_type_tree(1)、引数の０〜１は図６Ｂ〜Ｄの６０２または６０４の番号に対応する。)。３分割する場合(mtt_split_binary=0)、３分割した各ブロックについて、再帰的に分割処理をする(multi_type_tree(0), multi_type_tree(1), multi_type_tree(2)、０〜２は図６Ｂの６０３または図６Ｅの６０５の番号に対応する。)。mtt_split=0となるまで、再帰的にmulti_type_treeを呼び出すことにより、階層的なブロック分割を行う。
【００６３】
＜インター予測＞
実施の形態に係るインター予測方法は、図１の画像符号化装置のインター予測部１０２および図２の画像復号装置のインター予測部２０３において実施される。
【００６４】
実施の形態によるインター予測方法について、図面を用いて説明する。インター予測方法は符号化ブロック単位で符号化及び復号の処理の何れでも実施される。
【００６５】
＜符号化側のインター予測部１０２の説明＞
図１６は図１の画像符号化装置のインター予測部１０２の詳細な構成を示す図である。通常予測動きベクトルモード導出部３０１は、複数の通常予測動きベクトル候補を導出して予測動きベクトルを選択し、選択した予測動きベクトルと、検出された動きベクトルとの差分動きベクトルを算出する。検出されたインター予測モード、参照インデックス、動きベクトル、算出された差分動きベクトルが通常予測動きベクトルモードのインター予測情報となる。このインター予測情報がインター予測モード判定部３０５に供給される。通常予測動きベクトルモード導出部３０１の詳細な構成と処理については後述する。
【００６６】
通常マージモード導出部３０２では複数の通常マージ候補を導出して通常マージ候補を選択し、通常マージモードのインター予測情報を得る。このインター予測情報がインター予測モード判定部３０５に供給される。通常マージモード導出部３０２の詳細な構成と処理については後述する。
【００６７】
サブブロック予測動きベクトルモード導出部３０３では複数のサブブロック予測動きベクトル候補を導出してサブブロック予測動きベクトルを選択し、選択したサブブロック予測動きベクトルと、検出した動きベクトルとの差分動きベクトルを算出する。検出されたインター予測モード、参照インデックス、動きベクトル、算出された差分動きベクトルがサブブロック予測動きベクトルモードのインター予測情報となる。このインター予測情報がインター予測モード判定部３０５に供給される。
【００６８】
サブブロックマージモード導出部３０４では複数のサブブロックマージ候補を導出してサブブロックマージ候補を選択し、サブブロックマージモードのインター予測情報を得る。このインター予測情報がインター予測モード判定部３０５に供給される。
【００６９】
インター予測モード判定部３０５では通常予測動きベクトルモード導出部３０１、通常マージモード導出部３０２、サブブロック予測動きベクトルモード導出部３０３、サブブロックマージモード導出部３０４から供給されるインター予測情報に基づいて、インター予測情報を判定する。インター予測モード判定部３０５から判定結果に応じたインター予測情報が動き補償予測部３０６に供給される。
【００７０】
動き補償予測部３０６では判定されたインター予測情報に基づいて、復号画像メモリ１０４に格納されている参照画像信号に対してインター予測を行う。動き補償予測部３０６の詳細な構成と処理については後述する。
【００７１】
＜復号側のインター予測部２０３の説明＞
図２２は図２の画像復号装置のインター予測部２０３の詳細な構成を示す図である。
【００７２】
通常予測動きベクトルモード導出部４０１は複数の通常予測動きベクトル候補を導出して予測動きベクトルを選択し、選択した予測動きベクトルと、復号した差分動きベクトルとの加算値を算出して動きベクトルとする。復号されたインター予測モード、参照インデックス、動きベクトルが通常予測動きベクトルモードのインター予測情報となる。このインター予測情報がスイッチ４０８を経由して動き補償予測部４０６に供給される。通常予測動きベクトルモード導出部４０１の詳細な構成と処理については後述する。
【００７３】
通常マージモード導出部４０２では複数の通常マージ候補を導出して通常マージ候補を選択し、通常マージモードのインター予測情報を得る。このインター予測情報がスイッチ４０８を経由して動き補償予測部４０６に供給される。通常マージモード導出部４０２の詳細な構成と処理については後述する。
【００７４】
サブブロック予測動きベクトルモード導出部４０３では複数のサブブロック予測動きベクトル候補を導出してサブブロック予測動きベクトルを選択し、選択したサブブロック予測動きベクトルと、復号した差分動きベクトルとの加算値を算出して動きベクトルとする。復号されたインター予測モード、参照インデックス、動きベクトルがサブブロック予測動きベクトルモードのインター予測情報となる。このインター予測情報がスイッチ４０８を経由して動き補償予測部４０６に供給される。
【００７５】
サブブロックマージモード導出部４０４では複数のサブブロックマージ候補を導出してサブブロックマージ候補を選択し、サブブロックマージモードのインター予測情報を得る。このインター予測情報がスイッチ４０８を経由して動き補償予測部４０６に供給される。
【００７６】
動き補償予測部４０６では判定されたインター予測情報に基づいて、復号画像メモリ２０８に格納されている参照画像信号に対してインター予測を行う。動き補償予測部４０６の詳細な構成と処理については符号化側の動き補償予測部３０６と同様である。
【００７７】
＜通常予測動きベクトルモード導出部（通常AMVP）＞
図１７の通常予測動きベクトルモード導出部３０１は、空間予測動きベクトル候補導出部３２１、時間予測動きベクトル候補導出部３２２、履歴予測動きベクトル候補導出部３２３、予測動きベクトル候補補充部３２５、通常動きベクトル検出部３２６、予測動きベクトル候補選択部３２７、動きベクトル減算部３２８を含む。
【００７８】
図２３の通常予測動きベクトルモード導出部４０１は、空間予測動きベクトル候補導出部４２１、時間予測動きベクトル候補導出部４２２、履歴予測動きベクトル候補導出部４２３、予測動きベクトル候補補充部４２５、予測動きベクトル候補選択部４２６、動きベクトル加算部４２７を含む。
【００７９】
符号化側の通常予測動きベクトルモード導出部３０１および復号側の通常予測動きベクトルモード導出部４０１の処理手順について、それぞれ図１９、図２５のフローチャートを用いて説明する。図１９は符号化側の通常動きベクトルモード導出部３０１による通常予測動きベクトルモード導出処理手順を示すフローチャートであり、図２５は復号側の通常動きベクトルモード導出部４０１による通常予測動きベクトルモード導出処理手順を示すフローチャートである。
【００８０】
＜通常予測動きベクトルモード導出部（通常AMVP）：符号化側の説明＞
図１９を参照して符号化側の通常予測動きベクトルモード導出処理手順を説明する。図１９の処理手順の説明において、図１９に示した通常という言葉を省略することがある。
【００８１】
まず、通常動きベクトル検出部３２６でインター予測モードおよび参照インデックス毎に通常動きベクトルを検出する（図１９のステップＳ１００）。
【００８２】
続いて、空間予測動きベクトル候補導出部３２１、時間予測動きベクトル候補導出部３２２、履歴予測動きベクトル候補導出部３２３、予測動きベクトル候補補充部３２５、予測動きベクトル候補選択部３２７、動きベクトル減算部３２８で、通常予測動きベクトルモードのインター予測で用いる動きベクトルの差分動きベクトルをＬ０、Ｌ１毎にそれぞれ算出する（図１９のステップＳ１０１〜Ｓ１０６）。具体的には処理対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトル候補リストmvpListL0を算出して、予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0の差分動きベクトルmvdL0を算出する。処理対象ブロックのインター予測モードがＬ１予測（Pred_L1）の場合、Ｌ１の予測動きベクトル候補リストmvpListL1を算出して、予測動きベクトルmvpL1を選択し、Ｌ１の動きベクトルmvL1の差分動きベクトルmvdL1を算出する。処理対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトル候補リストmvpListL0を算出して、Ｌ０の予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0の差分動きベクトルmvdL0を算出するとともに、Ｌ１の予測動きベクトル候補リストmvpListL1を算出して、Ｌ１の予測動きベクトルmvpL1を算出し、Ｌ１の動きベクトルmvL1の差分動きベクトルmvdL1をそれぞれ算出する。
【００８３】
Ｌ０、Ｌ１それぞれについて、差分動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。Ｌ０の差分動きベクトルを算出する処理ではＬＸのＸが０であり、Ｌ１の差分動きベクトルを算出する処理ではＬＸのＸが１である。また、ＬＸの差分動きベクトルを算出する処理中に、ＬＸではなく、もう一方のリストの情報を参照する場合、もう一方のリストをＬＹとして表す。
【００８４】
ＬＸの動きベクトルmvLXを使用する場合（図１９のステップＳ１０２：ＹＥＳ）、ＬＸの予測動きベクトルの候補を算出してＬＸの予測動きベクトル候補リストmvpListLXを構築する（図１９のステップＳ１０３）。通常予測動きベクトルモード導出部３０１の中の空間予測動きベクトル候補導出部３２１、時間予測動きベクトル候補導出部３２２、履歴予測動きベクトル候補導出部３２３、予測動きベクトル候補補充部３２５で複数の予測動きベクトルの候補を導出して予測動きベクトル候補リストmvpListLXを構築する。図１９のステップＳ１０３の詳細な処理手順については図２０のフローチャートを用いて後述する。
【００８５】
続いて、予測動きベクトル候補選択部３２７により、ＬＸの予測動きベクトル候補リストmvpListLXからＬＸの予測動きベクトルmvpLXを選択する（図１９のステップＳ１０４）。ここで、予測動きベクトル候補リストmvpListLXの中で、ある１つの要素（０から数えてｉ番目の要素）をmvpListLX[i]として表す。動きベクトルmvLXと予測動きベクトル候補リストmvpListLXの中に格納された各予測動きベクトルの候補mvpListLX[i]との差分であるそれぞれの差分動きベクトルを算出する。それら差分動きベクトルを符号化したときの符号量を予測動きベクトル候補リストmvpListLXの要素（予測動きベクトル候補）ごとに算出する。そして、予測動きベクトル候補リストmvpListLXに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補mvpListLX[i]を予測動きベクトルmvpLXとして選択し、そのインデックスiを取得する。予測動きベクトル候補リストmvpListLXの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、予測動きベクトル候補リストmvpListLXの中のインデックスiが小さい番号で表される予測動きベクトルの候補mvpListLX[i]を最適な予測動きベクトルmvpLXとして選択し、そのインデックスiを取得する。
【００８６】
続いて、動きベクトル減算部３２８で、ＬＸの動きベクトルmvLXから選択されたＬＸの予測動きベクトルmvpLXを減算し、
mvdLX = mvLX - mvpLX
としてＬＸの差分動きベクトルmvdLXを算出する（図１９のステップＳ１０５）。
【００８７】
＜通常予測動きベクトルモード導出部（通常AMVP）：復号側の説明＞
次に、図２５を参照して復号側の通常予測動きベクトルモード処理手順を説明する。復号側では、空間予測動きベクトル候補導出部４２１、時間予測動きベクトル候補導出部４２２、履歴予測動きベクトル候補導出部４２３、予測動きベクトル候補補充部４２５で、通常予測動きベクトルモードのインター予測で用いる動きベクトルをＬ０，Ｌ１毎にそれぞれ算出する（図２５のステップＳ２０１〜Ｓ２０６）。具体的には処理対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、処理対象ブロックのインター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトル候補リストmvpListL0を算出して、予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0を算出する。処理対象ブロックのインター予測モードがＬ１予測（Pred_L1）の場合、Ｌ１の予測動きベクトル候補リストmvpListL1を算出して、予測動きベクトルmvpL1を選択し、Ｌ１の動きベクトルmvL1を算出する。処理対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトル候補リストmvpListL0を算出して、Ｌ０の予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0を算出するとともに、Ｌ１の予測動きベクトル候補リストmvpListL1を算出して、Ｌ１の予測動きベクトルmvpL1を算出し、Ｌ１の動きベクトルmvL1をそれぞれ算出する。
【００８８】
符号化側と同様に、復号側でもＬ０、Ｌ１それぞれについて、動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。ＬＸは処理対象の符号化ブロックのインター予測に用いるインター予測モードを表す。Ｌ０の動きベクトルを算出する処理ではＸが０であり、Ｌ１の動きベクトルを算出する処理ではＸが１である。また、ＬＸの動きベクトルを算出する処理中に、算出対象のＬＸと同じ参照リストではなく、もう一方の参照リストの情報を参照する場合、もう一方の参照リストをＬＹとして表す。
【００８９】
ＬＸの動きベクトルmvLXを使用する場合（図２５のステップＳ２０２：ＹＥＳ）、ＬＸの予測動きベクトルの候補を算出してＬＸの予測動きベクトル候補リストmvpListLXを構築する（図２５のステップＳ２０３）。通常予測動きベクトルモード導出部４０１の中の空間予測動きベクトル候補導出部４２１、時間予測動きベクトル候補導出部４２２、履歴予測動きベクトル候補導出部４２３、予測動きベクトル候補補充部４２５で複数の予測動きベクトルの候補を算出し、予測動きベクトル候補リストmvpListLXを構築する。図２５のステップＳ２０３の詳細な処理手順については図２０のフローチャートを用いて後述する。
【００９０】
続いて、予測動きベクトル候補選択部４２６で予測動きベクトル候補リストmvpListLXからビット列復号部２０１にて復号されて供給される予測動きベクトルのインデックスmvpIdxLXに対応する予測動きベクトルの候補mvpListLX[mvpIdxLX]を選択された予測動きベクトルmvpLXとして取り出す（図２５のステップＳ２０４）。
【００９１】
続いて、動きベクトル加算部４２７でビット列復号部２０１にて復号されて供給されるＬＸの差分動きベクトルmvdLXとＬＸの予測動きベクトルmvpLXを加算し、
mvLX = mvpLX + mvdLX
としてＬＸの動きベクトルmvLXを算出する（図２５のステップＳ２０５）。
【００９２】
＜通常予測動きベクトルモード導出部（通常AMVP）：動きベクトルの予測方法＞
図２０は本発明の実施の形態に係る画像符号化装置の通常予測動きベクトルモード導出部３０１及び画像復号装置の通常予測動きベクトルモード導出部４０１とで共通する機能を有する通常予測動きベクトルモード導出処理の処理手順を表すフローチャートである。
【００９３】
通常予測動きベクトルモード導出部３０１及び通常予測動きベクトルモード導出部４０１では、予測動きベクトル候補リストmvpListLXを備えている。予測動きベクトル候補リストmvpListLXはリスト構造を成し、予測動きベクトル候補リスト内部の所在を示す予測動きベクトルインデックスと、インデックスに対応する予測動きベクトル候補とを要素として格納する記憶領域が設けられている。予測動きベクトルインデックスの数字は０から開始され、予測動きベクトル候補リストmvpListLXの記憶領域に、予測動きベクトル候補が格納される。本実施の形態においては、予測動きベクトル候補リストmvpListLXは少なくとも２個の予測動きベクトル候補（インター予測情報）を登録することができるものとする。さらに、予測動きベクトル候補リストmvpListLXに登録されている予測動きベクトル候補数を示す変数numCurrMvpCandに０を設定する。
【００９４】
空間予測動きベクトル候補導出部３２１及び４２１は、左側に隣接するブロックからの予測動きベクトルの候補を導出する。この処理では、左側に隣接するブロック（図１１のＡ０またはＡ１）のインター予測情報、すなわち予測動きベクトル候補が利用できるか否かを示すフラグ、及び動きベクトル、参照インデックス等を参照して予測動きベクトルmvLXA導出し、導出したmvLXAを予測動きベクトル候補リストmvpListLXに追加する（図２０のステップＳ３０１）。なお、Ｌ０予測のときＸは０、Ｌ１予測のときＸは１とする（以下同様）。続いて、空間予測動きベクトル候補導出部３２１及び４２１は、上側に隣接するブロックからの予測動きベクトルの候補を導出する。この処理では、上側に隣接するブロック（図１１のＢ０，Ｂ１，またはＢ２）のインター予測情報、すなわち予測動きベクトル候補が利用できるか否かを示すフラグ、及び動きベクトル、参照インデックス等を参照して予測動きベクトルmvLXBを導出し、それぞれ導出したmvLXAとmvLXBとが等しくなければ、mvLXBを予測動きベクトル候補リストmvpListLXに追加する（図２０のステップＳ３０２）。図２０のステップＳ３０１とＳ３０２の処理は参照する隣接ブロックの位置と数が異なる点以外は共通であり、符号化ブロックの予測動きベクトル候補が利用できるか否かを示すフラグavailableFlagLXN、及び動きベクトルmvLXN、参照インデックスrefIdxN（ＮはＡまたはＢを示す、以下同様）を導出する。
【００９５】
続いて、時間予測動きベクトル候補導出部３２２及び４２２は、現在の処理対象ピクチャとは時間が異なるピクチャにおけるブロックからの予測動きベクトルの候補を導出する。この処理では、異なる時間のピクチャの符号化ブロックの予測動きベクトル候補が利用できるか否かを示すフラグavailableFlagLXCol、及び動きベクトルmvLXCol、参照インデックスrefIdxCol、参照リストlistColを導出し、mvLXColを予測動きベクトル候補リストmvpListLXに追加する（図２０のステップＳ３０３）。
【００９６】
なお、シーケンス（ＳＰＳ）、ピクチャ（ＰＰＳ）、またはスライスの単位で時間予測動きベクトル候補導出部３２２及び４２２の処理を省略することができるものとする。
【００９７】
続いて、履歴予測動きベクトル候補導出部３２３及び４２３は履歴予測動きベクトル候補リストHmvpCandListに登録されている履歴予測動きベクトル候補を予測動きベクトル候補リストmvpListLXに追加する。（図２０のステップＳ３０４）。このステップＳ３０４の登録処理手順の詳細については図２９のフローチャートを用いて後述する。
【００９８】
続いて予測動きベクトル候補補充部３２５及び４２５は予測動きベクトル候補リストmvpListLXを満たすまで、（０，０）等の、所定の値の予測動きベクトル候補を追加する（図２０のＳ３０５）。
【００９９】
＜通常マージモード導出部（通常マージ）＞
図１８の通常マージモード導出部３０２は、空間マージ候補導出部３４１、時間マージ候補導出部３４２、平均マージ候補導出部３４４、履歴マージ候補導出部３４５、マージ候補補充部３４６、マージ候補選択部３４７を含む。
【０１００】
図２４の通常マージモード導出部４０２は、空間マージ候補導出部４４１、時間マージ候補導出部４４２、平均マージ候補導出部４４４、履歴マージ候補導出部４４５、マージ候補補充部４４６、マージ候補選択部４４７を含む。
【０１０１】
図２１は本発明の実施の形態に係る画像符号化装置の通常マージモード導出部３０２及び画像復号装置の通常マージモード導出部４０２とで共通する機能を有する通常マージモード導出処理の手順を説明するフローチャートである。
【０１０２】
以下、諸過程を順を追って説明する。なお、以下の説明においては特に断りのない限りスライスタイプslice_typeがＢスライスの場合について説明するが、Ｐスライスの場合にも適用できる。ただし、スライスタイプslice_typeがＰスライスの場合、インター予測モードとしてＬ０予測（Pred_L0）だけがあり、Ｌ１予測（Pred_L1）、双予測（Pred_BI）がないので、Ｌ１に纏わる処理を省略することができる。
【０１０３】
通常マージモード導出部３０２及び通常マージモード導出部４０２では、マージ候補リストmergeCandListを備えている。マージ候補リストmergeCandListはリスト構造を成し、マージ候補リスト内部の所在を示すマージインデックスと、インデックスに対応するマージ候補を要素として格納する記憶領域が設けられている。マージインデックスの数字は０から開始され、マージ候補リストmergeCandListの記憶領域に、マージ候補が格納される。以降の処理では、マージ候補リストmergeCandListに登録されたマージインデックスｉのマージ候補は、mergeCandList[i]で表すこととする。本実施の形態においては、マージ候補リストmergeCandListは少なくとも６個のマージ候補（インター予測情報）を登録することができるものとする。さらに、マージ候補リストmergeCandListに登録されているマージ候補数を示す変数numCurrMergeCandに０を設定する。
【０１０４】
空間マージ候補導出部３４１及び空間マージ候補導出部４４１では、画像符号化装置の符号化情報格納メモリ１１１または画像復号装置の符号化情報格納メモリ２０５に格納されている符号化情報から、処理対象ブロックに隣接するそれぞれのブロック（図１１のＢ１、Ａ１、Ｂ０、Ａ０、Ｂ２）からの空間マージ候補をＢ１、Ａ１、Ｂ０、Ａ０、Ｂ２の順に導出して、導出された空間マージ候補をマージ候補リストmergeCandListに登録する（図２１のステップＳ４０１）。ここで、Ｂ１、Ａ１、Ｂ０、Ａ０、Ｂ２または時間マージ候補Ｃｏｌのいずれかを示すＮを定義する。ブロックＮのインター予測情報が空間マージ候補として利用できるか否かを示すフラグavailableFlagN、空間マージ候補ＮのＬ０の参照インデックスrefIdxL0N及びＬ１の参照インデックスrefIdxL1N、Ｌ０予測が行われるか否かを示すＬ０予測フラグpredFlagL0NおよびＬ１予測が行われるか否かを示すＬ１予測フラグpredFlagL1N、Ｌ０の動きベクトルmvL0N、Ｌ１の動きベクトルmvL1Nを導出する。ただし、本実施の形態においては処理対象となる符号化ブロックに含まれるブロックのインター予測情報を参照せずに、マージ候補を導出するので、処理対象の符号化ブロックに含まれるブロックのインター予測情報を用いる空間マージ候補は導出しない。
【０１０５】
続いて、時間マージ候補導出部３４２及び時間マージ候補導出部４４２では、異なる時間のピクチャからの時間マージ候補を導出して、導出された時間マージ候補をマージ候補リストmergeCandListに登録する（図２１のステップＳ４０２）。時間マージ候補が利用できるか否かを示すフラグavailableFlagCol、時間マージ候補のＬ０予測が行われるか否かを示すＬ０予測フラグpredFlagL0ColおよびＬ１予測が行われるか否かを示すＬ１予測フラグpredFlagL1Col、及びＬ０の動きベクトルmvL0Col、Ｌ１の動きベクトルmvL1Colを導出する。
【０１０６】
なお、シーケンス（ＳＰＳ）、ピクチャ（ＰＰＳ）、またはスライスの単位で時間マージ候補導出部３４２及び時間マージ候補導出部４４２の処理を省略することができるものとする。
【０１０７】
続いて、履歴マージ候補導出部３４５及び履歴マージ候補導出部４４５では、履歴予測動きベクトル候補リストHmvpCandListに登録されている履歴予測動きベクトル候補をマージ候補リストmergeCandListに登録する（図２１のステップＳ４０３）。
なお、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが、最大マージ候補数MaxNumMergeCandより小さい場合、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが最大マージ候補数MaxNumMergeCandを上限として履歴マージ候補は導出されて、マージ候補リストmergeCandListに登録される。
【０１０８】
続いて、平均マージ候補導出部３４４及び平均マージ候補導出部４４４では、マージ候補リストmergeCandListから平均マージ候補を導出して、導出された平均マージ候補をマージ候補リストmergeCandListに追加する（図２１のステップＳ４０４）。
なお、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが、最大マージ候補数MaxNumMergeCandより小さい場合、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが最大マージ候補数MaxNumMergeCandを上限として平均マージ候補は導出されて、マージ候補リストmergeCandListに登録される。
ここで、平均マージ候補は、マージ候補リストmergeCandListに登録されている第１のマージ候補と第２のマージ候補の有する動きベクトルをＬ０予測及びＬ１予測毎に平均して得られる動きベクトルを有する新たなマージ候補である。
【０１０９】
続いて、マージ候補補充部３４６及びマージ候補補充部４４６では、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが、最大マージ候補数MaxNumMergeCandより小さい場合、マージ候補リストmergeCandList内に登録されているマージ候補数numCurrMergeCandが最大マージ候補数MaxNumMergeCandを上限として追加マージ候補を導出して、マージ候補リストmergeCandListに登録する（図２１のステップＳ４０５）。最大マージ候補数MaxNumMergeCandを上限として、Ｐスライスでは、動きベクトルが（０，０）の値を持つ予測モードがＬ０予測（Pred_L0）のマージ候補を追加する。Ｂスライスでは、動きベクトルが（０，０）の値を持つ予測モードが双予測（Pred_BI）のマージ候補を追加する。マージ候補を追加する際の参照インデックスは、すでに追加した参照インデックスと異なる。
【０１１０】
続いて、マージ候補選択部３４７及びマージ候補選択部４４７では、マージ候補リストmergeCandList内に登録されているマージ候補からマージ候補を選択する。符号化側のマージ候補選択部３４７では、符号量とひずみ量を算出することによりマージ候補を選択し、選択されたマージ候補を示すマージインデックス、マージ候補のインター予測情報を、インター予測モード判定部３０５を介して動き補償予測部３０６に供給する。一方、復号側のマージ候補選択部４４７では、復号されたマージインデックスに基づいて、マージ候補を選択し、選択されたマージ候補を動き補償予測部４０６に供給する。
【０１１１】
＜サブブロック予測動きベクトルモード導出＞
サブブロック予測動きベクトルモード導出について説明する。
図３８は、本願の符号化装置におけるサブブロック予測動きベクトルモード導出部３０３のブロック図である。
【０１１２】
まず、アフィン継承予測動きベクトル候補導出部３６１において、アフィン継承予測動きベクトル候補を導出する。アフィン継承予測動きベクトル候補導出の詳細については後述する。
【０１１３】
続いて、アフィン構築予測動きベクトル候補導出部３６２において、アフィン構築予測動きベクトル候補を導出する。アフィン構築予測動きベクトル候補導出の詳細については後述する。
【０１１４】
続いて、アフィン同一予測動きベクトル候補導出部３６３において、アフィン同一予測動きベクトル候補を導出する。アフィン同一予測動きベクトル候補導出の詳細については後述する。
【０１１５】
サブブロック動きベクトル検出部３６６は、サブブロック予測動きベクトルモードに適するサブブロック動きベクトルを検出し、検出したベクトルをサブブロック予測動きベクトル候補選択部３６７、差分演算部３６８に供給する。
【０１１６】
サブブロック予測動きベクトル候補選択部３６７は、アフィン継承予測動きベクトル候補導出部３６１、アフィン構築予測動きベクトル候補導出部３６２、アフィン同一予測動きベクトル候補導出部３６３において導出されたサブブロック予測動きベクトル候補の中から、サブブロック動きベクトル検出部３６６から供給された動きベクトルに基づいて、サブブロック予測動きベクトル候補を選択し、選択されたサブブロック予測動きベクトル候補に関する情報をインター予測モード判定部３０５、差分演算部３６８に供給する。
【０１１７】
差分演算部３６８は、サブブロック動きベクトル検出部３６６から供給された動きベクトルベクトルから、サブブロック予測動きベクトル候補選択部３６７で選択されたサブブロック予測動きベクトルを減算した差分予測動きベクトルを、インター予測モード判定部３０５に供給する。
【０１１８】
図３９は、本願の復号装置におけるサブブロック予測動きベクトルモード導出部４０３のブロック図である。
【０１１９】
まず、アフィン継承予測動きベクトル候補導出部４６１において、アフィン継承予測動きベクトル候補を導出する。アフィン継承予測動きベクトル候補導出部４６１の処理は本願の符号化装置におけるアフィン継承予測動きベクトル候補導出部３６１の処理と同一である。
【０１２０】
続いて、アフィン構築予測動きベクトル候補導出部４６２において、アフィン構築予測動きベクトル候補を導出する。アフィン構築予測動きベクトル候補導出部４６２の処理は本願の符号化装置におけるアフィン構築予測動きベクトル候補導出部３６２の処理と同一である。
【０１２１】
続いて、アフィン同一予測動きベクトル候補導出部４６３において、アフィン同一予測動きベクトル候補を導出する。アフィン同一予測動きベクトル候補導出部４６３の処理は本願の符号化装置におけるアフィン同一予測動きベクトル候補導出部３６３の処理と同一である。
【０１２２】
サブブロック予測動きベクトル候補選択部４６７は、アフィン継承予測動きベクトル候補導出部４６１、アフィン構築予測動きベクトル候補導出部４６２、アフィン同一予測動きベクトル候補導出部４６３において導出されたサブブロック予測動きベクトル候補の中から、符号化装置から伝送され復号される予測動きベクトルインデックスに基づいて、サブブロック予測動きベクトル候補を選択し、選択されたサブブロック予測動きベクトル候補に関する情報を動き補償予測部４０６、加算演算部４６７に供給する。
【０１２３】
加算演算部４６７は、サブブロック予測動きベクトル候補選択部４６６で選択されたサブブロック予測動きベクトルに、符号化装置から伝送され復号される差分動きベクトルを加算して生成した動きベクトルを動き補償予測部４０６に供給する。
【０１２４】
＜アフィン継承予測動きベクトル候補導出＞
アフィン継承予測動きベクトル候補導出部３６１について説明する。アフィン継承予測動きベクトル候補導出部４６１についてもアフィン継承予測動きベクトル候補導出部３６１と同様である。
【０１２５】
アフィン継承予測動きベクトル候補は、アフィン制御点の動きベクトル情報を継承する。図４２は、アフィン継承予測動きベクトル候補導出を説明する図である。
【０１２６】
アフィン継承予測動きベクトル候補は、空間的に隣接する符号化済・復号済ブロックの有するアフィン制御点の動きベクトルを探索することで得られる。
【０１２７】
具体的には、符号化・復号対象ブロックの左側に隣接するブロック（Ａ０，Ａ１）と、符号化・復号対象ブロックの上側に隣接するブロック（Ｂ０，Ｂ１，Ｂ２）から、それぞれ最大１つのアフィンモードを探索し、アフィン継承予測動きベクトルとする。
【０１２８】
図４６は、アフィン継承予測動きベクトル候補導出のフローチャートである。
まず、符号化・復号対象ブロックの左側に隣接するブロック（Ａ０，Ａ１）を左グループとし（Ｓ３１０１）、Ａ０を含むブロックがアフィン保障を用いたブロック（アフィンモード）であるか否かを判断する（Ｓ３１０２）。Ａ０がアフィンモードである場合（Ｓ３１０２：ＹＥＳ）、Ａ０が使用したアフィンモデルを取得し（Ｓ３１０３）、上側に隣接するブロックの処理に移る。Ａ０がアフィンモードでない場合（Ｓ３１０２：ＮＯ）、アフィン継承予測動きベクトル候補導出の対象をＡ０−＞Ａ１とし、Ａ１を含むブロックからアフィンモードの取得を試みる。
【０１２９】
続いて、符号化・復号対象ブロックの上側に隣接するブロック（Ｂ０，Ｂ１，Ｂ２）を上グループとし（Ｓ３１０４）、Ｂ０を含むブロックがアフィンモードであるか否かを判断する（Ｓ３１０５）。Ｂ０がアフィンモードである場合（Ｓ３１０５：ＹＥＳ）、Ｂ０が使用したアフィンモデルを取得し（Ｓ３１０６）、処理を終了する。Ｂ０がアフィンモードでない場合（Ｓ３１０５：ＮＯ）、アフィン継承予測動きベクトル候補導出の対象をＢ０−＞Ｂ１とし、Ｂ１を含むブロックからアフィンモードの取得を試みる。さらに、Ｂ１がアフィンモードでない場合（Ｓ３１０５：ＮＯ）、アフィン継承予測動きベクトル候補導出の対象をＢ１−＞Ｂ２とし、Ｂ２を含むブロックからアフィンモードの取得を試みる。
【０１３０】
このように、左側ブロックと上側ブロックにグループを分けて、左側ブロックについては、左下から左上のブロックの順にアフィンモデルを探索し、左側ブロックについては、右上から左上のブロックの順にアフィンモデルを探索することで、可能な限り異なる２つのアフィンモデルを取得することができ、アフィン予測動きベクトルのいずれかが差分動きベクトルの小さくなるアフィン予測動きベクトル候補を導出することができる。
【０１３１】
＜アフィン構築予測動きベクトル候補導出＞
アフィン構築予測動きベクトル候補導出部３６２について説明する。アフィン構築予測動きベクトル候補導出部４６２についてもアフィン構築予測動きベクトル候補導出部３６２と同様である。
【０１３２】
アフィン構築予測動きベクトル候補は、空間的に隣接するブロックの動き情報からアフィン制御点の動きベクトル情報を構築する。
【０１３３】
図４３は、アフィン構築予測動きベクトル候補導出を説明する図である。
アフィン構築予測動きベクトル候補は、空間的に隣接する符号化済・復号済ブロックの有する動きベクトルを組み合わせて新たなアフィンモデルを構築することで得られる。
具体的には、符号化・復号対象ブロックの左上側に隣接するブロック（Ｂ２，Ｂ３，Ａ２）から左上アフィン制御点ＣＰ０の動きベクトルを導出し、符号化・復号対象ブロックの右上側に隣接するブロック（Ｂ１，Ｂ０）から右上アフィン制御点ＣＰ１の動きベクトルを導出し、符号化・復号対象ブロックの左下側に隣接するブロック（Ａ１，Ａ０）から左下アフィン制御点ＣＰ２の動きベクトルを導出する。
【０１３４】
図４７は、アフィン構築予測動きベクトル候補導出のフローチャートである。
まず、左上制御点ＣＰ０、右上制御点ＣＰ１、左下アフィン制御点ＣＰ２を導出する（Ｓ３２０１）。左上アフィン制御点ＣＰ０は、符号化・復号対象ブロックと同一の参照画像をもつ参照ブロックを、Ｂ２、Ｂ３、Ａ２参照ブロックの優先順で探索することで算出される。右上アフィン制御点ＣＰ１は、符号化・復号対象ブロックと同一の参照画像をもつ参照ブロックを、Ｂ１、Ｂ０参照ブロックの優先順で探索することで算出される。左下アフィン制御点ＣＰ２は、符号化・復号対象ブロックと同一の参照画像をもつ参照ブロックを、Ａ１、Ａ０参照ブロックの優先順で探索することで算出される。
【０１３５】
アフィン構築予測動きベクトルとして、アフィン制御点３本モードを選択する場合（Ｓ３２０２：ＹＥＳ）、３つのアフィン制御点（ＣＰ０，ＣＰ１，ＣＰ２）がすべて導出されたか否かを判断する（Ｓ３２０３）。３つのアフィン制御点（ＣＰ０，ＣＰ１，ＣＰ２）がすべて導出された場合（Ｓ３２０３：ＹＥＳ）、３つのアフィン制御点（ＣＰ０，ＣＰ１，ＣＰ２）を用いたアフィンモデルをアフィン構築予測動きベクトルとする（Ｓ３２０４）。アフィン制御点３本モードを選択せず、アフィン制御点２本モードを選択した場合（Ｓ３２０２：ＮＯ）、２つのアフィン制御点（ＣＰ０，ＣＰ１）がすべて導出されたか否かを判断する（Ｓ３２０５）。２つのアフィン制御点（ＣＰ０，ＣＰ１）がすべて導出された場合（Ｓ３２０５：ＹＥＳ）、２つのアフィン制御点（ＣＰ０，ＣＰ１）を用いたアフィンモデルをアフィン構築予測動きベクトルとする（Ｓ３２０６）。
【０１３６】
＜アフィン同一予測動きベクトル候補導出＞
アフィン同一予測動きベクトル候補導出部３６３について説明する。アフィン同一予測動きベクトル候補導出部４６３についてもアフィン同一予測動きベクトル候補導出部３６３と同様である。
【０１３７】
アフィン同一予測動きベクトル候補は、各アフィン制御点で同一の動きベクトルを導出することで得られる。
【０１３８】
具体的には、アフィン構築予測動きベクトル候補導出部３６２・４６２と同様に、各アフィン制御点情報を導出し、すべてのアフィン制御点をＣＰ０〜ＣＰ２のいずれかで同一に設定することで得られる。また、通常予測動きベクトルモードと同様に導出した時間動きベクトルをすべてのアフィン制御点に設定することでも得られる。
【０１３９】
＜サブブロックマージモード導出＞
サブブロックマージモード導出について説明する。
【０１４０】
図４０は、本願の符号化装置におけるサブブロックマージモード導出部３０４のブロック図である。サブブロックマージモード導出部３０４は、サブブロックマージ候補リストsubblockMergeCandListを備えている。これは、通常マージモード導出部３０２におけるマージ候補リストmergeCandListと同様のものであり、サブブロック単位で異なる候補リストとなる点のみが異なる。
【０１４１】
まず、サブブロック時間マージ候補導出部３８１において、サブブロック時間マージ候補を導出する。サブブロック時間マージ候補導出の詳細については後述する。
【０１４２】
続いて、アフィン継承マージ候補導出部３８２において、アフィン継承マージ候補を導出する。アフィン継承マージ候補導出の詳細については後述する。
【０１４３】
続いて、アフィン構築マージ候補導出部３８３において、アフィン構築マージ候補を導出する。アフィン構築マージ候補導出の詳細については後述する。
【０１４４】
続いて、アフィン固定マージ候補導出部３８４において、アフィン固定マージ候補を導出する。アフィン固定マージ候補導出の詳細については後述する。
【０１４５】
サブブロックマージ候補選択部３８６は、サブブロック時間マージ候補導出部３８１、アフィン継承マージ候補導出部３８２、アフィン構築マージ候補導出部３８３、アフィン固定マージ候補導出部３８４において導出されたサブブロックマージ候補の中から、サブブロックマージ候補を選択し、選択されたサブブロックマージ候補に関する情報をインター予測モード判定部３０５に供給する。
【０１４６】
図４１は、本願の復号装置におけるサブブロックマージモード導出部４０４のブロック図である。サブブロックマージモード導出部４０４は、サブブロックマージ候補リストsubblockMergeCandListを備えている。これは、サブブロックマージモード導出部３０４と同じものである。
【０１４７】
まず、サブブロック時間マージ候補導出部４８１において、サブブロック時間マージ候補を導出する。サブブロック時間マージ候補導出部４８１の処理はサブブロック時間マージ候補導出部３８１の処理と同一である。
【０１４８】
続いて、アフィン継承マージ候補導出部４８２において、アフィン継承マージ候補を導出する。アフィン継承マージ候補導出部４８２の処理はアフィン継承マージ候補導出部３８２の処理と同一である。
【０１４９】
続いて、アフィン構築マージ候補導出部４８３において、アフィン構築マージ候補を導出する。アフィン構築マージ候補導出部４８３の処理はアフィン構築マージ候補導出部３８３の処理と同一である。
【０１５０】
続いて、アフィン固定マージ候補導出部４８５において、アフィン固定マージ候補を導出する。アフィン固定マージ候補導出部４８５の処理はアフィン固定マージ候補導出部４８５の処理と同一である。
【０１５１】
サブブロックマージ候補選択部４８６は、サブブロック時間マージ候補導出部４８１、アフィン継承マージ候補導出部４８２、アフィン構築マージ候補導出部４８３、アフィン固定マージ候補導出部４８４において導出されたサブブロックマージ候補の中から、符号化装置から伝送され復号されるインデックスに基づいて、サブブロックマージ候補を選択し、選択されたサブブロックマージ候補に関する情報を動き補償予測部４０６に供給する。
【０１５２】
＜サブブロック時間マージ候補導出＞
サブブロック時間マージ候補導出部３８１の動作については後述する。
【０１５３】
＜アフィン継承マージ候補導出＞
アフィン継承マージ候補導出部３８２について説明する。アフィン継承マージ候補導出部４８２についてもアフィン継承マージ候補導出部３８２と同様である。
【０１５４】
アフィン継承マージ候補は、空間的に隣接するブロックの有するアフィンモデルからアフィン制御点のアフィンモデルを継承する。アフィンモデルは、空間的に隣接するブロックの大きさとアフィン制御点の動き情報によって決定される。
【０１５５】
図４４は、アフィン継承マージ候補導出を説明する図である。アフィンマージ継承マージモード候補の導出は、アフィン継承予測動きベクトルの導出と同様に、空間的に隣接する符号化済・復号済ブロックの有するアフィン制御点の動きベクトルを探索することで得られる。
【０１５６】
具体的には、符号化・復号対象ブロックの左側に隣接するブロック（Ａ０，Ａ１）と、符号化・復号対象ブロックの上側に隣接するブロック（Ｂ０，Ｂ１，Ｂ２）から、それぞれ最大１つのアフィンモードを探索し、アフィンマージモードに使用する。
【０１５７】
図４８は、アフィン継承マージ候補導出のフローチャートである。
まず、符号化・復号対象ブロックの左側に隣接するブロック（Ａ０，Ａ１）を左グループとし（Ｓ３３０１）、Ａ０を含むブロックがアフィンモードであるか否かを判断する（Ｓ３３０２）。Ａ０がアフィンモードである場合（Ｓ３１０２：ＹＥＳ）、Ａ０が使用したアフィンモデルを取得し（Ｓ３３０３）、上側に隣接するブロックの処理に移る。Ａ０がアフィンモードでない場合（Ｓ３３０２：ＮＯ）、アフィン継承マージ候補導出の対象をＡ０−＞Ａ１とし、Ａ１を含むブロックからアフィンモードの取得を試みる。
【０１５８】
続いて、符号化・復号対象ブロックの上側に隣接するブロック（Ｂ０，Ｂ１，Ｂ２）を上グループとし（Ｓ３３０４）、Ｂ０を含むブロックがアフィンモードであるか否かを判断する（Ｓ３３０５）。Ｂ０がアフィンモードである場合（Ｓ３３０５：ＹＥＳ）、Ｂ０が使用したアフィンモデルを取得し（Ｓ３３０６）、処理を終了する。Ｂ０がアフィンモードでない場合（Ｓ３３０５：ＮＯ）、アフィン継承マージ候補導出の対象をＢ０−＞Ｂ１とし、Ｂ１を含むブロックからアフィンモードの取得を試みる。さらに、Ｂ１がアフィンモードでない場合（Ｓ３３０５：ＮＯ）、アフィン継承マージ候補導出の対象をＢ１−＞Ｂ２とし、Ｂ２を含むブロックからアフィンモードの取得を試みる。
【０１５９】
＜アフィン構築マージ候補導出＞
アフィン構築マージ候補導出部３８３について説明する。アフィン構築マージ候補導出部４８３についてもアフィン構築マージ候補導出部３８３と同様である。
【０１６０】
図４５は、アフィン構築マージ候補導出を説明する図である。アフィン構築マージ候補は、空間的に隣接するブロックの有する動き情報及び時間符号化ブロックからアフィン制御点のアフィンモデルを構築する。
【０１６１】
具体的には、符号化・復号対象ブロックの左上側に隣接するブロック（Ｂ２，Ｂ３，Ａ２）から左上アフィン制御点ＣＰ０の動きベクトルを導出し、符号化・復号対象ブロックの右上側に隣接するブロック（Ｂ１，Ｂ０）から右上アフィン制御点ＣＰ１の動きベクトルを導出し、符号化・復号対象ブロックの左下側に隣接するブロック（Ａ１，Ａ０）から左下アフィン制御点ＣＰ２の動きベクトルを導出し、符号化・復号対象ブロックの右下側に隣接する時間符号化ブロック（Ｔ０）から右下アフィン制御点ＣＰ３の動きベクトルを導出する。
【０１６２】
図４９は、アフィン構築マージ候補導出のフローチャートである。
まず、左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１、左下アフィン制御点ＣＰ２、右下アフィン制御点ＣＰ３を導出する（Ｓ３４０１）。左上アフィン制御点ＣＰ０は、動き情報を有するブロックを、Ｂ２、Ｂ３、Ａ２ブロックの優先順で探索することで算出される。右上アフィン制御点ＣＰ１は、動き情報を有するブロックを、Ｂ１、Ｂ０ブロックの優先順で探索することで算出される。左下アフィン制御点ＣＰ２は、動き情報を有するブロックを、Ａ１、Ａ０ブロックの優先順で探索することで算出される。右下アフィン制御点ＣＰ３は、時間ブロックの動き情報を探索することで算出される。
【０１６３】
続いて、導出された左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１、左下アフィン制御点ＣＰ２により３本アフィン制御点によるアフィンモデルを構築可能であるか否かを判断し（Ｓ３４０２）、構築可能である場合（Ｓ３４０２：ＹＥＳ）、左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１、左下アフィン制御点ＣＰ２による３本アフィン制御点アフィンモデルをアフィンマージ候補とする（Ｓ３４０３）。
【０１６４】
続いて、導出された左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１、右下アフィン制御点ＣＰ３により３本アフィン制御点によるアフィンモデルを構築可能であるか否かを判断し（Ｓ３４０４）、構築可能である場合（Ｓ３４０４：ＹＥＳ）、左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１、右下アフィン制御点ＣＰ３による３本アフィン制御点アフィンモデルをアフィンマージ候補とする（Ｓ３４０５）。
【０１６５】
続いて、導出された左上アフィン制御点ＣＰ０、左下アフィン制御点ＣＰ２、右下アフィン制御点ＣＰ３により３本アフィン制御点によるアフィンモデルを構築可能であるか否かを判断し（Ｓ３４０６）、構築可能である場合（Ｓ３４０６：ＹＥＳ）、左上アフィン制御点ＣＰ０、左下アフィン制御点ＣＰ２、右下アフィン制御点ＣＰ３による３本アフィン制御点アフィンモデルをアフィンマージ候補とする（Ｓ３４０７）。
【０１６６】
続いて、導出された左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１により２本アフィン制御点によるアフィンモデルを構築可能であるか否かを判断し（Ｓ３４０８）、構築可能である場合（Ｓ３４０８：ＹＥＳ）、左上アフィン制御点ＣＰ０、右上アフィン制御点ＣＰ１による２本アフィン制御点アフィンモデルをアフィンマージ候補とする（Ｓ３４０９）。
【０１６７】
続いて、導出された左上アフィン制御点ＣＰ０、左下アフィン制御点ＣＰ２により２本アフィン制御点によるアフィンモデルを構築可能であるか否かを判断し（Ｓ３４１０）、構築可能である場合（Ｓ３４１０：ＹＥＳ）、左上アフィン制御点ＣＰ０、左下アフィン制御点ＣＰ２による２本アフィン制御点アフィンモデルをアフィンマージ候補とする（Ｓ３４１１）。
【０１６８】
ここで、アフィンモデルを構築あるか否かは、下記の条件で判断する。
１．すべてのアフィン制御点の参照画像が同一である。（アフィン変換可能）
２．少なくとも１つのアフィン制御点で異なる動きベクトルをもつ。（平行移動で表現できない）
【０１６９】
このように、実施の形態１では、すべてのアフィン構築マージ候補に対して左上アフィン制御点ＣＰ０を含める。左上アフィン制御点ＣＰ０は、画像に対して左から右、上から下のラスタスキャン順序で処理する場合、符号化済・復号済ブロックが存在する可能性が最も高く、即ち、動き情報が存在する可能性が最も高い。
【０１７０】
左上アフィン制御点ＣＰ０を用いて、アフィン構築マージ候補を導出することで、アフィン制御点を組み合わせる際の参照画像が同一であるか否かの判定の処理量が削減される。また、右上アフィン制御点ＣＰ１，左下アフィン制御点ＣＰ２，右下アフィン制御点ＣＰ３のアフィン制御点の導出（Ｓ３４０１）において、左上アフィン制御点ＣＰ０と同一の参照画像を優先して探索することも可能になる。その場合、参照画像が同一となるアフィン構築マージ候補が導出され、参照画像が同一であり有効なアフィン構築マージ候補を導出でき、符号化効率の高いアフィンマージ候補を導出できる。
【０１７１】
ここで、左上アフィン制御点ＣＰ０を基準とした参照画像の判定についてさらに詳しく説明する。
【０１７２】
図６２は、アフィン構築マージ候補導出において、導出された各アフィン制御点を組み合わせることでアフィン構築マージ候補を導出する際の、動き情報の比較対象を表す図である。
【０１７３】
図６２（Ａ）は、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１と左下アフィン制御点ＣＰ２により３本アフィン制御点アフィンモデルを構築する場合の図である。この場合、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１の動き情報が比較され、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１の参照画像が同一であるか、及び、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１の動きベクトルが異なるかが比較される。同様に、左上アフィン制御点ＣＰ０と左下アフィン制御点ＣＰ２の動き情報が比較される。
【０１７４】
図６２（Ｂ）は、左上アフィン制御点ＣＰ０と左下アフィン制御点ＣＰ２と右下アフィン制御点ＣＰ３により３本アフィン制御点アフィンモデルを構築する場合の図である。この場合、左上アフィン制御点ＣＰ０と左下アフィン制御点ＣＰ２の動き情報が比較され、左上アフィン制御点ＣＰ０と右下アフィン制御点ＣＰ３の動き情報が比較される。
【０１７５】
図６２（Ｃ）は、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１と右下アフィン制御点ＣＰ３により３本アフィン制御点アフィンモデルを構築する場合の図である。この場合、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１の動き情報が比較され、左上アフィン制御点ＣＰ０と右下アフィン制御点ＣＰ３の動き情報が比較される。
【０１７６】
図６２（Ｄ）は、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１により２本アフィン制御点アフィンモデルを構築する場合の図である。この場合、左上アフィン制御点ＣＰ０と右上アフィン制御点ＣＰ１の動き情報が比較される。
【０１７７】
図６２（Ｅ）は、左上アフィン制御点ＣＰ０と左下アフィン制御点ＣＰ２により２本アフィン制御点アフィンモデルを構築する場合の図である。この場合、左上アフィン制御点ＣＰ０と左下アフィン制御点ＣＰ２の動き情報が比較される。
【０１７８】
このようにすべてのアフィン構築マージ候補導出の組み合わせにおいて、左上アフィン制御点ＣＰ０と各アフィン制御点ＣＰｘ（ｘ＝１，２，３）の動き情報の比較が行われ、参照画像が同一でありアフィン変換が可能であるか否かが判断される。
【０１７９】
＜アフィン固定マージ候補導出＞
アフィン固定マージ候補導出部３８５について説明する。アフィン固定マージ候補導出部４８５についてもアフィン固定マージ候補導出部３８５と同様である。アフィン固定マージ候補は、固定された動き情報でアフィン制御点の動き情報を固定する。具体的には、各アフィン制御点の動きベクトルを（０，０）に固定する。
【０１８０】
＜時間予測動きベクトル＞
時間予測動きベクトルの説明に先行して、ピクチャの時間的な前後関係について説明する。図５５(a)は、符号化対象の符号化ブロックと、符号化対象ピクチャとは時間的に異なる符号化済みのピクチャの関係を示す。符号化対象ピクチャにおいて、符号化に参照する特定の符号化済みのピクチャをColPicと定義する。ColPicはシンタックスにより特定される。
【０１８１】
また、図５５(b)は、ColPicにおいて、符号化対象の符号化ブロックと同一位置、およびその近傍に存在する、符号化済みの符号化ブロックを示す。これらの符号化ブロックＴ０およびＴ１は、符号化対象ピクチャと時間的に異なるピクチャにおける、ほぼ同一位置の符号化ブロックである。
【０１８２】
上記したピクチャの時間的な前後関係の説明は、符号化時のものであるが、復号時も同様となる。つまり、復号時は、上記の説明における符号化を復号と置き換えて、同様に説明される。
【０１８３】
図１７の通常予測動きベクトルモード導出部301における時間予測動きベクトル候補導出部３２２の動作について、図５６を参照して説明する。
【０１８４】
まず、ColPicを導出する（ステップＳ４２０１）。ColPicの導出について、図５７を参照して説明する。
【０１８５】
スライスタイプslice_typeがＢスライスで、フラグcollocated_from_l0_flagが０の場合（ステップＳ４２１１：ＹＥＳ、ステップＳ４２１２：ＹＥＳ）、RefPicList1[0]、すなわち参照リストＬ１の参照インデックスが０のピクチャが異なる時間のピクチャcolPicとなる（ステップＳ4213）。そうでない場合、すなわちスライスタイプslice_typeがＢスライスで前述のフラグcollocated_from_l0_flagが１の場合（ステップＳ４２１１：ＹＥＳ、ステップＳ４２１２：ＮＯ）、またはスライスタイプslice_typeがＰスライスの場合（ステップＳ４２１１：ＮＯ、ステップＳ４２１４：ＹＥＳ）、RefPicList0[0]、すなわち参照リストＬ０の参照インデックスが０のピクチャが異なる時間のピクチャcolPicとなる（ステップＳ４２１５）。slice_typeがＰスライスでない場合（ステップＳ４２１４:ＮＯ）、処理を終了する。
【０１８６】
再び、図５６を参照する。ColPicを導出したら、符号化ブロックcolCbを導出し、符号化情報を取得する（ステップＳ４２０２）。この処理について、図５８を参照して説明する。
【０１８７】
まず、異なる時間のピクチャcolPic内で処理対象の符号化ブロックと同一位置の右下（外側）に位置する符号化ブロックを異なる時間の符号化ブロックcolCbとする（ステップＳ４２２１）。この符号化ブロックは図４９の符号化ブロックＴ０に相当する。
【０１８８】
次に、異なる時間の符号化ブロックcolCbの符号化情報を取得する（ステップＳ４２２２）。異なる時間の符号化ブロックcolCbのPredModeが利用できないか、異なる時間の符号化ブロックcolCbの予測モードPredModeがイントラ予測（MODE_INTRA）である場合（ステップＳ４２２３:ＮＯ、ステップＳ４２２４:ＹＥＳ）、異なる時間のピクチャcolPic内で処理対象の符号化ブロックと同一位置の中央右下に位置する符号化ブロックを異なる時間の符号化ブロックcolCbとする（ステップＳ４２２５）。この符号化ブロックは図５５の符号化ブロックＴ１に相当する。
【０１８９】
再び、図５６を参照する。次に、参照リストごとに、インター予測情報を導出する（Ｓ４２０３,Ｓ４２０４）。ここでは、符号化ブロックcolCbについて、参照リストごとの動きベクトルmvLXColと符号化情報が有効か否かを示すフラグavailableFlagLXColを導出する。LXは参照リストを示し、参照リスト０の導出ではLXはL0となり、参照リスト1の導出ではLXはL1となる。インター予測情報の導出について、図５９を参照して説明する。
【０１９０】
異なる時間の符号化ブロックcolCbが利用できない場合（Ｓ４２３１Ｓ４２３１:ＮＯ）、または予測モードPredModeがイントラ予測（MODE_INTRA）の場合（Ｓ４２３２:ＮＯ）、フラグavailableFlagLXColとフラグpredFlagLXColを共に０とし（ステップＳ４２３３）、動きベクトルmvLXColを（０，０）として（Ｓ４２３４）、処理を終了する。
【０１９１】
符号化ブロックcolCbが利用でき（Ｓ４２３１：ＹＥＳ）、予測モードPredModeがイントラ予測（MODE_INTRA）でない場合（Ｓ４２３２:ＹＥＳ）、以下の手順でmvCol、refIdxColおよびavailableFlagColを算出する。
【０１９２】
符号化ブロックcolCbのＬ０予測が利用されているかどうかを示すフラグPredFlagL0[xPCol][yPCol]が０の場合（Ｓ４２３５：ＹＥＳ）、符号化ブロックcolCbの予測モードはPred_L1であるので、動きベクトルmvColが符号化ブロックcolCbのＬ１の動きベクトルであるMvL1[xPCol][yPCol]と同じ値に設定され（Ｓ４２３６）、参照インデックスrefIdxColがＬ１の参照インデックスRefIdxL1[xPCol][yPCol]と同じ値に設定され（Ｓ４２３７）、リストListColがＬ１に設定される（Ｓ４２３８）。ここで、xPCol、yPColは異なる時間のピクチャcolPic内での符号化ブロックcolCbの左上の画素の位置を示すインデックスである。
【０１９３】
一方、符号化ブロックcolCbのＬ０予測フラグPredFlagL0[xPCol][yPCol]が０でない場合（Ｓ４２３５：ＮＯ）、符号化ブロックcolCbのＬ１予測フラグPredFlagL1[xPCol][yPCol]が０かどうかを判定する。符号化ブロックcolCbのＬ１予測フラグPredFlagL1[xPCol][yPCol]が０の場合（Ｓ４２３９：ＹＥＳ）、動きベクトルmvColが符号化ブロックcolCbのＬ０の動きベクトルであるMvL0[xPCol][yPCol]と同じ値に設定され（Ｓ４２４０）、参照インデックスrefIdxColがＬ０の参照インデックスRefIdxL0[xPCol][yPCol] と同じ値に設定され（Ｓ４２４１）、リストListColがＬ０に設定される（Ｓ４２４２）。
【０１９４】
符号化ブロックcolCbのＬ０予測フラグPredFlagL0[xPCol][yPCol]と符号化ブロックcolCbのＬ１予測フラグPredFlagL1[xPCol][yPCol]が共に０でない場合（Ｓ４２３５：ＮＯ，Ｓ４２３９：ＮＯ）、符号化ブロックcolCbのインター予測モードは双予測（Pred_BI）であるので、Ｌ０、Ｌ１の２つの動きベクトルから、一方を選択する（Ｓ４２４３）。図６０は、符号化ブロックcolCbのインター予測モードが双予測（Pred_BI）のときの符号化ブロックのインター予測情報の導出処理手順を示すフローチャートである。
【０１９５】
まず、すべての参照リストに登録されているすべてのピクチャのＰＯＣが現在の符号化対象ピクチャのＰＯＣより小さいかどうかを判定し（Ｓ４２５１）、符号化ブロックcolCbのすべての参照リストであるＬ０及びＬ１に登録されているすべてのピクチャのＰＯＣが現在の符号化対象ピクチャのＰＯＣより小さい場合で（Ｓ４２５１：ＹＥＳ）、ＬＸがＬ０、即ち符号化対象の符号化ブロックのＬ０の動きベクトルの予測ベクトル候補を導出している場合（Ｓ４２５２：ＹＥＳ）、符号化ブロックcolCbのＬ０の方のインター予測情報を選択し、ＬＸがＬ１、即ち符号化対象の符号化ブロックのＬ１の動きベクトルの予測ベクトル候補を導出している場合（Ｓ４２５２：ＮＯ）、符号化ブロックcolCbのＬ１の方のインター予測情報を選択する。一方、符号化ブロックcolCbのすべての参照リストＬ０及びＬ１に登録されているピクチャのＰＯＣの少なくとも１つが現在の符号化対象ピクチャのＰＯＣより大きい場合で（Ｓ４２５１：ＮＯ）、フラグcollocated_from_l0_flagが０場合（Ｓ４２５３：ＹＥＳ）、符号化ブロックcolCbのＬ０の方のインター予測情報を選択し、フラグcollocated_from_l0_flagが１の場合（Ｓ４２５３：ＮＯ）、符号化ブロックcolCbのＬ１の方のインター予測情報を選択する。
【０１９６】
符号化ブロックcolCbのＬ０の方のインター予測情報を選択する場合（Ｓ４２５２：ＹＥＳ、Ｓ４２５３：ＹＥＳ）、動きベクトルmvColがMvL0[xPCol][yPCol]と同じ値に設定され（Ｓ４２５４）、参照インデックスrefIdxColがRefIdxL0[xPCol][yPCol]と同じ値に設定され（Ｓ４２５５）、リストListColがＬ０に設定される（Ｓ４２５６）。
【０１９７】
符号化ブロックcolCbのＬ１の方のインター予測情報を選択する場合（Ｓ４２５２：ＮＯ、Ｓ４２５３：ＮＯ）、動きベクトルmvColがMvL1[xPCol][yPCol]と同じ値に設定され（Ｓ４２５７）、参照インデックスrefIdxColがRefIdxL1[xPCol][yPCol]と同じ値に設定され（Ｓ４２５８）、リストListColがＬ１に設定される（Ｓ４２５９）。
【０１９８】
図５９に戻り、符号化ブロックcolCbからインター予測情報が取得できたら、フラグavailableFlagLXColとフラグpredFlagLXColを共に１とする（Ｓ４２４４）。
【０１９９】
続いて、動きベクトルmvColをスケーリングして、動きベクトルmvLXColとする（Ｓ４２４５Ｓ４２４５）。この動きベクトルmvLXColのスケーリング演算処理手順を図６１を用いて説明する。
【０２００】
異なる時間のピクチャcolPicのＰＯＣから、符号化ブロックcolCbのリストListColで参照する参照インデックスrefIdxColに対応する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｄを算出する（Ｓ４２６１）。なお、異なる時間のピクチャcolPicよりも符号化ブロックcolCbのリストListColで参照する参照ピクチャのＰＯＣの方が表示順序で前の場合、ピクチャ間距離ｔｄは正の値となり、異なる時間のピクチャcolPicよりも符号化ブロックcolCbのリストListColで参照する参照ピクチャのＰＯＣの方が表示順序で後の場合、ピクチャ間距離ｔｄは負の値となる。
ｔｄ ＝ 異なる時間のピクチャcolPicのＰＯＣ − 符号化ブロックcolCbのリストListColで参照する参照ピクチャのＰＯＣ
【０２０１】
現在の符号化対象ピクチャのＰＯＣから現在の符号化対象ピクチャのリストＬＸが参照する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｂを算出する（Ｓ４２６２）。なお、現在の符号化対象ピクチャよりも現在の符号化対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離ｔｂは正の値となり、現在の符号化対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離ｔｂは負の値となる。
【０２０２】
ｔｂ ＝ 現在の符号化 ／ 復号対象ピクチャのＰＯＣ − 時間マージ候補のＬＸの参照インデックスに対応する参照ピクチャのＰＯＣ
【０２０３】
続いて、ピクチャ間距離ｔｄとｔｂを比較し（Ｓ４２６３）、ピクチャ間距離ｔｄとｔｂが等しい場合（Ｓ４２６３：ＹＥＳ）、次式により動きベクトルmvLXColを算出して（Ｓ４２６４）、本スケーリング演算処理を終了する。
【０２０４】
mvLXCol = mvCol
【０２０５】
一方、ピクチャ間距離ｔｄとｔｂが等しくない場合（Ｓ４２６３：ＮＯ）、次式により変数ｔｘを算出する（Ｓ４２６５）。
【０２０６】
tx = ( 16384 + Abs( td ) >> 1 ) / td
【０２０７】
続いて、次式によりスケーリング係数distScaleFactorを算出する（Ｓ４２６６）。
distScaleFactor = Clip3( -4096, 4095, ( tb * tx + 32 ) >> 6 )
ここで、Clip3(x,y,z)は値zについて、最小値をx、最大値をyに制限する関数である。続いて、次式により動きベクトルmvLXColを算出して（Ｓ４２６７）、本スケーリング演算処理を終了する。
【０２０８】
mvLXCol = Clip3( -32768, 32767, Sign( distScaleFactor * mvLXCol ) 
* ( (Abs( distScaleFactor * mvLXCol ) + 127 ) >> 8 ) )
【０２０９】
ここで、Sign(x)は値xの符号を返す関数であり、Abs(x)は値xの絶対値を返す関数である。
【０２１０】
再び、図５６を参照する。そして、Ｌ０の動きベクトルmvL0Colとを前述の通常予測動きベクトルモード導出部３０１における予測動きベクトル候補リストmvpListLXNに候補として追加する（Ｓ４２０５）。ただし、この追加は、参照リスト0の符号化ブロックcolCbが有効か否かを示すフラグavailableFlagL0Col=1の場合のみである。また、L1の動きベクトルmvL1Colを前述の通常予測動きベクトルモード導出部３０１における予測動きベクトル候補リストmvpListLXNに候補として追加する（Ｓ４２０５）。ただし、この追加は、参照リスト1の符号化ブロックcolCbが有効か否かを示すフラグavailableFlagL1Col=1の場合のみである。以上により、時間予測動きベクトル候補導出部３２２の処理を終了する。
上記した通常予測動きベクトルモード導出部３０１の説明は、符号化時のものであるが、復号時も同様となる。つまり、図２３の通常予測動きベクトルモード導出部４０１における時間予測動きベクトル候補導出部４２２の動作は、上記の説明における符号化を復号と置き換えて、同様に説明される。
【０２１１】
＜時間マージ＞
図１８の通常マージモード導出部３０２における時間マージ候補導出部３4２の動作について、図６２を参照して説明する。
【０２１２】
まず、ColPicを導出する（ステップＳ４３０１）。次に、符号化ブロックcolCbを導出し、符号化情報を取得する（ステップＳ４３０２）。さらに、参照リストごとに、インター予測情報を導出する（Ｓ４３０３,Ｓ４３０４）。以上の処理は、時間予測動きベクトル候補導出部３２２におけるＳ４２０１からＳ４２０４と同じであるため、説明を省略する。
【０２１３】
次に、符号化ブロックcolCbが有効か否かを示すフラグavailableFlagColを算出する（Ｓ４３０５）。フラグavailableFlagL0Col、またはフラグavailableFlagL1Colが1の場合に、availableFlagColは1となる。それ以外ではavailableFlagColは０となる。
【０２１４】
そして、L0の動きベクトルmvL0Col、およびL1の動きベクトルmvL1Colを、前述の通常マージモード導出部３０２におけるマージ候補リストmergeCandListに候補として追加する（Ｓ４３０６）。ただし、この追加は、符号化ブロックcolCbが有効か否かを示すフラグavailableFlagCol=1の場合のみである。以上により、時間マージ候補導出部３4２の処理を終了する。
【０２１５】
上記した時間マージ候補導出部３４２の説明は、符号化時のものであるが、復号時も同様となる。つまり、図２４の通常マージモード導出部４０２における時間マージ候補導出部４４２の動作は、上記の説明における符号化を復号と置き換えて、同様に説明される。
【０２１６】
＜履歴予測動きベクトル候補リストの更新＞
次に、符号化側の符号化情報格納メモリ１１１及び復号側の符号化情報格納メモリ２０５に備える履歴予測動きベクトル候補リストHmvpCandListの初期化方法および更新方法について詳細に説明する。図２６は履歴予測動きベクトル候補リスト初期化・更新処理手順を説明するフローチャートである。
【０２１７】
本実施の形態では、履歴予測動きベクトル候補リストHmvpCandListの更新は、符号化情報格納メモリ１１１及び符号化情報格納メモリ２０５で実施されるものとする。インター予測部１０２及びインター予測部２０３の中に履歴予測動きベクトル候補リスト更新部を設置して履歴予測動きベクトル候補リストHmvpCandListの更新を実施させてもよい。
【０２１８】
スライスの先頭で履歴予測動きベクトル候補リストHmvpCandListの初期設定を行い、符号化側では予測方法決定部１０５で通常予測動きベクトルモードまたは通常マージモードが選択された場合に履歴予測動きベクトル候補リストHmvpCandListを更新し、復号側では、ビット列復号部２０１で復号された予測情報が通常予測動きベクトルモードまたは通常マージモードの場合に履歴予測動きベクトル候補リストHmvpCandListを更新する。
【０２１９】
通常予測動きベクトルモードまたは通常マージモードでインター予測を行う際に用いるインター予測情報を、インター予測情報候補hMvpCandとして履歴予測動きベクトル候補リストHmvpCandListに登録する。インター予測情報候補hMvpCandには、Ｌ０の参照インデックスrefIdxL0およびＬ１の参照インデックスrefIdxL1、Ｌ０予測が行われるか否かを示すＬ０予測フラグpredFlagL0およびＬ１予測が行われるか否かを示すＬ１予測フラグpredFlagL1、Ｌ０の動きベクトルmvL0、Ｌ１の動きベクトルmvL1が含まれる。
【０２２０】
符号化側の符号化情報格納メモリ１１１及び復号側の符号化情報格納メモリ２０５に備える履歴予測動きベクトル候補リストHmvpCandListに登録されている要素（すなわち、インター予測情報）の中に、インター予測情報候補hMvpCandと同じ値のインター予測情報が存在する場合は、履歴予測動きベクトル候補リストHmvpCandListからその要素を削除する。一方、インター予測情報候補hMvpCandと同じ値のインター予測情報が存在しない場合は、履歴予測動きベクトル候補リストHmvpCandListの先頭の要素を削除し、履歴予測動きベクトル候補リストHmvpCandListの最後に、インター予測情報候補hMvpCandを追加する。
【０２２１】
本発明の符号化側の符号化情報格納メモリ１１１及び復号側の符号化情報格納メモリ２０５に備える履歴予測動きベクトル候補リストHmvpCandListの要素の数は６とする。
【０２２２】
まず、スライス単位での履歴予測動きベクトル候補リストHmvpCandListの初期化を行う（図２６のステップＳ２１０１）。スライスの先頭で履歴予測動きベクトル候補リストHmvpCandListのすべての要素を空にし、履歴予測動きベクトル候補リストHmvpCandListに登録されている履歴予測動きベクトル候補の数（現在の候補数）NumHmvpCandの値は0に設定する。
【０２２３】
なお、履歴予測動きベクトル候補リストHmvpCandListの初期化をスライス単位（スライスの最初の符号化ブロック）で実施するとしたが、ピクチャ単位、タイル単位やツリーブロック行単位で実施しても良い。
【０２２４】
続いて、スライス内の符号化ブロック毎に以下の履歴予測動きベクトル候補リストHmvpCandListの更新処理を繰り返し行なう（図２６のステップＳ２１０２〜Ｓ２１０７）。
【０２２５】
まず、符号化ブロック単位での初期設定を行う。同一候補が存在するか否かを示すフラグidenticalCandExistにFALSE（偽）の値を設定し、削除対象の候補を示す削除対象インデックスremoveIdxに０を設定する（図２６のステップＳ２１０３）。
【０２２６】
登録対象のインター予測情報候補hMvpCandが存在するか否かを判定する（図２６のステップＳ２１０４）。符号化側の予測方法決定部１０５で通常予測動きベクトルモードまたは通常マージモードと判定された場合、または復号側のビット列復号部２０１で通常予測動きベクトルモードまたは通常マージモードとして復号された場合、そのインター予測情報を登録対象のインター予測情報候補hMvpCandとする。符号化側の予測方法決定部１０５でイントラ予測モード、サブブロック予測動きベクトルモードまたはサブブロックマージモードと判定された場合、または復号側のビット列復号部２０１でイントラ予測モード、サブブロック予測動きベクトルモードまたはサブブロックマージモードとして復号された場合、履歴予測動きベクトル候補リストHmvpCandListの更新処理を行わず、登録対象のインター予測情報候補hMvpCandは存在しない。登録対象のインター予測情報候補hMvpCandが存在しない場合はステップＳ２１０５〜Ｓ２１０６をスキップする（図２６のステップＳ２１０４：ＮＯ）。登録対象のインター予測情報候補hMvpCandが存在する場合はステップＳ２１０５以下の処理を行う（図２６のステップＳ２１０４：ＹＥＳ）。
【０２２７】
続いて、履歴予測動きベクトル候補リストHmvpCandListの各要素の中に登録対象のインター予測情報候補hMvpCandと同じ値の要素（インター予測情報）、すなわち同一の要素が存在するか否かを判定する（図２６のステップＳ２１０５）。図２７はこの同一要素確認処理手順のフローチャートである。履歴予測動きベクトル候補の数NumHmvpCandの値が０の場合（図２７のステップＳ２１２１：ＮＯ）、履歴予測動きベクトル候補リストHmvpCandListは空で、同一候補は存在しないので図２７のステップＳ２１２２〜Ｓ２１２５をスキップし、本同一要素確認処理手順を終了する。履歴予測動きベクトル候補の数NumHmvpCandの値が0より大きい場合（図２７のステップＳ２１２１：ＹＥＳ）、履歴予測動きベクトルインデックスhMvpIdxが0からNumHmvpCand-1まで、ステップＳ２１２３の処理を繰り返す（図２７のステップＳ２１２２〜Ｓ２１２５）。まず、履歴予測動きベクトル候補リストの０から数えてhMvpIdx番目の要素HmvpCandList[hMvpIdx]がインター予測情報候補hMvpCandと同一か否かを比較する（図２７のステップＳ２１２３）。同一の場合（図２７のステップＳ２１２３：ＹＥＳ）、同一候補が存在するか否かを示すフラグidenticalCandExistにTRUE（真）の値を設定し、削除対象の要素の位置を示す削除対象インデックスremoveIdxに現在の履歴予測動きベクトルインデックスhMvpIdxの値を設定し、本同一要素確認処理を終了する。同一でない場合（図２７のステップＳ２１２３：ＮＯ）、hMvpIdxを1インクリメントし、履歴予測動きベクトルインデックスhMvpIdxがNumHmvpCand-1以下であれば、ステップＳ２１２３以降の処理を行う。
【０２２８】
再び図２６のフローチャートに戻り、履歴予測動きベクトル候補リストHmvpCandListの要素のシフト及び追加処理を行う（図２６のステップＳ２１０６）。図２８は図２６のステップＳ２１０６の履歴予測動きベクトル候補リストHmvpCandListの要素シフト／追加処理手順のフローチャートである。まず、履歴予測動きベクトル候補リストHmvpCandListに格納されている要素を除いてから新たな要素を追加するか、要素を除かずに新たな要素追加するかを判定する。具体的には同一候補が存在するか否かを示すフラグidenticalCandExistにTRUE（真）またはNumHmvpCandが6か否かを比較する（図２８のステップＳ２１４１）。同一候補が存在するか否かを示すフラグidenticalCandExistにTRUE（真）または現在の候補数NumHmvpCandが6のいずれかの条件を満たす場合（図２８のステップＳ２１４１：ＹＥＳ）、履歴予測動きベクトル候補リストHmvpCandListに格納されている要素を除いてから新たな要素を追加する。インデックスiの初期値をremoveIdx + 1の値に設定する。この初期値からNumHmvpCandまで、ステップＳ２１４３の要素シフト処理を繰り返す。（図２８のステップＳ２１４２〜Ｓ２１４４）。HmvpCandList[ i - 1 ]にHmvpCandList[ i ]の要素をコピーすることで要素を前方にシフトし（図２８のステップＳ２１４３）、iを１インクリメントする（図２８のステップＳ２１４２〜Ｓ２１４４）。続いて、履歴予測動きベクトル候補リストの最後に相当する０から数えて(NumHmvpCand-1)番目HmvpCandList[NumHmvpCand-1]にインター予測情報候補hMvpCandを追加し（図２８のステップＳ２１４５）、本履歴予測動きベクトル候補リストHmvpCandListの要素シフト・追加処理を終了する。一方、同一候補が存在するか否かを示すフラグidenticalCandExistにTRUE（真）およびNumHmvpCandが6のいずれの条件も満たさない場合（図２８のステップＳ２１４１：ＮＯ）、履歴予測動きベクトル候補リストHmvpCandListに格納されている要素を除かずに、履歴予測動きベクトル候補リストの最後にインター予測情報候補hMvpCandを追加する（図２８のステップＳ２１４６）。ここで、履歴予測動きベクトル候補リストの最後とは、０から数えてNumHmvpCand番目のHmvpCandList[NumHmvpCand]である。また、NumHmvpCandを１インクリメントして、本履歴予測動きベクトル候補リストHmvpCandListの要素シフトおよび追加処理を終了する。
【０２２９】
図３１は履歴予測動きベクトル候補リストの更新処理の一例を説明する図である。６つの要素（インター予測情報）を登録済みの履歴予測動きベクトル候補リストHmvpCandListに新たな要素を追加する場合、履歴予測動きベクトル候補リストHmvpCandListの前方の要素から順に新たなインター予測情報と比較して（図３１Ａ）、新たな要素が履歴予測動きベクトル候補リストHmvpCandListの先頭から３番目の要素HMVP2と同じ値であれば、履歴予測動きベクトル候補リストHmvpCandListから要素HMVP2を削除して後方の要素HMVP3〜HMVP5を前方に１つずつシフト（コピー）し、履歴予測動きベクトル候補リストHmvpCandListの最後に新たな要素を追加して（図３１Ｂ）、履歴予測動きベクトル候補リストHmvpCandListの更新を完了する（図３１Ｃ）。
【０２３０】
＜履歴予測動きベクトル候補導出処理＞
次に、符号化側の通常予測動きベクトルモード導出部３０１の履歴予測動きベクトル候補導出部３２３、復号側の通常予測動きベクトルモード導出部４０１の履歴予測動きベクトル候補導出部４２３で共通の処理である図２０のステップＳ３０４の処理手順である履歴予測動きベクトル候補リストHmvpCandListからの履歴予測動きベクトル候補の導出方法について詳細に説明する。図２９は履歴予測動きベクトル候補導出処理手順を説明するフローチャートである。
【０２３１】
現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数（ここでは２とする）以上または履歴予測動きベクトル候補の数がNumHmvpCandの値が0の場合（図２９のステップＳ２２０１：ＮＯ）、図２９のステップＳ２２０２からＳ２２０９の処理を省略し、履歴予測動きベクトル候補導出処理手順を終了する。現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数である２より小さい場合、かつ履歴予測動きベクトル候補の数NumHmvpCandの値が０より大きい場合（図２９のステップＳ２２０１：ＹＥＳ）、図２９のステップＳ２２０２からＳ２２０９の処理を行う。
【０２３２】
続いて、インデックスｉが１から、４と履歴予測動きベクトル候補の数numCheckedHMVPCandのいずれか小さい値まで、図２９のステップＳ２２０３からＳ２２０８の処理を繰り返す（図２９のステップＳ２２０２〜Ｓ２２０９）。現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数である２以上の場合（図２９のステップＳ２２０３：ＮＯ）、図２９のステップＳ２２０４からＳ２２０９の処理を省略し、本履歴予測動きベクトル候補導出処理手順を終了する。現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数である２より小さい場合（図２９のステップＳ２２０３：ＹＥＳ）、図２９のステップＳ２２０４以降の処理を行う。
【０２３３】
続いて、ステップＳ２２０５からＳ２２０７までの処理をＹが０と１（Ｌ０とＬ１）についてそれぞれ行う（図２９のステップＳ２２０４〜Ｓ２２０８）。現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数である２以上の場合（図２９のステップＳ２２０５：ＮＯ）、図２９のステップＳ２２０６からＳ２２０９の処理を省略し、本履歴予測動きベクトル候補導出処理手順を終了する。現在の予測動きベクトル候補の数numCurrMvpCandが予測動きベクトル候補リストmvpListLXの最大要素数である２より小さい場合（図２９のステップＳ２２０５：ＹＥＳ）、図２９のステップＳ２２０６以降の処理を行う。
【０２３４】
続いて、履歴予測動きベクトル候補リストHmvpCandListの中に、符号化／復号対象動きベクトルの参照インデックスrefIdxLXと同じ参照インデックスの要素であり、予測動きベクトルリストmvpListLXのどの要素とも異なる要素の場合（図２９のステップＳ２２０６：ＹＥＳ）、予測動きベクトル候補リストの０から数えてnumCurrMvpCand番目の要素mvpListLX[numCurrMvpCand]に履歴予測動きベクトル候補HmvpCandList[NumHmvpCand - i]のLYの動きベクトルを追加し（図２９のステップＳ２２０７）、現在の予測動きベクトル候補の数numCurrMvpCandを１インクリメントする。履歴予測動きベクトル候補リストHmvpCandListの中に、符号化／復号対象動きベクトルの参照インデックスrefIdxLXと同じ参照インデックスの要素であり、予測動きベクトルリストmvpListLXのどの要素とも異なる要素がない場合（図２９のステップＳ２２０７：ＮＯ）、ステップＳ２２０７の追加処理をスキップする。
【０２３５】
以上の図２９のステップＳ２２０５からＳ２２０７の処理をＬ０とＬ１で双方ともに行う（図２９のステップＳ２２０４〜Ｓ２２０８）。インデックスｉを１インクリメントし、インデックスｉが４と履歴予測動きベクトル候補の数NumHmvpCandのいずれか小さい値以下の場合、再びステップＳ２２０３以降の処理を行う（図２９のステップＳ２２０２〜Ｓ２２０９）。
【０２３６】
＜履歴マージ候補導出処理＞
次に、符号化側の通常マージモード導出部３０２の履歴マージ候補導出部３４５、復号側の通常マージモード導出部４０２の履歴マージ候補導出部４４５で共通の処理である図２１のステップＳ４０４の処理手順である履歴マージ候補リストHmvpCandListからの履歴マージ候補の導出方法について詳細に説明する。図３０は履歴マージ候補導出処理手順を説明するフローチャートである。
【０２３７】
まず、初期化処理を行う（図３０のステップＳ２３０１）。isPruned[i]の0から(numCurrMergeCand -1)番目のそれぞれの要素にFALSEの値を設定し、変数numOrigMergeCandに現在のマージ候補リストに登録されている要素の数numCurrMergeCandを設定する。
【０２３８】
続いて、インデックスhMvpIdxの初期値を1に設定し、この初期値からNumHmvpCandまで、図３０のステップＳ２３０３からステップＳ２３１０までの追加処理を繰り返す（図３０のステップＳ２３０２〜Ｓ２３１１）。現在のマージ候補リストに登録されている要素の数numCurrMergeCandが(最大マージ候補数MaxNumMergeCand-1)以下でなければ、マージ候補リストのすべての要素にマージ候補が追加されたので、本履歴マージ候補導出処理を終了する（図３０のステップＳ２３０３：ＮＯ）。現在のマージ候補リストに登録されている要素の数numCurrMergeCandが(最大マージ候補数MaxNumMergeCand-1)以下の場合、ステップＳ２３０４以降の処理を行う。sameMotionにFALSE（偽）の値を設定する（図３０のステップＳ２３０４）。続いて、インデックスiの初期値を0に設定し、この初期値からnumOrigMergeCand-1まで図３０のステップＳ２３０６、Ｓ２３０７の処理を行う（図３０のＳ２３０５〜Ｓ２３０８）。履歴動きベクトル予測候補リストの０から数えて(NumHmvpCand - hMvpIdx)番目の要素HmvpCandList[NumHmvpCand- hMvpIdx]がマージ候補リストの０から数えてi番目の要素mergeCandList[i]と同じ値か否かを比較する（図３０のステップＳ２３０６）。
【０２３９】
マージ候補の同じ値とはマージ候補が持つすべての構成要素（インター予測モード、参照インデックス、動きベクトル）の値が同じ場合にマージ候補が同じ値とする。マージ候補が同じ値、かつisPruned[i]がFALSEの場合（図３０のステップＳ２３０６：ＹＥＳ）、sameMotionおよびisPruned[i]共にTRUE（真）を設定する（図３０のステップＳ２３０７）。同じ値でない場合（図３０のステップＳ２３０６：ＮＯ）、ステップＳ２３０７の処理をスキップする。図３０のステップＳ２３０５からステップＳ２３０８までの繰り返し処理が完了したらsameMotionがFALSE（偽）か否かを比較し（図３０のステップＳ２３０９）、sameMotionが FALSE（偽）の場合（図３０のステップＳ２３０９：ＹＥＳ）、すなわち履歴予測動きベクトル候補リストの０から数えて(NumHmvpCand - hMvpIdx)番目の要素HmvpCandList[NumHmvpCand - hMvpIdx]はmergeCandListに存在しないので、マージ候補リストのnumCurrMergeCand番目のmergeCandList[numCurrMergeCand]に履歴予測動きベクトル候補リストの０から数えて(NumHmvpCand - hMvpIdx)番目の要素HmvpCandList[NumHmvpCand - hMvpIdx]を追加し、numCurrMergeCandを1インクリメントする（図３０のステップＳ２３１０）。インデックスhMvpIdxを１インクリメントし（図３０のステップＳ２３０２）、図３０のステップＳ２３０２〜Ｓ２３１１の繰り返し処理を行う。
履歴予測動きベクトル候補リストのすべての要素の確認が完了するか、マージ候補リストのすべての要素にマージ候補が追加されたら、本履歴マージ候補の導出処理を完了する。
【０２４０】
＜サブブロック時間マージ候補導出＞
図１６のサブブロックマージモード導出部３０４におけるサブブロック時間マージ候補導出部３８１の動作について、図５０を参照して説明する。
【０２４１】
まず、符号化ブロックが8x8画素未満か否かを判定する（Ｓ４００２）。
符号化ブロックが8x8画素未満の場合（Ｓ４００２：ＹＥＳ）、サブブロック時間マージ候補の存在を示すフラグavailableFlagSbCol=0に設定して（Ｓ４００３）、サブブロック時間マージ候補導出部の処理を終了する。ここで、シンタックスによりテンポラル動きベクトル予測が禁止されている場合、またはサブブロック時間マージが禁止されている場合には、符号化ブロックが8x8画素未満の場合（Ｓ４００２：ＹＥＳ）と同じ処理をする。
【０２４２】
一方、符号化ブロックが8x8画素以上の場合（Ｓ４００２：ＮＯ）、符号化ピクチャにおける符号化ブロックの隣接動き情報を導出する（Ｓ４００４）。
【０２４３】
符号化ブロックの隣接動き情報を導出する処理について、図５１を参照して説明する。隣接動き情報を導出する処理は、前述の空間予測動きベクトル候補導出部321の処理と相似している。ただし、隣接ブロックの探索をする順番はA0,B0,B1,A1であり、B2は探索しない。まず、隣接ブロックn=A0として、符号化情報を取得する（Ｓ４０５２）。符号化情報とは、隣接ブロックを利用できるか否かを示すフラグavailableFlagN、参照リストごとの参照インデックスrefIdxLXN、および動きベクトルmvLXNを示す。
【０２４４】
次に、隣接ブロックnが有効か無効かを判断する（Ｓ４０５４）。隣接ブロックを利用できるか否かを示すフラグavailableFlagN=1であれば有効、それ以外は無効とする。
隣接ブロックnが有効であれば（Ｓ４０５４:ＹＥＳ）、参照インデックスrefIdxLXNを、隣接ブロックnの参照インデックスrefIdxLXnとする（Ｓ４０５６）。また、動きベクトルmvLXNを、隣接ブロックnの動きベクトルmvLXnとして（Ｓ４０５６）、ブロックの隣接動き情報を導出する処理を終了する。
【０２４５】
一方、隣接ブロックnが無効であれば（Ｓ４１０６:ＮＯ）、隣接ブロックn=B0として、符号化情報を取得する（Ｓ４１０４）。以下、同様の処理をして、B1,A1の順番にループする。隣接動き情報を導出する処理は、隣接ブロックが有効となるまでループし、全ての隣接ブロックA0,B0,B1,A1が無効であれば、ブロックの隣接動き情報を導出する処理を終了する。
【０２４６】
再び、図５０を参照する。隣接動き情報を導出したら（Ｓ４００４）、テンポラル動きベクトルを導出する（Ｓ４００６）。
テンポラル動きベクトルを導出する処理について、図５２を参照して説明する。まず、テンポラル動きベクトルtempMv=(0,0)として初期化する（Ｓ４０６２）。
【０２４７】
次に、隣接動き情報が有効か無効かを判断する（Ｓ４０６４）。隣接ブロックを利用できるか否かを示すフラグavailableFlagN=1であれば有効、それ以外は無効とする。隣接動き情報が無効の場合（Ｓ４０６４:ＮＯ）、テンポラル動きベクトルを導出する処理を終了する。
【０２４８】
一方、隣接動き情報が有効の場合（Ｓ４０６４:ＹＥＳ）、隣接ブロックNにおいてL1予測を利用しているか否かを示すフラグpredFlagL1Nが１か否かを判断する（Ｓ４０６６）。predFlagL1N=0の場合（Ｓ４０６６:ＮＯ）、次の処理（Ｓ４０７８）に進む。predFlagL1N=1の場合（Ｓ４０６６:ＹＥＳ）、すべての参照リストに登録されているすべてのピクチャのＰＯＣが、現在の符号化対象ピクチャのＰＯＣ以下か否かを判断する（Ｓ４０６８）。この判断が真の場合（Ｓ４０６８：ＹＥＳ）、次の処理（Ｓ４０７０）に進む。
【０２４９】
スライスタイプslice_typeがＢスライスで、フラグcollocated_from_l0_flagが０の場合（Ｓ４０７０:ＹＥＳ、かつＳ４０７２:ＹＥＳ）、ColPicと参照ピクチャRefPicList1[refIdxL1N]（参照リストＬ１の参照インデックスrefIdxL1Nのピクチャ）が同じか否かを判断する（Ｓ４０７４）。この判断が真の場合（Ｓ４０７４：ＹＥＳ）、テンポラル動きベクトルtempMv=mvL1Nとする（S4076）。この判断が偽の場合（Ｓ４０７４：ＮＯ）、次の処理（Ｓ４０７８）に進む。スライスタイプslice_typeがＢスライスでなく、フラグcollocated_from_l0_flagが０でない場合（Ｓ４０７０:ＮＯ、またはＳ４０７２:ＮＯ）、次の処理（Ｓ４０７８）に進む。
【０２５０】
そして、隣接ブロックNにおいてL0予測を利用しているか否かを示すフラグpredFlagL0Nが１か否かを判断する（Ｓ４０７８）。predFlagL0N=1の場合（Ｓ４０７８:ＹＥＳ）、ColPicと参照ピクチャRefPicList0[refIdxL0N]（参照リストＬ０の参照インデックスrefIdxL0Nのピクチャ）が同じか否かを判断する（Ｓ４０８０）。この判断が真の場合（Ｓ４０８０：ＹＥＳ）、テンポラル動きベクトルtempMv=mvL0Nとする（Ｓ４０８２）。この判断が偽の場合（Ｓ４０８０：ＮＯ）、テンポラル動きベクトルを導出する処理を終了する。
再び、図５０を参照する。次に、ColPicを導出する（Ｓ４０１６）。この処理は、時間予測動きベクトル候補導出部３２２におけるＳ４２０１と同じであるから、説明を省略する。
【０２５１】
そして、異なる時間の符号化ブロックcolCbを設定する（Ｓ４０１７）。これは、異なる時間のピクチャColPic内で処理対象の符号化ブロックと同一位置の中央右下に位置する符号化ブロックを、colCbとして設定するものである。この符号化ブロックは図５５の符号化ブロックＴ１に相当する。
【０２５２】
次に、符号化ブロックcolCbにテンポラル動きベクトルtempMvを加算した位置を、新たなcolCbとする（Ｓ４０１８）。符号化ブロックcolCbの左上の位置を(xColCb, yColCb)、テンポラル動きベクトルtempMvを1/16画素精度で(tempMv[0], tempMv[1])とすると、新たなcolCbの左上の位置は、以下のようになる。
【０２５３】
xColCb = Clip3( xCtb, xCtb + CtbSizeY + 3, xcolCb + ( tempMv[0] >> 4 ) )
yColCb = Clip3( yCtb, yCtb + CtbSizeY - 1, ycolCb + ( tempMv[1] >> 4 ) )
【０２５４】
ここで、ツリーブロックの左上の位置は(xCtb, yCtb)、ツリーブロックの大きさはCtbSizeYとする。上式に示すように、tempMv加算後の位置は、tempMv加算前に比べて大きくずれないように、ツリーブロックの大きさ程度の範囲に補正される。もしこの位置が画面外となった場合は、画面内に補正される。
【０２５５】
そして、この符号化ブロックcolCbの予測モードPredModeがインター予測（MODE_INTER）か否かを判定する（Ｓ４０２０）。colCbの予測モードがインター予測でない場合（Ｓ４０２０:ＮＯ）、サブブロック時間マージ候補の存在を示すフラグavailableFlagSbCol=0に設定して（Ｓ４００３）、サブブロック時間マージ候補導出部の処理を終了する。
【０２５６】
一方、colCbの予測モードがインター予測の場合（Ｓ４０２０:ＹＥＳ）、参照リストごとにインター予測情報を導出する（Ｓ４０２２,Ｓ４０２３）。ここでは、colCbについて、参照リストごとの中心動きベクトルctrMvLXと、LX予測を利用しているか否かを示すフラグctrPredFlagLXを導出する。LXは参照リストを示し、参照リスト０の導出ではLXはL0となり、参照リスト1の導出ではLXはL1となる。インター予測情報の導出について、図５３を参照して説明する。
【０２５７】
異なる時間の符号化ブロックcolCbが利用できない場合（Ｓ４１１２:ＮＯ）、または予測モードPredModeがイントラ予測（MODE_INTRA）の場合（Ｓ４１１４:ＮＯ）、フラグavailableFlagLXColとフラグpredFlagLXColを共に０とし（ステップＳ４１１６）、動きベクトルmvColを（０，０）として（Ｓ４１１８）、インター予測情報の導出処理を終了する。
【０２５８】
符号化ブロックcolCbが利用でき（Ｓ４１１２：ＹＥＳ）、予測モードPredModeがイントラ予測（MODE_INTRA）でない場合（Ｓ４１１４:ＹＥＳ）、以下の手順でmvCol、refIdxColおよびavailableFlagColを算出する。
【０２５９】
符号化ブロックcolCbのＬＸ予測が利用されているかどうかを示すフラグPredFlagLX[xPCol][yPCol]が1の場合（Ｓ４１２０：ＹＥＳ）、動きベクトルmvColが符号化ブロックcolCbのＬＸの動きベクトルであるMvLX[xPCol][yPCol]と同じ値に設定され（Ｓ４１２２）、参照インデックスrefIdxColがＬＸの参照インデックスRefIdxLX[xPCol][yPCol]と同じ値に設定され（Ｓ４１２４）、リストlistColがＬＸに設定される（Ｓ４１２６）。ここで、xPCol、yPColは異なる時間のピクチャcolPic内での符号化ブロックcolCbの左上の画素の位置を示すインデックスである。
【０２６０】
一方、符号化ブロックcolCbのＬＸ予測が利用されているかどうかを示すフラグPredFlagLX[xPCol][yPCol]が0の場合（Ｓ４１２０：ＮＯ）、以下の処理をする。まず、すべての参照リストに登録されているすべてのピクチャのＰＯＣが、現在の符号化対象ピクチャのＰＯＣ以下か否かを判断する（Ｓ４１２８）。かつ、colCbのＬＹ予測が利用されているかどうかを示すフラグPredFlagLY[xPCol][yPCol]が1か否かを判断する（Ｓ４１２８）。ここで、LY予測とはLX予測とは異なる参照リストと定義する。つまり、LX=L0ではLY=L1、LX=L1ではLY=L0となる。
【０２６１】
この判断が真の場合（Ｓ４１２８：ＹＥＳ）、動きベクトルmvColが符号化ブロックcolCbのＬＹの動きベクトルであるMvLY[xPCol][yPCol]と同じ値に設定され（Ｓ４１３０）、参照インデックスrefIdxColがＬＹの参照インデックスRefIdxLY[xPCol][yPCol]と同じ値に設定され（Ｓ４１３２）、リストlistColがＬＸに設定される（Ｓ４１３４）。
【０２６２】
一方、この判断が偽の場合（Ｓ４１２８：ＮＯ）、フラグavailableFlagLXColとフラグpredFlagLXColを共に０とし（ステップＳ４１１６）、動きベクトルmvColを（０，０）として（Ｓ４１１８）、インター予測情報の導出処理を終了する。
符号化ブロックcolCbからインター予測情報が取得できたら、フラグavailableFlagLXColとフラグpredFlagLXColを共に１とする（Ｓ４１３６）。
【０２６３】
続いて、動きベクトルmvColをスケーリングして、動きベクトルmvLXColとする（Ｓ４１３８）。この処理は、時間予測動きベクトル候補導出部３２２におけるＳ４２４５と同じであるから、説明を省略する。
【０２６４】
再び、図５０を参照する。参照リストごとにインター予測情報を導出したら、算出された動きベクトルmvLXColを中心動きベクトルctrMvLX、算出されたフラグpredFlagLXColをフラグctrPredFlagLXとする（Ｓ４０２２,Ｓ４０２３）。
【０２６５】
そして、中心動きベクトルが有効か無効かを判断する（Ｓ４０２４）。ctrPredFlagL0=0かつctrPredFlagL1=0であれば無効、それ以外は無効と判断する。中心動きベクトルが無効の場合（Ｓ４０２４:ＮＯ）、サブブロック時間マージ候補の存在を示すフラグavailableFlagSbCol=0に設定して（Ｓ４００３）、サブブロック時間マージ候補導出部の処理を終了する。
【０２６６】
一方、中心動きベクトルが有効の場合（Ｓ４０２４:ＹＥＳ）、サブブロック時間マージ候補の存在を示すフラグavailableFlagSbCol=1に設定して（Ｓ４０２５）、サブブロック動き情報を導出する（Ｓ４０２６）。この処理について、図５４を参照して説明する。
【０２６７】
まず、符号化ブロックcolCbの幅cbWidthと高さcBheightから、幅方向のサブブロック数numSbXおよび高さ方向のサブブロック数numSbYを算出する（Ｓ４１５２）。また、refIdxLXSbCol=0とする（Ｓ４１５２）。この処理以降は、予測サブブロックcolSbの単位で繰り返し処理をする。この繰り返しは、高さ方向のインデックスySbIdxを0からnumSbYまで、幅方向のインデックスxSbIdxを0からnumSbXまで変更しながら処理をする。
【０２６８】
符号化ブロックcolCbの左上の位置を(xCb,yCb)とすると、予測サブブロックcolSbの左上の位置(xSb,ySb)は、以下のように算出される。
【０２６９】
xSb = xCb + xSbIdx * sbWidth
ySb = yCb + ySbIdx * sbHeight
【０２７０】
次に、予測サブブロックcolSbにテンポラル動きベクトルtempMvを加算した位置を、新たなcolSbとする（S4154）。予測サブブロックcolSbの左上の位置を(xColSb, yColSb)、テンポラル動きベクトルtempMvを1/16画素精度で(tempMv[0], tempMv[1])とすると、新たなcolSbの左上の位置は、以下のようになる。
【０２７１】
xColSb = Clip3( xCtb, xCtb + CtbSizeY + 3, xSb + ( tempMv[0] >> 4 ) )
yColSb = Clip3( yCtb, yCtb + CtbSizeY - 1, ySb + ( tempMv[1] >> 4 ) )
【０２７２】
ここで、ツリーブロックの左上の位置は(xCtb, yCtb)、ツリーブロックの大きさはCtbSizeYとする。上式に示すように、tempMv加算後の位置は、tempMv加算前に比べて大きくずれないように、ツリーブロックの大きさ程度の範囲に補正される。もしこの位置が画面外となった場合は、画面内に補正される。
【０２７３】
そして、参照リストごとにインター予測情報を導出する（Ｓ４１５６,Ｓ４１５８）。ここでは、予測サブブロックcolSbについて、サブブロック単位で参照リストごとの動きベクトルmvLXSbColと、予測サブブロックが有効か否かを示すフラグavailableFlagLXSbColを導出する。LXは参照リストを示し、参照リスト０の導出ではLXはL0となり、参照リスト1の導出ではLXはL1となる。インター予測情報の導出は、図５０のＳ４０２２,Ｓ４０２３と同じであるため、説明を省略する。
【０２７４】
インター予測情報を導出後（Ｓ４１５６,Ｓ４１５８）、予測サブブロックcolSbが有効か否かを判断する（Ｓ４１６０）。availableFlagL0SbCol=0かつavailableFlagL1SbCol=0の場合はcolSbが無効、それ以外は有効と判断する。colSbが無効の場合（Ｓ４１６０:ＮＯ）、動きベクトルmvLXSbColを、中心動きベクトルctrMvLXとする（Ｓ４１６２）。さらに、LX予測を利用しているか否かを示すフラグpredFlagLXSbColを、中心動きベクトルにおけるフラグctrPredFlagLXとする（Ｓ４１６２）。以上により、サブブロック動き情報の導出を終了する。
【０２７５】
再び、図５０を参照する。そして、L0の動きベクトルmvL0SbCol、およびL1の動きベクトルmvL1SbColを、前述のサブブロックマージモード導出部３０４におけるサブブロックマージ候補リストsubblockMergeCandListに候補として追加する（Ｓ４０２８）。ただし、この追加は、サブブロック時間マージ候補の存在を示すフラグavailableSbCol=1の場合のみである。以上により、時間マージ候補導出部３４２の処理を終了する。
【０２７６】
上記したサブブロック時間マージ候補導出部３８１の説明は、符号化時のものであるが、復号時も同様となる。つまり、図２２のサブブロックマージモード導出部４０４におけるサブブロック時間マージ候補導出部４８１の動作は、上記の説明における符号化を復号と置き換えて、同様に説明される。
【０２７７】
＜動き補償予測処理＞
動き補償予測部３０６は、符号化において現在予測処理の対象となっているブロックの位置およびサイズを取得する。また、動き補償予測部３０６は、インター予測情報をインター予測モード判定部３０５から取得する。取得したインター予測情報から参照インデックスおよび動きベクトルを導出し、復号画像メモリ１０４内の参照インデックスで特定される参照ピクチャを、動きベクトルの分だけ予測ブロックの画像信号と同一位置より移動させた位置の画像信号を取得した後に予測信号を生成する。
【０２７８】
インター予測におけるインター予測モードがL0予測やL1予測のような、単一の参照ピクチャからの予測の場合には、１つの参照ピクチャから取得した予測信号を動き補償予測信号とし、インター予測モードがBI予測のような、予測モードが２つの参照ピクチャからの予測の場合には、２つの参照ピクチャから取得した予測信号を重みづけ平均したものを動き補償予測信号とし、動き補償予測信号を予測方法決定部１０５に供給する。ここでは双予測の重みづけ平均の比率を１：１とするが、他の比率を用いて重みづけ平均を行っても良い。例えば、予測対象となっているピクチャと参照ピクチャとのピクチャ間隔が近いものほど重みづけの比率が大きくなるようにしてもよい。また、重みづけ比率の算出をピクチャ間隔の組み合わせと重みづけ比率との対応表を用いて行うようにしても良い。
【０２７９】
動き補償予測部４０６は、符号化側の動き補償予測部３０６と同様の機能をもつ。動き補償予測部４０６は、インター予測情報を、通常予測動きベクトルモード導出部４０１、通常マージモード導出部４０２、サブブロック予測動きベクトルモード導出部４０３、サブブロックマージモード導出部４０４から、スイッチ４０８を介して取得する。動き補償予測部４０６は、得られた動き補償予測信号を、復号画像信号重畳部２０７に供給する。
【０２８０】
＜インター予測モードについて＞
単一の参照ピクチャからの予測を行う処理を単予測と定義し、単予測の場合はＬ０予測またはＬ１予測という、参照リストＬ０、Ｌ１に登録された２つの参照ピクチャのいずれか一方を利用した予測を行う。
【０２８１】
図３２は単予測であってＬ０の参照ピクチャ（ＲｅｆＬ０Ｐｉｃ）が処理対象ピクチャ（ＣｕｒＰｉｃ）より前の時刻にある場合を示している。図３３は単予測であってＬ０予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合を示している。同様に、図３２および図３３のＬ０予測の参照ピクチャをＬ１予測の参照ピクチャ（ＲｅｆＬ１Ｐｉｃ）に置き換えて単予測を行うこともできる。
【０２８２】
２つの参照ピクチャからの予測を行う処理を双予測と定義し、双予測の場合はＬ０予測とＬ１予測の双方を利用してＢＩ予測と表現する。図３４は双予測であってＬ０予測の参照ピクチャが処理対象ピクチャより前の時刻にあって、Ｌ１予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合を示している。図３５は双予測であってＬ０予測の参照ピクチャとＬ１予測の参照ピクチャが処理対象ピクチャより前の時刻にある場合を示している。図３６は双予測であってＬ０予測の参照ピクチャとＬ１予測の参照ピクチャが処理対象ピクチャより後の時刻にある場合を示している。
【０２８３】
このように、Ｌ０／Ｌ１の予測種別と時間の関係は、Ｌ０が過去方向、Ｌ１が未来方向とは限定されずに用いることが可能である。また双予測の場合に、同一の参照ピクチャを用いてＬ０予測及びＬ１予測のそれぞれを行ってもよい。なお、動き補償予測を単予測で行うか双予測で行うかの判断は、例えばＬ０予測を利用するか否か及びＬ１予測を利用するか否かを示す情報（例えば、フラグ）に基づき判断される。
【０２８４】
＜参照インデックスについて＞
本発明の実施の形態では、動き補償予測の精度向上のために、動き補償予測において複数の参照ピクチャの中から最適な参照ピクチャを選択することを可能とする。そのため、動き補償予測で利用した参照ピクチャを参照インデックスとして利用するとともに、参照インデックスを差分動きベクトルとともにビットストリーム中に符号化する。
【０２８５】
＜通常予測動きベクトルモードに基づく動き補償処理＞
動き補償予測部３０６は、図１６の符号化側におけるインター予測部１０２でも示されるように、インター予測モード判定部３０５において、通常予測動きベクトルモード導出部３０１によるインター予測情報が選択された場合には、このインター予測情報をインター予測モード判定部３０５から取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、予測方法決定部１０５に供給される。
【０２８６】
同様に、動き補償予測部４０６は、図２２の復号側におけるインター予測部２０３でも示されるように、復号の過程でスイッチ４０８が通常予測動きベクトルモード導出部４０１に接続された場合には、通常予測動きベクトルモード導出部４０１によるインター予測情報を取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、復号画像信号重畳部２０７に供給される。
【０２８７】
＜通常マージモードに基づく動き補償処理＞
動き補償予測部３０６は、図１６の符号化側におけるインター予測部１０２でも示されるように、インター予測モード判定部３０５において、通常マージモード導出部３０２によるインター予測情報が選択された場合には、このインター予測情報をインター予測モード判定部３０５から取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、予測方法決定部１０５に供給される。
【０２８８】
同様に、動き補償予測部４０６は、図２２の復号側におけるインター予測部２０３でも示されるように、復号の過程でスイッチ４０８が通常マージモード導出部４０２に接続された場合には、通常マージモード導出部４０２によるインター予測情報を取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、復号画像信号重畳部２０７に供給される。
【０２８９】
＜サブブロック予測動きベクトルモードに基づく動き補償処理＞
動き補償予測部３０６は、図１６の符号化側におけるインター予測部１０２でも示されるように、インター予測モード判定部３０５において、サブブロック予測動きベクトルモード導出部３０３によるインター予測情報が選択された場合には、このインター予測情報をインター予測モード判定部３０５から取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、予測方法決定部１０５に供給される。
【０２９０】
同様に、動き補償予測部４０６は、図２２の復号側におけるインター予測部２０３でも示されるように、復号の過程でスイッチ４０８がサブブロック予測動きベクトルモード導出部４０３に接続された場合には、サブブロック予測動きベクトルモード導出部４０３によるインター予測情報を取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、復号画像信号重畳部２０７に供給される。
【０２９１】
＜サブブロックマージモードに基づく動き補償処理＞
動き補償予測部３０６は、図１６の符号化側におけるインター予測部１０２でも示されるように、インター予測モード判定部３０５において、サブブロックマージモード導出部３０４によるインター予測情報が選択された場合には、このインター予測情報をインター予測モード判定部３０５から取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、予測方法決定部１０５に供給される。
【０２９２】
同様に、動き補償予測部４０６は、図２２の復号側におけるインター予測部２０３でも示されるように、復号の過程でスイッチ４０８がサブブロックマージモード導出部４０４に接続された場合には、サブブロックマージモード導出部４０４によるインター予測情報を取得し、現在処理対象となっているブロックのインター予測モード、参照インデックス、動きベクトルを導出し、動き補償予測信号を生成する。生成された動き補償予測信号は、復号画像信号重畳部２０７に供給される。
【０２９３】
＜アフィン変換予測に基づく動き補償処理＞
通常予測動きベクトルモード、および通常マージモードでは、以下のフラグに基づいてアフィンモデルによる動き補償が利用できる。以下のフラグは、符号化処理においてインター予測モード判定部３０５により決定されるインター予測の条件に基づいて以下のフラグに反映され、ビットストリーム中に符号化される。復号処理においては、ビットストリーム中の以下のフラグに基づいてアフィンモデルによる動き補償を行うか否かを特定する。
【０２９４】
sps_affine_enabled_flagは、インター予測において、アフィンモデルによる動き補償が利用できるか否かを表す。sps_affine_enabled_flagが０であれば、シーケンス単位でアフィンモデルによる動き補償ではないように抑制される。また、inter_affine_flag とcu_affine_type_flag は、符号化ビデオシーケンスのＣＵ（符号化ブロック）シンタックスにおいて伝送されない。sps_affine_enabled_flagが１であれば、符号化ビデオシーケンスにおいてアフィンモデルによる動き補償を利用できる。
【０２９５】
sps_affine_type_flagは、インター予測において、6パラメータアフィンモデルによる動き補償が利用できるか否かを表す。sps_affine_type_flagが０であれば、6パラメータアフィンモデルによる動き補償ではないように抑制される。また、cu_affine_type_flagは、符号化ビデオシーケンスのＣＵシンタックスにおいて伝送されない。sps_affine_type_flagが１であれば、符号化ビデオシーケンスにおいて6パラメータアフィンモデルによる動き補償を利用できる。sps_affine_type_flagが存在しない場合には、０であるものとする。
【０２９６】
PまたはBスライスを復号している場合、現在処理対象となっているＣＵにおいて、inter_affine_flagが１であれば、現在処理対象となっているＣＵの動き補償予測信号を生成するために、アフィンモデルによる動き補償が用いられる。inter_affine_flagが０であれば、現在処理対象となっているＣＵにアフィンモデルは用いられない。inter_affine_flagが存在しない場合には、０であるものとする。
【０２９７】
PまたはBスライスを復号している場合、現在処理対象となっているＣＵにおいて、cu_affine_type_flagが１であれば、現在処理対象となっているＣＵの動き補償予測信号を生成するために、6パラメータアフィンモデルによる動き補償が用いられる。cu_affine_type_flagが０であれば、現在処理対象となっているＣＵの動き補償予測信号を生成するために、4パラメータアフィンモデルによる動き補償が用いられる。
【０２９８】
アフィンモデルによる動き補償では、サブブロック単位で参照インデックスや動きベクトルが導出されることから、サブブロック単位で処理対象となっている参照インデックスや動きベクトルを用いて動き補償予測信号を生成する。
【０２９９】
4パラメータアフィンモデルは２つの制御点のそれぞれの動きベクトルの水平成分及び垂直成分の４つのパラメータからサブブロックの動きベクトルを導出し、サブブロック単位で動き補償を行うモードである。
【０３００】
（第２の実施の形態）
第２の実施の形態では、サブブロックマージモード導出部３０４・４０４におけるアフィン構築マージ候補の導出の際に、各アフィン制御点（ＣＰ０，ＣＰ１，ＣＰ２，ＣＰ３）の参照画像との比較する対象となる参照画像を固定して、アフィン変換か可能であるか否か判断する。例えば、参照画像インデックス０をもつ参照画像に固定して、各アフィン制御点（ＣＰ０，ＣＰ１，ＣＰ２，ＣＰ３）の各組み合わせによりアフィン変換可能であるか否かを判断する。
【０３０１】
各アフィン制御点の参照画像を固定した参照画像と比較することにより、左上アフィン制御点ＣＰ０を用いない右上アフィン制御点ＣＰ１，左下アフィン制御点ＣＰ２，右下アフィン制御点ＣＰ３による３本アフィン制御点アフィンモデルを構築できる。これにより、アフィン構築マージ候補を導出できる可能性を高めることができ、アフィンマージモードの予測精度が高まり、符号化効率が向上する。
【０３０２】
以上に述べた全ての実施の形態は、複数を組み合わせても良い。
【０３０３】
以上に述べた全ての実施の形態において、画像符号化装置が出力するビットストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有している。また、この画像符号化装置に対応する画像復号装置は、この特定のデータフォーマットのビットストリームを復号することができる。
【０３０４】
画像符号化装置と画像復号装置の間でビットストリームをやりとりするために、有線または無線のネットワークが用いられる場合、通信路の伝送形態に適したデータ形式にビットストリームを変換して伝送してもよい。その場合、画像符号化装置が出力するビットストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する送信装置と、ネットワークから符号化データを受信してビットストリームに復元して画像復号装置に供給する受信装置とが設けられる。送信装置は、画像符号化装置が出力するビットストリームをバッファするメモリと、ビットストリームをパケット化するパケット処理部と、ネットワークを介してパケット化された符号化データを送信する送信部とを含む。受信装置は、ネットワークを介してパケット化された符号化データを受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理してビットストリームを生成し、画像復号装置に提供するパケット処理部とを含む。
【０３０５】
また、画像復号装置で復号された画像を表示する表示部を構成に追加することで、表示装置としても良い。その場合、表示部は、復号画像信号重畳部２０７により生成され、復号画像メモリ２０８に格納された復号画像信号を読み出して画面に表示する。
【０３０６】
また、撮像部を構成に追加し、撮像した画像を画像符号化装置に入力することで、撮像装置としても良い。その場合、撮像部は、撮像した画像信号をブロック分割部１０１に入力する。
【０３０７】
図３７に、本実施の形態の符号化復号装置のハードウェア構成の一例を示す。符号化復号装置は、本発明の実施の形態に係る画像符号化装置、および画像復号装置の構成を包含する。係る符号化復号装置９０００は、ＣＰＵ９００１、コーデックＩＣ９００２、Ｉ／Ｏインターフェース９００３、メモリ９００４、光学ディスクドライブ９００５、ネットワークインターフェース９００６、ビデオインターフェース９００９を有し、各部はバス９０１０により接続される。
【０３０８】
画像符号化部９００７と画像復号部９００８は、典型的にはコーデックＩＣ９００２として実装される。本発明の実施の形態に係る画像符号化装置の画像符号化処理は、画像符号化部９００７により実行され、本発明の実施の形態に係る画像復号装置における画像復号処理は、画像復号部９００８により実行される。Ｉ／Ｏインターフェース９００３は、例えばＵＳＢインターフェースにより実現され、外部のキーボード９１０４、マウス９１０５等と接続する。ＣＰＵ９００１は、Ｉ／Ｏインターフェース９００３を介して入力したユーザー操作に基づき、ユーザーの所望する動作を実行するように符号化復号装置９０００を制御する。キーボード９１０４、マウス９１０５等によるユーザーの操作としては、符号化、復号のどちらの機能を実行するかの選択、符号化品質の設定、ビットストリームの入出力先、画像の入出力先等がある。
【０３０９】
ユーザーがディスク記録媒体９１００に記録された画像を再生する操作を所望する場合、光学ディスクドライブ９００５は、挿入されたディスク記録媒体９１００からビットストリームを読出し、読み出したビットストリームを、バス９０１０を介してコーデックＩＣ９００２の画像復号部９００８に送る。画像復号部９００８は入力したビットストリームに対して本発明の実施の形態に係る画像復号装置における画像復号処理を実行し、復号画像を、ビデオインターフェース９００９を介して外部のモニタ９１０３へ送る。また、符号化復号装置９０００は、ネットワークインターフェース９００６を有し、ネットワーク９１０１を介して、外部の配信サーバ９１０６や、携帯端末９１０７と接続可能である。ユーザーがディスク記録媒体９１００に記録された画像に変えて、配信サーバ９１０６や携帯端末９１０７に記録された画像を再生することを所望する場合は、ネットワークインターフェース９００６は、入力されたディスク記録媒体９１００からビットストリームを読出すことに変えて、ネットワーク９１０１よりビットストリームを取得する。また、ユーザーがメモリ９００４に記録された画像を再生することを所望する場合は、メモリ９００４に記録されたビットストリームに対して、本発明の実施の形態に係る画像復号装置における画像復号処理を実行する。
【０３１０】
ユーザーが外部のカメラ９１０２で撮像した画像を符号化しメモリ９００４に記録する操作を所望する場合、ビデオインターフェース９００９は、カメラ９１０２から画像を入力し、バス９０１０を介し、コーデックＩＣ９００２の画像符号化部９００７に送る。画像符号化部９００７は、ビデオインターフェース９００９を介して入力した画像に対して本発明の実施の形態に係る画像符号化装置における画像符号化処理を実行し、ビットストリームを作成する。そしてビットストリームを、バス９０１０を介し、メモリ９００４へ送る。ユーザーがメモリ９００４に変えて、ディスク記録媒体９１００にビットストリームを記録することを所望する場合は、光学ディスクドライブ９００５は、挿入されたディスク記録媒体９１００に対しビットストリームの書き出しを行う。
【０３１１】
画像符号化装置を有し画像復号装置を有さないハードウェア構成や、画像復号装置を有し画像符号化装置を有さないハードウェア構成を実現することも可能である。そのようなハードウェア構成は、例えばコーデックＩＣ９００２が、画像符号化部９００７、または画像復号部９００８にそれぞれ置き換わることにより実現される。
【０３１２】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現しても良いのは勿論のこと、ＲＯＭ（リード・オンリー・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによって実現しても良い。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供しても良いし、有線あるいは無線のネットワークを通してサーバから提供しても良いし、地上波あるいは衛星ディジタル放送のデータ放送として提供しても良い。
【０３１３】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０３１４】
１００  画像符号化装置、  １０１  ブロック分割部、  １０２  インター予測部、  １０３  イントラ予測部、１０４  復号画像メモリ、  １０５  予測方法決定部、  １０６  残差生成部、  １０７  直交変換・量子化部、  １０８  ビット列符号化部、  １０９  逆量子化・逆直交変換部、  １１０  復号画像信号重畳部、  １１１  符号化情報格納メモリ、  ２００  画像復号装置、  ２０１  ビット列復号部、  ２０２  ブロック分割部、  ２０３  インター予測部  ２０４  イントラ予測部、  ２０５  符号化情報格納メモリ  ２０６  逆量子化・逆直交変換部、  ２０７  復号画像信号重畳部、  ２０８  復号画像メモリ。
【図１】
2020109964.tif 000003
【図２】
2020109964.tif 000004
【図３】
2020109964.tif 000005
【図４】
2020109964.tif 000006
【図５】
2020109964.tif 000007
【図６Ａ】
2020109964.tif 000008
【図６Ｂ】
2020109964.tif 000009
【図６Ｃ】
2020109964.tif 000010
【図６Ｄ】
2020109964.tif 000011
【図６Ｅ】
2020109964.tif 000012
【図７】
2020109964.tif 000013
【図８】
2020109964.tif 000014
【図９】
2020109964.tif 000015
【図１０Ａ】
2020109964.tif 000016
【図１０Ｂ】
2020109964.tif 000017
【図１１】
2020109964.tif 000018
【図１２】
2020109964.tif 000019
【図１３】
2020109964.tif 000020
【図１４】
2020109964.tif 000021
【図１５】
2020109964.tif 000022
【図１６】
2020109964.tif 000023
【図１７】
2020109964.tif 000024
【図１８】
2020109964.tif 000025
【図１９】
2020109964.tif 000026
【図２０】
2020109964.tif 000027
【図２１】
2020109964.tif 000028
【図２２】
2020109964.tif 000029
【図２３】
2020109964.tif 000030
【図２４】
2020109964.tif 000031
【図２５】
2020109964.tif 000032
【図２６】
2020109964.tif 000033
【図２７】
2020109964.tif 000034
【図２８】
2020109964.tif 000035
【図２９】
2020109964.tif 000036
【図３０】
2020109964.tif 000037
【図３１Ａ】
2020109964.tif 000038
【図３１Ｂ】
2020109964.tif 000039
【図３１Ｃ】
2020109964.tif 000040
【図３２】
2020109964.tif 000041
【図３３】
2020109964.tif 000042
【図３４】
2020109964.tif 000043
【図３５】
2020109964.tif 000044
【図３６】
2020109964.tif 000045
【図３７】
2020109964.tif 000046
【図３８】
2020109964.tif 000047
【図３９】
2020109964.tif 000048
【図４０】
2020109964.tif 000049
【図４１】
2020109964.tif 000050
【図４２】
2020109964.tif 000051
【図４３】
2020109964.tif 000052
【図４４】
2020109964.tif 000053
【図４５】
2020109964.tif 000054
【図４６】
2020109964.tif 000055
【図４７】
2020109964.tif 000056
【図４８】
2020109964.tif 000057
【図４９】
2020109964.tif 000058
【図５０】
2020109964.tif 000059
【図５１】
2020109964.tif 000060
【図５２】
2020109964.tif 000061
【図５３】
2020109964.tif 000062
【図５４】
2020109964.tif 000063
【図５５】
2020109964.tif 000064
【図５６】
2020109964.tif 000065
【図５７】
2020109964.tif 000066
【図５８】
2020109964.tif 000067
【図５９】
2020109964.tif 000068
【図６０】
2020109964.tif 000069
【図６１】
2020109964.tif 000070
【図６２】
2020109964.tif 000071
【図６３】
2020109964.tif 000072