IP Library Granted Patent US 11,871,040
Granted Patent B2
US 11,871,040 · App. 18/124,517 · Granted Jan 9, 2024

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,871,040
App. No.
18/124,517
Granted
Jan 9, 2024
Kind
B2
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 (43)

1. In a computer system that implements a video decoder, a method comprising:

receiving and parsing, from a coded video bitstream for a video sequence that includes multiple frames organized according to a temporal hierarchy, syntax elements that indicate different constraints on frame reordering latency for different temporal layers of the temporal hierarchy;

determining, as temporal resolution for output, one of the different temporal layers of the temporal hierarchy;

for the determined layer, selecting one of the different constraints on frame reordering latency, the selected constraint on frame reordering latency being determined, relative to a maximum size of frame memory for reordering, using a given one of the syntax elements that indicate the different constraints on frame reordering latency;

receiving, as part of the coded video bitstream, encoded data for a given frame among the multiple frames of the video sequence;

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

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

2. The method of claim 1 , wherein the given one of the syntax elements indicates an integer count for the selected constraint on frame reordering latency relative to the maximum size of frame memory for reordering.

3. The method of claim 2 , wherein the selected constraint on frame reordering latency is determined as the maximum size of frame memory for reordering plus the integer count for the selected constraint on frame reordering latency minus 1.

4. The method of claim 1 , further comprising:

receiving and parsing, from the coded video bitstream, a syntax element that indicates the maximum size of frame memory for reordering, the syntax element that indicates the maximum size of frame memory for reordering being different than the syntax elements that indicate the different constraints on frame reordering latency.

5. The method of claim 1 , further comprising:

receiving and parsing, from the coded video bitstream, a syntax element that indicates a maximum size of a decoded picture buffer, the syntax element that indicates the maximum size of the decoded picture buffer being different than the syntax elements that indicate the different constraints on frame reordering latency.

6. The method of claim 1 , wherein the syntax elements that indicate the different constraints on frame reordering latency are signaled as part of a sequence parameter set.

7. The method of claim 1 , further comprising:

receiving and parsing, from the coded video bitstream, a flag that indicates presence or absence of the syntax elements that indicate the different constraints on frame reordering latency.

8. The method of claim 1 , wherein the different temporal layers of the temporal hierarchy include a first layer, a second layer, and a third layer, wherein the second layer doubles temporal resolution of the first layer, and wherein the third layer doubles temporal resolution of the second layer.

9. One or more non-transitory computer-readable media having stored thereon, in a coded video bitstream for a video sequence that includes multiple frames organized according to a temporal hierarchy, syntax elements that indicate different constraints on frame reordering latency for different temporal layers of the temporal hierarchy, the one or more computer-readable media further having stored thereon, in the coded video bitstream, encoded data for a given frame among the multiple frames of the video sequence, the coded video bitstream being organized to facilitate playback of the video sequence, by a computer system that implements a video decoder, with operations that include:

determining, as temporal resolution for output, one of the different temporal layers of the temporal hierarchy;

for the determined layer, selecting one of the different constraints on frame reordering latency, the selected constraint on frame reordering latency being determined, relative to a maximum size of frame memory for reordering, using a given one of the syntax elements that indicate the different constraints on frame reordering latency;

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

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

10. The one or more computer-readable media of claim 9 , wherein the given one of the syntax elements indicates an integer count for the selected constraint on frame reordering latency relative to the maximum size of frame memory for reordering.

11. The one or more computer-readable media of claim 10 , wherein the selected constraint on frame reordering latency is determined as the maximum size of frame memory for reordering plus the integer count for the selected constraint on frame reordering latency minus 1.

12. The one or more computer-readable media of claim 9 , further having stored thereon, in the coded video bitstream, a syntax element that indicates the maximum size of frame memory for reordering, the syntax element that indicates the maximum size of frame memory for reordering being different than the syntax elements that indicate the different constraints on frame reordering latency.

13. The one or more computer-readable media of claim 9 , further having stored thereon, in the coded video bitstream, a syntax element that indicates a maximum size of a decoded picture buffer, the syntax element that indicates the maximum size of the decoded picture buffer being different than the syntax elements that indicate the different constraints on frame reordering latency.

14. The one or more computer-readable media of claim 9 , wherein the syntax elements that indicate the different constraints on frame reordering latency are signaled as part of a sequence parameter set.

15. The one or more computer-readable media of claim 9 , further having stored thereon, in the coded video bitstream, a flag that indicates presence or absence of the syntax elements that indicate the different constraints on frame reordering latency.

16. 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 syntax elements that indicate different constraints on frame reordering latency for different temporal layers of a temporal hierarchy;

outputting, as part of a coded video bitstream for a video sequence that includes multiple frames organized according to the temporal hierarchy, the syntax elements that indicate the different constraints on frame reordering latency, thereby facilitating determination of when reconstructed frames are ready for output according to a selected constraint on frame reordering latency that is determined, relative to a maximum size of frame memory for reordering, using a given one of the syntax elements that indicate the different constraints on frame reordering latency;

encoding a given frame among the multiple frames 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 different constraints on frame reordering latency; and

outputting, as part of the coded video bitstream, the encoded data for the given frame.

17. The computer system of claim 16 , wherein the given one of the syntax elements indicates an integer count for a given one of the different constraints on frame reordering relative to the maximum size of frame memory for reordering.

18. The computer system of claim 16 , wherein the operations further comprise:

setting a syntax element that indicates the maximum size of frame memory for reordering, the syntax element that indicates the maximum size of frame memory for reordering being different than the syntax elements that indicate the different constraints on frame reordering latency;

outputting, as part of the coded video bitstream, the syntax element that indicates the maximum size of frame memory for reordering;

setting a syntax element that indicates a maximum size of a decoded picture buffer, the syntax element that indicates the maximum size of the decoded picture buffer being different than the syntax elements that indicate the different constraints on frame reordering latency; and

outputting, as part of the coded video bitstream, the syntax element that indicates maximum size of a decoded picture buffer.

19. The computer system of claim 16 , wherein the syntax elements that indicate the different constraints on frame reordering latency are signaled as part of a sequence parameter set.

20. The computer system of claim 16 , wherein the operations further comprise:

setting a flag that indicates presence or absence of the syntax elements that indicate the different constraints on frame reordering latency; and

outputting, as part of the coded video bitstream, the flag that indicates presence or absence of the syntax elements that indicate the different constraints on frame reordering latency.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2023
From: SULLIVAN, GARY J.
To: MICROSOFT CORPORATION
Reel/Frame 063886/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2023
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063886/0932 →
Continuity (11)
Continuation 17949025 · Sep 20, 2022
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
Related Publication 20230239509A1 · Jul 27, 2023