Encoder-sensitive stream buffer management
AssigneeAmazon Technologies, Inc.
InventorsRyan Paul Hegar, Trevor Wells, Brian Lewis, Jeffrey Lassahn
Life of this patent
Estimating the term…
Abstract
An encoding or transcoding system uses hypothetical reference decoder occupancy data to at least calculate parameters for output buffers for data streams. An output thread receives HRD buffer occupancy data and calculates buffer occupancy based on duration, rather than absolute occupancy, and correlates the HRD buffer occupancy data with target durations for buffered packets prior to release from the buffer.
Claims20
A computer-implemented method, comprising:
- decoding a stream of encoded data into decoded data;
- encoding the decoded data using a first encoding and a hypothetical reference decoder buffer so as to produce a video elementary stream, the hypothetical reference decoder buffer reserving a variable quantity of bits for encoding picture frames in the decoded data;
- multiplexing the video elementary stream into a transport stream, the transport stream comprising a plurality of encoded packets;
- encapsulating the plurality of encoded packets in User Datagram Protocol (UDP) packets such that a program clock reference (PCR) is associated with the User Datagram Protocol packets;
- buffering the User Datagram Protocol packets in an output buffer such that an initial set of User Datagram Protocol packets have a target duration prior to being released from the output buffer, the target duration calculated based at least in part on occupancy data associated with the hypothetical reference decoder buffer;
- and
- initiating streaming of the set of User Datagram Protocol packets buffered in the output buffer after the target duration has elapsed.
A system, comprising:
- one or more processors;
- and
- memory that stores computer-executable instructions that, if executed, cause the one or more processors to:
- decode a stream of encoded data into decoded data;
- encode the decoded data using a first encoding and a hypothetical reference decoder buffer so as to produce a video elementary stream, the hypothetical reference decoder buffer reserving a variable quantity of bits for encoding picture frames in the decoded data;
- multiplex the video elementary stream into a transport stream, the transport stream comprising a plurality of encoded packets;
- encapsulate the plurality of encoded packets in User Datagram Protocol (UDP) packets such that a program clock reference (PCR) is associated with the User Datagram Protocol packets;
- buffer the User Datagram Protocol packets in an output buffer such that an initial set of User Datagram Protocol packets have a target duration prior to being released from the output buffer, the target duration calculated based at least in part on occupancy data associated with the hypothetical reference decoder buffer;
- and
- initiate streaming of the set of User Datagram Protocol packets buffered in the output buffer after the target duration has elapsed.
A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- decode a stream of encoded data into decoded data;
- encode the decoded data using a first encoding and a hypothetical reference decoder buffer so as to produce a video elementary stream, the hypothetical reference decoder buffer reserving a variable quantity of bits for encoding picture frames in the decoded data;
- multiplex the video elementary stream into a transport stream, the transport stream comprising a plurality of encoded packets;
- encapsulate the plurality of encoded packets in User Datagram Protocol (UDP) packets such that a program clock reference (PCR) is associated with the User Datagram Protocol packets;
- buffer the User Datagram Protocol packets in an output buffer such that an initial set of User Datagram Protocol packets have a target duration prior to being released from the output buffer, the target duration calculated based at least in part on occupancy data associated with the hypothetical reference decoder buffer;
- and
- initiate streaming of the set of User Datagram Protocol packets buffered in the output buffer after the target duration has elapsed.
Dependencies are inferred from the claim text.