以下、本発明の好ましい実施形態を添付の図面を参照して詳しく説明する。但し、下記の説明及び添付の図面において本発明の要旨を不明にすることができる公知機能または構成に対する詳細な説明は省略する。なお、図面全体にわたって、同一の構成要素は、できるだけ同一の参照符号で示していることに留意しなければならない。
以下で説明される本明細書及び請求範囲に使用された用語や単語は、通常的または辞書的な意味に限定して解釈されてはならず、発明者は、自分の発明を最も最善の方法で説明するための用語の概念として適切に定義できるという原則に基づいて、本発明の技術的思想に符合する意味と概念として解釈されなければならない。したがって、本明細書に記載された実施形態と図面に示された構成は、本発明の最も好ましい一実施形態に過ぎず、本発明の技術的思想をすべて代弁するものではないので、本出願時点においてこれらを代替できる多様な均等物と変形例があり得ることを理解しなければならない。また、第1、第2などの用語は、多様な構成要素を説明するために使用するものであって、一つの構成要素を他の構成要素から区別する目的だけで使用され、前記構成要素を限定するために使用されない。
以下では、本発明の実施形態による端末は、通信網に連結され、クラウドコンピューティングシステム基盤でコンテンツをアップロードまたはダウンロードできる移動通信端末を代表的な例として説明するが、端末は、移動通信端末に限定されたものではなく、すべての情報通信機器、マルチメディア端末、有線端末、固定型端末及びIP(Internet Protocol)端末などの多様な端末に適用され得る。また、端末は、携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net Book)及び情報通信機器などのような多様な移動通信仕様を有するモバイル(Mobile)端末であるとき、有利に活用され得る。
以下、本発明の実施形態によるクラウドコンピュータ基盤のデータ管理システムについて説明する。以下では、コンテンツ共有は、コンテンツ伝送を含む概念であることができる。また、データ管理は、データ伝送を含む概念であることができる。
図1は、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスシステムを示すブロック図である。
図1を参照すれば、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスシステムは、クラウドストリーミングサーバー110、端末装置120−1、…、120−N及びネットワーク130を含む。
クラウドストリーミングサーバー110は、端末装置120−1、…、120−Nからクラウドストリーミングサービス要請を受けてアプリケーションを実行し、アプリケーション実行結果に該当する実行結果画面を端末装置120−1、…、120−Nに提供する。
クラウドストリーミングサービスは、基本的に、ビデオコーデック基盤のクラウドストリーミング技法を適用するので、メニューディスプレイのような静的な画面に対してクラウドストリーミング技法を適用する場合にも、不要に画面全体をキャプチャしてビデオコーデックでエンコーディングする非効率的な方法でクラウドストリーミングサービスを行った。このような問題点を解決するために、本発明は、メニューディスプレイ画面のようにフレーム間変化が大きくない場合には、クラウドストリーミングサーバーがフレーム間変化を検出し、検出された変化領域のみをスチールイメージ圧縮技法でエンコーディングするクラウドストリーミングシステムを提供する。
クラウドストリーミングサーバー110は、以前フレームと現在フレームを比較し、以前フレームから変化した現在フレームの変化領域を決定し、変化領域をキャプチャする。この際、端末装置120−1、…、120−Nに伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。この際、端末装置120−1、…、120−Nから発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。
また、クラウドストリーミングサーバー110は、変化領域に相当するイメージのカラー個数及びイメージ画素値の標準偏差中の一つ以上を考慮して決定したイメージタイプによってスチールイメージ(still image)圧縮技法を選択し、スチールイメージ圧縮技法を利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする。この際、自然イメージ(natural image)及び合成イメージ(synthetic image)のうちいずれか一つのイメージタイプによってスチールイメージ圧縮技法を選択できる。この際、変化領域に相当するイメージのカラー個数が既定の基準個数を超過する場合、イメージタイプを自然イメージとして決定できる。この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下の場合、変化領域に相当するイメージ画素値の標準偏差を考慮してイメージタイプを決定できる。この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下であり、変化領域に相当するイメージ画素値の標準偏差が既定の基準値以下の場合、イメージタイプを合成イメージとして決定できる。この際、変化領域に相当するイメージ画素値の標準偏差が既定の基準値を超過する場合、イメージタイプを自然イメージとして決定できる。この際、イメージタイプによってPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つのスチールイメージ圧縮技法を利用して変化領域をスチールイメージエンコーディングできる。
また、クラウドストリーミングサーバー110は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。
端末装置120−1、…、120−Nは、クラウドストリーミングサーバー110からクラウドストリーミングサービスに相当するアプリケーション実行結果画面を受信し、ユーザに提供する。
端末装置120−1、…、120−Nは、それぞれ通信網に連結され、クラウドコンピューティングシステムを基盤としてアプリケーションを実行できる装置であって、移動通信端末に限定されるものではなく、すべての情報通信機器、マルチメディア端末、有線端末、固定型端末及びIP(Internet Protocol)端末などの多様な端末であることができる。また、端末装置120−1、…、120−Nは、それぞれ携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net Book)、個人携帯用情報端末(Personal Digital Assistant;PDA)、スマートテレビ及び情報通信機器などのような多様な移動通信仕様を有するモバイル(Mobile)端末であることができる。
ネットワーク130は、クラウドストリーミングサーバー110及び端末装置120−1、…、120−Nの間にデータを伝達する通路を提供するもので、従来利用されるネットワーク及び今後開発可能なネットワークをすべて包括する概念である。例えば、ネットワーク130は、限定された地域内で各種情報装置の通信を提供する有線・無線近距離通信網、移動体相互間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間通信を提供する衛星通信網であるか、有線・無線通信網のうちいずれか一つであるか、二つ以上の結合よりなることができる。なお、ネットワーク130の伝送方式標準は、従来の伝送方式標準に限定されるものではなく、今後開発されるすべての伝送方式標準を含むことができる。また、図1で、クラウドストリーミングサーバー110と端末装置120−1、…、120−Nとの間に使用されるネットワークは、端末装置120−1、…、120−Nの相互間に使用されるネットワークと異なるものであってもよく、同じものであってもよい。
図2は、図1に示されたクラウドストリーミングサーバー110の一例を示すブロック図である。
図2を参照すれば、図1に示されたクラウドストリーミングサーバー110は、変化領域決定部205、キャプチャ部210、エンコーディング部220、センディング部230及び格納部240を含む。
クラウドストリーミングサービスは、基本的に、ビデオコーデック基盤のクラウドストリーミング技法を適用するので、メニューディスプレイのような静的な画面に対してクラウドストリーミング技法を適用する場合にも、不要に画面全体をキャプチャしてビデオコーデックでエンコーディングする非効率的な方法でクラウドストリーミングサービスを行った。このような問題点を解決するために、本発明は、メニューディスプレイ画面のようにフレーム間変化が大きくない場合には、クラウドストリーミングサーバーがフレーム間変化を検出し、検出された変化領域のみをスチールイメージ圧縮技法でエンコーディングするクラウドストリーミングサーバー110を提供する。
変化領域決定部205は、以前フレームと現在フレームを比較し、以前フレームから変化した現在フレームの変化領域を決定する。
ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域として決定できる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域として決定できる。このような変化領域は、ユーザの端末装置で入力される入力信号によってサイズや変化領域に相当するイメージの性質が多様である。
この際、以前フレーム及び現在フレームの差分フレームを算出し、差分フレームを利用して変化領域を決定できる。この際、差分フレームをスキャニング(scanning)し、以前フレームから変化した現在フレームの変化ピクセルを感知し、変化領域を決定できる。この際、差分フレームを水平スキャニング(horizontal scanning)及び垂直スキャニング(vertical scanning)して感知される変化ピクセルを含む変化領域を決定できる。例えば、差分フレームの上端から下方向に進行しつつ、行単位で水平スキャニング(horizontal scanning)し、変化ピクセルが感知される場合、当該行に相当するy0要素を獲得し、下端から上方向に進行しつつ、行単位で水平スキャニングして変化ピクセルが感知される場合、当該行に相当するy1要素を獲得し、左側端から右側方向に進行しつつ、列単位で垂直スキャニング(vertical scanning)し、変化ピクセルが感知される場合、当該列に相当するx0要素を獲得し、右側端から左側方向に進行すると、列単位で垂直スキャニングし、変化ピクセルが感知される場合、当該列に相当するx1要素を獲得し(x0、y0)、(x1、y0)、(x1、y1)及び(x0、y1)、4個のピクセルを頂点とする矩形領域を変化領域として決定できる。
キャプチャ部210は、変化領域をキャプチャする。この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したとき、フレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
エンコーディング部220は、変化領域に相当するイメージのカラー個数及びイメージ画素値の標準偏差中の一つ以上を考慮して決定したイメージタイプによってスチールイメージ(still image)圧縮技法を選択し、スチールイメージ圧縮技法を利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする。例えば、キャプチャされた変化領域のイメージタイプが一つの写真や絵のようなタイプであるか、または複数のイメージが結合されて作られたイメージであることができるから、イメージタイプを決定し、それぞれのイメージタイプに適したスチールイメージ圧縮技法を選択し、スチールイメージエンコーディングを行うことによって、変化領域の圧縮効率を上昇させることができる。
この際、自然イメージ(natural image)及び合成イメージ(synthetic image)のうちいずれか一つのイメージタイプによってスチールイメージ圧縮技法を選択できる。自然イメージは、自然的に発生した客体のイメージを意味できる。例えば、一つの写真や絵のような光学イメージだけでなく、X線と赤外線のような異なる波長のイメージを意味することもできる。合成イメージは、自然イメージとは異なって、コンピュータや人為的手段を介して生成されるか合成されたイメージを意味できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数を超過する場合、イメージタイプを自然イメージとして決定できる。自然イメージの場合、自然的に発生した客体に対するイメージであることができるため、イメージを表現するカラーに適用された明度と彩度の変化が合成イメージより精巧なことがある。したがって、自然イメージを示すために構成された画素が表現するカラーの個数が、合成イメージより多様であるため、変化領域に相当するイメージのカラー個数を考慮して変化領域に相当するイメージタイプを決定できる。例えば、既定の基準個数を10万個に設定したら、変化領域に相当するイメージを構成するカラーの個数が10万個を超過する場合には、イメージタイプを自然イメージとして決定し、10万個以下の場合には、イメージタイプを合成イメージとして決定できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下の場合、変化領域に相当するイメージ画素値の標準偏差を考慮してイメージタイプを決定できる。画素値の標準偏差は、変化領域に相当するイメージを構成する画素が示すカラー値の散布度(ばらつき)であることができる。もしカラー値の散布度が0であれば、すべてのカラーが同じ値という意味であることができるため、カラー値の散布度、すなわち画素値の標準偏差が小さいということは、イメージを構成するカラーの個数が少ないという意味と相通できる。したがって、このようなイメージ画素値の標準偏差を考慮して変化領域に相当するイメージのイメージタイプを決定できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下であり、変化領域に相当するイメージ画素値の標準偏差が既定の基準値以下である場合、イメージタイプを合成イメージとして決定できる。例えば、イメージのカラー個数に対して既定の基準個数が10万個であり、イメージ画素値の標準偏差に対して既定の基準値がNであると仮定できる。この際、変化領域に相当するイメージを構成するカラーの個数が10万個以下であり、且つ変化領域に相当するイメージを構成する画素が示すカラー値の散布度がNより小さい値である場合、変化領域に相当するイメージのイメージタイプを合成イメージとして決定できる。
この際、変化領域に相当するイメージ画素値の標準偏差が既定の基準値を超過する場合、イメージタイプを自然イメージとして決定できる。例えば、変化領域を相当するイメージ画素値の標準偏差が既定の基準値を超過すると、その分、イメージを構成するカラーの個数が多いという意味であることができる。したがって、イメージ画素値の標準偏差が既定の基準値を超過すると、変化領域に相当するイメージが多いカラーで構成された自然イメージと判断できる。
この際、イメージタイプによってPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つのスチールイメージ圧縮技法を利用して変化領域をスチールイメージエンコーディングできる。
PNGスチールイメージ圧縮技法は、エンコーディング時にイメージの画質は良いが、データのサイズが大きくなって、伝送網の帯域幅が低い場合には、伝送速度が低下する技法であり、JPEGスチールイメージ圧縮技法は、圧縮効率が良いため、エンコーディング時に伝送データ量を大幅に低減できるが、圧縮効率が大きいため、エンコーディング及びデコーディングを行うときにシステム負荷を多く発生させることができる技法である。また、JPEGスチールイメージ圧縮技法は、一ピクセルの周囲に互いに類似な色が集まっている自然イメージを圧縮したとき、圧縮効率がさらに効果的である。したがって、変化領域に相当するイメージタイプが自然イメージである場合には、JPEGスチールイメージ圧縮技法で変化領域をエンコーディングできる。
また、変化領域が合成イメージの場合には、JPEGスチールイメージ圧縮技法を使用しても、自然イメージのように圧縮効率を期待しにくいことがある。したがって、変化領域に相当するイメージのイメージタイプが合成イメージの場合には、イメージの画質を高めることができるPNGスチールイメージ圧縮技法を選択し、変化領域のスチールイメージエンコーディングを行うことができる。
また、変化領域が合成イメージであり、変化領域のサイズが大きいため、データが大きい場合には、データのサイズを低減できるパレットPNG(portable network graphics)スチールイメージ圧縮技法を利用して変化領域をエンコーディングできる。パレットPNGスチールイメージ圧縮技法は、エンコーディング時にイメージのデータサイズが減少し、伝送速度は保証できるが、8ビットで色相を表現するため、イメージ画質に劣化をもたらすことができる。
センディング部230は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。エンコーディングを完了することによって、圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
格納部240は、前述したように、本発明の実施形態によるクラウドストリーミングサービス過程で発生する多様な情報を格納する。
実施形態によって、格納部240は、クラウドストリーミングサーバー110と独立的に構成され、クラウドストリーミングサービスのための機能を支援できる。この際、格納部240は、別途の大容量ストレージで動作でき、動作実行のための制御機能を含む。
また、前述したように構成されるクラウドストリーミングサーバー110は、一つ以上のサーバーで具現され得る。
一方、クラウドストリーミングサーバー110は、メモリが搭載され、その装置内で情報を格納できる。一具現例の場合、メモリは、コンピュータで読み取り可能な媒体である。一具現例で、メモリは、揮発性メモリユニットであることができ、他の具現例の場合、メモリは、揮発性メモリユニットであってもよい。一具現例の場合、格納装置は、コンピュータで読み取り可能な媒体である。多様な異なる具現例で、格納装置は、例えばハードディスク装置、光学ディスク装置、あるいはどんな他の大容量格納装置を含むこともできる。
図3は、クラウドストリーミングシステムの一例を示す図である。
図3を参照すれば、サーバー300では、ユーザの端末装置から発生するユーザ入力(User Input)に相当するプログラム画面310を実行させて、キャプチャ(Screen Capture)を行うことができる。この際、サーバー300は、クラウドストリーミングサーバーとウェブアプリケーションサーバーを総称するサーバーであることができる。また、プログラム画面310を実行させてキャプチャ(Screen Capture)を行う過程は、図2に示されたキャプチャ部210の動作流れと相当できる。
サーバー300は、キャプチャ(Screen Capture)されたプログラム画面310をスチールイメージ圧縮技法を用いてエンコーディング(Image Encoding)320できる。この際、エンコーディング(Image Encoding)320を行う過程は、図2に示されたエンコーディング部220の動作流れと相当できる。
この際、以前フレームと現在フレームを比較し、前記以前フレームから変化した前記現在フレームの変化領域のみをキャプチャできる。また、変化した領域のイメージタイプを考慮してPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つのスチールイメージ圧縮技法を選択し、選択したスチールイメージ圧縮技法に変化した領域をエンコーディングできる。
その後、サーバー300は、スチールイメージエンコーディングされた変化した領域をユーザの端末装置にストリーミング(Streaming)330し、スチールイメージ基盤のクラウドストリーミングサービスを提供できる。この際、ストリーミング(Streaming)330を行う過程は、図2に示されたセンディング部230の動作流れと相当できる。
その後、ユーザの端末装置では、受信したデータをレンダリング(Image Rendering)340することによって、ユーザ入力(User Input)によってアプリケーションで実行されたプログラム画面310がまるでユーザの端末装置で実行されたもののように、ユーザにディスプレイできる。
図4は、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスで変化領域をキャプチャする過程を示す図である。
図4を参照すれば、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスは、第1フレーム410と第2フレーム420を比較して、変化した変化領域430のみをキャプチャしてエンコーディングできる。
例えば、第1フレーム410と第2フレーム420でB、C、D及びEの領域をメニューディスプレイと仮定したとき、第1フレーム410では、C領域にカーソルが位置することによって、C領域が他のB、D、及びE領域と区別され得るように陰影処理され、第2フレーム420では、C領域からE領域にカーソルが移動することによって、E領域が他のB、C及びD領域と区別され得るように陰影処理され得る。
この際、第1フレーム410と第2フレーム420を比較したとき、変化した領域であるCとE領域を含む矩形領域C、D及びEのみを変化領域430としてキャプチャできる。また、変化領域430のサイズと変化領域430に相当するイメージ性質を考慮してスチールイメージ圧縮技法を選択し、選択したスチールイメージ圧縮技法を利用して変化領域430をエンコーディングできる。
このように第1フレーム410と第2フレーム420は、確かに変化があるフレームであって、従来のクラウドストリーミングサービス時には、二つのフレームを含んでフレームレートに相当する数のフレームをすべてキャプチャしてエンコーディングを行わなければならない。しかし、スチールイメージ圧縮技法を利用したクラウドストリーミングサービスは、変化領域430のみをキャプチャしてスチールイメージ圧縮技法でエンコーディングするため、不要に多くのフレームとフレームの画面全体をキャプチャする従来のクラウドストリーミングサービス方法よりサービスの効率性を向上させることができる。
図5は、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスで変化領域を決定する過程を示す図である。
図5を参照すれば、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービスは、第1フレーム410及び第2フレーム420の差分フレーム510を利用して変化ピクセルを含み、且つ最小広さを有する矩形領域を変化領域430として決定する。
例えば、差分フレーム510の上端から下方向に進行しつつ、行単位で水平スキャニング(horizontal scanning)し、変化ピクセルが感知される場合、当該行に相当するy0要素を獲得し、下端から上方向に進行しつつ、行単位で水平スキャニングし、変化ピクセルが感知される場合、当該行に相当するy1要素を獲得し、左側端から右側方向に進行しつつ、列単位で垂直スキャニング(vertical scanning)し、変化ピクセルが感知される場合、当該列に相当するx0要素を獲得し、右側端から左側方向に進行すると、列単位で垂直スキャニングし、変化ピクセルが感知される場合、当該列に相当するx1要素を獲得し(x0、y0)、(x1、y0)、(x1、y1)及び(x0、y1)、4個のピクセルを頂点とする矩形領域を変化領域430として決定できる。
図6は、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法を示す動作流れ図である。
図6を参照すれば、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法は、以前フレームと現在フレームを比較し、以前フレームから変化した現在フレームの変化領域を決定する(S605)。
ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域として決定できる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域として決定できる。このような変化領域は、ユーザの端末装置で入力される入力信号によってサイズや変化領域に相当するイメージの性質が多様である。
この際、以前フレーム及び現在フレームの差分フレームを算出し、差分フレームを利用して変化領域を決定できる。この際、差分フレームをスキャニング(scanning)し、以前フレームから変化した現在フレームの変化ピクセルを感知し、変化領域を決定できる。この際、差分フレームを水平スキャニング(horizontal scanning)及び垂直スキャニング(vertical scanning)して感知される変化ピクセルを含む変化領域を決定できる。例えば、差分フレームの上端から下方向に進行しつつ、行単位で水平スキャニング(horizontal scanning)し、変化ピクセルが感知される場合、当該行に相当するy0要素を獲得し、下端から上方向に進行しつつ、行単位で水平スキャニングして変化ピクセルが感知される場合、当該行に相当するy1要素を獲得し、左側端から右側方向に進行しつつ、列単位で垂直スキャニング(vertical scanning)して変化ピクセルが感知される場合、当該列に相当するx0要素を獲得し、右側端から左側方向に進行すると、列単位で垂直スキャニングして変化ピクセルが感知される場合、当該列に相当するx1要素を獲得し(x0、y0)、(x1、y0)、(x1、y1)及び(x0、y1)、4個のピクセルを頂点とする矩形領域を変化領域として決定できる。
また、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法は、変化領域をキャプチャする(S610)。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したとき、フレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
また、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法は、変化領域に相当するイメージのカラー個数及びイメージ画素値の標準偏差中の一つ以上を考慮して決定したイメージタイプによってスチールイメージ(still image)圧縮技法を選択し、スチールイメージ圧縮技法を利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする(S620)。例えば、キャプチャされた変化領域のイメージタイプが一つの写真や絵のようなタイプであるか、または複数のイメージが結合されて作られたイメージであることができるため、イメージタイプを決定し、それぞれのイメージタイプに適したスチールイメージ圧縮技法を選択してスチールイメージエンコーディングを行うことによって、変化領域の圧縮効率を上昇させることができる。
この際、自然イメージ(natural image)及び合成イメージ(synthetic image)のうちいずれか一つのイメージタイプによってスチールイメージ圧縮技法を選択できる。自然イメージは、自然的に発生した客体のイメージを意味できる。例えば、一つの写真や絵のような光学イメージだけでなく、X線と赤外線のような異なる波長のイメージを意味することもできる。合成イメージは、自然イメージとは異なって、コンピュータや人為的手段を通じて生成されるか、合成されたイメージを意味できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数を超過する場合、イメージタイプを自然イメージとして決定できる。自然イメージの場合、自然的に発生した客体に対するイメージであることができるため、イメージを表現するカラーに適用された明度と彩度の変化が合成イメージより精巧なことがある。したがって、自然イメージを示すために構成された画素が表現するカラーの個数が、合成イメージより多様であるため、変化領域に相当するイメージのカラー個数を考慮して変化領域に相当するイメージタイプを決定できる。例えば、既定の基準個数を10万個に設定したら、変化領域に相当するイメージを構成するカラーの個数が10万個を超過する場合には、イメージタイプを自然イメージとして決定し、10万個以下の場合には、イメージタイプを合成イメージとして決定できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下の場合、変化領域に相当するイメージ画素値の標準偏差を考慮してイメージタイプを決定できる。画素値の標準偏差は、変化領域に相当するイメージを構成する画素が示すカラー値の散布度であることができる。もしカラー値の散布度が0であれば、すべてのカラーが同じ値という意味であることができるため、カラー値の散布度、すなわち画素値の標準偏差が小さいということは、イメージを構成するカラーの個数が少ないという意味と相通できる。したがって、このようなイメージ画素値の標準偏差を考慮して変化領域に相当するイメージのイメージタイプを決定できる。
この際、変化領域に相当するイメージのカラー個数が既定の基準個数以下であり、変化領域に相当するイメージ画素値の標準偏差が既定の基準値以下である場合、イメージタイプを合成イメージとして決定できる。例えば、イメージのカラー個数に対して既定の基準個数が10万個であり、イメージ画素値の標準偏差に対して既定の基準値がNであると仮定できる。この際、変化領域に相当するイメージを構成するカラーの個数が10万個以下であり、且つ変化領域に相当するイメージを構成する画素が示すカラー値の散布度がNより小さい値である場合、変化領域に相当するイメージのイメージタイプを合成イメージとして決定できる。
この際、変化領域に相当するイメージ画素値の標準偏差が既定の基準値を超過する場合、イメージタイプを自然イメージとして決定できる。例えば、変化領域を相当するイメージ画素値の標準偏差が既定の基準値を超過すると、その分、イメージを構成するカラーの個数が多いという意味であることができる。したがって、イメージ画素値の標準偏差が既定の基準値を超過すると、変化領域に相当するイメージが多いカラーで構成された自然イメージと判断できる。
この際、イメージタイプによってPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つのスチールイメージ圧縮技法を利用して変化領域をスチールイメージエンコーディングできる。
PNGスチールイメージ圧縮技法は、エンコーディング時にイメージの画質は良いが、データのサイズが大きくなって、伝送網の帯域幅が低い場合には、伝送速度が低下する技法であり、JPEGスチールイメージ圧縮技法は、圧縮効率が良いため、エンコーディング時に伝送データ量を大幅に低減できるが、圧縮効率が大きいため、エンコーディング及びデコーディングを行うとき、システム負荷を多く発生させることができる技法である。また、JPEGスチールイメージ圧縮技法は、一ピクセルの周囲に互いに類似な色が集まっている自然イメージを圧縮したとき、圧縮効率がさらに効果的である。したがって、変化領域に相当するイメージタイプが自然イメージの場合には、JPEGスチールイメージ圧縮技法で変化領域をエンコーディングできる。
また、変化領域が合成イメージの場合には、JPEGスチールイメージ圧縮技法を使用しても、自然イメージのように圧縮効率を期待しにくいことがある。したがって、変化領域に相当するイメージのイメージタイプが合成イメージの場合には、イメージの画質を高めることができるPNGスチールイメージ圧縮技法を選択し、変化領域のスチールイメージエンコーディングを行うことができる。
また、変化領域が合成イメージであり、変化領域のサイズが大きくてデータが大きい場合には、データのサイズを低減できるパレットPNG(portable network graphics)スチールイメージ圧縮技法を利用して変化領域をエンコーディングできる。パレットPNGスチールイメージ圧縮技法は、エンコーディング時にイメージのデータサイズが減少し、伝送速度は保証できるが、8ビットで色相を表現するため、イメージ画質に劣化をもたらすことができる。
また、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S630)。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
また、図5には図示していないが、本発明の一実施形態によるスチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法は、本発明の一実施形態によるクラウドストリーミングサービス過程で発生する多様な情報を格納する。
図7は、本発明の一実施形態によるクラウドストリーミングサービスシステムを示すブロック図である。
図7を参照すれば、本発明の一実施形態によるクラウドストリーミングサービスシステムは、クラウドストリーミングサーバー710、端末装置720−1、…、720−N及びネットワーク730を含む。
クラウドストリーミングサーバー710は、端末装置720−1、…、720−Nからクラウドストリーミングサービス要請を受けてアプリケーションを実行し、アプリケーション実行結果に該当する実行結果画面を端末装置720−1、…、720−Nに提供する。
クラウドストリーミングサービスは、基本的に、ビデオコーデック基盤のクラウドストリーミング技法を適用するため、メニューディスプレイのような静的な画面に対してクラウドストリーミング技法を適用する場合にも、不要に画面全体をキャプチャしてビデオコーデックでエンコーディングする非効率的な方法でクラウドストリーミングサービスを行った。また、イメージに対するエンコーディングを行うとき、サーバーの資源を活用したイメージプロセッシング過程を行ってエンコーディング方式を決定できるため、サーバーの負荷量を増加させる原因になることができた。このような問題点を解決するために、本発明は、メニューディスプレイ画面のようにフレーム間変化が大きくない場合には、クラウドストリーミングサーバーがフレーム間変化を検出し、検出された変化領域のみをスチールイメージ圧縮技法でエンコーディングし、且つ変化領域に相当するイメージ特性情報を利用してエンコーディング方式を決定するクラウドストリーミングシステムを提供する。
クラウドストリーミングサーバー710は、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする。この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。この際、端末装置720−1、…、720−Nに伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。この際、端末装置720−1、…、720−Nから発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。
また、クラウドストリーミングサーバー710は、変化領域に相当するイメージ特性情報が存在するか否かを考慮してエンコーディング方式を決定し、エンコーディング方式を利用して変化領域をスチールイメージエンコーディングする。この際、イメージ特性情報は、アプリケーションソースコードを基盤として生成されるか、MPEGテクスチャ記述子を利用して生成され得る。この際、イメージ特性情報が存在する場合、イメージ特性情報を基盤としてエンコーディング方式を決定し、イメージ特性情報が存在しない場合、変化領域に相当するイメージを分析してエンコーディング方式を決定できる。この際、エンコーディング方式は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。この際、変化領域に相当するイメージを分析して変化領域を一般領域及び絵領域のうちいずれか一つに区分し、一般領域のイメージプロセッシング結果及び絵領域のイメージタイプのうち少なくとも一つ以上を考慮してエンコーディング方式を決定できる。この際、イメージタイプは、自然イメージ及び合成イメージのうちいずれか一つに相当できる。
また、クラウドストリーミングサーバー710は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。
端末装置720−1、…、720−Nは、クラウドストリーミングサーバー710からクラウドストリーミングサービスに相当するアプリケーション実行結果画面を受信し、ユーザに提供する。
端末装置720−1、…、720−Nは、それぞれ通信網に連結され、クラウドコンピューティングシステムを基盤としてアプリケーションを実行できる装置であって、移動通信端末に限定されたのではなくて、すべての情報通信機器、マルチメディア端末、有線端末、固定型端末及びIP(Internet Protocol)端末などの多様な端末であることができる。また、端末装置720−1、…、720−Nは、それぞれ携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net Book)、個人携帯用情報端末(Personal Digital Assistant;PDA)、スマートテレビ及び情報通信機器などのような多様な移動通信仕様を有するモバイル(Mobile)端末であることができる。
ネットワーク730は、クラウドストリーミングサーバー710及び端末装置720−1、…、720−Nの間にデータを伝達する通路を提供するものであって、従来利用されるネットワーク及び今後開発可能なネットワークをすべて包括する概念である。例えば、ネットワーク730は、限定された地域内で各種情報装置の通信を提供する有線・無線近距離通信網、移動体相互間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間の通信を提供する衛星通信網であるか、有線・無線通信網のうちいずれか一つであるか、二つ以上の結合よりなることができる。なお、ネットワーク730の伝送方式標準は、従来の伝送方式標準に限定されるものではなく、今後開発されるすべての伝送方式標準を含むことができる。また、図7で、クラウドストリーミングサーバー710と端末装置720−1、…、720−Nとの間に使用されるネットワークは、端末装置720−1、…、720−N相互間に使用されるネットワークと異なってもよく、同一であってもよい。
図8は、図7に示されたクラウドストリーミングサーバーの一例を示すブロック図である。
図8を参照すれば、図7に示されたクラウドストリーミングサーバー710は、キャプチャ部810、エンコーディング部820、センディング部830及び格納部840を含む。
キャプチャ部810は、変化したフレームに含まれた変化領域をキャプチャする。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によってサイズや変化領域に相当するイメージの性質が多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したときにフレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
エンコーディング部820は、変化領域に相当するイメージ特性情報が存在するか否かを考慮してエンコーディング方式を決定し、所定のエンコーディング方式を利用して変化領域をスチールイメージエンコーディングする。例えば、エンコーディング方式は、変化領域に相当するイメージの特性によって決定され得、このようなイメージの特性は、イメージプロセッシングを通じて分析した結果に基づいて抽出され得る。しかし、イメージプロセッシングを行うためには、クラウドストリーミングサーバー710の資源を使用して行われるため、システムの負荷を増加させる原因になり得る。したがって、既に変化領域に相当するイメージの特性に相当する情報を含んでいるイメージ特性情報が存在すると、この情報を利用してエンコーディング方式を決定することによって、クラウドストリーミングサーバー710の資源を節約できる。
この際、イメージ特性情報は、アプリケーションソースコードを基盤として生成されるか、MPEGテクスチャ記述子を利用して生成され得る。
アプリケーションソースコードやMPEGテクスチャ記述子には、ユーザの要請によって出力されるアプリケーション結果画面に対する構成情報やアプリケーション結果画面を構成している構成要素に対する特徴を把握できる記述子が含まれることができる。例えば、アプリケーションソースコードの場合には、JPG、GIF及びPNGのように、変化領域に相当するイメージファイルの拡張子や、height及びwidthなどのコマンドを利用したイメージのサイズに相当する特徴を抽出できる。また、MPEGテクスチャ記述子の場合には、カラー、輪郭、客体やカメラの動きなどと共に重要なビジュアル特徴を扱うMPEG−7標準ビジュアル分野の質感記述子などを利用してイメージ特性情報を生成できる。
また、イメージ特性情報は、該当するフレーム全体領域に対する特性及び構成情報であることができ、またはフレームのうち変化領域に対する特性及び構成情報であるか、または変化領域のうち一部領域、すなわち一般領域や絵領域に対する特性及び構成情報であることができる。
したがって、このようなイメージ特性情報を利用することができたら、変化領域に相当するイメージを分析することなく、イメージサイズ、イメージ解像度及びイメージタイプなどを含む多様な特性を容易に抽出できる。
この際、イメージ特性情報が存在する場合、イメージ特性情報を基盤としてエンコーディング方式を決定し、イメージ特性情報が存在しない場合、変化領域に相当するイメージを分析してエンコーディング方式を決定できる。例えば、変化領域に相当するイメージ特性情報が存在すると仮定したら、イメージ特性情報を利用して変化領域に相当するイメージのサイズ、イメージ解像度及びイメージタイプなどのイメージ特性を抽出できる。このように抽出されたイメージ特性を通じてエンコーディング方式を決定できる。また、イメージ特性情報が存在しない場合には、イメージプロセッシング過程を行うことによって変化領域に相当するイメージに対してイメージのサイズ、イメージ解像度及びイメージタイプなどのイメージ特性を抽出できる。
この際、イメージ特性情報から抽出するか、イメージプロセッシングを通じて抽出されるイメージの特性は、イメージのサイズ、イメージ解像度及びイメージタイプを除いて多様な種類が存在し得る。
この際、エンコーディング方式は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。PNGスチールイメージ圧縮技法は、エンコーディング時にイメージの画質は良いが、データのサイズが大きくなって、伝送網の帯域幅が低い場合には、伝送速度が低下することがある。パレットPNGスチールイメージ圧縮技法は、エンコーディング時にイメージのデータサイズが減少し、伝送速度は保証できるが、8ビットで色相を表現するため、イメージ画質に劣化をもたらすことができる。JPEGスチールイメージ圧縮技法は、圧縮効率が良いため、エンコーディング時に伝送データ量を大幅に低減できるが、圧縮効率が大きいため、エンコーディング及びデコーディングを行うとき、システム負荷を多く発生させることができる。
この際、変化領域に相当するイメージを分析し、変化領域を一般領域及び絵領域のうちいずれか一つに区分し、一般領域のイメージプロセッシング結果及び絵領域のイメージタイプのうち少なくとも一つ以上を考慮してエンコーディング方式を決定できる。例えば、絵領域は、JPEG、PNG及びGIFのようなイメージ形式に相当するファイルで構成された領域であることができ、一般領域は、変化領域のうち絵領域を除いた領域であると見られる。したがって、絵領域の場合には、もうイメージ形式を基盤として特性が付与された状態であり、一般領域の場合には、一般領域に相当する領域をキャプチャされたイメージと判断したとき、イメージプロセッシングを通じてどんな特性に属するかを判断できる。
この際、イメージタイプは、自然イメージ及び合成イメージのうちいずれか一つに相当できる。自然イメージは、一つの写真や絵のようなイメージを意味でき、合成イメージは、複数のイメージを結合して作られたイメージであることができる。
また、イメージタイプが自然イメージの場合には、JPEGエンコーディング方式を利用してエンコーディングする場合に圧縮効率がさらに効果的であり、イメージタイプが合成イメージの場合には、データのサイズを低減できるパレットPNGエンコーディング方式を利用してエンコーディングすることが効果的である。
センディング部830は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
格納部840は、前述したように、本発明の実施形態によるクラウドストリーミングサービス過程で発生する多様な情報を格納する。
実施形態によって、格納部840は、クラウドストリーミングサーバー710と独立的に構成され、クラウドストリーミングサービスのための機能を支援できる。この際、格納部840は、別途の大容量ストレージとして動作でき、動作実行のための制御機能を含むことができる。
また、前述したように構成されるクラウドストリーミングサーバー710は、一つ以上のサーバーで具現され得る。
一方、クラウドストリーミングサーバー710は、メモリが搭載され、その装置内で情報を格納できる。一具現例の場合、メモリは、コンピュータで読み取り可能な媒体である。一具現例で、メモリは、揮発性メモリユニットであることができ、他の具現例の場合、メモリは、不揮発性メモリユニットであってもよい。一具現例の場合、格納装置は、コンピュータで読み取り可能な媒体である。多様な異なる具現例で、格納装置は、例えばハードディスク装置、光学ディスク装置、あるいは他のいかなる大容量格納装置を含むこともできる。
図9は、スチールイメージ基盤クラウドストリーミングシステムの一例を示す図である。
図9を参照すれば、サーバー900では、ユーザの端末装置から発生するユーザ入力(User Input)に相当するプログラム画面910を実行させてキャプチャ(Screen Capture)を行うことができる。この際、サーバー900は、クラウドストリーミングサーバーとウェブアプリケーションサーバーを総称するサーバーであることができる。また、プログラム画面910を実行させてキャプチャ(Screen Capture)を行う過程は、図8に示されたキャプチャ部810の動作流れと相当できる。
サーバー900は、キャプチャ(Screen Capture)されたプログラム画面910をスチールイメージ圧縮技法を用いてエンコーディング(Image Encoding)920できる。この際、エンコーディング(Image Encoding)920を行う過程は、図8に示されたエンコーディング部820の動作流れと相当できる。
この際、変化したフレームを以前フレームと比較し、変化した領域のみをキャプチャできる。また、変化した領域に相当するイメージ特性情報が存在するか否かを考慮してPNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つのエンコーディング方式を選択し、選択したエンコーディング方式で変化した領域をスチールイメージエンコーディングできる。
その後、サーバー900は、スチールイメージエンコーディングされた変化した領域をユーザの端末装置にストリーミング(Streaming)930し、スチールイメージ基盤のクラウドストリーミングサービスを提供できる。この際、ストリーミング(Streaming)(930)を行う過程は、図8に示されたセンディング部830の動作流れと相当できる。
その後、ユーザの端末装置では、受信したデータをレンダリング(Image Rendering)(940)することによって、ユーザ入力(User Input)によってアプリケーションで実行されたプログラム画面910がまるでユーザの端末装置で実行されたもののように、ユーザにディスプレイできる。
図10は、本発明の一実施形態によるクラウドストリーミングサービスで変化領域をキャプチャする過程を示す図である。
図10を参照すれば、本発明の一実施形態によるスチールイメージ基盤クラウドストリーミングサービスは、第1フレーム1010と第2フレーム1020を比較し、変化した変化領域1030のみをキャプチャしてエンコーディングできる。
例えば、第1フレーム1010と第2フレーム1020でB、C、D及びEの領域をメニューディスプレイと仮定したとき、第1フレーム1010では、C領域にカーソルが位置することによって、C領域が他のB、D、及びE領域と区別され得るように陰影処理され、第2フレーム1020では、C領域からD領域にカーソルが移動することによって、D領域が他のB、C及びE領域と区別され得るように陰影処理され得る。
この際、第1フレーム1010と第2フレーム1020を比較したとき、変化した領域であるCとD領域のみを変化領域1030としてキャプチャできる。また、変化領域1030に相当するイメージ特性情報が存在するか否かを考慮してエンコーディング方式を選択し、選択したエンコーディング方式を利用して変化領域1030をスチールイメージエンコーディングできる。
このように第1フレーム1010と第2フレーム1020は、確かに変化があるフレームであって、従来のクラウドストリーミングサービス時には、二つのフレームを含んでフレームレートに相当する数のフレームをすべてキャプチャしてエンコーディングを行わなければならない。しかし、スチールイメージ基盤クラウドストリーミングサービスは、変化領域1030のみをキャプチャしてスチールイメージ圧縮技法でエンコーディングするため、不要に多くのフレームとフレームの画面全体をキャプチャする従来のクラウドストリーミングサービス方法よりサービスの効率性を向上させることができる。
図11は、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法を示す動作流れ図である。
図11を参照すれば、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法は、変化したフレームに含まれた変化領域をキャプチャする(S1110)。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャし、エンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によってサイズや変化領域に相当するイメージの性質が多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したときにフレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
また、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法は、変化領域に相当するイメージ特性情報が存在するか否かを考慮してエンコーディング方式を決定し、所定のエンコーディング方式を利用して変化領域をスチールイメージエンコーディングする(S1120)。例えば、エンコーディング方式は、変化領域に相当するイメージの特性によって決定され得、このようなイメージの特性は、イメージプロセッシングを通じて分析した結果に基づいて抽出され得る。しかし、イメージプロセッシングを行うためには、クラウドストリーミングサーバーの資源を使用して行われるため、システムの負荷を増加させる原因になり得る。したがって、既に変化領域に相当するイメージの特性に相当する情報を含んでいるイメージ特性情報が存在すると、この情報を利用してエンコーディング方式を決定することによって、クラウドストリーミングサーバーの資源を節約できる。
この際、イメージ特性情報は、アプリケーションソースコードを基盤として生成されるか、MPEGテクスチャ記述子を利用して生成され得る。
アプリケーションソースコードやMPEGテクスチャ記述子には、ユーザの要請によって出力されるアプリケーション結果画面に対する構成情報やアプリケーション結果画面を構成している構成要素に対する特徴を把握できる記述子が含まれることができる。
例えば、アプリケーションソースコードの場合には、JPG、GIF及びPNGのように変化領域に相当するイメージファイルの拡張子や、height及びwidthなどのコマンドを利用したイメージのサイズに相当する特徴を抽出できる。また、MPEGテクスチャ記述子の場合には、カラー、輪郭、客体やカメラの動きなどと共に重要なビジュアル特徴を扱うMPEG−7標準ビジュアル分野の質感記述子などを利用してイメージ特性情報を生成できる。
また、イメージ特性情報は、該当するフレーム全体領域に対する特性及び構成情報であることができ、またはフレームのうち変化領域に対する特性及び構成情報であるか、または変化領域のうち一部領域、すなわち一般領域や絵領域に対する特性及び構成情報であることができる。
したがって、このようなイメージ特性情報を利用することができたら、変化領域に相当するイメージを分析することなく、イメージサイズ、イメージ解像度及びイメージタイプなどを含む多様な特性を容易に抽出できる。
この際、イメージ特性情報が存在する場合、イメージ特性情報を基盤としてエンコーディング方式を決定し、イメージ特性情報が存在しない場合、変化領域に相当するイメージを分析してエンコーディング方式を決定できる。例えば、変化領域に相当するイメージ特性情報が存在すると仮定したら、イメージ特性情報を利用して変化領域に相当するイメージのサイズ、イメージ解像度及びイメージタイプなどのイメージ特性を抽出できる。このように抽出されたイメージ特性を通じてエンコーディング方式を決定できる。また、イメージ特性情報が存在しない場合には、イメージプロセッシング過程を行うことによって、変化領域に相当するイメージに対してイメージのサイズ、イメージ解像度及びイメージタイプなどのイメージ特性を抽出できる。
この際、イメージ特性情報から抽出するか、イメージプロセッシングを通じて抽出されるイメージの特性は、イメージのサイズ、イメージ解像度及びイメージタイプを除いて、多様に種類が存在し得る。
この際、エンコーディング方式は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。PNGスチールイメージ圧縮技法は、エンコーディング時にイメージの画質は良いが、データのサイズが大きくなるため、伝送網の帯域幅が低い場合には、伝送速度が低下することがある。パレットPNGスチールイメージ圧縮技法は、エンコーディング時イにメージのデータサイズが減少し、伝送速度は保証できるが、8ビットで色相を表現するため、イメージ画質に劣化をもたらすことができる。JPEGスチールイメージ圧縮技法は、圧縮効率が良いため、エンコーディング時に伝送データ量を大幅に低減できるが、圧縮効率が大きいため、エンコーディング及びデコーディングを行うとき、システム負荷を多く発生させることができる。
この際、変化領域に相当するイメージを分析して変化領域を一般領域及び絵領域のうちいずれか一つに区分し、一般領域のイメージプロセッシング結果及び絵領域のイメージタイプのうち少なくとも一つ以上を考慮してエンコーディング方式を決定できる。例えば、絵領域は、JPEG、PNG及びGIFのようなイメージ形式に相当するファイルで構成された領域であることができ、一般領域は、変化領域のうち絵領域を除いた領域であると見られる。したがって、絵領域の場合には、既にイメージ形式を基盤として特性が付与された状態であり、一般領域の場合には、一般領域に相当する領域をキャプチャされたイメージと判断したとき、イメージプロセッシングを通じてどんな特性に属するかを判断できる。
この際、イメージタイプは、自然イメージ及び合成イメージのうちいずれか一つに相当できる。自然イメージは、一つの写真や絵のようなイメージを意味でき、合成イメージは、複数のイメージを結合して作られたイメージであることができる。
また、イメージタイプが自然イメージの場合には、JPEGエンコーディング方式を利用してエンコーディングする場合に、圧縮効率がさらに効果的であり、イメージタイプが合成イメージの場合には、データのサイズを低減できるパレットPNGエンコーディング方式を利用してエンコーディングすることが効果的である。
また、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S1130)。スチールイメージエンコーディングして圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
図12は、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法を詳細に示す動作流れ図である。
図12を参照すれば、本発明の一実施形態によるソース情報を利用したクラウドストリーミングサービス方法は、まず、クラウドストリーミングサーバーで変化したフレームに含まれた変化領域をキャプチャする(S1210)。
この際、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。
その後、変化領域に相当するイメージ特性情報が存在するか否かを判断する(S1215)。
この際、イメージ特性情報は、アプリケーションソースコードを基盤として生成されるか、MPEGテクスチャ記述子を利用して生成され得る。
段階S1215の判断結果、存在すると、イメージ特性情報を基盤としてエンコーディング方式を決定する(S1220)。
段階S1215の判断結果、存在しないと、変化領域に相当するイメージを分析し(S1230)、分析した結果を考慮してエンコーディング方式を決定する(S1240)。
この際、エンコーディング方式は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。
その後、所定のエンコーディング方式を利用して変化領域をスチールイメージエンコーディングする(S1250)。
その後、スチールイメージエンコーディングされた変化領域をユーザに伝達し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S1260)。
図13は、本発明の他の実施形態によるクラウドストリーミングサービスシステムを示すブロック図である。
図13を参照すれば、本発明の他の実施形態によるクラウドストリーミングサービスシステムは、クラウドストリーミングサーバー1310、端末装置1320−1、…、1320−N及びネットワーク1330を含む。
クラウドストリーミングサーバー1310は、端末装置1320−1、…、1320−Nからクラウドストリーミングサービス要請を受けてアプリケーションを実行し、アプリケーション実行結果に該当する実行結果画面を端末装置1320−1、…、1320−Nに提供する。
クラウドストリーミングサーバー1310は、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする。この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。この際、端末装置1320−1、…、1320−Nに伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。この際、端末装置1320−1、…、1320−Nから発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。
また、クラウドストリーミングサーバー1310は、変化領域に相当するイメージ特性及びイメージ解像度のうち一つ以上を考慮してエンコーディング処理ユニットを選択し、エンコーディング処理ユニットを利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする。この際、エンコーディング処理ユニットは、中央処理ユニット(Central Processing Unit;CPU)及びグラフィック処理ユニット(Graphics Processing Unit;GPU)のうちいずれか一つのエンコーディング処理ユニットであることができる。この際、イメージ特性及びイメージ解像度のうち一つ以上を考慮して中央処理ユニットとグラフィック処理ユニット各々に対するエンコーディング処理費用を予測し、中央処理ユニット及びグラフィック処理ユニットのうちエンコーディング処理費用が低いエンコーディング処理ユニットを選択して変化領域をスチールイメージエンコーディングできる。この際、変化領域に相当するイメージ解像度が既定の基準値以上である場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。この際、変化領域に相当するイメージ解像度が既定の基準値未満である場合、変化領域に相当するイメージ特性によるスチールイメージ圧縮技法を考慮してエンコーディング処理ユニットを選択できる。この際、イメージ解像度が既定の基準値未満であり、スチールイメージ圧縮技法がパレットPNGである場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。
また、クラウドストリーミングサーバー1310は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。
端末装置1320−1、…、1320−Nは、クラウドストリーミングサーバー1310からクラウドストリーミングサービスに相当するアプリケーション実行結果画面を受信し、ユーザに提供する。
端末装置1320−1、…、1320−Nは、それぞれ通信網に連結され、クラウドコンピューティングシステムを基盤としてアプリケーションを実行できる装置であって、移動通信端末に限定されるものではなく、すべての情報通信機器、マルチメディア端末、有線端末、固定型端末及びIP(Internet Protocol)端末などの多様な端末であることができる。また、端末装置1320−1、…、1320−Nは、それぞれ携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net Book)、個人携帯用情報端末(Personal Digital Assistant;PDA)、スマートテレビ及び情報通信機器などのような多様な移動通信仕様を有するモバイル(Mobile)端末であることができる。
ネットワーク1330は、クラウドストリーミングサーバー1310及び端末装置1320−1、…、1320−Nの間にデータを伝達する通路を提供するもので、従来に利用されるネットワーク及び今後開発可能なネットワークをすべて包括する概念である。例えば、ネットワーク1330は、限定された地域内で各種情報装置の通信を提供する有線・無線近距離通信網、移動体相互間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間の通信を提供する衛星通信網であるか、有線・無線通信網のうちいずれか一つであるか、二つ以上の結合よりなることができる。なお、ネットワーク1330の伝送方式標準は、従来の伝送方式標準に限定されるものではなく、今後開発されるすべての伝送方式標準を含む。また、図13でクラウドストリーミングサーバー1310と端末装置1320−1、…、1320−Nの間に使用されるネットワークは、端末装置1320−1、…、1320−N相互間に使用されるネットワークと異なってもよく、同一であってもよい。
図14は、図13に示されたクラウドストリーミングサーバーの一例を示すブロック図である。
図14を参照すれば、図13に示されたクラウドストリーミングサーバー1310は、キャプチャ部1410、エンコーディング部1420、センディング部1430及び格納部1440を含む。
クラウドストリーミングサービス時に、変化領域のみを検出し、クラウドストリーミングサービスを行うイメージクラウドストリーミングにおいて、イメージエンコーディングを行うとき、中央処理ユニット(Central Processing Unit;CPU)を利用するか、グラフィック処理ユニット(Graphics Processing Unit;GPU)を利用して、エンコーディングを行うことができる。この際、最適のイメージクラウドストリーミングサービスを提供するためには、状況に適切に中央処理ユニットとグラフィック処理ユニットを組み合わせて使用しなければならないが、従来のクラウドストリーミングサービスの提供時には、同一の一つのユニットだけでエンコーディングが処理されている実情である。したがって、本発明では、変化領域に対する特徴を把握し、状況に適切なエンコーディング処理ユニットを利用してさらに効率的にイメージクラウドストリーミングサービスを提供できる構成を提案する。
キャプチャ部1410は、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイする時変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によって解像度や変化領域に相当するイメージのタイプが多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したとき、フレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
エンコーディング部1420は、変化領域に相当するイメージ特性及びイメージ解像度のうち一つ以上を考慮してエンコーディング処理ユニットを選択し、エンコーディング処理ユニットを利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする。
この際、エンコーディング処理ユニットは、中央処理ユニット(Central Processing Unit;CPU)及びグラフィック処理ユニット(Graphics Processing Unit;GPU)のうちいずれか一つのエンコーディング処理ユニットであることができる。
中央処理ユニット(Central Processing Unit;CPU)は、コンピュータの最も重要な部分であって、命令を解読し、算術論理演算やデータ処理を実行する装置であることができる。したがって、コンピュータの計算速度や一度に扱うデータ量、管理し得る主記憶装置領域のサイズなどは、中央処理ユニットの性能に依存するところが大きい。このような中央処理ユニット(Central Processing Unit;CPU)を利用して変化領域をエンコーディングする場合、エンコーディングするデータを他のユニットに伝達せず、すぐエンコーディングを行うことができるため、データ伝達による費用は、発生しないことがある。しかし、変化領域に相当するイメージの解像度が高い場合には、エンコーディングを行うのに時間が長くかかることができる。特に、パレットPNG(portable network graphics)スチールイメージ圧縮技法でカラー量子化過程を行うことのように、単純な計算を多く繰り返す場合には、エンコーディング時間が長くかかることができる。
グラフィック処理ユニット(Graphics Processing Unit;GPU)は、3Dグラフィックが本格的に導入された後、ディスプレイ画面をより現実的に作るための各種光源効果及び質感表現技法を処理するために開発された3Dグラフィック演算専用のプロセッサである。このようなグラフィック処理ユニット(Graphics Processing Unit;GPU)を利用して変化領域をエンコーディングする場合には、むしろ単純計算の繰り返しや解像度が大きいイメージをエンコーディングするのに効果的である。しかし、グラフィック処理ユニットを利用して変化領域のエンコーディングを行うためには、まず、中央処理ユニットからエンコーディングするデータを伝達され、エンコーディングが完了した後にも、エンコーディングされたデータをさらに中央処理ユニットに伝達しなければならないため、追加的な伝達費用が発生し得る。
この際、イメージ特性及びイメージ解像度のうち一つ以上を考慮して中央処理ユニットとグラフィック処理ユニット各々に対するエンコーディング処理費用を予測し、中央処理ユニット及びグラフィック処理ユニットのうちエンコーディング処理費用が低いエンコーディング処理ユニットを選択して、変化領域をスチールイメージエンコーディングできる。例えば、変化領域Aに対してエンコーディングを行うために、変化領域Aに相当するイメージ特性とイメージ解像度を判断できる。その後、判断された変化領域Aのイメージ特性及びイメージ解像度を基盤としてそれぞれ中央処理ユニットとグラフィック処理ユニットにエンコーディングを実行したときに発生し得るエンコーディング処理費用を予測できる。二つのエンコーディング処理ユニットのうちエンコーディング処理費用がさらに低く予測されたエンコーディング処理ユニットを選択して変化領域Aのエンコーディングを行うことができる。
また、エンコーディングが行われた後に発生したエンコーディング処理費用に対してエンコーディング処理費用統計を生成できる。例えば、クラウドストリーミングサービスが行われるうちに所定の単位期間を設定し、設定された単位期間ごとにエンコーディング処理費用に対する格納された情報を利用してエンコーディング処理費用統計をアップデートできる。このようなエンコーディング処理費用統計は、イメージ特性、イメージ解像度及びエンコーディング処理ユニット各々に対する詳細的な統計情報として生成され得、生成された統計情報を基盤として選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法の信頼度を上昇させることができる。
この際、変化領域に相当するイメージ解像度が既定の基準値以上である場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。
解像度は、イメージを表現するにあたって、いくつかのピクセルまたはドットを利用して示したか、その程度を示すことができる。単位としては、1インチ当たりいくつかのピクセル(pixel)よりなるかを示すppi(pixel per inch)、1インチ当たりいくつかの点(dot)よりなるかを示すdpi(dot per inch)を主に使用する。ピクセルまたはドットの数が多いほど、高解像度の精緻なイメージを表現できる。解像度が高いほど、イメージがきれいで且つ鮮明に見えるが、その分、1インチ当たり点の数が多くなって、当該イメージを処理するために多量のメモリが必要であり、結果的に、コンピュータ処理速度が遅くなる短所が存在し得る。例えば、解像度が高いイメージを中央処理ユニットでエンコーディングする場合、エンコーディング処理時間が長くなって、エンコーディング処理費用が多く発生し得る。
したがって、変化領域に相当するイメージ解像度が前もって設定された基準値と同一であるか、または基準値より高い場合には、グラフィック処理ユニットを利用してエンコーディングを行うことによって、中央処理ユニットを利用してエンコーディングするときよりエンコーディング処理費用を節約できる。
この際、変化領域に相当するイメージ解像度が既定の基準値未満である場合、変化領域に相当するイメージ特性によるスチールイメージ圧縮技法を考慮してエンコーディング処理ユニットを選択できる。変化領域に相当するイメージ解像度が既定の基準値より低い場合、エンコーディングするデータをグラフィック処理ユニットに伝達する必要なく、中央処理ユニットでエンコーディングを行うことができる。しかし、イメージ解像度が低くても、変化領域に相当するイメージ特性によって選択されるスチールイメージ圧縮技法によって単純計算が繰り返されなければならない場合が発生し得るため、変化領域のイメージタイプをもう一度考慮してエンコーディング処理ユニットを選択できる。
また、スチールイメージ圧縮技法は、変化領域に相当するイメージのサイズやイメージのタイプのようなイメージ特性によって決定され得る。
この際、スチールイメージ圧縮技法は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。PNGスチールイメージ圧縮技法は、エンコーディングの場合、画質は良いが、データサイズが大きくなるため、伝送網の帯域幅が低い場合、反応速度の低下をもたらすことができる。パレットPNGスチールイメージ圧縮技法は、データのサイズを減少するが、が画質の劣化をもたらすことができ、特にデータサイズ減少のためのカラー量子化過程に起因して、単純な計算の繰り返される過程が含まれることができる。JPEGスチールイメージ圧縮技法は、伝送されるイメージタイプによってデータの圧縮効率が良いが、圧縮効率が良い分だけ、エンコーディング及びデコーディング時に負荷が大きくなることができる。
この際、イメージ解像度が既定の基準値未満であり、スチールイメージ圧縮技法がパレットPNGである場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。例えば、変化領域のイメージ特性上、パレットPNGスチールイメージ圧縮技法を利用してエンコーディングを行うときには、カラー量子化のような単純計算を繰り返すため、エンコーディング処理時間が長くなることができる。したがって、このような場合には、グラフィック処理ユニットを利用してエンコーディングを行うことによって、中央処理ユニットを利用してエンコーディングするときより少ないエンコーディング処理費用でクラウドストリーミングサービスを行うことができる。
センディング部1430は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
格納部1440は、前述したように、本発明の実施形態によるクラウドストリーミングサービス過程で発生する多様な情報を格納する。
実施形態によって、格納部1440は、クラウドストリーミングサーバー1310と独立的に構成され、クラウドストリーミングサービスのための機能を支援できる。この際、格納部1440は、別途の大容量ストレージとして動作でき、動作実行のための制御機能を含む。
また、前述したように構成されるクラウドストリーミングサーバー1310は、一つ以上のサーバーで具現され得る。
なお、クラウドストリーミングサーバー1310は、メモリが搭載され、その装置内で情報を格納できる。一具現例の場合、メモリは、コンピュータで読み取り可能な媒体である。一具現例で、メモリは、揮発性メモリユニットであることができ、他の具現例の場合、メモリは、不揮発性メモリユニットであってもよい。一具現例の場合、格納装置は、コンピュータで読み取り可能な媒体である。多様な互いに異なる具現例で、格納装置は、例えばハードディスク装置、光学ディスク装置、あるいはどんな他の大容量格納装置を含むこともできる。
図15は、スチールイメージ基盤クラウドストリーミングシステムの他の例を示す図である。
図15を参照すれば、サーバー1500では、ユーザの端末装置から発生するユーザ入力(User Input)に相当するプログラム画面1510を実行させてキャプチャ(Screen Capture)を行うことができる。この際、サーバー1500は、クラウドストリーミングサーバーとウェブアプリケーションサーバーを総称するサーバーであることができる。また、プログラム画面1510を実行させてキャプチャ(Screen Capture)を行う過程は、図14に示されたキャプチャ部1410の動作流れと相当できる。
サーバー1500は、キャプチャ(Screen Capture)されたプログラム画面1510をスチールイメージ圧縮技法を用いてエンコーディング(Image Encoding)(1520)できる。この際、エンコーディング(Image Encoding)1520を行う過程は、図14に示されたエンコーディング部1420の動作流れと相当できる。
この際、変化したフレームを以前フレームと比較して変化した領域のみをキャプチャできる。また、変化した領域のイメージ特性及び変化した領域に相当するイメージ解像度を考慮して中央処理ユニット及びグラフィック処理ユニットのうちいずれか一つのエンコーディング処理ユニットを選択し、選択したエンコーディング処理ユニットを利用して変化した領域をスチールイメージエンコーディングできる。
その後、サーバー1500は、スチールイメージエンコーディングされた変化した領域をユーザの端末装置にストリーミング(Streaming)(1530)し、スチールイメージ基盤のクラウドストリーミングサービスを提供できる。この際、ストリーミング(Streaming)(1530)を行う過程は、図14に示されたセンディング部1430の動作流れと相当できる。
その後、ユーザの端末装置では、受信したデータをレンダリング(Image Rendering)(1540)することによって、ユーザ入力(User Input)によってアプリケーションで実行されたプログラム画面1510がまるでユーザの端末装置で実行されたもののように、ユーザにディスプレイできる。
図16は、本発明の一実施形態によるエンコーディング処理ユニットを示す図である。
図16を参照すれば、本発明の一実施形態によるエンコーディング処理ユニットは、中央処理ユニット(Central Processing Unit;CPU)1610と、グラフィック処理ユニット(Graphics Processing Unit;GPU)1620とに区分できる。
中央処理ユニット1610は、コンピュータの最も重要な部分であって、命令を解読し、算術論理演算やデータ処理を実行する装置であることができる。したがって、コンピュータの計算速度や一度に扱うデータ量、管理し得る主記憶装置領域のサイズなどは、中央処理ユニットの性能に依存するところが大きい。このような中央処理ユニット(Central Processing Unit;CPU)を利用して変化領域をエンコーディングする場合、エンコーディングするデータを他のユニットに伝達せず、すぐエンコーディングを行うことができるため、データ伝達による費用は発生しないことがある。しかし、変化領域に相当するイメージの解像度が高い場合には、エンコーディングを行うのに時間が長くかかることができる。特に、パレットPNG(portable network graphics)スチールイメージ圧縮技法でカラー量子化過程を行うことのように、単純な計算を多く繰り返す場合には、エンコーディング時間が長くかかることができる。
グラフィック処理ユニット1620は、3Dグラフィックが本格的に導入された後、ディスプレイ画面をより現実的に作るための各種光源効果及び質感表現技法を処理するために開発された3Dグラフィック演算専用のプロセッサである。このようなグラフィック処理ユニット(Graphics Processing Unit;GPU)を利用して変化領域をエンコーディングする場合には、むしろ単純計算の繰り返しや解像度が大きいイメージをエンコーディングするのに効果的である。しかし、グラフィック処理ユニットを利用して変化領域のエンコーディングを行うためには、まず、中央処理ユニットからエンコーディングするデータを伝達され、エンコーディングが完了した後にも、エンコーディングされたデータをさらに中央処理ユニットに伝達しなければならないため、追加的な伝達費用が発生し得る。
このような中央処理ユニット1610とグラフィック処理ユニット1620は、図16のように、サーバー1600内で独立的に存在し得る。または、図16とは異なって、中央処理ユニット1610とグラフィック処理ユニット1620が一つの装置中に混合して存在するか、中央処理ユニット1610内にグラフィック処理ユニット1620が含まれるなど、多様な形態で構成される。
また、中央処理ユニット1610とグラフィック処理ユニット1620は、相互間にデータを送受信できるように連結されていてもよい。
図17は、本発明の他の実施形態によるクラウドストリーミングサービスで変化領域をキャプチャする過程を示す図である。
図17を参照すれば、本発明の一実施形態によるスチールイメージ基盤クラウドストリーミングサービスは、第1フレーム1710と第2フレーム1720を比較し、変化した変化領域1730のみをキャプチャしてエンコーティングできる。
例えば、第1フレーム1710と第2フレーム1720からB、C、D及びEの領域をメニューディスプレイと仮定したとき、第1フレーム1710では、C領域にカーソルが位置することによって、C領域が他のB、D、及びE領域と区別され得るように陰影処理され、第2フレーム1720では、C領域からD領域にカーソルが移動することによって、D領域が他のB、C及びE領域と区別され得るように陰影処理され得る。
この際、第1フレーム1710と第2フレーム1720を比較したとき、変化した領域であるCとD領域のみを変化領域1730としてキャプチャできる。また、変化領域1730の解像度と変化領域1730に相当するイメージタイプを考慮してエンコーディング処理ユニットを選択し、選択したエンコーディング処理ユニットを利用して変化領域1730をエンコーディングできる。
このように第1フレーム1710と第2フレーム1720は、確かに変化があるフレームであって、従来のクラウドストリーミングサービス時には、二つのフレームを含んでフレームレートに相当する数のフレームをすべてキャプチャしてエンコーディングを行わなければならない。しかし、スチールイメージ基盤クラウドストリーミングサービスは、変化領域1730のみをキャプチャしてスチールイメージ圧縮技法でエンコーディングするため、不要に多くのフレームとフレームの画面全体をキャプチャする従来のクラウドストリーミングサービス方法よりサービスの効率性を向上させることができる。
図18は、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法を示す動作流れ図である。
図18を参照すれば、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする(S1810)。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、以前フレームと比較して変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によって解像度や変化領域に相当するイメージのタイプが多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したとき、フレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
また、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、変化領域に相当するイメージ特性及びイメージ解像度のうち一つ以上を考慮してエンコーディング処理ユニットを選択し、エンコーディング処理ユニットを利用して一つのフレームに相当する変化領域をスチールイメージエンコーディングする(S1820)。
この際、エンコーディング処理ユニットは、中央処理ユニット(Central Processing Unit;CPU)及びグラフィック処理ユニット(Graphics Processing Unit;GPU)のうちいずれか一つのエンコーディング処理ユニットであることができる。
中央処理ユニット(Central Processing Unit;CPU)は、コンピュータの最も重要な部分であって、命令を解読し、算術論理演算やデータ処理を行う装置であることができる。したがって、コンピュータの計算速度や一度に扱うデータ量、管理し得る主記憶装置領域のサイズなどは、中央処理ユニットの性能に依存するところが大きい。このような中央処理ユニット(Central Processing Unit;CPU)を利用して変化領域をエンコーディングする場合、エンコーディングするデータを他のユニットに伝達せず、すぐエンコーディングを行うことができるため、データ伝達による費用が発生しないことがある。しかし、変化領域に相当するイメージの解像度が高い場合には、エンコーディングを行うのに時間が長くかかることができる。特に、パレットPNG(portable network graphics)スチールイメージ圧縮技法でカラー量子化過程を行うことのように、単純な計算を多く繰り返す場合には、エンコーディング時間が長くかかることができる。
グラフィック処理ユニット(Graphics Processing Unit;GPU)は、3Dグラフィックが本格的に導入された後、ディスプレイ画面をより現実的に作るための各種光源効果及び質感表現技法を処理するために開発された3Dグラフィック演算専用のプロセッサである。このようなグラフィック処理ユニット(Graphics Processing Unit;GPU)を利用して変化領域をエンコーディングする場合には、むしろ単純計算の繰り返しや解像度が大きいイメージをエンコーディングするのに効果的である。しかし、グラフィック処理ユニットを利用して変化領域のエンコーディングを行うためには、まず、中央処理ユニットからエンコーディングするデータを伝達されて、エンコーディングが完了した後にも、エンコーディングされたデータをさらに中央処理ユニットに伝達しなければならないため、追加的な伝達費用が発生し得る。
この際、イメージ特性及びイメージ解像度のうち一つ以上を考慮して中央処理ユニットとグラフィック処理ユニット各々に対するエンコーディング処理費用を予測し、中央処理ユニット及びグラフィック処理ユニットのうちエンコーディング処理費用が低いエンコーディング処理ユニットを選択して、変化領域をスチールイメージエンコーディングできる。例えば、変化領域Aに対してエンコーディングを行うために、変化領域Aに相当するイメージ特性とイメージ解像度を判断できる。その後、判断された変化領域Aのイメージ特性及びイメージ解像度を基盤としてそれぞれ中央処理ユニットとグラフィック処理ユニットにエンコーディングを実行したときに発生し得るエンコーディング処理費用を予測できる。二つのエンコーディング処理ユニットのうちエンコーディング処理費用がさらに低く予測されたエンコーディング処理ユニットを選択し、変化領域Aのエンコーディングを行うことができる。
また、エンコーディングが行われた後に発生したエンコーディング処理費用に対してエンコーディング処理費用統計を生成できる。例えば、クラウドストリーミングサービスが行われるうちに所定の単位期間を設定し、設定された単位期間ごとにエンコーディング処理費用に対する格納された情報を利用してエンコーディング処理費用統計をアップデートできる。このようなエンコーディング処理費用統計は、イメージ特性、イメージ解像度及びエンコーディング処理ユニット各々に対する詳細的な統計情報として生成され得、生成された統計情報を基盤として選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法の信頼度を上昇させることができる。
この際、変化領域に相当するイメージ解像度が既定の基準値以上である場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。
解像度は、イメージを表現するにあたって、いくつかのピクセルまたはドットを利用して示したか、その程度を示すことができる。単位としては、1インチ当たりいくつかのピクセル(pixel)よりなるかを示すppi(pixel per inch)、1インチ当たりいくつかの点(dot)よりなるかを示すdpi(dot per inch)を主に使用する。ピクセルまたはドットの数が多いほど、高解像度の精緻なイメージを表現できる。解像度が高いほど、イメージがきれいで且つ鮮明に見えるが、その分、1インチ当たり点の数が多くなって、当該イメージを処理するために多量のメモリが必要であり、結果的に、コンピュータ処理速度が遅くなる短所が存在し得る。例えば、解像度が高いイメージを中央処理ユニットでエンコーディングする場合、エンコーディング処理時間が長くなって、エンコーディング処理費用が多く発生し得る。
したがって、変化領域に相当するイメージ解像度が前もって設定された基準値と同一であるか、または基準値より高い場合には、グラフィック処理ユニットを利用してエンコーディングを行うことによって、中央処理ユニットを利用してエンコーディングするときよりエンコーディング処理費用を節約できる。
この際、変化領域に相当するイメージ解像度が既定の基準値未満である場合、変化領域に相当するイメージ特性によるスチールイメージ圧縮技法を考慮してエンコーディング処理ユニットを選択できる。変化領域に相当するイメージ解像度が既定の基準値より低い場合、エンコーディングするデータをグラフィック処理ユニットに伝達する必要なく、中央処理ユニットでエンコーディングを行うことができる。しかし、イメージ解像度が低くても、変化領域に相当するイメージ特性によって選択されるスチールイメージ圧縮技法によって単純計算が繰り返されなければならない場合が発生し得るため、変化領域のイメージタイプをもう一度考慮してエンコーディング処理ユニットを選択できる。
また、スチールイメージ圧縮技法は、変化領域に相当するイメージのサイズやイメージのタイプのようなイメージ特性によって決定され得る。
この際、スチールイメージ圧縮技法は、PNG(portable network graphics)、パレットPNG(portable network graphics)及びJPEG(joint photography experts group)のうちいずれか一つに相当できる。PNGスチールイメージ圧縮技法は、エンコーディングの場合、画質は良いが、データサイズが大きくなるため、伝送網の帯域幅が低い場合、反応速度の低下をもたらすことができる。パレットPNGスチールイメージ圧縮技法は、データのサイズを減少するが、が画質の劣化をもたらすことができ、特にデータサイズ減少のためのカラー量子化過程に起因して、単純な計算の繰り返される過程が含まれることができる。JPEGスチールイメージ圧縮技法は、伝送されるイメージタイプによってデータの圧縮効率が良いが、圧縮効率が良い分だけ、エンコーディング及びデコーディング時に負荷が大きくなることができる。
この際、イメージ解像度が既定の基準値未満であり、スチールイメージ圧縮技法がパレットPNGである場合、グラフィック処理ユニットを利用して変化領域をスチールイメージエンコーディングできる。例えば、変化領域のイメージ特性上、パレットPNGスチールイメージ圧縮技法を利用してエンコーディングを行うときには、カラー量子化のような単純計算を繰り返すため、エンコーディング処理時間が長くなることができる。したがって、このような場合には、グラフィック処理ユニットを利用してエンコーディングを行うことによって、中央処理ユニットを利用してエンコーディングするときより少ないエンコーディング処理費用でクラウドストリーミングサービスを行うことができる。
また、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S1830)。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
また、図18には図示していないが、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、クラウドストリーミングサービス過程で発生する多様な情報を格納できる。
図19は、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法を詳細に示す動作流れ図である。
図19を参照すれば、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、まず、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする(S1910)。
その後、変化領域に相当するイメージの解像度が既定の基準値以上であるか否かを判断する(S1915)。
段階S1915の判断結果、基準値以上であれば、変化領域をグラフィック処理ユニットでエンコーディングする(S1920)。
段階S1915の判断結果、基準値未満であれば、変化領域をエンコーディングするスチールイメージ圧縮技法がパレットPNGスチールイメージ圧縮技法であるか否かを判断する(S1925)。
段階S1925の判断結果、パレットPNGスチールイメージ圧縮技法であれば、変化領域をグラフィック処理ユニットでエンコーディングする(S1920)。
段階S1925の判断結果、パレットPNGスチールイメージ圧縮技法ではなければ、変化領域を中央処理ユニットでエンコーディングする(S1930)。この際、変化領域をエンコーディングするスチールイメージ圧縮技法は、PNGスチールイメージ圧縮技法及びJPEGスチールイメージ圧縮技法のうちいずれか一つに相当できる。
その後、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S1940)。
図20は、本発明のさらに他の実施形態によるクラウドストリーミングサービスシステムを示すブロック図である。
図20を参照すれば、本発明の一実施形態によるクラウドストリーミングサービスシステムは、クラウドストリーミングサーバー2010、端末装置2020−1、…、2020−N及びネットワーク2030を含む。
クラウドストリーミングサーバー2010は、端末装置2020−1、…、2020−Nからクラウドストリーミングサービス要請を受けてアプリケーションを実行し、アプリケーション実行結果に該当する実行結果画面を端末装置2020−1、…、2020−Nに提供する。
クラウドストリーミングサーバー2010は、変化したフレームに含まれた変化領域をキャプチャする。この際、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。この際、端末装置2020−1、…、2020−Nに伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。この際、端末装置2020−1、…、2020−Nから発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。
また、クラウドストリーミングサーバー2010は、変化領域に対するエンコーディングプロセスを複数個の単位プロセスに分離し、単位プロセスのうち少なくとも一つ以上は、グラフィック処理ユニット(Graphics Processing Unit;GPU)に割り当て、グラフィック処理ユニットに割り当てられない残りの単位プロセスは、中央処理ユニット(Central Processing Unit;CPU)に割り当てて、エンコーディングプロセスを行い、変化領域をスチールイメージエンコーディングする。この際、単位プロセスは、変化領域に相当するイメージ分析、スチールイメージ圧縮技法の決定、スチールイメージ圧縮及び圧縮データ集約のうちいずれか一つに相当できる。この際、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果を基盤としてグラフィック処理ユニットにスチールイメージ圧縮に相当する単位プロセスを割り当てることができる。この際、スチールイメージ圧縮は、変化領域に相当するイメージに対してカラーヒストグラム構成、パレット生成、パレット基盤の原本カラー量子化及びパレット基盤エンコーディング中の一つ以上の過程を含む。この際、グラフィック処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を中央処理ユニットに伝達できる。この際、中央処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を利用して圧縮データ集約に相当する単位プロセスを行うことができる。この際、中央処理ユニットは、スチールイメージ圧縮に相当する単位プロセスがグラフィック処理ユニットに割り当てられた場合、変化領域に相当するイメージデータをグラフィック処理ユニットに伝達できる。
また、クラウドストリーミングサーバー2010は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。
端末装置2020−1、…、2020−Nは、クラウドストリーミングサーバー2010からクラウドストリーミングサービスに相当するアプリケーション実行結果画面を受信し、ユーザに提供する。
端末装置2020−1、…、2020−Nは、それぞれ通信網に連結され、クラウドコンピューティングシステムを基盤としてアプリケーションを実行できる装置であって、移動通信端末に限定されるものではなく、すべての情報通信機器、マルチメディア端末、有線端末、固定型端末及びIP(Internet Protocol)端末などの多様な端末であることができる。また、端末装置2020−1、…、2020−Nは、それぞれ携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net Book)、個人携帯用情報端末(Personal Digital Assistant;PDA)、スマートテレビ及び情報通信機器などのような多様な移動通信仕様を有するモバイル(Mobile)端末であることができる。
ネットワーク2030は、クラウドストリーミングサーバー2010及び端末装置2020−1、…、2020−Nの間にデータを伝達する通路を提供するもので、従来に利用されるネットワーク及び今後開発可能なネットワークをすべて包括する概念である。例えば、ネットワーク2030は、限定された地域内で各種情報装置の通信を提供する有線・無線近距離通信網、移動体相互の間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間通信を提供する衛星通信網であるか、有線・無線通信網のうちいずれか一つであるか、二つ以上の結合よりなることができる。なお、ネットワーク2030の伝送方式標準は、従来の伝送方式標準に限定されるものではなく、今後開発されるすべての伝送方式標準を含む。また、図20で、クラウドストリーミングサーバー2010と端末装置2020−1、…、2020−Nの間に使用されるネットワークは、端末装置2020−1、…、2020−N相互間に使用されるネットワークと異なっていてもよく、同一であってもよい。
図21は、図20に示されたクラウドストリーミングサーバーの一例を示すブロック図である。
図21を参照すれば、図20に示されたクラウドストリーミングサーバー2010は、キャプチャ部2110、エンコーディング部2120、センディング部2130及び格納部2140を含む。
クラウドストリーミングサービス時に、変化領域のみを検出し、クラウドストリーミングサービスを行うイメージクラウドストリーミングにおいて、イメージエンコーディングを行うとき、中央処理ユニット(Central Processing Unit;CPU)を利用するか、グラフィック処理ユニット(Graphics Processing Unit;GPU)を利用してエンコーディングを行うことができる。この際、最適のイメージクラウドストリーミングサービスを提供するためには、細分化されたエンコーディングプロセスに適切に中央処理ユニットとグラフィック処理ユニットを組み合わせて使用しなければならないが、従来のクラウドストリーミングサービスの提供時には、同一の一つのユニットだけでエンコーディングが処理されている実情である。したがって、本発明では、クラウドストリーミングサービスのためにエンコーディングプロセスを単位プロセスに細分化し、単位プロセス別にそれぞれ中央処理ユニットとグラフィック処理ユニットがプロセッシングすることによって、さらに効率的にイメージクラウドストリーミングサービスを提供できる構成を提案する。
キャプチャ部2110は、変化したフレームに含まれた変化領域をキャプチャする。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によって解像度や変化領域に相当するイメージのタイプが多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したとき、フレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
エンコーディング部2120は、変化領域に対するエンコーディングプロセスを複数個の単位プロセスに分離し、単位プロセスのうち少なくとも一つ以上は、グラフィック処理ユニット(Graphics Processing Unit;GPU)に割り当て、グラフィック処理ユニットに割り当てられない残りの単位プロセスは、中央処理ユニット(Central Processing Unit;CPU)に割り当てて、エンコーディングプロセスを行って変化領域をスチールイメージエンコーディングする。
クラウドストリーミングサーバーで変化領域に相当するイメージをエンコーディングするとき、中央処理ユニットのみを使用してサービスを行う従来の方式では、クラウドストリーミングサーバーの全体可用資源を使用しないため、イメージエンコーディングの時間が遅延されるにつれて、サービス品質が低下することがある。したがって、本発明では、エンコーディングプロセスを複数の単位プロセスに細分化し、それぞれの単位プロセスを中央処理装置とグラフィック処理装置に適切に割り当ててエンコーディングを行うことによって、従来の方式で発生し得る問題点を解決できる構成を提示できる。
この際、単位プロセスは、変化領域に相当するイメージ分析、スチールイメージ圧縮技法の決定、スチールイメージ圧縮及び圧縮データ集約のうちいずれか一つに相当できる。イメージ分析は、変化領域に相当するイメージがどんな特性を有しているかを分析する過程であることができる。例えば、イメージのサイズや解像度及びタイプなどのイメージ特性を分析し、効率的なエンコーディングを行うためのデータとして使用できる。
また、スチールイメージ圧縮技法の決定に相当する単位プロセスを行うことによって、変化領域の圧縮を行うとき、クラウドストリーミングサーバーの資源をさらに効率的に使用できる。その後、変化領域に相当する少なくとも一つ以上のイメージをスチールイメージ圧縮した結果を利用して最終的に圧縮データ集約に相当するプロセスを行うことができる。
この際、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果を基盤としてグラフィック処理ユニットにスチールイメージ圧縮に相当する単位プロセスを割り当てることができる。例えば、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果変化領域をエンコーディングするスチールイメージ圧縮技法でパレットPNG(portable network graphics)スチールイメージ圧縮技法が決定され得る。この際、パレットPNGスチールイメージ圧縮技法を利用してスチールイメージエンコーディングを行う過程には、単純な計算の繰り返しや並列で処理しやすい計算過程が含まれることができる。したがって、このような場合には、単位プロセスのうちスチールイメージ圧縮を行う単位プロセスをグラフィック処理ユニットに割り当てることによって、エンコーディングに使用される時間を節約し、クラウドストリーミングサーバーの資源を効率的に使用できる。
また、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果に相関なく、システム設定によって、グラフィック処理ユニットを利用してスチールイメージ圧縮に相当する単位プロセスを行うこともできる。クラウドストリーミングシステムが中央処理ユニットだけで構成された場合には、中央処理ユニットを利用してすべてのプロセスを行わなければならないため、ユーザの端末にクラウドストリーミングサービスを提供するとき、レイテンシ遅延が発生する可能性が高いことがある。したがって、中央処理ユニットを一つまたは複数個具備し、スチールイメージ圧縮に相当する単位プロセスをグラフィック処理ユニットで行い、プロセッシング結果を中央処理ユニットに再伝達することによって、クラウドストリーミングシステムの管理費用節減及びレイテンシ遅延減少の効果を達成できる。
この際、スチールイメージ圧縮は、変化領域に相当するイメージに対してカラーヒストグラム構成、パレット生成、パレット基盤の原本カラー量子化及びパレット基盤エンコーディングのうち一つ以上の過程を含む。カラーヒストグラム構成は、変化領域に相当するイメージに対するパレットを生成するために行われることができる。パレット生成は、カラーヒストグラムを利用して原本イメージ、すなわち変化領域に相当するイメージ対比最小損失が生じるパレットを生成する過程であることができる。このように生成したパレットを基盤として変化領域に相当するイメージのカラーを、パレットに相当するカラーに置換し、原本カラー量子化を行い、パレット基盤エンコーディングを行うことができる。
この際、グラフィック処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を中央処理ユニットに伝達できる。例えば、複数個の変化したフレームに含まれた変化領域に対してグラフィック処理ユニットでスチールイメージ圧縮に相当する単位プロセスを行い、それぞれのプロセッシング結果を圧縮データ集約に相当する単位プロセスを行う中央処理ユニットに伝達できる。このようにエンコーディングプロセスを複数個に細分化して、中央処理ユニット及びグラフィック処理ユニットのうちいずれか一つで行うことによって、プロセッシング結果を伝達する資源消耗費用が追加的に発生し得るが、エンコーディングプロセスを細分化して処理することによって得ることができる資源効率利得が追加に発生し得る資源消耗費用より大きいため、さらに効果的なエンコーディング方法であることができる。
この際、中央処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を利用して圧縮データ集約に相当する単位プロセスを行うことができる。例えば、グラフィック処理ユニットを通じて生成されたスチールイメージ圧縮に相当するプロセッシング結果が複数の場合には、それぞれのプロセッシング結果、すなわち圧縮データを集約できる。エンコーディングプロセスを行い、ユーザの端末装置にスチールイメージ基盤のクラウドストリーミングサービスを提供することが本発明の目的であるため、ユーザの端末装置にサービスを提供できるように複数の圧縮データを集約し、エンコーディングプロセスを行うことができる。
この際、中央処理ユニットは、スチールイメージ圧縮に相当する単位プロセスがグラフィック処理ユニットに割り当てられた場合、変化領域に相当するイメージデータをグラフィック処理ユニットに伝達できる。イメージ分析及びスチールイメージ圧縮技法の決定に相当する単位プロセスのプロセッシング結果によってスチールイメージ圧縮に相当する単位プロセスがグラフィック処理ユニットに割り当てられるか否かが決定され得る。例えば、イメージ分析及びスチールイメージ圧縮技法の決定に相当する単位プロセスのプロセッシング結果変化領域に相当するイメージをパレットPNGスチールイメージ圧縮技法で圧縮する場合には、単純計算を繰り返し、並列処理しやすい計算が存在するので、グラフィック処理ユニットでスチールイメージ圧縮を行うことが、中央処理ユニットでスチールイメージ圧縮を行うことよりさらに効率的なことがある。したがって、前記のように、グラフィック処理ユニットでスチールイメージ圧縮に相当する単位プロセスが割り当てられた場合には、圧縮されるイメージデータ、すなわち変化領域に相当するイメージデータをグラフィック処理ユニットに伝達できる。
センディング部2130は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
格納部2140は、前述したように、本発明の実施形態によるクラウドストリーミングサービス過程で発生する多様な情報を格納する。
実施形態によって、格納部2140は、クラウドストリーミングサーバー2010と独立的に構成され、クラウドストリーミングサービスのための機能を支援できる。この際、格納部2140は、別途の大容量ストレージとして動作でき、動作実行のための制御機能を含む。
また、前述したように構成されるクラウドストリーミングサーバー2010は、一つ以上のサーバーで具現され得る。
なお、クラウドストリーミングサーバー2010は、メモリが搭載され、当該装置内で情報を格納できる。一具現例の場合、メモリは、コンピュータで読み取り可能な媒体である。一具現例で、メモリは、揮発性メモリユニットであることができ、他の具現例の場合、メモリは、不揮発性メモリユニットであってもよい。一具現例の場合、格納装置は、コンピュータで読み取り可能な媒体である。多様な互いに異なる具現例で、格納装置は、例えばハードディスク装置、光学ディスク装置、あるいはどんな他の大容量格納装置を含むこともできる。
図22は、スチールイメージ基盤クラウドストリーミングシステムのさらに他の例を示す図である。
図22を参照すれば、サーバー2210では、ユーザの端末装置から発生するユーザ入力(User Input)に相当するプログラム画面2210を実行させて、キャプチャ(Screen Capture)を行うことができる。この際、サーバー2200は、クラウドストリーミングサーバーとウェブアプリケーションサーバーを総称するサーバーであることができる。また、プログラム画面2210を実行させてキャプチャ(Screen Capture)を行う過程は、図21に示されたキャプチャ部2110の動作流れと相当できる。
サーバー2200は、キャプチャ(Screen Capture)されたプログラム画面2210をスチールイメージ圧縮技法を用いてエンコーディング(Image Encoding)2220できる。この際、エンコーディング(Image Encoding)2220を行う過程は、図21に示されたエンコーディング部2120の動作流れと相当できる。
この際、変化したフレームを以前フレームと比較して変化した領域のみをキャプチャできる。また、変化領域に対するエンコーディングプロセスを複数個の単位プロセスに分離し、単位プロセスのうち少なくとも一つ以上は、グラフィック処理ユニット(Graphics Processing Unit;GPU)に割り当て、グラフィック処理ユニットに割り当てられない残りの単位プロセスは、中央処理ユニット(Central Processing Unit;CPU)に割り当てて、エンコーディングプロセスを行い、変化領域をスチールイメージエンコーディングできる。
その後、サーバー2200は、スチールイメージエンコーディングされた変化した領域をユーザの端末装置にストリーミング(Streaming)(2230)し、スチールイメージ基盤のクラウドストリーミングサービスを提供できる。この際、ストリーミング(Streaming)(2230)を行う過程は、図21に示されたセンディング部2130の動作流れと相当できる。
その後、ユーザの端末装置では、受信したデータをレンダリング(Image Rendering)(2240)することによって、ユーザ入力(User Input)によってアプリケーションで実行されたプログラム画面2210がまるでユーザの端末装置で実行されたもののように、ユーザにディスプレイできる。
図23は、本発明の他の実施形態によるエンコーディング処理ユニットを示す図である。
図23を参照すれば、本発明の他の実施形態によるエンコーディング処理ユニットは、中央処理ユニット(Central Processing Unit;CPU)2310と、グラフィック処理ユニット(Graphics Processing Unit;GPU)2320とに区分できる。
中央処理ユニット2310は、コンピュータの最も重要な部分であって、命令を解読し、算術論理演算やデータ処理を実行する装置であることができる。したがって、コンピュータの計算速度や一度に扱うデータ量、管理し得る主記憶装置領域のサイズなどは、中央処理ユニットの性能に依存するところが大きい。このような中央処理ユニット(Central Processing Unit;CPU)を利用して変化領域をエンコーディングする場合、エンコーディングするデータを他のユニットに伝達せず、すぐエンコーディングを行うことができるため、データ伝達による費用は発生しないこともある。しかし、変化領域に相当するイメージをエンコーディングするための過程のうち単純計算の繰り返し及び並列処理しやすい計算のうち一つ以上が含まれた場合には、中央処理ユニット2310を利用してエンコーディングを行うのに時間が長くかかることができる。特に、パレットPNG(portable network graphics)スチールイメージ圧縮技法を利用してエンコーディングを行う場合、それぞれのフレームイメージに対してカラーヒストグラムを構成し、カラーヒストグラムを基盤としてパレットを生成し、カラー量子化を行うため、エンコーディング時間が非効率的に長くなる。
グラフィック処理ユニット2320は、3Dグラフィックが本格的に導入された後、ディスプレイ画面をより現実的に作るための各種光源効果及び質感表現技法を処理するために開発された3Dグラフィック演算専用のプロセッサである。このようなグラフィック処理ユニット(Graphics Processing Unit;GPU)を利用して変化領域をエンコーディングする場合には、単純計算の繰り返しや並列処理しやすい計算過程が含まれていても、グラフィック処理装置の処理能力を通じて効果的にエンコーディングを行うことができる。しかし、グラフィック処理ユニットを利用して変化領域のエンコーディングを行うためには、まず、中央処理ユニットからエンコーディングするデータを伝達され、エンコーディングが完了した後にも、エンコーディングされたデータをさらに中央処理ユニットに伝達しなければならないため、追加的な伝達費用が発生し得る。
このような中央処理ユニット2310とグラフィック処理ユニット2320は、図23のように、サーバー2300内で独立的に存在し得る。または、図23とは異なって、中央処理ユニット2310とグラフィック処理ユニット2320が一つの装置中に混合して存在するか、中央処理ユニット2310内にグラフィック処理ユニット2320が含まれるなど多様な形態で構成される。
また、中央処理ユニット2310とグラフィック処理ユニット2320は、相互間にデータを送受信できるように連結されていてもよい。
図24は、本発明のさらに他の実施形態によるクラウドストリーミングサービスで変化領域をキャプチャする過程を示す図である。
図24を参照すれば、本発明のさらに他の実施形態によるスチールイメージ基盤クラウドストリーミングサービスは、第1フレーム2410と第2フレーム2420を比較し、変化した変化領域2430のみをキャプチャしてエンコーディングできる。
例えば、第1フレーム2410と第2フレーム2420でB、C、D及びEの領域をメニューディスプレイと仮定したとき、第1フレーム2410では、C領域にカーソルが位置することによって、C領域が他のB、D、及びE領域と区別され得るように陰影処理され、第2フレーム2420では、C領域からD領域にカーソルが移動することによって、D領域が他のB、C及びE領域と区別され得るように陰影処理され得る。
この際、第1フレーム2410と第2フレーム2420を比較したとき、変化した領域であるCとD領域のみを変化領域2430としてキャプチャできる。また、変化領域2430に対するエンコーディングプロセスを複数個の単位プロセスに分離し、単位プロセスのうち少なくとも一つ以上は、グラフィック処理ユニット(Graphics Processing Unit;GPU)に割り当て、グラフィック処理ユニットに割り当てられない残りの単位プロセスは、中央処理ユニット(Central Processing Unit;CPU)に割り当てて、エンコーディングプロセスを行い、変化領域2430をスチールイメージエンコーディングできる。
このように第1フレーム2410と第2フレーム2420は、確かに変化があるフレームであって、従来のクラウドストリーミングサービス時には、二つのフレームを含んでフレームレートに相当する数のフレームをすべてキャプチャしてエンコーディングを行わなければならない。しかし、スチールイメージ基盤クラウドストリーミングサービスは、変化領域2430のみをキャプチャしてスチールイメージ圧縮技法でエンコーディングするため、不要に多くのフレームとフレームの画面全体をキャプチャする従来のクラウドストリーミングサービス方法よりサービスの効率性を向上させることができる。
図25は、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法を示す動作流れ図である。
図25を参照すれば、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法は、変化したフレームに含まれた変化領域をキャプチャする(S2510)。ビデオコーデック基盤のクラウドストリーミング技法は、アプリケーションが動作する画面に相当するすべてのフレームをキャプチャしてエンコーディングを行うことができる。しかし、アプリケーションが動作する画面上でフレーム間変化が大きくない場合には、変化したフレームの変化領域のみをキャプチャし、スチールイメージエンコーディングを行い、ユーザの端末装置にディスプレイするとき、変化領域を除いた部分は、同一に示し、変化領域のみに対して変化を与える方式でディスプレイできる。
この際、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域を変化領域としてキャプチャできる。例えば、変化したフレームに相当する画面領域のうち変化したフレームの以前フレームに相当する画面領域と比較して変化した領域がA領域であれば、変化したフレームに相当する画面領域のうちA領域のみを変化領域としてキャプチャできる。このような変化領域は、ユーザの端末装置で入力される入力信号によって解像度や変化領域に相当するイメージのタイプが多様である。
この際、ユーザの端末装置に伝送されるフレーム全体区間のうちフレーム変化が少ない区間を検出し、フレーム変化が少ない区間で変化領域をキャプチャできる。
この際、ユーザの端末装置から発生するアプリケーションのイベント類型を感知し、フレーム変化が少ない区間を検出できる。例えば、ユーザの端末装置から発生する入力信号によってアプリケーションのイベント類型が決定され得る。入力信号によってメニュー、オプション、案内窓のように、アプリケーションを実行したときにフレームの変化が少ない静的なイベント、または動画再生及びゲームプレイのように、フレームが頻繁に変わる動的なイベントが発生し得る。したがって、ユーザが端末装置を介して発生させる入力信号でイベント類型を感知し、イベント類型が静的なイベントであれば、当該イベントに相当するフレーム全体区間のうちフレーム変化が少ない区間を検出できる。
また、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法は、変化領域に対するエンコーディングプロセスを複数個の単位プロセスに分離し、単位プロセスのうち少なくとも一つ以上は、グラフィック処理ユニット(Graphics Processing Unit;GPU)に割り当て、グラフィック処理ユニットに割り当てられない残りの単位プロセスは、中央処理ユニット(Central Processing Unit;CPU)に割り当てて、エンコーディングプロセスを行い、変化領域をスチールイメージエンコーディングする(S2520)。
クラウドストリーミングサーバーで変化領域に相当するイメージをエンコーディングするとき、中央処理ユニットのみを使用してサービスを行う従来の方式では、クラウドストリーミングサーバーの全体可用資源を使用しないため、イメージエンコーディングの時間遅延によってサービス品質が低下することがある。したがって、本発明では、エンコーディングプロセスを複数の単位プロセスに細分化し、それぞれの単位プロセスを中央処理装置とグラフィック処理装置に適切に割り当てて、エンコーディングを行うことによって、従来の方式で発生することができた問題点を解決できる方案を提示できる。
この際、単位プロセスは、変化領域に相当するイメージ分析、スチールイメージ圧縮技法の決定、スチールイメージ圧縮及び圧縮データ集約のうちいずれか一つに相当できる。イメージ分析は、変化領域に相当するイメージがどんな特性を有しているかを分析する過程であることができる。例えば、イメージのサイズや解像度及びタイプなどのイメージ特性を分析し、効率的なエンコーディングを行うためのデータとして使用できる。
また、スチールイメージ圧縮技法の決定に相当する単位プロセスを行うことによって、変化領域の圧縮を行うとき、クラウドストリーミングサーバーの資源をさらに効率的に使用できる。その後、変化領域に相当する少なくとも一つ以上のイメージをスチールイメージ圧縮した結果を利用して最終的に圧縮データ集約に相当するプロセスを行うことができる。
この際、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果を基盤としてグラフィック処理ユニットにスチールイメージ圧縮に相当する単位プロセスを割り当てることができる。例えば、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果変化領域をエンコーディングするスチールイメージ圧縮技法でパレットPNG(portable network graphics)スチールイメージ圧縮技法が決定され得る。この際、パレットPNGスチールイメージ圧縮技法を利用してスチールイメージエンコーディングを行う過程には、単純な計算の繰り返しや並列で処理しやすい計算過程が含まれることができる。したがって、このような場合には、単位プロセスのうちスチールイメージ圧縮を行う単位プロセスをグラフィック処理ユニットに割り当てることによって、エンコーディングに使用される時間を節約し、クラウドストリーミングサーバーの資源を効率的に使用できる。
また、イメージ分析及びスチールイメージ圧縮技法の決定に相当するプロセッシング結果に相関なく、システム設定によって、グラフィック処理ユニットを利用してスチールイメージ圧縮に相当する単位プロセスを行うこともできる。クラウドストリーミングシステムが中央処理ユニットだけで構成された場合には、中央処理ユニットを利用してすべてのプロセスを行わなければならないため、ユーザの端末にクラウドストリーミングサービスを提供するとき、レイテンシ遅延が発生する可能性が高い。したがって、中央処理ユニットを一つまたは複数個具備してスチールイメージ圧縮に相当する単位プロセスをグラフィック処理ユニットで行い、プロセッシング結果を中央処理ユニットに再伝達することによって、クラウドストリーミングシステムの管理費用節減及びレイテンシ遅延減少の効果を達成できる。
この際、スチールイメージ圧縮は、変化領域に相当するイメージに対してカラーヒストグラム構成、パレット生成、パレット基盤の原本カラー量子化及びパレット基盤エンコーディングのうち一つ以上の過程を含む。カラーヒストグラム構成は、変化領域に相当するイメージに対するパレットを生成するために行われることができる。パレット生成は、カラーヒストグラムを利用して原本イメージ、すなわち変化領域に相当するイメージ対比最小損失が生じるパレットを生成する過程であることができる。このように生成したパレットを基盤として変化領域に相当するイメージのカラーを、パレットに相当するカラーに置換して原本カラー量子化を行い、パレット基盤エンコーディングを行うことができる。
この際、グラフィック処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を中央処理ユニットに伝達できる。例えば、複数個の変化したフレームに含まれた変化領域に対してグラフィック処理ユニットでスチールイメージ圧縮に相当する単位プロセスを行い、それぞれのプロセッシング結果を、圧縮データ集約に相当する単位プロセスを行う中央処理ユニットに伝達できる。このようにエンコーディングプロセスを複数個に細分化して中央処理ユニット及びグラフィック処理ユニットのうちいずれか一つで行うことによって、プロセッシング結果を伝達する資源消耗費用が追加に発生し得るが、エンコーディングプロセスを細分化して処理することによって得ることができる資源効率利得が追加に発生し得る資源消耗費用より大きいため、さらに効果的なエンコーディング方法であることができる。
この際、中央処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を利用して圧縮データ集約に相当する単位プロセスを行うことができる。例えば、グラフィック処理ユニットを通じて生成されたスチールイメージ圧縮に相当するプロセッシング結果が複数の場合には、それぞれのプロセッシング結果、すなわち圧縮データを集約できる。エンコーディングプロセスを行い、ユーザの端末装置にスチールイメージ基盤のクラウドストリーミングサービスを提供することが本発明の目的であるため、ユーザの端末装置にサービスを提供できるように、複数の圧縮データを集約し、エンコーディングプロセスを行うことができる。
この際、中央処理ユニットは、スチールイメージ圧縮に相当する単位プロセスがグラフィック処理ユニットに割り当てられた場合、変化領域に相当するイメージデータをグラフィック処理ユニットに伝達できる。イメージ分析及びスチールイメージ圧縮技法の決定に相当する単位プロセスのプロセッシング結果によってスチールイメージ圧縮に相当する単位プロセスがグラフィック処理ユニットに割り当てされるか否かが決定され得る。例えば、イメージ分析及びスチールイメージ圧縮技法の決定に相当する単位プロセスのプロセッシング結果変化領域に相当するイメージをパレットPNGスチールイメージ圧縮技法で圧縮する場合には、単純計算を繰り返し、並列処理しやすい計算が存在するので、グラフィック処理ユニットでスチールイメージ圧縮を行うことが、中央処理ユニットでスチールイメージ圧縮を行うことよりさらに効率的なことがある。したがって、前記のように、グラフィック処理ユニットでスチールイメージ圧縮に相当する単位プロセスが割り当てられた場合には、圧縮されるイメージデータ、すなわち変化領域に相当するイメージデータをグラフィック処理ユニットに伝達できる。
また、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法は、スチールイメージエンコーディングされた変化領域をユーザに伝送し、スチールイメージ基盤のクラウドストリーミングサービスを行う(S2530)。エンコーディングを完了することによって圧縮された変化領域をユーザの端末装置に伝送することによって、ユーザの端末装置でアプリケーションが実行される感じを受けることができるように、クラウドストリーミングサービスを行うことができる。
また、図25には図示していないが、本発明の一実施形態による選択的エンコーディング処理ユニットを利用したクラウドストリーミングサービス方法は、クラウドストリーミングサービス過程で発生する多様な情報を格納できる。
図26は、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法を詳細に示す動作流れ図である。
図26を参照すれば、本発明の一実施形態によるエンコーディング処理ユニットの作業分離を用いたクラウドストリーミングサービス方法は、まず、以前フレームと比較して変化したフレームに含まれた変化領域をキャプチャする(S2610)。
その後、変化領域に対するエンコーディングプロセスを複数個の単位プロセスに分離する(S2620)。
その後、中央処理ユニットを利用して変化領域に相当するイメージを分析する(S2630)。
その後、中央処理ユニットを利用して変化領域に相当するスチールイメージ圧縮技法を決定する(S2640)。
その後、所定のスチールイメージ圧縮技法によってグラフィック処理ユニットにスチールイメージ圧縮に相当する単位プロセスを割り当てる(S2650)。
その後、中央処理ユニットを利用して変化領域に相当するイメージデータをグラフィック処理ユニットに伝達する(S2660)。
その後、グラフィック処理ユニットを利用してスチールイメージ圧縮を行い、スチールイメージ圧縮に相当するプロセッシング結果を中央処理ユニットに伝達する(S2670)。
その後、中央処理ユニットは、スチールイメージ圧縮に相当するプロセッシング結果を利用して圧縮データ集約に相当する単位プロセスを行う(S2680)。
その後、スチールイメージエンコーディングされた変化領域をユーザに伝達する(S2690)。
コンピュータプログラムコマンドとデータを格納するに適したコンピュータで読み取り可能な媒体は、例えば、記録媒体は、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプチカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−Optical Media)、及びロム(ROM、Read Only Memory)、ラム(RAM、Random Access Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)のような半導体メモリを含む。プロセッサとメモリは、特殊目的の論理回路によって補充されるか、それに統合され得る。プログラム命令の例には、コンパイラーによって作われるもののような機械語コードだけでなく、インタプリターなどを使用してコンピュータによって実行され得る高級言語コードを含む。このようなハードウェア装置は、本発明の動作を行うために一つ以上のソフトウェアモジュールとして作動するように構成され、その逆も同様である。
本明細書は、多数の特定の具現物の詳細事項を含むが、これらは、いかなる発明や請求可能なものの範囲に対しても制限的なものとして理解されてはならず、むしろ特定の発明の特定の実施形態に特有な特徴に対する説明として理解しなければならない。個別的な実施形態の文脈で本明細書に記述された特定の特徴は、単一実施形態で組み合わせて具現されることもできる。反対に、単一実施形態の文脈で記述した多様な特徴も個別的にあるいはいかなる適切な下位組合でも複数の実施形態で具現可能である。さらに、特徴が特定の組合で動作し、初期にそのように請求されたように描写され得るが、請求された組合からの一つ以上の特徴は、一部の場合にその組合から排除され得、その請求された組合は、下位組合や下位組合の変形物に変更され得る。
同様に、特定の手順で図面で動作を描いているが、これは、好適な結果を得るために図示されたその特定の手順や順次な順にそのような動作を実行しなければならないか、すべての図示された動作が実行されなければならないものと理解されてはならない。特定の場合、マルチタスキングと並列プロセッシングが有利であることができる。また、前述した実施形態の多様なシステムコンポネントの分離は、そのような分離をすべての実施形態で要求するものと理解されてはならず、説明したプログラムコンポネントとシステムは、一般的に単一のソフトウェア製品に一緒に統合されるか、多重ソフトウェア製品にパッケージングされ得るという点を理解しなければならない。
なお、本明細書と図面に開示された本発明の実施形態は、理解を助けるために特定の例を提示したものに過ぎず、本発明の範囲を限定しようとするものではない。ここに開示された実施形態以外にも、本発明の技術的思想に基づく他の変形例が実施可能であることは、本発明の属する技術分野における通常の知識を有する者に自明である。