Modification of the detected content item

By selecting the appropriate attribute set and watermarking technology, embedding the attribute value or identifier of the content item, the problem of difficult to detect content item modification in the prior art is solved, and effective detection of content item modification and watermark robustness are achieved.

CN114357392BActive Publication Date: 2025-06-27IRDETO BV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111198939.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-10-14
Filing Date
2021-10-14
Publication Date
2025-06-27
Estimated Expiration
2041-10-14

AI Technical Summary

Technical Problem

The prior art is difficult to effectively detect modifications of content items, especially after the content items have undergone subsequent processing or modifications, the watermark payload is difficult to be successfully decoded.

Method used

By selecting a set of one or more attributes, it is able to detect modifications of a predetermined type, obtain the corresponding value of its attributes for the content item, and watermark the content item, embed the payload data into the content item, including the value of the attribute or an identifier used to retrieve the attribute value.

Benefits of technology

Effective detection of content item modifications is realized, and it is possible to determine whether a predetermined type of modification has been applied, which improves the robustness of the watermark and the accuracy of detection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114357392B_ABST
    Figure CN114357392B_ABST
Patent Text Reader

Abstract

A method for detecting a modification of a content item, the method comprising: for the content item, obtaining a respective first value of each attribute in a set of one or more attributes of the content item, the set of one or more attributes being selected such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; performing a watermark decoding operation on the content item; and in response to the watermark decoding operation generating payload data from the content item: if for each attribute in the set of one or more attributes, the respective first value of that attribute matches the respective second value of that attribute determined using the payload, determining that the one or more predetermined types of modification have not been applied to the content item; or if for at least one attribute in the set of one or more attributes, the respective first value of that attribute does not match the respective second value of that attribute determined using the payload, determining that a modification has been applied to the content item.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for enabling the detection of modifications to a content item, a method for detecting modifications to a content item, and a system and a computer program for performing such methods. Background Art

[0002] Digital watermarking of content is well known. Herein, the term "content" or "content item" may refer to any type of information and may include, for example, one or more of audio data, image data, video data, text data, multimedia data, web pages, software products, security keys, experimental data, or any other kind of data. There are many methods for digitally watermarking content, but generally they all involve adding a watermark to the content item. This involves embedding or adding a watermark payload (or watermark symbol, or watermark codeword, or payload data) into the original content item to form a watermarked content item. The watermarked content item can then be distributed to one or more users (or recipients or receivers).

[0003] The method for adding a watermark to a content item depends on the intended purpose of the watermark. Some watermarking techniques are designed to be "robust" in the sense that the embedded watermark payload can be successfully decoded even if the watermarked content item has undergone subsequent processing (malicious or otherwise). Some watermarking techniques are designed to be "fragile" in the sense that if the watermarked content item has undergone subsequent processing or modification, the embedded watermark payload cannot be successfully (or fully) decoded. Some watermarking techniques are designed such that the difference between the original content item and the watermarked content item is substantially imperceptible to a human user (e.g., the original content item and the watermarked content item are visually and / or aurally indistinguishable to a human user). There are other criteria for how to add a watermark to a content item. Summary of the Invention

[0004] According to a first aspect of the present invention, there is provided a method for enabling the detection of modifications to a content item, the method comprising: for the content item, obtaining a respective value for each attribute in a set of one or more attributes of the content item, the set of one or more attributes being selected such that for each of one or more predetermined types of modifications, the type of modification affects the value of at least one attribute in the set of one or more attributes; and watermarking the content item to embed payload data within the content item, wherein the payload data comprises: (a) the respective value for each attribute in the set of one or more attributes and / or (b) an identifier for retrieving the respective value for each attribute in the set of one or more attributes from a storage device.

[0005] The method may further include: storing a respective value of each of the one or more attributes in a storage device.

[0006] According to a second aspect of the present invention, there is provided a method for detecting a modification of a content item, the method comprising: for the content item, obtaining a respective first value of each of one or more attributes of the content item, the one or more attributes being selected such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one of the one or more attributes; performing a watermark decoding operation on the content item; and in response to the watermark decoding operation generating payload data from the content item: if for each of the one or more attributes, the respective first value of that attribute matches the respective second value of that attribute determined using the payload, determining that none of the one or more predetermined types of modification has been applied to the content item; or if for at least one of the one or more attributes, the respective first value of that attribute does not match the respective second value of that attribute determined using the payload, determining that a modification has been applied to the content item.

[0007] Determining that a modification has been applied to the content item may include: if for at least one of the one or more attributes, the respective first value of that attribute does not match the respective second value of that attribute determined using the payload, determining that at least one of the one or more predetermined types of modification has been applied to the content item.

[0008] The respective first value of an attribute may match the respective second value of that attribute if any of the following: (a) the first value is equal to the second value; or (b) the difference between the first value and the second value is less than a predetermined threshold.

[0009] The method may further include: using the payload data to obtain from a storage device a respective second value of each of the one or more attributes of the content item. The payload data may then include an identifier of a record in a database that stores the respective second value of each of the one or more attributes of the content item.

[0010] For the first and second aspects, the one or more predetermined types of modification may include one or more of the following: (a) a change in the standard or format of the content item; (b) a change to the content of the content item.

[0011] According to a third aspect of the present invention, there is provided a system for enabling detection of a modification to a content item, the system comprising one or more processors arranged to: for the content item, obtain a respective value for each attribute in a set of one or more attributes of the content item, the set of one or more attributes being selected such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; and watermark the content item to embed payload data within the content item, wherein the payload data comprises: (a) the respective value for each attribute in the set of one or more attributes and / or (b) an identifier for retrieving the respective value for each attribute in the set of one or more attributes from a storage device.

[0012] The system may further be arranged to: store the respective value for each attribute in the set of one or more attributes in a storage device.

[0013] According to a fourth aspect of the present invention, there is provided a system for detecting a modification to a content item, the system comprising one or more processors arranged to: for the content item, obtain a respective first value for each attribute in a set of one or more attributes of the content item, the set of one or more attributes being selected such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; perform a watermark decoding operation on the content item; and in response to the watermark decoding operation generating payload data from the content item: if for each attribute in the set of one or more attributes, the respective first value of that attribute matches the respective second value of that attribute determined using the payload, determine that none of the one or more predetermined types of modification have been applied to the content item; or if for at least one attribute in the set of one or more attributes, the respective first value of that attribute does not match the respective second value of that attribute determined using the payload, determine that a modification has been applied to the content item.

[0014] Determining that a modification has been applied to the content item may include: if for at least one attribute in the set of one or more attributes, the respective first value of that attribute does not match the respective second value of that attribute determined using the payload, determine that at least one of the one or more predetermined types of modification has been applied to the content item.

[0015] The respective first value of an attribute may match the respective second value of that attribute if any of the following: (a) the first value is equal to the second value; or (b) the difference between the first value and the second value is less than a predetermined threshold.

[0016] The system may further be arranged to: use the payload data to obtain a respective second value for each attribute in a set of one or more attributes of the content item from a storage device. The payload data may then include an identifier of a record in a database that stores the respective second value for each attribute in the set of one or more attributes of the content item.

[0017] For the third and fourth aspects, the one or more predetermined types of modification may include one or more of the following: (a) a change in the standard or format of the content item; (b) a change to the content of the content item.

[0018] According to a fifth aspect of the invention, there is provided a computer program which, when executed by one or more processors, causes the one or more processors to perform the method according to the first or second aspect or any embodiment thereof. The computer program may be stored on a computer-readable medium. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0020] Figure 1 schematically illustrates an example of a computer system;

[0021] Figure 2 schematically illustrates a watermarking system according to some embodiments of the invention;

[0022] Figure 3a and 3b is a flow chart illustrating a method performed by a watermark embedding system according to some embodiments of the invention;

[0023] Figure 4a and 4b is a flow chart illustrating a method performed by a watermark decoding system according to some embodiments of the invention; and

[0024] Figure 5 schematically illustrates another watermarking system according to some embodiments of the invention. DETAILED DESCRIPTION

[0025] In the following description and in the figures, certain embodiments of the invention are described. However, it will be appreciated that the invention is not limited to the described embodiments and that some embodiments may not include all of the features described below. However, it will be apparent that various modifications and changes can be made herein without departing from the broader spirit and scope of the invention as set forth in the appended claims.

[0026] Figure 1Schematically illustrates an example of a computer system 100. The system 100 includes a computer 102. The computer 102 includes: a storage medium 104, a memory 106, a processor 108, an interface 110, a user output interface 112, a user input interface 114, and a network interface 116, which may be linked together by one or more communication buses 118.

[0027] The storage medium 104 can be any form of non-volatile data storage device, such as one or more of a hard disk drive, a magnetic disk, a solid-state storage device, an optical disk, a ROM, etc. The storage medium 104 can store an operating system for execution by the processor 108 for the computer 102 to operate. The storage medium 104 can also store one or more computer programs (or software or instructions or code).

[0028] The memory 106 can be any random access memory (storage cell or volatile storage medium) suitable for storing data and / or computer programs (or software or instructions or code).

[0029] The processor 108 can be any data processing unit suitable for executing one or more computer programs (such as those stored on the storage medium 104 and / or in the memory 106), some of which can be computer programs according to embodiments of the present invention, or computer programs that cause the processor 108 to execute a method according to embodiments of the present invention and configure the system 100 as a system according to embodiments of the present invention when executed by the processor 108. The processor 108 can include a single data processing unit or multiple data processing units that operate in parallel, separately, or in cooperation with each other. In performing data processing operations according to embodiments of the present invention, the processor 108 can store data to and / or read data from the storage medium 104 and / or the memory 106.

[0030] The interface 110 can be any unit for providing an interface to a device 122 that is external to and / or removable from the computer 102. The device 122 can be a data storage device, for example, one or more of an optical disk, a magnetic disk, a solid-state storage device, etc. The device 122 can have processing capabilities - for example, the device can be a smart card. The device 122 can generate data for supply to the computer 102 via the interface 110 - for example, the device 122 can include a microphone for generating and providing audio input, and / or a camera for generating and providing image / video input. Thus, the interface 110 can access data from the device 122, or provide data to the device 122, or interface with the device 122 according to one or more commands it receives from the processor 108.

[0031] The user input interface 114 is arranged to receive input from a user or operator of the system 100. The user may provide this input via one or more input devices of the system 100, which are such as a mouse (or other pointing device) 126 and / or a keyboard 124 that are connected to or communicate with the user input interface 114. However, it will be appreciated that the user may provide input to the computer 102 via one or more additional or alternative input devices (such as a touch screen). The computer 102 may store the input received from the input devices via the user input interface 114 in the memory 106 for subsequent access and processing by the processor 108, or may pass it directly to the processor 108 such that the processor 108 can respond to the user input accordingly.

[0032] The user output interface 112 is arranged to provide graphical / visual and / or audio output to a user or operator of the system 100. Thus, the processor 108 may be arranged to instruct the user output interface 112 to form an image / video signal representing a desired graphical output, and provide this signal to a monitor (or screen or display unit) 120 of the system 100 that is connected to the user output interface 112. Additionally or alternatively, the processor 108 may be arranged to instruct the user output interface 112 to form an audio signal representing a desired audio output, and provide this signal to one or more speakers 121 of the system 100 that are connected to the user output interface 112.

[0033] Finally, the network interface 116 provides the computer 102 with the function of downloading data from and / or uploading data to one or more data communication networks.

[0034] It will be appreciated that the architecture of the system 100 illustrated and described above Figure 1 is merely exemplary, and in embodiments of the present invention, other computer systems 100 with different architectures (e.g., having fewer components than Figure 1 shown, or having additional and / or alternative components compared to Figure 1 shown) may be used. By way of example, the computer system 100 may include one or more of the following: a personal computer; a server computer; a mobile phone; a tablet computer; a laptop computer; a television; a set-top box; a game console; other mobile devices or consumer electronic devices; etc. It is possible that the components of the computer system 100 may be distributed across multiple devices, for example, some of the components may be located in the cloud or other computer networks; some of the components may be located in peripheral devices (such as mobile phones, smartphones, and smartwatches); etc.

[0035] Figure 2Schematically illustrates a watermarking system 200 according to some embodiments of the present invention. The watermarking system 200 includes a watermark embedding system 210 (or watermark embedder or encoder) and a watermark decoding system 260 (or watermark detector). The watermark embedding system 210 and the watermark decoding system 260 may take the form of one or more computer systems 100 as shown in Figure 1 However, it will be appreciated that this is merely an example. In fact, the watermark embedding system 210 and the watermark decoding system 260 may be implemented on the same computer system 100 and / or may be operated by the same entity, and may thus be regarded as a combined watermark embedding and decoding system, as illustrated by the dashed line 205 in Figure 2 . However, it will be appreciated that the watermark embedding system 210 and the watermark decoding system 260 may be implemented on different computer systems 100 and / or may be operated by different entities, and may thus be regarded as separate systems.

[0036] The watermark embedding system 210 includes a watermarking module 212. The watermarking module 212 includes a payload generation module 213 and an embedding module 214. The watermarking module 212 may be implemented as software executed on a processor 108 of a computer system 100, for example, as part of (or forming) the watermark embedding system 210, or as a hardware module of the watermark embedding system 210, or as a combination of both software and hardware. In operation, the watermarking module 212 is arranged to receive (or obtain or input) an initial content item 220 and embed a payload within the content item 220 to generate a watermarked content item 230. The payload generation module 213 is arranged to generate a payload based on the initial content item 220. The embedding module 214 is arranged to embed the payload generated by the payload generation module 213 into the initial content item 220 to form a watermarked content item 230.

[0037] The nature of the payload will be described later, and the method for embedding the payload (i.e., the watermark embedding algorithm) will also be described later.

[0038] The watermarking module 212 may utilize control data (or parameters or configuration settings) 240 to control or configure the watermarking module 212, such as controlling the method by which the payload generation module 213 forms the payload and / or the method by which the embedding module 214 embeds the payload into the initial content item 220. However, it will be appreciated that some or all of these aspects / configurations of the watermarking module 212 may be pre-configured / pre-determined without the need for control data 240.

[0039] Thus, in summary, the watermark embedding system 210 forms the watermarked content item 230 from the initial content item 220, where the watermarked content item 230 includes (or has embedded therein) a watermark that represents (or is embedded or encoded or corresponds to) some payload data.

[0040] In some embodiments, the watermark embedding system 210 itself may generate some or all of the initial content item 220 and may thus include a content generator 215. For example, the content generator 215 may include one or more cameras. Thus, for example, the watermark embedding system 210 may be a vehicle “dashcam” system that includes one or more cameras that generate video content 220 when the vehicle is operated, where the watermarking module 212 watermarks the video content 220 when the video content 220 is captured to generate the watermarked content 230. As another example, the content generator 215 may include one or more microphones. The watermarking module 212 may then watermark the audio content 220 when the audio content 220 is captured by one or more microphones to generate the watermarked content 230.

[0041] Additionally or alternatively, the watermark embedding system 210 may receive the initial content item 220 from a source ( Figure 2 not shown) external to the watermark embedding system 210 — thus, the watermark embedding system 210 may include an input 216 for receiving the initial content item 220 from the source.

[0042] The watermark embedding system 210 may store the watermarked content item 230 in a storage device (or memory) 250. The storage device 250 may be part of the watermark embedding system 210 or, as Figure 2 shown, may be external to the watermark embedding system 210. Additionally or alternatively, the watermark embedding system 210 may transmit (or transfer or provide) the watermarked content item 230, for example, via one or more networks 252 to a third party ( Figure 2 not shown). The one or more networks 252 may include, for example, one or more of the following: the Internet, a wide area network, a local area network, a metropolitan area network, a wireless network, a broadcast network, a telephone network, a cable network, a satellite network, etc. As Figure 2 shown, in some embodiments, the watermark embedding system 210 may store the watermarked content item 230 in a storage device (or memory) 250, where the watermarked content item 230 is subsequently transmitted (or transferred or provided), for example, via one or more networks 252 to a third party ( Figure 2 not shown).

[0043] The watermark decoding system 260 includes a watermark decoding module 262. The watermark decoding module 262 includes a content analysis module 263 and a payload analysis module 264. The watermark decoding module 262 can be implemented as software executed on a processor 108 of a computer system 100 that is, for example, part of (or forms) the watermark decoding system 260, or as a hardware module of the watermark decoding system 260, or as a combination of both software and hardware.

[0044] In operation, the watermark decoding module 262 receives (or obtains or inputs) a content item 270 to be “tested” (or processed or analyzed), which is referred to herein as the test content item 270 for simplicity. In practice, the test content item 270 will typically be a version of the watermarked content item 230. In particular, the test content item 270 can be (directly or indirectly) obtained from the watermark embedding system 210 (e.g., via the network 252 or from the storage device 250), which may be via one or more third parties to whom the watermarked content item 230 was initially or subsequently provided. It is possible that the watermarked content item 230 may undergo one or more amounts of processing 290 before being provided as input to the watermark decoding system 260, and thus the test content item 270 may not be exactly the same as the watermarked content item 230. Such processing 290 can include, for example: data compression; insertion of additional data; deletion of data; alteration of data values; format or standard conversion; etc. For example, if the watermarked content item 230 includes a video sequence, the processing 290 can include one or more of the following: deletion of video frames / fields; insertion of video frames / fields; alteration of the frame rate; reordering of frames; alteration of the pixel values of frames; data compression; change from one video format to another; color conversion; cropping; one or more geometric transformations such as rotation, stretching, shearing, etc. The processing 290 can be part of the natural process flow of the watermarked content item 230 (e.g., compression as part of data communication between different entities). Additionally or alternatively, the processing 290 can be malicious, as an attacker may have processed or modified the watermarked content item 230 in order to achieve unauthorized goals. However, it is possible that the watermarked content item 230 has not undergone any processing 290 before being provided as input to the watermark decoding system 260, and thus the test content item 270 can be the same as the watermarked content item 230.

[0045] The purpose of the watermark decoding system 260 is to detect modifications to the content item. In particular, the watermark decoding system 260 is designed to determine whether one or more predetermined types of modifications have been applied to the test content item 270, i.e., whether the test content item 270 has been achieved (or formed / generated) by applying one or more predetermined types of modifications to the watermarked content item 230. In other words, the watermark decoding system 260 is designed to determine whether the test content item 270 has previously (i.e., since it was watermarked by the watermark embedding system 210) undergone (or had applied to it) one or more predetermined types of modifications (as part of processing 290).

[0046] Accordingly, the content analysis module 263 performs a watermark decoding operation on the test content item 270. The watermark decoding operation corresponds to the watermark embedding operation performed by the embedding module 214. Depending on whether the watermark decoding operation is successful, the watermark decoding operation may produce (or generate) payload data from the test content item 270. In particular, the watermarked content item 230 may have undergone severe processing 290 such that it is no longer possible to decode the initially embedded watermark from the test content item 270. However, assuming that the embedded watermark is sufficiently robust and assuming that the processing 290 (if any) is not so severe that the watermark becomes undecodable, the content analysis module 263 will generate a payload from the test content item 270.

[0047] As will be described in more detail shortly, the payload analysis module 264 is arranged to analyze the test content item 270 and the payload produced by the content analysis module 263 so as to generate a result 280 (as will be described shortly) that indicates whether one or more predetermined types of modifications have not been applied to the test content item 270.

[0048] The watermark decoding module 262 may utilize control data (or parameters or configuration settings) 242 to control or configure the watermark decoding module 262, such as controlling the method by which the content analysis module 263 attempts to decode the payload from the test content item 270 and / or the method by which the payload analysis module 264 performs its analysis. However, it will be appreciated that some or all of these aspects / configurations of the watermark decoding module 262 may be pre-configured / pre-determined without the need for control data 242. In some embodiments, at least some of the control data 240 used by the watermarking module 212 may be the same as at least some of the control data 242 used by the watermark decoding module 262.

[0049] Thus, in summary, the watermark decoding system 260 receives the content item 270, performs a watermark decoding operation on the content item 270, and determines whether one or more predetermined types of modifications have not been applied to the content item in response to the watermark decoding operation that produces a payload from the content item 270.

[0050] Different types of modifications (i.e., changes applied by process 290) will affect one or more corresponding aspects (or properties or characteristics) of the watermarked content item 230, where these changes are reflected in the test content item 270. In other words, for each type of modification, there is a corresponding set of one or more aspects of the content item that will be affected or changed due to applying that modification to the content item. Thus, it is possible to identify whether a particular type of modification has been applied by knowing (a) the (multiple) values of the corresponding one or more aspects of the initial content item 220 and (b) the (multiple) values of the corresponding one or more aspects of the test content item 270. If the (multiple) values of the corresponding one or more aspects of the initial content item 220 match (or are equal to) the (multiple) values of the corresponding one or more aspects of the test content item 270, it can be inferred that that particular type of modification has not been applied; if the (multiple) values of the corresponding one or more aspects of the initial content item 220 do not match (or are not equal to) the (multiple) values of the corresponding one or more aspects of the test content item 270, it can be inferred that that particular type of modification may have been applied.

[0051] For example, for video content:

[0052] • Modifications involving changes to video standards or pixel formats may affect aspects such as:

[0053] ○ Aspect ratio, such as changes between 4:3, 16:9, 3:2, 5:3, 5:3, 1:1, etc.

[0054] ○ Resolution, such as changes between 1920x1080, 1280x720, 720x576, etc.

[0055] ○ Pixel depth, such as 8 bits per pixel (bpp), 10 bpp, 12 bpp, etc.

[0056] ○ Color format, such as RGB, YUV, 4:4:4, 4:2:2, 4:2:0, etc.

[0057] ○ Frame rate, such as 25 frames per second (fps), 30 fps, etc.

[0058] ○ Whether the video content is interlaced

[0059] ○ And so on

[0060] • Modifications to the actual content that makes up the video content may affect aspects such as:

[0061] ○ The number of frames that make up the video content

[0062] ○ The number of GOPs that make up the video content

[0063] ○ The number of scene changes / edits in the video content

[0064] ○ The sequential order of the frames of the video content

[0065] ○ And so on

[0066] For example, for audio content:

[0067] • Modifications involving audio standard / format changes may affect aspects such as:

[0068] ○ Sampling frequency

[0069] ○ Audio sample bit depth

[0070] ○ Number of audio channels

[0071] ○ And so on

[0072] • Modifications to the actual content that makes up the audio content may affect aspects such as:

[0073] ○ Duration of the audio content

[0074] ○ Number of segments that make up the audio content

[0075] ○ Number of "quiet" periods in the audio content

[0076] ○ Sequential order of the audio content segments

[0077] ○ And so on

[0078] Of course, more specific types of modifications can be specified. For example, in some embodiments, the modification of interest (i.e., the one for which an inspection will be performed) can be a change in the aspect ratio, in which case the corresponding set of attributes is just the value of the aspect ratio.

[0079] The purpose of the watermarking system 200 is to enable the detection of modifications to content items. Different embodiments of the present invention may be aimed at enabling the detection of different types of modifications (e.g., depending on the specific deployment scenario and the issues of concern). Some embodiments may be aimed at enabling the detection of only one type of modification; other embodiments may be aimed at enabling the detection of one or more of multiple types of modifications. Thus, embodiments of the present invention relate to one or more predetermined types of modifications, and as discussed above, for each predetermined type of modification, that type of modification affects the value of at least one corresponding attribute of the content item. Thus, embodiments of the present invention utilize the overall set of attributes of the content item, where each of the one or more predetermined types of modifications for that embodiment affects the value of at least one attribute in this overall set of one or more attributes. Thus, for a particular embodiment of the present invention, given a particular one or more predetermined types of modifications, a set of one or more attributes can be selected such that for each of the one or more predetermined types of modifications, that type of modification affects the value of at least one attribute in the set of one or more attributes.

[0080] Figure 3a is a flowchart of a method 300 performed by a watermark embedding system 210 according to some embodiments of the present invention.

[0081] At step 310, the watermark embedding system 210 obtains the corresponding value of each attribute in the set of one or more attributes of the initial content item 220 for the initial content item 220. As discussed above, the set of one or more attributes is selected such that for each of the one or more predetermined types of modifications, that type of modification affects the value of at least one attribute in the set of one or more attributes. In some embodiments, the set of one or more attributes and / or the manner by which they are obtained may be specified by the control data 240.

[0082] The watermark embedding system 210 may obtain the (multiple) attribute values in a variety of ways, such as one or more of the following:

[0083] • The watermark embedding system 210 may obtain some or all of the attribute values by generating them itself. For example, the payload generation module 213 may analyze the initial content item 220 to generate (or establish or calculate) some or all of the attribute values based on the initial content item 220. Additionally or alternatively, the content generator 215 may determine (or establish or calculate) some or all of the attribute values as part of generating the initial content item 220.

[0084] • The watermark embedding system 210 can obtain some or all of the attribute values by receiving. For example, the watermark embedding system 210 can receive some or all of the attribute values from a source external to the watermark embedding system 210 via the input 216. Additionally or alternatively, the initial content item 220 can include one or more of the attribute values as metadata or as embedding parameters - thus, for example, the initial content item 220 received via the input 216 may already contain one or more of the attribute values (such that the watermark embedding system 210 can parse the initial content item 220 to obtain these values).

[0085] • Some or all of the attribute values can be pre - determined - for example, the watermark embedding system 210 can be configured to operate only on video at a certain frame rate or on audio at a certain sample frequency. Thus, obtaining the corresponding values of such attributes can involve reading such predetermined values from memory or using the embedded versions of such parameters. Similarly, the corresponding values of such attributes can be specified as part of the control data 240.

[0086] At step 320, the watermark embedding system 210 waters the initial content item 220 to embed the payload data within the initial content item 220. As discussed above, the embedding module 214 can water the initial content item 220 to embed the payload data within the content item 220.

[0087] In Figure 3a the example method 300 shown, the payload data includes the corresponding values of each of the one or more attributes in the set. Thus, at step 320 in Figure 3a , the initial content item 220 is watered such that it contains, or in which the corresponding values of each of the one or more attributes in the set are already encoded or embedded.

[0088] As mentioned above, the payload data can be generated by the payload generation module 213. The payload generation module 213 can represent one or more attribute values as payload data in any suitable manner (e.g., concatenation of some or all of the values). The payload generation module 213 can perform further processing on the one or more attribute values (e.g., error - correction coding, encryption, etc.).

[0089] It will be appreciated that methods of watermarking content items are well known in the art, and any such watermarking method may be selected. Preferably, the particular watermarking algorithm used is selected according to the particular deployment scenario envisioned by a particular embodiment of the present invention. In particular, it will generally be desirable for the watermarking algorithm to be: (i) (substantially) imperceptible to human users, and / or (ii) robust against certain types of modifications, which may or may not be one or more of the predefined types of modifications mentioned above.

[0090] Throughout the initial content item 220, different attributes may have their corresponding values embedded in different ways and / or at different frequencies. For example, for video content, the attribute may be the sequential frame number of each frame of the video content (e.g., if one of the predefined types of modifications involves reordering video frames, deleting video frames, or inserting video frames), in which case at least some of the generated payload data may vary from frame to frame such that a watermark can be embedded in each frame with payload data for that watermark that represents the sequential frame number of that frame. However, for an attribute that may remain constant throughout the video content (e.g., video coding format or GOP number), the value of that attribute may be embedded one or more times throughout the video content (e.g., once every nth video frame for some integer n≥1). Thus, step 320 may involve generating one or more amounts of payload data and embedding each amount of payload data at one or more corresponding locations in the initial content item 220, where each amount of payload data represents the value of one or more corresponding attributes from a set of one or more attributes of the initial content item 220.

[0091] Figure 4a is a flowchart of a method 400 performed by a watermark decoding system 260 according to some embodiments of the present invention.

[0092] At step 410, the watermark decoding system 260 obtains a corresponding first value for each attribute in the above-mentioned set of one or more attributes for the test content item 270. This may be performed by the payload analysis module 264 and / or the content analysis module 263. The watermark decoding system 260 may obtain these first attribute values in a variety of ways, such as one or more of the following:

[0093] • The watermark decoding system 260 may obtain some or all of the first values by generating them itself. For example, the payload analysis module 264 and / or the content analysis module 263 may analyze the test content item 270 to generate (or establish or calculate) some or all of the first values based on the test content item 270.

[0094] • The watermark decoding system 260 may obtain some or all of the first values by receiving. For example, the watermark decoding system 260 may receive the first attribute values from a source external to the watermark decoding system 260 via an input ( Figure 2 not shown). Additionally or alternatively, the test content item 270 may include one or more of the first attribute values as metadata or as embedded parameters - thus, for example, the test content item 270 received via an input ( Figure 2 not shown) may already include one or more of the first attribute values.

[0095] • Some or all of the first attribute values may be pre-determined - for example, the watermark decoding system 260 may be configured to operate only on video at a certain frame rate or audio at a certain sample frequency. Thus, obtaining the first values of such attributes may involve reading such pre-determined values from memory or using an embedded version of such parameters. Similarly, the first attribute values of such attributes may be specified as part of the control data 242.

[0096] At step 420, the watermark decoding system 260 performs a watermark decoding operation on the test content item 270. As discussed above, the content analysis module 263 may perform the watermark decoding operation on the test content item 270.

[0097] It will be appreciated that the watermark decoding operation itself is well known in the art, and any such watermark decoding method may be selected. Insofar as the watermark decoding operation is capable of generating (or regenerating) payload data from the watermarked content item 230, the watermark decoding operation corresponds to the watermark embedding operation performed by the watermark embedding module 214, and this payload data was embedded into the initial content item 220 when the watermarked content item 230 was generated (by the watermark embedding operation).

[0098] In some embodiments, the watermark decoding operation will always generate payload data from the test content item 270; in other embodiments, the watermark decoding operation may sometimes not be able to generate payload data (e.g., if it involves performing error correction decoding and there are too many errors to be successfully corrected). This depends on the particular implementation of the watermark decoding operation. In embodiments where payload data is always generated by the watermark decoding operation, the processing continues at step 440; otherwise, the processing continues at optional step 430.

[0099] At optional step 430, a determination is made as to whether the watermark decoding operation has generated payload data from the test content item 270. If it is determined that the watermark decoding operation has generated payload data from the test content item 270, the processing continues at step 440; otherwise, the processing continues at optional step 470.

[0100] Step 430 is optional because, in some embodiments, one or more of the following may be satisfied: (a) the determination of whether the watermark decoding operation has produced payload data from the test content item 270 may be included as part of the watermark decoding operation performed at step 420; and (b) as mentioned above, the watermark decoding operation may always produce payload data from the test content item 270.

[0101] Accordingly, in response to a watermark decoding operation that produces payload data from the test content item 270 (either directly from step 420 or via optional step 430), step 440 is reached. Since the payload data embedded by the watermark embedding process includes (or represents) the value of one or more of the one or more attributes in the set, the payload data decoded by the corresponding watermark decoding operation will likewise include (or represent) the value of these one or more attributes (hereinafter referred to as "second values").

[0102] At step 440, the watermark decoding system 260 determines, for each attribute in the set of one or more attributes, whether the corresponding first value of that attribute (as determined at step 410) matches the corresponding second value of that attribute determined using the payload data. As discussed above, this may be performed by the payload analysis module 264. In some embodiments, the corresponding first and second values of an attribute may be considered to match only if they are equal to each other. In some embodiments, if the difference (or its magnitude) between the corresponding first and second values of an attribute is less than a predetermined threshold (e.g., less than the expected error in the corresponding first and second values; and / or a threshold based on the content item, such as its duration), then those first and second values may be considered to match. The nature of the content considered to be "matching" and / or the threshold to be used may be specified by the control data 242.

[0103] If it is determined that, for at least one attribute in the set of one or more attributes, the corresponding first value of that attribute does not match the corresponding second value of that attribute, the process continues at step 450, where it is inferred that at least one of a predetermined type of modification has been applied to the watermarked content item 230 to obtain the test content item 270, i.e., the test content item 270 has had at least one of a predetermined type of modification applied to it.

[0104] Otherwise, if it is determined that, for each attribute in the set of one or more attributes, the corresponding first value of that attribute matches the corresponding second value of that attribute, the process continues at step 460, where it is inferred that none of one or more predetermined types of modification have been applied to the watermarked content item 230 to reach the test content item 270, i.e., the test content item 270 has not had any of one or more predetermined types of modification applied to it.

[0105] In some embodiments, step 450 may instead involve determining that some form of modification has been made to the watermarked content item 230 to obtain the test content item 270, but not necessarily finally determining that one or more predetermined types of modifications have been applied - this will of course depend on the nature of the predetermined types of modifications and the attributes used.

[0106] At optional step 470, one or more conclusions may be drawn, and / or one or more further processing steps may be taken, such as one or more of the following:

[0107] • Due to an error (or malfunction) in the watermark decoding operation, the watermark decoding operation may not have produced payload data from the test content item 270. Accordingly, step 470 may include correcting the error in the watermark decoding operation (e.g., control data 242 may be adjusted) and returning to step 420.

[0108] • It may be inferred that the test content item 270 has been modified by processing 290 to such an extent that payload data cannot be detected in the test content item 270. In such a case, the control data 240 for future watermark embedding operations may be adjusted (e.g., to increase the robustness of the watermark).

[0109] • It may be inferred that the test content item 270 is a version of the original content 220 that was illegally obtained prior to the execution of the watermark embedding operation.

[0110] • It may be determined that further inspection (e.g., visual inspection) is required to draw a conclusion about the origin / provenance of the test content item 270.

[0111] It will be appreciated that in some embodiments, additional data may be required before any such conclusions are drawn and / or before any further processing is performed.

[0112] Figure 5 Schematically illustrated is a watermarking system 500 according to some embodiments of the present invention. Except as discussed below, the watermarking system 500 is identical to Figure 2 the watermarking system 200 (wherein like elements have like reference numerals).

[0113] The watermarking system 500 further includes a storage device (or memory or database) 510. The storage device 510 may be part of the watermark embedding system 210, or as Figure 2As shown, it can be external to the watermark embedding system 210 and can be accessible to the watermark embedding system 210 via, for example, the network 252. Similarly, the storage device 510 can be part of the watermark decoding system 260 or, as Figure 2 shown, can be external to the watermark decoding system 260 and can be accessible to the watermark decoding system 260 via, for example, the network 252.

[0114] As discussed above, the watermarking module 212 is arranged to obtain, for each attribute in the set of one or more attributes of the initial content item 220, the corresponding value of the initial content item 220. Using the system 500, the watermarking module 212 stores these values in the storage device 510 in association with an identifier (e.g., as a record in a database having a unique record identifier). The payload data generated by the payload generation module 213 and subsequently embedded into the initial content item 220 by the embedding module 214 to generate the watermarked content item 230 can then include the identifier (or a representation thereof), rather than including the attribute values themselves (as in the system 200). As discussed above, the watermark decoding operation performed by the watermark decoding module 262 generates payload data from the test content item 270 - in the system 500, this payload data will then include this identifier (or a representation thereof). The watermark decoding module 262 can then use the identifier obtained based on the payload data to access the attribute values stored in the storage device 510 - these accessed attributes then become the above-mentioned "second values" of the attributes.

[0115] Figure 3b is a flowchart of a method 301 performed by the watermark embedding system 210 according to some embodiments of the present invention when using Figure 5 the system 500. Figure 3b Includes steps 310 and 320, which are similar to Figure 3a steps 310 and 320 of Figure 3b Further includes step 315, at which the watermark embedding system 210 stores the attribute values obtained at step 310 in the storage device 510. As discussed above with reference to Figure 5 As Figure 3b shown in the method 301, the payload data includes an identifier for retrieving the corresponding value of each attribute in the set of one or more attributes from the storage device 510. Thus, at step 320 in Figure 3b , the initial content item 220 is watermarked such that it contains, or has encoded or embedded therein, an identifier for retrieving the corresponding value of each attribute in the set of one or more attributes from the storage device 510.

[0116] Figure 4b is a diagram when usingFigure 5 Flowchart of method 401 performed by watermark decoding system 260 according to some embodiments of the present invention for system 500. Figure 4b Includes steps 410 - 470, steps 410 - 470 being similar to Figure 4a Steps 410 - 470. As discussed above, the payload data generated by the watermark decoding operation performed at step 420 includes identifiers for the respective second values for each of the set of one or more attributes to retrieve from storage device 510. Thus, Figure 4b Further includes step 480, at which watermark decoding system 260 uses the identifiers from the payload data to obtain the respective second values for each of the set of one or more attributes of test content item 270 from storage device 510.

[0117] It will be appreciated that the described method has been shown as individual steps performed in a particular order. However, those skilled in the art will appreciate that these steps may be combined or performed in a different order while still achieving the desired result.

[0118] It will be appreciated that various different information processing systems may be used to implement embodiments of the present invention. In particular, while the figures and their discussion provide exemplary computing systems and methods, these are presented merely to provide a useful reference in discussing the various aspects of the present invention. Embodiments of the present invention may be executed on any suitable data processing device, such as a personal computer, laptop computer, personal digital assistant, mobile phone, set-top box, television, server computer, etc. Of course, for purposes of discussion, the description of the systems and methods has been simplified, and they are merely one of many different types of systems and methods that may be used for embodiments of the present invention. It will be appreciated that the boundaries between the logical blocks are merely illustrative, and alternative embodiments may combine the logical blocks or elements, or may impose an alternative decomposition of the functionality on the various logical blocks or elements.

[0119] It will be appreciated that the functions described above can be implemented as one or more corresponding modules as hardware and / or software. For example, the functions described above can be implemented as one or more software components for execution by a processor of the system. Alternatively, the functions described above can be implemented as hardware, such as one or more field programmable gate arrays (FPGAs), and / or one or more application specific integrated circuits (ASICs), and / or one or more digital signal processors (DSPs), and / or one or more graphics processing units (GPUs), and / or other hardware arrangements. Each of the method steps implemented in the flowcharts included herein or as described above can be implemented by a corresponding respective module; multiple method steps implemented in the flowcharts included herein or as described above can be implemented together by a single module.

[0120] It will be appreciated that, insofar as embodiments of the present invention are implemented by a computer program, one or more storage media and / or one or more transmission media storing or carrying the computer program form aspects of the present invention. The computer program can have one or more program instructions or program codes which, when executed by one or more processors (or one or more computers), implement embodiments of the present invention. As used herein, the term "program" can be a sequence of instructions designed to be executed on a computer system and can include subroutines, functions, programs, modules, object methods, object implementations, executable applications, applets, servlets, source code, object code, byte code, shared libraries, dynamic link libraries, and / or other sequences of instructions designed to be executed on a computer system. The storage medium can be a disk (such as a hard disk drive or a floppy disk), an optical disk (such as a CD-ROM, a DVD-ROM or a Blu-ray disc), or a memory (such as a ROM, a RAM, an EEPROM, an EPROM, a flash memory or a portable / removable memory device), etc. The transmission medium can be a communication signal, a data broadcast, a communication link between two or more computers, etc.

Claims

1. A method for implementing detection of a modification to a content item, the method comprising: For the content item, obtaining a respective value for each attribute in a set of one or more attributes of the content item, selecting the set of one or more attributes such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; And Watermarking the content item to embed payload data within the content item, where the payload data includes: (a) the respective value for each attribute in the set of one or more attributes and / or (b) an identifier for retrieving the respective value for each attribute in the set of one or more attributes from a storage device.

2. The method according to claim 1, further comprising: Storing in a storage device the respective value for each attribute in the set of one or more attributes.

3. A method for detecting a modification to a content item, the method comprising: For the content item, obtaining a respective first value for each attribute in a set of one or more attributes of the content item, selecting the set of one or more attributes such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; Performing a watermark decoding operation on the content item; And In response to the watermark decoding operation that produces payload data from the content item: When for each attribute in the set of one or more attributes, the respective first value of the attribute matches the respective second value of the attribute determined using the payload data, then determining that none of the one or more predetermined types of modification has been applied to the content item; Or When for at least one attribute in the set of one or more attributes, the respective first value of the attribute does not match the respective second value of the attribute determined using the payload data, then determining that a modification has been applied to the content item.

4. The method according to claim 3, wherein determining that a modification has been applied to the content item comprises: When for at least one attribute in the set of one or more attributes, the respective first value of the attribute does not match the respective second value of the attribute determined using the payload data, then determining that at least one of the one or more predetermined types of modification has been applied to the content item.

5. The method according to claim 3 or 4, wherein the respective first value of an attribute matches the respective second value of the attribute when any of the following occurs: (a) The first value is equal to the second value; or (b) The difference between the first value and the second value is less than a predetermined threshold.

6. The method according to claim 3 or 4, further comprising: Using the payload data to obtain from a storage device the respective second value for each attribute in a set of one or more attributes of the content item.

7. The method according to claim 6, wherein the payload data includes an identifier of a record in a database that stores the respective second value for each attribute in a set of one or more attributes of the content item.

8. The method according to any one of the preceding claims 1 - 4 and 7, wherein the one or more predetermined types of modification include one or more of the following: (a) A change in the standard or format of the content item; (b) Changes to the content of the content item.

9. A system for implementing detection of modifications to a content item, the system comprising one or more processors arranged to: For the content item, obtain the respective value of each attribute in a set of one or more attributes of the content item, and select the set of one or more attributes such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; and Watermark the content item to embed payload data within the content item, where the payload data includes: (a) The respective value of each attribute in the set of one or more attributes and / or (b) an identifier for retrieving the respective value of each attribute in the set of one or more attributes from a storage device.

10. The system according to claim 9, further arranged to: store the respective value of each attribute in the set of one or more attributes in a storage device.

11. A system for detecting modifications to a content item, the system comprising one or more processors arranged to: For the content item, obtain the respective first value of each attribute in a set of one or more attributes of the content item, and select the set of one or more attributes such that for each of one or more predetermined types of modification, the type of modification affects the value of at least one attribute in the set of one or more attributes; Perform a watermark decoding operation on the content item; And In response to a watermark decoding operation that generates payload data from the content item: When for each attribute in the set of one or more attributes, the respective first value of the attribute matches the respective second value of the attribute determined using the payload data, it is determined that none of the one or more predetermined types of modification has been applied to the content item; Or When for at least one attribute in the set of one or more attributes, the respective first value of the attribute does not match the respective second value of the attribute determined using the payload data, it is determined that a modification has been applied to the content item.

12. The system according to claim 11, wherein, Determining that a modification has been applied to the content item includes: when for at least one attribute in the set of one or more attributes, the respective first value of the attribute does not match the respective second value of the attribute determined using the payload data, it is determined that at least one of the one or more predetermined types of modification has been applied to the content item.

13. The system according to claim 11 or 12, wherein the respective first value of an attribute matches the respective second value of the attribute when any of the following occurs: (a) The first value is equal to the second value; or (b) The difference between the first value and the second value is less than a predetermined threshold.

14. The system according to claim 11 or 12, further arranged to: use the payload data to obtain from a storage device the respective second value of each attribute in a set of one or more attributes of the content item.

15. The system according to claim 14, wherein the payload data includes an identifier of a record in a database that stores the respective second value of each attribute in a set of one or more attributes of the content item.

16. The system according to any one of claims 9 - 12 and 15, wherein the one or more predetermined types of modification include one or more of the following: (a) a change in the standard or format of the content item; (b) a change to the content of the content item.

17. A computer program product, comprising a computer program, characterized in that, The computer program, when executed by one or more processors, performs the steps of the method according to any one of claims 1 to 8.

18. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by one or more processors, the computer program performs the steps of the method according to any one of claims 1 - 8.

Citation Information

Patent Citations

  • Method and apparatus for authenticating video content

    US20130259228A1

  • Tamper Protection and Video Source Identification for Video Processing Pipeline

    US20180253567A1