IP Library Granted Patent US 10,136,155
Granted Patent B2
US 10,136,155 · App. 15/273,781 · Granted Nov 20, 2018

Motion compensation using a patchwork motion field

Inventors: Arild Fuldseth (Snarøya, NO); Gisle Bjontegaard (Oppegard, NO)
Assignee: Cisco Technology, Inc.
H04N19/52H04N19/105H04N19/139H04N19/172H04N19/176H04N19/577
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 10,136,155
App. No.
15/273,781
Granted
Nov 20, 2018
Kind
B2
Abstract

Techniques for direct mode video coding/decoding techniques. According to one embodiment, various blocks in B frames may use motion vectors from different reference frames (P frames or B frames), according to what is referred to herein as a patchwork motion field. Different blocks of a given frame may use motion vectors inherited from different frames for purposes of computing a predicted block for the given frame.

Claims (57)

1. A method for direct mode video coding/decoding using collocated motion vectors from different reference frames that are part of a patchwork motion field, the method comprising:

determining for a first block in a first frame in a sequence of frames of a video signal, a collocated block that is in a second frame of the sequence of frames, the collocated block in the second frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the second frame;

computing a predicted block for the first block in the first frame using the motion vector of the collocated block in the second frame;

determining for a second block of the first frame, a collocated block that is in a third frame of the sequence of frames, the collocated block in the third frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the third frame, wherein the second frame is closer temporally to the first frame than the third frame is to the first frame;

determining, for the second block in the first frame, whether a collocated block in the second frame does not have an explicitly transmitted motion vector indicative of a skip mode;

wherein the determining for the second block in the first frame, the collocated block in the third frame that has an explicitly transmitted motion vector is performed when it is determined that, for the second block in the first frame, the collocated block in the second frame does not have an explicitly transmitted motion vector; and

computing a predicted block for the second block of the first frame using the motion vector of the collocated block in the third frame.

2. The method of claim 1 , wherein the second frame is prior to the first frame, in display order, and the third frame is after the first frame, in display order.

3. The method of claim 1 , wherein the second frame and the third frame are prior to the first frame, in display order.

4. The method of claim 1 , wherein the second frame and the third frame are after the first frame, in display order.

5. The method of claim 1 , wherein the first frame, second frame and third frame are part of a hierarchical frame reordering scheme.

6. The method of claim 1 , wherein the determining for the first block, computing the predicted block for the first block, determining for the second block, and computing the predicted block for the second block, are performed at an encoder.

7. The method of claim 1 , wherein the determining for the first block, computing the predicted block for the first block, determining for the second block, and computing the predicted block for the second block, are performed at a decoder.

8. The method of claim 1 , wherein the determining for the first block, computing the predicting block for the first block, determining for the second block, and computing the predicted block for the second block, are performed at an encoder.

9. The method of claim 1 , further comprising:

for each of a plurality of blocks in the first frame, storing data describing a motion vector that is derived from collocated blocks of a plurality of previously decoded frames that are available for forming a predicted block for each of the plurality of blocks of the first frame, each motion vector having an x-component and a y-component; and

for a given block of the plurality of blocks, modifying the motion vector of the given block by filtering the motion vector for the given block based on an x-component and a y-component of the motion vector of the given block and x-components and y-components of motion vectors for two or more neighboring blocks to the given block to produce a modified motion vector for the given block.

10. The method of claim 1 , wherein:

computing the predicted block for the first block in the first frame is performed based on the motion vector of the collocated block in the second frame and an offset vector for forward prediction and for backward prediction; and

computing the predicted block for the second block in the first frame is performed based on the motion vector of the collocated block in the third frame and the offset vector for forward prediction and for backward prediction.

11. The method of claim 1 , wherein:

computing the predicted block for the first block in the first frame is performed based on the motion vector of the collocated block in the second frame and a first offset vector for forward prediction and a second offset vector for backward prediction; and

computing the predicted block for the second block in the first frame is performed based on the motion vector of the collocated block in the third frame and the first offset vector for forward prediction and the second offset vector for backward prediction.

12. An apparatus for direct mode video coding/decoding using collocated motion vectors from different reference frames that are part of a patchwork motion field, the apparatus comprising:

a communication interface configured to enable network communications;

a memory;

a processor coupled to the communication interface and the memory, wherein the processor is configured to:

determine for a first block in a first frame in a sequence of frames of a video signal, a collocated block that is in a second frame of the sequence of frames, the collocated block in the second frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the second frame;

compute a predicted block for the first block in the first frame using the motion vector of the collocated block in the second frame;

determine for a second block in the first frame, a collocated block that is in a third frame of the sequence of frames, the collocated block in the third frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the third frame, wherein the second frame is closer temporally to the first frame than the third frame is to the first frame;

determine, for the second block in the first frame, whether a collocated block in the second frame does not have an explicitly transmitted motion vector indicative of a skip mode;

perform the determining for the second block in the first frame, the collocated block in the third frame that has an explicitly transmitted motion vector, when it is determined that, for the second block in the first frame, the collocated block in the second frame does not have an explicitly transmitted motion vector; and

compute a predicted block for the second block in the first frame using the motion vector of the collocated block in the third frame.

13. The apparatus of claim 12 , wherein the second frame is prior to the first frame, in display order, and the third frame is after the first frame, in display order.

14. The apparatus of claim 12 , wherein the second frame and the third frame are prior to the first frame, in display order.

15. The apparatus of claim 12 , wherein the second frame and the third frame are after the first frame, in display order.

16. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to perform operations for direct mode video coding/decoding using collocated motion vectors from different reference frames that are part of a patchwork motion field, the operations comprising:

determining for a first block in a first frame in a sequence of frames of a video signal, a collocated block that is in a second frame of the sequence of frames, the collocated block in the second frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the second frame;

computing a predicted block for the first block in the first frame using the motion vector of the collocated block in the second frame;

determining for a second block in the first frame, a collocated block that is in a third frame of the sequence of frames, the collocated block in the third frame having an explicitly transmitted motion vector pointing to a previously decoded frame of the sequence of frames that is different from the first frame and the third frame, wherein the second frame is closer temporally to the first frame than the third frame is to the first frame;

determining, for the second block in the first frame, whether a collocated block in the second frame does not have an explicitly transmitted motion vector indicative of a skip mode;

wherein the determining for the second block in the first frame, the collocated block in the third frame that has an explicitly transmitted motion vector is performed when it is determined that, for the second block in the first frame, the collocated block in the second frame does not have an explicitly transmitted motion vector; and

computing a predicted block for the second block in the first frame using the motion vector of the collocated block in the third frame.

17. The non-transitory computer readable storage media of claim 16 , wherein the second frame is closer temporally to the first frame than the third frame is to the first frame, further comprising instructions operable for:

determining, for the second block in the first frame, that a collocated block in the second frame does not have an explicitly transmitted motion vector.

18. The apparatus of claim 12 , wherein the processor is configured to:

compute the predicted block for the first block in the first frame based on the motion vector of the collocated block in the second frame and an offset vector for forward prediction and for backward prediction; and

compute the predicted block for the second block in the first frame based on the motion vector of the collocated block in the third frame and the offset vector for forward prediction and for backward prediction.

19. The apparatus of claim 12 , wherein the processor is configured to:

compute the predicted block for the first block in the first frame based on the motion vector of the collocated block in the second frame and a first offset vector for forward prediction and a second offset vector for backward prediction; and

compute the predicted block for the second block in the first frame based on the motion vector of the collocated block in the third frame and the first offset vector for forward prediction and the second offset vector for backward prediction.

20. The non-transitory computer readable storage media of claim 16 , further comprising instructions operable for:

computing the predicted block for the first block in the first frame based on the motion vector of the collocated block in the second frame and an offset vector for forward prediction and for backward prediction; and

computing the predicted block for the second block in the first frame based on the motion vector of the collocated block in the third frame and the offset vector for forward prediction and for backward prediction.

21. The non-transitory computer readable storage media of claim 16 , further comprising instructions operable for:

computing the predicted block for the first block in the first frame based on the motion vector of the collocated block in the second frame and a first offset vector for forward prediction and a second offset vector for backward prediction; and

computing the predicted block for the second block in the first frame based on the motion vector of the collocated block in the third frame and the first offset vector for forward prediction and the second offset vector for backward prediction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2016
From: FULDSETH, ARILD; BJONTEGAARD, GISLE
To: CISCO TECHNOLOGY, INC.
Reel/Frame 039838/0869 →
Continuity (2)
Provisional Application 62367236 · Jul 27, 2016
Related Publication 20180035127A1 · Feb 1, 2018
Cited By (1)
US 12,647,616