(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003175
(43)【公開日】2024-01-11
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20231228BHJP
H04N 19/52 20140101ALI20231228BHJP
H04N 19/523 20140101ALI20231228BHJP
【FI】
H04N19/70
H04N19/52
H04N19/523
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023194119
(22)【出願日】2023-11-15
(62)【分割の表示】P 2022080426の分割
【原出願日】2020-06-08
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、総務省、「多様な用途、環境下での高精細映像の活用に資する次世代映像伝送・通信技術の研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】木谷 佳隆
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】河村 圭
(57)【要約】
【課題】不要なシンタックスの復号処理量及びビット量を削減すること。
【解決手段】本発明に係る画像復号装置200は、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号し、かかる第1シンタックスの値によって、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号するように構成されている復号部210を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像復号装置であって、
復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号するように構成されている復号部を備え、
前記第1シンタックスの値が「1」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度及び整数精度のどちらも使用できることを示し、
前記第1シンタックスの値が「0」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示し、
前記第1シンタックスの値が「1」である場合に、前記復号部は、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号するように構成されており、
前記第1シンタックスの値が「0」である場合に、前記復号部は、前記第2シンタックスを復号しないように構成されており、
前記第2シンタックスの値が「1」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として整数精度を使用することを示し、
前記第2シンタックスの値が「0」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示すことを特徴とする画像復号装置。
【請求項2】
画像復号方法であって、
復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号する工程と、
前記第1シンタックスの値が「1」である場合に、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号し、前記第1シンタックスの値が「0」である場合に、前記第2シンタックスを復号しない工程とを有し、
前記第1シンタックスの値が「1」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度及び整数精度のどちらも使用できることを示し、
前記第1シンタックスの値が「0」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示し、
前記第2シンタックスの値が「1」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として整数精度を使用することを示し、
前記第2シンタックスの値が「0」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示すことを特徴とする画像復号方法。
【請求項3】
コンピュータを、画像復号装置として機能させるプログラムであって、
前記画像復号装置は、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号するように構成されている復号部を備え、
前記第1シンタックスの値が「1」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度及び整数精度のどちらも使用できることを示し、
前記第1シンタックスの値が「0」の場合には、前記第1シンタックスは、前記復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示し、
前記第1シンタックスの値が「1」である場合に、前記復号部は、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号するように構成されており、
前記第1シンタックスの値が「0」である場合に、前記復号部は、前記第2シンタックスを復号しないように構成されており、
前記第2シンタックスの値が「1」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として整数精度を使用することを示し、
前記第2シンタックスの値が「0」の場合には、前記第2シンタックスは、前記復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度として小数精度を使用することを示すことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1では、マージ動きベクトル差分(MMVD:Merge with MVD)の伝送精度を整数精度とするか否かについて制御することができるシンタックスが、シーケンス・パラメータ・セット(SPS:Sequence Parameter Set)のシンタックス(sps_mmvd_fullpel_only_flag)及びピクチャヘッダ(PH:Picture Header)のシンタックス(ph_mmvd_fullpel_only_flag)としてそれぞれ備えられている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Versatile Video Coding(Draft 9)、JVET-R2001
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1では、sps_mmvd_fullpel_only_flagが有効であるである場合(すなわち、シーケンス単位でMMVDの伝送精度が整数精度であると特定される場合)であっても、ph_mmvd_fullpel_only_flagが復号されるように規定されているという問題点があった。
【0005】
すなわち、非特許文献1では、sps_mmvd_fullpel_only_flagでMMVDの伝送精度が整数精度と特定されるにも関わらず、不要にph_mmvd_fullpel_only_flagが復号されるという問題点があった。 そこで、本発明は、上述の課題に鑑みてなされたものであり、シーケンス単位でMMVDの伝送精度を制御するシンタックスを復号し、かかるMMVDの伝送精度が不定である場合(すなわち、かかるMMVDの伝送精度として小数精度或いは整数精度のいずれを使用してもよい場合)にのみ、ピクチャ単位でMMVDの伝送精度を制御するシンタックスを復号することで、不要なシンタックスの復号処理量及びビット量を削減することができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の特徴は、画像復号装置であって、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号し、前記第1シンタックスの値によって、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号するように構成されている復号部を備えることを要旨とする。
【0007】
本発明の第2の特徴は、画像復号方法であって、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号し、前記第1シンタックスの値によって、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号する工程を有することを要旨とする。
【0008】
本発明の第3の特徴は、コンピュータを、画像復号装置として機能させるプログラムであって、前記画像復号装置は、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御する第1シンタックスを復号し、前記第1シンタックスの値によって、復号対象のピクチャにおけるマージ動きベクトル差分の伝送精度を制御する第2シンタックスを復号するように構成されている復号部を備えることを要旨とする。
【発明の効果】
【0009】
本発明によれば、シーケンス単位でMMVDの伝送精度を制御するシンタックスを復号し、かかるMMVDの伝送精度が不定である場合(すなわち、かかるMMVDの伝送精度として小数精度或いは整数精度のいずれを使用してもよい場合)にのみ、ピクチャ単位でMMVDの伝送精度を制御するシンタックスを復号することで、不要なシンタックスの復号処理量及びビット量を削減することができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係る画像処理システム1の構成の一例を示す図である。
【
図2】一実施形態に係る画像符号化装置100の機能ブロックの一例を示す図である。
【
図3】一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図4】一実施形態に係る画像復号装置200の復号部210で受信する符号化データ(ビットストリーム)の構成の一例である。
【
図5】SPS211内に含まれる制御データの一例である。
【
図6】PPS212に含まれる制御データの一例である。
【
図7】ピクチャヘッダ213に含まれる制御データの一例である。
【
図8】スライスヘッダ214A/214Bに含まれる制御データの一例である。
【
図9】一実施形態の一変更例について説明するための図である。
【
図10】一実施形態の一変更例について説明するための図である。
【
図11】一実施形態の一変更例について説明するための図である。
【
図12】一実施形態に係るインター予測部241の機能ブロックの一例について示す図である。
【
図13】一実施形態に係るMMVD部241A3による動きベクトルの修正方法を示す図である。
【
図14】一実施形態に係るMMVD部241A3による動きベクトルの修正方法を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0012】
<第1実施形態>
以下、
図1~
図14を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。
図1は、本実施形態に係る画像処理システム10について示す図である。
【0013】
図1に示すように、本実施形態に係る画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
【0014】
画像符号化装置100は、入力画像信号(ピクチャ)を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【0015】
符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
【0016】
(画像符号化装置100)
以下、
図2を参照して、本実施形態に係る画像符号化装置100について説明する。
図2は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
【0017】
図2に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
【0018】
インター予測部111は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0019】
具体的には、インター予測部111は、対象フレームとフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトル(mv)を決定するように構成されている。
【0020】
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて符号化対象ブロック(以下、対象ブロック)に含まれる予測信号を対象ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【0021】
イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0022】
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を対象ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
【0023】
ここで、参照ブロックは、対象ブロックについて参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【0024】
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【0025】
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
【0026】
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
【0027】
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
【0028】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理としては、離散コサイン変換(Discrete Cosine Transform、以下、DCTと記す)に対応する基底パタン(変換行列)が用いられてもよく、離散サイン変換(Discrete Sine Transform、以下、DSTと記す)に対応する基底パタン(変換行列)が用いられてもよい。
【0029】
逆変換・逆量子化部132は、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0030】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0031】
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【0032】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【0033】
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【0034】
ここで、制御データは、符号化ブロックサイズ、予測ブロックサイズ、変換ブロックサイズ等のサイズデータを含んでもよい。
【0035】
また、制御データは、後述するシーケンス・パラメータ・セット(SPS:Sequence Parameter Set)、ピクチャ・パラメータ・セット(PPS:Picutre Parameter Set)、ピクチャヘッダ(PH:Picture Header)、スライスヘッダ(SH:Slice Header)等のヘッダ情報を含んでもよい。
【0036】
インループフィルタ処理部150は、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
【0037】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理や画像符号化装置100から伝送されるフィルタ係数やフィルタ選択情報、画像の絵柄の局所的な性質等に基づいてフィルタを切り替える適応ループフィルタ処理である。
【0038】
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
【0039】
ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
【0040】
(画像復号装置200)
以下、
図3を参照して、本実施形態に係る画像復号装置200について説明する。
図3は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0041】
図3に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
【0042】
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【0043】
ここで、復号は、例えば、符号化部140で行われるエントロピー符号化とは逆の手順のエントロピー復号である。
【0044】
また、復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。なお、上述したように、制御データは、サイズデータやヘッダ情報等を含んでもよい。
【0045】
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0046】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0047】
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
【0048】
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
【0049】
インター予測部241は、インター予測部111と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0050】
具体的には、インター予測部241は、符号化データから復号した動きベクトル及び参照フレームに含まれる参照信号に基づいて予測信号を生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
【0051】
イントラ予測部242は、イントラ予測部112と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0052】
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
【0053】
インループフィルタ処理部250は、インループフィルタ処理部150と同様に、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
【0054】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック或いはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理や、画像符号化装置100から伝送されるフィルタ係数やフィルタ選択情報や画像の絵柄の局所的な性質等に基づいてフィルタを切り替える適応ループフィルタ処理である。
【0055】
フレームバッファ260は、フレームバッファ160と同様に、インター予測部241で用いる参照フレームを蓄積するように構成されている。
【0056】
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
【0057】
(復号部210)
以下、
図4~
図8を用いて、符号化部140で符号化され復号部210で復号される制御データについて説明する。
【0058】
図4は、復号部210で受信する符号化データ(以下、ビットストリーム)の構成の一例である。
【0059】
ビットストリームは、先頭にSPS211を含んでもよい。SPSは、シーケンス(ピクチャの集合)単位での制御データの集合である。具体例については後述する。各SPS211は、複数のSPS211が存在する場合に個々を識別するためのSPS id情報を少なくとも含む。
【0060】
また、ビットストリームは、SPS211の次に、PPS212を含んでもよい。PPS212は、ピクチャ(スライスの集合)単位での制御データの集合である。各PPS212は、複数のPPS212が存在する場合に個々を識別するためのPPS id情報を少なくとも含む。また、各PPS212は、各PPS212に対応するSPS211を指定するためのSPS id情報を少なくとも含む。
【0061】
また、ビットストリームは、PPS212の次に、ピクチャヘッダ213を含んでもよい。ピクチャヘッダ213も、ピクチャ(スライスの集合)単位での制御データの集合である。PPS212は、複数のピクチャに対して単一のPPS212を共有することができる。一方、ピクチャヘッダ213は、ピクチャ毎に必ず伝送される。ピクチャヘッダ213には、各ピクチャに対応するPPS212を指定するためのPPS id情報を少なくとも含む。
【0062】
また、ビットストリームは、ピクチャヘッダ213の次に、スライスヘッダ214Aを含んでもよい。スライスヘッダ214Aは、スライス単位での制御データの集合である。具体例については後述する。スライスヘッダ214Aは、スライスヘッダ214Aの一部として、上述のピクチャヘッダ213の情報を含むこともできる。
【0063】
また、ビットストリームは、スライスヘッダ214Aの次に、スライスデータ215Aを含んでもよい。スライスデータ214Aは、上述の係数レベル値やサイズデータ等を含んでもよい。
【0064】
以上のように、ビットストリームは、各スライスデータ215A/215Bに対して、1つずつスライスヘッダ214A/2154、ピクチャヘッダ213、PPS212、SPS211が対応する構成となる。
【0065】
上述のように、ピクチャヘッダ213にてどのPPS212を参照するかをPPS idで指定し、さらに、PPS212がどのSPS211を参照するかをSPS idで指定するため、複数のスライスデータ215A/215Bに対して共通のSPS211、PPS212を用いることができる。
【0066】
言い換えると、SPS211及びPPS212は、ピクチャごと、スライスごとに、必ずしも伝送する必要がない。
【0067】
例えば、
図4に示すように、スライスヘッダ214B/215Bの直前では、SPS211及びPPS212を符号化しないようなビットストリームの構成とすることもできる。
【0068】
なお、
図4の構成は、あくまで一例である。例えば、ビットストリームが、各スライスデータ215A/215Bに対して、スライスヘッダ214B/215B、ピクチャヘッダ213、PPS212、SPS211で指定された制御データが対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。また、同様に、伝送に際して
図4と異なる構成に整形されてもよい。
【0069】
図5は、SPS211内に含まれる制御データの一例である。
【0070】
SPS211は、上述の通り、少なくとも各SPS211を識別するためのSPS id情報 (sps_seq_parameter_set_id)を含む。
【0071】
SPS211は、復号対象のシーケンスの後述するマージ動きベクトル差分(MMVD:Merge with MVD)の使用可否について制御するシンタックス(sps_mmvd_enabled_flag)を含んでもよい。
【0072】
例えば、sps_mmvd_enabled_flagの値が「0」の場合は、かかるSPS211に対応するシーケンス内でMMVDが使用不可であることを意味し、sps_mmvd_enabled_flagの値が「1」の場合は、かかるSPS211に対応するシーケンス内でMMVDが使用可であることを意味するように定義することができる。
【0073】
また、sps_mmvd_enabled_flagの値が「1」の場合、すなわち、MMVDが使用可である場合は、追加で、かかるSPS211に対応するシーケンス内のMMVDの伝送精度を整数精度とするか否かについて制御するシンタックス(sps_mmvd_fullpel_only_flag)を含んでもよい。
【0074】
例えば、sps_mmvd_fullpel_only_flagの値が「0」の場合は、MMVDの伝送精度として小数精度を使用してもよい(すなわち、MMVDの伝送精度として小数精度及び整数精度どちらも使用可である)ことを意味し、sps_mmvd_fullpel_only_flagの値が「1」の場合は、MMVDの伝送精度として整数精度を使用することを意味すると定義することができる。
【0075】
復号部210は、sps_mmvd_fullpel_only_flagが、かかるSPS211に含まれていなかった場合、sps_mmvd_fullpel_only_flagの値を「0」とみなしてもよい。
【0076】
図6は、PPS212に含まれる制御データの一例である。
【0077】
PPS212は、上述の通り、少なくとも各PPS212を識別するためのPPS id情報 (pps_pic_parameter_set_id)を含む。また、PPS212は、上述の通り、少なくとも当該PPS212に対応するSPS211を指定するためのid情報(pps_seq_parameter_set_id)を含む。
【0078】
図7は、ピクチャヘッダ213に含まれる制御データの一例である。
【0079】
ピクチャヘッダ213は、上述の通り、少なくとも当該ピクチャヘッダ213に対応するPPS212を指定するためのid情報(ph_pic_parameter_set_id)を含む。
【0080】
また、ph_pic_parameter_set_idで指定されたPPS212に関連するsps_mmvd_fullpel_only_flagの値が「0」の場合、ピクチャヘッダ213は、ph_mmvd_fullpel_only_flagを含んでもよい。
【0081】
復号部210は、ph_mmvd_fullpel_only_flagが、ピクチャヘッダ213に含まれない場合、ph_mmvd_fullpel_only_flagの値を「0」とみなしてもよい。
【0082】
ph_mmvd_fullpel_only_flagの値が「1」の場合は、かかるピクチャヘッダ213に対応するピクチャ内で、MMVDの伝送精度として整数精度を使用することを意味する。
【0083】
一方、ph_mmvd_fullpel_only_flagの値が「0」の場合は、かかるピクチャヘッダ213に対応するピクチャ内で、MMVDの伝送精度として小数精度を使用してもよい(すなわち、MMVDの伝送精度として小数精度及び整数精度どちらも使用可である)ことを意味する。
【0084】
ph_mmvd_fullpel_only_flagがピクチャヘッダ213内に含まれない場合、復号部210は、ph_mmvd_fullpel_only_flagの値は「0」であるとみなしてもよい。
【0085】
或いは、ph_mmvd_fullpel_only_flagがピクチャヘッダ213内に含まれない場合、復号部210は、ph_mmvd_fullpel_only_flagの値がsps_mmvd_fullpel_only_flagの値と同じ値であるとみなしてもよい。
【0086】
以上のように、sps_mmvd_fullpel_only_flagの値が「0」である場合、すなわち、シーケンス単位でMMVDの伝送精度として小数精度を使用してもよいことを示している場合にのみ、ピクチャ単位でMMVDの伝送精度として整数精度を使用するか否かを制御するシンタックス(ph_mmvd_fullpel_only_flag)をピクチャヘッダ213内に含めるようにすることで、例えば、sps_mmvd_fullpel_only_flagにより当該シーケンスでMMVDの伝送精度として整数精度を使用することが特定される場合に、不要にph_mmvd_fullpel_only_flagをピクチャヘッダ213に含めることを防ぐことができる。これにより、無駄な復号処理・符号化処理を削減することができ、また、ピクチャヘッダ213のビット量を削減することができる。
【0087】
図8は、スライスヘッダ214A/214Bに含まれる制御データの一例である。
【0088】
スライスヘッダ214A/214Bは、sh_picture_header_in_slice_header_flagを含んでもよい。sh_picture_header_in_slice_header_flagの値が「1」の場合、
図8におけるpicture_header_structure( )の位置に、
図7で説明したピクチャヘッダ213のシンタックス構造(picture_header_structure( ))を含めることができる。
また、スライスヘッダ214A/214Bが対応するピクチャヘッダ213にてph_pic_parameter_set_idで指定されたPPS212に関連するsps_mmvd_fullpel_only_flagの値が「0」の場合、スライスヘッダ214A/214Bは、slice_mmvd_fullpel_only_flagを含んでもよい。
【0089】
slice_mmvd_fullpel_only_flagが、スライスヘッダ214A/214Bに含まれない場合、復号部210は、slice_mmvd_fullpel_only_flagの値を「0」とみなしてもよい。
【0090】
上述のsps_mmvd_fullpel_only_flagの値が「1」の場合、ピクチャヘッダ213は、slice_mmvd_fullpel_only_flagを含んでもよい。
【0091】
slice_mmvd_fullpel_only_flagの値が「1」の場合は、かかるスライス内で、MMVDの伝送精度として整数精度を使用することを意味する。
【0092】
slice_mmvd_fullpel_only_flagの値が「0」の場合は、かかるスライス内で、MMVDの伝送精度として小数精度を使用してもよい(すなわち、MMVDの伝送精度として小数精度及び整数精度のどちらも使用可である)ことを意味する。
【0093】
slice_mmvd_fullpel_only_flagがスライスヘッダ214A/214B内に含まれない場合、復号部210は、slice_mmvd_fullpel_only_flagの値は「0」であるとみなしてもよい。
【0094】
或いは、slice_mmvd_fullpel_only_flagがピクチャヘッダ213内に含まれない場合、復号部210は、slice_mmvd_fullpel_only_flagの値がph_mmvd_fullpel_only_flagの値と同じ値であるとみなしてもよい。
【0095】
以上のように、sps_mmvd_fullpel_only_flagの値が「0」である、すなわち、シーケンス単位でMMVDの伝送精度として小数精度を使用してもよいことを示しているときにのみ、スライス単位でMMVDの伝送精度として整数精度を使用するか否かを制御するシンタックス(slice_mmvd_fullpel_only_flag)をスライスヘッダ214A/214B内に含めるむようにすることで、例えば、sps_mmvd_fullpel_only_flagにより当該シーケンスでMMVDの伝送精度として整数精度を使用することが特定される場合に、不要にslice_mmvd_fullpel_only_flagをスライスヘッダ214A/214Bに含めることを防ぐことができる。これにより、無駄な復号処理・符号化処理を削減することができ、また、スライスヘッダ214A/214Bのビット量を削減することができる。
【0096】
以上で説明したフラグの値は、あくまでも一例である。フラグの値(「0」及び「1」)に与える意味を逆転させた場合、対応する処理もそれに応じて逆転させることで等価な処理を実現可能である。
【0097】
また、各シンタックス間の参照関係が存在しないシンタックス同士については、復号する順番が入れ替わってもよい。更に、上記以外のシンタックスが、SPS211、PPS212、ピクチャヘッダ213、スライスヘッダ214A/214Bにそれぞれ含まれていてもよい。
【0098】
<変更例>
上述の実施形態では、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御するシンタックスの名称をsps_mmvd_fullpell_only_flagと定義し、かかるシンタックスの値に応じた意味(セマンティクス)として、かかるシンタックスの値が「0」の場合は、MMVDの伝送精度として小数精度を使用してもよい(すなわち、MMVDの伝送精度として小数精度及び整数精度どちらも使用することができる)ことを意味し、かかるシンタックスの値が「1」の場合は、MMVDの伝送精度として整数精度を使用することを意味すると定義した。
【0099】
一方で、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御するシンタックスの名称をsps_mmvd_fullpell_enabled_flagと定義し、かかるシンタックスの値に応じた意味(セマンティクス)として、かかるシンタックスの値が「0」の場合は、MMVDの伝送精度として小数精度を使用することを意味し、かかるシンタックスの値が「1」の場合は、MMVDの伝送精度として整数精度を使用してもよい(すなわち、MMVDの伝送精度として小数精度及び整数精度どちらも使用することができる)ことを意味すると定義してもよい。
【0100】
ただし、このように、復号対象のシーケンスにおけるマージ動きベクトル差分の伝送精度を制御するシンタックスの名称及び意味(セマンティクス)を定義する場合、
図5で示した当該シンタックスの復号条件、、
図7で示したph_mmvd_fullpel_only_flagの復号条件、及び、
図8で示したslice_mmvd_fullpel_only_flagの復号条件が、それぞれ
図9~
図11のように構成される。
【0101】
図7に対する
図10と
図8に対する
図11との差異は、当該シンタックスの値が「1」の場合に、当該シンタックスの意味の変更に伴い、ph_mmvd_fullpel_only_flag或いはslice_mmvd_fullpel_only_flagが復号されるような構成となっている点にある。
【0102】
(インター予測部241)
以下、
図12を参照して、本実施形態に係るインター予測部241について説明する。
図12は、本実施形態に係るインター予測部241の機能ブロックの一例について示す図である。
【0103】
図12に示すように、インター予測部241は、動きベクトル復号部241Aと予測信号生成部241Bとを有する。
【0104】
インター予測部241は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【0105】
動きベクトル復号部241Aは、AMVP部241A1、マージ部241A2、MMVD部241A3とを有する。ここで、動きベクトル復号部241Aは、フレームバッファ260から入力される対象フレーム及び参照フレーム、及び、画像符号化装置100から受信する制御データの復号によって、動きベクトルを取得するように構成されている。
【0106】
AMVP部241A1は、動きベクトル予測(MVP:Motion VectorPrediciton)及び動きベクトル差分(MVD:Motion VectorDifference)を示すインデックス、及び、参照フレームのリスト及びインデックスを用いて、動きベクトルを復号する適応動きベクトル予測復号(AMVP:Adaptive Motion Vector Prediction)を行うように構成されている。AMVPとしては、既知の手法を採用すること可能であるため、その詳細については省略する。
【0107】
マージ部241A2は、画像符号化装置100から、マージインデックスを受信し、動きベクトルを復号するように構成されている。
【0108】
具体的には、マージ部241A2は、画像符号化装置100と同じ方法でマージリストを構築して、受信したマージインデックスに対応する動きベクトルを、構築したマージリストから取得するように構成されている。マージリストの構築方法としては、既知の手法を採用することが可能であるため、その詳細については省略する。
【0109】
MMVD部241A3は、画像符号化装置100から送られるMMVDに関するシンタックスに基づいて、マージ部241A2で構築されたマージリストから動きベクトルを選択し、さらに、かかる動きベクトルを修正する。詳細は、後述する。
【0110】
予測信号生成部241Bは、動きベクトル復号部241Aから出力された動きベクトルに基づいて予測信号を生成するように構成されている。動きベクトルから予測信号を生成する方法としては、既知の方法を採用することが可能であるため、その詳細は省略する。
【0111】
(MMVD部241A3)
以下、
図13及び
図14を参照して、本実施形態に係るMMVD部241A3について説明する。
【0112】
図13及び
図14は、本実施形態に係るMMVD部241A3による動きベクトルの修正方法を示す図である。
【0113】
MMVD部241A3は、復号部210で復号されたMMVDに関連するシンタックス(mmvd_merge_flag、mmvd_cand_flag、mmvd_distance_idx、mmvd_direction_idx、ph_mmvd_fullpel_only_flag)の値に基づいて、マージ部241A2で構築したマージリストから動きベクトルを選定し、かかる動きベクトルを修正するように構成されている。
【0114】
第1に、MMVD部241A3は、mmvd_merge_flagの値が「1」の場合、MMVDを実行し、mmvd_merge_flagの値が「0」の場合は、MMVDを実行しないように構成されている。
【0115】
第2に、MMVD部241A3は、MMVDを実行した場合には、mmvd_cand_flagの値に基づいて、マージリストの中から動きベクトルを選定するように構成されている。
【0116】
具体的には、MMVD部241A3は、mmvd_cand_flagの値が「0」である場合は、マージリストの0番目の動きベクトルを修正する動きベクトルとして選定し、mmvd_cand_flagの値が「1」である場合は、マージリストの1番目の動きベクトルを修正する動きベクトルとして選定するように構成されている。
【0117】
なお、マージリストに動きベクトルの候補が2つ以上ない場合は、MMVD部241A3は、mmvd_cand_flagの値を「0」としてみなすように構成されている。
【0118】
また、本実施形態では、mmvd_cand_flagの値のバリエーションを「0」又は「1」として説明したが、設計者の意図で設計を変更することも可能である。
【0119】
第3に、MMVD部241A3は、
図10及び
図14に示すmmvd_distance_idx、mmvd_direction_idx、ph_mmvd_fullpel_only_flagの値に基づいて、選定した動きベクトルを修正するように構成されている。
【0120】
以下、
図13を参照して、MMVD部2413A3により選定された動きベクトルに対して加算される動きベクトル差分の大きさ(距離)の導出方法について説明する。
【0121】
具体的には、復号されたmmvd_distance_idx及びph_mmvd_fullpel_only_flagの値に基づいて、動きベクトル差分の大きさ(距離)が導出される。
【0122】
例えば、
図13に示すように、mmvd_distance_idxの値が「1」であり、ph_mmvd_fullpel_only_flagの値が「0」である場合、MmvdDistance[x0][y0]は、「2」に設定される。
【0123】
ここで、MmvdDistance[x0][y0]は、MMVDによる動きベクトルの修正距離、すなわち、選定された動きベクトルに対して加算される動きベクトル差分の距離を示す内部パラメータである。
【0124】
MmvdDistance[x0][y0]の値が「2」に設定される場合は、選定された動きベクトルに対して、後述するmmvd_direction_idxによって導出される方向に、動きベクトル差分の伝送精度の初期値である1/4精度に「2」が乗算されて1/2の距離が加算される構成となっている。
【0125】
ph_mmvd_fullpel_only_flagの値が「1」である場合は、上述の動きベクトル差分の伝送精度の初期値に乗算される値が「4」から開始されるため、加算される動きベクトル差分の伝送精度は、常に整数精度となる構成となっている。
【0126】
なお、上記では、ph_mmvd_fullpel_only_flagによるMMVDの動きベクトルの修正距離の導出方法を説明したが、ph_mmvd_fullpel_only_flagが、上述したslice_mmvd_fullpel_only_flagに置換されてもよい。
【0127】
次に、
図14を参照して、MMVD部241A3により選定された動きベクトルに対して加算される動きベクトル差分の方向の導出方法を説明する。
【0128】
具体的には、復号されたmmvd_direction_idxの値に基づいて、動きベクトル差分の方向が導出される。
【0129】
例えば、
図14に示すように、mmvd_direction_idxの値が「0」から「3」の値によって、MmvdSign[x0][y0][0]の値及びMmvdSign[x0][y0][1]の値が導出される構成となっている。
【0130】
MMVDによる動きベクトル差分は、以下のように、MmvdDistance[x0][y0]、MmvdSign[x0][y0][0]及びMmvdSign[x0][y0][1]より導出されるMmvdOffset[x0][y0][0]及びMmvdOffset[x0][y0][1]として導出される。
【0131】
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)×MmvdSign[x0][y0][0]
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)×MmvdSign[x0][y0][1]
以上のように、MMVD部241A3により導出された動きベクトル差分、すなわち、MmvdOffsetが、選定された動きベクトルに加算されて動きベクトルが修正され、これにより動きベクトルの精度が向上して予測性能が向上することで、符号化性能の改善が期待される。
【0132】
上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0133】
なお、上述の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明は、これのみに限定されるものではなく、画像符号化装置100及び画像復号装置200の各機能を備えた画像符号化システム及び画像復号システムにも同様に適用できる。
【符号の説明】
【0134】
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
112、242…イントラ予測部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
241A…動きベクトル復号部
241A1…AMVP部
241A2…マージ部
241A3…MMVD部
241B…予測信号生成部