US 11,677,934 B2
Encoding and decoding video content
Sudeng Hu, San Jose, CA (US); David L. Biderman, San Jose, CA (US); Christopher M. Garrido, Santa Clara, CA (US); Hsi-Jung Wu, San Jose, CA (US); Xiaosong Zhou, Campbell, CA (US); Dazhong Zhang, Saratoga, CA (US); Jinbo Qiu, San Jose, CA (US); Karthick Santhanam, Campbell, CA (US); Hang Yuan, San Jose, CA (US); Joshua L. Hare, Sunnyvale, CA (US); Luciano M. Verger, San Jose, CA (US); Kevin Arthur Robertson, Sunnyvale, CA (US); and Sasanka Vemuri, Pleasanton, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Sep. 24, 2021, as Appl. No. 17/485,298.
Prior Publication US 2023/0098082 A1, Mar. 30, 2023
Int. Cl. H04N 7/12 (2006.01); H04N 19/105 (2014.01); H04N 19/177 (2014.01); H04N 19/172 (2014.01); H04N 19/146 (2014.01); H04N 19/124 (2014.01)
CPC H04N 19/105 (2014.11) [H04N 19/124 (2014.11); H04N 19/146 (2014.11); H04N 19/172 (2014.11); H04N 19/177 (2014.11)] 33 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by one or more processors, a plurality of frames of a video;
generating, by the one or more processors, a data structure representing the video, wherein the data structure represents a plurality of temporal layers, and wherein generating the data structure comprises:
determining a plurality of quality levels for presenting the video, wherein each of the quality levels corresponds to a different respective sampling period for sampling the frames of the video,
assigning, based on the sampling periods, each of the frames to a respective one of the temporal layers of the data structure, wherein assigning each of the frames to the respective one of the temporal layers of the data structure comprises, for each of the frames:
determining an index number associated with that frame,
identifying, from among the quality levels, a particular quality level from among the plurality of quality levels corresponding to a sampling period that is evenly divisible by the index number, and
assigning the frame to one of the temporal layers based on the identified quality level, and
indicating, in the data structure, one or more relationships between (i) at least one the frames assigned to at least one of the temporal layers of the data structure, and (ii) at least another one of the frames assigned to at least another one of the temporal layers of the data structure; and
outputting, by the one or more processors, the data structure.