Parallel processing of a video frame
First Claim
1. A computing device comprising:
- processing hardware and storage hardware, the storage hardware storing an application that when executed by the processing hardware generates video frames;
a display;
a framebuffer configured to store the video frames generated by the processing hardware, the framebuffer operationally connected with an encoder, wherein each video frame comprises segments, the computing device configured to display the framebuffer on the display at intervals that correspond to a refresh rate; and
the encoder configured to compress the video frames, wherein the computing device is configured to generate a signal when a segment of a video frame is stored in the framebuffer, wherein, based on the signal, the encoder receives a segment of a video frame from the framebuffer before other segments of the video frame have been fully generated and stored in the framebuffer, wherein the encoder begins encoding the received segment of the video frame before the video frame completely fills the framebuffer, and wherein during a single interval the video frame has;
a first segment being stored into the framebuffer, and a second segment being compressed by the encoder from the framebuffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A graphics pipeline with components that process frames by portions (e.g., pixels or rows) or slices to reduce end-to-end latency. Components of a pipeline process portions of a same frame at the same time. For example, as graphics data for a frame is being generated and fills a framebuffer, once a certain portion of video data less than the whole frame (slice or sub-frame) becomes available, before the corresponding frame is finished filling the framebuffer, the next pipeline component after the framebuffer, for instance a video processor for color conversion or an encoder, begins to process the portion of the frame. While one portion of a frame is accumulating in the frame buffer, another portion of the same frame is being encoded by an encoder, and another portion of the frame might be being packaged by a multiplexer, and a network socket might start streaming the multiplexed portion.
35 Citations
19 Claims
-
1. A computing device comprising:
-
processing hardware and storage hardware, the storage hardware storing an application that when executed by the processing hardware generates video frames; a display; a framebuffer configured to store the video frames generated by the processing hardware, the framebuffer operationally connected with an encoder, wherein each video frame comprises segments, the computing device configured to display the framebuffer on the display at intervals that correspond to a refresh rate; and the encoder configured to compress the video frames, wherein the computing device is configured to generate a signal when a segment of a video frame is stored in the framebuffer, wherein, based on the signal, the encoder receives a segment of a video frame from the framebuffer before other segments of the video frame have been fully generated and stored in the framebuffer, wherein the encoder begins encoding the received segment of the video frame before the video frame completely fills the framebuffer, and wherein during a single interval the video frame has;
a first segment being stored into the framebuffer, and a second segment being compressed by the encoder from the framebuffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, performed by a computing device, to perform concurrent encoding and multiplexing of video frames, the method comprising:
-
receiving, from processing hardware of the computing device, a second portion of a video frame at a framebuffer, and based on the complete second portion being stored in the framebuffer, generating a signal; displaying each of the video frames from the framebuffer as they are respectively stored in the framebuffer; after generating the signal, beginning to receive, from the processing hardware of the computing device, a first portion of a video frame at the framebuffer, wherein the first and second portions of the video frame are received from a source that generates the video frames and renders the video frames to the framebuffer; and based on the signal, encoding, by a video encoding hardware module, the second portion of the video frame received from the framebuffer, wherein the encoding of the second portion begins before the first portion of the video frame is fully stored in the framebuffer. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computing device comprising:
-
a graphics pipeline comprising a framebuffer, an encoder, and a multiplexor, the graphics pipeline configured to receive video frames newly generated to the frame buffer by application software on the computing device and to output a video stream comprised of the video frames encoded multiplexed with audio data, wherein the framebuffer supplies video frame portions to a video encoder and the encoder supplies encoded video frame portions to the multiplexer; and the computing device configured such that, when operating, the framebuffer will receive a first portion of a video frame while the encoder encodes a second portion of the video frame and while the multiplexer concurrently multiplexes audio data with a third portion of the video frame with audio data, the computing device further configured such that, when operating, the multiplexor multiplexes the encoded third portion of the video frame before receiving the first portion of the video frame. - View Dependent Claims (16, 17, 18, 19)
-
Specification