Hybrid decoding
AssigneeShanghai Bilibili Technology Co., Ltd.
InventorWenjie Yin
Life of this patent
Estimating the term…
Abstract
Techniques for quickly displaying a first frame of a video using hybrid decoding are described herein. The disclosed techniques include starting a software decoding thread by a video player; initializing a software decoder by the software decoding thread; decoding and rendering images during a start period by the software decoder while starting a hardware decoding thread by the software decoding thread; initializing a hardware decoder by the hardware decoding thread; and decoding but not rendering the images during the start period by the hardware decoder. In this way, a first frame of a video can be displayed quickly, a waiting time can be reduced, and user experience can be improved.
Claims9
A method of fast displaying a video frame, comprising:
- starting a software decoding thread;
- initializing a software decoder by the software decoding thread;
- decoding and rendering a first group of images (GOP) of a video by the software decoder;
- starting a hardware decoding thread by the software decoding thread while decoding and rendering a first image of the GOP by the software decoder;
- initializing a hardware decoder by the hardware decoding thread while decoding and rendering at least one of other images of the GOP by the software decoder;
- sending data associated with the GOP to the hardware decoder;
- decoding the GOP by the hardware decoder, wherein the hardware decoder decodes the GOP but does not render the GOP;
- pausing the hardware decoding thread when the decoding the GOP by the hardware decoder is completed, wherein the hardware decoding thread is paused until the decoding and rendering the GOP by the software decoder is completed;
- and
- ending the software decoding thread when the decoding and rendering the GOP by the software decoder is completed.
A system of fast displaying a video frame, comprising:
- at least one processor;
- and
- at least one memory communicatively coupled to the at least one processor and storing instructions that upon execution by the at least one processor cause the system to:
- start a software decoding thread;
- initialize a software decoder by the software decoding thread;
- decode and render a first group of images (GOP) of a video by the software decoder;
- start a hardware decoding thread by the software decoding thread while decoding and rendering a first image of the GOP by the software decoder;
- initialize a hardware decoder by the hardware decoding thread while decoding and rendering at least one of other images of the GOP by the software decoder;
- send data associated with the GOP to the hardware decoder;
- decode the GOP by the hardware decoder, wherein the hardware decoder decodes the GOP but does not render the GOP;
- pause the hardware decoding thread when the decoding the GOP by the hardware decoder is completed, wherein the hardware decoding thread is paused until the decoding and rendering the GOP by the software decoder is completed;
- and
- end the software decoding thread when the decoding and rendering the GOP by the software decoder is completed.
A non-transitory computer-readable storage medium bearing computer-readable instructions that upon execution on a computing device cause the computing device at least to:
- start a software decoding thread;
- initialize a software decoder by the software decoding thread;
- decode and render a first group of images (GOP) of a video by the software decoder;
- start a hardware decoding thread by the software decoding thread while decoding and rendering a first image of the GOP by the software decoder;
- initialize a hardware decoder by the hardware decoding thread while decoding and rendering at least one of other images of the GOP by the software decoder;
- send data associated with the GOP to the hardware decoder;
- decode the GOP by the hardware decoder, wherein the hardware decoder decodes the GOP but does not render the GOP;
- pause the hardware decoding thread when the decoding the GOP by the hardware decoder is completed, wherein the hardware decoding thread is paused until the decoding and rendering the GOP by the software decoder is completed;
- and
- end the software decoding thread when the decoding and rendering the GOP by the software decoder is completed.
Dependencies are inferred from the claim text.