# US 9,883,183 B2 · Determining neighborhood video attribute values for video data

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

- Number: US 9,883,183 B2
- Document ID: US9883183B2
- Status: Granted
- Kind: B2
- Application number: 14/949,661
- Filed: 2015-11-23
- Published: 2017-05-25
- Granted: 2018-01-30
- Earliest claimed: 2015-11-23
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Gaurang Chaudhari; Atul Garg
- Web page: https://patentgrep.com/patent/US9883183B2

## CPC

- H04N 19/115: Selection of the code volume for a coding unit prior to coding
- H04N 19/129: Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
- H04N 19/172: the region being a picture, frame or field
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/426: using memory downsizing methods
- H04N 19/527: Global motion vector estimation
- H04N 19/59: involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
- H04N 19/80: Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method and apparatus for determining neighborhood video attribute values for a frame of video data are disclosed. In one aspect, the method includes receiving coordinates for a current block location and a previous block location of the frame and generating a vector indicative of the displacement of the current block from the previous block via comparing the coordinates of the current block location to the coordinates of the previous block location. The method may also include updating the neighborhood video attribute values based at least in part on the generated vector and processing the frame based on the updated neighborhood video attribute values.

## Claims

### Claim 1

A method operable by a video coding circuit for determining neighborhood video attribute values for processing a frame of video data, the method comprising:
receiving coordinates for a current block location and a previous block location of the frame;
generating a vector indicative of the displacement of the current block from the previous block via comparing the coordinates of the current block location to the coordinates of the previous block location, the displacement of the current block from the previous block being indicative of a portion of a walk order from the previous block to the current block;
updating the neighborhood video attribute values based at least in part on the generated vector; and
processing the frame based on the updated neighborhood video attribute values.

### Claim 2 (depends on 1)

The method of claim 1, wherein the processing of the frame based on the updated neighborhood video attribute values comprises downscaling the frame via filtering the frame in at least one dimension and wherein the neighborhood video attribute values comprise a phase value, an accumulator value and a residual divisor value.

### Claim 3 (depends on 1)

The method of claim 1, wherein the vector is further indicative of the displacement of a current largest coding unit (LCU) from a previous LCU.

### Claim 4 (depends on 3)

The method of claim 3, wherein the updating of the neighborhood video attribute values comprises: determining whether the current LCU is on a left edge of the frame and whether the current LCU is on a top left edge of a tile; and using the determination to update the neighborhood video attribute values.

### Claim 5 (depends on 3)

The method of claim 3, wherein the neighborhood video attribute values comprise a current tile neighborhood video attribute value, current and previous LCU neighborhood video attribute values, and current and previous block neighborhood video attribute values.

### Claim 6 (depends on 1)

The method of claim 1, wherein the updating of the neighborhood video attribute values comprises: determining whether the current block is on a left edge of the frame; and using the determination to update the neighborhood video attribute values.

### Claim 7 (depends on 3)

The method of claim 3, wherein the vector comprises:
a first flag indicative of whether the current block has been displaced in the forward x-direction; and
a second flag indicative of whether the current block has been displaced in the forward y-direction.

### Claim 8 (depends on 3)

The method of claim 3, wherein the vector comprises:
a third flag indicative of whether the LCU has been displaced in the forward x-direction;
a fourth flag indicative of whether the LCU has been displaced in the forward y-direction;
a fifth flag indicative of whether the LCU has been displaced in the backward x-direction; and
a sixth flag indicative of whether the LCU has been displaced in the backward y-direction.

### Claim 9 (depends on 1)

The method of claim 1, the method being executable on a wireless communication device, wherein the device comprises:
a memory configured to store video data;
a processor configured to execute instructions to process the video data stored in the memory; and
a receiver configured to wirelessly receive the video data including the coordinates for the current block location and the previous block location.

### Claim 10 (depends on 9)

The method of claim 9, wherein the wireless communication device is a cellular telephone and the video data, including the coordinates for the current block location and the previous block location, is received by the receiver and modulated according to a cellular communication standard.

### Claim 11

A device for determining neighborhood video attribute values for processing a frame of video data, comprising:
a memory configured to store the video data; and
a processor in communication with the memory and configured to:
receive coordinates for a current block location and a previous block location of the frame;
generate a vector indicative of the displacement of the current block from the previous block via comparing the coordinates of the current block location to the coordinates of the previous block location, the displacement of the current block from the previous block being indicative of a portion of a walk order from the previous block to the current block;
update the neighborhood video attribute values based at least in part on the generated vector; and
process the frame based on the updated neighborhood video attribute values.

### Claim 12 (depends on 11)

The device of claim 11, wherein the processor is further configured to downscale the frame via filtering the frame in at least one dimension and wherein the neighborhood video attribute values comprise a phase value, an accumulator value and a residual divisor value.

### Claim 13 (depends on 11)

The device of claim 11, wherein the vector is further indicative of the displacement of a current largest coding unit (LCU) from a previous LCU.

### Claim 14 (depends on 13)

The device of claim 13, wherein the processor is further configured to: determine whether the current LCU is on a left edge of the frame and whether the current LCU is on a top left edge of a tile; and use the determination to update the neighborhood video attribute values.

### Claim 15 (depends on 13)

The device of claim 13, wherein the neighborhood video attribute values comprise a current tile neighborhood video attribute value, current and previous next LCU neighborhood video attribute values, and current and previous block neighborhood video attribute values.

### Claim 16 (depends on 11)

The device of claim 11, wherein the processor is further configured to: determine whether the current block is on a left edge of the frame; and use the determination to update the neighborhood video attribute values.

### Claim 17 (depends on 13)

The device of claim 13, wherein the vector comprises:
a first flag indicative of whether the current block has been displaced in the forward x-direction; and
a second flag indicative of whether the current block has been displaced in the forward y-direction.

### Claim 18 (depends on 13)

The device of claim 13, wherein the vector comprises:
a third flag indicative of whether the LCU has been displaced in the forward x-direction;
a fourth flag indicative of whether the LCU has been displaced in the forward y-direction;
a fifth flag indicative of whether the LCU has been displaced in the backward x-direction; and
a sixth flag indicative of whether the LCU has been displaced in the backward y-direction.

### Claim 19 (depends on 11)

The device of claim 11, wherein the device is a wireless communication device, the device further comprising:
a receiver configured to wirelessly receive the video data including the coordinates for the current block location and the previous block location.

### Claim 20 (depends on 19)

The device of claim 19, wherein the wireless communication device is a cellular telephone and the video data, including the coordinates for the current block location and the previous block location, is received by the receiver and modulated according to a cellular communication standard.

### Claim 21

An apparatus, comprising:
means for receiving coordinates for a current block location and a previous block location of a frame of video data;
means for generating a vector indicative of the displacement of the current block from the previous block via comparing the coordinates of the current block location to the coordinates of the previous block location, the displacement of the current block from the previous block being indicative of a portion of a walk order from the previous block to the current block;
means for updating neighborhood video attribute values for processing the frame based at least in part on the generated vector; and
means for processing the frame based on the updated neighborhood video attribute values.

### Claim 22 (depends on 21)

The apparatus of claim 21, wherein the means for processing of the frame based on the updated neighborhood video attribute values comprises means for downscaling the frame via filtering the frame in at least one dimension and wherein the neighborhood video attribute values comprise a phase value, an accumulator value and a residual divisor value.

### Claim 23 (depends on 21)

The apparatus of claim 21, wherein the vector is further indicative of the displacement of a current largest coding unit (LCU) from a previous LCU.

### Claim 24 (depends on 23)

The apparatus of claim 23, wherein the means for updating of the neighborhood video attribute values comprises: means for determining whether the current LCU is on a left edge of the frame and whether the current LCU is on a top left edge of a tile; and means for using the determination to update the neighborhood video attribute values.

### Claim 25 (depends on 23)

The apparatus of claim 23, wherein the neighborhood video attribute values comprise a current tile neighborhood video attribute value, current and previous LCU neighborhood video attribute values, and current and previous block neighborhood video attribute values.

### Claim 26 (depends on 21)

The apparatus of claim 21, wherein the means for updating of the neighborhood video attribute values comprises: means for determining whether the current block is on a left edge of the frame; and means for using the determination to update the neighborhood video attribute values.

### Claim 27 (depends on 23)

The apparatus of claim 23, wherein the vector comprises:
a first flag indicative of whether the current block has been displaced in the forward x-direction; and
a second flag indicative of whether the current block has been displaced in the forward y-direction.

### Claim 28 (depends on 23)

The apparatus of claim 23, wherein the vector comprises:
a third flag indicative of whether the LCU has been displaced in the forward x-direction;
a fourth flag indicative of whether the LCU has been displaced in the forward y-direction;
a fifth flag indicative of whether the LCU has been displaced in the backward x-direction; and
a sixth flag indicative of whether the LCU has been displaced in the backward y-direction.

### Claim 29

A non-transitory computer readable storage medium having stored thereon instructions that, when executed, cause a processor of a device to:
receive coordinates for a current block location and a previous block location of the frame;
generate a vector indicative of the displacement of the current block from the previous block via comparing the coordinates of the current block location to the coordinates of the previous block location, the displacement of the current block from the previous block being indicative of a portion of a walk order from the previous block to the current block;
update the neighborhood video attribute values based at least in part on the generated vector; and
process the frame based on the updated neighborhood video attribute values.

### Claim 30 (depends on 29)

The non-transitory computer readable storage medium of claim 29, wherein the vector is further indicative of the displacement of a current largest coding unit (LCU) from a previous LCU, the non-transitory computer readable storage medium further having stored thereon instructions that, when executed, cause the processor to: determine whether the current LCU is on a left edge of the frame and whether the current LCU is on a top left edge of a tile; and use the determination to update the neighborhood video attribute values.
