Adaptive bitrate algorithm with cross-user based viewport prediction for 360-degree video streaming
AssigneeHulu, LLC
InventorsLan Xie, Shenglan Huang, Wenhao Zhang
Life of this patent
Estimating the term…
Abstract
In some embodiments, a method receives a probability distribution of a likelihood that a user might view one or more tiles in one or more segments of a video. The video is encoded in different profiles that are associated with different bitrates. An available bandwidth is determined. Then, the method selects a profile for each tile in a segment of the video based on the available bandwidth and the probability distribution for the tiles and sends a request for a respective profile for each tile for playback of the segment of the video.
Claims21
A method comprising:
- receiving, by a computing device, a probability distribution of a likelihood that a viewport of a user might view one or more tiles in one or more segments of a video, wherein the video is encoded in a plurality of profiles that are associated with a plurality of bitrates, and wherein the probability distribution is based on viewing information from viewports of a plurality of users other than the viewport of the user associated with a playback of the video;
- determining, by the computing device, an available bandwidth;
- during playback of the video, selecting, by the computing device, a profile for playback of a segment of the video from the plurality of profiles for each tile in the segment of the video based on the available bandwidth and the probability distribution for the tiles, wherein the selecting using the probability distribution does not use a current viewport fixation of the viewport that is viewing the video;
- sending, by the computing device, a request for a respective profile for each tile for playback of the segment of the video to a server;
- and
- receiving, by the computing device, the segment of video from the server for playback.
A method comprising:
- receiving, by a computing device, viewport positioning information in a video for a plurality of viewports of a plurality of users other than a user that is viewing the video;
- aggregating, by the computing device, the viewport positioning information for each tile in each of one or more segments of the video;
- generating, by the computing device, a probability distribution of a probability that a viewport of the user might view the one or more tiles in the one or more segments;
- and
- sending, by the computing device, the probability distribution of the probability for a segment to a client for use in selecting one of a plurality of profiles that are available for playback for tiles in the segment to request for playback of the segment of the video, wherein the selecting that uses the probability distribution does not use a current viewport fixation of the viewport that is viewing the video.
A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for:
- receiving a probability distribution of a likelihood that a viewport of a user might view one or more tiles in one or more segments of a video, wherein the video is encoded in a plurality of profiles that are associated with a plurality of bitrates, and wherein the probability distribution is based on viewing information from viewports of a plurality of users other than the viewport of the user associated with a playback of the video;
- determining an available bandwidth;
- during playback of the video, selecting a profile for playback of a segment of the video from the plurality of profiles for each tile in the segment of the video based on the available bandwidth and the probability distribution for the tiles, wherein the selecting using the probability distribution does not use a current viewport fixation of the viewport that is viewing the video;
- sending a request for a respective profile for each tile for playback of the segment of the video to a server;
- and
- receiving the segment of video from the server for playback.
Dependencies are inferred from the claim text.