(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-22
(45)【発行日】2024-08-30
(54)【発明の名称】復号装置及びプログラム
(51)【国際特許分類】
H04N 19/129 20140101AFI20240823BHJP
H04N 19/13 20140101ALI20240823BHJP
H04N 19/157 20140101ALI20240823BHJP
H04N 19/176 20140101ALI20240823BHJP
【FI】
H04N19/129
H04N19/13
H04N19/157
H04N19/176
(21)【出願番号】P 2023194983
(22)【出願日】2023-11-16
(62)【分割の表示】P 2019221544の分割
【原出願日】2019-12-06
【審査請求日】2023-11-16
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】井口 和久
(72)【発明者】
【氏名】岩村 俊輔
(72)【発明者】
【氏名】根本 慎平
(72)【発明者】
【氏名】市ヶ谷 敦郎
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2013/0202026(US,A1)
【文献】国際公開第2013/002555(WO,A2)
【文献】Jung-Ah Choi, et al.,Non-CE7: Last position coding for large block-size transforms,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0251-v5,13th Meeting: Marrakech, MA,2019年01月,pp.1-10
【文献】Moonmo Koo, et al.,CE6-related: Context selection of last non-zero coefficient position coding based on reduced TU size,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0194,14th Meeting: Geneva, CH,2019年03月,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像を構成するブロック単位で復号を行う復号装置であって、
復号対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、前記復号対象ブロックに対応する予測ブロックを生成するイントラ予測部と、
符号化ストリームを復号することで、前記復号対象ブロックの変換係数を出力するエン
トロピー復号部と、
前記エントロピー復号部が出力する前記変換係数に対して逆量子化処理及び逆変換処理を行ってブロック単位の予測残差を復元する逆量子化・逆変換部と、
前記予測ブロックと前記復元した予測残差とを合成して前記復号対象ブロックを復元する合成部と、を備え、
前記エントロピー復号部は、前記イントラ予測に用いるイントラ予測モードを示すシンタックスから前記イントラ予測モードを特定することなく、前記変換係数に対する2種類の復号方式のうち、いずれか一方の復号方式を前記シンタックスから直接的に特定することを特徴とする復号装置。
【請求項2】
コンピュータを請求項1に記載の復号装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、復号装置及びプログラムに関する。
【背景技術】
【0002】
HEVC(High Efficiency Video Coding)に代表される符号化方式では、インター予測やイントラ予測による予測画像と原画像との差分により得られる予測残差が一般に低周波成分にエネルギーが集中する傾向があるという性質を利用して、変換処理により予測残差を周波数成分に分解(変換)することで、エントロピーの低減を実現している(例えば、非特許文献1参照)。
【0003】
予測残差に対して変換処理を行うことにより得られる変換係数の最も左上の成分はDC(Direct Current)成分であり、下にいくにつれて垂直方向の周波数の高い成分を、右にいくにつれて水平方向の周波数の高い成分を表している。符号化装置では予測残差をストリーム出力するため、量子化後の変換係数の有意な成分である有意係数の位置や値をエントロピー符号化して伝送する。有意係数とは、ゼロではない変換係数(非ゼロ係数)をいう。
【0004】
符号化装置は、ブロック内の変換係数を高周波から低周波に向かって、符号化順を表すスキャン順に応じてシリアライズし、シリアライズされた変換係数をエントロピー符号化する。その際に、シリアライズされた変換係数のうち最も高周波側の最後の有意係数の位置を示す最終有意係数座標(last position)を伝送し、last positionからDC成分までの有意係数の位置や値を効率的に符号化する。
【0005】
HEVCでは、変換係数の二値化の際のスキャン順がイントラ予測モードに応じて切り替えられる。具体的には、イントラ予測モードに応じた予測残差の分布の統計的な偏りを利用し、適応的にスキャン順を切り替えることにより、符号化効率を改善している。
【0006】
また、HEVCでは、last positionのエントロピー符号化において、last positionのブロック内の座標(DC成分を基準とした相対位置)であるX、Yの2つの値(last_sig_coeff_x,last_sig_coeff_y)を別々にエントロピー符号化する。予測残差は、一般に低周波成分にエネルギーが集中する傾向にあることから、last positionは変換係数の左上領域に生じる可能性が高い。このため、last_sig_coeff_x及びlast_sig_coeff_yを伝送するための二値化の際に、小さい値には少ないビット数を割り当て、大きい値には多くのビット数を割り当てることで、last positionを効率的に符号化している。
【先行技術文献】
【非特許文献】
【0007】
【文献】Recommendation ITU-T H.265,(12/2016), “High efficiency video coding”, International Telecommunication Union
【発明の開示】
【発明が解決しようとする課題】
【0008】
上述のように、イントラ予測モードに応じて予測残差の分布に統計的な偏りが生じる。言い換えると、イントラ予測モードに応じて、変換係数の値が大きくなる確率が高い領域が変化する。例えば、イントラ予測モードが垂直に近い方向性予測モードである場合、ブロック上部に大きな値の変換係数が現われる可能性が高い。
【0009】
同様に、last positionが出現する位置もイントラ予測モードにより変化すると考えられる。例えば、イントラ予測モードが垂直に近い方向性予測モードである場合、ブロック上部にlast positionが現われる可能性が高い。しかしながら、従来の符号化方式では、last positionを伝送するための二値化がイントラ予測モードに応じて制御されていないため、last positionの符号化の効率が悪いという課題があった。
【0010】
そこで、本発明は、最終有意係数座標(last position)の符号化の効率を改善する符号化装置、復号装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の態様に係る復号装置は、画像を構成するブロック単位で復号を行う復号装置であって、復号対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、前記復号対象ブロックに対応する予測ブロックを生成するイントラ予測部と、符号化ストリームを復号することで、前記復号対象ブロックの変換係数を出力するエントロピー復号部と、前記エントロピー復号部が出力する前記変換係数に対して逆量子化処理及び逆変換処理を行ってブロック単位の予測残差を復元する逆量子化・逆変換部と、前記予測ブロックと前記復元した予測残差とを合成して前記復号対象ブロックを復元する合成部と、を備え、前記エントロピー復号部は、前記イントラ予測に用いるイントラ予測モードを示すシンタックスから前記イントラ予測モードを特定することなく、前記変換係数に対する2種類の復号方式のうち、いずれか一方の復号方式を前記シンタックスから直接的に特定することを要旨とする。一実施形態に係る符号化装置は、画像を構成するブロック単位で符号化を行う符号化装置であって、符号化対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、前記符号化対象ブロックに対応する予測ブロックを生成するイントラ予測部と、前記符号化対象ブロックと前記予測ブロックとの差を表すブロック単位の予測残差に対して変換処理及び量子化処理を行う変換・量子化部と、前記変換・量子化部が出力するブロック単位の変換係数を符号化するエントロピー符号化部と、を備え、前記エントロピー符号化部は、前記イントラ予測に用いたイントラ予測モードに基づいて、前記変換係数に含まれる最終有意係数の位置を示す最終有意係数座標の二値化に適用する二値化方式を決定する符号化制御部を有することを要旨とする。
【0012】
一実施形態に係る復号装置は、画像を構成するブロック単位で復号を行う復号装置であって、復号対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、前記復号対象ブロックに対応する予測ブロックを生成するイントラ予測部と、符号化ストリームを復号することで、前記復号対象ブロックの変換係数を出力するエントロピー復号部と、前記エントロピー復号部が出力する前記変換係数に対して逆量子化処理及び逆変換処理を行ってブロック単位の予測残差を復元する逆量子化・逆変換部と、前記予測ブロックと前記復元した予測残差とを合成して前記復号対象ブロックを復元する合成部と、を備え、前記エントロピー復号部は、前記イントラ予測に用いるイントラ予測モードに基づいて、前記変換係数に含まれる最終有意係数の位置を示す最終有意係数座標の二値化に適用されている二値化方式を特定する復号制御部を有することを要旨とする。
【0013】
一実施形態に係るプログラムは、コンピュータを上述の符号化装置として機能させることを要旨とする。
【0014】
一実施形態に係るプログラムは、コンピュータを上述の復号装置として機能させることを要旨とする。
【発明の効果】
【0015】
本発明によれば、最終有意係数座標(last position)の符号化の効率を改善する符号化装置、復号装置、及びプログラムを提供できる。
【図面の簡単な説明】
【0016】
【
図1】実施形態に係る符号化装置1の構成を示す図である。
【
図2】実施形態に係るイントラ予測モードの候補を示す図である。
【
図3】実施形態に係るエントロピー符号化部の構成を示す図である。
【
図4】実施形態に係るシリアライズ部の動作例を示す図である。
【
図5】実施形態に係るシリアライズ部の動作例を示す図である。
【
図6】実施形態に係る符号化制御部及び復号制御部の動作を示す図である。
【
図7】実施形態に係る対応付け情報を示す図である。
【
図8】座標値の表現に必要なビット数を示す図である。
【
図9】実施形態に係る復号装置の構成を示す図である。
【
図10】実施形態に係るエントロピー復号部の構成を示す図である。
【
図11】その他の実施形態を説明するための図である。
【発明を実施するための形態】
【0017】
図面を参照して、実施形態に係る符号化装置及び復号装置について説明する。実施形態に係る符号化装置及び復号装置は、MPEGに代表される動画像の符号化及び復号をそれぞれ行う。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0018】
<符号化装置>
本実施形態に係る符号化装置について説明する。
【0019】
(符号化装置の構成)
まず、本実施形態に係る符号化装置の構成について説明する。
図1は、本実施形態に係る符号化装置1の構成を示す図である。
【0020】
図1に示すように、符号化装置1は、ブロック分割部100と、減算部110と、変換・量子化部120と、エントロピー符号化部130と、逆量子化・逆変換部140と、合成部150と、メモリ160と、予測部170とを有する。
【0021】
ブロック分割部100は、動画像を構成するフレーム(或いはピクチャ)単位の入力画像である原画像を複数の画像ブロックに分割し、分割により得た画像ブロックを減算部110に出力する。画像ブロックのサイズは、例えば32×32画素、16×16画素、8×8画素、又は4×4画素等である。画像ブロックの形状は正方形に限らず長方形(非正方形)であってもよい。画像ブロックは、符号化装置1が符号化を行う単位(すなわち、符号化対象ブロック)であり、且つ復号装置が復号を行う単位(すなわち、復号対象ブロック)である。このような画像ブロックはCU(Coding Unit)と呼ばれることがある。
【0022】
例えば、ブロック分割部100は、画像を構成する輝度信号及び色差信号に対してブロック分割を行うことで、輝度ブロック及び色差ブロックを出力する。輝度信号と色差信号とで分割を独立に制御可能であってもよい。輝度ブロック及び色差ブロックを特に区別しないときは単に符号化対象ブロックと呼ぶ。
【0023】
減算部110は、ブロック分割部100から出力される符号化対象ブロックと、符号化対象ブロックを予測部170が予測して得た予測ブロックとの差分(誤差)を表す予測残差を算出する。具体的には、減算部110は、ブロックの各画素値から予測ブロックの各画素値を減算することにより予測残差を算出し、算出した予測残差を変換・量子化部120に出力する。
【0024】
変換・量子化部120は、ブロック単位で変換処理及び量子化処理を行う。変換・量子化部120は、変換部121と、量子化部122とを有する。
【0025】
変換部121は、減算部110から出力される予測残差に対して変換処理を行って変換係数を算出し、算出した変換係数を量子化部122に出力する。変換処理とは、例えば、離散コサイン変換(DCT)や離散サイン変換(DST)、カルーネンレーブ変換(KLT)等をいう。但し、変換処理には、画素領域の信号を周波数領域の信号に変換することなくスケーリング等により調整する変換スキップを含んでもよい。変換部121は、符号化対象ブロックに適用する変換処理に関する情報をエントロピー符号化部130に出力する。
【0026】
量子化部122は、変換部121から出力される変換係数を量子化パラメータ(Qp)及び量子化行列を用いて量子化し、量子化した変換係数をエントロピー符号化部130及び逆量子化・逆変換部140に出力する。
【0027】
エントロピー符号化部130は、量子化部122から出力される変換係数に対してエントロピー符号化を行い、データ圧縮を行って符号化データ(ビットストリーム)を生成し、符号化データを符号化装置1の外部に出力する。エントロピー符号化には、ハフマン符号やCABAC(Context-based Adaptive Binary Arithmetic Coding;コンテキスト適応型2値算術符号)等を用いることができる。具体的には、エントロピー符号化部130は、2次元に配列された変換係数を所定のスキャン順で読み出し、サブブロック単位で符号化を行う。
【0028】
エントロピー符号化部130は、このような変換係数のスキャン処理及び符号化処理に加えて、変換部121から出力される変換処理に関する情報の符号化や、予測部170から出力される予測処理に関する情報の符号化も行う。
【0029】
逆量子化・逆変換部140は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部140は、逆量子化部141と、逆変換部142とを有する。
【0030】
逆量子化部141は、量子化部122が行う量子化処理に対応する逆量子化処理を行う。具体的には、逆量子化部141は、量子化部122から出力される変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより変換係数を復元し、復元した変換係数を逆変換部142に出力する。
【0031】
逆変換部142は、変換部121が行う変換処理に対応する逆変換処理を行う。例えば、変換部121が離散コサイン変換を行った場合には、逆変換部142は逆離散コサイン変換を行う。逆変換部142は、逆量子化部141から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差である復元予測残差を合成部150
に出力する。
【0032】
合成部150は、逆変換部142から出力される復元予測残差を、予測部170から出力される予測ブロックと画素単位で合成する。合成部150は、復元予測残差の各画素値と予測ブロックの各画素値を加算して符号化対象ブロックを復号(再構成)し、復号済みブロックをメモリ160に出力する。なお、復号済みブロックは、再構成ブロックと呼ばれることもある。
【0033】
メモリ160は、合成部150から出力される復号済みブロックを記憶し、復号済みブロックをフレーム単位で復号済み画像として蓄積する。メモリ160は、記憶している復号済みブロック若しくは復号済み画像を予測部170に出力する。なお、合成部150とメモリ160との間にループフィルタが設けられてもよい。
【0034】
予測部170は、ブロック単位で予測処理を行う。予測部170は、インター予測部171と、イントラ予測部172と、切替部173とを有する。
【0035】
インター予測部171は、フレーム間の相関を利用したインター予測を行う。具体的には、インター予測部171は、メモリ160に記憶された復号済み画像を参照画像として用いて、ブロックマッチングなどの手法により動きベクトルを算出し、インター予測の対象ブロックを予測してインター予測ブロックを生成し、生成したインター予測ブロックを切替部173に出力する。ここで、インター予測部171は、複数の参照画像を用いるインター予測(典型的には、双予測)や、1つの参照画像を用いるインター予測(片方向予測)の中から最適なインター予測方法を選択し、選択したインター予測方法を用いてインター予測を行う。インター予測部171は、インター予測に関する情報(動きベクトル等)をエントロピー符号化部130に出力する。
【0036】
イントラ予測部172は、フレーム内の空間的な相関を利用したイントラ予測を行う。具体的には、イントラ予測部172は、メモリ160に記憶された復号済み画像のうち、イントラ予測の対象ブロックの周辺にある復号済み画素を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部173に出力する。イントラ予測部172は、複数のイントラ予測モードの中から、イントラ予測の対象ブロックに適用するイントラ予測モードを選択し、選択したイントラ予測モードを用いて対象ブロックを予測する。イントラ予測部172は、選択したイントラ予測モードを示すイントラ予測モードシンタックスをエントロピー符号化部130に出力する。
【0037】
イントラ予測モードシンタックスには、例えば、intra_luma_mpm_flag、intra_luma_not_planar_flag、intra_luma_mpm_idx、及びintra_luma_mpm_remainderがある。
【0038】
intra_luma_mpm_flagは、イントラ予測に用いたイントラ予測モードが複数の優先イントラ予測モード(以下、「MPMモード」と呼ぶ)に含まれるか否かを示すフラグである。intra_luma_mpm_flagが“1”である場合、イントラ予測モードがMPMモードに含まれることを示す。一方、intra_luma_mpm_flagが“0”である場合、イントラ予測モードがMPMモードに含まれない、すなわち、イントラ予測モードが複数の非優先イントラ予測モード(以下、「非MPMモード」と呼ぶ)に含まれることを示す。
【0039】
intra_luma_not_planar_flagは、intra_luma_mpm_flagが“1”である場合において、イントラ予測モードがPlanarモードであるか否かを示すフラグである。intra_luma_not_planar_f
lagが“1”である場合、イントラ予測モードがPlanarモードではないことを示す。一方、intra_luma_not_planar_flagが“0”である場合、イントラ予測モードがPlanarモードであることを示す。
【0040】
intra_luma_mpm_idxは、intra_luma_not_planar_flagが“1”である場合において、イントラ予測モードがMPMの何番目であるかを示すインデックスである。なお、intra_luma_mpm_idxはTruncated Unary encodingを用いてMPM1からMPM5までのいずれかの番号を示す。
【0041】
intra_luma_mpm_remainderは、intra_luma_mpm_flagが“0”である場合において、非MPMのイントラ予測モードのいずれかを示す非MPMモード番号である。
【0042】
切替部173は、インター予測部171から出力されるインター予測ブロックとイントラ予測部172から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを減算部110及び合成部150に出力する。
【0043】
図2は、本実施形態に係るイントラ予測モードの候補を示す図である。
図2に示すように、イントラ予測モードの候補は、0から66までの67通りがある。イントラ予測モードのモード「0」はPlanar予測であり、イントラ予測モードのモード「1」はDC予測であり、イントラ予測モードのモード「2」乃至「66」は方向性予測である。
【0044】
方向性予測において、矢印の方向は参照方向を示し、矢印の起点は予測対象の画素の位置を示し、矢印の終点はこの予測対象画素の予測に用いる参照画素の位置を示す。ブロックの右上頂点及び左下頂点を通る対角線に平行な参照方向として、左下方向を参照するイントラ予測モードであるモード「2」と、右上方向を参照するイントラ予測モードであるモード「66」とがあり、モード「2」からモード「66」まで時計回りに所定角度ごとにモード番号が割り振られている。なお、モード「2」乃至「18」は、イントラ予測の対象ブロックの左側のみの参照画素を参照する予測モードである。一方で、モード「50」乃至「66」は、イントラ予測の対象ブロックの上側のみの参照画素を参照する予測モードである。
【0045】
このように、本実施形態に係る符号化装置1は、画像を構成するブロック単位で符号化を行う。符号化装置1は、符号化対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、符号化対象ブロックに対応する予測ブロックを生成するイントラ予測部172と、符号化対象ブロックと予測ブロックとの差を表すブロック単位の予測残差に対して変換処理及び量子化処理を行う変換・量子化部120と、変換・量子化部120が出力するブロック単位の変換係数を符号化するエントロピー符号化部130とを有する。
【0046】
(エントロピー符号化部の構成)
次に、本実施形態に係るエントロピー符号化部130の構成について説明する。
図3は、本実施形態に係るエントロピー符号化部130の構成を示す図である。
【0047】
図3に示すように、エントロピー符号化部130は、シリアライズ部131と、二値化部132と、符号化部133と、符号化制御部134とを有する。
【0048】
シリアライズ部131は、ブロック単位の変換係数について、このブロック内の変換係数をスキャン順によりスキャン(シリアライズ)し、シリアライズ後の変換係数を二値化部132に出力する。
【0049】
図4及び
図5は、本実施形態に係るシリアライズ部131の動作例を示す図である。
図4及び
図5において、符号化対象ブロックのサイズが8×8である一例を示している。ここでは、4×4単位でのサブブロック単位でスキャンを行う一例を示している。
【0050】
図4に示すように、シリアライズ部131は、斜め方向スキャンにより、ブロック内の変換係数を最高周波数成分からDC成分に向かってスキャンする。
【0051】
図5に示すように、シリアライズ部131は、シリアライズされた変換係数のうち、最も高周波側の最後の有意係数の位置を示す最終有意係数座標(last position)を生成し、last positionを二値化部132に出力する。具体的には、シリアライズ部131は、スキャン順で最初の有意係数の座標(すなわち、DC成分を基準とした相対位置)をx,yの2つの値(last_sig_coeff_x,last_sig_coeff_y)で表現したlast positionを二値化部132に出力する。ここで、last_sig_coeff_xはX座標値であり、last_sig_coeff_yはY座標値である。
図5の例において、(last_sig_coeff_x,last_sig_coeff_y)=(6,5)である。last_sig_coeff_x及びlast_sig_coeff_yのそれぞれは、プリフィックス部とサフィックス部とで構成される。
【0052】
また、シリアライズ部131は、サブブロック単位で変換係数の構成を示す各種情報(シンタックス要素)を生成し、生成した情報を二値化部132に出力する。例えば、シリアライズ部131は、サブブロック内に有意係数があるか否かを示すフラグであるcoded_sub_block_flagを二値化部132に出力する。
図5の例において、シリアライズ部131は、左下サブブロックについては、このサブブロック内に有意係数が無いことを示すcoded_sub_block_flagを二値化部132に出力する。
【0053】
また、本実施形態において、符号化制御部134は、イントラ予測部172が出力するイントラ予測モードシンタックスに基づいて、変換係数に含まれる最終有意係数の位置を示すlast positionの二値化に適用する二値化方式を決定する。符号化制御部134は、決定した二値化方式で二値化を行うように二値化部132を制御する。
【0054】
図6は、本実施形態に係る符号化制御部134の動作を示す図である。
【0055】
図6(a)に示すように、符号化対象ブロックに適用されたイントラ予測モードが垂直方向の方向性予測モードを示す場合、ブロック上部に大きな変換係数及び最終有意係数がある可能性が高い。略垂直方向の方向性予測モードとは、
図2に示す方向性予測モードのうち垂直方向予測を含む一定の範囲内の方向性予測モードをいう。
【0056】
また、
図2に示す方向性予測モードのうち水平方向予測を含む一定の範囲内の方向性予測モードを、略水平方向の方向性予測モードという。
【0057】
本実施形態において、符号化制御部134は、符号化対象ブロックのイントラ予測に用いたイントラ予測モードを示すイントラ予測モードシンタックスに応じて、略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるかを決定する。ここで、符号化制御部134は、イントラ予測モードを示すイントラ予測モードシンタックスからイントラ予測モードを特定することなく、イントラ予測モードを示すイントラ予測モードシンタックスから略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるかを直接的に決定する。
【0058】
具体的には、符号化制御部134は、イントラ予測に用いたイントラ予測モードが非MPMモードに含まれることをintra_luma_mpm_flagが示す場合、すなわち、intra_luma_mpm_flagが“0”である場合、イントラ予測モードを示すイントラ予測モードシンタックスから略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるかを直接的に決定する。
【0059】
例えば、符号化制御部134は、イントラ予測に用いたイントラ予測モードが非MPMモードに含まれることをintra_luma_mpm_flagが示す場合、各非MPMモード番号をイントラ予測モードのグループと対応付ける対応付け情報を用いて、イントラ予測モードを示すイントラ予測モードシンタックスに含まれる非MPMモード番号(intra_luma_mpm_remainder)に応じて、略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるか決定する。
【0060】
図7は、本実施形態に係る対応付け情報を示す図である。
【0061】
図7に示すように、6つのMPMモード以外の61の非MPMモード(non-MPM mode)について、参照方向が左下から右上にかけて小さい番号から順に番号を割り当てて表している。各非MPMモード番号には、イントラ予測モードのグループ(group)が対応付けられている。
【0062】
具体的には、非MPMモード番号は、第1グループ乃至第3グループにグループ分けされている。第1グループは、方向性予測モードであって、予測方向が垂直方向よりも水平方向に近いイントラ予測モードと対応付けられたグループである。第2グループは、方向性予測モードであって、予測方向が水平方向よりも垂直方向に近いイントラ予測モードと対応付けられたグループである。第3グループは、第1グループ及び第2グループ以外のグループである。
【0063】
図7において、非MPMモード番号“9”乃至“20”が第1グループに相当し、非MPMモード番号“39”乃至“52”が第2グループに相当し、それ以外の非MPMモード番号が第3グループに相当する。対応付け情報は、第1グループを略水平方向の方向性予測モード(group=1)と対応付け、第2グループを略垂直方向の方向性予測モード(group=2)と対応付け、第3グループをそれ以外の予測モード(group=0)と対応付ける。
【0064】
ここで、どのようなイントラ予測モードがMPMモードに選択されても、水平方向又は垂直方向にある程度近い非MPMモードがgroup=1又はgroup=2に含まれるように範囲を設定している。また、この範囲は
図7に示す例に固定されるものではなく、範囲は可変であるものとする。
【0065】
また、intra_luma_mpm_flagが“1”である場合、intra_luma_mpm_flagが“0”である場合(すなわち、イントラ予測に用いたイントラ予測モードがMPMモードに含まれることをintra_luma_mpm_flagが示す場合)は、group=0(それ以外の予測モード)と決定する。
【0066】
符号化制御部134は、イントラ予測モードが非MPMモードに含まれることをintra_luma_mpm_flagが示す場合、
図7に示すようなテーブル(対応付け情報)を用いて、イントラ予測モードシンタックスに含まれる非MPMモード番号(intra_luma_mpm_remainder)をスキャン順の番号(“0”、“1”、“2”のいずれか)に変換できるため、非MPMモード番号から略水平方向の方向性予測モードであるか、略垂直方向の方向性予測モードであるか、それ以外の予測モードであるかを直接的に決定できる。
【0067】
図6(a)に示すように、符号化対象ブロックに適用されたイントラ予測モードシンタックスが略垂直方向の方向性予測モードを示す場合、符号化制御部134は、last positionを構成するX座標値(last_sig_coeff_x)に固定長二値化方式を適用するとともに、last positionを構成するY座標値(last_sig_coeff_y)に可変長二値化方式を適用する。
【0068】
ここで、固定長二値化方式は、二値化後のビット数が既定ビット数になる二値化方式である。固定長二値化方式は、固定長バイナライゼーションと呼ばれてもよい。以下において、固定長二値化方式が適用されるべき座標値を適宜「P座標値」と呼ぶ。
【0069】
一方、可変長二値化方式は、座標値の増加につれて二値化後のビット数が多くなる二値化方式である。言い換えると、可変長二値化方式は、座標値の減少につれて二値化後のビット数が少なくなる二値化方式である。可変長二値化方式は、トランケーデッド・ライス・バイナライゼーションであってもよい。以下において、可変長二値化方式が適用されるべき座標値を適宜「Q座標値」と呼ぶ。
【0070】
座標値が小さい場合、可変長二値化方式は、固定長二値化方式に比べて二値化後のビット数が少なくなる。
図6(a)の場合、ブロック上部に最終有意係数がある可能性が高い、すなわち、Y座標値が小さい値である可能性が高いため、Y座標値(last_sig_coeff_y)に可変長二値化方式を適用することにより、二値化後のビット数を少なくすることができる。
【0071】
一方、座標値が大きい場合、固定長二値化方式は、可変長二値化方式に比べて二値化後のビット数が少なくなる。
図6(a)の場合、ブロック上部に最終有意係数がある可能性が高いが、X座標値は大きい値になり得る。このため、X座標値(last_sig_coeff_x)に固定長二値化方式を適用することにより、二値化後のビット数を少なくすることができる。但し、ブロックサイズが小さいような場合、座標値がそもそも小さい値であるため、例外的に、X座標値に可変長二値化方式を適用してもよい。
【0072】
図6(b)に示すように、符号化対象ブロックに適用されたイントラ予測モードが略水平方向の方向性予測モードを示す場合、ブロック左部に大きな変換係数及び最終有意係数がある可能性が高い。略水平方向の方向性予測モードとは、上述したように、
図2に示す方向性予測モードのうち水平方向予測を含む一定の範囲内の方向性予測モードをいう。
【0073】
また、
図6(b)に示すように、符号化対象ブロックに適用されたイントラ予測モードが略水平方向の方向性予測モードを示す場合、符号化制御部134は、last positionを構成するX座標値(last_sig_coeff_x)に可変長二値化方式を適用するとともに、last positionを構成するY座標値(last_sig_coeff_y)に固定長二値化方式を適用する。
【0074】
上述のように、座標値が小さい場合、可変長二値化方式は、固定長二値化方式に比べて二値化後のビット数が少なくなる。
図6(b)の場合、ブロック左部に最終有意係数がある可能性が高い、すなわち、X座標値が小さい値である可能性が高いため、X座標値(last_sig_coeff_x)に可変長二値化方式を適用することにより、二値化後
のビット数を少なくすることができる。
【0075】
一方、座標値が大きい場合、固定長二値化方式は、可変長二値化方式に比べて二値化後のビット数が少なくなる。
図6(b)の場合、ブロック左部に最終有意係数がある可能性が高いが、Y座標値は大きい値になり得る。このため、Y座標値(last_sig_coeff_y)に固定長二値化方式を適用することにより、二値化後のビット数を少なくすることができる。但し、ブロックサイズが小さいような場合、座標値がそもそも小さい値であるため、例外的に、Y座標値に可変長二値化方式を適用してもよい。
【0076】
図6(c)に示すように、符号化対象ブロックに適用されたイントラ予測モードシンタックスが略垂直方向の方向性予測モード及び略水平方向の方向性予測モード以外のイントラ予測モードシンタックスである場合(すなわち、符号化制御部134がgroup=0と決定した場合)、ブロック左上部に大きな変換係数及び最終有意係数がある可能性が高い。
【0077】
図7(c)の場合、符号化制御部134は、last positionを構成するX座標値(last_sig_coeff_x)及びY座標値(last_sig_coeff_y)の両方に可変長二値化方式を適用する。
【0078】
上述のように、座標値が小さい場合、可変長二値化方式は、固定長二値化方式に比べて二値化後のビット数が少なくなる。
図7(c)の場合、X座標値及びY座標値の両方が小さい値である可能性が高いため、X座標値(last_sig_coeff_x)及びY座標値(last_sig_coeff_y)の両方に可変長二値化方式を適用することにより、二値化後のビット数を少なくすることができる。
【0079】
図3に戻り、二値化部132は、シリアライズ部131が出力する多値信号を二値信号へ変換し、二値信号を符号化部133に出力する。二値化部132は、符号化制御部134により決定された二値化方式に応じて、last_sig_coeff_x及びlast_sig_coeff_yのそれぞれを二値化(バイナライゼーション)する。
【0080】
符号化部133は、二値化部132が出力する二値信号を算術符号化により符号化して符号化ストリームを生成し、生成した符号化ストリームを出力する。
【0081】
(二値化の具体例)
次に、本実施形態に係る二値化の具体例について説明する。
【0082】
第1に、本実施形態の比較例として、HEVC方式における最終有意係数の二値化方式について説明する。HEVC方式、ブロック内における最終有意係数(last significant coefficient)のX座標値及びY座標値を伝送する。X座標値については、プリフィックス部であるlast_sig_coeff_x_prefixとサフィックス部であるlast_sig_coeff_x_suffixとに分けて伝送する。
【0083】
ここで、last_sig_coeff_x_prefixの最小値は0、最大値は(log2TrafoSize<<1)-1であり、TR(Truncated Rice)(RiceParam=0)で二値化される。ここで、「log2TrafoSize」はブロックの辺長の2を底とした対数である。例えば、ブロックサイズの幅が16の場合、log2TrafoSizeは4となり、伝送されるlast_sig_coeff_x_prefixの最大値は7となる。
【0084】
ここで、RiceParam=0のTRは、二値化対象の値の数だけ”1”を並べ、その値が最大値未満の場合は最後に”0”をN並べることで二値化を行う。例えば、最大値が7のとき、TR(RiceParam=0)で4を二値化すると”11110”となり、7を二値化すると”1111111”となる。
【0085】
last_sig_coeff_x_suffixは、last_sig_coeff_x_prefix<=3の場合、伝送されない。last_sig_coeff_x_prefix>3の場合、伝送されるlast_sig_coeff_x_suffixの最小値は0、最大値は(1<<((last_sig_coeff_x_prefix>>1)-1))-1であり、FL(Fixed-Length)で二値化される。例えば、ブロックサイズが16×16で、last_sig_coeff_x_prefixが10の場合、伝送されるlast_sig_coeff_x_suffixの最大値は3となる。
【0086】
ここで、FLは、ceil(log2(二値化対象の最大値+1))ビットの二進数として、二値化対象の値を二値化する。例えば、最大値が7のとき、FLで4を二値化すると”100”となり、7を二値化すると”111”となる。
【0087】
X座標値は、last_sig_coeff_x_suffixが伝送されない場合はX=last_sig_coeff_x_prefixとして求め、last_sig_coeff_x_suffixが伝送される場合はX=(1<<((last_sig_coeff_x_prefix>>1)-1)*(2+(last_sig_coeff_x_prefix & 1))+last_sig_coeff_x_suffixとして求める。
【0088】
Y座標値についても同様であり、last_sig_coeff_y_prefix及びlast_sig_coeff_y_suffixを用いて伝送する。
【0089】
次世代符号化方式であるVVC方式では、長方形のブロックがあるため、上記のlog2TrafoSizeの代わりにX座標値についてはブロックサイズの幅の2を底とした対数であるlog2ZoTbWidthを用い、Y座標値についてはブロックサイズの高さの2を底とした対数であるlog2ZoTbHeightを用いる点が異なる。
【0090】
上述のように、最終有意係数のX座標値及びY座標値の表現に用いる二値化後のビット数は、ブロックの左上が最も少なく、右あるいは下に行くほど大きくなる。
【0091】
図8は、座標値の表現に必要なビット数を示す図である。ここでは、16×16のブロックサイズの場合の例を示す。
【0092】
図8(a)に示すように、最終有意係数のX座標値が白抜きで示す領域にある場合、last_sig_coeff_x_prefixのみを伝送し、last_sig_coeff_x_suffixは伝送しない。したがって、最も短い二値化後ビット数でX座標値が表現可能な領域である。
【0093】
図8(a)に示すように、最終有意係数のX座標値が斜線で示す領域にある場合、last_sig_coeff_x_prefixに加え、last_sig_coeff_x_suffixを伝送し、last_sig_coeff_x_suffixの最大値は1である。
【0094】
図8(a)に示すように、最終有意係数のX座標値が網掛けで示す領域にある場合、last_sig_coeff_x_prefixに加え、last_sig_coeff_x_suffixも伝送し、last_sig_coeff_x_suffix最大値は3である。したがって、X座標値の表現に最も長い二値化後ビット数が必要な領域である。
【0095】
Y座標値についても同様であり、各領域を
図8(b)に示す。
【0096】
比較例の二値化方式は、イントラ予測の方向性を考慮していないため、二値化後のビット数が増加し得る。例えば、略垂直方向の方向性予測モードの場合(すなわち垂直に近い方向性予測モード)の場合、ブロック上部に最終有意係数が出現する確率が高いにもかかわらず、X座標値が大きいと、X座標値の表現に必要なビット数が増加してしまう。
【0097】
例えば、略垂直方向の方向性予測モードの場合(すなわち、垂直に近い方向性予測モード)の場合、
図8に示す16×16のブロックにおいて(X,Y)=(14,0)の位置に最終有意係数がある可能性は、(X,Y)=(0,3)の位置に最終有意係数がある可能性より高い。しかしながら、(X,Y)=(14,0)の位置に最終有意係数がある場合の方が、(X,Y)=(0,3)の位置に最終有意係数がある場合に比べて、最終有意係数位置の表現に必要な二値化後ビット数が多くなってしまう。
【0098】
具体的には、(X,Y)=(14,0)のX座標値“14”を二値化すると、last_sig_coeff_x_prefix=“1111111”、last_sig_coeff_x_suffix=“10”であり、Y座標値“0”を二値化すると、last_sig_coeff_y_prefix=“0”、last_sig_coeff_y_suffixは伝送なしとなり、X座標値及びY座標値の合計で二値化後ビット数が10ビットである。
【0099】
一方、(X,Y)=(0,3)のX座標値“0”を二値化すると、last_sig_coeff_x_prefix=“0”、last_sig_coeff_x_suffix伝送なしであり、Y座標値“3”を二値化すると、last_sig_coeff_y_prefix=“1110”、last_sig_coeff_y_suffixは伝送なしとなり、X座標値及びY座標値の合計で二値化後ビット数が5ビットである。
【0100】
なお、この後でprefixについては符号化部133で算術符号化を行うため、二値化後のビット数で符号化後のストリームの長短と直結はしないが、算術符号化前のビット数が少ないほど一般的に符号化後のストリームも短い傾向がある。一方、suffixはバイパスで符号化されるため、二値化後ビット数と符号化後ビット数とが一致する。
【0101】
第2に、本実施形態に係る二値化について説明する。以下の具体例では、X座標値、Y座標値のかわりに、P座標値、Q座標値という用語を用いる。
【0102】
上述のように、P座標値は、固定長二値化方式で二値化されるため、位置に応じた二値化後ビット数の変化が少ない。これに対し、Q座標値は、HEVCと同様な可変長二値化方式で二値化されるため、位置に応じた二値化後ビット数の変化が大きい。
【0103】
以下において、P座標値に対応するブロックの辺の長さをpSizeとし、pSizeの2を底とする対数をlog2pSizeとする。Q座標値に対応するブロックの辺の長さをqSizeとし、qSizeの2を底とする対数をlog2qSizeとする。
【0104】
本実施形態では、イントラ予測モードシンタックスが略垂直方向の方向性予測モードである場合、X座標値の表現としてP座標値の表現を用い、Y座標値の表現としてQ座標値の表現を用いる。イントラ予測モードシンタックスが略水平方向の方向性予測モードである場合、X座標値の表現としてQ座標値の表現を用い、Y座標値の表現としてP座標値の表現を用いる。それ以外の場合は、X座標値の表現及びY座標値の表現ともにQ座標値の表現を用いる(この場合、X座標値、Y座標値ともにHEVCの二値化方式と等しくなる)。
【0105】
エントロピー符号化部130は、P座標値については、last_sig_coeff_p_suffixを伝送し、last_sig_coeff_p_prefixは伝送しない。なお、last_sig_coeff_p_suffixの最大値は、pLengthである。
【0106】
エントロピー符号化部130は、Q座標値については、last_sig_coeff_q_prefix及びlast_sig_coeff_q_suffixの両方を伝送する。last_sig_coeff_q_prefixの最小値は0、最大値は(log2qSize<<1)-1である。ここで、log2qSizeはブロックの辺長の2を底とした対数である。例えば、変換ブロックサイズの幅が16の場合、log2qSizeは4となり、伝送されるlast_sig_coeff_q_prefixの最大値は7となる。
【0107】
last_sig_coeff_q_suffixは、last_sig_coeff_q_prefix<=3の場合は伝送しない。last_sig_coeff_q_prefix>3の場合、伝送されるlast_sig_coeff_q_suffixの最小値は0、最大値は(1<<((last_sig_coeff_q_prefix>>1)-1))-1である。
【0108】
Q座標値は、last_sig_coeff_q_suffixが伝送されない場合はQ=last_sig_coeff_q_prefixとして求め、last_sig_coeff_q_suffixが伝送される場合はQ=(1<<((last_sig_coeff_q_prefix>>1)-1)*(2+(last_sig_coeff_q_prefix & 1))+last_sig_coeff_q_suffixとして求める。
【0109】
本実施形態では、上記と同様な条件下で、16×16のブロックにおいて(X,Y)=(14,0)及び(X,Y)=(0,3)のそれぞれを二値化すると、次のようになる。具体的には、略垂直方向の方向性予測モードの場合、X座標値の表現としてP座標値の表現を用い、Y座標値の表現としてQ座標値の表現を用いる。
【0110】
(X,Y)=(14,0)のX座標値(P座標値)“14”を二値化すると、last_sig_coeff_x_prefixは伝送なし、last_sig_coeff_x_suffix=”1110”であり、Y座標値(Q座標値)“0”を二値化すると、last_sig_coeff_y_prefix=“0”、last_sig_coeff_y_suffixは伝送なしとなり、X座標値及びY座標値の合計で二値化後ビット数が5ビットである。
【0111】
(X,Y)=(0,3)のX座標値(P座標値)“0”を二値化すると、last_sig_coeff_x_prefixは伝送なし、last_sig_coeff_x_suffix=“0000”であり、Y座標値(Q座標値)“3”を二値化すると、last_sig_coeff_y_prefix=“1110”、last_sig_coeff_y_suffixは伝送なしとなり、X座標値及びY座標値の合計で二値化後ビット数が8ビットである。
【0112】
略垂直方向の方向性予測モードの場合、(X,Y)=(14,0)の位置に最終有意係数がある確率は、(X,Y)=(0,3)の位置に最終有意係数がある確率が高いため、本実施形態に係るエントロピー符号化部130によれば二値化後ビット数を比較例よりも削減できる。
【0113】
但し、本実施形態において、P座標値の最大値とQ座標値の最大値とが大きく異なる場合、すなわち、ブロックが縦長又は横長の形状である場合、エントロピー符号化部130は、P座標値も従来の表現(すなわち、可変長二値化方式)で二値化及び伝送してもよい。大きく異なるとは、P座標値及びQ座標値のうち大きい方の最大値が、小さい方の最大値の例えば2倍以上の場合をいう。
【0114】
また、本実施形態において、P座標値の最大値が所定値以下である場合、エントロピー符号化部130は、P座標値も従来の表現(すなわち、可変長二値化方式)で二値化及び伝送してもよい。所定値は、例えば4である。
【0115】
<復号装置>
次に、本実施形態に係る復号装置について、上述の符号化装置1との相違点を主として説明する。
【0116】
(復号装置の構成)
図9は、本実施形態に係る復号装置2の構成を示す図である。
図9に示すように、復号装置2は、エントロピー復号部200と、逆量子化・逆変換部210と、合成部220と、メモリ230と、予測部240とを有する。
【0117】
エントロピー復号部200は、符号化装置1が生成した符号化ストリームを復号する。エントロピー復号部200は、予測処理に関する情報や変換処理に関する情報を取得し、予測処理に関する情報を予測部240に出力し、変換処理に関する情報を逆量子化・逆変換部210に出力する。予測処理に関する情報は、イントラ予測モードシンタックスを含む。
【0118】
エントロピー復号部200は、符号化データに対する算術復号処理が行われた後の変換係数の多値化処理において、スキャン順に応じたスキャン処理を行うことにより、復号対象ブロックに対応する変換係数(具体的には、量子化された変換係数)を逆量子化・逆変換部210に出力する。
【0119】
逆量子化・逆変換部210は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部210は、逆量子化部211と、逆変換部212とを有する。
【0120】
逆量子化部211は、符号化装置1の量子化部122が行う量子化処理に対応する逆量子化処理を行う。逆量子化部211は、エントロピー復号部200から出力される量子化変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより、復号対象ブロックの変換係数を復元し、復元した変換係数を逆変換部212に出力する。
【0121】
逆変換部212は、符号化装置1の変換部121が行う変換処理に対応する逆変換処理を行う。逆変換部212は、逆量子化部211から出力される変換係数に対して逆変換処理を行って予測残差を復元し、復元した予測残差(復元予測残差)を合成部220に出力する。
【0122】
合成部220は、逆変換部212から出力される予測残差と、予測部240から出力される予測ブロックとを画素単位で合成することにより、元のブロックを復号(再構成)し、復号済みブロックをメモリ230に出力する。
【0123】
メモリ230は、合成部220から出力される復号済みブロックを記憶し、復号済みブロックをフレーム単位で復号済み画像として蓄積する。メモリ230は、復号済みブロック若しくは復号済み画像を予測部240に出力する。また、メモリ230は、フレーム単位の復号済み画像を復号装置2の外部に出力する。なお、合成部220とメモリ230との間にループフィルタが設けられてもよい。
【0124】
予測部240は、ブロック単位で予測を行う。予測部240は、インター予測部241と、イントラ予測部242と、切替部243とを有する。
【0125】
インター予測部241は、フレーム間の相関を利用したインター予測を行う。具体的には、インター予測部241は、エントロピー復号部200から出力されるインター予測に関する情報(例えば、動きベクトル情報)に基づいて、メモリ230に記憶された復号済み画像を参照画像として用いてインター予測の対象ブロックを予測してインター予測ブロックを生成し、生成したインター予測ブロックを切替部243に出力する。
【0126】
イントラ予測部242は、フレーム内の空間的な相関を利用したイントラ予測を行う。具体的には、イントラ予測部242は、エントロピー復号部200から出力されるイントラ予測に関する情報(すなわち、イントラ予測モードシンタックス)に応じたイントラ予測モードを用いて、メモリ230に記憶された復号済み画像のうちイントラ予測の対象ブロックの周辺にある復号済み画素を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部243に出力する。
【0127】
切替部243は、インター予測部241から出力されるインター予測ブロックとイントラ予測部242から出力されるイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを合成部220に出力する。
【0128】
このように、本実施形態に係る復号装置2は、画像を構成するブロック単位で復号を行う。復号装置2は、復号対象ブロックの周辺の復号済み画素を用いるイントラ予測によって、復号対象ブロックに対応する予測ブロックを生成するイントラ予測部242と、符号化ストリームを復号することで、復号対象ブロックの変換係数を出力するエントロピー復号部200と、エントロピー復号部が出力する変換係数に対して逆量子化処理及び逆変換処理を行ってブロック単位の予測残差を復元する逆量子化・逆変換部210と、予測ブロックと復元した予測残差とを合成して復号対象ブロックを復元する合成部220とを有する。
【0129】
(エントロピー復号部の構成)
次に、本実施形態に係るエントロピー復号部200の構成について説明する。
図10は、本実施形態に係るエントロピー復号部200の構成を示す図である。
【0130】
図10に示すように、エントロピー復号部200は、復号部201と、多値化部202と、デシリアライズ部203と、復号制御部204とを有する。
【0131】
復号部201は、符号化ストリームを構文解析(パーシング)するとともに、符号化ストリームから二値信号を復号する。本実施形態において、復号部201は、イントラ予測モードシンタックスを取得し、イントラ予測モードシンタックスを復号制御部204に出力する。
【0132】
多値化部202は、復号制御部204の制御下で、復号部201が出力する二値信号を多値信号へ変換し、多値信号をデシリアライズ部203に出力する。これにより、量子化された変換係数が復元される。また、多値化部202は、二値化されたlast position(last_sig_coeff_x、last_sig_coeff_y)を多値信号である座標値に変換して出力する。
【0133】
デシリアライズ部203は、多値化部202が出力する多値信号を、スキャン順に応じてデシリアライズすることにより、ブロック単位の変換係数(量子化された変換係数)を逆量子化部211に出力する。
【0134】
復号制御部204は、復号対象ブロックに適用するイントラ予測モードを示すイントラ予測モードシンタックスに基づいて、last positionの二値化に適用されている二値化方式を特定する。復号制御部204は、特定した二値化方式に応じた多値化を行うように多値化部202を制御する。
【0135】
本実施形態において、復号制御部204は、復号対象ブロックのイントラ予測に用いるイントラ予測モードを示すイントラ予測モードシンタックスに応じて、略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるかを決定する。ここで、復号制御部204は、イントラ予測モードシンタックスからイントラ予測モードを特定することなく、イントラ予測モードを示すイントラ予測モードシンタックスから略垂直方向の方向性予測モードであるか、略水平方向の方向性予測モードであるか、それ以外の予測モードであるかを直接的に決定する。このような直接的に決定する動作については、上述した符号化制御部134における決定動作と同様である。
【0136】
図6(a)に示すように、復号対象ブロックに適用するイントラ予測モードシンタックスが略垂直方向の方向性予測モードを示す場合、復号制御部204は、last positionを構成するX座標値(last_sig_coeff_x)に、固定長二値化方式に対応する多値化を適用するとともに、last positionを構成するY座標値(last_sig_coeff_y)に、可変長二値化方式に対応する多値化を適用する。
【0137】
図7(b)に示すように、復号対象ブロックに適用するイントラ予測モードシンタックスが略水平方向の方向性予測モードを示す場合、復号制御部204は、last positionを構成するX座標値(last_sig_coeff_x)に、可変長二値化方式に対応する多値化を適用するとともに、last positionを構成するY座標値(last_sig_coeff_y)に、固定長二値化方式に対応する多値化を適用する。
【0138】
図7(c)に示すように、復号対象ブロックに適用するイントラ予測モードシンタックスが略垂直方向の方向性予測モード及び略水平方向の方向性予測モード以外のイントラ予測モードシンタックスである場合、復号制御部204は、last positionを構成するX座標値(last_sig_coeff_x)及びY座標値(last_sig_coeff_y)の両方に、可変長二値化方式に対応する多値化を適用する。
【0139】
<作用・効果>
本実施形態に係るエントロピー符号化部130は、イントラ予測に用いたイントラ予測モードシンタックスに基づいて、変換係数に含まれる最終有意係数の位置を示すlast positionの二値化に適用する二値化方式を決定する符号化制御部134を有する。
【0140】
また、本実施形態に係るエントロピー復号部200は、イントラ予測に用いるイントラ予測モードシンタックスに基づいて、変換係数に含まれる最終有意係数の位置を示すlast positionの二値化に適用されている二値化方式を特定する復号制御部204を有する。
【0141】
このように、last positionを伝送するための二値化をイントラ予測モードシンタックスに応じて制御可能することで、last positionの符号化の効率を改善できる。
【0142】
<変更例>
上述した実施形態において、符号化制御部134が、イントラ予測モードを示すシンタックスからイントラ予測モードを特定することなく、このシンタックスから二値化方式を直接的に決定する一例について説明した。同様に、復号制御部204が、イントラ予測モードを示すシンタックスからイントラ予測モードを特定することなく、このシンタックスから二値化方式を直接的に特定する一例について説明した。
【0143】
しかしながら、実施形態の変更例として、符号化制御部134は、イントラ予測モードを示すシンタックスからイントラ予測モードを特定したうえで、特定したイントラ予測モードから二値化方式を決定してもよい。同様に、実施形態の変更例として、復号制御部204は、イントラ予測モードを示すシンタックスからイントラ予測モードを特定したうえで、特定したイントラ予測モードから二値化方式を特定してもよい。
【0144】
このため、「イントラ予測モードに基づいて二値化方式を決定・特定する」とは、上述した実施形態の方法で二値化方式を決定・特定する場合と、実施形態の変更例の方法で二値化方式を決定・特定する場合との両方の場合を含むものとする。
【0145】
<その他の実施形態>
上述のように、垂直に近いイントラ予測では、ブロック上部に大きな値の変換係数が現われる可能性が高いと考えられる。しかしながら、
図11に示すように、ブロック上部から離れると、出現する確率の高い位置はブロックの左側に変化すると考えられる。
図11に示す黒塗りの領域は、垂直に近いイントラ予測が行われた際に大きな値の変換係数が表れる可能性が高いと考えられる領域である。このような場合、P座標値の表現をQ座標値に応じて変化させることで効率を改善できると考えられる。
【0146】
そこで、エントロピー符号化部130は、Q座標値については、上述した実施形態と同じ伝送を行う。一方、P座標値については、エントロピー符号化部130は、Q座標値に応じてP座標値の表現に用いるlast_coeff_p_suffixの最大値を変化させる。具体的には、エントロピー符号化部130は、last_coeff_p_suffixの最大値が0の場合、last_coeff_p_suffixは伝送しない。例えば、エントロピー符号化部130は、Q座標値がN以下のときは、P座標値を伝送する際にlast_coeff_p_suffixの最大値を0とし、last_coeff_p_suffixは伝送しない。Q座標値がNより大きいときは、P座標値は従来と同じ表現で伝送する。Nは例えば0や1などの小さな値が好適である。このように、エントロピー符号化部130(符号化制御部134)は、Q座標値に基づいて、固定長二値化方式に代えて可変長二値化方式をP座標値に適用する。
【0147】
Q座標値に応じてP座標値の二値化方式を異ならせる場合、エントロピー符号化部130は、P座標値の伝送よりも前にQ座標値の伝送を行う。例えば、エントロピー符号化部130は、符号化対象ブロックに適用するイントラ予測モードが略垂直方向の方向性予測モードである場合、X座標値=P座標値、Y座標値=Q座標値とし、Y座標値を先に伝送しX座標値を後に伝送する。それ以外の場合は、従来と同様にX座標値を先に伝送しY座標値を後に伝送する。
【0148】
なお、符号化装置1が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。復号装置2が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
【0149】
符号化装置1が行う各処理を実行する回路を集積化し、符号化装置1を半導体集積回路(チップセット、SoC)により構成してもよい。復号装置2が行う各処理を実行する回路を集積化し、復号装置2を半導体集積回路(チップセット、SoC)により構成してもよい。
【0150】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【0151】
1 :符号化装置
2 :復号装置
100 :ブロック分割部
110 :減算部
120 :変換・量子化部
121 :変換部
122 :量子化部
130 :エントロピー符号化部
131 :シリアライズ部
132 :二値化部
133 :符号化部
134 :符号化制御部
140 :逆量子化・逆変換部
141 :逆量子化部
142 :逆変換部
150 :合成部
160 :メモリ
170 :予測部
171 :インター予測部
172 :イントラ予測部
173 :切替部
200 :エントロピー復号部
201 :復号部
202 :多値化部
203 :デシリアライズ部
204 :復号制御部
210 :逆量子化・逆変換部
211 :逆量子化部
212 :逆変換部
220 :合成部
230 :メモリ
240 :予測部
241 :インター予測部
242 :イントラ予測部
243 :切替部