IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シトリックス・システムズ・インコーポレイテッドの特許一覧

特許7055889マスク化透かし並びに関連するシステムおよび技術
<>
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図1
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図2
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図3
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図4
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図4A
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図5
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図5A
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図6
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図7
  • 特許-マスク化透かし並びに関連するシステムおよび技術 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-08
(45)【発行日】2022-04-18
(54)【発明の名称】マスク化透かし並びに関連するシステムおよび技術
(51)【国際特許分類】
   H04N 1/32 20060101AFI20220411BHJP
【FI】
H04N1/32 144
【請求項の数】 20
(21)【出願番号】P 2020544859
(86)(22)【出願日】2019-08-20
(65)【公表番号】
(43)【公表日】2021-07-08
(86)【国際出願番号】 CN2019101539
(87)【国際公開番号】W WO2020206897
(87)【国際公開日】2020-10-15
【審査請求日】2020-09-30
【早期審査対象出願】
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100201743
【弁理士】
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】ジョウ,フーピーン
(72)【発明者】
【氏名】リウ,イエピーン
【審査官】橘 高志
(56)【参考文献】
【文献】特開2016-220200(JP,A)
【文献】米国特許出願公開第2016/0352961(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/32
(57)【特許請求の範囲】
【請求項1】
透かしを、複数の透かし要素にセグメント化するステップと、
前記複数の透かし要素のうちの少なくとも1つの透かし要素について、
前記少なくとも1つの透かし要素を適用するコンテンツ内の位置を決定して、
前記少なくとも1つの透かし要素を適用するコンテンツ内の当該位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記データ要素を前記少なくとも1つの透かし要素上にオーバレイさせることにより前記少なくとも1つの透かし要素をマスク化された透かしとして前記コンテンツにレンダリングするステップと、
前記少なくとも1つの透かし要素が前記データ要素によってオーバレイされたとき、前記複数の透かし要素のうちの1つ以上の他の透かし要素を前記コンテンツに目に見えるようにレンダリングするステップと
を備える方法。
【請求項2】
前記複数の透かし要素が複数の第1の透かし要素に相当し、前記透かしが前記コンテンツに対する前記透かしの適用の第1の実体であり、前記マスク化された透かしが第1のマスク化透かしであり、
前記方法は、さらに、
前記透かしを、複数の第2の透かし要素にセグメント化するステップと、
前記複数の第2の透かし要素のうちの少なくとも1つの透かし要素について、前記複数の第2の透かし要素のうちの前記少なくとも1つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも1つの第2の透かし要素を前記コンテンツにレンダリングするステップとを備え、
前記透かしの第2の実体を第2のマスク化透かしとしてレンダリングするように前記データ要素が前記第2の透かし要素をオーバレイする、請求項1に記載の方法。
【請求項3】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項1に記載の方法。
【請求項4】
前記補完的な透かしと前記マスク化された透かしとが完全な透かしを形成するように、前記補完的な透かしは前記マスク化された透かしを補完する、請求項3に記載の方法。
【請求項5】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記第2のマスク化透かしに含まれない一部に相当し、前記補完的な透かしと前記第2のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第2のマスク化透かしを補完する、請求項2に記載の方法。
【請求項6】
前記補完的な透かしは、前記コンテンツにおける空白領域にレンダリングされる、請求項3に記載の方法。
【請求項7】
前記補完的な透かしは、前記コンテンツにおけるデータ要素をオーバレイしないようにレンダリングされる、請求項3に記載の方法。
【請求項8】
前記補完的な透かしは、第1の補完的な透かしと第2の補完的な透かしとを含む、請求項3に記載の方法。
【請求項9】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに第1の補完的な透かしと第2の補完的な透かしとをレンダリングするステップをさらに備えた、請求項2に記載の方法。
【請求項10】
前記第1の補完的な透かしは、前記第1のマスク化透かしを補完し、前記第2の補完的な透かしは、前記第2のマスク化透かしを補完する、請求項9に記載の方法。
【請求項11】
前記第1の補完的な透かしは、前記第1のマスク化透かしを補完し、前記第2の補完的な透かしは、前記第1のマスク化透かしを補完する、請求項9に記載の方法。
【請求項12】
単数または複数のプロセッサによって実行されるとコンテンツに透かしをレンダリングする処理を実行させる命令を符号化する不揮発性のマシン読み取り可能な媒体であって、
前記処理は、
透かしを、複数の透かし要素にセグメント化するステップと、
前記複数の透かし要素のうちの少なくとも1つの透かし要素について、
前記少なくとも1つの透かし要素を適用するコンテンツ内の位置を決定して、
前記少なくとも1つの透かし要素を適用するコンテンツ内の当該位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記データ要素を前記少なくとも1つの透かし要素上にオーバレイさせることにより前記少なくとも1つの透かし要素をマスク化された透かしとして前記コンテンツにレンダリングするステップと、
前記少なくとも1つの透かし要素が前記データ要素によってオーバレイされたとき、前記複数の透かし要素のうちの1つ以上の他の透かし要素を前記コンテンツに目に見えるようにレンダリングするステップと
を備える、不揮発性のマシン読み取り可能な媒体。
【請求項13】
前記処理は、透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項12に記載の不揮発性のマシン読み取り可能な媒体。
【請求項14】
前記補完的な透かしと前記マスク化された透かしとが完全な透かしを形成するように、前記補完的な透かしは前記マスク化された透かしを補完する、請求項13に記載の不揮発性のマシン読み取り可能な媒体。
【請求項15】
前記補完的な透かしは、前記コンテンツにおけるデータ要素をオーバレイしないようにレンダリングされる、請求項13に記載の不揮発性のマシン読み取り可能な媒体。
【請求項16】
メモリと、
前記メモリと通信する単数または複数のプロセッサとを備えたシステムであって、
前記単数または複数のプロセッサは、
透かしを、複数の透かし要素にセグメント化し、
前記複数の透かし要素のうちの少なくとも1つの透かし要素について、
前記少なくとも1つの透かし要素を適用するコンテンツ内の位置を決定して、
前記少なくとも1つの透かし要素を適用するコンテンツ内の当該位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記データ要素を前記少なくとも1つの透かし要素上にオーバレイさせることにより前記少なくとも1つの透かし要素をマスク化された透かしとして前記コンテンツにレンダリングし、
前記少なくとも1つの透かし要素が前記データ要素によってオーバレイされたとき、前記複数の透かし要素のうちの1つ以上の他の透かし要素を前記コンテンツに目に見えるようにレンダリングするように構成されている、システム。
【請求項17】
前記複数の透かし要素が複数の第1の透かし要素に相当し、前記透かしが前記コンテンツに対する前記透かしの適用の第1の実体であり、前記マスク化された透かしが第1のマスク化透かしであり、
前記プロセッサは、さらに、
前記透かしを、複数の第2の透かし要素にセグメント化し、
前記複数の第2の透かし要素のうちの少なくとも1つの透かし要素について、前記複数の第2の透かし要素のうちの前記少なくとも1つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも1つの第2の透かし要素を前記コンテンツにレンダリングするように構成され、
前記透かしの第2の実体を第2のマスク化透かしとしてレンダリングするように前記データ要素が前記第2の透かし要素にオーバレイする、請求項16に記載のシステム。
【請求項18】
透かししきい値が満たされていないとの判定に応じて、前記プロセッサは、さらに、前記コンテンツに補完的な透かしをレンダリングするように構成され、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項16に記載のシステム。
【請求項19】
前記補完的な透かしと前記マスク化された透かしとが完全な透かしを形成するように、前記補完的な透かしは前記マスク化された透かしを補完する、請求項18に記載のシステム。
【請求項20】
透かししきい値が満たされていないとの判定に応じて、前記プロセッサは、さらに、前記コンテンツに補完的な透かしをレンダリングするように構成され、前記補完的な透かしは、前記透かしのうち前記第2のマスク化透かしに含まれない一部に相当し、前記補完的な透かしと前記第2のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第2のマスク化透かしを補完する、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]電子透かしは、画像、テキスト、ドキュメント、またはディスプレイ上に現れる可能性のある他の形態のデジタルデータを含むデジタルコンテンツをマーキングおよび/または保護するために広く使用されている技術である。
【背景技術】
【0002】
電子透かしには、目に見える透かしの使用を含めることができる。目に見える透かしは、通常、テキスト、パターン、シンボル、または画像として提供され、人間の観察者によって、元のコンテンツにオーバレイされていると知覚され得る。シースルー特性を有する目に見える透かしが提供され得る。シースルー透かしにより、透かしと元のコンテンツとの両方が、人間の観察者によって見られる。
【発明の概要】
【0003】
[0002]本概要は、詳細な説明において以下でさらに説明される選択された概念を、簡略化された形式で紹介するために提供される。本概要は、特許請求された主題の主要なまたは不可欠な特徴または組合せを特定することを意図しておらず、特許請求された主題の範囲を限定するために使用されることも意図していない。
【0004】
[0003]本明細書で説明される概念、システム、および技術によれば、電子ディスプレイ、またはコンテンツの視覚的表現のための他の任意の手段に表示されるべきデータ、またはより一般的にはコンテンツに、透かしを適用するためのシステムは、表示されるべきコンテンツを特定するための手段と、マスク化された透かしを生成するための手段と、補完的な透かしを生成するための手段と、コンテンツに表示されるべきマスク化された透かしおよび補完的な透かしをレンダリングするための手段とを含む。
【0005】
[0004]この特定の構成により、コンテンツが表示されるときにコンテンツを不明瞭化しない方式でコンテンツに透かしをレンダリングするためのシステムが提供される。実施形態では、コンテンツは、電子的に表現され得る(本明細書では、デジタルコンテンツと呼ばれる)。表示されるべきコンテンツにおける単数または複数のデータ要素を特定することによって、当該表示されるべきコンテンツにおける単数または複数のデータ要素をオーバレイすることなく、マスク化された補完的な透かしがレンダリングされ得るコンテンツの領域を、特定することができる。次に、マスク化された補完的な透かしを、デジタルコンテンツの特定領域にレンダリングできる。
【0006】
[0005]表示されるべきデジタルコンテンツに透かしをレンダリングするための概念および技術は、表示されるべきコンテンツのためのデータセキュリティを提供する手段として、デスクトップおよびアプリケーション仮想化プラットフォームにおいて利用され得る。
【0007】
[0006]一実施形態では、上記の概念、システム、および技術は、透かしがコンテンツにレンダリングされるときに、データ要素の一部が、透かしの任意の部分と同じ位置にあることが検出された場合、完全な透かしの一部をオーバレイすることを可能にする。このアプローチを使用すると、エンドユーザは、データ要素が透かしまたは透かしの一部によって覆われたり不明瞭化されたりすることなく、表示中のコンテンツにおけるそのデータ要素を見ることができる。これにより、エンドユーザは、データ要素/情報を透かしと区別する必要がなくなり、データに対するユーザの注意が妨げられることはない。さらに、透かしの一部分または複数部分のマスキングにより、透かしの情報(たとえば、透かしの目的、または透かしによって伝えられるメッセージ、または透かしの意味)が失われることを回避するために、しきい値が定義され、少なくともいくつかの累積した透かしが、デジタルコンテンツにレンダリングされ、デジタルコンテンツが表示されるときに示されることを保証する。いくつかの累積した透かしを使用することにより、透かしによって伝えられる情報は影響を受けないか、さもなければ損なわれることもない。たとえば、透かしの目的がセキュリティ機能を提供することである場合、透かしのセキュリティ機能は影響を受けないか、さもなければ損なわれることもない。
【0008】
[0007]1つの態様では、本明細書で説明される概念は、マスク化された透かしのパーツを有する透かしをレンダリングするアプローチを対象としているため、透かしは、当該透かしがレンダリングされるデジタルコンテンツにおけるデータ要素をオーバレイしない。むしろ、透かしは、いずれのデータ要素も含まないデジタルコンテンツの一部にレンダリングされる(たとえば、透かしまたはその一部が、コンテンツの空白領域にレンダリングされる)か、または、コンテンツが、ディスプレイデバイス、インターフェイス(たとえば、ユーザインターフェイス)、ウェブページ、ドキュメント、画像、またはコンテンツの視覚的表現が可能な他の任意の手段に表示されるときに、その基となるデータ要素との干渉(たとえば、オーバレイ、さもなければ、不明瞭化されること)をほとんどしないコンテンツの領域にレンダリングされる。
【0009】
[0008]上記の概念、システム、および技術に従って、透かしレンダリング数のしきい値が選択される。しきい値は、少なくとも、表示されるべき累積した透かしの、規定された数を維持する。マスク化された透かし要素の上記理由により、しきい値に達していない場合、この解決策は、いくつかの空白領域を検出して、オーバレイされた透かし要素をレンダリングし、しきい値を満たすようにする。
【0010】
[0009]一般的な概要において、完全な透かしを2つ以上の要素に分断化(または、より一般的には、分割)するシステムおよび技術について説明する(すなわち、2つ以上の要素を一体化すると完全な透かしが形成される)。コンテンツ(たとえば、デジタルコンテンツ)に透かしをレンダリングする場合、システムおよび技術は、透かし要素がレンダリングされようとしているコンテンツ内の位置に、データ要素が存在するか否かを検出する。単数または複数のデータ要素が存在するコンテンツ内の位置に、単数または複数の透かし要素がレンダリングされている(すなわち、単数または複数の透かし要素が、単数または複数のデータ要素と、重なり合うか、さもなければ、干渉する)との判定に応じて、当該単数または複数の透かし要素がマスクされる(すなわち、デジタルコンテンツにレンダリングされていない)ため、表示されたとき(たとえば、画面インターフェイスまたはドキュメントに表示されたとき)、当該単数または複数の透かし要素と単数または複数のデータ要素との重なり合い、または干渉は発生しない。これによって、透かし(たとえば、完全な透かし、マスク化された透かし、および/または、補完的な透かし)並びに、ディスプレイ上に表示されたデジタルコンテンツ内のデータ要素が、見ているユーザによって容易に見られ、容易に理解できるようになる。
【0011】
[0010]伝えられる情報、および/または、データ要素によって示されるオブジェクトを認識し、さもなければ判定することは必要ではないことに留意されたい。むしろ、システムおよび技術は、伝えられる情報を認識するために必要な処理よりも簡単な(したがって、必要な処理リソースが少なく、時間も少ない)処理となるデータ要素の存在を検出するだけでよい。したがって、有利なことに、1つの実施形態では、透かしがレンダリングされるべきコンテンツの領域内の色分布を計算することによって、データ要素の検出が判定され得る。さらに、データ要素が存在しないコンテンツ内の位置にある透かしの一部がマスク化されている場合でも、コンテンツが表示される場合、マスク化されていない透かしの一部を補完して、所望の数の完全な透かしが表示されることを保証することができる。
【0012】
[0011]このようにして、デジタルコンテンツに透かしを入れることによって提供されるセキュリティ機能が依然として提供される。したがって、有利なことに、高速処理技術を使用して、デジタルコンテンツ内のデータ要素の検出を実行することができる。
【0013】
[0012]透かしがマスク化されると、システムは、残る透かし要素(透かしの補完的な要素とも呼ばれる)が、完全な透かしの意図された機能を提供するのに十分な量の情報を伝えるのか否か(たとえば、レンダリングされた透かし要素が、セキュリティ機能を提供するのに十分な量の情報を伝えるのか否か)を判定し得る。そのような判定は、たとえば、完全な透かしのしきい値数を利用することによってなされ得る。実施形態では、しきい値数は、システム管理者によって定義され得る。実施形態では、しきい値数は、データ要素が存在しないデジタルコンテンツ内のスペースの量を判定することによって決定され得る。他の技術も使用され得る。レンダリングされた透かし要素が、指定された透かしのしきい値を超える(または、いくつかの実施形態では、透かしのしきい値以上の)いくつかの数の透かしの実体に累積できる場合、透かし要素のレンダリングは十分であるか、そうでなければ許容可能であるとみなされる。一方、レンダリングされた透かし要素が、透かしのしきい値を超える(または、いくつかの実施形態では、透かしのしきい値以上の)いくつかの数の透かしの実体に累積しない場合、透かし要素の配置は、十分ではないとみなされ、システムは、補完処理を実行し得る。実施形態では、補完処理は、デジタルコンテンツの空白領域内のマスク化された透かし要素を、補完的な透かしとしてレンダリングして、累積した透かし(すなわち、補完的な透かしを含むレンダリングされた透かし要素)が、指定されたしきい値を満たすようにする。
【0014】
[0013]上記および他の目的、特徴、および利点は、同様の参照符号が異なる図全体を通して同じ部分を示す添付の図面に例示されるように、実施形態のより具体的な説明から明らかになるであろう。図面は必ずしも縮尺通りではなく、代わりに実施形態の原理を例示することに重点が置かれている。
【図面の簡単な説明】
【0015】
図1】[0014]本開示の実施形態に従って、本開示の様々な態様が実施され得るコンピューティングデバイスの例示的なネットワーク環境を例示するブロック図である。
図2】[0015]本開示の実施形態に従って、本開示の様々な態様が実施され得る例示的なコンピューティングデバイスの選択的な構成要素を例示するブロック図である。
図3】[0016]透かしがその上に配置されており、単数または複数の目に見える欠陥をもたらす、表示されたデータを例示する図である。
図4】[0017]本開示の実施形態に従って、マスク化された補完的な透かしがその上に配置されており、目に見える欠陥がない、表示されたデータを例示する図である。
図4A】[0018]複数の要素にセグメント化(または分割)された例示的な透かしを示す図である。
図5】[0019]本開示の実施形態に従って、コンテンツにマスク化された透かしを形成するために使用することができる例示的なネットワーク化コンピュータシステムのうちの選択された構成要素を概略的に例示するブロック図である。
図5A】[0020]本開示の様々な態様が実施され得るクラウドコンピューティング環境の概略ブロック図である。
図6】[0021]本開示の実施形態に従って、マスク化された透かしをレンダリングするための例示的な処理を例示するフロー図である。
図7】[0022]本開示の実施形態に従って、必要に応じて透かしをマスキングすることによって透かしをレンダリングするための例示的な処理を例示するフロー図である。
図8】[0023]本開示の実施形態に従って、マスク化された透かしを補完するための例示的な処理を例示するフロー図である。
【発明を実施するための形態】
【0016】
[0024]理想的には、目に見える透かしは、コンテンツの変換に対して(たとえば、コンテンツが写真である場合の画像変換に対して、またはコンテンツがウェブページに含まれる場合のウェブページ変換に対して)比較的ロバストである。したがって、透かしは、たとえば、改ざんからコンテンツを保護しまたは特定するため、著作権保護を提供するため、通知または情報を提供するため、および/または、コンテンツに対するデジタル著作権管理制御を提供するために使用され得る。目に見える透かしは、コンテンツを保護するために適用できるが、そのような目に見える透かしは、コンテンツのすべてまたは一部を不明瞭にする可能性があり(たとえば、目に見える透かしは、写真のオブジェクトおよび/またはシーンのすべてまたは一部を不明瞭にする可能性があり)、観察者(たとえば、人間の観察者、または、画像処理システムまたは認識システム(たとえば、光学式文字認識システム))が、コンテンツを視覚的に知覚したり、または透かしによって不明瞭にされたコンテンツの一部(たとえば、写真の一部)から透かしを視覚的に分離したりすることが困難になる。
【0017】
[0025]目に見える透かしはまた、観察者をコンテンツからそらす(たとえば、観察者を、写真またはウェブページの主題からそらす)ことにより、エンドユーザの体験を低下させおよび/または妨害することがある。したがって、本開示の実施形態に従って、改善された透かし技術により、ユーザは、コンテンツが表示されるときに、コンテンツにおけるデータ要素を不明瞭にしないように、さもなければ目に見える欠陥を生じさせないように、コンテンツに視覚的な透かしを適用することができる。
【0018】
[0026]本明細書で使用する場合、「コンテンツ」という用語は、視覚的に提示されるべき情報の全体を指す。情報は、たとえば、いくつかの例を挙げると、テキストまたは画像のいずれかまたはすべてを使用して視覚的に提示され得る。コンテンツは、ディスプレイ、インターフェイス(たとえば、ユーザインターフェイス)、ウェブページ、ドキュメント、写真に、または、コンテンツの視覚的表現が可能な他の任意の手段によって、視覚的に提示され得る。コンテンツは、デジタルまたはアナログ(たとえば、連続するパラメータ)であり得る。コンテンツは、単数または複数のデータ要素を含み得る。
【0019】
[0027]「データ要素」は、コンテンツ内のデータの個々の部分またはユニット(たとえば、デジタルコンテンツ内のデジタルデータ)を指す。いくつかの例を挙げると、テキスト、画像、グラフィック要素、制御要素、オブジェクト、色、および、十分な強度の画素など、コンテンツが見られるときにデータ要素が重要になる場合がある。コンテンツ、したがってデータ要素は、画像、テキスト、グラフィック要素、制御要素、または、ディスプレイ(たとえば、コンピュータまたはモバイルデバイスのディスプレイスクリーン、または、コンテンツが視覚的に提示され得る任意の形態のディスプレイまたはインターフェイス)上に表れ得る他の形態のデジタル表現を含むデジタルデータの形態で存在し得る。
【0020】
[0028]この文書の残りの部分で使用されるように、「透かし」という用語は、視覚的なしるしを指す。どのような形態のしるしも、透かしを備え得る。しるしは、たとえば、テキストまたは画像またはシンボルまたはそれらの組合せであり得る。透かしは、コンテンツに追加されたとき、さもなければ適用されたときに視覚的に確認できる。したがって、本明細書で提供される説明の目的のために、透かしとコンテンツとが区別される。具体的には、透かしは、人間などの観察者が、コンテンツのすべてまたは一部にオーバレイされている、さもなければ適用されていると認識できる要素またはしるしである。
【0021】
[0029]表示されたコンテンツにおけるデータ要素を不明瞭化しない、さもなければ、目に見える欠陥を生じさせない方式で、視覚的透かしをコンテンツに適用するために、透かしを含むコンテンツをレンダリングするとき、コンテンツに適用された透かしは複数の部分片にセグメント化され、各部分片が、完全な透かし要素に相当している。次に、特定の透かし要素をレンダリングする前に、特定の透かし要素がレンダリングされるコンテンツ内の位置に、コンテンツのデータ要素があるか否かを判定するための確認が行われる。データ要素がその位置に存在すると判定された場合、特定の透かし要素は、当該透かし要素ではなくデータ要素が目に見えるように、その特定の透かし要素をオーバレイするようにレンダリングされる。あるいは、その位置にデータ要素が存在しないと判定された場合、透かし要素は、その位置にレンダリングされる。
【0022】
[0030]データ要素は、透かしの特定の要素をオーバレイするため、透かしの特定の要素と同じコンテンツ内の位置にあるデータ要素は、コンテンツが表示されるときに不明瞭にされない。また、この場合、透かしの一部(たとえば、データ要素によってオーバレイされる透かしの一部)は、オーバレイするデータ要素によって「マスク化」される。その結果は、本明細書では「マスク化透かし」と呼ばれる。残る透かし要素も同様に処理され、コンテンツに透かしがレンダリングされる。本開示に照らして、多数の構成および修正が明らかになるであろう。
【0023】
[0031]次に図を参照すると、図1は、本開示の実施形態に従って、本開示の様々な態様が実施され得るコンピューティングデバイスの例示的なネットワーク環境101を例示するブロック図である。図示されるように、環境101は、単数または複数のクライアントマシン102A~102N、単数または複数のリモートマシン106A~106N、単数または複数のネットワーク104、104’、および環境101内にインストールされた単数または複数の機器108を含む。クライアントマシン102A~102Nは、ネットワーク104、104’を介してリモートマシン106A~106Nと通信する。
【0024】
[0032]いくつかの実施形態では、クライアントマシン102A~102Nは、中間機器108を介してリモートマシン106A~106Nと通信する。例示された機器108は、ネットワーク104、104’の間に配置され、ネットワークインターフェイスまたはゲートウェイと呼ばれ得る。いくつかの実施形態では、機器108は、アプリケーション・デリバリ・コントローラ(ADC:Software as a Service)として動作して、データセンタ、クラウドコンピューティング環境に展開され、または、複数のクライアントデバイスの範囲に及ぶソフトウェア・アズ・ア・サービス(SaaS:Software as a Service)として供給されるビジネスアプリケーションおよび他のデータへのアクセスをクライアントに提供するか、および/または、負荷分散などの他の機能を提供し得る。いくつかの実施形態では、複数の機器108が使用され得、機器108は、ネットワーク104および/または104’の一部として展開され得る。
【0025】
[0033]クライアントマシン102A~102Nは、一般に、クライアントマシン102、ローカルマシン102、クライアント102、クライアントノード102、クライアントコンピュータ102、クライアントデバイス102、コンピューティングデバイス102、エンドポイント102、またはエンドポイントノード102と呼ばれ得る。リモートマシン106A~106Nは、一般に、サーバ106またはサーバファーム106と呼ばれ得る。いくつかの実施形態では、クライアントデバイス102は、サーバ106によって提供されるリソースへのアクセスを求めるクライアントノードと、他のクライアントデバイス102A~102Nのためにホストされたリソースへのアクセスを提供するサーバ106との両方として機能する能力を有し得る。ネットワーク104、104’は、通常、ネットワーク104と参照され得る。ネットワーク104は、有線およびワイヤレスのネットワーク任意の組合せで構成され得る。
【0026】
[0034]サーバ106は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、セキュアソケットレイヤ仮想プライベートネットワーク(SSL VPN:Secure Sockets Layer Virtual Private Network)サーバ、ファイアウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、または、ファイアウォール機能、アプリケーション機能もしくは負荷分散機能を提供するアプリケーションアクセラレーションプログラムを実行するサーバのような任意のサーバタイプであり得る。
【0027】
[0035]サーバ106は、ソフトウェア、プログラム、実行可能な命令、仮想マシン、ハイパバイザ、ウェブブラウザ、Webベースのクライアント、クライアントサーバアプリケーション、シン・クライアント・コンピューティング・クライアント、ActiveXコントロール、Javaアプレット、ソフトIP電話のようなボイスオーバインターネットプロトコル(VoIP:voice over internet protocol)通信に関連するソフトウェア、ビデオおよび/またはオーディオをストリーミングするためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、HTTPクライアント、FTPクライアント、Oscarクライアント、Telnetクライアント、または他の任意の実行可能な命令のセットのうちのいずれか1つであり得るアプリケーションを実行、動作、または、さもなければ提供し得る。
【0028】
[0036]いくつかの実施形態では、サーバ106は、リモートプレゼンテーションサービスプログラム、または、シンクライアントまたはリモートディスプレイプロトコルを使用する他のプログラムを実行して、サーバ106上で実行するアプリケーションによって生成されたディスプレイ出力をキャプチャし、アプリケーションディスプレイ出力をクライアントデバイス102に送信し得る。
【0029】
[0037]さらに他の実施形態では、サーバ106は、クライアントデバイス102のユーザに、コンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス102は、仮想マシンであり得る。仮想マシンは、たとえば、ハイパバイザ、仮想マシンマネジャ(VMM:virtual machine manager)、またはサーバ106内の任意の他のハードウェア仮想化技術によって管理され得る。
【0030】
[0038]いくつかの実施形態では、ネットワーク104は、ローカルエリアネットワーク(LAN:local-area network)、メトロポリタンエリアネットワーク(MAN:metropolitan area network)、広域ネットワーク(WAN:wide area network)、プライマリパブリックネットワーク、およびプライマリプライベートネットワークであり得る。追加の実施形態は、モバイルデバイス間で通信するために様々なプロトコルを使用するモバイル電話ネットワークのネットワーク104を含み得る。ワイヤレスローカルエリアネットワーク(WLAN:wireless local-area network)内の短距離通信の場合、プロトコルは、802.11、Bluetooth、および近距離無線通信(NFC)を含み得る。
【0031】
[0039]図2は、本開示の実施形態に従って、本開示の様々な態様が実施され得る例示的なコンピューティングデバイス100の選択的な構成要素を例示するブロック図である。たとえば、図1のクライアントデバイス102、機器108、および/またはサーバ106は、コンピューティングデバイス100と実質的に同様であり得る。図示されるように、コンピューティングデバイス100は、単数または複数のプロセッサ103、揮発性メモリ122(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ128、ユーザインターフェイス(UI)123、単数または複数の通信インターフェイス118、および通信バス150を含む。
【0032】
[0040]不揮発性メモリ128は、単数または複数のハードディスクドライブ(HDD)または他の磁気または光ストレージ媒体、フラッシュドライブや他のソリッドステートストレージ媒体などの単数または複数のソリッドステートドライブ(SSD)、単数または複数のハイブリッド磁気およびソリッドステートドライブ、および/または、クラウドストレージなどの単数または複数の仮想ストレージボリューム、またはそのような物理ストレージボリュームと仮想ストレージボリュームとの組合せ、またはこれらのアレイを含み得る。
【0033】
[0041]ユーザインターフェイス123は、グラフィカルユーザインターフェイス(GUI)124(たとえば、タッチスクリーン、ディスプレイなど)および単数または複数の入力/出力(I/O)デバイス126(たとえば、マウス、キーボード、マイクロフォン、単数または複数のスピーカ、単数または複数のカメラ、単数または複数の生体認証スキャナ、単数または複数の環境センサ、および単数または複数の加速度計など)を含み得る。
【0034】
[0042]不揮発性メモリ128は、たとえば、オペレーティングシステム115および/またはアプリケーション116のコンピュータ命令が、揮発性メモリ122からプロセッサ103によって実行されるように、オペレーティングシステム115、単数または複数のアプリケーション116、およびデータ117を格納する。いくつかの実施形態では、揮発性メモリ122は、メインメモリよりも速い応答時間を提供し得る単数または複数タイプのRAMおよび/またはキャッシュメモリを含み得る。データは、GUI124の入力デバイスを使用して入力され得るか、I/Oデバイス126から受信され得る。コンピューティングデバイス100の様々な要素は、通信バス150を介して通信し得る。
【0035】
[0043]例示されたコンピューティングデバイス100は、単に例示的なクライアントデバイスまたはサーバとして示され、任意のコンピューティング環境またはプロセシング環境によって、本明細書で説明するように、適切なハードウェアおよび/または動作可能なソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットで実装され得る。
【0036】
[0044]プロセッサ103は、単数または複数のプログラム可能なプロセッサによって実装されて、コンピュータプログラムなどの単数または複数の実行可能な命令を実行して、システムの機能を実行することができる。本明細書で使用される場合、「プロセッサ」という用語は、機能、動作、または一連の動作を実行する回路構成を示すものである。機能、動作、または一連の動作は、回路構成にハードコード化され得るか、またはメモリデバイスに保持され、回路構成によって実行される命令によってソフトコード化され得る。プロセッサは、デジタル値を使用して、および/または、アナログ信号を使用して、機能、動作、または動作のシーケンスを実行し得る。
【0037】
[0045]いくつかの実施形態では、プロセッサは、単数または複数の特定用途向け集積回路(ASIC:application specific integrated circuit)、マイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、グラフィック処理ユニット(GPU:graphics processing unit)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、プログラマブルロジックアレイ(PLA:programmable logic array)、マルチコアプロセッサ、または関連するメモリを備えた汎用コンピュータにおいて具体化され得る。
【0038】
[0046]プロセッサ103は、アナログ、デジタル、または混合信号であり得る。いくつかの実施形態では、プロセッサ103は、単数または複数の物理的プロセッサ、または単数または複数の仮想(たとえば、リモートに配置された、またはクラウドコンピューティング環境)プロセッサであり得る。複数のプロセッサコアおよび/または複数のプロセッサを含むプロセッサは、命令の並列同時実行、または、複数のデータの要素に対する1つの命令の並列同時実行のための機能を提供し得る。
【0039】
[0047]通信インターフェイス118は、コンピューティングデバイス100が、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN:Personal Area Network)、またはインターネットなどのコンピュータネットワークに、セルラ接続を含む様々な有線および/またはワイヤレスの接続を介してアクセスできるようにする単数または複数のインターフェイスを含み得る。
【0040】
[0048]説明される実施形態では、コンピューティングデバイス100は、クライアントデバイスのユーザに代わってアプリケーションを実行し得る。たとえば、コンピューティングデバイス100は、ハイパバイザによって管理される単数または複数の仮想マシンを実行し得る。各仮想マシンは、ホストされたデスクトップセッションなど、アプリケーションがユーザまたはクライアントデバイスに代わって実行する実行セッションを提供し得る。コンピューティングデバイス100はまた、ターミナルサービスセッションを実行して、ホストされたデスクトップ環境を提供し得る。コンピューティングデバイス100は、単数または複数のアプリケーションと、単数または複数のデスクトップアプリケーションと、単数または複数のアプリケーションが実行し得る単数または複数のデスクトップセッションとを含むリモートコンピューティング環境へのアクセスを提供し得る。
【0041】
[0049]図3は、透かしに覆われたために単数または複数の目に見える欠陥が生じたコンテンツとともに表示されたウェブページを例示する図である。図3に示すように、4つの透かし310、312、314、319がウェブページのコンテンツに適用されるか、あるいは追加されている。見て分かるように、透かし310、312、314、319はそれぞれ、1行目のテキスト「confidential information」と、1行目の下の2行目のテキスト「Provided to Fuping Zhou」との2行のテキストで構成される。図3にさらに見ることができるように、透かし310は、当該透かし310の一部(たとえば、テキスト「information」および「ing Zhou」)がデータ要素311をオーバレイするような形でコンテンツにレンダリングされている。同様に、透かし312は、当該透かし312の一部(たとえば、テキスト「ion」および「hou」)がデータ要素313をオーバレイするような形でコンテンツにレンダリングされ、透かし314は、当該透かし314の一部(たとえば、テキスト「Co」および「Prov」)がデータ要素315をオーバレイするように、透かし319は、アイコンの一部をオーバレイするような形でコンテンツにレンダリングされている。この例で分かるように、コンテンツにおけるデータ要素をオーバレイする透かし310、312、314、319の一部は、当該透かし310、312、314、319がコンテンツにレンダリングされるときに、データ要素と干渉し、データ要素に目に見える欠陥を生じさせる。したがって、透かしをコンテンツ(たとえば、2つの例を提供するために写真またはウェブページ)に単純に適用すると、当該透かしがコンテンツにレンダリングされるときに、透かしが不明瞭にされる、または、コンテンツにおけるデータ要素と干渉することが理解され得る。
【0042】
[0050]しかしながら、図4図8に関連して以下に説明されるように、本明細書で説明される概念、システム、および技術に従って、コンテンツにおけるデータ要素を不明瞭化する、あるいはデータ要素と干渉する透かしの一部は、マスク化されて、コンテンツが表示されるときに(それ以外の場合は、透かしの下にある)データ要素がはっきりと目に見えるように、コンテンツに透かしがレンダリングされ得る。
【0043】
[0051]図4は、マスク化された補完的な透かしに覆われたコンテンツを有し、目に見える欠陥が生じずに表示されたウェブページを例示する図である。
【0044】
[0052]マスク化透かしとは、コンテンツに透かしが適用されたとき(たとえば、レンダリングされた、またはさもなければ適用されたとき)、その一部(または要素)が目に見えない(たとえば、除去された)透かしを指す。
【0045】
[0053]補完的な透かしは、透かしの一部であり、マスク化透かしとともに見られる(または、ともに用いられる)と、完全な(または、少なくともより完全な)透かしとなる。以下の説明から明らかになる理由により、実施形態では、完全な透かしをもたらすために、(マスク化透かしとともに)単数または複数の補完的な透かしが必要になる場合がある。また、実施形態では、複数の完全な透かしをもたらすために、補完的な透かしを、複数のマスク化透かしとともに使用され得る。
【0046】
[0054]具体的には、図4は、コンテンツにおけるデータ要素に目に見える欠陥を生じさせないように、図3の透かし310、312、314のうちのマスク化された一部を例示する。たとえば、図4の例示的な例では、ウェブページは、(たとえば、図3における透かし310、312、314によって例示されるように)ウェブページの左半分における透かしの3つの実体を含むように形成され得る。
【0047】
[0055]図4に図示されるように、4つのマスク化透かし410、412、414、419aが、ウェブページのコンテンツにレンダリングされている。マスク化透かし410は、図3における透かし310の一部であり、マスク化透かし412は、図3における透かし312の一部であり、マスク化透かし414は、図3における透かし314の一部であり、マスク化透かし419aは、図3における透かし319の一部である。特に、マスク化透かし410は、ウェブページ内のデータ要素411をオーバレイして不明瞭にするような透かしの一部(たとえば、テキスト「information」および「Fuping Zhou」)を含まない。同様に、マスク化透かし412は、ウェブページ内のデータ要素413をオーバレイして不明瞭にするような透かしの一部(たとえば、テキスト「tion」および「hou」)を含まず、マスク化透かし414は、ウェブページ内のデータ要素415をオーバレイして不明瞭にするような透かしの一部(たとえば、テキスト「Conf」および「Prov」)を含まず、マスク化透かし419aは、ウェブページ内のデータ要素(ここでは、ロケット船のアイコンとして例示される)をオーバレイして不明瞭にするような透かしの一部(たとえば、テキスト「ormation」および「ing Zhou」)を含まない。すなわち、マスク化透かし410、412、414、419aは、各々、コンテンツのデータ要素(たとえば、テキストおよび画像)をオーバレイしないような透かしの一部を含む。
【0048】
[0056]しかしながら、マスク化透かしの一部または全部は、コンテンツにおいて空白でない、あるいは空の領域ではないようなコンテンツの一部にレンダリングできることに留意されたい。たとえば、図4に例示されるように、マスク化透かし410とマスク化透かし412の一部とは、それぞれ、空白に当たらないが何らかのタイプの着色または濃淡を有し得るコンテンツの各部にレンダリングされている。また、マスク化透かし414の一部(たとえば、テキスト「ormation」および「Zhou」のパーツ)は、データ要素416の一部をオーバレイするようにレンダリングされている。いくつかの実施形態によれば、これは、コンテンツにおけるデータ要素(たとえば、画像内のデータ要素またはウェブページ内のデータ要素)を構成するものを決定するために使用される基準またはしきい値によるものであり、これについては以下でさらに説明する。
【0049】
[0057]図4にさらに示されるように、いわゆる「補完的な透かし」417、418、419bが、ウェブページ上にレンダリングされている。補完的な透かし417、418、419bは、コンテンツに含まれるデータ要素をどれもオーバレイせず、不明瞭にしないようにコンテンツにレンダリングされている。たとえば、図4に見られるように。補完的な透かし417、418、419bは、データ要素がないコンテンツの領域(いわゆる「空白領域」)にレンダリングされている。
【0050】
[0058]要するに、単数または複数の補完的な透かしを、マスク化透かしとともに(たとえば、組み合わせて)考慮すると、「完全な」透かしが観察されるか、あるいは認識され得るように、当該単数または複数の補完的な透かしをコンテンツに適用することが可能である。実施形態によれば、補完的な透かしは、コンテンツに透かしをレンダリングするときに「マスク化された」(すなわち、目に見えない)透かしの一部(たとえば、レンダリングされたときに、コンテンツにデータ要素をオーバレイした透かしの一部)を含むことができる。この意味において、補完的な透かしは、マスク化透かしを「補完」する。すなわち、マスク化透かしは、単数または複数の補完的な透かしとともに用いられると、完全な透かしを形成する。
【0051】
[0059]図4に見られるように、テキスト「ion」および「hou」を含む補完的な透かし417は、マスク化透かし412を補完する(すなわち、マスク化透かし412および補完的な透かし417を組み合わせて完全な透かし、たとえば、コンテンツにレンダリングされた完全な透かしの実体を形成することができる)。同様に、補完的な透かし418は、テキスト「Information」および「Fuping Zhou」を含み、マスク化透かし410を補完するので、マスク化透かし410と補完的な透かし418とが組み合わされて、完全な透かし(たとえば、コンテンツにレンダリングされた完全な透かしの別の実体)が形成される。
【0052】
[0060]完全な透かしを形成するために、複数の補完的な透かしを、マスク化透かしと組み合わせることができることを理解されたい。すなわち、「マスク化」されてマスク化透かしをもたらす透かしの一部は、セグメント化あるいは分割されることができ、セグメントは、複数の補完的な透かしそれぞれに含まれ得る。また、補完的な透かしが単数または複数の(多数の)マスク化透かしを補完できることにも留意されたい。
【0053】
[0061]図4の例示的な例を続けると、たとえば、2個、3個、4個、または他の適切な個数(N個)といった、完全な透かしの実体のしきい値数(たとえば、事前に設定された透かししきい値)が、コンテンツにレンダリングするように要求されているか、さもなければ必要とされ得る。そのような例では、たとえば、透かしの提供に関連する意図されたセキュリティ機能を保存するように、指定されたしきい値数の完全な透かしの実体がレンダリングされ得る。図4の例では、透かししきい値は、2であり得る。この例の場合、マスク化透かし410と補完的な透かし418とを組み合わせることによって、並びに、マスク化透かし412と補完的な透かし417とを組み合わせることによって、レンダリングされた完全な透かしの2つの実体は、指定された透かししきい値を満たすこととなる。2という指定された透かししきい値は、マスク化透かし410と補完的な透かし418との組合せ、およびマスク化透かし412と補完的な透かし417との組合せによって満たされるので、マスク化透かし414、419aは、完全な透かしの実体を形成するために完全とされる必要はない(たとえば、単数または複数の補完的な透かしで補完する必要はない)ことに留意されたい。一方、図4の例では、仮に透かししきい値が3であった場合には、さらに(すなわち、マスク化透かし410、412を補完することに加えて)マスク化透かし414、419aの少なくとも一方を補完することにより、ともに用いられたときに1つの完全な透かしを与える補完的な透かしから3つの実体が得られる。さらに、仮に透かししきい値が4であった場合には、マスク化透かし414、419aの両方を、補完的な透かしでさらに完全にさせると、完全な透かしをまとめて提供する4つの補完が得られる。
【0054】
[0062]図4でさらに見ることができるように、マスク化透かし414は、その不完全な、またはマスク化された状態で、コンテンツにレンダリングされ得る。さらに、本開示に照らして理解されるように、マスク化透かし410、412、414、419aのうちの任意の2つ、および必ずしもマスク化される必要のない透かし410、412を補完して、コンテンツにレンダリングされる完全な透かしの2つの実体を形成することができるので、2という透かししきい値を満たす。いくつかのそのような例示的な実施形態では、3つのマスク化透かし(すなわち、410、412、414、419aのうちの任意の3つ)は、指定された透かししきい値を満たすように補完され得る。より一般的な意味では、コンテンツに追加された任意の数の透かしを補完して、指定された透かししきい値を満たすことができる。
【0055】
[0063]図4Aは、複数の要素にセグメント化(または分割)された例示的な透かしを図示する。図示されるように、例示的な透かしは、1行目におけるテキスト「WATERMARK」と、1行目の下の2行目におけるテキスト「TEXT」との2行のテキストで構成される。特に、本明細書に開示される特定の実施形態に従って、透かしは複数の要素にセグメント化され、透かし要素が処理されて、透かしがコンテンツにレンダリングされたとき、透かしの一部がコンテンツにおけるデータ要素をオーバレイするか否かを判定する。いくつかのそのような実施形態では、境界ボックスが透かしを囲むように、境界ボックスが透かしに対して生成される。生成された境界ボックスは、透かしの境界(たとえば、境界線)を線引きまたは定義する。たとえば、境界ボックスは、境界ボックスの4つのコーナの座標によって指定され得る。いくつかの実施形態では、透かしのための境界ボックスは、透かしを強く結合するような方式で生成される。すなわち、境界ボックスは、境界ボックス内で、透かしを表現しない画素の数が削減されるか、理想的には最小化されるように生成される。境界ボックスにおいて透かしを表現しない画素の数を減らすと、計算コストが削減される。たとえば、透かしを表現しない画素の数を減らす(または、理想的には最小にする)と、透かしのセグメント化において処理する必要がある「不要な」画素の数が減る。
【0056】
[0064]図4Aの例示的な実施形態に図示されるように、境界ボックス430は、透かしのために生成され得る。1つの実施形態では、透かしを含む境界ボックス430の内側の領域を表現する画素マップが形成され、透かしを要素に適切にセグメント化するために使用され得る。たとえば、そのような1つの実施形態では、境界ボックス430は、その幅(たとえば、x次元)に沿ってセグメント化されて、境界ボックス430内に囲まれた透かしをセグメント化することができる。図4Aの例に見られるように。境界ボックス430は、5つの透かし要素を形成するために、5つの要素にセグメント化される。他の実施形態では、透かしを囲む境界ボックスは、その高さ(たとえば、y次元)に沿ってセグメント化されて、境界ボックス内に囲まれた透かしをセグメント化することができる。いずれの場合も、境界ボックスの画素マップを使用して境界ボックスをセグメント化できる。
【0057】
[0065]実施形態では、透かしは、等しいサイズの要素に分割することができる。たとえば、図4Aに例示される透かしは、幅が400画素であると仮定する。この例の場合、400画素幅の透かしは、5つの要素(5つの透かし要素)にセグメント化され得、各要素は、図4Aに見られるように、幅が80画素である。
【0058】
[0066]実施形態では、透かしをセグメント化する要素の数は、事前に設定(すなわち、一定)され得るか、または可変(すなわち、選択可能)であり得る。1つの実装例では、透かしをセグメント化する要素の数は、可変パラメータを使用して指定され得る。たとえば、この可変パラメータは、許可されたユーザ(システム管理者など)がアクセス可能な構成ファイルで指定され得、ユーザは、所望のレベルのパフォーマンスに基づいてパラメータを変更または調節し得る。いくつかの実装では、この可変パラメータは、現在および/または過去のパフォーマンスのレベルに基づいて(たとえば、プロセッサを介して)自動的に変更され得る。いずれの場合でも、透かしをセグメント化すべき要素の数は、透かしのサイズなどの単数または複数の要因(たとえば、いくつかの例を与えると、透かしにおける画素数、またはテキスト透かしの場合、透かしにおける文字の数、透かしが配置され得る利用可能なスペース(たとえば、領域)の量、コンテンツにおけるデータ要素の密度、および、表示されるべきデータ要素における画素数に対する透かしにおける画素数の比)に基づいて決定できる。
【0059】
[0067]実施形態において、透かしは、サイズが等しくない要素にセグメント化することができる。たとえば、透かしが、幅400画素の場合、透かしは、幅50画素の6つの要素と、幅100画素の1つの要素とに分割できる。1つの実装例において、透かしは、水平スクロールバーおよび/または垂直スクロールバーを有するウィンドウに提示され得る。次に、ユーザは、提供されたスクロールバーを操作して、透かしを分割またはセグメント化する位置および方法を指定できる(したがって、セグメントの数を効果的に選択する)。
【0060】
[0068]図5は、本開示の実施形態に従って、コンテンツにマスク化透かしを形成するために使用することができる例示的なネットワーク化されたコンピュータシステムの選択された構成要素を概略的に例示するブロック図である。より具体的には、図5に例示されるシステムは、ユーザ502が、透かしシステム504のサービスを活用できるようにするものとして理解することができる。たとえば、ユーザ502は、透かしシステム504のサービスを使用して、単数または複数のマスク化透かしをコンテンツにレンダリングすることができる。透かしシステム504のいくつかの実装では、透かしを含むコンテンツが形成されている場合があり、ユーザ502は、透かしシステム504のサービスを使用して、コンテンツ上の単数または複数の透かしを、マスク化透かしとしてレンダリングすることができる。そのような実施形態では、ユーザ502は、ネットワーク506を介して透かしシステム504と通信することができる。図5に示す例示的なネットワーク化されたコンピュータシステムは、単なる例であり、単一のユーザのみを想定していることに留意されたい。しかしながら、図5に示されるネットワーク化されたコンピュータシステムは、本明細書で説明する技術に従って、マスク化透かしを含めるために、マスク化透かしをレンダリングする際、および/または、コンテンツを生成する際に使用するために、任意の数のユーザおよびそれらの関連するデバイスに容易に拡張されると理解されるべきである。たとえば、複数のユーザが、透かしシステム504のサービスを活用することができる。したがって、本明細書に開示される実施形態は、一度に一人のユーザによる透かしシステム504の使用に限定されることを意図されていないことが理解されよう。本明細書に開示される実施形態は、コンテンツにマスク化透かしをレンダリングするため、透かしシステム504の使用に限定されることを意図していないことも理解されるであろう。むしろ、透かしシステム504を使用して、写真におけるコンテンツ、ウェブページにおけるコンテンツ、またはデジタルブックにおけるコンテンツなどのコンテンツに、マスク化透かしを追加して、3つの例を提供できることが、この開示に照らして明らかであろう。
【0061】
[0069]ネットワーク506は、ローカルエリアネットワーク(ホームベースまたはオフィスネットワークなど)、広域ネットワーク(インターネットなど)、ピアツーピアネットワーク(Bluetooth接続など)、または、パブリック、プライベート、またはその両方のいずれかであるそのようなネットワークの組合せであり得る。特定の実施形態では、ネットワーク506に関連する機能の少なくとも一部は、セルラデータネットワークによって提供され、それにより、モバイルコンピューティングデバイスのユーザが、透かしシステム504のサービスを活用することをより容易にする。一般に、本明細書で説明される様々なエンティティおよびリソース間の通信は、Wi-Fiまたはモバイルデータネットワークによって提供されるものなど、有線またはワイヤレスの接続を介して生じ得る。これに関して、ネットワーク506は、図1に関して以前に説明したネットワーク104、104’と実質的に同様である。
【0062】
[0070]図5に例示されるように、ユーザ502は、図5に例示された、または、さもなければ本明細書で説明された、透かしシステム504の構成要素との相互作用を容易にするデバイスへのアクセスを有する。たとえば、特定の実施形態では、ユーザ502は、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、企業クラスのサーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、セルラ電話、スマートフォン、およびセットトップボックスなどのデバイスを含む、様々な適切なコンピューティングデバイスの単数または複数へのアクセスを有する。他の実施形態では、他のデバイスが使用され得る。ユーザ502によって使用される単数または複数のデバイスは、オプションとして、ネットワーク506を介した通信を可能にする有線および/またはワイヤレスの通信アダプタを含む。単数または複数のデバイスはまた、オプションで、触覚キーボード、ディスプレイ、タッチセンスディスプレイ、マイクロフォン、カメラ、および測位サービスなどの入力/出力構成要素を含む。そのような入力/出力構成要素は、ユーザ502が、それ自体のデバイスの動作を制御するだけでなく、透かしシステム504の特定の動作態様を制御することも可能にする。
【0063】
[0071]図5に例示される例示的な実施形態をさらに参照して示すように、透かしシステム504は、単数または複数のマスク化透かしを含むコンテンツの生成を容易にするように構成することができる。いくつかの実施形態では、透かしシステム504はまた、マスク化透かしを有するコンテンツのレンダリングを生じさせるために、コンテンツに含まれる既存の透かしのマスキングを容易にするように構成される。この目的のために、1つの実施形態では、透かしシステム504は、本明細書に開示される特定の機能を実装するように構成される単数または複数のソフトウェアモジュールを含み、オプションで、そのような実装を可能にするように構成されるハードウェアをさらに含む。このハードウェアおよび/またはソフトウェアは、プロセッサ508、メモリ510、オペレーティングシステム512、通信モジュール514、およびデータ格納部516を含み得るが、これらに限定されない。
【0064】
[0072]プロセッサ508は、透かしシステム504の様々な他の構成要素の動作を制御するように設計され得る。プロセッサ508は、シングルコアまたはマルチコアのプロセッサなど、透かしシステム504での使用に適した任意の処理ユニットを含み得る。一般に、プロセッサ508は、任意の適切な専用または汎用コンピュータ、コンピューティングエンティティ、または様々なコンピュータハードウェアまたはファームウェアを含むコンピューティングまたは処理デバイスを含むことができ、任意の適用可能なコンピュータ読み取り可能な記憶媒体に格納された、プログラム命令などの命令を実行するように構成され得る。たとえば、プロセッサ508は、マイクロプロセッサと、中央処理装置(CPU)と、マイクロコントローラと、デジタル信号プロセッサ(DSP)と、特定用途向け集積回路(ASIC)と、フィールドプログラマブルゲートアレイ(FPGA)と、複雑命令セットコンピュータ(CICS:Complex Instruction Set Computer)と、縮小命令セットコンピュータ(RISC:Reduced Instruction Set Computer)と、マルチコアと、または、プログラム命令を解釈および/または実行するように、および/または、メモリからロードされた、またはハードウェアにおいて直接的に実装されたに関わらず、データを処理するように構成された他の任意のデジタルまたはアナログの回路構成とを含み得る。図5では、単一のプロセッサとして例示されているが、プロセッサ508は、本開示において説明される任意の数の動作のパフォーマンスを、個別にまたは集合的に、実行または指示するように構成された、任意の数のプロセッサおよび/またはプロセッサコアを含み得る。これに関して、プロセッサ508は、図2のコンピューティングデバイス100に関して以前に説明されたプロセッサ103と実質的に同様である。
【0065】
[0073]メモリ510は、これに記憶されたコンピュータ実行可能命令またはデータ構造を伝送または有するように構成されたコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ508などの汎用または専用のコンピュータによってアクセスされ得る任意の利用可能な媒体を含み得る。例として、限定ではなく、そのようなコンピュータ読み取り可能な記憶媒体は、ランダムアクセスメモリ(RAM:Random Access Memory)と、ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)と、同期ダイナミックランダムアクセスメモリ(SDRAM:Synchronized Dynamic Random Access Memory)と、スタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)と、不揮発性メモリ(NVM:non-volatile memory)とを含むか、あるいは、コンピュータ実行可能命令またはデータ構造の形態で特定のプログラムコードを実行または保存するために使用され得、汎用または専用のコンピュータによってアクセスされ得る他の任意の適切な記憶媒体とを含む不揮発性のコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれ得る。これに関して、メモリ510は、図2のコンピューティングデバイス100に関して以前に説明した揮発性メモリ122と実質的に同様である。
【0066】
[0074]オペレーティングシステム512は、UNIX(登録商標)、LINUX(登録商標)、MICROSOFT(登録商標)WINDOWS(登録商標)(ワシントン州レドモンドのMicrosoft社)、GOOGLE(登録商標)ANDROID(商標)(カリフォルニア州マウンテンビューのGoogle社)、APPLE(登録商標)iOS(カリフォルニア州クパチーノのApple社)、またはAPPLE(登録商標)OS X(登録商標)(カリフォルニア州クパチーノのApple社)などの任意の適切なオペレーティングシステムを備え得る。この開示に照らして理解されるように、本明細書で提供される技術は、透かしシステム504と併せて提供される特定のオペレーティングシステムに関係なく実施でき、したがって、任意の適切な既存のまたはその後開発されるプラットフォームを使用して実施することもできる。これに関して、オペレーティングシステム512は、図2のコンピューティングデバイス100に関して以前に説明したオペレーティングシステム115と実質的に同様である。
【0067】
[0075]通信モジュール514は、たとえば、ネットワーク506などの単数または複数のネットワークを介して、本明細書で説明する単数または複数の他の構成要素への有線またはワイヤレスの通信を可能にする任意の適切なネットワークチップまたはチップセットとすることができる。通信モジュール514は、バスまたは相互接続を介してデバイス内通信を提供するように構成することもできる。これに関して、通信モジュール514は、図2のコンピューティングデバイス100に関して以前に説明した通信インターフェイス118と実質的に同様である。
【0068】
[0076]データ格納部516は、データの短期または長期の記憶のために構成された任意のタイプのコンピュータ読み取り可能な記憶媒体を含み得る。例として、限定ではなく、そのようなコンピュータ読み取り可能な記憶媒体は、ハードドライブ、ソリッドステートドライブ、読取専用メモリ(ROM:Read-Only Memory)、電気的消去可能プログラム可能読取専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、コンパクトディスク読取専用メモリ(CD-ROM)、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリデバイス(たとえば、ソリッドステートメモリデバイス)、不揮発性メモリ(NVM)、または、本明細書で開示されたような様々な実施形態を実施するために、コンピュータ読み取り可能およびコンピュータ実行可能な命令、ソフトウェアまたはデータ構造の形態で、特定のプログラムコードを実行または記憶するために使用され得、汎用または専用コンピュータによってアクセスされ得る、メモリ510と連携して上記で提供されたものを含む他の任意の記憶媒体を含み得る。上記の組合せもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれ得る。データ格納部516は、透かしシステム504上に提供され得るか、または、透かしシステム504とは別個にまたは遠隔的に提供され得る。これに関して、データ格納部516は、図2のコンピューティングデバイス100に関して以前に説明した不揮発性メモリ128と実質的に同様である。
【0069】
[0077]図5に例示される例示的な実施形態を再び参照すると、透かしシステム504は、透かしマスクモジュール520およびマスク化透かし補完モジュール522を含む透かしアプリケーション518をさらに含む。透かしアプリケーション518は、一般に、透かしマスクモジュール520およびマスク化透かし補完モジュール522のサービスおよび機能を利用して、透かしのマスキングおよびコンテンツ上のマスク化透かしのレンダリングの全体的な制御を提供するように構成される。透かしアプリケーションは、透かしマスクモジュール520およびマスク化透かし補完モジュール522のサービスおよび機能を利用して、画像、ディスプレイ、ブラウザ、ユーザインターフェイス、印刷ドキュメントなどにコンテンツおよび透かしをレンダリングし得る。
【0070】
[0078]特に、いくつかの実施形態によれば、透かしアプリケーション518は、たとえば、コンテンツがディスプレイデバイス上に表示のためにレンダリングされるとき、またはその場合に、コンテンツにレンダリングされる透かしの存在を判定する。透かしをレンダリングするために、透かしアプリケーション518は、透かしを複数の要素にセグメント化し、透かしを要素ごとにレンダリングすることができる。そのようないくつかの実施形態では、透かしアプリケーション518は、透かしマスクモジュール520を利用して、各透かし要素をレンダリングすることができる。
【0071】
[0079]以下でさらに説明するように、1つの実施形態によれば、透かしマスクモジュール520は、透かし要素をコンテンツにレンダリングする(たとえば、透かし要素が、コンテンツ内のデータをオーバレイするようにする)か、コンテンツ内のデータ要素が透かし要素をオーバレイするように透かしをレンダリングすることができる。データ要素が、透かし要素をオーバレイする場合、透かし要素がマスクされることにより、マスク化透かしとして、透かしはコンテンツにレンダリングされることとなる。
【0072】
[0080]いくつかの実施形態では、透かしアプリケーション518は、コンテンツに(その後、画像、ディスプレイ、またはブラウザ、ユーザインターフェイス、印刷されたドキュメントなどの上に)レンダリングされた任意の完全な透かし(マスクされていない任意の透かし)を含むマスク化透かしの実体が、透かししきい値を満たすかを確認するように構成される。たとえば、透かしが、コンテンツにマスク化透かしとしてレンダリングされる場合、透かしの意図された機能(完全な透かし)が保持されないことがある。つまり、レンダリングされるマスク化透かしは、完全な透かしのために意図された機能を果たすのに十分な量の情報を伝えない場合がある。コンテンツにレンダリングする必要のある完全な透かし実体の数を定義する透かししきい値は、コンテンツにマスク化透かしをレンダリングすることにより、コンテンツに透かしを入れるという意図された機能が失われないことを保証する形態であり得る。そのような実施形態では、透かしアプリケーション518は、レンダリングされた透かし要素(レンダリングされたマスク化透かし、およびレンダリングされた完全な透かしの一部としてレンダリングされた透かし要素)が、透かししきい値を満たすか否かを判定するように確認する。レンダリングされた透かし要素が、いくつかの完全な透かしの実体に結合さもなければ累積して、透かししきい値を満たすことができる場合、透かしアプリケーション518は、透かし要素のレンダリングが、許容可能、さもなければ十分であると結論付けることができる。そうではなく、レンダリングされた透かし要素が、透かししきい値を満たすためにいくつかの完全な透かしの実体に累積しない場合、透かしアプリケーション518は、透かし要素のレンダリングは十分ではないと結論付けることができる。レンダリングされた透かし要素が、透かししきい値を満たすために、いくつかの完全な透かしの実体に累積しない場合、透かしアプリケーション518は、マスク化透かし補完モジュール522を利用して、マスク化透かし要素(たとえば、透かしのレンダリング中にマスク化透かしの一部)をレンダリングすることができる。以下でさらに説明するように、1つの実施形態によれば、マスク化透かし補完モジュール522は、透かししきい値を満たすために、必要に応じて、コンテンツにマスク化透かし要素をレンダリングすることができる。
【0073】
[0081]実施形態では、透かししきい値は、可変パラメータを使用して指定され得る。たとえば、この可変パラメータは、(システム管理者のような)許可されたユーザがアクセス可能な構成ファイルで指定され得、ユーザは、所望のレベルのパフォーマンスに基づいてパラメータを調整または調節し得る。いくつかの実装では、この調整可能なパラメータは、1つの例のみを提供すると、データ要素が存在しないコンテンツ内のスペースの量などの単数または複数の要因に基づいて(たとえば、プロセッサを介して)自動的に調整され得る。透かしをセグメント化する要素の数を決定することに関して以前に説明した単数または複数の要因などの他の要因も使用され得る。
【0074】
[0082]透かしマスクモジュール520は、透かし要素がレンダリングされるべきコンテンツ内の位置におけるデータ要素の存在を検出するように構成される。たとえば、実装例では、透かしマスクモジュール520は、コンテンツ内の色の分布(たとえば、色ヒストグラム)に基づいてコンテンツ内のデータ要素を検出することができる。他の実装では、透かしマスクモジュール520は、当業者に明らかなように、コンテンツ内のデータ要素を検出するために、いくつかの例を与えると、画素強度(グレー強度または色強度)、画素の輝度、およびエッジ検出のような他の技術を適用し得る。透かし要素がレンダリングされる位置でデータ要素が検出された場合、透かしマスクモジュール520は、データ要素が、透かし要素をオーバレイするように、コンテンツに透かし要素をレンダリングする。そうではなく、透かし要素がレンダリングされる位置でデータ要素が検出された場合、透かしマスクモジュール520は、透かし要素をコンテンツにレンダリングする(たとえば、透かし要素は、コンテンツ内のデータをオーバレイする)。透かしマスクモジュール520は、図7に関して以下でさらに説明される。
【0075】
[0083]マスク化透かし補完モジュール522は、データ要素の存在のためにレンダリングされなかったマスク化透かしの一部をレンダリングすることによって、レンダリングされたマスク化透かしを補完するように構成される。そうするために、1つの実施形態に従って、マスク化透かし補完モジュール522は、レンダリングする必要がある透かし要素を、透かし要素の編成リストに編成する。例として、透かしが、透かし要素A、B、C、D、E、Fで構成されていると仮定する。また、コンテンツにレンダリングされた第1の透かしの実体が、透かし要素A、B、Cを有する第1のマスク化透かしであり、コンテンツにレンダリングされた第2の透かしの実体が、透かし要素E、Fを有する第2のマスク化透かしであると仮定する。つまり、透かしの2つの実体をレンダリングする際に、透かし要素D、E、Fが、第1のマスク化透かしにおいてマスクされ(データ要素でオーバレイされ)、透かし要素A、B、C、Dが、第2のマスク化透かしにおいてマスクされた。この例では、マスク化透かし補完モジュール512は、透かし要素D、E、Fを、第1のリストに編成し、透かし要素A、B、C、Dを、第2のリストに編成することができる。第1のリストに含まれる透かし要素D、E、Fは、事実上1つの透かし要素になり、第2のリストに含まれる透かし要素A、B、C、Dは、事実上別の透かし要素になる。ここで、透かし要素D、E、Fからなる第1のリストをともにレンダリングして、第1のマスク化透かしを補完する(たとえば、レンダリングされた第1のマスク化透かしは、レンダリングされた透かし要素D、E、Fによって補完された場合、完全な透かしの第1の実体を形成する)ことができ、透かし要素からなる第2のリストをともにレンダリングして、第2のマスク化透かしを補完する(たとえば、レンダリングされた第2のマスク化透かしは、レンダリングされた透かし要素A、B、C、Dによって補完された場合、完全な透かしの第2の実体を形成する)ことができる。次に、マスク化透かし補完モジュール522は、必要な透かし要素の最長のリストから始めて、データ要素を含まず、リストに透かし要素をレンダリングするのに十分大きな領域がコンテンツにあるか否かを判定する。コンテンツにそのような領域が見つかった場合、マスク化透かし補完モジュール522は、見つかった領域のリストに、透かし要素をレンダリングする。レンダリングされた透かし要素は、補完的な透かしと呼ばれる。そうではなく、そのような領域がコンテンツに見つからない場合、マスク化透かし補完モジュール522は、リスト内の透かし要素を、より小さな要素に分割し(たとえば、リスト内の実質的に1つの透かし要素を、複数のより小さな透かし要素に分割し)、より小さな透かし要素をレンダリングして、リスト内の透かし要素を効果的にレンダリングするように試みる。マスク化透かし補完モジュール522は、指定された透かししきい値が満たされるまで、または必要な透かし要素のすべてのリストが処理されるまで、必要な透かし要素の次のリスト(たとえば、必要な透かし要素の次に大きなリスト)に対してこの処理を繰り返す。マスク化透かし補完モジュール522については、図8に関して以下でさらに説明する。
【0076】
[0084]様々な実施形態では、本開示の範囲から逸脱することなく、追加の構成要素または例示された構成要素のサブセットを使用することができる。たとえば、他の実施形態は、透かしマスクモジュールおよびマスク化透かし補完モジュールを含む透かしアプリケーションの様々な機能を、より少ないモジュール(たとえば、1つまたは2つ)またはより多くのモジュール(たとえば、4つまたは5つ、またはそれ以上)に統合し得る。さらに、透かしアプリケーションの様々な構成要素が、追加のマシンに分散されている可能性があることにさらに留意されたい。いくつかの場合には、透かしマスクモジュールおよび/またはマスク化透かし補完モジュールは、ローカル実行のためにサーバコンピューティングシステムからユーザデバイスにダウンロードされ得る。いくつかの場合には、透かしマスクモジュールおよび/またはマスク化透かし補完モジュールによって提供される機能は、ユーザデバイスに通信可能に結合されたサーバコンピューティングシステム上で提供され得る。より一般的な意味では、本開示に照らして理解されるように、本明細書で提供される機能構成要素の統合および分散の程度は、実施形態ごとに大きく異なり得る。
【0077】
[0085]本明細書で説明される実施形態は、ハードウェア、ソフトウェア、ファームウェア、または専用プロセッサの様々な形態で実施することができる。たとえば、1つの実施形態では、不揮発性のコンピュータ読み取り可能な媒体は、単数または複数のプロセッサによって実行されると、本明細書で説明する透かしシステム504の態様を実施させる、その上に符号化された命令を含む。命令は、C、C++、オブジェクト指向C、Java、JavaScript、Visual Basic .NET、BASIC、Scalaのような任意の適切なプログラミング言語を使用して、あるいはカスタムまたは独自の命令セットを使用して符号化できる。そのような命令は、メモリデバイス上で有体的に具体化され、任意の適切なアーキテクチャを有するコンピュータによって実行され得る、単数または複数のコンピュータソフトウェアアプリケーションまたはアプレットの形態で提供され得る。1つの実施形態では、システムは、所与のウェブサイト上でホストされ、たとえば、本明細書で説明されたマスク化透かしおよび/または補完的な透かしをレンダリングするために、たとえばJavaScriptまたは別の適切なブラウザベースの技術を使用して実施され得る。
【0078】
[0086]本明細書に開示される機能は、オプションで、いくつかの例を挙げると、透かし入れアプリケーション、画像共有アプリケーション、写真共有アプリケーション、ウェブオーサリングアプリケーション、およびウェブオーサリングシステムを含む、様々な異なるソフトウェアアプリケーションおよびシステムに組み込むことができる。本明細書で開示される機能は、追加的または代替的に、別個のソフトウェアアプリケーションおよびシステムによって提供されるサービスを活用することができる。たとえば、1つの実施形態では、本明細書で開示される機能は、Microsoft(登録商標)Azure(登録商標)、AWS(登録商標)、Google Cloud(商標)、または任意の適切なクラウド環境のようなクラウド環境において実施され得る。追加的または代替的に、本明細書で開示される機能は、たとえば、図5Aに関連して説明されるようなIaaSフレームワークを使用して実施される。本明細書に開示されるコンピュータソフトウェアアプリケーションは、多数の異なるモジュール、サブモジュール、または別個の機能の他の構成要素を含み得、さらに他の構成要素およびサービスに情報を提供し、またはさらに他の構成要素およびサービスから情報を受信することができる。これらのモジュールは、たとえば、表示画面、タッチセンサ面、聴覚インターフェイス、デジタルカメラ、または他の適切な入力/出力デバイスなどの入力/出力デバイスと通信するために使用できる。例示に反映されていない他の構成要素および機能は、この開示に照らして明らかであり、本開示は、いかなる特定のハードウェアまたはソフトウェア構成に限定されることも意図されていないことが理解されよう。したがって、他の実施形態では、図5に例示される構成要素は、追加の、より少ない、または代替のサブ構成要素を含み得る。さらに、いくつかの場合には、図5に例示されているモジュールおよび構成要素の単数または複数は、ローカル実行のために、サーバコンピューティングシステムからユーザデバイスにダウンロードされ得る。
【0079】
[0087]代替実施形態では、本明細書で開示されるコンピュータおよびモジュールは、フィールドプログラマブルゲートアレイ(FPGA)などのゲートレベルロジックを含むハードウェアで、または代替として、特定用途向け集積回路(ASIC)などの専用の半導体で実装することができる。さらに他の実施形態は、データを受信および出力するためのいくつかの入力/出力ポート、および本明細書に開示される様々な機能を実行するためのいくつかの組込ルーチンを有するマイクロコントローラで実装され得る。これに関して、ハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを使用できること、および本開示が任意の特定のシステムアーキテクチャに限定されることを意図していないことは明らかであろう。
【0080】
[0088]ここで図5Aを参照して示すように、クラウド環境、クラウドコンピューティング、またはクラウドネットワークと呼ばれ得るクラウドコンピューティング環境550が示されている。クラウドコンピューティング環境550は、共有コンピューティングサービスおよび/またはリソースの供給を、複数のユーザまたはテナントに提供することができる。たとえば、共有リソースおよびサービスは、ネットワーク、ネットワーク帯域幅、サーバ、プロセシング、メモリ、ストレージ、アプリケーション、仮想マシン、データベース、ソフトウェア、ハードウェア、分析、およびインテリジェンスを含むことができるが、これらに限定されない。
【0081】
[0089]クラウドコンピューティング環境550では、(以前に説明したような)単数または複数のクライアント102a~102nは、クラウドネットワーク552と通信している。クラウドネットワーク552は、バックエンドプラットフォーム、たとえば、サーバ、ストレージ、サーバファーム、またはデータセンタを含み得る。ユーザまたはクライアント102a~102nは、単一の組織/テナントまたは複数の組織/テナントに相当することができる。より具体的には、1つの実装例では、クラウドコンピューティング環境550は、単一の組織(たとえば、企業クラウド)にサービスを提供するプライベートクラウドを提供し得る。別の例では、クラウドコンピューティング環境550は、複数の組織/テナントにサービスを提供するコミュニティまたはパブリッククラウドを提供し得る。
【0082】
[0090]いくつかの実施形態では、ゲートウェイ機器またはサービスを利用して、クラウドコンピューティングリソースおよび仮想セッションへのアクセスを提供し得る。例として、Citrix Systems社によって提供されるCitrix Gatewayが、業務またはパブリッククラウドに展開され、仮想的なSaaSおよびWebアプリケーションへの安全なアクセスおよびシングルサインオンをユーザに提供し得る。さらに、ユーザをウェブの脅威から保護するために、Citrix Secure Web Gatewayなどのゲートウェイが使用され得る。Citrix Secure Web Gatewayは、クラウドベースのサービスおよびローカルキャッシュを使用して、URLの評判およびカテゴリを確認する。
【0083】
[0091]さらに別の実施形態では、クラウドコンピューティング環境550は、パブリッククラウドとプライベートクラウドとの組合せであるハイブリッドクラウドを提供し得る。パブリッククラウドは、クライアント102a~102nまたは企業/テナントへのサードパーティによって管理されるパブリックサーバを含み得る。サーバは、地理的に離れた場所などのオフサイトに配置され得る。
【0084】
[0092]クラウドコンピューティング環境550は、それぞれの環境内の異なる要求に応じて動的に割り当てられ、再割り当てされる異なる物理的および仮想的なリソースを有するマルチテナント環境またはマルチテナントモデルを通じて、クライアント102a~102nを介して複数のユーザにサービスを提供するリソースプーリングを提供できる。マルチテナント環境は、複数のユーザにサービスするために、ソフトウェアの単一のインスタンス、アプリケーション、またはソフトウェアアプリケーションを提供することができる。いくつかの実施形態では、クラウドコンピューティング環境550は、オンデマンドセルフサービスを提供して、複数のクライアント102a~102nのためにネットワーク全体にわたってコンピューティング機能(たとえば、サーバ時間、ネットワークストレージ)を一方的にプロビジョニングすることができる。例として、プロビジョニングサービスは、Citrix Provisioning Services(Citrix PVS)などのシステムを通じて提供され得る。Citrix PVSは、共有のデスクトップ画像を介して、複数の仮想デスクトップエンドポイントにパッチ、アップデート、および他の構成情報を配信するソフトウェアストリーミング技術である。クラウドコンピューティング環境550は、単数または複数のクライアント102からの異なる要求に応じて、動的にスケールアウトまたはスケールする弾性を提供することができる。いくつかの実施形態では、クラウドコンピューティング環境550は、提供された共有サービスおよびリソースに対応するレポートを監視、制御および/または生成する監視サービスを含むかまたは提供することができる。
【0085】
[0093]いくつかの実施形態では、クラウドコンピューティング環境550は、たとえば、ソフトウェア・アズ・ア・サービス(SaaS:Software as a service)554、プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service)556、インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service)558、およびデスクトップ・アズ・ア・サービス(Daas:Desktop as a Service)560のような異なるタイプのクラウドコンピューティングサービスのクラウドベースの供給を提供し得る。IaaSは、指定された期間中に必要なインフラストラクチャリソースの使用をレンタルするユーザを指し得る。IaaSプロバイダは、大規模なプールからストレージ、ネットワーキング、サーバ、または仮想化リソースを提供し、ユーザは、必要に応じてより多くのリソースにアクセスすることで、迅速にスケールアップできる。IaaSの例は、ワシントン州シアトルのAmazon社によって提供されるAMAZON WEB SERVICES、テキサス州サンアントニオのRackspace US社によって提供されるRACKSPACE CLOUD、カリフォルニア州マウンテンビューのGoogle社によって提供されるGoogle Compute Engine、またはカリフォルニア州サンタバーバラのRightScale社によって提供されるRIGHTSCALEを含む。
【0086】
[0094]PaaSプロバイダは、たとえば、ストレージ、ネットワーキング、サーバ、または仮想化、並びに、たとえば、オペレーティングシステム、ミドルウェア、またはランタイムリソースなどの追加のリソースを含む、IaaSによって提供される機能を提供し得る。PaaSの例は、ワシントン州レドモンドのMicrosoft社によって提供されるWINDOWS AZURE、Google社によって提供されるGoogle App Engine、およびカリフォルニア州サンフランシスコのHeroku社によって提供されるHEROKUを含む。
【0087】
[0095]SaaSプロバイダは、ストレージ、ネットワーキング、サーバ、仮想化、オペレーティングシステム、ミドルウェア、またはランタイムリソースを含む、PaaSが提供するリソースを提供し得る。いくつかの実施形態では、SaaSプロバイダは、たとえば、データおよびアプリケーションリソースを含む追加のリソースを提供し得る。SaaSの例は、Google社によって提供されるGOOGLE APPS、カリフォルニア州サンフランシスコのSalesforce.com社によって提供されるSALESFORCE、またはMicrosoft社によって提供されるOFFICE365を含む。SaaSの例はまた、たとえば、Citrix SystemsからのCitrix ShareFile、カリフォルニア州サンフランシスコのDropbox社によって提供されるDROPBOX、Microsoft社によって提供されるMicrosoft SKYDRIVE、Google社によって提供されるGoogle Drive、またはカリフォルニア州クパチーノのApple社によって提供されるApple ICLOUDのようなデータストレージプロバイダを含み得る。
【0088】
[0096]SaaSと同様に、DaaS(ホストされたデスクトップサービスとしても知られている)は、仮想デスクトップセッションが通常、仮想デスクトップで使用されるアプリとともにクラウドサービスとして供給される仮想デスクトップインフラストラクチャ(VDI)の形態である。Citrix SystemからのCitrix Cloudは、Daasデリバリプラットフォームの一例である。DaaSデリバリプラットフォームは、たとえば、ワシントン州レドモンドのMicrosoft社からのAZURE CLOUD(ここでは「Azure」)、またはワシントン州シアトルのAmazon.com社によって提供されるAMAZON WEB SERVICES(ここでは「AWS」)のようなパブリック・クラウド・コンピューティング・インフラストラクチャへホストされ得る。Citrix Cloudの場合、Citrix Workspaceアプリは、アプリ、ファイル、デスクトップを(オンプレミスでもクラウドでも)統合し、統一された体験を提供するための単一エントリポイントとして使用され得る。
【0089】
[0097]図6は、本開示の実施形態に従って、マスク化された視覚的な透かしをレンダリングするための例示的な処理600を例示するフロー図である。例示的な処理600、並びに以下でさらに説明される例示的な処理700、800に例示される動作、機能、またはアクションは、いくつかの実施形態では、図5の透かしアプリケーション518の様々な構成要素によって実行され得る。例示的な処理600、および例示的な処理700、800のそれぞれのブロックに説明されている動作、機能、またはアクションは、図5の透かしシステム504のメモリ510および/またはデータ格納部516などのコンピュータ読み取り可能媒体に、コンピュータ実行可能命令として格納され得る。
【0090】
[0098]この開示に照らしてさらに理解されるように、本明細書で開示されるこの処理および他の処理および方法について、処理および方法で実行される機能は、異なる順序で実施され得る。追加的または代替的に、2つ以上の動作は、同時に、または、さもなければ、重複する同時方式で実行され得る。さらに、概説されたアクションおよび動作は例としてのみ提供され、アクションおよび動作のいくつかはオプションであり、より少ないアクションおよび動作に組み合わされるか、または開示された実施形態の本質を損なうことなく追加のアクションおよび動作に拡張され得る。
【0091】
[0099]図6を参照して示すように、処理600の動作は、たとえば、プロセッサ508などのプロセッサ上で実行する透かしアプリケーション(透かしアプリケーション518など)によって実行される。動作602において、コンテンツ(たとえば、画像)上にレンダリングされる必要がある透かしが特定される。たとえば、いくつか例を与えると、透かし自体、透かしのサイズ、および透かしの向きなど、透かしに関するデータと、レンダリングする透かしの実体の数と、透かしの実体をレンダリングするコンテンツ内の位置とが、透かし定義ファイルにおいて提供され得る。動作604において、特定された透かしは、必要に応じて透かしをマスキングすることによってコンテンツにレンダリングされる。実装例では、透かしマスクモジュール520を利用して、コンテンツに透かしをレンダリングすることができる。動作606において、レンダリングされたマスク化透かしを含む、レンダリングされた透かしの実体が、指定された透かししきい値を満たす(すなわち、少なくとも、生成および/またはレンダリングされる完全な透かしのしきい値数である)か否かを判定するための確認が行われる。透かししきい値が満たされる場合、動作608において、レンダリングされた透かしの実体が十分であると結論付けられる。そうではなく、透かししきい値が満たされない場合、動作610において、レンダリングされたマスク化透かしは、透かししきい値を満たす試みで補完される。実装例では、マスク化透かし補完モジュール522を利用して、マスク化透かしが補完され得る。
【0092】
[00100]図7は、本開示の実施形態に従って、必要に応じて透かしをマスキングすることによって透かしをレンダリングするための例示的な処理700を例示するフロー図である。処理700の動作は、マスク化透かし補完モジュール522によって実行される。動作702において、コンテンツおよびコンテンツ内に適用された透かしが読み取られる。たとえば、例示的な実施形態では、コンテンツ(たとえば、画像)を読み取ることにより、データ要素およびコンテンツ内のデータ要素の位置を検出することができ、透かしを読み取ることにより、透かしのサイズまたは複数のサイズと、コンテンツ内の透かしの位置とを決定することができる。動作704において、すべての透かしがレンダリングのために処理されたか否かを判定するための確認が行われる。すべての透かしが処理された場合、動作706において、透かしの処理が完了する。そうではなく、すべての透かしが、すべて処理されている訳ではない場合、動作708において、レンダリングのために処理する透かしが特定される。特定された透かしは、現在の透かし(処理中の現在の透かし)と呼ばれる。動作710において、現在の透かしが、複数の透かし要素にセグメント化される。
[00101]動作712において、現在の透かしのすべての透かし要素が処理されたか否かを判定するための確認が行われる。現在の透かしのすべての透かし要素が処理された場合、動作704において、すべての透かしがレンダリングのために処理されたか否かを判定するための確認が行われ、処理が続行する。そうではなく、現在の透かしのすべての透かし要素が処理されている訳ではない場合、動作714において、処理する透かし要素が特定される。特定された透かし要素は、現在の透かし要素であり、現在の透かし要素(処理中の現在の透かし)と呼ばれる。
【0093】
[00102]動作716において、現在の透かし要素がレンダリングされるコンテンツ内の位置(たとえば、画像内の位置)にデータ要素が存在するか否かを判定するための確認が行われる。現在の透かし要素がレンダリングされる位置でデータ要素が検出された場合、動作718において、データ要素が現在の透かし要素をオーバレイするように、現在の透かし要素がその位置にレンダリングされる。そうではなく、現在の透かし要素がレンダリングされる位置でデータ要素が検出されない場合、動作720において、現在の透かし要素が、コンテンツをオーバレイするように、現在の透かし要素がその位置にレンダリングされる(たとえば、現在の透かし要素は、データ要素またはデータ要素の一部をオーバレイする)。いずれの場合も、現在の透かし要素の処理に続いて、動作712において、現在の透かしのすべての透かし要素が処理されたか否かを判定するための確認が行われ、処理が続行する。
【0094】
[00103]図8は、本開示の実施形態に従って、マスク化透かしを補完するための例示的な処理800を例示するフロー図である。処理800の動作は、マスク化透かし補完モジュール522によって実行される。動作802において、指定された透かししきい値が満たされているか否かを判定するための確認が行われる。特に、レンダリングされたマスク化透かし、および他のレンダリングされた完全な透かしと組み合わされたときに、指定された透かししきい値を満たすために十分に補完的な透かしがコンテンツにレンダリングされているか否かを判定するための確認が行われる。透かししきい値が満たされる場合、レンダリングされた補完的な透かしは十分であり、動作804において、処理は完了する。そうではなく、透かししきい値が満たされない場合、動作806において、必要な透かし要素(たとえば、データ要素の存在のためにレンダリングされなかったが、レンダリングされたマスク化透かし要素)が、単数または複数の編成リストに編成される。ここで、各リストは、特定のレンダリングされたマスク化透かしを補完する(つまり、完全化する)ために必要な透かし要素を含む。したがって、たとえば、2つのレンダリングされたマスク化透かしの場合、必要な透かしの2つの編成リストがある。
【0095】
[00104]動作808において、最長のリスト内の透かし要素をレンダリングするために必要なコンテンツ領域(たとえば、画像領域)のサイズが計算される。この例の場合、透かし要素のリストは、最長のリストで始まって順に処理される。つまり、最長のリストにおける透かし要素を最初にレンダリングする試みが行われる。しかしながら、透かし要素のリストは、任意の順序で処理されることに留意されたい。たとえば、他の実施形態では、透かし要素のリストは、最短のリストで始まって、または任意の順序で処理され得る。処理するために残っている最長のリストは、現在のリスト(処理中の透かし要素の現在のリスト)と呼ばれる。
【0096】
[00105]動作810において、現在のリストに透かし要素をレンダリングするのに十分な空白領域がコンテンツにあるか否かを判定するための確認が行われる。1つの実施形態では、コンテンツ内のデータ要素を検出するために使用されるのと同じまたは類似の技術を使用して、現在のリスト内の透かし要素をレンダリングするのに十分な空白領域がコンテンツ内にあるか否かを判定することができる。コンテンツ内にそのような空白領域が見つかった場合、動作812において、現在のリスト内の透かし要素が、コンテンツのうちの特定された空白領域に、補完的な透かしとしてレンダリングされる。次に、動作802において、指定された透かししきい値が満たされているか否かを判定するための確認が行われ、処理が続行する。ここでは、レンダリングされたマスク化透かしと、他のレンダリングされた完全な透かしとを組み合わせたときに、レンダリングされたばかりの補完的な透かしが、指定された透かししきい値を満たすのに十分か否かを判定するための確認が行われる。
【0097】
[00106]そうではなく、現在のリストにおける透かし要素をレンダリングするのに十分な空白領域がコンテンツに見つからない場合、動作814において、現在のリストを、複数のより小さなリストに分割できるか否かを判定するための確認が行われる。ここでは、現在のリストにおける透かし要素をともにレンダリングするために必要な空白領域(たとえば、単一の要素)が見つからなかったため(動作810)、これらの透かし要素を、コンテンツの1つの領域にまとめるのではなく、コンテンツ内の個別の領域における小さな領域片にレンダリングする試みが行われる。リストをどれだけ短く(小さく)できるか、リストを何回分割できるかには制限があり得ることに留意されたい。たとえば、この制限は、許可されたユーザ(システム管理者など)にアクセス可能な構成ファイルで指定でき、ユーザは、所望のレベルのパフォーマンスに基づいて、制限を変更または調節し得る。
【0098】
[00107]現在のリストが分割できる場合、動作816において、現在のリストは、複数のより小さなリストに分割される。現在のリストを分割するときに、現在のリスト内の個々の透かし要素を保持(保存)する必要がないことに留意されたい。つまり、現在のリストは、現在のリスト内の個々の透かし要素の特性に関係なく、複数の小さなリストに分割できる。次に、動作808において、最長のリスト内の透かし要素をレンダリングするために必要な領域のサイズが計算され、処理が続行する。この場合、最長のリストは、現在のリストを分割することによって作成された複数のより小さなリストの中で最長のものである(動作816)。
【0099】
[00108]そうではなく、現在のリストをさらに分割できない(たとえば、現在のリストが事前に設定された回数分割されているか、または、現在のリストの長さは、現在のリストを分割すると、長さにおいて事前に設定された制限よりも短い、より小さなリストを作成する)場合、動作818において、もしも可能であれば、透かし要素の次に長いリストが特定され、処理は続行する。ここで、現在のリストは、コンテンツにレンダリングできないため、小さな領域片でも(動作814)、透かしのしきい値を満たすために、次のリスト(たとえば、次に長いリスト)における透かし要素をレンダリングする試みが行われる。しかしながら、必要な透かし要素のすべてのリストが処理され、それ以上処理するリストがない場合もあり得る。この場合の結果は、指定された透かししきい値を満たせないことであり、この結果を通知するためにエラー通知が生成され得る。
【0100】
[00109]様々な実施形態の説明では、上記で特定され、本明細書の一部を形成し、本明細書で説明される概念の態様が実現され得る様々な実施形態を例示として示す添付図面が参照される。本明細書で説明される概念の範囲から逸脱することなく、他の実施形態が利用され得、構造的および機能的な修正が行われ得ることを理解されたい。したがって、本明細書で説明される概念の様々な態様は、本明細書で具体的に説明されるもの以外の実施形態で実施され得ることを理解されたい。本明細書で説明される概念は、本明細書で具体的に説明されるものとは異なる手法で実現または実行されることも理解されたい。
【0101】
[00110]本開示で使用される場合、「エンジン」または「モジュール」または「構成要素」という用語は、エンジンまたはモジュールまたは構成要素および/またはソフトウェアオブジェクトまたはソフトウェアルーチンのアクションを実行するように構成された特定のハードウェア実装を指す場合があり、コンピューティングシステムの汎用ハードウェア(たとえば、コンピュータ読み取り可能な媒体、処理デバイスなど)で格納および/または実行され得る。いくつかの実施形態では、本開示で説明される異なる構成要素、モジュール、エンジン、およびサービスは、コンピューティングシステム上で(たとえば、別個のスレッドとして)実行するオブジェクトまたは処理として実装され得る。本開示で説明されるシステムおよび方法のいくつかは、一般にソフトウェアで実装される(汎用ハードウェアで格納および/または実行される)ものとして説明されるが、特定のハードウェア実装、ファームウェア実装、またはそれらの任意の組合せも可能であり、考慮される。この説明では、「コンピューティングエンティティ」は、本開示で以前に説明した任意のコンピューティングシステム、またはコンピューティングシステムで実行する任意のモジュールまたはモジュレートの組合せであり得る。
【0102】
[00111]本開示および添付の特許請求の範囲(たとえば、添付の特許請求の範囲のボディ)で使用される用語は、一般に「オープン」な用語として意図されている(たとえば、「含んでいる」という用語は、「含んでいるが、それに限定されない」と解釈されるべきであり、「有する」という用語は「少なくとも有する」と解釈されるべきであり、「含む」という用語は「含むが、それに限定されない」などと解釈されるべきである)。
【0103】
[00112]さらに、特定の数の導入された特許請求の範囲の記載が意図される場合、そのような意図は特許請求の範囲に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。たとえば、理解の助けとして、以下の添付の特許請求の範囲は、特許請求の範囲の記載を導入するための導入句「少なくとも1つ」および「単数または複数」の使用を含み得る。しかしながら、そのような語句の使用は、たとえ同じ特許請求の範囲が「単数または複数」または「少なくとも1つ」といった導入句と、「a」または「an」などの不定冠詞とを含む(たとえば、「a」および/または「an」が、「少なくとも1つ」または「単数または複数」を意味するように解釈されるべきである)場合であっても、不定冠詞「a」または「an」による特許請求の範囲の引用の導入により、そのような導入された特許請求の範囲の列挙を含むどの特定の特許請求の範囲も、そのような列挙を1つだけ含む実施形態に限定することを意味すると解釈されるべきではなく、特許請求の範囲の引用を導入するために使用される明確な記事の使用についても同じことが当てはまる。
【0104】
[00113]さらに、特定数の導入された特許請求の範囲の列挙が、明示的に列挙されている場合でも、そのような列挙は、少なくとも列挙された数を意味すると解釈されるべきである(たとえば、他の修飾子なしの「2つのウィジェット」というままの列挙は、少なくとも2つのウィジェット、または2つ以上のウィジェットを意味する)。さらに、「A、B、Cのうちの少なくとも1つなど」または「A、B、Cのうちの単数または複数など」に類似した慣例が使用されるこれらの例では、一般に、そのような構造は、Aのみ、Bのみ、Cのみ、AとBとの組合せ、AとCとの組合せ、BとCとの組合せ、またはA、B、およびCの組合せなどを含むことが意図される。
【0105】
[00114]本明細書で使用される語法および用語は、説明を目的とするものであり、限定とみなされるべきではないことを理解されたい。むしろ、本明細書で使用される語句および用語は、それらの最も広い解釈および意味を与えられるべきである。「含んでいる」および「備えている」並びにそれらの変形の使用は、その後に列挙される項目およびその均等物、並びに追加の項目およびその均等物を包含することが意味される。「接続された」、「結合された」、および同様の用語の使用は、直接的および間接的の両方の接続および結合を含むことが意味される。
【0106】
[00115]本開示で列挙されるすべての例および条件付き言語は、読者が本開示を理解するのを助けるための教育学的例のために意図されており、そのような具体的に列挙される例および条件に限定されないものとして解釈されるべきである。本開示の例示的な実施形態を詳細に説明したが、本開示の趣旨および範囲から逸脱することなく、様々な変更、置換、および変形が、これに対してなされ得る。したがって、本開示の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって限定されることが意図されている。
図1
図2
図3
図4
図4A
図5
図5A
図6
図7
図8