throbber
(12) United States Patent
`Hoang
`
`USOO6725267B1
`(10) Patent No.:
`US 6,725,267 B1
`(45) Date of Patent:
`Apr. 20, 2004
`
`(54) PREFETCHED DATA IN A DIGITAL
`BROADCAST SYSTEM
`
`(75) Inventor: Khoi Hoang, Newark, CA (US)
`
`(73) ASSignee: Privave Corporation, Fremont, CA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(*) Notice:
`
`(21) Appl. No.: 09/709,948
`(22) Filed:
`Nov. 10, 2000
`Related U.S. Application Data
`
`(63) Continuation-in-part of application No. 09/584.832, filed on
`May 31, 2000.
`7
`(51) Int. Cl." ................................................ G06F 15/16
`(52) U.S. Cl. ....................... 709/226; 709/104; 709/217;
`709/233
`(58) Field of Search ................................. 709/104, 217,
`709/226, 233
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,280.221 A 7/1981 Chun et al. ................... 375/17
`E. A 7/1990 Horton et al.
`58/335
`4.963,995 A 10/1990 Lang .......................... 358/33
`5,089,982 A 2/1992 Gran et al. ................. 364/726
`5,132,992 A 7/1992 Yurt et al.
`5,421,031 A
`5/1995 De Bey ....................... 725.92
`5,521,630 A * 5/1996 Chen et al.
`5,557,316 A 9/1996 Hoarty et al. .................. 348/7
`5,604,528 A 2/1997 Edwards et al.
`5,612,742 A 3/1997 Krause et al.
`5,619.249 A 4/1997 Billock et al.
`5,632,681 A 5/1997 Bakoglu et al.
`5,654,746 A 8/1997 McMullan, Jr. et al.
`5,701,582. A 12/1997 De Bey ....................... 455/5.1
`5,724,646 A 3/1998 Ganek et al. ................ 455/4.2
`5,745,758 A
`4/1998 Shaw et al.
`
`5,751,282 A 5/1998 Girard et al. ............... 345/327
`5,751,709 A
`5/1998 Rathnavelu ................. 370/395
`5,768,539 A 6/1998 Metz et al.
`5,781,228 A * 7/1998 Sposato
`5,790,423 A 8/1998 Lau et al.
`5,805,804 A 9/1998 Laursen et al. ........ 395/200.02
`5,815,146 A
`9/1998 Youden et al. .............. 345/327
`5,850,258. A 12/1998 Kang ......................... 348/390
`(List continued on next page.)
`OTHER PUBLICATIONS
`PCT International Search Report, International Application
`No. PCT/US02/19618 filed Jun. 20, 2002, mailed Sep. 19,
`2002, 4 pages.
`Video on Demand Technologies and Demonstrations, Final
`Report, Marek Podgorny and Geoffrey C. Fox, Northeast
`Parallel
`Architectures
`Center,
`Contract
`No.:
`F-30602-94–C–0256, Mar. 1997, pp. 1–108.
`(List continued on next page.)
`Primary Examiner Le Hien Luu
`Assistant Examiner Stephan Willett
`(57)
`ABSTRACT
`A method for Sending data to a client to provide data-on
`demand Services comprises the Steps of receiving a data file,
`Specifying a time interval, parsing the data file into a
`plurality of data blocks based on the time interval Such that
`each data block is displayable during a time interval, deter
`mining a required number of time slots to Send the data file,
`allocating to each time slot at least a first of the plurality of
`data blocks and optionally one or more additional data
`blocks, such that starting from any of the time slots, (i) the
`data file can be displayed by accessing the first of the
`plurality of data blocks; (ii) at a consecutive time slot, a next
`data block Sequential to a prior displayed data block is
`available for displaying; and (iii) repeating step (ii) until all
`of the plurality of data blocks for the data file has been
`displayed, and Sending the plurality of data blockS based on
`the allocating Ste
`g Slep.
`
`14 Claims, 5 Drawing Sheets
`
`102
`Central Controlling
`Sever
`
`14
`Monitoring
`Module
`
`Central
`Storage
`
`- 103
`
`100
`
`112
`
`->
`
`108
`
`404a
`
`Charle Sever 1 :
`
`Up-Converter 1
`
`106a
`e
`
`106
`
`1049
`-
`
`104.c
`
`Chane Sever 2
`
`Channel Server 3
`
`Up-Converter 2
`
`Up-Converter 3
`
`s
`106c |g
`s
`
`
`
`O
`
`HX-
`
`X
`
`11
`
`O
`Chathhel Server in
`
`104
`
`Up-Conve ter
`
`116a
`a
`
`116b
`
`Backup
`Channel
`
`Backup channel
`Sewer2
`
`Backup
`rter 1
`> Up-Conve
`
`s
`
`BackLip
`Up-converter 2
`
`DISH, Exh.1009, p.0001
`
`

`

`US 6,725,267 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`1/1999 Thompson .................. 370/389
`5,856,973 A
`5,892,535 A 4/1999 Allen et al. .................... 348/9
`5,909,594 A 6/1999 Ross et al.
`5,915,094. A 6/1999 Kouloheris et al. .... 395/200.49
`5,949,948 A 9/1999 Krause et al. ................. 386/6
`5,961,603 A 10/1999 Kunkel et al.
`5,978,649 A 11/1999 Khan
`5,995,092 A 11/1999 Yuen et al.
`6,005.599 A 12/1999 Asai et al. ..................... 348/7
`6,011,798 A 1/2000 McAlpine .....
`... 370/395
`6,012,080 A 1/2000 OZden et al. .
`... 709/102
`6,018,359 A
`1/2000 Kermode et al. .............. 348/7
`6,018,765 A 1/2000 Durana et al.
`... 709/217
`6,028.847. A 2/2000 Beanland .................... 370/252
`6,029,045 A 2/2000 Picco et al.
`6,029,046 A 2/2000 Khan et al.
`6,049,332 A 4/2000 Boetje et al.
`6,049,539 A 4/2000 Lee et al.
`E. A : : Mills st al - - - - - - - - - - - - - - - - - 709/200
`6,058,122 A
`5/2000 R et al. .............. 370522
`6,075,570 A
`6/2000 Usui et al. .................. 34.8569
`6,076,062 A * 6/2000 Van Steenbrugge
`6,112,023 A 8/2000 Dave et al.
`6,118,821. A * 9/2000 Matsumoto et al.
`6,119,163 A * 9/2000 Monteiro et al.
`6,128,467 A 10/2000 Rege .......................... 455/4.2
`6,157,949 A 12/2000 Cheng et al. ...
`... 709/219
`6,160,546 A 12/2000 Thompson et al. ......... 345/327
`6,169,767 B1 * 1/2001 Strolle et al.
`6,198.723 B1
`3/2001 Parruck et al. ............. 370/230
`
`2Y- - - 2
`
`e a
`
`3/2001 Logan et al. ............... 707/501
`6,199,076 B1
`4/2001 Ikeda .......................... 725/92
`6.212,681 B1
`4/2001 Barton et al. ............... 348/473
`6,215,526 B1
`4/2001 Brodigan .................... 370/486
`6.219,355 B1
`4/2001 Sequeira
`6,222,530 B1
`5/2001 Barton ........................ 386/46
`6,233,389 B1
`6/2001 SeaZholtz et al. ........... 370/468
`6,246,695 B1
`6,263,019 B1 * 7/2001 Ryan
`6,266,369 B1
`7/2001 Wang et al.
`6,282,195 B1
`8/2001 Miller et al................. 370/392
`6,349,098 B1
`2/2002 Parruck et al. ............. 370/395
`6,370,688 B1
`4/2002 Hejna, Jr. ................... 725/101
`6,389,075 B2
`5/2002 Want et al.
`6,477,579 B1 11/2002 Kunkel et al.
`6,502,139 B1 12/2002 Birk et al. .................. 709/233
`2001/0014211 A1 * 8/2001 Morinaga
`
`
`
`OTHER PUBLICATIONS
`
`PCT/ISA/220, PCTISR, International Application No. PCT/
`US02/12752 Filed Apr. 23, 2002, mailed Feb. 10, 2003.
`PCTISA/220, PCTISR, International Application No, PCT/
`US02/3800 Filed Nov. 27, 2002, mailed Feb. 14, 2003.
`PCT International Search Report, International Application
`No.: PCT/US00/22989 filed Aug. 22, 2000, mailed Aug. 15,
`2001, 9 pages.
`PCT International Search Report, International Application
`No.: PCT/US01/17993 filed May 31, 2001, mailed Sep. 28,
`2001, 5 pages.
`
`* cited by examiner
`
`DISH, Exh.1009, p.0002
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 1 of 5
`
`US 6,725,267 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`1OO
`
`38
`S. E.
`a
`
`Transmission
`Medium
`110
`
`Central Controlling Server
`
`Central
`Storage
`
`104a
`
`104b.
`
`Up-Converter 1
`
`Channel Server 1
`
`Channel Server 2
`
`Up-Converter 2
`
`Channel Server 3
`
`
`
`Up-Converter 3
`
`O
`
`O
`
`Channel Server n
`
`Up-Converter n
`
`
`
`
`
`
`
`
`
`
`
`
`
`Cable Television
`System
`
`FIG. 1A
`
`DISH, Exh.1009, p.0003
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 2 of 5
`
`US 6,725,267 B1
`
`102
`
`Central Controlling
`Server
`
`
`
`
`
`114
`Monitoring
`Module
`
`
`
`Central
`Storage
`
`1OO
`
`108
`
`
`
`
`
`3 58
`E. C.
`9 N
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Channel Server 1
`
`Channel Server 2
`
`
`
`104b.
`
`Channel Server 3
`
`
`
`er
`|Up convere 2
`
`106C
`
`Up-Converter 3
`
`
`
`
`
`Channel Server n
`
`106n
`
`onverter n --
`
`Backup
`Channel
`
`Backup Channel
`Server 2
`
`116b
`
`Backup
`Up-Converter 1
`
`Backup
`Up-Converter 2
`
`118b
`
`FG. 1B
`
`DISH, Exh.1009, p.0004
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 3 of 5
`
`US 6,725,267 B1
`
`Server
`Controller
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`104
`
`QAM
`Modulator
`
`Local Memory
`
`Network
`Interface
`
`FIG. 2
`
`To Up
`Converter
`106
`
`Central
`Controling
`Server
`102
`
`DISH, Exh.1009, p.0005
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 4 of 5
`
`US 6,725,267 B1
`
`
`
`OAM
`Demodulator
`
`110
`-
`
`Conditional
`ACCeSS
`Control
`
`Local Memory
`
`STB
`Controller
`
`Graphics
`Overlay
`
`FIG 3
`
`DISH, Exh.1009, p.0006
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet S of 5
`
`US 6,725,267 B1
`
`Receive a number of data
`blocks "x" for a data file
`
`402
`
`= 0
`
`-404
`
`Clear a Reference Array
`
`406
`
`416
`
`j= j + 1
`
`408
`
`END
`
`410
`
`
`
`
`
`Write Al Data Blocks Stored in Matrix Positions of Column
`(i+) mod (x)) in a Matrix into the Reference Array; Do Not
`Write if the Reference Array Already Contains the Data Block
`
`
`
`Does RA Contain
`Data Block i?
`
`i = i + 1
`
`Add Data Block i into the Matrix at Matrix Postion
`(i+j)mod(x), j and the Reference Array
`
`
`
`FIG. 4
`
`DISH, Exh.1009, p.0007
`
`

`

`US 6,725,267 B1
`
`1
`PREFETCHED DATA IN A DIGITAL
`BROADCAST SYSTEM
`
`RELATED APPLICATION
`This application is a continuation-in-part application of
`the parent application titled “Systems and Methods for
`Providing Video-On-Demand Services for Broadcasting
`Systems' filed on May 31, 2000, bearing application Ser.
`No. 09/584,832.
`
`BRIEF DESCRIPTION OF THE INVENTION
`This invention relates generally to data-on-demand SyS
`tems. In particular, this invention relates to Video-on
`demand Systems.
`
`15
`
`2
`committed to service 10,000 clients. This technique may
`work if most of the Subscribing clients do not order videos
`at the Same time. However, this technique is Set up for failure
`because most clients are likely to want to view VideoS at the
`same time (i.e., evenings and weekends), thus, causing the
`local Server to become overloaded.
`Thus, it is desirable to provide a System that is capable of
`providing on-demand Services to a large number of clients
`over virtually any transmission medium without replacing
`existing infrastructure.
`SUMMARY OF THE INVENTION
`In an exemplary embodiment, at a Server Side, a method
`for Sending data to a client to provide data-on-demand
`Services comprises the Steps of receiving a data file, Speci
`fying a time interval, parsing the data file into a plurality of
`data blockS based on the time interval Such that each data
`block is displayable during the time interval, determining a
`required number of time slots to Send the data file, allocating
`to each time slot at least a first of the plurality of data blocks
`and optionally one or more additional data blocks, Such that
`the plurality of data blockS is available in Sequential order to
`a client accessing the data file during any time slot, and
`Sending the plurality of data blockS based on the allocating
`Step. In one embodiment, the parsing Step includes the Steps
`of determining an estimated data block size, determining a
`cluster size of a memory in a channel Server, and parsing the
`data file based on the estimated data block size and the
`cluster size. In another embodiment, the determining Step
`includes the Step of assessing resource allocation and band
`width availability.
`In one embodiment, the method further comprises the
`Steps of Selecting a set of prefetch data blocks from the
`plurality of data blocks and Separately Sending the Set of
`prefetch data blocks in a dedicated channel for Sending
`prefetch data, program guide, commercials, firmware
`update, etc. In an exemplary embodiment, the Step of
`Selecting a Set of prefetch data blocks includes the Steps of:
`(1) determining a bandwidth reduction, a bandwidth alloca
`tion for prefetch data in the dedicated channel, and a delay
`time; and (2) Selecting the prefetch data blocks based on the
`bandwidth reduction, the bandwidth allocation, and the
`delay time.
`In another embodiment, the method further comprises the
`Steps of receiving a request for a preview, randomly Select
`ing a Set of data blocks from the plurality of data blocks to
`compose the preview, and causing a display of the preview.
`In yet another embodiment, the method further comprises
`Sending a set of commercial data blocks in the dedicated
`channel and causing a display of the Set of commercial data
`blocks at predetermined times. In an exemplary
`embodiment, the commercial data blocks are continuously
`Sent in the dedicated channel. In this embodiment, the Step
`of displaying the Set of commercial data blocks includes the
`Steps of receiving a user Selection of a price based on a
`frequency of commercial display and causing a display of
`the Set of commercial data blocks based on the user Selec
`tion.
`In yet another embodiment, the method further comprises
`the Steps of checking a packet header of the data file for an
`emergency bit, tuning to the dedicated channel to receive
`emergency information when the emergency bit is detected,
`and causing a display of the emergency information. In one
`embodiment, this method further comprises the Steps of
`determining whether the emergency information is for a
`relevant region and displaying the emergency information if
`the emergency information is for the relevant region.
`
`BACKGROUND OF THE INVENTION
`Video-on-demand (VOD) systems are one type of data
`on-demand(DOD) system. In VOD systems, video data files
`are provided by a Server or a network of Servers to one or
`more clients on a demand basis.
`In a conventional VOD architecture, a server or a network
`of Servers communicates with clients in a Standard hierar
`chical client-Server model. For example, a client Sends a
`request to a server for a data file (e.g., a video data file). In
`response to the client request, the Server Sends the requested
`file to the client. In the Standard client-server model, a
`client's request for a data file can be fulfilled by one or more
`Servers. The client may have the capability to Store any
`received data file locally in non-volatile memory for later
`use. The Standard client-Server model requires a two-way
`communications infrastructure. Currently, two-way commu
`nications requires building new infrastructure because exist
`ing cables can only provide one-way communications.
`Examples of two-way communications infrastructure-are
`hybrid fiber optics coaxial cables (HFC) or all fiber infra
`Structure. Replacing existing cables is very costly and the
`resulting Services may not be affordable to most users.
`In addition, the Standard client-Server model has many
`limitations when a Service provider (e.g., a cable company)
`attempts to provide VOD services to a large number of
`clients. One limitation of the standard client-server model is
`that the Service provider has to implement a mechanism to
`continuously listen and fulfill every request from each client
`within the network; thus, the number of clients who can
`receive Service is dependent on the capacity of Such a
`mechanism. One mechanism uses massively-parallel com
`puters having large and fast disk arrays as local Servers.
`However, even the fastest existing local Server can only
`deliver video data streams to about 1000 to 2000 clients at
`one time. Thus, in order to Service more clients, the number
`of local Servers must increase. Increasing local Servers
`requires more upper level Servers to maintain control of the
`local Servers.
`Another limitation of the standard client-server model is
`that each client requires its own bandwidth. Thus, the total
`required bandwidth is directly proportional to the number of
`Subscribing clients. Cache memory within local ServerS has
`been used to improve bandwidth limitation but using cache
`memory does not Solve the problem because cache memory
`is also limited.
`Presently, in order to make Video-on-demand Services
`more affordable for clients, existing Service providers are
`increasing the ratio of clients per local Server above the local
`Server's capabilities. Typically, a local Server, which is
`capable of providing Service to 1000 clients, is actually
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`DISH, Exh.1009, p.0008
`
`

`

`25
`
`3
`In an exemplary embodiment, at a client Side, a method
`for processing data received from a server to provide data
`on-demand Services comprises the steps of: (a) receiving a
`Selection of a data file during a first time slot; (b) receiving
`at least one data block of the data file during a Second time
`slot; (c) during a next time slot: receiving any data block not
`already received, Sequentially displaying a data block of the
`data file, and repeating step (c) until all data blocks of the
`data file has been received and displayed. In one
`embodiment, the method for processing data received from
`a Server is performed by a Set-top box at the client Side.
`In an exemplary embodiment, a data file is divided into a
`number of data blocks and a Scheduling matrix is generated
`based on the number of data blocks. At the server side, the
`Scheduling matrix provides a Send order for Sending the data
`blocks, Such that a client can access the data blocks in
`Sequential order at a random time. In an exemplary
`embodiment, a method for generating a Scheduling matrix
`for a data file comprises the Steps of: (a) receiving a number
`of data blocks x for a data file; (b) setting a first variable
`to Zero; (c) setting a second variable i to Zero; (d)
`clearing all entries in a reference array; (e) writing at least
`one data block stored in matrix positions of a column (i+)
`modulo X in a matrix to a reference array, if the reference
`array does not already contain the data block, (f) writing a
`data blocki into the reference array and a matrix position
`(i+j) modulo X,j) of the matrix, if the reference array does
`not contain the data blocki; (g) incrementing the Second
`variable i by one and repeating step (e) until the Second
`variable i is equal to the number of data blocks x); and (h)
`incrementing the first variable
`by one and repeating the
`Step (c) until the first variable
`is equal to the number of
`data blockS X). In one embodiment, a Scheduling matrix is
`generated for each data file in a set of data files and a
`convolution method is applied to generate a delivery matrix
`based on the Scheduling matrices for Sending the Set of data
`files.
`A data-on-demand System comprises a first Set of channel
`Servers, a central controlling Server for controlling the first
`Set of channel Servers, a first Set of up-converters coupled to
`the first Set of channel Servers, a combiner/amplifier coupled
`to the first Set of up-converters, and a combiner/amplifier
`adapted to transmit data via a transmission medium. In an
`exemplary embodiment, the data-on-demand System further
`comprises a channel monitoring module for monitoring the
`System, a Switch matrix, a Second Set of channel Servers, and
`a Second set of up-converters. The channel monitoring
`module is configured to report to the central controlling
`Server when System failure occurs. The central controlling
`Server, in response to report from the channel monitoring
`module, instructs the Switch matrix to replace a defective
`channel server in the first set of channel servers with a
`channel Server in the Second Set of channel Servers and a
`defective up-converter in the first Set of up-converters with
`an up-converter in the Second Set of up-converters.
`55
`A method for providing data-on-demand Services com
`prises the Steps of calculating a delivery matrix of a data file,
`Sending the data file in accordance with the delivery matrix,
`Such that a large number of clients is capable of viewing the
`data file on demand. In one embodiment, the data file
`includes a Video file.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1A illustrates an exemplary DOD system in accor
`dance with an embodiment of the invention.
`FIG. 1B illustrates an exemplary DOD system in accor
`dance with another embodiment of the invention.
`
`4
`FIG. 2 illustrates an exemplary channel Server in accor
`dance with an embodiment of the invention.
`FIG. 3 illustrates an exemplary Set-top box in accordance
`with an embodiment of the invention.
`FIG. 4 illustrates an exemplary proceSS for generating a
`Scheduling matrix in accordance with an embodiment of the
`invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`FIG. 1A illustrates an exemplary DOD system 100 in
`accordance with an embodiment of the invention. In this
`embodiment, the DOD system 100 provides data files, such
`as video files, on demand. However, the DOD system 100 is
`not limited to providing video files on demand but is also
`capable of providing other data files, for example, game files
`on demand. The DOD system 100 includes a central con
`trolling server 102, a central storage 103, a plurality of
`channel servers 104a–104n, a plurality of up-converters
`106a-106n, and a combiner/amplifier 108. The central con
`trolling server 102 controls the channel servers 104. The
`central Storage 103 Stores data files in digital format. In an
`exemplary embodiment, data files Stored in the central
`Storage 103 are accessible via a Standard network interface
`(e.g., ethernet connection) by any authorized computer, Such
`as the central controller server 102, connected to the net
`work. Each channel Server 104 is assigned to a channel and
`is coupled to an up-converter 106. The channel servers 104
`provide data files that are retrieved from the central Storage
`103 in accordance with instructions from the central con
`trolling server 102. The output of each channel server 104 is
`a quadrature amplitude modulation (QAM) modulated inter
`mediate frequency (IF) signal having a Suitable frequency
`for the corresponding up-converter 106. The QAM
`modulated IF Signals are dependent upon adopted Standards.
`The current adopted standard in the United States is the
`data-over-cable-systems-interface-specification (DOCSIS)
`standard, which requires an approximately 43.75 MHz IF
`frequency. The up-converters 106 convert IF signals
`received from the channel servers 104 to radio frequency
`signals (RF signals). The RF signals, which include fre
`quency and bandwidth, are dependent on a desired channel
`and adopted Standards. For example, under the current
`standard in the United States for a cable television channel
`80, the RF signal has a frequency of approximately 559.25
`MHz and a bandwidth of approximately 6 MHz. The outputs
`of the up-converters 106 are applied to the combiner/
`amplifier 108. The combiner/amplifier 108 amplifies,
`conditions, and combines the received RF signals then
`outputs the Signals out to a transmission medium 110.
`In an exemplary embodiment, the central controlling
`Server 102 includes a graphics user interface (not shown) to
`enable a Service provider to Schedule data delivery by a
`drag-and-drop operation. Further, the central controlling
`server 102 authenticates and controls the channel servers
`104 to Start or Stop according to delivery matrices. In an
`exemplary embodiment, the central controlling Server 102
`automatically Selects a channel and calculates delivery
`matrices for transmitting data files in the Selected channel.
`The central controlling server 102 provides offline addition,
`deletion, and update of data file information (e.g., duration,
`category, rating, and/or brief description). Further, the cen
`tral controlling server 102 controls the central storage 103
`by updating data files and databases Stored therein.
`In an exemplary embodiment, an existing cable television
`System 120 may continue to feed Signals into the combiner/
`
`US 6,725,267 B1
`
`1O
`
`15
`
`35
`
`40
`
`45
`
`50
`
`60
`
`65
`
`DISH, Exh.1009, p.0009
`
`

`

`US 6,725,267 B1
`
`15
`
`25
`
`S
`amplifier 108 to provide non-DOD services to clients. Thus,
`the DOD system 100 in accordance with the invention does
`not disrupt present cable television Services.
`FIG. 1B illustrates another exemplary embodiment of the
`DOD system 100 in accordance with the invention. In
`addition to the elements illustrated in FIG. 1A, the DOD
`system 100 includes a Switch matrix 112, a channel moni
`toring module 114, a set of back-up channel Servers
`116a-116b, and a set of back-up up-converters 118a–118b.
`In one embodiment, the Switch matrix 112 is physically
`located between the up-converters 106 and the combiner/
`amplifier 108. The Switch matrix 112 is controlled by the
`central controlling Server 102. The channel monitoring mod
`ule 114 comprises a plurality of configured Set-top boxes,
`which Simulate potential clients, for monitoring the health of
`the DOD system 100. Monitoring results are communicated
`by the channel monitoring module 114 to the central con
`trolling Server 102. In case of a channel failure (i.e., a
`channel Server failure, an up-converter failure, or a commu
`nication link failure), the central controlling server 102
`through the Switch matrix 112 disengages the malfunction
`ing component and engages a healthy backup component
`116 and/or 118 to resume service.
`In an exemplary embodiment, data files being broadcasted
`from the DOD system 100 are contained in motion pictures
`expert group (MPEG) files. Each MPEG file is dynamically
`divided into data blocks and Sub-blockS mapping to a
`particular portion of a data file along a time axis. These data
`blocks and Sub-blocks are Sent during a pre-determined time
`in accordance with three-dimensional delivery matrices pro
`vided by the central controlling server 102. A feedback
`channel is not necessary for the DOD system 100 to provide
`DOD services. However, if a feedback channel is available,
`the feedback channel can be used for other purpose, Such as
`billing or providing Internet Services.
`FIG. 2 illustrates an exemplary channel server 104 in
`accordance with an embodiment of the invention. The
`channel server 104 comprises a server controller 202, a CPU
`204, a QAM modulator 206, a local memory 208, and a
`network interface 210. The server controller 202 controls the
`overall operation of the channel server 104 by instructing the
`CPU 204 to divide data files into blocks (further into
`Sub-blocks and data packets), Select data blocks for trans
`mission in accordance with a delivery matrix provided by
`the central controlling Server 102, encode Selected data,
`compress encoded data, then deliver compressed data to the
`OAM modulator 206. The OAM modulator 206 receives
`data to be transmitted via a bus (i.e., PCI, CPU local bus) or
`Ethernet connections. In an exemplary embodiment, the
`QAM modulator 206 may include a downstream QAM
`50
`modulator, an upstream quadrature amplitude modulation/
`quadrature phase shift keying (QAM/QPSK) burst demodu
`lator with forward error correction decoder, and/or an
`upstream tuner. The output of the QAM modulator 206 is an
`IF signal that can be applied directly to an up-converter 106.
`The network interface 210 connects the channel server
`104 to other channel servers 104 and to the central control
`ling Server 102 to execute the Scheduling and controlling
`instructions from the central controlling Server 102, report
`ing Status back to the central controlling Server 102, and
`receiving data files from the central Storage 103. Any data
`file retrieved from the central storage 103 can be stored in
`the local memory 208 of the channel server 104 before the
`data file is processed in accordance with instructions from
`the server controller 202. In an exemplary embodiment, the
`channel server 104 may send one or more DOD data streams
`depending on the bandwidth of a cable channel (e.g., 6, 6.5,
`
`6
`or 8 MHz), QAM modulation (e.g., QAM 64 or QAM 256),
`and a compression standard/bit rate of the DOD data stream
`(i.e., MPEG-1 or MPEG-2).
`FIG. 3 illustrates an exemplary set-top box (STB) 300 in
`accordance with an embodiment of the invention. The STB
`300 comprises a QAM demodulator 302, a CPU 304, a
`conditional access module 306 (e.g., a Smart card System), a
`local memory 308, a buffer memory 309, a STB controller
`310, a decoder 312, and a graphics overlay module 314. The
`STB controller 310 controls the overall operation of the STB
`300 by controlling the CPU 302 and the QAM demodulator
`302 to Select data in response to a client's request, decode
`Selected data, decompress decoded data, reassemble
`decoded data, store decoded data in the local memory 308 or
`the buffer memory 309, and deliver stored data to the
`decoder 312. In an exemplary embodiment, the STB con
`troller 310 controls the overall operation of the STB 300
`based on data packet headers in the data packets received
`from the transmission medium 110. In an exemplary
`embodiment, the local memory 308 comprises non-volatile
`memory (e.g., a hard drive) and the buffer memory 309
`comprises volatile memory.
`In one embodiment, the OAM demodulator 302 com
`prises transmitter and receiver modules and one or more of
`the following: privacy encryption/decryption module, for
`ward error correction decoder/encoder, tuner control, down
`Stream and upstream processors, CPU and memory interface
`circuits. The OAM demodulator 302 receives modulated IF
`Signals, Samples and demodulates the Signals to restore data.
`The conditional access module 306 permits a decoding
`process when access is granted after authentication and/or
`when appropriate fees have been charged. Access condition
`is determined by the service provider.
`In an exemplary embodiment, when acceSS is granted, the
`decoder 312 decodes at least one data block to transform the
`data block into images displayable on an output Screen. The
`decoder 312 Supports commands from a Subscribing client,
`Such as play, Stop, pause, Step, rewind, forward, etc.
`The graphics overlay module 314 enhances displayed
`graphics quality by, for example, providing alpha blending
`or picture-in-picture capabilities. In an exemplary
`embodiment, the graphics overlay module 314 can be used
`for graphics acceleration during game playing mode, for
`example, when the Service provider provides games-on
`demand Services using the System in accordance with the
`invention.
`In an exemplary embodiment, although data files are
`broadcasted to all cable television subscribers, only the
`DOD subscriber who has a compatible STB300 will be able
`to decode and enjoy data-on-demand Services. In one exem
`plary embodiment, permission to obtain data files on
`demand can be obtained via a Smart card System in the
`conditional access control module 306. A Smart card may be
`rechargeable at a local Store or vending machine Set up by
`a Service provider. In another exemplary embodiment, a flat
`fee System provides a Subscriber unlimited access to all
`available data files.
`In an exemplary embodiment, data-on-demand interactive
`features permit a client to Select at any time an available data
`file. The amount of time between when a client presses a
`Select button and the time the Selected data file begins
`playing is referred to as a response time. AS more resources
`are allocated (e.g., bandwidth, server capability) to provide
`DOD Services, the response time gets Shorter. In an exem
`plary embodiment, a response time can be determined based
`on an evaluation of resource allocation and desired quality
`of Service.
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`DISH, Exh.1009, p.0010
`
`

`

`US 6,725,267 B1
`
`7
`In an exemplary embodiment, a Selected response time
`determines the duration of a time slot. The duration of a time
`slot (TS) is the time interval for playing a data video file, is
`divided into a number of data blocks Such that each data
`block can Support the playing of the data file for the duration
`of a time slot.
`In one embodiment, the number of data blocks (NUM
`OF BLKS) for each data file can be calculated as follows:
`
`8
`reference array. If the reference array does not contain data
`block i, data block i is added into the Scheduling matrix at
`matrix position (i+) modulo (x), j and the reference array
`(step 422). After the data block i is added to the scheduling
`matrix and the reference array, i is incremented by 1, Such
`that i=i--1 (Step 424), then the process repeats at Step 414
`until i=X. If the reference array contains data block i, i is
`incremented by 1, such that i=i-1 (step 424), then the
`process repeats at Step 414 until i=X. When i=X, j is incre
`mented by 1, Such that j=+1 (Step 416) and the process
`repeats at step 406 until j=X. The entire process ends when
`j=x (step 410).
`In an exemplary embodiment, if a data file is divided into
`Six data blocks (X=6), the Scheduling matrix and the refer
`ence arrays are as follows:
`
`Estimated BLK Size = (DataFile Size * TS)/DataFile Length
`BLKSIZE = (Estimated BLK Size + CLUSTER SIZE - 1 Byte),
`CLUSTER SIZE
`BLK SIZE BYTES = BLK SIZE * CLUSTER SIZE
`NUM OF BLKS = (DataFile Size + BLK SIZE BYTES -
`1 Byte)/BLK SIZE BYTES
`
`(1)
`(2)

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