# US 11,308,572 B1 · Method and system for invisible watermarking of images and video

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,572 B1
- Document ID: US11308572B1
- Status: Granted
- Kind: B1
- Application number: 16/743,636
- Filed: 2020-01-15
- Granted: 2022-04-19
- Earliest claimed: 2019-01-16
- Assignees: Xilinx, Inc.
- Applicants: Xilinx, Inc.
- Inventors: Jack Benkual
- Web page: https://patentgrep.com/patent/US11308572B1

## CPC

- G06T 1/0028: {Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking}
- G06T 1/005: {Robust watermarking, e.g. average attack or collusion attack resistant}
- H04N 19/467: characterised by the embedded information being invisible, e.g. watermarking
- G06T 2201/0051: Embedding of the watermark in the spatial domain
- G06T 2201/0052: Embedding of the watermark in the frequency domain
- G06T 2201/0053: Embedding of the watermark in the coding stream, possibly without decoding; Embedding of the watermark in the compressed domain
- G06T 2201/0061: Embedding of the watermark in each block of the image, e.g. segmented watermarking
- H04N 19/129: Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/18: the unit being a set of transform coefficients
- H04N 19/61: in combination with predictive coding
- H04N 19/96: Tree coding, e.g. quad-tree coding
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Methods and systems for invisible watermarking of images and video are disclosed. According to one embodiment, a method for watermarking video comprises selecting a block corresponding to a subset of pixels in a video frame. The block has quantized coefficients generated during encoding of the block. A modification function is applied to a candidate quantized coefficient (QC) in the block to incorporate a bit of a watermark message. The modification function is based on a set of configuration parameters.

## Claims

### Claim 1

A method for watermarking video, the method comprising:
selecting a block corresponding to a subset of pixels in a video frame, the block having quantized coefficients generated during encoding of the block; and
applying a modification function to a candidate quantized coefficient (QC) in the block to incorporate a bit of a watermark message, wherein the modification function is based on a set of configuration parameters.

### Claim 2 (depends on 1)

The method of claim 1, wherein an encoding process for the encoding of the block comprises a standardized encoding process.

### Claim 3 (depends on 1)

The method of claim 1, wherein size of the block in terms of quantized coefficients is 4×4, 8×8, 16×16, or 32×32.

### Claim 4 (depends on 1)

The method of claim 1, wherein the set of configuration parameters includes one or more of:
a block qualification parameter;
a frequency parameter;
a block distribution parameter;
a scanning order parameter;
a coefficient location parameter; or
a watermark message repetition parameter.

### Claim 5 (depends on 4)

The method of claim 4, wherein the block qualification parameter comprises:
a value threshold for values of the quantized coefficients; or
a count threshold for quantized coefficients.

### Claim 6 (depends on 5)

The method of claim 5, further comprising validating the block prior to applying the modification function by determining:
whether a number of significant coefficients in the block is at least equal to the count threshold: or
whether at least one quantized coefficient in the block has a value greater than the value threshold.

### Claim 7 (depends on 4)

The method of claim 4, further comprising validating the block prior to applying the modification function by determining one or more of:
a rate of modification of blocks in the frame after modifying the selected block by applying the modification function is less than or equal to the frequency parameter; or
a location of the block in the frame complies with acceptable locations in the frame, the acceptable locations being defined by the block distribution parameter.

### Claim 8 (depends on 7)

The method of claim 7, wherein the block distribution parameter defines the acceptable locations as a pseudorandom sequence based on a specified seed.

### Claim 9 (depends on 4)

The method of claim 4, wherein:
the scanning order comprises a reverse diagonal order, or a reverse vertical order, or a reverse horizontal order; and
the candidate QC is selected in the scanning order.

### Claim 10 (depends on 9)

The method of claim 9, wherein the candidate QC is one of:
k-th QC in the scanning order, k ranging from 1 through size of the block; or
k-th QC in the scanning order and having a value greater than a specified value threshold.

### Claim 11 (depends on 4)

The method of claim 4, further comprising:
repeating the selecting and applying steps with respect to a plurality of blocks in the frame until each bit of the watermark message is embedded in the frame a number of times specified by the watermark message repetition parameter.

### Claim 12 (depends on 1)

The method of claim 1, wherein applying the modification function comprises:
determining parity of a binary representation of the candidate QC;
comparing the parity with the watermark message bit; and
incrementing or decrementing the QC when the comparison is false and preserving the QC when the comparison is true.

### Claim 13 (depends on 1)

The method of claim 1, further comprising entropy encoding the block.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
repeating the selecting and applying steps with respect to a plurality of blocks in the frame, repeated application of the applying step generating a plurality of modified blocks;
decoding the plurality of modified blocks; and
adjusting using information produced from the decoding one or more configuration parameters or one or more encoding parameter used for the encoding.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
repeating the selecting and applying steps with respect to a plurality of blocks in the frame; and
replacing during the repeated application of the applying step, the watermark message with another message comprising one or more parameters from the set of configuration parameters, so that the one or more parameters are embedded in the frame.

### Claim 16

A video watermarking system comprising:
a processor; and
a memory in communication with the processor and comprising instructions which, when executed by the processor, program the processor to:
select a block corresponding to a subset of pixels in a video frame, the block having quantized coefficients generated during encoding of the block; and
apply a modification function to a candidate quantized coefficient (QC) in the block to incorporate a bit of a watermark message, wherein the modification function is based on a set of configuration parameters.

### Claim 17 (depends on 16)

The system of claim 16, wherein the instructions program the processor to perform the encoding of the block based on a standardized encoding process.

### Claim 18 (depends on 16)

The system of claim 16, wherein size of the block in terms of quantized coefficients is 4×4, 8×8, 16×16, or 32×32.

### Claim 19 (depends on 16)

The system of claim 16, wherein the set of configuration parameters includes one or more of:
a block qualification parameter;
a frequency parameter;
a block distribution parameter;
a scanning order parameter;
a coefficient location parameter; or
a watermark message repetition parameter.

### Claim 20 (depends on 19)

The system of claim 19, wherein the block qualification parameter comprises:
a value threshold for values of the quantized coefficients; or
a count threshold for quantized coefficients.

### Claim 21 (depends on 20)

The system of claim 20, wherein the instructions further program the processor to validate the block prior to applying the modification function by determining:
whether a number of significant coefficients in the block is at least equal to the count threshold: or
whether at least one quantized coefficient in the block has a value greater than the value threshold.

### Claim 22 (depends on 19)

The system of claim 19, wherein the instructions further program the processor to validate the block prior to applying the modification function by determining one or more of:
a rate of modification of blocks in the frame after modifying the selected block by applying the modification function is less than or equal to the frequency parameter; or
a location of the block in the frame complies with acceptable locations in the frame, the acceptable locations being defined by the block distribution parameter.

### Claim 23 (depends on 22)

The system of claim 22, wherein the block distribution parameter defines the acceptable locations as a pseudorandom sequence based on a specified seed.

### Claim 24 (depends on 19)

The system of claim 19, wherein:
the scanning order comprises a reverse diagonal order, or a reverse vertical order, or a reverse horizontal order; and
the instructions program the processor to select the candidate QC in the scanning order.

### Claim 25 (depends on 24)

The system of claim 24, wherein the candidate QC is one of:
k-th QC in the scanning order, k ranging from 1 through size of the block; or
k-th QC in the scanning order and having a value greater than a specified value threshold.

### Claim 26 (depends on 19)

The system of claim 19, wherein the instructions further program the processor to:
repeat the select and apply operations with respect to a plurality of blocks in the frame until each bit of the watermark message is embedded in the frame a number of times specified by the watermark message repetition parameter.

### Claim 27 (depends on 16)

The system of claim 16, wherein to apply the modification function the instructions program the processor to:
determine parity of a binary representation of the candidate QC;
compare the parity with the watermark message bit; and
increment or decrement the QC when the comparison is false and preserving the QC when the comparison is true.

### Claim 28 (depends on 16)

The system of claim 16, wherein the instructions further program the processor to entropy encode the block.

### Claim 29 (depends on 16)

The system of claim 16, wherein the instructions further program the process to:
repeat the select and apply operations with respect to a plurality of blocks in the frame, repeated apply operation generating a plurality of modified blocks;
decode the plurality of modified blocks; and
adjust using information produced from the decode operation one or more configuration parameters or one or more encoding parameter used for the encoding.

### Claim 30 (depends on 16)

The system of claim 16, wherein the instructions further program the processor to:
repeat the select and apply operations with respect to a plurality of blocks in the frame; and
replace during the repeated apply operation, the watermark message with another message comprising one or more parameters from the set of configuration parameters, so that the one or more parameters are embedded in the frame.
