JP2020145484A - 動画像符号化装置及び動画像復号装置 - Google Patents
動画像符号化装置及び動画像復号装置 Download PDFInfo
- Publication number
- JP2020145484A JP2020145484A JP2017126272A JP2017126272A JP2020145484A JP 2020145484 A JP2020145484 A JP 2020145484A JP 2017126272 A JP2017126272 A JP 2017126272A JP 2017126272 A JP2017126272 A JP 2017126272A JP 2020145484 A JP2020145484 A JP 2020145484A
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- tile
- unit
- block
- motion vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】ピクチャ間の情報を参照するインター予測を用いる場合でも、各タイルの独立な復号を保証する動画像符号化装置及び動画像復号装置を提供する。【解決手段】空間隣接ブロックあるいは時間隣接ブロックから取得した利用可能な動きベクトルをもとに、スケーリングにより算出した対象ブロックのサブブロックレベルの動きベクトルの指す画素が、参照ピクチャ上で対象ブロックが含まれるタイルシーケンス内にない場合、画素値をタイルシーケンス内の画素値で置き換える。【選択図】図23
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ご
とに符号化/復号される。
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測残差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる(非特許文献1)。
また、近年、マルチコアCPUやGPU等のプロセッサの進化に伴い、動画像符号化および復号処理において、並列処理を行いやすい構成やアルゴリズムが採用されるようになってきた。並列化しやすい構成の一例として、タイル(Tile)という画面(ピクチャ)分割単位が導入されている。タイルはスライスと異なり、ピクチャを矩形領域に分割したものであるが、ある1枚のピクチャにおいて、タイル外の情報(予測モード、MV、画素値)を参照せずに、タイルを復号する。従って、タイルは1ピクチャ内では独立に復号することができる(非特許文献2)。
さらに、近年、4Kや8K、あるいはVR、360度動画のような360度全方位を取り込んだ動画に代表される、動画像の高解像度化が進んでいる。これらをスマホやHMD(Head Mount Display)で視聴する時は高解像度映像の一部を切り出してディスプレイに表示する。スマホ
やHMDでは電池の容量は大きくなく、表示に必要な一部の領域を抽出して、最小限の復号
処理により映像を視聴できる仕組みが期待されている。
やHMDでは電池の容量は大きくなく、表示に必要な一部の領域を抽出して、最小限の復号
処理により映像を視聴できる仕組みが期待されている。
"Algorithm Description of Joint Exploration Test Model 6", JVET-F1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 31 March- April 2017
ITU-T H.265(04/2015) SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video High efficiency video coding
上記で説明したように、タイルはピクチャを矩形領域に分割したものであり、1枚のピクチャにおいて、タイル外の情報(予測モード、MV、画素値)を参照せずに復号するため、タイルは1ピクチャ内では独立に復号することができる。しかしながら、インター予測を用い、既に復号した異なるピクチャ(参照ピクチャ)を参照する場合、対象タイルが参照ピクチャ上で参照する情報(予測モード、MV、画素値)は、参照ピクチャ上の対象タイルと同じ位置の領域の情報には限らない。従って、動画像の一部の領域(タイル、あるいは限られた個数のタイル)のみを再生する場合でも、動画像全体を再生する必要がある。タイルを空間方向だけでなく、時間方向にも独立に処理できるようにするには、ピクチャ内で対象タイルに隣接するタイルの情報を参照しないだけでなく、参照ピクチャでも、対象タイルと同じ位置のタイル(コロケートタイル)以外の情報を参照しないことが必要である。従って、各タイルを独立に復号するには、対象タイルおよびコロケートタイルに隣接するタイルの情報を使用する可能性のあるツールを一切使用しなければよいが、この場合、独立に復号できないタイルに比べて著しく符号化効率が低下する。
そこで、本発明は、上記の課題に鑑みてなされたものであり、その目的は、符号化効率の低下を抑えつつ、空間方向および時間方向において各タイルの独立な復号を保証する仕組みを提供することである。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置は、空間隣接ブロックあるいは時間隣接ブロックから、対象ブロックのサブブロック単位の動きベクトル(第1の動きベクトル)を導出する時空間サブブロック予測処理を実施する動画像符号化装置、あるいは動画像復号装置において、対象ブロックが含まれるタイルシーケンス内の隣接ブロックを参照し、利用可能な隣接ブロックの動きベクトル(第2の動きベクトル)と参照ピクチャ(第2の参照ピクチャ)を取得する手段と、第2の動きベクトルと第2の参照ピクチャをもとに、対象ブロックのサブブロックレベルの動きベクトル(第3の動きベクトル)を算出する手段と、対象ピクチャと、第2の参照ピクチャ、あるいは、対象ブロックの参照ピクチャ(第1の参照ピクチャ)との時間的な差を用いて第3の動きベクトルをスケーリングし、第1の動きベクトルを導出する手段と、対象ブロックのサブブロックの第1の動きベクトルによる動き補償画像を導出する際に、参照する参照画素が第1の参照ピクチャ上でタイルシーケンス内にあるか否かを判定する手段とを備え、前記参照画素がタイルシーケンス内にない場合、前記動き補償画像の画素値をタイルシーケンス内の画素値から導出する処理を実施することを特徴とする。
本発明の一態様によれば、動画像において、個々のツール毎に各タイルの復号の独立性を保証する仕組みを導入するので、符号化効率の低下を抑えつつ、各タイルを独立に復号をすることができる。これにより、表示等に必要な領域を選択して復号できるので、処理量を大幅に削減することができる。
(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
以下、図面を参照しながら本発明の実施形態について説明する。
図29は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、符号化対象画像を符号化した符号を伝送し、伝送された符号を復号し画像を表示するシステムである。画像伝送システム1は、画像符号化装置(動画像符号化装置)11、ネットワーク21、画像復号装置(動画像復号装置)31及び画像表示装置(動画像表示装置)41を含んで構成される。
画像符号化装置11には、単一レイヤもしくは複数レイヤの画像を示す画像Tが入力される。レイヤとは、ある時間を構成するピクチャが1つ以上ある場合に、複数のピクチャを区別するために用いられる概念である。たとえば、同一ピクチャを、画質や解像度の異なる複数のレイヤで符号化するとスケーラブル符号化になり、異なる視点のピクチャを複数のレイヤで符号化するとビュースケーラブル符号化となる。複数のレイヤのピクチャ間で予測(インターレイヤ予測、インタービュー予測)を行う場合には、符号化効率が大きく向上する。また予測を行わない場合(サイマルキャスト)の場合にも、符号化データをまとめることができる。
ネットワーク21は、画像符号化装置11が生成した符号化ストリームTeを画像復号装置31に伝送する。ネットワーク21は、インターネット(internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)また
はこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
はこれらの組み合わせである。ネットワーク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等が挙げられる。また、空間スケーラブル符号化、SNR
スケーラブル符号化では、画像復号装置31、画像表示装置41が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
スケーラブル符号化では、画像復号装置31、画像表示装置41が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズ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の性数値を返す関数である。
<符号化ストリームTeの構造>
本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図1は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリ
ームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図1の(a)〜(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス
、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スラ
イスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を
示す図である。
ームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図1の(a)〜(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス
、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スラ
イスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を
示す図である。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために画像復号装
置31が参照するデータの集合が規定されている。シーケンスSEQは、図1の(a)に示
すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図1では、#0と#1、すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために画像復号装
置31が参照するデータの集合が規定されている。シーケンスSEQは、図1の(a)に示
すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図1では、#0と#1、すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
ビデオパラメータセット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は、図1の(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
符号化ピクチャでは、処理対象のピクチャPICTを復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図1の(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0〜SNS-1のそれぞれを区別する必要が無い場合、符号の添え字
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために画像復号装置31が参照
するデータの集合が規定されている。スライスSは、図1の(c)に示すように、スライ
スヘッダSH、および、スライスデータSDATAを含んでいる。
符号化スライスでは、処理対象のスライスSを復号するために画像復号装置31が参照
するデータの集合が規定されている。スライスSは、図1の(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は、図1の
(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit、CTUブロック)を
含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために画像復
号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図1の
(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit、CTUブロック)を
含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図1の(e)には、処理対象の符号化ツリーユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割(QT分割)または2分木分割(BT分割)により符号化処理の基本的な単位である符号化ユニット(CU:Coding Unit)に分割される。再帰的な4分木分割または2分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木及び2分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。
図1の(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画素の何れかをとり得る。
(符号化ユニット)
図1の(f)には、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、予測ツリー、変換ツリー、CUヘッダCUHから構成される。CUヘッダでは予測モード、分割方法(PU分割モ
ード)等が規定される。
図1の(f)には、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、予測ツリー、変換ツリー、CUヘッダCUHから構成される。CUヘッダでは予測モード、分割方法(PU分割モ
ード)等が規定される。
なお、符号化ストリームTeのデータ構造は、図1ではなく、図15の構成をとってもよい
。図15と図1の違いとして、スライスをさらにタイルに分割し、タイルの中にCTUが含ま
れることである。従って(d)符号化スライスデータの中にタイルが含まれ、(g)符号化タイルの中にCTUが含まれる。
。図15と図1の違いとして、スライスをさらにタイルに分割し、タイルの中にCTUが含ま
れることである。従って(d)符号化スライスデータの中にタイルが含まれ、(g)符号化タイルの中にCTUが含まれる。
また、符号化ストリームTeのデータ構造は、図1ではなく、図16の構成をとってもよい。図16と図1の違いとして、スライスをタイルに置換え、タイルデータの中にCTUが含ま
れることである。従って(b)符号化ピクチャの中にタイルが含まれ、(g)符号化タイルはタイルヘッダとタイルデータから構成され、(h)符号化タイルデータの中にCTUが
含まれる。
れることである。従って(b)符号化ピクチャの中にタイルが含まれ、(g)符号化タイルはタイルヘッダとタイルデータから構成され、(h)符号化タイルデータの中にCTUが
含まれる。
予測ツリーでは、符号化ユニットを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と表現する。
図2の(a)〜(h)に、それぞれのPU分割モードにおけるパーティションの形状(PU分割の境界の位置)を具体的に図示している。図2の(a)は、2Nx2Nのパーティション
を示し、(b)、(c)、(d)は、それぞれ、2NxN、2NxnU、および、2NxnDのパーティション(横長パーティション)を示す。(e)、(f)、(g)は、それぞれ、Nx2N、nLx2N、nRx2Nである場合のパーティション(縦長パーティション)を示し、(h)は、NxN
のパーティションを示す。なお、横長パーティションと縦長パーティションを総称して長方形パーティション、2Nx2N、NxNを総称して正方形パーティションと呼ぶ。
を示し、(b)、(c)、(d)は、それぞれ、2NxN、2NxnU、および、2NxnDのパーティション(横長パーティション)を示す。(e)、(f)、(g)は、それぞれ、Nx2N、nLx2N、nRx2Nである場合のパーティション(縦長パーティション)を示し、(h)は、NxN
のパーティションを示す。なお、横長パーティションと縦長パーティションを総称して長方形パーティション、2Nx2N、NxNを総称して正方形パーティションと呼ぶ。
また、変換ツリーにおいては、符号化ユニットが1または複数の変換ユニットTUに分割され、各変換ユニットの位置とサイズとが規定される。別の表現でいえば、変換ユニットは、符号化ユニットを構成する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と呼ぶ。
(インター予測識別子inter_pred_idcと予測リスト利用フラグpredFlagLX)
インター予測識別子inter_pred_idcと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のとおりであり、相互に変換可能である。
インター予測識別子inter_pred_idcと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のとおりであり、相互に変換可能である。
inter_pred_idc = (predFlagL1<<1) + predFlagL0
predFlagL0 = inter_pred_idc & 1
predFlagL1 = inter_pred_idc >> 1
なお、インター予測パラメータは、予測リスト利用フラグを用いても良いし、インター予測識別子を用いてもよい。また、予測リスト利用フラグを用いた判定は、インター予測識別子を用いた判定に置き替えてもよい。逆に、インター予測識別子を用いた判定は、予測リスト利用フラグを用いた判定に置き替えてもよい。
predFlagL0 = inter_pred_idc & 1
predFlagL1 = inter_pred_idc >> 1
なお、インター予測パラメータは、予測リスト利用フラグを用いても良いし、インター予測識別子を用いてもよい。また、予測リスト利用フラグを用いた判定は、インター予測識別子を用いた判定に置き替えてもよい。逆に、インター予測識別子を用いた判定は、予測リスト利用フラグを用いた判定に置き替えてもよい。
(双予測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
上記式は、以下の式でも表現できる。
上記式は、以下の式でも表現できる。
biPred = (inter_pred_idc == PRED_BI)
なお、PRED_BIはたとえば3の値を用いることができる。
なお、PRED_BIはたとえば3の値を用いることができる。
(ループフィルタ)
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィ
ルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィ
ルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
デブロッキングフィルタは、ブロック境界を介して互いに隣接する輝度成分の画素のデブロック前画素値の差が予め定められた閾値よりも小さい場合に、当該ブロック境界に対して、輝度および色差成分の画素にデブロッキング処理を施すことによって、当該ブロック境界付近の画像の平滑化を行う。
SAOはデブロッキングフィルタ後に適用するフィルタであり、リンギング歪や量子化歪
を除去する効果がある。SAOはCTU単位の処理であり、画素値をいくつかのカテゴリに分類して、カテゴリ毎に画素単位にオフセットを加減算するフィルタである。SAOのエッジオ
フセット(EO)処理は、対象画素と隣接画素(参照画素)との大小関係に応じて画素値に加算するオフセット値を決定する。
を除去する効果がある。SAOはCTU単位の処理であり、画素値をいくつかのカテゴリに分類して、カテゴリ毎に画素単位にオフセットを加減算するフィルタである。SAOのエッジオ
フセット(EO)処理は、対象画素と隣接画素(参照画素)との大小関係に応じて画素値に加算するオフセット値を決定する。
ALFは、ALF前復号画像に対して、符号化ストリームTeから復号されたALFパラメータ(
フィルタ係数)ALFPを用いた適応的フィルタ処理を施すことによって、ALF済復号画像を
生成する。
フィルタ係数)ALFPを用いた適応的フィルタ処理を施すことによって、ALF済復号画像を
生成する。
フィルタ係数はスライスヘッダ直後に通知され、メモリに格納される。後続のインター予測を用いるスライスあるいはピクチャでは、フィルタ係数自体を通知する以外に、過去に通知され、メモリに格納されたフィルタ係数をインデックスで指定し、フィルタ係数自体を通知しないことで、フィルタ係数の符号化に必要なビット量を削減している。しかしながら、後述する各タイルを独立に復号するためには、ALFはフィルタ係数をタイル単位
で通知、格納し、同じTileIdを持つ後続のタイルにおいてはインデックスで指定されたフィルタ係数を用いて、適応的フィルタ処理を施してもよい。
で通知、格納し、同じTileIdを持つ後続のタイルにおいてはインデックスで指定されたフィルタ係数を用いて、適応的フィルタ処理を施してもよい。
(エントロピー符号化)
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。各タイルを独立に復号するためには、確率モデルはタイル単位でメモリに格納される。そして、同じTileIdを持つ後続のタイルにおいてコンテキストの初期状態は、同じスライスタイプ、同じスライスレベルの量子化パラメータを符号化あるいは復号に使用した既復号タイルの確率モデルを選択してもよい。
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。各タイルを独立に復号するためには、確率モデルはタイル単位でメモリに格納される。そして、同じTileIdを持つ後続のタイルにおいてコンテキストの初期状態は、同じスライスタイプ、同じスライスレベルの量子化パラメータを符号化あるいは復号に使用した既復号タイルの確率モデルを選択してもよい。
(タイル)
図17(a)はピクチャをN個のタイル(実線の矩形、図はN=9の例)に分割した例を示す図
である。タイルはさらに複数のCTU(破線の矩形)に分割される。図17(a)の中央のタイルの左上座標を(xTs,yTs)、幅をwT、高さをhTとする。またピクチャの幅をwPict、高さをhPictとする。なお、タイルの分割数やサイズに関する情報をタイル情報と呼び、詳細は後
述する。
図17(a)はピクチャをN個のタイル(実線の矩形、図はN=9の例)に分割した例を示す図
である。タイルはさらに複数のCTU(破線の矩形)に分割される。図17(a)の中央のタイルの左上座標を(xTs,yTs)、幅をwT、高さをhTとする。またピクチャの幅をwPict、高さをhPictとする。なお、タイルの分割数やサイズに関する情報をタイル情報と呼び、詳細は後
述する。
図17(b)はピクチャをタイルに分割した時の、CTUの符号化、復号順序を示す図である。各タイルに記載されている番号はTileId(ピクチャ内のタイルの識別子)であり、ピクチャ内のタイルに対し左上から右下にラスタースキャン順で番号が割り当てられ、タイルは
TileIdの順に処理される。つまりTileIdの昇順に符号化、復号処理される。また、CTUは
各タイル内を左上から右下へラスタースキャン順に処理され、1つのタイル内での処理が終わると、次のタイル内のCTUが処理される。
TileIdの順に処理される。つまりTileIdの昇順に符号化、復号処理される。また、CTUは
各タイル内を左上から右下へラスタースキャン順に処理され、1つのタイル内での処理が終わると、次のタイル内のCTUが処理される。
図17(c)は時間方向に連続するタイルを示す図である。図17(c)に示されるように、ビデオシーケンスは、複数の時間方向に連続するピクチャから構成されている。タイルシーケンスは、時間方向に連続する1つ以上の時刻のタイルから構成されている。なお、図中のCVS(Coded Video Sequence)は、あるイントラピクチャから復号順で次のイントラピクチ
ャの直前のピクチャまでのピクチャ群である。
ャの直前のピクチャまでのピクチャ群である。
タイル情報は、例えば図18(b)に示すように、num_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、column_width_minus1[i]、row_height_minus1[i]であり、例えば、PPSで通知される。ここで、num_tile_columns_minus1、num_tile_rows_minus1は各々ピクチャ内の水平、垂直方向のタイル数から1を引いた値である。uniform_spacing_flagはピクチャが均等にタイル分割されるか否かを示すフラグである。uniform_spacing_flagの値が1の場合、ピクチャの各タイルの幅、高さは同じに設定され、ピクチャ内の水平、垂直方向のタイル数から導出することができる。
wT = wPict/(num_tile_columns_minus1+1)
hT = hPict/(num_tile_rows_minus1+1)
uniform_spacing_flagの値が0の場合、ピクチャの各タイルの幅、高さは同じに設定され
なくてもよく、各タイルの幅column_width_minus1[i](図17のwT)、高さrow_height_minus1[i](図17のhT)をタイル毎に符号化する。
hT = hPict/(num_tile_rows_minus1+1)
uniform_spacing_flagの値が0の場合、ピクチャの各タイルの幅、高さは同じに設定され
なくてもよく、各タイルの幅column_width_minus1[i](図17のwT)、高さrow_height_minus1[i](図17のhT)をタイル毎に符号化する。
タイル情報はPPSで通知されるため、ピクチャ毎にタイルのサイズを変更することがで
きる。一方、本発明はタイルシーケンスを独立に復号する技術、つまり同じTileIdをもつタイルは、異なるTileIdをもつタイルの情報を参照することなく復号可能な技術に関する発明である。従って、各タイルが異なる時刻のピクチャ(参照ピクチャ)を参照するため、CVSの全てのピクチャにおいて、同一のタイル分割を適用してもよい。つまり、同じTileIDをもつタイルは、CVSの全ピクチャを通して、左上座標、幅、高さは同じに設定する。これは、図18(d)に示すvui_parameter()のtiles_fixed_structure_flagの値を1にセット
することで実現する。つまり、tiles_fixed_structure_flagの値が1の場合、CVSを通して、PPSで通知されるnum_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、 column_width_minus1[i]、row_height_minus1[i]、loop_filter_across_tiles_enabled_flag(タイル境界でのループフィルタのオンオフ)の値は一意としてもよい。tiles_fixed_structure_flagの値が1の場合、CVS内では、TileIdが同じタイルは、時刻(POC
:Picture Order Count)が異なるピクチャにおいても、ピクチャ上のタイル位置(タイ
ルの左上座標、幅、高さ)は変更されない。また、tiles_fixed_structure_flagの値が0
である場合、タイルシーケンスは時刻によってサイズが異なってもよい。
きる。一方、本発明はタイルシーケンスを独立に復号する技術、つまり同じTileIdをもつタイルは、異なるTileIdをもつタイルの情報を参照することなく復号可能な技術に関する発明である。従って、各タイルが異なる時刻のピクチャ(参照ピクチャ)を参照するため、CVSの全てのピクチャにおいて、同一のタイル分割を適用してもよい。つまり、同じTileIDをもつタイルは、CVSの全ピクチャを通して、左上座標、幅、高さは同じに設定する。これは、図18(d)に示すvui_parameter()のtiles_fixed_structure_flagの値を1にセット
することで実現する。つまり、tiles_fixed_structure_flagの値が1の場合、CVSを通して、PPSで通知されるnum_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、 column_width_minus1[i]、row_height_minus1[i]、loop_filter_across_tiles_enabled_flag(タイル境界でのループフィルタのオンオフ)の値は一意としてもよい。tiles_fixed_structure_flagの値が1の場合、CVS内では、TileIdが同じタイルは、時刻(POC
:Picture Order Count)が異なるピクチャにおいても、ピクチャ上のタイル位置(タイ
ルの左上座標、幅、高さ)は変更されない。また、tiles_fixed_structure_flagの値が0
である場合、タイルシーケンスは時刻によってサイズが異なってもよい。
図18(a)はシーケンスパラメータセットSPSの一部を抜粋したシンタックス表である。independent_tile_flagは、タイルシーケンスが空間方向に加え、時間方向でも独立に符号
化、復号できるか否かを示すフラグである。independent_tile_flagの値が1である場合、タイルシーケンスは独立に符号化、復号できることを意味する。この場合、タイルには下記の制約が課される。
(制約1)vui_parameter()のtiles_fixed_structure_flagの値が1である。つまり、CVS
を通して、PPSで通知されるピクチャ内の水平、垂直方向のタイル数、タイルの幅、タイ
ルの高さは同じである。従って、CVS内では、TileIdが同じタイルは、時刻(POC)が異なるピクチャにおいても、ピクチャ上のタイル位置(タイルの左上座標、幅、高さ)は変更されない。
(制約2)CVS内では、タイルはTileIdが異なるタイルの情報を参照しない。
化、復号できるか否かを示すフラグである。independent_tile_flagの値が1である場合、タイルシーケンスは独立に符号化、復号できることを意味する。この場合、タイルには下記の制約が課される。
(制約1)vui_parameter()のtiles_fixed_structure_flagの値が1である。つまり、CVS
を通して、PPSで通知されるピクチャ内の水平、垂直方向のタイル数、タイルの幅、タイ
ルの高さは同じである。従って、CVS内では、TileIdが同じタイルは、時刻(POC)が異なるピクチャにおいても、ピクチャ上のタイル位置(タイルの左上座標、幅、高さ)は変更されない。
(制約2)CVS内では、タイルはTileIdが異なるタイルの情報を参照しない。
上述の(制約2)「タイルはTileIdが異なるタイルの情報を参照しない」について、詳細に説明する。
図19は時間方向(異なるピクチャ間)のタイルの参照について説明する図である。図19(a)は、時刻t0のイントラピクチャPict(t0)をN個のタイルに分割した例である。図19(b)
は、時刻t1=t0+1のインターピクチャPict(t1)をN個のタイルに分割した例である。Pict(t1)はPict(t0)を参照する。図19(c)は、時刻t2=t0+2のインターピクチャPict(t2)をN個の
タイルに分割した例である。Pict(t2)はPict(t1)を参照する。図中、Tile(n,t)は時刻tのTileId=n(n=0..N-1)のタイルを表す。上述の(制約1)から、どの時刻においても、TileId=nのタイルの左上座標、幅、高さは同じである。
は、時刻t1=t0+1のインターピクチャPict(t1)をN個のタイルに分割した例である。Pict(t1)はPict(t0)を参照する。図19(c)は、時刻t2=t0+2のインターピクチャPict(t2)をN個の
タイルに分割した例である。Pict(t2)はPict(t1)を参照する。図中、Tile(n,t)は時刻tのTileId=n(n=0..N-1)のタイルを表す。上述の(制約1)から、どの時刻においても、TileId=nのタイルの左上座標、幅、高さは同じである。
図19(b)において、タイルTile(n,t1)内のCU1、CU2、CU3は、図19(a)のブロックBLK1、BLK2、BLK3を参照する。この場合、BLK1とBLK3はタイルTile(n,t0)外のタイルに含まれる
ブロックであり、これらを参照するには、時刻t0において、Tile(n,t0)だけではなく、Pict(t0)全体を復号する必要がある。つまりTileId=nに対応するタイルシーケンスを時刻t0、t1で復号するだけではタイルTile(n,t1)を復号することはできず、TileId=nに加えてTileId=n以外のタイルシーケンスの復号も必要である。従ってタイルシーケンスを独立に復号するためには、タイル内のCUの動き補償画像を導出する場合に参照する参照ピクチャ内の参照画素がコロケートタイル(参照ピクチャ上の同じ位置のタイル)内に含まれる必要がある。
ブロックであり、これらを参照するには、時刻t0において、Tile(n,t0)だけではなく、Pict(t0)全体を復号する必要がある。つまりTileId=nに対応するタイルシーケンスを時刻t0、t1で復号するだけではタイルTile(n,t1)を復号することはできず、TileId=nに加えてTileId=n以外のタイルシーケンスの復号も必要である。従ってタイルシーケンスを独立に復号するためには、タイル内のCUの動き補償画像を導出する場合に参照する参照ピクチャ内の参照画素がコロケートタイル(参照ピクチャ上の同じ位置のタイル)内に含まれる必要がある。
図19(c)において、タイルTile(n,t2)の右端の境界に隣接するCU4は時間方向の予測ベクトル候補として、図19(b)に示す時刻t1のピクチャ内におけるCU4'の右下ブロックCU4BRを参照し、CU4BRの動きベクトルを予測ベクトル候補として予測ベクトル候補リストに格納
する。しかしながらタイルの右端のCUではCU4BRはコロケートタイル外に位置し、CU4BRを参照するには、時刻t1において、Tile(n,t1)だけではなく、少なくともTile(n+1,t1)を復号する必要がある。つまりTileId=nのタイルシーケンスを復号するだけではタイルTile(n,t2)を復号することはできない。従ってタイルシーケンスを独立に復号するためには、時間方向の予測ベクトル候補として参照する参照ピクチャ上のブロックがコロケートタイル内に含まれる必要がある。上記の制約の具体的な実現方法を、以下の画像復号装置および画像符号化装置において説明する。
する。しかしながらタイルの右端のCUではCU4BRはコロケートタイル外に位置し、CU4BRを参照するには、時刻t1において、Tile(n,t1)だけではなく、少なくともTile(n+1,t1)を復号する必要がある。つまりTileId=nのタイルシーケンスを復号するだけではタイルTile(n,t2)を復号することはできない。従ってタイルシーケンスを独立に復号するためには、時間方向の予測ベクトル候補として参照する参照ピクチャ上のブロックがコロケートタイル内に含まれる必要がある。上記の制約の具体的な実現方法を、以下の画像復号装置および画像符号化装置において説明する。
また、independent_tile_flagの値が0である場合、タイルシーケンスが独立に復号できなくてもよいことを意味する。
(画像復号装置の構成)
図20(a)に本発明の画像復号装置(動画像復号装置)2000を示す。画像復号装置2000は
、ヘッダ情報復号部2001、タイル復号部2002a〜2002nおよびタイル合成部2003を含んで構成される。
図20(a)に本発明の画像復号装置(動画像復号装置)2000を示す。画像復号装置2000は
、ヘッダ情報復号部2001、タイル復号部2002a〜2002nおよびタイル合成部2003を含んで構成される。
ヘッダ情報復号部2001は、外部から入力され、NAL(network abstraction layer)ユニット単位で符号化された符号化ストリームTeを復号する。また、ヘッダ情報復号部2001は、外部から入力された、ディスプレイ等に表示すべき画像領域を示す制御情報から、表示に必要なタイル(TileId)を導出する。また、ヘッダ情報復号部2001は、符号化ストリームTeから表示に必要な符号化タイルを抽出し、タイル復号部2002a〜2002nに伝送する。また、ヘッダ情報復号部2001は、PPSを復号して得られたタイル情報(タイルの分割に関す
る情報)と、復号されるタイルのTileIdをタイル合成部2003に伝送する。
る情報)と、復号されるタイルのTileIdをタイル合成部2003に伝送する。
タイル復号部2002a〜2002nは、各符号化タイルを復号し、復号したタイルをタイル合成部2003に伝送する。
ここで、タイル復号部2002a〜2002nは、タイルシーケンスを1つの独立なビデオシーケンスとして復号処理を行うため、復号処理を行う際に時間的にも空間的にもタイルシーケンス間の予測情報を参照しない。すなわち、タイル復号部2002a〜2002nは、あるピクチャ内のタイルを復号する場合に、別の(異なるTileIdをもつ)タイルシーケンスのタイルを参照しない。
このように、タイル復号部2002a〜2002nが各々タイルを復号するため、複数のタイルを並列に復号処理することも、1つのタイルのみを独立して復号することもできる。その結果、タイル復号部2002a〜2002nによれば、必要最小限の復号処理のみ実行することで表示に必要な画像を復号できる等、効率よく復号処理を実行することができる。
タイル合成部2003は、ヘッダ情報復号部2001から伝送されたタイル情報および復号されるタイルのTileIdと、タイル復号部2002a〜2002nによって復号されたタイルとを参照し、表示に必要な復号画像Tdを生成、出力する。
(タイル復号部の構成)
タイル復号部2002a〜2002nの構成について説明する。以下に一例として、タイル復号部2002aの構成を、図5を用いて説明する。図5は、タイル復号部2002a〜2002nの1つであ
る2002の構成を示すブロック図である。タイル復号部2002は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構成される。なお、後述のタイル符号化部2012に合わせ、タイル復号部2002にループフィルタ305が含まれない構成もある。
タイル復号部2002a〜2002nの構成について説明する。以下に一例として、タイル復号部2002aの構成を、図5を用いて説明する。図5は、タイル復号部2002a〜2002nの1つであ
る2002の構成を示すブロック図である。タイル復号部2002は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構成される。なお、後述のタイル符号化部2012に合わせ、タイル復号部2002にループフィルタ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である。どの符号を復号するかの制御は、予測パラメータ復号部3
02の指示に基づいて行われる。エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換
)等の周波数変換を行い量子化して得られる係数である。
02の指示に基づいて行われる。エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換
)等の周波数変換を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを復号する。イントラ予測パラメータとは、CUを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。
イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
イントラ予測パラメータ復号部304は、輝度と色差で異なるイントラ予測モードを導出しても良い。この場合、イントラ予測パラメータ復号部304は、輝度の予測パラメータとして輝度予測モードIntraPredModeY、色差の予測パラメータとして、色差予測モードIntraPredModeCを復号する。輝度予測モードIntraPredModeYは、35モードであり、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)が対応する。色差予測モードIntraPredModeCは、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)、LMモード(35)の何れかを用いるものである。イントラ予測パラメータ復号部304は、輝度モードと色差モードが同じであるか否かを示すフラグを復号し、フラグが輝度モードと同じモードであることを示せば、IntraPredModeCにIntraPredModeYを割り当て、フラグが輝度モードと異なるモードであることを示せば、IntraPredModeCとして、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)、LMモード(35)を復号しても良い。
ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ313、サンプル適応オフセット(SAO)314、適応ループフィルタ(ALF)315等のフィルタを施す。なお、ループフィルタ305はタイル符号化部2012と対になっていれば、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタ313のみの構成であってもよい。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、復号対象のピクチャ及びCTUあるいはCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及び予測ユニット(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXがある。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてPU(ブロック)もし
くはサブブロックの予測画像を生成する。
くはサブブロックの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてインター予測によりPU(ブロック)もしくはサブブロックの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象PUを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックをもとに予測を行ってPUの予測画像を生成する。インター予測画像生成部309は、生成したPUの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、PUもしくはサブブロックの予測画像を生成するために参照する領域である。
(タイル境界のパディング)
参照ピクチャブロック(参照ブロック)は、予測リスト利用フラグpredFlagLX=1の参照ピクチャリストに対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャ上にあって、対象CU(ブロック)の位置を基準として、動きベクトルmvLXが示す位置のブロックである。既に説明したように、対象タイルと同じTileIdをもつ参照ピクチャ上のタイル(コロケートタイル)内に、参照ブロックが位置する保証はない。そこで、一例として、参照ピクチャにおいて、図21(a)に示すように各タイルの外側をパディング(タイル境界
の画素値で補填する)することで、コロケートタイル外の画素値を参照することなく参照ブロックを読みだすことができる。
参照ピクチャブロック(参照ブロック)は、予測リスト利用フラグpredFlagLX=1の参照ピクチャリストに対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャ上にあって、対象CU(ブロック)の位置を基準として、動きベクトルmvLXが示す位置のブロックである。既に説明したように、対象タイルと同じTileIdをもつ参照ピクチャ上のタイル(コロケートタイル)内に、参照ブロックが位置する保証はない。そこで、一例として、参照ピクチャにおいて、図21(a)に示すように各タイルの外側をパディング(タイル境界
の画素値で補填する)することで、コロケートタイル外の画素値を参照することなく参照ブロックを読みだすことができる。
ピクチャの左上座標を基準とした対象ブロックの左上座標を(xs,ys)、対象ブロックの
幅と高さをwBLK、hBLK、対象ブロックが位置する対象タイルの左上座標を(xTs,yTs)、対
象タイルの幅と高さをwT、hT、1/(2^f)精度の動きベクトルを(mvLXx,mvLXy)とすると、パディングした場合、参照ピクチャの左上座標を基準とした参照ブロックの左上座標(xREFs,yREFs)は下式で表される。
幅と高さをwBLK、hBLK、対象ブロックが位置する対象タイルの左上座標を(xTs,yTs)、対
象タイルの幅と高さをwT、hT、1/(2^f)精度の動きベクトルを(mvLXx,mvLXy)とすると、パディングした場合、参照ピクチャの左上座標を基準とした参照ブロックの左上座標(xREFs,yREFs)は下式で表される。
xREFx = Clip3(xTs, xTs+wT-1, xs+Int(mvLXx>>f))
yREFx = Clip3(yTs, yTs+hT-1, ys+Int(mvLXy>>f))
座標(xREFx,yREFx)の画素値を読み出すことで図21(a)のパディングを実現することができる。
yREFx = Clip3(yTs, yTs+hT-1, ys+Int(mvLXy>>f))
座標(xREFx,yREFx)の画素値を読み出すことで図21(a)のパディングを実現することができる。
independent_tile_flag=1の場合に、このようにタイル境界をパディングすることで、
インター予測で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルシーケンスを独立にインター予測を用いて復号することができる。
インター予測で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルシーケンスを独立にインター予測を用いて復号することができる。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたPUのうち、復号対象PUから予め定めた範囲にある隣接PUを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、復号対象PUがいわゆるラスタースキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接PUのうちのいずれかであり、イントラ予測モードによって異なる。ラス
タースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
タースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
イントラ予測画像生成部310は、読み出した隣接PUに基づいてイントラ予測モードIntraPredModeが示す予測モードで予測を行ってPUの予測画像を生成する。イントラ予測画
像生成部310は、生成したPUの予測画像を加算部312に出力する。
像生成部310は、生成したPUの予測画像を加算部312に出力する。
イントラ予測パラメータ復号部304において、輝度と色差で異なるイントラ予測モードを導出する場合、イントラ予測画像生成部310は、輝度予測モードIntraPredModeYに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)の何れかによって輝度のPUの予測画像を生成し、色差予測モードIntraPredModeCに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)、LMモード(35)の何れかによって色差のPUの予測画像を生成する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部311は、求めた変換係数について逆DCT、逆DST、逆KLT等の逆周波数変換を行い、予測残差信号を算出する。逆量子化
・逆変換部311は、算出した残差信号を加算部312に出力する。
・逆変換部311は、算出した残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309またはイントラ予測画像生成部310から入力されたPUの予測画像と逆量子化・逆変換部311から入力された残差信号を画素毎に加算して、PUの復号画像を生成する。加算部312は、生成したブロックの復号画像をデブロッキングフィルタ313、SAO(サンプル適応オフセット)部314、またはA
LF315の少なくとも何れかに出力する。
LF315の少なくとも何れかに出力する。
(インター予測パラメータ復号部の構成)
次に、インター予測パラメータ復号部303の構成について説明する。
次に、インター予測パラメータ復号部303の構成について説明する。
図12は、本実施形態に係るインター予測パラメータ復号部303の構成を示す概略図である。インター予測パラメータ復号部303は、インター予測パラメータ復号制御部3031、AMVP予測パラメータ導出部3032、加算部3035、マージ予測パラメータ導出部3036およびサブブロック予測パラメータ導出部3037を含んで構成される。
インター予測パラメータ復号制御部3031は、インター予測に関連する符号(シンタックス要素)の復号をエントロピー復号部301に指示し、符号化データに含まれる符号(シンタックス要素)、例えば、PU分割モードpart_mode、マージフラグmerge_flag、マ
ージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデ
ックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLXを抽出す
る。
ージインデックス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を加算し、動きベクトルを導出する。
ンデックスmvp_lX_idxから予測ベクトルmvpLXを導出する。詳細は後述する。インター予
測パラメータ復号制御部3031は、差分ベクトルmvdLXを加算部3035に出力する。
加算部3035では、予測ベクトルmvpLXと差分ベクトルmvdLXを加算し、動きベクトルを導出する。
マージフラグmerge_flagが1、すなわち、マージ予測モードを示す場合、インター予測パラメータ復号制御部3031は、マージ予測に係る予測パラメータとして、マージインデックスmerge_idxを抽出する。インター予測パラメータ復号制御部3031は、抽出し
たマージインデックスmerge_idxをマージ予測パラメータ導出部3036(詳細は後述す
る)に出力し、サブブロック予測モードフラグsubPbMotionFlagをサブブロック予測パラ
メータ導出部3037に出力する。サブブロック予測パラメータ導出部3037は、サブブロック予測モードフラグsubPbMotionFlagの値に応じて、PUを複数のサブブロックに分
割し、サブブロック単位で動きベクトルを導出する。すなわち、サブブロック予測モードでは、予測ブロックは4x4もしくは8x8という小さいブロック単位で予測される。後述のタイル符号化部2012においては、CUを複数のパーティション(2NxN、Nx2N、NxNなどのPU)
に分割し、パーティション単位で予測パラメータのシンタックスを符号化する方法に対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
たマージインデックスmerge_idxをマージ予測パラメータ導出部3036(詳細は後述す
る)に出力し、サブブロック予測モードフラグsubPbMotionFlagをサブブロック予測パラ
メータ導出部3037に出力する。サブブロック予測パラメータ導出部3037は、サブブロック予測モードフラグsubPbMotionFlagの値に応じて、PUを複数のサブブロックに分
割し、サブブロック単位で動きベクトルを導出する。すなわち、サブブロック予測モードでは、予測ブロックは4x4もしくは8x8という小さいブロック単位で予測される。後述のタイル符号化部2012においては、CUを複数のパーティション(2NxN、Nx2N、NxNなどのPU)
に分割し、パーティション単位で予測パラメータのシンタックスを符号化する方法に対して、サブブロック予測モードでは複数のサブブロックを集合(セット)にまとめ、当該集合毎に予測パラメータのシンタックスを符号化するため、少ない符号量で多くのサブブロックの動き情報を符号化することができる。
詳細に説明すると、サブブロック予測パラメータ導出部3037は、サブブロック予測モードにてサブブロック予測を行う、時空間サブブロック予測部30371、アフィン予測部30372、マッチング動き導出部30373、の少なくとも一つを備える。
(サブブロック予測モードフラグ)
ここで、タイル復号部2002、タイル符号化部2012(詳細は後述する)における、あるPUの予測モードがサブブロック予測モードであるか否かを示すサブブロック予測モードフラグsubPbMotionFlagの導出方法について説明する。タイル復号部2002、タイル符号化部2012は、後述する空間サブブロック予測SSUB、時間サブブロック予測TSUB、アフィン予測AFFINE、マッチング動き導出MATのいずれを用いたかに基づいて、サブブロック予測モードフラグsubPbMotionFlagを導出する。たとえば、あるPUで選択された予測モードをN(たとえばNは選択されたマージ候補を示すラベル)とした場合には、以下の式によりサブブロッ
ク予測モードフラグsubPbMotionFlagを導出してもよい。
ここで、タイル復号部2002、タイル符号化部2012(詳細は後述する)における、あるPUの予測モードがサブブロック予測モードであるか否かを示すサブブロック予測モードフラグsubPbMotionFlagの導出方法について説明する。タイル復号部2002、タイル符号化部2012は、後述する空間サブブロック予測SSUB、時間サブブロック予測TSUB、アフィン予測AFFINE、マッチング動き導出MATのいずれを用いたかに基づいて、サブブロック予測モードフラグsubPbMotionFlagを導出する。たとえば、あるPUで選択された予測モードをN(たとえばNは選択されたマージ候補を示すラベル)とした場合には、以下の式によりサブブロッ
ク予測モードフラグsubPbMotionFlagを導出してもよい。
subPbMotionFlag = (N == TSUB) || (N == SSUB) || (N == AFFINE) || (N == MAT)
ここで||は、論理和を示す(以下同様)。
ここで||は、論理和を示す(以下同様)。
また、タイル復号部2002、タイル符号化部2012は、空間サブブロック予測SSUB、時間サブブロック予測TSUB、アフィン予測AFFINE、マッチング動き導出MATのうち、一部の予測
を行う構成でもよい。すなわち、タイル復号部2002、タイル復号部2002が空間サブブロック予測SSUB、アフィン予測AFFINEを行う構成である場合には、以下のようにサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
を行う構成でもよい。すなわち、タイル復号部2002、タイル復号部2002が空間サブブロック予測SSUB、アフィン予測AFFINEを行う構成である場合には、以下のようにサブブロック予測モードフラグsubPbMotionFlagを導出してもよい。
subPbMotionFlag = (N == SSUB)|| (N == AFFINE)
図7は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362、マージ候補格納部30363を備える。マージ候補格納部30363は、マージ候補導出部30361から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されている。マージ候補格納部30363において、格納された
マージ候補には、所定の規則に従ってインデックスが割り当てられる。
図7は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362、マージ候補格納部30363を備える。マージ候補格納部30363は、マージ候補導出部30361から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されている。マージ候補格納部30363において、格納された
マージ候補には、所定の規則に従ってインデックスが割り当てられる。
マージ候補導出部30361は、すでに復号処理が行われた隣接PUの動きベクトルと参照ピクチャインデックスrefIdxLXをそのまま用いてマージ候補を導出する。それ以外にアフィン予測を用いてマージ候補を導出してもよい。この方法を以下で詳細に説明する。マージ候補導出部30361は、アフィン予測を、後述する空間マージ候補導出処理、時間マージ候補導出処理、結合マージ候補導出処理、およびゼロマージ候補導出処理に用いてもよい。なお、アフィン予測はサブブロック単位で行われ、予測パラメータはサブブロック毎に予測パラメータメモリ307に格納されている。あるいは、アフィン予測は画素単位で行われてもよい。
(空間マージ候補導出処理)
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予測パラメータをマージ候補として導出し、予測ベクトル候補リストmvpListLX[]に
格納する。読み出される予測パラメータは、復号対象PUから予め定めた範囲内にあるPU(例えば、図21(b)に示す復号対象PUの左下端、左上端、右上端にそれぞれ接するPUの全部
または一部)のそれぞれに係る予測パラメータである。
空間マージ候補導出処理として、マージ候補導出部30361は、所定の規則に従って、予測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、動きベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予測パラメータをマージ候補として導出し、予測ベクトル候補リストmvpListLX[]に
格納する。読み出される予測パラメータは、復号対象PUから予め定めた範囲内にあるPU(例えば、図21(b)に示す復号対象PUの左下端、左上端、右上端にそれぞれ接するPUの全部
または一部)のそれぞれに係る予測パラメータである。
(時間マージ候補導出処理)
時間マージ導出処理として、マージ候補導出部30361は、参照画像において図21(c)に示すコロケートブロックの右下(ブロックBR)、あるいは、復号対象PUの中心の座標
を含むブロック(ブロックC)の予測パラメータを予測パラメータメモリ307から読み
だしマージ候補し、予測ベクトル候補リストmvpListLX[]に格納する。ブロックCの動きベクトルよりもブロックBRの動きベクトルの方が、空間マージ候補となるブロック位置から離れているので、ブロックBRは空間マージ候補の動きベクトルとは異なる動きベクトルをもつ可能性が高い。従って一般的にブロックBRを優先して予測ベクトル候補リストmvpListLX[]に加え、ブロックBRが動きベクトルを持たない(例えばイントラ予測ブロック)場
合や、ブロックBRがピクチャ外に位置する場合は、ブロックCの動きベクトルを予測ベク
トル候補に加える。異なる動きベクトルが予測候補として加わることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照画像の指定方法は、例えば、スライスヘッダにおいて指定された参照ピクチャインデックスrefIdxLXでも良いし、復号対象PUに隣接するPUの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
時間マージ導出処理として、マージ候補導出部30361は、参照画像において図21(c)に示すコロケートブロックの右下(ブロックBR)、あるいは、復号対象PUの中心の座標
を含むブロック(ブロックC)の予測パラメータを予測パラメータメモリ307から読み
だしマージ候補し、予測ベクトル候補リストmvpListLX[]に格納する。ブロックCの動きベクトルよりもブロックBRの動きベクトルの方が、空間マージ候補となるブロック位置から離れているので、ブロックBRは空間マージ候補の動きベクトルとは異なる動きベクトルをもつ可能性が高い。従って一般的にブロックBRを優先して予測ベクトル候補リストmvpListLX[]に加え、ブロックBRが動きベクトルを持たない(例えばイントラ予測ブロック)場
合や、ブロックBRがピクチャ外に位置する場合は、ブロックCの動きベクトルを予測ベク
トル候補に加える。異なる動きベクトルが予測候補として加わることで、予測ベクトルの選択肢が増え、符号化効率が高まる。参照画像の指定方法は、例えば、スライスヘッダにおいて指定された参照ピクチャインデックスrefIdxLXでも良いし、復号対象PUに隣接するPUの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。
例えばブロックCの位置(xColCtr, yColCtr)とブロックBRの位置(xColBr、yColBr)
は、以下の式で導出してもよい。
は、以下の式で導出してもよい。
xColCtr = xPb + ( nPbW >> 1 )
yColCtr = yPb + ( nPbH >> 1 )
xColBr = xPb + nPbW (式BR0)
yColBr = yPb + nPbH
ここで、(xPb,yPb)は対象ブロックの左上座標、(nPbW,nPbH)は対象ブロックの幅と高さである。
yColCtr = yPb + ( nPbH >> 1 )
xColBr = xPb + nPbW (式BR0)
yColBr = yPb + nPbH
ここで、(xPb,yPb)は対象ブロックの左上座標、(nPbW,nPbH)は対象ブロックの幅と高さである。
ところで、図21(c)に示す時間マージ候補として参照するブロックの1つであるブロッ
クBRは、図21(d)のように対象ブロックがタイルの右端に位置する場合、図21(e)のようにタイル外に位置する。そこで、ブロックBRの位置を図21(f)に示すように、コロケートブ
ロック内の右下に設定してもよい。この位置をBRmodとも呼ぶ。例えば以下の式でBRmodの位置(xColBr、yColBr)を導出してもよい。
クBRは、図21(d)のように対象ブロックがタイルの右端に位置する場合、図21(e)のようにタイル外に位置する。そこで、ブロックBRの位置を図21(f)に示すように、コロケートブ
ロック内の右下に設定してもよい。この位置をBRmodとも呼ぶ。例えば以下の式でBRmodの位置(xColBr、yColBr)を導出してもよい。
xColBr = xPb + nPbW - 1 (式BR1)
yColBr = yPb + nPbH - 1
さらに、BRmodの位置をlog2(M)の倍数とするために、以下の右シフトの後に左シフトをする処理を加えても良い。
yColBr = yPb + nPbH - 1
さらに、BRmodの位置をlog2(M)の倍数とするために、以下の右シフトの後に左シフトをする処理を加えても良い。
xColBr = ((xPb + nPbW - 1)>>M)<<M (式BR1´)
yColBr = ((yPb + nPbH - 1)>>M)<<M
また、対象ブロックがタイルの下端に位置しない場合は、(式BR1)および(式BR1´)におけるBRmodの位置のY座標yColBrを、各々以下の式で導出しても良い。
yColBr = ((yPb + nPbH - 1)>>M)<<M
また、対象ブロックがタイルの下端に位置しない場合は、(式BR1)および(式BR1´)におけるBRmodの位置のY座標yColBrを、各々以下の式で導出しても良い。
yColBr = yPb + nPbH
yColBr = ((yPb + nPbH)>>M)<<M
これにより、タイル外のブロックを参照することなく、ブロックBR(あるいはBRmod)
を時間マージ候補として参照することができる。なお、時間マージ候補ブロックBRを図21(f)の位置に設定するのは、全ての対象ブロックの位置によらず適用してもよいし、対象
ブロックがタイルの右端に位置する場合に限定してもよい。例えば、ある位置(x,y)のTileIdを導出する関数をgetTileID(x,y)とすると、getTileID(xColBr,yColBr) != “対象ブ
ロックを含むタイルのTileId”である場合、上記式のいずれかで、BR(BRmod)の位置を導出しても良い。independent_tile_flag=1の場合に、コロケートブロック内の右下BRmodに設定してもよい。例えば、independent_tile_flag=0の場合には、ブロックBRを(式BR0)で導出し、independent_tile_flag=1の場合には、ブロックBRを(式BR1)あるいは(式BR1’)で導出してもよい。
yColBr = ((yPb + nPbH)>>M)<<M
これにより、タイル外のブロックを参照することなく、ブロックBR(あるいはBRmod)
を時間マージ候補として参照することができる。なお、時間マージ候補ブロックBRを図21(f)の位置に設定するのは、全ての対象ブロックの位置によらず適用してもよいし、対象
ブロックがタイルの右端に位置する場合に限定してもよい。例えば、ある位置(x,y)のTileIdを導出する関数をgetTileID(x,y)とすると、getTileID(xColBr,yColBr) != “対象ブ
ロックを含むタイルのTileId”である場合、上記式のいずれかで、BR(BRmod)の位置を導出しても良い。independent_tile_flag=1の場合に、コロケートブロック内の右下BRmodに設定してもよい。例えば、independent_tile_flag=0の場合には、ブロックBRを(式BR0)で導出し、independent_tile_flag=1の場合には、ブロックBRを(式BR1)あるいは(式BR1’)で導出してもよい。
このように、コロケートブロックの右下ブロック位置を、図21(f)に示すコロケートタ
イル内の右下位置BRmodに設定することで、independent_tile_flag=1の場合に、時間方向のマージ予測を用いて符号化効率を低下させることなく、タイルシーケンスを独立に復号することができる。
イル内の右下位置BRmodに設定することで、independent_tile_flag=1の場合に、時間方向のマージ予測を用いて符号化効率を低下させることなく、タイルシーケンスを独立に復号することができる。
(結合マージ候補導出処理)
結合マージ導出処理として、マージ候補導出部30361は、既に導出され、マージ候補格納部30363に格納された2つの異なる導出済マージ候補の動きベクトルと参照ピクチャインデックスを、それぞれL0、L1の動きベクトルとして組み合わせることで結合マージ候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
結合マージ導出処理として、マージ候補導出部30361は、既に導出され、マージ候補格納部30363に格納された2つの異なる導出済マージ候補の動きベクトルと参照ピクチャインデックスを、それぞれL0、L1の動きベクトルとして組み合わせることで結合マージ候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
(ゼロマージ候補導出処理)
ゼロマージ候補導出処理として、マージ候補導出部30361は、参照ピクチャインデックスrefIdxLXが0であり、動きベクトルmvLXのX成分、Y成分が共に0であるマージ候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
ゼロマージ候補導出処理として、マージ候補導出部30361は、参照ピクチャインデックスrefIdxLXが0であり、動きベクトルmvLXのX成分、Y成分が共に0であるマージ候補を導出し、予測ベクトル候補リストmvpListLX[]に格納する。
マージ候補導出部30361によって導出された上記マージ候補はマージ候補格納部30363に格納される。予測ベクトル候補リストmvpListLX[]に格納する順番は、図21(b)、(c)の{L、A、AR、BL、AL、BR/C、結合マージ候補、ゼロマージ候補}である。BR/Cは
、ブロックBRが利用可能でなければブロックCを使用する、という意味である。なお、利
用可能でない(ブロックがタイル外、イントラ予測等)参照ブロックは、予測ベクトル候補リストに格納されない。
、ブロックBRが利用可能でなければブロックCを使用する、という意味である。なお、利
用可能でない(ブロックがタイル外、イントラ予測等)参照ブロックは、予測ベクトル候補リストに格納されない。
マージ候補選択部30362は、マージ候補格納部30363の予測ベクトル候補リストmvpListLX[]に格納されているマージ候補のうち、インター予測パラメータ復号制御部
3031から入力されたマージインデックスmerge_idxに対応するインデックスが割り当
てられたマージ候補を、対象PUのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
3031から入力されたマージインデックスmerge_idxに対応するインデックスが割り当
てられたマージ候補を、対象PUのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補を予測パラメータメモリ307に記憶するとともに、予測画像生成部308に出力する。
(サブブロック予測部)
次に、サブブロック予測部について説明する。
次に、サブブロック予測部について説明する。
(時空間サブブロック予測部30371)
時空間サブブロック予測部30371は、時間的に対象PUに隣接する参照画像上(たとえば直前のピクチャ)のPUの動きベクトル、もしくは、空間的に対象PUに隣接するPUの動きベクトルから、対象PUを分割して得られるサブブロックの動きベクトルを導出する。具体的には、参照画像上のPUの動きベクトルを対象PUが参照する参照ピクチャに合わせてスケーリングすることにより、対象PU中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH * j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0,
1, 2,・・・,nPbH / nSbH - 1)を導出する(時間サブブロック予測)。ここで、(xPb, yPb)は対象PUの左上座標、nPbW, nPbHは対象PUのサイズ、nSbW, nSbHはサブブロックのサ
イズである。
時空間サブブロック予測部30371は、時間的に対象PUに隣接する参照画像上(たとえば直前のピクチャ)のPUの動きベクトル、もしくは、空間的に対象PUに隣接するPUの動きベクトルから、対象PUを分割して得られるサブブロックの動きベクトルを導出する。具体的には、参照画像上のPUの動きベクトルを対象PUが参照する参照ピクチャに合わせてスケーリングすることにより、対象PU中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH * j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0,
1, 2,・・・,nPbH / nSbH - 1)を導出する(時間サブブロック予測)。ここで、(xPb, yPb)は対象PUの左上座標、nPbW, nPbHは対象PUのサイズ、nSbW, nSbHはサブブロックのサ
イズである。
また、対象PUに隣接するPUの動きベクトルを、対象PUを分割して得られるサブブロックとの距離に応じて加重平均を計算することで、対象PU中の各サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH * j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0, 1, 2,・・・,nPbH / nSbH - 1)を導出してもよい(空間サブブロック
予測)。
予測)。
上記、時間サブブロック予測の候補TSUB、空間サブブロック予測の候補SSUBを、マージモードの一つのモード(マージ候補)として選択する。
具体的な時空間サブブロック予測方法として、ATMVP(Adaptive Temporal Motion Vector Prediction)とSTMVP(Spatial-Temporal Motion Vector Prediction)について説明
する。
する。
(ATMVP)
ATMVPは、図21(b)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(L、A、AR、BL、AL)の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式であり、下記の手順で処理する。
ATMVPは、図21(b)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(L、A、AR、BL、AL)の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式であり、下記の手順で処理する。
1)空間隣接ブロックL、A、AR、BL、ALの順に、利用可能(available)な最初の隣接
ブロックを求める。利用可能な隣接ブロックが見つかった場合、そのブロックが有する動きベクトルと参照ピクチャをATMVPの初期ベクトルIMVと初期参照ピクチャIRefとする。全ての隣接ブロックが利用可能でない(non available)場合、ATMVFをオフとし、処理を終了する。「ATMVPがオフ」の意味は、予測ベクトル候補リストにATMVPによる動きベクトルを格納しないということである。
ブロックを求める。利用可能な隣接ブロックが見つかった場合、そのブロックが有する動きベクトルと参照ピクチャをATMVPの初期ベクトルIMVと初期参照ピクチャIRefとする。全ての隣接ブロックが利用可能でない(non available)場合、ATMVFをオフとし、処理を終了する。「ATMVPがオフ」の意味は、予測ベクトル候補リストにATMVPによる動きベクトルを格納しないということである。
ここで、「利用可能なブロック」の意味は、例えば、ブロックの位置が対象タイルあるいはコロケートタイル内に含まれており、かつ、ブロックが動きベクトルを有する、である。
2)初期参照ピクチャIRef上において、対象ブロックがIMVを用いて参照するブロック
がコロケートタイル内か否かをチェックする。このブロックがコロケートタイル内にある場合、IMVとIRefを各々対象ブロックのブロックレベルの動きベクトルBMVと参照画像BRef
とする。このブロックがコロケートタイル内にない場合、参照ピクチャリストRefPicListXに格納された参照ピクチャRefPicListX[s](s=0.. '参照ピクチャ数-1')上で、IMVから導出されるIMV'を用いて参照するブロックが、コロケートタイル内にあるか否かをチェックする。ここで、IMV'は、例えばPCurとIRefの時間的な差と、PCurとRefPicListX[s]の時間的な差に応じて導出してもよい。
がコロケートタイル内か否かをチェックする。このブロックがコロケートタイル内にある場合、IMVとIRefを各々対象ブロックのブロックレベルの動きベクトルBMVと参照画像BRef
とする。このブロックがコロケートタイル内にない場合、参照ピクチャリストRefPicListXに格納された参照ピクチャRefPicListX[s](s=0.. '参照ピクチャ数-1')上で、IMVから導出されるIMV'を用いて参照するブロックが、コロケートタイル内にあるか否かをチェックする。ここで、IMV'は、例えばPCurとIRefの時間的な差と、PCurとRefPicListX[s]の時間的な差に応じて導出してもよい。
IMV' = Clip3(-R1, R1-1, sign(distScaleFactor * IMV) * ((abs(distScaleFactor * IMV) + round1-1) >> shift1))
distScaleFactor = Clip3(-R2, R2-1, (tb*tx + round2)>>shift2 )
tx = (16384 + abs(td) >> 1 )/ td
td = DiffPicOrderCnt( PCur, IRef )
tb = DiffPicOrderCnt( Pcur, RefPicListX[s] )
ここで、round1, round2, shift1, shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1 = 1<<(shift1-1)、round2 = 1<<(shift2-1)、shift1=8, shift2 = 6などである。DiffPicOrderCnt(pic0, pic1)はpic0とpic1の時間情報(例えばPOC)の差を返す関数である。R1, R2, R3は処理を限られた精度で行うために値域を制限するもので例えば、R1 = 32768、R2 = 4096、R3 = 128などである。
distScaleFactor = Clip3(-R2, R2-1, (tb*tx + round2)>>shift2 )
tx = (16384 + abs(td) >> 1 )/ td
td = DiffPicOrderCnt( PCur, IRef )
tb = DiffPicOrderCnt( Pcur, RefPicListX[s] )
ここで、round1, round2, shift1, shift2は、逆数を用いて除算を行うためのラウンド値及びシフト値で例えば、round1 = 1<<(shift1-1)、round2 = 1<<(shift2-1)、shift1=8, shift2 = 6などである。DiffPicOrderCnt(pic0, pic1)はpic0とpic1の時間情報(例えばPOC)の差を返す関数である。R1, R2, R3は処理を限られた精度で行うために値域を制限するもので例えば、R1 = 32768、R2 = 4096、R3 = 128などである。
また、PCurとIRefの時間的な距離TD(Pcur,IRef)と、PCurとRefPicListX[s]の時間的な
距離TD(Pcur,RefPicListX[s])との比に応じてIMVをスケーリングし、動きベクトルIMV'を導出してもよい。
距離TD(Pcur,RefPicListX[s])との比に応じてIMVをスケーリングし、動きベクトルIMV'を導出してもよい。
IMV' = IMV * TD(PCur,RefPicListX[s]) / TD(PCur,IRef)
TD(a,b) = abs(POC(a) - POC(b))
この処理をs=0(参照ピクチャリストの先頭に格納された参照ピクチャ)から始め、sを1つずつ大きくし、対象ブロックがIMV'を用いて参照するブロックがコロケートタイル内で見つかった時点(ss)でサーチを中止し(図22(a))、IMV'とRefPicListX[ss]を各々対象ブロックのブロックレベルの動きベクトルBMVと参照画像BRefとする。参照ピクチャリス
トに格納された全ての参照ピクチャにおいてこのようなブロックが見つからない場合、ATMVFをオフとし、処理を終了する。
TD(a,b) = abs(POC(a) - POC(b))
この処理をs=0(参照ピクチャリストの先頭に格納された参照ピクチャ)から始め、sを1つずつ大きくし、対象ブロックがIMV'を用いて参照するブロックがコロケートタイル内で見つかった時点(ss)でサーチを中止し(図22(a))、IMV'とRefPicListX[ss]を各々対象ブロックのブロックレベルの動きベクトルBMVと参照画像BRefとする。参照ピクチャリス
トに格納された全ての参照ピクチャにおいてこのようなブロックが見つからない場合、ATMVFをオフとし、処理を終了する。
3)図22(b)に示すように、参照ピクチャBRef上で、対象ブロックをBMVだけシフトした位置のブロックをサブブロックに分割し、各サブブロックの有する動きベクトルSpMvLX[k][l](k=0..SHORNUM-1、l=0..SVERNUM-1)と参照ピクチャSRef[k][l]の情報を取得する。ここで、SHORNUM、SVERNUMは各々、水平および垂直方向のサブブロックの個数である。サブブロック(k1,l1)(0<=k1<SHORNUM、0<=l1<SVERNUM)の動きベクトルがない場合、ブロ
ックレベルの動きベクトルBMVと参照ピクチャBRefを、サブブロック(k1,l1)の動きベクトルSpMvLX[k1][l1]と参照ピクチャSRef[k1][l1]としてセットする。
ックレベルの動きベクトルBMVと参照ピクチャBRefを、サブブロック(k1,l1)の動きベクトルSpMvLX[k1][l1]と参照ピクチャSRef[k1][l1]としてセットする。
4)対象ブロックのサブブロックレベルの参照ピクチャを、参照ピクチャリストRefPicListX[0]とする。次に、ブロックレベルの参照ピクチャBRefと各サブブロックの参照ピクチャSRef[k][l]の時間的な距離TD(BRef,SRef[k][l])と、対象ピクチャPCurとその参照ピ
クチャRefPicListX[0]の時間的な距離TD(Pcur,RefPicListX[0])との比に応じて、各々下
式を用いてSpMvLX[k][l]をスケーリングし、対象ブロックのサブブロックレベルの動きベクトルSpMvLX[k][l]'を算出する。
クチャRefPicListX[0]の時間的な距離TD(Pcur,RefPicListX[0])との比に応じて、各々下
式を用いてSpMvLX[k][l]をスケーリングし、対象ブロックのサブブロックレベルの動きベクトルSpMvLX[k][l]'を算出する。
SpMvLX[k][l]' = SpMvLX[k][l] * TD(Pcur,RefPicListX[0]) / TD(BRef,SRef[k][l])
なお、対象ブロックのサブブロックレベルの参照ピクチャは、参照ピクチャRefPicListX[0]ではなく、図18(c)に示す、スライスヘッダで通知された時間方向の予測動きベクト
ル導出に用いられるインデックス(collocated_ref_idx)で指定された参照ピクチャでも
よい。この場合、対象ブロックのサブブロックレベルの参照ピクチャはRefPicListX[collocated_ref_idx]であり、対象ブロックのサブブロックレベルの動きベクトルSpMvLX[k][l]'の算出式は下記である。
なお、対象ブロックのサブブロックレベルの参照ピクチャは、参照ピクチャRefPicListX[0]ではなく、図18(c)に示す、スライスヘッダで通知された時間方向の予測動きベクト
ル導出に用いられるインデックス(collocated_ref_idx)で指定された参照ピクチャでも
よい。この場合、対象ブロックのサブブロックレベルの参照ピクチャはRefPicListX[collocated_ref_idx]であり、対象ブロックのサブブロックレベルの動きベクトルSpMvLX[k][l]'の算出式は下記である。
SpMvLX[k][l]' = SpMvLX[k][l] * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(BRef,SRef[k][l])
5)対象ブロックのサブブロックレベルの参照ピクチャにおいて、対象サブブロックがSpMvLX[k][l]'を用いて参照するサブブロックがコロケートタイル内にあるか否かをチェ
ックする。コロケートタイル内にないサブブロックSpMvLX[k2][l2]'(0<=k2<SHORNUM、0<=l2<SVERNUM)に対しては、以下の処理1のいずれかを施す。
・タイル境界パディングを実施する。
・サブブロックレベルの動きベクトルSpMvLX[k2][l2]'がタイル外を参照しないようにク
リッピングする。
5)対象ブロックのサブブロックレベルの参照ピクチャにおいて、対象サブブロックがSpMvLX[k][l]'を用いて参照するサブブロックがコロケートタイル内にあるか否かをチェ
ックする。コロケートタイル内にないサブブロックSpMvLX[k2][l2]'(0<=k2<SHORNUM、0<=l2<SVERNUM)に対しては、以下の処理1のいずれかを施す。
・タイル境界パディングを実施する。
・サブブロックレベルの動きベクトルSpMvLX[k2][l2]'がタイル外を参照しないようにク
リッピングする。
クリッピングの具体例を説明する。ピクチャの左上座標を基準とした対象サブブロックの左上座標を(xs,ys)、対象サブブロックの幅と高さをwSBLK、hSBLK、対象サブブロッ
クが位置する対象タイルの左上座標を(xTs,yTs)、対象タイルの幅と高さをwT、hT、spMvLX[k2][l2]' l2の精度を1/(2^f)とすると、サブブロックレベルの動きベクトル(SpMvLX[k2][l2]'x, SpMvLX[k2][l2]'y)は下式で表される。
クが位置する対象タイルの左上座標を(xTs,yTs)、対象タイルの幅と高さをwT、hT、spMvLX[k2][l2]' l2の精度を1/(2^f)とすると、サブブロックレベルの動きベクトル(SpMvLX[k2][l2]'x, SpMvLX[k2][l2]'y)は下式で表される。
SpMvLX[k2][l2]'x = Clip3(xTs, xTs+wT-wSBLK, xs+Int(SpMvLX[k2][l2]'x>>f))
SpMvLX[k2][l2]'y = Clip3(yTs, yTs+hT-hSBLK, ys+Int(SpMvLX[k2][l2]'y>>f))
・シフト後のサブブロックがコロケートタイル内にあるサブブロックレベルの動きベクトルを持つ、隣接サブブロックの動きベクトルSpMvLX[k3][l3](0<=k3<SHORNUM、0<=l3<SVERNUM)をコピーする。
SpMvLX[k2][l2]'y = Clip3(yTs, yTs+hT-hSBLK, ys+Int(SpMvLX[k2][l2]'y>>f))
・シフト後のサブブロックがコロケートタイル内にあるサブブロックレベルの動きベクトルを持つ、隣接サブブロックの動きベクトルSpMvLX[k3][l3](0<=k3<SHORNUM、0<=l3<SVERNUM)をコピーする。
SpMvLX[k2][l2]'x = SpMvLX[k3][l3]'x
SpMvLX[k2][l2]'y = SpMvLX[k3][l3]'y
・シフト後のサブブロックがコロケートタイル内にないサブブロック数が所定の閾値を越えた場合、ATMVPをオフにし、処理を終了する。例えば所定の閾値は対象ブロック内の全
サブブロック数の1/2としてもよい。
SpMvLX[k2][l2]'y = SpMvLX[k3][l3]'y
・シフト後のサブブロックがコロケートタイル内にないサブブロック数が所定の閾値を越えた場合、ATMVPをオフにし、処理を終了する。例えば所定の閾値は対象ブロック内の全
サブブロック数の1/2としてもよい。
なお、処理1はタイル符号化部2002とタイル復号部2012で同じ処理を選択する必要がある。
6)予測ベクトル候補リストにATMVPの動きベクトルを格納する。予測ベクトル候補リ
ストに格納するマージ候補の順番を図24に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選
択される。
ストに格納するマージ候補の順番を図24に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選
択される。
マージ候補としてATMVPが選択された場合、図22(b)に示すように、対象ブロックの各サブブロックからSpMvLX[k][l]'シフトした参照ピクチャRefPicListX[0]上の画像を読み出
し、予測画像とする。
し、予測画像とする。
以上1)〜6)で説明したATMVPに関する予測ベクトル候補リスト導出処理を図23のフ
ローチャートで説明する。
ローチャートで説明する。
時空間サブブロック予測部30371は、対象ブロックの5つの隣接ブロックをサーチする
(S2301)。
(S2301)。
時空間サブブロック予測部30371は、利用可能な最初の隣接ブロックの有無を判定し、
利用可能な隣接ブロックがあればS2303に進み、利用可能な隣接ブロックがなければS2311に進む(S2302)。
利用可能な隣接ブロックがあればS2303に進み、利用可能な隣接ブロックがなければS2311に進む(S2302)。
時空間サブブロック予測部30371は、利用可能な隣接ブロックの有する動きベクトルと
参照ピクチャを、対象ブロックの初期ベクトルIMVと初期参照ピクチャIRefとして設定す
る(S2303)。
参照ピクチャを、対象ブロックの初期ベクトルIMVと初期参照ピクチャIRefとして設定す
る(S2303)。
時空間サブブロック予測部30371は、対象ブロックの初期ベクトルIMVと初期参照ピクチャIRefをもとに、対象ブロックのブロックベースの動きベクトルBMVと参照ピクチャBRef
をサーチする(S2304)。
をサーチする(S2304)。
時空間サブブロック予測部30371は、参照ブロックがコロケートタイル内を指すブロッ
クベースの動きベクトルBMVの有無を判定し、BMVがあれば、BRefを取得してS2306に進み
、BMVがなければS2311に進む(S2305)。
クベースの動きベクトルBMVの有無を判定し、BMVがあれば、BRefを取得してS2306に進み
、BMVがなければS2311に進む(S2305)。
時空間サブブロック予測部30371は、対象ブロックのブロックベースの動きベクトルBMVと参照ピクチャBRefを用いて、コロケートブロックのサブブロックベースの動きベクトルSpMvLX[k][l]と参照ピクチャSRef[k][l]を取得する(S2306)。
時空間サブブロック予測部30371は、動きベクトルSpMvLX[k][l]と参照ピクチャSRefを
用いて、参照ピクチャをRefPicListX[0]に設定した時の、対象ブロックのサブブロックベースの動きベクトルSpMvLX[k][l]'をスケーリングにより導出する(S2307)。
用いて、参照ピクチャをRefPicListX[0]に設定した時の、対象ブロックのサブブロックベースの動きベクトルSpMvLX[k][l]'をスケーリングにより導出する(S2307)。
時空間サブブロック予測部30371は、参照ピクチャRefPicListX[0]上で、動きベクトルSpMvLX[k][l]'の指す各ブロックが全てコロケートタイル内を参照するか否かを判定する。全ブロックがコロケートタイル内のみを参照する場合、S2310に進み、そうでない場合、S2309に進む(S2308)。
時空間サブブロック予測部30371は、動きベクトルSpMvLX[k][l]'だけシフトしたブロックの少なくとも一部がコロケートタイル外にある場合、シフト後のサブブロックがコロケートタイル内にあるサブブロックレベルの動きベクトルを持つ、隣接サブブロックのサブブロックレベルの動きベクトルをコピーする(S2309)。
時空間サブブロック予測部30371は、図24に示す予測ベクトル候補リストmvpListLX[]にATMVPの動きベクトルを格納する(S2310)。
時空間サブブロック予測部30371は、予測ベクトル候補リストmvpListLX[]にATMVPの動
きベクトルを格納しない(S2311)。
きベクトルを格納しない(S2311)。
なお、S2309の処理は隣接ブロックの動きベクトルのコピー以外に、5)で説明したよ
うに、参照ピクチャのタイル境界のパディング処理や、対象ブロックのサブブロックレベルの動きベクトルのクリッピング処理であってもよい。また、利用可能でないサブブロック数が所定の閾値より多い時はATMVPをオフにしてS2311に進んでもよい。
うに、参照ピクチャのタイル境界のパディング処理や、対象ブロックのサブブロックレベルの動きベクトルのクリッピング処理であってもよい。また、利用可能でないサブブロック数が所定の閾値より多い時はATMVPをオフにしてS2311に進んでもよい。
以上の処理により、ATMVPに関する予測ベクトル候補リストを導出する。
このようにATMVPの動きベクトルを導出し、予測画像を生成することで、インター予測
で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルを独立にインター予測することができる。したがって
、参照画素の一部がコロケートタイル内に含まれない場合でも、ATMVPをマージ候補の1
つとして選択することができる。そしてATMVP以外のマージ候補よりも性能が高い場合は
、ATMVPを利用して予測画像を生成できるので、符号化効率を高めることができる。
で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルを独立にインター予測することができる。したがって
、参照画素の一部がコロケートタイル内に含まれない場合でも、ATMVPをマージ候補の1
つとして選択することができる。そしてATMVP以外のマージ候補よりも性能が高い場合は
、ATMVPを利用して予測画像を生成できるので、符号化効率を高めることができる。
(STMVP)
STMVPは、図25(a)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(a,b,c,d,…)、および、図25(b)に示す対象ピクチャのコロケートブロック(A',B',C',D')の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式である。図25(a)のA,B,C,Dは、対象ブロックを分割したサブブロックの例である。図25(b)のA',B',C',D'は、図25(a)のサブブロックA,B,C,Dのコロケートブロックである。図25(b)のAc',Bc',Cc',Dc'はA',B',C',D'の中心に位置する
領域であり、Abr',Bbr',Cbr',Dbr'はA',B',C',D'の右下に位置する領域である。なお、Abr',Bbr',Cbr',Dbr'は図25(b)に示すA',B',C',D'外の右下位置ではなく、図25(g)に示すA',B',C',D'内の右下位置であってもよい。Abr',Bbr',Cbr',Dbr'が図25(g)に示す位置であ
れば、常にAbr',Bbr',Cbr',Dbr'もコロケートタイル内に存在する。STMVPは下記の手順で処理する。
STMVPは、図25(a)に示す対象ピクチャPCurの対象ブロックの空間隣接ブロック(a,b,c,d,…)、および、図25(b)に示す対象ピクチャのコロケートブロック(A',B',C',D')の動きベクトルをもとに、対象ブロックのサブブロック毎に動きベクトルを導出し、サブブロック単位で予測画像を生成する方式である。図25(a)のA,B,C,Dは、対象ブロックを分割したサブブロックの例である。図25(b)のA',B',C',D'は、図25(a)のサブブロックA,B,C,Dのコロケートブロックである。図25(b)のAc',Bc',Cc',Dc'はA',B',C',D'の中心に位置する
領域であり、Abr',Bbr',Cbr',Dbr'はA',B',C',D'の右下に位置する領域である。なお、Abr',Bbr',Cbr',Dbr'は図25(b)に示すA',B',C',D'外の右下位置ではなく、図25(g)に示すA',B',C',D'内の右下位置であってもよい。Abr',Bbr',Cbr',Dbr'が図25(g)に示す位置であ
れば、常にAbr',Bbr',Cbr',Dbr'もコロケートタイル内に存在する。STMVPは下記の手順で処理する。
1)対象ブロックをサブブロックに分割し、サブブロックAの上側隣接ブロックcから右方向に、利用可能(available)な最初のブロックを求める。利用可能な隣接ブロックが
見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャをSTMVPの上
側ベクトルmvAaと参照ピクチャRefAaとし、カウントcnt=1とする。利用可能な隣接ブロックがない場合、カウントcnt=0とする。
見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャをSTMVPの上
側ベクトルmvAaと参照ピクチャRefAaとし、カウントcnt=1とする。利用可能な隣接ブロックがない場合、カウントcnt=0とする。
2)サブブロックAの左側隣接ブロックbから下方向に、利用可能な最初のブロックを求める。利用可能な隣接ブロックが見つかった場合、その最初のブロックが有する動きベクトルと参照ピクチャを左側ベクトルmvAlと参照ピクチャRefAlとし、カウントcntを1イン
クリメントする。利用可能な隣接ブロックがない場合、カウントを更新しない。
クリメントする。利用可能な隣接ブロックがない場合、カウントを更新しない。
3)サブブロックAのコロケートブロックA'において、右下位置A'brおよびA'cの順に利用可能か否かをチェックする。利用可能な領域が見つかった場合、そのブロックが有する最初の動きベクトルと参照ピクチャをコロケートベクトルmvAcと参照ピクチャRefAcとし
、カウントを1インクリメントする。利用可能なブロックがない場合、カウントを更新し
ない。
、カウントを1インクリメントする。利用可能なブロックがない場合、カウントを更新し
ない。
4)cnt=0(利用可能な動きベクトルが1つもない)の場合、STMVPをオフにし、処理を終了する。
5)ctnが0でない場合、対象ピクチャと、対象ブロックの参照画像RefPicListX[collocated_ref_idx]との時間的な距離TD(Pcur,RefPicListX[collocated_ref_idx])、および、
対象ピクチャと、1)〜3)で求めた参照ピクチャとの時間的な距離TD(Pcur,RefAa)、TD(Pcur,RefAl)、TD(Pcur,RefAc)の比に応じて、1)〜3)で求めた利用可能な動きベクトルをスケーリングする。スケーリング後の動きベクトルをmvAa',mvAl',mvAc'とする。
対象ピクチャと、1)〜3)で求めた参照ピクチャとの時間的な距離TD(Pcur,RefAa)、TD(Pcur,RefAl)、TD(Pcur,RefAc)の比に応じて、1)〜3)で求めた利用可能な動きベクトルをスケーリングする。スケーリング後の動きベクトルをmvAa',mvAl',mvAc'とする。
mvAa' = mvAa * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(Pcur,RefAa)
mvAl' = mvAl * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(Pcur,RefAl)
mvAc' = mvAc * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(Pcur,RefAc)
利用可能でない動きベクトルは0にセットする。
mvAl' = mvAl * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(Pcur,RefAl)
mvAc' = mvAc * TD(Pcur,RefPicListX[collocated_ref_idx]) / TD(Pcur,RefAc)
利用可能でない動きベクトルは0にセットする。
6)mvAa',mvAl',mvAc'の平均を算出し、サブブロックAの動きベクトルspMvLX[A]とし
てセットする。サブブロックAの参照ピクチャはRefPicListX[collocated_ref_idx]である
。
てセットする。サブブロックAの参照ピクチャはRefPicListX[collocated_ref_idx]である
。
spMvLX[A] = (mvAa'+mvAl'+mvAc')/cnt
7)参照ピクチャRefPicListX[collocated_ref_idx]において、コロケートブロックをspMvLX[A]だけシフトした位置のブロックがコロケートタイル内か否かをチェックする。ブロックの一部あるいは全部がコロケートタイル内にない場合、以下の処理2のいずれかを施す。
・タイル境界パディングを実施する。
・動きベクトルspMvLX[A]がタイル外を参照しないようにクリッピングする。
7)参照ピクチャRefPicListX[collocated_ref_idx]において、コロケートブロックをspMvLX[A]だけシフトした位置のブロックがコロケートタイル内か否かをチェックする。ブロックの一部あるいは全部がコロケートタイル内にない場合、以下の処理2のいずれかを施す。
・タイル境界パディングを実施する。
・動きベクトルspMvLX[A]がタイル外を参照しないようにクリッピングする。
ピクチャの左上座標を基準としたサブブロックAの左上座標を(xs,ys)、サブブロックA
の幅と高さをwSBLK、hSBLK、サブブロックAが位置する対象タイルの左上座標を(xTs,yTs)、対象タイルの幅と高さをwT、hT、mvAの精度を1/(2^f)とすると、サブブロックAの動き
ベクトル(spMvLX[A]x, spMvLX[A]y)(図25(c))は下式で表される。
の幅と高さをwSBLK、hSBLK、サブブロックAが位置する対象タイルの左上座標を(xTs,yTs)、対象タイルの幅と高さをwT、hT、mvAの精度を1/(2^f)とすると、サブブロックAの動き
ベクトル(spMvLX[A]x, spMvLX[A]y)(図25(c))は下式で表される。
spMvLX[A]x = Clip3(xTs, xTs+wT-wSBLK, xs+Int(spMvLX[A]x>>f))
spMvLX[A]y = Clip3(yTs, yTs+hT-hSBLK, ys+Int(spMvLX[A]y>>f))
なお、処理2はタイル符号化部2002とタイル復号部2012で同じ処理を選択する必要がある。
spMvLX[A]y = Clip3(yTs, yTs+hT-hSBLK, ys+Int(spMvLX[A]y>>f))
なお、処理2はタイル符号化部2002とタイル復号部2012で同じ処理を選択する必要がある。
8)上記1)〜7)の処理をサブブロックB,C,D等、対象ブロックの各サブブロックに
対して実行し、図25(d)、(e)、(f)のようにサブブロックの動きベクトルを求める。ただ
し、サブブロックBでは、上側隣接ブロックはdから右方向にサーチする。サブブロックC
では、上側隣接ブロックはAであり、左側隣接ブロックはaから下方向にサーチする。サブブロックDでは、上側隣接ブロックはBであり、左側隣接ブロックはCである。
対して実行し、図25(d)、(e)、(f)のようにサブブロックの動きベクトルを求める。ただ
し、サブブロックBでは、上側隣接ブロックはdから右方向にサーチする。サブブロックC
では、上側隣接ブロックはAであり、左側隣接ブロックはaから下方向にサーチする。サブブロックDでは、上側隣接ブロックはBであり、左側隣接ブロックはCである。
9)予測ベクトル候補リストにSTMVPの動きベクトルを格納する。予測ベクトル候補リ
ストに格納するマージ候補の順番を図24に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選
択される。
ストに格納するマージ候補の順番を図24に示す。このリストの中から、インター予測パラメータ復号制御部3031で導出されたmerge_idxを用いて、対象ブロックのマージ候補が選
択される。
マージ候補としてSTMVPが選択された場合、対象ブロックの各サブブロックから動きベ
クトル分シフトした参照ピクチャRefPicListX[collocated_ref_idx]上の画像を読み出し
、予測画像とする。
クトル分シフトした参照ピクチャRefPicListX[collocated_ref_idx]上の画像を読み出し
、予測画像とする。
以上1)〜9)で説明したSTMVPに関する予測ベクトル候補リスト導出処理を図26(a)のフローチャートで説明する。
時空間サブブロック予測部30371は、対象ブロックをサブブロックに分割する(S2601)。
時空間サブブロック予測部30371は、サブブロックの上側、左側、時間方向の隣接ブロ
ックをサーチする(S2602)。
ックをサーチする(S2602)。
時空間サブブロック予測部30371は、利用可能な隣接ブロックの有無を判定し、利用可
能な隣接ブロックがあればS2604に進み、利用可能な隣接ブロックが1個もなければS2610に進む(S2603)。
能な隣接ブロックがあればS2604に進み、利用可能な隣接ブロックが1個もなければS2610に進む(S2603)。
時空間サブブロック予測部30371は、対象ピクチャと複数の隣接ブロックの参照ピクチ
ャ間の時間的な距離に応じて、利用可能な隣接ブロックの有する動きベクトルをスケーリングする(S2604)。
ャ間の時間的な距離に応じて、利用可能な隣接ブロックの有する動きベクトルをスケーリングする(S2604)。
時空間サブブロック予測部30371は、スケーリングした動きベクトルの平均値を算出し
、対象サブブロックの動きベクトルspMvLX[]としてセットする(S2605)。
、対象サブブロックの動きベクトルspMvLX[]としてセットする(S2605)。
時空間サブブロック予測部30371は、参照ピクチャ上のコロケートサブブロックを動き
ベクトルspMvLX[]シフトしたブロックがコロケートタイル内にあるか否かを判定し、コロケートタイル内にあればS2608に進み、一部分でもコロケートタイル内になければS2607に進む(S2606)。
ベクトルspMvLX[]シフトしたブロックがコロケートタイル内にあるか否かを判定し、コロケートタイル内にあればS2608に進み、一部分でもコロケートタイル内になければS2607に進む(S2606)。
時空間サブブロック予測部30371は、動きベクトルspMvLX[]だけシフトしたブロックが
コロケートタイル外にある場合、動きベクトルspMvLX[]をクリッピングする(S2607)。
コロケートタイル外にある場合、動きベクトルspMvLX[]をクリッピングする(S2607)。
時空間サブブロック予測部30371は、処理中のサブブロックが対象ブロックの最後のサ
ブブロックか否かをチェックし(S2608)、最後のサブブロックであればS2610に進み、そうでなければ、処理対象を次のサブブロックに移してS2602に進み(S2609)、S2602〜S2608を繰り返し処理する。
ブブロックか否かをチェックし(S2608)、最後のサブブロックであればS2610に進み、そうでなければ、処理対象を次のサブブロックに移してS2602に進み(S2609)、S2602〜S2608を繰り返し処理する。
時空間サブブロック予測部30371は、図24に示す予測ベクトル候補リストmvpListLX[]にSTMVPの動きベクトルを格納する(S2610)。
時空間サブブロック予測部30371は、利用可能な動きベクトルがない場合、予測ベクト
ル候補リストmvpListLX[]にSTMVPの動きベクトルを格納せず、処理を終了する(S2611)
。
ル候補リストmvpListLX[]にSTMVPの動きベクトルを格納せず、処理を終了する(S2611)
。
なお、S2607の処理は対象サブブロックの動きベクトルのクリッピング処理以外に、7
)で説明したように、参照ピクチャのタイル境界のパディング処理であってもよい。
)で説明したように、参照ピクチャのタイル境界のパディング処理であってもよい。
以上の処理により、STMVPに関する予測ベクトル候補リストを導出する。
このようにSTMVPの動きベクトルを導出し、予測画像を生成することで、インター予測
で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルを独立にインター予測することができる。したがって、参照画素の一部がコロケートタイル内に含まれない場合でも、STMVPをマージ候補の1
つとして選択することができる。そしてSTMVP以外のマージ候補よりも性能が高い場合は
、STMVPを利用して予測画像を生成できるので、符号化効率を高めることができる。
で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルを独立にインター予測することができる。したがって、参照画素の一部がコロケートタイル内に含まれない場合でも、STMVPをマージ候補の1
つとして選択することができる。そしてSTMVP以外のマージ候補よりも性能が高い場合は
、STMVPを利用して予測画像を生成できるので、符号化効率を高めることができる。
(アフィン予測部)
アフィン予測部30372は、対象PUのアフィン予測パラメータを導出する。本実施形態では、アフィン予測パラメータとして、対象PUの2つの制御点(V0、V1)の動きベクトル(mv0_x, mv0_y)(mv1_x, mv1_y)を導出する。具体的には、対象PUの隣接PUの動きベクトルから予測することにより、各制御点の動きベクトルを導出してもよいし、さらに、制御点の動きベクトルとして導出された予測ベクトルと符号化データから導出される差分ベクトルの和により、各制御点の動きベクトルを導出してもよい。
アフィン予測部30372は、対象PUのアフィン予測パラメータを導出する。本実施形態では、アフィン予測パラメータとして、対象PUの2つの制御点(V0、V1)の動きベクトル(mv0_x, mv0_y)(mv1_x, mv1_y)を導出する。具体的には、対象PUの隣接PUの動きベクトルから予測することにより、各制御点の動きベクトルを導出してもよいし、さらに、制御点の動きベクトルとして導出された予測ベクトルと符号化データから導出される差分ベクトルの和により、各制御点の動きベクトルを導出してもよい。
図13は、対象PU(nPbW×nPbH)を構成する各サブブロックの動きベクトルspMvLXを、制御点V0の動きベクトル(mv0_x, mv0_y)およびV1の動きベクトル(mv1_x, mv1_y)から導出する例を示す図である。各サブブロックの動きベクトルspMvLXは、図13に示すように、各サブブロックの中心に位置する点毎の動きベクトルとして導出する。
アフィン予測部30372は対象PUのアフィン予測パラメータに基づいて、対象PU中の
各サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH
* j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0, 1, 2,・・・,nPbH / nSbH - 1)を下記
の式を用いて、導出する。
各サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH
* j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0, 1, 2,・・・,nPbH / nSbH - 1)を下記
の式を用いて、導出する。
spMvLX[xi][yi][0]=mv0_x + (mv1_x - mv0_x) / nPbW * (xi + nSbW/2) - (mv1_y - mv0_y) / nPbH * (yi + nSbH/2)
spMvLX[xi][yi][1]=mv0_y + (mv1_y - mv0_y) / nPbW * (xi + nSbW/2) + (mv1_x - mv0_x) / nPbH * (yi + nSbH/2)
ここで、xPb, yPbは、対象PUの左上座標、nPbW, nPbHは、対象PUの幅と高さ、nSbW, nSbHはサブブロックの幅と高さである。
spMvLX[xi][yi][1]=mv0_y + (mv1_y - mv0_y) / nPbW * (xi + nSbW/2) + (mv1_x - mv0_x) / nPbH * (yi + nSbH/2)
ここで、xPb, yPbは、対象PUの左上座標、nPbW, nPbHは、対象PUの幅と高さ、nSbW, nSbHはサブブロックの幅と高さである。
(マッチング動き導出部30373)
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチングの何れかのマッチング処理を行うことにより、PUを構成するブロック又はサブブロックの動きベクトルspMvLXを導出する。図14は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための
図である。マッチング動き導出モードは、マージモードの一つのマージ候補(マッチング候補)として選択される。
マッチング動き導出部30373は、バイラテラルマッチングまたはテンプレートマッチングの何れかのマッチング処理を行うことにより、PUを構成するブロック又はサブブロックの動きベクトルspMvLXを導出する。図14は、(a)バイラテラルマッチング(Bilateral matching)、(b)テンプレートマッチング(Template matching)を説明するための
図である。マッチング動き導出モードは、マージモードの一つのマージ候補(マッチング候補)として選択される。
マッチング動き導出部30373は、物体が等速運動をすると仮定して、複数の参照画像における領域のマッチングにより動きベクトルを導出する。バイラテラルマッチングでは、ある物体が、参照画像Aのある領域、対象ピクチャCur_Picの対象PU、参照画像Bの
ある領域を等速運動で通過するものと仮定して、参照画像A、B間のマッチングにより対象PUの動きベクトルを導出する。テンプレートマッチングでは、対象PUの隣接領域と対象PUの動きベクトルが等しいと仮定して、対象PUの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0の動き補償画像のマッチングにより動き
ベクトルを導出する。マッチング動き導出部では、対象PUを複数のサブブロックに分割し、分割したサブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングを行うことにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH * j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0, 1, 2,・・・,nPbH / nSbH - 1)を導出する。
ある領域を等速運動で通過するものと仮定して、参照画像A、B間のマッチングにより対象PUの動きベクトルを導出する。テンプレートマッチングでは、対象PUの隣接領域と対象PUの動きベクトルが等しいと仮定して、対象PUの隣接領域Temp_Cur(テンプレート)と参照ピクチャ上の参照ブロックの隣接領域Temp_L0の動き補償画像のマッチングにより動き
ベクトルを導出する。マッチング動き導出部では、対象PUを複数のサブブロックに分割し、分割したサブブロック単位で後述のバイラテラルマッチングもしくはテンプレートマッチングを行うことにより、サブブロックの動きベクトルspMvLX[xi][yi] (xi = xPb + nSbW * i, yj = yPb + nSbH * j, i=0, 1, 2,・・・,nPbW / nSbW - 1、j=0, 1, 2,・・・,nPbH / nSbH - 1)を導出する。
図14の(a)に示すように、バイラテラルマッチングでは、対象ピクチャCur_Picに
おけるサブブロックCur_blockの動きベクトルを導出するために、2枚の参照画像が参照
される。より具体的には、まず、サブブロックCur_blockの座標を(xCur,yCur)と表現したとき、参照ピクチャインデックスrefIdxL0によって指定される参照画像Ref0(参照ピクチャAと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur + MV0_x, yCur + MV0_y)
によって特定される左上座標(xPos,yPos)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照画像Ref1(参照ピクチャBと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur+MV1_x, xCur+MV1_y)=(xCur - MV0_x * TD1/TD0, yCur - MV0_y * TD1/TD0)
によって特定される左上座標(xPos,yPos)を有するBlock_Bとが設定される。ここで、TD0、及びTD1は、図14の(a)に示すように、それぞれ、対象ピクチャCur_Picと参照ピ
クチャAとのピクチャ間距離、及び対象ピクチャCur_Picと参照ピクチャBとのピクチャ
間距離を表している。
おけるサブブロックCur_blockの動きベクトルを導出するために、2枚の参照画像が参照
される。より具体的には、まず、サブブロックCur_blockの座標を(xCur,yCur)と表現したとき、参照ピクチャインデックスrefIdxL0によって指定される参照画像Ref0(参照ピクチャAと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur + MV0_x, yCur + MV0_y)
によって特定される左上座標(xPos,yPos)を有するBlock_Aと、例えば参照ピクチャインデックスrefIdxL1によって指定される参照画像Ref1(参照ピクチャBと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur+MV1_x, xCur+MV1_y)=(xCur - MV0_x * TD1/TD0, yCur - MV0_y * TD1/TD0)
によって特定される左上座標(xPos,yPos)を有するBlock_Bとが設定される。ここで、TD0、及びTD1は、図14の(a)に示すように、それぞれ、対象ピクチャCur_Picと参照ピ
クチャAとのピクチャ間距離、及び対象ピクチャCur_Picと参照ピクチャBとのピクチャ
間距離を表している。
次に、Block_AとBlock_Bとのマッチングコストが最小となるように、(MV0_x,MV0_y)
が決定される。このようにして導出された(MV0_x,MV0_y)が、サブブロックに付与され
る動きベクトルとなる。
が決定される。このようにして導出された(MV0_x,MV0_y)が、サブブロックに付与され
る動きベクトルとなる。
一方、図14の(b)は、上記マッチング処理のうち、テンプレートマッチング(Template matching)について説明するための図である。
図14の(b)に示すように、テンプレートマッチングでは、対象ピクチャCur_Picに
おけるサブブロックCur_blockの動きベクトルを導出するために、一度に1枚の参照ピク
チャが参照される。
おけるサブブロックCur_blockの動きベクトルを導出するために、一度に1枚の参照ピク
チャが参照される。
より具体的には、まず、例えば参照ピクチャインデックスrefIdxL0によって指定される参照画像Ref0(参照ピクチャAと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur + MV0_x, yCur + MV0_y)
によって特定される左上座標(xPos, yPos)を有する参照ブロックBlock_Aが特定される
。ここで、(xCur, yCur)は、サブブロックCur_blockの左上座標である。
(xPos,yPos)=(xCur + MV0_x, yCur + MV0_y)
によって特定される左上座標(xPos, yPos)を有する参照ブロックBlock_Aが特定される
。ここで、(xCur, yCur)は、サブブロックCur_blockの左上座標である。
次に、対象ピクチャCur_PicにおいてサブブロックCur_blockに隣接したテンプレート領域Temp_Curと、参照ピクチャAにおいてBlock_Aに隣接したテンプレート領域Temp_L0とが設定される。図14の(b)に示す例において、テンプレート領域Temp_Curは、サブブロックCur_blockの上側に隣接する領域及びサブブロックCur_blockの左側に隣接する領域とから構成されている。また、テンプレート領域Temp_L0は、Block_Aの上側に隣接する領域及びBlock_Aの左側に隣接する領域とから構成されている。
次にTemp_CurとTempL0とのマッチングコストが最小になる(MV0_x,MV0_y)が決定され
、サブブロックに付与される動きベクトルspMvL0となる。
、サブブロックに付与される動きベクトルspMvL0となる。
なお、テンプレートマッチングでは、参照画像Ref0とは異なる参照画像Ref1に対して同様の処理を行ってもよい。この場合、参照ピクチャインデックスrefIdxL1によって指定される参照画像Ref1(参照ピクチャAと呼ぶ)内の領域であって、
(xPos,yPos)=(xCur + MV1_x, yCur + MV1_y)
によって特定される左上座標(xPos, yPos)を有する参照ブロックBlock_Aが特定され、
参照ピクチャAにおいてBlock_Aに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTempL1とのマッチングコストが最小になる(MV1_x,MV1_y)が決定さ
れ、サブブロックに付与される動きベクトルspMvL1となる。
(xPos,yPos)=(xCur + MV1_x, yCur + MV1_y)
によって特定される左上座標(xPos, yPos)を有する参照ブロックBlock_Aが特定され、
参照ピクチャAにおいてBlock_Aに隣接したテンプレート領域Temp_L1とが設定される。
最終的にTemp_CurとTempL1とのマッチングコストが最小になる(MV1_x,MV1_y)が決定さ
れ、サブブロックに付与される動きベクトルspMvL1となる。
また、テンプレートマッチングでも、2枚の参照画像Ref0、Ref1に対して処理してもよい。この場合、上記に説明した1枚の参照画像Ref0のマッチングと、1枚の参照画像Ref1のマッチングを順に行う。
図8は、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図である。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033とベクトル候補選択部3034、およびベクトル候補格納部3036を備える。ベクトル候補導出部3033は、参照ピクチャインデックスrefIdxに基づいて予測パラメータメモリ307が記憶する既に処理済みのPUの動きベクトル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に出力する。
なお、予測ベクトル候補は、復号処理が完了したPUであって、復号対象PUから予め定めた範囲のPU(例えば、隣接PU)の動きベクトルをスケーリングすることで導出する。なお、隣接PUは、復号対象PUに空間的に隣接するPU、例えば、左PU、上PUの他、復号対象PUに時間的に隣接する領域、例えば、復号対象PUと同じ位置を含み、表示時刻が異なるPUの予測パラメータから得られた領域を含む。なお、時間マージ候補の導出で述べたように、コロケートブロックの右下ブロック位置を、図21(f)に示すタイル内の右下位置に変更する
ことで、independent_tile_flag=1の場合に、符号化効率を低下させることなくタイルシ
ーケンスを独立にAMVP予測を用いて復号することができる。
ことで、independent_tile_flag=1の場合に、符号化効率を低下させることなくタイルシ
ーケンスを独立にAMVP予測を用いて復号することができる。
加算部3035は、AMVP予測パラメータ導出部3032から入力された予測ベクトルmvpLXとインター予測パラメータ復号制御部3031から入力された差分ベクトルmvdLXを加算して動きベクトルmvLXを算出する。加算部3035は、算出した動きベクトルmvLXを予測画像生成部308および予測パラメータメモリ307に出力する。
(インター予測画像生成部309)
図11は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、重み予測部3094を含んで構成される。
図11は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、重み予測部3094を含んで構成される。
(動き補償)
動き補償部3091は、インター予測パラメータ復号部303から入力された、インター予測パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX)に基づいて、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピクチャRefXにおいて、復号対象PUの位置を起点として、動きベクトルmvLXだけずれた位置にあるブロックを読み出すことによって補間画像(動き補償画像predSamplesLX)を生成する。ここで、動きベクトルmvLXの精度が整数精度
でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、動き補償画像を生成する。
動き補償部3091は、インター予測パラメータ復号部303から入力された、インター予測パラメータ(予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX)に基づいて、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピクチャRefXにおいて、復号対象PUの位置を起点として、動きベクトルmvLXだけずれた位置にあるブロックを読み出すことによって補間画像(動き補償画像predSamplesLX)を生成する。ここで、動きベクトルmvLXの精度が整数精度
でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、動き補償画像を生成する。
(重み予測)
重み予測部3094は、入力される動き補償画像predSamplesLXに重み係数を乗算する
ことによりPUの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1の場合(単予測の場合)で、重み予測を用いない場合には入力された動き補償画像predSamplesLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以
下の式の処理を行う。
重み予測部3094は、入力される動き補償画像predSamplesLXに重み係数を乗算する
ことによりPUの予測画像を生成する。予測リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1の場合(単予測の場合)で、重み予測を用いない場合には入力された動き補償画像predSamplesLX(LXはL0もしくはL1)を画素ビット数bitDepthに合わせる以
下の式の処理を行う。
predSamples[x][y] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesLX[x][y] +
offset1 ) >> shift1 )
ここで、shift1 = 14 - bitDepth、offset1=1<<(shift1-1)である。
また、参照リスト利用フラグの両者(predFlagL0とpredFlagL1)が1の場合(双予測BiPredの場合)で、重み予測を用いない場合には、入力された動き補償画像predSamplesL0、predSamplesL1を平均し画素ビット数に合わせる以下の式の処理を行う。
offset1 ) >> shift1 )
ここで、shift1 = 14 - bitDepth、offset1=1<<(shift1-1)である。
また、参照リスト利用フラグの両者(predFlagL0とpredFlagL1)が1の場合(双予測BiPredの場合)で、重み予測を用いない場合には、入力された動き補償画像predSamplesL0、predSamplesL1を平均し画素ビット数に合わせる以下の式の処理を行う。
predSamples[x][y] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesL0[x][y] +
predSamplesL1[x][y] + offset2 ) >> shift2 )
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
predSamplesL1[x][y] + offset2 ) >> shift2 )
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
さらに、単予測の場合で、重み予測を行う場合には、重み予測部3094は、重み予測係数w0とオフセットo0を符号化データから導出し、以下の式の処理を行う。
predSamples[x][y] = Clip3( 0, ( 1 << bitDepth ) - 1, ( (predSamplesLX[x][y] * w0 + 2^(log2WD - 1)) >> log2WD ) + o0 )
ここで、log2WDは所定のシフト量を示す変数である。
ここで、log2WDは所定のシフト量を示す変数である。
さらに、双予測BiPredの場合で、重み予測を行う場合には、重み予測部3094は、重み予測係数w0、w1、o0、o1を符号化データから導出し、以下の式の処理を行う。
predSamples[x][y] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesL0 [x][y] * w0 + predSamplesL1[x][y] * w1 + ((o0 + o1 + 1) << log2WD) ) >> (log2WD + 1) )
<動きベクトル復号処理>
以下では、図9を参照して、本実施形態に係る動きベクトル復号処理について具体的に説明する。
<動きベクトル復号処理>
以下では、図9を参照して、本実施形態に係る動きベクトル復号処理について具体的に説明する。
上述の説明から明らかなように、本実施形態に係る動きベクトル復号処理は、インター予測に関連するシンタックス要素を復号する処理(動きシンタックス復号処理とも呼ぶ)と、動きベクトルを導出する処理(動きベクトル導出処理)とを含んでいる。
(動きシンタックス復号処理)
図9は、インター予測パラメータ復号制御部3031によって行われるインター予測シンタックス復号処理の流れを示すフローチャートである。図9の説明における以下の説明において、特に明示のない場合、各処理はインター予測パラメータ復号制御部3031によって行われる。
図9は、インター予測パラメータ復号制御部3031によって行われるインター予測シンタックス復号処理の流れを示すフローチャートである。図9の説明における以下の説明において、特に明示のない場合、各処理はインター予測パラメータ復号制御部3031によって行われる。
まず、ステップS101において、マージフラグmerge_flagが復号され、ステップS102において、merge_flag != 0(merge_flagが0でないか)が判断される。
merge_flag !=0 が真(S102でY)の場合、S103においてマージインデックスmerge_idxが復号され、マージモードにおける動きベクトル導出処理(S111)を実行する。
merge_flag!=0 が偽(S102でN)の場合、S104においてインター予測識別子inter_pred_idcを復号する。
inter_pred_idcがPRED_L1以外(PRED_L0もしくはPRED_BI)の場合、S105、S10
6、S107において、参照ピクチャインデックスref_idx_l0、差分ベクトルのパラメータmvdL0、予測ベクトルインデックスmvp_l0_idxが各々復号される。
6、S107において、参照ピクチャインデックスref_idx_l0、差分ベクトルのパラメータmvdL0、予測ベクトルインデックスmvp_l0_idxが各々復号される。
inter_pred_idcがPRED_L0以外(PRED_L1もしくはPRED_BI)の場合、S108、S10
9、S110において、参照ピクチャインデックスref_idx_l1、差分ベクトルのパラメータmvdL1、予測ベクトルインデックスmvp_l1_idxが復号される。続いて、AMVPモードにお
ける動きベクトル導出処理(S112)を実行する。
9、S110において、参照ピクチャインデックスref_idx_l1、差分ベクトルのパラメータmvdL1、予測ベクトルインデックスmvp_l1_idxが復号される。続いて、AMVPモードにお
ける動きベクトル導出処理(S112)を実行する。
このような構成によって、画像復号装置2000は、independent_tile_flagの値が1である場合にタイルシーケンス単位で独立にタイルを復号することができる。また、個々のツール毎に各タイルの復号の独立性を保証する仕組みを導入するので、符号化効率の低下を抑えつつ、動画像において、各タイルを独立に復号をすることができる。これにより、表示等に必要な領域を選択して復号できるので、処理量を大幅に削減することができる。
(画像符号化装置の構成)
図20(b)に本発明の動画像符号化装置2020を示す。動画像符号化装置2020は、ピクチャ
分割部2010、ヘッダ情報生成部2011、タイル符号化部2012a〜2012nおよび符号化ストリーム生成部2013を含んで構成される。
図20(b)に本発明の動画像符号化装置2020を示す。動画像符号化装置2020は、ピクチャ
分割部2010、ヘッダ情報生成部2011、タイル符号化部2012a〜2012nおよび符号化ストリーム生成部2013を含んで構成される。
ピクチャ分割部2010は、ピクチャを互いに重複しない複数のタイルに分割し、タイルをタイル符号化部2012a〜2012nに伝送する。ヘッダ情報生成部2011は、分割したタイルからタイル情報(TileId、タイルの分割数、サイズに関する情報)を生成し、ヘッダ情報として符号化ストリーム生成部2013に伝送する。
タイル符号化部2012a〜2012nは、各タイルを符号化する。また、タイル符号化部2012a
〜2012nは、タイルシーケンス単位でタイルを符号化する。このように、タイル符号化部2012a〜2012nによれば、タイルを並列に符号化処理することができる。
〜2012nは、タイルシーケンス単位でタイルを符号化する。このように、タイル符号化部2012a〜2012nによれば、タイルを並列に符号化処理することができる。
ここで、タイル符号化部2012a〜2012nは、1つの独立なビデオシーケンスと同様に、タイルシーケンスに対し符号化処理を行い、TileIDの異なるタイルシーケンスの予測情報は符号化処理を行う際に時間的にも空間的にも参照しない。すなわち、タイル符号化部2012a〜2012nは、あるピクチャ内のタイルを符号化する場合に、空間的にも時間的にも別のタイルを参照しない。
符号化ストリーム生成部2013は、ヘッダ情報生成部2011から伝送されたタイル情報を含むヘッダ情報と、タイル符号化部2012a〜2012nがタイルを符号化して、NALユニット単位
で符号化ストリームTeを生成する。
で符号化ストリームTeを生成する。
このように、タイル符号化部2012a〜2012nが各タイルを独立に符号化することができるため、複数のタイルを並列に符号化処理することも、復号装置側で複数のタイルを並列に復号処理することも、1つのタイルのみを独立して復号することもできる。
(タイル符号化部の構成)
次に、タイル符号化部2012a〜2012nの構成について説明する。以下に一例として、タイル符号化部2012aの構成を、図4を用いて説明する。図4は、タイル符号化部2012a〜2012nの1つである2012の構成を示すブロック図である。図4は、本実施形態に係るタイル符
号化部2012の構成を示すブロック図である。タイル符号化部2012は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、タイル符号化部2012はループフィルタ107が含まれない構成であってもよい。
次に、タイル符号化部2012a〜2012nの構成について説明する。以下に一例として、タイル符号化部2012aの構成を、図4を用いて説明する。図4は、タイル符号化部2012a〜2012nの1つである2012の構成を示すブロック図である。図4は、本実施形態に係るタイル符
号化部2012の構成を示すブロック図である。タイル符号化部2012は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、タイル符号化部2012はループフィルタ107が含まれない構成であってもよい。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域である符号化ユニットCU毎に予測ユニットPUの予測画像Pを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えばインター予測の場合、動きベクトルである。予測画像生成部101は、対象PUを起点として動きベクトルが示す参照画像上の位置にあるブロックを読み出す。またイントラ予測の場合、予測パラメータとは例えばイントラ予測モードである。イントラ予測モードで使用する隣接PUの画素値を参照ピクチャメモリ109から読み出し、PUの予測画像Pを生成する。予測画像生成部101は、読み出し
た参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてPUの予測画像Pを生成する。予測画像生成部101は、生成したPUの予測画像Pを減算部102
に出力する。
た参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてPUの予測画像Pを生成する。予測画像生成部101は、生成したPUの予測画像Pを減算部102
に出力する。
なお、予測画像生成部101は、既に説明した予測画像生成部308と同じ動作である。例えば、図6は、予測画像生成部101に含まれるインター予測画像生成部1011の構成を示す概略図である。インター予測画像生成部1011は、動き補償部10111、重み予測部10112を含んで構成される。動き補償部10111および重み予測部10112については、上述の動き補償部3091、重み予測部3094のそれぞれと同様の構成であるためここでの説明を省略する。また、タイル境界でのパディング処理についても予測画像生成部308と同じ動作であり、ここでの説明を省略する。
予測画像生成部101は、予測パラメータ符号化部から入力されたパラメータを用いて、参照ピクチャメモリから読み出した参照ブロックの画素値をもとにPUの予測画像Pを生
成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力される。
成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力される。
予測画像生成部101に含まれる(図示しない)イントラ予測画像生成部は既に説明したイントラ予測画像生成部310と同じ動作である。
減算部102は、予測画像生成部101から入力されたPUの予測画像Pの信号値を、画像Tの対応するPU位置の画素値から減算して、残差信号を生成する。減算部102は、生成した残差信号を変換・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された予測残差信号に対し周波数変換を行い、変換係数を算出する。変換・量子化部103は、算出した変換係数を量子化して量子化変換係数を求める。変換・量子化部103は、求めた量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
エントロピー符号化部104には、変換・量子化部103から量子化変換係数が入力され、予測パラメータ符号化部111から予測パラメータが入力される。入力される予測パラメータには、例えば、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分ベクトルmvdLX、予測モードpred_mode_flag、及びマージインデック
スmerge_idx等の符号がある。
スmerge_idx等の符号がある。
エントロピー符号化部104は、入力された分割情報、予測パラメータ、量子化変換係数等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆変換部105は、タイル復号部2002における、逆量子化・逆変換部311(図5)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、残差信号を算出する。逆量子化・逆変換部105は、算出した残差信号を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたPUの予測画像Pの信号値と逆量子化・逆変換部105から入力された残差信号の信号値を画素毎に加算して、復号画像を生成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ114、サンプル適応オフセット(SAO)115、適応ループフィルタ(ALF)116を施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくても
よく、例えばデブロッキングフィルタ114のみの構成であってもよい。
よく、例えばデブロッキングフィルタ114のみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQTあるいはBT分割パラメータや予測パラメータやこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてPUの予測画像Pを生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化残差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから、符号化するための形式を導出し、エントロピー符号化部104に出力する。符号化するための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロック単位の動きベクトルである。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトルのようなインター予測パラメータを導出する。インター予測パラメータ符号化部112は、予測画像生成部101に出力する予測画像の生成に必要なパラメータを導出する構成として、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と一部同一の構成を含む。インター予測パラメータ符号化部112の構成については、後述する。
また、イントラ予測パラメータ符号化部113は、予測画像生成部101に出力する予測画像の生成に必要な予測パラメータを導出する構成として、イントラ予測パラメータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたイントラ予測モードIntraPredModeから、符号化するための形式(例えばMPM_idx、rem_intra_luma_pred_mode等)を導出する。
(インター予測パラメータ符号化部の構成)
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測
パラメータ符号化部112は、図12のインター予測パラメータ復号部303に対応する手段であり、図10に構成を示す。
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測
パラメータ符号化部112は、図12のインター予測パラメータ復号部303に対応する手段であり、図10に構成を示す。
インター予測パラメータ符号化部112は、インター予測パラメータ符号化制御部1121、AMVP予測パラメータ導出部1122、減算部1123、サブブロック予測パラメータ導出部1125、及び図示しない、分割モード導出部、マージフラグ導出部、インター予測識別子導出部、参照ピクチャインデックス導出部、ベクトル差分導出部などを含んで構成され、分割モード導出部、マージフラグ導出部、インター予測識別子導出部、参照ピクチャインデックス導出部、ベクトル差分導出部は各々、PU分割モードpart_mode、マー
ジフラグmerge_flag、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、差分ベクトルmvdLXを導出する。インター予測パラメータ符号化部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を導出する。インター予測パラメータ符号化部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から読み出したマージ候補のPUが持つ動きベクトルと参照ピクチャインデックスと比較して、マージインデックスmerge_idxを導出し
、エントロピー符号化部104に出力する。マージ候補とは、符号化対象となる符号化対象CUから予め定めた範囲にある参照PU(例えば、符号化対象ブロックの左下端、左上端、右上端に接する参照PU)であって、符号化処理が完了したPUである。ベクトル候補インデックス導出部11212は予測ベクトルインデックスmvp_lX_idxを導出する。
、エントロピー符号化部104に出力する。マージ候補とは、符号化対象となる符号化対象CUから予め定めた範囲にある参照PU(例えば、符号化対象ブロックの左下端、左上端、右上端に接する参照PU)であって、符号化処理が完了したPUである。ベクトル候補インデックス導出部11212は予測ベクトルインデックスmvp_lX_idxを導出する。
サブブロック予測パラメータ導出部1125には、符号化パラメータ決定部110がサブブロック予測モードの使用を決定した場合、subPbMotionFlagの値に従って、空間サブ
ブロック予測、時間サブブロック予測、アフィン予測、マッチング動き導出のいずれかのサブブロック予測の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、タイル復号部2002の説明で述べたように、隣接PU、参照ピクチャブロック等の動きベクトルや参照ピクチャインデックスを予測パラメータメモリ108から読み出し、導出する。サブブロック予測パラメータ導出部1125、および、この中に含まれる時空間サブブロック予測部11251、アフィン予測部11252、マッチング予測部11253は、インター予測パラメータ復号部303のサブブロック予測パラメータ導出部3037、および、この中に含まれる時空間サブブロック予測部30371、アフィン予測部30372、マッチング予測部30373と同様の構成を有する。
ブロック予測、時間サブブロック予測、アフィン予測、マッチング動き導出のいずれかのサブブロック予測の動きベクトルと参照ピクチャインデックスを導出する。動きベクトルと参照ピクチャインデックスは、タイル復号部2002の説明で述べたように、隣接PU、参照ピクチャブロック等の動きベクトルや参照ピクチャインデックスを予測パラメータメモリ108から読み出し、導出する。サブブロック予測パラメータ導出部1125、および、この中に含まれる時空間サブブロック予測部11251、アフィン予測部11252、マッチング予測部11253は、インター予測パラメータ復号部303のサブブロック予測パラメータ導出部3037、および、この中に含まれる時空間サブブロック予測部30371、アフィン予測部30372、マッチング予測部30373と同様の構成を有する。
AMVP予測パラメータ導出部1122は、上述のAMVP予測パラメータ導出部3032(図12参照)と同様な構成を有する。
すなわち、予測モードpredModeがインター予測モードを示す場合、AMVP予測パラメータ導出部1122には符号化パラメータ決定部110から動きベクトルmvLXが入力される。AMVP予測パラメータ導出部1122は、入力された動きベクトルmvLXに基づいて予測ベクトルmvpLXを導出する。AMVP予測パラメータ導出部1122は、導出した予測ベクトルmvpLXを減算部1123に出力する。なお、参照ピクチャインデックスrefIdxLX及び予測ベクトルインデックスmvp_lX_idxは、エントロピー符号化部104に出力される。
減算部1123は、符号化パラメータ決定部110から入力された動きベクトルmvLXから、AMVP予測パラメータ導出部1122から入力された予測ベクトルmvpLXを減算して差
分ベクトルmvdLXを生成する。差分ベクトルmvdLXはエントロピー符号化部104に出力される。
分ベクトルmvdLXを生成する。差分ベクトルmvdLXはエントロピー符号化部104に出力される。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置は、空間隣接ブロックあるいは時間隣接ブロックから、対象ブロックのサブブロック単位の動きベクトル(第1の動きベクトル)を導出する時空間サブブロック予測処理を実施する動画像符号化装置、あるいは動画像復号装置において、対象ブロックが含まれるタイルシーケンス内の隣接ブロックを参照し、利用可能な隣接ブロックの動きベクトル(第2の動きベクトル)と参照ピクチャ(第2の参照ピクチャ)を取得する手段と、第2の動きベクトルと第2の参照ピクチャをもとに、対象ブロックのサブブロックレベルの動きベクトル(第3の動きベクトル)を算出する手段と、対象ピクチャと、第2の参照ピクチャ、あるいは、対象ブロックの参照ピクチャ(第1の参照ピクチャ)との時間的な差を用いて第3の動きベクトルをスケーリングし、第1の動きベクトルを導出する手段と、対象ブロックのサブブロックの第1の動きベクトルによる動き補償画像を導出する際に、参照する参照画素が第1の参照ピクチャ上でタイルシーケンス内にあるか否かを判定する手段とを備え、前記参照画素がタイルシーケンス内にない場合、前記動き補償画像の画素値をタイルシーケンス内の画素値から導出する処理を実施することを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記動き補償画像導出処理は、前記タイルシーケンスの境界画素から導出されるパディング画素を用いることを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記動き補償画像導出処理は、第1の動きベクトルの範囲制限によって処理することを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記動き補償画像導出処理は、第1の動きベクトルを隣接サブブロックの動きベクトルからコピーすることにより処理することにより処理されることを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記動き補償画像導出処理は、あるシーケンス単位(CVS:Coded Video Sequence)を通して、ピク
チャ内の水平、垂直方向のタイル数、タイルの幅と高さが同じ場合に実施されることを特徴とする。
チャ内の水平、垂直方向のタイル数、タイルの幅と高さが同じ場合に実施されることを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記時間隣接ブロックの位置は、コロケートブロック内の右下座標を含むブロックであることを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置において、前記請求項6に記載の動画像符号化装置、あるいは動画像復号装置は、タイル参照制限フラグを符号化もしくは復号し、タイル参照制限フラグが0である場合は、前記時間隣接ブロックの位置を、コロケートブロックの右下に隣接するブロックの位置に設定し、タイル参照制限フラグが1である場合には、前記時間隣接ブロックの位置を、コロケートブロック内の右下位置に設定することを特徴とする。
本発明の一態様に係る画像符号化装置、あるいは動画像復号装置は、ピクチャを構成する複数のタイルの各々について、シンタックスの種類や周囲の状況に応じて適応的に更新
、選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化、あるいは復号する装置において、あらかじめ定められたコンテキスト(第1のコンテキスト)を格納するメモリと、符号化、あるいは復号したタイル毎に更新したコンテキストを、タイルID、スライスタイプ、量子化パラメータとともにメモリに格納する格納手段と、メモリに格納されたコンテキストの中から、同じタイルIDをもち、かつ、同じスライスタイプあるいは同じ量子化パラメータを使用したタイルのコンテキスト(第2のコンテキスト)がメモリに格納されているか否かを判定する判定手段と、メモリから符号化、あるいは復号するタイルのコンテキストの初期状態を読み出す読み出し手段と、前記初期状態を用いてシンタックスを可変長符号化、あるいは復号する可変長符号化・復号手段とを備え、前記判定手段によって、第2のコンテキストがメモリに格納されていると判定された場合、前記読み出し手段は第2のコンテキストを初期状態として読み出し、そうでない場合、前記読み出し手段は第1のコンテキストを初期状態として読み出し、可変長符号化・復号手段は、前記初期状態を用いてタイルを可変長符号化、あるいは可変長復号することを特徴とする。
、選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化、あるいは復号する装置において、あらかじめ定められたコンテキスト(第1のコンテキスト)を格納するメモリと、符号化、あるいは復号したタイル毎に更新したコンテキストを、タイルID、スライスタイプ、量子化パラメータとともにメモリに格納する格納手段と、メモリに格納されたコンテキストの中から、同じタイルIDをもち、かつ、同じスライスタイプあるいは同じ量子化パラメータを使用したタイルのコンテキスト(第2のコンテキスト)がメモリに格納されているか否かを判定する判定手段と、メモリから符号化、あるいは復号するタイルのコンテキストの初期状態を読み出す読み出し手段と、前記初期状態を用いてシンタックスを可変長符号化、あるいは復号する可変長符号化・復号手段とを備え、前記判定手段によって、第2のコンテキストがメモリに格納されていると判定された場合、前記読み出し手段は第2のコンテキストを初期状態として読み出し、そうでない場合、前記読み出し手段は第1のコンテキストを初期状態として読み出し、可変長符号化・復号手段は、前記初期状態を用いてタイルを可変長符号化、あるいは可変長復号することを特徴とする。
本発明の一態様に係る画像符号化装置は、ピクチャを構成する複数のタイルの各々について、適応ループフィルタ(ALF)を施す動画像符号化装置において、対象タイルのフィ
ルタ係数を算出する手段と、対象タイルのフィルタ情報(フィルタ係数、タイルID、スライスタイプ、量子化パラメータ)を格納するメモリと、前記フィルタ情報に関するパラメータを符号化する符号化手段と前記フィルタ係数を用いて対象タイルにALFを施すフィル
タ手段とを備え、対象タイルのフィルタ情報がメモリに格納されたフィルタ情報の1つと同じ場合、前記符号化手段はメモリに格納されたフィルタ情報を示すインデックスをパラメータとして符号化し、そうでない場合、前記符号化手段は対象タイルのフィルタ情報をパラメータとして符号化し、かつ、メモリに格納し、前記フィルタ手段は前記フィルタ係数を用いて対象タイルにALFを施すことを特徴とする。
ルタ係数を算出する手段と、対象タイルのフィルタ情報(フィルタ係数、タイルID、スライスタイプ、量子化パラメータ)を格納するメモリと、前記フィルタ情報に関するパラメータを符号化する符号化手段と前記フィルタ係数を用いて対象タイルにALFを施すフィル
タ手段とを備え、対象タイルのフィルタ情報がメモリに格納されたフィルタ情報の1つと同じ場合、前記符号化手段はメモリに格納されたフィルタ情報を示すインデックスをパラメータとして符号化し、そうでない場合、前記符号化手段は対象タイルのフィルタ情報をパラメータとして符号化し、かつ、メモリに格納し、前記フィルタ手段は前記フィルタ係数を用いて対象タイルにALFを施すことを特徴とする。
本発明の一態様に係る画像復号装置は、ピクチャを構成する複数のタイルの各々について、適応ループフィルタ(ALF)を施す動画像復号装置において、符号化ストリームから
対象タイルのフィルタ情報に関するパラメータを復号する手段と、前記パラメータからフィルタ係数を導出する導出手段と、対象タイルのフィルタ情報(フィルタ係数、タイルID、スライスタイプ、量子化パラメータ)を格納するメモリと、前記フィルタ係数を用いて対象タイルにALFを施すフィルタ手段とを備え、前記パラメータがインデックスである場
合、前記導出手段はメモリに格納されたフィルタ情報からインデックスを用いて選択したフィルタ係数を対象タイルのフィルタ係数として導出し、そうでない場合、前記導出手段は前記パラメータを対象タイルのフィルタ情報として導出し、かつ、タイルID、スライスタイプ、量子化パラメータとともにメモリに格納し、前記フィルタ手段は前記フィルタ係数を用いて対象タイルにALFを施すことを特徴とする。
対象タイルのフィルタ情報に関するパラメータを復号する手段と、前記パラメータからフィルタ係数を導出する導出手段と、対象タイルのフィルタ情報(フィルタ係数、タイルID、スライスタイプ、量子化パラメータ)を格納するメモリと、前記フィルタ係数を用いて対象タイルにALFを施すフィルタ手段とを備え、前記パラメータがインデックスである場
合、前記導出手段はメモリに格納されたフィルタ情報からインデックスを用いて選択したフィルタ係数を対象タイルのフィルタ係数として導出し、そうでない場合、前記導出手段は前記パラメータを対象タイルのフィルタ情報として導出し、かつ、タイルID、スライスタイプ、量子化パラメータとともにメモリに格納し、前記フィルタ手段は前記フィルタ係数を用いて対象タイルにALFを施すことを特徴とする。
(ソフトウェアによる実現例)
なお、上述した実施形態におけるタイル符号化部2012、タイル復号部2002の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、タイル符号化部2012、タイル復号部2002のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体
」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュ
ータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
なお、上述した実施形態におけるタイル符号化部2012、タイル復号部2002の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、タイル符号化部2012、タイル復号部2002のいずれかに内蔵されたコンピュータシステムであって、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として利用される。
この符号化部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が受信した変調信号を復調することによって符号化データを得る復調部PROD_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として利用される。
化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した画像符
号化装置11は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)などのように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリなどのように、記録装置PROD_Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたドライブ装置
(不図示)に装填されるものであってもよい。
(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図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として利用される。
た画像復号装置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 画像表示装置
2000 画像復号装置
2002 タイル復号部
2020 画像符号化装置
2012 タイル符号化部
20 CU復号部
41 画像表示装置
2000 画像復号装置
2002 タイル復号部
2020 画像符号化装置
2012 タイル符号化部
Claims (7)
- 空間隣接ブロックあるいは時間隣接ブロックから、対象ブロックのサブブロック単位の動きベクトル(第1の動きベクトル)を導出する時空間サブブロック予測処理を実施する動画像符号化装置、あるいは動画像復号装置において、
対象ブロックが含まれるタイルシーケンス内の隣接ブロックを参照し、利用可能な隣接ブロックの動きベクトル(第2の動きベクトル)と参照ピクチャ(第2の参照ピクチャ)を取得する手段と、
第2の動きベクトルと第2の参照ピクチャをもとに、対象ブロックのサブブロックレベルの動きベクトル(第3の動きベクトル)を算出する手段と、
対象ピクチャと、第2の参照ピクチャ、あるいは、対象ブロックの参照ピクチャ(第1の参照ピクチャ)との時間的な差を用いて第3の動きベクトルをスケーリングし、第1の動きベクトルを導出する手段と、
対象ブロックのサブブロックの第1の動きベクトルによる動き補償画像を導出する際に、参照する参照画素が第1の参照ピクチャ上でタイルシーケンス内にあるか否かを判定する手段とを備え、
前記参照画素がタイルシーケンス内にない場合、前記動き補償画像の画素値をタイルシーケンス内の画素値から導出する処理を実施することを特徴とする動画像符号化装置、あるいは動画像復号装置。 - 前記動き補償画像導出処理は、前記タイルシーケンスの境界画素から導出されるパディング画素を用いることを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。
- 前記動き補償画像導出処理は、第1の動きベクトルの範囲制限によって処理することを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。
- 前記動き補償画像導出処理は、第1の動きベクトルを隣接サブブロックの動きベクトルからコピーすることにより処理することを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。
- 前記動き補償画像導出処理は、あるシーケンス単位(CVS:Coded Video Sequence)を
通して、ピクチャ内の水平、垂直方向のタイル数、タイルの幅と高さが同じ場合に実施されることを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。 - 前記時間隣接ブロックの位置は、コロケートブロック内の右下座標を含むブロックであることを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。
- 前記請求項6に記載の動画像符号化装置、あるいは動画像復号装置は、タイル参照制限フラグを符号化もしくは復号し、タイル参照制限フラグが0である場合は、前記時間隣接ブロックの位置を、コロケートブロックの右下に隣接するブロックの位置に設定し、タイル参照制限フラグが1である場合には、前記時間隣接ブロックの位置を、コロケートブロック内の右下位置に設定することを特徴とする請求項1に記載の動画像符号化装置、あるいは動画像復号装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017126272A JP2020145484A (ja) | 2017-06-28 | 2017-06-28 | 動画像符号化装置及び動画像復号装置 |
PCT/JP2018/024364 WO2019004283A1 (ja) | 2017-06-28 | 2018-06-27 | 動画像符号化装置及び動画像復号装置 |
US16/625,964 US11184636B2 (en) | 2017-06-28 | 2018-06-27 | Video encoding device and video decoding device |
US17/488,418 US11800147B2 (en) | 2017-06-28 | 2021-09-29 | Video encoding device and video decoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017126272A JP2020145484A (ja) | 2017-06-28 | 2017-06-28 | 動画像符号化装置及び動画像復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020145484A true JP2020145484A (ja) | 2020-09-10 |
Family
ID=72354564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017126272A Pending JP2020145484A (ja) | 2017-06-28 | 2017-06-28 | 動画像符号化装置及び動画像復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020145484A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022509972A (ja) * | 2018-11-26 | 2022-01-25 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | タイル独立性制約を使用したインター予測概念 |
-
2017
- 2017-06-28 JP JP2017126272A patent/JP2020145484A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022509972A (ja) * | 2018-11-26 | 2022-01-25 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | タイル独立性制約を使用したインター予測概念 |
JP7312826B2 (ja) | 2018-11-26 | 2023-07-21 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | タイル独立性制約を使用したインター予測概念 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7421586B2 (ja) | 復号装置および符号化装置 | |
JP2021005741A (ja) | 画像符号化装置及び画像復号装置 | |
WO2018116802A1 (ja) | 画像復号装置、画像符号化装置、及び画像予測装置 | |
WO2018221368A1 (ja) | 動画像復号装置、及び動画像符号化装置 | |
JP2021010046A (ja) | 画像符号化装置及び画像復号装置 | |
WO2018199001A1 (ja) | 画像復号装置及び画像符号化装置 | |
WO2018037853A1 (ja) | 画像復号装置及び画像符号化装置 | |
WO2019004283A1 (ja) | 動画像符号化装置及び動画像復号装置 | |
WO2018110203A1 (ja) | 動画像復号装置、および動画像符号化装置 | |
CN111886867B (zh) | 运动矢量推导装置、运动图像解码装置以及运动图像编码装置 | |
WO2020116456A1 (ja) | 動画像復号装置 | |
WO2018173895A1 (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
JP7241153B2 (ja) | 画像復号装置 | |
WO2018110180A1 (ja) | 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
JPWO2020045248A1 (ja) | 動画像復号装置および動画像符号化装置 | |
JP2020043500A (ja) | 動画像符号化装置及び動画像復号装置 | |
WO2019131349A1 (ja) | 画像復号装置、画像符号化装置 | |
JP2020145650A (ja) | 画像復号装置および画像符号化装置 | |
WO2018061550A1 (ja) | 画像復号装置及び画像符号化装置 | |
JP2020088660A (ja) | 動画像符号化装置、動画像復号装置 | |
JP2020145484A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2020145486A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2021057621A (ja) | 動画像符号化装置、動画像復号装置および予測画像生成装置 | |
JP2021016018A (ja) | 動画像符号化装置、動画像復号装置および動きベクトル導出装置 | |
JP2020145488A (ja) | 動画像符号化装置及び動画像復号装置 |