DE112020000150T5 - IMPROVED IMAGE WATERMARKS - Google Patents

IMPROVED IMAGE WATERMARKS Download PDF

Info

Publication number
DE112020000150T5
DE112020000150T5 DE112020000150.4T DE112020000150T DE112020000150T5 DE 112020000150 T5 DE112020000150 T5 DE 112020000150T5 DE 112020000150 T DE112020000150 T DE 112020000150T DE 112020000150 T5 DE112020000150 T5 DE 112020000150T5
Authority
DE
Germany
Prior art keywords
image
screenshot
identifier
metadata associated
character string
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.)
Pending
Application number
DE112020000150.4T
Other languages
German (de)
Inventor
Daan He
Dake He
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 DE112020000150T5 publication Critical patent/DE112020000150T5/en
Pending legal-status Critical Current

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)

Abstract

Die vorliegende Offenbarung stellt Systeme und Verfahren für eine verbesserte Bildwasserzeichenkennzeichnung bereit, um die Robustheit und Kapazität zu verbessern, ohne die Wahrnehmbarkeit zu verschlechtern. Insbesondere ermöglichen die hierin erörterten Systeme und Verfahren eine höhere Decodierungserfolgsrate bei demselben Verzerrungsniveau und derselben Nachrichtenrate; oder eine höhere Nachrichtenrate bei gleichem Verzerrungsniveau und gleicher Decodierungserfolgsrate. Implementierungen dieser Systeme verwenden eine Seitenkette zusätzlicher Informationen, die nur dem Decodierer und nicht dem Codierer zur Verfügung stehen, um eine asymptotisch verlustfreie Datenkompression, die die Übertragung derselben Nachricht ermöglicht, zu erreichen.The present disclosure provides systems and methods for improved image watermarking to improve robustness and capacity without degrading perceptibility. In particular, the systems and methods discussed herein enable a higher decoding success rate with the same level of distortion and the same message rate; or a higher message rate with the same level of distortion and the same decoding success rate. Implementations of these systems use a side chain of additional information that is only available to the decoder and not the encoder to achieve asymptotically lossless data compression that enables the same message to be transmitted.

Description

VERWANDTE ANMELDUNGENRELATED REGISTRATIONS

Die vorliegende Anmeldung beansprucht den Vorteil und die Priorität der PCT-Anmeldung Nr. PCT/ US2019/037959 mit dem Titel „Improved Image Watermarking“, eingereicht am 19. Juni 2019, auf deren Gesamtheit hiermit ausdrücklich Bezug genommen wird.The present application claims the advantage and priority of PCT application no. PCT / US2019 / 037959 entitled "Improved Image Watermarking", submitted on June 19, 2019, the entirety of which is hereby expressly incorporated by reference.

HINTERGRUNDBACKGROUND

Bildwasserzeichen sind eine Technik, die visuell nicht wahrnehmbare Daten oder Nachrichten in ein Bild einbettet und als nicht sichtbar oder sichtbar kategorisiert werden kann, abhängig davon, ob das Originalbild für die Wasserzeichenextraktion erforderlich ist. Sichtbares Wasserzeichen ist besonders nützlich, da die eingebetteten Daten wiederhergestellt werden können, ohne Zugriff auf das ursprüngliche voreingebettete Bild zu haben.Image watermarks are a technique that embeds visually imperceptible data or messages in an image and can be categorized as invisible or visible depending on whether the original image is required for watermark extraction. Visible watermark is particularly useful because the embedded data can be recovered without access to the original pre-embedded image.

Gegenwärtige Implementierungen von sichtbarem Bild-Wasserzeichen können jedoch Probleme mit der Wahrnehmbarkeit (z.B., ob eine durch das Einbetten der Wasserzeichen-Nachricht eingeführte Verzerrung durch einen Betrachter erkennbar ist), der Robustheit (z.B. der Erfolgsrate bei einem Decodierer, der die eingebettete Nachricht decodiert) haben, und der Kapazität (z.B. die Datenmenge oder Rate, mit der Daten in das Bild eingebettet werden können). In vielen Implementierungen kann das Erhöhen einer dieser Implementierungen zu drastischen Verschlechterungen bei den anderen führen.Current implementations of visible image watermarks, however, can have problems with perceptibility (e.g. whether a distortion introduced by the embedding of the watermark message can be seen by a viewer), robustness (e.g. the success rate with a decoder that decodes the embedded message) and the capacity (e.g., the amount of data or rate at which data can be embedded in the image). In many implementations, increasing one of these implementations can dramatically degrade the other.

ZUSAMMENFASSUNGSUMMARY

In vielen Implementierungen kann das Erhöhen einer dieser Implementierungen zu drastischen Verschlechterungen bei den anderen führen. Insbesondere ermöglichen die hier diskutierten Systeme und Verfahren eine höhere Decodierungserfolgsrate bei gleichem Verzerrungsgrad und gleicher Nachrichtenrate; oder eine höhere Nachrichtenrate bei gleichem Verzerrungsgrad und gleicher Decodierungserfolgsrate. Implementierungen dieser Systeme verwenden eine Seitenkette (oder einen Seitenkanal) zusätzlicher Informationen, die nur dem Decodierer und nicht dem Codierer zur Verfügung stehen, um eine asymptotisch verlustfreie Datenkomprimierung zu erreichen, wodurch dieselbe Nachricht robuster oder in weniger Bits übertragen werden kann.In many implementations, increasing one of these implementations can dramatically degrade the other. In particular, the systems and methods discussed here enable a higher decoding success rate with the same degree of distortion and the same message rate; or a higher message rate with the same degree of distortion and the same decoding success rate. Implementations of these systems use a side chain (or side channel) of additional information that is only available to the decoder and not the encoder to achieve asymptotically lossless data compression, which allows the same message to be transmitted more robustly or in fewer bits.

In einem Aspekt ist die vorliegende Offenbarung auf ein System zur Verbesserung des Wasserzeichens gerichtet. Das System enthält einen Decodierer eines Geräts. Der Decodierer ist konfiguriert, zum: Empfangen einr Aufnahme eines Bildes, das mindestens ein eingebettetes Wasserzeichen umfasst; Bestimmen eines Zeitstempels der Erfassung; Dekodieren einer Binärzeichenfolge aus dem eingebetteten Wasserzeichen; Decodieren, unter Verwendung eines Teils des Zeitstempels der Erfassung, einer Kennung aus der Binärzeichenfolge, die einen Zeitstempel des Bildes umfasst; und Ausgeben der decodierten Kennung.In one aspect, the present disclosure is directed to a system for enhancing the watermark. The system includes a decoder of a device. The decoder is configured to: receive a capture of an image including at least one embedded watermark; Determining a timestamp of the acquisition; Decoding a binary string from the embedded watermark; Decoding, using part of the timestamp of the acquisition, an identifier from the binary string comprising a timestamp of the image; and outputting the decoded identifier.

In einigen Implementierungen wird der Zeitstempel der Erfassung in Metadaten der Erfassung identifiziert. In einigen Implementierungen ist der Decodierer so konfiguriert, dass er den Zeitstempel der Erfassung aus einem Header eines Pakets, das die Erfassung umfasst, extrahiert. In einigen Implementierungen umfasst die Binärzeichenfolge des eingebetteten Wasserzeichens eine Teilmenge des Zeitstempels des Bildes. In einer weiteren Implementierung ist der Decodierer konfiguriert, um die Kennung aus der Binärzeichenfolge zu decodieren, indem der Teil des Zeitstempels der Erfassung mit der Teilmenge des Zeitstempels des Bildes verkettet wird. In einer anderen weiteren Implementierung umfasst die Binärzeichenfolge des eingebetteten Wasserzeichens eine Anzahl von Fehlerkorrekturbits, die größer sind als eine Differenz zwischen einer Länge des Zeitstempels des Bildes und einer Länge der Teilmenge des Zeitstempels des Bildes.In some implementations, the timestamp of the acquisition is identified in metadata of the acquisition. In some implementations, the decoder is configured to extract the timestamp of the detection from a header of a packet that includes the detection. In some implementations, the binary string of the embedded watermark comprises a subset of the timestamp of the image. In another implementation, the decoder is configured to decode the identifier from the binary string by concatenating the portion of the timestamp of the acquisition with the subset of the timestamp of the image. In another further implementation, the binary string of the embedded watermark comprises a number of error correction bits that are greater than a difference between a length of the time stamp of the image and a length of the subset of the time stamp of the image.

In einigen Implementierungen ist der Decodierer konfiguriert, um die Kennung aus der Binärzeichenfolge zu decodieren, indem der Teil des Zeitstempels der Erfassung mit einem vorbestimmten Versatz kombiniert wird. In einer weiteren Implementierung ist der Decodierer so konfiguriert, dass er den Identifizierer aus der Binärzeichenfolge decodiert, indem er den Teil des Zeitstempels der Erfassung iterativ mit einem Vielfachen des vorbestimmten Versatzes kombiniert, bis der Identifizierer erfolgreich decodiert ist.In some implementations, the decoder is configured to decode the identifier from the binary string by combining the portion of the timestamp of the acquisition with a predetermined offset. In another implementation, the decoder is configured to decode the identifier from the binary string by iteratively combining the portion of the timestamp of detection with a multiple of the predetermined offset until the identifier is successfully decoded.

In einigen Implementierungen umfasst die Binärzeichenfolge eine Adresse eines Inhaltsservers, der das Bild, das das mindestens eine eingebettete Wasserzeichen umfasst, erzeugt hat. In einer weiteren Implementierung umfasst die Binärzeichenfolge eine Kennung eines Prozesses des Inhaltsservers, der das Bild, das das mindestens eine eingebettete Wasserzeichen umfasst, erzeugt hat.In some implementations, the binary string includes an address of a content server that generated the image that includes the at least one embedded watermark. In another Implementation, the binary string includes an identifier of a process of the content server that generated the image that includes the at least one embedded watermark.

In einem anderen Aspekt ist die vorliegende Offenbarung auf ein Verfahren zur Verbesserung des Wasserzeichens gerichtet. Das Verfahren umfasst das Empfangen einer Erfassung eines Bildes, das mindestens ein eingebettetes Wasserzeichen umfasst, durch einen Decodierer eines Geräts von einem Client-Gerät. Das Verfahren umfasst auch das Bestimmen eines Zeitstempels der Erfassung durch den Decodierer. Das Verfahren umfasst auch das Decodieren einer Binärzeichenfolge aus dem eingebetteten Wasserzeichen durch den Decodierer. Das Verfahren umfasst auch das Verwenden eines Teils des Zeitstempels der Erfassung, das Decodieren durch den Decodierer einer Kennung aus der Binärzeichenfolge, die einen Zeitstempel des Bildes umfasst. Das Verfahren umfasst auch das Ausgeben der decodierten Kennung durch den Decodierer.In another aspect, the present disclosure is directed to a method of enhancing the watermark. The method includes receiving from a client device a capture of an image including at least one embedded watermark by a decoder of a device. The method also includes determining a timestamp of the detection by the decoder. The method also includes decoding a binary string from the embedded watermark by the decoder. The method also comprises using part of the time stamp of the acquisition, the decoding by the decoder of an identifier from the binary character sequence which comprises a time stamp of the image. The method also includes outputting the decoded identifier by the decoder.

In einigen Implementierungen wird der Zeitstempel der Erfassung in Metadaten der Erfassung identifiziert. In einigen Implementierungen umfasst das Verfahren das Extrahieren durch den Decodierer des Zeitstempels der Erfassung aus einem Header eines Pakets, das die Erfassung umfasst. In einigen Implementierungen umfasst die Binärzeichenfolge des eingebetteten Wasserzeichens eine Teilmenge des Zeitstempels des Bildes. In einer weiteren Implementierung umfasst das Verfahren das Verketten des Teils des Zeitstempels der Erfassung mit der Teilmenge des Zeitstempels des Bildes. In einer anderen weiteren Implementierung umfasst die Binärzeichenfolge des eingebetteten Wasserzeichens eine Anzahl von Fehlerkorrekturbits, die größer als eine Differenz zwischen einer Länge des Zeitstempels des Bildes und einer Länge der Teilmenge des Zeitstempels des Bildes sind.In some implementations, the timestamp of the acquisition is identified in metadata of the acquisition. In some implementations, the method includes extracting, by the decoder, the timestamp of the detection from a header of a packet that includes the detection. In some implementations, the binary string of the embedded watermark comprises a subset of the timestamp of the image. In a further implementation, the method comprises concatenating the part of the timestamp of the acquisition with the subset of the timestamp of the image. In another further implementation, the binary string of the embedded watermark comprises a number of error correction bits that are greater than a difference between a length of the time stamp of the image and a length of the subset of the time stamp of the image.

In einigen Implementierungen umfasst das Verfahren das Kombinieren des Teils des Zeitstempels der Erfassung mit einem vorbestimmten Versatz. In einer weiteren Implementierung umfasst das Verfahren das iterative Kombinieren des Teils des Zeitstempels der Erfassung mit einem Vielfachen des vorbestimmten Versatzes, bis die Kennung erfolgreich decodiert ist.In some implementations, the method includes combining the portion of the timestamp of the acquisition with a predetermined offset. In another implementation, the method comprises iteratively combining the portion of the timestamp of the acquisition with a multiple of the predetermined offset until the identifier is successfully decoded.

In einigen Implementierungen umfasst die Binärzeichenfolge eine Adresse eines Inhaltsservers, der das Bild erzeugt hat, das das mindestens eine eingebettete Wasserzeichen umfasst. In einer weiteren Implementierung umfasst die Binärzeichenfolge eine Kennung eines Prozesses des Inhaltsservers, der das Bild erzeugt hat, das das mindestens eine eingebettete Wasserzeichen umfasst.In some implementations, the binary string includes an address of a content server that generated the image that includes the at least one embedded watermark. In a further implementation, the binary string includes an identifier of a process of the content server that generated the image that includes the at least one embedded watermark.

In einem anderen Aspekt ist die vorliegende Offenbarung auf ein Wasserzeichensystem gerichtet. Das System enthält einen Codierer eines Geräts, das konfiguriert ist, um: ein Bild und Metadaten, die dem Bild zugeordnet sind, zu empfangen; eine Binärzeichenfolge aus einer Teilmenge der dem Bild zugeordneten Metadaten zu erzeugen; ein Wasserzeichen aus der Binärzeichenfolge zu kodieren; und das Wasserzeichen in das Bild einzubinden. Ein Decodierer des Geräts oder eines zweiten Geräts stellt die dem Bild zugeordneten Metadaten aus der Teilmenge der Metadaten, die dem im eingebetteten Wasserzeichen codierten Bild zugeordnet sind, und aus zusätzlichen Metadaten, die mit der Erfassung einer Anzeige des Bildes auf einem dritten Gerät verbunden sind, wieder her.In another aspect, the present disclosure is directed to a watermarking system. The system includes an encoder of a device configured to: receive an image and metadata associated with the image; generate a binary string from a subset of the metadata associated with the image; encode a watermark from the binary string; and embed the watermark in the image. A decoder of the device or of a second device provides the metadata assigned to the image from the subset of the metadata assigned to the image encoded in the embedded watermark and from additional metadata associated with the acquisition of a display of the image on a third device, again.

In einigen Implementierungen umfassen die dem Bild zugeordneten Metadaten einen Zeitstempel des Bildes, und die zusätzlichen Metadaten umfassen einen Zeitstempel der Erfassung der Anzeige des Bildes bei der dritten Vorrichtung. In einigen Implementierungen ist der Codierer des Geräts so konfiguriert, dass er die Binärzeichenfolge aus einer vorbestimmten Anzahl von niedrigstwertigen Bits der dem Bild zugeordneten Metadaten erzeugt.In some implementations, the metadata associated with the image includes a time stamp of the image and the additional metadata includes a time stamp of the acquisition of the display of the image at the third device. In some implementations, the device's encoder is configured to generate the binary string from a predetermined number of least significant bits of the metadata associated with the image.

In einem anderen Aspekt ist die vorliegende Offenbarung auf ein Verfahren zum Wasserzeichen gerichtet. Das Verfahren umfasst das Empfangen durch einen Codierer eines Geräts eines Bildes und von Metadaten, die dem Bild zugeordnet sind. Das Verfahren umfasst auch das Erzeugen einer Binärzeichenfolge durch den Codierer aus einer Teilmenge der Metadaten, die dem Bild zugeordnet sind. Das Verfahren umfasst auch das Codieren eines Wasserzeichens aus der Binärzeichenfolge durch den Codierer. Das Verfahren umfasst auch das Einbetten des Wasserzeichens in das Bild durch den Codierer. Ein Decodierer des Geräts oder eines zweiten Geräts stellt die dem Bild zugeordneten Metadaten aus der Teilmenge der Metadaten wieder her, die dem im eingebetteten Wasserzeichen codierten Bild zugeordnet sind, und aus zusätzlichen Metadaten, die mit der Erfassung einer Anzeige des Bildes auf einem dritten Gerät verbunden sind.In another aspect, the present disclosure is directed to a method of watermarking. The method includes receiving, by an encoder of a device, an image and metadata associated with the image. The method also includes generating a binary string by the encoder from a subset of the metadata associated with the image. The method also includes encoding a watermark from the binary string by the encoder. The method also includes embedding the watermark in the image by the encoder. A decoder of the device or a second device recovers the metadata associated with the image from the subset of metadata associated with the image encoded in the embedded watermark and from additional metadata associated with the acquisition of a display of the image on a third device are.

In einigen Implementierungen umfassen die dem Bild zugeordneten Metadaten einen Zeitstempel des Bildes, und die zusätzlichen Metadaten umfassen einen Zeitstempel der Erfassung der Anzeige des Bildes bei der dritten Vorrichtung. In einigen Implementierungen umfasst das Verfahren das Erzeugen der Binärzeichenfolge aus einer vorbestimmten Anzahl von niedrigstwertigen Bits der dem Bild zugeordneten Metadaten.In some implementations, the metadata associated with the image includes a time stamp of the image and the additional metadata includes a time stamp when the image was captured the third device. In some implementations, the method includes generating the binary string from a predetermined number of least significant bits of the metadata associated with the image.

Die vorliegende Offenbarung stellt auch ein Computerprogramm bereit, das Anweisungen umfasst, die, wenn sie von einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, eines der hierin offenbarten Verfahren auszuführen. Die vorliegende Offenbarung stellt auch ein computerlesbares Medium bereit, das Anweisungen umfasst, die, wenn sie von einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, eines der hierin offenbarten Verfahren auszuführen.The present disclosure also provides a computer program that includes instructions that, when executed by a computing device, cause the computing device to perform any of the methods disclosed herein. The present disclosure also provides a computer readable medium that includes instructions that, when executed by a computing device, cause the computing device to perform any of the methods disclosed herein.

Optionale Merkmale eines Aspekts können mit jedem anderen Aspekt kombiniert werden.Optional features of one aspect can be combined with any other aspect.

FigurenlisteFigure list

Die Details einer oder mehrerer Implementierungen sind in den beigefügten Zeichnungen und der folgenden Beschreibung angegeben. Andere Merkmale, Aspekte und Vorteile der Offenbarung werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich, in denen:

  • 1A ist eine Darstellung einer beispielhaften Implementierung eines Bildwasserzeichens;
  • 1B ist eine Darstellung eines Datenformats zur Bildwasserzeichenmarkierung gemäß einer Implementierung;
  • 1C ist eine Darstellung eines Datenformats zur Bildwasserzeichenmarkierung gemäß einer anderen Implementierung; und
  • 2A ist ein Blockdiagramm eines Systems zum Bildwasserzeichen gemäß einer Implementierung;
  • 2B ist ein Blockdiagramm eines Systems zum Bildwasserzeichen gemäß einer anderen Implementierung;
  • 3 ist ein Blockdiagramm eines Systems zum Bildwasserzeichen gemäß einigen Implementierungen; und
  • 4 ist ein Flussdiagramm eines Verfahrens zum Bildwasserzeichen gemäß einigen Implementierungen.
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, in which:
  • 1A Figure 3 is an illustration of an exemplary implementation of an image watermark;
  • 1B Figure 3 is an illustration of a data format for image watermarking according to one implementation;
  • 1C Figure 13 is an illustration of a data format for image watermarking in accordance with another implementation; and
  • 2A Figure 13 is a block diagram of an image watermarking system according to one implementation;
  • 2 B Figure 13 is a block diagram of an image watermarking system in accordance with another implementation;
  • 3 Figure 3 is a block diagram of an image watermarking system, in accordance with some implementations; and
  • 4th Figure 4 is a flow diagram of a method for image watermarking, in accordance with some implementations.

Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.The same reference numbers and designations in the various drawings refer to the same elements.

DETAILIERTE BESCHREIBUNGDETAILED DESCRIPTION

Bildwasserzeichen sind eine Technik, die visuell nicht wahrnehmbare Daten oder Nachrichten in ein Bild einbettet und als nicht sichtbar oder sichtbar kategorisiert werden kann, abhängig davon, ob das Originalbild für die Wasserzeichenextraktion erforderlich ist. Sichtbares Wasserzeichen ist besonders nützlich, da die eingebetteten Daten wiederhergestellt werden können, ohne Zugriff auf das ursprüngliche voreinbettete Bild zu haben.Image watermarks are a technique that embeds visually imperceptible data or messages in an image and can be categorized as invisible or visible depending on whether the original image is required for watermark extraction. Visible watermark is particularly useful because the embedded data can be recovered without access to the original pre-embedded image.

Zum Beispiel, kurz auf 1A bezugnehmend, ist eine beispielhafte Implementierung eines Bildwasserzeichens für ein Bild 100 dargestellt. Ein kleiner Wasserzeichencode 102 kann ein Array von Pixeln einer Größe umfassen und in einem Bild 100 so platziert sein, dass sie für den Betrachter nicht sichtbar sind. Wie gezeigt, können die Wasserzeichencodes 102 im gesamten Bild dupliziert werden, um Widerstand gegen Zuschneiden, regionale Artefakte aufgrund von Komprimierung oder anderer Beeinträchtigung oder andere solche Verzerrungen zu bieten. Obwohl ein Wasserzeichencode der Klarheit halber nur mit wenigen Pixeln dargestellt ist, kann er in vielen Implementierungen einen Bereich mit 64 Pixeln, 128 Pixeln oder einer anderen solchen Menge umfassen. Anpassungen an den Pixeln zum Definieren von Werten der Codierung können im Gegensatz zu einfach schwarzen und weißen Pixeln relativ unmerklich sein. Beispielsweise können in vielen Implementierungen die Pixel, aus denen der codierte Bereich besteht, Farben aufweisen, die mit den umgebenden Pixeln übereinstimmen oder diesen ähnlich sind, jedoch angepasste Alpha-Werte (Transparenzwerte) aufweisen. Beispielsweise kann die Codierung ein Pixel mit einem Alpha-Wert von 0 in einen Alpha-Wert von 10, 50, 100, 255 oder einen anderen solchen Wert ändern. In einigen Implementierungen kann der Code durch Identifizieren von Pixeln mit Alphawerten, die stark von den umgebenden Alphawerten abweichen, erkannt werden. In einigen Implementierungen kann eine differentielle Codierung mit einer Overlay-Codierung jedes Bits, mit Änderungen an Alphawerten von Pixeln innerhalb der Overlay angewendet werden, um einen anderen Wert zu codieren.For example, briefly on 1A Referring to FIG. 3, FIG. 3 is an exemplary implementation of an image watermark for an image 100 shown. A small watermark code 102 may comprise an array of pixels of one size and in an image 100 be placed in such a way that they are not visible to the viewer. As shown, the watermark codes 102 duplicated throughout the image to provide resistance to cropping, regional artifacts from compression or other degradation, or other such distortion. Although a watermark code is shown as having only a few pixels for clarity, in many implementations it may include an area of 64 pixels, 128 pixels, or some other such amount. Adjustments to the pixels to define values of the encoding can be relatively imperceptible as opposed to simply black and white pixels. For example, in many implementations, the pixels that make up the encoded area may have colors that match or are similar to the surrounding pixels, but have adjusted alpha (transparency) values. For example, the encoding can change a pixel with an alpha value of 0 to an alpha value of 10, 50, 100, 255, or some other such value. In some implementations, the code can be recognized by identifying pixels with alpha values that differ greatly from the surrounding alpha values. In some implementations, differential encoding with overlay encoding of each bit, with changes to alpha values of pixels within the overlay, can be used to encode a different value.

Jede Art von Daten kann innerhalb der Wasserzeichen 102 codiert werden. In 1B ist ein Datenformat 150 für das Bildwasserzeichen gemäß einer Implementierung dargestellt. Das dargestellte Datenformat umfasst 128 Bit mit einem 64-Bit-Zeitstempel 152 (z.B. basierend auf einer Epochenzeit), einer IP-Adresse 154 und einer Prozess-ID 156. Daten im Datenformat 150 können hier als Abfrage-ID bezeichnet werden. Viele Implementierungen enthalten auch Fehlerkorrekturbits (nicht dargestellt), um die Decodierung des Wasserzeichens zu verbessern. Beispielsweise kann der Code als QR-Code mit Reed-Solomon-Fehlerkorrekturcodes, die in der Marke enthalten sind, codiert werden.Any kind of data can be inside the watermark 102 be coded. In 1B is a data format 150 for the image watermark according to one implementation. The data format shown comprises 128 bits with a 64-bit time stamp 152 (e.g. based on an epoch time), an IP address 154 and a process ID 156 . Data in data format 150 can be referred to here as a query ID. Many implementations also include error correction bits (not shown) to improve the decoding of the watermark. For example, the code can be encoded as a QR code with Reed-Solomon error correcting codes contained in the brand.

In einer solchen Implementierung können die Daten von einem Inhaltsserver in ein Bild codiert werden, bevor das Bild einem Client-Gerät mit einer IP-Adresse des Inhaltsservers und einer Prozesskennung des Prozesses, der das Bild erzeugt hat, bereitgestellt wird. Anschließend, wenn das Bild von dem Client-Gerät empfangen und gerendert wird, kann ein Überwachungsprozess auf dem Client-Gerät einen Screenshot des Bilds erfassen und den Screenshot an den Inhaltsserver oder einen Überwachungsserver liefern. Beispielsweise kann der Überwachungsprozess auf dem Client-Gerät möglicherweise nicht auf das Bild selbst zugreifen (z.B. kann das Bild an einem Ort im Speicher des Client-Geräts, auf den der Überwachungsprozess keinen Zugriff hat, gespeichert sein), kann jedoch einen Screenshot des Bildes erfassen (z.B. durch Auslesen von Bilddaten aus einem Framebuffer oder durch Aufnehmen des Bildes mit einer Kamera). Der Server kann das Wasserzeichen decodieren, um den ursprünglichen Erzeugungsprozess und den Server sowie den Zeitpunkt, zu dem das Bild erzeugt oder markiert wurde, zu identifizieren, und kann das Screenshot-Bild mit dem Originalbild vergleichen. Dies kann es einem System ermöglichen, automatisch Verzerrungen oder Bildbeschädigungen zu erkennen, die durch Render- oder Codierprozesse für das Bild verursacht werden, sowie andere Aspekte des Bildes zu identifizieren. In Implementierungen, bei denen der Inhaltsserver und der Überwachungsserver unterschiedlich sind, kann dies dem Überwachungsserver insbesondere ermöglichen, einen bestimmten Inhaltsserver einer Vielzahl von Inhaltsservern, die das Bild an das Client-Gerät geliefert haben, zu identifizieren. Dies kann für die Protokollierung, Nachverfolgung und Analyse hilfreich sein und ist erheblich einfacher als der Versuch, HTTP-Protokolle oder ähnliche Protokolle vom Client-Gerät abzurufen (auf das der Überwachungsserver möglicherweise keinen Zugriff hat).In such an implementation, the data may be encoded into an image by a content server prior to providing the image to a client device with an IP address of the content server and a process identifier of the process that created the image. Then, when the image is received and rendered by the client device, a surveillance process on the client device can capture a screenshot of the image and deliver the screenshot to the content server or a surveillance server. For example, the surveillance process on the 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 surveillance process cannot access), but it can capture a screenshot of the image (e.g. by reading out image data from a frame buffer or by taking the image with a camera). The server can decode the watermark to identify the original creation process and server and the time the image was created or tagged, and can compare the screenshot image with the original image. This can enable a system to automatically detect distortion or damage to the image caused by rendering or coding processes for the image, as well as other aspects of the image. In particular, in implementations where the content server and the surveillance server are different, this may allow the surveillance server to identify a particular content server of a plurality of content servers that delivered the image to the client device. This can be useful for logging, tracking, and analysis, and is much easier than trying to get HTTP logs or similar logs from the client device (which the monitoring server may not have access to).

Die Wasserzeicheneffizienz kann in Bezug auf die Wahrnehmbarkeit beschrieben werden (z.B., ob eine durch das Einbetten der Wasserzeichennachricht eingeführte Verzerrung von einem Betrachter erkennbar sein kann), manchmal als „D“ bezeichnet; Robustheit (z.B. die Erfolgsrate in einem Decodierer, der die eingebettete Nachricht decodiert), manchmal als „E“ bezeichnet; und Kapazität (z.B. die Datenmenge oder die Rate, mit der Daten in das Bild eingebettet werden können), manchmal auch als „R“ bezeichnet. In vielen Implementierungen kann es wünschenswert sein, eine geringe Wahrnehmbarkeit, eine hohe Robustheit und eine hohe Kapazität zu haben. In vielen Implementierungen kann die Verbesserung einer dieser Implementierungen jedoch zu drastischen Verschlechterungen bei den anderen führen. Wenn Sie der Nachricht beispielsweise mehr Daten hinzufügen und gleichzeitig die Robustheit beibehalten möchten, muss das Wasserzeichen möglicherweise vergrößert werden, damit es besser wahrgenommen werden kann. In ähnlicher Weise kann die Markierungsgröße beim Hinzufügen von Daten durch Entfernen von Fehlerkorrekturbits beibehalten werden, obwohl dies natürlich die Dekodierung der Markierung erschwert und anfälliger für Beschädigungen macht.Watermarking efficiency can be described in terms of noticeability (e.g., whether distortion introduced by embedding the watermark message can be seen by a viewer), sometimes referred to as "D"; Robustness (e.g., the success rate in a decoder that decodes the embedded message), sometimes referred to as "E"; and capacity (e.g. the amount of data or the rate at which data can be embedded in the image), sometimes referred to as "R". In many implementations, it may be desirable to have low visibility, high robustness, and high capacity. However, in many implementations, improving one of these implementations can cause the others to degrade dramatically. For example, if you want to add more data to the message while maintaining robustness, the watermark may need to be enlarged to make it more noticeable. Similarly, when adding data, the tag size can be maintained by removing error correction bits, although this of course makes the tag more difficult to decode and more susceptible to damage.

2A ist ein Blockdiagramm eines Systems 200 zur Bildwasserzeichenmarkierung gemäß einer Implementierung. Das System kann einen Codierer 202 und einen Decodierer 204 umfassen, die sich auf denselben oder unterschiedlichen Computergeräten (z.B. einem Inhaltsserver und einem Überwachungsserver) befinden können. Ein Bild „S“ 206 kann von einem Codierer 202 mit einer Nachricht „X“ 208 codiert werden, um ein mit einem Wasserzeichen versehenes Bild „S“ 210, das S+X umfasst, zu erzeugen. Das codierte oder mit einem Wasserzeichen versehene Bild S' kann über einen Kommunikationskanal 212, beispielsweise an ein Client-Gerät, übertragen werden. Ein entsprechendes mit Wasserzeichen versehenes Bild (z.B. von einem Screenshot, wie oben erörtert) kann dem Decodierer 204 bereitgestellt werden. Zum Beispiel kann das Client-Gerät das mit Wasserzeichen versehene Bild über den Kommunikationskanal 212 an den Decodierer 204 senden. Der Kommunikationskanal kann somit eine beliebige Kombination von Netzwerken und Geräten zwischen dem Codierer und dem Decodierer umfassen, was möglicherweise jede Art von zusätzlicher Verzerrung einführen kann. Beispielsweise kann der Kanal aufgrund von beabsichtigten oder unbeabsichtigten Angriffen oder Beeinträchtigungen verlustbehaftet sein. Beispiele für unbeabsichtigte Beeinträchtigungen sind die Drehung des Bildes, die Skalierung und die Formatkonvertierung. Beispiele für absichtliche Beeinträchtigungen umfassen Rauschinjektion (z.B. Hinzufügen von Informationen) und Versuche, Wasserzeichencodes zu entfernen (z.B. Informationen zu subtrahieren). 2A Figure 3 is a block diagram of a system 200 for image watermarking according to one implementation. The system can have an encoder 202 and a decoder 204 that may reside on the same or different computing devices (e.g., a content server and a monitoring server). A picture "S" 206 can from an encoder 202 with a message "X" 208 encoded to create a watermarked "S" image 210 , which includes S + X. The coded or watermarked image S 'can be transmitted via a communication channel 212 , for example to a client device. A corresponding watermarked image (e.g. from a screenshot, as discussed above) can be sent to the decoder 204 to be provided. For example, the client device can send the watermarked image over the communication channel 212 to the decoder 204 send. The communication channel can thus comprise any combination of networks and devices between the encoder and the decoder, which can possibly introduce any kind of additional distortion. For example, the channel can be lossy due to intentional or unintentional attacks or impairments. Examples of unintended impairments are the rotation of the image, the scaling and the format conversion. Examples of deliberate impairments include injecting noise (e.g. adding information) and attempting to remove watermark codes (e.g. subtracting information).

Der Decodierer 204 kann das Wasserzeichen aus dem mit Wasserzeichen versehenen Bild S' erkennen und decodieren, um die ursprüngliche Nachricht X 208' wiederherzustellen, wobei er nach Bedarf eine Fehlerkorrektur anwendet (und potenziell mehrere Wasserzeichen im Bild zu erfassen und decodierte Nachrichten von jedem zu vergleichen, um Fehler oder Verzerrungen in einzelnen Wasserzeichen auszuschließen).The decoder 204 can recognize and decode the watermark from the watermarked image S 'to restore the original message X 208', converting an if necessary Apply error correction (and potentially capture multiple watermarks in the image and compare decoded messages from each to eliminate errors or distortions in individual watermarks).

Dementsprechend kann der Codierer eine Nachricht, wie beispielsweise die oben erörterte Zeitstempel-/Adresse/Prozess-ID-Zeichenfolge, zusammen mit beliebigen Fehlerkorrekturcodes in eine Markierung, wie beispielsweise einen QR-Code, codieren; und mindestens eine Kopie der Markierung durch Mischen einer Alphakanalüberlagerung in ein Bild codieren, und der Decodierer kann die Nachricht durch Erfassen des Überlagerungsmusters und der den QR-Code identifizierenden Inkonsistenzen decodieren; die ursprüngliche Zeichenfolge decodieren; und den ursprünglichen Zeitstempel/die Adresse/die Prozess-ID identifizieren.Accordingly, the encoder can encode a message such as the timestamp / address / process ID string discussed above, along with any error correction codes, into a marker such as a QR code; and encode at least one copy of the marker by mixing an alpha channel overlay into an image, and the decoder can decode the message by detecting the overlay pattern and the inconsistencies identifying the QR code; decode the original string; and identify the original timestamp / address / process ID.

Solche Systeme sind relativ erfolgreich, weisen jedoch hohe Fehlerraten auf. In einem Experiment, bei dem eingebettete Markierungen aus Screenshots kodierter Bilder dekodiert wurden, betrug die Dekodierungs-Erfolgsrate 44,03%.Such systems are relatively successful, but have high error rates. In an experiment in which embedded markers were decoded from screenshots of encoded images, the decoding success rate was 44.03%.

Wie oben erwähnt, sind bei einer festen Nachrichtenrate (z.B. 128 Bit) die Faktoren, die die Decodierungserfolgsrate beeinflussen, eine durch den Codierer (De) in das Bild eingebrachte Verzerrung und eine Verzerrung zwischen dem aufgenommenen Screenshot und dem mit Wasserzeichen versehenen Bild am Codierer-Ausgang (Dc). Im Allgemeinen wird die Robustheit der Bildwasserzeichenmarkierung, gemessen in der Decodierungserfolgsrate, durch De gesteuert: für den gleichen De kann die Decodierungserfolgsrate umso höher erreicht werden, wenn De erhöht wird. Für die meisten Zwecke müssen die Wasserzeichen im Bild mit dem Wasserzeichen jedoch visuell nicht wahrnehmbar sein. Eine solche Anforderung legt De eine obere Schranke auf. Diese Beschränkung von De impliziert im Wesentlichen eine obere Grenze der Decodierungserfolgsrate für jeden gegebenen Kanal. In einigen extremen Fällen, in denen Dc, das durch den Kanal eingeführt wird, groß ist, kann die Decodierungserfolgsrate auf nahe Null fallen und somit die Anwendbarkeit solcher Implementierungen von Wasserzeichen einschränken.As mentioned above, with a fixed message rate (e.g. 128 bit) the factors that influence the decoding success rate are a distortion introduced into the image by the encoder (De) and a distortion between the captured screenshot and the watermarked image on the encoder. Output (Dc). In general, the robustness of the image watermarking, measured in the decoding success rate, is controlled by De: for the same De, the higher the decoding success rate can be achieved if De is increased. However, for most purposes, the watermarks in the watermarked image need not be visually noticeable. Such a requirement imposes an upper bound on De. This constraint on De essentially implies an upper bound on the decoding success rate for any given channel. In some extreme cases where the Dc introduced by the channel is large, the decoding success rate can drop to near zero and thus limit the applicability of such watermark implementations.

(D0, E0, R0) bezeichnen die Verzerrung, die Decodierungserfolgsrate bzw. die Nachrichtenrate von Implementierungen des oben diskutierten Wasserzeichenverfahrens. In typischen Implementierungen geht die Verbesserung einer der drei Größen zwangsläufig zu Lasten des Leistungsverlusts in mindestens einer der anderen Größen. Um beispielsweise E0 zu verbessern, muss man auf D0 verzichten, während R0 beibehalten wird, oder R0 reduzieren, während D0 beibehalten wird. In vielen Anwendungen haben jedoch sowohl D0 als auch R0 derzeit harte Beschränkungen: D0 ist notwendigerweise nach oben begrenzt, um negative Auswirkungen auf die Benutzererfahrung zu vermeiden, und R0 ist notwendigerweise nach unten begrenzt, damit die Wasserzeichennachricht, z.B zu Tracking-Zwecken, nützlich ist. In diesem Zusammenhang haben aktuelle Implementierungen von Wasserzeichen nur wenig Raum zur Verbesserung von E0.(D0, E0, R0) denote the distortion, the decoding success rate and the message rate of implementations of the watermarking method discussed above. In typical implementations, the improvement in one of the three quantities inevitably comes at the expense of the performance loss in at least one of the other quantities. For example, to improve E0, one must forego D0 while retaining R0, or reduce R0 while retaining D0. In many applications, however, both D0 and R0 currently have severe constraints: D0 is necessarily capped to avoid negative effects on the user experience, and R0 is necessarily capped to make the watermark message useful, e.g. for tracking purposes . In this context, current implementations of watermarks have little room for improvement of E0.

Die hier diskutierten Systeme und Verfahren sorgen für ein verbessertes Bildwasserzeichen, um die Robustheit und Kapazität zu verbessern, ohne die Wahrnehmbarkeit zu beeinträchtigen. Insbesondere ermöglichen die hier diskutierten Systeme und Verfahren eine höhere Decodierungserfolgsrate bei gleichem Verzerrungsgrad und gleicher Nachrichtenrate; oder eine höhere Nachrichtenrate bei gleichem Verzerrungsgrad und gleicher Decodierungserfolgsrate. Implementierungen dieser Systeme verwenden eine Seitenkette zusätzlicher Informationen, die nur dem Decodierer und nicht dem Codierer zur Verfügung steht, um eine asymptotisch verlustfreie Datenkompression zu erreichen, wodurch die gleiche Nachricht in weniger Bits übertragen werden kann.The systems and methods discussed here provide for an improved image watermark to improve robustness and capacity without compromising perceptibility. In particular, the systems and methods discussed here enable a higher decoding success rate with the same degree of distortion and the same message rate; or a higher message rate with the same degree of distortion and the same decoding success rate. Implementations of these systems use a side chain of additional information that is only available to the decoder and not the encoder to achieve asymptotically lossless data compression, which allows the same message to be transmitted in fewer bits.

Da die Verzerrungsbeschränkung durch die Anmeldung gegeben ist, konzentrieren sich die hier diskutierten Systeme auf den Kompromiss zwischen der Decodierungserfolgsrate und der Nachrichtenrate. Insbesondere umgeht das System die oben erwähnte Untergrenze der Nachrichtenrate, ohne die Nützlichkeit der Wasserzeichennachricht zu beeinträchtigen. Folglich ermöglicht es eine größere Flexibilität bei der Suche nach dem richtigen Kompromiss zwischen Robustheit und Kapazität, der in früheren Implementierungen nicht möglich war. Insbesondere können Seiteninformationen, die nur am Decodierer verfügbar sind, verwendet werden, um eine asymptotisch verlustfreie Komprimierung zu erreichen.Since the distortion limitation is given by the application, the systems discussed here focus on the compromise between the decoding success rate and the message rate. In particular, the system bypasses the above mentioned lower limit of the message rate without affecting the usefulness of the watermark message. As a result, it allows greater flexibility in finding the right tradeoff between robustness and capacity that was not possible in previous implementations. In particular, page information that is only available at the decoder can be used to achieve asymptotically lossless compression.

2B ist ein Blockdiagramm eines Systems 200' zum Markieren von Bildern mit Wasserzeichen gemäß einer solchen Implementierung. Wie in Verbindung mit 2A codiert ein Codierer 202 ein Bild 206 mit einer Nachricht 208, um ein mit Wasserzeichen versehenes Bild 210 zu erzeugen, das über einen Kommunikationskanal 212 einem Decodierer 204 bereitgestellt werden kann. Um jedoch die ursprüngliche Nachricht 208' wiederherzustellen, verwendet der Decodierer zusätzliche Seiteninformationen „Y“ 214, die für den Codierer nicht verfügbar sind. Dies vermeidet jedes Erfordernis einer getrennten Kommunikation zwischen dem Codierer und dem Decodierer, was bei Implementierungen, bei denen der Inhaltsserver und der Überwachungsserver nicht dasselbe Gerät sind, besonders vorteilhaft sein kann (und möglicherweise nicht von derselben Entität gesteuert werden). 2 B Figure 3 is a block diagram of a system 200 ' for marking images with watermarks according to such an implementation. How in connection with 2A encodes an encoder 202 a picture 206 with a message 208 to view a watermarked image 210 to generate that over a communication channel 212 a decoder 204 can be provided. However, to the original message 208 ' the decoder uses additional side information "Y" 214 that are not available to the encoder. This avoids any need for separate communication between the encoder and the decoder, which is common in implementations where the content server and the Monitoring servers are not the same device can be particularly beneficial (and may not be controlled by the same entity).

Zwischen den 2A und 2B besteht der Hauptunterschied in der Einführung von Seiteninformationen Y am Decodierer in 2B. Aus dem klassischen Quellencodierungstheorem folgt, dass die minimale Rate, die für die verlustfreie Wiederherstellung der Nachricht X am Decodierer in 2A erforderlich ist, beträgt, ist durch die Randentropie H(X) von X gegeben. Entsprechend folgt aus dem Slepian-Wolf-Codierungstheorem, dass die minimale Rate, die für eine verlustfreie Wiederherstellung der Nachricht X am Decodierer in 2B erforderlich ist, durch die bedingte Entropie H(XIY) von X, Y gegeben ist. Da H(XIY) ≤ H(X) für beliebige (X, Y) ist, ist es unter Verwendung der Seiteninformation Y möglich, eine niedrigere Nachrichtenrate zu verwenden, um dieselbe Nachricht X in 2B als in 2A zu übertragen. Je stärker die Korrelation zwischen X und Y ist, desto niedriger kann die Nachrichtenrate erreicht werden.Between 2A and 2 B the main difference is the introduction of side information Y at the decoder in 2 B . From the classical source coding theorem it follows that the minimum rate required for the lossless recovery of the message X at the decoder in 2A is required, is given by the marginal entropy H (X) of X. Correspondingly, it follows from the Slepian-Wolf coding theorem that the minimum rate required for a lossless recovery of the message X at the decoder in 2 B is required, given by the conditional entropy H (XIY) of X, Y. Since H (XIY) ≤ H (X) for any (X, Y), using the side information Y it is possible to use a lower message rate to get the same message X in 2 B than in 2A transferred to. The stronger the correlation between X and Y, the lower the message rate that can be achieved.

Verbesserte RobustheitImproved robustness

In einer ersten Implementierung kann das System Seiteninformationen Y am Decodierer nutzen, um die Robustheit zu verbessern. In einigen solchen Implementierungen ist der Codierer in 2B eine Wasserzeichennachricht wie folgt in ein Bild eingebettet:

  1. 1. Wandeln der Wasserzeichen-Nachricht X in eine Kbit-Binärzeichenfolge um, wobei K durch H(XIY) bestimmt wird.
  2. 2. Wandeln des Kbit-Binärstrings in ein QR-Codewort um.
  3. 3. Generieren eines Wasserzeichenbilds, das mindestens eine Kopie des QR-Codeworts enthält.
  4. 4. Mischen des Wasserzeichenbilds und des Originalbilds, durch Legen des ersteren über des letzteren.
In a first implementation, the system can use side information Y at the decoder to improve robustness. In some such implementations, the encoder is in 2 B a watermark message embedded in an image like this:
  1. 1. Convert the watermark message X to a Kbit binary string, where K is determined by H (XIY).
  2. 2. Convert the Kbit binary string into a QR code word.
  3. 3. Generate a watermark image that contains at least one copy of the QR code word.
  4. 4. Mixing the watermark image and the original image by overlaying the former on top of the latter.

Dementsprechend decodiert der Decodierer von 2B die Wasserzeichen-Nachricht X aus einem Screenshot des mit Wasserzeichen versehenen Bildes wie folgt:

  • 5. Erkennen und Extrahieren ein QR-Codewort aus dem Screenshot.
  • 6. Decodieren einer Kbit-Binärzeichenfolge aus dem extrahierten QR-Codewort.
  • 7. Decodieren der Wasserzeichen-Nachricht X aus dem kbit-Binärstring und den Seiteninformationen Y.
Accordingly, the decoder decodes from 2 B the watermark message X from a screenshot of the watermarked image as follows:
  • 5. Recognize and extract a QR code word from the screenshot.
  • 6. Decode a kbit binary string from the extracted QR code word.
  • 7. Decoding of the watermark message X from the kbit binary string and the page information Y.

Es ist zu beachten, dass in vielen Implementierungen einer oder mehrere der obigen Schritte (z.B. die Schritte 6 bis 7) für eine bessere Leistung zu einem einzigen Schritt kombiniert werden können.It should be noted that in many implementations, one or more of the above steps (e.g., steps 6 through 7) can be combined into a single step for better performance.

Es ist zu beachten, dass ein QR-Codewort Muster zur Erkennung und einen Fehlerkorrekturcode in einem 2D-Layout enthält. In einigen Ausführungsformen kann ein 1D-Fehlerkorrekturcodewort zusammen mit 1 D-Mustern zur Erkennung anstelle eines QR-Codeworts für eine bessere Leistung/Flexibilität beim Erzeugen eines Wasserzeichenbilds verwendet werden. Beispiele für 1D-Fehlerkorrekturcodes umfassen Reed-Solomon-Codes, Turbo-Codes, LDPC-Codes (Low-Density-Paritätsprüfung) und andere allgemeine lineare Blockcodes.It should be noted that a QR code word contains patterns for recognition and an error correction code in a 2D layout. In some embodiments, a 1D error correction codeword along with 1D patterns for recognition can be used in place of a QR codeword for better performance / flexibility in creating a watermark image. Examples of 1D error correcting codes include Reed-Solomon codes, Turbo codes, LDPC (low density parity check) codes, and other general linear block codes.

Im Hinblick auf Schritt 1 im obigen Codierungsprozess muss man, um K zu bestimmen, a priori H(XIY) kennen, obwohl die Kenntnis der Realisierung von Y (d.h. der tatsächlichen Nebeninformationssequenz) nicht erforderlich ist. Beispiele für Nebeninformationen Y, für die A-priori-Kenntnisse von H(XIY) vorliegen, sind Screenshot-Zeitstempel, Decodierungszeit und alle überflüssigen Informationen über den Screenshot (z.B. Informationen über die Website, einschließlich ihrer IP-Adresse und ihres geografischen Standorts, Herausgeberinformationen und Plattforminformationen).With regard to step 1 in the coding process above, in order to determine K one must know a priori H (XIY), although knowledge of the realization of Y (i.e. the actual side information sequence) is not required. Examples of side information Y for which a priori knowledge of H (XIY) is available are screenshot timestamps, decoding time and any superfluous information about the screenshot (e.g. information about the website, including its IP address and geographical location, publisher information and platform information).

Die folgende Beschreibung verwendet als Beispiel Screenshot-Zeitstempel, aber andere ähnliche Implementierungen können IP-Adressinformationen und/oder Plattforminformationen oder Kombinationen davon verwenden.The following description uses screenshot timestamps as an example, but other similar implementations may use IP address information and / or platform information, or combinations thereof.

Es sei daran erinnert, dass die in 1B oben eine 128-Bit-Binärzeichenfolge ist, die aus einem Zeitstempel (64 Bit), einer IP-Adresse (32 Bit) und einer Prozess-ID (32 Bit) besteht (ohne zusätzliche Fehlercodierungsbits). In typischen Anwendungen korreliert der Screenshot-Zeitstempel Ts stark mit dem Zeitstempel Tq in der Abfrage-ID, so dass Tq ≤ Ts; und es existiert eine nicht-negative ganze Zahl Δ mit hoher Wahrscheinlichkeit Ts - Tq ≤ Δ.It is worth remembering that the in 1B above is a 128-bit binary string consisting of a timestamp (64-bit), an IP address (32-bit) and a process ID (32-bit) (without additional error coding bits). In typical applications, the screenshot timestamp Ts correlates strongly with the timestamp Tq in the query ID, so that Tq ≤ Ts; and there is a non-negative integer Δ with a high probability Ts - Tq ≤ Δ.

Im Hinblick darauf, anstatt 64 Bits in solchen Implementierungen für den Zeitstempel zu verwenden, kann der Codierer in 2B K= (ceil(64 - log2(Δ)) + 64) Bits als Schätzung von H(XIY) verwenden, wobei Y Ts ist und „ceil“ eine Obergrenze ist, die ihr Argument auf die nächste ganze Zahl aufrundet. Folglich wird in einer Ausführungsform ein Binning-Schema verwendet, um Tq zu codieren, wobei jedes Bin Kandidatenzeitstempel enthält, die mindestens Mikrosekunden auseinander liegen, und der Index des Bins das Suffix von Tq der Länge ceil(64 log2(Δ)) ist.In view of this, rather than using 64 bits for the timestamp in such implementations, the encoder in 2B K = Use (ceil (64 - log2 (Δ)) + 64) bits as an estimate of H (XIY), where Y is Ts and "ceil" is an upper bound that rounds its argument up to the nearest whole number. Thus, in one embodiment, a binning scheme is used to encode Tq, with each bin containing candidate timestamps at least microseconds apart, and the index of the bin being the suffix of Tq of length ceil (64 log2 (Δ)).

Das vorgeschlagene Binning-Schema basiert auf der Tatsache, dass die höchstwertigen Bits für zwei Zeitstempel, die nahe beieinander liegen, gleich sind. Zum Beispiel lautet der Zeitstempel für 2019-01-01 in Epochenzeit: 1546300800, und seine Binärdatei lautet:
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 for 2019-01-01 in epoch time is: 1546300800, and its binary file is:
0b0101 0111 1110 0101 1010 0011 0101 1110 0110 0110 0000 0000 0000

Der Zeitstempel für 2018-01-01 ist 1514764800 und seine binäre Version ist:
0b0101 0110 0001 1010 1011 1010 1001 1101 0010 1000 0000 0000 0000
The timestamp for 2018-01-01 is 1514764800 and its binary version is:
0b0101 0110 0001 1010 1011 1010 1001 1101 0010 1000 0000 0000 0000

Die oberen 18 Bits in ihren 64-Bit-Darstellungen sind gleich. Je näher die beiden Zeitstempel liegen, desto mehr der höchstwertigen Bits gleich sind. In typischen Implementierungen können der Bildzeitstempel und der Screenshot-Zeitstempel typischerweise deutlich näher beieinander liegen, beispielsweise innerhalb eines Tages, einer Woche oder eines Monats, und somit eine größere Anzahl von gleichen Bits aufweisen.The upper 18 bits in their 64-bit representations are the same. The closer the two time stamps are, the more the most significant bits are the same. In typical implementations, the image time stamp and the screenshot time stamp can typically be significantly closer to one another, for example within a day, a week or a month, and thus have a larger number of identical bits.

Durch Verwenden des oben beschriebenen Binning-Schemas kann das System in einigen Implementierungen K = (ceil(64 - log2(Δ)) + 64) Bits verwenden, um die Abfrage-ID zu codieren, indem etwa log2(Δ) der höchstwertigen Bits in Tq entfernt wird. 1C ist eine Darstellung eines Datenformats 150' zur Bildwasserzeichenmarkierung gemäß einer solchen Implementierung. Wie gezeigt, sind die IP-Adresse 154 und die Prozess-ID 156 die gleichen wie bei der Implementierung von 1B, wobei der Zeitstempel auf einen Teil der niedrigstwertigen Bits 158 reduziert wird, und zusätzliche Daten 160 hinzugefügt werden können, ohne die Größe der Daten zu reduzieren.Using the binning scheme described above, in some implementations the system can use K = (ceil (64 - log2 (Δ)) + 64) bits to encode the query ID by adding approximately log2 (Δ) of the most significant bits in Tq is removed. 1C is an illustration of a data format 150 ' for image watermarking according to such an implementation. As shown are the IP address 154 and the process ID 156 the same as when implementing 1B , with the timestamp on part of the least significant bits 158 is reduced, and additional data 160 can be added without reducing the size of the data.

Auf der Decodiererseite kann das Zeitstempel-LSB 158 nach dem Erhalten der Kbit-Binärfolge aus dem Extrahieren und Decodieren des QR-Codes aus einem empfangenen Screenshot den Index des Bins identifizieren, das den richtigen Zeitstempel Tq enthält. Um Tq wiederherzustellen, kann der Decodierer die ersten log2(Δ)-Bits von Ts und den (64-log2(Δ))-Bit-Bin-Index kombinieren, um T'q zu erhalten. In Fällen, in denen log2(Δ) keine ganze Zahl ist, wird hier stattdessen die kleinste ganze Zahl verwendet, die größer als log2(Δ) ist, d.h. ceil(log2(Δ))). Da in vielen Implementierungen mit hoher Wahrscheinlichkeit Ts - Tq ≤ Δ ist, folgt T'q = Tq mit hoher Wahrscheinlichkeit am Decodierer. Im unwahrscheinlichen Fall, in dem Ts - Tq > Δ, gilt, muss solange Ts - Tq ≤ mΔ ist, Tq zu der folgenden Liste mit der Größe m gehören, wobei m eine positive ganze Zahl ist,
{T'q, T'q - Δ, T'q - 2Δ, ..., T'q - (m-1)Δ}.
On the decoder side, the time stamp LSB 158 after obtaining the kbit binary sequence from extracting and decoding the QR code from a received screenshot, identify the index of the bin that contains the correct timestamp Tq. To restore Tq, the decoder can combine the first log2 (Δ) bits of Ts and the (64-log2 (Δ)) bit bin index to get T'q. In cases where log2 (Δ) is not an integer, the smallest integer greater than log2 (Δ), ie ceil (log2 (Δ))), is used here instead. Since there is a high probability of Ts - Tq Δ in many implementations, it follows with a high probability that T'q = Tq at the decoder. In the unlikely event that Ts - Tq> Δ, then as long as Ts - Tq ≤ mΔ, Tq must belong to the following list of size m, where m is a positive integer,
{T'q, T'q - Δ, T'q - 2Δ, ..., T'q - (m-1) Δ}.

Da (ceil(64 - log2(Δ)) + 64) < 128 ist, reduzieren diese Implementierungen effektiv die Nachrichtenrate, die erforderlich ist, um die Abfrage-ID am Decodierer wiederherzustellen. Eine solche Reduzierung kann wiederum auf zwei Arten genutzt werden, um die Erfolgsrate der Entschlüsselung zu verbessern:

  1. 1. Erhöhung der Korrekturstufe im ausgewählten QR-Code, z.B. durch Einschließen zusätzlicher Paritäts- oder Fehlerkorrekturbits; oder
  2. 2. Verwenden eines kleineren Makro-QR-Codes (z.B. Makro 17).
Since (ceil (64 - log2 (Δ)) + 64) <128, these implementations effectively reduce the message rate required to recover the query ID at the decoder. Such a reduction can in turn be used in two ways to improve the success rate of the decryption:
  1. 1. Increase the correction level in the selected QR code, for example by including additional parity or error correction bits; or
  2. 2. Use a smaller macro QR code (e.g. macro 17).

Es ist zu beachten, dass ein 21x21 QR Code bis zu 152 Informationsbits speichern kann, wie in der folgenden Tabelle aufgeführt: ECC Niveau Niedrig Mittel Quartil Hoch Bits 21x21 152 128 104 72 Numerisch 21x21 41 34 27 17 Numerisches Macro17 35 30 21 --- It should be noted that a 21x21 QR Code can store up to 152 bits of information, as shown in the following table: ECC level Low middle Quartile High Bits 21x21 152 128 104 72 Numeric 21x21 41 34 27 17th Numerical Macro17 35 30th 21 ---

Durch Reduzieren der Anzahl von Bits von 128 auf K=(ceil(64- log2(Δ)) + 64) kann das System ein höheres Fehlerkorrekturcode-(ECC)-Niveau oder einen kleineren QR-Code verwenden, um die Decodierungserfolgsrate zu verbessern (z.B. ein Wechsel von Medium zu Quartii).By reducing the number of bits from 128 to K = (ceil (64- log2 (Δ)) + 64) the system can use a higher error correction code (ECC) level or a smaller QR code to improve the decoding success rate ( e.g. a change from medium to quartii).

Verbesserte NachrichtenrateImproved message rate

Die oben erörterten Implementierungen verwenden die an dem Decodierer verfügbaren Seiteninformationen, um die Robustheit der Wasserzeichenmarkierung zu verbessern. Aus einer anderen Perspektive kann das System auch die Nebeninformationen verwenden, um die Nachrichtenrate zu verbessern.The implementations discussed above use the page information available at the decoder to improve the robustness of the watermarking. From another perspective, the system can also use the side information to improve the message rate.

In solchen Implementierungen kann der Codierer von 2B eine Nachricht mit Wasserzeichen wie folgt in ein Bild einbetten:

  1. 1. Wandeln der 128-Bit-Abfrage-ID zusammen mit den zusätzlichen KBit-Informationen in einen 128-Bit-Binärstring um, wobei K durch H(X)H(XIY) bestimmt wird.
  2. 2. Wandeln des 128-Bit-Binärstring in ein QR-Codewort um.
  3. 3. Generieren eines Wasserzeichenbildes, das mindestens eine Kopie des QR-Codeworts enthält.
  4. 4. Mischen des Wasserzeichenbildes und des Quellbildes, indem das erstere über das letztere gelegt werden.
In such implementations, the encoder of 2 B embed a watermarked message in an image as follows:
  1. 1. Convert the 128-bit query ID together with the additional KBit information into a 128-bit binary string, where K is determined by H (X) H (XIY).
  2. 2. Convert the 128-bit binary string into a QR code word.
  3. 3. Generating a watermark image that contains at least one copy of the QR code word.
  4. 4. Blending the watermark image and the source image by overlaying the former over the latter.

Entsprechend kann der Decodierer von 2B die Wasserzeichennachricht X aus einem Screenshot des Bildes wie folgt decodieren:

  • 4. Erkennen und Extrahieren eines QR-Codewortes aus dem Screenshot.
  • 5. Decodieren eines 128-Bit-Binärstrings aus dem extrahierten QR-Codewort.
  • 6. Decodieren der 128-Bit-Abfrage-ID zusammen mit den KBit-Zusatzinformationen aus dem 128-Bit-Binärstring und den Nebeninformationen Y.
Correspondingly, the decoder of 2 B decode the watermark message X from a screenshot of the image as follows:
  • 4. Recognition and extraction of a QR code word from the screenshot.
  • 5. Decoding a 128-bit binary string from the extracted QR code word.
  • 6. Decoding of the 128-bit query ID together with the additional KBit information from the 128-bit binary string and the side information Y.

Im Vergleich zu Systemen, die diese Verfahren nicht implementieren, stellen diese Implementierungen im Wesentlichen eine zusätzliche K-Bit-Nachrichtenübermittlungsfähigkeit kostenlos bereit, d.h. mit derselben Decodierungserfolgsrate und demselben Verzerrungsniveau. Diese zusätzlichen K-Bits können verwendet werden, um eine bessere Verfolgungsfähigkeit und/oder Benutzererfahrung im Hinblick auf die Benutzerfreundlichkeit bereitzustellen.Compared to systems that do not implement these methods, these implementations essentially provide additional K-bit messaging capability for free, i.e. with the same decoding success rate and the same level of distortion. These additional K-bits can be used to provide better tracking and / or user experience in terms of usability.

Wie oben erwähnt, kann, obwohl in erster Linie im Hinblick auf die Reduzierung der Datengröße für einen Zeitstempel innerhalb der Wasserzeichendaten erörtert, eine ähnliche Implementierung mit Binning verwendet werden, das auf IP-Adressen und/oder Prozesskennungen angewendet wird. Wenn beispielsweise typische Prozesskennungen alle weniger als 20 Bit lang sind, können 12 Bit aus der Prozess-ID 156 MSB entfernt werden. In ähnlicher Weise kann ein Teil der IP-Adresse (z.B. die ganz linken 8 Bits) in den Wasserzeichendaten aus den am Decoder verfügbaren Seiteninformationen abgeleitet werden (z.B. IP-Adresse, die zum Senden des Screenshots verwendet wird, IP-Adresse des Decoders usw.). Um die Datengröße weiter zu reduzieren, können Kombinationen dieser Felder auf diese Weise verarbeitet werden.As mentioned above, although discussed primarily in terms of reducing the data size for a timestamp within the watermark data, a similar implementation with binning that applies to IP addresses and / or process identifiers can be used. For example, if typical process IDs are all less than 20 bits long, 12 bits from the process ID 156 MSB must be removed. Similarly, part of the IP address (e.g. the leftmost 8 bits) in the watermark data can be derived from the side information available on the decoder (e.g. IP address used to send the screenshot, IP address of the decoder, etc. ). To further reduce the data size, combinations of these fields can be processed in this way.

3 ist ein Blockdiagramm eines Systems zur Bildwasserzeichenmarkierung gemäß einigen Implementierungen. Ein Client-Gerät 300, das einen Desktop-Computer, Laptop-Computer, Tablet-Computer, tragbaren Computer, Smartphone, eingebetteten Computer, Smart Car oder jede andere Art und Form von Computervorrichtung umfassen kann, kann über ein Netzwerk 312 mit einem oder mehreren Servern 314 kommunizieren. 3 Figure 4 is a block diagram of an image watermarking system in accordance with some implementations. A client device 300 , which may include a desktop computer, laptop computer, tablet computer, portable computer, smartphone, embedded computer, smart car, or any other type and form of computing device, may be over a network 312 with one or more servers 314 communicate.

In vielen Implementierungen kann ein Client-Gerät 300 einen Prozessor 302 und eine Speichervorrichtung 306 umfassen. Die Speichervorrichtung 306 kann Maschinenanweisungen speichern, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor veranlassen, eine oder mehrere der hierin beschriebenen Operationen durchzuführen. Der Prozessor 302 kann einen Mikroprozessor, ASIC, FPGA usw. oder Kombinationen davon umfassen. In vielen Implementierungen kann ein Prozessor ein Mehrkernprozessor oder ein Array von Prozessoren sein. Eine Speichervorrichtung 306 kann elektronische, optische, magnetische oder beliebige andere Speichervorrichtungen umfassen, die in der Lage sind, einem Prozessor Programmanweisungen bereitzustellen, ist aber nicht darauf beschränkt. Eine Speichervorrichtung kann eine Diskette, CD-ROM, DVD, Magnetplatte, Speicherchip, ROM, RAM, EEPROM, EPROM, Flash-Speicher, optische Medien oder jeden anderen geeigneten Speicher umfassen, aus dem ein Prozessor Anweisungen lesen kann. Die Anweisungen können Code aus einer beliebigen geeigneten Computerprogrammiersprache umfassen, wie beispielsweise C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python und Visual Basic, ist aber nicht darauf beschränkt.In many implementations, a client device can 300 a processor 302 and a storage device 306 include. The storage device 306 may store machine instructions that, when executed by the processor, cause the processor to perform one or more of the operations described herein. The processor 302 may include a microprocessor, ASIC, FPGA, etc., or combinations thereof. In many implementations, a processor can be a multi-core processor or an array of processors. A storage device 306 may include, but is not limited to, electronic, optical, magnetic, or any other storage device capable of providing program instructions to a processor. A storage device may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable storage device from which a processor can read instructions. The instructions can include, but are not limited to, 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.

Ein Client-Gerät 300 kann eine oder mehrere Netzwerkschnittstellen 304 umfassen. Eine Netzwerkschnittstelle 304 kann jede Art und Form von Schnittstellen umfassen, einschließlich Ethernet, einschließlich 10 Base T, 100 Base T oder 1000 Base T („Gigabit“); jede der Varianten von 802.11 Wireless, wie 802.11a, 802.11b, 802.11g, 802.11 n oder 802.11 ac; Mobilfunk, einschließlich CDMA, LTE, 3G oder 4G Mobilfunk; Bluetooth oder andere drahtlose Verbindungen mit kurzer Reichweite; oder eine beliebige Kombination dieser oder anderer Schnittstellen zum Kommunizieren mit einem Netzwerk. In vielen Implementierungen kann ein Client-Gerät 300 eine Vielzahl von Netzwerkschnittstellen 304 verschiedener Typen beinhalten, die Verbindungen zu einer Vielzahl von Netzwerken 312 ermöglichen. Dementsprechend kann das Netzwerk 312 ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) wie das Internet, ein Mobilfunknetzwerk, ein Breitbandnetzwerk, ein Bluetooth-Netzwerk, ein 802.11 (WiFi)-Netzwerk, ein Satellitennetzwerk oder eine beliebige Kombination dieser oder anderer Netzwerke umfassen und kann ein oder mehrere zusätzliche Geräte umfassen (z.B. Router, Switches, Firewalls, Hubs, Netzwerkbeschleuniger, Caches usw.).A client device 300 can have one or more network interfaces 304 include. A network interface 304 may include any type or form of interface, including Ethernet, including 10 Base T, 100 Base T, or 1000 Base T (“Gigabit”); any of the flavors of 802.11 wireless, such as 802.11a, 802.11b, 802.11g, 802.11 n, or 802.11 ac; 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. In many implementations, a client device can 300 a variety of network interfaces 304 of various types that involve connections to a variety of networks 312 enable. Accordingly, the network can 312 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 combination of these or other networks and may include one or include several additional devices (e.g. routers, switches, firewalls, hubs, network accelerators, caches, etc.).

Ein Client-Gerät kann ein oder mehrere Benutzerschnittstellengeräte umfassen. Ein Benutzerschnittstellengerät kann ein beliebiges elektronisches Gerät sein, das Daten an einen Benutzer übermittelt, indem es sensorische Informationen (z.B. eine Visualisierung auf einem Display, ein oder mehrere Geräusche, taktiles Feedback usw.) und elektronische Signale (z.B. eine Tastatur, eine Maus, ein Zeigegerät, eine Touchscreen-Anzeige, ein Mikrofon usw.) erzeugt. Das eine oder die mehreren Benutzerschnittstellengeräte können sich innerhalb des Gehäuses eines Client-Geräts befinden, wie beispielsweise ein eingebautes Display, ein Touchscreen, ein Mikrofon usw., oder außerhalb des Gehäuses eines Client-Geräts, wie beispielsweise eines Monitors, der mit einem Client-Gerät, eines mit einem Client-Gerät verbundenen Lautsprechers usw., gemäß verschiedenen Implementierungen, befinden.A client device can include one or more user interface devices. A user interface device can be any electronic device that communicates data to a user by using sensory information (e.g. a visualization on a display, one or more sounds, tactile feedback, etc.) and electronic signals (e.g. a keyboard, mouse, a Pointing device, touchscreen display, microphone, etc.). The one or more user interface devices can be located within the housing of a client device, such as a built-in display, touch screen, microphone, etc., or outside the housing of a client device, such as a monitor that communicates with a client device. Device, a speaker connected to a client device, etc., according to various implementations.

Der Speicher 306 kann eine Anwendung 308 zur Ausführung durch den Prozess 302 umfassen. Die Anwendung 308 kann jede Art und Form einer Anwendung, wie beispielsweise eine Medienanwendung, ein Webbrowser, eine Produktivitätsanwendung oder jede andere derartige Anwendung, umfassen. Die Anwendung 308 kann Bilder von einem Inhaltsserver empfangen, einschließlich in die Bilder eingebetteten Wasserzeichen, und kann sie über eine Benutzerschnittstelle für einen Benutzer des Client-Geräts anzeigen.The memory 306 can be an application 308 for execution by the process 302 include. The application 308 may include any type and form of application such as a media application, web browser, productivity application, or any other such application. The application 308 can receive images from a content server, including watermarks embedded in the images, and display them through a user interface to a user of the client device.

Der Speicher 306 kann auch eine Erfassungsmaschine 310, welche einen Teil der Anwendung 308 (z.B. ein Plug-In oder eine Erweiterung eines Browsers) und/oder Teil eines Betriebssystems des Geräts sein kann, umfassen. Die Erfassungsmaschine 310 kann eine Anwendung, einen Server, einen Dienst, einen Daemon, eine Routine oder eine andere ausführbare Logik zum Erfassen von Screenshots von gerenderten Bildern einschließlich Wasserzeichen umfassen. Die Erfassungsmaschine 310 kann dazu konfiguriert sein, einen Screenshot jedes Bildes oder einiger Bilder aufzunehmen. In einigen Implementierungen kann die Erfassungsmaschine 310 zum Beispiel ausgelöst werden, um einen Screenshot eines Bildes als Reaktion auf Metadaten des Bildes oder als Reaktion auf ein, von der Anwendung 308 ausgeführtes Skript (z.B. als Reaktion auf ein in eine Webseite eingebettetes Skript, das von einem Browser zum Beispiel angezeigt wird) aufzunehmen. Die Erfassungsmaschine 310 kann dazu konfiguriert sein, einen Screenshot jedes Bildes oder einiger Bilder aufzunehmen. In einigen Implementierungen kann die Erfassungsmaschine 310 zum Beispiel ausgelöst werden, um einen Screenshot eines Bildes als Reaktion auf Metadaten des Bildes oder als Reaktion auf ein von der Anwendung 308 ausgeführtes Skript (z.B. als Reaktion auf ein in eine Webseite eingebettetes Skript, das von einem Browser zum Beispiel angezeigt wird) aufzunehmen. Die Erfassungsmaschine 310 kann dem Screenshot Metadaten hinzufügen, wie etwa eine Aufnahmezeit (z.B. in Epochenzeit), wie oben erörtert. Die Erfassungsmaschine 310 kann den Screenshot auch über die Netzwerkschnittstelle 304 an einen Überwachungsserver übertragen. In einigen Implementierungen kann die Erfassungsmaschine 310 ein Skript umfassen, das in eine Webseite eingebettet ist und von einer Anwendung 308 während des Renderns der Webseite ausgeführt wird; solche Webseiten können auch ein eingebettetes Bild oder einen Link zu einem Bild enthalten, von dem die Aufnahmemaschine einen Screenshot aufnehmen kann.The memory 306 can also be a capture machine 310 which is part of the application 308 (eg a plug-in or an extension of a browser) and / or part of an operating system of the device can include. The capture machine 310 may include an application, server, service, daemon, routine, or other executable logic for capturing screenshots of rendered images including watermarks. The capture machine 310 can be configured to take a screenshot of each image or some images. In some implementations, the acquisition engine can 310 for example triggered to take a screenshot of an image in response to metadata of the image, or in response to an, from the application 308 to record executed script (e.g. in response to a script embedded in a web page that is displayed by a browser, for example). The capture machine 310 can be configured to take a screenshot of each image or some images. In some implementations, the acquisition engine can 310 for example triggered to take a screenshot of an image in response to metadata of the image or in response to one from the application 308 to record executed script (e.g. in response to a script embedded in a web page that is displayed by a browser, for example). The capture machine 310 can add metadata to the screenshot, such as a recording time (e.g. in epoch time), as discussed above. The capture machine 310 can also take the screenshot via the network interface 304 transmitted to a monitoring server. In some implementations, the acquisition engine can 310 comprise a script embedded in a web page and from an application 308 runs while the webpage is being rendered; such web pages may also contain an embedded image or a link to an image that the capture engine can take a screenshot of.

Der Server 314 kann einen Inhaltsserver und/oder einen Überwachungsserver umfassen, die die gleichen oder unterschiedliche Geräte sein können. Die Server 314 können einen oder mehrere Prozessoren 302, Netzwerkschnittstellen 304 und Speichervorrichtungen 306 beinhalten. Ein Inhaltsserver 314 kann einen oder mehrere Inhaltselemente 316 im Speicher umfassen, wie beispielsweise Bilder, die mit einem Wasserzeichen versehen werden sollen, sowie anderen Inhalt (z.B. Webseiten, andere Medien usw.). Der Inhaltsserver 314 kann auch einen Codierer 202 umfassen, wie oben in Verbindung mit den 2A und 2B erörtert wurde. Der Codierer 202 kann Software, Hardware oder eine Kombination aus Hardware und Software umfassen. Zum Beispiel kann der Codierer 202 einen ASIC, FPGA oder andere dedizierte Hardware zum Einbetten von Wasserzeichen in Bilder umfassen.The server 314 may include a content server and / or a monitoring server, which may be the same or different devices. The servers 314 can be one or more processors 302 , Network interfaces 304 and storage devices 306 include. A content server 314 can be one or more content items 316 in memory such as images to be watermarked and other content (e.g. web pages, other media, etc.). The content server 314 can also use an encoder 202 include, as above in connection with the 2A and 2 B was discussed. The encoder 202 may include software, hardware, or a combination of hardware and software. For example, the encoder can 202 include an ASIC, FPGA, or other dedicated hardware for embedding watermarks in images.

Ein Überwachungsserver kann einen Decodierer 204 umfassen, wie oben in Verbindung mit 2B erörtert. Der Decodierer 204 kann Software, Hardware oder eine Kombination aus Hardware und Software umfassen. Zum Beispiel kann der Decodierer 204 einen ASIC, FPGA oder andere dedizierte Hardware zum Identifizieren und Decodieren von Wasserzeichen aus Bildern umfassen. Wie oben erörtert, kann der Decodierer 204 Nebeninformationen empfangen, um das Decodieren des Wasserzeichens zu unterstützen, wie etwa eine Screenshot-Zeit aus Metadaten eines Screenshots, der von einer Erfassungsmaschine 310 empfangen wurde.A monitoring server can have a decoder 204 include, as above in connection with 2 B discussed. The decoder 204 may include software, hardware, or a combination of hardware and software. For example, the decoder can 204 include an ASIC, FPGA, or other dedicated hardware for identifying and decoding watermarks from images. As discussed above, the decoder can 204 Received side information to aid in decoding the watermark, such as a screenshot time from metadata of a screenshot taken by a capture engine 310 was received.

4 ist ein Flussdiagramm eines Verfahrens zur Bildwasserzeichenmarkierung gemäß einigen Implementierungen. Bei Schritt 402 kann ein Client-Gerät ein Inhaltselement anfordern. Die Anforderung kann während des Renderns einer Webseite durch einen Browser oder eine andere Anwendung ausgelöst werden (z.B. ein Zwischeninhaltselement während einer Pause in einem Handyspiel oder jede andere Art und Form von Inhalt). Bei Schritt 404 kann ein Inhaltsserver 314 ein Inhaltselement auswählen. Das Inhaltselement kann auf beliebige Weise ausgewählt werden und kann auf dem Client-Gerätetyp, einem Benutzerkonto oder einer Gerätekennung, kontextbezogenen Elementen innerhalb einer Webseite oder einer anderen Anwendung oder anderen solchen Informationen basieren. 4th Figure 4 is a flow diagram of a method for image watermarking, in accordance with some implementations. At step 402 a client device can request an item of content. The request can be triggered by a browser or other application while a web page is being rendered (e.g. an intermediate content item during a break in a mobile game or any other type and form of content). At step 404 can be a content server 314 select a content item. The content item can be selected in any way and can be based on the client device type, a user account or device identifier, contextual elements within a web page or other application, or other such information.

In Schritt 406 kann der Inhaltsserver 314 eine Wasserzeichenkennung generieren, die eine oder mehrere Kennungen umfassen kann, einschließlich eines Zeitstempels, einer Kennung des Servers oder einer IP-Adresse des Servers und/oder eine Prozesskennung des Prozesses, der verwendet wird, um das Inhaltselement auszuwählen. In einigen Implementierungen kann die Wasserzeichenkennung zusätzliche Informationen enthalten, wie beispielsweise eine Kennung des Inhaltselements. Bei Schritt 408 kann das Inhaltselement mit dem Wasserzeichen codiert werden. Wie oben erörtert, kann das Codieren des Inhaltselements das Erzeugen einer Überlagerung mit einem Alphakanal umfassen, der Pixel aufweist, die von einem Standardwert oder Muster, die geänderte Bits des codierten Wasserzeichens darstellen (z.B. ein QR-Code oder ein ähnlicher Code) modifiziert sind. Die Wasserzeichen können in vorbestimmten Intervallen oder Abständen über das Bild wiederholt werden. Die Überlagerung kann dann mit dem Bild gemischt oder kombiniert werden, um das codierte Inhaltselement zu erzeugen. Bei Schritt 410 kann das codierte Inhaltselement vom Inhaltsserver an das Client-Gerät übertragen werden.In step 406 can the content server 314 generate a watermark identifier, which may include one or more identifiers, including a time stamp, an identifier of the server or an IP address of the server, and / or a process identifier of the process used to select the content item. In some implementations, the watermark identifier may contain additional information, such as an identifier of the content item. At step 408 the content element can be coded with the watermark. As discussed above, encoding the content item may include creating an overlay with an alpha channel having pixels modified from a default value or pattern representing changed bits of the encoded watermark (e.g., a QR code or similar code). The watermarks can be repeated across the image at predetermined intervals. The overlay can then be blended or combined with the image to create the encoded content item. At step 410 the encoded content item can be transmitted from the content server to the client device.

Obwohl gezeigt, dass der Inhaltsserver die Wasserzeichenkennung erzeugt und das Wasserzeichen nach dem Empfangen der Anforderung für das Inhaltselement codiert, können Inhaltselemente in einigen Implementierungen vorcodiert werden (z.B. vor Schritt 402) und der Inhaltsserver kann ein vorcodiertes Inhaltselement für die Zustellung auswählen. Bei vielen Implementierungen kann eine solche Vorcodierung innerhalb eines vorbestimmten Zeitrahmens vor der Anforderung durchgeführt werden. Zum Beispiel können Inhaltselemente mit einem gegebenen Zeitstempel kodiert und für einen vorbestimmten Zeitraum (z.B. zwei Wochen) verwendet und dann durch einen neuen Zeitstempel ersetzt oder neu kodiert werden. Dies kann es dem Inhaltsserver ermöglichen, die Codierungsverarbeitung während weniger beschäftigter Zeiten durchzuführen, während dennoch sichergestellt wird, dass der Inhalt und der Zeitstempel relativ frisch sind. Wie oben erörtert, können umso mehr Daten in dem Wasserzeichen codiert und/oder das Wasserzeichen robuster gemacht werden, je kürzer das Fenster ist, während dessen vorcodierte Inhaltselemente verwendet werden können; jedoch können selbst in dem oben beschriebenen Beispiel Fenster von einem Jahr oder mehr verwendet werden, während die erforderlichen Daten immer noch erheblich reduziert werden.Although the content server has been shown to generate the watermark identifier and encode the watermark for the content item after receiving the request, in some implementations content items may be precoded (e.g., before step 402 ) and the content server can select a precoded content item for delivery. In many implementations, such precoding can be performed within a predetermined time frame prior to the request. For example, content items can be encoded with a given time stamp and used for a predetermined period of time (eg two weeks) and then replaced with a new time stamp or re-encoded. This can allow the content server to perform the coding processing during less busy times while still ensuring that the content and timestamp are relatively fresh. As discussed above, the shorter the window during which precoded content elements can be used, the more data can be encoded in the watermark and / or the watermark can be made more robust; however, even in the example described above, windows of a year or more can be used while still significantly reducing the data required.

In Schritt 412 kann das Client-Gerät das Inhaltselement rendern, z.B. innerhalb einer Anwendung wie einem Webbrowser, Mediaplayer, Spiel oder einer anderen Anwendung. Bei Schritt 414 kann eine Aufnahmemaschine des Client-Geräts (die entweder als separater Dienst oder als Plug-In oder Skript der Anwendung ausgeführt wird) einen Screenshot des Inhaltselements aufnehmen. Der Screenshot kann geschnitten oder auf das Inhaltselement beschränkt sein oder kann den gesamten Bildschirm oder einen Teil des Bildschirms umfassen. Der Screenshot kann über Metadaten mit einem Aufnahmezeitstempel identifiziert werden und kann andere Kennungen enthalten (z.B. Gerätekennungen, Kontextkennungen der Anwendung und/oder Webseite usw.). Der Screenshot kann geschnitten oder auf das Inhaltselement beschränkt sein oder kann den gesamten Bildschirm oder einen Teil des Bildschirms umfassen. Der Screenshot kann über Metadaten mit einem Aufnahmezeitstempel identifiziert werden und kann andere Kennungen enthalten (z.B. Gerätekennungen, Kontextkennungen der Anwendung und/oder Webseite usw.). Bei Schritt 416 kann das Client-Gerät den Screenshot an einen Überwachungsserver übertragen.In step 412 the client device can render the content item, for example within an application such as a web browser, media player, game or other application. At step 414 For example, a capture engine on the client device (running either as a separate service or as a plug-in or script of the application) can capture a screenshot of the content item. The screenshot can be cropped or limited to the content element, or it can include all or part of the screen. The screenshot can be identified using metadata with a recording time stamp and can contain other identifiers (e.g. device identifiers, context identifiers of the application and / or website, etc.). The screenshot can be cropped or limited to the content element, or it can include all or part of the screen. The screenshot can be identified using metadata with a recording time stamp and can contain other identifiers (e.g. device identifiers, context identifiers of the application and / or website, etc.). At step 416 the client device can transmit the screenshot to a monitoring server.

Bei Schritt 418 kann ein Überwachungsserver, der ein Inhaltsserver oder ein anderes Gerät sein kann, den Screenshot empfangen und kann in einigen Implementierungen den Zeitstempel aus den Metadaten des Screenshots extrahieren oder kann eine Sende- oder Empfangszeit des Screenshots identifizieren. Der Zeitstempel kann als Nebeninformation an einen Decodierer des Überwachungsservers geliefert werden.At step 418 For example, a monitoring server, which can be a content server or other device, can receive the screenshot and, in some implementations, can extract the timestamp from the metadata of the screenshot or identify a time the screenshot was sent or received. The time stamp can be supplied as side information to a decoder of the monitoring server.

In Schritt 420 kann der Decodierer den Screenshot scannen und alle identifizierten Wasserzeichen extrahieren. In einigen Implementierungen, in denen das Wasserzeichen mehrmals im Screenshot erscheint, kann der Decodierer die identifizierten Wasserzeichen vergleichen und ein Wasserzeichen mit der geringsten Verzerrung auswählen oder generieren (z.B. ein Wasserzeichen, das der höchsten Anzahl anderer Wasserzeichen im Bild entspricht, ein Wasserzeichen, das ein Durchschnitt der anderen identifizierten Wasserzeichen usw.). Bei Schritt 422 kann der Decodierer das Wasserzeichen in eine Zeichenkette umwandeln.In step 420 the decoder can scan the screenshot and extract all identified watermarks. In some implementations where the watermark appears multiple times in the screenshot, the decoder can compare the identified watermarks and select or generate a watermark with the least distortion (e.g. a watermark that corresponds to the highest number of other watermarks in the image, a watermark that has a Average of other identified watermarks, etc.). At step 422 the decoder can convert the watermark into a character string.

In Schritt 424 kann der Decodierer einen Zeitstempel aus einem Teil des extrahierten Zeitstempels aus Schritt 418 generieren (z.B. eine vorbestimmte Anzahl der niedrigstwertigen Bits) und kann die Decodierung der Zeichenfolge unter Verwendung des erzeugten Zeitstempels testen (z.B. Anwenden von Fehlerkorrekturalgorithmen auf die dekodierte Zeichenfolge mit dem generierten Zeitstempel). Wenn die Zeichenfolge gemäß den Fehlerkorrekturbits korrekt dekodiert wird, kann der Überwachungsserver in Schritt 426 das Screenshot-Bild oder Daten in Bezug auf das Inhaltselement verarbeiten (z.B. Identifizieren des Inhaltsservers über die IP-Adresse und Prozesskennung, Vergleichen des Screenshots mit dem ursprünglichen Inhaltselement, um Rendering-Verzerrungen oder - Beschädigungen zu erkennen, Verfolgung der Lieferung des Inhaltselements usw.).In step 424 the decoder can create a timestamp from part of the extracted timestamp from step 418 generate (e.g. a predetermined number of the least significant bits) and can test the decoding of the character string using the generated time stamp (e.g. applying error correction algorithms to the decoded character string with the generated time stamp). If the character string is correctly decoded according to the error correction bits, the monitoring server can go to step 426 Process the screenshot image or data relating to the content element (e.g. identify the content server via the IP address and process identifier, compare the screenshot with the original content element in order to detect rendering distortions or damage, tracking the delivery of the content element, etc. ).

Wenn die Zeichenfolge nicht korrekt decodiert wird, kann der Decodierer den generierten Zeitstempel gemäß dem Wert Δ aus dem Binning-Schema vorrücken und kann die Decodierung bei Schritt 424 erneut testen. Dies kann iterativ wiederholt werden, bis entweder die Decodierung erfolgreich ist oder alle Bin-Indexwerte getestet wurden (was darauf hindeutet, dass das Wasserzeichen beschädigt oder unsachgemäß extrahiert wurde, oder dass ein Inhaltselement aus dem oben erörterten Nutzungszeitfenster vor der Verwendung verwendet wurde). Wenn alle Bin-Indexwerte getestet wurden und das Decodieren nicht erfolgreich ist, dann kann der Decodierer im Schritt 428 einen Fehler an einen Administrator oder Benutzer des Systems melden.If the character string is not correctly decoded, the decoder can advance the generated time stamp according to the value Δ from the binning scheme and can decode at step 424 test again. This can be repeated iteratively until either the decoding is successful or all bin index values have been tested (suggesting that the watermark has been damaged or improperly extracted, or that an item of content from the usage window discussed above has been used prior to use). If all bin index values have been tested and the decoding is unsuccessful, then the decoder in step 428 report an error to an administrator or user of the system.

Dementsprechend stellen die hierin erörterten Systeme und Verfahren eine verbesserte Bildwasserzeichenmarkierung bereit, um die Robustheit und Kapazität zu verbessern, ohne die Wahrnehmbarkeit zu verschlechtern. Insbesondere ermöglichen die hierin erörterten Systeme und Verfahren eine höhere Decodierungserfolgsrate bei demselben Verzerrungsniveau und derselben Nachrichtenrate; oder eine höhere Nachrichtenrate bei gleichem Verzerrungsniveau und gleicher Decodierungserfolgsrate. Implementierungen dieser Systeme verwenden eine Seitenkette zusätzlicher Informationen, die nur dem Decodierer und nicht dem Codierer zur Verfügung steht, um eine asymptotisch verlustfreie Datenkompression zu erreichen, wodurch die gleiche Nachricht in weniger Bits übertragen werden kann.Accordingly, the systems and methods discussed herein provide improved image watermarking to improve robustness and capacity without degrading perceptibility. In particular, the systems and methods discussed herein enable a higher decoding success rate with the same level of distortion and the same message rate; or a higher message rate with the same level of distortion and the same decoding success rate. Implementations of these systems use a side chain of additional information that is only available to the decoder and not the encoder to achieve asymptotically lossless data compression, which allows the same message to be transmitted in fewer bits.

Implementierungen des Gegenstands und der Operationen, die in dieser Spezifikation beschrieben sind, können in digitalen elektronischen Schaltungen oder in Computersoftware, Firmware oder Hardware implementiert werden, einschließlich der, in dieser Spezifikation offenbarten Strukturen und ihrer strukturellen Äquivalente, oder in Kombinationen von: oder mehr davon. Implementierungen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme implementiert werden, d.h. ein oder mehrere Module von Computerprogrammanweisungen, die auf einem oder mehreren Computerspeichermedien zur Ausführung durch oder um den Betrieb von Datenverarbeitungsgeräten zu steuern. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten propagierten Signal codiert werden, z.B. einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal, das erzeugt wird, um Informationen zur Übertragung an eine geeignete Empfängervorrichtung zur Ausführung durch ein Verarbeitungsgerät. Ein Computerspeichermedium kann ein computerlesbares Speichergerät, ein computerlesbares Speichersubstrat, ein Speicherarray oder -gerät mit wahlfreiem oder seriellem Zugriff oder eine Kombination von einem oder mehreren davon sein oder darin enthalten sein. Während ein Computerspeichermedium kein verbreitetes Signal ist, kann ein Computerspeichermedium außerdem eine Quelle oder ein Ziel von Computerprogrammanweisungen, die in einem künstlich erzeugten, verbreiteten Signal codiert sind, sein. Das Computerspeichermedium kann auch eine oder mehrere separate Komponenten oder Medien (z.B. mehrere CDs, Platten oder andere Speichergeräte) sein oder darin enthalten sein. Dementsprechend kann das Computerspeichermedium greifbar sein.Implementations of the subject matter and the operations described in this specification may be implemented in digital electronic circuits or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of: or more thereof . Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e. one or more modules of computer program instructions stored on one or more computer storage media for execution by or to control the operation of data processing equipment. Alternatively or additionally, the program instructions can be encoded on an artificially generated propagated signal, e.g. A computer storage medium can be or be included in a computer readable storage device, a computer readable storage substrate, a storage array or device with random or serial access, or a combination of one or more thereof. While a computer storage medium is not a broadcast signal, a computer storage medium can also be a source or destination of computer program instructions encoded in an artificially generated broadcast signal. The computer storage medium can also be or be included in one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium can be tangible.

Die in dieser Spezifikation beschriebenen Operationen können als Operationen implementiert werden, die von einer Datenverarbeitungsvorrichtung an Daten durchgeführt werden, die auf einer oder mehreren computerlesbaren Speichervorrichtungen gespeichert sind oder von anderen Quellen empfangen werden.The operations described in this specification can be implemented as operations performed by a computing device on data stored on one or more computer-readable storage devices or received from other sources.

Der Begriff „Client“ oder „Server“ umfasst alle Arten von Geräten, Vorrichtungen und Maschinen zum Verarbeiten von Daten, wie beispielsweise einen programmierbaren Prozessor, einen Computer, ein System auf einem Chip oder mehrere oder Kombinationen der Vorstehenden. Die Vorrichtung kann spezielle Logikschaltungen, z.B. ein FPGA (feldprogrammierbares Gate-Array) oder einen ASIC (anwendungsspezifische integrierte Schaltung) umfassen. Die Vorrichtung kann zusätzlich zu Hardware auch Code enthalten, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z.B. Code, der Prozessorfirmware bildet, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einer oder mehreren davon. Die Vorrichtung und die Ausführungsumgebung können verschiedene unterschiedliche Computermodell-Infrastrukturen realisieren, wie etwa Webdienste, verteilte Computer- und Grid-Computing-Infrastrukturen.The term “client” or “server” encompasses all types of devices, devices and machines for processing data, such as a programmable processor, a computer, a system on a chip, or several or combinations of the foregoing. The device can be special Logic circuits, for example an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the device may also contain code that generates an execution environment for the computer program in question, e.g. code that forms processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine or a combination of one or more thereof . The device and execution environment can implement various different computer model infrastructures, such as web services, distributed computing and grid computing infrastructures.

Ein Computerprogramm (auch bekannt als Programm, Software, Softwareanwendung, Skript oder Code) kann in jeder Form von Programmiersprache geschrieben werden, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, und es kann in jede Form, einschließlich als eigenständiges Programm oder als Modul, Komponente, Unterprogramm, Objekt oder andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist, sein. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert werden, die andere Programme oder Daten enthält (z.B. ein oder mehrere Skripte, die in einem Auszeichnungssprachendokument gespeichert sind), in einer einzelnen Datei, die dem fraglichen Programm gewidmet ist, oder in mehreren koordinierten Dateien (z.B. Dateien, die ein oder mehrere Module, Unterprogramme oder Codeteile speichern). Ein Computerprogramm kann eingesetzt werden, um auf einem Computer oder auf mehreren Computern ausgeführt zu werden, die sich an einem Standort befinden oder über mehrere Standorte verteilt und durch ein Kommunikationsnetzwerk miteinander verbunden sind.A computer program (also known as 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 it can be written in any form, including as a stand-alone program or as a module , Component, subroutine, object, or other entity suitable for use in a computing environment. A computer program can, but does not have to, correspond to a file in a file system. A program can be stored in part of a file that contains other programs or data (e.g. one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files ( e.g. files that store one or more modules, subprograms or parts of code). A computer program can be used to run on one computer or on several computers that are located at one location or that are distributed over several locations and are connected to one another by a communication network.

Die in dieser Beschreibung beschriebenen Prozesse und logischen Abläufe können von einem oder mehreren programmierbaren Prozessoren, die ein oder mehrere Computerprogramme ausführen, ausgeführt werden, um Aktionen durchzuführen, indem Eingabedaten bearbeitet und Ausgaben erzeugt werden. Die Prozesse und logischen Abläufe können auch durch spezielle Logikschaltkreise, z.B. ein FPGA (feldprogrammierbares Gate-Array) oder ein ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt werden, und die Vorrichtung kann auch als spezielle Logikschaltung implementiert werden.The processes and logic described in this specification can be executed by one or more programmable processors executing one or more computer programs to perform actions by manipulating input data and generating output. The processes and logic operations can also be carried out by special logic circuits, e.g. an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit), and the device can also be implemented as a special logic circuit.

Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, umfassen sowohl Allzweck- als auch Spezial-Mikroprozessoren und einen oder mehrere Prozessoren jeder Art von Digitalcomputer. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Nur-Lese-Speicher oder einem Direktzugriffsspeicher oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Aktionen gemäß Anweisungen und ein oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Im Allgemeinen umfasst ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z.B. magnetische, magnetooptische Platten oder optische Platten, oder ist betriebsmäßig gekoppelt, um Daten von oder Daten zu oder beides zu empfangen oder zu übertragen. Ein Computer muss jedoch nicht über solche Geräte verfügen. Darüber hinaus kann ein Computer in ein anderes Gerät eingebettet werden, z.B. ein Mobiltelefon, ein Personal Digital Assistant (PDA), ein mobiler Audio- oder Videoplayer, eine Spielkonsole, ein Global Positioning System (GPS)-Empfänger oder ein tragbares Speichergerät (z.B. ein USB-Flash-Laufwerk mit universellem seriellem Bus), um nur einige zu nennen. Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und -daten geeignet sind, umfassen alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, einschließlich Halbleiterspeichervorrichtungen, z.B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, z.B. interne Festplatten oder Wechselplatten; magnetooptische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch spezielle Logikschaltkreise ergänzt oder in diese eingebaut werden.Processors suitable for executing a computer program include both general purpose and specialty microprocessors and one or more processors of any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random access memory, or both. The essential elements of a computer are a processor for executing actions according to instructions and one or more storage devices for storing instructions and data. In general, a computer also includes one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or is operatively coupled to receive or transmit data from, or to, or both. However, a computer does not need to have such devices. In addition, a computer can be embedded in another device, such as a cell phone, Personal Digital Assistant (PDA), portable audio or video player, game console, Global Positioning System (GPS) receiver, or portable storage device (such as a Universal Serial Bus USB Flash Drive, to name a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including semiconductor storage devices such as EPROM, EEPROM, and flash memory devices; Magnetic disks, e.g. internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by or built into special logic circuits.

Um eine Interaktion mit einem Benutzer zu ermöglichen, können Implementierungen des in dieser Spezifikation beschriebenen Gegenstands auf einem Computer mit einer Anzeigevorrichtung implementiert werden, z.B. einer CRT (Kathodenstrahlröhre), LCD (Flüssigkristallanzeige), OLED (organische Leuchtdiode), TFT (Dünnschichttransistor), Plasma, eine andere flexible Konfiguration oder jeder andere Monitor zum Anzeigen von Informationen für den Benutzer und eine Tastatur, ein Zeigegerät, z.B. eine Maus, ein Trackball usw., oder ein Touchscreen, Touchpad usw., durch die der Benutzer Eingaben in den Computer geben kann. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; dem Benutzer bereitgestelltes Feedback kann jede Form von sensorischem Feedback sein, z.B. visuelles Feedback, auditives Feedback oder taktiles Feedback; und Eingaben vom Benutzer können in jeder Form empfangen werden, einschließlich akustischer, sprachlicher oder taktiler Eingabe. Darüber hinaus kann ein Computer mit einem Benutzer interagieren, indem er Dokumente an ein Gerät sendet und von diesem empfängt, das vom Benutzer verwendet wird; durch Senden von Webseiten an einen Webbrowser auf dem Client-Gerät eines Benutzers als Reaktion auf vom Webbrowser empfangene Anforderungen.To enable interaction with a user, you can Implementations of the subject matter described in this specification can be implemented on a computer with a display device, e.g. a CRT (cathode ray tube), LCD (liquid crystal display), OLED (organic light emitting diode), TFT (thin film transistor), plasma, another flexible configuration or any other monitor for Displaying information to the user and a keyboard, pointing device such as a mouse, trackball, etc., or a touch screen, touchpad, etc. through which the user can input into the computer. Other types of devices can also be used to provide interaction with a user; Feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including audible, spoken, or tactile input. In addition, a computer can interact with a user by sending and receiving documents to a device that is used by the user; by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

Implementierungen des in dieser Spezifikation beschriebenen Gegenstands können in einem Computersystem, das eine Back-End-Komponente umfasst, implementiert werden, z.B. als Datenserver, oder das eine Middleware-Komponente, z.B. einen Anwendungsserver, umfasst, oder das Folgendes umfasst: eine Frontend-Komponente, z.B. einen Client-Computer mit einer grafischen Benutzeroberfläche oder einem Webbrowser, über den ein Benutzer mit einer Implementierung des in dieser Spezifikation beschriebenen Gegenstands interagieren kann, oder eine beliebige Kombination von einem oder mehreren solcher Back-End, Middleware oder Front-End Komponenten. Die Komponenten des Systems können durch jede Form oder jedes Medium der digitalen Datenkommunikation, z.B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Kommunikationsnetzwerke können ein lokales Netzwerk („LAN“) und ein Weitverkehrsnetzwerk („WAN“), ein Internetzwerk (z.B. das Internet) und Peer-to-Peer-Netzwerke (z.B. Ad-hoc-Peer-to-Peer-Netzwerke) umfassen.Implementations of the subject matter described in this specification can be implemented in a computer system that includes a back-end component, for example as a data server, or that includes a middleware component, for example an application server, or that includes: a front-end component , e.g. a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Communication networks can include a local area network ("LAN") and a wide area network ("WAN"), an internetwork (e.g., the Internet), and peer-to-peer networks (e.g., ad-hoc peer-to-peer networks).

Für Situationen, in denen die hierin erörterten Systeme persönliche Informationen über Benutzer sammeln oder persönliche Informationen verwenden können, kann den Benutzern die Möglichkeit gegeben werden zu kontrollieren, ob Programme oder Funktionen, die persönliche Informationen sammeln (z.B. Informationen über soziales Netzwerk des Benutzers, soziale Aktionen oder Aktivitäten, Präferenzen eines Benutzers oder Standort eines Benutzers) oder um zu steuern, ob oder wie Inhalte von einem Inhaltsserver oder einem anderen Datenverarbeitungssystem, das für den Benutzer relevanter sein könnte, empfangen werden. Darüber hinaus können bestimmte Daten vor der Speicherung oder Verwendung auf eine oder mehrere Weisen anonymisiert werden, sodass bei der Parametergenerierung personenbezogene Daten entfernt werden. Beispielsweise kann die Identität eines Benutzers anonymisiert werden, sodass keine personenbezogenen Daten für den Benutzer bestimmt werden können, oder der geografische Standort eines Benutzers kann verallgemeinert werden, wenn Standortinformationen erhalten werden (z.B. auf Stadt-, Postleitzahl- oder Bundeslandebene), so dass ein bestimmter Standort eines Benutzers nicht bestimmt werden kann. Somit kann der Benutzer die Kontrolle darüber haben, wie Informationen über ihn gesammelt und vom Inhaltsserver verwendet werden.For situations in which the systems discussed herein can collect personal information about users or use personal information, users can be given the option to control whether programs or functions that collect personal information (e.g. information about the user's social network, social actions) or activities, preferences of a user, or a user's location) or to control whether or how content is received from a content server or other computing system that might be more relevant to the user. In addition, certain data can be anonymized in one or more ways before being stored or used, so that personal data is removed when the parameters are generated. For example, the identity of a user can be anonymized so that no personal data can be determined for the user, or the geographic location of a user can be generalized when location information is obtained (e.g. at the city, zip code or state level) so that a specific Location of a user cannot be determined. Thus, the user can have control over how information about him is collected and used by the content server.

Obwohl diese Beschreibung viele spezifische Implementierungsdetails enthält, sollten diese nicht als Beschränkungen des Schutzumfangs von Erfindungen oder von dem, was beansprucht werden kann, ausgelegt werden, sondern eher als Beschreibungen von Merkmalen, die für bestimmte Implementierungen bestimmter Erfindungen spezifisch sind. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können auch in Kombination in einer einzigen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Implementierung beschrieben werden, auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Darüber hinaus können, obwohl oben Merkmale als in bestimmten Kombinationen wirkend beschrieben und sogar ursprünglich als solche beansprucht werden können, in einigen Fällen ein oder mehrere Merkmale aus einer beanspruchten Kombination aus der Kombination herausgenommen werden, und die beanspruchte Kombination kann auf eine Unterkombination oder Variation einer Unterkombination gerichtet sein.While this description contains many specific implementation details, these should not be construed as limitations on the scope of inventions or what can be claimed, but rather as descriptions of features that are specific to particular implementations of certain inventions. Certain features that are described in the context of separate implementations in this specification 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 sub-combination. In addition, although features can be described above as acting in certain combinations and even originally claimed as such, in some cases one or more features from a claimed combination can be removed from the combination, and the claimed combination can refer to a sub-combination or variation of a Subcombination be directed.

Obwohl Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, sollte dies in ähnlicher Weise nicht so verstanden werden, dass diese Operationen in der bestimmten gezeigten Reihenfolge oder in sequentieller Reihenfolge oder alle veranschaulichten Operationen durchgeführt werden müssen, um das gewünschte Ergebnis zu erzielen. Multitasking und Parallelverarbeitung können unter Umständen von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Implementierungen nicht so verstanden werden, dass sie eine solche Trennung in allen Implementierungen erfordert, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert oder in ein Paket mehrerer Softwareprodukte gepackt werden können.Similarly, while operations are depicted in the drawings in a particular order, it should not be understood that such operations must be performed in the particular order shown, or in sequential order, or all of the operations illustrated, to achieve the desired result. Multitasking and parallel processing can be beneficial. Furthermore, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems are generally integrated together in a single software product or in a package multiple software products can be packaged.

Somit wurden bestimmte Implementierungen des Gegenstands beschrieben. Andere Implementierungen liegen im Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen genannten Maßnahmen in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Außerdem erfordern die in den begleitenden Figuren dargestellten Prozesse nicht unbedingt die gezeigte besondere Reihenfolge oder sequentielle Reihenfolge, um die gewünschten Ergebnisse zu erzielen. Bei bestimmten Implementierungen kann Multitasking oder Parallelverarbeitung verwendet werden.Thus, certain implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the measures recited in the claims can be carried out in a different order and still achieve desirable results. In addition, the processes illustrated in the accompanying figures do not necessarily require the particular order or sequential order shown in order to achieve the desired results. In certain implementations, multitasking or parallel processing can be used.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • US 2019/037959 [0001]US 2019/037959 [0001]

Claims (27)

Decodierer für ein Wasserzeichensystem, wobei der Decodierer konfiguriert ist, um: von einem Client-Gerät ein Paket zu empfangen, umfassend (i) einen Screenshot eines Bildes, das von dem Client-Gerät angezeigt wird, wobei das Bild mit einem Wasserzeichen versehen ist, das mit Metadaten, die mit dem Bild verknüpft sind, verknüpft ist und (ii) Metadaten, die mit dem Screenshot des Bildes verknüpft sind; aus dem Paket die Metadaten, die mit dem Screenshot des Bildes und der Zeichenfolge verbunden sind, zu extrahieren; eine Kennung aus der Zeichenfolge unter Verwendung eines Teils der Metadaten, die mit dem Screenshot des Bildes verknüpft sind, zu decodieren, wobei die Kennung Metadaten umfasst, die mit dem Bild verknüpft sind; und die Lieferung eines dem Bild zugeordneten Inhaltselements als Reaktion auf den decodierten Identifizierer zu verfolgen.A decoder for a watermarking system, the decoder configured to: receive from a client device a packet comprising (i) a screenshot of an image displayed by the client device, the image having a watermark associated with metadata associated with the image and (ii) metadata associated with the screenshot of the image; extract from the package the metadata associated with the screenshot of the image and the string; decode an identifier from the character string using a portion of the metadata associated with the screenshot of the image, the identifier comprising metadata associated with the image; and track the delivery of an item of content associated with the image in response to the decoded identifier. System nach Anspruch 1, wobei die dem Screenshot des Bildes zugeordneten Metadaten einen Zeitstempel des Screenshots des Bildes umfassen, und wobei die decodierte Kennung einen Zeitstempel des Bildes umfasst.System according to Claim 1 wherein the metadata associated with the screenshot of the image comprises a time stamp of the screenshot of the image, and wherein the decoded identifier comprises a time stamp of the image. System nach Anspruch 2, wobei der Decodierer konfiguriert ist, um den Zeitstempel des Screenshots des Bildes aus einem Header des Pakets, das den Screenshot des Bildes und die Metadaten, die dem Screenshot des Bildes zugeordnet sind, umfasst, zu extrahieren.System according to Claim 2 wherein the decoder is configured to extract the timestamp of the screenshot of the image from a header of the packet that includes the screenshot of the image and the metadata associated with the screenshot of the image. System nach Anspruch 2 oder 3, wobei die Zeichenfolge eine Teilmenge des Zeitstempels des Bildes umfasst.System according to Claim 2 or 3 , wherein the string comprises a subset of the timestamp of the image. System nach Anspruch 4, wobei der Decodierer konfiguriert ist, um die Kennung aus der Zeichenfolge zu decodieren, indem ein Teil des Zeitstempels des Screenshots des Bildes mit der Teilmenge des Zeitstempels des Bildes verkettet wird.System according to Claim 4 wherein 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. System nach Anspruch 4 oder Anspruch 5, wobei die Zeichenfolge eine Anzahl von Fehlerkorrekturbits, die größer als eine Differenz zwischen einer Länge des Zeitstempels des Bildes und einer Länge der Teilmenge des Zeitstempels des Bildes ist, umfasst.System according to Claim 4 or Claim 5 wherein the character string comprises a number of error correction bits greater than a difference between a length of the time stamp of the image and a length of the subset of the time stamp of the image. System nach einem der vorhergehenden Ansprüche, wobei der Decodierer konfiguriert ist, um die Kennung aus der Zeichenfolge zu decodieren, indem der Teil der Metadaten, der dem Screenshot des Bildes zugeordnet ist, mit einem vorbestimmten Offset kombiniert wird.The system of any preceding claim, wherein the decoder is configured to decode the identifier from the character string by combining the portion of the metadata associated with the screenshot of the image with a predetermined offset. System nach Anspruch 7, wobei der Decodierer so konfiguriert ist, dass er die Kennung aus der Zeichenfolge durch iteratives Kombinieren des Abschnitts der Metadaten, der dem Screenshot des Bildes zugeordnet ist, mit einem Vielfachen des vorbestimmten Versatzes bis zum erfolgreichen Decodieren der Kennung decodiert.System according to Claim 7 wherein the decoder is configured to decode the identifier from the character string by iteratively combining the portion of the metadata associated with the screenshot of the image with a multiple of the predetermined offset until the identifier is successfully decoded. System nach einem der vorhergehenden Ansprüche, wobei die Zeichenfolge eine Adresse eines Inhaltsservers, der das mit der Zeichenfolge mit einem Wasserzeichen versehene Bild erzeugt hat, umfasst.The system of any preceding claim, wherein the character string comprises an address of a content server that generated the watermarked image with the character string. System nach Anspruch 9, wobei die Zeichenfolge eine Kennung eines Prozesses des Inhaltsservers umfasst, der das mit der Zeichenfolge mit einem Wasserzeichen versehene Bild erzeugt hat.System according to Claim 9 wherein the character string comprises an identifier of a process of the content server that generated the watermarked image with the character string. Verfahren zum Anbringen von Wasserzeichen, umfassend: Empfangen eines Pakets durch einen Decodierer eines Geräts von einem Client-Gerät, wobei das Paket umfasst (i) einen Screenshot eines Bildes, das von dem Client-Gerät angezeigt wird, das Bild mit einem Wasserzeichen versehen, das mit Metadaten, die mit dem Bild verknüpft sind, verknüpft ist und (ii) mit dem Bild verknüpften Metadaten der Screenshot des Bildes; Extrahieren durch den Decodierer aus dem Paket der Metadaten, die dem Screenshot des Bildes und der Zeichenfolge zugeordnet sind; Verwenden eines Teils der Metadaten, die dem Screenshot des Bildes zugeordnet sind, Decodieren einer Kennung aus der Zeichenfolge durch den Decodierer, wobei die Kennung Metadaten umfasst, die mit dem Bild verbunden sind; und Verfolgen, durch den Decodierer, der Lieferung eines Inhaltselements, das dem Bild zugeordnet ist, ansprechend auf die decodierte Kennung.A method of applying watermarks comprising: Receiving a packet by a decoder of a device from a client device, the packet comprising (i) a screenshot of an image displayed by the client device, watermarking the image having metadata associated with the image is linked, is linked and (ii) metadata linked to the image is the screenshot of the image; Extracting, by the decoder, from the packet the metadata associated with the screenshot of the image and the string; Using a portion of the metadata associated with the screenshot of the image, the decoder decoding an identifier from the character string, the identifier comprising metadata associated with the image; and Tracking, by the decoder, the delivery of an item of content associated with the image in response to the decoded identifier. Verfahren nach Anspruch 11, wobei die dem Screenshot des Bilds zugeordneten Metadaten einen Zeitstempel des Screenshots des Bildes umfassen, und wobei die decodierte Kennung einen Zeitstempel des Bildes umfasst.Procedure according to Claim 11 wherein the metadata associated with the screenshot of the image comprises a time stamp of the screenshot of the image, and wherein the decoded identifier comprises a time stamp of the image. Verfahren nach Anspruch 12, ferner umfassend das Extrahieren des Zeitstempels des Screenshots des Bildes durch den Decodierer aus einem Header des Pakets, das den Screenshot des Bildes umfasst.Procedure according to Claim 12 , further comprising extracting, by the decoder, the timestamp of the screenshot of the image from a header of the packet comprising the screenshot of the image. Verfahren nach 12 oder 13, wobei die Zeichenfolge eine Teilmenge des Zeitstempels des Bildes umfasst.Method according to 12 or 13, wherein the character string comprises a subset of the time stamp of the image. Verfahren nach Anspruch 14, wobei das Decodieren der Kennung aus der Zeichenfolge ferner das Verketten eines Teils des Zeitstempels des Screenshots des Bildes mit der Teilmenge des Zeitstempels des Bildes umfasst.Procedure according to Claim 14 wherein decoding the identifier from the character string further comprises concatenating a portion of the timestamp of the screenshot of the image with the subset of the timestamp of the image. Verfahren nach Anspruch 14 oder Anspruch 15, wobei die Zeichenfolge eine Anzahl von Fehlerkorrekturbits, die größer als eine Differenz zwischen einer Länge des Zeitstempels des Bildes und einer Länge der Teilmenge des Zeitstempels des Bildes ist, umfasst.Procedure according to Claim 14 or Claim 15 wherein the character string comprises a number of error correction bits greater than a difference between a length of the time stamp of the image and a length of the subset of the time stamp of the image. Verfahren nach einem der Ansprüche 11 bis 16, wobei das Decodieren des Identifizierers aus der Zeichenfolge ferner das Kombinieren des Abschnitts der Metadaten, der dem Screenshot des Bildes zugeordnet ist, mit einem vorbestimmten Offset umfasst.Method according to one of the Claims 11 until 16 wherein decoding the identifier from the string further comprises combining the portion of the metadata associated with the screenshot of the image with a predetermined offset. Verfahren nach Anspruch 17, wobei das Decodieren des Identifizierers aus der Zeichenfolge ferner das iterative Kombinieren des Abschnitts der Metadaten, der dem Screenshot des Bildes zugeordnet ist, mit einem Vielfachen des vorbestimmten Offsets umfasst, bis der Identifizierer erfolgreich dekodiert wird.Procedure according to Claim 17 wherein decoding the identifier from the string further comprises iteratively combining the portion of the metadata associated with the screenshot of the image with a multiple of the predetermined offset until the identifier is successfully decoded. Verfahren nach einem der Ansprüche 11 bis 18, wobei die Zeichenfolge eine Adresse eines Inhaltsservers, der das mit der Zeichenfolge mit einem Wasserzeichen versehene Bild erzeugt hat, umfasst.Method according to one of the Claims 11 until 18th wherein the character string comprises an address of a content server that generated the watermarked image with the character string. Verfahren nach Anspruch 19, wobei die Zeichenfolge eine Kennung eines Prozesses des Inhaltsservers, der das mit der Zeichenfolge mit einem Wasserzeichen versehene Bild erzeugt hat, umfasst.Procedure according to Claim 19 wherein the character string comprises an identifier of a process of the content server that generated the watermarked image with the character string. Computerlesbares Medium, das Anweisungen umfasst, die, wenn sie von einem Computergerät ausgeführt werden, das Computergerät veranlassen, das Verfahren nach einem der Ansprüche 11 bis 20 durchzuführen.A computer readable medium comprising instructions that, when executed by a computing device, cause the computing device to use the method of any of the Claims 11 until 20th perform. Wasserzeichensystem, umfassend: ein Codierer eines Geräts, der konfiguriert ist, um: ein Bild und mit dem Bild verknüpfte Metadaten zu erhalten, eine Zeichenfolge aus einer Teilmenge der mit dem Bild verknüpften Metadaten zu generieren, ein Wasserzeichen aus der Zeichenfolge zu codieren und das Wasserzeichen in das Bild einzubetten; wobei ein Decodierer des Geräts oder ein zweites Gerät von einem Client-Gerät ein Paket empfängt, umfassend (i) einen Screenshot des von dem Client-Gerät angezeigten Bildes, das Bild mit einem Wasserzeichen mit der Zeichenfolge, die aus der Teilmenge der dem Bild zugeordneten Metadaten generiert wurde, versehen ist, und (ii) dem Screenshot zugeordneten Metadaten des Bildes; aus dem Paket, das den Screenshot des von dem Client-Gerät angezeigten Bildes extrahiert und die, mit dem Screenshot des Bilds verknüpften Metadaten, die Zeichenfolge und zusätzliche Metadaten, die mit dem Screenshot des Bildes verknüpft sind, umfasst; unter Verwendung eines Teils der zusätzlichen Metadaten, die dem Screenshot des Bildes zugeordnet sind, eine Kennung aus der Zeichenfolge decodiert, wobei die Kennung einen Teil der dem Bild zugeordneten Metadaten umfasst; und die Lieferung eines dem Bild zugeordneten Inhaltselements als Reaktion auf die decodierte Kennung verfolgt.Watermarking system comprising: an encoder of a device configured to: receive an image and metadata associated with the image, generate a string from a subset of the metadata associated with the image, encode a watermark from the string and embed the watermark in the image; being a decoder of the device or a second device receives a packet from a client device comprising (i) a screenshot of the image displayed by the client device, the image is watermarked with the character string generated from the subset of the metadata associated with the image, and ( ii) metadata of the image associated with the screenshot; from the package that extracts the screenshot of the image displayed by the client device and includes the metadata associated with the screenshot of the image, the string and additional metadata associated with the screenshot of the image; using part of the additional metadata assigned to the screenshot of the image, decoding an identifier from the character string, the identifier comprising a portion of the metadata assigned to the image; and tracks the delivery of an item of content associated with the image in response to the decoded identifier. System nach Anspruch 22, wobei die dem Bild zugeordneten Metadaten einen Zeitstempel des Bildes umfassen, und wobei die zusätzlichen Metadaten einen Zeitstempel des Screenshots des Bildes durch das Client-Gerät umfassen.System according to Claim 22 wherein the metadata associated with the image comprises a time stamp of the image, and wherein the additional metadata comprises a time stamp of the screenshot of the image by the client device. System nach Anspruch 22 oder 23, wobei der Codierer des Geräts konfiguriert ist, um die Zeichenfolge aus einer vorbestimmten Anzahl niedrigstwertiger Bits der dem Bild zugeordneten Metadaten zu erzeugen.System according to Claim 22 or 23 wherein the encoder of the device is configured to generate the character string from a predetermined number of least significant bits of the metadata associated with the image. Verfahren zum Anbringen von Wasserzeichen, umfassend: Empfangen durch einen Codierer eines Geräts eines Bildes und von Metadaten, die dem Bild zugeordnet sind; Erzeugen durch den Codierer einer Zeichenfolge aus einer Teilmenge der dem Bild zugeordneten Metadaten; Codieren durch den Codierer eines Wasserzeichens aus der Zeichenfolge; und Einbetten durch den Codierer des Wasserzeichens in das Bild; wobei ein Decodierer des Geräts oder eines zweites Gerätes von einem Client-Gerät ein Paket empfängt, umfassend (i) einen Screenshot des von dem Client-Gerät angezeigten Bildes, das Bild, das mit einem Wasserzeichen mit der Zeichenfolge, die aus der Teilmenge der dem Bild zugeordneten Metadaten generiert wurde, versehen ist, und (ii) dem Screenshot zugeordneten Metadaten des Bildes; aus dem Paket, das den Screenshot des von der Client-Vorrichtung angezeigten Bildes extrahiert und die, mit dem Screenshot des Bildes verknüpften Metadaten, die Zeichenfolge und zusätzliche Metadaten, die mit dem Screenshot des Bildes verknüpft sind, umfasst; unter Verwendung eines Teils der zusätzlichen Metadaten, die dem Screenshot des Bildes zugeordnet sind, eine Kennung aus der Zeichenfolge decodiert, wobei die Kennung einen Teil der dem Bild zugeordneten Metadaten umfasst; und die Lieferung eines dem Bild zugeordneten Inhaltselements als Reaktion auf die decodierte Kennung verfolgt.A method of applying watermarks, comprising: receiving, by an encoder of a device, an image and metadata associated with the image; Generating, by the encoder, a character string from a subset of the metadata associated with the image; Encoding, by the encoder, a watermark from the character string; and embedding, by the encoder, the watermark in the image; wherein a decoder of the device or a second device receives from a client device a packet comprising (i) a screenshot of the image displayed by the client device, the image that is watermarked with the character string selected from the subset of the Metadata associated with the image has been generated, is provided, and (ii) metadata of the image associated with the screenshot; from the package that extracts the screen shot of the image displayed by the client device and includes the metadata associated with the screen shot of the image, the character string and additional metadata associated with the screen shot of the image; using part of the additional metadata assigned to the screenshot of the image, decoding an identifier from the character string, the identifier comprising a portion of the metadata assigned to the image; and track delivery of an item of content associated with the image in response to the decoded identifier. Verfahren nach Anspruch 25, wobei die dem Bild zugeordneten Metadaten einen Zeitstempel des Bildes umfassen, und wobei die zusätzlichen Metadaten einen Zeitstempel des Screenshots des Bildes durch das Client-Gerät umfassen.Procedure according to Claim 25 wherein the metadata associated with the image comprises a time stamp of the image, and wherein the additional metadata comprises a time stamp of the screenshot of the image by the client device. Verfahren nach Anspruch 25 oder 26, das ferner das Erzeugen der Zeichenfolge aus einer vorbestimmten Anzahl von niedrigstwertigen Bits der dem Bild zugeordneten Metadaten umfasst.Procedure according to Claim 25 or 26th further comprising generating the character string from a predetermined number of least significant bits of the metadata associated with the image.
DE112020000150.4T 2019-06-19 2020-06-18 IMPROVED IMAGE WATERMARKS Pending DE112020000150T5 (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 (1)

Publication Number Publication Date
DE112020000150T5 true DE112020000150T5 (en) 2021-08-26

Family

ID=67138214

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000150.4T Pending DE112020000150T5 (en) 2019-06-19 2020-06-18 IMPROVED IMAGE WATERMARKS

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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190037959A1 (en) 2017-08-04 2019-02-07 Nike, Inc. Article of footwear having a knitted component with a forefoot portion and a heel portion

Family Cites Families (9)

* 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
WO2014014252A1 (en) 2012-07-16 2014-01-23 Lg Electronics Inc. Method and apparatus for processing digital service signals
KR101801590B1 (en) * 2013-12-03 2017-11-27 엘지전자 주식회사 Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
WO2016086047A1 (en) * 2014-11-25 2016-06-02 Verance Corporation Enhanced metadata and content delivery using watermarks
US10779057B2 (en) * 2015-06-08 2020-09-15 Qualcomm Incorporated Broadcast content redistribution and ad insertion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190037959A1 (en) 2017-08-04 2019-02-07 Nike, Inc. Article of footwear having a knitted component with a forefoot portion and a heel portion

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
JP7225403B2 (en) 2023-02-20
JP2022532814A (en) 2022-07-20
KR20210079362A (en) 2021-06-29
KR102578027B1 (en) 2023-09-13

Similar Documents

Publication Publication Date Title
DE112012000853B4 (en) Discovering, recognizing and bookmarking faces in videos
DE112018005628T5 (en) Data cleansing system for a public host platform
DE112020000150T5 (en) IMPROVED IMAGE WATERMARKS
DE112020000091T5 (en) Systems and methods for maintaining privacy by determining the interfaces of sets of user identifications
DE202016006110U1 (en) Extension of the field of view of photography
DE102016204698A1 (en) Improving the detection of steganography at the perimeter
DE102017125463A1 (en) USING MASCHINELLE LEARNING TO DETECT AN IMAGE COMPONENT IN A COMPOSITE IMAGE
DE112016002252T5 (en) AUTOMATIC DETECTION OF PANORAMIC STAMPS
EP2639738A1 (en) Method and reader for recording a number of two-dimensional codes displayed one after the other on a display device
DE102020007344A1 (en) Secure audio watermarking based on neural networks
DE112021006157T5 (en) VIDEO CODING USING NON-SALIENCY COMPRESSION FOR LIVE STREAMING OF HIGH-RESOLUTION VIDEO IN A LOW-BANDWIDTH TRANSMISSION
DE602005002696T2 (en) Detection of changes in digital data using sensitive watermark
DE112015001607T5 (en) Orthogonal data organization for error detection and correction in serial video interfaces
DE112012002626B4 (en) Systems, methods, and media for controlling a presentation of data images in a video stream
DE102013219088B9 (en) Circuit arrangement and method for realizing check bit compaction for cross-parity codes
US20220092721A1 (en) Improved image watermarking
DE112020001299T5 (en) Low-lag defusing and restoring the content (CDR) of a live streaming video
EP2122569B1 (en) Method for marking a digital image with a digital watermark
DE112012004366T5 (en) INTERFACE FOR USE WITH A VIDEO COMPRESSION SYSTEM AND METHOD USING DIFFERENTIATION AND CLUSTER EDUCATION
DE10229976B4 (en) Method for encrypting and decrypting digital data transmitted or stored according to the method of prioritized pixel transmission
Agarwal et al. A content-adaptive median filtering detection using Markov transition probability matrix of pixel intensity residuals
DE102016125593A1 (en) Dynamic coding mode for reference motion vectors
DE102020113302A1 (en) System and method for authenticating audiovisual units
Schmitz et al. Mediensicherheit
WO2005104559A1 (en) Prediction method and corresponding method for decoding a prediction method, corresponding encoding and decoding devices

Legal Events

Date Code Title Description
R012 Request for examination validly filed