JP2015080053A - Image decoder and image encoder - Google Patents
Image decoder and image encoder Download PDFInfo
- Publication number
- JP2015080053A JP2015080053A JP2013215118A JP2013215118A JP2015080053A JP 2015080053 A JP2015080053 A JP 2015080053A JP 2013215118 A JP2013215118 A JP 2013215118A JP 2013215118 A JP2013215118 A JP 2013215118A JP 2015080053 A JP2015080053 A JP 2015080053A
- Authority
- JP
- Japan
- Prior art keywords
- depth
- unit
- prediction
- block
- image
- 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
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明は、画像復号装置、及び画像符号化装置に関する。 The present invention relates to an image decoding device and an image encoding device.
複数視点の画像符号化技術には、複数の視点の画像を符号化する際に画像間の視差を予測することによって情報量を低減する視差予測符号化や、その符号化方法に対応した復号方法が提案されている。視点画像間の視差を表すベクトルを変位ベクトルと呼ぶ。変位ベクトルは、水平方向の要素(x成分)と垂直方向の要素(y成分)を有する2次元のベクトルであり、1つの画像を分割した領域であるブロック毎に算出される。 The multi-view image encoding technique includes a parallax predictive encoding that reduces the amount of information by predicting a parallax between images when encoding images of a plurality of viewpoints, and a decoding method corresponding to the encoding method. Has been proposed. A vector representing the parallax between viewpoint images is called a displacement vector. The displacement vector is a two-dimensional vector having a horizontal element (x component) and a vertical element (y component), and is calculated for each block which is an area obtained by dividing one image.
また、複数視点の画像を取得するには、それぞれの視点に配置されたカメラを用いることが一般的である。複数視点の符号化では、各視点画像は、複数のレイヤにおいてそれぞれ異なるレイヤとして符号化される。複数のレイヤから構成される動画像の符号化方法は、一般に、スケーラブル符号化又は階層符号化と呼ばれる。スケーラブル符号化では、レイヤ間で予測を行うことで、高い符号化効率を実現する。レイヤ間で予測を行わずに基準となるレイヤは、ベースレイヤ、それ以外のレイヤは拡張レイヤと呼ばれる。レイヤが視点画像から構成される場合のスケーラブル符号化を、ビュースケーラブル符号化と呼ぶ。このとき、ベースレイヤはベースビュー、拡張レイヤは非ベースビューとも呼ばれる。さらに、ビュースケーラブルに加え、レイヤがテクスチャレイヤ(画像レイヤ)とデプスレイヤ(距離画像レイヤ)から構成される場合のスケーラブル符号化は、3次元スケーラブル符号化と呼ばれる。 In order to acquire images from a plurality of viewpoints, it is common to use cameras arranged at the respective viewpoints. In multi-viewpoint encoding, each viewpoint image is encoded as a different layer in each of a plurality of layers. A method for encoding a moving image composed of a plurality of layers is generally referred to as scalable encoding or hierarchical encoding. In scalable coding, high coding efficiency is realized by performing prediction between layers. A reference layer without performing prediction between layers is called a base layer, and other layers are called enhancement layers. Scalable encoding in the case where a layer is composed of viewpoint images is referred to as view scalable encoding. At this time, the base layer is also called a base view, and the enhancement layer is also called a non-base view. Furthermore, in addition to view scalable, scalable coding when a layer is composed of a texture layer (image layer) and a depth layer (distance image layer) is called three-dimensional scalable coding.
また、スケーラブル符号化には、ビュースケーラブル符号化の他、空間的スケーラブル符号化(ベースレイヤとして解像度の低いピクチャ、拡張レイヤが解像度の高いピクチャを処理)、SNRスケーラブル符号化(ベースレイヤとして画質の低いピクチャ、拡張レイヤとして解像度の高いピクチャを処理)等がある。スケーラブル符号化では、例えばベースレイヤのピクチャを、拡張レイヤのピクチャの符号化において、参照ピクチャとして用いることがある。 For scalable coding, in addition to view scalable coding, spatial scalable coding (pictures with low resolution as the base layer and pictures with high resolution in the enhancement layer), SNR scalable coding (image quality as the base layer) Low picture, high resolution picture as an enhancement layer). In scalable coding, for example, a base layer picture may be used as a reference picture in coding an enhancement layer picture.
また、非特許文献1では、変位ベクトルを、デプスに基づいて求める技術が提案されている。デプスに基づいた技術は2つあり、1つは、デプスリファインと呼ばれる、デプスにより高精度化された変位ベクトルDoNBDV(depth -oriented neighbour base disparity vector)であり、もう1つは、視差合成予測(VSP:view synthesis prediction)である。
Non-Patent
しかしながら、デプスに基づいて変位ベクトルを求める場合、デプスアクセスの範囲が制限されていないため、アクセスのバンド幅が大きくなってしまう。これにより、変位ベクトルを求める処理負荷の増大や、変位ベクトルを求めるために必要な情報の増加による符号量の増大といった問題が生じる。 However, when obtaining a displacement vector based on depth, the range of depth access is not limited, and the access bandwidth becomes large. This causes problems such as an increase in processing load for obtaining a displacement vector and an increase in code amount due to an increase in information necessary for obtaining a displacement vector.
本発明は上記の点に鑑みてなされたものであり、デプスを用いた処理において、処理負荷を低減させ、符号量を減少可能な画像復号装置、及び画像符号化装置を提供する。 The present invention has been made in view of the above points, and provides an image decoding device and an image encoding device capable of reducing the processing load and reducing the amount of codes in processing using depth.
上記の課題を解決するために、本発明の一態様に係る画像復号装置は、予測パラメータの導出にデプスを用いる画像復号装置であって、復号済みの他のピクチャにおけるデプスから、予測パラメータの導出に用いるデプスを導出するデプス導出部と、上記デプス導出部が導出したデプスを用いて予測パラメータを導出する予測パラメータ復号部と、を備え、上記デプス導出部は、上記復号済みの他のピクチャにおける制限された位置のデプスを用いる構成である。 In order to solve the above problem, an image decoding apparatus according to an aspect of the present invention is an image decoding apparatus that uses depth to derive a prediction parameter, and derives a prediction parameter from the depth of another decoded picture. A depth deriving unit for deriving a depth to be used in the above, and a prediction parameter decoding unit for deriving a prediction parameter using the depth derived by the depth deriving unit, the depth deriving unit in the other decoded pictures In this configuration, the depth of the restricted position is used.
また、本発明の一態様に係る画像符号化装置は、予測パラメータの導出にデプスを用いる画像符号化装置であって、復号済みの他のピクチャにおけるデプスから、予測パラメータの導出に用いるデプスを導出するデプス導出部と、上記デプス導出部が導出したデプスを用いて予測パラメータを導出する予測パラメータ復号部と、を備え、上記デプス導出部は、上記復号済みの他のピクチャにおける制限された位置のデプスを用いる構成である。 An image encoding apparatus according to an aspect of the present invention is an image encoding apparatus that uses depth for derivation of a prediction parameter, and derives a depth used for derivation of a prediction parameter from depths of other decoded pictures. A depth derivation unit, and a prediction parameter decoding unit that derives a prediction parameter using the depth derived by the depth derivation unit, wherein the depth derivation unit This is a configuration using depth.
本発明の一態様によれば、復号済みの他のピクチャのデプスを取りに行く処理、すなわちデプスアクセスの範囲が無制限に広がることを防止することができる。これにより、デプスアクセスの処理負荷を軽くすることができるとともに、処理に必要な符号量を減らすことができるという効果を奏する。 According to one aspect of the present invention, it is possible to prevent a process for obtaining the depth of another decoded picture, that is, the range of depth access from being unlimitedly expanded. As a result, it is possible to reduce the processing load of depth access and to reduce the amount of code required for processing.
以下、図面を参照しながら本発明の実施形態について説明する。図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。画像伝送システム1は、複数のレイヤ画像を符号化した符号を伝送し、伝送された符号を復号した画像を表示するシステムである。画像伝送システム1は、画像符号化装置11、ネットワーク21、画像復号装置31及び画像表示装置41を含んで構成される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a schematic diagram illustrating a configuration of an
画像符号化装置11には、複数のレイヤ画像(テクスチャ画像ともいう)を示す信号Tが入力される。レイヤ画像とは、ある解像度及びある視点で視認もしくは撮影される画像である。複数のレイヤ画像を用いて3次元画像を符号化するビュースケーラブル符号化を行う場合、複数のレイヤ画像のそれぞれは、視点画像と呼ばれる。ここで、視点は撮影装置の位置又は観測点に相当する。例えば、複数の視点画像は、被写体に向かって左右の撮影装置のそれぞれが撮影した画像である。画像符号化装置11は、この信号のそれぞれを符号化して符号化ストリームTe(符号化データ)を生成する。符号化ストリームTeの詳細については、後述する。視点画像とは、ある視点において観測される2次元画像(平面画像)である。視点画像は、例えば2次元平面内に配置された画素毎の輝度値、又は色信号値で示される。以下では、1枚の視点画像又は、その視点画像を示す信号をピクチャ(picture)と呼ぶ。また、複数のレイヤ画像を用いて空間スケーラブル符号化を行う場合、その複数のレイヤ画像は、解像度の低いベースレイヤ画像と、解像度の高い拡張レイヤ画像からなる。複数のレイヤ画像を用いてSNRスケーラブル符号化を行う場合、その複数のレイヤ画像は、画質の低いベースレイヤ画像と、画質の高い拡張レイヤ画像からなる。なお、ビュースケーラブル符号化、空間スケーラブル符号化、SNRスケーラブル符号化を任意に組み合わせて行っても良い。本実施形態では、複数のレイヤ画像として、少なくともベースレイヤ画像と、ベースレイヤ画像以外の画像(拡張レイヤ画像)を含む画像の符号化および復号を扱う。複数のレイヤのうち、画像もしくは符号化パラメータにおいて参照関係(依存関係)にある2つのレイヤについて、参照される側の画像を、第1レイヤ画像、参照する側の画像を第2レイヤ画像と呼ぶ。例えば、ベースレイヤを参照して符号化される(ベースレイヤ以外の)エンハンスレイヤ画像がある場合、ベースレイヤ画像を第1レイヤ画像、エンハンスレイヤ画像を第2レイヤ画像として扱う。なお、エンハンスレイヤ画像の例としては、ベースビュー以外の視点の画像、デプスの画像などがある。
A signal T indicating a plurality of layer images (also referred to as texture images) is input to the
ネットワーク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を記録した記憶媒体で代替されても良い。
The
画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、それぞれ復号した複数の復号レイヤ画像Td(復号視点画像Td)を生成する。
The
画像表示装置41は、画像復号装置31が生成した複数の復号レイヤ画像Tdの全部又は一部を表示する。例えば、ビュースケーラブル符号化においては、全部の場合、3次元画像(立体画像)や自由視点画像が表示され、一部の場合、2次元画像が表示される。画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。また、空間スケーラブル符号化、SNRスケーラブル符号化では、画像復号装置31、画像表示装置41が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
The image display device 41 displays all or part of the plurality of decoded layer images Td generated by the
<符号化ストリームTeの構造> 本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
<Structure of Encoded Stream Te> Prior to detailed description of the
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2の(a)〜(f)は、それぞれ、シーケンスSEQを既定するシーケンスレイヤ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、スライスデータを規定するスライスデータレイヤ、スライスデータに含まれる符号化ツリーユニットを規定する符号化ツリーレイヤ、符号化ツリーに含まれる符号化単位(Coding Unit;CU)を規定する符号化ユニットレイヤを示す図である。 FIG. 2 is a diagram illustrating a hierarchical structure of data in the encoded stream Te. The encoded stream Te illustratively includes a sequence and a plurality of pictures constituting the sequence. (A) to (f) of FIG. 2 respectively show a sequence layer that defines a sequence SEQ, a picture layer that defines a picture PICT, a slice layer that defines a slice S, a slice data layer that defines slice data, and a slice data. It is a figure which shows the encoding unit layer which prescribes | regulates the encoding tree layer which prescribes | regulates the encoding tree unit contained, and the coding unit (Coding Unit; CU) contained in a coding tree.
(シーケンスレイヤ) シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図2では、#0と#1すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
(Sequence Layer) In the sequence layer, a set of data referred to by the
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。 The video parameter set VPS is a set of encoding parameters common to a plurality of moving images, a plurality of layers included in the moving image, and encoding parameters related to individual layers in a moving image composed of a plurality of layers. A set is defined.
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。
In the sequence parameter set SPS, a set of encoding parameters referred to by the
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
In the picture parameter set PPS, a set of encoding parameters referred to by the
(ピクチャレイヤ) ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、スライスS0〜SNS−1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
(Picture Layer) In the picture layer, a set of data referred to by the
なお、以下、スライスS0〜SNS−1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。 In addition, hereinafter, when it is not necessary to distinguish each of the slices S0 to SNS-1, the subscripts may be omitted. The same applies to data included in an encoded stream Te described below and to which other subscripts are attached.
(スライスレイヤ) スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。スライスヘッダSHには、対象スライスの復号方法を決定するために画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
(Slice Layer) In the slice layer, a set of data referred to by the
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、スライスヘッダSHには、上記シーケンスレイヤに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。 As slice types that can be specified by the slice type specification information, (1) I slice using only intra prediction at the time of encoding, (2) P slice using unidirectional prediction or intra prediction at the time of encoding, (3) B-slice using unidirectional prediction, bidirectional prediction, or intra prediction at the time of encoding may be used. Note that the slice header SH may include a reference (pic_parameter_set_id) to the picture parameter set PPS included in the sequence layer.
(スライスデータレイヤ) スライスデータレイヤでは、処理対象のスライスデータSDATAを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2の(d)に示すように、符号化ツリーユニット(CTU: Coded Tree Unit)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64×64)のブロックであり、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
(Slice Data Layer) In the slice data layer, a set of data referred to by the
(符号化ツリーレイヤ) 符号化ツリーレイヤは、図2の(e)に示すように、処理対象の符号化ツリーブロックを復号するために画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ツリー(coding tree)と称する。4分木の中間ノードは、符号化4分木ツリー(CQT: Coded Quad Tree)であり、CTUは、最上位のCQTを含むものとして規定される。CQTは、分割フラグ(split_flag)を含み、split_flagが1の場合には、4つのCQTに分割される(4つのCQTを含む)。split_flagが0の場合には、CQTは末端ノードである符号化ユニット(CU:Coded Unit)を含む。符号化ユニットCUは、符号化処理の基本的な単位となる。また、符号化ツリーユニットCTUのサイズ64×64画素の場合には、符号化ユニットのサイズは、64×64画素、32×32画素、16×16画素、および、8×8画素の何れかをとり得る。
(Encoding Tree Layer) As shown in FIG. 2E, the encoding tree layer defines a set of data referred to by the
(符号化ユニットレイヤ) 符号化ユニットレイヤは、図2の(f)に示すように、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、CUヘッダCUH、予測ツリー、変換ツリー、CUヘッダCUFから構成される。CUヘッダCUHでは、符号化ユニットが、イントラ予測を用いるユニットであるか、インター予測を用いるユニットであるかなどが規定される。符号化ユニットは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートとなる。CUヘッダCUFは、予測ツリーと変換ツリーの間、もしくは、変換ツリーの後に含まれる。
(Encoding Unit Layer) As shown in (f) of FIG. 2, the encoding unit layer defines a set of data that the
予測ツリーは、符号化ユニットが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ユニットを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(prediction unit;PU、予測ユニット)とも称する。 In the prediction tree, the coding unit is divided into one or a plurality of prediction blocks, and the position and size of each prediction block are defined. In other words, the prediction block is one or a plurality of non-overlapping areas constituting the coding unit. The prediction tree includes one or a plurality of prediction blocks obtained by the above division. Prediction processing is performed for each prediction block. Hereinafter, a prediction block which is a unit of prediction is also referred to as a prediction unit (PU, prediction unit).
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。イントラ予測の場合、分割方法は、2N×2N(符号化ユニットと同一サイズ)と、N×Nとがある。 Broadly speaking, there are two types of division in the prediction tree: intra prediction and inter prediction. Intra prediction is prediction within the same picture, and inter prediction refers to prediction processing performed between different pictures (for example, between display times and between layer images). In the case of intra prediction, there are 2N × 2N (the same size as the encoding unit) and N × N division methods.
また、インター予測の場合、分割方法は、符号化データのpart_modeにより符号化され、2N×2N(符号化ユニットと同一サイズ)、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N、および、N×Nなどがある。なお、2N×nUは、2N×2Nの符号化ユニットを上から順に2N×0.5Nと2N×1.5Nの2領域に分割することを示す。2N×nDは、2N×2Nの符号化ユニットを上から順に2N×1.5Nと2N×0.5Nの2領域に分割することを示す。nL×2Nは、2N×2Nの符号化ユニットを左から順に0.5N×2Nと1.5N×2Nの2領域に分割することを示す。nR×2Nは、2N×2Nの符号化ユニットを左から順に1.5N×2Nと0.5N×1.5Nの2領域に分割することを示す。分割数は1、2、4のいずれかであるため、CUに含まれるPUは1個から4個である。これらのPUを順にPU0、PU1、PU2、PU3と表現する。 Further, in the case of inter prediction, the division method is encoded by part_mode of encoded data, and 2N × 2N (the same size as the encoding unit), 2N × N, 2N × nU, 2N × nD, N × 2N, nL X2N, nRx2N, and NxN. Note that 2N × nU indicates that a 2N × 2N encoding unit is divided into two regions of 2N × 0.5N and 2N × 1.5N in order from the top. 2N × nD indicates that a 2N × 2N encoding unit is divided into two regions of 2N × 1.5N and 2N × 0.5N in order from the top. nL × 2N indicates that a 2N × 2N encoding unit is divided into two regions of 0.5N × 2N and 1.5N × 2N in order from the left. nR × 2N indicates that a 2N × 2N encoding unit is divided into two regions of 1.5N × 2N and 0.5N × 1.5N in order from the left. Since the number of divisions is one of 1, 2, and 4, PUs included in the CU are 1 to 4. These PUs are expressed as PU0, PU1, PU2, and PU3 in order.
また、変換ツリーにおいては、符号化ユニットが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ユニットを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な4分木分割によるものがある。変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。 In the transform tree, the encoding unit is divided into one or a plurality of transform blocks, and the position and size of each transform block are defined. In other words, the transform block is one or a plurality of non-overlapping areas constituting the encoding unit. The conversion tree includes one or a plurality of conversion blocks obtained by the above division. There are two types of division in the transformation tree: one in which an area having the same size as the encoding unit is allocated as a transformation block, and the other in division by recursive quadtree division, similar to the above-described division in the tree block. The conversion process is performed for each conversion block. Hereinafter, a transform block that is a unit of transform is also referred to as a transform unit (TU).
(予測パラメータ) 予測ユニットの予測画像は、予測ユニットに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、ベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、1をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。2つの参照ピクチャリストが用いられる場合、つまり、predFlagL0=1, predFlagL1=1の場合が、双予測に対応し、1つの参照ピクチャリストを用いる場合、すなわち(predFlagL0, predFlagL1) = (1, 0)もしくは(predFlagL0, predFlagL1) = (0, 1)の場合が単予測に対応する。なお、予測リスト利用フラグの情報は、後述のインター予測フラグinter_pred_idcで表現することもできる。通常、後述の予測画像生成部、予測パラメータメモリでは、予測リスト利用フラグが用いれ、符号化データから、どの参照ピクチャリストが用いられるか否かの情報を復号する場合にはインター予測フラグinter_pred_idcが用いられる。 (Prediction parameter) The prediction image of a prediction unit is derived | led-out by the prediction parameter accompanying a prediction unit. The prediction parameters include a prediction parameter for intra prediction or a prediction parameter for inter prediction. Hereinafter, prediction parameters for inter prediction (inter prediction parameters) will be described. The inter prediction parameter includes prediction list use flags predFlagL0 and predFlagL1, reference picture indexes refIdxL0 and refIdxL1, and vectors mvL0 and mvL1. The prediction list use flags predFlagL0 and predFlagL1 are flags indicating whether or not reference picture lists called L0 list and L1 list are used, respectively, and a reference picture list corresponding to a value of 1 is used. In this specification, when “flag indicating whether or not XX” is described, 1 is XX, 0 is not XX, 1 is true and 0 is false in logical negation and logical product. (The same applies hereinafter). However, other values can be used as true values and false values in an actual apparatus or method. When two reference picture lists are used, that is, when predFlagL0 = 1 and predFlagL1 = 1, this corresponds to bi-prediction, and when one reference picture list is used, that is, (predFlagL0, predFlagL1) = (1, 0) Or the case of (predFlagL0, predFlagL1) = (0, 1) corresponds to single prediction. Note that the prediction list use flag information can also be expressed by an inter prediction flag inter_pred_idc described later. Normally, a prediction list use flag is used in a prediction image generation unit and a prediction parameter memory described later, and an inter prediction flag inter_pred_idc is used when decoding information on which reference picture list is used from encoded data. It is done.
符号化データに含まれるインター予測パラメータを導出するためのシンタックス要素には、例えば、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXがある。 Syntax elements for deriving inter prediction parameters included in the encoded data include, for example, a partition mode part_mode, a merge flag merge_flag, a merge index merge_idx, an inter prediction flag inter_pred_idc, a reference picture index refIdxLX, a prediction vector index mvp_LX_idx, and a difference There is a vector mvdLX.
(参照ピクチャリストの一例) 次に、参照ピクチャリストの一例について説明する。参照ピクチャリストとは、参照ピクチャメモリ306(図5)に記憶された参照ピクチャからなる列である。図3は、参照ピクチャリストの一例を示す概念図である。参照ピクチャリスト601において、左右に一列に配列された5個の長方形は、それぞれ参照ピクチャを示す。左端から右へ順に示されている符号、P1、P2、Q0、P3、P4は、それぞれの参照ピクチャを示す符号である。P1等のPとは、視点Pを示し、そしてQ0のQとは、視点Pとは異なる視点Qを示す。P及びQの添字は、ピクチャ順序番号POCを示す。refIdxLXの真下の下向きの矢印は、参照ピクチャインデックスrefIdxLXが、参照ピクチャメモリ306において参照ピクチャQ0を参照するインデックスであることを示す。
(Example of Reference Picture List) Next, an example of the reference picture list will be described. The reference picture list is a sequence of reference pictures stored in the reference picture memory 306 (FIG. 5). FIG. 3 is a conceptual diagram illustrating an example of a reference picture list. In the
(参照ピクチャの例) 次に、ベクトルを導出する際に用いる参照ピクチャの例について説明する。図4は、参照ピクチャの例を示す概念図である。図4において、横軸は表示時刻を示し、縦軸は視点を示す。図4に示されている、縦2行、横3列(計6個)の長方形は、それぞれピクチャを示す。6個の長方形のうち、下行の左から2列目の長方形は復号対象のピクチャ(対象ピクチャ)を示し、残りの5個の長方形がそれぞれ参照ピクチャを示す。対象ピクチャから上向きの矢印で示される参照ピクチャQ0は対象ピクチャと同表示時刻であって視点が異なるピクチャである。対象ピクチャを基準とする変位予測においては、参照ピクチャQ0が用いられる。対象ピクチャから左向きの矢印で示される参照ピクチャP1は、対象ピクチャと同じ視点であって、過去のピクチャである。対象ピクチャから右向きの矢印で示される参照ピクチャP2は、対象ピクチャと同じ視点であって、未来のピクチャである。対象ピクチャを基準とする動き予測においては、参照ピクチャP1又はP2が用いられる。 (Example of reference picture) Next, an example of a reference picture used for deriving a vector will be described. FIG. 4 is a conceptual diagram illustrating an example of a reference picture. In FIG. 4, the horizontal axis indicates the display time, and the vertical axis indicates the viewpoint. The rectangles shown in FIG. 4 with 2 rows and 3 columns (6 in total) indicate pictures. Among the six rectangles, the rectangle in the second column from the left in the lower row indicates a picture to be decoded (target picture), and the remaining five rectangles indicate reference pictures. A reference picture Q0 indicated by an upward arrow from the target picture is a picture that has the same display time as the target picture and a different viewpoint. In the displacement prediction based on the target picture, the reference picture Q0 is used. A reference picture P1 indicated by a left-pointing arrow from the target picture is a past picture at the same viewpoint as the target picture. A reference picture P2 indicated by a right-pointing arrow from the target picture is a future picture at the same viewpoint as the target picture. In motion prediction based on the target picture, the reference picture P1 or P2 is used.
(インター予測フラグと予測リスト利用フラグ) インター予測フラグと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のように相互に変換可能である。そのため、インター予測パラメータとしては、予測リスト利用フラグを用いても良いし、インター予測フラグを用いてもよい。また、以下、予測リスト利用フラグを用いた判定は、インター予測フラグに置き替えても可能である。逆に、インター予測フラグを用いた判定は、予測リスト利用フラグに置き替えても可能である。 (Inter prediction flag and prediction list utilization flag) The relationship between the inter prediction flag and the prediction list utilization flags predFlagL0 and predFlagL1 can be mutually converted as follows. Therefore, as an inter prediction parameter, a prediction list use flag may be used, or an inter prediction flag may be used. In addition, hereinafter, the determination using the prediction list use flag may be replaced with the inter prediction flag. Conversely, the determination using the inter prediction flag can be performed by replacing the prediction list use flag.
インター予測フラグ = (predFlagL1<<1) + predFlagL0
predFlagL0 =インター予測フラグ & 1
predFlagL1 =インター予測フラグ >> 1
ここで、>>は右シフト、<<は左シフトである。
Inter prediction flag = (predFlagL1 << 1) + predFlagL0
predFlagL0 = Inter prediction flag & 1
predFlagL1 = Inter prediction flag >> 1
Here, >> is a right shift, and << is a left shift.
(マージ予測とAMVP予測) 予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージ予測モードでも、AMVPモードでも、既に処理済みのブロックの予測パラメータを用いて、対象PUの予測パラメータが導出される。マージ予測モードは、予測リスト利用フラグpredFlagLX(インター予測フラグinter_pred_idcinter_pred_idc)、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めずに、既に導出した予測パラメータをそのまま用いるモードであり、AMVPモードは、インター予測フラグinter_pred_idcinter_pred_idc、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めるモードである。なおベクトルmvLXは、予測ベクトルを示す予測ベクトルインデックスmvp_LX_idxと差分ベクトル(mvdLX)として符号化される。 (Merge Prediction and AMVP Prediction) The prediction parameter decoding (encoding) method includes a merge prediction (merge) mode and an AMVP (Adaptive Motion Vector Prediction) mode. The merge flag merge_flag identifies these. It is a flag to do. In both the merge prediction mode and the AMVP mode, the prediction parameter of the target PU is derived using the prediction parameter of the already processed block. The merge prediction mode is a mode that uses the prediction parameter already derived without including the prediction list use flag predFlagLX (inter prediction flag inter_pred_idcinter_pred_idc), the reference picture index refIdxLX, and the vector mvLX in the encoded data. The AMVP mode In this mode, the prediction flag inter_pred_idcinter_pred_idc, the reference picture index refIdxLX, and the vector mvLX are included in the encoded data. The vector mvLX is encoded as a prediction vector index mvp_LX_idx indicating a prediction vector and a difference vector (mvdLX).
インター予測フラグinter_pred_idcは、参照ピクチャの種類および数を示すデータであり、Pred_L0、Pred_L1、Pred_Biの何れかの値をとる。Pred_L0、Pred_L1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストに記憶された参照ピクチャが用いられることを示し、共に1枚の参照ピクチャを用いること(単予測)を示す。L0リスト、L1リストを用いた予測を各々L0予測、L1予測と呼ぶ。Pred_Biは2枚の参照ピクチャを用いること(双予測)を示し、L0リストとL1リストに記憶された参照ピクチャの2つを用いることを示す。予測ベクトルインデックスmvp_LX_idxは予測ベクトルを示すインデックスであり、参照ピクチャインデックスrefIdxLXは、参照ピクチャリストに記憶された参照ピクチャを示すインデックスである。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別するする。例えば、refIdxL0はL0予測に用いる参照ピクチャインデックス、refIdxL1はL1予測に用いる参照ピクチャインデックス、refIdx(refIdxLX)は、refIdxL0とrefIdxL1を区別しない場合に用いられる表記である。 The inter prediction flag inter_pred_idc is data indicating the type and number of reference pictures, and takes any value of Pred_L0, Pred_L1, and Pred_Bi. Pred_L0 and Pred_L1 indicate that reference pictures stored in reference picture lists called an L0 list and an L1 list are used, respectively, and that both use one reference picture (single prediction). Prediction using the L0 list and the L1 list are referred to as L0 prediction and L1 prediction, respectively. Pred_Bi indicates that two reference pictures are used (bi-prediction), and indicates that two reference pictures stored in the L0 list and the L1 list are used. The prediction vector index mvp_LX_idx is an index indicating a prediction vector, and the reference picture index refIdxLX is an index indicating a reference picture stored in the reference picture list. Note that LX is a description method used when L0 prediction and L1 prediction are not distinguished. By replacing LX with L0 and L1, parameters for the L0 list and parameters for the L1 list are distinguished. For example, refIdxL0 is a reference picture index used for L0 prediction, refIdxL1 is a reference picture index used for L1 prediction, and refIdx (refIdxLX) is a notation used when refIdxL0 and refIdxL1 are not distinguished.
マージインデックスmerge_idxは、処理が完了したブロックから導出される予測パラメータ候補(マージ候補)のうち、いずれかの予測パラメータを復号対象ブロックの予測パラメータとして用いるかを示すインデックスである。 The merge index merge_idx is an index indicating whether any prediction parameter is used as a prediction parameter of a decoding target block among prediction parameter candidates (merge candidates) derived from a block for which processing has been completed.
(動きベクトルと変位ベクトル) ベクトルmvLXには、動きベクトルと変位ベクトル(disparity vector、視差ベクトル)がある。動きベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、異なる表示時刻(例えば、隣接する離散時刻)における同一のレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。変位ベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、同一の表示時刻における異なるレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。異なるレイヤのピクチャとしては、異なる視点のピクチャである場合、もしくは、異なる解像度のピクチャである場合などがある。特に、異なる視点のピクチャに対応する変位ベクトルを視差ベクトルと呼ぶ。以下の説明では、動きベクトルと変位ベクトルを区別しない場合には、単にベクトルmvLXと呼ぶ。ベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。ベクトルmvLXおよび差分ベクトルmvdLXが、動きベクトルであるか、変位ベクトルであるかは、ベクトルに付随する参照ピクチャインデックスrefIdxLXを用いて行われる。 (Motion Vector and Displacement Vector) The vector mvLX includes a motion vector and a displacement vector (disparity vector). A motion vector is a positional shift between the position of a block in a picture at a certain display time of a layer and the position of the corresponding block in a picture of the same layer at a different display time (for example, an adjacent discrete time). It is a vector which shows. The displacement vector is a vector indicating a positional shift between the position of a block in a picture at a certain display time of a certain layer and the position of a corresponding block in a picture of a different layer at the same display time. The pictures in different layers may be pictures from different viewpoints or pictures with different resolutions. In particular, a displacement vector corresponding to pictures of different viewpoints is called a disparity vector. In the following description, when a motion vector and a displacement vector are not distinguished, they are simply referred to as a vector mvLX. A prediction vector and a difference vector related to the vector mvLX are referred to as a prediction vector mvpLX and a difference vector mvdLX, respectively. Whether the vector mvLX and the difference vector mvdLX are motion vectors or displacement vectors is determined using a reference picture index refIdxLX associated with the vectors.
(画像復号装置の構成) 次に、本実施形態に係る画像復号装置31の構成について説明する。図5は、本実施形態に係る画像復号装置31の構成を示す概略図である。画像復号装置31は、エントロピー復号部301、予測パラメータ復号部302、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)306、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)307、予測画像生成部308、逆量子化・逆DCT部311、及び加算部312、残差格納部313(残差記録部)を含んで構成される。また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
(Configuration of Image Decoding Device) Next, the configuration of the
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測情報および、差分画像を生成するための残差情報などがある。
The
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードPredMode、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idcinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックmvp_LX_idx、差分ベクトルmvdLXである。どの符号を復号するか否かの制御は、予測パラメータ復号部302の指示に基づいて行われる。エントロピー復号部301は、量子化係数を逆量子化・逆DCT部311に出力する。この量子化係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)を行い量子化して得られる係数である。
The
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
Based on the code input from the
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを復号する。イントラ予測パラメータとは、ピクチャブロックを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
Based on the code input from the
イントラ予測パラメータ復号部304は、輝度と色差で異なるイントラ予測モードを導出しても良い。この場合、イントラ予測パラメータ復号部304は、輝度の予測パラメータとして輝度予測モードIntraPredModeY、色差の予測パラメータとして、色差予測モードIntraPredModeCを復号する。輝度予測モードIntraPredModeYは、35モードであり、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)が対応する。色差予測モードIntraPredModeCは、プレーナ予測(0)、DC予測(1)、方向予測(2、3、4)、LMモード(5)の何れかを用いるものである。
The intra prediction
参照ピクチャメモリ306は、加算部312が生成した参照ピクチャのブロック(参照ピクチャブロック)を、復号対象のピクチャ及びブロック毎に予め定めた位置に記憶する。予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及びブロック毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測フラグinter_pred_idcinter_pred_idc)、参照ピクチャインデックスrefIdxLX、ベクトルmvLXがある。
The
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、予測対象ブロックごとに、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャを用いて予測ピクチャブロックP(予測画像)を生成する。
The prediction
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャを用いてインター予測により予測ピクチャブロックPを生成する。予測ピクチャブロックPは予測単位PUに対応する。PUは、上述したように予測処理を行う単位となる複数の画素からなるピクチャの一部分、つまり1度に予測処理が行われる復号対象ブロックに相当する。
Here, when the prediction mode predMode indicates the inter prediction mode, the inter prediction
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準としてベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックについて予測を行って予測ピクチャブロックPを生成する。インター予測画像生成部309は、生成した予測ピクチャブロックPを加算部312に出力する。
For the reference picture list (L0 list or L1 list) for which the prediction list use flag predFlagLX is 1, the inter predicted
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたブロックのうち復号対象ブロックから予め定めた範囲にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、復号対象ブロックがいわゆるラスタースキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接ブロックのうちのいずれかであり、イントラ予測モードによって異なる。ラスタースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
When the prediction mode predMode indicates the intra prediction mode, the intra predicted
イントラ予測画像生成部310は、読み出した参照ピクチャブロックについてイントラ予測モードIntraPredModeが示す予測モードで予測を行って予測ピクチャブロックを生成する。イントラ予測画像生成部310は、生成した予測ピクチャブロックPを加算部312に出力する。イントラ予測パラメータ復号部304において、輝度と色差で異なるイントラ予測モードを導出する場合、イントラ予測画像生成部310は、輝度予測モードIntraPredModeYに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2〜34)の何れかによって輝度の予測ピクチャブロックを生成し、色差予測モードIntraPredModeCに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2、3、4)、LMモード(5)の何れかによって色差の予測ピクチャブロックを生成する。
The intra predicted
逆量子化・逆DCT部311は、エントロピー復号部301から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部311は、求めたDCT係数について逆DCT(Inverse Discrete Cosine Transform、逆離散コサイン変換)を行い、復号残差信号を算出する。逆量子化・逆DCT部311は、算出した復号残差信号を加算部312および残差格納部313に出力する。
The inverse quantization /
加算部312は、インター予測画像生成部309及びイントラ予測画像生成部310から入力された予測ピクチャブロックPと逆量子化・逆DCT部311から入力された復号残差信号の信号値を画素毎に加算して、参照ピクチャブロックを生成する。加算部312は、生成した参照ピクチャブロックを参照ピクチャメモリ306に記憶し、生成した参照ピクチャブロックをピクチャ毎に統合した復号レイヤ画像Tdを外部に出力する。
(インター予測パラメータ復号部の構成) 次に、インター予測パラメータ復号部303の構成について説明する。図6は、本実施形態に係るインター予測パラメータ復号部303の構成を示す概略図である。インター予測パラメータ復号部303は、インター予測パラメータ復号制御部3031、AMVP予測パラメータ導出部3032、加算部3035及びマージ予測パラメータ導出部3036を含んで構成される。
The adder 312 outputs the prediction picture block P input from the inter prediction
(Configuration of Inter Prediction Parameter Decoding Unit) Next, the configuration of the inter prediction
インター予測パラメータ復号制御部3031は、インター予測に関連する符号(シンタックス要素)の復号をエントロピー復号部301に指示し、符号化データに含まれる符号(シンタックス要素)を例えば、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXを抽出する。
The inter prediction parameter
インター予測パラメータ復号制御部3031は、まず、符号化データからマージフラグを抽出する。インター予測パラメータ復号制御部3031が、あるシンタックス要素を抽出すると表現する場合は、あるシンタックス要素の復号をエントロピー復号部301に指示し、該当のシンタックス要素を符号化データから読み出すことを意味する。ここで、マージフラグが示す値が1、すなわち、マージ予測モードを示す場合、インター予測パラメータ復号制御部3031は、マージ予測に係る予測パラメータとして、マージインデックスmerge_idxを抽出する。インター予測パラメータ復号制御部3031は、抽出したマージインデックスmerge_idxをマージ予測パラメータ導出部3036に出力する。
The inter prediction parameter
マージフラグmerge_flagが0、すなわち、AMVP予測モードを示す場合、インター予測パラメータ復号制御部3031は、エントロピー復号部301を用いて符号化データからAMVP予測パラメータを抽出する。AMVP予測パラメータとして、例えば、インター予測フラグinter_pred_idc、参照ピクチャインデックスrefIdxLX、ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXがある。インター予測パラメータ復号制御部3031は、抽出したインター予測フラグinter_pred_idcinter_pred_idcから導出した予測リスト利用フラグpredFlagLXと、参照ピクチャインデックスrefIdxLXをAMVP予測パラメータ導出部3032及び予測画像生成部308(図5)に出力し、また予測パラメータメモリ307(図5)に記憶する。インター予測パラメータ復号制御部3031は、抽出したベクトルインデックスmvp_LX_idxをAMVP予測パラメータ導出部3032に出力する。インター予測パラメータ復号制御部3031は、抽出した差分ベクトルmvdLXを加算部3035に出力する。また、インター予測パラメータ復号制御部3031は、インター予測パラメータ導出時に導出された変位ベクトル(NBDV、Neigh bour base Disparity Vector)およびVSP処理を行うか否かを示すフラグであるVSPフラグを、インター予測画像生成部309に出力する。
When the merge flag merge_flag is 0, that is, indicates the AMVP prediction mode, the inter prediction parameter
図7は、本実施形態に係るマージ予測パラメータ導出部3036の構成を示す概略図である。マージ予測パラメータ導出部3036は、マージ候補導出部30361とマージ候補選択部30362を備える。マージ候補導出部30361は、マージ候補格納部303611と、拡張マージ候補導出部303612と基本マージ候補導出部303613を含んで構成される。
FIG. 7 is a schematic diagram illustrating a configuration of the merge prediction
マージ候補格納部303611は、拡張マージ候補導出部303612及び基本マージ候補導出部303613から入力されたマージ候補を格納する。なお、マージ候補は、予測リスト利用フラグpredFlagLX、ベクトルmvLX、参照ピクチャインデックスrefIdxLXを含んで構成されている。マージ候補格納部303611において、格納されたマージ候補には、所定の規則に従ってインデックスが割り当てられる。例えば、拡張マージ候補導出部303612から入力されたマージ候補には、インデックスとして「0」を割り当てる。
The merge
拡張マージ候補導出部303612は、変位ベクトル取得部3036122と、レイヤ間マージ候補導出部3036121と変位マージ候補導出部3036123、図示しないVSPマージ候補導出部3036124を含んで構成される。
The extended merge
変位ベクトル取得部3036122は、まず、復号対象ブロック(PU)を含む符号化ユニットCUに隣接する複数の候補ブロック(例えば、左、上、右上に隣接するブロック)から順に変位ベクトルを取得する。具体的には、候補ブロックの一つを選択し、選択した候補ブロックのベクトルが変位ベクトルであるか動きベクトルであるかを、候補ブロックの参照ピクチャインデックスrefIdxLXを用いてリファレンスレイヤ判定部303111(後述)を用いて判定し変位ベクトルが有る場合には、それを変位ベクトルとする。候補ブロックに変位ベクトルがない場合には、次の候補ブロックを順に走査する。隣接するブロックに変位ベクトルがない場合、変位ベクトル取得部3036122は、時間的に別の表示順の参照ピクチャに含まれるブロックの対象ブロックに対応する位置のブロックの変位ベクトルの取得を試みる。変位ベクトルが取得できなかった場合には、変位ベクトル取得部3036122は、変位ベクトルとしてゼロベクトルを設定する。得られた変位ベクトルはNBDV(Neighbour Base Disparity Vector)と呼ばれる。
First, the displacement
変位ベクトル取得部3036122は、デプスリファインメントフラグdepth_refinement_flagが1に等しいとき、NBDVの水平成分を、デプスDV導出部351で得られるベクトルに置き換えることで更新された変位ベクトルを得る(NBDVの垂直成分はそのまま)。更新された変位ベクトルは、DoNBDV(Depth Orientated Neighbour Base Disparity Vector)と呼ばれる。デプスDV導出部351には、デプスベースDVを導出する場合に用いるブロックの左上座標(xTL、yTL)と幅nPSW、高さnPSW、変位ベクトルmvDisp[]として、各々、復号対象ブロック(PU)を含む符号化ユニットCUの左上座標(xCb, yCb)、CUの幅nCbS、CUの高さnCbS、変位ベクトルNBDVを入力する。また、ブロックをさらに分割するか否かを示すフラグsplitFlagには0を入力する。
When the depth refinement flag depth_refinement_flag is equal to 1, the displacement
変位ベクトル取得部3036122は、変位ベクトル(DoNBDV)をレイヤ間マージ候補導出部3036121及び変位マージ候補導出部に出力する。さらに、得られた変位ベクトル(NBDV、DoNBDV)を、インター予測画像生成部309に出力する。
The displacement
レイヤ間マージ候補導出部3036121は、変位ベクトル取得部3036122から変位ベクトルを入力される。レイヤ間マージ候補導出部3036121は、別レイヤ(例えばベースレイヤ、ベースビュー)の復号対象ピクチャと同一POCを持つピクチャ内から、変位ベクトル取得部3036122から入力された変位ベクトルだけが示すブロックを選択し、該ブロックが有する動きベクトルである予測パラメータを予測パラメータメモリ307から読み出す。より具体的には、レイヤ間マージ候補導出部3036121が読みだす予測パラメータは、対象ブロックの中心点を起点にしたときに、起点の座標に変位ベクトルを加算した座標を含むブロックの予測パラメータである。
参照ブロックの座標(xRef、yRef)は、対象ブロックの座標が(xP、yP)、変位ベクトルが(mvDisp[0]、mvDisp[1])、対象ブロックの幅と高さがnPSW、nPSHの場合に以下の式により導出する。
The inter-layer merge
The coordinates (xRef, yRef) of the reference block are the coordinates of the target block (xP, yP), the displacement vector (mvDisp [0], mvDisp [1]), and the width and height of the target block are nPSW, nPSH. Is derived by the following equation.
xRef = Clip3( 0, PicWidthInSamplesL-1, xP + ( ( nPSW - 1 ) >> 1 ) + ( ( mvDisp[0] + 2 ) >> 2 ) )
yRef = Clip3( 0, PicHeightInSamplesL-1, yP + ( ( nPSH - 1 ) >> 1 ) + ( ( mvDisp[1] + 2 ) >> 2 ))
なお、レイヤ間マージ候補導出部3036121は、予測パラメータが動きベクトルか否かを、インター予測パラメータ復号制御部3031に含まれる後述するリファレンスレイヤ判定部303111の判定方法において偽(変位ベクトルではない)と判定した方法により判定する。レイヤ間マージ候補導出部3036121は、読みだした予測パラメータをマージ候補としてマージ候補格納部303611に出力する。また、レイヤ間マージ候補導出部3036121は、予測パラメータを導出出来なかった際には、その旨を変位マージ候補導出部に出力する。本マージ候補は、動き予測のインターレイヤ候補(インタービュー候補)でありレイヤ間マージ候補(動き予測)とも記載する。
xRef = Clip3 (0, PicWidthInSamples L -1, xP + ((nPSW-1) >> 1) + ((mvDisp [0] + 2) >> 2))
yRef = Clip3 (0, PicHeightInSamples L -1, yP + ((nPSH-1) >> 1) + ((mvDisp [1] + 2) >> 2))
Note that the inter-layer merge
変位マージ候補導出部3036123は、変位ベクトル取得部3036122から変位ベクトルを入力される。変位マージ候補導出部3036123は、入力された変位ベクトルと、変位ベクトルが指す先のレイヤ画像の参照ピクチャインデックスrefIdxLX(例えば、復号対象ピクチャと同一POCを持つベースレイヤ画像のインデックス)をマージ候補としてマージ候補格納部303611に出力する。本マージ候補は、変位予測のインターレイヤ候補(インタービュー候補)でありレイヤ間マージ候補(変位予測)とも記載する。
The displacement merge
VSPマージ候補導出部3036124は、ブロック視点合成予測(Block View Synthesis Prediction)マージ候補を導出する。VSPマージ候補は、別の視点画像から予測画像を生成する変位マージ候補の一種であるが、PU内をさらに小さいブロックに分割して、予測画像生成処理を行うマージ候補である。VSP処理は、インター予測画像生成部309で行われる。VSPマージ候補では、VSPフラグを1とする。
The VSP merge candidate derivation unit 3036124 derives a block view synthesis prediction merge candidate. The VSP merge candidate is a type of displacement merge candidate that generates a predicted image from another viewpoint image, but is a merge candidate that divides the PU into smaller blocks and performs a predicted image generation process. The VSP process is performed by the inter predicted
基本マージ候補導出部303613は、空間マージ候補導出部3036131と時間マージ候補導出部3036132と結合マージ候補導出部3036133とゼロマージ候補導出部3036134を含んで構成される。
The basic merge
空間マージ候補導出部3036131は、所定の規則に従って、予測パラメータメモリ307が記憶している予測パラメータ(予測リスト利用フラグpredFlagLX、ベクトルmvLX、参照ピクチャインデックスrefIdxLX)を読み出し、読み出した予測パラメータをマージ候補として導出する。読み出される予測パラメータは、復号対象ブロックから予め定めた範囲内にあるブロック(例えば、復号対象ブロックの左下端、左上端、右上端にそれぞれ接するブロックの全部又は一部)のそれぞれに係る予測パラメータである。導出されたマージ候補はマージ候補格納部303611に格納される。空間マージ候補導出部3036131では、VSPフラグは、参照ブロックでVSPフラグをそのまま用いる。すなわち、参照ブロックのVSPフラグが1の場合、対応する空間マージ候補のVSPフラグは1、それ以外の場合はVSPフラグを0とする。以下、時間マージ候補導出部3036132、結合マージ候補導出部3036133、ゼロマージ候補導出部3036134では、VSPフラグは0に設定する。
The spatial merge
時間マージ候補導出部3036132は、復号対象ブロックの右下の座標を含む参照画像中のブロックの予測パラメータを予測パラメータメモリ307から読みだしマージ候補とする。参照画像の指定方法は、例えば、スライスヘッダに置いて指定された参照ピクチャインデックスrefIdxLXでも良いし、復号対象ブロックに隣接するブロックの参照ピクチャインデックスrefIdxLXのうち最小のものを用いて指定しても良い。導出されたマージ候補はマージ候補格納部303611に格納される。
The temporal merge
結合マージ候補導出部3036133は、既に導出されマージ候補格納部303611に格納された2つの異なる導出済マージ候補のベクトルと参照ピクチャインデックスを、それぞれL0、L1のベクトルとして組み合わせることで結合マージ候補を導出する。導出されたマージ候補はマージ候補格納部303611に格納される。
The merge merge
ゼロマージ候補導出部3036134は、参照ピクチャインデックスrefIdxLXが0であり、ベクトルmvLXのX成分、Y成分が共に0であるマージ候補を導出する。導出されたマージ候補はマージ候補格納部303611に格納される。
The zero merge
図17は、マージ候補導出部30361が導出するマージ候補の例を示すものである。2つのマージ候補が同じ予測パラメータである場合に順番を詰める処理を除くと、マージインデックス順に、レイヤ間マージ候補、空間マージ候補(左下)、空間マージ候補(右上)、空間マージ候補(右上)、変位マージ候補、VSPマージ候補、空間マージ候補(左下)、空間マージ候補(左上)、時間マージ候補の順になる。また、それ以降に、結合マージ候補、ゼロマージ候補があるが、図17では省略している。
FIG. 17 shows an example of merge candidates derived by the merge
マージ候補選択部30362は、マージ候補格納部303611に格納されているマージ候補のうち、インター予測パラメータ復号制御部3031から入力されたマージインデックスmerge_idxに対応するインデックスが割り当てられたマージ候補を、対象PUのインター予測パラメータとして選択する。マージ候補選択部30362は選択したマージ候補を予測パラメータメモリ307(図5)に記憶するとともに、予測画像生成部308(図5)に出力する。
The merge
図8は、本実施形態に係るAMVP予測パラメータ導出部3032の構成を示す概略図である。AMVP予測パラメータ導出部3032は、ベクトル候補導出部3033と予測ベクトル選択部3034を備える。ベクトル候補導出部3033は、参照ピクチャインデックスrefIdxに基づいて予測パラメータメモリ307(図5)が記憶するベクトル(動きベクトル又は変位ベクトル)をベクトル候補mvpLXとして読み出す。読み出されるベクトルは、復号対象ブロックから予め定めた範囲内にあるブロック(例えば、復号対象ブロックの左下端、左上端、右上端にそれぞれ接するブロックの全部又は一部)のそれぞれに係るベクトルである。
FIG. 8 is a schematic diagram illustrating the configuration of the AMVP prediction
予測ベクトル選択部3034は、ベクトル候補導出部3033が読み出したベクトル候補のうち、インター予測パラメータ復号制御部3031から入力されたベクトルインデックスmvp_LX_idxが示すベクトル候補を予測ベクトルmvpLXとして選択する。予測ベクトル選択部3034は、選択した予測ベクトルmvpLXを加算部3035に出力する。
The prediction
図9は、ベクトル候補の一例を示す概念図である。図9に示す予測ベクトルリスト602は、ベクトル候補導出部3033において導出される複数のベクトル候補からなるリストである。予測ベクトルリスト602において、左右に一列に配列された5個の長方形は、それぞれ予測ベクトルを示す領域を示す。左端から2番目のmvp_LX_idxの真下の下向きの矢印とその下のmvpLXは、ベクトルインデックスmvp_LX_idxが、予測パラメータメモリ307においてベクトルmvpLXを参照するインデックスであることを示す。
FIG. 9 is a conceptual diagram showing an example of vector candidates. A predicted
候補ベクトルは、復号処理が完了したブロックであって、復号対象ブロックから予め定めた範囲のブロック(例えば、隣接ブロック)を参照し、参照したブロックに係るベクトルに基づいて生成される。なお、隣接ブロックには、対象ブロックに空間的に隣接するブロック、例えば、左ブロック、上ブロックの他、対象ブロックに時間的に隣接するブロック、例えば、対象ブロックと同じ位置で、表示時刻が異なるブロックから得られたブロックを含む。加算部3035は、予測ベクトル選択部3034から入力された予測ベクトルmvpLXとインター予測パラメータ復号制御部から入力された差分ベクトルmvdLXを加算してベクトルmvLXを算出する。加算部3035は、算出したベクトルmvLXを予測画像生成部308(図5)に出力する。
The candidate vector is a block for which decoding processing has been completed, and is generated based on a vector related to the referenced block with reference to a block (for example, an adjacent block) in a predetermined range from the decoding target block. The adjacent block has a block that is spatially adjacent to the target block, for example, the left block and the upper block, and a block that is temporally adjacent to the target block, for example, the same position as the target block, and has a different display time. Contains blocks derived from blocks. The addition unit 3035 adds the prediction vector mvpLX input from the prediction
図15は、本実施形態のインター予測パラメータ復号制御部3031の構成を示すブロック図である。図15に示すように、インター予測パラメータ復号制御部3031は、残差予測フラグ復号部30311、及び図示しない、分割モード復号部、マージフラグ復号部30311、マージインデックス復号部30312、インター予測フラグ復号部、参照ピクチャインデックス復号部、ベクトル候補インデックス復号部、ベクトル差分復号部を含んで構成される。分割モード復号部、マージフラグ復号部、マージインデックス復号部、インター予測フラグ復号部、参照ピクチャインデックス復号部、ベクトル候補インデックス復号部、ベクトル差分復号部は各々、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXを復号する。
FIG. 15 is a block diagram illustrating a configuration of the inter prediction parameter
残差予測フラグ復号部30311は、エントロピー復号部301を用いて、残差予測フラグiv_res_pred_weight_idxが復号される。
The residual prediction
図10は、残差予測フラグ復号部30311の構成を示すブロック図である。図16は、残差予測フラグ復号部30311が復号対象とする符号化データの構成を示す例である。残差予測フラグiv_res_pred_weight_idxは、残差予測フラグ格納部303112に記録されると共に、インター予測画像生成部309に入力される。
FIG. 10 is a block diagram illustrating a configuration of the residual prediction
変位ベクトル取得部は、対象PUに隣接するブロックが変位ベクトルを持つ場合には、その変位ベクトルを予測パラメータメモリ307から抽出し、予測パラメータメモリ307を参照し、対象PUに隣接するブロックの予測フラグpredFlagLX、参照ピクチャインデックスrefIdxLXとベクトルmvLXを読み出す。変位ベクトル取得部は、内部にリファレンスレイヤ判定部303111を備える。変位ベクトル取得部は、対象PUに隣接するブロックの予測パラメータを順に読み出し、リファレンスレイヤ判定部303111を用いて、隣接ブロックの参照ピクチャインデックスから隣接ブロックが変位ベクトルを備えるか否かを判定する。隣接ブロックが変位ベクトルを備える場合には、その変位ベクトルを出力する。隣接ブロックの予測パラメータに変位ベクトルが無い場合にはゼロベクトルを変位ベクトルとして出力する。
When the block adjacent to the target PU has a displacement vector, the displacement vector acquisition unit extracts the displacement vector from the
(リファレンスレイヤ判定部303111) リファレンスレイヤ判定部303111は、入力された参照ピクチャインデックスrefIdxLXに基づいて、参照ピクチャインデックスrefIdxLXが指す参照ピクチャと、対象ピクチャの関係を示すリファレンスレイヤ情報reference_layer_infoを定める。リファレンスレイヤ情報reference_layer_infoは、参照ピクチャへのベクトルmvLXが変位ベクトルであるか動きベクトルであるかを示す情報である。 (Reference Layer Determination Unit 303111) The reference layer determination unit 303111 determines reference layer information reference_layer_info indicating the relationship between the reference picture indicated by the reference picture index refIdxLX and the target picture based on the input reference picture index refIdxLX. Reference layer information reference_layer_info is information indicating whether the vector mvLX to the reference picture is a displacement vector or a motion vector.
対象ピクチャのレイヤと参照ピクチャのレイヤが同じレイヤである場合の予測を、同一レイヤ予測と呼び、この場合に得られるベクトルは動きベクトルである。対象ピクチャのレイヤと、参照ピクチャのレイヤが異なるレイヤである場合の予測をレイヤ間予測と呼び、この場合に得られるベクトルは変位ベクトルである。 Prediction when the target picture layer and the reference picture layer are the same layer is called co-layer prediction, and the vector obtained in this case is a motion vector. Prediction when the target picture layer and the reference picture layer are different layers is called inter-layer prediction, and the vector obtained in this case is a displacement vector.
(デプスDV導出部351) デプスDV導出部351は、エントロピー復号部301において符号化データから復号されたデプスDV変換テーブルと、インター予測パラメータ復号部309から得られた変位ベクトル(NBDV)と、参照ピクチャメモリ306に格納されたデプス画像を用いて、以下の処理により、デプス由来の変位ベクトル(DoNBDV)を導出する。デプスDV導出部351は、導出対象となるブロック(サブブロック)の左上座標(xTL,yTL)、サブブロックの幅nSubBlkW、高さnSubBlkH、分割フラグsplitFlag、デプス画像refDepPels[][]、変位ベクトルMvDisp[]を入力とする。
(Depth DV Deriving Unit 351) The depth
デプスDV導出部351は、サブブロックをさらに分割したサブサブブロックごとに、サブサブブロックのコーナーおよびその付近の点を複数個用いて、デプスの代表値maxDepを導出する。
The depth
(サブサブブロックへの分割) デプスDV導出部351は、分割フラグsplitFlagが1の場合(VSPの場合)には、ブロックをサブブロックに分割し、サブブロックをサブサブブロックに分割する。分割フラグsplitFlagが0の場合(デプスリファインの場合)には、ブロックの分割は行わない(サブブロック、サブサブブロックの幅、高さに、ブロックの幅と高さを設定する)。変位ベクトルの導出は、サブサブブロック単位に行われる。
(Division into Sub-subblocks) When the division flag splitFlag is 1 (in the case of VSP), the depth
(ブロック分割) デプスDV導出部351は、分割フラグsplitFlagが1の場合、サブブロックの幅nSubBlkW、高さnSubBlkHに8を設定する。さらに、デプスDV導出部351は、サブブロック毎に、サブブロックを分割するサブサブブロックのサイズ(8×4又は4×8)を決定する。まず、サブブロックの代表するデプス値として、左上端の座標のデプス画像の画素値をrefDepPels[ xP0 ][ yP0 ]、右上端の画素値をrefDepPels[ xP1 ][ yP0 ]、左下端の画素値をrefDepPels[ xP1 ][ yP0 ]、右下端の画素値をrefDepPels[ xP0 ][ yP0 ]とした場合、以下の条件式が成立する場合(horSplitFlagが0以外の場合)には、サブサブブロックの幅nSubSubBlkW、高さnSubSubBlkHに、nSubBlkW>>1、高さnSubSubBlkHを設定し、成立しない場合には、サブサブブロックの幅nSubSubBlkW、高さnSubSubBlkHに、nSubBlkW、高さnSubSubBlkH>>1を設定する。
(Block Division) When the split flag splitFlag is 1, the depth
horSplitFlag =( refDepPelsP0 > refDepPelsP3 ) == ( refDepPelsP1 > refDepPelsP2 )
なお、ブロック分割に用いるデプス画像上の座標xP0、yP0、xP1、yP1の導出方法は、ブロック分割参照位置導出(サブブロック座標導出)において、後述する。
horSplitFlag = (refDepPelsP0> refDepPelsP3) == (refDepPelsP1> refDepPelsP2)
A method for deriving coordinates xP0, yP0, xP1, and yP1 on the depth image used for block division will be described later in block division reference position derivation (subblock coordinate derivation).
分割フラグsplitFlagが0の場合、サブブロックの幅nSubBlkW、高さnSubBlkH、サブサブブロックの幅nSubSubBlkW、高さnSubSubBlkHに、ブロックの幅nPSW、高さnPSHを設定する。 When the split flag splitFlag is 0, the block width nPSW and height nPSH are set in the subblock width nSubBlkW, height nSubBlkH, subsubblock width nSubSubBlkW, and height nSubSubBlkH.
以下、サブサブブロック毎(デプス参照ブロック毎)に、代表デプス値を導出し、変位ベクトルを導出する。 Hereinafter, a representative depth value is derived for each sub-subblock (for each depth reference block), and a displacement vector is derived.
(代表デプス値の導出) 次に、デプスDV導出部351は、サブブロックの左上の座標を(xTL,yTL)、サブサブブロックの左上の相対座標(xSubB、ySubB)から、サブサブブロックの左端のX座標xP0と、右端のX座標xP1と、上端のY座標yP0と、下端のY座標yP1を設定する。
(Derivation of Representative Depth Value) Next, the depth
次に、デプスDV導出部351は、サブサブブロックのデプスの代表値を導出する。具体的には、サブサブブロックのコーナーおよびその付近4点のデプス画像の画素値refDepPels[ xD0 ][ yD0 ]、refDepPels[ xD0 ][ yD1 ]、refDepPels[ xD1 ][ yD0 ]、refDepPels[ xD1 ][ yD1 ]の最大値を以下の式を用いて導出し、代表デプス値maxDepとする。
Next, the depth
maxDep = 0
maxDep = Max( maxDep, refDepPels[ xD0 ][ yD0 ] )
maxDep = Max( maxDep, refDepPels[ xD1 ][ yD0] )
maxDep = Max( maxDep, refDepPels[ xD0][ yD1 ] )
maxDep = Max( maxDep, refDepPels[ xD1][ yD1 ] )
ここで関数Max(x,y)は、第1引数xが第2引数y以上であればxを、そうでなければyを返す関数である。
maxDep = 0
maxDep = Max (maxDep, refDepPels [xD0] [yD0])
maxDep = Max (maxDep, refDepPels [xD1] [yD0])
maxDep = Max (maxDep, refDepPels [xD0] [yD1])
maxDep = Max (maxDep, refDepPels [xD1] [yD1])
The function Max (x, y) is a function that returns x if the first argument x is greater than or equal to the second argument y, and returns y otherwise.
代表デプス値の導出に用いるデプス画像上の座標xP0、yP0、xP1、yP1の導出方法は代表デプス位置導出(サブサブブロック座標導出)において、後述する。 A method of deriving the coordinates xP0, yP0, xP1, and yP1 on the depth image used for deriving the representative depth value will be described later in the representative depth position derivation (sub-sub-block coordinate derivation).
なお、実施例4−1の場合のように、デプスDV導出部351は、サブサブブロックの上の隅2点を用いて代表デプス値maxDepを求めても良い。
Note that, as in the case of Example 4-1, the depth
maxDep = 0
maxDep = Max( maxDep, refDepPels[ xD0 ][ yD0 ] )
maxDep = Max( maxDep, refDepPels[ xD1 ][ yD0] )
下記の式も同値である。
maxDep = 0
maxDep = Max (maxDep, refDepPels [xD0] [yD0])
maxDep = Max (maxDep, refDepPels [xD1] [yD0])
The following formula is also equivalent.
maxDep = Max( refDepPels[ xD0 ][ yD0 ], refDepPels[ xD1 ][ yD0] )
以上の説明では代表デプス値maxDepは、デプスの代表点の最大値を用いているが、平均値を用いることも可能である。この場合、デプスDV導出部351は、以下の式により代表デプス値maxDepを導出する。
maxDep = Max (refDepPels [xD0] [yD0], refDepPels [xD1] [yD0])
In the above description, the representative depth value maxDep uses the maximum value of the representative points of the depth, but an average value can also be used. In this case, the depth
maxDep = (refDepPels[ xD0 ][ yD0 ] + refDepPels[ xD1 ][ yD0 ] + refDepPels[ xD1 ][ yD1 ] + refDepPels[ xD1 ][ yD1 ]+2)>>2
なお、実施例4−1の場合のように、デプスDV導出部351は、サブサブブロックの上の隅2点を用いる場合には、代表デプス値maxDepを以下の式により平均値を求める。
maxDep = (refDepPels [xD0] [yD0] + refDepPels [xD1] [yD0] + refDepPels [xD1] [yD1] + refDepPels [xD1] [yD1] +2) >> 2
As in the case of Example 4-1, the depth
maxDep = (refDepPels[ xD0 ][ yD0 ] + refDepPels[ xD1 ][ yD0 ]+1)>>1
(変位ベクトルの導出) デプスDV導出部351は、代表デプス値maxDepとデプスDV変換テーブルDepthToDisparityBと変位ベクトル(NBDV)MvDispが示すレイヤのレイヤIDrefViewIdxを用いて、デプス由来の変位ベクトルの水平成分である視差配列disparitySamplesを、サブサブブロック内の画素(x、y)(xは0からnSubSubBlkW-1、yは0からnSubSubBlkH-1の値を取る)ごとに、以下の式Aを用いて導出する。
maxDep = (refDepPels [xD0] [yD0] + refDepPels [xD1] [yD0] +1) >> 1
(Derivation of Displacement Vector) The depth
disparitySamples[x][y] =DepthToDisparityB[refViewIdx][maxDep]・・・(式A)
つまり、導出された視差ベクトルは、ブロック内の各サブサブブロックに対して、視差ベクトル画像disparitySamples[x][y]に格納される。
disparitySamples [x] [y] = DepthToDisparityB [refViewIdx] [maxDep] ... (Formula A)
That is, the derived disparity vector is stored in the disparity vector image disparitySamples [x] [y] for each sub-subblock in the block.
for( yOff = 0; yOff < nSubSubBlkH; yOff++ )
for( xOff = 0; xOff < nSubSubBlkW; xOff++ ) {
x = xSubB + xOff
y = ySubB + yOff
disparitySamples[x][y] = DepthToDisparityB[refViewIdx][maxDep]
ここで、xOff、yOffは、各サブサブブロックのサブブロック左上座標(xSub、ySub)からの相対座標であり、また、サブサブブロック単位で符号化データから復号されたパラメータにより導出される参照ビューrefViewIdxのデプスDV変換テーブルDepthToDisparityBを用いて、代表デプス値maxDepから座標(x,y)における変位ベクトルの水平方法ベクトルdisparitySamples[x][y]が以下の式により導出されている。
for (yOff = 0; yOff <nSubSubBlkH; yOff ++)
for (xOff = 0; xOff <nSubSubBlkW; xOff ++) {
x = xSubB + xOff
y = ySubB + yOff
disparitySamples [x] [y] = DepthToDisparityB [refViewIdx] [maxDep]
Here, xOff and yOff are relative coordinates from the sub-block upper left coordinates (xSub, ySub) of each sub-sub block, and the reference view refViewIdx derived from the parameters decoded from the encoded data in sub-sub-block units. Using the depth DV conversion table DepthToDisparityB, the horizontal method vector disparitySamples [x] [y] of the displacement vector at the coordinates (x, y) is derived from the representative depth value maxDep by the following equation.
disparitySamples[x][y] = DepthToDisparityB[refViewIdx][maxDep]
なお、デプスDV変換テーブルDepthToDisparityBの要素DepthToDisparityB[d]は、傾きcp_scaleとオフセットcp_off、傾きの精度cp_precisionを用いて、以下の式によって求めることができる。パラメータcp_scale、cp_off、cp_precisionは参照する視点毎に符号化データ中のパラメータセットから復号する。
disparitySamples [x] [y] = DepthToDisparityB [refViewIdx] [maxDep]
The element DepthToDisparityB [d] of the depth DV conversion table DepthToDisparityB can be obtained by the following equation using the slope cp_scale, the offset cp_off, and the slope precision cp_precision. The parameters cp_scale, cp_off, and cp_precision are decoded from the parameter set in the encoded data for each viewpoint to be referred to.
log2Divは、BitDepthY -1 + cp_precision
offset = ( cp_off << BitDepthY ) + ( ( 1 << log2Div ) >> 1 )
scale = cp_scale
DepthToDisparityB[ d ] = ( scale * d + offset ) >> log2Div
(デプス値を導出する構成の詳細)
(概要) 上述したように、デプスアクセスの範囲を自由にすると、アクセスのバンド幅が大きくなってしまう。そこで本実施形態では、デプスアクセスを制限している。
log2Div is BitDepth Y -1 + cp_precision
offset = (cp_off << BitDepthY) + ((1 << log2Div) >> 1)
scale = cp_scale
DepthToDisparityB [d] = (scale * d + offset) >> log2Div
(Details of configuration for deriving depth values)
(Outline) As described above, if the depth access range is made free, the access bandwidth becomes large. Therefore, in this embodiment, depth access is restricted.
デプスは多くのオブジェクトにおいて、オブジェクト内で大きく変化しない、ほぼ一様の値である。この性質を考慮して、デプスアクセスは、それぞれのPUにおける4隅にアクセスするとし、個々のブロック内であればアクセス自体はまばらである。しかしながら、デプスアクセスの上端左の位置は制限されないため、ブロックにより全く異なる位置をアクセスする可能性が有り、アクセスの範囲は広がる。ここで、デプスを用いて変位ベクトルを求める技術は、変位ベクトルの垂直方向の範囲を、ほぼ0と仮定しており、かつ、デプス自体がほぼ一様であるということを考慮すれば、さらにアクセスを均一にすることで、帯域幅を適切に減ずることが可能である。 The depth is an almost uniform value that does not change greatly in the object in many objects. Considering this property, it is assumed that the depth access accesses four corners in each PU, and the access itself is sparse within each block. However, since the position at the upper left of the depth access is not limited, there is a possibility of accessing a completely different position depending on the block, and the access range is expanded. Here, the technique for obtaining the displacement vector using the depth assumes that the vertical range of the displacement vector is almost zero, and further considers that the depth itself is substantially uniform. It is possible to reduce the bandwidth appropriately by making the frequency uniform.
デプスに基づいた技術は2つあり、1つはデプスリファインメントであり、もう1つは視差合成予測(VSP)である。デプスリファインメントは、他の視点のデプス情報を用いて、より正確な視差ベクトルを得ている。隣接するPUのDVから導かれるネイバーベース視差ベクトル(NBDV)は、デプス由来NBDV(DoNBDV)と置き換えられる。このデプス由来NBDV(DoNBDV)は、他の視点画像における、PU位置からNBDV分シフトした位置のデプス値から導かれる。DVはカメラ位置が固定であれば、デプスと1対1対応するため、DVはデプス値から導かれ得る。 There are two techniques based on depth, one is depth refinement, and the other is disparity synthesis prediction (VSP). In depth refinement, more accurate disparity vectors are obtained using depth information of other viewpoints. The neighbor base disparity vector (NBDV) derived from the DV of the adjacent PU is replaced with the depth-derived NBDV (DoNBDV). This depth-derived NBDV (DoNBDV) is derived from the depth value at a position shifted by NBDV from the PU position in another viewpoint image. Since DV has a one-to-one correspondence with depth if the camera position is fixed, DV can be derived from the depth value.
視差合成予測(VSP)は、ブロック生成方法を予測する。その位置は、PUが自動的にそれぞれのサブPUへと分割される位置であり、そのサイズは、8×4または4×8である。そして、それぞれのサブPU視差ベクトルは、他の視点のデプス情報から導かれる。 Disparity synthesis prediction (VSP) predicts a block generation method. The position is a position where the PU is automatically divided into the respective sub PUs, and the size is 8 × 4 or 4 × 8. Each sub-PU disparity vector is derived from depth information of other viewpoints.
本実施形態では、デプスDV導出部351は、デプスアクセスする際に、常に制限されたアドレスのデータのみをアクセスするように、デプスアクセスに用いるデプスブロックのテクスチャブロックに対する相対位置の垂直方向の位置を0とする(実施例1−1)か、又は、デプスアクセスに用いるデプスブロックの垂直方向の位置を、テクスチャブロックによらずに4又は8の倍数に制限(実施例1−2)している。さらに、本実施形態では、デプスDV導出部351は、デプスアクセスを減らすために、VSPの分割の際に参照するサブブロックの隅の位置の垂直成分を4又は8の倍数(実施例2−1)にする。また、VSPおよびデプスリファインメントにおいて代表デプス値を定めるためにアクセスする代表デプス位置導出として、隅の位置の垂直成分を4又は8の倍数(実施例3−1)(実施例3−2)(実施例3−3)(実施例3−4)にする。なお、代表デプス値を定めるためにアクセスする代表デプス位置導出をVSPとデプスリファインメントの場合で異なる処理を用いることによりアクセスを低減することもできる。この場合を、(実施例4−1)(実施例4−2)で説明する。
In the present embodiment, the depth
なお、各実施例は、単体でもデプスアクセスを容易にする効果を奏するが、組み合わせより大きな効果を得ることができる。例えば、デプスアクセスに用いるデプスブロックのテクスチャブロックに対する相対位置の垂直方向の位置を0とする実施例1−1と、参照するデプスブロックの下側の垂直方向位置yP1を、上側の垂直方向位置yP0にサブブロック高さnSubBlkHを加えた値となるようにしてデプスアクセスを減らす実施例2−1、代表デプス値を定めるためにアクセスする代表デプス位置導出をVSPとデプスリファインメントの場合ともに8の倍数とする実施例4−2(もしくは実施例4−2A、実施例3−3)を組み合わせることにより、デプスにアクセスする全ての処理において、デプスアクセスの垂直成分を8の倍数とすることができる。また、実施例1−1の代わりに実施例1−3を用いても8の倍数に制限することができる。実施例2−1と実施例4−2(実施例4−2A)の組み合わせによれば、サブブロック位置の導出と、デプスリファンメントにおけるサブサブブロック位置の導出を共通化することができる。 In addition, although each Example has the effect which makes depth access easy even if it is single, it can obtain a bigger effect than a combination. For example, the first embodiment in which the vertical position of the relative position of the depth block used for depth access with respect to the texture block is set to 0, and the lower vertical position yP1 to be referred to are referred to as the upper vertical position yP0. Example 2-1 in which depth access is reduced by adding sub-block height nSubBlkH to a value obtained by subtracting the representative depth position to be used to determine the representative depth value in both VSP and depth refinement in multiples of 8 In combination with Example 4-2 (or Example 4-2A, Example 3-3), the vertical component of depth access can be made a multiple of 8 in all processes accessing depth. Moreover, even if Example 1-3 is used instead of Example 1-1, it can restrict | limit to the multiple of 8. According to the combination of Example 2-1 and Example 4-2 (Example 4-2A), the derivation of the sub-block position and the derivation of the sub-sub-block position in the depth reference can be made common.
他に例えば、実施例1−1と、実施例2−1、実施例4−1(または実施例4−1A)を組み合わせることにより、デプスにアクセスする全ての処理において、デプスアクセスの垂直成分を4の倍数とすることができる。また、実施例1−1の代わりに実施例1−2を用いても4の倍数に制限することができる。実施例2−1と実施例4−1(実施例4−1A)の組み合わせによれば、サブブロック位置の導出と、デプスリファンメントにおけるサブサブブロック位置の導出を共通化することができる。 In addition, for example, by combining the embodiment 1-1, the embodiment 2-1, and the embodiment 4-1 (or the embodiment 4-1A), the vertical component of the depth access is changed in all the processes that access the depth. It can be a multiple of four. Moreover, even if Example 1-2 is used instead of Example 1-1, it can restrict | limit to the multiple of 4. According to the combination of Example 2-1 and Example 4-1 (Example 4-1A), the derivation of the sub-block position and the derivation of the sub-sub-block position in the depth reference can be made common.
他に例えば、デプスアクセスに用いるデプスブロックの垂直方向の位置を、4の倍数に制限する実施例1−2、参照するデプスブロックの下側の垂直方向位置yP1(yD1)を、上側の垂直方向位置yP0(yD0)にサブブロック高さnSubBlkH(サブサブブロック高さnSubSubBlkH)を加えた値となるようにしてデプスアクセスを減らす実施例2−1、実施例3−1を組み合わせることにより、デプスにアクセスする全ての処理において、デプスアクセスの垂直成分を4の倍数とすることができる。また、実施例2−1と実施例3−1の組み合わせによれば、サブブロック位置の導出とサブサブブロック位置の導出を共通化することができる。 In addition, for example, in Embodiment 1-2 in which the vertical position of the depth block used for depth access is limited to a multiple of 4, the lower vertical position yP1 (yD1) of the reference depth block is set to the upper vertical direction. Depth access is reduced by combining sub-block height nSubBlkH (sub-sub-block height nSubSubBlkH) to position yP0 (yD0), and the depth is reduced by combining the embodiments 2-1 and 3-1. In all processing, the vertical component of depth access can be a multiple of four. Moreover, according to the combination of Example 2-1 and Example 3-1, it is possible to share the derivation of the sub-block position and the derivation of the sub-sub-block position.
他に例えば、デプス参照位置の垂直成分をラウンドする実施例2−2、実施例3−2を組み合わせることにより、デプスにアクセスする全ての処理において、デプスアクセスの垂直成分を4の倍数とすることができる。また、実施例2−2と実施例3−2の組み合わせによれば、サブブロック位置の導出とサブサブブロック位置の導出を共通化することができる。 In addition, for example, by combining the embodiment 2-2 and the embodiment 3-2 that round the vertical component of the depth reference position, the vertical component of the depth access is set to a multiple of 4 in all the processes that access the depth. Can do. Moreover, according to the combination of Example 2-2 and Example 3-2, subblock position derivation and subsubblock position derivation can be made common.
他に例えば、デプス参照位置の垂直成分をラウンドする実施例2−3、実施例3−3を組み合わせることにより、デプスにアクセスする全ての処理において、デプスアクセスの垂直成分を8の倍数とすることができる。また、実施例2−2と実施例3−2の組み合わせによれば、サブブロック位置の導出とサブサブブロック位置の導出を共通化することができる。 In addition, for example, by combining the embodiment 2-3 and the embodiment 3-3 that round the vertical component of the depth reference position, the vertical component of the depth access is set to a multiple of 8 in all the processes that access the depth. Can do. Moreover, according to the combination of Example 2-2 and Example 3-2, subblock position derivation and subsubblock position derivation can be made common.
(視差アレイの導出プロセス) デプスDV導出部351は、デプスブロックの上端左の位置(xTL,yTL)を、ブロックの左上座標(xP、yP)に変位ベクトルmvDisp[]だけ加算した位置として下記によって導出する。
xTL = xP + ( ( mvDisp[0] + 2 ) >> 2 )
yTL = yP (実施例1−1)
又は、
yTL = ((yP + ( ( mvDisp[1] + 1 )>>2)+2) >> 2 ) << 2 (実施例1−2:4の倍数の場合)
yTL = ((yP + ( ( mvDisp[1] + 1 )>>2)+4) >> 3 ) << 3 (実施例1−2:8の倍数の場合)
サイズ(nPSW)x(nPSH)のアレイdisparitySamplesは、以下の通りに特定されることにより導出する。
(Parallax Array Derivation Process) The depth
x TL = xP + ((mvDisp [0] + 2) >> 2)
y TL = yP (Example 1-1)
Or
y TL = ((yP + ((mvDisp [1] + 1) >> 2) +2) >> 2) << 2 (Example 1-2: In case of multiple of 4)
y TL = ((yP + ((mvDisp [1] + 1) >> 2) +4) >> 3) << 3 (Example 1-2: In case of multiple of 8)
The array disparitySamples of size (nPSW) × (nPSH) is derived by being specified as follows.
(実施例1−1)では、ブロックの左上座標(xP、yP)に加える変位として、変位ベクトルmvDisp[]の水平成分のみを用い、垂直成分は0としている。デプスアクセスに用いる変位ベクトルの垂直成分を0としているため、ブロックの座標が定まれば、デプスアクセス時の変位は水平方向に限定されるため、アクセスが容易になる(ハードウェアでのデプス画像の転送が容易になり、ソフトウェアにおいてもキャッシュが当たりやすくなる)。なお、ブロックの座標はCU単位であるデプスリファインの場合には8の倍数、PU単位であるVSPでは4の倍数であるから、デプスブロックの位置は必ず4の倍数となる。 In Example 1-1, only the horizontal component of the displacement vector mvDisp [] is used as the displacement to be added to the upper left coordinates (xP, yP) of the block, and the vertical component is zero. Since the vertical component of the displacement vector used for depth access is set to 0, if the coordinates of the block are determined, the displacement during depth access is limited to the horizontal direction, so access is easy (depth image in hardware). Transfer becomes easy, and it is easy to hit the cache in software). Note that the coordinates of the block are multiples of 8 for depth refinement in CU units, and multiples of 4 for VSPs in PU units, so the position of the depth block is always a multiple of 4.
(実施例1−2)では、ブロックの左上座標(xP、yP)に加える変位として、変位ベクトルmvDisp[]の水平成分と垂直成分を用いるが、デプスブロックの座標を4の倍数に限定する。なお、4の倍数への限定する処理は上記に限定されない。例えば、右シフトにより4の剰余の切り捨てて及び2ビット左シフトは、以下の処理で行うこともできる。
yTL = (((yP<<2) + mvDisp[1] + 8) >> 4 ) << 2
(実施例1−3)では、ブロックの左上座標(xP、yP)に加える変位として、変位ベクトルmvDisp[]の水平成分と垂直成分を用いるが、デプスブロックの座標を8の倍数に限定する。
yTL = (((yP<<2) + mvDisp[1] + 16) >> 5 ) << 3
これらの場合も、デプスアクセス時の変位は垂直方向位置が限定されるためアクセスが容易になる。
In Example 1-2, the horizontal and vertical components of the displacement vector mvDisp [] are used as the displacement added to the upper left coordinates (xP, yP) of the block, but the coordinates of the depth block are limited to multiples of 4. Note that the process of limiting to a multiple of 4 is not limited to the above. For example, truncation of the remainder of 4 by right shift and 2-bit left shift can be performed by the following processing.
y TL = (((yP << 2) + mvDisp [1] + 8) >> 4) << 2
In Example 1-3, the horizontal and vertical components of the displacement vector mvDisp [] are used as the displacement added to the upper left coordinates (xP, yP) of the block, but the coordinates of the depth block are limited to multiples of 8.
y TL = (((yP << 2) + mvDisp [1] + 16) >> 5) << 3
Also in these cases, the displacement at the depth access is easy to access because the vertical position is limited.
デプスDV導出部351は、デプスブロック左上位置(xTL、yTL)、デプスブロック左上位置に対するサブブロック左上位置の相対位置(xB、yB)、サブサブブロックの左上位置の相対位置(xSubB、ySubB)から、ブロック分割参照位置(サブブロック座標)xP0、xP1、yP0、yP1、代表デプス位置(サブサブブロック座標)xD0、xD1、yP0、yP1を導出する。
The depth
(サブブロック座標の導出プロセス) 以下、VSPのサブサブブロック分割の判定に用いるデプス画像の参照位置であるブロック分割参照位置xP0, xP1, yP0, yP1の導出処理を説明する。 (Subblock Coordinate Derivation Process) Derivation processing of block division reference positions xP0, xP1, yP0, and yP1 that are reference positions of depth images used for determination of sub-subblock division of VSP will be described below.
(サブブロック座標の導出プロセス:実施例2−1) デプスDV導出部351は、VSPのサブサブブロック分割の判定に用いるデプス画像の参照位置であるブロック分割参照位置を導出する。デプスDV導出部351は、下側の垂直方向位置yP1を、上側の垂直方向位置yP0にサブブロック高さnSubBlkHを加えた値となるように、サブブロック座標を以下のように導出できる。
(Subblock Coordinate Derivation Process: Example 2-1) The depth
xP0 = Clip3( 0, pic_width_in_luma_samples− 1, xTL + xB )
yP0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + yB )
xP1 = Clip3( 0, pic_width_in_luma_samples− 1, xTL + xB + nSubBlkW − 1 )
yP1 = Clip3( 0, pic_height_in_luma_samples −1, yTL + yB + nSubBlkH )
なお、pic_width_in_luma_samplesとpic_height_in_luma_samplesは、それぞれ画像の幅と高さを表し、関数Clip3(x,y,z)は、第3引数zが第1引数xより小さい場合にはxを、zが第2引数yよりも大きければyを、そうでなければzを返す関数である。(以下同様)。なお、別の処理において画面内に収めるクリップがなされる場合(yP0のように左上位置yTLが既にクリップされている場合には画面外にでることがない場合)などにおいては、デプスDV導出部351におけるクリップ処理は省略しても良い(サブサブブロック座標導出処理においても同様)。クリップを外した表現を示すと、以下となる。
xP0 = Clip3 (0, pic_width_in_luma_samples− 1, x TL + xB)
yP0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + yB)
xP1 = Clip3 (0, pic_width_in_luma_samples− 1, x TL + xB + nSubBlkW − 1)
yP1 = Clip3 (0, pic_height_in_luma_samples −1, y TL + yB + nSubBlkH)
Note that pic_width_in_luma_samples and pic_height_in_luma_samples represent the width and height of the image, respectively, and the function Clip3 (x, y, z) is x when the third argument z is smaller than the first argument x, and z is the second argument. If y is larger than y, y is returned. Otherwise, z is returned. (The same applies hereinafter). In addition, when a clip that fits in the screen is made in another process (when the upper left position yTL is already clipped like yP0), the depth
xP0 = xTL + xB
yP0 = yTL + yB
xP1 = xTL + xB + nSubBlkW − 1
yP1 = yTL + yB + nSubBlkH
実施例2−1では、サブブロックの左下および右下の垂直方向位置を求める際に、サブブロックの左上および右上の垂直位置であるyp0にサブブロックの高さnSubBlkH(nSubSubBlkH)を加えた値を用いる。サブブロックの高さnSubBlkHの最小値は8であるから、(サブブロックの左上位置の垂直成分yTLが8の倍数であれば)デプスアクセスする際の垂直方向位置は8の倍数のラインに限定される。なお、サブブロックの左上座標の垂直成分yTLを8の倍数とする方法は、実施例1−3の制限(8の倍数の場合)を用いる方法などにより行うことができる。
xP0 = x TL + xB
yP0 = y TL + yB
xP1 = x TL + xB + nSubBlkW − 1
yP1 = y TL + yB + nSubBlkH
In Example 2-1, when obtaining the vertical position of the lower left and lower right of the sub-block, a value obtained by adding the height nSubBlkH (nSubSubBlkH) of the sub-block to yp0 which is the vertical position of the upper left and upper right of the sub-block. Use. Since the minimum value of the sub-block height nSubBlkH is 8, the vertical position at the time of depth access is limited to a line that is a multiple of 8 (if the vertical component y TL at the upper left position of the sub-block is a multiple of 8). Is done. Note that the method of making the vertical component y TL of the upper left coordinate of the sub-block a multiple of 8 can be performed by a method using the limitation (in the case of a multiple of 8) of Example 1-3.
図24に、実施例2−1の場合のデプスDV導出部351の動作例を示す。図24に示すように、実施例2−1では、デプスDV導出部351は、サブブロックサイズが8×8の場合、すなわち8×8サブブロック単位で、サブサブブロックに分割する場合には、8の倍数のラインのみにデプスアクセスする。サブブロックサイズを仮に4×4にした場合には、4の倍数のラインのみにデプスアクセスする。
FIG. 24 illustrates an operation example of the depth
(サブブロック座標の導出プロセス:実施例2−2) デプスDV導出部351は、以下のように、垂直方向座標をラウンドする処理を加え、サブブロックの左上位置の垂直成分yTLが4の倍数などに限定されるか否かによらずに、デプスをアクセスする点の垂直成分が4の倍数に限定されるようにしても良い。
(Subblock Coordinate Derivation Process: Example 2-2) The depth
デプスDV導出部351は、ブロック分割参照位置を以下のように導出できる。
The depth
xP0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xB )
yP0 = Clip3( 0, pic_height_in_luma_samples − 1, (yTL + yB + round0) >> 2) << 2)
xP1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xB + nSubBlkW −1 )
yP1 = Clip3( 0, pic_height_in_luma_samples − 1, (yTL + yB + nSubBlkH − 1+ round1) >> 2) << 2)
ここで、round0、round1は、右に2ビット、左に2ビットシフトする処理においてラウンド方向を制御するための定数(ここではround0=0..3、round1=0..3などとする)。
xP0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xB)
yP0 = Clip3 (0, pic_height_in_luma_samples − 1, (y TL + yB + round0) >> 2) << 2)
xP1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xB + nSubBlkW −1)
yP1 = Clip3 (0, pic_height_in_luma_samples − 1, (y TL + yB + nSubBlkH − 1+ round1) >> 2) << 2)
Here, round0 and round1 are constants for controlling the round direction in the process of shifting 2 bits to the right and 2 bits to the left (here, round0 = 0..3, round1 = 0..3, etc.).
(サブブロック座標の導出プロセス:実施例2−3) デプスDV導出部351は、以下のように、垂直方向座標をラウンドする処理を加え、サブブロックの左上位置の垂直成分yTLによらずに、デプスをアクセスする点の垂直成分が8の倍数に限定されるようにしても良い。
(Subblock Coordinate Derivation Process: Example 2-3) The depth
デプスDV導出部351は、ブロック分割参照位置を以下のように導出できる。
The depth
xP0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xB )
yP0 = Clip3( 0, pic_height_in_luma_samples − 1, (yTL + yB + round0) >> 3) << 3)
xP1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xB + nSubBlkW −1 )
yP1 = Clip3( 0, pic_height_in_luma_samples − 1, (yTL + yB + nSubBlkH − 1+ round1) >> 3) << 3)
ここで、round0、round1は、右に3ビット、左に3ビットシフトする処理においてラウンド方向を制御するための定数(ここではround0=4..7、round1=4..7とする)。
xP0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xB)
yP0 = Clip3 (0, pic_height_in_luma_samples − 1, (y TL + yB + round0) >> 3) << 3)
xP1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xB + nSubBlkW −1)
yP1 = Clip3 (0, pic_height_in_luma_samples − 1, (y TL + yB + nSubBlkH − 1+ round1) >> 3) << 3)
Here, round0 and round1 are constants for controlling the round direction in the process of shifting 3 bits to the right and 3 bits to the left (here, round0 = 4..7, round1 = 4..7).
実施例2−3では、サブブロックのコーナー座標の垂直方向位置yPO、yP1を、右に3ビットシフト、左に3ビットシフトする処理を含んで導出することにより、8の倍数となるように設定する。 In the embodiment 2-3, the vertical position yPO, yP1 of the corner coordinates of the sub-block is set to be a multiple of 8 by deriving including the process of shifting 3 bits to the right and 3 bits to the left. To do.
(サブサブブロック座標の導出プロセス) 以下、デプス参照ブロック(サブサブブロック)から代表デプスを求める場合に用いる、代表デプスの位置xD0,xD1,yD1,yD2の導出処理を説明する。 (Sub-subblock coordinate derivation process) Described below is the process of deriving the representative depth positions xD0, xD1, yD1, and yD2, which are used when the representative depth is obtained from the depth reference block (sub-subblock).
(サブサブブロック座標の導出プロセス:実施例3−1) デプスDV導出部351は、サブサブブロック座標(代表デプス位置)を以下のように導出できる。
(Sub-sub-block coordinate derivation process: Example 3-1) The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB + nSubSubBlkH)
実施例3−1では、サブサブブロックの左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubSubBlkHを加えた値を用いる。実施例3−1の処理では、デプスリファインメントの場合、サブサブブロックの高さの最小値は8であるから、デプスアクセスする際の垂直方向位置は8の倍数のラインに限定される。VSPの場合、サブサブブロックの高さの最小値は4であるから、(実施例1の制限によりデプスブロックの左上位置の垂直成分yTLが4の倍数であれば)、デプスアクセスする際の垂直方向位置は4の倍数のラインに限定される。これにより、デプスアクセスが容易になる。図20、図25に、実施例3−1の場合のデプスDV導出部351の動作例(VSPの場合)を示す。図20、図25に示すように、実施例3−1では、デプスDV導出部351は、参照デプスブロック(サブサブブロックサイズ)が8×4の場合、4の倍数のラインのみにデプスアクセスする。また、デプスDV導出部351は、参照デプスブロックが4×8の場合、8の倍数のラインのみにデプスアクセスする。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB + nSubSubBlkH)
In Example 3-1, when the lower left and lower right vertical positions of the sub sub block are obtained, a value obtained by adding the height nSubSubBlkH of the sub sub block to the upper left and upper right vertical positions of the sub sub block is used. In the processing of Example 3-1, in the case of depth refinement, since the minimum value of the height of the sub-subblock is 8, the vertical position at the time of depth access is limited to lines that are multiples of 8. In the case of VSP, since the minimum value of the height of the sub-sub-block is 4, (if the vertical component y TL at the upper left position of the depth block is a multiple of 4 due to the limitation of the first embodiment), the vertical at the time of depth access Directional positions are limited to lines that are multiples of four. This facilitates depth access. 20 and 25 show an operation example (in the case of VSP) of the depth
図24に、実施例3−1の場合のデプスDV導出部351の動作例(デプスリファインの場合)を示す。図24に示すように、実施例3−1では、デプスDV導出部351は、デプスリファインの場合、8の倍数のラインのみにデプスアクセスする。
FIG. 24 illustrates an operation example (in the case of depth refinement) of the depth
(サブサブブロックの導出処理:実施例3−2) デプスDV導出部351は、代表デプス位置を以下のように、ラウンド演算を用いて導出できる。
(Sub-sub-block derivation process: Example 3-2) The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + round0) >> 2) << 2 )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + nSubSubBlkH − 1+ round1) >> 2) << 2 )
ここで、round0、round1は、右に2ビット、左に2ビットシフトする処理においてラウンド方向を制御するための定数(例えば、round0=0..3、round1=0..3とする)。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + round0) >> 2) << 2)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + nSubSubBlkH − 1+ round1) >> 2) << 2)
Here, round0 and round1 are constants for controlling the round direction in the process of shifting 2 bits to the right and 2 bits to the left (for example, round0 = 0..3 and round1 = 0..3).
実施例3−2では、サブサブブロックのコーナー座標の垂直方向位置yDO、yD1を、右に2ビットシフト、左に2ビットシフトする処理を含んで導出することにより、4の倍数となるように設定する。 In Example 3-2, the vertical position yDO, yD1 of the corner coordinates of the sub-subblock is set to be a multiple of 4 by deriving including the process of shifting 2 bits to the right and 2 bits to the left. To do.
実施例3−2は、サブサブブロックの参照位置(代表デプス位置)の垂直方向位置yD0、yD1を4の倍数に限定する。これにより、デプスアクセスが容易になる。 In Example 3-2, the vertical position yD0 and yD1 of the reference position (representative depth position) of the sub-subblock is limited to a multiple of four. This facilitates depth access.
(サブサブブロックの導出処理:実施例3−3) デプスDV導出部351は、代表デプス位置を以下のように、ラウンド演算を用いて導出できる。
(Sub-sub-block derivation process: Example 3-3) The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + round0) >> 3) << 3 )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + nSubSubBlkH − 1+ round1) >> 3) << 3 )
ここで、round0、round1は、右に3ビット、左に3ビットシフトする処理においてラウンド方向を制御するための定数(例えば、round0=0..7、round1=0..7とする)。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + round0) >> 3) << 3)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + nSubSubBlkH − 1+ round1) >> 3) << 3)
Here, round0 and round1 are constants for controlling the round direction in the process of shifting 3 bits to the right and 3 bits to the left (for example, round0 = 0..7, round1 = 0..7).
実施例3−3では、サブサブブロックのコーナー座標の垂直方向位置yDO、yD1を、右に3ビットシフト、左に3ビットシフトする処理を含んで導出することにより、8の倍数となるように設定する。実施例3−3では、サブサブブロックの参照位置(代表デプス位置)の垂直方向位置yD0、yD1を8の倍数に限定する。これにより、デプスアクセスが容易になる。 In Example 3-3, the vertical position yDO, yD1 of the corner coordinates of the sub-sub block is set to be a multiple of 8 by deriving including the process of shifting 3 bits to the right and 3 bits to the left. To do. In Example 3-3, the vertical position yD0 and yD1 of the reference position (representative depth position) of the sub-subblock is limited to a multiple of 8. This facilitates depth access.
図21、図28に実施例3−3の場合のデプスDV導出部351の動作例を示す(VSPの場合、round0=4..7,round1=1..4の場合)。図21、図28に示すように、実施例3−3では、デプスDV導出部351は、サブサブブロックのサイズ(8×4もしくは4×8)に関わらず、サブサブブロックのデプス画像を参照する際に、8の倍数のラインのみにアクセスする。なお、図28の例は、ラウンドを制御する定数round0が4から7(例えば4)、round1が1から4(例えば4)の場合である。この定数を選択する場合、サブサブブロックの左上座標の垂直成分yTLに応じてアクセスするラインが変化するため、デプス由来の変位ベクトルを導出する効果の意味では好ましい。
FIG. 21 and FIG. 28 show an example of the operation of the depth
(サブサブブロックの導出処理:実施例3−4) デプスDV導出部351は、代表デプス位置を以下のように導出できる。
(Sub-subblock Derivation Process: Example 3-4) The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = yD0
実施例3−4では、サブサブブロックの左下位置と右下位置が、左上位置と右上位置と一致するように設定する(垂直方向位置yD0とyD1に同じ値を設定する)。従って実質的には2点のみにアクセスするのと同じとなる。図26に、実施例3−4の場合のデプスDV導出部351の動作例を示す。図26に示すように、実施例3−4では、デプスDV導出部351は、参照デプスブロック(サブサブブロックサイズ)が8×4の場合、4の倍数のラインのみにデプスアクセスする。また、デプスDV導出部351は、参照デプスブロックが4×8の場合、8の倍数のラインのみにデプスアクセスする。実施例3−4では、デプスアクセスする際の垂直方向位置は4の倍数のラインに限定されることにより、デプスアクセスが容易になる。また、サブサブブロックのアクセスが実質的に2点となるため、デプスアクセスが容易になる。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = yD0
In Example 3-4, the lower left position and the lower right position of the sub-subblock are set so as to coincide with the upper left position and the upper right position (the same value is set in the vertical positions yD0 and yD1). Therefore, it is substantially the same as accessing only two points. FIG. 26 illustrates an operation example of the depth
(サブサブブロックの導出処理:実施例4−1) 実施例4−1では、サブサブブロックの導出処理は、VSPの場合(splitFlag=1)と、デプスリファインメントの場合(splitFlag=0)の場合で、異なる処理を用いても良い。デプスDV導出部351は、ブロック分割する場合(VSPの場合)の代表デプス位置を以下のように導出する。VSPでは、代表デプス位置は、2点(xD0, yD0)、(xD1, yD0)である。
(Sub-subblock derivation process: Example 4-1) In Example 4-1, the sub-subblock derivation process is performed in the case of VSP (splitFlag = 1) and in the case of depth refinement (splitFlag = 0). Different processing may be used. The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
ここで、デプスDV導出部351は、以下の式により代表デプス値maxDepを導出する。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
Here, the depth
maxDep = Max( refDepPels[ xP0 ][ yP0 ], refDepPels[ xP0 ][ yP1] )
また、ブロック分割しない場合(デプスリファインの場合)の代表デプス位置は、以下のように導出できる。
maxDep = Max (refDepPels [xP0] [yP0], refDepPels [xP0] [yP1])
In addition, the representative depth position when not dividing blocks (in the case of depth refinement) can be derived as follows.
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_width_in_luma_samples −1, yTL + ySubB + nSubSubBlkH)
デプスリファインでは、代表デプス位置は、4点(xD0, yD0)、(xD1, yD0)、(xD0, yD1)、(xD1, yD1)であり、デプスDV導出部351は、既に説明したように、4点のデプス値から代表デプス値maxDepを導出する。実施例4−1では、ブロック分割する場合(VSPの場合)にはサブサブブロックの上側のみを参照し、ブロック分割しない場合(デプスリファインの場合)にサブサブブロックの上側と下側を参照する。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_width_in_luma_samples −1, y TL + ySubB + nSubSubBlkH)
In the depth refinement, the representative depth positions are four points (xD0, yD0), (xD1, yD0), (xD0, yD1), (xD1, yD1), and the depth
図21に実施例4−1のVSPの例も示す。図21に示すように、実施形態3−3と同様、実施例4−1も、デプスDV導出部351は、参照デプスブロック(サブサブブロックサイズ)が8×4の場合、4の倍数のラインのみにデプスアクセスする。また、デプスDV導出部351は、参照デプスブロックが4×8の場合、8の倍数のラインのみにデプスアクセスする。実施例4−1では、デプスリファインメントの場合、デプス参照ブロック(サブサブブロック)の左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubBlkH(nSubSubBlkH)を加えた値を用いる(実施例3−1と同様)。図24に示すように、デプスリファインの場合、ブロックの左上座標の垂直成分は8の倍数であれば、ブロックの高さ(CUの高さ)は8の倍数であるから、サブブロックの上側の位置および下側の位置はともに8の倍数となる。実施例4−1では、デプスアクセスする際の垂直方向位置は、デプスリファインの場合、8の倍数のラインに限定され、VSPの場合には、4の倍数のラインに限定されることより、デプスアクセスが容易になる。また、VSPの場合、サブサブブロックのアクセスが2点となるため、デプスアクセスが容易になる。
FIG. 21 also shows an example of the VSP of Example 4-1. As shown in FIG. 21, similarly to Embodiment 3-3, in Example 4-1 as well, the depth
なお、実施例3−4と同様に、サブサブブロックの左下位置と右下位置が、左上位置と右上位置と一致するように設定することで、実質的に2点のアクセスとする方式により、VSPの場合もデプスリファインの場合も一様に、4点を参照しても良い。この場合を実施例4−1Aに示す。 Similar to the embodiment 3-4, by setting the lower left position and the lower right position of the sub-sub-block to be the same as the upper left position and the upper right position, the VSP can be substantially accessed by two points. In the case of the above and the depth refinement, the four points may be referred to uniformly. This case is shown in Example 4-1A.
(サブサブブロックの導出処理:実施例4−1A) 実施例4−1Aは、実施例4−1と同様、VSPの場合にはサブサブブロックの上側のみを参照し、デプスリファインメントの場合にサブサブブロックの上側と下側を参照するが、代表デプスの導出処理をVSPとデプスリファインメントの場合で共通化する。具体的には、デプスDV導出部351は、代表デプス位置を以下のように導出できる。
(Sub-subblock derivation process: Example 4-1A) In the same manner as Example 4-1, Example 4-1A refers only to the upper side of the sub-subblock in the case of VSP, and sub-subblock in the case of depth refinement. The reference depth derivation process is shared between the VSP and the depth refinement. Specifically, the depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = splitFlag ? yD0:Clip3(0,pic_height_in_luma_samples−1, yTL +
ySubB + nSubSubBlkH)
実施例4−1Aでは、splitFlagが1の場合(ここではVSPの場合)には、サブサブブロックの左下位置と右下位置が、左上位置と右上位置と一致するように設定する(垂直方向位置yD0とyD1に同じ値を設定する)。splitFlagが0の場合(ここではデプスリファインメントの場合)には、サブサブブロックの左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubBlkH(nSubSubBlkH)を加えた値を用いる。これにより、実施例4−1Aも実施例4−1と同様の効果が得られる。すなわち、図21を用いて説明したように、VSPの場合には4の倍数のラインのみにデプスアクセスする。また、図24を用いて説明したように、レプリリファインの場合には4の倍数のラインのみにデプスアクセスする。
。また、実施例4−1Aでは、代表デプスを得る処理がVSPの場合と、デプスリファインの場合で共通化される効果を奏する。デプスリファインメントの場合、デプス参照ブロック(サブサブブロック)の左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubBlkH(nSubSubBlkH)を加えた値を用いる(実施例3−1と同様)。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = splitFlag? yD0: Clip3 (0, pic_height_in_luma_samples−1, y TL +
ySubB + nSubSubBlkH)
In Example 4-1A, when splitFlag is 1 (here, in the case of VSP), the lower left position and the lower right position of the sub-subblock are set to coincide with the upper left position and the upper right position (vertical position yD0). And yD1 are set to the same value). When splitFlag is 0 (here, in the case of depth refinement), the sub-sub-block height nSubBlkH (sub-block height is set to the upper-left and upper-right vertical positions of the sub-sub block when the vertical position of the lower left and lower right of the sub-sub block is obtained. nSubSubBlkH) is used. Thereby, Example 4-1A also has the same effect as Example 4-1. That is, as described with reference to FIG. 21, in the case of VSP, only depth lines of multiples of 4 are accessed. In addition, as described with reference to FIG. 24, in the case of the re-refining, the depth access is made only to the multiple of 4 lines.
. Further, in Example 4-1A, there is an effect that is shared between the case where the processing for obtaining the representative depth is VSP and the case of depth refinement. For depth refinement, the value obtained by adding the height nSubBlkH (nSubSubBlkH) of the sub-sub block to the vertical position of the upper left and upper right of the sub-sub block when determining the vertical position of the lower left and lower right of the depth reference block (sub sub block) (Similar to Example 3-1).
図24に示すように、デプスリファインの場合、ブロックの左上座標の垂直成分は8の倍数であれば、ブロックの高さ(CUの高さ)は8の倍数であるから、サブブロックの上側の位置および下側の位置はともに8の倍数となる。 As shown in FIG. 24, in the depth refinement, if the vertical component of the upper left coordinate of the block is a multiple of 8, the height of the block (the height of the CU) is a multiple of 8, so Both the position and the lower position are multiples of 8.
(サブサブブロックの導出処理:実施例4−1B) デプスDV導出部351は、サブサブブロック座標(代表デプス位置)を以下のように導出できる。
(Sub-subblock Derivation Processing: Example 4-1B) The depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = nSubSubBlkH == 4 ? yD0, Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB + nSubSubBlkH)
実施例4−1Bでは、デプス参照ブロックの高さが4の場合(すなわち、VSPの場合で8×4のデプス参照ブロックの場合)には、サブサブブロックの左下位置と右下位置が、左上位置と右上位置と一致するように設定する(上側の垂直方向位置yD0と下側の垂直方向位置yD1に同じ値を設定する)。それ以外の場合(VSPで4×8のデプス参照ブロックの場合もしくはデプスリファインの場合)上側垂直方向位置yD0にデプス参照ブロック(ここでは、サブサブブロック)の高さnSubBlkH(nSubSubBlkH)を加えることによりサブサブブロックの垂直方向位置の下側の垂直方向位置yD1を導出する。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = nSubSubBlkH == 4? yD0, Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB + nSubSubBlkH)
In Example 4-1B, when the height of the depth reference block is 4 (that is, in the case of VSP, in the case of an 8 × 4 depth reference block), the lower left position and the lower right position of the sub-sub block are the upper left position. Are set to coincide with the upper right position (the same value is set for the upper vertical position yD0 and the lower vertical position yD1). In other cases (in the case of a 4 × 8 depth reference block or depth refinement in the VSP), the sub-sub-sub block is obtained by adding the height nSubBlkH (nSubSubBlkH) of the depth reference block (here, sub-sub block) to the upper vertical position yD0. A vertical position yD1 below the vertical position of the block is derived.
図29に実施例4−2のVSPの例を示す。実施例4−2では、デプスリファインの場合には、デプスアクセスする際の垂直方向位置が8の倍数のラインに限定され、VSPの場合には、デプスアクセスする際の垂直方向位置が4の倍数のラインに限定されることにより、デプスアクセスが容易になる。なお、実施例4−1、実施例4−1A、実施例4−1BのVSPの場合において、デプス参照ブロックの左上座標の垂直成分yD0をさらにラウンドを用いて、以下の式で導出しても良い(図27)。 FIG. 29 shows an example of the VSP of the embodiment 4-2. In the embodiment 4-2, in the case of depth refinement, the vertical position at the time of depth access is limited to a line that is a multiple of 8. In the case of VSP, the vertical direction position at the time of depth access is a multiple of 4. By limiting to this line, depth access becomes easy. Note that, in the case of the VSPs of Example 4-1, Example 4-1A, and Example 4-1B, the vertical component yD0 of the upper left coordinate of the depth reference block may be derived by the following equation using a round. Good (FIG. 27).
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB + 4) >> 3) << 3
ラウンドを用いる場合については、さらに実施例4−2として再度、説明する。
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB + 4) >> 3) << 3
The case of using a round will be described again as Example 4-2.
(サブサブブロックの導出処理:実施例4−2)
実施例4−2でも、実施例4−1と同様、サブサブブロックの導出処理として、VSPの場合(splitFlag=1)と、デプスリファインメントの場合(splitFlag=0)の場合で、異なる処理を用いる。実施例4−2では、実施例3−2と同様、ラウンドを用いて、位置を4の倍数(8の倍数)に設定する。
(Sub-subblock derivation process: Example 4-2)
Also in the embodiment 4-2, as in the embodiment 4-1, different processing is used for sub-subblock derivation processing in the case of VSP (splitFlag = 1) and in the case of depth refinement (splitFlag = 0). . In Example 4-2, as in Example 3-2, the position is set to a multiple of 4 (a multiple of 8) using a round.
デプスDV導出部351は、VSPの場合に、代表デプス値maxDepの導出に用いる代表デプス位置を以下のように導出する。VSPでは、代表デプス位置は、2点(xD0, yD0)、(xD1, yD0)である。
In the case of VSP, the depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + round0)>>3)<<3 )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
ここで、round0は、右に3ビット、左に3ビットシフトする処理においてラウンド方向を制御するための定数(ここではround0=4などとする)。ラウンド方向を制御する定数には4の代わりに、4から7の値を用いても良い。デプスDV導出部351は、VSPの場合に、以下の式により代表デプス値maxDepを導出する。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + round0) >> 3) << 3)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
Here, round0 is a constant for controlling the round direction in the process of shifting 3 bits to the right and 3 bits to the left (here, round0 = 4 or the like). Instead of 4, a value from 4 to 7 may be used as a constant for controlling the round direction. In the case of VSP, the depth
maxDep = Max( refDepPels[ xD0 ][ yD0 ], refDepPels[ xD0 ][ yD1] )
図27に実施例4−2のVSPの例を示す(round0を4から7に設定した場合)。
maxDep = Max (refDepPels [xD0] [yD0], refDepPels [xD0] [yD1])
FIG. 27 shows an example of the VSP of the embodiment 4-2 (when round0 is set from 4 to 7).
また、実施例4−2では、デプスDV導出部351は、ブロック分割しない場合(デプスリファインの場合)の代表デプス位置は、以下のように導出する。
In the embodiment 4-2, the depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_height_in_luma_samples −1, yTL + ySubB + nSubSubBlkH)
デプスリファインでは、代表デプス位置は、4点(xD0, yD0)、(xD1, yD0)、(xD0, yD1)、(xD1, yD1)であり、デプスDV導出部351は、既に説明したように、4点のデプス値から代表デプス値maxDepを導出する。実施例4−2では、ブロック分割する場合(VSPの場合)にはサブサブブロックの上側のみを参照し、ブロック分割しない場合(デプスリファインの場合)にサブサブブロックの上側と下側を参照する。また、上側の座標も8の倍数にラウンドされるため、8の倍数のラインのみにデプスアクセスする。実施例4−2では、デプスリファインメントの場合、デプス参照ブロック(サブサブブロック)の左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubSubBlkHを加えた値を用いる。サブブロックサイズが8×8の場合、8の倍数のラインのみにデプスアクセスする。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_height_in_luma_samples −1, y TL + ySubB + nSubSubBlkH)
In the depth refinement, the representative depth positions are four points (xD0, yD0), (xD1, yD0), (xD0, yD1), (xD1, yD1), and the depth
(ラウンドを方向を制御する定数について)
上記の説明では、実施例4−2において、ラウンド方向を制御する定数round0として4から7の値を用いる場合には、サブサブブロックの左上座標yTL + ySubBが8の倍数の場合には、デプスアクセスする場合の垂直成分yD0としてyTL + ySubBが、サブサブブロックの左上座標yTL + ySubBが8の倍数ではない場合(例えば8の倍数+4)の場合にも垂直成分yD0としてyTL + ySubB+4が、設定され、どちらの場合も垂直成分yD0は8の倍数の座標となる。
(About constants that control the direction of the round)
In the above description, in Example 4-2, when a value of 4 to 7 is used as the constant round0 for controlling the round direction, the depth is calculated when the upper left coordinate y TL + ySubB of the sub sub block is a multiple of 8. In the case where y TL + ySubB is a vertical component yD0 for access and the upper left coordinate y TL + ySubB of the sub-sub block is not a multiple of 8 (for example, a multiple of 8 + 4), y TL + ySubB + 4 is also used as the vertical component yD0. In both cases, the vertical component yD0 is a coordinate of a multiple of 8.
図30は、ラウンドとラウンド方向を制御する変数の効果を示す。図30(a)はラウンドがない場合である。クリップを省略すると以下の式で表現できる。 FIG. 30 shows the effect of variables controlling the round and round direction. FIG. 30A shows a case where there is no round. If the clip is omitted, it can be expressed by the following formula.
yD0 = yTL + ySubB
この場合、サブサブブロックの左上座標の垂直成分yTLに応じてアクセスするラインが変化するため、デプス由来の変位ベクトルを導出する効果の意味では、好ましい。但し、ラウンドがないため、サブサブブロックの座標が8の倍数とならない可能性がある。図30(b)は、既に説明したラウンドがある場合である。クリップを省略すると以下の式により表現できる。
yD0 = y TL + ySubB
In this case, since the line to be accessed in response to the vertical component y TL of the upper left coordinates of the sub-sub-block is changed, in the sense of the effect deriving a displacement vector from depth, preferred. However, since there is no round, the coordinates of the sub-subblock may not be a multiple of 8. FIG. 30B shows the case where there is a round already described. If the clip is omitted, it can be expressed by the following equation.
yD0 = (yTL + ySubB+ 4)>>3)<<3
サブサブブロックの左上座標の垂直成分yTLに応じてアクセスするラインが変化するためデプス由来の変位ベクトルを導出する効果の意味で好ましく、さらに、デプスアクセスは8の倍数に制限されているためデプスアクセスも容易である。よって、yD0を、サブサブブロック左上座標の垂直成分yTL と、サブサブブロックのサブブロック左上座標からの相対位置ySubBに、定数4(より詳細には4から7のいずれか)を加算して、右に3ビットシフトし、左に3ビットシフトすることにより、サブサブブロックの参照位置yD0の垂直成分を導出する処理は、視差合成予測の効果を保持したまま、デプスアクセスを低減する効果を奏する。
yD0 = (y TL + ySubB + 4) >> 3) << 3
Preferably in terms of the effect deriving a displacement vector from depth for line access in accordance with the vertical component y TL of the upper left coordinates of the sub-sub-block is changed, further, depth accessible due to restriction to a multiple of the
図30(c)は、ラウンド方向を制御する定数round0が、0(詳細には0から3のいずれか)の場合であり、クリップを省略すると以下の式で表現できる。 FIG. 30C shows the case where the constant round0 for controlling the round direction is 0 (specifically, any one of 0 to 3). If the clip is omitted, it can be expressed by the following equation.
yD0 = (yTL + ySubB)>>3)<<3、
サブサブブロックの左上座標の垂直成分yTLに応じてアクセスするラインが変化しない。具体的には、サブサブブロックの左上座標yTL + ySubBが8の倍数の場合も8の倍数+4の場合も同じ点になる。この場合、サブサブブロックの左上座標の違いが、代表デプス位置の違いとして反映されないため、デプス由来の変位ベクトルを導出する効果の意味では、好ましくなく、図30(c)に示すround0=4(または4から7)のラウンドの方が効果の意味では適当である。なお、ラウンド方向を制御する定数round0が0から3のいずれかの場合においても、デプスアクセスを8の倍数とすることでデプスアクセスを容易にする効果はある。
yD0 = (y TL + ySubB) >> 3) << 3,
Line to be accessed is not changed depending on the vertical component y TL of the upper left coordinates of the sub-sub-blocks. Specifically, the upper left coordinates y TL + ySubB of the sub-sub block are the same when the multiple of 8 and the multiple of 8 + 4. In this case, the difference in the upper left coordinates of the sub-sub-blocks is not reflected as the difference in the representative depth position, which is not preferable in terms of the effect of deriving the displacement vector derived from the depth, and round0 = 4 (or shown in FIG. 30C).
(実施例4−2の別の構成)
実施例4−2の別の構成として、デプスDV導出部351は、デプスにアクセスを行う全ての場合において(VSPの場合にもデプスリファインメントの場合)にも、8の倍数のラインのみにデプスアクセスする。
(Another configuration of Example 4-2)
As another configuration of the embodiment 4-2, the depth
なお、デプスリファインの場合にも下記のような、ラウンド処理を行っても良い。 In the case of depth refinement, the following round processing may be performed.
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB )
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + round0) >> 3) << 3 )
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = Clip3( 0, pic_height_in_luma_samples − 1, ((yTL + ySubB + nSubSubBlkH − 1+ round1) >> 3) << 3 )
ここで、round0は、右に3ビット、左に3ビットシフトする処理においてラウンド方向を制御するための定数(ここではround0=1..8などとする)。また、図30(b)で説明したようにround0=4としても良い。上記のように、ラウンド処理を行う場合、デプスリファインの場合にも左上座標yTLが8の倍数でない場合でも8の倍数のみに制限される。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + round0) >> 3) << 3)
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = Clip3 (0, pic_height_in_luma_samples − 1, ((y TL + ySubB + nSubSubBlkH − 1+ round1) >> 3) << 3)
Here, round0 is a constant for controlling the round direction in the process of shifting 3 bits to the right and 3 bits to the left (here, round0 = 1..8, etc.). Further, as described in FIG. 30B, round0 = 4 may be set. As described above, when round processing is performed, even in the case of depth refinement, even when the upper left coordinate yTL is not a multiple of 8, it is limited to a multiple of 8.
(サブサブブロックの導出処理:実施例4−2A)
実施例4−2Aも、ブロック分割する場合(VSPの場合)にはサブサブブロックの上側のみを参照し、ブロック分割しない場合(デプスリファインメントの場合)にサブサブブロックの上側と下側を参照するが、代表デプスの導出処理をVSPとデプスリファインメントの場合で共通化する。具体的には、デプスDV導出部351は、代表デプス位置を以下のように導出できる。
(Sub-subblock derivation process: Example 4-2A)
In the example 4-2A, when block division is performed (in the case of VSP), only the upper side of the sub-sub block is referred to, and when block division is not performed (in the case of depth refinement), the upper and lower sides of the sub-sub block are referred to. The representative depth derivation process is shared between the VSP and the depth refinement. Specifically, the depth
xD0 = Clip3( 0, pic_width_in_luma_samples − 1, xTL + xSubB)
yD0 = Clip3( 0, pic_height_in_luma_samples − 1, yTL + ySubB + 4) >> 3) << 3
xD1 = Clip3( 0, pic_width_in_luma_samples −1, xTL + xSubB + nSubSubBlkW −1)
yD1 = splitFlag ? yD0 : Clip3( 0, pic_width_in_luma_samples −1, yTL + ySubB + nSubSubBlkH)
実施例4−2Aでは、splitFlagが1の場合(ここではVSPの場合)には、サブサブブロックの左下位置と右下位置が、左上位置と右上位置と一致するように設定する(垂直方向位置yD0とyD1に同じ値を設定する)。splitFlagが0の場合(ここではデプスリファインメントの場合)には、サブサブブロックの左下および右下の垂直方向位置を求める際に、サブサブブロックの左上および右上の垂直位置にサブサブブロックの高さnSubBlkH(nSubSubBlkH)を加えた値を用いる。これにより、デプスアクセスについては、実施例4−2と同様の効果が得られる。すなわち、VSPの場合もデプスリファインの場合も8の倍数のラインのみにデプスアクセスする。また、実施例4−2Aでは、代表デプスを得る処理がVSPの場合と、デプスリファインの場合で共通化される効果を奏する。
xD0 = Clip3 (0, pic_width_in_luma_samples − 1, x TL + xSubB)
yD0 = Clip3 (0, pic_height_in_luma_samples − 1, y TL + ySubB + 4) >> 3) << 3
xD1 = Clip3 (0, pic_width_in_luma_samples −1, x TL + xSubB + nSubSubBlkW −1)
yD1 = splitFlag? yD0: Clip3 (0, pic_width_in_luma_samples −1, y TL + ySubB + nSubSubBlkH)
In Example 4-2A, when splitFlag is 1 (here, in the case of VSP), the lower left position and the lower right position of the sub-sub-block are set to coincide with the upper left position and the upper right position (vertical position yD0). And yD1 are set to the same value). When splitFlag is 0 (here, in the case of depth refinement), the sub-sub-block height nSubBlkH (sub-block height is set to the upper-left and upper-right vertical positions of the sub-sub block when the vertical position of the lower left and lower right of the sub-sub block is obtained. nSubSubBlkH) is used. As a result, the same effects as those of the embodiment 4-2 can be obtained for the depth access. In other words, in the case of VSP and depth refinement, only depth multiples of 8 are accessed. Further, in Example 4-2A, there is an effect that is shared between the case where the processing for obtaining the representative depth is VSP and the case of depth refinement.
(代表デプス値を用いた変位ベクトル導出) 図18は、デプスを用いて、デプスリファイン後の変位ベクトル(DoNBDV)及びVSPに用いる変位ベクトルを求める方法を示している。図18に示すように、DoNBDVの場合は、
DoNBDV[0]=DepthToDisparityB[refViewIds][depth]
DoNBDV[1]=NBDV[1]
で求め、VSPの場合は、
DV[0]=DepthToDisparityB[refViewIdx][depth]
DV[1]=0
で求める。ここでdepthは代表デプスの値である。VSPでは、図19に示すように、デプスDV導出部351は、変位ベクトル(NBDV)の水平成分をデプス由来のベクトルとして求め、垂直成分を0に設定することにより、デプス由来の変位ベクトル(DoNBDV)を求めている。なお、本実施例1−1、1−2における上段のアドレスは以下の表1の通りである。ここで、HTM8とは、H.265 TM(Test Model)8のことである。
(Displacement Vector Derivation Using Representative Depth Value) FIG. 18 shows a method for obtaining a depth refined displacement vector (DoNBDV) and a displacement vector used for VSP using depth. As shown in FIG. 18, in the case of DoNBDV,
DoNBDV [0] = DepthToDisparityB [refViewIds] [depth]
DoNBDV [1] = NBDV [1]
In the case of VSP,
DV [0] = DepthToDisparityB [refViewIdx] [depth]
DV [1] = 0
Ask for. Here, depth is a representative depth value. In the VSP, as shown in FIG. 19, the depth
なお、実施例2−1、2−2における上段及び下段のアドレスは以下の表2の通りである。ここで、HTM8とは、HEVCをベースとする3次元符号化標準のテストモデルTM(Test Model)8のことである。 The addresses of the upper and lower stages in Examples 2-1 and 2-2 are as shown in Table 2 below. Here, the HTM8 is a test model TM (Test Model) 8 of a three-dimensional encoding standard based on HEVC.
(インター予測画像生成部309) 図11は、本実施形態に係るインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き変位補償部3091、残差予測部3092、照度補償部3093、重み予測部3094を含んで構成される。
(Inter prediction image generation part 309) FIG. 11: is schematic which shows the structure of the inter prediction
(動き変位補償) 動き変位補償部3091は、インター予測パラメータ復号部303から入力された、予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLX、VSPフラグ、変位ベクトルに基づいて、動き変位補償画像を生成する。VSPフラグが0の場合には、動き変位補償部3091は、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピクチャの対象ブロックの位置を起点として、ベクトルmvLXだけずれた位置にあるブロックを読み出し補間することによって動き変位補償画像を生成する。ここで、ベクトルmvLXが整数ベクトルでない場合には、動き補償フィルタ(もしくは変位補償フィルタ)と呼ばれる小数位置の画素を生成するためのフィルタを施して、動き変位補償画像を生成する。一般に、ベクトルmvLXが動きベクトルの場合、上記処理を動き補償と呼び、変位ベクトルの場合は変位補償と呼ぶ。ここでは総称して動き変位補償と表現する。以下、L0予測の動き変位補償画像をpredSamplesL0、L1予測の動き変位補償画像をpredSamplesL1と呼ぶ。両者を区別しない場合predSamplesLXと呼ぶ。以下、動き変位補償部3091で得られた動き変位補償画像predSamplesLXに、さらに残差予測および照度補償が行われる例を説明するが、これらの出力画像もまた、動き変位補償画像predSamplesLXと呼ぶ。なお、以下の残差予測および照度補償において、入力画像と出力画像を区別する場合には、入力画像をpredSamplesLX、出力画像をpredSamplesLX´と表現する。VSPフラグが1の場合には、動き変位補償部3091は、VSP部3094において、動き変位補償画像を生成する。
(Motion displacement compensation) The motion
(視差合成予測) VSP部3094による視差合成予測(VSP)プロセスを以下説明する。視差合成予測(VSP)では、対象ブロック(PU)を、サブブロック(サブサブブロック)に分割し、サブサブブロック単位のデプス由来変位ベクトルを用いて、動き変位補償を行う。サブサブブロックへの分割およびサブサブブロックの変位ベクトルは、デプスDV導出部351により導出される。デプスDV導出部351には、デプスベースDVを導出する場合に用いるブロックの左上座標(xTL、yTL)と幅nPSW、高さnPSH、変位ベクトルmvDisp[]として、各々、復号対象ブロック(PU)を含む符号化ユニットCUの左上座標(xCb、yCb)、PUの幅nPbW、PUの高さnPbH、変位ベクトルNBDVを入力する。また、ブロックをさらに分割するか否かを示すsplitFlagには1を入力する。デプスDV導出部351により、サブサブブロック単位の視差ベクトルはdisparitySamples[][]として、導出される。VSP部3094は、デプスDV導出部351で導出されたこのサブサブブロック単位で、参照ピクチャメモリ306から、サブサブブロック変位ベクトル分だけずれた位置のブロックを読み出し補間することによって動き変位補償画像を生成する。
(Parallax synthesis prediction) A parallax synthesis prediction (VSP) process by the
(視差合成予測(VSP)プロセス) 対象ピクチャの左上の輝度に対応する、対象予測ブロックの左上の輝度のピクチャ内位置(xP,yP)は、下記よって導出できる。 (Parallax Synthesis Prediction (VSP) Process) The in-picture position (xP, yP) of the upper left luminance of the target prediction block corresponding to the upper left luminance of the target picture can be derived as follows.
xP = xC + xB
yP = yC + yB
輝度の二次元アレイrefPicL、及び色度の2つの二次元アレイrefPicCbとrefPicCrから成る参照ピクチャは、インプットとしてrefIdxLXを用いて導出される。
xP = xC + xB
yP = yC + yB
A reference picture consisting of a two-dimensional array of luminance refPic L and two two-dimensional arrays of chromaticity, refPic Cb and refPic Cr, is derived using refIdxLX as an input.
変数refViewIdxは、ViewIdx(RefPicListX[refIdxLX])および変数depthViewIdxと等しく設定され、変数depthViewIdxは、RefViewIdx[xC+xB][yC+yB]と等しく設定される。変数mvDispは、mvDisp[xC+xB][yC+yB]と等しく設定される。なお、refIdxLXはデプスピクチャを導出するために用いられてもよい。また、テクスチャピクチャの参照インデックスは、視差合成予測マージ候補の導出プロセスにおいて特定されるプロセスと同様に導出されてもよい。 The variable refViewIdx is set equal to ViewIdx (RefPicListX [refIdxLX]) and the variable depthViewIdx, and the variable depthViewIdx is set equal to RefViewIdx [xC + xB] [yC + yB]. The variable mvDisp is set equal to mvDisp [xC + xB] [yC + yB]. Note that refIdxLX may be used to derive a depth picture. Further, the reference index of the texture picture may be derived in the same manner as the process specified in the process for deriving the disparity synthesis prediction merge candidate.
上述したように、視差アレイの導出プロセスは、インプットとして、位置(xP,yP)の輝度、視差ベクトルmvDisp、変数refViewIdx、変数depthViewIdx、変数nPSWおよびnPSH、4と等しい変数nSubBlkW、および、4と等しい変数nSubBlkHを用いる。そして、アウトプットはサイズ(nPSW)x(nPSH)のアレイdisparitySamplesである。なお、VSPもまた上述した視差アレイの導出プロセスを用いる。したがって、上記の導出プロセスが変更されると、デプスリファインメント処理およびVSPデプスアクセス処理がそれに合わせて変更される。 As described above, the process of deriving the parallax array has as input the luminance of the position (xP, yP), the parallax vector mvDisp, the variable refViewIdx, the variable depthViewIdx, the variables nPSW and nPSH, and the variable nSubBlkW equal to 4, and 4. The variable nSubBlkH is used. The output is an array disparitySamples of size (nPSW) × (nPSH). The VSP also uses the above-described parallax array derivation process. Therefore, when the above derivation process is changed, the depth refinement process and the VSP depth access process are changed accordingly.
ピクチャ内輝度位置を(xIntL,yIntL)、4分割された単位における(1/4pel単位)のオフセットを(xFracL,yFracL)とする。 The luminance position in the picture is (xInt L , yInt L ), and the offset of (1/4 pel unit) in the unit divided into four is (xFrac L , yFrac L ).
動き変位補償画像predSampleL内の輝度位置(xL=0..nPbW−1,yL=0..nPbH−1)の各々に対して、対応する動き変位補償画像predSamplesL[xL][yL]は以下のように導出される。 For each of the luminance position of the motion displacement compensation image predSample in L (x L = 0..nPbW-1 , y L = 0..nPbH-1), the corresponding motion displacement compensation image predSamples L [x L] [ y L ] is derived as follows.
変数xIntL、yIntL、xFracL、及びyFracLは、以下のようにして求められる。 The variables xIntL, yIntL, xFracL, and yFracL are obtained as follows.
xIntL = xP + xL+ disparitySamples[ xL ][ yL ]
yIntL = yP + yL
xFracL = disparitySamples[ xL ][ yL ] & 3
yFracL = 0
VSPにおいて、垂直コンポーネントまたは視差ベクトルは、常に0として仮定される。したがって、yIntは、disparitySamplesを使用せず、yFracは常に0である。動き変位補償画像predSamplesL[xL][yL]は、(xIntL,yIntL)、(xFracL,yFracL)、およびrefPicLにより動き変位補償により導出する。ピクチャ内色度位置を(xIntC,yIntC)、8分割単位(1/8 pel単位)におけるオフセットを(xFracC,yFracC)とする。
xIntL = xP + xL + disparitySamples [xL] [yL]
yIntL = yP + yL
xFracL = disparitySamples [xL] [yL] & 3
yFracL = 0
In VSP, the vertical component or disparity vector is always assumed to be zero. Therefore, yInt does not use disparitySamples and yFrac is always 0. The motion displacement compensation image predSamples L [x L ] [y L ] is derived by motion displacement compensation using (xInt L , yInt L ), (xFrac L , yFrac L ), and refPic L. The chromaticity position in the picture is (xInt C , yInt C ), and the offset in 8 division units (1/8 pel units) is (xFrac C , yFrac C ).
動き変位補償画像predSampleCb及びpredSampleCr内の色度位置(xC=0..nPbW/2−1,yC=0..nPbH/2−1)の各々に対して、対応する動き変位補償画像predSamplesLXCb[xC][yC]及びpredSamplesCr[xC][yC]は以下のように導出される。 Motion displacement compensation corresponding to each of the chromaticity positions (x C = 0..nPbW / 2−1, y C = 0..nPbH / 2−1) in the motion displacement compensation images predSample Cb and predSample Cr The images predSamplesLX Cb [x C ] [y C ] and predSamples Cr [x C ] [y C ] are derived as follows.
変数xIntC, yIntC, xFracC, and yFracCは、次のように導出される。 The variables xInt C , yInt C , xFrac C , and yFrac C are derived as follows.
xIntC = ( xP / 2 ) + xC + disparitySamples[ xC << 1 ][ yC << 1 ]
yIntC = ( yP / 2 ) + yC
xFracC = disparitySamples[ xC << 1][ yC << 1 ] & 7
yFracC = 0
動き変位補償画像predSamplesCb[xC][yC]は、 (xIntC,yIntC )、(xFracC,yFracC)、及びrefPicCbを用いて動き変位補償により導出する。動き変位補償画像predSamplesCr[xC][yC]は、(xIntC,yIntC )、(xFracC,yFracC)、及びrefPicCrを用いて動き変位補償により導出する。
xIntC = (xP / 2) + xC + disparitySamples [xC << 1] [yC << 1]
yIntC = (yP / 2) + yC
xFracC = disparitySamples [xC << 1] [yC << 1] & 7
yFracC = 0
The motion displacement compensation image predSamples Cb [x C ] [y C ] is derived by motion displacement compensation using (xInt C , yInt C ), (xFrac C , yFrac C ), and refPic Cb . The motion displacement compensation image predSamples Cr [x C ] [y C ] is derived by motion displacement compensation using (xInt C , yInt C ), (xFrac C , yFrac C ), and refPic Cr .
(残差予測) 残差予測部3092は、残差予測実施フラグresPredFlagが1の場合に、入力された動き変位補償画像predSamplesLXに対して、残差予測を行う。残差予測実施フラグresPredFlagが0の場合には、入力された動き変位補償画像predSamplesLXをそのまま出力する。refResSamples残差予測は、予測画像生成の対象とする対象レイヤ(第2のレイヤ画像)とは異なる参照レイヤ(第1のレイヤ画像)の残差を、対象レイヤの予測した画像である動き変位補償画像predSamplesLXに加えることにより行われる。すなわち、参照レイヤと同様の残差が対象レイヤにも生じると仮定して、既に導出された参照レイヤの残差を対象レイヤの残差の推定値として用いる。ベースレイヤ(ベースビュー)では同じレイヤの画像のみが参照画像となる。従って、参照レイヤ(第1のレイヤ画像)がベースレイヤ(ベースビュー)である場合には、参照レイヤの予測画像は動き補償による予測画像であることから、対象レイヤ(第2のレイヤ画像)による予測においても、動き補償による予測画像である場合に、残差予測は有効である。すなわち、残差予測は対象ブロックが動き補償の場合に有効であるという特性を持つ。図12は残差予測部3092の構成を示すブロック図である。残差予測部3092は、残差予測実施フラグ導出部30921と、参照画像取得部30922と、残差合成部30923から構成される。
(Residual Prediction) When the residual prediction execution flag resPredFlag is 1, the
残差予測実施フラグ導出部30921は、残差予測フラグiv_res_pred_weight_idxが0ではなく、かつ、対象ブロックが動き補償である場合に、残差予測実施フラグresPredFlagに残差予測を実行することを示す1を設定する。一方、残差予測フラグiv_res_pred_weight_idxが0である、又は、対象ブロックが動き補償でない場合(視差補償である場合)に、残差予測実施フラグresPredFlagに0を設定する。
The residual prediction execution
参照画像取得部30922は、残差予測実施フラグresPredFlagが1の場合には、インター予測パラメータ復号部303から入力された動きベクトルmvLXと残差予測変位ベクトルmvDisp、及び参照ピクチャメモリ306に格納された対応ブロックcurrIvSamplesLXと対応ブロックの参照ブロックrefIvSamplesLXを読み出す。
When the residual prediction execution flag resPredFlag is 1, the reference
図13は、対応ブロックcurrIvSamplesLXを説明するための図である。図13に示すように、対象レイヤ上の対象ブロックに対応する対応ブロックは、参照レイヤ上の画像の対象ブロックの位置を起点として、参照レイヤと対象レイヤの位置関係を示すベクトルである変位ベクトルmvDispだけずれた位置になるブロックに位置する。具体的には、参照画像取得部30922は、対象ブロックの画素の座標(x,y)を、対象ブロックの変位ベクトルmvDispだけずらした位置の画素を導出する。変位ベクトルmvDispが1/4ペルの小数精度であることを考慮し、残差生成部30922は、対象ブロックの画素の座標が(xP、yP)である場合に対応する整数精度の画素R0のX座標xIntとY座標yInt、及び変位ベクトルmvDispのX成分の小数部分xFracとY成分の小数部分yFracを、
xInt = xPb + ( mvLX[ 0 ] >> 2 )
yInt = yPb + ( mvLX[ 1 ] >> 2 )
xFrac = mvLX[ 0 ] & 3
yFrac = mvLX[ 1 ] & 3
の式により導出する。ここで、X & 3は、Xの下位2ビットのみを取り出す数式である。
FIG. 13 is a diagram for explaining the corresponding block currIvSamplesLX. As shown in FIG. 13, the corresponding block corresponding to the target block on the target layer is a displacement vector mvDisp that is a vector indicating the positional relationship between the reference layer and the target layer, starting from the position of the target block of the image on the reference layer. It is located in a block that is displaced by a certain amount. Specifically, the reference
xInt = xPb + (mvLX [0] >> 2)
yInt = yPb + (mvLX [1] >> 2)
xFrac = mvLX [0] & 3
yFrac = mvLX [1] & 3
It is derived by the following formula. Here, X & 3 is a mathematical expression for extracting only the lower 2 bits of X.
次に、参照画像取得部30922は、変位ベクトルmvDispが1/4ペルの小数精度であることを考慮し、補間画素predPartLX[x][y]を生成する。まず、整数画素A(xA,yB)、B(xB,yB)、C(xC,yC)及びD(xD,yD)の座標を、
xA = Clip3( 0, picWidthInSamples −1, xInt )
xB = Clip3( 0, picWidthInSamples −1, xInt + 1 )
xC = Clip3( 0, picWidthInSamples −1, xInt )
xD = Clip3( 0, picWidthInSamples −1, xInt + 1 )
yA = Clip3( 0, picHeightInSamples −1, yInt )
yB = Clip3( 0, picHeightInSamples −1, yInt )
yC = Clip3( 0, picHeightInSamples −1, yInt + 1 )
yD = Clip3( 0, picHeightInSamples −1, yInt + 1 )
の式により導出する。ここで、整数画素Aは画素R0に対応した画素であり、整数画素B,C,Dはそれぞれ整数画素Aの右、下、右下に隣接する整数精度の画素であり、Clip3(x, y, z)は、zをx以上、y以下に制限(クリップ)する関数である。参照画像取得部30922は、各整数画素A、B、C、及びDに対応する参照画素refPicLX[ xA ][ yA ]、refPicLX[ xB ][ yB ]、refPicLX[ xC ][ yC ]、及びrefPicLX[ xD ][ yD ]を参照ピクチャメモリ306から読み出す。そして、参照画像取得部30922は、参照画素refPicLX[ xA ][ yA ]、refPicLX[ xB ][ yB ]、refPicLX[ xC ][ yC ]、refPicLX[ xD ][ yD ]と変位ベクトルmvDispのX成分の小数部分xFracとY成分の小数部分yFracを用いて、画素R0から変位ベクトルmvDispの小数部分だけずらした位置の画素である補間画素predPartLX[x][y]を導出する。具体的には、
predPartLX[ x ][ y ] = (refPicLX[ xA ][ yA ] * ( 8 − xFrac ) * ( 8 − yFrac ) + refPicLX[ xB ][ yB ] * ( 8 − yFrac ) * xFrac
+ refPicLX[ xC ][ yC ] * ( 8 − xFrac ) * yFrac
+ refPicLX[ xD ][ yD ] * xFrac * yFrac ) >> 6
の式により導出する。
Next, the reference
xA = Clip3 (0, picWidthInSamples −1, xInt)
xB = Clip3 (0, picWidthInSamples −1, xInt + 1)
xC = Clip3 (0, picWidthInSamples −1, xInt)
xD = Clip3 (0, picWidthInSamples −1, xInt + 1)
yA = Clip3 (0, picHeightInSamples −1, yInt)
yB = Clip3 (0, picHeightInSamples −1, yInt)
yC = Clip3 (0, picHeightInSamples −1, yInt + 1)
yD = Clip3 (0, picHeightInSamples −1, yInt + 1)
It is derived by the following formula. Here, the integer pixel A is a pixel corresponding to the pixel R0, and the integer pixels B, C, and D are integer precision pixels adjacent to the right, bottom, and bottom right of the integer pixel A, respectively, and Clip3 (x, y , z) is a function that restricts (clips) z to be not less than x and not more than y. The reference
predPartLX [x] [y] = (refPicLX [xA] [yA] * (8 − xFrac) * (8 − yFrac) + refPicLX [xB] [yB] * (8 − yFrac) * xFrac
+ refPicLX [xC] [yC] * (8 − xFrac) * yFrac
+ refPicLX [xD] [yD] * xFrac * yFrac) >> 6
It is derived by the following formula.
参照画像取得部30922は、上記の補間画素導出処理を、対象ブロック内の各画素に対して行い、補間画素の集合を補間ブロックpredPartLXとする。参照画像取得部30922は、導出した補間ブロックpredPartLXを、対応ブロックcurrIvSamplesLXとして、残差合成部30923に出力する。
The reference
図14は、参照ブロックrefIvSamplesLXを説明するための図である。図14に示すように、参照レイヤ上の対応ブロックに対応する参照ブロックは、参照レイヤ上の参照画像の対応ブロックの位置を起点として、対象ブロックの動きベクトルmvLXだけずれた位置になるブロックに位置する。参照画像取得部30922は、対応ブロックcurrIvSamplesLXを導出した処理と、変位ベクトルmvDispをベクトル(mvDisp[ 0 ] + mvLX [ 0 ]、mvDisp[ 1 ] + mvLX [ 1 ])に置き換えている点を除いて、同様の処理を行うことで、対応ブロックrefIvSamplesLXを導出する。参照画像取得部30922は、対応ブロックrefIvSamplesLXを残差合成部30923に出力する。
FIG. 14 is a diagram for explaining the reference block refIvSamplesLX. As shown in FIG. 14, the reference block corresponding to the corresponding block on the reference layer is located at the block that is shifted by the motion vector mvLX of the target block, starting from the position of the corresponding block of the reference image on the reference layer. To do. The reference
残差合成部30923は、残差予測実施フラグresPredFlagが1の場合には、動き変位補償画像predSamplesLX、対応ブロックcurrIvSamplesLX、参照ブロックrefIvSamplesLX及び残差予測フラグiv_res_pred_weight_idxから、補正動き変位補償画像predSamplesLX´を導出する。補正動き変位補償画像predSamplesLX´は、
predSamplesLX´ = predSamplesLX+
((currIvSamplesLX−refIvSamplesLX)>>(iv_res_pred_weight_idx − 1))
の式を用いて求める。残差合成部30923は、残差予測実施フラグresPredFlagが0の場合には、動き変位補償画像predSamplesLXをそのまま出力する。
When the residual prediction execution flag resPredFlag is 1, the
predSamplesLX´ = predSamplesLX +
((currIvSamplesLX−refIvSamplesLX) >> (iv_res_pred_weight_idx − 1))
It is calculated using the following formula. When the residual prediction execution flag resPredFlag is 0, the
(照度補償) 照度補償部3093は、照度補償フラグic_enable_flagが1の場合に、入力された動き変位補償画像predSamplesLXに対して、照度補償を行う。照度補償フラグic_enable_flagが0の場合には、入力された動き変位補償画像predSamplesLXをそのまま出力する。照度補償部3093に入力される動き変位補償画像predSamplesLXは、残差予測がオフの場合には、動き変位補償部3091の出力画像であり、残差予測がオンの場合には、残差予測部3092の出力画像である。
(Illuminance compensation) When the illuminance compensation flag ic_enable_flag is 1, the
(画像符号化装置の構成) 次に、本実施形態に係る画像符号化装置11の構成について説明する。図22は、本実施形態に係る画像符号化装置11の構成を示すブロック図である。画像符号化装置11は、予測画像生成部101、減算部102、DCT・量子化部103、エントロピー符号化部104、逆量子化・逆DCT部105、加算部106、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111、残差格納部313(残差記録部)を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。
(Configuration of Image Encoding Device) Next, the configuration of the
予測画像生成部101は、外部から入力されたレイヤ画像Tの視点毎の各ピクチャについて、そのピクチャを分割した領域であるブロック毎に予測ピクチャブロックPを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から参照ピクチャブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えば、動きベクトル又は変位ベクトルである。予測画像生成部101は、符号化対象ブロックを起点として予測された動きベクトル又は変位ベクトルが示す位置にあるブロックの参照ピクチャブロックを読み出す。予測画像生成部101は、読み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いて予測ピクチャブロックPを生成する。予測画像生成部101は、生成した予測ピクチャブロックPを減算部102に出力する。なお、予測画像生成部101は、既に説明した予測画像生成部308と同じ動作であるため予測ピクチャブロックPの生成の詳細は省略する。
The predicted
予測画像生成部101は、予測方式を選択するために、例えば、レイヤ画像に含まれるブロックの画素毎の信号値と予測ピクチャブロックPの対応する画素毎の信号値との差分に基づく誤差値を最小にする予測方式を選択する。予測方式を選択する方法は、これには限られない。符号化対象のピクチャがベースビューピクチャである場合には、複数の予測方式とは、イントラ予測、動き予測及びマージ予測である。動き予測とは、上述のインター予測のうち、表示時刻間の予測である。マージ予測とは、既に符号化されたブロックであって、符号化対象ブロックから予め定めた範囲内にあるブロックと同一の参照ピクチャブロック及び予測パラメータを用いる予測である。符号化対象のピクチャがノンベースビューピクチャである場合には、複数の予測方式とは、イントラ予測、動き予測、マージ予測、及び変位予測である。変位予測(視差予測)とは、上述のインター予測のうち、別レイヤ画像(別視点画像)間の予測である。さらに、動き予測、マージ予測、及び変位予測である。変位予測(視差予測)に対して、追加予測(残差予測および照度補償)を行う場合と行わない場合の予測がある。
In order to select a prediction method, the predicted
予測画像生成部101は、イントラ予測を選択した場合、予測ピクチャブロックPを生成する際に用いたイントラ予測モードを示す予測モードpredModeを予測パラメータ符号化部111に出力する。予測画像生成部101は、動き予測を選択した場合、予測ピクチャブロックPを生成する際に用いた動きベクトルmvLXを予測パラメータメモリ108に記憶し、インター予測パラメータ符号化部112に出力する。動きベクトルmvLXは、符号化対象ブロックの位置から予測ピクチャブロックPを生成する際の参照ピクチャブロックの位置までのベクトルを示す。動きベクトルmvLXを示す情報には、参照ピクチャを示す情報(例えば、参照ピクチャインデックスrefIdxLX、ピクチャ順序番号POC)を含み、予測パラメータを表すものであっても良い。また、予測画像生成部101は、インター予測モードを示す予測モードpredModeを予測パラメータ符号化部111に出力する。
When the intra prediction is selected, the predicted
予測画像生成部101は、変位予測を選択した場合、予測ピクチャブロックPを生成する際に用いた変位ベクトルを予測パラメータメモリ108に記憶し、インター予測パラメータ符号化部112に出力する。変位ベクトルdvLXは、符号化対象ブロックの位置から予測ピクチャブロックPを生成する際の参照ピクチャブロックの位置までのベクトルを示す。変位ベクトルdvLXを示す情報には、参照ピクチャを示す情報(例えば、参照ピクチャインデックスrefIdxLX、ビューIDview_id)を含み、予測パラメータを表すものであっても良い。また、予測画像生成部101は、インター予測モードを示す予測モードpredModeを予測パラメータ符号化部111に出力する。予測画像生成部101は、マージ予測を選択した場合、選択した参照ピクチャブロックを示すマージインデックスmerge_idxをインター予測パラメータ符号化部112に出力する。また、予測画像生成部101は、マージ予測モードを示す予測モードpredModeを予測パラメータ符号化部111に出力する。上記の、動き予測、変位予測、マージ予測において、予測画像生成部101は、残差予測実施フラグresPredFlagが残差予測を行うことを示す場合には、既に説明したように予測画像生成部101に含まれる残差予測部3092において残差予測を行う。
When the prediction
減算部102は、予測画像生成部101から入力された予測ピクチャブロックPの信号値を、外部から入力されたレイヤ画像Tの対応するブロックの信号値から画素毎に減算して、残差信号を生成する。減算部102は、生成した残差信号をDCT・量子化部103と符号化パラメータ決定部110に出力する。
The subtraction unit 102 subtracts the signal value of the prediction picture block P input from the prediction
DCT・量子化部103は、減算部102から入力された残差信号についてDCTを行い、DCT係数を算出する。DCT・量子化部103は、算出したDCT係数を量子化して量子化係数を求める。DCT・量子化部103は、求めた量子化係数をエントロピー符号化部104及び逆量子化・逆DCT部105に出力する。
The DCT /
エントロピー符号化部104には、DCT・量子化部103から量子化係数が入力され、符号化パラメータ決定部110から符号化パラメータが入力される。入力される符号化パラメータには、例えば、参照ピクチャインデックスrefIdxLX、ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、予測モードpredMode、及びマージインデックスmerge_idx等の符号がある。エントロピー符号化部104は、入力された量子化係数と符号化パラメータをエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
The
逆量子化・逆DCT部105は、DCT・量子化部103から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部105は、求めたDCT係数について逆DCTを行い、復号残差信号を算出する。逆量子化・逆DCT部105は、算出した復号残差信号を加算部106に出力する。
The inverse quantization /
加算部106は、予測画像生成部101から入力された予測ピクチャブロックPの信号値と逆量子化・逆DCT部105から入力された復号残差信号の信号値を画素毎に加算して、参照ピクチャブロックを生成する。加算部106は、生成した参照ピクチャブロックを参照ピクチャメモリ109に記憶する。
The
予測パラメータメモリ108は、予測パラメータ符号化部111が生成した予測パラメータを、符号化対象のピクチャ及びブロック毎に予め定めた位置に記憶する。参照ピクチャメモリ109は、加算部106が生成した参照ピクチャブロックを、符号化対象のピクチャ及びブロック毎に予め定めた位置に記憶する。
The
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述した予測パラメータやこの予測パラメータに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いて予測ピクチャブロックPを生成する。
The encoding
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すコスト値を算出する。コスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。
The encoding
予測パラメータ符号化部111は、予測画像生成部101から入力されたパラメータに基づいて予測ピクチャを生成する際に用いる予測パラメータを導出し、導出した予測パラメータを符号化して符号化パラメータのセットを生成する。予測パラメータ符号化部111は、生成した符号化パラメータのセットをエントロピー符号化部104に出力する。予測パラメータ符号化部111は、生成した符号化パラメータのセットのうち符号化パラメータ決定部110が選択したものに対応する予測パラメータを予測パラメータメモリ108に記憶する。予測パラメータ符号化部111は、予測画像生成部101から入力された予測モードpredModeがインター予測モードを示す場合、インター予測パラメータ符号化部112を動作させる。予測パラメータ符号化部111は、予測モードpredModeがイントラ予測モードを示す場合、イントラ予測パラメータ符号化部113を動作させる。
The prediction
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいてインター予測パラメータを導出する。インター予測パラメータ符号化部112は、インター予測パラメータを導出する構成として、インター予測パラメータ復号部303(図5等、参照)がインター予測パラメータを導出する構成と同一の構成を含む。インター予測パラメータ符号化部112の構成については、後述する。
The inter prediction
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力された予測モードpredModeが示すイントラ予測モードIntraPredModeをインター予測パラメータのセットとして定める。
The intra prediction
(インター予測パラメータ符号化部の構成) 次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パラメータ符号化部112は、インター予測パラメータ復号部303に対応する手段である。図23は、本実施形態に係るインター予測パラメータ符号化部112の構成を示す概略図である。インター予測パラメータ符号化部112は、インター予測パラメータ符号化制御部1031、マージ予測パラメータ導出部1121、AMVP予測パラメータ導出部1122、減算部1123、及び予測パラメータ統合部1126を含んで構成される。
(Configuration of Inter Prediction Parameter Encoding Unit) Next, the configuration of the inter prediction
マージ予測パラメータ導出部1121は、上述のマージ予測パラメータ導出部3036(図7参照)と同様な構成を有する。 The merge prediction parameter derivation unit 1121 has the same configuration as the merge prediction parameter derivation unit 3036 (see FIG. 7).
インター予測パラメータ符号化制御部1031は、インター予測に関連する符号(シンタックス要素の復号をエントロピー符号化部104に指示し、符号化データに含まれる符号(シンタックス要素)を例えば、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idcinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXを符号化する。
The inter prediction parameter encoding control unit 1031 instructs the
インター予測パラメータ符号化制御部1031は、追加予測フラグ符号化部10311、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313、及び図示しない、分割モード符号化部、マージフラグ符号化部、インター予測フラグ符号化部、参照ピクチャインデックス符号化部、ベクトル差分符号化部を含んで構成される。分割モード符号化部、マージフラグ符号化部、マージインデックス符号化部、インター予測フラグ符号化部、参照ピクチャインデックス符号化部、ベクトル候補インデックス符号化部10313、ベクトル差分符号化部は各々、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idcinter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXを符号化する。 The inter prediction parameter encoding control unit 1031 includes an additional prediction flag encoding unit 10311, a merge index encoding unit 10312, a vector candidate index encoding unit 10313, and a split mode encoding unit, a merge flag encoding unit, an inter not shown. A prediction flag encoding unit, a reference picture index encoding unit, and a vector difference encoding unit are configured. The division mode encoding unit, the merge flag encoding unit, the merge index encoding unit, the inter prediction flag encoding unit, the reference picture index encoding unit, the vector candidate index encoding unit 10313, and the vector difference encoding unit are respectively divided modes. Part_mode, merge flag merge_flag, merge index merge_idx, inter prediction flag inter_pred_idcinter_pred_idc, reference picture index refIdxLX, prediction vector index mvp_LX_idx, and difference vector mvdLX are encoded.
追加予測フラグ符号化部1031は、追加予測が行われるか否かを示すために、照度補償フラグic_enable_flag、残差予測フラグiv_res_pred_weight_flsgを符号化する。 The additional prediction flag encoding unit 1031 encodes the illumination compensation flag ic_enable_flag and the residual prediction flag iv_res_pred_weight_flsg to indicate whether additional prediction is performed.
マージ予測パラメータ導出部1121には、予測画像生成部101から入力された予測モードpredModeがマージ予測モードを示す場合、符号化パラメータ決定部110からマージインデックスmerge_idxが入力される。マージインデックスmerge_idxは、予測パラメータ統合部1126に出力される。マージ予測パラメータ導出部1121は、マージ候補のうちマージインデックスmerge_idxが示す参照ブロックの参照ピクチャインデックスrefIdxLX、ベクトルmvLXを予測パラメータメモリ108から読み出す。マージ候補とは、符号化対象となる符号化対象ブロックから予め定めた範囲にある参照ブロック(例えば、符号化対象ブロックの左下端、左上端、右上端に接する参照ブロックのうち)であって、符号化処理が完了した参照ブロックである。
The merge index merge_idx is input from the encoding
AMVP予測パラメータ導出部1122は、上述のAMVP予測パラメータ導出部3032(図8参照)と同様な構成を有する。AMVP予測パラメータ導出部1122には、予測画像生成部101から入力された予測モードpredModeがインター予測モードを示す場合、符号化パラメータ決定部110からベクトルmvLXが入力される。AMVP予測パラメータ導出部1122は、入力されたベクトルmvLXに基づいて予測ベクトルmvpLXを導出する。AMVP予測パラメータ導出部1122は、導出した予測ベクトルmvpLXを減算部1123に出力する。なお、参照ピクチャインデックスrefIdx及びベクトルインデックスmvp_LX_idxは、予測パラメータ統合部1126に出力される。
The AMVP prediction parameter derivation unit 1122 has the same configuration as the AMVP prediction parameter derivation unit 3032 (see FIG. 8). When the prediction mode predMode input from the predicted
減算部1123は、符号化パラメータ決定部110から入力されたベクトルmvLXからAMVP予測パラメータ導出部1122から入力された予測ベクトルmvpLXを減算して差分ベクトルmvdLXを生成する。差分ベクトルmvdLXは予測パラメータ統合部1126に出力する。
The
予測画像生成部101から入力された予測モードpredModeがマージ予測モードを示す場合には、予測パラメータ統合部1126は、符号化パラメータ決定部110から入力されたマージインデックスmerge_idxをエントロピー符号化部104に出力する。予測画像生成部101から入力された予測モードpredModeがインター予測モードを示す場合には、予測パラメータ統合部1126は、次の処理を行う。
When the prediction mode predMode input from the predicted
予測パラメータ統合部1126は、符号化パラメータ決定部110から入力された参照ピクチャインデックスrefIdxLX及びベクトルインデックスmvp_LX_idx、減算部1123から入力された差分ベクトルmvdLXを統合する。予測パラメータ統合部1126は、統合した符号をエントロピー符号化部104に出力する。
The prediction
(デプスDV導出部361) 図23に示すように、本実施形態に係る画像符号化装置11は、デプスDV導出部361を備えている。デプスDV導出部361は、図23に示すように、デプスDV変換テーブルと、マージ予測パラメータ導出部3036から得られた変位ベクトル(NBDV)と、参照ピクチャメモリ109に格納されたデプス画像を用いて、デプス由来の変位ベクトル(DoNBDV)を導出する。デプスDV導出部361におけるより具体的な処理は、デプスDV導出部351において説明した処理と同様であるので、ここでは説明を省略する。デプスDV変換テーブルは、カメラの位置を示すカメラパラメータを用いて導出し設定する。デプスDV変換テーブルのパラメータcp_scale、cp_off、cp_precisionは視点毎に符号化データ中のパラメータセットで符号化する。なお、上述した実施形態における画像符号化装置11、画像復号装置31の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、予測画像生成部101、DCT・量子化部103、エントロピー符号化部104、逆量子化・逆DCT部105、符号化パラメータ決定部110、予測パラメータ符号化部111、エントロピー復号部301、予測パラメータ復号部302、予測画像生成部308、逆量子化・逆DCT部311をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、画像符号化装置11−11h、画像復号装置31−31hのいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
(Depth DV Deriving Unit 361) As shown in FIG. 23, the
また、上述した実施形態における画像符号化装置11、画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。画像符号化装置11、画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
Moreover, you may implement | achieve part or all of the
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。 As described above, the embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to the above, and various design changes and the like can be made without departing from the scope of the present invention. It is possible to
〔まとめ〕 本発明の構成によれば、復号済みの他のピクチャのデプスを取りに行く処理、すなわちデプスアクセスの範囲が無制限に広がることを防止することができる。これにより、デプスアクセスの処理負荷を軽くすることができるとともに、処理に必要な符号量を減らすことができる。 [Summary] According to the configuration of the present invention, it is possible to prevent the processing of obtaining the depth of another decoded picture, that is, the range of depth access from being unlimitedly expanded. As a result, the processing load for depth access can be reduced, and the amount of code required for processing can be reduced.
また、予測対象ブロックの位置と垂直位置が同じ位置にある、復号済みの他のピクチャのデプスを用いるので、より処理負荷を軽くすることができる。 Further, since the depth of another decoded picture whose vertical position is the same as the position of the prediction target block is used, the processing load can be further reduced.
また、垂直位置が4の倍数となる位置にある、復号済みの他のピクチャのデプスを用いるので、より処理負荷を軽くすることができる。 Further, since the depth of another decoded picture at a position where the vertical position is a multiple of 4 is used, the processing load can be further reduced.
また、垂直位置が8の倍数となる位置にある、復号済みの他のピクチャのデプスを用いるので、より処理負荷を軽くすることができる。 Further, since the depth of another decoded picture whose vertical position is a multiple of 8 is used, the processing load can be further reduced.
また、復号済みの他のピクチャのデプスを取りに行く処理、すなわちデプスアクセスの範囲が無制限に広がることを防止することができる。これにより、デプスアクセスの処理負荷を軽くすることができるとともに、処理に必要な符号量を減らすことができる。 In addition, it is possible to prevent the process of obtaining the depth of another decoded picture, that is, the range of depth access from being expanded without limit. As a result, the processing load for depth access can be reduced, and the amount of code required for processing can be reduced.
本発明は、画像データが符号化された符号化データを復号する画像復号装置、および、画像データが符号化された符号化データを生成する画像符号化装置に好適に適用することができる。また、画像符号化装置によって生成され、画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。 The present invention can be suitably applied to an image decoding apparatus that decodes encoded data obtained by encoding image data and an image encoding apparatus that generates encoded data obtained by encoding image data. Further, the present invention can be suitably applied to the data structure of encoded data generated by an image encoding device and referenced by the image decoding device.
1…画像伝送システム 11…画像符号化装置 101…予測画像生成部 102…減算部 103…DCT・量子化部 104…エントロピー符号化部 105…逆量子化・逆DCT部 106…加算部 108…予測パラメータメモリ(フレームメモリ) 109…参照ピクチャメモリ(フレームメモリ) 110…符号化パラメータ決定部 111…予測パラメータ符号化部 112…インター予測パラメータ符号化部 1121…マージ予測パラメータ導出部 1122…AMVP予測パラメータ導出部 1123…減算部 1126…予測パラメータ統合部 113…イントラ予測パラメータ符号化部 21…ネットワーク 31…画像復号装置 301…エントロピー復号部 302…予測パラメータ復号部 303…インター予測パラメータ復号部 3031…インター予測パラメータ復号制御部 30311…残差予測フラグ復号部 303111…リファレンスレイヤ判定部 303112…残差予測フラグ格納部 303113…残差予測フラグ判定部 30312…マージインデックス復号部 30313…ベクトル候補インデックス復号部 3032…AMVP予測パラメータ導出部 3035…加算部 3036…マージ予測パラメータ導出部
30361…マージ候補導出部 303611…マージ候補格納部 303612…拡張マージ候補導出部 3036121…レイヤ間マージ候補導出部 3036122…変位ベクトル取得部 3036123…変位マージ候補導出部 303613…基本マージ候補導出部 3036131…空間マージ候補導出部 3036132…時間マージ候補導出部 3036133…結合マージ候補導出部 3036134…ゼロマージ候補導出部 30362…マージ候補選択部 304…イントラ予測パラメータ復号部 306…参照ピクチャメモリ(フレームメモリ) 307…予測パラメータメモリ(フレームメモリ) 308…予測画像生成部 309…インター予測画像生成部 3091…変位補償部 3092…残差予測部 30921…残差予測実施フラグ導出部 30922…参照画像取得部 30923…残差合成部 3093…照度補償部 3094…重み予測部 310…イントラ予測画像生成部 311…逆量子化・逆DCT部 312…加算部 313…残差格納部 351、361…デプスDV導出部(デプス導出部) 41…画像表示装置
DESCRIPTION OF
Claims (5)
復号済みの他のピクチャにおけるデプスから、予測パラメータの導出に用いるデプスを導出するデプス導出部と、
上記デプス導出部が導出したデプスを用いて予測パラメータを導出する予測パラメータ復号部と、を備え、
上記デプス導出部は、上記復号済みの他のピクチャにおける制限された位置のデプスを用いることを特徴とする画像復号装置。 An image decoding device that uses depth to derive a prediction parameter,
A depth deriving unit for deriving a depth used for deriving a prediction parameter from depths in other decoded pictures;
A prediction parameter decoding unit that derives a prediction parameter using the depth derived by the depth deriving unit,
The depth decoding unit uses a depth of a limited position in the other decoded picture.
復号済みの他のピクチャにおけるデプスから、予測パラメータの導出に用いるデプスを導出するデプス導出部と、
上記デプス導出部が導出したデプスを用いて予測パラメータを導出する予測パラメータ復号部と、を備え、
上記デプス導出部は、上記復号済みの他のピクチャにおける制限された位置のデプスを用いることを特徴とする画像符号化装置。 An image encoding device that uses depth to derive prediction parameters,
A depth deriving unit for deriving a depth used for deriving a prediction parameter from depths in other decoded pictures;
A prediction parameter decoding unit that derives a prediction parameter using the depth derived by the depth deriving unit,
The image coding apparatus according to claim 1, wherein the depth deriving unit uses a depth of a limited position in the other decoded picture.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013215118A JP2015080053A (en) | 2013-10-15 | 2013-10-15 | Image decoder and image encoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013215118A JP2015080053A (en) | 2013-10-15 | 2013-10-15 | Image decoder and image encoder |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015080053A true JP2015080053A (en) | 2015-04-23 |
Family
ID=53011160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013215118A Pending JP2015080053A (en) | 2013-10-15 | 2013-10-15 | Image decoder and image encoder |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015080053A (en) |
-
2013
- 2013-10-15 JP JP2013215118A patent/JP2015080053A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6469588B2 (en) | Residual prediction device, image decoding device, image coding device, residual prediction method, image decoding method, and image coding method | |
JP6441236B2 (en) | Image decoding apparatus and image encoding apparatus | |
JP6360053B2 (en) | Illuminance compensation device, image decoding device, image coding device | |
US10306235B2 (en) | Image decoding apparatus, image coding apparatus, and prediction-vector deriving device | |
JP6225241B2 (en) | Image decoding apparatus, image decoding method, image coding apparatus and image coding method | |
WO2015056719A1 (en) | Image decoding device and image coding device | |
US10200717B2 (en) | Image decoding device, image coding device, and predicted image generation device | |
JP6473078B2 (en) | Image decoding device | |
WO2015056620A1 (en) | Image decoding device and image coding device | |
JP6118199B2 (en) | Image decoding apparatus, image encoding apparatus, image decoding method, image encoding method, and computer-readable recording medium | |
JP2016034050A (en) | Image decoder, image encoder, and data structure | |
WO2015141696A1 (en) | Image decoding device, image encoding device, and prediction device | |
JP2016066864A (en) | Image decoding device, image encoding device, and merge mode parameter derivation device | |
JP2017135432A (en) | Viewpoint synthesis prediction apparatus, image decoding apparatus, and image encoding apparatus | |
WO2015190510A1 (en) | Viewpoint synthesis prediction device, image decoding device, and image coding device | |
WO2016056587A1 (en) | Displacement arrangement derivation device, displacement vector derivation device, default reference view index derivation device, and depth lookup table derivation device | |
JP2015080053A (en) | Image decoder and image encoder | |
JP6401707B2 (en) | Image decoding apparatus, image decoding method, and recording medium | |
JP2014204327A (en) | Image decoding apparatus and image encoding apparatus |