(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、対象画像を符号化した符号化ストリームを伝送し、伝送された符号化ストリームを復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31、及び動画像表示装置(画像表示装置)41を含んで構成される。
動画像符号化装置11には画像Tが入力される。
ネットワーク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)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズ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)。
abs(a)はaの絶対値を返す関数である。
Int(a)はaの整数値を返す関数である。
floor(a)はa以下の最大の整数を返す関数である。
ceil(a)はa以上の最小の整数を返す関数である。
a/dはdによるaの除算(小数点以下切り捨て)を表す。
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図4は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図4には、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図が示されている。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図4に示すように、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、Adaptation Parameter Set(APS)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図4に示すように、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスは、図4に示すように、スライスヘッダ、および、スライスデータを含んでいる。
スライスヘッダには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライスを指す。
なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図4の符号化スライスヘッダに示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図4には、処理対象のCTUを復号するために動画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により、符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
CTは、CT情報として、CT分割を行うか否かを示すCU分割フラグ(split_cu_flag)、QT分割を行うか否かを示すQT分割フラグ(qt_split_cu_flag)、MT分割の分割方向を示すMT分割方向(mtt_split_cu_vertical_flag)、MT分割の分割タイプを示すMT分割タイプ(mtt_split_cu_binary_flag)を含む。split_cu_flag、qt_split_cu_flag、mtt_split_cu_vertical_flag、mtt_split_cu_binary_flagは符号化ノード毎に伝送される。
split_cu_flagが1かつqt_split_cu_flagが1の場合、符号化ノードは4つの符号化ノードに分割される(図5のQT)。
split_cu_flagが0の場合に符号化ノードは分割されず1つのCUをノードとして持つ(図5の分割なし)。CUは符号化ノードの末端ノードであり、これ以上分割されない。CUは、符号化処理の基本的な単位となる。
split_cu_flagが1かつqt_split_cu_flagが0の場合に符号化ノードは以下のようにMT分割される。mtt_split_cu_binary_flagが1の時、mtt_split_cu_vertical_flagが0の場合に符号化ノードは2つの符号化ノードに水平分割され(図5のBT(水平分割))、mtt_split_cu_vertical_flagが1の場合に符号化ノードは2つの符号化ノードに垂直分割される(図5のBT(垂直分割))。また、mtt_split_cu_binary_flagが0の時、mtt_split_cu_vertical_flagが0の場合に符号化ノードは3つの符号化ノードに水平分割され(図5のTT(水平分割))、mtt_split_cu_vertical_flagが1の場合に符号化ノードは3つの符号化ノードに垂直分割される(図5のTT(垂直分割))。これらを図5のCT情報に示す。
輝度と色差で異なるツリーを用いても良い。ツリーの種別をtreeTypeで示す。例えば、輝度(Y, cIdx=0)と色差(Cb/Cr, cIdx=1,2)で共通のツリーを用いる場合、共通単一ツリーをtreeType=SINGLE_TREEで示す。輝度と色差で異なる2つのツリー(DUALツリー)を用いる場合、輝度のツリーをtreeType= DUAL_TREE_LUMA、色差のツリーをtreeType=DUAL_TREE_CHROMAで示す。
(符号化ユニット)
図4は、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCUのサイズよりも大きい場合、CUはサブCUに分割される。たとえばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
予測の種類(予測モード)は、イントラ予測と、インター予測の2つがある。イントラ予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位でエントロピー符号化してもよい。
(予測パラメータ)
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
以下、インター予測の予測パラメータについて説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0とpredFlagL1、参照ピクチャインデックスrefIdxL0とrefIdxL1、動きベクトルmvL0とmvL1から構成される。predFlagL0、predFlagL1は、参照ピクチャリスト(L0リスト、L1リスト)が用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
インター予測パラメータを導出するためのシンタックス要素には、例えば、マージモードで用いるアフィンフラグaffine_flag、マージフラグmerge_flag、マージインデックスmerge_idx、MMVDフラグmmvd_merge_flag、AMVPモードで用いる参照ピクチャを選択するためのインター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルを導出するための予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、動きベクトル精度モードamvr_modeがある。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Advanced Motion Vector Prediction、適応動きベクトル予測)モードがあり、merge_flagは、これらを識別するためのフラグである。マージ予測モードは、予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍ブロックの予測パラメータ等から導出するモードである。AMVPモードは、inter_pred_idc、refIdxLX、mvLXを符号化データに含めるモードである。なお、mvLXは、予測ベクトルmvpLXを識別するmvp_LX_idxと差分ベクトルmvdLXとして符号化される。また、マージ予測モードの他に、アフィン予測モード、MMVD予測モードがあってもよい。
inter_pred_idcは、参照ピクチャの種類および数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストで管理された1枚の参照ピクチャを用いる単予測を示す。PRED_BIはL0リストとL1リストで管理された2枚の参照ピクチャを用いる双予測を示す。
merge_idxは、処理が完了したブロックから導出される予測パラメータ候補(マージ候補)のうち、いずれの予測パラメータを対象ブロックの予測パラメータとして用いるかを示すインデックスである。
(動きベクトル)
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は、2つの予測リスト利用フラグがともに1であるかによって導出できる。例えば以下の式で導出できる。
biPred = (predFlagL0==1 && predFlagL1==1)
あるいは、biPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。例えば以下の式で導出できる。
biPred = (inter_pred_idc==PRED_BI) ? 1 : 0
(イントラ予測パラメータ)
以下、イントラ予測の予測パラメータについて説明する。イントラ予測パラメータは、輝度予測モードIntraPredModeY、色差予測モードIntraPredModeCから構成される。例えば、プレーナ予測(0)、DC予測(1)、Angular予測(それ以外)である。さらに、色差ではCCLMモード(81~83)を追加してもよい。
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(図6)の構成について説明する。
動画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312、予測パラメータ導出部320を含んで構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
パラメータ復号部302は、さらに、ヘッダ復号部3020、CT情報復号部3021、及びCU復号部3022(予測モード復号部)を備えており、CU復号部3022はさらにTU復号部3024を備えている。これらを総称して復号モジュールと呼んでもよい。
(基本フロー)
図7は、動画像復号装置31の概略的動作を説明するフローチャートである。
(S1100:パラメータセット情報復号)ヘッダ復号部3020は、符号化データからVPS、SPS、PPSなどのパラメータセット情報を復号する。
(S1200:スライス情報復号)ヘッダ復号部3020は、符号化データからスライスヘッダ(スライス情報)を復号する。
以下、動画像復号装置31は、対象ピクチャに含まれる各CTUについて、S1300からS5000の処理を繰り返すことにより各CTUの復号画像を導出する。
(S1300:CTU情報復号)CT情報復号部3021は、符号化データからCTUを復号する。
(S1400:CT情報復号)CT情報復号部3021は、符号化データからCTを復号する。
(S1500:CU復号)CU復号部3022はS1510、S1520を実施して、符号化データからCUを復号する。
(S1510:CU情報復号)CU復号部3022は、符号化データからCU情報、予測情報、TU分割フラグsplit_transform_flag、CU残差フラグcbf_cb、cbf_cr、cbf_luma等を復号する。
(S1520:TU情報復号)TU復号部3024は、TUに予測誤差が含まれている場合に、符号化データからQP更新情報と量子化予測誤差、変換インデックスmts_idxを復号する。なお、QP更新情報は、量子化パラメータQPの予測値である量子化パラメータ予測値qPpredからの差分値である。
(S2000:予測画像生成)予測画像生成部308は、対象CUに含まれる各ブロックについて、予測情報に基づいて予測画像を生成する。
(S3000:逆量子化・逆変換)逆量子化・逆変換部311は、対象CUに含まれる各TUについて、逆量子化・逆変換処理を実行する。
(S4000:復号画像生成)加算部312は、予測画像生成部308より供給される予測画像と、逆量子化・逆変換部311より供給される予測誤差とを加算することによって、対象CUの復号画像を生成する。
(S5000:ループフィルタ)ループフィルタ305は、復号画像にデブロッキングフィルタ、SAO、ALFなどのループフィルタをかけ、復号画像を生成する。
パラメータ復号部302のヘッダ復号部3020は、符号化データからVPS、SPS、PPS、APSなどのパラメータセット情報、スライスヘッダ(スライス情報)を復号する。CT情報復号部3021は、符号化データからCTを復号する。CU復号部3022は符号化データからCUを復号する。
パラメータ復号部302は、以下の動作を行っても良い。
パラメータ復号部302はスキップフラグ(cu_skip_flag)を復号する(S1600)。
パラメータ復号部302はスキップフラグが0か否かを判定する(S1602)。
スキップフラグが0の場合、パラメータ復号部302はマージフラグ(general_merge_flag)を復号する(S1604)。一方、スキップフラグが0でない場合、インター予測パラメータ導出部303はマージフラグを1にセットする(S1606)。
パラメータ復号部302はマージフラグが1か否かを判定する(S1608)。
マージフラグが1の場合、パラメータ復号部302は対象ブロックがマージ予測であると判定し、マージ予測に関係する情報を導出する(S1610)。マージフラグが1でない場合、インター予測パラメータ導出部303は対象ブロックがAMVP予測であると判定し、AMVP予測に関係する情報を導出する(S1612)。
パラメータ復号部302はregular_merge_flagを復号する(S1301)。regular_merge_flag==1の場合(S1301でYES)、sps_mmvd_enabled_flagの値をチェックする(S1303)。sps_mmvd_enabled_flagはシーケンスパラメータセット(SPS)等で通知される、MMVD予測が利用可能か否かを示すフラグである。sps_mmvd_enabled_flag==1、つまりMMVD予測が利用可能な場合(S1303でYES)、パラメータ復号部302は、符号化データからMMVDフラグ(mmvd_merge_flag)を復号する(S1304)。
regular_merge_flag==0、つまり、レギュラーマージモードでない場合(S1301でNO)、パラメータ復号部302は、CIIPフラグ(ciip_flag)を復号する(S1310)。ciip_flag==1の場合には(S1311でYES)、CIIPパラメータを符号化データから復号する(S1312)。CIIPパラメータ復号ではmerge_idxを復号してもよい。インター予測パラメータ導出部303は、インター予測画像生成部309にこれらのパラメータを出力する。
ciip_flag==0の場合には(S1311でNO)、インター予測パラメータ導出部303は対象ブロックがtriangleモードであると判断し、パラメータ復号部302はtriangleパラメータを復号する(S1313)。例えば、triangleパラメータとして、CUの分割方向merge_triangle_split_dir、分割したブロックの一方のmerge_idxであるmerge_triangle_idx0と他方のmerge_idxであるmerge_triangle_idx1を復号しても良い。インター予測パラメータ導出部303は、triangleモードの場合、triangle予測部30377を起動する。
パラメータ復号部302のTU復号部3024は、TUに予測誤差が含まれている場合に、符号化データからQP更新情報(量子化補正値)と量子化予測誤差(residual_coding)を復号する。
TU復号部3024は、スキップモード以外(skip_mode==0)の場合に、符号化データからQP更新情報と量子化予測誤差を復号する。より具体的には、TU復号部3024は、skip_mode==0の場合に、対象ブロックに量子化予測誤差が含まれているか否かを示すフラグcu_cbpを復号し、cu_cbpが1の場合に量子化予測誤差を復号する。cu_cbpが符号化データに存在しない場合は0と導出する。
TU復号部3024は、符号化データから変換基底を示すインデックスmts_idxを復号する。また、TU復号部3024は、符号化データからセカンダリ変換の利用及び変換基底を示すインデックスstIdxを復号する。また、TU復号部3024はサブブロック変換フラグcu_sbt_flagを復号してもよい。
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず、サブCU単位で処理をしてもよい。あるいはCTU、CUをブロック、サブCUをサブブロックと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を復号する。エントロピー符号化には、シンタックス要素の種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックス要素を可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックス要素を可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)は、コンテキストのCABAC状態(優勢シンボルの種別(0 or 1)と確率を指定する確率状態インデックスpStateIdx)をメモリに格納する。エントロピー復号部301は、セグメント(タイル、CTU行、スライス)の先頭で全てのCABAC状態を初期化する。エントロピー復号部301は、シンタックス要素をバイナリ列(Bin String)に変換し、Bin Stringの各ビットを復号する。コンテキストを用いる場合には、シンタックス要素の各ビットに対してコンテキストインデックスctxIncを導出し、コンテキストを用いてビットを復号し、用いたコンテキストのCABAC状態を更新する。コンテキストを用いないビットは、等確率(EP, bypass)で復号され、ctxInc導出やCABAC状態は省略される。復号されたシンタックス要素には、予測画像を生成するための予測情報および、差分画像を生成するための予測誤差などがある。
エントロピー復号部301は、復号した符号をパラメータ復号部302に出力する。復号した符号とは、例えば、予測モードpredMode、merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX等である。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
予測パラメータ導出部320は、インター予測パラメータ導出部303及びイントラ予測パラメータ導出部304を含んで構成される。
(インター予測パラメータ導出部の構成)
図25には、本実施形態に係るインター予測パラメータ導出部303の構成を示す概略図が示されている。インター予測パラメータ導出部303は、パラメータ復号部302から入力されたシンタックス要素に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを導出する。また、インター予測パラメータをインター予測画像生成部309、予測パラメータメモリ307に出力する。インター予測パラメータ導出部303及びその内部の要素であるAMVP予測パラメータ導出部3032、マージ予測パラメータ導出部3036、アフィン予測部30372、MMVD予測部30373、triangle予測部30377、DMVR部30537、MV加算部3038は、動画像符号化装置、動画像復号装置で共通する手段であるので、これらを総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。
affine_flagが1、すなわち、アフィン予測モードを示す場合、アフィン予測部30372は、サブブロック単位のインター予測パラメータを導出する。
mmvd_merge_flagが1、すなわち、MMVD予測モードを示す場合、MMVD予測部30373は、マージ予測パラメータ導出部3036で導出されるマージ候補と差分ベクトルからインター予測パラメータを導出する。
TriangleFlagが1、すなわち、traiangle予測モードを示す場合、triangle予測部30377はtriangle予測パラメータを導出する。
merge_flagが1、すなわち、マージ予測モードを示す場合、merge_idxを導出し、マージ予測パラメータ導出部3036に出力する。
merge_flagが0、すなわち、AMVP予測モードを示す場合、AMVP予測パラメータ導出部3032はinter_pred_idc、refIdxLXかmvp_LX_idxからmvpLXを導出する。
(MV加算部)
MV加算部3038では導出されたmvpLXとmvdLXを加算し、mvLXを導出する。
(アフィン予測部)
アフィン予測部30372は、1)対象ブロックの2つの制御点CP0、CP1、もしくは3つの制御点CP0, CP1, CP2の動きベクトルを導出し、2)対象ブロックのアフィン予測パラメータを導出し、3)アフィン予測パラメータから各サブブロックの動きベクトルを導出する。
(マージ予測)
図8には、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図が示されている。マージ予測パラメータ導出部3036は、マージ候補導出部30361、マージ候補選択部30362を備える。なお、マージ候補は、予測パラメータ(predFlagLX、mvLX、refIdxLX)を含んで構成され、マージ候補リストに格納される。マージ候補リストに格納されたマージ候補には、所定の規則に従ってインデックスが割り当てられる。
マージ候補導出部30361は、復号済の隣接ブロックの動きベクトルとrefIdxLXをそのまま用いてマージ候補を導出する。それ以外に、マージ候補導出部30361は、後述する空間マージ候補導出処理、時間マージ候補導出処理、ペアワイズマージ候補導出処理、およびゼロマージ候補導出処理を適用してもよい。
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予測パラメータメモリ307が記憶している予測パラメータを読み出し、マージ候補に設定する。参照ピクチャの指定方法は、例えば、対象ブロックから予め定めた範囲内にある隣接ブロック(例えば、対象ブロックの左A1、右B1、右上B0、左下A0、左上B2にそれぞれ接するブロックの全部または一部)のそれぞれに係る予測パラメータである。各々のマージ候補をA1,B1,B0,A0,B2と呼ぶ。
ここで、A1,B1,B0,A0,B2は各々、下記の座標を含むブロックから導出される動き情報である。図24のマージ候補の配置にA1,B1,B0,A0,B2の位置を示す。
A1: (xCb - 1, yCb + cbHeight - 1)
B1: (xCb + cbWidth - 1, yCb - 1)
B0: (xCb + cbWidth, yCb - 1)
A0: (xCb - 1, yCb + cbHeight)
B2: (xCb - 1, yCb - 1)
対象ブロックの左上座標を(xCb, yCb)、幅cbWidth、高さcbHeightとする。
時間マージ導出処理として、マージ候補導出部30361は、対象ブロックの右下CBR、あるいは、中央の座標を含む参照画像中のブロックCの予測パラメータを、予測パラメータメモリ307から読み出してマージ候補Colとし、マージ候補リストmergeCandList[]に格納する。
ペアワイズ候補導出部は、mergeCandListに格納済みの2つのマージ候補(p0Cand, p1Cand)の平均からペアワイズ候補avgKを導出し、mergeCandList[]に格納する。
mvLXavgK[0] = (mvLXp0Cand[0]+mvLXp1Cand[0])/2
mvLXavgK[1] = (mvLXp0Cand[1]+mvLXp1Cand[1])/2
マージ候補導出部30361は、refIdxLXが0…Mであり、mvLXのX成分、Y成分が共に0であるゼロマージ候補Z0,…, ZMを導出しマージ候補リストに格納する。
mergeCandList[]に格納する順番は、例えば、空間マージ候補(A1,B1,B0,A0,B2)、時間マージ候補Col、ペアワイズ候補avgK、ゼロマージ候補ZKである。なお、利用可能でない(ブロックがイントラ予測等)参照ブロックはマージ候補リストに格納しない。
i = 0
if( availableFlagA1 )
mergeCandList[ i++ ] = A1
if( availableFlagB1 )
mergeCandList[ i++ ] = B1
if( availableFlagB0 )
mergeCandList[ i++ ] = B0
if( availableFlagA0 )
mergeCandList[ i++ ] = A0
if( availableFlagB2 )
mergeCandList[ i++ ] = B2
if( availableFlagCol )
mergeCandList[ i++ ] = Col
if( availableFlagAvgK )
mergeCandList[ i++ ] = avgK
if( i < MaxNumMergeCand )
mergeCandList[ i++ ] = ZK
マージ候補選択部30362は、マージ候補リストに含まれるマージ候補のうち、merge_idxが示すマージ候補Nを以下の式で選択する。
N = mergeCandList[merge_idx]
ここでNは、マージ候補を示すラベルであり、A1,B1,B0,A0,B2,Col,avgK,ZKなどをとる。ラベルNで示されるマージ候補の動き情報は(mvLXN[0], mvLXN[0])、predFlagLXN, refIdxLXNで示される。
選択された(mvLXN[0], mvLXN[0])、predFlagLXN, refIdxLXNを対象ブロックのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補のインター予測パラメータを予測パラメータメモリ307に記憶するとともに、インター予測画像生成部309に出力する。
(MMVD予測:merge with Motion Vector Difference)
MMVD予測部30373は、マージ候補導出部30361で導出した中心ベクトルmvpLX(マージ候補Nの動きベクトルmvLXN)に、所定の距離及び所定の方向のmvdLXを加算することでmvLXを求める。MMVD予測部30373は、符号化データのシンタックス要素mmvd_cand_flag(図24)を用いて中心ベクトルmvLX[]を導出し、方向テーブルのインデックスを示すmmvd_direction_idx(同図DirectionTable)と距離テーブルのインデックスを示すmmvd_distance_idx(同図DistanceTable)から差分ベクトルmvpLX[]を導出する。
MMVD予測部30373は、中心ベクトルmvLXN[]をmmvd_cand_flagで選択する。
N = mergeCandList[mmvd_cand_flag]
MMVD予測部30373は、mmvd_distance_idxからベース距離(mvdUnit[0], mvdUnit[1])を導出し、mmvd_distance_idxから距離DistFromBaseMVを導出する。
dir_table_x[] = { 1, -1, 0, 0 }
dir_table_y[] = { 0, 0, 1, -1 }
mvdUnit[0] = dir_table_x[mmvd_direction_idx]
mvdUnit[1] = dir_table_y[mmvd_direction_idx]
DistFromBaseMV = DistanceTable[mmvd_distance_idx]
MMVD予測部30373は、(mvdUnit[0], mvdUnit[1])とDistFromBaseMVとの積を用いて差分ベクトルrefineMv[]を導出する。
firstMv[0] = (DistFromBaseMV<<shiftMMVD) * mvdUnit[0]
firstMv[1] = (DistFromBaseMV<<shiftMMVD) * mvdUnit[1]
ここでshiftMMVDは、動き補償部3091(補間部)での動きベクトルの精度MVPRECにあうように差分ベクトルの大きさを調整する値である。例えば対象ピクチャと2枚の参照ピクチャとの距離が同じ、かつ、対象ピクチャに対し2枚の参照ピクチャが同じ方向にある場合、差分ベクトルは下式で導出される。
refineMvL0[0] = firstMv[0]
refineMvL0[1] = firstMv[1]
refineMvL1[0] = firstMv[0]
refineMvL1[1] = firstMv[1]
最終的に、MMVD予測部30373は、refineMvLXと中心ベクトルmvLXNから以下のように、MMVDマージ候補の動きベクトルを導出する。
mvL0[ 0 ] = mvL0N[ 0 ] + refineMvL0[0]
mvL0[ 1 ] = mvL0N[ 1 ] + refineMvL0[1]
mvL1[ 0 ] = mvL1N[ 0 ] + refineMvL1[0]
mvL1[ 1 ] = mvL1N[ 1 ] + refineMvL1[1]
(Triangle予測)
Triangle予測では、対角線を境界として、対象CUが2つの三角形の予測単位に分割される。それぞれの三角形予測単位における予測画像は、対象CU(三角形予測単位を含む矩形ブロック)の予測画像の各画素に画素の位置に応じた重みつけマスク処理を施すことで導出する(Triangle合成処理)。変換(逆変換)及び量子化(逆量子化)処理は対象CUの全体に対して適用される。なお、Triangle予測は、マージ予測モード又はスキップモードの場合にのみ適用される。
Triangle予測部30377は、Triangle予測に用いられる2つの三角形領域に対応する予測パラメータを導出し、インター予測画像生成部309に供給する。なお、2つの予測画像の導出及び予測画像を用いた合成は、動き補償部3091、Triangle合成部30952で行う。
(DMVR:Decoder side Motion Vector Refinement)
DMVR部30375は、対象CUに対して、merge_flagが1の場合、又は、スキップフラグskip_flagが1の場合、マージ予測部30374が導出する当該対象CUのmvLXを、参照画像を用いて修正する。具体的には、マージ予測部30374が導出する予測パラメータが双予測である場合において、2つの参照ピクチャに対応すると動きベクトルから導出される予測画像を用いて、動きベクトルを修正する。修正後のmvLXはインター予測画像生成部309に供給される。
(AMVP予測)
図8には、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図が示されている。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033とベクトル候補選択部3034を備える。ベクトル候補導出部3033は、refIdxLXに基づいて予測パラメータメモリ307が記憶する復号済みの隣接ブロックの動きベクトルから予測ベクトル候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
ベクトル候補選択部3034は、mvpListLX[]の予測ベクトル候補のうち、mvp_LX_idxが示す動きベクトルmvpListLX[mvp_LX_idx]をmvpLXとして選択する。ベクトル候補選択部3034は選択したmvpLXをMV加算部3038に出力する。
(MV加算部)
MV加算部3038は、AMVP予測パラメータ導出部3032から入力されたmvpLXと復号したmvdLXを加算してmvLXを算出する。加算部3038は、算出したmvLXをインター予測画像生成部309および予測パラメータメモリ307に出力する。
mvLX[0] = mvpLX[0]+mvdLX[0]
mvLX[1] = mvpLX[1]+mvdLX[1]
(イントラ予測パラメータ導出部304の構成)
イントラ予測パラメータ導出部304は、パラメータ復号部302からの入力に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータ、例えば、イントラ予測モードIntraPredModeを導出する。イントラ予測パラメータ導出部304は、イントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。イントラ予測パラメータ導出部304は、輝度と色差で異なるイントラ予測モードを導出しても良い。
ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
参照ピクチャメモリ306は、CUの復号画像を、対象ピクチャ及び対象CU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、CTUあるいはCU毎に予め定めた位置に予測パラメータを記憶する。具体的には、予測パラメータメモリ307は、パラメータ復号部302が復号したパラメータ及び予測パラメータ導出部320が導出したパラメータ等を記憶する。
予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
予測画像生成部308には予測パラメータ導出部320が導出したパラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、predModeが示す予測モードで、パラメータと参照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、予測画像を生成するために参照する領域である。
(インター予測画像生成部309)
predModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ導出部303から入力されたインター予測パラメータと参照ピクチャを用いてインター予測によりブロックもしくはサブブロックの予測画像を生成する。
図9は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、合成部3095を含んで構成される。合成部3095は、IntraInter合成部30951、Triangle合成部30952、BIO部30954、重み予測部3094を含んで構成される。
(動き補償)
動き補償部3091(補間画像生成部3091)は、インター予測パラメータ導出部303から入力された、インター予測パラメータ(predFlagLX、refIdxLX、mvLX)に基づいて、参照ピクチャメモリ306から参照ブロックを読み出すことによって補間画像(動き補償画像)を生成する。参照ブロックは、refIdxLXで指定された参照ピクチャRefPicLX上で、対象ブロックの位置からmvLXシフトした位置のブロックである。ここで、mvLXが整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、補間画像を生成する。
動き補償部3091は、まず、予測ブロック内座標(x,y)に対応する整数位置(xInt,yInt)および位相(xFrac,yFrac)を以下の式で導出する。
xInt = xPb+(mvLX[0]>>(log2(MVPREC)))+x
xFrac = mvLX[0]&(MVPREC-1)
yInt = yPb+(mvLX[1]>>(log2(MVPREC)))+y
yFrac = mvLX[1]&(MVPREC-1)
ここで、(xPb,yPb)は、bW*bHサイズのブロックの左上座標、x=0…bW-1、y=0…bH-1であり、MVPRECは、mvLXの精度(1/MVPREC画素精度)を示す。例えばMVPREC=16である。
動き補償部3091は、参照ピクチャrefImgに補間フィルタを用いて水平補間処理を行うことで、一時的画像temp[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、shift1は値のレンジを調整する正規化パラメータ、offset1=1<<(shift1-1)である。
temp[x][y] = (ΣmcFilter[xFrac][k]*refImg[xInt+k-NTAP/2+1][yInt]+offset1)>>shift1
続いて、動き補償部3091は、一時的画像temp[][]を垂直補間処理により、補間画像Pred[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、shift2は値のレンジを調整する正規化パラメータ、offset2=1<<(shift2-1)である。
Pred[x][y] = (ΣmcFilter[yFrac][k]*temp[x][y+k-NTAP/2+1]+offset2)>>shift2 なお、双予測の場合、上記のPred[][]をL0リスト、L1リスト毎に導出し(補間画像PredL0[][]とPredL1[][]と呼ぶ)、PredL0[][]とPredL1[][]から補間画像Pred[][]を生成する。
合成部3095は、IntraInter合成部30951、Triangle合成部30952、重み予測部3094、BIO部30954を備えている。
(IntraInter合成処理)
IntraInter合成部30951は、ciip_flagが1の場合、インター予測画像predSamplesInter[][]とイントラ予測画像predSamplesIntra[][]の重み付け和により予測画像predSamplesComb[][]を生成し、加算部312に出力する。
predSamplesComb[x][y] = (w * predSamplesIntra[x][y] + (4 - w) * predSamplesInter[x][y] + 2) >> 2
ここで、wは、対象CUの上と左の隣接ブロックの両方がイントラモードの場合には3、両方ともイントラモード以外であれば1、それ以外は2に設定する。
(Triangle合成処理)
Triangle合成部30952は、上述したTriangle予測を用いた予測画像を生成する。
(BIO予測:Bi-Directional Optical Flow, BDOF)
BIO部30954は、双予測モードにおいて、2つの予測画像(第1の予測画像及び第2の予測画像)及び勾配補正項を参照して予測画像を生成する。
(重み予測)
重み予測部3094は、補間画像PredLXに重み係数を乗算することによりブロックの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1(単予測)、かつ、重み予測を用いない場合、PredLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以下の式の処理を行う。
Pred[x][y] = Clip3(0,(1<<bitDepth)-1,(PredLX[x][y]+offset1)>>shift1)
ここで、shift1=14-bitDepth、offset1=1<<(shift1-1)である。
また、予測リスト利用フラグの両者(predFlagL0とpredFlagL1)が1(双予測PRED_BI)、かつ、重み予測を用いない場合、PredL0、PredL1を平均し画素ビット数に合わせる以下の式の処理を行う。
Pred[x][y] = Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]+PredL1[x][y]+offset2)>>shift2)
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
さらに、単予測、かつ、重み予測を行う場合、重み予測部3094は重み予測係数w0とオフセットo0を符号化データから導出し、以下の式の処理を行う。
Pred[x][y] = Clip3(0,(1<<bitDepth)-1,((PredLX[x][y]*w0+2^(log2WD-1))>>log2WD)+o0)
ここで、log2WDは所定のシフト量を示す変数である。
さらに、双予測PRED_BI、かつ、重み予測を行う場合、重み予測部3094は重み予測係数w0、w1、o0、o1を符号化データから導出し、以下の式の処理を行う。
Pred[x][y] = Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]*w0+PredL1[x][y]*w1+((o0+o1+1)<<log2WD))>>(log2WD+1))
インター予測画像生成部309は生成したブロックの予測画像を加算部312に出力する。
(イントラ予測画像生成部310)
predModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ導出部304から入力されたイントラ予測パラメータと参照ピクチャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
具体的には、イントラ予測画像生成部310は、対象ピクチャ上の、対象ブロックから予め定めた範囲にある隣接ブロックを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、対象ブロックの左、左上、上、右上の隣接ブロックであり、イントラ予測モードによって参照する領域は異なる。
イントラ予測画像生成部310は、読み出した復号画素値とIntraPredModeが示す予測モードを参照して、対象ブロックの予測画像を生成する。イントラ予測画像生成部310は生成したブロックの予測画像を加算部312に出力する。
逆量子化・逆変換部311は、パラメータ復号部302から入力された量子化変換係数を逆量子化して変換係数を求める。
加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
(符号化ツールに係る制御例1)
本例においては、ピクチャパラメータセットまたはスライスヘッダに含まれる情報によって、MMVDを用いて予測画像が生成されるか否かが規定される構成について説明する。なお、MMVD(Merge with Motion Vector Differnce)とは、簡略化した動きベクトル差分を符号化するマージ予測の一種である。
図10は、本例に係るピクチャパラメータセットPPSのシンタックステーブルの一例を示す図である。図10に示すように、パラメータ復号部302は、11行目の判別式が真の場合にpps_mmvd_enabled_idcを復号し得る。pps_mmvd_enabled_idcは、本実施形態における第1情報の一例であり、MMVDによって予測画像が生成されるか否かをPPSの階層で規定する符号化パラメータである。
また、上記判別式が真である場合とは、シーケンスパラメータセットSPSで規定されるフラグsps_mmvd_enabled_flagの値が例えば1である場合である。また、この例においてpps_mmvd_enabled_idcは、0、1又は2の何れかの値を有する。pps_mmvd_enabled_idcの値が0の場合、処理対象のPPSを参照するスライスヘッダにおいて、後述する符号化パラメータmmvd_enabled_flagが符号化されていることを示している。また、pps_mmvd_enabled_idcの値が1又は2の場合、当該スライスヘッダにおいて、mmvd_enabled_flagは符号化されていないことを示している。なお、sps_mmvd_enabled_flagの値が0の場合、pps_mmvd_enabled_idcの値は1に設定される。また、復号によらずパラメータの値を設定する処理は、パラメータ復号部302が行ってもよく、以下同様である。
図11は、本例に係るスライスヘッダのシンタックステーブルの一例を示す図である。図11の11、12行目は、パラメータ復号部302が、pps_mmvd_enabled_idcの値が0の場合、mmvd_enabled_flagを復号し、pps_mmvd_enabled_idcの値が1又は2の場合、mmvd_enabled_flagを復号しないことを示している。ここで、mmvd_enabled_flagは、MMVDによって予測画像が生成されるか否かをスライスヘッダの階層で規定する符号化パラメータである。また、mmvd_enabled_flagは、本実施形態における第2情報の一例である。なお、mmvd_enabled_flagが符号化されていない場合(pps_mmvd_enabled_idc=1, 2)、mmvd_enabled_flagの値は、pps_mmvd_enabled_idc-1に設定される。
図12は、本例に係るマージ予測の符号化データを規定するシンタックステーブルの一例を示す図である。図12に示すように、パラメータ復号部302は、13行目の判別式においてmmvd_enabled_flagの値が0でない場合に、14行目以降の、対象ブロックにMMVDによる動きベクトル導出を適用するための符号化パラメータを復号する。このmmvd_enabled_flagの値は、PPS又はスライスヘッダの階層で直接的又は間接的に設定される値であるため、上記の階層において予測画像生成処理におけるMMVDの使用の可否が制御されると言える。
図10~図12を参照して上述した処理を行う本例に係る動画像復号装置は、パラメータ復号部302が、ピクチャパラメータセットPPSに含まれる、MMVDによって予測画像が生成されるか否かを規定する第1情報(pps_mmvd_enabled_idc)、又はスライスヘッダに含まれる、MMVDによって予測画像が生成されるか否かを規定する第2情報(mmvd_enabled_flag)を復号する構成を備えている。
本例の構成によれば、MMVDの使用の可否をCU単位で制御する従来の処理にくらべ、オーバーヘッドを小さくできるので、符号化効率を向上させることが可能である。具体例としては、画像の特性やエンコーダの能力に応じてピクチャ及びピクチャを分割したスライス単位でMMVDの使用を制限することにより、ピクチャ内のCU単位の無駄なMMVD関連情報を削減できる。これにより、MMVDを用いた予測画像生成処理において、画質を維持しつつ符号量を削減させる効果を奏する。
(符号化ツールに係る制御例2)
本例においては、ピクチャパラメータセットまたはスライスヘッダに含まれる情報によって、MMVDのマージ候補数を制限する構成について説明する。なお、説明の便宜上、上記の実施例において既に説明した事項についての重複する記載を繰り返さない。また、以降の実施例においても同様である。
図13は、本例に係るピクチャパラメータセットPPSのシンタックステーブルの一例を示す図である。図13に示すように、パラメータ復号部302は、11行目の判別式が真の場合に、pps_max_num_mmvd_cand_idcを復号し得る。pps_max_num_mmvd_cand_idcは、本実施形態における第3情報の一例であり、MMVDマージ候補の最大数をPPSの階層で制限する符号化パラメータである。
また、この例においてpps_max_num_mmvd_cand_idcは、0、1又は2の何れかの値を有する。pps_max_num_mmvd_cand_idcの値が0の場合、処理対象のPPSを参照するスライスヘッダにおいて、後述する符号化パラメータmax_num_mmvd_candが符号化されていることを示している。また、pps_max_num_mmvd_cand_idcの値が1又は2の場合、当該スライスヘッダにおいて、max_num_mmvd_candは符号化されていないことを示している。なお、sps_mmvd_enabled_flagの値が0の場合、pps_max_num_mmvd_cand_idcの値は1に設定される。
図14は、本例に係るスライスヘッダのシンタックステーブルの一例を示す図である。図14の11、12行目は、パラメータ復号部302が、pps_max_num_mmvd_cand_idcの値が0の場合、max_num_mmvd_candを復号し、pps_max_num_mmvd_cand_idcが1又は2の場合、max_num_mmvd_candを復号しないことを示している。ここで、max_num_mmvd_candは、MMVDマージ候補数の最大値の制限をスライスヘッダの階層で規定する符号化パラメータであって、0又は1の値を有する。ここで、MMVDにおけるマージ候補数の最大値、及び後述するMMVDにおける距離は、本実施形態における「MMVDの処理に関する候補数」の一例である。また、max_num_mmvd_candは、本実施形態における第4情報の一例である。なお、max_num_mmvd_candが符号化されていない場合、max_num_mmvd_candの値は、pps_max_num_mmvd_cand_idc-1に設定される。なお、図13でpps_max_num_mmvd_cand_idcを通知せず、図14では必ずmax_num_mmvd_candを通知してもよい。
図15は、本例に係るマージ予測の符号化データを規定するシンタックステーブルの一例を示す図である。図15に示すように、パラメータ復号部302は、16行目の判別式において少なくともmax_num_mmvd_candの値が0より大きい場合に、17行目の、対象ブロックのMMVDマージ候補数を規定するための符号化パラメータを復号する。このmax_num_mmvd_candの値は、PPS又はスライスヘッダの階層で直接的又は間接的に設定される値であるため、上記の階層においてMMVDにおけるマージ候補数についての制限が制御されると言える。max_num_mmvd_candの値が0の場合、mmvd_cand_flagは0に設定される。
なお、本例と符号化ツールに係る制御例1とを組み合わせた別の態様として、図15の13行目の判別式においては、sps_mmvd_enabled_flagではなく、mmvd_enabled_flagが参照される構成であってもよい。あるいは、13行目の判別式は無くしてもよい。
以上により、PPSあるいはスライスヘッダで通知されたMMVDマージ候補の最大数が0の場合、mmvd_cand_flag等のMMVDに関する情報を通知しないので、符号量を削減できる。
図13~図15を参照して上述した処理を行う本例に係る動画像復号装置は、パラメータ復号部302が、ピクチャパラメータセットPPSに含まれる、MMVDマージ候補数の最大値の制限を規定する第3情報(pps_max_num_mmvd_cand_idc)、又はスライスヘッダに含まれる、MMVDマージ候補数の最大値の制限を規定する第4情報(max_num_mmvd_cand)を復号する構成を備えている。
本例の構成によれば、例えば、画像の特性やエンコーダの能力に応じて、ピクチャ及びピクチャを分割したスライス単位でMMVDマージ候補数の最大値を変更することにより、CU単位のmmvd_cand_flagの符号量を減少させることが可能となる。これにより、MMVDを用いた予測画像生成処理において、画質を維持しつつ符号量を削減させる効果を奏する。
(符号化ツールに係る制御例3)
本例においては、ピクチャパラメータセットまたはスライスヘッダに含まれる情報によって、MMVDの距離に関する候補数を制限する構成について説明する。
図16は、本例に係るピクチャパラメータセットPPSのシンタックステーブルの一例を示す図である。図16に示すように、パラメータ復号部302は、11行目の判別式が真の場合に、pps_eight_minus_max_num_distance_cand_plus1を復号し得る。pps_eight_minus_max_num_distance_cand_plus1は、本実施形態における第3情報の一例であり、MMVDの距離に関する候補数をPPSの階層で制限する符号化パラメータである。また、この例においてpps_eight_minus_max_num_distance_cand_plus1は0から9までの何れかの整数値を有する。
pps_eight_minus_max_num_distance_cand_plus1の値が0の場合、パラメータ復号部302は、処理対象のPPSを参照するスライスヘッダにおいて、符号化パラメータeight_minus_max_num_distance_candを復号する。また、パラメータ復号部302は、符号化パラメータMaxNumDistanceCandの値は、8-eight_minus_max_num_distance_candに設定する。pps_eight_minus_max_num_distance_cand_plus1の値が0よりも大きい場合、MaxNumDistanceCandの値は、8-(pps_eight_minus_max_num_distance_cand_plus1-1)に設定される。例えば、pps_eight_minus_max_num_distance_cand_plus1=1の場合、MaxNumDistanceCand=8となる。pps_eight_minus_max_num_distance_cand_plus1=9の場合、MaxNumDistanceCand=0となり、該当するPPSを参照するスライスではMMVDの仕様が禁止される。なお、eight_minus_max_num_distance_candが復号されない場合、eight_minus_max_num_distance_cand = pps_eight_minus_max_num_distance_cand_plus1-1と導出してもよい。
図17は、本例に係るスライスヘッダのシンタックステーブルの一例を示す図である。図17の11、12行目は、上述したように、pps_eight_minus_max_num_distance_cand_plus1の値が0の場合、パラメータ復号部302がeight_minus_max_num_distance_candを復号することを示す。また、pps_eight_minus_max_num_distance_cand_plus1の値が0でない場合、パラメータ復号部302がeight_minus_max_num_distance_candを復号しないことを示している。ここで、eight_minus_max_num_distance_candは、MMVDの距離に関する候補の最大数をスライスヘッダの階層で制限する符号化パラメータであって、0から8までの何れかの整数値を有する。eight_minus_max_num_distance_candに8を設定することで該当スライスのMMVDを禁止することができる。また、eight_minus_max_num_distance_candは、本実施形態における第4情報の一例である。
高解像度画像で動きが大きい場合にはMMVDの距離の候補を最大限に利用して候補数MaxNumDistanceCandを最大値(8)に設定するのがよいが、高解像度画像でも動きが小さい場合には遠い距離を示す値は不要な画像もある。一方で近い距離を示す値は、解像度や動きによらず用いられる頻度が比較的高い。このため、最大値から減算する態様でMMVDの距離の候補数を指定する構成が効率的となる。
図18は、本例に係るマージ予測の符号化データを規定するシンタックステーブルの一例を示す図である。図18に示すように、パラメータ復号部302は、13行目の判別式において少なくともMaxNumDistanceCandの値が0より大きい場合に、14行目以降のMMVDに関する情報を復号し得る。即ち、MaxNumDistanceCandの値が0である場合、MMVDは使用されない。従ってMMVDに関する情報が通知されず、符号量を削減することができる。
また、18行目の判別式に示すように、パラメータ復号部302は、MaxNumDistanceCandの値が1より大きい場合にのみ、mmvd_distance_idx[x0][y0]を復号する。mmvd_distance_idx[x0][y0]はMMVDの距離を規定する符号化パラメータであり、その値は、MaxNumDistanceCand未満の値に制限される。また、MaxNumDistanceCandの値が1である場合、mmvd_distance_idx[x0][y0]の値は0に設定される。
mmvd_distance_idx[x0][y0]によって指定される距離は、参照距離や画像内の物体の動きの速さ等の要因によって画像ごとに傾向が異なる。mmvd_distance_idx[x0][y0]の値が小さくてもよい画像の場合、インデックスの符号量を節約することができる。
図16~図18を参照して上述した処理を行う本例に係る動画像復号装置は、パラメータ復号部302が、ピクチャパラメータセットPPSに含まれる、MMVDの距離に関する候補数の制限を規定する第3情報(pps_eight_minus_max_num_distance_cand_plus1)、又はスライスヘッダに含まれる、MMVDの距離に関する候補数の制限を規定する第4情報(eight_minus_max_num_distance_cand)を復号する構成を備えている。
本例の構成によれば、例えば、画像の特性やエンコーダの能力に応じて、ピクチャ及びピクチャを分割したスライス単位でMMVDの距離の範囲を変更することにより、CU単位のmmvd_distance_idx[x0][y0]の符号量を減少させる効果を奏する。これにより、MMVDを用いた予測画像生成処理において、画質を維持しつつ符号量を削減させる効果を奏する。
なお、本例の別の態様として、13行目の判別式において第2式のMaxNumDistanceCand>0という判別を行わず、MaxNumDistanceCandの値が1以下である場合、mmvd_distance_idx[x0][y0]の値が0に設定される構成であってもよい。
(符号化ツールに係る制御例4)
本例においては、ピクチャパラメータセットまたはスライスヘッダに含まれる情報によって、CIIPに関する動作が規定される構成について説明する。なおCIIP(Combined Inter/Intra Prediction)とは、インター予測及びイントラ予測の双方を用いて予測画像を生成する予測方式の一種である。
図19は、本例に係るピクチャパラメータセットPPSのシンタックステーブルの一例を示す図である。図19に示すように、パラメータ復号部302は、11行目の判別式が真の場合に、pps_ciip_enabled_idcを復号し得る。pps_ciip_enabled_idcは、本実施形態における第5情報の一例であり、CIIPによって予測画像が生成されるか否かをPPSの階層で規定する符号化パラメータである。
また、上記判別式が真である場合とは、シーケンスパラメータセットSPSで規定されるフラグsps_ciip_enabled_flagの値が例えば1である場合である。また、この例においてpps_ciip_enabled_idcは、0、1又は2の何れかの値を有する。pps_ciip_enabled_idcの値が0の場合、処理対象のPPSを参照するスライスヘッダにおいて、後述する符号化パラメータciip_enabled_flagが符号化されていることを示している。また、pps_ciip_enabled_idcの値が1又は2の場合、当該スライスヘッダにおいて、ciip_enabled_flagは符号化されていないことを示している。なお、sps_ciip _enabled_flagの値が0の場合、pps_ciip_enabled_idcの値は1に設定される。
図20は、本例に係るスライスヘッダのシンタックステーブルの一例を示す図である。図20の11、12行目は、パラメータ復号部302が、pps_ciip_enabled_idcの値が0の場合、ciip_enabled_flagを復号し、pps_ciip_enabled_idcの値が1又は2の場合、ciip_enabled_flagを復号しないことを示している。ここで、ciip_enabled_flagは、ciipによって予測画像が生成されるか否かをスライスヘッダの階層で規定する符号化パラメータである。また、ciip_enabeled_flagは、本実施形態における第6情報の一例である。なお、ciip_enabled_flagが符号化されていない場合、ciip_enabled_flagの値は、pps_ciip_enabled_idc-1に設定される。
図21は、本例に係るマージ予測の動作を規定するシンタックステーブルの一例を示す図である。図21に示すように、パラメータ復号部302は、15行目の判別式において少なくともciip_enabled_flagの値が0でない場合に、16行目のciip_flag(対象ブロックにciipを適用するための符号化パラメータ)を復号する。このciip_enabed_flagの値は、PPS又はスライスヘッダの階層で直接的又は間接的に設定される値であるため、上記の階層において予測画像生成処理におけるCIIPの使用の可否が制御されると言える。なお、10行目の判別式においてもsps_ciip_enabled_flagではなく、ciip_enabled_flagが判別に用いられる。
図19~図21を参照して上述した本例に係る動画像符号化装置は、パラメータ復号部302が、ピクチャパラメータセットPPSに含まれる、CIIPに関する第5情報(pps_ciip_enabled_idc)、又はスライスヘッダに含まれる、CIIPに関する第6情報(ciip_enabeled_flag)を復号する構成を備えている。
本例の構成によれば、例えばCIIPの使用の可否をCU単位で制御する従来の処理にくらべ、オーバーヘッドを小さくできるので、符号化効率を向上させること等が可能となる。具体例としては、画像の特性やエンコーダの能力に応じて、ピクチャ及びピクチャを分割したスライス単位でCIIPの使用を制限することにより、CU単位の無駄なCIIP関連情報を削減できる。また、一律にCIIPのオンオフを制限するシンタックスを、PPS又はスライスヘッダの階層で符号化および復号することにより、スライス単位でCIIPの使用可否の制御が可能となる。これにより、シーケンスの特徴やピクチャセットの特徴に合わせてCIIPに係る情報の符号化を削減することが可能となり、CIIPを用いた予測画像生成処理において、画質を維持しつつ符号量を削減させる効果を奏する。
(動画像符号化装置の構成)
次に、本実施形態に係る動画像符号化装置11の構成について説明する。図22は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120、エントロピー符号化部(符号化ストリーム生成部)104を含んで構成される。
予測画像生成部101はCU毎に予測画像を生成する。予測画像生成部101は既に説明したインター予測画像生成部309とイントラ予測画像生成部310を含んでおり、説明を省略する。
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、量子化変換係数をパラメータ符号化部111及び逆量子化・逆変換部105に出力する。
逆量子化・逆変換部105は、動画像復号装置31における逆量子化・逆変換部311(図6)と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
パラメータ符号化部111は、ヘッダ符号化部1110、CT情報符号化部1111、CU符号化部1112(予測モード符号化部)を備えている。CU符号化部1112はさらにTU符号化部1114を備えている。以下、各モジュールの概略動作を説明する。
ヘッダ符号化部1110はヘッダ情報、分割情報、予測情報、量子化変換係数等のパラメータの符号化処理を行う。
CT情報符号化部1111は、QT、MT(BT、TT)分割情報等を符号化する。
CU符号化部1112はCU情報、予測情報、分割情報等を符号化する。
TU符号化部1114は、TUに予測誤差が含まれている場合に、QP更新情報と量子化予測誤差を符号化する。
CT情報符号化部1111、CU符号化部1112は、インター予測パラメータ(predMode、merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX)、イントラ予測パラメータ、量子化変換係数等のシンタックス要素をパラメータ符号化部111に供給する。
エントロピー符号化部104には、パラメータ符号化部111から量子化変換係数と符号化パラメータ(分割情報、予測パラメータ)が入力される。エントロピー符号化部104はこれらをエントロピー符号化して符号化ストリームTeを生成し、出力する。
予測パラメータ導出部120は、インター予測パラメータ符号化部112、イントラ予測パラメータ符号化部113を含む手段であり、符号化パラメータ決定部110から入力されたパラメータからイントラ予測パラメータ及びイントラ予測パラメータを導出する。導出されたイントラ予測パラメータ及びイントラ予測パラメータは、パラメータ符号化部111に出力される。
(インター予測パラメータ符号化部の構成)
インター予測パラメータ符号化部112は図23に示すように、パラメータ符号化制御部1121、インター予測パラメータ導出部303を含んで構成される。インター予測パラメータ導出部303は動画像復号装置と共通の構成である。パラメータ符号化制御部1121は、マージインデックス導出部11211とベクトル候補インデックス導出部11212を含む。
マージインデックス導出部11211は、マージ候補等を導出し、インター予測パラメータ導出部303に出力する。ベクトル候補インデックス導出部11212は予測ベクトル候補等を導出し、インター予測パラメータ導出部303とパラメータ符号化部111に出力する。
(イントラ予測パラメータ符号化部113の構成)
イントラ予測パラメータ符号化部113は動画像復号装置と共通の構成を含む。
また、本実施形態に係るパラメータ符号化部111は、上述した(符号化ツールに係る制御例1~4)において復号の対象となる符号化ストリームTeを生成する構成である。上記の構成によれば、所定の符号化ツールを用いて予測画像生成処理を行った場合における処理の負荷を軽減させることに寄与する。
(符号化ツールに係る制御例1)に対応するパラメータ符号化部111は、動画像符号化装置11と対になる動画像復号装置31において実行される予測画像生成処理において、MMVDによって予測画像を生成するか否かを規定するパラメータを、符号化ストリームTeにおけるピクチャパラメータセットPPS、及びスライスヘッダの何れかに含ませる構成を備えている。また、当該パラメータとは、例えば上述したようにpps_mmvd_enabled_idc、又はmmvd_enabeled_flagである。
また、(符号化ツールに係る制御例2)に対応するパラメータ符号化部111は、動画像符号化装置11と対になる動画像復号装置31において実行される予測画像生成処理において、MMVDマージ候補数の最大値の制限を規定するパラメータを、符号化ストリームTeにおけるピクチャパラメータセットPPS、及びスライスヘッダの何れかに含ませる構成を備えている。また、当該パラメータとは、例えば上述したようにpps_max_num_mmvd_cand_idc、又はmax_num_mmvd_candである。
また、(符号化ツールに係る制御例3)に対応するパラメータ符号化部111は、動画像符号化装置11と対になる動画像復号装置31において実行される予測画像生成処理において、MMVDの距離に関する候補数の制限を規定するパラメータを、符号化ストリームTeにおけるピクチャパラメータセットPPS、及びスライスヘッダの何れかに含ませる構成を備えている。また、当該パラメータとは、例えば上述したようにpps_eight_minus_max_num_distance_cand_plus1、又はeight_minus_max_num_distance_candである。
また、(符号化ツールに係る制御例4)に対応するパラメータ符号化部111は、動画像符号化装置11と対になる動画像復号装置31において実行される予測画像生成処理において、CIIPに関するパラメータを、符号化ストリームTeにおけるピクチャパラメータセットPPS、及びスライスヘッダの何れかに含ませる構成を備えている。また、当該パラメータとは、例えば上述したようにpps_ciip_enabled_idc、又はciip_enabeled_flagである。
加算部106は、予測画像生成部101から入力された予測ブロックの画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された予測誤差の二乗和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。符号化パラメータ決定部110は決定した符号化パラメータをパラメータ符号化部111と予測パラメータ導出部120に出力する。
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測パラメータ導出部320、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
〔応用例〕
上述した動画像符号化装置11及び動画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した動画像符号化装置11及び動画像復号装置31を、動画像の送信及び受信に利用できることを、図2を参照して説明する。
図2のPROD_Aは、動画像符号化装置11を搭載した送信装置PROD_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を更に備えていてもよい。図においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図2のPROD_Bは、動画像復号装置31を搭載した受信装置PROD_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を更に備えていてもよい。図においては、これら全てを受信装置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を、動画像の記録及び再生に利用できることを、図3を参照して説明する。
図3のPROD_Cは、上述した動画像符号化装置11を搭載した記録装置PROD_Cの構成を示したブロック図である。図に示すように、記録装置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を更に備えていてもよい。図においては、これら全てを記録装置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の一例である。
図3PROD_Dは、上述した動画像復号装置31を搭載した再生装置PROD_Dの構成を示したブロックである。図に示すように、再生装置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を更に備えていてもよい。図においては、これら全てを再生装置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(Random Access 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:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。