(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】符号化装置、復号装置、及びプログラム
(51)【国際特許分類】
H04N 19/117 20140101AFI20240827BHJP
H04N 19/136 20140101ALI20240827BHJP
H04N 19/154 20140101ALI20240827BHJP
H04N 19/176 20140101ALI20240827BHJP
H04N 19/82 20140101ALI20240827BHJP
H04N 19/86 20140101ALI20240827BHJP
【FI】
H04N19/117
H04N19/136
H04N19/154
H04N19/176
H04N19/82
H04N19/86
(21)【出願番号】P 2021543783
(86)(22)【出願日】2020-09-01
(86)【国際出願番号】 JP2020033129
(87)【国際公開番号】W WO2021045059
(87)【国際公開日】2021-03-11
【審査請求日】2023-08-01
(31)【優先権主張番号】P 2019159971
(32)【優先日】2019-09-02
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2019160251
(32)【優先日】2019-09-03
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】市ヶ谷 敦郎
(72)【発明者】
【氏名】岩村 俊輔
(72)【発明者】
【氏名】根本 慎平
【審査官】山▲崎▼ 雄介
(56)【参考文献】
【文献】米国特許出願公開第2013/0259120(US,A1)
【文献】国際公開第2012/165095(WO,A1)
【文献】特開2008-182562(JP,A)
【文献】VAN DER AUWERA, Geert et al.,AHG6: Quantization Matrices and Deblocking Filtering,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-I0280 (version 2),2012年04月25日,pp. 1-10
【文献】SATO, Kazushi,On Deblocking Filter and DC Component of Quantization Matrices,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-J0186 (version 2),2012年07月11日,pp. 1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
画像をブロック単位に分割し、ブロック単位で前記画像を符号化する符号化装置であって、
前記画像をブロック単位に分割した符号化対象ブロックと前記符号化対象ブロックを予測することにより生成した予測ブロックとの差である予測残差に変換処理及び量子化処理を行う変換・量子化部と、
前記変換・量子化部により生成された変換係数に逆量子化処理及び逆変換処理することで前記予測残差を復元する逆量子化・逆変換部と、
前記復元した予測残差と前記予測ブロックとを合成することにより前記符号化対象ブロックを復元する合成部と、
前記復元した符号化対象ブロックと当該符号化対象ブロックに隣接する隣接ブロックとの境界にフィルタ処理するデブロッキングフィルタと、
前記量子化処理及び前記逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、前記デブロッキングフィルタのフィルタ強度を制御するフィルタ制御部と、を備え、
前記量子化パラメータは、1つのブロックに対して1つの値が設定されるパラメータであって、前記量子化行列は、前記1つのブロック内の成分ごとに設定される値からなる行列であ
り、
前記フィルタ制御部は、前記量子化行列の代表値を導出する代表値導出部を有し、
前記代表値は、前記量子化行列の低域成分のみを構成する複数の値の重み付き平均値であり、前記重み付きにおいて、前記複数の値のうち、前記量子化行列の最低域に相当する1つの値の重みが他の値の重みよりも大きく、
前記フィルタ制御部は、前記代表値に基づいて前記フィルタ強度を制御することを特徴とする符号化装置。
【請求項2】
前記フィルタ制御部は、前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列と、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列とに基づいて、前記フィルタ強度を制御することを特徴とする請求項1に記載の符号化装置。
【請求項3】
前記
代表値導出部は、
前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化行列の
前記代表値と、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化行列の
前記代表値とを導出す
ることを特徴とする請求項2に記載の符号化装置。
【請求項4】
前記フィルタ制御部は、
前記代表値導出部が導出した前記代表値に基づいて、前記符号化対象ブロック及び前記隣接ブロックのそれぞれについてオフセット値を算出するオフセット算出部と、
前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータと、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータと、前記オフセット算出部が算出した前記オフセット値とに基づいて、前記フィルタ強度を制御するための閾値を導出する閾値導出部と、をさらに有することを特徴とする請求項3に記載の符号化装置。
【請求項5】
前記変換・量子化部により生成された前記変換係数を符号化して符号化ストリームを出力するエントロピー符号化部をさらに備え、
前記フィルタ制御部は、前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列と、複数の量子化行列の候補のそれぞれについて規定されたオフセット値からなる配列とに基づいて、前記デブロッキングフィルタのフィルタ強度を制御し、
前記エントロピー符号化部は、前記配列を前記符号化ストリームに含めて伝送することを特徴とする請求項1に記載の符号化装置。
【請求項6】
前記フィルタ制御部は、前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列と、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列とに基づいて、前記フィルタ強度を制御することを特徴とする請求項
5に記載の符号化装置。
【請求項7】
前記フィルタ制御部は、
前記配列に基づいて、前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化行列に対応するオフセット値と、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化行列に対応するオフセット値とを導出するオフセット導出部を有することを特徴とする請求項
6に記載の符号化装置。
【請求項8】
前記フィルタ制御部は、
前記符号化対象ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータと、前記隣接ブロックに対する前記量子化処理及び前記逆量子化処理で用いた前記量子化パラメータと、前記オフセット導出部が導出した前記オフセット値とに基づいて、前記フィルタ強度を制御するための閾値を導出する閾値導出部をさらに有することを特徴とする請求項
7に記載の符号化装置。
【請求項9】
画像を分割して生成したブロック単位で復号を行う復号装置であって、
符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部と、
前記エントロピー復号部が出力する変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部と、
前記復元した予測残差と前記復号対象ブロックを予測して生成した予測ブロックとを合成して前記復号対象ブロックを復元する合成部と、
前記復元した復号対象ブロックと当該復号対象ブロックに隣接する隣接ブロックとの境界に対するフィルタ処理を行うデブロッキングフィルタと、
前記逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、前記デブロッキングフィルタのフィルタ強度を制御するフィルタ制御部と、を備え、
前記量子化パラメータは、1つのブロックに対して1つの値が設定されるパラメータであって、前記量子化行列は、前記1つのブロック内の成分ごとに設定される値からなる行列であ
り、
前記フィルタ制御部は、前記量子化行列の代表値に基づいて前記フィルタ強度を制御し、
前記代表値は、前記量子化行列の低域成分のみを構成する複数の値の重み付き平均値であり、前記重み付きにおいて、前記複数の値のうち、前記量子化行列の最低域に相当する1つの値の重みが他の値の重みよりも大きいことを特徴とする復号装置。
【請求項10】
前記エントロピー復号部は、前記符号化ストリームを復号することで、複数の量子化行列の候補のそれぞれについて規定されたオフセット値からなる配列をさらに出力し、
前記フィルタ制御部は、前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列と、前記配列とに基づいて、前記デブロッキングフィルタのフィルタ強度を制御することを特徴とする請求項
9に記載の復号装置。
【請求項11】
前記フィルタ制御部は、前記復号対象ブロックに対する前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列と、前記隣接ブロックに対する前記逆量子化処理で用いた前記量子化パラメータ及び前記量子化行列とに基づいて、前記フィルタ強度を制御することを特徴とする請求項
10に記載の復号装置。
【請求項12】
前記フィルタ制御部は、
前記配列に基づいて、前記復号対象ブロックに対する前記逆量子化処理で用いた前記量子化行列に対応するオフセット値と、前記隣接ブロックに対する前記逆量子化処理で用いた前記量子化行列に対応するオフセット値とを導出するオフセット導出部を有することを特徴とする請求項
11に記載の復号装置。
【請求項13】
前記フィルタ制御部は、
前記復号対象ブロックに対する前記逆量子化処理で用いた前記量子化パラメータと、前記隣接ブロックに対する前記逆量子化処理で用いた前記量子化パラメータと、前記オフセット導出部が導出した前記オフセット値とに基づいて、前記フィルタ強度を制御するための閾値を導出する閾値導出部をさらに有することを特徴とする請求項
12に記載の復号装置。
【請求項14】
コンピュータを請求項1に記載の符号化装置として機能させることを特徴とするプログラム。
【請求項15】
コンピュータを請求項
9に記載の復号装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化装置、復号装置、及びプログラムに関する。
【背景技術】
【0002】
MPEG(Moving Picture Experts Group)の委員会で勧告された規格群のシリーズなどに代表されるブロック単位で符号化処理を行う映像符号化方式では、ブロック単位で異なる条件で符号化が行われるため、ブロック間の品質が均一でないという特徴がある。
【0003】
この特徴は、映像の部分領域の信号特性に応じて、例えば、人間の検知しやすい信号特性の領域であれば高品質の信号に符号化し、検知しにくい領域であれば低品質の信号に符号化するように制御することにより視覚的に画質の劣化を感じさせない符号化制御が行えるというメリットがある。反面、ブロック単位で符号化を制御するため、ブロック境界に画質の品質差が顕在化し、ブロック状の歪みが検知される場合がある。
【0004】
このような信号の劣化を低減するため、近年の符号化方式ではデブロッキングフィルタ処理が一般的に用いられる。デブロッキングフィルタは、信号のギャップを低減するためのフィルタであるため、一般的には低域通過フィルタの特性を持つ。
【0005】
デブロッキングフィルタを固定的に適用すると、高品質領域同士の境界部においては、フィルタ処理による信号劣化が品質改善よりも大きく作用することがあり、逆に過度に低品質に符号化処理された領域同士の境界部においては、フィルタが十分に効果を発揮できない。
【0006】
このような状況に鑑みて、従来の映像符号化方式では、量子化パラメータ(具体的には、境界を挟むブロックの量子化パラメータの平均値)に基づいてデブロッキングフィルタのフィルタ強度を制御している(例えば、非特許文献1参照)。ここで、量子化パラメータとは、1つのブロックに対して1つの値が設定され、このブロックの量子化の粗さ(ステップサイズ)を規定するパラメータをいう。
【先行技術文献】
【非特許文献】
【0007】
【文献】Recommendation ITU-T H.265,(12/2016),“High efficiency video coding”,International Telecommunication Union
【発明の開示】
【0008】
画像が分割されたブロック内の品質を制御するパラメータは、上述した量子化パラメータのほかに、視覚による知覚強度に応じた品質制御のために、ブロック内の周波数特性を制御する量子化行列(スケーリングリストまたはスケーリングファクターと呼ばれることもある)が用いられている。
【0009】
量子化行列は、ブロックサイズに応じてi×j要素の成分ごとに設定される値(重み付け係数)からなる行列であって、変換係数の低周波から高周波にわたる成分ごとに量子化の粗さを調整するために用いられる。
【0010】
しかしながら、従来の映像符号化方式は、ブロック単位で設定される一意のパラメータである量子化パラメータを考慮してデブロッキングフィルタのフィルタ強度を制御しているものの、フィルタ強度の制御において量子化行列を考慮していない。
【0011】
このため、量子化行列に起因するブロックノイズの発生に対してはデブロッキングフィルタのフィルタ強度を制御する方法がなく、デブロッキングフィルタによるブロック歪みの低減効果が不十分であるという問題がある。
【0012】
そこで、本発明は、デブロッキングフィルタを適切に制御することで画質や符号化効率を向上させる符号化装置、復号装置、及びプログラムを提供することを目的とする。
【0013】
第1の態様に係る符号化装置は、画像をブロック単位に分割し、ブロック単位で前記画像を符号化する符号化装置であって、前記画像をブロック単位に分割した符号化対象ブロックと前記符号化対象ブロックを予測することにより生成した予測ブロックとの差である予測残差に変換処理及び量子化処理を行う変換・量子化部と、前記変換・量子化部により生成された変換係数に逆量子化処理及び逆変換処理することで前記予測残差を復元する逆量子化・逆変換部と、前記復元した予測残差と前記予測ブロックとを合成することにより前記符号化対象ブロックを復元する合成部と、前記復元した符号化対象ブロックと当該符号化対象ブロックに隣接する隣接ブロックとの境界にフィルタ処理するデブロッキングフィルタと、前記量子化処理及び前記逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、前記デブロッキングフィルタのフィルタ強度を制御するフィルタ制御部と、を備え、前記量子化パラメータは、1つのブロックに対して1つの値が設定されるパラメータであって、前記量子化行列は、前記1つのブロック内の成分ごとに設定される値からなる行列であることを要旨とする。
【0014】
第2の態様に係る復号装置は、画像を分割して生成したブロック単位で復号を行う復号装置であって、符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部と、前記エントロピー復号部が出力する変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部と、前記復元した予測残差と前記復号対象ブロックを予測して生成した予測ブロックとを合成して前記復号対象ブロックを復元する合成部と、前記復元した復号対象ブロックと当該復号対象ブロックに隣接する隣接ブロックとの境界に対するフィルタ処理を行うデブロッキングフィルタと、前記逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、前記デブロッキングフィルタのフィルタ強度を制御するフィルタ制御部と、を備え、前記量子化パラメータは、1つのブロックに対して1つの値が設定されるパラメータであって、前記量子化行列は、前記1つのブロック内の成分ごとに設定される値からなる行列であることを要旨とする。
【0015】
第3の態様に係るプログラムは、コンピュータを第1の態様に係る符号化装置として機能させることを要旨とする。
【0016】
第4の態様に係るプログラムは、コンピュータを第2の態様に係る復号装置として機能させることを要旨とする。
【0017】
本発明によれば、デブロッキングフィルタを適切に制御することで画質や符号化効率を向上させる符号化装置、復号装置、及びプログラムを提供できる。
【図面の簡単な説明】
【0018】
【
図1】実施形態に係る符号化装置の構成を示す図である。
【
図3】実施形態に係るデブロッキングフィルタの動作例を示す図である。
【
図4】実施形態に係る符号化装置のフィルタ制御部の構成を示す図である。
【
図5】実施形態に係る復号装置の構成を示す図である。
【
図6】実施形態に係る復号装置のフィルタ制御部の構成を示す図である。
【
図7】実施形態に係るフィルタ制御部の動作フロー例を示す図である。
【
図8】変更例に係る符号化装置のフィルタ制御部の構成を示す図である。
【
図9】変更例に係る復号装置のフィルタ制御部の構成を示す図である。
【
図10】変更例に係るフィルタ制御部の動作フロー例を示す図である。
【発明を実施するための形態】
【0019】
図面を参照して、実施形態に係る符号化装置及び復号装置について説明する。実施形態に係る符号化装置及び復号装置は、MPEGに代表される動画像の符号化及び復号をそれぞれ行う。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0020】
<符号化装置の構成>
まず、本実施形態に係る符号化装置の構成について説明する。
図1は、本実施形態に係る符号化装置1の構成を示す図である。符号化装置1は、画像を分割して得たブロック単位で符号化を行う装置である。
【0021】
図1に示すように、符号化装置1は、ブロック分割部100と、減算部110と、変換・量子化部120と、エントロピー符号化部130と、逆量子化・逆変換部140と、合成部150と、デブロッキングフィルタ160と、フィルタ制御部161と、メモリ170と、予測部180とを有する。
【0022】
ブロック分割部100は、動画像を構成するフレーム(或いはピクチャ)単位の入力画像を複数の画像ブロックに分割し、分割により得た画像ブロックを減算部110に出力する。画像ブロックのサイズは、例えば32×32画素、16×16画素、8×8画素、又は4×4画素等である。画像ブロックの形状は正方形に限らず矩形(非正方形)であってもよい。画像ブロックは、符号化装置1が符号化を行う単位(符号化対象ブロック)であり、且つ復号装置が復号を行う単位(復号対象ブロック)である。このような画像ブロックはCU(Coding Unit)と呼ばれることがある。
【0023】
ブロック分割部100は、輝度信号と色差信号とに対してブロック分割を行う。以下において、ブロック分割の形状が輝度信号と色差信号とで同じである場合について主として説明するが、輝度信号と色差信号とで分割を独立に制御可能であってもよい。輝度ブロック及び色差ブロックを特に区別しないときは単に符号化対象ブロックと呼ぶ。
【0024】
減算部110は、ブロック分割部100から出力される符号化対象ブロックと、符号化対象ブロックを予測部180が予測して得た予測ブロックとの差分(誤差)を表す予測残差を算出する。減算部110は、ブロックの各画素値から予測ブロックの各画素値を減算することにより予測残差を算出し、算出した予測残差を変換・量子化部120に出力する。
【0025】
変換・量子化部120は、ブロック単位で変換処理及び量子化処理を行う。変換・量子化部120は、変換部121と、量子化部122とを有する。
【0026】
変換部121は、減算部110から出力される予測残差に対して変換処理を行って周波数成分ごとの変換係数を算出し、算出した変換係数を量子化部122に出力する。変換処理(変換)とは、画素領域の信号を周波数領域の信号に変換する処理をいい、例えば、離散コサイン変換(DCT)や離散サイン変換(DST)、カルーネンレーブ変換(KLT)、及びそれらを整数化した変換等をいう。また、変換処理には画素領域の信号を周波数領域の信号に変換することなくスケーリング等により調整する変換スキップを含んでもよい。
【0027】
量子化部122は、変換部121から出力される変換係数を量子化パラメータ及び量子化行列を用いて量子化し、量子化した変換係数をエントロピー符号化部130及び逆量子化・逆変換部140に出力する。また、量子化部122は、量子化処理に関する情報(具体的には、量子化処理で用いた量子化パラメータ及び量子化行列の情報)を、エントロピー符号化部130、逆量子化部141、及びフィルタ制御部161に出力する。
【0028】
ここで、量子化パラメータは、1つのブロックに対して1つの値が設定されるパラメータである。具体的には、量子化パラメータは、ブロック内の各変換係数に対して共通して適用されるパラメータであって、量子化の粗さ(ステップサイズ)を定めるパラメータである。
【0029】
量子化行列は、1つのブロック内の成分ごとに設定される値からなる行列である。具体的には、量子化行列は、ブロックサイズに応じてi×j要素の成分ごとに設定される値(重み付け係数)からなる行列であって、変換係数の低周波から高周波にわたる成分ごとに量子化の粗さを調整するために用いられる。
【0030】
図2は、量子化行列の一例を示す図である。
図2において、i×j=4×4である一例を示している。
図2に示す例では、量子化行列は、水平方向、垂直方向の次数がそれぞれ大きくなるほど、大きな値を有する。このような量子化行列では、より右下に配列された要素に係る変換係数、つまり高域の変換係数ほど低い精度で量子化される。そのため、低域ほど濃淡や色相の空間的変化に鋭敏であるという人間の視覚特性を活用し、主観的な画質を劣化させずに量子化によって高域での情報量を低減することが許容される。
【0031】
なお、量子化行列は、符号化対象ブロックの予測モード(イントラ予測、インター予測の別)、ブロックサイズ(例えば、2x2、4x4、8x8、16x16、32x32、64x64)、及び1つの輝度・2つの色差信号(RGB信号の場合は、R信号、B信号、G信号)のそれぞれの組み合わせについて設定可能である。
【0032】
エントロピー符号化部130は、量子化部122から出力される変換係数に対してエントロピー符号化を行い、データ圧縮を行って符号化ストリーム(ビットストリーム)を生成し、符号化ストリームを符号化装置1の外部に出力する。エントロピー符号化には、ハフマン符号やCABAC(Context-based Adaptive Binary Arithmetic Coding;コンテキスト適応型2値算術符号)等を用いることができる。
【0033】
また、エントロピー符号化部130は、ブロック分割部100から各符号化対象ブロックのサイズ・形状等の情報を取得し、量子化部122から量子化処理に関する情報を取得し、予測部180から予測に関する情報(例えば、予測モードや動きベクトルの情報)を取得し、これらの情報の符号化も行う。
【0034】
逆量子化・逆変換部140は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部140は、逆量子化部141と、逆変換部142とを有する。
【0035】
逆量子化部141は、量子化部122が行う量子化処理に対応する逆量子化処理を行う。具体的には、逆量子化部141は、量子化部122から出力される変換係数を、量子化パラメータ及び量子化行列を用いて逆量子化することにより変換係数を復元し、復元した変換係数を逆変換部142に出力する。
【0036】
逆変換部142は、変換部121が行う変換処理に対応する逆変換処理を行う。例えば、変換部121がDCTを行った場合には、逆変換部142は逆DCTを行う。逆変換部142は、逆量子化部141から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差である復元予測残差を合成部150に出力する。
【0037】
合成部150は、逆変換部142から出力される復元予測残差を、予測部180から出力される予測ブロックと画素単位で合成する。合成部150は、復元予測残差の各画素値と予測ブロックの各画素値を加算して符号化対象ブロックを復元(復号)し、復元したブロック単位の復号画像(復元ブロック)をデブロッキングフィルタ160に出力する。
【0038】
デブロッキングフィルタ160は、復元ブロックと当該復元ブロックに隣接する隣接ブロックとからなる2つのブロックのブロック境界に対するフィルタ処理を行い、フィルタ処理後の復元ブロックをメモリ170に出力する。フィルタ処理は、ブロック単位の処理に起因する信号劣化を軽減するための処理であって、隣り合う2つのブロックのブロック境界における信号のギャップを平滑化するフィルタ処理である。デブロッキングフィルタ160は、一般的に信号の変動を緩やかにするローパスフィルタとして構成されている。
【0039】
図3は、本実施形態に係るデブロッキングフィルタ160の動作例を示す図である。
図3に示す例では、デブロッキングフィルタ160は、8×8画素のブロックごとのブロック境界を対象としてフィルタ処理を行う。また、デブロッキングフィルタ160は、4行又は4列を単位としてフィルタ処理を行う。
図3に示すブロックP及びQでは、デブロッキングフィルタ160のフィルタ処理の1単位であり、ブロックサイズが4×4画素である一例を示している。ブロックP及びQのそれぞれは、サブブロックと呼ばれてもよい。デブロッキングフィルタ160の動作の詳細については後述する。
【0040】
フィルタ制御部161は、デブロッキングフィルタ160を制御する。具体的には、フィルタ制御部161は、対象ブロック対のブロック境界に対するフィルタ処理を行うか否かを示す境界強度(Bs:Boundary strength)、及びデブロッキングフィルタ160のフィルタ強度を制御する。境界強度Bsとは、フィルタ処理を適用するか否か、及びそのフィルタ処理の種類を決定するためのパラメータをいう。なお、フィルタ処理を行うか否かの制御は、境界強度Bsを1以上とするか又はゼロとするかの制御とみなすことができる。
【0041】
フィルタ制御部161は、対象ブロック対の境界近傍領域における画素値の変動や、予測モード、量子化パラメータ、動き補償予測(インター予測)に用いる動きベクトルの値に基づいて、デブロッキングフィルタ160を制御する。
【0042】
詳細については後述するが、本実施形態に係るフィルタ制御部161は、量子化部120における量子化処理及び逆量子化部141における逆変換処理に用いた量子化パラメータ及び量子化行列に基づいて、デブロッキングフィルタ160のフィルタ強度を制御する。
【0043】
このように、ブロック単位で設定される一意のパラメータである量子化パラメータだけではなく、量子化行列も考慮してデブロッキングフィルタのフィルタ強度を制御することにより、量子化行列に起因するブロックノイズの発生に対してデブロッキングフィルタ160のフィルタ強度を制御可能になり、デブロッキングフィルタ160によるブロック歪みの低減効果を向上させることができる。
【0044】
メモリ170は、デブロッキングフィルタ160から出力される復元ブロックをフレーム単位で復号画像として蓄積する。メモリ170は、記憶している復号画像を予測部180に出力する。
【0045】
予測部180は、ブロック単位で予測処理を行うことにより、符号化対象ブロックに対応する予測ブロックを生成し、生成した予測ブロックを減算部110及び合成部150に出力する。予測部180は、インター予測部181と、イントラ予測部182と、切替部183とを有する。
【0046】
インター予測部181は、メモリ170に記憶された復号画像を参照画像として用いて、ブロックマッチング等の手法により動きベクトルを算出し、符号化対象ブロックを予測してインター予測ブロックを生成し、生成したインター予測ブロックを切替部183に出力する。インター予測部181は、複数の参照画像を用いるインター予測(典型的には、双予測)や、1つの参照画像を用いるインター予測(片方向予測)の中から最適なインター予測方法を選択し、選択したインター予測方法を用いてインター予測を行う。インター予測部181は、インター予測に関する情報(動きベクトル等)をエントロピー符号化部130及びフィルタ制御部161に出力する。
【0047】
イントラ予測部182は、複数のイントラ予測モードの中から、符号化対象ブロックに適用する最適なイントラ予測モードを選択し、選択したイントラ予測モードを用いて符号化対象ブロックを予測する。イントラ予測部182は、メモリ170に記憶された復号画像のうち、符号化対象ブロックに隣接する復号済み画素値を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部183に出力する。また、イントラ予測部182は、選択したイントラ予測モードに関する情報をエントロピー符号化部130及びフィルタ制御部161に出力する。
【0048】
切替部183は、インター予測部181から出力されるインター予測ブロックとイントラ予測部182から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを減算部110及び合成部150に出力する。
【0049】
このように、本実施形態に係る符号化装置1は、符号化対象ブロックと符号化対象ブロックを予測して得た予測ブロックとの差を表す予測残差に対して変換処理及び量子化処理を行う変換・量子化部120と、変換・量子化部により得た変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部140と、復元した予測残差と予測ブロックとを合成して符号化対象ブロックを復元する合成部150と、復元した符号化対象ブロックと当該符号化対象ブロックに隣接する隣接ブロックとの境界に対するフィルタ処理を行うデブロッキングフィルタ160と、量子化処理及び逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、デブロッキングフィルタ160のフィルタ強度を制御するフィルタ制御部161とを有する。
【0050】
次に、本実施形態に係るフィルタ制御部161の構成について説明する。本実施形態に係るフィルタ制御部161は、符号化対象ブロックに対する量子化処理及び逆量子化処理で用いた量子化パラメータ及び量子化行列と、隣接ブロックに対する量子化処理及び逆量子化処理で用いた量子化パラメータ及び量子化行列とに基づいて、デブロッキングフィルタ160のフィルタ強度を制御する。以下において、符号化対象ブロック又はそのサブブロックがブロックPであり、隣接ブロック又はそのサブブロックがブロックQであるものとする。
【0051】
図4は、本実施形態に係るフィルタ制御部161の構成を示す図である。
図4に示すように、本実施形態に係るフィルタ制御部161は、境界強度決定部161aと、代表値導出部161bと、オフセット算出部161cと、閾値導出部161dと、フィルタ強度制御部161eとを有する。
【0052】
境界強度決定部161aは、例えば下記の表1に基づいて境界強度Bsを決定し、決定した境界強度Bsの値を閾値導出部161d及びフィルタ強度制御部161eに出力する。本実施形態では、境界強度Bsの値は0,1,2のいずれかとする。なお、輝度信号と色差信号のブロックに対する境界強度をそれぞれ算出してもよいし、輝度信号と色差信号のブロックの境界強度の組み合わせを一つの境界強度として判定してもよい。
【0053】
【0054】
表1に示すように、境界強度決定部161aは、ブロックP及びQの少なくとも一方にイントラ予測が適用されている場合、Bsの値を2とする。
【0055】
一方、境界強度決定部161aは、ブロックP及びQの両方にインター予測が適用されており、且つ少なくとも以下の(a)乃至(d)の中の1つの条件を満たす場合には、Bs値を1とし、その他の場合には、Bs値を0とする。
【0056】
(a)ブロックP及びQの少なくとも一方が有意な変換係数(すなわち、非ゼロ変換係数)を含むこと。
【0057】
(b)ブロックP及びQの動きベクトルの数又は参照画像が異なること。
【0058】
(c)ブロックP及びQの動きベクトルの差の絶対値が閾値(例えば1画素)以上であること。
【0059】
境界強度決定部161aは、決定した境界強度Bsの値が0の場合、ブロックP及びQの境界に対するフィルタ処理を行わないようデブロッキングフィルタ160を制御する。
【0060】
代表値導出部161bは、ブロックPに対する量子化処理及び逆量子化処理で用いた量子化行列の代表値mppを導出するとともに、ブロックQに対する量子化処理及び逆量子化処理で用いた量子化行列の代表値mpqを導出し、導出した代表値mpp及びmpqをオフセット算出部161cに出力する。以下において、代表値mpp及びmpqを特に区別しないときは単に代表値mpと呼ぶ。
【0061】
代表値導出部161bが導出する代表値mpとしては、次の1)乃至3)のいずれかとする。
【0062】
1)代表値mpは、量子化行列の低域成分を構成する複数の値の平均値である。
【0063】
直交変換された予測残差を量子化行列で量子化するケースにおいて、最もブロック歪みに影響をおよぼす低域成分に限定してmpを導出する。具体的には、代表値導出部161bは、次の式(1)に示すように、低域、i<s,j<t(例えば、s=t=4)を満たすm[j][i]の平均値を代表値mpとする。
【0064】
【0065】
一般的に、量子化行列は、i,jが0に近いほど低域に対する重み付け係数を意味し、人間の視覚特性を考慮して重み付けが小さくなるが、i,jが大きくなるにしたがって重み付けが大きくなる(
図2参照)。また、一般的に、変換係数は、i,jが0に近いほど大きく、i,jが大きくなるほど小さくなる傾向がある。このため、低域成分に限定してm
pを導出することとしている。
【0066】
2)代表値mpは、量子化行列の最低域に相当する1つの値である。
【0067】
直交変換された予測残差を量子化行列で量子化するケースにおいて、代表値導出部161bは、次の式(2)に示すように、最もブロック歪みに影響を与える最低域の係数m[0][0]を代表値mpとする。
【0068】
mp=m[0][0] (2)
この方法は、最低域のみのブロック歪みへの影響のみを考慮したもので、上述した1)の方法に比べてデブロッキングフィルタ制御への影響は少ないが、1つの係数の代入のみで実現されるため、非常に軽量な実現方法である。
【0069】
3)代表値mpは、量子化行列の全成分を構成する複数の値の重み付き平均値である。
【0070】
代表値導出部161bは、量子化行列の全係数の量子化行列を考慮して代表値mpを導出する。全係数を用いることで高域にも多数の係数が発生するケースについて効果的にデブロッキングフィルタ制御に反映することができる。量子化行列(MxN)は、一般的に高域に対して大きな重み付け係数が用いられることから、広域の係数を含めて平均化すると極端に代表値mpの値が大きくなる傾向がある。そこで、代表値導出部161bは、視覚特性を考慮し、次の式(3)に示すように、低域成分の重みを大きくして量子化行列の重み付けを用って平均化する。
【0071】
【0072】
ここで、c[j][i]は、1.0以下の少数であり、一般的に高域において0に近づく重み付けを有する。具体的な値はシステムによって設計する。
【0073】
なお、上述した1)の方法と3)の方法とを組み合わせてもよい。具体的には、代表値導出部161bは、量子化行列の低域成分に限定してmpを導出しつつ、量子化行列の最低域の係数の重みを大きくした重み付け平均を行ってもよい。
【0074】
オフセット算出部161cは、代表値導出部161bが導出した代表値mpp及びmpqに基づいて、ブロックP及びQのそれぞれについてオフセット値を算出する。
【0075】
具体的には、オフセット算出部161cは、代表値mppを用いて、ブロックPに対するオフセット値QppOffsetを算出し、算出したオフセット値QppOffsetを閾値導出部161dに出力する。例えば、オフセット算出部161cは、次の式(4)によりオフセット値QppOffsetを算出する。
【0076】
QppOffset=log2(mpp/md)×6 (4)
ただし、mdはデフォルトの量子化行列の値としてシステムに規定される値である。本例では例えばmdを16に設定する。
【0077】
同様に、オフセット算出部161cは、代表値mpqを用いて、ブロックQに対するオフセット値QpqOffsetを算出し、算出したオフセット値QpqOffsetを閾値導出部161dに出力する。例えば、オフセット算出部161cは、次の式(5)によりオフセットQpqOffsetを算出する。
【0078】
QpqOffset=log2(mpq/md)×6 (5)
式(4)及び(5)において、量子化パラメータQpが対数関数によって増減するパラメータであって、代表値mpをmdで除算して対数をとっている。
【0079】
なお、オフセット算出部161cでは、ハードウェアでの実装などにおいては、除算やlog2関数の処理の代わりにルックアップテーブルを用いて、式(4)及び式(5)を実装してもよい。
【0080】
例えば式(4)の処理の代わりにルックアップテーブルLUTをLUT[]={18,21,23,26,29,32,36,41,46,51,58,64,72,81,91,102,115,128,144,162,182,204,229,256}としたとき、下記の処理によりQppOffsetを算出してもよい。
if (mpp<md)
{
sign = -1
M = md × md / mpp
}
else
{
sign = 1
M = mpp
}
Q = 0
while (M >= LUT[Q])
{
Q++
}
QppOffset = sign × Q
【0081】
同様に、式(5)の処理の代わりに、下記の処理によりQpqOffsetを算出してもよい。
if (mpq<md)
{
sign = -1
M = md × md / mpq
}
else
{
sign = 1
M = mpq
}
Q = 0
while (M >= LUT[Q])
{
Q++
}
QpqOffset = sign × Q
【0082】
なお、上記はルックアップテーブルを用いたQppOffset及びQpqOffsetの算出の一例であり、量子化行列の代表値mpp及びmqqに基づいてmdにより除算および対数処理をLUTで算出していれば、上記の例には限らない。
【0083】
閾値導出部161dは、ブロックPに対する量子化処理及び逆量子化処理で用いた量子化パラメータQpPと、ブロックQに対する量子化処理及び逆量子化処理で用いた量子化パラメータQpQと、オフセット算出部161cが算出したオフセット値QppOffset及びQpqOffsetとに基づいて、デブロッキングフィルタ160のフィルタ強度を制御するための閾値β及びtCを導出し、導出した閾値β及びtCをフィルタ強度制御部161eに出力する。
【0084】
第1に、閾値導出部161dは、例えば次の式(6)により変数qPを算出する。
【0085】
qP=((QpQ+QpqOffset+QpP+QppOffset+1)>>1) (6)
ここで、“>>”はシフト演算子(右シフト演算)を示す。式(6)は、基本的には、ブロックPの量子化パラメータQpPと、ブロックQの量子化パラメータQpQとの平均を求める計算式であるが、この計算式において量子化行列に基づくオフセット値QppOffset及びQpqOffsetが導入されている。なお、式(6)の計算式は一例に過ぎないものであって、量子化行列に基づくオフセット値QppOffset及びQpqOffsetが反映されたものであれば他の計算式を用いてもよい。
【0086】
第2に、閾値導出部161dは、例えば次の式(7)により、閾値βを導出するためのQを算出する。
【0087】
Q=Clip3(0,63,qP+(slice_beta_offset_div2<<1)) (7)
ここで、“<<”はシフト演算子(左シフト演算)を示す。“Clip3(X,Y,Z)”は、ZがXより小さければXを返し、ZがYより大きければYを返し、それ以外の場合はZを返すクリップ演算子である。slice_beta_offset_div2は、復号装置2にシグナリングするパラメータの1つである。
【0088】
また、閾値導出部161dは、例えば次の式(8)により、閾値tCを導出するためのQを算出する。
【0089】
Q=Clip3(0,65,qP+2*(bS?1)+(slice_tc_offset_div2<<1)) (8)
ここで、“bS”は境界強度決定部161aが出力するBs値である。slice_tc_offset_div2は、復号装置2にシグナリングするパラメータの1つである。
【0090】
第3に、閾値導出部161dは、次の表2により、それぞれ算出したQから閾値β及びtCを導出する。
【0091】
【0092】
フィルタ強度制御部161eは、境界強度決定部161aが出力する境界強度Bsの値と、閾値導出部161dが出力する閾値β及びtCとに基づいて、デブロッキングフィルタ160のフィルタ強度を制御する。
【0093】
フィルタ強度制御部161eは、境界強度Bsの値が1又は2の場合には、次の式(9)を満たす場合にのみ、フィルタ処理を行うようデブロッキングフィルタ160を制御してもよい(
図3参照)。
【0094】
【0095】
また、フィルタ強度制御部161eは、フィルタ処理を行う場合、以下の条件式(10)乃至(15)を全て満たす場合に強いフィルタを適用し、それ以外の場合に弱いフィルタを適用してもよい(
図3参照)。
【0096】
【0097】
このように、本実施形態に係るフィルタ制御部161は、ブロック単位で設定される一意のパラメータである量子化パラメータだけではなく、量子化行列も考慮してデブロッキングフィルタ160のフィルタ強度を制御する。これにより、量子化行列に起因するブロックノイズの発生に対してデブロッキングフィルタ160のフィルタ強度を制御可能になり、デブロッキングフィルタ160によるブロック歪みの低減効果を向上させることができる。
【0098】
<復号装置の構成>
次に、本実施形態に係る復号装置の構成について、上述した符号化装置の構成との相違点を主として説明する。
図5は、本実施形態に係る復号装置2の構成を示す図である。復号装置2は、符号化ストリームから復号対象ブロックを復号する装置である。
【0099】
図5に示すように、復号装置2は、エントロピー復号部200と、逆量子化・逆変換部210と、合成部220と、デブロッキングフィルタ230と、フィルタ制御部231と、メモリ240と、予測部250とを有する。
【0100】
エントロピー復号部200は、符号化装置1により生成された符号化ストリームを復号し、各種のシグナリング情報を復号する。具体的には、エントロピー復号部200は、復号対象ブロックに適用された量子化処理に関する情報を取得し、取得した情報を逆量子化部211及びフィルタ制御部231に出力する。また、エントロピー復号部200は、復号対象ブロックに適用された予測に関する情報(例えば、予測種別情報、動きベクトル情報)を取得し、取得した情報を予測部250及びフィルタ制御部231に出力する。
【0101】
また、エントロピー復号部200は、符号化ストリームを復号し、量子化された変換係数を取得し、取得した変換係数を逆量子化・逆変換部210(逆量子化部211)に出力する。
【0102】
逆量子化・逆変換部210は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部210は、逆量子化部211と、逆変換部212とを有する。
【0103】
逆量子化部211は、符号化装置1の量子化部122が行う量子化処理に対応する逆量子化処理を行う。逆量子化部211は、エントロピー復号部200から出力される量子化変換係数を、量子化パラメータ及び量子化行列を用いて逆量子化することにより、復号対象ブロックの変換係数を復元し、復元した変換係数を逆変換部212に出力する。
【0104】
逆変換部212は、符号化装置1の変換部121が行う変換処理に対応する逆変換処理を行う。逆変換部212は、逆量子化部211から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差(復元予測残差)を合成部220に出力する。
【0105】
合成部220は、逆変換部212から出力される予測残差と、予測部250から出力される予測ブロックとを画素単位で合成することにより、復号対象ブロックを復元(復号)し、復元ブロックをデブロッキングフィルタ230に出力する。
【0106】
デブロッキングフィルタ230は、符号化装置1のデブロッキングフィルタ160と同様な動作を行う。デブロッキングフィルタ230は、合成部220から出力される復元ブロックと当該復元ブロックに隣接するブロックとからなるブロック対(ブロックP及びQ)の境界に対するフィルタ処理を行い、フィルタ処理後の復元ブロックをメモリ240に出力する。
【0107】
フィルタ制御部231は、エントロピー復号部200から出力される情報に基づいて、符号化装置1のフィルタ制御部161と同様な動作を行う。フィルタ制御部231は、例えば、表1に示した方法で境界強度Bsを選択し、式(1)乃至式(15)によりデブロッキングフィルタ160のフィルタ強度を制御する。
【0108】
メモリ240は、デブロッキングフィルタ230から出力される復元ブロックをフレーム単位で復号画像として記憶する。メモリ240は、フレーム単位の復号画像を復号装置2の外部に出力する。
【0109】
予測部250は、ブロック単位で予測を行う。予測部250は、インター予測部251と、イントラ予測部252と、切替部253とを有する。
【0110】
インター予測部251は、メモリ240に記憶された復号画像を参照画像として用いて、復号対象ブロックをインター予測により予測する。インター予測部251は、エントロピー復号部200から出力される動きベクトル情報を用いてインター予測を行うことによりインター予測ブロックを生成し、生成したインター予測ブロックを切替部253に出力する。
【0111】
イントラ予測部252は、メモリ240に記憶された復号画像のうち復号対象ブロックに隣接する参照画素を参照し、エントロピー復号部200から出力される情報に基づいて、復号対象ブロックをイントラ予測により予測する。そして、イントラ予測部252は、イントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部253に出力する。
【0112】
切替部253は、インター予測部251から出力されるインター予測ブロックとイントラ予測部252から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを合成部220に出力する。
【0113】
このように、本実施形態に係る復号装置2は、符号化ストリームを復号することで、復号対象ブロックに対応する変換係数を出力するエントロピー復号部200と、エントロピー復号部200が出力する変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部210と、復元した予測残差と復号対象ブロックを予測して得た予測ブロックとを合成して復号対象ブロックを復元する合成部220と、復元した復号対象ブロックと当該復号対象ブロックに隣接する隣接ブロックとの境界に対するフィルタ処理を行うデブロッキングフィルタ230と、逆量子化処理で用いた量子化パラメータ及び量子化行列に基づいて、デブロッキングフィルタ230のフィルタ強度を制御するフィルタ制御部231とを有する。
【0114】
次に、本実施形態に係るフィルタ制御部231の構成について説明する。
図6は、本実施形態に係るフィルタ制御部231の構成を示す図である。
図6に示すように、本実施形態に係るフィルタ制御部231は、境界強度決定部231aと、代表値導出部231bと、オフセット算出部231cと、閾値導出部231dと、フィルタ強度制御部231eとを有する。
【0115】
境界強度決定部231a、代表値導出部231b、オフセット算出部231c、閾値導出部231d、及びフィルタ強度制御部231eは、符号化装置1の境界強度決定部161a、代表値導出部161b、オフセット算出部161c、閾値導出部161d、及びフィルタ強度制御部161eとそれぞれ同様な動作を行う。
【0116】
<フィルタ制御部の動作例>
次に、本実施形態に係るフィルタ制御部161及びフィルタ制御部231の動作例について説明する。フィルタ制御部161及びフィルタ制御部231は同じ動作を行うため、ここではフィルタ制御部231を例に挙げて説明する。
図7は、本実施形態に係るフィルタ制御部231の動作フロー例を示す図である。
【0117】
図7に示すように、ステップS1において、境界強度決定部231aは、表1に示した方法により境界強度Bsを決定し、決定した境界強度Bsの値を閾値導出部231d及びフィルタ強度制御部231eに出力する。決定された境界強度Bsの値が0である場合、ステップS2以降の処理を行わずに、ブロックP及びQの境界に対するフィルタ処理を行わない。
【0118】
ステップS2において、代表値導出部231bは、ブロックPに対する逆量子化処理で用いた量子化行列の代表値mppを導出するとともに、ブロックQに対する逆量子化処理で用いた量子化行列の代表値mpqを導出し、導出した代表値mpp及びmpqをオフセット算出部231cに出力する。代表値導出部231bが導出する代表値mpとしては、上述した1)乃至3)のいずれかを用いる。
【0119】
ステップS3において、オフセット算出部231cは、代表値導出部231bが導出した代表値mpp及びmpqに基づいて、ブロックP及びQのそれぞれについてオフセット値を算出する。具体的には、オフセット算出部231cは、代表値mppを用いて、上述した式(4)によりブロックPに対するオフセット値QppOffsetを算出し、算出したオフセット値QppOffsetを閾値導出部231dに出力する。同様に、オフセット算出部231cは、代表値mpqを用いて、上述した式(5)によりブロックQに対するオフセット値QpqOffsetを算出し、算出したオフセット値QpqOffsetを閾値導出部231dに出力する。
【0120】
ステップS4において、閾値導出部231dは、ブロックPに対する逆量子化処理で用いた量子化パラメータQpPと、ブロックQに対する逆量子化処理で用いた量子化パラメータQpQと、オフセット算出部231cが算出したオフセット値QppOffset及びQpqOffsetとに基づいて、上述した式(6)により変数qPを算出する。
【0121】
ステップS5において、閾値導出部231dは、変数qPに基づいて、上述した式(7)及び式(8)により変数Qを算出し、算出した変数Qから表2により閾値β及びtCを導出する。
【0122】
ステップS6において、フィルタ強度制御部231eは、境界強度決定部231aが出力する境界強度Bsの値と、閾値導出部231dが出力する閾値β及びtCとに基づいて、デブロッキングフィルタ230のフィルタ強度を制御する。
【0123】
このように、本実施形態に係るフィルタ制御部231は、ブロック単位で設定される一意のパラメータである量子化パラメータだけではなく、量子化行列も考慮してデブロッキングフィルタ230のフィルタ強度を制御する。これにより、量子化行列に起因するブロックノイズの発生に対してデブロッキングフィルタ230のフィルタ強度を制御可能になり、デブロッキングフィルタ230によるブロック歪みの低減効果を向上させることができる。
【0124】
<変更例>
次に、実施形態の変更例について、上述の実施形態との相違点を主として説明する。
【0125】
まず、本変更例に係る符号化装置1について説明する。本変更例に係る符号化装置1において、エントロピー符号化部130は、複数の量子化行列の候補のそれぞれについて規定されたオフセット値からなる配列(以下、「オフセット配列」と呼ぶ)を符号化ストリームに含めて復号装置に伝送する。具体的には、オフセット配列は、符号化対象ブロックの予測モード、ブロックサイズ、及び信号種別(1つの輝度・2つの色差信号)の組み合わせに応じて設定される各量子化行列についてオフセット値を格納したものである。詳細については後述するが、オフセット値は、デブロッキングフィルタ処理におけるフィルタ強度を制御するために用いられる。
【0126】
図8は、本変更例に係るフィルタ制御部161の構成を示す図である。
図8に示すように、本変更例に係るフィルタ制御部161は、境界強度決定部1161aと、オフセット導出部1161bと、閾値導出部1161cと、フィルタ強度制御部1161dとを有する。
【0127】
境界強度決定部1161aは、例えば上記の表1に基づいて境界強度Bsを決定し、決定した境界強度Bsの値を閾値導出部1161c及びフィルタ強度制御部1161dに出力する。本変更例では、境界強度Bsの値は0,1,2のいずれかとする。なお、輝度信号と色差信号のブロックに対する境界強度をそれぞれ算出してもよいし、輝度信号と色差信号のブロックの境界強度の組み合わせを一つの境界強度として判定してもよい。
【0128】
表1に示すように、境界強度決定部1161aは、ブロックP及びQの少なくとも一方にイントラ予測が適用されている場合、Bsの値を2とする。
【0129】
一方、境界強度決定部1161aは、ブロックP及びQの両方にインター予測が適用されており、且つ少なくとも以下の(a)乃至(d)の中の1つの条件を満たす場合には、Bs値を1とし、その他の場合には、Bs値を0とする。
【0130】
(a)ブロックP及びQの少なくとも一方が有意な変換係数(すなわち、非ゼロ変換係数)を含むこと。
【0131】
(b)ブロックP及びQの動きベクトルの数又は参照画像が異なること。
【0132】
(c)ブロックP及びQの動きベクトルの差の絶対値が閾値(例えば1画素)以上であること。
【0133】
境界強度決定部1161aは、決定した境界強度Bsの値が0の場合、ブロックP及びQの境界に対するフィルタ処理を行わないようデブロッキングフィルタ160を制御する。
【0134】
オフセット導出部1161bは、上述したオフセット配列に基づいて、ブロックPに対する量子化処理及び逆量子化処理で用いた量子化行列に対応するオフセット値QppOffsetと、ブロックQに対する量子化処理及び逆量子化処理で用いた量子化行列に対応するオフセット値QpqOffsetとを導出する。
【0135】
例えば、オフセット導出部1161bは、ブロックPに対する量子化処理及び逆量子化処理で用いた量子化行列の番号をkとした場合、オフセット配列中のオフセット値m[k]を取得し、取得したオフセット値m[k]をQppOffsetとする。ここで、kは、予測モード、ブロックサイズ、及び信号種別の組み合わせに応じて定まるブロック種別を示すインデックス値であってもよい。オフセット導出部1161bは、オフセット値m[k]を次の式(16)のようにして変換してQppOffsetとしてもよい。
【0136】
QppOffset=log2(mpp/md)×6 (16)
ただし、mdはデフォルトの量子化行列の値としてシステムに規定される値である。本例では例えばmdを16に設定する。
【0137】
同様に、オフセット導出部1161bは、ブロックQに対する量子化処理及び逆量子化処理で用いた量子化行列の番号をlとした場合、オフセット配列中のオフセット値m[l]を取得し、取得したオフセット値m[l]をQpqOffsetとする。ここで、lは、予測モード、ブロックサイズ、及び信号種別の組み合わせに応じて定まるブロック種別を示すインデックス値であってもよい。オフセット導出部1161bは、オフセット値m[l]を次の式(17)のようにして変換してQpqOffsetとしてもよい。
【0138】
QpqOffset=log2(mpq/md)×6 (17)
式(16)及び(17)において、量子化パラメータQpが対数関数によって増減するパラメータであって、代表値mpをmdで除算して対数をとっている。
【0139】
なお、オフセット導出部1161bでは、ハードウェアでの実装などにおいては、除算やlog2関数の処理の代わりにルックアップテーブルを用いて、式(16)及び式(17)を実装してもよい。
【0140】
例えば式(16)の処理の代わりにルックアップテーブルLUTをLUT[]={18,21,23,26,29,32,36,41,46,51,58,64,72,81,91,102,115,128,144,162,182,204,229,256}としたとき、下記の処理によりQppOffsetを算出してもよい。
if (mpp<md)
[
sign = -1
M = md × md / mpp
]
else
[
sign = 1
M = mpp
]
Q = 0
while (M >= LUT[Q])
[
Q++
]
QppOffset = sign × Q
【0141】
同様に、式(17)の処理の代わりに、下記の処理によりQpqOffsetを算出してもよい。
if (mpq<md)
[
sign = -1
M = md × md / mpq
]
else
[
sign = 1
M = mpq
]
Q = 0
while (M >= LUT[Q])
[
Q++
]
QpqOffset = sign × Q
【0142】
なお、上記はルックアップテーブルを用いたQppOffset及びQpqOffsetの算出の一例であり、上記の例には限らない。
【0143】
閾値導出部1161cは、ブロックPに対する量子化処理及び逆量子化処理で用いた量子化パラメータQpPと、ブロックQに対する量子化処理及び逆量子化処理で用いた量子化パラメータQpQと、オフセット導出部1161bが導出したオフセット値QppOffset及びQpqOffsetとに基づいて、デブロッキングフィルタ160のフィルタ強度を制御するための閾値β及びtCを導出し、導出した閾値β及びtCをフィルタ強度制御部1161dに出力する。
【0144】
第1に、閾値導出部1161cは、例えば次の式(18)により変数qPを算出する。
【0145】
qP=((QpQ+QpqOffset+QpP+QppOffset+1)>>1) (18)
ここで、“>>”はシフト演算子(右シフト演算)を示す。式(18)は、基本的には、ブロックPの量子化パラメータQpPと、ブロックQの量子化パラメータQpQとの平均を求める計算式であるが、この計算式において量子化行列に基づくオフセット値QppOffset及びQpqOffsetが導入されている。なお、式(18)の計算式は一例に過ぎないものであって、量子化行列に基づくオフセット値QppOffset及びQpqOffsetが反映されたものであれば他の計算式を用いてもよい。
【0146】
第2に、閾値導出部1161cは、例えば次の式(19)により、閾値βを導出するためのQを算出する。
【0147】
Q=Clip3(0,63,qP+(slice_beta_offset_div2<<1)) (19)
ここで、“<<”はシフト演算子(左シフト演算)を示す。“Clip3(X,Y,Z)”は、ZがXより小さければXを返し、ZがYより大きければYを返し、それ以外の場合はZを返すクリップ演算子である。slice_beta_offset_div2は、復号装置2にシグナリングするパラメータの1つである。
【0148】
また、閾値導出部1161cは、例えば次の式(20)により、閾値tCを導出するためのQを算出する。
【0149】
Q=Clip3(0,65,qP+2*(bS-1)+(slice_tc_offset_div2<<1)) (20)
ここで、“bS”は境界強度決定部1161aが出力するBs値である。slice_tc_offset_div2は、復号装置2にシグナリングするパラメータの1つである。
【0150】
第3に、閾値導出部1161cは、上記の表2により、それぞれ算出したQから閾値β及びtCを導出する。
【0151】
フィルタ強度制御部1161dは、境界強度決定部1161aが出力する境界強度Bsの値と、閾値導出部1161cが出力する閾値β及びtCとに基づいて、デブロッキングフィルタ160のフィルタ強度を制御する。
【0152】
フィルタ強度制御部1161dは、境界強度Bsの値が1又は2の場合には、上記の式(9)を満たす場合にのみ、フィルタ処理を行うようデブロッキングフィルタ160を制御してもよい(
図3参照)。
【0153】
また、フィルタ強度制御部1161dは、フィルタ処理を行う場合、上記の条件式(10)乃至(15)を全て満たす場合に強いフィルタを適用し、それ以外の場合に弱いフィルタを適用してもよい(
図3参照)。
【0154】
このように、本変更例に係るフィルタ制御部161は、ブロック単位で設定される一意のパラメータである量子化パラメータだけではなく、量子化行列も考慮してデブロッキングフィルタ160のフィルタ強度を制御する。これにより、量子化行列に起因するブロックノイズの発生に対してデブロッキングフィルタ160のフィルタ強度を制御可能になり、デブロッキングフィルタ160によるブロック歪みの低減効果を向上させることができる。
【0155】
次に、本変更例に係る復号装置2について説明する。
【0156】
本変更例に係る復号装置2において、エントロピー復号部200は、符号化装置1により生成された符号化ストリームを復号し、各種のシグナリング情報を復号する。具体的には、エントロピー復号部200は、復号対象ブロックに適用された量子化処理に関する情報を取得し、取得した情報を逆量子化部211及びフィルタ制御部231に出力する。また、エントロピー復号部200は、復号対象ブロックに適用された予測に関する情報(例えば、予測種別情報、動きベクトル情報)を取得し、取得した情報を予測部250及びフィルタ制御部231に出力する。さらに、エントロピー復号部200は、オフセット配列を取得し、取得したオフセット配列をフィルタ制御部231に出力する。
【0157】
このように、本変更例に係る復号装置2は、符号化ストリームを復号することで、複数の量子化行列の候補のそれぞれについて規定されたオフセット値からなる配列と、復号対象ブロックに対応する変換係数とを出力するエントロピー復号部200と、エントロピー復号部200が出力する変換係数に対して逆量子化処理及び逆変換処理を行って予測残差を復元する逆量子化・逆変換部210と、復元した予測残差と復号対象ブロックを予測して得た予測ブロックとを合成して復号対象ブロックを復元する合成部220と、復元した復号対象ブロックと当該復号対象ブロックに隣接する隣接ブロックとの境界に対するフィルタ処理を行うデブロッキングフィルタ230と、逆量子化処理で用いた量子化パラメータ及び量子化行列と、オフセット配列とに基づいて、デブロッキングフィルタ230のフィルタ強度を制御するフィルタ制御部231とを有する。
【0158】
次に、本変更例に係るフィルタ制御部231の構成について説明する。
図9は、本変更例に係るフィルタ制御部231の構成を示す図である。
図9に示すように、本変更例に係るフィルタ制御部231は、境界強度決定部2231aと、オフセット導出部2231bと、閾値導出部2231cと、フィルタ強度制御部2231dとを有する。
【0159】
境界強度決定部2231a、オフセット導出部2231b、閾値導出部2231c、及びフィルタ強度制御部2231dは、符号化装置1の境界強度決定部1161a、オフセット導出部1161b、閾値導出部1161c、及びフィルタ強度制御部1161dとそれぞれ同様な動作を行う。
【0160】
次に、本変更例に係るフィルタ制御部161及びフィルタ制御部231の動作例について説明する。フィルタ制御部161及びフィルタ制御部231は同じ動作を行うため、ここではフィルタ制御部231を例に挙げて説明する。
図10は、本変更例に係るフィルタ制御部231の動作フロー例を示す図である。
【0161】
図10に示すように、ステップS11において、境界強度決定部2231aは、表1に示した方法により境界強度Bsを決定し、決定した境界強度Bsの値を閾値導出部2231c及びフィルタ強度制御部2231dに出力する。決定された境界強度Bsの値が0である場合、ステップS12以降の処理を行わずに、ブロックP及びQの境界に対するフィルタ処理を行わない。
【0162】
ステップS12において、オフセット導出部2231bは、符号化装置1から伝送されたオフセット配列に基づいて、ブロックPに対する逆量子化処理で用いた量子化行列に対応するオフセット値QppOffsetを算出するとともに、ブロックQに対する逆量子化処理で用いた量子化行列に対応するオフセット値QpqOffsetを算出し、オフセット導出部2231b算出したオフセット値QppOffset及びQpqOffsetを閾値導出部2231cに出力する。
【0163】
ステップS13において、閾値導出部2231cは、ブロックPに対する逆量子化処理で用いた量子化パラメータQpPと、ブロックQに対する逆量子化処理で用いた量子化パラメータQpQと、オフセット導出部2231bが導出したオフセット値QppOffset及びQpqOffsetとに基づいて、上述した式(18)により変数qPを算出する。
【0164】
ステップS14において、閾値導出部2231cは、変数qPに基づいて、上述した式(19)及び式(20)により変数Qを算出し、算出した変数Qから表2により閾値β及びtCを導出する。
【0165】
ステップS15において、フィルタ強度制御部2231dは、境界強度決定部2231aが出力する境界強度Bsの値と、閾値導出部2231cが出力する閾値β及びtCとに基づいて、デブロッキングフィルタ230のフィルタ強度を制御する。
【0166】
このように、本変更例に係るフィルタ制御部231は、ブロック単位で設定される一意のパラメータである量子化パラメータだけではなく、量子化行列も考慮してデブロッキングフィルタ230のフィルタ強度を制御する。これにより、量子化行列に起因するブロックノイズの発生に対してデブロッキングフィルタ230のフィルタ強度を制御可能になり、デブロッキングフィルタ230によるブロック歪みの低減効果を向上させることができる。
【0167】
<その他の実施形態>
上述の実施形態に係る符号化装置1および復号装置2では、フィルタ制御部161及び231においてブロックPに適用される量子化行列の代表値およびブロックQに適用される量子化行列の代表値を用いて対象ブロック対ごとにオフセット値QppOffset及びQpqOffsetを算出するよう構成されている。
【0168】
しかしながら、処理の簡略化のために、予測モード(イントラ予測、インター予測の別)、ブロックサイズ(例えば、2x2、4x4、8x8、16x16、32x32、64x64)、及び1つの輝度・2つの色差信号(RGB信号の場合は、R信号、B信号、G信号)のそれぞれの組み合わせについて設定された量子化行列について、オフセット値を算出しメモリに保存しておき、対象ブロック対の各ブロックが輝度信号であるか、あるいは2つの色差信号のどちらであるか、予測モード、ブロックサイズに基づいて、オフセット値をメモリから呼び出すよう構成してもよい。
【0169】
符号化装置1が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。復号装置2が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
【0170】
符号化装置1が行う各処理を実行する回路を集積化し、符号化装置1を半導体集積回路(チップセット、SoC)により構成してもよい。復号装置2が行う各処理を実行する回路を集積化し、復号装置2を半導体集積回路(チップセット、SoC)により構成してもよい。
【0171】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0172】
本願は、日本国特許出願第2019-159971号(2019年9月2日出願)及び日本国特許出願第2019-160251号(2019年9月3日出願)の優先権を主張し、それらの内容のすべてが参照により本願明細書に組み込まれている。