(57)【要約】  コンテンツにおけるデータ要素を不明瞭にしない、あるいは、目に見える欠陥を生じさせないように、コンテンツに透かしをレンダリングための技術が開示される。この技術を実施する例示的な方法は、コンテンツにレンダリングされるべき透かしを、複数の透かし要素にセグメント化することを含む。次に、特定の透かし要素をレンダリングする前に、コンテンツ内において特定の透かし要素がレンダリングされるべき位置にデータ要素があるか否かを判定するための確認が行われる。データ要素がその位置に検出された場合、特定の透かし要素がレンダリングされ、この透かしをマスク化された透かしとしてレンダリングするように当該データ要素が当該特定の透かし要素をオーバレイする。もしくは、その位置にデータ要素が検出されない場合、透かし要素は、目に見えるようにコンテンツにレンダリングされる。この処理は、残る透かし要素をレンダリングするように繰り返される。
2021516898.tif 000002
【特許請求の範囲】
【請求項１】
透かしを、複数の透かし要素にセグメント化するステップと、
前記複数の透かし要素のうちの少なくとも１つの透かし要素について、前記少なくとも１つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも１つの透かし要素を前記コンテンツにレンダリングするステップとを備え、
前記透かし要素をマスク化された透かしとして前記コンテンツにレンダリングするように前記データ要素が前記少なくとも１つの透かし要素をオーバレイする、方法。
【請求項２】
前記複数の透かし要素が複数の第１の透かし要素に相当し、前記透かしが前記コンテンツに対する前記透かしの適用の第１の実体であり、前記マスク化された透かしが第１のマスク化透かしであり、
前記方法は、さらに、
前記透かしを、複数の第２の透かし要素にセグメント化するステップと、
前記複数の第２の透かし要素のうちの少なくとも１つの透かし要素について、前記複数の第２の透かし要素のうちの前記少なくとも１つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも１つの第２の透かし要素を前記コンテンツにレンダリングするステップとを備え、
前記透かしの第２の実体を第２のマスク化透かしとしてレンダリングするように前記データ要素が前記第２の透かし要素をオーバレイする、請求項１に記載の方法。
【請求項３】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項１に記載の方法。
【請求項４】
前記補完的な透かしと前記第１のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第１のマスク化透かしを補完する、請求項３に記載の方法。
【請求項５】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記第２のマスク化透かしに含まれない一部に相当し、前記補完的な透かしと前記第２のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第２のマスク化透かしを補完する、請求項２に記載の方法。
【請求項６】
前記補完的な透かしは、前記コンテンツにおける空白領域にレンダリングされる、請求項３に記載の方法。
【請求項７】
前記補完的な透かしは、前記コンテンツにおけるデータ要素をオーバレイしないようにレンダリングされる、請求項３に記載の方法。
【請求項８】
前記補完的な透かしは、第１の補完的な透かしと第２の補完的な透かしとを含む、請求項３に記載の方法。
【請求項９】
透かししきい値が満たされていないとの判定に応じて、前記コンテンツに第１の補完的な透かしと第２の補完的な透かしとをレンダリングするステップをさらに備えた、請求項２に記載の方法。
【請求項１０】
前記第１の補完的な透かしは、前記第１のマスク化透かしを補完し、前記第２の補完的な透かしは、前記第２のマスク化透かしを補完する、請求項９に記載の方法。
【請求項１１】
前記第１の補完的な透かしは、前記第１のマスク化透かしを補完し、前記第２の補完的な透かしは、前記第１のマスク化透かしを補完する、請求項９に記載の方法。
【請求項１２】
単数または複数のプロセッサによって実行されるとコンテンツに透かしをレンダリングする処理を実行させる命令を符号化する不揮発性のマシン読み取り可能な媒体であって、
前記処理は、
透かしを、複数の透かし要素にセグメント化するステップと、
前記複数の透かし要素のうちの少なくとも１つの透かし要素について、前記少なくとも１つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも１つの透かし要素を前記コンテンツにレンダリングするステップとを備え、
前記透かし要素をマスク化された透かしとして前記コンテンツにレンダリングするように前記データ要素が前記少なくとも１つの透かし要素をオーバレイする、
不揮発性のマシン読み取り可能な媒体。
【請求項１３】
前記処理は、透かししきい値が満たされていないとの判定に応じて、前記コンテンツに補完的な透かしをレンダリングするステップをさらに備え、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項１２に記載の不揮発性のマシン読み取り可能な媒体。
【請求項１４】
前記補完的な透かしと前記マスク化された透かしとが完全な透かしを形成するように、前記補完的な透かしは前記マスク化された透かしを補完する、請求項１３に記載の不揮発性のマシン読み取り可能な媒体。
【請求項１５】
前記補完的な透かしは、前記コンテンツにおけるデータ要素をオーバレイしないようにレンダリングされる、請求項１３に記載の不揮発性のマシン読み取り可能な媒体。
【請求項１６】
メモリと、
前記メモリと通信する単数または複数のプロセッサとを備えたシステムであって、
前記単数または複数のプロセッサは、
透かしを、複数の透かし要素にセグメント化し、
前記複数の透かし要素のうちの少なくとも１つの透かし要素について、前記少なくとも１つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも１つの透かし要素を前記コンテンツにレンダリングするように構成され、
前記透かし要素をマスク化された透かしとして前記コンテンツにレンダリングするように前記データ要素が前記少なくとも１つの透かし要素にオーバレイする、システム。
【請求項１７】
前記複数の透かし要素が複数の第１の透かし要素に相当し、前記透かしが前記コンテンツに対する前記透かしの適用の第１の実体であり、前記マスク化された透かしが第１のマスク化透かしであり、
前記プロセッサは、さらに、
前記透かしを、複数の第２の透かし要素にセグメント化し、
前記複数の第２の透かし要素のうちの少なくとも１つの透かし要素について、前記複数の第２の透かし要素のうちの前記少なくとも１つの透かし要素を適用するコンテンツ内の位置に当該コンテンツのデータ要素が存在するとの判定に応じて、前記少なくとも１つの第２の透かし要素を前記コンテンツにレンダリングするように構成され、
前記透かしの第２の実体を第２のマスク化透かしとしてレンダリングするように前記データ要素が前記第２の透かし要素にオーバレイする、請求項１６に記載のシステム。
【請求項１８】
透かししきい値が満たされていないとの判定に応じて、前記プロセッサは、さらに、前記コンテンツに補完的な透かしをレンダリングするように構成され、前記補完的な透かしは、前記透かしのうち前記マスク化された透かしに含まれない一部に相当する、請求項１６に記載のシステム。
【請求項１９】
前記補完的な透かしと前記第１のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第１のマスク化透かしを補完する、請求項１８に記載のシステム。
【請求項２０】
透かししきい値が満たされていないとの判定に応じて、前記プロセッサは、さらに、前記コンテンツに補完的な透かしをレンダリングするように構成され、前記補完的な透かしは、前記透かしのうち前記第２のマスク化透かしに含まれない一部に相当し、前記補完的な透かしと前記第２のマスク化透かしとが完全な透かしを形成するように、前記補完的な透かしは前記第２のマスク化透かしを補完する、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]電子透かしは、画像、テキスト、ドキュメント、またはディスプレイ上に現れる可能性のある他の形態のデジタルデータを含むデジタルコンテンツをマーキングおよび／または保護するために広く使用されている技術である。
【背景技術】
【０００２】
電子透かしには、目に見える透かしの使用を含めることができる。目に見える透かしは、通常、テキスト、パターン、シンボル、または画像として提供され、人間の観察者によって、元のコンテンツにオーバレイされていると知覚され得る。シースルー特性を有する目に見える透かしが提供され得る。シースルー透かしにより、透かしと元のコンテンツとの両方が、人間の観察者によって見られる。
【発明の概要】
【０００３】
[0002]本概要は、詳細な説明において以下でさらに説明される選択された概念を、簡略化された形式で紹介するために提供される。本概要は、特許請求された主題の主要なまたは不可欠な特徴または組合せを特定することを意図しておらず、特許請求された主題の範囲を限定するために使用されることも意図していない。
【０００４】
[0003]本明細書で説明される概念、システム、および技術によれば、電子ディスプレイ、またはコンテンツの視覚的表現のための他の任意の手段に表示されるべきデータ、またはより一般的にはコンテンツに、透かしを適用するためのシステムは、表示されるべきコンテンツを特定するための手段と、マスク化された透かしを生成するための手段と、補完的な透かしを生成するための手段と、コンテンツに表示されるべきマスク化された透かしおよび補完的な透かしをレンダリングするための手段とを含む。
【０００５】
[0004]この特定の構成により、コンテンツが表示されるときにコンテンツを不明瞭化しない方式でコンテンツに透かしをレンダリングするためのシステムが提供される。実施形態では、コンテンツは、電子的に表現され得る（本明細書では、デジタルコンテンツと呼ばれる）。表示されるべきコンテンツにおける単数または複数のデータ要素を特定することによって、当該表示されるべきコンテンツにおける単数または複数のデータ要素をオーバレイすることなく、マスク化された補完的な透かしがレンダリングされ得るコンテンツの領域を、特定することができる。次に、マスク化された補完的な透かしを、デジタルコンテンツの特定領域にレンダリングできる。
【０００６】
[0005]表示されるべきデジタルコンテンツに透かしをレンダリングするための概念および技術は、表示されるべきコンテンツのためのデータセキュリティを提供する手段として、デスクトップおよびアプリケーション仮想化プラットフォームにおいて利用され得る。
【０００７】
[0006]一実施形態では、上記の概念、システム、および技術は、透かしがコンテンツにレンダリングされるときに、データ要素の一部が、透かしの任意の部分と同じ位置にあることが検出された場合、完全な透かしの一部をオーバレイすることを可能にする。このアプローチを使用すると、エンドユーザは、データ要素が透かしまたは透かしの一部によって覆われたり不明瞭化されたりすることなく、表示中のコンテンツにおけるそのデータ要素を見ることができる。これにより、エンドユーザは、データ要素／情報を透かしと区別する必要がなくなり、データに対するユーザの注意が妨げられることはない。さらに、透かしの一部分または複数部分のマスキングにより、透かしの情報（たとえば、透かしの目的、または透かしによって伝えられるメッセージ、または透かしの意味）が失われることを回避するために、しきい値が定義され、少なくともいくつかの累積した透かしが、デジタルコンテンツにレンダリングされ、デジタルコンテンツが表示されるときに示されることを保証する。いくつかの累積した透かしを使用することにより、透かしによって伝えられる情報は影響を受けないか、さもなければ損なわれることもない。たとえば、透かしの目的がセキュリティ機能を提供することである場合、透かしのセキュリティ機能は影響を受けないか、さもなければ損なわれることもない。
【０００８】
[0007]１つの態様では、本明細書で説明される概念は、マスク化された透かしのパーツを有する透かしをレンダリングするアプローチを対象としているため、透かしは、当該透かしがレンダリングされるデジタルコンテンツにおけるデータ要素をオーバレイしない。むしろ、透かしは、いずれのデータ要素も含まないデジタルコンテンツの一部にレンダリングされる（たとえば、透かしまたはその一部が、コンテンツの空白領域にレンダリングされる）か、または、コンテンツが、ディスプレイデバイス、インターフェイス（たとえば、ユーザインターフェイス）、ウェブページ、ドキュメント、画像、またはコンテンツの視覚的表現が可能な他の任意の手段に表示されるときに、その基となるデータ要素との干渉（たとえば、オーバレイ、さもなければ、不明瞭化されること）をほとんどしないコンテンツの領域にレンダリングされる。
【０００９】
[0008]上記の概念、システム、および技術に従って、透かしレンダリング数のしきい値が選択される。しきい値は、少なくとも、表示されるべき累積した透かしの、規定された数を維持する。マスク化された透かし要素の上記理由により、しきい値に達していない場合、この解決策は、いくつかの空白領域を検出して、オーバレイされた透かし要素をレンダリングし、しきい値を満たすようにする。
【００１０】
[0009]一般的な概要において、完全な透かしを２つ以上の要素に分断化（または、より一般的には、分割）するシステムおよび技術について説明する（すなわち、２つ以上の要素を一体化すると完全な透かしが形成される）。コンテンツ（たとえば、デジタルコンテンツ）に透かしをレンダリングする場合、システムおよび技術は、透かし要素がレンダリングされようとしているコンテンツ内の位置に、データ要素が存在するか否かを検出する。単数または複数のデータ要素が存在するコンテンツ内の位置に、単数または複数の透かし要素がレンダリングされている（すなわち、単数または複数の透かし要素が、単数または複数のデータ要素と、重なり合うか、さもなければ、干渉する）との判定に応じて、当該単数または複数の透かし要素がマスクされる（すなわち、デジタルコンテンツにレンダリングされていない）ため、表示されたとき（たとえば、画面インターフェイスまたはドキュメントに表示されたとき）、当該単数または複数の透かし要素と単数または複数のデータ要素との重なり合い、または干渉は発生しない。これによって、透かし（たとえば、完全な透かし、マスク化された透かし、および／または、補完的な透かし）並びに、ディスプレイ上に表示されたデジタルコンテンツ内のデータ要素が、見ているユーザによって容易に見られ、容易に理解できるようになる。
【００１１】
[0010]伝えられる情報、および／または、データ要素によって示されるオブジェクトを認識し、さもなければ判定することは必要ではないことに留意されたい。むしろ、システムおよび技術は、伝えられる情報を認識するために必要な処理よりも簡単な（したがって、必要な処理リソースが少なく、時間も少ない）処理となるデータ要素の存在を検出するだけでよい。したがって、有利なことに、１つの実施形態では、透かしがレンダリングされるべきコンテンツの領域内の色分布を計算することによって、データ要素の検出が判定され得る。さらに、データ要素が存在しないコンテンツ内の位置にある透かしの一部がマスク化されている場合でも、コンテンツが表示される場合、マスク化されていない透かしの一部を補完して、所望の数の完全な透かしが表示されることを保証することができる。
【００１２】
[0011]このようにして、デジタルコンテンツに透かしを入れることによって提供されるセキュリティ機能が依然として提供される。したがって、有利なことに、高速処理技術を使用して、デジタルコンテンツ内のデータ要素の検出を実行することができる。
【００１３】
[0012]透かしがマスク化されると、システムは、残る透かし要素（透かしの補完的な要素とも呼ばれる）が、完全な透かしの意図された機能を提供するのに十分な量の情報を伝えるのか否か（たとえば、レンダリングされた透かし要素が、セキュリティ機能を提供するのに十分な量の情報を伝えるのか否か）を判定し得る。そのような判定は、たとえば、完全な透かしのしきい値数を利用することによってなされ得る。実施形態では、しきい値数は、システム管理者によって定義され得る。実施形態では、しきい値数は、データ要素が存在しないデジタルコンテンツ内のスペースの量を判定することによって決定され得る。他の技術も使用され得る。レンダリングされた透かし要素が、指定された透かしのしきい値を超える（または、いくつかの実施形態では、透かしのしきい値以上の）いくつかの数の透かしの実体に累積できる場合、透かし要素のレンダリングは十分であるか、そうでなければ許容可能であるとみなされる。一方、レンダリングされた透かし要素が、透かしのしきい値を超える（または、いくつかの実施形態では、透かしのしきい値以上の）いくつかの数の透かしの実体に累積しない場合、透かし要素の配置は、十分ではないとみなされ、システムは、補完処理を実行し得る。実施形態では、補完処理は、デジタルコンテンツの空白領域内のマスク化された透かし要素を、補完的な透かしとしてレンダリングして、累積した透かし（すなわち、補完的な透かしを含むレンダリングされた透かし要素）が、指定されたしきい値を満たすようにする。
【００１４】
[0013]上記および他の目的、特徴、および利点は、同様の参照符号が異なる図全体を通して同じ部分を示す添付の図面に例示されるように、実施形態のより具体的な説明から明らかになるであろう。図面は必ずしも縮尺通りではなく、代わりに実施形態の原理を例示することに重点が置かれている。
【図面の簡単な説明】
【００１５】
【図１】[0014]本開示の実施形態に従って、本開示の様々な態様が実施され得るコンピューティングデバイスの例示的なネットワーク環境を例示するブロック図である。
【図２】[0015]本開示の実施形態に従って、本開示の様々な態様が実施され得る例示的なコンピューティングデバイスの選択的な構成要素を例示するブロック図である。
【図３】[0016]透かしがその上に配置されており、単数または複数の目に見える欠陥をもたらす、表示されたデータを例示する図である。
【図４】[0017]本開示の実施形態に従って、マスク化された補完的な透かしがその上に配置されており、目に見える欠陥がない、表示されたデータを例示する図である。
【図４Ａ】[0018]複数の要素にセグメント化（または分割）された例示的な透かしを示す図である。
【図５】[0019]本開示の実施形態に従って、コンテンツにマスク化された透かしを形成するために使用することができる例示的なネットワーク化コンピュータシステムのうちの選択された構成要素を概略的に例示するブロック図である。
【図５Ａ】[0020]本開示の様々な態様が実施され得るクラウドコンピューティング環境の概略ブロック図である。
【図６】[0021]本開示の実施形態に従って、マスク化された透かしをレンダリングするための例示的な処理を例示するフロー図である。
【図７】[0022]本開示の実施形態に従って、必要に応じて透かしをマスキングすることによって透かしをレンダリングするための例示的な処理を例示するフロー図である。
【図８】[0023]本開示の実施形態に従って、マスク化された透かしを補完するための例示的な処理を例示するフロー図である。
【発明を実施するための形態】
【００１６】
[0024]理想的には、目に見える透かしは、コンテンツの変換に対して（たとえば、コンテンツが写真である場合の画像変換に対して、またはコンテンツがウェブページに含まれる場合のウェブページ変換に対して）比較的ロバストである。したがって、透かしは、たとえば、改ざんからコンテンツを保護しまたは特定するため、著作権保護を提供するため、通知または情報を提供するため、および／または、コンテンツに対するデジタル著作権管理制御を提供するために使用され得る。目に見える透かしは、コンテンツを保護するために適用できるが、そのような目に見える透かしは、コンテンツのすべてまたは一部を不明瞭にする可能性があり（たとえば、目に見える透かしは、写真のオブジェクトおよび／またはシーンのすべてまたは一部を不明瞭にする可能性があり）、観察者（たとえば、人間の観察者、または、画像処理システムまたは認識システム（たとえば、光学式文字認識システム））が、コンテンツを視覚的に知覚したり、または透かしによって不明瞭にされたコンテンツの一部（たとえば、写真の一部）から透かしを視覚的に分離したりすることが困難になる。
【００１７】
[0025]目に見える透かしはまた、観察者をコンテンツからそらす（たとえば、観察者を、写真またはウェブページの主題からそらす）ことにより、エンドユーザの体験を低下させおよび／または妨害することがある。したがって、本開示の実施形態に従って、改善された透かし技術により、ユーザは、コンテンツが表示されるときに、コンテンツにおけるデータ要素を不明瞭にしないように、さもなければ目に見える欠陥を生じさせないように、コンテンツに視覚的な透かしを適用することができる。
【００１８】
[0026]本明細書で使用する場合、「コンテンツ」という用語は、視覚的に提示されるべき情報の全体を指す。情報は、たとえば、いくつかの例を挙げると、テキストまたは画像のいずれかまたはすべてを使用して視覚的に提示され得る。コンテンツは、ディスプレイ、インターフェイス（たとえば、ユーザインターフェイス）、ウェブページ、ドキュメント、写真に、または、コンテンツの視覚的表現が可能な他の任意の手段によって、視覚的に提示され得る。コンテンツは、デジタルまたはアナログ（たとえば、連続するパラメータ）であり得る。コンテンツは、単数または複数のデータ要素を含み得る。
【００１９】
[0027]「データ要素」は、コンテンツ内のデータの個々の部分またはユニット（たとえば、デジタルコンテンツ内のデジタルデータ）を指す。いくつかの例を挙げると、テキスト、画像、グラフィック要素、制御要素、オブジェクト、色、および、十分な強度の画素など、コンテンツが見られるときにデータ要素が重要になる場合がある。コンテンツ、したがってデータ要素は、画像、テキスト、グラフィック要素、制御要素、または、ディスプレイ（たとえば、コンピュータまたはモバイルデバイスのディスプレイスクリーン、または、コンテンツが視覚的に提示され得る任意の形態のディスプレイまたはインターフェイス）上に表れ得る他の形態のデジタル表現を含むデジタルデータの形態で存在し得る。
【００２０】
[0028]この文書の残りの部分で使用されるように、「透かし」という用語は、視覚的なしるしを指す。どのような形態のしるしも、透かしを備え得る。しるしは、たとえば、テキストまたは画像またはシンボルまたはそれらの組合せであり得る。透かしは、コンテンツに追加されたとき、さもなければ適用されたときに視覚的に確認できる。したがって、本明細書で提供される説明の目的のために、透かしとコンテンツとが区別される。具体的には、透かしは、人間などの観察者が、コンテンツのすべてまたは一部にオーバレイされている、さもなければ適用されていると認識できる要素またはしるしである。
【００２１】
[0029]表示されたコンテンツにおけるデータ要素を不明瞭化しない、さもなければ、目に見える欠陥を生じさせない方式で、視覚的透かしをコンテンツに適用するために、透かしを含むコンテンツをレンダリングするとき、コンテンツに適用された透かしは複数の部分片にセグメント化され、各部分片が、完全な透かし要素に相当している。次に、特定の透かし要素をレンダリングする前に、特定の透かし要素がレンダリングされるコンテンツ内の位置に、コンテンツのデータ要素があるか否かを判定するための確認が行われる。データ要素がその位置に存在すると判定された場合、特定の透かし要素は、当該透かし要素ではなくデータ要素が目に見えるように、その特定の透かし要素をオーバレイするようにレンダリングされる。あるいは、その位置にデータ要素が存在しないと判定された場合、透かし要素は、その位置にレンダリングされる。
【００２２】
[0030]データ要素は、透かしの特定の要素をオーバレイするため、透かしの特定の要素と同じコンテンツ内の位置にあるデータ要素は、コンテンツが表示されるときに不明瞭にされない。また、この場合、透かしの一部（たとえば、データ要素によってオーバレイされる透かしの一部）は、オーバレイするデータ要素によって「マスク化」される。その結果は、本明細書では「マスク化透かし」と呼ばれる。残る透かし要素も同様に処理され、コンテンツに透かしがレンダリングされる。本開示に照らして、多数の構成および修正が明らかになるであろう。
【００２３】
[0031]次に図を参照すると、図１は、本開示の実施形態に従って、本開示の様々な態様が実施され得るコンピューティングデバイスの例示的なネットワーク環境１０１を例示するブロック図である。図示されるように、環境１０１は、単数または複数のクライアントマシン１０２Ａ〜１０２Ｎ、単数または複数のリモートマシン１０６Ａ〜１０６Ｎ、単数または複数のネットワーク１０４、１０４’、および環境１０１内にインストールされた単数または複数の機器１０８を含む。クライアントマシン１０２Ａ〜１０２Ｎは、ネットワーク１０４、１０４’を介してリモートマシン１０６Ａ〜１０６Ｎと通信する。
【００２４】
[0032]いくつかの実施形態では、クライアントマシン１０２Ａ〜１０２Ｎは、中間機器１０８を介してリモートマシン１０６Ａ〜１０６Ｎと通信する。例示された機器１０８は、ネットワーク１０４、１０４’の間に配置され、ネットワークインターフェイスまたはゲートウェイと呼ばれ得る。いくつかの実施形態では、機器１０８は、アプリケーション・デリバリ・コントローラ（ＡＤＣ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）として動作して、データセンタ、クラウドコンピューティング環境に展開され、または、複数のクライアントデバイスの範囲に及ぶソフトウェア・アズ・ア・サービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）として供給されるビジネスアプリケーションおよび他のデータへのアクセスをクライアントに提供するか、および／または、負荷分散などの他の機能を提供し得る。いくつかの実施形態では、複数の機器１０８が使用され得、機器１０８は、ネットワーク１０４および／または１０４’の一部として展開され得る。
【００２５】
[0033]クライアントマシン１０２Ａ〜１０２Ｎは、一般に、クライアントマシン１０２、ローカルマシン１０２、クライアント１０２、クライアントノード１０２、クライアントコンピュータ１０２、クライアントデバイス１０２、コンピューティングデバイス１０２、エンドポイント１０２、またはエンドポイントノード１０２と呼ばれ得る。リモートマシン１０６Ａ〜１０６Ｎは、一般に、サーバ１０６またはサーバファーム１０６と呼ばれ得る。いくつかの実施形態では、クライアントデバイス１０２は、サーバ１０６によって提供されるリソースへのアクセスを求めるクライアントノードと、他のクライアントデバイス１０２Ａ〜１０２Ｎのためにホストされたリソースへのアクセスを提供するサーバ１０６との両方として機能する能力を有し得る。ネットワーク１０４、１０４’は、通常、ネットワーク１０４と参照され得る。ネットワーク１０４は、有線およびワイヤレスのネットワーク任意の組合せで構成され得る。
【００２６】
[0034]サーバ１０６は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、セキュアソケットレイヤ仮想プライベートネットワーク（ＳＳＬ  ＶＰＮ：Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ  Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）サーバ、ファイアウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、または、ファイアウォール機能、アプリケーション機能もしくは負荷分散機能を提供するアプリケーションアクセラレーションプログラムを実行するサーバのような任意のサーバタイプであり得る。
【００２７】
[0035]サーバ１０６は、ソフトウェア、プログラム、実行可能な命令、仮想マシン、ハイパバイザ、ウェブブラウザ、Ｗｅｂベースのクライアント、クライアントサーバアプリケーション、シン・クライアント・コンピューティング・クライアント、ＡｃｔｉｖｅＸコントロール、Ｊａｖａアプレット、ソフトＩＰ電話のようなボイスオーバインターネットプロトコル（ＶｏＩＰ：ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）通信に関連するソフトウェア、ビデオおよび／またはオーディオをストリーミングするためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、ＨＴＴＰクライアント、ＦＴＰクライアント、Ｏｓｃａｒクライアント、Ｔｅｌｎｅｔクライアント、または他の任意の実行可能な命令のセットのうちのいずれか１つであり得るアプリケーションを実行、動作、または、さもなければ提供し得る。
【００２８】
[0036]いくつかの実施形態では、サーバ１０６は、リモートプレゼンテーションサービスプログラム、または、シンクライアントまたはリモートディスプレイプロトコルを使用する他のプログラムを実行して、サーバ１０６上で実行するアプリケーションによって生成されたディスプレイ出力をキャプチャし、アプリケーションディスプレイ出力をクライアントデバイス１０２に送信し得る。
【００２９】
[0037]さらに他の実施形態では、サーバ１０６は、クライアントデバイス１０２のユーザに、コンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス１０２は、仮想マシンであり得る。仮想マシンは、たとえば、ハイパバイザ、仮想マシンマネジャ（ＶＭＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｍａｎａｇｅｒ）、またはサーバ１０６内の任意の他のハードウェア仮想化技術によって管理され得る。
【００３０】
[0038]いくつかの実施形態では、ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ−ａｒｅａ  ｎｅｔｗｏｒｋ）、メトロポリタンエリアネットワーク（ＭＡＮ：ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、プライマリパブリックネットワーク、およびプライマリプライベートネットワークであり得る。追加の実施形態は、モバイルデバイス間で通信するために様々なプロトコルを使用するモバイル電話ネットワークのネットワーク１０４を含み得る。ワイヤレスローカルエリアネットワーク（ＷＬＡＮ：ｗｉｒｅｌｅｓｓ  ｌｏｃａｌ−ａｒｅａ  ｎｅｔｗｏｒｋ）内の短距離通信の場合、プロトコルは、８０２．１１、Ｂｌｕｅｔｏｏｔｈ、および近距離無線通信（ＮＦＣ）を含み得る。
【００３１】
[0039]図２は、本開示の実施形態に従って、本開示の様々な態様が実施され得る例示的なコンピューティングデバイス１００の選択的な構成要素を例示するブロック図である。たとえば、図１のクライアントデバイス１０２、機器１０８、および／またはサーバ１０６は、コンピューティングデバイス１００と実質的に同様であり得る。図示されるように、コンピューティングデバイス１００は、単数または複数のプロセッサ１０３、揮発性メモリ１２２（たとえば、ランダムアクセスメモリ（ＲＡＭ））、不揮発性メモリ１２８、ユーザインターフェイス（ＵＩ）１２３、単数または複数の通信インターフェイス１１８、および通信バス１５０を含む。
【００３２】
[0040]不揮発性メモリ１２８は、単数または複数のハードディスクドライブ（ＨＤＤ）または他の磁気または光ストレージ媒体、フラッシュドライブや他のソリッドステートストレージ媒体などの単数または複数のソリッドステートドライブ（ＳＳＤ）、単数または複数のハイブリッド磁気およびソリッドステートドライブ、および／または、クラウドストレージなどの単数または複数の仮想ストレージボリューム、またはそのような物理ストレージボリュームと仮想ストレージボリュームとの組合せ、またはこれらのアレイを含み得る。
【００３３】
[0041]ユーザインターフェイス１２３は、グラフィカルユーザインターフェイス（ＧＵＩ）１２４（たとえば、タッチスクリーン、ディスプレイなど）および単数または複数の入力／出力（Ｉ／Ｏ）デバイス１２６（たとえば、マウス、キーボード、マイクロフォン、単数または複数のスピーカ、単数または複数のカメラ、単数または複数の生体認証スキャナ、単数または複数の環境センサ、および単数または複数の加速度計など）を含み得る。
【００３４】
[0042]不揮発性メモリ１２８は、たとえば、オペレーティングシステム１１５および／またはアプリケーション１１６のコンピュータ命令が、揮発性メモリ１２２からプロセッサ１０３によって実行されるように、オペレーティングシステム１１５、単数または複数のアプリケーション１１６、およびデータ１１７を格納する。いくつかの実施形態では、揮発性メモリ１２２は、メインメモリよりも速い応答時間を提供し得る単数または複数タイプのＲＡＭおよび／またはキャッシュメモリを含み得る。データは、ＧＵＩ１２４の入力デバイスを使用して入力され得るか、Ｉ／Ｏデバイス１２６から受信され得る。コンピューティングデバイス１００の様々な要素は、通信バス１５０を介して通信し得る。
【００３５】
[0043]例示されたコンピューティングデバイス１００は、単に例示的なクライアントデバイスまたはサーバとして示され、任意のコンピューティング環境またはプロセシング環境によって、本明細書で説明するように、適切なハードウェアおよび／または動作可能なソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットで実装され得る。
【００３６】
[0044]プロセッサ１０３は、単数または複数のプログラム可能なプロセッサによって実装されて、コンピュータプログラムなどの単数または複数の実行可能な命令を実行して、システムの機能を実行することができる。本明細書で使用される場合、「プロセッサ」という用語は、機能、動作、または一連の動作を実行する回路構成を示すものである。機能、動作、または一連の動作は、回路構成にハードコード化され得るか、またはメモリデバイスに保持され、回路構成によって実行される命令によってソフトコード化され得る。プロセッサは、デジタル値を使用して、および／または、アナログ信号を使用して、機能、動作、または動作のシーケンスを実行し得る。
【００３７】
[0045]いくつかの実施形態では、プロセッサは、単数または複数の特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、グラフィック処理ユニット（ＧＰＵ：ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、プログラマブルロジックアレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）、マルチコアプロセッサ、または関連するメモリを備えた汎用コンピュータにおいて具体化され得る。
【００３８】
[0046]プロセッサ１０３は、アナログ、デジタル、または混合信号であり得る。いくつかの実施形態では、プロセッサ１０３は、単数または複数の物理的プロセッサ、または単数または複数の仮想（たとえば、リモートに配置された、またはクラウドコンピューティング環境）プロセッサであり得る。複数のプロセッサコアおよび／または複数のプロセッサを含むプロセッサは、命令の並列同時実行、または、複数のデータの要素に対する１つの命令の並列同時実行のための機能を提供し得る。
【００３９】
[0047]通信インターフェイス１１８は、コンピューティングデバイス１００が、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ：Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、またはインターネットなどのコンピュータネットワークに、セルラ接続を含む様々な有線および／またはワイヤレスの接続を介してアクセスできるようにする単数または複数のインターフェイスを含み得る。
【００４０】
[0048]説明される実施形態では、コンピューティングデバイス１００は、クライアントデバイスのユーザに代わってアプリケーションを実行し得る。たとえば、コンピューティングデバイス１００は、ハイパバイザによって管理される単数または複数の仮想マシンを実行し得る。各仮想マシンは、ホストされたデスクトップセッションなど、アプリケーションがユーザまたはクライアントデバイスに代わって実行する実行セッションを提供し得る。コンピューティングデバイス１００はまた、ターミナルサービスセッションを実行して、ホストされたデスクトップ環境を提供し得る。コンピューティングデバイス１００は、単数または複数のアプリケーションと、単数または複数のデスクトップアプリケーションと、単数または複数のアプリケーションが実行し得る単数または複数のデスクトップセッションとを含むリモートコンピューティング環境へのアクセスを提供し得る。
【００４１】
[0049]図３は、透かしに覆われたために単数または複数の目に見える欠陥が生じたコンテンツとともに表示されたウェブページを例示する図である。図３に示すように、４つの透かし３１０、３１２、３１４、３１９がウェブページのコンテンツに適用されるか、あるいは追加されている。見て分かるように、透かし３１０、３１２、３１４、３１９はそれぞれ、１行目のテキスト「ｃｏｎｆｉｄｅｎｔｉａｌ  ｉｎｆｏｒｍａｔｉｏｎ」と、１行目の下の２行目のテキスト「Ｐｒｏｖｉｄｅｄ  ｔｏ  Ｆｕｐｉｎｇ  Ｚｈｏｕ」との２行のテキストで構成される。図３にさらに見ることができるように、透かし３１０は、当該透かし３１０の一部（たとえば、テキスト「ｉｎｆｏｒｍａｔｉｏｎ」および「ｉｎｇ  Ｚｈｏｕ」）がデータ要素３１１をオーバレイするような形でコンテンツにレンダリングされている。同様に、透かし３１２は、当該透かし３１２の一部（たとえば、テキスト「ｉｏｎ」および「ｈｏｕ」）がデータ要素３１３をオーバレイするような形でコンテンツにレンダリングされ、透かし３１４は、当該透かし３１４の一部（たとえば、テキスト「Ｃｏ」および「Ｐｒｏｖ」）がデータ要素３１５をオーバレイするように、透かし３１９は、アイコンの一部をオーバレイするような形でコンテンツにレンダリングされている。この例で分かるように、コンテンツにおけるデータ要素をオーバレイする透かし３１０、３１２、３１４、３１９の一部は、当該透かし３１０、３１２、３１４、３１９がコンテンツにレンダリングされるときに、データ要素と干渉し、データ要素に目に見える欠陥を生じさせる。したがって、透かしをコンテンツ（たとえば、２つの例を提供するために写真またはウェブページ）に単純に適用すると、当該透かしがコンテンツにレンダリングされるときに、透かしが不明瞭にされる、または、コンテンツにおけるデータ要素と干渉することが理解され得る。
【００４２】
[0050]しかしながら、図４〜図８に関連して以下に説明されるように、本明細書で説明される概念、システム、および技術に従って、コンテンツにおけるデータ要素を不明瞭化する、あるいはデータ要素と干渉する透かしの一部は、マスク化されて、コンテンツが表示されるときに（それ以外の場合は、透かしの下にある）データ要素がはっきりと目に見えるように、コンテンツに透かしがレンダリングされ得る。
【００４３】
[0051]図４は、マスク化された補完的な透かしに覆われたコンテンツを有し、目に見える欠陥が生じずに表示されたウェブページを例示する図である。
【００４４】
[0052]マスク化透かしとは、コンテンツに透かしが適用されたとき（たとえば、レンダリングされた、またはさもなければ適用されたとき）、その一部（または要素）が目に見えない（たとえば、除去された）透かしを指す。
【００４５】
[0053]補完的な透かしは、透かしの一部であり、マスク化透かしとともに見られる（または、ともに用いられる）と、完全な（または、少なくともより完全な）透かしとなる。以下の説明から明らかになる理由により、実施形態では、完全な透かしをもたらすために、（マスク化透かしとともに）単数または複数の補完的な透かしが必要になる場合がある。また、実施形態では、複数の完全な透かしをもたらすために、補完的な透かしを、複数のマスク化透かしとともに使用され得る。
【００４６】
[0054]具体的には、図４は、コンテンツにおけるデータ要素に目に見える欠陥を生じさせないように、図３の透かし３１０、３１２、３１４のうちのマスク化された一部を例示する。たとえば、図４の例示的な例では、ウェブページは、（たとえば、図３における透かし３１０、３１２、３１４によって例示されるように）ウェブページの左半分における透かしの３つの実体を含むように形成され得る。
【００４７】
[0055]図４に図示されるように、４つのマスク化透かし４１０、４１２、４１４、４１９ａが、ウェブページのコンテンツにレンダリングされている。マスク化透かし４１０は、図３における透かし３１０の一部であり、マスク化透かし４１２は、図３における透かし３１２の一部であり、マスク化透かし４１４は、図３における透かし３１４の一部であり、マスク化透かし４１９ａは、図３における透かし３１９の一部である。特に、マスク化透かし４１０は、ウェブページ内のデータ要素４１１をオーバレイして不明瞭にするような透かしの一部（たとえば、テキスト「ｉｎｆｏｒｍａｔｉｏｎ」および「Ｆｕｐｉｎｇ  Ｚｈｏｕ」）を含まない。同様に、マスク化透かし４１２は、ウェブページ内のデータ要素４１３をオーバレイして不明瞭にするような透かしの一部（たとえば、テキスト「ｔｉｏｎ」および「ｈｏｕ」）を含まず、マスク化透かし４１４は、ウェブページ内のデータ要素４１５をオーバレイして不明瞭にするような透かしの一部（たとえば、テキスト「Ｃｏｎｆ」および「Ｐｒｏｖ」）を含まず、マスク化透かし４１９ａは、ウェブページ内のデータ要素（ここでは、ロケット船のアイコンとして例示される）をオーバレイして不明瞭にするような透かしの一部（たとえば、テキスト「ｏｒｍａｔｉｏｎ」および「ｉｎｇ  Ｚｈｏｕ」）を含まない。すなわち、マスク化透かし４１０、４１２、４１４、４１９ａは、各々、コンテンツのデータ要素（たとえば、テキストおよび画像）をオーバレイしないような透かしの一部を含む。
【００４８】
[0056]しかしながら、マスク化透かしの一部または全部は、コンテンツにおいて空白でない、あるいは空の領域ではないようなコンテンツの一部にレンダリングできることに留意されたい。たとえば、図４に例示されるように、マスク化透かし４１０とマスク化透かし４１２の一部とは、それぞれ、空白に当たらないが何らかのタイプの着色または濃淡を有し得るコンテンツの各部にレンダリングされている。また、マスク化透かし４１４の一部（たとえば、テキスト「ｏｒｍａｔｉｏｎ」および「Ｚｈｏｕ」のパーツ）は、データ要素４１６の一部をオーバレイするようにレンダリングされている。いくつかの実施形態によれば、これは、コンテンツにおけるデータ要素（たとえば、画像内のデータ要素またはウェブページ内のデータ要素）を構成するものを決定するために使用される基準またはしきい値によるものであり、これについては以下でさらに説明する。
【００４９】
[0057]図４にさらに示されるように、いわゆる「補完的な透かし」４１７、４１８、４１９ｂが、ウェブページ上にレンダリングされている。補完的な透かし４１７、４１８、４１９ｂは、コンテンツに含まれるデータ要素をどれもオーバレイせず、不明瞭にしないようにコンテンツにレンダリングされている。たとえば、図４に見られるように。補完的な透かし４１７、４１８、４１９ｂは、データ要素がないコンテンツの領域（いわゆる「空白領域」）にレンダリングされている。
【００５０】
[0058]要するに、単数または複数の補完的な透かしを、マスク化透かしとともに（たとえば、組み合わせて）考慮すると、「完全な」透かしが観察されるか、あるいは認識され得るように、当該単数または複数の補完的な透かしをコンテンツに適用することが可能である。実施形態によれば、補完的な透かしは、コンテンツに透かしをレンダリングするときに「マスク化された」（すなわち、目に見えない）透かしの一部（たとえば、レンダリングされたときに、コンテンツにデータ要素をオーバレイした透かしの一部）を含むことができる。この意味において、補完的な透かしは、マスク化透かしを「補完」する。すなわち、マスク化透かしは、単数または複数の補完的な透かしとともに用いられると、完全な透かしを形成する。
【００５１】
[0059]図４に見られるように、テキスト「ｉｏｎ」および「ｈｏｕ」を含む補完的な透かし４１７は、マスク化透かし４１２を補完する（すなわち、マスク化透かし４１２および補完的な透かし４１７を組み合わせて完全な透かし、たとえば、コンテンツにレンダリングされた完全な透かしの実体を形成することができる）。同様に、補完的な透かし４１８は、テキスト「Ｉｎｆｏｒｍａｔｉｏｎ」および「Ｆｕｐｉｎｇ  Ｚｈｏｕ」を含み、マスク化透かし４１０を補完するので、マスク化透かし４１０と補完的な透かし４１８とが組み合わされて、完全な透かし（たとえば、コンテンツにレンダリングされた完全な透かしの別の実体）が形成される。
【００５２】
[0060]完全な透かしを形成するために、複数の補完的な透かしを、マスク化透かしと組み合わせることができることを理解されたい。すなわち、「マスク化」されてマスク化透かしをもたらす透かしの一部は、セグメント化あるいは分割されることができ、セグメントは、複数の補完的な透かしそれぞれに含まれ得る。また、補完的な透かしが単数または複数の（多数の）マスク化透かしを補完できることにも留意されたい。
【００５３】
[0061]図４の例示的な例を続けると、たとえば、２個、３個、４個、または他の適切な個数（Ｎ個）といった、完全な透かしの実体のしきい値数（たとえば、事前に設定された透かししきい値）が、コンテンツにレンダリングするように要求されているか、さもなければ必要とされ得る。そのような例では、たとえば、透かしの提供に関連する意図されたセキュリティ機能を保存するように、指定されたしきい値数の完全な透かしの実体がレンダリングされ得る。図４の例では、透かししきい値は、２であり得る。この例の場合、マスク化透かし４１０と補完的な透かし４１８とを組み合わせることによって、並びに、マスク化透かし４１２と補完的な透かし４１７とを組み合わせることによって、レンダリングされた完全な透かしの２つの実体は、指定された透かししきい値を満たすこととなる。２という指定された透かししきい値は、マスク化透かし４１０と補完的な透かし４１８との組合せ、およびマスク化透かし４１２と補完的な透かし４１７との組合せによって満たされるので、マスク化透かし４１４、４１９ａは、完全な透かしの実体を形成するために完全とされる必要はない（たとえば、単数または複数の補完的な透かしで補完する必要はない）ことに留意されたい。一方、図４の例では、仮に透かししきい値が３であった場合には、さらに（すなわち、マスク化透かし４１０、４１２を補完することに加えて）マスク化透かし４１４、４１９ａの少なくとも一方を補完することにより、ともに用いられたときに１つの完全な透かしを与える補完的な透かしから３つの実体が得られる。さらに、仮に透かししきい値が４であった場合には、マスク化透かし４１４、４１９ａの両方を、補完的な透かしでさらに完全にさせると、完全な透かしをまとめて提供する４つの補完が得られる。
【００５４】
[0062]図４でさらに見ることができるように、マスク化透かし４１４は、その不完全な、またはマスク化された状態で、コンテンツにレンダリングされ得る。さらに、本開示に照らして理解されるように、マスク化透かし４１０、４１２、４１４、４１９ａのうちの任意の２つ、および必ずしもマスク化される必要のない透かし４１０、４１２を補完して、コンテンツにレンダリングされる完全な透かしの２つの実体を形成することができるので、２という透かししきい値を満たす。いくつかのそのような例示的な実施形態では、３つのマスク化透かし（すなわち、４１０、４１２、４１４、４１９ａのうちの任意の３つ）は、指定された透かししきい値を満たすように補完され得る。より一般的な意味では、コンテンツに追加された任意の数の透かしを補完して、指定された透かししきい値を満たすことができる。
【００５５】
[0063]図４Ａは、複数の要素にセグメント化（または分割）された例示的な透かしを図示する。図示されるように、例示的な透かしは、１行目におけるテキスト「ＷＡＴＥＲＭＡＲＫ」と、１行目の下の２行目におけるテキスト「ＴＥＸＴ」との２行のテキストで構成される。特に、本明細書に開示される特定の実施形態に従って、透かしは複数の要素にセグメント化され、透かし要素が処理されて、透かしがコンテンツにレンダリングされたとき、透かしの一部がコンテンツにおけるデータ要素をオーバレイするか否かを判定する。いくつかのそのような実施形態では、境界ボックスが透かしを囲むように、境界ボックスが透かしに対して生成される。生成された境界ボックスは、透かしの境界（たとえば、境界線）を線引きまたは定義する。たとえば、境界ボックスは、境界ボックスの４つのコーナの座標によって指定され得る。いくつかの実施形態では、透かしのための境界ボックスは、透かしを強く結合するような方式で生成される。すなわち、境界ボックスは、境界ボックス内で、透かしを表現しない画素の数が削減されるか、理想的には最小化されるように生成される。境界ボックスにおいて透かしを表現しない画素の数を減らすと、計算コストが削減される。たとえば、透かしを表現しない画素の数を減らす（または、理想的には最小にする）と、透かしのセグメント化において処理する必要がある「不要な」画素の数が減る。
【００５６】
[0064]図４Ａの例示的な実施形態に図示されるように、境界ボックス４３０は、透かしのために生成され得る。１つの実施形態では、透かしを含む境界ボックス４３０の内側の領域を表現する画素マップが形成され、透かしを要素に適切にセグメント化するために使用され得る。たとえば、そのような１つの実施形態では、境界ボックス４３０は、その幅（たとえば、ｘ次元）に沿ってセグメント化されて、境界ボックス４３０内に囲まれた透かしをセグメント化することができる。図４Ａの例に見られるように。境界ボックス４３０は、５つの透かし要素を形成するために、５つの要素にセグメント化される。他の実施形態では、透かしを囲む境界ボックスは、その高さ（たとえば、ｙ次元）に沿ってセグメント化されて、境界ボックス内に囲まれた透かしをセグメント化することができる。いずれの場合も、境界ボックスの画素マップを使用して境界ボックスをセグメント化できる。
【００５７】
[0065]実施形態では、透かしは、等しいサイズの要素に分割することができる。たとえば、図４Ａに例示される透かしは、幅が４００画素であると仮定する。この例の場合、４００画素幅の透かしは、５つの要素（５つの透かし要素）にセグメント化され得、各要素は、図４Ａに見られるように、幅が８０画素である。
【００５８】
[0066]実施形態では、透かしをセグメント化する要素の数は、事前に設定（すなわち、一定）され得るか、または可変（すなわち、選択可能）であり得る。１つの実装例では、透かしをセグメント化する要素の数は、可変パラメータを使用して指定され得る。たとえば、この可変パラメータは、許可されたユーザ（システム管理者など）がアクセス可能な構成ファイルで指定され得、ユーザは、所望のレベルのパフォーマンスに基づいてパラメータを変更または調節し得る。いくつかの実装では、この可変パラメータは、現在および／または過去のパフォーマンスのレベルに基づいて（たとえば、プロセッサを介して）自動的に変更され得る。いずれの場合でも、透かしをセグメント化すべき要素の数は、透かしのサイズなどの単数または複数の要因（たとえば、いくつかの例を与えると、透かしにおける画素数、またはテキスト透かしの場合、透かしにおける文字の数、透かしが配置され得る利用可能なスペース（たとえば、領域）の量、コンテンツにおけるデータ要素の密度、および、表示されるべきデータ要素における画素数に対する透かしにおける画素数の比）に基づいて決定できる。
【００５９】
[0067]実施形態において、透かしは、サイズが等しくない要素にセグメント化することができる。たとえば、透かしが、幅４００画素の場合、透かしは、幅５０画素の６つの要素と、幅１００画素の１つの要素とに分割できる。１つの実装例において、透かしは、水平スクロールバーおよび／または垂直スクロールバーを有するウィンドウに提示され得る。次に、ユーザは、提供されたスクロールバーを操作して、透かしを分割またはセグメント化する位置および方法を指定できる（したがって、セグメントの数を効果的に選択する）。
【００６０】
[0068]図５は、本開示の実施形態に従って、コンテンツにマスク化透かしを形成するために使用することができる例示的なネットワーク化されたコンピュータシステムの選択された構成要素を概略的に例示するブロック図である。より具体的には、図５に例示されるシステムは、ユーザ５０２が、透かしシステム５０４のサービスを活用できるようにするものとして理解することができる。たとえば、ユーザ５０２は、透かしシステム５０４のサービスを使用して、単数または複数のマスク化透かしをコンテンツにレンダリングすることができる。透かしシステム５０４のいくつかの実装では、透かしを含むコンテンツが形成されている場合があり、ユーザ５０２は、透かしシステム５０４のサービスを使用して、コンテンツ上の単数または複数の透かしを、マスク化透かしとしてレンダリングすることができる。そのような実施形態では、ユーザ５０２は、ネットワーク５０６を介して透かしシステム５０４と通信することができる。図５に示す例示的なネットワーク化されたコンピュータシステムは、単なる例であり、単一のユーザのみを想定していることに留意されたい。しかしながら、図５に示されるネットワーク化されたコンピュータシステムは、本明細書で説明する技術に従って、マスク化透かしを含めるために、マスク化透かしをレンダリングする際、および／または、コンテンツを生成する際に使用するために、任意の数のユーザおよびそれらの関連するデバイスに容易に拡張されると理解されるべきである。たとえば、複数のユーザが、透かしシステム５０４のサービスを活用することができる。したがって、本明細書に開示される実施形態は、一度に一人のユーザによる透かしシステム５０４の使用に限定されることを意図されていないことが理解されよう。本明細書に開示される実施形態は、コンテンツにマスク化透かしをレンダリングするため、透かしシステム５０４の使用に限定されることを意図していないことも理解されるであろう。むしろ、透かしシステム５０４を使用して、写真におけるコンテンツ、ウェブページにおけるコンテンツ、またはデジタルブックにおけるコンテンツなどのコンテンツに、マスク化透かしを追加して、３つの例を提供できることが、この開示に照らして明らかであろう。
【００６１】
[0069]ネットワーク５０６は、ローカルエリアネットワーク（ホームベースまたはオフィスネットワークなど）、広域ネットワーク（インターネットなど）、ピアツーピアネットワーク（Ｂｌｕｅｔｏｏｔｈ接続など）、または、パブリック、プライベート、またはその両方のいずれかであるそのようなネットワークの組合せであり得る。特定の実施形態では、ネットワーク５０６に関連する機能の少なくとも一部は、セルラデータネットワークによって提供され、それにより、モバイルコンピューティングデバイスのユーザが、透かしシステム５０４のサービスを活用することをより容易にする。一般に、本明細書で説明される様々なエンティティおよびリソース間の通信は、Ｗｉ−Ｆｉまたはモバイルデータネットワークによって提供されるものなど、有線またはワイヤレスの接続を介して生じ得る。これに関して、ネットワーク５０６は、図１に関して以前に説明したネットワーク１０４、１０４’と実質的に同様である。
【００６２】
[0070]図５に例示されるように、ユーザ５０２は、図５に例示された、または、さもなければ本明細書で説明された、透かしシステム５０４の構成要素との相互作用を容易にするデバイスへのアクセスを有する。たとえば、特定の実施形態では、ユーザ５０２は、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、企業クラスのサーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、セルラ電話、スマートフォン、およびセットトップボックスなどのデバイスを含む、様々な適切なコンピューティングデバイスの単数または複数へのアクセスを有する。他の実施形態では、他のデバイスが使用され得る。ユーザ５０２によって使用される単数または複数のデバイスは、オプションとして、ネットワーク５０６を介した通信を可能にする有線および／またはワイヤレスの通信アダプタを含む。単数または複数のデバイスはまた、オプションで、触覚キーボード、ディスプレイ、タッチセンスディスプレイ、マイクロフォン、カメラ、および測位サービスなどの入力／出力構成要素を含む。そのような入力／出力構成要素は、ユーザ５０２が、それ自体のデバイスの動作を制御するだけでなく、透かしシステム５０４の特定の動作態様を制御することも可能にする。
【００６３】
[0071]図５に例示される例示的な実施形態をさらに参照して示すように、透かしシステム５０４は、単数または複数のマスク化透かしを含むコンテンツの生成を容易にするように構成することができる。いくつかの実施形態では、透かしシステム５０４はまた、マスク化透かしを有するコンテンツのレンダリングを生じさせるために、コンテンツに含まれる既存の透かしのマスキングを容易にするように構成される。この目的のために、１つの実施形態では、透かしシステム５０４は、本明細書に開示される特定の機能を実装するように構成される単数または複数のソフトウェアモジュールを含み、オプションで、そのような実装を可能にするように構成されるハードウェアをさらに含む。このハードウェアおよび／またはソフトウェアは、プロセッサ５０８、メモリ５１０、オペレーティングシステム５１２、通信モジュール５１４、およびデータ格納部５１６を含み得るが、これらに限定されない。
【００６４】
[0072]プロセッサ５０８は、透かしシステム５０４の様々な他の構成要素の動作を制御するように設計され得る。プロセッサ５０８は、シングルコアまたはマルチコアのプロセッサなど、透かしシステム５０４での使用に適した任意の処理ユニットを含み得る。一般に、プロセッサ５０８は、任意の適切な専用または汎用コンピュータ、コンピューティングエンティティ、または様々なコンピュータハードウェアまたはファームウェアを含むコンピューティングまたは処理デバイスを含むことができ、任意の適用可能なコンピュータ読み取り可能な記憶媒体に格納された、プログラム命令などの命令を実行するように構成され得る。たとえば、プロセッサ５０８は、マイクロプロセッサと、中央処理装置（ＣＰＵ）と、マイクロコントローラと、デジタル信号プロセッサ（ＤＳＰ）と、特定用途向け集積回路（ＡＳＩＣ）と、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、複雑命令セットコンピュータ（ＣＩＣＳ：Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）と、縮小命令セットコンピュータ（ＲＩＳＣ：Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）と、マルチコアと、または、プログラム命令を解釈および／または実行するように、および／または、メモリからロードされた、またはハードウェアにおいて直接的に実装されたに関わらず、データを処理するように構成された他の任意のデジタルまたはアナログの回路構成とを含み得る。図５では、単一のプロセッサとして例示されているが、プロセッサ５０８は、本開示において説明される任意の数の動作のパフォーマンスを、個別にまたは集合的に、実行または指示するように構成された、任意の数のプロセッサおよび／またはプロセッサコアを含み得る。これに関して、プロセッサ５０８は、図２のコンピューティングデバイス１００に関して以前に説明されたプロセッサ１０３と実質的に同様である。
【００６５】
[0073]メモリ５１０は、これに記憶されたコンピュータ実行可能命令またはデータ構造を伝送または有するように構成されたコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ５０８などの汎用または専用のコンピュータによってアクセスされ得る任意の利用可能な媒体を含み得る。例として、限定ではなく、そのようなコンピュータ読み取り可能な記憶媒体は、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ダイナミックランダムアクセスメモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ：Ｓｙｎｃｈｒｏｎｉｚｅｄ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、スタティックランダムアクセスメモリ（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、不揮発性メモリ（ＮＶＭ：ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）とを含むか、あるいは、コンピュータ実行可能命令またはデータ構造の形態で特定のプログラムコードを実行または保存するために使用され得、汎用または専用のコンピュータによってアクセスされ得る他の任意の適切な記憶媒体とを含む不揮発性のコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれ得る。これに関して、メモリ５１０は、図２のコンピューティングデバイス１００に関して以前に説明した揮発性メモリ１２２と実質的に同様である。
【００６６】
[0074]オペレーティングシステム５１２は、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）（ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社）、ＧＯＯＧＬＥ（登録商標）ＡＮＤＲＯＩＤ（商標）（カリフォルニア州マウンテンビューのＧｏｏｇｌｅ社）、ＡＰＰＬＥ（登録商標）ｉＯＳ（カリフォルニア州クパチーノのＡｐｐｌｅ社）、またはＡＰＰＬＥ（登録商標）ＯＳ  Ｘ（登録商標）（カリフォルニア州クパチーノのＡｐｐｌｅ社）などの任意の適切なオペレーティングシステムを備え得る。この開示に照らして理解されるように、本明細書で提供される技術は、透かしシステム５０４と併せて提供される特定のオペレーティングシステムに関係なく実施でき、したがって、任意の適切な既存のまたはその後開発されるプラットフォームを使用して実施することもできる。これに関して、オペレーティングシステム５１２は、図２のコンピューティングデバイス１００に関して以前に説明したオペレーティングシステム１１５と実質的に同様である。
【００６７】
[0075]通信モジュール５１４は、たとえば、ネットワーク５０６などの単数または複数のネットワークを介して、本明細書で説明する単数または複数の他の構成要素への有線またはワイヤレスの通信を可能にする任意の適切なネットワークチップまたはチップセットとすることができる。通信モジュール５１４は、バスまたは相互接続を介してデバイス内通信を提供するように構成することもできる。これに関して、通信モジュール５１４は、図２のコンピューティングデバイス１００に関して以前に説明した通信インターフェイス１１８と実質的に同様である。
【００６８】
[0076]データ格納部５１６は、データの短期または長期の記憶のために構成された任意のタイプのコンピュータ読み取り可能な記憶媒体を含み得る。例として、限定ではなく、そのようなコンピュータ読み取り可能な記憶媒体は、ハードドライブ、ソリッドステートドライブ、読取専用メモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気的消去可能プログラム可能読取専用メモリ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリデバイス（たとえば、ソリッドステートメモリデバイス）、不揮発性メモリ（ＮＶＭ）、または、本明細書で開示されたような様々な実施形態を実施するために、コンピュータ読み取り可能およびコンピュータ実行可能な命令、ソフトウェアまたはデータ構造の形態で、特定のプログラムコードを実行または記憶するために使用され得、汎用または専用コンピュータによってアクセスされ得る、メモリ５１０と連携して上記で提供されたものを含む他の任意の記憶媒体を含み得る。上記の組合せもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれ得る。データ格納部５１６は、透かしシステム５０４上に提供され得るか、または、透かしシステム５０４とは別個にまたは遠隔的に提供され得る。これに関して、データ格納部５１６は、図２のコンピューティングデバイス１００に関して以前に説明した不揮発性メモリ１２８と実質的に同様である。
【００６９】
[0077]図５に例示される例示的な実施形態を再び参照すると、透かしシステム５０４は、透かしマスクモジュール５２０およびマスク化透かし補完モジュール５２２を含む透かしアプリケーション５１８をさらに含む。透かしアプリケーション５１８は、一般に、透かしマスクモジュール５２０およびマスク化透かし補完モジュール５２２のサービスおよび機能を利用して、透かしのマスキングおよびコンテンツ上のマスク化透かしのレンダリングの全体的な制御を提供するように構成される。透かしアプリケーションは、透かしマスクモジュール５２０およびマスク化透かし補完モジュール５２２のサービスおよび機能を利用して、画像、ディスプレイ、ブラウザ、ユーザインターフェイス、印刷ドキュメントなどにコンテンツおよび透かしをレンダリングし得る。
【００７０】
[0078]特に、いくつかの実施形態によれば、透かしアプリケーション５１８は、たとえば、コンテンツがディスプレイデバイス上に表示のためにレンダリングされるとき、またはその場合に、コンテンツにレンダリングされる透かしの存在を判定する。透かしをレンダリングするために、透かしアプリケーション５１８は、透かしを複数の要素にセグメント化し、透かしを要素ごとにレンダリングすることができる。そのようないくつかの実施形態では、透かしアプリケーション５１８は、透かしマスクモジュール５２０を利用して、各透かし要素をレンダリングすることができる。
【００７１】
[0079]以下でさらに説明するように、１つの実施形態によれば、透かしマスクモジュール５２０は、透かし要素をコンテンツにレンダリングする（たとえば、透かし要素が、コンテンツ内のデータをオーバレイするようにする）か、コンテンツ内のデータ要素が透かし要素をオーバレイするように透かしをレンダリングすることができる。データ要素が、透かし要素をオーバレイする場合、透かし要素がマスクされることにより、マスク化透かしとして、透かしはコンテンツにレンダリングされることとなる。
【００７２】
[0080]いくつかの実施形態では、透かしアプリケーション５１８は、コンテンツに（その後、画像、ディスプレイ、またはブラウザ、ユーザインターフェイス、印刷されたドキュメントなどの上に）レンダリングされた任意の完全な透かし（マスクされていない任意の透かし）を含むマスク化透かしの実体が、透かししきい値を満たすかを確認するように構成される。たとえば、透かしが、コンテンツにマスク化透かしとしてレンダリングされる場合、透かしの意図された機能（完全な透かし）が保持されないことがある。つまり、レンダリングされるマスク化透かしは、完全な透かしのために意図された機能を果たすのに十分な量の情報を伝えない場合がある。コンテンツにレンダリングする必要のある完全な透かし実体の数を定義する透かししきい値は、コンテンツにマスク化透かしをレンダリングすることにより、コンテンツに透かしを入れるという意図された機能が失われないことを保証する形態であり得る。そのような実施形態では、透かしアプリケーション５１８は、レンダリングされた透かし要素（レンダリングされたマスク化透かし、およびレンダリングされた完全な透かしの一部としてレンダリングされた透かし要素）が、透かししきい値を満たすか否かを判定するように確認する。レンダリングされた透かし要素が、いくつかの完全な透かしの実体に結合さもなければ累積して、透かししきい値を満たすことができる場合、透かしアプリケーション５１８は、透かし要素のレンダリングが、許容可能、さもなければ十分であると結論付けることができる。そうではなく、レンダリングされた透かし要素が、透かししきい値を満たすためにいくつかの完全な透かしの実体に累積しない場合、透かしアプリケーション５１８は、透かし要素のレンダリングは十分ではないと結論付けることができる。レンダリングされた透かし要素が、透かししきい値を満たすために、いくつかの完全な透かしの実体に累積しない場合、透かしアプリケーション５１８は、マスク化透かし補完モジュール５２２を利用して、マスク化透かし要素（たとえば、透かしのレンダリング中にマスク化透かしの一部）をレンダリングすることができる。以下でさらに説明するように、１つの実施形態によれば、マスク化透かし補完モジュール５２２は、透かししきい値を満たすために、必要に応じて、コンテンツにマスク化透かし要素をレンダリングすることができる。
【００７３】
[0081]実施形態では、透かししきい値は、可変パラメータを使用して指定され得る。たとえば、この可変パラメータは、（システム管理者のような）許可されたユーザがアクセス可能な構成ファイルで指定され得、ユーザは、所望のレベルのパフォーマンスに基づいてパラメータを調整または調節し得る。いくつかの実装では、この調整可能なパラメータは、１つの例のみを提供すると、データ要素が存在しないコンテンツ内のスペースの量などの単数または複数の要因に基づいて（たとえば、プロセッサを介して）自動的に調整され得る。透かしをセグメント化する要素の数を決定することに関して以前に説明した単数または複数の要因などの他の要因も使用され得る。
【００７４】
[0082]透かしマスクモジュール５２０は、透かし要素がレンダリングされるべきコンテンツ内の位置におけるデータ要素の存在を検出するように構成される。たとえば、実装例では、透かしマスクモジュール５２０は、コンテンツ内の色の分布（たとえば、色ヒストグラム）に基づいてコンテンツ内のデータ要素を検出することができる。他の実装では、透かしマスクモジュール５２０は、当業者に明らかなように、コンテンツ内のデータ要素を検出するために、いくつかの例を与えると、画素強度（グレー強度または色強度）、画素の輝度、およびエッジ検出のような他の技術を適用し得る。透かし要素がレンダリングされる位置でデータ要素が検出された場合、透かしマスクモジュール５２０は、データ要素が、透かし要素をオーバレイするように、コンテンツに透かし要素をレンダリングする。そうではなく、透かし要素がレンダリングされる位置でデータ要素が検出された場合、透かしマスクモジュール５２０は、透かし要素をコンテンツにレンダリングする（たとえば、透かし要素は、コンテンツ内のデータをオーバレイする）。透かしマスクモジュール５２０は、図７に関して以下でさらに説明される。
【００７５】
[0083]マスク化透かし補完モジュール５２２は、データ要素の存在のためにレンダリングされなかったマスク化透かしの一部をレンダリングすることによって、レンダリングされたマスク化透かしを補完するように構成される。そうするために、１つの実施形態に従って、マスク化透かし補完モジュール５２２は、レンダリングする必要がある透かし要素を、透かし要素の編成リストに編成する。例として、透かしが、透かし要素Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆで構成されていると仮定する。また、コンテンツにレンダリングされた第１の透かしの実体が、透かし要素Ａ、Ｂ、Ｃを有する第１のマスク化透かしであり、コンテンツにレンダリングされた第２の透かしの実体が、透かし要素Ｅ、Ｆを有する第２のマスク化透かしであると仮定する。つまり、透かしの２つの実体をレンダリングする際に、透かし要素Ｄ、Ｅ、Ｆが、第１のマスク化透かしにおいてマスクされ（データ要素でオーバレイされ）、透かし要素Ａ、Ｂ、Ｃ、Ｄが、第２のマスク化透かしにおいてマスクされた。この例では、マスク化透かし補完モジュール５１２は、透かし要素Ｄ、Ｅ、Ｆを、第１のリストに編成し、透かし要素Ａ、Ｂ、Ｃ、Ｄを、第２のリストに編成することができる。第１のリストに含まれる透かし要素Ｄ、Ｅ、Ｆは、事実上１つの透かし要素になり、第２のリストに含まれる透かし要素Ａ、Ｂ、Ｃ、Ｄは、事実上別の透かし要素になる。ここで、透かし要素Ｄ、Ｅ、Ｆからなる第１のリストをともにレンダリングして、第１のマスク化透かしを補完する（たとえば、レンダリングされた第１のマスク化透かしは、レンダリングされた透かし要素Ｄ、Ｅ、Ｆによって補完された場合、完全な透かしの第１の実体を形成する）ことができ、透かし要素からなる第２のリストをともにレンダリングして、第２のマスク化透かしを補完する（たとえば、レンダリングされた第２のマスク化透かしは、レンダリングされた透かし要素Ａ、Ｂ、Ｃ、Ｄによって補完された場合、完全な透かしの第２の実体を形成する）ことができる。次に、マスク化透かし補完モジュール５２２は、必要な透かし要素の最長のリストから始めて、データ要素を含まず、リストに透かし要素をレンダリングするのに十分大きな領域がコンテンツにあるか否かを判定する。コンテンツにそのような領域が見つかった場合、マスク化透かし補完モジュール５２２は、見つかった領域のリストに、透かし要素をレンダリングする。レンダリングされた透かし要素は、補完的な透かしと呼ばれる。そうではなく、そのような領域がコンテンツに見つからない場合、マスク化透かし補完モジュール５２２は、リスト内の透かし要素を、より小さな要素に分割し（たとえば、リスト内の実質的に１つの透かし要素を、複数のより小さな透かし要素に分割し）、より小さな透かし要素をレンダリングして、リスト内の透かし要素を効果的にレンダリングするように試みる。マスク化透かし補完モジュール５２２は、指定された透かししきい値が満たされるまで、または必要な透かし要素のすべてのリストが処理されるまで、必要な透かし要素の次のリスト（たとえば、必要な透かし要素の次に大きなリスト）に対してこの処理を繰り返す。マスク化透かし補完モジュール５２２については、図８に関して以下でさらに説明する。
【００７６】
[0084]様々な実施形態では、本開示の範囲から逸脱することなく、追加の構成要素または例示された構成要素のサブセットを使用することができる。たとえば、他の実施形態は、透かしマスクモジュールおよびマスク化透かし補完モジュールを含む透かしアプリケーションの様々な機能を、より少ないモジュール（たとえば、１つまたは２つ）またはより多くのモジュール（たとえば、４つまたは５つ、またはそれ以上）に統合し得る。さらに、透かしアプリケーションの様々な構成要素が、追加のマシンに分散されている可能性があることにさらに留意されたい。いくつかの場合には、透かしマスクモジュールおよび／またはマスク化透かし補完モジュールは、ローカル実行のためにサーバコンピューティングシステムからユーザデバイスにダウンロードされ得る。いくつかの場合には、透かしマスクモジュールおよび／またはマスク化透かし補完モジュールによって提供される機能は、ユーザデバイスに通信可能に結合されたサーバコンピューティングシステム上で提供され得る。より一般的な意味では、本開示に照らして理解されるように、本明細書で提供される機能構成要素の統合および分散の程度は、実施形態ごとに大きく異なり得る。
【００７７】
[0085]本明細書で説明される実施形態は、ハードウェア、ソフトウェア、ファームウェア、または専用プロセッサの様々な形態で実施することができる。たとえば、１つの実施形態では、不揮発性のコンピュータ読み取り可能な媒体は、単数または複数のプロセッサによって実行されると、本明細書で説明する透かしシステム５０４の態様を実施させる、その上に符号化された命令を含む。命令は、Ｃ、Ｃ＋＋、オブジェクト指向Ｃ、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、Ｖｉｓｕａｌ  Ｂａｓｉｃ  ．ＮＥＴ、ＢＡＳＩＣ、Ｓｃａｌａのような任意の適切なプログラミング言語を使用して、あるいはカスタムまたは独自の命令セットを使用して符号化できる。そのような命令は、メモリデバイス上で有体的に具体化され、任意の適切なアーキテクチャを有するコンピュータによって実行され得る、単数または複数のコンピュータソフトウェアアプリケーションまたはアプレットの形態で提供され得る。１つの実施形態では、システムは、所与のウェブサイト上でホストされ、たとえば、本明細書で説明されたマスク化透かしおよび／または補完的な透かしをレンダリングするために、たとえばＪａｖａＳｃｒｉｐｔまたは別の適切なブラウザベースの技術を使用して実施され得る。
【００７８】
[0086]本明細書に開示される機能は、オプションで、いくつかの例を挙げると、透かし入れアプリケーション、画像共有アプリケーション、写真共有アプリケーション、ウェブオーサリングアプリケーション、およびウェブオーサリングシステムを含む、様々な異なるソフトウェアアプリケーションおよびシステムに組み込むことができる。本明細書で開示される機能は、追加的または代替的に、別個のソフトウェアアプリケーションおよびシステムによって提供されるサービスを活用することができる。たとえば、１つの実施形態では、本明細書で開示される機能は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ａｚｕｒｅ（登録商標）、ＡＷＳ（登録商標）、Ｇｏｏｇｌｅ  Ｃｌｏｕｄ（商標）、または任意の適切なクラウド環境のようなクラウド環境において実施され得る。追加的または代替的に、本明細書で開示される機能は、たとえば、図５Ａに関連して説明されるようなＩａａＳフレームワークを使用して実施される。本明細書に開示されるコンピュータソフトウェアアプリケーションは、多数の異なるモジュール、サブモジュール、または別個の機能の他の構成要素を含み得、さらに他の構成要素およびサービスに情報を提供し、またはさらに他の構成要素およびサービスから情報を受信することができる。これらのモジュールは、たとえば、表示画面、タッチセンサ面、聴覚インターフェイス、デジタルカメラ、または他の適切な入力／出力デバイスなどの入力／出力デバイスと通信するために使用できる。例示に反映されていない他の構成要素および機能は、この開示に照らして明らかであり、本開示は、いかなる特定のハードウェアまたはソフトウェア構成に限定されることも意図されていないことが理解されよう。したがって、他の実施形態では、図５に例示される構成要素は、追加の、より少ない、または代替のサブ構成要素を含み得る。さらに、いくつかの場合には、図５に例示されているモジュールおよび構成要素の単数または複数は、ローカル実行のために、サーバコンピューティングシステムからユーザデバイスにダウンロードされ得る。
【００７９】
[0087]代替実施形態では、本明細書で開示されるコンピュータおよびモジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのゲートレベルロジックを含むハードウェアで、または代替として、特定用途向け集積回路（ＡＳＩＣ）などの専用の半導体で実装することができる。さらに他の実施形態は、データを受信および出力するためのいくつかの入力／出力ポート、および本明細書に開示される様々な機能を実行するためのいくつかの組込ルーチンを有するマイクロコントローラで実装され得る。これに関して、ハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを使用できること、および本開示が任意の特定のシステムアーキテクチャに限定されることを意図していないことは明らかであろう。
【００８０】
[0088]ここで図５Ａを参照して示すように、クラウド環境、クラウドコンピューティング、またはクラウドネットワークと呼ばれ得るクラウドコンピューティング環境５５０が示されている。クラウドコンピューティング環境５５０は、共有コンピューティングサービスおよび／またはリソースの供給を、複数のユーザまたはテナントに提供することができる。たとえば、共有リソースおよびサービスは、ネットワーク、ネットワーク帯域幅、サーバ、プロセシング、メモリ、ストレージ、アプリケーション、仮想マシン、データベース、ソフトウェア、ハードウェア、分析、およびインテリジェンスを含むことができるが、これらに限定されない。
【００８１】
[0089]クラウドコンピューティング環境５５０では、（以前に説明したような）単数または複数のクライアント１０２ａ〜１０２ｎは、クラウドネットワーク５５２と通信している。クラウドネットワーク５５２は、バックエンドプラットフォーム、たとえば、サーバ、ストレージ、サーバファーム、またはデータセンタを含み得る。ユーザまたはクライアント１０２ａ〜１０２ｎは、単一の組織／テナントまたは複数の組織／テナントに相当することができる。より具体的には、１つの実装例では、クラウドコンピューティング環境５５０は、単一の組織（たとえば、企業クラウド）にサービスを提供するプライベートクラウドを提供し得る。別の例では、クラウドコンピューティング環境５５０は、複数の組織／テナントにサービスを提供するコミュニティまたはパブリッククラウドを提供し得る。
【００８２】
[0090]いくつかの実施形態では、ゲートウェイ機器またはサービスを利用して、クラウドコンピューティングリソースおよび仮想セッションへのアクセスを提供し得る。例として、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ社によって提供されるＣｉｔｒｉｘ  Ｇａｔｅｗａｙが、業務またはパブリッククラウドに展開され、仮想的なＳａａＳおよびＷｅｂアプリケーションへの安全なアクセスおよびシングルサインオンをユーザに提供し得る。さらに、ユーザをウェブの脅威から保護するために、Ｃｉｔｒｉｘ  Ｓｅｃｕｒｅ  Ｗｅｂ  Ｇａｔｅｗａｙなどのゲートウェイが使用され得る。Ｃｉｔｒｉｘ  Ｓｅｃｕｒｅ  Ｗｅｂ  Ｇａｔｅｗａｙは、クラウドベースのサービスおよびローカルキャッシュを使用して、ＵＲＬの評判およびカテゴリを確認する。
【００８３】
[0091]さらに別の実施形態では、クラウドコンピューティング環境５５０は、パブリッククラウドとプライベートクラウドとの組合せであるハイブリッドクラウドを提供し得る。パブリッククラウドは、クライアント１０２ａ〜１０２ｎまたは企業／テナントへのサードパーティによって管理されるパブリックサーバを含み得る。サーバは、地理的に離れた場所などのオフサイトに配置され得る。
【００８４】
[0092]クラウドコンピューティング環境５５０は、それぞれの環境内の異なる要求に応じて動的に割り当てられ、再割り当てされる異なる物理的および仮想的なリソースを有するマルチテナント環境またはマルチテナントモデルを通じて、クライアント１０２ａ〜１０２ｎを介して複数のユーザにサービスを提供するリソースプーリングを提供できる。マルチテナント環境は、複数のユーザにサービスするために、ソフトウェアの単一のインスタンス、アプリケーション、またはソフトウェアアプリケーションを提供することができる。いくつかの実施形態では、クラウドコンピューティング環境５５０は、オンデマンドセルフサービスを提供して、複数のクライアント１０２ａ〜１０２ｎのためにネットワーク全体にわたってコンピューティング機能（たとえば、サーバ時間、ネットワークストレージ）を一方的にプロビジョニングすることができる。例として、プロビジョニングサービスは、Ｃｉｔｒｉｘ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｓｅｒｖｉｃｅｓ（Ｃｉｔｒｉｘ  ＰＶＳ）などのシステムを通じて提供され得る。Ｃｉｔｒｉｘ  ＰＶＳは、共有のデスクトップ画像を介して、複数の仮想デスクトップエンドポイントにパッチ、アップデート、および他の構成情報を配信するソフトウェアストリーミング技術である。クラウドコンピューティング環境５５０は、単数または複数のクライアント１０２からの異なる要求に応じて、動的にスケールアウトまたはスケールする弾性を提供することができる。いくつかの実施形態では、クラウドコンピューティング環境５５０は、提供された共有サービスおよびリソースに対応するレポートを監視、制御および／または生成する監視サービスを含むかまたは提供することができる。
【００８５】
[0093]いくつかの実施形態では、クラウドコンピューティング環境５５０は、たとえば、ソフトウェア・アズ・ア・サービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）５５４、プラットフォーム・アズ・ア・サービス（ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）５５６、インフラストラクチャ・アズ・ア・サービス（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）５５８、およびデスクトップ・アズ・ア・サービス（Ｄａａｓ：Ｄｅｓｋｔｏｐ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）５６０のような異なるタイプのクラウドコンピューティングサービスのクラウドベースの供給を提供し得る。ＩａａＳは、指定された期間中に必要なインフラストラクチャリソースの使用をレンタルするユーザを指し得る。ＩａａＳプロバイダは、大規模なプールからストレージ、ネットワーキング、サーバ、または仮想化リソースを提供し、ユーザは、必要に応じてより多くのリソースにアクセスすることで、迅速にスケールアップできる。ＩａａＳの例は、ワシントン州シアトルのＡｍａｚｏｎ社によって提供されるＡＭＡＺＯＮ  ＷＥＢ  ＳＥＲＶＩＣＥＳ、テキサス州サンアントニオのＲａｃｋｓｐａｃｅ  ＵＳ社によって提供されるＲＡＣＫＳＰＡＣＥ  ＣＬＯＵＤ、カリフォルニア州マウンテンビューのＧｏｏｇｌｅ社によって提供されるＧｏｏｇｌｅ  Ｃｏｍｐｕｔｅ  Ｅｎｇｉｎｅ、またはカリフォルニア州サンタバーバラのＲｉｇｈｔＳｃａｌｅ社によって提供されるＲＩＧＨＴＳＣＡＬＥを含む。
【００８６】
[0094]ＰａａＳプロバイダは、たとえば、ストレージ、ネットワーキング、サーバ、または仮想化、並びに、たとえば、オペレーティングシステム、ミドルウェア、またはランタイムリソースなどの追加のリソースを含む、ＩａａＳによって提供される機能を提供し得る。ＰａａＳの例は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社によって提供されるＷＩＮＤＯＷＳ  ＡＺＵＲＥ、Ｇｏｏｇｌｅ社によって提供されるＧｏｏｇｌｅ  Ａｐｐ  Ｅｎｇｉｎｅ、およびカリフォルニア州サンフランシスコのＨｅｒｏｋｕ社によって提供されるＨＥＲＯＫＵを含む。
【００８７】
[0095]ＳａａＳプロバイダは、ストレージ、ネットワーキング、サーバ、仮想化、オペレーティングシステム、ミドルウェア、またはランタイムリソースを含む、ＰａａＳが提供するリソースを提供し得る。いくつかの実施形態では、ＳａａＳプロバイダは、たとえば、データおよびアプリケーションリソースを含む追加のリソースを提供し得る。ＳａａＳの例は、Ｇｏｏｇｌｅ社によって提供されるＧＯＯＧＬＥ  ＡＰＰＳ、カリフォルニア州サンフランシスコのＳａｌｅｓｆｏｒｃｅ．ｃｏｍ社によって提供されるＳＡＬＥＳＦＯＲＣＥ、またはＭｉｃｒｏｓｏｆｔ社によって提供されるＯＦＦＩＣＥ３６５を含む。ＳａａＳの例はまた、たとえば、Ｃｉｔｒｉｘ  ＳｙｓｔｅｍｓからのＣｉｔｒｉｘ  ＳｈａｒｅＦｉｌｅ、カリフォルニア州サンフランシスコのＤｒｏｐｂｏｘ社によって提供されるＤＲＯＰＢＯＸ、Ｍｉｃｒｏｓｏｆｔ社によって提供されるＭｉｃｒｏｓｏｆｔ  ＳＫＹＤＲＩＶＥ、Ｇｏｏｇｌｅ社によって提供されるＧｏｏｇｌｅ  Ｄｒｉｖｅ、またはカリフォルニア州クパチーノのＡｐｐｌｅ社によって提供されるＡｐｐｌｅ  ＩＣＬＯＵＤのようなデータストレージプロバイダを含み得る。
【００８８】
[0096]ＳａａＳと同様に、ＤａａＳ（ホストされたデスクトップサービスとしても知られている）は、仮想デスクトップセッションが通常、仮想デスクトップで使用されるアプリとともにクラウドサービスとして供給される仮想デスクトップインフラストラクチャ（ＶＤＩ）の形態である。Ｃｉｔｒｉｘ  ＳｙｓｔｅｍからのＣｉｔｒｉｘ  Ｃｌｏｕｄは、Ｄａａｓデリバリプラットフォームの一例である。ＤａａＳデリバリプラットフォームは、たとえば、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社からのＡＺＵＲＥ  ＣＬＯＵＤ（ここでは「Ａｚｕｒｅ」）、またはワシントン州シアトルのＡｍａｚｏｎ．ｃｏｍ社によって提供されるＡＭＡＺＯＮ  ＷＥＢ  ＳＥＲＶＩＣＥＳ（ここでは「ＡＷＳ」）のようなパブリック・クラウド・コンピューティング・インフラストラクチャへホストされ得る。Ｃｉｔｒｉｘ  Ｃｌｏｕｄの場合、Ｃｉｔｒｉｘ  Ｗｏｒｋｓｐａｃｅアプリは、アプリ、ファイル、デスクトップを（オンプレミスでもクラウドでも）統合し、統一された体験を提供するための単一エントリポイントとして使用され得る。
【００８９】
[0097]図６は、本開示の実施形態に従って、マスク化された視覚的な透かしをレンダリングするための例示的な処理６００を例示するフロー図である。例示的な処理６００、並びに以下でさらに説明される例示的な処理７００、８００に例示される動作、機能、またはアクションは、いくつかの実施形態では、図５の透かしアプリケーション５１８の様々な構成要素によって実行され得る。例示的な処理６００、および例示的な処理７００、８００のそれぞれのブロックに説明されている動作、機能、またはアクションは、図５の透かしシステム５０４のメモリ５１０および／またはデータ格納部５１６などのコンピュータ読み取り可能媒体に、コンピュータ実行可能命令として格納され得る。
【００９０】
[0098]この開示に照らしてさらに理解されるように、本明細書で開示されるこの処理および他の処理および方法について、処理および方法で実行される機能は、異なる順序で実施され得る。追加的または代替的に、２つ以上の動作は、同時に、または、さもなければ、重複する同時方式で実行され得る。さらに、概説されたアクションおよび動作は例としてのみ提供され、アクションおよび動作のいくつかはオプションであり、より少ないアクションおよび動作に組み合わされるか、または開示された実施形態の本質を損なうことなく追加のアクションおよび動作に拡張され得る。
【００９１】
[0099]図６を参照して示すように、処理６００の動作は、たとえば、プロセッサ５０８などのプロセッサ上で実行する透かしアプリケーション（透かしアプリケーション５１８など）によって実行される。動作６０２において、コンテンツ（たとえば、画像）上にレンダリングされる必要がある透かしが特定される。たとえば、いくつか例を与えると、透かし自体、透かしのサイズ、および透かしの向きなど、透かしに関するデータと、レンダリングする透かしの実体の数と、透かしの実体をレンダリングするコンテンツ内の位置とが、透かし定義ファイルにおいて提供され得る。動作６０４において、特定された透かしは、必要に応じて透かしをマスキングすることによってコンテンツにレンダリングされる。実装例では、透かしマスクモジュール５２０を利用して、コンテンツに透かしをレンダリングすることができる。動作６０６において、レンダリングされたマスク化透かしを含む、レンダリングされた透かしの実体が、指定された透かししきい値を満たす（すなわち、少なくとも、生成および／またはレンダリングされる完全な透かしのしきい値数である）か否かを判定するための確認が行われる。透かししきい値が満たされる場合、動作６０８において、レンダリングされた透かしの実体が十分であると結論付けられる。そうではなく、透かししきい値が満たされない場合、動作６１０において、レンダリングされたマスク化透かしは、透かししきい値を満たす試みで補完される。実装例では、マスク化透かし補完モジュール５２２を利用して、マスク化透かしが補完され得る。
【００９２】
[00100]図７は、本開示の実施形態に従って、必要に応じて透かしをマスキングすることによって透かしをレンダリングするための例示的な処理７００を例示するフロー図である。処理７００の動作は、マスク化透かし補完モジュール５２２によって実行される。動作７０２において、コンテンツおよびコンテンツ内に適用された透かしが読み取られる。たとえば、例示的な実施形態では、コンテンツ（たとえば、画像）を読み取ることにより、データ要素およびコンテンツ内のデータ要素の位置を検出することができ、透かしを読み取ることにより、透かしのサイズまたは複数のサイズと、コンテンツ内の透かしの位置とを決定することができる。動作７０４において、すべての透かしがレンダリングのために処理されたか否かを判定するための確認が行われる。すべての透かしが処理された場合、動作７０６において、透かしの処理が完了する。そうではなく、すべての透かしが、すべて処理されている訳ではない場合、動作７０８において、レンダリングのために処理する透かしが特定される。特定された透かしは、現在の透かし（処理中の現在の透かし）と呼ばれる。動作７１０において、現在の透かしが、複数の透かし要素にセグメント化される。
[00101]動作７１２において、現在の透かしのすべての透かし要素が処理されたか否かを判定するための確認が行われる。現在の透かしのすべての透かし要素が処理された場合、動作７０４において、すべての透かしがレンダリングのために処理されたか否かを判定するための確認が行われ、処理が続行する。そうではなく、現在の透かしのすべての透かし要素が処理されている訳ではない場合、動作７１４において、処理する透かし要素が特定される。特定された透かし要素は、現在の透かし要素であり、現在の透かし要素（処理中の現在の透かし）と呼ばれる。
【００９３】
[00102]動作７１６において、現在の透かし要素がレンダリングされるコンテンツ内の位置（たとえば、画像内の位置）にデータ要素が存在するか否かを判定するための確認が行われる。現在の透かし要素がレンダリングされる位置でデータ要素が検出された場合、動作７１８において、データ要素が現在の透かし要素をオーバレイするように、現在の透かし要素がその位置にレンダリングされる。そうではなく、現在の透かし要素がレンダリングされる位置でデータ要素が検出されない場合、動作７２０において、現在の透かし要素が、コンテンツをオーバレイするように、現在の透かし要素がその位置にレンダリングされる（たとえば、現在の透かし要素は、データ要素またはデータ要素の一部をオーバレイする）。いずれの場合も、現在の透かし要素の処理に続いて、動作７１２において、現在の透かしのすべての透かし要素が処理されたか否かを判定するための確認が行われ、処理が続行する。
【００９４】
[00103]図８は、本開示の実施形態に従って、マスク化透かしを補完するための例示的な処理８００を例示するフロー図である。処理８００の動作は、マスク化透かし補完モジュール５２２によって実行される。動作８０２において、指定された透かししきい値が満たされているか否かを判定するための確認が行われる。特に、レンダリングされたマスク化透かし、および他のレンダリングされた完全な透かしと組み合わされたときに、指定された透かししきい値を満たすために十分に補完的な透かしがコンテンツにレンダリングされているか否かを判定するための確認が行われる。透かししきい値が満たされる場合、レンダリングされた補完的な透かしは十分であり、動作８０４において、処理は完了する。そうではなく、透かししきい値が満たされない場合、動作８０６において、必要な透かし要素（たとえば、データ要素の存在のためにレンダリングされなかったが、レンダリングされたマスク化透かし要素）が、単数または複数の編成リストに編成される。ここで、各リストは、特定のレンダリングされたマスク化透かしを補完する（つまり、完全化する）ために必要な透かし要素を含む。したがって、たとえば、２つのレンダリングされたマスク化透かしの場合、必要な透かしの２つの編成リストがある。
【００９５】
[00104]動作８０８において、最長のリスト内の透かし要素をレンダリングするために必要なコンテンツ領域（たとえば、画像領域）のサイズが計算される。この例の場合、透かし要素のリストは、最長のリストで始まって順に処理される。つまり、最長のリストにおける透かし要素を最初にレンダリングする試みが行われる。しかしながら、透かし要素のリストは、任意の順序で処理されることに留意されたい。たとえば、他の実施形態では、透かし要素のリストは、最短のリストで始まって、または任意の順序で処理され得る。処理するために残っている最長のリストは、現在のリスト（処理中の透かし要素の現在のリスト）と呼ばれる。
【００９６】
[00105]動作８１０において、現在のリストに透かし要素をレンダリングするのに十分な空白領域がコンテンツにあるか否かを判定するための確認が行われる。１つの実施形態では、コンテンツ内のデータ要素を検出するために使用されるのと同じまたは類似の技術を使用して、現在のリスト内の透かし要素をレンダリングするのに十分な空白領域がコンテンツ内にあるか否かを判定することができる。コンテンツ内にそのような空白領域が見つかった場合、動作８１２において、現在のリスト内の透かし要素が、コンテンツのうちの特定された空白領域に、補完的な透かしとしてレンダリングされる。次に、動作８０２において、指定された透かししきい値が満たされているか否かを判定するための確認が行われ、処理が続行する。ここでは、レンダリングされたマスク化透かしと、他のレンダリングされた完全な透かしとを組み合わせたときに、レンダリングされたばかりの補完的な透かしが、指定された透かししきい値を満たすのに十分か否かを判定するための確認が行われる。
【００９７】
[00106]そうではなく、現在のリストにおける透かし要素をレンダリングするのに十分な空白領域がコンテンツに見つからない場合、動作８１４において、現在のリストを、複数のより小さなリストに分割できるか否かを判定するための確認が行われる。ここでは、現在のリストにおける透かし要素をともにレンダリングするために必要な空白領域（たとえば、単一の要素）が見つからなかったため（動作８１０）、これらの透かし要素を、コンテンツの１つの領域にまとめるのではなく、コンテンツ内の個別の領域における小さな領域片にレンダリングする試みが行われる。リストをどれだけ短く（小さく）できるか、リストを何回分割できるかには制限があり得ることに留意されたい。たとえば、この制限は、許可されたユーザ（システム管理者など）にアクセス可能な構成ファイルで指定でき、ユーザは、所望のレベルのパフォーマンスに基づいて、制限を変更または調節し得る。
【００９８】
[00107]現在のリストが分割できる場合、動作８１６において、現在のリストは、複数のより小さなリストに分割される。現在のリストを分割するときに、現在のリスト内の個々の透かし要素を保持（保存）する必要がないことに留意されたい。つまり、現在のリストは、現在のリスト内の個々の透かし要素の特性に関係なく、複数の小さなリストに分割できる。次に、動作８０８において、最長のリスト内の透かし要素をレンダリングするために必要な領域のサイズが計算され、処理が続行する。この場合、最長のリストは、現在のリストを分割することによって作成された複数のより小さなリストの中で最長のものである（動作８１６）。
【００９９】
[00108]そうではなく、現在のリストをさらに分割できない（たとえば、現在のリストが事前に設定された回数分割されているか、または、現在のリストの長さは、現在のリストを分割すると、長さにおいて事前に設定された制限よりも短い、より小さなリストを作成する）場合、動作８１８において、もしも可能であれば、透かし要素の次に長いリストが特定され、処理は続行する。ここで、現在のリストは、コンテンツにレンダリングできないため、小さな領域片でも（動作８１４）、透かしのしきい値を満たすために、次のリスト（たとえば、次に長いリスト）における透かし要素をレンダリングする試みが行われる。しかしながら、必要な透かし要素のすべてのリストが処理され、それ以上処理するリストがない場合もあり得る。この場合の結果は、指定された透かししきい値を満たせないことであり、この結果を通知するためにエラー通知が生成され得る。
【０１００】
[00109]様々な実施形態の説明では、上記で特定され、本明細書の一部を形成し、本明細書で説明される概念の態様が実現され得る様々な実施形態を例示として示す添付図面が参照される。本明細書で説明される概念の範囲から逸脱することなく、他の実施形態が利用され得、構造的および機能的な修正が行われ得ることを理解されたい。したがって、本明細書で説明される概念の様々な態様は、本明細書で具体的に説明されるもの以外の実施形態で実施され得ることを理解されたい。本明細書で説明される概念は、本明細書で具体的に説明されるものとは異なる手法で実現または実行されることも理解されたい。
【０１０１】
[00110]本開示で使用される場合、「エンジン」または「モジュール」または「構成要素」という用語は、エンジンまたはモジュールまたは構成要素および／またはソフトウェアオブジェクトまたはソフトウェアルーチンのアクションを実行するように構成された特定のハードウェア実装を指す場合があり、コンピューティングシステムの汎用ハードウェア（たとえば、コンピュータ読み取り可能な媒体、処理デバイスなど）で格納および／または実行され得る。いくつかの実施形態では、本開示で説明される異なる構成要素、モジュール、エンジン、およびサービスは、コンピューティングシステム上で（たとえば、別個のスレッドとして）実行するオブジェクトまたは処理として実装され得る。本開示で説明されるシステムおよび方法のいくつかは、一般にソフトウェアで実装される（汎用ハードウェアで格納および／または実行される）ものとして説明されるが、特定のハードウェア実装、ファームウェア実装、またはそれらの任意の組合せも可能であり、考慮される。この説明では、「コンピューティングエンティティ」は、本開示で以前に説明した任意のコンピューティングシステム、またはコンピューティングシステムで実行する任意のモジュールまたはモジュレートの組合せであり得る。
【０１０２】
[00111]本開示および添付の特許請求の範囲（たとえば、添付の特許請求の範囲のボディ）で使用される用語は、一般に「オープン」な用語として意図されている（たとえば、「含んでいる」という用語は、「含んでいるが、それに限定されない」と解釈されるべきであり、「有する」という用語は「少なくとも有する」と解釈されるべきであり、「含む」という用語は「含むが、それに限定されない」などと解釈されるべきである）。
【０１０３】
[00112]さらに、特定の数の導入された特許請求の範囲の記載が意図される場合、そのような意図は特許請求の範囲に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。たとえば、理解の助けとして、以下の添付の特許請求の範囲は、特許請求の範囲の記載を導入するための導入句「少なくとも１つ」および「単数または複数」の使用を含み得る。しかしながら、そのような語句の使用は、たとえ同じ特許請求の範囲が「単数または複数」または「少なくとも１つ」といった導入句と、「ａ」または「ａｎ」などの不定冠詞とを含む（たとえば、「ａ」および／または「ａｎ」が、「少なくとも１つ」または「単数または複数」を意味するように解釈されるべきである）場合であっても、不定冠詞「ａ」または「ａｎ」による特許請求の範囲の引用の導入により、そのような導入された特許請求の範囲の列挙を含むどの特定の特許請求の範囲も、そのような列挙を１つだけ含む実施形態に限定することを意味すると解釈されるべきではなく、特許請求の範囲の引用を導入するために使用される明確な記事の使用についても同じことが当てはまる。
【０１０４】
[00113]さらに、特定数の導入された特許請求の範囲の列挙が、明示的に列挙されている場合でも、そのような列挙は、少なくとも列挙された数を意味すると解釈されるべきである（たとえば、他の修飾子なしの「２つのウィジェット」というままの列挙は、少なくとも２つのウィジェット、または２つ以上のウィジェットを意味する）。さらに、「Ａ、Ｂ、Ｃのうちの少なくとも１つなど」または「Ａ、Ｂ、Ｃのうちの単数または複数など」に類似した慣例が使用されるこれらの例では、一般に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢとの組合せ、ＡとＣとの組合せ、ＢとＣとの組合せ、またはＡ、Ｂ、およびＣの組合せなどを含むことが意図される。
【０１０５】
[00114]本明細書で使用される語法および用語は、説明を目的とするものであり、限定とみなされるべきではないことを理解されたい。むしろ、本明細書で使用される語句および用語は、それらの最も広い解釈および意味を与えられるべきである。「含んでいる」および「備えている」並びにそれらの変形の使用は、その後に列挙される項目およびその均等物、並びに追加の項目およびその均等物を包含することが意味される。「接続された」、「結合された」、および同様の用語の使用は、直接的および間接的の両方の接続および結合を含むことが意味される。
【０１０６】
[00115]本開示で列挙されるすべての例および条件付き言語は、読者が本開示を理解するのを助けるための教育学的例のために意図されており、そのような具体的に列挙される例および条件に限定されないものとして解釈されるべきである。本開示の例示的な実施形態を詳細に説明したが、本開示の趣旨および範囲から逸脱することなく、様々な変更、置換、および変形が、これに対してなされ得る。したがって、本開示の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって限定されることが意図されている。
【図１】
2021516898.tif 000003
【図２】
2021516898.tif 000004
【図３】
2021516898.tif 000005
【図４】
2021516898.tif 000006
【図４Ａ】
2021516898.tif 000007
【図５】
2021516898.tif 000008
【図５Ａ】
2021516898.tif 000009
【図６】
2021516898.tif 000010
【図７】
2021516898.tif 000011
【図８】
2021516898.tif 000012
【国際調査報告】
2021516898.tif 000013
2021516898.tif 000014