IP Library Granted Patent US 7,483,487
Granted Patent B2
US 7,483,487 · App. 10/121,333 · Granted Jan 27, 2009

Streaming methods and systems

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 7,483,487
App. No.
10/121,333
Granted
Jan 27, 2009
Kind
B2
Abstract

Various embodiments provide methods and systems for streaming data that can facilitate streaming during bandwidth fluctuations in a manner that can enhance the user experience. In one aspect, a forward-shifting technique is utilized to buffer data that is to be streamed, e.g. an enhancement layer in a FGS stream. Various techniques can drop layers actively when bandwidth is constant. The saved bandwidth can then be used to pre-stream enhancement layer portions. In another aspect, a content-aware decision can be made as to how to drop enhancement layers when bandwidth decreases. During periods of decreasing bandwidth, if a video segment does not contain important content, the enhancement layers will be dropped to keep the forward-shifting of the enhancement layer unchanged. If the enhancement layer does contain important content, it will be transmitted later when bandwidth increases.

Claims (28)

1. A method comprising:

providing a streaming server configured to stream data to at least one client, said data comprising one or more enhancement layers;

determining whether portions of the one or more enhancement layers are important by taking into account motion that is embodied in said portions, the determining comprising:

computing perceived motion energy (PME) values for multiple B frames of a video stream;

taking the product of an average of motion vector magnitudes within a frame and a percentage of dominant motion direction;

representing the video stream as a PME value sequence;

segmenting the PME value sequence into individual segments, each segment corresponding to multiple frames;

within each segment, assigning one or more priority levels; and

making a decision to drop enhancement layer portions based, at least in part, on whether the portions are important dropping frames having lower priorities when available bandwidth decreases.

2. The method of claim 1 , wherein the PME values reflect a degree of perceived motion judder if a frame is dropped.

3. The method of claim 1 , wherein the multiple frames comprise B frames.

4. The method of claim 1 , wherein said segmenting comprises using a model to detect patterns in the PME value sequence so that the detected patterns can be segmented into individual segments.

5. The method of claim 4 , wherein said model comprises a triangle model.

6. A method comprising:

computing perceived motion energy (PME) values for multiple frames of a video stream by taking the product of an average of motion vector magnitudes within a frame and a percentage of dominant motion direction;

representing the video stream as a PME value sequence;

segmenting the PME value sequence into individual segments, each segment corresponding to multiple frames;

within each segment, assigning one or more priority levels; and

dropping frames having lower priorities when available bandwidth decreases.

7. The method of claim 6 , wherein the PME values reflect a degree of perceived motion judder if a frame is dropped.

8. The method of claim 6 , wherein the multiple frames comprise B frames.

9. The method of claim 6 , wherein said segmenting comprises using a model to detect patterns in the PME value sequence so that the detected patterns can be segmented into individual segments.

10. The method of claim 9 , wherein said model comprises a triangle model.

11. The method of claim 10 , wherein left bottom vertices of the model represent starting points of individual segments, right bottom vertices of the model represent end points of individual segments, and top vertices of the model represent maximum PME values of individual segments.

12. The method of claim 6 , wherein said segmenting comprises, prior to using the model, splitting one or more portions of the PME value sequence that correspond to continuous motion by defining splitting boundaries relative to the PME value sequence.

13. The method of claim 6 , wherein said assigning of the priority levels takes place by considering degraded quality if frames are dropped.

14. The method of claim 6 further comprising dropping frames with lower priority levels when bandwidth is constant to forward shift frames that are not dropped.

15. The method of claim 6 , wherein said assigning of the priority levels comprises assigning individual B frame portions a class in accordance with the peak PME value of its associated segment, wherein any one class is associated with one or more models that provide a mapping between classes and individual priority levels.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →