(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023156066
(43)【公開日】2023-10-24
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20231017BHJP
H04N 19/119 20140101ALI20231017BHJP
H04N 19/136 20140101ALI20231017BHJP
H04N 19/139 20140101ALI20231017BHJP
H04N 19/176 20140101ALI20231017BHJP
【FI】
H04N19/70
H04N19/119
H04N19/136
H04N19/139
H04N19/176
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022065697
(22)【出願日】2022-04-12
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】加藤 晴久
(72)【発明者】
【氏名】木谷 佳隆
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RB09
5C159RC11
5C159RC37
5C159SS26
5C159TA12
5C159TB08
5C159TC12
5C159TC24
5C159TC26
5C159TC28
5C159UA02
5C159UA05
5C159UA22
(57)【要約】
【課題】GPMにおいて符号化効率を向上させること。
【解決手段】本発明に係る画像復号装置200は、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する復号部201を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する復号部を備えることを特徴とする画像復号装置。
【請求項2】
前記復号部は、
前記境界幅の変更の可否を制御するシンタックスを復号し、
前記シンタックスの値が1である場合に、前記境界幅のパターンを表すシンタックスを復号し、
前記シンタックスの値が1でない場合に、前記境界幅のパターンを表すシンタックスを復号しないことを特徴とする請求項1に記載の画像復号装置。
【請求項3】
前記復号部は、復号単位ごとのヘッダで、前記境界幅のパターン或いは数を変更できることを特徴とする請求項1に記載の画像復号装置。
【請求項4】
前記復号部は、前記境界幅のパターンが事前に設定されている場合、前記境界幅のパターンの復号自体を省略することを特徴とする請求項1に記載の画像復号装置。
【請求項5】
前記復号部は、前記境界幅のパターン数を制御するシンタックスの値が1より大きい場合は、前記境界幅のパターンを特定するシンタックスを復号し、前記境界幅を特定することを特徴とする請求項1に記載の画像復号装置。
【請求項6】
前記復号部は、前記境界幅のパターン数を制御するシンタックスの値が1の場合は、前記境界幅のパターンを特定するシンタックスを復号しないことを特徴とする請求項1に記載の画像復号装置
【請求項7】
前記復号部は、前記境界幅のパターンを制御するシンタックスの値を、他のシンタックスに応じて変更することを特徴とする請求項1に記載の画像復号装置。
【請求項8】
前記復号部は、前記境界幅のパターンを制御するシンタックスの値を変更するシンタックスとして、ブロックサイズ、動きベクトル、符号化モード、分割形状及び量子化パラメータの少なくとも1つを利用することを特徴とする請求項7に記載の画像復号装置。
【請求項9】
復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する工程を有することを特徴とする画像復号方法。
【請求項10】
コンピュータを、画像復号装置として機能させるプログラムであって、
前記画像復号装置は、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する復号部を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1及び非特許文献2では、幾何学分割モード(GPM:Geometric Partitioning Mode)が開示されている。
【0003】
GPMは、矩形ブロックを斜めに2分割しそれぞれを動き補償する。具体的には、分割された2領域は、それぞれマージベクトルにより動き補償され重み付き平均により合成される。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】ITU-T H.266/VVC
【非特許文献2】CE4:Summary report on Inter prediction with geometric partitioning、JVET-Q0024
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1及び非特許文献2で開示されている技術では、重み付き平均のパターンが限定されているため、符号化性能の向上には改善の余地があるという問題点があった。 そこで、本発明は、上述の課題に鑑みてなされたものであり、GPMにおいて符号化効率を向上させることができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の特徴は、画像復号装置であって、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する復号部を備えることを要旨とする。
【0007】
本発明の第2の特徴は、画像復号方法であって、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する工程を有することを要旨とする。
【0008】
本発明の第3の特徴は、コンピュータを、画像復号装置として機能させるプログラムであって、前記画像復号装置は、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御する復号部を備えることを要旨とする。
【発明の効果】
【0009】
本発明によれば、GPMにおいて符号化効率を向上させることができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図2】
図2は、矩形の単位ブロックが分割境界によって、小領域Aと小領域Bに2分割されるケースの一例を示す図である。
【
図3】
図3は、
図2に示す小領域Bの分割境界に割り当てる3パターンの重み係数の一例を示す図である。
【
図4】
図4は、パターン(2)の重み係数wを8×8ブロックに適用した例を示す図である。
【
図5】
図5は、パターン(1)の重み係数wを8×8ブロックに適用した例を示す図である。
【
図6】
図6は、パターン(3)の重み係数wを8×8ブロックに適用した例を示す図である。
【
図7】
図7は、復号部201による制御情報の復号方法の一例を示すフローチャートである。
【
図8】
図8は、第1実施形態における合成部207による重み係数の設定処理の一例について説明するフローチャートである。
【
図9】
図9は、第2実施形態における合成部207による重み係数の設定処理の一例について説明するフローチャートである。
【
図10】
図10は、第2実施形態について説明するための図である。
【
図11】
図11は、第2実施形態について説明するための図である。
【
図12】
図12は、第3実施形態における合成部207による重み係数の設定処理の一例について説明するフローチャートである。
【
図13】
図13は、重み係数が分割境界からの距離に基づいて規定される一例を説明するための図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0012】
<第1実施形態>
以下、
図1~
図8を参照して、本実施形態に係る画像復号装置200について説明する。
図1は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0013】
図1に示すように、画像復号装置200は、符号入力部210と、復号部201と、逆量子化部202と、逆変換部203と、イントラ予測部204と、蓄積部205と、動き補償部206と、合成部207と、加算部208と、画像出力部220とを有する。
【0014】
符号入力部210は、画像符号化装置によって符号化された符号情報を取得するように構成されている。
【0015】
復号部201は、復号対象シーケンスの分割モードの境界幅を制御するシンタックスの復号を制御すように構成されている。
【0016】
ここで、復号対象シーケンスの分割モードの境界幅を制御するシンタックスは、後述するsps_div_blending_flagや、sps_div_num_blending_listや、sps_div_blending_listや、pps_div_blending_flagや、pps_div_num_blending_listや、pps_div_blending_listや、sh_div_blending_flagや、sh_div_num_blending_listや、sh_div_blending_list等を示す。
【0017】
具体的には、復号部201は、符号入力部210から入力された符号情報から、制御情報並びに量子化値を復号するように構成されている。例えば、復号部201は、かかる符号情報に対して可変長復号を行うことで制御情報及び量子化値を出力するように構成されている。
【0018】
ここで、量子化値は、逆量子化部202に送られ、制御情報は、動き補償部206、イントラ予測部204及び合成部207に送られる。なお、かかる制御情報は、動き補償部206、イントラ予測部204及び合成部207等の制御に必要な情報を含み、シーケンスパラメータセットやピクチャパラメータセットやピクチャヘッダやスライスヘッダ等のヘッダ情報を含んでもよい。
【0019】
逆量子化部202は、復号部201から送られた量子化値を逆量子化して復号された変換係数とするように構成されている。かかる変換係数は、逆変換部203に送られる。
【0020】
逆変換部203は、逆量子化部202から送られた変換係数を逆変換して復号された予測残差とするように構成されている。かかる予測残差は、加算部208に送られる。
【0021】
イントラ予測部204は、復号済み画素と復号部201から送られた制御情報とに基づいて第1予測画素を生成するように構成されている。ここで、復号済み画素は、加算部208を介して得られて蓄積部205に蓄積されるものである。また、第1予測画素は、合成部207で設定される小領域における入力画素の近似値としての予測画素である。なお、第1予測画素は、合成部207に送られる。
【0022】
蓄積部205は、加算部208から送られた復号済み画素を累積的に蓄積するように構成されている。かかる復号済み画素は、蓄積部205を介して動き補償部206からの参照を受ける。
【0023】
動き補償部206は、蓄積部205に蓄積された復号済み画素と復号部201から送られた制御情報とに基づいて第2予測画素を生成するように構成されている。ここで、第2予測画素は、合成部207で設定される小領域における入力画素の近似値としての予測画素である。なお、第2予測画素は、合成部207に送られる。
【0024】
加算部208は、逆変換部203から送られる予測残差と、合成部207から送られる第3予測画素とを加算して復号済み画素を得るように構成されている。かかる復号済み画素は、画像出力部220、蓄積部205及びイントラ予測部204へ送られる。
【0025】
合成部207は、イントラ予測部204から送られる第1予測画素及び動き補償部206から送られる第2予測画素の少なくとも一方に対して、分割境界の幅が異なる複数の重み係数を用意し重み付け平均により分割境界の幅を制御した第3予測画素を生成するように構成されている。
【0026】
合成部207の役割は、後段の加算部208において復号対象ブロックを高精度に補償するために、当該復号対象ブロックに最適な複数の予測画素に対する重み係数を選択して、入力された複数の予測画素を重み係数に応じて合成することにある。
【0027】
復号対象ブロックが複数の小領域に分割されている分割モードとしては任意のものを利用できるが、以下では、分割モードの一例として非特許文献1と非特許文献2で開示されている、幾何学ブロック分割モード(GPM:Geometric Partitioning Mode)を用いた場合について説明する。
【0028】
重み係数については、単位ブロックの画素ごとに予め設定した任意の値を設定した複数のパターンを用意しておき、いずれかのパターンを適用する。すなわち、合成部207は、複数の重み係数のいずれかを選択し適用するように構成されていてもよい。
【0029】
複数の予測画素に対する重み係数の合計値は、画素ごとに1になるように設計しておき、当該重み係数を用いて複数の予測画素を重み付け平均により合成した結果を合成部207による予測画素とする。
【0030】
重み係数を1(すなわち、最大値)とした画素は、当該入力予測画素を採用し、重み係数を0(すなわち、最小値)とした画素は、当該入力予測画素を用いないことになるため、概念としては単位ブロックを複数の小領域に分割することに相当し、複数の入力予測画素のどの画素をどの割合でどこに適用するかを決定することになる。
【0031】
ここで、重み係数の分布は、2等分等の矩形形状分布だとより小さな単位ブロックで表現できるため、非矩形形状に分布させることが望ましい。
【0032】
図2の例では、単位ブロックを斜めの形状で分布させたケースの例を表す。
図2の例では、矩形の単位ブロックを分割境界によって小領域A及び小領域Bに2分割している。
【0033】
それぞれの小領域A/Bでは、イントラ予測又は動き補償等任意の方法で予測画素が生成される。
【0034】
このとき、分割の形状が決まっても分割境界付近の重み係数が決め打ちだと分割境界の多様性を表現できないため、符号化効率を改善できないという問題がある。
【0035】
例えば、小領域が動きの激しい領域である場合は、撮像時にボケが発生しているため、分割境界は、広い領域に渡って複数の小領域をぼかして重み付け平均した方が望ましい。
【0036】
逆に、小領域がテロップのように人工的に編集した領域である場合、ボケは発生しないため、分割境界は、狭い領域に限定して複数の小領域をただ隣接させるよう重み付け平均した方が望ましい。
【0037】
この問題を解決するため、本実施形態では、小領域の分割境界の幅が異なる複数の重み係数を用意しておき選択するという手順を取る。
【0038】
図3は、
図2に示す小領域Bの分割境界に割り当てる3パターンの重み係数の一例を示す。
図3では、分割境界の位置から画素単位の距離を横軸とし、縦軸に重み係数を表す。
【0039】
具体的には、予め設定した分割境界の位置からの画素単位の距離a,bに対して[a,b]の範囲に重み係数[0,1]を割り当てたパターン(1)と、同様に距離a,bをそれぞれ2倍にして[2a,2b]の範囲に重み係数[0,1]を割り当てたパターン(2)と、同様に距離a,bをそれぞれ1/2倍にして[a/2,b/2]の範囲に重み係数[0,1]を割り当てたパターン(3)とを用意している。
【0040】
これらは、重み係数が、
図13に示すように、分割境界(黒の実線)からの距離d(x
c,y
c)によって一意に定められるγ
xc,ycとして規定される場合、
図13における重み係数が最小値又は最大値以外になる幅τに対して、限定パターン(固定値)ではなく複数パターン用意することに等しい。ここで、x
c,y
cは、復号対象ブロック内の座標である。
【0041】
すなわち、合成部207は、分割境界からの画素間距離に応じて複数の重み係数を設定するように構成されていてもよい。
【0042】
なお、a=bとして分割境界に対して対称的な重み係数を設定してもよい。すなわち、合成部207は、上述の重み係数として、分割境界に対して対称的な重み係数を設定するように構成されていてもよい。
【0043】
また、a≠bとして分割境界に対して非対称な重み係数を設定してもよい。すなわち、合成部207は、上述の重み係数として、分割境界に対して非対称な重み係数を設定するように構成されていてもよい。
【0044】
また、a及びbの2個に限らず数を増やして複数の線分等で重み係数を設定することもできる。すなわち、合成部207は、分割境界からの画素間距離に応じて複数の線分で重み係数を設定するように構成されていてもよい。
【0045】
図4~
図6は、それぞれの重み係数wを8×8ブロックに適用した例を示す。
図4~
図6の重み係数wは、0乃至8の値を取り、次式で合成する。
【0046】
(w×小領域A+(8-w)×小領域B+4)>>3
このように、分割境界からの画素間距離に応じて複数の重み係数wを設定することで8×8や64×16等、様々なブロックサイズでも一律に導出できる効果が得られる。パターンの種類、形状及び数は、任意に設定できる。例えば、上述では、複数パターンとして距離a、bの2倍及び1/2倍を説明したが、4倍や1/4倍であってもよい。また、上式では、重み係数を0~8の値に設定したが、0~16や0~32等の他の値に設定することもできる。特に、距離が2倍や4倍の場合は、重み係数の最大値を大きくすることで、画素単位の重み付け平均が高精度化できる。
【0047】
以下、復号部201による制御情報の復号処理の一例について説明する。
【0048】
復号部201に入力される符号情報は、シーケンス単位の制御情報をまとめたシーケンスパラメータセット(SPS)を含むことができる。
【0049】
また、復号部201に入力される符号情報は、ピクチャ単位の制御情報をまとめたピクチャパラメータセット(PPS)或いはピクチャヘッダ(PH)を含むことができる。
【0050】
さらに、復号部201に入力される符号情報は、スライス単位の制御情報をまとめたスライスヘッダ(SH)を含んでもよい。
【0051】
ここで、
図7を参照して、復号部201がシーケンス単位で境界幅を設定する方法について説明する。
【0052】
図7に示すように、ステップS11において、復号部201は、シーケンスパラメータセットで、sps_div_enabled_flagが1であるか否かについて判定する。Yesの場合、本処理は、ステップS12に進み、Noの場合、本処理は、終了する。
【0053】
ここで、sps_div_enabled_flagは、GPMの有無を制御するシンタックスであり、sps_div_enabled_flagが1である場合は、GPMが有効であることを示し、sps_div_enabled_flagが0である場合は、GPMが無効であることを示す。
【0054】
ステップS12において、復号部201は、sps_div_blending_flagを復号する。
【0055】
ここで、sps_div_blending_flagは、境界幅の変更の有無を制御するシンタックスであり、sps_div_blending_flagが1である場合は、境界幅の変更が有効であることを示し、sps_div_blending_flagが0である場合は、境界幅の変更が無効であることを示す。
【0056】
続いて、復号部201は、sps_div_blending_flagが1であるか否かについて判定する。Yesの場合、本処理は、ステップS13に進み、Noの場合、本処理は、終了する。
【0057】
ステップS13において、復号部201は、sps_div_num_blending_listを復号する。
【0058】
ここで、sps_div_num_blending_listは、境界幅のパターンの数を制御するシンタックスである。
【0059】
ステップS14において、復号部201は、sps_div_num_blending_listに設定されている数だけ境界幅のパターンを表すsps_div_blending_listを復号する。
【0060】
図3の例では、sps_div_num_blending_listには3が設定されており、sps_div_blending_listとしてパターン(1)~(3)に対応する重み係数が、境界幅の選択肢として利用される。
【0061】
このように、sps_div_num_blending_list及びsps_div_blending_listを用いることで、シーケンス単位で画像特性に応じた境界幅のパターン数及びパターン種別の設定が変更できるため、符号化効率を最大化する効果が期待できる。
【0062】
例えば、カメラで撮影した自然画像で構成されるシーケンスに対しては、
図3に示す例のように、複数のパターン(1)~(3)を設定でき、重み係数の分布が小さいパターンが有効であるコンピュータ画面やゲーム画面のようなスクリーン画像で構成されるシーケンスに対しては、1種類のパターン且つ境界幅が短いパターンに設定できるため、符号化効率の最大化が図れる。
【0063】
復号部201は、ピクチャ単位で境界幅を設定する場合は、pps或いはphで、sps_div_enabled_flagの代わりにpps_div_enabled_flagを復号し、sps_div_blending_flagの代わりにpps_div_blending_flagを復号し、sps_div_num_blending_listの代わりにpps_div_num_blending_listを復号し、sps_div_blending_listの代わりにpps_div_blending_listを復号する。
【0064】
このように、pps_div_num_blending_list及びpps_div_blending_listを用いることで、ピクチャ単位で画像特性に応じた境界幅のパターン数及びパターン種別の設定が変更できるため、符号化効率を最大化する効果が期待できる。
【0065】
例えば、カメラで撮影した自然画像で構成されるピクチャに対しては、
図3に示す例のように、複数のパターン(1)~(3)を設定でき、重み係数の分布が小さいパターンが有効であるコンピュータ画面やゲーム画面のようなスクリーン画像で構成されるピクチャに対しては、1種類のパターン且つ境界幅が短いパターンに設定できるため、符号化効率の最大化が図れる。
【0066】
復号部201は、スライス単位で境界幅を設定する場合は、shで、sps_div_enabled_flagの代わりにsh_div_enabled_flagを復号し、sps_div_blending_flagの代わりにsh_div_blending_flagを復号し、sps_div_num_blending_listの代わりにsh_div_num_blending_listを復号し、sps_div_blending_listの代わりにsh_div_blending_listを復号する。
【0067】
このように、sh_div_num_blending_list及びsh_div_blending_listを用いることで、スライス単位で画像特性に応じた境界幅のパターン数及びパターン種別の設定が変更できるため、符号化効率を最大化する効果が期待できる。
【0068】
例えば、カメラで撮影した自然画像で構成されるスライス領域に対しては、
図3に示す例のように、複数のパターン(1)~(3)を設定でき、重み係数の分布が小さいパターンが有効であるコンピュータ画面やゲーム画面のようなスクリーン画像で構成されるスライス領域に対しては、1種類のパターン且つ境界幅が短いパターンに設定できるため、符号化効率の最大化が図れる。
【0069】
上位層でのみ設定することで符号量の増大を抑制することもできるし、下位層でも設定した上で下位層での設定を優先することで適応的な制御ができる。
【0070】
或いは、復号部201は、分割境界の幅のパターンが事前に設定されている場合は、分割境界幅のパターンの復号自体を省略することができる。
【0071】
なお、上述の例では、シーケンス単位、ピクチャ単位或いはスライス単位で重み係数のパターン数及びパターン種別の設定する方法を述べたが、これらを設定せずに、後述のブロック単位で直接パターンを選択してもよい。この場合、重み係数のパターン数及びパターン種別の設定の自由度が低下するが、上述のヘッダ情報の増加を回避できる。
【0072】
以下、
図8を参照して、合成部207による重み係数の設定処理の一例について説明する。
【0073】
図8に示すように、ステップS101において、合成部207は、上述の制御情報に含まれるsps_div_enabled_flag、pps_div_enabled_flag及びsh_div_enabled_flagのいずれかが1であるか否かについて判定する。Noの場合(いずれも1ではない場合)、本処理は、ステップS102に進み、Yesの場合、本処理は、ステップS103に進む。
【0074】
ステップS102において、合成部207は、復号対象ブロックに対して重み係数を用いた重み付け平均を適用しない。
【0075】
ステップS103において、合成部207は、復号対象ブロックに対してGPMが適用されているか否かについて判定する。Noの場合、本処理は、ステップS102に進み、Yesの場合、本処理は、ステップS104に進む。
【0076】
ステップS104において、合成部207は、上述の制御情報に含まれ分割境界の幅を指定するcu_div_blending_idxを復号する。
【0077】
cu_div_blending_idxが0である場合、本動作は、ステップS105に進み、cu_div_blending_idxが1である場合、本動作は、ステップS106に進み、cu_div_blending_idxが2である場合、本動作は、ステップS107に進む。
【0078】
ステップS105において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(1)の重み係数を選択して適用する。
【0079】
ステップS106において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(2)の重み係数を選択して適用する。
【0080】
ステップS107において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(3)の重み係数を選択して適用する。
【0081】
図8は、分割境界幅のパターンが対称(a=b)である場合に合成部207がcu_div_blending_idxを1つ復号する例について示しているが、合成部207は、分割境界幅のパターンが非対称(a≠b)である場合に、cu_div_blending_idx0及びcu_div_blending_idx1の2つを復号してもよい。
【0082】
ここで、cu_div_blending_idxは、復号対象ブロックに適用される最下層のdiv_blending_listの中の1つを特定するよう復号される。
【0083】
よって、復号対象ブロックに適用される最下層のdiv_num_blending_listが1の場合は、cu_div_blending_idxの復号を省略することができ、cu_div_blending_idxを0と推定することで符号化効率を向上させることができる。
【0084】
復号対象ブロックに適用される最下層のdiv_num_blending_listが1より大きい場合は、cu_div_blending_idxを固定長で復号してもよいし、cu_div_blending_idxを可変長で復号することもできる。cu_div_blending_idxを可変長で復号する場合は、選択率の高い順序にcu_div_blending_idxの値を割り振ってもよい。
【0085】
なお、合成部207は、復号対象ブロックの輝度成分に対して復号対象ブロックの色差成分がダウンサンプリングされない場合は、復号対象ブロックの輝度成分の分割境界の幅を決定付ける重み係数を導出するための制御情報を用いずに(すなわち、復号対象ブロックの色差成分の分割境界の幅を決定付ける重み係数を導出するための制御情報を別途用いて)、復号対象ブロックの色差成分の分割境界の幅を決定付ける重み係数を導出してもよい。かかる構成によれば、復号対象ブロックの色差成分の重み係数を独立に導出できるため符号化性能の向上効果が期待できる。
【0086】
一方、合成部207は、復号対象ブロックの輝度成分に対して復号対象ブロックの色差成分がダウンサンプリングされる場合は、復号対象ブロックの輝度成分の分割境界の幅を決定付ける重み係数を導出するための制御情報に用いて(すなわち、復号対象ブロックの色差成分の分割境界の幅を決定付ける重み係数を導出するための制御情報を別途用いずに)、復号対象ブロックの色差成分の分割境界の幅を決定付ける重み係数を導出してもよい。
【0087】
かかる構成によれば、ダウンサンプリングされる色差成分に対しても輝度成分で得られる同様の効果が得られる。さらには、復号対象ブロックの輝度成分の分割境界の幅の決定にヘッダ等の制御情報を使用する場合は、色差成分に対しては、かかる制御情報が不要となるため、符号化性能の向上効果が期待できる。
【0088】
<第2実施形態>
以下、
図3、
図9~
図11を参照して、本発明の第2実施形態について、上述の第1実施形態との相違点に着目して説明する。
【0089】
本実施形態では、直接的な制御情報を不要としつつ重み係数のパターンを特定することで符号長削減を図る。
【0090】
そのため、本実施形態では、合成部207は、上述の第1予測画素及び第2予測画素の少なくとも一方に対して、複数の重み係数の中から間接的な制御情報に基づいて一意に選択した重み係数を用いた重み付け平均により第3予測画素を生成するように構成されている。
【0091】
すなわち、本実施形態では、合成部207は、複数の重み係数の中から間接的な制御情報に応じて重み係数を選択(一意に特定)するように構成されている。
【0092】
ここで、合成部207は、小領域の分割境界の幅が異なる複数の重み係数を用意しておき、かかる複数の重み係数の中から重み係数を選択するように構成されていてもよい。
【0093】
具体的には、合成部207は、間接的な制御情報としての復号対象ブロックの形状に応じて、複数の重み係数の中から重み係数を選択するように構成されていてもよい。
【0094】
例えば、合成部207は、復号対象ブロックの短辺、復号対象ブロックの長辺、復号対象ブロックの縦横比、分割モード及び復号対象ブロックの画素数の少なくとも1つに応じて、複数の重み係数の中から重み係数を選択するように構成されていてもよい。
【0095】
例えば、復号対象ブロックの形状として復号対象ブロックの短辺を利用する場合、復号対象ブロックの短辺が小さい場合は、広い領域に渡って重み付け平均してしまうと単純な双方向予測と変わらなくなってしまうため、分割境界の幅が広いパターンの重み係数については選択肢から外すことが望ましい。
【0096】
例えば、
図3の例では、合成部207は、復号対象ブロックの短辺が閾値以下の場合、パターン(3)の重み係数を選択し、復号対象ブロックの短辺が閾値より大きい場合、パターン(2)の重み係数を選択することで、パターン数を増やしつつパターンの制御情報を不要とし、符号化効率を向上させられる効果が得られる。
【0097】
以下、
図9を参照して、合成部207による重み係数の設定処理の一例について説明する。
【0098】
図9に示すように、ステップS201において、合成部207は、上述の制御情報に含まれるsps_div_enabled_flag、pps_div_enabled_flag及びsh_div_enabled_flagのいずれかが1であるか否かについて判定する。Noの場合(いずれも1ではない場合)、本処理は、ステップS202に進み、Yesの場合、本処理は、ステップS203に進む。
【0099】
ステップS202において、合成部207は、復号対象ブロックに対して重み係数を用いた重み付け平均を適用しない。
【0100】
ステップS203において、合成部207は、復号対象ブロックに対してGPMが適用されているか否かについて判定する。Noの場合、本処理は、ステップS202に進み、Yesの場合、本処理は、ステップS204に進む。
【0101】
ステップS204において、合成部207は、復号対象ブロックの短辺が予め設定した閾値1以下であるか否かについて判定する。Noの場合、本処理は、ステップS205に進み、Yesの場合、本処理は、ステップS208に進む。
【0102】
ステップS205において、合成部207は、復号対象ブロックの短辺が予め設定した閾値2以下であるか否かについて判定する。ここで、閾値2は、閾値1よりも大きい。Noの場合、本処理は、ステップS206に進み、Yesの場合、本処理は、ステップS207に進む。
【0103】
ステップS206において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(2)の重み係数を選択して適用する。
【0104】
ステップS207において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(1)の重み係数を選択して適用する。
【0105】
ステップS208において、合成部207は、パターン(1)~(3)の中から、重み係数として、パターン(3)の重み係数を選択して適用する。
【0106】
同様に、復号対象ブロックの形状として、復号対象ブロックの長辺、復号対象ブロックの縦横比、復号対象ブロックの分割モード及び復号対象ブロックの画素数等を利用する場合も、広い領域に渡って重み付け平均してしまうと単純な双予測と変わらなくなってしまうため、分割境界の幅が広いパターンの重み係数については選択肢から外すことが望ましい。
【0107】
すなわち、
図9に示すフローチャートのステップS204及びS205において、復号対象ブロックの短辺を、復号対象ブロックの長辺、復号対象ブロックの縦横比、復号対象ブロックの分割モード又は復号対象ブロックの画素数に置き換えてもよい。
【0108】
また、
図9に示すフローチャートにおいて、ステップS204で、合成部207は、復号対象ブロックの短辺が予め設定した閾値1未満であるか否かについて判定し、ステップS205で、合成部207は、復号対象ブロックの短辺が予め設定した閾値2未満であるか否かについて判定してもよい。
【0109】
ここで、上述の変更例として、復号対象ブロックの形状として、復号対象ブロックの短辺、ブロックの縦横比、分割モード(分割境界の角度)を利用してもよい。
【0110】
例えば、復号対象ブロックの短辺が小さく且つブロックの縦横比が大きく(縦:横=4:1等)且つ分割境界の角度が45度以上の場合は、分割境界の幅が広いパターンの重み係数を選択肢から外してもよい。
【0111】
逆に、復号対象ブロックの短辺が小さく且つブロックの縦横比が大きく(縦:横=4:1等)且つ分割境界の角度が45度未満の場合は、分割境界の幅が狭いパターンの重み係数を選択肢から外してもよい。
【0112】
これにより、ブロックの形状を考慮した分割境界の幅の選択が可能になり、符号化性能の向上が期待できる。
【0113】
また、合成部207は、動きベクトルに応じて、上述の重み係数を選択するように構成されていてもよい。
【0114】
具体的には、合成部207は、小領域の動きベクトルを利用し、小領域の動きベクトル長或いは小領域の動きベクトルの解像度に応じて、上述の重み係数を選択するように構成されていてもよい。
【0115】
動きベクトルが大きいほど分割境界がぼやける要因となることから重み係数の分布を広げることが望ましい。同様に、動きベクトルの解像度が粗いほど分割境界がぼやける要因となることから重み係数の分布を広げることが望ましい。
【0116】
また、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分に応じて、上述の重み係数を選択するように構成されていてもよい。
【0117】
ここで、動きベクトルの差分は、小領域A及び小領域Bのそれぞれの動きベクトルの参照フレームの差異や動きベクトルそのもの差分量である。
【0118】
例えば、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)以上であれば重み係数の分布を狭くするように上述の重み係数を選択し、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)未満であれば重み係数の分布を広くするように上述の重み係数を選択するように構成されていてもよい。
【0119】
かかる構成によれば、分割境界付近に発生し得る画像のエッジ(異なる動きを持つ背景と前景の境界等)に合わせて高精度に予測することができる。
【0120】
或いは、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)以上であれば重み係数の分布を広くするように上述の重み係数を選択し、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)未満であれば重み係数の分布を狭くするように上述の重み係数を選択するように構成されていてもよい。
【0121】
かかる構成によれば、分割境界付近の動きボケの大きさに合わせて高精度に予測することができる。
【0122】
ここで、合成部207は、動きベクトルと分割境界との角度の関係によって選択可能な重み係数を選択するように構成されていてもよい。
【0123】
例えば、
図10に示すように、合成部207は、動きベクトル(x,y)と分割境界の単位法線ベクトル(u,v)との内積の絶対値|x×u+y×v|に応じて、上述の重み係数を選択するように構成されていてもよい。
【0124】
或いは、合成部207は、合成部は、露光時間或いはフレームレートに応じて選択可能な重み係数を選択するように構成されていてもよい。
【0125】
また、合成部207は、小領域の予測方法に応じて選択可能な重み係数を選択するように構成されていてもよい。
【0126】
さらに、合成部207は、量子化パラメータに応じて選択可能な重み係数を選択するように構成されていてもよい。
【0127】
また、合成部207は、復号対象ブロックの制御情報に限らず、復号対象ブロックに近傍するブロックの制御情報に応じて、復号対象ブロックの重み係数を選択するように構成されていてもよい。
【0128】
例えば、小領域は、複数のブロックに跨がって連続する傾向があるため、合成部207は、隣接する復号済みブロックの重み係数に応じて、復号対象ブロックの重み係数を選択するように構成されていてもよい。
【0129】
図11は、復号対象ブロックに隣接する左、左上、上、右上のブロックの一例を示す図である。
【0130】
復号対象ブロックに隣接する左や左上のブロックにも分割境界が存在するが、合成部207は、復号対象ブロックの分割境界とは連続しないので選択せず、分割境界が連続する復号対象ブロックの上のブロックの分割境界の幅を復号対象ブロックに選択することができる。
【0131】
同様に、合成部207は、各小領域のマージベクトルを復号する際に用いるマージインデックスに対応する内部パラメータとして復号対象ブロックに近傍するブロックの重み係数のパターンを導出し、復号対象ブロックの各小領域の重み係数として選択するように構成されていてもよい。
【0132】
合成部207は、各小領域に対応するマージベクトルが存在しない場合は、予め設定したパターン(例えば、パターン(1))の分割境界の幅を、復号対象ブロックの小領域に採用するように構成されていてもよい。
【0133】
ここで、合成部207は、各小領域がイントラ予測モードの場合は、予め設定したパターン(例えば、パターン(1))の分割境界の幅を、復号対象ブロックの小領域に採用するように構成されていてもよい。
【0134】
<第3実施形態>
以下、
図3、
図8~
図12を参照して、本発明の第3実施形態について、上述の第1実施形態及び第2実施形態との相違点に着目して説明する。
【0135】
本実施形態では、合成部207は、上述の第1予測画素及び第2予測画素の少なくとも一方に対して、復号された制御情報に基づいて限定された重み係数のいずれかを用いた重み付け平均により第3予測画素を生成するように構成されている。
【0136】
すなわち、合成部207は、間接的な制御情報に応じて選択可能な重み係数の組み合わせを限定した上で、限定された重み係数の組み合わせの中から復号された制御情報に基づいて適用する重み係数を選択するように構成されている。
【0137】
ここで、合成部207は、小領域の分割境界の幅が異なる複数の重み係数を用意しておき、上述の重み係数を選択するように構成されていてもよい。
【0138】
合成部207は、間接的な制御情報としての復号対象ブロックの形状に応じて、選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0139】
例えば、合成部207は、復号対象ブロックのサイズ(復号対象ブロックの短辺や復号対象ブロックの長辺等)、復号対象ブロックの縦横比、復号対象ブロックの分割モード及び復号対象ブロックの画素数の少なくとも1つに応じて、選択可能な重み係数を限定するように構成されていてもよい。
【0140】
ここで、復号対象ブロックの形状として復号対象ブロックの短辺を利用する場合、復号対象ブロックの短辺が小さい場合は、広い領域に渡って重み付け平均してしまうと単純な双方向予測と変わらなくなってしまうため、分割境界の幅が広いパターンの重み系素については選択肢(選択可能な重み係数の組み合わせ)から外すことが望ましい。
【0141】
例えば、
図3の例では、合成部207は、復号対象ブロックの短辺が閾値以下の場合、選択可能な重み係数の組み合わせをパターン(1)/(3)の重み係数に限定し、復号対象ブロックの短辺が閾値より大きい場合、選択可能な重み係数の組み合わせをパターン(1)/(2)の重み係数に限定することで、パターン数を増やしつつパターンの制御情報の符号量を低減させ、符号化効率を向上させられる効果が得られる。
【0142】
ここで、復号対象ブロックの短辺の閾値として、例えば、8画素や16画素を設定してもよい。
【0143】
以下、
図12を参照して、合成部207による重み係数の設定処理の一例について説明する。
【0144】
図12に示すように、ステップS301において、合成部207は、上述の制御情報に含まれるsps_div_enabled_flag、pps_div_enabled_flag及びsh_div_enabled_flagのいずれかが1であるか否かについて判定する。Noの場合(いずれも1ではない場合)、本処理は、ステップS302に進み、Yesの場合、本処理は、ステップS303に進む。
【0145】
ステップS302において、合成部207は、復号対象ブロックに対して重み係数を用いた重み付け平均を適用しない。
【0146】
ステップS303において、合成部207は、復号対象ブロックに対してGPMが適用されているか否かについて判定する。Noの場合、本処理は、ステップS302に進み、Yesの場合、本処理は、ステップS304に進む。
【0147】
ステップS304において、合成部207は、復号対象ブロックの短辺が予め設定した閾値以下であるか否かについて判定する。
【0148】
Noの場合、本処理は、ステップS305に進み、Yesの場合、本処理は、ステップS306に進む。ここで、Noの場合、合成部207は、選択可能な重み係数の組み合わせをパターン(1)/(2)に限定し、Yesの場合、合成部207は、選択可能な重み係数の組み合わせをパターン(1)/(3)に限定する。
【0149】
ステップS305において、合成部207は、上述の制御情報に含まれるcu_div_blending_idx(直接的な制御情報)を復号する。
【0150】
cu_div_blending_idxが0でない場合、本動作は、ステップS307に進み、cu_div_blending_idxが0である場合、本動作は、ステップS308に進む。
【0151】
同様に、cu_div_blending_idxが0でない場合、本動作は、ステップS309に進み、cu_div_blending_idxが0である場合、本動作は、ステップS310に進む。
【0152】
ステップS307において、合成部207は、パターン(1)/(2)の中から、重み係数として、パターン(1)の重み係数を選択して適用する。
【0153】
ステップS308において、合成部207は、パターン(1)/(2)の中から、重み係数として、パターン(2)の重み係数を選択して適用する。
【0154】
ステップS309において、合成部207は、パターン(1)/(3)の中から、重み係数として、パターン(1)の重み係数を選択して適用する。
【0155】
ステップS310において、合成部207は、パターン(1)/(3)の中から、重み係数として、パターン(3)の重み係数を選択して適用する。
【0156】
上述のように、合成部207は、間接的な制御情報としての復号対象ブロックの短辺が閾値以下の場合は、パターン(1)~(3)の重み係数の中で、選択可能な重み係数の組み合わせをパターン(1)/(3)の重み係数に限定し、直接的な制御情報としてのcu_div_blending_idxについて判定することで、限定されたパターンの重み係数の中から、1つのパターンの重み係数を選択する。
【0157】
一方、合成部207は、復号対象ブロックの短辺が閾値より大きい場合は、パターン(1)~(3)の重み係数の中で、選択可能な重み係数の組み合わせをパターン(1)/(2)の重み係数に限定し、直接的な制御情報としてのcu_div_blending_idxについて判定することで、限定されたパターンの重み係数の中から、1つのパターンの重み係数を選択する。
【0158】
すなわち、先のsps_div_blending_listにパターン(1)~(3)の重み係数の3種類が格納されている例では、合成部207は、cu_div_blending_idxで選択可能なパターンの重み係数の組み合わせについて間接的な制御情報によって2種類に限定することができる。
【0159】
そして、合成部207は、復号対象ブロックの短辺が閾値以下の場合、cu_div_blending_idxが0の場合は、パターン(2)の重み系素を選択し、cu_div_blending_idxが1の場合は、パターン(1)の重み係数を選択する。
【0160】
一方、合成部207は、復号対象ブロックの短辺が閾値より大きい場合、cu_div_blending_idxが0の場合は、パターン(3)の重み系素を選択し、cu_div_blending_idxが1の場合は、パターン(1)の重み係数を選択する。
【0161】
上述の構成によれば、同じcu_div_blending_idxが0の場合であっても、他の制御信号に応じて、選択する重み係数のパターンを制御することで、符号化効率を向上させる効果が得られる。
【0162】
同様に、復号対象ブロックの形状として、復号対象ブロックの長辺、復号対象ブロックの縦横比、復号対象ブロックの分割モード及び復号対象ブロックの画素数等を利用する場合も、広い領域に渡って重み付け平均してしまうと単純な双予測と変わらなくなってしまうため、分割境界の幅が広いパターンの重み系素については選択肢から外すことが望ましい。
【0163】
すなわち、
図12に示すフローチャートのステップS304において、復号対象ブロックの短辺を、復号対象ブロックの長辺、復号対象ブロックの縦横比、復号対象ブロックの分割モード又は復号対象ブロックの画素数に置き換えてもよい。
【0164】
また、
図12に示すフローチャートにおいて、ステップS304で、合成部207は、復号対象ブロックの短辺が予め設定した閾値未満であるか否かについて判定してもよい。
【0165】
ここで、上述の変更例として、復号対象ブロックの形状として、復号対象ブロックの短辺、ブロックの縦横比、分割モード(分割境界の角度)を利用してもよい。
【0166】
例えば、復号対象ブロックの短辺が小さく且つブロックの縦横比が大きく(縦:横=4:1等)且つ分割境界の角度が45度以上の場合は、分割境界の幅が広いパターンの重み係数を選択肢から外してもよい。
【0167】
逆に、復号対象ブロックの短辺が小さく且つブロックの縦横比が大きく(縦:横=4:1等)且つ分割境界の角度が45度未満の場合は、分割境界の幅が狭いパターンの重み係数を選択肢から外してもよい。
【0168】
これにより、ブロックの形状を考慮した分割境界の幅の選択が可能になり、符号化性能の向上が期待できる。
【0169】
また、合成部207は、動きベクトルに応じて、選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0170】
具体的には、合成部207は、小領域の動きベクトルを利用し、小領域の動きベクトル長或いは小領域の動きベクトルの解像度に応じて、選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0171】
動きベクトルが大きいほど分割境界がぼやける要因となることから重み係数の分布を広げることが望ましい。同様に、動きベクトルの解像度が粗いほど分割境界がぼやける要因となることから重み係数の分布を広げることが望ましい。
【0172】
また、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分に応じて、選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0173】
ここで、動きベクトルの差分は、小領域A及び小領域Bのそれぞれの動きベクトルの参照フレームの差異や動きベクトルそのもの差分量である。
【0174】
例えば、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)以上であれば重み係数の分布を狭くするように選択可能な重み係数の組み合わせを限定し、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)未満であれば重み係数の分布を広くするように選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0175】
かかる構成によれば、分割境界付近に発生し得る画像のエッジ(異なる動きを持つ背景と前景の境界等)に合わせて高精度に予測することができる。
【0176】
或いは、合成部207は、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)以上であれば重み係数の分布を広くするように選択可能な重み係数のパターンの組み合わせを限定し、小領域A及び小領域Bのそれぞれの動きベクトルの差分が所定の閾値(例えば、1画素)未満であれば重み係数の分布を狭くするように選択可能な重み係数のパターンの組み合わせを限定するように構成されていてもよい。
【0177】
かかる構成によれば、分割境界付近の動きボケの大きさに合わせて高精度に予測することができる。
【0178】
ここで、合成部207は、動きベクトルと分割境界との角度の関係によって選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0179】
例えば、
図10に示すように、合成部207は、動きベクトル(x,y)と分割境界の単位法線ベクトル(u,v)との内積の絶対値|x×u+y×v|に応じて、選択可能な重み係数を限定するように構成されていてもよい。
【0180】
或いは、合成部207は、合成部は、露光時間或いはフレームレートに応じて選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0181】
また、合成部207は、小領域の予測方法に応じて選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0182】
さらに、合成部207は、量子化パラメータに応じて選択可能な重み係数の組み合わせを限定するように構成されていてもよい。
【0183】
また、合成部207は、復号対象ブロックの制御情報に限らず、復号対象ブロックに近傍するブロックの制御情報に応じて、選択可能な復号対象ブロックの重み係数の組み合わせを限定するように構成されていてもよい。
【0184】
例えば、小領域は、複数のブロックに跨がって連続する傾向があるため、合成部207は、隣接する復号済みブロックの重み係数に応じて、選択可能な復号対象ブロックの重み係数の組み合わせを限定するように構成されていてもよい。
【0185】
図11は、復号対象ブロックに隣接する左、左上、上、右上のブロックの一例を示す図である。
【0186】
復号対象ブロックに隣接する左や左上のブロックにも分割境界が存在するが、合成部207は、復号対象ブロックの分割境界とは連続しないので復号対象ブロックの重み係数の組み合わせに含めず、分割境界が連続する復号対象ブロックの上のブロックの分割境界の幅を復号対象ブロックの重み係数の組み合わせに含めることができる。
【0187】
なお、合成部207は、選択可能な復号対象ブロックの重み係数の組み合わせを限定する際に、かかる組み合わせに含めるか含めないのかの2択に限らず、段階的に限定するように構成されていてもよい。
【0188】
例えば、復号部201は、上述の重み係数の選択確率に応じて異なる符号長を割り当てて復号することで符号化効率を向上させる。
【0189】
上述の例では、復号部201は、隣接する復号済みブロックが採用している重み係数のパターンを短い符号長として設定し、他のパターンを長い符号長として設定することができる。
【0190】
上述の画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【産業上の利用可能性】
【0191】
なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【符号の説明】
【0192】
200…画像復号装置
201…復号部
202…逆量子化部
203…逆変換部
204…イントラ予測部
205…蓄積部
206…動き補償部
207…合成部
208…加算部
210…符号入力部
220…画像出力部