US 10,893,309 B2
Method and apparatus for automatic HLS bitrate adaptation
William S. Watson, Mission Viejo, CA (US); Kuang Ming Chen, San Diego, CA (US); and Nick Baciu, San Diego, CA (US)
Assigned to ARRIS Enterprises LLC, Suwanee, GA (US)
Filed by ARRIS Enterprises LLC, Suwanee, GA (US)
Filed on Dec. 26, 2018, as Appl. No. 16/232,252.
Prior Publication US 2020/0213640 A1, Jul. 2, 2020
Int. Cl. H04N 7/173 (2011.01); H04N 21/2387 (2011.01); H04N 21/2662 (2011.01); H04N 21/643 (2011.01); H04N 21/262 (2011.01)
CPC H04N 21/2387 (2013.01) [H04N 21/2662 (2013.01); H04N 21/26283 (2013.01); H04N 21/643 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method of receiving and processing a media program, the media program comprising a plurality of media program versions, each of the plurality of media program versions generated for a different presentation throughput than the other of the plurality of media program versions, each of the plurality of media program versions comprising a plurality of media program version segments, the method comprising:
transmitting a request for the media program;
receiving a master playlist for the requested media program, the master playlist comprising an index to plurality of media playlists, each media playlist having an address to each of a plurality of media program segments of a related variant of the media program suitable for a first presentation throughput, the first presentation throughput comprising a first communication throughput and a first processing throughput;
transmitting a request for a media program segment of the plurality of media program segments of a first variant of the media program;
receiving the requested media program segment;
processing the received media program segment;
determining a presentation throughput of the received media program segment, comprising:
determining a decoding performance of the received media program segment;
determining a rendering performance of the received media program segment; and
determining the presentation throughput at least in part from the determined decoding performance and the determined rendering performance;
determining if the presentation throughput of the received media program segment differs from a desired presentation throughput by more than a tolerance amount;
if the determined presentation throughput of the received media program segment differs from the desired presentation throughput by more than a tolerance amount, transmitting a request for a temporally following media program segment of another variant of the media program suitable for the determined presentation throughput; and
if the determined presentation throughput of the received media program segment differs from the desired presentation throughput by more than a tolerance amount, transmitting a request for a temporally following media program segment of the variant of the media program suitable for the determined presentation throughput; wherein
the step of determining the decoding performance of the received media program segment comprises determining a first time interval tD required to decode ND frames of the media program segment by: (i) determining a first time when the decoding of the ND frames is initiated according to a local clock; (ii) determining a second time when the decoding of the ND frames is completed according to the local clock; and (iii) determining the time interval ND according to a difference between the second time and the first time; and
the step of determining if the presentation throughput of the received media program segment differs from the desired presentation throughput by more than a tolerance amount comprises comparing at least the determined first time interval tD with a desired playback frame interval of the media program.