JP2021016018A - 動画像符号化装置、動画像復号装置および動きベクトル導出装置 - Google Patents
動画像符号化装置、動画像復号装置および動きベクトル導出装置 Download PDFInfo
- Publication number
- JP2021016018A JP2021016018A JP2017218056A JP2017218056A JP2021016018A JP 2021016018 A JP2021016018 A JP 2021016018A JP 2017218056 A JP2017218056 A JP 2017218056A JP 2017218056 A JP2017218056 A JP 2017218056A JP 2021016018 A JP2021016018 A JP 2021016018A
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- subblock
- image
- unit
- block
- 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
【課題】予測画像を生成するための画像データを転送するメモリバンド幅を削減する。【解決手段】動画像符号化装置、および、動画像復号装置は、サブブロック境界の予測画像を、対象サブブロックと隣接サブブロックの動きベクトルを用いて生成するオーバーラップ動き補償(OBMC)予測において、対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2の予測手段は、所定の条件を満たす場合、対象サブブロックの右および下方向のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第1の補間画像を設定する。【選択図】図22
Description
本発明の実施形態は、動画像復号装置、動画像符号化装置および動きベクトル導出装置に関する。
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置(画像符号化装置)、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置(画像復号装置)が用いられている。
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)にて提案されている方式などが挙げられる。
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得
られる符号化単位(CU:Coding Unit、符号化ユニットと呼ばれることもある)、及び、
符号化単位を分割することより得られるブロックである予測ユニット(PU:Prediction Unit)、変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CUごと
に符号化/復号される。
られる符号化単位(CU:Coding Unit、符号化ユニットと呼ばれることもある)、及び、
符号化単位を分割することより得られるブロックである予測ユニット(PU:Prediction Unit)、変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CUごと
に符号化/復号される。
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測残差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる(非特許文献2)。
また、近年の動画像符号化及び復号の技術として非特許文献1が挙げられる。非特許文献2には、サブ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
上述のような技術を用いて予測画像を生成する場合、動きベクトル導出に必要なメモリバンド幅が大きくなるため、メモリバンド幅を削減する技術が求められている。
本発明は、メモリバンド幅を削減することを目的とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置は、サブブロック境界の予測画像を、対象サブブロックと隣接サブブロックの動きベクトルを用いて生成するオーバーラップ動き補償(OBMC)予測において、対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2の予測手段は、
所定の条件を満たす場合、対象サブブロックの右および下方向のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第1の補間画像を設定することを特徴とする
。
所定の条件を満たす場合、対象サブブロックの右および下方向のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第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(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、それぞれ復号した1または複数の復号画像Tdを生成する。
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い
処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR
、|=はOR代入演算子である。
、|=は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)を含んでいる。ここで#の後に示される値はレイヤIDを示す。
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示す
ように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。
ビデオパラメータセット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分割)により符号化処理の基本的な単位である符号化ユニット(CU:Coding Unit)に分割される。再帰的な4分木分割または2分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木及び2分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。
図2の(e)には、処理対象の符号化ツリーユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割(QT分割)または2分木分割(BT分割)により符号化処理の基本的な単位である符号化ユニット(CU:Coding Unit)に分割される。再帰的な4分木分割または2分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木及び2分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。
CTは、CT情報として、QT分割を行うか否かを示すQT分割フラグ(cu_split_flag)、及
びBT分割の分割方法を示すBT分割モード(split_bt_mode)を含む。cu_split_flag及び/
又はsplit_bt_modeは符号化ノードCNごとに伝送される。cu_split_flagが1の場合には、符号化ノードCNは4つの符号化ノードCNに分割される。cu_split_flagが0の時、split_bt_modeが1の場合には、符号化ノードCNは2つの符号化ノードCNに水平分割され、split_bt_modeが2の場合には、符号化ノードCNは2つの符号化ノードCNに垂直分割され、split_bt_modeが0の場合には、符号化ノードCNは分割されず、1つの符号化ユニットCUをノードとして持つ。符号化ユニットCUは符号化ノードの末端ノード(リーフノード)であり、これ以上分割されない。
びBT分割の分割方法を示すBT分割モード(split_bt_mode)を含む。cu_split_flag及び/
又はsplit_bt_modeは符号化ノードCNごとに伝送される。cu_split_flagが1の場合には、符号化ノードCNは4つの符号化ノードCNに分割される。cu_split_flagが0の時、split_bt_modeが1の場合には、符号化ノードCNは2つの符号化ノードCNに水平分割され、split_bt_modeが2の場合には、符号化ノードCNは2つの符号化ノードCNに垂直分割され、split_bt_modeが0の場合には、符号化ノードCNは分割されず、1つの符号化ユニットCUをノードとして持つ。符号化ユニット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ヘッダでは予測モード、分割方法(PU分割モー
ド)等が規定される。
図2の(f)には、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、予測ツリー、変換ツリー、CUヘッダCUHから構成される。CUヘッダでは予測モード、分割方法(PU分割モー
ド)等が規定される。
予測ツリーでは、符号化ユニットを1または複数に分割した各予測ユニット(PU)の予測パラメータ(参照ピクチャインデックス、動きベクトル等)が規定される。別の表現でいえば、予測ユニットは、符号化ユニットを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ユニットを含む。なお、以下では、予測ユニットをさらに分割した予測単位を「サブブロック」と呼ぶ。サブブロックは、複数の画素によって構成されている。予測ユニットとサブブロックのサイズが等しい場合には、予測ユニット中のサブブロックは1つである。予測ユニットがサブブロックのサイズよりも大きい場合には、予測ユニットは、サブブロックに分割される。たとえば予測ユニットが8x8、サブブロックが4x4の場合には、予測ユニットは水平に2分割、垂直に2分割からなる、4つのサブブロックに分割される。
予測処理は、この予測ユニット(サブブロック)ごとに行ってもよい。
予測ツリーにおける予測の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
イントラ予測の場合、分割方法は、2Nx2N(符号化ユニットと同一サイズ)と、NxNとがある。
また、インター予測の場合、分割方法は、符号化データのPU分割モード(part_mode)
により符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N
、nLx2N、nRx2N、および、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、
2NxnU、2NxnDおよびnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
により符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N
、nLx2N、nRx2N、および、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、
2NxnU、2NxnDおよびnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
また、変換ツリーにおいては、符号化ユニットが1または複数の変換ユニットTUに分割され、各変換ユニットの位置とサイズとが規定される。別の表現でいえば、変換ユニットは、符号化ユニットを構成する1または複数の重複しない領域のことである。また、変換
ツリーは、上述の分割より得られた1または複数の変換ユニットを含む。
ツリーは、上述の分割より得られた1または複数の変換ユニットを含む。
変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ユニットとして割り付けるものと、上述したCUの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、この変換ユニットごとに行われる。
(予測パラメータ)
予測ユニット(PU:Prediction Unit)の予測画像は、PUに付随する予測パラメータに
よって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
予測ユニット(PU:Prediction Unit)の予測画像は、PUに付随する予測パラメータに
よって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
符号化データに含まれるインター予測パラメータを導出するためのシンタックス要素には、例えば、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスref_idx_lX(refIdxLX)、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXがある。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリ
ストである。図3は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である
。図3(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復
号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図3(b)に、参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。対象ピクチャがB3の場合の参照ピクチャは、I0、P1、B2であり、参照ピクチャはこれらのピクチャを要素として持つ。個々の予測ユニットでは、参照ピクチャリストRefPicListX(X=0または1)中のどのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定す
る。図では、refIdxL0およびrefIdxL1により参照ピクチャP1とB2が参照される例を示す。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリ
ストである。図3は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である
。図3(a)において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復
号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図3(b)に、参照ピクチャリストの例を示す。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。対象ピクチャがB3の場合の参照ピクチャは、I0、P1、B2であり、参照ピクチャはこれらのピクチャを要素として持つ。個々の予測ユニットでは、参照ピクチャリストRefPicListX(X=0または1)中のどのピクチャを実際に参照するかを参照ピクチャインデックスrefIdxLXで指定す
る。図では、refIdxL0およびrefIdxL1により参照ピクチャP1とB2が参照される例を示す。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍PUの予測パ
ラメータから導出する用いるモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトル
インデックスmvp_lX_idxと差分ベクトルmvdLXとして符号化される。
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍PUの予測パ
ラメータから導出する用いるモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトル
インデックスmvp_lX_idxと差分ベクトルmvdLXとして符号化される。
インター予測識別子inter_pred_idcは、参照ピクチャの種類および数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストの参照ピクチャリストで管理された参照ピクチャを用いることを示し、1枚の参
照ピクチャを用いること(単予測)を示す。PRED_BIは2枚の参照ピクチャを用いること
(双予測BiPred)を示し、L0リストとL1リストで管理された参照ピクチャを用いる。予測ベクトルインデックスmvp_lX_idxは予測ベクトルを示すインデックスであり、参照ピクチャインデックスrefIdxLXは、参照ピクチャリストで管理された参照ピクチャを示すインデックスである。
照ピクチャを用いること(単予測)を示す。PRED_BIは2枚の参照ピクチャを用いること
(双予測BiPred)を示し、L0リストとL1リストで管理された参照ピクチャを用いる。予測ベクトルインデックスmvp_lX_idxは予測ベクトルを示すインデックスであり、参照ピクチャインデックスrefIdxLXは、参照ピクチャリストで管理された参照ピクチャを示すインデックスである。
マージインデックスmerge_idxは、処理が完了したPUから導出される予測パラメータ候
補(マージ候補)のうち、いずれかの予測パラメータを復号対象PUの予測パラメータとして用いるかを示すインデックスである。
補(マージ候補)のうち、いずれかの予測パラメータを復号対象PUの予測パラメータとして用いるかを示すインデックスである。
(動きベクトル)
動きベクトル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
(イントラ予測)
次にイントラ予測パラメータについて説明する。
(イントラ予測)
次にイントラ予測パラメータについて説明する。
イントラ予測パラメータとは、CUをピクチャ内の情報で予測処理に用いられるパラメータ、例えば、イントラ予測モードIntraPredModeであり、輝度イントラ予測モードIntraPredModeYと色差イントラ予測モードIntraPredModeCは異なっても良い。イントラ予測モー
ドは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダイレ
クトモード(輝度の予測モードを使用するモード)、LM予測(輝度画素から線形予測するモード)の何れかを用いる。
ドは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダイレ
クトモード(輝度の予測モードを使用するモード)、LM予測(輝度画素から線形予測するモード)の何れかを用いる。
(ループフィルタ)
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
(エントロピー符号化)
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。
(動画像復号装置の構成)
図4に本発明の動画像復号装置(画像復号装置)31を示す。
動画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装
置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで
構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
図4に本発明の動画像復号装置(画像復号装置)31を示す。
動画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装
置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで
構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
また、以降では処理の単位としてCTU、CU、PU、TUを使用した例を記載するが、この例
に限らず、TUあるいはPU単位の代わりにCU単位で処理をしてもよい。あるいはCTU、CU、PU、TUをブロックと読み替え、ブロック単位の処理としてもよい。
に限らず、TUあるいはPU単位の代わりにCU単位で処理をしてもよい。あるいはCTU、CU、PU、TUをブロックと読み替え、ブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロ
ピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測パラメータおよび、差分画像を生成するための残差情報などがある。
ピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測パラメータおよび、差分画像を生成するための残差情報などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードpredMode、PU分割モードpart_mode、マ
ージフラグ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、カルーネンレーベ変換)等の周波数
変換を行い量子化して得られる係数である。
ージフラグ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、カルーネンレーベ変換)等の周波数
変換を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測
パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター
予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター
予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測
パラメータを復号する。イントラ予測パラメータとは、CUを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ
予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
パラメータを復号する。イントラ予測パラメータとは、CUを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ
予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。なお、ループフィルタ305は動画像符号装置11と対になっていれば、必ずしも上記3種
類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、復号対象のピクチャ及びCTUあるいはCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及び予測ユニッ
ト(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ
予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。
記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXがある。
ト(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ
予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。
記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXがある。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測
画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出し
た参照ピクチャ(参照ピクチャブロック)を用いてPU(ブロック)もしくはサブブロックの予測画像を生成する。
画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出し
た参照ピクチャ(参照ピクチャブロック)を用いてPU(ブロック)もしくはサブブロックの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてインター予測によりブロックもしくはサブブロックの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピク
チャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画
像生成部309は、読み出した参照ピクチャブロックをもとに補間を行ってブロックの予測
画像(補間画像、動き補償画像)を生成する。インター予測画像生成部309は、生成した
ブロックの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照
ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、ブロックもしくはサブブロックの予測画像を生成するために参照する領域である。
チャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画
像生成部309は、読み出した参照ピクチャブロックをもとに補間を行ってブロックの予測
画像(補間画像、動き補償画像)を生成する。インター予測画像生成部309は、生成した
ブロックの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照
ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、ブロックもしくはサブブロックの予測画像を生成するために参照する領域である。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は
、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出し
た参照画素を用いてイントラ予測を行う。
、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出し
た参照画素を用いてイントラ予測を行う。
イントラ予測画像生成部310は、読み出した隣接ブロックに対し、イントラ予測モードI
ntraPredModeが示す予測モードを参照して、ブロックの予測画像を生成する。イントラ予測画像生成部310は、生成したブロックの予測画像を加算部312に出力する。
ntraPredModeが示す予測モードを参照して、ブロックの予測画像を生成する。イントラ予測画像生成部310は、生成したブロックの予測画像を加算部312に出力する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部311は、求めた変換係数について逆DCT、逆DST、逆KLT等の逆周波数変換を行い、予測残差信号を算出する。逆量子化・逆変換部311は、算出した残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309または予測画像生成部308から入力されたブ
ロックの予測画像と逆量子化・逆変換部311から入力された残差信号を画素毎に加算して
、ブロックの復号画像を生成する。加算部312は、生成したブロックの復号画像をデブロ
ッキングフィルタ、SAO部、またはALFの少なくとも何れかに出力する。
ロックの予測画像と逆量子化・逆変換部311から入力された残差信号を画素毎に加算して
、ブロックの復号画像を生成する。加算部312は、生成したブロックの復号画像をデブロ
ッキングフィルタ、SAO部、またはALFの少なくとも何れかに出力する。
(インター予測パラメータ復号部の構成)
次に、インター予測パラメータ復号部303の構成について説明する。
次に、インター予測パラメータ復号部303の構成について説明する。
図5は、本実施形態に係るインター予測パラメータ復号部303の構成を示す概略図である。インター予測パラメータ復号部303は、インター予測パラメータ復号制御部3031、AMVP
予測パラメータ導出部3032、加算部3035、マージ予測パラメータ導出部3036およびサブブロック予測パラメータ導出部3037、BTM予測部3038を含んで構成される。AMVP予測パラメ
ータ導出部3032、マージ予測パラメータ導出部3036、サブブロック予測パラメータ導出部3037、BTM予測部3038を総称して動きベクトル導出部(動きベクトル導出装置)と称して
もよい。
予測パラメータ導出部3032、加算部3035、マージ予測パラメータ導出部3036およびサブブロック予測パラメータ導出部3037、BTM予測部3038を含んで構成される。AMVP予測パラメ
ータ導出部3032、マージ予測パラメータ導出部3036、サブブロック予測パラメータ導出部3037、BTM予測部3038を総称して動きベクトル導出部(動きベクトル導出装置)と称して
もよい。
インター予測パラメータ復号制御部3031は、インター予測に関連する符号(シンタックス要素)の復号をエントロピー復号部301に指示し、符号化データに含まれる符号(シン
タックス要素)、例えば、PU分割モードpart_mode、マージフラグmerge_flag、マージイ
ンデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXを抽出する。
タックス要素)、例えば、PU分割モードpart_mode、マージフラグ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という小さいブロック単位で予測される。CUを複数のパーティション(2NxN、Nx2N、NxNなどのブロック)に分割し、パーティション単位で予測パラメータ
のシンタックスを符号化・復号する方法に対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化・復号するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
インデックスmerge_idxをマージ予測パラメータ導出部3036(詳細は後述する)に出力し
、サブブロック予測モードフラグsubPbMotionFlagをサブブロック予測パラメータ導出部3037に出力する。サブブロック予測パラメータ導出部3037は、サブブロック予測モードフ
ラグsubPbMotionFlagの値に応じて、ブロックを複数のサブブロックに分割し、サブブロ
ック単位で動きベクトルを導出する。すなわち、サブブロック予測モードでは、予測ブロックは4x4もしくは8x8という小さいブロック単位で予測される。CUを複数のパーティション(2NxN、Nx2N、NxNなどのブロック)に分割し、パーティション単位で予測パラメータ
のシンタックスを符号化・復号する方法に対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化・復号するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
詳細に説明すると、サブブロック予測パラメータ導出部3037は、サブブロック予測モードにてサブブロック予測を行う、時空間サブブロック予測部30371、アフィン予測部30372、マッチング動き導出部30373、OBMC予測部30374の少なくとも一つを備える。
(サブブロック予測モードフラグ)
ここで、動画像復号装置31、動画像符号化装置11(詳細は後述する)における、あるブロックの予測モードがサブブロック予測モードであるか否かを示すサブブロック予測モードフラグsubPbMotionFlagの導出方法について説明する。動画像復号装置31、動画像符号
化装置11は、後述する空間サブブロック予測SSUB、時間サブブロック予測TSUB、アフィン予測AFFINE、マッチング動き導出MATのいずれを用いたかに基づいて、サブブロック予測
モードフラグsubPbMotionFlagを導出する。たとえば、あるブロックで選択された予測モ
ードをN(たとえばNは選択されたマージ候補を示すラベル)とした場合には、以下の式によりサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
ここで、動画像復号装置31、動画像符号化装置11(詳細は後述する)における、あるブロックの予測モードがサブブロック予測モードであるか否かを示すサブブロック予測モードフラグsubPbMotionFlagの導出方法について説明する。動画像復号装置31、動画像符号
化装置11は、後述する空間サブブロック予測SSUB、時間サブブロック予測TSUB、アフィン予測AFFINE、マッチング動き導出MATのいずれを用いたかに基づいて、サブブロック予測
モードフラグsubPbMotionFlagを導出する。たとえば、あるブロックで選択された予測モ
ードをN(たとえばNは選択されたマージ候補を示すラベル)とした場合には、以下の式によりサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
subPbMotionFlag = (N == TSUB) || (N == SSUB) || (N == AFFINE) || (N == MAT)動
画像復号装置31、動画像復号装置11が一部の予測、例えば、空間サブブロック予測SSUB、アフィン予測AFFINEを行う構成である場合には、以下のようにサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
画像復号装置31、動画像復号装置11が一部の予測、例えば、空間サブブロック予測SSUB、アフィン予測AFFINEを行う構成である場合には、以下のようにサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
subPbMotionFlag = (N == SSUB)|| (N == AFFINE)
図6(a)は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362、マージ候補格納部30363を備える。マージ候補格納部30363は、マージ候補導出部30361から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されてい
る。マージ候補格納部30363において、格納されたマージ候補には、所定の規則に従って
インデックスが割り当てられる。
図6(a)は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362、マージ候補格納部30363を備える。マージ候補格納部30363は、マージ候補導出部30361から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されてい
る。マージ候補格納部30363において、格納されたマージ候補には、所定の規則に従って
インデックスが割り当てられる。
マージ候補導出部30361は、すでに復号処理が行われた隣接ブロックの動きベクトルと
参照ピクチャインデックスrefIdxLXをそのまま用いてマージ候補を導出する。それ以外にアフィン予測を用いてマージ候補を導出してもよい。つまり、マージ候補導出部30361は
、アフィン予測を、後述する空間マージ候補導出処理、時間マージ候補導出処理、結合マージ候補導出処理、およびゼロマージ候補導出処理に用いてもよい。なお、アフィン予測はサブブロック単位で行われ、予測パラメータはサブブロック毎に予測パラメータメモリ307に格納されている。あるいは、アフィン予測は画素単位で行われてもよい。
参照ピクチャインデックスrefIdxLXをそのまま用いてマージ候補を導出する。それ以外にアフィン予測を用いてマージ候補を導出してもよい。つまり、マージ候補導出部30361は
、アフィン予測を、後述する空間マージ候補導出処理、時間マージ候補導出処理、結合マージ候補導出処理、およびゼロマージ候補導出処理に用いてもよい。なお、アフィン予測はサブブロック単位で行われ、予測パラメータはサブブロック毎に予測パラメータメモリ307に格納されている。あるいは、アフィン予測は画素単位で行われてもよい。
(空間マージ候補導出処理)
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予
測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予
測パラメータをマージ候補として導出し、マージ候補リストmergeCandList[](予測ベク
トル候補リストmvpListLX[])に格納する。読み出される予測パラメータは、復号対象ブ
ロックから予め定めた範囲内にあるブロック(例えば、図7(b)に示す復号対象ブロックの左下端L、BL、左上端AL、右上端A、ARにそれぞれ接するブロックの全部または一部)のそれぞれに係る予測パラメータである。
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予
測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予
測パラメータをマージ候補として導出し、マージ候補リストmergeCandList[](予測ベク
トル候補リストmvpListLX[])に格納する。読み出される予測パラメータは、復号対象ブ
ロックから予め定めた範囲内にあるブロック(例えば、図7(b)に示す復号対象ブロックの左下端L、BL、左上端AL、右上端A、ARにそれぞれ接するブロックの全部または一部)のそれぞれに係る予測パラメータである。
(時間マージ候補導出処理)
時間マージ導出処理として、マージ候補導出部30361は、参照ピクチャにおいて図7(c)
に示すコロケートブロックの右下ブロックBR、あるいは、復号対象ブロックの中心の座標を含むブロックCの予測パラメータを予測パラメータメモリ307から読みだしマージ候補とし、マージ候補リストmergeCandList[]に格納する。一般的にブロックBRを優先してマー
ジ候補リストmergeCandList[]に加え、ブロックBRが動きベクトルを持たない(例えばイ
ントラ予測ブロック)場合や、ブロックBRがピクチャ外に位置する場合は、ブロックCの
動きベクトルを予測ベクトル候補に加える。動きの異なる可能性が高いコロケートブロックの動きベクトルを予測候補として加えることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照ピクチャの指定方法は、例えば、図8のスライスヘッダにおいて指定
された参照ピクチャインデックスcollocated_ref_idx(SYN01)でも良いし、復号対象ブ
ロックに隣接するブロックの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
時間マージ導出処理として、マージ候補導出部30361は、参照ピクチャにおいて図7(c)
に示すコロケートブロックの右下ブロックBR、あるいは、復号対象ブロックの中心の座標を含むブロックCの予測パラメータを予測パラメータメモリ307から読みだしマージ候補とし、マージ候補リストmergeCandList[]に格納する。一般的にブロックBRを優先してマー
ジ候補リストmergeCandList[]に加え、ブロックBRが動きベクトルを持たない(例えばイ
ントラ予測ブロック)場合や、ブロックBRがピクチャ外に位置する場合は、ブロックCの
動きベクトルを予測ベクトル候補に加える。動きの異なる可能性が高いコロケートブロックの動きベクトルを予測候補として加えることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照ピクチャの指定方法は、例えば、図8のスライスヘッダにおいて指定
された参照ピクチャインデックスcollocated_ref_idx(SYN01)でも良いし、復号対象ブ
ロックに隣接するブロックの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
例えばマージ候補導出部30361は、ブロックCの位置(xColCtr, yColCtr)とブロックBRの位置(xColBr、yColBr)を、以下の式で導出してもよい。
xColCtr = xPb + (W>>1)
yColCtr = yPb + (H>>1)
xColBr = xPb + W
yColBr = yPb + H
ここで、(xPb,yPb)は対象ブロックの左上座標、(W,H)は対象ブロックの幅と高さである。
yColCtr = yPb + (H>>1)
xColBr = xPb + W
yColBr = yPb + H
ここで、(xPb,yPb)は対象ブロックの左上座標、(W,H)は対象ブロックの幅と高さである。
(結合マージ候補導出処理)
結合マージ導出処理として、マージ候補導出部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[]に格納する順番は、図7(b)、(c)に示すブロックと、結合マージ候補、ゼロマージ候補を加えた{L、A、AR、BL、AL、BR/C、結合マージ候補、ゼロマージ候補}である。BR/Cは、ブロックBRが利用可能でなければブロックCを使用する、という意味である。なお、利用可能でない(ブロックがイントラ予測等)
参照ブロックは、マージ候補リストに格納されない。
参照ブロックは、マージ候補リストに格納されない。
マージ候補選択部30362は、マージ候補格納部30363のマージ候補リストmergeCandList[]に格納されているマージ候補のうち、インター予測パラメータ復号制御部3031から入力
されたマージインデックスmerge_idxに対応するインデックスが割り当てられたマージ候
補を、対象ブロックのインター予測パラメータとして選択する。マージ候補選択部30362
は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
されたマージインデックスmerge_idxに対応するインデックスが割り当てられたマージ候
補を、対象ブロックのインター予測パラメータとして選択する。マージ候補選択部30362
は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
(サブブロック予測部)
次に、サブブロック予測部について説明する。
次に、サブブロック予測部について説明する。
(時空間サブブロック予測部30371)
時空間サブブロック予測部30371は、時間的に対象ブロックに隣接する参照ピクチャ上
(たとえば直前のピクチャ)のブロックの動きベクトル、もしくは、空間的に対象ブロックに隣接するブロックの動きベクトルから、対象ブロックを分割して得られるサブブロックの動きベクトルを導出する。具体的には、対象ブロックが参照する参照ピクチャに合わせて参照ピクチャ上の動きベクトルをスケーリングすることにより、対象ブロック中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+BW*i, yj=yPb+BH*j, i=0,1,2,・・・,W/BW-1、j=0,1,2,・・・,H/BH-1)を導出する(時間サブブロック予測)。ここで、(xPb, yPb)は対象ブロックの左上座標、W、Hは対象ブロックのサイズ、BW、BHはサブブロッ
クのサイズである。
時空間サブブロック予測部30371は、時間的に対象ブロックに隣接する参照ピクチャ上
(たとえば直前のピクチャ)のブロックの動きベクトル、もしくは、空間的に対象ブロックに隣接するブロックの動きベクトルから、対象ブロックを分割して得られるサブブロックの動きベクトルを導出する。具体的には、対象ブロックが参照する参照ピクチャに合わせて参照ピクチャ上の動きベクトルをスケーリングすることにより、対象ブロック中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+BW*i, yj=yPb+BH*j, i=0,1,2,・・・,W/BW-1、j=0,1,2,・・・,H/BH-1)を導出する(時間サブブロック予測)。ここで、(xPb, yPb)は対象ブロックの左上座標、W、Hは対象ブロックのサイズ、BW、BHはサブブロッ
クのサイズである。
また、隣接ブロックの動きベクトルを、対象ブロックを分割して得られるサブブロックとの距離に応じて加重平均を計算することで、対象ブロック中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+BW*i, yj=yPb+BH*j, i=0,1,2,・・・,W/BW-1、j=0,1,2,
・・・,H/BH-1)を導出してもよい(空間サブブロック予測)。
・・・,H/BH-1)を導出してもよい(空間サブブロック予測)。
上記、時間サブブロック予測の候補TSUB、空間サブブロック予測の候補SSUBを、マージモードの一つのモード(マージ候補)として選択する。
(動きベクトルスケーリング)
動きベクトルのスケーリングの導出方法を説明する。動きベクトルMv、動きベクトルMvをもつブロックを含むピクチャPic1、動きベクトルMvの参照ピクチャRic2、スケーリング後の動きベクトルsMv、スケーリング後の動きベクトルsMvをもつブロックを含むピクチャPict3、スケーリング後の動きベクトルsMvが参照する参照ピクチャPic4とすると、sMvの
導出関数MvScale(Mv, Pic1, Pic2, Pic3, Pic4)は下式で表される。
動きベクトルのスケーリングの導出方法を説明する。動きベクトルMv、動きベクトルMvをもつブロックを含むピクチャPic1、動きベクトルMvの参照ピクチャRic2、スケーリング後の動きベクトルsMv、スケーリング後の動きベクトルsMvをもつブロックを含むピクチャPict3、スケーリング後の動きベクトルsMvが参照する参照ピクチャPic4とすると、sMvの
導出関数MvScale(Mv, Pic1, Pic2, Pic3, Pic4)は下式で表される。
sMv = MvScale(Mv, Pic1, Pic2, Pic3, Pic4)
= 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(Pic1, Pic2)
tb = DiffPicOrderCnt(Pic3, Pic4)
ここで、round1、round2、shift1、shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1=1<<(shift1-1)、round2=1<<(shift2-1)、shift1=8、shift2=6などである。DiffPicOrderCnt(Pic1, Pic2)はPic1とPic2の時間情報(例えばPOC)の差を返す関数である。R1、R2、R3は処理を限られた精度で行うために値域を制限するもので例えば、R1=32768、R2=4096、R3=128などである。
= 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(Pic1, Pic2)
tb = DiffPicOrderCnt(Pic3, Pic4)
ここで、round1、round2、shift1、shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1=1<<(shift1-1)、round2=1<<(shift2-1)、shift1=8、shift2=6などである。DiffPicOrderCnt(Pic1, Pic2)はPic1とPic2の時間情報(例えばPOC)の差を返す関数である。R1、R2、R3は処理を限られた精度で行うために値域を制限するもので例えば、R1=32768、R2=4096、R3=128などである。
また、スケーリング関数MvScale(Mv, Pic1, Pic2, Pic3, Pic4)は以下の式でもよい。
MvScale(Mv, Pic1, Pic2, Pic3, Pic4) =
Mv*DiffPicOrderCnt(Pic3,Pic4)/DiffPicOrderCnt(Pic1,Pic2) (式MVSCALE-2)
すなわち、Pic1とPic2の時間情報の差と、Pic3とPic4の時間情報の差との比に応じてMv
をスケーリングしてもよい。
Mv*DiffPicOrderCnt(Pic3,Pic4)/DiffPicOrderCnt(Pic1,Pic2) (式MVSCALE-2)
すなわち、Pic1とPic2の時間情報の差と、Pic3とPic4の時間情報の差との比に応じてMv
をスケーリングしてもよい。
具体的な時空間サブブロック予測方法として、ATMVP(Adaptive Temporal Motion Vector Prediction)とSTMVP(Spatial-Temporal Motion Vector Prediction)について説明
する。
する。
(ATMVP)
ATMVPは、図7(b)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(L、A、AR、BL、AL)の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを
導出し、サブブロック単位で予測画像を生成する方式であり、下記の手順で処理する。
ATMVPは、図7(b)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(L、A、AR、BL、AL)の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを
導出し、サブブロック単位で予測画像を生成する方式であり、下記の手順で処理する。
ステップ1)ブロックレベル動きベクトル導出
空間隣接ブロックL、A、AR、BL、ALの順に、利用可能(available)な最初の隣接ブロッ
クを求める。利用可能な隣接ブロックが見つかった場合、そのブロックが有する動きベクトルと参照ピクチャを対象ブロックのブロックレベルの動きベクトルBMVと参照ピクチャBRefとして、ステップ2に移行する。全ての隣接ブロックが利用可能でない(non available)場合、ATMVFをオフとし、処理を終了する。「ATMVPがオフ」の意味は、マージ候補リストにATMVPによる動きベクトルを格納しないということである。
空間隣接ブロックL、A、AR、BL、ALの順に、利用可能(available)な最初の隣接ブロッ
クを求める。利用可能な隣接ブロックが見つかった場合、そのブロックが有する動きベクトルと参照ピクチャを対象ブロックのブロックレベルの動きベクトルBMVと参照ピクチャBRefとして、ステップ2に移行する。全ての隣接ブロックが利用可能でない(non available)場合、ATMVFをオフとし、処理を終了する。「ATMVPがオフ」の意味は、マージ候補リストにATMVPによる動きベクトルを格納しないということである。
また、「利用可能な隣接ブロック」の意味は、例えば、隣接ブロックが動きベクトルを有する、である。
ステップ2)サブブロックレベル動きベクトル導出
図9(a)に示すように、参照ピクチャBRef上で、対象ブロックを動きベクトルBMVだけシフ
トした位置のブロックをサブブロックに分割し、各サブブロックの有する動きベクトルSpRefMvLX[k][l](k=0..NBW-1、l=0..NBH-1)と参照ピクチャSpRef[k][l]の情報を取得する。ここで、NBW、NBHは各々、水平および垂直方向のサブブロックの個数である。あるサブブロック(k1,l1)の動きベクトルがない場合、ブロックレベルの動きベクトルBMVと参照ピクチャBRefを、サブブロック(k1,l1)の動きベクトルSpRefMvLX[k1][l1]と参照ピクチャSpRef[k1][l1]としてセットする。
図9(a)に示すように、参照ピクチャBRef上で、対象ブロックを動きベクトルBMVだけシフ
トした位置のブロックをサブブロックに分割し、各サブブロックの有する動きベクトルSpRefMvLX[k][l](k=0..NBW-1、l=0..NBH-1)と参照ピクチャSpRef[k][l]の情報を取得する。ここで、NBW、NBHは各々、水平および垂直方向のサブブロックの個数である。あるサブブロック(k1,l1)の動きベクトルがない場合、ブロックレベルの動きベクトルBMVと参照ピクチャBRefを、サブブロック(k1,l1)の動きベクトルSpRefMvLX[k1][l1]と参照ピクチャSpRef[k1][l1]としてセットする。
ステップ3)動きベクトルスケーリング
参照ピクチャ上の各サブブロックの動きベクトルSpRefMvLX[k][l]と参照ピクチャSpRef[k][l]からスケーリング関数MvScale()により対象ブロック上の各サブブロックの動きベ
クトルSpMvLX[k][l]を導出する。
参照ピクチャ上の各サブブロックの動きベクトルSpRefMvLX[k][l]と参照ピクチャSpRef[k][l]からスケーリング関数MvScale()により対象ブロック上の各サブブロックの動きベ
クトルSpMvLX[k][l]を導出する。
SpMvLX[k][l] = MvScale(SpRefMvLX[k][l], Bref, SpRef[k][l], PCur, RefPicListX[refIdxATMVP]) (式ATMVP-1)
ここでRefPicListX[refIdxATMVP]は、対象ブロックの参照ピクチャであり、例えば、refIdxATMVP = 0とする。
ここでRefPicListX[refIdxATMVP]は、対象ブロックの参照ピクチャであり、例えば、refIdxATMVP = 0とする。
なお、対象ブロックのサブブロックレベルの参照ピクチャは、図8に示す、スライスヘ
ッダで通知された時間方向の予測動きベクトル導出に用いられるインデックス(collocated_ref_idx)で指定された参照ピクチャでもよい。この場合、対象ブロックのサブブロックレベルの参照ピクチャはRefPicListX[collocated_ref_idx]であり、対象ブロックのサ
ブブロックレベルの動きベクトルSpMvLX[k][l]の算出式は下記である。
ッダで通知された時間方向の予測動きベクトル導出に用いられるインデックス(collocated_ref_idx)で指定された参照ピクチャでもよい。この場合、対象ブロックのサブブロックレベルの参照ピクチャはRefPicListX[collocated_ref_idx]であり、対象ブロックのサ
ブブロックレベルの動きベクトルSpMvLX[k][l]の算出式は下記である。
SpMvLX[k][l] = MvScale(SpRefMvLX[k][l], Bref, SpRef[k][l], PCur, RefPicListX[collocated_ref_idx])) (式ATMVP-2)
ステップ4)スケーリング後のサブブロックレベル動きベクトルのクリッピング
インター予測画像生成部309は、スケーリング後のサブブロックレベル動きベクトルをも
とに予測画像を生成する時に、参照ピクチャメモリ306から参照ピクチャの画像データを
転送する。参照画像RefPicListX[refIdxATMVP]上では、スケーリングによって、図9(b)のように、各サブブロックの動きベクトルによるシフト量の差が拡大することがある。図9(c)のように各動きベクトルの差が大きくなると、画像データの転送量が増加し、メモリバンド幅が増加する。メモリバンド幅を増加させないために、参照ピクチャメモリ306から
の画像データの転送量を制限する必要がある。
スケーリング後のサブブロックレベルの動きベクトルspMvLx[k][l]の範囲を計算する。水平および垂直方向のspMvLx[k][l]の最大値をmaxspMvLxx、maxspMvLxy、水平および垂直方向のspMvLx[k][l]の最小値をminspMvLxx、minspMvLxyとする。
ステップ4)スケーリング後のサブブロックレベル動きベクトルのクリッピング
インター予測画像生成部309は、スケーリング後のサブブロックレベル動きベクトルをも
とに予測画像を生成する時に、参照ピクチャメモリ306から参照ピクチャの画像データを
転送する。参照画像RefPicListX[refIdxATMVP]上では、スケーリングによって、図9(b)のように、各サブブロックの動きベクトルによるシフト量の差が拡大することがある。図9(c)のように各動きベクトルの差が大きくなると、画像データの転送量が増加し、メモリバンド幅が増加する。メモリバンド幅を増加させないために、参照ピクチャメモリ306から
の画像データの転送量を制限する必要がある。
スケーリング後のサブブロックレベルの動きベクトルspMvLx[k][l]の範囲を計算する。水平および垂直方向のspMvLx[k][l]の最大値をmaxspMvLxx、maxspMvLxy、水平および垂直方向のspMvLx[k][l]の最小値をminspMvLxx、minspMvLxyとする。
maxspMvLxx = max(spMvLx[k][l][0]) k=0..NBW-1、l=0..NBH-1 (式CLIP1)
maxspMvLxy = max(spMvLx[k][l][1])
minspMvLxx = min(spMvLx[k][l][0])
minspMvLxy = min(spMvLx[k][l][1])
rangeX = maxSpMvLxx-minspMvLxx
rangeY = maxSpMvLxy-minspMvLxy
spMvLx[k][l]の最大値と最小値の差分値が所定値THCLIPを超えた場合、図9(d)に示すように、ブロックレベル動きベクトルBMV(bmv[0],bmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルは、範囲内に入るように動きベクトルを制限(クリッピング)する。
maxspMvLxy = max(spMvLx[k][l][1])
minspMvLxx = min(spMvLx[k][l][0])
minspMvLxy = min(spMvLx[k][l][1])
rangeX = maxSpMvLxx-minspMvLxx
rangeY = maxSpMvLxy-minspMvLxy
spMvLx[k][l]の最大値と最小値の差分値が所定値THCLIPを超えた場合、図9(d)に示すように、ブロックレベル動きベクトルBMV(bmv[0],bmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルは、範囲内に入るように動きベクトルを制限(クリッピング)する。
if (rangeX>THCLIP) (式CLIP2)
spMvLx[k][l][0] = Clip3(bmv[0]-THCLIP/2, bmv[0]+THCLIP/2-1, spMvLx[k][l][0])
if (rangeY>THCLIP)
spMvLx[k][l][1] = Clip3(bmv[1]-THCLIP/2, bmv[1]+THCLIP/2-1, spMvLx[k][l][1])
なお、上記ではブロックレベル動きベクトルBMV(bmv[0],bmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルを、クリッピングの対象にしたが、ブロックレベル動きベクトルBMV(bmv[0],bmv[1])ではなく、サブブロックレベルの動きベクトルの平均値に対し±THCLIP/2の範囲を超えた動きベクトルをクリッピングの対象にしてもよい。
spMvLx[k][l][0] = Clip3(bmv[0]-THCLIP/2, bmv[0]+THCLIP/2-1, spMvLx[k][l][0])
if (rangeY>THCLIP)
spMvLx[k][l][1] = Clip3(bmv[1]-THCLIP/2, bmv[1]+THCLIP/2-1, spMvLx[k][l][1])
なお、上記ではブロックレベル動きベクトルBMV(bmv[0],bmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルを、クリッピングの対象にしたが、ブロックレベル動きベクトルBMV(bmv[0],bmv[1])ではなく、サブブロックレベルの動きベクトルの平均値に対し±THCLIP/2の範囲を超えた動きベクトルをクリッピングの対象にしてもよい。
if (rangeX>THCLIP) (式CLIP3)
spMvLx[k][l][0] = Clip3(avgMV[0]-THCLIP/2, avgMV[0]+THCLIP/2-1, spMvLx[k][l][0])
if (rangeY>THCLIP)
spMvLx[k][l][1] = Clip3(avgMV[1]-THCLIP/2, avgMV[1]+THCLIP/2-1, spMvLx[k][l][1])
ここでavgMV[0]、avgMV[1]はspMvLx[k][l]の水平、垂直成分の平均値である。
spMvLx[k][l][0] = Clip3(avgMV[0]-THCLIP/2, avgMV[0]+THCLIP/2-1, spMvLx[k][l][0])
if (rangeY>THCLIP)
spMvLx[k][l][1] = Clip3(avgMV[1]-THCLIP/2, avgMV[1]+THCLIP/2-1, spMvLx[k][l][1])
ここでavgMV[0]、avgMV[1]はspMvLx[k][l]の水平、垂直成分の平均値である。
ステップ5)ATMVPをマージ候補リストに格納
マージ候補リストに格納するマージ候補の順番の例を図7(a)に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロ
ックのマージ候補が選択される。
マージ候補リストに格納するマージ候補の順番の例を図7(a)に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロ
ックのマージ候補が選択される。
マージ候補としてATMVPが選択された場合、図9(a)に示すように、対象ブロックの各サ
ブブロックからSpMvLX[k][l]シフトした参照ピクチャRefPicListX[refIdxATMVP]上の画像を読み出し、予測画像とする。
ブブロックからSpMvLX[k][l]シフトした参照ピクチャRefPicListX[refIdxATMVP]上の画像を読み出し、予測画像とする。
以上ステップ1)〜ステップ5)で説明したATMVPに関するマージ候補リスト導出処理
を図10のフローチャートで説明する。
を図10のフローチャートで説明する。
時空間サブブロック予測部30371は、対象ブロックの5つの隣接ブロックをサーチする
(S2301)。
(S2301)。
時空間サブブロック予測部30371は、利用可能な最初の隣接ブロックの有無を判定し、
利用可能な隣接ブロックがあればS2303に進み、利用可能な隣接ブロックがなければS2309に進む(S2302)。
利用可能な隣接ブロックがあればS2303に進み、利用可能な隣接ブロックがなければS2309に進む(S2302)。
時空間サブブロック予測部30371は、利用可能な隣接ブロックの有する動きベクトルと
参照ピクチャを、対象ブロックのブロックレベルの動きベクトルBMVと参照ピクチャBRef
として設定する(S2303)。
参照ピクチャを、対象ブロックのブロックレベルの動きベクトルBMVと参照ピクチャBRef
として設定する(S2303)。
時空間サブブロック予測部30371は、対象ブロックのブロックベースの動きベクトルBMVと参照ピクチャBRefを用いて、コロケートブロックのサブブロックベースの動きベクトルSpRefMvLX[k][l]と参照ピクチャSpRef[k][l]を取得する(S2304)。
時空間サブブロック予測部30371は、動きベクトルSpRefMvLX[k][l]と参照ピクチャSpRefを用いて、参照ピクチャをRefPicListX[refIdxATMVP]に設定した時の、対象ブロックの
サブブロックベースの動きベクトルspMvLX[k][l]をスケーリングにより導出する(S2305
)。
サブブロックベースの動きベクトルspMvLX[k][l]をスケーリングにより導出する(S2305
)。
時空間サブブロック予測部30371は、スケーリングによって導出されたサブブロックベ
ースの動きベクトルspMvLX[k][l]が所定値内にあるか否かを判定する。spMvLX[k][l]が所定値内にあればS2308に進み、そうでない場合、S2307に進む(S2306)。
ースの動きベクトルspMvLX[k][l]が所定値内にあるか否かを判定する。spMvLX[k][l]が所定値内にあればS2308に進み、そうでない場合、S2307に進む(S2306)。
動きベクトルspMvLX[k][l]が所定値外の場合、時空間サブブロック予測部30371はspMvLX[k][l]をステップ4)に示す方法でクリッピングする(S2307)。
時空間サブブロック予測部30371は、図7(a)に示すマージ候補リストmergeCandList[]にATMVPの動きベクトルを格納する(S2308)。
時空間サブブロック予測部30371は、マージ候補リストmergeCandList[]にATMVPの動き
ベクトルを格納しない(S2309)。
ベクトルを格納しない(S2309)。
以上の処理により、ATMVPに関するマージ候補リストを導出する。
このようにATMVPにおいて、スケーリング後のサブブロックの動きベクトルの範囲を所
定値以内に制限することによって、メモリバンド幅の増加を防ぐことができる。
定値以内に制限することによって、メモリバンド幅の増加を防ぐことができる。
(STMVP)
STMVPは、図11(a)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(a,b,c,d,…)、および、図11(b)に示す対象ブロックのコロケートブロック(A',B',C',D',…)
の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式である。図11(a)のA,B,C,Dは、対象ブロックを分割したサブブロックの例である。図11(b)のA',B',C',D'は、図11(a)のサブブロックA,B,C,Dのコロケートブロックである。図11(b)のAc',Bc',Cc',Dc'はA',B',C',D'の中心に位置
する領域であり、Abr',Bbr',Cbr',Dbr'はA',B',C',D'の右下に位置する領域である。なお、Abr',Bbr',Cbr',Dbr'は図11(b)に示すA',B',C',D'外の右下位置ではなく、図11(g)に示すA',B',C',D'内の右下位置であってもよい。STMVPは下記の手順で処理する。
STMVPは、図11(a)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(a,b,c,d,…)、および、図11(b)に示す対象ブロックのコロケートブロック(A',B',C',D',…)
の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式である。図11(a)のA,B,C,Dは、対象ブロックを分割したサブブロックの例である。図11(b)のA',B',C',D'は、図11(a)のサブブロックA,B,C,Dのコロケートブロックである。図11(b)のAc',Bc',Cc',Dc'はA',B',C',D'の中心に位置
する領域であり、Abr',Bbr',Cbr',Dbr'はA',B',C',D'の右下に位置する領域である。なお、Abr',Bbr',Cbr',Dbr'は図11(b)に示すA',B',C',D'外の右下位置ではなく、図11(g)に示すA',B',C',D'内の右下位置であってもよい。STMVPは下記の手順で処理する。
ステップ1)対象ブロックをサブブロックに分割し、サブブロックAの上側隣接ブロッ
クから右方向に、利用可能(available)な最初のブロックを求める。利用可能な隣接ブ
ロックが見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャをSTMVPの上側ベクトルmvA_aboveと参照ピクチャRefA_aboveとし、カウントcnt=1とする。利
用可能な隣接ブロックがない場合、カウントcnt=0とする。
クから右方向に、利用可能(available)な最初のブロックを求める。利用可能な隣接ブ
ロックが見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャをSTMVPの上側ベクトルmvA_aboveと参照ピクチャRefA_aboveとし、カウントcnt=1とする。利
用可能な隣接ブロックがない場合、カウントcnt=0とする。
ステップ2)サブブロックAの左側隣接ブロックbから下方向に、利用可能な最初のブロックを求める。利用可能な隣接ブロックが見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャを左側ベクトルmvA_leftと参照ピクチャRefA_leftとし、カ
ウントcntを1インクリメントする。利用可能な隣接ブロックがない場合、カウントcntを
更新しない。
ウントcntを1インクリメントする。利用可能な隣接ブロックがない場合、カウントcntを
更新しない。
ステップ3)サブブロックAのコロケートブロックA'において、右下位置A'brおよびA'cの順に利用可能か否かをチェックする。利用可能な領域が見つかった場合、そのブロックが有する最初の動きベクトルと参照ピクチャをコロケートベクトルmvA_colと参照ピクチ
ャRefA_colとし、カウントを1インクリメントする。利用可能なブロックがない場合、カ
ウントcntを更新しない。
ャRefA_colとし、カウントを1インクリメントする。利用可能なブロックがない場合、カ
ウントcntを更新しない。
ステップ4)cnt=0(利用可能な動きベクトルが1つもない)の場合、STMVPをオフにし、処理を終了する。
ステップ5)ctnが0でない場合、対象ピクチャPCurと、対象ブロックの参照ピクチャRefPicListX[collocated_ref_idx]との時間情報を用いて、ステップ1)〜ステップ3)で
求めた利用可能な動きベクトルをスケーリングする。スケーリング後の動きベクトルをsmvA_above,smvA_left,smvA_colとする。
求めた利用可能な動きベクトルをスケーリングする。スケーリング後の動きベクトルをsmvA_above,smvA_left,smvA_colとする。
smvA_above = MvScale(mvA_above, PCur, RefA_above, PCur, RefPicListX[collocated_ref_idx])) (式STMVP-1)
smvA_left = MvScale(mvA_left, PCur, RefA_left, PCur, RefPicListX[collocated_ref_idx]))
smvA_col = MvScale(mvA_col, PCur, RefA_col, PCur, RefPicListX[collocated_ref_idx]))
利用可能でない動きベクトルは0にセットする。
smvA_left = MvScale(mvA_left, PCur, RefA_left, PCur, RefPicListX[collocated_ref_idx]))
smvA_col = MvScale(mvA_col, PCur, RefA_col, PCur, RefPicListX[collocated_ref_idx]))
利用可能でない動きベクトルは0にセットする。
ステップ6)smvA_above,smvA_left,smvA_colの平均を算出し、サブブロックAの動きベクトルspMvLX[A]としてセットする。サブブロックAの参照ピクチャはRefPicListX[collocated_ref_idx]である。
spMvLX[A] = (smvA_above+smvA_left+smvA_col)/cnt (式STMVP-2)
整数演算のために例えば、以下のように導出しても良い。Cntが2の場合、2つのベクト
ルを順にmvA_cnt0, mvA_cnt1と記載すると、以下の式で導出してもよい。
整数演算のために例えば、以下のように導出しても良い。Cntが2の場合、2つのベクト
ルを順にmvA_cnt0, mvA_cnt1と記載すると、以下の式で導出してもよい。
spMvLX[A] = (smvA_cnt0+smvA_cnt1)>>1
cntが3の場合、以下の式で導出してもよい。
cntが3の場合、以下の式で導出してもよい。
spMvLX[A] = (5*smvA_above+5*smvA_1eft+6*smvA_col)>>4
ステップ6)上記ステップ1)〜ステップ5)の処理をサブブロックB,C,D等、対象ブ
ロックの各サブブロックに対して実行し、図11(d)、(e)、(f)のようにサブブロックの動
きベクトルを求める。ただし、サブブロックBでは、上側隣接ブロックはdから右方向にサ
ーチする。サブブロックCでは、上側隣接ブロックはAであり、左側隣接ブロックはaから
下方向にサーチする。サブブロックDでは、上側隣接ブロックはBであり、左側隣接ブロックはCである。
ステップ6)上記ステップ1)〜ステップ5)の処理をサブブロックB,C,D等、対象ブ
ロックの各サブブロックに対して実行し、図11(d)、(e)、(f)のようにサブブロックの動
きベクトルを求める。ただし、サブブロックBでは、上側隣接ブロックはdから右方向にサ
ーチする。サブブロックCでは、上側隣接ブロックはAであり、左側隣接ブロックはaから
下方向にサーチする。サブブロックDでは、上側隣接ブロックはBであり、左側隣接ブロックはCである。
ステップ7)サブブロックレベル動きベクトルのクリッピング
ATMVPのステップ4)と同様、メモリバンド幅を増加させないために、サブブロックレ
ベル動きベクトルspMvLx[]を制限する。
ATMVPのステップ4)と同様、メモリバンド幅を増加させないために、サブブロックレ
ベル動きベクトルspMvLx[]を制限する。
スケーリング後のサブブロックレベル動きベクトルspMvLx[]の範囲を計算する。水平および垂直方向のspMvLx[]の最大値をmaxspMvLxx、maxspMvLxy、水平および垂直方向のspMvLx[A]の最小値をminspMvLxx、minspMvLxyとする。
maxspMvLxx = max(spMvLx[k][0]) k=A,B,C,D,... (式CLIP4)
maxspMvLxy = max(spMvLx[k][1])
minspMvLxx = min(spMvLx[k][0])
minspMvLxy = min(spMvLx[k][1])
rangeX = maxSpMvLxx-minspMvLxx
rangeY = maxSpMvLxy-minspMvLxy
spMvLx[k]の最大値と最小値の差分値が所定値THCLIPを超えた場合、サブブロックレベル
動きベクトルの平均値avgMV(avgmv[0],avgmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルは、範囲内に入るように動きベクトルを制限(クリッピング)する。
maxspMvLxy = max(spMvLx[k][1])
minspMvLxx = min(spMvLx[k][0])
minspMvLxy = min(spMvLx[k][1])
rangeX = maxSpMvLxx-minspMvLxx
rangeY = maxSpMvLxy-minspMvLxy
spMvLx[k]の最大値と最小値の差分値が所定値THCLIPを超えた場合、サブブロックレベル
動きベクトルの平均値avgMV(avgmv[0],avgmv[1])に対し±THCLIP/2の範囲を超えた動きベクトルは、範囲内に入るように動きベクトルを制限(クリッピング)する。
if (rangeX>THCLIP) (式CLIP5)
spMvLx[k][0] = Clip3(avgmv[0]-THCLIP/2,avgmv[0]+THCLIP/2-1,spMvLx[k][0])
if (rangeY>THCLIP)
spMvLx[k][1] = Clip3(avgmv[1]-THCLIP/2,avgmv[1]+THCLIP/2-1,spMvLx[k][1])
ここでavgMV[0]、avgMV[1]はspMvLx[l]の水平、垂直成分の各平均値である。
spMvLx[k][0] = Clip3(avgmv[0]-THCLIP/2,avgmv[0]+THCLIP/2-1,spMvLx[k][0])
if (rangeY>THCLIP)
spMvLx[k][1] = Clip3(avgmv[1]-THCLIP/2,avgmv[1]+THCLIP/2-1,spMvLx[k][1])
ここでavgMV[0]、avgMV[1]はspMvLx[l]の水平、垂直成分の各平均値である。
ステップ8)マージ候補リストにSTMVPの動きベクトルを格納する。マージ候補リスト
に格納するマージ候補の順番を図7(a)に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選択
される。
に格納するマージ候補の順番を図7(a)に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選択
される。
マージ候補としてSTMVPが選択された場合、対象ブロックの各サブブロックから動きベ
クトル分シフトした参照ピクチャRefPicListX[collocated_ref_idx]上の画像を読み出し
、予測画像とする。
クトル分シフトした参照ピクチャRefPicListX[collocated_ref_idx]上の画像を読み出し
、予測画像とする。
以上ステップ1)〜ステップ8)で説明したSTMVPに関するマージ候補リスト導出処理
を図12のフローチャートで説明する。
を図12のフローチャートで説明する。
時空間サブブロック予測部30371は、対象ブロックをサブブロックに分割する(S2601)。
時空間サブブロック予測部30371は、サブブロックの上側、左側、時間方向の隣接ブロ
ックをサーチする(S2602)。
ックをサーチする(S2602)。
時空間サブブロック予測部30371は、利用可能な隣接ブロックの有無を判定し、利用可
能な隣接ブロックがあればS2604に進み、利用可能な隣接ブロックが1個もなければS2610に進む(S2603)。
能な隣接ブロックがあればS2604に進み、利用可能な隣接ブロックが1個もなければS2610に進む(S2603)。
時空間サブブロック予測部30371は、対象ピクチャと複数の隣接ブロックの参照ピクチ
ャ間の時間的な距離に応じて、利用可能な隣接ブロックの有する動きベクトルをスケーリングする(S2604)。
ャ間の時間的な距離に応じて、利用可能な隣接ブロックの有する動きベクトルをスケーリングする(S2604)。
時空間サブブロック予測部30371は、スケーリングした動きベクトルの平均値を算出し
、対象サブブロックの動きベクトルspMvLX[]としてセットする(S2605)。
、対象サブブロックの動きベクトルspMvLX[]としてセットする(S2605)。
時空間サブブロック予測部30371は、処理中のサブブロックが対象ブロックの最後のサ
ブブロックか否かをチェックし(S2606)、最後のサブブロックであればS2607に進み、そうでなければ、処理対象を次のサブブロックに移してS2602に進み(S2611)、S2602〜S2605を繰り返し処理する。
ブブロックか否かをチェックし(S2606)、最後のサブブロックであればS2607に進み、そうでなければ、処理対象を次のサブブロックに移してS2602に進み(S2611)、S2602〜S2605を繰り返し処理する。
時空間サブブロック予測部30371は、導出されたサブブロックベースの動きベクトルspMvLX[]が所定値内にあるか否かを判定する。spMvLX[]が所定値内にあればS2609に進み、そうでなければS2608に進む(S2607)。
動きベクトルspMvLX[]が所定値外の場合、時空間サブブロック予測部30371はステップ
7)の方法で動きベクトルspMvLX[]をクリッピングする(S2608)。
7)の方法で動きベクトルspMvLX[]をクリッピングする(S2608)。
時空間サブブロック予測部30371は、図7(a)に示すマージ候補リストmergeCandList[]にSTMVPの動きベクトルを格納する(S2609)。
時空間サブブロック予測部30371は、利用可能な動きベクトルがない場合、マージ候補
リストmergeCandList[]にSTMVPの動きベクトルを格納せず、処理を終了する(S2610)。
リストmergeCandList[]にSTMVPの動きベクトルを格納せず、処理を終了する(S2610)。
以上の処理により、STMVPに関するマージ候補リストを導出する。
このようにSTMVPにおいて、スケーリング後のサブブロックの動きベクトルの範囲を所
定値以内に制限することによって、メモリバンド幅の増加を防ぐことができる。
定値以内に制限することによって、メモリバンド幅の増加を防ぐことができる。
(アフィン予測部)
アフィン予測部30372、30321は、対象ブロックのアフィン予測パラメータを導出する。本実施形態では、アフィン予測パラメータとして、対象ブロックの2つの制御点(V0、V1)の動きベクトル(mv0_x, mv0_y)(mv1_x, mv1_y)を導出する。具体的には、隣接ブロックの動きベクトルから予測することにより、各制御点の動きベクトルを導出してもよいし(アフィン予測部30372)、制御点の動きベクトルとして導出された予測ベクトルと符
号化データから導出される差分ベクトルの和により、各制御点の動きベクトルを導出してもよい(アフィン予測部30321)。
アフィン予測部30372、30321は、対象ブロックのアフィン予測パラメータを導出する。本実施形態では、アフィン予測パラメータとして、対象ブロックの2つの制御点(V0、V1)の動きベクトル(mv0_x, mv0_y)(mv1_x, mv1_y)を導出する。具体的には、隣接ブロックの動きベクトルから予測することにより、各制御点の動きベクトルを導出してもよいし(アフィン予測部30372)、制御点の動きベクトルとして導出された予測ベクトルと符
号化データから導出される差分ベクトルの和により、各制御点の動きベクトルを導出してもよい(アフィン予測部30321)。
(サブブロックの動きベクトル導出処理)
以下、更に具体的な実施構成の例として、アフィン予測部30372、30321がアフィン予測を用いて、各サブブロックの動きベクトルmvLXを導出する処理の流れを、ステップに分けて説明する。アフィン予測部30372、30321がアフィン予測を用いて、対象サブブロックの動きベクトルmvLXを導出する処理は、下記(STEP1)〜(STEP3)の3つの工程を含んでいる。
以下、更に具体的な実施構成の例として、アフィン予測部30372、30321がアフィン予測を用いて、各サブブロックの動きベクトルmvLXを導出する処理の流れを、ステップに分けて説明する。アフィン予測部30372、30321がアフィン予測を用いて、対象サブブロックの動きベクトルmvLXを導出する処理は、下記(STEP1)〜(STEP3)の3つの工程を含んでいる。
(STEP1)制御点ベクトルの導出
アフィン予測部30372、30321は、候補を導出するためのアフィン予測に用いる2つの制御点として、対象ブロックの代表点(ここではブロックの左上の点V0及びブロックの右上の点V1)の各々の動きベクトルを導出する。なお、ブロックの代表点は、対象ブロック上の点を用いる。本明細書では、アフィン予測の制御点に用いるブロックの代表点を「ブロック制御点」と記載する。
アフィン予測部30372、30321は、候補を導出するためのアフィン予測に用いる2つの制御点として、対象ブロックの代表点(ここではブロックの左上の点V0及びブロックの右上の点V1)の各々の動きベクトルを導出する。なお、ブロックの代表点は、対象ブロック上の点を用いる。本明細書では、アフィン予測の制御点に用いるブロックの代表点を「ブロック制御点」と記載する。
まず、AMVPモード及びマージモードの(STEP1)の処理について、図13を用いて各々説明
する。図13は、AMVPモード及びマージモードにおける制御点の動きベクトルの導出のために利用される参照ブロックの位置の例を示す図である。
する。図13は、AMVPモード及びマージモードにおける制御点の動きベクトルの導出のために利用される参照ブロックの位置の例を示す図である。
(AMVPモードにおける制御点の動きベクトルの導出)
アフィン予測部30321は、図13(a)に示す2つの制御点(V0、V1)、あるいは、図13(b)
に示す2つの制御点(V0、V2)の予測ベクトルmvpVNLXと差分ベクトルを加算して、各々
動きベクトルmvN=(mvN_x,mvN_y)を導出する。Nは制御点を表す。
アフィン予測部30321は、図13(a)に示す2つの制御点(V0、V1)、あるいは、図13(b)
に示す2つの制御点(V0、V2)の予測ベクトルmvpVNLXと差分ベクトルを加算して、各々
動きベクトルmvN=(mvN_x,mvN_y)を導出する。Nは制御点を表す。
(マージモードにおける制御点の動きベクトルの導出)
アフィン予測部30372は、図13(c)に示すようなL、A、AR、LB、ALを含むブロックに対し、予測パラメータメモリ307を参照し、アフィン予測が利用されているか否かをチェック
する。ブロックL、A、AR、LB、ALの順にサーチし、最初に見つかったアフィン予測を利用するブロック(ここでは図13(c)のLとする)を参照ブロック(マージ参照ブロック)として選択し、動きベクトルを導出する。
アフィン予測部30372は、図13(c)に示すようなL、A、AR、LB、ALを含むブロックに対し、予測パラメータメモリ307を参照し、アフィン予測が利用されているか否かをチェック
する。ブロックL、A、AR、LB、ALの順にサーチし、最初に見つかったアフィン予測を利用するブロック(ここでは図13(c)のLとする)を参照ブロック(マージ参照ブロック)として選択し、動きベクトルを導出する。
アフィン予測部30372は、選択されたマージ参照ブロックの3点(図13(d)の点v0、点v1、点v2)を含むブロックの動きベクトル(mvvN_x,mvvN_y)(N=0..2)から、制御点(例えばV0、V1)の動きベクトル(mvN_x,mvN_y)(N=0..1)を導出する。
(STEP2)サブブロックベクトルの導出
アフィン予測部30372、30321は、(STEP1)で導出された対象ブロックの代表点であるブ
ロック制御点(制御点V0とV1、あるいは、V0とV2)の動きベクトルから、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。(STEP1)と(STEP2)によって、各サブブロックの動きベクトルspMvLXが導出される。なお、以下では制御点V0とV1の例を説明するが、V1の動きベクトルをV2の動きベクトルに置き換えれば、制御点V0とV2でも同様の処理で、各サブブロックの動きベクトルを導出することができる。
アフィン予測部30372、30321は、(STEP1)で導出された対象ブロックの代表点であるブ
ロック制御点(制御点V0とV1、あるいは、V0とV2)の動きベクトルから、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。(STEP1)と(STEP2)によって、各サブブロックの動きベクトルspMvLXが導出される。なお、以下では制御点V0とV1の例を説明するが、V1の動きベクトルをV2の動きベクトルに置き換えれば、制御点V0とV2でも同様の処理で、各サブブロックの動きベクトルを導出することができる。
図14(a)は、対象ブロックを構成する各サブブロックの動きベクトルspMvLXを、制御点
V0の動きベクトルmv0(mv0_x, mv0_y)およびV1の動きベクトルmv1(mv1_x, mv1_y)から導出する例を示す図である。各サブブロックの動きベクトルspMvLXは、図14(a)に示すよ
うに、各サブブロックの中心に位置する点毎の動きベクトルとして導出する。
V0の動きベクトルmv0(mv0_x, mv0_y)およびV1の動きベクトルmv1(mv1_x, mv1_y)から導出する例を示す図である。各サブブロックの動きベクトルspMvLXは、図14(a)に示すよ
うに、各サブブロックの中心に位置する点毎の動きベクトルとして導出する。
アフィン予測部30372、30321は制御点V0とV1の動きベクトル(mv0_x,mv0_y)、(mv1_x,mv1_y)に基づいて、対象ブロック中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi=xb+BW*i、yj=yb+BH*j、i=0,1,2,・・・,W/BW-1、j=0,1,2,・・・,H/BH-1)を導出する。
(STEP3)サブブロック動き補償
動き補償部3091は、インター予測パラメータ復号部303から入力された、予測リスト利
用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、(STEP2)で導出したサブブロ
ックの動きベクトルspMvLXに基づいて、サブブロック単位の動き補償を行う。具体的には、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピ
クチャ上の、対象サブブロックの位置を起点として、動きベクトルspMvLXだけシフトした位置にあるブロックを読み出しフィルタリングすることによって、動き補償画像PredLXを生成する。
動き補償部3091は、インター予測パラメータ復号部303から入力された、予測リスト利
用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、(STEP2)で導出したサブブロ
ックの動きベクトルspMvLXに基づいて、サブブロック単位の動き補償を行う。具体的には、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピ
クチャ上の、対象サブブロックの位置を起点として、動きベクトルspMvLXだけシフトした位置にあるブロックを読み出しフィルタリングすることによって、動き補償画像PredLXを生成する。
(マッチング動き導出部30373)
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチン
グの何れかのマッチング処理を行うことにより、ブロック又はサブブロックの動きベクト
ルspMvLXを導出する。図15は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための図である。マッチング
動き導出モードは、マージモードの一つのマージ候補(マッチング候補)として選択される。
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチン
グの何れかのマッチング処理を行うことにより、ブロック又はサブブロックの動きベクト
ルspMvLXを導出する。図15は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための図である。マッチング
動き導出モードは、マージモードの一つのマージ候補(マッチング候補)として選択される。
マッチング動き導出部30373は、物体が等速運動をすると仮定して、複数の参照ピクチ
ャにおける領域のマッチングにより動きベクトルを導出する。バイラテラルマッチングでは、ある物体が、参照ピクチャAのある領域、対象ピクチャCur_Picの対象ブロック、参
照ピクチャBのある領域を等速運動で通過するものと仮定して、参照ピクチャA、B間のマッチングにより対象ブロックの動きベクトルを導出する。テンプレートマッチングでは、対象ブロックの隣接領域の動きベクトルと対象ブロックの動きベクトルが等しいと仮定して、対象ブロックの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0のマッチングにより動きベクトルを導出する。マッチング動き導出
部では、対象ブロックを複数のサブブロックに分割し、分割したサブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングを行うことにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+BW*i、yj=yPb+BH*j、i=0,1,2,・・・,W/BW-1、j=0,1,2,・・・,H/BH-1)を導出する。
ャにおける領域のマッチングにより動きベクトルを導出する。バイラテラルマッチングでは、ある物体が、参照ピクチャAのある領域、対象ピクチャCur_Picの対象ブロック、参
照ピクチャBのある領域を等速運動で通過するものと仮定して、参照ピクチャA、B間のマッチングにより対象ブロックの動きベクトルを導出する。テンプレートマッチングでは、対象ブロックの隣接領域の動きベクトルと対象ブロックの動きベクトルが等しいと仮定して、対象ブロックの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0のマッチングにより動きベクトルを導出する。マッチング動き導出
部では、対象ブロックを複数のサブブロックに分割し、分割したサブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングを行うことにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi=xPb+BW*i、yj=yPb+BH*j、i=0,1,2,・・・,W/BW-1、j=0,1,2,・・・,H/BH-1)を導出する。
図15(a)に示すように、バイラテラルマッチングでは、対象ピクチャCur_Picにおける対象ブロックCur_blockの動きベクトルを導出するために、2枚の参照ピクチャが参照され
る。より具体的には、まず、対象ブロックCur_blockの座標を(xCur,yCur)と表現したとき、参照ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0(参照ピクチャA)内の領域であって、
(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1]) (式FRUC-1)
によって特定される左上座標(xPos0,yPos0)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャB)内の領域であって、
(xPos1,yPos1)=(xCur+mv1[0],xCur+mv1[1]) =(xCur-mv0[0]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0), yCur-mv0[1]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0)) (式FRUC-2)
によって特定される左上座標(xPos1,yPos1)を有するBlock_Bとが設定される。ここで、DiffPicOrderCnt(Cur_Pic,Ref0)、及びDiffPicOrderCnt(Cur_Pic,Ref1)は、図15(a)に示
すように、それぞれ、対象ピクチャCur_Picと参照ピクチャAとの時間情報の差を返す関
数、及び対象ピクチャCur_Picと参照ピクチャBとの時間情報の差を返す関数を表してい
る。
る。より具体的には、まず、対象ブロックCur_blockの座標を(xCur,yCur)と表現したとき、参照ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0(参照ピクチャA)内の領域であって、
(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1]) (式FRUC-1)
によって特定される左上座標(xPos0,yPos0)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャB)内の領域であって、
(xPos1,yPos1)=(xCur+mv1[0],xCur+mv1[1]) =(xCur-mv0[0]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0), yCur-mv0[1]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0)) (式FRUC-2)
によって特定される左上座標(xPos1,yPos1)を有するBlock_Bとが設定される。ここで、DiffPicOrderCnt(Cur_Pic,Ref0)、及びDiffPicOrderCnt(Cur_Pic,Ref1)は、図15(a)に示
すように、それぞれ、対象ピクチャCur_Picと参照ピクチャAとの時間情報の差を返す関
数、及び対象ピクチャCur_Picと参照ピクチャBとの時間情報の差を返す関数を表してい
る。
次に、Block_AとBlock_Bとのマッチングコストが最小となるように、(mv0[0],mv0[1]
)が決定される。このようにして導出された(mv0[0],mv0[1])が、対象ブロックに付与
される動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMVL0を導出する。
)が決定される。このようにして導出された(mv0[0],mv0[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候補、マージ候補等の隣接ブロックの動きベクトルを初期ベクトル候補として、対象ブロックにおける初期ベクトルを導出する。(mv0
[0],mv0[1])に初期ベクトル候補を代入し、マッチングコストが最小となる動きベクトル
をブロックレベルの初期ベクトルとし、再度(mv0[0],mv0[1])にセットする(初期ベクト
ルサーチ)。
[0],mv0[1])に初期ベクトル候補を代入し、マッチングコストが最小となる動きベクトル
をブロックレベルの初期ベクトルとし、再度(mv0[0],mv0[1])にセットする(初期ベクト
ルサーチ)。
次に、対象ブロックにおけるブロックレベルのローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを、最終的な対象ブロックのブロックレベルの動きベクトルとする。
続いて、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。まず、各サブブロックの初期ベクトルを導出する(初期ベクトルサーチ)。サブブロックの初期ベクトル候補は、上述のブロックレベルの動きベクトル、各サブブロックの時空間方向の隣接ブロックの動きベクトル、当該サブブロックのATMVPあるいはSTMVPベクトル等である。これらの候補ベクトルの中から、マッチングコストが最小となる動きベクトルをサブブロック毎に求め、各サブブロックの初期ベクトルとする。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
次に、サブブロックの初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)で、ステップサーチ等(ローカルサーチ)を行う。そして、サブブロックのベクトル候補のマッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
一方、図15(b)は、上記マッチング処理のうち、テンプレートマッチング(Template matching)について説明するための図である。
図15(b)に示すように、テンプレートマッチングでは、対象ピクチャCur_Picにおける対象ブロックCur_blockの動きベクトルを導出するために、一度に1枚の参照ピクチャが参
照される。
照される。
より具体的には、例えば参照ピクチャインデックスrefIdxL0によって指定される参照ピクチャRef0(参照ピクチャAと呼ぶ)内の領域であって、
(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1]) (式FRUC-4)
によって特定される左上座標(xPos0,yPos0)を有する参照ブロックBlock_Aが特定される。
(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1]) (式FRUC-4)
によって特定される左上座標(xPos0,yPos0)を有する参照ブロックBlock_Aが特定される。
次に、対象ピクチャCur_Picにおいて対象ブロックCur_blockに隣接したテンプレート領域Temp_Curと、参照ピクチャAにおいてBlock_Aに隣接したテンプレート領域Temp_L0とが設定される。図15(b)に示す例において、テンプレート領域Temp_Curは、対象ブロックCur_blockの上側に隣接する領域及び対象ブロックCur_blockの左側に隣接する領域とから構
成されている。また、テンプレート領域Temp_L0は、Block_Aの上側に隣接する領域及びBlock_Aの左側に隣接する領域とから構成されている。図15(c)に示すように、Temp_Curに対象ブロックの上隣接領域と左隣接領域をセットし、対象ブロックのテンプレートを取得する。
成されている。また、テンプレート領域Temp_L0は、Block_Aの上側に隣接する領域及びBlock_Aの左側に隣接する領域とから構成されている。図15(c)に示すように、Temp_Curに対象ブロックの上隣接領域と左隣接領域をセットし、対象ブロックのテンプレートを取得する。
このテンプレートを用いてバイラテラルマッチングと同様、対象ブロックにおけるブロックレベルの初期ベクトルを導出する。テンプレートマッチングのマッチングコストは、例えば下式のように表される。
SAD = ΣΣabs(Temp_Cur[x][y]-Temp_L0[x][y]) (式FRUC-5)
ここで、ΣΣはxおよびyについての和であり、Temp_L0[][]は、図15(b)に示す対象ブロッ
クのテンプレートであり、(式FRUC-4)で示される(xPos0,yPos0)を左上座標とするBlock_Aの上側および左側に隣接する領域である。(式FRUC-4)の(mv0[0],mv0[1])には初期ベク
トル候補を代入する。その中でマッチングコストが最小となるベクトルを初期ベクトルとして、(mv0[0],mv0[1])に再度セットする。次に、対象ブロックにおけるブロックレベル
のローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとする。
ここで、ΣΣはxおよびyについての和であり、Temp_L0[][]は、図15(b)に示す対象ブロッ
クのテンプレートであり、(式FRUC-4)で示される(xPos0,yPos0)を左上座標とするBlock_Aの上側および左側に隣接する領域である。(式FRUC-4)の(mv0[0],mv0[1])には初期ベク
トル候補を代入する。その中でマッチングコストが最小となるベクトルを初期ベクトルとして、(mv0[0],mv0[1])に再度セットする。次に、対象ブロックにおけるブロックレベル
のローカルサーチ(局所的探索)を行う。ローカルサーチでは、初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)をさらにサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの動きベクトルとする。
続いて、対象ブロックに含まれる各サブブロックの動きベクトルを導出する。図15(d)
に示すように、対象ブロックにおけるサブブロックのテンプレートを取得する。ブロックレベルにおいて、テンプレートに対象ブロックの上側あるいは左側領域のみセットした場合、サブブロックのテンプレートも同じ形状にする。ブロックレベルの動きベクトル、当該サブブロックの時空間方向の隣接ブロックの動きベクトル、当該サブブロックのATMVP
あるいはSTMVPベクトル等を初期ベクトル候補として、マッチングコストが最小となる動
きベクトルを各サブブロックの初期ベクトルに決定する(初期ベクトルサーチ)。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
に示すように、対象ブロックにおけるサブブロックのテンプレートを取得する。ブロックレベルにおいて、テンプレートに対象ブロックの上側あるいは左側領域のみセットした場合、サブブロックのテンプレートも同じ形状にする。ブロックレベルの動きベクトル、当該サブブロックの時空間方向の隣接ブロックの動きベクトル、当該サブブロックのATMVP
あるいはSTMVPベクトル等を初期ベクトル候補として、マッチングコストが最小となる動
きベクトルを各サブブロックの初期ベクトルに決定する(初期ベクトルサーチ)。なお、サブブロックの初期ベクトルサーチに利用するベクトル候補は上述のベクトルに限定されない。
次に、サブブロックの初期ベクトルを中心とする局所領域(例えば初期ベクトルを中心とする±SR画素の領域)で、ステップサーチ等(ローカルサーチ)を行う。そして、サブブロックの初期ベクトル付近のベクトル候補のマッチングコストを導出し、最小となるベクトルをサブブロックの動きベクトルとして導出する。
また、テンプレートマッチングでも、2枚の参照ピクチャRef0、Ref1に対して処理してもよい。この場合、上記に説明した参照ピクチャRef0のマッチングと参照ピクチャRef1のマッチングを順に行う。参照ピクチャインデックスrefIdxL1によって指定される参照ピクチャRef1(参照ピクチャBと呼ぶ)内の領域であって、
(xPos1,yPos1)=(xCur+mv1[0], yCur+mv1[1]) (式FRUC-6)
によって特定される左上座標(xPos1, yPos1)を有する参照ブロックBlock_Bが特定され
、参照ピクチャBにおいてBlock_Bに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTemp_L1とのマッチングコストが最小になる(mv1[0],mv1[1])が決定され、対象ブロックに付与される動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMvL1を導出する。
(xPos1,yPos1)=(xCur+mv1[0], yCur+mv1[1]) (式FRUC-6)
によって特定される左上座標(xPos1, yPos1)を有する参照ブロックBlock_Bが特定され
、参照ピクチャBにおいてBlock_Bに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTemp_L1とのマッチングコストが最小になる(mv1[0],mv1[1])が決定され、対象ブロックに付与される動きベクトルとなる。この対象ブロックに付与された動きベクトルをもとに、対象ブロックを分割したサブブロック毎に動きベクトルspMvL1を導出する。
(メモリバンド制約)
上記のように、マッチング予測部30373は対象ブロック、およびサブブロックにおいて
各々初期ベクトルサーチとローカルサーチを実施する。サーチには参照ピクチャメモリ306からの参照ピクチャの読み出しが必要であり、読み出す参照ピクチャの領域が大きい場
合、転送するデータ量、つまりメモリバンド幅も大きくなる。
上記のように、マッチング予測部30373は対象ブロック、およびサブブロックにおいて
各々初期ベクトルサーチとローカルサーチを実施する。サーチには参照ピクチャメモリ306からの参照ピクチャの読み出しが必要であり、読み出す参照ピクチャの領域が大きい場
合、転送するデータ量、つまりメモリバンド幅も大きくなる。
メモリバンド幅は、対象ブロックのサイズ(幅W、高さH)、サーチレンジSR、補間画像生成に使用するフィルタのタップ数NTAPによって一意に決まる。従って、対象ブロックのサイズ、サーチレンジ、フィルタのタップ数を適応的に変更することで、所定のメモリバンド幅MBCの範囲内でサーチを実施することができる。対象ブロックのサイズ、サーチレ
ンジ、フィルタのタップ数の適応的な変更方法を以下で説明する。
ンジ、フィルタのタップ数の適応的な変更方法を以下で説明する。
・適応的変更方法1:ブロックサイズに応じたサーチレンジ変更
所定のメモリバンド幅BCにおいて、図16(a-2)のように、所定のブロックサイズ(幅WC、
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSRC内
のサーチが可能であるとする。図16(a-1)のように、タップ数を変更せず、ブロックサイ
ズを(幅WV、高さHV)に変更すると、サーチレンジSRVは下式で表すことができる。
所定のメモリバンド幅BCにおいて、図16(a-2)のように、所定のブロックサイズ(幅WC、
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSRC内
のサーチが可能であるとする。図16(a-1)のように、タップ数を変更せず、ブロックサイ
ズを(幅WV、高さHV)に変更すると、サーチレンジSRVは下式で表すことができる。
WV*(2*SRC+NTAPC-1) >= WC(2*SRV+NTAPC-1) (式MB-1)
HV*(2*SRC+NTAPC-1) >= HC(2*SRV+NTAPC-1)
例えばWC=HC=4、NTAPC=3の場合、下式が成立する。
HV*(2*SRC+NTAPC-1) >= HC(2*SRV+NTAPC-1)
例えばWC=HC=4、NTAPC=3の場合、下式が成立する。
SRV <= WV*(SRC+1)/4-1 (式MB-2)
SRV <= HV*(SRC+1)/4-1
図17(a)に、ブロックサイズ(WV、HV)が8x8、16x16、32x32の場合にSRVの取りうる値を示す。図17(a)からブロックサイズが8x8、16x16、32x32に取りうるサーチレンジSRVはブロ
ックサイズが4x4の場合のサーチレンジSRCの約2倍、4倍、8倍である。つまり4x4に対するブロックサイズ(WV,HV)の比以下にサーチレンジを設定することにより、所定のメモリバ
ンド幅以内でデータを転送することができる。
SRV <= HV*(SRC+1)/4-1
図17(a)に、ブロックサイズ(WV、HV)が8x8、16x16、32x32の場合にSRVの取りうる値を示す。図17(a)からブロックサイズが8x8、16x16、32x32に取りうるサーチレンジSRVはブロ
ックサイズが4x4の場合のサーチレンジSRCの約2倍、4倍、8倍である。つまり4x4に対するブロックサイズ(WV,HV)の比以下にサーチレンジを設定することにより、所定のメモリバ
ンド幅以内でデータを転送することができる。
つまり、マッチング予測部30373は、所定のメモリバンド幅を満たす所定のブロックサ
イズとサーチレンジをもとに、ブロックサイズを変更した場合のサーチレンジを算出する場合、所定のブロックサイズと変更したブロックサイズとの比以下にサーチレンジを設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
イズとサーチレンジをもとに、ブロックサイズを変更した場合のサーチレンジを算出する場合、所定のブロックサイズと変更したブロックサイズとの比以下にサーチレンジを設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
・適応的変更方法2:ブロックサイズに応じたフィルタのタップ数変更
所定のメモリバンド幅BCにおいて、図16(a-2)のように、所定のブロックサイズ(幅WC、
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSR内
のサーチが可能であるとする。図16(b-1)のように、サーチレンジを変更せず、ブロック
サイズを(幅WV、高さHV)に変更すると、フィルタタップ数NTAPCは下式で表すことがで
きる。
所定のメモリバンド幅BCにおいて、図16(a-2)のように、所定のブロックサイズ(幅WC、
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSR内
のサーチが可能であるとする。図16(b-1)のように、サーチレンジを変更せず、ブロック
サイズを(幅WV、高さHV)に変更すると、フィルタタップ数NTAPCは下式で表すことがで
きる。
WV*(2*SR+NTAPC-1) >= WC(2*SR+NTAPV-1) (式MB-3)
HV*(2*SR+NTAPC-1) >= HC(2*SR+NTAPV-1)
例えばWC=HC=4、SR=1の場合、下式が成立する。
HV*(2*SR+NTAPC-1) >= HC(2*SR+NTAPV-1)
例えばWC=HC=4、SR=1の場合、下式が成立する。
NTAPV <= WV*(NTAPC+1)/4-1 (式MB-4)
NTAPV <= HV*(NTAPC+1)/4-1
図17(b)に、ブロックサイズ(WV、HV)が8x8、16x16、32x32の場合にNTAPVの取りうる値を示す。図17(b)からブロックサイズが8x8、16x16、32x32に取りうるフィルタタップ数NTAPVはブロックサイズが4x4の場合のフィルタタップ数NTAPCの約2倍、4倍、8倍である。つまり4x4に対するブロックサイズ(WV,HV)の比以下にフィルタタップ数を設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
NTAPV <= HV*(NTAPC+1)/4-1
図17(b)に、ブロックサイズ(WV、HV)が8x8、16x16、32x32の場合にNTAPVの取りうる値を示す。図17(b)からブロックサイズが8x8、16x16、32x32に取りうるフィルタタップ数NTAPVはブロックサイズが4x4の場合のフィルタタップ数NTAPCの約2倍、4倍、8倍である。つまり4x4に対するブロックサイズ(WV,HV)の比以下にフィルタタップ数を設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
つまり、マッチング予測部30373は、所定のメモリバンド幅を満たす所定のブロックサ
イズとフィルタタップ数をもとに、ブロックサイズを変更した場合のフィルタタップ数を算出する場合、所定のブロックサイズと変更したブロックサイズとの比以下にフィルタタップ数を設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
イズとフィルタタップ数をもとに、ブロックサイズを変更した場合のフィルタタップ数を算出する場合、所定のブロックサイズと変更したブロックサイズとの比以下にフィルタタップ数を設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
・適応的変更方法3:ブロックサイズに応じたサーチレンジとフィルタのタップ数変更所定のメモリバンド幅BCにおいて、図16(a-2)のように、所定のブロックサイズ(幅WC、
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSRC内のサーチが可能であるとする。図16(c-1)のように、ブロックサイズを(幅WV、高さHV)
に変更すると、サーチレンジSRVとフィルタタップ数NTAPVは下式で表すことができる。
高さHC)では、フィルタタップ数NTAPCの動き補償フィルタを用いて、サーチレンジSRC内のサーチが可能であるとする。図16(c-1)のように、ブロックサイズを(幅WV、高さHV)
に変更すると、サーチレンジSRVとフィルタタップ数NTAPVは下式で表すことができる。
WV*(2*SRC+NTAPC-1) >= WC(2*SRV+NTAPV-1) (式MB-5)
HV*(2*SRC+NTAPC-1) >= HC(2*SRV+NTAPV-1)
例えばWC=HC=4、NTAPC=3、SRC=1の場合、下式が成立する。
HV*(2*SRC+NTAPC-1) >= HC(2*SRV+NTAPV-1)
例えばWC=HC=4、NTAPC=3、SRC=1の場合、下式が成立する。
2*SRV+NTAPV <= WV+1 (式MB-6)
2*SRV+NTAPV <= HV+1
ブロックサイズを変更した場合、サーチレンジSRVとフィルタタップ数NTAPVの取りうる組み合わせは、(式MB-6)のように、サーチレンジとフィルタタップ数の線形演算で表現で
きる。そしてブロックサイズが大きくなるにつれて、サーチレンジとフィルタタップ数の取りうる値も、大きく設定することができる。
2*SRV+NTAPV <= HV+1
ブロックサイズを変更した場合、サーチレンジSRVとフィルタタップ数NTAPVの取りうる組み合わせは、(式MB-6)のように、サーチレンジとフィルタタップ数の線形演算で表現で
きる。そしてブロックサイズが大きくなるにつれて、サーチレンジとフィルタタップ数の取りうる値も、大きく設定することができる。
つまり、マッチング予測部30373は、所定のメモリバンド幅を満たす所定のブロックサ
イズ、サーチレンジ、フィルタタップ数をもとに、ブロックサイズを変更した場合のサーチレンジとフィルタタップ数を算出する場合、サーチレンジとフィルタタップ数の線形演算の結果を、変更したブロックサイズ以下に設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
イズ、サーチレンジ、フィルタタップ数をもとに、ブロックサイズを変更した場合のサーチレンジとフィルタタップ数を算出する場合、サーチレンジとフィルタタップ数の線形演算の結果を、変更したブロックサイズ以下に設定することにより、所定のメモリバンド幅以内でデータを転送することができる。
・初期ベクトル制約
また、マッチング予測部30373は対象ブロック、およびサブブロックにおいて、初期ベク
トルサーチを実施する時に、複数の隣接ブロックの動きベクトルを初期ベクトル候補として参照し、マッチングコストが最小となる動きベクトルを導出する。そのため、各動きベクトル候補分シフトした領域の画素値を各参照ピクチャから転送する。これらの候補はマージ候補リストmergeCandList[]={L,A,AR,BL,AL,BR,結合マージ候補、ゼロマージ候補}に含まれており、L,A,AR,BL,AL,BRは図7(b)、(c)の隣接ブロック位置を表すものとする。図18(a)は、初期ベクトル候補の差分値が大きい、つまり大きさや方向がばらばらである例
である。図18(c)は、初期ベクトル候補の差分値が小さい、つまり大きさや方向がよく似
ている例である。図18(b)と図18(d)の破線で囲んだ領域は、図18(a)と図18(c)のマッチングコスト算出時に、参照ピクチャメモリ306から転送する範囲である。図18(b)は図18(d)
に比べ転送範囲が広く、数倍のデータ量を転送することが分かる。
また、マッチング予測部30373は対象ブロック、およびサブブロックにおいて、初期ベク
トルサーチを実施する時に、複数の隣接ブロックの動きベクトルを初期ベクトル候補として参照し、マッチングコストが最小となる動きベクトルを導出する。そのため、各動きベクトル候補分シフトした領域の画素値を各参照ピクチャから転送する。これらの候補はマージ候補リストmergeCandList[]={L,A,AR,BL,AL,BR,結合マージ候補、ゼロマージ候補}に含まれており、L,A,AR,BL,AL,BRは図7(b)、(c)の隣接ブロック位置を表すものとする。図18(a)は、初期ベクトル候補の差分値が大きい、つまり大きさや方向がばらばらである例
である。図18(c)は、初期ベクトル候補の差分値が小さい、つまり大きさや方向がよく似
ている例である。図18(b)と図18(d)の破線で囲んだ領域は、図18(a)と図18(c)のマッチングコスト算出時に、参照ピクチャメモリ306から転送する範囲である。図18(b)は図18(d)
に比べ転送範囲が広く、数倍のデータ量を転送することが分かる。
従って、画像データの転送量を所定のメモリバンド幅以下に抑えるために、初期ベクトルサーチに使用する候補数を制限してもよい。例えば、初期ベクトルサーチに使用する動きベクトルは、マージ候補リストあるいは予測ベクトル候補リストリストmvpListLX[]の
先頭からCandN個の動きベクトルに限定してもよい。図19(b)は、CandN=3の場合のサーチ
レンジを示す図である。3個の破線ブロックは、対象ブロックが各々動きベクトル分だけ
シフトしたブロック位置を示す。一点破線は参照ピクチャメモリ306からの転送範囲を示
す。参照ピクチャが同じで、動きベクトルの差分が小さい(例えば動きベクトルの差分値が1画素未満)動きベクトルが複数ある場合には、1個としてカウントしてもよい。初期ベクトル候補の個数を削減することで、転送範囲を限定し、メモリバンド幅を削減することができる。
先頭からCandN個の動きベクトルに限定してもよい。図19(b)は、CandN=3の場合のサーチ
レンジを示す図である。3個の破線ブロックは、対象ブロックが各々動きベクトル分だけ
シフトしたブロック位置を示す。一点破線は参照ピクチャメモリ306からの転送範囲を示
す。参照ピクチャが同じで、動きベクトルの差分が小さい(例えば動きベクトルの差分値が1画素未満)動きベクトルが複数ある場合には、1個としてカウントしてもよい。初期ベクトル候補の個数を削減することで、転送範囲を限定し、メモリバンド幅を削減することができる。
あるいは、候補リストの動きベクトルの平均値を算出し、図19(a)に示すように、転送
範囲を、平均値MVavgを中心に水平、垂直方向±Trans画素の範囲に限定してもよい。
範囲を、平均値MVavgを中心に水平、垂直方向±Trans画素の範囲に限定してもよい。
あるいは、候補リストの動きベクトルが参照する参照ピクチャをカウントし、最も使用頻度の高い参照ピクチャを参照する動きベクトルのみを初期ベクトルサーチに使用してもよい。つまり、参照ピクチャリストRefPicListX[]のCandP番目のピクチャRefPicListX[CandP]が最も参照されるピクチャである場合、参照ピクチャがRefPicListX[CandP]である動きベクトルのみを初期ベクトルサーチの対象としてもよい。
あるいはCandP=0とし、参照ピクチャリストRefPicListX[]の0番目のピクチャRefPicListX[0]を使用する動きベクトルのみを初期ベクトルサーチの対象としてもよい。
以上のように、マッチング予測部30373は、初期ベクトルを決定するために利用する隣
接ブロックの動きベクトルを限定することにより、所定のメモリバンド幅以内でサーチに必要なデータを転送することができる。
接ブロックの動きベクトルを限定することにより、所定のメモリバンド幅以内でサーチに必要なデータを転送することができる。
なお、マッチング予測部30373は、サブブロックの初期ベクトルサーチにおいて、ブロ
ックの初期ベクトルサーチに用いたサーチレンジ外の参照を禁止することで、参照ピクチャメモリ306からの画像データの転送をブロックレベルのサーチ時の1回の転送に削減することができる。例えば、動きベクトルをクリッピングすることで、サーチレンジ外の参照を禁止することができる。
・ブロックレベルの動きベクトルの大きさに応じたサブブロックのサーチレンジあるいはタップ数の制約
また、サブブロックのローカルサーチにおいては、ブロックレベルで導出した動きベクトルの大きさに応じて、サーチレンジとフィルタのタップ数を変更してもよい。ブロックレベルの動きベクトルが大きい時はサーチレンジを大きく、ブロックレベルの動きベクトルが小さい時はサーチレンジを小さく設定する。あるいは、ブロックレベルの動きベクトルが大きい時はフィルタのタップ数を短く、ブロックレベルの動きベクトルが小さい時はフィルタのタップ数を長く設定する。あるいは、図19(c)に示すように、ブロックレベル
の動きベクトルが大きい時はサーチレンジSRを大きく、フィルタのタップ数NTAPを短く設定してもよい。あるいは、図19(d)に示すように、ブロックレベルの動きベクトルが小さ
い時はサーチレンジSRを小さく、フィルタのタップ数NTAPを長く設定してもよい。
ックの初期ベクトルサーチに用いたサーチレンジ外の参照を禁止することで、参照ピクチャメモリ306からの画像データの転送をブロックレベルのサーチ時の1回の転送に削減することができる。例えば、動きベクトルをクリッピングすることで、サーチレンジ外の参照を禁止することができる。
・ブロックレベルの動きベクトルの大きさに応じたサブブロックのサーチレンジあるいはタップ数の制約
また、サブブロックのローカルサーチにおいては、ブロックレベルで導出した動きベクトルの大きさに応じて、サーチレンジとフィルタのタップ数を変更してもよい。ブロックレベルの動きベクトルが大きい時はサーチレンジを大きく、ブロックレベルの動きベクトルが小さい時はサーチレンジを小さく設定する。あるいは、ブロックレベルの動きベクトルが大きい時はフィルタのタップ数を短く、ブロックレベルの動きベクトルが小さい時はフィルタのタップ数を長く設定する。あるいは、図19(c)に示すように、ブロックレベル
の動きベクトルが大きい時はサーチレンジSRを大きく、フィルタのタップ数NTAPを短く設定してもよい。あるいは、図19(d)に示すように、ブロックレベルの動きベクトルが小さ
い時はサーチレンジSRを小さく、フィルタのタップ数NTAPを長く設定してもよい。
以上のように、マッチング予測部30373は、ブロックレベルで導出した動きベクトルの
大きさに応じて、サーチレンジとフィルタのタップ数を設定することで、データ転送量を適切に制御することができる。
大きさに応じて、サーチレンジとフィルタのタップ数を設定することで、データ転送量を適切に制御することができる。
(マッチング処理による動きベクトル導出処理)
マッチングモードにおける動きベクトル導出(パターンマッチベクトル導出)処理の流れについて図20のフローチャートを参照して説明する。
マッチングモードにおける動きベクトル導出(パターンマッチベクトル導出)処理の流れについて図20のフローチャートを参照して説明する。
図20に示す処理は、マッチング予測部30373により実行される。図20(a)はバイラテラルマッチング処理のフローチャートであり、図20(b)はテンプレートマッチング処理のフロ
ーチャートである。
ーチャートである。
なお、図20(a)に示す各ステップのうち、S3201〜S3204は、ブロックレベルで実行され
るブロックサーチである。すなわち、パターンマッチを用いて、ブロック(CUまたはPU)全体で動きベクトルを導出する。
るブロックサーチである。すなわち、パターンマッチを用いて、ブロック(CUまたはPU)全体で動きベクトルを導出する。
また、S3205〜S3208は、サブブロックレベルで実行されるサブブロックサーチである。すなわち、パターンマッチを用いて、ブロックを構成するサブブロック単位で動きベクトルを導出する。
S3201において、マッチング予測部30373は、対象ブロックにおけるブロックレベルの初期ベクトル候補を設定する。
S3202において、マッチング予測部30373は、初期ベクトル制約を実施しブロックレベルのサーチレンジを制限する。上述の適応的変更方法1〜3のいずれかの方法で、ブロックレ
ベルのサーチで用いるサーチレンジあるいは動き補償フィルタのタップ数を決定する。
ベルのサーチで用いるサーチレンジあるいは動き補償フィルタのタップ数を決定する。
次に、S3203では、マッチング予測部30373は、S3202で制約した初期ベクトル候補の中
から、マッチングコストが最小となるベクトルをサーチし、初期ベクトルを導出する。
から、マッチングコストが最小となるベクトルをサーチし、初期ベクトルを導出する。
S3204では、マッチング予測部30373は、対象ブロックにおけるブロックレベルのローカルサーチを行い、最終的な対象ブロックの動きベクトルとする。
続いて、対象ブロックに含まれる各サブブロックについて、以下の処理を行う(S3205
〜S3208)。
〜S3208)。
S3205では、マッチング予測部30373は、対象ブロックにおける各サブブロックの初期ベクトル候補を設定する。
S3206では、マッチング予測部30373は、サブブロックの初期ベクトルサーチがブロックレベルのサーチレンジを超えないように初期ベクトル候補をクリッピングする。また、各サブブロックのサーチがブロックレベルで用いたサーチレンジ外の画像データを使用しないように、サブブロックレベルのサーチレンジを制限する。
S3207では、マッチング予測部30373は、S3206で制約した初期ベクトル候補の中から、
マッチングコストが最小となるベクトルをサーチし、サブブロックレベルの初期ベクトルとして設定する。
マッチングコストが最小となるベクトルをサーチし、サブブロックレベルの初期ベクトルとして設定する。
次に、S3208では、マッチング予測部30373は、S3207で選択されたサブブロックの初期
ベクトルを中心とするローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
ベクトルを中心とするローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
そして、対象ブロックに含まれる全てのサブブロックについて処理が完了すると、バイラテラルマッチングのパターンマッチベクトル導出処理が終了する。
次にテンプレートマッチングのパターンマッチベクトル導出処理を、図20(b)を用いて
説明する。図20(b)に示す各ステップのうち、S3211〜S3204は、ブロックレベルで実行さ
れるブロックサーチである。また、S3205〜S3208は、サブブロックレベルで実行されるサブブロックサーチである。なお、図20(a)と同じ処理には同じ番号を付している。
説明する。図20(b)に示す各ステップのうち、S3211〜S3204は、ブロックレベルで実行さ
れるブロックサーチである。また、S3205〜S3208は、サブブロックレベルで実行されるサブブロックサーチである。なお、図20(a)と同じ処理には同じ番号を付している。
まず、マッチング予測部30373は対象ブロックのテンプレートを取得する(S3211)。
次に、S3201では、マッチング予測部30373は、対象ブロックにおけるブロックレベルの初期ベクトル候補を設定する。
S3202において、マッチング予測部30373は、初期ベクトル制約と、サーチレンジあるいは動き補償フィルタの適応的変更方法1〜3のいずれかを実施し、ブロックレベルのサーチレンジを制限する。
次に、S3203では、マッチング予測部30373は、上記で設定した初期ベクトル候補の中から、マッチングコストが最小となるベクトルをブロックレベルの初期ベクトルとして設定する。
S3204では、マッチング予測部30373は、S3203で導出された初期ベクトルを中心とする
局所領域をサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの
動きベクトルとして設定する。
局所領域をサーチし、マッチングコストが最小となるベクトルを最終的な対象ブロックの
動きベクトルとして設定する。
続いて、対象ブロックに含まれる各サブブロックについて、以下の処理を行う(S3205
〜S3208)。
〜S3208)。
S3205では、マッチング予測部30373は、対象ブロックにおける各サブブロックの初期ベクトル候補を設定する。
S3206では、マッチング予測部30373は、サブブロックの初期ベクトルサーチがブロックレベルのサーチレンジを超えないように初期ベクトル候補をクリッピングする。また、各サブブロックのサーチがブロックレベルで用いたサーチレンジ外の画像データを使用しないように、サブブロックレベルのサーチレンジを制限する。
S3212では、マッチング予測部30373は、対象ブロックにおけるサブブロックのテンプレートを取得する。
S3207では、マッチング予測部30373は、S3206で制約した初期ベクトルの中から、マッ
チングコストが最小となるベクトルをサブブロックレベルの初期ベクトルとして設定する。
チングコストが最小となるベクトルをサブブロックレベルの初期ベクトルとして設定する。
次に、S3208では、マッチング予測部30373は、S3207で設定されたサブブロックの初期
ベクトルを中心としたローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
ベクトルを中心としたローカルサーチを行い、マッチングコストが最小となるベクトルをサブブロックの動きベクトルとして導出する。
そして、対象ブロックに含まれる全てのサブブロックについて処理が完了すると、テンプレートマッチングのパターンマッチベクトル導出処理が終了する。
以上は参照ピクチャがRef0の場合であったが、参照ピクチャをRef1とした場合も、上記と同じ処理でテンプレートマッチングを実施することができる。さらに、参照ピクチャが2枚の場合、導出した2つの動きベクトルを用いて、動き補償部3091では双予測処理を行う。
動き補償部3091に出力するfruc_merge_idxは下式で導出する。
fruc_merge_idx = fruc_merge_idx & BM_flag & (TM_flag<<1) (式FRUC-7)
なお、動画像復号装置31でfruc_merge_idxが通知される場合は、パターンマッチベクトル導出処理の前にBM_flagとTM_flagを導出し、フラグの値が真のマッチング処理のみ実施してもよい。
なお、動画像復号装置31でfruc_merge_idxが通知される場合は、パターンマッチベクトル導出処理の前にBM_flagとTM_flagを導出し、フラグの値が真のマッチング処理のみ実施してもよい。
BM_flag = fruc_merge_idx & 1 (式FRUC-8)
TM_flag = (fruc_merge_idx & 10)>>1
(OBMC処理)
本実施形態に係る動き補償部3091はOBMC処理を用いて予測画像を生成してもよい。ここで、OBMC(Overlapped block motion compensation)処理について説明する。OBMC処理とは、対象ブロックのインター予測パラメータ(以下、動きパラメータ)を用いて生成される対象サブブロックの補間画像PredCと、対象サブブロックの隣接ブロックの動きパラメ
ータを用いて生成される対象ブロックの補間画像PredRNを用いて、対象ブロックの補間画像(動き補償画像)を生成する処理である。ブロック境界との距離が近い対象ブロック内の画素(境界画素)において、隣接ブロックの動きパラメータに基づく補間画像PredRNにより、対象ブロックの補間画像を補正する処理がサブブロック単位で行われる。
TM_flag = (fruc_merge_idx & 10)>>1
(OBMC処理)
本実施形態に係る動き補償部3091はOBMC処理を用いて予測画像を生成してもよい。ここで、OBMC(Overlapped block motion compensation)処理について説明する。OBMC処理とは、対象ブロックのインター予測パラメータ(以下、動きパラメータ)を用いて生成される対象サブブロックの補間画像PredCと、対象サブブロックの隣接ブロックの動きパラメ
ータを用いて生成される対象ブロックの補間画像PredRNを用いて、対象ブロックの補間画像(動き補償画像)を生成する処理である。ブロック境界との距離が近い対象ブロック内の画素(境界画素)において、隣接ブロックの動きパラメータに基づく補間画像PredRNにより、対象ブロックの補間画像を補正する処理がサブブロック単位で行われる。
図21は、本実施形態に係る隣接ブロックの動きパラメータを利用して予測画像を生成する領域の一例を示す図である。ブロック単位の予測では、ブロック内の動きパラメータは同じであるため、図21(a)に示すように、ブロック境界から所定の距離内にある斜線のサ
ブブロックの画素がOBMC処理の適用対象となる。サブブロック単位の予測では、サブブロック毎に動きパラメータは異なるため、図21(b)に示すように、各サブブロックの画素がOBMC処理の適用対象となる。
ブブロックの画素がOBMC処理の適用対象となる。サブブロック単位の予測では、サブブロック毎に動きパラメータは異なるため、図21(b)に示すように、各サブブロックの画素がOBMC処理の適用対象となる。
なお、対象ブロックと隣接ブロックの形状は必ずしも同じではないので、OBMC処理はブロックを分割したサブブロック単位で実施するのが望ましい。サブブロックのサイズは4x4、8x8〜ブロックサイズまで様々な値をとることができる。
OBMCでは、対象ブロックのインター予測パラメータに基づいて導出される対象サブブロックの補間画像、および、隣接ブロックのインター予測パラメータに基づいて導出される補間画像という、2種類の補間画像を生成し、これらの重み付加算処理により最終的に予測に用いる補間画像を生成する。そのため、「OBMC処理を適用する(OBMCオン)」と判定されたブロックあるいはサブブロックでは、水平境界の場合、境界から垂直方向にNumOBMC個の画素値に対し、2種類の動きベクトルを用いて補間画像を生成する。また、垂直境
界の場合、境界から水平方向にNumOBMC個の画素値に対し、2種類の動きベクトルを用い
て補間画像を生成する。従って、参照ピクチャメモリ306からの画像データの転送量の増
加、すなわちメモリバンド幅の増加を招く。このメモリバンド幅の増加を抑制するため、OBMCオンの判定条件に、転送量のオーバーヘッドが大きさを示す下記の条件のいずれかを追加してもよい。
界の場合、境界から水平方向にNumOBMC個の画素値に対し、2種類の動きベクトルを用い
て補間画像を生成する。従って、参照ピクチャメモリ306からの画像データの転送量の増
加、すなわちメモリバンド幅の増加を招く。このメモリバンド幅の増加を抑制するため、OBMCオンの判定条件に、転送量のオーバーヘッドが大きさを示す下記の条件のいずれかを追加してもよい。
OBMCオフ条件1:小サブブロックのOBMC禁止
サブブロック単位の予測において、サブブロックの幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合は、右および下方向のOBMC処理を禁止する。
サブブロック単位の予測において、サブブロックの幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合は、右および下方向のOBMC処理を禁止する。
OBMCのオンオフを示すフラグをobmc_flag[i]、対象サブブロックに対する隣接サブブロックの方向を、i=1は上側、i=2は左側、i=3は下側、i=4は右側とすると、
if (BW<OBMC_S || BH<OBMC_S) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-1)
OBMCオフ条件2:小サブブロック、かつ、隣接サブブロックと動きベクトルの差分が大きい場合、OBMC禁止
サブブロック単位の予測において、サブブロックの幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合、かつ、対象サブブロックの動きベクトルmvLX[]と隣接サブブロックの動きベクトルmvLXRN[]の差が所定値OBMC_MVより大きい場合は、右および下方向のOBMC処理
を禁止する。
if (BW<OBMC_S || BH<OBMC_S) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-1)
OBMCオフ条件2:小サブブロック、かつ、隣接サブブロックと動きベクトルの差分が大きい場合、OBMC禁止
サブブロック単位の予測において、サブブロックの幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合、かつ、対象サブブロックの動きベクトルmvLX[]と隣接サブブロックの動きベクトルmvLXRN[]の差が所定値OBMC_MVより大きい場合は、右および下方向のOBMC処理
を禁止する。
diffMV = abs(mvLX[0]-mvLXRN[0])+abs(mvLX[1]-mvLXRN[1]) (式OBMC-2)
if ((BW<OBMC_S || BH<OBMC_S) && (diffMV>OBMC_MV)) obmc_flag[3]=obmc_flag[4]=0
OBMCオフ条件3:特定のツールとの組み合わせによるOBMC禁止
対象ブロックがアフィン予測、あるいは、マッチング予測を実施している場合には、対象ブロックや対象サブブロックの動きベクトルは、隣接ブロックや隣接サブブロックの動きベクトルとよく似ており、動きベクトルの差分が小さい。従って、アフィン予測のオフを示すフラグaffine_flag=0の場合、かつ、マッチング予測のオフを示すフラグfruc_merge_idx=0の場合は、右および下方向のOBMC処理を禁止する。
if ((BW<OBMC_S || BH<OBMC_S) && (diffMV>OBMC_MV)) obmc_flag[3]=obmc_flag[4]=0
OBMCオフ条件3:特定のツールとの組み合わせによるOBMC禁止
対象ブロックがアフィン予測、あるいは、マッチング予測を実施している場合には、対象ブロックや対象サブブロックの動きベクトルは、隣接ブロックや隣接サブブロックの動きベクトルとよく似ており、動きベクトルの差分が小さい。従って、アフィン予測のオフを示すフラグaffine_flag=0の場合、かつ、マッチング予測のオフを示すフラグfruc_merge_idx=0の場合は、右および下方向のOBMC処理を禁止する。
if (affine_flag=0 && fruc_merge_idx=0) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-3)
OBMCオフ条件4:CTUの上下境界におけるOBMC禁止
サブブロックの上側あるいは下側境界がCTUの境界と重なる場合、右および下方向のOBMC
処理を禁止する。
OBMCオフ条件4:CTUの上下境界におけるOBMC禁止
サブブロックの上側あるいは下側境界がCTUの境界と重なる場合、右および下方向のOBMC
処理を禁止する。
if (サブブロックの上側境界がCTUの上側境界 || サブブロックの下側境界がCTUの下側境界) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-4)
OBMCオフ条件5:CTUの上下境界における小サブブロックのOBMC禁止
サブブロックの上側あるいは下側境界がCTUの境界と重なる場合、かつ、サブブロックの
幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合、右および下方向のOBMC処理を禁止する。
OBMCオフ条件5:CTUの上下境界における小サブブロックのOBMC禁止
サブブロックの上側あるいは下側境界がCTUの境界と重なる場合、かつ、サブブロックの
幅BW、あるいは高さBHが所定値OBMC_Sより小さい場合、右および下方向のOBMC処理を禁止する。
if ((サブブロックの上側境界がCTUの上側境界 || サブブロックの下側境界がCTUの
下側境界) && (BW<OBMC_S || BH<OBMC_S)) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-5)
上記OBMCオフ条件のいずれかを、OBMCオフの判定処理に追加することで、参照ピクチャメモリ306からの画像データの転送量が多い場合にOBMCをオフにすることができる。従っ
てメモリバンド幅の増加を抑制することができる。
下側境界) && (BW<OBMC_S || BH<OBMC_S)) obmc_flag[3]=obmc_flag[4]=0 (式OBMC-5)
上記OBMCオフ条件のいずれかを、OBMCオフの判定処理に追加することで、参照ピクチャメモリ306からの画像データの転送量が多い場合にOBMCをオフにすることができる。従っ
てメモリバンド幅の増加を抑制することができる。
(OBMC処理の流れ)
図22は、本実施形態に係るOBMC予測部30374が実施するパラメータ導出処理を示すフロ
ーチャートである。
図22は、本実施形態に係るOBMC予測部30374が実施するパラメータ導出処理を示すフロ
ーチャートである。
OBMC予測部30374は、対象サブブロックに対し、上側、左側、下側、右側の各方向に隣
接する隣接ブロックの有無および利用可能性を判定する。図22では、上、左、下、右の各方向に対し全てのサブブロックの処理を実施したのち、次の方向の処理に移行する方法をとっているが、あるサブブロックに対し全ての方向を処理した後、次のサブブロックの処理に移行する方法をとることもできる。図22において、対象サブブロックに対する隣接ブロックの方向は、i=1は上側、i=2は左側、i=3は下側、i=4は右側とする。
接する隣接ブロックの有無および利用可能性を判定する。図22では、上、左、下、右の各方向に対し全てのサブブロックの処理を実施したのち、次の方向の処理に移行する方法をとっているが、あるサブブロックに対し全ての方向を処理した後、次のサブブロックの処理に移行する方法をとることもできる。図22において、対象サブブロックに対する隣接ブロックの方向は、i=1は上側、i=2は左側、i=3は下側、i=4は右側とする。
まず、OBMC予測部30374は、OBMC処理の必要性と隣接ブロックの有無をチェックする(S3401)。予測単位がブロック単位で、対象サブブロックがiの示す方向のブロック境界に
接していない場合は、OBMC処理に必要な隣接ブロックがないので(S3401でN)、S3404に
進み、フラグobmc_flag[i]を0にする。そうでなければ(予測単位がブロック単位で対象
サブブロックがブロック境界に接する場合、あるいは、処理単位がサブブロックの場合)、OBMC処理に必要な隣接ブロックがあるので(S3401でY)、S3402に進む。
接していない場合は、OBMC処理に必要な隣接ブロックがないので(S3401でN)、S3404に
進み、フラグobmc_flag[i]を0にする。そうでなければ(予測単位がブロック単位で対象
サブブロックがブロック境界に接する場合、あるいは、処理単位がサブブロックの場合)、OBMC処理に必要な隣接ブロックがあるので(S3401でY)、S3402に進む。
例えば図21(a)のサブブロックSCU1[3][0]は左側、下側、右側はブロック境界に接しな
いので、obmc_flag[2]=0、obmc_flag[3]=0、obmc_flag[4]=0である。また、サブブロックSCU2[0][2]は上側、下側、右側がブロック境界に接しないので、obmc_flag[1]=0、obmc_flag[3]=0、obmc_flag[4]=0である。また、白色のサブブロックはブロック境界に全く接しないサブブロックであるので、obmc_flag[1]=obmc_flag[2]=obmc_flag[3]=obmc_flag[4]=0である。
いので、obmc_flag[2]=0、obmc_flag[3]=0、obmc_flag[4]=0である。また、サブブロックSCU2[0][2]は上側、下側、右側がブロック境界に接しないので、obmc_flag[1]=0、obmc_flag[3]=0、obmc_flag[4]=0である。また、白色のサブブロックはブロック境界に全く接しないサブブロックであるので、obmc_flag[1]=obmc_flag[2]=obmc_flag[3]=obmc_flag[4]=0である。
次にOBMC予測部30374は、隣接ブロックの利用可能性として、iで示す方向の隣接ブロックがイントラ予測ブロックであるかをチェックする(S3402)。隣接ブロックがイントラ
予測ブロックの場合(S3402でY)、S3404に進み、対応する方向iのobmc_flag[i]を0にセ
ットする。そうでなければ(隣接ブロックがインター予測ブロックの場合)(S3402でN)、S3403に進む。
予測ブロックの場合(S3402でY)、S3404に進み、対応する方向iのobmc_flag[i]を0にセ
ットする。そうでなければ(隣接ブロックがインター予測ブロックの場合)(S3402でN)、S3403に進む。
例えば、図21(c)の場合、対象ブロックCU4の対象サブブロックSCU4[3][0]に対し、上側
の隣接ブロックはイントラ予測であるので、対象サブブロックSCU4[3][0]のobmc_flag[1]は0にセットする。
の隣接ブロックはイントラ予測であるので、対象サブブロックSCU4[3][0]のobmc_flag[1]は0にセットする。
次にOBMC予測部30374は、隣接ブロックの利用可能性として、iが示す方向の隣接ブロックと対象サブブロックの動きパラメータが等しいどうかをチェックする(S3403)。動き
パラメータが等しい場合(S3403でY)、S3404に進み、obmc_flag[i]=0にセットする。そ
うでなければ(動きパラメータが異なる場合)(S3403でN)、S3405に進む。
パラメータが等しい場合(S3403でY)、S3404に進み、obmc_flag[i]=0にセットする。そ
うでなければ(動きパラメータが異なる場合)(S3403でN)、S3405に進む。
サブブロックとその隣接ブロックの動きパラメータが等しいか否かは下式で判定する。
((mvLX[0]!=mvLXRN[0]) || (mvLX[1]!=mvLXRN[1]) || (refIdxLX!=refIdxLXRN))?
(式OBMC-6)
ここで、対象サブブロックの動きベクトル(mvLX[0],mvLX[1])、参照ピクチャインデック
スrefIdxLX、iが示す方向の隣接ブロックの動きベクトル(mvLXRN[0],mvLXRN[1])、参照ピクチャインデックスrefIdxLXRNである。
(式OBMC-6)
ここで、対象サブブロックの動きベクトル(mvLX[0],mvLX[1])、参照ピクチャインデック
スrefIdxLX、iが示す方向の隣接ブロックの動きベクトル(mvLXRN[0],mvLXRN[1])、参照ピクチャインデックスrefIdxLXRNである。
例えば、図21(c)において、対象サブブロックSCU4[0][0]の動きベクトル(mvLX[0],mvLX[1])、参照ピクチャインデックスrefIdxLX、左側隣接ブロックの動きベクトル(mvLXR2[0],mvLXR2[1])、参照ピクチャインデックスrefIdxLXR2とすると、動きベクトルと参照ピク
チャインデックスが同じ場合、例えば、((mvLX[0]==mvLXR2[0]) && (mvLX[1]==mvLXR2[1]) && (refIdxLX==refIdxLXR2))が真である場合は、対象サブブロックSCU4[0][0]はobmc_flag[2]=0である。
チャインデックスが同じ場合、例えば、((mvLX[0]==mvLXR2[0]) && (mvLX[1]==mvLXR2[1]) && (refIdxLX==refIdxLXR2))が真である場合は、対象サブブロックSCU4[0][0]はobmc_flag[2]=0である。
なお、上式では動きベクトルと参照ピクチャインデックスを使用したが、下式のように動きベクトルとPOCを用いて判定してもよい。
((mvLX[0]!=mvLXRN[0]) || (mvLX[1]!=mvLXRN[1]) || (refPOC!=refPOCRN))?
(式OBMC-7)
ここでrefPOCは対象サブブロックのPOCであり、refPOCRNは隣接ブロックのPOCである。
(式OBMC-7)
ここでrefPOCは対象サブブロックのPOCであり、refPOCRNは隣接ブロックのPOCである。
OBMC予測部30374は、OBMCオフ条件を判定する(S3405)。OBMCオフ条件が成立する場合(S3405でY)、S3404に進み、obmc_flag[i]=0にセットする。そうでなければ(OBMCオフ
条件が成立しない場合)(S3405でN)、S3406に進む。OBMCオフ条件は、上記で説明したOBMCオフ条件1〜5のいずれかを使用する。
条件が成立しない場合)(S3405でN)、S3406に進む。OBMCオフ条件は、上記で説明したOBMCオフ条件1〜5のいずれかを使用する。
OBMC予測部30374は、obmc_flag[i]=1にセットする(S3406)。
次にOBMC予測部30374は、サブブロックの全ての方向(i=1〜4)に対し、上記S3401〜S3406の処理を実施した後、終了する。
OBMC予測部30374は、上記で導出した予測パラメータ(obmc_flagと各サブブロックの隣接ブロックの動きパラメータ)をインター予測画像生成部309に出力し、インター予測画
像生成部309はobmc_flagを参照してOBMC処理の要否を判定しながら、対象ブロックに対し、OBMC補間画像を生成する(詳細は(動き補償)で説明する)。
像生成部309はobmc_flagを参照してOBMC処理の要否を判定しながら、対象ブロックに対し、OBMC補間画像を生成する(詳細は(動き補償)で説明する)。
なお、動画像復号装置31では、動画像符号化装置11から通知されたobmc_flagがあればobmc_flag[i]にセットし、obmc_flag[i]=1の場合にのみ、上記処理を実施してもよい。
(BTM)
BTM予測部3038は、マージ予測パラメータ導出部3036により導出された双方向の動きベ
クトルを用いて生成された予測画像をテンプレートとし、バイラテラルテンプレートマッチング(BTM)処理を実行することにより、精度の高い動きベクトルを導出する。
BTM予測部3038は、マージ予測パラメータ導出部3036により導出された双方向の動きベ
クトルを用いて生成された予測画像をテンプレートとし、バイラテラルテンプレートマッチング(BTM)処理を実行することにより、精度の高い動きベクトルを導出する。
(動きベクトル導出処理の例)
マージモードにおいて導出した2つの動きベクトルが対象ブロックに対し逆向きであれば、BTM予測部3038はバイラテラルテンプレートマッチング(BTM)処理を行う。
マージモードにおいて導出した2つの動きベクトルが対象ブロックに対し逆向きであれば、BTM予測部3038はバイラテラルテンプレートマッチング(BTM)処理を行う。
図23を参照してバイラテラルテンプレートマッチング(BTM)処理を説明する。図23(a)はBTM予測における参照ピクチャとテンプレートとの関係を示す図であり、(b)は処理の流れを示す図であり、(c)はBTM予測におけるテンプレートを説明する図である。
図23(a)および(c)に示すように、BTM予測部3038は、まず、マージ予測パラメータ導出
部3036で導出された複数の動きベクトル(例えばmvL0およびmvL1)から対象ブロックCur_blockの予測ブロックを生成し、これをテンプレートとする。具体的には、mvL0により生
成された動き補償画像predL0と、mvL1により生成された動き補償画像predL1から予測ブロックCur_Tempを生成する。
部3036で導出された複数の動きベクトル(例えばmvL0およびmvL1)から対象ブロックCur_blockの予測ブロックを生成し、これをテンプレートとする。具体的には、mvL0により生
成された動き補償画像predL0と、mvL1により生成された動き補償画像predL1から予測ブロックCur_Tempを生成する。
Cur_Temp[x][y] = Clip3( 0, (1<<bitDepth)-1, (predL0[x][y]+predL1[x][y]+1)>>1
) (式BTM-1)
次に、BTM予測部3038は、mvL0、mvL1(初期ベクトル)を各々中心とする±SR画素の範
囲で、動きベクトル候補を設定し、各動きベクトル候補が生成する動き補償画像PredL0'
、PredL1'とテンプレートとのマッチングコストを導出する。そして、マッチングコスト
が最小となるベクトルmvL0'、mvL1'を対象ブロックの更新された動きベクトルとする。
) (式BTM-1)
次に、BTM予測部3038は、mvL0、mvL1(初期ベクトル)を各々中心とする±SR画素の範
囲で、動きベクトル候補を設定し、各動きベクトル候補が生成する動き補償画像PredL0'
、PredL1'とテンプレートとのマッチングコストを導出する。そして、マッチングコスト
が最小となるベクトルmvL0'、mvL1'を対象ブロックの更新された動きベクトルとする。
上記のように、BTM部3038は対象ブロックにおいて初期ベクトルmvL0、mvL1を中心とす
る±SR画素の範囲でサーチを実施する。このサーチには参照ピクチャメモリ306からの参
照ピクチャの読み出しが必要であり、読み出す参照ピクチャの領域が大きい場合、転送するデータ量、つまりメモリバンド幅も大きくなる。
る±SR画素の範囲でサーチを実施する。このサーチには参照ピクチャメモリ306からの参
照ピクチャの読み出しが必要であり、読み出す参照ピクチャの領域が大きい場合、転送するデータ量、つまりメモリバンド幅も大きくなる。
従って、マッチング予測と同様、対象ブロックのサイズ、サーチレンジ、フィルタのタップ数を適応的に変更する(適応的変更方法1〜3のいずれかを用いる)ことで、所定のメモリバンド幅MBCの範囲内でサーチを実施することができる。あるいは、初期ベクトルの
大きさに応じて、サーチレンジあるいは動き補償フィルタのタップ数を変更してもよい。具体的には、初期ベクトルが大きい時はサーチレンジを大きく、初期ベクトルが小さい時はサーチレンジを小さく設定する。あるいは、初期ベクトルが大きい時はフィルタのタップ数を短く、初期ベクトルが小さい時はフィルタのタップ数を長く設定する。あるいは、図19(c)に示すように、初期ベクトルが大きい時はサーチレンジを大きく、フィルタのタ
ップ数を短く設定してもよい。あるいは、図19(d)に示すように、初期ベクトルが小さい
時はサーチレンジを小さく、フィルタのタップ数を長く設定してもよい。
大きさに応じて、サーチレンジあるいは動き補償フィルタのタップ数を変更してもよい。具体的には、初期ベクトルが大きい時はサーチレンジを大きく、初期ベクトルが小さい時はサーチレンジを小さく設定する。あるいは、初期ベクトルが大きい時はフィルタのタップ数を短く、初期ベクトルが小さい時はフィルタのタップ数を長く設定する。あるいは、図19(c)に示すように、初期ベクトルが大きい時はサーチレンジを大きく、フィルタのタ
ップ数を短く設定してもよい。あるいは、図19(d)に示すように、初期ベクトルが小さい
時はサーチレンジを小さく、フィルタのタップ数を長く設定してもよい。
これらの方法のいずれかを用いて導出したサーチレンジ、フィルタのタップ数を用いて、テンプレート及び動き補償画像を生成する。
図23(b)を参照してBTM予測の流れを説明する。
まず、BTM予測部3038はテンプレートを取得する(S3501)。テンプレートは上述した通り、マージ予測パラメータ導出部3036で導出された動きベクトル(例えばmvL0およびmvL1)から生成する。
BTM予測部3038は、上述の適応的選択方法を用いてサーチレンジSRあるいは動き補償フ
ィルタのタップ数を決定する(S3502)。以降では、ここで決定したサーチレンジSRあるい
は動き補償フィルタのタップ数を用いてローカルサーチを実施する。
ィルタのタップ数を決定する(S3502)。以降では、ここで決定したサーチレンジSRあるい
は動き補償フィルタのタップ数を用いてローカルサーチを実施する。
次に、BTM予測部3038はローカルサーチを行う。ローカルサーチはS3503〜S3506のよう
に、複数の異なる精度のサーチを繰り返すことによって行ってもよい。例えば、ローカルサーチは、M画素精度サーチL0処理(S3503)、N画素精度サーチL0処理(S3504)、M画素精度
サーチL1処理(S3505)、N画素精度サーチL1処理(S3506)の順に行う。ここでM>Nであり、例えば、M=1画素精度、N=1/2画素精度とすることができる。
に、複数の異なる精度のサーチを繰り返すことによって行ってもよい。例えば、ローカルサーチは、M画素精度サーチL0処理(S3503)、N画素精度サーチL0処理(S3504)、M画素精度
サーチL1処理(S3505)、N画素精度サーチL1処理(S3506)の順に行う。ここでM>Nであり、例えば、M=1画素精度、N=1/2画素精度とすることができる。
M画素精度LXサーチ処理(X=0..1)は、mvLXが示す座標を中心としたサーチを実施する。
また、N画素精度サーチLX処理は、M画素精度サーチLX処理でマッチングコストが最小となった座標を中心としたサーチを実施する。
また、N画素精度サーチLX処理は、M画素精度サーチLX処理でマッチングコストが最小となった座標を中心としたサーチを実施する。
このようにブロックサイズ、あるいは初期ベクトルの大きさをもとに決定したサーチレンジ、あるいは動き補償フィルタのタップ数を用いてBTM予測画像を作成することにより
、参照ピクチャメモリ306からの画像データの転送量を所定値以下に制限することができ
る。従ってメモリバンド幅を削減することができる。
、参照ピクチャメモリ306からの画像データの転送量を所定値以下に制限することができ
る。従ってメモリバンド幅を削減することができる。
図6(b)は、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図である。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033とベクトル候補選択部3034、およびベクトル候補格納部3036を備える。ベクトル候補導出部3033は、参照ピクチャインデックスrefIdxに基づいて予測パラメータメモリ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に出力する。
なお、マージ予測パラメータ導出部3036において導出された動きベクトルをそのままインター予測画像生成部309に出力せず、BTM予測部3038を介して出力してもよい。
(インター予測画像生成部309)
図14(b)は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、重み予測部3094を含んで構成される。
図14(b)は、本実施形態に係る予測画像生成部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/M画素精度(Mは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 = xb + (mvLX[0] >> (log2(M))) + x (式INTER-1)
xFrac = mvLX[0] & (M-1)
yInt = yb + (mvLX[1] >> (log2(M))) + y
yFrac = mvLX[1] & (M-1)
ここで、(xb, yb)は、ブロックの左上座標、x=0..nW-1、y=0..nH-1、Mは、動きベクトルmvLXの精度(1/M画素精度)を示す。
xFrac = mvLX[0] & (M-1)
yInt = yb + (mvLX[1] >> (log2(M))) + y
yFrac = mvLX[1] & (M-1)
ここで、(xb, yb)は、ブロックの左上座標、x=0..nW-1、y=0..nH-1、Mは、動きベクトルmvLXの精度(1/M画素精度)を示す。
動き補償部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)
なお、参照ピクチャ上の画素refImg[xInt+k-NTAP/2+1][yInt]の参照時には後述するパ
ディングを行う。
なお、参照ピクチャ上の画素refImg[xInt+k-NTAP/2+1][yInt]の参照時には後述するパ
ディングを行う。
続いて、動き補償部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[][]を生成する。
(式INTER-3)
なお、双予測の場合は、上記のPred[][]をリストL0、L1毎に導出し(補間画像PredL0[][]とPredL1[][]と呼ぶ)、補間画像PredL0[][]と補間画像PredL1[][]から補間画像Pred[][]を生成する。
(OBMC補間画像生成)
OBMCでは、対象ブロックのインター予測パラメータに基づいて導出される対象サブブロックの補間画像、および、隣接ブロックのインター予測パラメータに基づいて導出される補間画像という、2種類の補間画像を生成し、これらの重み付加算処理により最終的に予測に用いる補間画像を生成する。ここで、対象ブロックのインター予測パラメータに基づ
いて導出される対象サブブロックの補間画像を補間画像PredC(第1のOBMC補間画像)、
隣接ブロックのインター予測パラメータに基づいて導出される補間画像を補間画像PredRN(第2のOBMC補間画像)と呼ぶ。なお、Nは対象サブブロックの上側(A)、左側(L)、下側(B)、右側(R)のいずれかを示す。OBMC処理を行わない(OBMCオフ)場合には、補間画像PredCがそのまま、対象サブブロックの動き補償画像PredLXとなる。OBMC処理を行う(OBMCオン)場合には、補間画像PredCと補間画像PredRNから対象サブブロックの動き補償画像PredLXが生成される。
OBMCでは、対象ブロックのインター予測パラメータに基づいて導出される対象サブブロックの補間画像、および、隣接ブロックのインター予測パラメータに基づいて導出される補間画像という、2種類の補間画像を生成し、これらの重み付加算処理により最終的に予測に用いる補間画像を生成する。ここで、対象ブロックのインター予測パラメータに基づ
いて導出される対象サブブロックの補間画像を補間画像PredC(第1のOBMC補間画像)、
隣接ブロックのインター予測パラメータに基づいて導出される補間画像を補間画像PredRN(第2のOBMC補間画像)と呼ぶ。なお、Nは対象サブブロックの上側(A)、左側(L)、下側(B)、右側(R)のいずれかを示す。OBMC処理を行わない(OBMCオフ)場合には、補間画像PredCがそのまま、対象サブブロックの動き補償画像PredLXとなる。OBMC処理を行う(OBMCオン)場合には、補間画像PredCと補間画像PredRNから対象サブブロックの動き補償画像PredLXが生成される。
動き補償部3091は、インター予測パラメータ復号部303から入力された対象サブブロッ
クのインター予測パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX、OBMCフラグobmc_flag)に基づいて、補間画像を生成
する。
クのインター予測パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX、OBMCフラグobmc_flag)に基づいて、補間画像を生成
する。
OBMC処理においては、補間画像PredRNの生成に必要な画像データを、参照ピクチャメモリ306から転送することがメモリバンド幅を増加させる原因である。垂直方向のCTU境界では、1つ前のCTUの処理に使用した画像データを一時的にキャッシュに格納し次のCTUのOBMC処理で使用することで、参照ピクチャメモリ306から転送する画像データを削減する。
しかしながら、水平方向のCTU境界では、1CTUライン終了する間、1CTUライン上のCTUで使用した画像データを格納し続けることはできず、CTU単位で参照ピクチャメモリ306から画像データを転送する。そこで、水平方向のCTU境界では、サブブロックの水平方向のサ
イズを大きくすることで、画像データの転送量を削減する。
しかしながら、水平方向のCTU境界では、1CTUライン終了する間、1CTUライン上のCTUで使用した画像データを格納し続けることはできず、CTU単位で参照ピクチャメモリ306から画像データを転送する。そこで、水平方向のCTU境界では、サブブロックの水平方向のサ
イズを大きくすることで、画像データの転送量を削減する。
補間画像サブブロックの水平方向のサイズを大きくする例を図24に示す。図24(a)は予
測をブロック単位で実施する場合、図24(b)は予測をサブブロック単位で実施する場合の
例である。ブロック内部のサブブロックサイズは同じであるので、図24のように、CTU境
界に接するブロックとそうでないブロックとで、ブロック毎にサブブロックのサイズが変わる。サブブロックの水平方向のサイズを大きくする方法として、水平方向に複数のサブブロックで共通の動きベクトルを使用してもよい。
測をブロック単位で実施する場合、図24(b)は予測をサブブロック単位で実施する場合の
例である。ブロック内部のサブブロックサイズは同じであるので、図24のように、CTU境
界に接するブロックとそうでないブロックとで、ブロック毎にサブブロックのサイズが変わる。サブブロックの水平方向のサイズを大きくする方法として、水平方向に複数のサブブロックで共通の動きベクトルを使用してもよい。
CTU境界に接しないブロックのサブブロックのサイズBW*BH、CTU境界に接するブロック
のサブブロックのサイズをBWL*BHとする。例えばBWL=BW<<1であってもよい。
のサブブロックのサイズをBWL*BHとする。例えばBWL=BW<<1であってもよい。
サブブロックの水平方向のサイズを大きくする(水平方向に複数のサブブロックで共通の動きベクトルを使用する)と、複数のサブブロックが異なる動きベクトルをもつ場合、共通に使用する動きベクトルを決定しなければならない。1つのサブブロックに対応する動きベクトルが2個以上存在する場合、動き補償に使用する動きベクトルは下記の方法で導出する。
対象サブブロックの動きベクトルが2個以上存在する場合、
C1)サブブロックを元のサイズに戻し、各サブブロックに1つ動きベクトルを設定する。
C2)複数個の動きベクトルの平均値をサブブロックの動きベクトルとして設定する。
C3)複数個の動きベクトルのうち、最左に位置する動きベクトルをサブブロックの動きベ
クトルとして設定する。
C1)サブブロックを元のサイズに戻し、各サブブロックに1つ動きベクトルを設定する。
C2)複数個の動きベクトルの平均値をサブブロックの動きベクトルとして設定する。
C3)複数個の動きベクトルのうち、最左に位置する動きベクトルをサブブロックの動きベ
クトルとして設定する。
隣接サブブロックの動きベクトルが2個以上存在する場合、
R1)複数個の動きベクトルの平均値をサブブロックの動きベクトルとして設定する。
R2)複数個の動きベクトルのうち、最左に位置する動きベクトルをサブブロックの動きベ
クトルとして設定する。
R3)複数個の動きベクトルのうち、対象サブブロックの動きベクトルとの差分値が最小の
動きベクトルを、サブブロックの動きベクトルとして設定する。
R1)複数個の動きベクトルの平均値をサブブロックの動きベクトルとして設定する。
R2)複数個の動きベクトルのうち、最左に位置する動きベクトルをサブブロックの動きベ
クトルとして設定する。
R3)複数個の動きベクトルのうち、対象サブブロックの動きベクトルとの差分値が最小の
動きベクトルを、サブブロックの動きベクトルとして設定する。
上記サブブロックサイズ変更条件C1)〜C3)とR1)〜R3)を組み合わせて予測画像を生成することで、参照ピクチャメモリ306からの画像データの転送が転送量を削減することがで
きる。従ってメモリバンド幅の増加を抑制することができる。
きる。従ってメモリバンド幅の増加を抑制することができる。
図22(b)は、動き補償部3091のOBMC予測での補間画像生成の動作を説明するフローチャ
ートである。
ートである。
動き補償部3091は、ブロック境界がCTU境界か否かを判定する(S3411)。ブロック境界がCTU境界である場合(S3411でY)、S3412に進む。そうでない場合、(S3411でN)、S3413
に進む。
に進む。
動き補償部3091は、対象ブロックのサブブロックサイズを変更し、上述のC1)〜C3)とR1)〜R3)のいずれかの組み合わせにより動きベクトルを設定する(S3412)。
動き補償部3091は、デフォルト、あるいは、S3412で設定したサブブロックサイズと予
測パラメータに基づいて、補間画像PredC[x][y](x=0..BW-1, y=0..BH-1)を生成する(S3413)。
測パラメータに基づいて、補間画像PredC[x][y](x=0..BW-1, y=0..BH-1)を生成する(S3413)。
次にobmc_flag[i]=1か否かを判定する(S3414)。obmc_flag[i]=0の場合(S3414でN)、
次の方向(i=i+1)に進む。obmc_flag[i]=1の場合(S3414でY)、S3415に進む。
動き補償部3091は、補間画像PredRN[x][y]を生成する(S3415)。つまり、obmc_flag[i]=1
となるiが示す方向のサブブロックに対してのみ、インター予測パラメータ復号部303から入力された隣接ブロックの予測リスト利用フラグpredFlagLX[xPbN][yPbN]、参照ピクチャインデックスrefIdxLX[xPbN][yPbN]、動きベクトルmvLX[xPbN][yPbN]、および、S3412で
設定したサブブロックサイズとに基づいて、補間画像PredRN[x][y](x=0..BW-1, y=0..BH-1)を生成する。
動き補償部3091は、補間画像PredC[x][y]と補間画像PredRN[x][y]の加重平均処理を実施
する(S3416)。
次の方向(i=i+1)に進む。obmc_flag[i]=1の場合(S3414でY)、S3415に進む。
動き補償部3091は、補間画像PredRN[x][y]を生成する(S3415)。つまり、obmc_flag[i]=1
となるiが示す方向のサブブロックに対してのみ、インター予測パラメータ復号部303から入力された隣接ブロックの予測リスト利用フラグpredFlagLX[xPbN][yPbN]、参照ピクチャインデックスrefIdxLX[xPbN][yPbN]、動きベクトルmvLX[xPbN][yPbN]、および、S3412で
設定したサブブロックサイズとに基づいて、補間画像PredRN[x][y](x=0..BW-1, y=0..BH-1)を生成する。
動き補償部3091は、補間画像PredC[x][y]と補間画像PredRN[x][y]の加重平均処理を実施
する(S3416)。
OBMC処理を行う構成においては、動き補償部3091は補間画像PredC[x][y]と補間画像PredRN[x][y]の加重平均処理を行うことにより、補間画像PredC[x][y]を更新する。詳細に説明すると、動き補償部3091は、インター予測パラメータ復号部303から入力されたOBMCフ
ラグobmc_flag[i]=1(OBMC処理が有効)の場合、iが示す方向に垂直な方向のNumOBMC個
の画素に対し以下の加重平均処理を行う。
ラグobmc_flag[i]=1(OBMC処理が有効)の場合、iが示す方向に垂直な方向のNumOBMC個
の画素に対し以下の加重平均処理を行う。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRN[x][y])+o)>>shift (式INTER-4)
ここで、加重平均処理における重みw1、w2について説明する。加重平均処理における重みw1、w2は、サブブロック境界からの対象画素の距離(画素数)に応じて決定する。w1+w2=(1<<shift)、o=1<<(shift-1)の関係がある。
ここで、加重平均処理における重みw1、w2について説明する。加重平均処理における重みw1、w2は、サブブロック境界からの対象画素の距離(画素数)に応じて決定する。w1+w2=(1<<shift)、o=1<<(shift-1)の関係がある。
OBMC処理では、複数の隣接ブロックの補間画像を用いて予測画像が生成される。ここで、複数の隣接ブロックの動きパラメータから、PredC[x][y]を更新する方法を説明する。
はじめに、動き補償部3091は、obmc_flag[1]=1の場合、対象サブブロックの補間画像PredC[x][y]に上側隣接ブロックの動きパラメータを用いて作成した補間画像PredRA[x][y]を適用してPredC[x][y]を更新する。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRA[x][y])+o)>>shift (式INTER-5)
次に、動き補償部3091は、obmc_flag[i]=1である方向iに対し、対象サブブロックの左
側(i=2)、下側(i=3)および右側(i=4)の隣接ブロックの動きパラメータを用いて作成した
補間画像PredRL[x][y]、PredRL[x][y]、PredRL[x][y]を用いてPredC[x][y]を順次更新す
る。すなわち、以下の式により更新する。
次に、動き補償部3091は、obmc_flag[i]=1である方向iに対し、対象サブブロックの左
側(i=2)、下側(i=3)および右側(i=4)の隣接ブロックの動きパラメータを用いて作成した
補間画像PredRL[x][y]、PredRL[x][y]、PredRL[x][y]を用いてPredC[x][y]を順次更新す
る。すなわち、以下の式により更新する。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRL[x][y])+o)>>shift(式INTER-6)
PredC[x][y]=((w1*PredC[x][y]+w2*PredRB[x][y])+o)>>shift
PredC[x][y]=((w1*PredC[x][y]+w2*PredRR[x][y])+o)>>shift
動き補償部3091は、obmc_flag[0]=0の場合、あるいは、i=1〜4に対し、上記の処理を実施した後、PredC[x][y]を予測画像PredLX[x][y]にセットする(S3417)。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRB[x][y])+o)>>shift
PredC[x][y]=((w1*PredC[x][y]+w2*PredRR[x][y])+o)>>shift
動き補償部3091は、obmc_flag[0]=0の場合、あるいは、i=1〜4に対し、上記の処理を実施した後、PredC[x][y]を予測画像PredLX[x][y]にセットする(S3417)。
PredLX[x][y] = PredC[x][y] (式INTER-7)
動き補償部3091は対象サブブロックの隣接ブロックの動きパラメータを考慮して予測画像を生成することができるので、OBMC処理では予測精度の高い予測画像を生成することができる。
動き補償部3091は対象サブブロックの隣接ブロックの動きパラメータを考慮して予測画像を生成することができるので、OBMC処理では予測精度の高い予測画像を生成することができる。
また、OBMC処理により更新されるサブブロック境界に垂直な方向の画素数NumOBMCは任
意で良い(S=2〜ブロックサイズ)。OBMC処理の対象となるサブブロックを含むブロックの分割様式も、2NxN、Nx2N、NxN等の任意の分割様式で良い。
意で良い(S=2〜ブロックサイズ)。OBMC処理の対象となるサブブロックを含むブロックの分割様式も、2NxN、Nx2N、NxN等の任意の分割様式で良い。
このように、CTU境界ではサブブロックサイズを大きく設定して予測画像を作成するこ
とにより、参照ピクチャメモリ306からの画像データの転送量を所定値以下に制限するこ
とができる。従ってメモリバンド幅を削減することができる。
とにより、参照ピクチャメモリ306からの画像データの転送量を所定値以下に制限するこ
とができる。従ってメモリバンド幅を削減することができる。
(重み予測)
重み予測部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)である。
また、予測リスト利用フラグの両者(predFlagL0とpredFlagL1)が1の場合(双予測BiPredの場合)で、重み予測を用いない場合には、入力された動き補償画像PredL0、PredL1を平均し画素ビット数に合わせる以下の式の処理を行う。
(式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を符号化データから導出し、以下の式の処理を行う。
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の構成を、図25を用いて説明する。動画像符号化装置11は、予測画像生成部101、
減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、動画像符号化装置11はループフィルタ107が含まれない構成であってもよい。
(動画像符号化装置の構成)
次に、動画像符号化装置11の構成について説明する。以下に一例として、動画像符号化装置11の構成を、図25を用いて説明する。動画像符号化装置11は、予測画像生成部101、
減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、動画像符号化装置11はループフィルタ107が含まれない構成であってもよい。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域であ
る符号化ユニットCU毎に予測ユニットブロックの予測画像Pを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えばインター予測の場合、動きベクトルである。予測画像生成部101は、対象ブロックを起点として動きベクトルが示す参照ピクチャ上の位置
にあるブロックを読み出す。またイントラ予測の場合、予測パラメータとは例えばイントラ予測モードである。イントラ予測モードで使用する隣接ブロックの画素値を参照ピクチャメモリ109から読み出し、ブロックの予測画像Pを生成する。予測画像生成部101は、読
み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてブロックの予測画像Pを生成する。予測画像生成部101は、生成したブロックの予測画像
Pを減算部102に出力する。
る符号化ユニットCU毎に予測ユニットブロックの予測画像Pを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えばインター予測の場合、動きベクトルである。予測画像生成部101は、対象ブロックを起点として動きベクトルが示す参照ピクチャ上の位置
にあるブロックを読み出す。またイントラ予測の場合、予測パラメータとは例えばイントラ予測モードである。イントラ予測モードで使用する隣接ブロックの画素値を参照ピクチャメモリ109から読み出し、ブロックの予測画像Pを生成する。予測画像生成部101は、読
み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてブロックの予測画像Pを生成する。予測画像生成部101は、生成したブロックの予測画像
Pを減算部102に出力する。
なお、予測画像生成部101は、既に説明した予測画像生成部308と同じ動作である。
予測画像生成部101は、予測パラメータ符号化部から入力されたパラメータを用いて、
参照ピクチャメモリから読み出した参照ブロックの画素値をもとにブロックの予測画像P
を生成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力され
る。
参照ピクチャメモリから読み出した参照ブロックの画素値をもとにブロックの予測画像P
を生成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力され
る。
予測画像生成部101に含まれる(図示しない)イントラ予測画像生成部は既に説明した
イントラ予測画像生成部310と同じ動作である。
イントラ予測画像生成部310と同じ動作である。
減算部102は、予測画像生成部101から入力されたブロックの予測画像Pの信号値を、画像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_i
dx等の符号がある。
には、例えば、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、予測モードpred_mode_flag、及びマージインデックスmerge_i
dx等の符号がある。
エントロピー符号化部104は、入力された分割情報、予測パラメータ、量子化変換係数
等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆変換部105は、動画像復号装置31における、逆量子化・逆変換部311(図4
)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換
係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、残差
信号を算出する。逆量子化・逆変換部105は、算出した残差信号を加算部106に出力する。
)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換
係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、残差
信号を算出する。逆量子化・逆変換部105は、算出した残差信号を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたブロックの予測画像Pの信号値と逆量子化・逆変換部105から入力された残差信号の信号値を画素毎に加算して、復号画像を生
成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)を施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキング
フィルタのみの構成であってもよい。
フィルタのみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセッ
トを選択する。符号化パラメータとは、上述したQTあるいはBT分割パラメータや予測パラメータやこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてブロックの予測画像Pを
生成する。
トを選択する。符号化パラメータとは、上述したQTあるいはBT分割パラメータや予測パラメータやこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてブロックの予測画像Pを
生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化
誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化残差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出
された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値
が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、
選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110
は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化残差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出
された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値
が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、
選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110
は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから、符号化するための形式を導出し、エントロピー符号化部104に出力する。符号化す
るための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロ
ック単位の動きベクトルである。
るための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロ
ック単位の動きベクトルである。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトルのようなインター予測パラメータを導出する。インター予測パラメータ符号化部112は、予測画像生成部101に出力する予測画像の生成に必要なパラメータを導出する構成として、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と一部同一の構成を含む。インター予測パラメータ符号化部112の構成については、後述する。
また、イントラ予測パラメータ符号化部113は、予測画像生成部101に出力する予測画像の生成に必要な予測パラメータを導出する構成として、イントラ予測パラメータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたイントラ予測モードIntraPredModeから、符号化するための形式(例えばMPM_idx、rem_intra_luma_pred_mode等)を導出する。
(インター予測パラメータ符号化部の構成)
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パ
ラメータ符号化部112は、図5のインター予測パラメータ復号部303に対応する手段であり、図26に構成を示す。
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パ
ラメータ符号化部112は、図5のインター予測パラメータ復号部303に対応する手段であり、図26に構成を示す。
インター予測パラメータ符号化部112は、インター予測パラメータ符号化制御部1121、AMVP予測パラメータ導出部1122、減算部1123、サブブロック予測パラメータ導出部1125、BTM予測部1126、及び図示しない、分割モード導出部、マージフラグ導出部、インター予測識別子導出部、参照ピクチャインデックス導出部、ベクトル差分導出部などを含んで構成され、分割モード導出部、マージフラグ導出部、インター予測識別子導出部、参照ピクチャインデックス導出部、ベクトル差分導出部は各々、PU分割モードpart_mode、マージフ
ラグmerge_flag、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、差分ベクトルmvdLXを導出する。マージインデクス導出部11211、ベクトル候補インデクス導出部11212、AMVP予測パラメータ導出部1122、サブブロック予測パラメータ導出部1125、BTM予測部1126を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。インター予測パラメータ符号化部112は、動きベクトル(mvLX、subMvLX)と参照ピクチャインデックスrefIdxLX、PU分割モードpart_mode、インター予測識別子inter_pred_idc、あるいはこれらを示す情報を予測画像生成部101に出力する。またインター予測パラメータ符号化部112は、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、サブブロック予測モードフラグsubPbMotionFlagをエントロピー符号化部104に出力する。
ラグmerge_flag、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、差分ベクトルmvdLXを導出する。マージインデクス導出部11211、ベクトル候補インデクス導出部11212、AMVP予測パラメータ導出部1122、サブブロック予測パラメータ導出部1125、BTM予測部1126を総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。インター予測パラメータ符号化部112は、動きベクトル(mvLX、subMvLX)と参照ピクチャインデックスrefIdxLX、PU分割モードpart_mode、インター予測識別子inter_pred_idc、あるいはこれらを示す情報を予測画像生成部101に出力する。またインター予測パラメータ符号化部112は、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、サブブロック予測モードフラグsubPbMotionFlagをエントロピー符号化部104に出力する。
インター予測パラメータ符号化制御部1121は、マージインデックス導出部11211とベク
トル候補インデックス導出部11212を含む。マージインデックス導出部11211は、符号化パラメータ決定部110から入力された動きベクトルと参照ピクチャインデックスを、予測パ
ラメータメモリ108から読み出したマージ候補のブロックが持つ動きベクトルと参照ピク
チャインデックスと比較して、マージインデックスmerge_idxを導出し、エントロピー符
号化部104に出力する。マージ候補とは、符号化対象となる符号化対象CUから予め定めた
範囲にある参照ブロック(例えば、符号化対象ブロックの左下端、左上端、右上端に接する参照ブロック)であって、符号化処理が完了したブロックである。ベクトル候補インデックス導出部11212は予測ベクトルインデックスmvp_lX_idxを導出する。
トル候補インデックス導出部11212を含む。マージインデックス導出部11211は、符号化パラメータ決定部110から入力された動きベクトルと参照ピクチャインデックスを、予測パ
ラメータメモリ108から読み出したマージ候補のブロックが持つ動きベクトルと参照ピク
チャインデックスと比較して、マージインデックスmerge_idxを導出し、エントロピー符
号化部104に出力する。マージ候補とは、符号化対象となる符号化対象CUから予め定めた
範囲にある参照ブロック(例えば、符号化対象ブロックの左下端、左上端、右上端に接する参照ブロック)であって、符号化処理が完了したブロックである。ベクトル候補インデックス導出部11212は予測ベクトルインデックスmvp_lX_idxを導出する。
サブブロック予測パラメータ導出部1125には、符号化パラメータ決定部110がサブブロ
ック予測モードの使用を決定した場合、subPbMotionFlagの値に従って、空間サブブロッ
ク予測、時間サブブロック予測、アフィン予測、マッチング動き導出、OBMC予測のいずれかのサブブロック予測の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、動画像装置31の説明で述べたように、隣接ブロック、参照ピクチャブロック等の動きベクトルや参照ピクチャインデックスを予測パラメータメモリ108から読み出し、導出する。サブブロック予測パラメータ導出部1125、および、
この中に含まれる時空間サブブロック予測部11251、アフィン予測部11252、マッチング予測部11253、OBMC予測部11254は、インター予測パラメータ復号部303のサブブロック予測
パラメータ導出部3037、および、この中に含まれる時空間サブブロック予測部30371、ア
フィン予測部30372、マッチング予測部30373、OBMC予測部30374と同様の構成を有する。
ック予測モードの使用を決定した場合、subPbMotionFlagの値に従って、空間サブブロッ
ク予測、時間サブブロック予測、アフィン予測、マッチング動き導出、OBMC予測のいずれかのサブブロック予測の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、動画像装置31の説明で述べたように、隣接ブロック、参照ピクチャブロック等の動きベクトルや参照ピクチャインデックスを予測パラメータメモリ108から読み出し、導出する。サブブロック予測パラメータ導出部1125、および、
この中に含まれる時空間サブブロック予測部11251、アフィン予測部11252、マッチング予測部11253、OBMC予測部11254は、インター予測パラメータ復号部303のサブブロック予測
パラメータ導出部3037、および、この中に含まれる時空間サブブロック予測部30371、ア
フィン予測部30372、マッチング予測部30373、OBMC予測部30374と同様の構成を有する。
AMVP予測パラメータ導出部1122は、アフィン予測部11221を含み、上述のAMVP予測パラ
メータ導出部3032(図5参照)と同様な構成を有する。
メータ導出部3032(図5参照)と同様な構成を有する。
すなわち、予測モードpredModeがインター予測モードを示す場合、AMVP予測パラメータ導出部1122には符号化パラメータ決定部110から動きベクトルmvLXが入力される。AMVP予測パラメータ導出部1122は、入力された動きベクトルmvLXに基づいて予測ベクトルmvpLXを導出する。AMVP予測パラメータ導出部1122は、導出した予測ベクトルmvpLXを減算部1123に出力する。なお、参照ピクチャインデックスrefIdxLX及び予測ベクトルインデック
スmvp_lX_idxは、エントロピー符号化部104に出力される。また、アフィン予測部11221は、上述のAMVP予測パラメータ導出部3032のアフィン予測部30321(図5参照)と同様な構成を有する。
スmvp_lX_idxは、エントロピー符号化部104に出力される。また、アフィン予測部11221は、上述のAMVP予測パラメータ導出部3032のアフィン予測部30321(図5参照)と同様な構成を有する。
減算部1123は、符号化パラメータ決定部110から入力された動きベクトルmvLXから、AMVP予測パラメータ導出部1122から入力された予測ベクトルmvpLXを減算して差分ベクトルmvdLXを生成する。差分ベクトルmvdLXはエントロピー符号化部104に出力される。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置は、対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、所定の条件を満たす場合、対象サブブロックの右および下方向境界のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第1の補間画像を設定す
ることを特徴とする。
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、所定の条件を満たす場合、対象サブブロックの右および下方向境界のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第1の補間画像を設定す
ることを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記所定の条件は、対象サブブロックのサイズが第1の所定値よりも小さい場合であることを特徴
とする。
とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記所定の条件は、対象サブブロックのサイズが第1の所定値よりも小さく、かつ、対象サブブロ
ックと隣接サブブロックの動きベクトルの差分が第2の所定値より大きい場合であること
を特徴とする。
ックと隣接サブブロックの動きベクトルの差分が第2の所定値より大きい場合であること
を特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記所定の条件は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニット)の境界
と重なる場合であることを特徴とする。
と重なる場合であることを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記所定の条件は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニット)の境界
と重なり、かつ、対象サブブロックのサイズが第1の所定値よりも小さい場合であること
を特徴とする。
と重なり、かつ、対象サブブロックのサイズが第1の所定値よりも小さい場合であること
を特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置は、対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニット)の
境界と重なる場合、水平方向に複数のサブブロックで共通の動きベクトルを使用することを特徴とする。
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニット)の
境界と重なる場合、水平方向に複数のサブブロックで共通の動きベクトルを使用することを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記共通の動きベクトルは、複数のサブブロックの複数個の動きベクトルの平均値であることを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記共通の動きベクトルは、複数のサブブロックのうち、最左に位置するサブブロックの動きベクトルであることを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置において、前記共通の動きベクトルは、複数のサブブロックのうち、対象サブブロックの動きベクトルとの差分値が最小の動きベクトルであることを特徴とする。
本発明の一態様に係る動画像復号装置、あるいは動画像符号化装置は、対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、第1の予測手段と第2の予測手段が、アフィン予測とマッチング予測のいずれも使用していない場合、OBMC処理を禁止し、対象サブブロックの予測画像は第1の補間
画像を設定することを特徴とする。
第1の予測手段と、隣接サブブロックのインター予測パラメータに基づいて対象サブブロ
ックの補間画像(第2の補間画像)を生成する第2の予測手段と、第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、前記第2
の予測手段は、第1の予測手段と第2の予測手段が、アフィン予測とマッチング予測のいずれも使用していない場合、OBMC処理を禁止し、対象サブブロックの予測画像は第1の補間
画像を設定することを特徴とする。
本発明の一態様に係る動きベクトル導出装置は、マッチング処理により対象ブロックの動きベクトルをサーチする第1の動きベクトルサーチ部と、前記第1の動きベクトルサーチ部により選択された動きベクトルを参照して、前記対象ブロック内に含まれる複数のサブブロックの各々について、マッチング処理により動きベクトルをサーチする第2の動きベクトルサーチ部と、を備え、前記第1の動きベクトルサーチ部は、対象ブロックに関する初期ベクトルサーチを行ったうえで、局所的サーチを行うことにより動きベクトルをサーチするものであり、前記第2の動きベクトルサーチ部は、サブブロックに関する初期ベクトルサーチを行ったうえで、局所的サーチを行うことにより動きベクトルをサーチするものであり、前記第1の動きベクトルサーチ部、あるいは、前記第2の動きベクトルサーチ部において、所定の条件に基づきサーチレンジあるいは動き補償フィルタのタップ数を
変更することを特徴とする。
変更することを特徴とする。
本発明の一態様に係る動きベクトル導出装置は、前記第1の動きベクトルサーチ部、あるいは、前記第2の動きベクトルサーチ部において、前記所定の条件は対象ブロックのサイズであることを特徴とする。
本発明の一態様に係る動きベクトル導出装置は、前記第2の動きベクトルサーチ部において、前記所定の条件は、前記第1の動きベクトルサーチ部でサーチされた動きベクトルの大きさであることを特徴とする。
本発明の一態様に係る動きベクトル導出装置において、前記第1の動きベクトルサーチ部の初期ベクトルサーチは、予測ベクトル候補リストに格納された、前記予測ブロックの隣接ブロックの動きベクトルを所定値以内にクリッピングしたベクトルを、初期ベクトルサーチに使用することを特徴とする。
本発明の一態様に係る動きベクトル導出装置において、前記所定値は、前記予測ベクトル候補リストの先頭からN個の動きベクトルを用いて決定することを特徴とする。
本発明の一態様に係る動きベクトル導出装置において、前記所定値は、前記予測ベクトル候補リストに格納された動きベクトルの平均値を用いて決定することを特徴とする。
本発明の一態様に係る動きベクトル導出装置において、前記所定値は、参照ピクチャリストの先頭ピクチャを用いる動きベクトルのみを用いて決定することを特徴とする。
本発明の一態様に係る動きベクトル導出装置は、前記対象ブロックの隣接ブロックをサーチし、利用可能な隣接ブロックの有する動きベクトルと参照ピクチャを、前記対象ブロックのブロックレベルの動きベクトル(第1の動きベクトル)と参照ピクチャ(第1の参照ピクチャ)として設定する設定手段と、第1の動きベクトルと第1の参照ピクチャを用いて、コロケートブロックのサブブロックベースの動きベクトル(第2の動きベクトル)と参
照ピクチャ(第2の参照ピクチャ)を取得する取得手段と、前記対象ブロックのサブブロ
ックレベルの参照ピクチャ(第3の参照ピクチャ)に対応する、前記対象ブロックのサブ
ブロックベースの動きベクトル(第3の動きベクトル)を、第2の参照ピクチャを用いて第2の動きベクトルをスケーリングすることにより導出する導出手段とを備え、スケーリン
グによって導出された第3の動きベクトルが所定値より大きい場合、第3の動きベクトルをクリッピングすることを特徴とする。
照ピクチャ(第2の参照ピクチャ)を取得する取得手段と、前記対象ブロックのサブブロ
ックレベルの参照ピクチャ(第3の参照ピクチャ)に対応する、前記対象ブロックのサブ
ブロックベースの動きベクトル(第3の動きベクトル)を、第2の参照ピクチャを用いて第2の動きベクトルをスケーリングすることにより導出する導出手段とを備え、スケーリン
グによって導出された第3の動きベクトルが所定値より大きい場合、第3の動きベクトルをクリッピングすることを特徴とする。
(ソフトウェアによる実現例)
なお、上述した実施形態における動画像符号化装置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を、動画像の送信及び受信に利用できることを、図27を参照して説明する。
図27(a)は、動画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック
図である。図27(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって
符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した動画像符号化装置11は、この符号
化部PROD_A1として利用される。
図である。図27(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を更に備えていてもよい。図27(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示してい
るが、一部を省略しても構わない。
するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部PRED_A7を更に備えていてもよい。図27(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示してい
るが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよい
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
図27(b)は、動画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック図
である。図27(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部P
ROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号
部PROD_B3と、を備えている。上述した動画像復号装置31は、この復号部PROD_B3として利用される。
である。図27(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部P
ROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号
部PROD_B3と、を備えている。上述した動画像復号装置31は、この復号部PROD_B3として利用される。
受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示す
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図27(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図27(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を、動画像の記録及び再生に利用できることを、図28を参照して説明する。
図28(a)は、上述した動画像符号化装置11を搭載した記録装置PROD_Cの構成を示した
ブロック図である。図28(a)に示すように、記録装置PROD_Cは、動画像を符号化すること
によって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した動画像符号化装置
11は、この符号化部PROD_C1として利用される。
ブロック図である。図28(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に内蔵されるタイプのものであってもよいし、(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を更に備えていてもよい。図28(a)においては、これら全てを記録装置PROD_Cが備えた構成を
例示しているが、一部を省略しても構わない。
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図28(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
の一例である。
図28(b)は、上述した動画像復号装置31を搭載した再生装置PROD_Dの構成を示したブ
ロックである。図28(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれ
た符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した動画像復
号装置31は、この復号部PROD_D2として利用される。
ロックである。図28(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を更に備えていてもよい。図28(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図28(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:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
10 CT情報復号部
20 CU復号部
41 動画像表示装置
31 動画像復号装置
11 動画像符号化装置
20 CU復号部
41 動画像表示装置
31 動画像復号装置
11 動画像符号化装置
Claims (10)
- 対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、
対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する第1の予測手段と、
隣接サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第2の補間画像)を生成する第2の予測手段と、
第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、
前記第2の予測手段は、所定の条件を満たす場合、対象サブブロックの右および下方向
境界のOBMC処理を禁止し、対象サブブロックの右および下方向の予測画像は第1の補間画
像を設定することを特徴とする動画像符号化装置、および、動画像復号装置。 - 前記所定の条件は、対象サブブロックのサイズが第1の所定値よりも小さい場合である
ことを特徴とする請求項1に記載の動画像符号化装置、および、動画像復号装置。 - 前記所定の条件は、対象サブブロックのサイズが第1の所定値よりも小さく、かつ、対
象サブブロックと隣接サブブロックの動きベクトルの差分が第2の所定値より大きい場合
であることを特徴とする請求項1に記載の動画像符号化装置、および、動画像復号装置。 - 前記所定の条件は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニッ
ト)の境界と重なる場合であることを特徴とする請求項1に記載の動画像符号化装置、および、動画像復号装置。 - 前記所定の条件は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニッ
ト)の境界と重なり、かつ、対象サブブロックのサイズが第1の所定値よりも小さい場合
であることを特徴とする請求項1に記載の動画像符号化装置、および、動画像復号装置。 - 対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、
対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する第1の予測手段と、
隣接サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第2の補間画像)を生成する第2の予測手段と、
第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、
前記第2の予測手段は、サブブロックの上側あるいは下側境界がCTU(符号化ツリーユニット)の境界と重なる場合、水平方向に複数のサブブロックで共通の動きベクトルを使用することを特徴とする動画像符号化装置、および、動画像復号装置。 - 前記共通の動きベクトルは、複数のサブブロックの複数個の動きベクトルの平均値であることを特徴とする請求項6に記載の動画像符号化装置、および、動画像復号装置。
- 前記共通の動きベクトルは、複数のサブブロックのうち、最左に位置するサブブロックの動きベクトルであることを特徴とする請求項6に記載の動画像符号化装置、および、動画像復号装置。
- 前記共通の動きベクトルは、複数のサブブロックのうち、対象サブブロックの動きベクトルとの差分値が最小の動きベクトルであることを特徴とする請求項6に記載の動画像符
号化装置、および、動画像復号装置。 - 対象サブブロックと隣接サブブロックのインター予測パラメータに基づいて、サブブロック境界の予測画像を生成するオーバーラップ動き補償(OBMC)予測において、
対象サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第1の補間画像)を生成する第1の予測手段と、
隣接サブブロックのインター予測パラメータに基づいて対象サブブロックの補間画像(第2の補間画像)を生成する第2の予測手段と、
第1の補間画像と第2の補間画像の重み付加算処理により予測画像を生成する予測画像生成手段とを備え、
前記第2の予測手段は、第1の予測手段と第2の予測手段が、アフィン予測とマッチング
予測のいずれも使用していない場合、OBMC処理を禁止し、対象サブブロックの予測画像は第1の補間画像を設定することを特徴とする動画像符号化装置、および、動画像復号装置
。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017218056A JP2021016018A (ja) | 2017-11-13 | 2017-11-13 | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 |
PCT/JP2018/042009 WO2019093523A1 (ja) | 2017-11-13 | 2018-11-13 | 動画像符号化装置および動画像復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017218056A JP2021016018A (ja) | 2017-11-13 | 2017-11-13 | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021016018A true JP2021016018A (ja) | 2021-02-12 |
Family
ID=74530634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017218056A Pending JP2021016018A (ja) | 2017-11-13 | 2017-11-13 | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021016018A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022212405A1 (en) * | 2021-03-29 | 2022-10-06 | Beijing Dajia Internet Information Technology Co., Ltd. | Overlapped block motion compensation for inter prediction |
-
2017
- 2017-11-13 JP JP2017218056A patent/JP2021016018A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022212405A1 (en) * | 2021-03-29 | 2022-10-06 | Beijing Dajia Internet Information Technology Co., Ltd. | Overlapped block motion compensation for inter prediction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7223886B2 (ja) | 画像復号方法 | |
JP7421586B2 (ja) | 復号装置および符号化装置 | |
JP2021005741A (ja) | 画像符号化装置及び画像復号装置 | |
WO2019004283A1 (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2021016016A (ja) | 動画像符号化装置及び動画像復号装置 | |
CN111886867B (zh) | 运动矢量推导装置、运动图像解码装置以及运动图像编码装置 | |
JP2021010046A (ja) | 画像符号化装置及び画像復号装置 | |
US20200021837A1 (en) | Video decoding apparatus and video coding apparatus | |
WO2020184487A1 (ja) | 動画像復号装置 | |
WO2020116456A1 (ja) | 動画像復号装置 | |
WO2020059877A1 (ja) | 画像復号装置および画像符号化装置 | |
WO2020137920A1 (ja) | 予測画像生成装置、動画像復号装置、動画像符号化装置および予測画像生成方法 | |
WO2018173895A1 (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
WO2018110180A1 (ja) | 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
JP7241153B2 (ja) | 画像復号装置 | |
JP2020043500A (ja) | 動画像符号化装置及び動画像復号装置 | |
WO2019131349A1 (ja) | 画像復号装置、画像符号化装置 | |
JP2020145650A (ja) | 画像復号装置および画像符号化装置 | |
JP2020088660A (ja) | 動画像符号化装置、動画像復号装置 | |
JP2020108012A (ja) | 画像復号装置および画像符号化装置 | |
JP2019201254A (ja) | 画像復号装置、および画像符号化装置 | |
JP2021016018A (ja) | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 | |
JP2021057621A (ja) | 動画像符号化装置、動画像復号装置および予測画像生成装置 | |
JP2020145486A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2020022116A (ja) | 動画像符号化装置及び動画像復号装置 |