Low-latency consumption of an encoded video bitstream
Abstract
Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system comprising:
a video encoder comprising circuitry configured to:
encode a first portion of a given video frame to generate a first chunk of encoded data, the first portion comprising less than an entirety of the given video frame;
write the first chunk of encoded data to a buffer; and
provide an indication that the first chunk of encoded data is ready for consumption; and
a consumer module comprising circuitry configured to retrieve the first chunk of encoded data from the buffer prior to the video encoder completing encoding of the entirety of the given video frame, in response to detecting said indication.
2 . The system as recited in claim 1 , wherein the circuitry of the video encoder is further configured to provide said indication prior to encoding the entirety of the given video frame.
3 . The system as recited in claim 1 , wherein the circuitry of the video encoder is further configured to encode all chunks of the given video frame using intra-frame coding prediction.
4 . The system as recited in claim 1 , wherein the circuitry of the video encoder is further configured to provide an indication as to how much data is included in the first chunk.
5 . The system as recited in claim 1 , wherein a granularity at which the video encoder provides said indication.
6 . The system as recited in claim 4 , wherein:
the circuitry of the video encoder is configured to set a frame completion flag when encoding of the given video frame is complete; and the circuitry of the consumer module is configured to retrieve a final amount of encoded data from the buffer when the final amount is less than the granularity, responsive to detecting the frame completion flag is set.
7 . The system as recited in claim 6 , wherein the circuitry of the consumer module is configured to clear the frame completion flag responsive to retrieving the final amount of encoded data from the buffer.
8 . A method comprising:
encoding, by circuitry of a video encoder, a first portion of a given video frame to generate a first chunk of encoded data, the first portion comprising less than an entirety of the given video frame; writing, by the circuitry of the video encoder, the first chunk of encoded data to a buffer; providing, by the circuitry of the video encoder, an indication that the first chunk of encoded data is ready for consumption; retrieving, by circuitry of a consumer module, the first chunk of encoded data from the buffer prior to the video encoder completing encoding of the entirety of the given video frame, in response to detecting said indication.
9 . The method as recited in claim 8 , further comprising providing, by the circuitry of the video encoder, said indication prior to encoding the entirety of the given video frame.
10 . The method as recited in claim 8 , further comprising encoding all chunks of the given video frame using intra-frame coding prediction.
11 . The method as recited in claim 8 , further comprising providing an indication as to how much data is included in the first chunk.
12 . The method as recited in claim 11 , further comprising programming, by the circuitry of the consumer module, a granularity at which the video encoder provides said indication.
13 . The method as recited in claim 11 , further comprising:
setting, by the circuitry of the video encoder, a frame completion flag when encoding of the given video frame is complete; and retrieving, by the circuitry of the consumer module, a final amount of encoded data from the buffer when the final amount is less than the granularity, responsive to detecting the frame completion flag is set.
14 . The method as recited in claim 13 , further comprising clearing, by the circuitry of the consumer module, the frame completion flag responsive to retrieving the final amount of encoded data from the buffer.
15 . An apparatus comprising:
a memory; a buffer; and one or more processors coupled to the memory; wherein the apparatus is configured to:
read given video frame data from the memory;
encode a first portion of the given video frame to generate a first chunk of encoded data, the first portion comprising less than an entirety of the given video frame;
write the first chunk of encoded data to the buffer; and
provide an indication that the first chunk of encoded data is ready for consumption; and
retrieve the first chunk of encoded data from the buffer prior to the video encoder completing encoding of the entirety of the given video frame, in response to detecting said indication.
16 . The apparatus as recited in claim 15 , wherein the apparatus is further configured to provide said indication prior to encoding the entirety of the given video frame.
17 . The apparatus as recited in claim 15 , wherein the apparatus is further configured to encode all chunks of the given video frame using intra-frame coding prediction.
18 . The apparatus as recited in claim 17 , wherein the apparatus is further configured to provide an indication as to how much data is included in the first chunk.
19 . The apparatus as recited in claim 17 , wherein the apparatus is further configured to:
set a frame completion flag when the encoding of the given video frame is complete; and retrieve a final amount of encoded data from the buffer when the final amount is less than the granularity, responsive to the frame completion flag being set.
20 . The apparatus as recited in claim 19 , wherein the apparatus is further configured to clear the frame completion flag responsive to retrieving the final amount of encoded data from the buffer.Join the waitlist — get patent alerts
Track US2022159286A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.