以下においては、添付の図面を参照して本発明について詳しく説明する。
本明細書で使われる用語について概略に説明し、本発明について具体的に説明する。
本発明の実施形態で使われる用語は、本発明における機能を考慮しつつ可能な限り、現在広く使われる一般的な用語を選択しているが、それは、当分野に携わる技術者の意図又は判例、新たな技術の出現などによって変わることがある。なお、特定の場合は、出願人が任意に選定した用語もあり、この場合は、該当する発明の説明部分で詳細にその意味を記載する。よって、本発明で使われる用語は、単なる用語の名称ではなく、その用語のもつ意味と本発明の全般に亘る内容に基づいて定義されるべきである。
本明細書で使われた「第1」、「第2」などの用語は、多様な構成要素を説明するうえで使われてよいが、構成要素は用語によって限定されてはならない。用語は、いずれの構成要素を別の構成要素と区分するために使うだけで、当該構成要素を限定しない。
単数の表現は、文脈上明白にそうでないことを意味しない限り、複数の表現を含む。本出願において、「含む」又は「構成される」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はそれらを組み合わせたものが存在することを指定するためのものであって、一つ又はそれ以上の別の特徴や数字、ステップ、動作、構成要素、部品又はそれらを組み合わせたものの存在又は付加可能性を予め排除しないと理解されるべきである。
A又は/及びBのうち少なくとも一つという表現は、「A」又は「B」、又は「A及びB」のうちいずれか一つを示すものとして理解されるべきである。
本発明において、「モジュール」或いは「部」は、少なくとも一つの機能や動作を行い、ハードウェア又はソフトウェアで実現されたり、ハードウェアとソフトウェアとの結合で実現されてよい。なお、複数の「モジュール」或いは複数の「部」は、特定のハードウェアで実現される必要がある「モジュール」或いは「部」を除いては、少なくとも一つのモジュールで一体化されて少なくとも一つのプロセッサ(図示せず)で実現されてよい。
以下では、添付の図面を参照して本発明の実施形態について、本発明の属する技術分野で通常の知識を有する者が容易に実施できるように詳しく説明する。しかし、本発明は、複数の別の形態で実現されてよく、ここで説明する実施形態に限定されない。そして、図面で本発明を明確に説明するために、説明と関係のない箇所は省略しており、明細書の全体を通じて類似する部分に対しては、類似する図面の符号を付している。
図1Aは、本発明の一実施形態に係る電子装置の映像処理動作を説明するための図である。
本発明の一実施形態に係る電子装置は、人工知能モデル(又は、ニューラルネットワークモデル又は学習ネットワークモデル)を用いて、入力映像に対する映像処理を行うように実現されてよい。ここで、人工知能モデルは、複数のニューラルネットワークレイヤで構成されてよい。複数のニューラルネットワークレイヤのそれぞれは、複数のパラメータ(parameters)(又は、複数の重み付け(weight values))を含み、以前(previous)のレイヤの演算結果と複数のパラメータとの間の演算を通じて、ニューラルネットワーク演算を行うことができる。複数のニューラルネットワークレイヤに含まれたパラメータは、人工知能モデルの学習結果によって最適化されてよい。例えば、学習過程の間、人工知能モデルから獲得したロス(loss)値又はコスト(cost)値が、減少又は最小化されるようにパラメータが更新されてよい。人工ニューラルネットワークは、ディープニューラルネットワーク(DNN:Deep Neural Network)を含んでよく、例えば、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、RBM(Restricted Boltzmann Machine)、DBN(Deep Belief Network)、BRDNN(Bidirectional Recurrent Deep Neural Network)又はディープQ−ネットワーク(Deep Q−Networks)などがあるが、上述の例に限定されない。
図1Aは、本発明の一実施形態に係るSuper Resolution処理のための人工知能モデルの一例を示す。Super Resolutionとは、解像度の低い映像を一連のメディア処理を通じて高い解像度に変換する処理を意味する。
同図によると、本発明の一実施形態に係る電子装置は、入力映像10、例えば、低解像度映像に対して補間処理20を行い、補間処理された映像11を人工知能モデル20に入力し、残差映像12を獲得することができる。即ち、人工知能モデル20は、Residual neural networkで実現されてよい。
電子装置は、補間処理された映像11を残差映像12と組み合わせて出力映像13、例えば、高解像度映像を獲得することができる。ここで、補間処理は、解像度の低い映像を高い解像度にスケーリングする処理を意味し、例えば、bilinear interpolation、nearest neighbor interpolation、bicubic interpolation、deconvolution interpolation、subpixel convolution interpolation、polyphase interpolation、trilinear interpolation、linear interpolationのうち、少なくとも1つの補間技法が用いられてよい。なお、残差映像(residual image)は、残差情報のみを含む映像を意味してよい。ここで、残差情報とは、入力映像と基準映像との差による情報として、例えば、エッジ(edge)方向、エッジ強度、ノイズ情報又はテクスチャ(texture)情報のうち少なくとも1つを含んでよいが、それに限定されない。別の例によって、残差情報は、階調情報、輝度情報又はガンマ情報のうち少なくとも1つを含んでよい。
図1Bは、本発明の別の実施形態に係るSuper Resolution処理のための人工知能モデルの一例を示す。
同図によると、電子装置は、入力映像10、例えば、低解像度映像を人工知能モデル20に入力して残差映像12’を獲得し、入力映像10に対して補間処理20を行って補間処理された映像11を獲得することができる。続いて、電子装置は、補間処理された映像11を残差映像12’と結合して出力映像13、例えば、高解像度映像を獲得することができる。即ち、図1Bに示す実施形態によると、図1Aに示す実施形態と違って、入力映像10を人工知能モデル20に入力して残差映像12’を獲得してよい。
一方、図1A及び図1Bに示すSuper Resolution処理に用いられる人工知能モデル20は、学習を通じて作られたものであってよい。ここで、学習を通じて作られるとは、基本人工知能モデルが学習アルゴリズムによって複数の学習データを用いて学習されることで、所望の特性(又は、目的)を実行するように設定された予め定義された動作ルール又は人工知能モデルが作られることを意味する。このような学習は、本発明に係る別途のサーバ及び/又はシステムによって行われてよいが、それに限定されず、電子装置で行われてよい。学習アルゴリズムの例としては、教師あり学習(supervised learning)、教師なし学習(unsupervised learning)、半教師あり学習(semi−supervised learning)、強化学習(reinforcement learning)があるが、上述の例に限定されない。
人工知能モデル20は、例えば、CNNベースのVDSR技術(Jiwon Kim,et al.,Accurate Image Super−Resolution Using Very Deep Convolutional Networks,CVPR 2016)、EDSR(Enhanced Deep Residual Networks for Single Image Super−Resolution)、DRCN(Deeply−Recursive Convolutional Network for Image Super−Resolution.”Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016.)、MDSR(Multi−scale deep super−resolution system)などが用いられてよいが、それに限定されない。
一方、上述のように、人工知能モデル20に含まれた複数のニューラルネットワークレイヤのそれぞれは、複数のパラメータを含み、人工知能モデル20は、以前のレイヤの演算結果と複数のパラメータとの間の演算を通じてニューラルネットワーク演算を行ってよい。
ただ、入力映像の特性、例えば、フォーマット、解像度、圧縮率、品質、データ量、入力映像のデータ伝送速度などに基づいて異なるパラメータが用いられてよいため、人工知能モデル20に含まれたパラメータのリアルタイムアップデートが必要であってよい。しかし、パラメータをアップデートする過程で出力される映像に多様な欠陥(artifact)が発生し、画質の低下の原因になるという問題があった。
それにより、以下では、人工知能モデル20に含まれたパラメータのリアルタイムアップデートが必要な場合、それによる画質の低下を防止することができる多様な実施形態について説明する。
図2は、本発明の一実施形態に係る電子装置の構成を示すブロック図である。図2によると、電子装置100は、メモリ110及びプロセッサ120を含む。
電子装置100は、テレビ又はセットトップボックスで実現されてよいが、それに限定されるものではなく、スマートフォン、タブレットパソコン、ノートパソコン、HMD(Head mounted Display)、NED(Near Eye Display)、LFD(Large Format Display)、Digital Signage(デジタル看板)、DID(Digital Information Display)、ビデオウォール(video wall)、プロジェクタディスプレイ、カメラ、カムコーダ、プリンタなどのように、映像処理及び/又はディスプレイ機能を備えた装置なら限られずに適用することができる。
電子装置100は、多様な圧縮映像又は多様な解像度の映像を受信することができる。例えば、映像処理装置100は、MPEG(Moving Picture Experts Group)(例えば、MP2、MP4、MP7など)、JPEG(joint photographic coding experts group)、AVC(Advanced Video Coding)、H.264、H.265、HEVC(High Efficiency Video Codec)などで圧縮された形で映像を受信することができる。又は、映像処理装置100は、SD(Standard Definition)、HD(High Definition)、Full HD、Ultra HD映像のうち、何れか1つの映像を受信することができる。
メモリ110は、本発明の多様な実施形態のために、必要なデータを保存することができる。メモリ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))のうち少なくとも1つで実現されてよい。なお、電子装置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メモリ)などのような形で実現されてよい。
一例によって、メモリ110は、複数のレイヤを含む人工知能モデルに関する情報を保存することができる。ここで、人工知能モデルに関する情報を保存するとは、人工知能モデルの動作に関する多様な情報、例えば、人工知能モデルに含まれた複数のレイヤに関する情報、複数のレイヤのそれぞれで用いられるパラメータに関する情報などを保存することを意味してよい。
別の例によって、メモリ110は、外部装置(例えば、ソース装置)、外部保存媒体(例えば、USB)、外部サーバ(例えば、ウェブハード)などから受信された映像を保存することができる。ここで、映像は、デジタル動画であってよいが、それに限られるものではない。
更に別の例によって、メモリ110は、映像処理に必要な多様な映像情報、例えば、テクスチャ処理のためのテクスチャ情報、エッジ処理のためのエッジ情報などを保存することができる。なお、メモリ110は、映像処理によって生成された最終的な出力映像を保存することもできる。
本発明の一実施形態によると、メモリ110は、本発明に係る多様な動作で生成されるデータを保存する単一メモリで実現されてよい。ただ、本発明の別の実施形態によると、メモリ110は、複数のメモリを含むように実現されてよい。
プロセッサ120は、電子装置100の動作全般を制御する。プロセッサ120は、1つ又は複数のプロセッサで構成されてよい。
一実施形態によって、プロセッサ130は、デジタル映像信号を処理するデジタルシグナルプロセッサ(digital signal processor(DSP)、マイクロプロセッサ(microprocessor)、GPU(Graphics Processing Unit)、AI(Artificial Intelligence)プロセッサ、NPU(Neural Processing Unit)、TCON(Time controller))で実現されてよい。ただ、それに限定されるものではなく、中央処理装置(central processing unit(CPU))、MCU(Micro Controller Unit)、MPU(Micro Processing Unit)、コントローラ(controller)、アプリケーションプロセッサ(Application Processor(AP))、又はコミュニケーションプロセッサ(Communication Processor(CP))、ARMプロセッサのうち、1つ又はそれ以上を含むか、当該用語で定義されてよい。なお、プロセッサ140は、プロセッシングアルゴリズムの内蔵されたSoC(System on Chip)、LSI(Large Scale Integration)で実現されてよく、ASIC(application specific integrated circuit)、FPGA(Field Programmable Gate Array)で実現されてよい。
一方、本発明の一実施形態に係る人工知能モデルを実行するためのプロセッサ120は、CPU、AP、DSP(Digital Signal Processor)などのような汎用プロセッサ、GPU、VPU(Vision Processing Unit)のようなグラフィック専用プロセッサ又はNPUのような人工知能専用プロセッサであってよい。プロセッサ120は、メモリ110に保存された予め定義された動作ルール又は人工知能モデルに応じて、入力データを処理するように制御することができる。又は、プロセッサ120が人工知能専用プロセッサである場合、人工知能専用プロセッサは、特定の人工知能モデルの処理に特化したハードウェア構造で設計されてよい。
プロセッサ120は、入力映像を製造処理して出力映像を獲得する。ここで、入力映像及び出力映像は、SD(Standard Definition)、HD(High Definition)、Full HD、UHD(Ultra High Definition)映像などであってよい。特に、出力映像は、UHD(Ultra High Definition)映像、例えば、4K(3840x2160)映像又は8K(7680x4320)又はそれ以上の解像度(例えば、16K、32K)を有する映像であってよいが、それに限られるものではない。映像処理は、映像改善(image enhancement)、映像復元(image restoration)、映像変換(image transformation)、映像分析(image analysis)、映像認識(image understanding)又は映像圧縮(image compression)のうち、少なくとも1つを含むデジタル映像処理であってよい。
本発明の一実施形態によると、プロセッサ120は、人工知能モデルを用いて入力映像を処理することで出力映像を獲得することができる。又は、プロセッサ120は、入力映像を前処理(pre−processing)し、前処理された映像を人工知能モデルを用いて処理することで出力映像を獲得することができる。ここで、前処理は、補間処理を含んでよいが、必ずしもそれに限られるものではなく、人工知能モデルを用いずに入力映像の画質を向上させることができる多様な映像処理を含んでよい。ただ、以下では、説明の便宜上、入力映像を補間処理するものとして説明する。
一実施形態によって、プロセッサ120は、入力映像を補間処理し、補間処理された映像を人工知能モデルを用いて処理した出力映像を獲得することができる。別の実施形態によって、プロセッサ120は、入力映像を補間処理することと並行し、入力映像を人工知能モデルに入力して出力映像を獲得することができる。例えば、プロセッサ120は、bilinear interpolation、nearest neighbor interpolation、bicubic interpolation、deconvolution interpolation、subpixel convolution interpolation、polyphase interpolation、trilinear interpolation、linear interpolationのうち、少なくとも1つの補間技法を用いて補間処理を行うことができる。
なお、人工知能モデルは、複数のニューラルネットワークレイヤ(例えば、レイヤという)を用いた演算を通じて、入力映像又は補間処理された映像を処理して出力することができる。一例として、人工知能モデルは、残差映像を生成して出力することができる。ここで、複数のレイヤのそれぞれは、異なるパラメータを含むフィルタを用いて補間処理された映像に対する残差映像を生成することができる。ここで、パラメータは、フィルタの重み付け(又は、係数)と同じ意味であってよい。この場合、人工知能モデルは、Identity Function、Logistic Sigmoid Function、Hyperbolic Tangent(tanh) Function、ReLU Function、Leaky ReLU Functionなど、多様な活性化関数(Activation function)を用いて演算を行うことができる。ただ、人工知能モデルが必ずしも残差映像のみを生成するものではなく、人工知能モデルの実現例によって多様な方式で入力された映像を処理し、処理された映像を出力することができる。
一実施形態によって、プロセッサ120は、1つの人工知能モデルを用いて入力映像を処理することができるが、別の実施形態によって、プロセッサ120は、複数の人工知能モデルを用いて入力映像を処理することができる。この場合、複数の人工知能モデルは、順次に動作するか、並行して動作することができる。一例として、プロセッサ120は、第1人工知能モデルに入力映像を入力し、第1人工知能モデルの出力を第2人工知能モデルに入力した後、第2人工知能モデルから出力される映像に基づいて出力映像を獲得することができる。別の例として、プロセッサ120は、第1及び第2人工知能モデルのそれぞれに入力映像を入力し、第1及び第2人工知能モデルから並行して出力される複数の映像に基づいて出力映像を獲得してよい。
例えば、複数の人工知能モデルは、第1残差映像を生成するモデル及び第2残差映像を生成するモデルを含んでよい。又は、複数の人工知能モデルは、解像度のアップスケーリングのためのモデル及びノイズ減少のためのモデルを含んでよい。又は、複数の人工知能モデルは、客体領域処理のためのモデル及び背景領域処理のためのモデルを含んでよい。
プロセッサ120は、人工知能モデルから出力される映像、例えば、残差映像及び前処理された映像、例えば、補間処理された映像に基づいて出力映像を獲得することができる。例えば、プロセッサ120は、補間処理された映像に含まれたピクセル値及び残差映像に含まれたピクセル値に対応するピクセル単位で合算して出力映像を獲得することができる。又は、プロセッサ120は、第1及び第2人工知能モデルからそれぞれ出力される第1及び第2残差映像及び前処理された映像に基づいて出力映像を獲得することもできる。又は、プロセッサ120は、第1人工知能モデルから出力される第1残差映像を第2人工知能モデルに入力して獲得された、第2残差映像及び前処理された映像に基づいて出力映像を獲得することもできる。
上述のように、プロセッサ120は、入力映像又は補間処理された映像を少なくとも1つの人工知能モデルに入力して残差映像を獲得することができるが、以下では、説明の便宜上、補間処理された映像を1つの人工知能モデルに入力して残差映像を獲得する場合を想定して説明する。ただ、本発明に係る多様な実施形態が入力映像を人工知能モデルに入力して残差映像を獲得する場合、複数の人工知能モデルを用いて残差映像を獲得する場合でも適用できる。
本発明の一実施形態によると、プロセッサ120は、人工知能モデルに含まれた複数のレイヤのうち、少なくとも1つで用いられるパラメータのアップデートが必要な場合、第1モード又は第2モードで動作してよい。例えば、リアルタイムで入力される入力映像の特性、例えば、フォーマット、解像度、圧縮率、品質、データ量、入力映像のデータ伝送速度(単位時間に伝送されるデータ量、例えば、ビット/秒(bps))などに基づいて、人工知能モデルに含まれたパラメータのリアルタイムアップデートが必要であってよい。ここで、モードに応じて、入力映像を処理するとは、プロセッサ120が各モードで定義された映像処理方式に応じて映像を処理することを意味してよい。例えば、各モードで定義された映像処理方式に対応するインストラクションがメモリ110に保存されており、プロセッサ120は、各モードで対応するインストラクションを実行して対応する映像処理を行うように動作してよい。
本発明の一実施形態に係る第1モードは、複数のレイヤのうち少なくとも1つで用いられるパラメータがアップデートされる人工知能モデルを用いて処理された映像を用いて出力映像を獲得するモードであり、第2モードは、人工知能モデルを用いずに出力映像を獲得するモードであってよい。
一例によって、第1モードは、複数のレイヤのうち少なくとも1つで用いられるパラメータがアップデートされる人工知能モデルを用いて処理された映像及び補間処理された映像に基づいて、出力映像を獲得するモードであってよい。第2モードは、補間処理された映像に基づいて出力映像を獲得するか、入力映像及び補間処理された映像に基づいて出力映像を獲得するモードであってよい。この場合、第2モードは、人工知能モデルに補間処理された映像を入力しないか、人工知能モデルに補間処理された映像を入力する一方で、人工知能モデルから出力される残差映像を用いずに補間処理された映像のみを用いて出力映像を獲得するように動作することができる。又は、第2モードは、人工知能モデルに入力映像を入力しないか、人工知能モデルに入力映像を入力する一方で、人工知能モデルから出力される残差映像を用いずに補間処理された映像のみを用いるか、補間処理された映像及び入力映像を用いて出力映像を獲得するように動作してよい。
プロセッサ120は、人工知能モデルに含まれた複数のレイヤのうち少なくとも1つで用いられるフィルタのパラメータに対するアップデートが必要な場合、フィルタにセットされた従来のパラメータ及びアップデートされる対象パラメータの間の差に基づいて、第1モード又は第2モードを選択することができる。ここで、パラメータ間の差とは、パラメータの数の差、パラメータの数値の差など、アップデート速度に影響を及ぼしかねない多様なプロパティの差であってよい。
プロセッサ120は、第1モードが選択されると、複数のレイヤのうち少なくとも1つのレイヤで用いられるパラメータをリアルタイムでアップデートし、パラメータのアップデートに基づいて残りのレイヤのうち少なくとも1つで用いられるパラメータをリアルタイムで補償してよい。ここで、残りのレイヤのうち、少なくとも1つで用いられるパラメータを補償するための補償パラメータは、少なくとも1つの中間レイヤがアップデートされたパラメータを含む人工知能モデルの学習に基づいて獲得されてよい。
この場合、プロセッサ120は、少なくとも1つの中間レイヤで用いられるパラメータのリアルタイムアップデートに基づいて複数のレイヤのうち、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償してよい。
例えば、プロセッサ120は、第1中間レイヤで用いられる第1パラメータがリアルタイムでアップデートされると、第1パラメータのアップデートに基づいて最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償してよい。続いて、プロセッサ120は、第1中間レイヤがアップデートされた後、第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、第1パラメータ及び第2パラメータのアップデートに基づいて最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償してよい。ここで、パラメータがアップデートされるレイヤの順番は、ランダムで決まるか、各レイヤのパラメータ数、各レイヤの特性などに基づいて決まってよい。
一例によって、プロセッサ120は、第2モードで動作する間、人工知能モデルに含まれた第1中間レイヤで用いられる第1パラメータをアップデートし、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償し、第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、アップデートされた第1パラメータ及び第2パラメータに基づいて、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償してよい。
別の例によって、プロセッサ120は、第2モードで動作する間、人工知能モデルに含まれた第1中間レイヤで用いられる第1パラメータをアップデートして第2モードを第1モードに切り替え、第1モードにおいて第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、第1パラメータ及び第2パラメータのアップデートに基づいて、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償してよい。即ち、プロセッサ120は、第1モード及び第2モードを混合した混合モードでパラメータのアップデート及び補償動作を行ってよい。
図3Aないし図3Cは、本発明の一実施形態に係る第1モードにおける動作を説明するための図である。
図3Aは、本発明の一実施形態に係る第1モードにおける基本動作を説明するための図である。
プロセッサ120は、第1モードが選択されると、人工知能モデル310に含まれた複数のレイヤのうち、パラメータのアップデートが必要な少なくとも1つのレイヤに対するパラメータのアップデートを順次に行うことができる。この場合。プロセッサ120は、中間レイヤのパラメータを先に補償し、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)で用いられるパラメータは、最も後で補償することができる。それは、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)で用いられるパラメータの数が他のレイヤのパラメータの数より少ないため、パラメータの補償がより容易になるためである。例えば、CNNの場合、各畳み込みレイヤのチャネル数と同じ数のフィルタ(又は、カーネル)を用いて、入力端と出力端との近くの畳み込みレイヤにおけるチャネル数が相対的に少ないため、フィルタの数も少ないし、それにより、フィルタ係数、即ち、パラメータの数が相対的に少なくなる。それは、畳み込みレイヤのパラメータ数が「入力チャネル数*フィルタ幅*フィルタの高さ*フィルタ数(出力チャネル数)」で計算されるためである。
一例として、人工知能モデルに含まれた複数のレイヤのそれぞれで用いられるフィルタの数が64個である場合を仮定する。一例によって入力される映像がRGB映像である場合、最初のレイヤの入力チャネル数は3個(別の例によって、Luma映像である場合、最初のレイヤの入力チャネル数は1個)であり、最初のレイヤで適用されるフィルタの大きさが3*3であり、フィルタ数が64個であるため、最初のレイヤで用いられるパラメータの数は3*3*3*64個になる。なお、最初のレイヤの出力チャネル数が64個であるため、2番目のレイヤの入力チャネル数は64個であり、それにより、2番目のレイヤで用いられるパラメータの数は64*3*3*64個のように増加するようになる。
別の例として、人工知能モデルに含まれた複数のレイヤのそれぞれで用いられるフィルタの数が128個であり、入力映像がLuma映像である場合を想定すると、最初のレイヤの入力チャネル数は1個であり、最初のレイヤで適用されるフィルタの大きさが3*3であり、フィルタ数が128個であるため、最初のレイヤで用いられるパラメータの数は1*3*3*128個になる。なお、最初のレイヤの出力チャネル数が128個であるため、2番目のレイヤの入力チャネル数は128個であり、それにより、2番目のレイヤで用いられるパラメータの数は128*3*3*128個のように増加するようになる。
なお、出力端では、元のチャネル数に戻ることになるため、入力端と出力端との畳み込みレイヤに対応するパラメータ数が他の畳み込みレイヤで用いられるパラメータ数より相対的に少なくなる。一例によって、VDCNNの場合、最初の畳み込みレイヤや最後の畳み込みレイヤ対比、他の畳み込みレイヤのパラメータ数が64倍大きく実現されてよい。なお、EDSRの場合、最初の畳み込みレイヤや最後の畳み込みレイヤ対比、他の畳み込みレイヤのパラメータ数が1820倍大きく実現されてよい。ただ、それは一実施形態に過ぎず、人工知能モデルは、入力端の近くのレイヤは、フィルタ数が少なく、入力端から遠のくほどフィルタ数が増加するように実現されてよい。
図3Aでは、2番目のレイヤ(Layer 2)で用いられるパラメータのアップデートが必要な場合を仮定している。
この場合、プロセッサ120は、第2レイヤ(Layer 2)で用いられるパラメータをアップデートしつつ、残りのレイヤのうち少なくとも1つ、例えば、図3Aに示すように、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer 2)で用いられるパラメータをそれぞれ補償してよい。即ち、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)で用いられるパラメータを補償のための一時パラメータに置き換えることができる。それは、複数のレイヤのそれぞれで用いられるパラメータは相互関連しており、最適の出力映像を出力するように学習されたものであるため、2番目のレイヤ(Layer 2)で用いられるパラメータのみをアップデートすると、出力映像にartifactが生じるためである。
具体的に、プロセッサ120は、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを2番目のレイヤ(Layer 2)でアップデートされたパラメータを補償するための補償パラメータに置き換えることができる。ここで、別のレイヤでアップデートされたパラメータを補償するための補償パラメータは、学習に基づいて獲得されてよい。この場合、補償パラメータを獲得するための学習は、電子装置100、外部装置又は外部サーバのうち少なくとも1つからなってよい。例えば、説明の便宜上、外部サーバで学習が行われる場合を想定する。外部サーバは、人工知能モデルに含まれた複数のレイヤのうち、少なくとも1つで用いられるパラメータをアップデートした後、残りのレイヤのパラメータを学習して補償パラメータを獲得することができる。この場合、外部サーバは、人工知能モデルに含まれた複数のレイヤのうち少なくとも1つで用いられるパラメータが新しいパラメータにアップデートされたとしても、人工知能モデルがartifactのない映像を出力するように残りのレイヤのパラメータを学習してよい。例えば、外部サーバは、2番目のレイヤのパラメータを新しいパラメータにアップデートして固定し、残りの中間レイヤのパラメータは従来のパラメータとして固定させた後、最初及び最後のレイヤのパラメータを学習し、対応する補償パラメータを獲得することができる。なお、外部サーバは、2番目のレイヤ及び3番目のレイヤのパラメータを新しいパラメータにアップデートして固定し、残りの中間レイヤのパラメータは従来のパラメータとして固定させた後、最初及び最後のレイヤのパラメータを学習し、対応する補償パラメータを獲得することができる。外部サーバは、このように、学習に基づいて獲得された補償用パラメータを電子装置100に提供することができる。
一方、一実施形態によって、映像が人工知能モデルにフレーム単位で入力される場合、プロセッサ120は、少なくとも1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータをアップデートすることができる。例えば、1つのフレームが入力される間、レイヤ(Layer 2)のパラメータを全てアップデートすることができるが、場合によって複数のフレームが入力される間、レイヤ(Layer 2)のパラメータを分けてアップデートすることもできる。例えば、プロセッサ120は、V sync Signal(vertical synchronizing signal)又はH sync signal(horizontal synchronizing signal)のうち少なくとも一方に基づいて、ブランク区間でパラメータのアップデートを行うことができるが、必ずしもそれに限られるものではない。
なお、プロセッサ120は、少なくとも1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータをアップデートし、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを補償することができる。例えば、1つのフレームが入力される間、レイヤ(Layer 2)のパラメータを全てアップデートし、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータをいずれも補償することができる。しかし、場合によって、1つのフレームが入力される間、レイヤ(Layer 2)のパラメータを全てアップデートし、次のフレームが入力される間、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを補償することもできる。なお、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータの補償も、少なくとも1つのフレーム、例えば、複数のフレームにまたがって行われることもできる。
図3Bは、本発明の一実施形態に係る第1モードにおける順次のパラメータのアップデート動作を説明するための図である。
図3Bの最初のラインは、人工知能モデル310に含まれた複数のレイヤのそれぞれに予めセットされたパラメータによって映像処理が行われる場合を示すものである。
続いて、人工知能モデル310に含まれた複数のレイヤのうち、少なくとも1つで用いられるパラメータに対するアップデートが必要なイベントが発生することがある。例えば、入力映像のデータ伝送速度が変更されたり、入力映像のフォーマットが変更され、人工知能モデル310に含まれたパラメータを新しいパラメータセットに基づいてセットしなければならないことが生じることがある。
この場合、プロセッサ120は、図3Bの2番目のラインに示すように、中間レイヤのうちの1つ、例えば、2番目のレイヤのパラメータを新しいパラメータセット、例えば、変更された入力映像のフォーマットに対応するパラメータセットに基づいてアップデートし、最初及び最後のレイヤのパラメータを一時パラメータ0に置き換えて2番目のレイヤのパラメータのアップデートを補償することができる。ここで、一時パラメータ0は、2番目のレイヤのパラメータを新しいパラメータに置き換え、残りの中間レイヤのパラメータは、従来のパラメータとして維持させた状態で、最初及び最後のレイヤのパラメータを学習して獲得されてよい。
続いて、プロセッサ120は、図3Bの3番目のラインに示すように、アップデートが必要な次のレイヤ、例えば、4番目のレイヤのパラメータを新しいパラメータセットに基づいてアップデートし、最初及び最後のレイヤのパラメータを一時パラメータ1に置き換えて補償することができる。ここで、一時パラメータ1は、2番目及び4番目のレイヤのパラメータを新しいパラメータに置き換えて残りの中間レイヤのパラメータは、従来のパラメータとして維持させた状態で、最初及び最後のレイヤのパラメータを学習して獲得されてよい。このような方式で、プロセッサ120は、図3Bの3番目のラインに示すように、残りの中間レイヤ、例えば、3番目のレイヤのパラメータもアップデートし、最初及び最後のレイヤのパラメータを一時パラメータ2に置き換えて補償することができる。ここで、一時パラメータ2は、アップデートが必要な全ての中間レイヤのパラメータを新しいパラメータに置き換え、最初のレイヤ及び最後のレイヤのパラメータを学習して獲得されてよい。
上述の方式でアップデートが必要な中間レイヤのパラメータがいずれもアップデートされると、プロセッサ120は、図3Bの最後のラインに示すように、最初及び最後のレイヤのパラメータもアップデートすることができる。例えば、アップデートが必要な全ての中間レイヤ及び最初のレイヤ(又は、最後のレイヤ)のパラメータを新しいパラメータセットに基づいてアップデートし、最後のレイヤ(又は、最初のレイヤ)のパラメータを一時パラメータ3に置き換えて補償することができる。ここで、一時パラメータ3は、アップデートが必要な全ての中間レイヤ及び最初のレイヤ(又は、最後のレイヤ)のパラメータを新しいパラメータに置き換えて最後のレイヤ(又は、最初のレイヤ)のパラメータを学習して獲得されてよい。
図3Cは、本発明の別の実施形態に係る第1モードにおける順次のパラメータのアップデート動作を説明するための図である。
図3Bでは、最初のレイヤ及び最後のレイヤのパラメータが最後にアップデートされるものとして説明したが、必ずしもそれに限定されるものではない。
例えば、図3Cの3番目のラインまでの動作は、図3Bの3番目のラインまでの動作と同じだが、図3Cの4番目のラインに示すように、中間レイヤのうち一部のレイヤのパラメータがアップデートされた後、最初のレイヤのパラメータがアップデートされ、図3Cの最後のラインに示すように、中間レイヤのうち残りのレイヤのパラメータがアップデートされた後、最後のレイヤのパラメータがアップデートされてよい。
この場合、図3Cの4番目及び最後のラインでは、既に1番目のレイヤのパラメータがアップデートされた状態であるため、最後のレイヤのパラメータのみが補償パラメータに置き換えられてよい。続いて、最後のレイヤのパラメータがアップデートされると、パラメータのアップデート動作が完了してよい。
図4は、本発明の別の実施形態に係る第1モードにおける動作を説明するための図である。
図3Aないし図3Cでは、1つのレイヤで用いられるパラメータが全てアップデートされた後、次のレイヤのパラメータがアップデートされるものとして説明したが、本発明の別の実施形態によると、少なくとも2つ以上のレイヤで用いられるパラメータが同時にアップデートされることも可能である。
図4の最初のラインは、人工知能モデル310に含まれた複数のレイヤのそれぞれに予めセットされた従来のパラメータによって映像処理が行われる場合を示すものである。
続いて、人工知能モデル310に含まれた複数のレイヤで用いられるパラメータに対するアップデートが必要なイベントが発生することがある。例えば、データ伝送速度が変更されるか、映像の解像度、データ量又は映像の品質が変更される場合、人工知能モデル310に含まれたパラメータを新しいパラメータセットに基づいてセットしなければならない場合が発生することがある。
この場合、図4の2番目のラインに示すように、プロセッサ120は、少なくとも1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータのうちの一部及び4番目のレイヤ(Layer 4)のパラメータのうちの一部をアップデートし、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを一時パラメータ0に置き換えて補償することができる。例えば、1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータのうちの一部及び4番目のレイヤ(Layer 4)のパラメータのうちの一部をアップデートし、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータをいずれも補償することができる。しかし、場合によって、1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータのうちの一部及び4番目のレイヤ(Layer 4)のパラメータのうちの一部をアップデートし、次のフレームが入力される間、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを補償することもできる。この場合、一時パラメータ0は、2番目のレイヤ(Layer 2)のパラメータのうちの一部及び4番目のレイヤ(Layer 4)のパラメータのうちの一部を新しいパラメータに置き換え、残りの中間レイヤのパラメータは、従来のパラメータとして維持させた状態で、最初及び最後のレイヤのパラメータを学習して獲得されてよい。
続いて、図4の3番目のラインに示すように、プロセッサ120は、次の少なくとも1つのフレームが入力される間、2番目のレイヤ(Layer 2)のパラメータのうちの残り及び4番目のレイヤ(Layer 4)のパラメータのうちの残りをアップデートし、最初のレイヤ(Layer 1)及び最後のレイヤ(Layer N)のそれぞれのパラメータを一時パラメータ1に置き換えて補償することができる。この場合、一時パラメータ1は、2番目のレイヤ(Layer 2)のパラメータ及び4番目のレイヤ(Layer 4)のパラメータをいずれも新しいパラメータに置き換え、残りの中間レイヤのパラメータは、従来のパラメータとして維持させた状態で、最初及び最後のレイヤのパラメータを学習して獲得されてよい。
2番目のレイヤ(Layer 2)のパラメータ及び4番目のレイヤ(Layer 4)のパラメータがいずれもアップデートされた後、継続した動作に応じて最初のレイヤ(Layer 1)、3番目のレイヤ(Layer 3)及び最後のレイヤ(Layer N)のパラメータのアップデートのみが残ったものとして仮定する。
この場合、図4の4番目のラインに示すように、プロセッサ120は、次の少なくとも1つのフレームが入力される間、他のレイヤ、例えば、最初のレイヤ(Layer 1)のパラメータのうちの一部及び3番目のレイヤ(Layer 3)のパラメータのうちの一部をアップデートし、最後のレイヤ(Layer N)のパラメータを一時パラメータ2に置き換えて補償することができる。
続いて、図4の最後のラインに示すように、プロセッサ120は、次の少なくとも1つのフレームが入力される間、最初のレイヤ(Layer 1)のパラメータのうちの残り及び3番目のレイヤ(Layer 3)のパラメータのうちの残りをアップデートし、最後のレイヤ(Layer N)のそれぞれのパラメータを一時パラメータ3に置き換えて補償することができる。
一方、上述の実施形態においては、パラメータのアップデート及びパラメータの補償動作が、特定のフレーム区間にまたがって行われるものとして説明したが、パラメータのアップデート及びパラメータの補償動作は、1つのフレーム区間の一部、1つのフレーム全区間、又は複数のフレーム区間など、必要な時間に基づいて行われることができる。
図5Aないし図5Cは、本発明の多様な実施形態に係る第2モードにおける動作を説明するための図である。
図5Aに示すように、本発明の一実施形態によると、プロセッサ120は、第2モードで補間処理された映像を人工知能モデルに入力せずに、補間処理された映像のみを用いて出力映像を生成することができる。ここで、人工知能モデルは、上述のように、残差映像を生成するモデルを意味し、第2モードでは、当該人工知能モデルをバイパスする映像処理ルートを用いるだけで、場合によっては、補間処理された映像に対する一種の後処理が行われることができる。
図5Bに示すように、本発明の別の実施形態によると、プロセッサ120は、第2モードで補間処理された映像を人工知能モデルに入力する一方で、人工知能モデルから出力される残差映像を用いずに補間処理された映像のみを用いて出力映像を生成することができる。例えば、プロセッサ120は、第2モードで人工知能モデルのパラメータをアップデートせずに従来の映像処理方式と同様に補間処理された映像を人工知能モデルに入力する一方で、人工知能モデルから出力される残差映像を用いずに出力映像を生成することができる。
図5Cに示すように、本発明の更に別の実施形態によると、プロセッサ120は、第2モードで入力映像の補間処理と並行して入力映像を人工知能モデルに入力する一方で、人工知能モデルから出力される残差映像を用いずに補間処理された映像のみを用いて出力映像を生成することができる。ただ、更に別の実施形態によると、第2モードで入力映像を人工知能モデルに入力せずに、補間処理された映像のみを用いて出力映像を生成するか、入力映像及び補間処理された映像を同時に用いて出力映像を生成することができる。
図6は、本発明の別の実施形態によって、第1モード及び第2モードを混合した混合モードにおける動作を説明するための図である。
本発明の一実施形態に係る混合モードでプロセッサ120は、人工知能モデルのパラメータのアップデートが必要な場合、プロセッサ120は、まず第2モードで動作することができる。即ち、人工知能モデルに補間処理された映像を入力しないか、人工知能モデルから出力される残差映像を用いずに補間処理された映像のみを用いて出力映像を獲得することができる。ただ、プロセッサ120は、第2モードで動作する間、人工知能モデルに含まれた少なくとも1つの第1中間レイヤで用いられる第1パラメータをアップデートして第2モードを第1モードに切り替えることができる。続いて、プロセッサ120は、第1モードにおいて第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、第2モードでアップデートされた第1パラメータ及び第2モードでアップデートされた第2パラメータに基づいて、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償することができる。
例えば、図6の最初のラインは、人工知能モデル310に含まれた複数のレイヤのそれぞれに予めセットされたパラメータによって映像処理が行われる場合を示したものである。
続いて、人工知能モデル310に含まれた複数のレイヤのうち少なくとも1つで用いられるパラメータに対するアップデートが必要なイベントが発生することがある。例えば、入力映像のデータ伝送速度が変更されたり、入力映像のフォーマット、解像度、圧縮率、品質、データ量などが変更され、人工知能モデル310に含まれたパラメータを新しいパラメータセットに基づいてセットしなければならない場合が発生することがある。
この場合、プロセッサ120は、図6の2番目のラインに示すように、第2モードで動作し、図6の3番目のラインに示すように、第2モードで動作する間、中間レイヤのうち少なくとも1つ、例えば、2番目のレイヤのパラメータを新しいパラメータセットに基づいてアップデートすることができる。即ち、入力される映像フレームに対して補間処理された映像フレームのみを用いて出力映像フレームを生成しつつ、それと別途に人工知能モデル310に含まれた2番目のレイヤのパラメータをアップデートすることができる。
続いて、プロセッサ120は、図6の4番目のラインに示すように、第2モードを第1モードに切り替え、中間レイヤのうち少なくとも別の1つ、例えば、4番目のレイヤのパラメータを新しいパラメータセットに基づいてアップデートしつつ、最初のレイヤ及び最後のレイヤのパラメータを一時パラメータ0に置き換えて補償することができる。この場合、第1モードで動作しているため、プロセッサ120は、補間処理された映像だけでなく、人工知能モデル310から出力される補間映像を同時に用いて出力映像を獲得することができる。
続いて、プロセッサ120は、図6の5番目のラインに示すように、第1モードで中間レイヤのうち少なくとも更に別の1つ、例えば、3番目のレイヤのパラメータを新しいパラメータセットに基づいて追加でアップデートしつつ、最初のレイヤ及び最後のレイヤのパラメータを一時パラメータ1に置き換えて補償することができる。
上述の方式で、アップデートが必要な中間レイヤのパラメータがいずれもアップデートされると、プロセッサ120は、図6の最後のラインに示すように、最初及び最後のレイヤのパラメータもアップデートすることができる。
上述の実施形態のように、プロセッサ120は、パラメータのアップデートが必要な場合、第1モードをベースとするが、特定の時点で第2モードで動作する混合モードで動作することができる。それは、特定の時点で第1モードの結果が第2モードの結果より結果が良くないおそれがあるためである。それにより、プロセッサ120は、第1モード及び第2モードを適切に混合して動作することで、出力映像の画質劣化を最小化させることができる。
一方、上述の実施形態では、人工知能モデル310が1つである場合を想定して説明したが、別の実施形態によると、プロセッサ120が複数の人工知能モデルを順次に又は平行して動作させるように実現されてよい。この場合、プロセッサ120は、複数の人工知能モデルのそれぞれに含まれたパラメータのアップデートが必要な場合、上述の多様な実施形態によって複数の人工知能モデルのそれぞれに含まれたパラメータのアップデートを順次に行うか、並行して行ってよい。例えば、プロセッサ120は、第1人工知能モデルに含まれたパラメータのアップデートを上述の多様な実施形態によって行った後、第2人工知能モデルに含まれたパラメータのアップデートを上述の多様な実施形態によって行ってよい。又は、プロセッサ120は、第1人工知能モデル及び第2人工知能モデルのそれぞれに含まれたパラメータのアップデートを並行して行ってよい。この場合、プロセッサ120は、第1人工知能モデル及び第2人工知能モデルのそれぞれに対して同じ方式又は異なる方式でパラメータのアップデートを行ってよい。例えば、プロセッサ120は、第1人工知能モデルに対しては図3Bに示す方式で、第2人工知能モデルに対しては図3Cに示す方式でパラメータのアップデートを行ってよい。
図7は、本発明の一実施形態に係る人工知能モデルの別の例を説明するための図である。
図1ないし図6では、超解像度(super resolution)処理の場合を例に挙げて説明したが、本発明に係る実施形態は、当該映像処理だけでなく、人工知能モデルを用いる多様な映像処理に適用されてよい。例えば、Style Transfer処理にも、本発明に係る実施形態が適用されてよい。Style Transferとは、2つの映像(contents image&style image)が与えられた際、そのイメージの主な形態は、contents imageと類似するように維持しつつ、スタイルのみが所望のstyle imageと類似するように変える処理を意味する。
例えば、図7に示すように、同図に示すような複数のレイヤを含むCNNベースの人工知能モデル(“Perceptual Losses for Real−Time Style Transfer”(Justin Johnson, Alexandre Alahi, and Li Fei−Fei))を用いてStyle Transfer処理を行うことができ、人工知能モデルに含まれた複数のレイヤのうち少なくとも1つのレイヤに対するパラメータのアップデートが必要な場合、例えば、適用するstyleが変更される場合、本発明に係る多様な実施形態を適用してパラメータをアップデートすることができる。
図8は、本発明の一実施形態に係るプロセッサの実現例を説明するための図である。
本発明の一実施形態に係るプロセッサ120は、CPU、AP、DSP(Digital Signal Processor)などのような汎用プログラム、GPU、VPU(Vision Processing Unit)のようなグラフィック専用プロセッサ又はNPUのような人工知能専用プロセッサであってよい。
ただ、本発明の別の実施形態によると、プロセッサ120は、特定の人工知能モデルの処理に特化した専用ハードウェアとして設計されてよい。例えば、ニューラルネットワークが複雑でリアルタイムの動作が重要な場合は、主に専用のハードウェアを使うようになるが、この場合、パラメータのアップデート速度を早く実現することがより困難になる。それにより、専用ハードウェアの場合、パラメータを内部のレジスタ(register)に保存するか、固定された値のニューラルネットワークモデルのみが動作するように実現されてよい。しかし、本発明の多様な実施形態によると、プロセッサ120が専用ハードウェアで実現されたとしても、パラメータのアップデート速度を早く実現することができるようになる。
図8は、プロセッサ120が専用のハードウェアで設計された場合の例示を示す。例えば、図8に示す専用のハードウェア800は、ASIC、FPGAなどのハードウェアチップで設計されてよい。図示のように、リアルタイムの処理のために、外部メモリ、例えば、dramのlatencyを考慮するように実現され、中間結果は、内部メモリ、例えば、sramに保存して処理するように実現されてよい。
図9は、本発明の一実施形態に係る電子装置の動作を概略に説明するための図である。
同図によると、電子装置100は、入力映像に対する情報に基づいて、人工知能モデルに含まれた複数のレイヤで用いられるパラメータセットに対するアップデートが必要か否かを判断する。
電子装置100は、アップデートが必要でない場合、ノーマルモード(Normal Mode)で動作し、アップデートが必要な場合、アップデートモード(Update Mode)で動作することができる。
ここで、ノーマルモードは、予めセットされたパラメータを含む人工知能モデルを用いて入力映像を処理するモードであってよい。例えば、電子装置100は、ノーマルモードで入力映像を補間処理し、予めセットされたパラメータを含む人工知能モデルに補間処理された映像を入力して獲得された残差映像及び補間処理された映像に基づいて出力映像を獲得することができる。
アップデートモードは、第1モード及び第2モードを含んでよく、電子装置100は、従来のパラメータ及びアップデートされるパラメータの間の差に基づいて、第1モード又は第2モードを選択することができる。第1モード及び第2モードに対しては、上記で詳細に説明しているため、説明を省略する。
それにより、電子装置100は、ノーマルモード、第1モード又は第2モードのうちいずれかのモードに基づいて入力映像を処理し、出力映像を獲得することができる。ここで、出力映像は、4K又は8K以上の高解像度映像であってよい。
図10は、本発明の一実施形態に係る電子装置の一実現例を示す図である。図10によると、電子装置100’は、メモリ110、プロセッサ120、入力部130、ディスプレイ140、出力部150及びユーザインターフェース160を含む。同図に示す構成のうち、図2に示す構成と重複する構成については、詳細な説明を省略する。
プロセッサ120は、場合によって、入力映像の補間処理前に追加の前処理を行うことができる。一例によって、プロセッサ120は、入力映像のノイズを除去するフリーフィルタリングを更に行うことができる。例えば、ガウシアンフィルタのようなスムージングフィルタ(Smoothing Filter)、入力映像を予め設定されたガイダンス(guidance)に対比させ、フィルタリングするガイデッド(guided)フィルタなどを用いて目立つノイズを除去することができる。
入力部130には、多様なタイプのコンテンツが入力される。例えば、入力部130は、APベースのWi−Fi(Wireless LANネットワーク)、ブルートゥース(登録商標(Bluetooth))、Zigbee、有/無線LAN(Local Area Network)、WAN(Wide Area Network)、イーサネット(登録商標(Ethernet))、IEEE 1394、HDMI(登録商標(High Definition Multimedia Interface))、USB(Universal Serial Bus)、MHL(Mobile High−Definition Link)、AES/EBU(Audio Engineering Society/European Broadcasting Union)、オプティカル(Optical)、コアキシャル(Coaxial)などのような通信方式を通じて外部装置(例えば、ソース装置)、外部保存媒体(例えば、USBメモリ)、外部サーバ(例えば、ウェブハード)などからストリーミング又はダウンロード方式で映像信号を入力されることができる。ここで、映像信号は、SD(Standard Definition)、HD(High Definition)、Full HD又はUltra HD映像のうちいずれか1つのデジタル映像信号であってよいが、それに限られるものではない。
なお、入力部130は、入力される映像の情報に対応するパラメータセット、一部のパラメータのリアルタイムのアップデートを補償するための補償パラメータなど、本発明の多様な実施形態に関連するパラメータ情報を外部サーバから受信することができる。
ディスプレイ140は、自発光素子を含むディスプレイ又は非自発光素子及びバックライトを含むディスプレイで実現されてよい。例えば、LCD(Liquid Crystal Display)、OLED(Organic Light Emitting Diodes)ディスプレイ、LED(Light Emitting Diodes)、マイクロLED(micro LED)、Mini LED、PDP(Plasma Display Panel)、QD(Quantum dot)ディスプレイ、QLED(Quantum dot light−emitting diodes)などのような多様なディスプレイで実現されてよい。ディスプレイ140内には、a−si TFT、LTPS(low temperature poly silicon) TFT、OTFT(organic TFT)などのような形態で実現される駆動回路、バックライトユニットなども一緒に含まれてよい。一方、ディスプレイ140は、タッチセンサと組み合わせられたタッチスクリーン、フレキシブルディスプレイ(flexible display)、ローラーブルディスプレイ(rollable display)、3次元ディスプレイ(3D display)、複数のディスプレイモジュールが物理的に接続されたディスプレイなどで実現されてよい。プロセッサ120は、上述の多様な実施形態によって獲得された出力映像を出力するようにディスプレイ140を制御することができる。ここで、出力映像は、4K又は8K以上の高解像度映像であってよい。
出力部150は、音響信号を出力する。例えば、出力部150は、プロセッサ120で処理されたデジタル音響信号をアナログ音響信号に変換及び増幅して出力することができる。例えば、出力部150は、少なくとも1つのチャネルを出力することができる、少なくとも1つのスピーカユニット、D/Aコンバータ、オーディオアンプ(audio amplifier)などを含んでよい。一例によって、出力部150は、多様なマルチチャネル音響信号を出力するように実現されてよい。この場合、プロセッサ120は、入力映像のエンハンス処理に対応するように入力された音響信号をエンハンス処理して出力するように出力部150を制御することができる。例えば、プロセッサ120は、入力された2チャネル音響信号を仮想のマルチチャネル(例えば、5.1チャネル)音響信号に変換したり、電子装置100’の置かれた位置を認識して空間に最適化された立体音響信号に処理したり、入力映像のタイプ(例えば、コンテンツジャンル)によって最適化された音響信号を提供することができる。
ユーザインターフェース160は、ボタン、タッチパッド、マウス及びキーボードのような装置で実現されたり、上述のディスプレイ機能及び操作入力機能も一緒に実行可能なタッチスクリーン、リモコン送受信部などで実現されてよい。リモコン送受信部は、赤外線通信、ブルートゥース通信又はWi−Fi通信のうち少なくとも1つの通信方式を通じて外部遠隔制御装置からリモコン信号を受信するか、リモコン信号を送信することができる。
電子装置100は’は、実現例によってチューナ及び復調部を更に含むことができる。チューナ(図示せず)は、アンテナを介して受信されるRF(Radio Frequency)放送信号のうち、ユーザによって選択されたチャネル又は予め保存された全てのチャネルをチューニングしてRF放送信号を受信することができる。復調部(図示せず)は、チューナで変換されたデジタルIF信号(DIF)を受信して復調し、チャネル復号化などを行うこともできる。一実施形態によって、チューナを介して受信された入力映像は復調部(図示せず)を介して処理された後、本発明の一実施形態に係る映像処理のために、プロセッサ120に提供されてよい。
図11は、本発明の一実施形態に係るサーバの構成を示すブロック図である。
同図によると、本発明の一実施形態に係るサーバ200は、メモリ210、プロセッサ220及び通信インターフェース230を含む。
メモリ210の実現例は、電子装置100のメモリ110の実現例と類似するため、詳しい説明を省略する。
メモリ210は、電子装置100で用いられる人工知能モデルに関連する情報を保存する。
一例によって、メモリ210は、電子装置100、100’に入力される入力映像の特性(例えば、フォーマット、解像度、圧縮率など)、入力映像のデータ伝送速度などによる人工知能モデルの多様なパラメータセットを保存することができる。ここで、多様なパラメータセットは、入力される入力映像の特性、例えば、フォーマット、解像度、圧縮率、品質、データ量、入力映像のデータ伝送速度などに応じて人工知能モデルを学習して獲得されてよい。
別の例によって、メモリ210は、電子装置100、100’で用いられる人工知能モデルに含まれた複数のレイヤのうち、少なくとも一部のレイヤのパラメータがアップデートされた場合、それを補償するための補償パラメータを保存することができる。補償パラメータも、学習によって獲得することができるが、それはプロセッサ220の動作で詳しく説明する。
通信インターフェース220は、電子装置100、100’を含む多様な外部装置と通信を行う。通信インターフェース220の実現例は、電子装置100’の入力部130の実現例と類似するため、詳しい説明を省略する。
プロセッサ230は、サーバ200の動作全般を制御する。プロセッサ230の実現例は、電子装置100、100’のプロセッサ120の実現例と類似するため、説明を省略する。
プロセッサ230は、電子装置100、100’に入力される入力映像の特性、例えば、フォーマット、解像度、圧縮率、品質、データ量、入力映像のデータ伝送速度などによって人工知能モデルの多様なパラメータセットを獲得し、獲得されたパラメータセットをメモリ210に保存することができる。その後、プロセッサ130は、電子装置100、100’のリクエストなど、多様なイベントによってメモリ210に保存されたパラメータセットを電子装置100、100’に伝送するように通信インターフェース220を制御することができる。
なお、プロセッサ230は、人工知能モデルに含まれた複数のレイヤのうち、少なくとも1つで用いられるパラメータをアップデートした後、残りのレイヤのパラメータを学習して補償パラメータセットを獲得することができる。この場合、プロセッサ230は、人工知能モデルに含まれた複数のレイヤのうち少なくとも1つで用いられるパラメータが新しいパラメータにアップデートされたとしても、人工知能モデルがartifactのない映像を出力するように残りのレイヤのパラメータを学習することができる。例えば、プロセッサ120は、特定の第1中間レイヤのパラメータを新しいパラメータにアップデートして固定し、残りの中間レイヤのパラメータは従来のパラメータに固定させた後、最初及び最後のレイヤのパラメータを学習し、対応する第1補償パラメータセットを獲得することができる。なお、プロセッサ230は、特定の第1中間レイヤだけでなく、別の第2中間レイヤのパラメータを新しいパラメータにアップデートして固定し、残りの中間レイヤのパラメータは従来のパラメータに固定させた後、最初及び最後のレイヤのパラメータを学習し、対応する第2補償パラメータセットを獲得することができる。続いて、プロセッサ230は、獲得された補償パラメータセットをメモリ210に保存することができる。
このように、プロセッサ130は、人工知能モデルに含まれた少なくとも1つのレイヤのパラメータがアップデートされた場合、残りのレイヤのうち少なくとも1つを通じてそれを補償するように残りのレイヤのうち少なくとも1つの対応する補償パラメータセットを各ケース別に学習して獲得した後、メモリ210に保存することができる。
その後、プロセッサ130は、電子装置100、100’のリクエストなど、多様なイベントによってメモリ210に保存された補償パラメータを電子装置100、100’に伝送するように通信インターフェース220を制御することができる。
図12は、本発明の一実施形態に係る電子装置の制御方法を説明するためのフローチャートである。
同図に示す複数のレイヤを含む人工知能モデルに対する情報を保存する電子装置の制御方法によると、まず、電子装置100、100’は、入力映像を補間処理する(S1210)。ここで、人工知能モデルに含まれた複数のレイヤのそれぞれは、異なるパラメータを含むフィルタを用いて補間処理された映像に対する残差映像を生成することができる。
続いて、電子装置100、100’は、人工知能モデルに含まれた複数のレイヤのうち、少なくとも1つで用いられるパラメータのアップデートが必要か否かを識別する(S1210)。
パラメータのアップデートが必要と識別されると(S1220:Y)、電子装置100は、アップデートモード、即ち、第1モード又は第2モードに応じて出力映像を獲得する(S1230)。
ここで、第1モードは、パラメータがリアルタイムでアップデートされる人工知能モデルを用いて処理された映像、例えば、残差映像及び補間処理された映像に基づいて出力映像を獲得するモードであってよい。なお、第2モードは、補間処理された映像に基づいて出力映像を獲得するモードであってよい。ここで、出力映像は、4K又は8K以上の高解像度映像であってよい。
一方、パラメータのアップデートが必要でないと識別されると(S1220:N)、電子装置100は、ノーマルモードに応じて出力映像を獲得する。ここで、ノーマルモードは、従来セットされたパラメータを含む人工知能モデルに補間処理された映像を入力して獲得された残差映像及び補間処理された映像に基づいて出力映像を獲得するモードであってよい。
なお、第1モード又は第2モードに応じて、入力映像を処理するステップ(S1230)では、複数のレイヤのうち少なくとも1つで用いられるフィルタのパラメータに対するアップデートが必要な場合、フィルタの現在のパラメータ及びアップデートされる対象パラメータの間の差に基づいて第1モード又は第2モードを選択することができる。
なお、制御方法は、第1モードが選択されると、複数のレイヤのうち少なくとも1つのレイヤで用いられるパラメータをリアルタイムでアップデートし、パラメータのアップデートに基づいて残りのレイヤのうち少なくとも1つで用いられるパラメータをリアルタイムで補償するステップを更に含んでよい。
この場合、パラメータをリアルタイムで補償するステップでは、少なくとも1つの中間レイヤで用いられるパラメータのリアルタイムアップデートに基づいて複数のレイヤのうち、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償することができる。
なお、パラメータをリアルタイムで補償するステップでは、第1中間レイヤで用いられる第1パラメータがリアルタイムでアップデートされると、第1パラメータのアップデートに基づいて最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償し、第1中間レイヤがアップデートされた後、第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、第1パラメータ及び第2パラメータのアップデートに基づいて最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償することができる。
なお、第1モード又は第2モードに応じて、入力映像を処理するステップ(S1230)では、第2モードで動作する間、人工知能モデルに含まれた第1中間レイヤで用いられる第1パラメータをアップデートし、第2モードを第1モードに切り替えるステップ、及び第1モードにおいて第2中間レイヤで用いられる第2パラメータがリアルタイムでアップデートされると、第1パラメータ及び第2パラメータのアップデートに基づいて、最初のレイヤ及び最後のレイヤのそれぞれで用いられるパラメータをリアルタイムで補償することができる。
ここで、残りのレイヤのいうち少なくとも1つで用いられるパラメータを補償するための補償パラメータは、少なくとも1つの中間レイヤがアップデートされたパラメータを含む人工知能モデルの学習に基づいて獲得されてよい。
なお、第1モード又は第2モードに応じて、入力映像を処理するステップ(S1230)では、入力映像のデータ伝送速度又は入力映像に対する情報のうち、少なくとも一方に基づいてパラメータのアップデートが必要か否かを識別することができる。
上述の多様な実施形態によると、人工知能モデルに含まれた複数のレイヤで用いられるパラメータに対するアップデートが必要な場合、少ないハードウェアリソースでパラメータを効果的にアップデートすることができるようになる。なお、パラメータのアップデートによって発生し得る映像のartifactを最小限に減少させることができるようになる。
なお、本発明の多様な実施形態によると、入力映像が変更されることで、パラメータのアップデートが必要な場合、複数のモードのうち1つのモードで動作するため、ディスプレイされる映像の画質に基づいて、本発明の実施形態が適用されたか否かを識別することができる。例えば、入力情報が変更されることで、パラメータのアップデートが必要な場合、例えば、第2モードを用いる場合には、エッジ処理、テクスチャ処理などが十分でないため、画質の低下した出力映像がディスプレイされ、他の場合、例えば、第1モードを用いる場合には、エッジ処理、テクスチャ処理などが十分に行われたため、画質の向上した出力映像がディスプレイされるため、本発明の実施形態が適用されたか否かを識別することができる。
本発明の多様な実施形態は、ディスプレイ装置だけでなく、セットトップボックスのような映像受信装置、映像処理装置など、映像処理が可能な全ての電子装置に適用されることができる。
一方、上述の本発明の多様な実施形態による方法は、従来の電子装置にインストール可能なアプリケーション又はソフトウェアで実現されてよい。又は、上述の本発明の多様な実施形態による方法は、ディープラーニングベースの人工ニューラルネットワーク(又は、深層人工ニューラルネットワーク)即ち、学習ネットワークモデルを用いて行われてよい。
なお、上述の本発明の多様な実施形態に係る方法は、従来の電子装置に対するソフトウェアのアップグレード、又はハードウェアのアップグレードだけでも実現されてよい。
なお、上述の本発明の多様な実施形態は、電子装置に備えられたエンベデッドサーバ、又は映像処理装置の外部サーバを介して行われることも可能である。
一方、本発明の一実施形態によると、以上で説明した多様な実施形態は、機器(machine)(例:コンピュータ)で読み込める保存媒体(machine−readable storage media)に保存されたコマンドを含むソフトウェアで実現されてよい。機器は、保存媒体から保存されたコマンドを呼び出し、呼び出されたコマンドに従って動作が可能な装置として、開示された実施形態に係る映像処理装置(例:映像処理装置(A))を含んでよい。コマンドがプロセッサによって実行される場合、プロセッサが直接又はプロセッサの制御下に他の構成要素を用いてコマンドに該当する機能を行うことができる。コマンドは、コンパイラ又はインタプリタによって生成又は実行されるコードを含むことができる。機器で読み取れる保存媒体は、非一時的(non−transitory)な保存媒体の形態で提供されてよい。ここで、「非一時的」とは、保存媒体が信号(signal)を含まずに、実在(tangible)することを意味するだけで、データが保存媒体に半永久的又は一時的に保存されることを区分しない。
なお、本発明の一実施形態によると、以上で説明された多様な実施形態に係る方法は、コンピュータプログラム製品(computer program product)に含まれて提供されてよい。コンピュータプログラム製品は、製品として販売者及び購入者の間で取り引きされてよい。コンピュータプログラム製品は、機器として読み込める保存媒体(例:compact disc read only memory(CD−ROM))の形態で、又はアプリケーションストア(例:プレイストアTM)を通じてオンラインで配布されてよい。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、製造元のサーバ、アプリケーションストアのサーバ、又は仲介サーバのメモリのような保存媒体に少なくとも一時保存されるか、一時的に生成されてよい。
なお、上述の多様な実施形態による構成要素(例:モジュール又はプログラム)のそれぞれは、単数又は複数の個体で構成されてよく、上述の該当サブ構成要素のうち、一部のサブ構成要素が省略されるか、又は、別のサブ構成要素が多様な実施形態に更に含まれてよい。代替的にまたは追加的に、一部の構成要素(例:モジュール又はプログラム)は、1つの個体で統合され、統合される前のそれぞれの当該構成要素によって行われる機能を同一又は類似するように行ってよい。多様な実施形態に係るモジュール、プログラム又は他の構成要素によって行われる動作は、順次に、並行して、繰り返し、ヒューリスティックに実行されたり、少なくとも一部の動作が他の順番で実行されたり、省略又は他の動作が追加されてよい。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。