(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-17
(45)【発行日】2024-04-25
(54)【発明の名称】符号化装置、復号装置、及びプログラム
(51)【国際特許分類】
H04N 19/117 20140101AFI20240418BHJP
H04N 19/167 20140101ALI20240418BHJP
H04N 19/176 20140101ALI20240418BHJP
H04N 19/86 20140101ALI20240418BHJP
【FI】
H04N19/117
H04N19/167
H04N19/176
H04N19/86
(21)【出願番号】P 2021543093
(86)(22)【出願日】2020-08-28
(86)【国際出願番号】 JP2020032783
(87)【国際公開番号】W WO2021040037
(87)【国際公開日】2021-03-04
【審査請求日】2023-07-28
(31)【優先権主張番号】P 2019157493
(32)【優先日】2019-08-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】岩村 俊輔
(72)【発明者】
【氏名】市ヶ谷 敦郎
(72)【発明者】
【氏名】根本 慎平
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2019/039322(WO,A1)
【文献】国際公開第2018/123444(WO,A1)
【文献】Shunsuke Iwamura, Shimpei Nemoto and Atsuro Ichigaya,Non-CE5: Boundary strength derivation of deblocking filter for transform-skipped block,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0656,15th Meeting: Gothenburg, SE,2019年06月,pp.1-6
【文献】Xuewei Meng et al.,AHG18/Non-CE5: Deblocking for TPM and BCW,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0269-v2,16th Meeting: Geneva, CH,2019年10月,pp.1-7
【文献】Shunsuke Iwamura, Shimpei Nemoto and Atsuro Ichigaya,[AHG18][non-CE5] Boundary strength derivation for CUs with TPM,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0602r1,16th Meeting: Geneva, CH,2019年10月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像を分割して得たブロック単位で符号化を行う符号化装置であって、
符号化対象ブロックを分割して得た複数の分割領域のそれぞれについ
て領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して前記符号化対象ブロックの予測ブロックを生成する合成予測部と、
前記符号化対象ブロックと前記予測ブロックとの差を表す予測残差に対して変換処理及び量子化処理を行う変換・量子化部と、
前記変換・量子化部により得た変換係数に対して逆量子化処理及び逆変換処理を行って前記予測残差を復元する逆量子化・逆変換部と、
前記復元した予測残差と前記予測ブロックとを合成して前記符号化対象ブロックを復元する合成部と、
前記復元した符号化対象ブロックと当該符号化対象ブロックに隣接する隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタと、
前記合成予測部が前記重み付き平均により合成した合成領域の位置に基づいて、前記デブロッキングフィルタを制御するフィルタ制御部と、を備えることを特徴とする符号化装置。
【請求項2】
前記デブロッキングフィルタは、前記ブロック境界を跨ぐ2つのサブブロックを1単位として前記フィルタ処理を行い、
前記フィルタ制御部は、前記2つのサブブロックのサブブロック境界が前記合成領域に隣接する場合、前記サブブロック境界に対する前記フィルタ処理を行うように前記デブロッキングフィルタを制御することを特徴とする請求項1に記載の符号化装置。
【請求項3】
前記フィルタ制御部は、前記サブブロック境界が前記合成領域に隣接しない場合、前記2つのサブブロックのそれぞれにおける非ゼロの変換係数の有無、及び前記2つのサブブロックのそれぞれの動きベクトルに関する情報、の少なくとも一方に基づいて、前記サブブロック境界に対する前記フィルタ処理を行うか否かを制御することを特徴とする請求項2に記載の符号化装置。
【請求項4】
画像を分割して得たブロック単位で復号を行う復号装置であって、
符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部と、
前記エントロピー復号部が出力する前記変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部と、
前記復号対象ブロックを分割して得た複数の分割領域のそれぞれについ
て領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して前記復号対象ブロックの予測ブロックを生成する合成予測部と、
前記復元した予測残差と前記予測ブロックとを合成して前記復号対象ブロックを復元する合成部と、
前記復元した復号対象ブロックと当該
復号対象ブロックに隣接する隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタと、
前記合成予測部が前記重み付き平均により合成した合成領域の位置に基づいて、前記デブロッキングフィルタを制御するフィルタ制御部と、を備えることを特徴とする復号装置。
【請求項5】
前記デブロッキングフィルタは、前記ブロック境界を跨ぐ2つのサブブロックを1単位として前記フィルタ処理を行い、
前記フィルタ制御部は、前記2つのサブブロックのサブブロック境界が前記合成領域に隣接する場合、前記サブブロック境界に対する前記フィルタ処理を行うように前記デブロッキングフィルタを制御することを特徴とする請求項4に記載の復号装置。
【請求項6】
前記フィルタ制御部は、前記サブブロック境界が前記合成領域に隣接しない場合、前記2つのサブブロックのそれぞれにおける非ゼロの変換係数の有無、及び前記2つのサブブロックのそれぞれの動きベクトルに関する情報、の少なくとも一方に基づいて、前記サブブロック境界に対する前記フィルタ処理を行うか否かを制御することを特徴とする請求項5に記載の復号装置。
【請求項7】
コンピュータを請求項1に記載の符号化装置として機能させることを特徴とするプログラム。
【請求項8】
コンピュータを請求項4に記載の復号装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化装置、復号装置、及びプログラムに関する。
【背景技術】
【0002】
HEVC(High Efficiency Video Coding)、及び次世代の符号化方式であるVVC(Versatile Video Coding)では、符号化ループ内フィルタとしてデブロッキングフィルタが採用されている(例えば、非特許文献1参照)。デブロッキングフィルタは、ブロック単位で符号化処理を行うときのブロックのブロック境界の歪みを抑制するためのループ内フィルタである。
【0003】
デブロッキングフィルタを制御するフィルタ制御部は、隣り合う2つのブロックのうち少なくとも一方にイントラ予測が適用される場合、当該2つのブロックのブロック境界に対するデブロッキングフィルタを適用する。
【0004】
一方、フィルタ制御部は、隣り合う2つのブロックいずれにもインター予測が適用される場合、当該2つのブロックのそれぞれの動きベクトルの値及び参照先(参照画像)の一致度等に応じて当該2つのブロックの連続性を判定し、当該2つのブロックのブロック境界にデブロッキングフィルタを適用するか否かを決定する。
【0005】
一方、VVCでは、インター予測の一種として、三角形合成予測(triangle merge mode)が採用される予定である。三角形合成予測では、符号化装置は、符号化対象ブロックを三角形領域に二分割し、2つの動きベクトルを用いて2つの三角形領域を予測して2つの三角形予測領域を生成する。そして、生成した複数の三角形予測領域の境界の領域を重み付き平均により合成することにより、符号化対象ブロックの予測ブロックを生成する。
【0006】
符号化対象ブロックに用いた動きベクトルは隣接ブロックの符号化時に再利用される場合があるため、符号化装置は、三角形合成予測に用いた動きベクトルに関する情報、すなわち、参照方向を示す情報、参照先フレームを示す情報、動きベクトルの本数(単予測か双予測かを示す、及び動きベクトルの値を動きベクトルストレージに格納する。
【0007】
具体的には、符号化装置は、符号化対象ブロックを4×4画素の領域(以下、「4×4ユニット」と呼ぶ)に分割し、重み付き平均により合成した合成領域に属する4×4ユニットについては、前記2つの動きベクトルの参照方向が異なる場合には双予測が適用されたとして、2つの動きベクトルに関する情報を動きベクトルストレージに格納する。一方、前記2つの動きベクトルの参照方向が等しい場合には、単予測が適用されたとして、前記2つの動きベクトルのうち、あらかじめ規定した一方の動きベクトルに関する情報を動きベクトルストレージに格納する。一方、合成領域以外の領域に属する4×4ユニットについては、単予測が適用されたとして、当該領域の予測画像生成に用いた1つの動きベクトルに関する情報を動きベクトルストレージに格納する。
【先行技術文献】
【非特許文献】
【0008】
【文献】Recommendation ITU-T H.265,(12/2016),“High efficiency video coding”,International Telecommunication Union
【発明の開示】
【0009】
従来のデブロッキングフィルタ制御における連続性判定においては、隣り合う2つのブロックいずれにもインター予測が適用されている場合、ブロック間の連続性を当該2つのブロックの動きベクトルに関する情報に基づいて判定している。
【0010】
しかしながら、当該2つのブロックの少なくとも一方に三角形合成予測が適用されている場合、三角形合成予測による合成領域については、重み付き平均がされている。従来の連続性判定では、このような重み付き平均を考慮していないため、2つのブロックのブロック境界に不連続性が生じる場合にもデブロッキングフィルタが非適用となり、視覚的な劣化が生じてしまう問題がある。
【0011】
そこで、本発明は、デブロッキングフィルタを適切に制御することで画質や符号化効率を向上させる符号化装置、復号装置、及びプログラムを提供する。
【0012】
第1の態様に係る符号化装置は、画像を分割して得たブロック単位で符号化を行う符号化装置であって、符号化対象ブロックを分割して得た複数の分割領域のそれぞれについて動きベクトルを用いて領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して前記符号化対象ブロックの予測ブロックを生成する合成予測部と、前記符号化対象ブロックと前記予測ブロックとの差を表す予測残差に対して変換処理及び量子化処理を行う変換・量子化部と、前記変換・量子化部により得た変換係数に対して逆量子化処理及び逆変換処理を行って前記予測残差を復元する逆量子化・逆変換部と、前記復元した予測残差と前記予測ブロックとを合成して前記符号化対象ブロックを復元する合成部と、前記復元した符号化対象ブロックと隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタと、前記合成予測部が前記重み付き平均により合成した合成領域の位置に基づいて、前記デブロッキングフィルタを制御するフィルタ制御部とを備える。
【0013】
第2の態様に係る復号装置は、画像を分割して得たブロック単位で復号を行う復号装置であって、符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部と、前記エントロピー復号部が出力する前記変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部と、前記復号対象ブロックを分割して得た複数の分割領域のそれぞれについて動きベクトルを用いて領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して前記復号対象ブロックの予測ブロックを生成する合成予測部と、前記復元した予測残差と前記予測ブロックとを合成して前記復号対象ブロックを復元する合成部と、前記復元した復号対象ブロックと隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタと、前記合成予測部が前記重み付き平均により合成した合成領域の位置に基づいて、前記デブロッキングフィルタを制御するフィルタ制御部とを備える。
【0014】
第3の態様に係るプログラムは、コンピュータを第1の態様に係る符号化装置として機能させることを要旨とする。
【0015】
第4の態様に係るプログラムは、コンピュータを第2の態様に係る復号装置として機能させることを要旨とする。
【0016】
本発明によれば、デブロッキングフィルタを適切に制御することで画質や符号化効率を向上させる符号化装置、復号装置、及びプログラムを提供できる。
【図面の簡単な説明】
【0017】
【
図1】実施形態に係る符号化装置の構成を示す図である。
【
図2】実施形態に係る合成予測部の動作を示す図である。
【
図3】実施形態に係る合成予測部の動作を示す図である。
【
図4】実施形態に係る合成予測部の動作を示す図である。
【
図5】実施形態に係る合成予測部の動作を示す図である。
【
図6】実施形態に係るデブロッキングフィルタの動作例を示す図である。
【
図7】実施形態に係るフィルタ制御部の動作の具体例を説明するための図である。
【
図8】実施形態に係るデブロッキングフィルタ及びフィルタ制御部の動作の具体例を示す図である。
【
図9】実施形態に係る復号装置の構成を示す図である。
【
図10】実施形態に係るフィルタ制御部の動作フロー例を示す図である。
【発明を実施するための形態】
【0018】
図面を参照して、実施形態に係る符号化装置及び復号装置について説明する。実施形態に係る符号化装置及び復号装置は、MPEGに代表される動画像の符号化及び復号をそれぞれ行う。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0019】
<符号化装置>
まず、本実施形態に係る符号化装置の構成について説明する。
図1は、本実施形態に係る符号化装置1の構成を示す図である。符号化装置1は、画像を分割して得たブロック単位で符号化を行う装置である。
【0020】
図1に示すように、符号化装置1は、ブロック分割部100と、減算部110と、変換・量子化部120と、エントロピー符号化部130と、逆量子化・逆変換部140と、合成部150と、デブロッキングフィルタ160と、フィルタ制御部161と、メモリ170と、予測部180とを有する。
【0021】
ブロック分割部100は、動画像を構成するフレーム(或いはピクチャ)単位の入力画像を複数の画像ブロックに分割し、分割により得た画像ブロックを減算部110に出力する。画像ブロックのサイズは、例えば32×32画素、16×16画素、8×8画素、又は4×4画素等である。画像ブロックの形状は正方形に限らず矩形(非正方形)であってもよい。画像ブロックは、符号化装置1が符号化を行う単位(符号化対象ブロック)であり、且つ復号装置が復号を行う単位(復号対象ブロック)である。このような画像ブロックはCU(Coding Unit)と呼ばれることがある。
【0022】
ブロック分割部100は、輝度信号と色差信号とに対してブロック分割を行う。以下において、ブロック分割の形状が輝度信号と色差信号とで同じである場合について主として説明するが、輝度信号と色差信号とで分割を独立に制御可能であってもよい。輝度ブロック及び色差ブロックを特に区別しないときは単に符号化対象ブロックと呼ぶ。
【0023】
減算部110は、ブロック分割部100から出力される符号化対象ブロックと、符号化対象ブロックを予測部180が予測して得た予測ブロックとの差分(誤差)を表す予測残差を算出する。減算部110は、ブロックの各画素値から予測ブロックの各画素値を減算することにより予測残差を算出し、算出した予測残差を変換・量子化部120に出力する。
【0024】
変換・量子化部120は、ブロック単位で変換処理及び量子化処理を行う。変換・量子化部120は、変換部121と、量子化部122とを有する。
【0025】
変換部121は、減算部110から出力される予測残差に対して変換処理を行って周波数成分ごとの変換係数を算出し、算出した変換係数を量子化部122に出力する。変換処理(変換)とは、画素領域の信号を周波数領域の信号に変換する処理をいい、例えば、離散コサイン変換(DCT)や離散サイン変換(DST)、カルーネンレーブ変換(KLT)、及びそれらを整数化した変換等をいう。
【0026】
量子化部122は、変換部121から出力される変換係数を量子化パラメータ(Qp)及び量子化行列を用いて量子化し、量子化した変換係数をエントロピー符号化部130及び逆量子化・逆変換部140に出力する。なお、量子化パラメータ(Qp)は、ブロック内の各変換係数に対して共通して適用されるパラメータであって、量子化の粗さを定めるパラメータである。量子化行列は、各変換係数を量子化する際の量子化値を要素として有する行列である。
【0027】
エントロピー符号化部130は、量子化部122から出力される変換係数に対してエントロピー符号化を行い、データ圧縮を行って符号化ストリーム(ビットストリーム)を生成し、符号化ストリームを符号化装置1の外部に出力する。エントロピー符号化には、ハフマン符号やCABAC(Context-based Adaptive Binary Arithmetic Coding;コンテキスト適応型2値算術符号)等を用いることができる。なお、エントロピー符号化部130は、ブロック分割部100から各符号化対象ブロックのサイズ・形状等の情報を取得し、予測部180から予測に関する情報(例えば、予測モードや動きベクトルの情報)を取得し、これらの情報の符号化も行う。
【0028】
逆量子化・逆変換部140は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部140は、逆量子化部141と、逆変換部142とを有する。
【0029】
逆量子化部141は、量子化部122が行う量子化処理に対応する逆量子化処理を行う。具体的には、逆量子化部141は、量子化部122から出力される変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより変換係数を復元し、復元した変換係数を逆変換部142に出力する。
【0030】
逆変換部142は、変換部121が行う変換処理に対応する逆変換処理を行う。例えば、変換部121がDCTを行った場合には、逆変換部142は逆DCTを行う。逆変換部142は、逆量子化部141から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差である復元予測残差を合成部150に出力する。
【0031】
合成部150は、逆変換部142から出力される復元予測残差を、予測部180から出力される予測ブロックと画素単位で合成する。合成部150は、復元予測残差の各画素値と予測ブロックの各画素値を加算して符号化対象ブロックを復元(復号)し、復元したブロック単位の復号画像(復元ブロック)をデブロッキングフィルタ160に出力する。
【0032】
デブロッキングフィルタ160は、復元ブロックと当該復元ブロックに隣接する隣接ブロックとからなる2つのブロック(以下、「対象ブロック対」と呼ぶ)のブロック境界に対するフィルタ処理を行い、フィルタ処理後の復元ブロックをメモリ170に出力する。フィルタ処理は、ブロック単位の処理に起因する信号劣化を軽減するための処理であって、対象ブロック対のブロック境界における信号のギャップを平滑化するフィルタ処理である。デブロッキングフィルタ160は、一般的に信号の変動を緩やかにするローパスフィルタとして構成されている。
【0033】
フィルタ制御部161は、デブロッキングフィルタ160を制御する。具体的には、フィルタ制御部161は、対象ブロック対のブロック境界に対するフィルタ処理を行うか否かを示す境界強度(Bs:Boundary strength)、及びデブロッキングフィルタ160のフィルタ強度を制御する。境界強度Bsとは、フィルタ処理を適用するか否か、及びそのフィルタ処理の種類を決定するためのパラメータをいう。なお、フィルタ処理を行うか否かの制御は、境界強度Bsを1以上とするか又はゼロとするかの制御とみなすことができる。
【0034】
フィルタ制御部161は、対象ブロック対の境界近傍領域における画素値の変動や、予測モード、量子化パラメータ、動き補償予測(インター予測)に用いる動きベクトルの値に基づいて、デブロッキングフィルタ160を制御する。フィルタ制御部161の動作の詳細については後述する。
【0035】
メモリ170は、デブロッキングフィルタ160から出力される復元ブロックをフレーム単位で復号画像として蓄積する。メモリ170は、記憶している復号画像を予測部180に出力する。
【0036】
予測部180は、ブロック単位で予測処理を行うことにより、符号化対象ブロックに対応する予測ブロックを生成し、生成した予測ブロックを減算部110及び合成部150に出力する。予測部180は、インター予測部181と、イントラ予測部182と、切替部183とを有する。
【0037】
インター予測部181は、メモリ170に記憶された復号画像を参照画像として用いて、ブロックマッチング等の手法により動きベクトルを算出し、符号化対象ブロックを予測してインター予測ブロックを生成し、生成したインター予測ブロックを切替部183に出力する。インター予測部181は、複数の参照画像を用いるインター予測(典型的には、双予測)や、1つの参照画像を用いるインター予測(片方向予測)の中から最適なインター予測方法を選択し、選択したインター予測方法を用いてインター予測を行う。インター予測部181は、インター予測に関する情報(動きベクトル等)をエントロピー符号化部130及びフィルタ制御部161に出力する。
【0038】
本実施形態において、インター予測部181は、三角形合成予測を行う合成予測部181aを有する。合成予測部181aは、符号化対象ブロックを三角形領域に二分割し、2つの動きベクトルを用いて2つの三角形領域を予測して2つの三角形予測領域(2つの領域予測画像)を生成し、生成した2つの三角形予測領域の境界の領域を重み付き平均により合成することにより、符号化対象ブロックの予測ブロックを生成する。三角形合成予測の詳細については後述する。
【0039】
イントラ予測部182は、複数のイントラ予測モードの中から、符号化対象ブロックに適用する最適なイントラ予測モードを選択し、選択したイントラ予測モードを用いて符号化対象ブロックを予測する。イントラ予測部182は、メモリ170に記憶された復号画像のうち、符号化対象ブロックに隣接する復号済み画素値を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部183に出力する。また、イントラ予測部182は、選択したイントラ予測モードに関する情報をエントロピー符号化部130及びフィルタ制御部161に出力する。
【0040】
切替部183は、インター予測部181から出力されるインター予測ブロックとイントラ予測部182から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを減算部110及び合成部150に出力する。
【0041】
このように、本実施形態に係る符号化装置1は、符号化対象ブロックを分割して得た複数の分割領域のそれぞれについて動きベクトルを用いて領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して符号化対象ブロックの予測ブロックを生成する合成予測部181aと、符号化対象ブロックと予測ブロックとの差を表す予測残差に対して変換処理及び量子化処理を行う変換・量子化部120と、変換・量子化部により得た変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部140と、復元した予測残差と予測ブロックとを合成して符号化対象ブロックを復元する合成部150と、復元した符号化対象ブロックと隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタ160とを有する。
【0042】
次に、本実施形態に係る合成予測部181aの動作について説明する。
図2乃至
図5は、本実施形態に係る合成予測部181aの動作を示す図である。
【0043】
図2に示すように、第1に、合成予測部181aは、符号化対象ブロックを2つの三角形領域(Partition 1、Partition 2)に分割する。分割方法には、
図2(a)に示す方法と
図2(b)に示す方法との2種類がある。
図2(a)に示す方法では、合成予測部181aは、符号化対象ブロックの左上の頂天位置及び右下の頂天位置を通る分割線で分割する。
図2(b)に示す方法では、合成予測部181aは、符号化対象ブロックの右上の頂天位置及び左下の頂天位置を通る分割線で分割する。
【0044】
第2に、合成予測部181aは、動きベクトルの参照元を候補として、各三角形領域について動きベクトルを設定する。合成予測部181aは、
図3の1~7に示す7種類の候補の中から規定の優先順位に並べ、上位5つの動きベクトルの中から三角形領域ごとに1種類の動きベクトルを選択する。
【0045】
第3に、合成予測部181aは、各三角形領域の動きベクトルを用いて三角形領域ごとの動き補償予測を行った後、三角形領域ごとの予測画像(以下、「領域予測画像」と呼ぶ)を合成することで、符号化対象ブロックの予測画像(予測ブロック)を生成する。この際、
図4に示すように、2つの領域予測画像の境界については、重み付き平均(加重平均)により滑らかに合成することにより、2つの領域予測画像の境界の不連続性を抑制する。
【0046】
具体的には、三角形合成予測における予測画像は、符号化対象ブロックにおけるPartition 1に適用する動きベクトルにより生成される予測画像1(
図4の“P
1”)と、Partition 2に適用する動きベクトルにより生成される予測画像2(
図4の“P
2”)とを、符号化対象ブロックのブロックサイズやブロック形状に応じた重みマップ(Weight map)を用いて加重平均により合成する。なお、
図4において、“1”乃至“7”のいずれかの重み係数が設定される画素からなる領域は、重み付き平均により合成される合成領域である。
【0047】
なお、符号化対象ブロック内を4×4画素の領域(4×4ユニット)に分割し、4×4ユニットごとに合成領域か否か判定してもよい。各4×4ユニットが合成領域か否かは、当該4×4ユニット内の画素に設定する重み係数に少なくとも“1”乃至“7”のいずれかが含まれていた場合には合成領域と判定してもよいし、当該4×4ユニットの画素に設定する重み係数に“0”または“8”が含まれていない場合に合成領域と判定してもよい。
【0048】
第4に、合成予測部181aは、三角形合成予測に用いた動きベクトルを動きベクトルストレージに格納する。具体的には、符号化対象ブロックに用いた動きベクトルは、隣接ブロックの符号化時に再利用される場合があり、その動きベクトル再利用のために動きベクトルストレージへの格納を行う。動きベクトルストレージは、合成予測部181a又はメモリ170に設けられる。
【0049】
具体的には、合成予測部181aは、符号化対象ブロックを4×4画素の領域に分割し、4×4ユニットごとに動きベクトルストレージを準備する。合成予測部181aは、動きベクトルストレージに対して、対応する動きベクトルに関する情報、すなわち、動きベクトルの参照方向、動きベクトルの参照先フレームを示す情報、動きベクトルの本数(単予測か双予測かを示す)、及び動きベクトルの値などを格納する。
【0050】
図5に示すように、符号化対象ブロックのPartition 1(領域1)及びPartition 2(領域2)の境界の領域、すなわち、符号化対象ブロックの対角線付近の領域は、重み付き平均により合成された合成領域である。合成予測部181aは、このような合成領域に含まれる各4×4ユニットについては、Partition 1及びPartition 2に適用した動きベクトルの参照方向が異なる場合には、双予測として、Partition 1で用いた動きベクトルとPartition 2で用いた動きベクトルとの2つの動きベクトルに関する情報を動きベクトルストレージに格納する。一方、Partition 1及びPartition 2に適用した動きベクトルの参照方向が等しい場合には、単予測として、Partition 2で用いた動きベクトルに関する情報を動きベクトルストレージに格納する。
【0051】
一方、合成予測部181aは、Partition 1において重み付き平均が適用されていない領域に含まれる各4×4ユニットについて、単予測として、Partition 1で用いた1つの動きベクトルに関する情報を動きベクトルストレージに格納する。また、合成予測部181aは、Partition 2において重み付き平均が適用されていない領域に含まれる各4×4ユニットについて、単予測として、Partition 2で用いた1つの動きベクトルに関する情報を動きベクトルストレージに格納する。
【0052】
なお、
図4及び
図5においては、対角に領域を分割した場合について記載しており、逆対角に分割した場合には、左右に線対称に反転するように動きベクトルストレージに動きベクトル情報を格納する。
【0053】
次に、本実施形態に係るデブロッキングフィルタ160及びフィルタ制御部161の動作について説明する。
図6は、本実施形態に係るデブロッキングフィルタ160の動作例を示す図である。
【0054】
図6に示す例では、デブロッキングフィルタ160は、8×8画素のブロックごとのブロック境界を対象としてフィルタ処理を行う。また、デブロッキングフィルタ160は、4行又は4列を単位としてフィルタ処理を行う。
図6に示すブロックP及びQは、デブロッキングフィルタ160のフィルタ処理の1単位であり、ブロックサイズが4×4画素である一例を示している。ブロックP及びQのそれぞれは、サブブロックと呼ばれてもよい。
【0055】
フィルタ制御部161は、例えば下記の表1に基づいて境界強度Bsを求める。本実施形態では、境界強度Bsの値は0,1,2のいずれかとする。なお、輝度信号と色差信号のブロックに対する境界強度をそれぞれ算出してもよいし、輝度信号と色差信号のブロックの境界強度の組み合わせを一つの境界強度として判定してもよい。
【0056】
【0057】
図6及び表1に示すように、フィルタ制御部161は、ブロックP及びQの少なくとも一方にイントラ予測が適用されている場合、Bsの値を2とする。
【0058】
一方、フィルタ制御部161は、ブロックP及びQの両方にインター予測が適用されており、且つ少なくとも以下の(a)乃至(d)の中の1つの条件を満たす場合には、Bs値を1とし、その他の場合には、Bs値を0とする。
【0059】
(a)ブロックP及びQの少なくとも一方のブロックが三角形合成予測の合成領域に属すること。(言い換えると、ブロックP及びQの境界が三角形合成予測の合成領域に隣接すること。)
(b)ブロックP及びQの少なくとも一方が有意な変換係数(すなわち、非ゼロ変換係数)を含むこと。
【0060】
(c)ブロックP及びQの動きベクトルの数又は参照画像が異なること。
【0061】
(d)ブロックP及びQの動きベクトルの差の絶対値が閾値(例えば1画素)以上であること。
【0062】
ただし、フィルタ制御部161は、表1に示した条件を適用する優先順位については、結果として判定されるBs値が異ならない範囲で変更可能である。
【0063】
フィルタ制御部161は、境界強度Bsの値が0の場合にはフィルタ処理を行わないようデブロッキングフィルタ160を制御する。以下、
図6に示す垂直ブロック境界を例に説明する。
【0064】
フィルタ制御部161は、境界強度Bsの値が1又は2の場合には、次式(1)を満たす場合にのみ、フィルタ処理を行うようデブロッキングフィルタ160を制御してもよい。
【0065】
【0066】
なお、フィルタ制御部161は、フィルタ処理を行う場合、以下の条件式(2)~(7)を全て満たす場合に強いフィルタを適用し、それ以外の場合に弱いフィルタを適用してもよい。
【0067】
【0068】
但し、閾値β及びtCの値は、隣接するブロックPとブロックQの量子化パラメータの平均値Qavに応じて変わる。
【0069】
このように、本実施形態に係るフィルタ制御部161は、上記(a)のように、合成予測部181aが重み付き平均により合成した合成領域の位置に基づいてデブロッキングフィルタを制御する。具体的には、フィルタ制御部161は、ブロックP及びQ(2つのサブブロック)のブロック境界が合成領域に隣接する場合、このブロック境界に対するフィルタ処理を行うようにデブロッキングフィルタを制御する。
【0070】
このように、三角形合成予測の合成領域の位置を考慮してブロック間の連続性判定を行うことにより、合成領域に起因するブロック境界の不連続性をデブロッキングフィルタ処理により抑制可能になり、視覚的な劣化を抑制できる。
【0071】
次に、本実施形態に係るフィルタ制御部161の動作の具体例について説明する。
図7は、本実施形態に係るフィルタ制御部161の動作の具体例を説明するための図である。
【0072】
図7に示すように、ブロックP及びQに適用した予測がどちらも双予測であるものとする。また、ブロックP及びQのいずれも非ゼロ変換係数を含まないものとする。
【0073】
ブロックPが双予測に用いる2つの動きベクトルは、P0及びP1である。ブロックQが双予測に用いる2つの動きベクトルは、Q0及びQ1である。P0及びQ0の参照先が同一のフレームであって、かつP1及びQ1の参照先が同一のフレームである。また、P0とQ0の動きベクトルの値の差が閾値以下であり、且つP1とQ1の動きベクトルの値の差が閾値以下である。
【0074】
このような場合、上記の(b)乃至(d)のいずれの条件も満たされないことになる。しかしながら、ブロックP及びQの少なくとも一方が三角形合成予測の合成領域である場合、ブロックP及びQの境界に不連続性が生じる可能性が高い。
【0075】
本実施形態においては、上記の(a)の条件を新たに導入している。このため、ブロックP及びQの少なくとも一方が三角形合成予測の合成領域である場合、ブロックP及びQの境界に対するフィルタ処理を行うよう制御できるため、ブロックP及びQの境界の不連続性を抑制できる。
【0076】
次に、本実施形態に係るデブロッキングフィルタ160及びフィルタ制御部161の動作の具体例について説明する。
図8は、本実施形態に係るデブロッキングフィルタ160及びフィルタ制御部161の動作の具体例を示す図である。
【0077】
図8に示すように、フィルタ制御部161は、符号化対象ブロックと当該符号化対象ブロックに隣接する隣接ブロックとのブロック境界について、このブロック境界を跨ぐ2つのサブブロック(ブロックP及びQ)を1単位としてフィルタ処理を行う。ここで、フィルタ制御部161は、2つのサブブロック(ブロックP及びQ)のサブブロック境界が三角形合成予測の合成領域に隣接する場合、このサブブロック境界に対するフィルタ処理を行うようにデブロッキングフィルタ160を制御する。
【0078】
具体的には、フィルタ制御部161は、2つのサブブロック(ブロックP及びQ)のうち少なくとも一方に三角形合成予測が適用されている場合、動きベクトルストレージを参照し、サブブロックに対応する位置の4×4ユニットの動きベクトル情報を取得し、2つの動きベクトルが格納されている(すなわち、双予測)か否かを判定する。2つの動きベクトルが格納されている場合、このサブブロックは、三角形合成予測の合成領域に属することになる。このような場合、フィルタ制御部161は、2つのサブブロック(ブロックP及びQ)のサブブロック境界に対するフィルタ処理を行うようにデブロッキングフィルタ160を制御する。
【0079】
一方、フィルタ制御部161は、取得した動きベクトル情報において、サブブロックに対応する位置の4×4ユニットの動きベクトル情報に1つの動きベクトルが格納されている(すなわち、単予測)場合、このサブブロックが合成領域に属しているか否かを、サブブロック内の各画素に設定した重み係数に基づいて判定する。
【0080】
具体的には、当該サブブロックに含まれる画素に設定する重み係数に“0”または“8”が含まれていない場合に合成領域と判定し、“0”または“8”が含まれている場合には、合成領域でないと判定する。重み係数は符号化対象ブロックの大きさ及び形状、三角形領域の分割形状に基づいて一意に決定可能であるため、システムがあらかじめ符号化対象ブロックの大きさ及び形状、三角形領域の分割形状ごとの合成領域判定テーブルを用意しておき、これを参照することで判定を行ってもよい。
【0081】
前述のように、前記取得した動きベクトル情報が単予測であった場合にも、サブブロックが合成領域に含まれると判定された場合には、フィルタ制御部161は、2つのサブブロック(ブロックP及びQ)のサブブロック境界に対するフィルタ処理を行うようにデブロッキングフィルタ160を制御する。一方、前記取得した動きベクトル情報が単予測であって、サブブロックが合成領域に含まれないと判定された場合には、フィルタ制御部161は当該2つのサブブロックのそれぞれにおける非ゼロの変換係数の有無、及び当該2つのサブブロックのそれぞれの動きベクトルに関する情報の少なくとも一方に基づいて、サブブロック境界に対するフィルタ処理を行うか否かを制御する。
【0082】
一方、フィルタ制御部161は、2つのサブブロック(ブロックP及びQ)のサブブロック境界が三角形合成予測の合成領域に隣接しない場合、当該2つのサブブロックのそれぞれにおける非ゼロの変換係数の有無、及び当該2つのサブブロックのそれぞれの動きベクトルに関する情報、の少なくとも一方に基づいて、サブブロック境界に対するフィルタ処理を行うか否かを制御する。
【0083】
<復号装置の構成>
次に、本実施形態に係る復号装置の構成について、上述した符号化装置の構成との相違点を主として説明する。
図9は、本実施形態に係る復号装置2の構成を示す図である。復号装置2は、符号化ストリームから復号対象ブロックを復号する装置である。
【0084】
図9に示すように、復号装置2は、エントロピー復号部200と、逆量子化・逆変換部210と、合成部220と、デブロッキングフィルタ230と、フィルタ制御部231と、メモリ240と、予測部250とを有する。
【0085】
エントロピー復号部200は、符号化装置1により生成された符号化ストリームを復号し、各種のシグナリング情報を復号する。具体的には、エントロピー復号部200は、復号対象ブロックに適用された予測に関する情報(例えば、予測種別情報、動きベクトル情報)を取得し、取得した情報を予測部250及びフィルタ制御部231に出力する。
【0086】
また、エントロピー復号部200は、符号化ストリームを復号し、量子化された変換係数を取得し、取得した変換係数を逆量子化・逆変換部210(逆量子化部211)に出力する。
【0087】
逆量子化・逆変換部210は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部210は、逆量子化部211と、逆変換部212とを有する。
【0088】
逆量子化部211は、符号化装置1の量子化部122が行う量子化処理に対応する逆量子化処理を行う。逆量子化部211は、エントロピー復号部200から出力される量子化変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより、復号対象ブロックの変換係数を復元し、復元した変換係数を逆変換部212に出力する。
【0089】
逆変換部212は、符号化装置1の変換部121が行う変換処理に対応する逆変換処理を行う。逆変換部212は、逆量子化部211から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差(復元予測残差)を合成部220に出力する。
【0090】
合成部220は、逆変換部212から出力される予測残差と、予測部250から出力される予測ブロックとを画素単位で合成することにより、復号対象ブロックを復元(復号)し、復元ブロックをデブロッキングフィルタ230に出力する。
【0091】
デブロッキングフィルタ230は、符号化装置1のデブロッキングフィルタ160と同様な動作を行う。デブロッキングフィルタ230は、合成部220から出力される復元ブロックと当該復元ブロックに隣接するブロックとからなる対象ブロック対の境界に対するフィルタ処理を行い、フィルタ処理後の復元ブロックをメモリ240に出力する。
【0092】
フィルタ制御部231は、エントロピー復号部200から出力される情報に基づいて、符号化装置1のフィルタ制御部161と同様な動作を行う。フィルタ制御部231は、例えば表1に示した方法で境界強度Bsを選択し、選択した境界強度Bsに応じてデブロッキングフィルタ230を制御する。
【0093】
メモリ240は、デブロッキングフィルタ230から出力される復元ブロックをフレーム単位で復号画像として記憶する。メモリ240は、フレーム単位の復号画像を復号装置2の外部に出力する。
【0094】
予測部250は、ブロック単位で予測を行う。予測部250は、インター予測部251と、イントラ予測部252と、切替部253とを有する。
【0095】
インター予測部251は、メモリ240に記憶された復号画像を参照画像として用いて、復号対象ブロックをインター予測により予測する。インター予測部251は、エントロピー復号部200から出力される動きベクトル情報を用いてインター予測を行うことによりインター予測ブロックを生成し、生成したインター予測ブロックを切替部253に出力する。
【0096】
本実施形態において、インター予測部251は、三角形合成予測を行う合成予測部251aを有する。合成予測部251aは、復号対象ブロックを三角形領域に二分割し、2つの動きベクトルを用いて2つの三角形領域を予測して2つの三角形予測領域を生成し、生成した2つの三角形予測領域の境界の領域を重み付き平均により合成することにより、符号化対象ブロックの予測ブロックを生成する。
【0097】
合成予測部251aの動作は、符号化装置1の合成予測部181aの動作と同様である。但し、三角形合成予測が適用されることを示すフラグ、三角形合成予測の分割方法(
図2(a)又は(b))を示すフラグ等は、符号化ストリームにより符号化装置1から復号装置2にシグナリングされる。合成予測部251aは、シグナリングされた情報に基づいて三角形合成予測を行う。
【0098】
イントラ予測部252は、メモリ240に記憶された復号画像のうち復号対象ブロックに隣接する参照画素を参照し、エントロピー復号部200から出力される情報に基づいて、復号対象ブロックをイントラ予測により予測する。そして、イントラ予測部252は、イントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部253に出力する。
【0099】
切替部253は、インター予測部251から出力されるインター予測ブロックとイントラ予測部252から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを合成部220に出力する。
【0100】
このように、本実施形態に係る復号装置2は、符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部200と、エントロピー復号部200が出力する変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部210と、復号対象ブロックを分割して得た複数の分割領域のそれぞれについて動きベクトルを用いて領域予測画像を生成し、生成した複数の領域予測画像の境界の領域を重み付き平均により合成して復号対象ブロックの予測ブロックを生成する合成予測部251aと、復元した予測残差と予測ブロックとを合成して復号対象ブロックを復元する合成部220と、復元した復号対象ブロックと隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行うデブロッキングフィルタ230とを有する。
【0101】
また、デブロッキングフィルタ230は、ブロック境界を跨ぐ2つのサブブロック(ブロックP及びQ)を1単位としてフィルタ処理を行う。フィルタ制御部231は、当該2つのサブブロックのサブブロック境界が三角形合成予測の合成領域に隣接する場合、サブブロック境界に対するフィルタ処理を行うようにデブロッキングフィルタ230を制御する。
【0102】
一方、フィルタ制御部231は、2つのサブブロック(ブロックP及びQ)のサブブロック境界が三角形合成予測の合成領域に隣接しない場合、当該2つのサブブロックのそれぞれにおける非ゼロの変換係数の有無、及び当該2つのサブブロックのそれぞれの動きベクトルに関する情報、の少なくとも一方に基づいて、サブブロック境界に対するフィルタ処理を行うか否かを制御する。
【0103】
<フィルタ制御部の動作例>
次に、本実施形態に係るフィルタ制御部161及びフィルタ制御部231の動作例について説明する。フィルタ制御部161及びフィルタ制御部231は同じ動作を行うため、ここではフィルタ制御部231を例に挙げて説明する。
図10は、本実施形態に係るフィルタ制御部231の動作フロー例を示す図である。
【0104】
図10に示すように、ステップS1において、フィルタ制御部231は、ブロックP及びQの少なくとも一方にイントラ予測が適用されているか否かを判定する。ブロックP及びQの少なくとも一方にイントラ予測が適用されている場合(ステップS1:YES)、ステップS2において、フィルタ制御部231は、フィルタ処理を行うようデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=2を選択する。
【0105】
ブロックP及びQのいずれもイントラ予測が適用されていない場合(ステップS1:NO)、すなわち、ブロックP及びQの両方にインター予測が適用されている場合、ステップS3において、フィルタ制御部231は、ブロックP及びQの少なくとも一方が三角形合成予測の合成領域に属するか否かを判定する。ブロックP及びQの少なくとも一方が三角形合成予測の合成領域に属する場合(ステップS3:YES)、ステップS4において、フィルタ制御部231は、フィルタ処理を行うようデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=1を選択する。
【0106】
ブロックP及びQのいずれも三角形合成予測の合成領域に属しない場合(ステップS3:NO)、ステップS5において、フィルタ制御部231は、ブロックP及びQの少なくとも一方に非ゼロ変換係数が含まれているか否かを判定する。ブロックP及びQの少なくとも一方に非ゼロ変換係数が含まれている場合(ステップS5:YES)、ステップS4において、フィルタ制御部231は、フィルタ処理を行うようデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=1を選択する。
【0107】
ブロックP及びQのいずれにも非ゼロ変換係数が含まれていない場合(ステップS3:NO)、すなわち、予測ブロックをそのまま復元ブロックとする場合、ステップS6において、フィルタ制御部231は、ブロックP及びQの動きベクトルの数及び参照画像(参照先フレーム)が異なるか否かを判定する。ブロックP及びQの動きベクトルの数及び参照画像が異なる場合(ステップS6:YES)、ステップS4において、フィルタ制御部231は、フィルタ処理を行うようデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=1を選択する。
【0108】
ブロックP及びQの動きベクトルの数及び参照画像が同じである場合(ステップS6:NO)、ステップS7において、フィルタ制御部231は、ブロックP及びQの動きベクトルの差が閾値以上であるか否かを判定する。ブロックP及びQの動きベクトルの差が閾値以上である場合(ステップS7:YES)、ステップS4において、フィルタ制御部231は、フィルタ処理を行うようデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=1を選択する。
【0109】
ブロックP及びQの動きベクトルの差が閾値未満である場合(ステップS7:NO)、例えば、ブロックP及びQの動きベクトルの値が同じである場合、ステップS8において、フィルタ制御部231は、フィルタ処理を行わないようにデブロッキングフィルタ230を制御する。具体的には、フィルタ制御部231は、境界強度Bs=0を選択する。
【0110】
なお、
図10に示す各判定ステップの順序は一例に過ぎず、各判定ステップの順序を変更してもよい。例えば、ステップS3の判定をステップS7の判定の後に行ってもよい。
【0111】
<その他の実施形態>
符号化装置1が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。復号装置2が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
【0112】
符号化装置1が行う各処理を実行する回路を集積化し、符号化装置1を半導体集積回路(チップセット、SoC)により構成してもよい。復号装置2が行う各処理を実行する回路を集積化し、復号装置2を半導体集積回路(チップセット、SoC)により構成してもよい。
【0113】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0114】
なお、本願は日本国特許出願第2019-157493号(2019年8月29日出願)の優先権を主張し、その内容のすべてが参照により本願明細書に組み込まれている。