# US 8,787,696 B1 · Method and apparatus for replacing a block of pixels in a digital image frame to conceal an error associated with the block of pixels

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

- Number: US 8,787,696 B1
- Document ID: US8787696B1
- Status: Granted
- Kind: B1
- Application number: 13/951,533
- Filed: 2013-07-26
- Granted: 2014-07-22
- Earliest claimed: 2009-03-09
- Assignees: Marvell International Ltd.
- Applicants: Marvell International Ltd.
- Inventors: Mainak Biswas; Vipin Namboodiri
- Web page: https://patentgrep.com/patent/US8787696B1

## CPC

- H04N 7/014: {involving the use of motion vectors (motion estimation and compensation in video coding H04N19/51)}
- H04N 5/145: {Movement estimation (for video coding H04N19/51)}
- H04N 5/142: {Edging; Contouring}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In one embodiment the present invention includes a digital image processing method for concealing errors. The method includes determining error pixel locations based on motion vectors and determining if the error pixel locations in a current frame are on an edge of an object in the current frame. If an error pixel location is on an edge, then a search of pixel values is performed in the current frame along the edge for a replacement pixel value. If the error pixel location is not on an edge, then a search of pixel values is performed in a region adjacent to the edge for the replacement pixel value.

## Claims

### Claim 1

A computer implemented method for replacing blocks of pixels in a digital image frame to conceal an error associated with the block of pixels, the method comprising:
determining, using one or more processors, that a block of pixels in a digital image frame is to be replaced due to an error associated with the block of pixels;
determining, using the one or more processors, whether the block of pixels to be replaced is part of an edge in the digital image frame;
in response to determining that the block of pixels to be replaced is part of an edge in the digital image frame, the one or more processors:
calculating, for each of multiple candidate blocks of pixels that is part of the edge, a difference value as a function of a difference between (i) a value of the candidate block of pixels and (ii) a value of the block of pixels to be replaced,
selecting a first candidate block of pixels from among the multiple candidate blocks of pixels based on a comparison of the difference values to each other; and
replacing the block of pixels to be replaced with the first candidate block of pixels.

### Claim 2 (depends on 1)

The method of claim 1, wherein the block of pixels to be replaced and the candidate blocks of pixels each comprise a single pixel.

### Claim 3 (depends on 1)

The method of claim 1, wherein the block of pixels to be replaced and the candidate blocks of pixels each comprise an array of pixels.

### Claim 4 (depends on 1)

The method of claim 1, wherein, for each candidate block of pixels, the difference value is a sum of absolute values of differences between the candidate block of pixels and the block of pixels to be replaced.

### Claim 5 (depends on 1)

The method of claim 1, wherein, for each candidate block of pixels, the difference value is further a function of a distance of the candidate block of pixels from the block of pixels to be replaced.

### Claim 6 (depends on 1)

The method of claim 1, wherein the determining that the block of pixels in the digital image frame is to be replaced is based on values of the block of pixels differing from reference values by more than a threshold, wherein the reference values correspond to pixel values from the same block in a previous frame that are modified by associated motion vectors.

### Claim 7 (depends on 1)

The method of claim 1, wherein the determining that the block of pixels to be replaced is part of an edge is through use of an edge mask that is derived by extracting boundaries of objects in the frame.

### Claim 8 (depends on 1)

The method of claim 1, wherein the selecting is by selecting the candidate block of pixels having the lowest difference value from among the candidate blocks of pixels.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determinations, the calculating, the selecting and the replacing are repeated multiple times, with each repetition being for a different block of pixels to be replaced along the edge.

### Claim 10 (depends on 9)

The method of claim 9, wherein, in one of the repetitions, at least one of the candidate block of pixels is a replaced block of pixels from a previous repetition.

### Claim 11

An image processing system comprising:
one or more processors configured to
determine that a block of pixels in a digital image frame is to be replaced due to an error associated with the block of pixels;
determine whether the block of pixels to be replaced is part of an edge in the digital image frame;
in response to determining that the block of pixels to be replaced is part of an edge in the digital image frame:
calculate, for each of multiple candidate blocks of pixels that is part of the edge, a difference value as a function of a difference between (i) a value of the candidate block of pixels and (ii) a value of the block of pixels to be replaced,
select a first candidate block of pixels from among the multiple candidate blocks of pixels based on a comparison of the difference values to each other; and
replace the block of pixels to be replaced with the first candidate block of pixels.

### Claim 12 (depends on 11)

The image processing system of claim 11, wherein the block of pixels to be replaced and the candidate block of pixels each comprise a single pixel.

### Claim 13 (depends on 11)

The image processing system of claim 11, wherein the block of pixels to be replaced and the candidate blocks of pixels each comprise an array of pixels.

### Claim 14 (depends on 11)

The image processing system of claim 11, wherein, for each candidate block of pixels, the difference value is a sum of absolute values of differences between the candidate block of pixels and the block of pixels to be replaced.

### Claim 15 (depends on 11)

The image processing system of claim 11, wherein, for each candidate block of pixels, the difference value is further a function of a distance of the candidate block of pixels from the block of pixels to be replaced.

### Claim 16 (depends on 11)

The image processing system of claim 11, wherein the determining that the block of pixels in the digital image frame is to be replaced is based on values of the block of pixels differing from reference values by more than a threshold, wherein the reference values correspond to pixel values from the same block in a previous frame that are modified by associated motion vectors.

### Claim 17 (depends on 11)

The image processing system of claim 11, wherein the determining that the block of pixels to be replaced is part of an edge is through use of an edge mask that is derived by extracting boundaries of objects in the frame.

### Claim 18 (depends on 11)

The image processing system of claim 11, wherein the selecting is by selecting the candidate block of pixels having the lowest difference value from among the candidate blocks of pixels.

### Claim 19 (depends on 11)

The image processing system of claim 11, wherein the determinations, the calculating, the selecting and the replacing are repeated multiple times, with each repetition being for a different block of pixels to be replaced along the edge.

### Claim 20 (depends on 19)

The image processing system of claim 19, wherein, in one of the repetitions, at least one of the candidate block of pixels is a replaced block of pixels from a previous repetition.
