# US 2019/0174159 A1 · Adaptive video consumption

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0174159 A1
- Document ID: US20190174159A1
- Status: Published application
- Kind: A1
- Application number: 16/324,433
- Filed: 2017-08-09
- Published: 2019-06-06
- Earliest claimed: 2016-08-09
- Applicants: V-Nova International Limited
- Inventors: Gaurav MITTAL
- Web page: https://patentgrep.com/patent/US20190174159A1

## CPC

- H04N 21/23439: {for generating different versions}
- H04N 21/234327: {by decomposing into layers, e.g. base layer and one or more enhancement layers}
- H04N 21/234363: {by altering the spatial resolution, e.g. for clients with a lower screen resolution}
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/44209: {Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network (arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896)}
- H04N 21/44218: {Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV programme (methods or arrangements for recognising human body or animal bodies or body parts G06V40/10; methods or arrangements for acquiring or recognising human faces, facial parts, facial sketches, facial expressions G06V40/16; methods or arrangements for recognising movements or behaviour G06V40/20; arrangements for identifying users in broadcast systems H04H60/45)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video streaming client is configured to check whether a target version of a desired video content is available for streaming from a video streaming server, the target version being encoded to a target value of an encoding attribute. The video streaming client obtains a data communication speed to the video streaming server, and determines that the data communication speed is sufficient to stream and display the target version of the desired video content. The target value is less than a maximum value of the encoding attribute which is decodable by the video streaming client. The video streaming client is configured to select to stream the target version of the desired video content even though the data communication speed is sufficient to stream a version of the desired video content without playback interruption when encoded using a value of the encoding attribute which is higher than the target value.

## Claims

### Claim 1

A video streaming client configured to:
identify a target version of a desired video content for streaming from a video streaming server, the target version being encoded to a target value of an encoding attribute;
obtain a data communication speed to the video streaming server; and
determine that the data communication speed is sufficient to stream and display the target version of the desired video content;
characterised in that:
the target value is less than a maximum value of the encoding attribute which is decodable by the video streaming client; and
if the target version is available at the streaming server, the video streaming client is configured to select to stream the target version of the desired video content even though the data communication speed is sufficient to stream a version of the desired video content when encoded using a value of the encoding attribute which is higher than the target value.

### Claim 2 (depends on 1)

The video streaming client of claim 1, wherein the encoding attribute relates to a display property of video content.

### Claim 3

The video streaming client of any preceding claim, wherein the encoding attribute relates to a display capability of a video display.

### Claim 4

The video streaming client of any preceding claim, wherein the encoding attribute is one of the following: frame size in pixels; pixels per frame; frame rate; scanning type; colour depth; encoder profile; and encoder profile level.

### Claim 5 (depends on 4)

The video streaming client of claim 4, wherein the encoding attribute is frame size in pixels.

### Claim 6

The video streaming client of any preceding claim, wherein the video streaming client is configured to compute the target value based at least in part on a display capability of a display at the video streaming client.

### Claim 7

The video streaming client of any preceding claim, wherein the video streaming client is configured to compute the target value based at least in part on a display resolution of a display at the video streaming client.

### Claim 8 (depends on 7)

The video streaming client of claim 7, wherein the display resolution is one of the following: 320×240; 512×288; 640×480; 768×432; 960×540; 1024×576; 1280×720; 1920×1080; 2560×1440; 3840×2160; and 7680×4320 pixels.

### Claim 9 (depends on 6, 7, 8)

The video streaming client of any of claims 6 to 8, wherein the video streaming client is configured to obtain a target value is based at least in part on a viewing distance of a viewer to the display at the video streaming client.

### Claim 10 (depends on 9)

The video streaming client of claim 9, wherein the target value is obtained based at least in part on the viewing distance and a pixel density of the display.

### Claim 11 (depends on 9, 10)

The video streaming client of claim 9 or claim 10, wherein the video streaming client is configured to increase the target value if the viewer moves closer than a first distance threshold to the display.

### Claim 12 (depends on 9, 10, 11)

The video streaming client of any of claims 9 to 11, wherein the video streaming client is configured to decrease the target value if the viewer moves further than a second distance threshold from the display.

### Claim 13 (depends on 6, 7, 8, 9, 10, 11, 12)

The video streaming client of any of claims 6 to 12, comprising a sensor configured to measure the distance of the viewer to the display.

### Claim 14

The video streaming client of any preceding claim, wherein the target version is available in a plurality of bitrate versions, the video streaming client being configured to select to stream the target version at the highest available bitrate version which is supported by the data communication speed.

### Claim 15

The video streaming client of any preceding claim, wherein the video streaming server stores a plurality of versions, at least two of the plurality of versions being encoded to a different value of the encoding attribute, and the video streaming client is configured to select one of the plurality of versions.

### Claim 16

The video streaming client of any preceding claim, wherein the video streaming server performs transcoding of the video content on-the-fly, and the video streaming client is configured to request an on-the-fly transcoded version encoded to the target value of the encoding attribute.

### Claim 17 (depends on 16)

The video streaming client of claim 16, wherein the video streaming client is configured to request a particular on-the-fly transcoded version based at least in part on the data communication speed.

### Claim 18

The video streaming client of any preceding claim, wherein the video streaming client is configured to stream the video content in multi-second or part-second segments of encoded video data.

### Claim 19

The video streaming client of any preceding claim, wherein the target version is encoded to comprise a base layer and an enhancement layer, wherein the base layer is decodable to present the video content at a base level of video reproduction quality, and the enhancement layer is decodable with the base layer to present the video content at an enhanced level of video reproduction quality which is higher than the base level of reproduction quality.

### Claim 20 (depends on 19)

The video streaming client of claim 19, wherein when the target value is a first value, the video streaming client is configured to select to stream a target version comprising the base layer only, and when the target value is a second higher value, the video streaming client is configured to select to stream a target version comprising the base layer and the enhancement layer.

### Claim 21

The video streaming client of any preceding claim, wherein if the target version is not available, the video streaming client is configured to determine that the data communication speed is sufficient to stream and display a decoder version of the desired video content, wherein the decoder version is encoded using the maximum value of the encoding attribute which is decodable by the video streaming client, and to stream the decoder version.

### Claim 22

The video streaming client of any preceding claim, comprising an integrated display.

### Claim 23

The video streaming client of any preceding claim, wherein the video streaming client is part of a mobile device, such as a smartphone, tablet computer or laptop computer.

### Claim 24

A method of selecting video content to stream across a network, the video content being available in a plurality of differently encoded versions, the method comprising:
identify a target version of a desired video content for streaming from a video streaming server, the target version being encoded to a target value of an encoding attribute;
obtaining a data communication speed between a video streaming client and the video streaming server; and
determining that the data communication speed is sufficient to stream and display the target version of the desired video content at the video streaming client;
characterised in that:
the target value is less than a maximum value of the encoding attribute which is decodable by the video streaming client;
and:
if the target version is available at the streaming server, by selecting to stream the target version of the desired video content even though the data communication speed is sufficient to stream a version of the desired video content when encoded using a value of the encoding attribute which is higher than the target value.

### Claim 25 (depends on 24)

The method of claim 24, wherein the encoding attribute relates to a display property of video content.

### Claim 26 (depends on 24, 25)

The method of claim 24 or 25, wherein the encoding attribute relates to a display capability of a video display.

### Claim 27 (depends on 24, 25, 26)

The method of any of claims 24 to 26, wherein the encoding attribute is one of the following: frame size in pixels; pixels per frame; frame rate; scanning type; colour depth; encoder profile; and encoder profile level.

### Claim 28 (depends on 27)

The method of claim 27, wherein the encoding attribute is frame size in pixels.

### Claim 29 (depends on 24, 25, 26, 27, 28)

The method of any of claims 24 to 28, wherein the target value is computed based at least in part on a display capability of a display at the video streaming client.

### Claim 30 (depends on 24, 25, 26, 27, 28, 29)

The method of any of claims 24 to 29, wherein the target value is computed based at least in part on a display resolution of a display at the video streaming client.

### Claim 31 (depends on 30)

The method of claim 30, wherein the display resolution is one of the following: 320×240; 512×288; 640×480; 768×432; 960×540; 1024×576; 1280×720; 1920×1080; 2560×1440; 3840×2160; and 7680×4320 pixels.

### Claim 32 (depends on 29, 30, 31)

The method of any of claims 29 to 31, wherein the target value is obtained based at least in part on a viewing distance of a viewer to the display at the video streaming client.

### Claim 33 (depends on 32)

The method of claim 32, wherein the target value is obtained based at least in part on the viewing distance and a pixel density of the display.

### Claim 34 (depends on 32, 33)

The method of claim 32 or claim 33, wherein the target value is increased if the viewer moves closer than a first distance threshold to the display.

### Claim 35 (depends on 32, 33, 34)

The method of any of claims 32 to 34, wherein the target value is decreased if the viewer moves further than a second distance threshold from the display.

### Claim 36 (depends on 32, 33, 34, 35)

The method of any of claims 32 to 35, wherein the display or video streaming client comprises a sensor configured to measure the distance of the viewer to the display.

### Claim 37 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)

The method of any of claims 24 to 36, wherein the target version is available in a plurality of bitrate versions, and wherein selecting to stream the target version comprises selecting to stream the target version at the highest available bitrate version which is supported by the data communication speed.

### Claim 38 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)

The method of any of claims 24 to 37, wherein the video streaming server stores a plurality of versions, each version being encoded to a different value of the encoding attribute.

### Claim 39 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)

The method of any of claims 24 to 38, wherein the video streaming server performs transcoding of the video content into the target version on-the-fly in response to a request for the video encoded to the target value of the encoding attribute.

### Claim 40 (depends on 39)

The method of claim 39, wherein the transcoding is based at least in part on the data communication speed.

### Claim 41 (depends on 38, 39, 40)

The method of any claims 38 to 40, wherein the video streaming server is an edge server of a content delivery network.

### Claim 42 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)

The method of any of claims 24 to 41, wherein streaming control is performed at the video streaming client.

### Claim 43 (depends on 24, 25, 26, 27, 28)

The method of any of claims 24 to 28, wherein the video content is streamed in multi-second or part-second segments of encoded video data.

### Claim 44 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)

The method of any of claims 24 to 43, wherein the target version is encoded to comprise a base layer and an enhancement layer, wherein the base layer is decodable to present the video content at a base level of video reproduction quality, and the enhancement layer is decodable with the base layer to present the video content at an enhanced level of video reproduction quality which is higher than the base level of reproduction quality.

### Claim 45 (depends on 44)

The method of claim 44, wherein when the target value is a first value, the target version comprises the base layer only, and when the target value is a second higher value, the target version comprises the base layer and the enhancement layer.

### Claim 46 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)

The method of any of claims 24 to 45, wherein if the target version is not available, determining that the data communication speed is sufficient to stream and display a decoder version of the desired video content, wherein the decoder version is encoded using the maximum value of the encoding attribute which is decodable by the video streaming client, and streaming the decoder version.

### Claim 47 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)

The method of any of claims 24 to 46, wherein the video streaming client has an integrated display.

### Claim 48 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)

The method of any of claims 24 to 47, wherein the video streaming client is operating on a mobile device, such as a smartphone, tablet computer or laptop computer.

### Claim 49 (depends on 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)

A computer program comprising instructions which, when executed, cause a data processing device to perform the method of any of claims 24 to 48.
