【解決手段】学習装置1は、符号化装置又は復号装置のループフィルタを制御する学習モデル13のパラメータを学習するものであり、学習画像をフレーム単位で取得するフレーム取得部10と、学習画像にループフィルタの適否を示す教師データを取得する教師データ取得部11と、学習画像を学習モデル13に入力して得られた判定結果と教師データとの誤差を算出し、算出した誤差が最小となるように学習モデル13のパラメータを更新する学習部12と、を備える。
  前記ピーク信号対雑音比算出部は、前記デブロッキングフィルタ処理で選択するストロングフィルタ又はウィークフィルタを示すモード毎に、符号化及び復号する前後の前記学習画像の間でピーク信号対雑音比を算出し、
  前記教師データ生成部は、前記ピーク信号対雑音比が最大となるモードで前記デブロッキングフィルタ処理の強弱を示す前記教師データを生成し、
  前記学習部は、前記デブロッキングフィルタ処理の強弱を制御する前記学習モデルのパラメータを学習することを特徴とする請求項2に記載の学習装置。
【発明を実施するための形態】
【0022】
  以下、本発明の各実施形態について図面を参照して説明する。但し、以下に説明する実施形態は、本発明の技術思想を具体化するためのものであって、特定的な記載がない限り、本発明を以下のものに限定しない。また、各実施形態において、同一の手段には同一の符号を付し、説明を省略することがある。
 
【0023】
(第1実施形態)
[学習装置の構成]
  
図1を参照し、第1実施形態に係る学習装置1の構成について説明する。
  以下の各実施形態では、2次元符号化方式がHEVC/H.265であり、ループフィルタ4(
図6)をデブロッキングフィルタ処理及びSAO処理で構成したものとして説明する。
 
【0024】
  学習装置1は、後記する符号化装置2や復号装置5が備えるループフィルタ4の適否を制御する学習モデル13のパラメータを学習するものである。
図1に示すように、学習装置1は、フレーム取得部(学習画像入力部)10と、教師データ取得部(教師データ入力部)11と、学習部12とを備える。
  なお、「ON」はループフィルタ4を適用することを示し、「OFF」はループフィルタ4を適用しないことを示す。
 
【0025】
  フレーム取得部10は、学習画像を取得(入力)し、取得した学習画像を学習部12に出力するものである。例えば、フレーム取得部10としては、学習画像をフレーム単位で記憶するフレームメモリがあげられる。
 
【0026】
  ここで、学習画像とは、学習モデル13のパラメータの学習に用いる2次元画像(動画像)のことであり、その内容は特に制限されない。例えば、学習画像として、既知のデータセットを用いることができる。
 
【0027】
  教師データ取得部11は、学習画像の教師データをフレーム単位で取得(入力)し、取得した教師データを学習部12に出力するものである。
  ここで、教師データは、学習画像の画質評価指標に基づいて予め算出された、学習画像にループフィルタ4の適否を示すデータである。また、画質評価指標とは、学習画像の画質を評価する指標のことであり、例えば、ピーク信号対雑音比(PSNR:peak signal-to-noise ratio)である。なお、教師データの生成手法は、詳細を後記する。
 
【0028】
  ループフィルタ4の適否は、デブロッキングフィルタ処理及びSAO処理それぞれのON/OFFを組み合わせた4パターンとなる。従って、教師データは、
図2に示すように、デブロッキングフィルタ処理及びSAO処理それぞれのON/OFFを示す4パターンで表される。具体的には、教師データは、デブロッキングフィルタ処理及びSAO処理の両方がONの「1,0,0,0」、デブロッキングフィルタ処理のみONの「0,1,0,0」、SAO処理のみONの「0,0,1,0」、デブロッキングフィルタ処理及びSAO処理の両方がOFFの「0,0,0,1」という、1−of−Kベクトルで表される。この1−of−Kベクトルでは、「1」がONを示し、「0」がOFFを示す。
  なお、
図2では、デブロッキングフィルタ処理を「DF」、SAO処理を「SAO」と略記した。
 
【0029】
  学習部12は、学習画像を学習モデル13に入力して得られた判定結果と教師データとの誤差を算出し、算出した誤差が最小となるように学習モデル13のパラメータを更新するものである。
図1に示すように、学習部12は、学習モデル13と、誤差算出部14とを備える。
 
【0030】
  学習モデル13は、ループフィルタ4の適否を判定するものであり、そのモデル自体は特に制限されない。例えば、学習モデル13は、一般的な学習用のニューラルネットワークで構成できる。
図3には、ニューラルネットワーク9の一例を図示した。このニューラルネットワーク9は、入力層90、1層以上の隠れ層91、及び、出力層92で構成されており、重みやバイアスといったパラメータを有する。また、学習モデル13は、畳み込みニューラルネットワーク(CNN:Convolution Neural Network)としてもよい。この畳み込みニューラルネットワークは、畳み込み層、活性化層、プーリング層、及び、ソフトマックス層で構成されている(不図示)。本実施形態では、学習モデル13が畳み込みニューラルネットワークで構成されていることとする。
 
【0031】
  学習モデル13が出力する判定結果は、学習画像に対する4の適否を示す。つまり、学習モデル13の判定結果は、デブロッキングフィルタ処理及びSAO処理それぞれのON/OFFを示す4パターンに分類される確率を示す。例えば、学習モデル13にある学習画像を入力したときの判定結果が「0.2,0.5,0.1,0.2」の場合を考える。この場合、デブロッキングフィルタ処理及びSAO処理の両方がONの確率が0.2、デブロッキングフィルタ処理のみONの確率が0.5、SAO処理のみONの確率が0.1、デブロッキングフィルタ処理及びSAO処理の両方がOFFの確率が0.2である。
 
【0032】
  誤差算出部14は、学習モデル13が出力した判定結果と教師データとの誤差を算出するものである。ここで、誤差算出部14は、二乗和誤差、交差エントロピー誤差等の一般的な損失関数を用いて、誤差を算出する。例えば、誤差算出部14は、ある学習画像の判定結果「0.2,0.5,0.1,0.2」と、その学習画像の教師データである1−of−Kベクトル「0,1,0,0」との誤差を算出する。
 
【0033】
  すなわち、学習部12は、誤差算出部14で算出した誤差が最小となるように学習モデル13のパラメータ(重み、バイアス)を更新し、最適化したパラメータを符号化装置2や復号装置5に出力する。このとき、学習部12は、所定の回数(例えば、100万回)学習を行ってもよい。また、学習部12は、誤差が所定の値以下になるまで学習を行い、その誤差が所定の値以下になったら学習を終了してもよい。さらに、学習部12は、例えば、100個の教師データを用いてパラメータの更新を10000回繰り返すミニバッチで学習を行ってもよい。
 
【0034】
[学習装置の動作]
  
図4を参照し、学習装置1の動作について説明する。
  
図4に示すように、ステップS1において、フレーム取得部10は、学習画像をフレーム単位で取得する。
  ステップS2において、教師データ取得部11は、学習画像の教師データをフレーム単位で取得する。
 
【0035】
  ステップS3において、学習モデル13は、学習画像を学習モデル13に入力し、学習モデル13から判定結果を取得する。
  ステップS4において、誤差算出部14は、学習モデル13から取得した判定結果と教師データとの誤差を算出する。
  ステップS5において、学習部12は、ステップS4で算出した誤差が最小となるように学習モデル13のパラメータを更新する。
 
【0036】
  ステップS6において、学習部12は、学習を終了するか否かを判定する。例えば、学習部12は、学習回数が所定の値以上になった場合、学習を終了すると判定する。また、学習部12は、ステップS4で算出した誤差が所定の値以下になった場合、学習を終了すると判定してもよい。
 
【0037】
  学習を終了しない場合(ステップS6でNo)、学習装置1は、ステップS3の処理に戻る。
  学習を終了する場合(ステップS6でYes)、学習装置1は、ステップS7の処理に進む。
 
【0038】
  ステップS7において、学習部12は、学習画像の全フレームが終了したか否かを判定する。
  全フレームが終了していない場合(ステップS7でNo)、学習装置1は、ステップS1の処理に戻り、学習画像の次フレームを取得する。
  全フレームが終了した場合(ステップS7でYes)、学習装置1は、処理を終了する。
 
【0039】
[作用・効果]
  以上のように、学習装置1は、様々な画像に対してループフィルタ4の適否を制御できる学習モデル13のパラメータを学習できる。そして、後記する符号化装置や復号装置では、この最適なパラメータが反映された学習モデル31(
図7)を用いるので、不要な画像にまでループフィルタ4を適用してしまう事態を防止し、ループフィルタ4の処理量を抑制できる。
 
【0040】
(変形例1)
  
図5を参照し、変形例1に係る学習装置1Bについて、第1実施形態と異なる点を説明する。この学習装置1Bは、学習画像から教師データを生成する点が第1実施形態と異なる。
 
【0041】
  図5に示すように、学習装置1Bは、フレーム取得部10Bと、教師データ取得部11と、学習部12と、PSNR算出部(ピーク信号対雑音比算出部)15と、教師データ生成部16とを備える。なお、教師データ取得部11及び学習部12は、第1実施形態と同様のため、説明を省略する。
 
【0042】
  ここで、デブロッキングフィルタ処理及びSAO処理それぞれの適否が異なる4パターン分、学習画像(原画像)を符号化及び復号した符号化画像を予め生成しておく。つまり、デブロッキングフィルタ処理及びSAO処理の両方がONの符号化画像と、デブロッキングフィルタ処理のみONの符号化画像と、SAO処理のみONの符号化画像と、デブロッキングフィルタ処理及びSAO処理の両方がOFFの符号化画像とを予め生成しておく。
 
【0043】
  フレーム取得部10Bは、学習画像及び符号化画像をフレーム単位で取得する。そして、フレーム取得部10Bは、取得した学習画像を学習部12に出力し、取得した学習画像及び符号化画像をPSNR算出部15に出力する。
 
【0044】
  PSNR算出部15は、デブロッキングフィルタ処理及びSAO処理それぞれの適否が異なる4パターン分について、符号化及び復号する前後の学習画像の間でピーク信号対雑音比を算出するものである。そして、PSNR算出部15は、4パターン分のピーク信号対雑音比を教師データ生成部16に出力する。
 
【0045】
  ここで、PSNR算出部15は、フレーム取得部10Bから入力した学習画像(原画像)と4パターン分の符号化画像との間でピーク信号対雑音比を算出する。具体的には、PSNR算出部15は、デブロッキングフィルタ処理及びSAO処理の両方がONの符号化画像と学習画像との間でピーク信号対雑音比を算出する。また、PSNR算出部15は、デブロッキングフィルタ処理のみONの符号化画像と学習画像との間でピーク信号対雑音比を算出する。また、PSNR算出部15は、SAO処理のみONの符号化画像と学習画像との間でピーク信号対雑音比を算出する。さらに、PSNR算出部15は、デブロッキングフィルタ処理及びSAO処理の両方がOFFの符号化画像と学習画像との間でピーク信号対雑音比を算出する。
 
【0046】
  なお、ピーク信号対雑音比は、主要な符号化方式の符号化制御(レート−ひずみの最適化)で多数採用されている。さらに、ピーク信号対雑音比を改善すれば、画質が向上すると考えられる。そこで、本実施形態では、画質評価指標としてピーク信号対雑音比を用いることとした。
 
【0047】
  教師データ生成部16は、PSNR算出部15から入力したピーク信号対雑音比が最大となるパターンで、デブロッキングフィルタ処理及びSAO処理それぞれの適否を示す教師データを生成するものである。例えば、4パターン分のピーク信号対雑音比のうち、デブロッキングフィルタ処理のみONのピーク信号対雑音比が最大の場合を考える。この場合、教師データ生成部16は、教師データとして、デブロッキングフィルタ処理のみONを示す1−of−Kベクトル「0,1,0,0」を生成する。そして、教師データ生成部16は、生成した教師データを教師データ取得部11に出力する。
 
【0048】
  なお、2パターン以上でピーク信号対雑音比が同一となる場合もある。この場合、教師データ生成部16は、処理時間が最短となるパターンで、デブロッキングフィルタ処理及びSAO処理それぞれの適否を示す教師データを生成すればよい。
 
【0049】
[作用・効果]
  以上のように、学習装置1Bは、第1実施形態と同様の効果に加え、学習画像の教師データを生成できるので、学習モデル13のパラメータを効率よく学習できる。
 
【0050】
(第2実施形態)
[符号化装置の構成]
  
図6を参照し、第2実施形態に係る符号化装置2の構成について説明する。
  符号化装置2は、HEVC/H.265等の2次元符号化方式で原画像を符号化するものである。このとき、符号化装置2は、学習装置1から入力した最適パラメータが反映された学習モデル31(
図7)を用いて、原画像に対するループフィルタ4の適否を制御する。
 
【0051】
  ここで、原画像とは、符号化装置2で符号化する前の2次元画像(動画像)であり、その内容は特に制限されない。本実施形態では、原画像が、後記するループフィルタ制御部3の判定対象画像となる。
 
【0052】
  図6に示すように、符号化装置2は、ループフィルタ制御部(ループフィルタ制御装置)3と、ループフィルタ4と、ブロック分割部20と、減算部21と、変換部22と、量子化部23と、エントロピー符号化部24と、逆量子化・逆変換部25と、合成部26と、動き検出部27と、予測部28とを備える。なお、ループフィルタ制御部3及びループフィルタ4以外の各手段は、一般的なものであるため、簡単に説明する。
 
【0053】
  ブロック分割部20は、ループフィルタ制御部3から入力した原画像をブロックに分割するものである。例えば、ブロックのサイズは、32×32画素、16×16画素、8×8画素、又は、4×4画素である。ブロックの形状は正方形に限らず、長方形であってもよい。HEVC/H.265の場合、ブロック分割部20は、原画像を符号化ツリーユニット(CTU)というブロックに分割した後、各CTUを符号化ユニット(CU)というブロックに分割する。
 
【0054】
  減算部21は、ブロック分割部20から入力したブロックと予測部28から入力した予測画像(予測ブロック)との間で画素単位の差分を示す予測残差を算出するものである。具体的には、減算部21は、ブロックの各画素値から予測画像の各画素値を減算することで、予測残差を算出する。
 
【0055】
  変換部22は、減算部21から入力した予測残差に対して直交変換を行って変換係数を算出するものである。具体的には、変換部22は、離散コサイン変換、離散サイン変換、カルーネンレーブ変換等の直交変換を行うことで変換係数を算出する。
 
【0056】
  量子化部23は、変換部22から入力した変換係数を量子化パラメータ(Qp)及び量子化行列を用いて量子化し、量子化変換係数を算出するものである。この量子化パラメータは、ブロック内の各変換係数に対して共通して適用されるパラメータであって、量子化の粗さを定めるパラメータである。また、量子化行列は、各変換係数を量子化する際の量子化値を要素として有する行列である。
 
【0057】
  エントロピー符号化部24は、量子化部23から入力した量子化変換係数に対してエントロピー符号化を行い、データ圧縮を行って符号化データ(ビットストリーム)を生成するものである。エントロピー符号化には、ハフマン符号やコンテキスト適応型2値算術符号を用いることができる。また、この符号化データは、復号装置5に出力される。
 
【0058】
  なお、エントロピー符号化部24には、ループフィルタ4からフィルタ処理に関する制御情報や、予測部28から予測に関する制御情報が入力されることがある。この場合、エントロピー符号化部24は、これらの制御情報のエントロピー符号化も行う。
 
【0059】
  逆量子化・逆変換部25は、ブロック単位で逆量子化処理及び逆直交変換処理を行うものである。つまり、逆量子化・逆変換部25は、量子化部23の量子化処理に対応する逆量子化処理と、変換部22の直交変換処理に対応する逆直交変換処理とを行う。具体的には、逆量子化・逆変換部25は、量子化部23から入力した量子化変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することで、変換係数を復元する。そして、逆量子化・逆変換部25は、復元した変換係数に対して逆直交変換を行って予測残差を復元する(復元予測残差)。例えば、変換部22が離散コサイン変換を行った場合、逆量子化・逆変換部25は、逆離散コサイン変換を逆直交変換として行う。
 
【0060】
  合成部26は、逆量子化・逆変換部25から入力した復元予測残差と予測部28から入力した予測画像とを画素単位で合成する。具体的には、合成部26は、復元予測残差の各画素値と予測画像の各画素値とを加算してブロックを再構成(復号)する。この再構成画像は、復号画像又はローカル復号画像と呼ばれることがある。
 
【0061】
  動き検出部27は、ブロック分割部20から入力した原画像とフィルタ処理後の再構成画像との間で、ブロック毎に動きベクトルを検出するものである。例えば、動き検出部27は、原画像とフィルタ処理後の再構成画像との間でブロックマッチングを行って、動きベクトルを検出する。
 
【0062】
  予測部28は、ブロック単位で予測を行うものであり、イントラ予測部280と、動き補償部281と、切替部282とを備える。
 
【0063】
  イントラ予測部280は、合成部26から入力した再構成画像のうち、予測対象のブロックに隣接する復号済み参照画素を参照してイントラ予測画像を生成するものである。ことのき、イントラ予測部280は、予め規定された複数のイントラ予測モードの中から、対象ブロックに適用する最適なイントラ予測モードを選択し、選択したイントラ予測モードを用いてイントラ予測を行う。
 
【0064】
  動き補償部281は、動き検出部27から入力した動きベクトル情報に基づいて、フィルタ処理後の再構成画像を参照画像としてインター予測(動き補償)を行うことで、インター予測画像を生成する。具体的には、動き補償部281は、複数の参照画像を用いるインター予測(双予測)や、1つの参照画像を用いるインター予測(片方向予測)の中から、最適なインター予測方法を選択しインター予測を行う。
 
【0065】
  切替部282は、イントラ予測部280から入力したイントラ予測画像と、動き補償部281から入力したインター予測画像とを切り替えて、予測画像として合成26に出力するものである。
 
【0066】
  ループフィルタ制御部3は、外部から入力した原画像(判定対象画像)を用いて、符号化装置2のループフィルタ4を制御するものである。なお、ループフィルタ制御部3の詳細は、後記する。
 
【0067】
  ループフィルタ4は、合成部26から入力した再構成画像に対してフィルタ処理を行うものであり、デブロッキングフィルタ40と、SAO処理部41とを備える。また、ループフィルタ4は、フィルタ処理に関する情報をエントロピー符号化部24に出力する。
 
【0068】
  デブロッキングフィルタ40は、後記するループフィルタ制御部3からの指令に基づいて、デブロッキングフィルタ処理を行うものである。このデブロッキングフィルタ処理は、ブロック単位の処理に起因する信号劣化を軽減する処理であり、隣接するブロックの境界における信号のギャップを平滑化するものである。なお、デブロッキングフィルタ40は、ループフィルタ制御部3からの指令に応じてデブロッキングフィルタ処理をON/OFFする以外、従来と同様である。
 
【0069】
  SAO処理部41は、ループフィルタ制御部3からの指令に基づいて、SAO処理を行うものである。例えば、SAO処理は、HEVC/H.265で採用されている画質改善フィルタ処理である。このSAO処理では、ブロック内の画素の隣接画素との相対的な関係により各画素をカテゴリ分けし、それぞれのカテゴリについて画質を向上させるためのオフセット値を算出し、同じカテゴリに属する各画素にオフセット値を付与する。なお、SAO処理部41は、ループフィルタ制御部3からの指令に応じてSAO処理をON/OFFする以外、従来と同様である。
 
【0070】
[ループフィルタ制御部の構成]
  
図7を参照し、ループフィルタ制御部3の構成を説明する。
  
図7に示すように、ループフィルタ制御部3は、判定部30と、制御部32とを備える。
 
【0071】
  判定部30は、最適パラメータが反映された学習モデル31に判定対象画像を入力し、ループフィルタ4の適否を判定するものである。そして、判定部30は、ループフィルタ4の適否を示す制御情報を制御部32に出力する。
 
【0072】
  ここで、学習モデル31は、学習装置1の学習モデル13(
図1)と同一構成である。また、学習モデル31の判定結果は、デブロッキングフィルタ処理及びSAO処理をON/OFFする4パターンのそれぞれに分類される確率を示す。
 
【0073】
  すなわち、判定部30は、判定対象画像を構成する各画素の画素値を学習モデル31に入力し、学習モデル31から判定結果を取得する。そして、判定部30は、判定結果を参照し、4パターンのうちの確率が最大となるパターンで、デブロッキングフィルタ処理及びSAO処理をON/OFFする制御情報を生成する。この制御情報は、
図2の教師データと同様、デブロッキングフィルタ処理及びSAO処理のON/OFFを示す1−of−Kベクトルである。例えば、ある判定対象画像の判定結果が「0.2,0.5,0.1,0.2」の場合、デブロッキングフィルタ処理のみONとなる確率が最大である。この場合、判定部30は、制御情報として、デブロッキングフィルタ処理のみONを示す1−of−Kベクトル「0,1,0,0」を生成する。
 
【0074】
  制御部32は、判定部30の判定結果に基づいて、判定対象画像に対するループフィルタ4の適否を制御するものである。つまり、制御部32は、以下で説明するように、判定部30から入力した制御情報に従って、デブロッキングフィルタ40及びSAO処理部41にON/OFFを指令する。
 
【0075】
<制御部の動作>
  
図8を参照し、制御部32の動作を説明する。
  
図8に示すように、ステップS10において、制御部32は、判定対象画像に対応した制御情報を判定部30から取得する。
 
【0076】
  ステップS11において、制御部32は、制御情報を参照し、デブロッキングフィルタ処理のON/OFFを判定する。
  デブロッキングフィルタ処理がONの場合、制御部32は、ステップS12の処理に進む。
  デブロッキングフィルタ処理がOFFの場合、制御部32は、ステップS13の処理に進む。
 
【0077】
  ステップS12において、制御部32は、制御情報を参照し、SAO処理のON/OFFを判定する。
  SAO処理がONの場合、制御部32は、ステップS14の処理に進む。
  SAO処理がOFFの場合、制御部32は、ステップS15の処理に進む。
 
【0078】
  ステップS13において、制御部32は、制御情報を参照し、SAO処理のON/OFFを判定する。
  SAO処理がONの場合、制御部32は、ステップS16の処理に進む。
  SAO処理がOFFの場合、制御部32は、ステップS17の処理に進む。
 
【0079】
  ステップS14において、制御部32は、デブロッキングフィルタ処理及びSAO処理の両方をONに指令する。
  ステップS15において、制御部32は、デブロッキングフィルタ処理をON、SAO処理をOFFに指令する。
  ステップS16において、制御部32は、デブロッキングフィルタ処理をOFF、SAO処理をONに指令する。
  ステップS16において、制御部32は、デブロッキングフィルタ処理及びSAO処理の両方をOFFに指令する。
 
【0080】
[作用・効果]
  以上のように、符号化装置2は、最適なパラメータが反映された学習モデル31を用いるので、様々な画像に対してループフィルタ4の適否を制御できる。これにより、符号化装置2は、不要な画像にまでループフィルタ4を適用してしまう事態を防止し、ループフィルタ4の処理量を抑制できる。
 
【0081】
(変形例2)
  
図9を参照し、変形例2に係る符号化装置2Bについて、第2実施形態と異なる点を説明する。
  符号化装置2Bは、原画像ではなく再構成画像をループフィルタ制御部3に入力する点が第2実施形態と異なる。つまり、符号化装置2Bは、ループフィルタ制御部3の配置が第2実施形態と異なる。
 
【0082】
  図9に示すように、符号化装置2Bは、ループフィルタ制御部3と、ループフィルタ4と、ブロック分割部20と、減算部21と、変換部22と、量子化部23と、エントロピー符号化部24と、逆量子化・逆変換部25と、合成部26と、動き検出部27と、予測部28とを備える。
 
【0083】
  ループフィルタ制御部3は、合成部26の後段に配置されており、合成部26から入力した再構成画像に対して、ループフィルタ4を制御するものである。本実施形態では、再構成画像が、ループフィルタ制御部3の判定対象画像となる。
  なお、ループフィルタ制御部3の配置以外、第2実施形態と同様のため、これ以上の説明を省略する。
 
【0084】
(第3実施形態)
[復号装置の構成]
  
図10を参照し、第3実施形態に係る復号装置5の構成について説明する。
  復号装置5は、符号化装置2から入力した符号化データを復号するものである。このとき、復号装置5は、学習装置1から入力した最適パラメータが反映された学習モデル31(
図7)を用いて、ループフィルタ4の適否を制御する。
 
【0085】
  図10に示すように、復号装置5は、ループフィルタ制御部3と、ループフィルタ4と、エントロピー符号化復号部50と、逆量子化部51と、逆変換部52と、合成部53と、予測部54と、復号画像バッファ55とを備える。
  なお、ループフィルタ制御部3及びループフィルタ4以外の各手段は、一般的なものであるため、簡単に説明する。また、ループフィルタ制御部3及びループフィルタ4は、第2実施形態と同様のため、説明を省略する。
 
【0086】
  エントロピー符号化復号部50は、符号化装置2から入力した符号化データを復号し、量子化変換係数を逆量子化部51に出力するものである。また、エントロピー符号化復号部50は、イントラ予測及びインター予測に関する制御情報を取得し、予測部54に出力する。
 
【0087】
  逆量子化部51は、
図6の量子化部23が行う量子化処理に対応する逆量子化処理を行うものである。具体的には、逆量子化部51は、エントロピー符号化復号部50から入力した量子化変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することで、変換係数を復元する。
 
【0088】
  逆変換部52は、
図6の変換部22が行う直交変換処理に対応する逆直交変換処理を行うものである。具体的には、逆変換部52は、逆量子化部51から入力した変換係数に対して逆直交変換を行って予測残差を復元する(復元予測残差)。
 
【0089】
  合成部53は、逆変換部52から入力した復元予測残差と予測部54から入力した予測画像とを画素単位で合成する。具体的には、合成部53は、復元予測残差の各画素値と予測画像の各画素値とを加算してブロックを再構成(復号)し、ブロック単位で再構成画像を生成する。
 
【0090】
  予測部54は、ブロック単位で予測を行うものであり、イントラ予測部540と、動き補償部541と、切替部542とを備える。
 
【0091】
  イントラ予測部540は、復号画像バッファ55に記憶されている再構成画像を参照し、エントロピー符号化復号部50から入力した制御情報に従ってイントラ予測を行うことで、イントラ予測画像を生成するものである。
 
【0092】
  動き補償部541は、復号画像バッファ55に記憶されている再構成画像を参照画像としてインター予測(動き補償)を行うことで、インター予測画像を生成するものである。具体的には、エントロピー符号化復号部50から入力した制御情報(動きベクトル情報)に従ってインター予測を行う。
 
【0093】
  切替部542は、イントラ予測部540から入力したイントラ予測画像と、動き補償部541から入力したインター予測画像とを切り替えて、予測画像として合成部53に出力するものである。
 
【0094】
  復号画像バッファ55は、ループフィルタ4から入力した再構成画像を記憶するものである。例えば、復号画像バッファ55としては、再構成画像をフレーム単位で記憶するフレームメモリがあげられる。また、復号画像バッファ55は、再構成画像を復号装置5の外部に出力する。
 
【0095】
[作用・効果]
  以上のように、復号装置5は、最適なパラメータが反映された学習モデル31を用いるので、様々な画像に対してループフィルタ4の適否を制御できる。これにより、復号装置5は、不要な画像にまでループフィルタ4を適用してしまう事態を防止し、ループフィルタ4の処理量を抑制できる。
 
【0096】
(変形例3)
  
図11及び
図12を参照し、変形例3に係る学習装置1C及びループフィルタ制御部3Cについて、各実施形態と異なる点を説明する。この変形例3では、画像の各画素の画素値に加え、画像の周波数分解値及び画像特徴量も利用する点が各実施形態と異なる。
 
【0097】
[学習装置]
  
図11に示すように、学習装置1Cは、フレーム取得部10と、教師データ取得部11と、学習部12Cと、周波数分解部17と、画像特徴量算出部18とを備える。なお、フレーム取得部10及び教師データ取得部11は、第1実施形態と同様のため、説明を省略する。
 
【0098】
  周波数分解部17は、フレーム取得部10から入力した学習画像を周波数分解するものである。例えば、周波数分解部17は、学習画像に周波数変換処理を施し、学習画像の各フレームから周波数分解値(空間周波数成分)を算出する。そして、周波数分解部17は、算出した周波数分解値を学習部12Cに出力する。
 
【0099】
  画像特徴量算出部18は、フレーム取得部10から入力した学習画像から画像特徴量を算出するものである。例えば、画像特徴量算出部18は、学習画像から、動きベクトル、エッジ、SIFT、SURF等の画像特徴量を算出する。さらに、画像特徴量算出部18は、2種類以上の画像特徴量を組み合わせた多次元の画像特徴量を算出してもよい。そして、画像特徴量算出部18は、算出した画像特徴量を学習部12Cに出力する。
 
【0100】
  学習部12Cは、学習画像の画素値、周波数分解値及び画像特徴量を学習モデル13に入力して得られた判定結果と教師データとの誤差を算出し、算出した誤差が最小となるように学習モデル13のパラメータを更新するものである。すなわち、学習部12Cは、学習画像を構成する各画素の画素値と、その学習画像の周波数分解値及び画像特徴量とを学習モデル13に入力し、ループフィルタ4の適否を示す判定結果を学習モデル13から取得する。そして、学習部12Cは、その判定結果と教師データとの誤差を誤差算出部14で算出し、その誤差が最小となるように学習モデル13のパラメータを更新し、最適化したパラメータ(最適パラメータ)を出力する。
  なお、教師データは、第1実施形態と同様のため、説明を省略する。すなわち、学習画像の周波数分解値及び画像特徴量からは教師データを生成しない。
 
【0101】
[ループフィルタ制御部]
  
図12に示すように、ループフィルタ制御部3Cは、判定部30Cと、制御部32と、周波数分解部33と、画像特徴量算出部34とを備える。なお、制御部32は、第2実施形態と同様のため、説明を省略する。
 
【0102】
  周波数分解部33は、
図11の周波数分解部17と同様、判定対象画像を周波数分解するものである。そして、周波数分解部33は、算出した周波数分解値を判定部30Bに出力する。
 
【0103】
  画像特徴量算出部34は、
図11の画像特徴量算出部18と同様、判定対象画像から画像特徴量を算出するものである。そして、画像特徴量算出部34は、算出した画像特徴量を判定部30Cに出力する。
 
【0104】
  判定部30Cは、判定対象画像の画素値、周波数分解値及び画像特徴量を学習モデル31に入力し、学習モデル31から判定結果を取得する。そして、判定部30Bは、判定結果を参照し、4パターンのうちの確率が最大となるパターンで、デブロッキングフィルタ処理及びSAO処理をON/OFFする制御情報を生成する。
 
【0105】
[作用・効果]
  以上のように、学習装置1C及びループフィルタ制御部3Cは、画像の画素値の他、画像の周波数分解値及び画像特徴量も利用することで、より高精度にループフィルタ4の適否を制御できる。
 
【0106】
(変形例4)
  
図5及び
図7を参照し、変形例4に係る学習装置1及びループフィルタ制御部3について、各実施形態と異なる点を説明する。この変形例4では、ループフィルタ4の適否に加え、デブロッキングフィルタ処理の強弱も制御する点が各実施形態と異なる。
 
【0107】
[学習装置]
  ここで、デブロッキングフィルタ処理では、ストロングフィルタ又はウィークフィルタの何れかを選択することで、その強弱を変えることができる。そこで、学習画像から、ストロングフィルタ及びウィークフィルタの各モードで符号化及び復号した符号化画像を予め生成しておく。つまり、ストロングフィルタを適用した符号化画像と、ウィークフィルタを適用した符号化画像とを予め生成しておく。
 
【0108】
  図5のPSNR算出部15は、デブロッキングフィルタ処理で選択されるストロングフィルタ又はウィークフィルタのモード毎に、符号化及び復号する前後の学習画像のピーク信号対雑音比を算出する。具体的には、PSNR算出部15は、フレーム取得部10Bから入力した学習画像と各モードの符号化画像との間でピーク信号対雑音比を算出する。まず、PSNR算出部15は、ストロングフィルタを適用した符号化画像と学習画像との間でピーク信号対雑音比を算出する。また、PSNR算出部15は、ウィークフィルタを適用した符号化画像と学習画像との間でピーク信号対雑音比を算出する。
 
【0109】
  教師データ生成部16は、PSNR算出部15から入力したピーク信号対雑音比が最大となるモードで、デブロッキングフィルタ処理の強弱を示す教師データを生成する。例えば、ウィークフィルタよりストロングフィルタを適用したときのピーク信号対雑音比が大きい場合、教師データ生成部16は、教師データとして、ストロングフィルタの選択を示す1−of−Kベクトル「1,0」を生成する。
 
【0110】
  学習部12は、デブロッキングフィルタ処理の強弱を制御する学習モデル13のパラメータを学習する。具体的には、学習部12は、学習画像を学習モデル13に入力して得られた判定結果と、デブロッキングフィルタ処理の強弱を示す教師データとの誤差を算出し、算出した誤差が最小となるように学習モデル13のパラメータを更新する。
 
【0111】
  学習モデル13が出力する判定結果は、学習画像に対するデブロッキングフィルタ処理の強弱を示す。つまり、学習モデル13の判定結果は、学習画像に対して、ストロングフィルタ及びウィークフィルタを選択する確率を示す。例えば、ある学習画像の判定結果が「0.8,0.2」の場合を考える。この場合、ストロングフィルタを選択する確率が0.8、ウィークフィルタを選択する確率が0.2であることを示す。
 
【0112】
  誤差算出部14は、学習モデル13が出力した判定結果と、デブロッキングフィルタ処理の強弱を示す教師データとの誤差を算出するものである。例えば、誤差算出部14は、ある学習画像の判定結果「0.8,0.2」と、その学習画像の教師データである1−of−Kベクトル「1,0」との誤差を算出する。
 
【0113】
[ループフィルタ制御部の構成]
  
図7の判定部30は、最適パラメータが反映された学習モデル31を用いて、デブロッキングフィルタ処理の強弱を判定する。ここで、学習モデル31の判定結果は、判定対象画像に対して、ストロングフィルタ及びウィークフィルタのそれぞれを選択する確率を示す。
 
【0114】
  すなわち、判定部30は、判定対象画像を学習モデル31に入力し、学習モデル31から判定結果を取得する。そして、判定部30は、判定結果を参照し、2モードのうちの確率が最大となるモードで制御情報を生成する。この制御情報は、ストロングフィルタ又はウィークフィルタの選択を示す1−of−Kベクトルである。例えば、ある判定対象画像の判定結果が「0.8,0.2」の場合、ウィークフィルタよりストロングフィルタを選択する確率が大きくなる。この場合、判定部30は、制御情報として、ストロングフィルタの選択を示す1−of−Kベクトル「1,0」を生成する。
 
【0115】
  制御部32は、判定部30の判定結果に基づいて、デブロッキングフィルタ処理の強弱を制御する。具体的には、制御部32は、判定部30から入力した制御情報に従って、デブロッキングフィルタ40にストロングフィルタ又はウィークフィルタの選択を指令する。
 
【0116】
[作用・効果]
  以上のように、変形例4に係る学習装置1及びループフィルタ制御部3は、高精度にデブロッキングフィルタ処理の強弱も制御できる。
 
【0117】
(変形例5)
  
図5及び
図7を参照し、変形例5に係る学習装置1及びループフィルタ制御部3について、各実施形態と異なる点を説明する。この変形例4では、ループフィルタ4の適否に加え、SAO処理のオフセット値も制御する点が各実施形態と異なる。
 
【0118】
  ここで、SAO処理では、適応的にオフセット値を加算することで、符号化劣化を低減できる。そこで、学習画像から、様々なオフセット値のSAO処理で符号化及び復号した符号化画像を予め生成しておく。
 
【0119】
  図5のPSNR算出部15は、SAO処理のオフセット値毎に、符号化及び復号する前後の学習画像のピーク信号対雑音比する。具体的には、PSNR算出部15は、フレーム取得部10Bから入力した学習画像と各オフセット値の符号化画像との間でピーク信号対雑音比を算出する。
 
【0120】
  教師データ生成部16は、ピーク信号対雑音比が最大となるオフセット値を示す教師データを生成する。例えば、教師データ生成部16は、教師データとして、ピーク信号対雑音比が最大となるオフセット値を1、他のオフセット値を0とした1−of−Kベクトルを生成する。
 
【0121】
  学習部12は、SAO処理のオフセット値を制御する学習モデル13のパラメータを学習する。具体的には、学習部12は、学習画像を学習モデル13に入力して得られた判定結果と、SAO処理のオフセット値を示す教師データとの誤差を算出し、算出した誤差が最小となるように学習モデル13のパラメータを更新する。学習モデル13が出力する判定結果は、学習画像に対して、SAO処理で各オフセット値を取る確率を示す。
 
【0122】
  誤差算出部14は、学習モデル13が出力した判定結果と、SAO処理のオフセット値を示す教師データとの誤差を算出する。
 
【0123】
[ループフィルタ制御部の構成]
  
図7の判定部30は、最適パラメータが反映された学習モデル31を用いて、SAO処理のオフセット値を判定する。ここで、学習モデル31の判定結果は、ある判定対象画像に対して、SAO処理で各オフセット値を取る確率を示す。すなわち、判定部30は、判定対象画像を学習モデル31に入力し、学習モデル31から判定結果を取得する。そして、判定部30は、判定結果を参照し、確率が最大となるオフセット値を示す制御情報を生成する。
 
【0124】
  制御部32は、判定部30の判定結果に基づいて、SAO処理のオフセット値を制御する。具体的には、制御部32は、判定部30から入力した制御情報が示すオフセット値によるSAO処理をSAO処理部に指令する。
 
【0125】
[作用・効果]
  以上のように、変形例5に係る学習装置1及びループフィルタ制御部3は、高精度にSAO処理のオフセット値も制御できる。
 
【0126】
  以上、本発明の各実施形態を詳述してきたが、本発明はこれらに限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
  前記した各実施形態では、画質評価指標がピーク信号対雑音比であるものとして説明したが、これに限定されない。例えば、画質評価指標として、SSIM(structural similarity)を用いてもよい。
 
【0127】
  前記した各実施形態では、2次元符号化方式がHEVC/H.265であるものとして説明したが、これに限定されない。例えば、2次元符号化方式が、VVC/H.266であってもよい。
  前記した各実施形態では、デブロッキングフィルタ処理及びSAO処理という2種類のループフィルタを説明したが、これに限定されない。例えば、VVC/H.266のようなALF(Adaptive Loop Filter)処理を追加し、3種類のループフィルタとしてもよい。
 
【0128】
  前記した各実施形態では、符号化装置又は復号装置がループフィルタ制御部を備えるものとして説明したが、これに限定されない。つまり、ループフィルタ制御部は、独立したループフィルタ制御装置として実装することもできる。
 
【0129】
  また、コンピュータが備えるCPU、メモリ、ハードディスク等のハードウェア資源を、前記した学習装置又はループフィルタ制御装置として動作させるプログラムで実現することもできる。これらのプログラムは、通信回線を介して配布してもよく、CD−ROMやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。