JP7225403B2 - Improved image watermarking - Google Patents
Improved image watermarking Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 71
- 230000008569 process Effects 0.000 claims description 26
- 238000012937 correction Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011273 social behavior Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8358—Generation of protective data, e.g. certificates involving watermark
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/005—Robust watermarking, e.g. average attack or collusion attack resistant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2389—Multiplex stream processing, e.g. multiplex stream encrypting
- H04N21/23892—Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0051—Embedding of the watermark in the spatial domain
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0065—Extraction of an embedded watermark; Reliable detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0083—Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0202—Image 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.
様々な図面における同様の参照番号および名称は同様の要素を示す。 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
そのような一実装形態では、データは、クライアントデバイスに画像を提供する前に、コンテンツサーバの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
デコーダ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,
図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
以下の説明では、一例として、スクリーンショットタイムスタンプを使用するが、他の同様の実装形態では、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
デコーダ側では、受信されたスクリーンショットから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).
ビット数を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
図3は、いくつかの実装形態による、画像ウォーターマーキングのためのシステムのブロック図である。デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、スマートフォン、組込み型コンピュータ、スマートカー、または任意の他のタイプおよび形態のコンピューティングデバイスを含むことができるクライアントデバイス300は、ネットワーク312を介して1つまたは複数のサーバ314と通信し得る。
FIG. 3 is a block diagram of a system for image watermarking, according to some implementations.
多くの実装形態では、クライアントデバイス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,
クライアントデバイス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つまたは複数の追加のデバイス(たとえば、ルータ、スイッチ、ファイアウォール、ハブ、ネットワークアクセラレータ、キャッシュなど)を含み得る。
クライアントデバイスは、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は、画像内に埋め込まれたウォーターマークを含む画像をコンテンツサーバから受信することができ、クライアントデバイスのユーザのためのユーザインターフェースを介してそれらを表示し得る。
メモリ306はまた、アプリケーション308(たとえば、ブラウザのプラグインまたは拡張)の一部、および/またはデバイスのオペレーティングシステムの一部とすることができるキャプチャエンジン310も含み得る。キャプチャエンジン310は、アプリケーション、サーバ、サービス、デーモン、ルーチン、またはウォーターマークを含むレンダリングされた画像のスクリーンショットを取り込むための他の実行可能なロジックを含み得る。キャプチャエンジン310は、すべての画像またはいくつかの画像のスクリーンショットを取り込むように構成され得る。たとえば、いくつかの実装形態では、キャプチャエンジン310は、画像のメタデータに応答して、またはアプリケーション308によって実行されるスクリプトに応答して(たとえば、ブラウザによって表示されるウェブページに埋め込まれたスクリプトに応答して)、画像のスクリーンショットを撮るようにトリガされ得る。キャプチャエンジン310は、いくつかの実装形態では、画像のみのスクリーンショットを撮ることができ、またはディスプレイまたはスクリーン全体のスクリーンショットを撮ることができる。さらなる実装形態では、キャプチャエンジンは、取り込まれた画像を所望の画像だけにクロッピングすることができる。これは、たとえば、ディスプレイ内の画像の表示の座標に基づいて行われ得る。キャプチャエンジン310は、上述したように、キャプチャ時間(たとえば、エポック時間)などメタデータをスクリーンショットに追加し得る。キャプチャエンジン310は、ネットワークインターフェース304を介してモニタリングサーバにスクリーンショットを送信してもよい。いくつかの実装形態では、キャプチャエンジン310は、ウェブページに埋め込まれ、ウェブページをレンダリングしながらアプリケーション308によって実行されるスクリプトを含み得、そのようなウェブページは、キャプチャエンジンが、のスクリーンショットを取り込むための埋め込まれた画像、または画像へのリンクも含み得る。
サーバ314は、コンテンツサーバおよび/または監視サーバを含むことができ、これらは、同じデバイスであっても、異なるデバイスであってもよい。サーバ314は、1つまたは複数のプロセッサ302、ネットワークインターフェース304、およびメモリデバイス306を含み得る。コンテンツサーバ314は、ウォーターマークを入れる画像など、ストレージ内の1つまたは複数のコンテンツアイテム316、ならびに他のコンテンツ(たとえば、ウェブページ、他のメディアなど)を含み得る。コンテンツサーバ314は、図2Aおよび図2Bに関連して上述したように、エンコーダ202も含み得る。エンコーダ202は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアの組合せを含み得る。たとえば、エンコーダ202は、ASIC、FPGA、または画像にウォーターマークを埋め込むための他の専用ハードウェアを含み得る。
監視サーバは、図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
ステップ406において、コンテンツサーバ314は、タイムスタンプ、サーバの識別子またはサーバのIPアドレス、および/またはコンテンツアイテムを選択するために使用されるプロセスのプロセス識別子を含む1つまたは複数の識別子を含み得るウォーターマーク識別子を生成し得る。いくつかの実装形態では、ウォーターマーク識別子は、コンテンツアイテムの識別子などの追加情報を含み得る。ステップ408において、コンテンツアイテムは、ウォーターマークで符号化されてもよい。上述したように、コンテンツアイテムを符号化することは、符号化されたウォーターマーク(たとえば、QRコードまたは同様のコード)の変更されたビットを表すデフォルト値またはパターンから変更されたピクセルを有するアルファチャネルでオーバーレイを生成することを含み得る。ウォーターマークは、画像にわたって所定の間隔またはスペースで繰り返されてもよい。次いで、オーバーレイは、符号化されたコンテンツアイテムを生成するために、画像とブレンドまたは結合され得る。ステップ410において、符号化されたコンテンツアイテムは、コンテンツサーバによってクライアントデバイスに送信され得る。
At step 406, the
コンテンツサーバがウォーターマーク識別子を生成し、コンテンツアイテムの要求を受信した後にウォーターマークを符号化することを示しているが、いくつかの実装形態では、コンテンツアイテムは、(たとえば、ステップ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
文字列が正しく復号されない場合、デコーダは、ビニング方式からの値Δに従って生成されたタイムスタンプを進め、ステップ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
したがって、本明細書で説明されるシステムおよび方法は、知覚可能性を低下させることなく、ロバストネスおよび容量を改善するための、改善された画像ウォーターマーキングを提供する。具体的には、本明細書で説明されるシステムおよび方法は、同じ歪みレベルおよびメッセージレートで、より高い復号成功率を可能にし、または、同じ歪みレベルおよび復号成功率で、より高いメッセージレートを可能にする。これらのシステムの実装形態は、エンコーダではなくデコーダにのみ利用可能な追加の情報のサイドチェーンを利用して、漸近的に無損失データ圧縮を達成し、同じメッセージがより少ないビットで送信されることを可能にする。 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.
デバイスのデコーダによって、クライアントデバイスから、(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.
前記画像メタデータのサブセットから文字列を生成することと、
前記文字列からウォーターマークを符号化することと、
前記ウォーターマークを前記画像に埋め込むことと
を行うように構成されたデバイスのエンコーダを含み、
前記デバイスまたは第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.
デバイスのエンコーダによって、画像、および前記画像に関連付けられた画像メタデータを受信するステップと、
前記エンコーダによって、前記画像メタデータのサブセットから文字列を生成するステップと、
前記エンコーダによって、前記文字列からウォーターマークを符号化するステップと、
前記エンコーダによって、前記画像に前記ウォーターマークを埋め込むステップと
を含み、前記デバイスまたは第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.
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)
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)
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)
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 |
-
2019
- 2019-06-19 WO PCT/US2019/037959 patent/WO2020256718A1/en active Application Filing
-
2020
- 2020-06-18 CN CN202080006695.8A patent/CN113168666B/en active Active
- 2020-06-18 KR KR1020217016131A patent/KR102578027B1/en active IP Right Grant
- 2020-06-18 WO PCT/US2020/038489 patent/WO2020257493A1/en active Application Filing
- 2020-06-18 DE DE112020000150.4T patent/DE112020000150T5/en active Pending
- 2020-06-18 JP JP2021531779A patent/JP7225403B2/en active Active
Patent Citations (3)
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 |