(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183430
(43)【公開日】2023-12-28
(54)【発明の名称】動画像復号装置および動画像符号化装置および角度モード導出装置
(51)【国際特許分類】
H04N 19/11 20140101AFI20231221BHJP
H04N 19/136 20140101ALI20231221BHJP
H04N 19/593 20140101ALI20231221BHJP
H04N 19/70 20140101ALI20231221BHJP
【FI】
H04N19/11
H04N19/136
H04N19/593
H04N19/70
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022096934
(22)【出願日】2022-06-16
(71)【出願人】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100157200
【弁理士】
【氏名又は名称】野口 茂孝
(74)【代理人】
【識別番号】100160783
【弁理士】
【氏名又は名称】堅田 裕之
(72)【発明者】
【氏名】八杉 将伸
(72)【発明者】
【氏名】猪飼 知宏
(72)【発明者】
【氏名】青野 友子
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159RC12
5C159TA32
5C159TB08
5C159TC02
5C159TC42
5C159TD03
5C159TD05
5C159TD15
5C159UA02
5C159UA05
(57)【要約】
【課題】従来の角度モード導出では、画素値の勾配を角度モードに変換するために大小関係の比較が複数回必要であり並列処理の妨げとなっていた。
【解決手段】勾配導出対象画像に含まれる画素値の勾配を導出する勾配導出部を備え、勾配導出部の導出する第1の勾配と、第1の勾配とは異なる第2の勾配、と2つの所定のテーブルを用いて角度モードを導出する角度モード導出部を備えることを特徴とする
【選択図】
図6
【特許請求の範囲】
【請求項1】
勾配導出対象画像に含まれる画素値の勾配を導出する勾配導出部を備え、勾配導出部の導出する第1の勾配と、第1の勾配とは異なる第2の勾配、と2つの所定のテーブルを用いて角度モードを導出する角度モード導出部を備えることを特徴とする角度モード導出装置。
【請求項2】
ある画素における勾配の対数値xによるシフトを用いて導出した値norm_s1を用いて第1のテーブルgradDivTableを参照してある値vを導出し、さらに、vと上記対数値xによるシ
フトにより得られるidxを用いて第2のテーブルLUTを参照して角度モードmodeValを導出
する第1の請求項の角度モード導出装置。
【請求項3】
上記角度モード導出装置は、さらにある画素における第1の勾配の対数値xによるシフ
トを用いて導出した値norm_s1を用いて第1のテーブルgradDivTableを参照してある値vを導出し、さらに、vと第1の勾配とは異なる第2の勾配の積を上記対数値xによるシフトにより得られるidxを用いて第2のテーブルLUTを参照して角度モードmodeValを導出するこ
とを特徴とする請求項2に記載の角度モード導出装置。
【請求項4】
上記角度モード導出装置は、さらに勾配導出対象画像の中の画素で導出された複数の角度モードから角度モード代表値を選択する角度モード選択部を備えることを特徴とする角度モード導出装置。
【請求項5】
上記テーブルの要素が0以上の整数であることを特徴とする請求項1に記載の角度モード導出装置。
【請求項6】
上記テーブルの要素は0以上の整数かつ昇順の値かつ同じ値の要素の数は最後の要素を
除いて増加する関係を有することを特徴とする請求項5に記載の角度モード導出装置。
【請求項7】
上記角度モード選択部は、上記導出された角度モードの平均値を用いて選択することを特徴とする請求項1に記載の動画像復号装置および角度モード導出装置。
【請求項8】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、テーブルから導出された角度モードと基準モードを加算してイントラ予測モードを導出し、さらに、導出した上記イントラ予測モードに基づいて予測画像を導出する予測画像導出部を備える動画像復号装置。
【請求項9】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、上記角度モードに基づいて変換行列を導出し、導出された変換行列を用いて変換係数の逆変換をする逆変換部を備えることを特徴とする画像復号装置。
【請求項10】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、テーブルから導出された角度モードと基準モードを加算してイントラ予測モードを導出し、さらに、導出した上記イントラ予測モードに基づいて予測画像を導出する予測画像導出部を備える動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、動画像復号装置および動画像符号化装置および角度モード導出装置に関する。
【背景技術】
【0002】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
【0003】
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)にて提案されている方式などが挙げられる。
【0004】
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得
られる符号化単位(符号化ユニット(Coding Unit:CU)と呼ばれることもある)、及び
、符号化単位を分割することより得られる変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CU毎に符号化/復号される。
【0005】
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測誤差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる。
【0006】
また、近年の動画像符号化及び復号の技術として非特許文献1が挙げられる。非特許文献1には、デコーダが隣接領域の画素を用いてイントラ方向予測モード番号を導出することにより予測画像を導出するデコーダ側イントラモード導出(Decoder-side Intra Mode Derivation, DIMD)予測が開示されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】M. Abdoli, T. Guionnet, E. Mora, et. al, “Non-CE3: Decoder-side Intra Mode Derivation with Prediction Fusion Using Planar”, JVET-O0449, Gothenburg, July 2019.
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1のような角度モード導出、対象領域の画素値の勾配を用いてデコーダ側イントラモード導出に利用される角度モードを推定する。このとき、勾配の方向を角度モードに変換するために大小関係の比較が繰り返し行われ、処理量が増加するという課題がある。また勾配の角度比の導出と、角度比から角度モードへの変換が2段階であり処理用が大きくなる。
【0009】
本発明は、角度モード導出において、勾配から角度モードを導出するための処理量を増やすことなく好適な角度モード導出を行うことを目的とする。
【課題を解決するための手段】
【0010】
勾配導出対象画像に含まれる画素値の勾配を導出する勾配導出部を備え、勾配導出部の導出する第1の勾配と、第1の勾配とは異なる第2の勾配、と2つの所定のテーブルを用いて角度モードを導出する角度モード導出部を備えることを特徴とする。
【0011】
ある画素における勾配の対数値xによるシフトを用いて導出した値norm_s1を用いて第1のテーブルgradDivTableを参照してある値vを導出し、さらに、vと上記対数値xによるシ
フトにより得られるidxを用いて第2のテーブルLUTを参照して角度モードmodeValを導出
する。
【0012】
上記角度モード導出装置は、さらにある画素における第1の勾配(absxもしくはabsy)の対数値xによるシフトを用いて導出した値norm_s1を用いて第1のテーブルgradDivTableを参照してある値vを導出し、さらに、vと第1の勾配とは異なる第2の勾配の積を上記対数値xによるシフトにより得られるidxを用いて第2のテーブルLUTを参照して角度モードmodeValを導出することを特徴とする。
【0013】
上記角度モード導出装置は、さらに勾配導出対象画像の中の画素で導出された複数の角度モードから角度モード代表値を選択する角度モード選択部を備えることを特徴とする。
【0014】
上記テーブルの要素が0以上の整数であることを特徴とする。
【0015】
上記テーブルの要素は0以上の整数かつ昇順の値かつ同じ値の要素の数は最後の要素を
除いて増加する関係を有することを特徴とする。
【0016】
上記角度モード選択部は、上記導出された角度モードの平均値を用いて選択することを特徴とする。
【0017】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、テーブルから導出された角度モードと基準モードを加算してイントラ予測モードを導出し、さらに、導出した上記イントラ予測モードに基づいて予測画像を導出する。
【0018】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、上記角度モードに基づいて変換行列を導出し、導出された変換行列を用いて変換係数の逆変換をする逆変換部を備えることを特徴とする。
【0019】
上記角度モード導出装置は、対象ブロックの上と左に隣接する領域を勾配導出対象画像とし、テーブルから導出された角度モードと基準モードを加算してイントラ予測モードを導出し、さらに、導出した上記イントラ予測モードに基づいて予測画像を導出する。
【発明の効果】
【0020】
本発明の一態様によれば、デコーダ側イントラモード導出の計算量を増大させることなく好適なイントラ予測を行うことができる。
【図面の簡単な説明】
【0021】
【
図1】本実施形態に係る画像伝送システムの構成を示す概略図である。
【
図2】符号化ストリームのデータの階層構造を示す図である。
【
図3】イントラ予測モードの種類(モード番号)を示す概略図である。
【
図5】イントラ予測画像生成部の構成を示す図である。
【
図11】動画像符号化装置の構成を示すブロック図である。
【
図12】角度モード導出部の構成を示すブロック図である。
【
図13】逆量子化・逆変換部の構成例を示す機能ブロック図である。
【発明を実施するための形態】
【0022】
(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
【0023】
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
【0024】
画像伝送システム1は、符号化対象画像を符号化した符号化ストリームを伝送し、伝送された符号化ストリームを復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31、及び動画像表示装置(画像表示装置)41を含んで構成される。
【0025】
動画像符号化装置11には画像Tが入力される。
【0026】
ネットワーク21は、動画像符号化装置11が生成した符号化ストリームTeを動画像復号装置31に伝送する。ネットワーク21は、インターネット(Internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であってもよい。また、ネットワーク21は、DVD(Digital Versatile Disc:登録商標)、BD(Blu-ray Disc:登録商標)等の符号化ストリームTeを記録した記憶媒体で代替されてもよい。
【0027】
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、復号した1または複数の復号画像Tdを生成する。
【0028】
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
【0029】
<演算子>
本明細書で用いる演算子を以下に記載する。
【0030】
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR
、^はビットワイズXOR、|=はOR代入演算子であり、!は論理否定(NOT)、&&は論理積(AND)
、||は論理和(OR)を示す。
【0031】
x?y:zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
【0032】
Clip3(a,b,c) は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
【0033】
Clip1Y(c)は、Clip3(a,b,c)において a=0、b=(1<<BitDepthY)-1に設定した演算子であ
る。BitDepthYは輝度のビット深度である。
【0034】
abs(a)はaの絶対値を返す関数である。
【0035】
Int(a)はaの整数値を返す関数である。
【0036】
Floor(a)はa以下の最大の整数を返す関数である。
【0037】
Log2(a)は2を底とする対数を返す関数である。
【0038】
Ceil(a)はa以上の最小の整数を返す関数である。
【0039】
a/dはdによるaの除算(小数点以下切り捨て)を表す。
【0040】
Min(a,b)はaとbのうち小さい値を返す関数である。
【0041】
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
【0042】
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
図2には、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図が示されている。
【0043】
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、
図2の符号化ビデ
オシーケンスに示すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
【0044】
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複
数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
【0045】
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れか
を選択する。
【0046】
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
【0047】
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、
図2の符号化ピクチャに示すように、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)
。
【0048】
なお、以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の
添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
【0049】
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照
するデータの集合が規定されている。スライスは、
図2の符号化スライスに示すように、スライスヘッダ、および、スライスデータを含んでいる。
【0050】
スライスヘッダには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
【0051】
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P
、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライ
スを指す。
【0052】
なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいてもよい。
【0053】
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、
図2の符号化スライスヘッダに示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
【0054】
(符号化ツリーユニット)
図2の符号化ツリーユニットには、処理対象のCTUを復号するために動画像復号装置31
が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
【0055】
(符号化ユニット)
図2の符号化ユニットに示すように、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
【0056】
予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCUのサイズよりも大きい場合、CUは、サブCUに分割される。例えばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
【0057】
予測の種類(予測モード)は、イントラ予測と、インター予測の2つがある。イントラ予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
【0058】
変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位
でエントロピー符号化してもよい。
【0059】
(予測パラメータ)
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
【0060】
以下、イントラ予測の予測パラメータについて説明する。イントラ予測パラメータは、輝度予測モードIntraPredModeY、色差予測モードIntraPredModeCから構成される。
図3は、イントラ予測モードの種類(モード番号)を示す概略図である。図に示すように、イントラ予測モードは、例えば67種類(0~66)存在する。例えば、プレーナ予測(0)、DC予測(1)、Angular予測(2~66)である。この他、色成分間線形モデル(CCLM: Cross Component Linear Model)予測や、マルチモード線形モデル(MMLM: Multi Mode Linear Model)予測といったリニアモデル(LM: Linear Model)予測を用いてもよい。さらに、色差ではLMモードを追加してもよい。
【0061】
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(
図4)の構成について説明する。
【0062】
動画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置
)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構
成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
【0063】
また、パラメータ復号部302は、図示しないインター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
【0064】
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず
、サブCU単位で処理をしてもよい。あるいはCTU、CU、をブロック、サブCUをサブブロッ
クと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
【0065】
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロ
ピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。エントロピー符
号化には、シンタックス要素の種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックス要素を可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックス要素を可変長符号化する方式がある。前者のCABAC(Context Adaptive Binary Arithmetic Coding)は、符号化あるいは復号したピクチャ(スライス)毎に更新した確率モデルをメモリに格納する。そして、Pピクチャ、
あるいはBピクチャのコンテキストの初期状態として、メモリに格納された確率モデルの
中から、同じスライスタイプ、同じスライスレベルの量子化パラメータを使用したピクチャの確率モデルを設定する。この初期状態を符号化、復号処理に使用する。分離された符号には、予測画像を生成するための予測情報および、差分画像を生成するための予測誤差などがある。
【0066】
エントロピー復号部301は、分離した符号をパラメータ復号部302に出力する。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
【0067】
(イントラ予測パラメータ復号部304の構成)
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測
パラメータ、例えば、イントラ予測モードIntraPredModeを復号する。イントラ予測パラ
メータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。イントラ予測パラメータ復号部304は、輝度と色差で異なるイントラ予測モードを導出してもよい。
【0068】
イントラ予測パラメータ復号部304は、
図7に示すようなイントラ予測に関するシンタックス要素を復号する。
【0069】
ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング
歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適
応ループフィルタ(ALF)等のフィルタを施す。
【0070】
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、対象ピクチャ及び対象CU毎に予め定めた位置に記憶する。
【0071】
予測パラメータメモリ307は、復号対象のCTUあるいはCU毎に予め定めた位置に予測パラメータを記憶する。具体的には、予測パラメータメモリ307は、パラメータ復号部302が復号したパラメータ及びエントロピー復号部301が分離した予測モードpredMode等を記憶す
る。
【0072】
予測画像生成部308には、予測モードpredMode、予測パラメータ等が入力される。また
、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、予測パラメータと読み出した参
照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、予測画像を生成するために参照する領域である。
【0073】
(イントラ予測画像生成部310)
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は
、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと参照ピク
チャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
【0074】
具体的には、イントラ予測画像生成部310は、対象ピクチャ上の、対象ブロックから予
め定めた範囲にある隣接ブロックを参照ピクチャメモリ306から読み出す。予め定めた範
囲とは、対象ブロックの左、左上、上、右上の隣接ブロックであり、イントラ予測モードによって参照する領域は異なる。
【0075】
イントラ予測画像生成部310は、読み出した復号画素値とIntraPredModeが示す予測モードを参照して、対象ブロックの予測画像を生成する。イントラ予測画像生成部310は生成
したブロックの予測画像を加算部312に出力する。
【0076】
イントラ予測モードに基づく予測画像の生成について以下で説明する。Planar予測、DC予測、Angular予測では、予測対象ブロックに隣接(近接)する復号済みの周辺領域を参
照領域Rとして設定する。そして、参照領域R上の画素を特定の方向に外挿することで予測画像を生成する。例えば、参照領域Rは、予測対象ブロックの左と上(あるいは、さらに、左上、右上、左下)を含むL字型の領域として設定してもよい。
【0077】
(予測画像生成部の詳細)
次に、
図5を用いてイントラ予測画像生成部310の構成の詳細を説明する。イントラ予測画像生成部310は、参照サンプルフィルタ部3103(第2の参照画像設定部)、予測部3104
、および、予測画像補正部3105(予測画像補正部、フィルタ切替部、重み係数変更部)を備える。
【0078】
参照領域R上の各参照画素(参照画像)、参照画素フィルタ(第1のフィルタ)を適用して生成したフィルタ済参照画像、イントラ予測モードに基づいて、予測部3104は予測対象ブロックの予測画像(仮予測画像、補正前予測画像)を生成し、予測画像補正部3105に出力する。予測画像補正部3105は、イントラ予測モードに応じて仮予測画像を修正し、予測画像(補正済予測画像)を生成し、出力する。
【0079】
以下、イントラ予測画像生成部310が備える各部について説明する。
【0080】
(参照サンプルフィルタ部3103)
参照サンプルフィルタ部3103は、参照画像を参照して参照領域R上の各位置(x,y)の参
照サンプルs[x][y]を導出する。また、参照サンプルフィルタ部3103は、イントラ予測モ
ードに応じて、参照サンプルs[x][y]に参照画素フィルタ(第1のフィルタ)を適用して
、参照領域R上の各位置(x,y)の参照サンプルs[x][y]を更新する(フィルタ済参照画像s[x][y]を導出する)。具体的には、位置(x,y)とその周辺の参照画像にローパスフィルタを適用し、フィルタ済参照画像を導出する。なお、必ずしも全イントラ予測モードにローパスフィルタを適用する必要はなく、一部のイントラ予測モードに対してローパスフィルタを適用してもよい。なお、参照サンプルフィルタ部3103において参照領域R上の参照画像に適用するフィルタを「参照画素フィルタ(第1のフィルタ)」と呼称するのに対し、後述の予測画像補正部3105において仮予測画像を補正するフィルタを「ポジション依存フィルタ(第2のフィルタ)」と呼称する。
【0081】
(イントラ予測部3104の構成)
イントラ予測部3104は、イントラ予測モードと、参照画像、フィルタ済参照画素値に基づいて予測対象ブロックの仮予測画像(仮予測画素値、補正前予測画像)を生成し、予測画像補正部3105に出力する。予測部3104は、内部にPlanar予測部31041、DC予測部31042、Angular予測部31043、LM予測部31044、MIP(Matrix-based Intra Prediction)部31045、DIMD予測部31046(Decoder-side Intra Mode Derivation, DIMD)を備えている。予測部3104は、イントラ予測モードに応じて特定の予測部を選択して、参照画像、フィルタ済参照画像を入力する。イントラ予測モードと対応する予測部との関係は次の通りである。
・Planar予測 ・・・・Planar予測部31041
・DC予測 ・・・・DC予測部31042
・Angular予測 ・・・・Angular予測部31043
・LM予測 ・・・・LM予測部31044
・行列イントラ予測・・MIP部31045
・DIMD予測・・・・・・DIMD予測部31046
(Planar予測)
Planar予測部31041は、予測対象画素位置と参照画素位置との距離に応じて参照サンプ
ルs[x][y]を線形加算して仮予測画像を生成し、予測画像補正部3105に出力する。
【0082】
(DC予測)
DC予測部31042は、参照サンプルs[x][y]の平均値に相当するDC予測値を導出し、DC予測値を画素値とする仮予測画像q[x][y]を出力する。
【0083】
(Angular予測)
Angular予測部31043は、イントラ予測モードの示す予測方向(参照方向)の参照サンプルs[x][y]を用いて仮予測画像q[x][y]を生成し、予測画像補正部3105に出力する。
【0084】
(LM予測)
LM予測部31044は、輝度の画素値に基づいて色差の画素値を予測する。具体的には、復
号した輝度画像をもとに、線形モデルを用いて、色差画像(Cb、Cr)の予測画像を生成する方式である。LM予測の1つとして、CCLM(Cross-Component Linear Model prediction
)予測がある。CCLM予測は、1つのブロックに対し、輝度から色差を予測するための線形モデルを使用する予測方式である。
【0085】
(行列イントラ予測)
MIP部31045は、隣接領域から導出した参照サンプルs[x][y]と重み行列の積和演算によ
り仮予測画像q[x][y]を生成し、予測画像補正部3105に出力する。
【0086】
(DIMD予測)
DIMD予測部31046は、明示的にシグナルされないイントラ予測モードを用いて予測画像
を生成する予測方式である。イントラ予測パラメータ復号部304は、角度モード導出装置310465において、隣接領域の情報を用いて対象ブロックに適したイントラ予測モードを導
出し、DIMD予測部31046はこのイントラ予測モードを用いて予測画像を生成する。詳細に
ついては後述する。
【0087】
(予測画像補正部3105の構成)
予測画像補正部3105は、イントラ予測モードに応じて、予測部3104から出力された仮予測画像を修正する。具体的には、予測画像補正部3105は、仮予測画像の各画素に対し、参照領域Rと対象予測画素の位置に応じて、ポジションに依存した重み係数を導出する。そして、参照サンプルs[][]と仮予測画像q[x][y]を重み付け加算(加重平均)することで、仮予測画像を修正した予測画像(補正済予測画像)Pred[][]を導出する。なお、一部のイントラ予測モードでは、予測画像補正部3105で仮予測画像q[x][y]を補正せずに予測画像と
してセットしてもよい。
【0088】
(実施例1)
図6は、本実施形態におけるDIMD予測部31046の構成を示している。DIMD予測部31046は
、角度モード導出装置310465(勾配導出部310461、角度モード導出部310462)と、角度モード選択部310463、仮予測画像生成部310464から構成される。角度モード導出装置310465は角度モード選択部310463を含んでもよい。
【0089】
図7は、DIMDに関する符号化データのシンタックス例を示している。イントラ予測パラ
メータ復号部304は、符号化データからブロック毎にDIMDを用いるかどうかを示すフラグdimd_flagを復号する。dimd_flagが1の場合、パラメータ復号部302は、イントラ予測モー
ドに関するシンタックス要素(例えばMIP予測を行うかのフラグintra_mip_flag、予測候
補Most Probable Mode(MPM)を利用するかを示すフラグintra_luma_mpm_flag、MPMを利用
する場合にMPMを指定するインデックスintra_luma_mpm_idx、MPMを利用しない場合の残り候補を選択するインデックスintra_luma_mpm_reminder)を符号化データから復号しなく
てもよい。dimd_flagが0の場合、intra_luma_mpm_flagを復号し、intra_luma_mpm_flagが0の場合さらにintra_luma_mpm_flag dimd_flagが1の場合、DIMD予測部31046は、隣接領域におけるテクスチャ方向を示す角度を、画素値を用いて導出する。そして、その角度に対応するイントラ予測モードを用いて仮予測画像を生成する。例えば、(1)隣接領域内の所定の位置の画素について画素値の勾配方向を導出する。(2)導出された勾配方向を、対応する方向予測モード(Angular予測モード)に変換する。(3)隣接領域内の所定の画素毎に、それぞれ得られた予測方向のヒストグラムを作成する。(4)前記ヒストグラムから最頻値の予測モードまたは最頻値を含む複数の予測モードを選択し、当該予測モードを用いて仮予測画像を生成する。以下では
図6に示したDIMD予測部31046の各部における処理について、より詳細に説明する。
【0090】
(1)勾配導出部
勾配導出部310461は、勾配導出対象画像の画像データに基づいてテクスチャ方向を示す角度(角度情報)を導出する。角度情報は、1/36精度の角度を表す値であってもよいし、他の値でもよい。勾配導出部310461は、2つ以上の特定方向の勾配(例えばDx,Dy)を導出し、勾配Dx,Dyの関係から勾配の方向(角度情報)を導出する。
【0091】
勾配の導出には、空間フィルタを用いてもよい。空間フィルタには、例えば
図8(a)および(b)に示すような、水平方向および垂直方向に対応する3x3画素Sobelフィルタを用いて
もよい。勾配導出部310461はは、勾配導出対象画像におけるN個の勾配導出対象位置の点Pn[0][0](n=0..N-1)について勾配を導出する。
図9(a)は、8x8画素の対象ブロックにおいて、勾配導出対象画素の位置の例を示している。また、
図9(b)は、4x4画素の対象ブロックにおいて、勾配導出対象画素の位置の例を示す。角度モード導出装置310465をイントラ予測に用いる場合、対象ブロックの隣接領域にある網掛けの画像が勾配導出対象画像であってもよい。また、勾配導出対象画像は、対象ブロックの色差画像に対応する輝度画像であってもよい。このように、対象ブロックのサイズや隣接領域に含まれるブロックの予測モード等の情報によって、勾配導出対象画素の個数、位置のパターン、空間フィルタの参照範囲を変更してもよい。
【0092】
具体的には、勾配導出部310461は、各点Pnについて次式のように水平方向と垂直方向の勾配Dx,Dyを導出する。
Dx = Pn[-1][-1] + 2*Pn[-1][0] + Pn[-1][1] - Pn[1][-1] - 2*Pn[1][0] - Pn[1][1]
Dy = - Pn[-1][-1] - 2*Pn[0][-1] - Pn[1][-1] + Pn[-1][1] + 2*Pn[0][1] + Pn[1][1]
ここでPn[x][y]は、勾配導出対象位置の点Pn([0][0])からの相対座標で表した画素における画素値である。
図8(a)および(b)のフィルタを左右または上下に反転した、
図8(c)お
よび(d)のフィルタを用いてもよい。その場合は次式を用いてDxおよびDyを導出する。
Dx = - Pn[-1][-1] - 2*Pn[-1][0] - Pn[-1][1] + Pn[1][-1] + 2*Pn[1][0] + Pn[1][1]
Dy = Pn[-1][-1] + 2*Pn[0][-1] + Pn[1][-1] - Pn[-1][1] - 2*Pn[0][1] - Pn[1][1]
勾配の導出方法はこれに限らず、他の方法(フィルタ、計算式、テーブル等)を用いてもよい。例えば、Sobelフィルタの代わりにPrewittフィルタやScharrフィルタなどを用いてもよいし、フィルタサイズを2x2や5x5にしてもよい。勾配導出部310461はPrewittフィ
ルタを用いてDx,Dyを次のように導出する。
Dx = Pn[-1][-1] + Pn[-1][0] + Pn[-1][1] - Pn[1][-1] - Pn[1][0] - Pn[1][1]
Dy = - Pn[-1][-1] - Pn[0][-1] - Pn[1][-1] + Pn[-1][1] + Pn[0][1] + Pn[1][1]
次式は、Scharrフィルタを用いてDx,Dyを導出する例である。
Dx = 3*Pn[-1][-1]+10*Pn[-1][0]+3*Pn[-1][1] -3*Pn[1][-1]-10*Pn[1][0]-3*Pn[1][1]
Dy = -3*Pn[-1][-1]-10*Pn[0][-1]-3*Pn[1][-1] +3*Pn[-1][1]+10*Pn[0][1]+3*Pn[1][1]
勾配の導出方法は、ブロック毎に変更してもよい。例えば、4x4画素の対象ブロックに
対してはSobelフィルタを用い、4x4より大きなブロックに対してはScharrフィルタを使う。このように小ブロックでは演算のより簡単なフィルタを用いることで、小ブロックにおける計算量の増加を抑制することができる。
【0093】
勾配の導出方法は、勾配導出対象画素の位置毎に変更してもよい。例えば、上または左の隣接領域内にある勾配導出対象画素についてはSobelフィルタを用い、左上の隣接領域
内にある勾配導出対称画素についてはScharrフィルタを使う。
【0094】
勾配導出部310461は、Dx,Dyの符号と大小関係に基づいて、対象ブロックのテクスチャ
の角度の象限(quadrant、以下領域(region)と記す)と象限内の角度(angle)からなる角
度情報を導出する。領域により回転対称や線対称の関係にある方向の処理を共通化することが可能になる。ただし角度情報は領域と象限内の角度に限らない。例えば角度のみの情報とし、領域は必要に応じて導出してもよい。また、本実施形態では、以下で導出されるイントラ方向予測モードは左下から右上までの方向(
図3の2~66)に限定し、180度回転対称の方向のイントラ方向予測モードはこれと同一に扱う。
【0095】
図10(a)は、Dx,Dyの符号(signx, signy)、大小関係(xgty)、および、領域region(Ra~Rdの各々は領域を表す定数)の関係を示すテーブルである。
図10(b)は、領域Ra~Rdの示す象限を示している。勾配導出部310461はsignx, signy, xgtyを次のように導出する。
absx = abs(Dx)
absy = abs(Dy)
signx = Dx < 0 ? 1 : 0
signy = Dy < 0 ? 1 : 0
xgty = absx > absy ? 1 : 0
ここで、不等号(>、<)は等号つき(>=、<=)であっても構わない。領域は大まかな角度を示し、Dx,Dyの符号signx, signyと大小関係xgtyだけから導出できる。
【0096】
勾配導出部は310461、符号signx, signyと大小関係xgtyから、演算やテーブル参照を用いてregionを導出する。勾配導出部は、
図10(a)のテーブルを参照し、対応するregionを
導出してもよい。
【0097】
勾配導出部310461は、以下のように論理式を用いてregionを導出してもよい。
region = xgty ? ( (signx^signy) ? 1 : 0 ) : ( (signx^signy) ? 2 : 3)
ここで^はXOR(排他的論理和)を示す。regionを0から3の値で示す。{Ra,Rb,Rc,Rd} = {0,1,2,3}。なお、regionの値の割り当て方は上記に限定されない。
【0098】
勾配導出部310461は、以下のように別の論理式と加算乗算を用いてregionを導出してもよい。
region = 2*(!xgty) + (signx^signy^!xgty)
ここで記号!は論理否定を意味する。
【0099】
(2)角度モード導出部
角度モード導出部310462は、点Pnの勾配情報に基づき、角度モード(勾配に対応する予測モード、例えば、イントラ予測モード)を導出する。
【0100】
図12は角度モード導出部310462の一つの構成を示すブロック図である。
図12に示すように第1の勾配、第2の勾配と2つのテーブルを用いて以下のように角度モードmode_deltaを導出してもよい。
【0101】
角度モード導出部310462は、角度係数導出部310466とモード変換部310467からなる。角度係数導出部310466は2つの勾配に基づき角度係数iRatio(もしくはv)を導出する。こ
こでは、第1の勾配の絶対値absx,第2の勾配の絶対値absyに基づいて傾きiRatio(=absy÷absx)を導出する。iRatioとしてratioを1/R_UNIT刻みで表現した整数を用いる。
iRatio = int(R_UNIT*absy/absx) ≒ ratio*R_UNIT
R_UNITは、2の指数乗(1<<shiftR)、例えば65536(shiftR=16)などを用いる。
【0102】
以下にiRatioの導出方法を例示するが、この例に限らない。
【0103】
s0 = xgty ? absy : absx
s1 = xgty ? absx : absy
x = Floor( Log2( s1 ) )
norm_s1 = (s1 << 4 >> x) & 15
v = gradDivTable[norm_s1] | 8
x += (norm_s1 != 0)
shift = 13 - x
if (shift < 0){
shift = -shift
add = (1 << (shift - 1))
iRatio = (s0 * v + add) >> shift
} else {
iRatio = (s0 * v) << shift
}
ここでgradDivTable = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 }
あるいは、上式| 8を+8で計算してもよい。同様に|16,|32,|64は各々+16,+32,+64でも
計算可能である。
あるいは、角度係数導出部310466はS0、S1の入力に対し、上式と同じ値を出力するLUT
を用いて、iRatioを導出してもよい。
【0104】
モード変換部310467は、iRatioからidxを導出し、当該idxを用いて下記ルックアップテーブル(LUT)を参照し、基準方向からの差分情報である第1の角度モードmode_deltaを導出する。
idx = iRatio >> shiftI
mode_delta = LUT[idx]
shiftIは所定の定数10など。
ここでLUT[N_LUT] = {0,1,1,2,2,3,3,4, 4,4,5,5,5,5,6,6, 6,6,7,7,7,7,8,8, 8,8,9,9,9,9,10,10, 10,10,11,11,11,11,12,12, 12,12,12,13,13,13,13,13, 13,14,14,14,14,14,14,15, 15,15,15,15,15,16,16,16, 16}。
ここでN_LUTはLUTの要素数を示す。
N_LUT = (1 << (shiftR - shiftI)) + 1
なお、iRatioがほぼ0すなわちidx==0であるときは、勾配は水平方向または垂直方向で
あり、基準方向からの差分は0となる。したがって、LUTの最初の要素0を省き、N_LUT’= (1 << (shiftR - shiftI))の2のべき乗個の要素でLUTを構成してもよい。この場合のル
ックアップテーブルLUT’は、次を用いてもよい。
LUT’[N_LUT’] = {1,1,2,2,3,3,4,4, 4,5,5,5,5,6,6,6, 6,7,7,7,7,8,8,8, 8,9,9,9,9,10,10,10, 10,11,11,11,11,12,12,12, 12,12,13,13,13,13,13,13, 14,14,14,14,14,14,15,15, 15,15,15,15,16,16,16,16}
上記テーブルは、0以上の整数であり隣り合う要素の大小関係が">="もしくは"<="であ
ることを特徴とする。上記テーブルでは、0以上の整数、かつ、昇順の値、かつ、同じ値
の要素の数は最後の要素を除いて増加する関係を有する。が、0以上の整数、かつ、降順
の値、かつ、同じ値の要素の数は最初の要素を除いて低下する関係を有するテーブルを用いてもよい。例えばLUT_dec[N_LUT'] = {16,16,16,16,15,15,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,12,12,12,12,12,11,11,11,11,10,10,10,10,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,2,2,1,1}
このときモード変換部310467は次式を用いて第1の角度モードmode_deltaを導出する。mode_delta = idx ? LUT’[idx-1] : 0
降順のテーブルを用いる場合は、
mode_delta = idx ? LUT_dec[63-idx] : 0
idx>0(idx!=0)の場合にテーブル参照することで、テーブルの要素数N_LUT’を2のべき
乗にすることができ、テーブルをメモリに格納する場合のメモリ利用効率を改善できる。
【0105】
モード変換部310467は、基準方向base_mode[region]に対してmode_deltaを加算または
減算することで、第2の角度モードmodeValを導出する。
base_mode[4] = {18, 18, 50, 50}
direction[4] = {-1, 1, -1, 1}
modeVal = base_mode[region] + direction[region] * mode_delta
base_modeの値の18は水平のモード番号(イントラ方向予測(HOR))、50は垂直のモード番号(イントラ方向予測(VER))を意味する。base_modeはこの値に限定されない。
【0106】
なお勾配比iRatioの導出と勾配から角度モードmode_deltaの導出を1つの処理で行ってもよい。例えば、第1の勾配、第2の勾配と2つのテーブルを用いて以下のように第1の
角度モードmode_deltaを導出してもよい。ここでは第1のテーブル(gradDivTable[])を
用いて角度係数vを導出し、さらに角度係数vと第2のテーブル(LUT')から角度モードmode_deltaを導出する。
【0107】
s0 = xgty ? absy : absx
s1 = xgty ? absx : absy
x = Floor( Log2( s1 ) )
norm_s1 = (s1 << 4 >> x) & 15
v = gradDivTable[norm_s1] | 8
x += (norm_s1 != 0)
idx = (x < 3) ? (s0 * v) << (3 - x) : (s0 * v) >> (x - 3)
mode_delta = idx ? LUT'[idx-1] : 0
ここで"(s0 * v) << (3 - x)"は"(s0 * v) << 3 >> x"であってもよい。また、ここで<<3は3に限定されず角度モードの精度をより高くし、<<4、<<5などでもよい。またテーブル
を作り変えることにより、<<をなくしてもよいし、<<1や<2としてもよい。
【0108】
上記の構成では、ある画素における勾配(absxもしくはabsy)の対数値xによるシフト
を用いて値norm_s1を導出する。norm_s1を用いて第1のテーブルgradDivTableを参照してある傾きvを導出する。さらに、傾きvと上記対数値xによるシフトによりidxを導出する。Idxを用いて第2のテーブルLUTを参照して角度モードmode_deltaを導出する。
【0109】
また、ある画素における第1の勾配(absxもしくはabsy)の対数値xによるシフトを用
いて値norm_s1を導出する。norm_s1を用いてgradDivTableを参照して角度係数vを導出す
る。さらに、vと第1の勾配とは異なる第2の勾配(s0もしくはs1)の積と上記対数値xによるシフトによりidxを導出する。idxを用いて第2のテーブルLUT(LUT')を参照して角
度モードmode_deltaを導出する。これによれば、シフト演算とテーブル参照を用いて勾配から角度モードを導出できる効果を奏する。また、第2のテーブルLUTを導出後のシフト
演算を1回で行うことにより、処理量を削減できる。
【0110】
なお、idxがLUTの域数の範囲を超えないように、以下のようにクリップを行ってもよい。
【0111】
idx = min((s0 * v)<< 3 >> x, N_LUT-1)
さらに、s0*vの乗算の後に所定の値KK以下にクリップしシフトにより例えば32bitを超
えないようにすることも適当である。
【0112】
s0*v = (min(s0*v, KK)<<3) >> x
KKは、例えば、(1<<(31-3))-1=268435455
(別のテーブルの例)
角度モード導出部310462は、第1の勾配、第2の勾配と2つのテーブルを用いて以下のようにmode_deltaを導出してもよい。
【0113】
norm_s1 = (s1 << 7 >> x) & 127
v = gradDivTable3[norm_s1] | 64
x += (norm_s1 != 0)
idx = (s0 * v) >> x
ここでgradDivTable3 = {0,63,62,61,60,59,58,57,56,56,55,54,53,52,51,51,50,49,48,47,47,46,45,45,44,43,42,42,41,40,40,39,38,38,37,37,36,35,35,34,34,33,32,32,31,31,30,30,29,29,28,28,27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,20,19,19,18,18,18,17,17,16,16,16,15,15,14,14,14,13,13,13,12,12,12,11,11,10,10,10,9,9,9,8,8,8,8,7,7,7,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,0}
なお、mode_deltaの導出方法はこれに限らない
角度モード導出部310462は、idxの導出にあたり、以下のように丸め演算を用いてもよ
い。
idx = (iRatio + roundI) >> shiftI
ここで、roundI=1 << (shiftI-1)、shiftIは所定の定数10など。
【0114】
角度モード導出部310462において、LUTの要素数N_LUTは上記例の65(shiftR-shiftI=6
)以外にも17、(shiftR-shiftI=4)、33(shiftR-shiftI=5)、129(shiftR-shiftI=7)、257(shiftR-shiftI=8)など他の数でもよい。
【0115】
例えば、段階数を65より大きくする場合として以下で導出してもよい。
idx = iRatio >> 9
LUT_N128[128] = {1,1,2,2,3,3,4,4, 5,5,6,6,7,7,8,8, 8,9,9,9,9,10,10,10, 10,11,11,11,11,12,12,12, 12,13,13,13,13,14,14,14, 14,15,15,15,15,16,16,16, 16,17,17,17,17,18,18,18, 18,19,19,19,19,20,20,20, 20,21,21,21,21,22,22,22, 22,23,23,23,23,24,24,24, 24,24,25,25,25,25,25,25, 26,26,26,26,26,26,27,27, 27,27,27,27,28,28,28,28,
28,28,29,29,29,29,29,29, 30,30,30,30,30,30,31,31, 31,31,31,31,32,32,32,32}
idx = (x < 4) ? (s0 * v) << (4 - x) : (s0 * v) >> (x - 4) = (s0 * v) <<4 >> xこのテーブルを使用すると、角度モードを90度あたり32方向の精度で導出できる。
mode_delta = idx ? LUT_N128[idx-1] : 0
モード変換部310467は、mode_deltaを用いて、第2の角度モードmodeValを導出し出力
する。
modeVal = base_mode[region] + direction[region] * mode_delta
(3)角度モード選択部
角度モード選択部310463は、勾配導出対象画像に含まれる複数の点PnにおけるmodeVal(modeValPn)を用いて、一つ以上の角度モードの代表値dimdModeVal(dimdModeVal0、dimdModeVal1、…)を導出する。本実施形態における角度モードの代表値は対象ブロックのテクスチャパターンの方向性の推定値である。ここではヒストグラムを用いて導出した最頻値から代表値dimdModeValを導出する。各点Pnに対して得られた角度モードmodeValの値modeValPnのヒストグラム(頻度HistMode)を導出し、第1のモードdimdModeVal0および第2のモードdimdModeVal1を、それぞれ当該頻度において最も頻度の高いモードと次に頻度の高いモードを選択することにより導出する。ヒストグラムは、各点PnにおいてHistModeの値を1だけインクリメントすることで求めてもよい。
【0116】
HistMode[modeValPn] += 1
さらに、HistMode[x]をxに関して走査し、HistModeの最大値を与えるxの値をdimdModeVal0、2番目に大きい値を与えるxをdimdModeVal1とする。
【0117】
for (x = 0 x < Nidx x++) {
if (HistMode[x] > maxVal) {
maxVal = HistMode[x]
dimdModeVal1 = dimdModeVal0
dimdModeVal0 = x
}
}
なお、dimdModeVal0またはdimdModeVal1の導出方法は、ヒストグラムに限らない。例えば、角度モード選択部310463は、modeValPnの平均値をdimdModeVal0またはdimdModelVal1に設定してもよい。
【0118】
角度モード選択部310463は第3のモードとして、dimdModeVal2に所定のモード(例えば、イントラ予測モードや変換モード)を設定する。ここではdimdModeVal2=0(Planar)とするが、これに限らない。適応的に他のモードを設定してもよいし、第3のモードを用いなくてもよい。
【0119】
角度モード選択部310463は、さらに、後述する仮予測画像生成部310464におけるイントラ予測のために、各角度モードの代表値に対応する重みを導出してもよい。例えば、第3のモードの重みw2=21とし、残りをヒストグラムにおける第1と第2のモードの頻度の比
率に応じて、それぞれ重みw0とw1に配分する。なお、重みの合計は64とする。重みの導出はこれに限らず、第1、第2、第3のモードの重みw0,w1,w2を適応的に変化させてもよい。例えば第1のモードまたは第2のモードの番号、あるいは頻度やその比率に応じてw2を増減させてもよい。なお、角度モード選択部は、第1から第3のいずれのモードについても、当該モードを用いない場合は対応する重みの値を0と設定する。
【0120】
上記角度モード選択部310463は、勾配導出対象画像の中の画素で導出された複数の角度モードから角度モード代表値を選択する角度モード選択部を備えることにより、より精度の高い角度モードが導出できる。
以上のようにして角度モード選択部310463は、勾配から推定される角度モード(角度モードの代表値)を選択し、各角度モードに対応する重みとともに出力する。
【0121】
上記の角度モード導出装置310465(勾配導出部310461、角度モード導出部310462、または/かつ、角度モード選択部310463)によれば、勾配の比率iRatioからarctanに相当する
角度の導出をテーブルを用いて行うため簡易であるという効果を奏する。
【0122】
勾配導出部、角度モード導出部、および角度モード選択部の構成を用い、イントラ予測モード以外の情報の導出に用いることもできる。例えば、勾配導出部および角度モード導出部により導出される、テクスチャパターンの方向性を用いて、角度モード選択部が残差の変換行列を選択するようにすれば、当該方向性を持つ領域における残差の変換に適した行列を選択でき、符号化効率の向上が期待できる。
【0123】
(4)仮予測画像生成部
仮予測画像生成部310464は、入力された1つ以上の角度モード代表値(イントラ予測モード)を用いて予測画像(仮予測画像)を生成する。イントラ予測モードが1つの場合は、当該予測モードによるイントラ予測画像を生成し、仮予測画像q[x][y]として出力する。イントラ予測モードが複数の場合、各予測モードによる予測画像(pred0, pred1, pred2)を生成する。対応する重み(w0,w1,w2)を用いて複数の予測画像を合成し、仮予測画像q[x][y]として出力する。仮予測画像q[x][y]は以下のように導出される。
q[x][y] = (w0 * pred0[x][y] + w1 * pred1[x][y] + w2 * pred2[x][y]) >> 6
ただし、第2のモードの頻度が0である、または、方向予測モードでない(DCモードなど)場合は、第1の予測モードによる予測画像pred0を仮予測画像とする。
【0124】
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数を逆量子化して変換係数を求める。この量子化変換係数は、符号化処理において、予測誤差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)等の周波数変換を行い量子化して得られる係数である。逆量子化・逆変換部311は変換係数について逆DCT、逆DST等の逆周波数変換を行い、予測誤差を算出する。逆量子化・逆変換部311は予測誤差を加算部312に出力する。
【0125】
図13は、本実施形態の逆量子化・逆変換部311の構成を示すブロック図である。逆量子
化・逆変換部311は、スケーリング部31111、逆非分離変換部31121、逆分離変換部31123から構成される。なお、角度モード導出装置310465の導出した角度モードを用いて、符号化データから復号した変換係数を変換してもよい。
【0126】
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数qd[][]をスケーリング部31111によりスケーリング(逆量子化)して変換係数d[][]を求める。この量子化変換係数qd[][]は、符号化処理において、予測誤差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)等の変換を行い量子化して得られる係数、もしくは、変換後の係数をさらに非分離変換した係数である。逆量子化・逆変換部311は、非分離変換フラグlfnst_idx!=0の場合、逆非分離変換部31121により逆変換を行う。さらに変換係数について逆DCT、逆DST等の逆周波数変換を行い、予測誤差を算出する。また、lfnst_idx==0の場合、逆非分離変換部31121で処理を行わず、スケーリング部31111によりスケーリングされた変換係数に逆DCT、逆DST等の逆周波数変換を行い、予測誤差を算出する。逆量子化・逆変換部311は予測誤差を加算部312に出力する。
【0127】
逆非分離変換部31121は、TUの一部の変換係数d[][]を、1次元配列u[]に並び替える。
具体的には、逆非分離変換部31121は、領域RUによって示される対象TUの2次元変換係数d[][]から、x=0..nonZeroSize-1の変換係数を参照して、u[]を導出する。xC、yCはTU上の
位置であり、スキャン順を示す配列DiagScanOrderと配列u[]の位置xから導出する。
【0128】
xC = DiagScanOrder[log2StSize][log2StSize][x][0]
yC = DiagScanOrder[log2StSize][log2StSize][x][1]
u[x] = d[xC][yC]
逆非分離変換部31121の備える変換行列選択部は、角度モード導出装置310465の導出し
た角度モードmodeVal(例えばdimdModeVal0)に応じて、以下によりsecTransMatrix0からsecTransMatrix4の一つを選択してもよい。
【0129】
secTransMatrix[][] = secTransMatrix0 (dimdModeVal0 < 10)
secTransMatrix[][] = secTransMatrix1 (上記以外、dimdModeVal0 < 26)
secTransMatrix[][] = secTransMatrix2 (上記以外、dimdModeVal0 < 42)
secTransMatrix[][] = secTransMatrix3 (上記以外、dimdModeVal0 < 58)
secTransMatrix[][] = secTransMatrix4 (上記以外)
上記では角度モードを所定の域値10, 26, 42, 58を用いて分類し、分類に応じて変換行列を割り当てる。変換行列ではなく、変換行列を指定する角度モードから、直接変換行列を導出してもよい。なお、角度モードの分類に用いる閾値は上記に限定されない。また、LUTの値として0-4の値など変換行列の数を用いて以下のように導出してもよい。
【0130】
secTransMatrix[][] = secTransMatrix0 (dimdModeVal0 == 0)
secTransMatrix[][] = secTransMatrix1 (dimdModeVal0 == 1)
secTransMatrix[][] = secTransMatrix2 (dimdModeVal0 == 2)
secTransMatrix[][] = secTransMatrix3 (dimdModeVal0 == 3)
secTransMatrix[][] = secTransMatrix4 (dimdModeVal0 == 4)
逆非分離変換部31121は、長さがnonZeroSizeのu[]に対して、変換行列secTransMatrix[][]を用いた変換を行い、出力として長さがnStOutSizeの一次元配列の係数v[]を導出する。
【0131】
v[i] = Clip3(CoeffMin, CoeffMax,Σ(secTransMatrix[i][j]*u[j]+64)>>7)
ここで、Σはj=0..nonZeroSize-1までの和である。また、i=0..nStSize-1に対して処理を行う。CoeffMin、CoeffMaxは変換係数の値の範囲を示す。
【0132】
逆非分離変換部31121は、変換された一次元配列の係数v[]を再度TU内(d[][])の所定の
位置に配置する。具体的には、x = 0..nStSize - 1, y = 0..nStSize - 1に対して以下の処理を行う。
【0133】
if (transposeFlag==0)
d[x][y] = (y<4&&x<0) ? v[x+(y<<log2StSize)] : d[x][y])
else
d[x][y] = (x<4&&y<0) ? v[y+(x<<log2StSize)] : d[x][y])
上記によれば隣接画像の画素から角度モード導出装置310465(勾配導出部310461、角度モード導出部310462、角度モード選択部310463)で導出した角度モードに応じて変換係数の変換を行うため、効率が向上する効果を奏する。
【0134】
加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。
加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
【0135】
(動画像符号化装置の構成)
次に、本実施形態に係る動画像符号化装置11の構成について説明する。
図11は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、エントロピー符号化部104を含んで構成される。
【0136】
予測画像生成部101は画像Tの各ピクチャを分割した領域であるCU毎に予測画像を生成
する。予測画像生成部101は既に説明した予測画像生成部308と同じ動作であり、説明を省略する。
【0137】
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103に出力する。
【0138】
変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、
量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
【0139】
逆量子化・逆変換部105は、動画像復号装置31における逆量子化・逆変換部311(
図4)
と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
【0140】
エントロピー符号化部104には、変換・量子化部103から量子化変換係数が入力され、パラメータ符号化部111から符号化パラメータが入力される。エントロピー符号化部104は、分割情報、予測パラメータ、量子化変換係数等をエントロピー符号化して符号化ストリームTeを生成し、出力する。
【0141】
パラメータ符号化部111は、図示しないヘッダ符号化部1110、CT情報符号化部1111、CU
符号化部1112(予測モード符号化部)、およびインター予測パラメータ符号化部112とイ
ントラ予測パラメータ符号化部113を備えている。CU符号化部1112はさらにTU符号化部1114を備えている。
【0142】
(イントラ予測パラメータ符号化部113の構成)
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたIntraPredMode等を符号化する。イントラ予測パラメータ符号化部113は、イントラ予測パラメータ復号部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
【0143】
加算部106は、予測画像生成部101から入力されたブロックの予測画像の画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算
部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
【0144】
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まな
くてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
【0145】
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
【0146】
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
【0147】
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセッ
トを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
【0148】
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化
誤差を示すRDコスト値を算出する。符号化パラメータ決定部110は、算出したコスト値が
最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして出力する。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
【0149】
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成
部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量
子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0150】
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0151】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【産業上の利用可能性】
【0152】
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
【符号の説明】
【0153】
31 画像復号装置
301 エントロピー復号部
302 パラメータ復号部
303 インター予測パラメータ復号部
304 イントラ予測パラメータ復号部
308 予測画像生成部
309 インター予測画像生成部
310 イントラ予測画像生成部
31046 DIMD予測部
310465 角度モード導出装置
310461 勾配導出部
310462 角度モード導出部
310463 角度モード選択部
310464 仮予測画像生成部
311 逆量子化・逆変換部
312 加算部
11 画像符号化装置
101 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105 逆量子化・逆変換部
107 ループフィルタ
110 符号化パラメータ決定部
111 パラメータ符号化部
112 インター予測パラメータ符号化部
113 イントラ予測パラメータ符号化部
1110 ヘッダ符号化部
1111 CT情報符号化部
1112 CU符号化部(予測モード符号化部)
1114 TU符号化部