throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2002/0034374A1
`(43) Pub. Date:
`Mar. 21, 2002
`Barton
`
`US 2002.0034374A1
`
`(54) METHOD AND APPARATUS
`IMPLEMENTING RANDOMACCESS AND
`TIME-BASED FUNCTIONS ON A
`CONTINUOUS STREAM OF FORMATTED
`DIGITAL DATA
`
`Publication Classification
`
`(51) Int. Cl." ....................................................... H04N 5/76
`(52) U.S. Cl. ................................................. 386/46; 386/68
`
`(76) Inventor: James M. Barton, Los Gatos, CA (US)
`Correspondence Address:
`GLENN PATENT GROUP
`3475 EDSON WAY
`SUTE L
`MENLO PARK, CA 94025 (US)
`Appl. No.:
`09/994.265
`
`(21)
`(22)
`
`Filed:
`
`Nov. 26, 2001
`Related U.S. Application Data
`(63) Continuation of application No. 09/054,604, filed on
`Apr. 3, 1998, which is a non-provisional of provi
`sional application No. 60/061,693, filed on Oct. 10,
`1997.
`
`(57)
`
`ABSTRACT
`
`A continuous Stream of formatted digital data, Such as a
`Video Segment, audio Segment, or information Stream,
`appears to be a fixed length Segment under certain circum
`stances, defining a virtual Segment within the continuous
`stream which moves forward in time in synchrony with the
`continuous Stream. The virtual Segment thus defined can be
`explored in a non-linear fashion at arbitrary playback rates.
`For instance, concepts Such as rewind, pause, frame
`advance, and fast forward become meaningful even though
`the continuous Stream never ceases.
`
`Operation
`Request
`Source
`
`201
`Buffer
`Controller 90ntrol
`Operations
`vSs N
`
`
`
`Multiplexed
`Streafn Source
`
`
`
`Ex: DVB Satelite, Digital. IV
`real-time alonalog encoder,
`local computer file store,
`network connection, etc.
`
`Where required,
`Demultiplexing demultiplex the components
`Process
`of the stream into separately
`managed pieces.
`3.
`
`
`
`
`
`Multiplexed
`Stream
`Sink
`
`Presentation: TV screen, speakers, PC display; any
`suitable presentation device.
`
`-1-
`
`Amazon v. Audio Pod
`US Patent 10,091,266
`Amazon EX-1022
`
`

`

`Patent Application Publication Mar. 21, 2002. Sheet 1 of 3
`
`US 2002/0034374A1
`
`
`
`„ / 84000 pipe?
`
`==~::~) •
`
`/ ’91, H.
`
`
`
`
`
`uo!!99!!!C! pupMuo-uo?} 09.1 10 esueae)
`
`
`
`
`
`X100|q e?ODO ?sep?o a?a?eg
`
`
`
`
`
`––– X
`
`-2-
`
`

`

`Patent Application Publication Mar. 21, 2002 Sheet 2 of 3
`
`US 2002/0034374A1
`
`Operation
`Request
`Source
`
`201
`Buffer
`Controller
`
`S
`--
`C
`O
`C
`go
`-
`s
`--P
`O
`d
`
`Control
`Operations
`
`N
`
`NN
`n N-
`
`1.
`
`Multiplexed
`ultiplex
`Stream Source
`
`Ex: DVB Satelite, Digital TV
`real-time alonalog encoder,
`computer file store,
`network connection, etc.
`
`o
`O
`Where required,
`Demultiplexing demultiplex the components
`Process
`of the stream into separately
`managed pieces.
`K
`
`cy
`
`S/g:
`0.
`<
`O
`g
`a.
`
`an
`
`d
`
`426
`&
`&
`%
`u%
`/
`
`Events
`
`
`
`
`
`
`
`Clip
`Capture
`
`203
`
`Multiplexed
`Stream
`Sink
`
`co
`d
`O
`a
`l
`
`O
`
`O
`O
`O
`did
`?
`
`c
`O
`h
`
`O
`C
`O
`O
`()
`c
`
`Presentation: TV screen, speakers, PC display; any
`suitable presentation device.
`
`FIG 2
`
`-3-
`
`

`

`Patent Application Publication
`
`
`
`
`
`
`
`
`
`
`
`-4-
`
`

`

`US 2002/0034374A1
`
`Mar. 21, 2002
`
`METHOD AND APPARATUS IMPLEMENTING
`RANDOMACCESS AND TIME-BASED
`FUNCTIONS ON A CONTINUOUS STREAM OF
`FORMATTED DIGITAL DATA
`
`BACKGROUND OF THE INVENTION
`
`0001) 1. Technical Field
`0002 The invention relates to digital signal processing.
`More particularly, the invention relates to a family of
`methods which provide for the pass through or capture of
`linear Streams of digital information represented in various
`formats.
`0003 2. Description of the Prior Art
`0004. With the advent of consumer audio and video
`products that employ Sophisticated digital Signal processing
`techniques it is becoming necessary to find ways to exploit
`the full potential of digital technology. For example, it
`would be desirable to provide methods for the pass through
`or capture of linear Streams of digital information repre
`Sented in various formats, while at the same time providing
`the appearance to the consumer of a locally Stored digital
`Stream that allows for the repositioning and playback of
`Virtual Segments of the apparently local digital Stream.
`0005 Amechanical device which performs some of these
`functions is the Video Cassette Recorder (VCR), which uses
`a magnetic tape to store the information. The inherently
`linear nature of tape leads to functions Such as rewind, fast
`forward, and pause. However, a VCR cannot both capture
`and play back information at the same time, So it cannot be
`used to implement this capability.
`0006 Linear streams of information are a fixture of
`modern life. Consider broadcast radio Stations, broadcast
`television Stations, Satellite broadcasts, cable television,
`Video tapes, and compact disks. Increasingly, Such informa
`tion is represented in a fashion Suitable for manipulation by
`automated electronic hardware, Such as computers or media
`decoders. For example, the Direct Video Broadcast (DVB)
`Standards address digital broadcasting from Satellites, ter
`restrial Stations, and cable television Systems. Even analog
`broadcasts, such as normal NTSC (National Television
`Standards Committee) broadcasts from familiar local sta
`tions, may be captured and digitized in real time by modern
`equipment, making them appear to be linear digital Streams.
`0007 Though such streams never terminate, and an indi
`vidual viewer of the stream is unable to effect directly how
`Such Streams are delivered, it is desirable to provide the
`illusion for the consumer that recent portions of the Stream
`are Stored locally in Some manner, Such that typical VCR
`like functions can be performed on the Stream, e.g. pause,
`rewind, and fast forward. The desire for this capability arises
`from the fact that the schedule and timing of the broadcast
`almost never matches the needs of the individual viewer. For
`instance, the viewer may wish to Stop the Stream for a few
`moments to discipline an unruly child. Or perhaps the
`viewer's attention was distracted from the stream for a few
`moments, causing him to miss a critical Scene, in which case
`the viewer would like to rewind to the point he missed and
`play it again.
`
`0008 Ideally, a device local to the viewer should capture
`the entire Stream as it is being broadcast and Store it in Some
`manner. For example, if two Video tape recorders are avail
`able, it might be possible to Ping-Pong between the two. In
`this case, the first recorder is started at the beginning of the
`program of interest. If the viewer wishes to rewind the
`broadcast, the Second recorder begins recording, while the
`first recorder is halted, rewound to the appropriate place, and
`playback initiated. However, at least a third video tape
`recorder is required if the viewer wishes to fast forward to
`Some point in time after the initial rewind was requested. In
`this case, the third recorder Starts recording the broadcast
`stream while the second is halted and rewound to the
`appropriate position. Continuing this exercise, one can
`quickly See that the equipment becomes unwieldy, unreli
`able, expensive, and hard to operate, while never Supporting
`all desired functions. In addition, tapes are of finite length,
`and may potentially end at inconvenient times, drastically
`lowering the value of the Solution.
`0009. It is possible to implement this capability using a
`digital computer, where digital Streams are Stored in Some
`fashion analogous to Video tape and where the computer
`performs the Switching between the various virtual tape
`decks. Even using a digital computer, this Strategy Suffers
`from the Same weaknesses as the physical System above. It
`would be desirable to avoid these issues by providing a
`technique for Storing the Streams of information on a tem
`porary basis.
`0010 When using a digital computer to perform any
`technique which achieves this functionality, there are a
`number of issues which must be taken into account for
`proper operation. The first of these is storage of the broad
`cast Stream. Within a digital computer, a stream of infor
`mation is represented as a Sequence of blocks of digital data.
`For example, when encoding an NTSC television broadcast
`Stream, each field of analog data is converted to a block of
`8-bit digital Samples representing the field. If the analog
`Signal is faithfully represented, each digital block contains
`approximately 0.5MB of data, one second of video requires
`approximately 30 MB of storage, and 30 seconds of video
`requires approximately 900 MB of Storage, greater than the
`capacity of a compact disc. Manipulation of Video in this
`form clearly becomes unworkable when any useful length of
`Stored Video is contemplated.
`0011. As an example, consider U.S. Pat No. 5,625,46,
`which concerns the use of a magneto-optic disk for the
`Storage of broadcast television transmissions. The amount of
`Storage available on Such media is currently about 5 to 10
`gigabytes, which is Sufficient for approximately 5 Seconds of
`Video Storage-clearly insufficient. In addition, the device
`disclosed does not permit the Simultaneous recording and
`playback of the same program.
`0012 Limited storage capacity is dealt with by compress
`ing the Video stream using an algorithm, typically one of the
`MPEG (Moving Pictures Experts Group) standard algo
`rithms, which can achieve a useful compression of 100:1 in
`many instances. MPEG video is represented as a Sequence
`of Groups Of Pictures (GOPS), in which each GOP begins
`with an index frame, called the I-frame. The I-frame is a
`block of digital data which is compressed using Discrete
`Cosine Transform (DCT) and other techniques, similar to
`the still-picture Joint Photographic Experts Group (JPEG)
`Standard.
`
`-5-
`
`

`

`US 2002/0034374A1
`
`Mar. 21, 2002
`
`0013 The GOP may represent up to 15 additional frames
`by providing a much Smaller block of digital data that
`indicates how Small portions of the I-frame, referred to as
`macroblocks, move over time. Thus, MPEG achieves its
`compression by assuming that only Small portions of an
`image change over time, making the representation of these
`additional frames extremely compact.
`0.014.
`Unlike the uncompressed data example above, or
`examples based on Video tape recording, each frame is thus
`represented as a variable length block of binary data. Addi
`tionally, although GOPs have no relationship between them
`selves, the frames within a GOP have a specific relationship
`which builds off the initial I-frame. Thus, any method which
`Stores a digitized Stream and allows random access to the
`Stored information must take into account the variable (and
`unpredictable) data sizes involved, as well as be cognizant
`of the relationships between blocks of the stream.
`0.015. A second issue for a digital computer based imple
`mentation of Such methods is that multiple Streams of
`information must be handled in parallel. For example, a
`broadcast Stream is actually composed of at least two unique
`Sequences of information, i.e. a Stream of digital blockS
`representing the Visual image and a stream of digital blockS
`representing the audible image. If the audio effect is instead
`Stereo, then two audio Streams are included, each unique. A
`broadcast Signal may have additional data, Such as the
`Secondary Audio Program (SAP), where the stream of
`information is a translation of the audio signal to a different
`language. Another stream which may be present is the
`Closed Caption (CC) stream, which provides a textual
`representation of spoken language in the audio stream(s).
`The Simple broadcast Stream described earlier may therefore
`have at least five different components, each one compressed
`using different techniques. When presenting this complex
`Stream to a viewer, the blocks of each Stream must be
`decoded at appropriate times for the compression methods
`involved and synchronized with the presentation of all other
`StreamS.
`0016. Also of interest are digital broadcasting technolo
`gies, such as DVB. A DVB channel is formed in an MPEG2
`Transport Multiplex, which is an encoding Scheme that
`provides for interleaving any number of discrete Streams of
`digital information into a Single Stream of digital data, using
`techniques based on Time Division Multiplexing (TDM).
`The example television signal above can be encoded into a
`DVB channel using five discrete Streams, leaving additional
`capacity for other Streams.
`0.017. There is increasing interest in adding additional
`information Streams to a Standard broadcast Signal. For
`instance, it may be desirable to transmit audio channels in
`Several different languages in parallel with the Video Stream.
`Or, perhaps information that is interpreted as a Web page is
`broadcast in Such a way as to be Synchronized with the Video
`to provide a multimedia presentation. The number of
`Streams which must be Synchronized may be arbitrary, and
`each Stream may be represented using different and unique
`Storage and compression techniques which have their own
`Synchronization requirements and inter-frame relationships.
`0.018. Any methods which provide functionality similar
`to that described above using Some form of digital computer
`must contain techniques which resolve these issues.
`
`SUMMARY OF THE INVENTION
`0019. The methods and apparatus described herein
`implement a novel and unique facility that provides for the
`manipulation of a continuous Stream of digital information
`as if it Supported random access and variable rate presen
`tation on demand by the consumer of the Stream. The
`possible operations on the data Stream are limited only by
`the Storage capacity and 10 bandwidth of the System which
`implements the apparatus and methods, whether that Storage
`be volatile, Such as DRAM, or non-volatile, Such as hard
`disk Storage, or a combination of both. The apparatus and
`methods Support operations, Sometimes referred to as Virtual
`VCR functions, Such as pause, rewind, fast forward, and
`play, as well as more Sophisticated and unique operations,
`Such as play faster, play slower, and play in reverse. Addi
`tionally, the apparatus and methods described herein provide
`a mechanism whereby Such operations are instantaneous
`from the point of View of the consumer of the data Stream,
`unlike in mechanical Systems. The apparatus and methods
`also Support the ability to capture portions of the data Stream
`which are temporarily held by the apparatus, Such that this
`captured data can be stored or Sent over a network in formats
`Suitable for presenting the data to other consumers, or for
`editing and manipulation by other tools or methods.
`0020. The invention provides a method and apparatus for
`providing pass through or capture of continuous linear
`Streams of digital information represented in various formats
`while providing the appearance of a locally Stored Stream.
`The preferred embodiment of the invention comprises at
`least one media cache for copying blocks of data from the
`information Stream. Data in the media cache can be viewed
`as a Snapshot of the continuous Stream of digital informa
`tion. The invention also comprises a playback pointer. The
`playback pointer position Selects a portion of the media
`cache that is to be accessed to provide functions including
`any of pause, rewind, fast forward, play, play faster, play
`slower, and play in reverse.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0021
`FIG. 1 is a schematic representation of a continu
`ous media buffer according to the invention;
`0022 FIG. 2 is a block schematic diagram of a system
`incorporating a continuous media buffer according to the
`invention; and
`0023 FIG. 3 is a timing diagram showing the operation
`of a linear cache according to the invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`0024. The invention contemplates a new and unique
`apparatus for transforming and manipulating continuous
`Streams of digital information using the methods and tech
`niques described herein.
`0025 FIG. 1 provides a general overview of how the
`preferred embodiment of the invention operates on a con
`tinuous Stream of data. In particular, one or more media
`caches 10 copy blocks of data from an information Stream
`12. The position of a playback pointer 14 Selects a portion
`of the media cache that is to be accessed, thus allowing Such
`functions as pause, rewind, fast forward, and play, as well as
`
`-6-
`
`

`

`US 2002/0034374A1
`
`Mar. 21, 2002
`
`more Sophisticated and unique operations, Such as play
`faster, play slower, and play in reverse.
`0026. The apparatus is independent of the format of the
`underlying digital data Stream. To apply the invention, it is
`only necessary that the underlying data Stream is composed
`of a number of discrete blocks of data, and that only a Small
`set of attributes are associated with each block. The data
`blocks themselves may be of arbitrary size and format. It is
`assumed that processes specialized to a data Source or to a
`decoding operation may proceed freely within the context of
`the invention, indirectly controlled by the methods described
`herein.
`0027 FIG. 2 illustrates the preferred embodiment of this
`invention. While the example in FIG. 2 is provided in
`connection with an MPEG stream of information, it should
`be appreciated that the invention is readily applied to any
`digital Stream of information.
`0028 Manipulation and transformation of a data stream
`is performed in the invention by a combination of the
`following elements:
`0029) 1. The Buffer Controller (201) is the main
`management device. It accepts external requests
`(generated, for instance, from a remote control
`device) for operations on the digital stream and, in
`turn, generates appropriate control messages for the
`other devices of the invention;
`0030) 2. The Stream Clock (202) provides a general
`device for Synchronizing operations on a set of linear
`caches, Such that multiple Streams of data which
`must be presented in a Synchronized fashion are
`correctly positioned, and that they present their data
`at consistent delivery rates,
`0031) 3. The Linear Cache (204) is a general device
`for buffering the information contained in a stream of
`digital information, Such that the data in the cache
`can be viewed as a Snapshot of the continuous Stream
`of digital data; and
`0032 4. The Clip Capture (203) device is a general
`mechanism for capturing all or part of a cached Set
`of information Streams and presenting the resulting
`data as an organized Stream of data to a data Sink
`Such as, for example, a computer file System or
`another display device.
`0033. The following sections describe each of the fore
`going components, and how they interact, in detail.
`0034) Buffer Controller
`0035) The Buffer Controller (BC) module is responsible
`for instantiating the methods that provide for operation of
`the invention for any particular Stream of data. The preferred
`embodiment of the invention includes one Stream Clock
`(SC) module, Zero or more Clip Capture (CC) modules, and
`one or more Linear Cache (LC) stream modules. Operation
`of the invention preferably relies on designating one of the
`LC Streams as the key Stream. All positioning of playback
`from the LCS is based on first positioning the key Stream,
`and then using the final position of that Stream to position all
`other Streams properly. For example, if the key Stream is an
`MPEG video Stream, then positioning is based on aligning
`the current block pointer to the beginning of an MPEG
`
`Group Of Pictures (GOP). Once the key stream is posi
`tioned, the BC repositions all other streams to be synchro
`nized with the key Stream.
`0036) The BC is also responsible for controlling the clock
`rate of the Stream Clock, which operates as described below.
`The rate at which the SC delivers clock events to the Linear
`Caches is based on the rate specified by the BC. Thus, the
`BC can speed up or slow down the playback of the entire
`collection of Streams by requesting the SC to adjust its clock
`rate.
`0037 Finally, the BC is responsible for initiating clip
`capture operations using the Clip Capture method.
`0.038 Stream Clock
`0039 The Stream Clock provides a central synchroniza
`tion facility that distributes time-based events to a number of
`LCs. Each Stream of information in a broadcast program is
`encoded using different techniques, each technique having
`unique notions of, for example, block size, data format, and
`presentation time Stamps for decoding. For instance, in the
`time it takes for a single MPEG video frame to be decoded
`and presented, there may be several MPEG audio frames to
`be decoded and presented. The Stream Clock distributes
`events to each LC at the proper rate for that LC.
`0040. The Stream Clock uses a single queue for manag
`ing events to be distributed using Standard, prior art tech
`niques that are familiar to those skilled in the art of building
`time-based Software Systems.
`0041) Operation of the Stream Clock is detailed below.
`0042 Events are not queued with an absolute time, but
`with the relative offset from the previously queued event.
`The first event in the queue is marked with a time which is
`the offset from the current time. The Stream Clock then
`requests that the underlying operating System invoke a call
`out when that amount of time has passed, e.g. the SC queues
`a timer event. When the call out is invoked, the SC dis
`patches the first clock event and then each Succeeding event
`whose offset is Zero, i.e. each event that is to occur at the
`Same time as the previous event.
`0043. Each event in the queue is also marked with a time
`interval and the absolute time of the data stream that the next
`event should occur. After a queued event is dispatched, the
`absolute time of the next event is composed by adding the
`time interval to the previous absolute time. The difference
`between this time and the current absolute time determines
`the delay before this event should be repeated. The event is
`then added to the queue at the appropriate position for the
`event's next occurrence. This Strategy insures that even if
`Some delay occurs in dispatching the event, following events
`occur at the proper time. After all events with a offset of Zero
`have been processed, the SC queues a new timer event at the
`offset to the first waiting event, after which the above
`proceSS repeats.
`0044) The decoupling of the absolute clock value and the
`actual dispatching of clock events is critical in implementing
`Some of the unique and novel aspects of the invention, e.g.
`the ability to control easily the rate at which playback of the
`stream occurs. When initially created, the SC records a value
`referred to as the rate multiplier, which is initially Set to one.
`Whenever the SC requests the underlying operating System
`to queue a timer event, the actual time delay requested is
`
`-7-
`
`

`

`US 2002/0034374A1
`
`Mar. 21, 2002
`
`multiplied by the rate multiplier. A rate multiplier greater
`than one results in faster playback of the Stream, while a
`multiplier of less than one results in a slower playback of the
`Stream.
`0045 For the LCs to position themselves properly (see
`below), the same rate multiplier must be used to modify the
`Presentation Time Stamp (PTS) stored in each block when
`calculating positioning. Thus, the SC makes a Small Set of
`functions available to the LC which perform comparisons
`and operations on PTS values, after properly Synchronizing
`those values with the rate multiplier stored in the SC.
`0046) The combination of the Stream Clock, with inde
`pendent event generation for each LC and the ability to
`modify logically the rate at which all events are dispatched
`using a Single value provides a novel and unique application
`of common time-based Software design techniques.
`0047. The Linear Cache
`0.048. A key component of the invention is the Linear
`Cache (LC). The LC is used to store a single stream of
`digital information in proper Sequence. The LC maintains
`this stream as a list of the digital blocks that make up the
`Stream, and assumes that each block has a unique size and
`attributes. Each block within the stream is marked with a
`Presentation Time Stamp (PTS) which indicates when that
`block should be presented to the decoding process, be it
`hardware or software. The PTS is a monotonically increas
`ing value initialized to Zero when the LC first begins
`operation on a stream, and is not related to any time Stamps
`defined by the underlying stream encoding technique except
`that once the LC begins operation, there is a constant offset
`between the PTS stored in the LC and any time stamps
`Stored within the encoded digital blocks. It is assumed that
`the decoding proceSS properly handles embedded time
`stamps. FIG. 3 gives a pictorial overview of the preferred
`embodiment of the Linear Cache.
`0049. The capture mechanism for a particular stream type
`gives each encoded digital block to the LC as it arrives
`(301). The LC marks that block with the current PTS for the
`stream. The LC maintains a window (302), which is defined
`as the maximum time, based on PTS values, between when
`the newest block in the LC arrived and the oldest block
`which the LC may hold. Thus, the window represents a time
`span into the past history of the Stream. The LC discards
`blocks which fall outside the window (303), thus the win
`dow allows one to look a fixed distance into the past history
`of a Stream. This mechanism allows choices and tradeoffs
`between available Storage Space and the availability of past
`information for Viewing.
`0050. The capture mechanism is responsible for provid
`ing certain attributes along with each new block (304). The
`first of these is the key frame attribute, which indicates that
`this block begins a sequence of interrelated blocks. When
`performing random access operations on a Stream, the LC
`only allows positioning of the Stream to a block marked as
`a key frame. The second is the End Of Segment (EOS)
`attribute, which indicates that the Stream has ended, and no
`more data are to be presented. For example, the I-frame of
`an MPEG GOP is marked as a key frame by the capture
`mechanism, but all other blocks are not So marked.
`0051. The LC maintains an indication of the next block to
`be presented to the decoding proceSS, which is referred to as
`
`the current block indicator (305). For normal viewing, this
`block is the block last added to the LC by the capture
`mechanism. Thus, the Stream is presented live, with at most
`a one-frame time delay between capture and presentation.
`0052 Random access to the information stream is
`achieved by moving the current block indicator to Some
`other block in the LC. If the LC is requested to move the
`indicator, and the current block indicated is not a key frame,
`the LC instructs the decoding process to reset its decoding
`State, thus purging any partially constructed presentation
`data. For example, if the current frame is an MPEG predic
`tive frame (P-frame), then the decoding process has state
`information, including the current picture to be modified by
`the P-frame. This data must be purged so that the decoder
`begins in the proper State.
`0053 Referring again to FIG. 2, the BC requests repo
`sitioning of an LC by specifying a PTS value. The LC finds
`the block containing a PTS which is closest to that requested
`by the BC. There are two unique cases for repositioning: the
`first, if the LC is marked as the key Stream, and the Second
`when it is not.
`0054 If the LC is marked as a key stream, the LC scans
`the blocks in the cache to find the key frame which is nearest
`to the requested PTS value, searching both before and after
`the desired value. Once properly positioned, the LC returns
`to the BC the PTS of the key frame block which was
`identified.
`0055 Following positioning of the key stream, the BC
`instructs each remaining stream to position itself to the PTS
`returned by the key-Stream. Key frames in other LCs may
`not align with those in the key Stream. Each LC handles this
`problem by requesting the decoding process to purge any
`decoding State, and then Stores an indication that Suppresses
`the LC from actually presenting blocks to the decoding
`proceSS.
`0056. Following this, the LC behaves normally, accept
`ing clock events and advancing the current block indicator
`to match, except that the blocks are not actually presented to
`the decoding process. When the LC encounters a key frame,
`it deletes the indication Suppressing presentation of blocks,
`and presents the current block to the decoding process. This
`brings the Stream into full Synchronization with the key
`Stream.
`0057 The following Subsections describe in detail how
`positioning operations are handled by the LC.
`0.058 Forward
`0059. The forward function is implemented by moving
`the current block indicator forward through the cache by one
`block for each event generated by the Stream Clock. Each
`Successive block in the cache is given to the decoding
`process for presentation as clock events are dispatched by
`the SC. A rate multiplier of one causes the current block
`indicator to move forward one block in the LC at the same
`rate as new blocks are added to the LC by the capture
`process. Conceptually, the current block indicator points to
`the same position in the cache, while the window of cached
`blocks moves beneath it. From the perspective of the con
`Sumer of a stream, this results in play out at a fixed delay
`from real time.
`
`-8-
`
`

`

`US 2002/0034374A1
`
`Mar. 21, 2002
`
`0060. There exists a rate at which the decoding process
`may not be able to present a block to the consumer before
`decoding of the next block must begin, i.e. the decoder can
`not keep up with the playback rate requested. The LC
`recognizes this case, and reverts to a key frame based
`method, where intermediate blocks are skipped and only key
`frames are presented to the decoder.
`0061 The current block indicator can not be positioned to
`an uncached block. If the rate multiplier indicates a rate
`greater than one, then the current block indicator eventually
`moves to the front of the cache. In this case, the key frame
`LC indicates to the BC that no more blocks are present in the
`cache. The BC resets the SC rate multiplier to one, and each
`LC positions the current block indicator to the latest cached
`block. The effect of this operation is to revert to undelayed
`play out of the actual information Stream.
`0062) Reverse
`0.063. The reverse function is implemented by moving the
`current block indicator backwards through the cache by one
`block for each clock event generated by the SC. Again, the
`key stream LC is used to control positioning. The BC
`instructs each LC to move to reverse mode, in which the
`current block indicator is moved backwards one block on
`each clock event. In addition, this mode causes the LC to
`SuppreSS presentation of all but key frames to the decoding
`process. When the current block indicator is moved over a
`key frame, the block is presented to the decoding process.
`0064. The rate at which blocks are presented to the
`decoding process is controlled by the rate multiplier in the
`Stream Clock, allowing for arbitrary Speed of reverse opera
`tion.
`0065. The current block indicator can not be moved past
`the oldest block in the cache. If a clock event would result
`in moving the current block indicator past the earliest block,
`then the indicator is Set to that block, and play out continues
`as described above. The key frame LC indicates to the BC
`that the oldest cached block was reached. The BC resets the
`SC rate multiplier to one, and each LC positions the current
`block indicator to the oldest cached block. Externally, it
`appears as if the Stream began playing in a forward direction
`again, time delayed by the window size.
`0.066 Pause
`0067. The BC implements the pause function by locking
`the current block indicator in the key stream LC to that
`block. The LC can only lock the indicator to a key frame
`block, thus it Searches forward for Such a block in the cache.
`If no key frame is present, the LC Stores an indication that
`a lock has been requested. When the capture process pre
`Sents a key frame, the LC thus recognizes that the lock was
`requested, and locks the current block indicator to that key
`frame. The LC also presents this key frame to the decoding
`process, Such that proper positioning, from the decoding
`proceSS point of View, is maintained. Following this, as new
`blocks are added to the front of the cache, the block
`indicated moves backwards in the cache. Additionally, the
`LC Sets the indicator Suppressing further presentation of data
`to the decoding p

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket