JP2021064819A - 動画像符号化装置及び動画像復号装置 - Google Patents
動画像符号化装置及び動画像復号装置 Download PDFInfo
- Publication number
- JP2021064819A JP2021064819A JP2018054270A JP2018054270A JP2021064819A JP 2021064819 A JP2021064819 A JP 2021064819A JP 2018054270 A JP2018054270 A JP 2018054270A JP 2018054270 A JP2018054270 A JP 2018054270A JP 2021064819 A JP2021064819 A JP 2021064819A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- area
- tiles
- moving image
- unit
- 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
Abstract
【課題】符号化効率の低下を抑えつつ、空間方向および時間方向において各タイルを独立に符号化・復号する場合に、タイル歪を除去、あるいは抑制する仕組みを提供する。【解決手段】動画像復号装置は、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備える。タイルは、隣接するタイルとオーバーラップする領域を含み、合成部は、タイルのオーバーラップ領域において、各画素の複数の画素値をフィルタ処理し、タイルの復号画像の画素値とフィルタ処理した画素値を用いて表示画像を生成する。【選択図】図9
Description
本発明の実施形態は、動画像復号装置、および動画像符号化装置に関する。
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)にて提案されている方式などが挙げられる。
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得
られる符号化単位(符号化ユニット(CU:Coding Unit)と呼ばれることもある)、及び
、符号化単位を分割することより得られるブロックである予測ユニット(PU:Prediction
Unit)、変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CUご
とに符号化/復号される。
られる符号化単位(符号化ユニット(CU:Coding Unit)と呼ばれることもある)、及び
、符号化単位を分割することより得られるブロックである予測ユニット(PU:Prediction
Unit)、変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CUご
とに符号化/復号される。
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測残差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる(非特許文献1)。
また、近年、マルチコアCPUやGPU等のプロセッサの進化に伴い、動画像符号化および復号処理において、並列処理を行いやすい構成やアルゴリズムが採用されるようになってきた。並列化しやすい構成の一例として、タイル(Tile)という画面(ピクチャ)分割単位が導入されている。タイルはスライスと異なり、ピクチャを矩形領域に分割したものであり、タイル毎に独立に符号化・復号することができる(特許文献1、非特許文献2)。
さらに、近年、4Kや8K、あるいはVR、360度動画のような360度全方位を取り込んだ動画に代表される、動画像の高解像度化が進み、プロジェクションフォーマットの標準化が進んでいる(非特許文献3)。これらをスマホやHMD(Head Mount Display)で視聴する時は
高解像度映像の一部を切り出してディスプレイに表示する。スマホやHMDでは電池の容量
は大きくなく、表示に必要な一部の領域を抽出して、最小限の復号処理により映像を視聴できる仕組みが期待されている。
高解像度映像の一部を切り出してディスプレイに表示する。スマホやHMDでは電池の容量
は大きくなく、表示に必要な一部の領域を抽出して、最小限の復号処理により映像を視聴できる仕組みが期待されている。
"Algorithm Description of Joint Exploration Test Model 7 (JEM7)", JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13-21 July 2017
ITU-T H.265(04/2015) SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video High efficiency video coding
"Algorithm descriptions of projection format conversion and video quality metrics in 360Lib (Version 5)", JVET-H1004, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18-24 October 2017
上記で説明したように、タイルはピクチャを矩形領域に分割したものであり、タイル外の情報(予測モード、MV、画素値)を参照せずに、空間および時間方向に復号することができる。しかしながら、対象タイルの隣接タイルの情報、およびコロケートタイル(対象タイルとは異なるピクチャ上にある同じ位置のタイル)の隣接タイルの情報を全く参照しないため、タイル境界の不連続性に起因する歪(以降ではタイル歪と呼ぶ)が発生し、タイル歪は非常に視認しやすいという問題がある。また、符号化効率も低下する。
また、タイルサイズがCTUの整数倍という制限があり、ロードバランスのために同じサ
イズに分割することや、360度動画のフェース(face)サイズに合わせたタイルを構成す
ることが難しいという課題がある。
イズに分割することや、360度動画のフェース(face)サイズに合わせたタイルを構成す
ることが難しいという課題がある。
そこで、本発明は、上記の課題に鑑みてなされたものであり、その目的は、符号化効率の低下を抑えつつ、空間方向および時間方向において各タイルを独立に符号化・復号する場合に、タイル歪を除去、あるいは抑制する仕組みを提供することである。また、CTUの
整数倍の制限がないタイル分割を提供することである。
整数倍の制限がないタイル分割を提供することである。
本発明の一態様に係る動画像復号装置は、画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で復号するこ
とを特徴とする。
とを特徴とする。
本発明の一態様によれば、動画像において、各タイルの復号の独立性を保証する仕組みと、タイル歪を除去、抑制する仕組みを提供する。これにより、表示等に必要な領域を選択して復号する時に処理量を大幅に削減できると共に、タイル境界において歪の無い画像を表示することができる。
(実施形態1)
以下、図面を参照しながら本発明の実施形態について説明する。
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、符号化対象画像を符号化した符号を伝送し、伝送された符号を復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31及び動画像表示装置(画像表示装置)41を含んで構成される。
動画像符号化装置11には、画像Tが入力される。
ネットワーク21は、動画像符号化装置11が生成した符号化ストリームTeを動画像復号装置31に伝送する。ネットワーク21は、インターネット(internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)ま
たはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
たはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、それぞれ復号した1または複数の復号画像Tdを生成する。
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。
<演算子>
本明細書で用いる演算子を以下に記載する。
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR
、|=はOR代入演算子である。
、|=はOR代入演算子である。
x ? y : zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子であ
る。
る。
Clip3(a,b,c)は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返
し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
abs(a)はaの絶対値を返す関数である。
Int(a)はaの整数値を返す関数である。
floor(a)はa以下の最大の整数を返す関数である。
ceil(a)はa以上の最小の整数を返す関数である。
a/dはdによるaの除算を表す。
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2の(a)〜(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス
、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スラ
イスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット(Coding Tree Unit:CTU)、CTUに含まれる符号化ユニット(Coding Unit
:CU)を示す図である。
、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スラ
イスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット(Coding Tree Unit:CTU)、CTUに含まれる符号化ユニット(Coding Unit
:CU)を示す図である。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に
示すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に
示すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複
数の動画像に共通する符号化パラメータの集合、および、動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
数の動画像に共通する符号化パラメータの集合、および、動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れ
かを選択する。
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れ
かを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適
用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。
その場合、対象シーケンス内の各スライスヘッダから複数のPPSの何れかを選択する。
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適
用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。
その場合、対象シーケンス内の各スライスヘッダから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、
スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、
スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0〜SNS-1のそれぞれを区別する必要が無い場合、符号の添え字
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参
照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スラ
イスヘッダSH、および、スライスデータSDATAを含んでいる。
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参
照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スラ
イスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P
、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライ
スを指す。
、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライ
スを指す。
なお、スライスヘッダSHには、上記符号化ビデオシーケンスに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために動画像
復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2
の(d)に示すように、符号化ツリーユニットCTU(CTUブロック)を含んでいる。CTUは
、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために動画像
復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2
の(d)に示すように、符号化ツリーユニットCTU(CTUブロック)を含んでいる。CTUは
、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図2の(e)には、処理対象のCTUを復号するために動画像復号装置31が参照するデ
ータの集合が規定されている。CTUは、再帰的な4分木分割(QT分割)または2分木分割
(BT分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。再帰的な4分木分割または2分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木及び2分木の中間ノードは、CNであり、CTU自身も最上位のCNとして規定される。
図2の(e)には、処理対象のCTUを復号するために動画像復号装置31が参照するデ
ータの集合が規定されている。CTUは、再帰的な4分木分割(QT分割)または2分木分割
(BT分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。再帰的な4分木分割または2分木分割により得られる木構造を符号化ツリー(CT:Coding Tree)、木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木及び2分木の中間ノードは、CNであり、CTU自身も最上位のCNとして規定される。
CTは、CT情報として、QT分割を行うか否かを示すQT分割フラグ(cu_split_flag)、及
びBT分割の分割方法を示すBT分割モード(split_bt_mode)を含む。cu_split_flag及び/又はsplit_bt_modeはCNごとに伝送される。cu_split_flagが1の場合には、CNは4つのCNに分割される。cu_split_flagが0の時、split_bt_modeが1の場合には、CNは2つのCNに水平分割され、split_bt_modeが2の場合には、CNは2つのCNに垂直分割され、split_bt_modeが0の場合には、CNは分割されず、1つのCUをノードとして持つ。CUはCNの末端ノード(リーフノード)であり、これ以上分割されない。
びBT分割の分割方法を示すBT分割モード(split_bt_mode)を含む。cu_split_flag及び/又はsplit_bt_modeはCNごとに伝送される。cu_split_flagが1の場合には、CNは4つのCNに分割される。cu_split_flagが0の時、split_bt_modeが1の場合には、CNは2つのCNに水平分割され、split_bt_modeが2の場合には、CNは2つのCNに垂直分割され、split_bt_modeが0の場合には、CNは分割されず、1つのCUをノードとして持つ。CUはCNの末端ノード(リーフノード)であり、これ以上分割されない。
また、CTUのサイズが64x64画素の場合には、CUのサイズは、64x64画素、64x32画素、32
x64画素、32x32画素、64x16画素、16x64画素、32x16画素、16x32画素、16x16画素、64x8
画素、8x64画素、32x8画素、8x32画素、16x8画素、8x16画素、8x8画素、64x4画素、4x64
画素、32x4画素、4x32画素、16x4画素、4x16画素、8x4画素、4x8画素、及び、4x4画素の
何れかをとり得る。
x64画素、32x32画素、64x16画素、16x64画素、32x16画素、16x32画素、16x16画素、64x8
画素、8x64画素、32x8画素、8x32画素、16x8画素、8x16画素、8x8画素、64x4画素、4x64
画素、32x4画素、4x32画素、16x4画素、4x16画素、8x4画素、4x8画素、及び、4x4画素の
何れかをとり得る。
(符号化ユニット)
図2の(f)には、処理対象のCUを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、予測ツリー(PT:Prediction Tree)、
変換ツリー(TT:Transform Tree)、CUヘッダCUHから構成される。CUヘッダでは予測モ
ード、分割方法(PU分割モード)等が規定される。
図2の(f)には、処理対象のCUを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、予測ツリー(PT:Prediction Tree)、
変換ツリー(TT:Transform Tree)、CUヘッダCUHから構成される。CUヘッダでは予測モ
ード、分割方法(PU分割モード)等が規定される。
PTでは、CUを1または複数に分割した各予測ユニット(PU:Prediction Unit)の予測
パラメータ(参照ピクチャインデックス、動きベクトル等)が規定される。別の表現でいえば、PUは、CUを構成する1または複数の重複しない領域である。また、PTは、上述の分割により得られた1または複数のPUを含む。なお、以下では、PUをさらに分割した予測単位を「サブブロック」と呼ぶ。サブブロックは、複数の画素によって構成されている。PUとサブブロックのサイズが等しい場合には、PU中のサブブロックは1つである。PUがサブブロックのサイズよりも大きい場合には、PUは、サブブロックに分割される。たとえばPUが8x8、サブブロックが4x4の場合には、PUは水平に2分割、垂直に2分割からなる、4つのサブブロックに分割される。
パラメータ(参照ピクチャインデックス、動きベクトル等)が規定される。別の表現でいえば、PUは、CUを構成する1または複数の重複しない領域である。また、PTは、上述の分割により得られた1または複数のPUを含む。なお、以下では、PUをさらに分割した予測単位を「サブブロック」と呼ぶ。サブブロックは、複数の画素によって構成されている。PUとサブブロックのサイズが等しい場合には、PU中のサブブロックは1つである。PUがサブブロックのサイズよりも大きい場合には、PUは、サブブロックに分割される。たとえばPUが8x8、サブブロックが4x4の場合には、PUは水平に2分割、垂直に2分割からなる、4つのサブブロックに分割される。
予測処理は、このPU(あるいは、サブブロック)ごとに行ってもよい。
PTにおける予測の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
イントラ予測の場合、分割方法は、2Nx2N(符号化ユニットと同一サイズ)と、NxNとがある。
インター予測の場合、分割方法は、符号化データのPU分割モード(part_mode)により
符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N、nLx2N、nRx2N、および、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、
2NxnU、2NxnDおよびnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N、nLx2N、nRx2N、および、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、
2NxnU、2NxnDおよびnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
TTにおいては、CUが1または複数の変換ユニット(TU:Transform Unit)に分割され、各TUの位置とサイズとが規定される。別の表現でいえば、TUは、CUを構成する1または複数の重複しない領域のことである。また、TTは、上述の分割より得られた1または複数のTUを含む。
TTにおける分割には、CUと同一のサイズの領域をTUとして割り付けるものと、上述したCUの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、このTUごとに行われる。
(予測パラメータ)
PUの予測画像は、PUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下
、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
PUの予測画像は、PUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下
、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に、対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍PUの予測パラメータから導出するモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトルインデ
ックスmvp_lX_idxと差分ベクトルmvdLXとして符号化される。
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージモードは、予測リスト利用フラグpredFlagLX(またはインター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍PUの予測パラメータから導出するモードである。AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めるモードである。なお、動きベクトルmvLXは、予測ベクトルmvpLXを識別する予測ベクトルインデ
ックスmvp_lX_idxと差分ベクトルmvdLXとして符号化される。
(動きベクトル)
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ(シフト)量を示す。動きベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ(シフト)量を示す。動きベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。
(イントラ予測)
イントラ予測パラメータとは、CUをピクチャ内の情報で予測する処理に用いられるパラメータ、例えば、イントラ予測モードIntraPredModeであり、輝度イントラ予測モードIntraPredModeYと色差イントラ予測モードIntraPredModeCは異なっても良い。イントラ予測
モードは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダ
イレクトモード(輝度の予測モードを使用するモード)、LM予測(輝度画素から線形予測するモード)の何れかを用いる。
イントラ予測パラメータとは、CUをピクチャ内の情報で予測する処理に用いられるパラメータ、例えば、イントラ予測モードIntraPredModeであり、輝度イントラ予測モードIntraPredModeYと色差イントラ予測モードIntraPredModeCは異なっても良い。イントラ予測
モードは、例えば67種類存在し、プレーナ予測、DC予測、Angular(方向)予測からなる。色差予測モードIntraPredModeCは、例えば、プレーナ予測、DC予測、Angular予測、ダ
イレクトモード(輝度の予測モードを使用するモード)、LM予測(輝度画素から線形予測するモード)の何れかを用いる。
輝度イントラ予測モードIntraPredModeYは、対象ブロックに適用される確率が高いと推定されたイントラ予測モードからなるMPM(Most Probable Mode)候補リストを用いて導
出する場合と、MPM候補リストに含まれない予測モードであるREMから導出する場合がある。どちらの方法を用いるかをフラグprev_intra_luma_pred_flagで通知し、前者の場合は
、インデックスmpm_idxと、隣接ブロックのイントラ予測モードから導出したMPM候補リストを用いてIntraPredModeYを導出する。後者の場合は、フラグrem_selected_mode_flagと、モードrem_selected_modeおよびrem_non_selected_modeを用いてイントラ予測モードを導出する。
出する場合と、MPM候補リストに含まれない予測モードであるREMから導出する場合がある。どちらの方法を用いるかをフラグprev_intra_luma_pred_flagで通知し、前者の場合は
、インデックスmpm_idxと、隣接ブロックのイントラ予測モードから導出したMPM候補リストを用いてIntraPredModeYを導出する。後者の場合は、フラグrem_selected_mode_flagと、モードrem_selected_modeおよびrem_non_selected_modeを用いてイントラ予測モードを導出する。
色差イントラ予測モードIntraPredModeCは、LM予測を用いるか否かを示すフラグnot_lm_chroma_flagを用いて導出する場合、ダイレクトモードを用いるか否かを示すフラグnot_
dm_chroma_flagを用いて導出する場合、色差画素に適用されるイントラ予測モードを直接指定するインデックスchroma_intra_mode_idxを用いて導出する場合がある。
dm_chroma_flagを用いて導出する場合、色差画素に適用されるイントラ予測モードを直接指定するインデックスchroma_intra_mode_idxを用いて導出する場合がある。
(ループフィルタ)
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
ループフィルタは符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタには、主に、デブロッキングフィルタ、サンプル適応オフセット(SAO:Sample Adaptive Offset)、適応ループフィルタ
(ALF:Adaptive Loop Filter)がある。
デブロッキングフィルタは、ブロック境界を介して互いに隣接する輝度成分の画素のデブロック前画素値の差が予め定められた閾値よりも小さい場合に、当該ブロック境界に対して、輝度および色差成分の画素にデブロッキング処理を施すことによって、当該ブロック境界付近の画像のフィルタ処理を行う。
SAOはデブロッキングフィルタ後に適用するフィルタであり、リンギング歪や量子化歪
を除去する効果がある。SAOはCTU単位の処理であり、画素値をいくつかのカテゴリに分類して、カテゴリ毎に画素単位にオフセットを加減算するフィルタである。SAOのエッジオ
フセット(EO)処理は、対象画素と隣接画素(参照画素)との大小関係に応じて画素値に加算するオフセット値を決定する。
を除去する効果がある。SAOはCTU単位の処理であり、画素値をいくつかのカテゴリに分類して、カテゴリ毎に画素単位にオフセットを加減算するフィルタである。SAOのエッジオ
フセット(EO)処理は、対象画素と隣接画素(参照画素)との大小関係に応じて画素値に加算するオフセット値を決定する。
ALFは、ALF前復号画像に対して、符号化ストリームTeから復号されたALFパラメータ(
フィルタ係数)ALFPを用いた適応的フィルタ処理を施すことによって、ALF済復号画像を
生成する。
フィルタ係数)ALFPを用いた適応的フィルタ処理を施すことによって、ALF済復号画像を
生成する。
(エントロピー符号化)
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。
エントロピー符号化には、シンタックスの種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックスを可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックスを可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)では、符号化あるいは復号したピクチャ毎に更新した確率モデルをメモリに格納する。そして、後続のインター予測を用いるPピクチャ、あるいはBピクチャにおいて、対象ピクチャのコンテキストの初期状態は、メモリに格納された確率モデルの中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを選択して、符号化、復号処理に使用する。
(タイル)
図3(a)はピクチャをN個のタイル(実線の矩形、図はN=9の例)に分割した例を示す図
である。タイルはさらに複数のCTU(破線の矩形)に分割される。図3(a)の中央に示すように、タイルの左上座標を(xTs,yTs)、幅をwT、高さをhTと記す。またピクチャの幅をwPict、高さをhPictと記す。なお、タイルの分割数やサイズに関する情報をタイル情報と呼
び、詳細は後述する。xTs、yTs、wT、hT、wPict、hPictの単位は画素である。ピクチャの幅、高さは図4(a)に示すsequence_parameter_set_rbsp()(SPSと称す)で通知される、pic_width_in_luma_samples、pic_height_in_luma_samplesをセットする。
図3(a)はピクチャをN個のタイル(実線の矩形、図はN=9の例)に分割した例を示す図
である。タイルはさらに複数のCTU(破線の矩形)に分割される。図3(a)の中央に示すように、タイルの左上座標を(xTs,yTs)、幅をwT、高さをhTと記す。またピクチャの幅をwPict、高さをhPictと記す。なお、タイルの分割数やサイズに関する情報をタイル情報と呼
び、詳細は後述する。xTs、yTs、wT、hT、wPict、hPictの単位は画素である。ピクチャの幅、高さは図4(a)に示すsequence_parameter_set_rbsp()(SPSと称す)で通知される、pic_width_in_luma_samples、pic_height_in_luma_samplesをセットする。
wPict = pic_width_in_luma_samples
hPict = pic_height_in_luma_samples
図3(b)はピクチャをタイルに分割した時の、CTUの符号化、復号順序を示す図である。各タイルに記載されている番号はTileId(ピクチャ内のタイルの識別子)であり、ピクチャ内のタイルに対し左上から右下にラスタスキャン順で番号TileIdを割り当ててもよい。また、CTUは各タイル内を左上から右下へラスタスキャン順に処理され、1つのタイル内
での処理が終わると、次のタイル内のCTUが処理される。
hPict = pic_height_in_luma_samples
図3(b)はピクチャをタイルに分割した時の、CTUの符号化、復号順序を示す図である。各タイルに記載されている番号はTileId(ピクチャ内のタイルの識別子)であり、ピクチャ内のタイルに対し左上から右下にラスタスキャン順で番号TileIdを割り当ててもよい。また、CTUは各タイル内を左上から右下へラスタスキャン順に処理され、1つのタイル内
での処理が終わると、次のタイル内のCTUが処理される。
図3(c)は時間方向に連続するタイルを示す図である。図3(c)に示されるように、ビデオシーケンスは、時間方向に連続する複数のピクチャから構成されている。タイルシーケンスは、時間方向に連続する1つ以上の時刻のタイルから構成されている。図中のTile(n,tk)は、時刻tkにおけるTileId=nのタイルを表す。なお、図中のCVS(Coded Video Sequence)は、あるイントラピクチャから復号順で別のイントラピクチャの直前のピクチャまで
のピクチャ群である。
のピクチャ群である。
図4は、タイル情報等に関するシンタックスの例である。
図4(b)に示すPPS(pic_parameter_set_rbsp())で、タイルに関するパラメータtile_parameters()を通知する。以下、パラメータを通知するとは、パラメータを符号化データ
(ビットストリーム)に含めることを意味し、動画像符号化装置では当該パラメータを符号化し、動画像復号装置では当該パラメータを復号する。tile_parameters()には、図4(c)に示すように、tileが存在するか否かを示すtile_enabled_flagが1の場合、タイル情報tile_info()を通知する。また、tile_enabled_flagが1の場合、タイルが時間的に連続す
る複数のピクチャにわたって独立に復号できるか否かを示すindependent_tiles_flagを通知する。independent_tiles_flagが0の場合、タイルは、参照ピクチャ中の隣接タイルを
参照して復号する(独立に復号できない)。independent_tiles_flagが1の場合、参照ピ
クチャ中の隣接タイルを参照せずに復号する。タイルを用いる場合、independent_tiles_flagの値によらず、対象ピクチャ中の隣接タイルを参照せずに復号するため、複数のタイルを並列に復号することができる。図4(c)に示すように、independent_tiles_flagが0の場合に参照ピクチャにかけるタイル境界でのループフィルタのオンオフを示す、loop_filter_across_tiles_enable_flagを伝送(present)する。independent_tiles_flagが1の場合において、loop_filter_across_tiles_enable_flagを伝送(present)せずに常に0として
もよい。
(ビットストリーム)に含めることを意味し、動画像符号化装置では当該パラメータを符号化し、動画像復号装置では当該パラメータを復号する。tile_parameters()には、図4(c)に示すように、tileが存在するか否かを示すtile_enabled_flagが1の場合、タイル情報tile_info()を通知する。また、tile_enabled_flagが1の場合、タイルが時間的に連続す
る複数のピクチャにわたって独立に復号できるか否かを示すindependent_tiles_flagを通知する。independent_tiles_flagが0の場合、タイルは、参照ピクチャ中の隣接タイルを
参照して復号する(独立に復号できない)。independent_tiles_flagが1の場合、参照ピ
クチャ中の隣接タイルを参照せずに復号する。タイルを用いる場合、independent_tiles_flagの値によらず、対象ピクチャ中の隣接タイルを参照せずに復号するため、複数のタイルを並列に復号することができる。図4(c)に示すように、independent_tiles_flagが0の場合に参照ピクチャにかけるタイル境界でのループフィルタのオンオフを示す、loop_filter_across_tiles_enable_flagを伝送(present)する。independent_tiles_flagが1の場合において、loop_filter_across_tiles_enable_flagを伝送(present)せずに常に0として
もよい。
なお、シーケンスを通してタイルを独立に処理する場合、独立タイルフラグindependent_tiles_flagは図4(a)に示すようにSPSで通知してもよい。independent_tiles_flagについては後述する。
タイル情報tile_info()は、例えば図4(d)に示すように、num_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、column_width_minus1[i]、row_height_minus1[i]であるが、overlap_tiles_flagとオーバーラップ情報等を含めてもよい。ここで
、num_tile_columns_minus1、num_tile_rows_minus1は各々ピクチャ内の水平、垂直方向
のタイル数M、Nから各々1を引いた値である。uniform_spacing_flagはピクチャが均等に
タイル分割されるか否かを示すフラグである。uniform_spacing_flagの値が1の場合、ピ
クチャの各タイルの幅、高さは等しく設定されるので、ピクチャ内の水平、垂直方向のタイル数から動画像符号化装置、動画像復号装置において、タイルの幅、高さを導出することができる。
、num_tile_columns_minus1、num_tile_rows_minus1は各々ピクチャ内の水平、垂直方向
のタイル数M、Nから各々1を引いた値である。uniform_spacing_flagはピクチャが均等に
タイル分割されるか否かを示すフラグである。uniform_spacing_flagの値が1の場合、ピ
クチャの各タイルの幅、高さは等しく設定されるので、ピクチャ内の水平、垂直方向のタイル数から動画像符号化装置、動画像復号装置において、タイルの幅、高さを導出することができる。
M = num_tile_columns_minus1+1
N = num_tile_rows_minus1+1
wT[m] = floor(wPict/M) (0<=m<M-1) (式TSP-1)
wT[M-1] = wPict-Σ(wT[m]) (0<=m<M-1)
hT[n] = floor(hPict/N) (0<=n<N-1)
hT[N-1] = hPict-Σ(hT[n]) (0<=n<N-1)
あるいはwT[m]、hT[n]は下式で表現してもよい。
N = num_tile_rows_minus1+1
wT[m] = floor(wPict/M) (0<=m<M-1) (式TSP-1)
wT[M-1] = wPict-Σ(wT[m]) (0<=m<M-1)
hT[n] = floor(hPict/N) (0<=n<N-1)
hT[N-1] = hPict-Σ(hT[n]) (0<=n<N-1)
あるいはwT[m]、hT[n]は下式で表現してもよい。
wT[m] = ceil(wPict/M) (0<=m<M-1) (式TSP-2)
hT[n] = ceil(hPict/N) (0<=n<N-1)
あるいはwT[m]、hT[n]は下式で表現してもよい。
hT[n] = ceil(hPict/N) (0<=n<N-1)
あるいはwT[m]、hT[n]は下式で表現してもよい。
for(m=0; m<M; m++ )
wT[m] = ((m+1)*wPict)/M-(m*wPict)/M (式TSP-3)
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict)/N-(n*hPict)/N
またタイルサイズは、タイル単位のサイズ(タイルの最小サイズ)wUnitTile、hUnitTileの倍数でもよい。この場合、以下で導出する。
wT[m] = ((m+1)*wPict)/M-(m*wPict)/M (式TSP-3)
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict)/N-(n*hPict)/N
またタイルサイズは、タイル単位のサイズ(タイルの最小サイズ)wUnitTile、hUnitTileの倍数でもよい。この場合、以下で導出する。
wT[m] = floor(wPict/M/wUnitTile)*wUnitTile (0<=m<M) (式TSP-4)
hT[n] = floor(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは下式で表現してもよい。
hT[n] = floor(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは下式で表現してもよい。
wT[m] = ceil(wPict/M/wUnitTile)*wUnitTile (0<=m<M) (式TSP-5)
hT[n] = ceil(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
for(m=0; m<M; m++ )
wT[m] = ((m+1)*wPict/M/wUnitTile-m*wPict/M/wUnitTile)*wUnitTIle (式TSP-6)
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict/N/hUnitTIle-n*hPict/N/hUnitTIle)*hUnitTile
wPict、hPictがそれぞれM、Nの整数倍でない場合、wT[m]あるいはhT[n]の一部に余りの画素数を配分するとよい。たとえば、wPict=500でM=3の場合には、2画素が余るため、wT[0]とwT[1]を1大きくする。あるいはM-1から逆順に、wT[M-1]とwT[M-2]を1大きくする。または、wT[0]やwT[M-1]など、特定の要素を2だけ大きくしてもよい。
uniform_spacing_flagの値が0の場合、ピクチャの各タイルの幅、高さは等しく設定され
る必要はない。動画像符号化装置では、各タイルの幅column_width_minus1[i](図3のwTを、wUnitTileを単位として表現した値)、高さrow_height_minus1[i](図3のhTを、hUnitTileを単位として表現した値)をタイル毎に符号化する。動画像復号装置では、符号化された(column_width_minus1[],row_width_minus1[])に基づいてタイル毎に、タイルサイズwT[m]、hT[n]を下記のように復号する。
hT[n] = ceil(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
for(m=0; m<M; m++ )
wT[m] = ((m+1)*wPict/M/wUnitTile-m*wPict/M/wUnitTile)*wUnitTIle (式TSP-6)
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict/N/hUnitTIle-n*hPict/N/hUnitTIle)*hUnitTile
wPict、hPictがそれぞれM、Nの整数倍でない場合、wT[m]あるいはhT[n]の一部に余りの画素数を配分するとよい。たとえば、wPict=500でM=3の場合には、2画素が余るため、wT[0]とwT[1]を1大きくする。あるいはM-1から逆順に、wT[M-1]とwT[M-2]を1大きくする。または、wT[0]やwT[M-1]など、特定の要素を2だけ大きくしてもよい。
uniform_spacing_flagの値が0の場合、ピクチャの各タイルの幅、高さは等しく設定され
る必要はない。動画像符号化装置では、各タイルの幅column_width_minus1[i](図3のwTを、wUnitTileを単位として表現した値)、高さrow_height_minus1[i](図3のhTを、hUnitTileを単位として表現した値)をタイル毎に符号化する。動画像復号装置では、符号化された(column_width_minus1[],row_width_minus1[])に基づいてタイル毎に、タイルサイズwT[m]、hT[n]を下記のように復号する。
wT[m] = (column_width_minus1[m]+1)*wUnitTile (0<=m<M)(式TSP-7)
hT[n] = (row_height_minus1[m]+1)*hUnitTile (0<=n<N)
ここで、wUnitTile、hUnitTileはタイルの単位サイズ(最小サイズ)である。また、タイルサイズを、最小CUサイズMIN_CU_SIZE(=1<<log2CUSize)の整数倍(wUnitTile=hUnitTile=MIN_CU_SIZE)とし、タイルサイズwT[m]、hT[n]を下記のように復号してもよい。
hT[n] = (row_height_minus1[m]+1)*hUnitTile (0<=n<N)
ここで、wUnitTile、hUnitTileはタイルの単位サイズ(最小サイズ)である。また、タイルサイズを、最小CUサイズMIN_CU_SIZE(=1<<log2CUSize)の整数倍(wUnitTile=hUnitTile=MIN_CU_SIZE)とし、タイルサイズwT[m]、hT[n]を下記のように復号してもよい。
wT[m] = ((column_width_minus1[m]+1)<<log2CUSize) (0<=m<M)(式TSP-8)
hT[n] = ((row_height_minus1[m]+1)<<log2CUSize) (0<=n<N)
さらに、タイルサイズは、CTUサイズ(wCTU,hCTU)の整数倍(wUnitTile=wCTU、hUnitTile=hCTU)とし、タイルサイズwT[m]、hT[n]を下記のように復号してもよい。
hT[n] = ((row_height_minus1[m]+1)<<log2CUSize) (0<=n<N)
さらに、タイルサイズは、CTUサイズ(wCTU,hCTU)の整数倍(wUnitTile=wCTU、hUnitTile=hCTU)とし、タイルサイズwT[m]、hT[n]を下記のように復号してもよい。
wT[m] = (column_width_minus1[m]+1)*wCTU (0<=m<M)(式TSP-9)
hT[n] = (row_height_minus1[m]+1)*hCTU (0<=n<N)
overlap_tiles_flagは、タイル境界付近の領域が隣接タイルとオーバーラップするか否かを示す。overlap_tiles_flagが1の場合、隣接タイルとオーバーラップすることを示し
、図5(f)に示すオーバーラップ情報overlap_tiles_info()を通知する。overlap_tiles_flagが0の場合、隣接タイルとオーバーラップしない。ここで、オーバーラップとは、2つ
以上のタイルが同じ画像の領域を含むことを意味し、オーバーラップ領域とは、2つ以上のタイルに含まれる領域を示す。
hT[n] = (row_height_minus1[m]+1)*hCTU (0<=n<N)
overlap_tiles_flagは、タイル境界付近の領域が隣接タイルとオーバーラップするか否かを示す。overlap_tiles_flagが1の場合、隣接タイルとオーバーラップすることを示し
、図5(f)に示すオーバーラップ情報overlap_tiles_info()を通知する。overlap_tiles_flagが0の場合、隣接タイルとオーバーラップしない。ここで、オーバーラップとは、2つ
以上のタイルが同じ画像の領域を含むことを意味し、オーバーラップ領域とは、2つ以上のタイルに含まれる領域を示す。
オーバーラップ情報overlap_tiles_info()は、uniform_overlap_flagとオーバーラップ領域の幅と高さを示す情報を含む。uniform_overlap_flagは各タイルのオーバーラップ領域の幅あるいは高さが等しいか否かを示すフラグである。各タイルのオーバーラップ領域の全ての幅、あるいは全ての高さが等しい場合、uniform_overlap_flagを1にセットし、
オーバーラップ領域の幅と高さを示すシンタックスtile_overlap_width_div2、tile_overlap_height_div2を通知する。各タイルのオーバーラップ領域の幅、あるいは高さが異な
る場合、uniform_overlap_flagを0にセットし、各タイルのオーバーラップ領域の幅と高
さを示すシンタックスtile_overlap_width_div2[m]、tile_overlap_height_div2[n]を通
知する。uniform_overlap_flagが1の場合は下記の関係が成り立つ。
オーバーラップ領域の幅と高さを示すシンタックスtile_overlap_width_div2、tile_overlap_height_div2を通知する。各タイルのオーバーラップ領域の幅、あるいは高さが異な
る場合、uniform_overlap_flagを0にセットし、各タイルのオーバーラップ領域の幅と高
さを示すシンタックスtile_overlap_width_div2[m]、tile_overlap_height_div2[n]を通
知する。uniform_overlap_flagが1の場合は下記の関係が成り立つ。
tile_overlap_width_div2[m] = tile_overlap_width_div2 (0<=m<M-1)
tile_overlap_height_div2[n] = tile_overlap_height_div2 (0<=n<N-1)
実際のオーバーラップ領域の幅wOVLP、高さhOVLPとの関係を下式で示す。これらの単位は画素である。
tile_overlap_height_div2[n] = tile_overlap_height_div2 (0<=n<N-1)
実際のオーバーラップ領域の幅wOVLP、高さhOVLPとの関係を下式で示す。これらの単位は画素である。
wOVLP = tile_overlap_width_div2[m]*2
hOVLP = tile_overlap_height_div2[n]*2
なお、オーバーラップしない場合、overlap_tiles_flagを0にセットし、オーバーラッ
プ領域の幅と高さを0にセットする。overlap_tiles_flagが0の場合、tile_overlap_width_div2、tile_overlap_height_div2は、符号化データに含まれず、tile_overlap_width_div2=0とtile_overlap_height_div2=0が導出される。
hOVLP = tile_overlap_height_div2[n]*2
なお、オーバーラップしない場合、overlap_tiles_flagを0にセットし、オーバーラッ
プ領域の幅と高さを0にセットする。overlap_tiles_flagが0の場合、tile_overlap_width_div2、tile_overlap_height_div2は、符号化データに含まれず、tile_overlap_width_div2=0とtile_overlap_height_div2=0が導出される。
上記では、YUV4:2:0の場合を考慮して、オーバーラップ領域の幅と高さを2の倍数にし
たが、YUV4:2:2の場合のオーバーラップ領域の高さやYUV4:4:4の場合のオーバーラップ領域の幅と高さは、1画素単位を2の倍数にせず、オーバーラップ領域の幅と高さを画素単位で通知てもよい。以降の"_div2"で表されるパラメータも、色差フォーマット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表すかを切り替えてもよい。
たが、YUV4:2:2の場合のオーバーラップ領域の高さやYUV4:4:4の場合のオーバーラップ領域の幅と高さは、1画素単位を2の倍数にせず、オーバーラップ領域の幅と高さを画素単位で通知てもよい。以降の"_div2"で表されるパラメータも、色差フォーマット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表すかを切り替えてもよい。
なお、位置(m,n)のタイルの識別子TileIdは下記で算出してもよい。
TileId = n*M+m
あるいは、TileIdが既知の場合、TileIdからタイルの位置を示す(m,n)を算出してもよ
い。
あるいは、TileIdが既知の場合、TileIdからタイルの位置を示す(m,n)を算出してもよ
い。
m = TileId%M
n = TileId/M
図5(g)のスライスデータ(slice_segment_data())では、図4(b)で示すPPSで通知し
たタイル情報を用いて、ピクチャ上の(xTsmn,yTsmn)の位置から始まるM*N個のタイル毎に、タイルのシンタックスTile(m,n)を通知する。具体的には、ピクチャ上の(xTsmn,yTsmn)を各タイルの左上座標(0,0)として、図5(h)に示すように、タイルを、CTU(幅wCTU、高
さhCTU)に分割し、各CTUの符号化データcoding_quadtree()を通知してもよい。ここで、(xTsmn,yTsmn)は(xTs00,yTs00)〜(xTsM-1 N-1,yTsM-1 N-1)である。
n = TileId/M
図5(g)のスライスデータ(slice_segment_data())では、図4(b)で示すPPSで通知し
たタイル情報を用いて、ピクチャ上の(xTsmn,yTsmn)の位置から始まるM*N個のタイル毎に、タイルのシンタックスTile(m,n)を通知する。具体的には、ピクチャ上の(xTsmn,yTsmn)を各タイルの左上座標(0,0)として、図5(h)に示すように、タイルを、CTU(幅wCTU、高
さhCTU)に分割し、各CTUの符号化データcoding_quadtree()を通知してもよい。ここで、(xTsmn,yTsmn)は(xTs00,yTs00)〜(xTsM-1 N-1,yTsM-1 N-1)である。
なお、図4(d)のtile_info()の代わりに図25に示すtile_info()を通知してもよい。図
4(d)のtile_info()と図25(a)のtile_info()の違いは、図4(d)では、タイルの幅と高さ
をタイルの最小単位、あるいはCTU単位で表現したcolumn_width_minus1[i]、row_height_
minus1[i]を通知するが、図25(a)では、overlap_tiles_flagが0でない場合、つまりオーバーラップする場合は、タイルの幅と高さを画素単位で表現したcolumn_width_in_luma_samples_div2_minus1[i]、row_height_in_luma_samples_div2_minus1[i]を通知し、overlap_tiles_flagが0の場合は、図4(d)と同様、タイルの幅と高さをタイルの最小単位、あ
るいはCTU単位で表現したcolumn_width_minus1[i]、row_height_minus1[i]を通知するこ
とである。column_width_in_luma_samples_div2_minus1[i]、row_height_in_luma_samples_div2_minus1[i]はタイルの画素単位の幅と高さを2で割った値である。この場合、画素単位のタイルの幅wT[m]と高さhT[n]は下式で表される。
4(d)のtile_info()と図25(a)のtile_info()の違いは、図4(d)では、タイルの幅と高さ
をタイルの最小単位、あるいはCTU単位で表現したcolumn_width_minus1[i]、row_height_
minus1[i]を通知するが、図25(a)では、overlap_tiles_flagが0でない場合、つまりオーバーラップする場合は、タイルの幅と高さを画素単位で表現したcolumn_width_in_luma_samples_div2_minus1[i]、row_height_in_luma_samples_div2_minus1[i]を通知し、overlap_tiles_flagが0の場合は、図4(d)と同様、タイルの幅と高さをタイルの最小単位、あ
るいはCTU単位で表現したcolumn_width_minus1[i]、row_height_minus1[i]を通知するこ
とである。column_width_in_luma_samples_div2_minus1[i]、row_height_in_luma_samples_div2_minus1[i]はタイルの画素単位の幅と高さを2で割った値である。この場合、画素単位のタイルの幅wT[m]と高さhT[n]は下式で表される。
wT[m] = column_width_in_luma_samples_div2_minus1[m]*2+1 (式TSP-10)
hT[n] = row_height_in_luma_samples_div2_minus1[n]*2+1
なお、column_width_in_luma_samples_div2_minus1[m]、row_height_in_luma_samples_div2_minus1[n]*2は、色差フォーマット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表すかを切り替えてもよい。
hT[n] = row_height_in_luma_samples_div2_minus1[n]*2+1
なお、column_width_in_luma_samples_div2_minus1[m]、row_height_in_luma_samples_div2_minus1[n]*2は、色差フォーマット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表すかを切り替えてもよい。
また、column_width_in_luma_samples_div2_minus1[i]、row_height_in_luma_samples_div2_minus1[i]は可変長符号化(ue(v))ではなく、固定長符号化(f(n))してもよい。
画素単位で表現するため、これらのシンタックスは値が大きくなりやすく、可変長符号化よりも固定長符号化の方が、符号量が小さくなるからである。
画素単位で表現するため、これらのシンタックスは値が大きくなりやすく、可変長符号化よりも固定長符号化の方が、符号量が小さくなるからである。
なお、図25(a)では、オーバーラップ領域の有無でタイルの幅と高さの単位を切り替え
たが、これに限らず、後述のタイル無効領域の有無でタイルの幅と高さの単位を切り替えてもよい。
たが、これに限らず、後述のタイル無効領域の有無でタイルの幅と高さの単位を切り替えてもよい。
また図5(f)では、下式のように、画素単位のオーバーラップの幅と高さを各々2で割
った値を通知する。
った値を通知する。
wOVLP[m] = tile_overlap_width_div2*2 (式OVLP-1)
hOVLP[m] = tile_overlap_height_div2*2
この他に、図25(b)のように、画素単位のオーバーラップの幅と高さから各々1を差し引
いた値を通知してもよい。
hOVLP[m] = tile_overlap_height_div2*2
この他に、図25(b)のように、画素単位のオーバーラップの幅と高さから各々1を差し引
いた値を通知してもよい。
wOVLP[m] = tile_overlap_width_minus1+1 (式OVLP-2)
hOVLP[m] = tile_overlap_height_minus1+1
(タイル境界制限)
タイル情報はPPSで通知されるため、ピクチャ毎にタイルの位置やサイズを変更するこ
とができる。一方、タイルシーケンスを独立に復号する場合、つまり等しいTileIdをもつタイルが、異なるTileIdをもつタイルの情報を参照することなく復号可能な場合には、ピクチャ毎にタイルの位置やサイズを変更しない。つまり、各タイルが異なる時刻のピクチャ(参照ピクチャ)を参照する場合に、CVSの全てのピクチャにおいて、同一のタイル分
割を適用してもよい。この場合、等しいTileIdをもつタイルは、CVSの全ピクチャを通し
て、左上座標、幅、高さは等しく設定する。
hOVLP[m] = tile_overlap_height_minus1+1
(タイル境界制限)
タイル情報はPPSで通知されるため、ピクチャ毎にタイルの位置やサイズを変更するこ
とができる。一方、タイルシーケンスを独立に復号する場合、つまり等しいTileIdをもつタイルが、異なるTileIdをもつタイルの情報を参照することなく復号可能な場合には、ピクチャ毎にタイルの位置やサイズを変更しない。つまり、各タイルが異なる時刻のピクチャ(参照ピクチャ)を参照する場合に、CVSの全てのピクチャにおいて、同一のタイル分
割を適用してもよい。この場合、等しいTileIdをもつタイルは、CVSの全ピクチャを通し
て、左上座標、幅、高さは等しく設定する。
タイル情報がCVSを通じて変化しないことは、図4(e)に示すvui_parameter()のtiles_fixed_structure_flagの値を1にセットすることで通知される。つまり、tiles_fixed_structure_flagの値が1の場合、CVSを通して、PPSで通知されるnum_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、column_width_minus1[i]、row_height_minus1[i]、overlap_tiles_flag、loop_filter_across_tiles_enabled_flagの値は一意であ
る。tiles_fixed_structure_flagの値が1の場合、CVS内では、TileIdが等しいタイルは、時刻(POC:Picture Order Count)が異なるピクチャにおいても、ピクチャ上のタイル位
置(タイルの左上座標、幅、高さ)とオーバーラップ情報は変更されない。また、tiles_fixed_structure_flagの値が0である場合、タイルシーケンスは時刻によってサイズが異
なってもよい。
る。tiles_fixed_structure_flagの値が1の場合、CVS内では、TileIdが等しいタイルは、時刻(POC:Picture Order Count)が異なるピクチャにおいても、ピクチャ上のタイル位
置(タイルの左上座標、幅、高さ)とオーバーラップ情報は変更されない。また、tiles_fixed_structure_flagの値が0である場合、タイルシーケンスは時刻によってサイズが異
なってもよい。
図4(a)はシーケンスパラメータセットSPSの一部を抜粋したシンタックス表である。独立タイルフラグindependent_tiles_flagは、タイルシーケンスが対象ピクチャ内(空間方向)に加え、時間的に連続するシーケンス内(時間方向)でも独立に符号化、復号できるか否かを示すフラグである。independent_tiles_flagの値が1である場合、タイルシーケ
ンスは独立に符号化、復号できることを意味し、タイルの符号化・復号及び符号化データのシンタックスにおいて下記の制約を課してもよい。
(制約1)CVS内では、タイルはTileIdが異なるタイルの情報を参照しない。
(制約2)CVSを通して、PPSで通知されるピクチャ内の水平、垂直方向のタイル数、タイルの幅、タイルの高さ、オーバーラップ領域の幅と高さは等しい。CVS内では、TileIdが
等しいタイルは、時刻(POC)が異なるピクチャにおいても、ピクチャ上のタイル位置(
タイルの左上座標、幅、高さ)は変更されない。vui_parameter()のtiles_fixed_structure_flagの値は1に設定する。
ンスは独立に符号化、復号できることを意味し、タイルの符号化・復号及び符号化データのシンタックスにおいて下記の制約を課してもよい。
(制約1)CVS内では、タイルはTileIdが異なるタイルの情報を参照しない。
(制約2)CVSを通して、PPSで通知されるピクチャ内の水平、垂直方向のタイル数、タイルの幅、タイルの高さ、オーバーラップ領域の幅と高さは等しい。CVS内では、TileIdが
等しいタイルは、時刻(POC)が異なるピクチャにおいても、ピクチャ上のタイル位置(
タイルの左上座標、幅、高さ)は変更されない。vui_parameter()のtiles_fixed_structure_flagの値は1に設定する。
上述の(制約1)「タイルはTileIdが異なるタイルの情報を参照しない」について、詳細に説明する。
図6は時間方向(異なるピクチャ間)のタイルの参照について説明する図である。
図6(a)は、時刻t0のイントラピクチャPict(t0)をN個のタイルに分割した例である。図6(b)は、時刻t1=t0+1のインターピクチャPict(t1)をN個のタイルに分割した例である。Pict(t1)はPict(t0)を参照する。図中、Tile(n,t)は時刻tのTileId=n(n=0..N-1)のタイル
を表す。上述の(制約2)から、どの時刻においても、TileId=nのタイルの左上座標、幅、高さは等しい。
図6(a)は、時刻t0のイントラピクチャPict(t0)をN個のタイルに分割した例である。図6(b)は、時刻t1=t0+1のインターピクチャPict(t1)をN個のタイルに分割した例である。Pict(t1)はPict(t0)を参照する。図中、Tile(n,t)は時刻tのTileId=n(n=0..N-1)のタイル
を表す。上述の(制約2)から、どの時刻においても、TileId=nのタイルの左上座標、幅、高さは等しい。
図6(b)において、タイルTile(n,t1)内のCU1、CU2、CU3は、図6(a)のブロックBLK1、BLK2、BLK3を参照する。この場合、BLK1とBLK3はタイルTile(n,t0)外のタイルに含まれる
ブロックであり、これらを参照するには、時刻t0において、Tile(n,t0)だけではなく、Pict(t0)全体を復号する必要がある。つまりTileId=nに対応するタイルシーケンスを時刻t0、t1で復号するだけではタイルTile(n,t1)を復号することはできず、TileId=nに加えてTileId=n以外のタイルシーケンスの復号も必要である。従ってタイルシーケンスを独立に復号するためには、タイル内のCUの動き補償画像を導出する場合に参照する参照ピクチャ内の参照画素がコロケートタイル(参照ピクチャ上の同じ位置のタイル)内に含まれる必要がある。
ブロックであり、これらを参照するには、時刻t0において、Tile(n,t0)だけではなく、Pict(t0)全体を復号する必要がある。つまりTileId=nに対応するタイルシーケンスを時刻t0、t1で復号するだけではタイルTile(n,t1)を復号することはできず、TileId=nに加えてTileId=n以外のタイルシーケンスの復号も必要である。従ってタイルシーケンスを独立に復号するためには、タイル内のCUの動き補償画像を導出する場合に参照する参照ピクチャ内の参照画素がコロケートタイル(参照ピクチャ上の同じ位置のタイル)内に含まれる必要がある。
また、independent_tiles_flagの値が0である場合、タイルシーケンスが独立に復号で
きなくてもよいことを意味する。
きなくてもよいことを意味する。
上記で説明したように、タイル境界ではタイル外の画素を参照するイントラ予測やループフィルタをオフにすることによって、対象タイルに隣接するタイルの情報を参照せず、またインター予測は参照する範囲をコロケートタイルに限定することによって、任意の位置のタイルのみを符号化・復号することができる。
特に、8Kのような高解像度画像をモバイル端末で視聴する場合や、VR、360度動画をHMDで視聴する場合に、画面内の特定の領域のみを抽出して視聴することが一般的である。画面内の特定の領域のみを見る場合、動画像の一部だけを復号すればよいので、処理に必要な電力の消費を抑え、視聴時間を長くすることができる。
一方で、対象タイルに隣接するタイル、コロケートタイルに隣接するタイルを参照しないため、タイル境界で画素値が不連続となり、タイル歪が発生する。以下では、個々のタイルを独立に符号化、復号しつつ、タイル歪を発生させない技術について説明する。
本願の実施形態1では、ピクチャをタイルに分割する時に、図7に示すように、ピクチャ上の領域を、重複を許して分割することによってタイルを生成する。
図7(a)は、ピクチャ(幅wPict、高さhPict)をM*N個のタイルに分割した図である。位置(m,n)のタイルをTile[m][n]で表す。ここで0<=m<M、0<=n<Nである。図7(a)ではM=3、N=2である。タイルTile[m][n]の幅と高さをwT[m]、hT[n]、左上座標(図7(a)の黒丸で示
す位置)を(xTsmn,yTsmn)と表す。図中の斜線部は複数のタイルが重複(オーバーラップ
)する領域である。wPict、hPict、wT[m]、hT[n]、xTsmn、yTsmnの単位は画素である。
す位置)を(xTsmn,yTsmn)と表す。図中の斜線部は複数のタイルが重複(オーバーラップ
)する領域である。wPict、hPict、wT[m]、hT[n]、xTsmn、yTsmnの単位は画素である。
図7(b)は、隣接する2つのタイルTile[0][0]、Tile[1][0]の関係を示す図である。Tile[0][0]の右端の斜線部はTile[1][0]とオーバーラップする領域であり、下端の斜線部はTile[0][1]とオーバーラップする領域である。そして、Tile[0][0]の幅wT[0]、高さhT[0]
は、Tile[1][0]、Tile[0][1]とオーバーラップする領域を含むタイルの幅と高さを示す。同様に、Tile[1][0]の左端の斜線部はTile[0][0]とオーバーラップする領域であり、右端の斜線部はTile[2][0]とオーバーラップする領域であり、下端の斜線部はTile[1][1]とオーバーラップする領域である。そして、Tile[1][0]の幅wT[1]、高さhT[0]は、Tile[0][0]、Tile[2][0]、Tile[1][1]と各々オーバーラップする領域を含む。
は、Tile[1][0]、Tile[0][1]とオーバーラップする領域を含むタイルの幅と高さを示す。同様に、Tile[1][0]の左端の斜線部はTile[0][0]とオーバーラップする領域であり、右端の斜線部はTile[2][0]とオーバーラップする領域であり、下端の斜線部はTile[1][1]とオーバーラップする領域である。そして、Tile[1][0]の幅wT[1]、高さhT[0]は、Tile[0][0]、Tile[2][0]、Tile[1][1]と各々オーバーラップする領域を含む。
つまり、Tile[0][0]の右側の斜線部は、Tile[0][0]とTile[1][0]で各々(重複して)符号化される領域である。
そして、各タイルのサイズをCTU単位とする構成では、各タイルの幅と高さはCTUの幅と高さの整数倍であることから、下記のように制約してもよい。
wT[m] = wCTU*a
hT[n] = hCTU*b
ここで、wCTU、hCTUはCTUの幅と高さであり、a、bは正の整数である。各タイルのサイ
ズをCTU単位とする構成であっても、ピクチャの右端のタイルの幅、および、下端のタイ
ルの高さはCTUの整数倍にならない場合があるので、図7(a)に示すように、ピクチャの右端と下端にクロップオフセット領域を設け(図7(a)の横線領域)、タイルとクロップオ
フセット領域を加算した幅と高さをCTUの整数倍に設定する。クロップオフセット領域は
表示することを意図せず、CTU単位で処理しやすいように便宜上、処理する領域のサイズ
を大きくするために用いられる領域である。出力する場合には、例えば、画素値として便宜上、グレイ(Y,Cb,Cr)=(1<<(bitDepthY-1),1<<(bitDepthCb-1),1<<(bitDepthCr-1))、あるいは、ピクチャの右端/下端の画素値をパディングした値をセットする。また、タイル
単位で(m,n)位置の各タイルの左上座標(xTsmn,yTsmn)はCTUの整数倍の位置とは限らない
。後述するように、(wT,hT)のサイズで示されるタイル有効領域から、(wOVLP,hOVLP)で示されるオーバーラップ領域を引いた正味の表示領域をタイルアクティブ領域と呼んでもよい。
hT[n] = hCTU*b
ここで、wCTU、hCTUはCTUの幅と高さであり、a、bは正の整数である。各タイルのサイ
ズをCTU単位とする構成であっても、ピクチャの右端のタイルの幅、および、下端のタイ
ルの高さはCTUの整数倍にならない場合があるので、図7(a)に示すように、ピクチャの右端と下端にクロップオフセット領域を設け(図7(a)の横線領域)、タイルとクロップオ
フセット領域を加算した幅と高さをCTUの整数倍に設定する。クロップオフセット領域は
表示することを意図せず、CTU単位で処理しやすいように便宜上、処理する領域のサイズ
を大きくするために用いられる領域である。出力する場合には、例えば、画素値として便宜上、グレイ(Y,Cb,Cr)=(1<<(bitDepthY-1),1<<(bitDepthCb-1),1<<(bitDepthCr-1))、あるいは、ピクチャの右端/下端の画素値をパディングした値をセットする。また、タイル
単位で(m,n)位置の各タイルの左上座標(xTsmn,yTsmn)はCTUの整数倍の位置とは限らない
。後述するように、(wT,hT)のサイズで示されるタイル有効領域から、(wOVLP,hOVLP)で示されるオーバーラップ領域を引いた正味の表示領域をタイルアクティブ領域と呼んでもよい。
例えば、ピクチャが(wPict,hPict)=(1920,1080)、(wCTU,hCTU)=(128,128)、オーバーラップ領域の幅wOVLP=4、オーバーラップ領域の高さhOVLP=4の場合、タイル情報は下記のように設定してもよい。
M = 3
N = 2
uniform_spacing_flag = 0
wT[0] = 768
wT[1] = 640
wT[2] = 520
hT[0] = 640
hT[1] = 444
overlap_tiles_flag = 1
uniform_overlap_flag = 1
tile_overlap_width_div2 = 2
tile_overlap_height_div2 = 2
column_width_minus1[2]とrow_height_minus1[1]はCTUの整数倍に対応するため、クロ
ップオフセット領域を設け、タイルのサイズをCTUサイズの整数倍としてもよい。この場
合、クロップオフセット領域の幅wCRP[2]と高さhCRP[1]は下記に設定する。wCRP[]、hCRP[]の単位は画素である。
N = 2
uniform_spacing_flag = 0
wT[0] = 768
wT[1] = 640
wT[2] = 520
hT[0] = 640
hT[1] = 444
overlap_tiles_flag = 1
uniform_overlap_flag = 1
tile_overlap_width_div2 = 2
tile_overlap_height_div2 = 2
column_width_minus1[2]とrow_height_minus1[1]はCTUの整数倍に対応するため、クロ
ップオフセット領域を設け、タイルのサイズをCTUサイズの整数倍としてもよい。この場
合、クロップオフセット領域の幅wCRP[2]と高さhCRP[1]は下記に設定する。wCRP[]、hCRP[]の単位は画素である。
wCRP[2] = 120
hCRP[1] = 68
タイルの幅wT[2]と高さhT[1]と、クロップオフセット領域の幅wCRP[2]と高さhCRP[1]を加算すると、CTUサイズである。
hCRP[1] = 68
タイルの幅wT[2]と高さhT[1]と、クロップオフセット領域の幅wCRP[2]と高さhCRP[1]を加算すると、CTUサイズである。
wT[2]*wCTU+wCRP[2] = 520+120 = 640 = 128*5
hT[1]*hCTU+hCRP[1] = 444+68 = 512 = 128*4
なお、タイルサイズはCTUサイズに限定されず、タイル単位のサイズ(wUnitTile、hUnitTile)や最小CUサイズMIN_CU_SIZEの整数倍などとしてもよい。
hT[1]*hCTU+hCRP[1] = 444+68 = 512 = 128*4
なお、タイルサイズはCTUサイズに限定されず、タイル単位のサイズ(wUnitTile、hUnitTile)や最小CUサイズMIN_CU_SIZEの整数倍などとしてもよい。
クロップオフセット領域のサイズは、タイルとクロップオフセット領域のサイズの加算値がCTUの整数倍との制約から、タイルのサイズに基づいて導出することができる。
また、ラスタ順に設定したタイル単位の位置(m,n)で示される、ピクチャ内での各タイ
ルの左上座標(xTsmn,yTsmn)は下記計算式で算出する。各タイルの左上座標は、タイル先
頭のCTUの左上座標でもある。
ルの左上座標(xTsmn,yTsmn)は下記計算式で算出する。各タイルの左上座標は、タイル先
頭のCTUの左上座標でもある。
xTsmn = ΣwT[m-1]-wOVLP*m (1<=m<Mの場合、Σは1〜mまでの総和) (式TLA-1)
0 (m=0の場合)
yTsmn = ΣhT[n-1]-hOVLP*n (1<=n<Nの場合、Σは1〜nまでの総和)
0 (n=0の場合)
より具体的には、以下になる。
0 (m=0の場合)
yTsmn = ΣhT[n-1]-hOVLP*n (1<=n<Nの場合、Σは1〜nまでの総和)
0 (n=0の場合)
より具体的には、以下になる。
(xTs00,yTs00) = (0,0)
(xTs10,yTs10) = (764,0)
(xTs20,yTs20) = (1400,0)
(xTs01,yTs01) = (0,636)
(xTs11,yTs11) = (764,636)
(xTs21,yTs21) = (1400,636)
このようにピクチャ内の各タイルの左上座標(タイル先頭のCTUの左上座標)は、ピク
チャ内で必ずしもCTUの整数倍の位置ではない。
(xTs10,yTs10) = (764,0)
(xTs20,yTs20) = (1400,0)
(xTs01,yTs01) = (0,636)
(xTs11,yTs11) = (764,636)
(xTs21,yTs21) = (1400,636)
このようにピクチャ内の各タイルの左上座標(タイル先頭のCTUの左上座標)は、ピク
チャ内で必ずしもCTUの整数倍の位置ではない。
各タイルを符号化・復号する時に、タイルのオーバーラップ領域はタイル毎に符号化・復号され、複数の復号画像が生成される。例えば図7(a)において、Tile[0][0]とTile[1][0]のオーバーラップ領域は各々のタイルで1回ずつ符号化・復号されるので2つの復号
画像が生成される。また、Tile[0][0]とTile[0][1]のオーバーラップ領域も各々のタイルで1回ずつ符号化・復号されるので2つの復号画像が生成される。また、Tile[0][0]、Tile[1][0]、Tile[0][1]、Tile[1][1]のオーバーラップ領域は各々のタイルで1回ずつ符号化・復号されるので4つの復号画像が生成される。これらの領域は、復号後に合成処理(タイル境界のフィルタ処理)を実施することで、タイル歪のない合成画像(表示画像)を生成することができる。一例を図8(a)に示す。図8(a)では、2つの復号画像の重み付和を計算することで合成画像を生成する。画像の合成方法については後述する。
画像が生成される。また、Tile[0][0]とTile[0][1]のオーバーラップ領域も各々のタイルで1回ずつ符号化・復号されるので2つの復号画像が生成される。また、Tile[0][0]、Tile[1][0]、Tile[0][1]、Tile[1][1]のオーバーラップ領域は各々のタイルで1回ずつ符号化・復号されるので4つの復号画像が生成される。これらの領域は、復号後に合成処理(タイル境界のフィルタ処理)を実施することで、タイル歪のない合成画像(表示画像)を生成することができる。一例を図8(a)に示す。図8(a)では、2つの復号画像の重み付和を計算することで合成画像を生成する。画像の合成方法については後述する。
(動画像復号装置の構成)
図9(a)に本発明の動画像復号装置(画像復号装置)31を示す。動画像復号装置31
は、ヘッダ情報復号部2001、タイル復号部2002a〜2002nおよびタイル合成部2003を含んで構成される。
図9(a)に本発明の動画像復号装置(画像復号装置)31を示す。動画像復号装置31
は、ヘッダ情報復号部2001、タイル復号部2002a〜2002nおよびタイル合成部2003を含んで構成される。
ヘッダ情報復号部2001は、外部から入力され、NAL(network abstraction layer)ユニット単位で符号化された符号化ストリームTeからヘッダ情報を復号する。また、ヘッダ情報復号部2001は、外部から入力された、ディスプレイ等に表示すべき画像領域を示す制御情報から、表示に必要なタイル(TileId)を導出する。また、ヘッダ情報復号部2001は、符号化ストリームTeから表示に必要な符号化タイルを抽出し、タイル復号部2002a〜2002nに伝送する。また、ヘッダ情報復号部2001は、PPSを復号して得られたタイル情報(タイ
ルの分割に関する情報)と、タイル復号部2002で復号されるタイルのTileIdをタイル合成部2003に伝送する。タイル情報は、具体的には、num_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、column_width_minus1[i]、row_height_minus1[i]、overlap_tiles_flag、オーバーラップ情報等のシンタックスから算出した、タイルの水平
方向の個数M、垂直方向の個数N、タイルの幅wT[m]と高さhT[n]、オーバーラップ領域の幅wOVLP[m]と高さhOVLP[n]等である。また、これらの情報からクロップオフセット領域の幅wCRP[m]と高さhCRP[n]を導出する。
ルの分割に関する情報)と、タイル復号部2002で復号されるタイルのTileIdをタイル合成部2003に伝送する。タイル情報は、具体的には、num_tile_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag、column_width_minus1[i]、row_height_minus1[i]、overlap_tiles_flag、オーバーラップ情報等のシンタックスから算出した、タイルの水平
方向の個数M、垂直方向の個数N、タイルの幅wT[m]と高さhT[n]、オーバーラップ領域の幅wOVLP[m]と高さhOVLP[n]等である。また、これらの情報からクロップオフセット領域の幅wCRP[m]と高さhCRP[n]を導出する。
タイル復号部2002a〜2002nは、各符号化タイルを復号し、復号したタイルをタイル合成部2003に伝送する。
ここで、タイル復号部2002a〜2002nは、タイルシーケンスを1つの独立なビデオシーケンスとして復号処理を行うため、復号処理を行う際に時間的にも空間的にもタイルシーケンス間の予測情報を参照しない。すなわち、タイル復号部2002a〜2002nは、あるピクチャ内のタイルを復号する場合に、別の(異なるTileIdをもつ)タイルシーケンスのタイルを参照しない。
このように、タイル復号部2002a〜2002nが各々タイルを復号するため、複数のタイルを並列に復号処理することも、1つのタイルのみを独立して復号することもできる。その結果、タイル復号部2002a〜2002nによれば、必要最小限の復号処理のみ実行することで表示に必要な画像を復号できる等、効率よく復号処理を実行することができる。
(タイル復号部の構成)
タイル復号部2002a〜2002nの構成について説明する。図10は、タイル復号部2002a〜2002nの1つである2002の構成を示すブロック図である。タイル復号部2002は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構成される。なお、後述のタイル符号化部2012に合わせ、タイル復号部2002にループフィルタ305が含まれない構成もある。
タイル復号部2002a〜2002nの構成について説明する。図10は、タイル復号部2002a〜2002nの1つである2002の構成を示すブロック図である。タイル復号部2002は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構成される。なお、後述のタイル符号化部2012に合わせ、タイル復号部2002にループフィルタ305が含まれない構成もある。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
以降では、処理の単位としてCTU、CU、PU、TUを使用した例を記載するが、この例に限
らず、TUあるいはPU単位の代わりにCU単位で処理をしてもよい。あるいはCTU、CU、PU、TUをブロックと読み替え、ブロック単位の処理としてもよい。
らず、TUあるいはPU単位の代わりにCU単位で処理をしてもよい。あるいはCTU、CU、PU、TUをブロックと読み替え、ブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測パラメータおよび、差分画像を生成するための残差情報などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードpredMode、PU分割モードpart_mode、参照ピクチャインデックスref_idx_lX、予測ベクトルインデックスmvp_lX_idx、差分
ベクトルmvdLXである。どの符号を復号するかの制御は、予測パラメータ復号部302の
指示に基づいて行われる。エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換)等の
周波数変換を行い量子化して得られる係数である。
ベクトルmvdLXである。どの符号を復号するかの制御は、予測パラメータ復号部302の
指示に基づいて行われる。エントロピー復号部301は、量子化変換係数を逆量子化・逆変換部311に出力する。この量子化変換係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換)等の
周波数変換を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。また、インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを復号する。イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。なお、ループフィルタ305はタイル符号化部2012と対になっていれば、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、復号対象のピクチャ及びCTUあるいはCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及びPU(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてPU(ブロック)もしくはサブブロックの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてインター予測によりPU(ブロック)もしくはサブブロックの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象PUを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックをもとに補間を行ってPUの予測画像(補間画像、動き補償画像)を生成する。インター予測画像生成部309は、生成したPUの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、PUもしくはサブブロックの予測画像を生成するために参照する領域である。
(タイル境界パディング)
参照ピクチャブロック(参照ブロック)は、予測リスト利用フラグpredFlagLX=1の参照ピクチャリストに対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャ上にあって、対象CU(ブロック)の位置を基準として、動きベクトルmvLXが示す位置のブロックである。既に説明したように、対象タイルと等しいTileIdをもつ参照ピクチャ上のタイル(コロケートタイル)内に、参照ブロックの画素が位置する保証はない。そこで、一例として、参照ピクチャにおいて、図6(c)に示すように各タイルの外側をパディング(タ
イル境界の画素値で補填する)することで、コロケートタイル外の画素値を参照することなく参照ブロックを読みだすことができる。
参照ピクチャブロック(参照ブロック)は、予測リスト利用フラグpredFlagLX=1の参照ピクチャリストに対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャ上にあって、対象CU(ブロック)の位置を基準として、動きベクトルmvLXが示す位置のブロックである。既に説明したように、対象タイルと等しいTileIdをもつ参照ピクチャ上のタイル(コロケートタイル)内に、参照ブロックの画素が位置する保証はない。そこで、一例として、参照ピクチャにおいて、図6(c)に示すように各タイルの外側をパディング(タ
イル境界の画素値で補填する)することで、コロケートタイル外の画素値を参照することなく参照ブロックを読みだすことができる。
タイル境界パディング(タイル外パディング)は、インター予測画像生成部309による動き補償において、参照画素の位置(xIntL+i,yIntL+j)の画素値として、以下の位置(xRef+i,yRef+j)の画素値refImg[xRef+i][yRef+j]を用いることで実現する。すなわち、参照画素参照時に、参照位置を、タイルの上下左右の境界画素の位置でクリッピングすることで実現する。
xRef+i = Clip3(xTs, xYs+wT-1, xIntL+i)
yRef+j = Clip3(yTs, yYs+hT-1, yIntL+j)
ここで、(xTs,yTs)は、対象ブロックが位置する対象タイルの左上座標、wT、hTは、対象
タイルの幅と高さである。これらの単位は画素である。
yRef+j = Clip3(yTs, yYs+hT-1, yIntL+j)
ここで、(xTs,yTs)は、対象ブロックが位置する対象タイルの左上座標、wT、hTは、対象
タイルの幅と高さである。これらの単位は画素である。
なお、xIntL、yIntLは、ピクチャの左上座標を基準とした対象ブロックの左上座標を(xb,yb)、動きベクトルを(mvLX[0],mvLX[1])とすると、
xIntL = xb+(mvLX[0]>>log2(MVUNIT))
yIntL = yb+(mvLX[1]>>log2(MVUNIT))
で導出しても良い。ここでMVUNITは、動きベクトルの精度が1/MVUNITペル(pel)であるこ
とを示す。
xIntL = xb+(mvLX[0]>>log2(MVUNIT))
yIntL = yb+(mvLX[1]>>log2(MVUNIT))
で導出しても良い。ここでMVUNITは、動きベクトルの精度が1/MVUNITペル(pel)であるこ
とを示す。
座標(xRef+i,yRef+j)の画素値を読み出すことで、図6(c)のパディングを実現できる。
independent_tiles_flag=1の場合にタイル境界をパディングすることで、インター予測で動きベクトルがコロケートタイル外を指しても、コロケートタイル内の画素値を用いて参照画素を置き換えるので、タイルシーケンスを独立にインター予測を用いて復号することができる。
(タイル境界動きベクトル制限)
タイル境界パディングの他の制限方法として、タイル境界動きベクトル制限がある。本処理では、インター予測画像生成部309による動き補償において、参照画素の位置(xIntL+i,yIntL+j)がコロケートタイル内に入るように動きベクトルを制限(クリッピング)
する。
タイル境界パディングの他の制限方法として、タイル境界動きベクトル制限がある。本処理では、インター予測画像生成部309による動き補償において、参照画素の位置(xIntL+i,yIntL+j)がコロケートタイル内に入るように動きベクトルを制限(クリッピング)
する。
本処理では、対象ブロック(対象サブブロックもしくは対象ブロック)の左上座標(xb,yb)、ブロックのサイズ(BW,BH)、対象タイルの左上座標(xTs,yTs)、対象タイルの幅と高
さがwT、hTである場合に、ブロックの動きベクトルmvLXを入力とし、制限された動きベクトルmvLXを出力する。
さがwT、hTである場合に、ブロックの動きベクトルmvLXを入力とし、制限された動きベクトルmvLXを出力する。
対象ブロックの補間画像生成における参照画素の左端posL、右端posR、上端posU、下端posDは各々、以下である。なお、NTAPは補間画像生成に使用するフィルタのタップ数である。ここでMVUNITは、動きベクトルの精度が1/MVUNITペル(pel)であることを示す。
posL = xb+(mvLX[0]>>log2(MVUNIT))-NTAP/2+1)
posR = xb+BW-1+(mvLX[0]>>log2(MVUNIT))+NTAP/2
posU = yb+(mvLX[1]>>log2(MVUNIT))-NTAP/2+1
posD = yb+BH-1+(mvLX[1]>>log2(MVUNIT))+NTAP/2
上記参照画素がコロケートタイル内に入るための制限は以下のとおりである。
posR = xb+BW-1+(mvLX[0]>>log2(MVUNIT))+NTAP/2
posU = yb+(mvLX[1]>>log2(MVUNIT))-NTAP/2+1
posD = yb+BH-1+(mvLX[1]>>log2(MVUNIT))+NTAP/2
上記参照画素がコロケートタイル内に入るための制限は以下のとおりである。
posL >= xTs
posR <= xTs+wT-1
posU >= yTs
posD <= yTs+hT-1
である。また、以下の変形ができる。
posR <= xTs+wT-1
posU >= yTs
posD <= yTs+hT-1
である。また、以下の変形ができる。
posL = xb+(mvLX[0]>>log2(MVUNIT))-NTAP/2+1 >= xTs
(mvLX[0]>>log2(MVUNIT)) >= xTs-xb+NTAP/2-1
posR = xb+BW-1+(mvLX[0]>>log2(MVUNIT))+NTAP/2 <= xTs+wT-1
(mvLX[0]>>log2(MVUNIT)) <= xTs+wT-1-xb-BW+1-NTAP/2
posU = yb+(mvLX[1]>>log2(MVUNIT))-NTAP/2+1 >= yTs
(mvLX[0]>>log2(MVUNIT)) >= yTs-yb+NTAP/2-1
posD = yb+BH-1+(mvLX[1]>>log2(MVUNIT))+NTAP/2 <= yTs+hT-1
(mvLX[1]>>log2(MVUNIT)) <= yTs+hT-1-yb-BH+1-NTAP/2
したがって、動きベクトルの制限は、以下の式で導出できる。
(mvLX[0]>>log2(MVUNIT)) >= xTs-xb+NTAP/2-1
posR = xb+BW-1+(mvLX[0]>>log2(MVUNIT))+NTAP/2 <= xTs+wT-1
(mvLX[0]>>log2(MVUNIT)) <= xTs+wT-1-xb-BW+1-NTAP/2
posU = yb+(mvLX[1]>>log2(MVUNIT))-NTAP/2+1 >= yTs
(mvLX[0]>>log2(MVUNIT)) >= yTs-yb+NTAP/2-1
posD = yb+BH-1+(mvLX[1]>>log2(MVUNIT))+NTAP/2 <= yTs+hT-1
(mvLX[1]>>log2(MVUNIT)) <= yTs+hT-1-yb-BH+1-NTAP/2
したがって、動きベクトルの制限は、以下の式で導出できる。
mvLX[0] = Clip3(vxmin, vxmax, mvLX[0])
mvLX[1] = Clip3(vymin, vymax, mvLX[1])
ここで
vxmin = (xTs-xb+NTAP/2-1)<<log2(MVUNIT)
vxmax = (xTs+wT-xb-BW-NTAP/2)<<log2(MVUNIT)
vymin = (yTs-yb+NTAP/2-1)<<log2(MVUNIT)
vymax = (yTs+hT-yb-BH-NTAP/2)<<log2(MVUNIT)
independent_tiles_flag=1の場合に、動きベクトルを制限することにより、インター予測で動きベクトルがコロケートタイル内を常に指すことができる。この構成により、タイルシーケンスを独立にインター予測を用いて復号することができる。
mvLX[1] = Clip3(vymin, vymax, mvLX[1])
ここで
vxmin = (xTs-xb+NTAP/2-1)<<log2(MVUNIT)
vxmax = (xTs+wT-xb-BW-NTAP/2)<<log2(MVUNIT)
vymin = (yTs-yb+NTAP/2-1)<<log2(MVUNIT)
vymax = (yTs+hT-yb-BH-NTAP/2)<<log2(MVUNIT)
independent_tiles_flag=1の場合に、動きベクトルを制限することにより、インター予測で動きベクトルがコロケートタイル内を常に指すことができる。この構成により、タイルシーケンスを独立にインター予測を用いて復号することができる。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたPUのうち、復号対象PUから予め定めた範囲にある隣接PUを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、復号対象PUがいわゆるラスタスキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接PUのうちのいずれかであり、イントラ予測モードによって異なる。ラスタスキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
イントラ予測画像生成部310は、読み出した隣接PUに基づいてイントラ予測モードIntraPredModeが示す予測モードで予測を行ってPUの予測画像を生成する。イントラ予測画
像生成部310は、生成したPUの予測画像を加算部312に出力する。
像生成部310は、生成したPUの予測画像を加算部312に出力する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部311は、求めた変換係数について逆DCT、逆DST、逆KLT等の逆周波数変換を行い、予測残差信号を算出する。逆量子化
・逆変換部311は、算出した残差信号を加算部312に出力する。
・逆変換部311は、算出した残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309またはイントラ予測画像生成部310から入力されたPUの予測画像と逆量子化・逆変換部311から入力された残差信号を画素毎に加算して、PUの復号画像を生成する。加算部312は、生成したブロックの復号画像をデブロッキングフィルタ、SAO(サンプル適応オフセット)部、またはALFの少なく
とも何れかに出力する。
とも何れかに出力する。
(タイル合成部の構成)
タイル合成部2003は、ヘッダ情報復号部2001から伝送されたタイル情報および表示に必要なタイルのTileIdと、タイル復号部2002a〜2002nによって復号されたタイルとを参照し、復号画像Tdを生成、合成画像(表示画像)を出力する。タイル合成部2003は、図9(b)
に示すように、平滑化処理部20031と合成部20032からなる。平滑化処理部20031は、overlap_tiles_flagが1の場合は、タイル復号部2002で復号された各タイルのオーバーラップ領域を用いてフィルタ処理(平均化処理、重み付き平均化処理)を実施してもよい。つまりオーバーラップ領域に対応する2つ以上のタイルの画素を用いて、1つの画素を導出してもよい。例えば、水平方向に隣接する2つのタイルTile[m-1][n]とTile[m][n]のフィルタ処理後のオーバーラップ領域の画素値tmpは下式で算出される。
タイル合成部2003は、ヘッダ情報復号部2001から伝送されたタイル情報および表示に必要なタイルのTileIdと、タイル復号部2002a〜2002nによって復号されたタイルとを参照し、復号画像Tdを生成、合成画像(表示画像)を出力する。タイル合成部2003は、図9(b)
に示すように、平滑化処理部20031と合成部20032からなる。平滑化処理部20031は、overlap_tiles_flagが1の場合は、タイル復号部2002で復号された各タイルのオーバーラップ領域を用いてフィルタ処理(平均化処理、重み付き平均化処理)を実施してもよい。つまりオーバーラップ領域に対応する2つ以上のタイルの画素を用いて、1つの画素を導出してもよい。例えば、水平方向に隣接する2つのタイルTile[m-1][n]とTile[m][n]のフィルタ処理後のオーバーラップ領域の画素値tmpは下式で算出される。
tmp[m][n][x][y] = (Tile[m][n][x][y]+Tile[m-1][n][wT[m-1]-wOVLP[m-1]+x][y]+1)>>1 (式FLT-1)
ここで、wT[m-1]-wOVLP[m-1]+xは、タイル位置wT[m-1]-wOVLP[m-1]から開始してxだけ
右の位置を示す。tmp[m][n][x][y]は、(m,n)位置のタイルにおいて、タイル左上座標を(0,0)として、(x,y)に位置するオーバーラップ領域のフィルタ処理後の画素値を表す。Tile[m][n][x][y]は、(m,n)位置のタイルにおいて、タイル左上座標を(0,0)として、(x,y)に
位置するタイルの画素値を表す。また、垂直方向に隣接する2つのタイルTile[m][n-1]とTile[m][n]のフィルタ処理後のオーバーラップ領域の画素値tmpは下式で算出される。
ここで、wT[m-1]-wOVLP[m-1]+xは、タイル位置wT[m-1]-wOVLP[m-1]から開始してxだけ
右の位置を示す。tmp[m][n][x][y]は、(m,n)位置のタイルにおいて、タイル左上座標を(0,0)として、(x,y)に位置するオーバーラップ領域のフィルタ処理後の画素値を表す。Tile[m][n][x][y]は、(m,n)位置のタイルにおいて、タイル左上座標を(0,0)として、(x,y)に
位置するタイルの画素値を表す。また、垂直方向に隣接する2つのタイルTile[m][n-1]とTile[m][n]のフィルタ処理後のオーバーラップ領域の画素値tmpは下式で算出される。
tmp[m][n][x][y] = (Tile[m][n][x][y]+Tile[m][n-1][x][hT[n-1]-hOVLP[n-1]+y]+1)>>1 (式FLT-2)
また、4つのタイルTile[m-1][n-1]、Tile[m-1][n]、Tile[m][n-1]、Tile[m][n]がオーバーラップする領域の画素値は下式で算出される。
また、4つのタイルTile[m-1][n-1]、Tile[m-1][n]、Tile[m][n-1]、Tile[m][n]がオーバーラップする領域の画素値は下式で算出される。
tmp[m][n][x][y] = (Tile[m][n][x][y]+Tile[m][n-1][x][hT[n-1]-hOVLP[n-1]+y]+Tile[m-1][n][wT[m-1]-wOVLP[m-1]+x][y]+Tile[m-1][n-1][wT[m-1]-wOVLP[m-1]+x][hT[n-1]-hOVLP[n-1]+y]+2)>>2 (式FLT-3)
平滑化処理部20031(フィルタ処理部、平均化処理部、重み付き平均化処理部)は、タ
イルの画素値とフィルタ処理したオーバーラップ領域の画素値(ここではtmp)を、合成
部20032に出力する。
平滑化処理部20031(フィルタ処理部、平均化処理部、重み付き平均化処理部)は、タ
イルの画素値とフィルタ処理したオーバーラップ領域の画素値(ここではtmp)を、合成
部20032に出力する。
合成部20032は、タイルの画素値とオーバーラップ領域の画素値から、ピクチャあるい
は制御情報(TileId)で指定された所定の領域を生成する。合成画像の全体あるいは所定の領域Rec[x][y]は例えば下式の単純平均で表される。
は制御情報(TileId)で指定された所定の領域を生成する。合成画像の全体あるいは所定の領域Rec[x][y]は例えば下式の単純平均で表される。
Rec[xTsmn+x][yTsmn+y] = tmp[m][n][x][y] (m!=0 && 0<=x<wOVLP[m-1]、またはn!=0 && 0<=y<hOVLP[n-1])
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (上記以外で、m=0 or n=0, 0<=x<wT[0]-wOVLP[0], 0<=y<hT[0]-hOVLP[0])
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (上記以外)
なお、合成部の出力がピクチャの場合は対応するタイルは全タイル(0<=m<M,0<=n<N)で
あり、合成部の出力が所定の領域の場合はTileIdが示す(m,n)に対応するタイルを合成す
る。これらの処理はタイル復号部の外部で実施するため、合成した画像はタイルの復号に使用しない。
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (上記以外で、m=0 or n=0, 0<=x<wT[0]-wOVLP[0], 0<=y<hT[0]-hOVLP[0])
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (上記以外)
なお、合成部の出力がピクチャの場合は対応するタイルは全タイル(0<=m<M,0<=n<N)で
あり、合成部の出力が所定の領域の場合はTileIdが示す(m,n)に対応するタイルを合成す
る。これらの処理はタイル復号部の外部で実施するため、合成した画像はタイルの復号に使用しない。
以上の処理により、タイルを独立に復号しつつ、重複して復号した複数のタイル境界を平均化することにより、タイル歪を除去することができる。
(動画像符号化装置の構成)
図11(a)に本発明の動画像符号化装置11を示す。動画像符号化装置11は、ピクチャ
分割部2010、ヘッダ情報生成部2011、タイル符号化部2012a〜2012nおよび符号化ストリーム生成部2013を含んで構成される。
図11(a)に本発明の動画像符号化装置11を示す。動画像符号化装置11は、ピクチャ
分割部2010、ヘッダ情報生成部2011、タイル符号化部2012a〜2012nおよび符号化ストリーム生成部2013を含んで構成される。
ピクチャ分割部2010は、複数のタイルに分割し、タイルをタイル符号化部2012a〜2012nに伝送する。ヘッダ情報生成部2011は、分割したタイルからタイル情報(TileId、タイルの分割数、サイズ、オーバーラップに関する情報)を生成し、ヘッダ情報として符号化ストリーム生成部2013に伝送する。タイルがオーバーラップする場合のタイルの分割に関しては後述する。
タイル符号化部2012a〜2012nは、各タイルを符号化する。また、タイル符号化部2012a
〜2012nは、タイルシーケンス単位でタイルを符号化する。このように、タイル符号化部2012a〜2012nによれば、タイルを並列に符号化処理することができる。
〜2012nは、タイルシーケンス単位でタイルを符号化する。このように、タイル符号化部2012a〜2012nによれば、タイルを並列に符号化処理することができる。
ここで、タイル符号化部2012a〜2012nは、1つの独立なビデオシーケンスと同様に、タイルシーケンスに対し符号化処理を行い、TileIdの異なるタイルシーケンスの予測情報は符号化処理を行う際に時間的にも空間的にも参照しない。すなわち、タイル符号化部2012a〜2012nは、あるピクチャ内のタイルを符号化する場合に、空間的にも時間的にも別のタイルを参照しない。
符号化ストリーム生成部2013は、ヘッダ情報生成部2011から伝送されたタイル情報を含むヘッダ情報と、タイル符号化部2012a〜2012nがタイルを符号化して、NALユニット単位
の符号化ストリームTeを生成する。
の符号化ストリームTeを生成する。
このように、タイル符号化部2012a〜2012nが各タイルを独立に符号化することができるため、複数のタイルを並列に符号化処理することも、復号装置側で複数のタイルを並列に復号処理することも、1つのタイルのみを独立して復号することもできる。
(ピクチャ分割部)
図11(a)のピクチャ分割部2010は、図11(b)に示すタイル情報算出部20101とピクチャ分
割部A 20102からなる。
図11(a)のピクチャ分割部2010は、図11(b)に示すタイル情報算出部20101とピクチャ分
割部A 20102からなる。
タイル情報算出部20101はピクチャの幅wPictと高さhPict、タイルの単位サイズの幅wUnitTileと高さhUnitTile、分割するタイルの水平方向の個数M、垂直方向の個数N、オーバ
ーラップ領域の幅wOVLP[m]と高さhOVLP[n]から、タイルの幅wT[m]と高さhT[n]、クロップオフセット領域の幅wCRP[m]と高さhCRP[n]を導出する。ここでは、オーバーラップ領域の幅と高さを固定値wOVLP、hOVLPに設定した例を示す。
ーラップ領域の幅wOVLP[m]と高さhOVLP[n]から、タイルの幅wT[m]と高さhT[n]、クロップオフセット領域の幅wCRP[m]と高さhCRP[n]を導出する。ここでは、オーバーラップ領域の幅と高さを固定値wOVLP、hOVLPに設定した例を示す。
wT[m] = ceil((wPict+1)/wUnitTile/M)*wUnitTile (0<=m<=M-2)
wT[M-1] = wPict-ΣwCRP[m]+(M-1)*wOVLP (Σはm=0からM-2の総和)
hT[n] = ceil((hPict+1)/hUnitTile/N)*hUnitTile (0<=n<=N-2)
hT[N-1] = hPict-ΣhCRP[n]+(N-1)*hOVLP (Σはn=0からN-2の総和)
wCRP[M-1] = ceil(wT[M-1]/wUnitTile)*wUnitTile-wT[M-1]
hCRP[N-1] = ceil(hT[N-1]/hUnitTile)*hUnitTile-hT[N-1]
なお、wT[m]、hT[n]の算出式は(式TSP-1)〜(式TSP-10)のいずれであってもよい。
wT[M-1] = wPict-ΣwCRP[m]+(M-1)*wOVLP (Σはm=0からM-2の総和)
hT[n] = ceil((hPict+1)/hUnitTile/N)*hUnitTile (0<=n<=N-2)
hT[N-1] = hPict-ΣhCRP[n]+(N-1)*hOVLP (Σはn=0からN-2の総和)
wCRP[M-1] = ceil(wT[M-1]/wUnitTile)*wUnitTile-wT[M-1]
hCRP[N-1] = ceil(hT[N-1]/hUnitTile)*hUnitTile-hT[N-1]
なお、wT[m]、hT[n]の算出式は(式TSP-1)〜(式TSP-10)のいずれであってもよい。
また、ピクチャのCTU単位の幅PicWidthInCtbsY、高さPicHeightInCtbsYは、下式で表される。
PicWidthInCtbsY = ΣTileWidthinCtbs[m] (Σはm=0..M-1の総和)
PicHeightInCtbsY = ΣTileHeightinCtbs[n] (Σはn=0..N-1の総和)
ここで、TileWidthinCtbs[m]、TileHeightinCtbs[n]はタイルの幅と高さをCTU単位で表したパラメータである。
PicHeightInCtbsY = ΣTileHeightinCtbs[n] (Σはn=0..N-1の総和)
ここで、TileWidthinCtbs[m]、TileHeightinCtbs[n]はタイルの幅と高さをCTU単位で表したパラメータである。
TileWidthinCtbs[m] = ceil(wT[m]/M)
TileHeightinCtbs[n] = ceil(hT[n]/N)
オーバーラップ領域の幅や高さが大きいほどタイル歪を除去する効果が大きいが、符号量は増加し符号化効率が犠牲になる。適切なオーバーラップ領域の幅wOVLP[m]と高さhOVLP[n]は2〜6であってもよい。またタイルの単位サイズはCTUサイズ(wUnitTile=wCTU,hUnitTile=hCTU)であってもよく、オーバーラップ領域の幅wOVLPL[m]と高さhOVLP[n]は全て
同じ(例えばwOVLP=hOVLP=sOVLP)であってもよい。以下は、オーバーラップ領域の幅wOVLPL[m]、高さhOVLP[n]を全てsOVLPにセットした時の、図7のタイル情報の算出式の一例
である。
TileHeightinCtbs[n] = ceil(hT[n]/N)
オーバーラップ領域の幅や高さが大きいほどタイル歪を除去する効果が大きいが、符号量は増加し符号化効率が犠牲になる。適切なオーバーラップ領域の幅wOVLP[m]と高さhOVLP[n]は2〜6であってもよい。またタイルの単位サイズはCTUサイズ(wUnitTile=wCTU,hUnitTile=hCTU)であってもよく、オーバーラップ領域の幅wOVLPL[m]と高さhOVLP[n]は全て
同じ(例えばwOVLP=hOVLP=sOVLP)であってもよい。以下は、オーバーラップ領域の幅wOVLPL[m]、高さhOVLP[n]を全てsOVLPにセットした時の、図7のタイル情報の算出式の一例
である。
wT[m] = ceil((wPict+1)/wCTU/M)*wCTU (0<=m<=M-2)
wT[M-1] = wPict-ΣwCRP[m]+(M-1)*sOVLP (Σはm=0からM-2の総和)
hT[n] = ceil((hPict+1)/hCTU/N)*hCTU (0<=n<=N-2)
hT[N-1] = hPict-ΣhCRP[n]+(N-1)*sOVLP (Σはn=0からN-2の総和)
wCRP[M-1] = ceil(wT[M-1]/wCTU)*wCTU-wT[M-1]
hCRP[N-1] = ceil(hT[N-1]/hCTU)*hCTU-hT[N-1]
タイル情報算出部20101は、ピクチャ分割部A 20102とヘッダ情報生成部2011に、算出したタイル情報を出力する。
wT[M-1] = wPict-ΣwCRP[m]+(M-1)*sOVLP (Σはm=0からM-2の総和)
hT[n] = ceil((hPict+1)/hCTU/N)*hCTU (0<=n<=N-2)
hT[N-1] = hPict-ΣhCRP[n]+(N-1)*sOVLP (Σはn=0からN-2の総和)
wCRP[M-1] = ceil(wT[M-1]/wCTU)*wCTU-wT[M-1]
hCRP[N-1] = ceil(hT[N-1]/hCTU)*hCTU-hT[N-1]
タイル情報算出部20101は、ピクチャ分割部A 20102とヘッダ情報生成部2011に、算出したタイル情報を出力する。
ピクチャ分割部A 20102は、タイル情報算出部20101で算出したタイル情報を用いてピクチャをタイルに分割する。つまり、Tile[m][n]はピクチャ上でx座標はxTsmn..(xTsmn+wT[m]-1)、y座標はyTsmn..(yTsmn+hT[n]-1)の領域を抽出し、タイル符号化部2012に出力する。なお、ピクチャの右端、下端のタイルにwCRP[M-1]、hCRP[N-1]のクロップオフセット領域を付加した後、タイル符号化部2012に出力する。
(ヘッダ情報生成部)
ヘッダ情報生成部2011では、パラメータセットおよびタイル情報をシンタックスの表現に変換して符号化ストリーム生成部2013に出力する。タイル情報のシンタックス表現を下記に示す。
ヘッダ情報生成部2011では、パラメータセットおよびタイル情報をシンタックスの表現に変換して符号化ストリーム生成部2013に出力する。タイル情報のシンタックス表現を下記に示す。
num_tile_columns_minus1 = M-1
num_tile_rows_minus1 = N-1
uniform_spacing_flag = 1 (全てのwT[m]が等しく、全てのhT[n]が等しい場合)
column_width_minus1 = ceil(wT[0]/wUnitTile)-1
row_height_minus1 = ceil(hT[0]/hUnitTile)-1
uniform_spacing_flag = 0 (上記以外)
column_width_minus1[m] = ceil(wT[m]/wUnitTile)-1
row_height_minus1[n] = ceil(hT[n]/hUnitTile)-1
overlap_tiles_flag = 1
uniform_overlap_flag = 1
tile_overlap_width_div2 = sOVLP/2
tile_overlap_height_div2 = sOVLP/2
(タイル符号化部の構成)
次に、タイル符号化部2012a〜2012nの構成について説明する。図12は、タイル符号化部2012a〜2012nの1つである2012の構成を示すブロック図である。タイル符号化部2012は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、タイル符号化部2012はループフィルタ107が含まれない構成であってもよい。
num_tile_rows_minus1 = N-1
uniform_spacing_flag = 1 (全てのwT[m]が等しく、全てのhT[n]が等しい場合)
column_width_minus1 = ceil(wT[0]/wUnitTile)-1
row_height_minus1 = ceil(hT[0]/hUnitTile)-1
uniform_spacing_flag = 0 (上記以外)
column_width_minus1[m] = ceil(wT[m]/wUnitTile)-1
row_height_minus1[n] = ceil(hT[n]/hUnitTile)-1
overlap_tiles_flag = 1
uniform_overlap_flag = 1
tile_overlap_width_div2 = sOVLP/2
tile_overlap_height_div2 = sOVLP/2
(タイル符号化部の構成)
次に、タイル符号化部2012a〜2012nの構成について説明する。図12は、タイル符号化部2012a〜2012nの1つである2012の構成を示すブロック図である。タイル符号化部2012は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。なお、タイル符号化部2012はループフィルタ107が含まれない構成であってもよい。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域であるCU毎にPUの予測画像を生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。例えばインター予測の場合、予測画像生成部101は、対象PUを起点として動きベクトルが示す参照ピクチャ上の位置にあるブロックを読み出す。またイントラ予測の場合、イントラ予測モードで使用する隣接PUの画素値を参照ピクチャメモリ109から読み出し、PUの予測画像を生成する。予測画像生成部101は、読み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてPUの予測画像を生成する。予測画像生成部101は、生成したPUの予測画像を減算部102に出力する。
なお、予測画像生成部101は、タイル境界でのパディング処理を含め、既に説明した予測画像生成部308と同じ動作であり、説明を省略する。
減算部102は、予測画像生成部101から入力されたPUの予測画像の信号値を、画像Tの対応するPU位置の画素値から減算して、残差信号を生成する。減算部102は、生成した残差信号を変換・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された予測残差信号に対し周波数変換を行い、変換係数を算出する。変換・量子化部103は、算出した変換係数を量子化して量子化変換係数を求める。変換・量子化部103は、求めた量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
エントロピー符号化部104には、変換・量子化部103から量子化変換係数が入力され、予測パラメータ符号化部111から予測パラメータが入力される。
エントロピー符号化部104は、入力された分割情報、予測パラメータ、量子化変換係数等をエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆変換部105は、タイル復号部2002における、逆量子化・逆変換部311(図10)と同じであり、変換・量子化部103から入力された量子化変換係数を逆量子化して変換係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆変換を行い、残差信号を算出する。逆量子化・逆変換部105は、算出した残差信号を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたPUの予測画像の信号値と逆量子化・逆変換部105から入力された残差信号の信号値を画素毎に加算して、復号画像を生成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)を施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQTあるいはBT分割パラメータや予測パラメータやこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてPUの予測画像を生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、残差信号と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算
出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したRDコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから、符号化するための形式を導出し、エントロピー符号化部104に出力する。符号化するための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロック単位の動きベクトルである。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトルのようなインター予測パラメータを導出する。インター予測パラメータ符号化部112は、予測画像生成部101に出力する予測画像の生成に必要なパラメータを導出する構成として、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と一部同一の構成を含む。
また、イントラ予測パラメータ符号化部113は、予測画像生成部101に出力する予測画像の生成に必要な予測パラメータを導出する構成として、イントラ予測パラメータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
以上の処理により、タイルを独立に符号化しつつ、重複して符号化した複数のタイル境界を動画像復号装置側でフィルタ処理することにより、タイル歪を除去することができる。
(変形例1)
本願の変形例1は、ピクチャのタイルへの分割方法を図7に示す分割方法から図13に示す分割方法に変更したものである。図7と図13の違いは、図7は、オーバーラップ領域を含むタイルであり、図13は、オーバーラップ領域の他に、利用されない領域であるクロップオフセット領域を含むタイルである。つまり図13のタイルは、画面端のタイルを含む全てのタイルがクロップオフセット領域を含んでもよい。図13(b)は水平方向に隣接するTile[0][0]とTile[1][0]を示す図であるが、タイルはオーバーラップ領域(斜線部)とクロ
ップオフセット領域(横線部)を含む。また、タイルの幅wT[m]、高さhT[n]と、クロップオフセット領域の幅wCRP[m]、高さhCRP[n]は下記の関係がある。
本願の変形例1は、ピクチャのタイルへの分割方法を図7に示す分割方法から図13に示す分割方法に変更したものである。図7と図13の違いは、図7は、オーバーラップ領域を含むタイルであり、図13は、オーバーラップ領域の他に、利用されない領域であるクロップオフセット領域を含むタイルである。つまり図13のタイルは、画面端のタイルを含む全てのタイルがクロップオフセット領域を含んでもよい。図13(b)は水平方向に隣接するTile[0][0]とTile[1][0]を示す図であるが、タイルはオーバーラップ領域(斜線部)とクロ
ップオフセット領域(横線部)を含む。また、タイルの幅wT[m]、高さhT[n]と、クロップオフセット領域の幅wCRP[m]、高さhCRP[n]は下記の関係がある。
wT[m]+wCRP[m] = wTile[m] = wCTU*a (式TCS-1)
hT[n]+hCRP[n] = hTile[n] = hCTU*b
wTile[m] = TileWidthinCtbs[m]<<CtbLog2SizeY
hTile[n] = TileHeightinCtbs[n]<<CtbLog2SizeY
wCRP[m] = wTile[m]-wT[m] (式CRP-1)
hCRP[n] = hTile[n]-hT[n]
ここでwTile[m]、hTile[n]は符号化するタイルの幅と高さである。それ以外は実施形態2と同じである。
hT[n]+hCRP[n] = hTile[n] = hCTU*b
wTile[m] = TileWidthinCtbs[m]<<CtbLog2SizeY
hTile[n] = TileHeightinCtbs[n]<<CtbLog2SizeY
wCRP[m] = wTile[m]-wT[m] (式CRP-1)
hCRP[n] = hTile[n]-hT[n]
ここでwTile[m]、hTile[n]は符号化するタイルの幅と高さである。それ以外は実施形態2と同じである。
図13のようにピクチャをタイルに分割することで、タイルの左上座標をCTUの整数倍の
位置に設定することができる。従って、実施形態2の効果に加え、個々のタイルへのアク
セスが簡単になるという効果もある。
位置に設定することができる。従って、実施形態2の効果に加え、個々のタイルへのアク
セスが簡単になるという効果もある。
(CTUの整数倍によらないタイル分割の詳細)
さらに図21〜図24を用いて、CTUの整数倍によらないタイル分割の動作と効果を説明す
る。図21は、ピクチャ境界以外では、CTUの整数倍にタイルサイズを限定したピクチャ分
割を示す図である。図21(a)は、タイルサイズがCTUの整数倍であって、1920x1080のHD画
像を4x3のタイルに分割する図である。図に示すように、CTUサイズを例えば128x128とす
ると、タイルサイズがCTUの整数倍の場合、4x3のタイルに分割しようとしても等サイズに分割できない(512x384,384x384,512x312,384x312に分割される)ため、複数のプロセッサ
やハードウェアに処理を分割しても等しくロードバランスできない課題がある。図21(b)
は、各タイルのCTU分割を表す図である。ピクチャ境界にかからないタイルは整数個のCTUに分割される。ピクチャ境界のタイルをCTU単位で分割する時には、ピクチャ外の領域を
クロップオフセット領域として扱う。
さらに図21〜図24を用いて、CTUの整数倍によらないタイル分割の動作と効果を説明す
る。図21は、ピクチャ境界以外では、CTUの整数倍にタイルサイズを限定したピクチャ分
割を示す図である。図21(a)は、タイルサイズがCTUの整数倍であって、1920x1080のHD画
像を4x3のタイルに分割する図である。図に示すように、CTUサイズを例えば128x128とす
ると、タイルサイズがCTUの整数倍の場合、4x3のタイルに分割しようとしても等サイズに分割できない(512x384,384x384,512x312,384x312に分割される)ため、複数のプロセッサ
やハードウェアに処理を分割しても等しくロードバランスできない課題がある。図21(b)
は、各タイルのCTU分割を表す図である。ピクチャ境界にかからないタイルは整数個のCTUに分割される。ピクチャ境界のタイルをCTU単位で分割する時には、ピクチャ外の領域を
クロップオフセット領域として扱う。
図22(a)は、本実施形態の技術であって、1920x1080のHD画像を4x3のタイルに分割する
図である。4x3のタイルに分割する時に、全タイルを等サイズに分割できる(480x360に分
割される)ため、複数のプロセッサやハードウェアに等しくロードバランスできる効果を
有する。タイルサイズはピクチャ境界にかかわらずCTUの整数倍以外のサイズをとること
が可能である。図22(b)は各タイルのCTU分割を表す図である。CTUに分割する際、タイル
サイズがCTUサイズの整数倍でない場合は、タイルの外側にクロップオフセット領域を設
ける。特にTILE Bに示すように、CTUは各タイルの左上を基準として分割される。したが
って、CTUの左上座標は、CTUサイズの整数倍に限定されない。
図である。4x3のタイルに分割する時に、全タイルを等サイズに分割できる(480x360に分
割される)ため、複数のプロセッサやハードウェアに等しくロードバランスできる効果を
有する。タイルサイズはピクチャ境界にかかわらずCTUの整数倍以外のサイズをとること
が可能である。図22(b)は各タイルのCTU分割を表す図である。CTUに分割する際、タイル
サイズがCTUサイズの整数倍でない場合は、タイルの外側にクロップオフセット領域を設
ける。特にTILE Bに示すように、CTUは各タイルの左上を基準として分割される。したが
って、CTUの左上座標は、CTUサイズの整数倍に限定されない。
図23は、CTUの整数倍のタイルサイズにおけるスライスデータのシンタックス例である
。CTU単位の符号化データであるCTUデータのシンタックスcoding_tree_unitをスライスデータ内のCTUの個数分だけ呼び出す。coding_tree_unitにおいて、タイルサイズがCTUの整数倍の場合、ピクチャをCTU単位で分割するためピクチャ内CTUアドレスCtbAddrInRsから
一意にCTUの左上座標(xCtb,yCtb)を導出することができる。すなわち、coding_tree_unitにおいて、CTUの左上座標(xCtb,yCtb)は、ピクチャ内CTUアドレスCtbAddrInRsに基づいて、CTUの整数倍となるように1<<CtbLog2SizeY倍に設定される。ここでCtbAddrInTsは、タ
イル単位でのCTUのラスタスキャンを行うタイルスキャンアドレスである。CtbAddrInRsはピクチャ単位でのCTUのラスタスキャンアドレスを表し、0〜PicSizeInCtbsY-1である。
。CTU単位の符号化データであるCTUデータのシンタックスcoding_tree_unitをスライスデータ内のCTUの個数分だけ呼び出す。coding_tree_unitにおいて、タイルサイズがCTUの整数倍の場合、ピクチャをCTU単位で分割するためピクチャ内CTUアドレスCtbAddrInRsから
一意にCTUの左上座標(xCtb,yCtb)を導出することができる。すなわち、coding_tree_unitにおいて、CTUの左上座標(xCtb,yCtb)は、ピクチャ内CTUアドレスCtbAddrInRsに基づいて、CTUの整数倍となるように1<<CtbLog2SizeY倍に設定される。ここでCtbAddrInTsは、タ
イル単位でのCTUのラスタスキャンを行うタイルスキャンアドレスである。CtbAddrInRsはピクチャ単位でのCTUのラスタスキャンアドレスを表し、0〜PicSizeInCtbsY-1である。
PicSizeInCtbsY = PicWidthInCtbsY*PicHeightInCtbsY
図24は、本実施形態におけるスライスデータのシンタックス例である。本実施形態においても、CTU単位の符号化データであるCTUデータのシンタックスcoding_tree_unitをスライスデータ内のCTUの個数分だけ呼び出す。実施形態においては、ピクチャをCTU単位で分割しないために、ピクチャ内CTUアドレスCtbAddrInRsから一意にCTUの左上座標(xCtb,yCtb)を導出することができない。したがって、タイル左上座標に基づいてCTU座標を導出す
る。具体的には、対象タイルのIDがTileIdであり、対象タイルの左上座標が(TileAddrX[TileId],TileAddrY[TileId])で示される場合に、以下の式を用いて、CTU座標を導出する。
図24は、本実施形態におけるスライスデータのシンタックス例である。本実施形態においても、CTU単位の符号化データであるCTUデータのシンタックスcoding_tree_unitをスライスデータ内のCTUの個数分だけ呼び出す。実施形態においては、ピクチャをCTU単位で分割しないために、ピクチャ内CTUアドレスCtbAddrInRsから一意にCTUの左上座標(xCtb,yCtb)を導出することができない。したがって、タイル左上座標に基づいてCTU座標を導出す
る。具体的には、対象タイルのIDがTileIdであり、対象タイルの左上座標が(TileAddrX[TileId],TileAddrY[TileId])で示される場合に、以下の式を用いて、CTU座標を導出する。
xCtb = (CtbAddrInTile%TileWidthinCtbs[TildId])<<CtbLog2SizeY+TileAddrX[TileId]
yCtb = (CtbAddrInTile/TileWidthinCtbs[TildId])<<CtbLog2SizeY+TileAddrY[TileId]
ここでCtbAddrInTileはタイルの先頭を0とした、CTUのタイル内ラスタスキャン位置である。タイル先頭のCTUアドレスをfirstCtbAddrInTsとすると、CtbAddrInTileは下式で表される。ここで、CtbAddrInTsはピクチャを通してのタイルスキャンアドレスである。
yCtb = (CtbAddrInTile/TileWidthinCtbs[TildId])<<CtbLog2SizeY+TileAddrY[TileId]
ここでCtbAddrInTileはタイルの先頭を0とした、CTUのタイル内ラスタスキャン位置である。タイル先頭のCTUアドレスをfirstCtbAddrInTsとすると、CtbAddrInTileは下式で表される。ここで、CtbAddrInTsはピクチャを通してのタイルスキャンアドレスである。
CtbAddrInTile = CtbAddrInTs-firstCtbAddrInTile
すなわち、本実施形態においては、タイル内のCTUアドレスCtbAddrInTileから導出される、CTUのタイル内座標((CtbAddrInTile%TileWidthinCtbs[TildId])<<CtbLog2SizeY,(CtbAddrInTile/TileWidthinCtbs[TildId])<<CtbLog2SizeY)と、タイル左上位置のピクチャ内座標(TileAddrX[TileId],TileAddrY[TileId])とを用いて、CTU位置のピクチャ内座標を導出する。つまり、CTUの左上座標(xCtb,yCtb)を、CTUのタイル内座標とタイル先頭のピ
クチャ内座標の和から導出しても良い。
すなわち、本実施形態においては、タイル内のCTUアドレスCtbAddrInTileから導出される、CTUのタイル内座標((CtbAddrInTile%TileWidthinCtbs[TildId])<<CtbLog2SizeY,(CtbAddrInTile/TileWidthinCtbs[TildId])<<CtbLog2SizeY)と、タイル左上位置のピクチャ内座標(TileAddrX[TileId],TileAddrY[TileId])とを用いて、CTU位置のピクチャ内座標を導出する。つまり、CTUの左上座標(xCtb,yCtb)を、CTUのタイル内座標とタイル先頭のピ
クチャ内座標の和から導出しても良い。
ここで、TileIdのタイルの左上座標(TileAddrX[TileId],TileAddrY[TileId])は、既
に説明した(m,n)の位置のタイルの左上座標(xTsmn,yTsmn)を用いて、以下で表現してもよい。
に説明した(m,n)の位置のタイルの左上座標(xTsmn,yTsmn)を用いて、以下で表現してもよい。
TileId=n*M+m
TileAddrX[TileId]=xTsmn
TileAddrY[TileId]=yTsmn
TileWidthinCtbs[TileId]=ceil(wT[m]/wCTU)
TileHeightinCtbs[TileId]=ceil(hT[n]/hCTU)
すなわち、以下の式を用いて、CTU座標を導出してもよい。
TileAddrX[TileId]=xTsmn
TileAddrY[TileId]=yTsmn
TileWidthinCtbs[TileId]=ceil(wT[m]/wCTU)
TileHeightinCtbs[TileId]=ceil(hT[n]/hCTU)
すなわち、以下の式を用いて、CTU座標を導出してもよい。
xCtb = (CtbAddrInTile%ceil(wT[m]/wCTU))<<CtbLog2SizeY+xTsmn
yCtb = (CtbAddrInTile/ceil(wT[m]/hCTU))<<CtbLog2SizeY+yTsmn
また、column_width_minus1、row_height_minus1のシンタックスを用いてCTU座標を導
出してもよい。
yCtb = (CtbAddrInTile/ceil(wT[m]/hCTU))<<CtbLog2SizeY+yTsmn
また、column_width_minus1、row_height_minus1のシンタックスを用いてCTU座標を導
出してもよい。
xCtb = (CtbAddrInTile%(column_width_minus1[m]+1))<<CtbLog2SizeY+xTsmn
yCtb = (CtbAddrInTile/(column_width_minus1[m]+1))<<CtbLog2SizeY+yTsmn
上記の実施形態の構成では、CTUの座標をタイルの左上座標に基づいて導出するため、
ピクチャを分割した単位によらずにタイルを位置付けた場合にも、CTU単位の処理を行う
ことができる。後述するリージョンを導入する実施形態4以降の場合は、タイル左上座標を任意の場所に位置することができる本実施形態は特に効果がある。
yCtb = (CtbAddrInTile/(column_width_minus1[m]+1))<<CtbLog2SizeY+yTsmn
上記の実施形態の構成では、CTUの座標をタイルの左上座標に基づいて導出するため、
ピクチャを分割した単位によらずにタイルを位置付けた場合にも、CTU単位の処理を行う
ことができる。後述するリージョンを導入する実施形態4以降の場合は、タイル左上座標を任意の場所に位置することができる本実施形態は特に効果がある。
上記で説明した動画像符号化装置11、動画像復号装置31の動作を、図14のフローチャートで説明する。
図14(a)は動画像符号化装置11の処理の流れである。
タイル情報算出部20101は、タイルの個数やオーバーラップ領域を設定し、タイルに関
する情報(幅、高さ、左上座標、あればクロップオフセット領域)を算出する(S1500)。
する情報(幅、高さ、左上座標、あればクロップオフセット領域)を算出する(S1500)。
ピクチャ分割部A 20102は、図7あるいは図13のように、オーバーラップを許してピク
チャをタイルに分割する(S1502)。
チャをタイルに分割する(S1502)。
ヘッダ情報生成部2011は、タイル情報のシンタックスを生成し、SPS、PPS、スライスヘッダ等のヘッダ情報を生成する(S1504)。
タイル符号化部2012は、各タイルを符号化する(S1506)。
符号化ストリーム生成部2013は、ヘッダ情報と各タイルの符号化ストリームから、符号化ストリームTeを生成する(S1508)。
図14(b)は動画像復号装置31の処理の流れである。
ヘッダ情報復号部2001は、ヘッダを復号し、タイル情報(タイルの個数、幅、高さ、左上座標、オーバーラップ幅、高さ、あればクロップオフセット領域)を設定、あるいは算出する。また、外部から指定された表示領域をカバーするために必要なタイルの識別子を導出する(S1520)。
タイル復号部2002は、各タイルを復号する(S1522)。
平滑化処理部20031は、各タイルのオーバーラップ領域に対しフィルタ処理を施す(S1524)。
合成部20032は、フィルタ処理を施した領域を含む各タイルを合成し、ピクチャを生成
する(S1526)。
する(S1526)。
(実施形態2)
本願の実施形態2では、フィルタ処理について説明する。
本願の実施形態2では、フィルタ処理について説明する。
実施形態1のフィルタ処理では、複数個のオーバーラップ領域の画素値を単純平均することで、タイル境界に隣接する領域の画素値を算出した。実施形態2では、タイル境界からの距離に依存して重みを変更する重み付き和によりフィルタ処理を実施する例を説明する。
図9に示す、タイル合成部2003の平滑化処理部20031は以下を実施する。タイル合成部2003以外の動作は実施形態1で説明した動作と同じであり、説明を省略する。
平滑化処理部20031では、図8に示すように、タイル境界からの距離に応じて、重み係
数ww[x]を設定する。図8(a)は、図7において、水平方向に隣接する2つのタイルTile[m-1][n]とTile[m][n]のオーバーラップ領域のフィルタ処理を説明する図である。Tile[m][n]の重み係数はww[x]、Tile[m-1][n]の重み係数は1-ww[x]である。ここで、0<ww[x]<1で
ある。Tile[m][n]、Tile[m-1][n]において、オーバーラップ領域の外側の画素では重み係数ww[x]は0か1にセットされ、オーバーラップ領域の重み係数は線形補間で導出される。
数ww[x]を設定する。図8(a)は、図7において、水平方向に隣接する2つのタイルTile[m-1][n]とTile[m][n]のオーバーラップ領域のフィルタ処理を説明する図である。Tile[m][n]の重み係数はww[x]、Tile[m-1][n]の重み係数は1-ww[x]である。ここで、0<ww[x]<1で
ある。Tile[m][n]、Tile[m-1][n]において、オーバーラップ領域の外側の画素では重み係数ww[x]は0か1にセットされ、オーバーラップ領域の重み係数は線形補間で導出される。
ww[x] = 1/(wOVLP+1)*(x+1) (0<=x<wOVLP)
この重み係数を用いて、タイルTile[m-1][n]とTile[m][n]のオーバーラップ領域の画素値は下式で算出される。
この重み係数を用いて、タイルTile[m-1][n]とTile[m][n]のオーバーラップ領域の画素値は下式で算出される。
xx = wT[m-1]-wOVLP+x
Tile[m-1][n][xx][y] = Tile[m-1][n][xx][y]*(1-ww[x])+Tile[m][n][x][y]*ww[x]
(1<m<M-1)
上式では、Tile[m-1][n]の右側のオーバーラップ領域(図8(a)のOVLP_RIGHT)の画素値
を、フィルタ後の画素値に置き換えている。
Tile[m-1][n][xx][y] = Tile[m-1][n][xx][y]*(1-ww[x])+Tile[m][n][x][y]*ww[x]
(1<m<M-1)
上式では、Tile[m-1][n]の右側のオーバーラップ領域(図8(a)のOVLP_RIGHT)の画素値
を、フィルタ後の画素値に置き換えている。
同様に、図16(a)に示す垂直方向に隣接する2つのタイルのオーバーラップ領域のフィ
ルタ処理を説明する。図16(a)は、図13に示すタイルのうち、Tile[m][n-1]とTile[m][n]
を抽出した図である。Tile[m][n]の重み係数をwh[y]、Tile[m][n-1]の重み係数を1-wh[y](0<wh[y]<1)とすると、Tile[m][n] 、Tile[m][n-1]において、オーバーラップ領域の外側の画素では重み係数wh[y]は0か1にセットされ、オーバーラップ領域の重み係数は線形
補間で導出される。
ルタ処理を説明する。図16(a)は、図13に示すタイルのうち、Tile[m][n-1]とTile[m][n]
を抽出した図である。Tile[m][n]の重み係数をwh[y]、Tile[m][n-1]の重み係数を1-wh[y](0<wh[y]<1)とすると、Tile[m][n] 、Tile[m][n-1]において、オーバーラップ領域の外側の画素では重み係数wh[y]は0か1にセットされ、オーバーラップ領域の重み係数は線形
補間で導出される。
wh[y] = 1/(hOVLP+1)*(y+1) (0<=y<hOVLP)
この重み係数を用いて、タイルTile[m][n-1]とTile[m][n]のオーバーラップ領域の画素値は下式で算出される。
この重み係数を用いて、タイルTile[m][n-1]とTile[m][n]のオーバーラップ領域の画素値は下式で算出される。
yy = hT[n-1]-hOVLP+y
Tile[m][n-1][x][yy] = Tile[m][n-1][x][yy]*(1-wh[y])+Tile[m][n][x][y]*wh[y]
(1<n<N-1)
上式では、Tile[m][n-1]の下側のオーバーラップ領域(OVLP_BOTTOM)の画素値を、フィ
ルタ後の画素値に置き換えている。
Tile[m][n-1][x][yy] = Tile[m][n-1][x][yy]*(1-wh[y])+Tile[m][n][x][y]*wh[y]
(1<n<N-1)
上式では、Tile[m][n-1]の下側のオーバーラップ領域(OVLP_BOTTOM)の画素値を、フィ
ルタ後の画素値に置き換えている。
合成部20032では、各タイルの非オーバーラップ領域と平滑化処理部20031でフィルタ処理したオーバーラップ領域を合成して、合成画像(表示画像)Rec[][]を生成する。
Rec[xTsmn+x][yTsmn+y] = Tile[0][0][x][y] (m=n=0, 0<=x<wT[0], 0<=y<hT[0])
Rec[xTsmn+x][yTsmn+y] = Tile[m][0][x][y] (m!=0, n=0, wOVLP<=x<wT[m], 0<=y<hT[n])
Rec[xTsmn+x][yTsmn+y] = Tile[0][n][x][y] (m=0, n!=0, 0<=x<wT[m], hOVLP<=y<hT[n])
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (m!=0, n!=0, wOVLP<=x<wOVLP[m],
hOVLP<=y<hT[n])
フィルタ処理後の画素値は、Tile[m][n]の左側、あるいは上側のタイルのオーバーラップ領域(図8のOVLP_RIGHT、図16のOVLP_BOTTOM)にセットされたので、ピクチャを合成
する場合は、これらの画素値を用い、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)は使用しない。
Rec[xTsmn+x][yTsmn+y] = Tile[m][0][x][y] (m!=0, n=0, wOVLP<=x<wT[m], 0<=y<hT[n])
Rec[xTsmn+x][yTsmn+y] = Tile[0][n][x][y] (m=0, n!=0, 0<=x<wT[m], hOVLP<=y<hT[n])
Rec[xTsmn+x][yTsmn+y] = Tile[m][n][x][y] (m!=0, n!=0, wOVLP<=x<wOVLP[m],
hOVLP<=y<hT[n])
フィルタ処理後の画素値は、Tile[m][n]の左側、あるいは上側のタイルのオーバーラップ領域(図8のOVLP_RIGHT、図16のOVLP_BOTTOM)にセットされたので、ピクチャを合成
する場合は、これらの画素値を用い、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)は使用しない。
なお、Tile[m][n]の左側、あるいは上側のタイルのオーバーラップ領域(図8のOVLP_RIGHT、図16のOVLP_BOTTOM)の画素値を、フィルタ処理後の画素値に置き換えるのではな
く、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)の画素値を、フィルタ処理後の画素値に置き換えてもよい。その場合、ピク
チャを合成する場合は、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)の画素値を用い、Tile[m][n]の左側、あるいは下側のタ
イルのオーバーラップ領域(図8のOVLP_RIGHT、図16のOVLP_BOTTOM)は使用しない。
これ以外に、フィルタ処理後の画素値を、各タイルの画像ではなくRec[][]に直接格納し
てもよい。
く、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)の画素値を、フィルタ処理後の画素値に置き換えてもよい。その場合、ピク
チャを合成する場合は、Tile[m][n]の左側、あるいは上側のオーバーラップ領域(図8のOVLP_LEFT、図16のOVLP_ABOVE)の画素値を用い、Tile[m][n]の左側、あるいは下側のタ
イルのオーバーラップ領域(図8のOVLP_RIGHT、図16のOVLP_BOTTOM)は使用しない。
これ以外に、フィルタ処理後の画素値を、各タイルの画像ではなくRec[][]に直接格納し
てもよい。
また、上式では重み係数ww[]、wh[]を算出したが、オーバーラップ領域の幅と高さが定数の場合は、あらかじめ作製したテーブルを参照して重み係数を求めてもよい。重み係数のテーブルの一例を図15(a)に示す。例えば、wOVLP=4の場合、ww[]={0.2,0.4,0.6,0.8}である。
あるいは、重み係数を、除算を用いず、乗算とシフト演算で近似した値に置き換えてもよい。重み係数を正数WGT[]とシフトWSHTで表したテーブルの一例を図15(b)に示す。例えばhOVLP=4の場合、wh[]={0.125,0.375,0.625,0.875}={1>>3,3>>3,5>>3,7>>3}であり、WGT[]={2,3,5,7}、WSHT=3である。つまり、重み係数は、WGT[]>>WSHTで表すことができる。
前記の例の場合、WSHT=3である。
前記の例の場合、WSHT=3である。
なお、重みは線形補間以外の方法で求めてもよく、座標に基づいて補間式やテーブルを変更してもよい。
図8(b)と図16(b)は、クロップオフセット領域の幅あるいは高さがタイルの幅あるいは高さに含まれる例を示した図13における、オーバーラップ領域のフィルタ処理を説明する
図である。クロップオフセット領域はフィルタ処理やピクチャの合成・表示の対象ではないので、図13のタイルのフィルタ処理は、図8(b)と図16(b)に示すようにオーバーラップ領域に対してのみ実施され、図8(a)と図16(a)のオーバーラップ領域に対する処理と同じである。従って実施形態2の説明をそのまま利用することができる。
図である。クロップオフセット領域はフィルタ処理やピクチャの合成・表示の対象ではないので、図13のタイルのフィルタ処理は、図8(b)と図16(b)に示すようにオーバーラップ領域に対してのみ実施され、図8(a)と図16(a)のオーバーラップ領域に対する処理と同じである。従って実施形態2の説明をそのまま利用することができる。
(追加説明1)
追加説明1では、実施形態1、2で述べたタイルに対して、別の表現方法を用いて、ピクチャのタイル分割方法、タイルのCTU分割方法を再度説明する。実施形態1、2では、タイルを、タイル、オーバーラップ領域、クロップオフセット領域から構成される領域として説明した。追加説明1では、タイルを、タイルアクティブ領域とタイル拡張領域からなる領域として説明する。タイルアクティブ領域は、オーバーラップ領域を含まない正味の表示領域である。タイル拡張領域は、オーバーラップ領域とクロップオフセット領域から構成される領域である。
追加説明1では、実施形態1、2で述べたタイルに対して、別の表現方法を用いて、ピクチャのタイル分割方法、タイルのCTU分割方法を再度説明する。実施形態1、2では、タイルを、タイル、オーバーラップ領域、クロップオフセット領域から構成される領域として説明した。追加説明1では、タイルを、タイルアクティブ領域とタイル拡張領域からなる領域として説明する。タイルアクティブ領域は、オーバーラップ領域を含まない正味の表示領域である。タイル拡張領域は、オーバーラップ領域とクロップオフセット領域から構成される領域である。
タイル拡張領域の有無を示すフラグとして、図25(a)のtile_info()で通知するoverlap_tiles_flagを読み替えた、cropoffset_flagを使用してもよい。cropoffset_flagが0の場合はタイル拡張領域が存在せず、それ以外の場合はタイル拡張領域が存在することを表す。
図26は、ピクチャを、CTUの倍数によらずにタイルに分割する一例を示す。図26(a)に示すように、ピクチャは、CTUの倍数によらないタイル(タイルアクティブ領域)に分割さ
れる。タイルアクティブ領域はピクチャを重複することなく構成する領域であり、言い換えると、ピクチャは、重複することなく「タイルアクティブ領域」に分割される。タイルアクティブ領域の幅と高さをwAT[m]、hAT[n]、ピクチャの幅と高さをwPict、hPictとすると、下式で表すことができる。
れる。タイルアクティブ領域はピクチャを重複することなく構成する領域であり、言い換えると、ピクチャは、重複することなく「タイルアクティブ領域」に分割される。タイルアクティブ領域の幅と高さをwAT[m]、hAT[n]、ピクチャの幅と高さをwPict、hPictとすると、下式で表すことができる。
wPict = ΣwAT[m] (Σはm=0..M-1の総和)
hPict = ΣhAT[n] (Σはn=0..N-1の総和)
uniform_spacing_flagが0でない場合、つまり、タイルアクティブ領域がほぼ等サイズの場合、下式で表すことができる。M、Nはタイルの水平および垂直方向の個数である。
hPict = ΣhAT[n] (Σはn=0..N-1の総和)
uniform_spacing_flagが0でない場合、つまり、タイルアクティブ領域がほぼ等サイズの場合、下式で表すことができる。M、Nはタイルの水平および垂直方向の個数である。
for(m=0; m<M; m++ )
wAT[m] = ((m+1)*wPict)/M-(m*wPict)/M (式TAS-1)
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hPict)/N-(n*hPict)/N
あるいは、タイルアクティブ領域はタイル単位のサイズ(タイルの最小サイズ)wUnitTile、hUnitTileの倍数として、下式で表してもよい。
wAT[m] = ((m+1)*wPict)/M-(m*wPict)/M (式TAS-1)
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hPict)/N-(n*hPict)/N
あるいは、タイルアクティブ領域はタイル単位のサイズ(タイルの最小サイズ)wUnitTile、hUnitTileの倍数として、下式で表してもよい。
wAT[m] = floor(wPict/M/wUnitTile)*wUnitTile (0<=m<M) (式TAS-2)
hAT[n] = floor(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは
wAT[m] = ceil(wPict/M/wUnitTile)*wUnitTile (0<=m<M)(式TAS-3)
hAT[n] = ceil(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは
for(m=0; m<M; m++ )
wAT[m] = ((m+1)*wPict/M/wUnitTile-m*wPict/M/wUnitTile)*wUnitTIle (式TAS-4)
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hPict/N/hUnitTile-n*hPict/N/hUnitTile)*hUnitTile
uniform_spacing_flagが0の場合、タイルアクティブ領域のサイズは下式で表すことが
できる。
hAT[n] = floor(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは
wAT[m] = ceil(wPict/M/wUnitTile)*wUnitTile (0<=m<M)(式TAS-3)
hAT[n] = ceil(hPict/N/hUnitTile)*hUnitTile (0<=n<N)
あるいは
for(m=0; m<M; m++ )
wAT[m] = ((m+1)*wPict/M/wUnitTile-m*wPict/M/wUnitTile)*wUnitTIle (式TAS-4)
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hPict/N/hUnitTile-n*hPict/N/hUnitTile)*hUnitTile
uniform_spacing_flagが0の場合、タイルアクティブ領域のサイズは下式で表すことが
できる。
wAT[m] = column_width_in_luma_samples_div2_minus1[m]*2 (式TAS-5)
hAT[n] = row_height_in_luma_samples_div2_minus1[n]*2
タイルを符号化する場合、実際にはタイルはCTU単位で符号化される。このとき「タイ
ルアクティブ領域」に拡張領域を加えた画像を符号化してもよい。このときに追加される拡張領域を「タイル拡張領域」と呼ぶ。「タイル拡張領域」は、実施形態1、2でオーバーラップ領域、クロップオフセット領域と名付けられた領域に相当する。タイル拡張領域は、必ずしも復号及び出力に利用されない領域であり、復号後に破棄される領域として扱ってもよい。また、タイル拡張領域の一部または全てを後続のピクチャの参照(復号)に利用しても良いし、出力画像の生成に利用してもよい。「タイルアクティブ領域」と「タイル拡張領域」とを合わせて「タイル符号化領域」と呼ぶ。「タイル符号化領域」は実際に符号化される領域である。
hAT[n] = row_height_in_luma_samples_div2_minus1[n]*2
タイルを符号化する場合、実際にはタイルはCTU単位で符号化される。このとき「タイ
ルアクティブ領域」に拡張領域を加えた画像を符号化してもよい。このときに追加される拡張領域を「タイル拡張領域」と呼ぶ。「タイル拡張領域」は、実施形態1、2でオーバーラップ領域、クロップオフセット領域と名付けられた領域に相当する。タイル拡張領域は、必ずしも復号及び出力に利用されない領域であり、復号後に破棄される領域として扱ってもよい。また、タイル拡張領域の一部または全てを後続のピクチャの参照(復号)に利用しても良いし、出力画像の生成に利用してもよい。「タイルアクティブ領域」と「タイル拡張領域」とを合わせて「タイル符号化領域」と呼ぶ。「タイル符号化領域」は実際に符号化される領域である。
タイル拡張領域のうち、参照、復号に利用される領域をオーバーラップ領域、参照、復号されない領域をクロップオフセット領域(タイル無効領域)と呼ぶ。実施形態1では、タイル拡張領域の全てを参照、復号する場合を説明しており、タイル拡張領域はオーバーラップ領域である。変形例1では、タイル拡張領域の一部をオーバーラップ領域として参照、復号に利用し、残る一部をクロップオフセット領域として参照、復号に利用しない例を説明した。
なお、「タイル符号化領域」は、復号・出力に利用される「タイル有効領域」と、復号・出力に利用されないタイルクロップ領域(タイル無効領域)から構成されると言い換えてもよい。タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域とオーバーラップ領域から構成される。
なお、「タイル符号化領域」は、復号・出力に利用される「タイル有効領域」と、復号・出力に利用されないタイルクロップ領域(タイル無効領域)から構成されると言い換えてもよい。タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域とオーバーラップ領域から構成される。
図26(b)は、実際に符号化されるタイル(タイル符号化領域とも呼ぶ)について説明す
る図である。図26(b)に示すようにタイル(タイル符号化領域)は、左上座標(xTsmn,yTsmn)、幅wTile[m]、高さhTile[n]の矩形であり、タイルアクティブ領域Tile[m][n](幅wAT[m]、高さhAT[n]の矩形)とタイル拡張領域(タイルアクティブ領域以外のタイル、幅wCRP[m]、高さhCRP[n]の領域)からなる。
る図である。図26(b)に示すようにタイル(タイル符号化領域)は、左上座標(xTsmn,yTsmn)、幅wTile[m]、高さhTile[n]の矩形であり、タイルアクティブ領域Tile[m][n](幅wAT[m]、高さhAT[n]の矩形)とタイル拡張領域(タイルアクティブ領域以外のタイル、幅wCRP[m]、高さhCRP[n]の領域)からなる。
wTile[m]=wAT[m]+wCRP[m]
hTile[n]=hAT[n]+hCRP[n]
あるいは、タイル符号化領域は、タイルアクティブ領域のCTU単位の幅TileWidthinCtbs[m]と高さTileHeightinCtbs[m]を用いて、下式で表現してもよい。
hTile[n]=hAT[n]+hCRP[n]
あるいは、タイル符号化領域は、タイルアクティブ領域のCTU単位の幅TileWidthinCtbs[m]と高さTileHeightinCtbs[m]を用いて、下式で表現してもよい。
TileWidthinCtbs[m] = ceil(wAT[m]/M)
TileHeightinCtbs[n] = ceil(hAT[n]/N)
wTile[m] = TileWidthinCtbs[m]<<CtbLog2SizeY
hTile[n] = TileHeightinCtbs[n]<<CtbLog2SizeY
図26(c)は、タイルをCTUに分割する一例である。タイルの左上座標を開始点として、CTUに分割される。図26(c)に示すように、タイルアクティブ領域のサイズはCTUサイズの整
数倍であってもよいし、CTUサイズの整数倍でなくてもよい。ピクチャはタイルアクティ
ブ領域に分割されるため、タイル単位で(m,n)の位置にあるタイルの左上座標(xTsmn,yTsmn)は、タイルアクティブ領域(wAT[i],hAT[i])の和と一致する。
TileHeightinCtbs[n] = ceil(hAT[n]/N)
wTile[m] = TileWidthinCtbs[m]<<CtbLog2SizeY
hTile[n] = TileHeightinCtbs[n]<<CtbLog2SizeY
図26(c)は、タイルをCTUに分割する一例である。タイルの左上座標を開始点として、CTUに分割される。図26(c)に示すように、タイルアクティブ領域のサイズはCTUサイズの整
数倍であってもよいし、CTUサイズの整数倍でなくてもよい。ピクチャはタイルアクティ
ブ領域に分割されるため、タイル単位で(m,n)の位置にあるタイルの左上座標(xTsmn,yTsmn)は、タイルアクティブ領域(wAT[i],hAT[i])の和と一致する。
xTsmn=ΣwAT[i] (Σはi=0..m-1の総和)(式TLA-2)
yTsmn=ΣhAT[i] (Σはi=0..n-1の総和)
タイルアクティブ領域とオーバーラップ領域を足したタイル有効領域のサイズも、CTU
サイズの整数倍であってもよいし、CTUサイズの整数倍でなくてもよい。
yTsmn=ΣhAT[i] (Σはi=0..n-1の総和)
タイルアクティブ領域とオーバーラップ領域を足したタイル有効領域のサイズも、CTU
サイズの整数倍であってもよいし、CTUサイズの整数倍でなくてもよい。
また、図27は、タイル拡張領域がオーバーラップ領域とクロップオフセット領域からなる一例である。図27において、オーバーラップ領域はタイルアクティブ領域の外側の斜線領域である。オーバーラップ領域は隣接するタイルのタイルアクティブ領域と重なり合う。オーバーラップ領域の幅wOVLP[m]、高さhOVLP[n]とタイル拡張領域の幅wCRP[m]、高さhCRP[n]は下記の関係がある。
0<=wOVLP[m]<=wCRP[m]
0<=hOVLP[n]<=hCRP[n]
(まとめ)
タイル符号化領域(wTile,hTile)は、ピクチャを分割する単位であるタイルアクティブ
領域(wAT,hAT)と隠れている領域(タイル拡張領域)から構成される。
0<=hOVLP[n]<=hCRP[n]
(まとめ)
タイル符号化領域(wTile,hTile)は、ピクチャを分割する単位であるタイルアクティブ
領域(wAT,hAT)と隠れている領域(タイル拡張領域)から構成される。
あるいは、タイル符号化領域(wTile,hTile)は、復号・出力に利用されるタイル有効領
域(wT, hT)と、復号・出力に利用されないクロップオフセット領域、すなわちタイル無効領域(wCRP,hCRP)から構成される、と言い換えてもよい。
域(wT, hT)と、復号・出力に利用されないクロップオフセット領域、すなわちタイル無効領域(wCRP,hCRP)から構成される、と言い換えてもよい。
オーバーラップ領域は、ピクチャを分割する単位であるタイルアクティブ領域(wAT,hAT)の外側だが、復号・出力に利用されるタイル有効領域(wT,hT)には含まれる。
よって、タイル有効領域は
wT[m] = wAT[m]+wOVLP[m]
hT[n] = hAT[n]+hOVLP[n]
また、さらにクロップ領域を含めて、タイル符号化領域となる
wTile[m] = wT[m]+wCRP[m]= wAT[m]+wOVLP[m]+wCRP[m]
hTile[n] = hT[n]+hCRP[n] = hAT[n]+hOVLP[n]+hCRP[n]
(CTU単位処理の一例)
図28(a)はスライスデータslice_segment_data()のシンタックスの一例である。シンタ
ックスを参照しながら、動画像符号化装置11、動画像復号装置31の動作を以下に説明する。
wT[m] = wAT[m]+wOVLP[m]
hT[n] = hAT[n]+hOVLP[n]
また、さらにクロップ領域を含めて、タイル符号化領域となる
wTile[m] = wT[m]+wCRP[m]= wAT[m]+wOVLP[m]+wCRP[m]
hTile[n] = hT[n]+hCRP[n] = hAT[n]+hOVLP[n]+hCRP[n]
(CTU単位処理の一例)
図28(a)はスライスデータslice_segment_data()のシンタックスの一例である。シンタ
ックスを参照しながら、動画像符号化装置11、動画像復号装置31の動作を以下に説明する。
図中、coding_tree_unit()はCTUのシンタックスを示す。CtbAddrInTs、CtbAddrInRs、CtbAddrInTileはCTUのアドレスであり、CtbAddrInTsはピクチャ内のタイルスキャン順のCTUアドレス、CtbAddrInRsはピクチャ内のラスタスキャン順のCTUアドレス、CtbAddrInTileはタイル内のタイルスキャン順のCTUアドレスである。各タイルの最後のCTUの後ではend_of_subset_one_bitに1をセットし、符号化データをバイトアラインする。
図28(b)は、CTUのシンタックスcoding_tree_unit()の一例である。タイル(タイル符号化領域)の左上座標がCTUの整数倍の位置ではない場合に対応するため、CTUの左上座標(xCtb,yCtb)を各タイルで導出する。具体的には、タイル内アドレスCtbAddrInTileから導出されるCTUのタイル内座標((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY, (CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)に、タイル左上座標(TileAddrX[TileId],TileAddrY[TileId])を加算することで、ピクチャ内におけるタイルのCTUの
座標を導出する
xCtb = ((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrX[TileId]
yCtb = ((CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrY[TileId]
ここで、TileWidthinCtbs[]はCTU単位のタイル有効領域の幅、wT[]とhT[]はタイル有効領域の画素単位の幅と高さ、CtbLog2SizeYはCTUサイズの対数値、(TileAddrX,TileAddrY)
は画素単位のタイルの左上座標である。なおタイル有効領域の幅と高さ(wT[],hT[])の代
わりにタイル符号化領域の幅と高さ(wTile[],hTile[])を用いても良い。
座標を導出する
xCtb = ((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrX[TileId]
yCtb = ((CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrY[TileId]
ここで、TileWidthinCtbs[]はCTU単位のタイル有効領域の幅、wT[]とhT[]はタイル有効領域の画素単位の幅と高さ、CtbLog2SizeYはCTUサイズの対数値、(TileAddrX,TileAddrY)
は画素単位のタイルの左上座標である。なおタイル有効領域の幅と高さ(wT[],hT[])の代
わりにタイル符号化領域の幅と高さ(wTile[],hTile[])を用いても良い。
図29はブロック(CU又はCTU)を四分木分割するシンタックスcoding_quadtree()、図30はブロックを二分木分割するシンタックスcoding_binarytree()の一例である。図29におい
て、タイルの左上座標がCTUの整数倍の位置に対応しないため、下式のように、タイルを
用いる場合にはCTUの左上座標(xCtb,yCtb)とタイルサイズを考慮して、さらなる四分木分割を実施するか否かを示すsplit_cu_flagを通知する。
て、タイルの左上座標がCTUの整数倍の位置に対応しないため、下式のように、タイルを
用いる場合にはCTUの左上座標(xCtb,yCtb)とタイルサイズを考慮して、さらなる四分木分割を実施するか否かを示すsplit_cu_flagを通知する。
if (x0+(1<<log2CbSize)-xTile<=wT && y0+(1<<log2CbSize)-yTile<=hT && log2CbSize>MinCbLog2SizeY)
split_cu_flag[x0][y0]
ここで、(x0,y0)はブロックの左上座標、(xTile,yTile)はタイルの左上座標、log2CbSizeはブロックサイズの対数値、wTとhTはタイル有効領域(もしくはタイル符号化領域)の幅と高さ、MinCbLog2SizeYはブロックの最小サイズの対数値である。
split_cu_flag[x0][y0]
ここで、(x0,y0)はブロックの左上座標、(xTile,yTile)はタイルの左上座標、log2CbSizeはブロックサイズの対数値、wTとhTはタイル有効領域(もしくはタイル符号化領域)の幅と高さ、MinCbLog2SizeYはブロックの最小サイズの対数値である。
ブロックの右端の座標x0+(1<<log2CbSize)、下端の座標y0+(1<<log2CbSize)が、タイル有効領域の右端の座標xTile+wTと下端の座標yTile+hTよりも小さい場合、対象ブロックはタイル有効領域内に存在する。ブロックがタイル内に存在し、ブロックサイズが最小値よりも大きい場合(log2CbSize>MinCbLog2SizeY)、ブロックをさらに分割するか否かを示す
フラグsplit_cu_flagを通知する。ブロックをさらに四分木分割する場合、split_cu_flagを1にセットし、ブロックを四分木分割しない場合、split_cu_flagを0にセットする。
そして、split_cu_flagが1の場合、再帰的にcoding_quadtree()を呼び出し、さらに四分木分割するか否かを通知する。split_cu_flagが0の場合、coding_binarytree()を呼び出し二分木分割するか否かを通知する(復号する)。
フラグsplit_cu_flagを通知する。ブロックをさらに四分木分割する場合、split_cu_flagを1にセットし、ブロックを四分木分割しない場合、split_cu_flagを0にセットする。
そして、split_cu_flagが1の場合、再帰的にcoding_quadtree()を呼び出し、さらに四分木分割するか否かを通知する。split_cu_flagが0の場合、coding_binarytree()を呼び出し二分木分割するか否かを通知する(復号する)。
また、図29に示すように、4分木分割で得られる4つのブロックの何れかがタイル有効領域外(もしくはタイル符号化領域外)にある場合には、そのブロックを符号化しない。具体的には、4分木分割で得られた、(x1,y0)に位置するブロックであるcoding_quadtree(x1,y0,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)は、x1がタイル内に位置する場合に符号化あるいは復号される。
if (x1-xTile<wT)
coding_quadtree(x1,y0,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
同様に、(x0,y1)に位置するブロックであるcoding_quadtree(x0,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)は、y1がタイル内に位置する場合に符号化あるいは復号される
。
coding_quadtree(x1,y0,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
同様に、(x0,y1)に位置するブロックであるcoding_quadtree(x0,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)は、y1がタイル内に位置する場合に符号化あるいは復号される
。
if (y1-yTile<hT)
coding_quadtree(x0,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
同様に、(x1,y1)に位置するブロックであるcoding_quadtree(x1,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)は、x1,y1がタイル内に位置する場合に符号化あるいは復号される。
coding_quadtree(x0,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
同様に、(x1,y1)に位置するブロックであるcoding_quadtree(x1,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)は、x1,y1がタイル内に位置する場合に符号化あるいは復号される。
if (x1-xTile<wT && y1-yTile<hT)
coding_quadtree(x1,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
なお、タイルを利用しない場合には、(xTile,yTile)=(0,0)、(wT,hT)=(pic_width_in_luma_samples, pic_height_in_luma_samples)にセットし、以下の条件で四分木分割を実施するか否かを示すsplit_cu_flagを通知してもよい。
coding_quadtree(x1,y1,log2CbSize-1,cqtDepth+1,wT,hT,xTile,yTile)
なお、タイルを利用しない場合には、(xTile,yTile)=(0,0)、(wT,hT)=(pic_width_in_luma_samples, pic_height_in_luma_samples)にセットし、以下の条件で四分木分割を実施するか否かを示すsplit_cu_flagを通知してもよい。
if (x0+(1<<log2CbSize)<=pic_width_in_luma_samples && y0+(1<<log2CbSize)<=pic_height_in_luma_samples && log2CbSize>MinCbLog2SizeY)
二分木の場合も同様に、タイルを用いる場合にはCTUの左上座標(xCtb,yCtb)とタイルサイズを考慮して、さらなる2分木分割を実施するか否かを示すsplit_bt_modeを通知する
(復号する)。具体的には、以下の式で二分木分割を実施するか否かを示すsplit_bt_modeを通知してもよい。
二分木の場合も同様に、タイルを用いる場合にはCTUの左上座標(xCtb,yCtb)とタイルサイズを考慮して、さらなる2分木分割を実施するか否かを示すsplit_bt_modeを通知する
(復号する)。具体的には、以下の式で二分木分割を実施するか否かを示すsplit_bt_modeを通知してもよい。
if (((1<<log2CbHeight)>minBTSize || (1<<log2CbWidth)>minBTSize) && ((1<<log2CbWidth)<=maxBTSize && (1<<log2CbHeight)<=maxBTSize) && (x0+(1<<log2CbWidth)-xTile<=wT && y0+(1<<log2CbHeight)-yTile<=hT) && cbtDepth<maxBTDepth)
split_bt_mode
つまり、ブロックサイズが2分木分割可能な最小サイズminBTSizeより大きく、2分木分
割可能な最大サイズmaxBTSize以下であり、かつ、2分木した時の下側あるいは右側のブ
ロックの左上座標がタイル内に位置し、2分木分割の深度が分割可能な最大深度より小さい場合に、2分木分割するか否かと2分木の方向を示すsplit_bt_modeを通知する。ブロ
ックをさらに二分木分割する場合、split_bt_flagを1にセットし、ブロックを二分木分
割しない場合、split_bt_modeを0にセットする。そして、split_bt_modeが1の場合、再帰的にcoding_binarytree()を呼び出し、さらに二分木分割するか否かを通知する。split_bt_modeが0の場合、coding_unit(x0,y0,log2CbWidth,log2CbHeight)を呼び出し、ブロ
ックを実際に符号化あるいは復号する。
split_bt_mode
つまり、ブロックサイズが2分木分割可能な最小サイズminBTSizeより大きく、2分木分
割可能な最大サイズmaxBTSize以下であり、かつ、2分木した時の下側あるいは右側のブ
ロックの左上座標がタイル内に位置し、2分木分割の深度が分割可能な最大深度より小さい場合に、2分木分割するか否かと2分木の方向を示すsplit_bt_modeを通知する。ブロ
ックをさらに二分木分割する場合、split_bt_flagを1にセットし、ブロックを二分木分
割しない場合、split_bt_modeを0にセットする。そして、split_bt_modeが1の場合、再帰的にcoding_binarytree()を呼び出し、さらに二分木分割するか否かを通知する。split_bt_modeが0の場合、coding_unit(x0,y0,log2CbWidth,log2CbHeight)を呼び出し、ブロ
ックを実際に符号化あるいは復号する。
また、図30に示すように、二分木分割で得られる2つのブロックの何れかがタイル有効領域外(もしくはタイル符号化領域外)にある場合には、そのブロックを符号化しない。具体的には、上下2分割で得られるブロックのうち、(x0,y1)に位置するブロックであるcoding_binarytree(x0,y1,log2CbWidth,log2CbHeight-1,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)は、y1がタイル内に位置する場合に符号化あるいは復号される。
if (y1-yTile<hT)
coding_binarytree(x0,y1,log2CbWidth,log2CbHeight-1,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)
同様に左右2分割で得られるブロックのうち、(x1,y0)に位置するブロックであるcoding_binarytree(x1,y0,log2CbWidth-1,log2CbHeight,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)は、x1がタイル内に位置する場合に符号化あるいは復号される。
coding_binarytree(x0,y1,log2CbWidth,log2CbHeight-1,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)
同様に左右2分割で得られるブロックのうち、(x1,y0)に位置するブロックであるcoding_binarytree(x1,y0,log2CbWidth-1,log2CbHeight,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)は、x1がタイル内に位置する場合に符号化あるいは復号される。
if (x1-xTile<wT)
coding_binarytree(x1,y0,log2CbWidth-1,log2CbHeight,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)
実施形態1、2及び上記で説明した座標計算処理、及び分割処理により、ピクチャをCTUの倍数によらないサイズのタイルに分割することができる。
coding_binarytree(x1,y0,log2CbWidth-1,log2CbHeight,cqtDepth,cbtDepth+1,wT,hT,xTile,yTile)
実施形態1、2及び上記で説明した座標計算処理、及び分割処理により、ピクチャをCTUの倍数によらないサイズのタイルに分割することができる。
(実施形態3)
本願の実施形態3では、360度映像やVR映像のように表示(プロジェクション画像)が
球面であるような場合、伝送・蓄積時に画像データを符号化するために、2次元画像にマッピングした画像の処理について説明する。
本願の実施形態3では、360度映像やVR映像のように表示(プロジェクション画像)が
球面であるような場合、伝送・蓄積時に画像データを符号化するために、2次元画像にマッピングした画像の処理について説明する。
プロジェクション画像をパッキングして2次元画像を生成する一例を図17、図18、図19に示す。図17(a)、(c)はERP(Equi Rectangular Projection:正距円筒図法)Formatであり、赤道から離れるに従って、領域を横方向に拡大することで、球を矩形として表現する。図17(c)はcube formatである。図17(c)の縦線領域は画像データの存在しない領域であ
る。図17(a)のような2次元画像へのマッピング、及び、パッキングは、動画像符号化装
置11に入力する前に、前処理として画像に施される。図11のピクチャ分割部2010は、図17(a)では矩形1〜11に、図17(c)では矩形0〜5に対し、各々タイルを割り当て、各タイルは
タイル符号化部2012によって符号化される。
る。図17(a)のような2次元画像へのマッピング、及び、パッキングは、動画像符号化装
置11に入力する前に、前処理として画像に施される。図11のピクチャ分割部2010は、図17(a)では矩形1〜11に、図17(c)では矩形0〜5に対し、各々タイルを割り当て、各タイルは
タイル符号化部2012によって符号化される。
あるいは、例えば、図18はcubic like ERP Formatであり、図18(a)に示すように、赤道領域を5と6に分割する。そして、回転させて生成した極領域に対応する矩形と共にパッキングし、図18(b)のような矩形領域を、前処理において生成する。そして、図18(b)では、図11のピクチャ分割部2010は、例えば、矩形6、三角形領域1〜4で構成される矩形、矩形5、三角形領域7〜10で構成される矩形を各々タイルに割り当て、各タイルはタイル符号化
部2012によって符号化される。
部2012によって符号化される。
図19はSPP(Segmented Sphere Projection) Formatであり、極領域を図19(a)の円領域1と2で表現し、赤道領域を図19(a)の矩形3〜6で表現する。円の外側の縦線領域は画像デ
ータのない無効領域である。図11のピクチャ分割部2010は、円領域を拡張した矩形1、2と、矩形3〜6に対し、各々タイルを割り当て、各タイルはタイル符号化部2012によって符号化される。
ータのない無効領域である。図11のピクチャ分割部2010は、円領域を拡張した矩形1、2と、矩形3〜6に対し、各々タイルを割り当て、各タイルはタイル符号化部2012によって符号化される。
このように球面を2次元にマッピングした画像の符号化では、図4(d)に示すように、
画像をタイルに分割する時に、各タイル行に含まれるタイルの個数が等しい場合がある。一方、図17(a)、図17(c)や図18(b)に示すように、画像をタイルに分割する時に、各タイ
ル行に含まれるタイルの個数が等しくない場合がある。あるいは各タイル列に含まれるタイルの個数が等しくない場合がある。このような場合、タイル情報のシンタックスは、図5(i)に示すように、タイルの垂直方向の個数に関する情報(num_tile_rows_minus1)を
通知し、タイル行毎にタイルの高さに関する情報(row_height_minus1[i])、タイルの水平方向の個数に関する情報(num_tile_columns_minus1)、タイルの幅に関する情報(column_width_minus1[i])を通知する。また、図5(j)に示すオーバーラップ領域の情報(overlap_tiles_info())を通知する。overlap_tiles_info()では、全てのタイルのオーバーラップ幅あるいは高さが均一である場合(uniform_overlap_flag=1)は、図5(f)と同様
のシンタックスを符号化する。そうでない場合(uniform_overlap_flag=0)、タイルの行毎にオーバーラップ高さに関する情報(tile_overlap_height_div2[i])と、個々のタイ
ルのオーバーラップ幅に関する情報(tile_overlap_width_div2[i])を通知する。
画像をタイルに分割する時に、各タイル行に含まれるタイルの個数が等しい場合がある。一方、図17(a)、図17(c)や図18(b)に示すように、画像をタイルに分割する時に、各タイ
ル行に含まれるタイルの個数が等しくない場合がある。あるいは各タイル列に含まれるタイルの個数が等しくない場合がある。このような場合、タイル情報のシンタックスは、図5(i)に示すように、タイルの垂直方向の個数に関する情報(num_tile_rows_minus1)を
通知し、タイル行毎にタイルの高さに関する情報(row_height_minus1[i])、タイルの水平方向の個数に関する情報(num_tile_columns_minus1)、タイルの幅に関する情報(column_width_minus1[i])を通知する。また、図5(j)に示すオーバーラップ領域の情報(overlap_tiles_info())を通知する。overlap_tiles_info()では、全てのタイルのオーバーラップ幅あるいは高さが均一である場合(uniform_overlap_flag=1)は、図5(f)と同様
のシンタックスを符号化する。そうでない場合(uniform_overlap_flag=0)、タイルの行毎にオーバーラップ高さに関する情報(tile_overlap_height_div2[i])と、個々のタイ
ルのオーバーラップ幅に関する情報(tile_overlap_width_div2[i])を通知する。
ヘッダ情報生成部2011では、図5(i)、(j)に示すシンタックスを生成し、タイル符号化部2012、符号化ストリーム生成部2013に出力する。
また、図9の動画像復号装置31では、ヘッダ情報復号部2001は図5(i)、(j)に示すシンタックスを復号し、タイル復号部2002、タイル合成部2003に出力する。
このように、タイルの行毎にタイルの水平方向の個数、幅、オーバーラップ領域の幅を通知することで、2次元画像の符号化方式をツールレベルで変更することなく、360度映
像やVR映像を符号化・復号することができる。
像やVR映像を符号化・復号することができる。
(実施形態4)
実施形態3ではピクチャを直接タイルに分割したが、本願の実施形態4では、ピクチャをリージョンに分割し、リージョンをタイルに分割する方法を説明する。本実施形態では、指定した位置とサイズを用いてピクチャ内に配置できるリージョンと、リージョン内で、矩形サイズに分割するタイルを用いてピクチャを2段階に階層的に分割する。リージョンは、プロジェクション画像において連続した領域、あるいは、同じマッピング方法を用いた領域等を1つにまとめたものである。
実施形態3ではピクチャを直接タイルに分割したが、本願の実施形態4では、ピクチャをリージョンに分割し、リージョンをタイルに分割する方法を説明する。本実施形態では、指定した位置とサイズを用いてピクチャ内に配置できるリージョンと、リージョン内で、矩形サイズに分割するタイルを用いてピクチャを2段階に階層的に分割する。リージョンは、プロジェクション画像において連続した領域、あるいは、同じマッピング方法を用いた領域等を1つにまとめたものである。
図17(b)は、ピクチャを3つのリージョンに分割し、さらに各リージョンをタイルに分k割することで図17(a)に示すタイルによりピクチャを分割する例である。
図17(d)は、ピクチャを3つのリージョンに分割し、さらに各リージョンをタイルに分
割することで図17(c)に示すタイルによりピクチャを分割する例である。図17(e)は、各リージョンをタイルに分割した別の一例である。リージョン0は、タイルTile[0][0]と、無
効領域のタイルTile[1][0]〜Tile[3][0]に分割される。リージョン1は、タイルTile[0][0]、タイルTile[1][0]に分割される。リージョン2は、タイルTile[0][0]と、無効領域のタイルTile[1][0]、Tile[2][0]、Tile[3][0]に分割される。なお、リージョン1は1つのタ
イルTile[0][0]として処理してもよい。
割することで図17(c)に示すタイルによりピクチャを分割する例である。図17(e)は、各リージョンをタイルに分割した別の一例である。リージョン0は、タイルTile[0][0]と、無
効領域のタイルTile[1][0]〜Tile[3][0]に分割される。リージョン1は、タイルTile[0][0]、タイルTile[1][0]に分割される。リージョン2は、タイルTile[0][0]と、無効領域のタイルTile[1][0]、Tile[2][0]、Tile[3][0]に分割される。なお、リージョン1は1つのタ
イルTile[0][0]として処理してもよい。
図17(d)と同様に、図18(c)は18(b)に対応するリージョンである。図18(c)のリージョン0は図18(b)の矩形6に、リージョン1は図18(b)の三角形領域1〜4、矩形5、三角形領域7〜10に対応する。三角形領域1〜4、矩形5、矩形6、三角形領域7〜10はプロジェクション画像で各々連続した領域である。図18(d)は、各リージョンをタイルに分割した一例である。
リージョン0は、タイルTile[0][0]、タイルTile[1][0]、Tile[2][0]に分割される。リー
ジョン1は、三角形領域1〜4を含むタイルTile[0][0]と、矩形5のタイルTile[1][0]と、三角形領域7〜10を含むタイルTile[2][0]に分割される。なお、リージョン0は1つのタイルTile[0][0]として処理してもよい。
リージョン0は、タイルTile[0][0]、タイルTile[1][0]、Tile[2][0]に分割される。リー
ジョン1は、三角形領域1〜4を含むタイルTile[0][0]と、矩形5のタイルTile[1][0]と、三角形領域7〜10を含むタイルTile[2][0]に分割される。なお、リージョン0は1つのタイルTile[0][0]として処理してもよい。
図19(b)は図19(a)に対応するリージョンである。図19(b)のリージョン0は図19(a)の円
領域1、2とその周辺の無効領域に、リージョン1は図19(a)の矩形3〜6に対応する。矩形3
〜6はプロジェクション画像で連続した領域であり、円領域1、2はのプロジェクション画
像で連続した領域ではないが、どちらも極領域であり、マッピングの方法が同じである。図19(c)は、各リージョンをタイルに分割した一例である。リージョン0は、円領域1とそ
の周辺の無効領域のタイルTile[0][0]と、円領域2とその周辺の無効領域のタイルTile[1][0]に分割される。リージョン1は、矩形3〜6に割り当てられたタイルTile[0][0]〜Tile[3][0]に分割される。
領域1、2とその周辺の無効領域に、リージョン1は図19(a)の矩形3〜6に対応する。矩形3
〜6はプロジェクション画像で連続した領域であり、円領域1、2はのプロジェクション画
像で連続した領域ではないが、どちらも極領域であり、マッピングの方法が同じである。図19(c)は、各リージョンをタイルに分割した一例である。リージョン0は、円領域1とそ
の周辺の無効領域のタイルTile[0][0]と、円領域2とその周辺の無効領域のタイルTile[1][0]に分割される。リージョン1は、矩形3〜6に割り当てられたタイルTile[0][0]〜Tile[3][0]に分割される。
図31はピクチャ、リージョン、タイル、CTUの階層構造を示す図である。図31(a)は1枚のピクチャを示す図である。図31(b)はこのピクチャを3分割したリージョン(Region0、Region1、Region2)の図である。図31(c)は各リージョンをさらに分割したタイルの図で
ある。図31(d)は図31(c)のRegion0を分割したタイルを、さらに分割したCTUの図である。
ある。図31(d)は図31(c)のRegion0を分割したタイルを、さらに分割したCTUの図である。
図31(d)に示すように、リージョンRegion[0]の左上座標(xRs0,yRs0)、幅wReg[0]、高さhReg[0]はCTUの整数倍でなくてもよい。また、リージョンRegion[0]を分割したタイルの
タイルアクティブ領域Tile[m][n]の左上座標(xTsmn,yTsmn)、幅wAT[m]、高さhAT[n]もCTUの整数倍でなくてもよい。
タイルアクティブ領域Tile[m][n]の左上座標(xTsmn,yTsmn)、幅wAT[m]、高さhAT[n]もCTUの整数倍でなくてもよい。
このように、ピクチャをリージョンに分割し、リージョンをタイルに分割する時のシンタックスを図20(k)に示す。region_parameters()はリージョン情報を示すシンタックスであり、PPSから呼び出される。前述の図4(b)では、PPSでtile_parameters()を通知したが、本実施形態ではPPSでregion_parameters()を通知し、region_parameters()の中でtile_parameters()を通知する。
図20(k)のregion_parameter()において、num_region_minus1はリージョンの個数から1
を引いた値を示す。num_region_minus1が0の場合、リージョンは1つであり、以降で通知するシンタックスはピクチャを直接タイルに分割した場合と同じである。num_region_minus1が0より大きい場合、各リージョンにおいて、リージョンの左上座標(region_topleft_x[i],region_topleft_y[i])、幅region_width_div2_minus1と高さregion_height_div2_
minus1を通知する。region_width_div2_minus1とregion_height_div2_minus1は、リージ
ョンの幅と高さを2で割った値であり、実際のリージョンの幅wRegと高さhRegは下記で表
される。
を引いた値を示す。num_region_minus1が0の場合、リージョンは1つであり、以降で通知するシンタックスはピクチャを直接タイルに分割した場合と同じである。num_region_minus1が0より大きい場合、各リージョンにおいて、リージョンの左上座標(region_topleft_x[i],region_topleft_y[i])、幅region_width_div2_minus1と高さregion_height_div2_
minus1を通知する。region_width_div2_minus1とregion_height_div2_minus1は、リージ
ョンの幅と高さを2で割った値であり、実際のリージョンの幅wRegと高さhRegは下記で表
される。
wReg[p] = region_width_div2_minus1[p]*2+1
hReg[p] = region_height_div2_minus1[p]*2+1
タイルアクティブ領域の幅wAT[m]、高さhAT[n]はuniform_spacing_flagが0の場合は既に説明した(式TAS-1)〜(式TAS-4)のいずれかにおいて、ピクチャの幅wPictと高さhPictをリージョンの幅wReg[p]とhReg[p]に置き換えて導出してもよい。uniform_spacing_flagが0でない場合は、(式TAS-5)を用いて導出してもよい。(式TAS-1)のwPict、hPictをwReg[p]、hReg[p]に置き換えた式を下記に示す。
hReg[p] = region_height_div2_minus1[p]*2+1
タイルアクティブ領域の幅wAT[m]、高さhAT[n]はuniform_spacing_flagが0の場合は既に説明した(式TAS-1)〜(式TAS-4)のいずれかにおいて、ピクチャの幅wPictと高さhPictをリージョンの幅wReg[p]とhReg[p]に置き換えて導出してもよい。uniform_spacing_flagが0でない場合は、(式TAS-5)を用いて導出してもよい。(式TAS-1)のwPict、hPictをwReg[p]、hReg[p]に置き換えた式を下記に示す。
for(m=0; m<M; m++ )
wAT[m] = ((m+1)*wReg[p])/M-(m*wReg[p])/M
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hReg[p])/N-(n*hReg[p])/N
ここで、M、Nはリージョン内のタイルの水平方向の個数と垂直方向の個数を示す。リージョンRegion[p]の左上座標(xRsp,yRsp)は下記のようにセットする。
wAT[m] = ((m+1)*wReg[p])/M-(m*wReg[p])/M
for(n=0; n<N; n++ )
hAT[n] = ((n+1)*hReg[p])/N-(n*hReg[p])/N
ここで、M、Nはリージョン内のタイルの水平方向の個数と垂直方向の個数を示す。リージョンRegion[p]の左上座標(xRsp,yRsp)は下記のようにセットする。
xRsp = region_topleft_x[p] (式REG-1)
yRsp = region_top_left_y[p]
なお、region_width_div2_minus1[p]、region_height_div2_minus1[p]は、色差フォー
マット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表
すかを切り替えてもよい。
yRsp = region_top_left_y[p]
なお、region_width_div2_minus1[p]、region_height_div2_minus1[p]は、色差フォー
マット(4:2:0、4:2:2、4:4:4)に応じて、サイズを2画素単位で表すか、1画素単位で表
すかを切り替えてもよい。
なお、リージョンを並列に符号化、復号するために、スライスやタイルの先頭と同様、リージョンの先頭でもCABACの初期化を実施する。
fill_color_present_flagは、ピクチャあるいはリージョンの符号化しないタイル領域
(以下、無効タイル)に対して、無効タイルの領域(無効領域)の画素値にセットする値を通知するか否かを示すフラグであり、fill_color_present_flagが1の場合、無効領域の画素値(fill_color_y,fill_color_cb,fill_color_cr)を通知する。fill_color_present_flagが0の場合、無効領域の画素値は黒(0,(1<<bitdepth-1),(1<<bitdepth-1))、あるいグ
レイ((1<<bitdepth-1),(1<<bitdepth-1),(1<<bitdepth-1))等に設定する。ここで、bitdepthは画素値のビット深度である。
(以下、無効タイル)に対して、無効タイルの領域(無効領域)の画素値にセットする値を通知するか否かを示すフラグであり、fill_color_present_flagが1の場合、無効領域の画素値(fill_color_y,fill_color_cb,fill_color_cr)を通知する。fill_color_present_flagが0の場合、無効領域の画素値は黒(0,(1<<bitdepth-1),(1<<bitdepth-1))、あるいグ
レイ((1<<bitdepth-1),(1<<bitdepth-1),(1<<bitdepth-1))等に設定する。ここで、bitdepthは画素値のビット深度である。
また、リージョン毎にtile_parameters()を通知する。tile_parameters()と、その中に含まれるタイル情報tile_info()は、図4(c)、図4(d)のシンタックスで表現してもよい
。タイルはリージョンの左上座標(region_topleft_x[i],region_topleft_y[i])を(0,0)として、リージョン内を均一に分割する。
。タイルはリージョンの左上座標(region_topleft_x[i],region_topleft_y[i])を(0,0)として、リージョン内を均一に分割する。
図11(c)は、実施形態4を実現する図11(a)のピクチャ分割部2010の一例である。図11(c)では、ピクチャ分割部2010は、リージョン情報算出部20103、タイル情報算出部20101、
ピクチャ分割部B20104からなる。リージョン情報算出部20103は、入力画像を、例えば、
図17(d)、図18(c)、図19(b)に示すようなリージョンに分割するためのリージョン情報(
リージョンの個数、左上座標、幅と高さ、無効領域にセットする画素値等)を算出する。タイル情報算出部20101は、リージョン情報算出部20103で算出したリージョン情報を参照して、ピクチャをリージョンに置換え、実施形態3で説明した方法でリージョンをタイルに分割(例えば図17(e)、図18(d)、図19(c)、図31(c)等)するためのタイル情報を算出する。ピクチャ分割部B20104は、リージョン情報を参照してピクチャをリージョン分割し、
タイル情報を参照してリージョンをタイルに分割する。
ピクチャ分割部B20104からなる。リージョン情報算出部20103は、入力画像を、例えば、
図17(d)、図18(c)、図19(b)に示すようなリージョンに分割するためのリージョン情報(
リージョンの個数、左上座標、幅と高さ、無効領域にセットする画素値等)を算出する。タイル情報算出部20101は、リージョン情報算出部20103で算出したリージョン情報を参照して、ピクチャをリージョンに置換え、実施形態3で説明した方法でリージョンをタイルに分割(例えば図17(e)、図18(d)、図19(c)、図31(c)等)するためのタイル情報を算出する。ピクチャ分割部B20104は、リージョン情報を参照してピクチャをリージョン分割し、
タイル情報を参照してリージョンをタイルに分割する。
ヘッダ情報生成部2011では、図20(k)に示すシンタックスを生成し、タイル符号化部2012、符号化ストリーム生成部2013に出力する。
タイル符号化部2012は分割したタイルを符号化し、符号化ストリーム生成部2013は、各タイルの符号化ストリームから符号化ストリームTeを生成する。
また、図9の動画像復号装置31では、ヘッダ情報復号部2001は図20(k)に示すシンタ
ックスを復号し、タイル復号部2002、タイル合成部2003に出力する。タイル復号部2002は、指定されたタイルの符号化ストリームを復号し、タイル合成部2003に出力する。
ックスを復号し、タイル復号部2002、タイル合成部2003に出力する。タイル復号部2002は、指定されたタイルの符号化ストリームを復号し、タイル合成部2003に出力する。
タイル合成部2003の平滑化処理部20031は、タイルのオーバーラップ領域があれば、オ
ーバーラップ領域にフィルタ処理を施したタイルを合成部20032に出力し、タイルのオー
バーラップ領域がなければ、タイル復号部2012の出力タイルをそのまま合成部20032に出
力する。タイル合成部20032は、ヘッダ情報復号部2001で復号したリージョン情報とタイ
ル情報から、指定された領域の復号画像を合成する。
ーバーラップ領域にフィルタ処理を施したタイルを合成部20032に出力し、タイルのオー
バーラップ領域がなければ、タイル復号部2012の出力タイルをそのまま合成部20032に出
力する。タイル合成部20032は、ヘッダ情報復号部2001で復号したリージョン情報とタイ
ル情報から、指定された領域の復号画像を合成する。
このように、ピクチャをリージョンに分割後、リージョンをタイルに分割すると、リージョン内のタイルのサイズをほぼ均一に設定することができる。そのため、実施形態3にくらべ、ヘッダで通知するタイル情報を削減することができる。また、リージョン境界では、プロジェクション画像がほぼ不連続であるので、オーバーラップ領域を設ける必要がないが、リージョン内のタイル境界では、プロジェクション画像が連続している場合が多いので、オーバーラップ領域が必要である。従って、リージョン境界ではオーバーラップ領域を設けないことにより、冗長な符号化ストリームを削減することができる。
また、プロジェクションフォーマット(ERP、SSP等)と、図17〜19に示すようなパッキング方法から、プロジェクション画像において隣接するタイルが連続する位置は特定できる。従って、タイル境界において、プロジェクション画像が連続する位置はタイルにオーバーラップ領域を設け、そうでない場合はオーバーラップ領域を設けない。例えば、図18(d)ではリージョン0のTile[0][0]とTile[1][0]の境界、Tile[1][0]とTile[2][0]の境界、および、リージョン1のTile[0][0]とTile[1][0]の境界、Tile[1][0]とTile[2][0]の境界
にはオーバーラップ領域を設ける。また、例えば、図19(c)では、リージョン0のTile[0][0]とTile[1][0]の境界にはオーバーラップ領域を設けず、リージョン1のTile[0][0]とTile[1][0]の境界、Tile[1][0]とTile[2][0]、Tile[2][0]とTile[3][0]の境界にはオーバー
ラップ領域を設ける。オーバーラップ領域を設けない場合、オーバーラップ領域の幅wOVLP、高さhOVLPを0にセットし、overlap_tiles_flagを0にセットする。
にはオーバーラップ領域を設ける。また、例えば、図19(c)では、リージョン0のTile[0][0]とTile[1][0]の境界にはオーバーラップ領域を設けず、リージョン1のTile[0][0]とTile[1][0]の境界、Tile[1][0]とTile[2][0]、Tile[2][0]とTile[3][0]の境界にはオーバー
ラップ領域を設ける。オーバーラップ領域を設けない場合、オーバーラップ領域の幅wOVLP、高さhOVLPを0にセットし、overlap_tiles_flagを0にセットする。
このように、オーバーラップ領域が不要な場合、オーバーラップ領域の幅と高さの情報を符号化しないため、ヘッダ情報を削減することができる。また、オーバーラップによって、同じ領域を複数符号化することによる冗長な符号量を削減するので、符号化効率の低下を抑制することができる。
図32はリージョンに関するシンタックスである。図32では、リージョンの終わりか否かを示すフラグend_of_region_flagが0である間(リージョンの終わりではない間)、CTU
のシンタックスcoding_tree_unit()とend_of_region_flagを通知する。なお、タイルの終わりの位置ではタイルの終了を示すend_of_subset_one_bit(=1)を通知し、バイトアライ
ンする。タイルの終了位置は下式で判定する。
のシンタックスcoding_tree_unit()とend_of_region_flagを通知する。なお、タイルの終わりの位置ではタイルの終了を示すend_of_subset_one_bit(=1)を通知し、バイトアライ
ンする。タイルの終了位置は下式で判定する。
if (tiles_enabled_flag && CtbAddrInTile>=NumCtbInTile[TileId])
CtbAddrInTsはピクチャを通してのCTUのアドレス、NumCtbInTile[]はタイル内のCTUの
個数、CtbAddrInTileはタイル内のCTUのアドレスを示す。CtbAddrInTileがNumCtbInTile[]以上は、対象タイルの外を表すので、対象タイルの終わりであることが分かる。図32で
は、タイルの識別子TileIdはタイルの終わりで1インクリメントされる。つまり、リージョン内でTileIdは一意であり、異なるリージョンの先頭で0にリセットされる。
CtbAddrInTsはピクチャを通してのCTUのアドレス、NumCtbInTile[]はタイル内のCTUの
個数、CtbAddrInTileはタイル内のCTUのアドレスを示す。CtbAddrInTileがNumCtbInTile[]以上は、対象タイルの外を表すので、対象タイルの終わりであることが分かる。図32で
は、タイルの識別子TileIdはタイルの終わりで1インクリメントされる。つまり、リージョン内でTileIdは一意であり、異なるリージョンの先頭で0にリセットされる。
次に、タイルをCTUの倍数によらずに分割した時のCTUのシンタックスcoding_tree_unit()を図33に示す。タイル(タイル有効領域)の左上座標がCTUの整数倍の位置ではない場
合に対応するため、CTUの左上座標(xCtb,yCtb)を各タイルで導出する。具体的には、タイル内アドレスCtbAddrInTileから導出されるCTUのタイル内座標((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY,(CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)に、タイル左上座標(TileAddrX[TileId],TileAddrY[TileId])、および、リージョン左上座標(RegionAddrX[RegId],RegionAddrY[RegId])を加算することで、ピクチャ内
におけるタイルのCTUの座標を導出する
xCtb = ((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrX[TileId]+RegionAddrX[RegID]
yCtb = ((CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrY[TileId]+RegionAddrY[RegID]
ここで、TileWidthinCtbs[]はCTU単位のタイル有効領域の幅、wT[]とhT[]はタイル有効領域の画素単位の幅と高さ、CtbLog2SizeYはCTUサイズの対数値、(TileAddrX,TileAddrY)は画素単位のタイルの左上座標、(RegionAddrX[RegId],RegionAddrY[RegId])は画素単
位のリージョンの左上座標である。画素単位のタイルの左上座標(TileAddrX,TileAddrY)
、およびリージョンの左上座標(RegionAddrX[RegId],RegionAddrY[RegId])には(式TLA-1)や(式TLA-2)で導出した(xTsmn,yTsmn)、(式REG-1)で導出した(xRsp,yRsp)をセットしてもよい。なおタイル有効領域の幅と高さ(wT[],hT[])の代わりにタイル符号化領域
の幅と高さ(wTile[],hTile[])を用いても良い。
合に対応するため、CTUの左上座標(xCtb,yCtb)を各タイルで導出する。具体的には、タイル内アドレスCtbAddrInTileから導出されるCTUのタイル内座標((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY,(CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)に、タイル左上座標(TileAddrX[TileId],TileAddrY[TileId])、および、リージョン左上座標(RegionAddrX[RegId],RegionAddrY[RegId])を加算することで、ピクチャ内
におけるタイルのCTUの座標を導出する
xCtb = ((CtbAddrInTile%TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrX[TileId]+RegionAddrX[RegID]
yCtb = ((CtbAddrInTile/TileWidthinCtbs[TileId])<<CtbLog2SizeY)+TileAddrY[TileId]+RegionAddrY[RegID]
ここで、TileWidthinCtbs[]はCTU単位のタイル有効領域の幅、wT[]とhT[]はタイル有効領域の画素単位の幅と高さ、CtbLog2SizeYはCTUサイズの対数値、(TileAddrX,TileAddrY)は画素単位のタイルの左上座標、(RegionAddrX[RegId],RegionAddrY[RegId])は画素単
位のリージョンの左上座標である。画素単位のタイルの左上座標(TileAddrX,TileAddrY)
、およびリージョンの左上座標(RegionAddrX[RegId],RegionAddrY[RegId])には(式TLA-1)や(式TLA-2)で導出した(xTsmn,yTsmn)、(式REG-1)で導出した(xRsp,yRsp)をセットしてもよい。なおタイル有効領域の幅と高さ(wT[],hT[])の代わりにタイル符号化領域
の幅と高さ(wTile[],hTile[])を用いても良い。
図34は、リージョンを示す別のシンタックスである。図32では、スライスをリージョンに分割し、リージョンをタイルに分割したが、図34ではリージョンをスライスやタイルに分割してもよい。リージョン情報(リージョンの形状やサイズ)は図20(k)に示すようにPPSで通知される。そして、slice_segment_data()を復号する過程で、リージョンやタイルの終わりを検出すると、end_of_region_flag(=1)やend_of_subset_one_bit(=1)を挿入し
、バイトアラインする。タイルの終了条件は図32と同じく、下式である。
、バイトアラインする。タイルの終了条件は図32と同じく、下式である。
if (tiles_enabled_flag && CtbAddrInTile>=NumCtbInTile[RegId][TileId])
タイル内のCTUアドレスが所定の値NumCtbInTile[RegId][TileId]以上になると、対象タイルの処理は終了し、TileIdをインクリメントし、次のタイルの処理が始まる。リージョンの終了条件は、下式が成立しなくなった時である。
タイル内のCTUアドレスが所定の値NumCtbInTile[RegId][TileId]以上になると、対象タイルの処理は終了し、TileIdをインクリメントし、次のタイルの処理が始まる。リージョンの終了条件は、下式が成立しなくなった時である。
while (TileId<NumTilesInRegion[RegId])
TileIdが所定の値NumTilesInRegion[RegId]以上になると、対象リージョンの処理は終了
し、RegIdをインクリメントし、TileIdとCtbAddrInTsをリセットし、次のリージョンの処理が始まる。このように、TileIdやCtbAddrInTsはリージョン単位でリセットされる。
TileIdが所定の値NumTilesInRegion[RegId]以上になると、対象リージョンの処理は終了
し、RegIdをインクリメントし、TileIdとCtbAddrInTsをリセットし、次のリージョンの処理が始まる。このように、TileIdやCtbAddrInTsはリージョン単位でリセットされる。
なお、図34で呼び出されるcoding_tree_unit(TileId)のシンタックスは図33と同じであり、CTUの倍数とは限らないサイズのリージョンやタイルの処理を実施するために、CTUの左上座標はタイルやリージョンの左上座標を用いて算出する。
以上のように、CTUの倍数とは限らないサイズのリージョンをタイルに分割して符号化
、復号することができる。
、復号することができる。
(実施形態5)
実施形態5では、実施形態3、4において、無効領域のタイルを通知する例を説明する。
実施形態5では、実施形態3、4において、無効領域のタイルを通知する例を説明する。
図17(e)は、図17(c)をリージョンに分割後、タイルに分割した図である。リージョン0
、2は4タイル、リージョン1は2タイルに分割されている。リージョン0、2において、タイルTile[0][0]は、プロジェクション画像に対応する領域をもつ有効領域であるが、タイルTile[1][0]、Tile[2][0]、Tile[3][0]は無効領域である。従って、Tile[1][0]、Tile[2][0]、Tile[3][0]は符号化・復号する必要はない。
、2は4タイル、リージョン1は2タイルに分割されている。リージョン0、2において、タイルTile[0][0]は、プロジェクション画像に対応する領域をもつ有効領域であるが、タイルTile[1][0]、Tile[2][0]、Tile[3][0]は無効領域である。従って、Tile[1][0]、Tile[2][0]、Tile[3][0]は符号化・復号する必要はない。
図20(l)に示すシンタックスでは、無効領域のタイルを通知するフラグtile_valid_flagをタイル情報に含め、tile_valid_flagが1のタイルは復号し、tile_valid_flagが0のタイルは復号しない。それ以外のシンタックスは図5(i)のシンタックスと同じであり、説明
を省略する。図20(l)では、タイルの幅および高さに関する情報は、タイルの垂直方向の
個数に関する情報(num_tile_rows_minus1)を通知し、タイル行毎にタイルの高さに関する情報(row_height_minus1[i])、タイルの水平方向の個数に関する情報(num_tile_columns_minus1)、タイルの幅に関する情報(column_width_minus1[i])を通知するが、図
4(d)と同様、タイルの高さに関する情報(row_height_minus1[i])とタイルの水平方向
の個数分のタイルの幅に関する情報(column_width_minus1[i])は、各々垂直方向の個数分、水平方向の個数分だけ通知してもよい。
を省略する。図20(l)では、タイルの幅および高さに関する情報は、タイルの垂直方向の
個数に関する情報(num_tile_rows_minus1)を通知し、タイル行毎にタイルの高さに関する情報(row_height_minus1[i])、タイルの水平方向の個数に関する情報(num_tile_columns_minus1)、タイルの幅に関する情報(column_width_minus1[i])を通知するが、図
4(d)と同様、タイルの高さに関する情報(row_height_minus1[i])とタイルの水平方向
の個数分のタイルの幅に関する情報(column_width_minus1[i])は、各々垂直方向の個数分、水平方向の個数分だけ通知してもよい。
また、無効領域の画素値は、図20(k)において、fill_color_present_flagに1をセットし、fill_color_y、fill_color_cb、fill_color_crで通知してもよい。
無効領域の別の例として、図35に示すRight-angled Triangular resion-wise packing for cube map projection Formatがある。図35(a)に示すように、Right-angled Triangular resion-wise packing for cube map projection Formatは、右斜め前から見える立方
体の表面(Front、Left、TopとBottomの半分の領域)のみをパッキングし、符号化する。このパッキングの形態を図35(b)に示す。図35(b)のピクチャは3つのリージョンからなる。Region[0]は図35(a)のFrontとLeftからなる。Region[1]は図35(a)のTopとBottomの各々半分の領域(三角形領域)と、2つの三角形間のパディング領域からなる。Region[2]は
図35(a)には存在しない無効領域であり、region[0]とregion[1]の高さが異なることによ
り発生する。図35(c)に示すように、region[0]は左上座標(xRs[0],yRs[0])、幅wReg[0]、高さhReg[0]であり、region[1]は左上座標(xRs[1],yRs[1])、幅wReg[1]、高さhReg[1]で
あり、region[2]は左上座標(xRs[2],yRs[2])、幅wReg[2]、高さhReg[2]である。
体の表面(Front、Left、TopとBottomの半分の領域)のみをパッキングし、符号化する。このパッキングの形態を図35(b)に示す。図35(b)のピクチャは3つのリージョンからなる。Region[0]は図35(a)のFrontとLeftからなる。Region[1]は図35(a)のTopとBottomの各々半分の領域(三角形領域)と、2つの三角形間のパディング領域からなる。Region[2]は
図35(a)には存在しない無効領域であり、region[0]とregion[1]の高さが異なることによ
り発生する。図35(c)に示すように、region[0]は左上座標(xRs[0],yRs[0])、幅wReg[0]、高さhReg[0]であり、region[1]は左上座標(xRs[1],yRs[1])、幅wReg[1]、高さhReg[1]で
あり、region[2]は左上座標(xRs[2],yRs[2])、幅wReg[2]、高さhReg[2]である。
図11のヘッダ情報生成部2011では、図20(l)に示すシンタックスを生成し、タイル符号
化部2012、符号化ストリーム生成部2013に出力する。そして、タイル符号化部2012は有効なタイルのみ符号化する。
化部2012、符号化ストリーム生成部2013に出力する。そして、タイル符号化部2012は有効なタイルのみ符号化する。
また、図9の動画像復号装置31では、ヘッダ情報復号部2001は図20(l)に示すシンタ
ックスを復号し、タイル復号部2002、タイル合成部2003に出力する。タイル復号部2002は、有効なタイルの符号化ストリームを復号し、タイル合成部2003に出力する。
ックスを復号し、タイル復号部2002、タイル合成部2003に出力する。タイル復号部2002は、有効なタイルの符号化ストリームを復号し、タイル合成部2003に出力する。
それ以外の符号化・復号処理は実施形態3、4と同じである。
タイルの有効・無効を示すフラグを通知することで、動画像符号化装置および動画像復号装置は必要な符号化・復号処理のみを実施するので、無駄な処理を削減することができる。
(実施形態6)
実施形態1〜5では、所望の領域を表示するために、画像をタイルに分割、独立に符号化し、必要なタイルのみを復号するための技術を説明した。実施形態6では、リージョン単位で独立に符号化・復号する技術を説明する。この場合、リージョンを分割したタイルは、空間方向には隣接するタイルを参照しないが、時間方向には、同じリージョンに属する異なる時間のタイルを参照することができる。また、タイル境界にループフィルタをかけてもよい。これはリージョンを従来のピクチャとみなして符号化・復号する処理と同じである。従って、図20(m)に示すスライスデータ(slice_segment_data())内で通知する
各リージョンに対し、リージョン(Region())単位で符号化・復号を完結させる。左上座標(region_topleft_x[i],region_topleft_y[i])を(0,0)とする、幅wReg[i]、高さhReg[i]のリージョンを1枚のピクチャとみなし、図20(n)に示すRegion()では、ラスタスキャン
順に図5(h)に示すTile()のシンタックスを通知してもよい。なお、各リージョンの先頭
の量子化パラメータは、スライスで規定された量子化パラメータの初期値を使用してもよい。ピクチャをリージョンに分割する際は、ピクチャを1つのスライスとして処理してもよい。また、図20(m)、図20(n)、図5(h)の代わりに、図32や図34に示すシンタックスを
用いて、リージョン単位で独立に符号化処理あるいは復号処理を実施してもよい。
実施形態1〜5では、所望の領域を表示するために、画像をタイルに分割、独立に符号化し、必要なタイルのみを復号するための技術を説明した。実施形態6では、リージョン単位で独立に符号化・復号する技術を説明する。この場合、リージョンを分割したタイルは、空間方向には隣接するタイルを参照しないが、時間方向には、同じリージョンに属する異なる時間のタイルを参照することができる。また、タイル境界にループフィルタをかけてもよい。これはリージョンを従来のピクチャとみなして符号化・復号する処理と同じである。従って、図20(m)に示すスライスデータ(slice_segment_data())内で通知する
各リージョンに対し、リージョン(Region())単位で符号化・復号を完結させる。左上座標(region_topleft_x[i],region_topleft_y[i])を(0,0)とする、幅wReg[i]、高さhReg[i]のリージョンを1枚のピクチャとみなし、図20(n)に示すRegion()では、ラスタスキャン
順に図5(h)に示すTile()のシンタックスを通知してもよい。なお、各リージョンの先頭
の量子化パラメータは、スライスで規定された量子化パラメータの初期値を使用してもよい。ピクチャをリージョンに分割する際は、ピクチャを1つのスライスとして処理してもよい。また、図20(m)、図20(n)、図5(h)の代わりに、図32や図34に示すシンタックスを
用いて、リージョン単位で独立に符号化処理あるいは復号処理を実施してもよい。
タイル単位の独立処理を、リージョン単位の独立処理に変更することにより、各タイルで参照可能な情報(リージョン内のコロケートタイルの隣接タイルの情報)が増える。従って、符号化効率の低下を抑えつつ、画面の一部のみを復号することができる。
(実施形態7)
ピクチャのタイルへの分割方法の別の実施形態を、図36を用いて説明する。実施形態1〜6では、CTUの整数倍に限定されない正味の表示領域(タイルアクティブ領域)の左上
座標を基準に、オーバーラップ領域、クロップオフセット領域(タイル無効領域)を含めた領域をCTU単位で符号化、復号処理を実施した。タイルアクティブ領域の左上座標はCTUの整数倍の位置には限定されない。
ピクチャのタイルへの分割方法の別の実施形態を、図36を用いて説明する。実施形態1〜6では、CTUの整数倍に限定されない正味の表示領域(タイルアクティブ領域)の左上
座標を基準に、オーバーラップ領域、クロップオフセット領域(タイル無効領域)を含めた領域をCTU単位で符号化、復号処理を実施した。タイルアクティブ領域の左上座標はCTUの整数倍の位置には限定されない。
実施形態7のタイル分割方法は、タイルアクティブ領域とオーバーラップ領域を含むタイル有効領域に、さらにクロップオフセット領域を加えたタイル(タイル符号化領域)を、図36に示すようにオーバーラップすることなく配置したピクチャを生成し、このピクチャを動画像符号化装置11への入力画像とする。この入力画像において、タイル符号化領域の左上座標はCTUの整数倍の位置に設定され、タイル符号化領域のサイズはCTUの整数倍である。そして、図4(a)のSPSで通知されるピクチャの幅pic_width_in_luma_samplesと高
さpic_height_in_luma_samplesには、ピクチャの正味のサイズ(第1のピクチャサイズ)ではなく、オーバーラップ領域やクロップオフセット領域を含む下式のサイズ(第2のピクチャサイズ)を設定する。
さpic_height_in_luma_samplesには、ピクチャの正味のサイズ(第1のピクチャサイズ)ではなく、オーバーラップ領域やクロップオフセット領域を含む下式のサイズ(第2のピクチャサイズ)を設定する。
wPict = pic_width_in_luma_samples = ΣwTile[m]-wCRP[M-1] =Σ(wAT[m]+wOVLP[m]+wCRP[m])-wCRP[M-1] (式TCS-2)
hPict = pic_height_in_luma_samples = ΣhTile[n]-hCRP[N-1] =Σ(hAT[n]+hOVLP[n]+hCRP[n])-hCRP[N-1]
ピクチャの幅wPict、高さhPictにはピクチャの右端、下端のクロップオフセット領域(wCRP[M-1]とhCRP[N-1])は含まれない。また、画像復号装置31では、タイル符号化領域を復号し、オーバーラップ領域は隣接するタイルアクティブ領域とフィルタ処理し、クロップオフセット領域は破棄することで、もとのピクチャと同じサイズ(第1のピクチャサイズ)のピクチャを出力する。このようにCTU単位でタイルを処理することで、符号化処理
と復号処理に、従来のタイル符号化部2012、タイル復号部2002を使用することが可能であり、符号化処理および復号処理の複雑度を下げることもできる。
hPict = pic_height_in_luma_samples = ΣhTile[n]-hCRP[N-1] =Σ(hAT[n]+hOVLP[n]+hCRP[n])-hCRP[N-1]
ピクチャの幅wPict、高さhPictにはピクチャの右端、下端のクロップオフセット領域(wCRP[M-1]とhCRP[N-1])は含まれない。また、画像復号装置31では、タイル符号化領域を復号し、オーバーラップ領域は隣接するタイルアクティブ領域とフィルタ処理し、クロップオフセット領域は破棄することで、もとのピクチャと同じサイズ(第1のピクチャサイズ)のピクチャを出力する。このようにCTU単位でタイルを処理することで、符号化処理
と復号処理に、従来のタイル符号化部2012、タイル復号部2002を使用することが可能であり、符号化処理および復号処理の複雑度を下げることもできる。
図36(a)は、実施形態1と同じく、ピクチャを、オーバーラップを許してCTUの整数倍に限定されないタイルに分割した図である。斜線部はオーバーラップ領域であり、隣接するタイルアクティブ領域とオーバーラップする領域である。図36(b)は、図36(a)の1つのタイルを取り出した図である。タイル(タイル有効領域)Tile[m][n]は幅wT[m]、高さhT[n]であり、斜線で示すオーバーラップ領域の幅wOVLP[m]と高さhOVLP[n]はwT[m]とhT[n]に各々含まれる。タイル有効領域の幅wT[m]、高さhT[n]、左上座標(sTsmn,yTsmn)はCTUの整数倍に限定されない値を取る。図36(c)は、隣接するタイル有効領域がオーバーラップしな
いように、CTUの整数倍の位置にタイル有効領域の左上座標を設定し生成したピクチャで
ある。このピクチャが動画像符号化装置11への入力画像である。このようにタイル有効領域を配置した場合、符号化処理あるいは復号処理は、左上座標(xTsmn,yTsmn)がCTUの整数倍の位置であって、CTUの整数倍のサイズをもつタイル符号化領域(幅wTile[m]、高さhTile[n])に対し実施される。タイル符号化領域は、(式TCS-1)あるいは式(TCS-3)に示
すように、タイル有効領域とクロップオフセット領域(タイル無効領域)を合わせた領域である。図36(c)に示す、タイル符号化領域の左上座標(xTsmn,yTsmn)は下式で表される。
いように、CTUの整数倍の位置にタイル有効領域の左上座標を設定し生成したピクチャで
ある。このピクチャが動画像符号化装置11への入力画像である。このようにタイル有効領域を配置した場合、符号化処理あるいは復号処理は、左上座標(xTsmn,yTsmn)がCTUの整数倍の位置であって、CTUの整数倍のサイズをもつタイル符号化領域(幅wTile[m]、高さhTile[n])に対し実施される。タイル符号化領域は、(式TCS-1)あるいは式(TCS-3)に示
すように、タイル有効領域とクロップオフセット領域(タイル無効領域)を合わせた領域である。図36(c)に示す、タイル符号化領域の左上座標(xTsmn,yTsmn)は下式で表される。
xTsmn = ΣwTile[i] = Σceil(wT[i]) (Σはi=0..m-1の総和)
yTsmn = ΣhTile[j] = Σceil(hT[j]) (Σはj=0..n-1の総和)
ピクチャの幅pic_width_in_luma_samplesと高さpic_height_in_luma_samples以外のシ
ンタックスを図37に示す。図37のtile_info()は、図25(a)のtile_info()と比べ、uniform_spacing_flagが0でない場合にtotal_cropoffset_widthとtotal_cropoffset_heightを通知する点が異なる。total_cropoffset_widthはM-1個のクロップオフセット領域の幅wCRP[m](m=0..M-2)の総和であり、total_cropoffset_heightはN-1個のクロップオフセット領域の高さhCRP[n](n=0..N-2)の総和であり、uniform_spacing_flagが0でない場合に、タイ
ル有効領域の幅wT[m]、高さhT[n]を算出するために使用する。
yTsmn = ΣhTile[j] = Σceil(hT[j]) (Σはj=0..n-1の総和)
ピクチャの幅pic_width_in_luma_samplesと高さpic_height_in_luma_samples以外のシ
ンタックスを図37に示す。図37のtile_info()は、図25(a)のtile_info()と比べ、uniform_spacing_flagが0でない場合にtotal_cropoffset_widthとtotal_cropoffset_heightを通知する点が異なる。total_cropoffset_widthはM-1個のクロップオフセット領域の幅wCRP[m](m=0..M-2)の総和であり、total_cropoffset_heightはN-1個のクロップオフセット領域の高さhCRP[n](n=0..N-2)の総和であり、uniform_spacing_flagが0でない場合に、タイ
ル有効領域の幅wT[m]、高さhT[n]を算出するために使用する。
wPict1 = wPict-total_croppoffset_width
for(m=0; m<M; m++ )
wT[m] = ((m+1)*wPict1)/M-(m*wPict1)/M
hPict1 = hPict-total_croppoffset_height
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict1)/N-(n*hPict1)/N
ここで、wPictとhPictは(式TCS-2)で算出した入力画像の幅と高さ(第2のピクチャサ
イズ)である。uniform_spacing_flagが0の場合、タイル有効領域の幅wT[m]、高さhT[n]は、画素単位であればcolumn_width_in_luma_samples_div2_minus1[m]とrow_height_in_luma_samples_div2_minus1[n]を(式TSP-10)に代入して算出し、そうでなければcolumn_width_minus1[m]とrow_width_minus1[n]を(式TSP-7)〜(式TSP-9)のいずれかに代入し
て算出する。なお、overlap_tiles_flagはオーバーラップ領域を含むクロップオフセット領域の有無を示すフラグである。それ以外のシンタックスは図25(a)と同じであるので、
説明を省略する。
for(m=0; m<M; m++ )
wT[m] = ((m+1)*wPict1)/M-(m*wPict1)/M
hPict1 = hPict-total_croppoffset_height
for(n=0; n<N; n++ )
hT[n] = ((n+1)*hPict1)/N-(n*hPict1)/N
ここで、wPictとhPictは(式TCS-2)で算出した入力画像の幅と高さ(第2のピクチャサ
イズ)である。uniform_spacing_flagが0の場合、タイル有効領域の幅wT[m]、高さhT[n]は、画素単位であればcolumn_width_in_luma_samples_div2_minus1[m]とrow_height_in_luma_samples_div2_minus1[n]を(式TSP-10)に代入して算出し、そうでなければcolumn_width_minus1[m]とrow_width_minus1[n]を(式TSP-7)〜(式TSP-9)のいずれかに代入し
て算出する。なお、overlap_tiles_flagはオーバーラップ領域を含むクロップオフセット領域の有無を示すフラグである。それ以外のシンタックスは図25(a)と同じであるので、
説明を省略する。
オーバーラップ情報に関しては、図25(b)のoverlap_tiles_info()で、uniform_overlap_flag、tile_overlap_width_minus1[]、tile_overlap_height_minus1[]を通知する。また、オーバーラップの大きさ(幅または高さ)に0を許容するならば、1を減算しないオーバーラップの幅(tile_overlap_width[])および高さ(tile_overlap_height[])を通知しても
よい。さらに、常にオーバーラップの大きさが同じとするなら、uniform_overlap_flagを送らず、一組のtile_overlap_width_minus1およびtile_overlap_height_minus1だけを土
してもよい。これらの値を用いて、例えば、オーバーラップ領域の幅wOVLP[m]、高さhOVLP[n]は(式OVLP-1)あるいは(式OVLP-2)により算出してもよい。また、例えば、クロップオフセット領域の幅wCRP[m]、高さhCRP[n]は(式CRP-1)により算出してもよい。
よい。さらに、常にオーバーラップの大きさが同じとするなら、uniform_overlap_flagを送らず、一組のtile_overlap_width_minus1およびtile_overlap_height_minus1だけを土
してもよい。これらの値を用いて、例えば、オーバーラップ領域の幅wOVLP[m]、高さhOVLP[n]は(式OVLP-1)あるいは(式OVLP-2)により算出してもよい。また、例えば、クロップオフセット領域の幅wCRP[m]、高さhCRP[n]は(式CRP-1)により算出してもよい。
一方、スライスデータ(slice_segment_data())以下のシンタックスは、タイル符号化部2012あるいはタイル復号部2002で処理するタイル(タイル符号化領域)がCTUの整数倍
であり、タイルの先頭がCTUの整数倍の位置に設定されるため、図23に示す従来のslice_segment_data()やcoding_tree_unit()を利用してもよい。
であり、タイルの先頭がCTUの整数倍の位置に設定されるため、図23に示す従来のslice_segment_data()やcoding_tree_unit()を利用してもよい。
スライスデータ以下の処理は、タイルを独立に処理する従来のタイル符号化部2012、タイル復号部2002と同じである。しかし、符号化対象はオーバーラップ領域やクロップオフセット領域を含めた入力画像であるため、符号化処理では、ピクチャ分割部2010の処理内容が、実施形態1〜6で説明した処理とは異なる。復号処理では、タイル合成部2003の処理内容が、実施形態1〜6で説明した処理とは異なる。これらの処理について以下で説明する。
動画像符号化装置11では、ピクチャ分割部2010のタイル情報算出部20101は、ピクチャ
のサイズ(第1のピクチャサイズ)から、図26(a)に示すような重なりの無いタイルアク
ティブ領域の幅wAT[m]、高さhAT[n]、オーバーラップ領域の幅wOVLP、高さhOVLP、クロップオフセット領域の幅wCRP、高さhCRP、タイル有効領域の幅wT[m]、高さhT[n]、タイル符号化領域の幅wTile[m]、高さhTile[n]等を含めたタイル情報を算出する。
のサイズ(第1のピクチャサイズ)から、図26(a)に示すような重なりの無いタイルアク
ティブ領域の幅wAT[m]、高さhAT[n]、オーバーラップ領域の幅wOVLP、高さhOVLP、クロップオフセット領域の幅wCRP、高さhCRP、タイル有効領域の幅wT[m]、高さhT[n]、タイル符号化領域の幅wTile[m]、高さhTile[n]等を含めたタイル情報を算出する。
ピクチャ分割部2010のピクチャ分割部A20102は、タイル情報算出部20101で算出したタ
イル情報に従って、ピクチャをタイルアクティブ領域に分割し、その外側のオーバーラップ領域を含めたタイル有効領域Tile[m][n]の画素値を、(式TCS-2)で算出した(wPict,hPict)の領域を格納できるサイズ(第2のピクチャサイズ)のメモリにコピーする。なお、メモリのサイズは(wPict,hPict)を各々CTUの整数倍に拡大したサイズ(wPict+wCRP[M-1],hPict+hCRP[N-1])に設定してもよい。図36(c)に示すように、タイル有効領域Tile[m][n]の左上座標がCTUの整数倍の位置であって、かつ、タイル有効領域が重ならないように配置
する。次に、ピクチャ分割部2010は、画素値を設定していないタイル有効領域の外側の領域(クロップオフセット領域)に画素値を設定する。設定する画素値は、クロップオフセット領域に接するタイル有効領域の画素値であってもよい。クロップオフセット領域の画素位置(x,y)の画素値vPic(x,y)は、タイル有効領域の画素値から下式で導出される。
イル情報に従って、ピクチャをタイルアクティブ領域に分割し、その外側のオーバーラップ領域を含めたタイル有効領域Tile[m][n]の画素値を、(式TCS-2)で算出した(wPict,hPict)の領域を格納できるサイズ(第2のピクチャサイズ)のメモリにコピーする。なお、メモリのサイズは(wPict,hPict)を各々CTUの整数倍に拡大したサイズ(wPict+wCRP[M-1],hPict+hCRP[N-1])に設定してもよい。図36(c)に示すように、タイル有効領域Tile[m][n]の左上座標がCTUの整数倍の位置であって、かつ、タイル有効領域が重ならないように配置
する。次に、ピクチャ分割部2010は、画素値を設定していないタイル有効領域の外側の領域(クロップオフセット領域)に画素値を設定する。設定する画素値は、クロップオフセット領域に接するタイル有効領域の画素値であってもよい。クロップオフセット領域の画素位置(x,y)の画素値vPic(x,y)は、タイル有効領域の画素値から下式で導出される。
vPic[x][y] = Tile[m][n][wT[m]-1][y] (wT[m]<x<wTile[m],0<=y<hT[n])
vPic[x][y] = Tile[m][n][x][hT[n]-1] (0<=x<wT[m]<x<hT[n]<y<hTile[n])
vPic[x][y] = Tile[m][n][wT[m]-1][hT[n]-1] (wT[m]<x<wTile[m],hT[n]<y<hTile[n])
あるいは所定の値、例えば(Y,Cb,CR)=(2^(NBIT-1),2^(NBIT-1),2^(NBIT-1))としてもよい。ここでNBITはピクチャの画素値のビット数である。ピクチャ分割部A20102は、このようにして生成した第2のピクチャサイズをもつ入力画像を、タイル符号化領域毎にタイル符号化部2012に出力する。タイル符号化部2012は各タイル符号化領域を符号化して、各タイル符号化領域の符号化ストリームを生成する。符号化ストリーム生成部2013は、各タイル符号化領域の符号化ストリームから、入力画像の符号化ストリームを生成する。
vPic[x][y] = Tile[m][n][x][hT[n]-1] (0<=x<wT[m]<x<hT[n]<y<hTile[n])
vPic[x][y] = Tile[m][n][wT[m]-1][hT[n]-1] (wT[m]<x<wTile[m],hT[n]<y<hTile[n])
あるいは所定の値、例えば(Y,Cb,CR)=(2^(NBIT-1),2^(NBIT-1),2^(NBIT-1))としてもよい。ここでNBITはピクチャの画素値のビット数である。ピクチャ分割部A20102は、このようにして生成した第2のピクチャサイズをもつ入力画像を、タイル符号化領域毎にタイル符号化部2012に出力する。タイル符号化部2012は各タイル符号化領域を符号化して、各タイル符号化領域の符号化ストリームを生成する。符号化ストリーム生成部2013は、各タイル符号化領域の符号化ストリームから、入力画像の符号化ストリームを生成する。
動画像復号装置31では、ヘッダ情報復号部2001が、入力された符号化ストリームから、タイル情報を含むヘッダ情報を復号し、タイル復号部2002に各タイル符号化領域の入力ストリームを出力する。タイル復号部2002は入力ストリームから各タイル符号化領域を復号し、タイル合成部2003に出力する。
平滑化処理部20031は、overlap_tiles_flagが1の場合は、タイル復号部2002で復号された各タイルのオーバーラップ領域を用いて、例えば(式FLT-1)〜(式FLT-3)に示すフィルタ処理(平均化処理、重み付き平均化処理)を実施し、フィルタ処理したオーバーラッ
プ領域の画素値(ここではtmp)を図36(c)に示すメモリに上書きする。例えば、Tile[0][0]の右端のオーバーラップ領域と、Tile[1][0]の左端のタイルアクティブ領域のフィルタ処理結果は、Tile[1][0]の左端のタイルアクティブ領域に上書きされ、Tile[0][0]の下端のオーバーラップ領域と、Tile[0][1]の上端のタイルアクティブ領域のフィルタ処理結果は、Tile[0][1]の上端のタイルアクティブ領域に上書きされる。
プ領域の画素値(ここではtmp)を図36(c)に示すメモリに上書きする。例えば、Tile[0][0]の右端のオーバーラップ領域と、Tile[1][0]の左端のタイルアクティブ領域のフィルタ処理結果は、Tile[1][0]の左端のタイルアクティブ領域に上書きされ、Tile[0][0]の下端のオーバーラップ領域と、Tile[0][1]の上端のタイルアクティブ領域のフィルタ処理結果は、Tile[0][1]の上端のタイルアクティブ領域に上書きされる。
合成部20032は、第2のピクチャサイズwPict*hPictのメモリ、あるいは(wPict+wCRP[M-1])*(hPict+hCRP[N-1})のメモリから、タイルアクティブ領域(wAT[m],hAT[n])を抽出し、オーバーラップしないように配置してもとのピクチャのサイズ(第1のピクチャサイズ)の復号画像を合成する。ここで、もとのピクチャのサイズとは、各タイルアクティブ領域の幅と高さの総和(ΣwAT[m],ΣhAT[n])であり、表示画像のサイズである。
このようにCTU単位でタイルを処理できるようにすることで、符号化処理と復号処理に
、従来のタイル符号化処理、および、タイル復号処理を使用することが可能であり、符号化処理および復号処理の複雑度を下げることもできる。
、従来のタイル符号化処理、および、タイル復号処理を使用することが可能であり、符号化処理および復号処理の複雑度を下げることもできる。
本発明の一態様に係る動画像復号装置は、画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記タイルは、隣接するタイルとオーバーラップする領域を含み、前記合成部は、タイルのオーバーラップ領域において、各画素の複数の画素値をフィルタ処理し、前記タイルの復号画像の画素値とフィルタ処理した画素値を用いて表示画像を生成することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル復号部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを復号することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル情報は、タイルの個数、幅、高さ、隣接タイル間のオーバーラップの有無、および、タイルがオーバーラップする場合にオーバーラップ領域の幅と高さを含むことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイルの左上座標は、CTUの整数
倍の位置に限定されないことを特徴とする。
倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイルは、隣接するタイルとオーバーラップする領域と、クロップオフセット領域(タイル無効領域)を含み、オーバーラップする領域とクロップオフセット領域を含むタイルのサイズがCTUの整数倍であり、タ
イルの左上座標をCTUの整数倍の位置に限定することを特徴とする。
イルの左上座標をCTUの整数倍の位置に限定することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記合成部のフィルタ処理は、複数個のオーバーラップ領域の画素値の単純平均であることを特徴とする。
本発明の一態様に係る動画像復号装置において、前記合成部のフィルタ処理は、複数個のオーバーラップ領域の画素値に対し、タイル境界からの距離に依存して重みを変更する重み付き和であることを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置であって、タイル情報を算出するタイル情報算出部と、
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記分割部は、オーバーラップを許して、タイルに分割することを特徴とする。
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記分割部は、オーバーラップを許して、タイルに分割することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル符号化部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを符号化することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル情報は、タイルの個数、幅、高さ、隣接タイル間のオーバーラップの有無、および、タイルがオーバーラップする場合はオーバーラップ領域の幅と高さを含むことを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記分割部は、前記タイルの左上座標をCTUの整数倍の位置に限定せずに、画像をタイルに分割することを特徴とする。
本発明の一態様に係る動画像符号化装置において、
前記分割部は、画像の右端および下端のタイルにおいて、画像の右端のタイルの幅、および、下端のタイルの高さがCTUの整数倍ではない場合、画像の右端と下端のタイルにク
ロップオフセット領域を設け、タイルとクロップオフセット領域を加算した幅と高さがCTUの整数倍になるように画像を分割することを特徴とする。
前記分割部は、画像の右端および下端のタイルにおいて、画像の右端のタイルの幅、および、下端のタイルの高さがCTUの整数倍ではない場合、画像の右端と下端のタイルにク
ロップオフセット領域を設け、タイルとクロップオフセット領域を加算した幅と高さがCTUの整数倍になるように画像を分割することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記分割部は、画像を、隣接するタイルとオーバーラップする領域と、クロップオフセット領域を含むタイルに分割し、オーバーラップする領域とクロップオフセット領域を含むタイルのサイズがCTUの整数倍であ
り、タイルの左上座標をCTUの整数倍の位置に設定することを特徴とする。
り、タイルの左上座標をCTUの整数倍の位置に設定することを特徴とする。
本発明の一態様に係る動画像復号装置は、画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記タイル情報にはタイル行毎に含まれるタイルの個数と幅に関する情報が含まれ、前記タイル行に含まれるタイルの個数は異なり、前記合成部は、少なくとも前記タイルの復号画像の画素値を用いて表示画像を生成することを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置であって、タイル情報を算出するタイル情報算出部と、前記タイル情報を含むヘッダ情報を符号化するヘッダ情報生成部と、画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記分割部は、タイル行に含まれるタイルの個数は異なるよう画像をタイルに分割し、前記タイル情報算出部は、タイル行ごとに含まれるタイルの個数と幅に関するタイル情報を算出し、前記ヘッダ情報生成部は、前記タイル情報のシンタックスを生成することを特徴とする。
本発明の一態様に係る動画像復号装置は、画像を1つ以上のタイルからなるリージョンに分割し、リージョン単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、リージョン情報とタイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記リージョン情報と前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記合成部は、少なくとも前記タイルの復号画像の画素値を用い
て表示画像を生成することを特徴とする。
て表示画像を生成することを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像を1つ以上のタイルからなるリージョンに分割し、リージョン単位に動画像を符号化する動画像符号化装置であって、リージョン情報(リージョンの個数、左上座標、幅と高さ、無効領域にセットする画素値等)を算出するリージョン情報算出部とタイル情報を算出するタイル情報算出部と、前記リージョン情報と前記タイル情報を含むヘッダ情報のシンタックスを生成するヘッダ情報生成部と、画像をリージョンに分割し、リージョンの左上座標を始点としてリージョンをタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備えることを特徴とする。
本発明の一態様に係る動画像復号装置、および、動画像符号化装置において、前記リージョン情報は、各タイルが無効領域に含まれるか否かを通知するフラグを含むことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記リージョン情報に含まれる前記フラグが、対象タイルが無効領域に含まれることを示す場合、前記タイル復号部は対象タイルを復号しないことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル復号部は、対象タイルおよび対象タイルのコロケートタイルと、同じリージョンに含まれるタイルの情報のみを参照して、対象タイルを復号することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル符号化部は、対象タイルおよび対象タイルのコロケートタイルと、同じリージョンに含まれるタイルの情報のみを参照して、対象タイルを符号化することを特徴とする。
本発明の一態様に係る動画像復号装置は、画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で復号するこ
とを特徴とする。
とを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル拡張領域は、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、復号に利用されるオーバーラップ領域と、参照、復号しないクロップオフセット領域(タイル無効領域)から構成されることを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイルアクティブ領域と前記オーバーラップ領域を足したサイズは、CTUサイズの整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像復号装置は、画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記タイルは、復号・出力に利用されるタイル有効
領域と、復号・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、復号に利用されるオーバーラップ領域から構成され、前記タイル有効領域をCTU単位で復号することを特徴とする
。
領域と、復号・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、復号に利用されるオーバーラップ領域から構成され、前記タイル有効領域をCTU単位で復号することを特徴とする
。
本発明の一態様に係る動画像復号装置において、前記タイル有効領域と前記クロップオフセット領域を足したサイズは、CTUサイズの整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル復号部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを復号することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル情報は、タイルの個数、幅、高さ、隣接タイル間のオーバーラップの有無、および、タイルがオーバーラップする場合にオーバーラップ領域の幅と高さを含むことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記合成部は、複数個のオーバーラップ領域の画素値の単純平均を用いてフィルタ処理することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記合成部は、複数個のオーバーラップ領域の画素値に対し、タイル境界からの距離に依存して重みを変更する重み付き和を用いてフィルタ処理することを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置であって、タイル情報を算出するタイル情報算出部と、
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で符号化することを特徴と
する。
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で符号化することを特徴と
する。
本発明の一態様に係る動画像符号化装置において、前記タイル拡張領域は、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、符号化に利用されるオーバーラップ領域と、参照、符号化しないクロップオフセット領域(タイル無効領域)から構成されることを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイルアクティブ領域と前記オーバーラップ領域を足したサイズは、CTUサイズの整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置であって、タイル情報を算出するタイル情報算出部と、
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記タイルは、符号化・出力に利用されるタイル有効領域と、符号化・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、符号化に利用されるオーバーラップ領域から構成され、前記タイル有効領域をCTU符号化で符号化することを特徴とする。
画像をタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記タイルは、符号化・出力に利用されるタイル有効領域と、符号化・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、符号化に利用されるオーバーラップ領域から構成され、前記タイル有効領域をCTU符号化で符号化することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル有効領域と前記クロップオフセット領域を足したサイズは、CTUサイズの整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル符号化部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを符号化することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル情報は、タイルの個数、幅、高さ、隣接タイル間のオーバーラップの有無、および、タイルがオーバーラップする場合にオーバーラップ領域の幅と高さを含むことを特徴とする。
本発明の一態様に係る動画像復号装置は、画像を1つ以上のタイルからなるリージョンに分割し、リージョン単位に動画像を復号する動画像復号装置であって、
符号化ストリームからヘッダ情報を復号し、リージョン情報とタイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記リージョン情報と前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記リージョンのサイズはCTUサイズの整数倍
でなく、左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
符号化ストリームからヘッダ情報を復号し、リージョン情報とタイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、前記リージョン情報と前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、前記リージョンのサイズはCTUサイズの整数倍
でなく、左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイルは、リージョンとリージョンの外側の表示されない領域(ガードバンド)を合わせた矩形領域を分割した領域であることを特徴とする。
本発明の一態様に係る動画像符号化装置は、画像を1つ以上のタイルからなるリージョンに分割し、リージョン単位に動画像を符号化する動画像符号化装置であって、リージョン情報(リージョンの個数、左上座標、幅と高さ、無効領域にセットする画素値等)を算出するリージョン情報算出部と、タイル情報を算出するタイル情報算出部と、前記リージョン情報と前記タイル情報を含むヘッダ情報のシンタックスを生成するヘッダ情報生成部と、画像をリージョンに分割し、リージョンの左上座標を始点としてリージョンをタイルに分割する分割部と、タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、前記リージョンのサイズはCTUサイズの整数倍でなく、左上座標はCTUの整数倍の位置に限定されないことを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記分割部は、リージョンとリージョンの外側の表示されない領域(ガードバンド)を合わせた矩形領域をタイルに分割することを特徴とする。
本発明の一態様に係る動画像復号装置、および、動画像符号化装置において、前記リージョン情報は、各タイルが無効領域に含まれるか否かを通知するフラグを含むことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記リージョン情報に含まれる前記フラグが、対象タイルが無効領域に含まれることを示す場合、前記タイル復号部は対象タイルを復号しないことを特徴とする。
本発明の一態様に係る動画像復号装置において、前記タイル復号部は、対象タイルおよび対象タイルのコロケートタイルと、同じリージョンに含まれるタイルの情報のみを参照して、対象タイルを復号することを特徴とする。
本発明の一態様に係る動画像符号化装置において、前記タイル符号化部は、対象タイルおよび対象タイルのコロケートタイルと、同じリージョンに含まれるタイルの情報のみを参照して、対象タイルを符号化することを特徴とする。
本発明の一態様に係る動画像復号装置は、画像をタイル(タイル符号化領域)に分割し、タイル符号化領域単位に動画像を復号する動画像復号装置であって、符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、タイル毎の符号化データを復号し、タイル符号化領域の復号画像を生成するタイル復号部と、前記タイル情報を参照して前記タイル符号化領域の復号画像を合成し表示画像を生成する合成部とを備え、前記タイル符号化領域は、タイルアクティブ領域、オーバーラップ領域、クロップオフセット領域から構成され、タイルアクティブ領域は第1のピクチャを重複することなく分割する単位であり、クロップオフセット領域は、タイル符号化領域のサイズをCTUの整
数倍に設定するための符号化処理に関係しない無効領域であり、タイル符号化領域の左上座標はCTUの整数倍の位置、タイル符号化領域のサイズはCTUの整数倍に設定されることを特徴とする。
数倍に設定するための符号化処理に関係しない無効領域であり、タイル符号化領域の左上座標はCTUの整数倍の位置、タイル符号化領域のサイズはCTUの整数倍に設定されることを特徴とする。
本発明の一態様に係る動画像符号化装置は、第1のピクチャから、タイル(タイル符号化領域)をオーバーラップすることなく配置した第2のピクチャを生成し、前記タイル符号化領域毎に符号化する動画像符号化装置であって、第2のピクチャのサイズ(第2のピクチャサイズ)、およびタイル情報(タイルアクティブ領域、オーバーラップ領域、クロップオフセット領域のサイズ)を算出するタイル情報算出部と、前記タイル情報に従って、第1のピクチャを分割したタイルアクティブ領域と、その外側のオーバーラップ領域とクロップオフセット領域から構成される第2のピクチャをタイル符号化領域に分割するピクチャ分割部と、タイル符号化領域を符号化して符号化ストリームを生成するタイル符号化部とを備え、タイルアクティブ領域は第1のピクチャをオーバーラップすることなく分割する単位であり、クロップオフセット領域は、タイル符号化領域のサイズをCTUの整数
倍に設定するための符号化処理に関係しない無効領域であり、第2のピクチャのサイズは、タイルアクティブ領域、タイルオーバーラップ領域、クロップオフセット領域を加算して算出し、第2のピクチャ上で、タイル符号化領域の左上座標はCTUの整数倍の位置に設
定され、タイル符号化領域のサイズはCTUの整数倍であることを特徴とする。
倍に設定するための符号化処理に関係しない無効領域であり、第2のピクチャのサイズは、タイルアクティブ領域、タイルオーバーラップ領域、クロップオフセット領域を加算して算出し、第2のピクチャ上で、タイル符号化領域の左上座標はCTUの整数倍の位置に設
定され、タイル符号化領域のサイズはCTUの整数倍であることを特徴とする。
(ソフトウェアによる実現例)
なお、上述した実施形態におけるタイル符号化部2012、タイル復号部2002の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、タイル符号化部2012、タイル復号部2002のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュ
ータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記
プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
なお、上述した実施形態におけるタイル符号化部2012、タイル復号部2002の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、タイル符号化部2012、タイル復号部2002のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュ
ータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記
プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
〔応用例〕
上述した動画像符号化装置11及び動画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
上述した動画像符号化装置11及び動画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した動画像符号化装置11及び動画像復号装置31を、動画像の送信及び受信に利用できることを、図38を参照して説明する。
図38の(a)は、動画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック図である。図38の(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した動画像符号化装置11は、
この符号化部PROD_A1として利用される。
この符号化部PROD_A1として利用される。
送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像
するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部PRED_A7を更に備えていてもよい。図38の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部PRED_A7を更に備えていてもよい。図38の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよい
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
図38の(b)は、動画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック図である。図38の(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号部PROD_B3と、を備えている。上述した動画像復号装置31は、この復号部PROD_B3として利用される。
受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示す
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図38の(b)においては、
これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図38の(b)においては、
これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであって
もよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から
取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
もよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から
取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送(ここでは、送信先が予め特定されていない送信態様を指す)であってもよいし、通信(ここでは、送信先が予め特定されている送信態様を指す)であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
例えば、地上デジタル放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を無線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。また、ケーブルテレビ放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を有線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。
また、インターネットを用いたVOD(Video On Demand)サービスや動画共有サービスなどのサーバ(ワークステーションなど)/クライアント(テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど)は、変調信号を通信で送受信する送信装置PROD_A/受信装置PROD_Bの一例である(通常、LANにおいては伝送媒体として無線または有線の何れかが用いられ、WANにおいては伝送媒体として有線が用いられる)。ここで、パーソナルコンピュータには、デスクトップ型PC、ラップトップ型PC、及びタブレット型PCが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置PROD_A及び受信装置PROD_Bの双方として機能する。
次に、上述した動画像符号化装置11及び動画像復号装置31を、動画像の記録及び再生に利用できることを、図39を参照して説明する。
図39の(a)は、上述した動画像符号化装置11を搭載した記録装置PROD_Cの構成を示したブロック図である。図39の(a)に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した動画像符
号化装置11は、この符号化部PROD_C1として利用される。
号化装置11は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)などのように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリなどのように、記録装置PROD_
Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray(登録商標)Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたド
ライブ装置(不図示)に装填されるものであってもよい。
Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray(登録商標)Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたド
ライブ装置(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図39の(a)においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図39の(a)においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
このような記録装置PROD_Cとしては、例えば、DVDレコーダ、BDレコーダ、HDD(Hard Disk Drive)レコーダなどが挙げられる(この場合、入力端子PROD_C4または受信部PROD_C5が動画像の主な供給源となる)。また、カムコーダ(この場合、カメラPROD_C3が動画像の主な供給源となる)、パーソナルコンピュータ(この場合、受信部PROD_C5または画像
処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3
または受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_C
の一例である。
処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3
または受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_C
の一例である。
図39の(b)は、上述した動画像復号装置31を搭載した再生装置PROD_Dの構成を示したブロックである。図39の(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した
動画像復号装置31は、この復号部PROD_D2として利用される。
動画像復号装置31は、この復号部PROD_D2として利用される。
なお、記録媒体PROD_Mは、(1)HDDやSSDなどのように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリなどのよ
うに、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなど
のように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
うに、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなど
のように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図39の(b)においては、こ
れら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図39の(b)においては、こ
れら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
このような再生装置PROD_Dとしては、例えば、DVDプレイヤ、BDプレイヤ、HDDプレイヤなどが挙げられる(この場合、テレビジョン受像機等が接続される出力端子PROD_D4が動
画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称
され、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4または送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型またはタブレット型PC(この場合、ディスプレイPROD_D3または送
信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)なども、このような再生装置PROD_Dの一例である。
画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称
され、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4または送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型またはタブレット型PC(この場合、ディスプレイPROD_D3または送
信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)なども、このような再生装置PROD_Dの一例である。
(ハードウェア的実現およびソフトウェア的実現)
また、上述した動画像復号装置31および動画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
また、上述した動画像復号装置31および動画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記
プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random
Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random
Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc)/CD-R(CD Recordable)/ブルーレイディスク(Blu-ray(登録商標)Disc:登録商標)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electrically Erasable and Programmable Read-Only Memory:登録商標)
/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを、通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital
Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable
Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber
Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、BlueTooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(登録商標)(Digital Living Network Alliance:登録商標)
、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable
Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber
Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、BlueTooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(登録商標)(Digital Living Network Alliance:登録商標)
、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲
で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
11 動画像符号化装置
31 動画像復号装置
41 動画像表示装置
2002 タイル復号部
2012 タイル符号化部
31 動画像復号装置
41 動画像表示装置
2002 タイル復号部
2012 タイル符号化部
Claims (12)
- 画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置において、
符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、
タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、
前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、
前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、
前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で復号する
ことを特徴とする動画像復号装置。 - 前記タイル拡張領域は、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、復号に利用されるオーバーラップ領域と、参照、復号しないクロップオフセット領域(タイル無効領域)から構成されることを特徴とする請求項1に記載の動画像復号装置。
- 前記タイルアクティブ領域と前記オーバーラップ領域を足したサイズは、CTUサイズの
整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする
請求項2に記載の動画像復号装置。 - 画像をタイルに分割し、タイル単位に動画像を復号する動画像復号装置において、
符号化ストリームからヘッダ情報を復号し、タイル情報を算出するヘッダ情報復号部と、
タイル毎の符号化データを復号し、タイルの復号画像を生成するタイル復号部と、
前記タイル情報を参照して前記タイルの復号画像を合成し表示画像を生成する合成部とを備え、
前記タイルは、復号・出力に利用されるタイル有効領域と、復号・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、
前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、復号に利用されるオーバーラップ領域から構成され、
前記タイル有効領域をCTU単位で復号することを特徴とする動画像復号装置。 - 前記タイル有効領域と前記クロップオフセット領域を足したサイズは、CTUサイズの整
数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする請
求項4に記載の動画像復号装置。 - 前記タイル復号部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを復号することを特徴とする請求項1から5に記載の動画像復号装置。
- 画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置において、
タイル情報を算出するタイル情報算出部と、
画像をタイルに分割する分割部と、
タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、
前記タイルは、ピクチャを重複することなく分割する単位であるタイルアクティブ領域と隠れている領域(タイル拡張領域)から構成され、
前記タイルアクティブ領域に前記タイル拡張領域を加えた領域を、CTU単位で符号化す
ることを特徴とする動画像符号化装置。 - 前記タイル拡張領域は、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、符号化に利用されるオーバーラップ領域と、参照、符号化しないクロップオフセット領域(タイル無効領域)から構成されることを特徴とする請求項7に記載の動画像符号化装置。
- 前記タイルアクティブ領域と前記オーバーラップ領域を足したサイズは、CTUサイズの
整数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする
請求項8に記載の動画像符号化装置。 - 画像をタイルに分割し、タイル単位に動画像を符号化する動画像符号化装置において、
タイル情報を算出するタイル情報算出部と、
画像をタイルに分割する分割部と、
タイルを符号化し、符号化ストリームを生成するタイル符号化部とを備え、
前記タイルは、符号化・出力に利用されるタイル有効領域と、符号化・出力に利用されないクロップオフセット領域(タイル無効領域)から構成され、
前記タイル有効領域は、ピクチャを分割する単位であるタイルアクティブ領域と、隣接タイルのタイルアクティブ領域とオーバーラップし、参照、符号化に利用されるオーバーラップ領域から構成され、
前記タイル有効領域をCTU符号化で符号化することを特徴とする動画像符号化装置。 - 前記タイル有効領域と前記クロップオフセット領域を足したサイズは、CTUサイズの整
数倍でなく、タイルの左上座標はCTUの整数倍の位置に限定されないことを特徴とする請
求項10に記載の動画像符号化装置。 - 前記タイル符号化部は、対象タイルの情報、および、対象タイルのコロケートタイルの情報のみを参照して、対象タイルを符号化することを特徴とする請求項7から11に記載の動画像符号化装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018054270A JP2021064819A (ja) | 2018-03-22 | 2018-03-22 | 動画像符号化装置及び動画像復号装置 |
PCT/JP2019/004497 WO2019159820A1 (ja) | 2018-02-14 | 2019-02-07 | 動画像符号化装置及び動画像復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018054270A JP2021064819A (ja) | 2018-03-22 | 2018-03-22 | 動画像符号化装置及び動画像復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021064819A true JP2021064819A (ja) | 2021-04-22 |
Family
ID=75486720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018054270A Pending JP2021064819A (ja) | 2018-02-14 | 2018-03-22 | 動画像符号化装置及び動画像復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021064819A (ja) |
-
2018
- 2018-03-22 JP JP2018054270A patent/JP2021064819A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7223886B2 (ja) | 画像復号方法 | |
JP7260472B2 (ja) | 画像フィルタ装置 | |
WO2018199001A1 (ja) | 画像復号装置及び画像符号化装置 | |
WO2018221368A1 (ja) | 動画像復号装置、及び動画像符号化装置 | |
WO2018116925A1 (ja) | イントラ予測画像生成装置、画像復号装置、および画像符号化装置 | |
WO2018037896A1 (ja) | 画像復号装置、画像符号化装置、画像復号方法、および画像符号化方法 | |
JP6911856B2 (ja) | 画像処理装置および方法 | |
WO2018037853A1 (ja) | 画像復号装置及び画像符号化装置 | |
WO2019221072A1 (ja) | 画像符号化装置、符号化ストリーム抽出装置及び画像復号装置 | |
JP2021010046A (ja) | 画像符号化装置及び画像復号装置 | |
WO2018110203A1 (ja) | 動画像復号装置、および動画像符号化装置 | |
JP7213689B2 (ja) | 画像復号装置及び画像符号化装置 | |
US20170142442A1 (en) | Dmm prediction section, image decoding device, and image coding device | |
KR20220041897A (ko) | 인루프 필터링 기반 영상 코딩 장치 및 방법 | |
JP7241153B2 (ja) | 画像復号装置 | |
WO2019159820A1 (ja) | 動画像符号化装置及び動画像復号装置 | |
JPWO2020045248A1 (ja) | 動画像復号装置および動画像符号化装置 | |
JP2019201255A (ja) | 画像フィルタ装置、画像復号装置、および画像符号化装置 | |
WO2019230904A1 (ja) | 画像復号装置、および画像符号化装置 | |
JP7073186B2 (ja) | 画像フィルタ装置 | |
WO2018173862A1 (ja) | 画像復号装置及び画像符号化装置 | |
WO2018061550A1 (ja) | 画像復号装置及び画像符号化装置 | |
JP7409802B2 (ja) | 動画像復号装置および動画像符号化装置 | |
WO2019131349A1 (ja) | 画像復号装置、画像符号化装置 | |
WO2019131778A1 (ja) | 画像復号装置及び画像符号化装置 |