(本開示の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、画像を符号化する画像符号化装置、または画像を復号する画像復号装置に関して、以下の問題が生じることを見出した。
近年、デジタル映像機器の技術進歩が著しく、ビデオカメラやテレビチューナから入力した映像信号(時系列順に並んだ複数のピクチャ)を圧縮符号化し、DVDやハードディスク等の記録メディアに記録する機会が増えている。画像符号化規格としてはH.264/AVC(MPEG−4 AVC)があるが、次世代の標準規格としてHEVC(High Efficiency Video Coding)規格(非特許文献1)が規格化された。
HEVC規格(非特許文献1)における画像符号化方法は、符号化画像を予測するステップ、予測画像と符号化対象画像の差分を求めるステップ、差分画像を周波数係数に変換するステップ、周波数係数を量子化するステップ、周波数係数や予測情報を算術符号化するステップ、符号化した画像を復号するステップ、および、復号した画像に対してフィルタ処理を施すループ内フィルタステップで構成される。予測ステップでは、画面内から予測するイントラ予測と、画面間で予測するインター予測がある。イントラ予測、インター予測、およびループ内フィルタは、いずれも周辺画素の重み付け線形和で表現されるフィルタで実現し、フィルタ計算には数パターンの固定のフィルタ係数を使用する。
しかしながら、線形フィルタまたは固定のフィルタ係数では、予測画像と符号化対象画像との誤差を小さく出来ない場合があり、その場合に符号量が大きくなる、もしくは画質が劣化するという課題があった。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。
(実施の形態1)
<全体構成>
図1は、本実施の形態における画像符号化装置の構成を示すブロック図である。
本実施の形態における画像符号化装置100は、ブロック分割部101、減算部102、変換部103、量子化部104、可変長符号化部105、逆変換部106、逆量子化部107、加算部108、NNパラメータ決定部109、イントラ予測部110、インター予測部111、フレームメモリ112、およびループ内フィルタ部113を備える。なお、本開示において、NNは、ニューラルネットワークを意味する。以下、これらの構成要素の処理を、フローチャートなどを用いて説明する。
<動作(全体)>
図2は、画像符号化装置100による画像符号化の全体の処理を示すフローチャートである。
まず、NNパラメータ決定部109は、符号化対象画像または符号化対象画像群(シーケンス)を分析し、NNイントラ予測パラメータ切換え単位、NNインター予測パラメータ切換え単位、およびNNループ内フィルタパラメータ切換え単位(以下、これらを総称してNNパラメータ切換え単位という)を決定する(S101、S102、S103)。例えば、NNパラメータ決定部109は、画像の各ブロックの画素分散または平均値等を求め、符号化順でブロックの傾向が異なるタイミングをパラメータ切換えタイミングに設定する。NNパラメータ切換え単位としては、CU、CTU、スライス、タイル、ピクチャ、またはGOPがある。
次に、ブロック分割部101は、入力画像をブロックに分割し、ブロックを順次、減算部102とイントラ予測部110とインター予測部111に出力する(S104)。
次に、NNイントラ予測パラメータ決定部109aは、符号化対象ブロックのタイミングがNNイントラ予測パラメータ切換えタイミングかどうかを判定し、NNイントラ予測パラメータ切換えタイミングであれば、NNイントラ予測パラメータを決定する(S105、S106)。同様に、NNインター予測パラメータ決定部109bは、符号化対象ブロックのタイミングがNNインター予測パラメータ切換えタイミングかどうかを判定し、NNインター予測パラメータ切換えタイミングであれば、NNインター予測パラメータを決定する(S107、S108)。同様に、NNループ内フィルタパラメータ決定部109cは、符号化対象ブロックのタイミングがNNループ内フィルタパラメータ切換えタイミングかどうかを判定し、NNループ内フィルタパラメータ切換えタイミングであればNNループ内フィルタパラメータを決定する(S109、S110)。それぞれのパラメータの決定に関しての詳細は後述する。次に、画像符号化装置100は、ブロックを符号化し(S111)、符号化対象画像内の全ブロックの符号化が完了するまでステップS105からS111を繰り返す(S112)。
なお、NNパラメータ切換え単位は、NNイントラ予測、NNインター予測、NNループ内フィルタのうちの少なくとも2つの間で同一にしてもよい。例えば、NNイントラ予測およびNNインター予測では、NNパラメータ切換え単位をスライスとし、NNループ内フィルタでは、NNパラメータ切換え単位をピクチャとしてもよい。
また、上述のNNイントラ予測パラメータ切換えタイミングなどのパラメータ切換えタイミングは、直前に符号化されたブロックを含むNNパラメータ切換え単位とは異なる新たなNNパラメータ切換え単位に含まれるブロックが符号化対象ブロックとして符号化されるタイミングである。
<動作(ブロック符号化フロー)>
図3は、図2のステップS111におけるブロック符号化の詳細を示すフローチャートである。
まず、イントラ予測部110およびインター予測部111は、イントラ予測ブロックおよびインター予測ブロックを生成する(S121、S122)。詳細は後述する。
次に、画像符号化装置100は、イントラ予測ブロックおよびインター予測ブロックのうちのいずれかを選択することによって、予測ブロックを決定する(S123)。減算部102は、符号化対象ブロックから予測ブロックを減算して差分ブロックを生成する(S124)。変換部103は、差分ブロックを周波数変換し(S125)、量子化部104は、周波数変換によって得られた複数の周波数係数を量子化する(S126)。可変長符号化部105は、量子化によって得られた複数の量子化値を可変長符号化することによって符号列を生成する(S127)。また、逆量子化部107は、量子化によって得られた複数の量子化値を逆量子化し(S128)、逆変換部106は、その逆量子化によって得られた複数の周波数係数を逆周波数変換する(S129)。加算部108は、逆周波数変換によって得られた復号差分ブロックに予測ブロックを加算することによって、復元ブロックを生成する(S130)。また、ループ内フィルタ部113は、復元ブロックに対してループ内フィルタを実施し、フレームメモリ112に格納する(S131)。ループ内フィルタについては後述する。
<動作(イントラ予測ブロック生成フロー)>
図4は、図3のステップS121におけるイントラ予測ブロック生成の詳細を示すフローチャートである。なお、このイントラ予測ブロック生成は、イントラ予測部110によって行われる。
まず、固定イントラ予測部110bは、固定フィルタによるイントラ予測を実施する(S141)。これは従来のHEVCと同様であるため、説明を省略する。
次に、NNイントラ予測部110aは、NNイントラ予測モードが有効であるか否かを判定し(S142)、有効であれば、イントラ予測を実施する(S143)。NNイントラ予測部110aは、NNイントラ予測パラメータ決定部109Aaによって決定したパラメータを、イントラ予測に用いる。詳細は後述するが、パラメータはクラス毎に存在し、NNイントラ予測部110aは、1クラスを1モードとして使用し、予測精度が高く(予測画像と符号化対象画像との差異が小さい)、予測モード識別子の符号量が小さい予測モードを選択して用いることにより、NNイントラ予測の結果を得る。次に、イントラ予測部110は、NNイントラ予測評価値と固定イントラ予測評価値とを比較する(S144)。そして、イントラ予測部110は、NNイントラ予測評価値の方が大きい場合は、NNイントラ予測結果をイントラ予測ブロックに設定し(S145)、そうでない場合は、固定イントラ予測結果をイントラ予測ブロックに設定する(S146)。評価値は、予測画像(イントラ予測ブロック)と符号化対象画像(符号化対象ブロック)との差異が小さければ大きい値となり、また、予測に必要なパラメータ(NNイントラ予測の場合は必要な重み係数またはバイアス値等)の符号量が小さい程大きい値になる。
<動作(インター予測ブロック生成フロー)>
図5は、図3のステップS122におけるインター予測ブロック生成の詳細を示すフローチャートである。この図5のフローチャートにおけるステップS151〜S156は、図4のイントラ予測ブロック生成のフローチャートにおけるステップS141〜S146とほぼ同じであり、NNイントラ予測および固定イントラ予測を、NNインター予測および固定インター予測に読み替えるだけであるので説明を省略する。
<動作(ループ内フィルタフロー)>
図6は、図3のステップS131におけるループ内フィルタの詳細を示すフローチャートである。この図6のフローチャートにおけるステップS161〜S164は、図4のイントラ予測ブロック生成のフローチャートにおけるステップS141〜S144とほぼ同じであり、NNイントラ予測および固定イントラ予測を、NNループ内フィルタおよび固定ループ内フィルタに読み替えるだけであるので説明を省略する。図6のフローチャートにおけるステップS165およびS166では、ループ内フィルタ部113は、評価値が良い方のフィルタ結果をフレームメモリ112に格納する。
<動作(NNイントラ予測パラメータ決定フロー)>
図7は、図2のステップS106におけるNNイントラ予測パラメータ決定の詳細を示すフローチャートである。
まず、NNイントラ予測パラメータ決定部109aは、NNイントラ予測パラメータ切換え単位内の複数の符号化対象ブロックのそれぞれを複数クラスのうちの何れかのクラスに分類する(S171)。例えば、NNイントラ予測パラメータ切換え単位がピクチャであれば、NNイントラ予測パラメータ決定部109aは、ピクチャ内の符号化対象ブロックを分類する。分類は、ブロックの特徴情報を用いて実施される。例えば、符号化対象ブロックは、画素分散または画素の分布を用いて分類される。
次に、NNイントラ予測パラメータ決定部109aは、分類したクラス毎にNNイントラ予測のパラメータを決定する(S172)。詳細を図10と図13を用いて説明する。
図10の(a)は、NNイントラ予測の参照画素と、符号化対象ブロックとの関係を示した図である。一つの四角は1画素を示す。このように、NNイントラ予測パラメータ決定部109aは、符号化対象ブロックの上隣の画素と左隣の画素を参照画素として使用する。
図13は、NNイントラ予測の1例を示す図である。このNNイントラ予測は、ニューラルネットワークの構成をとり、左端の11個の丸は入力する参照画素を示し、図10の(a)の参照画素0〜参照画素10に対応する。右端の16個の丸は、出力する予測画素を示し、図10の(a)の符号化対象ブロック位置の番号0〜15に対応する予測画素である。図7のステップS172のNNイントラ予測のパラメータ決定では、NNイントラ予測パラメータ決定部109aは、図13に示すニューラルネットワークの階層数、ノード数、重み係数、およびバイアス値を決定する。階層数(nn_intra_layer_num[k])は、モード(クラス)kにおける階層数、つまり図13の横方向の段数である。ノード数(nn_intra_node_num[k][])は、各階層の縦方向のノードの個数である。例えば、ノード数(nn_intra_node_num[k][0])は、モード(クラス)kにおける第0階層のノード数(図13の例では、ノード数は4)である。重み係数(nn_intra_w[k][][][])は、モード(クラス)kにおける各ノードの入力値に乗算する係数である。例えば、重み係数(nn_intra_w[k][0][0][2])は、モード(クラス)kにおける第0階層の第0番目のノード(n[k][0][0])に対する第2番目の入力値(参照画素2または入力ノードr2の値)に乗算する係数である。バイアス値(nn_intra_bias[k][][])は、入力値の重み付け和に加算する値である。例えば、バイアス値(nn_intra_bias[k][1][1])は、モード(クラス)kにおける第1階層の第1番目のノード(n[k][1][1])において、入力値(入力ノードn[k][0][0]〜n[k][0][3]の各値)の重み付け和に加算する値である。各ノードの出力値は次の式で表現できる。
ここで、wは重み係数、biasはバイアス値、nはノードの出力値、n’はノード出力値計算時の一時的な変数である。また、intra_pred_ref_pixel_numは参照画素数を示し、この例では11である。なお、intra_pred_ref_pixel_numは、モード(k)または予測画素数に応じて異なっていてもよい。また、nn_intra_node_numは、ノード数を示し、この例では第一階層において4であり、第二階層において3である。また、[k]はクラス(モード)を示す。図7のステップS171の分類で、各ブロックを3つのクラスに分けた場合は、NNイントラ予測パラメータ決定部109aは、3つのクラスのそれぞれで、図13のようなネットワーク構成を構築し、[k]は0〜2の値をとることになる。
図7のステップS172のNNイントラ予測パラメータの決定では、NNイントラ予測パラメータ決定部109aは、同じクラスの符号化対象ブロックとその参照画素(周辺画素)のペアを教師データとして学習し、参照画素から符号化対象ブロックを生成(予測)する重み係数およびバイアス値を算出する。より具体的には、NNイントラ予測パラメータ決定部109aは、参照画素を入力し、出力する予測画素が符号化対象ブロックに近くなるよう(誤差が小さくなるよう)に誤差逆伝搬法等を用いて重み係数とバイアス値を更新していき、入力データ(同じクラスの符号化対象ブロックとその周辺画素のペア群)に対して最も予測誤差が小さくなるような重み係数およびバイアス値を算出する。NNイントラ予測パラメータ決定部109aは、このような処理を、階層数およびノード数を変更した複数パターンで実施し、予測精度が高い、階層数、ノード数、重み係数およびバイアス値の組み合わせを見つけ出す。なお、階層数、ノード数、重み係数およびバイアス値は符号化されて符号列に組み込まれるため、NNイントラ予測パラメータ決定部109aは、予測精度だけでなく、階層数、ノード数、重み係数およびバイアス値の符号量も考慮して最適な組み合わせを導き出す。NNイントラ予測パラメータ決定部109aは、ステップS172の処理をすべてのクラスに対して実施する(S173)。
<動作(NNインター予測パラメータ決定フロー)>
図8は、図2のステップS108におけるNNインター予測パラメータ決定の詳細を示すフローチャートである。
まず、NNインター予測パラメータ決定部109bは、符号化対象ブロック毎に参照画像内から最も相関が高い参照ブロックを抽出し、これをNNインター予測パラメータ切換え単位内の全符号化対象ブロックで実施する(S181、S182)。NNインター予測パラメータ決定部109bは、相関計算には、例えば画素の差分絶対値和を用い、差分絶対値和が小さいブロックを相関が高いブロックとして抽出する。
次に、NNインター予測パラメータ決定部109bは、符号化対象ブロックとその参照ブロックの相関に応じて、複数の符号化対象ブロックのそれぞれを複数クラスのうちの何れかのクラスに分類する(S183)。例えば、NNインター予測パラメータ決定部109bは、画素の差分絶対値和が小さいものと大きいものを分類したり、画素毎の差分の分散または平均等を用いて分類する。
次に、NNインター予測パラメータ決定部109bは、分類したクラス毎に、NNインター予測のパラメータを決定する(S184)。詳細を図11と図14を用いて説明する。
図11は、NNインター予測の参照画素と符号化対象ブロックの関係を示した図である。一つの四角は1画素を示す。図11のように、NNインター予測パラメータ決定部109bは、符号化対象ブロックの1画素の予測に13画素の参照画像内の画素を用いる。ここで、動きベクトルは参照画像内で最も相関が高いブロック位置を指し示すための情報である。NNインター予測パラメータ決定部109bは、最も相関が高いブロック位置の周辺画素を参照画素として使用する。
図14は、NNインター予測の1例を示す図である。このNNネットワーク予測は、NNイントラ予測と同様に、ニューラルネットワークの構成をとり、左端の13個の丸は入力する参照画素を示し、図11の参照画素0〜参照画素12に対応する。右端の1個の丸は出力する予測画素を示し、図11の符号化対象ブロック位置の番号0に対応する予測画素である。図8のステップS184のNNインター予測のパラメータ決定では、NNインター予測パラメータ決定部109bは、図14に示すニューラルネットワークの階層数、ノード数、重み係数、およびバイアス値を決定する。階層数、ノード数、重み係数、バイアス値及び各ノードの出力値の計算方法は、図13と同様であるため、説明を省略する。ただし、NNイントラ予測とは異なり、NNインター予測パラメータ決定部109bは、13個の参照画素を入力し、1画素の予測画素を生成する。4x4ブロックの予測画素を生成したい場合は、NNインター予測パラメータ決定部109bは、参照画素位置を1画素ずつずらしながら図14のニューラルネットワークに入力し、16回繰り返して16個の予測画素を生成することになる。図8のステップS184のNNインター予測のパラメータ決定では、NNインター予測パラメータ決定部109bは、同じクラスの符号化対象画素とその参照画素のペアを教師データとして学習し、参照画素から符号化対象画素を生成(予測)する階層数、ノード数、重み係数およびバイアス値を算出する。NNインター予測パラメータ決定部109bは、ステップS184の処理をすべてのクラスに対して実施する(S185)。
<動作(NNループ内フィルタパラメータ決定フロー)>
図9は、図2のステップS110におけるNNループ内フィルタパラメータ決定の詳細を示すフローチャートである。また、図12は、NNループ内フィルタの1例を示す図である。なお、図9のフローチャートにおいてNNループ内フィルタパラメータ決定部109cが行うステップS191〜S193の処理は、図7に示すNNイントラ予測パラメータ決定のフローチャートにおけるステップS171〜S173の処理と同様である。したがって、図9のフローチャートの説明を省略する。ただし、NNループ内フィルタパラメータ決定部109cは、図12に示すように符号化対象画素の周辺の13画素を参照画素として使用する。また、NNループ内フィルタのネットワーク構成は、NNインター予測と同様に、図14のような構成をとる。NNループ内フィルタパラメータ決定部109cは、NNインター予測と同様に、クラス毎に参照画素と符号化対象画素を教師データとして学習し、参照画素から符号化対象画素を生成する階層数、ノード数、重み係数、およびバイアス値を算出する。
<シンタックス構成>
図15〜図22を用いて、NNイントラ予測、NNインター予測、およびNNループ内フィルタに関して、符号化する情報を説明する。
図15は、SPS(シーケンスパラメータセット)に関するシンタックスを示す図である。nn_intra_pred_enabled_flag、nn_inter_pred_enabled_flag、およびnn_ilf_enabled_flagはそれぞれNNイントラ予測、NNインター予測、およびNNループ内フィルタが有効かどうかを示すフラグ(有効/無効情報)である。つまり、これらの有効/無効情報は、図4のステップS142、図5のステップS152または図6のステップS162において、処理が有効か否かを判定するための情報である。また、これらの有効/無効情報は、PPSに存在してもよく、スライスヘッダまたはCTU(Coding Tree Unit)に存在してもよい。
図16は、NNイントラ予測、NNインター予測、およびNNループ内フィルタで使用するパラメータ情報のシンタックスを示す図である。nps_idは、このデータセットに関する識別子である。画像符号化装置100は、NNイントラ予測、NNインター予測、またはNNループ内フィルタを行う場合は、nps_idを指定することにより、必要な演算パラメータを取得する。nps_nn_intra_pred_data_present_flag、nps_nn_inter_pred_data_present_flag、およびnps_nn_ilf_data_present_flagはそれぞれ、NNイントラ予測のパラメータ(nn_intra_pred_parameter_data())、NNインター予測のパラメータ(nn_inter_pred_parameter_data())、およびNNループ内フィルタのパラメータ(nn_ilf_parameter_data())をこのシンタックス内に含んでいるかどうかを示すフラグである。これらのフラグが1の場合は、可変長符号化部105は、後述するnn_intra_pred_parameter_data()、nn_inter_pred_parameter_data()、およびnn_ilf_parameter_data()によって、NNイントラ予測、NNインター予測、およびNNループ内フィルタに使用する、階層数、ノード数、重み係数、およびバイアス値に関する情報(演算パラメータ)を符号化する。
図17は、PPS(ピクチャパラメータセット)のシンタックスを示す図である。nn_intra_pred_enabled_flag、nn_inter_pred_enabled_flag、およびnn_ilf_enabled_flagのいずれかが1の場合、つまりNNイントラ予測、NNインター予測、およびNNループ内フィルタのいずれかが有効である場合に、可変長符号化部105は、pps_nps_idを符号化する。画像符号化装置100は、このPPSを使用するピクチャでは、pps_nps_idと一致するnps_idの演算パラメータを用いて、NNイントラ予測、NNインター予測、またはNNループ内フィルタを実施する。
図18は、スライスヘッダのシンタックスを示す図である。nn_intra_pred_enabled_flag、nn_inter_pred_enabled_flag、およびnn_ilf_enabled_flagのいずれかが1の場合、つまりNNイントラ予測、NNインター予測、およびNNループ内フィルタのいずれかが有効である場合に、可変長符号化部105は、slice_nps_idを符号化する。画像符号化装置100は、このスライスヘッダを使用するスライスでは、slice_nps_idと一致するnps_idの演算パラメータを用いて、NNイントラ予測、NNインター予測、またはNNループ内フィルタを実施する。なお、画像符号化装置100は、pps_nps_idとslice_nps_idが異なる値の場合はslice_nps_idの値を優先して使用する。
図19は、NNイントラ予測のパラメータデータのシンタックスを示す図である。nn_intra_mode_numは、NNイントラ予測のモード数を示し、図7のステップS171において分類したクラス数に対応する。nn_intra_layer_num[k]は、NNイントラ予測の階層数を示し、[k]はNNイントラ予測のk番目のモードであることを示す。nn_intra_node_num[k][i]は、k番目のモードのi番目の階層のノード数を示す。nn_intra_bias[k][i][j]は、k番目のモードのi番目の階層のj番目のノードのバイアス値を示す。nn_intra_w[k][i][j][m]は、k番目のモードのi番目の階層のj番目のノードのm番目の入力の重み係数を示す。このように、可変長符号化部105は、図19のシンタックスによって、図13のネットワーク構成のパラメータ情報(演算パラメータ)を符号化する。
図20は、NNインター予測のパラメータデータのシンタックスを示す図である。図21は、NNループ内フィルタのパラメータデータのシンタックスを示す図である。可変長符号化部105は、図19のNNイントラ予測と同様に、図14のネットワーク構成のパラメータ情報を符号化する。
図22は、CU(符号化ブロック)のシンタックスを示す図である。intra_pred_typeは、NNイントラ予測および固定イントラ予測のどちらを使用したかを示す情報である。可変長符号化部105は、図4のS144でNNイントラ予測の評価値が大きい場合は、NN_INTRA_PREDを示すintra_pred_typeを符号化し、固定イントラ予測の評価値が大きい場合は、FIXED_INTRA_PREDを示すintra_pred_typeを符号化する。なお、nn_intra_pred_enabled_flagによってNNイントラ予測が無効である場合は、可変長符号化部105は、intra_pred_typeを符号化しない。この場合、デコード側では常に固定イントラ予測を実施するよう動作する。また、NNイントラ予測を使用した場合は、可変長符号化部105は、nn_intra_pred_modeとして、NNイントラ予測のモードを符号化する。固定イントラ予測を使用した場合は、可変長符号化部105は、fixed_intra_pred_modeとして、固定イントラ予測のモードを符号化する。nn_intra_pred_modeは、図4のS143のNNイントラ予測でどのクラス(モード)の演算パラメータを選択したかを示す情報であり、図13の[k]に対応する。また、fixed_intra_pred_modeは、HEVCのイントラ予測の予測方向に対応し、固定イントラ予測部110bは、複数あるフィルタ係数のセットをfixed_intra_pred_modeによって切り替える。
また、inter_pred_typeは、NNインター予測および固定インター予測のどちらを使用したかを示す情報である。可変長符号化部105は、図5のS154でNNインター予測の評価値が大きい場合は、NN_INTER_PREDを示すinter_pred_typeを符号化し、固定インター予測の評価値が大きい場合は、FIXED_INTER_PREDを示すinter_pred_typeを符号化する。なお、nn_inter_pred_enabled_flagによってNNインター予測が有効でない場合は、可変長符号化部105は、inter_pred_typeを符号化しない。この場合、デコード側では常に固定インター予測を実施するよう動作する。また、NNインター予測を使用した場合は、可変長符号化部105は、nn_inter_pred_modeとして、NNインター予測のモードを符号化する。nn_inter_pred_modeは、図5のS153のNNインター予測でどのクラス(モード)の演算パラメータを選択したかを示す情報であり、図14の[k]に対応する。また、prediction_unit()では、可変長符号化部105は、HEVCと同様に動きベクトルや参照画像インデックスを符号化する。
また、ilf_typeは、NNループ内フィルタおよび固定ループ内フィルタのどちらを使用したかを示す情報である。可変長符号化部105は、図6のS164でNNループ内フィルタの評価値が大きい場合は、NN_ILFを示すilf_typeを符号化し、固定ループ内フィルタの評価値が大きい場合は、FIXED_ILFを示すilf_typeを符号化する。なお、nn_ilf_enabled_flagによってNNループ内フィルタが有効でない場合は、可変長符号化部105は、ilf_typeを符号化しない。この場合、デコード側では常に固定ループ内フィルタを実施するよう動作する。また、NNループ内フィルタを使用した場合は、可変長符号化部105は、nn_ilf_modeとしてNNループ内フィルタのモードを符号化する。nn_ilf_modeは、図6のS163のNNループ内フィルタでどのクラス(モード)の演算パラメータを選択したかを示す情報であり、図14の[k]に対応する。
<効果>
以上、本実施の形態によれば、符号化対象画像に特化した予測画素生成またはループ内フィルタを実施することができ、予測誤差削減、または対象画像に近づけるループ内フィルタ処理が可能となり、符号化効率を向上させることができる。より具体的には、符号化対象画素と参照画素の関係性をニューラルネットワークにより学習させることにより、参照画素から精度良く符号化対象画素を生成できるようになり、予測精度の向上、およびノイズ低減が図れる。イントラ予測においては、周辺画素にはないオブジェクトが符号化対象ブロック内に出現した場合、従来のHEVCでは予測が困難であったが、NNイントラ予測では、あらかじめそのようなデータも教師データとして学習しているため、予測が可能となる。また、インター予測においては、HEVCの小数画素生成手法は、どのような入力画像でも対応可能なように汎用的なフィルタ処理となっており、入力画像によっては小数画素の予測精度が低い場合がある。しかし、本実施の形態によれば、NNインター予測では入力画像を用いて学習するために、入力画像にマッチしたフィルタ処理とすることができ、予測精度を向上可能である。また、ループ内フィルタも同様に、NNループ内フィルタでは入力画像に特化したフィルタ演算を構築することができ、よりノイズを削減した原画像に近い画像を生成することが出来る。
なお、図2で示した通り、NNパラメータ切換え単位は、NNイントラ予測、NNインター予測、およびNNループ内フィルタにおいて別々に設定可能にされているが、全て同一、もしくは一部同一でもよい。例えば、NNイントラ予測およびNNインター予測では、NNパラメータ切換え単位をスライス単位とし、NNループ内フィルタでは、NNパラメータ切換え単位をピクチャ単位としてもよい。そうすることにより切換えタイミングの判定を統一化でき、切換えるための情報(符号量)も少なくすることができる。
また、NNパラメータ切換え単位は複数ピクチャに跨るGOP等でもよい。このように、NNパラメータ切換え単位を大きくすることによって、切換えのための識別子情報の符号量を小さくでき、また、符号化しなければならないNNパラメータの種類も少なくなり、NNのパラメータの符号量を削減できる。また、GOP単位で切換える場合、NNパラメータ決定部109は、複数ピクチャを入力し、それらピクチャのブロックから学習してNNのパラメータを決定してもよいし、代表的な画像のブロックのみを使ってパラメータを決定してもよい。そうすることにより、学習時間(パラメータ決定処理量)を減らすことができ、また、先頭ピクチャのみを学習に使ってパラメータを決定することによって、それ以降のピクチャの入力を待たずして符号化を始めることが出来る。その結果、符号列を出力するまでの遅延を減らすことができる。
また、NNイントラ予測モード、NNインター予測モード、またはNNループ内フィルタなどのNN(ニューラルネットワーク)の有効/無効を、プロファイルに応じて変更してもよいし、ユーザが指定してもよい。また、使用するアプリケーションの要求に応じて変更するようにしてもよい。
図27は、プロファイルおよび要求に応じて、NNの有効/無効を切換える処理を示すフローチャートである。
例えば、図27のステップS201〜S204に示すように、画像符号化装置100は、リアルタイム要求がある場合、および、低演算量向けプロファイルの場合には、NNイントラ予測、NNインター予測、およびNNループ内フィルタを無効にするようにしてもよい。リアルタイム要求があるアプリケーションとは、例えばTV電話等であり、逆にリアルタイム要求がないアプリケーションには、例えばインターネット配信に用いる映画コンテンツ等の圧縮がある。NNの予測およびループ内フィルタでは、あらかじめ符号化対象データを学習させる必要があるために、2パス符号化のように、入力画像を符号化前に走査する必要がある。そのため画像が入力されてから符号列を出力するまでの遅延が、固定のフィルタに比べて大きくなる。そのため、リアルタイム性を重視するアプリケーションまたはプロファイルの場合は、NNを無効にすることによって低遅延にし、逆に圧縮性能を上げたい場合はNNを有効にすることによって圧縮率を上げる等、状況に応じてNNの有効/無効を切換えることが可能となる。
また、図8に示すNNインター予測パラメータの決定では、NNインター予測パラメータ決定部109bは、符号化対象ブロックと参照ブロックとの相関に応じて、符号化対象ブロックを複数クラスのうちの何れかのクラスに分類している。しかし、NNインター予測パラメータ決定部109bは、参照画像内で相関が高いブロック位置を指し示すための情報である動きベクトルの小数精度情報を用いて符号化対象ブロックを分類してもよい。例えば、NNインター予測パラメータ決定部109bは、符号化対象ブロックの動きベクトルのx成分およびy成分が共に整数画素精度の場合には、その符号化対象ブロックをクラス0に分類し、x成分およびy成分が共に1/2画素精度の場合には、その符号化対象ブロックをクラス1に分類してもよい。
また、本実施の形態では、学習データを複数クラスに分類し、各クラスでニューラルネットワークのパラメータを決定し、各クラスのニューラルネットワークを1モードとして選択可能にしている。しかし、本開示では、その限りではなく、1モードのみとしてもよい。つまり、複数クラスに分類せず、NNイントラ予測、NNインター予測およびNNループ内フィルタのそれぞれのニューラルネットワークを1モードとしてもよい。その場合は、図22に示すCUシンタックスのnn_intra_pred_mode、nn_inter_pred_mode、およびnn_ilf_modeは常に固定の数値となるため、不要になることは言うまでもない。
また、NNパラメータ決定部109は、階層数、ノード数、重み係数、およびバイアス値を演算パラメータとして決定するが、アプリケーションの要求またはプロファイルに応じて階層数またはノード数の最大値を設定してもよいし、固定値としてもよい。
図28は、プロファイルおよび要求に応じて、パラメータなどを設定する処理を示すフローチャートである。
例えば、図28のステップS211〜S213に示すように、NNパラメータ決定部109は、リアルタイム性が要求されるアプリケーションおよび低演算量向けのプロファイル時は、ニューラルネットワークにおける階層数の最大値を2に設定し、ノード数の最大値を6に設定する。階層数およびノード数を制限することにより、画像符号化装置100のパラメータ決定のための計算量と、画像符号化装置100および画像復号装置におけるNNイントラ予測、NNインター予測、およびNNループ内フィルタ処理の計算量を抑制することができる。その結果、低遅延が求められるアプリまたは低スペックの画像復号装置にとっては有益である。また、画像符号化装置100を操作するユーザが制限値を設定してもよい。そうすることによってエンコード処理量、または符号列が出力されるまでの遅延を、ユーザが制御することができる。
また、図13および図14に示すニューラルネットワークの構成例は、複数階層になっているが、1階層の構成でもよく、例えば、単なる重み付け線形和の構成としてもよい。そうすることによって構成をシンプルにして低処理量にすることが出来ると共に、符号化すべきパラメータ情報も少なくすることができ、入力画像によってはそのようにした方が効率的な場合がある。最小の構成では各参照画素に乗算する重み係数のみを符号化すればよい。
また、画像符号化装置100は、パラメータ決定時に使用する参照画素、あるいは、NNイントラ予測、NNインター予測、またはNNループ内フィルタに使用する参照画素に対して、前処理を施してからそれらの参照画素をニューラルネットワークに入力してもよい。前処理は、ローパスフィルタ、畳み込み演算、プーリング、またはサンプリング等である。そうすることにより、参照画素がより一般化したデータとなり、予測精度またはループ内フィルタ性能を向上できる場合がある。また、前処理に必要な演算パラメータも別途符号列に含めてもよい。
また、画像符号化装置100は、パラメータ決定の時に使用する学習データとして、予測誤差または符号化ノイズが大きくなりやすい領域のみを使用してもよい。例えば、対象画像内のエッジ領域または複雑性が高い領域のみを学習データにしてもよい。予測誤差または符号化ノイズが小さい領域では、固定イントラ予測、固定インター予測、または固定ループ内フィルタでも性能が十分な場合が多い。そのため、その領域では、固定イントラ予測、固定インター予測、または固定ループ内フィルタを使えばよく、NNの処理を、それ以外の、予測誤差または符号化ノイズが大きくなりやすい領域のみに適用すればよい。そのため、学習データとして、予測誤差または符号化ノイズが大きくなりやすい領域のみを使用した方が、そのようなケースの予測精度またはループ内フィルタ性能を向上させやすい。また、学習データの傾向を絞ることにより、より少ないモードで高性能な予測またはループ内フィルタを実現することができ、符号化すべきNNのパラメータ量を削減可能である。
また、NNイントラ予測に用いる参照画素は、図10の(a)の11画素に限らない。例えば、図10の(b)のようにより多くの参照画素を使用してもよいし、逆に、NNイントラ予測に用いる参照画素は11画素よりも少なくてもよい。参照画素を多くする(広範囲にする)ことにより、予測精度が上がる場合がある。ただし、NNイントラ予測に必要なパラメータ量は増える傾向であるため、NNイントラ予測のモードによって切り替えるようにしてもよい。また、本実施の形態では、4x4ブロックサイズの予測およびループ内フィルタを例に説明しているが、HEVCのように8x8または16x16サイズでも同様に処理し、ブロックサイズが大きくなるほど参照画素数を増やすことは言うまでもない。
また、NNインター予測に用いる参照画素も同様に図11の(a)の13画素に限らない。例えば、図11の(b)のようにより多くの参照画素を使用してもよい。また、使用する参照画素位置からなる形状は、図11の(a)のような菱形の形でもよいし、図11の(b)のような正方形または長方形でもよい。参照画素を多くする(広範囲にする)ことにより、予測精度が上がる場合がある。ただし、NNインター予測に必要なパラメータ量は増える傾向であるため、NNインター予測のモードによって切り替えるようにしてもよい。菱形にすることによって、ある程度の範囲を保ちつつ、相関が低そうな画素を参照画素から取り除くことができ、予測性能を維持しつつ必要なパラメータ量を減らすことができる。
また、NNループ内フィルタに用いる参照画素も同様に図12の(a)の13画素に限らない。例えば、図12の(b)のようにより多くの参照画素を使用してもよい。また、使用する参照画素位置からなる形状は、図12の(a)のような菱形の形でもよいし、図12の(b)のような正方形または長方形でもよい。参照画素を多くする(広範囲にする)ことにより、ループ内フィルタ性能が上がる場合がある。ただし、NNループ内フィルタに必要なパラメータ量は増える傾向であるため、NNループ内フィルタのモードによって切換えるようにしてもよい。
また、図13および図14で示したニューラルネットワークでは、活性化関数のf(x)としてシグモイド関数を使用している。しかし、本開示では、その限りではなく、次のような関数を使用してもよい。
f(x)=1 for x>0
f(x)=0 for x=0
f(x)=−1 for x<0
また、本実施の形態では、シグモイド関数に関しても処理量を削減するために、ルックアップテーブルを用いたテーブル引き等を利用したり、より計算量が小さい近似式にシグモイド関数を置き換えて使用したりしてもよい。また、本実施の形態では、ニューラルネットワークを用いているが、その限りではなく、参照画素から予測画素またはループ内フィルタ結果を算出する構成であれば、単なる重み付け線形和であってもよいし、加算、減算、乗算、または除算などのプリミティブな演算を組み合わせて実現した非線形フィルタでもよい。また、図13および図14に示す例では、参照画素の全てが1階層目のノードの全てに結合しているが、その限りではなく、結合していない参照画素またはノードがあってもよい。参照画素が2階層目以降のノードに直接結合している構成であってもよい。
また、本実施の形態では、NNイントラ予測、NNインター予測、およびNNループ内フィルタの有効フラグはSPSで符号化されるが、PPSに存在してもよいし、スライスヘッダ、CTUまたはCUに存在してもよい。
また、可変長符号化部105は、図16に示すnn_parameter_set_rbsp()を、シーケンス先頭、GOP先頭、またはピクチャ先頭で、使用するパラメータのセットとしてまとめて符号化してもよい。また、画像符号化装置100は、nps_idを使用せず、NNイントラ予測、NNインター予測、またはNNループ内フィルタを使用する時に、直前に符号化したNNパラメータを使用してもよい。まとめて符号化すると、ブロック毎の符号量のばらつきを抑えることができ、レート制御等がやりやすい。また、図17および図18に示すpps_nps_idまたはslice_nps_idを用いてパラメータを指定することにより重複したパラメータを符号化しなくて良くなり、符号量削減効果がある。
また、NNイントラ予測と固定イントラ予測のモードを統一的に扱うようにしてもよい。具体的には、NNイントラ予測か固定イントラ予測のどちらを使うかというタイプ情報(intra_pred_type)を設けず、特定のイントラ予測モードの場合にNNイントラ予測を用いるようにしてもよい。
図23は、CUのシンタックスの変形例であって、NNイントラ予測モードを固定イントラ予測モードとマージしたシンタックスを示す図である。図24は、CUのシンタックスの変形例における、intra_pred_modeと、予測タイプと、固定イントラ予測モードと、NNイントラ予測モードとの関係の例を示す図である。図25は、CUのシンタックスの変形例における、intra_pred_modeと、予測タイプと、固定イントラ予測モードと、NNイントラ予測モードとの関係の他の例を示す図である。
図23および図24に示す例では、イントラ予測部110は、イントラ予測モード(intra_pred_mode)が34以下の場合は固定イントラ予測を使い、35以上の場合はNNイントラ予測を使う。35以上の場合は、イントラ予測モード(intra_pred_mode)から35減算した数値がNNイントラ予測のモード(nn_intra_pred_mode)となる。こうすることによって、イントラ予測のタイプ情報(intra_pred_type)が不要となり、符号量だけでなく、判定処理も不要となる。また、図25のように、イントラ予測モード(intra_pred_mode)が1の場合にはNNイントラ予測を使うようにしてもよい。この場合、固定イントラ予測のモード1が無効となり、その代わりにNNイントラ予測のモード0が有効になる。そうすることにより、イントラ予測のモードの総数を変えずに、NNイントラ予測を導入することができる。つまり、イントラ予測モードの符号量を増やすことなく、NNイントラ予測を導入することができる。また、これは、NNイントラ予測を導入することにより、固定イントラ予測の一部のモードが不要になるケースを考慮している。固定イントラ予測のモード0はPlanar予測、モード1はDC予測と言われるモードであり、DC予測は平坦な画像の場合に選ばれやすい。しかし、平坦な画像の場合はPlanar予測でも同じような予測画像を生成することができ、その場合には、DC予測モードは冗長なモードとなる。NNイントラ予測を導入する場合は固定イントラ予測のDC予測モードを無効にし、DC予測モードが指定された場合はNNイントラ予測を使用するとした方が効果的な場合がある。
また、インター予測部111は、NNインター予測のモードを動きベクトル(MV)から導出してもよい。
図26は、CUのシンタックスの他の変形例であって、MVの小数精度でNNインター予測モードを抽出する例を示す図である。
図26の例に示すように、インター予測部111は、MVの小数画素精度情報からNNインター予測のモードを導出している。HEVCではMVの下位2ビットは小数画素位置を示し、下位2ビットが00の場合は整数画素位置、01の場合は1/4画素位置、10の場合は1/2画素位置、11の場合は3/4画素位置を示す。図26の例では、インター予測部111は、x成分およびy成分の小数画素位置に応じてNNインター予測のモードを切換え、ニューラルネットワークの構成(パラメータ)を切換える。MVの小数画素位置に応じて周辺画素からの予測計算を切換えることができ、NNインター予測モード(nn_inter_pred_mode)を符号化する必要がなく、符号量を削減できる。また、MVの小数画素位置に応じて予測計算を切換えた方が、予測精度が高まるために、この方法によって予測精度を向上させることができる。
更に、本実施例における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施例においても該当する。
(実施の形態2)
<全体構成>
図29は、本実施の形態における画像復号装置の構成を示すブロック図である。
本実施の形態における画像復号装置200は、可変長復号部201、逆量子化部202、逆変換部203、加算部204、イントラ補償部205、インター補償部206、フレームメモリ207、およびループ内フィルタ部208を備える。以下、これらの構成要素の処理を、フローチャートなどを用いて説明する。
<動作(全体)>
図30は、画像復号装置200による画像復号の全体の処理を示すフローチャートである。
まず、イントラ補償部205は、復号対象ブロックのタイミングがNNイントラ予測パラメータ切換えタイミングかどうかを判定する(S221)。そして、イントラ補償部205は、NNイントラ予測パラメータ切換えタイミングであれば、符号列内にあるNNイントラ予測パラメータを取得し、NNイントラ補償部205aに設定する(S222)。同様に、インター補償部206は、復号対象ブロックのタイミングがNNインター予測パラメータ切換えタイミングかどうかを判定する(S223)。そして、インター補償部206は、NNインター予測パラメータ切換えタイミングであれば、符号列内にあるNNインター予測パラメータを取得し、NNインター補償部206aに設定する(S224)。同様に、ループ内フィルタ部208は、復号対象ブロックのタイミングがNNループ内フィルタパラメータ切換えタイミングかどうかを判定する(S225)。そして、ループ内フィルタ部208は、NNループ内フィルタパラメータ切換えタイミングであれば、符号列内にあるNNループ内フィルタパラメータを取得し、NNループ内フィルタ部208aに設定する(S226)。次に、画像復号装置200は、復号対象ブロックを復号し(S227)、復号対象画像内の全ブロックの復号が完了するまでステップS221〜S227の処理を繰り返す(S228)。
なお、上述のNNイントラ予測パラメータ切換えタイミングなどのパラメータ切換えタイミングは、直前に復号されたブロックを含むNNパラメータ切換え単位とは異なる新たなNNパラメータ切換え単位に含まれるブロックが復号対象ブロックとして復号されるタイミングである。
<動作(ブロック復号フロー)>
図31は、図30のステップS227におけるブロック復号の詳細を示すフローチャートである。
まず、可変長復号部201は、符号列を可変長復号し、周波数変換及び量子化したブロックを取得する(S231)。
次に、逆量子化部202は、その取得されたブロックに対して逆量子化を行い(S232)、逆変換部203は、逆量子化されたブロックに対して逆周波数変換を行う(S233)。
次に、画像復号装置200は、復号対象ブロックがイントラ予測およびインター予測のどちらで符号化されたかを符号列内の情報から判定する(S234)。イントラ予測の場合は、イントラ補償部205は、イントラ補償ブロックを生成し(S235)、インター予測の場合は、インター補償部206は、インター補償ブロックを生成する(S236)。
次に、加算部204は、イントラ補償ブロックおよびインター補償ブロックのうちの何れかの補償ブロックと、逆周波数変換した結果とを加算することによって、復元ブロックを生成する(S237)。ループ内フィルタ部208は、復元ブロックに対してループ内フィルタを実施し、フレームメモリ207に格納して画像出力する(S238)。
<動作(イントラ補償ブロック生成フロー)>
図32は、図31のステップS235におけるイントラ補償ブロック生成の詳細を示すフローチャートである。
まず、イントラ補償部205は、NNイントラ予測モードが有効か無効か、NNイントラ予測モードを符号化で使用したかどうかを符号列内の情報を用いて判定する(S241、S242)。ここで、NNイントラ予測モードが有効で、かつNNイントラ予測モードで符号化されている場合には、NNイントラ補償部205aは、NNイントラ補償を行うことによって、イントラ補償ブロックを生成する(S243)。そうでない場合は、固定イントラ補償部205bは、固定イントラ補償を行うことによって、イントラ補償ブロックを生成する(S244)。
NNイントラ補償ブロックの生成は、実施の形態1と同様に、図10の参照画素を使用し、図13のニューラルネットを用いて実現する。また、NNイントラ補償で使用するパラメータは、図30のステップS222で設定した、符号列に含まれるパラメータである。シンタックスは、実施の形態1と同様に、図15〜図26の構成をとる。NNイントラ補償部205aは、NNイントラ補償で使用するパラメータとして、pps_nps_idまたはslice_nps_idによって指定されたパラメータであって、pps_nps_idまたはslice_nps_idに一致するnps_idを有するnn_parameter_set_rbsp()の符号列内のパラメータ(階層数、ノード数、重み係数、バイアス値)を取得して使用する。パラメータは、NNイントラ予測のモード毎に存在し、NNイントラ補償部205aは、符号列内に含まれるNNイントラ予測モード(nn_intra_pred_mode)を用いてそのパラメータを切換える。
<動作(インター補償ブロック生成フロー)>
図33は、図31のステップS236におけるインター補償ブロック生成の詳細を示すフローチャートである。この図33のフローチャートにおけるステップS251〜S254は、図32のイントラ補償ブロック生成のフローチャートにおけるステップS241〜S244とほぼ同じであり、NNイントラ予測および固定イントラ予測をNNインター予測および固定インター予測に読み替えるだけであるので説明を省略する。
NNインター補償ブロック生成は、実施の形態1と同様に、図11の参照画素を使用し、図14のニューラルネットを用いて実現する。また、NNインター補償で使用するパラメータは、図30のステップS224で設定した符号列に含まれるパラメータである。シンタックスは、実施の形態1と同様に、図15〜図26の構成をとる。NNインター補償部206aは、NNインター補償で使用するパラメータとして、pps_nps_idまたはslice_nps_idによって指定されたパラメータであって、pps_nps_idまたはslice_nps_idに一致するnps_idを有するnn_parameter_set_rbsp()の符号列内のパラメータ(階層数、ノード数、重み係数、バイアス値)を取得して使用する。パラメータは、NNインター予測のモード毎に存在し、NNインター補償部206aは、符号列内に含まれるNNインター予測モード(nn_inter_pred_mode)を用いてそのパラメータを切換える。
<動作(ループ内フィルタフロー)>
図34は、図31のステップS238におけるループ内フィルタの詳細を示すフローチャートである。この図34のフローチャートにおけるステップS261〜S264は、図32のイントラ補償ブロック生成のフローチャートにおけるステップS241〜S244とほぼ同じであり、NNイントラ予測および固定イントラ予測をNNループ内フィルタおよび固定ループ内フィルタに読み替えるだけであるので説明を省略する。
NNループ内フィルタは、実施の形態1と同様に、図12の参照画素を使用し、図14のニューラルネットを用いて実現する。また、NNループ内フィルタで使用するパラメータは、図30のS226で設定した符号列に含まれるパラメータである。シンタックスは、実施の形態1と同様に、図15〜図26の構成をとる。NNループ内フィルタ部208aは、NNループ内フィルタで使用するパラメータとして、pps_nps_idまたはslice_nps_idによって指定されたパラメータであって、pps_nps_idまたはslice_nps_idと一致するnps_idを有するnn_parameter_set_rbsp()の符号列内のパラメータ(階層数、ノード数、重み係数、バイアス値)を取得して使用する。パラメータは、NNループ内フィルタのモード毎に存在し、NNループ内フィルタ部208aは、符号列内に含まれるNNループ内フィルタモード(nn_ilf_mode)を用いてそのパラメータを切換える。
<効果>
実施の形態1と同様のため、説明を省略する。
<実施の形態1および2のまとめ>
本開示の第1の態様(1)に係る画像の符号化または復号の方法では、非線形フィルタの演算パラメータを符号化または復号し、その演算パラメータを用いて対象画像を符号化または復号する。なお、この非線形フィルタは、複数の画素値の重み付け和である線形フィルタ以外のフィルタである。
また、本開示の第2の態様(1−1)に係る方法では、第1の態様に係る方法において、イントラ予測、インター予測、およびループ内フィルタのうちの少なくとも1つで前記非線形フィルタを使用してもよい。
また、本開示の第3の態様(1−2)に係る方法では、第1の態様に係る方法において、前記非線形フィルタはニューラルネットワークを含む構成であり、演算パラメータとして少なくともノード間の重み係数を符号化または復号してもよい。
また、本開示の第4の態様(1−2−1)に係る方法では、第3の態様に係る方法において、符号化または復号する前記演算パラメータは階層数またはノード数の情報を含んでもよい。
また、本開示の第5の態様(1−2−1−1)に係る方法では、第4の態様に係る方法において、プロファイルにより階層数またはノード数の最大値を規定してもよい。
また、本開示の第6の態様(1−3)に係る方法では、第1の態様に係る方法において、固定パラメータの線形フィルタと前記非線形フィルタのどちらのフィルタを使うかという切換え情報を符号化または復号し、その情報に従って線形フィルタと非線形フィルタのどちらを使うかを切り替えてもよい。
また、本開示の第7の態様(1−3−1)に係る方法では、第6の態様に係る方法において、複数のモードの中から1つもしくは複数のモードを、前記非線形フィルタを使うモードとし、そのモードを使う場合は前記非線形フィルタを使って対象画像を符号化または復号してもよい。
また、本開示の第8の態様(1−4)に係る方法では、第1の態様に係る方法において、ブロック、スライス、タイル、ピクチャおよびGOPのうちの少なくとも1つで前記非線形フィルタの演算パラメータを切換えてもよい。
また、本開示の第9の態様(1−4−1)に係る方法では、第8の態様に係る方法において、シーケンス先頭、GOP先頭、およびピクチャ先頭のうちの少なくとも何れかで前記非線形フィルタの演算パラメータを符号化または復号し、前記非線形フィルタ使用時には前記演算パラメータの内の少なくとも1つを識別子により指定して使用してもよい。
また、本開示の第10の態様(1−5)に係る方法では、第1の態様に係る方法において、前記非線形フィルタの有効/無効情報を符号化または復号してもよい。
また、本開示の第11の態様(1−5−1)に係る方法では、第10の態様に係る方法において、プロファイルによって前記非線形フィルタの有効/無効情報を切り替えてもよい。
また、本開示の第12の態様(1−5−2)に係る方法では、第10の態様に係る方法において、低遅延要求があるアプリケーションでは前記非線形フィルタを無効にしてもよい。
また、本開示の第13の態様(1−6)に係る方法では、第1の態様に係る方法において、前記非線形フィルタのモードを複数備え、どのモードを使うかを示す情報を符号化または復号する、もしくは符号列内の情報からどのモードを使うかを示す情報を抽出してもよい。
ここで、本開示の第14の態様(2)に係る画像の符号化または復号の方法では、イントラ予測に用いる演算パラメータを符号化または復号する。
また、本開示の第15の態様(2−1)に係る方法では、第14の態様に係る方法において、前記演算パラメータは線形フィルタおよび非線形フィルタのいずれかの演算パラメータであってもよい。
また、本開示の第16の態様(2−2)に係る方法では、第14の態様に係る方法において、前記演算パラメータを用いたイントラ予測は単層または複数層のニューラルネットワークを含む構成であり、演算パラメータとして少なくともノード間の重み係数を符号化または復号してもよい。
また、本開示の第17の態様(2−2−1)に係る方法では、第16の態様に係る方法において、符号化または復号する前記演算パラメータは階層数またはノード数の情報を含んでもよい。
また、本開示の第18の態様(2−2−1−1)に係る方法では、第17の態様に係る方法において、プロファイルにより階層数またはノード数の最大値を規定してもよい。
また、本開示の第19の態様(2−3)に係る方法では、第14の態様に係る方法において、固定パラメータのイントラ予測と前記演算パラメータによるイントラ予測のどちらのイントラ予測を使うかという切換え情報を符号化または復号し、その情報に従って固定パラメータのイントラ予測と前記演算パラメータによるイントラ予測のどちらのイントラ予測を使うかを切換えてもよい。
また、本開示の第20の態様(2−3−1)に係る方法では、第19の態様に係る方法において、複数のモードの中から1つもしくは複数のモードを、前記演算パラメータを用いたイントラ予測のモードとし、そのモードを使う場合は前記演算パラメータを用いたイントラ予測によって対象画像を符号化または復号してもよい。
また、本開示の第21の態様(2−4)に係る方法では、第14の態様に係る方法において、ブロック、スライス、タイル、ピクチャおよびGOPのうちの少なくとも1つでイントラ予測の前記演算パラメータを切換えてもよい。
また、本開示の第22の態様(2−4−1)に係る方法では、第21の態様に係る方法において、シーケンス先頭、GOP先頭、およびピクチャ先頭のうちの少なくとも何れかでイントラ予測の前記演算パラメータを符号化または復号し、演算パラメータを用いたイントラ予測時には、前記符号化または復号した演算パラメータの内の少なくとも1つを識別子により指定して使用してもよい。
また、本開示の第23の態様(2−5)に係る方法では、第14の態様に係る方法において、前記演算パラメータを用いたイントラ予測の有効/無効情報を符号化または復号してもよい。
また、本開示の第24の態様(2−5−1)に係る方法では、第23の態様に係る方法において、プロファイルによって前記演算パラメータを用いたイントラ予測の有効/無効情報を切り替えてもよい。
また、本開示の第25の態様(2−5−2)に係る方法では、第23の態様に係る方法において、低遅延要求があるアプリケーションでは前記演算パラメータを用いたイントラ予測を無効にしてもよい。
また、本開示の第26の態様(2−6)に係る方法では、第14の態様に係る方法において、前記演算パラメータを用いたイントラ予測のモードを複数備え、どのモードを使うかを示す情報を符号化または復号する、もしくは符号列内の情報からどのモードを使うかを示す情報を抽出してもよい。
ここで、本開示の第27の態様(3)に係る画像符号化方法では、線形フィルタまたは非線形フィルタの演算パラメータを符号化し、その演算パラメータを用いて対象画像を符号化するエンコーダにおいて、符号化対象画像を教師データとして学習して前記演算パラメータを決定する。
また、本開示の第28の態様(3−1)に係る画像符号化方法では、第27の態様に係る画像符号化方法において、前記演算パラメータを用いるモードを複数備え、符号化対象画像またはブロックの特徴でモード毎の学習データを決定し、モード毎に演算パラメータを決定してもよい。
また、本開示の第29の態様(3−2)に係る画像符号化方法では、第27の態様に係る方法において、符号化対象画像のうち、複雑性の高い領域のみを学習データとして使用してもよい。
(実施の形態3)
<全体構成>
図35は、本実施の形態における画像符号化装置の構成を示すブロック図である。
本実施の形態における画像符号化装置300は、実施の形態1における画像符号化装置100における変換部103およびNNパラメータ決定部109A以外の各構成要素を備える。さらに、画像符号化装置300は、変換部103およびNNパラメータ決定部109の代わりに変換部103AおよびNNパラメータ決定部109Aを備えるとともに、NN処理切換部115を備える。
<動作(全体)、動作(ブロック符号化フロー)>
画像符号化装置300による画像符号化の全体のフローと、ブロック符号化のフローとは、実施の形態1における図2および図3のそれぞれに示すフローとほぼ同じである。ただし、画像符号化装置300におけるブロック分割部101は、図2におけるブロック分割(S104)において、入力画像を4x4ブロック、8x8ブロック、16x16ブロック、および32x32ブロック等の数種類のサイズのブロックに分割する。ブロック分割部101は、入力画像内のオブジェクトのサイズまたは画素値の複雑性等の特徴を用いて、いずれかのサイズのブロックに分割する。また、画像符号化装置300において実験的に予測または可変長符号化を実施し、ブロック分割部101は符号化性能が良いサイズのブロックに分割してもよい。画像符号化装置300は、予測等を含むブロック符号化を、複数種類のサイズのブロックに対して実施する。
<動作(イントラ予測ブロック生成フロー)>
図36は、イントラ予測部110およびNN処理切換部115によるイントラ予測ブロック生成の詳細を示すフローチャートである。
実施の形態3におけるイントラ予測部110によるイントラ予測ブロック生成のフローは、ほぼ実施の形態1の図4に示すフローと同じであるが、本実施の形態と実施の形態1とで異なるのは、NNイントラ予測(S143)を行う条件である。実施の形態3では、イントラ予測部110は、NN処理切換部115による制御によって、予測ブロックサイズが4x4の場合且つ、輝度成分に対する予測でしか、NNイントラ予測部110aによるNNイントラ予測を実施しない(S277、S278)。そうでない場合は、イントラ予測部110は、常に固定イントラ予測部110bによる固定イントラ予測を実施する。このように、NN処理切換部115は、予測ブロックサイズが4x4か否かを判定するとともに(S277)、予測対象が輝度成分か否かを判定する(S278)。そして、NN処理切換部115は、予測ブロックサイズが4x4の場合且つ、輝度成分に対する予測の場合にのみ、イントラ予測部110に対してNNイントラ予測への切換えを指示する。
<動作(インター予測ブロック生成フロー)>
図37は、インター予測部111およびNN処理切換部115によるインター予測ブロック生成の詳細を示すフローチャートである。
実施の形態3におけるインター予測部111によるインター予測ブロック生成のフローは、ほぼ実施の形態1の図5に示すフローと同じであるが、本実施の形態と実施の形態1とで異なるのは、NNインター予測(S153)を行う条件である。実施の形態3では、インター予測部111は、NN処理切換部115による制御によって、輝度成分に対する予測でしか、NNインター予測部111aによるNNインター予測を実施しない(S288)。そうでない場合は、インター予測部111は、常に固定インター予測部111bによる固定インター予測を実施する。
このように、NN処理切換部115は、予測対象が輝度成分か否かを判定する(S288)。そして、NN処理切換部115は、輝度成分に対する予測の場合にのみ、インター予測部111に対してNNインター予測への切換えを指示する。
<動作(ループ内フィルタフロー)>
図38は、ループ内フィルタ部113およびNN処理切換部115によるループ内フィルタの詳細を示すフローチャートである。
実施の形態3におけるループ内フィルタ部113によるループ内フィルタのフローは、ほぼ実施の形態1の図6に示すフローと同じであるが、本実施の形態と実施の形態1とで異なるのは、NNループ内フィルタ(S163)を行う条件である。実施の形態3では、ループ内フィルタ部113は、NN処理切換部115による制御によって、輝度成分に対するループ内フィルタでしか、NNループ内フィルタ部113aによるNNループ内フィルタを実施しない(S298)。そうでない場合は、ループ内フィルタ部113は、常に固定ループ内フィルタ部113bによる固定ループ内フィルタを実施する。
このように、NN処理切換部115は、予測対象が輝度成分か否かを判定する(S298)。そして、NN処理切換部115は、輝度成分に対する予測の場合にのみ、ループ内フィルタ部113に対してNNループ内フィルタへの切換えを指示する。
<動作(周波数変換フロー)>
図39は、変換部103Aによる周波数変換の詳細を示すフローチャートである。
まず、変換部103Aは、予測ブロック決定(図3のS123)で選択した予測ブロックが、NNイントラ予測もしくはNNインター予測で生成されたブロックかどうかを判定する(S301)する。そして、いずれかの予測で生成されたブロックであった場合は、KL変換部103Aaは、KL変換(カルーネン・レーベ変換)によって周波数変換を行う(S302)。それ以外の場合は、固定変換部103Abは、HEVCと同様に離散コサイン変換などの固定の変換行列を用いた周波数変換(固定変換)を行う(S303)。KL変換は変換行列を画像毎に変更する変換である。
<動作(NNイントラ予測パラメータ決定フロー、NNインター予測パラメータ決定フロー、NNループ内フィルタパラメータ決定フロー)>
図40、図41、図42を参照しつつ、NNパラメータ決定部109Aの処理いついて説明する。
図40は、NNイントラ予測パラメータ決定部109AaによるNNイントラ予測パラメータ決定の詳細を示すフローチャートである。図41は、NNインター予測パラメータ決定部109AbによるNNインター予測パラメータ決定の詳細を示すフローチャートである。図42は、NNループ内フィルタパラメータ決定部109AcによるNNループ内フィルタパラメータ決定の詳細を示すフローチャートである。
実施の形態3における上記各パラメータ決定のフローは、ほぼ実施の形態1の図7、図8、および図9に示すフローと同じであるが、本実施の形態と実施の形態1とでは学習データに使うデータが異なる。NNイントラ予測パラメータ決定部109Aaは、図40に示すように、NNイントラ予測パラメータ決定に使う学習データとして、4x4サイズで輝度成分の符号化対象ブロックをクラスに分類して学習する(S311)。また、NNインター予測パラメータ決定部109Abは、図41に示すように、NNインター予測パラメータ決定に使う学習データとして、輝度成分の符号化対象ブロックを対象にする(S321、S323)。また、NNループ内フィルタパラメータ決定部109Acは、NNループ内フィルタパラメータ決定に使う学習データとして、輝度成分の符号化対象ブロックを対象にする(S331)。
<シンタックス構成>
実施の形態3におけるシンタックス構成は、CUシンタックスのみ実施の形態1と異なる。
図43は、本実施の形態におけるCUシンタックスを示す図である。
実施の形態3では、可変長符号化部105は、NNイントラ予測および固定イントラ予測のどちらを使うかという情報(intra_pred_type)を、NNイントラ予測が有効(nn_intra_pred_enabled_flagが1)で且つ予測ブロックサイズが4x4の場合のみ符号化する。そうでない場合は、画像符号化装置300は固定イントラ予測を使うように動作する。つまり、4x4の予測ブロックサイズでないとNNイントラ予測を使えないようにしている。また、fixed_intra_pred_mode_chromaは、色差成分の固定イントラ予測の予測モードを示し、色差成分の場合は固定イントラ予測のモードしか指定できないようにしている。
また、nn_intra_pred_parameter_data()は、4x4サイズの予測ブロック且つ輝度成分用のNNイントラ予測用のパラメータであり、それ以外(8x8サイズ以上の予測ブロックまたは色差成分)用のパラメータは存在(符号化)しない。
また、nn_inter_pred_parameter_data()は、輝度成分用のNNインター予測のパラメータであり、nn_ilf_parameter_data()は、輝度成分用のNNループ内フィルタのパラメータであり、色差成分用のパラメータは存在(符号化)しない。
<効果>
以上、本実施の形態によれば、NNイントラ予測で使用するパラメータの符号量を減らすことができる。より具体的には、4x4サイズの予測ブロックでしかNNイントラ予測を実施しない。つまり、8x8サイズ以上の予測ブロックではNNイントラ予測を使用しないので、それ用のパラメータが不要となる。一般的に大きな予測ブロックサイズは、平坦な領域で選択される場合が多く、その場合は固定パラメータのイントラ予測でも予測残差を少なくできる場合が多い。そのため、大きな予測ブロックサイズでは小さい予測ブロックサイズに比べてNNイントラ予測を使用する必要性が少ない。また、大きな予測ブロックサイズでは隣接する周辺画素数が多いため、一般的に参照画素数を多くしないと予測精度を上げにくく、参照画素数が多くなると入力するノード数が多くなるので重み係数等のNNイントラ予測用のパラメータ量が多くなる。逆に小さい予測ブロックサイズは複雑性が高い領域で選択される場合が多く、複雑性が高い領域では固定パラメータのイントラ予測では予測誤差が大きくなりやすい。また、小さい予測ブロックサイズでは、隣接する周辺画素数が少ないので、少ない参照画素でも予測精度を上げられる可能性がある。これらのことから、小さい予測ブロックサイズでのみNNイントラ予測を有効にし、小さい予測ブロックサイズ用のパラメータのみを符号化することによって、予測性能の低下を抑制しつつパラメータデータ量を削減することができ、符号化効率を向上させることができる。また、大きな予測ブロックサイズのNNイントラ予測が不要になるので、そのパラメータを決定する画像符号化装置300の計算量(処理時間)も削減することができる。
また、NNイントラ予測、NNインター予測、およびNNループ内フィルタで使用するパラメータの符号量を減らすことができる。より具体的には、輝度成分の信号に対してしかNNイントラ予測、NNインター予測、およびNNループ内フィルタを実施しない。つまり、色差成分の信号にはNNイントラ予測、NNインター予測、およびNNループ内フィルタを使用しないので、それ用のパラメータが不要となる。一般的に画像の色差成分の複雑度は小さく、固定パラメータのNNイントラ予測、NNインター予測、およびNNループ内フィルタでも、予測残差を少なくできたり、ノイズを削減できたりする場合が多い。そのため、色差成分は輝度成分に比べてNNイントラ予測、NNインター予測、およびNNループ内フィルタを使用する必要性が少ない。このことから、輝度成分でのみNNイントラ予測、NNインター予測、およびNNループ内フィルタを有効にし、輝度成分用のパラメータのみを符号化することによって、予測精度の低下やノイズ増加を抑制しつつパラメータデータ量を削減することができ、符号化効率を向上させることができる。また、色差成分のNNイントラ予測、NNインター予測、およびNNループ内フィルタが不要になるので、そのパラメータを決定する画像符号化装置300の計算量(処理時間)も削減することができる。
また、NNイントラ予測またはNNインター予測を用いた場合は固定の予測を用いた場合とは予測残差の傾向が異なる。例えば、固定イントラ予測を用いた場合には周辺画素に存在しないオブジェクトが符号化対象ブロック内に出現した場合に急激に予測誤差が大きくなるケースがある。しかし、NNイントラ予測ではそのようなケースもカバーできるようにニューラルネットを構築しておけば、急激に予測誤差が大きくなるケースは少ない。そのため、NNイントラ予測またはNNインター予測を用いた場合には周波数変換方式を切り替え、NNの予測を用いた場合にはその予測残差に適した方式の変換を用いることによって符号化効率を向上させることができる。
なお、本実施の形態ではKL変換を用いているが、その限りではなく、NNイントラ予測またはNNインター予測を用いた場合に固定の予測を用いた時とは違う変換方法を使えばよく、例えば固定の変換行列を用いた変換でも良い。また、KL変換を用いた等、その変換で用いる変換行列等のパラメータを別途符号化してもよい。また、NNイントラ予測またはNNインター予測を用いた場合に変換を切り替えるようにしているが、NNイントラ予測を用いた場合のみ切り替えるようにしてもよいし、NNインター予測を用いた場合のみ切り替えるようにしてもよい。
また、4x4の予測ブロックサイズの時のみNNイントラ予測を用いるようにしているが、その限りではなく、例えば8x8以下のサイズではNNイントラ予測を許可し、16x16以上のサイズではNNイントラ予測を禁止にしてもよい。
なお、本実施の形態における逆変換部106は、変換部103Aの変換に対応する逆変換を行う。
(実施の形態4)
<全体構成>
図44は、本実施の形態における画像復号装置の構成を示すブロック図である。
本実施の形態における画像復号装置400は、実施の形態2における画像復号装置200における逆変換部203以外の各構成要素を備える。さらに、画像復号装置400は、逆変換部203の代わりに逆変換部203Aを備えるとともに、NN処理切換部210を備える。
<動作(全体)、動作(ブロック復号フロー)>
画像復号装置400による画像復号の全体フローと、ブロック復号のフローとは、実施の形態2における図30および図31に示すフローとほぼ同じである。ただし、画像復号装置400における復号対象ブロックには、4x4ブロック、8x8ブロック、16x16ブロック、および32x32ブロック等の数種類のサイズのブロックがある。画像復号装置400は、ブロックサイズを、符号列内にある情報を用いて決定する。また、画像復号装置400は、予測等を含むブロック復号を、複数種類のサイズのブロックに対して実施する。
<動作(イントラ補償ブロック生成フロー)>
図45は、イントラ補償部205およびNN処理切換部210によるイントラ補償ブロック生成の詳細を示すフローチャートである。
実施の形態4におけるイントラ補償部205によるイントラ補償ブロック生成のフローは、ほぼ実施の形態2の図32に示すフローと同じであるが、本実施の形態と実施の形態2とで異なるのは、NNイントラ補償(S243)を行う条件である。実施の形態4では、イントラ補償部205は、NN処理切換部210による制御によって、予測ブロックサイズが4x4の場合且つ、輝度成分に対する補償でしか、NNイントラ補償部205aによるNNイントラ補償を実施しない(S341、S342)。そうでない場合は、イントラ補償部205は、常に固定イントラ補償部205bによる固定イントラ補償を実施する。このように、NN処理切換部210は、予測ブロックサイズが4x4か否かを判定するとともに(S341)、補償対象が輝度成分か否かを判定する(S342)。そして、NN処理切換部210は、予測ブロックサイズが4x4の場合且つ、輝度成分に対する補償の場合にのみ、イントラ補償部205に対してNNイントラ補償への切換えを指示する。
<動作(インター補償ブロック生成フロー)>
図46は、インター補償部206およびNN処理切換部210によるインター補償ブロック生成の詳細を示すフローチャートである。
実施の形態4におけるインター補償部206によるインター補償ブロック生成のフローは、ほぼ実施の形態2の図33に示すフローと同じであるが、本実施の形態と実施の形態2とで異なるのは、NNインター補償(S253)を行う条件である。実施の形態4では、インター補償部206は、NN処理切換部210による制御によって、輝度成分に対する補償でしか、NNインター補償部206aによるNNインター補償を実施しない(S351)。そうでない場合は、インター補償部206は、常に固定インター補償部206bによる固定インター補償を実施する。このように、NN処理切換部210は、補償対象が輝度成分か否かを判定する(S351)。そして、NN処理切換部210は、輝度成分に対する補償の場合にのみ、インター補償部206に対してNNインター補償への切換えを指示する。
<動作(ループ内フィルタフロー)>
図47は、ループ内フィルタ部208およびNN処理切換部210によるループ内フィルタの詳細を示すフローチャートである。
実施の形態4におけるループ内フィルタ部208によるループ内フィルタのフローは、ほぼ実施の形態2の図34に示すフローと同じであるが、本実施の形態と実施の形態2とで異なるのは、NNループ内フィルタ(S263)を行う条件である。実施の形態4では、ループ内フィルタ部208は、NN処理切換部210による制御によって、輝度成分に対するループ内フィルタでしか、NNループ内フィルタ部208aによるNNループ内フィルタを実施しない(S361)。そうでない場合は、ループ内フィルタ部208は、常に固定ループ内フィルタ部208bによる固定ループ内フィルタを実施する。このように、NN処理切換部210は、ループ内フィルタの対象が輝度成分か否かを判定する(S361)。そして、NN処理切換部210は、輝度成分に対するループ内フィルタの場合にのみ、ループ内フィルタ部208に対してNNループ内フィルタへの切換えを指示する。
<動作(周波数変換フロー)>
図48は、逆変換部203Aによる逆周波数変換の詳細を示すフローチャートである。
まず、逆変換部203Aは、符号列内にある情報から、予測ブロックがNNインター予測またはNNイントラ予測で生成されたかどうかを判定する(S371)。そして、いずれかの予測で生成されたブロックであった場合は、逆KL変換部203Aaは、逆KL変換(カルーネン・レーベ変換)によって逆周波数変換を行う(S372)。それ以外の場合は、逆固定変換部203Abは、HEVCと同様に逆離散コサイン変換などの固定の変換行列を用いた逆周波数変換(逆固定変換)を行う(S373)。
<効果>
実施の形態3と同様のため、説明を省略する。
<実施の形態3および4のまとめ>
本開示の第1の態様(1)に係る画像の符号化または復号の方法では、イントラ予測に用いる演算パラメータを符号化または復号する。
また、本開示の第2の態様(1−1)に係る方法では、第1の態様に係る方法において、イントラ予測の予測ブロックサイズが特定サイズ以下の場合のみ前記演算パラメータを用いたイントラ予測を用い、それ以外の予測ブロックサイズの場合は固定パラメータのイントラ予測を行ってもよい。
また、本開示の第3の態様(1−2)に係る方法では、第1の態様に係る方法において、固定パラメータのイントラ予測と前記演算パラメータによるイントラ予測を切換えることができるエンコーダまたはデコーダにおいて、前記演算パラメータによるイントラ予測を使用した場合は変換または逆変換方法を切り替えてもよい。
また、本開示の第4の態様(1−2−1)に係る方法では、第3の態様に係る方法において、前記演算パラメータによるイントラ予測を使用した場合は変更可能な変換行列を用いた変換または逆変換を行ってもよい。
ここで、本開示の第5の態様(2)に係る画像の符号化または復号の方法では、非線形フィルタの演算パラメータを符号化または復号し、その演算パラメータを用いて対象画像を符号化または復号する。
また、本開示の第6の態様(2−1)に係る方法では、第5の態様に係る方法において、輝度成分用の演算パラメータのみを符号化または復号し、輝度成分は前記非線形フィルタを使用し、色差成分は線形フィルタを使用して対象画像を符号化または復号してもよい。
また、本開示の第7の態様(2−2)に係る方法では、第5の態様に係る方法において、イントラ予測およびインター予測のうちの少なくとも1つで前記非線形フィルタを使用し、予測ブロックが非線形フィルタを用いて作成した場合、変換または逆変換方法を切り替えてもよい。
また、本開示の第8の態様(2−2−1)に係る方法では、第7の態様に係る方法において、予測ブロックが非線形フィルタを用いて作成した場合は、変更可能な変換行列を用いた変換または逆変換を行ってもよい。
(実施の形態5)
<全体構成>
図49は、本実施の形態における画像符号化装置の構成を示すブロック図である。
本実施の形態における画像符号化装置500は、実施の形態1における画像符号化装置100の各構成要素を備え、さらに、NNパラメータ符号化部120を備える。
<動作(全体)>
図59は、画像符号化装置500による画像符号化の全体の処理を示すフローチャートである。
実施の形態5では、画像符号化装置500は、実施の形態1の図2に示すフローに含まれる各ステップS101〜S112を行い、さらに、ステップS491、S492、S493、およびS494を行う。つまり、実施の形態5では、画像符号化装置500は、NNイントラ予測、NNインター予測、およびNNループ内フィルタのいずれかのパラメータ切換えタイミング時(S491)に、ステップS492〜S494の何れかのステップを行う。ステップS492〜S494のそれぞれでは、NNパラメータ符号化部120が、実施の形態1とは異なる特殊なNNイントラ予測パラメータ符号化、NNインター予測パラメータ符号化、またはNNループ内フィルタパラメータ符号化を行う。
<動作(NNイントラ予測パラメータ符号化フロー)>
図50は、図59のステップS492におけるNNイントラ予測パラメータ符号化の詳細を示すフローチャートである。
まず、NNパラメータ符号化部120は、NNイントラ予測の予測モード数(nn_intra_mode_num)を符号化する(S401)。
次に、NNパラメータ符号化部120は、各予測モードで、ステップS403〜S407の処理を行う(S402)。ここでkは、処理対象の予測モードを示し、0から「予測モード数−1」まで1ずつ増加する変数である。
具体的には、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプと、参照するパラメータ等を決定する(S407)。パラメータ参照タイプは、NNイントラ予測パラメータをどのように符号化するかという情報であり、3つのタイプがある。1つ目のタイプは、他の予測モードのパラメータを参照し、それとの差分を符号化する方法である(モード参照タイプ)。2つ目のタイプは、1つ前の階層または1つ前のノードの情報を参照し、それとの差分を符号化する方法である(直前参照タイプ)。3つ目のタイプは何も参照せず、値を直接符号化する方法である(非参照タイプ)。また、モード参照タイプでは、既に符号化した予測モードのパラメータを参照するだけでなく、あらかじめ規定されているプリセットのNNイントラ予測パラメータを参照することもできる。また、規定されているNNイントラ予測パラメータは複数種類存在し、選択的に使用することができる。ステップS407では、NNパラメータ符号化部120は、パラメータ参照タイプを決定すると共に、モード参照タイプの場合は、どの予測モードのパラメータを参照するかという参照モード情報(nn_intra_param_ref_mode)と、プリセットを使うかという情報(プリセット使用モードON/OFF)と、プリセットのパラメータを使う場合はどのプリセットを使うかというプリセットID(nn_intra_param_ref_preset_id)とを決める。決める方法は、符号化するNNイントラ予測パラメータと最もパラメータが類似しているものを選んでもよいし、実験的に符号化してみて符号量が最も小さいものを選んでもよい。
次に、NNパラメータ符号化部120は、ステップS407で決定した予測モードkのパラメータ参照タイプ(nn_intra_param_ref_type[k])を符号化する(S403)。
次に、NNパラメータ符号化部120は、パラメータ参照タイプが非参照タイプか否かを判定し(S404)、非参照タイプの場合には、パラメータ非参照タイプ符号化を実施する(S405)。一方、非参照タイプでない場合(モード参照タイプまたは直前参照タイプの場合)には、NNパラメータ符号化部120は、パラメータ参照タイプ符号化を実施する(S406)。
なお、参照モード情報によって示される、参照するパラメータ含むモード(参照モード)は、予測モードkと同じ構造に限定される。つまり、参照モードと予測モードkとは、同じ階層数、同じノード数、同じ参照画素数、および同じ出力画素数を有する。また、この参照モードを示す参照モード情報(nn_intra_param_ref_mode)は、予測モードkから何個前のモードが参照モードであるかを示し、そのデフォルト値は0である。
<動作(パラメータ非参照タイプ符号化フロー)>
図51は、図50のステップS405におけるパラメータ非参照タイプ符号化の詳細を示すフローチャートである。
まず、NNパラメータ符号化部120は、予測モードkの階層数(nn_intra_layer_num[k])を符号化し(S411)、以降の処理を階層数分繰り返す(S412)。ここでiは、処理対象の階層を示し、0から「階層数−1」まで1ずつ増加する変数である。
次に、NNパラメータ符号化部120は、階層iが最初の階層であるか否かを判定し(S413)、最初の階層であれば、入力ノード数(input_node_num)に参照画素数を設定する(S414)。一方、最初の階層でなければ、NNパラメータ符号化部120は、入力ノード数(input_node_num)に直前の階層のノード数(nn_intra_node_num[k][i-1])を設定する(S415)。図13を例に説明すると、階層iがn[k][0][x]の階層(i=0)であった場合は、NNパラメータ符号化部120は、入力ノード数に参照画素数である11を設定する。もし階層iがn[k][1][x]の階層(i=1)であった場合は、NNパラメータ符号化部120は、直前の階層のノード数である4を入力ノード数に設定する。入力ノード数は以降の処理で使用する変数である。
次に、NNパラメータ符号化部120は、階層iが最後の階層であるか否かを判定し(S416)、最後の階層である場合は、ノード数(nn_intra_node_num[k][i])に予測画素数(出力画素数)(図13の例では16)を設定する(S417)。一方、最後の階層でない場合は、NNパラメータ符号化部120は、ノード数を符号化する(S418)。
次に、NNパラメータ符号化部120は、ノード数分のバイアス値(nn_intra_bias[k][i][j])を符号化し(S419、S420)、ノード数と入力ノード数分の重み係数(nn_intra_w[k][i][j][m])を符号化する(S421、S422)。ここでjは、処理対象のノードを示し、0から「階層iのノード数−1」まで1ずつ増加する変数である。また、mは、処理対象の入力ノードを示し、0から「階層iのノードjの入力ノード数−1」まで1ずつ増加する変数である。入力ノードとは、処理対象のノードに値を入力するノードであり、例えば図13のn[k][0][0]の入力ノードは、参照画素0〜参照画素11の12個ある。
<動作(パラメータ参照タイプ符号化フロー)>
図52は、図50のステップS406におけるパラメータ参照タイプ符号化の詳細を示すフローチャートである。
まず、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S431)、モード参照タイプであれば、さらに、プリセット使用モードなのかどうかを判定し(S432)、プリセット使用モードであれば、参照モードデルタに0を設定する(S433)。そして、NNパラメータ符号化部120は、参照モードデルタを符号化し(S436)、使用するプリセットのIDを符号化する(S436、S437)。もし、プリセット使用モードでない場合は、NNパラメータ符号化部120は、kから参照モード(nn_intra_param_ref_mode)を減算して参照モードデルタを算出した後(S434)、参照モードデルタを符号化する(S435)。ここで述べた通り、プリセット使用モードがONかOFFかは直接符号化されない。画像復号装置は、参照モードデルタが0であればプリセット使用モードがONであると判定できる。また、パラメータ参照タイプが直前参照タイプであれば(S431のNo)、NNパラメータ符号化部120は、ステップS432〜S437の処理を行わない。
次に、NNパラメータ符号化部120は、パラメータ参照タイプで階層数を符号化する(S440)。詳細は後述する。
次に、NNパラメータ符号化部120は、階層数の分だけ以下の処理を繰り返す(S441)。ここで、iは、処理対象の階層を示し、0から「階層数−1」まで1ずつ増加する変数である。
具体的には、NNパラメータ符号化部120は、階層iが最初の階層であるか否かを判定し(S442)、最初の階層であれば、入力ノード数(input_node_num)に参照画素数を設定する(S443)。一方、最初の階層でなければ、NNパラメータ符号化部120は、入力ノード数(input_node_num)に直前の階層のノード数(nn_intra_node_num[k][i-1])を設定する(S444)。
次に、NNパラメータ符号化部120は、階層iが最後の階層であるか否かを判定し(S445)、最後の階層である場合は、ノード数(nn_intra_node_num[k][i])に予測画素数(出力画素数)を設定する(S446)。一方、最後の階層でない場合は、NNパラメータ符号化部120は、パラメータ参照タイプでノード数を符号化する(S447)。ノード数の符号化についての詳細は後述する。
次に、NNパラメータ符号化部120は、ノード数分のバイアス値を符号化し(S448、S449)、ノード数と入力ノード数分の重み係数をパラメータ参照タイプで符号化する(S450、S451)。ここで、jは、処理対象のノードを示し、0から「階層iのノード数−1」まで1ずつ増加する変数である。また、mは、処理対象の入力ノードを示し、0から「階層iのノードjの入力ノード数−1」まで1ずつ増加する変数である。ステップS449におけるバイアス値の符号化(パラメータ参照タイプバイアス値符号化)と、ステップS451における重み係数の符号化(パラメータ参照タイプ重み係数符号化)については後述する。
<動作(パラメータ参照タイプ階層数符号化フロー)>
図53は、図52のステップS440におけるパラメータ参照タイプ階層数符号化の詳細を示すフローチャートである。
NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S431)、モード参照タイプでなければ(直前参照タイプであれば)予測モードkの階層数を符号化する(S465)。モード参照タイプであれば、画像復号装置は、参照する予測モードのパラメータまたはプリセットのパラメータから階層数を取得できるので、NNパラメータ符号化部120は、その階層数を符号化はしない。
<動作(パラメータ参照タイプノード数符号化フロー)>
図54は、図52のステップS447におけるパラメータ参照タイプノード数符号化の詳細を示すフローチャートである。
NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S431)、モード参照タイプでなければ(直前参照タイプであれば)予測モードkの階層iのノード数デルタを符号化する(S462〜S465)。具体的には、NNパラメータ符号化部120は、階層iが最初の階層であるか否かを判定する(S462)。ここで、階層iが最初の階層であれば、NNパラメータ符号化部120は、参照画素数から予測モードkの階層iのノード数を減算することによって、予測モードkの階層iのノード数デルタを算出して(S463)、そのノード数デルタを符号化する(S465)。一方、階層iが最初の階層でなければ、NNパラメータ符号化部120は、直前の階層のノード数から予測モードkの階層iのノード数を減算することによって、予測モードkの階層iのノード数デルタを算出して(S464)、そのノード数デルタを符号化する(S465)。
<動作(パラメータ参照タイプバイアス値符号化フロー)>
図55は、図52のステップS449におけるパラメータ参照タイプバイアス値符号化の詳細を示すフローチャートである。
NNパラメータ符号化部120は、参照バイアス値から予測モードkの階層iのノードjのバイアス値を減算することによって、バイアス値デルタを算出し(S478)、その値を予測モードkの階層iのノードjのバイアス値デルタとして符号化する(S479)。参照バイアス値は条件によって異なる。つまり、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプがモード参照タイプか否かを判定し(S431)、モード参照タイプであれば、さらに、プリセット使用モードなのかどうかを判定する(S432)。ここで、パラメータ参照タイプがモード参照タイプであってプリセット使用モードONの場合であれば、NNパラメータ符号化部120は、プリセットIDのプリセットにおける階層iのノードjのバイアス値を参照バイアス値に設定する(S473)。逆に、パラメータ参照タイプがモード参照タイプであっても、プリセット使用モードOFFの場合は、NNパラメータ符号化部120は、参照する予測モード(参照モード)における階層iのノードjのバイアス値を参照バイアス値に設定する(S474)。また、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプが直前参照タイプである場合には、ノードjが階層iで最初のノードであるか否かを判定し(S475)、最初のノードであれば、階層iのデフォルトバイアス値を参照バイアス値に設定する(S476)。一方、最初のノードでなれれば、NNパラメータ符号化部120は、直前のノードのバイアス値を参照バイアス値に設定する(S477)。ここで、最初のノードとは、図13で説明するとn[k][x][0]のノードであり、各階層で一番上にあるノードである。また、直前のノードとは、図13上では同じ階層で一つ上にあるノードであり、n[k][x][1]の直前のノードはn[k][x][0]である。また、デフォルトバイアス値とはあらかじめ規定しておいたバイアス値である。
<動作(パラメータ参照タイプ重み係数符号化フロー)>
図56は、図52のステップS451におけるパラメータ参照タイプ重み係数符号化の詳細を示すフローチャートである。
NNパラメータ符号化部120は、参照重み係数から、予測モードkの階層iのノードjの入力ノードmの重み係数を減算することによって、重み係数デルタを算出し(S488)、その値を予測モードkの階層iのノードjの入力ノードmの重み係数として符号化する(S489)。参照重み係数は条件によって異なる。つまり、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプがモード参照タイプか否かを判定し(S431)、モード参照タイプであれば、さらに、プリセット使用モードなのかどうかを判定する(S432)。ここで、パラメータ参照タイプがモード参照タイプであって、プリセット使用モードONの場合であれば、NNパラメータ符号化部120は、プリセットIDのプリセットにおける階層iのノードjの入力ノードmの重み係数を参照重み係数に設定する(S483)。逆に、パラメータ参照タイプがモード参照タイプであっても、プリセット使用モードOFFの場合は、NNパラメータ符号化部120は、参照する予測モード(参照モード)における階層iのノードjの入力ノードmの重み係数を参照重み係数に設定する(S484)。また、NNパラメータ符号化部120は、予測モードkのパラメータ参照タイプが直前参照タイプである場合には、入力ノードmがノードjで最初の入力ノードであるか否かを判定し(S485)、最初の入力ノードであれば、階層iのノードjのデフォルト重み係数を参照重み係数に設定する(S486)。一方、最初の入力ノードでなければ、NNパラメータ符号化部120は、直前の入力ノードの重み係数を参照重み係数に設定する(S487)。ここで、最初の入力ノードとは、図13で説明するとn[k][0][0]においては参照画素0のことであり、入力ノードのうち一番上にあるノードである。また、直前の入力ノードとは、図13上では入力ノードのうち一つ上にあるノードであり、n[k][0][0]においては参照画素1の直前の入力ノードは参照画素0である。また、デフォルト重み係数とはあらかじめ規定しておいた重み係数である。
<動作(NNインター予測パラメータ符号化フロー)、動作(NNループ内フィルタパラメータ符号化フロー)>
図59のステップS493およびS494におけるNNインター予測パラメータ符号化およびNNループ内フィルタパラメータ符号化のそれぞれのフローは、図50〜図56に示すNNイントラ予測パラメータ符号化のフローと同様であり、NNイントラ予測をNNインター予測またはNNループ内フィルタに読み替えるだけであるので説明を省略する。
<シンタックス構成>
本実施の形態における各シンタックスは、実施の形態1の図15〜図26に示す各シンタックスのうち、NNイントラ予測のパラメータデータのシンタックス(図19)、NNインター予測のパラメータデータのシンタックス(図20)、およびNNループ内フィルタのパラメータデータのシンタックス(図21)のみが異なる。本実施の形態では、図19〜図21に示すシンタックスの代わりに、図57および図58に示すシンタックスを使う。他のシンタックスは同じである。なお、Descriptorのae(v)はコンテキスト適応型2値算術符号化(CABAC)で符号化することを示す。
実施の形態5では前述したようにNNパラメータを符号化する方法が3通りあり、その点が実施の形態1と異なる。図57のnn_intra_param_ref_typeがそのタイプを示す情報であり、nn_intra_param_ref_typeがNN_INTRA_PARAM_NO_REFの場合は非参照タイプであり、NNパラメータ符号化部120は、実施の形態1と同様にパラメータ値そのものを符号化する。また、nn_intra_param_ref_typeがNN_INTRA_PARAM_REF_MODEである場合はモード参照タイプであり、NNパラメータ符号化部120は、参照する予測モード情報を符号化し、参照する予測モードのパラメータ値を用いてNNパラメータを符号化する。また、nn_intra_param_ref_typeがそれ以外の場合は直前参照タイプであり、NNパラメータ符号化部120は、直前に符号化したノードの値またはデフォルト値を用いてNNパラメータ(演算パラメータ)を符号化する。また、モード参照タイプの場合は、あらかじめ規定した複数のプリセットの値を使うことができる。モード参照タイプの場合、参照する予測モード(参照モード)は、処理対象の予測モード値からの差分(nn_intra_param_ref_mode_delta)で指定され、その差分が0の場合はプリセット使用モードであることを意味する。プリセットを使用する場合はnn_intra_param_ref_preset_idによってどのプリセットを使うかを識別する。また、パラメータを参照する場合でも、NNパラメータ符号化部120は、バイアス値または重み係数の値をコピーするのではなく、参照する値との差分(nn_intra_bias_delta、nn_intra_w_delta)を符号化する。バイアス値または重み係数の値が、参照するパラメータ、プリセット、またはデフォルト値と多少が異なっても、効率良くパラメータを送ることができる。
なお、NNインター予測パラメータまたはNNループ内フィルタパラメータのシンタックスは、図57および図58に示すNNイントラ予測パラメータのシンタックスと同様であり、intra_predをinter_predまたはilfに読み替えるだけであるので説明を省略する。
<効果>
以上、本実施の形態によれば、NNイントラ予測、NNインター予測、およびNNループ内フィルタのパラメータの符号量を減らすことができ、符号化効率を向上させることができる。より具体的には、他の予測モードのパラメータを参照し、それとの差分を符号化することによって情報量を削減している。これはNNのパラメータは予測モードが異なっても値は類似するという特徴を発見したことに基づいている。
また、他の予測モードのパラメータだけでなく、あらかじめ複数のプリセットを規定しておき、それらのいずれかと類似しているパラメータの場合はそれとの差分を送ることによって符号量を削減している。このプリセットには汎用的な画像に適用できるようなパラメータを規定しておくことによって、パラメータを符号化しなくてもある程度の符号化効率を実現することができ、符号化しなければならないパラメータの情報量を減らすことができる。
また、直前参照タイプの符号化方法を設け、直前に符号化したパラメータとの差分を符号化するようにし、パラメータの符号量を削減している。これはNNのパラメータは直前のノードや直前の入力ノードとの相関が高いというという特徴を発見したことに基づいている。
また、最初のノードまたは入力ノードの場合には、デフォルト値からの差分を符号化することによって符号量を削減している。これはNNのパラメータはある程度、値に偏りがあり、デフォルト値を設けた方が符号量を減らせることを発見したことに基づいている。
また、参照する予測モードに特定値を指定した場合はプリセットのパラメータを参照するように切り替えており、そうすることによって、他の予測モードのパラメータを参照するのか、プリセットのパラメータを参照するのかを切り替えるための符号量を減らしている。より具体的には、参照モードデルタが0の場合にはプリセットのパラメータを参照するようにしている。参照モードデルタは処理対象の予測モードからの差分で参照する予測モードを指定する変数だが、それが0になることは異常なケース(エラー)である。本実施の形態では0になり得ないことを利用し、0の場合には別の参照方法に切り替えることによって符号量を有効活用している。
なお、本実施の形態ではコンテキスト適応型2値算術符号化(CABAC)でパラメータ情報を符号化するが、その限りではなく、他の可変長符号化方法を用いてもよい。例えばゴロム符号化を用いてもよい。
また、プリセットを使用するかどうかの情報を参照モードデルタが0かどうかによって判定しているが、その限りではなく、プリセットを使用するという情報(例えば図57のref_preset_flag)を別に符号化してもよい。
また、参照する予測モードまたはプリセットとの差分を符号化しているが、その限りではなく、差分情報を符号化せず、参照する予測モードやプリセットの値をそのままコピーしてパラメータ値として使用してもよい。
また、プリセットを複数備える構成としているが、その限りではなく、1つのみとしてもよい。その場合はどのプリセットを参照するかという識別子の情報(例えば図57のnn_intra_param_ref_preset_id)が不要になることは言うまでもない。
(実施の形態6)
<全体構成>
図60は、本実施の形態における画像復号装置の構成を示すブロック図である。
本実施の形態における画像復号装置600は、実施の形態2における画像復号装置200の各構成要素を備え、さらに、NNパラメータ復号部220を備える。
<動作(全体)>
図68は、画像復号装置600による画像復号の全体の処理を示すフローチャートである。
実施の形態6では、画像復号装置600は、実施の形態2の図30に示すフローに含まれる各ステップS221〜S228を行い、さらに、ステップS601、S602、S603、およびS604を行う。つまり、実施の形態6では、画像復号装置600は、NNイントラ予測、NNインター予測、およびNNループ内フィルタのいずれかのパラメータ切換えタイミング時(S601)に、ステップS602〜S604の何れかのステップを行う。ステップS602〜S604のそれぞれでは、NNパラメータ復号部220が、実施の形態2とは異なる特殊なNNイントラ予測パラメータ復号、NNインター予測パラメータ復号、またはNNループ内フィルタパラメータ復号を行う。
<動作(NNイントラ予測パラメータ復号フロー)>
図61は、図68のステップS602におけるNNイントラ予測パラメータ復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、NNイントラ予測の予測モード数(nn_intra_mode_num)を復号する(S501)。
次に、NNパラメータ復号部220は、各予測モードで、ステップS503〜S506の処理を行う(S502)。ここでkは、処理対象の予測モードを示し、0から「予測モード数−1」まで1ずつ増加する変数である。
具体的には、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプ(nn_intra_param_ref_type[k])を復号する(S503)。
次に、NNパラメータ復号部220は、パラメータ参照タイプが非参照タイプか否かを判定し(S504)、非参照タイプの場合には、パラメータ非参照タイプ復号を実施する(S505)、一方、非参照タイプでない場合(モード参照タイプまたは直前参照タイプの場合)には、NNパラメータ復号部220は、パラメータ参照タイプ復号を実施する(S506)。
<動作(パラメータ非参照タイプ復号フロー)>
図62は、図61のステップS505におけるパラメータ非参照タイプ復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkの階層数(nn_intra_layer_num[k])を復号し(S511)、以降の処理を階層数分繰り返す(S512)。ここで、iは処理対象の階層を示し、0から「階層数−1」まで1ずつ増加する変数である。
次に、NNパラメータ復号部220は、階層iが最初の階層であるか否かを判定し(S513)、最初の階層であれば、入力ノード数(input_node_num)に参照画素数を設定する(S514)。一方、最初の階層でなければ、NNパラメータ復号部220は、入力ノード数(input_node_num)に直前の階層のノード数(nn_intra_node_num[k][i-1])を設定する(S515)。図13を例に説明すると、階層iがn[k][0][x]の階層(i=0)であった場合は、NNパラメータ復号部220は、入力ノード数に参照画素数である11を設定する。もし階層iがn[k][1][x]の階層(i=1)であった場合は、NNパラメータ復号部220は、直前の階層のノード数である4を入力ノード数に設定する。入力ノード数は以降の処理で使用する変数である。
次に、NNパラメータ復号部220は、階層iが最後の階層であるか否かを判定し(S516)、最後の階層である場合は、ノード数(nn_intra_node_num[k][i])に予測画素数(出力画素数)(図13の例では16)を設定する(S517)。一方、最後の階層でない場合は、NNパラメータ復号部220は、ノード数を復号する(S518)。
次に、NNパラメータ復号部220は、ノード数分のバイアス値(nn_intra_bias[k][i][j])を復号し(S519、S520)、ノード数と入力ノード数分の重み係数(nn_intra_w[k][i][j][m])を復号する(S521、S522)。ここでjは、処理対象のノードを示し、0から「階層iのノード数−1」まで1ずつ増加する変数である。また、mは、処理対象の入力ノードを示し、0から「階層iのノードjの入力ノード数−1」まで1ずつ増加する変数である。入力ノードとは、処理対象のノードに値を入力するノードであり、例えば図13のn[k][0][0]の入力ノードは、参照画素0〜参照画素11の12個ある。
<動作(パラメータ参照タイプ復号フロー)>
図63は、図61のステップS506におけるパラメータ参照タイプ復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S531)、モード参照タイプであれば、参照モードデルタ(nn_intra_param_ref_mode_delta)を復号する(S532)。そして、NNパラメータ復号部220は、参照モードデルタが0であるか否かを判定し(S533)、0であれば、プリセット使用モードをONにし(S534)、0でなければ、プリセット使用モードをOFFにする(S535)。
次に、NNパラメータ復号部220は、プリセット使用モードがONであるか否かを判定し(S536)、ONであれば、使用するプリセットのID(nn_intra_param_ref_preset_id)を復号(S537)する。一方、ONでなければ、NNパラメータ復号部220は、kから参照モードデルタを減算することにより参照モード(nn_intra_param_ref_mode)を算出する(S538)。パラメータ参照タイプが直前参照タイプであれば(S531のNo)、NNパラメータ復号部220は、ステップS532〜S538の処理を行わない。
次に、NNパラメータ復号部220は、パラメータ参照タイプで階層数を復号する(S540)。詳細は後述する。
次に、NNパラメータ復号部220は、階層数の分だけ以下の処理を繰り返す(S541)。ここでiは処理対象の階層を示し、0から「階層数−1」まで1ずつ増加する変数である。
具体的には、NNパラメータ復号部220は、階層iが最初の階層であるか否かを判定し(S542)、最初の階層であれば、入力ノード数(input_node_num)に参照画素数を設定する(S543)。一方、最初の階層でなければ、NNパラメータ復号部220は、入力ノード数(input_node_num)に直前の階層のノード数(nn_intra_node_num[k][i-1])を設定する(S544)。
次に、NNパラメータ復号部220は、階層iが最後の階層であるか否かを判定し(S545)、最後の階層である場合は、ノード数(nn_intra_node_num[k][i])に予測画素数(出力画素数)を設定する(S546)。一方、最後の階層でない場合は、NNパラメータ復号部220は、パラメータ参照タイプでノード数を復号する(S547)。ノード数の復号についての詳細は後述する。
次に、NNパラメータ復号部220は、ノード数分のバイアス値を復号し(S548、S549)、ノード数と入力ノード数分の重み係数をパラメータ参照タイプで復号する(S550、S551)。ここで、jは、処理対象のノードを示し、0から「階層iのノード数−1」まで1ずつ増加する変数である。また、mは、処理対象の入力ノードを示し、0から「階層iのノードjの入力ノード数−1」まで1ずつ増加する変数である。ステップS549におけるバイアス値の符号化(パラメータ参照タイプバイアス値復号)と、ステップS551の重み係数の復号(パラメータ参照タイプ重み係数復号)については後述する。
<動作(パラメータ参照タイプ階層数復号フロー)>
図64は、図63のステップS540におけるパラメータ参照タイプ階層数復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S531)、モード参照タイプであれば、さらに、プリセット使用モードがONであるか否かを判定する(S536)。ここで、プリセット使用モードがONであれば、NNパラメータ復号部220は、プリセットIDが指すプリセットの階層数を予測モードkの階層数に設定する(S563)。一方、プリセット使用モードがOFFの場合は、NNパラメータ復号部220は、参照する予測モードの階層数を予測モードkの階層数に設定する(S564)。
また、予測モードkのパラメータ参照タイプが直接参照タイプの場合は(S531のNo)、NNパラメータ復号部220は、予測モードkの階層数を復号する(S565)。
本処理では、モード参照タイプの場合は、NNパラメータ復号部220は、階層数を復号せず、プリセットもしくは他の予測モードの情報から階層数を取得する。
<動作(パラメータ参照タイプノード数復号フロー)>
図65は、図63のステップS547におけるパラメータ参照タイプノード数復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S531)、モード参照タイプであれば、さらに、プリセット使用モードがONであるか否かを判定する(S536)。ここで、プリセット使用モードがONであれば、NNパラメータ復号部220は、プリセットIDが指すプリセットのノード数を予測モードkの階層iのノード数に設定する(S573)。一方、プリセット使用モードがOFFの場合は、NNパラメータ復号部220は、参照する予測モードのノード数を予測モードkの階層iのノード数に設定する(S574)。
また、予測モードkのパラメータ参照タイプが直接参照タイプの場合は(S531のNo)、NNパラメータ復号部220は、予測モードkの階層iのノード数デルタを復号する(S575)。そして、NNパラメータ復号部220は、階層iが最初の階層であるか否かを判定し(S576)、最初の階層であれば、参照画素数から、ステップS575で復号したノード数デルタを減算し、その減算結果を予測モードkの階層iのノード数に設定する(S577)。もし、階層iが最初の階層でなければ、NNパラメータ復号部220は、直前の階層のノード数から、ステップS575で復号したノード数デルタを減算し、その減算結果を予測モードkの階層iのノード数に設定する(S578)。
本処理では、モード参照タイプの場合は、NNパラメータ復号部220は、ノード数を復号せず、プリセットもしくは他の予測モードの情報からノード数を取得する。
<動作(パラメータ参照タイプバイアス値復号フロー)>
図66は、図63のステップS549におけるパラメータ参照タイプバイアス値復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkの階層iのノードjのバイアス値デルタを復号する(S581)。
次に、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S531)、モード参照タイプであれば、さらに、プリセット使用モードがONであるか否かを判定する(S536)。ここで、プリセット使用モードがONであれば、NNパラメータ復号部220は、プリセットIDが指すプリセットのバイアス値を参照バイアス値に設定する(S584)。一方、プリセット使用モードがOFFの場合は、NNパラメータ復号部220は、参照する予測モードのバイアス値を参照バイアス値に設定する(S585)。
また、予測モードkのパラメータ参照タイプが直接参照タイプの場合(S531のNo)、NNパラメータ復号部220は、ノードjが階層iで最初のノードであるか否かを判定する(S586)。最初のノードであれば、NNパラメータ復号部220は、階層iのデフォルトバイアス値を参照バイアス値に設定し(S587)、最初のノードでないならば、直前のノードのバイアス値を参照バイアス値に設定する(S588)。
次に、NNパラメータ復号部220は、参照バイアス値から、ステップS581で復号したバイアス値デルタを減算し、その減算結果を予測モードkの階層iのノードjのバイアス値に設定する(S589)。
<動作(パラメータ参照タイプ重み係数復号フロー)>
図67は、図63のステップS551におけるパラメータ参照タイプ重み係数復号の詳細を示すフローチャートである。
まず、NNパラメータ復号部220は、予測モードkの階層iのノードjの入力ノードmの重み係数デルタを復号する(S591)。
次に、NNパラメータ復号部220は、予測モードkのパラメータ参照タイプがモード参照タイプであるか否かを判定し(S531)、モード参照タイプであれば、さらに、プリセット使用モードがONであるか否かを判定する(S536)。ここで、プリセット使用モードがONであれば、NNパラメータ復号部220は、プリセットIDが指すプリセットの参照重み係数を参照重み係数に設定する(S594)。一方、プリセット使用モードがOFFの場合は、NNパラメータ復号部220は、参照する予測モードの重み係数を参照重み係数に設定する(S595)。
また、予測モードkのパラメータ参照タイプが直接参照タイプの場合(S531のNo)、NNパラメータ復号部220は、入力ノードmがノードjで最初の入力ノードであるか否かを判定する(S596)。最初の入力ノードであれば、NNパラメータ復号部220は、階層iのノードjのデフォルト重み係数を参照重み係数に設定し(S597)、最初の入力ノードでないならば、直前の入力ノードの重み係数を参照重み係数に設定する(S598)。
次に、NNパラメータ復号部220は、参照重み係数から、ステップS591で復号した重み係数デルタを減算し、その減算結果を予測モードkの階層iのノードjの入力ノードmの重み係数に設定する(S599)。
<動作(NNインター予測パラメータ符号化フロー)、動作(NNループ内フィルタパラメータ符号化フロー)>
図68のステップS603およびS604におけるNNインター予測パラメータ復号およびNNループ内フィルタパラメータ復号のそれぞれのフローは、図61〜図67に示すNNイントラ予測パラメータ復号のフローと同様であり、NNイントラ予測をNNインター予測またはNNループ内フィルタに読み替えるだけであるので説明を省略する。
<シンタックス構成>
本実施の形態における各シンタックスは、実施の形態5の図57および図58に示す各シンタックスと同じであるため、説明を省略する。また、図57および図58はNNイントラ予測パラメータのシンタックスだが、NNインター予測パラメータおよびNNループ内フィルタパラメータのシンタックスも同様であり、intra_predをinter_predとilfに読み替えるだけであるので説明を省略する。
<効果>
実施の形態5と同様のため、説明を省略する。
<実施の形態5および6のまとめ>
本開示の第1の態様(1)に係る画像の符号化または復号の方法では、非線形フィルタの演算パラメータを符号化または復号し、その演算パラメータを用いて対象画像を符号化または復号する。
また、本開示の第2の態様(1−1)に係る方法では、第1の態様に係る方法において、符号化または復号済みの演算パラメータを参照して、演算パラメータを符号化または復号してもよい。
また、本開示の第3の態様(1−1−1)に係る方法では、第2の態様に係る方法において、前記演算パラメータを用いた処理を複数モード備え、演算パラメータは符号化または復号済みの他のモードの演算パラメータを参照して、符号化または復号してもよい。
また、本開示の第4の態様(1−1−2)に係る方法では、第2の態様に係る方法において、直前に符号化または復号した演算パラメータを参照して、演算パラメータを符号化または復号してもよい。
また、本開示の第5の態様(1−1−3)に係る方法では、第2の態様に係る方法において、参照するデータとの差分値を符号化または復号してもよい。
また、本開示の第6の態様(1−2)に係る方法では、第1の態様に係る方法において、特定の演算パラメータを規定し、それを参照して演算パラメータを符号化または復号してもよい。
また、本開示の第7の態様(1−2−1)に係る方法では、第6の態様に係る方法において、複数の演算パラメータを規定し、それらの内の1つを指定するための識別子を符号化または復号し、指定した演算パラメータを参照して演算パラメータを符号化または復号してもよい。
また、本開示の第8の態様(1−2−2)に係る方法では、第6の態様に係る方法において、参照するデータとの差分値を符号化または復号してもよい。
ここで、本開示の第9の態様(2)に係る画像の符号化または復号の方法では、イントラ予測に用いる演算パラメータを符号化または復号する。
また、本開示の第10の態様(2−1)に係る方法では、第9の態様に係る方法において、符号化または復号済みの演算パラメータを参照して、演算パラメータを符号化または復号してもよい。
また、本開示の第11の態様(2−1−1)に係る方法では、第10の態様に係る方法において、前記演算パラメータを用いた処理を複数モード備え、演算パラメータは符号化または復号済みの他のモードの演算パラメータを参照して、符号化または復号してもよい。
また、本開示の第12の態様(2−1−2)に係る方法では、第10の態様に係る方法において、直前に符号化または復号した演算パラメータを参照して、演算パラメータを符号化または復号してもよい。
また、本開示の第13の態様(2−1−3)に係る方法では、第10の態様に係る方法において、参照するデータとの差分値を符号化または復号してもよい。
また、本開示の第14の態様(2−2)に係る方法では、第9の態様に係る方法において、特定の演算パラメータを規定し、それを参照して演算パラメータを符号化または復号してもよい。
また、本開示の第15の態様(2−2−1)に係る方法では、第14の態様に係る方法において、複数の演算パラメータを規定し、それらの内の1つを指定するための識別子を符号化または復号し、指定した演算パラメータを参照して演算パラメータを符号化または復号してもよい。
また、本開示の第16の態様(2−2−2)に係る方法では、第14の態様に係る方法において、参照するデータとの差分値を符号化または復号してもよい。
以上の各実施例において、機能ブロックの各々は、通常、MPUやメモリ等によって実現可能である。また、機能ブロックの各々による処理は、通常、ソフトウェア(プログラム)によって実現することができ、当該ソフトウェアはROM等の記録媒体に記録されている。そして、このようなソフトウェアをダウンロード等により配布してもよいし、CD−ROMなどの記録媒体に記録して配布してもよい。なお、各機能ブロックをハードウェア(専用回路)によって実現することも、当然、可能である。
また、各実施例において説明した処理は、単一の装置(システム)を用いて集中処理することによって実現してもよく、あるいは、複数の装置を用いて分散処理することによって実現してもよい。また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本開示は、以上の実施例に限定されることなく、種々の変更が可能であり、それらも本開示の範囲内に包含されるものであることは言うまでもない。
<実施の形態1〜6のまとめ>
図69Aは、本開示の一態様に係る画像符号化装置のブロック図である。
画像符号化装置10は、上記各実施の形態における画像符号化装置100,300,500に対応し、ピクチャをブロック毎に変換し、ループ内フィルタを用いて変換済みのブロックを再構築し、そのピクチャ内の画素を用いたイントラ予測又は他のピクチャ内の画素を用いたインター予測を用いて、再構築されたブロックを予測し、そのブロックを符号化する。また、この画像符号化装置10は、画像符号化部11とパラメータ符号化部12とを備える。
画像符号化部11は、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、入出力の関係が非線形となる非線形処理を行って前記ブロックを含む画像を符号化する。パラメータ符号化部12は、その非線形処理に用いられる非線形フィルタの演算パラメータを符号化する。
図69Bは、本開示の一態様に係る画像符号化方法のフローチャートである。
画像符号化方法は、ピクチャをブロック毎に変換し、ループ内フィルタを用いて変換済みのブロックを再構築し、そのピクチャ内の画素を用いたイントラ予測又は他のピクチャ内の画素を用いたインター予測を用いて、再構築されたブロックを予測し、そのブロックを符号化する方法であって、ステップS11とステップS12とを含む。ステップS11では、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、入出力の関係が非線形となる非線形処理を行って前記ブロックを含む画像を符号化する。ステップS12では、その非線形処理に用いられる非線形フィルタの演算パラメータを符号化する。
このように、本開示の一態様に係る画像符号化装置および画像符号化方法では、非線形フィルタを用いることによって、画像を効率的に符号化することができる。
ここで、例えば、非線形フィルタはニューラルネットワークを含み、演算パラメータの符号化では、ニューラルネットワークに含まれる各ノード間の重み係数を演算パラメータとして符号化してもよい。また、例えば、その演算パラメータの符号化では、さらに、ニューラルネットワークの階層数またはノード数を演算パラメータとして符号化してもよい。
また、画像の符号化では、符号化される前記画像のプロファイルに応じて、ニューラルネットワークの階層数またはノード数の最大値を規定し、規定された最大値以下の階層数またはノード数のニューラルネットワークを用いた非線形処理を行ってもよい。
これにより、例えば図28に示すように、プロファイルに応じて階層数またはノード数が制限されるため、非線形処理の計算量を抑制することができ、低遅延を実現することができる。
また、画像符号化方法では、さらに、固定パラメータを有する線形フィルタと前記非線形フィルタとのうちの何れか一方を、使用されるべきフィルタとして示す切換え情報を符号化し、画像の符号化では、画像の符号化に用いられる処理を、前記切換え情報にしたがって、前記イントラ予測、前記インター予測および前記ループ内フィルタのうちの少なくとも1つにおいて、前記非線形フィルタを用いた前記非線形処理と、前記線形フィルタを用いた線形処理とに切換えてもよい。
例えば、切換え情報は、図22に示す、intra_pred_type、inter_pred_type、またはilf_typeである。線形処理は、従来のイントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つであり、固定されたパラメータ(重み係数など)を有する線形フィルタを用いる。
これにより、非線形処理と線形処理とが切換えられるため、符号量と画像の歪み(画質)とによって定義される評価値が高い処理を選択することができ、符号量および画質劣化を共に抑えることができる。
また、非線形処理は、複数のモードのうちの何れかのモードに対応付けられ、画像の符号化では、そのモードが指定される場合に、非線形処理を行って画像を符号化してもよい。
これにより、例えば図22に示すnn_intra_pred_mode、nn_inter_pred_mode、およびnn_ilf_modeなどのモードを指定することによって、そのモードに対応する適切な非線形処理を行うことができる。
また、画像符号化方法では、さらに、指定されたモードを示す情報を符号化してもよい。
これにより、例えば図22〜図26に示すように、モードを示す情報が符号化されるため、そのモードを画像復号装置に通知することができ、適切に画像を復号することができる。
また、画像符号化方法では、さらに、前記画像に含まれるブロック、スライス、タイル、ピクチャまたはGOP(Group Of Picture)である画像単位ごとに、前記演算パラメータを切換え、前記画像の符号化では、前記画像単位に対して切換えられた演算パラメータを有する前記非線形フィルタを用いた非線形処理を行って、前記画像単位を符号化してもよい。例えば、演算パラメータの符号化では、画像に含まれる、シーケンス、GOPおよびピクチャのうちの少なくとも1つの先頭において、複数の非線形フィルタのそれぞれに対応する、第1の識別子に関連付けられた演算パラメータを符号化し、画像の符号化では、画像単位ごとに、第1の識別子によって演算パラメータを指定し、指定された演算パラメータの非線形フィルタを用いた非線形処理を行って画像を符号化する。
例えば、図16〜図18に示すように、画像単位ごとに、pps_nps_idまたはslice_nps_idなどの第1の識別子によって、その第1の識別子と同一のnps_idに関連付けられた演算パラメータ(nn_intra_pred_parameter_data()、nn_inter_pred_parameter_data()またはnn_ilf_parameter_data())が指定される。これにより、演算パラメータを画像単位ごとに適切に用いることができる。
また、画像符号化方法では、さらに、非線形フィルタが有効か無効かを示す有効/無効情報を符号化し、画像の符号化では、その有効/無効情報が有効を示す場合に、非線形処理を行ってもよい。
例えば、図15に示すnn_intra_pred_enabled_flagなどのフラグである有効/無効情報が符号化され、そのフラグが有効を示す場合に、NNイントラ予測などの非線形処理が行われる。これにより、画像復号装置は、有効/無効情報が無効を示す場合には、演算パラメータなどに対する処理を省くことができ、簡単に画像を復号することができる。
また、画像符号化方法では、さらに、符号化される画像のプロファイルに応じて、有効/無効情報によって示される内容を切換えてもよい。
これにより、プロファイルに応じて非線形処理を行うか否かを選択することができる。
また、画像符号化方法では、さらに、画像を扱うアプリケーションプログラムにおいて、画像処理に対して低遅延の要求がある場合には、有効/無効情報によって示される内容を無効に切換えてもよい。
これにより、低遅延の要求があるアプリケーションプログラムでは、非線形処理の代わりに、固定パラメータを有する線形フィルタを用いたイントラ予測などの線形処理を行うことができ、その要求に応じた画像の符号化を実現することができる。
また、画像符号化方法では、さらに、その画像を教師データとして用いて学習することによって演算パラメータを決定してもよい。例えば、その画像符号化方法では、さらに、画像に含まれるブロックごとに、当該ブロックの特徴に応じて、当該ブロックを複数のクラスのうちの何れかのクラスに分類し、演算パラメータの決定では、そのクラスごとに、当該クラスに分類された少なくとも1つのブロックと、その少なくとも1つのブロックのそれぞれの周辺画素とを教師データとして用いて学習することによって、当該クラスに対応する演算パラメータを決定する。
これにより、例えば図7〜図14に示すように、演算パラメータを、符号化対象の画像に最適化することができ、画像をより効率的に符号化することができる。
また、演算パラメータの決定では、画像のうち、予め定められた基準よりも複雑性が高い領域のみを用いて学習することによって、演算パラメータを決定してもよい。
これにより、非線形処理の精度または性能を低下させることなく学習の範囲を絞ることができ、非線形フィルタの演算パラメータ量を削減することができる。
また、変換では、画像における空間領域から周波数領域への変換を行い、非線形フィルタを用いたイントラ予測またはインター予測が行われるか、線形フィルタを用いたイントラ予測またはインター予測が行われるかに応じて、その変換の方法を切換えてもよい。例えば、その変換では、非線形フィルタを用いたイントラ予測が行われる場合には、変換の方法を、変更可能な変換行列を用いた方法に切換え、変更可能な変換行列を用いた方法にしたがって変換を行う。
例えば図39に示すように、非線形フィルタを用いたイントラ予測(NNイントラ予測)が行われる場合には、KL変換などの、変更可能な変換行列を用いた方法によって変換が行われ、線形フィルタを用いたイントラ予測(従来のイントラ予測)が行われる場合には、離散コサイン変換などの固定変換によって変換が行われる。これにより、NNイントラ予測のような非線形処理が行われる場合には、その非線形処理に適した変換を行うことができ、符号化効率を向上することができる。
また、画像の符号化では、画像に含まれるブロックが所定のサイズ以下の場合には、非線形フィルタを用いたイントラ予測を非線形処理としてそのブロックに対して行い、ブロックが所定のサイズよりも大きい場合には、固定パラメータの線形フィルタを用いたイントラ予測をそのブロックに対して行ってもよい。
例えば図36に示すように、画像に含まれるブロック(予測ブロック)が4×4画素のサイズ以下の場合には、NNイントラ予測が予測ブロックに対して行われ、4×4画素のサイズよりも大きい場合には、固定イントラ予測が予測ブロックに対して行われる。これにより、予測性能の低下を抑制しつつ演算パラメータのデータ量を削減することができ、符号化効率を向上させることができる。
また、画像の符号化では、画像のうちの輝度成分に対して非線形処理を行い、画像のうちの色差成分に対しては、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、入出力関係が線形となる線形処理を行ってもよい。
例えば図36〜図38に示すように、輝度成分に対しては、NNイントラ予測、NNインター予測、またはNNループ内フィルタが行われ、色差成分に対しては、固定イントラ予測、固定インター予測、または固定ループ内フィルタが行われる。なお、固定イントラ予測、固定インター予測、および固定ループ内フィルタのそれぞれは、固定パラメータを有する線形フィルタを用いて行われる従来のインター予測、イントラ予測またはループ内フィルタである。これにより、予測精度の低下やノイズ増加を抑制しつつ演算パラメータのデータ量を削減することができ、符号化効率を向上させることができる。
また、演算パラメータの符号化では、符号化対象の前記演算パラメータとは異なる符号化済みの演算パラメータを参照して、符号化対象の前記演算パラメータを符号化してもよい。具体的には、演算パラメータの符号化では、符号化対象の演算パラメータと符号化済みの演算パラメータとの差分を符号化する。
これにより、例えば図54〜図56に示すように、演算パラメータを効率的に符号化することができる。
また、非線形処理には、複数のモードがあり、符号化済みの演算パラメータは、符号化対象の演算パラメータに対応する非線形処理のモードとは異なる他のモードの非線形処理の符号化済みの演算パラメータであってもよい。
これにより、例えば図56のステップS484およびS488に示すように、演算パラメータ(重み係数)を効率的に符号化することができる。なお、ステップS484における参照モードの階層iのノードjの入力ノードmの重み係数は、符号化済みの演算パラメータである。
また、符号化済みの演算パラメータは、符号化対象の演算パラメータの直前に符号化された演算パラメータであってもよい。
これにより、例えば図56のステップS487およびS488に示すように、演算パラメータ(重み係数)を効率的に符号化することができる。なお、ステップS487における直前の入力ノードの重み係数は、符号化対象の演算パラメータの直前に符号化された演算パラメータである。
また、演算パラメータの符号化では、予め規定されたパラメータである規定パラメータを参照して、符号化対象の演算パラメータを符号化してもよい。
これにより、例えば図56のステップS483およびS488に示すように、演算パラメータ(重み係数)を効率的に符号化することができる。なお、ステップS483におけるプリセットIDのプリセットの階層iのノードjの入力ノードmの重み係数は、予め規定されたパラメータである規定パラメータである。
また、演算パラメータの符号化では、予め定められた複数のパラメータのうちの何れか1つのパラメータを、当該パラメータの第2の識別子を用いて指定し、指定されたパラメータを規定パラメータとして参照し、画像符号化方法では、さらに、その第2の識別子を符号化してもよい。
例えば、図52のステップS437において、プリセットIDが第2の識別子として指定されて符号化される。これにより、適切な規定パラメータを選択することができ、演算パラメータをより効率的に符号化することができる。
図70Aは、本開示の一態様に係る画像復号装置のブロック図である。
画像復号装置20は、上記各実施の形態における画像復号装置200,400,600に対応し、符号化ピクチャをブロック毎に逆変換し、ループ内フィルタを用いて逆変換済みの前記ブロックを再構築し、前記符号化ピクチャ内の復号済みの画素を用いたイントラ予測又は他の符号化ピクチャ内の復号済みの画素を用いたインター予測を用いて、前記再構築されたブロックを予測し、そのブロックを復号する。また、この画像復号装置20は、パラメータ復号部21と画像復号部22とを備える。
パラメータ復号部21は、非線形フィルタの演算パラメータを復号する。画像復号部22は、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、復号された演算パラメータを有する非線形フィルタを用いた、入出力の関係が非線形となる非線形処理を行ってそのブロックを含む画像を復号する。
図70Bは、本開示の一態様に係る画像復号方法のフローチャートである。
画像復号方法は、符号化ピクチャをブロック毎に逆変換し、ループ内フィルタを用いて逆変換済みの前記ブロックを再構築し、前記符号化ピクチャ内の復号済みの画素を用いたイントラ予測又は他の符号化ピクチャ内の復号済みの画素を用いたインター予測を用いて、前記再構築されたブロックを予測し、そのブロックを復号する方法であって、ステップS21とステップS22とを含む。ステップS21では、非線形フィルタの演算パラメータを復号する。ステップS22では、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、復号された演算パラメータを有する非線形フィルタを用いた、入出力の関係が非線形となる非線形処理を行ってそのブロックを含む画像を復号する。
このように、本開示の一態様に係る画像復号装置および画像復号方法では、非線形フィルタを用いることによって、効率的に符号化された画像を適切に復号することができる。
ここで、例えば、非線形フィルタはニューラルネットワークを含み、演算パラメータの復号では、ニューラルネットワークに含まれる各ノード間の重み係数を演算パラメータとして復号してもよい。また、例えば、演算パラメータの復号では、さらに、ニューラルネットワークの階層数またはノード数を演算パラメータとして復号してもよい。
また、画像復号方法では、さらに、固定パラメータを有する線形フィルタと非線形フィルタとのうちの何れか一方を、使用されるべきフィルタとして示す切換え情報を復号し、画像の復号では、画像の復号に用いられる処理を、切換え情報にしたがって、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、非線形フィルタを用いた非線形処理と、線形フィルタを用いた線形処理とに切換えてもよい。
例えば、切換え情報は、図22に示す、intra_pred_type、inter_pred_type、またはilf_typeである。線形処理は、従来のイントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つであり、固定されたパラメータ(重み係数など)を有する線形フィルタを用いる。
これにより、非線形処理と線形処理とが切換えられるため、符号量と画像の歪み(画質)とによって定義される評価値が高い処理を選択することができ、符号量および画質劣化を共に抑えることができる。
また、非線形処理は、複数のモードのうちの何れかのモードに対応付けられ、画像の復号では、モードが指定される場合に、非線形処理を行って画像を復号してもよい。
これにより、例えば図22に示すnn_intra_pred_mode、nn_inter_pred_mode、およびnn_ilf_modeなどのモードが指定されることによって、そのモードに対応する適切な非線形処理を行うことができる。
また、画像復号方法では、さらに、指定されたモードを示す情報を復号してもよい。
これにより、例えば図22〜図26に示すように、モードを示す情報が復号されるため、画像符号化装置から通知されるそのモードにしたがって、適切に画像を復号することができる。
また、画像復号方法では、さらに、画像に含まれるブロック、スライス、タイル、ピクチャまたはGOP(Group Of Picture)である画像単位ごとに、演算パラメータを切換え、画像の復号では、画像単位に対して切換えられた演算パラメータを有する非線形フィルタを用いた非線形処理を行って、画像単位を復号してもよい。例えば、演算パラメータの復号では、画像に含まれる、シーケンス、GOPおよびピクチャのうちの少なくとも1つの先頭において、複数の非線形フィルタのそれぞれに対応する、第1の識別子に関連付けられた演算パラメータを復号し、画像の復号では、画像単位ごとに、その第1の識別子によって演算パラメータを指定し、指定された演算パラメータの非線形フィルタを用いた非線形処理を行って画像を復号する。
例えば、図16〜図18に示すように、画像単位ごとに、pps_nps_idまたはslice_nps_idなどの第1の識別子によって、その第1の識別子と同一のnps_idに関連付けられた演算パラメータ(nn_intra_pred_parameter_data()、nn_inter_pred_parameter_data()またはnn_ilf_parameter_data())が指定される。これにより、演算パラメータを画像単位ごとに適切に用いることができる。
また、画像復号方法では、さらに、非線形フィルタが有効か無効かを示す有効/無効情報を復号し、画像の復号では、その有効/無効情報が有効を示す場合に、非線形処理を行ってもよい。
例えば、図15に示すnn_intra_pred_enabled_flagなどのフラグである有効/無効情報が復号され、そのフラグが有効を示す場合に、NNイントラ予測などの非線形処理が行われる。これにより、画像復号装置は、有効/無効情報が無効を示す場合には、演算パラメータなどに対する処理を省くことができ、簡単に画像を復号することができる。
また、逆変換では、画像における周波数領域から空間領域への逆変換を行い、非線形フィルタを用いたイントラ予測またはインター予測が行われるか、線形フィルタを用いたイントラ予測またはインター予測が行われるかに応じて、逆変換の方法を切換えてもよい。例えば、逆変換では、非線形フィルタを用いたイントラ予測が行われる場合には、逆変換の方法を、変更可能な変換行列を用いた方法に切換え、変更可能な変換行列を用いた方法にしたがって逆変換を行ってもよい。
例えば図48に示すように、非線形フィルタを用いたイントラ予測(NNイントラ予測)が行われる場合には、逆KL変換などの、変更可能な変換行列を用いた方法によって変換が行われ、線形フィルタを用いたイントラ予測(従来のイントラ予測)が行われる場合には、逆離散コサイン変換などの逆固定変換によって逆変換が行われる。これにより、NNイントラ予測のような非線形処理が行われる場合には、その非線形処理に適した逆変換を行うことができ、符号化効率を向上することができる。
また、画像の復号では、画像に含まれるブロックが所定のサイズ以下の場合には、非線形フィルタを用いたイントラ予測を非線形処理としてそのブロックに対して行い、ブロックが所定のサイズよりも大きい場合には、固定パラメータの線形フィルタを用いたイントラ予測をそのブロックに対して行ってもよい。
例えば図45に示すように、画像に含まれるブロック(予測ブロック)が4×4画素のサイズ以下の場合には、NNイントラ予測が予測ブロックに対して行われ、4×4画素のサイズよりも大きい場合には、固定イントラ予測が予測ブロックに対して行われる。これにより、予測性能の低下を抑制しつつ演算パラメータのデータ量を削減することができ、符号化効率を向上させることができる。
また、画像の復号では、画像のうちの輝度成分に対して非線形処理を行い、画像のうちの色差成分に対しては、イントラ予測、インター予測およびループ内フィルタのうちの少なくとも1つにおいて、入出力関係が線形となる線形処理を行ってもよい。
例えば図45〜図47に示すように、輝度成分に対しては、NNイントラ予測、NNインター予測、またはNNループ内フィルタが行われ、色差成分に対しては、固定イントラ予測、固定インター予測、または固定ループ内フィルタが行われる。なお、固定イントラ予測、固定インター予測、および固定ループ内フィルタのそれぞれは、固定パラメータを有する線形フィルタを用いて行われる従来のインター予測、イントラ予測またはループ内フィルタである。これにより、予測精度の低下やノイズ増加を抑制しつつ演算パラメータのデータ量を削減することができ、符号化効率を向上させることができる。
また、演算パラメータの復号では、復号対象の演算パラメータとは異なる復号済みの演算パラメータを参照して、復号対象の演算パラメータを復号してもよい。具体的には、演算パラメータの復号では、復号対象の演算パラメータと復号済みの演算パラメータとの差分を復号する。
これにより、例えば図65〜図67に示すように、演算パラメータを効率的に復号することができる。
また、非線形処理には、複数のモードがあり、復号済みの演算パラメータは、復号対象の演算パラメータに対応する非線形処理のモードとは異なる他のモードの非線形処理の復号済みの演算パラメータであってもよい。
これにより、例えば図67のステップS595およびS599に示すように、演算パラメータ(重み係数)を効率的に復号することができる。なお、ステップS595における参照モードの階層iのノードjの入力ノードmの重み係数は、復号済みの演算パラメータである。
また、復号済みの演算パラメータは、復号対象の演算パラメータの直前に復号された演算パラメータであってもよい。
これにより、例えば図67のステップS598およびS599に示すように、演算パラメータ(重み係数)を効率的に復号することができる。なお、ステップS598における直前の入力ノードの重み係数は、復号済みの演算パラメータである。
また、演算パラメータの復号では、予め規定されたパラメータである規定パラメータを参照して、復号対象の演算パラメータを復号してもよい。
これにより、例えば図67のステップS594およびS599に示すように、演算パラメータ(重み係数)を効率的に復号することができる。なお、ステップS594におけるプリセットIDのプリセットの階層iのノードjの入力ノードmの重み係数は、予め規定されたパラメータである規定パラメータである。
また、画像復号方法では、さらに、第2の識別子を復号し、演算パラメータの復号では、予め定められた複数のパラメータのうちの何れか1つのパラメータを、その第2の識別子を用いて指定し、指定されたパラメータを規定パラメータとして参照してもよい。
例えば、図63のステップS537において、プリセットIDが第2の識別子として復号される。これにより、適切な規定パラメータを選択することができ、演算パラメータをより効率的に復号することができる。
なお、これらの包括的または具体的な態様は、システム、方法、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図71は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図71のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本開示の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本開示の一態様に係る画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図72に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本開示の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本開示の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図73は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本開示の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図74に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図75に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図73に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図76Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図76Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本開示の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本開示の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本開示はかかる上記実施の形態に限定されるものではなく、本開示の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態8)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図77は、多重化データの構成を示す図である。図77に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図78は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図79は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図79における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図79の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図80は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図80下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図81はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図82に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図82に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図83に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図84に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態9)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図85に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。このようなプログラマブル・ロジック・デバイスは、典型的には、ソフトウェア又はファームウェアを構成するプログラムを、ロードする又はメモリ等から読み込むことで、上記各実施の形態で示した動画像符号化方法、又は動画像復号化方法を実行することができる。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態10)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図86は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図85のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図85の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態8で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態8で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図88のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図87は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態11)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図89Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本開示の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図89Bのex1000に示す。この例では、本開示の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本開示の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本開示の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本開示の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。