(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-06
(45)【発行日】2024-11-14
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/513 20140101AFI20241107BHJP
H04N 19/117 20140101ALI20241107BHJP
H04N 19/157 20140101ALI20241107BHJP
H04N 19/46 20140101ALI20241107BHJP
【FI】
H04N19/513
H04N19/117
H04N19/157
H04N19/46
(21)【出願番号】P 2023117078
(22)【出願日】2023-07-18
(62)【分割の表示】P 2019172234の分割
【原出願日】2019-09-20
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】木谷 佳隆
(72)【発明者】
【氏名】河村 圭
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】内藤 整
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-527896(JP,A)
【文献】特表2022-539455(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像復号装置であって、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記マージ部は、ペアワイズ平均マージにより導出される前記動きベクトルの参照位置に応じて、導出するハーフペルインデックスの値を制御するように構成されていることを特徴とする画像復号装置。
【請求項2】
画像復号装置であって、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記マージ部は、ペアワイズ平均マージにより導出される前記ハーフペルインデックスに応じて、導出する前記動きベクトルの参照位置を制御するように構成されていることを特徴とする画像復号装置。
【請求項3】
画像復号装置であって、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
MMVD(Merge Motion Vector Difference)により、前記動きベクトルを洗練化するように構成されている動きベクトル洗練化部と、
洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記動きベクトル洗練化部は、MMVDが適用される場合、前記ハーフペルインデックスに応じて、MMVDの適用後の動きベクトルの参照位置を制御するように構成されていることを特徴とする画像復号装置。
【請求項4】
画像復号装置であって、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
DMVR(Decoder-side Motion Vector Refinement)により、前記動きベクトルを洗練化するように構成されている動きベクトル洗練化部と、
洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記動きベクトル洗練化部は、DMVRが適用される場合、DMVRの適用後の動きベクトルの参照位置に応じて、前記ハーフペルインデックスを制御するように構成されていることを特徴とする画像復号装置。
【請求項5】
画像復号装置であって、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
DMVR(Decoder-side Motion Vector Refinement)により、前記動きベクトルを洗練化するように構成されている動きベクトル洗練化部と、
洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記動きベクトル洗練化部は、DMVRが適用される場合、前記ハーフペルインデックスに応じて、DMVRの適用後の動きベクトルの参照位置を制御するように構成されていることを特徴とする画像復号装置。
【請求項6】
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号する工程Aと、
前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定する工程Bと、
前記内挿フィルタを用いて、動き補償予測画素信号を生成する工程Cとを備え、
前記工程Aにおいて、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号し、
対象ブロックは、マージであり、
前記工程Aにおいて、ペアワイズ平均マージにより導出される前記動きベクトルの参照位置に応じて、導出するハーフペルインデックスの値を制御することを特徴とする画像復号方法。
【請求項7】
コンピュータを、画像復号装置として機能させるプログラムであって、
前記画像復号装置は、
マージインデックスから、動きベクトル及び動き補償予測画素信号を生成するための内挿フィルタの種別を示すハーフペルインデックスを復号するように構成されているマージ部と、
前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、
前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、
前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されており、
対象ブロックは、マージであり、
前記マージ部は、ペアワイズ平均マージにより導出される前記動きベクトルの参照位置に応じて、導出するハーフペルインデックスの値を制御するように構成されていることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1では、動き補償予測(以下、MC予測)という技術について、マージ符号化(以下、マージ)と適応ベクトル符号化(以下、AMVP)という動きベクトル(以下、mv)を導出する技術が用意されており、導出したmvを用いてMC予測画像信号を生成するための2種類の内挿フィルタが用意されている。
【0003】
1つ目は、非特許文献2と同じ内挿フィルタ(以下、HEVCフィルタ)であり、2つ目は、非特許文献1で新たに導入された内挿フィルタ(以下、平滑化フィルタ)である。
【0004】
いずれもmvの参照先が小数画素精度位置にある場合に適用されるが、上述の平滑化フィルタは、mvの参照先が1/2画素精度位置である場合に限定され、さらに、上述の平滑化フィルタが有効であるかどうかを示すハーフペルインデックス(以下、hpelIfIdx)が有効と示す場合にのみ適用される。それ以外の場合は、HEVCフィルタが適用される。
【0005】
上述のhpelIfIdxは、符号化対象のブロック(以下、対象ブロック)がマージである場合、既に処理が完了した隣接ブロックから継承され、対象ブロックがAMVPである場合は、導出されたmvからhpelIfIdxの値が決定される。
【先行技術文献】
【非特許文献】
【0006】
【文献】Versatile Video Coding(Draft 6)、JVET-N1001
【文献】ITU-T H.265 High Efficiency Video Coding
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述の非特許文献1では、対象ブロックがマージであって且つペアワイズ平均マージ(pair-wise average merge)又はMMVD(Merge Motion Vector Difference)或いはDMVR(Decoder-side Motion Vector Refinement)が有効な場合、隣接ブロックから継承されるhpelIfIdxが、平滑化フィルタが有効と示す場合であっても、ペアワイズ平均マージ又はMMVD又はDMVRによりmvの参照先が1/2画素精度位置ではなくなる場合がある。
【0008】
このとき、対象ブロック及び対象ブロックからhpelIfIdxとmvとを継承する未来のブロックにて、以下2つの課題が生じる。
1.対象ブロックのMC予測における異なるフィルタの混在使用。
2.未来のブロックに対する平滑化フィルタの有効条件の不一致(hpelIfIdxとmvとの不一致)の伝搬。
【0009】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ハーフペルインデックスに応じてペアワイズ平均マージ又はMMVD又はDMVRによって導出される動きベクトルの参照画素精度位置を制御する、或いは、導出された動きベクトルに応じてハーフペルインデックスを制御することができるようになり、対象ブロックの平滑化フィルタの有効条件の不備を解消し、さらに、未来のブロックに対して平滑化フィルタの有効条件の不備の伝搬を回避することができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の特徴は、画像復号装置であって、マージインデックスから、動きベクトル及び前記動きベクトルが1/2画素精度位置を参照するかどうかを示すハーフペルインデックスを復号するように構成されているマージ部と、MMVD(Merge Motion Vector Difference)或いはDMVR(Decoder-side Motion Vector Refinement)により、前記動きベクトルを洗練化するように構成されている動きベクトル洗練化部と、洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されていることを要旨とする。
【0011】
本発明の第2の特徴は、画像復号方法であって、マージインデックスから、動きベクトル及び前記動きベクトルが1/2画素精度位置を参照するかどうかを示すハーフペルインデックスを復号する工程Aと、MMVD(Merge Motion Vector Difference)或いはDMVR(Decoder-side Motion Vector Refinement)により、前記動きベクトルを洗練化する工程Bと、洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定する工程Cと、前記内挿フィルタを用いて、動き補償予測画素信号を生成する工程Dとを備え、前記工程Aにおいて、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号することを要旨とする。
【0012】
本発明の第3の特徴は、コンピュータを、画像復号装置として機能させるプログラムであって、前記画像復号装置は、マージインデックスから、動きベクトル及び前記動きベクトルが1/2画素精度位置を参照するかどうかを示すハーフペルインデックスを復号するように構成されているマージ部と、MMVD(Merge Motion Vector Difference)或いはDMVR(Decoder-side Motion Vector Refinement)により、前記動きベクトルを洗練化するように構成されている動きベクトル洗練化部と、洗練化された前記動きベクトルと前記ハーフペルインデックスとに基づいて、内挿フィルタの使用有無及び内挿フィルタ種別を判定するように構成されているフィルタ判定部と、前記内挿フィルタを用いて、動き補償予測画素信号を生成するように構成されているフィルタ適用部とを備え、前記マージ部は、所定のマージリスト構築方法により、マージリストを生成し、前記マージリスト及び前記マージインデックスから、前記動きベクトル及び前記ハーフペルインデックスを復号するように構成されていることを要旨とする。
【発明の効果】
【0013】
本発明によれば、ハーフペルインデックスに応じてペアワイズ平均マージ又はMMVD又はDMVRによって導出される動きベクトルの参照画素精度位置を制御する、或いは、導出された動きベクトルに応じてハーフペルインデックスを制御することができるようになり、対象ブロックの平滑化フィルタの有効条件の不備を解消し、さらに、未来のブロックに対して平滑化フィルタの有効条件の不備の伝搬を回避することができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】一実施形態に係る画像処理システム1の構成の一例を示す図である。
【
図2】一実施形態に係る画像符号化装置100の機能ブロックの一例を示す図である。
【
図3】一実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例を示す図である。
【
図4】一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図5】一実施形態に係る画像復号装置200のインター予測部241の機能ブロックの一例を示す図である。
【
図6】一実施形態に係るフィルタ判定部111D1/241C1における内挿フィルタの適用有無及びフィルタ種別の判定処理の一例について示すフローチャートである。
【
図7】一実施形態に係るに係るハーフペルインデックス(hpelIfIdx)の判定処理の一例について示すフローチャートである。
【
図8】非特許文献1の判定処理について説明するための図である。
【
図9】一実施形態に係る画像復号装置200のmv洗練化部241Bの機能ブロックの一例を示す図である。
【
図10】一実施形態に係るマージリスト構築処理の一例について示すフローチャートである。
【
図11】一実施形態に係るマージリスト構築処理にて生成されるマージリストの一例について示す図である。
【
図12】一実施形態に係る空間マージの一例について示す図である。
【
図13】一実施形態に係る時間マージの一例について示す図である。
【
図14】一実施形態に係る時間マージにおける動きベクトルのスケーリング処理の一例について説明するための図である。
【
図15】一実施形態に係るヒストリーマージの一例について示す図である。
【
図16】一実施形態に係るペアワイズ平均マージにより算出される新たな動きベクトルとハーフペルインデックスとの組の一例について示す図である。
【
図17】一実施形態に係るペアワイズ平均マージにより生成される新たなハーフペルインデックスの設定処理の一例について示すフローチャートである。
【
図18】一実施形態に係るペアワイズ平均マージにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図19】一実施形態に係るペアワイズ平均マージにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図20】一実施形態に係るペアワイズ平均マージにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図21】一実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図22】一実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図23】一実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図24】一実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図25】一実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明するための図である。
【
図26】一実施形態に係るペアワイズ平均マージによって導出された動きベクトルがMMVD又はDMVRによって修正される場合の変更例について説明するための図である。
【
図27】一実施形態に係るペアワイズ平均マージによる動きベクトルの導出例について説明するための図である。
【
図28】一実施形態に係るペアワイズ平均マージによる動きベクトルの導出例について説明するための図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0016】
<第1実施形態>
以下、
図1~
図28を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。
図1は、本実施形態に係る画像処理システム10について示す図である。
【0017】
図1に示すように、本実施形態に係る画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
【0018】
画像符号化装置100は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【0019】
符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
【0020】
(画像符号化装置100)
以下、
図2を参照して、本実施形態に係る画像符号化装置100について説明する。
図2は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
【0021】
図2に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
【0022】
インター予測部111は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0023】
具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトル(mv)を決定するように構成されている。
【0024】
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて符号化対象のブロック(以下、対象ブロック)に含まれる予測信号を対象ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【0025】
イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0026】
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を対象ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
【0027】
ここで、参照ブロックは、対象ブロックについて参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【0028】
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【0029】
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
【0030】
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
【0031】
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
【0032】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT:Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST:Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
【0033】
逆変換・逆量子化部132は、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0034】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0035】
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【0036】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【0037】
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【0038】
ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズ、予測ブロック(PU:Prediction Unit)サイズ、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
【0039】
また、制御データは後述するようにシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダなどのヘッダ情報を含んでも良い。
【0040】
インループフィルタ処理部150は、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
【0041】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0042】
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
【0043】
ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
【0044】
(インター予測部111)
以下、
図3を参照して、本実施形態に係る画像符号化装置100のインター予測部111について説明する。
図3は、本実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例について示す図である。
【0045】
図3に示すように、インター予測部111は、mv導出部111Aと、AMVR部111Bと、mv洗練化部111Bと、予測信号生成部111Dとを有する。
【0046】
インター予測部111は、動きベクトルに基づいて対象ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【0047】
mv導出部111Aは、
図3に示すように、AMVP(Adaptive Motion Vector Prediction)部111A1と、マージ部111A2とを有し、フレームバッファ160からの対象フレーム及び参照フレームを入力とし、動きベクトルを取得するように構成されている。
【0048】
AMVP部111A1は、対象フレームと参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを探索するように構成されている。
【0049】
また、上述の探索処理を複数の参照フレーム候補に対して行い、対象ブロックで予測に用いる参照フレーム及び動きベクトルを決定し、後段の予測信号生成部111Dに出力する。
【0050】
参照フレーム及び動きベクトルについては、1つのブロックに対して最大2つずつ用いることができる。1つのブロックに対して参照フレーム及び動きベクトルを1組のみ用いる場合を「片予測」と呼び、参照フレームと動きベクトルを2組用いる場合を「双予測」と呼ぶ。以下、1組目を「L0」と呼び、2組目を「L1」と呼ぶ。
【0051】
更に、AMVP部111Aは、上述の決定した動きベクトルを最終的に復号装置に伝送する際に、符号量を削減するために、隣接する符号化済みの動きベクトルから導出された動きベクトル予測子(mvp:motion vector predictor)の候補の中から、かかる対象ブロックの動きベクトルとの差分、すなわち、動きベクトル差分(mvd:motion vector difference)が小さくなるmvpを選択する。
【0052】
このように選択されたmvp及びmvdを示すインデックス及び参照フレームを示すインデックス(以下、Refidx)が符号化部140で符号化され、画像復号装置200に伝送される。かかる処理は、適応動きベクトル予測符号化(AMVP:Adaptive:Motion Vector Preidicion)と一般に呼ばれる。
【0053】
なお、上記の動きベクトルの探索方法、参照フレーム及び動きベクトルの決定方法、mvpの選択方法、mvdの算出方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
【0054】
AMVR部111Bは、AMVP部111Aで算出したmvdの伝送精度を変えるAMVR(Adaptive Motion Vector Resolution)の機能を有する。
【0055】
mvdは、上述のように対象ブロックの動きベクトルとmvpとの和から導出しているため、mvdの伝送精度を変更することは、対象ブロックの動きベクトル自体の精度を変更することを意味する。
【0056】
非特許文献1では、AMVRによるmvdの伝送精度のバリエーションが3種類用意されている。通常のmvdの伝送精度は1/16画素精度であり、このとき、動きベクトルは、最終的に1/16画素精度の位置を参照することになるが、AMVRが有効時には、mvdの伝送精度が1/4画素精度、1/2画素精度、1画素精度(すなわち、整数画素精度)から選択される。
【0057】
ただし、対象ブロックがアフィンである場合は、mvdの伝送精度が1/4画素精度、1/16画素精度、1画素精度が選択される。ここで、アフィンとは、非特許文献1のAffineである。
【0058】
さらに、非特許文献1では、上述のmvdの伝送精度として1/2画素精度が選択される場合に限り、1/2画素精度以外が選択される場合に適用される内挿フィルタとは別の内挿フィルタが後段の予測信号生成部111Dにて選択される構成となっている。詳細は後述する。
【0059】
また、AMVR部111BでAMVR処理が有効と判定される場合は、AMVRが有効と示すフラグ及びAMVRによりmvdがどの精度に修正されるかを示すインデックスを、画像復号装置200に伝送する。
【0060】
マージ部111A2では、対象ブロックの動き情報をAMVP部111A1のように探索して導出することや、隣接ブロックとの差分としてmvdとして伝送はせず、対象フレーム及び参照フレームを入力として、対象ブロックと同一フレームにある隣接ブロック又は対象フレームと異なるフレームにある同一位置のブロックを参照ブロックとして、かかる参照ブロックの動き情報をそのまま継承して利用する。この処理は、マージ符号化(以下、マージ)と一般に呼ばれる。
【0061】
かかる対象ブロックがマージの場合、初めに、かかる対象ブロックに対するマージリストを作成する。マージリストは、参照フレームと動きベクトルとの組み合わせが複数列挙されたリストである。各組み合わせには、インデックス(以下、マージインデックス)が振られており、Refidx及び動きベクトルの情報を個別に符号化する代わりに、上述のマージインデックスのみを符号化し、画像復号装置200に伝送する。
【0062】
ここで、画像符号化装置100側と画像復号装置200側とで、マージリストの作成方法を共通化しておくことで、画像復号装置200側ではマージインデックス情報のみからRefidx及び動きベクトルの情報を復号することができる。マージリストの作成方法の詳細については後述する。
【0063】
mv洗練化部111Cは、マージ部111A2から出力される動きベクトルを修正する洗練化処理を行うように構成されている。詳細は後述する。
【0064】
予測信号生成部111Dは、動きベクトルを入力としてMC予測画像信号を出力するように構成されており、フィルタ判定部111D1とフィルタ適用部111D2を有する。
【0065】
フィルタ判定部111D1は、動きベクトルに基づいて内挿フィルタの適用有無及びフィルタ種別を判定する。詳細は後述する。
【0066】
フィルタ適用部111D2は、フィルタ判定部111D1で内挿フィルタが有効と判定された場合、選択された内挿フィルタ、動きベクトル及び参照フレームから予測信号を生成するように構成されている。
【0067】
フィルタ判定部111D1で内挿フィルタが無効と判定された場合は、内挿フィルタは使用されず、動きベクトル及び参照フレームにより予測信号が生成される。
【0068】
(画像復号装置200)
以下、
図4を参照して、本実施形態に係る画像復号装置200について説明する。
図4は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0069】
図4に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
【0070】
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【0071】
ここで、復号は、例えば、符号化部140で行われるエントロピー符号化とは逆の手順のエントロピー復号である。
【0072】
また、復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
【0073】
なお、上述したように、制御データは、符号化ブロックサイズ、予測ブロックサイズ、変換ブロックサイズ等のサイズデータを含んでもよい。
【0074】
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0075】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0076】
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
【0077】
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
【0078】
インター予測部241は、インター予測部111と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0079】
具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
【0080】
イントラ予測部242は、イントラ予測部112と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0081】
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
【0082】
インループフィルタ処理部250は、インループフィルタ処理部150と同様に、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
【0083】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック、あるいはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0084】
フレームバッファ260は、フレームバッファ160と同様に、インター予測部241で用いる参照フレームを蓄積するように構成されている。
【0085】
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
【0086】
(インター予測部241)
以下、
図5を参照して、本実施形態に係るインター予測部241について説明する。
図5は、本実施形態に係るインター予測部241の機能ブロックの一例について示す図である。
【0087】
図5に示すように、インター予測部241は、mv復号部241Aと、mv洗練化部241Bと、予測信号生成部111Cとを有する。
【0088】
インター予測部241は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【0089】
mv復号部241Aは、AMVP部241A1とマージ部241A2とを有し、フレームバッファ260から入力される対象フレーム及び参照フレーム、及び、画像符号化装置100から受信する制御データの復号によって、動きベクトルを取得するように構成されている。
【0090】
AMVP部241A1は、対象フレーム及び参照フレームと、画像符号化装置100から、mvp及びmvdを示すインデックス、Refidx、AMVR部111Bからのmvdの伝送精度を示すインデックスを受信し、動きベクトルを復号するように構成されている。動きベクトルの復号方法については、既知の手法を採用すること可能であるため、その詳細については省略する。
【0091】
マージ部241A2は、画像符号化装置100から、マージインデックスを受信し、動きベクトルを復号するように構成されている。
【0092】
具体的には、マージ部241A2は、画像符号化装置100と同じ方法で、マージリストを構築して、受信したマージインデックスに対応する動きベクトルを構築したマージリストから取得するように構成されている。マージリストの構築方法の詳細は、後述する。
【0093】
mv洗練化部241Bは、洗練化部111Cと同様に、動きベクトルを修正する洗練化処理を実行するように構成されている。
【0094】
予測信号生成部241Cは、フィルタ判定241C1とフィルタ適用部241C2とを有し、予測信号生成部111Cと同様に、動きベクトルに基づいて予測信号を生成するように構成されている。
【0095】
なお、画像復号装置200のフィルタ判定部241C1は、画像符号化装置100のフィルタ判定部111D1と全く同じ構成となるため、本実施形態では、以下、フィルタ判定部111D1の動作について代表して説明する。
【0096】
(内挿フィルタの判定処理)
以下、
図6を参照して、本実施形態に係るフィルタ判定部111D1/241C1における内挿フィルタの適用有無及びフィルタ種別の判定処理について説明する。
【0097】
図6は、本実施形態に係るフィルタ判定部111D1における内挿フィルタの適用有無及びフィルタ種別の判定処理順の一例を示すフローチャートである。
【0098】
図6に示すように、ステップS6-1において、フィルタ判定部111D1は、mvの参照位置が小数画素位置かどうかを判定する。mvの参照位置が小数画素位置である場合は、本処理は、ステップS6-2に進み、mvの参照位置が小数画素位置でない場合、即ち、mvの参照位置が整数画素値位置の場合は、本処理は、ステップS6-3に進む。
【0099】
ステップS6-2において、フィルタ判定部111D1は、内挿フィルタを適用すると判定し、本処理は、ステップS6-4に進む。
【0100】
ステップS6-3において、フィルタ判定部111D1は、内挿フィルタを適用しないと判定し、本処理を終了する。
【0101】
ステップS6-4において、フィルタ判定部111D1は、後述するハーフペルインデックス(hpelIfIdx)が無効すなわち「0」であるかどうかを判定する。hpelIfIdxが「0」である場合は、本処理は、ステップS6-5に進み、hpelIfIdxが有効すなわち「0」ではない場合は、本処理は、ステップS6-6に進む。
【0102】
ステップS6-5において、フィルタ判定部111D1は、内挿フィルタとしてHEVCフィルタを利用すると判定し、本処理を終了する。
【0103】
ここで、HEVCフィルタとは、非特許文献2と同様の8タップの線形内挿フィルタである。
【0104】
ステップS6-6において、フィルタ判定部111D1は、内挿フィルタとして平滑化フィルタを利用すると判定する。
【0105】
ここで、平滑化フィルタとは、例えば、非特許文献1で採用されている6タップのガウシアンフィルタを用いてもよい。また、hpelIfIdxの示す値によって、内挿フィルタとして複数のフィルタの利用を設定してもよい。
【0106】
このように、mvの参照位置が小数画素位置である際に、hpelIfIdxに基づいて、2種類以上の内挿フィルタの利用を適応的に切り換えることができるため、画像特性に併せて利用する内挿フィルタを選択できるため、結果として符号化性能の向上効果が期待できる。
【0107】
(ハーフペルインデックス(hpelIfIdx)の設定処理)
以下、
図7を参照して、本実施形態に係るハーフペルインデックス(hpelIfIdx)の判定処理について説明する。
【0108】
図7は、本実施形態に係るフィルタ判定部111D1におけるhpelIfIdxの判定処理順の一例を示すフローチャートである。
【0109】
hpelIfIdxは、上述したように、内挿フィルタの種別の判定に関わり、hpelIfIdxが「0」である場合、すなわち、無効の場合は、非特許文献2と同様の内挿フィルタを用いる。他方、hpelIfIdxが「0」でない場合、すなわち有効である場合は、平滑化フィルタを用いる。
【0110】
hpelIfIdxは、対象ブロックがマージである場合は、動きベクトルとRefIdxとを合わせて、参照ブロックから取得し、マージインデックスに対応付けられる。
【0111】
他方、対象ブロックがマージモードではなく、AMVPにより動きベクトルが復号される場合には、上述したAMVRの適用有無及び所定条件によって、hpelIfIdxの値が判定される。
【0112】
図7に示すように、ステップS7-1において、フィルタ判定部111D1は、AMVRが有効かどうかを判定する。判定には、例えば、非特許文献1と同様に、AMVRの適用有無を示すフラグ(amvr#flag)を復号することで判定してもよい。
【0113】
ステップS7-1において、AMVRが有効と判定される場合は、本処理は、ステップS7-2に進み、AMVRが無効と判定される場合は、本処理は、ステップS7-3に進む。
【0114】
ステップS7-2において、フィルタ判定部111D1は、所定条件1により、hpelIfIdxの値が「0」であるかどうかを判定する。
【0115】
ステップS7-2において、所定条件1が満たされていると判定された場合、本処理は、ステップS7-4に進み、所定条件1が満たされていないと判定された場合は、本処理は、ステップS7-5に進む。
【0116】
ここで、ステップS7-2の所定条件1において、AMVRの伝送精度を示すインデックス(amvr#precision#idx)を復号して判定してもよく、AMVRの伝送精度が1/2画素精度の場合に所定条件1を満たすと判定し、それ以外の場合は所定条件1を満たさないと判定する。
【0117】
また、ステップS7-2の所定条件1では、対象ブロックがアフィンであるかで判定してもよく、対象ブロックがアフィンである場合は、所定条件1を満たさないと判定し、アフィンでない場合はamvr#precision#idxがmvdの伝送精度を1/2画素精度を示す場合に所定条件1を満たすと判定する。
【0118】
ここで、アフィンとは、非特許文献1で採用されているAffineのことであり、本発明では、既知の手法を採用することが可能であるため、説明は省略する。
【0119】
また、ステップS7-2の所定条件1では、対象ブロックがIBCであるかで判定してもよく、対象ブロックがIBCである場合は、所定条件1を満たさないと判定し、IBCでない場合はamvr#precision#idxがmvdの伝送精度を1/2画素精度を示す場合に所定条件1を満たすと判定する。
【0120】
ここで、IBCとは、非特許文献1で採用されているIBC(Intra#Block#Copy)のことであり、本発明では、既知の手法を採用することが可能であるため、説明は省略する。
【0121】
ステップS7-3において、フィルタ判定部111D1は、hpelIfIdxが「0」であると判定し、本処理を終了する。
【0122】
ステップS7-4において、フィルタ判定部111D1は、hpelIfIdxが「1」であると判定し、本処理を終了する。
【0123】
ステップS7-5において、フィルタ判定部111D1は、hpelIfIdxが「0」であると判定し、本処理を終了する。
【0124】
なお、ここまで、hpelIfIdxの判定処理をフローチャートで説明したが、
図8に示す非特許文献1の判定処理のように、フィルタ判定部111D1は、amvr#flag、amvr#precision#idx、inter#affine#flagの復号結果及び対象ブロックがIBCであるかどうかに基づいて、Avmrshift値を決定し、かかるAmvr#shift値によってhpelIfidxの値を判定してもよい。
【0125】
(mv洗練化部)
以下、
図9を参照して、本実施形態に係るmv洗練化部241Bについて説明する。なお、符号化装置のmv洗練化部111Cは復号装置のmv洗練化部241Bと全く同じ構成となるため、本実施形態では、mv洗練化部241Bについて代表して説明する。
【0126】
図9は、本実施形態に係るmv洗練化部241Bの機能ブロックの一例について示す図である。
【0127】
図9に示すように、mv洗練化部241Bは、MMVD部241B1と、DMVR部241B2とを有する。
【0128】
MMVD部241B1及びDMVR部241B2において、具体的には、非特許文献1で採用されているMMVD(Merge mode with MVD)及びDMVR(Decoder side Motion Vector Refinement)で動きベクトルが洗練化される。
【0129】
具体的には、MMVD部241B1は、マージ部111A2から出力される動きベクトルの参照位置を基準として、
図9に示すように、参照位置の修正範囲を距離及び方向(垂直および水平)によって設定するように構成されている。
【0130】
MMVD部241B1は、修正距離について、修正範囲の中から所定コストが最も小さい修正位置を特定し、修正参照位置に基づいて動きベクトルを修正する洗練化処理を行うように構成されている。
【0131】
また、DMVR部241B2は、マージ部111A2から出力される動きベクトルによって特定される参照位置を基準として探索範囲を設定し、探索範囲の中から所定コストが最も小さい修正参照位置を特定し、修正参照位置に基づいて動きベクトルを修正する洗練化処理を行うように構成されている。
【0132】
ここで、mv洗練化部241Bにおいて、対象ブロックへのMMVDの適用有無、DMVRの適用有無も判定されるが、その判定処理は、非特許文献1に記載の既知の手法を本発明では用いることが可能であるため、説明は省略する。
【0133】
なお、MMVD及びDMVRのいずれも無効である場合は、マージ部111A2から出力される動きベクトルは、修正されずに、そのまま後段の予測信号生成部241Cに出力される。
【0134】
(マージリスト構築方法)
以下、
図10を参照して、本実施形態に係るマージリスト構築処理について説明する。
図10は、本実施形態に係るマージリスト構築処理の一例を示すフローチャートである。
【0135】
図10に示すように、本発明に係るマージリスト構築処理は、非特許文献1と同様に、合計5つのマージリストの構築処理によって構成される。
【0136】
具体的には、ステップS10-1の空間マージ、ステップS10-2の時間マージ、ステップS10-3のヒストリーマージ、ステップS10-4のペアワイズ平均マージ、ステップS10-5のゼロマージによるマージリストの構築処理から構成される。それぞれのマージリスト構築処理については、後述する。
【0137】
図11は、本実施形態に係るマージリスト構築処理にて生成されるマージリストの一例を示した図である。
【0138】
マージリストとは、上述したように、マージインデックスに対応する動きベクトル、Refidx、hepelIfIdxが登録されたリストである。
【0139】
ここで、マージインデックスの最大数は、非特許文献1では「5」と設定されているが、設計者の意図により、自由に設定してもよい。
【0140】
また、
図11にあるmvL0、mvL1、RefIdxL0、RefIdxL1は、それぞれ参照画像リストL0、L1の動きベクトルと参照画像インデックスを示す。
【0141】
ここで、参照画像リストL0、L1とは、参照フレームが登録されたリストのことを示し、RefIdxによって、その参照フレームが特定される。
【0142】
なお、
図11に示すマージリストには、L0及びL1双方の動きベクトルと参照画像インデックスを示しているが、参照ブロックによっては片方向予測である場合がある。その場合は、片方向分の動きベクトル及び参照画像インデックスが、かかるマージリストに登録される。また、そもそも参照ブロックに動きベクトルが存在しない場合は、その参照ブロックに対するマージリストの構築処理がスキップされる。
【0143】
(空間マージ)
図12は、空間マージについて示した図である。空間マージとは、対象ブロックと同一フレームに存在する隣接ブロックから、mv、RefIdx、hpelIfIdxを継承する技術である。
【0144】
具体的には、
図12に示すような位置関係にある隣接ブロックから、上述のmv、Refidx、hpelfIdxを継承し、その処理順は、非特許文献1と同様に、
図12に示すような順序としてもよい。
【0145】
なお、マージリスト処理では、上述の処理順でマージリストへのパラメータ登録がなされるが、マージリストに対して同じ動きベクトルと参照画像インデックスが登録されないようなチェック機構が存在する。これをpruning処理と呼ぶ。
【0146】
pruning処理の存在理由は、マージリストに登録される動きベクトル及び参照画像インデックスのバリエーションを増やすことであり、画像符号化装置100の観点では、画像特性に併せて所定コストが最も小さくなる動きベクトルが選択できるということであり、画像復号装置200では、その選択された動きベクトル及び参照画像インデックスに基づいて予測精度の高い予測信号を生成することができるため、結果的に符号化性能の向上効果が期待できるという点にある。
【0147】
空間マージでは、例えば、隣接ブロックA1が登録されれば、次の処理順にある隣接ブロックB1で、隣接ブロックA1で登録された動きベクトルと参照画像インデックスとの同一性が確認され、もし同一性が確認されれば、隣接ブロックB1の動きベクトル及び参照画像インデックスはマージリストに登録されない構成となっている。
【0148】
なお、非特許文献1では、隣接ブロックB0、隣接ブロックA0、隣接ブロックB2については、既にマージリストに登録済みの動きベクトルと参照画像インデックスとの同一性のチェック以外に、対象ブロックがトライアングルマージであるかどうかの確認が存在する。
【0149】
本実施形態では、pruning処理に対して、このトライアングルマージによる判定を追加してもよく、またトライアングマージとしては既知の手法を取ることが可能であるため、説明は省略する。
【0150】
また、非特許文献1では、空間マージによるマージインデックスの登録最大可能数を「4」と設定しており、隣接ブロックB2に関しては、それまでの空間マージ処理によって、既に4つのマージインデックスが登録されている場合は、B2の処理がスキップされる。
【0151】
本実施形態では、非特許文献1と同様に、隣接ブロックB2の処理を、既存のマージインデックス登録数によって判定してもよい。
【0152】
(時間マージ)
図13は、時間マージについて示した図である。時間マージとは、対象ブロックと異なるフレームに存在するが、同一位置の左下の隣接ブロック(
図13のC
1)又は同一位置にあるブロック(
図13のC
0)を参照ブロックと特定して、動きベクトルと参照画像インデックスを継承する技術である。
【0153】
かかる時間マージリストによるマージインデックスのマージリストへの登録最大可能数は、非特許文献1では、「1」となっており、本実施形態においても、登録最大可能数を同様に設定しもよい。
【0154】
また、時間マージにおいて継承される動きベクトルは、スケーリングされる特徴があり、
図14は、かかるスケーリング処理を示した図である。
【0155】
具体的には、
図14に示すように、対象ブロックの参照フレームと対象フレームが存在するフレームとの距離tbと、参照ブロックの参照フレームと参照ブロックの参照フレームの距離tdとに基づいて、参照ブロックのmvが、以下のようにスケーリングされる。
【0156】
mv’=(td/tb)×mv
時間マージでは、このスケーリングされたmv’がマージインデックスに対応する動きベクトルとしてマージインデックスに登録される構成となっている。
【0157】
(ヒストリーマージ)
図15は、ヒストリーマージについて示した図である。ヒストリーマージとは、対象ブロックよりも過去に符号化済みのインター予測ブロックが有する動きベクトル、参照画像インデックス、ハーフペルインデックスを、ヒストリーマージテーブルと呼ばれる記憶領域に別途記憶しておき、マージリストが前段の空間マージ処理、時間マージ処理で埋まっていない場合に、かかるヒストリーマージテーブルに登録されているマージインデックスをマージリストに登録するという技術である。
【0158】
図15は、ヒストリーマージテーブル構築処理の一例を示した図であり、ヒストリーマージインデックスによって、過去に符号化済みのブロックに対応する動きベクトル、参照画像インデックス、ハーフペルインデックスがヒストリーマージテーブルに登録される構成となっている。
【0159】
このヒストリーマージテーブルのヒストリーマージインデックスの最大登録数は、非特許文献1では、最大で「6」と設定されているが、設計者の意図によって自由に設定してもよい。
【0160】
また、このヒストリーマージテーブルへのヒストリーマージインデックスの登録処理は、FIFO処理となっており、ヒストリーマージテーブルがいっぱいになると新しいヒストリーマージテーブルが追加されるたびに、最後に登録されたヒストリーマージインデックスが削除される構成となっている。
【0161】
また、ヒストリーマージテーブルに登録されているヒストリーマージインデックスは、非特許文献1と同様に、対象ブロックが符号化ツリーブロック(CTU:Coding Tree Block)を跨ぐと初期化されてもよい。
【0162】
(ペアワイズ平均マージ)
図16は、ペアワイズ平均マージにより算出される新たな動きベクトルとハーフペルインデックスとの組について示した図である。
【0163】
ペアワイズ平均マージとは、マージリストに既に登録されている2組のマージインデックスに対応する動きベクトル、参照画像インデックス、ハーフペルインデックスを用いて、新たな動きベクトル、参照画像インデックス、ハーフペルインデックスを生成する技術である。
【0164】
ペアワイズ平均マージに利用する2組のマージインデックスは、非特許文献1と同様に、マージリストに登録されているマージインデックスの0番目及び1番目を固定で利用してもよいし、或いは、設計者の意図で、別の2組の組合せを自由に設定してもよい。
【0165】
ペアワイズ平均マージにおける新たな動きベクトルの生成方法は、
図16に示すように、マージリストの2組のマージインデックスに対応する動きベクトルを平均化して生成する。
【0166】
具体的には、例えば、2組のマージインデックスに対応する動きベクトルがそれぞれ2つある場合(すなわち、双予測である場合)、L0及びL1方向の動きベクトルmvL0P0/mvL1P0及びmvL0P1/mvL1P1によって、ペアワイズ平均マージの動きベクトルであるmvL0Avg及びmvL1Avgは、それぞれ以下のように独立して算出される。
【0167】
mvL0Avg=(mvL0P0+mvL0P1)/2
mvL1Avg=(mvL1P0+mvL1P1)/2
ここで、mvL0P0/mvL1P0又はmvL0P1/mvL1P1の片方が存在しない場合は、存在しない動きベクトルを除いて、上述の計算が行われる。
【0168】
このとき、非特許文献1では、ペアワイズ平均マージインデックスに紐づく参照画像インデックスをマージインデックスP0に紐づく参照画像インデックスRefIdxL0P0及びRefIdxL1P0を常に使用するように定めている。
【0169】
また、ペアワイズ平均マージにより生成される新たなハーフペルインデックスhpelIfIdxAvgは、
図17(a)及び
図17(b)に示すように、既にマージリストに登録済みの2組のマージインデックスに対応する2組のハーフペルインデックスhpelIfIdxP
0及びhpelIfIdxP
1に基づいて設定する。
【0170】
具体的には、ステップS17-1において、hpelIfIdxP0及びhpelIfIdxP1が同じであるかどうかを判定する。同じである場合は、本処理は、ステップS17-2に進み、同じでない場合は、本処理は、ステップS17-3に進む。
【0171】
ステップS17-2において、hpelIfIdxAvgをhpelIfIdxP0と設定する。
【0172】
ステップS17-3において、hpelIfIdxAvgを無効すなわち「0」と設定する。
【0173】
ここで、hpelIfIdxP
0及びhpelIfIdxP
1の取り得る値が「0」又は「1」である場合、
図17(a)に示すステップS17-1及びステップS17-3の処理について、
図17(b)のステップS17-4からステップS17-6のような処理に置き換えてもよい。
【0174】
(ペアワイズ平均マージにおけるハーフペルインデックスの設定条件不備解消)
以下、
図18~
図20を参照して、本実施形態に係るペアワイズ平均マージにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明する。
【0175】
図18は、本実施形態に係るペアワイズ平均マージによりハーフペルインデックスの設定条件に不備が生じる事例を示した図である。
【0176】
具体的には、ペアワイズ平均マージにより生成される新たな動きベクトル及びハーフペルインデックスは、上述のように、既にマージリストに登録された異なる2組のマージインデックスに対応する動きベクトルの平均化及び所定条件によるハーフペルインデックス値の判定により導出されると説明した。
【0177】
図16で示した例では、ペアワイズ平均マージにより生成されたhpelIfIdxAvgが「1」であり、mvL0Avg及びmvL1Avgがいずれも1/2画素精度位置にあるため、上述の平滑化フィルタの有効条件について対象ブロックが満たすことになる。
【0178】
一方、
図18のように、ペアワイズ平均マージにより生成されたhpelIfIdxAvgが有効すなわち「1」である場合で且つmvL0P
0、mvL1P
0、mvL0P
1及びmvL1P
1がいずれも1/2画素精度位置にある場合であっても、平均化されるmvL0P
0及びmvL0P
1の一方が1/2画素位置にあり、他方が整数画素位置にある場合は、mvL0Avgは、1/4画素精度位置を参照することとなる。これは、
図18のように、mvL1P
0及びmvL1P
1の平均化により生成されるmvL1Avgについても同様の構成となっている。
【0179】
対象ブロックがペアワイズ平均マージによる動きベクトルを用いて予測信号を生成することを考えると、この場合、周囲の参照ブロックから継承したハーフペルインデックスが「1」であるにも拘わらず、動きベクトルが1/4画素精度位置を参照するため、平滑化フィルタの有効条件を満たさないことになる。これは、対象ブロックの内挿フィルタにはHEVCフィルタが利用される一方で、参照先の周囲のブロックの内挿フィルタには平滑化フィルタが利用されるため、ブロック間で異なる内挿フィルタの利用が混在することを引き起こす。
【0180】
さらに、当該対象ブロックを参照する未来のブロックは、かかる対象ブロックからハーフペルインデックス=1と参照先が1/4画素精度位置にあるmvを継承するため、未来のブロックに対して、この平滑化フィルタの有効条件に対する不一致を伝搬することに繋がる。
【0181】
この課題については、既知の手法では解決されておらず、本実施形態において以下の2つの方法を提案する。
図19及び
図20は、かかる2つの解決手法を示した図である。
【0182】
まず、1つ目の方法について
図19に示す。
図19では、具体的には、上述したようなケース、すなわち、ステップS19-4に示すような、継承により生成したhpelIfIdxAvgが「1」である場合にも拘らず、mvL0Avg又はmvL1Avgが1/2画素精度位置以外を参照する場合、本処理は、ステップS19-5に進み、継承したhpelIfIdxAvgを「1」から「0」に修正する。これにより、上述したような対象ブロック並びに未来のブロックに対する平滑化フィルタの有効条件の設定不備及びそれに伴う伝搬を回避することが可能となる。
【0183】
また、2つ目の方法について
図20に示す。
図20に示す処理は、
図20のステップS20-5及び
図19のステップS19-5以外は、
図19に示す処理と同じ処理になり、本実施形態では、ステップ19-5に相当する別の解消方法として、ステップS20-5に示す解消方法を提案する。
【0184】
ステップS20-5において、具体的には、前段のステップで、hpelIfIdxAvgが「1」であるにも拘らず、mvL0Avg及びmvL1Avgの参照先が1/2画素精度位置以外となる場合、mvL0Avg及びmvL1Avgの参照先を1/2画素精度位置に丸めるという方法である。これにより、対象ブロック並びに未来のブロック対して、平滑化フィルタの有効条件の設定不備及びそれに伴う伝搬を回避することが可能となる。
【0185】
前者の解決方法は、mvに応じてhpelIfIdxを修正するという技術であり、後者の解決方法は、hpelIfIdxに応じてmvを修正する技術である。どちらの解決方法を採用するかは、設計者の意思で自由に設定しもよい。
【0186】
(MMVDにおける不備解消)
上述したペアワイズ平均マージにおけるハーフペルインデックス及び動きベクトルに基づく平滑化フィルタの設定条件の不備は、MMVDが有効となる対象ブロックでも生じる可能性がある。何故ならば、マージ部241A2から出力される動きベクトルの参照先が1/2画素精度位置であり且つハーフペルインデックスが「1」である場合であっても、MMVD部241B1において、かかる動きベクトルがMMVDにより修正され、動きベクトルの参照先が1/2画素精度位置からずれる可能性があるためである。
【0187】
そのため、本発明では、ペアワイズ平均マージと同様に、mvに応じてhpelIfIdxを修正するという解決手段と、hpelIfIdxに応じてmvを修正する解決手段を提案する。
【0188】
以下、
図21~
図23を参照して、本実施形態に係るMMVDにおけるハーフペルインデックスの設定条件の不備解消方法の一例について説明する。
【0189】
図21は、MMVDについて示した図である。MMVDは、上述したように、マージ部241A2が出力した動きベクトルを基準として、新たな動きベクトルの参照位置を、
図21に示すmmvd#distance#idx及びmmvd#direction#idxの値に基づき修正するという構成となっている。
【0190】
非特許文献1では、上述の2つのインデックスに基づいて、mvdが計算され、もともとの動きベクトルに加算される構成となっている。かかるmvdが1/4画素精度を取る際に、MMVDの適用後の動きベクトルは、1/2画素精度位置からずれることになる。
【0191】
なお、MMVDのmvdが整数精度であっても、元々の動きベクトルの画素精度は、上述のAMVRの場合とは異なり、変わらない。例えば、元々の動きベクトルが1/2画素精度位置にあり、mvdが「1」である場合は、新たな動きベクトルは変わらず1/2精度位置を参照する。
【0192】
そこで、上述のようなケースを解消するため、
図22及び
図23を用いて、2つの解決手段について、以下に示す。
【0193】
図22は、mvに応じてhpelIfIdxを修正するという解決手段を示している。
【0194】
具体的には、ステップS22-1において、hpelIfIdxが「1」である場合は、本処理は、ステップS22-2に進み、hpelIfIdxが「1」でない場合は、本処理は、終了する。
【0195】
ステップS22-2において、所定条件2を満たす場合は、本処理は、終了し、所定条件2を満たさない場合は、本処理は、ステップS22-3に進む。
【0196】
ここで、所定条件2には、MMVDの適用後のmvが1/2画素精度位置を参照するかどうかの判定を追加してもよい。また、MMVD部241B1に入力されるmvが1/2画素位置にあり且つMMVDにより追加されるmvdが1/2画素精度であるかどうかの判定を追加してもよい。
【0197】
ステップS22-3において、ステップS22-2でMMVDによりmvが1/2画素精度位置からずれるため、ハーフペルインデックスを「1」から「0」に修正して、本処理は終了する。
【0198】
図23は、hpelIfIdxに応じてmvを修正するという解決手段を示している。
【0199】
具体的には、
図22に示すステップS22-3で示した解決手段に相当する別の解決手段、すなわち、MMVDの適用後のmvを1/2画素精度位置に丸めるという処理を、ステップS23-3にて実施する構成となっている。
【0200】
[変更例:MMVDに関する丸め処理のバリエーション]
以下に、上述のステップS23-3で示したMMVDでmvが修正された場合のmvの丸め処理のバリエーションについて説明する。
【0201】
上述した方法は、MMVD適用後のmvを直接1/2画素精度位置に丸めるという処理を取っていたが、1つ目の代替方法としては、MMVD適用時のmvdを1/2画素精度位置に丸めることで、MMVDの適用後のmvを間接的に丸めてもよい。
【0202】
例えば、mmvd#distance#idxに対応するmvdのオフセット値を示した
図24のテーブルを変更するという方法が考えられる。具体的には、以下の2つの方法が考えられる。
【0203】
1つ目の方法は、hpelIfIdxの判定を
図24のテーブルに追加するというアイデアである。
図25に、hpelIfIdxの判定を追加したテーブルを示す。
【0204】
図24に示す従来のテーブルでは、MMVDによるmvdのオフセット値は、MMVDの修正精度を整数画素精度とするかを示すスライスレベルの判定フラグであるslice#fpel#mmvd#enabled#flagのみで判定されていたが、
図25では、slice#fpel#mmvd#enabled#flagが「0」である場合、すなわち、MMVDによる動きベクトルの修正精度が小数画素精度まで許容される場合のテーブルをhpelIfIdxの値によって2つに分けている。
【0205】
hpelIfIdxが「0」である場合は、mmvd#distance#idxは、「1」から開始され、hpelIfIdxが「1」である場合は、mmvd#distance#idxが「2」から開始される。
【0206】
非特許文献1におけるMMVDの実際のMVDのオフセット値は、かかるテーブルに示された値に対して4倍され、非特許文献1における動きベクトルの演算精度である1/16画素精度に対して掛けられるため、
図25に示すMmvdDistanceが「1」である場合は、MMVDの適用後の動きベクトルは、1/4画素精度となり、MmvdDistanceが「2」である場合は、MMVDの適用後の動きベクトルは、1/2画素精度となる。その結果、上述したハーフペルインデックス及びMMVDの適用後のmvの不備の解消が可能となる。
【0207】
(DMVRにおける不備解消)
上述したペアワイズ平均マージ、MMVDにおけるハーフペルインデックス及び動きベクトルに基づく平滑化フィルタの設定条件の不備は、DMVRが有効となる対象ブロックでも生じる可能性がある。何故ならば、マージ部241A2から出力される動きベクトルの参照先が1/2画素精度位置であり且つハーフペルインデックスが「1」である場合であっても、DMVR部241B2で、かかる動きベクトルがDMVRにより修正され、動きベクトルの参照先が1/2画素精度位置からずれる可能性があるためである。
【0208】
そのため、本変更例では、ペアワイズ平均マージと同様に、mvに応じてhpelIfIdxを修正するという解決手段、並びに、hpelIfIdxに応じてmvを修正する解決手段を提案するが、その構成例は、上述したMMVDでの解決手段、すなわち、
図22及び
図23で示した構成例と全く同じになるため、説明は省略する。
【0209】
[変更例:DMVRに関する丸め処理のバリエーション]
以下に、上述したMMVDの適用後のmvに対する丸め処理のバリエーションと同様に、DMVRの適用後のmvに対する丸め処理について説明する。
【0210】
MMVDでは、丸め処理のバリエーション例として、MMVDの適用後のmvを直接丸めるか、或いは、MMVDの適用時のmvdに丸め処理を施し、間接的に、MMVDの適用後のmvを丸めるという技術を紹介したが、DMVRに関するバリエーションも基本は同じであるため、重複部分の説明は省略する。他方、DMVR及びMMVDの丸め処理で差異が存在する部分を説明する。
【0211】
具体的には、DMVRでは、mvdの計算が、整数部分と小数部分とで独立に算出される。よって、mvdを丸める処理の対象に選択する場合、上述のMMVDと同様に、mvdの総和を直接丸める対象としてもよいが、DMVRでは、mvdの小数部分のみを丸める対象としてもよい。mvが1/2画素精度位置からずれるケースは、DMVRによるmvdの小数部分が1/2画素精度以外になる場合に限定されているためである。
【0212】
また、DMVRにおいてのmvdの導出は、上述のように修正する動きベクトルの位置を探索によって特定した後、パラボラフィッティング処理によって計算で算出する構成となっており、丸め処理をこのパラボラフィッティング処理にて実施することで、DMVRの適用後のmvを1/2画素精度位置に丸めてもよい。
【0213】
[変更例:DMVRに関するその他の変更例]
以下では、DMVRに関するその他の変更例について説明する。
【0214】
DMVRは、修正する動きベクトルの探索を伴う処理のため、画像復号装置200にとっては、比較的重い処理であることが知られている。そのため、ブロック処理の並列化実現性を容易にするべく、DMVRの適用後の動きベクトルは、例えば、デブロッキングフィルタの判定条件には利用されず、DMVRの適用前の動きベクトルが利用される。
【0215】
ハーフペルインデックスについても同様で、非特許文献1では、対象ブロックの予測信号生成に利用される動きベクトルは、DMVRの適用後のものが利用されるが、例えば、マージ処理で周囲の未来のブロックに継承する動きベクトルは、DMVRの適用前のものが継承される構成となっている。
【0216】
ここで、
図22及びと
図23で示した解決手段は、いずれもDMVRの適用後のmvの参照位置を確認してから、hpelIfIdx或いはmvを修正するというものであった。
【0217】
しかし、この解決方法では、DMVRの適用を待ってから修正処理を施さなければならず、ブロック処理の並列化の実現性容易度を低下させてしまうことが考えられる。
【0218】
そのため、以下のような3つの手段を代替として講じることが可能である。
【0219】
1つ目は、対象ブロックでDMVRが有効となる場合、上述のように、mvを修正するのは、対象ブロックに限定し、対象ブロックを参照する未来のブロックについて継承するmvは、DMVRの適用前のmvを継承するという方法である。
【0220】
2つ目は、対象ブロックでDMVRが有効となる可能性があると判定された時点で、hpelIfIdxを常に「0」に設定するという方法である。対象ブロックでDMVRが有効となる可能性があると判定できるタイミングは、CABACによる制御データの復号時であり、本変更例において、そのタイミングとして既知の手法を取ることが可能であるため、説明は省略する。
【0221】
3つ目は、hpelIfIdxが「1」となる対象ブロックに対して、DMVRを無効にするという方法である。
【0222】
上述した3つの代替方法のいずれかを講じることで、上述で挙げたブロックの処理並列化の実現性容易度の低下を回避することが期待できる。
【0223】
[変更例:ペアワイズ平均及びMMVD/DMVRが直列時の不備解消]
以下、
図26を参照して、本実施形態に係るペアワイズ平均マージによって導出された動きベクトルがMMVD又はDMVRによって修正される場合の変更例について説明する。
【0224】
図26は、ペアワイズ平均マージによって導出された動きベクトルがMMVD又はDMVRによって修正される場合の変更例を示した図である。
【0225】
上述の例において、ペアワイズ平均マージによりハーフペルインデックスが「1」であり且つ動きベクトルが1/2画素精度位置からずれる場合に、ハーフペルインデックスを「0」に修正する解決手段について説明した。
【0226】
しかし、このハーフペルインデックスを「0」に修正した後で、MMVD又はDMVRによって、1/2画素精度位置からずれた動きベクトルが、再度、1/2画素精度位置に戻る可能性が考えられる。
【0227】
このようなケースにおいて、一度「1」から「0」に修正したハーフペルインデックスを再度「1」に修正することが理想的であり、
図26を用いて、その手法の一例を説明する。
【0228】
なお、非特許文献1におけるMMVDの対象は、マージインデックスが「0」と1番目の動きベクトルに限定されており、このとき、ペアワイズ平均マージにより導出された動きベクトルは、NNVDの対象とはならないが、MMVDの有効対象が、将来、マージインデックスが「2」以上である動きベクトルにも拡張された場合を想定して、以下で、かかる手法の一例を説明する。
【0229】
まず、ステップS26-4までは、上述したペアワイズ平均マージにおけるフローチャート、すなわち、
図19に示すフローチャートと同じであるが、ステップS26-4以降の処理が、上述のケースを考慮して変更となっている。
【0230】
具体的には、ステップS26-4において、動きベクトルが1/2画素精度位置からずれる場合は、hpelIfIdxAvgを「0」に修正すると共に、hpelIfIdxAvg’に「1」を設定する。
【0231】
ここで、hpelIfIdxAvg’は、ペアワイズ平均マージのハーフペルインデックスの修正前の値を保持するためのインデックスである。
【0232】
なお、ステップS26-4において、動きベクトルが1/2画素精度位置からずれない場合は、hpelIfIdxは「1」のまま修正せず、hpelIfIdxAvg’に「1」を設定する。
【0233】
次に、ステップS26-7において、所定条件3に関する判定を行い、所定条件3が満たされていると判定された場合は、本処理は、ステップS26-8に進み、所定条件3が満たされていないと判定された場合は、本処理は終了する。
【0234】
ここで、所定条件3には、MMVD又はDMVRの適用後の動きベクトルが1/2画素精度位置を参照するかの判定を追加してもよい。また、MMVD又はDMVRにより動きベクトルに追加されるmvdが1/2画素精度であるかの判定を追加してもよい。
【0235】
次に、ステップS26-8において、所定条件4を判定し、所定条件4が満たされると判定された場合は、本処理は、ステップS26-9に進み、所定条件4が満たされないと判定された場合は、本処理は終了する。
【0236】
ここで、所定条件4は、hpelIfIdxAvg及びhpelIfIdxAvg’が双方とも「1」であるかどうかの判定を含めてもよい。
【0237】
ステップS26-9において、前段のステップで、一度、「1」から「0」に修正されたhpelIfIdxが、MMVD又はDMVRにより、mvが1/2画素精度位置を参照すると判定されたため、hpelIfIdxを「1」に再修正するという構成になっている。
【0238】
(ペアワイズ平均マージにおける動きベクトルのスケーリング処理)
以下、
図27及び
図28を参照して、本実施形態に係るペアワイズ平均マージにおける動きベクトルのスケーリング処理について説明する。
図27は、本実施形態に係るペアワイズ平均マージによる動きベクトルの導出例について示す図である。
【0239】
図27に示すように、ペアワイズ平均マージは、マージリストに既に登録されている異なる2つのマージインデックスに紐づく動きベクトルと参照画像インデックスを用いて導出される。
【0240】
ここで、非特許文献1では、ペアワイズ平均マージに用いられるマージインデックスが0番目と1番目に指定されている。なお、ペアワイズ平均マージで使用する2組のマージインデックスのうち、1組しか利用できない場合は、利用可能な1組をペアワイズ平均マージインデクスに紐づくマージインデックスとしてマージリストに登録する。
【0241】
すなわち、利用可能な1組の動きベクトル及び参照画像インデックスが、そのままペアワイズ平均マージインデックスに紐づく動きベクトル及び参照画像インデックスとして登録される。
【0242】
また、異なる2つのマージインデックスが、いずれも利用不可である場合は、マージリストにペアワイズ平均マージを登録しない。
【0243】
例えば、ペアワイズ平均マージにより新たに導出されるベクトルであるmvL0Avg及びmvL1Avgは、導出に使用する異なる2組のマージインデックスに紐づく動きベクトルであるmvL0P0/mvL1P0及びmvL0P1/mvL1P1が存在する場合、以下のように導出される。
【0244】
mvL0Avg=(mvL0P0+mvL0P1)/2
mvL1Avg=(mvL1P0+mvL1P1)/2
ここで、mvL0P0/mvL1P0又はmvL0P1/mvL1P1の片方が存在しない場合は、存在しない動きベクトルを除いて、上述の計算が行われる。
【0245】
このとき、非特許文献1では、ペアワイズ平均マージインデックスに紐づく参照画像インデックスをマージインデックスP0に紐づく参照画像インデックスRefIdxL0P0及びRefIdxL1P0を常に使用するように定めている。
【0246】
しかしながら、上述の式で平均化されるmvL0P1及びmvL1P1の参照フレームは、マージインデックス「1」に紐づく参照画像インデックスであるRefIdxL0P1及びRefIdxL1P1に対応しているはずである。
【0247】
そこで、本実施形態では、mvL0P1及びmvL1P1を、RefIdxL0P0、RefIdxL1P0、RefIdxL0P1及びRefIdxL1P1によってスケーリングしたmvL0P1’及びmvL0P1’を置換し、ペアワイズ平均マージにより新たな動きベクトルを導出する。
【0248】
ここで、上述の動きベクトルに対して行うスケーリング処理を、
図28を用いて説明する。
【0249】
例えば、
図28に示すように、ペアワイズ平均マージの導出に使用する異なる2つのマージインデックスに対応する動きベクトル及び参照画像インデックスが存在する。
【0250】
このとき、スケーリング処理したmvL0P1’及びmvL0P1’は、対象フレーム及び各マージインデックスの参照画像インデックスであるRefIdxL0P0、RefIdxL1P0、RefIdxL0P1及びRefIdxL1P1が示す参照フレームとの距離に基づいて修正されることを意味する。
【0251】
具体的には、
図28に示すように、対象フレームと各参照フレームとの距離がtL0P0、tL0P1、tL1P0及びtL1P1と表される場合、mvL0P
1’及びmvL0P
1’は、以下のように算出される。
【0252】
mvL0P1’=(tL0P1/tL0P0)×mvL0P1
mvL1P1’=(tL1P1/tL1P0)×mvL1P1
ペアワイズ平均マージに使用するマージインデックスの1が、時間マージに紐づく動きベクトル及び参照画像インデックスに対応する場合(すなわち、空間マージやヒストリーマージのように、参照フレームが対象フレームと同じではない場合)、時間マージの際に対象ブロックと異なるフレームの共通位置にある参照ブロックが含まれる参照フレームを起点として距離を計算してスケーリングする。
【0253】
上述のスケーリング処理の導入効果として、ペアワイズ平均マージが異なる2つのマージインデックスに紐づく動きベクトルから計算される際に、一方の参照画像インデックスに他方の片方の動きベクトルをスケーリングすることで、共通の参照画像インデックスが示す参照フレームに対応した2組の動きベクトルを平均化できるため、動きベクトルの精度が向上し、結果的に、符号化性能の向上が期待できる。
【0254】
[変更例:スケーリング対象の変更]
上述の例では、スケーリング対象を、一律、P1のマージインデックスに紐づく動きベクトルとしたが、対象フレームからの距離が遠い参照フレームを参照する動きベクトルをスケーリングの対象としてもよい。これにより、ペアワイズ平均マージの参照フレームを対象フレームに対して近づけることが出来るため、予測精度の向上効果が期待できる。
【0255】
(ブロックサイズによるハーフペルインデックスの制御)
以下、本実施形態に係る対象ブロックサイズによるハーフペルインデックスの制御について説明する。
【0256】
上述の例では、ハーフペルインデックスが有効であり、動きベクトルが1/2画素位置にある場合は、平滑化フィルタを適用すると説明した。
【0257】
一方で、対象ブロックのブロックサイズが小さい場合は、対象ブロックに平滑化フィルタを適用しない方がよい。
【0258】
何故なら、一般にブロックサイズと画像特性には相関があることが知られており、ブロックサイズが小さい場合はエッジや複雑な模様を有することが多く、逆に、ブロックサイズが大きい場合は平坦でシンプルであることが多いためである。
【0259】
また、対象ブロックの参照ブロックも同じ特性を有すると想定されるため、この特性を考慮して、対象ブロックのブロックサイズが小さい場合は、平滑化フィルタの適用を禁止する、すなわち、ハーフペルインデックスの値を常に「0」にすることが考えられる。
【0260】
例えば、ハーフペルインデックスを常に0にするブロックサイズの閾値を、32画素以下である場合と設定してもよい。
【0261】
期待される効果は、以下の2つである。
【0262】
1つ目は、ハーフペルインデックスを常に「0」にする所定のブロックサイズにおいて、平滑化フィルタの適用を禁止するため、画像符号化装置100側でのRDO処理が不要となる。そのため、画像符号化装置100の高速化効果が期待できる。
【0263】
2つ目は、
図8で示した対象ブロックがAMVP且つAMVRの場合に、ハーフペルインデックスの判定に使用していたフラグ、具体的には、amvr_precision_idxのビット長を短くできる。
【0264】
図8では、対象ブロックが1/2画素精度位置を示すバリエーションが存在するためamvr_precision_idxのビット長は3bit必要だが、上記所定のブロックサイズでは2bitに短縮可能であるため、結果的に、画像符号化装置100から画像復号装置200に伝送が必要な符号量が削減されることにより、符号化性能向上が期待できる。
【0265】
本発明によれば、ハーフペルインデックスに応じてペアワイズ平均マージ又はMMVD又はDMVRによって導出される動きベクトルの参照画素精度位置を制御する、或いは、導出された動きベクトルに応じてハーフペルインデックスを制御することができるようになり、対象ブロックの平滑化フィルタの有効条件の不備を解消し、さらに、未来のブロックに対して平滑化フィルタの有効条件の不備の伝搬を回避することができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【0266】
上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0267】
なお、上述の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明は、これのみに限定されるものではなく、画像符号化装置100及び画像復号装置200の各機能を備えた画像符号化システム及び画像復号システムにも同様に適用できる。
【符号の説明】
【0268】
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
111A…mv導出部
111A1、241A1…AMVP部
111A2、241A2…マージ部
111B…AMVR部
111C、241B…mv洗練化部
111D、241C…予測信号生成部
111D1、241C1…フィルタ判定部
111D2、241C2…フィルタ適用部
112、242…イントラ予測部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
241A…mv復号部
241B1…MMVD部
241B2…DMVR部