Uniform video decoding and display
AssigneeNVIDIA Corporation
InventorWei Jia
Life of this patent
Estimating the term…
Abstract
Described herein are embodiments for decoding and displaying video data. Several of these embodiments utilize a unified frame buffer management system, to facilitate better memory management in decoding and displaying compressed video. One approach describes a method of decoding and displaying compressed video data. The method involves receiving a compressed video frame, and allocating a frame buffer for use in decoding the compressed video frame. A frame identifier is assigned to the allocated frame buffer. The compressed video frame is decoded into the frame buffer, and the frame identifier is passed to a display module.
Claims13
A method of decoding and displaying compressed video data, said method comprising:
- accessing a compressed video frame in a bitstream;
- selecting, with a frame buffer manager, a frame buffer from a plurality of available frame buffers, each of said available frame buffers for receiving a respective decompressed video frame of data;
- requesting said frame buffer from said frame buffer manager, wherein said frame buffer manager, upon receiving the request for said frame buffer:
- updates a listing comprising a plurality of available frame buffers, each of said available frame buffers operable for receiving a respective decompressed video frame;
- determines when said listing includes an unneeded frame buffer that is available for recycling;
- recycles said unneeded frame buffer for use as said frame buffer, when said unneeded frame buffer is available;
- and allocates said frame buffer from available memory, when said unneeded frame buffer is not available;
- assigning a frame identifier to said frame buffer producing an assigned frame identifier, wherein said assigned frame identifier serves as a pointer to a memory address of said frame buffer;
- decoding said compressed video frame into a decompressed video frame that is stored in said frame buffer, wherein said assigned frame identifier is used to identify which of said frame buffers is to receive said decompressed video frame;
- and
- passing said assigned frame identifier to a display module that outputs a video stream comprising said decompressed video frame.
A system for video decoding, said system comprising:
- a player module for receiving a bitstream of compressed video data, and for passing information;
- a core decoder, coupled to said player module, for decoding said compressed video data into decompressed video data;
- a display module, coupled to said player module, for outputting a video stream comprising said decompressed video data;
- a frame buffer manager, coupled to said player module, for selecting a frame buffer from a plurality of frame buffers;
- and
- a frame buffer module, coupled to said player module, comprising said plurality of frame buffers, wherein said bitstream of compressed video data comprises a plurality of compressed video frames, wherein said player module is configured, upon receiving a compressed video frame of said plurality of compressed video frames, to request said frame buffer from said frame buffer manager,
- wherein said frame buffer manager, upon receiving the request for said frame buffer:
- updates a listing comprising a plurality of available frame buffers, each of said available frame buffers for receiving a respective decompressed video frame;
- determines when said listing includes an unneeded frame buffer that is available for recycling;
- recycles said unneeded frame buffer for use as said frame buffer, when said unneeded frame buffer is available;
- and allocates said frame buffer from available memory, when said unneeded frame buffer is not available;
- and wherein further said frame buffer manager is configured to associate an assigned frame identifier with said frame buffer, said assigned frame identifier comprising a pointer to said frame buffer, said core decoder using said assigned frame identifier to identify which of said frame buffers is to receive a decompressed frame of video data, wherein said player module is further configured to pass said assigned frame identifier to said display module.
A method comprising:
- accessing a compressed video data frame in a bitstream;
- receiving a request for a frame buffer, wherein said frame buffer is selected from a plurality of frame buffers;
- in response to receiving said request, updating a listing comprising a plurality of available frame buffers, each of said available frame buffers for receiving a respective decompressed video frame;
- determining when said listing includes an unneeded frame buffer available for recycling;
- recycling said unneeded frame buffer for use as said frame buffer, when said unneeded frame buffer is available;
- allocating said frame buffer from available memory, when said unneeded frame buffer is not available;
- assigning a frame identifier to said frame buffer producing an assigned frame identifier;
- decoding said compressed video data frame into a decompressed video frame and storing said decompressed video frame in said frame buffer;
- and
- passing said decompressed video frame and said assigned frame identifier to a display module, wherein said assigned frame identifier serves as a pointer to a memory address of said frame buffer and is used to identify which of said frame buffers is to receive said decompressed video frame, wherein said display module accesses said decompressed video frame in said frame buffer using said assigned frame identifier and outputs a video stream comprising said decompressed video frame.
Dependencies are inferred from the claim text.