IP Library Granted Patent US 11,601,684
Granted Patent B1
US 11,601,684 · App. 17/949,049 · Granted Mar 7, 2023

Reducing latency in video encoding and decoding

Inventor: Gary J. Sullivan (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/70H04N19/103H04N19/15H04N19/172H04N19/31H04N19/44H04N19/46H04N19/88H04N19/184
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 11,601,684
App. No.
17/949,049
Granted
Mar 7, 2023
Kind
B1
Abstract

Techniques and tools for reducing latency in video encoding and decoding by constraining latency due to reordering of video frames, and by indicating the constraint on frame reordering latency with one or more syntax elements that accompany encoded data for the video frames. For example, a real-time communication tool with a video encoder sets a syntax element that indicates a constraint on frame reordering latency, which is consistent with inter-frame dependencies between multiple frames of a video sequence, then outputs the syntax element. A corresponding real-time communication tool with a video decoder receives the syntax element that indicates the constraint on frame reordering latency, determines the constraint on frame reordering latency based on the syntax element, and uses the constraint on frame reordering latency to determine when a reconstructed frame is ready for output (in terms of output order).

Claims (36)

1. Computer-readable tangible storage having stored thereon computer-executable instructions for causing one or more processing units, when programmed thereby, to perform operations comprising:

receiving and parsing one or more syntax elements that indicate a constraint on frame reordering latency, wherein the constraint on frame reordering latency is expressed in terms of a maximum count of frames that can precede any frame of a video sequence in output order but follow that frame in coded order;

determining the constraint on frame reordering latency based upon the one or more syntax elements;

receiving encoded data for a given frame of the video sequence;

decoding the encoded data for the given frame to reconstruct the given frame; and

outputting the reconstructed frame, wherein the constraint is used to determine when the reconstructed frame is ready for output.

2. The computer-readable tangible storage of claim 1 , wherein the one or more syntax elements and the encoded data for the given frame are signaled as part of syntax for a coded video bitstream, the operations further comprising:

receiving and parsing a buffer size syntax element that indicates maximum size of a decoded picture buffer, wherein the buffer size syntax element is different than the one or more syntax elements that indicate the constraint on frame reordering latency.

3. The computer-readable tangible storage of claim 1 , wherein the one or more syntax elements are signaled as part of a sequence parameter set.

4. The computer-readable tangible storage of claim 1 , wherein the operations further comprise:

receiving a flag that indicates presence or absence of the one or more syntax elements.

5. The computer-readable tangible storage of claim 1 , wherein one possible value of the one or more syntax elements indicates the constraint on frame reordering latency is undefined or has a default value, and wherein other possible values of the one or more syntax elements indicate an integer count for the constraint on frame reordering latency.

6. The computer-readable tangible storage of claim 1 , wherein the video sequence includes multiple frames organized according to a temporal hierarchy, the multiple frames including the given frame, and wherein different constraints on frame reordering latencies apply for different temporal layers of the temporal hierarchy.

7. The computer-readable tangible storage of claim 6 , wherein the operations further comprise selecting, as the constraint on frame reordering latency, one of the different constraints on frame reordering latencies depending on temporal resolution of the output.

8. The computer-readable tangible storage of claim 1 , wherein a value of the one or more syntax elements indicates an integer count for the constraint on frame reordering latency relative to a maximum size of frame memory for reordering, the maximum size of frame memory for reordering being indicated with a different syntax element.

9. The computer-readable tangible storage of claim 8 , wherein the constraint on frame reordering latency can be determined as a maximum count for the maximum size of frame memory for reordering plus the integer count for the constraint on frame reordering latency minus 1.

10. A computer system comprising one or more processing units and memory, wherein the computer system implements a video encoder configured to perform operations comprising:

setting one or more syntax elements that indicate a constraint on frame reordering latency, wherein the constraint on frame reordering latency is expressed in terms of a maximum count of frames that can precede any frame of a video sequence in output order but follow that frame in coded order;

outputting the one or more syntax elements, thereby facilitating determination of when reconstructed frames are ready for output;

encoding a given frame of the video sequence, thereby producing encoded data for the given frame, wherein the encoding uses inter-frame dependencies, within the video sequence, that are consistent with the constraint on frame reordering latency; and

outputting the encoded data for the given frame.

11. The computer system of claim 10 , wherein the one or more syntax elements and the encoded data for the given frame are output as part of syntax for a coded video bitstream, the operations further comprising:

outputting a buffer size syntax element that indicates maximum size of a decoded picture buffer, wherein the buffer size syntax element is different than the one or more syntax elements that indicate the constraint on frame reordering latency.

12. The computer system of claim 10 , wherein the one or more syntax elements are output as part of a sequence parameter set.

13. The computer system of claim 10 , wherein one possible value of the one or more syntax elements indicates the constraint on frame reordering latency is undefined or has a default value, and wherein other possible values of the one or more syntax elements indicate an integer count for the constraint on frame reordering latency.

14. The computer system of claim 10 , wherein a value of the one or more syntax elements indicates an integer count for the constraint on frame reordering latency relative to a maximum size of frame memory for reordering, the maximum size of frame memory for reordering being indicated with a different syntax element.

15. The computer system of claim 14 , wherein the constraint on frame reordering latency can be determined as a maximum count for the maximum size of frame memory for reordering plus the integer count for the constraint on frame reordering latency minus 1.

16. Computer-readable tangible storage having stored thereon, in a bitstream, one or more syntax elements that indicate a constraint on frame reordering latency, wherein the constraint on frame reordering latency is expressed in terms of a maximum count of frames that can precede any frame of a video sequence in output order but follow that frame in coded order, the computer-readable tangible storage further having stored thereon, in the bitstream, encoded data for a given frame of the video sequence, the bitstream having been produced, with a computer system that implements a video encoder, by operations comprising:

setting the one or more syntax elements that indicate the constraint on frame reordering latency;

outputting the one or more syntax elements, thereby facilitating determination of when reconstructed frames are ready for output;

encoding the given frame of the video sequence, thereby producing the encoded data for the given frame, wherein the encoding uses inter-frame dependencies, within the video sequence, that are consistent with the constraint on frame reordering latency; and

outputting the encoded data for the given frame.

17. The computer-readable tangible storage of claim 16 , wherein the one or more syntax elements are signaled as part of a sequence parameter set.

18. The computer-readable tangible storage of claim 16 , wherein one possible value of the one or more syntax elements indicates the constraint on frame reordering latency is undefined or has a default value, and wherein other possible values of the one or more syntax elements indicate an integer count for the constraint on frame reordering latency.

19. The computer-readable tangible storage of claim 16 , wherein a value of the one or more syntax elements indicates an integer count for the constraint on frame reordering latency relative to a maximum size of frame memory for reordering, the maximum size of frame memory for reordering being indicated with a different syntax element.

20. The computer-readable tangible storage of claim 19 , wherein the constraint on frame reordering latency can be determined as a maximum count for the maximum size of frame memory for reordering plus the integer count for the constraint on frame reordering latency minus 1.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2022
From: SULLIVAN, GARY J.
To: MICROSOFT CORPORATION
Reel/Frame 062073/0010 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2022
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 062073/0104 →
Continuity (9)
Continuation 17890398 · Aug 18, 2022
Continuation 17143782 · Jan 7, 2021
Continuation 17009918 · Sep 2, 2020
Continuation 15963899 · Apr 26, 2018
Continuation 15647962 · Jul 12, 2017
Continuation 15201160 · Jul 1, 2016
Continuation 14458997 · Aug 13, 2014
Continuation 13270969 · Oct 11, 2011
Provisional Application 61571553 · Jun 30, 2011