(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】分割パターン決定装置、分割パターン決定方法、学習装置、学習方法およびプログラム
(51)【国際特許分類】
H04N 19/119 20140101AFI20241021BHJP
H04N 19/136 20140101ALI20241021BHJP
H04N 19/176 20140101ALI20241021BHJP
【FI】
H04N19/119
H04N19/136
H04N19/176
(21)【出願番号】P 2020079325
(22)【出願日】2020-04-28
【審査請求日】2023-04-17
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】宮内 大
【審査官】坂東 大五郎
(56)【参考文献】
【文献】特開2018-182531(JP,A)
【文献】国際公開第2020/061008(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
所定の領域ごとに分割パターンが階層構造で表される画像が入力され、入力された前記画像に基づいて、前記所定の領域ごとに、該所定の領域のうちの複数のブロックのそれぞれに対してブロックサイズを示す値が対応付けられた階層マップを生成する生成手段と、
生成した前記階層マップに基づいて、前記画像の分割パターンを決定する決定手段と、
を備え
、
前記生成手段は、機械学習された学習モデルを用いて、前記階層マップを生成することを特徴とする分割パターン決定装置。
【請求項2】
前記階層マップのうち、前記階層構造の階層間で不整合が生じているブロックがある場合、該ブロックおよび該ブロックの周辺の複数のブロックに基づいて、前記不整合を補正する補正手段、をさらに備えることを特徴とする請求項
1に記載の分割パターン決定装置。
【請求項3】
前記補正手段は、前記階層構造の階層が所定階層より浅いブロックについて、分割する階層を深くする補正を行うことを特徴とする請求項
2に記載の分割パターン決定装置。
【請求項4】
前記学習モデルは、ニューラルネットワークであり、
前記ニューラルネットワークは、誤差逆伝搬法を用いて機械学習されることを特徴とする請求項
1に記載の分割パターン決定装置。
【請求項5】
前記ニューラルネットワークは、複数の畳み込み部と複数のプーリング部とを有し、前記畳み込み部は、前記所定の領域の周辺画素を合わせて畳み込むことを特徴とする請求項
4に記載の分割パターン決定装置。
【請求項6】
前記生成手段は、前記ニューラルネットワークの出力が浮動小数点である場合、前記浮動小数点を、前記ブロックのサイズを示す整数値に変換することを特徴とする請求項
4または
5に記載の分割パターン決定装置。
【請求項7】
前記画像は、HEVC規格により符号化される動画像を構成する画像であることを特徴とする請求項1乃至
6のうち何れか1項に記載の分割パターン決定装置。
【請求項8】
所定の領域ごとに分割パターンが階層構造で表される画像が入力され、入力された前記画像に基づいて、前記所定の領域ごとに、該所定の領域のうちの複数のブロックのそれぞれに対してブロックサイズを示す値が対応付けられた階層マップを生成する工程と、
生成した前記階層マップに基づいて、前記画像の分割パターンを決定する工程と、
を備え
、
前記生成する工程では、機械学習された学習モデルを用いて、前記階層マップが生成されることを特徴とする分割パターン決定方法。
【請求項9】
所定の領域ごとに分割パターンが階層構造で表される学習用の画像が入力され、入力された前記画像に基づいて、前記所定の領域ごとに、該所定の領域のうちの複数のブロックのそれぞれに対してブロックサイズを示す値が対応付けられた階層マップを
、機械学習された学習モデルを用いて、生成する生成手段、を備え、
前記学習用の画像に対応する教師データと前記階層マップとの平均二乗誤差が小さくなるように機械学習を行うことを特徴とする学習装置。
【請求項10】
所定の領域ごとに分割パターンが階層構造で表される学習用の画像が入力され、入力された前記画像に基づいて、前記所定の領域ごとに、該所定の領域のうちの複数のブロックのそれぞれに対してブロックサイズを示す値が対応付けられた階層マップを
、機械学習された学習モデルを用いて、生成する工程と、
前記学習用の画像に対応する教師データと前記階層マップとの平均二乗誤差が小さくなるように機械学習を行う工程と、
を備えることを特徴とする学習方法。
【請求項11】
コンピュータを、請求項1乃至
7のうち何れか1項に記載の分割パターン決定装置の各手段
として機能させるための、コンピュータが読み取り可能なプログラム。
【請求項12】
コンピュータを、請求項
9に記載の学習装置の各手段
として機能させるための、コンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分割パターン決定装置、分割パターン決定方法、学習装置、学習方法およびプログラムに関する。
【背景技術】
【0002】
動画像符号化の標準規格として、H.265/HEVC(High Efficiency Video Coding)(以下、「HEVC」)が2013年に標準化されている。HEVCでは、符号化対象画像は、64画素×64画素サイズのブロックであるCTU(Coding Tree Unit)の単位で分割される。そして、CTUごとに符号化処理が行われる。HEVCでは、CTUは、符号化単位であるCU(Coding Unit)に再帰的に分割される。ここで、CTUにおけるCUの分割パターンを決定するための演算量は膨大になる。
【0003】
そこで、CTUにおけるCUの分割パターンを決定するために、機械学習されたニューラルネットワーク等の学習モデルを利用して、CUの分割パターンを推論することが考えられる。しかしながら、CTUにおけるCUの全ての分割パターンを網羅する場合、出力パターンの数が膨大な数になるという問題がある。また、機械学習の際には、膨大な数の教師データを予め用意しておく必要があるという問題もある。
【0004】
関連する技術として、特許文献1の技術が提案されている。特許文献1の技術では、四分木データ構造で21通りの出力ラベルが正解ラベルに近づくよう、学習の際に学習モデルの学習パラメータが更新される。そして、分割確率の閾値を超える分割確率を保持しているノードに対応付けられたCUを分割すると決定される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献1の技術では、21通りの出力ラベルが正解ラベルに近づくように、機械学習が行われている。従って、分割パターンを決定する際の演算量は、依然として多いという問題がある。
【0007】
本発明は、画像の分割パターンを決定する際の演算量を低減することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の分割パターン決定装置は、所定の領域ごとに分割パターンが階層構造で表される画像が入力され、入力された前記画像に基づいて、前記所定の領域ごとに、該所定の領域のうちの複数のブロックのそれぞれに対してブロックサイズを示す値が対応付けられた階層マップを生成する生成手段と、生成した前記階層マップに基づいて、前記画像の分割パターンを決定する決定手段と、を備え、前記生成手段は、機械学習された学習モデルを用いて、前記階層マップを生成することを特徴とする。
【発明の効果】
【0009】
本発明によれば、画像の分割パターンを決定する際の演算量を低減することができる。
【図面の簡単な説明】
【0010】
【
図3】第1実施形態の階層マップの一例を示す図である。
【
図4】第1実施形態における中間特徴マップの不整合補正の一例を示す図である。
【
図5】第1実施形態の不整合補正部の処理の流れを示すフローチャートである。
【
図6】第1実施形態の学習装置の一例を示す図である。
【
図7】第2実施形態の不整合補正部の処理の流れを示すフローチャートである。
【
図8】第2実施形態における中間特徴マップの不整合補正方法を示す図である。
【
図9】第3実施形態の分割パターン決定部の一例を示す図である。
【
図10】着目CTUに対する階層ごとの中間特徴マップの一例を示す図である。
【
図11】第3実施形態の不整合補正を説明する図である。
【
図13】特定階層特徴マップの一例を示す図である。
【
図14】演算対象から除外される特定階層特徴マップの一例を示す図である。
【
図15】補正済みの特定階層特徴マップのデータ列の一例を示す図を示す。
【
図16】第5実施形態の学習装置の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0012】
<第1実施形態>
図1は、画像符号化装置100の一例を示す図である。画像符号化装置100は、画像を符号化する装置である。各実施形態では、画像符号化装置100は、動画像を構成する画像を符号化する。画像符号化装置100は、所定のサーバやコンピュータ等であってもよいし、例えば、撮像装置やスマートフォン、タブレット端末等に内蔵されていてもよい。画像符号化装置100は、CPU、RAMおよびROMを有する。ROMに記憶された制御プログラムがRAMに展開され、CPUがRAMに展開された制御プログラムを実行することで、各実施形態の処理が実現される。また、画像符号化装置100は、所定のプログラミング回路により実現されてもよい。
【0013】
画像符号化装置100は、符号化の対象となる画像(符号化対象画像)を、64画素×64画素のサイズであるCTU(Coding Tree Unit)のブロック単位で符号化する。CTUは、所定の領域に対応する。分割パターン決定部101は、フレームメモリ部108が保持している符号化対象画像について分割パターンを決定し、階層構造で再帰的に決定されるCU(Coding Unit)をCTUごとに生成する。
【0014】
画像符号化装置100は、H.265規格(HEVC規格)に準拠した動画像符号化を行う。HEVCでは、CUは、64画素×64画素、32画素×32画素、16画素×16画素または8画素×8画素の何れかで構成される。例えば、画像のうち複雑な領域はCUが小さくサイズ調整され、平坦な領域はCUが大きくサイズ調整される。これにより、符号化効率が向上する。HEVCの場合、CUは、予測単位であるPU(Prediction Unit)や変換単位であるTU(Transform Unit)にさらに分割される。CUサイズやTUサイズが調整されることで、符号化効率が向上する。各実施形態では、PUサイズおよびTUサイズは、CUサイズに応じて一意に決定したサイズであるものとする。PUサイズおよびTUサイズは、PUおよびTUに対する総当たりのコスト計算に基づいて決定されてもよい。なお、符号化対象画像は、HEVC規格に準拠した動画像符号化で符号化される画像には限定されない。
【0015】
分割パターン決定部101は、予め学習済みの係数パラメータを用いて、分割パターンを決定する。以下、ニューラルネットワークの機械学習により更新されるパラメータを、係数パラメータと総称する。分割パターン決定部101は、画像符号化装置100に組み込まれてもよいし、単独の装置として構成されてもよい。分割パターン決定部101は、分割パターン決定装置に対応する。分割パターン決定部101による処理は、例えば、GPU(グラフィックス・プロセッシング・ユニット)により実現されてもよいし、CPUとGPUとの協働動作により実現されてもよい。各実施形態では、分割パターン決定部101は、CTUにおけるCUの分割パターンを決定する。分割パターン決定部101は、PUおよびTUについてもCUと同様に分割パターンを決定してもよい。
【0016】
減算器102は、分割パターン決定部101が出力する画像ブロックと切替部111が出力する予測画像との差分を算出し、算出された差分に基づいて、差分画像データを生成する。直交変換・量子化部103は、生成された差分画像データに直交変換を施し、直交変換後のデータである変換係数に量子化処理を行い、量子化済み変換係数を生成する。エントロピー符号化部104は、量子化済み変換係数にCAVLC(Conte×t-based Adaptive Variable Length Coding)等のエントロピー符号化を施して、符号化データとして出力する。エントロピー符号化部104は、CABAC(Conte×t-based Adaptive Binary Arithmetic Coding)等のエントロピー符号化を施してもよい。また、エントロピー符号化部104は、切替部111から通知される動きベクトルやイントラ予測モードも併せて符号化データとして出力する。
【0017】
逆量子化・逆直交変換部105は、直交変換・量子化部103から通知される量子化済み変換係数を逆量子化して、逆直交変換し、逆変換済みデータを生成する。加算器106は、逆変換済みデータと、切替部から通知される予測画像とを加算することで、再構成画像を生成する。ループフィルタ部107は、再構成画像データにフィルタ処理を施すことで、符号化歪を軽減し、フィルタ処理済みの再構成画像を生成する。フレームメモリ部108は、フィルタ処理済みの再構成画像データを記憶する。フレームメモリ部108は、上述の通り符号化対象画像も記憶する。フィルタ処理済みの再構成画像は、イントラ予測部109に通知され、イントラ予測に用いられる。
【0018】
イントラ予測部109は、フレームメモリ部108に記憶された符号化済みの符号化対象ブロックの周辺の画素データから生成される複数のイントラ予測画像データと符号化対象ブロックとの相関に基づいて、イントラ予測方式を選択する。イントラ予測部109は、選択されたイントラ予測方式を切替部111に通知する。インター予測部110は、フレームメモリ部108に記憶された符号化対象画像の原画像と参照画像との間で、画面間の差分が最小となるような動きベクトルを探索し、探索した動きベクトルを切替部111に通知する。切替部111は、インター予測部110とイントラ予測部109とのそれぞれの予測結果に基づいて、最も差分画像データが小さい予測方式を選択する。以上により、符号化データが生成される。
【0019】
次に、分割パターン決定部101について、説明する。
図2は、分割パターン決定部101の一例を示す図である。特徴抽出部200は、予め学習済みの係数パラメータを用いた、機械学習に基づくフィルタ処理を行う。特徴抽出部200は、生成手段に対応する。特徴抽出部200は、畳み込み部とプーリング部とが交互に積層されて構造を含む畳み込みニューラルネットワーク等のニューラルネットワークであってもよい。畳み込み部は、入力画像(符号化対象画像)または畳み込み処理済みの画像特徴データに対して、予め学習により決定した係数パラメータを用いて畳み込み演算を行い、画像特徴データを生成する。プーリング部は、畳み込み部が出力した画像特徴データにプーリング処理を行う。
【0020】
図2の例では、特徴抽出部200は、畳み込み部201、203、205、207およびプーリング部202、204、206、208で構成されている。ただし、畳み込み部およびプーリング部の数は、
図2の例には限定されない。各畳み込み部はそれぞれ複数のフィルタや複数の畳み込み層を有していてもよい。各プーリング部は、2画素×2画素単位に最大値を取得する最大プーリング層であるが、最大プーリング層には限定されない。また、特徴抽出部200は、プーリング部を含まなくてもよい。中間特徴マップメモリ209は、特徴抽出部200が生成した中間特徴マップを記憶する。中間特徴マップは、不整合補正前の階層マップである。補正手段としての不整合補正部210は、ブロック分割の階層構造が成立するように、CTUごとに中間特徴マップの不整合データを補正し、ブロック分割に関する階層マップを生成する。
【0021】
以上の分割パターン決定部101は、CUの分割パターンを生成する。分割パターン決定部101に入力される画像の解像度は、メモリの制約の範囲内で、CTU以上であれば任意の解像度であってもよい。ただし、特徴抽出部200の畳み込み部の受容野に対応する周辺画素を、着目するCTU(着目CTU)と合わせて畳み込むことが好ましい。この場合、着目CTUだけでなく、その周辺画素の情報も利用できることから、分割パターンを決定する精度が向上する。特徴抽出部200には、符号化対象画像の全面が入力される。そして、各畳み込み部による処理と各プーリング部による処理とがラスタ順に行われる。これにより、特徴抽出部200は、符号化対象画像の全面に対応する階層マップを生成する。
【0022】
中間特徴マップメモリ209に記憶された中間特徴マップは、符号化対象画像のCTUに相当するブロックごとに、不整合補正部210で不整合補正処理される。また、各畳み込み部および各プーリング部の入出力データを記憶するローカルメモリは、各畳み込み部およびプーリング部の内部に設けられているものとする。ただし、各畳み込み部および各プーリング部の入出力データは、任意の記憶部に記憶されてもよい。決定手段としての決定部211は、生成された階層マップに基づいて、CTUにおけるCUの分割パターンを決定する。
【0023】
図3は、第1実施形態の階層マップの一例を示す図である。
図3(a)は、1つのCTUについての階層マップを示している。以下、着目CTUのうち着目する領域を着目領域とする。特徴抽出部200は、CTUにおけるCUの分割パターンを決定するために、各領域の分割パターンの特徴を抽出する。具体的には、特徴抽出部200は、着目CTUの着目領域が、64画素×64画素のブロックであるか、32画素×32画素のブロックであるか、16画素×16画素ブロックであるか、または8画素×8画素ブロックであるかを抽出する。階層マップ値は、上記の何れかのブロックに対応付けられる。階層マップ値は、何れの階層で分割を行うかを示す値であり、分割されたブロックのサイズ(ブロックサイズ)を示す値である。「0」は、着目領域が64画素×64画素であることを示す。の着目領域に対応付けられる。「1」は、着目領域が32画素×32画素であることを示す。「2」は、着目領域が16画素×16画素であることを示す。「3」は、着目領域が8画素×8画素であることを示す。
【0024】
特徴抽出部200は、以上のように、インデックス「0」~「3」を定める。そして、分割パターン決定部101は、符号化対象画像の16画素×16画素を、階層マップの1要素(以下、符号化対象画像の画素と区別するため、階層マップの1画素を1要素と表記する)として階層マップ値を算出する。これにより、2ビットで全ての分割パターンを表現することができる。従って、CTU単位に換算すると、4要素×4要素の計16要素で1つのCTUの分割パターンを表現できる。各要素は、ブロックに対応する。
【0025】
図3(b)~(f)は、CTUあたりの階層マップと分割パターンとの対応関係の例を示している。
図3(b)~(f)において、階層マップ値に対応するCTUの分割イメージの例が示されている。
図3(b)は、全ての階層マップ値が「0」のため、「CTU=CU=64画素×64画素」であり、CTUは分割されない。
図3(c)は、全ての階層マップ値が「1」のため、CTUは、「CU=32画素×32画素×4個」に分割される。
図3(d)は、全ての階層マップ値が「2」であるため、CTUは、「CU=16画素×16画素×16個」に分割される。
図3(e)は、全ての階層マップ値が「3」であるため、CTUは、「CU=8画素×8画素×64個」に分割される。
図3(f)は、1つのCTU内で異なる階層マップ値が組み合わされた分割パターンの一例を示す。階層マップは、中間特徴マップを変換することで得られるマップデータである。機械学習に用いられる教師データは、階層マップと同一の仕様のものが使用される。
【0026】
分割パターン決定部101は、CTUに対して4要素×4要素の階層マップを生成するため、特徴抽出部200は4つのプーリング部を有する構成を採用している。ただし、特徴抽出部200の構成は、
図2の例には限定されない。分割パターン決定部101は、予め縮小させた符号化対象画像を特徴抽出部200に入力してもよいし、CTUあたりの要素が4要素×4要素を超える中間特徴マップから、周辺要素の平均を算出する等して階層マップを生成してもよい。
【0027】
次に、不整合補正について説明する。特徴抽出部200は、例えば、畳み込みニューラルネットワーク等のニューラルネットワークにより構成される。中間特徴マップは、予め深層学習等の機械学習により得られた係数パラメータに基づく、フィルタ処理そのものの結果である。従って、中間特徴マップは浮動小数点の小数精度を有しており、必ずしも階層マップの整数値と一致しない。なお、特徴抽出部200における演算精度は整数の精度であってもよい。この場合、浮動小数点演算と異なり回路規模が削減される。これらの点は、以下の各実施形態で共通である。不整合補正部210は、特徴抽出部200の出力データを、「0」、「1」、「2」または「3」で表現される値に変換する。具体的には、不整合補正部210は、以下の式(1)に基づいて各中間特徴マップの値を変換する。
「y=0 (x<0.5)
y=1 (0.5≦x<1.5)
y=2 (1.5≦x<2.5)
y=3 (2.5≦x)」・・・(1)
xは中間特徴マップが出力する値、yは階層マップのインデックス値へ変換後の中間特徴マップの値である。なお、以上の式において、yを決定するためのxに対する閾値は、上記の値には限定されない。
【0028】
図4は、第1実施形態における中間特徴マップの不整合補正の一例を示す図である。特徴抽出部200は、符号化対象画像の16画素×16画素ごとに階層マップの1要素を生成する。このため、
図4の補正前に示すように、階層構造が成立しない中間特徴マップを生成する場合がある。例えば、
図4では、補正前の中間特徴マップは階層マップ値(以下、マップ値と称することがある)が「0」である要素は、CTU内に2つしか存在しない。しかしながら、CTUを、64画素×64画素のCUとするためには、補正前の4要素×4要素のマップ値は全て「0」である必要がある。
【0029】
また、
図4の階層マップの中には、2要素×2要素(符号化対象画像の32画素×32画素)の中に、マップ値が「1」の要素とマップ値が「2」以上の要素とが共存している(
図4の補正前における左上の2要素×2要素)。この場合、補正前における左上の2要素×2要素の領域については、32画素×32画素のCUに分割するか、または更に分割をして16画素×16画素以下のCUとするかが不明である。そこで、分割パターン決定部101は、
図4の補正後に示すように、上位階層から順に、中間特徴マップの各マップ値の数を比較し、多数決に基づき、不整合が補正された階層マップを生成する。
【0030】
次に、不整合補正部210の処理について説明する。
図5は、不整合補正部210の処理の流れを示すフローチャートである。S501で、不整合補正部210は、特徴抽出部200が出力した出力データを小数精度から整数精度にし、階層マップ値を示すインデックス値へ変換する処理(インデックス化処理)を行う。不整合補正部210は、上述した式(1)を用いて、インデックス化処理を行う。S502で、不整合補正部210は、着目CTUに対応する中間特徴マップにおける4要素×4要素中の各インデックス値について、インデックス値「0」の総数が、インデックス値「1」と「2」と「3」との合計の総数以上であるかを判定する。不整合補正部210は、S502でYESと判定した場合、処理をS503に進める。
【0031】
S503で、不整合補正部210は、着目CTUに対応する中間特徴マップ4要素×4要素中のインデックス値を全て0に変換する。これは、インデックス値が、CTUを分割しないと想定されるためである。不整合補正部210は、S502でNOと判定した場合、処理をS504に進める。S504で、不整合補正部210は、変数i(iは整数)に「0」を代入して初期化する。次に、S505で、不整合補正部210は、変数iの値を判定する。そして、不整合補正部210は、変数iの値に応じて、処理をS506、S507、S508またはS509の何れかに進める。以下、着目CTU内の32画素×32画素に対応する中間特徴マップの2要素×2要素を着目要素領域と表記し、変数iの値に応じて、着目要素領域を設定する。
【0032】
不整合補正部210は、「i=0」である場合、処理をS506に進める。S506で、不整合補正部210は、着目要素領域を、(x,y)=(0,0)を左上要素とした2要素×2要素を着目要素領域に設定する。不整合補正部210は、「i=1」である場合、処理をS507に進める。S507で、不整合補正部210は、着目要素領域を、(x,y)=(2,0)を左上要素とした2要素×2要素を着目要素領域に設定する。不整合補正部210は、「i=2」である場合、処理をS508に進める。不整合補正部210は、「i=3」である場合、処理をS509に進める。S509で、不整合補正部210は、着目要素領域を、(x,y)=(2,2)を左上要素とした2要素×2要素を着目要素領域に設定する。なお、以上の(x,y)は、
図4の4要素×4要素における座標系であり、x軸は左右方向に対応し、y軸は上下方向に対応する。
【0033】
S510で、不整合補正部210は、着目要素領域中のインデックス値について、インデックス値「1」の総数が、インデックス値「2」と「3」との合計の総数以上であるかを判定する(S510)。不整合補正部210は、S510でYESと判定した場合、処理をS511に進める。S511で、不整合補正部210は、着目要素領域(2要素×2要素)中の全ての要素のインデックス値を「1」に変換する。不整合補正部210は、S510でNOと判定した場合、S512の処理を実行することなく、処理をS512に進める。S512で、不整合補正部210は、「i=3」であるかを判定する。
【0034】
不整合補正部210は、S512でYESと判定した場合、
図5の処理を終了させる。一方、不整合補正部210は、S512でNOと判定した場合、処理をS513に進める。S513で、不整合補正部210は、変数iの値をインクリメントする。ここで、上述したように、16画素×16画素は階層マップの1要素である。このため、中間特徴マップの値が「2」または「3」の場合には不整合が生じない。従って、不整合補正部210は、中間特徴マップの値に「0」または「1」が含まれる場合のみ、所定の要素領域内で不整合を補正すればよい。不整合補正部210が
図5の各処理を実行することにより、中間特徴マップから分割パターンを示す階層マップが生成される。
【0035】
上述した例では、CUに着目しているが、より階層の深い分割を行う場合にも本実施形態を適用できる。不整合補正部210が、
図5の着目要素領域を分割対象となる画素位置に合わせて適宜設定し、多数決を行うことで、不整合の補正を行うことができる。以上より、不整合補正部210は、生成された階層マップの階層間に不整合が生じている要素がある場合、不整合が生じている要素の周辺の要素も考慮して不整合を補正する。これにより、階層構造が成立しない中間特徴マップが生成されたとしても、階層構造を成立させることができる。
【0036】
次に、ニューラルネットワークの機械学習について説明する。上述したように、特徴抽出部200は、例えば、畳み込みニューラルネットワーク等のニューラルネットワークにより構成される。ニューラルネットワークのフィルタ演算に用いる重みやバイアス等のパラメータは、多数の学習用の画像が入力されて機械学習されることで、調整される。
【0037】
図6は、第1実施形態の学習装置600の一例を示す図である。学習装置600は、分割パターンを決定するための係数パラメータを学習するための装置である。学習装置600のうち、特徴抽出部200、中間特徴マップメモリ209および不整合補正部210は、
図2と同様であるため、説明を省略する。学習装置600は、特徴抽出部200、中間特徴マップメモリ209および不整合補正部210に加えて、Mse算出部601を有する。学習装置600には、教師データセットから教師データが入力される。また、学習装置600には、入力画像セットから学習用の画像が入力される。教師データと学習用の入力画像とは一対で構成される。
【0038】
各実施形態では、教師データは、JCT-VCが作成したHEVCTestModel(HM)を用いた際にソフトウェア上で算出される、符号化に利用されたCU分割パターンが適用されるものとする。JCT-VCは、Joint Collaborative Team on Video Codingの略称である。教師データは、HMを用いて算出したデータには限定されない。教師データは、
図3で示される階層マップと同様のマップ形式であり、以下、教師階層マップと称する。Mse算出部601は、機械学習が行われる際の損失を取得するため、教師階層マップと不整合補正部210が出力する階層マップとの平均二乗誤差(mse: mean squared error)を算出する。
【0039】
ここでは、不整合補正後のデータに対して、機械学習時の損失を算出する例について説明するが、不整合補正前の中間特徴マップに対して、機械学習時の損失が算出されてもよい。これにより、浮動小数の精度で演算を行うことができる。また、学習装置600は、mseを損失関数とし、誤差逆伝搬法により係数パラメータの変化量である勾配を取得し、パラメータ最適化手法として確率的勾配降下法で係数パラメータを更新する。機械学習における勾配の取得方法やパラメータ最適化手法等については他の方式が適用されてもよい。以上のような機械学習を多くの画像を用いて繰り返し行うことで、ニューラルネットワークの係数パラメータは、教師データの分割パターンに近づくように補正される。
【0040】
従って、第1実施形態では、分割パターン決定部101は、画像(符号化対象画像)の中のCTUの分割パターンを、要素領域ごとに分割要否を示す階層マップとして取得できる。これにより、階層ごとにクラス分類を行う場合と比較して、分割パターンを決定するための演算量を抑制できる。また、分割パターン決定部101は、CTUごとのクラス分類に対して、周辺画素の情報も加味して畳み込みを行う。このため、周辺画素の情報を加味しない場合と比較して、分割パターンの決定の精度を向上させることができる。
【0041】
ここで、学習装置600が、ニューラルネットワークの機械学習を行い、生成された学習済みのニューラルネットワークは、画像符号化装置100の分割パターン決定部101に供給される。例えば、学習装置600と画像符号化装置100とが異なる装置である場合、画像符号化装置100は、学習装置600から、有線通信または無線通信を介して、学習済みのニューラルネットワークを取得する。これにより、分割パターン決定部101は、学習済みのニューラルネットワークを用いて、分割パターンを決定できる。分割パターン決定部101が単独の装置である場合、分割パターン決定部101が、学習装置600から、学習済みのニューラルネットワークを取得してもよい。
【0042】
学習済みのニューラルネットワークは、未知の符号化対象画像が入力されると、推論した階層マップを出力する。また、上述した例では、特徴抽出部200は、学習モデルとしてニューラルネットワークを用いているが、学習モデルとしては、ニューラルネットワーク以外のモデルが用いられてもよい。例えば、サポートベクターマシン等が学習モデルとして用いられてもよい。また、上述した例では、HEVCに準拠した動画像符号化の例について説明したが、階層構成を構成する画像のブロック分割に基づいて符号化を行う任意に手法に、各実施形態を適用することができる。
【0043】
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、不整合補正部210による補正方法が、第1実施形態と異なる。第1実施形態と重複する部分についての説明は省略する。CUの分割において、分割するブロックのサイズが小さくなるほど画質に影響する。従って、ブロックを分割するサイズが小さくなるに応じて、細かい制御が可能になる。そこで、第2実施形態の分割パターン決定部101は、中間特徴マップに基づくインデックス値を、小さいブロックに分割する値を優先して、中間特徴マップの補正を行う。具体的には、第2実施形態の分割パターン決定部101は、各要素のうちインデックス値が所定値以上である場合(階層が所定階層より浅い場合)、インデックス値を大きくする補正(階層を深くする補正)を行う。
【0044】
図7は、第2実施形態の不整合補正部210の処理の流れを示すフローチャートである。S701で、不整合補正部210は、
図5のS501と同様のインデックス化処理を行う。S702で、不整合補正部210は、着目CTUに対応する中間特徴マップ4要素×4要素中のインデックス値について、全ての値が「0」であるかを判定する。不整合補正部210は、S702でYESと判定した場合、
図7の処理を終了させる。一方、不整合補正部210は、S702でNOと判定した場合、処理をS703に進める。S703~S708の各処理は、
図5のS504~S509と同様である。S709で、不整合補正部210は、着目要素領域の中のインデックス値について、全ての値が1以下であるかを判定する。不整合補正部210は、S709でNOと判定した場合、処理をS710に進める。
【0045】
S710で、不整合補正部210は、着目要素領域(2要素×2要素)の中のインデックス値が「1」以下のインデックス値を「2」に変換する。そして、不整合補正部210は、処理をS711に進める。不整合補正部210は、S709でNOと判定した場合も、処理をS711に進める。S711およびS712は、
図5のS512およびS513と同様である。
【0046】
図8は、第2実施形態における中間特徴マップの不整合補正方法を示す図である。
図8の補正前は、
図4の補正前と同様である。第2実施形態では、不整合補正部210は、S710の処理を行うことで、ブロックを分割するサイズを小さくさせることができる。これにより、細かい制御が可能になるため、動画像を構成する画像を符号化する際の画像の画質を向上させることができる。
【0047】
<第3実施形態>
次に、第3実施形態について説明する。第3実施形態は、ブロックサイズごとに複数の中間特徴マップを生成する点で、第1実施形態と異なる。
図9は、第3実施形態の分割パターン決定部101の一例を示す図である。第3実施形態の特徴抽出部900は、畳み込み部901、903、905、907、909、911、913、914、915、およびプーリング部902、904、906、908、910、912を有する。畳み込み部とプーリング部とは交互に積層されている。各畳み込み部は、複数のフィルタや畳み込み層を有していてもよい。特徴抽出部900の構成は、第1実施形態と同様、
図9の例には限定されない。特徴抽出部900は、生成手段に対応する。
【0048】
中間特徴マップメモリ916は、後述する複数の異なる中間特徴マップを記憶する。補正手段としての不整合補正部917は、階層構造が成立するように、CTUごとに中間特徴マップの不整合データを補正し、階層マップを生成する。決定手段としての決定部918は、生成された階層ごとの中間特徴マップに基づいて、CTUにおけるCUの分割パターンを決定する。以上のようにして、分割パターン決定部101はCUを生成する。不整合補正部917による不整合補正処理は、第1実施形態と同様である。
【0049】
図10は、着目CTUに対する階層ごとの中間特徴マップの一例を示す図である。以下、階層ごとの中間特徴マップを、特定階層特徴マップ(特徴マップ)と称する。
図10(a)は、CTUあたりの64画素×64画素の分割要否を表す1要素を示す。
図10(b)は、CTUあたりの32画素×32画素の分割要否を表す合計4要素を示す。
図10(c)は、CTUあたりの16画素×16画素の分割要否を表す合計16要素を示す。各要素は「0」または「1」の値で表現され、値が「0」の要素は分割しないことを示し、値が「1」の要素は分割することを示す。つまり、第3実施形態では、各特定階層特徴マップは、着目CUに対して、分割要否は1bitで表現される。第3実施形態では、特徴抽出部900は、3つの特定階層特徴マップが、
図10で示す要素数になるようなプーリングを行う。
【0050】
ここでは、プーリング部908の出力が、16画素×16画素の分割要否を表す特定階層特徴マップに関連付けられる。また、プーリング部910の出力が、32画素×32画素の分割要否を表す特定階層特徴マップに関連付けられる。プーリング部912の出力が、64画素×64画素の分割要否を表す特定階層特徴マップに関連付けられる。第3実施形態では、プーリング処理により、CTUに対して各階層で最小画素の特定階層特徴マップを算出する構成が採用されるが、プーリング処理の手法は、上記の例には限定されない。また、第3実施形態の分割パターン決定部101は、符号化対象画像を予め縮小させてから特徴抽出部200へ入力してもよい。また、分割パターン決定部101は、特定階層特徴マップの1要素を分割要否の単位として取り扱わず、例えば、特定階層特徴マップの4要素の平均値を、1つの分割要否の結果として取り扱ってもよい。つまり、64画素×64画素の分割要否を表す特定階層特徴マップが、
図10(b)の解像度、またはそれ以上の解像度で出力されていてもよい。
【0051】
不整合補正部917は、特徴抽出部900からの出力データを「0」または「1」の二値に変換する。具体的には、不整合補正部917は、以下の式(2)に基づいて各特定階層特徴マップ値を変換する。
【0052】
y=0 (x<0.5)・・・(2)
ただし、xはインデックスへ変換する前の特定階層特徴のマップ値であり、yはインデックスへ変換した後の特定階層特徴のマップ値である。なお、以上の式において、yを決定するためのxに対する閾値は、上記の値には限定されない。また、式(2)は、全ての階層の特定階層特徴マップに適用されるものとして説明するが、不整合補正部917は、階層ごとに閾値を変更してもよい。
【0053】
次に、不整合補正処理について説明する。第3実施形態では、分割パターン決定部101は、特定階層特徴マップに基づいて、階層ごとに中間特徴マップを算出する。従って、上位階層で分割しないと判定されたブロックの下位階層で分割すると判定されることがあり、階層間の不整合が生じることがある。そこで、不整合補正部917は、階層間に生じた不整合を補正する。
図11は、第3実施形態の不整合補正を説明する図である。
図11において、「分割」はインデックス化処理がされた後の特定階層特徴マップの値が「1」であり、「非分割」は特定階層特徴マップの値が「0」である。
【0054】
ここで、符号化効率を高めるには、動画像を構成する画像を符号化して、復号された画像の画質が高いブロック分割パターンを決定することが好ましい。このため、動画像を構成する各画像やビットレートにも左右されるが、サイズが小さいブロックの分割要否が画質に大きく関わるケースが多い。そこで、第3実施形態の不整合補正部917は、サイズが小さいブロックの分割要否を、サイズが大きいブロックの分割要否より優先して、不整合の補正を行う。
図11の例は、サイズが小さいブロック(下位階層のブロック)の分割要否を、サイズが大きいブロック(上位階層のブロック)の分割要否より優先させた場合の不整合の補正結果を示す。つまり、不整合補正部917は、サイズが小さいブロックの分割要否に基づいて、サイズが大きいブロックの分割要否を決定する。
【0055】
具体的には、上位階層のブロックが「非分割」であるにもかかわらず、下位階層のブロックが「分割」である場合に、不整合補正部917は、不整合状態であると判定する。この場合、不整合補正部917は、「分割」である下位階層の上位階層に相当する「非分割」のブロックを「分割」とする補正を行う。これにより、不整合の補正が図られる。例えば、
図11において、32画素×32画素のブロックが「非分割」を示し、且つ16画素×16画素のブロックが「分割」を示している場合、不整合補正部917は、不整合状態であると判定する。この場合、不整合補正部917は、32画素×32画素のブロックを「分割」に補正する。
【0056】
図12は、不整合の補正例を示す図である。3階層の特定階層特徴マップのうち32画素×32画素の特定階層特徴マップの4つの要素のうち補正前の左上の要素は「0」になっており、「非分割」であることを示している。一方、対応する下位階層の16画素×16画素の特定階層特徴マップのうち1つの要素は「1」になっており、「分割」であることを示している。この場合、不整合が生じているため、不整合補正部917は、32画素×32画素の特定階層特徴マップの左上の要素を「1」に補正する。これにより、不整合が解消される。
【0057】
不整合補正部917は、サイズが小さいブロックの分割要否を、サイズが大きいブロックの分割要否より優先しているが、不整合の補正の手法は、上記の例には限定されない。例えば、不整合補正部917は、機械学習が行われる際の画質向上度に基づいて、不整合の補正方法を決定してもよい。また、不整合補正部917は、画質向上度の指標としてPSNR(Peak signal-to-noise ratio)を用いてもよい。この場合、不整合補正部917は、各種の不整合補正を行った後に、HM等を利用して、復号後の画像の画質を、PSNRを用いて比較することで、最も画質が高くなる不整合の補正方法を決定してもよい。
【0058】
また、不整合補正部917は、機械学習されたニューラルネットワーク等の学習モデルを用いて、不整合の補正を行ってもよい。ここでの学習モデルは、第1実施形態および第2実施形態の学習モデルとは異なる。例えば、不整合補正部917は、3つ特定階層特徴マップと符号化対象画像とを入力として、何れの分割パターンで不整合を補正するかをクラス分類により選択して、選択結果を出力してもよい。分割要否を決定する対象の画像群の内容に応じて分割要否の精度が異なってくるため、機械学習された学習モデルに基づいて不整合の補正方法を決定することは有効である。以上の不整合補正部917に用いられる学習モデルは、学習用の3つ特定階層特徴マップと符号化対象画像とを入力として、何れの分割パターンで不整合を補正するかを示す教師データを用いて、機械学習されてもよい。
【0059】
次に、補正済みの特定階層特徴マップの集約について説明する。
図13は、特定階層特徴マップの一例を示す図である。不整合補正部917は、不整合補正処理により補正された特定階層特徴マップから、第1実施形態で説明した
図3(b)~
図3(f)のような特徴マップ形式に変換することで、分割パターンを決定する。
【0060】
以上のように、第3実施形態では、分割パターン決定部101は、階層ごとに1ビットの特定階層特徴マップを算出して分割要否を決定する。これにより、第3実施形態の特徴抽出部900がニューラルネットワーク等の学習モデルで構成される場合、学習モデルは分割するか否かの二値の何れかのみを推論すればよい。このため、ブロックの分割要否の精度を向上させることができる。
【0061】
<第4実施形態>
次に、第4実施形態について説明する。第4実施形態の分割パターン決定部101の構成は、第3実施形態の
図9と同様である。第4実施形態は、不整合補正方法が第3実施形態と異なる。一般的に、ニューラルネットワーク等の学習モデルの推論精度は、推論する対象のデータの情報量が多くなるに応じて低くなる。従って、ニューラルネットワーク等の学習モデルによる推論精度は、解像度の低い画像よりも解像度の高い画像の方が低い。換言すれば、ニューラルネットワーク等の学習モデルによる推論精度は、上位階層の分割要否を示す特定階層特徴マップの方が下位階層の分割要否を示す特定階層特徴マップよりも高い。従って、サイズが大きいブロックの方が、推論精度を高め易いため、
図9の畳み込み部913の演算量は、畳み込み部914、915より演算量が少なくなる。
【0062】
そこで、第4実施形態の分割パターン決定部101は、サイズが小さいブロックの特定階層特徴マップよりも、サイズが大きいブロックの特定階層特徴マップを優先して不整合補正を行う。そして、第4実施形態の分割パターン決定部101は、「非分割」と判定された上位階層のブロックと同じ画素位置の下位階層の特定階層特徴マップは演算対象から除外する。
【0063】
図14は、演算対象から除外される特定階層特徴マップの一例を示す図である。
図14の例に示されるように、最上位階層である64画素×64画素の特定階層特徴マップには、3つの「非分割」の画素の領域がある。「非分割」の画素に対応する下位階層の2つの特定階層特徴マップの画素の領域は演算対象から除外される。また、32画素×32画素の特定特徴マップのうち「非分割」の画素に対応する下位階層の特定階層特徴マップの画素の領域は、演算対象から除外される。
【0064】
図15は、補正済みの特定階層特徴マップのデータ列の一例を示す図を示す。
図15では、便宜上、連続する3つのCTU(CTU0、CTU1およびCTU2)の特定階層特徴マップが示されている。上述したように、分割パターン決定部101は、上位階層の要素が「非分割」である場合、対応する下位階層の各要素を演算対象(処理対象)から除外する。これにより、演算対象から除外された各要素についての演算(処理)は実施されない。演算対象から除外された各要素についての値を保持する必要はない。
【0065】
そこで、分割パターン決定部101は、
図15に示されるように、階層ごとの特定階層特徴マップのうち、演算対象から除外された各要素を省いたデータ列を生成する。
図15の特定階層特徴マップのデータ列では、省かれた部分の画素位置のデータは詰められている。例えば、CTU1に対応する32画素×32画素の特定階層特徴マップおよび16画素×16画素の特定階層特徴マップには、値が設定されていない。そこで、分割パターン決定部101は、特定階層特徴マップの各要素のうち値が設定されていない要素をスキップしたデータ列を生成する。これにより、特定階層特徴マップのデータ量の削減が図られる。また、階層構造を辿ることにより、スキップされた要素の位置を特定することができる。
【0066】
以上のように、第3実施形態では、「非分割」の上位階層の要素の領域に対応する下位階層の特定階層特徴マップの演算が行われない。これにより、各階層の特定階層特徴マップの全ての要素について演算が行われる場合と比較して、演算量を低減させることができる。例えば、対応する上位階層の要素の領域が「非分割」である場合、
図9の畳み込み部914、915の処理を省略することができる。演算量が低減できることから、電力削減を図ることも可能である。なお、分割パターン決定部101は、各特定階層特徴マップを生成する特徴抽出部900が階層ごとにそれぞれ独立な構成を採用してもよい。これにより、演算量をさらに削減することができる。
【0067】
<第5実施形態>
次に、第5実施形態について説明する。第5実施形態の分割パターン決定部101の構成は、第3実施形態の
図9と同様である。第5実施形態は、機械学習の方法が、第4実施形態と異なる。
図16は、第5実施形態の学習装置1600の一例を示す図である。特徴抽出部900の構成は、
図9と同様である。
図16に示されるように、第5実施形態の分割パターン決定部101は、上記の特徴抽出部900に加えて、第1のMse算出部1601、第2のMse算出部1602および第3のMse算出部1603を有する。各Mse算出部が出力するデータは、TotalMse算出部1604に入力される。TotalMse算出部1604は、学習装置1600に含まれていてもよい。教師データは、階層ごとに、「分割」示す値が「1」、「非分割」を示す値が「0」である正解を示す特定階層特徴マップであり、その形式は
図10と同様である。第1のMse算出部1601には第1の教師データが対応しており、第2のMse算出部1602には第2の教師データが対応しており、第3のMse算出部1603には、第3の教師データが対応している。各教師データのそれぞれと学習用の入力画像とは一対で構成される。
【0068】
第1のMse算出部1601は、64画素×64画素の特定階層特徴マップと第1の教師データとの平均二乗誤差loss64を算出する。第2のMse算出部1602は、32画素×32画素の特定階層特徴マップと第2の教師データとの平均二乗誤差loss32を算出する。第3のMse算出部1603は、16画素×16画素の特定階層特徴マップと第3の教師データとの平均二乗誤差loss16を算出する。TotalMse算出部1604は、各階層の平均特徴マップに基づく以下の式(3)を用いて、合計の損失loss_sumを算出する。ただし、以下の式(3)において、「α≦β≦γ」が成立するものとする。
loss_sum=α×loss64+β×loss32+γ×loss16・・・(3)
上記loss_sumは、各平均二乗誤差の単純加算であってもよい。上述した式(3)では、下位階層の特定階層特徴マップの平均二乗誤差に対して高い値の重みで重み付けがされ、上位階層の特定階層特徴マップの平均二乗誤差に対して低い値の重みで重み付けがされる。TotalMse算出部1604は、式(3)により、合計の損失loss_sumを算出する。
【0069】
上述したように、サイズが小さいブロックの分割精度の方が、サイズが大きいブロックの分割精度よりも画像の画質に対して大きな影響を与える。そこで、TotalMse算出部1604は、特定階層特徴マップの階層が深くなるに応じて、高い値の重み付けをする。そして、学習装置1100は、上記の重み付けがされた合計の損失loss_sumをゼロに近づけるようなニューラルネットワークの機械学習を行う。これにより、分割精度を高めることが難しいサイズが小さいブロックの分割に関わる機械学習を重点的に行うことができる。従って、ブロックの分割精度を向上させることができる。なお、学習装置1100は、上記の機械学習を行った結果、分割精度が高まりにくかったブロックサイズを探索し、探索結果に基づいて、上記の重みα、β、γの関係を決定してもよい。この場合、「α≦β≦γ」が成立しない場合もある。
【0070】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0071】
100 画像符号化装置
101 分割パターン決定部
200 特徴抽出部
210 不整合補正部
600 学習装置