US2021084387A1PendingUtilityA1

Device and Method for GPU-based Watermarking

61
Assignee: IRDETO BVPriority: Sep 12, 2017Filed: Oct 6, 2020Published: Mar 18, 2021
Est. expirySep 12, 2037(~11.2 yrs left)· nominal 20-yr term from priority
G06T 1/0021H04N 21/2393G06F 21/16H04N 21/25891H04N 21/25833H04L 2209/16G06F 2221/2141H04N 21/8358G06F 21/14H04N 21/25841G06F 2221/2103H04L 63/101G06T 15/005G06F 8/60H04N 21/2585G06F 2221/0737
61
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method and system for watermarking content utilizing a user device GPU. Embodiments include receiving on a processing server a request from a video server for a video to be played on the user's device. The processing server may extract a set of identifying information, such as user information, from the request for the video. The processing server may further prepare shader software code which is to be executed on a GPU present on the user's device. The code preparation may include creating a watermarking procedure to be executed during playback on the user device. The processing server may further transmit the shader software code to the streaming video server to be transmitted to the user device for execution during video playback.

Claims

exact text as granted — not AI-modified
What is claimed: 
     
         1 . A method performed by a processing server, the method comprising:
 receiving, on the processing server, a request from a streaming video server for a video to be rendered on a user device during a session, the user device including a graphics processing unit (GPU);   preparing, by the processing server, shader software code to be executed on the GPU on the user device, wherein the preparing includes creating a watermarking procedure to get executed during a rendering process on the user device to thereby embed a digital watermark in the video:   processing the shader code with software protection techniques, wherein the protection techniques are code and data transformations, control flow and call graph transformations, obfuscation, whitebox cryptography techniques, node- or device-locking, encryption, and/or code signing; and   transmitting, by the processing server, the shader software code to the streaming video server to be transmitted to the user device for execution by the GPU of the user device during the rendering process to create a watermarked video; and   
     
     
         2 . The method of  claim 1 . further comprising extracting, by the processing server, a set of identifying information from the request for the video and wherein the watermark procedure is created based at least in part on the identifying information. 
     
     
         3 . The method of  claim 1 , further comprising:
 extracting, by the processing server, a content type of the video from the set of identifying information; and   updating, by the processing server, the watermarking procedure based on the content type of the video, wherein the content type is a sporting event, action video or animation video.   
     
     
         4 . The method of  claim 3 , further comprising:
 extracting, by the processing server, a profile of the user from the set of identifying information;   determining, by the processing server, a risk profile for the session based on the profile of the user; and   updating, by the processing server, the watermark procedure based on the risk profile of the session, content or subscription.   
     
     
         5 . The method of  claim 4 , further comprising:
 determining, by the processing server, the risk profile based on the content of the video, the history of the user, the device type, the geography of the user, and/or a distribution window.   
     
     
         6 . The method of  claim 1 , further comprising:
 extracting, by the processing server, a content type of the video from the set of identifying information; and   updating, by the processing server, the watermark procedure to target a specific enforcement window, and geographic region based on the content type.   
     
     
         7 . The method of  claim 6 , further comprising:
 updating, by the processing server, the watermark procedure to:
 perform a calculation that is used as a challenge and response from a detection server; 
 deliver the shader software code to the GPU for execution; 
 deliver challenges from a feed forward path for processing in the shader software code; and 
 collect the challenge responses and return the challenge responses through a feedback path and/or use the challenge responses for further processing. 
   
     
     
         8 . The method of  claim 1 , further comprising:
 updating, by the processing server, the watermark procedure to be part of a digital rights management decryption, de-corruption, or descrambling process, so that the watermark code cannot be skipped and includes computations in the GPU that are required for continuous video playback.   
     
     
         9 . The method of  claim 1 , further comprising;
 updating, by the processing server, the watermark procedure to modify pixels and/or image geometry.   
     
     
         10 . The method of  claim 9 , further comprising:
 modifying multiple output pixels spatially and/or temporally.   
     
     
         11 . The method of  claim 1 , further comprising:
 updating, by the processing server, the watermark procedure to:
 encode the watermark multiple times in an image of the video; 
 collect forensic information over multiple images in the video; and 
 include forward error correction codes for identification in the video. 
   
     
     
         12 . The method of  claim 1 , further comprising:
 playing back the watermarked video by a detection server;   identifying, by the detection server, the video's watermark;   determining, by the detection server, whether the video was illegally copied by inspecting the identified watermark; and   transmitting, by the detection server, an indication to blacklist the user device, when the video is determined by illegally copied.   
     
     
         13 . A method performed by a detection server, the method comprising:
 playing back, by the detection server, a watermarked video that was rendered on a user device having a graphics processor unit (GPU);   identifying, by the detection server. the video's watermark, wherein the watermark was created during execution of a watermarking procedure during playback on the user device and the watermark procedure was prepared by a processing server as part of a shader software code that was executed on the GPU of the user device, wherein the shader code was processed with software protection techniques, wherein the protection techniques are code and data transformations, control flow and call graph transformations, obfuscation, whitebox cryptography techniques, node- or device-locking, encryption, and/or code signing; and   transmitting, by the detection server, to the processing server an indication to blacklist the user device when the video is determined to be illegally copied by inspection of the video's watermark.   
     
     
         14 . The method of  claim 13 , wherein the watermark procedure was created based at least in part on identifying information obtained from a request to play the video content on a user device. 
     
     
         15 . The method of  claim 13 , wherein the watermarking procedure was created by:
 extracting, by the processing server, a content type of the video from the user's information; and   updating, by the processing server, the watermarking procedure based on the content type of video.   
     
     
         16 . The method of  claim 14 , wherein the watermarking procedure was further created by:
 extracting, by the processing server, a profile of the user from the set of identifying information;   determining, by the processing server, a risk profile for the session based on the profile of the user; and   updating, by the processing server, the watermark procedure based on the risk profile of the session, content or subscription.   
     
     
         17 . A device comprising:
 a network interface;   a processor configured to execute computer readable instructions included on a non-transitory memory; and   a non-transitory memory including computer readable instructions, that when executed by the processor, cause the device to:   receive, as a processing server, a request from a streaming video server for a video to be played on a user device during a session, wherein the user device includes a graphics processing unit (GPU)   prepare, by the processing server, shader software code to be executed on a GPU of the user device, wherein the preparing includes creating shader code for executing a watermarking procedure during a rendering process on the user device which creates a watermark on the video;   process the shader code with software protection techniques, wherein the protection techniques are code and data transformations, control flow and call graph transformations, obfuscation, whitebox cryptography techniques, node- or device-locking, encryption, and/or code signing; and   transmit, by the processing server, the shader software code to the streaming video server to be transmitted to the user device for execution by the GPU of the user device during video playback.   
     
     
         18 . The device of  claim 17 , wherein a set of identifying information is extracted from the request for the video and wherein the watermark procedure is created based at least in part on the identifying information. 
     
     
         19 . The device of  claim 17 , wherein the computer readable instructions, when executed, further cause the device to:
 extract, by the processing server, a content type of the video from the set of identifying information; and   update, by the processing server, the watermarking procedure based on the content type of the video, wherein the content type is a sporting event, action video or animation video.   
     
     
         20 . The device of  claim 19 , wherein the computer readable instructions, when executed, further cause the device to:
 extract, by the processing server, a profile of the user from the set of identifying information;   determine, by the processing server, a risk profile for the session based on the profile of the user; and   update, by the processing server, the watermark procedure based on the risk profile of the session, content or subscription.   
     
     
         21 . The device of  claim 20 , wherein the computer readable instructions, when executed, further cause the device to:
 determine, by the processing server, the risk profile based on the content of the video, the history of the user, the device type, the geography of the user, and/or a distribution window.   
     
     
         22 . The device of  claim 20 , wherein the computer readable instructions, when executed, further cause the device to:
 extract, by the processing server, a content type of the video from the set of identifying information; and   update, by the processing server, the watermark procedure to target a specific enforcement window, and geographic region based on the content type.   
     
     
         23 . The device of  claim 17 , wherein the computer readable instructions, when executed, further cause the device to:
 update, by the processing server, the watermark procedure to:
 perform a calculation that is used as a challenge and response from a detection server; 
 deliver the shader software code to the GPU for execution; 
 deliver challenges from a feed forward path for processing in the shader software code; and 
 collect the challenge responses and return the challenge responses through a feedback path and/or user the challenge responses for further processing. 
   
     
     
         24 . The device of  claim 17 . wherein the computer readable instructions, when executed, further cause the device to:
 update, by the processing server, the watermark procedure to modify pixels and/or image geometry.   
     
     
         25 . The device of  claim 24 , wherein the computer readable instructions, when executed, further cause the device to:
 modify multiple output pixels spatially and/or temporally.   
     
     
         26 . The device of  claim 17 , wherein the computer readable instructions, when executed, further cause the device to:
 update, by the processing server, the watermark procedure to:
 encode the watermark multiple times in an image of the video; 
 collect forensic information over multiple images in the video; and 
 include forward error correction codes for identification in the video.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.