IP Library Granted Patent US 10,523,776
Granted Patent B2
US 10,523,776 · App. 14/579,183 · Granted Dec 31, 2019

Method and apparatus for flexible caching of delivered media

Inventors: Chenghao Liu (Tampere, FI); Miska Hannuksela (Ruutana, FI)
Assignee: NOKIA TECHNOLOGIES OY
H04L67/2842H04L65/4084H04L65/605H04L65/80H04L67/02H04L67/28H04N21/2225H04N21/23439H04N21/6125H04N21/6377H04N21/8456
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,523,776
App. No.
14/579,183
Granted
Dec 31, 2019
Kind
B2
Abstract

Various methods are described for selecting an access method for flexible caching in Dynamic Adaptive Streaming over Hypertext Transfer Protocol (DASH). One example method may include causing a request for at least one of a primary representation for a segment or an alternative representation for the segment to be transmitted to a caching proxy. The method may further include causing the caching proxy to respond with at least one of the primary representation or the alternative representation based on the caching status at a caching proxy. The caching proxy may be configured to determine whether the request enables an alternative representation to be included in a response. Furthermore, the method may include receiving at least one of the primary representation or the alternative representation for the segment from the caching proxy. Similar and related example methods, example apparatuses, and computer program products are also provided.

Claims (76)

1. A method comprising:

receiving, in a proxy cache apparatus from a streaming client apparatus, a Hypertext transfer protocol (HTTP) request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

determining whether the HTTP request comprises an indication that the streaming client apparatus accepts said secondary representations;

causing a HTTP response message to be transmitted from the proxy cache apparatus to the streaming client apparatus, the HTTP response message comprising a second header field including a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

determining whether at least one of the list of URIs are associated with primary representations or said secondary representations;

causing an identification of the plurality of cached representations of media content to be included in the second header field, and causing identification of content negotiation information to also be included in the second header field;

receiving a template that specifies a secondary representation URI for the segment to be created; and

determining, based upon the secondary representation URI, which of the plurality of different representations of media content to deliver to the streaming client apparatus.

2. The method of claim 1 , wherein the first header field comprises a Cached-Alternative-Representation header field.

3. The method of claim 1 , wherein the causing the HTTP response message to be transmitted is in response to receiving the HTTP request from the streaming client apparatus.

4. The method of claim 1 , wherein the second header field comprises an Accept-Alternative-Representation header field.

5. A method comprising:

causing transmission of a Hypertext transfer protocol (HTTP) request from a streaming client apparatus to a proxy cache apparatus, the HTTP request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

in an event in which the proxy cache apparatus determines that the HTTP request comprises an indication that the streaming client apparatus accepts the secondary representations, receiving, at the streaming client apparatus, a HTTP response message from the proxy cache apparatus, the HTTP response message comprising at least a second header field comprising a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

parsing, from the second header field, an identification of each representation of media content of the plurality of different representations of media content cached by the proxy cache apparatus and the list of the URIs; and

causing the proxy cache apparatus to respond to said HTTP request by sending at least one of primary representations and the secondary representations to the streaming client apparatus.

6. The method of claim 5 , wherein the first header field comprises a Cached-Alternative-Representation header field.

7. The method of claim 5 , further comprising:

selecting at least one of the plurality of different representations of media content cached by the proxy cache apparatus; and

causing transmission of a request from the streaming client apparatus to the proxy cache apparatus for the selected at least one of the plurality of different representations of media content.

8. The method of claim 7 , wherein the HTTP request comprises an HTTP GET request.

9. The method of claim 5 , wherein the second header field comprises an Accept-Alternative-Representation header field.

10. An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the processor, cause the apparatus to at least:

receive, in a proxy cache apparatus from a streaming client apparatus, a Hypertext transfer protocol (HTTP) request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

determine whether the HTTP request comprises an indication that the streaming client apparatus accepts said secondary representations;

cause a HTTP response message to be transmitted from the proxy cache apparatus to the streaming client apparatus, the HTTP response message comprising a second header field including a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

determine whether at least one of the list of URIs are associated with primary representations or said secondary representations;

cause an identification of the plurality of cached representations of media content to be included in the second header field, and cause content negotiation information to be included in the second header field,

receive a template that specifies a secondary representation URI for the segment to be created; and

determine which of the plurality of different representations of media content to deliver to the client apparatus based on at least one of the identification and the secondary representation URI.

11. The apparatus of claim 10 , wherein the first header field comprises a Cached-Alternative-Representation header field.

12. The apparatus of claim 10 , wherein the causing the HTTP response message to be transmitted from the proxy cache apparatus is in response to receiving the HTTP request from the streaming client apparatus.

13. The apparatus of claim 10 , wherein the second header field comprises an Accept-Alternative-Representation header field.

14. An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the processor, cause the apparatus to at least:

cause transmission of a Hypertext transfer protocol (HTTP) request from a streaming client apparatus to a proxy cache apparatus, the HTTP request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

in an event in which the proxy cache apparatus determines that the HTTP request comprises an indication that the streaming client apparatus accepts the secondary representations, receive, at the streaming client apparatus, a HTTP response message from the proxy cache apparatus, the HTTP response message comprising at least a second header field comprising a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

parse, from the second header field, an identification of each representation of media content of the plurality of different representations of media content cached by the proxy cache apparatus and the list of the URIs; and

cause the proxy cache apparatus to respond to said HTTP request by sending at least one of primary representations and the secondary representations to the streaming client apparatus.

15. The apparatus of claim 14 , wherein the first header field comprises a Cached-Alternative-Representation header field.

16. The apparatus of claim 14 , wherein the at least one memory and the computer program code are further configured to:

select at least one of the plurality of different representations of media content cached by the proxy cache apparatus; and

cause transmission of a request from the streaming client apparatus to the proxy cache apparatus for the selected at least one of the plurality of different representations of media content.

17. The apparatus of claim 16 , wherein the HTTP request comprises an HTTP GET request.

18. The apparatus of claim 14 , wherein the second header field comprises an Accept-Alternative-Representation header field.

19. A non-transitory computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code portions stored therein, the computer-executable program code portions comprising program code instructions configured to:

receive, in a proxy cache apparatus from a streaming client apparatus, a Hypertext transfer protocol (HTTP) request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

determine whether the HTTP request comprises an indication that the streaming client apparatus accepts said secondary representations;

cause a HTTP response message to be transmitted from the proxy cache apparatus to the streaming client apparatus, the HTTP response message comprising a second header field including a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

determine whether at least one of the list of URIs are associated with primary representations or said secondary representations;

cause an identification of the plurality of cached representations of media content to be included in the second header field, and cause content negotiation information to be included in the header field,

receive a template that specifies a secondary representation URI for the segment to be created; and

determine which of the plurality of different representations of media content to deliver to the client apparatus based on at least one of the identification and the secondary representation URI.

20. The non-transitory computer program product of claim 19 , wherein the first header field comprises a Cached-Alternative-Representation header field.

21. The non-transitory computer program product of claim 19 , wherein the causing the HTTP response message to be transmitted is in response to receiving the HTTP request.

22. The non-transitory computer program product of claim 19 , wherein the second header field comprises an Accept-Alternative-Representation header field.

23. A non-transitory computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code portions stored therein, the computer-executable program code portions comprising program code instructions configured to:

cause transmission of a Hypertext transfer protocol (HTTP) request from a streaming client apparatus to a proxy cache apparatus, the HTTP request including a first header field indicating whether the streaming client apparatus accepts secondary representations;

in an event in which the proxy cache apparatus determines that the HTTP request comprises an indication that the streaming client apparatus accepts the secondary representations, receive, at the streaming client apparatus, a HTTP response message from the proxy cache apparatus, the HTTP response message comprising at least a second header field comprising a list of universal resource identifiers (URIs) for cached resources of a plurality of different representations of media content that are cached by the proxy cache apparatus, the HTTP response message associated with a streaming description describing the plurality of different representations of media content;

parse, from the second header field, an identification of each representation of media content of the plurality of different representations of media content cached by the proxy cache apparatus and the list of the URIs; and

cause the proxy cache apparatus to respond to said HTTP request by sending at least one of primary representations and the secondary representations to the streaming client apparatus.

24. The non-transitory computer program product of claim 23 , wherein the first header field comprises a Cached-Alternative-Representation header field.

25. The non-transitory computer program product of claim 23 , wherein the computer-executable program code portions further comprise program code instructions configured to:

select at least one of the plurality of different representations of media content cached by the proxy cache apparatus; and

cause transmission of a request from the streaming client apparatus to the proxy cache apparatus for the selected at least one of the plurality of different representations of media content.

26. The non-transitory computer program product of claim 25 , wherein the HTTP request comprises an HTTP GET request.

27. The non-transitory computer program product of claim 23 , wherein the second header field comprises an Accept-Alternative-Representation header field.

28. A method comprising:

receiving, in a proxy cache apparatus from a streaming client apparatus, a Hypertext transfer protocol (HTTP) request for at least one of a primary representation or an alternative representation for a segment of media content, said HTTP request comprising a first header field indicating whether the streaming client apparatus will accept the alternative representation of the segment of media content;

determining whether the request comprises an indication that a streaming client apparatus will accept the alternative representation of the segment of media content;

causing creation of a list and range of uniform resource indicators (URIs) for a selectable cached alternative representation for agent driven content negotiation;

determining whether at least one of a primary URI associated with the primary representation is cached;

in an instance in which the primary URI is cached, causing the primary representation of the segment of media content to be transmitted from the proxy cache apparatus to the streaming client apparatus;

receiving a template that specifies the secondary representation URI for the segment of media content to be created;

determining at least one alternative representation that is associated with the secondary representation URI in the received template;

receiving, in the proxy cache apparatus from the streaming client apparatus, a request for a resource of the selectable cached alternative representation for agent driven content negotiation; and

in an instance in which the alternative representation is cached, transmitting, in response to receiving said request for the resource of the selectable cached alternative representation, the alternative representation of the segment of media content.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2017
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 040946/0472 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION TYPE FROM DIVISIONAL TO CONTINUATION PREVIOUSLY RECORDED ON REEL 035739 FRAME 0274. ASSIGNOR(S) HEREBY CONFIRMS THE ORIGINAL APPLICATION TYPE OF DIVISIONAL IS INCORRECT. Recorded Aug 6, 2015
From: LIU, CHENGHAO; HANNUKSELA, MISKA
To: NOKIA CORPORATION
Reel/Frame 036294/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2015
From: LIU, CHENGHAO; HANNUKSELA, MISKA
To: NOKIA CORPORATION
Reel/Frame 035739/0274 →