FRACTIONAL INTERPOLATION FOR HARDWARE-ACCELERATED VIDEO DECODING
1 Assignment
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.
30 Citations
40 Claims
-
1-20. -20. (canceled)
-
21. A method of video decoding using a hardware-accelerated video decoder, the method comprising:
-
classifying plural blocks according to plural motion vector types, wherein the plural motion vector types differ in terms of complexity of sample value interpolation; and with a graphics processing unit, performing motion compensation operations for the plural blocks in plural passes corresponding to the plural motion vector types, respectively. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer system that includes a hardware-accelerated video decoder adapted to perform a method of video decoding, the computer system including:
-
a classifier module for classifying plural blocks according to plural motion vector types that differ in terms of complexity of sample value interpolation; and a graphics processing unit adapted to run as an integer pixel shader, center offset shader or off-center offset shader depending on motion vector type. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39)
-
-
40. A computer system that includes a hardware-accelerated video decoder adapted to perform a method of video decoding, the computer system including:
a graphics processing unit adapted to run as an integer pixel shader, center offset shader or off-center offset shader depending on motion vector type, wherein the center offset pixel shader includes operations for interpolation to determine sample values at fractional sample positions whose sample values depend on sample values at sample positions with ½
-pixel horizontal offset and ½
-pixel vertical offset, wherein the center offset shader supports fractional interpolation for plural 4×
4 blocks in parallel, and wherein for a given 4×
4 block of sample values, the center offset shader includes operations for;loading a 9×
9 block of sample values as a support region for filtering;computing intermediate sample values by filtering loaded sample values in a first direction, wherein at least some of the intermediate sample values are buffered from block-to-block for use in other interpolation operations; and computing final sample values by filtering the intermediate sample values in a second direction.
Specification