IP Library › Granted Patent US 9,392,337
Granted Patent B2
US 9,392,337 · App. 13/335,388 · Granted Jul 12, 2016

Wireless TCP link state monitoring based video content adaptation and data delivery

Inventors: Sanjay Dixit (Cupertino, CA); Biswaranjan Panda (Santa Clara, CA); Jayaraman Iyer (San Jose, CA); Bhaskar Bhupalam (Santa Clara, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04N21/6131H04L65/4084H04L65/602H04L69/04H04N21/64738H04N21/64784H04L67/32H04L69/161
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 9,392,337
App. No.
13/335,388
Granted
Jul 12, 2016
Kind
B2
Abstract

Systems and methods are used for receiving a video request from a user equipment for video to be downloaded; determining a link bandwidth status associated with the user equipment; in response to the link bandwidth status associated with the user equipment, determining whether to implement one or more additional processing functions associated with the video delivery; during the video delivery, repeating the determining such that the one or more additional processing functions associated with the video delivery can be implemented or not implemented at different times during the video delivery. These processing functions can include transrating, HTTP optimization, TCP optimization, and video pacing.

Claims (43)

1. A method comprising:

receiving, at a network device, a video request from a user equipment for video to be downloaded;

determining a link bandwidth status associated with the user equipment;

determining whether to implement one or more additional processing functions associated with the video delivery;

selecting a processing function of the one or more additional processing functions to process the video delivery upon the determination to implement the one or more additional processing functions, based at least in part on the link bandwidth status;

determining whether the video has been previously processed in accordance with the selected processing function and stored in memory;

downloading the previously processed video from the memory to the user equipment when it is determined that the video has been previously processed in accordance with the selected processing function and stored in the memory, and sending, from the network device to a content adaptation engine, a video request including an identifier of the video and a level of video adaptation based on the link bandwidth status when it is determined that the video has not been previously processed in accordance with the selected processing function and stored in the memory; and

during the video delivery, repeating the determining the link bandwidth status associated with the user equipment such that the one or more additional processing functions associated with the video delivery can be selected for implementing or not implementing at different times during the video delivery.

2. The method of claim 1 , wherein the one or more additional processing functions include video transrating, and wherein the transrating is implemented when a video encoding rate is higher than an estimated link bandwidth, the transrating reducing an amount of data to be delivered for the video.

3. The method of claim 2 , wherein the transrating is performed at one of a plurality of different rates, and wherein the rate of transrating is determined based on the amount of a difference between the link bandwidth and the video encoding rate.

4. The method of claim 1 , wherein the one or more additional processing functions include Hypertext Transfer Protocol (HTTP) optimization.

5. The method of claim 1 , wherein the one or more additional processing functions include Transmission Control Protocol (TCP) transport optimization, including modification of TCP parameters.

6. The method of claim 1 , wherein the one or more additional processing functions include video pacing.

7. The method of claim 1 , wherein the one or more additional processing functions include two or more of the transrating, HTTP optimization, TCP optimization, and video pacing.

8. The method of claim 1 , wherein the determining is done periodically during video delivery every 2-10 seconds.

9. A network device comprising:

interfaces configured to communicate with user equipment and with a source of video;

memory configured to store one or more modules; and

a processor configured to run the one or more modules for:

determining a link bandwidth status associated with the user equipment for a video download,

based at least in part on the link bandwidth status associated with the user equipment, determining whether to implement one or more additional processing functions associated with the video delivery,

selecting a processing function of the one or more additional processing functions to process the video delivery upon the determination to implement the one or more additional processing functions, based at least in part on the link bandwidth status associated with the user equipment;

determining whether the video has been previously processed in accordance with the selected processing function and stored in memory;

downloading the previously processed video from the memory to the user equipment when it is determined that the video has been previously processed in accordance with the selected processing function and stored in the memory, and sending, from the network device to a content adaptation engine, a video request including an identifier of the video and a level of video adaptation based on the link bandwidth status when it is determined that the video has not been previously processed in accordance with the selected processing function and stored in the memory; and

during the video delivery, repeating the determining the link bandwidth status associated with the user equipment such that the one or more additional processing functions associated with the video delivery can be selected for implementing or not implementing at different times during the video delivery.

10. The device of claim 9 , wherein the one or more additional processing functions include video transrating, and wherein the transrating is implemented when a video encoding rate is higher than an estimated link bandwidth, the transrating reducing an amount of data to be delivered for the video.

11. The device of claim 10 , wherein the transrating is performed at one of a plurality of at different rates, and wherein the rate of transrating is determined based on the amount of a difference between the link bandwidth and the video encoding rate.

12. The device of claim 9 , wherein the one or more additional processing functions includes Hypertext Transfer Protocol (HTTP) optimization.

13. The device of claim 9 , wherein the one or more additional processing functions include Transport Control Protocol (TCP) transport optimization, including modification of TCP parameters.

14. The device of claim 9 , wherein the one or more additional processing functions include video pacing.

15. The device of claim 9 , wherein the one or more additional processing functions include two or more of the transrating, HTTP optimization, TCP optimization, and video pacing.

16. The device of claim 9 , wherein the determining is done periodically during video delivery every 2-10 seconds.

17. Logic encoded on one or more non-transitory media for execution and when executed operable to:

receive, at a network device, a video request from a user equipment for video to be downloaded;

determine a link bandwidth status associated with the user equipment;

determine whether to implement one or more additional processing functions associated with the video delivery;

select a processing function of the one or more additional processing functions to process the video delivery upon the determination to implement the one or more additional processing functions, based at least in part on the link bandwidth status associated with the user equipment;

determine whether the video has been previously processed in accordance with the selected processing function and stored in memory;

download the previously processed video from the memory to the user equipment when it is determined that the video has been previously processed in accordance with the selected processing function and stored in the memory, and send, from the network device to a content adaptation engine, a video request including an identifier of the video and a level of video adaptation based on the link bandwidth status when it is determined that the video has not been previously processed in accordance with the selected processing function and stored in the memory; and

during the video delivery, repeat the determining the link bandwidth status associated with the user equipment such that the one or more additional processing functions associated with the video delivery can be selected for implementing or not implementing at different times during the video delivery.

18. The logic of claim 17 , wherein the one or more additional processing functions include video transrating, wherein the transrating is implemented when a video encoding rate is higher than an estimated link bandwidth, the transrating reducing an amount of data to be delivered for the video.

19. The logic of claim 17 , wherein the transrating is performed at one of a plurality of different rates, and wherein the rate of transrating is determined based on the amount of a difference between the link bandwidth and the video encoding rate.

20. The logic of claim 17 , wherein the one or more additional processing functions include video pacing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2011
From: DIXIT, SANJAY; PANDA, BISWARANJAN; IYER, JAYARAMAN; BHUPALAM, SHASKAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027436/0192 →
Continuity (1)
Related Publication 20130167181A1 · Jun 27, 2013