(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、符号化対象画像を符号化した符号を伝送し、伝送された符号を復号し画像を表示するシステムである。画像伝送システム1は、画像符号化装置11、ネットワーク21、画像復号装置31及び画像表示装置41を含んで構成される。
画像符号化装置11には、単一レイヤもしくは複数レイヤの画像を示す画像Tが入力される。レイヤとは、ある時間を構成するピクチャが1つ以上ある場合に、複数のピクチャを区別するために用いられる概念である。たとえば、同一ピクチャを、画質や解像度の異なる複数のレイヤで符号化するとスケーラブル符号化になり、異なる視点のピクチャを複数のレイヤで符号化するとビュースケーラブル符号化となる。複数のレイヤのピクチャ間で予測(インターレイヤ予測、インタービュー予測)を行う場合には、符号化効率が大きく向上する。また予測を行わない場合(サイマルキャスト)の場合にも、符号化データをまとめることができる。
ネットワーク21は、画像符号化装置11が生成した符号化ストリームTeを画像復号装置31に伝送する。ネットワーク21は、インターネット(internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、それぞれ復号した1または複数の復号画像Tdを生成する。
画像表示装置41は、画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。また、空間スケーラブル符号化、SNRスケーラブル符号化では、画像復号装置31、画像表示装置41が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR、|=は別の条件との和演算(OR)である。
x ? y : zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
Clip3(a, b, c) は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
<符号化ストリームTeの構造>
本実施形態に係る画像符号化装置11及び画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、及びシーケンスを構成する複数のピクチャを含む。図2の(a)~(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を示す図である。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示すように、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図2では、#0と#1すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類及びレイヤの数はこれによらない。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合及び動画像に含まれる複数のレイヤ及び個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、スライスS0~SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0~SNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライスヘッダSH、及び、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。
なお、スライスヘッダSHには、上記符号化ビデオシーケンスに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2の(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図2の(e)に示すように、処理対象の符号化ツリーユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な四分木分割(QT分割)または二分木分割(BT分割)により分割される。再帰的な四分木分割または二分木分割により得られる木構造のノードのことを符号化ノード(CN:Coding Node)と称する。四分木及び二分木の中間ノードは、符号化ツリー(CT:Coding Tree)であり、符号化ツリーユニット自身も最上位の符号化ツリーとして規定される。
CTUは、QT分割を行うか否かを示すQT分割フラグ(cu_split_flag)、及びBT分割の分割方法を示すBT分割モード(split_bt_mode)を含む。cu_split_flagが1の場合には、4つの符号化ノードCNに分割される。cu_split_flagが0の場合には、符号化ノードCNは分割されず、1つの符号化ユニット(CU:Coding Unit)をノードとして持つ。一方、split_bt_modeが2の場合には、2つの符号化ノードCNに水平分割される。split_bt_modeが1の場合には、2つの符号化ノードCNに垂直分割される。split_bt_modeが0の場合には、符号化ノードCNは分割されず、1つの符号化ユニットCUをノードとして持つ。符号化ユニットCUは符号化ノードの末端ノード(リーフノード)であり、これ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
また、符号化ツリーユニットCTUのサイズが64x64画素の場合には、符号化ユニットのサイズは、64x64画素、64x32画素、32x64画素、32x32画素、64x16画素、16x64画素、32x16画素、16x32画素、16x16画素、64x8画素、8x64画素、32x8画素、8x32画素、16x8画素、8x16画素、及び、8x8画素の何れかをとり得る。
(符号化ユニット)
図2の(f)に示すように、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、予測ツリー、変換ツリー、CUヘッダCUHから構成される。CUヘッダでは予測モード、分割方法(PU分割モード)等が規定される。
予測ツリーでは、符号化ユニットを1または複数に分割した各予測ユニット(PU)の予測情報(参照ピクチャインデックス、動きベクトル等)が規定される。別の表現でいえば、予測ユニットは、符号化ユニットを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ユニットを含む。なお、以下では、予測ユニットをさらに分割した予測単位を「サブブロック」と呼ぶ。サブブロックは、複数の画素によって構成されている。予測ユニットとサブブロックのサイズが等しい場合には、予測ユニット中のサブブロックは1つである。予測ユニットがサブブロックのサイズよりも大きい場合には、予測ユニットは、サブブロックに分割される。たとえば予測ユニットが8x8、サブブロックが4x4の場合には、予測ユニットは水平に2分割、垂直に2分割からなる、4つのサブブロックに分割される。
予測処理は、この予測ユニット(サブブロック)ごとに行ってもよい。
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
イントラ予測の場合、分割方法は、2Nx2N(符号化ユニットと同一サイズ)と、NxNとがある。
また、インター予測の場合、分割方法は、符号化データのPU分割モード(part_mode)により符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N、nLx2N、nRx2N、及び、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、2NxnU、2NxnD及びnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
図3の(a)~(h)に、それぞれのPU分割モードにおけるパーティションの形状(PU分割の境界の位置)を具体的に図示している。図3の(a)は、2Nx2Nのパーティションを示し、(b)、(c)、(d)は、それぞれ、2NxN、2NxnU、及び、2NxnDのパーティション(横長パーティション)を示す。(e)、(f)、(g)は、それぞれ、Nx2N、nLx2N、nRx2Nである場合のパーティション(縦長パーティション)を示し、(h)は、NxNのパーティションを示す。なお、横長パーティションと縦長パーティションを総称して長方形パーティション、2Nx2N、NxNを総称して正方形パーティションと呼ぶ。
また、変換ツリー(TT:Transform Tree)においては、符号化ユニットが1または複数の変換ユニット(TU:Transform Unit)に分割され、各変換ユニットの位置とサイズとが規定される。別の表現でいえば、変換ユニットは、符号化ユニットを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ユニットを含む。
変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ユニットとして割り付けるものと、上述したCUの分割と同様、CUを四分木分割(TU分割)することにより変換ユニットを得るものがある。変換処理は、この変換ユニットごとに行われる。
(予測パラメータ)
予測ユニット(PU:Prediction Unit)の予測画像は、PUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
符号化データに含まれるインター予測パラメータを導出するためのシンタックス要素には、例えば、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXがある。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。図4は、参照ピクチャ及び参照ピクチャリストの一例を示す概念図である。図4の(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図4の(b)に、参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0及びL1リストRefPicList1の2つの参照ピクチャリストを持つ。対象ピクチャがB3の場合の参照ピクチャは、I0、P1、B2であり、参照ピクチャはこれらのピクチャを要素として持つ。個々の予測ユニットでは、参照ピクチャリストRefPicListX中のどのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定する。図では、refIdxL0及びrefIdxL1により参照ピクチャP1とB2が参照される例を示す。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージ予測モードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍PUの予測パラメータから導出するモードであり、AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトルインデックスmvp_LX_idxと差分ベクトルmvdLXとして符号化される。
インター予測識別子inter_pred_idcは、参照ピクチャの種類及び数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストの参照ピクチャリストで管理された参照ピクチャを用いることを示し、1枚の参照ピクチャを用いること(単予測)を示す。PRED_BIは2枚の参照ピクチャを用いること(双予測BiPred)を示し、L0リストとL1リストで管理された参照ピクチャを用いる。予測ベクトルインデックスmvp_LX_idxは予測ベクトルを示すインデックスであり、参照ピクチャインデックスrefIdxLXは、参照ピクチャリストで管理された参照ピクチャを示すインデックスである。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
マージインデックスmerge_idxは、処理が完了したPUから導出される予測パラメータ候補(マージ候補)のうち、いずれの予測パラメータを復号対象PUの予測パラメータとして用いるかを示すインデックスである。
(動きベクトル)
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ量を示す。動きベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。
(インター予測識別子inter_pred_idcと予測リスト利用フラグpredFlagLX)
インター予測識別子inter_pred_idcと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のとおりであり、相互に変換可能である。
inter_pred_idc = (predFlagL1<<1) + predFlagL0
predFlagL0 = inter_pred_idc & 1
predFlagL1 = inter_pred_idc >> 1
なお、インター予測パラメータは、予測リスト利用フラグを用いても良いし、インター予測識別子を用いてもよい。また、予測リスト利用フラグを用いた判定は、インター予測識別子を用いた判定に置き替えてもよい。逆に、インター予測識別子を用いた判定は、予測リスト利用フラグを用いた判定に置き替えてもよい。
(双予測biPredの判定)
双予測BiPredであるかのフラグbiPredは、2つの予測リスト利用フラグがともに1であるかによって導出できる。たとえば以下の式で導出できる。
biPred = (predFlagL0 == 1 && predFlagL1 == 1)
フラグbiPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。たとえば以下の式で導出できる。
biPred = (inter_pred_idc == PRED_BI) ? 1 : 0
上記式は、以下の式でも表現できる。
biPred = (inter_pred_idc == PRED_BI)
なお、PRED_BIはたとえば3の値を用いることができる。
(画像復号装置の構成)
次に、本実施形態に係る画像復号装置31の構成について説明する。図5は、本実施形態に係る画像復号装置31の構成を示す概略図である。画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆DCT部311、及び加算部312を含んで構成される。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測情報及び、差分画像を生成するための残差情報などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードpredMode、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXである。どの符号を復号するかの制御は、予測パラメータ復号部302の指示に基づいて行われる。エントロピー復号部301は、量子化係数を逆量子化・逆DCT部311に出力する。この量子化係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。
インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを復号する。イントラ予測パラメータとは、CUを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
イントラ予測パラメータ復号部304は、輝度と色差で異なるイントラ予測モードを導出しても良い。この場合、イントラ予測パラメータ復号部304は、輝度の予測パラメータとして輝度予測モードIntraPredModeY、色差の予測パラメータとして、色差予測モードIntraPredModeCを復号する。輝度予測モードIntraPredModeYは、35モードであり、プレーナ予測(0)、DC予測(1)、方向予測(2~34)が対応する。色差予測モードIntraPredModeCは、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)の何れかを用いるものである。イントラ予測パラメータ復号部304は、IntraPredModeCは輝度モードと同じモードであるか否かを示すフラグを復号し、フラグが輝度モードと同じモードであることを示せば、IntraPredModeCにIntraPredModeYを割り当て、フラグが輝度モードと異なるモードであることを示せば、IntraPredModeCとして、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)を復号しても良い。
ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、復号対象のピクチャ及びCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及び予測ユニット(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXがある。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャを用いてPUの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャを用いてインター予測によりPUの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象PUを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックをもとに予測を行ってPUの予測画像を生成する。インター予測画像生成部309は、生成したPUの予測画像を加算部312に出力する。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたPUのうち、復号対象PUから予め定めた範囲にある隣接PUを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、復号対象PUがいわゆるラスタースキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接PUのうちのいずれかであり、イントラ予測モードによって異なる。ラスタースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
イントラ予測画像生成部310は、読み出した隣接PUについてイントラ予測モードIntraPredModeが示す予測モードで予測を行ってPUの予測画像を生成する。イントラ予測画像生成部310は、生成したPUの予測画像を加算部312に出力する。
イントラ予測パラメータ復号部304において、輝度と色差で異なるイントラ予測モードを導出する場合、イントラ予測画像生成部310は、輝度予測モードIntraPredModeYに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2~34)の何れかによって輝度のPUの予測画像を生成し、色差予測モードIntraPredModeCに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)の何れかによって色差のPUの予測画像を生成する。
逆量子化・逆DCT部311は、エントロピー復号部301から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部311は、求めたDCT係数について逆DCT(Inverse Discrete Cosine Transform、逆離散コサイン変換)を行い、残差信号を算出する。逆量子化・逆DCT部311は、算出した残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309またはイントラ予測画像生成部310から入力されたPUの予測画像と逆量子化・逆DCT部311から入力された残差信号を画素毎に加算して、PUの復号画像を生成する。加算部312は、生成したPUの復号画像を参照ピクチャメモリ306に記憶し、生成したPUの復号画像をピクチャ毎に統合した復号画像Tdを外部に出力する。
(画像符号化装置の構成)
次に、本実施形態に係る画像符号化装置11の構成について説明する。図6は、本実施形態に係る画像符号化装置11の構成を示すブロック図である。画像符号化装置11は、予測画像生成部101、減算部102、DCT・量子化部103、エントロピー符号化部104、逆量子化・逆DCT部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域である符号化ユニットCU毎に予測ユニットPUの予測画像Pを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えばインター予測の場合、動きベクトルである。予測画像生成部101は、対象PUを起点として動きベクトルが示す参照画像上の位置にあるブロックを読み出す。またイントラ予測の場合、予測パラメータとは例えばイントラ予測モードである。イントラ予測モードで使用する隣接PUの画素値を参照ピクチャメモリ109から読み出し、PUの予測画像Pを生成する。予測画像生成部101は、読み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてPUの予測画像Pを生成する。予測画像生成部101は、生成したPUの予測画像Pを減算部102に出力する。
なお、予測画像生成部101は、既に説明した予測画像生成部308と同じ動作である。例えば、図7は、予測画像生成部101に含まれるインター予測画像生成部1011の構成を示す概略図である。インター予測画像生成部1011は、動き補償部10111、重み予測部10112を含んで構成される。動き補償部10111及び重み予測部10112については、上述の動き補償部3091、重み予測部3094のそれぞれと同様の構成であるためここでの説明を省略する。
予測画像生成部101は、予測パラメータ符号化部から入力されたパラメータを用いて、参照ピクチャメモリから読み出した参照ブロックの画素値をもとにPUの予測画像Pを生成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力される。
減算部102は、予測画像生成部101から入力されたPUの予測画像Pの信号値を、画像Tの対応するPUの画素値から減算して、残差信号を生成する。減算部102は、生成した残差信号をDCT・量子化部103に出力する。
DCT・量子化部103は、減算部102から入力された残差信号についてDCTを行い、DCT係数を算出する。DCT・量子化部103は、算出したDCT係数を量子化して量子化係数を求める。DCT・量子化部103は、求めた量子化係数をエントロピー符号化部104及び逆量子化・逆DCT部105に出力する。
エントロピー符号化部104には、DCT・量子化部103から量子化係数が入力され、予測パラメータ符号化部111から符号化パラメータが入力される。入力される符号化パラメータには、例えば、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、予測モードpredMode、及びマージインデックスmerge_idx等の符号がある。
エントロピー符号化部104は、入力された量子化係数と符号化パラメータをエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆DCT部105は、DCT・量子化部103から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部105は、求めたDCT係数について逆DCTを行い、残差信号を算出する。逆量子化・逆DCT部105は、算出した残差信号を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたPUの予測画像Pの信号値と逆量子化・逆DCT部105から入力された残差信号の信号値を画素毎に加算して、復号画像を生成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)を施す。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述した予測パラメータやこの予測パラメータに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてPUの予測画像Pを生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すコスト値を算出する。コスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから、符号化するための形式を導出し、エントロピー符号化部104に出力する。符号化するための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロック単位の動きベクトルである。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトルのようなインター予測パラメータを導出する。インター予測パラメータ符号化部112は、予測画像生成部101に出力する予測画像の生成に必要なパラメータを導出する構成として、インター予測パラメータ復号部303(図6等、参照)がインター予測パラメータを導出する構成と一部同一の構成を含む。インター予測パラメータ符号化部112の構成については、後述する。
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたイントラ予測モードIntraPredModeから、符号化するための形式(例えばMPM_idx、rem_intra_luma_pred_mode等)を導出する。
(画像復号装置の要部構成)
図10に、本実施形態に係る画像復号装置の要部構成を示したブロック図を示す。本図では、図を簡略化するために、図10に示したブロック図に含まれる一部の部材の図示を省略している。また、説明の便宜上、図5に示した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図10に示すように、画像復号装置31は、復号モジュール9、CT情報復号部10、予測画像生成部308、逆量子化・逆DCT変換部311、参照ピクチャメモリ306、加算部312、ループフィルタ305、ヘッダ復号部19、及びCU復号部20を備えている。CU復号部20は、さらにPU情報復号部12及びTT情報復号部13(分割情報復号部、分割部)を備えており、TT情報復号部13は、さらにTU復号部22を備えている。
(復号モジュール)
以下、各モジュールの概略動作を説明する。復号モジュール9は、バイナリからシンタックス値を復号する復号処理を行う。復号モジュール9は、より具体的には、供給元から供給される符号化データ及びシンタックス種別に基づいて、CABAC等のエントロピー符号化方式により符号化されているシンタックス値を復号し、復号したシンタックス値を供給元に返す。
以下に示す例では、符号化データ及びシンタックス種別の供給元は、CT情報復号部10、CU復号部20(PU情報復号部12及びTT情報復号部13)である。
(ヘッダ復号部)
ヘッダ復号部19は、画像符号化装置11から入力された符号化データのVPS(video parameter set)、SPS、PPS、スライスヘッダを復号する。
(CT情報復号部)
CT情報復号部10は、復号モジュール9を用いて、画像符号化装置11から入力された符号化データについて、符号化ツリーユニット及び符号化ツリーの復号処理を行う。CT情報復号部10は、具体的には、以下の手順により符号化データから、CTU情報及びCT情報を復号する。
まず、CT情報復号部10は、復号モジュール9を用いて、CTUに含まれるCTU情報からツリーユニットヘッダCTUHを復号する。次に、CT情報復号部10は、CTに含まれるCT情報から、対象CTをQT分割するか否かを示すQT分割フラグ、及び対象CTのBT分割の分割方法を示すBT分割モードを復号し、QT分割フラグ及びBT分割モードがさらなる分割を通知しなくなるまで対象CTを再帰的に分割し復号する。最後に、CTU情報からツリーユニットフッタCTUFを復号する。
ツリーユニットヘッダCTUH及びツリーユニットフッタCTUFには、対象符号化ツリーユニットの復号方法を決定するために画像復号装置31が参照する符号化パラメータが含まれる。また、CT情報には、QT分割フラグ及びBT分割モードの他、対象CT及び下位の符号化ノードで適用されるパラメータを含んでいてもよい。
(CU復号部)
CU復号部20は、PU情報復号部12及びTT情報復号部13から構成され、最下位の符号化ツリーCT(すなわちCU)のPUI情報及びTTI情報を復号する。
(PU情報復号部)
PU情報復号部12では各PUのPU情報(マージフラグ(merge_flag)、マージインデックス(merge_idx)、予測ベクトルインデックス(mvp_idx)、参照画像インデックス(ref_idx)、インター予測識別子(inter_pred_flag)、及び差分ベクトル(mvd)等)を、復号モジュール9を用いて復号する。
(TT情報復号部)
TT情報復号部13は、変換ツリーTTのTT情報(TU分割フラグSP_TU(split_transform_flag)、TU残差フラグCBP_TU(cbf_cb、cbf_cr、cbf_luma)等、及びTU)を、復号モジュール9を用いて復号する。
また、TT情報復号部13は、TU復号部22を備えている。TU復号部22は、TUに残差が含まれている場合に、QP更新情報(量子化補正値)を復号する。なお、QP更新情報は、量子化パラメータQPの予測値である量子化パラメータ予測値qPpredからの差分値を示す値である。またTU復号部22は、量子化予測残差(residual_coding)を復号する。
(CT情報復号の処理)
CT情報復号部10によるCT情報復号の動作について、図11を参照して詳細に説明する。図11は、本発明の一実施形態に係るCT情報復号部10の概略的動作を説明するフローチャートである。
CT情報復号部10によるCT情報復号S1400では、QT情報復号と、BT情報復号とを行う。以下では、CT情報復号部10によるQT情報復号と、BT情報復号とについて順に説明する。
まず、CT情報復号部10は、符号化データからCT情報を復号し、再帰的に符号化ツリーCT(coding_quadtree)を復号する。
(S1411)CT情報復号部10は、復号したCT情報にQT分割フラグがあるか否かを判定する。CT情報復号部10は、QT分割フラグがあると判定した場合は、S1421に遷移する。それ以外の場合には、S1422に遷移する。
(S1421)CT情報復号部10は、QT分割フラグがあると判定した場合には、シンタックス要素であるQT分割フラグ(split_cu_flag)を復号する。
(S1422)CT情報復号部10は、それ以外の場合、つまり、符号化データにQT分割フラグsplit_cu_flagが現れない場合(not present)には、符号化データからのQT分割フラグsplit_cu_flagの復号を省略し、QT分割フラグsplit_cu_flagを0として導出(infer)する。
(S1431)CT情報復号部10は、QT分割フラグsplit_cu_flagが0以外(=1)である場合には、後述の(S1441)を実施し、一階層下に移行して(S1411)以降の処理を繰り返す。それ以外の場合(QT分割フラグsplit_cu_flagが0の場合)には、S1451に遷移する。
(S1441)CT情報復号部10は、QT分割を行う。具体的には、CT情報復号部10は、一階層下のCT階層において4つの符号化ツリーCTを復号する。CT情報復号部10は、下位の符号化ツリーCTにおいても、S1411から開始されるQT情報復号を継続する。
続いて、CT情報復号部10は、符号化データからCT情報を復号し、再帰的に符号化ツリーCT(coding_binarytree)を復号する。このとき、最初に(分割前の)QTデプスを0とし、その後QT分割の度にQTデプスを1だけインクリメントする。
(S1451)まず、CT情報復号部10は、復号したCT情報にBT分割モードがあるか否かを判定する。CT情報復号部10は、BT分割モードがあると判定した場合は、S1461に遷移する。それ以外の場合には、S1462に遷移する。
(S1461)CT情報復号部10は、BT分割モードがあると判定した場合には、シンタックス要素であるBT分割モードsplit_bt_modeを復号する。
(S1462)CT情報復号部10は、それ以外の場合、つまり、符号化データにBT分割モードsplit_bt_modeが現れない場合には、符号化データからのBT分割モードsplit_bt_modeの復号を省略し、BT分割モードsplit_bt_modeを0として導出する。
(S1471)CT情報復号部10は、BT分割モードsplit_bt_modeが0以外(=1または2)である場合には、後述の(S1481)を実施し、一階層下に移行して(S1451)以降の処理を繰り返す。それ以外の場合(BT分割モードsplit_bt_modeが0の場合)には、CT情報復号部10は、対象符号化ツリーを分割せず、処理を終了する。
(S1481)CT情報復号部10は、BT分割を行う。具体的には、CT情報復号部10は、一階層下のBT階層において、BT分割モードが1の場合は、水平分割を行い2つの符号化ツリーCTを復号し、BT分割モードが2の場合は、垂直分割を行い2つの符号化ツリーCTを復号する。CT情報復号部10は、下位の符号化ツリーCTにおいても、S1451から開始されるBT情報復号を継続する。このとき、最初に分割前のBTデプスを0とし、その後BT分割の度にBTデプスを1だけインクリメントする。
なお、以上で説明したCT情報復号は、QTツリーとBTツリーとが別レイヤ(QTツリーとBTツリーとの間には上下関係が存在する。つまり、QTツリーはQTツリーの間で再帰的に分割され、BTツリーはBTツリーの間で再帰的に分割される。QTツリーの下位ノードとしてBTツリーが存在し得るが、BTツリーの下位ノードにQTツリーは存在しない)である場合を想定した復号方法である。この方法では、BT分割後にはQT分割を行うことができないが、BT分割後にはQT分割フラグの有無の判定が不要となる。しかし、本実施形態はこれに限定されず、QTツリーとBTツリーとが同一レイヤ(QTツリーとBTツリーとの間に上下関係が存在しない。つまり、QTツリーとBTツリーとを合わせたCTツリーの間で再帰的に分割される。QTツリーの下位ノードとしてBTツリーが存在するのと同時に、BTツリーの下位ノードにもQTツリーが存在する)である場合を想定した復号方法を採用してもよい。この場合は、QT分割及びBT分割のいずれも選択できる、すなわちBT分割後にもQT分割を行うことができるが、毎度QT分割フラグの有無の判定が必要となる。
(TU分割の制限)
QT分割またはBT分割によって得られたCUをさらにTU分割する場合、TUの分割パターンだけ動画像の符号化/復号処理量が増えることになる。そこで、本実施形態では、動画像の符号化/復号の複雑度を低減するために、CUに対するTU分割を一階層のみに制限している。同時に、本実施形態では、複数のTU分割パターンを備える。具体的には、CUに対するTU分割の階層を0(すなわち、分割なし)か1(すなわち、田の字分割、水平4分割、垂直4分割を1階層分行う)に制限する。また、本実施形態では複数のTU分割パターン(本例では田の字分割、水平4分割、垂直4分割の3つのパターン)を備える。
図12に、CUの階層と、階層に対応するCUの形状との例を示す。図12に示すように、CUは、階層ごとに形状が異なる。本実施形態では、CUに対するTU分割の階層を0か1に制限していることにより、CUの階層及び形状に応じて、TUの分割パターンを図13に示すものに制限している。図13は、CUの各形状に応じたTUの分割パターン例の一覧である。つまり、対象CUの形状が64×64である場合、TU分割モードに応じて、対象CUに対するTU分割は図13に示したTU形状へのTU分割に制限される。
この場合、画像符号化装置11においては、各CUを符号化する際に、当該CUをTU分割するか否かを示すTU分割フラグ(分割情報)、及びTU分割のTU分割モードを示すTU分割モード(分割情報)を一階層分だけTT情報に含めて符号化する。TU分割フラグが0の場合には、TU分割を行わないことを表し、TU分割フラグが1の場合には、TU分割を行うことを表す。また、TU分割モードtuSplitModeとは、分割なし(tuSplitMode=0)、田の字(つまり、2×2の格子状)に分割する田の字分割(tuSplitMode=1)、水平方向に4分割する水平4分割(つまり、水平方向の境界による4分割)(tuSplitMode=2)、及び垂直方向に4分割する垂直4分割(つまり、垂直方向の境界による4分割)(tuSplitMode=3)の何れかである。なお、TU分割モードtuSplitModeに値を割り当てる方法は上記によらず別の割り当て方でもよい。例えば、TU分割モードを、田の字分割(tuSplitMode=0)、水平4分割(tuSplitMode=1)、垂直4分割(tuSplitMode=2)としてもよい。
また、上記では、TU分割に関する情報(分割情報)を、分割の有無を示すTU分割フラグと分割方法(分割パターン)を示すTU分割モードの2つの値を用いて表現したが、1つの値(TU分割モード)のみを用いる構成でもよい。この場合、TU分割モードの値の一つとして、分割なしを含むこととする。
本実施形態では、CUに対するTU分割を一階層のみに制限しているため、動画像の符号化/復号の複雑度を低減することができる。また、本実施形態では、TU分割の階層を減らす代わりに、TU分割の種類を1種類(田の字分割)から3種類(田の字分割、水平4分割、及び垂直4分割)に増加させているため、多様なパターンに対応できるようになる。
なお、複数の分割パターンは、田の字分割、水平4分割、及び垂直4分割に限定されない。後述するように8×8分割、16×16分割を加えてもよい。
(TT情報復号の処理)
TU分割の階層を一階層のみに制限している場合のTT情報復号部13によるTT情報復号の動作について、図14を参照して詳細に説明する。図14は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
TT情報復号部13は、符号化データからTT情報を復号し、変換ツリーTTを復号する。
(S1511)まず、TT情報復号部13は、対象TUサイズ(対象CUサイズ、対象TUサイズ)が最大TUサイズ以下、且つ、最小TUサイズよりも大きいか否かを判定する。
(S1521)TT情報復号部13は、上記の条件を満たさない場合、つまり、符号化データにTU分割フラグが現れない場合には、TU分割フラグを導出する。このTU分割フラグの導出については、後述する。
(S1522)一方、TT情報復号部13は、上記の条件を満たす場合には、シンタックス要素であるTU分割フラグを復号する。
(S1531)続いて、TT情報復号部13は、TU分割フラグを参照して、TU分割フラグが分割することを示す場合には、TU分割モードを復号する。TT情報復号部13は、符号化データからTU分割モードを復号し、復号したTU分割モードが指定するTU分割モードでTU分割を行う。なお、このTU分割モードの導出については、後述する。
(S1541)TT情報復号部13は、対象TUに残差が含まれているか否かを示すTU残差フラグを復号する。
(S1551)次に、TT情報復号部13は、AMTフラグamt_flagを復号する。
(S1561)TT情報復号部13のTU復号部22は、TU残差フラグ及びAMTフラグamt_flagに基づき、TUを復号する。
(S1571)TT情報復号部13は、他のTUにおいても、同様の処理を行ってTT情報復号を継続する。
なお、TU残差フラグを復号してからTUを復号するまでの処理は周知の技術であるため、ここでは詳細な説明は省略する。
(TU分割フラグの導出処理)
以下では、TT情報復号部13によるTU分割フラグの導出(S1521)について、図15を参照して説明する。図15は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
(S1611)まず、TT情報復号部13は、対象TUサイズが最大TUサイズよりも大きいか否かを判定する。
(S1621)TT情報復号部13は、対象TUサイズが最大TUサイズよりも大きいと判定した場合には、対象TUのTU分割が必要であるため、TU分割フラグを1として導出する。この場合、TU分割フラグは符号化データに現れず、TU分割フラグの画像符号化装置11での符号化や画像復号装置31での復号は行われない。
(S1631)一方、TT情報復号部13は、対象TUサイズが最大TUサイズ以下の場合は、対象TUサイズが最小TUサイズ以下であるか否かを判定する。
(S1641)TT情報復号部13は、対象TUサイズが最小TUサイズ以下であると判定した場合には、対象TUのTU分割は不要であるため、TU分割フラグを0として導出する。この場合、TU分割フラグは符号化データに現れず、TU分割フラグの画像符号化装置11での符号化や画像復号装置31での復号は行われない。
上記以外の場合、TU分割フラグは符号化データに現れ、TU分割フラグの符号化装置での符号化や復号装置での復号(S1522)が行われる。
(TU分割モードの導出)
続いて、TT情報復号部13によるTU分割モードの導出(S1531)について、図16を参照して説明する。図16は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
(S1711)まず、TT情報復号部13は、TU分割フラグが1であるか否かを判定する。
(S1721)TT情報復号部13は、TU分割フラグが1以外(=0)である場合には、対象TUを分割しない。具体的には、TT情報復号部13は、ループ数N(分割数N)を1、sftx = 0及びsfty = 0と設定する。
(S1731)TT情報復号部13は、TU分割フラグが1である場合には、符号化データから分割モードを復号する。
(S1741)続いて、TT情報復号部13は、分割モードが田の字分割を示すか否かを判定する。
(S1751)TT情報復号部13は、分割モードが田の字分割を示す場合は、対象TUを田の字分割する。具体的には、TT情報復号部13は、ループ数Nを4、sftx = 1及びsfty = 1と設定する。ループ数Nは、図14に示した(S1511)~(S1531)までの処理を行う回数である。sftxはCUの幅(CUwidth)を算出するためのシフト量、sftyはCUの高さ(CUheight)を算出するためのシフト量である。
(S1761)一方、TT情報復号部13は、分割モードが田の字分割を示さない場合は、分割モードが水平4分割であるか否かを判定する。
(S1771)TT情報復号部13は、分割モードが水平4分割を示す場合は、対象TUを水平4分割する。具体的には、TT情報復号部13は、ループ数Nを4、sftx = 0及びsfty = 2と設定する。
(S1781)一方、TT情報復号部13は、分割モードが水平4分割を示さない場合は、分割モードが垂直4分割であるか否かを判定する。
(S1791)TT情報復号部13は、分割モードが垂直4分割を示す場合は、対象TUを垂直4分割する。具体的には、TT情報復号部13は、ループ数Nを4、sftx = 2及びsfty = 0と設定する。
(S1800)TT情報復号部13は、CUの形状(CUwidth,CUheight)を設定したsftx及びsftyだけビットシフトさせたものを一階層下のTUの形状(TUwidth,TUheight)として決定する。
TUwidth = CUwidth >> sftx
TUheight = CUheight >> sfty
なお、CUの形状、TUの形状が2の対数である(log2CUwidth,log2CUheight)、(log2TUwidth,log2TUheight)で表現されている場合には、以下のように決定する。
log2TUwidth = log2CUwidth - sftx
log2TUheight = log2CUheight - sfty
なお、
CUwidth = 1<<log2CUwidth、CUheight = 1<<log2CUheight、TUwidth = 1<<log2TUwidth、TUheight = 1<<log2TUheightである。
なお、TT情報復号部13には、各CUの形状(CUwidth,CUheight)が、各CUの深度Depth(cqtDepth,cbtDepth)と共に与えられている。
TT情報復号部13は、図14に示した(S1511)~(S1531)までの処理をループ数Nだけ繰り返し行う。例えば、TU分割モードが分割なしである場合は、上記の処理を1回行い、TU分割モードが田の字分割、水平4分割または垂直4分割である場合は、上記の処理を4回行う。
この一連の処理により、CUはTU分割される。本実施形態では、上記の一連の処理によりCUを一階層分TU分割すると、それ以上はTU分割を行わない。
(変形例)
CUサイズが大きいと、TU分割が1階層だけでは画像の特徴に合わせた適切な分割ができない場合がある。そこで、CUのTU分割モードとして、田の字分割、水平4分割、または垂直4分割以外にも8×8サイズへの分割(以下、8×8分割と称す)を用いてもよい。
図17にCUの各形状に応じたTUの分割パターン例の一覧を示す。図17に示すように、CUサイズが大きい階層(例えば、8×8サイズへの分割パターンが含まれない階層(本図では、D3))までは、TU分割モードに8×8分割が含まれている。この場合、TT情報復号部13は、TU分割モードが分割なし(tuSplitMode=0)、田の字分割(tuSplitMode=1)、水平4分割(tuSplitMode=2)、垂直4分割(tuSplitMode=3)、及び8×8分割(tuSplitMode=4)の何れであるのか判定する。ここでもTU分割モードの割り当ては上記によらず、田の字分割(tuSplitMode=0)、水平4分割(tuSplitMode=1)、垂直4分割(tuSplitMode=2)、及び8×8分割(tuSplitMode=3)等でもよい。
この場合のTT情報復号部13によるTU分割モードの導出について、図18を参照して説明する。図18は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
S1711~S1791までの処理は、図16に示した処理と同じであるので、ここではその説明は省略する。
(S1792)TT情報復号部13は、分割モードが垂直4分割を示さない場合は、分割モードが8×8分割であるか否かを判定する。
(S1793)TT情報復号部13は、分割モードが8×8分割を示す場合は、対象TUを8×8分割する。具体的には、TT情報復号部13は、ループ数N(分割数N)をCUwidth * CUheight >> 6、sftx = log2CUwidth - 3及びsfty = log2CUheight - 3と設定する。
(S1800)TT情報復号部13は、CUの形状(CUwidth,CUheight)を設定したsftx及びsftyだけビットシフトさせたものを一階層下のTUの形状(TUwidth,TUheight)として決定する。
なお、分割モードは8×8分割に限定されない。例えば、16×16サイズへの分割(以下、16×16分割と称す)を用いてもよい。図19にCUの各形状に応じたTUの分割パターン例の一覧を示す。図19に示すように、CUサイズが大きい階層(例えば、16×16サイズへの分割パターンが含まれない階層(本図では、D1))までは、TU分割モードに16×16分割が含まれている。
あるいは、分割モードとして8×8分割及び16×16分割の両方を用いてもよい。この場合のCUの各形状に応じたTUの分割パターン例の一覧を図20に示す。図20に示すように、所定の階層(例えば、16×16サイズへの分割パターンが含まれない階層(本図では、D1))までは、TU分割モードに16×16分割が含まれており、以降の階層(例えば、8×8サイズへの分割パターンが含まれない階層(本図では、D2及びD3)では、TU分割モードに8×8分割が含まれている。
(第2の実施形態)
BT分割によって得られたCUをさらにTU分割する場合のTUの分割パターンは、BT分割とTU分割の組合せの数だけあり、QT分割によって得られたCUをさらにTU分割する場合のTUの分割パターンは、QT分割のパターンとTU分割のパターンの組合せの数だけある。BT分割のパターンは、QT分割のパターンに比べて大きいことから、BT分割によって得られたCUのTUの分割パターンは、QT分割によって得られたCUのTUの分割パターンと比べて多く、動画像の符号化/復号処理量が多い。そこで、本実施形態では、QT分割によって得られたCUに対するTU分割を一階層のみに制限すると共に、BT分割によって得られたCUに対するTU分割は行わない。具体的には、BT分割によってTU分割の階層を0(すなわち、分割なし)に、QT分割によって得られたCUに対するTU分割の階層を0(すなわち、分割なし)か1(すなわち、田の字分割、水平4分割、垂直4分割を1階層分行う)に制限する。
本実施形態では、QT分割によって得られたCUに対するTU分割の階層を0か1に制限していることにより、CUの階層及び形状に応じて、TUの分割パターンを図21に示すものに制限している。図21は、CUの各形状に応じたTUの分割パターン例の一覧である。つまり、対象CUの形状が64×64等の正方形である場合、TU分割モードに応じて、対象CUに対するTU分割は図21に示したTU形状へのTU分割に制限される。
本実施形態では、QT分割によって得られたCUに対するTU分割を一階層のみに制限すると共に、BT分割によって得られたCUに対するTU分割は行わないため、動画像の符号化/復号の複雑度を低減しながらも符号化効率を維持することができる。
(TT情報復号の処理)
QT分割によって得られたCUに対するTU分割の階層を一階層のみに制限している場合のTT情報復号部13によるTT情報復号の動作について、図22を参照して詳細に説明する。図22は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
TT情報復号部13は、符号化データからTT情報を復号し、変換ユニットTUを復号する。
(S1512)まず、TT情報復号部13は、対象TUサイズが最大TUサイズ以下、且つ、最小TUサイズよりも大きい、且つ、QT分割のみであるか否かを判定する。TT情報復号部13には、各CUの深度Depth(cqtDepth,cbtDepth)が、各CUの形状(CUwidth,CUheight)と共に与えられている。TT情報復号部13は、対象TUにおいて、cbtDepth = 0である場合には、BT分割はなくQT分割のみであると判定できる。
(S1521)TT情報復号部13は、上記の条件を満たさない場合、つまり、符号化データにTU分割フラグが現れない場合には、TU分割フラグを導出(infer)する。このTU分割フラグの導出については、後述する。
S1522~S1571までの処理は、図14に示した処理と同じであるので、ここではその説明は省略する。
(TU分割フラグの導出処理)
以下では、TT情報復号部13によるTU分割フラグの導出について、図23を参照して説明する。図23は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
S1611~S1641までの処理は、図15に示した処理と同じであるので、ここではその説明は省略する。
(S1651)TT情報復号部13は、対象CUがBT分割されたものであるかを安定する。すなわち、対象CUがBT分割なしのCUであるか、BT分割により得られたCUであるか否か(対象CUにおけるBT分割の有無)を判定する。なお、判定方法としては以下のいずれかを用いることができる。
1)CUが正方形ではない場合(CUwidth!=CUHeight)をBT分割があると判定する。CUが正方形である場合(CUwidth==CUHeight)をBT分割がないと判定する。
2)BTデプスが0以外である場合をBT分割があると判定し、BTデプスが0の場合をBT分割がないと判定する。
(S1661)TT情報復号部13は、対象CUがBT分割されていないと判定した場合には、対象CUのTU分割が可能であるため、TU分割フラグを復号する(S1661)。
(S1671)一方、TT情報復号部13は、対象CUがBT分割されたCUであると判定した場合には、対象CUのTU分割は行わないため、TU分割フラグを0として導出する。すなわち、TT情報復号部13は、CUの形状(CUwidth,CUheight)を一階層下のTUの形状(TUwidth,TUheight)として決定する。
(変形例-1)
QT分割によって得られたCUに対するTU分割モードは、分割なし、田の字分割、水平4分割及び垂直4分割に限定されない。例えば、QT分割によって得られたCUに対するTU分割モードを分割なし及び田の字分割に制限してもよい。具体的には、CUに対するTU分割の階層を0(すなわち、分割なし)か1(すなわち、田の字分割を1階層分行う)に制限する。
本実施形態では、QT分割によって得られたCUに対するTU分割を分割なしまたは田の字分割に制限していることにより、CUの階層及び形状に応じて、TUの分割パターンを図24に示すものに制限している。図24は、CUの各形状に応じたTUの分割パターン例の一覧である。つまり、対象CUの形状が64×64等の正方形である場合、TU分割モードに応じて、対象CUに対するTU分割は図24に示したTU形状へのTU分割に制限される。
この場合、TT情報復号部13がTU分割モードを導出する処理においては、図16に示した処理におけるS1761~S1793を省略すればよい。
(変形例-2)
上述したように、CUサイズが大きいと、TU分割が1階層だけでは画像の特徴に合わせた適切な分割ができない場合がある。そこで、CUのTU分割モードとして、田の字分割、水平4分割、または垂直4分割以外にも8×8サイズへの分割(8×8分割)を用いてもよい。この場合、QT分割によって得られたCUに対する分割モードを分割なし、田の字分割、水平4分割、垂直4分割及び8×8分割にし、BT分割によって得られたCUに対する分割モードを分割なし及び8×8分割に制限する。
図25にCUの各形状に応じたTUの分割パターン例の一覧を示す。図25に示すように、CUサイズが大きい階層(本図では、D3)までは、TU分割モードに8×8分割が含まれている。この場合、TT情報復号部13は、図14及び図15に示した処理に沿ってTT情報復号を行うが、TU分割モードの導出については、図18に示した処理に沿って行う。
つまり、TT情報復号部13が図18に示した処理に沿ってTU分割モードを導出する際、QT分割によって得られたCUの場合は、TU分割モードが分割なし、田の字分割、水平4分割、垂直4分割、及び8×8分割の何れであるのか判定するため、すべてのステップを経由し得る。一方、BT分割によって得られたCUの場合は、TU分割モードが分割なしまたは8×8分割に制限されており、TU分割モードが分割なし、及び8×8分割の何れであるのか判定するため、S1751、S1771、及びS1791を経由することはない。
なお、分割モードは8×8分割に限定されない。例えば、16×16サイズへの分割(16×16分割)を用いてもよい。図26にCUの各形状に応じたTUの分割パターン例の一覧を示す。図26に示すように、CUサイズが大きい階層(本図では、D1)までは、TU分割モードに16×16分割が含まれている。
あるいは、分割モードとして8×8分割及び16×16分割の両方を用いてもよい。この場合のCUの各形状に応じたTUの分割パターン例の一覧を図27に示す。図27に示すように、所定の階層(本図では、D1)までは、TU分割モードに16×16分割が含まれており、以降の階層(本図では、D2及びD3)では、TU分割モードに8×8分割が含まれている。
(第3の実施形態)
イントラ予測では、小サイズのCUの出現率が高いため、TUも小サイズになりやすいが、インター予測では、大サイズのCUの出現率が高いため、イントラ予測及びインター予測で同じTU分割基準を設けるのは合理的ではない。そこで、本実施形態では、予測モードがインター予測の場合のみ第1の実施形態で示したTU分割を行い、予測モードがイントラ予測の場合はTU分割を行わない。具体的には、予測モードがインター予測の場合は、CUに対するTU分割の階層を0(すなわち、分割なし)か1(すなわち、田の字分割、水平4分割、垂直4分割を1階層分行う)に制限する。
本実施形態では、予測モードがインター予測の場合は、CUに対するTU分割の階層を0か1に制限していることにより、CUの階層及び形状に応じて、TUの分割パターンを図13に示したものに制限している。
本実施形態では、予測モードがインター予測の場合は、CUに対するTU分割を一階層のみに制限すると共に、予測であるとイントラ予測の場合は、CUに対するTU分割は行わないため、動画像の符号化/復号の複雑度を低減しながらも符号化効率を維持することができる。
(TT情報復号の処理)
予測モードがインター予測の場合において、CUに対するTU分割の階層を一階層のみに制限している場合のTT情報復号部13によるTT情報復号の動作について、図28を参照して詳細に説明する。図28は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
TT情報復号部13は、符号化データからTT情報を復号し、変換ユニットTUを復号する。
(S1513)まず、TT情報復号部13は、対象TUサイズが最大TUサイズ以下、且つ、最小TUサイズよりも大きい、且つ、予測モードがインター予測であるか否かを判定する。TT情報復号部13には、各CUの予測モード(predMode)が、各CUの形状(CUwidth,CUheight)及び各CUの深度Depth(cqtDepth,cbtDepth)と共に与えられている。TT情報復号部13は、predMode = INTRAの場合は、予測モードがイントラ予測であると判定し、predMode = INTERの場合は、予測モードがインター予測であると判定する。
(S1521)TT情報復号部13は、上記の条件を満たさない場合、つまり、符号化データにTU分割フラグが現れない場合には、TU分割フラグを導出する。このTU分割フラグの導出については、後述する。
S1522~S1571までの処理は、図14に示した処理と同じであるので、ここではその説明は省略する。
(TU分割フラグの導出処理)
以下では、TT情報復号部13によるTU分割フラグの導出について、図29を参照して説明する。図29は、本発明の一実施形態に係るTT情報復号部13の概略的動作を説明するフローチャートである。
S1611~S1641までの処理は、図15に示した処理と同じであるので、ここではその説明は省略する。
(S1681)TT情報復号部13は、対象TUの予測モードがインター予測であるか否かを判定する。
(S1691)TT情報復号部13は、対象TUの予測モードがインター予測であると判定した場合には、対象TUのTU分割を行う可能性があるため、TU分割フラグを符号化データから復号する(S1691)。
(S1700)一方、TT情報復号部13は、対象TUの予測モードがインター予測ではない(つまり、イントラ予測である)と判定した場合には、対象TUのTU分割は行わないため、TU分割フラグを0として導出する。すなわち、TT情報復号部13は、CUの形状(CUwidth,CUheight)を一階層下のTUの形状(TUwidth,TUheight)として決定する。
なお、予測モードがインター予測である場合に行うTU分割は、上述したものに限定されない。例えば、予測モードがインター予測である場合、第1の実施形態の変形例(図17、図19、図20)に示したTU分割を行ってもよいし、第2の実施形態(図21)、第2の実施形態の変形例-1(図24)、及び変形例-2(図25~図27)に示したTU分割を行ってもよい。
(第4の実施形態)
変換ユニットTUに対しては、変換(量子化、逆変換、逆量子化)が行われる。この変換は、逆量子化・逆DCT部311で行われる。
図30は、逆量子化・逆DCT部311の構成例について示す機能ブロック図である。図30に示すように、逆量子化・逆DCT部311は、逆量子化部311-1及び逆DCT部311-2を備えている。逆量子化部311-1は、TT情報復号部13内のTU復号部22で復号した量子化変換係数qd[ ][ ]を逆量子化し、変換係数d[ ][ ]を導出する。逆量子化部311-1は、導出した変換係数d[ ][ ]を逆DCT部311-2に送信する。
逆DCT部311-2は、受信した変換係数d[ ][ ]を逆変換して、予測残差r[ ][ ](図10ではDとも表現)を復元する。復元された予測残差r[ ][ ]は、逆DCT部311-2から加算器312に送られる。
逆DCT部311-2は、逆DCT部311-2は、AMT部311-11及びセカンダリ変換部311-12を備えており、適応的コア変換(Adaptive Multiple Core Transform:AMT)とセカンダリ変換とを使用することができる。
具体的には、セカンダリ変換部311-12は、TT情報復号部13からセカンダリ変換を行うことを示す情報を受信し、逆量子化部311-1から受信した変換係数d[ ][ ]をセカンダリ変換することにより修正変換係数d[ ][ ]を復元する。復元された修正変換係数d[ ][ ]は、セカンダリ変換部311-12からAMT部311-11へ送信される。もし、セカンダリ変換が行われなかった場合には、セカンダリ変換部311-12が受信した変換係数d[ ][ ]がそのまま、セカンダリ変換部311-12からAMT部311-11に送信される。
なお、変換と逆変換とは、変換基底となる係数の値以外の処理に違いはない。以降の説明では逆DCT部311-2の中の変換処理に関しては、「逆変換」ではなく「変換」という用語を用いることにする。
(AMT)
AMT部311-11では、適応的に変換基底を切り替えることができ、本明細書では、明示的なフラグやインデックス及び予測モード等により切り替えられる変換をAMTと呼ぶ。AMTで用いられる変換は垂直変換と水平変換とから構成される分離型変換である。この変換の変換基底はDCT2、DST7、DCT8、DST1、及びDCT5である。
各変換基底Tij(i,j=0,1,…,N-1)は、以下の通りに求めることができる。
DCT2
Tij = w0 * (2/N)1/2 * cos(π*i*(2j+1)/2N)
w0 = (2/N)1/2 (i=0)
1 (i≠0)
DCT5
Tij = w0 * w1 * (2/(2N-1))1/2* cos(2π*i*j/(2N-1))
w0 = (2/N)1/2 (i=0)
1 (i≠0)
w1 = (2/N)1/2 (j=0)
1 (j≠0)
DCT8
Tij = (4/(2N+1))1/2 * cos(π*(2i+1)*(2j+1)/(4N+2))
DST1
Tij = (2/(N+1))1/2 * sin(π*(i+1)*(j+1)/(N+1))
DST7
Tij = (4/(2N+1))1/2 * sin(π*(2i+1)*(j+1)/(2N+1))
AMTでは、AMT部311-11は、垂直変換及び水平変換それぞれ独立に変換基底を切り替える。なお、選択可能な変換は、上記に限定されず、別の変換(変換基底)を用いることも可能である。
AMTでは、AMT部311-11は、符号化データから復号されるAMTフラグ(amt_flag)を参照し、インデックスによる切り替えを行わない固定変換と、インデックスによる切り替えを行う選択的変換とを切り替える。amt_flag = 0の場合は固定変換を用い、amt_flag= 1の場合は選択的変換を用いる。AMT部311-11は、固定変換(amt_flag = 0)では、AMTインデックスamt_idxは参照せず、固定的な変換を行う。AMT部311-11は、選択的変換(amt_flag = 1)では、選択に用いるAMTインデックスamt_idxをさらに符号化データから復号し、予測モードpredModeとAMTインデックスamt_idxとに応じて変換を切り替える。なお、本実施形態では、CU単位またはTU単位でAMTフラグを復号し、TU単位でAMTインデックスamt_idxを復号する例を記載するが、復号(切替)の単位はこれに限らない。なお、固定変換は、従来の水平・垂直変換ともDCT2、あるいはDST7である。
(イントラ予測)
AMTでは、AMT部311-11は、予測モードpredMode及びAMTインデックスamt_idxを用いて、上記の複数の変換基底から選択する。図31の(a)は、変換セットを示すテーブルであり、(b)は、各変換基底の基底関数を示す図である。
predMode = INTRA、すなわちイントラ予測の場合、AMT部311-11は、3つの変換セットから使用する変換セットを選択する。各変換セットは2つの変換基底をもつ。例えば、変換セット0では、DST7及びDCT8の2つの変換基底をセットとして持つ。
AMT部311-11では、AMTインデックスamt_idx(amt_idx_hor及びamt_idx_ver)を用いて、この2つの変換基底のどちらを使用するか指定する。amt_idx = amt_idx_ver <<1 + amt_idx_horであり、このインデックス値に基づき、変換基底を選択する。例えば、変換セット0では、amt_idx = 0であればDST7を選択し、amt_idx = 1であればDCT8を選択する。
AMT部311-11は、イントラ予測の3つの変換セット(0、1、2)のうち、どの変換セットを使用するかを、イントラ予測モードを参照して決定する。このときの参照テーブルを図32に示す。図32は、67種類のイントラ予測モード各々の水平変換及び垂直変換がどの変換セットを選択するかを示している。また、図33は、67種類のイントラ予測モードを示す概略図である。図33に示すように、イントラ予測モードは、67種類(0~66)存在する。
図32中の0、1、2はそれぞれ変換セット0、1、2を表しており、例えば、イントラ予測モードが10の場合、図中の水平変換(Horizontal)の値は0なので、水平変換には変換セット0が使用され、図中の垂直変換(Vertical)の値も0なので、垂直変換にも変換セット0が使用される。
上記で説明したAMTを、図34を用いて具体的に説明する。図34のAMT部311-11は、図30のAMT部311-11の一例である。図34のAMT部311-11は、使用する変換セットのインデックスcoreTrSetIdxを導出する変換セット導出部3111と、coreTrSetIdxを用いて変換基底を導出する変換基底選択部3112と、変換係数d[ ][ ]に垂直変換を施す垂直変換部3113と、水平変換を施す水平変換部3114とから構成される。
変換セット導出部3111は、predMode = INTRAである場合、参照テーブルを参照して、次に使用する変換セットのインデックスcoreTrSetIdxをイントラ予測モードIntraPredModeによって導出する。なお、変換セット導出部3111には、各TUの予測モード(predMode,IntraPredMode)が与えられている。
変換基底選択部3112は、coreTrSetIdxで指定される変換セットの中から、AMTインデックスamt_idxを用いて、使用する変換基底を選択する。変換基底選択部3112は、選択した変換基底が示す変換行列transMatrix[][]を導出する。変換基底選択部3112は、垂直/水平変換用に各々導出した変換行列transMatrix[][]を垂直変換部3113と水平変換部3114とに通知し、変換係数d[ ][ ]を予測残差r[ ][ ]に変換する。
垂直変換部3113は、垂直方向1次元変換により、変換係数d[ ][ ]を中間値e[ ][ ]に変換し、中間値e[ ][ ]を中間値クリップ部3115に送る。中間値クリップ部3115は、中間値e[ ][ ]をクリップすることにより中間値g[ ][ ]を導出して、水平変換部3114に送る。水平変換部3114は、中間値g[ ][ ]を予測残差r[ ][ ]に変換する。予測残差r[ ][ ]は、水平変換部3114から加算器312に送られる。
(インター予測)
本実施形態では、predMode = INTER、すなわちインター予測の場合においても、AMT部311-11は、図31に示したように、3つの変換セット(0、1、2)から使用する変換セットを選択する。各変換セットは2つの変換基底をもつ。
インター予測においても、AMT部311-11では、AMTインデックスamt_idx(amt_idx_hor及びamt_idx_ver)を用いて、この2つの変換基底のどちらを使用するか指定する。amt_idx = amt_idx_ver << 1 + amt_idx_horであり、このインデックス値に基づき、変換基底を選択する。
本実施形態では、AMT部311-11は、インター予測の3つの変換セット(0、1、2)のうち、どの変換セットを使用するかは対象TUの形状を参照して決定する。このときの参照テーブルを図35に示す。図35は、1)~5)で示されるTUの形状各々の水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2はそれぞれ変換セット0、1、2を表す。例えば、TUの形状が3)の場合、図中の水平変換(Horizontal)の値は2なので、水平変換には変換セット2が使用され、図中の垂直変換(Vertical)の値も2なので、垂直変換にも変換セット2が使用される。図35では、横長形状である1)、2)と、正方形状である3)と、縦長形状である4)、5)とには、水平変換もしくは垂直変換の少なくとも1つが異なる変換セットが用いられる。また、図35のように、横長形状と縦長形状の水平/垂直変換とは互いに対称でもよい。つまり、横長形状の水平変換と縦長形状の垂直変換、横長形状の垂直変換と縦長形状の水平変換は等しくてもよい。
ここで、TUの5種類(形状1)~5))の形状を図36に示す。2)横長2は、3)正方形よりも横長な形状を表し、1)横長1は、2)横長2よりも横長な形状を表す。また、5)縦長1は、3)正方形よりも縦長な形状を表し、4)縦長2は、5)縦長1よりも縦長な形状を表す。
なお、形状1)、2)、4)及び5)は、例えば、アスペクト比に応じて分類することができる。例えば、アスペクト比(横:縦)が2:1であれば2)横長2とし、アスペクト比が4:1以上であれば1)横長1とし、アスペクト比が1:2であれば5)縦長2とし、アスペクト比が1:4以上であれば4)縦長1とする。例えば、以下の式により形状を導出することもできる。
if (TUwidth > 2*TH height) TU形状= 形状1)横長1
else if (TUwidth > TH height) TU形状= 形状2)横長2
if (TUwidth == TH height) TU形状= 形状3)正方形
if (2*TUwidth < TH height) TU形状= 形状4)縦長1
else if (TUwidth < TH height) TU形状= 形状5)縦長2
インター予測においては、変換セット導出部3111は、predMode = INTERである場合、参照テーブルを参照して、次に使用する変換セットのインデックスcoreTrSetIdxをTUの形状によって導出する。なお、変換セット導出部3111には、予測モード(predMode)及び各TUの形状(TUwidth,TUheight)が与えられている。
変換セットのインデックスcoreTrSetIdxを導出した後の処理は、イントラ予測と同じである。
このように、本実施形態では、AMT部311-11は、イントラ予測においてAMTインデックスだけでなくイントラ予測モードを参照して変換基底を選択しているように、インター予測において、AMTインデックスだけでなくTUの形状も参照して変換基底を選択しているため、対象TUにより適当な変換基底を選択しやすくなる。例えば、TUに垂直方向のエッジがある場合には縦長の形状が選択されやすく、TUに水平方向のエッジがある場合には横長の形状が選択されやすいので、TUの形状を参照して変換基底を選択することにより、予測誤差に適した変換基底を選択しやすくなる。
なお、5種類のTUの形状各々の水平変換及び垂直変換がどの変換セットを選択するかは、図35に示した例に限定されない。例えば、変換セット導出部3111は、図37に示した参照テーブルを参照して、5種類のTUの形状各々の水平変換及び垂直変換に用いる変換セットを選択してもよい。図37のように、一部の横長形状である1)と、一部の縦長形状である4)とには、異なる変換セットが用いられ(Horizontal,Vertical)=(2,0)と(0,2)、別の一部の横長形状である2)と別の一部の縦長形状である5)とには同じ変換セット(Horizontal,Vertical)=(1, 1)が用いられてもよい。
また、変換セット導出部3111が参照するTUの形状は、5種類に限定されない。例えば、変換セット導出部3111は、図38に示した参照テーブルを参照して、3種類のTUの形状各々の水平変換及び垂直変換に用いる変換セットを選択してもよい。3種類の形状とは、横長、正方形、及び縦長であり、この場合、図36に示した1)横長1及び2)横長2、つまりTUwidth > TUheightが横長に相当し、3)正方形が正方形に相当し、4)縦長1及び5)縦長2、つまりTUwidth < TUheightが縦長に相当する。
また、変換セット導出部3111は、図39に示した参照テーブルを参照して、TUの形状各々の水平変換及び垂直変換に用いる変換セットを選択してもよい。本図では、3)正方形の場合は、水平変換及び垂直変換に用いる変換セットを何れもインター予測と同じ変換セット(変換セット0)にしている。これは、正方形形状のインター予測は、残差の偏りに垂直形状や水平形状にみられるような大きな傾斜特性がないことから、同じ変換セット、特に対称性のある変換セット0を用いることが好適であるためである。なお、変換セット0を構成するペアの基底(図31の(a))であるDST7とDCT8とが互いに対称性を有することは、図31の(b)の一番上の図から明らかである。
なお、図39でも、図35と同様、横長形状である1)、2)と、正方形上である3)と、縦長形状である4)、5)とには、水平変換もしくは垂直変換の少なくとも1つが異なる変換セットが用いられる。
(変形例-1)
インター予測において、変換セット導出部3111が参照するのは、TUの形状及びAMTインデックスに限定されない。例えば、変換セット導出部3111は、TUの形状、TUのブロックサイズ及びAMTインデックスを参照して、変換セットのインデックスを導出してもよい。ここで、ブロックサイズとは、TUwidth+TUheightである。このときの参照テーブルを図40に示す。図40は、5種類のTUの形状及び4種類のTUのブロックサイズの各組合せの水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2は各々変換セット0、1、2を表す。例えば、TUの形状が2)であり、TUのブロックサイズが8)である場合、図中の水平変換(Horizontal)の値は1なので、水平変換には変換セット1が使用され、図中の垂直変換(Vertical)の値は0なので、垂直変換にも変換セット0が使用される。
ここで、6)~9)に示されるTUののブロックサイズと、1)~5)で示されるTUの形状との関係を図41に示す。なお、TUの5種類(1)~5))の形状は、図36に示した通りである。
6)は、TUのブロックサイズが96以上であることを表し、7)は、TUのブロックサイズが48以上であることを表し、8)は、TUのブロックサイズが24以上であることを表し、9)は、TUのブロックサイズが24未満であることを表す。サイズの閾値及び方法はこれに限定されない。
なお、ブロックサイズの判定に対数サイズ、例えば、log2TUwidth+log2TUheight等を用いてもよい。また、ブロックサイズとしてTUの幅TUwidthと高さTUheightの和の代わりにTUの面積(TUの幅TUwidthと高さTUheightとの積)を使用してTUを分類してもよい。対数であればlog2TUwidth+log2TUheightは面積に対応すると考えてもよい。
このように、インター予測において、AMTインデックス及びTUの形状だけでなく、TUのブロックサイズも参照して変換基底を選択しているため、対象TUにより適当な変換基底を選択しやすくなる。
なお、5種類のTUの形状及び4種類のTUのブロックサイズの各組合せの水平変換及び垂直変換がどの変換セットを選択するかは、図40に示した例に限定されない。例えば、変換セット導出部3111は、図42に示した参照テーブルを参照して、5種類のTUの形状及び4種類のTUのブロックサイズの各組合せの水平変換及び垂直変換に用いる変換セットを選択してもよい。
(変形例-2)
インター予測において、変換セット導出部3111が参照するのは、TUの形状、TUのブロックサイズ及びAMTインデックスに限定されない。例えば、変換セット導出部3111は、TUの形状、TUの長辺及びAMTインデックスを参照して、変換セットのインデックスを導出してもよい。このときの参照テーブルを図43に示す。図43は、5種類のTUの形状及び3種類のTUの長辺の各組合せの水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2は各々変換セット0、1、2を表す。例えば、TUの形状が1)であり、TUの長辺が7)である場合、図中の水平変換(Horizontal)の値は2なので、水平変換には変換セット1が使用され、図中の垂直変換(Vertical)の値は0なので、垂直変換にも変換セット0が使用される。
ここで、TUの3種類(6)~8))の長辺と、TUの5種類(1)~5))の形状との関係を図44に示す。なお、TUの5種類(1)~5))の形状は、図36に示した通りである。
6)は、TUの長辺の長さが64以上であることを表し、7)は、TUの長辺の長さが32以上であることを表し、8)は、TUの長辺の長さが32未満であることを表す。
このように、インター予測において、AMTインデックス及びTUの形状だけでなく、TUの長辺も参照して変換基底を選択しているため、対象TUにより適当な変換基底を選択しやすくなる。
なお、5種類のTUの形状及び3種類のTUの長辺の各組合せの水平変換及び垂直変換がどの変換セットを選択するかは、図45に示した例に限定されない。例えば、変換セット導出部3111は、図45に示した参照テーブルを参照して、5種類のTUの形状及び3種類のTUの長辺の各組合せの水平変換及び垂直変換に用いる変換セットを選択してもよい。
なお、インター予測において、変換セット導出部3111が参照するのは対象TUの形状に限定されず、対象CUの形状を参照してもよい。この場合、変形例-1においては、対象CUのブロックサイズ(CUwidth+CUheight)を併せて参照すればよく、変形例-2においては、対象CUの長辺を併せて参照すればよい。
(第5の実施形態)
図33に示したように、イントラ予測においては、方向予測が65種類ある。イントラ予測において、イントラ予測モードに適した変換基底を選択することが望ましいが、方向予測ほどの精度は不要である。そこで、本実施形態では、イントラ予測では、一部のイントラ予測モードについて、水平変換及び垂直変換の一方の変換を行い、他方の変換をスキップし、スケーリング(シフトまたは乗算)のみ行う(IDentity transform:ID)。
具体的には、本実施形態では、変換セット導出部3111は、predMode = INTRAである場合、イントラ予測モードを参照して、水平方向(イントラ予測モードが18)では垂直変換の代わりにIDを用い、垂直方向(イントラ予測モードが50)では水平変換の代わりにIDを用いる。
この場合の変換セット導出部3111の動作について説明する。上述したように、predMode = INTRA、すなわちイントラ予測の場合、変換セット導出部3111は、3つの変換セットから使用する変換セットを選択する。本実施形態では、変換セット導出部3111は、3つの変換セット(0、1、2)のうち、どの変換セットを使用するかはイントラ予測モードを参照して決定する。このときの参照テーブルを図46に示す。
図46は、67種類のイントラ予測モード各々の水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2はそれぞれ変換セット0、1、2を表す。
本図(実線で囲った部分)に示すように、イントラ予測モードが18の場合、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、イントラ予測モードが50の場合、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
変換セット導出部3111は、参照テーブルを参照して、次に使用する変換セットのインデックスをイントラ予測モードによって導出する。変換セットのインデックスを導出した後の処理は、第4の実施形態に示した通りである。
本実施形態では、イントラ予測モードに基づき、水平変換及び垂直変換の一方の変換を行い、他方の変換はスキップし、スケーリングのみ行うため、計算量を削減しながらも符号化効率を維持することができる。
なお、IDを用いるイントラ予測モードは、水平方向(イントラ予測モード18)及び垂直方向(イントラ予測モード50)に限定されない。例えば、変換セット導出部3111は、水平方向(イントラ予測モード18)の近傍方向(例えば、水平方向から±3までのイントラ予測モード(=イントラ予測モード15~17,19~21))では垂直変換の代わりにIDを用い、垂直方向(イントラ予測モード50)の近傍方向(例えば、垂直方向から±3までのイントラ予測モード(=イントラ予測モード47~49,51~53))では水平変換の代わりにIDを用いてもよい。
図46(点線で囲った部分)に示したように、イントラ予測モードが15~17,19~21の場合、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、イントラ予測モードが47~49,51~53の場合、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
なお、IDを用いるイントラ予測モードに特に限定はなく、例えば、イントラ予測モード15~21で垂直変換の代わりにIDを用いてもよいし、イントラ予測モード47~53で水平変換の代わりにIDを用いてもよい。また、水平方向の近傍方向は、水平方向から±3までのイントラ予測モードに限定されず、垂直方向の近傍方向は、垂直方向から±3までのイントラ予測モードに限定されない。さらに、水平方向または水平方向の近傍方向のみで垂直変換の代わりにIDを用いてもよいし、垂直方向または垂直方向の近傍方向のみで水平変換の代わりにIDを用いてもよい。
(変形例-1)
イントラ予測において、変換セット導出部3111は、対象TUのサイズが所定の大きさよりも小さい(例えば、8×8以下または16×16以下等)ときのみ、一部のイントラ予測モードについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いてもよい。この場合の変換セット導出部3111の動作について説明する。図47は、本発明の一実施形態に係る変換セット導出部3111の概略的動作を説明するフローチャートである。
(S1811)まず、変換セット導出部3111は、対象TUのサイズが所定の大きさよりも小さいか否かを判定する。
(S1821)変換セット導出部3111は、対象TUのサイズが所定の大きさよりも小さいと判定した場合は、図46の参照テーブルを用い、変換セットの選択を行う。
(S1822)一方、変換セット導出部3111は、対象TUのサイズが所定の大きさ以上であると判定した場合は、図32の参照テーブルを用い、変換セットの選択を行う。
(変形例-2)
イントラ予測モードのうち、対象TUにおいて適用される確率が高いと推定されたイントラ予測モードは、MPM候補(candModeList)に含まれる。一方、イントラ予測モード全体からMPM候補に該当するイントラ予測モードを除いた残りのモードは、非MPM(RemIntraPredMode)と呼ばれる。さらに非MPMは、第1Gr(rem_selected_mode)と、第2Gr(rem_non_selected_mode)とに分けられる。
変換セット導出部3111は、非MPMの第2Gr(rem_non_selected_mode)に含まれるイントラ予測モードについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いてもよい。具体的には、本実施形態では、変換セット導出部3111は、predMode= INTRAである場合、イントラ予測モード及びイントラ予測パラメータを参照して、非MPMの第2Grに含まれるイントラ予測モードについては、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いる。なお、イントラ予測パラメータには、candModeList、RemIntraPredMode、rem_selected_mode及びrem_non_selected_mode等が含まれる。
この場合の変換セット導出部3111の動作について説明する。上述したように、predMode = INTRA、すなわちイントラ予測の場合、変換セット導出部3111は、3つの変換セットから使用する変換セットを選択する。本実施形態では、変換セット導出部3111は、3つの変換セット(0、1、2)のうち、どの変換セットを使用するかはイントラ予測モード及びイントラ予測パラメータを参照して決定する。このときの参照テーブルを図48に示す。
図48は、MPM候補あるいは非MPMの第1Grまたは第2Grに含まれる各イントラ予測モードの水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2はそれぞれ変換セット0、1、2を表しており、左側の数字は水平変換の変換セットを表し、右側の数字は垂直変換の変換セットを表す。
本図(実線で囲った部分)に示すように、非MPMの第2Grに含まれるイントラ予測モードについては、変換セット導出部3111は、水平変換及び垂直変換の一方の変換には変換セット0、1、2の何れかを選択し、他方の変換にはIDを選択する。
変換セット導出部3111は、参照テーブルを参照して、次に使用する変換セットのインデックスをイントラ予測モードによって導出する。変換セットのインデックスを導出した後の処理は、第4の実施形態に示した通りである。
なお、IDを用いるイントラ予測モードは、非MPMの第2Grに含まれるすべてのイントラ予測モードに限定されない。例えば、変換セット導出部3111は、非MPMの第2Grに含まれるイントラ予測モードの一部について、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いてもよい。
図48(点線で囲った部分)に示したように、隣り合う2つの第1Grのイントラ予測モードの間に含まれる3つの第2Grのイントラ予測モードのうち、2つのイントラ予測モードについてのみ、変換セット導出部3111は、水平変換及び垂直変換を行い、他方の変換にIDを用いる。
なお、IDを用いるイントラ予測モードは、非MPMの第2Grに含まれるすべてまたは2つのイントラ予測モードに限定されない。例えば、非MPMの第2Grに含まれる1つのイントラ予測モードについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いてもよい。
本変形例においても、変換セット導出部3111は、対象TUのサイズが所定の大きさよりも小さい(例えば、8×8以下または16×16以下等)ときのみ、非MPMの第2Grに含まれるイントラ予測モードについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いてもよい。この場合も変換セット導出部3111は、図47に示したフローチャートに沿って動作するが、S1821では、図48の参照テーブルを用い、変換セットの選択を行う。
なお、イントラ予測モードによって片方向の変換をスキップするか否かを決定するので、IDを使用するか否かのフラグを符号化/復号する必要がない。さらに、図46及び図48に示したように、イントラ予測モード毎に水平変換及び垂直変換の何れの変換でIDを用いるのかは決まっているので、IDを水平変換に適用する場合、AMTインデックスamt_idxで指定するのはamt_idx_verのみでよく(amt_idx_ver = amt_idx)、amt_idx_verの符号化/復号が不要である。一方、IDを垂直変換に適用する場合、AMTインデックスamt_idxで指定するのはamt_idx_horのみでよく(amt_idx_hor = amt_idx)、amt_idx_horの符号化/復号が不要である。
(第6の実施形態)
長方形状のTUでは、水平変換及び垂直変換のうち適切な方向の変換を選択すれば、1回目の分離型変換だけでも低周波数項にエネルギーが集中するため、2回目の分離型変換は不要となる。そこで、本実施形態では、対象TUの形状に基づき、水平変換及び垂直変換の一方の変換を行い、他方の変換はスキップし、スケーリング(シフトまたは乗算)のみ行う(ID)。
具体的には、本実施形態では、変換セット導出部3111は、TUの形状を参照して、横長な長方形状のTUである場合は垂直変換の代わりにIDを用い、縦長な長方形状のTUである場合は水平変換の代わりにIDを用いる。
この場合の変換セット導出部3111の動作について説明する。上述したように、変換セット導出部3111は、3つの変換セットから使用する変換セットを選択する。本実施形態では、変換セット導出部3111は、3つの変換セット(0、1、2)のうち、どの変換セットを使用するかはTUの形状を参照して決定する。このときの参照テーブルを図49に示す。
図49は、5種類のTUの形状各々の水平変換及び垂直変換がどの変換セットを選択するかを示している。図中の0、1、2はそれぞれ変換セット0、1、2を表す。なお、TUの5種類(1)~5))の形状は、図35に示した通りである。
本図に示すように、TUの形状が1)横長1または2)横長2の場合、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、TUの形状が4)縦長1または5)縦長2の場合、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
変換セット導出部3111は、参照テーブルを参照して、次に使用する変換セットのインデックスをTUの形状によって導出する。変換セットのインデックスを導出した後の処理は、第4の実施形態に示した通りである。
本実施形態では、対象TUの形状に基づき、水平変換及び垂直変換の一方の変換を行い、他方の変換はスキップし、スケーリングのみ行うため、計算量を削減しながらも符号化効率を維持することができる。
また、TUの形状によって片方向の変換をスキップするか否かを決定するので、IDを使用するか否かのフラグを符号化/復号する必要がない。さらに、図49に示したように、対象TUの形状毎に水平変換及び垂直変換の何れの変換でIDを用いるのかは決まっているので、IDを水平変換に適用する場合、AMTインデックスamt_idxで指定するのはamt_idx_verのみでよく(amt_idx_ver = amt_idx)、amt_idx_verの符号化/復号が不要である。一方、IDを垂直変換に適用する場合、AMTインデックスamt_idxで指定するのはamt_idx_horのみでよく(amt_idx_hor = amt_idx)、amt_idx_horの符号化/復号が不要である。
なお、5種類のTUの形状各々の水平変換及び垂直変換がどの変換セットを選択するかは、図49に示した例に限定されない。例えば、変換セット導出部3111は、図50に示した参照テーブルを参照して、5種類のTUの形状各々の水平変換及び垂直変換に用いる変換セットを選択してもよい。本図では、TUの形状が1)横長1の場合のみ、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、TUの形状が4)縦長1の場合のみ、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
(変形例-1)
長方形状のTUについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いる対応は、TUのブロックサイズが閾値以下の場合に行ってもよい。具体的には、変換セット導出部3111は、TUの形状及びTUのブロックサイズを参照して、ブロックサイズが閾値以下であれば、横長な長方形状のTUである場合は垂直変換の代わりにIDを用い、縦長な長方形状のTUである場合は水平変換の代わりにIDを用いる。
このときの参照テーブルを図51に示す。図51は、5種類のTUの形状及び4種類のTUのブロックサイズの各組合せの水平変換及び垂直変換がどの変換セットを選択するかを示している。なお、TUの5種類(1)~5))の形状は、図36に示した通りであり、また、TUの4種類(6)~9))のブロックサイズは、図41に示した通りである。
本図に示すように、TUのブロックサイズが閾値(本図では、9)24未満)であれば、TUの形状が1)横長1の場合、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、TUのブロックサイズが閾値(本図では、9)24未満)であれば、TUの形状が4)縦長1の場合、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
(変形例-2)
長方形状のTUについて、水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いる対応は、TUの長辺の長さが閾値以下の場合に行ってもよい。具体的には、変換セット導出部3111は、TUの形状及びTUの長辺を参照して、長辺の長さが閾値以下であれば、横長な長方形状のTUである場合は垂直変換の代わりにIDを用い、縦長な長方形状のTUである場合は水平変換の代わりにIDを用いる。
このときの参照テーブルを図52に示す。図52は、5種類のTUの形状及び3種類のTUのブ長辺の各組合せの水平変換及び垂直変換がどの変換セットを選択するかを示している。なお、TUの5種類(1)~5))の形状は、図36に示した通りであり、また、TUの4種類(6)~8))の長辺は、図44に示した通りである。
本図に示すように、TUの長辺が閾値(本図では、8)32未満)であれば、TUの形状が1)横長1または2)横長2の場合、変換セット導出部3111は、水平変換には変換セット2を選択し、垂直変換にはIDを選択する。また、TUのブロックサイズが閾値(本図では、8)32未満)であれば、TUの形状が4)縦長1または5)縦長2の場合、変換セット導出部3111は、水平変換にはIDを選択し、垂直変換には変換セット2を選択する。
(変形例-3)
以上で示した水平変換及び垂直変換の一方の変換を行い、他方の変換にIDを用いる対応は、インター予測である場合に行ってもよい。具体的には、変換セット導出部3111は、predMode = INTERである場合、TUの形状を参照して、横長な長方形状のTUである場合は垂直変換の代わりにIDを用い、縦長な長方形状のTUである場合は水平変換の代わりにIDを用いる。あるいは、変換セット導出部3111は、predMode = INTERである場合、TUの形状及びTUの長辺を参照して、長辺の長さが閾値以下であれば、横長な長方形状のTUである場合は垂直変換の代わりにIDを用い、縦長な長方形状のTUである場合は水平変換の代わりにIDを用いる。
この場合の変換セット導出部3111の動作について説明する。図53は、本発明の一実施形態に係る変換セット導出部3111の概略的動作を説明するフローチャートである。
(S1831)まず、変換セット導出部3111は、対象TUについて、予測モードがインター予測であるか否かを判定する。
(S1841)変換セット導出部3111は、予測モードがインター予測であると判定した場合は、図49の参照テーブルを用い、変換セットの選択を行う。
(S1842)一方、変換セット導出部3111は、予測モードがインター予測ではない、つまりイントラ予測であると判定した場合は、図46の参照テーブルを用い、変換セットの選択を行う。
なお、S1841では、図49の代わりに図50~図52の何れかの参照テーブルを用い、変換セットの選択を行ってもよい。また、S1842では、図46の代わりに、図48の参照テーブルを用い、変換セットの選択を行ってもよい。
(変形例-4)
対象TUの形状が、図36に示した1)横長1または4)縦長1の場合は、水平変換及び垂直変換の両方の変換にIDを用いてもよい。つまり、対象TUの形状が、図36に示した1)横長1または4)縦長1の場合は、逆DCT部311-2では、AMTは行われずセカンダリ変換のみ行われることになる。
この場合の変換セット導出部3111の動作について説明する。図54は、本発明の一実施形態に係る変換セット導出部3111の概略的動作を説明するフローチャートである。
(S1851)まず、変換セット導出部3111は、対象TUのサイズの比(幅/高さ)が所定値以上(例えば、TUwidth/TUheight>=4)であるか否かを判定する。
(S1861)変換セット導出部3111は、対象TUのサイズの比(幅/高さ)が所定値未満であると判定した場合は、対象TUのサイズの比(高さ/幅)が所定値以上(例えば、TUheight/TUwidth>=4)であるか否かを判定する。
(S1871)変換セット導出部3111は、対象TUのサイズ(高さ/幅)が所定値未満であると判定した場合は、図35の参照テーブルを用い、変換セットの選択を行う。
(S1872)一方、変換セット導出部3111は、対象TUのサイズ(幅/高さ)が所定値以上である(つまり、1)横長1である64x16、64x8、64x4、32x8、32x4、16x4)、または、対象TUのサイズ(高さ/幅)が所定値以上である(つまり、4)縦長1である16x64、8x64、4x64、8x32、4x32、4x16)と判定した場合は、水平変換及び垂直変換の両方の変換にIDを用いる。
なお、S1871では、図35の代わりに図37、図40、図43、図49~図52の何れかの参照テーブルを用い、変換セットの選択を行ってもよい。
(ソフトウェアによる実現例)
なお、上述した実施形態における画像符号化装置11、画像復号装置31の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆DCT部311、加算部312、予測画像生成部101、減算部102、DCT・量子化部103、エントロピー符号化部104、逆量子化・逆DCT部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、画像符号化装置11、画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における画像符号化装置11、画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。画像符号化装置11、画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
(応用例)
上述した画像符号化装置11及び画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CG及びGUIを含む)であってもよい。
まず、上述した画像符号化装置11及び画像復号装置31を、動画像の送信及び受信に利用できることを、図8を参照して説明する。
図8の(a)は、画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック図である。図8の(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した画像符号化装置11は、この符号化部PROD_A1として利用される。
送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部A7を更に備えていてもよい。図8の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図8の(b)は、画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック図である。図8の(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号部PROD_B3と、を備えている。上述した画像復号装置31は、この復号部PROD_B3として利用される。
受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示するディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図8の(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送(ここでは、送信先が予め特定されていない送信態様を指す)であってもよいし、通信(ここでは、送信先が予め特定されている送信態様を指す)であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
例えば、地上デジタル放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を無線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。また、ケーブルテレビ放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を有線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。
また、インターネットを用いたVOD(Video On Demand)サービスや動画共有サービスなどのサーバ(ワークステーションなど)/クライアント(テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど)は、変調信号を通信で送受信する送信装置PROD_A/受信装置PROD_Bの一例である(通常、LANにおいては伝送媒体として無線または有線の何れかが用いられ、WANにおいては伝送媒体として有線が用いられる)。ここで、パーソナルコンピュータには、デスクトップ型PC、ラップトップ型PC、及びタブレット型PCが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置PROD_A及び受信装置PROD_Bの双方として機能する。
次に、上述した画像符号化装置11及び画像復号装置31を、動画像の記録及び再生に利用できることを、図9を参照して説明する。
図9の(a)は、上述した画像符号化装置11を搭載した記録装置PROD_Cの構成を示したブロック図である。図9の(a)に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した画像符号化装置11は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)などのように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリなどのように、記録装置PROD_Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図9の(a)においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
このような記録装置PROD_Cとしては、例えば、DVDレコーダ、BDレコーダ、HDD(Hard Disk Drive)レコーダなどが挙げられる(この場合、入力端子PROD_C4または受信部PROD_C5が動画像の主な供給源となる)。また、カムコーダ(この場合、カメラPROD_C3が動画像の主な供給源となる)、パーソナルコンピュータ(この場合、受信部PROD_C5または画像処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3または受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_Cの一例である。
図9の(b)は、上述した画像復号装置31を搭載した再生装置PROD_Dの構成を示したブロックである。図9の(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した画像復号装置31は、この復号部PROD_D2として利用される。
なお、記録媒体PROD_Mは、(1)HDDやSSDなどのように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリなどのように、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなどのように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図9の(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
このような再生装置PROD_Dとしては、例えば、DVDプレイヤ、BDプレイヤ、HDDプレイヤなどが挙げられる(この場合、テレビジョン受像機等が接続される出力端子PROD_D4が動画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称され、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4または送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型またはタブレット型PC(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)なども、このような再生装置PROD_Dの一例である。
(ハードウェア的実現及びソフトウェア的実現)
また、上述した画像復号装置31及び画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(RandomAccess Memory)、上記プログラム及び各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc)/CD-R(CD Recordable)/ブルーレイディスク(Blu-ray Disc:登録商標)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electrically Erasable and Programmable Read-Only Memory:登録商標)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、BlueTooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
(関連出願の相互参照)
本出願は、2016年8月26日に出願された日本国特許出願:特願2016-166318に対して優先権の利益を主張するものであり、それを参照することにより、その内容の全てが本書に含まれる。