(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024152061
(43)【公開日】2024-10-25
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/11 20140101AFI20241018BHJP
H04N 19/157 20140101ALI20241018BHJP
H04N 19/176 20140101ALI20241018BHJP
H04N 19/70 20140101ALI20241018BHJP
H04N 19/503 20140101ALI20241018BHJP
H04N 19/593 20140101ALI20241018BHJP
【FI】
H04N19/11
H04N19/157
H04N19/176
H04N19/70
H04N19/503
H04N19/593
【審査請求】未請求
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2023065989
(22)【出願日】2023-04-13
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和5年度、総務省「3次元空間データの無線伝送に向けた高能率圧縮技術の研究開発」、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】木谷 佳隆
(72)【発明者】
【氏名】加藤 晴久
(72)【発明者】
【氏名】河村 圭
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159RC12
5C159RC16
5C159TA26
5C159TA31
5C159TB08
5C159TC10
5C159TC41
5C159TC42
5C159UA02
5C159UA05
5C159UA33
(57)【要約】
【課題】符号化効率を向上させること。
【解決手段】本発明に係る画像復号装置200は、復号済み画素と制御情報とに基づいて第1予測画素を生成する第1フレーム内予測部204と、復号済み画素と制御情報とに基づいて復号対象ブロックに対する1つ以上のブロックベクトルから第2予測画素を生成する第2フレーム内予測部205と、復号済み画素を蓄積する蓄積部208と、蓄積された復号済み画素と制御情報とに基づいて第3予測画素を生成するフレーム間予測部206と、予測残差と第1乃至第3予測画素とを加算して復号済み画素を得る加算器207とを具備する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
画像復号装置であって、
制御情報並びに量子化値を復号する復号部と、
前記量子化値を逆量子化して変換係数とする逆量子化部と、
前記変換係数を逆変換して予測残差とする逆変換部と、
復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する第1フレーム内予測部と、
前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する第2フレーム内予測部と、
前記復号済み画素を蓄積する蓄積部と、
前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成するフレーム間予測部と、
前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る加算器とを具備することを特徴とする画像復号装置。
【請求項2】
前記第2フレーム内予測部は、前記復号対象ブロックに対する1つ又は2つのブロックベクトルから前記第2予測画素を生成することを特徴とする請求項1に記載の画像復号装置。
【請求項3】
前記第2フレーム内予測部において、前記復号対象ブロックは、イントラブロックコピーにおけるブロックベクトルによって前記復号済み画素を参照することを特徴とする請求項1に記載の画像復号装置。
【請求項4】
前記第2フレーム内予測部において、前記復号対象ブロックは、イントラテンプレートマッチング予測におけるブロックベクトルによって前記復号済み画素を参照することを特徴とする請求項1に記載の画像復号装置。
【請求項5】
前記第2フレーム内予測部は、ブロックベクトル候補リストのインデックスを1つ以上復号することで、前記インデックスに対応する前記1つ以上のブロックベクトルをブロックベクトル候補リストから導出することを特徴とする請求項1に記載の画像復号装置。
【請求項6】
2つ目以降のインデックスは、直前のインデックスを起点とした相対的なインデックスであることを特徴とする請求項5に記載の画像復号装置。
【請求項7】
前記第2フレーム内予測部は、ブロックベクトル候補リストのインデックスを復号せずに、前記1つ以上のブロックベクトルを導出することを特徴とする請求項1に記載の画像復号装置。
【請求項8】
前記第2フレーム内予測部は、前記ブロックベクトル候補リストの上位のブロックベクトル候補を1つ以上固定的に選択することで前記1つ以上のブロックベクトルを導出することを特徴とする請求項7に記載の画像復号装置。
【請求項9】
前記第2フレーム内予測部は、前記復号対象ブロックが保持するブロックベクトルの数だけブロックベクトル候補リストを構成することを特徴とする請求項1に記載の画像復号装置。
【請求項10】
前記第2フレーム内予測部は、前記ブロックベクトル候補リストを複数構築し、前記1つ以上のブロックベクトルの導出に用いるインデックスを共通化しておくことで、1つのインデックスから前記1つ以上のブロックベクトルを導出することを特徴とする請求項9に記載の画像復号装置。
【請求項11】
前記第2フレーム内予測部は、1つ目のブロックベクトルをブロックベクトル予測及びブロックベクトル差分から導出し、導出した前記1つ目のブロックベクトルに基づいて、2つ目のブロックベクトルを導出することを特徴とする請求項1に記載の画像復号装置。
【請求項12】
前記第2フレーム内予測部は、前記1つ目のブロックベクトルを前記ブロックベクトル予測及び前記ブロックベクトル差分から導出し、導出した前記1つ目のブロックベクトルの参照先と、ブロックベクトル候補リスト内の各ブロックベクトル候補の参照先との類似性を比較することで、前記ブロックベクトル候補リスト内から前記2つ目のブロックベクトルを導出することを特徴とする請求項11に記載の画像復号装置。
【請求項13】
前記第2フレーム内予測部は、1つ目のブロックベクトルをブロックベクトル予測及びブロックベクトル差分から導出し、ブロックベクトル候補リスト内のブロックベクトル候補からインデックスに基づき、2つ目のブロックベクトルを導出することを特徴とする請求項1に記載の画像復号装置。
【請求項14】
前記第2フレーム内予測部は、前記復号対象ブロックが直線で2分割される場合、2分割された各領域に対して異なるブロックベクトルを導出することを特徴とする請求項1に記載の画像復号装置。
【請求項15】
前記第2フレーム内予測部は、前記復号対象ブロックが幾何学形状に直線で2分割される場合、2分割された各領域に対して異なるブロックベクトルを導出することを特徴とする請求項1に記載の画像復号装置。
【請求項16】
前記逆変換部は、前記復号対象ブロックに前記1つ以上のブロックベクトルに基づく第2フレーム内予測が適用される場合、前記変換係数を異なる複数の変換基底を用いて逆変換することを特徴とする請求項1に記載の画像復号装置。
【請求項17】
前記逆変換部は、前記変換係数を第1フレーム内予測向けの異なる複数の変換基底を用いて逆変換することを特徴とする請求項16に記載の画像復号装置。
【請求項18】
前記逆変換部は、前記変換係数をフレーム間予測向けの異なる複数の変換基底を用いて逆変換することを特徴とする請求項16に記載の画像復号装置。
【請求項19】
前記復号部は、前記異なる複数の変換基底の中から1つの変換基底を選択して前記変換係数を逆変換するか否かを特定するための制御情報を復号し、
前記逆変換部は、前記制御情報に基づいて前記異なる複数の変換基底の中から1つの変換基底を選択して前記変換係数を逆変換するか否かを特定することを特徴とする請求項16に記載の画像復号装置。
【請求項20】
前記逆変換部は、前記復号対象ブロックに前記1つ以上のブロックベクトルに基づく第2フレーム内予測が適用される場合、前記変換係数を異なる又は同じ変換基底を用いて2段階で逆変換することを特徴とする請求項1に記載の画像復号装置。
【請求項21】
前記復号部は、前記変換係数を異なる又は同じ変換基底を用いて2段階で逆変換するか否かを特定するための制御情報を復号し、
前記逆変換部は、前記制御情報に基づいて前記異なる複数の変換基底の中から1つの変換基底を選択して前記変換係数を逆変換するか否かを特定することを特徴とする請求項20に記載の画像復号装置。
【請求項22】
前記第2フレーム内予測部は、輝度信号の画像に対して色差信号の画像がダウンサンプリングされ且つ前記復号対象ブロックが含まれる復号ツリーブロックがシングルツリー構造である場合は、前記輝度信号の復号対象ブロックに対して導出した1つ又は2つ以上のブロックの大きさと前記輝度信号と前記色差信号のダウンサンプリング比率とに基づき、前記色差信号の復号対象ブロックに対するブロックベクトルを導出するブロックベクトル導出部を備えることを特徴とする請求項1に記載の画像復号装置。
【請求項23】
前記第2フレーム内予測部は、輝度信号の画像に対して色差信号の画像がダウンサンプリングされ且つ前記復号対象ブロックが含まれる復号ツリーブロックがデュアルツリー構造である場合は、前記色差信号の復号対象ブロックに対するブロックベクトルを導出しないブロックベクトル導出部を備えることを特徴とする請求項1に記載の画像復号装置。
【請求項24】
画像復号方法であって、
制御情報並びに量子化値を復号する工程と、
前記量子化値を逆量子化して変換係数とする工程と、
前記変換係数を逆変換して予測残差とする工程と、
復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する工程と、
前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する工程と、
前記復号済み画素を蓄積する工程と、
前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成する工程と、
前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る工程とを有することを特徴とする画像復号方法。
【請求項25】
コンピュータを、画像復号装置として機能させるプログラムであって、
前記画像復号装置は、
制御情報並びに量子化値を復号する復号部と、
前記量子化値を逆量子化して変換係数とする逆量子化部と、
前記変換係数を逆変換して予測残差とする逆変換部と、
復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する第1フレーム内予測部と、
前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する第2フレーム内予測部と、
前記復号済み画素を蓄積する蓄積部と、
前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成するフレーム間予測部と、
前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る加算器とを具備することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1及び2には、イントラブロックコピー(IBC:Intra Block Copy)及びイントラテンプレートマッチング予測(IntraTMP:Intra Template Matcing Prediction)が開示されている。
【0003】
IBC及びIntraTMPは、復号対象フレームの復号済み画素領域から画素を参照し復号対象ブロックの予測画素とする。
【0004】
IBCとIntraTMPとの違いは、IBCが参照する座標を表すブロックベクトルを復号するための制御信号を明示的にシグナリングするのに対し、IntraTMPは近傍画素をテンプレートとして類似する領域を探索することでブロックベクトルを復号するための制御信号をシグナリングしない点にある。
【0005】
ブロックベクトルのシグナリングに違いはあるが、いずれも
図2に示すように復号対象ブロックのブロックベクトルが示す参照ブロックから画素をコピーすることで予測画素として利用する。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】ITU-T H.266/VVC
【非特許文献2】M.Coban他、「Algorithm description of Enhanced Compression Model 7(ECM 7)」、JVET-AB2025、2022年
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1及び2では、いずれもブロックベクトルが1本に限定されているため、符号化効率の向上には改善の余地がある。また、非特許文献1及び2では、ブロックをコピーするだけであるため、符号化効率の向上には改善の余地がある。
【0008】
そこで、本発明は、上述の課題に鑑みてなされたものであり、符号化効率の高い画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第1の特徴は、画像復号装置であって、制御情報並びに量子化値を復号する復号部と、前記量子化値を逆量子化して変換係数とする逆量子化部と、前記変換係数を逆変換して予測残差とする逆変換部と、復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する第1フレーム内予測部と、前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する第2フレーム内予測部と、前記復号済み画素を蓄積する蓄積部と、前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成するフレーム間予測部と、前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る加算器とを具備することを要旨とする。
【0010】
本発明の第2の特徴は、画像復号方法であって、制御情報並びに量子化値を復号する工程と、前記量子化値を逆量子化して変換係数とする工程と、前記変換係数を逆変換して予測残差とする工程と、復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する工程と、前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する工程と、前記復号済み画素を蓄積する工程と、前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成する工程と、前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る工程とを有することを要旨とする。
【0011】
本発明の第3の特徴は、コンピュータを、画像復号装置として機能させるプログラムであって、前記画像復号装置は、制御情報並びに量子化値を復号する復号部と、前記量子化値を逆量子化して変換係数とする逆量子化部と、前記変換係数を逆変換して予測残差とする逆変換部と、復号済み画素と前記制御情報とに基づいて、第1予測画素を生成する第1フレーム内予測部と、前記復号済み画素と前記制御情報とに基づいて、復号対象ブロックに対する1つ以上のブロックベクトルから、第2予測画素を生成する第2フレーム内予測部と、前記復号済み画素を蓄積する蓄積部と、前記蓄積された復号済み画素と前記制御情報とに基づいて、第3予測画素を生成するフレーム間予測部と、前記予測残差と前記第1乃至第3予測画素とを加算して前記復号済み画素を得る加算器とを具備することを要旨とする。
【発明の効果】
【0012】
本発明によれば、符号化効率の高い画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図2】
図2は、IBC及びIntraTMPについて説明するための図である。
【
図3】
図3は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の機能ブロックの一例を示す図である。
【
図4】
図4は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるBVの導出方法の一例について説明するための図である。
【
図5】
図5は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるBVの導出方法の一例について説明するための図である。
【
図6】
図6は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるBVの導出方法の一例について説明するための図である。
【
図7】
図7は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるBVの導出方法の一例について説明するための図である。
【
図8】
図8は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるBVの導出方法の一例について説明するための図である。
【
図9】
図9は、一実施形態に係る画像復号装置200の第2フレーム内予測部205のBV導出部205AにおけるIBC GPMによるBVの導出方法の一例について説明するための図である。
【
図10】
図10は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の第2フレーム内予測画素生成部205Bにおける復号対象ブロックの予測画素を合成する方法の一例を説明するための図である。
【
図11】
図11は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の第2フレーム内予測画素生成部205Bにおける復号対象ブロックの予測画素を合成する方法の一例を説明するための図である。
【
図12】
図12は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の第2フレーム内予測画素生成部205Bにおける復号対象ブロックの予測画素を合成する方法の一例を説明するための図である。
【
図13】
図13は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の第2フレーム内予測画素生成部205Bにおける復号対象ブロックの予測画素を合成する方法の一例を説明するための図である。
【
図14】
図14は、一実施形態に係る画像復号装置200の第2フレーム内予測部205の第2フレーム内予測画素生成部205Bにおける復号対象ブロックの予測画素を合成する方法の一例を説明するための図である。
【
図15】
図15は、シーケンス単位でのIBCに関連する所定フラグの復号制御方法の一例を示すフローチャートである。
【
図16】
図16は、IBCに関連する各種フラグの一例を示す図である。
【
図17】
図17は、一実施形態に係る画像復号装置200の復号部201における双予測IBCの適用可不可を制御するフラグの復号方法の一例を示すフローチャートである。
【
図18】
図18は、一実施形態に係る画像復号装置200の復号部201における双予測IBCの適用可不可を制御するフラグの復号方法の一例を示すフローチャートである。
【
図19】
図19は、一実施形態に係る画像復号装置200の復号部201における復号対象ブロック単位でのIBCの適用有無を制御するフラグであるpred_mode_ibc_flagの復号方法の一例を示すフローチャートである。
【
図20】
図20は、一実施形態に係る画像復号装置200の復号部201におけるIBCのモードの選択方法の一例を示すフローチャートである。
【
図21】
図21は、一実施形態に係る画像復号装置200の復号部201における復号対象ブロック単位で双予測のIBCマージが有効であるか否かを制御するためのフラグの復号方法の一例を示すフローチャートである。
【
図22】
図22は、一実施形態に係る画像復号装置200の復号部201におけるIBCマージに関する制御情報の復号方法の一例を示すフローチャートである。
【
図23】
図23は、一実施形態に係る画像復号装置200の復号部201におけるIBCマージに関する制御情報の復号方法の一例を示すフローチャートである。
【
図24】
図24は、一実施形態に係る画像復号装置200の復号部201における復号対象ブロック単位でIBC BVP/マージが有効であるか否かを制御するためのフラグの復号方法の一例を示すフローチャートである。
【
図25】
図25は、一実施形態に係る画像復号装置200の復号部201におけるIBC BVP/マージに関する制御情報の復号方法の一例を示すフローチャートである。
【
図26】
図26は、一実施形態に係る画像復号装置200の復号部201におけるIBCのBVを補正する上述のMBVDに関する制御情報の復号方法の一例を示すフローチャートである。
【
図27】
図27は、一実施形態に係る画像復号装置200の復号部201におけるブロック単位で第2フレーム内予測を適用する方法の一例を示すフローチャートである。
【
図28】
図28は、一実施形態に係る画像復号装置200の復号部201におけるBVに補正BVを適用する場合のフローチャートである。
【
図29】
図29は、一実施形態に係る画像復号装置200の復号部201における復号対象ブロック単位で双予測のIBC BVPが有効であるか否かを制御するためのフラグの復号方法の一例を示すフローチャートである。
【
図30】
図30は、一実施形態に係る画像復号装置200の復号部201における双予測のIBC BVPに関する制御情報の復号方法の一例を示すフローチャートである。
【
図31】
図31は、一実施形態に係る画像復号装置200の復号部201におけるIBCマージインデックスの2値化方法の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0015】
<第1実施形態>
以下、
図1~
図29を参照して、本実施形態に係る画像復号装置200について説明する。
図1は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0016】
図1に示すように、画像復号装置200は、符号入力部210と、復号部201と、逆量子化部202と、逆変換部203と、第1フレーム内予測部204と、第2フレーム内予測部205と、フレーム間予測部206と、加算器207と、蓄積部208と、画像出力部220とを有する。
【0017】
符号入力部210は、画像符号化装置によって符号化された符号情報を取得するように構成されている。
【0018】
復号部201は、符号入力部210から入力された符号情報から、制御情報並びに量子化値を復号するように構成されている。例えば、復号部201は、かかる符号情報に対して可変長復号を行うことで制御情報及び量子化値を出力するように構成されている。
【0019】
ここで、量子化値は、逆量子化部202に送られ、制御情報は、第1フレーム内予測部204、第2フレーム内予測部205及びフレーム間予測部206に送られる。なお、かかる制御情報は、第1フレーム内予測部204、第2フレーム内予測部205及びフレーム間予測部206等の制御に必要な情報を含み、シーケンスパラメータセットやピクチャパラメータセットやピクチャヘッダやスライスヘッダ等のヘッダ情報を含んでもよい。
【0020】
逆量子化部202は、復号部201から送られた量子化値を逆量子化して変換係数とするように構成されている。かかる変換係数は、逆変換部203に送られる。
【0021】
逆変換部203は、逆量子化部202から送られた変換係数を逆変換して予測残差とするように構成されている。かかる予測残差は、加算器207に送られる。
【0022】
第1フレーム内予測部204は、加算器207を介して得られる復号済み画素及び復号部201で復号された制御情報に基づいて、加算器207で予測残差と加算するための第1予測画素を生成するように構成されている。かかる第1予測画素は、加算器207に送られる。
【0023】
フレーム間予測部206は、蓄積部208を参照して得られる復号済み画素及び復号部201で復号された制御情報に基づいて、加算器207で予測残差と加算するための第3予測画素を生成するように構成されている。かかる第3予測画素は、加算器207に送られる。
【0024】
蓄積部208は、加算器207から送られた復号済み画素を累積的に蓄積するように構成されている。かかる復号済み画素は、蓄積部208を介してフレーム間予測部206からの参照を受ける。
【0025】
加算器207は、逆変換部203から送られる予測残差と、第1フレーム内予測部204、第2フレーム内予測部205及びフレーム間予測部206から送られる第1乃至第3予測画素のいずれかとを加算して復号済み画素を得るように構成されている。かかる復号済み画素は、画像出力部220、蓄積部208及びフレーム間予測部206へ送られる。
【0026】
(第2フレーム内予測部205)
以下、第2フレーム内予測部205による予測方法の一例について説明する。
【0027】
<ブロックベクトルの導出>
第2フレーム内予測部205の役割は、後段の加算器207において復号対象ブロックを高精度に予測するために、
図2に示すような復号対象ブロックに対して1つ以上のブロックベクトル(以下、BV:Block Vector)を導出して、BVが参照するブロックの画素を予測すること(第2フレーム内予測)にある。
【0028】
かかる第2フレーム内予測の例には、非特許文献1及び2で開示されている、イントラブロックコピー(以下、IBC:Intra Block Copy)及びイントラテンプレートマッチング予測(以下、IntraTMP:Intra Template Matching Prediction)がある。
【0029】
かかる第2フレーム内予測は、復号対象ブロックがBVで他の領域を参照する場合に適用できるが、以下では、IBCを第2フレーム内予測の一例として説明する。なお、他の例には、IntraTMP等、フレーム内で予測画素を参照するモードがある。
【0030】
図3に、第2フレーム内予測部205の機能ブロックの一例を示す。
図3に示すように、第2フレーム内予測部205は、ブロックベクトル導出部(以下、BV導出部)205Aと、第2フレーム内予測画素生成部205Bとを備える。
【0031】
BV導出部205Aは、復号対象ブロックに対する1つの以上のBVを導出するように構成されている。
【0032】
本実施形態において、BV導出部205Aは、IBCのBVの導出方法としての以下の4種類の方法のうち少なくともいずれか1つを用いて、1つ以上のBVを導出してもよい。なお、いずれの方法でBVを導出するかは、後述する復号部201のシグナリング(制御情報の復号処理)にて詳述する。
A. IBCブロックベクトル予測(以下、IBC BVP:IBC Block Vector Prediction)
B. IBCマージ
C. IBC BVP/マージ
D. IBC GPM
ここで、上述のBVの導出方法のA及びBについては、非特許文献1及び2に開示されているが、非特許文献1及び2に開示されている導出方法のいずれも、1つのBVの導出を前提とした方法である。
【0033】
本発明の目的(効果)は、2つ以上のBV導出による第2フレーム内予測の高精度化、ひいては、符号化効率の向上であるため、以降のBVの導出方法のA及びBに関する説明では、2つ以上のBVを導出する場合の差分に着目して説明する。なお、上述のBVの導出方法のC及びDは、2つ以上のBVの導出を前提とした新たな手法である。また、かかる2つ以上のBV導出による第2フレーム内予測(複数予測のIBC又は複数予測IBC)の一例として、以下では、2つのBV導出によるIBC(双予測のIBC又は双予測IBC)を説明する。
【0034】
(A. IBC BVP)
以下、
図4~
図6を用いて、BV導出部205AにおけるIBC BVPによるBVの導出方法の一例について説明する。
【0035】
図4は、BVがブロックベクトル予測(BVP)とブロックベクトル差分(BVD)とから構成される一例を示している。
【0036】
IBC BVPでは、BV導出部205Aは、復号部201で復号されたBVP及びBVDに関する制御情報の値に基づき、ブロックベクトル予測(BVP:Block Vector Prediction)及びブロックベクトル差分(BVD:Block Vector Difference)を導出して、BVを導出する。ここで、BVP及びBVDに関する制御情報については、復号部201におけるシグナリングの説明で詳述する。
【0037】
IBC BVPにおけるBVPの導出方法の概要は、以下の通りである。
【0038】
ステップS1において、BV導出部205Aは、
図5に示す復号対象ブロックの隣接ブロックが復号済みであるか否かを確認し、かかる隣接ブロックが復号済みであれば、BVを有するか否か(BVの利用可否)を確認する。
【0039】
ステップS2において、BV導出部205Aは、BVを有する隣接ブロックのBVを、
図6に示すBVP候補としてリスト(以下、BVP候補リスト)に登録する。
【0040】
ステップS3において、BV導出部205Aは、BVP候補リストから、復号部201で復号されたBVPに関する制御情報(IBC BVPフラグ又はIBC BVPインデックス)の値に基づき、BVPを選択する。
【0041】
ここで、ステップS1における復号済みであるか否か及びBVを有する否かを確認する隣接ブロックの数(位置)は、非特許文献1と同様に、2種類(
図5の「A」及び「L」)であってもよいし、或いは、非特許文献2と同様に、5種類(
図5の「A」、「L」、「AR」、「LB」及び「AL」)であってもよい。
【0042】
隣接ブロックを確認する順序は、それぞれ非特許文献1及び2と同じであってもよい。ここで、「A」、「L」、「AR」、「LB」及び「AL」は、それぞれ非特許文献1及び2における「Above」「Left」、「AboveRight」、「LeftBottom」及び「AboveLeft」である。
【0043】
ここで、BV導出部205Aは、BVP候補として、近傍ブロックのBV(非特許文献2で空間BVPと呼称)や過去に使用したBV(非特許文献2でヒストリーBVPと呼称)等を利用できる。
【0044】
また、ステップS1で、新たに利用可否を確認するBVが、既に利用可能と確認したBVと同一である場合、新たに利用可否を確認するBVを利用不可と判定してもよい。
【0045】
さらに、ステップS1で利用可能と判定したBV(BVP候補)のBVP候補リストへの登録順を所定の並び替え方法で並び替えてもよい。この並び替え方法の詳細は、後述する。
【0046】
IBC BVPにおけるBVDの導出方法の概要は、以下の通りである。
【0047】
ステップS1において、BV導出部205Aは、BVDに関する制御情報に基づき、BVDを導出する。
【0048】
ステップS2において、BV導出部205Aは、ステップS1で導出したBVDを、BVDの画素精度に関する制御情報に基づき、丸める。
【0049】
ここで、BVDに関する制御情報に基づくBVDの導出方法は、非特許文献1と同様の方法で構成できる。具体的に、復号部201が、BVDの大きさ(絶対値)及びBVDの符号に関する制御情報の値を復号(又は、推定)し、BV導出部205Aが、それらの値からBVDを導出する。
【0050】
最後に、BV導出部205Aは、導出したBVPとBVDとを加算してBVを導出する。
【0051】
以上が、IBC BVPにおけるBVの導出方法の概要である。
【0052】
他の例として、IBC BVPにおいて、BV導出部205Aは、2つ以上のBVを導出する場合は、各BVの導出に必要なBVP及びBVDを、以下の方法で導出してもよい。
【0053】
ステップS1において、BV導出部205Aは、
図5に示す復号対象ブロックの隣接ブロックが復号済みであるか否かを確認し、かかる隣接ブロックが復号済みであれば、BVを有するか否か(BVの利用可否)を確認する。
【0054】
ステップS2において、BV導出部205Aは、BVを有する隣接ブロックのBVを、
図6に示すBVP候補としてリスト(以下、BVP候補リスト)に登録する。
【0055】
ステップS3において、BV導出部205Aは、BVP候補リストから、復号部201で復号された異なる2つ以上のBVPに関する制御情報(IBC BVPフラグ又はIBC BVPインデックス)の値に基づき、異なる2つ以上のBVPを選択する。
【0056】
なお、BV導出部205Aが、かかるBVP候補リストに対する1つ以上のインデックスに対応するBVを導出する際に、2つ目以降のインデックスは、直前のインデックスを起点とした相対的なインデックスであることが望ましい。詳細は後述する。
【0057】
ここで、ステップS1における復号済みであるか否か及びBVを有する否かを確認する隣接ブロックの数(位置)は、非特許文献1と同様に、2種類(
図5の「A」及び「L」)であってもよいし、或いは、非特許文献2と同様に、5種類(
図5の「A」、「L」、「AR」、「LB」及び「AL」)であってもよい。
【0058】
隣接ブロックを確認する順序は、それぞれ非特許文献1及び2と同じであってもよい。ここで、「A」、「L」、「AR」、「LB」及び「AL」は、それぞれ非特許文献1及び2における「Above」「Left」、「AboveRight」、「LeftBottom」及び「AboveLeft」である。
【0059】
ここで、BV導出部205Aは、BVP候補として、近傍ブロックのBV(非特許文献2で空間BVPと呼称)や過去に使用したBV(非特許文献2でヒストリーBVPと呼称)等を利用できる。
【0060】
また、ステップS1で、新たに利用可否を確認するBVが、既に利用可能と確認したBVと同一である場合、BV導出部205Aは、新たに利用可否を確認するBVを利用不可と判定してもよい。
【0061】
さらに、BV導出部205Aは、ステップS1で利用可能と判定したBV(BVP候補)のBVP候補リストへの登録順を所定の並び替え方法で並び替えてもよい。この並び替え方法の詳細は、後述する。
【0062】
IBC BVPにおけるBVDの導出方法の概要は、以下の通りである。
【0063】
ステップS1において、BV導出部205Aは、異なる2つ以上のBVDに関する制御情報に基づき、BVDを導出する。
【0064】
ステップS2において、BV導出部205Aは、ステップS1で導出した異なる2つ以上のBVDを、BVDの画素精度に関する制御情報に基づき、丸める。
【0065】
ここで、BVDに関する制御情報に基づくBVDの導出方法は、非特許文献1と同様の方法で構成できる。具体的に、復号部201が、BVDの大きさ(絶対値)及びBVDの符号に関する制御情報の値を復号する乃至は推定し、BV導出部205Aが、それらの値からBVDを導出する。
【0066】
最後に、BV導出部205Aは、導出した異なる2つ以上のBVPとBVDとを加算して異なる2つ以上のBVを導出する。
【0067】
以上が、2つ以上のBVを導出する双予測(又は、複数予測)のIBC BVPにおけるBVの導出方法の概要である。
【0068】
(B. IBCマージ)
以下、
図4~
図7を用いて、BV導出部205AにおけるIBCマージによるBVの導出方法の一例について説明する。
【0069】
IBCマージでは、BV導出部205Aは、IBC BVPとは異なり、BVDを導出せず、BVPのみを導出して、BVとしてそのまま導出する。
【0070】
IBCマージにおけるBVの導出方法の概要は、以下の通りである。
【0071】
ステップS1において、BV導出部205Aは、
図5に示す復号対象ブロックの隣接ブロックが復号済みであるか否かを確認し、かかる隣接ブロックが復号済みであれば、BVを有するか否か(BVの利用可否)を確認する。
【0072】
ステップS2において、BV導出部205Aは、BVを有する隣接ブロックのBVを、
図6或いは
図7に示すBVP候補(又は、マージ候補と呼称)としてリスト(以下、BVP候補リスト又はマージ候補リストと呼称)に登録する。
【0073】
ステップS3において、BV導出部205Aは、BVP候補リストから、復号部201で復号されたBVPに関する制御情報(IBCマージインデックス)の値に基づき、BVPを選択し、かかるBVPをBVとして導出する。
【0074】
ここで、ステップS1における復号済みであるか否か及びBVを有する否かを確認する隣接ブロックの数(位置)は、非特許文献1と同様に、2種類(
図5の「A」及び「L」)であってもよいし、或いは、非特許文献2と同様に、5種類(
図5の「A」、「L」、「AR」、「LB」及び「AL」)であってもよい。
【0075】
隣接ブロックを確認する順序は、それぞれ非特許文献1及び2と同じであってもよい。ここで、「A」、「L」、「AR」、「LB」及び「AL」は、それぞれ非特許文献1及び2における「Above」「Left」、「AboveRight」、「LeftBottom」及び「AboveLeft」である。
【0076】
ここで、BVP候補は、近傍ブロックのBV(非特許文献2で空間マージと呼称)や過去に使用したBV(非特許文献2でヒストリーマージと呼称)、BVの平均(非特許文献2でペアワイズ平均マージと呼称)などを利用できる。
【0077】
また、ステップS1で、新たに利用可否を確認するBVが、既に利用可能と確認したBVと同一である場合、BV導出部205Aは、新たに利用可否を確認するBVを利用不可と判定してもよい。
【0078】
さらに、BV導出部205Aは、ステップS1で利用可能と判定したBV(BVP候補)のBVP候補リストへの登録順を所定の並び替え方法で並び替えてもよい。この並び替え方法の詳細は、後述する。
【0079】
以上が、IBCマージにおけるBVの導出方法の概要である。
【0080】
ここで、BV導出部205Aは、IBCマージにおいて2つ以上のBVを導出する場合は、以下のような方法で、2つ以上のBVを導出してもよい。
【0081】
一例として、BV導出部205Aは、
図6に示すように、1つのBVP候補リスト(又は、マージ候補リスト)を作成した上で、復号部201が復号したBVP候補リスト内のBVP候補(又は、マージ候補)を示す2つ以上の制御情報(IBCマージインデックス)の値に応じて、BVP候補リスト内から2つ以上のBVP候補を選択し、それぞれBVとして導出してもよい。
【0082】
なお、BV導出部205Aが、かかるBVP候補リストに対する1つ以上のインデックスに対応するBVを導出する際に、2つ目以降のインデックスは、直前のインデックスを起点とした相対的なインデックスであることが望ましい。詳細は後述する。
【0083】
或いは、BV導出部205Aは、BVP候補リストの上位を1つ以上固定的に選択することでBVを導出してもよい。この場合、BV導出部205Aは、後述するBVP候補リスト内のBVP候補の並べ替えを実施することが望ましい。かかる構成によれば、2つ以上のBVのうち、一部のBVを固定的に選択することで、2つ以上のBVを導出するために必要なインデックスの符号量が不要となるため、符号化効率を向上させることができる。
【0084】
他の例として、BV導出部205Aは、
図7に示すように、BVP候補リストを復号対象ブロックが保持するBVの数だけ個別に構成した上で、1つのインデックスにより、2つ以上のBVを導出してもよい。
【0085】
例えば、BV導出部205Aは、BVP候補として近傍ブロックが複数のBVを保持している場合、各BVをそれぞれ対応するBVP候補リストに登録する。このように、BVP候補リストを複数構築しておき、インデックスを共通化しておくことで、1つのインデックスから1つ以上のBVを導出することができる。例えば、復号対象ブロックが最大2つのBVを保持する場合、BV導出部205Aは、2つのリスト(例えば、通常のフレーム内予測と同様のL0リスト及びL1リスト)を用意し、インデックスに対応するBVを、L0リストから1つ導出し、L1リストから1つ導出してもよい。インデックスに対応するBVがL0リスト及びL1リストの片方にしかなければ、BV導出部205Aは、その1つを用いてもよい。
【0086】
(C. IBC BVP/マージ)
以下、
図4~
図6及び
図8を用いて、BV導出部205AにおけるIBC BVP/マージによるBVの導出方法の一例について説明する。
【0087】
IBC BVP/マージは、2つ(或いは、2つ以上)のBVを導出するために、上述のIBC BVPにおけるBVの導出方法に基づいて、1つ目のBVを導出し、上述のIBCマージにおけるBVの導出方法に基づいて、もう1つの(或いは、2つ以上の残りの)BVを導出する方法である。具体的な導出方法は、以下の通りである。
【0088】
第1に、IBC BVP/マージでは、BV導出部205Aは、IBC BVPと同じ導出方法で、復号部201で復号されるBVP及びBVDのそれぞれに関する制御情報の値に基づいてBVPとBVDを導出し、それら導出されたBVPとBVDを加算して1つ目のBVを導出する。
【0089】
第2に、IBC BVP/マージでは、BV導出部205Aは、IBC BVPと同じ導出方法で、復号部201で復号されるBVPに関する制御情報(IBCマージインデックス)の値に基づいてBVP候補リストからBVPを選択して2つ目のBVとして導出する。
【0090】
他の例として、
図8に示すように、BV導出部205Aは、導出した1つ目のBVに基づいて、テンプレート(すなわち、BV参照先の参照ブロックの所定の近傍画素)を作成し、IBCマージのBVP候補リスト内の各BVP候補(各IBCマージ候補)のテンプレート(参照先の参照ブロックの所定の近傍画素)との類似性を評価する(テンプレートコストを比較する)ことで、類似性が最も高い(テンプレートコストが最小となる)BVP候補(IBCマージ候補)をIBC BVP/マージの2つ目のBVとして導出してもよい。
【0091】
或いは、別の例として、BV導出部205Aは、復号部201で復号されたBVPに関する制御情報(IBCマージインデックス)の値に基づき、IBCマージにおけるBVP候補リスト内からBVPを選択し、かかるBVPを2つ目のBVとして導出してもよい。
【0092】
ここで、BV導出部205Aは、各IBCマージ候補のテンプレートとの類似性評価の対象として、IBC BVPで導出したBVに基づくテンプレートではなく、復号対象ブロックのテンプレートを用いてもよい。
【0093】
なお、BV導出部205Aは、テンプレートの類似性の評価(テンプレートコストの比較)には、差分二乗和(SSE:Sum of Squared Error)や差分絶対値和(SAD:Sum of Absolute Difference)等を利用できる。
【0094】
また、テンプレートの類似性評価において作成するテンプレートの所定画素は、各ブロックの左部又は上部に隣接する1画素ラインの復号済み画素でもよい。
【0095】
BV導出部205Aは、ピクチャ境界やスライス境界で、左部又は上部に隣接する復号済み画素がない場合は、利用可能な位置の復号済み画素を用いて、テンプレートの類似性評価を実施してもよい。
【0096】
また、BV導出部205Aは、導出対象のBVが2つ以上ある場合は、テンプレートの類似性が高い順(テンプレートコストの小さい順)にBVP候補を導出してもよい。
【0097】
IBC BVP/マージによるBVの導出方法のより詳細な手順は、以下の通りである。
【0098】
IBC BVP/マージにおけるIBC BVPによるBVの導出方法に基づくBVPの導出方法の概要は、以下の通りである。
【0099】
ステップS1において、BV導出部205Aは、
図5に示す復号対象ブロックの隣接ブロックが復号済みであるか否かを確認し、かかる隣接ブロックが復号済みであれば、BVを有するか否か(BVの利用可否)を確認する。
【0100】
ステップS2において、BV導出部205Aは、BVを有する隣接ブロックのBVを、
図6に示すBVP候補としてリスト(以下、BVP候補リスト)に登録する。
【0101】
ステップS3において、BV導出部205Aは、BVP候補リストから、復号部201で復号されたBVPに関する制御情報(IBC BVPフラグ又はIBC BVPインデックス)の値に基づき、BVPを選択する。
【0102】
ここで、ステップS1における復号済みであるか否か及びBVを有する否かを確認する隣接ブロックの数(位置)は、非特許文献1と同様に、2種類(
図5の「A」及び「L」)であってもよいし、或いは、非特許文献2と同様に、5種類(
図5の「A」、「L」、「AR」、「LB」及び「AL」)であってもよい。
【0103】
隣接ブロックを確認する順序は、それぞれ非特許文献1及び2と同じであってもよい。ここで、「A」、「L」、「AR」、「LB」及び「AL」は、それぞれ非特許文献1及び2における「Above」「Left」、「AboveRight」、「LeftBottom」及び「AboveLeft」である。
【0104】
ここで、BV導出部205Aは、BVP候補として、近傍ブロックのBV(非特許文献2で空間BVPと呼称)や過去に使用したBV(非特許文献2でヒストリーBVPと呼称)等を利用できる。
【0105】
また、ステップS1で、新たに利用可否を確認するBVが、既に利用可能と確認したBVと同一である場合、BV導出部205Aは、新たに利用可否を確認するBVを利用不可と判定してもよい。
【0106】
さらに、BV導出部205Aは、ステップS1で利用可能と判定したBV(BVP候補)のBVP候補リストへの登録順を所定の並び替え方法で並び替えてもよい。この並び替え方法の詳細は、後述する。
【0107】
IBC BVP/マージにおけるIBC BVPによるBVの導出方法に基づくBVDの導出方法の概要は、以下の通りである。
【0108】
ステップS1において、BV導出部205Aは、BVDに関する制御情報に基づき、BVDを導出する。
【0109】
ステップS2において、BV導出部205Aは、ステップS1で導出したBVDを、BVDの画素精度に関する制御情報に基づき、丸める。
【0110】
ここで、BVDに関する制御情報に基づくBVDの導出方法は、非特許文献1と同様の方法で構成できる。具体的に、復号部201が、BVDの大きさ(絶対値)及びBVDの符号に関する制御情報の値を復号する乃至は推定し、BV導出部205Aが、それらの値からBVDを導出する。
【0111】
BVD導出部205Aは、導出したBVPとBVDとを加算して1つ目のBVを導出する。
【0112】
IBC BVP/マージにおけるIBCマージによるBVの導出方法に基づく2つ目のBVの導出方法の概要は、以下の通りである。
【0113】
なお、IBC BVP/マージにおいては、IBC BVPのBV導出及びIBCマージのBV導出において、BV導出部205Aは、異なる2つのBV候補リスト(すなわち、片方は、IBC BVP向けのBVP候補リスト、もう片方は、IBC BVP/マージ向けのマージ候補リスト)を構築してもよい。
【0114】
他の例として、BV導出部205Aは、2つ目のBVを導出するために、上述した1つ目のBVに基づくテンプレートの類似性評価により、以下のように二つ目のBVを導出してもよい。
【0115】
ステップS1において、BV導出部205Aは、1つ目のBVが参照するブロック或いは復号対象ブロックの近傍画素をテンプレートとする。
【0116】
ステップS2において、BV導出部205Aは、ステップS1で導出したテンプレートとBVP候補リストの各BVP候補が参照するブロックで対応する画素との類似性を評価する。
【0117】
ステップS3において、BV導出部205Aは、類似性が最も高いBVPを選択し、かかるBVPを2つ目のBVとして導出する。
【0118】
ここで、BV導出部205Aは、ステップS2のBVP候補リストの各BVP候補のうち、1つ目のBVと一致するBVP候補については、類似性評価の対象に含めない。
【0119】
或いは、BV導出部205Aは、ステップS2のBVP候補リストのうち、1つ目のBVと一致するBVP候補については、BVP候補リストの構築段階でリスト内に登録しない。
【0120】
或いは、BV導出部205Aは、ステップS3で類似性の高い順序でBVP候補リスト内のBVP候補の登録順を並べ替え、復号部201で復号されたBVPに関する制御情報(IBCマージインデックス)の値に基づき、BVPを選択し、かかるBVPをBVとして導出してもよい。
【0121】
以上が、IBC BVP/マージにおけるBVの導出方法の概要である。
【0122】
(D. IBC GPM)
以下、
図9を用いて、BV導出部205AにおけるIBC GPMによるBVの導出方法の一例について説明する。
【0123】
IBC GPMでは、BV導出部205Aは、
図9に示すように、復号対象ブロックが非特許文献1に開示されている幾何学ブロック分割モード(GPM:Geometric Paritioning Mode)と同様に、異なる複数パターンの直線(幾何学分割線)の候補から選択された任意の直線(
図9における実線)で2分割された上で、各分割領域のそれぞれに異なる1つ以上のBVを導出し、各BVの参照先(参照ブロックの画素)を分割線からの距離に応じて加重平均する。
【0124】
ここで、BV導出部205Aは、上述のIBCマージと同様に、かかるIBC GPMに必要なBVを導出してもよい。
【0125】
また、BV導出部205Aは、非特許文献1又は2で開示されているGPMの分割線の候補を特定する制御情報に基づいて、IBC GPMにおける分割線の候補を特定してもよい。
【0126】
<画素精度>
なお、BV導出部205Aは、導出するBVの画素精度について、整数画素精度で設定することができるし、小数画素精度で設定することもできる。
【0127】
IBCは、スクリーン画像に対する符号化技術として考案されたが、カメラで撮影した自然画像に適用する場合は、BVの画素精度を小数画素精度で設定する(すなわち、通常のフレーム間予測と同様に、補間フィルタを伴いて予測画素を生成する)ことで、予測精度を高精度化することができる。
【0128】
また、BV導出部205Aは、複数の異なる画素精度を適応的に選択することができる。
【0129】
すなわち、BV導出部205Aは、BVの画素精度について複数の異なる整数画素精度で設定してもよいし、複数の異なる小数画素精度で設定してもよい。
【0130】
例えば、BV導出部205Aは、シーケンス単位及び/又はピクチャ単位及び/又はスライス単位及び/又はブロック単位に、BVの画素精度を変更することもできる。
【0131】
すなわち、BV導出部205Aは、BVの画素精度について、シーケンス単位、ピクチャ単位、スライス単位、ブロック単位の任意の組み合わせ毎に変更してもよい。
【0132】
ブロック単位のBVの画素精度の選択については、非特許文献1において、適応動きベクトル解像度(AMVR:Adaptive Motion Vector Resolution)をIBCに適用する技術が開示されている。
【0133】
具体的には、かかる技術は、IBCにおけるBVの導出において、BVDの画素精度を1画素精度或いは4画素精度のいずれかから選択し、選択されたBVDの画素精度にBVを最終的に丸める技術である。
【0134】
BV導出部205Aは、このAMVRの選択肢として、上述の小数画素精度(例えば、1/4画素精度及び/又は1/2画素精度)を加えてもよい。
【0135】
他の例として、BV導出部205Aは、復号対象ブロックのBVの数に応じて、BVの画素精度を変更することもできる。
【0136】
例えば、BV導出部205Aは、BVが1つの場合は、BVの画素精度を小数画素精度とし、BVが2つ以上の場合は、BVの画素精度を整数画素精度とすることができる。
【0137】
BVの数が増えるほど、第2フレーム内予測が一般に高精度化する一方で、BV導出に要する処理負荷が増大する。そのため、BVの数が増えるほど、BVの画素精度を粗くすることで、第2フレーム内予測の予測精度を維持しつつ、復号処理負荷を抑制できる効果が得られる。
【0138】
例えば、BV導出部205Aは、BVが2つ又は2つ以上の場合は、BVの画素精度を整数精度に設定(選択可能な画素精度を整数精度のみに限定)してもよい。
【0139】
他方、BV導出部205Aは、BVが1つの場合は、BVの画素精度を整数画素精度又は小数画素精度に設定してもよい(選択可能な画素精度として整数精度のみに限定しなくてもよい)。
【0140】
<BVP候補リスト>
上述したように、BV導出部205Aは、BVP候補リストを復号対象ブロックが保持するBVの数だけ構成してもよい。
【0141】
L0リスト及びL1リストの例を再掲すると、単一のリスト(L0リスト)だけを利用するケースと、複数のリスト(例えば、BV導出部205Aが最大2つのBVを導出する場合は、L0リスト及びL1リスト)を利用するケースとに分けられる。
【0142】
いずれのケースでも、BV導出部205Aは、BVP候補リストに登録するBVP候補について、復号対象ブロックの
図5に示すような近傍ブロックのBVや、過去に利用したBV、BVの平均等で構成してもよい。
【0143】
或いは、BV導出部205Aは、BVP候補リストに登録するBVP候補について、非特許文献2で開示されているIntraTMPで導出したBVで構成してもよい。
【0144】
これらのBVP候補リスト内に登録するBVP候補の登録順は、非特許文献1及び2に開示されている登録順序に準じてもよい。
【0145】
なお、BV導出部205Aは、BVP候補リストがBVP候補で埋まるまで、上述のBVP候補を探して登録する。
【0146】
他の例として、BV導出部205Aは、BVP候補リストに登録可能なBVP候補の最大数を超えるBVP候補の利用可否を確認し、その候補の中からBVP候補リストに登録するBVP候補を選択してもよい。
【0147】
例えば、BV導出部205Aは、BVP候補リストの探索順にBVP候補リストに登録してもよいし、後述する並び替え方法で登録可能なBVP候補の順序を並び替えた上で登録してもよい。
【0148】
また、BVP候補の最大数は、固定値で設定されてもよいし、後述するシーケンス単位或いはピクチャ単位或いはスライス単位の制御情報で適応的に設定されてもよい。
【0149】
また、BV導出部205Aは、IBC BVP、IBCマージ、IBC BVP/マージのそれぞれのBVP候補リストを、共通化してもよいし、共通化しなくてもよい(IBC BVP、IBCマージ、IBC BVP/マージのそれぞれで異なるBVP候補リストを用いてもよい)。
【0150】
前者の例としては、例えば、BV導出部205Aは、IBC BVPやIBC BVP/マージにおけるIBC BVPフラグ又はIBC BVPインデックスを用いてBVPを導出するBVP候補リストに登録可能なBVP候補の最大数に対して、IBCマージやIBC BVP/マージにおけるIBCマージインデックスを用いてBVP(BV)を導出するBVP候補リストに登録可能なBVP候補の最大数を同じに設定してもよい。
【0151】
このように、BVP候補リストを共通化することで、画像復号装置200の回路規模を削減できる。
【0152】
後者の例としては、例えば、BV導出部205Aは、IBC BVPやIBC BVP/マージにおけるIBC BVPフラグ又はIBC BVPインデックスを用いてBVPを導出するBVP候補リストに登録可能なBVP候補の最大数に対して、IBCマージやIBC BVP/マージにおけるIBCマージインデックスを用いてBVP(マージ候補又はBV)を導出するBVP候補リスト(マージ候補リスト)に登録可能なBVP候補(IBCマージ候補)の最大数を大きく設定してもよい。
【0153】
例えば、非特許文献2のように、BV導出部205Aは、BVP候補リストに登録可能なBVP候補数の最大値を2個に固定し、マージ候補リストに登録可能なマージ候補数の最大値を6個に設定してもよい。
【0154】
このように、BVD候補リストよりもマージ候補リストに登録可能なマージ候補数の最大値を大きく設定することで、復号可能なBVのパターン数が増えるため、符号化効率の向上が期待できる。
【0155】
BV導出部205Aは、BVP候補リスト(又は、マージ候補リスト)に登録可能なBVP候補(又は、マージ候補)を探索するために、近傍ブロック等のBVの利用可否を確認する際、新たに利用可否を確認するBVが既に利用可能と確認したBVP候補(又は、マージ候補)と同一である場合、新たに利用可否を確認するBVを利用不可と判定(剪定)してもよい。
【0156】
BV導出部205Aは、BVP候補リスト内に完全に一致するBVP候補が2つ以上登録されないようにすることで、BVP候補リストからBVPを選択するためのBVPに関する制御情報の符号化効率を向上することができる。
【0157】
また、BV導出部205Aは、復号対象ブロックにBVの画素精度を変更するAMVR等が適用されて最終的に導出されるBVの画素精度が、AMVR等が非適用の場合よりも大きい場合、BVP候補リストへの利用可否を判定するために復号対象ブロックの近傍ブロック等から抽出したBVP候補の画素精度を、最終的に導出されるBVの画素精度に丸めた上で利用するか否かを判定してもよい。
【0158】
例えば、BV導出部205Aは、BVP候補リストに対して利用可否を判定するために抽出した近傍ブロックの各BV(1画素精度)が、AMVR等によって最終的に4画素精度に丸められる場合、BVP候補リストの各BVを4画素精度に丸めた上で利用するか否かを判定してもよい。
【0159】
また、BV導出部205Aは、BV導出にあたり、2つ以上のBVP候補リスト(又は、マージ候補リスト)を使用し、少なくとも1つのリストのBVP候補(又は、マージ候補)の画素精度がAMVR等によって丸められる場合、他のリストのBVP候補(又は、マージ候補)の画素精度も同様に(同じ画素精度に)丸めた上で、BVP候補リスト(又は、マージ候補リスト) を構築してもよい。
【0160】
他の例として、BV導出部205Aは、BV導出にあたり、2つ以上のBVP候補リスト(又は、マージ候補リスト)を使用し、少なくとも1つのリストのBVP候補(又は、マージ候補)の画素精度がAMVR等によって丸められる場合、他のリストのBVP候補(または、マージ候補)の画素精度については丸めずに、BVP候補リスト(又は、マージ候補リスト) を構築してもよい。
【0161】
例えば、AMVRはIBCのBV導出に必要なBVDの画素精度を粗くしてBVDの符号量を削減する技術であるため、IBC及びAMVRが併用して適用される場合、上述のIBC BVPやIBC BVP/マージにおけるIBC BVPのBV導出方法により導出されるBVP、ひいては、BVの画素精度は、BVDの画素精度に丸められるのが自然である。
【0162】
他方、IBC BVP/マージにおけるIBC マージのBV導出方法により導出されるBVP(又は、マージ候補)、ひいては、BVの画素精度は、BVDの画素精度に丸められてもよいし、丸められなくてもよい。
【0163】
そのため、BV導出部205Aは、IBC BVP/マージについては、復号対象ブロックに対して、AMVR等が適用される場合、IBC BVP/マージのBVP候補リストに登録可能な各BVP候補の画素精度を丸めた上で利用するか否かを判定してもよいが、マージ候補リストに登録可能なBVP候補(又は、マージ候補)の画素精度は丸めずに利用するか否かを判定してもよい。
【0164】
また、BV導出部205Aは、BVP候補リスト内のBVP候補の登録順番を所定の方法で並べ替えてもよい。
【0165】
具体的には、BV導出部205Aは、復号対象ブロックの近傍画素をテンプレートとして、各BVP候補のBVが参照する参照ブロックの近傍画素(復号対象ブロックのテンプレートと同一サイズ)との類似性を評価し、かかる類似性の高い順序でBVP候補リスト内のBVP候補を並べ替える。
【0166】
ここで、BV導出部205Aは、差分二乗和(SSE)や差分絶対値和(SAD)等を利用して、かかるテンプレートの類似性について評価してもよい。
【0167】
或いは、BV導出部205Aは、BVが参照するブロック同士の類似性を、BVP候補リスト内のBVP候補の並べ替えに利用することができる。
【0168】
BV導出部205Aは、かかる類似性として、アダマール変換差分絶対値和(SATD:Sum of Absolute Transformed Difference)等を利用することができる。
【0169】
BV導出部205Aは、L0リスト及びL1リスト等の複数のリストを利用する場合は、両リストが参照するブロックの近傍を合成した上で、かかる類似性を評価してもよい。
【0170】
なお、BVP候補リストに登録するBVの登録順序を並べ替える範囲は、利用可能なBVP候補全てでもよいし、一部に限定されてもよい。
【0171】
BV導出部205Aは、上述の類似性の高い順序で、BVP候補リストBVP候補を登録することで、BVP候補リストから高精度なBVPを導出できるため、結果として、第2フレーム内予測の高精度化、ひいては、符号化効率の向上が期待できる。
【0172】
<補正>
BV導出部205Aは、所定の方法で、前述したIBC BVPによって導出されたBVP、IBCマージによって導出されたBVP(BV)或いはIBC BVP/マージによって導出されたBVP(BV)の参照位置を補正してもよい。
【0173】
所定の方法としては、導出されたBVP(BV)に対してBVDを補正ブロックベクトルとして加算する方法と、BVDを加算せずにBVP(BV)を起点に後述する所定の探索方法で新たな参照位置を探索する方法とに大別される。
【0174】
前者のBVの補正方法(以下、BVD加算方法)については、BV導出部205Aは、新たなBVDを加算するという性質上、IBC BVPには適用せず、IBCマージ或いはIBC BVP/マージのIBCマージインデックスに対応付けられるBVP(BV)に対してのみ適用してもよい。
【0175】
後者のBVの補正方法(以下、BV探索方法)については、BV導出部205Aは、BVDを加算しない方法であるため、IBC BVP或いはIBCマージ或いはIBC BVP/マージのいずれに適用してもよい。
【0176】
BVD加算方法の一例として、BV導出部205Aは、非特許文献2で開示されているマージモードブロックベクトル差分(MBVD:Merge mode with Block Vector Difference)を適用してもよい。
【0177】
具体的に、BV導出部205Aは、MBVDが適用される場合、制御情報に基づき、補正ブロックベクトルの値を導出(特定)する。
【0178】
また、BV導出部205Aは、MBVDが適用される場合、補正ブロックベクトルの符号量を抑制するために、補正ブロックベクトルの取り得る値(参照位置)に制約を設定してもよい。
【0179】
例えば、BV導出部205Aは、MBVDが適用される場合、補正ブロックベクトルの取り得る値(参照位置)の距離及び方向をそれぞれ離散的な値に限定してもよい。例えば、BV導出部205Aは、MBVDが適用される場合、補正ブロックベクトルの取り得る値(参照位置)の距離を2のべき乗に限定してもよいし、及び/又は、補正ブロックベクトルの取り得る値(参照位置)の上下左右に限定してもよい。
【0180】
なお、復号部201及びBV導出部205Aは、MBVDにおける補正ブロックベクトルの候補に、小数画素精度の補正ブロックベクトルの候補を含めるかどうか(或いは、整数画素のみとするか)どうかを、シーケンス単位及び/又はピクチャ単位及び/又はスライス単位の制御情報で制御してもよい。
【0181】
或いは、BV導出部205Aは、復号対象ブロックが有するブロックベクトルの数に応じて、補正ブロックベクトルの値(参照位置)に制約を設定してもよい。
【0182】
例えば、BV導出部205Aは、復号対象ブロックが有するブロックベクトルが2つ以上の場合は、補正ブロックベクトルの値(参照位置)を整数画素精度のみに制限してもよい。
【0183】
他の例として、BV導出部205Aは、シーケンス単位及び/又はピクチャ単位及び/又はスライス単位で、IBCに対する複数のBVの導出を可能にするかどうかを判定する制御情報で制御してもよい。
【0184】
BVD加算方法の例として、BV導出部205Aは、非特許文献2に開示されているテンプレートマッチング(Template Matching)を適用してもよい。
【0185】
Template Matchingは、上述のBVP候補の並び替え方法と同様に、復号対象ブロックの近傍画素をテンプレートとして、導出されたBVP(BV)を起点に、新たなBVP(BV)の参照位置を参照ブロックの近傍画素との類似性を確認しながら探索する方法である。
【0186】
BV導出部205Aは、かかる探索範囲について、非特許文献2と同様のサイズ(例えば、BVP(BV)を原点して、上下左右方向に8画素の範囲)に限定してもよい。
【0187】
また、BV導出部205Aは、探索する際の画素精度について、上述のIBCに対するAMVR等で選択された画素精度を考慮して、適応的に限定してもよい(例えば、AMVR等で1画素精度が選択された場合は、Template Matchingによる探索画素精度も1画素精度に整合させてもよい)。
【0188】
他のBVD加算方法の例として、導出されたBVが2つ以上ある場合は、BV導出部205Aは、非特許文献1のデコーダ側動きベクトル補正(DMVR:Decoder-side Motion Vector Refinement)のようなBV探索手法、すなわち、デコーダ側ブロックベクトル補正(DBVR:Decoder-side Block Vector Refinement)を適用してもよい。
【0189】
具体的には、BV導出部205Aは、導出された2つ以上のBVP(BV)において、予め設定した補正ブロックベクトル候補群を適用し、複数の参照ブロック同士の類似性が高い補正ブロックベクトルを探索することでBV(BVP)を補正する。
【0190】
ここで、BV導出部205Aは、DBVRの類似性の算出については、上述の差分二乗和(SSE)や差分絶対値和(SAD)やアダマール変換差分絶対値和(SATD)等を利用できる。また、DBVRは、2つ以上のBVを用いた探索方法を前提としているため、1つのBVが導出される場合は適用されない。
【0191】
<保存>
BV導出部205Aは、復号対象ブロックに対して導出された1つ以上のBV及び参照画像を後続の復号対象ブロックが参照できるように、所定の画素単位で画像復号装置200のメモリに保存する。
【0192】
BV導出部205Aが、復号対象ブロックに対して導出されたBV及び参照画像をメモリに保存することで、復号対象ブロックのBV及び参照画像を用いて、復号対象ブロックより後に復号される別の復号対象ブロックにIBCを適用できるため、IBCの適用率が増加し、符号化効率を向上させることができる。
【0193】
BV導出部205Aは、所定の画素単位として、例えば、非特許文献1のように、復号対象ブロックを4×4画素単位で細分割した4×4画素のサブブロックで、復号対象ブロックに対して導出された1つ以上のBV及び参照画像をメモリに保存してもよい。
【0194】
或いは、BV導出部205Aは、4×4画素のサブブロックよりも小さな画素単位或いは大きな画素単位(2或いは4のべき乗)で、復号対象ブロックに対して導出された1つ以上のBV及び参照画像をメモリに保存してもよい。
【0195】
BV導出部205Aは、ブロックベクトル候補リストの数に応じて、復号対象ブロックに対して導出された1つ以上のBV及び参照画像をメモリに保存してもよい。
【0196】
例えば、BV導出部205Aは、導出したBVが1つの場合は、通常のフレーム間予測で使用されるL0リストに、かかるBV及び対応する参照画像を保存する。
【0197】
また、BV導出部205Aは、導出したBVが2つの場合は、通常のフレーム間予測で使用されるL0リスト及びL1リストのそれぞれに、かかるBV及び対応する参照画像を1つずつ保存する。
【0198】
さらに、BV導出部205Aは、導出したBVが3つ以上の場合は、通常のフレーム間予測で使用されるL0リスト及びL1リストに加えて、Lnリストを追加し、それぞれに、かかるBV及び対応する参照画像を1つずつ保存する。
【0199】
BV導出部205Aは、上述のようにメモリに保存したBVを、別の復号対象ブロックでBVP候補として参照する場合は、以下のように、BVP候補リストに対して利用可能なBVP候補として展開する。
【0200】
BV導出部205Aは、メモリに保存されたBVが1つの場合は、BVP候補に1つのリスト番号(1つのBVP候補)としてBVを展開する。
【0201】
一方、BV導出部205Aは、メモリに保存されたBVが2つ以上の場合は、2つ以上のリスト番号(2つ以上のBVP候補)として、BVを展開する。
【0202】
また、BV導出部205Aは、復号対象ブロックに対して導出された1つ以上のBV及び参照画像を、上述の過去に使用したBVを参照するヒストリーBVP或いはヒストリーBVマージで参照するために、FIFO(First In First Out)式の別のメモリ(以下、ヒストリー)に保存してもよい。
【0203】
ここで、BV導出部205Aは、導出したBVが1つの場合は、ヒストリーに、かかるBV及び対応する参照画像をそのまま保存する。ただし、BV導出部205Aは、ヒストリー内に既に同じBVが存在する場合は、かかるBVを保存しない。
【0204】
一方、BV導出部205Aは、導出したBVが2つ以上の場合は、かかる2つ以上のBV及び対応する参照画像をヒストリーにそれぞれ保存する。ただし、BV導出部205Aは、導出したBVが1つの場合と同様に、ヒストリー内に既に同じBVが存在する場合は、かかるBVを登録しない。
【0205】
なお、上述のメモリ或いはヒストリーに保存されるBVが、上述したように補正されている場合は、BV導出部205Aは、補正後のBVを保存してもよいし、補正前のBVを保存することもできる。
【0206】
かかる場合、BV導出部205Aは、補正後のBV及び補正前のBVのどちらを登録するかについて予め決定しておくことで、補正前後を表す符号を省略できる効果が得られる。
【0207】
逆に、BV導出部205Aは、補正後のBV及び補正前のBVのどちらを登録するかについて適応的に決定することで、符号化効率を向上させる効果が得られる。
【0208】
<合成>
第2フレーム内予測画素生成部205Bは、1つ又は複数のBVが参照する参照ブロックの画素(参照画素)を用いて復号対象ブロックの予測画素を合成することで第2予測画素を生成するように構成されている。
【0209】
第2フレーム内予測画素生成部205Bは、BVが1つの場合は、復号対象ブロックの予測画素として、参照ブロックの参照画素をそのまま利用してもよいし、参照ブロックの画素を補正してもよい。
【0210】
例えば、第2フレーム内予測画素生成部205Bは、上述の参照画素を用いた多項式によって、かかる補正を実行してもよい。
【0211】
具体的には、第2フレーム内予測画素生成部205Bは、上述の参照画素Q(x,y)及び重み係数C1、C2を用いて定義された多項式(次式参照)によって、復号対象ブロック内の座標(x,y)における予測画素としての補正値P(x,y)を生成するように構成されていてもよい。
【0212】
P(x,y)=C1×Q(x,y)+C2
或いは、第2フレーム内予測画素生成部205Bは、1つの予測画素に対して1つのBVが参照するブロックにおける複数の参照画素Q1,Q2,…Qnを用いて、上述の多項式を定義してもよい。
【0213】
次式は、座標(x,y)を中心とした3×3の領域で多項式を定義した例である。
【0214】
P(x,y)=C1×Q(x-1,y-1)+C2×Q(x,y-1)+C3×Q(x+1,y-1)+C4×Q(x-1,y)+C5×Q(x,y)+C6×Q(x+1,y)+C7×Q(x-1,y+1)+C8×Q(x,y+1)+C9×Q(x+1,y+1)+C10
図10は、重み係数が10個の例を示す。ただし、表記を簡潔にするために、Q(x+i,y+j)をQ
i,jで表している。
【0215】
第2フレーム内予測画素生成部205Bは、このように複数の参照画素を利用して多項式を定義する場合は、近くの画素を利用することが好ましい。
【0216】
或いは、第2フレーム内予測画素生成部205Bは、上述の参照画素の分布によって複数の多項式を定義してもよい。
【0217】
次式は、参照画素のヒストグラムが2峰性である場合に、閾値Thで2種類の係数を持つ多項式を定義した例である。
【0218】
P(x,y)=C1×Q(x,y)+C2 P(x,y)>Th
P(x,y)=C3×Q(x,y)+C4 P(x,y)<=Th
ここで、第2フレーム内予測画素生成部205Bは、かかる閾値について、2峰を分離する値に設定してもよい。或いは、第2フレーム内予測画素生成部205Bは、かかる閾値について、単純化して平均値を用いることもできる。
【0219】
第2フレーム内予測画素生成部205Bは、上述の参照画素の分布が多峰性であれば、より多くの種類の係数を持つ多項式を適用することもできる。
【0220】
第2フレーム内予測画素生成部205Bは、復号対象ブロックが持つBVが2つの場合は、かかるBVが参照する2つの参照ブロックの画素(参照画素)を所定の重み値を用いて加重平均することで、第2予測画素を生成するように構成されていてもよい。
【0221】
例えば、第2フレーム内予測画素生成部205Bは、復号対象ブロックが持つ2つ以上のBVが参照する参照画素を1:1で単純平均することで、第2予測画素を生成するように構成されていてもよい。
【0222】
すなわち、第2フレーム内予測画素生成部205Bは、上述の所定の重み値について、1:1で固定してもよいし、適応的に設定してもよい。
【0223】
第2フレーム内予測画素生成部205Bは、上述の所定の重み値について適応的に設定する場合は、BVの長さや、復号対象ブロックと各参照ブロックの近傍画素(テンプレート)との類似性の評価に基づき、1:1ではない重み値を設定することができる。
【0224】
ここで、所定の重み値について1:1の単純平均にすることで処理負荷を低減する効果が得られる。一方、所定の重み値について適応的に設定することで符号化効率を向上させる効果が得られる。
【0225】
また、複数のBVのうち、BVの長さが小さい参照ブロックは、復号対象ブロックとの誤差が小さいと考えられるため、BVの長さが小さい参照ブロックの重みを大きくすることで、2つ以上のBVに基づいて予測画素を生成する場合の予測精度を向上させられる。
【0226】
また、テンプレートの類似性評価で、類似性が高い(テンプレートコストが小さい)参照ブロックは、復号対象ブロックとの誤差が小さいと考えられるため、BVの長さが小さい参照ブロックの重みを大きくすることで、2つ以上のBVに基づいて予測画素を生成する場合の予測精度を向上させられる。
【0227】
他の例として、第2フレーム内予測画素生成部205Bは、非特許文献1や非特許文献2に開示されている双方向符号化ブロック単位加重平均(BCW:Bidrectional with CU based Weighting)のように、加重平均で用いる重み値を特定する制御情報(以下、BCWインデックス)に応じて、2つのBVが参照する参照ブロックの参照画素を加重平均してもよい。
【0228】
復号部201は、双予測のIBC BVP(又は、IBC BVP/マージ)についてはBCWインデックスを復号してもよいし、双予測のIBCマージ(又は、IBC BVP/マージ)についてはBCWインデックスを復号せず、マージ候補リストのマージ候補が有するBCWインデックスを継承してもよい。
【0229】
さらに、第2フレーム内予測画素生成部205Bは、非特許文献2のように、継承するBCWインデックスの値に対応するBCWの重み値を、上述した復号対象ブロック及び参照ブロックに対するテンプレートを用いた類似性評価により補正してもよい。
【0230】
或いは、第2フレーム内予測画素生成部205Bは、複数の参照先の画素を用いて定義された多項式によって、第2予測画素を生成するように構成されていてもよい。
【0231】
具体的には、第2フレーム内予測画素生成部205Bは、異なる複数の参照画素Q(x,y)、R(x,y)及び重み係数C1、C2、C3を用いて定義された多項式(次式参照)によって、復号対象ブロック内の座標(x,y)における予測画素としての補正値P(x,y)を生成するように構成されていてもよい。
【0232】
P(x,y)=C1×Q(x,y)+C2×R(x,y)+C3
上述の構成によれば、多項式を単純化することで計算負荷を軽減する効果が得られる。逆に、多項式を複雑にすることで予測精度を向上させる効果が得られる。
【0233】
第2フレーム内予測画素生成部205Bは、上述の多項式として複数の多項式を定義しておき選択可能とするように構成されていてもよい。かかる構成によれば、適切な多項式を利用することができ、符号化効率向上の効果が得られる。
【0234】
第2フレーム内予測画素生成部205Bは、復号対象ブロックの近傍画素及び参照ブロックの近傍画素から、上述の多項式の係数(重み係数)を導出するように構成されていてもよい。
【0235】
具体的には、
図11に示すように、第2フレーム内予測画素生成部205Bは、復号対象ブロックの近傍画素P’と参照ブロックの近傍画素Q’とが補正によって一致するような重み係数Cを導出する(
図11におけるX1参照)。
【0236】
例えば、第2フレーム内予測画素生成部205Bは、次式に示す誤差関数Eを定義し、Eを最小化するような重み係数Cを導出する。
【0237】
E=Σ(P’(x,y)-(C1×Q’(x-1,y-1)+C2×Q’(x,y-1)+C3×Q’(x+1,y-1)+C4×Q’(x-1,y)+C5×Q’(x,y)+C6×Q’(x+1,y)+C7×Q’(x-1,y+1)+C8×Q’(x,y+1)+C9×Q’(x+1,y+1)+C10))2
第2フレーム内予測画素生成部205Bは、かかる重み係数の導出に、最小二乗法等を利用することができる。
【0238】
或いは、第2フレーム内予測画素生成部205Bは、外れ値の影響を低減するため、主成分回帰や部分最小二乗回帰等のロバスト推定を用いて、かかる重み値を導出することもできる。
【0239】
第2フレーム内予測画素生成部205Bは、導出した重み係数Cを参照ブロックの近傍画素Qに適用して補正値Pを求め(
図11におけるX2)、復号対象ブロックの予測画素(第2予測画素)とする(
図11におけるX3)。
【0240】
かかる構成によれば、かかる重み係数が制御情報として保持される場合と比較すると、かかる重み係数を近傍画素から導出することで、かかる重み係数を復号しなくても済むため、符号化効率向上の効果が得られる。
【0241】
また、複数の参照画素に重み係数を適用することは、より精緻な小数精度のBVを適応的に導出することに相当するため、BVの符号量削減による符号化効率向上の効果が得られる。
【0242】
ここで、第2フレーム内予測画素生成部205Bは、上述の重み係数(多項式の係数)の導出に、一定範囲内にある近傍画素P’及びQ’を用いるように構成されていてもよい。
【0243】
例えば、
図12(a)に示すように、第2フレーム内予測画素生成部205Bは、上述の重み係数(多項式の係数)の導出に、復号対象ブロックから4画素ライン以内の近傍画素を用いるように設定してもよい。
【0244】
逆に、第2フレーム内予測画素生成部205Bは、上述の重み係数の導出に用いる近傍画素を限定することもできる。
【0245】
例えば、第2フレーム内予測画素生成部205Bは、
図12(b)に示すように、復号対象ブロックの上に位置する領域の近傍画素だけを利用して重み係数を導出してもよいし、
図12(c)に示すように、復号対象ブロックの左に位置する領域の近傍画素だけを利用して重み係数を導出してもよい。
【0246】
なお、第2フレーム内予測画素生成部205Bは、上述の近傍画素を指定する複数の範囲を選択可能とするように構成されていてもよい。かかる構成によれば、適切な重み係数を導出することができ符号化効率向上の効果が得られる。
【0247】
(IBC OBMCの基本概念)
第2フレーム内予測画素生成部205Bは、復号対象ブロックの参照画素そのものではなく、復号対象ブロックの参照ブロックにおける参照画素と隣接ブロックの参照ブロックにおける近傍画素との加重平均を計算することで、復号対象ブロックの参照ブロックにおける参照画素に対する補正を実行してもよい。
【0248】
これにより、非特許文献2で開示されているフレーム間予測手段に対する重複ブロック動き補償(OBMC:Overlapped Block Motion Compensation)のように、IBCで生成する予測ブロックとそれに隣接する隣接ブロックとの間のブロック境界を滑らかに接続する効果が得られる。
【0249】
図13に、復号対象ブロックの隣接ブロックがBVを持つ場合を示す。
【0250】
図13に示すように、第1に、第2フレーム内予測画素生成部205Bは、隣接ブロックのBVが参照する隣接参照ブロックにおいて復号対象ブロックの相対位置に相当する近傍画素(以下、隣接参照近傍画素)を取得する。
【0251】
図13の例では、隣接ブロックは、復号対象ブロックの左に位置するので、第2フレーム内予測画素生成部205Bは、隣接参照ブロックの右側の隣接参照近傍画素を取得する。
【0252】
隣接参照近傍画素の範囲は、固定的に設定されてもよいし、可変に設定されてもよい。
【0253】
例えば、第2フレーム内予測画素生成部205Bは、ブロックサイズやアスペクト比に応じて、隣接参照近傍画素の範囲を変化させてもよい。
【0254】
第2に、第2フレーム内予測画素生成部205Bは、隣接参照近傍画素と復号対象ブロックの参照画素との加重平均を計算する。以降では、かかる処理を「IBC OBMC」と呼称する。
【0255】
(IBC OBMCの適用判定及び適用処理単位)
第2フレーム内予測画素生成部205Bは、IBC OBMCの適用有無について、復号対象ブロック単位で判定してもよいし、復号対象ブロック内の復号対象ブロックよりも小さいブロック(以下、サブブロック)単位で判定してもよいし、復号ブロック単位及びサブブロック単位の二段階で判定してもよい。
【0256】
第2フレーム内予測画素生成部205Bは、サブブロック単位での判定の一例として、非特許文献2に開示されているように、復号対象ブロックの左部と上部とのブロック境界に面する4×4画素のサブブロックごとに、IBC OBMCの適用有無について判定してもよい。
【0257】
このように、IBC OBMCの適用有無について、復号対象ブロック単位で判定することで、判定に必要な処理量の増加を抑制できる。
【0258】
他方、IBC OBMCの適用有無について、サブブロック単位で判定することで、IBCが復号対象ブロックに適用される場合において、かかる復号対象ブロック内でIBC OBMCが有効に働く箇所でIBC OBMCが適用できるようになるため、予測精度が向上する。
【0259】
また、第2フレーム内予測画素生成部205Bは、IBC OBMCの適用有無の判定結果に基づいて、復号対象ブロック内の復号対象ブロックよりも小さいブロック(以下、サブブロック)単位で、IBC OBMCを適用してもよい。
【0260】
(IBC OBMCの適用条件)
第2フレーム内予測画素生成部205Bは、復号対象ブロック単位及び/又はサブブロック単位で、所定条件が満たされる場合に、IBC OBMCを適用すると判定し、所定条件が満たされない場合は、IBC OBMCを適用しないと判定してもよい。
【0261】
第2フレーム内予測画素生成部205Bは、かかる所定条件を、以下に示す少なくとも1つの条件で構成してもよい。
1.シーケンス及び/又はピクチャ及び/又はスライス単位でIBC OBMCを適用可能とする制御情報(IBC OBMCフラグ)が有効であること
2.復号対象ブロック単位でIBC OBMCを適用可能とする制御情報(IBC OBMCフラグ)が有効であること
3.復号対象ブロックの面積(画素数)が32画素以上であること
※ ここで、条件3については、32画素ではなく、16画素、64画素、128画素であってもよい。
4.復号対象ブロック(又は、サブブロック)に隣接する隣接ブロックがBV又は動きベクトルを有すること
5.復号対象ブロック(又は、サブブロック)のBVと隣接ブロックのBV又は動きベクトルとが異なること
6.復号対象ブロックにおいて、非特許文献2で開示されているローカル輝度補償が適用されない(無効である)こと
7.復号対象ブロック(又は、サブブロック)のBVに基づく参照画素と隣接ブロックのBV又は動きベクトルに基づく隣接参照近傍画素の画素値との最大誤差が所定の閾値以下であること
8.復号対象ブロックの参照画素の勾配ヒストグラムにおいて、主要な勾配が多いこと
9.復号対象ブロック(又は、サブブロック)のBVが1つであること
10.復号対象ブロック(又は、サブブロック)の隣接ブロックのBV又は動きベクトルが1つであること
以下に、上述の所定条件の変更例について記載する。
【0262】
第2フレーム内予測画素生成部205Bは、上述の条件5については、復号対象ブロック(又は、サブブロック)のBVが参照する参照フレームと隣接ブロックのBV又は動きベクトルが参照する参照フレームとが異なる場合は、復号対象ブロック(又は、サブブロック)のBVと隣接ブロックのBV又は動きベクトルとが異なると判定してもよい。
【0263】
第2フレーム内予測画素生成部205Bは、上述の条件6及び条件7については、参照画素そのものを用いるのではく、参照画素に補間フィルタをかけた後の予測画素を用いてもよい。
【0264】
さらに、第2フレーム内予測画素生成部205Bは、復号対象ブロック(又は、サブブロック)又は隣接ブロックに対するBVの導出数に応じて、IBC OBMCについての異なる適用制限を設定することができる。具体的には、以下の通りである。
【0265】
第2フレーム内予測画素生成部205Bは、上述の所定条件に、復号対象ブロック(又は、サブブロック)のBVが1つであるという条件を追加してもよい。
【0266】
第2フレーム内予測画素生成部205Bは、復号対象ブロック(又は、サブブロック)のBVが1つである場合にのみ、IBC OBMCの適用を制限することで、IBC OBMCを適用する際に必要な隣接参照近傍画素を取得するためのメモリバンド幅の増加を抑制することができる。
【0267】
第2フレーム内予測画素生成部205Bは、上述の所定条件に、復号対象ブロック(又は、サブブロック)の隣接ブロックのBV又は動きベクトルが1つであるという条件を追加してもよい。
【0268】
第2フレーム内予測画素生成部205Bは、復号対象ブロック(又は、サブブロック)の隣接ブロックのBV又は動きベクトルが1つである場合にのみ、IBC OBMCの適用を制限することで、IBC OBMCを適用する際に必要な隣接参照近傍画素を取得するためのメモリバンド幅の増加を抑制することができる。
【0269】
第2フレーム内予測画素生成部205Bは、復号対象ブロック(又は、サブブロック)の隣接ブロックのBV又は動きベクトルが2つ以上ある場合、かかる隣接ブロックのBV又は動きベクトルの大きさ或いはテンプレートコストの比較により、1つのBV又は動きベクトルを選択してもよい。
【0270】
例えば、第2フレーム内予測画素生成部205Bは、隣接ブロックのBV又は動きベクトルの大きさが最小或いはテンプレートコストが最小となる隣接ブロックのBV又は動きベクトルを選択してもよい。
【0271】
上述のような復号対象ブロック単位及び/又はサブブロック単位のIBC OBMCの適用条件を設けることには、以下のような狙い(期待効果)がある。
【0272】
例えば、CGで描画された画像やスクリーン画像は、エッジが原画像においてはっきりとしている場合が多く、ブロック境界が不連続な画像になりやすい。したがって、このような画像では、IBC OBMCを適用しない方が、ブロック境界付近の予測誤差を抑制しやすい。
【0273】
また、第2フレーム内予測画素生成部205Bは、特定のスライスや特定のブロックサイズの場合のみ、IBC OBMCを適用することができる。
【0274】
このように、スライス及び/又はブロックサイズに応じて、IBC OBMCの適用を制限することで、符号化の処理量を削減できる効果が得られる。
【0275】
例えば、IBCは、スライスによる制限を適用し、IntraTMPは、スライスによる制限を適用しない。
【0276】
IntraTMPは、IBCと比較してBVの探索処理量が軽く予測精度が低いため、適用対象を増加させることで符号化効率を向上できる効果が得られる。
【0277】
(IBC OBMCの加重平均)
或いは、第2フレーム内予測画素生成部205Bは、上述の近傍画素として、上述の参照画素の補正で用いた補正を適用してもよい。
【0278】
第2フレーム内予測画素生成部205Bは、隣接ブロックの画素及び隣接参照ブロックの画素の全部或いは一部から、重み係数について導出する。
【0279】
すなわち、
図14に示すように、第2フレーム内予測画素生成部205Bは、隣接ブロックの画素をP’とし、隣接参照ブロックの画素をQ’とし、重み係数Cを導出した上で(
図14におけるY1)、隣接参照ブロックの近傍画素Qに適用して補正値Pを求め(
図14におけるY2)、復号対象ブロックの予測画素と加重平均を計算する(
図14におけるY3)。
【0280】
かかる構成によれば、いずれも隣接参照ブロックの近傍画素を復号対象ブロックの予測画素に反映させることで予測誤差が低減され符号化効率向上の効果が得られる。
【0281】
なお、第2フレーム内予測画素生成部205Bは、復号対象ブロックと参照ブロックとでBVの数が異なる場合は、BVの数が多い方のBVの数を、BVの数が少ない方のBV数に合わせる(復号対象ブロック及び隣接ブロックの各BVの数を最小のBV数に削減する)。
【0282】
同様に、第2フレーム内予測画素生成部205Bは、復号対象ブロックと参照ブロックとでBVの画素精度が異なる場合は、BVの画素精度が細かい方のBVの画素精度を、BVの画素精度が粗い方のBVの画素精度に合わせる(復号対象ブロック及び隣接ブロックの各BVの画素精度を最大の画素精度に丸める)。
【0283】
(IBC GPM)
第2フレーム内予測画素生成部205Bは、復号対象ブロックにIBC GPMが適用される場合、IBC GPMの分割線によって2分割された各分割領域に対する1つ以上のBVの参照先の画素(参照画素)を、IBC GPMの分割線からの距離に応じて加重平均してもよい。
【0284】
変更例として、第2フレーム内予測画素生成部205Bは、かかる加重平均がなされる領域、すなわち、IBC GPMの分割線から各分割領域方向に対する画素数を固定的に設定してもよいし、適応的に設定してもよい。
【0285】
第2フレーム内予測画素生成部205Bは、固定的に設定する方法としては、0画素、1/4画素、1/2画素、1画素、2画素、4画素、8画素のような値を設定してもよい。
【0286】
例えば、スクリーン画像に対しては、IBC GPMの加重平均領域幅の画素数を0画素や1/4画素といった小さい画素数を用いることで、IBC GPMの分割線が適用されやすく、スクリーン画像特有のエッジ境界の画素値を過剰に平滑化することなく維持できるため、予測誤差を低減しやすい。
【0287】
また、第2フレーム内予測画素生成部205Bは、適応的に設定する方法としては、非特許文献2で開示されているGPM適応ブレンディングによる方法が適用できる。
【0288】
例えば、自然画像に対しては、非特許文献2で開示されているGPMの適応ブレンディングの方法のように、制御情報やブロックサイズに基づいて適応的にIBC GPMの加重平均領域幅の画素数を設定することで、IBC GPMの分割線付近の予測誤差を低減しやすい。
【0289】
<変換>
逆変換部203は、IBC(又は、IntraTMP)が適用される復号対象ブロックの変換係数に対して、複数の異なる変換基底から1つの変換基底を適応的に選び、逆変換処理を適用してもよい。
【0290】
ここで、複数の異なる変換基底の一例として、逆変換部203は、非特許文献1で開示されている複数変換基底(MTS:Multiple Transform Selection)を用いてもよい。
【0291】
また、非特許文献1で開示されているMTSには、フレーム内予測に対するMTS及びフレーム間予測向けのMTSが存在する。
【0292】
逆変換部203は、非特許文献1で開示されているフレーム内予測に対するMTSを適用してもよいし、非特許文献1で開示されているフレーム間予測に対するMTSを適用してもよい。
【0293】
逆変換部203は、MTSにおける変換基底の候補のうち、復号部201が復号或いは推定したMTSの変換基底の候補を特定するための制御情報の値に基づいて、変換基底を特定して適用してもよい。
【0294】
変更例として、逆変換部203は、IBC(又は、IntraTMP)が適用される復号対象ブロックの変換係数に対して、異なる又は同じ変換基底を用いた2段階の逆変換処理を適用してもよい。
【0295】
ここで、異なる変換基底を用いた2段階の逆変換処理の一例として、逆変換部203は、非特許文献1で開示されている低周波数非分離二次変換(LFNST:Low-Frequency Non-Separable Transform)を用いてもよい。
【0296】
復号部201は、異なる複数の変換基底の中から1つの変換基底を選択し、変換係数を逆変換するか否かを特定するための制御情報を復号し、逆変換部203は、LFNSTにおける変換基底の候補のうち、復号部201が復号或いは推定したLFNSTの変換基底の候補を特定するための制御情報の値に基づいて、変換基底を特定して適用してもよい。
【0297】
IBC(又は、IntraTMP)が適用される復号対象ブロックに対してMTSやLFNSTを適用する理由は、以下の通りである。
【0298】
IBC(又は、IntraTMP)では、上述した信号処理的な性質上、適用されるブロックは、エッジや縞模様等の複雑な画像特性を持つ場合が多い。そのため、IBC(又は、IntraTMP)が適用される復号対象ブロックの予測誤差を変換した後に導出される変換係数は、高周波成分に分布しやすい、或いは、水平方向成分或いは垂直成分或いは斜め成分に偏りを持つ。
【0299】
このような変換係数の分布に対して、異なる複数の変換基底から有効な逆変換基底を適応的に選択して適用すること、或いは、異なる又は同じ変換基底を用いた2段階の逆変換を適用することは、変換係数間の冗長性(ひいては、予測誤差の空間的な冗長性)を削減する効果が期待でき、結果として、符号化効率の向上が期待できる。
【0300】
<色差>
動画像の復号(又は、符号化)において、情報量を削減するために、動画像を構成するRGB信号を、輝度信号(Y信号)及び色差信号(UV信号或いはCbCr信号)に変換して復号(又は、符号化)する場合がある。
【0301】
また、さらに情報量を削減するために、輝度信号の画素数に対して、色差信号の画素数を一定間隔(例えば、水平方向及び/又は垂直方向に半分に)間引く(ダウンサンプリングする)場合がある。
【0302】
さらに、非特許文献1では、輝度信号の画像及び色差信号の画像において、同一の復号(又は、符号化)ツリーブロック内の復号(又は、符号化)ツリーブロックの分割構造を同一にする技術(シングルツリー構造)と変更する技術(デュアルツリー構造)が開示されている。
【0303】
以上のようなケースのうち、例えば、輝度信号の画像に対して色差信号の画像がダウンサンプリングされ且つ復号対象ブロックが含まれる復号(又は、符号化)ツリーブロックがシングルツリー構造である場合は、BV導出部205Aは、輝度信号の復号対象ブロックに対して導出した1つ又は2つ以上のBVの大きさ(水平成分及び垂直成分)と輝度信号及び色差信号のダウンサンプリング比率とに基づき、色差信号の復号対象ブロックに対するBVを導出してもよい。
【0304】
より具体的には、BV導出部205Aは、輝度信号の復号対象ブロックに対して導出した1つ又は2つ以上のBVの大きさ(水平成分及び垂直成分)を、輝度信号及び色差信号のダウンサンプリング比率に応じて縮小してもよい。
【0305】
さらに、以上のようなケースのうち、例えば、輝度信号の画像に対して色差信号の画像がダウンサンプリングされ且つ復号対象ブロックが含まれる復号(又は、符号化)ツリーブロックがデュアルツリー構造である場合は、BV導出部205Aは、色差信号の復号対象ブロックに対するBVを導出しなくてもよい。
【0306】
<シグナリング>
以下、BVを保持するモード(以下、BVモード)を復号部201が復号する制御情報(シンタックス)について説明する。
【0307】
復号部201に入力される符号情報は、復号対象シーケンス単位の制御情報(シンタックス)をまとめたシーケンスパラメータセット(SPS)を含むことができる。
【0308】
また、かかる符号情報は、復号対象ピクチャ単位の制御情報をまとめたピクチャパラメータセット(PPS)或いはピクチャヘッダ(PH)を含むことができる。
【0309】
或いは、かかる符号情報は、復号対象スライス単位の制御情報をまとめたスライスヘッダ(SH)を含むことができる。
【0310】
以下、
図15及び
図16を用いて、復号部201におけるシーケンス単位又はピクチャ単位又はスライス単位でのIBCに関連する各種フラグの復号制御方法及び各種フラグの定義(意味)について説明する。
【0311】
図15は、シーケンス単位でのIBCに関連する所定フラグの復号制御方法を示す図である。復号部201は、具体的に以下のように動作する。
【0312】
図15に示すように、ステップS100において、復号部201は、sps_ibc_enabled_flag(第2シンタックス)が1であるか否かを判定する。1であれば、本動作は、ステップS101に進み、1でなければ、本動作は、ステップS102に進む。
【0313】
ここで、sps_ibc_enabled_flagは、シーケンス単位でのIBCの適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibc_enabled_flagが1の場合は、IBCを適用可能と特定し、sps_ibc_enabled_flagが0の場合は、IBCを適用不可と特定する。
【0314】
復号部201は、ステップS101において所定フラグを復号し、ステップS102において所定フラグを復号せずに、それぞれ本処理を終了する。
【0315】
ここで、復号部201は、かかる所定フラグとして、
図16に示すようなIBCに関連する各種フラグを復号してもよい。具体的には、以下の通りである。
【0316】
図16に示すsps_biibc_enabled_flagは、シーケンス単位での双予測IBCの適用可不可を制御(特定)するフラグ(第1シンタックス)であり、復号部201は、sps_biibc_enabled_flagが1の場合は、双予測IBCを適用可能と特定し、sps_biibc_enabled_flagが0の場合は、双予測IBCを適用不可と特定する。
【0317】
復号部201は、sps_biibc_enabled_flagの変更例として、sps_multiibc_enabled_flagを復号してもよい。
【0318】
sps_multiibc_enabled_flagは、シーケンス単位での複数予測IBCの適用可不可を制御(特定)するフラグであり、復号部201は、sps_multiibc_enabled_flagが1の場合は、複数予測IBCを適用可能と特定し、sps_multiibc_enabled_flagが0の場合は、複数予測IBCを適用不可と特定する。
【0319】
図16に示すsps_ibcmbvd_enabled_flagは、シーケンス単位でのIBC MBVDの適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcmbvd_enabled_flagが1の場合は、IBC MBVDを適用可能と特定し、sps_ibcmbvd_enabled_flagが0の場合は、IBC MBVDを適用不可と特定する。
【0320】
図16に示すsps_six_minus_max_num_ibc_merge_candは、シーケンス単位で前述したIBCマージ(又は、IBC BVP)の候補リストの最大値を設定する制御情報である。
【0321】
例えば、画像復号装置200で設計したIBCマージ(又は、IBC BVP)の候補リストの設定可能な最大値が6(sps_six_minus_max_num_ibc_merge_candにおける「six」に対応)である場合、かかる制御情報を用いて、かかる最大値を変更できる。
【0322】
具体的には、復号部201は、以下のように、シーケンス単位で、画像復号装置200のIBCマージ(又は、IBC BVP)の候補リストの最大値を制御(設定変更)してもよい。
【0323】
if(sps_ibc_enabled_flag)
MaxNumIbcMergeCand=6-sps_six_minus_max_num_ibc_merge_cand
else
MaxNumIbcMergeCand=0
ここで、MaxNumIbcMergeCandは、シーケンス(又は、ピクチャ又はスライス又は復号対象ブロック)単位で設定したIBCマージ(又は、IBC BVP)に用いる1つ以上のブロックベクトルを導出するためのブロックベクトル候補リストの最大値を表す復号装置内の内部パラメータである。
【0324】
図16に示すsps_ibctm_enabled_flagは、シーケンス単位でのIBCに対するTM(IBC TM)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibctm_enabled_flagが1の場合は、IBC TMを適用可能と特定し、sps_ibctm_enabled_flagが0の場合は、IBC TMを適用不可と特定する。
【0325】
図16に示すsps_ibcdbvr_enabled_flagは、シーケンス単位でのIBCに対するDBVR(IBC DBVR)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcdbvr_enabled_flagが1の場合は、IBC DBVRを適用可能と特定し、sps_ibcdbvr_enabled_flagが0の場合は、IBC DBVRを適用不可と特定する。
【0326】
図16に示すsps_ibcciip_enabled_flagは、シーケンス単位での非特許文献2で開示されているIBCに対するイントラ・インター結合予測(CIIP:Combined Intra Inter Prediction)(IBC CIIP)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcciip_enabled_flagが1の場合は、IBC CIIPを適用可能と特定し、sps_ibcciip_enabled_flagが0の場合は、IBC CIIPを適用不可と特定する。
【0327】
図16に示すsps_ibcgpm_enabled_flagは、シーケンス単位でのIBC GPMの適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcgpm_enabled_flagが1の場合は、IBC GPMを適用可能と特定し、sps_ibcgpm_enabled_flagが0の場合は、IBC GPMを適用不可と特定する。
【0328】
図16に示すsps_ibcobmc_enabled_flagは、シーケンス単位でのIBC OBMCの適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcobmc_enabled_flagが1の場合は、IBCに対するOBMC(IBC OBMC)を適用可能と特定し、sps_ibcobmc_enabled_flagが0の場合は、IBC OBMCを適用不可と特定する。
【0329】
図16に示すsps_ibcflm_enabled_flagは、シーケンス単位でのIBCに対する上述の多項式で定義された重み係数の適用(IBC FLM:IBC Filterd Linear Model)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcflm_enabled_flagが1の場合は、IBC FLMを適用可能と特定し、sps_ibcflm_enabled_flagが0の場合は、IBC FLMを適用不可と特定する。
【0330】
図16に示すsps_ibcmts_enabled_flagは、シーケンス単位でのIBCに対するMTS(IBC MTS)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibcmts_enabled_flagが1の場合は、IBC MTSを適用可能と特定し、sps_ibcmts_enabled_flagが0の場合は、IBC MTSを適用不可と特定する。
【0331】
図16に示すsps_ibclfnst_enabled_flagは、シーケンス単位でのIBCに対するLFNST(IBC LFNST)の適用可不可を制御(特定)するフラグであり、復号部201は、sps_ibclfnst_enabled_flagが1の場合は、IBC LFNSTを適用可能と特定し、sps_ibclfnst_enabled_flagが0の場合は、IBC FLNSTを適用不可と特定する。
【0332】
復号部201は、上述した各種フラグが復号されない場合は、それらの値を0と特定してもよい。
【0333】
ここで、
図15及び
図16では、シーケンス単位での各種フラグの復号制御方法を説明したが、これよりも細かい単位、すなわち、ピクチャ単位やスライス単位で同様に制御してもよい。また、これら特定の階層のみで制御してもよいし、複数の階層にわたって多段階で制御してもよい。
【0334】
例えば、上位層でのみ設定することで符号量の増大を抑制することもできるし、下位層でも設定した上で下位層での設定を優先することで適応的な制御ができる。
【0335】
なお、上述の例では、シーケンス単位、ピクチャ単位或いはスライス単位で補正の方法の設定方法を述べたが、これらを設定せずに、後述のブロック単位で直接方法を選択してもよい。この場合、上述のヘッダ情報増加を回避できる。
【0336】
以下、
図17及び
図18を用いて、復号部201におけるスライス単位(又は、ピクチャ単位又はシーケンス単位)でのBVを2つ用いるIBC(双予測IBC、Bipredictional IBC)の適用可不可を制御するフラグの復号方法及び当該フラグの定義(意味)について説明する。
【0337】
なお、以降では、BVを2つ用いるIBC(双予測IBC、Bipredictional IBC)を一例とした復号方法を説明するが、BVを2つ以上用いるIBC(複数予測IBC、Multipredictional IBC)と読み替えて、同様の復号方法を実現してもよい。
【0338】
図17は、復号部201における双予測IBCの適用可不可を制御(特定)するフラグの復号方法の一例を示す図である。
【0339】
図17において、復号部201は、以下のように、双予測IBCの適用可不可を制御(特定)するフラグを復号或いは復号せずに推定してもよい。
【0340】
図17に示すように、ステップS200において、復号部201は、sps_ibc_enabled_flagが1であり、且つ、sh_slice_typeがIであるか(Iスライスであるか)否かを判定する。
【0341】
Yesであれば、本動作は、ステップS201に進み、Noであれば、本動作は、ステップS202に進む。
【0342】
ここで、sh_slice_typeは、スライス単位で復号対象ブロックを含むスライスの種類を表す制御情報(シンタックス)である。
【0343】
スライスの種類として、Iスライス(第1フレーム内予測又は第2フレーム内予測が適用可能なスライス)、Bスライス(第1フレーム内予測、第2フレーム内予測又はフレーム間予測が適用可能なスライス)、Pスライス(第1フレーム内予測、第2フレーム内予測又はフレーム間予測が適用可能なスライス。ただし、フレーム間予測は、片予測のみが適用可能)がある。
【0344】
ステップS201において、復号部201は、sh_biibc_enabled_flagを復号し、本処理を終了する。
【0345】
ステップS202において、復号部201は、sh_biibc_enabled_flagを復号せずに、本処理を終了する。
【0346】
ここで、sh_biibc_enabled_flag(第3シンタックス)は、スライス単位で、双予測IBCの適用可不可を制御するフラグである。
【0347】
復号部201は、sh_biibc_enabled_flagが1である場合は、双予測IBCを適用可能と特定し、sh_biibc_enabled_flagが0である場合は、双予測IBCを適用不可と特定する。
【0348】
復号部201は、sh_biibc_enabled_flagが復号されていない場合は、sh_slice_typeの値に応じて、sh_biibc_enabled_flagの値を推定してもよい。
【0349】
具体的には、復号部201は、sh_slice_typeがBである場合(Bスライスである場合)は、sh_biibc_enabled_flagを1と推定してもよいし、sh_slice_typeがPである場合(Pスライスである場合)は、sh_biibc_enabled_flagを0と推定してもよい
復号部201は、以下の式に従って、sh_biibc_enabled_flagの推定を行ってもよい。
【0350】
sh_biibc_enabled_flag=(sh_slice_type==B?):1 or 0
ここで、上述のように、スライス単位で、双予測IBCの適用可不可を制御するフラグを復号或いは推定する理由は、以下の通りである。
【0351】
Iスライスは、IBCやIntraTMPのような第2フレーム内予測よりも第1フレーム内予測が有効な画像特性を持つ場合があるため、スライス単位で双予測IBCの適用可不可を制御することで、第2フレーム内予測が特に有効なスライスに対しては双予測IBCを適用可能として符号化効率を向上させられ、他方、第2フレーム内予測が有効ではないスライスに対しては双予測IBCを適用不可とし、後述する双予測IBCに必要な制御情報の符号量を削減できるため、結果として符号化効率の向上が期待できる。
【0352】
Bスライスで、sh_biibc_enabled_flagを復号せずに、sh_biibc_enabled_flagを1と推定する理由は、Bスライスでは、通常のフレーム間予測(動きベクトルを2本用いる双予測も含めて)適用可能であるため、双予測IBCを常時適用可能とすることで、通常のフレーム間予測との設計の共通化が図れ、また、符号化効率の向上が期待できる。
【0353】
Pスライスで、sh_biibc_enabled_flagを復号せずに、sh_biibc_enabled_flagを0と推定する理由は、Pスライスでは、通常のフレーム間予測で双予測が適用不可であるため、同様に、双予測IBCも適用不可とすることで、通常のフレーム間予測との設計の共通化が図れ、また、符号化効率の向上が期待できる。
【0354】
【0355】
具体的に、
図18に示すように、ステップS200Aにおいて、復号部201は、sps_ibc_enabled_flagが1であり、且つ、sh_slice_typeがI又はBであるか(Iスライス又はBスライスであるか)を判定する。
【0356】
Yesであれば、本動作は、ステップS201に進み、Noであれば、本動作は、ステップS202に進む。
【0357】
ここで、ステップS200Aにおいて、sh_slice_typeがI(Iスライス)であることに加えて、sh_slice_typeがB(Bスライス)であることを追加することで、復号対象ブロックが含まれるスライスがBスライスである場合であっても、双予測IBCの適用可不可をスライス単位で制御することができるため、符号化効率の向上効果が期待できる。
【0358】
以降では、
図19~
図24を用いて、復号部201における復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)単位でのIBCに関連する各種フラグの復号制御方法及び各種フラグの定義(意味)について説明する。
【0359】
図19は、復号部201における復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)単位でのIBCの適用有無を制御するフラグであるpred_mode_ibc_flagの復号方法の一例を示す図である。
【0360】
ここで、復号部201は、pred_mode_ibc_flagが1の場合は、復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)単位でIBC を適用すると特定し、pred_mode_ibc_flagが0の場合は、IBCを適用しないと特定してもよい。
【0361】
復号部201は、pred_mode_ibc_flagが復号されていない場合は、pred_mode_ibc_flagを0と推定してもよい。
【0362】
或いは、復号部201は、復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)単位でのIBC の適用有無をpred_mode_ibc_flagが1である場合に、さらに復号対象ブロックがシングルツリーであるか否かに応じて判定してもよい。
【0363】
具体的に、復号部201は、シングルツリーの場合は、IBCを適用すると判定とし、デュアルツリーの場合は、IBCを適用しないと判定してもよい。
【0364】
変更例として、復号部201は、デュアルツリーであっても、輝度ブロックの場合は、IBCを適用すると判定してもよい。
【0365】
また、復号部201は、復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)がIBCであるか否かは、非特許文献1と同様に、復号対象ブロックの予測モードを表す内部パラメータであるCuPredModeを用いて制御してもよい。
【0366】
具体的には、復号部201は、CuPredModeがMODE_IBCである場合、復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)がIBCであると判定し、そうでない場合は、復号対象ブロック(復号ブロック、予測ブロック又は変換ブロック)がIBCではないと判定してもよい。
【0367】
【0368】
図19に示すように、ステップS300において、復号部201は、所定条件が満たされているかどうかを判定する。
【0369】
Yesの場合、本動作は、ステップS301に進み、Noの場合は、本動作は、ステップS302に進む。
【0370】
ステップS301において、復号部201は、pred_mode_ibc_flagを復号し、本処理を終了する。
【0371】
ステップS302において、復号部201は、pred_mode_ibc_flagを復号せず、本処理を終了する。
【0372】
ここで、所定条件は、以下の条件のうち、少なくとも1の条件を含んでいてもよい。
1.復号対象ブロックの横幅又は高さが128画素ではないこと(復号対象ブロックの横幅又は高さが64画素以下であること)
※ここで、条件1の閾値となる画素数は、64画素の代わりに、128画素以下、256画素以下、32画以下素等の2のべき乗の画素数に変更してもよい。
2.復号対象ブロックの予測モードがフレーム間予測又は第1フレーム内予測ではないこと
3.復号対象ブロックがデュアルツリーの色差ブロックではないこと
以降では、
図20~
図23を用いて、復号部201における
図19の復号処理後のIBCのモード選択(上述したIBC BVP、IBCマージ、IBC BVP/マージ)の選択方法について説明する。
【0373】
図20は、復号部201におけるIBCのモード(上述したIBC BVP、IBCマージ、IBC BVP/マージ)の選択方法の一例を示す図である。
【0374】
図20に示すように、復号部201は、IBCのモード(上述したIBC BVP、IBCマージ、IBC BVP/マージ)から一意のモードを選択してもよい。具体的には、以下の通りである。
【0375】
図20に示すように、ステップS400において、復号部201は、general_merge_flagが1であるか否かを判定する。
【0376】
Yesである場合、本動作は、ステップS401に進み、Noの場合、本動作は、ステップS402に進む。
【0377】
ここで、general_merge_flagは、復号対象ブロック単位で、フレーム間予測又はIBCのマージの適用有無を制御(特定)するフラグである。
【0378】
general_merge_flagが1の場合は、フレーム間予測又はIBCのマージの適用が有効であることを示し、general_merge_flagが0の場合は、フレーム間予測又はIBCのマージの適用が無効であることを示す。
【0379】
ステップS401において、復号部201は、CuPredModeがMODE_IBCであるか否かを判定する。
【0380】
Yesである場合、本動作は、ステップS403に進み、Noの場合、本動作は、ステップS404に進む。
【0381】
ステップS403において、復号部201は、後述する(
図21~
図23を用いて説明する)IBCマージに関する復号処理に遷移する。
【0382】
ステップS404において、復号部201は、後述するIBCマージ以外に関する復号処理に遷移する。
【0383】
ステップS402において、復号部201は、CuPredModeがMODE_IBCであるか否かを判定する。
【0384】
Yesである場合、本動作は、ステップS405に進み、Noの場合、本動作は、ステップS406に進む。
【0385】
ステップS405において、復号部201は、後述する(
図23を用いて説明する)IBC BVPに関する復号処理に遷移する。
【0386】
ステップS406において、復号部201は、後述するIBC BVP以外に関する復号処理に遷移する。
【0387】
以降では、
図21を用いて、復号部201における復号対象ブロック単位で双予測のIBCマージが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBCマージの適用有無)を制御(特定)するためのフラグの復号方法について説明する。
【0388】
図21は、復号部201における復号対象ブロック単位で双予測のIBCマージが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBCマージの適用有無)を制御(特定)するためのフラグの復号方法の一例を示す図である。
【0389】
図21に示すように、復号部201は、復号対象ブロック単位で双予測のIBCマージが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBCマージの適用有無)を制御(特定)するためのフラグを復号してもよい。具体的には、以下の通りである。
【0390】
図21に示すように、ステップS500において、復号部201は、所定条件2が満たされているか否かを判定する。
【0391】
Yesである場合、本動作は、ステップS501に進み、Noの場合、本動作は、ステップS502に進む。
【0392】
ステップS501において、復号部201は、biibc_merge_flagを復号し、本処理を終了する。
【0393】
ステップS502において、復号部201は、biibc_merge_flagを復号せずに、本処理を終了する。
【0394】
ここで、biibc_merge_flagは、復号対象ブロック単位で双予測のIBCマージの適用有無を制御(特定)するフラグ(第4シンタックス)である。
【0395】
復号部201は、biibc_merge_flagが1である場合は、復号対象ブロックに双予測のIBCマージを適用し、biibc_merge_flagが0である場合は、復号対象ブロックに双予測のIBCマージを適用しないと特定する。
【0396】
復号部201は、biibc_merge_flagが復号されていない場合は、biibc_merge_flagを0と推定してもよい。
【0397】
また、所定条件2は、以下に示す条件のうち、少なくとも1つの条件を含んでいてもよい。
1.sps_ibc_enabled_flagが1であること
2.sh_biibc_enabled_flagが1であること(及び/又は、sps_biibc_enabled_flagが1であること)
3.general_merge_flagが1であること
4.CuPredModeがIBCであること
5.sh_slice_typeがI又はBであること
変更例として、所定条件2に復号対象ブロックのブロックサイズ(縦及び横の画素数の積)に基づく条件を追加してもよい。
【0398】
例えば、復号対象ブロックのブロックサイズが16画素以上或いは32画素以上である(或いは、復号対象ブロックの横幅又は縦幅が8画素以上である)という条件を追加してもよい。
【0399】
これにより、比較的小サイズの復号対象ブロックに対する双予測のIBCマージの適用を抑制できるため、処理量の削減が期待できる。
【0400】
他方、復号対象ブロックのブロックサイズが32画素以下或いは16画素以下であるというような片予測のIBCマージの適用有無を判定する判定条件で使用される閾値よりも画素数が小さいという条件を追加してもよい。
【0401】
これにより、比較的大きいサイズの復号対象ブロックに対する双予測のIBCマージの適用を抑制できるため、処理量の削減が期待できる。
【0402】
以降では、
図22を用いて、復号部201におけるIBCマージに関する制御情報の復号方法について説明する。
【0403】
IBCマージにおいて、復号部201は、上述のマージ候補リストから1つ以上のマージ候補を選択するために、マージ候補リスト内のマージ候補を特定するための制御情報であるIBCマージインデックス(第5シンタックス)を復号する。
【0404】
図22は、復号部201におけるIBCマージに関する制御情報の復号方法の一例を示す図である。
【0405】
図22に示すように、復号部201は、IBCマージに関する制御情報の復号を制御してもよい。具体的には、以下の通りである。
【0406】
図22に示すように、ステップS600において、復号部201は、biibc_merge_flagが1であるか否かを判定する。
【0407】
Yesである場合、本動作は、ステップS601に進み、Noの場合、本動作は、ステップS602に進む。
【0408】
ステップS601において、復号部201は、MaxNumIbcMergeCandが2より大きいかどうかを判定する。
【0409】
Yesである場合(MaxNumIbcMergeCandが2より大きい場合)、本動作は、ステップS603に進み、Noの場合(MaxNumIbcMergeCandが2以下である場合)、本動作は、ステップS607に進む。
【0410】
ステップS603において、復号部201は、ibc_merge_idx0を復号する。
【0411】
ここで、ibc_merge_idx0は、双予測のIBCマージにおける1つ目のIBCマージインデックス(第6シンタックス)である。
【0412】
ステップS604において、復号部201は、ibc_merge_idx0がMaxNumIbcMergeCand-2ではない(ibc_merge_idx0!=MaxNumIbcMergeCand-2)であるか否かを判定する。
【0413】
Yesである場合、本動作は、ステップS605に進み、Noの場合、本動作は、ステップS606に進む。
【0414】
ステップS605において、復号部201は、ibc_merge_idx1を復号し、本処理を終了する。
【0415】
ステップS606において、復号部201は、ibc_merge_idx1を復号せずに、本処理を終了する。
【0416】
ここで、ibc_merge_idx1は、双予測のIBCマージにおける2つ目のIBCマージインデックス(第7シンタックス)である。
【0417】
ここで、ステップS604でibc_merge_idx0がMaxNumIbcMergeCand-2ではないという条件を満たさない、すなわち、ibc_merge_idx0がMaxNumIbcMergeCand-2である場合、後述するが、ibc_merge_idx1はMaxNumIbcMergeCand-1であることが自明である。
【0418】
そのため、ステップS606において、復号部201は、ibc_merge_idx1を復号しないことで符号量の削減が期待できる。
【0419】
ステップS607において、復号部201は、ibc_merge_idx0及びibc_merge_idx1を復号せずに、本処理を終了する。
【0420】
ここで、MaxNumIbcMergeCandは、上述の通り、IBCマージにおけるマージ候補リストに登録可能なマージ候補数の最大値であり、ステップS601で、2以下であれば、双予測のIBCマージにおいて2つのマージインデックスは復号せずとも、使用するIBCマージ候補は自明である。
【0421】
そのため、ステップS607において、復号部201が、ibc_merge_idx0及びibc_merge_idx1を復号しないことで、符号量の削減が期待できる。
【0422】
ステップS602において、復号部201は、MaxNumIbcMergeCandが1より大きいか否かを判定する。
【0423】
Yesである場合、本動作は、ステップS608に進み、Noの場合、本動作は、ステップS609に進む。
【0424】
ステップS608において、復号部201は、ibc_merge_idxを復号し、本処理を終了する。
【0425】
ステップS609において、復号部201は、ibc_merge_idxを復号せずに、本処理を終了する。
【0426】
ここで、ステップS602においてMaxNumIbcMergeCandが1より大きくない、すなわち、MaxNumIbcMergeCandが1であれば、片予測のIBCマージにおいて選択されるマージージインデックスは復号せずとも、使用するIBCマージ候補は自明である。
【0427】
そのため、ステップS609において、復号部201が、ibc_merge_idxを復号しないことで、符号量の削減が期待できる。
【0428】
なお、上述では、双予測のIBCマージのマージインデックス(ibc_merge_idx0及びibc_merge_idx1)及び片予測のIBCマージのマージインデックス(ibc_merge_idx)を別々に説明したが、画像復号装置200においてibc_merge_idx0及びibc_merge_idxを共通化してもよい。
【0429】
すなわち、復号(符号化)するためのコンテキスト値の設計、Truncated binalization等の2値から多値への復号(多値から2値への符号化)方法を共通化してもよい。
【0430】
図23は、
図22を用いて説明したIBCマージに関する制御情報の復号方法の変更例(ブロックベクトルの数だけ、
図7に示すような異なるリストを構築)を示す図である。
【0431】
図23に示すように、復号部201は、IBCマージに関する制御情報を復号してもよい。具体的には、以下の通りである。
【0432】
図23に示すように、ステップS600において、復号部201は、biibc_merge_flagが1であるか否かを判定する。
【0433】
Yesである場合、本動作は、ステップS601Aに進み、Noの場合、本動作は、ステップS602に進む。
【0434】
ステップS601Aにおいて、復号部201は、MaxNumIbcMergeCandが1より大きいかどうかを判定する。
【0435】
Yesである場合、本動作は、ステップS608Aに進み、Noの場合(MaxNumIbcMergeCandが1以下の場合)、本動作は、ステップS609Aに進む。
【0436】
ステップS608Aにおいて、復号部201は、ibc_merge_idxを復号し、本処理を終了する。
【0437】
ステップS609Aにおいて、復号部201は、ibc_merge_idxを復号せずに、本処理を終了する。
【0438】
ステップS602、ステップS608及び ステップS609は、
図22と同じである。
【0439】
以降では、
図24を用いて、復号部201における復号対象ブロック単位でIBC BVP/マージが有効であるか否か(すなわち、復号対象ブロック単位でのIBC BVP/マージの適用有無)を制御(特定)するためのフラグの復号方法について説明する。
【0440】
図24は、復号部201における復号対象ブロック単位でIBC BVP/マージが有効であるか否か(すなわち、復号対象ブロック単位でのIBC BVP/マージの適用有無)を制御(特定)するためのフラグの復号方法の一例を示す図である。
【0441】
図24に示すように、復号部201は、復号対象ブロック単位でIBC BVP/マージが有効であるか否か(すなわち、復号対象ブロック単位でのIBC BVP/マージの適用有無)を制御(特定)するためのフラグを復号してもよい。具体的には、以下の通りである。
【0442】
図24に示すように、ステップS700において、復号部201は、所定条件3が満たされているか否かを判定する。
【0443】
Yesである場合、本動作は、ステップS701に進み、Noの場合、本動作は、ステップS702に進む。
【0444】
ステップS701において、復号部201は、ibc_bvpmerge_flagを復号し、本処理を終了する。
【0445】
ステップS702において、復号部201は、ibc_bvpmerge_flagを復号せずに、本処理を終了する。
【0446】
ここで、ibc_bvpmerge_flagは、復号対象ブロック単位でIBC BVP/マージが有効であるか否か(すなわち、復号対象ブロック単位でのIBC BVP/マージの適用有無)を制御(特定)するフラグ(第8シンタックス)である。
【0447】
復号部201は、ibc_bvpmerge_flagが1である場合は、復号対象ブロックIBC BVP/マージを適用し、ibc_bvpmerge_flagが0である場合は、復号対象ブロックにIBC BVP/マージを適用しないと特定する。
【0448】
復号部201は、ibc_bvpmerge_flagが復号されていない場合は、ibc_bvpmerge_flagを0と推定してもよい。
【0449】
また、所定条件3は、以下に示す条件のうち、少なくとも1つの条件を含んでいてもよい。
6.sps_ibc_enabled_flagが1であること
7.general_merge_flagが1であること
8.CuPredModeがIBCであること
9.sh_slice_typeがI又はBであること
変更例として、所定条件3に復号対象ブロックのブロックサイズ(縦及び横の画素数の積)に基づく条件を追加してもよい。
【0450】
例えば、復号対象ブロックのブロックサイズが16画素以上或いは32画素以上である(或いは、復号対象ブロックの横幅又は縦幅が8画素以上である)という条件を追加してもよい。
【0451】
これにより、比較的小サイズの復号対象ブロックに対するIBC BVP/マージの適用を抑制できるため、処理量の削減が期待できる。
【0452】
他方、復号対象ブロックのブロックサイズが32画素以下或いは16画素以下であるというような片予測のIBCマージの適用有無を判定する判定条件で使用される閾値よりも画素数が小さいという条件を追加してもよい。
【0453】
これにより、比較的大サイズの復号対象ブロックに対するIBC BVP/マージの適用を抑制できるため、処理量の削減が期待できる。以降では、
図25を用いて、復号部201におけるIBC BVP/マージに関する制御情報の復号方法について説明する。
【0454】
図25は、復号部201におけるIBC BVP/マージに関する制御情報の復号方法の一例を示す図である。
【0455】
図25に示すように、復号部201は、IBC BVP/マージに関する制御情報を復号してもよい。具体的には、以下の通りである。
【0456】
図25に示すように、ステップS800において、復号部201は、ibc_bvpmerge_flagが1であるか否かを判定する。
【0457】
Yesである場合、本動作は、ステップS801に進み、Noの場合、本動作は、本処理を終了する。
【0458】
ステップS801において、復号部201は、BVP及びBVDに関する制御情報を復号し、ステップS802に進む。
【0459】
ステップS802において、復号部201は、MaxNumIbcMergeCandが1より大きいかどうかを判定する。
【0460】
Yesである場合、本動作は、ステップS803に進み、Noの場合(MaxNumIbcMergeCandが1以下である場合)、本動作は、ステップS804に進む。
【0461】
ステップS803において、復号部201は、ibc_merge_idxを復号し、本処理を終了する。
【0462】
ステップS804において、復号部201は、ibc_merge_idxを復号せずに、本処理を終了する。
【0463】
ここで、MaxNumIbcMergeCandは、上述の通り、IBCマージにおけるマージ候補リストに登録可能なマージ候補数の最大値であり、ステップS801で1以下であれば、IBC BVP/マージにおいてマージインデックスは復号せずとも、使用するIBCマージ候補は自明である。
【0464】
そのため、ステップS804において、復号部201が、ibc_merge_idxを復号しないことで、符号量の削減が期待できる。
【0465】
以降では、
図26を用いて、復号部201におけるIBCのBVを補正する上述のMBVDに関する制御情報の復号方法について説明する。
【0466】
図26は、復号部201におけるIBCのBVを補正する上述のMBVDに関する制御情報の復号方法の一例を示す図である。
【0467】
図26に示すように、復号部201は、IBCのBVを補正する上述のMBVDに関する制御情報を復号してもよい。具体的には、以下の通りである。
【0468】
図26に示すように、ステップS901において、復号部201は、biibc_merge_flagが1であるか否かを判定する。
【0469】
Yesである場合、本動作は、ステップS902に進み、Noの場合、本動作は、ステップS903に進む。
【0470】
ステップS902において、復号部201は、ibc_mbvd_flagが1であるか否かを判定する。
【0471】
Yesである場合、本動作は、ステップS904に進み、Noの場合、本動作は、ステップS905に進む。
【0472】
ここで、ibc_mbvd_flagは、復号対象ブロック単位で、MBVDの適用有無を制御するためのフラグである。
【0473】
復号部201は、ibc_mbvd_flagが1である場合、MBVDを適用すると特定し、ibc_mbvd_flagが0である場合、MBVDを適用しないと特定する。
【0474】
復号部201は、ibc_mbvd_flagが復号されていない場合は、ibc_mbvd_flagを0と推定してもよい。
【0475】
ステップS904において、復号部201は、bimbvd_flagが1であるか否かを判定する。
【0476】
Yesである場合、本動作は、ステップS906に進み、Noの場合、本動作は、ステップS907に進む。
【0477】
ここで、bimbvd_flagは、復号対象ブロック単位で、双予測のIBCマージにおける2組のマージ候補(BV)に対するMBVDの適用有無を制御するためのフラグである。
【0478】
復号部201は、bimbvd_flagが1である場合、2組のマージ候補(BV)に対してMBVDを適用すると特定し、bimbvd_flagが0である場合、2組のマージ候補(BV)に対してMBVDを適用しない(すなわち、双予測のIBCマージにおける1組のマージ候補(BV)のみにMBVDを適用する)と特定する。
【0479】
復号部201は、bimbvd_flagが復号されていない場合は、bimbvd_flagを0と推定してもよい。
【0480】
ステップS906において、復号部201は、mbvd_merge_cand_idx0及びmbvd_merge_cand_idx1を復号する。
【0481】
ここで、mbvd_merge_cand_idx0は、復号対象ブロック単位で、双予測のIBCマージにおける2組のマージ候補(BV)のうち、MBVDを適用する1組目のマージ候補(BV)をマージ候補リストから選択するためのインデックスである。
【0482】
復号部201は、mbvd_merge_cand_idx0が復号されていない場合、mbvd_merge_cand_idx0を0と推定してもよい。
【0483】
また、mbvd_merge_cand_idx1は、復号対象ブロック単位で、双予測のIBCマージにおける2組のマージ候補(BV)のうち、MBVDを適用する2組目のマージ候補(BV)をマージ候補リストから選択するためのインデックスである。
【0484】
復号部201は、mbvd_merge_cand_idx1が復号されていない場合、mbvd_merge_cand_idx1を0と推定してもよい。
【0485】
なお、復号部201は、mbvd_merge_cand_idx0とmbvd_merge_cand_idx1を復号する際に、予め、これらに大小関係を与えなくてもよいし、mbvd_merge_cand_idx0<mbvd_merge_cand_idx1となる大小関係を与えてもよい。
【0486】
大小関係を与えない場合は、復号部201は、mbvd_merge_cand_idx0を復号した後、mbvd_merge_cand_idx0に対応するマージ候補をマージ候補リスト内から除外した後、mbvd_merge_cand_idx1を復号することで、mbvd_merge_cand_idx0とmbvd_merge_cand_idx1が同一であっても異なるマージ候補を導出できるため、符号化効率の向上が期待できる。復号対象ブロック単位で、双予測のIBCマージにおける2組のマージ候補(BV)のうち、MBVDを適用する1組目のマージ候補(BV)をマージ候補リストから選択するためのインデックスである。
【0487】
復号部201は、mbvd_merge_cand_idx0が復号されていない場合、mbvd_merge_cand_idx0を0と推定してもよい。
【0488】
ステップS908において、復号部201は、mbvd_idx0及びmbvd_idx1を復号し、本処理を終了する。
【0489】
ここで、mbvd_idx0とmbvd_idx1は、双予測IBCマージにおける2組のマージ候補のうち、それぞれ1組目と2組目のマージ候補(BV)に対する補正ベクトルを導出するためのインデックスである。
【0490】
具体的に、mbvd_idx0及びmbvd_idx1の値は、非特許文献2に開示されているように、補正ベクトルが取りうる離散的な参照位置に対応する。
【0491】
離散的な参照位置は、マージ候補のBVを原点とした補正ベクトルの方向及び距離から定義される。
【0492】
方向は、非特許文献1のように、上下左右(垂直と水平の合計4方向)で構成してもよいし、非特許文献2のように、上下左右に45度、135度、225度、315度の斜め4方向を加えた8方向で構成してもよい。
【0493】
また、距離については、シーケンス、ピクチャ、スライス或いは復号対象ブロック単位で、IBCの画素精度が整数精度に限定されている(すなわち、整数精度画素のみが選択可能な)場合は、非特許文献2のように、1画素、4画素、8画素、12画素、16画素、24画素、32画素、40画素、48画素、56画素、72画素、80画素、88画素、96画素、104画素、112画素、120画素、128画素のように構成してもよい。
【0494】
他の例として、シーケンス或いはピクチャ或いはスライス或いは復号対象ブロック単位で、IBCの画素精度が整数精度に限定されていない場合(すなわち小数精度画素または整数画素精度の双方が選択可能な)場合は、上述の整数画素の選択肢に加え、1/4画素、1/8画素を追加してもよい。
【0495】
ステップS909において、復号部201は、
図22のステップS601に進み、本動作が終了すれば、本処理を終了する。
【0496】
ステップS907において、復号部201は、mbvd_merge_cand_idx0を復号する。
【0497】
ステップS910において、復号部201は、mbvd _idx0を復号する。
【0498】
ステップS911において、復号部201は、
図22のステップS601に進み、本動作が終了すれば、本処理を終了する。
【0499】
ステップS905において、復号部201は、
図22のステップS601に進み、本動作が終了すれば、本処理を終了する。
【0500】
ステップS903において、復号部201は、
図22のステップS602に進み、本動作が終了すれば、本処理を終了する。
【0501】
以下、
図27を参照して、ブロック単位で第2フレーム内予測を適用する方法の変更例について説明する。
【0502】
図27に示すように、ステップS1001において、復号部201は、復号対象ブロックがBVを保持するモードか否かを判断する。
【0503】
Yesである場合、本動作は、ステップS1002に進み、Noの場合、本動作は、終了する。
【0504】
ステップS1002において、復号部201は、第2フレーム内予測が用いるBVの本数を表す制御信号であるcu_ibc_flagを復号する。
【0505】
ここでは、BVの本数の最大数を2に設定することで、復号部201は、cu_ibc_flagが0の場合は、BVの本数を1本として復号し、cu_ibc_flagが1の場合は、BVの本数を2本として復号する。
【0506】
ステップS1003において、復号部201は、BVが1本であるか2本であるかを判断する。
【0507】
換言すると、ステップS1003において、復号部201は、cu_ibc_flagが0であるか否かについて判定する。
【0508】
BVが1本である場合(cu_ibc_flag==0)又はBVP候補リストがL0リスト及びとL1リストを利用する場合は、ステップS1004において、復号部201は、BVP候補リストの中からBVを指定する制御信号であるcu_ibc_idx0を復号する。
【0509】
BVが1本ではない場合(cu_ibc_flag!=0)で且つBVP候補リストがL0リストだけで構成する場合は、ステップS1004及びステップS1005において、復号部201は、BVP候補リストの中からBVを指定する制御信号であるcu_ibc_idx0及びcu_ibc_idx1を復号する。
【0510】
cu_ibc_idx1が相対座標で表現されている場合は、復号部201は、cu_ibc_idx0+cu_ibc_idx1を絶対座標としてのcu_ibc_idx1として復号する。
【0511】
図28は、BVに補正BVを適用する場合のフローチャートを示す。
【0512】
図28に示すように、ステップS1101において、復号部201は、復号対象ブロックがBVを保持するモードか否かを判断する。
【0513】
Yesである場合、本動作は、ステップS1102に進み、Noの場合、本動作は、終了する。
【0514】
ステップS1102において、復号部201は、第2フレーム内予測が用いるBVの本数を表す制御信号であるcu_ibc_flagを復号する。
【0515】
ここでは、BVの本数の最大数を2に設定することで、復号部201は、cu_ibc_flagが0の場合は、BVの本数を1本として復号し、cu_ibc_flagが1の場合は、BVの本数を2本として復号する。
【0516】
ステップS1103において、復号部201は、BVが1本であるか2本であるかを判断する。
【0517】
換言すると、ステップS1103において、復号部201は、cu_ibc_flagが0であるか否かについて判定する。
【0518】
BVが1本である場合(cu_ibc_flag==0)又はBVP候補リストがL0リスト及びとL1リストを利用する場合は、ステップS1104において、復号部201は、BVP候補リストの中からBVを指定する制御信号であるcu_ibc_idx0を復号する。
【0519】
ステップS1105において、復号部201は、補正BVを表す制御情報であるcu_ibc_dmv0を復号して、BVにcu_ibc_dmv0を加算する。
【0520】
BVが1本ではない場合(cu_ibc_flag!=0)で且つBVP候補リストがL0リストだけで構成する場合は、ステップS1106及びステップS1107において、復号部201は、BVP候補リストの中からBVを指定する制御信号であるcu_ibc_idx0及びcu_ibc_idx1を復号する。
【0521】
cu_ibc_idx1が相対座標で表現されている場合は、復号部201は、cu_ibc_idx0+cu_ibc_idx1を絶対座標としてのcu_ibc_idx1として復号する。
【0522】
ステップS1108及びステップS1109において、復号部201は、補正BVを表す制御情報であるcu_ibc_dmv0及びcu_ibc_dmv1を復号し、それぞれ対応するBVにcu_ibc_dmv0及びcu_ibc_dmv1を加算する。
【0523】
以降では、
図29を用いて、復号部201における復号対象ブロック単位で双予測のIBC BVPが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBC BVPの適用有無)を制御(特定)するためのフラグの復号方法について説明する。
【0524】
図29は、復号部201における復号対象ブロック単位で双予測のIBC BVPが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBC BVPの適用有無)を制御(特定)するためのフラグの復号方法の一例を示すフローチャートである。
【0525】
図29に示すように、復号部201は、復号対象ブロック単位で双予測のIBC BVPが有効であるか否か(すなわち、復号対象ブロック単位での双予測のIBC BVPの適用有無)を制御(特定)するためのフラグを復号してもよい。具体的には、以下の通りである。
【0526】
図29に示すように、ステップS1200において、復号部201は、所定条件4が満たされているか否かを判定する。
【0527】
Yesである場合、本動作は、ステップS1201に進み、Noの場合、本動作は、ステップS1202に進む。
【0528】
ステップS1201において、復号部201は、biibc_bvp_flagを復号し、本処理を終了する。
【0529】
ステップS1202において、復号部201は、biibc_bvp_flagを復号せずに、本処理を終了する。
【0530】
ここで、biibc_bvp_flagは、復号対象ブロック単位で双予測のIBC BVPの適用有無を制御(特定)するフラグ(第9シンタックス)である。
【0531】
復号部201は、biibc_bvp_flagが1である場合は、復号対象ブロックに双予測のIBC BVPを適用し、biibc_bvp_flagが0である場合は、復号対象ブロックに双予測のIBC BVPを適用しないと特定する。
【0532】
復号部201は、biibc_bvp_flagが復号されていない場合は、biibc_bvp_flagを0と推定してもよい。
【0533】
また、所定条件4は、以下に示す条件のうち、少なくとも1つの条件を含んでいてもよい。
1.sps_ibc_enabled_flagが1であること
2.sh_biibc_enabled_flagが1であること(及び/又は、sps_biibc_enabled_flagが1であること)
3.general_merge_flagが0であること
4.CuPredModeがIBCであること
5.sh_slice_typeがI又はBであること
変更例として、所定条件4に復号対象ブロックのブロックサイズ(縦及び横の画素数の積)に基づく条件を追加してもよい。
【0534】
例えば、復号対象ブロックのブロックサイズが16画素以上あるいは32画素以上である(あるいは復号対象ブロックの横幅或いは縦幅が8画素以上である)という条件を追加してもよい。
【0535】
これにより、比較的小サイズの復号対象ブロックに対する双予測のIBCマージの適用を抑制できるため、処理量の削減が期待できる。
【0536】
他方、復号対象ブロックのブロックサイズが32画素以下或いは16画素以下であるというような片予測のIBC BVPの適用有無を判定する判定条件で使用される閾値よりも画素数が小さいという条件を追加してもよい。
【0537】
これにより、比較的大サイズの復号対象ブロックに対する双予測のIBC BVPの適用を抑制できるため、処理量の削減が期待できる。
【0538】
以降では、
図30を用いて、復号部201におけるIBC BVPに関する制御情報の復号方法について説明する。
【0539】
図30は、復号部201におけるIBC BVPに関する制御情報の復号方法の一例を示すフローチャートである。
【0540】
図30に示すように、復号部201は、IBC BVPに関する制御情報の復号を制御してもよい。具体的には、以下の通りである。
【0541】
図30に示すように、ステップS1300において、復号部201は、biibc_bvp_flagが1であるか否かを判定する。
【0542】
Yesである場合、本動作は、ステップS1301に進み、Noの場合、本動作は、ステップS1302に進む。
【0543】
ステップS1301において、復号部201は、双予測IBC BVPにおける2組のBVPとBVDのうち、1組目のBVPとBVDに関する制御情報を復号する。
【0544】
ステップS1303において、復号部201は、双予測IBC BVPにおける2組のBVPとBVDのうち、2組目のBVPとBVDに関する制御情報を復号して、本処理を終了する。
【0545】
ステップS1302において、復号部201は、IBC BVPにおける1組のBVPとBVDに関する制御情報を復号して、本処理を終了する。
【0546】
(双予測IBCのバイナリゼーション)
図31を用いて、復号部201における上述したIBCマージインデックスの2値化方法について説明する。
【0547】
図31は、復号部201における上述したIBCマージインデックスの2値化方法の一例を示す図である。
【0548】
図31に示すように、復号部201は、IBCマージインデックスを2値化してもよい。具体的には、以下の通りである。
【0549】
第1に、復号部201は、ibc_merge_idxについては、cMaxの値をMaxNumIbcMerge-1としてもよい。
【0550】
ここで、cMaxは、対象の制御情報が取りうる2値化前の多値の最大値である。
【0551】
第2に、復号部201は、ibc_merge_idx0については、cMaxの値をMaxNumIbcMerge-1としてもよい。
【0552】
第3に、復号部201は、ibc_merge_idx1については、biibc_merge_flagが1であるか否かに応じて、cMaxの値を変更してもよい。
【0553】
具体的に、復号部201は、biibc_merge_flagが1ではない場合は、cMaxの値をMaxNumIbcMerge-2としてもよい。
【0554】
一方、復号部201は、biibc_merge_flagが1である場合は、cMaxの値をMaxNumIbcMerge-ibc_merge_idx0-2としてもよい。
【0555】
すなわち、2つのBVを導出するために異なる2つのインデックス(ibc_merge_idx0及びibc_merge_idx1)を用いる場合、ibc_merge_idx1が取りうる値の範囲は、0(最小値)~BVP候補リストの最大値(上述の例では、MaxNumIbcMerge-2)からidx0の値を減算した値になる。
【0556】
以上のように、2値化方法を設計することで、復号部201は、上述した2つ目以降のインデックスについて、直前のインデックスを起点とした相対的なインデックスとして復号できる。
【0557】
上述の画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【産業上の利用可能性】
【0558】
なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【符号の説明】
【0559】
200…画像復号装置
201…復号部
202…逆量子化部
203…逆変換部
204…第1フレーム内予測部
205…第2フレーム内予測部
205A…ブロックベクトル導出部(BV導出部)
205B…第2フレーム内予測画素生成部
206…フレーム間予測部
207…加算器
208…蓄積部
210…符号入力部
220…画像出力部