(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0039】
本発明の実施形態で使われる用語は、本発明における機能を考慮しつつ可能な限り、現在広く使われる一般的な用語を選択しているが、それは、当分野に携わる技術者の意図又は判例、新たな技術の出現などによって変わることがある。なお、特定の場合は、出願人が任意に選定した用語もあり、この場合は、該当する発明の説明部分で詳細にその意味を記載する。よって、本発明で使われる用語は、単なる用語の名称ではなく、その用語のもつ意味と本発明の全般に亘る内容に基づいて定義されるべきである。
【0040】
本明細書において、「有する」、「有してよい」、「含む」又は「含んでよい」などの表現は、当該特徴(例えば、数値、機能、動作又は部品などの構成要素)の存在を指し、更なる特徴の存在を排除するものではない。
【0041】
A又は/及びBのうち少なくとも一つという表現は、「A」又は「B」、又は「A及びB」のうちいずれか一つを示すものとして理解されるべきである。
【0042】
本明細書で使われた「第1」、「第2」、「第一」又は「第二」などの表現は、多様な構成要素を、順番及び/又は重要度によらず、数式することができ、いずれの構成要素を別の構成要素と区分するために使うだけで、当該構成要素を限定しない。
【0043】
いずれの構成要素(例えば、第1構成要素)が別の構成要素(例えば、第2構成要素)に「(機能的に又は通信的に)接続されて((operatively or communicatively) coupled with/to)」いるか、「接続されて(connected to)」いると言及された際には、いずれの構成要素が別の構成要素に直接的に接続されるか、別の構成要素(例えば、第3構成要素)を介して接続され得ると理解されるべきである。
【0044】
単数の表現は、文脈上明白にそうでないことを意味しない限り、複数の表現を含む。本出願において、「含む」又は「構成される」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はそれらを組み合わせたものが存在することを指定するためのものであって、一つ又はそれ以上の別の特徴や数字、ステップ、動作、構成要素、部品又はそれらを組み合わせたものの存在又は付加可能性を予め排除しないと理解されるべきである。
【0045】
本発明において、「モジュール」或いは「部」は、少なくとも一つの機能や動作を行い、ハードウェア又はソフトウェアで実現されたり、ハードウェアとソフトウェアとの結合で実現されてよい。なお、複数の「モジュール」或いは複数の「部」は、特定のハードウェアで実現される必要がある「モジュール」或いは「部」を除いては、少なくとも一つのモジュールで一体化されて少なくとも一つのプロセッサ(図示せず)で実現されてよい。
【0046】
本明細書において、ユーザという用語は、電子装置を使う人又は電子装置を使う装置(例えば、人工知能電子装置)を指してよい。
【0047】
以下に、添付の図を参照し、本発明の一実施形態をより詳細に説明する。
【0048】
図1は、本発明の一実施形態に係る電子装置100の実現例を説明するための図である。電子装置100は、
図1に示すように、テレビ、モニタ、スマートフォン、タブレットパソコン、ノートパソコン、HMD(Head Mounted Display)、NED(Near Eye Display)、LFD(Large Format Display)、Digital Signage(デジタル看板)、DID(Digital Information Display)、ビデオウォール(video wall)、プロジェクタディスプレイなどのように、ディスプレイ機能を備えた装置で実現されてよい。
【0049】
又は、電子装置100は、サーバ、BDプレーヤ、ディスクプレーヤ、ストリーミングボックスのように、外部のディスプレイが備えられた装置としてイメージを提供する装置であってよい。
【0050】
電子装置100は、これらの例に限定されるものではなく、イメージを映像処理できる装置なら如何なる装置でも構わない。
【0051】
電子装置100は、多様なタイプのイメージを受信することができる。具体的に、電子装置100は、SD(Standard Definition)、HD(High Definition)、Full HD、Ultra HDイメージのうちいずれか一つのイメージを受信することができる。又は、電子装置100は、MPEG(例えば、MP2、MP4、MP7など)、AVC、H.264、HEVCなどに圧縮した形でイメージを受信することもできる。
【0052】
例えば、電子装置100は、
図1に示すように、電子装置100のディスプレイと解像度が同一で、圧縮されていないイメージ10−1を受信することができる。この場合、電子装置100は、受信されたイメージ10−1に対する映像処理なしに、イメージ10−1をディスプレイすることができるが、常にイメージ10−1のように品質の保障されたイメージが受信されるものではない。
【0053】
例えば、電子装置100は、電子装置100のディスプレイと解像度が同一だが、圧縮によって劣化しているイメージ10−2を受信することもできる。この場合、電子装置100は、劣化しているイメージ10−2の品質を改善する必要がある。
【0054】
又は、電子装置100は、電子装置100のディスプレイより解像度の低いイメージ10−3を受信することもできる。この場合、イメージ10−3に対するアップスケーリングが行われてよいが、品質は低くなることがある。よって、電子装置100は、アップスケーリングされる前のイメージ10−3の品質を改善した後、品質の改善されたイメージをアップスケーリングするかアップスケーリングされたイメージの品質を改善する必要がある。
【0055】
その他にも、電子装置100は、多様なタイプのイメージを受信することができ、各イメージの特性を考慮した品質改善を行う必要がある。以下では、電子装置100のイメージ品質改善方法及び多様な実施形態について説明する。
【0056】
図2は、本発明の一実施形態に係る電子装置100の構成を示すブロック図である。
図2によると、電子装置100は、メモリ110及びプロセッサ120を含む。
【0057】
メモリ110は、プロセッサ120と電気的に接続され、本発明の多様な実施形態のために必要なデータを保存することができる。例えば、メモリ110は、プロセッサ120に含まれたROM(例えば、EEPROM(electrically erasable programmable read−only memory))、RAMなどの内部メモリで実現されたり、プロセッサ120と別途のメモリで実現されてよい。この場合、メモリ110は、データ保存用途に応じて、電子装置100にエンベデッドされたメモリで実現されたり、電子装置100に着脱可能なメモリで実現されてよい。例えば、電子装置100の駆動のためのデータの場合、電子装置100にエンベデッドされたメモリに保存され、電子装置100の拡張機能のためのデータの場合、電子装置100に着脱が可能なメモリに保存されてよい。一方、電子装置100にエンベデッドされたメモリの場合、揮発性メモリ(例えば、DRAM(dynamic RAM)、SRAM(static RAM)、又はSDRAM(synchronous dynamic RAM)など)、非揮発性メモリ(non−volatile Memory)(例えば、OTPROM(one time programmable ROM)、PROM(programmable ROM)、EPROM(erasable and programmable ROM)、EEPROM(electrically erasable and programmable ROM)、mask ROM、flash ROM、フラッシュメモリ(例えば、NAND flash又はNOR flashなど)、ハードドライブ、又はソリッドステートドライブ(solid state drive(SSD))のうち少なくとも一つで実現され、電子装置100に着脱が可能なメモリの場合、メモリカード(例えば、CF(compact flash)、SD(secure Digital)、Micro−SD(Micro secure Digital)、Mini−SD(mini secure Digital)、xD(extreme Digital)、MMC(multi−media card)など)、USBポートに接続可能な外部メモリ(例えば、USBメモリ)などのような形態で実現されてよい。
【0058】
メモリ110は、入力イメージの品質を改善するために用いられる学習ネットワークモデルを保存することができる。ここで、学習ネットワークモデルは、複数のサンプルイメージ、各サンプルイメージに対するノイズマップ及び各サンプルイメージに対応する原本イメージに基づいて機械学習(Machine Learning)されたモデルであってよい。例えば、学習ネットワークモデルは、複数のサンプルイメージ、各サンプルイメージに対するノイズマップ及び各サンプルイメージに対応する原本イメージにCNN(Convolution Neural Network、畳み込みニューラルネットワーク)学習されたモデルであってよい。ここで、CNNは、音声処理、イメージ処理などのために考案された特殊な接続構造を有する多層ニューラルネットワークである。
【0059】
ただし、それは一実施形態に過ぎず、学習ネットワークモデルは、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)など、多様なニューラルネットワーク(Neural Network)に基づいた学習ネットワークモデルであってよい。
【0060】
一方、ノイズマップは、入力イメージの品質を示してよい。例えば、ノイズマップは、入力イメージに含まれた各ピクセルの品質を示す情報を含み、この場合、ノイズマップの大きさは、入力イメージの大きさと同じであってよい。仮に、入力イメージが4×4サイズなら、ノイズマップも4×4サイズであってよい。ただ、それに限定されるものではなく、ノイズマップが入力イメージの品質を示すとしたら、その形態、情報の表示方法などはいくらでも様々な方法が用いられてよい。仮に、ノイズマップの単位情報は、入力イメージの各ピクセル値に対応するものではなく、入力イメージの予め設定された大きさの領域別平均値に対応してよい。
【0061】
メモリ110は、入力イメージのノイズマップを獲得するためのノイズマップ生成モデルを更に保存することができる。ここで、ノイズマップ生成モデルは、複数のサンプルイメージ及び各サンプルイメージに対するノイズマップに基づいて機械学習されたモデルであってよい。
【0062】
入力イメージの品質を改善するために用いられる学習ネットワークモデル及びノイズマップ生成モデルに対する具体的な説明は、図面を参照して後述する。
【0063】
プロセッサ120は、メモリ100と電気的に接続され、電子装置100の動作全般を制御する。
【0064】
一実施形態によって、プロセッサ120は、デジタル映像信号を処理するデジタルシグナルプロセッサ(digital signal processor(DSP))、マイクロプロセッサ(microprocessor)、T−CON(Timing controller)で実現されてよい。ただ、それに限定されるものではなく、中央処理装置(central processing unit(CPU))、MCU(Micro Controller Unit)、MPU(Micro Processing Unit)、コントローラ(controller)、アプリケーションプロセッサ(Application Processor(AP))、又はコミュニケーションプロセッサ(Communication Processor(CP))、ARMプロセッサのうち、一つ又はそれ以上を含むか、当該用語で定義されてよい。なお、プロセッサ120は、プロセッシングアルゴリズムの内蔵されたSoC(System on Chip)、LSI(Large Scale Integration)で実現されてよく、FPGA(Field Programmable Gate Array)形態で実現されてよい。
【0065】
プロセッサ120は、入力イメージを映像処理して入力イメージの品質の改善された出力イメージを獲得することができる。
【0066】
特に、プロセッサ120は、入力イメージから入力イメージの品質を示すノイズマップを獲得し、入力イメージ及びノイズマップを複数のレイヤを含む学習ネットワークモデルに適用して入力イメージの品質の改善された出力イメージを獲得することができる。入力イメージの品質改善過程で入力イメージから獲得されたノイズマップが用いられることで、入力イメージのタイプに応じて適応的に品質改善が行われ、品質改善効果が向上し得る。
【0067】
ここで、学習ネットワークモデルは、複数のサンプルイメージ、各サンプルイメージに対するノイズマップ及び各サンプルイメージに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。なお、学習ネットワークモデルの複数のレイヤは、入力レイヤ、中間レイヤ及び出力レイヤを含んでよい。入力レイヤは、複数のレイヤのうち最も先に演算が行われるレイヤであり、出力レイヤは、複数のレイヤのうち最も最後に演算が行われるレイヤであり、中間レイヤは、入力レイヤ及び出力レイヤの間に配置されたレイヤであってよい。
【0068】
そして、プロセッサ120は、複数のレイヤのうち、少なくとも一つの中間レイヤにノイズマップを提供することができる。特に、プロセッサ120は、複数のレイヤのそれぞれにノイズマップを提供するか、複数のレイヤのうち入力レイヤを除く残りのレイヤのそれぞれにノイズマップを提供することができる。このような動作を通じ、入力イメージの品質改善過程でイメージの品質が継続的に反映されて品質改善性能が向上されてよい。
【0069】
仮に、複数のレイヤのうち、入力レイヤにのみノイズマップが提供されるとすると、複数のレイヤを通るうちに、ノイズマップの特性が劣化して品質改善性能が低下してしまうことが懸念される。
【0070】
又は、複数のレイヤのうち、出力レイヤにのみノイズマップが提供されるとすると、複数のレイヤを通る間にノイズマップが反映されず、結局出力レイヤにのみノイズマップを反映させた状態で品質改善を試みることになる。通常、学習ネットワークモデルのレイヤが多くなるにつれて性能が向上するという点を考慮すると、出力レイヤ一つのみでノイズマップを反映しようとしても性能の向上は期待し難いことが予想される。
【0071】
よって、プロセッサ120は、少なくとも一つの中間レイヤにノイズマップを提供することにより、入力レイヤ又は出力レイヤにのみノイズマップを提供する場合よりも品質改善効果を向上させることができる。
【0072】
一方、学習ネットワークモデルは、少なくとも一つのサブレイヤを更に含み、プロセッサ120は少なくとも一つのサブレイヤを用いてノイズマップを処理し、少なくとも一つの中間レイヤに処理されたノイズマップを提供することができる。
【0073】
プロセッサ120は、少なくとも一つの中間レイヤのそれぞれの以前レイヤから出力される出力データに対応する複数のチャネル及び追加チャネルを少なくとも一つの中間レイヤのそれぞれに提供することができる。ここで、追加チャネルは、少なくとも一つの中間レイヤのそれぞれに対応するサブレイヤから出力される処理されたノイズマップであってよい。即ち、プロセッサ120は、少なくとも一つの中間レイヤのそれぞれの以前レイヤから出力される出力データと少なくとも一つの中間レイヤのそれぞれに対応するサブレイヤから出力される処理されたノイズマップをミキシングせずに、並列的に接続して少なくとも一つの中間レイヤのそれぞれに提供してよい。
【0074】
一方、プロセッサ120は、学習ネットワークモデルに含まれた複数のレイヤのうち、入力レイヤに入力イメージを提供してよい。この場合、学習ネットワークモデルは、複数のレイヤのうち入力レイヤに提供された複数のサンプルイメージのそれぞれと少なくとも一つの中間レイヤに提供された複数のサンプルイメージのそれぞれのノイズマップが、複数のレイヤによって順次に処理されて獲得された出力イメージ、及び複数のサンプルイメージのそれぞれに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0075】
又は、プロセッサ120は、入力レイヤに入力イメージを提供し、出力レイヤの出力データ及び入力イメージをミキシングして出力イメージを獲得することもできる。即ち、プロセッサ120は、入力レイヤだけでなく、出力レイヤの後端にも入力レイヤを提供することもできる。この場合、学習ネットワークモデルは、複数のレイヤのうち入力レイヤに提供された複数のサンプルイメージのそれぞれと少なくとも一つの中間レイヤに提供された複数のサンプルイメージのそれぞれのノイズマップが、複数のレイヤによって順次に処理されて獲得された出力データと複数のサンプルイメージのそれぞれがミキシングされた出力イメージ、及び複数のサンプルイメージのそれぞれに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0076】
ここで、複数のサンプルイメージのそれぞれは、原本イメージの圧縮された圧縮イメージであり、各サンプルイメージに対するノイズマップは、各サンプルイメージ及び各サンプルイメージに対応する原本イメージから獲得されたノイズマップであってよい。
【0077】
一方、プロセッサ120は、入力イメージを複数のレイヤを含むノイズマップ生成モデルに適用してノイズマップを獲得することができる。ここで、ノイズマップ生成モデルは、複数のサンプルイメージ及び各サンプルイメージに対するノイズマップの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0078】
一方、イメージの品質改善のための学習ネットワークモデルを学習する場合、及びノイズマップ生成モデルを学習する場合、いずれも同様の複数のサンプルイメージ及び各サンプルイメージに対するノイズマップを用いることができる。ただ、それに限定されるものではなく、イメージの品質改善のための学習ネットワークモデルを学習する場合の学習データとノイズマップ生成モデルを学習する場合の学習データとは相互異なってよい。
【0079】
一方、電子装置100は、ディスプレイ(図示せず)を更に含み、プロセッサ120は、ディスプレイの解像度に基づいて出力イメージの解像度を変換し、解像度の変換されたイメージをディスプレイするようにディスプレイを制御することができる。ここで、解像度の変換されたイメージは、4K UHD(Ultra High Definition)イメージ又は8K UHDイメージであってよい。
【0080】
又は、プロセッサ120は、動画に含まれた複数のフレームのそれぞれを入力イメージとして学習ネットワークモデルに適用して動画の品質の改善された出力動画を獲得することもできる。例えば、プロセッサ120は、動画をデコードし、デコードされた動画の各フレームを入力イメージとして学習ネットワークモデルに適用して品質を改善し、複数の品質の改善されたフレームを組み合わせて品質の改善された出力動画を獲得することもできる。ここで、プロセッサ120は、各フレームのノイズマップを獲得し、各フレームの品質改善に獲得されたノイズマップを用いることもできる。
【0081】
以上のように、プロセッサ120は、ノイズマップを入力イメージとして獲得することにより、適応的に入力イメージの品質を改善することができる。なお、プロセッサ120は、学習ネットワークモデルに含まれた複数のレイヤのうち少なくとも一つの中間レイヤにノイズマップを提供することで、入力イメージの品質を継続的に反映いした状態で映像処理を行うことができる。それにより、入力イメージの品質改善性能が向上してよい。
【0082】
以下では、図面を参照し、プロセッサ120の動作をより具体的に説明する。
【0083】
図3A及び
図3Bは、本発明の多様な実施形態に係る学習ネットワークモデル及びノイズマップ生成モデルを説明するための図である。
【0084】
まず、プロセッサ120は、
図3Aに示すように、入力イメージをノイズマップ生成モデル(Quality Estimation Convolution Neural Network:QECNN)310に適用してノイズマップを獲得することができる。
【0085】
ノイズマップ生成モデル310は、複数の畳み込みレイヤを含んでよい。例えば、複数の畳み込みレイヤのそれぞれは、5×5のカーネルを用いて入力データに対する畳み込みを行うことができる。ただ、それに限定されるものではなく、任意の別の形態のカーネルが用いられてよい。なお、一つの畳み込みレイヤは、複数のカーネルをそれぞれ用いて入力データに対する畳み込みを行うこともできる。
【0086】
複数の畳み込みレイヤのうちの一部は畳み込みを行った後、ReLU(Rectified Linear Unit)関数を用いて入力データを処理することもできる。ReLU関数は、入力値が0より小さい場合は0に変換し、入力値が0より大きい場合には入力値をそのまま出力する関数である。ただ、それに限定されるものではなく、様々な活性化関数を利用することができる。例えば、複数の畳み込みレイヤのうちの一部は、シグモイド関数を用いて入力データを処理することもできる。
【0087】
プロセッサ120は、入力イメージを学習ネットワークモデル(Compression Artifact Reduction Convolution Neural Network:CARCNN)320−1に適用して入力イメージの品質の改善された出力イメージを獲得することができる。このとき、プロセッサ120は、複数のレイヤのうち少なくとも一つの中間レイヤにノイズマップを提供することができる。例えば、プロセッサ120は、
図3Aに示すように、複数のレイヤのうち入力レイヤを除く残りのレイヤのそれぞれにノイズマップを提供することができる。
【0088】
学習ネットワークモデル320−1は、複数の畳み込みレイヤ及び複数のサブ畳み込みレイヤ330を含んでよい。例えば、複数の畳み込みレイヤのそれぞれは、3×3のカーネルを用いて入力データに対する畳み込みを行い、複数のサブ畳み込みレイヤ330は、1×1のカーネルを用いてノイズマップに対する畳み込みを行うことができる。ただ、それに限定されるものではなく、いくらでも別の形態のカーネルが用いられてよい。なお、一つの畳み込みレイヤは、複数のカーネルをそれぞれを用いて入力データに対する畳み込みを行うこともできる。
【0089】
複数の畳み込みレイヤのうちの一部は畳み込みを行った後、ReLU関数を用いて入力データを処理することもできる。複数の畳み込みレイヤのうちの別の一部は、畳み込みを行った後、バッチ正規化(Batch Normalization:BN)及びReLU関数を用いて、入力データを処理することもできる。バッチ正規化は、速い学習速度の確保のために、各レイヤの分布を同様にする作業である。
【0090】
複数の畳み込みレイヤのうち入力レイヤから出力される出力データは、入力レイヤに含まれたカーネルの数に対応するチャネルに区分されてよい。そして、複数のサブ畳み込みレイヤ330のうち入力レイヤに対応するサブ畳み込みレイヤ330から出力される出力データは、入力レイヤから出力される出力データに接続(concatenation)され、入力レイヤの次のレイヤに入力されてよい。例えば、入力レイヤから36のチャネルで構成された出力データが出力され、入力レイヤに対応するサブ畳み込みレイヤ330から1のチャネルで構成された出力データが出力され、計37のチャネルで構成された出力データが入力レイヤの次のレイヤに入力されてよい。チャネルの数は、複数の畳み込みレイヤのそれぞれの特性に応じて異なってよく、残りの畳み込みレイヤでも類似する動作を行うことができる。
【0091】
プロセッサ120は、複数の畳み込みレイヤのうち、出力レイヤの出力データ及び入力イメージをミキシングして入力イメージの品質の改善された出力イメージを獲得することができる。
【0092】
以上のように、プロセッサ120は、入力イメージに対応するノイズマップを獲得し、入力イメージの品質改善過程でノイズマップを継続的に反映することで品質改善性能を向上させることができる。
【0093】
一方、
図3Aの学習ネットワークモデル320−1は、DnCNN(Denoise Convolution Neural Network)形態にノイズマップを継続的に反映するための複数のサブ畳み込みレイヤ330が追加された形態を示しているが、
図3Bのように、学習ネットワークモデル320−2は、RDN(Residual Dense Network)形態にノイズマップを継続的に反映するための複数のサブ畳み込みレイヤ330が追加された形態で実現されてよい。
図3BのRDB(Residual Dense Block)レイヤは、ResidualブロックとDenseブロックとが組み合わせられた形態で複数の畳み込みレイヤを含み、複数の畳み込みレイヤのそれぞれの出力が順次に次の畳み込みレイヤに入力されて更に別の位置に配置された畳み込みレイヤにも入力されてよい。そして、RDBレイヤの最初の入力データと最後のレイヤを通ったデータのミキシングされた出力データがRDBレイヤから出力されてよい。
図3Bの場合にも、
図3Aと同様のノイズマップ生成モデル310が用いられてよい。
【0094】
学習ネットワークモデル320−1は、これらの例に限定されるものではなく、ノイズマップを継続的に反映することができる形態なら、如何なる基本モデルを用いるとしても構わない。
【0095】
一方、
図3A及び
図3Bのモデルは、ソフトウェアとして実現されてメモリ110に保存された状態であり、プロセッサ120は、メモリ110から各レイヤの動作を行うためのデータを読み出して入力イメージに対する処理を行うことができる。
【0096】
図4は、本発明の一実施形態に係るノイズマップ生成モデルの学習方法を説明するための図である。
【0097】
ノイズマップ生成モデルは、複数のサンプルイメージ及び各サンプルイメージに対するノイズマップの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。例えば、
図4に示すように、ノイズマップ生成モデルは、第1サンプルイメージ410−1の入力による出力データと第1サンプルイメージ410−1の第1ノイズマップ420−1の関係を人工知能アルゴリズムを通じて学習してよい。そして、残りのデータの対(410−2、420−2)、(410−3、420−3)、(410−4、420−4)、…の関係についても、同様の学習過程を繰り返してノイズマップ生成モデルが獲得されてよい。ここで、各サンプルイメージに対するノイズマップは、ルールベースの予め設定されたアルゴリズムを通じて獲得されたノイズマップであってよい。例えば、第1サンプルイメージ410−1ないし第4サンプルイメージ410−4は、それぞれJPEG品質10、30、50、90のイメージであり、第1ノイズマップ420−1ないし第4ノイズマップ420−4は、それぞれ第1サンプルイメージ410−1ないし第4サンプルイメージ410−4の対するノイズマップであってよい。
【0098】
一方、ノイズマップ生成モデルは、電子装置100ではない、他の装置で学習されたモデルであってよい。ただ、それに限定されるものではなく、電子装置100のプロセッサ120がノイズマップ生成モデルを学習することもできる。
【0099】
図5は、本発明の一実施形態に係るイメージの品質を改善する学習ネットワークモデルの学習方法をするための図である。
【0100】
学習ネットワークモデルの学習方法は、複数のサンプルイメージ、各サンプルイメージに対するノイズマップ及び各サンプルイメージに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。例えば、
図5に示すように、学習ネットワークモデルは、第1サンプルイメージ520−1の入力及び第1サンプルイメージ520−1に対する第1ノイズマップ530−1の入力による出力データと第1サンプルイメージ520−1に対応する原本イメージ510の関係を人工知能アルゴリズムを通じて学習してよい。そして、残りのデータグループ(520−2、530−2、510)、(520−3、530−3、510)の関係に対しても、同じ学習過程を繰り返して学習ネットワークモデルが獲得されてよい。ここで、各サンプルイメージに対するノイズマップは、ルールベースの予め設定されたアルゴリズムを通じて獲得されたノイズマップであってよい。
【0101】
一方、
図5では、原本イメージ510が一種類であるとして示されているが、実際の学習過程では複数の原本イメージが用いられてよい。即ち、
図5の原本イメージ510の他に、追加の原本イメージ及び追加の原本イメージを様々な圧縮率で圧縮した複数のサンプルイメージ、及び各サンプルイメージに対するノイズマップが学習過程で用いられてよい。
【0102】
一方、学習ネットワークモデルは、電子装置100でない別の装置で学習されたモデルであってよい。ただ、それに限定されるものではなく、電子装置100のプロセッサ120が学習ネットワークモデルを学習することもできる。
【0103】
図6は、本発明の一実施形態に係る電子装置100の細部構成を示すブロック図である。
図6によると、電子装置100は、メモリ110、プロセッサ120、入力部130、ディスプレイ140及びユーザインターフェース150を含んでよい。
【0104】
メモリ110には、少なくとも一つの命令語が保存されてよい。プロセッサ120は、メモリ110に保存された命令語を実行し、上述のような入力イメージのノイズマップ獲得動作、入力イメージの品質改善動作、各人工知能モデルの学習動作などを行うことができる。
図6に示す構成のうち、
図2に示す構成と重複する構成については、詳細な説明を省略する。
【0105】
入力部130は、多様なタイプのコンテンツ、例えば、入力イメージを受信する、例えば、入力部130は、APベースのWi−Fi(Wireless LANネットワーク)、ブルートゥース(登録商標(Bluetooth))、Zigbee、有/無線LAN(Local Area Network)、WAN、イーサネット(登録商標)、IEEE 1394、HDMI(登録商標(High Definition Multimedia Interface))、MHL(Mobile High−Definition Link)、USB(Universal Serial Bus)、DP(Display Port)、サンダーボルト(Thunderbolt)、VGA(Video Graphics Array)ポート、RGBポート、D−SUB(D−subminiature)、DVI(Digital Visual Interface)などのような通信方式を通じて外部装置(例えば、ソース装置)、外部保存媒体(例えば、USB)、外部サーバ(例えば、ウェブハード)などからストリーミング又はダウンロードの方式で映像信号を受信することができる。ここで、入力イメージは、デジタル信号であってよいが、それに限定されるものではない。なお、入力部130を介して動画が受信されてよい。
【0106】
ディスプレイ140は、LCD(liquid crystal display)、OLED(organic light−emitting Diode)、ED(Light−Emitting Diode)、micro LED、LCoS(Liquid Crystal on Silicon)、DLP(Digital Light Processing)、QD(quantum dot)ディスプレイパネルなどのような多様な形態で実現できる。
【0107】
プロセッサ120は、入力イメージの品質の改善された出力イメージをディスプレイするようにディスプレイ140を制御してよい。
【0108】
ユーザインターフェース150は、ボタン、タッチパッド、マウス及びキーボードのような装置で実現されるか、上述のディスプレイ機能及び操作入力機能も併せて実行可能なタッチスクリーン、リモコン受信部などで実現されてよい。ここで、ボタンは、電子装置100の本体外観の全面部や側面部、背面部などの任意の領域に形成された機械的ボタン、タッチパッド、ホイールなどのような多様なボタンであってよい。
【0109】
プロセッサ120は、ユーザインターフェース150を介して入力されたユーザ命令に応じて入力イメージの品質改善動作を行ってよい。
【0110】
図7は、本発明の一実施形態に係る学習ネットワークモデルを学習して利用するための構成を示すブロック図である。学習と映像処理が別個の装置で行われてよいが、
図7では、説明の便宜上、電子装置100が学習ネットワークモデルを学習するものとして説明する。
【0111】
図7を参照すると、プロセッサ120は、学習部710又は映像処理部720のうち少なくとも一方を含んでよい。
【0112】
学習部710は、入力イメージからノイズマップを獲得するモデル及び入力イメージの品質を改善するモデルを生成又は学習させることができる。学習部710は、収集された学習データを用いて判断基準を有する認識モデルを生成することができる。
【0113】
一例として、学習部710は、入力イメージ及び入力イメージに対するノイズマップを学習データとして用いて入力イメージからノイズマップを獲得するためのモデルを生成、学習又は更新させることができる。なお、学習部710は、入力イメージ、入力イメージに対するノイズマップ及び入力イメージに対応する原本イメージを学習データとして用いて、入力イメージ及びノイズマップから原本イメージを獲得するためのモデルを生成、学習又は更新させることができる。
【0114】
映像処理部720は、所定のデータ(例えば、入力イメージ)を学習ネットワークモデルの入力データとして使用し、所定のデータの品質の改善された出力データを獲得することができる。
【0115】
一例として、映像処理部720は、入力イメージのノイズマップを獲得し、ノイズマップに基づいて入力イメージの品質の改善された出力イメージを獲得することができる。
【0116】
学習部710の少なくとも一部及び映像処理部720の少なくとも一部は、ソフトウェアモジュールで実現されてもよいし、少なくとも一つのハードウェアチップで製作され、電子装置100に搭載されてよい。例えば、学習部710及び映像処理部720のうち少なくとも一つは、人工知能(AI:Artificial Intelligence)のための専用ハードウェアチップで製作されてよく、又は従来の汎用プロセッサ(例えば、CPU又はApplication Processor)又はグラフィック専用プロセッサ(例えば、GPU)の一部で製作され、上述の各種電子装置又は客体認識装置に搭載されてよい。このとき、人工知能のための専用ハードウェアチップは、確率演算に特化している専用プロセッサとして、従来の汎用プロセッサより並列処理性能が高く、機械学習のような人工知能分野の演算作業を素早く処理することができる。学習部710及び映像処理部720がソフトウェアモジュール(又は、命令(instruction)を含むプログラムモジュール)で実現される場合、ソフトウェアモジュールは、コンピュータで読み取れる読み取り可能な非一時的な読み取り可能記録媒体(non−transitory computer readable media)に保存されてよい。この場合、ソフトウェアモジュールは、OS(Operating System)によって提供されるか、所定のアプリケーションによって提供されてよい。又は、ソフトウェアモジュールのうち一部は、OSによって提供され、残りの一部は所定のアプリケーションによって提供されてよい。
【0117】
この場合、学習部710及び映像処理部720は、一つの電子装置に搭載されてよく、又は別個の映像処理装置にそれぞれ搭載されてよい。例えば、学習部710及び映像処理部720のうちの一方は、電子装置100に含まれ、他方は外部のサーバに含まれてよい。なお、学習部710及び映像処理部720は、有線又は無線で学習部710の構築したモデル情報を映像処理部720に提供することもでき、学習部710に入力されたデータが追加学習データとして学習部710に提供されてよい。
【0118】
図8A及び
図8Bは、本発明の多様な実施形態に係るノイズマップ生成モデルの性能を説明するための図である。
【0119】
まず、
図8Aには、イメージの品質による第1ノイズマップとノイズマップ生成モデルから出力された第2ノイズマップの平均二乗誤差(Mean Square Error)を示しており、LIVE1映像データセットが用いられている。例えば、原本イメージを圧縮する場合、圧縮されたイメージからルールベースの予め設定されたアルゴリズムを通じて第1ノイズマップを獲得することができ、圧縮されたイメージをノイズマップ生成モデルに適用して第2ノイズマップを獲得することができ、第1ノイズマップ及び第2ノイズマップの平均二乗誤差を獲得することができる。
【0120】
図8AのQ(圧縮因子)は、圧縮による品質を示し、10から90に進むにつれて原本イメージに近づく。なお、レイヤが8個である場合、12個の場合及び16個の場合を区分しており、レイヤが多くなるにつれて平均二乗誤差が低くなり得る。それは、
図8Bにより明確に示されている。
【0121】
そして、レイヤが一定数以上である場合、Qとは関係なく、第1ノイズマップと非常に類似する第2ノイズマップが獲得されていることが分かる。
【0122】
図9A及び
図9Bは、本発明の多様な実施形態に係る入力イメージの品質を改善する学習ネットワークモデルの性能を説明するための図である。
【0123】
図9Aは、classic5又はLIVE1映像データセットでQが10から90までの圧縮イメージを多様な方法で圧縮雑音を軽減させた後、算出した平均PSNR/SSIM結果を示す。PSNR(Peak Signal−to−Noise Ratio)は、最大信号対雑音比として、信号が有することができる最大電力に対する雑音の電力を示し、SSIM(Structural Similarity Index)は、構造的な類似指数として、圧縮及び変換によって発生する歪曲に対して原本映像に対する類似度を示す。
【0124】
図9Aに示すように、Qが高くなるにつれて品質改善性能が優れており、従来のDnCNNよりQEDnCNNの性能が改善されており、従来のRDNよりQERDNの性能が改善されていることを確認することができる。
【0125】
図9Bは、QEDnCNNとQERDNとを比較した図として、通常、QEDnCNNがQERDNより性能が優れていることが分かる。
【0126】
図10A及び
図10Bは、本発明の多様な拡張実施形態を説明するための図である。
【0127】
プロセッサ120は、入力イメージ内の客体領域及び背景領域を区分して入力イメージの品質を改善することもできる。例えば、プロセッサ120は、
図10Aに示すように、原本イメージを客体のみを含む客体イメージおよび客体を除く残りの領域のみを含む背景イメージに区分し、客体イメージ及び背景イメージのそれぞれの品質を改善し、品質の改善された客体イメージ及び品質の改善された背景イメージを合成して品質の改善された出力イメージを獲得することもできる。
【0128】
プロセッサ120は、多様な方法で入力イメージの客体領域及び背景領域を識別することができる。例えば、プロセッサ120は、ピクセル値に基づいて入力イメージ内で予め設定された形状の客体を識別し、客体の識別された領域を除く残りの領域を背景領域に識別することができる。
【0129】
又は、プロセッサ120は、客体認識のための人工知能モデルを用いて入力イメージ内で予め設定された形状の客体を識別し、客体の識別された領域を除く残りの領域を背景領域に識別することもできる。
【0130】
以上の例は一実施形態に過ぎず、プロセッサ120は、いくらでも多様な方法で入力イメージ内の客体領域及び背景領域を識別することができる。
【0131】
プロセッサ120は、複数のイメージ品質改善モデルを用いて客体領域及び背景領域を区分してイメージ処理することができる。例えば、プロセッサ120は、
図10Bに示すように、入力イメージ及び入力イメージ内の客体領域情報を第1イメージ品質改善モデル1010に適用して入力イメージ内の客体領域の品質を改善し、入力イメージ及び入力イメージ内の背景領域情報を第2イメージ品質改善モデル1020に適用して入力イメージ内の背景領域の品質を改善することができる。そして、プロセッサ120は、品質の改善された客体領域及び品質の改善された背景領域を合成し、入力イメージの品質の改善された出力イメージを獲得することができる。
【0132】
ここで、客体領域情報は、
図10Aの左下のような図であり、背景領域情報は、
図10Aの右下のような図であってよい。又は、客体領域情報及び背景領域情報は、ピクセル値を含まずに、客体領域と背景領域とを区分するための領域情報のみを含むこともできる。例えば、客体領域情報は、客体領域を1に表示し、背景領域を0に表示するイメージであり、背景領域情報は背景領域を1に表示し、客体領域を0に表示するイメージであってよい。
【0133】
第1イメージ品質改善モデル1010は、入力イメージからノイズマップを獲得するための第1ノイズマップ生成モデル及び入力イメージの客体領域の品質を改善するための第1学習ネットワークモデルを含んでよい。そして、第2イメージ品質改善モデル1020は、入力イメージからノイズマップを獲得するための第2ノイズマップ生成モデル及び入力イメージの背景領域の品質を改善するための第2学習ネットワークモデルを含んでよい。
【0134】
第1ノイズマップ生成モデルは、客体領域のノイズマップを生成するためのモデルであり、第2ノイズマップ生成モデルは、背景領域のノイズマップを生成するためのモデルであってよい。
【0135】
第1学習ネットワークモデルは、客体領域のイメージ品質を改善するためのモデルであり、第2学習ネットワークモデルは、背景領域のイメージ品質を改善するためのモデルであってよい。そのために、第1学習ネットワークモデル及び第2学習ネットワークモデルは、学習過程で相互異なるサンプルイメージが用いられてよい。例えば、第1学習ネットワークモデルは、原本イメージと原本イメージの解像度を下げた後でアップスケーリングしたイメージを学習させて生成され、第2学習ネットワークモデルは、原本イメージと原本イメージにノイズを追加したイメージを学習させて生成されてよい。この場合、プロセッサ120は、第1学習ネットワークモデルを用いて客体領域の解像度が拡大されたような鮮明な結果物を獲得し、第2学習ネットワークモデルを用いて背景領域のノイズが除去された結果物を獲得することができる。プロセッサ120は、以上のような方法を通じ、客体領域及び背景領域に対して異なるイメージ処理を行うことができる。
【0136】
図10Bでは、入力イメージのみが第1ノイズマップ生成モデル及び第2ノイズマップ生成モデルに適用するものとして示しているが、それに限定されるものではない。例えば、入力イメージだけでなく、客体領域情報を第1ノイズマップ生成モデルに更に適用し、入力イメージだけでなく背景領域情報を第2ノイズマップ生成モデルに更に適用することもできる。
【0137】
又は、プロセッサ120は、一つのイメージ品質改善モデルを用いて客体領域及び背景領域を区分してイメージ処理することができる。例えば、プロセッサ120は、
図10Cに示すように、入力イメージ及びノイズマップだけでなく、客体領域情報又は背景領域情報のうち、少なくとも一方を学習ネットワークモデル(CARCNN)に更に適用して入力イメージの品質の改善された出力イメージを獲得することもできる。
【0138】
ここで、客体領域情報及び背景領域情報は、
図10Bと同様であってよい。又は、客体領域情報及び背景領域情報として客体領域を1に表現し、背景領域を0に表現する一つのイメージが用いられてよい。ただ、それに限定されるものではなく、客体領域及び背景領域を区分することができれば、如何なる方法でも構わない。
【0139】
学習ネットワークモデルは、客体領域情報及び背景領域情報のタイプに対応するように学習されたモデルであってよい。仮に、客体領域を1に表現し、背景領域を0に表現した一つのイメージを用いる場合、学習過程でも同じタイプのイメージが用いられてよい。
【0140】
なお、学習ネットワークモデルの学習過程で用いられる複数のサンプルイメージも、客体領域及び背景領域の品質改善方式が相互異なるサンプルイメージであってよい。仮に、複数のサンプルイメージの客体領域は、背景領域より高い水準で品質の改善された領域であってよい。ここで、複数のサンプルイメージは、原本イメージの劣化を通じて獲得されてよい。即ち、複数のサンプルイメージは、原本イメージの客体領域と背景領域とが相互異なる水準で劣化する方法を通じて獲得されてよい。又は、複数のサンプルイメージのそれぞれは、対応する原本イメージの客体領域及び背景領域が異なる方式で圧縮された圧縮イメージであってよい。
【0141】
即ち、
図10Cの学習ネットワークモデルは、入力イメージの客体領域及び背景領域を識別し、客体領域及び背景領域を区分して品質改善を行うことができる。
【0142】
図10Cにおいて、イメージ品質改善モデルは、ノイズマップ生成モデル(QECNN)及び学習ネットワークモデルを含み、入力イメージのみがノイズマップ生成モデルに適用されるものとして示しているが、それに限定されるものではない。例えば、プロセッサ120は、入力イメージだけでなく、客体領域情報又は背景領域情報のうち少なくとも一方をノイズマップ生成モデルに更に適用して入力イメージに対するノイズマップを獲得することもできる。
【0143】
又は、プロセッサ120は、入力イメージを複数のブロックに区分し、各ブロックを客体領域及び背景領域に区分し、客体領域及び背景領域を別途の人工知能アルゴリズムを通じて処理することもできる。例えば、プロセッサ120は、
図10Dに示すように、入力イメージを予め設定された大きさのブロックに順次に区分し、各ブロックが客体領域か背景領域かを識別することができる。そして、プロセッサ120は、客体領域に識別されたブロックを第1イメージ品質改善モデル1030に適用して第1出力ブロック1050−1を獲得し、背景領域に識別されたブロックを第2イメージ品質改善モデル1040に適用して第2出力ブロック1050−2を獲得し、第1出力ブロック1050−1及び第2出力ブロック1050−2を組み合わせて出力イメージを獲得することができる。
【0144】
ここで、第1イメージ品質改善モデル1030の学習過程では客体領域を示す複数のサンプルブロックが用いられてよく、第2イメージ品質改善モデル1040の学習過程では背景領域を示す複数のサンプルブロックが用いられてよい。
【0145】
以上のように、プロセッサ120は、入力イメージ内の客体領域と背景領域とを区分し、入力イメージの品質を改善することもできる。
【0146】
図11は、本発明の一実施形態に係る電子装置の映像処理方法を説明するためのフローチャートである。
【0147】
まず、入力イメージから入力イメージの品質を示すノイズマップを獲得する(S1110)。そして、学習ネットワークモデルに含まれた複数のレイヤのうち、入力レイヤに入力イメージを提供し、複数のレイヤのうち、少なくとも一つの中間レイヤにノイズマップを提供する(S1120)。そして、入力イメージ及びノイズマップを学習ネットワークモデルに適用して入力イメージの品質の改善された出力イメージを獲得する(S1130)。ここで、学習ネットワークモデルは、複数のサンプルイメージ、各サンプルイメージに対するノイズマップ及び各サンプルイメージに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0148】
ここで、学習ネットワークモデルは、少なくとも一つのサブレイヤを更に含み、提供するステップ(S1120)は、少なくとも一つのサブレイヤを用いてノイズマップを処理し、少なくとも一つの中間レイヤに処理されたノイズマップを提供することができる。
【0149】
そして、提供するステップ(S1120)は、少なくとも一つの中間レイヤのそれぞれの以前レイヤから出力される出力データに対応する複数のチャネル及び追加チャネルを少なくとも一つの中間レイヤのそれぞれに提供し、追加チャネルは、少なくとも一つの中間れいやのそれぞれに対応するサブレイヤから出力される処理されたノイズマップであってよい。
【0150】
一方、出力イメージを獲得するステップ(S1130)は、複数のレイヤのうち、出力レイヤの出力データ及び入力イメージをミキシングして出力イメージを獲得することができる。
【0151】
そして、ノイズマップを獲得するステップ(S1110)は、入力イメージを複数のレイヤを含むノイズマップ生成モデルに適用してノイズマップを獲得し、ノイズマップ生成モデルは、複数のサンプルイメージ及び各サンプルイメージに対するノイズマップの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0152】
一方、提供するステップ(S1120)は、複数のレイヤのそれぞれにノイズマップを提供するか、複数のレイヤのうち入力レイヤを除く残りのレイヤのそれぞれにノイズマップを提供することができる。
【0153】
そして、学習ネットワークモデルは、複数のレイヤのうち、入力レイヤに提供された複数のサンプルイメージのそれぞれと、少なくとも一つの中間レイヤに提供された複数のサンプルイメージのそれぞれのノイズマップが、複数のレイヤによって順次に処理されて獲得された出力イメージ、及び複数のサンプルイメージのそれぞれに対応する原本イメージの関係を人工知能アルゴリズムを通じて学習して獲得された人工知能モデルであってよい。
【0154】
一方、複数のサンプルイメージのそれぞれは、原本イメージの圧縮された圧縮イメージであり、各サンプルイメージに対するノイズマップは、各サンプルイメージ及び各サンプルイメージに対応する原本イメージから獲得されたノイズマップであってよい。
【0155】
そして、出力イメージを獲得するステップ(S1130)は、動画に含まれた複数のフレームのそれぞれを入力イメージとして学習ネットワークモデルに適用して動画の品質の改善された出力動画を獲得することができる。
【0156】
一方、電子装置のディスプレイの解像度に基づいて出力イメージの解像度を変換するステップ及び解像度の変換されたイメージをディスプレイするステップを更に含み、解像度の変換されたイメージは、4K UHD(Ultra High Definition)イメージ又は8K UHDイメージであってよい。
【0157】
以上のような本発明の多様な実施形態によれば、電子層装置は、入力イメージからノイズマップを獲得して入力イメージの品質をより正確に識別し、ノイズマップに基づいて適応的に動作する学習ネットワークモデルを用いることで入力イメージの品質を改善することができる。即ち、電子装置は、入力イメージからノイズマップを獲得して雑音除去に用いるため、空間的に変化するイメージの雑音除去効果が優れており、圧縮アーティファクトを軽減させることができる。
【0158】
一方、本発明の一実施形態によると、以上で説明された多様な実施形態は、機器(machine)(例えば、コンピュータ)で読み取れる保存媒体(machine−readable storage media)に保存された命令語を含むソフトウェアで実現されてよい。機器は、保存媒体から保存された命令語を呼び出し、呼び出された命令語に応じて動作が可能な装置として、開示された実施形態に係る映像処理装置(例えば、映像処理装置A)を含んでよい。命令がプロセッサによって実行される場合、プロセッサが直接、又はプロセッサの制御下に別の構成要素を用いて命令語に該当する機能を行うことができる。命令は、コンパイラー又はインタープリターによって生成又は実行されるコードを含んでよい。機器で読み取れる保存媒体は、非一時的(non−transitory)保存媒体の形態で提供されてよい。ここで、「非一時的」とは、保存媒体が信号(signal)を含まずに、実在(tangible)することを意味するだけで、データが保存媒体に半永久的又は一時的に保存されることを区分しない。
【0159】
なお、本発明の一実施形態によると、以上で説明された多様な実施形態に係る方法は、コンピュータプログラム製品(computer program product)に含まれて提供されてよい。コンピュータプログラム製品は、商品として販売者及び購入者の間に取引されてよい。コンピュータプログラム製品は、機器で読み取れる保存媒体(例えば、compact disc read only memory(CD−ROM))の形態で、又は、アプリケーションストア(例えば、プレイストアTM)を通じてオンラインで配布されてよい。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、製造社のサーバ、アプリケーションストアのサーバ、又は中継サーバのメモリのような保存媒体に少なくとも一次保存されたり、一時的に生成されてよい。
【0160】
なお、本発明の一実施形態によると、以上で説明された多様な実施形態は、ソフトウェア(software)、ハードウェア(hardware)又はこれらの組み合わせを用いてコンピュータ又はそれに類似する装置で読み込むことができる記録媒体内で実現されてよい。一部の場合において、本発明で説明される実施形態がプロセッサそのもので実現されてよい。ソフトウェア的な実現によると、本明細書で説明される手続き及び機能のような実施形態は、別途のソフトウェアモジュールで実現されてよい。ソフトウェアモジュールのそれぞれは、本明細書で説明される一つ以上の機能及び動作を行うことができる。
【0161】
一方、上述の多様な実施形態に係る音響出力装置100のプロセッシング動作を行うためのコンピュータ命令語(computer instructions)は、非一時的な読み取り可能な媒体(non−transitory computer readable medium)に保存されてよい。このような非一時的な読み取り可能な媒体に保存されたコンピュータ命令語は、特定の機器のプロセッサによって実行された際、上述の多様な実施形態に係る音響出力装置100における処理動作を特定の機器が行うようにする。非一時的な読み取り可能な媒体とは、レジスタやキャッシュ、メモリ等のような短い間データを保存する媒体ではなく、半永久的にデータを保存し、機器によって読み取り(Reading)が可能な媒体を意味する。非一時的な読み取り可能な媒体の具体的な例としては、CDやDVD、ハードディスク、ブルーレイディスク、USB、メモリカード、ROM等であってよい。
【0162】
なお、上述の多様な実施形態に係る構成要素(例えば、モジュール又はプログラム)のそれぞれは、単数又は複数の個体で構成されてよく、上述の当該サブ構成要素のうちの一部のサブ構成要素が省略されたり、又は、他のサブ構成要素が多様な実施形態に更に含まれてよい。代替的に又は追加的に、一部の構成要素(例えば、モジュール又はプログラム)は、一つの個体で統合され、統合される前のそれぞれの当該構成要素によって行われる機能を同一又は類似するように行うことができる。多様な実施軽形態に係るモジュール、プログラム又は他の構成要素によって行われる動作は、順次に、並列的に、繰り返し、又はヒューリスティックに行われるか、少なくとも一部の動作が他の順で行われるか、省略されるか、又は他の動作が追加されてよい。
【0163】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。