IP Library › Granted Patent US 9,762,911
Granted Patent B2
US 9,762,911 · App. 14/334,257 · Granted Sep 12, 2017

Content adaptive prediction and entropy coding of motion vectors for next generation video

Inventors: Atul Puri (Redmond, WA); Daniel Socek (Miami, FL); Chang Kee Choi (Bellevue, WA)
Assignee: Intel Corporation
H04N19/119H04N19/105H04N19/117H04N19/12H04N19/122H04N19/124H04N19/126H04N19/13H04N19/136H04N19/139H04N19/14H04N19/159H04N19/167H04N19/17H04N19/172H04N19/176H04N19/182H04N19/184H04N19/186H04N19/1887H04N19/192H04N19/196H04N19/31H04N19/40H04N19/513H04N19/517H04N19/523H04N19/53H04N19/573H04N19/577H04N19/59H04N19/593H04N19/61H04N19/63H04N19/82H04N19/91H04N19/96H04N19/44
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,762,911
App. No.
14/334,257
Granted
Sep 12, 2017
Kind
B2
Abstract

Techniques related to content adaptive prediction and entropy coding of motion vectors are described.

Claims (38)

1. A computer-implemented method for video coding, comprising:

obtaining motion vector data comprising a plurality of motion vectors for a video frame;

determining a first predicted motion vector using a median motion vector prediction technique for each motion compensated block of the video frame based on motion vectors of its neighboring blocks;

determining a second predicted motion vector using a selected motion vector prediction technique for each motion compensated block based on motion vectors of its neighboring blocks, wherein the selected motion vector prediction technique is a first motion vector prediction technique when the median based motion vector is a zero motion vector and a second motion vector prediction technique different than the first motion vector prediction technique when the median based motion vector is a non-zero motion vector;

selecting the first or the second predicted motion vector for each motion compensated block and defining a motion vector bit mask identifying the median or the selected motion vector prediction technique for each motion compensated block;

determining a selected coding method for the motion vector bit mask; and

encoding the motion vector bit mask into a bitstream based on the selected coding method.

2. The method of claim 1 , further comprising:

determining a frame level motion vector prediction method based on a bit cost analysis of a plurality of frame level motion vector prediction methods, wherein the frame level motion vector prediction method defines the selected motion vector prediction technique;

differencing the plurality of motion vectors with an associated selected predicted motion vector for each motion compensated block to generate a plurality of motion vector differences; and

coding a frame level motion vector prediction method header, a selected coding method header, and an encoded payload comprising the plurality of motion vector differences into the bitstream.

3. A video encoder comprising:

an image buffer;

a graphics processing unit comprising entropy encoder logic circuitry, wherein the graphics processing unit is communicatively coupled to the image buffer and wherein the entropy encoder logic circuitry is configured to:

receive motion vector data comprising a plurality of motion vectors for a video frame;

determine a first predicted motion vector using a median motion vector prediction technique for each motion compensated block of the video frame based on motion vectors of its neighboring blocks;

determine a second predicted motion vector using a selected motion vector prediction technique for each motion compensated block based on motion vectors of its neighboring blocks, wherein the selected motion vector prediction technique is a first motion vector prediction technique when the median based motion vector is a zero motion vector and a second motion vector prediction technique different than the first motion vector prediction technique when the median based motion vector is a non-zero motion vector;

select the first or the second predicted motion vector for each motion compensated block and define a motion vector bit mask identifying the median or the selected motion vector prediction technique for each motion compensated block;

determine a selected coding method for the motion vector bit mask; and

encode the motion vector bit mask into a bitstream based on the selected coding method.

4. The video encoder of claim 3 , wherein the entropy encoder logic circuitry is further configured to:

determine a frame level motion vector prediction method based on a bit cost analysis of a plurality of frame level motion vector prediction methods, wherein the frame level motion vector prediction method defines the selected motion vector prediction technique;

difference the plurality of motion vectors with an associated selected predicted motion vector for each motion compensated block to generate a plurality of motion vector differences; and

code a frame level motion vector prediction method header, a selected coding method header, and an encoded payload comprising the plurality of motion vector differences into the bitstream.

5. A system comprising:

a video decoder configured to decode an entropy encoded bitstream, wherein the video decoder is configured to:

decode the entropy encoded bitstream to determine a frame level motion vector prediction method and a motion vector bit mask for a video frame, wherein the motion vector bit mask identifies a median or a selected motion vector prediction technique for each motion compensated block of the video frame based on motion vectors of its neighboring blocks, and wherein the selected motion vector prediction technique is based on the frame level motion vector prediction method and a first motion vector for each motion compensated block determined based on the median motion vector prediction technique;

determine, based on the motion vector bit mask, a first individual motion compensated block is associated with the median motion vector prediction technique and a second individual motion compensated block is associated with the selected motion vector prediction technique;

generate a first predicted motion vector associated with the first individual motion compensated block based on the median motion vector prediction technique;

generate a median based prediction motion vector associated with the second individual motion compensated block; and

generate a second predicted motion vector associated with the second motion compensated block based on a spiral motion vector prediction technique when the median based prediction motion vector is a zero motion vector and based on at least one of a Graham motion vector prediction technique or a Graham last block motion vector prediction technique when the median based prediction motion vector is a non-zero motion vector.

6. The system of claim 5 , further comprising:

an antenna communicatively coupled to the video decoder and configured to receive the entropy encoded bitstream; and

a display device configured to present a video frame,

wherein the video decoder is further configured to:

decode the entropy encoded bitstream to determine a first difference motion vector associated with the first individual motion compensated block and a second difference motion vector associated with the second individual motion compensated block of the video frame;

add the first difference motion vector and the first predicted motion vector to determine a first final motion vector for the first individual motion compensated block; and

add the second difference motion vector and the second predicted motion vector to determine a first final motion vector for the first individual motion compensated block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2015
From: PURI, ATUL; CHOI, CHANG KEE; SOCEK, DANIEL
To: INTEL CORPORATION
Reel/Frame 035867/0380 →
Continuity (3)
Continuation In Part PCTUS2013077698 · Dec 24, 2013
Provisional Application 61758314 · Jan 30, 2013
Related Publication 20140362922A1 · Dec 11, 2014