throbber
Ulllted States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,956,729
`
`Goetz et al.
`
`[45] Date of Patent:
`
`Sep. 21, 1999
`
`US005956729A
`
`[54] MULTIMEDIA FILE, SUPPORTING
`
`AND METHOD FOR FORMING SAME
`
`[75]
`
`Inventors: Tom Goetz, Attleboro; Manickam R.
`Sridhar, Holliston; Mllkesh Prasad,
`Chestnut Hill, all of Mass.
`
`[73] Assignee: Motorola, Inc., Schaumburg, Ill.
`
`[21] App}, No; 08/711,696
`.
`Ffled:
`
`Sep.6,1996
`
`[22]
`
`5,737,595
`5,768,527
`5,774,583
`
`......................... .. 707/100
`4/1998 Cohen et al.
`
`395/200.61
`6/1998 Zhu et al.
`......................... .. 382/190
`6/1998 Sasaki et al.
`OTHER PUBLICATIONS
`
`RealMedia Overview, “The First Open Multimedia Stream-
`ing
`Platform,”
`http://www.realuadio.com/
`or
`e—mail
`radinfo@prognet.com; copyright © Progressive Networks,
`1996,
`Paper,”
`White
`“Technical
`RealMedia,
`http://wvvw.realuadio.com/ or e—mail
`radinfo @prognet-
`.com; copyright © Progressive Networks, 1996.
`
`6
`
`Int‘ CL‘
`[51]
`“““ G06F17/30
`
`[52] U.S. CI.
`............. ..
`. 707/104, 707/102; 707/103
`[58] Field of Search ................................... .. 707/102-104,
`707/200’ 1
`
`Primary Examiner—Maria N. Von Buhr
`Attorney, Agent, or Firm—Peter M. Dicliiara; Jeffrey T.
`Klayman
`_
`[37]
`
`ABSTRACT
`
`Amultimedia file and method for forming the same organize
`instances of inultiinedia information according to media
`information type (e.g., audio, video, MIDI, etc.), encoding
`format, media subtype, and encoding rate. Several instances
`of the Same media information t
`6 are included each of
`yp
`.
`.
`.
`.
`’
`.
`such instances having a different encoding format, media
`subtype, and/or encoding rate. A presentation application
`utilizes the Subject multimedia file to identify, Select, and
`present specific instances of the multimedia information,
`permitting the presentation application to customize a mul-
`timedia presentation based on, among other things, the rate
`of the connection from the presentation application to the
`presentation consumer and the decoding capabilities of the
`~
`Presemanon Consumer‘
`
`31 Claims, 8 Drawing Sheets
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,333,299
`.......................... .. 395/650
`7/1994 Koval et al.
`5,339,413
`..
`395/550
`8/1994 Kovaletal.
`5,487,167
`395/650
`11,1996 Dinallo et al.
`5,504,892
`707/103
`N
`4/1996 Atsatt at al.
`5,574,898
`.......................... .. 707/1
`11/1996 LeBlang et al.
`5,574,905
`12/1996 de Carmo ................................. .. 707/1
`5,586,255
`12/1996 Tanaka et al.
`395/200.53
`5,608,859
`3/1997 Taglwhi ~~~~~~~ ~~
`345/302
`55449756
`7/1997 C03’ 6‘ a1~
`707/204
`g1ereII11bergtet1a]'
`,
`,
`,
`0118. 116 C 8.
`,
`.
`.
`.
`5,696,500 12/1997 Diem ........... ..
`340/825.44
`5,701,465
`12/1997 Baugher et al.
`.... .. 707/10
`5,732,256
`3/1998 Smith ........................................ .. 707/1
`
`
`
`..
`
`FILE HEADER
`PREAMBLE
`
`MEDIA INSIANCE
`DESCRIPTOR
`
`22
`
`ZIO
`
`0
`
`16
`FILE SIGNATURE
`HEADER SIZE
`VERSION won VERSION MINOR
`uuuasn or MEDIA INSTANCES
`
`- RESERVED
`
`W— RESERVED
`
`
`214
`
`31
`
`
`
`ZII
`272
`215
`
`216
`
`217
`
`
`0
`
`
`
`
`
`
`
`M's’\
`
`16
`MEDIA BLOCK OFFSET
`
`MEDIA IYPE
`
`ENCODING TYPE
`
`SUBTYPE
`
`RATE
`
`22!
`
`31
`
`ZZZ
`
`
`
`
`
`
`RPX Exhibit 1041
`RPX Exhibit 1041
`RPX v. DAE
`RPX V. DAE
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 1 of8
`
`5,956,729
`
`I00
`
`('
`
`FILE
`HEADER
`
`110
`
`
`FIG 1
`
`FILE
`BODY
`
`
`
`'2”
`
`
`
`
`
`5;
`
`FILE HEADER
`PREAMBLE
`
`MEDIA INSTANCE
`DESCRIPTOR
`
`270
`
`22
`
`22
`
`22
`
`210
`
`0
`
`
`
`
`
`16
`
`FILE SIGNATURE
`
`HEADER SIZE
`
`
`
`31
`
`NUMBER OF MEDIA INSTANCES
`VERSION MINOR
`VERSION MAJOR
`_ RESERVED
`3'3- REsERvED
`
`214
`
`F I G.2B
`
`277
`
`272
`215
`
`216
`217
`
`0
`
`16
`
`MEDIA BLOCK OFFSET
`
`MEDIA TYPE
`
`ENCODING TYPE
`
`SUBTYPE
`
`RAIE
`
`FIG.2C
`
`220
`
`31
`
`22:
`
`222
`
`223
`
`224
`
`225
`
`
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 2 of8
`
`5,956,729
`
`W :--I
`
`(‘I20
`
`/-310
`
`MEDIA
`
`$
`
`o13Eg%Rv
`
`.320
`
`330
`
`F I C.-4A
`
`/'40”
`
`
`
`no
`
`420
`
`o
`
`31
`
`4"
`
`PACKET coum
`
`PRESENIATION LENGIH
`
`RESERVED
`
`412
`413
`
`
`
`(
`FIG.4B
`
`410
`
`8
`
`16
`
`31
`
`0
`
`
`
`
`427
`4??
`
`
`4,,
`F I 0.46‘
`425
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 3 of8
`
`5,956,729
`
`441
`
`442
`
`443
`
`444
`
`8
`
`IMPORTANCE
`CHANNEL
`PACKET LENGTH
`
`15
`
`SEGMENT
`
`13
`
`TOTAL SEGMENTS
`RESERVED
`
`445
`
`
`
`SEQUENCE NUMBER
`447
`j 443
`
`—1_ 450
`
`
`
`W
`
`FI(}.4E
`
`
`
`3
`
`57}
`
`
`
`574
`
`511
`
`512
`
`
`16
`PACKET COUNT
`
`MAX FRAME SIZE
`
`PRESENTATION LENGTH
`
`i FRAME COUNT
`
`O
`
`
`
`
`611
`
`
`16
`
`PACKET COUNT
`
`O
`
`
`
`612
`
`MIDI FORMAT
`
`
` 614
`
`
`PRESENTATION LENGTH
`TRACK coum —
`DIVISOR
`
`3
`
`573
`
` 616
`
`
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 4 of 8
`
`5,956,729
`
`8H7
`
`CAMERA
`
`805
`
`
`815
`
`MICROPHONE
`
`825
`
`835
`
`FIG.8
`
`
`SERVER
`
`CLIENT
`
`FIG.9
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 5 of8
`
`5,956,729
`
`CLIENT
`
`SERVER
`
`WEB
`BROWSER
`APPLICATION
`
`MULTIMEDIA
`CLIENT
`APPLICATION
`
`WEB
`SERVER
`APPLICATION
`
`WEB PAGES
`
`MULTIMEDIA
`FILE
`
`910
`
`920
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 6 of8
`
`5,956,729
`
`CLIENT
`
`SERVER
`
`0
`
`SEND MEDIA
`
`REQUEST
`MESSAGE
`
`SEND MESSAGE
`
`SPECIFYING
`
`RATE
`
`SEND "G0"
`MESSAGE
`
`SEND RESPONSE
`
`0
`
`SEND MEDIA
`RESPONSE
`MESSAGE
`
`SEND MESSAGE
`
`FOR CALCULATING
`ROUND-TRIP
`
`DELAY
`
`SEND CONFIG.
`MESSAGE
`
`SEND "G0"
`
`MESSAGE
`
`FIGJ1
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 7 of 8
`
`5,956,729
`
`099 GO TO SLEEP
`
`RETRANSMIT
`
`?
`
`GO TO SLEEP
`
`
`
`MORE
`SLEEP TIME
`
`I265
`
`FIGJ2
`
`

`
`U.S. Patent
`
`Sep.21,1999
`
`Sheet 8 of8
`
`5,956,729
`
`START
`
`A300
`
`
`
`
`
`
`
`MODEM
`RELATED PROBLEM
`
`AND THROUGHPUT
`
`DECREASING ?
`
`
`
`
`
`'35”
`
`RANDOM
`ERRORS
`?
`YES
`
`NETWOR
`PROELEM
`NO
`
`I330
`
`
`
`SEND PACKETS
`
`L399
`
`FIGJ3
`
`
`DON'T THROTTLE
`
`
`THROTTLE novm
`maomz UP
`(DROP PACKET IF
`(RETRANSMIT IF
`IMPORTANCE > 4)
`IMPORTANCE < 3)
`
`
`
`
`
`THROTTLE DOWN
`(DROP PACKET IF
`IMPORTANCE = 5)
`
`
`
`

`
`5,956,729
`
`1
`MULTIMEDIA FILE, SUPPORTING
`MULTIPLE INSTANCES OF MEDIA TYPES,
`AND METHOD FOR FORMING SAME
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is related to the following U.S. patent
`applications, all of which are assigned to the assignee of this
`application and all of which are incorporated by reference
`herein:
`
`Dcvicc, System And Method Of Rcal-Timc Multimcdia
`Streaming (Ser. No. 08/636,417, to Qin-Fan Zhu, Man-
`ickam R. Sridhar, and M. Vedat Eyuboglu, filed Apr.
`23, 1996, now U.S. Pat. No. 5,768,527 (issued Jun. 16,
`1998)
`Improved Video Encoding System And Method (Ser. No.
`08/711,702,
`to Manickam R. Sridhar and Feng Chi
`Wang, filed on Sep. 6, 1996, pending and
`System, Device, And Method For Streaming A Multime-
`dia File Method (Ser. No. 08/711,701, to Manickam R.
`Sridhar, Tom Goetz and Mukesh Prasad, filed on Sep.
`6, 1996 herewith, pending.
`BACKGROUND
`
`1. Field of the Invention
`
`The invention generally relates to real-time multimedia
`applications and, more particularly,
`to the streaming of
`real-time multimedia information over a communication
`network.
`2. Discussion of Related Art
`
`Generally speaking, multimedia applications present
`rclatcd media information, such as video, audio, music, ctc.,
`on a presentation device, such as a computer having a
`display and sound system. Some multimedia applications
`are highly interactive, where as other applications are far less
`interactive. For example, a game is a highly interactive
`application in which the application must respond to many
`user inputs such as keyboard commands and joystick
`movements, whereas viewing a video clip is less interactive
`and may only involve start and stop commands. Moreover,
`multimedia applications may be directed to standalone
`single computer contexts, or they may be directed to
`distributed, network-based contexts.
`following the
`At a very high lcvcl of abstraction,
`producer-consumer paradigm, any multimedia application
`involves producing and consuming the related multimedia
`information. The above examples of highly interactive and
`less interactive and standalone and network-based applica-
`tions differ
`in the manner in which the information is
`produced and consumed and the complexity in controlling
`the production and consumption.
`For example, in PCs and other standalone contexts, the
`information need only be read olf a local CD Rom or the
`like, and thus, producing the information to the consumer
`involves relatively predictable characteristics and requires
`rclativcly simplc control logic. In nctwork-bascd contcxts,
`on the other hand, the information must be produced over
`the network and is thus subject to the unpredictable char-
`acteristics and intricacies of the network: data may be lost,
`performance may vary over time, and so on. Consequently,
`the control logic may need to be relatively complicated.
`In either the standalone or network-based context, con-
`suming the information involves presenting the related
`information to the corresponding presentation components
`in a controlled manner and in real time. For example, to
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`provide intelligible audio-video clips, the video data must be
`provided to a video driver and audio data must be provided
`to a sound card driver within specified timing tolerances to
`maintain intra- and inter-stream synchronism. Intra-stream
`synchronism means that a given stream, such as audio, is
`presented in synchronism within specified time
`relationships,
`in short, that thc strcam itself is cohcrcnt.
`Inter-stream synchronism means that multiple related
`streams are presented in synchronism with respect to each
`other. Concerning intra-stream synchronism, all streams, for
`the most part, should present data in order. However, users
`are more forgiving if some streams, such as video, leave out
`certain portions of the data than they are of other streams,
`such as audio, doing the same. Avideo stream with missing
`data may appear a little choppy, but an audio stream with
`missing data may be completely unintelligible. Concerning
`inter-stream synchronism, poor control will likely result in
`poor “lip synch,” making the presentation appear and sound
`like a poorly dubbed movie.
`In the network-based context, one simple model of pro-
`ducing the information involves the consuming entity to
`request the downloading of the multimedia information for
`an entire presentation from a server, storing the multimedia
`information. Once downloaded,
`the client may then
`consume, or present, the information. Although relatively
`simple to implement, this model has the disadvantage of
`requiring the user to wait for the downloading to complete
`before the presentation can begin. This delay can be con-
`siderable and is especially annoying when a user finds that
`he or she is only interested in a small portion of the overall
`presentation.
`A more sophisticated model of producing information
`involves a server at one network site “streaming” the mul-
`timedia information over the network to a client at another
`
`site. The client begins to present the information as it arrives,
`rather than waiting for the entire data set to arrive before
`beginning presentation. This benefit of reduced delay is at
`the expense of increased complexity. Without the proper
`control, data overflow and underflow may occur, seriously
`degrading the quality of the presentation.
`Many modem multimedia applications involve the trans-
`fer of a large amount of information, placing a considerable
`load on the resources of the network, server, and client. The
`use of network-based multimedia applications appears to be
`growing. As computers become more powerful and more
`people access network-based multimedia applications, there
`will be an increased demand for longer, more complicated,
`more flexible multimedia applications, thereby placing even
`larger loads and demands on the network, server, and client.
`The demand placed on servers by these ever-growing mul-
`timedia applications is particularly high, as individual serv-
`ers are called upon to support larger numbers of simulta-
`neous uses: it is not uncommon even today for an Internet
`server to handle thousands of simultaneous channels.
`Consequently, there is a need in the art for a device, system,
`and method that, among other things,
`can handle longer, more complicated presentations;
`utilize a network’s resources more efficiently; and
`utilize a server’s and client’s resources more efficiently.
`SUMMARY
`
`the invention involves a new file format for
`In short,
`organizing related multimedia information and a system and
`device for, and method of, using the new file format. The
`invention eases the management and control of multimedia
`presentations, having various media streams, each of a
`
`

`
`5,956,729
`
`3
`specific type, each specific type further classified by encod-
`ing type, subtype, and encoding rate. Thus, with the
`invention, an application may support several instances of a
`particular media type, with each instance having different
`characteristics. For example, the application may support
`multiple audio streams, with each stream in a different
`language, from which a user may select. Analogously, with
`the invention, the application may choose a given instance
`of a media stream based on the network’s characteristics; for
`example, the application may choose an audio subtype that
`is encoded for a transmission rate that matches the network’s
`characteristics. The invention reduces a server’s memory
`and processing requirements,
`thus allowing a server to
`simultaneously service more requests and support more
`channels. And, the invention dynamically adapts the media’s
`streaming rate to use the netWorl<’s resources more efli—
`ciently while minimizing the effects of the adaptation on the
`quality of the presentation.
`The invention includes a multimedia file for organizing at
`least one type of media information on a computer-readable
`medium, such as a CD Rom, hard disk, or the like. The
`multimedia file is capable of storing and identifying multiple
`instances of the at least one media type. For example, the
`media information types may include audio, video, MIDI,
`etc., and the multiple instances may correspond to a French
`instance of audio, an English instance, and a Chinese
`instance. In this fashion, a presentation application, using
`the appropriate logic, may select and present any of the
`multiple instances of the media type.
`One embodiment organizes the file as a file body for
`storing a plurality of media blocks, each containing infor-
`mation for a corresponding instance, and as a file header
`having information for referencing the contents of the file
`body. The header may include media instance descriptors,
`each including information for describing the media block
`and including information for locating the data in the body.
`Some attributes of a given instance included in the descrip-
`tor include a media type, e.g., audio, an encoding type, e.g.,
`MPEG, a subtype, e.g., English, and a streaming, or
`decoding, rate.
`One embodiment organizes the data in the body in pack-
`etized form, the form corresponding to a predefined network
`protocol, such as the UDP interface of the TCP/IP protocol
`suite. The packets may or may not be on a one-to-one
`correspondence with the presentation units, eventually pro-
`cessed by the presentation application. Thus a single packet
`may have several audio blocks merged into it, or a single
`video frame may be divided into several packets.
`The packet descriptors, used to describe and locate the
`packets, as well as the packets themselves may include
`importance information indicating the importance of a given
`packet to the perceived quality of the eventual presentation.
`Some packets are critical, whereas other may be dropped
`without severely degrading the quality of the presentation.
`Keeping information in prepacketized form, requires less
`resources by servers and the like, using files organized
`according to the format. Among other things,
`the format
`alleviates servers from having to keep huge packet windows.
`To form a file according to the format, one embodiment
`forms a file body, containing at least two instances of the at
`least one type of media information, and forms a file header
`identifying each instance so that a presentation application
`may select and present any of the media types and any of the
`instances thereof.
`
`To form the body, media information is encoded into an
`encoded media stream, which is then packetized, and then
`formed into a media block.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`The encoding operation n1ay include encoding the media
`stream for a pre-determined data rate, and the packetizing
`operation may include the step of recording an assigned
`importance value to each packet.
`Due to its structure, the file format may be easily edited
`to include or delete instances of media information.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the Drawing,
`FIG. 1 is a block diagram showing the novel multimedia
`file at a high level of abstraction;
`FIG. 2A is a block diagram showing the file header of the
`multimedia file;.
`FIG. 2B is a block diagram showing the format of a file
`header preamble;
`FIG. 2C is a block diagram showing the format of a media
`instance descriptor;
`FIG. 3 is a block diagram showing the format of a media
`block;
`FIG. 4A is a block diagram showing a generic media
`block directory format;
`FIG. 4B is a block diagram showing the format of a
`generic directory preamble;
`FIG. 4C is a block diagram showing the format of a
`generic packet descriptor;
`FIG. 4D is a block diagram showing the format of a
`generic media block body;
`FIG. 4E is a block diagram showing the format of a
`generic packet;
`FIG. 5 is a block diagram showing the format of an H.263
`media block;
`FIG. 6 is a block diagram showing the format of a MIDI
`media block preamble;
`FIG. 7 is a block diagram showing the format of a MIDI
`packet;
`FIG. 8 is a block diagram showing a system for creating
`a multimedia file;
`FIG. 9 is a block diagram showing a system embodying
`the invention in a client-server context;
`FIG. 10 is a block diagram showing the client and server
`components of the system;
`FIG. 11 is a flow diagram showing an initial interaction
`between the client and the server;
`FIG. 12 is a flow diagram showing the streaming logic of
`the server; and
`FIG. 13 is a flow diagram showing the retransmit logic of
`the server.
`
`DETAILED DESCRIPTION
`
`the invention involves a new file format for
`In short,
`organizing related multimedia information and a system and
`device for, and method of, using files organized according to
`the new format. The invention eases the management and
`control of multimedia presentations, having various media
`streams, each of a specific type, each specific type further
`classified by encoding type, subtype, and encoding rate.
`Thus, with the invention, an application may support several
`related audio streams, such as English and French, from
`wl1icl1 a user may select. Analogously, with the invention,
`the application may choose a particular instance of a media
`stream based on the network’s characteristics; for example,
`the application may choose an audio stream that is encoded
`
`

`
`5,956,729
`
`5
`for a transmission rate that matches tl1e network’s cl1arac-
`teristics. The invention reduces a server’s memory and
`processing requirements, thus allowing a server to simulta-
`neously service more requests and support more channels.
`And, the invention dynamically adapts the media’s stream-
`ing rate to use the network’s resources more efficiently while
`minimizing the effects of the adaptation on the quality of the
`presentation.
`I. The File Format
`The new file format, among other things, allows various
`types and subtypes of multimedia information to be
`organized, maintained, and used as a single file. The file
`format simplifies the server by not requiring the server to
`know, for example, which video files are related to which
`audio files for a given application, or to know how to locate
`and use related files, each with their own internal
`organization, corresponding method of access and process-
`mg.
`The file format allows multiple instances of a single
`media type to be stored in the file. Multiple instances of a
`single media type may be desirable for supporting alternate
`encodings of the same media type, for example, an audio
`segment
`in multiple languages. This flexibility allows a
`single file to contain, in elfect, multiple versions of the same
`presentation. Each instance corresponds to a “presentation’s
`worth” of information for that media type. For example,
`with the audio media type, an instance may involve the
`entire soundtrack in French or the entire soundtrack encoded
`at a particular rate.
`The file format allows media instances to be added and
`deleted to a file. This feature allows the file to be updated as
`new media types and new media segments are developed,
`without requiring modification of the servers or client’s
`logic to support the newly-added instances. This fiexibility
`makes it easier to modify, create, and maintain large, com-
`plicated multimedia presentations.
`The file format allows the server to implement more
`flexible and powerful presentations. For example, the server
`co11ld support multiple languages as various subtypes of an
`audio stream. In addition, the server could support multiple,
`expected transfer rates. For example, a video media type
`may be implemented as a subtyped instance having pre-
`packetized video data encoded for a target transfer rate of
`28.8 kb/s or encoded for a target transfer rate of 14.4 kb/s.
`Moreover, when properly used by a server or other
`application, files organized according to the new format will
`reduce the amount of memory and processor resources
`required to stream the file’s contents to a client or the like.
`These advantages are further discussed below.
`The new file format 100 is shown at a high level of
`abstraction in FIG. 1. The file format 100 includes a file
`
`header 110 and a file body 120. In short, the file header 110
`dcscribcs thc filc itsclf and thc contcnts of thc filc body 120
`and includes information used to locate data in the file body.
`The file body 120 includes more information used to locate
`data in the file body as well as including the actual data used
`during a presentation.
`the file header 110 includes a file
`More specifically,
`header preamble 210 and a number of media instance
`descriptors 220, shown in FIG. 2A. The file header preamble
`210, shown in more detail in FIG. 2B, includes a field 211
`containing a file signature, a field 212 containing the size of
`the header, a field 213 containing the major version number,
`a field 214 containing the minor version number, and a field
`215 containing the number of media instances in the file.
`(The major and minor version numbers are used for revision
`control) The file header preamble 210 also includes reserved
`fields 216 and 217 to allow for future expansion of the
`preamble.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`As shown in more detail in FIG. 2C, each media instance
`descriptor 220 includes a variety of fields 221-225 which
`are used to describe and identify a media instance. Some of
`the fields are used to describe various characteristics or
`attributes about the instance’s data that will be presented,
`whereas other fields are used to locate and select the data.
`
`Field 221 indicating thc offsct, e.g., numbcr of bytcs, from
`the beginning of the body to the corresponding media block.
`The media instance descriptor 220 also includes a field 222
`indicating the media type of the corresponding media block,
`for example, video, audio, MIDI, and other existing and
`future media types. Field 223 indicates the encoding type of
`the corresponding media block, for example, H.263, H.261,
`MPEG, G.723, MIDI, and other standard or proprietary
`encoding types. Field 224 indicates a corresponding
`subtype, for example, English audio, French audio, QCIF
`video, CIF video, etc. Field 225 indicates an encoding rate
`of the corresponding media block; for example, for video
`information, the encoding rate indicates the target data rate
`for which the video information was encoded by a video
`encoder, such as the video encoder described in the related
`U.S. patent application “Improved Video Encoding System
`and Method”, identified and incorporated above, whereas for
`audio information, the encoding rate might indicate one of
`a number of audio sampling rates.
`As will be explained below, the number contained in field
`215 is not necessarily the same as the number of media
`streams that will eventually be involved in a presentation.
`The filc contains a numbcr of potentially rclatcd mcdia
`streams, or instances, organized according to media type,
`encoding type, subtype, and rate. A presentation, on the
`other hand, will likely involve only a subset of the available
`media streams, typically one instance of each of the plurality
`of media types. For example, a given presentation will likely
`involve only one of the multiple audio (language) subtyped
`instances that may be provided by a file organized according
`to the format. The same can be said for data encoded at
`different rates, and of course, a user may not be interested in
`a full compliment of media streams, e.g., the user may not
`be interested in receiving audio, even if it is supported by a
`file. Depending upon the services supported by the server
`(more below),
`the actual media types and particular
`instances of those media types involved in a presentation
`may be controlled by an end user, e.g., which language, and
`may also be controlled by the system, e.g., which encoded
`rate of audio.
`Once the media types and particular instances of those
`media types have been determined, for example, by being
`selected by the user or the server, the server will construct
`data structures using information from the file header 110,
`dcscribcd above, so that thc scrvcr can indcx into and itcratc
`over the data packets contained in the file body 120.
`(Indexing and iteration logic are known) The server can also
`use the header’s information to perform revision control and
`other known maintenance operations, discussed below when
`describing an exemplary server.
`The data contained in the file body 120 is organized as
`contiguous media blocks 310, one media block for each
`instance of a media type, as shown in FIG. 3. Each media
`block 310 includes a media block directory 320 and a media
`block body 330. The media block directory 320 includes
`information that may be used to locate information in the
`media block body 330, and the media block body 330
`includes tl1e actual data that will eventually be presented.
`This data is stored in the media block body 330 in pre-
`packetized form. “Pre-packetized” means that
`the data
`stored in media block body 330 is organized as discrete
`
`

`
`5,956,729
`
`7
`packets of information that can be transported without
`requiring any processing by the server to build the packets.
`An exemplary embodiment, discussed below, pre-packetizes
`the data so that
`it can be applied directly to the User
`Datagram Protocol (UDP) layer, which is part of the TCP/IP
`protocol suite. (UDP and TCP/IP are known).
`The prc-packctization process is media instancc spccific.
`For example, the G723 audio encoding standard encodes an
`audio stream into a stream of blocks, in which each block
`represents 30 milliseconds of audio information. One
`method of pre-packetizing the audio would be to form an
`audio packet for each G.723 block. A potentially more
`efficient method, however, merges many g.723 blocks into a
`packet, for example, 32 G.723 blocks to form an audio
`packet representing 960 milliseconds’ worth of audio infor-
`mation.
`
`Pre-packetizing video information, on the other hand,
`may benefit from dividing, rather than merging, presentation
`units. For example, under the H.263 video encoding
`standard, video information is encoded as a sequence of
`video frames (i.e., a frame being a presentation unit).
`Although a video packet may be formed to correspond to a
`single video frame, or presentation unit, advantages may be
`attained by dividing the presentation unit into several pack-
`ets. In this fashion, a large video frame may be divided into
`several packets so that each video packet is limited to a
`predetermined, maximum packet size.
`By pre-packetizing the data, an appropriately designed
`scrvcr’s proccssor load may bc reduced by allcviating the
`processor from having to perform certain tasks such as
`constructing packets on-the-fly from the media information.
`With the invention, the server can simply read a packet from
`the file and pass it to a UDP layer of the protocol stack via
`a standard interface.
`In addition, by pre—packetizing the data, an appropriately
`designed server’s memory requirements are by alleviating
`the server from having to keep recently transmitted packets
`available in a “packet window” in memory. Packet windows
`are conventionally used to hold recently-transmitted net-
`work packets in case they need to be retransmitted because
`they were lost in the network. The protocol being used
`dictates the required size of a packet window, but it is not
`uncommon in modern systems to have windows that require
`on the order of 100 kb of memory
`Given that each
`network channel requires a corresponding packet window
`and that
`it
`is not uncommon for current high-demand
`Internet servers to support upwards of 5,000 simultaneous
`channels (with foreseeable demand growing to over 20,000
`simultaneous channels in the near future), 512 Megabytes of
`expensive high-speed memory are needed just to support
`packct windowing. This rcquircmcnt prccludcs many mod-
`ern personal computers, and other small systems,
`from
`operating as a server. In contrast, the invention obviates the
`need for the packet windows and thus allows smaller,
`lower-cost systems to potentially operate as servers.
`The organization of a generic media block 310 is shown
`in FIGS. 4A—E and defines the basic template for a media
`block. In short, the generic media block format describes
`certain features common to all media types and instances. As
`will be described below, specific media types, such as video,
`audio, and MIDI may need to “supplement” the generic
`template.
`A generic media block directory 400, shown in FIG. 4A,
`includes a directory preamble 410 and a number of packet
`descriptors 420. The directory preamble 410, shown in more
`detail in FIG. 4B, includes a packet count field 411, indi-
`cating the number of packets contained in the media block
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`body and a presentation length field 413 indicating the total
`time duration of the presentation. A number of reserved
`fields 412 and 414 provide additional storage for media
`instance specific information (more below).
`A packet descriptor 420, shown in FIG. 4C, describes a
`single packet in the media block body. There is a one-to-one
`correspondence between packet dcscriptors 420 in thc mcdia
`block directory and packets in the media block body. Each
`packet descriptor 420 includes a packet offset field 421
`indicating the offset, e.g. bytes, from the start of the media
`block to the corresponding packet, a time stamp field 422
`indicating the start time for the packet relative to the start
`time of the presentation, an importance field 423 indicating
`the relative importance of the corresponding packet (more
`below), and a packet length field 425 indicating the length,
`e.g. bytes, of the corresponding packet.
`A generic media block body 430, shown in FIG. 4D,
`includes a number of packets 440. This number represents
`the number of packets in the stream, or instance.
`Apacket 440, shown in more detail in FIG. 4E, includes
`a channel number field 441, which is reserved for a currently
`undefined future use, and an importance field 442 indicating
`the relative importance of the packet to the perceived quality
`of the presentation (more below). Each packet 440 also
`includes fields 443-444 that may be used for segmentation
`and reassembly (SAR) of presentation units. As outlined
`above, depending on the media instance and other
`circumstances, advantages may be attained by dividing
`vidco framcs into multiple packcts. To accomplish this, ficld
`443 may be used to indicate the sequence number of the
`given packet relative to the multiple packets composing the
`presentation unit, e.g., video frame. A total segments field
`444 indicates the total number of segments.
`The packet 440 further includes a packet length field 445
`indicating the number of bytes of data contained in the
`packet, a sequence number field 447 which is reserved for a
`currently undefined future use, a time stamp field 448
`indicating the start time for the packet relative to the start of
`the presentation, and a data field 460 containing the media
`data that will be eventually presented. This media data is
`encoded in a predetermined format, according to the media
`type, encoding type, subtype, and rate (see FIG. 2C); the
`encoding format may be standardized,
`in the process of
`being standardized, or proprietary. A reserved field 449
`provides additional storage for media type specific informa-
`tion.
`includes pre-assigned
`like its descriptor,
`Each packet,
`importance information,
`indicative of the relative impor-
`tance of the packet with respect to the quality of the eventual
`presentation. As will be explained belo

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