JP7225403B2 - Improved image watermarking - Google Patents

Improved image watermarking Download PDF

Info

Publication number
JP7225403B2
JP7225403B2 JP2021531779A JP2021531779A JP7225403B2 JP 7225403 B2 JP7225403 B2 JP 7225403B2 JP 2021531779 A JP2021531779 A JP 2021531779A JP 2021531779 A JP2021531779 A JP 2021531779A JP 7225403 B2 JP7225403 B2 JP 7225403B2
Authority
JP
Japan
Prior art keywords
image
screenshot
metadata
string
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021531779A
Other languages
Japanese (ja)
Other versions
JP2022532814A (en
Inventor
ダーン・ヒ
デイク・ヒ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2022532814A publication Critical patent/JP2022532814A/en
Application granted granted Critical
Publication of JP7225403B2 publication Critical patent/JP7225403B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23892Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0065Extraction of an embedded watermark; Reliable detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0083Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0202Image watermarking whereby the quality of watermarked images is measured; Measuring quality or performance of watermarking methods; Balancing between quality and robustness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本願は、改善された画像ウォーターマーキングのためのシステムおよび方法に関する。
[関連出願]
本出願は、「Improved Image Watermarking」という名称の、2019年6月19日に出願された、国際出願第PCT/US2019/037959号の利益および優先権を主張し、その全体が参照により本明細書に組み込まれる。
The present application relates to systems and methods for improved image watermarking.
[Related Application]
This application claims the benefit of and priority to International Application No. PCT/US2019/037959, filed June 19, 2019, entitled "Improved Image Watermarking", the entirety of which is incorporated herein by reference. incorporated into.

画像ウォーターマーキングは、視覚的に知覚できないデータまたはメッセージを画像に埋め込む技法であり、元の画像がウォーターマーク抽出に必要であるかどうかにそれぞれ依存して、非ブラインドまたはブラインドとして分類され得る。ブラインドウォーターマーキングは、元のあらかじめ埋め込まれた画像にアクセスすることなく、埋め込まれたデータを回復することができるという点で特に有用である。 Image watermarking is a technique of embedding visually imperceptible data or messages into an image and can be classified as non-blind or blind, depending on whether the original image is required for watermark extraction, respectively. Blind watermarking is particularly useful in that embedded data can be recovered without access to the original pre-embedded image.

しかしながら、ブラインド画像ウォーターマーキングの現在の実装形態は、知覚可能性(たとえば、ウォーターマーキングメッセージを埋め込むことによって導入される歪みが視聴者によって検出可能であり得るかどうか)、ロバストネス(たとえば、埋め込まれたメッセージを復号するデコーダにおける成功率)、および容量(たとえば、データの量またはデータが画像に埋め込まれ得る率)に関する問題を有し得る。多くの実装形態では、これらのうちの1つを増やすと、他では劇的な劣化が生じる可能性がある。 However, current implementations of blind image watermarking are subject to perceptibility (e.g., whether the distortion introduced by embedding the watermarking message can be detectable by a viewer), robustness (e.g., embedded success rate at the decoder to decode the message), and capacity (eg, the amount of data or the rate at which data can be embedded in an image). In many implementations, increasing one of these can lead to dramatic degradation of the others.

本明細書で説明されるシステムおよび方法は、知覚可能性を低下させることなく、ロバストネスおよび容量を改善するための、改善された画像ウォーターマーキングを提供する。具体的には、本明細書で説明されるシステムおよび方法は、同じ歪みレベルおよびメッセージレートで、より高い復号成功率を可能にし、または、同じ歪みレベルおよび復号成功率で、より高いメッセージレートを可能にする。これらのシステムの実装形態は、エンコーダではなくデコーダにのみ利用可能な追加の情報のサイドチェーン(またはサイドチャネル)を利用して、漸近的に無損失データ圧縮を達成し、同じメッセージがよりロバストに、またはより少ないビットで送信されることを可能にする。 The systems and methods described herein provide improved image watermarking for improved robustness and capacity without reducing perceptibility. Specifically, the systems and methods described herein enable higher decoding success rates at the same distortion level and message rate, or higher message rates at the same distortion level and decoding success rate. enable. Implementations of these systems take advantage of additional information sidechains (or sidechannels) available only to the decoder, not the encoder, to achieve asymptotically lossless data compression, making the same message more robust. , or fewer bits.

一態様では、本開示は、改善されたウォーターマーキングのためのシステムを対象とする。このシステムは、デバイスのデコーダを含む。デコーダは、少なくとも1つの埋め込まれたウォーターマークを含む画像のキャプチャを受信し、キャプチャのタイムスタンプを決定し、埋め込まれたウォーターマークからバイナリ文字列を復号し、キャプチャのタイムスタンプの一部を使用して、画像のタイムスタンプを含むバイナリ文字列から識別子を復号し、復号された識別子を出力するように構成される。 In one aspect, the present disclosure is directed to a system for improved watermarking. The system includes the decoder of the device. A decoder receives a capture of an image containing at least one embedded watermark, determines the timestamp of the capture, decodes the binary string from the embedded watermark, and uses part of the timestamp of the capture. to decode the identifier from the binary string containing the timestamp of the image and output the decoded identifier.

いくつかの実装形態では、キャプチャのタイムスタンプは、キャプチャのメタデータ内で識別される。いくつかの実装形態では、デコーダは、キャプチャを含むパケットのヘッダからキャプチャのタイムスタンプを抽出するように構成される。いくつかの実装形態では、埋め込まれたウォーターマークのバイナリ文字列は、画像のタイムスタンプのサブセットを含む。さらなる実装形態では、デコーダは、キャプチャのタイムスタンプの一部を、画像のタイムスタンプのサブセットと連結することによって、バイナリ文字列から識別子を復号するように構成される。別のさらなる実装形態では、埋め込まれたウォーターマークのバイナリ文字列は、画像のタイムスタンプの長さと、画像のタイムスタンプのサブセットの長さとの間の差よりも大きいいくつかの誤り訂正ビットを含む。 In some implementations, the timestamp of the capture is identified within the metadata of the capture. In some implementations, the decoder is configured to extract the capture timestamp from the header of the packet containing the capture. In some implementations, the embedded watermark binary string includes a subset of the image timestamps. In a further implementation, the decoder is configured to decode the identifier from the binary string by concatenating a portion of the timestamp of the capture with a subset of the timestamps of the image. In another further implementation, the embedded watermark binary string includes a number of error correction bits greater than the difference between the length of the image timestamp and the length of a subset of the image timestamps. .

いくつかの実装形態では、デコーダは、キャプチャのタイムスタンプの一部を、所定のオフセットと組み合わせることによって、バイナリ文字列から識別子を復号するように構成される。さらなる実装形態では、デコーダは、識別子の復号に成功するまで、キャプチャのタイムスタンプの一部を、所定のオフセットの倍数と反復的に組み合わせることによって、バイナリ文字列から識別子を復号するように構成される。 In some implementations, the decoder is configured to decode the identifier from the binary string by combining a portion of the timestamp of the capture with a predetermined offset. In a further implementation, the decoder is configured to decode the identifier from the binary string by iteratively combining portions of the timestamp of the capture with multiples of the predetermined offset until the identifier is successfully decoded. be.

いくつかの実装形態では、バイナリ文字列は、少なくとも1つの埋め込まれたウォーターマークを含む画像を生成したコンテンツサーバのアドレスを含む。さらなる実装形態では、バイナリ文字列は、少なくとも1つの埋め込まれたウォーターマークを含む画像を生成したコンテンツサーバのプロセスの識別子を含む。 In some implementations, the binary string includes the address of the content server that generated the image with at least one embedded watermark. In a further implementation, the binary string includes an identifier of the content server process that generated the image including at least one embedded watermark.

別の態様では、本開示は、改善されたウォーターマーキングのための方法を対象とする。この方法は、デバイスのデコーダによって、クライアントデバイスから、少なくとも1つの埋め込まれたウォーターマークを含む画像のキャプチャを受信するステップを含む。この方法はまた、デコーダによって、キャプチャのタイムスタンプを決定するステップを含む。この方法はまた、デコーダによって、埋め込まれたウォーターマークからバイナリ文字列を復号するステップを含む。この方法はまた、キャプチャのタイムスタンプの一部を使用して、デコーダによって、画像のタイムスタンプを含むバイナリ文字列からの識別子を復号するステップを含む。この方法はまた、デコーダによって、復号された識別子を出力するステップを含む。 In another aspect, the present disclosure is directed to methods for improved watermarking. The method includes receiving, by a decoder of the device, a capture of an image including at least one embedded watermark from a client device. The method also includes determining, by the decoder, the timestamp of the capture. The method also includes decoding, by a decoder, the binary string from the embedded watermark. The method also includes using a portion of the timestamp of the capture to decode, by a decoder, the identifier from the binary string containing the timestamp of the image. The method also includes outputting, by a decoder, the decoded identifier.

いくつかの実装形態では、キャプチャのタイムスタンプは、キャプチャのメタデータ内で識別される。いくつかの実装形態では、この方法は、デコーダによって、キャプチャを含むパケットのヘッダからキャプチャのタイムスタンプを抽出するステップを含む。いくつかの実装形態では、埋め込まれたウォーターマークのバイナリ文字列は、画像のタイムスタンプのサブセットを含む。さらなる実装形態では、この方法は、キャプチャのタイムスタンプの一部を、画像のタイムスタンプのサブセットと連結するステップを含む。別のさらなる実装形態では、埋め込まれたウォーターマークのバイナリ文字列は、画像のタイムスタンプの長さと、画像のタイムスタンプのサブセットの長さとの間の差よりも大きいいくつかの誤り訂正ビットを含む。 In some implementations, the timestamp of the capture is identified within the metadata of the capture. In some implementations, the method includes extracting, by a decoder, a capture timestamp from a header of a packet containing the capture. In some implementations, the embedded watermark binary string includes a subset of the image timestamps. In a further implementation, the method includes concatenating a portion of the capture timestamps with a subset of the image timestamps. In another further implementation, the embedded watermark binary string includes a number of error correction bits greater than the difference between the length of the image timestamp and the length of a subset of the image timestamps. .

いくつかの実装形態では、この方法は、キャプチャのタイムスタンプの一部を、所定のオフセットと組み合わせるステップを含む。さらなる実装形態では、この方法は、識別子の復号に成功するまで、キャプチャのタイムスタンプの一部を、所定のオフセットの倍数と反復的に組み合わせるステップを含む。 In some implementations, the method includes combining a portion of the capture timestamp with a predetermined offset. In a further implementation, the method includes iteratively combining a portion of the timestamp of the capture with multiples of the predetermined offset until the identifier is successfully decoded.

いくつかの実装形態では、バイナリ文字列は、少なくとも1つの埋め込まれたウォーターマークを含む画像を生成したコンテンツサーバのアドレスを含む。さらなる実装形態では、バイナリ文字列は、少なくとも1つの埋め込まれたウォーターマークを含む画像を生成したコンテンツサーバのプロセスの識別子を含む。 In some implementations, the binary string includes the address of the content server that generated the image with at least one embedded watermark. In a further implementation, the binary string includes an identifier of the content server process that generated the image including at least one embedded watermark.

別の態様では、本開示は、ウォーターマーキングシステムを対象とする。このシステムは、画像、および画像に関連付けられたメタデータを受信することと、画像に関連付けられたメタデータのサブセットからバイナリ文字列を生成することと、バイナリ文字列からウォーターマークを符号化することと、ウォーターマークを画像に埋め込むことと、を行うように構成されたデバイスのエンコーダを含む。デバイスまたは第2のデバイスのデコーダは、埋め込まれたウォーターマークに符号化された画像に関連付けられたメタデータのサブセットと、第3のデバイスにおける画像の表示のキャプチャに関連付けられた追加のメタデータとから、画像に関連付けられたメタデータを回復する。 In another aspect, the disclosure is directed to a watermarking system. The system receives an image and metadata associated with the image, generates a binary string from a subset of the metadata associated with the image, and encodes the watermark from the binary string. and embedding the watermark into the image. A decoder on the device or the second device may extract a subset of the metadata associated with the image encoded in the embedded watermark and additional metadata associated with capturing the display of the image on the third device. , recover the metadata associated with the image.

いくつかの実装形態では、画像に関連付けられたメタデータは、画像のタイムスタンプを含み、追加のメタデータは、第3のデバイスにおける画像の表示のキャプチャのタイムスタンプを含む。いくつかの実装形態では、デバイスのエンコーダは、画像に関連付けられたメタデータの所定数の最下位ビットからバイナリ文字列を生成するように構成される。 In some implementations, the metadata associated with the image includes a timestamp of the image and the additional metadata includes a timestamp of capture of the display of the image on the third device. In some implementations, the device's encoder is configured to generate a binary string from a predetermined number of least significant bits of metadata associated with the image.

別の態様では、本開示は、ウォーターマーキングのための方法を対象とする。この方法は、デバイスのエンコーダによって、画像、および画像に関連付けられたメタデータを受信するステップを含む。この方法はまた、エンコーダによって、画像に関連付けられたメタデータのサブセットからバイナリ文字列を生成するステップを含む。この方法はまた、エンコーダによって、バイナリ文字列からウォーターマークを符号化するステップを含む。この方法はまた、エンコーダによって、画像にウォーターマークを埋め込むステップを含む。デバイスまたは第2のデバイスのデコーダは、埋め込まれたウォーターマークに符号化された画像に関連付けられたメタデータのサブセットと、第3のデバイスにおける画像の表示のキャプチャに関連付けられた追加のメタデータとから、画像に関連付けられたメタデータを回復する。 In another aspect, the disclosure is directed to a method for watermarking. The method includes receiving, by an encoder of the device, an image and metadata associated with the image. The method also includes generating, by an encoder, a binary string from the subset of metadata associated with the image. The method also includes encoding the watermark from the binary string by an encoder. The method also includes embedding the watermark in the image by the encoder. A decoder on the device or the second device may extract a subset of the metadata associated with the image encoded in the embedded watermark and additional metadata associated with capturing the display of the image on the third device. , recover the metadata associated with the image.

いくつかの実装形態では、画像に関連付けられたメタデータは、画像のタイムスタンプを含み、追加のメタデータは、第3のデバイスにおける画像の表示のキャプチャのタイムスタンプを含む。いくつかの実装形態では、この方法は、画像に関連付けられたメタデータの所定数の最下位ビットからバイナリ文字列を生成するステップを含む。 In some implementations, the metadata associated with the image includes a timestamp of the image and the additional metadata includes a timestamp of capture of the display of the image on the third device. In some implementations, the method includes generating a binary string from a predetermined number of least significant bits of metadata associated with the image.

本開示はまた、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、本明細書で開示される方法のいずれかを実行させる命令を含むコンピュータプログラムを提供する。本開示はまた、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、本明細書で開示される方法のいずれかを実行させる命令を含むコンピュータ可読媒体を提供する。 The present disclosure also provides a computer program product containing instructions that, when executed by a computing device, causes the computing device to perform any of the methods disclosed herein. The present disclosure also provides a computer-readable medium containing instructions that, when executed by a computing device, cause the computing device to perform any of the methods disclosed herein.

1つの態様の任意選択の特徴を、任意の他の態様と組み合わせてもよい。 Optional features of one aspect may be combined with any other aspect.

1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。 The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosure will become apparent from the description, drawings, and claims.

画像ウォーターマーキングの例示的な実装形態の図である。FIG. 4 is a diagram of an exemplary implementation of image watermarking; 一実装形態による、画像ウォーターマーキングのためのデータフォーマットの図である。FIG. 4 is a diagram of a data format for image watermarking, according to one implementation; 別の実装形態による、画像ウォーターマーキングのためのデータフォーマットの図である。FIG. 4 is a diagram of a data format for image watermarking, according to another implementation; 一実装形態による、画像ウォーターマーキングのためのシステムのブロック図である。1 is a block diagram of a system for image watermarking, according to one implementation; FIG. 別の実装形態による、画像ウォーターマーキングのためのシステムのブロック図である。FIG. 4 is a block diagram of a system for image watermarking, according to another implementation; いくつかの実装形態による、画像ウォーターマーキングのためのシステムのブロック図である。1 is a block diagram of a system for image watermarking, according to some implementations; FIG. いくつかの実装形態による、画像ウォーターマーキングのための方法のフローチャートである。4 is a flowchart of a method for image watermarking, according to some implementations;

様々な図面における同様の参照番号および名称は同様の要素を示す。 Like reference numbers and designations in the various drawings indicate like elements.

画像ウォーターマーキングは、視覚的に知覚できないデータまたはメッセージを画像に埋め込む技法であり、元の画像がウォーターマーク抽出に必要であるかどうかにそれぞれ依存して、非ブラインドまたはブラインドとして分類され得る。ブラインドウォーターマーキングは、元のあらかじめ埋め込まれた画像にアクセスすることなく、埋め込まれたデータを回復することができるという点で特に有用である。 Image watermarking is a technique of embedding visually imperceptible data or messages into an image and can be classified as non-blind or blind, depending on whether the original image is required for watermark extraction, respectively. Blind watermarking is particularly useful in that embedded data can be recovered without access to the original pre-embedded image.

たとえば、図1Aを簡単に参照すると、画像100についての画像ウォーターマーキングの例示的な実装形態が示されている。小さいウォーターマークコード102は、あるサイズのピクセルのアレイを含むことができ、視聴者には見えないように画像100内に配置される。図示のように、ウォーターマークコード102は、画像全体にわたって複製されて、クロッピング、圧縮もしくは他の障害による局所的なアーチファクト、または他のそのような歪みに対する耐性を提供することができる。明確にするためにほんの数ピクセルで示されているが、多くの実装形態では、ウォーターマークコードは、64ピクセル、128ピクセル、または任意の他のそのような量を有する領域を含み得る。符号化の値を定義するためのピクセルへの調整は、単純な白黒ピクセルとは対照的に、比較的知覚不可能であり得る。たとえば、多くの実装形態では、符号化領域を構成するピクセルは、周囲のピクセルと一致するかまたは類似する色を有するが、調整されたアルファ(透明度)値を有し得る。たとえば、符号化は、0のアルファ値を有するピクセルを、10、50、100、255、または任意の他のそのような値のアルファ値に変更し得る。いくつかの実装形態では、コードは、周囲のアルファ値とは大きく異なるアルファ値を有するピクセルを識別することによって検出され得る。いくつかの実装形態では、異なる値を符号化するために、オーバーレイ内のピクセルのアルファ値を変更して、各ビットをオーバーレイ符号化する差分符号化を適用することができる。 For example, briefly referring to FIG. 1A, an exemplary implementation of image watermarking for image 100 is shown. The small watermark code 102 can comprise an array of pixels of a certain size and is placed within the image 100 so as to be invisible to the viewer. As shown, the watermark code 102 may be replicated throughout the image to provide immunity to local artifacts due to cropping, compression or other impairments, or other such distortions. Although shown with only a few pixels for clarity, in many implementations the watermark code may include areas having 64 pixels, 128 pixels, or any other such amount. Adjustments to pixels to define encoding values can be relatively imperceptible as opposed to simple black and white pixels. For example, in many implementations, the pixels that make up the encoded region have colors that match or are similar to surrounding pixels, but may have adjusted alpha (transparency) values. For example, encoding may change a pixel with an alpha value of 0 to an alpha value of 10, 50, 100, 255, or any other such value. In some implementations, the code may be detected by identifying pixels with alpha values that differ significantly from surrounding alpha values. In some implementations, differential encoding can be applied to overlay encode each bit by changing the alpha value of the pixels in the overlay to encode different values.

任意の種類のデータをウォーターマーク102内に符号化することができる。図1Bを簡単に参照すると、一実装形態による、画像ウォーターマーキングのためのデータフォーマット150が示されている。図示のデータフォーマットは、128ビットを含み、64ビットのタイムスタンプ152(たとえば、エポック時間に基づく)、IPアドレス154、およびプロセス識別子156を有する。データフォーマット150内のデータは、本明細書ではクエリIDと呼ばれることがある。多くの実装形態は、ウォーターマークの復号を改善するために、誤り訂正ビット(図示せず)も含む。たとえば、コードは、マーク内に含まれるリードソロモン誤り訂正コードを有するQRコード(登録商標)として符号化されてもよい。 Any kind of data can be encoded within the watermark 102 . Referring briefly to FIG. 1B, a data format 150 for image watermarking is shown, according to one implementation. The illustrated data format includes 128 bits, with a 64-bit timestamp 152 (eg, based on epoch time), IP address 154, and process identifier 156. FIG. The data in data format 150 is sometimes referred to herein as a query ID. Many implementations also include error correction bits (not shown) to improve decoding of the watermark. For example, the code may be encoded as a QR Code™ with a Reed-Solomon error correction code contained within the mark.

そのような一実装形態では、データは、クライアントデバイスに画像を提供する前に、コンテンツサーバのIPアドレスと、画像を生成したプロセスのプロセス識別子とを用いて、コンテンツサーバによって画像に符号化されてもよい。その後、画像がクライアントデバイスによって受信され、レンダリングされると、クライアントデバイス上の監視プロセスは、画像のスクリーンショットを取り込み、スクリーンショットをコンテンツサーバまたは監視サーバに提供し得る。たとえば、クライアントデバイス上の監視プロセスは、画像自体にアクセスすることができない場合がある(たとえば、画像は、監視プロセスがアクセスできないクライアントデバイスのメモリ内のロケーションに記憶され得る)が、(たとえば、フレームバッファから画像データを読み取ることによって、またはカメラで画像を取り込むことによって)画像のスクリーンショットを取り込むことができる。サーバは、元の生成プロセスおよびサーバ、ならびに画像が生成またはマークされた時間を識別するためにウォーターマークを復号することができ、スクリーンショットされた画像を元の画像と比較することができる。これにより、システムは、画像のレンダリングまたは符号化プロセスによって引き起こされる歪みまたは画像破損を自動的に識別することができ、画像の他の態様を識別することができる。コンテンツサーバと監視サーバとが異なる実装形態では、これは、特に、監視サーバが、画像をクライアントデバイスに提供した複数のコンテンツサーバのうちの特定のコンテンツサーバを識別することを可能にし得る。これは、ログ記録、追跡、および分析に有用であり得、HTTPログまたは同様のログを(監視サーバがアクセスできない可能性がある)クライアントデバイスから取り出そうと試みるよりもかなり容易であり得る。 In one such implementation, the data is encoded into the image by the content server using the IP address of the content server and the process identifier of the process that generated the image prior to serving the image to the client device. good too. Thereafter, when the image is received and rendered by the client device, a monitoring process on the client device may capture a screenshot of the image and provide the screenshot to the content server or monitoring server. For example, a monitoring process on a client device may not be able to access the image itself (e.g., the image may be stored in a location in the client device's memory that the monitoring process cannot access), but (e.g., a frame You can capture a screenshot of the image (either by reading the image data from a buffer or by capturing the image with the camera). The server can decode the watermark to identify the original generating process and server, as well as the time the image was generated or marked, and can compare the screenshotted image with the original image. This allows the system to automatically identify distortions or image corruption caused by the image rendering or encoding process, and to identify other aspects of the image. In implementations where the content server and monitoring server are different, this may allow, among other things, the monitoring server to identify the particular content server among multiple content servers that provided the image to the client device. This can be useful for logging, tracking, and analysis, and can be considerably easier than trying to retrieve HTTP logs or similar logs from client devices (which the monitoring server may not be able to access).

ウォーターマーキング効率は、時に「D」と呼ばれる知覚可能性(たとえば、ウォーターマーキングメッセージを埋め込むことによって導入される歪みが、視聴者によって検出可能であり得るかどうか)、時に「E」と呼ばれるロバストネス(たとえば、埋め込まれたメッセージを復号するデコーダにおける成功率)、および時に「R」と呼ばれる容量(たとえば、データの量またはデータが画像に埋め込まれ得る率)に関して説明され得る。多くの実装形態において、低い知覚可能性、高いロバストネス、および高い容量を有することが望ましい場合がある。しかしながら、多くの実装形態では、これらのうちの1つを改善すると、他では劇的な劣化が生じる可能性がある。たとえば、ロバストネスを維持しながら、より多くのデータをメッセージに追加することは、ウォーターマークのサイズを拡大して、ウォーターマークをより知覚可能にすることを必要とし得る。同様に、誤り訂正ビットを削除することによって、データを追加しながら、マークサイズを維持することができるが、これは、当然、マークを復号するのをより困難にし、より破損しやすくする。 Watermarking efficiency is measured by perceptibility, sometimes referred to as 'D' (e.g., whether the distortion introduced by embedding the watermarking message can be detectable by a viewer), and robustness, sometimes referred to as 'E'. for example, the rate of success at a decoder decoding the embedded message), and capacity, sometimes referred to as 'R' (eg, the amount of data or the rate at which data can be embedded in an image). In many implementations, it may be desirable to have low perceptibility, high robustness, and high capacity. However, in many implementations, improving one of these can lead to dramatic degradation in the other. For example, adding more data to a message while maintaining robustness may require increasing the size of the watermark to make it more perceptible. Similarly, the mark size can be maintained while adding data by removing error correction bits, but this of course makes the mark more difficult to decode and more prone to corruption.

図2Aは、一実装形態による、画像ウォーターマーキングのためのシステム200のブロック図である。システムは、エンコーダ202およびデコーダ204を含み得、これらは、同じまたは異なるコンピューティングデバイス(たとえば、コンテンツサーバおよび監視サーバ)上にあってもよい。画像「S」206は、エンコーダ202によってメッセージ「X」208で符号化されて、S+Xを含むウォーターマーク入り画像「S'」210を作成することができる。符号化またはウォーターマーク入り画像S'は、クライアントデバイスなどに通信チャネル212を介して送信され得る。対応するウォーターマーク入り画像(たとえば、上述のようなスクリーンショットからの)は、デコーダ204に提供され得る。たとえば、クライアントデバイスは、通信チャネル212を介してデコーダ204にウォーターマーク入り画像を送信してもよい。したがって、通信チャネルは、エンコーダとデコーダとの間のネットワークおよびデバイスの任意の組合せを含み得、これは、任意の種類の追加の歪みを潜在的に導入し得る。たとえば、意図的または非意図的な攻撃または障害の結果として、チャネルは、損失を伴う可能性がある。意図しない障害の例には、画像の回転、スケーリング、およびフォーマット変換がある。意図的な障害の例には、ノイズ注入(たとえば、情報の追加)、およびウォーターマークコードの削除(たとえば、情報の減算)の試みがある。 FIG. 2A is a block diagram of a system 200 for image watermarking, according to one implementation. The system may include encoder 202 and decoder 204, which may be on the same or different computing devices (eg, content server and monitoring server). Image 'S' 206 can be encoded with message 'X' 208 by encoder 202 to create watermarked image 'S'' 210 containing S+X. Encoded or watermarked image S′ may be transmitted over communication channel 212, such as to a client device. A corresponding watermarked image (eg, from a screenshot as described above) may be provided to decoder 204 . For example, a client device may send a watermarked image to decoder 204 via communication channel 212 . Accordingly, the communication channel can include any combination of networks and devices between the encoder and decoder, which can potentially introduce any kind of additional distortion. For example, channels may suffer losses as a result of intentional or unintentional attacks or failures. Examples of unintended failures are image rotation, scaling, and format conversion. Examples of intentional interference include attempts to inject noise (eg add information) and remove watermark codes (eg subtract information).

デコーダ204は、ウォーターマーク入り画像S'からウォーターマークを検出し、復号して元のメッセージX208'を回復し、必要に応じて誤り訂正を適用する(および潜在的に画像内の複数のウォーターマークを取り込み、各々からの復号されたメッセージを比較して、単一のウォーターマーク内の誤りまたは歪みを除外する)ことができる。 The decoder 204 detects the watermark from the watermarked image S', decodes it to recover the original message X 208', and applies error correction if necessary (and potentially multiple watermarks in the image). , and compare the decoded messages from each to rule out errors or distortions in a single watermark).

したがって、エンコーダは、任意の誤り訂正コードとともに、上述のタイムスタンプ/アドレス/プロセスID文字列などのメッセージを、QRコードなどのマークに符号化し、アルファチャネルオーバーレイのブレンディングを介してマークの少なくとも1つのコピーを画像に符号化し、デコーダは、QRコードを識別する不整合およびオーバーレイパターンを検出することによってメッセージを復号し、元の文字列を復号し、元のタイムスタンプ/アドレス/プロセスIDを識別し得る。 Therefore, the encoder encodes a message such as the timestamp/address/process ID string mentioned above, along with any error correction code, into a mark, such as a QR code, and then encodes at least one of the marks via blending of alpha channel overlays. Encoding the copy into an image, the decoder decodes the message by detecting inconsistencies and overlay patterns that identify the QR code, decodes the original string, and identifies the original timestamp/address/process ID. obtain.

そのようなシステムは、比較的成功しているが、高い誤り率を有する。符号化された画像のスクリーンショットから埋め込まれたマークを復号することを伴う1つの実験において、復号成功率は44.03%であった。 Such systems are relatively successful, but have high error rates. In one experiment involving decoding embedded marks from screenshots of encoded images, the decoding success rate was 44.03%.

上述したように、固定されたメッセージレート(たとえば、128ビット)が与えられると、復号成功率に影響を与える要因は、エンコーダ(De)によって画像に導入される歪み、およびエンコーダ出力(Dc)における取り込まれたスクリーンショットとウォーターマーク入り画像との間の歪みである。一般に、復号成功率で測定される画像ウォーターマーキングのロバストネスは、Deによって制御され、同じDcについて、Deが増加すると、より高い復号成功率を達成することができる。しかしながら、ほとんどの目的のために、ウォーターマークは、ウォーターマーク入り画像において視覚的に知覚不可能なものでなければならない。そのような要件は、Deに上限を課す。Deに対するこの制約は、本質的に、任意の所与のチャネルについての復号成功率の上限を暗示する。チャネルによって導入されるDcが大きいいくつかの極端な場合、復号成功率は、ほぼゼロに低下する可能性があり、したがって、ウォーターマーキングのそのような実装の適用可能性を制限する。 As mentioned above, given a fixed message rate (e.g., 128 bits), the factors affecting the decoding success rate are the distortion introduced into the image by the encoder (D e ), and the encoder output (D c ) between the captured screenshot and the watermarked image. In general, image watermarking robustness, measured by decoding success rate, is controlled by D e , and for the same D c , higher decoding success rate can be achieved as D e increases. However, for most purposes the watermark should be visually imperceptible in the watermarked image. Such a requirement imposes an upper bound on D e . This constraint on D e essentially implies an upper bound on the decoding success rate for any given channel. In some extreme cases where Dc introduced by the channel is large, the decoding success rate may drop to nearly zero, thus limiting the applicability of such implementations of watermarking.

(D0、E0、R0)は、上述のウォーターマーキング方法の実装形態の歪み、復号成功率、およびメッセージレートをそれぞれ示すものとする。典型的な実装形態では、3つの量のうちの1つの改善は、必然的に、他の量のうちの少なくとも1つの性能損失を犠牲にすることになる。たとえば、E0を改善するために、R0を維持しながらD0を犠牲にするか、またはD0を維持しながらR0を低減する必要がある。しかしながら、多くのアプリケーションにおいて、D0とR0の両方は現在、厳しい制約があり、D0は、ユーザエクスペリエンスへの悪影響を回避するために必然的に上限を有し、R0は、たとえば追跡目的のためにウォーターマーキングメッセージが役立つように必然的に下限を有する。この文脈において、ウォーターマーキングの現在の実装は、E0を改善する余地がほとんどない。 Let (D 0 , E 0 , R 0 ) denote the distortion, decoding success rate, and message rate of the implementation of the watermarking method described above, respectively. In a typical implementation, improvement in one of the three quantities will necessarily come at the expense of performance loss in at least one of the other quantities. For example, to improve E0 , one needs to sacrifice D0 while maintaining R0 , or reduce R0 while maintaining D0 . However, in many applications both D0 and R0 are currently severely constrained, with D0 necessarily having an upper bound to avoid adversely affecting the user experience, and R0 being e.g. For the purpose watermarking messages are useful, they necessarily have a lower bound. In this context, current implementations of watermarking have little room to improve E0 .

本明細書で説明されるシステムおよび方法は、知覚可能性を低下させることなく、ロバストネスおよび容量を改善するための、改善された画像ウォーターマーキングを提供する。具体的には、本明細書で説明されるシステムおよび方法は、同じ歪みレベルおよびメッセージレートで、より高い復号成功率を可能にし、または、同じ歪みレベルおよび復号成功率で、より高いメッセージレートを可能にする。これらのシステムの実装形態は、エンコーダではなくデコーダにのみ利用可能な追加の情報のサイドチェーンを利用して、漸近的に無損失データ圧縮を達成し、同じメッセージがより少ないビットで送信されることを可能にする。 The systems and methods described herein provide improved image watermarking for improved robustness and capacity without reducing perceptibility. Specifically, the systems and methods described herein enable higher decoding success rates at the same distortion level and message rate, or higher message rates at the same distortion level and decoding success rate. enable. Implementations of these systems take advantage of sidechains of additional information available only to the decoder, not the encoder, to achieve asymptotically lossless data compression, so that the same message is sent with fewer bits. enable

歪み制約は、アプリケーションによって与えられるので、本明細書で説明するシステムは、復号成功率とメッセージレートとの間のトレードオフに焦点を当てる。具体的には、システムは、ウォーターマーキングメッセージの有用性を損なうことなく、メッセージレートの上述の下限を回避する。その結果、従来の実装では不可能であったロバストネスと容量との間の正しいトレードオフを見つける際に、より大きい柔軟性を可能にする。具体的には、デコーダでのみ利用可能なサイド情報を使用して、漸近的に無損失圧縮を達成することができる。 Since the distortion constraint is given by the application, the system described herein focuses on the trade-off between decoding success rate and message rate. Specifically, the system avoids the aforementioned lower bounds on message rates without compromising the usefulness of watermarking messages. As a result, it allows greater flexibility in finding the right trade-off between robustness and capacity not possible with conventional implementations. Specifically, side information available only at the decoder can be used to asymptotically achieve lossless compression.

図2Bは、そのような一実装形態による、画像ウォーターマーキングのためのシステム200'のブロック図である。図2Aに関連して説明したように、エンコーダ202は、通信チャネル212を介してデコーダ204に提供され得るウォーターマーク入り画像210を生成するために、メッセージ208で画像206を符号化する。しかしながら、元のメッセージ208'を回復するために、デコーダは、エンコーダが利用できない追加のサイド情報「Y」214を使用する。これにより、エンコーダとデコーダとの間の別個の通信の必要性がなくなり、これは、コンテンツサーバと監視サーバとが同じデバイスではない(同じエンティティによって制御されていない可能性がある)実装形態において特に有利であり得る。 FIG. 2B is a block diagram of a system 200' for image watermarking, according to one such implementation. As described in connection with FIG. 2A, encoder 202 encodes image 206 with message 208 to produce watermarked image 210 that can be provided to decoder 204 via communication channel 212 . However, to recover the original message 208', the decoder uses additional side information 'Y' 214 that is not available to the encoder. This eliminates the need for separate communications between the encoder and decoder, especially in implementations where the content server and monitoring server are not the same device (and may not be controlled by the same entity). can be advantageous.

図2Aと図2Bとの間での主な違いは、図2Bのデコーダにおけるサイド情報Yの導入である。古典的なソースコーディング定理から、図2AのデコーダにおけるメッセージXの無損失回復に必要な最小レートは、Xの限界エントロピーH(X)によって与えられることがわかる。対応して、Slepian-Wolfコーディング定理から、図2BのデコーダにおけるメッセージXの無損失回復に必要な最小レートは、Yが与えられたときのXの条件付きエントロピーH(X|Y)によって与えられることがわかる。任意の(X,Y)についてH(X|Y)≦H(X)であるので、サイド情報Yを使用することによって、図2Bでは図2Aより低いメッセージレートを使用して、同じメッセージXを通信することが可能である。XとYとの間の相関が強ければ強いほど、メッセージレートを低くすることができる。 The main difference between FIG. 2A and FIG. 2B is the introduction of side information Y in the decoder of FIG. 2B. From the classical source coding theorem, it can be seen that the minimum rate required for lossless recovery of message X in the decoder of FIG. 2A is given by the marginal entropy of X, H(X). Correspondingly, from the Slepian-Wolf coding theorem, the minimum rate required for lossless recovery of message X in the decoder of FIG. 2B is given by the conditional entropy H(X|Y) of X given Y I understand. Since H(X|Y)≤H(X) for any (X, Y), by using side information Y, FIG. It is possible to communicate. The stronger the correlation between X and Y, the lower the message rate can be.

ロバストネスの向上
第1の実装形態では、システムは、ロバストネスを向上させるために、デコーダにおいてサイド情報Yを活用し得る。いくつかのそのような実装形態では、図2Bのエンコーダは、以下のように、ウォーターマーキングメッセージを画像に埋め込む。
1.ウォーターマーキングメッセージXをKビットのバイナリ文字列に変換し、Kは、H(X|Y)によって決まる。
2.Kビットバイナリ文字列をQRコードワードに変換する。
3.QRコードワードの少なくとも1つのコピーを含むウォーターマーキング画像を生成する。
4.ウォーターマーキング画像を元の画像の上に重ねてブレンドする。
Improving Robustness In a first implementation, the system may exploit side information Y at the decoder to improve robustness. In some such implementations, the encoder of FIG. 2B embeds the watermarking message into the image as follows.
1. Convert the watermarking message X to a K-bit binary string, where K is determined by H(X|Y).
2. Convert K-bit binary string to QR codeword.
3. Generate a watermarking image containing at least one copy of the QR codeword.
4. Overlay and blend the watermarking image on top of the original image.

対応して、図2Bのデコーダは、ウォーターマーク入り画像のスクリーンショットからウォーターマーク入りメッセージXを以下のように復号する。
5.スクリーンショットからQRコードワードを検出し、抽出する。
6.抽出されたQRコードワードからKビットバイナリ文字列を復号する。
7.kビットバイナリ文字列およびサイド情報Yから、ウォーターマーキングメッセージXを復号する。
Correspondingly, the decoder of FIG. 2B decodes the watermarked message X from the screenshot of the watermarked image as follows.
5. Detect and extract QR code words from screenshots.
6. Decode the K-bit binary string from the extracted QR codeword.
7. Decode the watermarking message X from the k-bit binary string and the side information Y.

多くの実装形態では、上記のステップのうちの1つまたは複数(たとえば、ステップ6~7)を、より良い性能のために単一のステップに組み合わせてもよいことに留意されたい。 Note that in many implementations, one or more of the above steps (eg, steps 6-7) may be combined into a single step for better performance.

QRコードワードは、検出用のパターンと、2Dレイアウトの誤り訂正コードとを含むことに留意されたい。いくつかの実施形態では、ウォーターマーキング画像を生成する際のより良い性能/柔軟性のために、QRコードワードの代わりに、検出のための1Dパターンとともに1D誤り訂正コードワードが使用され得る。1D誤り訂正コードの例には、リードソロモンコード、ターボコード、LDPC(低密度パリティチェック)コード、および他の一般的な線形ブロックコードがある。 Note that the QR codeword contains a pattern for detection and an error correction code in 2D layout. In some embodiments, instead of QR codewords, 1D error correction codewords may be used along with 1D patterns for detection for better performance/flexibility in generating watermarking images. Examples of 1D error correcting codes include Reed-Solomon codes, Turbo codes, LDPC (Low Density Parity Check) codes, and other common linear block codes.

上記の符号化プロセスにおけるステップ1に鑑みて、Kを決定するために、先験的にH(X|Y)を知る必要があるが、Y(すなわち、実際のサイド情報シーケンス)の実現の知識は必要ではない。H(X|Y)の先験的知識が利用可能なサイド情報Yの例には、スクリーンショットタイムスタンプ、復号時間、およびスクリーンショットに関する任意の外部情報(たとえば、そのIPアドレスおよび地理的位置を含むサイトに関する情報、発行者情報、ならびにプラットフォーム情報)がある。 Given step 1 in the encoding process above, in order to determine K, we need to know H(X|Y) a priori, but knowledge of the realization of Y (i.e., the actual side-information sequence) is not necessary. Examples of side information Y for which a priori knowledge of H(X|Y) is available include screenshot timestamps, decoding times, and any extrinsic information about the screenshot (e.g. its IP address and geographic location). site information, publisher information, and platform information).

以下の説明では、一例として、スクリーンショットタイムスタンプを使用するが、他の同様の実装形態では、IPアドレス情報および/またはプラットフォーム情報、あるいはこれらの組合せを利用し得る。 The following description uses screenshot timestamps as an example, but other similar implementations may utilize IP address information and/or platform information, or a combination thereof.

上記の図1Bで説明したクエリIDは、タイムスタンプ(64ビット)、IPアドレス(32ビット)、およびプロセスid(32ビット)(任意の追加の誤り符号化ビットを含まない)からなる128ビットのバイナリ文字列であることを想起されたい。典型的なアプリケーションでは、スクリーンショットタイムスタンプTsは、Tq≦TsとなるようにクエリID内のタイムスタンプTqと強く相関し、高い確率でTs-Tq≦Δとなるように負でない整数Δが存在する。 The query ID described in Figure 1B above is a 128-bit Recall that it is a binary string. In a typical application, the screenshot timestamp T s is strongly correlated with the timestamp T q in the query ID such that T q ≤ T s and with high probability T s −T q ≤ Δ There is a non-negative integer Δ.

これらに鑑みて、タイムスタンプにそのような実装形態で64ビットを使用する代わりに、図2Bのエンコーダは、H(X|Y)の推定値としてK=(ceil(64-log2(Δ))+64)ビットを使用することができ、ここで、YはTsであり、「ceil」は、その引数を最も近い整数に切り上げるシーリング関数である。したがって、一実施形態では、ビニング方式を使用して、Tqをコード化し、各ビンは、少なくともΔマイクロ秒離れた候補タイムスタンプを含み、ビンのインデックスは、長さceil(64-log2(Δ))のTqのサフィックスである。 In view of these, instead of using 64 bits for timestamps in such an implementation, the encoder of FIG. 2B uses K=(ceil(64-log2(Δ)) +64) bits, where Y is T s and 'ceil' is a ceiling function that rounds its argument up to the nearest integer. Thus, in one embodiment, a binning scheme is used to encode T q , each bin containing candidate timestamps that are at least Δ microseconds apart, and bin indices of length ceil(64-log2(Δ )) is the suffix of T q .

提案されたビニング方式は、最上位ビットが、互いに近い2つのタイムスタンプに対して同じであるという事実に基づいている。たとえば、エポックタイムにおける2019-01-01のタイムスタンプは、1546300800であり、そのバイナリは、
0b0101 0111 1110 0101 1010 0011 0101 1110 0110 0110 0000 0000 0000である。
The proposed binning scheme is based on the fact that the most significant bits are the same for two timestamps that are close to each other. For example, the timestamp of 2019-01-01 in epoch time is 1546300800 and its binary is
0b0101 0111 1110 0101 1010 0011 0101 1110 0110 0110 0000 0000 0000.

2018-01-01のタイムスタンプは1514764800であり、そのバイナリバージョンは、
0b0101 0110 0001 1010 1011 1010 1001 1101 0010 1000 0000 0000 0000である。
2018-01-01 has a timestamp of 1514764800 and its binary version is
0b0101 0110 0001 1010 1011 1010 1001 1101 0010 1000 0000 0000 0000.

64ビット表現の上位18ビットは同じである。2つのタイムスタンプが近ければ近いほど、最上位ビットが同じになる。典型的な実装形態では、画像タイムスタンプおよびスクリーンショットタイムスタンプは、典型的には、1日、1週間、または1ヶ月以内など、かなり近い場合があり、したがって、より多くのビット数が同じである場合がある。 The upper 18 bits of the 64-bit representation are the same. The closer two timestamps are, the more significant bits are the same. In typical implementations, image timestamps and screenshot timestamps may be fairly close, typically within a day, week, or month, and therefore have the same greater number of bits. There are cases.

上述のビニング方式を使用することによって、いくつかの実装形態では、システムは、K=(ceil(64-log2(Δ))+64)ビットを使用して、Tq内の最上位ビットの約log2(Δ)を削除することによって、クエリIDをコード化することができる。図1Cは、1つのそのような実装形態による、画像ウォーターマーキングのためのデータフォーマット150'の図である。図示のように、IPアドレス154およびプロセスID156は、図1Bの実装形態と同じであるが、タイムスタンプは、最下位ビット158の一部に低減され、データのサイズを低減することなく、追加のデータ160を追加することができる。 By using the binning scheme described above, in some implementations the system uses K=(ceil(64-log2(Δ))+64) bits to approximate the most significant bits in T q . By removing log2(Δ), we can encode the query ID. FIG. 1C is a diagram of a data format 150' for image watermarking, according to one such implementation. As shown, the IP address 154 and process ID 156 are the same as in the implementation of FIG. 1B, but the timestamp is reduced to a fraction of the least significant bits 158, adding an additional Data 160 can be added.

デコーダ側では、受信されたスクリーンショットからQRコードを抽出し、復号することからKビットバイナリ文字列を取得した後、タイムスタンプLSB158は、正しいタイムスタンプTqを含むビンのインデックスを識別し得る。Tqを回復するために、デコーダは、Tsの最初のlog2(Δ)ビットと(64-log2(Δ))ビットビンインデックスとを組み合わせて、T'qを取得することができる。log2(Δ)が整数でない場合、ここでは代わりに、log2(Δ)よりも大きい最小の整数、すなわち、ceil(log2(Δ)))が使用される。多くの実装では高い確率でTs-Tq≦Δとなるので、デコーダにおいて高い確率でT'q=Tqとなる。万が一、Ts-Tq>Δの場合、mは正の整数の場合、Ts-Tq≦mΔである限り、Tqは、サイズmの以下のリストの中になければならない。
{T'q,T'q-Δ,T'q-2Δ,...,T'q-(m-1)Δ}。
On the decoder side, after extracting the QR code from the received screenshot and obtaining the K-bit binary string from decoding, timestamp LSB 158 may identify the index of the bin containing the correct timestamp T q . To recover T q , the decoder can combine the first log2(Δ) bits of T s with the (64-log2(Δ)) bitbin index to obtain T′ q . If log2(Δ) is not an integer, here instead the smallest integer greater than log2(Δ) is used, ie ceil(log2(Δ))). Since T s −T q ≦Δ with high probability in many implementations, it is highly probable that T′ q =T q at the decoder. If T s −T q >Δ, m is a positive integer, then T q must be in the following list of size m, as long as T s −T q ≦mΔ.
{ T'q , T'q -Δ, T'q -2Δ,..., T'q- (m-1)Δ}.

(ceil(64-log2(Δ))+64)<128であるので、これらの実装は、デコーダでクエリIDを回復するために必要なメッセージレートを効果的に低減する。そのような低減は、次に、復号成功率を改善するために、2つの方法で活用されてもよい。
1.たとえば、追加のパリティまたは誤り訂正ビットを含めることによって、選択されたQRコードの訂正レベルを上げる。または
2.より小さいマクロQRコード(たとえば、マクロ17)を使用する。
Since (ceil(64-log2(Δ))+64)<128, these implementations effectively reduce the message rate required to recover the query ID at the decoder. Such reduction may then be exploited in two ways to improve the decoding success rate.
1. Increase the correction level of the selected QR Code, for example by including additional parity or error correction bits. or
2. Use a smaller macro QR code (eg macro 17).

21×21 QRコードは、次の表(表1)に列挙するように、最大152ビットの情報を記憶することができることに留意されたい。 Note that a 21×21 QR Code can store up to 152 bits of information, as listed in the following table (Table 1).

Figure 0007225403000001
Figure 0007225403000001

ビット数を128からK=(ceil(64-log2(Δ))+64)に低減することによって、システムは、より高い誤り訂正コード(ECC)レベルまたはより小さいQRコードを利用して、復号成功率を向上させることができる(たとえば、中から4分位に変わる)。 By reducing the number of bits from 128 to K=(ceil(64-log2(Δ))+64), the system can utilize higher error correction code (ECC) levels or smaller QR codes for successful decoding. Rates can be improved (eg, change from medium to quartile).

メッセージレートの向上
上述の実装形態は、ウォーターマーキングのロバストネスを向上させるために、デコーダで利用可能なサイド情報を利用する。異なる観点から、システムは、メッセージレートを向上させるためにサイド情報を利用することもできる。
Improving Message Rates The implementations described above take advantage of the side information available at the decoder to improve the robustness of watermarking. From a different perspective, the system can also utilize side information to improve message rates.

そのような実装形態では、図2Bのエンコーダは、以下のように、ウォーターマーキングメッセージを画像に埋め込むことができる。
1.128ビットのクエリIDを、Kビットの追加情報とともに、128ビットのバイナリ文字列に変換し、Kは、H(X)-H(X|Y)によって決定される。
2.128ビットのバイナリ文字列をQRコードワードに変換する。
3.QRコードワードの少なくとも1つのコピーを含むウォーターマーキング画像を生成する。
4.ウォーターマーキング画像をソース画像の上に重ねてブレンドする。
In such an implementation, the encoder of FIG. 2B can embed the watermarking message into the image as follows.
1. Convert the 128-bit query ID to a 128-bit binary string with K bits of additional information, where K is determined by H(X)-H(X|Y).
2. Convert a 128-bit binary string to a QR codeword.
3. Generate a watermarking image containing at least one copy of the QR codeword.
4. Overlay and blend the watermarking image on top of the source image.

対応して、図2Bのデコーダは、画像のスクリーンショットからウォーターマーキングメッセージXを以下のように復号し得る。
4.スクリーンショットからQRコードワードを検出し、抽出する。
5.抽出されたQRコードワードから128ビットバイナリ文字列を復号する。
6.128ビットのクエリIDを、128ビットのバイナリ文字列およびサイド情報YからKビットの追加情報とともに復号する。
Correspondingly, the decoder of FIG. 2B may decode the watermarking message X from the screenshot of the image as follows.
4. Detect and extract QR code words from screenshots.
5. Decode the 128-bit binary string from the extracted QR codeword.
6. Decode the 128-bit query ID with K bits of additional information from the 128-bit binary string and side information Y.

これらの方法を実施しないシステムと比較して、これらの実装形態は、本質的に、無料で、すなわち、同じ復号成功率および同じ歪みレベルで、追加のKビットメッセージング機能を提供する。これらの追加のKビットは、使いやすさの観点から、より良い追跡機能および/またはユーザエクスペリエンスを提供するために使用されてもよい。 Compared to systems that do not implement these methods, these implementations provide additional K-bit messaging capability essentially for free, ie, with the same decoding success rate and same distortion level. These additional Kbits may be used to provide better tracking capabilities and/or user experience from a usability perspective.

上述のように、主にウォーターマークデータ内のタイムスタンプのデータサイズを低減することに関して説明したが、IPアドレスおよび/またはプロセス識別子にビニングが適用された状態で、同様の実装を使用することができる。たとえば、典型的なプロセス識別子がすべて20ビット未満の長さである場合、プロセスID156 MSBから12ビットが削除され得る。同様に、ウォーターマークデータ内のIPアドレスの一部(たとえば、左端の8ビット)は、デコーダで利用可能なサイド情報から導出されてもよい(たとえば、スクリーンショットをサブミットするために使用されるIPアドレス、デコーダのIPアドレスなど)。データサイズをさらに低減するために、これらのフィールドの組合せがこのように処理され得る。 While discussed above primarily in terms of reducing the data size of timestamps within the watermark data, similar implementations can be used with binning applied to IP addresses and/or process identifiers. can. For example, if typical process identifiers are all less than 20 bits long, 12 bits may be removed from the process ID 156 MSB. Similarly, part of the IP address in the watermark data (e.g. the leftmost 8 bits) may be derived from side information available at the decoder (e.g. the IP address used to submit the screenshot). addresses, decoder IP addresses, etc.). Combinations of these fields can be processed in this way to further reduce the data size.

図3は、いくつかの実装形態による、画像ウォーターマーキングのためのシステムのブロック図である。デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、スマートフォン、組込み型コンピュータ、スマートカー、または任意の他のタイプおよび形態のコンピューティングデバイスを含むことができるクライアントデバイス300は、ネットワーク312を介して1つまたは複数のサーバ314と通信し得る。 FIG. 3 is a block diagram of a system for image watermarking, according to some implementations. Client devices 300, which can include desktop computers, laptop computers, tablet computers, wearable computers, smart phones, embedded computers, smart cars, or any other type and form of computing device, communicate one It may communicate with one or more servers 314 .

多くの実装形態では、クライアントデバイス300は、プロセッサ302およびメモリデバイス306を含み得る。メモリデバイス306は、プロセッサによって実行されると、本明細書で説明される動作のうちの1つまたは複数をプロセッサに実行させる機械命令を記憶し得る。プロセッサ302は、マイクロプロセッサ、ASIC、FPGAなど、またはそれらの組合せを含み得る。多くの実装形態では、プロセッサは、マルチコアプロセッサまたはプロセッサのアレイとすることができる。メモリデバイス306には、限定はしないが、電子、光学、磁気、またはプロセッサにプログラム命令を提供することができる任意の他の記憶デバイスがあり得る。メモリデバイスは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光媒体、またはプロセッサが命令を読み出すことができる任意の他の適切なメモリを含み得る。命令は、限定はしないが、C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python、およびVisual Basicなどの任意の適切なコンピュータプログラミング言語からのコードを含み得る。 In many implementations, client device 300 may include processor 302 and memory device 306 . Memory device 306 may store machine instructions that, when executed by a processor, cause the processor to perform one or more of the operations described herein. Processor 302 may include a microprocessor, ASIC, FPGA, etc., or a combination thereof. In many implementations, the processor may be a multi-core processor or an array of processors. Memory device 306 may include, without limitation, electronic, optical, magnetic, or any other storage device capable of providing program instructions to a processor. A memory device may be a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which a processor can read instructions. can contain. Instructions may include code from any suitable computer programming language such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python, and Visual Basic.

クライアントデバイス300は、1つまたは複数のネットワークインターフェース304を含み得る。ネットワークインターフェース304は、10 Base T、100 Base T、または1000 Base T(「ギガビット」)を含むEthernet、802.11a、802.11b、802.11g、802.11n、または802.11acなど様々な802.11ワイヤレスのうちの任意のもの、CDMA、LTE、3Gまたは4Gセルラーを含むセルラー、Bluetoothまたは他の短距離ワイヤレス接続、あるいはネットワークと通信するためのこれらまたは他のインターフェースの任意の組合せを含む、任意のタイプおよび形態のインターフェースを含み得る。多くの実装形態では、クライアントデバイス300は、様々なネットワーク312への接続を可能にする、異なるタイプの複数のネットワークインターフェース304を含み得る。対応して、ネットワーク312は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、ブロードバンドネットワーク、Bluetoothネットワーク、802.11(WiFi)ネットワーク、衛星ネットワーク、またはこれらまたは他のネットワークの任意の組合せを含み得、1つまたは複数の追加のデバイス(たとえば、ルータ、スイッチ、ファイアウォール、ハブ、ネットワークアクセラレータ、キャッシュなど)を含み得る。 Client device 300 may include one or more network interfaces 304 . Network interface 304 can be any of a variety of 802.11 wireless, such as Ethernet, including 10 Base T, 100 Base T, or 1000 Base T ("Gigabit"), 802.11a, 802.11b, 802.11g, 802.11n, or 802.11ac. cellular, including CDMA, LTE, 3G or 4G cellular, Bluetooth or other short-range wireless connections, or any combination of these or other interfaces for communicating with a network can include In many implementations, client device 300 may include multiple network interfaces 304 of different types that allow connection to various networks 312 . Correspondingly, network 312 may be a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, a broadband network, a Bluetooth network, an 802.11 (WiFi) network, a satellite network, or any of these or other networks. Any combination may be included and may include one or more additional devices (eg, routers, switches, firewalls, hubs, network accelerators, caches, etc.).

クライアントデバイスは、1つまたは複数のユーザインターフェースデバイスを含み得る。ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイ上の視覚化、1つまたは複数の音、触覚フィードバックなど)を生成することによってユーザにデータを伝達する、および/またはユーザから受信された感覚情報を電子信号に変換する(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォンなど)任意の電子デバイスであってもよい。1つまたは複数のユーザインターフェースデバイスは、様々な実装形態に従って、内蔵ディスプレイ、タッチスクリーン、マイクロフォンなどクライアントデバイスの筐体の内部にあってもよく、またはクライアントデバイスに接続されたモニタ、クライアントデバイスに接続されたスピーカなどクライアントデバイスの筐体の外部にあってもよい。 A client device may include one or more user interface devices. A user interface device communicates data to a user by generating sensory information (e.g., visualization on a display, one or more sounds, tactile feedback, etc.) and/or interprets sensory information received from a user. It may be any electronic device that converts it into an electronic signal (eg, keyboard, mouse, pointing device, touch screen display, microphone, etc.). One or more user interface devices may be internal to the housing of the client device, such as a built-in display, touch screen, microphone, or a monitor connected to the client device, connected to the client device, according to various implementations. may be external to the housing of the client device, such as a connected speaker.

メモリ306は、プロセス302による実行のためのアプリケーション308を含み得る。アプリケーション308は、メディアアプリケーション、ウェブブラウザ、生産性アプリケーション、または任意の他のそのようなアプリケーションなど任意のタイプおよび形態のアプリケーションを含み得る。アプリケーション308は、画像内に埋め込まれたウォーターマークを含む画像をコンテンツサーバから受信することができ、クライアントデバイスのユーザのためのユーザインターフェースを介してそれらを表示し得る。 Memory 306 may contain applications 308 for execution by process 302 . Applications 308 may include any type and form of application such as a media application, web browser, productivity application, or any other such application. Application 308 can receive images from a content server that include watermarks embedded within the images, and can display them via a user interface for the user of the client device.

メモリ306はまた、アプリケーション308(たとえば、ブラウザのプラグインまたは拡張)の一部、および/またはデバイスのオペレーティングシステムの一部とすることができるキャプチャエンジン310も含み得る。キャプチャエンジン310は、アプリケーション、サーバ、サービス、デーモン、ルーチン、またはウォーターマークを含むレンダリングされた画像のスクリーンショットを取り込むための他の実行可能なロジックを含み得る。キャプチャエンジン310は、すべての画像またはいくつかの画像のスクリーンショットを取り込むように構成され得る。たとえば、いくつかの実装形態では、キャプチャエンジン310は、画像のメタデータに応答して、またはアプリケーション308によって実行されるスクリプトに応答して(たとえば、ブラウザによって表示されるウェブページに埋め込まれたスクリプトに応答して)、画像のスクリーンショットを撮るようにトリガされ得る。キャプチャエンジン310は、いくつかの実装形態では、画像のみのスクリーンショットを撮ることができ、またはディスプレイまたはスクリーン全体のスクリーンショットを撮ることができる。さらなる実装形態では、キャプチャエンジンは、取り込まれた画像を所望の画像だけにクロッピングすることができる。これは、たとえば、ディスプレイ内の画像の表示の座標に基づいて行われ得る。キャプチャエンジン310は、上述したように、キャプチャ時間(たとえば、エポック時間)などメタデータをスクリーンショットに追加し得る。キャプチャエンジン310は、ネットワークインターフェース304を介してモニタリングサーバにスクリーンショットを送信してもよい。いくつかの実装形態では、キャプチャエンジン310は、ウェブページに埋め込まれ、ウェブページをレンダリングしながらアプリケーション308によって実行されるスクリプトを含み得、そのようなウェブページは、キャプチャエンジンが、のスクリーンショットを取り込むための埋め込まれた画像、または画像へのリンクも含み得る。 Memory 306 may also include capture engine 310, which may be part of application 308 (eg, a browser plug-in or extension) and/or part of the device's operating system. Capture engine 310 may include an application, server, service, daemon, routine, or other executable logic for capturing screenshots of rendered images that include watermarks. Capture engine 310 may be configured to capture screenshots of all images or some images. For example, in some implementations, the capture engine 310 responds to image metadata or to scripts executed by the application 308 (e.g., scripts embedded in web pages displayed by a browser). ), it can be triggered to take a screenshot of the image. The capture engine 310, in some implementations, can take screenshots of images only, or can take screenshots of the entire display or screen. In further implementations, the capture engine can crop the captured image to just the desired image. This can be done, for example, based on the coordinates of the representation of the image within the display. Capture engine 310 may add metadata to the screenshot, such as capture time (eg, epoch time), as described above. Capture engine 310 may send screenshots to a monitoring server via network interface 304 . In some implementations, the capture engine 310 may include scripts embedded in a webpage and executed by the application 308 while rendering the webpage, such webpages being captured by the capture engine. It may also contain embedded images or links to images to import.

サーバ314は、コンテンツサーバおよび/または監視サーバを含むことができ、これらは、同じデバイスであっても、異なるデバイスであってもよい。サーバ314は、1つまたは複数のプロセッサ302、ネットワークインターフェース304、およびメモリデバイス306を含み得る。コンテンツサーバ314は、ウォーターマークを入れる画像など、ストレージ内の1つまたは複数のコンテンツアイテム316、ならびに他のコンテンツ(たとえば、ウェブページ、他のメディアなど)を含み得る。コンテンツサーバ314は、図2Aおよび図2Bに関連して上述したように、エンコーダ202も含み得る。エンコーダ202は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアの組合せを含み得る。たとえば、エンコーダ202は、ASIC、FPGA、または画像にウォーターマークを埋め込むための他の専用ハードウェアを含み得る。 Server 314 may include content servers and/or monitoring servers, which may be the same device or different devices. Server 314 may include one or more processors 302 , network interfaces 304 , and memory devices 306 . A content server 314 may include one or more content items 316 in storage, such as watermarking images, as well as other content (eg, web pages, other media, etc.). Content server 314 may also include encoder 202, as described above in connection with FIGS. 2A and 2B. Encoder 202 may include software, hardware, or a combination of hardware and software. For example, encoder 202 may include an ASIC, FPGA, or other specialized hardware for embedding watermarks in images.

監視サーバは、図2Bに関連して上述したように、デコーダ204を含み得る。デコーダ204は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアの組合せを含み得る。たとえば、デコーダ204は、ASIC、FPGA、または画像からウォーターマークを識別し、復号するための他の専用ハードウェアを含み得る。上述したように、デコーダ204は、キャプチャエンジン310から受信されたスクリーンショットのメタデータからスクリーンショット時間など、ウォーターマークの復号を助けるためのサイド情報を受信し得る。 The monitoring server may include decoder 204, as described above in connection with FIG. 2B. Decoder 204 may include software, hardware, or a combination of hardware and software. For example, decoder 204 may include an ASIC, FPGA, or other specialized hardware for identifying and decoding watermarks from images. As mentioned above, the decoder 204 may receive side information to aid in decoding the watermark, such as the screenshot time from the screenshot metadata received from the capture engine 310 .

図4は、いくつかの実装形態による、画像ウォーターマーキングのための方法のフローチャートである。ステップ402において、クライアントデバイスは、コンテンツアイテムを要求し得る。要求は、ブラウザまたは他のアプリケーション(たとえば、モバイルゲームの中断中のインタースティシャルコンテンツアイテム、または任意の他のタイプおよび形態のコンテンツ)によるウェブページのレンダリング中にトリガされてもよい。ステップ404において、コンテンツサーバ314は、コンテンツアイテムを選択することができる。コンテンツアイテムは、任意の手段を介して選択されてもよく、クライアントデバイスタイプ、ユーザアカウントまたはデバイス識別子、ウェブページまたは他のアプリケーション内のコンテキストアイテム、あるいは任意の他のそのような情報に基づき得る。 FIG. 4 is a flowchart of a method for image watermarking, according to some implementations. At step 402, a client device may request a content item. A request may be triggered during rendering of a web page by a browser or other application (eg, an interstitial content item during a break in a mobile game, or any other type and form of content). At step 404, the content server 314 may select a content item. Content items may be selected via any means and may be based on client device type, user account or device identifier, contextual items within a web page or other application, or any other such information.

ステップ406において、コンテンツサーバ314は、タイムスタンプ、サーバの識別子またはサーバのIPアドレス、および/またはコンテンツアイテムを選択するために使用されるプロセスのプロセス識別子を含む1つまたは複数の識別子を含み得るウォーターマーク識別子を生成し得る。いくつかの実装形態では、ウォーターマーク識別子は、コンテンツアイテムの識別子などの追加情報を含み得る。ステップ408において、コンテンツアイテムは、ウォーターマークで符号化されてもよい。上述したように、コンテンツアイテムを符号化することは、符号化されたウォーターマーク(たとえば、QRコードまたは同様のコード)の変更されたビットを表すデフォルト値またはパターンから変更されたピクセルを有するアルファチャネルでオーバーレイを生成することを含み得る。ウォーターマークは、画像にわたって所定の間隔またはスペースで繰り返されてもよい。次いで、オーバーレイは、符号化されたコンテンツアイテムを生成するために、画像とブレンドまたは結合され得る。ステップ410において、符号化されたコンテンツアイテムは、コンテンツサーバによってクライアントデバイスに送信され得る。 At step 406, the content server 314 may include one or more identifiers, including a timestamp, a server identifier or server IP address, and/or a process identifier of the process used to select the content item. A mark identifier can be generated. In some implementations, the watermark identifier may include additional information such as the identifier of the content item. At step 408, the content item may be encoded with a watermark. As noted above, encoding a content item includes an alpha channel with pixels modified from default values or patterns representing modified bits of the encoded watermark (e.g., QR code or similar code). generating the overlay with . The watermark may be repeated at predetermined intervals or spaces across the image. The overlay can then be blended or combined with the image to generate the encoded content item. At step 410, the encoded content item may be transmitted by the content server to the client device.

コンテンツサーバがウォーターマーク識別子を生成し、コンテンツアイテムの要求を受信した後にウォーターマークを符号化することを示しているが、いくつかの実装形態では、コンテンツアイテムは、(たとえば、ステップ402の前に)事前に符号化され、コンテンツサーバは、配信のために事前に符号化されたコンテンツアイテムを選択し得る。多くの実装形態では、そのような事前符号化は、要求の前の所定の時間フレーム内に実行され得る。たとえば、コンテンツアイテムは、所与のタイムスタンプで符号化され、所定の時間期間(たとえば、2週間)にわたって利用され、次いで、新しいタイムスタンプで置き換えられるか、または再符号化され得る。これは、コンテンツサーバが、コンテンツおよびタイムスタンプが比較的新しいことを依然として保証しながら、あまり混雑していない時間の間に符号化処理を実行することを可能にし得る。上述のように、事前符号化されたコンテンツアイテムが使用され得るウィンドウが短いほど、より多くのデータがウォーターマークに符号化され、および/またはウォーターマークがよりロバストにされ得るが、上述の例であっても、依然として必要とされるデータを大幅に低減しながら、1年以上のウィンドウが使用され得る。 Although it is shown that the content server generates the watermark identifier and encodes the watermark after receiving the request for the content item, in some implementations the content item is (e.g., before step 402 ) pre-encoded, the content server may select pre-encoded content items for distribution. In many implementations, such pre-encoding may be performed within a predetermined time frame prior to the request. For example, a content item may be encoded with a given timestamp, utilized for a predetermined period of time (eg, two weeks), and then replaced with a new timestamp or re-encoded. This may allow the content server to perform the encoding process during less busy hours while still ensuring that the content and timestamps are relatively new. As mentioned above, the shorter the window in which the pre-encoded content item can be used, the more data can be encoded into the watermark and/or the more robust the watermark can be, but in the above example Even if there is, windows of one year or more can be used while still greatly reducing the data required.

ステップ412において、クライアントデバイスは、たとえば、ウェブブラウザ、メディアプレーヤ、ゲーム、または他のアプリケーションなどのアプリケーション内で、コンテンツアイテムをレンダリングし得る。ステップ414において、クライアントデバイスのキャプチャエンジン(別個のサービスとして、またはアプリケーションのプラグインもしくはスクリプトとして実行される)は、コンテンツアイテムのスクリーンショットを取り込み得る。スクリーンショットは、コンテンツアイテムに切り取られるか、または制限されてもよく、あるいは、フルスクリーンまたはスクリーンの一部のものであってもよい。スクリーンショットは、キャプチャタイムスタンプを有するメタデータを介して識別することができ、他の識別子(たとえば、デバイス識別子、アプリケーションおよび/またはウェブページのコンテキスト識別子など)を含み得る。他の実装形態では、キャプチャタイムスタンプは、他の手段を介して提供され得る。たとえば、いくつかの実装形態では、サーバへのスクリーンショットのキャプチャ時間および送信時間が非常に近い可能性がある(たとえば、数秒以内)と仮定すると、パケット送信時間(たとえば、トランスポート層ヘッダのタイムスタンプオプションフィールドなど、パケットのヘッダから識別または抽出される)または受信時間を、キャプチャタイムスタンプとして利用することができる。ステップ416において、クライアントデバイスは、スクリーンショットを監視サーバに送信し得る。 At step 412, the client device may render the content item within an application such as, for example, a web browser, media player, game, or other application. At step 414, the client device's capture engine (running as a separate service or as an application plug-in or script) may capture a screenshot of the content item. The screenshot may be cropped or restricted to the content item, or it may be full screen or part of the screen. Screenshots can be identified via metadata with a capture timestamp, and can include other identifiers (eg, device identifiers, application and/or web page context identifiers, etc.). In other implementations, the capture timestamp may be provided via other means. For example, in some implementations, given that the screenshot capture time and transmission time to the server may be very close (e.g., within a few seconds), the packet transmission time (e.g., transport layer header time (Identified or extracted from the header of the packet, such as the Stamp Options field) or the time of receipt can be utilized as the capture timestamp. At step 416, the client device may send the screenshot to the monitoring server.

ステップ418において、コンテンツサーバまたは異なるデバイスであってもよい監視サーバは、スクリーンショットを受信してもよく、いくつかの実装形態では、スクリーンショットのメタデータからタイムスタンプを抽出してもよく、またはスクリーンショットの送信または受信時間を識別してもよい。タイムスタンプは、サイド情報として監視サーバのデコーダに提供されてもよい。 In step 418, the content server or the monitoring server, which may be a different device, may receive the screenshot, and in some implementations may extract the timestamp from the metadata of the screenshot, or It may identify the time the screenshot was sent or received. The timestamp may be provided as side information to the decoder of the monitoring server.

ステップ420において、デコーダは、スクリーンショットをスキャンし、任意の識別されたウォーターマークを抽出し得る。ウォーターマークがスクリーンショット内に複数回現れるいくつかの実装形態では、デコーダは、識別されたウォーターマークを比較し、最小の歪みを有するウォーターマーク(たとえば、画像内の最高数の他のウォーターマークに一致するウォーターマーク、他の識別されたウォーターマークの平均であるウォーターマークなど)を選択または生成することができる。ステップ422において、デコーダは、ウォーターマークを文字列に変換し得る。 At step 420, the decoder may scan the screenshot and extract any identified watermarks. In some implementations, where a watermark appears multiple times in a screenshot, the decoder compares the identified watermarks, and the watermark with the least distortion (e.g., the watermark with the highest number of other watermarks in the image). matching watermarks, watermarks that are averages of other identified watermarks, etc.) can be selected or generated. At step 422, the decoder may convert the watermark to a string.

ステップ424において、デコーダは、ステップ418から抽出されたタイムスタンプの一部(たとえば、所定数の最下位ビット)からタイムスタンプを生成することができ、生成されたタイムスタンプを使用して文字列の復号をテストすることができる(たとえば、生成されたタイムスタンプを使用して、復号された文字列に誤り訂正アルゴリズムを適用する)。文字列が誤り訂正ビットに従って正しく復号する場合、ステップ426において、監視サーバは、スクリーンショット画像またはコンテンツアイテムに関連するデータを処理することができる(たとえば、IPアドレスおよびプロセス識別子を介してコンテンツサーバを識別すること、スクリーンショットを元のコンテンツアイテムと比較して、レンダリング歪みまたは破損を検出すること、コンテンツアイテムの配信を追跡することなど)。 At step 424, the decoder may generate a timestamp from a portion of the timestamp extracted from step 418 (eg, a predetermined number of least significant bits), and use the generated timestamp to construct the string. Decoding can be tested (e.g. using the generated timestamp to apply an error correction algorithm to the decoded string). If the string decodes correctly according to the error correction bits, in step 426 the monitoring server can process the screenshot image or data associated with the content item (e.g., identify the content server via IP address and process identifier). identifying, comparing screenshots to original Content Items to detect rendering distortions or corruption, tracking delivery of Content Items, etc.).

文字列が正しく復号されない場合、デコーダは、ビニング方式からの値Δに従って生成されたタイムスタンプを進め、ステップ424でデコードを再テストすることができる。これは、復号が成功するまで、またはビンインデックス値のすべてがテストされるまで(ウォーターマークが破損しているか、または不適切に抽出されたこと、または上述の使用時間ウィンドウの前からのコンテンツアイテムが利用されたことを示唆する)、反復的に繰り返されてもよい。すべてのビンインデックス値がテストされ、復号が不成功である場合、ステップ428において、デコーダは、システムの管理者またはユーザにエラーを報告し得る。 If the string is not decoded correctly, the decoder can advance the timestamps generated according to the value Δ from the binning scheme and retest the decoding at step 424 . This is done until the decryption is successful or all of the bin index values have been tested (either because the watermark is corrupted or improperly extracted, or the content item from before the usage time window mentioned above). is used), may be repeated iteratively. If all bin index values have been tested and the decoding is unsuccessful, then at step 428 the decoder may report the error to an administrator or user of the system.

したがって、本明細書で説明されるシステムおよび方法は、知覚可能性を低下させることなく、ロバストネスおよび容量を改善するための、改善された画像ウォーターマーキングを提供する。具体的には、本明細書で説明されるシステムおよび方法は、同じ歪みレベルおよびメッセージレートで、より高い復号成功率を可能にし、または、同じ歪みレベルおよび復号成功率で、より高いメッセージレートを可能にする。これらのシステムの実装形態は、エンコーダではなくデコーダにのみ利用可能な追加の情報のサイドチェーンを利用して、漸近的に無損失データ圧縮を達成し、同じメッセージがより少ないビットで送信されることを可能にする。 Accordingly, the systems and methods described herein provide improved image watermarking for improved robustness and capacity without reducing perceptibility. Specifically, the systems and methods described herein enable higher decoding success rates at the same distortion level and message rate, or higher message rates at the same distortion level and decoding success rate. enable. Implementations of these systems take advantage of sidechains of additional information available only to the decoder, not the encoder, to achieve asymptotically lossless data compression, so that the same message is sent with fewer bits. enable

本明細書に記載された主題および動作の実装形態は、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、もしくは本明細書に開示される構造およびそれらの構造的均等物を含むハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載された主題の実装形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータ記憶媒体上に符号化される、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的に、または追加として、プログラム命令は、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成電気、光学、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得、またはそれに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令の送信元または宛先とすることができる。コンピュータ記憶媒体はまた、1つまたは複数の別々の構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得、またはそれに含まれ得る。したがって、コンピュータ記憶媒体は有形であってもよい。 Implementations of the subject matter and operations described herein may be implemented using either digital electronic circuitry or computer software, firmware, or hardware including the structures disclosed herein and their structural equivalents, or any one thereof. can be implemented in one or more combinations. Implementations of the subject matter described herein are encoded on one or more computer storage media for execution by or for controlling the operation of a data processing apparatus. It can be implemented as one or more computer programs or modules of computer program instructions. Alternatively, or additionally, the program instructions may be implemented in an artificially generated propagated signal generated to encode information for transmission to appropriate receiver equipment for execution by data processing equipment. , for example, can be encoded on a machine-generated electrical, optical, or electromagnetic signal. A computer storage medium may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Further, although a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium can also be or be contained in one or more separate components or media (eg, multiple CDs, disks, or other storage devices). As such, a computer storage medium may be tangible.

本明細書で説明されている動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されている、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。 The operations described herein may be implemented as operations performed by a data processing apparatus on data stored in one or more computer readable storage devices or received from other sources. can be done.

「クライアントまたは「サーバ」という用語は、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記のうちの複数、または上記の組合せなど、データを処理するためのあらゆる種類の装置、デバイス、および機械を含む。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。 The term "client" or "server" includes all kinds of apparatus, devices and machines for processing data, such as programmable processors, computers, systems-on-chips, or more or combinations of the above. The device may include dedicated logic circuits such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), for example. The apparatus comprises, in addition to hardware, code that creates an execution environment for the computer program in question, such as processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or one of these. Codes comprising one or more combinations may also be included. Devices and execution environments can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルまたはインタープリタ型言語、宣言型または手続き型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、オブジェクト、または他のユニットとしてなど任意の形式で配置することができる。コンピュータプログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、当該プログラム専用の単一のファイル、または(たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど)複数のコーディネートされたファイルに、(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトなど)他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。 A computer program (also called a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and as a stand-alone program, Or may be arranged in any form, such as as modules, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be written either in a single file dedicated to the program, or in multiple coordinated files (e.g., files storing one or more modules, subprograms, or portions of code) (e.g., markup It can be stored in part of a file that holds other programs or data, such as one or more scripts stored in a language document. A computer program can be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行することができ、装置を専用論理回路として実装することもできる。 The processes and logic flows described herein are one or more programmable programs that run one or more computer programs to perform actions by operating on input data and generating output. It can be executed by a processor. The processes and logic flows may also be performed by dedicated logic circuits such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the device may be implemented as dedicated logic circuits.

コンピュータプログラムの実行に適したプロセッサは、汎用および専用の両方のマイクロプロセッサ、およびあらゆる種類のデジタルコンピュータの1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスをも含み、あるいは、1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または(ユニバーサルシリアルバス(USB)フラッシュドライブなどの)ポータブルストレージデバイス中に組み込むことができる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば、内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補われる、またはそれに組み込まれ得る。 Processors suitable for the execution of a computer program include both general and special purpose microprocessors, and one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from read-only memory and/or random-access memory. The essential elements of a computer are a processor for performing actions according to instructions, and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices, such as, for example, magnetic, magneto-optical or optical disks, for storing data on or receiving data from one or more mass storage devices. , transfer data to it, or both. However, a computer need not have such devices. Additionally, the computer may be connected to another device such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or It can be embedded in a portable storage device (such as a Universal Serial Bus (USB) flash drive). Devices suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROMs. Includes all forms of non-volatile memory, media and memory devices including ROM and DVD-ROM discs. The processor and memory may be supplemented by or incorporated in dedicated logic circuitry.

ユーザとの対話を提供するために、本明細書に記載される主題の実装形態は、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)、OLED(有機発光ダイオード)、TFT(薄膜トランジスタ)、プラズマ、他のフレキシブル構成、またはユーザに情報を表示するための任意の他のモニタなどの表示デバイス、ならびにユーザがコンピュータに入力を提供することができるキーボード、ポインティングデバイス、たとえば、マウス、トラックボールなど、またはタッチスクリーン、タッチパッドなどを有するコンピュータ上で実施することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。 To provide user interaction, implementations of the subject matter described herein include, for example, CRTs (Cathode Ray Tubes), LCDs (Liquid Crystal Displays), OLEDs (Organic Light Emitting Diodes), TFTs (Thin Film Transistors), Plasma , other flexible configurations, or any other display device for displaying information to a user, such as a monitor, as well as a keyboard, pointing device, e.g., mouse, trackball, etc., through which the user can provide input to the computer Or it can be implemented on a computer with a touch screen, touch pad, or the like. Other types of devices may also be used to provide interaction with the user, and the feedback provided to the user may be any form of sensory feedback, e.g., visual, auditory, or tactile feedback. and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, the computer sends and receives documents to and from the device used by the user by sending web pages to the web browser on the user's client device in response to requests received from the web browser. , can interact with the user.

本明細書に記載される主題の実装形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、グラフィカルユーザインターフェースを有するクライアントコンピュータ、もしくはユーザが本明細書に記載された主題の実装と対話することができるウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークは、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、およびピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含むことができる。 Implementations of the subject matter described herein include backend components, such as data servers, or middleware components, such as application servers, or client computers having, for example, graphical user interfaces, or user including a front-end component such as a client computer with a web browser capable of interacting with an implementation of the subject matter described herein, or one or more such back-end, middleware, or front-end components can be implemented in a computing system comprising any combination of The components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Communication networks can include local area networks (“LAN”) and wide area networks (“WAN”), internetworks (eg, the Internet), and peer-to-peer networks (eg, ad-hoc peer-to-peer networks).

本明細書で説明したシステムがユーザに関する個人情報を収集する、または個人情報を利用する可能性がある状況では、ユーザは、個人情報(たとえば、ユーザのソーシャルネットワーク、社会的行動または活動、ユーザの選好、またはユーザの位置に関する情報)を収集し得るプログラムまたは機能を制御する機会、または、ユーザにとってより関連があり得る、コンテンツサーバまたは他のデータ処理システムからコンテンツを受信するかどうか、またはどのようにコンテンツを受信するかを制御する機会を与えられ得る。さらに、あるデータは、それが記憶または使用される前に1つまたは複数の方法で匿名化される可能性があり、したがって、パラメータを生成するときに個人的に識別可能な情報は削除される。たとえば、個人的に識別可能な情報をそのユーザについて決定することができないように、ユーザの識別情報は匿名化されてもよく、または、ユーザの地理的位置が一般化されてもよく、ユーザの特定の場所を決定できないように、(市、郵便番号、または州レベルなどの)位置情報が取得される。したがって、ユーザは、ユーザについての情報をどのように収集するか、およびコンテンツサーバによってどのように使用されるかを制御し得る。 In situations where the systems described herein may collect or utilize personal information about the user, the user may collect personal information (e.g., the user's social networks, social behavior or activities, the user's preferences, or the opportunity to control programs or features that may collect information about a user's location, or whether or how content is received from a content server or other data processing system that may be more relevant to the user; may be given the opportunity to control how they receive content. In addition, some data may be anonymized in one or more ways before it is stored or used, thus removing personally identifiable information when generating parameters. . For example, a user's identity may be anonymized so that no personally identifiable information can be determined about the user, or the user's geographic location may be generalized, and the user's Location information (such as city, zip code, or state level) is obtained so that a specific location cannot be determined. Thus, users can control how information is collected about them and how it is used by content servers.

本明細書は、多くの具体的な実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実装形態に固有の特徴の説明として解釈されるものとする。別個の実装形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実装することもできる。逆に、単一の実装形態の文脈で記載されている様々な特徴は、複数の実装形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているものであるが、請求された組合せからの1つまたは複数の特徴を、いくつかの場合、組合せから切り取ることができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。 While this specification contains many specific implementation details, these are not limitations on the scope of any invention or that may be claimed, but rather are specific to particular implementations of particular inventions. shall be construed as a description of the characteristics of Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Further, although features are described above and originally claimed as working in some combination, one or more features from the claimed combination may be used in some combinations. Cases can be cut from a combination, and a claimed combination may cover a subcombination, or a variation of a subcombination.

同様に、動作が特定の順序で図面に示されているが、これは、そのような動作が、示された特定の順序、または逐次的な順序で実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。 Similarly, although acts have been shown in the figures in a particular order, it does not mean that such acts are performed in the specific order shown, or in a sequential order to achieve the desired result. It should not be understood as requiring that all illustrated acts be performed for purposes of illustration. Multitasking and parallel processing may be advantageous in some situations. Furthermore, the separation of various system components in the implementations described above is not to be understood as requiring such separation in all implementations, and the program components and systems described generally can be combined into a single system. can be incorporated together into multiple software products, or can be packaged into multiple software products.

したがって、主題の特定の実装形態が記載されている。他の実装形態は、以下の特許請求の範囲内にある。いくつかの場合、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの実装形態では、マルチタスキングまたは並列処理を利用することができる。 Accordingly, specific implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. Additionally, the processes illustrated in the accompanying drawings do not necessarily require the particular order shown or sequential order to achieve desirable results. In some implementations, multitasking or parallel processing can be utilized.

100 画像
102 ウォーターマークコード
150 データフォーマット
152 タイムスタンプ
154 IPアドレス
156 プロセス識別子
158 タイムスタンプLSB
160 追加のデータ
200 システム
202 エンコーダ
204 デコーダ
206 画像「S」
208 メッセージ「X」
210 ウォーターマーク入り画像「S'」
212 通信チャネル
214 サイド情報「Y」
300 クライアントデバイス
302 プロセッサ
304 ネットワークインターフェース
306 メモリデバイス
308 アプリケーション
310 キャプチャエンジン
312 ネットワーク
314 サーバ
316 コンテンツアイテム
100 images
102 watermark code
150 data format
152 Timestamp
154 IP addresses
156 process identifier
158 Timestamp LSB
160 additional data
200 systems
202 Encoder
204 decoder
206 Image "S"
208 Message "X"
210 Watermarked image "S'"
212 communication channels
214 Side information "Y"
300 client devices
302 processor
304 network interface
306 memory device
308 applications
310 capture engine
312 network
314 servers
316 content items

Claims (27)

ウォーターマーキングシステムのためのデコーダであって、
クライアントデバイスから、(i)前記クライアントデバイスによって表示された画像のスクリーンショットであり、前記画像は、前記画像に関連付けられた画像メタデータに関連付けられた文字列でウォーターマークが入れられている、スクリーンショットと、(ii)前記画像の前記スクリーンショットに関連付けられたスクリーンショットメタデータとを含むパケットを受信することと、
前記パケットから、前記スクリーンショットメタデータおよび前記文字列を抽出することと、
前記スクリーンショットメタデータの一部を使用して、前記文字列から前記画像に関連付けられた識別子を復号することであり、前記識別子が、画像メタデータを含む、復号することと、
前記復号された識別子に応答して、前記画像に関連付けられたコンテンツアイテムの配信を追跡することと
を行うように構成されている、ウォーターマーキングシステムのためのデコーダ。
A decoder for a watermarking system, comprising:
from a client device, (i) a screen shot of an image displayed by said client device, said image being watermarked with a string associated with image metadata associated with said image; receiving a packet containing a shot and (ii) screenshot metadata associated with said screenshot of said image;
extracting the screenshot metadata and the string from the packet;
decoding an identifier associated with the image from the string using a portion of the screenshot metadata, the identifier comprising image metadata;
and tracking delivery of a content item associated with said image in response to said decoded identifier.
前記スクリーンショットメタデータは、前記画像の前記スクリーンショットのタイムスタンプを含み、前記画像メタデータは、前記画像のタイムスタンプを含む、請求項1に記載のウォーターマーキングシステムのためのデコーダ。 2. A decoder for watermarking system according to claim 1, wherein said screenshot metadata comprises a timestamp of said screenshot of said image, said image metadata comprises a timestamp of said image. 前記デコーダは、前記画像の前記スクリーンショットと、前記スクリーンショットメタデータとを含む前記パケットのヘッダから、前記画像の前記スクリーンショットの前記タイムスタンプを抽出するように構成されている、請求項2に記載のウォーターマーキングシステムのためのデコーダ。 3. The decoder of claim 2, wherein the decoder is configured to extract the timestamp of the screenshot of the image from a header of the packet containing the screenshot of the image and the screenshot metadata. Decoder for the watermarking system described. 前記文字列は、前記画像の前記タイムスタンプのサブセットを含む、請求項2または3に記載のウォーターマーキングシステムのためのデコーダ。 4. A decoder for a watermarking system according to claim 2 or 3, wherein said string comprises a subset of said time stamps of said image. 前記デコーダは、前記画像の前記スクリーンショットの前記タイムスタンプの一部を、前記画像の前記タイムスタンプの前記サブセットと連結することによって、前記文字列から前記識別子を復号するように構成されている、請求項4に記載のウォーターマーキングシステムのためのデコーダ。 the decoder is configured to decode the identifier from the string by concatenating a portion of the timestamp of the screenshot of the image with the subset of the timestamp of the image; A decoder for a watermarking system according to claim 4. 前記文字列は、前記画像の前記タイムスタンプの長さと、前記画像の前記タイムスタンプの前記サブセットの長さとの間の差よりも大きいいくつかの誤り訂正ビットを含む、請求項4または請求項5に記載のウォーターマーキングシステムのためのデコーダ。 6. The string of claims 4 or 5, wherein the string comprises a number of error correction bits greater than the difference between the length of the timestamp of the image and the length of the subset of timestamps of the image. Decoder for the watermarking system described in . 前記デコーダは、前記スクリーンショットメタデータの前記一部を、所定のオフセットと組み合わせることによって、前記文字列から前記識別子を復号するように構成されている、請求項1から6のいずれか一項に記載のウォーターマーキングシステムのためのデコーダ。 7. The decoder according to any one of claims 1 to 6, wherein said decoder is arranged to decode said identifier from said string by combining said part of said screenshot metadata with a predetermined offset. Decoder for the watermarking system described. 前記デコーダは、前記識別子の復号に成功するまで、前記スクリーンショットメタデータの前記一部を、前記所定のオフセットの倍数と反復的に組み合わせることによって、前記文字列から前記識別子を復号するように構成されている、請求項7に記載のウォーターマーキングシステムのためのデコーダ。 The decoder is configured to decode the identifier from the string by iteratively combining the portion of the screenshot metadata with multiples of the predetermined offset until successfully decoding the identifier. 8. A decoder for watermarking system according to claim 7, wherein: 前記文字列は、前記文字列でウォーターマークが入れられた前記画像を生成したコンテンツサーバのアドレスを含む、請求項1から8のいずれか一項に記載のウォーターマーキングシステムのためのデコーダ。 Decoder for a watermarking system according to any one of claims 1 to 8, wherein said string contains an address of a content server that generated said image watermarked with said string. 前記文字列は、前記文字列でウォーターマークが入れられた前記画像を生成した前記コンテンツサーバのプロセスの識別子を含む、請求項9に記載のウォーターマーキングシステムのためのデコーダ。 10. A decoder for a watermarking system according to claim 9, wherein said string comprises an identifier of said content server process that generated said image watermarked with said string. コンピューティングデバイスによって実行されるウォーターマークを入れるための方法であって、
デバイスのデコーダによって、クライアントデバイスから、(i)前記クライアントデバイスによって表示された画像のスクリーンショットであり、前記画像は、前記画像に関連付けられた画像メタデータに関連付けられた文字列でウォーターマークが入れられている、スクリーンショットと、(ii)前記画像の前記スクリーンショットに関連付けられたスクリーンショットメタデータとを含むパケットを受信するステップと、
前記デコーダによって、前記パケットから、前記スクリーンショットメタデータおよび前記文字列を抽出するステップと、
前記デコーダによって、前記スクリーンショットメタデータの一部を使用して、前記文字列から前記画像に関連付けられた識別子を復号するステップであり、前記識別子が、画像メタデータを含む、復号するステップと、
前記デコーダによって、前記復号された識別子に応答して、前記画像に関連付けられたコンテンツアイテムの配信を追跡するステップと
を含むウォーターマークを入れるための方法。
A method for watermarking performed by a computing device, comprising:
(i) a screenshot of an image displayed by said client device, said image being watermarked with a string associated with image metadata associated with said image; and (ii) screenshot metadata associated with said screenshot of said image;
extracting the screenshot metadata and the string from the packet by the decoder;
decoding, by the decoder, an identifier associated with the image from the string using a portion of the screenshot metadata, the identifier comprising image metadata;
tracking, by said decoder, delivery of a content item associated with said image in response to said decoded identifier.
前記スクリーンショットメタデータは、前記画像の前記スクリーンショットのタイムスタンプを含み、前記画像メタデータは、前記画像のタイムスタンプを含む、請求項11に記載のウォーターマークを入れるための方法。 12. The method for watermarking according to claim 11, wherein said screenshot metadata comprises a timestamp of said screenshot of said image, said image metadata comprises a timestamp of said image. 前記デコーダによって、前記画像の前記スクリーンショットを含む前記パケットのヘッダから、前記画像の前記スクリーンショットの前記タイムスタンプを抽出するステップをさらに含む、請求項12に記載のウォーターマークを入れるための方法。 13. The method for watermarking according to claim 12, further comprising extracting, by the decoder, the timestamp of the screenshot of the image from a header of the packet containing the screenshot of the image. 前記文字列は、前記画像の前記タイムスタンプのサブセットを含む、請求項12または13に記載のウォーターマークを入れるための方法。 14. A method for watermarking according to claim 12 or 13, wherein said string comprises a subset of said time stamps of said image. 前記文字列から前記識別子を復号するステップは、前記画像の前記スクリーンショットの前記タイムスタンプの一部を、前記画像の前記タイムスタンプの前記サブセットと連結するステップをさらに含む、請求項14に記載のウォーターマークを入れるための方法。 15. The method of claim 14, wherein decoding the identifier from the string further comprises concatenating a portion of the timestamp of the screenshot of the image with the subset of timestamps of the image. A method for watermarking. 前記文字列は、前記画像の前記タイムスタンプの長さと、前記画像の前記タイムスタンプの前記サブセットの長さとの間の差よりも大きいいくつかの誤り訂正ビットを含む、請求項14または請求項15に記載のウォーターマークを入れるための方法。 Claim 14 or claim 15, wherein said string comprises a number of error correction bits greater than the difference between the length of said timestamp of said image and the length of said subset of said timestamps of said image. A method for watermarking as described in . 前記文字列から前記識別子を復号するステップは、前記スクリーンショットメタデータの前記一部を、所定のオフセットと組み合わせるステップをさらに含む、請求項11から16のいずれか一項に記載のウォーターマークを入れるための方法。 17. Watermarking according to any one of claims 11 to 16, wherein decoding the identifier from the string further comprises combining the portion of the screenshot metadata with a predetermined offset. way for. 前記文字列から前記識別子を復号するステップは、前記識別子の復号に成功するまで、前記スクリーンショットメタデータの前記一部を、前記所定のオフセットの倍数と反復的に組み合わせるステップをさらに含む、請求項17に記載のウォーターマークを入れるための方法。 3. The step of decoding the identifier from the string further comprises iteratively combining the portion of the screenshot metadata with multiples of the predetermined offset until the identifier is successfully decoded. A method for watermarking according to 17. 前記文字列は、前記文字列でウォーターマークが入れられた前記画像を生成したコンテンツサーバのアドレスを含む、請求項11から18のいずれか一項に記載のウォーターマークを入れるための方法。 19. A method for watermarking according to any one of claims 11 to 18, wherein said string comprises an address of a content server that generated said image watermarked with said string. 前記文字列は、前記文字列でウォーターマークが入れられた前記画像を生成した前記コンテンツサーバのプロセスの識別子を含む、請求項19に記載のウォーターマークを入れるための方法。 20. The method for watermarking of claim 19, wherein the string includes an identifier of the content server process that generated the image watermarked with the string. コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、請求項11から20のいずれか一項に記載の前記方法を実行させる命令を含むコンピュータ可読記憶媒体。 A computer readable storage medium containing instructions which, when executed by a computing device, cause said computing device to perform the method of any one of claims 11 to 20. 画像、および前記画像に関連付けられた画像メタデータを受信することと、
前記画像メタデータのサブセットから文字列を生成することと、
前記文字列からウォーターマークを符号化することと、
前記ウォーターマークを前記画像に埋め込むことと
を行うように構成されたデバイスのエンコーダを含み、
前記デバイスまたは第2のデバイスのデコーダは、
クライアントデバイスから、(i)前記クライアントデバイスによって表示された前記画像のスクリーンショットであり、前記画像は、前記画像メタデータの前記サブセットから生成された前記文字列でウォーターマークが入れられている、スクリーンショットと、(ii)前記画像の前記スクリーンショットに関連付けられたスクリーンショットメタデータとを含むパケットを受信すること、
前記クライアントデバイスによって表示された前記画像の前記スクリーンショットと、前記スクリーンショットメタデータとを含む前記パケットから、前記文字列および追加のスクリーンショットメタデータを抽出することと、
前記追加のスクリーンショットメタデータの一部を使用して、前記文字列から前記画像に関連付けられた識別子を復号することであり、前記識別子が、前記画像メタデータの一部を含む、復号することと、
前記復号された識別子に応答して、前記画像に関連付けられたコンテンツアイテムの配信を追跡することと
を行う、
ウォーターマーキングシステム。
receiving an image and image metadata associated with the image;
generating a string from a subset of the image metadata;
encoding a watermark from the string;
embedding said watermark in said image; and
a decoder of said device or a second device,
from a client device, (i) a screen shot of said image displayed by said client device, said image being watermarked with said string generated from said subset of said image metadata; receiving a packet containing a shot and (ii) screenshot metadata associated with said screenshot of said image;
extracting the string and additional screenshot metadata from the packet containing the screenshot of the image displayed by the client device and the screenshot metadata;
decoding an identifier associated with the image from the string using a portion of the additional screenshot metadata, the identifier including a portion of the image metadata; and,
tracking delivery of a content item associated with the image in response to the decoded identifier;
watermarking system.
前記画像メタデータは、前記画像のタイムスタンプを含み、前記追加のスクリーンショットメタデータは、前記クライアントデバイスによる前記画像の前記スクリーンショットのタイムスタンプを含む、請求項22に記載のウォーターマーキングシステム。 23. The watermarking system of claim 22, wherein the image metadata includes a timestamp of the image and the additional screenshot metadata includes a timestamp of the screenshot of the image by the client device. 前記デバイスの前記エンコーダは、前記画像メタデータの所定数の最下位ビットから前記文字列を生成するように構成されている、請求項22または23に記載のウォーターマーキングシステム。 24. A watermarking system according to claim 22 or 23, wherein said encoder of said device is configured to generate said string from a predetermined number of least significant bits of said image metadata. コンピューティングデバイスによって実行されるウォーターマークを入れるための方法であって、
デバイスのエンコーダによって、画像、および前記画像に関連付けられた画像メタデータを受信するステップと、
前記エンコーダによって、前記画像メタデータのサブセットから文字列を生成するステップと、
前記エンコーダによって、前記文字列からウォーターマークを符号化するステップと、
前記エンコーダによって、前記画像に前記ウォーターマークを埋め込むステップと
を含み、前記デバイスまたは第2のデバイスのデコーダは、
クライアントデバイスから、(i)前記クライアントデバイスによって表示された前記画像のスクリーンショットであり、前記画像は、前記画像メタデータの前記サブセットから生成された前記文字列でウォーターマークが入れられている、スクリーンショットと、(ii)前記画像の前記スクリーンショットに関連付けられたスクリーンショットメタデータとを含むパケットを受信することと、
前記クライアントデバイスによって表示された前記画像の前記スクリーンショットと、前記スクリーンショットメタデータとを含む前記パケットから、前記文字列および追加のスクリーンショットメタデータを抽出することと、
前記追加のスクリーンショットメタデータの一部を使用して、前記文字列から前記画像に関連付けられた識別子を復号することであり、前記識別子が、前記画像メタデータの一部を含む、復号することと、
前記復号された識別子に応答して、前記画像に関連付けられたコンテンツアイテムの配信を追跡することと
を行う、
ウォーターマークを入れるための方法。
A method for watermarking performed by a computing device, comprising:
receiving, by an encoder of a device, an image and image metadata associated with said image;
generating, by the encoder, a string from the subset of the image metadata;
encoding a watermark from the string by the encoder;
embedding said watermark in said image by said encoder, wherein a decoder of said device or a second device comprises:
from a client device, (i) a screen shot of said image displayed by said client device, said image being watermarked with said string generated from said subset of said image metadata; receiving a packet containing a shot and (ii) screenshot metadata associated with said screenshot of said image;
extracting the string and additional screenshot metadata from the packet containing the screenshot of the image displayed by the client device and the screenshot metadata;
decoding an identifier associated with the image from the string using a portion of the additional screenshot metadata, the identifier including a portion of the image metadata; and,
tracking delivery of a content item associated with the image in response to the decoded identifier;
A method for watermarking.
前記画像メタデータは、前記画像のタイムスタンプを含み、前記追加のスクリーンショットのメタデータは、前記クライアントデバイスによる前記画像の前記スクリーンショットのタイムスタンプを含む、請求項25に記載のウォーターマークを入れるための方法。 26. The watermarking of claim 25, wherein the image metadata comprises a timestamp of the image and the additional screenshot metadata comprises a timestamp of the screenshot of the image by the client device. way for. 前記画像メタデータの所定数の最下位ビットから前記文字列を生成するステップをさらに含む、請求項25または26に記載のウォーターマークを入れるための方法。 27. A method for watermarking according to claim 25 or 26, further comprising generating said string from a predetermined number of least significant bits of said image metadata.
JP2021531779A 2019-06-19 2020-06-18 Improved image watermarking Active JP7225403B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USPCT/US2019/037959 2019-06-19
PCT/US2019/037959 WO2020256718A1 (en) 2019-06-19 2019-06-19 Improved image watermarking
PCT/US2020/038489 WO2020257493A1 (en) 2019-06-19 2020-06-18 Improved image watermarking

Publications (2)

Publication Number Publication Date
JP2022532814A JP2022532814A (en) 2022-07-20
JP7225403B2 true JP7225403B2 (en) 2023-02-20

Family

ID=67138214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021531779A Active JP7225403B2 (en) 2019-06-19 2020-06-18 Improved image watermarking

Country Status (5)

Country Link
JP (1) JP7225403B2 (en)
KR (1) KR102578027B1 (en)
CN (1) CN113168666B (en)
DE (1) DE112020000150T5 (en)
WO (2) WO2020256718A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542767B (en) * 2021-07-14 2022-06-10 广东工业大学 Information hidden image processing model construction method, device, terminal and medium
CN116957893B (en) * 2023-06-26 2024-04-16 海易科技(北京)有限公司 Watermark generation method, watermark generation device, electronic device and computer readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015531189A (en) 2012-07-16 2015-10-29 エルジー エレクトロニクス インコーポレイティド Digital service signal processing method and apparatus
US20160309238A1 (en) 2013-12-03 2016-10-20 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
JP2018527772A (en) 2015-06-08 2018-09-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated Broadcast content redistribution and ad insertion

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680921B1 (en) * 1999-06-18 2004-01-20 Telefonaktiebolaget Lm Ericsson (Publ) Estimation of time stamps in real-time packet communications
EP1257921A4 (en) * 2000-02-19 2006-09-20 Digimarc Corp Watermark encoder and decoder enabled software and devices
CN100364326C (en) * 2005-12-01 2008-01-23 北京北大方正电子有限公司 Method and apparatus for embedding and detecting digital watermark in text file
KR101680044B1 (en) * 2008-08-19 2016-11-28 디지맥 코포레이션 Methods and systems for content processing
CN102461066B (en) * 2009-05-21 2015-09-09 数字标记公司 Differentiate the method for content signal
WO2016086047A1 (en) * 2014-11-25 2016-06-02 Verance Corporation Enhanced metadata and content delivery using watermarks
CN110996704B (en) 2017-08-04 2023-05-02 耐克创新有限合伙公司 Article of footwear having knitted component with forefoot portion and heel portion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015531189A (en) 2012-07-16 2015-10-29 エルジー エレクトロニクス インコーポレイティド Digital service signal processing method and apparatus
US20160309238A1 (en) 2013-12-03 2016-10-20 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
JP2018527772A (en) 2015-06-08 2018-09-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated Broadcast content redistribution and ad insertion

Also Published As

Publication number Publication date
CN113168666B (en) 2024-05-14
WO2020256718A1 (en) 2020-12-24
WO2020257493A1 (en) 2020-12-24
CN113168666A (en) 2021-07-23
JP2022532814A (en) 2022-07-20
KR20210079362A (en) 2021-06-29
KR102578027B1 (en) 2023-09-13
DE112020000150T5 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
Shi et al. Reversible data hiding: Advances in the past two decades
US8885870B2 (en) Information processing device and computer program product
JP7225403B2 (en) Improved image watermarking
CN104125467B (en) Embedding and extracting methods for video steganography information
Zhu et al. Robust steganography by modifying sign of DCT coefficients
CN102648584B (en) Use the system of forward error correction inspection available bandwidth, method and medium
US20230111326A1 (en) Image watermarking
Singh et al. Robust and imperceptible spread-spectrum watermarking for telemedicine applications
Yiğit et al. A stenography application for hiding student information into an image
US10949392B2 (en) Steganography obsfucation
US20220092721A1 (en) Improved image watermarking
Korus et al. A new approach to high-capacity annotation watermarking based on digital fountain codes
JPWO2017130333A1 (en) Image processing apparatus, image processing method, and program
CN116156072A (en) Steganographic image generation method, steganographic information extraction method and related devices
JP2013058965A (en) Digital data information embedding apparatus and embedded information detection apparatus
Rodrigues et al. Reversible image steganography using cyclic codes and dynamic cover pixel selection
Preetha et al. Adaptive image steganography based on Syndrome-Trellis codes
CN107005746B (en) Method, system, and computer-readable storage medium for encryption
Hanzlik Steganography in Reed-Solomon Codes
US11423506B2 (en) Video frame to frame difference watermarking with drm metadata
CN109981555B (en) Method, device, equipment, terminal and storage medium for processing webpage data
Kireev et al. Transform-Aware Content Adaptive Stegosystem for Social Networks
Ulutas et al. Secret image sharing with enhanced visual quality and authentication mechanism
Nakamura et al. A fast and robust digital watermark detection scheme for cellular phones
Chouksey et al. Data Authentication Using Cryptography

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211012

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211012

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230208

R150 Certificate of patent or registration of utility model

Ref document number: 7225403

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150