以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
以下、図1~図12を参照して、本発明の第1実施形態に係る画像処理システム1について説明する。図1は、本実施形態に係る第1実施形態に係る画像処理システム1を示す図である。
図1に示すように、画像処理システム1は、画像符号化装置10及び画像復号装置20を有する。
画像符号化装置10は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置20は、符号化データを復号することによって出力画像信号を生成するように構成されている。
ここで、かかる符号化データは、画像符号化装置10から画像復号装置20に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置10から画像復号装置20に提供されてもよい。
(画像符号化装置10)
以下、図2を参照して、本実施形態に係る画像符号化装置10について説明する。図2は、本実施形態に係る画像符号化装置10の機能ブロックの一例について示す図である。
図2に示すように、画像符号化装置10は、前処理部300と、解析部400と、制御部500と、UI部600と、画像符号化部100とを有する。
前処理部300は、入力画像信号及び制御部500から出力される制御情報を入力とし、前処理を行って前処理後画像信号及び制御データを出力するように構成されている。
解析部400は、入力画像信号を入力とし、解析情報を制御部500に出力するように構成されている。
制御部500は、解析部400から出力される解析情報及びUI部600から出力される設定情報を入力とし、制御情報を前処理部300及び画像符号化部100へ出力するように構成されている。
UI部600は、GUIやCUIによってユーザから指定された設定情報を制御部500へ出力するように構成されている。
画像符号化部100は、前処理部300から出力される前処理後画像信号及び制御データと、制御部500から出力される制御情報とを入力とし、ビットストリームを出力するように構成されている。
(画像符号化部100)
以下、図3を参照して、本実施形態に係る画像符号化装置10の画像符号化部100について説明する。図3は、本実施形態に係る画像符号化部100の機能ブロックの一例について示す図である。
図3に示すように、画像符号化部100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
インター予測部111は、後述するインター予測部241と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
イントラ予測部112は、後述するイントラ予測部242と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
ここで、参照ブロックは、予測対象のブロック(以下、対象ブロック)について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT;Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST;Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
逆変換・逆量子化部132は、逆変換・逆量子化部220と同様に、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
なお、制御データは、前処理部300から入力される制御データに加えて、符号化ブロックサイズや予測ブロックサイズや変換ブロックサイズ等のサイズデータを含んでもよい。
インループフィルタ処理部150は、インループフィルタ処理部250と同様に、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
以下、図4を参照して、本実施形態に係る画像符号化装置10の処理の一例を説明する。図4は、画像符号化装置10の処理の一例を示すフローチャートである。
図4に示すように、ステップS401において、解析部400は、入力画像信号を解析し、入力画像信号の符号化難易度を推定し、解析情報として出力する。
例えば、解析部400は、符号化難易度について、入力画像信号の画素値(輝度信号値或いは色差信号値)の分散値から算出してもよい。例えば、解析部400は、かかる分散値が予め定めた閾値より大きい場合は、符号化難易度が高いと推定し、かかる分散値がかかる閾値以下の場合は、符号化難易度が低いと推定してもよい。
例えば、解析部400は、符号化難易度について、参照フレームとの画素値の差分値から算出してもよい。具体的には、解析部400は、差分値の絶対値和、差分値の二乗和或いはそれぞれの値を画素数で除した画素あたりの差分値を用いて、かかる符号化難易度を推定してもよい。例えば、解析部400は、かかる差分値が予め定めた閾値より大きい場合は、符号化難易度が高いと推定し、かかる差分値がかかる閾値以下の場合は、符号化難易度が低いと推定してもよい。
例えば、解析部400は、入力画像信号を入力として符号化難易度の推定値を出力するように構成及び学習されたCNN(畳み込みニューラルネットワーク)等の機械学習ベースの手法を用いて、符号化難易度を推定してもよい。
ここで、解析部400は、入力画像信号を入力として符号化難易度を出力する構成となっていれば、上述以外の方法を用いてもよい。
また、以上では、符号化難易度が「高い」及び「低い」の2段階の場合を例に説明したが、符号化難易度が3段階以上に分類されていてもよい。
また、以上では、解析部400が符号化難易度を出力する場合を例に説明したが、解析部400は符号化難易度を判定するための情報(例えば、上述の分散値等)を出力し、符号化難易度自体は、制御部500内で判定されてもよい。
さらに、後述のように、UI部600からのユーザ設定によって全ての入力画像信号についてダウンサンプリング処理が実行される場合は、本ステップS401については省略されてもよい。
以上の処理を行った後、本手順は、ステップS402へ進む。
ステップS402において、制御部500は、ダウンサンプリング処理の実行の要否を決定する。
例えば、制御部500は、解析部400から出力される解析情報を基にダウンサンプリング処理の実行の要否を決定してもよい。例えば、制御部500は、符号化難易度が高いと判定された場合、ダウンサンプリング処理の実行が必要であると判定してもよい。
また、上述のように、制御部500は、内部で符号化難易度を判定した後、ダウンサンプリング処理の実行の要否を決定してもよい。
上述のように、符号化難易度が3段階以上で定義されている場合、制御部500は、符号化難易度が最も低い場合に、ダウンサンプリング処理の実行が不要であると判定し、それ以外の場合には、ダウンサンプリング処理の実行が必要であると判定した上で、符号化難易度が高くなるにつれてダウンサンプリング処理後の解像度が小さくなるようにダウンサンプリング処理の実行方法を決定してもよい。なお、本明細書では、解像度とは、画像の1フレーム又は1フィールド全体のサイズ(水平方向の画素数と垂直方向の画素数とを乗じた値)のことを指すこととする。
また、例えば、制御部500は、入力画像(入力画像信号に含まれる画像)の解像度に基づいて、ダウンサンプリング処理の実行の要否を決定してもよい。
例えば、制御部500は、入力画像の解像度が所定解像度より大きかった場合は、ダウンサンプリング処理の実行が必要であると判定し、入力画像の解像度が所定解像度以下の場合は、ダウンサンプリング処理の実行は不要であると判定してもよい。
例えば、制御部500は、入力画像信号の解像度が8K解像度である場合は、ダウンサンプリング処理の実行が必要であると判定し、入力画像信号の解像度が8K解像度未満である場合は、ダウンサンプリング処理の実行が不要であると判定してもよい。
また、制御部500は、ダウンサンプリング処理後の画像の解像度を予め定義しておき、かかる画像の解像度より入力画像の解像度が大きい場合は、ダウンサンプリング処理の実行が必要であると判定し、ダウンサンプリング処理後の画像の解像度になるようにダウンサンプリング処理を実行するように決定してもよい。
また、例えば、制御部500は、UI部600から入力される制御情報に基づいて、ダウンサンプリング処理の実行の要否を決定してもよい。例えば、制御部500は、制御情報によってダウンサンプリング処理を必ず実行するように設定された場合、必ずダウンサンプリング処理の実行が必要であると決定するようにしてもよい。
また、制御部500は、以上で説明した判定方法を組み合わせて、ダウンサンプリング処理の実行の要否を判定してもよい。
例えば、制御部500は、UI部600からダウンサンプリング処理のOn/Offを制御する情報を取得し、ダウンサンプリング処理がOnかつ入力画像の解像度が所定解像度より大きい場合に、符号化難易度に基づいてダウンサンプリング処理の実行の要否を決定し、それ以外の場合は、ダウンサンプリングの実行が不要であると決定してもよい。
以上の処理中で用いられる符号化難易度の段階数や所定解像度等は、UI部600によりユーザから指定できるようになっていてもよい。
以上の処理を行った後、本手順は、ステップS403へ進む。
ステップS403において、ステップS402の結果を基に本手順が分岐される。ステップS402においてダウンサンプリング処理の実行が必要であると判定された場合には、本手順は、ステップS404へ進み、ステップS402においてダウンサンプリング処理の実行が不要であると判定された場合には、本手順は、ステップS406へ進む。
ステップS404において、前処理部300が、入力画像信号に対してダウンサンプリング処理を実行する。なお、ステップS404を経由しない場合(ダウンサンプリング処理の実行が不要であると判定された場合)は、前処理部300は、入力画像信号をそのまま符号化部100へ出力してもよい。
前処理部300は、ダウンサンプリング処理について、1次元又は2次元のダウンサンプリングフィルタを用いて実行してもよい。
また、前処理部300は、ダウンサンプリング処理とアップサンプリング処理とをペアとして学習したCNN等の機械学習ベースの手法を用いて、ダウンサンプリング処理を実行してもよい。
かかるダウンサンプリング処理の実行が完了した後、本手順は、ステップS405へ進む。
ステップS405において、前処理部300が、入力画像及びダウンサンプリング後の画像に基づいて、画像復号装置20側で実施するアップサンプリング処理の種類やアップサンプリング処理に用いるパラメータを決定し、制御データとして出力する。
前処理部300は、アップサンプリング処理の種類としては、1次元の畳み込みフィルタ、2次元の畳み込みフィルタ、CNN等の機械学習ベースの手法、後述するRPRと同一のアップサンプリング処理等のバリエーションを予め用意しておき、その中のいずれを用いるかを示すindex値を制御データとして出力してもよい。
また、前処理部300は、同種のフィルタ(例えば、1次元の畳み込みフィルタ)においても、フィルタ係数のバリエーション等で複数の候補を備えていてもよい。
さらに、前処理部300は、フィルタ係数やCNN等の機械学習ベース手法のネットワークのパラメータ(重み等)を決定し、制御データとして出力してもよい。
前処理部300は、アップサンプリング処理の種類やパラメータの決定方法として、例えば、入力画像とアップサンプル処理後の画像との誤差(絶対値誤差和や二乗誤差和等)が最小となる方法を選択してもよい。これらの制御データは、画像符号化部100においてユーザ定義のSEI messageとして符号化されてもよい。
また、前処理部300は、アップサンプリング処理については特に規定せず、制御データとして出力しないように構成されていてもよい。
前処理部300は、アップサンプリング処理に関する制御データの出力有無について、例えば、UI部600から入力される制御情報に基づいて切り替えてもよい。
上述の処理を行った後、本手順は、ステップS406へ進む。
ステップS406において、画像符号化部100が、符号化処理を行ってビットストリームを出力する。ここで、図5及び図6を用いて、画像符号化部100における符号化処理の一例を説明する。
図5は、ステップS401~S405までの処理によって、フレームごとに適応的にダウンサンプリングが行われた場合の画像符号化部100へ入力される前処理後画像の一例を示す。
図5におけるFr0、Fr2、Fr5は、ダウンサンプリング処理が実行されなかったフレームを示し、Fr1、Fr3、Fr4は、ダウンサンプリング処理が実行されたフレームを示している。
このように、フレームごとに画像の解像度が違う場合には、インター予測部111は、非特許文献1に記載のRPR(Reference Picture Resampling)という技術を用いる。図6を用いて、RPRを用いる場合のインター予測部111の処理について説明する。
図6は、本実施形態に係る画像符号化装置10の画像符号化部100のインター予測部111の機能ブロックの一例を示す図である。
図6に示すように、インター予測部111は、解像度変換部1111と、パラメータ決定部1112と、予測画像生成部1113とを備えている。
解像度変換部1111は、符号化対象フレームの解像度とインター予測に用いられる参照フレームの解像度とが異なる場合、参照フレームの解像度を符号化対象フレームの解像度と同一になるように変換するように構成されている。
参照フレームの解像度が符号化対象フレームの解像度より大きい場合は、ダウンサンプリング処理が実行され、参照フレームの解像度が符号化対象フレームの解像度より小さい場合は、アップサンプリング処理が行われる。具体的な処理内容は、非特許文献1に定義されているため、詳細の説明については割愛する。
パラメータ決定部1112は、インター予測に関するパラメータを決定するように構成されている。かかるパラメータは、例えば、動きベクトルや、どの参照フレームを使用するかを示すindex値等である。
予測画像生成部1113は、パラメータ決定部1112によって決定されたパラメータを用いて、予測画像を生成するように構成されている。
(画像復号装置20)
以下、図7を参照して、本実施形態に係る画像復号装置20について説明する。図7は、本実施形態に係る画像復号装置20の機能ブロックの一例について示す図である。
図7に示すように、画像復号装置20は、抽出部700と、画像復号部200と、後処理部800と、制御部900と、UI部1000とを備えている。
抽出部700は、ビットストリーム及び制御部900から出力される制御情報を入力とし、かかる制御情報に基づいてビットストリーム中から画像復号部200に入力すべきデータを抽出し、抽出したデータについて抽出後ビットストリームとして出力するように構成されている。
画像復号部200は、上述の抽出後ビットストリームを入力として復号処理を行い、復号画像信号及び制御データを出力するように構成されている。
後処理部800は、復号画像信号、制御データ及び制御部900から出力される制御情報を入力として、後処理後復号信号を出力するように構成されている。
制御部900は、画像復号部200から出力される復号画像信号及び制御データとUI部1000から出力される設定情報とを入力とし、制御情報を出力するように構成されている。
(画像復号部200)
以下、図8を参照して、本実施形態に係る画像復号装置20の画像復号部200について説明する。図8は、本実施形態に係る画像復号部200の機能ブロックの一例について示す図である。
図8に示すように、画像復号部200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを備えている。
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
ここで、例えば、復号は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化されたデータの復号である。
復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズや、予測ブロック(PU:Prediction Unit)サイズや、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
インター予測部241は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
イントラ予測部242は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
インループフィルタ処理部250は、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
ここで、インループフィルタ処理は、複数のフィルタ処理から構成されていてもよい。例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック或いはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理や、画像符号化装置100から伝送されるフィルタ係数やフィルタ選択情報や画像の絵柄の局所的な性質等に基づいてフィルタを切り替える適応ループフィルタ処理である。
フレームバッファ260は、インター予測部241で用いる参照フレームを蓄積するように構成されている。
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
(インター予測部241)
図9を用いて、本実施形態に係る画像復号装置20の画像復号部200のインター予測部241の処理の一例を説明する。図9は、本実施形態に係るインター予測部241の機能ブロックの一例を示す図である。
図9に示すように、インター予測部241は、パラメータ復号部2411と、解像度変換部2412と、予測画像生成部2413とを備えている。
パラメータ復号部2411は、ビットストリームからインター予測に関するパラメータを復号するように構成されている。ここで、パラメータとは、例えば、動きベクトルや、どの参照フレームを使用するかをしめるindex値等である。
解像度変換部2412は、上述のパラメータに基づいて参照フレームを特定し、参照フレームの解像度と復号対象フレームの解像度とが異なる場合には、参照フレームの解像度を変換するように構成されている。解像度変換部2412は、かかる解像度の変換方法について、解像度変換部1111と同様に、非特許文献1で規定された方法を用いることができる。
予測画像生成部2413は、予測画像生成部1113と同様に、予測画像を生成するように構成されている。
(後処理部800)
本実施形態において、後処理部800は、必要に応じてアップサンプリング処理を行い、後処理後復号画像を生成して出力するように構成されている。
ここで、後処理部800は、例えば、画像復号部200から出力された復号画像の解像度が復号対象シーケンスの画像の解像度よりも小さい場合、アップサンプリング処理の実行が必要であると判断して、アップサンプリング処理を実行してもよい。
なお、かかる復号対象シーケンスの画像の解像度は、画像復号部200によって復号された制御データに含まれていてもよい。また、復号対象シーケンスの画像の解像度は、UI部1000から制御部900を経由して制御情報として入力されてもよい。
後処理部800は、アップサンプリング処理の実行が必要であると判定された場合、アップサンプリング処理を実行する。ここで、後処理部800は、アップサンプリング処理の実行方法については、複数のアップサンプリング処理の実行方法の中から選択してもよい。
後処理部800は、かかるアップサンプリング処理の種類としては、1次元の畳み込みフィルタ、2次元の畳み込みフィルタ、CNN等の機械学習ベースの手法、上述のRPRと同一のアップサンプリング処理等のバリエーションを予め用意しておいてもよい。
また、後処理部800は、同種のフィルタ(例えば、1次元の畳み込みフィルタ)においても、フィルタ係数のバリエーション等で複数の候補を備えていてもよい。
また、前処理部300が、フィルタ係数やCNN等の機械学習ベース手法のネットワークのパラメータ(重み等)について決定し、後処理部800は、ビットストリームを介して制御データとして入力された値(前処理部300によって決定されたパラメータ)に基づいて、アップサンプリング処理を実行してもよい。
前処理部300が、複数のアップサンプリング処理のうち、どのアップサンプリング処理を用いるかについて決定し、後処理部800は、ビットストリームを介して制御データとして入力された値(前処理部300によって決定されたアップリング処理を示す値)に基づいて、用いるアップサンプリング処理について決定してもよい。
UI部1000が、ユーザの設定に基づいた設定情報を出力し、後処理部800は、かかる設定情報に基づいて、複数のアップサンプリング処理のうち、どのアップサンプリング処理を用いるかについて決定してもよい。
後処理部800は、制御部900を経由してUI部1000から出力された設定情報に基づいて、アップサンプリング処理におけるフィルタ係数やCNN等の機械学習ベース手法のネットワークのパラメータ(重み等)を決定してもよい。
(変形例1)
以下、本発明の変更例1について、上述の第1の実施形態との相違点に着目して説明する。本変更例1では、後処理部800が、画像復号部200から出力される復号画像及び制御データを入力としてポストフィルタ処理を行うように構成されている。
本変更例1において、解析部400は、入力画像信号の中でスクリーンコンテンツ(ゲーム画面やリモートデスクトップ画面等)の領域を解析し、スクリーンコンテンツの領域情報(領域の個数や各領域の位置やサイズ等)を制御部500へ出力する。
ここで、解析部400は、画像全体がスクリーンコンテンツであるか否かのみを示す情報を出力してもよい。
制御部500は、解析部400から出力されたスクリーンコンテンツの領域情報を画像符号化部100へ出力するように構成されている。
或いは、制御部500は、UI部600から指定された領域をスクリーンコンテンツ領域情報として画像符号化部100へ出力するように構成されている。
画像符号化部100は、上述のスクリーンコンテンツ領域情報を制御データの一部として符号化し、ビットストリームを生成するように構成されている。この時、かかるスクリーンコンテンツ領域情報は、ユーザ定義のSEI messageとして符号化されてもよい。
一方、画像復号部200は、上述の抽出後ビットストリームからスクリーンコンテンツ領域情報を復号し、後処理部800へ出力するように構成されている。
後処理部800は、上述のスクリーンコンテンツ領域情報を基に、復号後画像信号の各領域にポストフィルタ処理を実行するか否かを決定し、実際にポストフィルタ処理を行うように構成されている。
ここで、後処理部800は、かかるスクリーンコンテンツ領域情報により、スクリーンコンテンツであることが定義されている領域について、ポストフィルタ処理を行わないように制御してもよい。
以上の例では、画像符号化装置10がスクリーンコンテンツ領域情報を画像復号装置20に伝送し、かかるスクリーンコンテンツ領域情報に基づいて画像復号措置20でのポストフィルタ処理を制御する場合を説明した。
別の例として、画像符号化装置10がポストフィルタ適用領域(又は、非適用領域)情報を伝送し、かかる適用領域(又は、非適用領域)情報に従って、ポストフィルタの適用有無を制御してもよい。
(変形例2)
以下、図10及び図11を参照して、本発明の変更例2について、上述の第1の実施形態及び変更例1との相違点に着目して説明する。
本変更例2では、画像符号化装置10及び画像復号装置20において、マルチチャンネル編成とシングルチャンネル編成とが切り替わるように構成されている。
図10は、シングルチャンネル編成からマルチチャンネル編成に切り替わる場合の例について示し、図11は、マルチチャンネル編成からシングルチャンネル編成に切り替わる場合の例を示している。
図10は、シングルチャンネル編成からマルチチャンネル編成に切り替わる際に、シングルチャンネル編成時に放送されていたコンテンツ以外のコンテンツをサブチャンネルで放送するため、伝送容量削減のために入力画像信号がダウンサンプリングされた例を示している。
図10の例では、Fr2とFr3との間で、シングルチャンネル編成からマルチチャンネル編成への切り替えが行われている。なお、上述のダウンサンプリング処理では、UI部600が、制御部500を介してマルチチャンネル編成に切り替わったことを示す制御情報を出力し、前処理部300が、かかる制御情報を基にダウンサンプリング処理を行う。
図11の例では、Fr2とFr3との間で、マルチチャンネル編成からシングルチャンネル編成への切り替えが行われている。この場合も、上述の例と同様に、前処理部300が、Fr2まではダウンサンプリング処理を行い、Fr3以降はダウンサンプリング処理を行わないようにする。
画像符号化装置10のインター予測部111は、マルチチャンネル編成とシングルチャンネル編成との切り替えによって符号化対象フレームの解像度と参照フレームの解像度とが異なる場合、上述のようにRPRを用いて解像度変換を行うように構成されている。
同様に、画像復号装置20のインター予測部241も、復号対象フレームの解像度と参照フレームの解像度とが異なる場合、上述のように、RPRを用いて解像度変換を行うように構成されている。
最後に、後処理部800は、アップサンプリング処理を行うように構成されている。ここで、アップサンプリング処理の内容は、上述の例と同様である。
すなわち、本変更例2では、画像符号化装置10は、マルチチャンネル編成のときに入力画像信号に対してダウンサンプリング処理を行うことによって得られた前処理後入力画像を出力するように構成されている前処理部300と、参照フレームの解像度と前処理後入力画像の解像度とが異なる場合に、参照フレームの解像度を変換するRPRを用いることで、シングルチャンネル編成とマルチチャンネル編成との切り替え前後の入力画像信号を同一のビットストリームとして符号化するように構成されている画像符号化部100とを備える。
また、本変更例2では、画像復号装置20は、ビットストリームを復号して復号画像を出力するように構成されている画像復号部200と、マルチチャンネル編成の際には画像符号化装置10においてダウンサンプリングされた復号画像に対してアップサンプリング処理を行うように構成されている後処理部800とを備える。
ここで、画像復号部200は、復号対象フレームの解像度と参照フレームの解像度とが異なる場合、参照フレームの解像度を変換するRPR処理を行うように構成されているインター予測部241を備えてもよい。
また、上述のアップサンプリング処理は、一次元又は二次元の畳み込みフィルタであってもよいし、CNNを用いた手法であってもよいし、RPR処理と同一の手法であってもよいし、ビットストリームから復号した制御データに基づいて実行されてもよい。
(変形例3)
以下、図12~図15を参照して、本発明の変更例3について、上述の第1の実施形態及び変更例1、2との相違点に着目して説明する。具体的には、本変更例3として、入力画像がインタレース画像の場合の符号化処理及び復号処理の一例について説明する。
本変形例3では、入力画像がインタレース画像の場合、図12のように、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、Topフィールドとその直後のBottomフィールドとがペアとなるように符号化処理が行われる。
図12の例では、フィールド番号は0から始まることとする、すなわち、Fi0から始まることとする。
ここで、解析部400が、対象の入力画像がインタレース画像であるかどうかについて判定し、かかる判定結果について制御部500に出力するように構成されていてもよい。
例えば、解析部400は、予め取り得る解像度及び当該解像度がインタレース画像或いはプログレッシブ画像のいずれに対応するかという情報を定義しておき、入力画像の解像度及びかかる情報に基づいて、対象の入力画像がインタレース画像かプログレッシブ画像かについて判断してもよい。
或いは、ユーザが、UI部600を介して、対象の入力画像がインタレース画像であるかどうかについて指定してもよい。ここで、UI部600を介しユーザによって指定された情報(インタレース/プログレッシブ)は、制御部500へ出力される。
制御部500は、解析部400又はUI部600から出力された情報を入力とし、対象の入力画像がインタレース画像である場合、図12のように、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、Topフィールドとその直後のBottomフィールドとがペアとなるように制御データを設定し、画像符号化部100へ出力するように構成されている。
画像符号化部100は、かかる制御データを符号化してビットストリームとして出力するように構成されている。
ここで、画像符号化部100は、かかる制御データについて、非特許文献2に定義されているFrame-field information SEI messageとして符号化してもよい。
図13は、かかる制御データについてFrame-field information SEI messageとして符号化する場合の各シンタックスエレメントの設定値の一例を示している。
別の例として、画像符号化部100は、入力画像がインタレース画像の場合、図14のように、偶数ラインがTopフィールドとなり、奇数ラインがBottomフィールドとなるように、2つのインタレース(フィールド)画像を合成して1つのフレーム画像を生成し、符号化してもよい。
ここで、図14の例において、最初のラインは、0ライン目とする。フィールド画像からフレーム画像を生成する処理は、例えば、前処理部300で実行されてもよい。
制御部500が、UI部600から入力される設定情報に基づき、フィールド画像からフレーム画像を生成するか否かについて制御情報として、前処理部300へ入力してもよい。図15に、この時のFrame-field information SEI messageの設定例について示す。
また、画像符号化部100は、入力画像がインタレース画像の場合、制御データとして非特許文献1に記載のsps_field_flagの値を1として符号化してもよい。
以上が、本変形例3に係る画像符号化装置10における処理について説明した。以下、画像復号装置20における処理について説明する。
画像復号部200は、ビットストリームから制御データを復号し、上述のsps_field_flagの値及びFrame-field information SEI messageの値を得るように構成されている。
ここで、画像復号部200は、sps_field_flagの値が1で、かつ、sps_field_flagの値及びFrame-field information SEI messageの設定値が図13又は図15の設定値と異なる場合に、エラーを出力するように構成されていてもよい。
また、画像復号部200は、sps_field_flagの値が1で、かつ、sps_field_flagの値及びFrame-field information SEI messageの設定値が図13又は図15の設定値と異なる場合であっても、復号画像信号がフィールド画像である場合は、図13の設定値である場合の復号動作を行い、復号画像信号がフレーム画像である場合は、図15の設定値である場合の復号動作を行うように構成されていてもよい。
ここで、画像復号部200は、復号画像信号がフィールド画像であるかどうかについて、制御データに含まれる復号画像信号の解像度又はUI部1000から出力される設定情報を基に判別する。
すなわち、本変更例3において、画像符号化装置10は、入力画像がインタレース画像である場合、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、TopフィールドとTopフィールドの直後のBottomフィールドとがペアとなるように、符号化処理を行うように構成されている画像符号化部100を備える。
ここで、画像符号化部100は、入力画像がインタレース画像である場合、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、TopフィールドとTopフィールドの直後のBottomフィールドとがペアとなるように、Frame-field information SEI messageの値を設定して制御データとして符号化してビットストリームを生成するように構成されていてもよい。
また、画像符号化装置10は、入力画像がインタレース画像であるかどうかについて設定するように構成されているUI部600と、UI部600から出力される設定情報を基に符号化処理を制御する制御情報を出力するように構成されている制御部500とを備えていてもよい。
ここで、画像符号化部100は、かかる制御情報に基づいて、入力画像がインタレース画像であるか否かについて判定するように構成されていてもよい。
また、本変更例3において、画像復号装置20は、ビットストリームから復号した制御データのうち、sps_field_flagの値が1であるとき、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、TopフィールドとTopフィールドの直後のBottomフィールドとがペアとなるように、復号処理を行うように構成されている画像復号部200を備える。
ここで、画像復号部200は、ビットストリームから復号した制御データに基づいて、Frame-field information SEI messageの設定値が、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、TopフィールドとTopフィールドの直後のBottomフィールドとがペアとなるように設定されていないと判定した場合であっても、偶数フィールドがTopフィールドとなり、奇数フィールドがBottomフィールドとなり、かつ、TopフィールドとTopフィールドの直後のBottomフィールドとがペアとなるように、復号処理を行うように構成されていてもよい。
(変形例4)
以下、図16及び図17を参照して、本発明の変更例4について、上述の第1の実施形態及び変更例1~3との相違点に着目して説明する。具体的には、本変更例4として、上述のRPRを用いて、非特許文献1で規定されるH.266 Main profileで定義されている符号化技術のみを用いて疑似的に空間スケーラビリティを実現する場合の符号化処理及び復号処理を説明する。
第1に、画像符号化装置10における処理について説明する。具体的には、変形例4において、図16のように入力画像が入力されてくる場合を例に説明する。
本変更例4において、図17に示すように、入力された各フレーム(Fr0~Fr3)に対してダウンサンプリング処理を施した画像(Fr0’~Fr3’)が生成される。かかるダウンサンプリング処理は、例えば、前処理部300で実行されてもよい。
UI部600から制御部500に対して、本変形例4における疑似的な空間スケーラビリティを実施するかを示す設定情報が出力され、制御部500が、前処理部300に対して、かかる設定情報を制御情報として出力するように構成されていてもよい。
前処理部300は、かかる制御情報を基にダウンサンプリング処理を実施してもよい。
すなわち、前処理部300は、図17のように、入力画像(Fr0~Fr3)から低解像度の画像(Fr0‘~Fr3’)を生成するように構成されている。
画像符号化部100は、入力画像(Fr0~Fr3)から生成された低解像度の画像(Fr0’~Fr3’)をそれぞれ入力として符号化処理を行うように構成されている。
ここで、図17における各Fr/Fr’に向かう矢印は、インター予測部111において用いられる参照関係の例を示している。
例えば、図17において、Fr3’は、参照フレームとしてFr0’を用いることを示している。同様に、図17において、Fr1は、参照フレームとしてFr0、Fr3、Fr1’を用いることを示している。
ここで、図17に示すように、低解像度画像(Fr0’~Fr3’)は、参照フレームとして低解像度画像(Fr0’~Fr3’)のみを使用する。
一方、高解像度画像(Fr0~Fr3)は、高解像度画像及び低解像度画像の両方を参照フレームとして使用することができる。
高解像度画像は、対象のフレームに対してダウンサンプリング処理を実行して得られた低解像度画像(例えば、Fr0の場合は、Fr0’)を参照フレームとして用いる。
なお、図17に示す参照フレームの関係は、あくまで一例である。上記のうち、「低解像度画像(Fr0’~Fr3’)は、参照フレームとして低解像度画像(Fr0’~Fr3’)のみを使用する」及び「高解像度画像は、対象のフレームに対してダウンサンプリング処理を実行して得られた低解像度画像(例えば、Fr0の場合は、Fr0’)を参照フレームとして用いる」という制約が満たされていれば、インター予測部111は、図17以外の参照関係を用いることができる。
画像符号化部100は、参照フレームの解像度と符号化対象フレームの解像度とが異なる場合、上述の例と同様にRPRを用いる。
この時、画像符号化部100は、制御データとして、非特許文献1で定義されているTemporalIdの値が、図17の通りになるように設定し、ビットストリームを生成してもよい。
すなわち、画像符号化部100は、低解像度画像のフレームがTemporalId=0となり、高解像度画像のフレームがTemporalId=1となるように符号化してもよい。
なお、TemporalIdの設定値は、あくまで一例であり、低解像度画像のTemporalIdより、高解像度画像のTemporalIdが大きくなるように設定されていればよい。
また、以上では、高解像度画像が入力画像そのものを利用する場合を例に説明したが、画像符号化部100は、低解像度画像をアップサンプリングした画像と入力画像との誤差画像を高解像度画像として符号化してもよい。
第2に、画像復号装置20における処理について説明する。
抽出部700は、ビットストリームから実際に復号するデータのみを抽出するように構成されている。
かかる抽出には、例えば、上述のTemporalIDの値が使用され得る。すなわち、抽出部700は、制御部900から、復号するTemporalIdの最大値を取得し、かかる最大値以下のTemporalIdを有するフレームのビットストリームのみを、画像復号部200へ出力するように構成されていてもよい。
例えば、低解像度画像のフレームがTemporalId=0となり、高解像度画像のフレームがTemporalId=1となるように符号化されている場合、抽出部700は、上述の最大値を0とした場合は、低解像度画像のみに関するビットストリームを抽出し、かかる最大値を1とした場合は、低解像度画像及び高解像度画像の両方を含むビットストリームを抽出することになる。
ここで、抽出部700は、かかる最大値について、UI部1000からの設定情報に基づいて決定してもよい。また、かかる最大値について、画像復号装置20毎に予めどの値にするかを設定しておいてもよい。
高解像度画像も復号される場合、インター予測部241は、参照フレームの解像度と復号対象フレームの解像度とが異なる場合は、RPRを使用する。
高解像度画像も復号される場合、後処理部800は、低解像度画像の復号画像を破棄して、高解像度画像の復号画像のみを出力するように構成されている。
また、高解像度画像として低解像度画像をアップサンプリングした画像と入力画像との誤差画像が用いられる場合は、後処理部800は、低解像度画像をアップサンプリングし、高解像度の誤差画像の復号画像と加算することで、最終的な高解像度画像の復号画像を生成する。
その後、上述と同様に、後処理部800は、低解像度画像を破棄し、高解像度画像の復号画像のみを出力する。
アップサンプリング方法は、上述の例と同様に、画像符号化装置10によって指定された方法やパラメータに基づいて実施されてもよいし、予め定めたアップサンプリング方法で実施されてもよい。
画像符号化装置10がアップサンプリング方法を指定する場合、画像符号化装置10は、画像符号化装置10と画像復号装置20とで同一のアップサンプリング処理を行うように指定してもよい。
高解像度画像が復号されない場合は、後処理部800は、画像復号部200から出力された低解像度画像の復号画像を、そのまま出力とするように構成されていてもよい。
すなわち、本変更例4に係る画像符号化装置10において、画像符号化部100は、高解像度画像に対してダウンサンプリング処理を行うことで低解像度画像を生成するように構成されており、低解像度画像のみを参照してインター予測を行うように構成されており、高解像度画像については同一時刻の低解像度画像を参照し、かつ、RPR処理を用いてインター予測を行うように構成されている。
ここで、画像符号化部100は、高解像度画像のTemporalIDが低解像度画像のTemporalIdより大きな値になるように設定し符号化を行うように構成されていてもよい。
また、本変更例4に係る画像復号装置20において、画像復号部200は、 同一時刻の高解像度画像及び低解像度画像を異なるフレームとして復号し、復号対象フレームの解像度と参照フレームの解像度とが異なる場合、RPR処理を用いてインター予測を行うように構成されている。
ここで、画像復号装置20は、TemporalIDに基づいて低解像度画像のみを復号するか、或いは、低解像度画像及び高解像度画像の両方を復号するかを制御するように構成されている制御部900を備えてもよい。
さらに、画像復号装置20は、低解像度画像及び高解像度画像の両方が復号された場合、かかる低解像度画像を破棄して、かかる高解像度画像のみを出力するように構成されている後処理部800を備えてもよい。
また、上述の画像符号化装置10及び画像復号装置20は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
なお、上記の各実施形態及び変更例では、本発明を画像符号化装置10及び画像復号装置20への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、画像符号化装置10及び画像復号装置20の各機能を備えた画像符号化/復号システムにも同様に適用できる。