Innovations in video decoder implementations
First Claim
1. A method comprising:
- parsing plural parameters for a first picture of plural pictures from an encoded video bit stream that includes encoded data for the plural pictures in serial coded order;
initializing the first picture by creating and filling one or more data structures for decoding the first picture;
before decoding the first picture begins, entering the initialized first picture into a decoded picture buffer for use during multi-threaded decoding and recording one or more picture commands associated with the first picture in a command queue for use during the multi-threaded decoding to simulate management of the decoded picture buffer according to single-threaded decoding of the plural pictures in the serial coded order;
repeating the parsing and the initializing for a second picture of the plural pictures;
decoding the first picture, wherein the parsing and the initializing for the second picture finish before the decoding the first picture begins; and
decoding the second picture.
2 Assignments
0 Petitions
Accused Products
Abstract
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.
101 Citations
24 Claims
-
1. A method comprising:
-
parsing plural parameters for a first picture of plural pictures from an encoded video bit stream that includes encoded data for the plural pictures in serial coded order; initializing the first picture by creating and filling one or more data structures for decoding the first picture; before decoding the first picture begins, entering the initialized first picture into a decoded picture buffer for use during multi-threaded decoding and recording one or more picture commands associated with the first picture in a command queue for use during the multi-threaded decoding to simulate management of the decoded picture buffer according to single-threaded decoding of the plural pictures in the serial coded order; repeating the parsing and the initializing for a second picture of the plural pictures; decoding the first picture, wherein the parsing and the initializing for the second picture finish before the decoding the first picture begins; and decoding the second picture. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of decoding video from a bitstream that includes encoded video data for plural pictures in serial coded order, the plural pictures including a first picture and a second picture, the method comprising:
-
parsing plural parameters for the first picture from the bit stream and initializing one or more data structures for decoding the first picture; putting one or more picture commands for the first picture in a picture command queue for use during multi-threaded decoding to simulate management of a decoded picture buffer according to single-threaded decoding of the plural pictures; parsing plural parameters for the second picture from the bit stream and initializing one or more data structures for decoding the second picture; decoding the first picture using a multi-threaded decoder, wherein the parsing and the initializing for the second picture finish before the decoding of the first picture begins; and removing a first picture command of the one or more picture commands put in the picture command queue, the multi-threaded decoder using the picture command queue to simulate management of the decoded picture buffer according to single-threaded decoding of the plural pictures. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method of decoding video from a bitstream that includes encoded video data for plural pictures in serial coded order, the plural pictures including a first picture and a second picture, the method comprising:
-
parsing plural parameters for the first picture from the bit stream and initializing one or more data structures for decoding the first picture; recording one or more picture commands associated with the first picture in a command queue for use during multi-threaded decoding to simulate management of a decoded picture buffer according to single-threaded decoding of the plural pictures; parsing plural parameters for the second picture from the bit stream and initializing one or more data structures for decoding the second picture; organizing plural decoding tasks for the first picture and the second picture using a task dependency graph that indicates dependencies between the plural decoding tasks, wherein the plural decoding tasks include at least one entropy decoding task, at least one intra prediction task, at least one motion-compensated prediction task, and at least one loop filtering task, wherein each of the plural decoding tasks is represented as a node in the task dependency graph, and wherein for the node representing a first task of the plural decoding tasks, a node structure includes; a counter for tracking a count of dependencies to other tasks on which the first task is dependent; and a list for tracking dependencies of other tasks dependent on the first task; and decoding the first picture and the second picture with multiple threads of execution using the task dependency graph, wherein the parsing and the initializing for the second picture finish before the decoding the first picture begins.
-
-
18. A computing device comprising one or more processing units, memory and storage that stores computer-executable instructions for causing the computing device to perform a method of multi-threaded video decoding, the method comprising:
-
parsing plural parameters for a first picture of plural pictures from an encoded video bit stream that includes the plural pictures in serial coded order; initializing the first picture by creating and filling one or more data structures for decoding the first picture; before decoding the first picture begins, recording one or more picture commands associated with the first picture in a command queue for use during multi-threaded decoding to simulate management of a decoded picture buffer according to single-threaded decoding of the plural pictures; repeating the parsing and the initializing for a second picture; decoding the first picture, wherein the parsing and the initializing for the second picture finish before the decoding the first picture begins; and decoding the second picture. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification