IP Library Granted Patent US 8,391,688
Granted Patent B2
US 8,391,688 · App. 13/008,797 · Granted Mar 5, 2013

Smooth rewind media playback

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 8,391,688
App. No.
13/008,797
Granted
Mar 5, 2013
Kind
B2
Abstract

Systems and methods for smooth rewind playback of streamed media are provided. The media includes relatively-encoded frames and independently-encoded frames. The method includes receiving a rewind request indicating a rewind speed for rewind playback of the media, selectively dropping relatively-encoded frame(s) based on a receipt constraint and a decoding constraint to form a subset of the media, and receiving frames of the subset. The method further includes selecting, in a reverse order, a selected group of pictures (GOP) included within the subset, and decoding relatively-encoded frame(s) of the GOP in a forward sequential frame order. The method further includes caching relatively-encoded frame(s) of the GOP in the forward sequential frame order, and when caching, dropping and overwriting relatively-encoded frame(s) of the GOP selectively according to a memory constraint and/or a display constraint. The method further includes displaying relatively-encoded frame(s) of the GOP in a reverse sequential frame order.

Claims (48)

1. A method of decoding media playback for smooth rewind playback of streamed media at a desired rewind speed, the media including a plurality of frames, the plurality of frames including a plurality of relatively-encoded frames, a relative encoding for each relatively-encoded frame being dependent on one or more prior frames in the media, the media further including a plurality of independently-encoded frames spaced apart by predefined intervals of relatively-encoded frames, the method comprising:

receiving a rewind request indicating a rewind speed for rewind playback of the media;

selectively dropping one or more of the plurality of relatively-encoded frames of the media based on a receipt constraint of receiving the media and a decoding constraint of decoding the media to form a subset of the media;

receiving the one or more frames of the subset of the media;

selecting, in a reverse order, a selected group of pictures (GOP) of a plurality of GOP included within the subset of the media, each GOP including at least one independently-encoded frame and one or more relatively-encoded frames;

decoding each of the one or more relatively-encoded frames of the GOP in a forward sequential frame order;

caching each of the one or more relatively-encoded frames of the GOP in the forward sequential frame order;

when caching, dropping and overwriting one or more of the one or more relatively-encoded frames of the GOP selectively according to one or more of a memory constraint and a display constraint; and

displaying each of the one or more relatively-encoded frames of the GOP in a reverse sequential frame order, the reverse sequential frame order being opposite of the forward sequential frame order.

2. The method of claim 1 , wherein the receipt constraint and the decoding constraint indicate one or more threshold performance values determined based on the rewind speed.

3. The method of claim 2 , wherein the one or more threshold performance values comprise a threshold network performance value.

4. The method of claim 2 , wherein the one or more threshold performance values comprise a threshold storage performance value.

5. The method of claim 2 , wherein the one or more threshold performance values comprise a threshold bandwidth value.

6. The method of claim 2 , wherein the one or more threshold performance values comprise a threshold decoder performance value.

7. The method of claim 1 , further comprising selectively dropping one or more of the plurality of independently-encoded frames of the media based on the receipt constraint and the decoding constraint to form the subset of the media, in addition to selectively dropping the one or more of the plurality of relatively-encoded frames of the media.

8. The method of claim 1 , wherein receiving the one or more frames of the subset of the media comprises receiving the one or more frames over a network.

9. The method of claim 1 , wherein receiving the one or more frames of the subset of the media comprises receiving the one or more frames from mass storage.

10. The method of claim 1 , wherein the media is a first media stream, and wherein the method further comprises, upon receiving the rewind request indicating the rewind speed, selecting a second media stream based on the receipt constraint, the second media stream having a lower complexity than the first media stream.

11. The method of claim 10 , wherein the second media stream has a lower bitrate than the first media stream.

12. The method of claim 10 , wherein the second media stream has a lower resolution than the first media stream.

13. The method of claim 1 , further comprising, when decoding each of the one or more relatively-encoded frames of the GOP, dropping a decoding and display of one or more relatively-encoded frames of the GOP having a missing reference frame in the GOP when an artifacts and corruptions avoidance setting is set to a predetermined value indicating that artifacts and corruptions are to be avoided.

14. A computing device, comprising:

a display configured to visually present media;

a media playback decoder configured to decode media including a plurality of group of pictures (GOP), each GOP including a plurality of relatively-encoded frames, a relative encoding for each relatively-encoded frame being dependent on one or more prior frames in the media, the media further including a plurality of independently-encoded frames spaced apart by predefined intervals of relatively-encoded frames;

a processor configured to execute instructions;

a mass storage device comprising instructions for enabling smooth rewind at a desired rewind speed, the instructions being executable by the processor to:

receive at the computing device a rewind request indicating a rewind speed for rewind playback of the media;

selectively drop one or more of the plurality of relatively-encoded frames of the media based on a receipt constraint of receiving the media and a decoding constraint of the media playback decoder to form a subset of the media having one or more frames;

receive the one or more frames of the subset of the media;

for each GOP within the subset of the media selected in a reverse sequential GOP ordering:

decode each of a plurality of relatively-encoded frames associated with the GOP in a forward sequential frame order;

cache each of the plurality of relatively-encoded frames associated with the GOP in the forward sequential frame order;

when caching, drop and overwrite one or more of the plurality of relatively-encoded frames of the GOP selectively according to one or more of a memory constraint of the processor and a display constraint of the display; and

display each of the plurality of relatively-encoded frames associated with the GOP in a reverse sequential frame order, the reverse sequential frame order being opposite of the forward sequential frame order.

15. The computing device of claim 14 , wherein the instructions are further executable to drop a decoding and display of one or more relatively-encoded frames of the GOP having a missing reference frame in the GOP when an artifacts and corruptions avoidance setting is set to a predetermined value indicating that artifacts and corruptions are to be avoided.

16. The computing device of claim 14 , wherein the receipt constraint and the decoding constraint indicate one or more threshold performance values determined based on the rewind speed.

17. The computing device of claim 14 , wherein the instructions are executable to receive the one or more frames of the subset of the media by receiving the one or more frames from one of a network and the mass storage device.

18. A method of decoding media playback for smooth rewind playback of streamed media at a desired rewind speed, the media including a plurality of frames, the plurality of frames including a plurality of relatively-encoded frames, a relative encoding for each relatively-encoded frame being dependent on one or more prior frames in the media, the media further including a plurality of independently-encoded frames spaced apart by predefined intervals of relatively-encoded frames, the method comprising:

receiving a rewind request indicating a rewind speed for rewind playback of a first stream of the media;

selecting a second stream of the media based on a threshold value of receiving the media, the threshold value based on the rewind speed, the second stream of the media having a lower complexity than the first stream of the media;

receiving the one or more frames of the second stream of the media;

selecting, in a reverse order, a selected group of pictures (GOP) of a plurality of GOP included within the second stream of the media, each GOP including at least one independently-encoded frame and one or more relatively-encoded frames;

decoding each of the one or more relatively-encoded frames of the GOP in a forward sequential frame order;

caching each of the one or more relatively-encoded frames of the GOP in the forward sequential frame order;

when caching, dropping and overwriting one or more of the one or more relatively-encoded frames of the GOP selectively according to one or more of a memory constraint and a display constraint; and

displaying each of the one or more relatively-encoded frames of the GOP in a reverse sequential frame order, the reverse sequential frame order being opposite of the forward sequential frame order.

19. The method of claim 18 , wherein the second stream of the media has a lower bitrate than the first stream of the media.

20. The method of claim 18 , wherein the second stream of the media has a lower resolution than the first stream of the media.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2011
From: ZHANG, WENBO; WU, YONGJUN; GAN, KIM-CHYAN; CHRISTOFFERSEN, ERIC
To: MICROSOFT CORPORATION
Reel/Frame 026108/0412 →