(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-25
(45)【発行日】2024-08-02
(54)【発明の名称】画像処理装置、その制御方法、プログラム並びに画像処理システム
(51)【国際特許分類】
H04N 19/117 20140101AFI20240726BHJP
H04N 19/154 20140101ALI20240726BHJP
H04N 19/176 20140101ALI20240726BHJP
H04N 19/46 20140101ALI20240726BHJP
H04N 23/60 20230101ALI20240726BHJP
G06T 5/00 20240101ALI20240726BHJP
G06T 7/00 20170101ALI20240726BHJP
H04N 19/80 20140101ALI20240726BHJP
【FI】
H04N19/117
H04N19/154
H04N19/176
H04N19/46
H04N23/60
G06T5/00 700
G06T7/00 350C
H04N19/80
(21)【出願番号】P 2020009443
(22)【出願日】2020-01-23
【審査請求日】2023-01-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】田邉 章弘
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2019/031410(WO,A1)
【文献】米国特許出願公開第2003/0212944(US,A1)
【文献】国際公開第2019/009489(WO,A1)
【文献】特開平09-065284(JP,A)
【文献】特開2003-259280(JP,A)
【文献】特開2019-145918(JP,A)
【文献】米国特許出願公開第2020/0145661(US,A1)
【文献】Chuanmin Jia et al.,Content-Aware Convolutional Neural Network for In-Loop Filtering in High Efficiency Video Coding [online],Published in: IEEE Transactions on Image Processing ( Volume: 28 , Issue: 7, July 2019), [2024年1月18日検索],2019年01月31日,pp.3343-3356,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8630681>,DOI: 10.1109/TIP.2019.2896489
【文献】Yingbin Wang et al.,AHG9: Dense Residual Convolutional Neural Network based In-Loop Filter [online],JVET-K0391-v4(JVET-K0391-v4.docx), [2024年1月18日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0391-v4.zip>,2018年07月14日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/117
H04N 19/154
H04N 19/176
H04N 19/46
H04N 19/80
H04N 23/60
G06T 5/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
入力画像に対して符号化を施した符号化画像におけるブロックごとの劣化の度合いを取得する取得手段と、
前記符号化画像を復号化する復号化手段と、
前記復号化手段により復号化された復号化画像における所定のブロックに画像の回復処理を施す回復手段と、を有し、
前記回復手段は、前記符号化画像における前記ブロックごとの劣化の度合いに応じて、前記復号化画像におけるブロックごとに第1のニューラルネットワークを用いた前記画像の回復処理を施すか否かを切り替え
、
前記回復手段は、更に、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する修正手段を含み、
前記修正手段は、第2のニューラルネットワークにより出力される、前記ブロックごとに前記画像の回復処理を施すか否かについての出力に基づいて、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する、ことを特徴とする画像処理装置。
【請求項2】
前記第1のニューラルネットワークは、復号化画像から符号化前の画像を推定するように構成される、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記第1のニューラルネットワークは、前記入力画像に施す符号化技術で符号化と復号化とを施した画像である入力データと、符号化される前の画像である教師データとを用いて、復号化画像から符号化前の画像を推定するように学習されている、ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記入力画像に対して符号化を施す符号化手段を更に有し、
前記符号化手段は、前記符号化画像における前記ブロックごとの劣化の度合いに応じて、前記回復処理を施すか否かを示すフラグ情報を、前記符号化画像と共に記録手段に記録する、ことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
前記符号化手段は、量子化パラメータを用いて前記入力画像を符号化すると共に、前記劣化の度合いを、符号化が施される際の量子化パラメータの値を用いて決定する、ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記劣化の度合いは、符号化が施される際の量子化パラメータの値を用いて設定され、
前記回復手段は、前記量子化パラメータの値が所定の閾値よりも高い場合には、前記第1のニューラルネットワークを用いた前記画像の回復処理を施し、前記量子化パラメータの値が前記所定の閾値以下である場合には、前記第1のニューラルネットワークを用いた前記画像の回復処理を施さない、ことを特徴とする請求項1から5のいずれか1項に記載の画像処理装置。
【請求項7】
前記劣化の度合いは、符号化前の画像と、符号化後の画像を復号化した復号化画像とに基づくPSNR(Peak Signal to noise ratio)の値を用いて設定され、
前記回復手段は、前記PSNRの値が所定の閾値よりも高い場合には、前記第1のニューラルネットワークを用いた前記画像の回復処理を施し、前記PSNRの値が前記所定の閾値以下である場合には、前記第1のニューラルネットワークを用いた前記画像の回復処理を施さない、ことを特徴とする請求項1から5のいずれか1項に記載の画像処理装置。
【請求項8】
前記第1のニューラルネットワークを用いて前記画像の回復処理を施すブロックの数は、前記画像に設定可能なブロックのうちの所定の割合に制限される、ことを特徴とする請求項1から
7のいずれか1項に記載の画像処理装置。
【請求項9】
前記符号化手段は、前記入力画像の符号化において適応量子化を行う、ことを特徴とする請求項4に記載の画像処理装置。
【請求項10】
前記符号化手段は、前記回復処理を施すか否かを示すフラグ情報を、EXIFまたはHEIFの何れかのコンテナファイルに記録する、ことを特徴とする請求項4又は
9に記載の画像処理装置。
【請求項11】
入力画像に対して符号化を施した符号化画像を出力する符号化手段と、
前記符号化画像におけるブロックごとの劣化の度合いを決定する決定手段と、
前記符号化画像における前記ブロックごとの劣化の度合いを取得する取得手段と、
前記符号化画像を復号化する復号化手段と、
前記復号化手段により復号化された復号化画像における所定のブロックに画像の回復処理を施す回復手段と、を有し、
前記回復手段は、前記符号化画像における前記ブロックごとの劣化の度合いに応じて、前記復号化画像におけるブロックごとに第1のニューラルネットワークを用いた前記画像の回復処理を施すか否かを切り替え
、
前記回復手段は、更に、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する修正手段を含み、
前記修正手段は、第2のニューラルネットワークにより出力される、前記ブロックごとに前記画像の回復処理を施すか否かについての出力に基づいて、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する、ことを特徴とする画像処理システム。
【請求項12】
入力画像に対して符号化を施した符号化画像におけるブロックごとの劣化の度合いを取得する取得工程と、
前記符号化画像を復号化する復号化工程と、
前記復号化工程において復号化された復号化画像における所定のブロックに画像の回復処理を施す回復工程と、を有し、
前記回復工程では、前記符号化画像における前記ブロックごとの劣化の度合いに応じて、前記復号化画像におけるブロックごとに第1のニューラルネットワークを用いた前記画像の回復処理を施すか否かを切り替え
、
前記回復工程は、更に、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する修正工程を含み、
前記修正工程では、第2のニューラルネットワークにより出力される、前記ブロックごとに前記画像の回復処理を施すか否かについての出力に基づいて、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する、ことを特徴とする画像処理装置の制御方法。
【請求項13】
コンピュータを、請求項1から
10のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、その制御方法、プログラム並びに画像処理システムに関する。
【背景技術】
【0002】
従来、デジタルカメラ等の画像処理装置には、画像データを圧縮する符号化技術を採用するものが知られている。このような符号化技術は、撮像部で取得した動画像信号を現像および圧縮符号化し、圧縮符号化した画像ファイルを記録媒体に記録するために用いられる。
【0003】
画像データに符号化技術を適用した場合には、符号化後の画像データの画質が符号化前の画像データの画質より劣化する場合があることが知られており、その対策として符号化後の画像データの画質劣化を低減させる技術が知られている(特許文献1)。特許文献1では、符号化前のYUV信号を基準信号として教師信号との間で信号要素の比較を行い、修正すべき信号の修正箇所を示すフラグ情報に従ってYUV信号を修正することで、符号化後の劣化を低減する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年、ニューラルネットワークを用いた機械学習手法を画像処理に適用した様々な技術が開発されており、画質の劣化した画像信号に機械学習手法を適用して、当該画像信号の画質を回復させる技術も検討されている。
【0006】
一般にニューラルネットワークを用いた演算には膨大な積和演算が必要となる。組み込み型の装置に搭載可能な処理能力やリソースには限度があるため、組み込み型の装置で実行可能なニューラルネットワークを用いた演算も限定される。そのため、ニューラルネットワークを画像処理に適用する場合、ニューラルネットワークを適用した場合の演算量を低減させるための工夫が必要がある。この点、上述の特許文献1は、信号要素の比較により画像データを修正する技術を開示するものであり、復号化後にニューラルネットワークを適用した画像の回復処理については考慮していない。
【0007】
本発明は、上記課題に鑑みてなされ、その目的は、復号化後にニューラルネットワークを適用して画像の回復処理を行う際に、当該回復処理に係る演算量を低減させることが可能な技術を実現することである。
【課題を解決するための手段】
【0008】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、入力画像に対して符号化を施した符号化画像におけるブロックごとの劣化の度合いを取得する取得手段と、前記符号化画像を復号化する復号化手段と、前記復号化手段により復号化された復号化画像における所定のブロックに画像の回復処理を施す回復手段と、を有し、前記回復手段は、前記符号化画像における前記ブロックごとの劣化の度合いに応じて、前記復号化画像におけるブロックごとに第1のニューラルネットワークを用いた前記画像の回復処理を施すか否かを切り替え、前記回復手段は、更に、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する修正手段を含み、前記修正手段は、第2のニューラルネットワークにより出力される、前記ブロックごとに前記画像の回復処理を施すか否かについての出力に基づいて、前記符号化画像における前記ブロックごとの前記劣化の度合いを修正する、ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、復号化後にニューラルネットワークを適用して画像の回復処理を行う際に、当該回復処理に係る演算量を低減させることが可能になる。
【図面の簡単な説明】
【0010】
【
図1】実施形態1に係る画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【
図3】実施形態1に係るエンコード処理の一連の動作を示すフローチャート
【
図4】実施形態1に係る、画像の回復処理を伴うフラグ情報の確認処理の一連の動作を示すフローチャート
【
図5】実施形態1に係るデコード処理の一連の動作を示すフローチャート
【
図6】実施形態2に係るフラグ情報の確認処理の一連の動作を示すフローチャート
【
図7】実施形態3に係る、フラグ情報の数を制限したエンコード処理の一連の動作を示すフローチャート
【発明を実施するための形態】
【0011】
(実施形態1)
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
以下では画像処理システム、或いは画像処理装置の一例として、画像の符号化及び/又は復号化の可能なデジタルカメラを用いる例を説明する。しかし、本実施形態は、デジタルカメラに限らず、画像の符号化及び/又は復号化の可能な他の機器にも適用可能である。これらの機器には、例えばスマートフォン、ゲーム機、タブレット端末、時計型や眼鏡型の情報端末、医療機器、監視カメラシステムや車載機器、サーバ装置などが含まれてよい。
【0013】
(デジタルカメラの構成)
図1は、デジタルカメラ100の機能構成例を示している。
図1に示すように、デジタルカメラ100は、CPU101と、メモリ102と、不揮発性メモリ103と、操作部104と、ニューラルネットワーク処理部105と、を含む。更に、デジタルカメラ100は、撮像部112と、画像処理部113と、符号化処理部114と、表示制御部115と、表示部116とを含む。また、デジタルカメラ100は、通信制御部117と、通信部118と、記録媒体制御部119と、内部バス130とを含む。
【0014】
デジタルカメラ100は、撮影レンズ111を用いて被写体の光学像を撮像部112の画素アレイに結像する。撮影レンズ111は、デジタルカメラ100のボディ(筐体、本体)から、着脱不能であってもよいし、着脱可能であってもよい。また、デジタルカメラ100は、記録媒体制御部119を介して画像データの書き込み及び読み出しを記録媒体120に対して行う。記録媒体120は、デジタルカメラ100に着脱可能であってもよいし、着脱不能であってもよい。
【0015】
CPU101は、不揮発性メモリ103に記憶されているコンピュータプログラムを、メモリ102に展開し、実行することによって、内部バス130を介してデジタルカメラ100の各部(各機能ブロック)の動作を制御する。
【0016】
メモリ102は、書き換え可能な揮発性メモリである。メモリ102は、デジタルカメラ100の各部の動作を制御するためのコンピュータプログラム、デジタルカメラ100の各部の動作に関するパラメータ等の情報、通信制御部117によって受信される情報等を一時的に記憶する。また、メモリ102は、撮像部112によって取得された画像、画像処理部113、符号化処理部114等によって処理された画像及び情報を一時的に記憶する。メモリ102は、これらを一時的に記憶するために十分な記憶容量を備えている。更に、メモリ102はニューラルネットワーク処理部105で使用する、ニューラルネットワークの処理内容を記述したコンピュータプログラムと、重み係数やバイアス値等の学習済み係数パラメータを一時的に格納する。なお、重み係数とはニューラルネットワークにおいてノード間の接続の強さを示すための値であり、バイアス値は重み係数と入力データの積算値に対して加算する値である。
【0017】
不揮発性メモリ103は、電気的に消去及び記録が可能なメモリであり、例えばEEPROM、ハードディスク等が用いられる。不揮発性メモリ103は、デジタルカメラ100の各部の動作を制御するコンピュータプログラム及びデジタルカメラ100の各部の動作に関するパラメータ等の情報を記憶する。当該コンピュータプログラムにより、デジタルカメラ100によって行われる各種動作が実現される。なお、不揮発性メモリ103に、上述したニューラルネットワーク処理部105で使用する、ニューラルネットワークの処理内容を記述したコンピュータプログラムと、重み係数やバイアス値等の学習済み係数パラメータを格納してよい。
【0018】
操作部104は、デジタルカメラ100を操作するためのユーザインタフェースを提供する。操作部104は、電源ボタン、メニューボタン、撮影用のレリーズボタン、動画録画ボタン、キャンセルボタン等の各種ボタンを含んでおり、各種ボタンはスイッチ、タッチパネル等により構成される。CPU101は、操作部104を介して入力されたユーザーの指示に従ってデジタルカメラ100を制御する。なお、ここでは、操作部104を介して入力される操作に基づいてCPU101がデジタルカメラ100を制御する場合を例に説明するが、これに限定されるものではない。例えば、不図示のリモートコントローラ、不図示の携帯端末等から通信部118を介して入力される要求に基づいて、CPU101がデジタルカメラ100を制御してもよい。
【0019】
ニューラルネットワーク処理部105は、予め学習を完了することによって得られる、学習済みの係数パラメータを用いてニューラルネットワークによる処理を実行する。ニューラルネットワーク処理部105は、積和演算回路、内部メモリ、DMAコントローラを含む。ニューラルネットワーク処理部105は、メモリ102または不揮発性メモリ103、あるいは内部メモリに格納されている、ニューラルネットワークの処理内容を記述したコンピュータプログラムを実行する。ニューラルネットワーク処理部105の積和演算回路は、上述した係数パラメータの積和演算を行う回路である。ニューラルネットワーク処理部105の内部メモリは、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路で算出した中間データ等を一時的に格納する。ニューラルネットワーク処理部105のDMAコントローラは積和演算回路と内部メモリ間のデータ転送も行う。DMAコントローラが転送するデータとしては、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路で算出した中間データ等である。
【0020】
ニューラルネットワークは、入力層と出力層と複数の隠れ層とを有するディープニューラルネットワークの構成を含む。例えば公知のニューラルネットワークの構成である、CNN(Convolutional Neural Network)と全結合層を有する構成であってよい。勿論、ニューラルネットワークの構成はこれに限定されない。また上述の係数パラメータは、全結合層では各層のノード間を結ぶエッジごとに持つ重みやバイアス、CNNではカーネルの重みやバイアスに相当する。
【0021】
このニューラルネットワークは、例えば、所定の符号化技術で符号化して更に復号化した画像である入力データと、符号化される前の画像である教師データとを用いて、符号化前の画像を推定するように学習されている。従って、学習後のニューラルネットワークの係数パラメータを用いることにより、ニューラルネットワークは、復号化された画像データが入力されると、当該入力画像に対応する符号化前の画像を推定して出力(すなわち回復画像を出力)するように構成される。
【0022】
撮影レンズ(レンズユニット)111は、ズームレンズ、フォーカスレンズ等を含む不図示のレンズ群、不図示のレンズ制御部、不図示の絞り等によって構成される。撮影レンズ111は、画角を変更するズーム手段として機能し得る。レンズ制御部は、CPU101から送信される制御信号により、焦点の調整及び絞り値(F値)の制御を行う。撮像部112は、動画像を構成する複数の画像を順次取得する。
【0023】
撮像部112は、例えばCCD(電荷結合素子)、CMOS(相補型金属酸化膜半導体)素子等でのエリアイメージセンサが用いられる。撮像部112は、被写体の光学像を電気信号に変換する不図示の光電変換部が行列状、すなわち、2次元的に配列された不図示の画素アレイを有している。当該画素アレイには、被写体の光学像が撮影レンズ111によって結像される。撮像部112は、撮像した画像を画像データとして画像処理部113又はメモリ102に出力する。なお、撮像部112は、静止画像を取得することも可能である。
【0024】
画像処理部113は、撮像部112から出力される画像データ、又は、メモリ102から読み出された画像データに対し、所定の画像処理を行う。当該画像処理の例としては、ダイナミックレンジ変換処理、補間処理、縮小処理(リサイズ処理)、色変換処理等が挙げられる。また、画像処理部113は、撮像部112によって取得された画像データを用いて、露光制御、測距制御等のための所定の演算処理を行う。画像処理部113による演算処理によって得られた演算結果に基づいて、露光制御、測距制御等がCPU101によって行われる。具体的には、AE(自動露出)処理、AWB(オートホワイトバランス)処理、AF(オートフォーカス)処理等がCPU101によって行われる。
【0025】
符号化処理部114は、画像処理部113で処理を行った画像データに対してフレーム内予測符号化(画面内予測符号化)、フレーム間予測符号化(画面間予測符号化)等を行うことによって、画像データを符号化(画像データのサイズを圧縮)する。符号化処理部114は、例えば、半導体素子等により構成された符号化回路を含む。なお、符号化処理部114は、画像処理部113の処理の一部を省略して出力されるRGBデータを所定の非可逆圧縮方式により圧縮する方式であってもよい。
【0026】
表示制御部115は、例えばGPU(Graphics Processing Unit)を含んでよく、表示部116による表示を制御する。表示部116は、不図示の表示画面を備える。表示制御部115は、表示部116の表示画面に表示可能な表示用の画像信号を生成し、当該画像信号を表示部116に出力する。また、表示制御部115は表示部116に画像信号を出力するだけでなく、通信制御部117を介して外部機器に画像信号を出力することも可能である。表示部116は、表示制御部115から出力される画像信号に基づいて、表示画面に画像を表示する。表示部116は、表示画面にメニュー等の設定画面を表示する機能であるOSD(On Screen Display)機能を備えている。表示制御部115は、画像データにOSD画像を重畳した画像信号を表示部116に出力し得る。表示部116は、液晶ディスプレイ、有機ELディスプレイ等により構成されており、表示制御部115から出力された画像信号を表示する。表示部116は、例えばタッチパネルであってもよい。表示部116がタッチパネルである場合、表示部116は、操作部104としても機能し得る。
【0027】
通信制御部117は、HDMI(High Definition Multimedia Interface)(登録商標)やSDI(Serial Digital Interface)などの通信規格に準拠した映像信号を送るため、通信部118を制御する。通信制御部117は、CPU101によって制御される。また、通信制御部117は映像信号以外の制御信号を送受信することが可能である。
【0028】
通信部118は映像信号と制御信号を物理的な電気信号に変換して外部機器と送受信する。なお、通信制御部117は、IEEE802.11等のような無線通信規格に準拠する変調信号を生成して、当該変調信号を通信部118に出力し、外部機器からの変調信号を、通信部118を介して受信すること構成であってもよい。なお、ここでは、通信部118によって映像信号の伝送と、無線通信とが行われる場合を例に説明したが、通信部118によって行われる伝送や通信はこれらに限定されるものではない。
【0029】
記録媒体制御部119は、記録媒体120を制御する。記録媒体制御部119は、CPU101からの要求に基づいて、記録媒体120を制御するための制御信号を記録媒体120に出力する。記録媒体120としては、例えば不揮発性メモリや磁気ディスク等が用いられる。記録媒体120は、上述したように、着脱可能であってもよいし、着脱不能であってもよい。記録媒体120は、符号化された画像データ等を記録する。記録媒体120のファイルシステムに適合した形式で画像データ等がファイルとして保存される。
【0030】
上述した各機能ブロックである、101~105、112~115、117及び119は、内部バス130を介して互いにアクセス可能となっている。
【0031】
次に、
図2を参照して、入力画像と、符号化を行う際の画像内のブロックとの関係について説明する。
図2に示すように、画像200(例えば画像処理部113からの画像データ)は、符号化処理部114により、符号化する単位でブロックごと(以下、各ブロックを符号化ブロックともいう)に分割される。なお、
図2に示す例では、分割サイズを符号化ブロック201と同様のブロックサイズで分割する例を示しているが、矩形であれば非対称のサイズであってもよい。また、符号化処理部114は、符号化ブロックごとに、量子化処理を行う際に、量子化の強度を決定する量子化パラメータであるQp(Quatization Parameter)値を設定する。また、符号化処理部114は、符号化ブロックを基準として、ニューラルネットワーク処理部105のニューラルネットワークで処理を行う単位であるブロック(以下、NNブロックともいう)を設定する。このNNブロックは、
図2に示す符号化ブロック201と同じサイズであってもよいし、ブロック210のように符号化ブロックよりも小さいもの、あるいはブロック220のように複数の符号化ブロックを含むものであってもよい。
【0032】
(エンコード処理の一連の動作)
次に、
図3を参照して、本実施形態に係るエンコード処理の一連の動作を説明する。本エンコード処理では、画像データを符号化するとともに、後述するフラグ情報をコンテナに記録する。本動作は、デジタルカメラ100の電源がオンの状態において、不揮発性メモリ103に格納されているコンピュータプログラムがメモリ102に展開され、CPU101がメモリ102のコンピュータプログラムを読み出して実行することにより実現される。
【0033】
S301において、CPU101は、符号化処理部114を制御してエンコード処理を行う。CPU101は、ブロックごとにQp値を変更する適応量子化を実施しているか否かを示す情報と、エンコード済みの画像データとをメモリ102に格納する。
【0034】
S302において、CPU101は、適用量子化の処理が実施されているかを判定する。例えば、CPU101は、S301でメモリ102に格納された、適応量子化を実施しているか否かを示す情報に基づいて、適用量子化の処理が実施されているかを判定する。CPU101は、適応量子化を実施していると判定した場合(S302でYES)、処理をS303へ進め、適応量子化を実施していないと判定した場合(S302でNO)、処理をS310へ進める。
【0035】
S303において、CPU101は、符号化ブロックごとの劣化の度合いを示す劣化情報を取得する。劣化情報は、例えば、符号化ブロックごとのQp値を用いて劣化の度合いを表す。例えば、Qp値が小さい場合は劣化の度合いが少なく、Qp値が大きい場合は劣化の度合いが大きいことを示す。或いは、劣化の度合いを、PSNRを用いて表してもよい。例えば、CPU101は、符号化前の原画像と符号化後の画像データをデコードしたデコード画像を比較したPSNR(Peak Signal to noise ratio)を算出して、当該PSNRを、劣化の度合いを表す情報として用いてもよい。なお、PSNRを算出する際には符号化された画像データのデコード処理が必要となる。この場合、CPU101は、S303の処理の前に、符号化された画像データのデコード処理を行えばよい。
【0036】
S304において、CPU101は、各NNブロックについて、ニューラルネットワーク(第1のニューラルネットワーク)による画像の回復処理を施すか否かを判定する。なお、第1のニューラルネットワークの処理は、デジタルカメラ100のニューラルネットワーク処理部105を制御することにより実行される場合を例に説明するが、外部装置に備わるニューラルネットワーク処理部を制御することにより実行されてもよい。例えば、CPU101は、処理対象のNNブロックに含まれる符号化ブロックの劣化情報に従って、当該劣化情報における劣化の度合いが閾値より大きいか否かに応じて、画像の回復処理を施すか否かを判定する。なお、NNブロックが複数の符号化ブロックを含む場合、符号化ブロックの劣化情報の平均値あるいは最も劣化度合いが大きい値と、閾値とを比較することにより判定する。CPU101は、劣化の度合いが閾値より大きいことにより画像の回復処理を施す必要があると判定した場合(S304のYES)、処理をS305へ進め、劣化の度合いが閾値以下である場合(S304のNO)、処理をS306へ進める。
【0037】
S305において、CPU101は、該当するNNブロックに対する回復処理が必要であるか否かを示すフラグ情報を設定する。CPU101は、フラグ情報として、例えば、回復処理が必要である場合に1を、回復処理が必要でない場合には0を設定する。なお、回復処理が必要であるか否かを示す情報として、0又は1によるフラグの代わりに、Qp値やPSNR等の劣化情報の値を用いてもよい。この場合、例えば、劣化情報の値が所定の閾値より大きい場合に回復処理が必要であることを示すようにしてもよい。
【0038】
S306において、CPU101は、すべてのNNブロックに対して処理を行ったか否かを判定する。CPU101は、全てのNNブロックに対する処理を行ったと判定した場合(S306のYES)には処理をS307へ進め、それ以外の場合(S306のNO)には処理をS304へ戻す。
【0039】
S307において、CPU101は、(適応量子化処理が実行されていない場合に)全てのNNブロックに対して回復処理が必要であることを示すフラグ情報を設定する。
【0040】
S308において、CPU101は、第1のニューラルネットワークによる画像の回復処理を実際に行って、実動作による確認を実施するか否かを判定する。例えば、CPU101は、デジタルカメラ100の撮影処理が継続しており、ニューラルネットワーク処理部105の処理が継続している場合には、実動作による確認処理は行わないと判定する。一方、CPU101は、ニューラルネットワーク処理部105の処理が継続していない場合には、実動作による確認処理を行うと判定する。CPU101は、第1のニューラルネットワークによる確認処理を行うと判定した場合(S308のYES)には処理をS309へ進め、それ以外の場合(S308のNO)には、本処理をS310へ進める。
【0041】
S309において、CPU101は、第1のニューラルネットワークによる回復処理をフラグ情報に従って実行して、フラグ情報の確認処理を行う。フラグ情報の確認処理についての詳細は、
図4を参照して後述する。
【0042】
S310において、CPU101は、メモリ102に格納されているフラグ情報と、符号化された画像データとを共にコンテナファイルに格納し、記録媒体制御部119を制御して記録媒体120に記録する。例えば、コンテナファイルは、EXIF(Exchangeable Image File Format)やHEIF(High Efficiency Image File Format)、MPEG-4 Part14等のフォーマットに従う。CPU101は、フラグ情報と符号化した画像データとを記録媒体120に記録すると、本一連の動作を終了する。
【0043】
(画像の回復処理を伴うフラグ情報の確認処理)
次に、
図4を参照して、第1のニューラルネットワークによる回復処理を伴う、フラグ情報の確認処理を実行する処理について説明する。
【0044】
S401において、CPU101は、符号化処理部114を制御してメモリ102に格納されている符号化した画像データに対して復号化処理を行う。そして、CPU101は、復号化画像をメモリ102に格納する。
【0045】
S402において、CPU101は、該当するNNブロックのデコード画像をメモリ102から取得したうえで、ニューラルネットワーク処理部105を制御することにより、画像の回復処理を実行する。ここで、該当するNNブロックは、例えば、フラグ情報として1(すなわち回復処理が必要であることを示す)が設定されているNNブロックをいう。
【0046】
S403において、CPU101は、該当するNNブロックにおいて、画質が改善するかを判定する。例えば、CPU101は、符号化前の原画像(入力画像)とデコード画像との第1の差異と、原画像と回復処理によって回復された画像との第2の差異を比較する。そして、第1の差異よりも第2の差異が小さい場合、画質が改善すると判定する。或いは、符号化前の原画像とデコード画像とから算出した第1のPSNRより、符号化前の原画像とS402で回復処理を行った後の画像とから算出した第2のPSNRが大きいかを判定する。例えば、CPU101は、第1のPSNRが第2のPSNRよりも高い値であると判定した場合、回復処理により画質が改善する(S403のYES)と判定する。この場合、CPU101は、フラグ情報をそのまま残すため、処理をS405に進める。一方、CPU101は、第1のPSNRが第2のPSNR以下の値であると判定した場合(S403のNO)、画像の回復処理により画質が改善しないと判定して、処理をS404へ進める。
【0047】
S404において、CPU101は、該当するNNブロックに対するフラグ情報を削除する。或いは、CPU101は、フラグ情報を削除する代わりに、効果が無いことを示す所定値、又は回復処理が必要でないことを示す値(すなわち0)を設定してもよい。すなわち、CPU101は、各ブロックごとのフラグ情報で定めていた回復処理が必要であることを示す情報を、回復処理の効果に応じて修正することができる。
【0048】
S405において、CPU101は、すべてのNNブロックに対して処理を行ったか否かを判定する。CPU101は、全NNブロックに対する処理を行ったと判定した場合(S405のYES)、本一連の動作を終了して、読み出し元(S309)に処理を戻し、それ以外の場合(S405のNO)、S402へ処理を戻す。
【0049】
(デコード処理の一連の動作)
更に、
図5を参照して、本実施形態に係るデコード処理の一連の動作について説明する。この動作は、デジタルカメラ100の電源がオンの状態に、不揮発性メモリ103に格納されているコンピュータプログラムがメモリ102に展開され、CPU101がメモリ102のコンピュータプログラムを読み出して実行することにより実現される。なお、本実施形態では、デジタルカメラ100においてデコード処理が実行される場合を例に説明するが、デジタルカメラ100とは異なる外部装置においてデコード処理が実行されてもよい。
【0050】
S501において、CPU101は、符号化処理部114を制御して画像データに対して復号化処理を行う。例えば、CPU101は、記録媒体120に格納されている画像データをメモリ102に展開し、符号化処理部114を制御してメモリ102に格納されている画像データに対して復号化処理を行う。CPU101は、その後、復号化画像をメモリ102に格納する。
【0051】
S502において、CPU101は、記録媒体120のコンテナよりフラグ情報を取得してメモリ102に格納する。S503において、CPU101は、S502により取得したフラグ情報に基づいて、第1のニューラルネットワークによる回復処理が必要であるか否かを判定する。CPU101は、フラグ情報に基づいて、第1のニューラルネットワークによる回復処理が必要であると判定した場合(S503のYES)、処理をS504に進める。CPU101は、例えば、上述したように、フラグ情報が、回復処理が必要であることを示す1である場合、第1のニューラルネットワークによる回復処理が必要であると判定する。一方、CPU101は、それ以外の場合(S503のNO)、処理をS505に進める。
【0052】
S504において、CPU101は、フラグ情報が回復処理が必要であることを示すNNブロックの復号化画像をメモリ102から取得して、ニューラルネットワーク処理部105による画像の回復処理を行う。
【0053】
S505において、CPU101は、全てのNNブロックに対して処理を行ったか否かを判定する。CPU101は、全てのNNブロックに対する処理を行ったと判定した場合(S505のYES)、本一連の動作を終了し、それ以外の場合(S505のNO)、S502へ処理を戻す。
【0054】
以上説明したように本実施形態では、画像内のブロックごとに、入力画像を符号化した符号化画像における劣化の度合いを設定するようにした。そして、符号化画像を復号化する際に、当該劣化の度合いに応じて、ブロックごとに、ニューラルネットワークを用いた回復処理を施すか否かを切り替えるようにした。このようにすることで、復号化画像に対して画像の回復処理を行う際に、必要な箇所にのみニューラルネットワーク処理部による回復処理を施すことが可能となる。すなわち、復号化後にニューラルネットワークを適用して画像の回復処理を行う際に、当該回復処理に係る演算量を低減させることが可能になる。
【0055】
(実施形態2)
次に、実施形態2について説明する。実施形態1では、第1のニューラルネットワークによる回復処理をフラグ情報に応じて実行することで、フラグ情報の確認処理を行うようにした。実施形態2では、当該処理に代えて、第2のニューラルネットワークを用いて回復処理が必要であるか否かを判定したことに応じて、フラグ情報の確認処理を行うようにした。このため、本実施形態は、ニューラルネットワーク処理部105が第2のニューラルネットワークを有すること、及び確認処理に係る動作の一部とが実施形態1と異なる。しかし、本実施形態に係るデジタルカメラ100のその他の構成や、エンコード処理及びデコード処理の動作は、実施形態1と同一又は実質的に同一である。実施形態1と同一又は実質的に同一の構成及び動作については同一の符号を付して説明は省略し、異なる点について重点的に説明する。
【0056】
(画像の回復処理を伴うフラグ情報の確認処理)
図6を参照して、本実施形態に係るフラグ情報の確認処理について説明する。
【0057】
S401において、CPU101は、符号化された画像データに対して復号化処理を実行する。次に、S601において、CPU101は、NNブロックの復号化画像をメモリ102から取得して、ニューラルネットワーク処理部105を制御することで第2のニューラルネットワークによる処理を行う。CPU101は、第2のニューラルネットワークの処理により、NNブロックに対して回復処理を行う優先度情報をメモリ102に格納する。優先度情報は、回復処理を行うべき優先度を示す情報を含む。なお、第2のニューラルネットワークは、第1のニューラルネットワークと類似した入出力特性を有し、第1のニューラルネットワークよりもネットワーク構成が簡略化されている。このため、第1のニューラルネットワークを用いて回復処理の有効性を確認する処理を行うよりも、第2のニューラルネットワークによって優先度を推定することにより、回復処理の必要性の確認を簡易に且つ高速に実行することができるようになる。
【0058】
S602において、CPU101は、S601で得られた優先度情報の優先度に基づき、該当するNNブロックに対して回復処理が必要か否かを判定する。具体的には、優先度情報が示す優先度が所定の閾値を超えているか否かに応じて、回復処理が必要であるか否かを判別する。CPU101は、該当するNNブロックの優先度が所定の閾値を超えている場合には(S602のYES)、S404へ処理を進め、それ以外の場合(S602のNO)には、S405へ処理を進める。なお、NNブロックごとに優先度情報を格納する代わりに、NNブロックのフラグ情報に第2のニューラルネットワークによって得られた優先度情報を付加してもよい。
【0059】
その後、CPU101は、実施形態1と同様にS405を実行して、回復処理が必要でない場合には、フラグ情報を削除したり、その代わりに、効果が無いことを示す所定値又は回復処理が必要でないことを示す値(すなわち0)を設定する。また、S405において、全てのブロックの確認を完了した場合、その後、処理を呼び出し元に戻す。
【0060】
以上説明したように本実施形態では、第2のニューラルネットワークを用いて該当ブロックの回復処理が必要であるかを確認するようにした。第2のニューラルネットワークを第1のニューラルネットワークと類似した入出力特性を持たせ、第1のニューラルネットワークよりもネットワーク構成を簡略化することで、第1のニューラルネットワークを用いる場合よりも高速に処理を行うことが可能となる。
【0061】
(実施形態3)
更に、実施形態3について説明する。上述の実施形態では、1画像の中に設定可能なフラグ情報の数に制限を設けていなかった。このため、第1のニューラルネットワークによる処理を行う際に、全画面に対して実行する場合が発生する可能性を完全に排除するものではなく、画像によって処理時間がかかってしまう場合があり得る。この場合、動画等処理時間に制限がある場合には、再生遅延が発生する可能性がある。そこで、実施形態3では、設定可能なフラグ情報の数に制限を設ける。このため、上述した実施形態とは、エンコード処理が異なるが、デジタルカメラ100の構成やデコード処理に係る一連の動作は、上述した実施形態と同一又は実質的に同一である。このため、同一又は実質的に同一である構成及び動作については重複する説明は省略し、上述した実施形態と異なる点について重点的に説明する。
【0062】
(エンコード処理の一連の動作)
図7を参照して、実施形態3に係るエンコード処理の一連の動作について説明する。なお、この動作は、デジタルカメラ100の電源がオンの状態で、不揮発性メモリ103に格納されているコンピュータプログラムがメモリ102に展開され、CPU101がメモリ102のコンピュータプログラムを読み出して実行することにより実現される。
【0063】
S301において、CPU101は、実施形態1と同様に、符号化処理部114を制御してエンコード処理を実行する。また、S303において、CPU101は、実施形態1と同様に、ブロックごとの劣化情報を抽出する。更に、S304において、CPU101は、実施形態1と同様に、各NNブロックについて、ニューラルネットワーク(第1のニューラルネットワーク)による画像の回復処理を施すか否かを判定する。CPU101は、第1のニューラルネットワークによる画像の回復処理が必要と判定した場合(S304のYES)、処理をS701へ進め、それ以外の場合(S304のNO)、処理をS306へ進める。
【0064】
S701において、CPU101は、該当するNNブロックに対して第1のニューラルネットワークを用いて画像の回復処理を行うNNブロックの優先順位を設定する。CPU101は、例えばQp値の順番により第1の優先順位を設定する。更に、CPU101は、同一Qpの値に対してNNブロックの画面内の配置に応じた第2の優先順位を設定する。第2の優先順位は中央寄りの画像から優先順を高く設定していく。CPU101は、このように設定した優先順位情報をメモリ102に格納する。なお、本実施形態における優先順位の設定方法は一例であり、別途設けたニューラルネットワークを使って優先順位を設定してもよいし、画像の周波数成分で優先順位を決定してもよい。
【0065】
S306において、CPU101は、実施形態1と同様に、全NNブロックに対する処理を行ったと判定した場合(S306のYES)には処理をS702へ進め、それ以外の場合(S306のNO)にはS304へ処理を戻す。
【0066】
S702において、CPU101は、S701で設定した優先順位情報に従って、優先順を設定可能なNNブロックの上限数までフラグ情報を設定する。当該上限数は、例えば、画像に設定可能なブロックのうちの所定の割合に設定することができる。そして、S310において、CPU101は、実施形態1と同様の処理を行って、その後、本一連の動作を終了する。
【0067】
以上説明したように本実施形態では、符号化画像のブロックごとに、ニューラルネットワークにより回復処理を行うブロックの数に制限をかけるようにした。このようにすることで、符号化画像における全てのブロックについて回復処理を実行することによる処理負荷の発生を抑制することができるようになる。
【0068】
なお、上述の実施形態では、上述の各処理がデジタルカメラ100において実行される場合を例に説明したがこれに限定されない。例えば、デジタルカメラ100を複数の装置から構成されるシステムとした場合であっても上述の実施形態と同様の機能を実現することが可能である。更に、デジタルカメラ100の処理の一部をネットワーク上の外部装置により実施して実現することが可能である。また、上述の実施形態では、メモリ102または不揮発性メモリ103から学習済み係数パラメータを取得する場合を例に説明したが、各学習済み係数パラメータを、外部機器から逐次取得するようにしてもよい。
【0069】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0070】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0071】
101…CPU、102…メモリ、103…不揮発性メモリ、105…ニューラルネットワーク処理部、114…符号化処理部