IP Library Granted Patent US 9,094,663
Granted Patent B1
US 9,094,663 · App. 14/319,491 · Granted Jul 28, 2015

System and method for providing adaptive media optimization

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,094,663
App. No.
14/319,491
Granted
Jul 28, 2015
Kind
B1
Abstract

Adaptive media optimization is described. Aspects of the invention modify video encoding and network transmission settings to optimize the user viewing experience. The system and method sample video content to determine various content features of the video. The system and method use the identified content features in conjunction with network statistics to modify encoding settings and network transmission options to ensure a minimum of interruption in the transmitted video. Previously generated lookup tables ensure efficient mapping of video content and network conditions to encoding and transmission settings.

Claims (35)

1. An apparatus, comprising:

memory; and

a processor configured to execute instructions stored in the memory to:

determine a content class of a portion of a video stream based on one or more content characteristics of the portion of the video stream;

determine a set of network statistics for a network over which the video stream is to be transmitted;

configure at least one encoding setting used to encode the portion of the video stream into a format for packetization using at least one lookup table mapping the content class and at least one network statistic of the set of network statistics to the at least one encoding setting;

configure at least one transmission setting used to packetize and transmit the video after encoding using at least one lookup table mapping the content class and at least one network statistic of the set of network statistics to the at least one transmission setting;

encode the portion of the video stream in accordance with the at least one encoding setting; and

transmit the encoded portion of the video stream in accordance with the at least one transmission setting.

2. The apparatus of claim 1 wherein the at least one encoding setting includes an error resilience (ER) setting that forces intra-coding of blocks within a frame of the video that includes blocks to be encoded using inter-prediction.

3. The apparatus of claim 2 wherein the ER setting is determined as a function of a packet loss value, an effective recovery rate and the content class.

4. The apparatus of claim 2 wherein the processor is configured to configure the ER setting using a residual packet loss (RPL) lookup table and a source motion level, wherein the source motion level is based on the content class.

5. The apparatus of claim 1 wherein the at least one transmission setting includes a forward error correction (FEC) factor that indicates a level of forward error correction to be applied to the portion of the video stream.

6. The apparatus of claim 5 wherein the at least one transmission setting includes a negative-acknowledgement (NACK) setting indicating whether or not to use a NACK to verify that packets of the encoded portion of the video stream have been received by a decoder.

7. The apparatus of claim 1 wherein the processor is configured to determine the content class of the portion of the video stream by looking up the one or more content characteristics in a video parameter lookup table that indexes the one or more content characteristics to each of a plurality of content classes for the video stream.

8. The apparatus of claim 7 wherein the one or more content characteristics comprises at least one of a frame rate of the video stream, a resolution of the portion of the video stream, a spatial texture level of the portion of the video stream or a color depth of the portion of the video stream.

9. The apparatus of claim 1 wherein the processor is configured to configure the at least one encoding setting by selecting a source encoding rate based upon a maximum network rate, a forward error correction (FEC) factor that indicates a level of forward error correction to be applied to the portion of the video stream and an error resilience (ER) setting that forces intra-coding of blocks within a frame of the video that includes blocks to be encoded using inter-prediction.

10. The apparatus of claim 1 wherein the processor is configured to configure the at least one transmission setting by performing a table lookup of a forward error correction (FEC) table indexed by the set of network statistics and the content class of the portion of the video stream.

11. The apparatus of claim 1 wherein the set of network statistics comprises a packet loss value, a round trip time value and a network rate.

12. A method, comprising:

determining a content class of a portion of a video stream based on one or more content characteristics of the portion of the video stream;

determining a set of network statistics for a network over which the video stream is to be transmitted;

configuring at least one encoding setting used to encode the portion of the video stream into a format for packetization using at least one lookup table mapping the content class and at least one network statistic of the set of network statistics to the at least one encoding setting;

configuring at least one transmission setting used to packetize and transmit the video after encoding using at least one lookup table mapping the content class and at least one network statistic of the set of network statistics to the at least one transmission setting;

encoding, using a processor, the portion of the video stream in accordance with the at least one encoding setting; and

transmitting the encoded portion of the video stream in accordance with the at least one transmission setting.

13. The method of claim 12 wherein the at least one encoding setting includes an error resilience (ER) setting that forces intra-coding of blocks within a frame of the video that includes blocks to be encoded using inter-prediction.

14. The method of claim 13 wherein the ER setting is determined as a function of a packet loss value, an effective recovery rate and the content class.

15. The method of claim 13 wherein configuring the at least one encoding setting comprises configuring the ER setting using a residual packet loss (RPL) lookup table and a source motion level, wherein the source motion level is based on the content class.

16. The method of claim 12 wherein the at least one transmission setting includes a forward error correction (FEC) factor that indicates a level of forward error correction to be applied to the portion of the video stream.

17. The method of claim 16 wherein the at least one transmission setting includes a negative-acknowledgement (NACK) setting indicating whether or not to use a NACK to verify that packets of the encoded portion of the video stream have been received by a decoder.

18. The method of claim 12 , further comprising:

determining the content class of the portion of the video stream by looking up the one or more content characteristics in a video parameter lookup table that indexes the one or more content characteristics to each of a plurality of content classes for the video stream.

19. The method of claim 12 wherein configuring the at least one encoding setting comprises selecting a source encoding rate based upon a maximum network rate, a forward error correction (FEC) factor that indicates a level of forward error correction to be applied to the portion of the video stream and an error resilience (ER) setting that forces intra-coding of blocks within a frame of the video that includes blocks to be encoded using inter-prediction.

20. The method of claim 12 wherein configuring the at least one transmission setting comprises performing a table lookup of a forward error correction (FEC) table indexed by the set of network statistics and the content class of the portion of the video stream.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2014
From: PANICONI, MARCO; KOZICA, ERMIN
To: GOOGLE INC.
Reel/Frame 033227/0802 →