(58)【調査した分野】(Int.Cl.,DB名)
前記クライアントコンピューティングデバイスのデバイス識別子を用いて、データストアからそれぞれの予め定義された透かしパラメータ情報を取得することをさらに含む、請求項1に記載の方法。
前記可視透かしの1つのインスタンスが存在する前記少なくとも1つの全画面サイズ画像の領域を特定することによって前記透かしビットマップが生成される、請求項4に記載の方法。
前記透かしビットマップは、(a)前記可視透かしの各インスタンスが存在する前記少なくとも1つの全画面サイズ画像の前記特定された領域を示し、且つ(b)前記特定された領域のどの画素が前記可視透かしを有するのかを示す、請求項6に記載の方法。
前記サーバが前記クライアントコンピューティングデバイスから少なくともデバイス識別子を受信したことに応答して、前記サーバの前記グラフィックスエンコーダを初期化することをさらに含む、請求項1に記載の方法。
前記プログラミング命令は、前記クライアントコンピューティングデバイスのデバイス識別子を用いて、データストアからそれぞれの予め定義された透かしパラメータ情報を取得するための命令をさらに有する、請求項11に記載のシステム。
前記可視透かしの1つのインスタンスが存在する前記少なくとも1つの全画面サイズ画像の領域を特定することによって前記透かしビットマップが生成される、請求項13に記載のシステム。
前記領域の特定は、さらに、前記特定されたブロックの隣接するブロックを統合して、より大きなブロックを生成することによってなされる、請求項16に記載のシステム。
前記透かしビットマップは、(a)前記可視透かしの各インスタンスが存在する前記少なくとも1つの全画面サイズ画像の前記特定された領域を示し、且つ(b)前記特定された領域のどの画素が前記可視透かしを有するのかを示す、請求項15に記載のシステム。
【発明を実施するための形態】
【0021】
本明細書で一般的に説明され、添付図面に示された実施形態の構成要素は、多種多様な異なる構成で配置及び設計され得ることが容易に理解されよう。したがって、図示されている様々な実施形態の以下のより詳細な説明は、本開示の範囲を限定するものではなく、様々な実施形態の単なる代表例である。実施形態の様々な態様が図示されているが、特に明示しない限り、図面は必ずしも縮尺通りに描かれていない。
【0022】
本解決手段は、その精神又は本質的な特徴から逸脱することなく、他の特定の形態で具現化することができる。説明された実施形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。したがって、本解決手段の範囲は、添付の特許請求の範囲によって示されるのであって、この詳細な説明には、なんら拘束されない。特許請求の範囲の均等物の意味及び範囲内における変更はすべて本解決手段の範囲内に包含されるべきである。
【0023】
本明細書全体を通して、特徴、利点、又は類似の用語への言及は、本解決手段で実現され得る特徴及び利点のすべてが本解決手段の任意の単一の実施形態であるべきであることを意味しない。むしろ、特徴及び利点に言及する用語は、実施形態に関連して説明される特定の特徴、利点、又は特性が本解決手段の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体にわたる特徴及び利点、並びに類似の言語の議論は、必ずしもそうではないが、同じ実施形態を指す場合がある。
【0024】
さらに、本解決手段に記載された特徴、利点、及び特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。当業者は、本明細書の説明に照らして、特定の実施形態の1つ以上の特定の特徴又は利点なしで本解決手段が実施可能であることを認識するであろう。他の例では、本解決手段のすべての実施形態で示されていない特定の実施形態において、追加の特徴及び利点が認識される場合がある。
【0025】
本明細書全体を通して、「一実施形態」(one embodiment)、「実施形態」(an embodiment)、又は同様の文言への言及は、示された実施形態に関連して説明された特定の特徴、構造、又は特性が本解決手段の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「一実施形態では」(in one embodiment)、「実施形態では」(in an embodiment)という文言、及び同様の文言は、必ずしもそうではないが、すべて同じ実施形態を指す場合がある。
【0026】
本文書で用いられている単数形「a」、「an」、及び「the」は、文脈上特に明記されていない限り、複数形の言及を含む。別段に定義されていない限り、本明細書で用いられているすべての技術用語及び科学用語は、当業者によって一般に理解されるのと同じ意味を有する。本文書で用いられている「備える/有する」(comprising)という用語は「含むが、それに限定されない」(including, but not limited to)ことを意味する。
【0027】
本解決手段は、リモートセッションにおける可視透かしを提供するシステム及び方法に関する。設置のし易さと、あらゆるエンドポイントソフトウェアと互換性があることと、サーバオンリーの解決手段はより安全であるという一般的な定説とにより、本解決手段は、サーバオンリーの解決手段として実施される(すなわち、エンドポイントの更新を要しない。)。
【0028】
初期のサーバオンリーのプロトタイプは、ユーザのセッションにおける他のアプリケーションと並行して動作するユーザモードアプリケーションを含んでいた。ユーザモードアプリケーションは、所望の透かしテキストを含む全画面表示の部分的な透明ウィンドウを生成することによって、サーバのフレームバッファに透かしを適用していた。Desktop Window Manager(DWM)は、全画面表示の部分的な透明ウィンドウ及び他のデスクトップウィンドウでアルファベースの合成を行い、所望の効果を生んでいた。そして、結果として得られたグラフィックスは、グラフィックスエンコーダ(GE)によって符号化され、エンドポイントに送信され、表示されていた。
【0029】
初期のサーバオンリーのプロトタイプは以下の難点を有している:(1)ユーザモードの透かし処理を終えることができると、結果として、当該透かしが除去される;(2)結果として得られる、GEにかけられたグラフィックス更新(入力画像)は、キャッシング又は圧縮に役立ついかなる性質をも示す可能性が極めて低く、これにより、必要とする全体のネットワーク回線容量が増加してしまう。難点(1)は、透かし処理に特別な許可を適用することで解決され得る。実験データは、Office生産性アプリケーションからなる50分の自動作業負荷に対し、同一の作業負荷で透かしが存在しない場合に比べて、15倍多い回線容量が使用されたことを示している。さらに、透かしが存在する符号化されたグラフィックスのあらゆるキャッシュ可能特性の欠如と複雑性により、7倍多いサーバCPUも必要とされていた。
【0030】
本解決手段は、初期のサーバオンリーのプロトタイプのサーバCPUコスト及び上述のネットワーク回線容量に比べてわずかなコスト及び回線容量で、サーバオンリーの透かしを提供する手法を提示する。本解決手段は、以下の新しい特徴を有する:(1)設置のし易さ(純粋なサーバオンリーの解決手段);(2)新たなプロトコルコマンドの導入が不要(あらゆる既存の受信機で動作する。);(3)初期のサーバオンリーのプロトタイプ(15倍増加)及び従来の他のサーバオンリーの解決手段に比べて低い回線容量の効果(2〜3倍増加);(4)初期のサーバオンリーのプロトタイプ(7倍)及び従来の他のサーバオンリーの解決手段に比べて低いCPUの効果(1.5〜2倍)。
【0031】
専用の透かし処理によって透かしを提供し、Composition Manager(CM)に依拠して結果としての画像を与えるよりも、GEを修正して、グラフィックス更新の通常の処理後に透かしの合成をする。当該処理は概して次の動作を含む。GE初期化時に、(管理者によって構成された所望の透かしテキスト及び/又は画像を有し部分的に透明な)全画面表示の透かしフレームバッファが計算される。次に、フレームバッファのどの部分に透かし情報が存在するのかを記述するビットマップが構築される。この計算とマップ構築動作は、GEを初期化するたびに(例えば、モニタレイアウトを変更するときに)一度にまとめて動作すべきものである。そして、入力されたグラフィック更新に対し、通常のGE動作が行われる。これらのGE動作は、ネットワーク回線容量の使用を削減するために主にキャッシングと圧縮の最適化を伴う。エンドポイントに最新の画面更新(エンドオブフレーム(EOF)コマンド)の表示を指示する前に、初期化時に構築されたビットマップを用いて、計算前の透かしフレームバッファでの任意の透かし情報とグラフィックス更新との共通部分が算出される。ビットマップは、透かしフレームバッファを複数のブロック(例えば、各々が16×16画素)として記述するので、影響を受ける領域は、以前に構築されたマップを用いて、X画素(例えば、16画素)の高さの長方形のストリップとして計算される。グラフィックス更新がごく一部である場合、透かし全体を合成する必要はないため、現在の演算動作は、送信が必要な透かしの部分に効果的に絞られる。その後、これらのストリップに対してアルファブレンドの合成動作を行う。これは、“over”operationとしても知られており、入力画像と透かしの画素を結合することで、両画素を表す結合色が生成される。合成されたストリップは、無損失ランレングス符号化(RLE)オーバーレイビットマップとして、エンドポイントに送信される。これらのビットマップは、他の無損失ビットマップ(キャッシュした)と同様に送信されるので、後で同一のビットマップが生成された場合に再利用され得る。そして、EOFコマンドが発行され、エンドポイントに全ての更新の表示を指示する。
【0032】
本解決手段は、以下の利点を有する。あらゆるエンコーダ最適化は、依然として、何も損なわれていない入力グラフィックス更新に対して行われる。これにより、回線容量の使用が大幅に減少するだけでなく、最良のキャッシュの再利用及び圧縮の利益につなげることができる。サーバオンリーであるため、新たな機能を有効にするために、クライアントソフトウェア更新をする必要がない。余分なCPUコストはオーバーオペレーション(over operation)の結果として生じるが、比較的安価な動作である。アルファブレンド動作によって形成された合成ビットマップはサーバ側で生成され、新たなプロトコルを必要としない。プロトコルについて言えば、これは、無損失のコーデック(例えば、Citrix lossless codes)を用いて圧縮される単なる通常のビットマップである。このアプローチは、新たなコマンドを導入しないので、デフォルトであらゆる既存のエンドポイントと互換性がある。透かしアプリケーションは、GE処理の一部として実施されるので、改ざんされることはない。GE処理が終了すると、エンドポイントに送信されるグラフィックス更新は一切なくなるので、自動的に安全である。
【0033】
実験により、上述の同一の自動作業負荷に対して、回線容量の使用は、透かしが存在しない場合よりも約2〜3倍多く、CPUの使用は、約1.5〜2倍多いことが示されている。このことは、初期のプロトタイプ(15倍多い回線容量)に対する大幅な減少を表している。クライアントソリューションに対して減少した安全性リスクと設置のし易さにより、2〜3倍の増加は顧客にとって許容可能であることが早期に示されている。
【0034】
図1を参照すると、例示的なシステム100の図が示されている。システム100は、リモートセッションにおける可視透かしを提供する方法を実施する。これに関し、システム100は、顧客設備140とクラウドサービスプロバイダ設備142とを備える。顧客設備140は、企業組織などの顧客の1つ以上の建物を備えている。顧客は、複数のエンドユーザ102
1〜102
Nを有する。エンドユーザとしては、従業員が挙げられるが、これに限定されない。エンドユーザ102
1〜102
Nは、それぞれ、クラウドサービスプロバイダによって提供されたクラウドサービスにアクセスして使用するなど、種々の目的のためにクライアントコンピューティングデバイス104
1〜104
Nを使用する。これに関し、クライアントコンピューティングデバイス104
1〜104
Nは、接続損失によって中断されることなく、アプリケーション及び仮想デスクトップへのアクセスを促進するように構成される。よって、クライアントコンピューティングデバイス104
1〜104
Nは、様々なソフトウェアアプリケーションをインストールしており、これらを実行する。これらのソフトウェアアプリケーションとして、ウェブブラウザ116
1〜116
N及び/又はウェブレシーバ118
1〜118
Nが挙げられるが、これに限定されない。
【0035】
いくつかのシナリオでは、ウェブレシーバ118
1〜118
Nとして、それぞれ、フロリダ州のシトリックス・システムズ社から入手可能なCitrix Receiversと、フロリダ州のシトリックス・システムズ社から入手可能なウェブサイト用のCitrix Receiversとを挙げることができるが、これに限定されない。Citrix Receiversは、クライアントデバイスから離れたところにあるサーバによってホストされたアプリケーション及びフルデスクトップへのアクセスを要するクライアントソフトウェアを有する。この点に関して本解決手段は限定されない。
【0036】
クライアントコンピューティングデバイス104
1〜104
Nはまた、内部に様々な情報を格納している。この情報として、アカウントレコード120
1〜120
Nが挙げられるが、これに限定されない。クライアントコンピューティングデバイス104
1〜104
Nは、イントラネットを介して互いに接続可能であり、インターネットを介して外部デバイスに接続可能である。イントラネット及びインターネットは、ネットワーク106として
図1に示されている。
【0037】
外部デバイスは、クラウドサービスプロバイダ設備142に設置された1つ以上のクラウドサービスサーバ108を有する。クラウドサービスプロバイダ設備142は、クラウドサービスプロバイダの1つ以上の建物を備えている。サーバ108は、接続損失によって中断されることなく、アプリケーション及び仮想デスクトップへのアクセスを促進するように構成される。よって、サーバ108は、様々なソフトウェアアプリケーションをインストールしており、これらを実行する。ソフトウェアアプリケーションとして、ストアフロント122及びデスクトップデリバリコントローラ(DDC)124が挙げられるが、これに限定されない。ストアフロント及びDDCは周知技術であるため、ここでの説明は省略する。ここでは、任意の知られた又は知られ得るストアフロント及び/又はDDCを採用することができる。サーバ108は、さらに、発行情報160が格納されたデータストア110にアクセスするように構成され、データストア110から/への読み書きも可能である。発行情報160として、ソフトウェアアプリケーション、コード、メディアコンテンツ(例えば、テキスト、画像、映像など)、及び/又は透かし関連情報が挙げられるが、これに限定されない。
【0038】
クラウドサービスサーバ108はまた、GE126を備える。GEは周知技術であるため、ここでの詳細な説明は省略する。ここでは、任意の知られた又は知られ得るGEを、限定することなく用いることができる。例えば、GE126は、米国特許第9,754,385号(385特許)に記載されたGEを備える。385特許の開示内容は参照により本明細書に組み込まれる。この場合、385特許のGEは、本解決手段を実施するために本明細書で記載された1つ以上の動作を実行するように修正される(例えば、クライアントコンピューティングデバイスに対し、少なくとも1つの透かしを画面に表示させるようにする。)。
【0039】
GE126は、概して、クライアントコンピューティングデバイス104
1〜104
Nとクラウドサービスサーバ108との間に確立されたセッションの期間に、クライアントコンピューティングデバイス104
1〜104
Nの表示画面にレンダリングされるクラウドサービスサーバ108の他の構成要素122及び124からのグラフィックス(例えば、アプリケーションウィンドウ、画像、アイコン、及び/又はその他のデスクトップ若しくはウィンドウの視覚的特徴)を受信するよう機能する。GE126は、受信したグラフィックスを解析し、クライアントコンピューティングデバイス104
1〜104
Nにグラフィックス更新を報告する必要があるか否かを判断する。報告する必要がある場合、GE126は、透かし情報付きのグラフィックス更新メッセージを作成し、ネットワーク106を介してウェブレシーバ118
1〜118
Nへ送信する。グラフィックス更新メッセージに応答して、ウェブレシーバ118
1〜118
Nは、グラフィックス更新メッセージに含まれるコマンドに従って、更新されたグラフィックスを構築し、画面に表示する。
【0040】
従来のグラフィックス更新メッセージ300の図を
図3に示す。
図3に示すように、従来のグラフィックス更新メッセージ300は、複数のグラフィック更新コマンド302〜306とエンドオブフレーム(EOF)コマンド308とを有する。グラフィック更新コマンド302〜306として、画面上の第1位置に新たな画像を描画するためのコマンド、画面上の第2位置に新たなテキストを描画するためのコマンド、画面上の第3位置にローカルキャッシュからの画像を描画するためのコマンド、及び/又は、画面のある部分を画面の別の部分へコピーするためのコマンドを挙げることができるが、これらに限定されない。いったん、画面更新のためにコマンド列が作成されると、EOFコマンド308がコマンド列の末尾に挿入される。EOFコマンド308は、ウェブレシーバに対し、グラフィック更新コマンド302〜306に従って所定のフレームのメモリに構成された更新されたグラフィックスを画面表示するよう指示するために設けられている。
【0041】
図4を参照すると、GE126によって作成されたグラフィックス更新メッセージ400が示されている。グラフィックス更新メッセージ400は、従来のグラフィックス更新メッセージ300に含まれている情報に対して追加された情報を有している。この点に関し、グラフィックス更新メッセージ400は、複数のグラフィック更新コマンド402〜406とEOFコマンド414とを有することを理解されたい。これらのコマンド402〜406、414は、従来のグラフィックス更新メッセージ300のコマンド302〜306、308と同一又は類似である。グラフィックス更新メッセージ400は、これらのコマンド402〜406、414に加えて、少なくとも1つの透かしベースのグラフィック更新コマンド408〜412を有している。透かしベースのグラフィック更新コマンド408〜412は、グラフィックのどの画素が透かしを有するべきなのか、及びこれらの画素に対する再計算されたカラー値を示す情報を含むが、これに限定されない。本解決手段は、この情報を画素の2次元配列(ビットマップ)としてコンパイルする。これらの画素は、透かしが現れない元の入力画像のカラー値、及び透かしが現れる再計算されたカラー値のものである。これらの追加の透かしベースのグラフィックス更新(オーバーレイ)を、従来のグラフィックス更新コマンドとして、フレームのグラフィックス更新メッセージに挿入することができ、これにより、エンドポイントが認識しない新たなコマンドは導入されない。
【0042】
図5を参照すると、透かし500の5つの可視インスタンスを有するデスクトップ画面の表示例の図が示されている。本解決手段は、
図5の具体例に限定されない。例えば、任意の数の可視透かしインスタンスを、画面に表示された1つ以上のグラフィックスに設けることができる。また、透かしは、所定のアプリケーションに従って選択された任意の情報を含めることができる。例えば、各顧客(又は会社)は、種々のコンテンツ、テキスト又はその他のものを指定し、それぞれの透かしに含めるようにしてもよい。
【0043】
図2を参照すると、コンピューティングデバイス200の例示的なアーキテクチャの図が示されている。
図1のコンピューティングデバイス104
1〜104
N及びサーバ108は、コンピューティングデバイス200と同一又は類似である。したがって、コンピューティングデバイス200の説明は、システム100のこれらの構成要素を理解するのに十分である。
【0044】
いくつかのシナリオにおいて、本解決手段は、クライアント−サーバアーキテクチャで用いられる。その結果、
図2に示されたコンピューティングデバイスアーキテクチャは、クライアントコンピューティングデバイス及びサーバの詳細を理解するのに十分である。
【0045】
コンピューティングデバイス200の構成要素は、
図2に示された構成要素よりも多くても少なくてもよい。しかしながら、図示されている構成要素は、本解決手段を実施する例示的な解決手段を開示するのに十分である。
図2のハードウェアアーキテクチャは、本明細書に記載されているように、グラフィックスの透かしを可能とするように構成された代表的なコンピューティングデバイスの一実装例を表す。したがって、
図2のコンピューティングデバイス200は、本明細書に記載された方法の少なくとも一部を実施する。
【0046】
コンピューティングデバイス200の一部又は全ての構成要素は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアとの組み合わせとして実現することができる。ハードウェアは1つ以上の電子回路を含むが、これに限定されない。電子回路として、受動素子(例えば、抵抗器及びコンデンサ)及び/又は能動素子(例えば、増幅器及び/又はマイクロプロセッサ)を挙げることができるが、これらに限定されない。受動素子及び/又は能動素子は、本明細書に記載された方法、手順、又は機能のうちの1つ以上を実行するように構成され、配置され、及び/又はプログラムされ得る。
【0047】
図2に示すように、コンピューティングデバイス200は、ユーザインターフェイス202と、中央処理装置(CPU)206と、システムバス210と、システムバス210を介してコンピューティングデバイス200の他の部分に接続されてアクセス可能なメモリ212と、システムバス210に接続されたハードウェアエンティティ214とを備える。ユーザインターフェイスには、入力デバイス及び出力デバイスを設けることができ、コンピューティングデバイス200の動作を制御するためのユーザ−ソフトウェア相互作用を促す。入力デバイスとして、物理及び/又はタッチキーボード250が挙げられるが、これらに限定されない。入力デバイスは、有線接続又は無線接続(例えば、Bluetooth(登録商標)接続)を介してコンピューティングデバイス200に接続され得る。出力デバイスとして、スピーカー252、ディスプレイ254、及び/又は発光ダイオード256が挙げられるが、これらに限定されない。
【0048】
ハードウェアエンティティ214の少なくとも一部は、メモリ212へのアクセス及び使用を伴うアクションを実行する。メモリ212として、Random Access Memory(RAM)、ディスクドライバ及び/又はCompact Disc Read Only Memory(CD-ROM)が採用され得る。ハードウェアエンティティ214は、コンピュータ読み取り可能な記憶媒体218を有するディスクドライブユニット216を備えることができる。コンピュータ読み取り可能な記憶媒体218には、本明細書に記載された方法、手順、又は機能のうちの1つ以上を実行する1組以上の命令220(例えば、ソフトウェアコード)が格納されている。命令220は、コンピューティングデバイス200によるCPU206の実行中にCPU206内に及び/又はメモリ212内に、完全に又は少なくとも部分的に常駐することもできる。メモリ212及びCPU206は、機械読み取り可能な媒体を構成することもできる。ここで「機械読み取り可能な媒体」とは、1組以上の命令220を格納する単一の媒体又は複数の媒体(例えば、集中型若しくは分散型データベース、及び/又は関連するキャッシュ及びサーバ)を指す。また、「機械読み取り可能な媒体」は、コンピューティングデバイス200による実行のための命令220の組を格納、符号化、又は搬送することができ、且つ、コンピューティングデバイス200に本開示の方法のいずれか1つ以上を実行させる任意の媒体も指している。
【0049】
図6を参照すると、リモートセッションにおける可視透かしを提供する例示的な方法
600のフロー図が示されている。方法
600は、
602で始まり、続いて
604において、ウェブブラウザ(例えば、
図1のウェブブラウザ116
1、…、又は116
N)が立ち上がる。ウェブブラウザは、クライアントコンピューティングデバイス(例えば、
図1のクライアントコンピューティングデバイス104
1、…、又は104
N)にインストールされている。そして、606で、リモートサーバ(例えば、
図1のクラウドサービスサーバ108)によって提供されたウェブサービスにアクセスするためにブラウザタブを開く。次に、608で、デバイス識別子及び少なくとも1つの画面サイズを、クライアントコンピューティングデバイスからリモートサーバへ送信する。リモートサーバがこの情報を受信したことに応答して、610に示すように、リモートサーバのGE(例えば、
図1のGE126)を初期化する。
【0050】
このとき、リモートサーバは、動作612〜622を実行して、少なくとも1つの透かしビットマップを生成する。612では、GEによって、デバイス識別子を用いてデータストア(例えば、
図1のデータストア110)から予め定義された透かしパラメータ情報を読み出す。透かしパラメータ情報として、透かしのコンテンツ(例えば、アイコン、テキスト又はその他の記号)を指定する情報、全画面サイズ透かし画像に含まれる透かしインスタンスの数を指定する情報、及び/又は、全画面サイズ透かし画像内の透かしインスタンスの相対的位置を指定する情報を挙げることができるが、これらに限定されない。614において、画面サイズ及び読み出された予め定義された透かしパラメータ情報は、GEからリモートサーバの透かしジェネレータ(例えば、
図1の透かしジェネレータ128)へ送信される。そして、透かしジェネレータは、616において、画面サイズ及び予め定義された透かしパラメータ情報に従って、少なくとも1つの全画面サイズ透かし画像(例えば、白色背景又は黒色背景に少なくとも1つの透かしインスタンス)を生成する動作を実行する。
【0051】
図7に、例示的な全画面サイズ透かし画像700の図を示す。全画面サイズ透かし画像700は、以下の透かしの4つのインスタンスを有する。
mdadmin@BMWIN7X64
21:43:41 30/08/2017
透かしインスタンスは、画像700内の異なる箇所に位置している。画像700はまた、白色背景を有する。本解決手段は、当該図の具体例に限定されない。例えば、全画面サイズ透かし画像には、任意の数の透かしインスタンスを含めることができる。また、透かしは、特定のアプリケーションに従って選択された任意のコンテンツを含めることができる。
【0052】
次の618において、全画面サイズ透かし画像は、透かしジェネレータからGEへ送信される。そして、GEは、620において、全画面サイズ透かし画像のどこに透かしインスタンスが存在するかを判断する動作を実行する。いくつかのシナリオにおいて、この判断は、各全画面サイズ透かし画像を複数の同一サイズのブロックに分割することによってなされる。
図8に、例示的な分割透かし画像800の図を示す。分割透かし画像800は複数のブロック802からなる。各ブロック802のサイズはX画素×X画素である。ここで、Xは整数(例えば、16)である。次いで、分割透かし画像800を解析して、どのブロック802が透かしインスタンスの一部を含んでいるのかを特定する。そして、特定されたブロックにマークを付ける。ここでは、マーク付きブロックを参照符号804で表し、マークなしブロックを参照符号806で表す。次に、GEは、統合ブロック1002を有するマーク付き分割透かし画像1000を生成する動作を実行する。各統合ブロック1002は、通常、複数の隣接するマーク付きブロック804によって定義された長方形であるため、正方形のブロック804よりも大きいブロックを構成する。この点に関して本解決手段は限定されない。統合ブロック1002は長方形以外の形をとってもよい。
【0053】
そして、622において透かしビットマップを生成する。透かしビットマップは、統合ブロック1002の特色を用いて生成することができる。
図11に、例示的な透かしビットマップ1100の図を示す。透かしビットマップ1100は、各統合ブロック1002に含まれる各画素のビット値を指定する情報を含むテーブルを含めることができるが、これに限定されない。画素値0は、オーバーレイされた透かしの結果として画素のカラー値が変化しなかったことを意味する。画素値1は、オーバーレイされた透かしの結果として画素のカラー値が変化したことを意味する。本解決手段は、このシナリオの具体例に限定されない。
【0054】
再度
図6Aを参照すると、624において、クライアントコンピューティングデバイスとリモートサーバとの間のセッションを確立する。セッションを確立する手法は周知技術であるため、ここでの説明は省略する。ここでは、任意の知られた又は知られ得るセッション確立手法を、限定することなく用いることができる。
【0055】
セッションの期間中、GEはリモートサーバの他の構成要素(例えば、グラフィックスカードドライバ)からグラフィックスを受け取る。628において、GEは、グラフィックスを解析して、少なくとも1つのグラフィックの更新をクライアントコンピューティングデバイスに伝達する必要があるか否かを判断する動作を実行する。伝達する必要があれば、方法600は
図6Bの630に移行する。
【0056】
図6Bに示すように、630では、GEによって、第1グラフィックス更新メッセージ(例えば、
図3のグラフィックス更新メッセージ300)を作成する。第1グラフィックス更新メッセージは、グラフィックを更新するための第1コマンド列(例えば、
図3のコマンド302〜306)とEOFコマンド(例えば、
図3のEOFコマンド308)とを有する。第1コマンド列として、画面上の第1位置に新たな画像を描画するためのコマンド、画面上の第2位置に新たなテキストを描画するためのコマンド、画面上の第3位置にローカルキャッシュからの画像を描画するためのコマンド、及び/又は、画面のある部分を画面の別の部分へコピーするためのコマンドを挙げることができるが、これらに限定されない。
【0057】
次に、632において、GEは、透かしビットマップを用いて、オーバーレイされた場合に透かしの影響を受けるグラフィックの画素があるか否かを判断する。この判断は、画面上の統合ブロック1002の位置に表示されるグラフィックの部分を特定することによって行うことができる。実際に部分が特定された場合、オーバーレイされた透かしの影響を受けるグラフィックの画素があると判断する。部分が特定されなかった場合、オーバーレイされた透かしの影響を受けるグラフィックの画素がないと判断する。
【0058】
グラフィックの1つ以上の画素がオーバーレイされた透かしの影響を受けない場合[634:NO]、方法600は636に移行し、第1グラフィックス更新メッセージをリモートサーバのGEからクライアントコンピューティングデバイスのウェブレシーバ(例えば、
図1のウェブレシーバ118
1、…、118
N)へ送信する。そして、ウェブレシーバは、638において、第1グラフィックス更新メッセージに含まれる第1コマンド列に従って、所定のフレームのメモリ(例えば、
図2のメモリ212)に更新されたグラフィックを構成する動作を実行する。更新されたグラフィックをメモリに構成する手法は周知技術であるため、ここでの説明は省略する。ここでは、更新されたグラフィックをメモリに構成するための任意の知られた又は知られ得る手法を、限定することなく用いることができる。そして、640に示すように、第1グラフィックス更新メッセージに含まれるEOFコマンドに応答して、ウェブレシーバによって、更新されたグラフィックを画面に表示する。次いで、方法600を終了するか又は他の処理を実行する642を行う。
【0059】
グラフィックの1つ以上の画素がオーバーレイされた透かしの影響を受ける場合[634:YES]、方法600は
図6Cの644に移行し、GEによって、透かしビットマップを用いて、オーバーレイされた場合に透かしの影響を受けるグラフィックの画素を特定する。GEは、(a)マーク付き分割全画面透かし画像の統合ブロックの位置と、(b)グラフィックが表示されるフルサイズ画面上の位置とを認識しているので、1つ以上の統合ブロックの画素と同じ位置にあるグラフィックの画素を特定することができる。646に示すように、644で特定された画素について新たなカラー値を計算する。各カラー値は、Red、Green及びBlue(RGB)値によって定義される。この計算において、グラフィック画素のRGBカラー値とそれぞれの透かし画素のRGBカラー値とを組み合わせてもよい。
【0060】
次の648において、GEは、646で計算された新たなカラー値に従って、特定された画素を修正するための第2コマンド列(例えば、
図4のコマンド408、…、412)を作成する動作を実行する。第2コマンド列は、グラフィックのどの画素が透かしを有するべきなのか、及びこれらの画素に対する再計算されたカラー値を示す情報を含むが、これに限定されない。
【0061】
そして、650では、第2コマンド列を用いて第2グラフィックス更新メッセージ(例えば、
図4のグラフィックス更新メッセージ400)を作成する。第2グラフィックス更新メッセージは、第1グラフィックス更新メッセージの第1コマンド列とEOFコマンドとの間に第2コマンド列を挿入することによって作成される。652において、第2グラフィックス更新メッセージをGEからウェブレシーバへ送信する。
【0062】
ウェブレシーバでは、654に示すように、第2グラフィックス更新メッセージに含まれる第1コマンド列に従って、所定のフレームのメモリに更新されたグラフィックを構成する。そして、656に示すように、ウェブレシーバは、第2グラフィックス更新メッセージに含まれる第2コマンド列に従って、構成された更新されたグラフィックを修正することで透かしを含めるようにする。658では、第2グラフィックス更新メッセージに含まれるEOFコマンドに応答して、透かし付の構成された更新されたグラフィックを画面に表示する。次いで、方法600を終了するか又は他の処理を実行する660を行う。
【0063】
本解決手段を1つ以上の実施に関して図示及び説明したが、本明細書及び添付図面を読んで理解すると、同等の変更及び変形例が当業者に想到されるであろう。さらに、本解決手段の特定の特徴は、いくつかの実施のうちの1つのみに関して開示されている可能性があるが、そのような特徴は、任意の又は特定の用途にとって望ましく有利であるように他の実施の1つ以上の他の特徴と組み合わせることができる。したがって、本解決手段の広さ及び範囲は、上述の実施形態のいずれによっても限定されるべきではない。むしろ、本解決手段の範囲は、添付の特許請求の範囲及びそれらの均等物に従って定義されるべきである。