(実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
図23は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、符号化対象画像を符号化した符号を伝送し、伝送された符号を復号し画像を表示するシステムである。画像伝送システム1は、画像符号化装置(動画像符号化装置)11、ネットワーク21、画像復号装置(動画像復号装置)31及び画像表示装置41を含んで構成される。
画像符号化装置11には、単一レイヤもしくは複数レイヤの画像を示す画像Tが入力される。レイヤとは、ある時間を構成するピクチャが1つ以上ある場合に、複数のピクチャを区別するために用いられる概念である。たとえば、同一ピクチャを、画質や解像度の異なる複数のレイヤで符号化するとスケーラブル符号化になり、異なる視点のピクチャを複数のレイヤで符号化するとビュースケーラブル符号化となる。複数のレイヤのピクチャ間で予測(インターレイヤ予測、インタービュー予測)を行う場合には、符号化効率が大きく向上する。また予測を行わない場合(サイマルキャスト)の場合にも、符号化データをまとめることができる。
ネットワーク21は、画像符号化装置11が生成した符号化ストリームTeを画像復号装置31に伝送する。ネットワーク21は、インターネット(internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、それぞれ復号した1または複数の復号画像Tdを生成する。
画像表示装置41は、画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。また、空間スケーラブル符号化、SNRスケーラブル符号化では、画像復号装置31、画像表示装置41が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズ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)。
<符号化ストリームTeの構造>
本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図1は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図1の(a)~(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニット(Coding Unit;CU)を示す図である。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図1の(a)に示すように、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図1では、#0と#1すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図1の(b)に示すように、スライスS0~SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0~SNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスSは、図1の(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。
なお、スライスヘッダSHには、上記符号化ビデオシーケンスに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータSDATAを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図1の(d)に示すように、符号化ツリーユニット(CTU:Coding Tree Unit)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図1の(e)に示すように、処理対象の符号化ツリーユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(CN:Coding Node)と称する。4分木の中間ノードは、符号化ノードであり、符号化ツリーユニット自身も最上位の符号化ノードとして規定される。CTUは、分割フラグ(cu_split_flag)を含み、cu_split_flagが1の場合には、4つの符号化ノードCNに分割される。cu_split_flagが0の場合には、符号化ノードCNは分割されず、1つの符号化ユニット(CU:Coding Unit)をノードとして持つ。符号化ユニットCUは符号化ノードの末端ノードであり、これ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
また、符号化ツリーユニットCTUのサイズが64x64画素の場合には、符号化ユニットのサイズは、64x64画素、32x32画素、16x16画素、および、8x8画素の何れかをとり得る。
(符号化ユニット)
図1の(f)に示すように、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、予測ツリー、変換ツリー、CUヘッダCUHから構成される。CUヘッダでは予測モード、分割方法(PU分割モード)等が規定される。
予測ツリーでは、符号化ユニットを1または複数に分割した各予測ユニット(PU)の予測情報(参照ピクチャインデックス、動きベクトル等)が規定される。別の表現でいえば、予測ユニットは、符号化ユニットを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ユニットを含む。なお、以下では、予測ユニットをさらに分割した予測単位を「サブブロック」と呼ぶ。サブブロックは、複数の画素によって構成されている。予測ユニットとサブブロックのサイズが等しい場合には、予測ユニット中のサブブロックは1つである。予測ユニットがサブブロックのサイズよりも大きい場合には、予測ユニットは、サブブロックに分割される。たとえば予測ユニットが8x8、サブブロックが4x4の場合には、予測ユニットは水平に2分割、垂直に2分割からなる、4つのサブブロックに分割される。
予測処理は、この予測ユニット(サブブロック)ごとに行ってもよい。
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
イントラ予測の場合、分割方法は、2Nx2N(符号化ユニットと同一サイズ)と、NxNとがある。
また、インター予測の場合、分割方法は、符号化データのPU分割モード(part_mode)により符号化され、2Nx2N(符号化ユニットと同一サイズ)、2NxN、2NxnU、2NxnD、Nx2N、nLx2N、nRx2N、および、NxNなどがある。なお、2NxN、Nx2Nは1:1の対称分割を示し、
2NxnU、2NxnDおよびnLx2N、nRx2Nは、1:3、3:1の非対称分割を示す。CUに含まれるPUを順にPU0、PU1、PU2、PU3と表現する。
図2の(a)~(h)に、それぞれのPU分割モードにおけるパーティションの形状(PU分割の境界の位置)を具体的に図示している。図2の(a)は、2Nx2Nのパーティションを示し、(b)、(c)、(d)は、それぞれ、2NxN、2NxnU、および、2NxnDのパーティション(横長パーティション)を示す。(e)、(f)、(g)は、それぞれ、Nx2N、nLx2N、nRx2Nである場合のパーティション(縦長パーティション)を示し、(h)は、NxNのパーティションを示す。なお、横長パーティションと縦長パーティションを総称して長方形パーティション、2Nx2N、NxNを総称して正方形パーティションと呼ぶ。
また、変換ツリーにおいては、符号化ユニットが1または複数の変換ユニットに分割され、各変換ユニットの位置とサイズとが規定される。別の表現でいえば、変換ユニットは、符号化ユニットを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ユニットを含む。
変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ユニットとして割り付けるものと、上述したCUの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、この変換ユニットごとに行われる。
(予測パラメータ)
予測ユニット(PU:Prediction Unit)の予測画像は、PUに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、動きベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ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として符号化される。
(動きベクトル)
動きベクトルmvLXは、異なる2つのピクチャ上のブロック間のずれ量を示す。動きベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。
(画像復号装置の構成)
次に、本実施形態に係る画像復号装置31の構成について説明する。図4は、本実施形態に係る画像復号装置31の構成を示す概略図である。画像復号装置31は、エントロピー復号部301、予測パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312を含んで構成される。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測情報および、差分画像を生成するための残差情報などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードpredMode、PU分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXである。どの符号を復号するかの制御は、予測パラメータ復号部302の指示に基づいて行われる。エントロピー復号部301は、量子化係数を逆量子化・逆変換部311に出力する。この量子化係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)、KLT(Karyhnen Loeve Transform、カルーネンレーベ変換)等の周波数変換を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。
インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを復号する。イントラ予測パラメータとは、CUを1つのピクチャ内で予測する処理で用いるパラメータ、例えば、イントラ予測モードIntraPredModeである。イントラ予測パラメータ復号部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
イントラ予測パラメータ復号部304は、輝度と色差で異なるイントラ予測モードを導出しても良い。この場合、イントラ予測パラメータ復号部304は、輝度の予測パラメータとして輝度予測モードIntraPredModeY、色差の予測パラメータとして、色差予測モードIntraPredModeCを復号する。輝度予測モードIntraPredModeYは、35モードであり、プレーナ予測(0)、DC予測(1)、方向予測(2~34)が対応する。色差予測モードIntraPredModeCは、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)の何れかを用いるものである。イントラ予測パラメータ復号部304は、IntraPredModeCは輝度モードと同じモードであるか否かを示すフラグを復号し、フラグが輝度モードと同じモードであることを示せば、IntraPredModeCにIntraPredModeYを割り当て、フラグが輝度モードと異なるモードであることを示せば、IntraPredModeCとして、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)を復号しても良い。
ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、復号対象のピクチャ及びCU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及び予測ユニット(もしくはサブブロック、固定サイズブロック、ピクセル)毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXがある。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてPUもしくはサブブロックの予測画像を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてインター予測によりPUもしくはサブブロックの予測画像を生成する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0リスト、もしくはL1リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象PUを基準として動きベクトルmvLXが示す位置にある参照ピクチャブロックを参照ピクチャメモリ306から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックをもとに予測を行ってPUの予測画像を生成する。インター予測画像生成部309は、生成したPUの予測画像を加算部312に出力する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、PUもしくはサブブロックの予測画像を生成するために参照する領域である。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたPUのうち、復号対象PUから予め定めた範囲にある隣接PUを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、復号対象PUがいわゆるラスタースキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接PUのうちのいずれかであり、イントラ予測モードによって異なる。ラスタースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
イントラ予測画像生成部310は、読み出した隣接PUに基づいてイントラ予測モードIntraPredModeが示す予測モードで予測を行ってPUの予測画像を生成する。イントラ予測画像生成部310は、生成したPUの予測画像を加算部312に出力する。
イントラ予測パラメータ復号部304において、輝度と色差で異なるイントラ予測モードを導出する場合、イントラ予測画像生成部310は、輝度予測モードIntraPredModeYに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2~34)の何れかによって輝度のPUの予測画像を生成し、色差予測モードIntraPredModeCに応じて、プレーナ予測(0)、DC予測(1)、方向予測(2~34)、LMモード(35)の何れかによって色差のPUの予測画像を生成する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化係数を逆量子化して変換係数を求める。逆量子化・逆変換部311は、求めた変換係数について逆DCT、逆DST、逆KLT等の逆周波数変換を行い、残差信号を算出する。逆量子化・逆変換部311は、算出した残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309またはイントラ予測画像生成部310から入力されたPUの予測画像と逆量子化・逆変換部311から入力された残差信号を画素毎に加算して、PUの復号画像を生成する。加算部312は、生成したPUの復号画像を参照ピクチャメモリ306に記憶し、生成したPUの復号画像をピクチャ毎に統合した復号画像Tdを外部に出力する。
(画像符号化装置の構成)
次に、本実施形態に係る画像符号化装置11の構成について説明する。図3は、本実施形態に係る画像符号化装置11の構成を示すブロック図である。画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。
予測画像生成部101は画像Tの各ピクチャについて、そのピクチャを分割した領域である符号化ユニットCU毎に予測ユニットPUの予測画像Pを生成する。ここで、予測画像生成部101は、予測パラメータ符号化部111から入力された予測パラメータに基づいて参照ピクチャメモリ109から復号済のブロックを読み出す。予測パラメータ符号化部111から入力された予測パラメータとは、例えばインター予測の場合、動きベクトルである。予測画像生成部101は、対象PUを起点として動きベクトルが示す参照画像上の位置にあるブロックを読み出す。またイントラ予測の場合、予測パラメータとは例えばイントラ予測モードである。イントラ予測モードで使用する隣接PUの画素値を参照ピクチャメモリ109から読み出し、PUの予測画像Pを生成する。予測画像生成部101は、読み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いてPUの予測画像Pを生成する。予測画像生成部101は、生成したPUの予測画像Pを減算部102に出力する。
なお、予測画像生成部101は、既に説明した予測画像生成部308と同じ動作であるためここでの説明を省略する。
予測画像生成部101は、予測パラメータ符号化部から入力されたパラメータを用いて、参照ピクチャメモリから読み出した参照ブロックの画素値をもとにPUの予測画像Pを生成する。予測画像生成部101で生成した予測画像は減算部102、加算部106に出力される。
減算部102は、予測画像生成部101から入力されたPUの予測画像Pの信号値を、画像Tの対応するPUの画素値から減算して、残差信号を生成する。減算部102は、生成した残差信号を変換・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された残差信号について周波数変換を行い、変換係数を算出する。変換・量子化部103は、算出した変換係数を量子化して量子化係数を求める。変換・量子化部103は、求めた量子化係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
エントロピー符号化部104には、変換・量子化部103から量子化係数が入力され、予測パラメータ符号化部111から符号化パラメータが入力される。入力される符号化パラメータには、例えば、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、予測モードpredMode、及びマージインデックスmerge_idx等の符号がある。
エントロピー符号化部104は、入力された量子化係数と符号化パラメータをエントロピー符号化して符号化ストリームTeを生成し、生成した符号化ストリームTeを外部に出力する。
逆量子化・逆変換部105は、変換・量子化部103から入力された量子化係数を逆量子化して変換係数を求める。逆量子化・逆変換部105は、求めた変換係数について逆周波数変換を行い、残差信号を算出する。逆量子化・逆変換部105は、算出した残差信号を加算部106に出力する。
加算部106は、予測画像生成部101から入力されたPUの予測画像Pの信号値と逆量子化・逆変換部105から入力された残差信号の信号値を画素毎に加算して、復号画像を生成する。加算部106は、生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)を施す。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を、符号化対象のピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述した予測パラメータやこの予測パラメータに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータのセットの各々を用いてPUの予測画像Pを生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すコスト値を算出する。コスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして外部に出力し、選択されなかった符号化パラメータのセットを出力しない。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから、符号化するための形式を導出し、エントロピー符号化部104に出力する。符号化するための形式の導出とは、例えば動きベクトルと予測ベクトルから差分ベクトルを導出することである。また予測パラメータ符号化部111は、符号化パラメータ決定部110から入力されたパラメータから予測画像を生成するために必要なパラメータを導出し、予測画像生成部101に出力する。予測画像を生成するために必要なパラメータとは、例えばサブブロック単位の動きベクトルである。
インター予測パラメータ符号化部112は、符号化パラメータ決定部110から入力された予測パラメータに基づいて、差分ベクトルのようなインター予測パラメータを導出する。インター予測パラメータ符号化部112は、予測画像生成部101に出力する予測画像の生成に必要なパラメータを導出する構成として、インター予測パラメータ復号部303(図4等、参照)がインター予測パラメータを導出する構成と一部同一の構成を含む。インター予測パラメータ符号化部112の構成については、後述する。
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたイントラ予測モードIntraPredModeから、符号化するための形式(例えばMPM_idx、rem_intra_luma_pred_mode等)を導出する。
なお、上述した実施形態における画像符号化装置11、画像復号装置31の一部、例えば、エントロピー復号部301、予測パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、予測パラメータ符号化部111をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、画像符号化装置11、画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
図5は、本実施形態に係る画像復号装置31aの構成を示す概略図である。なお、説明の便宜上、図4に示した部材と同じ機能を有する部材については、同じ符号を付記し、説明を省略する。
図5に示すように、画像復号装置31aは、図4に示す構成から、ループフィルタ305に替わり、画像フィルタ装置32を備える。
画像フィルタ装置32は、入力画像に対してデブロックフィルタ処理等を適宜施し、画像データを出力する装置である。本実施形態において、画像フィルタ装置32には、加算部312が生成した1又は複数のCUの復号画像が入力される。
また、画像フィルタ装置32は、デブロックフィルタ部33と、CNNフィルタ34とを備える。デブロックフィルタ部33は、入力画像に対してブロック歪みによるノイズを低減する処理を施すフィルタである。CNNフィルタ34は、加算部312が生成した復号画像と、デブロックフィルタ部33からの出力画像とを入力画像とし、自身が有するニューラルネットワークにおいて1又は複数のフィルタ処理を施し、出力画像データを出力する。
ここで、CNNとは、コンボリューション層(ニューロンは空間的位置を有し、空間的な位置に近い入力のみと接続する構成であって、ニューロンの積和演算における重み係数/カーネル及びバイアス/オフセットがピクチャ内の位置に依存しない層)を少なくとも有するニューラルネットワークの総称である。重み係数をカーネルとも呼ぶ。CNNフィルタ34は、コンボリューション層の他、フルコネクション層(FCN)と呼ばれる、ニューロンは空間的位置を有さず全ての入力と接続する構成や、LCN(Locally Connected Networks)層とよばれる、ニューロンは空間的位置を有し、空間的な位置に近い入力のみと接続する構成であるがCNNと異なり重み係数やバイアスを共有しない構成を含むことができる。CNNフィルタ34において、コンボリューション層への入力サイズと、コンボリューション層からの出力サイズとは異なってもよい。すなわち、CNNフィルタ34は、コンボリューションフィルタを適用する位置を移動させる場合の移動量(ステップサイズ)を1より大きくすることで、出力サイズが入力サイズよりも小さくなるコンボリューション層を含むことができる。また、出力サイズが入力サイズよりも大きくなるデコンボリューション層(Deconvolution)も含むことができる。デコンボリューション層は、トランスポーズコンボリューション層(TransposeConvolution)とよばれる場合もある。また、CNNフィルタ34は、プーリング層(Pooling)、ドロップアウト(DropOut)層等を含むことができる。プーリング層は、大きな画像を小さなウィンドウに区切り、区切ったそれぞれのウィンドウに応じて最大値や平均値等の代表値を得る層であり、ドロップアウト層は、確率に応じて出力を固定値(例えば0)にすることでランダム性を追加する層である。
図6は、CNNフィルタ34が有するニューラルネットワークの一例を示す概略図である。CNNフィルタ34は、concat層(concatenate層)51、直列に設けられた1又は複数のconv層52、及びadd層53を備える。
まず、CNNフィルタ34は、concat層51において、加算部312が生成した復号画像と、デブロックフィルタ部33の出力画像とを結合(concatenate)する。ここで、図6において、recSamplesIn[][]は、加算部312が生成した復号画像を示している。また、recSamplesDF[][]は、デブロックフィルタ部33の出力画像を示している。また、図6に示すように、concat層51は、上述した画像を結合する場合に、符号化パラメータを画素値とする画像も結合してもよい。図6において、cuparam[][]は、符号化パラメータを画素値とする画像を示している。
続いて、1又は複数のconv層52において所謂畳み込み処理と称される1又は複数のフィルタ処理が施される。
ここで、本実施形態において、conv層52は、下記の構成の少なくとも何れかを含むことができる。
(1)conv(x):フィルタをかける処理(convolution)を実施する構成
(2)act(conv(x)):convolutionの後にactivation(非線形関数、例えば、sigmoid, tanh, relu, elu、seluなど)を実施する構成
(3)batch_norm(act(conv(x))):convolutionとactivationの後にバッチノーマライゼーション(入力のレンジの正規化)を実施する構成
(4)act(batch_norm(conv(x))):convolutionとactivationの間にバッチノーマライゼーション(入力のレンジの正規化)を実施する構成
(5)pooling:conv層間で情報の圧縮、空間的変化の平準化を実施する構成
続いて、add層53は、加算部312が生成した復号画像と、1又は複数のフィルタ処理が施されたconv層52の出力画像とを、画素毎に加算し、CNNフィルタ34の出力とする。ここで、図6のrecSamplesOut[][]は、CNNフィルタ34の出力を示している。
以下、上述した構成における画像フィルタ装置32の処理の例について項目ごとに説明する。なお、以下の各例においては、上述した、重複する説明を繰り返さない。
(画像データ入出力例1)
本例においては、加算部312が生成した復号画像と、デブロックフィルタ処理が施された当該復号画像とが、CNNフィルタ34に入力される構成について説明する。
図7は、本例に係る画像フィルタ装置32の構成を示す図である。ここで、画像フィルタ装置32に入力される画像データrecSamplesIn[][]は、加算部312が生成した復号画像であって、輝度又は色差を画素値とする1又は複数の第1種の入力画像データに相当する。図7に示すように、デブロックフィルタ部33は、デブロックフィルタ判定部(フィルタ強度画像生成部)56と、デブロックフィルタ処理部57とを備える。
デブロックフィルタ部33は、入力される画像のブロック境界に対してデブロックフィルタ処理を施すことにより、デブロックフィルタ後の画像データを生成する。
デブロックフィルタ判定部56は、入力画像についてブロックの列及び行ごとにブロック歪みの強度を判定する。なお、デブロックフィルタ判定部56による処理の詳細については後述する。
デブロックフィルタ処理部57は、CTUの分割単位における境界近傍の画素であって、ブロック歪みが生じている画素に対して、ブロック歪みを低減する処理を施す。
CNNフィルタ34は、加算部312が生成した復号画像と、デブロックフィルタ処理が施された当該復号画像との双方を用いて、各層におけるフィルタ処理を行う。
このように本例に係る画像フィルタ装置32においては、輝度又は色差を画素値とする1又は複数の第1種の入力画像データが少なくとも入力され、輝度又は色差を画素値とする1又は複数の第1種の出力画像データを出力するニューラルネットワーク部(CNNフィルタ)34と、上記1又は複数の第1種の入力画像データが入力され、当該第1種の入力画像データのブロック境界に対してデブロックフィルタ処理を施すことにより、デブロックフィルタ後の画像データを生成するデブロックフィルタ部33と、を備え、ニューラルネットワーク部34には、上記デブロックフィルタ後の画像データも入力される。
上記の構成によれば、CNNフィルタ34は、デブロックフィルタ処理による情報の欠落が無い復号画像と、ブロック歪みが補正された当該復号画像とを用いてフィルタ処理を行うことにより、デブロックフィルタ処理を施しつつ、CNNフィルタ34の性能の低下を抑制できる。
また、図7に示す例においては、加算部312が生成した復号画像と、デブロック処理が施された当該復号画像とが、CNNフィルタ34に別々に入力されたが、双方の画像を示す信号が、デブロックフィルタ部33、又は図7には図示しない部材により、単一の信号にインターリーブされてCNNフィルタ34に入力される構成でもよい。
図8は、CNNフィルタ34へのデータ入力を示す図である。ここで、図8(a)は、入力画像データを示す複数の信号が、CNNフィルタ34へ別々に入力される構成を示している。
図8(b)は、入力画像データを示す複数の信号が、インターリーブ又はコンカティネートされてCNNフィルタ34に入力される構成を示している。このように、ニューラルネットワーク部(CNNフィルタ)34には、第1種の入力画像データと、デブロックフィルタ後の当該画像データとをインターリーブして得られる画像が入力されてもよい。また、ニューラルネットワーク部(CNNフィルタ)34には、第1種の入力画像データと、デブロックフィルタ後の当該画像データとをコンカテネートして得られる画像が入力されてもよい。
なお、後述する他の例においても、上述したように、CNNフィルタ34への入力信号であって、画像等を示す複数の入力信号が、単一の信号にインターリーブ又はコンカティネートされてCNNフィルタ34に入力される構成でもよい。
(画像データ入出力例2)
本例においては、加算部312が生成した復号画像と、上述したデブロックフィルタ判定部56の出力とが、CNNフィルタ34に入力される構成について説明する。なお、既に説明した事項については重複する説明を繰り返さない。
図9は、本例に係る画像フィルタ装置32の構成を示す図である。CNNフィルタ34への画像データ入出力例1とは異なり、デブロックフィルタ処理部57の出力ではなく、デブロックフィルタ判定部(フィルタ強度画像生成部)56の出力がCNNフィルタ34に入力される。換言すると、CNNフィルタ34には、加算部312が生成した復号画像と、当該復号画像におけるブロック歪みの位置及び強度を示すフィルタ強度画像だけが入力される。また、デブロックフィルタ部33は、図9に示すようにデブロックフィルタ処理部57を備えていなくともよい。
図24は、CNNフィルタ34に入力されるフィルタ強度画像の一例である。図24(a)に示すようにフィルタ強度画像は、ブロック境界の場合にある値(例えば1)、ブロック境界以外の場合にそれ以外の値(例えば0)であるような画像であってもよい。図24(b)に示すように、ブロック境界からの距離に応じて値を変更してもよい。例えば、ブロック境界では2、ブロック境界から距離1では1、ブロック境界から距離2以上では0となるような画像でもよい。
また、図10に示すように、CNNフィルタ34には、垂直方向及び水平方向におけるブロック歪みの位置及び強度を示す信号(画像、情報)が別々に入力されてもよい。デブロックフィルタ判定部56の出力がCNNフィルタ34に入力される他の例においても同様である。
なお、図10において、垂直bS導出部58は、垂直方向におけるブロック歪みの強度を画素値とする画像を生成する部材であって、水平bS導出部59は、水平方向におけるブロック歪みの強度を画素値とする画像を生成する部材である。
図11は、垂直方向及び水平方向におけるブロック歪みの強度を画素値とする、デブロックフィルタ判定部56が出力するフィルタ強度画像の例を示す図である。図11の例においては、図11(a)或いは図11(b)に示す矩形全体が、8×8の領域を表し、数値は強度を表す画素である。なお、太線で囲んだ矩形は領域をさらに分割したCU(4×8、4×4、4×4)である。
以下、図11に記載のように、bSV[][]は、垂直方向における当該出力画像を意味するのとし、bSH[][]は、水平方向における当該出力画像を意味するものとする。
ここで、各CUに記載された数値は、デブロックフィルタ判定部56が判定したブロック歪みの強度を示している。図11に示す例において、デブロックフィルタ判定部56は、数値2を有するCUの境界近傍の画素の方が、数値1を有するCUの境界近傍の画素よりも強いブロック歪みが生じているものと判定している。
なお、ブロック強度bS[][]及びbSH[][]、bSV[][]は図11に限定されず、図24、図25、図26の例でもよい。
デブロックフィルタ判定部56は、ブロック境界以外の場合にブロック強度を0、ブロック境界の場合に1以上に設定しても良い(図24)。
また、デブロックフィルタ判定部56は、ブロック境界以外の場合にブロック強度を0、ブロック境界であって、以下の判定の場合に1以上に設定しても良い(図25)。
・変換ブロックの境界、かつ変換係数がブロック内に少なくとも1つある場合
・各ブロックに対応する予測画像が異なる参照ピクチャから生成されている場合
・各ブロックに対応する予測画像の動きベクトルのずれが4(1画素相当)以上である場合
また、デブロックフィルタ判定部56は、ブロック境界以外の場合にブロック強度を0、ブロック境界で例えば以下に示す場合に、ブロック強度を1以上(例えば2)、それ以外の場合を1と判定してもよい(図11、図26)。
・変換ブロックの境界、かつ変換係数がブロック内に少なくとも1つある場合
・各ブロックに対応する予測画像が異なる参照ピクチャから生成されている場合
・各ブロックに対応する予測画像の動きベクトルのずれが4(1画素相当)以上である場合
図12は、デブロックフィルタ判定部56がブロック境界のフィルタ強度(強度)を決定する場合に用いる判定式の例を示す図である。ここで、p[0]、p[3]、q[0]、q[3]は互いに隣接するブロックに含まれる画素値を示している。また、β、tCは、量子化パラメータに応じて定まる値である。
図12の判別式は、ブロックに隣接する領域の画素値の変化を示す指標、並びにブロックに隣接する画素の差分dpqが、所定の閾値よりも共に小さい場合に、bSV[][]あるいはbSH[][]に1、そうでない場合に0が設定されることを示している。
また、デブロックフィルタ判定部56は、例えば、ブロックがイントラ予測モードの場合に、当該ブロック境界において強いブロック歪みが生じていると推定し、bSV[][]あるいはbSH[][]に2を設定してもよい。
また、ブロック歪みの強度を示す画素値を規定する方法は特定の方法に限定されない。例えば、当該画素がブロック境界に隣接していてもデブロックフィルタ強度は低くても良いと判定し、当該画素に関連付けられたbSV[][]あるいはbSH[][]を0とする構成でもよいし、他の値に関連付けてもよい。
図13は、デブロックフィルタ部33が垂直方向と水平方向とのブロック歪みの強度を示す情報を合成してCNNフィルタ34に出力する構成を示す概略図である。また、図13は、図9の構成をより具体的な例を示す図と言うこともできる。
ここで、bS合成部60は、垂直方向と水平方向とのブロック歪みの強度を示す画像の画素値を合計する部材である。
図14は、bS合成部が、ブロック歪みの強度を画素値とする各画像を合成する例を示す図である。ここではbS合成部は、入力された双方の画像の各ブロックが有する画素値を合計し、出力画像を出力する。なお、図14の例において、bS合成部の出力画像におけるブロック歪みの強度を示す画素値は、0~4であるが、CNNフィルタ34においては、必ずしも上述した各画素値ごとに異なる処理をしなくともよい。なお、合成の方法は要素の和に限定されず、要素のOR演算や、要素の最大値演算、要素の積でもよい。また、要素の和を所定の範囲にクリップしても良い。例えば、0、1、2を要素とするbSH[][]と、bSV[][]の合成の出力は、OR演算なら0、1を要素とし、最大値では0、1、2である。また、合計を0から2の間にクリップする場合には、0、1、2になる。
このように、本例に係る画像フィルタ装置32においては、輝度又は色差を画素値とする1又は複数の第1種の入力画像データが少なくとも入力され、輝度又は色差を画素値とする1又は複数の第1種の出力画像データを出力するニューラルネットワーク部(CNNフィルタ)34と、上記1又は複数の第1種の入力画像データが入力され、当該第1種の入力画像データが示す画像のブロック境界に対して作用すべきデブロックフィルタ処理の強度を画素値とするフィルタ強度画像を生成するフィルタ強度画像生成部(デブロックフィルタ判定部)56と、を備え、ニューラルネットワーク部34には、フィルタ強度画像生成部が生成したフィルタ強度画像も入力される。
上記の構成によれば、CNNフィルタ34は、入力画像のブロック歪みが生じた領域に適したフィルタ処理をニューラルネットワークを利用して行うことができる。
(画像データ入出力例3)
本例においては、加算部312が生成した復号画像、デブロックフィルタ判定部56の出力、及びデブロックフィルタ処理部57の出力、つまりデブロック処理が施された当該復号画像が、CNNフィルタ34に入力される構成について説明する。なお、既に説明した事項については重複する説明を繰り返さない。
図15は、本例に係る画像フィルタ装置32の構成を示す図である。図15に示すように、CNNフィルタ34には、上述した各データが入力される。
CNNフィルタ34は、加算部312が生成した復号画像と、デブロックフィルタ判定部56の出力、及びデブロックフィルタ処理部57の出力を用いて、各層におけるフィルタ処理を行う。
具体的には、本例に係る画像フィルタ装置32においては、輝度又は色差を画素値とする1又は複数の第1種の入力画像データが少なくとも入力され、輝度又は色差を画素値とする1又は複数の第1種の出力画像データを出力するニューラルネットワーク部(CNNフィルタ)34と、上記1又は複数の第1種の入力画像データが入力され、当該第1種の入力画像データが示す画像のブロック境界に対して作用すべきデブロックフィルタ処理の強度を画素値とするフィルタ強度画像と、当該フィルタ強度画像を参照して当該第1種の入力画像データが示す画像のブロック境界に対してデブロックフィルタ処理を施すことにより、デブロックフィルタ後の画像データとを生成するデブロックフィルタ部33と、を備え、ニューラルネットワーク部34には、上記フィルタ強度画像と上記デブロックフィルタ後の画像データとも入力される。
上記の構成によれば、CNNフィルタ34が、デブロックフィルタ処理の強度を画素値とするフィルタ強度画像を用いてフィルタ処理を行うことにより、デブロックフィルタ処理(DF処理)をCNNフィルタに置き換えた場合に残るブロック歪みを解消することができる。また、CNNフィルタ34は、補正された当該復号画像の何れの領域にブロック歪みが生じていたかという情報を参照できる。
(ニューラルネットワークの構成例1)
本例においては、CNNフィルタ34におけるニューラルネットワークの構成例について説明する。なお、本例に係るCNNフィルタ34は自身が有するニューラルネットワークにおいて、1又は複数のdeconv層を備える。deconv層は、Deconvolution処理が施される層であって、入力画像よりも出力画像のサイズが大きくなる点においてconv層と異なる。
図16は、本例に係るCNNフィルタ34の構成の一部を示す概略図である。図16の画像71は、復号画像でもよいし、図6におけるconcat層から入力された画像のように復号画像と、デブロックフィルタ部33の出力画像とを結合(concatenate)した画像でもよい。
また、矢印によって隔てられた各エンティティは、ニューラルネットワークの各層においてフィルタ処理が施されたデータ(例えば幅×高さ×チャネル数の3次元データ)を示している。そして、矢印は、ニューラルネットワークの処理を示している。図16に示すように、CNNフィルタ34は、並列に構成された複数のニューラルネットワークを有している。なお、ニューラルネットワークの入力データ、中間データ、出力データの情報は、幅×高さを有する2次元データでもよいし、幅×高さ×チャネル数を有する3次元データであってもよい。本実施形態では2次元データであるか3次元データであるかによらず単に画像とも表現する。なお、ニューラルネットワーク上の中間データは、ある種の特徴を表現したデータであることから、「特徴マップ」とも呼ばれる。
なお、図16には、第1~3のニューラルネットワークが図示されているが、CNNフィルタ34は、並列に構成された4以上のニューラルネットワークを有していてもよい。また、CNNフィルタ34は、輝度画像以外を対象としたニューラルネットワークを別途有していてもよい。
また、本例及び以降のニューラルネットワークの構成例における説明は、画像フィルタ装置32がデブロックフィルタ部33を備えていない構成においても適用可能である。
以下、図16において、最上段のニューラルネットワークを第1のニューラルネットワーク、2段目のニューラルネットワークを第2のニューラルネットワークと呼称する。また、上からN段目(Nは1以上の整数)のニューラルネットワークを第Nのニューラルネットワークとして説明する。
第1のニューラルネットワークの入力層に入力される画像は、第1の入力画像データに相当する。また、第2のニューラルネットワークの入力層には、第1のニューラルネットワークのconv層において縮小された画像であって、第2の入力画像データに相当する画像が入力される。また、第3の入力層には、第2のニューラルネットワークにおいて更に縮小された画像が入力される。なお、Convolution処理によって細部の情報が畳み込まれるため、より縮小された画像の方が、当該画像に描画された物体の、より大域的な特徴を示している。なお、conv層として示した縮小はステップ数が1より大きいconv処理によって行っても良いし、pooling処理を用いてもよい。
また、図16の例においては、第Nのニューラルネットワークの最初のフィルタ処理において縮小された画像が第N+1のニューラルネットワークに入力されているが、画像の縮小を伴わない1又は複数のフィルタ処理を経たのちに、続くフィルタ処理において画像が縮小されて第N+1のニューラルネットワークに入力されてもよい。
続いて、各ニューラルネットワークが有するconcat層等における処理について具体例により説明する。第3のニューラルネットワークが処理対象とする画像は、最終的にDeconvolution処理(図中deconv層)によって拡大されたのちに、第2のニューラルネットワークのconcat層に入力される。そして当該画像は、第2のニューラルネットワークの前の層から入力された画像と、上記concat層において結合される。ここで、結合される各画像のサイズは等しい。即ち、第3のニューラルネットワークのdeconv層においては、処理対象とする画像を、上記各画像のサイズが等しくなるように拡大する。つまり、conv層での縮小率の逆数を使用する。なお、縮小及び拡大は、Convolution処理、Deconvolution処理に限定されず、bilinier補間やnearest neighbour補間などを用いても良い。
一般化すると、第N+1のニューラルネットワークの処理対象となっている画像は、第Nのニューラルネットワークに入力される前に、deconv層によって、結合される画像のサイズが等しくなるように拡大される、と言える。ただし、各ニューラルネットワークにおいて、deconv層又はconcat層の後にconv層が設けられていてもよい。
そして、add層53は、第1のニューラルネットワークにおける処理前と処理後との第1の入力画像データそれぞれを画素毎に加算し、CNNフィルタ34の出力とする。
このように、本例に係る画像フィルタ装置32においては、第1の入力画像データが入力される第1のニューラルネットワークと、上記第1のニューラルネットワークの少なくとも一部と並列に構成され、上記第1の入力画像データを縮小して得られる第2の入力画像が入力される第2のニューラルネットワークとを備え、上記第2のニューラルネットワークの出力データは、上記第1のニューラルネットワークの何れかの層に入力される。
上記の構成によれば、大域的特徴と局所的特徴との双方を用いたフィルタ処理をニューラルネットワークを利用して行う画像フィルタ装置32を実現できる。
(ニューラルネットワークの構成例2)
色空間が4:2:0である場合、輝度と色差の粒度(サイズ、解像度)が異なる。そのため、解像度を合わせるためのなんらかの変換処理が必要である。本例においては、色差を画素値とする色差画像を対象とするニューラルネットワークにおいて、縮小された解像度で輝度画像の中間データ(特徴マップ)と色差の中間データ(特徴マップ)を結合する構成について説明する。なお、既に説明した事項については重複する説明を繰り返さない。
本例に係るCNNフィルタ34においては、輝度画像を対象とするニューラルネットワークとは別に、色差画像を対象とするニューラルネットワークが設けられている。図17は、本例に係るCNNフィルタ34の構成の一部を示す概略図である。色差画像のニューラルネットワークは、色差CbとCr(不図示)とのそれぞれについて設けられているが、以下、前者を例に挙げて説明する。なお、上記の記載は、色差Cbを示す画像を対象とするニューラルネットワークと、色差Crを示す画像を対象とするニューラルネットワークとの必ずしも双方が、本例にて説明する構成であることを要することを意味しない。
最下段の色差画像を対象とするニューラルネットワークにおいては、まずconcat層において、色差画像と上述した第2の入力画像データとが結合される。ここで、結合される各画像のサイズは等しい。即ち、輝度画像を対象とする第1のニューラルネットワークのconv層においては、処理対象とする画像を、上記色差画像のサイズと等しくなるように縮小する。本例においては、色差画像の解像度は水平・垂直方向とも輝度画像の1/2と仮定し、上記conv層においては当該画像を水平・垂直方向とも1/2の大きさに縮小される。
なお、図17に例示する色差を対象とするニューラルネットワークにおいては、最初に各画像の結合処理がなされているが、結合処理を伴わない1又は複数のフィルタ処理を経たのちに、concat層において結合処理がなされる構成でもよい。
図18は、上記構成を示す概略図である。また、図18は、上述した第3のニューラルネットワークの処理対象である画像がdeconv層において好適なサイズに拡大され、色差画像を対象とするニューラルネットワークに入力されることを例示している。
また、CNNフィルタ34は、輝度画像を対象とするニューラルネットワークと同様に、並列に構成された複数の色差画像を対象とするニューラルネットワークを有していてもよい。
本例の構成によれば、輝度画像の大域的特徴を示す特徴マップを参照することでニューラルネットワークを利用する色差画像のフィルタ処理の効果を向上させることができる。
(ニューラルネットワークの構成例3)
符号化パラメータは通常4×4単位で導出・処理され、画素単位で処理される輝度画像とは粒度(サイズ、解像度)が異なる。そのため、解像度を合わせるためのなんらかの変換処理が必要である。本例においては、ニューラルネットワーク上の縮小された解像度において、入力画像(例えば輝度画像)と符号化パラメータを画素値とする画像とを結合する構成について説明する。なお、既に説明した事項については重複する説明を繰り返さない。
本構成は、ニューラルネットワークにより輝度画像を例えば1/4に縮小し、輝度画像と符号化データを同じ解像度に合わせた上で結合することに特徴がある。縮小された解像度での結合処理は、解像度が小さい分だけ処理量が小さいことと、大域の情報を扱うことができるという効果がある。さらに、符号化データとの結合後に再度、入力画像の解像度に拡大することで、出力画像を得るが、このときに、入力画像と同じ等倍の解像度で処理した画像である中間データと、先の縮小した解像度で処理してから拡大した画像である中間データを結合して処理する点も特徴である。
図19は、本例に係るCNNフィルタ34の構成の一部を示す概略図である。図19は、上述した、輝度画像を処理対象とする第3のニューラルネットワークのconcat層において、縮小された輝度画像と符号化パラメータを画素値とする画像とが結合されることを例示している。
図19の具体例では、符号化パラメータからなる画像(画像73)の解像度は、第1の入力画像データである画像71の解像度よりも小さく、ここでは水平・垂直方向とも1/4の例を示す。画像71は、縮小処理により、符号化パラメータからなる画像(画像73)と解像度を合わせたうえで画像73と結合する。ここでは、解像度が1/2になる、conv層での処理を2回施されたうえで、フィルタ処理が適宜施された画像73と結合する。
また、図19の具体例では、縮小された解像度において符号化パラメータからなる画像と結合された中間データを例えば4倍に拡大し、縮小されない解像度においてニューラルネットワークで処理された中間データと結合する。この結合された中間データをさらにニューラルネットワークで処理して出力画像を得る。図19の具体例では、縮小された解像度において符号化パラメータからなる画像と結合された中間データを例えば2倍ずつに拡大することで、1/4解像度での処理と1/2解像度での処理、1:1解像度での処理を含む。
また、符号化パラメータを画素値とする画像がdeconv層において好適な大きさに拡大されて、例えば第2のニューラルネットワークの何れかの層において輝度画像と結合される構成でもよい。
また、ニューラルネットワークにおいて、符号化パラメータを画素値とする画像が結合される対象は、輝度画像に限定されず、例えば色差画像と結合されてもよい。色差画像の場合には、通例では、縮小は1/2、拡大は2倍でよい。
本例の構成によれば、縮小された解像度において、符号化パラメータの画像を扱うため、等倍の解像度で全て処理を行う場合よりも、処理量を削減できる。また、大域の情報を用いることができるため、処理性能を向上させる効果がある。
(ニューラルネットワークの構成例4)
本例においては、ニューラルネットワーク上において、入力画像(例えば輝度画像)と複数の符号化パラメータを画素値とする画像とを結合する構成について説明する。
図20は、本例に係るCNNフィルタ34の構成の一部を示す概略図である。以下、輝度画像を対象とする最上段のニューラルネットワークを第1のニューラルネットワーク、2段目、3段目の符号化パラメータを画素値とする画像を対象とするニューラルネットワークを、それぞれ第2のニューラルネットワーク、第3のニューラルネットワークとして説明する。
ただし、CNNフィルタ34は、ニューラルネットワークの構成例3等において上述した構成と同様に、輝度画像又は色差画像を対象とするニューラルネットワークであって、並列に構成された複数のニューラルネットワークを有する場合においても、本例は当該ニューラルネットワークに対して適用可能である。
図20に示す例においては、第2のニューラルネットワークの入力層には、第1の符号化パラメータを画素値とする、第2の入力画像データに相当する画像が入力され、第3のニューラルネットワークの入力層には、第2の符号化パラメータを画素値とする、第3の入力画像データに相当する画像が入力される。
そして、各画像は、1又は複数のフィルタ処理を適宜施されたうえで、第2又は第3のニューラルネットワークのconcat層において結合処理が施される。結合された画像は、deconv層において好適なサイズに拡大されて第1のニューラルネットワークのconcat層に入力される。
なお、各画像は、結合前に必ずしもフィルタ処理が施されることを要しない。また、結合された画像は、Deconvolution処理が施される前又は後に1又は複数のフィルタ処理が別途施されてもよい。また、符号化パラメータを画素値とする各画像は、第1のニューラルネットワークに入力される前に必ずしも結合されることを要しない。各画像が別々に第1のニューラルネットワークのconcat層に入力され、各画像がまとめて結合される構成でもよい。
このように、本例に係る画像フィルタ装置32においては、第1の入力画像データが入力される第1のニューラルネットワークと、第1の符号化パラメータを画素値とする第2の入力画像データが入力される第2のニューラルネットワークと、第2の符号化パラメータを画素値とする第3の入力画像データが入力される第3のニューラルネットワークと、を備え、上記第2のニューラルネットワークの出力データと上記第3のニューラルネットワークの出力データとがコンカテネート、つまり結合されたうえで、上記第1のニューラルネットワークの何れかの層に入力される。
上記の構成によれば、複数の符号化パラメータを用いて画像のフィルタ処理をニューラルネットワークを利用して行うことができる。
また、上述した実施形態における画像符号化装置11、画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。画像符号化装置11、画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
〔応用例〕
上述した画像符号化装置11及び画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した画像符号化装置11及び画像復号装置31を、動画像の送信及び受信に利用できることを、図21を参照して説明する。
図21の(a)は、画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック図である。図21の(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した画像符号化装置11は、この符号化部PROD_A1として利用される。
送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部A7を更に備えていてもよい。図21の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図21の(b)は、画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック図である。図21の(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を更に備えていてもよい。図21の(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部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を、動画像の記録及び再生に利用できることを、図22を参照して説明する。
図22の(a)は、上述した画像符号化装置11を搭載した記録装置PROD_Cの構成を示したブロック図である。図22の(a)に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した画像符号化装置11は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)などのように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリなどのように、記録装置PROD_Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図22の(a)においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部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の一例である。
図22の(b)は、上述した画像復号装置31を搭載した再生装置PROD_Dの構成を示したブロックである。図22の(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した画像復号装置31は、この復号部PROD_D2として利用される。
なお、記録媒体PROD_Mは、(1)HDDやSSDなどのように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリなどのように、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなどのように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図22の(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部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の一例である。
(ハードウェア的実現およびソフトウェア的実現)
また、上述した画像復号装置31および画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納した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)等の論理回路類などを用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、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:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。