US 12,355,968 B2
Video decoding implementations for a graphics processing unit
Daniel Dinu, Redmond, WA (US); Juan Carlos Arevalo Baeza, Bellevue, WA (US); Barry Friemel, Redmond, WA (US); and William Chen, Issaquah, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jun. 26, 2023, as Appl. No. 18/214,365.
Application 18/214,365 is a continuation of application No. 18/106,927, filed on Feb. 7, 2023, granted, now 11,943,443.
Application 18/106,927 is a continuation of application No. 17/562,067, filed on Dec. 27, 2021, granted, now 11,606,559, issued on Mar. 14, 2023.
Application 17/562,067 is a continuation of application No. 16/734,042, filed on Jan. 3, 2020, granted, now 11,245,906, issued on Feb. 8, 2022.
Application 16/734,042 is a continuation of application No. 15/345,315, filed on Nov. 7, 2016, granted, now 10,567,770, issued on Feb. 18, 2020.
Application 15/345,315 is a continuation of application No. 11/824,508, filed on Jun. 30, 2007, granted, now 9,648,325, issued on May 9, 2017.
Prior Publication US 2023/0336731 A1, Oct. 19, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04N 19/13 (2014.01); G06T 1/20 (2006.01); H04N 19/105 (2014.01); H04N 19/112 (2014.01); H04N 19/124 (2014.01); H04N 19/15 (2014.01); H04N 19/159 (2014.01); H04N 19/186 (2014.01); H04N 19/31 (2014.01); H04N 19/42 (2014.01); H04N 19/43 (2014.01); H04N 19/436 (2014.01); H04N 19/44 (2014.01); H04N 19/46 (2014.01); H04N 19/51 (2014.01); H04N 19/593 (2014.01); H04N 19/61 (2014.01); H04N 19/82 (2014.01); H04N 19/89 (2014.01); H04N 19/91 (2014.01); H04N 19/137 (2014.01); H04N 19/16 (2014.01); H04N 19/172 (2014.01); H04N 19/174 (2014.01); H04N 19/176 (2014.01); H04N 19/184 (2014.01)
CPC H04N 19/13 (2014.11) [G06T 1/20 (2013.01); H04N 19/105 (2014.11); H04N 19/124 (2014.11); H04N 19/15 (2014.11); H04N 19/159 (2014.11); H04N 19/186 (2014.11); H04N 19/31 (2014.11); H04N 19/42 (2014.11); H04N 19/43 (2014.11); H04N 19/436 (2014.11); H04N 19/46 (2014.11); H04N 19/51 (2014.11); H04N 19/593 (2014.11); H04N 19/61 (2014.11); H04N 19/82 (2014.11); H04N 19/91 (2014.11); H04N 19/112 (2014.11); H04N 19/137 (2014.11); H04N 19/16 (2014.11); H04N 19/172 (2014.11); H04N 19/174 (2014.11); H04N 19/176 (2014.11); H04N 19/184 (2014.11); H04N 19/44 (2014.11); H04N 19/89 (2014.11)] 20 Claims
OG exemplary drawing
 
1. A computer system comprising one or more processing units and memory, wherein the computer system implements a video decoder configured to perform operations comprising:
decoding encoded data for a picture that includes plural portions, wherein the decoding the encoded data includes performing decoding operations, including context-adaptive binary arithmetic decoding operations, for the plural portions of the picture, the context-adaptive binary arithmetic decoding operations including, for one of the plural portions not having dependencies on other portions of the plural portions, initialization of variables, and wherein the decoding the encoded data is otherwise subject to dependencies between the plural portions that allow performing at least some of the decoding operations for the plural portions of the picture, on a wave-by-wave basis, as plural waves, the plural portions of the picture having variable size, each of the plural waves including one or more of the plural portions of the picture, wherein, for at least one of the plural waves, the dependencies between the plural portions allow at least some of the one or more portions within the wave to be processed in parallel such that the plural waves ripple from a top-left corner of the picture toward a bottom-right corner of the picture, such that each of the plural waves depends on results of the at least some of the decoding operations for any preceding waves among the plural waves, and such that, for each of the plural waves, for each given portion of the wave the at least some of the decoding operations have completed for (1) the portion, if any, left of the given portion, (2) the portion, if any, above-left of the given portion, (3) the portion, if any, above the given portion, and (4) the portion, if any, above-right of the given portion;
buffering the picture for use as a reference picture in subsequent motion compensation; and
outputting the picture.