(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-07
(45)【発行日】2022-01-21
(54)【発明の名称】画像復号装置、画像符号化装置、プログラム及び画像処理システム
(51)【国際特許分類】
H04N 19/105 20140101AFI20220114BHJP
H04N 19/136 20140101ALI20220114BHJP
H04N 19/176 20140101ALI20220114BHJP
H04N 19/436 20140101ALI20220114BHJP
H04N 19/513 20140101ALI20220114BHJP
【FI】
H04N19/105
H04N19/136
H04N19/176
H04N19/436
H04N19/513
(21)【出願番号】P 2018245895
(22)【出願日】2018-12-27
【審査請求日】2021-01-27
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ特許業務法人
(74)【代理人】
【識別番号】110001106
【氏名又は名称】キュリーズ特許業務法人
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】河村 圭
(72)【発明者】
【氏名】内藤 整
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2019/0132606(US,A1)
【文献】Hongbin Liu et al.,CE9-related: Simplification of Decoder Side Motion Vector Derivation,Joint Video Experts Team (JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0105-v1,11th Meeting: Ljubljana, SI,2018年07月,pp.1-3
【文献】Chun-Chia Chen et al.,CE9-related: Simplified DMVR with reduced internal memory,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0098-v1,12th Meeting: Macao, CN,2018年09月,pp.1-4
【文献】Hongbin Liu et al.,CE9: Simplification of Decoder Side Motion Vector Derivation (Test 9.2.9),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0267-v1,12th Meeting: Macao, CN,2018年09月,pp.1-4
【文献】Kyohei Unno, Kei Kawamura and Sei Naito,CE9-related : DMVR with Coarse-to-Fine Search and Block Size Limit,Joint Video Experts Team (JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L382,12th Meeting: Macao, CN,2018年09月,pp.1-4
【文献】Kyohei Unno, Kei Kawamura and Sei Naito,CE9-related: Relaxation of block size restriction for DMVR,Joint Video Experts Team (JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0077,13th Meeting: Marrakech, MA,2019年01月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
符号化データを復号するように構成されている画像復号装置であって、
前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備え
、
前記洗練化部は、前記ブロックが第1閾値より大きい場合、前記ブロック内の一部の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする画像復号装置。
【請求項2】
前記洗練化部は、前記第1閾値より大きい前記ブロックにおいて、前記ブロック内部の前記第1閾値より小さな領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項
1に記載の画像復号装置。
【請求項3】
前記洗練化部は、前記第1閾値より大きい前記ブロックにおいて、前記ブロック中央の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項
1又は2に記載の画像復号装置。
【請求項4】
前記画像復号装置は、予め定めた処理単位ごとに並列処理を行い、
前記洗練化部は、前記並列処理単位の境界と重ならない領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする請求項
1~3のいずれか一項に記載の画像復号装置。
【請求項5】
前記洗練化部は、前記ブロックが第2閾値より大きい場合、前記ブロック内で前記動きベクトルの洗練化を行わないように構成されていることを特徴とする請求項
1~4のいずれか一項に記載の画像復号装置。
【請求項6】
前記画像復号装置は、予め定めた処理単位ごとに並列処理を行い、
前記第2閾値は、前記処理単位より小さいように構成されていることを特徴とする請求項
5に記載の画像復号装置。
【請求項7】
前記洗練化部は、前記ブロックの形状に応じて、前記ブロック内の全ての領域の画素を用いて前記動きベクトルを洗練化するか、前記ブロック内の一部の領域の画素を用いて前記動きベクトルを洗練化するか、前記動きベクトルを洗練化しないかのいずれかの処理を実行するように構成されていることを特徴とする請求項1に記載の画像復号装置。
【請求項8】
前記洗練化部は、前記ブロックの大きさが第1閾値以下である場合、前記ブロック内の全ての領域の画素を用いて、前記動きベクトル洗練化を行うように構成されていることを特徴とする請求項
7に記載の画像復号装置。
【請求項9】
前記ブロックは、予測ブロック又は符号化ブロックのいずれかであることを特徴とする請求項1~
8のいずれか一項に記載の画像復号装置。
【請求項10】
入力画像信号を符号化することによって符号化データを生成するように構成されている画像符号化装置であって、
対象フレームと参照フレームとの比較によって動きベクトルを探索する動きベクトル探索部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備え
、
前記洗練化部は、前記ブロックが第1閾値より大きい場合、前記ブロック内の一部の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とする画像符号化装置。
【請求項11】
コンピュータを、符号化データを復号するように構成されている画像復号装置として機能させるプログラムであって、
前記画像復号装置は、
前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、
前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備え
、
前記洗練化部は、前記ブロックが第1閾値より大きい場合、前記ブロック内の一部の領域の画素のみを用いて、前記動きベクトルの洗練化を行うように構成されていることを特徴とするプログラム。
【請求項12】
請求項1~
9のいずれか一項に記載の画像復号装置と、
請求項
10に記載の画像符号化装置とを備える画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像符号化装置、プログラム及び画像処理システムに関する。
【背景技術】
【0002】
非特許文献1及び非特許文献2には、Decoder-side motion vector refinement(DMVR:復号側動きベクトル洗練化) という技術に関して、実行時のメモリ使用量及び探索コスト算出量を削減するために、閾値以上のサイズのブロックではDMVRの適用を禁止する、或いは、閾値以上のサイズのブロックを小さなサブブロックに分割して、サブブロックごとにDMVRを実行する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】CE9-related: Simplified DMVR with reduced internal memory, JVET-L0098
【文献】CE9-related : DMVR with Coarse-to-Fine Search and Block Size Limit, JVET-L0382
【文献】CE9-related: Simplification of Decoder Side Motion Vector Derivation, JVET-K0105
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述の従来技術では、単純に大きなブロックでのDMVRの適用を禁止する場合、閾値によっては禁止しない場合と比較して符号化効率が大きく低下してしまうという問題点があった。
【0005】
また、上述の従来技術では、サブブロックごとにDMVRを実行する場合、サブブロックごとに動きベクトルの値が異なる可能性があり、ブロックノイズが発生しやすくなってしまうという問題点があった。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、符号化効率の低下を抑えつつ、DMVRの実行に必要なメモリや演算処理量や演算回路数を削減することができる画像復号装置、画像符号化装置、プログラム及び画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の特徴は、符号化データを復号するように構成されている画像復号装置であって、前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【0008】
本発明の第2の特徴は、入力画像信号を符号化することによって符号化データを生成するように構成されている画像符号化装置であって、対象フレームと参照フレームとの比較によって動きベクトルを探索する動きベクトル探索部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【0009】
本発明の第3の特徴は、コンピュータを、符号化データを復号するように構成されている画像復号装置として機能させるプログラムであって、前記画像復号装置は、前記符号化データから動きベクトルを取得するように構成されている動きベクトル復号部と、前記動きベクトルを用いるブロックの幅と高さの少なくともいずれかの情報を用いて、前記動きベクトルの洗練化に使用する領域を変更するように構成されている洗練化部とを備えることを要旨とする。
【0010】
本発明の第4の特徴は、上述の第1の特徴に記載されている画像復号装置と、上述の第2の特徴に記載されている画像符号化装置とを備える画像処理システムであることを要旨とする。
【発明の効果】
【0011】
本発明によれば、符号化効率の低下を抑えつつ、DMVRの実行に必要なメモリや演算処理量や演算回路数を削減することができる画像復号装置、画像符号化装置、プログラム及び画像処理システムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係る画像処理システム10の構成の一例を示す図である。
【
図2】一実施形態に係る画像処理システム10の画像符号化装置100の機能ブロックの一例について示す図である。
【
図3】一実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例について示す図である。
【
図4】一実施形態における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートである。
【
図5】一実施形態における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【
図6】一実施形態における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【
図7】一実施形態における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる動きベクトルの洗練化に使用する領域の形状を決定する手順の一例を示すフローチャートである。
【
図8】一実施形態に係る画像処理システム10の画像復号装置200の機能ブロックの一例について示す図である。
【
図9】一実施形態に係る画像復号装置200のインター予測部241の機能ブロックの一例について示す図である。
【
図10】一実施形態における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートである。
【
図11】一変更例における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートである。
【
図12】一変更例における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)において用いられるテーブルの一例を示す図である。
【
図13】一変更例における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートである。
【
図14】一変更例における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートである。
【
図15】一変更例における画像符号化装置100のインター予測部111の洗練化部111B(画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理における動きベクトルの洗練化に使用する領域の一例を示す図である。
【発明を実施するための形態】
【0013】
(第1実施形態)
以下、
図1~
図10を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。
図1は、本実施形態に係る実施形態に係る画像処理システム10を示す図である。
【0014】
図1に示すように、画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
【0015】
画像符号化装置100は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【0016】
ここで、かかる符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
【0017】
(画像符号化装置100)
以下、
図2を参照して、本実施形態に係る画像符号化装置100について説明する。
図2は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
【0018】
図2に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
【0019】
インター予測部111は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0020】
具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
【0021】
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【0022】
イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0023】
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
【0024】
ここで、参照ブロックは、予測対象のブロック(以下、対象ブロック)について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【0025】
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【0026】
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
【0027】
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
【0028】
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
【0029】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT;Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST;Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
【0030】
逆変換・逆量子化部132は、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0031】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0032】
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【0033】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【0034】
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【0035】
ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズ、予測ブロック(PU:Prediction Unit)サイズ、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
【0036】
インループフィルタ処理部150は、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
【0037】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0038】
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
【0039】
ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
【0040】
(インター予測部111)
以下、
図3を参照して、本実施形態に係る画像符号化装置100のインター予測部111について説明する。
図3は、本実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例について示す図である。
【0041】
図3に示すように、インター予測部111は、動きベクトル探索部111Aと、洗練化部111Bと、予測信号生成部111Cとを有する。
【0042】
インター予測部111は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【0043】
動きベクトル探索部111Aは、対象フレームと参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを探索するように構成されている。
【0044】
なお、動きベクトルの探索方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
【0045】
洗練化部111Bは、動きベクトルによって特定される参照位置を基準として探索範囲を設定し、探索範囲の中から所定コストが最も小さい修正参照位置を特定し、修正参照位置に基づいて動きベクトルを修正する洗練化処理を実行するように構成されている。
【0046】
また、洗練化部111Bは、所定条件が満たされる場合に、かかる洗練化処理を実行するように構成されていてもよい。
【0047】
ここで、所定条件は、動きベクトルがマージモードで符号化されているという条件を含んでもよい。なお、マージモードは、予測ブロックに隣接する符号化済みブロックの動きベクトルのインデックスのみが伝送されるモードである。また、所定条件は、動きベクトルがアフィン変換を用いた動き補償予測が適用されていないという条件を含んでもよい。
【0048】
本実施形態では、洗練化部111Bは、以下の手順で洗練化処理を行うように構成されている。
図4は、本実施形態における画像符号化装置100のインター予測部111の洗練化部111Bによって行われる洗練化処理の手順の一例を示すフローチャートである。
【0049】
図4に示すように、ステップS10において、洗練化部111Bは、上述の所定条件を満足しているか否かについて判定する。
【0050】
満足していると判定された場合、本手順は、ステップS11に進み、満足していないと判定された場合、本手順は、ステップS15へ進み、本処理を終了する。
【0051】
ステップS11において、洗練化部111Bは、現在処理しているブロックのサイズが予め定められている閾値TH1(第1閾値)以下であるか否かについて判定する。なお、以下では、ブロックの種類として予測ブロックのサイズに応じて処理を制御する手順について説明するが、符号化ブロックのサイズを用いても同様の制御が可能である。
【0052】
閾値TH1以下であると判定された場合、本手順は、ステップS13へ進み、閾値TH1より大きいと判定された場合、本手順は、ステップS12へ進む。
【0053】
ここで、閾値TH1は、例えば、ブロックの幅(水平方向の画素数)や、高さ(垂直方向の画素数)や、ブロック内の全画素数(幅と高さとの積)や、それらの組み合わせで定義されることができる。本実施形態では、ブロック内の全画素数で閾値を定義することとし、具体的には、閾値TH1を1024画素と設定した場合を例に以降の処理を説明する。
【0054】
ステップS12において、洗練化部111Bは、現在処理している予測ブロックのサイズが予め定められている閾値TH2(第2閾値)以下であるか否かについて判定する。
【0055】
閾値TH2以下であると判定された場合、本手順は、ステップS14に進み、閾値TH2より大きいと判定された場合、本手順は、ステップS15へ進む。
【0056】
ここで、閾値TH2は、閾値TH1と同様に、例えば、ブロックの幅(水平方向の画素数)や、高さ(垂直方向の画素数)や、ブロック内の全画素数(幅と高さの積)や、それらの組み合わせで定義されることができる。
【0057】
また、閾値TH2は、符号化処理及び復号処理の並列処理単位を考慮して設定されることもできる。例えば、予測ブロックの最大サイズが128×128画素で、並列処理単位が64×64画素である場合、閾値TH2を64×64画素或いは4096画素と設定することができる。
【0058】
ステップS13において、洗練化部111Bは、一般的な方法で動きベクトル洗練化処理を実行する。洗練化部111Bは、洗練化処理において動きベクトルの探索を行う際は、ブロック内の全領域の画素を用いて処理を行う。なお、動きベクトルの探索方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
【0059】
ここで、先に「全領域の画素」と記載したが、洗練化部111Bは、必ずしもブロック内の全ての画素を用いて洗練化処理を行う必要はない。例えば、洗練化部111Bは、ブロック内の偶数ライン上の画素のみを用いて洗練化処理を行うという演算量及び演算回路の削減手法と組み合わせることもできる。
【0060】
ステップS14において、洗練化部111Bは、現在処理している予測ブロック内の一部の領域の画素のみを用いて動きベクトル洗練化処理を実行する。
【0061】
ここで、洗練化部111Bは、動きベクトルの洗練化に使用する領域について、予め定めておけばよい。例えば、洗練化部111Bは、動きベクトルの洗練化に使用する領域として、
図5に示すように、ブロック中央の領域を用いてもよいし、
図6に示すように、ブロックの左上の領域を用いてもよい。
【0062】
なお、洗練化部111Bは、ステップS14の処理が実行され得るブロック形状(ブロックの幅と高さとの組み合わせ)毎に、どの領域を使用するか予め定義しておいてもよいし、領域を一意に決定可能な数式で表現してもよい。
【0063】
例えば、洗練化部111Bは、動きベクトルの洗練化に使用する領域を矩形領域とし、始点(矩形の左上の頂点)及び終点(矩形の右下の頂点)の座標をそれぞれ(x, y)の形で表現する場合、始点(ブロックの幅/2-16, ブロックの高さ/2-16)及び終点(ブロックの幅/2+16, ブロックの高さ/2+16)といったように数式で定義しておくこともできる。
【0064】
また、例えば、洗練化部111Bは、動きベクトルの洗練化に使用する領域をブロック中央とし、動きベクトルの洗練化に使用する領域の形状を、
図7に示すフローチャートに従って決定することもできる。
【0065】
図7に示すように、洗練化部111Bは、ステップS19において、洗練化に使用する領域に関する情報の初期値を設定する。
【0066】
洗練化に使用する領域に関する情報は、例えば、洗練化に使用する領域の左上の頂点の座標を示すオフセット値(水平方向のオフセット、垂直方向のオフセット)と、洗練化に使用する領域の大きさ(幅、高さ)の4種類の情報から構成される。なお、上述のオフセット値は、現在処理している予測ブロックの左上の頂点の座標からの相対座標を表す。
【0067】
洗練化に使用する領域を上述のように始点と終点の座標(x, y)で表現すると、始点(水平方向のオフセット, 垂直方向のオフセット)、終点(水平方向のオフセット+幅, 垂直方向のオフセット+高さ)となる。
【0068】
本実施形態は、水平方向と垂直方向のオフセットの初期値をそれぞれ0、幅と高さの初期値を現在処理している予測ブロックの幅と高さの値に、それぞれ設定する。初期値設定後、ステップS20へ進む。ステップS20において、かかる洗練化に使用する領域のサイズが閾値TH以下であるか否かについて判定する。
【0069】
閾値TH以下であると判定された場合、本手順は、ステップS24に進み、かかる洗練化に使用する領域のサイズを確定して終了し、閾値THより大きいと判定された場合、本手順は、ステップS21に進む。
【0070】
ステップS21において、洗練化部111Bは、かかる洗練化に使用する領域の高さと幅の大きさとを比較し、高さが幅以上の場合は、本手順は、ステップS22に進み、幅が高さより大きい場合は、本手順は、ステップS23に進む。
【0071】
ステップS22において、洗練化部111Bは、垂直方向のオフセットに高さの1/4の値を加算する。その後、かかる洗練化に使用する領域の高さを1/2の値で更新する。
【0072】
ステップS23において、洗練化部111Bは、水平方向のオフセットに幅の1/4の値を加算する。その後、かかる洗練化に使用する領域の幅を1/2の値で更新する。
【0073】
本手順は、ステップS22又はステップS23が完了した後、ステップS20へ戻り、洗練化部111Bは、再度、かかる洗練化に使用する領域の大きさを判定する。洗練化部111Bは、かかる洗練化に使用する領域のサイズが予め設定した閾値以下になるまで、以上の処理を繰り返すことで、かかる洗練化に使用する領域を決定することができる。
【0074】
なお、ステップS14において、かかる洗練化に使用する領域の大きさが閾値TH1以下になるように設定されていてもよい。
【0075】
なお、
図10に示す処理手順でも、
図4の処理と同様の処理結果を得ることができる。
【0076】
図10の処理では、初めにステップS30において、洗練化部111Bは、上述の所定条件を満たしており且つ現在処理している予測ブロックの大きさが閾値TH2以下であるかどうかについて判定する。
【0077】
これらの条件が全て満たされていると判定された場合、本手順は、ステップS31に進む。また、これらの条件のいずれか一つでも満たされていないと判定された場合、本手順は、ステップS15に進み処理を終了する。
【0078】
ステップS31では、現在処理している予測ブロックの大きさが閾値TH1以下であると判定された場合は、本手順は、ステップS13へ進み、そうでない場合は、本手順は、ステップS14へ進む。
【0079】
【0080】
予測信号生成部111Cは、動きベクトルに基づいて予測信号を生成するように構成されている。具体的には、予測信号生成部111Cは、動きベクトルが修正されない場合には、動きベクトル探索部111Aから入力される動きベクトルに基づいて予測信号を生成するように構成されている。一方で、予測信号生成部111Cは、動きベクトルが修正される場合には、洗練化部111Bから入力される修正済みの動きベクトルに基づいて予測信号を生成するように構成されている。
【0081】
(画像復号装置200)
以下、
図8を参照して、本実施形態に係る画像復号装置200について説明する。
図8は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0082】
図8に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
【0083】
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【0084】
ここで、例えば、復号は、符号化部140で行われるエントロピー符号化とは逆の手順のエントロピー復号である。
【0085】
復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
【0086】
なお、上述したように、制御データは、符号化ブロックサイズ、予測ブロックサイズ、変換ブロックサイズ等のサイズデータを含んでもよい。なお、制御データは、第2成分の予測サンプルの生成に用いる入力ソースを示す情報要素を含んでもよい。
【0087】
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0088】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0089】
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
【0090】
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
【0091】
インター予測部241は、インター予測部111と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0092】
具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
【0093】
イントラ予測部242は、イントラ予測部112と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0094】
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
【0095】
インループフィルタ処理部250は、インループフィルタ処理部150と同様に、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
【0096】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0097】
フレームバッファ260は、フレームバッファ160と同様に、インター予測部241で用いる参照フレームを蓄積するように構成されている。
【0098】
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
【0099】
(インター予測部241)
以下、
図9を参照して、本実施形態に係るインター予測部241について説明する。
図9は、本実施形態に係るインター予測部241の機能ブロックの一例について示す図である。
【0100】
図9に示すように、インター予測部241は、動きベクトル復号部241Aと、洗練化部241Bと、予測信号生成部241Cとを有する。
【0101】
インター予測部241は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
【0102】
動きベクトル復号部241Aは、画像符号化装置100から受信する制御データの復号によって動きベクトルを取得するように構成されている。
【0103】
洗練化部241Bは、洗練化部111Bと同様に、ブロックサイズに応じてブロック内の全領域又はブロック内の一部の領域の画素を用いて動きベクトルを修正する洗練化処理を実行するように構成されている。
【0104】
或いは、洗練化部241Bは、洗練化部111Bと同様に、ブロックサイズに応じて洗練化処理を実行しないことを決定して処理を終了するように構成されている。
【0105】
予測信号生成部241Cは、予測信号生成部111Cと同様に、動きベクトルに基づいて予測信号を生成するように構成されている。
【0106】
本実施形態に係る画像符号化装置100及び画像復号装置200によれば、予め定められている閾値TH1よりも大きなブロックにおいて、ブロック内の一部の領域の画素のみを用いて動きベクトル洗練化処理を実行する。
【0107】
すなわち、大きなブロックにおいて、洗練化処理に使用する領域を制限することで、制限がない場合と比較して、動きベクトルの探索に必要なメモリや演算回路を削減することができる。
【0108】
この時、動きベクトルの洗練化に使用する領域の大きさを閾値TH1以下になるように設定することで、動きベクトルの洗練化処理に必要なメモリや演算回路の最大値を、閾値TH1のブロックサイズを処理するために必要な量に制限することができる。
【0109】
このように、大きなブロックにおいても、使用する画素の領域を制限しつつ動きベクトルの洗練化処理を実行することで、符号化効率の低下を抑えつつ、メモリ量や演算量、演算回路を削減することができる。
【0110】
また、メモリ量等を削減するために単純に大きなブロックで洗練化処理を禁止する場合と比較して、より大きなブロックで洗練化処理を実行できるようになるため、符号化効率の向上が見込まれる。
【0111】
また、非特許文献3に開示されているようなライン単位でのサブサンプリングによる洗練化では、動きベクトルの探索時のコスト算出(例えば、絶対値差分和)に関する演算量は削減できるが、探索点が非整数画素位置である場合は、フィルタリングのためにブロック全体の画素値が必要となるため、参照画素を格納するためのメモリ量を削減することはできない。
【0112】
一方、本実施形態に係る画像符号化装置100及び画像復号装置200によれば、ブロック内の一部の領域の画素のみを用いて洗練化処理を行うため、コスト算出とメモリ量の両方を削減できる。
【0113】
なお、本実施形態に係る画像符号化装置100及び画像復号装置200について、上述のようなライン単位のサブサンプリングと組み合わせてもよい。この場合、コスト算出に係る演算量及び演算回路をさらに削減することができる。
【0114】
また、本実施形態に係る画像符号化装置100及び画像復号装置200によれば、予め定められている閾値TH2よりも大きなブロックにおいて、洗練化処理を行わない。
【0115】
すなわち、予測ブロックの最大サイズが、画像符号化装置100及び画像復号装置200における並列処理単位よりも大きかった場合に、閾値TH2を並列処理単位以下となるように設定することで、洗練化処理における処理単位における並列処理を担保することができる。
【0116】
(変更例1)
以下、
図11~
図13を参照して、本発明に係る変更例1について、上述の第1実施形態との相違点に着目して説明する。
【0117】
上述の第1実施形態では、
図4に示すように、洗練化部111B/241Bは、ブロックサイズに対する閾値TH1と閾値TH2を用いて、洗練化処理に用いる領域及び洗練化処理の実行要否について判定するように構成されていた。かかる処理は、例えば、上述のような閾値を用いた処理ではなく、予め各ブロック形状に対しての処理を規定しておくことでも、洗練化部111B/241Bは、同様の処理を実現できる。
【0118】
図11に、本変更例1における画像符号化装置100のインター予測部111の洗練化部111B(及び、画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートを示す。
【0119】
ステップS16において、洗練化部111B/241Bは、現在処理している予測ブロックの形状(例えば、ブロックの幅と高さとの組み合わせで定義)に基づいて、ステップS13、S14、S15のいずれに進むかについて判定する。
【0120】
かかる判定は、例えば、
図12に示すテーブルを予め定めておくことで実現され得る。また、ブロック内の一部の領域の画素のみを用いて洗練化処理を行う場合は、具体的にどの領域を用いるかということも予めテーブルで定義しておくことができる。
【0121】
また、上述の第1実施形態におけるブロックサイズの閾値を用いた処理と、本変更例1におけるブロック形状ごとの処理を組み合わせることもできる。
図13に、かかるその場合のフローチャートの一例について示す。
【0122】
図13に示すように、例えば、洗練化部111B/241Bは、ブロックサイズが閾値TH1以下のブロックに対しては、一律にブロックの全領域の画素を用いて洗練化処理を行い、ブロックサイズが閾値TH1より大きいブロックに対してのみ、ブロック形状によって処理を変えることもできる。
【0123】
(変更例2)
以下、
図14~
図15を参照して、本発明に係る変更例2について、上述の第1実施形態及び変更例1との相違点に着目して説明する。
【0124】
上述の第1実施形態では、
図4に示すように、洗練化部111B/241Bは、閾値TH2より大きなブロックに対しては洗練化処理を行わないこととしていた。上述のように、閾値TH2を符号化及び復号の並列処理単位以下にすることで、洗練化処理の並列処理を担保できる。
【0125】
これに対して、本変形例2では、洗練化部111B/241Bは、並列処理単位より大きなブロックにおいても、ブロック内の一部の領域の画素のみを用いて洗練化処理を行うように構成されている。
【0126】
図14に、本変更例2における画像符号化装置100のインター予測部111の洗練化部111B(及び、画像復号装置200のインター予測部241の洗練化部241B)によって行われる洗練化処理の手順の一例を示すフローチャートを示す。
【0127】
図14に示すように、洗練化部111B/241Bは、閾値TH1より大きなブロックでは、第1実施形態と同様に、ステップS14において、一部の領域のみを用いて洗練化処理を行う。
【0128】
ここで、第1実施形態において、ステップS14において洗練化処理に使用する領域は、例えば、ブロックの中央の領域である。
【0129】
一方、本変更例2では、洗練化部111B/241Bは、ステップS17において、閾値TH2より大きなブロックについても一部の領域のみを用いて洗練化処理を行う。
【0130】
図15に、予測ブロックの最大サイズを128×128画素とし、並列処理単位を64×64としたときの、ステップS17における洗練化処理における動きベクトルの洗練化に使用する領域の一例について示す。
【0131】
図15におけるブロック内の点線は、並列処理単位の境界を示している。
図15に示すように、洗練化処理に用いられる領域が並列処理単位の境界をまたがないように定義しておくことで、処理単位毎の並列処理を担保したまま、より大きなブロックで洗練化処理を実施することができる。動きベクトルの洗練化に使用する領域の形状は、
図15に示すように正方形でも長方形でもよい。
【0132】
また、上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0133】
なお、上記の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明はこれのみに限定されるものではなく、符号化装置および復号装置の各機能を備えた符号化/復号システムにも同様に適用できる。
【符号の説明】
【0134】
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
111A…動きベクトル探索部
111B、241B…洗練化部
111C、241C…予測信号生成部
112、242…イントラ予測部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
241A…動きベクトル復号部