JP2019205036A - 動画像符号化装置、動画像復号装置 - Google Patents
動画像符号化装置、動画像復号装置 Download PDFInfo
- Publication number
- JP2019205036A JP2019205036A JP2018098036A JP2018098036A JP2019205036A JP 2019205036 A JP2019205036 A JP 2019205036A JP 2018098036 A JP2018098036 A JP 2018098036A JP 2018098036 A JP2018098036 A JP 2018098036A JP 2019205036 A JP2019205036 A JP 2019205036A
- Authority
- JP
- Japan
- Prior art keywords
- reference picture
- prediction
- list
- block
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】予測画像を生成するための画像データを転送するメモリバンド幅を削減する。【解決手段】マージ候補リストに対しマージインデックスに基づいて、対象ブロックの予測パラメータを導出する動きベクトル導出部と、動きベクトルと参照ピクチャインデックスによって指定された参照ピクチャを用いて、対象ブロックの予測画像を生成する予測画像生成部とを備え、予測画像がL0、L1リストに含まれる2つの参照ピクチャを用いて生成される場合、動きベクトル導出部は、ブロックレベルの初期ベクトル候補とL1リストの参照ピクチャインデックスを設定し、初期ベクトルサーチとローカルサーチを行い、L1リストの参照ピクチャインデックスの設定において、参照ピクチャを1つに制限する。【選択図】図13
Description
本発明の実施形態は、動画像復号装置、動画像符号化装置に関する。
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置(画像符号化装置)、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置(画像復号装置)が用いられている。
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)にて提案されている方式などが挙げられる。
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得
られる符号化単位(CU:Coding Unit、符号化ユニットと呼ばれることもある)からなる
階層構造により管理され、CUごとに符号化/復号される。
られる符号化単位(CU:Coding Unit、符号化ユニットと呼ばれることもある)からなる
階層構造により管理され、CUごとに符号化/復号される。
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測残差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる(非特許文献2)。
また、近年の動画像符号化及び復号の技術として非特許文献1が挙げられる。非特許文献3には、サブCUベースの動き補償技術、非特許文献4には、CUベースの双方向予測技術等のインター予測技術が記載されている。
"Algorithm Description of Joint Exploration Test Model 7", JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 2017-08-19 02:20:15
ITU-T H.265(04/2015) SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video High efficiency video coding
"Description of SDR, HDR, and 360° video coding technology proposal by InterDigital Communications and Dolby Laboratories", JVET-J0015
"Symmetrical mode for bi-prediction", JVET-J0063
上述のような技術を用いて予測画像を生成する場合、動きベクトル導出に必要なメモリバンド幅が大きくなるため、メモリバンド幅を削減する技術が求められている。
本発明は、メモリバンド幅を削減することを目的とする。
本発明の一態様に係る動画像復号装置は、参照ピクチャに対して動き補償を行うことによって対象ブロック毎に予測画像を生成する動画像復号装置であって、隣接ブロックの予測パラメータ(参照ピクチャインデックス、動きベクトル等)を用いて導出されたマージ候補リストに対し、符号化データから復号されたマージインデックスに基づいて、対象ブロックの予測パラメータを導出する動きベクトル導出部と、前記動きベクトルと前記参照ピクチャインデックスによって指定された参照ピクチャを用いて、対象ブロックの予測画像を生成する予測画像生成部とを備え、前記予測画像が参照ピクチャリストL0(L0リスト)と参照ピクチャリストL1(L1リスト)の2つのリストに含まれる2つの参照ピクチャを用いて生成される場合、前記動きベクトル導出部は、対象ブロックにおけるブロックレベルの初期ベクトル候補とL1リストの参照ピクチャインデックスを設定し、初期ベクトル候補の中から初期ベクトルをサーチし、初期ベクトルの周囲に対しローカルサーチを行い、対象ブロックの動きベクトルをサーチし、前記L1リストの参照ピクチャインデックスの設定において、参照ピクチャ(参照ピクチャインデックス)を1つに制限することを特徴とする。
上記の構成によれば、インター予測技術において、メモリバンド幅を削減することができる。
(第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(Blu-ray(登録商標
)Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標
)Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、復号した1または複数の復号画像Tdを生成する。
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い
処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR
、|=は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以下の最大の整数を返す関数である。
a/dはdによるaの除算(小数点以下切り捨て)を表す。
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリ
ームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2の(a)〜(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデー
タを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を示す図で
ある。
ームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2の(a)〜(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデー
タを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を示す図で
ある。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示す
ように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示す
ように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複
数の動画像に共通する符号化パラメータの集合、および、動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
数の動画像に共通する符号化パラメータの集合、および、動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れ
かを選択する。
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れ
かを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適
用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。
その場合、対象シーケンス内の各スライスヘッダから複数のPPSの何れかを選択する。
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適
用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。
その場合、対象シーケンス内の各スライスヘッダから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0〜SNS-1のそれぞれを区別する必要が無い場合、符号の添え字
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参
照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライス
ヘッダSH、および、スライスデータSDATAを含んでいる。
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参
照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライス
ヘッダSH、および、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P
、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライ
スを指す。
、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライ
スを指す。
なお、スライスヘッダSHは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために動画像
復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2の(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit、CTUブロック)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために動画像
復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2の(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit、CTUブロック)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図2の(e)には、処理対象の符号化ツリーユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割(QT分割)、2分木分割(BT分割)あるいは3分木分割(TT分割)により符号化処理の基本的な単位である符号化ユニット(CU:Coding Unit)に分割される。再帰的な4分木分割、2分木分割、あるいは3分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。
図2の(e)には、処理対象の符号化ツリーユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割(QT分割)、2分木分割(BT分割)あるいは3分木分割(TT分割)により符号化処理の基本的な単位である符号化ユニット(CU:Coding Unit)に分割される。再帰的な4分木分割、2分木分割、あるいは3分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。
CTは、CT情報として、QT分割を行うか否かを示すQT分割フラグ(cu_split_flag)、BT
分割の分割方法を示すBT分割モード(split_bt_mode)、TT分割の分割方法を示すTT分割
モード(split_tt_mode)を含む。cu_split_flag、split_bt_mode、split_tt_modeは符号化ノードCNごとに伝送される。cu_split_flagが1の場合、符号化ノードCNは4つの符号
化ノードCNに分割される(図3(b))。cu_split_flagが0の時、split_bt_modeが1の場
合に符号化ノードCNは2つの符号化ノードCNに水平分割され(図3(d))、split_bt_modeが2の場合に符号化ノードCNは2つの符号化ノードCNに垂直分割される(図3(c))。ま
た、cu_split_flagが0、かつ、split_bt_modeが0の時、split_tt_modeが1の場合に符
号化ノードCNは3つの符号化ノードCNに水平分割され(図3(f))、split_tt_modeが2の場合に符号化ノードCNは3つの符号化ノードCNに垂直分割され(図3(e))、split_tt_mo
deが0の場合、符号化ノードCNは分割されず1つの符号化ユニットCUをノードとして持つ(図3(a))。符号化ユニットCUは符号化ノードの末端ノード(リーフノード)であり、
これ以上分割されない。
分割の分割方法を示すBT分割モード(split_bt_mode)、TT分割の分割方法を示すTT分割
モード(split_tt_mode)を含む。cu_split_flag、split_bt_mode、split_tt_modeは符号化ノードCNごとに伝送される。cu_split_flagが1の場合、符号化ノードCNは4つの符号
化ノードCNに分割される(図3(b))。cu_split_flagが0の時、split_bt_modeが1の場
合に符号化ノードCNは2つの符号化ノードCNに水平分割され(図3(d))、split_bt_modeが2の場合に符号化ノードCNは2つの符号化ノードCNに垂直分割される(図3(c))。ま
た、cu_split_flagが0、かつ、split_bt_modeが0の時、split_tt_modeが1の場合に符
号化ノードCNは3つの符号化ノードCNに水平分割され(図3(f))、split_tt_modeが2の場合に符号化ノードCNは3つの符号化ノードCNに垂直分割され(図3(e))、split_tt_mo
deが0の場合、符号化ノードCNは分割されず1つの符号化ユニットCUをノードとして持つ(図3(a))。符号化ユニットCUは符号化ノードの末端ノード(リーフノード)であり、
これ以上分割されない。
また、符号化ツリーユニットCTUのサイズが64x64画素の場合、符号化ユニットのサイズは、64x64画素、64x32画素、32x64画素、32x32画素、64x16画素、16x64画素、32x16画素
、16x32画素、16x16画素、64x8画素、8x64画素、32x8画素、8x32画素、16x8画素、8x16画素、8x8画素、64x4画素、4x64画素、32x4画素、4x32画素、16x4画素、4x16画素、8x4画素、4x8画素、及び、4x4画素の何れかをとり得る。
、16x32画素、16x16画素、64x8画素、8x64画素、32x8画素、8x32画素、16x8画素、8x16画素、8x8画素、64x4画素、4x64画素、32x4画素、4x32画素、16x4画素、4x16画素、8x4画素、4x8画素、及び、4x4画素の何れかをとり得る。
(符号化ユニット)
図2の(f)には、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、CUヘッダCUH、予
測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
図2の(f)には、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、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等のサブブロック単位でエントロピー
符号化してもよい。
符号化してもよい。
(予測パラメータ)
予測画像は、CUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測パラメータとインター予測パラメータがある。以下、インター予測パラメータについて説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
予測画像は、CUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測パラメータとインター予測パラメータがある。以下、インター予測パラメータについて説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
インター予測パラメータを導出するためのシンタックス要素には、例えば、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参
照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXがある。
照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXがある。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリ
ストである。図4は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である
。図4(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復
号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図4(b)に、ピクチャB3(対象ピクチャ)の参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。個々のCUでは、参照ピクチャリストRefPicListX(X=0または1)中の
どのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定する。図は、refIdxL0=2、refIdxL1=0の例である。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリ
ストである。図4は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である
。図4(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復
号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図4(b)に、ピクチャB3(対象ピクチャ)の参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。個々のCUでは、参照ピクチャリストRefPicListX(X=0または1)中の
どのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定する。図は、refIdxL0=2、refIdxL1=0の例である。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍CUの予測パラメータから導出するモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトルインデ
ックスmvp_lX_idxと差分ベクトルmvdLXとして符号化される。
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍CUの予測パラメータから導出するモードである。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はL0リストとL1リストで管理された2枚の参照ピクチャを用いる双予測BiPredを示す。
マージインデックスmerge_idxは、処理が完了したCUから導出される予測パラメータ候
補(マージ候補)のうち、いずれの予測パラメータを復号対象CUの予測パラメータとして用いるかを示すインデックスである。
補(マージ候補)のうち、いずれの予測パラメータを復号対象CUの予測パラメータとして用いるかを示すインデックスである。
(動きベクトル)
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ(シフト)量を示す。動きベクトルmvLXは、予測ベクトルmvpLX、差分ベクトルmvdLXの和である。
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ(シフト)量を示す。動きベクトルmvLXは、予測ベクトルmvpLX、差分ベクトルmvdLXの和である。
(双予測biPredの判定)
双予測BiPredであるかのフラグbiPredは、2つの予測リスト利用フラグがともに1であるかによって導出できる。たとえば以下の式で導出できる。
双予測BiPredであるかのフラグbiPredは、2つの予測リスト利用フラグがともに1であるかによって導出できる。たとえば以下の式で導出できる。
biPred = (predFlagL0 == 1 && predFlagL1 == 1)
あるいは、フラグbiPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。たとえば以下の式で導出できる。
あるいは、フラグbiPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。たとえば以下の式で導出できる。
biPred = (inter_pred_idc == PRED_BI) ? 1 : 0
(イントラ予測)
次にイントラ予測パラメータについて説明する。
(イントラ予測)
次にイントラ予測パラメータについて説明する。
イントラ予測パラメータとは、例えば、イントラ予測モードIntraPredModeであり、輝
度イントラ予測モードIntraPredModeYと色差イントラ予測モードIntraPredModeCは異なっても良い。イントラ予測モードは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダイレクトモード(輝度の予測モードを使用するモード)、LM予測
(輝度画素から線形予測するモード)の何れかを用いる。
度イントラ予測モードIntraPredModeYと色差イントラ予測モードIntraPredModeCは異なっても良い。イントラ予測モードは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダイレクトモード(輝度の予測モードを使用するモード)、LM予測
(輝度画素から線形予測するモード)の何れかを用いる。
(動画像復号装置の構成)
図5に本発明の動画像復号装置(画像復号装置)31を示す。
動画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装
置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで
構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
図5に本発明の動画像復号装置(画像復号装置)31を示す。
動画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装
置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで
構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず
、サブCU単位で処理をしてもよい。あるいはCTU、CU、をブロック、サブCUをサブブロッ
クと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
、サブCU単位で処理をしてもよい。あるいはCTU、CU、をブロック、サブCUをサブブロッ
クと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された、エントロピー符号化された符号化ス
トリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、Pピクチ
ャ、あるいはBピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの
中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルが選択される。この初期状態を符号化、復号処理に使用してもよい。分離された符号には、予測画像を生成するための予測パラメータおよび、差分画像を生成するための予測残差などがある。
トリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、Pピクチ
ャ、あるいはBピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの
中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルが選択される。この初期状態を符号化、復号処理に使用してもよい。分離された符号には、予測画像を生成するための予測パラメータおよび、差分画像を生成するための予測残差などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードpredMode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデ
ックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXである。
どの符号を復号するかの制御は、予測パラメータ復号部302の指示に基づいて行われる。
エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、予測残差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換)等の周波数変換を行い量子化して得ら
れる係数である。
ックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXである。
どの符号を復号するかの制御は、予測パラメータ復号部302の指示に基づいて行われる。
エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、予測残差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換)等の周波数変換を行い量子化して得ら
れる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測
パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター
予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する
。インター予測パラメータ復号部303の詳細については後述する。
パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター
予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する
。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測
パラメータ、例えば、イントラ予測モードIntraPredModeを復号する。イントラ予測パラ
メータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
パラメータ、例えば、イントラ予測モードIntraPredModeを復号する。イントラ予測パラ
メータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング
歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したブロックの復号画像に対し、デブロッキングフィルタ(Deblocking Filter)、サンプ
ル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ(ALF:Adaptive
Loop Filter)等のフィルタを施す。なお、ループフィルタ305は動画像符号装置11と対
になっていれば、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したブロックの復号画像に対し、デブロッキングフィルタ(Deblocking Filter)、サンプ
ル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ(ALF:Adaptive
Loop Filter)等のフィルタを施す。なお、ループフィルタ305は動画像符号装置11と対
になっていれば、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
参照ピクチャメモリ306は、加算部312が生成したブロックの復号画像を、復号対象のピクチャ、CTU、あるいはCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象CTUあるいはCU毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ
復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredMode
を記憶する。
復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredMode
を記憶する。
予測画像生成部308には、予測モードpredMode、予測パラメータ等が入力される。また
、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読
み出した参照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。
、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読
み出した参照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと参照ピクチャメモリ306から読み出した参照ピクチャ(参照ピクチャブロック)を用いてイ
ンター予測によりブロックもしくはサブブロックの予測画像を生成する。
ンター予測によりブロックもしくはサブブロックの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピク
チャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画
像生成部309は、読み出した参照ピクチャブロックをもとに補間を行ってブロックの予測
画像(補間画像、動き補償画像)を生成する。インター予測画像生成部309は、生成した
ブロックの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照
ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、ブロックもしくはサブブロックの予測画像を生成するために参照する領域である。
チャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画
像生成部309は、読み出した参照ピクチャブロックをもとに補間を行ってブロックの予測
画像(補間画像、動き補償画像)を生成する。インター予測画像生成部309は、生成した
ブロックの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照
ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、ブロックもしくはサブブロックの予測画像を生成するために参照する領域である。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は
、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと参照ピク
チャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと参照ピク
チャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
イントラ予測画像生成部310は、読み出した隣接ブロックの画素に対し、イントラ予測
モードIntraPredModeが示す予測モードを参照して、ブロックの予測画像を生成する。イ
ントラ予測画像生成部310は、生成したブロックの予測画像を加算部312に出力する。
モードIntraPredModeが示す予測モードを参照して、ブロックの予測画像を生成する。イ
ントラ予測画像生成部310は、生成したブロックの予測画像を加算部312に出力する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部311は、求めた変換係数について逆DCT、逆DST、逆KLT等の逆周波数変換を行い、予測残差を算出する。逆量子化・逆変換部311
は、算出した予測残差を加算部312に出力する。
は、算出した予測残差を加算部312に出力する。
加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測残差を画素毎に加算して、ブロックの復号画像を生成する。
加算部312は、生成したブロックの復号画像をループフィルタ305に出力する。
加算部312は、生成したブロックの復号画像をループフィルタ305に出力する。
(インター予測パラメータ復号部の構成)
次に、インター予測パラメータ復号部303の構成について説明する。
次に、インター予測パラメータ復号部303の構成について説明する。
図6は、本実施形態に係るインター予測パラメータ復号部303の構成を示す概略図である。インター予測パラメータ復号部303は、インター予測パラメータ復号制御部3031、AMVP
予測パラメータ導出部3032、加算部3035、マージ予測パラメータ導出部3036およびサブブロック予測パラメータ導出部3037を含んで構成される。AMVP予測パラメータ導出部3032、マージ予測パラメータ導出部3036、サブブロック予測パラメータ導出部3037を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。
予測パラメータ導出部3032、加算部3035、マージ予測パラメータ導出部3036およびサブブロック予測パラメータ導出部3037を含んで構成される。AMVP予測パラメータ導出部3032、マージ予測パラメータ導出部3036、サブブロック予測パラメータ導出部3037を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。
インター予測パラメータ復号制御部3031は、インター予測に関連する符号(シンタックス要素)の復号をエントロピー復号部301に指示し、符号化データに含まれる符号(シン
タックス要素)、例えば、マージフラグmerge_flag、マージインデックスmerge_idx、イ
ンター予測識別子inter_pred_idc、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXを抽出する。
タックス要素)、例えば、マージフラグmerge_flag、マージインデックスmerge_idx、イ
ンター予測識別子inter_pred_idc、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXを抽出する。
インター予測パラメータ復号制御部3031は、まず、マージフラグmerge_flagを抽出する。インター予測パラメータ復号制御部3031が、あるシンタックス要素を抽出すると表現する場合は、あるシンタックス要素の復号をエントロピー復号部301に指示し、該当のシン
タックス要素を符号化データから読み出すことを意味する。
タックス要素を符号化データから読み出すことを意味する。
マージフラグmerge_flagが0、すなわち、AMVP予測モードを示す場合、インター予測パラメータ復号制御部3031は、エントロピー復号部301を用いて符号化データからAMVP予測
パラメータを抽出する。AMVP予測パラメータとして、例えば、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXがある。AMVP予測パラメータ導出部3032は予測ベクトルインデックスmvp_lX_idxから予測ベクトルmvpLXを導出する。インター予測パラメータ復号制御部3031は、差分ベクトルmvdLXを加算部3035に出力する。加算部3035では、予測ベクトルmvpLXと差分ベクトルmvdLXを加算し、動きベクトルを導出する。
パラメータを抽出する。AMVP予測パラメータとして、例えば、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXがある。AMVP予測パラメータ導出部3032は予測ベクトルインデックスmvp_lX_idxから予測ベクトルmvpLXを導出する。インター予測パラメータ復号制御部3031は、差分ベクトルmvdLXを加算部3035に出力する。加算部3035では、予測ベクトルmvpLXと差分ベクトルmvdLXを加算し、動きベクトルを導出する。
マージフラグmerge_flagが1、すなわち、マージ予測モードを示す場合、インター予測パラメータ復号制御部3031は、マージ予測に係る予測パラメータとして、マージインデックスmerge_idxを抽出する。インター予測パラメータ復号制御部3031は、抽出したマージ
インデックスmerge_idxをマージ予測パラメータ導出部3036(詳細は後述する)に出力し
、サブブロック予測モードフラグsubPbMotionFlagをサブブロック予測パラメータ導出部3037に出力する。サブブロック予測パラメータ導出部3037は、サブブロック予測モードフ
ラグsubPbMotionFlagの値に応じて、ブロックを複数のサブブロックに分割し、サブブロ
ック単位で動きベクトルを導出する。すなわち、サブブロック予測モードでは、予測ブロックは4x4もしくは8x8という小さいブロック(サブブロック)に分割し、サブブロック単位で予測される。ブロック単位で予測パラメータのシンタックスを符号化・復号するブロック予測モードに対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化・復号するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
インデックスmerge_idxをマージ予測パラメータ導出部3036(詳細は後述する)に出力し
、サブブロック予測モードフラグsubPbMotionFlagをサブブロック予測パラメータ導出部3037に出力する。サブブロック予測パラメータ導出部3037は、サブブロック予測モードフ
ラグsubPbMotionFlagの値に応じて、ブロックを複数のサブブロックに分割し、サブブロ
ック単位で動きベクトルを導出する。すなわち、サブブロック予測モードでは、予測ブロックは4x4もしくは8x8という小さいブロック(サブブロック)に分割し、サブブロック単位で予測される。ブロック単位で予測パラメータのシンタックスを符号化・復号するブロック予測モードに対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化・復号するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
詳細に説明すると、サブブロック予測パラメータ導出部3037は、サブブロック予測モードにてサブブロック予測を行う、マッチング動き導出部30373を備える。
図7(a)は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362、マージ候補格納部30363を備える。マージ候補格納部30363は、マージ候補導出部30361から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されてい
る。マージ候補格納部30363において、格納されたマージ候補には、所定の規則に従って
インデックスが割り当てられる。
る。マージ候補格納部30363において、格納されたマージ候補には、所定の規則に従って
インデックスが割り当てられる。
マージ候補導出部30361は、すでに復号処理が行われた隣接ブロックの動きベクトルと
参照ピクチャインデックスrefIdxLXをそのまま用いてマージ候補を導出する。
参照ピクチャインデックスrefIdxLXをそのまま用いてマージ候補を導出する。
(空間マージ候補導出処理)
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予
測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予
測パラメータをマージ候補として導出し、マージ候補リストmergeCandList[](予測ベク
トル候補リストmvpListLX[])に格納する。読み出される予測パラメータは、復号対象ブ
ロックから予め定められた範囲内にあるブロック(例えば、図8(a)に示す復号対象ブロックの左端L、左下端BL、左上端AL、上端A、右上端ARにそれぞれ接するブロックの全部または一部)のそれぞれに係る予測パラメータである。
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予
測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予
測パラメータをマージ候補として導出し、マージ候補リストmergeCandList[](予測ベク
トル候補リストmvpListLX[])に格納する。読み出される予測パラメータは、復号対象ブ
ロックから予め定められた範囲内にあるブロック(例えば、図8(a)に示す復号対象ブロックの左端L、左下端BL、左上端AL、上端A、右上端ARにそれぞれ接するブロックの全部または一部)のそれぞれに係る予測パラメータである。
(時間マージ候補導出処理)
時間マージ導出処理として、マージ候補導出部30361は、参照ピクチャにおいて図8(b)
に示すコロケートブロックの右下ブロックCBR、あるいは、復号対象ブロックの中心の座
標を含むブロックCの予測パラメータを予測パラメータメモリ307から読みだしマージ候補とし、マージ候補リストmergeCandList[]に格納する。一般的にブロックCBRを優先してマージ候補リストmergeCandList[]に加え、ブロックCBRが動きベクトルを持たない(例えばイントラ予測ブロック)場合や、ブロックCBRがピクチャ外に位置する場合は、ブロックCの動きベクトルを予測ベクトル候補に加える。動きの異なる可能性が高いコロケートブロックの動きベクトルを予測候補として加えることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照ピクチャの指定方法は、例えば、図9のスライスヘッダにおいて指
定された参照ピクチャインデックスcollocated_ref_idx(SYN01)でも良いし、復号対象
ブロックに隣接するブロックの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
時間マージ導出処理として、マージ候補導出部30361は、参照ピクチャにおいて図8(b)
に示すコロケートブロックの右下ブロックCBR、あるいは、復号対象ブロックの中心の座
標を含むブロックCの予測パラメータを予測パラメータメモリ307から読みだしマージ候補とし、マージ候補リストmergeCandList[]に格納する。一般的にブロックCBRを優先してマージ候補リストmergeCandList[]に加え、ブロックCBRが動きベクトルを持たない(例えばイントラ予測ブロック)場合や、ブロックCBRがピクチャ外に位置する場合は、ブロックCの動きベクトルを予測ベクトル候補に加える。動きの異なる可能性が高いコロケートブロックの動きベクトルを予測候補として加えることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照ピクチャの指定方法は、例えば、図9のスライスヘッダにおいて指
定された参照ピクチャインデックスcollocated_ref_idx(SYN01)でも良いし、復号対象
ブロックに隣接するブロックの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
例えばマージ候補導出部30361は、ブロックCの位置(xColCtr, yColCtr)とブロックCBRの位置(xColCBr、yColCBr)を、以下の式で導出してもよい。
xColCtr = xPb + (bW>>1)
yColCtr = yPb + (bH>>1)
xColCBr = xPb + bW
yColCBr = yPb + bH
ここで、(xPb,yPb)は対象ブロックの左上座標、(bW,bH)は対象ブロックの幅と高さである。
yColCtr = yPb + (bH>>1)
xColCBr = xPb + bW
yColCBr = yPb + bH
ここで、(xPb,yPb)は対象ブロックの左上座標、(bW,bH)は対象ブロックの幅と高さである。
(結合マージ候補導出処理)
結合マージ導出処理として、マージ候補導出部30361は、既に導出され、マージ候補格
納部30363に格納された2つの異なる導出済マージ候補の動きベクトルと参照ピクチャイ
ンデックスを、それぞれL0、L1の動きベクトルとして組み合わせることで結合マージ候補を導出し、マージ候補リストmergeCandList[]に格納する。
結合マージ導出処理として、マージ候補導出部30361は、既に導出され、マージ候補格
納部30363に格納された2つの異なる導出済マージ候補の動きベクトルと参照ピクチャイ
ンデックスを、それぞれL0、L1の動きベクトルとして組み合わせることで結合マージ候補を導出し、マージ候補リストmergeCandList[]に格納する。
(ゼロマージ候補導出処理)
ゼロマージ候補導出処理として、マージ候補導出部30361は、参照ピクチャインデック
スrefIdxLXが0であり、動きベクトルmvLXのX成分、Y成分が共に0であるマージ候補をマージ候補リストmergeCandList[]に格納する。
ゼロマージ候補導出処理として、マージ候補導出部30361は、参照ピクチャインデック
スrefIdxLXが0であり、動きベクトルmvLXのX成分、Y成分が共に0であるマージ候補をマージ候補リストmergeCandList[]に格納する。
マージ候補導出部30361によって導出された上記マージ候補はマージ候補格納部30363に格納される。マージ候補リストmergeCandList[]に格納する順番は、例えば図8(c)に示す
ように、図8(a)の空間マージ候補、図8(b)の時間マージ候補、結合マージ候補、ゼロマージ候補、つまり{L、A、AR、BL、AL、CBR/C、結合マージ候補、ゼロマージ候補}である
。CBR/Cは、ブロックCBRが利用可能でなければブロックCを使用する、という意味である
。なお、利用可能でない(ブロックがイントラ予測等)参照ブロックは、マージ候補リストに格納されない。
ように、図8(a)の空間マージ候補、図8(b)の時間マージ候補、結合マージ候補、ゼロマージ候補、つまり{L、A、AR、BL、AL、CBR/C、結合マージ候補、ゼロマージ候補}である
。CBR/Cは、ブロックCBRが利用可能でなければブロックCを使用する、という意味である
。なお、利用可能でない(ブロックがイントラ予測等)参照ブロックは、マージ候補リストに格納されない。
マージ候補選択部30362は、マージ候補格納部30363のマージ候補リストmergeCandList[]に格納されているマージ候補のうち、インター予測パラメータ復号制御部3031から入力
されたマージインデックスmerge_idxに対応するインデックスが割り当てられたマージ候
補mergeCandList[merge_idx]を、対象ブロックのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
されたマージインデックスmerge_idxに対応するインデックスが割り当てられたマージ候
補mergeCandList[merge_idx]を、対象ブロックのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
(動きベクトルスケーリング)
動きベクトルのスケーリングの導出方法を説明する。動きベクトルMv(参照動きベクトル)、動きベクトルMvをもつブロックを含むピクチャPicMv、動きベクトルMvの参照ピク
チャPicMvRef、スケーリング後の動きベクトルsMv、スケーリング後の動きベクトルsMvをもつブロックを含むピクチャPicCurr、スケーリング後の動きベクトルsMvが参照する参照ピクチャPicCurrRefとすると、sMvの導出関数MvScale(Mv, PicMv, PicMvRef, PicCurr, PicCurrRef)は下式で表される。
動きベクトルのスケーリングの導出方法を説明する。動きベクトルMv(参照動きベクトル)、動きベクトルMvをもつブロックを含むピクチャPicMv、動きベクトルMvの参照ピク
チャPicMvRef、スケーリング後の動きベクトルsMv、スケーリング後の動きベクトルsMvをもつブロックを含むピクチャPicCurr、スケーリング後の動きベクトルsMvが参照する参照ピクチャPicCurrRefとすると、sMvの導出関数MvScale(Mv, PicMv, PicMvRef, PicCurr, PicCurrRef)は下式で表される。
sMv = MvScale(Mv, PicMv, PicMvRef, PicCurr, PicCurrRef)
= Clip3(-R1,R1-1,sign(distScaleFactor*Mv)*((abs(distScaleFactor*Mv)+round1-1)>>shift1)) (式MVSCALE-1)
distScaleFactor = Clip3(-R2, R2-1, (tb*tx+round2)>>shift2)
tx = (16384+abs(td)>>1)/td
td = DiffPicOrderCnt(PicMv, PicMvRef)
tb = DiffPicOrderCnt(PicCurr, PicCurrRef)
ここで、round1、round2、shift1、shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1=1<<(shift1-1)、round2=1<<(shift2-1)、shift1=8、shift2=6などである。DiffPicOrderCnt(Pic1, Pic2)はPic1とPic2の時間情報(例えばPOC)の差を返す関数である。R1、R2は処理を限られた精度で行うために値域を制限するもので例
えば、R1=32768、R2=4096などである。
= Clip3(-R1,R1-1,sign(distScaleFactor*Mv)*((abs(distScaleFactor*Mv)+round1-1)>>shift1)) (式MVSCALE-1)
distScaleFactor = Clip3(-R2, R2-1, (tb*tx+round2)>>shift2)
tx = (16384+abs(td)>>1)/td
td = DiffPicOrderCnt(PicMv, PicMvRef)
tb = DiffPicOrderCnt(PicCurr, PicCurrRef)
ここで、round1、round2、shift1、shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1=1<<(shift1-1)、round2=1<<(shift2-1)、shift1=8、shift2=6などである。DiffPicOrderCnt(Pic1, Pic2)はPic1とPic2の時間情報(例えばPOC)の差を返す関数である。R1、R2は処理を限られた精度で行うために値域を制限するもので例
えば、R1=32768、R2=4096などである。
また、スケーリング関数MvScale(Mv, PicMv, PicMvRef, PicCurr, PicCurrRef)は以下
の式でもよい。
の式でもよい。
MvScale(Mv, PicMv, PicMvRef, PicCurr, PicCurrRef) =
Mv*DiffPicOrderCnt(PicCurr, PicCurrRef)/DiffPicOrderCnt(PicMv, PicMvRef) (式MVSCALE-2)
すなわち、PicCurrとPicCurrRefの時間情報の差と、PicMvとPicMvRefの時間情報の差との比に応じてMvをスケーリングしてもよい。
Mv*DiffPicOrderCnt(PicCurr, PicCurrRef)/DiffPicOrderCnt(PicMv, PicMvRef) (式MVSCALE-2)
すなわち、PicCurrとPicCurrRefの時間情報の差と、PicMvとPicMvRefの時間情報の差との比に応じてMvをスケーリングしてもよい。
(サブブロック予測部)
(マッチング動き導出部30373)
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチン
グの何れかを行うことにより、ブロック又はサブブロックの動きベクトルspMvLXを導出する。図10は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための図である。マッチング動き導出モードは
、マージ候補(マッチング候補)として選択される。
(マッチング動き導出部30373)
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチン
グの何れかを行うことにより、ブロック又はサブブロックの動きベクトルspMvLXを導出する。図10は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための図である。マッチング動き導出モードは
、マージ候補(マッチング候補)として選択される。
マッチング動き導出部30373は、物体が等速運動をすると仮定して、複数の参照ピクチ
ャにおける領域のマッチングにより動きベクトルを導出する。バイラテラルマッチングでは、参照ピクチャRef0、Ref1間のマッチングにより対象ブロックの動きベクトルを導出する。テンプレートマッチングでは、対象ブロックの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0のマッチングにより動きベクトルを導
出する。マッチング動き導出部30373では、対象ブロックを複数のサブブロックに分割し
、サブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+sbW*i、yj=yPb+sbH*j、i=0,1,2,…,bW/sbW-1、j=0,1,2,…,bH/sbH-1)を導出する。ここで、(xPb,yPb)は対象ブロックの左上座標、bW、bHはブロックの幅と高さ、sbW、sbHはサブブロックの幅と高さである。
ャにおける領域のマッチングにより動きベクトルを導出する。バイラテラルマッチングでは、参照ピクチャRef0、Ref1間のマッチングにより対象ブロックの動きベクトルを導出する。テンプレートマッチングでは、対象ブロックの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0のマッチングにより動きベクトルを導
出する。マッチング動き導出部30373では、対象ブロックを複数のサブブロックに分割し
、サブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+sbW*i、yj=yPb+sbH*j、i=0,1,2,…,bW/sbW-1、j=0,1,2,…,bH/sbH-1)を導出する。ここで、(xPb,yPb)は対象ブロックの左上座標、bW、bHはブロックの幅と高さ、sbW、sbHはサブブロックの幅と高さである。
図10(a)に示すように、バイラテラルマッチングでは、対象ピクチャCurPicにおける対
象ブロックCurBLKの動きベクトルを導出するために、2枚の参照ピクチャが参照される。より具体的には、まず、対象ブロックCurBLKの座標を(xPb,yPb)と表現したとき、参照
ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0内の領域であって、
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1]) (式FRUC-1)
によって特定される左上座標(xPos0,yPos0)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャB)内の領域であって、動きベクトル(mvL1[0], mvL1[1])によって特定される左上座標(xPos1,yPos1
)を有するBlock_Bとが設定される。L1の動きベクトルmvL1[]はL0ベクトルmvL0[]のスケ
ーリングで導出しても良い。
象ブロックCurBLKの動きベクトルを導出するために、2枚の参照ピクチャが参照される。より具体的には、まず、対象ブロックCurBLKの座標を(xPb,yPb)と表現したとき、参照
ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0内の領域であって、
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1]) (式FRUC-1)
によって特定される左上座標(xPos0,yPos0)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャB)内の領域であって、動きベクトル(mvL1[0], mvL1[1])によって特定される左上座標(xPos1,yPos1
)を有するBlock_Bとが設定される。L1の動きベクトルmvL1[]はL0ベクトルmvL0[]のスケ
ーリングで導出しても良い。
mvL1[0] = MvScale(mvL0[0], CurPic, Ref0, CurPic, Ref1)
mvL1[1] = MvScale(mvL0[1], CurPic, Ref0, CurPic, Ref1)
また以下の式でもよい。
mvL1[1] = MvScale(mvL0[1], CurPic, Ref0, CurPic, Ref1)
また以下の式でもよい。
(xPos1,yPos1)=(xPb+mvL1[0],yPb+mvL1[1]) =(xPb+mvL0[0]*DiffPicOrderCnt(CurPic,Ref1)/DiffPicOrderCnt(CurPic,Ref0), yPb+mLv0[1]*DiffPicOrderCnt(CurPic,Ref1)/DiffPicOrderCnt(CurPic,Ref0)) (式FRUC-2)
ここで、DiffPicOrderCnt(CurPic,Ref0)、及びDiffPicOrderCnt(CurPic,Ref1)は、対象ピクチャCurPicと参照ピクチャref0との時間情報の差を返す関数、及び対象ピクチャCurPic
と参照ピクチャref1との時間情報の差を返す関数を表している。
ここで、DiffPicOrderCnt(CurPic,Ref0)、及びDiffPicOrderCnt(CurPic,Ref1)は、対象ピクチャCurPicと参照ピクチャref0との時間情報の差を返す関数、及び対象ピクチャCurPic
と参照ピクチャref1との時間情報の差を返す関数を表している。
次に、Block_AとBlock_Bとのマッチングコストが最小となるように、(mvL0[0],mvL0[1])が決定される。このようにして導出された(mvL0[0],mvL0[1])が、対象ブロックに付与されるブロックレベルの動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMvL0を導出する。
Block_AとBlock_Bのマッチングコストは、例えば下式のように表される。
SAD = ΣΣabs(Block_A[x][y]-Block_B[x][y]) (式FRUC-3)
ここで、ΣΣはxおよびyについての和であり、Block_A[][]とBlock_B[][]は各々、ブロックの左上座標が(式FRUC-1)、(式FRUC-2)の(xPos0,yPos0)、(xPos1,yPos1)で表されるブロックである。
ここで、ΣΣはxおよびyについての和であり、Block_A[][]とBlock_B[][]は各々、ブロックの左上座標が(式FRUC-1)、(式FRUC-2)の(xPos0,yPos0)、(xPos1,yPos1)で表されるブロックである。
マッチング予測では、対象ブロックのAMVP候補やマージ候補の隣接ブロックの動きベクトルを初期ベクトル候補として、対象ブロックにおける初期ベクトルを導出する。(mvL0[0],mvL0[1])に初期ベクトル候補を代入し、マッチングコストが最小となる動きベクトル
をブロックレベルの初期ベクトルとし、再度(mvL0[0],mvL0[1])にセットする(初期ベク
トルサーチ)。
をブロックレベルの初期ベクトルとし、再度(mvL0[0],mvL0[1])にセットする(初期ベク
トルサーチ)。
次に、対象ブロックにおけるブロックレベルのローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを、最終的な対象ブロックのブロックレベルの動きベクトルとする。
続いて、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。まず、各サブブロックの初期ベクトルを導出する(初期ベクトルサーチ)。サブブロックの初期ベクトル候補は、上述のブロックレベルの動きベクトル、各サブブロックの時空間方向の隣接ブロックの動きベクトル等である。これらの候補ベクトルの中から、マッチングコストが最小となる動きベクトルをサブブロック毎に求め、各サブブロックの初期ベクトルとする。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
次に、サブブロックの初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)で、ステップサーチ等(ローカルサーチ)を行う。そして、サブブロックのベクトル候補の中でマッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
以上は参照ピクチャRef0上のBlock_Aを導出し、Block_Aの位置から参照ピクチャRef1上のBlock_Bを導出する方法であるが、逆に、参照ピクチャRef1上のBlock_Bを導出し、Block_Bの位置から参照ピクチャRef0上のBlock_Aを導出してもよい。この場合、Block_Bおよ
びBlock_Aの左上座標は下式で表される。
びBlock_Aの左上座標は下式で表される。
(xPos1,yPos1)=(xPb+mvL1[0],yPb+mvL1[1]) (式FRUC-1’)
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1])
L0の動きベクトルmvL0[]はL1ベクトルmvL1[]のスケーリングで導出しても良い。
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1])
L0の動きベクトルmvL0[]はL1ベクトルmvL1[]のスケーリングで導出しても良い。
mvL0[0] = MvScale(mvL1[0], CurPic, Ref1, CurPic, Ref0)
mvL0[1] = MvScale(mvL1[1], CurPic, Ref1, CurPic, Ref0)
また以下の式でもよい。
mvL0[1] = MvScale(mvL1[1], CurPic, Ref1, CurPic, Ref0)
また以下の式でもよい。
(xPos0,yPos0)=(xPb+mvL1[0]*DiffPicOrderCnt(CurPic,Ref0)/DiffPicOrderCnt(CurPic,Ref1), yPb+mvL1[1]*DiffPicOrderCnt(CurPic,Ref0)/DiffPicOrderCnt(CurPic,Ref1)) (式FRUC-2’)
一方、図10(b)は、上記マッチング処理のうち、テンプレートマッチング(Template matching)について説明するための図である。
一方、図10(b)は、上記マッチング処理のうち、テンプレートマッチング(Template matching)について説明するための図である。
図10(b)に示すように、テンプレートマッチングでは、対象ピクチャCurPicにおける対
象ブロックCurBLKの動きベクトルを導出するために、一度に1枚の参照ピクチャが参照される。
象ブロックCurBLKの動きベクトルを導出するために、一度に1枚の参照ピクチャが参照される。
より具体的には、例えば参照ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0(参照ピクチャAと呼ぶ)内の領域であって、
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1]) (式FRUC-4)
を左上座標(xPos0,yPos0)とする参照ブロックBlock_Aが設定される。
(xPos0,yPos0)=(xPb+mvL0[0],yPb+mvL0[1]) (式FRUC-4)
を左上座標(xPos0,yPos0)とする参照ブロックBlock_Aが設定される。
次に、対象ピクチャCurPicにおいて対象ブロックCurBLKに隣接したテンプレート領域Temp_Curと、参照ピクチャAにおいてBlock_Aに隣接したテンプレート領域Temp_L0とが設定される。図10(b)に示す例において、テンプレート領域Temp_Curは、対象ブロックCurBLK
の上側に隣接する領域及び対象ブロックCurBLKの左側に隣接する領域とから構成されている。また、テンプレート領域Temp_L0は、Block_Aの上側に隣接する領域及びBlock_Aの左
側に隣接する領域とから構成されている。図10(c)に示すように、Temp_Curに対象ブロッ
クの上隣接領域と左隣接領域をセットし、対象ブロックのテンプレートを取得する。
の上側に隣接する領域及び対象ブロックCurBLKの左側に隣接する領域とから構成されている。また、テンプレート領域Temp_L0は、Block_Aの上側に隣接する領域及びBlock_Aの左
側に隣接する領域とから構成されている。図10(c)に示すように、Temp_Curに対象ブロッ
クの上隣接領域と左隣接領域をセットし、対象ブロックのテンプレートを取得する。
このテンプレートを用いてバイラテラルマッチングと同様、対象ブロックにおけるブロックレベルの初期ベクトルを導出する。テンプレートマッチングのマッチングコストは、例えば下式のように表される。
SAD = ΣΣabs(Temp_Cur[x][y]-Temp_L0[x][y]) (式FRUC-5)
ここで、ΣΣはxおよびyについての和であり、Temp_L0[][]は、図10(b)に示す参照ブロックのテンプレートであり、(式FRUC-4)で示される(xPos0,yPos0)を左上座標とするBlock_Aの上側および左側に隣接する領域である。(式FRUC-4)の(mvL0[0],mvL0[1])には初期ベ
クトル候補を代入する。その中でマッチングコストが最小となるベクトルを初期ベクトルとして、(mvL0[0],mvL0[1])に再度セットする。次に、対象ブロックにおけるブロックレ
ベルのローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとする。
ここで、ΣΣはxおよびyについての和であり、Temp_L0[][]は、図10(b)に示す参照ブロックのテンプレートであり、(式FRUC-4)で示される(xPos0,yPos0)を左上座標とするBlock_Aの上側および左側に隣接する領域である。(式FRUC-4)の(mvL0[0],mvL0[1])には初期ベ
クトル候補を代入する。その中でマッチングコストが最小となるベクトルを初期ベクトルとして、(mvL0[0],mvL0[1])に再度セットする。次に、対象ブロックにおけるブロックレ
ベルのローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとする。
続いて、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。図10(d)
に示すように、対象ブロックにおけるサブブロックのテンプレートを取得する。ブロックレベルにおいて、テンプレートに対象ブロックの上側あるいは左側領域のみセットした場合、サブブロックのテンプレートも同じ形状にする。ブロックレベルの動きベクトル、当該サブブロックの時空間方向の隣接ブロックの動きベクトル等を初期ベクトル候補として、マッチングコストが最小となる動きベクトルを各サブブロックの初期ベクトルに決定する(初期ベクトルサーチ)。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
に示すように、対象ブロックにおけるサブブロックのテンプレートを取得する。ブロックレベルにおいて、テンプレートに対象ブロックの上側あるいは左側領域のみセットした場合、サブブロックのテンプレートも同じ形状にする。ブロックレベルの動きベクトル、当該サブブロックの時空間方向の隣接ブロックの動きベクトル等を初期ベクトル候補として、マッチングコストが最小となる動きベクトルを各サブブロックの初期ベクトルに決定する(初期ベクトルサーチ)。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
次に、サブブロックの初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)で、ステップサーチ等(ローカルサーチ)を行う。そして、サブ
ブロックの初期ベクトル付近のベクトル候補のマッチングコストを導出し、最小となるベクトルをサブブロックの動きベクトルとして導出する。
ブロックの初期ベクトル付近のベクトル候補のマッチングコストを導出し、最小となるベクトルをサブブロックの動きベクトルとして導出する。
また、テンプレートマッチングでも、2枚の参照ピクチャRef0、Ref1に対して動きベクトル導出処理してもよい。この場合、上記に説明した参照ピクチャRef0のマッチングと参照ピクチャRef1のマッチングを順に行う。参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャBと呼ぶ)内の領域であって、
(xPos1,yPos1)=(xPb+mvL1[0], yPb+mvL1[1]) (式FRUC-6)
によって特定される左上座標(xPos1, yPos1)を有する参照ブロックBlock_Bが特定され
、参照ピクチャBにおいてBlock_Bに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTemp_L1とのマッチングコストが最小になる(mvL1[0],mvL1[1])が決定され、対象ブロックに付与される動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMvL1を導出する。
(xPos1,yPos1)=(xPb+mvL1[0], yPb+mvL1[1]) (式FRUC-6)
によって特定される左上座標(xPos1, yPos1)を有する参照ブロックBlock_Bが特定され
、参照ピクチャBにおいてBlock_Bに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTemp_L1とのマッチングコストが最小になる(mvL1[0],mvL1[1])が決定され、対象ブロックに付与される動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMvL1を導出する。
(転送量削減方法1:参照ピクチャ数制約)
上記のようにバイラテラルマッチングでは、マッチング予測部30373は対象ブロック、
およびサブブロックにおいて各々初期ベクトルサーチとローカルサーチを実施する。サーチには参照ピクチャメモリ306からの参照ピクチャの読み出しが必要であり、読み出す参
照ピクチャの枚数が増加すると転送するデータ量も大きくなる。
上記のようにバイラテラルマッチングでは、マッチング予測部30373は対象ブロック、
およびサブブロックにおいて各々初期ベクトルサーチとローカルサーチを実施する。サーチには参照ピクチャメモリ306からの参照ピクチャの読み出しが必要であり、読み出す参
照ピクチャの枚数が増加すると転送するデータ量も大きくなる。
転送量削減方法1では、参照ピクチャの転送量を削減するために、参照ピクチャリストL1(L1リスト)の参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限する。図11(a)は対象ブロックのマージ候補リストである。マージ候補の各ブロックの動きベク
トルmvL0[]、mvL1[]と参照ピクチャインデックスrefIdxL0、refIdxL1が記載されている。例えばマージ候補リストの先頭にはブロックLの動き情報が格納されており、図11(a)から参照ピクチャリストL0(L0リスト)の動きベクトルMVL0は(-7.5,-5.0)、参照ピクチャイ
ンデックスrefIdxL0は0(ピクチャI0)であり、L1リストの動きベクトルMVL1=(3.0,1.0)
、参照ピクチャインデックスrefIdxL1は2(ピクチャI0)である。また、図11(b)は対象ブロックの参照ピクチャリストの一例である。まず、L1リストの参照ピクチャインデックスrefIdxL1=refIdxL1FIXとする。refIdxL1FIXの導出方法は後述する。隣接ブロックLを初期ベクトルとした時のコストは、参照ピクチャI0上でMVL0=(-7.5,-5.0)だけシフトした位置のブロックBlock_Aと、参照ピクチャRefPicList1[refIdxL1FIX]上で(式FRUC-2)だけシ
フトした位置のブロックBlock_Bに対し、(式FRUC-3)で算出される。ここで(式FRUC-2
)のRef0にはI0、Ref1には参照ピクチャインデックスrefIdxL1FIXをもつピクチャがセッ
トされる。同様にブロックA、ブロックAR等、マージ候補リストのマージ候補のコストを
1つずつ算出する。いずれも、L0リストの参照ピクチャインデックスは、各ブロックの持つ参照ピクチャインデックスを用い、L1リストの参照ピクチャインデックスはrefIdxL1FIXを用いる。マージ候補の中で、最小マッチングコストのブロックの動きベクトルと参照
ピクチャインデックスを、ブロックレベルの初期ベクトルmvL0init[]とその参照ピクチャインデックスrefIdxL0initとして選択する。
トルmvL0[]、mvL1[]と参照ピクチャインデックスrefIdxL0、refIdxL1が記載されている。例えばマージ候補リストの先頭にはブロックLの動き情報が格納されており、図11(a)から参照ピクチャリストL0(L0リスト)の動きベクトルMVL0は(-7.5,-5.0)、参照ピクチャイ
ンデックスrefIdxL0は0(ピクチャI0)であり、L1リストの動きベクトルMVL1=(3.0,1.0)
、参照ピクチャインデックスrefIdxL1は2(ピクチャI0)である。また、図11(b)は対象ブロックの参照ピクチャリストの一例である。まず、L1リストの参照ピクチャインデックスrefIdxL1=refIdxL1FIXとする。refIdxL1FIXの導出方法は後述する。隣接ブロックLを初期ベクトルとした時のコストは、参照ピクチャI0上でMVL0=(-7.5,-5.0)だけシフトした位置のブロックBlock_Aと、参照ピクチャRefPicList1[refIdxL1FIX]上で(式FRUC-2)だけシ
フトした位置のブロックBlock_Bに対し、(式FRUC-3)で算出される。ここで(式FRUC-2
)のRef0にはI0、Ref1には参照ピクチャインデックスrefIdxL1FIXをもつピクチャがセッ
トされる。同様にブロックA、ブロックAR等、マージ候補リストのマージ候補のコストを
1つずつ算出する。いずれも、L0リストの参照ピクチャインデックスは、各ブロックの持つ参照ピクチャインデックスを用い、L1リストの参照ピクチャインデックスはrefIdxL1FIXを用いる。マージ候補の中で、最小マッチングコストのブロックの動きベクトルと参照
ピクチャインデックスを、ブロックレベルの初期ベクトルmvL0init[]とその参照ピクチャインデックスrefIdxL0initとして選択する。
次に、対象ブロックのブロックレベルのローカルサーチを実施する。ローカルサーチでは、Block_Aは、初期ベクトルmvL0init[]を中心として、参照ピクチャrefIdxL0init上で
±SR画素の局所領域をサーチする。Block_Bは(式FRUC-2)で導出した動きベクトルを用
いるが、参照ピクチャインデックスは初期ベクトルサーチと同様、refIdxL1FIXを使用す
る。ローカルサーチの結果、マッチングコストが最小となる動きベクトルを、対象ブロックのブロックレベルの動きベクトルmvL0blk[]とする。
±SR画素の局所領域をサーチする。Block_Bは(式FRUC-2)で導出した動きベクトルを用
いるが、参照ピクチャインデックスは初期ベクトルサーチと同様、refIdxL1FIXを使用す
る。ローカルサーチの結果、マッチングコストが最小となる動きベクトルを、対象ブロックのブロックレベルの動きベクトルmvL0blk[]とする。
次に、ブロックレベルの動きベクトルmvL0blk[]に加え、対象サブブロックの隣接ブロ
ックの動きベクトルの中からサブブロックレベルの初期ベクトルを導出する。ブロックレベルの初期ベクトルサーチと同様、Block_Aの参照ピクチャインデックスは、refIdxL0init、あるいは、各隣接ブロックの持つ参照ピクチャインデックスを用い、Block_Bの参照ピクチャインデックスはrefIdxL1FIXを用いる。各動きベクトルのマッチングコストを導出
した結果、マッチングコストが最小の動きベクトルと参照ピクチャインデックスを、サブブロックレベルの初期ベクトルmvL0initSUB[]とその参照ピクチャインデックスrefIdxL0initSUBとして選択する。
ックの動きベクトルの中からサブブロックレベルの初期ベクトルを導出する。ブロックレベルの初期ベクトルサーチと同様、Block_Aの参照ピクチャインデックスは、refIdxL0init、あるいは、各隣接ブロックの持つ参照ピクチャインデックスを用い、Block_Bの参照ピクチャインデックスはrefIdxL1FIXを用いる。各動きベクトルのマッチングコストを導出
した結果、マッチングコストが最小の動きベクトルと参照ピクチャインデックスを、サブブロックレベルの初期ベクトルmvL0initSUB[]とその参照ピクチャインデックスrefIdxL0initSUBとして選択する。
次に、対象ブロックのサブブロックレベルのローカルサーチを実施する。ローカルサーチでは、Block_Aは、初期ベクトルmvL0initSUB[]を中心として、参照ピクチャrefIdxL0initSUB上で±SR画素の局所領域をサーチする。Block_Bは(式FRUC-2)で導出した動きベクトルを用いるが、参照ピクチャインデックスは初期ベクトルサーチと同様、refIdxL1FIX
を使用する。ローカルサーチの結果、マッチングコストが最小となる動きベクトルを、対象ブロックのサブブロックレベルの動きベクトルspMvL0[]とする。
を使用する。ローカルサーチの結果、マッチングコストが最小となる動きベクトルを、対象ブロックのサブブロックレベルの動きベクトルspMvL0[]とする。
なお、転送量削減方法1では、マージ候補リストの各動きベクトルを初期ベクトル候補として使用したが、予測ベクトル候補リストの各動きベクトルを初期ベクトル候補として使用してもよい。
以下では、L1リストの参照ピクチャインデックスrefIdxL1FIXで指定される1枚の参照
ピクチャを選択する方法を説明する。図11(c)は、図4のGOP構造を持ち、対象ピクチャがB3である場合の、L1リストに格納されたピクチャの情報を示す一例である。参照ピクチャ
は、テンポラルID(Temporal ID)Tid、POC(Picture Order Count)、先頭スライスの量子化ステップサイズQP、ピクチャの種類の情報を有する。ピクチャの種類(I、P、B)の後
の数値は復号順序を示す。
ピクチャを選択する方法を説明する。図11(c)は、図4のGOP構造を持ち、対象ピクチャがB3である場合の、L1リストに格納されたピクチャの情報を示す一例である。参照ピクチャ
は、テンポラルID(Temporal ID)Tid、POC(Picture Order Count)、先頭スライスの量子化ステップサイズQP、ピクチャの種類の情報を有する。ピクチャの種類(I、P、B)の後
の数値は復号順序を示す。
参照ピクチャの選択方法1:L1リストの参照ピクチャとして、L1リストの先頭の参照ピクチャRefPicList1[0]を選択してもよい。この場合、refIdxL1FIX=0である。
参照ピクチャの選択方法2:L1リストのピクチャの中で、最もテンポラルID Tidの小さいピクチャを選択してもよい。図11(c)では、最もテンポラルIDの小さなピクチャとして
、Tid=0のピクチャI0(refIdxL1=2)、あるいは、ピクチャP1(refIdxL1=1)のいずれかが選択される。例えば、参照ピクチャリストRefPicListL1[]の先頭から順にテンポラルIDの小さなピクチャをサーチし、最も早く見つかった参照ピクチャを選択する。ここでは、refIdxL1=1の方がインデックスの値が小さいのでrefIdxL1FIXとして1を選択する。
、Tid=0のピクチャI0(refIdxL1=2)、あるいは、ピクチャP1(refIdxL1=1)のいずれかが選択される。例えば、参照ピクチャリストRefPicListL1[]の先頭から順にテンポラルIDの小さなピクチャをサーチし、最も早く見つかった参照ピクチャを選択する。ここでは、refIdxL1=1の方がインデックスの値が小さいのでrefIdxL1FIXとして1を選択する。
参照ピクチャの選択方法3: L1リストのピクチャの中で、先頭スライスの量子化ステ
ップサイズQPが最小のピクチャを選択してもよい。図11(c)では、QP=22のピクチャI0(refIdxL1=2)が選択され、refIdxL1FIX=2である。
ップサイズQPが最小のピクチャを選択してもよい。図11(c)では、QP=22のピクチャI0(refIdxL1=2)が選択され、refIdxL1FIX=2である。
最小テンポラルIDのピクチャや最小量子化ステップサイズのピクチャは高画質であるので、L1リストの参照ピクチャを1枚に制限することによって生じる画質劣化を抑制することができる。
参照ピクチャの選択方法4: L1リストのピクチャの中で、対象ピクチャに最も近いピ
クチャを選択してもよい。対象ピクチャのPOCが1の場合、図11(c)では、POC=0のピクチ
ャI0(refIdxL1=2)、あるいは、POC=2のピクチャB2(refIdxL1=0)のいずれかが選択される。例えば、参照ピクチャリストRefPicList1[]の先頭から順に対象ピクチャに最も近い
ピクチャをサーチし、最も早く見つかった参照ピクチャを選択する。ここでは、refIdxL1=1の方がインデックスの値が小さいのでrefIdxL1FIXとして1を選択する。
クチャを選択してもよい。対象ピクチャのPOCが1の場合、図11(c)では、POC=0のピクチ
ャI0(refIdxL1=2)、あるいは、POC=2のピクチャB2(refIdxL1=0)のいずれかが選択される。例えば、参照ピクチャリストRefPicList1[]の先頭から順に対象ピクチャに最も近い
ピクチャをサーチし、最も早く見つかった参照ピクチャを選択する。ここでは、refIdxL1=1の方がインデックスの値が小さいのでrefIdxL1FIXとして1を選択する。
このように選択された参照ピクチャインデックスrefIdxL1FIXは、PPSあるいはスライスヘッダの中で通知してもよい。
以上のように、L1リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限することにより、参照ピクチャの転送量を削減することができる。
(転送量削減方法2:参照ピクチャ数制約)
転送量削減方法1では、参照ピクチャRef0上のBlock_Aを導出し、Block_Aの位置から参照ピクチャRef1上のBlock_Bを導出する方法において、L1リストの参照ピクチャを1枚(
参照ピクチャインデックスを1つ)に制限したが、参照ピクチャRef1上のBlock_Bを導出
し、Block_Bの位置から参照ピクチャRef0上のBlock_Aを導出する方法において、L0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限してもよい。
転送量削減方法1では、参照ピクチャRef0上のBlock_Aを導出し、Block_Aの位置から参照ピクチャRef1上のBlock_Bを導出する方法において、L1リストの参照ピクチャを1枚(
参照ピクチャインデックスを1つ)に制限したが、参照ピクチャRef1上のBlock_Bを導出
し、Block_Bの位置から参照ピクチャRef0上のBlock_Aを導出する方法において、L0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限してもよい。
転送量削減方法2では、転送量削減方法1で使用したマージ候補の各ブロックの動きベクトルmvL0[]と参照ピクチャインデックスRefIdxL0を、動きベクトルmvL1[]と参照ピクチャインデックスRefIdxL1に置き換える以外は、転送量削減方法1を同様の処理をする。
以上のように、L0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限することにより、参照ピクチャの転送量を削減することができる。
(転送量削減方法3:参照ピクチャ数制約)
転送量削減方法3では、隣接ブロックの動きベクトルの範囲に応じて、参照ピクチャの数を変更する。隣接ブロックの動きベクトルのx成分の差分とy成分の差分からwTransとhTransを導出する。さらに導出された差分量wTrans、hTransから導出される値(想定転送量)wTrans*hTransに応じて、参照ピクチャの数を変更する。
転送量削減方法3では、隣接ブロックの動きベクトルの範囲に応じて、参照ピクチャの数を変更する。隣接ブロックの動きベクトルのx成分の差分とy成分の差分からwTransとhTransを導出する。さらに導出された差分量wTrans、hTransから導出される値(想定転送量)wTrans*hTransに応じて、参照ピクチャの数を変更する。
例えば、wTrans*hTransが所定の閾値SRTransより大きい場合には、テンプレートマッチングやバイラテラルマッチングに用いる参照ピクチャの数NRefを1枚とし、それ以外の場合には、参照ピクチャの数NRefを1枚より大きい(例えば2枚)とする。
NRef = (wTrans*hTrans > SRTrans) ? 1 : 2
また、以下の式で参照ピクチャの数NRefを決定しても良い。
また、以下の式で参照ピクチャの数NRefを決定しても良い。
NRef = Clip3(1, NMax, Int(SRTrans/(wTrans*hTrans))
転送量削減方法3の詳細例として、ある条件下において、さらにL0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限してもよい。
転送量削減方法3の詳細例として、ある条件下において、さらにL0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限してもよい。
図12は、初期ベクトル候補である隣接ブロックの動きベクトルの一例である。図12(a)
は隣接ブロックの動きベクトルの大きさや方向がばらばらである例であり、図12(c)は隣
接ブロックの動きベクトルの大きさや方向がよく似ている例である。図12(b)は、図12(a)において必要な転送範囲(一点破線で囲まれた領域)を示す図である。なお、図12(b)、
図12(d)、 図12(e)において、破線は隣接ブロックの動きベクトルを用いた場合の対象ブ
ロックの参照位置を示す。図12(a)では参照ピクチャの転送範囲が広く、図12(c)に対し数倍のデータ量を転送する必要がある。参照ピクチャの転送量を一定値以下に抑えるため、想定転送範囲が所定の閾値を超える場合、L0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限する。具体的には、対象ブロックのサイズをbW*bH、参照ピ
クチャの想定転送範囲をwTrans*hTrans、所定のサーチ範囲をSRTrans(幅wSR、高さhSR)とすると、下記条件1を満たす場合にL0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限する。
は隣接ブロックの動きベクトルの大きさや方向がばらばらである例であり、図12(c)は隣
接ブロックの動きベクトルの大きさや方向がよく似ている例である。図12(b)は、図12(a)において必要な転送範囲(一点破線で囲まれた領域)を示す図である。なお、図12(b)、
図12(d)、 図12(e)において、破線は隣接ブロックの動きベクトルを用いた場合の対象ブ
ロックの参照位置を示す。図12(a)では参照ピクチャの転送範囲が広く、図12(c)に対し数倍のデータ量を転送する必要がある。参照ピクチャの転送量を一定値以下に抑えるため、想定転送範囲が所定の閾値を超える場合、L0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限する。具体的には、対象ブロックのサイズをbW*bH、参照ピ
クチャの想定転送範囲をwTrans*hTrans、所定のサーチ範囲をSRTrans(幅wSR、高さhSR)とすると、下記条件1を満たす場合にL0リストの参照ピクチャを1枚(参照ピクチャインデックスを1つ)に制限する。
条件1:if (wTrans*hTrans>SRTrans)
ただし、
SRTrans= wSR*hSR = (bW+2*SR)*(bH+2*SR)
ここで、SRは対象ブロックのサーチレンジである。
ただし、
SRTrans= wSR*hSR = (bW+2*SR)*(bH+2*SR)
ここで、SRは対象ブロックのサーチレンジである。
wTrans = MV0max-MV0min
ここで、MV0max、MV0minは隣接ブロックの動きベクトルのx成分の最大値と最小値である
。
ここで、MV0max、MV0minは隣接ブロックの動きベクトルのx成分の最大値と最小値である
。
hTrans=MV1max-MV1min
ここで、MV1max、MV1minは隣接ブロックの動きベクトルのy成分の最大値と最小値である
。
ここで、MV1max、MV1minは隣接ブロックの動きベクトルのy成分の最大値と最小値である
。
ここで、隣接ブロックの動きベクトルは、対象ブロックに隣接する複数のブロック(例えば、上、左、右上、左下など)の動きベクトルを指し、上記MV0max、MV0min、MV1max、MV1minは複数の参照位置の動きベクトルから導出することが好ましい。
図12(b)において、隣接ブロックの動きベクトルを用いた対象ブロックの参照範囲wTrans*hTrans(一点破線で示す領域)が所定のサーチ範囲SRTrans(実線で示す領域)を超え
る場合(一点破線の領域が一部でも実線の領域の外にある場合)、L0リストの参照ピクチャも1枚に制限してもよい。L0リストの参照ピクチャの選択方法は、転送量削減方法1で説明した参照ピクチャの選択方法1〜4のいずれかを使用することができる。ただし、L1リストをL0リストと置き換え、参照ピクチャRefPicList1を参照ピクチャRefPicList0と置き換える。
る場合(一点破線の領域が一部でも実線の領域の外にある場合)、L0リストの参照ピクチャも1枚に制限してもよい。L0リストの参照ピクチャの選択方法は、転送量削減方法1で説明した参照ピクチャの選択方法1〜4のいずれかを使用することができる。ただし、L1リストをL0リストと置き換え、参照ピクチャRefPicList1を参照ピクチャRefPicList0と置き換える。
以上のように、隣接ブロックにある2つ以上の参照位置の動きベクトルの範囲に応じて、参照ピクチャの数を変更することによって、参照ピクチャの転送量を削減することができる。
特に、L1リストの参照ピクチャを1枚に制限することに加え、L0リストの参照ピクチャも1枚(参照ピクチャインデックスを1つ)に制限してもよい。
(転送量削減方法4:サーチ範囲制約)
転送量削減方法4では、バイラテラルマッチング、テンプレートマッチングにおいて、マッチング予測部30373はあらかじめ、所定のサーチ範囲を設定し、その範囲内で動きベ
クトルをサーチすることによって、参照ピクチャの転送量を削減する。
転送量削減方法4では、バイラテラルマッチング、テンプレートマッチングにおいて、マッチング予測部30373はあらかじめ、所定のサーチ範囲を設定し、その範囲内で動きベ
クトルをサーチすることによって、参照ピクチャの転送量を削減する。
所定のサーチ範囲は、対象ブロックに対し、初期ベクトル候補の動きベクトルの平均値あるいはメディアンだけシフトした位置を中心とする領域SRTransであり、この領域内で
ブロックレベル、サブブロックレベルの初期ベクトルサーチ、ローカルサーチが実施される。図12(e)に一例を示す。図12(e)は、対象ブロックCurBLKに対し、対象ブロックの初期ベクトル候補の平均ベクトルMVavg分シフトした位置を中心とする領域SRTrans(実線で囲んだ領域)を示す。SRTransの中心位置(xSRCtr,ySRCtr)は下式で表される。
ブロックレベル、サブブロックレベルの初期ベクトルサーチ、ローカルサーチが実施される。図12(e)に一例を示す。図12(e)は、対象ブロックCurBLKに対し、対象ブロックの初期ベクトル候補の平均ベクトルMVavg分シフトした位置を中心とする領域SRTrans(実線で囲んだ領域)を示す。SRTransの中心位置(xSRCtr,ySRCtr)は下式で表される。
xSRCtr=xPb+bW/2+MVavg[0]
ySRCtr=yPb+bH/2+MVavg[1]
ここで(xPb,yPb)は対象ブロックの左上座標、bW、bHは対象ブロックの幅と高さである。
ySRCtr=yPb+bH/2+MVavg[1]
ここで(xPb,yPb)は対象ブロックの左上座標、bW、bHは対象ブロックの幅と高さである。
所定のサーチ範囲内に含まれない初期ベクトル候補は、初期ベクトル候補から除外する
か、あるいは、クリッピングにより所定のサーチ範囲内に制限する。なお、破線は隣接ブロックの動きベクトルを用いた対象ブロックの参照位置である。図12(e)では、ブロックAとブロックARの動きベクトルはサーチ範囲外であるため、初期ベクトル候補から除外するか、下式でクリッピングする。サーチ範囲外のブロックの動きベクトルをmvBLK[]とする
と、クリッピングは下式で表される。
か、あるいは、クリッピングにより所定のサーチ範囲内に制限する。なお、破線は隣接ブロックの動きベクトルを用いた対象ブロックの参照位置である。図12(e)では、ブロックAとブロックARの動きベクトルはサーチ範囲外であるため、初期ベクトル候補から除外するか、下式でクリッピングする。サーチ範囲外のブロックの動きベクトルをmvBLK[]とする
と、クリッピングは下式で表される。
mvBLK[0]=Clip3(xSRCtr-wSR/2-xPb,xSRCtr+wSR/2-xPb-bW-1,mvBLK[0])
mvBLK[1]=Clip3(ySRCtr-hSR/2-yPb,ySRCtr+hSR/2-yPb-bH-1,mvBLK[1])
ここでwSR、hSRはサーチ範囲の幅と高さ、bW、bHは対象ブロックの幅と高さである。
mvBLK[1]=Clip3(ySRCtr-hSR/2-yPb,ySRCtr+hSR/2-yPb-bH-1,mvBLK[1])
ここでwSR、hSRはサーチ範囲の幅と高さ、bW、bHは対象ブロックの幅と高さである。
これらの初期ベクトル候補の中から、マッチングコストが最小の動きベクトルを初期ベクトルとして設定する。この初期ベクトルに対し、所定のサーチ範囲内でブロックレベルのローカルサーチを行い、ブロックレベルの動きベクトルを導出する。同様にサブブロックレベルの初期ベクトルサーチとローカルサーチも所定のサーチ範囲内で行う。
所定のサーチ範囲は、CTUに対し設定してもよいし、CUに対し設定してもよい。
以上により、あらかじめ定められたサーチ範囲に制限して動きベクトルをサーチし、サブブロックレベルの動きベクトルを導出するため、参照ピクチャの転送量を削減することができる。
(転送量削減方法5:サーチ範囲制約)
転送量削減方法5は、サブブロック単位のサーチの制御を行う。本実施形態では、バイラテラルマッチング、テンプレートマッチングにおいて、マッチング予測部30373は所定
のサーチ範囲を設定し、サブブロック単位の初期ベクトル候補が所定のサーチ範囲内にあるかを判定する。サブブロック単位の初期ベクトル候補が所定の範囲内にある場合には、サブブロック単位のサーチを行う。逆に、先のサブブロック単位の初期ベクトル候補が所定の範囲内にない場合には、サブブロック単位のサーチを行わない。
転送量削減方法5は、サブブロック単位のサーチの制御を行う。本実施形態では、バイラテラルマッチング、テンプレートマッチングにおいて、マッチング予測部30373は所定
のサーチ範囲を設定し、サブブロック単位の初期ベクトル候補が所定のサーチ範囲内にあるかを判定する。サブブロック単位の初期ベクトル候補が所定の範囲内にある場合には、サブブロック単位のサーチを行う。逆に、先のサブブロック単位の初期ベクトル候補が所定の範囲内にない場合には、サブブロック単位のサーチを行わない。
この場合、初期ベクトルが所定の範囲内にない場合にはサブブロックレベルのサーチをせず、所定の範囲内にある場合にも、サブブロックレベルのサーチに必要な参照ピクチャの転送は、ブロックレベルのサーチで行われている。したがって、サブブロックレベルの動きベクトルサーチに必要な参照ピクチャの転送が不要となり、参照ピクチャの転送量を削減することができる。
(転送量削減方法6:ブロックサイズ制約)
所定のサーチ範囲内で動きベクトルをサーチするか否かを示すフラグを、SPS、PPS等のヘッダ情報としてサーチ範囲を変更するフラグを符号化する。このフラグが小さいサーチ範囲を示す場合には、第1のサブブロックサイズ(小サイズ)でサブブロック単位のサーチを行い、このフラグが大きいサーチ範囲を示す場合には、第2のサブブロックサイズ(大サイズ)でサブブロック単位のサーチを行う。なお、第2のサブブロックサイズを用いる場合、所定のサーチ範囲を想定転送範囲(wTrans*hTrans)に変更してもよい。
所定のサーチ範囲内で動きベクトルをサーチするか否かを示すフラグを、SPS、PPS等のヘッダ情報としてサーチ範囲を変更するフラグを符号化する。このフラグが小さいサーチ範囲を示す場合には、第1のサブブロックサイズ(小サイズ)でサブブロック単位のサーチを行い、このフラグが大きいサーチ範囲を示す場合には、第2のサブブロックサイズ(大サイズ)でサブブロック単位のサーチを行う。なお、第2のサブブロックサイズを用いる場合、所定のサーチ範囲を想定転送範囲(wTrans*hTrans)に変更してもよい。
以上により、サーチ範囲に応じてブロックサイズを変更することにより、符号化効率と転送量の好適なバランスを実現することができる。
なお、転送量削減方法1〜6において、参照ピクチャリストに長期間参照ピクチャ(Long Term Reference Picture)が含まれる場合、長期間参照ピクチャは参照ピクチャとして
使用しない。つまり長期間参照ピクチャの利用可能フラグを"利用可能でない"とセットする。
使用しない。つまり長期間参照ピクチャの利用可能フラグを"利用可能でない"とセットする。
(マッチング処理による動きベクトル導出処理)
マッチングモードにおける動きベクトル導出(パターンマッチベクトル導出)処理の流れについて図13のフローチャートを参照して説明する。
マッチングモードにおける動きベクトル導出(パターンマッチベクトル導出)処理の流れについて図13のフローチャートを参照して説明する。
図13(a)はバイラテラルマッチング処理における転送量削減方法1のフローチャートで
ある。
ある。
なお、図13(a)に示す各ステップのうち、S3202〜S3208は、ブロックレベルで実行され
るブロックサーチである。すなわち、パターンマッチを用いて、ブロック全体で動きベクトルを導出する。
るブロックサーチである。すなわち、パターンマッチを用いて、ブロック全体で動きベクトルを導出する。
また、S3210〜S3214は、サブブロックレベルで実行されるサブブロックサーチである。すなわち、パターンマッチを用いて、ブロックを構成するサブブロック単位で動きベクトルを導出する。
S3202において、マッチング予測部30373は、対象ブロックにおけるブロックレベルの初期ベクトル候補を設定する。
S3204において、マッチング予測部30373は、L1リストの参照ピクチャ(参照ピクチャインデックス)を設定する。L1リストの参照ピクチャ(参照ピクチャインデックス)は、上述の参照ピクチャの選択方法1〜4のいずれかの方法を用いて設定される。
次に、S3206では、マッチング予測部30373は、S3202で設定した初期ベクトル候補の中
から、L0リストの参照ピクチャとS3204で設定したL1リストの参照ピクチャにおいて、マ
ッチングコストが最小となるベクトルをサーチし、初期ベクトルを導出する。
から、L0リストの参照ピクチャとS3204で設定したL1リストの参照ピクチャにおいて、マ
ッチングコストが最小となるベクトルをサーチし、初期ベクトルを導出する。
S3208では、マッチング予測部30373は、対象ブロックにおけるブロックレベルのローカルサーチを行い、最終的な対象ブロックの動きベクトルを導出する。
続いて、対象ブロックに含まれる各サブブロックについて、以下の処理を行う(S3210
〜S3214)。
〜S3214)。
S3210では、マッチング予測部30373は、対象ブロックにおける各サブブロックの初期ベクトル候補を設定する。
S3212では、マッチング予測部30373は、S3210で設定した初期ベクトル候補の中から、L0リストの参照ピクチャとS3204で設定したL1リストの参照ピクチャにおいて、マッチングコストが最小となるベクトルをサーチし、サブブロックレベルの初期ベクトルとして設定する。
次に、S3214では、マッチング予測部30373は、S3212で選択されたサブブロックの初期
ベクトルを中心とするローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
ベクトルを中心とするローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
そして、対象ブロックに含まれる全てのサブブロックについて処理が完了すると、バイラテラルマッチングのパターンマッチベクトル導出処理が終了する。
なお、図13(a)のフローチャート中、L1リストをL0リストに置換えることで、転送量削
減方法2を実現することができる。
減方法2を実現することができる。
図13(b)はバイラテラルマッチング処理における転送量削減方法3のフローチャートで
ある。図13(b)中、図13(a)と同じ番号のステップは図13(a)と同じ処理であり、説明を省
略する。
ある。図13(b)中、図13(a)と同じ番号のステップは図13(a)と同じ処理であり、説明を省
略する。
S3200では、マッチング予測部30373は、転送量削減方法3で説明した方法で参照ピクチャの転送量(wTrans*hTrans)を導出する。
S3204'では、S3204の処理に加え、S3200で導出した転送量と所定のサーチ範囲SRTrans
を比較し、L0リストの参照ピクチャを1枚に制限するか否かを決定する。1枚に制限すると決定した場合、L0リストの参照ピクチャの選択方法は、転送量削減方法1で説明した参照ピクチャの選択方法1〜4のいずれかを使用することができる。ただし、L1リストをL0リストと置き換え、参照ピクチャRefPicList1を参照ピクチャRefPicList0と置き換える。
を比較し、L0リストの参照ピクチャを1枚に制限するか否かを決定する。1枚に制限すると決定した場合、L0リストの参照ピクチャの選択方法は、転送量削減方法1で説明した参照ピクチャの選択方法1〜4のいずれかを使用することができる。ただし、L1リストをL0リストと置き換え、参照ピクチャRefPicList1を参照ピクチャRefPicList0と置き換える。
図14(a)はバイラテラルマッチング処理における転送量削減方法4のフローチャートで
ある。図14(a)中、図13(a)と同じ番号のステップは図13(a)と同じ処理であり、説明を省
略する。
ある。図14(a)中、図13(a)と同じ番号のステップは図13(a)と同じ処理であり、説明を省
略する。
S3200'では、マッチング予測部30373は、転送量削減方法4で説明した方法で所定のサ
ーチ範囲を導出する。
ーチ範囲を導出する。
S3202'およびS3210'では、マッチング予測部30373は、所定のサーチ範囲内に含まれな
い初期ベクトル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
い初期ベクトル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
そして、所定のサーチ範囲内でブロックレベル、サブブロックレベルの初期ベクトルサーチ、ローカルサーチが実施される。
次にテンプレートマッチングのパターンマッチベクトル導出処理を、図14(b)を用いて
説明する。図14(b)に示す各ステップのうち、S3201〜S3208は、ブロックレベルで実行さ
れるブロックサーチである。また、S3210'〜S3214は、サブブロックレベルで実行される
サブブロックサーチである。なお、図14(a)と同じ処理には同じ番号を付している。
説明する。図14(b)に示す各ステップのうち、S3201〜S3208は、ブロックレベルで実行さ
れるブロックサーチである。また、S3210'〜S3214は、サブブロックレベルで実行される
サブブロックサーチである。なお、図14(a)と同じ処理には同じ番号を付している。
S3200'では、マッチング予測部30373は、転送量削減方法4で説明した方法で所定のサ
ーチ範囲を導出する。
ーチ範囲を導出する。
S3201では、マッチング予測部30373は対象ブロックのテンプレートを取得する。
次に、S3202'では、マッチング予測部30373は、所定のサーチ範囲内に含まれない初期
ベクトル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
ベクトル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
次に、S3206では、マッチング予測部30373は、上記で設定した初期ベクトル候補の中から、マッチングコストが最小となるベクトルをブロックレベルの初期ベクトルとして設定する。
S3208では、マッチング予測部30373は、S3206で導出された初期ベクトルを中心とする
局所領域をサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとして設定する。
局所領域をサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとして設定する。
続いて、対象ブロックに含まれる各サブブロックについて、以下の処理を行う(S3210'〜S3214)。
S3210'では、マッチング予測部30373は、所定のサーチ範囲内に含まれない初期ベクト
ル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
ル候補を初期ベクトル候補から除外するか、あるいは、クリッピングにより所定のサーチ範囲内に制限する。
S3211では、マッチング予測部30373は、対象ブロックにおけるサブブロックのテンプレートを取得する。
S3212では、マッチング予測部30373は、S3211で制約した初期ベクトルの中から、マッ
チングコストが最小となるベクトルをサブブロックレベルの初期ベクトルとして設定する。
チングコストが最小となるベクトルをサブブロックレベルの初期ベクトルとして設定する。
次に、S3214では、マッチング予測部30373は、S3212で設定されたサブブロックの初期
ベクトルを中心としたローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
ベクトルを中心としたローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
そして、対象ブロックに含まれる全てのサブブロックについて処理が完了すると、テンプレートマッチングのパターンマッチベクトル導出処理が終了する。
以上は参照ピクチャがRef0の場合であったが、参照ピクチャをRef1とした場合も、上記と同じ処理でテンプレートマッチングを実施することができる。さらに、参照ピクチャが2枚の場合、導出した2つの動きベクトルを用いて、動き補償部3091で双予測処理を行う。
なお、マッチング予測部30373では、パターンマッチベクトル導出処理の前にBM_flagとTM_flagを導出し、フラグの値が真のマッチング処理のみ実施してもよい。
BM_flag = fruc_merge_idx & 1 (式FRUC-8)
TM_flag = (fruc_merge_idx & 10)>>1
ここで、BM_flagとTM_flagは各々、バイラテラルマッチングとテンプレートマッチングが使用されるか否かを示すフラグである。
TM_flag = (fruc_merge_idx & 10)>>1
ここで、BM_flagとTM_flagは各々、バイラテラルマッチングとテンプレートマッチングが使用されるか否かを示すフラグである。
図7(b)は、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図である。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033とベクトル候補選択部3034、およびベクトル候補格納部3036を備える。ベクトル候補導出部3033は、参照ピクチャインデックスrefIdxLXに基づいて予測パラメータメモリ307が記憶する既に処理済みのブロ
ックの動きベクトルmvLXから予測ベクトル候補を導出し、ベクトル候補格納部3036の予測ベクトル候補リストmvpListLX[]に格納する。
ックの動きベクトルmvLXから予測ベクトル候補を導出し、ベクトル候補格納部3036の予測ベクトル候補リストmvpListLX[]に格納する。
ベクトル候補選択部3034は、予測ベクトル候補リストmvpListLX[]の予測ベクトル候補
のうち予測ベクトルインデックスmvp_lX_idxが示す動きベクトルmvpListLX[mvp_lX_idx]
を予測ベクトルmvpLXとして選択する。ベクトル候補選択部3034は、選択した予測ベクト
ルmvpLXを加算部3035に出力する。
のうち予測ベクトルインデックスmvp_lX_idxが示す動きベクトルmvpListLX[mvp_lX_idx]
を予測ベクトルmvpLXとして選択する。ベクトル候補選択部3034は、選択した予測ベクト
ルmvpLXを加算部3035に出力する。
なお、予測ベクトル候補は、復号処理が完了したブロックであって、復号対象ブロックから予め定めた範囲のブロック(例えば、隣接ブロック)の動きベクトルから導出する。なお、隣接ブロックは、復号対象ブロックに空間的に隣接するブロック、例えば、左ブロック、上ブロックの他、復号対象ブロックに時間的に隣接する領域、例えば、復号対象ブ
ロックと同じ位置を含み、表示時刻が異なるブロックの予測パラメータから得られた領域を含む。
ロックと同じ位置を含み、表示時刻が異なるブロックの予測パラメータから得られた領域を含む。
加算部3035は、AMVP予測パラメータ導出部3032から入力された予測ベクトルmvpLXとイ
ンター予測パラメータ復号制御部3031から入力された差分ベクトルmvdLXを加算して動き
ベクトルmvLXを算出する。加算部3035は、算出した動きベクトルmvLXを予測画像生成部308および予測パラメータメモリ307に出力する。
ンター予測パラメータ復号制御部3031から入力された差分ベクトルmvdLXを加算して動き
ベクトルmvLXを算出する。加算部3035は、算出した動きベクトルmvLXを予測画像生成部308および予測パラメータメモリ307に出力する。
mvLX[0] = mvpLX[0] + mvdLX[0]
mvLX[1] = mvpLX[1] + mvdLX[1]
(動きベクトル導出方法の変形例1)
上記では、L0動きベクトル(L0リストの動きベクトル)、L1動きベクトル(L1リストの動きベクトル)の差分ベクトルを各々符号化するが、L0動きベクトル、L1動きベクトルの一方の差分ベクトルのみを符号化し、他方の動きベクトルを導出してもよい。
mvLX[1] = mvpLX[1] + mvdLX[1]
(動きベクトル導出方法の変形例1)
上記では、L0動きベクトル(L0リストの動きベクトル)、L1動きベクトル(L1リストの動きベクトル)の差分ベクトルを各々符号化するが、L0動きベクトル、L1動きベクトルの一方の差分ベクトルのみを符号化し、他方の動きベクトルを導出してもよい。
例えば、L1リストに対しては、予測ベクトルリストmvpListL1[]から対象ブロックの予
測ベクトル候補を選択するための予測ベクトルインデックスmvp_l1_idxを符号化し、L1の差分ベクトルmvdL1[]を、L0の差分ベクトルmvdL0[]から導出する。
測ベクトル候補を選択するための予測ベクトルインデックスmvp_l1_idxを符号化し、L1の差分ベクトルmvdL1[]を、L0の差分ベクトルmvdL0[]から導出する。
mvdL1[] = mvdL0[] * dPOCL1 / dPOCL0
以下の式でもよい
mvdL1[0] = MVScale (mvdL0[0], PicCurr, PicMvL1, PicCurr, PicMvL0)
mvdL1[1] = MVScale (mvdL0[1], PicCurr, PicMvL1, PicCurr, PicMvL0)
逆に、L0リストに対しては、予測ベクトルリストmvpListL0[]から対象ブロックの予測
ベクトル候補を選択するための予測ベクトルインデックスmvp_l0_idxのみを符号化し、L0リストの差分ベクトルmvdL0[]は、L1の差分ベクトルmvdL1[]から導出してもよい。
以下の式でもよい
mvdL1[0] = MVScale (mvdL0[0], PicCurr, PicMvL1, PicCurr, PicMvL0)
mvdL1[1] = MVScale (mvdL0[1], PicCurr, PicMvL1, PicCurr, PicMvL0)
逆に、L0リストに対しては、予測ベクトルリストmvpListL0[]から対象ブロックの予測
ベクトル候補を選択するための予測ベクトルインデックスmvp_l0_idxのみを符号化し、L0リストの差分ベクトルmvdL0[]は、L1の差分ベクトルmvdL1[]から導出してもよい。
mvdL0[] = mvdL1[] * dPOCL0 / dPOCL1
以下の式でもよい
mvdL0[0] = MVScale (mvdL1[0], PicCurr, PicMvL0, PicCurr, PicMvL1)
mvdL0[1] = MVScale (mvdL1[1], PicCurr, PicMvL0, PicCurr, PicMvL1)
加算部3035で既に説明したように、差分ベクトルと予測ベクトルから動きベクトルmvLX[0]が導出される。
以下の式でもよい
mvdL0[0] = MVScale (mvdL1[0], PicCurr, PicMvL0, PicCurr, PicMvL1)
mvdL0[1] = MVScale (mvdL1[1], PicCurr, PicMvL0, PicCurr, PicMvL1)
加算部3035で既に説明したように、差分ベクトルと予測ベクトルから動きベクトルmvLX[0]が導出される。
(動きベクトル導出方法の変形例2)
動きベクトル導出方法の変形例1に続き、サーチにより動きベクトルを補正しても良い。このとき、mvL1[]+mvdL1[]の近傍でさらに動きベクトルをサーチして導出した補正ベクトルdeltaMvL1[]によって動きベクトルmvL1[]を補正(mvL1R[])し、mvL1R[]を用いて補
間画像PredL1[][]を導出してもよい。差分ベクトルmvdL1[]は動きベクトル導出方法の変
形例1と同様、差分ベクトルmvdL0[]から導出される。補正ベクトルmvL1R[]は符号化データによって通知される。
動きベクトル導出方法の変形例1に続き、サーチにより動きベクトルを補正しても良い。このとき、mvL1[]+mvdL1[]の近傍でさらに動きベクトルをサーチして導出した補正ベクトルdeltaMvL1[]によって動きベクトルmvL1[]を補正(mvL1R[])し、mvL1R[]を用いて補
間画像PredL1[][]を導出してもよい。差分ベクトルmvdL1[]は動きベクトル導出方法の変
形例1と同様、差分ベクトルmvdL0[]から導出される。補正ベクトルmvL1R[]は符号化データによって通知される。
mvL1R[0] = mvL1[0]+mvdL1[0]+deltaMvL1[0]
mvL1R[1] = mvL1[1]+mvdL1[1]+deltaMvL1[1]
なお、mvL1[]+mvdL1[]近傍での動きベクトルのサーチ精度は所定の値(例えば1画素精度)を用いてもよいし、対象ブロックのサイズに応じてサーチ精度を切り替えてもよい。例えば、対象ブロックサイズが所定の閾値THBLKSIZEより大きければ1画素精度とし、そ
れ以外は1/2画素精度とする。所定の閾値THBLKSIZEは4x4、8x8等としてもよい。
mvL1R[1] = mvL1[1]+mvdL1[1]+deltaMvL1[1]
なお、mvL1[]+mvdL1[]近傍での動きベクトルのサーチ精度は所定の値(例えば1画素精度)を用いてもよいし、対象ブロックのサイズに応じてサーチ精度を切り替えてもよい。例えば、対象ブロックサイズが所定の閾値THBLKSIZEより大きければ1画素精度とし、そ
れ以外は1/2画素精度とする。所定の閾値THBLKSIZEは4x4、8x8等としてもよい。
補正ベクトルdeltaMvL1[]の導出方法は後述の動画像符号化装置11で説明する。
以上のように、双予測の場合、参照ピクチャの転送量を削減するために参照ピクチャ数を制限することにより生じる符号化効率の低下を、小範囲のサーチを追加することで抑制することができる。
(L1ピクチャ選択方法)
以下、L1リストの参照ピクチャRef1を1枚に制限し、転送のオーバーヘッド(転送量)を削減する方法を説明する。L0リストの参照ピクチャがRef0の場合に、以下の2つの制限を満たす参照ピクチャRef1を選択する。
以下、L1リストの参照ピクチャRef1を1枚に制限し、転送のオーバーヘッド(転送量)を削減する方法を説明する。L0リストの参照ピクチャがRef0の場合に、以下の2つの制限を満たす参照ピクチャRef1を選択する。
1)L1の参照ピクチャRef1とL0の参照ピクチャRef0とは対象ピクチャCurPicを挟んで対象である。すなわち
DiffPicOrderCnt(CurPic,Ref1)*DiffPicOrderCnt(CurPic,Ref0)<0
2)L1の参照ピクチャRef1と対象ピクチャの距離CurPicであるDiffPicOrderCnt(CurPic,Ref1)が、L0の参照ピクチャRef0と対象ピクチャの距離CurPicであるDiffPicOrderCnt(CurPic,Ref0)の定数倍THPOC以下である
abs(DiffPicOrderCnt(CurPic,Ref0))-abs(DiffPicOrderCnt(Ref1,CurPic)) < THPOC
例えばTHPOC=1、あるいはTHPOC=2としてもよい。
DiffPicOrderCnt(CurPic,Ref1)*DiffPicOrderCnt(CurPic,Ref0)<0
2)L1の参照ピクチャRef1と対象ピクチャの距離CurPicであるDiffPicOrderCnt(CurPic,Ref1)が、L0の参照ピクチャRef0と対象ピクチャの距離CurPicであるDiffPicOrderCnt(CurPic,Ref0)の定数倍THPOC以下である
abs(DiffPicOrderCnt(CurPic,Ref0))-abs(DiffPicOrderCnt(Ref1,CurPic)) < THPOC
例えばTHPOC=1、あるいはTHPOC=2としてもよい。
より具体的には、参照ピクチャリストRefPicListL1[idx]においてrefIdxL1=0から実参
照ピクチャ数NumRefPicList1-1までをサーチして、1)2)を満たす最初の参照ピクチャが見つかった時点で、サーチを終了し、見つかった参照ピクチャを参照ピクチャRef1として用いる。
照ピクチャ数NumRefPicList1-1までをサーチして、1)2)を満たす最初の参照ピクチャが見つかった時点で、サーチを終了し、見つかった参照ピクチャを参照ピクチャRef1として用いる。
(インター予測画像生成部309)
図15は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装
置)3091、重み予測部3094を含んで構成される。
図15は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装
置)3091、重み予測部3094を含んで構成される。
(動き補償)
動き補償部3091は、インター予測パラメータ復号部303から入力された、インター予測
パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX等)に基づいて、参照ピクチャメモリ306から、参照ピクチャインデック
スrefIdxLXで指定された参照ピクチャRefXにおいて、復号対象ブロックの位置を起点として、動きベクトルmvLXだけシフトした位置にあるブロックを読み出すことによって補間画像(動き補償画像)を生成する。ここで、動きベクトルmvLXの精度が整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、動き補償画像を生成する。
動き補償部3091は、インター予測パラメータ復号部303から入力された、インター予測
パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX等)に基づいて、参照ピクチャメモリ306から、参照ピクチャインデック
スrefIdxLXで指定された参照ピクチャRefXにおいて、復号対象ブロックの位置を起点として、動きベクトルmvLXだけシフトした位置にあるブロックを読み出すことによって補間画像(動き補償画像)を生成する。ここで、動きベクトルmvLXの精度が整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、動き補償画像を生成する。
動き補償部3091に入力される動きベクトルmvLXまたは動きベクトルmvLXNが1/MVBIT画素精度(MVBITは2以上の自然数)である場合、補間フィルタにより、整数画素位置の参照ピクチャの画素値から、補間画像を生成する。つまり、位相nFracに対応するNTAPタップの
補間フィルタ係数mcFilter[nFrac][k](k=0..NTAP-1)と、参照ピクチャの画素の積和演算
とから、上述した補間画像Pred[][]を生成する。
補間フィルタ係数mcFilter[nFrac][k](k=0..NTAP-1)と、参照ピクチャの画素の積和演算
とから、上述した補間画像Pred[][]を生成する。
動き補償部3091は、まず、予測ブロック内座標(x,y)に対応する整数位置(xInt,yInt)および位相(xFrac,yFrac)を以下の式で導出する。
xInt = xPb+(mvLX[0]>>(log2(MVBIT)))+x (式INTER-1)
xFrac = mvLX[0]&(MVBIT-1)
yInt = yPb+(mvLX[1]>>(log2(MVBIT)))+y
yFrac = mvLX[1]&(MVBIT-1)
ここで、(xPb,yPb)は、bW*bHサイズのブロックの左上座標、x=0..bW-1、y=0..bH-1であり、MVBITは、動きベクトルmvLXの精度(1/MVBIT画素精度)を示す。
xFrac = mvLX[0]&(MVBIT-1)
yInt = yPb+(mvLX[1]>>(log2(MVBIT)))+y
yFrac = mvLX[1]&(MVBIT-1)
ここで、(xPb,yPb)は、bW*bHサイズのブロックの左上座標、x=0..bW-1、y=0..bH-1であり、MVBITは、動きベクトルmvLXの精度(1/MVBIT画素精度)を示す。
動き補償部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 (式INTER-2)
続いて、動き補償部3091は、一時的画像temp[][]を垂直補間処理により、補間画像Pred[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、shift2は値のレンジを調整する正規化パラメータ、offset2=1<<(shift2-1)である。
続いて、動き補償部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
(式INTER-3)
なお、双予測の場合は、上記のPred[][]をL0リスト、L1リスト毎に導出し(補間画像PredL0[][]とPredL1[][]と呼ぶ)、補間画像PredL0[][]と補間画像PredL1[][]から補間画像Pred[][]を生成する。図16(a)は、対象ブロックに対し、動きベクトルmvL0[]によって参
照ピクチャRef0から導出した補間画像PredL0[][]、動きベクトルmvL1[]によって参照ピクチャRef1から導出したPredL1[][]、補間画像Pred[][]を示す図である。
(式INTER-3)
なお、双予測の場合は、上記のPred[][]をL0リスト、L1リスト毎に導出し(補間画像PredL0[][]とPredL1[][]と呼ぶ)、補間画像PredL0[][]と補間画像PredL1[][]から補間画像Pred[][]を生成する。図16(a)は、対象ブロックに対し、動きベクトルmvL0[]によって参
照ピクチャRef0から導出した補間画像PredL0[][]、動きベクトルmvL1[]によって参照ピクチャRef1から導出したPredL1[][]、補間画像Pred[][]を示す図である。
(重み予測)
重み予測部3094は、入力される動き補償画像PredLXに重み係数を乗算することにより対象ブロックの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1の場合(単予測の場合)で、重み予測を用いない場合には、入力された動き補償画像PredLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以下の処理を行う。
重み予測部3094は、入力される動き補償画像PredLXに重み係数を乗算することにより対象ブロックの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1の場合(単予測の場合)で、重み予測を用いない場合には、入力された動き補償画像PredLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以下の処理を行う。
Pred[x][y] = Clip3(0, (1<<bitDepth)-1, (PredLX[x][y]+offset1)>>shift1)
(式INTER-8)
ここで、shift1=14-bitDepth、offset1=1<<(shift1-1)である。
(式INTER-8)
ここで、shift1=14-bitDepth、offset1=1<<(shift1-1)である。
また、予測リスト利用フラグの両者(predFlagL0とpredFlagL1)が1の場合(双予測BiPredの場合)で、重み予測を用いない場合には、入力された動き補償画像PredL0、PredL1を平均し画素ビット数に合わせる以下の処理を行う。
Pred[x][y] = Clip3(0, (1<<bitDepth)-1, (PredL0[x][y]+PredL1[x][y]+offset2)>>shift2) (式INTER-9)
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
ここで、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) (式INTER-10)
ここで、log2WDは所定のシフト量を示す変数である。
ここで、log2WDは所定のシフト量を示す変数である。
さらに、双予測BiPredの場合で、重み予測を行う場合には、重み予測部3094は、重み予
測係数w0、w1、o0、o1を符号化データから導出し、以下の式の処理を行う。
測係数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))(式INTER-11)
(動画像符号化装置の構成)
次に、動画像符号化装置11の構成について説明する。以下に一例として、動画像符号化装置11の構成を、図17を用いて説明する。動画像符号化装置11は、予測画像生成部101、
減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、動画像符号化装置11はループフィルタ107が含まれない構成であってもよい。
(動画像符号化装置の構成)
次に、動画像符号化装置11の構成について説明する。以下に一例として、動画像符号化装置11の構成を、図17を用いて説明する。動画像符号化装置11は、予測画像生成部101、
減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、動画像符号化装置11はループフィルタ107が含まれない構成であってもよい。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域であ
る符号化ユニットCU毎に予測画像を生成する。予測画像生成部101は、既に説明した予測
画像生成部308と同じ動作であり、説明を省略する。
る符号化ユニットCU毎に予測画像を生成する。予測画像生成部101は、既に説明した予測
画像生成部308と同じ動作であり、説明を省略する。
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して、予測残差を生成する。減算部102は、生成した予測残差を変換
・量子化部103に出力する。
・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された予測残差に対し周波数変換を行い、変換係数を算出する。変換・量子化部103は、算出した変換係数を量子化して量子化変換係
数を求める。変換・量子化部103は、求めた量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
数を求める。変換・量子化部103は、求めた量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
エントロピー符号化部104には、変換・量子化部103から量子化変換係数が入力され、予測パラメータ符号化部111から予測パラメータが入力される。入力される予測パラメータ
には、例えば、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、予測モードpred_mode_flag、及びマージインデックスmerge_idx等の符号がある。
には、例えば、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、予測モードpred_mode_flag、及びマージインデックスmerge_idx等の符号がある。
エントロピー符号化部104は、入力された分割情報、予測パラメータ、量子化変換係数
等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆変換部105は、動画像復号装置31における、逆量子化・逆変換部311(図5
)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換
係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、予測
残差残差を算出する。そして、算出した予測残差を加算部106に出力する。
)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換
係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、予測
残差残差を算出する。そして、算出した予測残差を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたブロックの予測画像の画素値と逆量子化・逆変換部105から入力された予測残差を画素毎に加算して、復号画像を生成する。加
算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)を施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキング
フィルタのみの構成であってもよい。
フィルタのみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセッ
トを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割パラメータ、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
トを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割パラメータ、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化
誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化残差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出
されたCUの予測残差の二乗和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値が最小となる符号化パラメー
タのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラ
メータのセットを符号化ストリームTeとして外部に出力する。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化残差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出
されたCUの予測残差の二乗和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値が最小となる符号化パラメー
タのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラ
メータのセットを符号化ストリームTeとして外部に出力する。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
符号化パラメータ決定部110の処理の一例として、(動きベクトル導出方法の変形例2
)におけるL1リストの動きベクトルの補正ベクトルの導出方法を説明する。図16(b)は補
正ベクトルのサーチ範囲を示す図である。対象ブロックCurBLKの左上座標を(xPb,yPb)と
すると、中央の○印(位置0)は、対象ブロックをmvL1[]+dmvL1[]だけシフトさせた整数位置の左上座標(xPbShift,yPbShift)である。
)におけるL1リストの動きベクトルの補正ベクトルの導出方法を説明する。図16(b)は補
正ベクトルのサーチ範囲を示す図である。対象ブロックCurBLKの左上座標を(xPb,yPb)と
すると、中央の○印(位置0)は、対象ブロックをmvL1[]+dmvL1[]だけシフトさせた整数位置の左上座標(xPbShift,yPbShift)である。
xPbShift = INT(xPb+mvL1[0]+dmvL1[0])
yPbShift = INT(yPb+mvL1[1]+dmvL1[1])
この位置0の近傍を1画素精度でサーチし、対象ブロックとのマッチング誤差が最も小さい位置の動きベクトルを補正ベクトルdeltaMvL1[]として出力する。図16(b)のように、位置1(三角印)が最も対象ブロックに似たブロックである場合、補正ベクトルdeltaMvL1[]=(1.0,0)である。
yPbShift = INT(yPb+mvL1[1]+dmvL1[1])
この位置0の近傍を1画素精度でサーチし、対象ブロックとのマッチング誤差が最も小さい位置の動きベクトルを補正ベクトルdeltaMvL1[]として出力する。図16(b)のように、位置1(三角印)が最も対象ブロックに似たブロックである場合、補正ベクトルdeltaMvL1[]=(1.0,0)である。
あるいは、図16(c)に示すように、位置0の近傍を1/2画素精度でサーチし、補正ベクトルdeltaMvL1[]を導出してもよい。図16(c)のように、位置1が最も対象ブロックに似たブロックである場合、補正ベクトルdeltaMvL1[]=(0.5,0)である。
あるいは対象ブロックのサイズが所定の閾値THBLKSIZEより大きいか否かで、動きベク
トルの精度を1/(2^MVBIT1)画素と1/(2^MVBIT2)画素とで切り替えてもよい。ここでMVBIT1とMVBIT2は動きベクトル精度を表す定数である。例えば、対象ブロックのサイズがTHBLKSIZEより大きい場合は動きベクトルの精度を1/(2^MVBIT1)画素とし、そうでなければ動き
ベクトルの精度を1/(2^MVBIT2)画素とする。ここでMVBIT1<MVBIT2である。一例としてTHBLKSIZE=4*4、MVBIT1=1、MVBIT2=2としてもよい。導出された補正ベクトルdeltaMvL1[]は
エントロピー符号化部104でエントロピー符号化される。
トルの精度を1/(2^MVBIT1)画素と1/(2^MVBIT2)画素とで切り替えてもよい。ここでMVBIT1とMVBIT2は動きベクトル精度を表す定数である。例えば、対象ブロックのサイズがTHBLKSIZEより大きい場合は動きベクトルの精度を1/(2^MVBIT1)画素とし、そうでなければ動き
ベクトルの精度を1/(2^MVBIT2)画素とする。ここでMVBIT1<MVBIT2である。一例としてTHBLKSIZE=4*4、MVBIT1=1、MVBIT2=2としてもよい。導出された補正ベクトルdeltaMvL1[]は
エントロピー符号化部104でエントロピー符号化される。
予測パラメータ符号化部111は、インター予測パラメータ符号化部112とイントラ予測パラメータ符号化部113からなる。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトル等のインター予測パラメータを導出する。インター予測パラメータ符号化部112は、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と一部同一の構成を含む。インター予測パラメータ符号化部112の
構成については、後述する。
構成については、後述する。
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたイントラ予測モードIntraPredModeから、シンタックス(例えばMPM_idx、rem_intra_luma_pred_mode等)を導出する。イントラ予測パラメータ符号化部113は、イントラ予測パラメ
ータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
ータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
(インター予測パラメータ符号化部の構成)
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パ
ラメータ符号化部112は、図6のインター予測パラメータ復号部303に対応する手段であり
、図18に構成を示す。
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パ
ラメータ符号化部112は、図6のインター予測パラメータ復号部303に対応する手段であり
、図18に構成を示す。
インター予測パラメータ符号化部112は、インター予測パラメータ符号化制御部1121、AMVP予測パラメータ導出部1122、減算部1123、サブブロック予測パラメータ導出部1125、
及び図示しない、マージフラグ導出部、インター予測識別子導出部などを含んで構成され、これらは各々、マージフラグmerge_flag、インター予測識別子inter_pred_idcを導出する。インター予測パラメータ符号化制御部1121は、マージインデックス導出部11211とPMVインデックス導出部11212を含む。マージインデクス導出部11211、PMVインデクス導出部11212、AMVP予測パラメータ導出部1122、サブブロック予測パラメータ導出部1125を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。インター予測パラメータ符号化部112は、動きベクトル(mvLX、subMvLX)と参照ピクチャインデックスrefIdxLX、インター予測識別子inter_pred_idc、あるいはこれらを示す情報を予測画像生成部101
に出力する。またインター予測パラメータ符号化部112は、マージフラグmerge_flag、マ
ージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデ
ックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、サブブロ
ック予測モードフラグsubPbMotionFlagをエントロピー符号化部104に出力する。
及び図示しない、マージフラグ導出部、インター予測識別子導出部などを含んで構成され、これらは各々、マージフラグmerge_flag、インター予測識別子inter_pred_idcを導出する。インター予測パラメータ符号化制御部1121は、マージインデックス導出部11211とPMVインデックス導出部11212を含む。マージインデクス導出部11211、PMVインデクス導出部11212、AMVP予測パラメータ導出部1122、サブブロック予測パラメータ導出部1125を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。インター予測パラメータ符号化部112は、動きベクトル(mvLX、subMvLX)と参照ピクチャインデックスrefIdxLX、インター予測識別子inter_pred_idc、あるいはこれらを示す情報を予測画像生成部101
に出力する。またインター予測パラメータ符号化部112は、マージフラグmerge_flag、マ
ージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデ
ックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、サブブロ
ック予測モードフラグsubPbMotionFlagをエントロピー符号化部104に出力する。
インター予測パラメータ符号化制御部1121のマージインデックス導出部11211は、符号
化パラメータ決定部110から入力された動きベクトルと参照ピクチャインデックスを、予
測パラメータメモリ108から読み出したマージ候補のブロックが持つ動きベクトルと参照
ピクチャインデックスと比較して、マージインデックスmerge_idxを導出し、エントロピ
ー符号化部104に出力する。マージ候補とは、符号化対象となる符号化対象ブロックから
予め定めた範囲にある参照ブロック(例えば、図8(a)、(b)に示すブロック)であって、
符号化処理が完了したブロックである。PMVインデックス導出部11212は、符号化パラメータ決定部110から入力された動きベクトルから予測ベクトルインデックスmvp_lX_idxを導
出する。
化パラメータ決定部110から入力された動きベクトルと参照ピクチャインデックスを、予
測パラメータメモリ108から読み出したマージ候補のブロックが持つ動きベクトルと参照
ピクチャインデックスと比較して、マージインデックスmerge_idxを導出し、エントロピ
ー符号化部104に出力する。マージ候補とは、符号化対象となる符号化対象ブロックから
予め定めた範囲にある参照ブロック(例えば、図8(a)、(b)に示すブロック)であって、
符号化処理が完了したブロックである。PMVインデックス導出部11212は、符号化パラメータ決定部110から入力された動きベクトルから予測ベクトルインデックスmvp_lX_idxを導
出する。
サブブロック予測パラメータ導出部1125は、符号化パラメータ決定部110がサブブロッ
ク予測モードの使用を決定した場合、マッチング動き予測処理の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、動画像復号装置31の説明で述べたように、隣接ブロック、コロケートブロック等の動きベクトルや参照ピクチャインデックスを用いて導出する。サブブロック予測パラメータ導出部1125とマッチング予測部11253は、インター予測パラメータ復号部303のサブブロック予測パラメータ導出部3037とマッチング予測部30373と、同様の構成を有する。
ク予測モードの使用を決定した場合、マッチング動き予測処理の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、動画像復号装置31の説明で述べたように、隣接ブロック、コロケートブロック等の動きベクトルや参照ピクチャインデックスを用いて導出する。サブブロック予測パラメータ導出部1125とマッチング予測部11253は、インター予測パラメータ復号部303のサブブロック予測パラメータ導出部3037とマッチング予測部30373と、同様の構成を有する。
なお、インター予測パラメータ符号化部112(マッチング予測部11253)から予測画像生成部101に出力するfruc_merge_idxは下式で導出する。
fruc_merge_idx = fruc_merge_idx & BM_flag & (TM_flag<<1)
ここで、BM_flagとTM_flagは各々、バイラテラルマッチングとテンプレートマッチングが使用されるか否かを示すフラグである。
ここで、BM_flagとTM_flagは各々、バイラテラルマッチングとテンプレートマッチングが使用されるか否かを示すフラグである。
AMVP予測パラメータ導出部1122は、入力された動きベクトルmvLXに基づいて予測ベクトルmvpLXを導出する。AMVP予測パラメータ導出部1122は、導出した予測ベクトルmvpLXを減算部1123に出力する。なお、参照ピクチャインデックスref_idx_LX及び予測ベクトルインデックスmvp_lX_idxは、エントロピー符号化部104に出力される。
減算部1123は、符号化パラメータ決定部110から入力された動きベクトルmvLXから、AMVP予測パラメータ導出部1122の出力である予測ベクトルmvpLXを減算して差分ベクトルmvdLXを生成する。差分ベクトルmvdLXはエントロピー符号化部104に出力される。
本発明の一態様に係る動画像復号装置は、参照ピクチャに対して動き補償を行うことによって対象ブロック毎に予測画像を生成する動画像復号装置であって、隣接ブロックの予測パラメータ(参照ピクチャインデックス、動きベクトル等)を用いて導出されたマージ候補リストに対し、符号化データから復号されたマージインデックスに基づいて、対象ブロックの予測パラメータを導出する動きベクトル導出部と、前記動きベクトルと前記参照ピクチャインデックスによって指定された参照ピクチャを用いて、対象ブロックの予測画像を生成する予測画像生成部とを備え、前記予測画像が参照ピクチャリストL0(L0リスト)と参照ピクチャリストL1(L1リスト)の2つのリストに含まれる2つの参照ピクチャを用いて生成される場合、前記動きベクトル導出部は、対象ブロックにおけるブロックレベルの初期ベクトル候補とL1リストの参照ピクチャインデックスを設定し、初期ベクトル候補の中から初期ベクトルをサーチし、初期ベクトルの周囲に対しローカルサーチを行い、対象ブロックの動きベクトルをサーチし、前記L1リストの参照ピクチャインデックスの設定において、参照ピクチャ(参照ピクチャインデックス)を1つに制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、参照ピクチャインデックスを0に設定し、参照ピクチャをL1リストの先頭の参照ピクチャに制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、最もテンポラルIDの小さいピクチャに制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、最小の先頭スライスの量子化ステップサイズをもつピクチャに制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、対象ピクチャに時間的に最も近いピクチャに制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、サーチに必要な参照ピクチャの転送範囲が所定のサーチ範囲より大きい場合、L1リストに加え、L0リストの参照ピクチャインデックスを設定することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、対象ブロックの動きベクトルが所定のサーチ範囲外を参照する場合、クリッピングにより前記動きベクトルを所定のサーチ範囲内
に制限することを特徴とする。
に制限することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、対象ブロックの初期ベクトルが所定のサーチ範囲外を参照する時は、ブロックレベルの動きベクトルサーチのみを実施することを特徴とする。
本発明の一態様に係る動きベクトル導出部は、CTU単位であらかじめ設定した所定のサ
ーチ範囲内で動きベクトルをサーチし、対象ブロックのサイズは4x4を含むことを特徴と
する。
ーチ範囲内で動きベクトルをサーチし、対象ブロックのサイズは4x4を含むことを特徴と
する。
本発明の一態様に係る動画像復号装置は、参照ピクチャに対して動き補償を行うことによって対象ブロック毎に予測画像を生成する動画像復号装置であって、隣接ブロックの予測パラメータ(参照ピクチャインデックス、動きベクトル等)から導出された予測ベクトル候補リストから、予測ベクトルインデックスに基づいて対象ブロックの予測パラメータを導出し、差分ベクトルと加算して、対象ブロックの動きベクトルを導出する動きベクトル導出部と、前記動きベクトルと前記参照ピクチャインデックスによって指定された参照ピクチャを用いて対象ブロックの予測画像を生成する予測画像生成部とを備え、前記予測画像が参照ピクチャリストL0(L0リスト)と参照ピクチャリストL1(L1リスト)から生成された第1の予測画像と第2の予測画像を用いて生成される場合、前記動きベクトル導出部は、対象ブロックのL0リストに対しては、符号化データから復号された第1の参照ピクチャインデックスと、符号化データから復号された第1の予測ベクトルインデックス、第1の差分ベクトルから導出された第1の動きベクトルを用いて第1の予測画像を生成し、対象ブロックのL1リストに対しては、符号化データから復号された第2の予測ベクトルインデックス、および、第1の差分ベクトルから導出した第2の差分ベクトルと符号化データから復号された補正ベクトルを用いて第2の動きベクトルを導出し、対象ブロックにおける所定の値に設定されたL1リストの参照ピクチャインデックスを用いて、第2の予測画像を生成することを特徴とする。
本発明の一態様に係る動きベクトル導出部において、前記所定の値は、L0リストの参照ピクチャとL1リストの参照ピクチャが対象ピクチャを挟んで反対方向に位置し、かつ、L1リストの中で対象ピクチャとの距離が、対象ピクチャとL0リスト参照ピクチャとの距離に最も近い参照ピクチャの参照ピクチャインデックスであることを特徴とする。
本発明の一態様に係る動きベクトル導出部において、前記補正ベクトルは(±1、±1)の範囲であることを特徴とする。
本発明の一態様に係る動きベクトル導出部において、前記補正ベクトルの精度は、対象ブロックのサイズに応じて切り替わることを特徴とする。
(ソフトウェアによる実現例)
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像
生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換
・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。ま
た、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等
の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像
生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換
・量子化部103、エントロピー符号化部104、逆量子化・逆変換部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は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した動画像符号化装置11及び動画像復号装置31を、動画像の送信及び受信に利用できることを、図19を参照して説明する。
図19(a)は、動画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック
図である。図19(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって
符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した動画像符号化装置11は、この符号
化部PROD_A1として利用される。
図である。図19(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、及び、画像を生成または加工する画像処理部PRED_A7を更に備えていてもよい。図19(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示してい
るが、一部を省略しても構わない。
するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部PRED_A7を更に備えていてもよい。図19(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示してい
るが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよい
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
図19(b)は、動画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック図
である。図19(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号
部PROD_B3と、を備えている。上述した動画像復号装置31は、この復号部PROD_B3として利用される。
である。図19(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を更に備えていてもよい。図19(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図19(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであって
もよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から
取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
もよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部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を、動画像の記録及び再生に利用できることを、図20を参照して説明する。
図20(a)は、上述した動画像符号化装置11を搭載した記録装置PROD_Cの構成を示した
ブロック図である。図20(a)に示すように、記録装置PROD_Cは、動画像を符号化すること
によって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した動画像符号化装置
11は、この符号化部PROD_C1として利用される。
ブロック図である。図20(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を更に備えていてもよい。図20(a)においては、これら全てを記録装置PROD_Cが備えた構成を
例示しているが、一部を省略しても構わない。
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図20(a)においては、これら全てを記録装置PROD_Cが備えた構成を
例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部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
の一例である。
処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3
または受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_C
の一例である。
図20(b)は、上述した動画像復号装置31を搭載した再生装置PROD_Dの構成を示したブ
ロックである。図20(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれ
た符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した動画像復
号装置31は、この復号部PROD_D2として利用される。
ロックである。図20(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に接続されるタイプのものであってもよいし、(3)DVDやBDなど
のように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図20(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図20(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部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の一例である。
画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイ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)を用いてソフトウェア的に実現してもよい。
また、上述した動画像復号装置31および動画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記
プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random
Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
プログラムを格納した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)等の論理回路類などを用いることができる。
ュ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:登録商標)
、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
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:登録商標)
、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
41 動画像表示装置
31 動画像復号装置
11 動画像符号化装置
303 インター予測パラメータ復号部
309 インター予測画像生成部
112 インター予測パラメータ符号化部
31 動画像復号装置
11 動画像符号化装置
303 インター予測パラメータ復号部
309 インター予測画像生成部
112 インター予測パラメータ符号化部
Claims (7)
- 参照ピクチャに対して動き補償を行うことによって対象ブロック毎に予測画像を生成する動画像復号装置であって、
隣接ブロックの予測パラメータ(参照ピクチャインデックス、動きベクトル等)を用いて導出されたマージ候補リストに対し、符号化データから復号されたマージインデックスに基づいて、対象ブロックの予測パラメータを導出する動きベクトル導出部と、
前記動きベクトルと前記参照ピクチャインデックスによって指定された参照ピクチャを用いて、対象ブロックの予測画像を生成する予測画像生成部とを備え、
前記予測画像が参照ピクチャリストL0(L0リスト)と参照ピクチャリストL1(L1リスト)の2つのリストに含まれる2つの参照ピクチャを用いて生成される場合、前記動きベクトル導出部は、
対象ブロックにおけるブロックレベルの初期ベクトル候補とL1リストの参照ピクチャインデックスを設定し、
初期ベクトル候補の中から初期ベクトルをサーチし、
初期ベクトルの周囲に対しローカルサーチを行い、対象ブロックの動きベクトルをサーチし、
前記L1リストの参照ピクチャインデックスの設定において、参照ピクチャ(参照ピクチャインデックス)を1つに制限することを特徴とする動画像復号装置。 - 前記動きベクトル導出部は、参照ピクチャインデックスを0に設定し、参照ピクチャをL1リストの先頭の参照ピクチャに制限することを特徴とする請求項1に記載の動画像復号装置。
- 前記動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、最もテンポラルIDの小さいピクチャに制限することを特徴とする請求項1に記載の動画像復号装置。
- 前記動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、最小の先頭スライスの量子化ステップサイズをもつピクチャに制限することを特徴とする請求項1に記載の動画像復号装置。
- 前記動きベクトル導出部は、参照ピクチャをL1リストのピクチャの中で、対象ピクチャに時間的に最も近いピクチャに制限することを特徴とする請求項1に記載の動画像復号装置。
- 参照ピクチャに対して動き補償を行うことによって対象ブロック毎に予測画像を生成する動画像復号装置であって、
隣接ブロックの予測パラメータ(参照ピクチャインデックス、動きベクトル等)から導出された予測ベクトル候補リストから、予測ベクトルインデックスに基づいて対象ブロックの予測パラメータを導出し、差分ベクトルと加算して、対象ブロックの動きベクトルを導出する動きベクトル導出部と、
前記動きベクトルと前記参照ピクチャインデックスによって指定された参照ピクチャを用いて対象ブロックの予測画像を生成する予測画像生成部とを備え、
前記予測画像が参照ピクチャリストL0(L0リスト)と参照ピクチャリストL1(L1リスト)から生成された第1の予測画像と第2の予測画像を用いて生成される場合、前記動きベクトル導出部は、
対象ブロックのL0リストに対しては、符号化データから復号された第1の参照ピクチャインデックスと、符号化データから復号された第1の予測ベクトルインデックス、第1の差分ベクトルから導出された第1の動きベクトルを用いて第1の予測画像を生成し、
対象ブロックのL1リストに対しては、符号化データから復号された第2の予測ベクト
ルインデックス、および、第1の差分ベクトルから導出した第2の差分ベクトルと符号化データから復号された補正ベクトルを用いて第2の動きベクトルを導出し、
対象ブロックにおける所定の値に設定されたL1リストの参照ピクチャインデックスを用いて、第2の予測画像を生成することを特徴とする動画像復号装置。 - 前記所定の値は、L0リストの参照ピクチャとL1リストの参照ピクチャが対象ピクチャを挟んで反対方向に位置し、かつ、L1リストの中で対象ピクチャとの距離が、対象ピクチャとL0リスト参照ピクチャとの距離に最も近い参照ピクチャの参照ピクチャインデックスであることを特徴とする請求項6に記載の動画像復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018098036A JP2019205036A (ja) | 2018-05-22 | 2018-05-22 | 動画像符号化装置、動画像復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018098036A JP2019205036A (ja) | 2018-05-22 | 2018-05-22 | 動画像符号化装置、動画像復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019205036A true JP2019205036A (ja) | 2019-11-28 |
Family
ID=68727393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018098036A Pending JP2019205036A (ja) | 2018-05-22 | 2018-05-22 | 動画像符号化装置、動画像復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019205036A (ja) |
-
2018
- 2018-05-22 JP JP2018098036A patent/JP2019205036A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019054300A1 (ja) | 画像符号化装置及び画像復号装置 | |
CN114501005A (zh) | 图像解码装置以及图像编码装置 | |
WO2020184487A1 (ja) | 動画像復号装置 | |
WO2019139013A1 (ja) | 動きベクトル導出装置、動画像復号装置および動画像符号化装置 | |
WO2020116456A1 (ja) | 動画像復号装置 | |
WO2020137920A1 (ja) | 予測画像生成装置、動画像復号装置、動画像符号化装置および予測画像生成方法 | |
WO2020059877A1 (ja) | 画像復号装置および画像符号化装置 | |
JP2020053924A (ja) | 動画像符号化装置、動画像復号装置 | |
JP7241153B2 (ja) | 画像復号装置 | |
JPWO2020045248A1 (ja) | 動画像復号装置および動画像符号化装置 | |
JP2020043500A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2020145650A (ja) | 画像復号装置および画像符号化装置 | |
JP2020088660A (ja) | 動画像符号化装置、動画像復号装置 | |
JP2020096279A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2020108012A (ja) | 画像復号装置および画像符号化装置 | |
JP2020036101A (ja) | 画像復号装置および画像符号化装置 | |
US11044490B2 (en) | Motion compensation filter apparatus, image decoding apparatus, and video coding apparatus | |
JP2022087865A (ja) | 画像復号装置及び画像符号化装置 | |
JP2020170901A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2020088577A (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
JP2020096329A (ja) | 予測画像生成装置、動画像復号装置および動画像符号化装置 | |
JP2021057621A (ja) | 動画像符号化装置、動画像復号装置および予測画像生成装置 | |
JP2021016018A (ja) | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 | |
JP2020022116A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2019205036A (ja) | 動画像符号化装置、動画像復号装置 |