Reverse presentation of digital media streams
AssigneeMicrosoft Corporation
InventorsGlenn F. Evans, Stephen C. Rowe, Robin C. B. Speed, Gary J. Sullivan
Life of this patent
Estimating the term…
Abstract
Described herein is an implementation that facilitates the reverse presentation of an encoded digital media stream. This abstract itself is not intended to limit the scope of this patent. The scope of the present invention is pointed out in the appending claims.
Claims43
A computer storage medium having computer-executable instructions that, when executed, directs a computer to perform a method facilitating the reverse presentation of a block-of-frames (BOF) of a media stream, the BOF being a sequence of frames having a defined forward presentation order, each being categorized as either a reference or non-reference frame, a reference frame being a frame with data that at least one other frame in the BOF uses as a reference for decoding its own encoded data and a non-reference frame being a frame having encoded data that is not referenced by another frame in the BOF, the method comprising:
- obtaining a BOF of a media stream;
- forward-decoding and storing one or more decoded reference frames of the BOF;
- storing non-reference frames of the BOF with its data still encoded;
- in reverse order of the sequence starting with the last frame of the sequence, repeating the following for each sub-sequence containing non-reference frames and at least adjacent one reference frame and continuing the repeating until reaching the first frame:
- if a next-to-be-presented frame in reverse order is a reference frame, then presenting that reference frame in the BOF;
- generating a next yet-to-be-presented sub-sequence of non-reference frames in the BOF;
- presenting, in reverse order of the sequence, the one or more of the just-generated non-reference frames;
- releasing memory that stored a just-presented non-reference frame;
- and
- if a next-to-be-presented frame in reverse order is a reference frame, then presenting that reference frame in the BOF;
- presenting the first reference frame of the sequence.
A computer storage medium having computer-executable instructions that, when executed, directs a computer to perform a method facilitating the reverse presentation of a block-of-frames (BOF) of a media stream, the BOF being a sequence of frames having a defined forward presentation order comprising a key-frame followed by multiple encoded frames that are progressively dependent upon one or more frames preceding it in the sequence for generation, the method comprising:
- obtaining a BOF of a media stream;
- starting at the end of the BOF, repeating, for all non-key-frames of the BOF presented:
- selecting one or more frames of those that are yet-to-be-presented;
- in reverse order, determining which frame is the next of the frames that are yet-to-be-presented;
- if the next yet-to-be-presented frame has been generated and is stored in a memory, then presenting the next yet-to-be-presented frame,
- otherwise:
- generating the frames preceding the next yet-to-be-presented frame that are necessary for generation of the next yet-to-be-presented frame but generating only those frames that are not already stored in the memory,
- during the generating, storing the generated frames selected by the selecting,
- further generating the next yet-to-be-presented frame;
- presenting the next yet-to-be-presented frame;
- until the key-frame of the BOF is presented, repeating the actions of the selecting, the determining, and the if . . . then . . . otherwise conditional actions, as the conditions merits.
A computer storage medium having computer-executable instructions that, when executed, directs a computer to perform a method facilitating the reverse presentation of a block-of-frames (BOF) of a media stream, the BOF being a sequence of frames having a defined forward presentation order comprising a key-frame followed by multiple encoded frames that are progressively dependent upon one or more frames preceding it in the sequence for decoding, the method comprising:
- obtaining a BOF of a media stream;
- starting at the end of the BOF, repeating, for all non-key-frames of the BOF presented:
- in reverse order, presenting a next to-be-presented frame,
- before presentation of the next yet-to-be-presented frame, forward-decoding the frames preceding the next yet-to-be-presented frame that are necessary for decoding of the next yet-to-be-presented frame,
- selecting which of the decoded frames to store in a memory, wherein the selected decoded frames are fewer than all of the frames of the BOF,
- determining a number m of available frame-buffers of the memory, each frame-buffer being capable of storing a decoded frame,
- mapping the relative locations of the remaining yet-to-be-presented frames of the sequence,
- performing a recursive subdivision to identify substantially about m frames for selection,
- storing the selected decoded frames;
- further presenting the key-frame.
Dependencies are inferred from the claim text.