JP5038574B2 - Method for providing video-on-demand services for broadcast systems - Google Patents
Method for providing video-on-demand services for broadcast systems Download PDFInfo
- Publication number
- JP5038574B2 JP5038574B2 JP2002500209A JP2002500209A JP5038574B2 JP 5038574 B2 JP5038574 B2 JP 5038574B2 JP 2002500209 A JP2002500209 A JP 2002500209A JP 2002500209 A JP2002500209 A JP 2002500209A JP 5038574 B2 JP5038574 B2 JP 5038574B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data blocks
- data file
- channel
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000005540 biological transmission Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 description 52
- 238000012384 transportation and delivery Methods 0.000 description 20
- 238000003860 storage Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005304 joining Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26241—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26275—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for distributing content or additional data in a staggered manner, e.g. repeating movies on different channels in a time-staggered manner in a near video on demand system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/418—External card to be used in combination with the client device, e.g. for conditional access
- H04N21/4181—External card to be used in combination with the client device, e.g. for conditional access for conditional access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17336—Handling of requests in head-ends
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Television Signal Processing For Recording (AREA)
- Television Systems (AREA)
- Circuits Of Receivers In General (AREA)
Description
【0001】
【発明の簡単な説明】
本発明は、一般に、データ・オン・デマンドシステムに関する。本発明は、特に、ビデオ・オン・デマンドシステムに関する。
【0002】
【発明の背景】
ビデオ・オン・デマンド(VOD)システムは、データ・オン・デマンド(DOD)システムの一種である。VODシステムでは、ビデオデータファイルは、サーバまたはサーバからなるネットワークによって、1つまたはそれ以上のクライアントにオン・デマンドで提供される。
【0003】
従来のVODアーキテクチャでは、サーバまたはサーバからなるネットワークは、標準的な階層クライアント・サーバモデルの方式でクライアントと通信する。例えば、クライアントは、データファイル(例えばビデオデータファイル)要求をサーバに送信する。クライアントからの要求に応じ、サーバは、要求されたデータファイルをクライアントに送信する。標準的なクライアント・サーバモデルでは、クライアントからのデータファイル要求は、1つまたはそれ以上のサーバによって実現することができる。クライアントは、受信された任意のデータファイルを、後の使用のために不揮発性メモリにローカルに格納する能力を有することができる。標準的なクライアント・サーバモデルは、双方向通信インフラストラクチャを必要とする。既存のケーブルが単方向通信しか提供できないことから、現時点での双方向通信は、新しいインフラストラクチャを構築する必要がある。双方向通信インフラストラクチャの例として、光ファイバと同軸ケーブルの組み合わせ(HFC)またはあらゆるファイバインフラストラクチャが挙げられる。既存のケーブルを取り替える作業は、非常に高コストであり、大部分のユーザは、こうして得られるサービスを享受することができない。
【0004】
また、標準的なクライアント・サーバモデルは、サービスプロバイダ(例えばケーブル会社)が多数のクライアントにVODサービスを提供しようと試みる場合に、多くの制約を受ける。標準的なクライアント・サーバモデルが受ける制約の1つは、サービスプロバイダが、ネットワーク内の各クライアントから発せられる全ての要求を連続的に聞き入れて実現するメカニズムを構築する必要があり、したがって、サービスを受容できるクライアントの数が、このようなメカニズムのキャパシティに依存するという点である。あるメカニズムは、ローカルサーバとして、大きく且つ高速なディスクアレイを有した超並列コンピュータを使用する。しかしながら、既存のローカルサーバのうちで最も高速のものですら、一度に約1,000から2,000のクライアントにビデオデータストリームを配信できるに過ぎない。したがって、より多くのクライアントにサービスするためには、ローカルサーバの数を増やさなければならない。ローカルサーバの数が増えると、ローカルサーバの制御を維持するために、より多くの上位サーバが必要になる。
【0005】
標準的なクライアント・サーバモデルが受けるもう1つの制約は、各クライアントがそれぞれ自身の帯域幅を必要とする点である。したがって、必要な総帯域幅は、加入クライアントの数に正比例する。帯域幅の制約を改善するために、これまでローカルサーバ内のキャッシュメモリが使用されてきたが、キャッシュメモリ自体にも限界があるので、キャッシュメモリを使用しても問題の解決にはならない。
【0006】
ビデオ・オン・デマンドがクライアントにより享受されやすくなるように、既存のサービスプロバイダは、ローカルサーバごとのクライアントの割合をローカルサーバの能力を超えて増大させている。一般に、1,000のクライアントにサービスを提供できるローカルサーバは、実際は、10,000のクライアントに対するサービスを請け負っている。この技術は、加入クライアントの大部分が同時にビデオを注文しない場合は機能し得る。しかしながら、この技術は故障を引き起こしやすい。なぜなら、大部分のクライアントは同じ時に(例えば夜間や週末などに)ビデオを見たがるものであり、このことが、ローカルサーバがオーバーロードすることにつながるからである。
【0007】
したがって、既存のインフラストラクチャを取り替えることなく、事実上任意の伝送媒体を通して多数のクライアントにオン・デマンドサービスを提供できるシステムを提供することが、望まれている。
【0008】
【発明の概要】
代表的な一実施形態では、データ・オン・デマンドサービスを提供するために、サーバ側においてクライアントにデータを送信する方法は、データファイルを受け取るステップと、時間間隔を特定するステップと、その時間間隔中に各データブロックを表示できるように、時間間隔に基づいてデータファイルを複数のデータブロックに分解するステップと、データファイルを送信するために必要とされるタイムスロットの数を決定するステップと、どのタイムスロット中にデータファイルにアクセスするクライアントであっても、複数のデータブロックを順番に使用できるように、複数のデータブロックのうち少なくとも第1のデータブロックを、そして必要に応じて追加の1つまたはそれ以上のデータブロックを、各タイムスロットに割り当てるステップと、割り当てのステップに基づいて複数のデータブロックを送信するステップとを備える。一実施形態では、分解のステップは、推定データブロックサイズを決定するステップと、チャネルサーバのなかのメモリのクラスタサイズを決定するステップと、推定データブロックサイズおよびクラスタサイズに基づいてデータファイルを分解するステップとを含む。別の一実施形態では、決定のステップは、リソースの割り当ておよび帯域幅の利用可用性を評価するステップを含む。
【0009】
一実施形態では、この方法は、さらに、複数のデータブロックから1組の先取りデータブロックを選択するステップと、先取りデータ、番組ガイド、コマーシャル、ファームウェアアップデートなどを送信するための専用チャネルによって1組の先取りデータブロックを個々に送信するステップとを備える。代表的な一実施形態では、1組の先取りデータブロックを選択するステップは、(1)帯域幅の減少、専用チャネルでの先取りデータへの帯域幅の割り当て、および遅延時間を決定するステップと、(2)帯域幅の減少、帯域幅の割り当て、および遅延時間に基づいて先取りデータブロックを選択するステップとを含む。
【0010】
別の一実施形態では、この方法は、さらに、プレビュー要求を受け取るステップと、プレビューを構成するために複数のデータブロックから1組のデータブロックをランダムに選択するステップと、プレビューを表示させるステップとを含む。さらに別の一実施形態では、方法は、さらに、専用チャネルで1組のコマーシャルデータブロックを送信するステップと、1組のコマーシャルデータブロックを所定の時間に表示させるステップとを備える。代表的な一実施形態では、コマーシャルデータブロックは、専用チャネルで連続的に送信される。この実施形態では、1組のコマーシャルデータブロックを表示するステップは、コマーシャル表示の頻度に基づいたユーザによる料金選択を受け取るステップと、ユーザによる選択に基づいて1組のコマーシャルデータブロックを表示させるステップとを含む。
【0011】
さらに別の一実施形態では、この方法は、さらに、データファイルのパケットヘッダ内の緊急ビットの有無をチェックするステップと、緊急ビットが検出された場合に、専用チャネルにチューニングを合わせて緊急情報を受け取るステップと、緊急情報を表示させるステップとを備える。一実施形態では、この方法は、さらに、緊急情報が関連する領域に関連したものであるか否かを決定するステップと、緊急情報が関連する領域に関連したものである場合に、緊急情報を表示するステップとを備える。
【0012】
代表的な一実施形態では、データ・オン・デマンドサービスを提供するために、サーバから受信されたデータをクライアント側において処理する方法は、(a)第1のタイムスロット中に、データファイルの選択を受け取るステップと、(b)第2のタイムスロット中に、データファイルのうちの少なくとも1つのデータブロックを受け取るステップと、(c)次のタイムスロット中に、まだ受信されていない任意のデータブロックを受信し、そのデータファイルのデータブロックを順番に表示し、データファイルの全データブロックが受信され表示されるまでステップ(c)を繰り返すステップと、を備える。一実施形態では、サーバから受信されたデータを処理するための方法は、クライアント側においてセット・トップ・ボックスによって実施される。
【0013】
代表的な一実施形態では、データファイルは、一定数のデータブロックに分割され、スケジューリング行列は、そのデータブロックの数に基づいて生成される。スケジューリング行列は、データブロックを送信する送信順序をサーバ側において提供し、クライアントがいつでも順番にデータブロックにアクセスできるようにする。代表的な一実施形態では、データファイルのためのスケジューリング行列を生成する方法は、以下のステップを備える。すなわち、(a)あるデータファイルのためのデータブロックの数[x]を受け取るステップと、(b)第1の変数[j]を0に設定するステップと、(c)第2の変数[i]を0に設定するステップと、(d)参照アレイ内のあらゆる入力を消去するステップと、(e)参照アレイがまだデータブロックを含んでいない場合に、行列のなかの[(i,j)モジュロx]列の行列位置に格納された少なくとも1つのデータブロックを参照アレイに書き込むステップと、(f)参照アレイがデータブロック[i]を含まない場合に、参照アレイおよび行列の行列位置:[(i,j)モジュロx,j]にデータブロック[i]を書き込むステップと、(g)第2の変数[i]を1だけ増分させ、第2の変数[i]がデータブロック[x]の数に等しくなるまでステップ(e)を繰り返すステップと、(h)第1の変数[j]を1だけ増分させ、第1の変数[j]がデータブロック[x]の数に等しくなるまでステップ(c)を繰り返すステップとを備える。一実施形態では、1組のデータファイルのなかのデータファイルごとに、スケジューリング行列が生成され、また、畳み込み方法が適用され、これらのスケジューリング行列に基づいて、この1組のデータファイルを送信するためのデリバリ行列が生成される。
【0014】
データ・オン・デマンドシステムは、第1組のチャネルサーバと、第1組のチャネルサーバを制御するための中央制御サーバと、第1組のチャネルサーバに結合された第1組のアップコンバータと、第1組のアップコンバータに結合されたコンバイナ/アンプと、伝送媒体を介してデータを伝送するように構成されたコンバイナ/アンプとを備える。代表的な一実施形態では、データ・オン・デマンドシステムは、さらに、システムをモニタするためのチャネルモニタモジュールと、スイッチマトリクスと、第2組のチャネルサーバと、第2組のアップコンバータとを備える。チャネルモニタモジュールは、システム障害が生じた場合に中央制御サーバに報告するように構成される。中央制御サーバは、チャネルモニタモジュールからの報告に応じ、第1組のチャネルサーバのなかで障害のあるチャネルサーバを第2組のチャネルサーバのチャネルサーバで置き換え、第1組のアップコンバータのなかで障害のあるアップコンバータを第2組のアップコンバータで置き換えるように、スイッチマトリクスに対して命令する。
【0015】
データ・オン・デマンドサービスを提供するための方法は、データファイルのデリバリ行列を計算するステップと、デリバリ行列にしたがってデータファイルを送信し、多数のクライアントがデータファイルをオン・デマンドで見られるようにするステップとを備える。一実施形態では、データファイルはビデオファイルを含む。
【0016】
【発明の実施形態】
図1Aは、代表的なDODシステム100を、本発明の一実施形態にしたがって示している。この実施形態では、DODシステム100は、ビデオファイルなどのデータファイルをオン・デマンドで提供する。しかしながら、DODシステム100は、ビデオファイルをオン・デマンドで提供することに限定されず、例えばゲームファイルなどの他のデータファイルをオン・デマンドで提供することもできる。DODシステム100は、中央制御サーバ102と、中央ストレージ103と、複数のチャネルサーバ104a〜104nと、複数のアップコンバータ106a〜106nと、コンバイナ/アンプ108とを含む。中央制御サーバ102は、チャネルサーバ104を制御する。中央ストレージ103は、データファイルをデジタルフォーマットで格納する。代表的な一実施形態では、中央ストレージ103に格納されたデータファイルは、ネットワークに接続された例えば中央制御サーバ102などの許可されたコンピュータによって、標準的なネットワークインターフェース(例えばイーサネット(商標)接続)を介してアクセスすることができる。各チャネルサーバ104は、1つのチャネルに割り当てられ、1つのアップコンバータ106に結合される。チャネルサーバ104は、中央ストレージ103から検索されたデータファイルを、中央制御サーバ102からの命令にしたがって提供する。各チャネルサーバ104の出力は、対応するアップコンバータ106に適した周波数を有し且つ直交振幅変調(QAM)によって変調された中間周波数(IF)信号である。QAMによって変調されたIF信号は、採用されている標準に依存する。米国において現在採用されている標準は、DOCSIS(data-over-cable-systems-interface-specification)標準であり、約43.75MHzのIF周波数を必要とする。アップコンバータ106は、チャネルサーバ104から受信されたIF信号を高周波信号(RF信号)に変換する。周波数および帯域幅を含むRF信号は、要求されるチャネルおよび採用されている標準に依存する。例えば、ケーブルテレビチャネル80のための米国における現行の標準のもとでは、RF信号は、約559.25MHzの周波数と約6MHzの帯域幅とを有する。アップコンバータ106の出力は、コンバイナ/アンプ108に供給される。コンバイナ/アンプ108は、受信されたRF信号を増幅し、調節し、統合し、次いで伝送媒体110へと出力する。
【0017】
代表的な一実施形態では、中央制御サーバ102は、サービスプロバイダがドラッグ・アンド・ドロップ動作によってデータデリバリをスケジュールすることを可能にするために、グラフィックユーザインターフェース(図示せず)を含む。さらに、中央制御サーバ102は、チャネルサーバ104を認証および制御し、デリバリ行列にしたがって開始または停止させる。代表的な一実施形態では、中央制御サーバ102は、チャネルを自動的に選択し、選択されたチャネルでデータファイルを伝送するためのデリバリ行列を計算する。中央制御サーバ102は、データファイル情報(例えば、継続時間、カテゴリ、等級、および/または短い解説など)の追加と、削除と、更新とを、オフラインで提供する。さらに、中央制御サーバ102は、格納されているデータファイルおよびデータベースを更新することによって、中央ストレージ103を制御する。
【0018】
代表的な一実施形態では、既存のケーブルテレビシステム120は、クライアントに非DODサービスを提供するために、コンバイナ/アンプ108に信号を供給し続けることができる。したがって、本発明にしたがったDODシステム100は、現行のケーブルテレビサービスに支障を来たさない。
【0019】
図1Bは、DODシステム100の別の代表的な一実施形態を、本発明の一実施形態にしたがって示している。図1Aに示した素子に加えて、DODシステム100は、スイッチマトリクス112と、チャネルモニタモジュール114と、1組のバックアップチャネルサーバ116a〜116bと、1組のバックアップ・アップコンバータ118a〜118bとを含む。一実施形態では、スイッチマトリクス112は、アップコンバータ106とコンバイナ/アンプ108との間に物理的に設けられる。スイッチマトリクス112は、中央制御サーバ102によって制御される。チャネルモニタモジュール114は、DODシステム100の正常性をモニタするための、複数の設定されたセット・トップ・ボックスを備える。それらのセット・トップ・ボックスは、可能性のあるクライアントをシミュレートする。モニタ結果は、チャネルモニタモジュール114によって中央制御サーバ102に通信される。チャネル障害(すなわち、チャネルサーバ障害、アップコンバータ障害、または通信リンク障害)が生じた場合は、中央制御サーバ102は、スイッチマトリクス112を通して誤動作コンポーネントを切り離し、正常なバックアップコンポーネント116および/または118を係合してサービスを再開する。
【0020】
代表的な一実施形態では、DODシステム100から放送されているデータファイルは、MPEG(motion pictures expert group)ファイルのなかに含まれる。各MPEGファイルは、複数のデータブロックと、時間軸に沿ってデータファイルの特定部分に位置する複数のサブブロックとに、動的に分割される。これらのデータブロックおよびサブブロックは、中央制御サーバ102によって提供される三次元のデリバリ行列にしたがって、所定の期間中に送信される。フィードバックチャネルは、DODシステム100がDODサービスを提供するためには必要でない。しかしながら、フィードバックチャネルが使用可能である場合は、フィードバックチャネルは、請求書の作成発行またはインターネットサービスの提供などの他の目的のために使用することができる。
【0021】
図2は、代表的なチャネルサーバ104を、本発明の一実施形態にしたがって示している。チャネルサーバ104は、サーバコントローラ202と、CPU204と、QAMモジュレータ206と、ローカルメモリ208と、ネットワークインターフェース210とを備える。サーバコントローラ202は、データファイルをブロックに(そしてさらにサブブロックおよびデータパケットに)分割し、中央制御サーバ102によって提供されたデリバリ行列にしたがって伝送するためのデータブロックを選択し、選択されたデータをエンコードし、エンコードされたデータを圧縮し、圧縮されたデータを次いでQAMモジュレータ206に送信するように、CPU204に対して命令することによって、チャネルサーバ104の動作全般を制御する。QAMモジュレータ206は、バス(すなわちPCIバスもしくはCPUローカルバス)またはイーサネット(商標)接続を介して伝送されるべきデータを受信する。代表的な一実施形態では、QAMモジュレータ206は、ダウンストリームQAMモジュレータと、前方向誤り訂正デコーダを備えたアップストリーム直交振幅変調/四位相偏移変調(QAM/QPSK)バーストデモジュレータと、および/またはアップストリームチューナとを含むことができる。QAMモジュレータ206の出力は、アップコンバータ106に直接供給できるIF信号である。
【0022】
ネットワークインターフェース210は、中央制御サーバ102からの命令のスケジューリングおよび制御と、中央制御サーバ102に対するステータスの折り返し報告と、中央ストレージ103からのデータファイルの受信とを実行するために、他のチャネルサーバ104および中央制御サーバ102にチャネルサーバ104を接続する。中央ストレージ103から検索されたあらゆるデータファイルは、サーバコントローラ202からの命令にしたがってデータファイルが処理されるに先立って、チャネルサーバ104のローカルメモリ208に格納することができる。代表的な一実施形態では、チャネルサーバ104は、ケーブルチャネルの帯域幅(例えば6MHz、6.5MHz、または8MHz)と、QAM変調(例えばQAM64またはQAM256)と、DODデータストリームの圧縮標準/ビットレート(すなわちMPEG−1またはMPEG−2)とに依存して、1つまたはそれ以上のDODデータストリームを送信することができる。
【0023】
図3は、代表的なセット・トップ・ボックス(STB)300を、本発明の一実施形態にしたがって示している。STB300は、QAMモジュレータ302と、CPU304と、条件付きアクセスモジュール306(例えばスマートカードシステム)と、ローカルメモリ308と、バッファメモリ309と、STBコントローラ310と、デコーダ312と、グラフィックオーバーレイモジュール314とを備える。STBコントローラ310は、クライアントからの要求に応じてデータを選択し、選択されたデータをデコードし、デコードされたデータを解凍し、デコードされたデータを再組み立てし、デコードされたデータをローカルメモリ308またはバッファメモリ309に格納し、格納されたデータをデコーダ312に送信するように、CPU302およびQAMデモジュレータ302を制御することによって、STB300の動作全般を制御する。代表的な一実施形態では、STBコントローラ310は、伝送媒体110から受信されたデータパケットのなかのデータパケットヘッダに基づいて、STB300の動作全般を制御する。代表的な一実施形態では、ローカルメモリ308は不揮発性メモリ(例えばハードドライブ)であり、バッファメモリ309は揮発性メモリである。
【0024】
一実施形態では、QAMデモジュレータ302は、送受信モジュールと、
以下に示すもののうち1以上のものと、を備える。すなわち、プライバシ暗号化/非暗号化モジュール、前方向誤り訂正デコーダ/エンコーダ、チューナ制御、ダウンストリームおよびアップストリームプロセッサ、CPU、ならびにメモリインターフェース回路、のうちの1以上のものを備える。QAMデモジュレータ302は、変調されたIF信号を受信し、信号をサンプリングおよび復調してデータを復元する。条件付きアクセスモジュール306は、認証後にアクセス権が付与されたときおよび/または適切な料金が支払われたときに、非暗号化のプロセスを許可する。アクセス条件は、サービスプロバイダによって決定される。
【0025】
代表的な一実施形態では、アクセス権が付与されたときに、デコーダ312は、データブロックを出力画面上に表示可能な画像に変換するために、少なくとも1つのデータブロックをデコードする。デコーダ312は、再生、停止、一時停止、ステップ、巻き戻し、早送りなどの、加入クライアントからのコマンドをサポートする。
【0026】
グラフィックオーバーレイモジュール314は、表示された画像の質を、例えばアルファ・ブレンディングまたはピクチャ・イン・ピクチャ機能によって向上させる。代表的な一実施形態において、サービスプロバイダが、本発明にしたがったシステムを使用してゲーム・オン・デマンドサービスを提供するときは、グラフィックオーバーレイモジュール314は、ゲームプレイモード時にグラフィックを加速させるために使用することができる。
【0027】
代表的な一実施形態では、データファイルは、全てのケーブルテレビ加入者に対して放送されるが、そのうち適合するSTB300を有するDOD加入者のみが、データ・オン・デマンドサービスをデコードして享受することができる。代表的な一実施形態では、データファイルをオン・デマンドで取得する許可は、条件付きアクセス制御モジュール306のなかのスマートカードシステムを介して取得することができる。スマートカードは、サービスプロバイダによって設置された地元の小売店または自動販売機において再充電可能とすることができる。別の代表的な一実施形態では、あらゆる使用可能データファイルに対する無制限のアクセス権が、均一料金システムによって加入者に提供される。
【0028】
代表的な一実施形態では、データ・オン・デマンドの双方向性は、クライアントがいつでも使用可能データファイルを選択することを可能にする。クライアントが選択ボタンを押したときから選択されたデータファイルが再生を開始されるまでの時間は、応答時間と称される。DODサービスを提供するために割り当てられるリソース(例えば帯域幅やサーバ能力)が増大するにつれ、応答時間は短くなる。代表的な一実施形態では、応答時間は、リソースの割り当ておよび所望サービスの質に対する評価に基づいて決定することができる。
【0029】
代表的な一実施形態では、選択された応答時間は、1タイムスロットの継続時間を決定する。1タイムスロット(TS)の継続時間は、クライアントが常用速度でデータブロックを再生する時間間隔である。代表的な一実施形態では、ビデオファイルなどのデータファイルは、一定数のデータブロックに分割され、各データブロックが、1タイムスロットの継続時間だけデータファイルの再生をサポートできるようにする。
【0030】
一実施形態では、各データファイルのデータブロックの数(NUM_OF_BLKS)は、次のように計算することができる。
【0031】
【式1】
【0032】
【式2】
【0033】
【式3】
【0034】
【式4】
【0035】
式(1)〜(4)では、Estimated_BLK_Sizeは、(バイト数で表される)推定ブロックサイズであり、DataFile_Sizeは、(バイト数で表される)データファイルサイズであり、TSは、(秒数で表される)1タイムスロットの継続時間であり、DataFile_Lengthは、(秒数で表される)データファイルの継続時間であり、BLK SIZEは、データブロックごとに必要とされるクラスタの数であり、CLUSTER_SIZEは、各チャネルサーバ104のローカルメモリ208のなかにあるクラスタのサイズであり(例えば64キロバイトなど)、BLK_SIZE_BYTESは、バイト数で表されるブロックのサイズである。この実施形態では、ブロックの数(NUM_OF_BLKS)は、(バイト数で表される)データファイルのサイズに、バイト数で表されるデータブロックのサイズを加え、そこから1バイトを引き、さらに、バイト数で表されるデータブロックのサイズで割ったものに等しい。式(1)〜(4)は、具体的な一実施形態を示している。当業者ならば認識しているように、1データファイルのデータブロック数を計算するために、他の方法を使用することも可能である。例えば、データファイルを一定数のデータブロックに分割する作業は、主に、チャネルサーバ104のローカルメモリ208の推定ブロックサイズおよびクラスタサイズの関数である。したがって、本発明は、上述した具体的な実施形態に限定されるべきではない。
【0036】
図4は、スケジューリング行列を生成する代表的なプロセスを、本発明の一実施形態にしたがって示している。代表的な一実施形態では、本発明は、サーバ側においてデータデリバリを圧縮およびスケジューリングするために、時分割多重方式(TDM)および周波数分割多重(FDM)を使用する。代表的な一実施形態では、スケジューリング行列は、データファイルごとに生成される。一実施形態では、各データファイルは、一定数のデータブロックに分割され、スケジューリング行列は、そのデータブロックの数に基づいて生成される。一般に、スケジューリング行列は、データファイルのデータブロックをサーバからクライアントへと送信する送信順序を提供する。その結果、任意の時刻にデータファイルにアクセスしようとする任意のクライアントが、順番にデータファイルにアクセスできるようになる。
【0037】
ステップ402では、あるデータファイルのデータブロックの数(x)が受信される。第1の変数jが、0に設定される(ステップ404)。参照アレイが、クリアされる(ステップ406)。参照アレイは、内部管理のためにデータブロックの移動を記録する。次に、jとxが比較される(ステップ408)。jがx未満である場合は、第2の変数iが0に設定される(ステップ412)。次に、iとxが比較される(ステップ414)。iがx未満である場合は、スケジューリング行列の[(i+j)modulo(x)]列に格納されたデータブロックが、参照アレイに書き込まれる(ステップ418)。参照アレイが既にこのようなデータブロックを有している場合は、重複して書き込んではならない。初めは、スケジューリング行列はまだ何の入力も有していないので、このステップは省略することができる。次に、参照アレイは、データブロックiを含むか否かをチェックされる(ステップ420)。初めは、参照アレイのなかの入力は全てステップ406で消去されているので、参照行列のなかには何も存在しない。参照アレイがデータブロックiを含まない場合は、スケジューリング行列の行列位置:[(i+j)モジュロ(x),j]および参照アレイに、データブロックiが追加される(ステップ422)。データブロックiがスケジューリング行列および参照アレイに追加された後は、i=i+1になるようにiが1だけ増分され(ステップ424)、ステップ414でi=xになるまで手順が繰り返される。参照アレイがデータブロックiを含む場合は、i=i+1になるようにiが1だけ増分され(ステップ424)、ステップ414でi=xになるまで手順が繰り返される。i=xである場合は、j=j+1になるようにjが1だけ増分され(ステップ416)、j=xになるまでステップ406が繰り返される。このプロセス全体は、j=xになったときに終了する(ステップ410)。
【0038】
代表的な一実施形態において、データファイルが6つのデータブロックに分割される(x=6)場合は、スケジューリング行列および参照アレイは、次のように表される。
【0039】
【表1】
【0040】
【表2】
【0041】
この代表的な一実施形態では、上述したスケジューリング行列に基づいて、データファイルの6つのデータブロックが、以下の順番で送信される。
【0042】
【表3】
【0043】
別の代表的な一実施形態では、先読みスケジューリング行列を計算し、予測されるアクセス時間に先立って1データファイルに相当する所定数のデータブロックを送信するために、先読みプロセスを使用することができる。例えば、タイムスロットの番号が4またはそれより大きい任意のタイムスロットに関し、所定の先読み時間が1タイムスロット分の継続時間である場合は、データファイルのデータブロック4(blk4)は、加入クライアントのところにあるSTB300によって、TS3またはそれよりも前に受信されることが望ましいが、このblk4は、TS4まで再生されない。先読みスケジューリング行列を生成するプロセスのステップは、本実施形態での先読みスケジューリング行列が、先読み時間に基づいて早期送信シーケンスをスケジュールするという点を除き、図4に沿って上述したプロセスのステップと実質的に同じである。データファイルが6つのデータブロックに分割されたと仮定すると、先読みスケジューリング行列に基づいた代表的な送信シーケンスは、2タイムスロットの継続時間に相当する先読み時間を有し、次のように表すことができる。
【0044】
【表4】
【0045】
1組のデータファイルを送信するための三次元のデリバリ行列は、その1組のデータファイルに含まれる各データファイルのスケジューリング行列に基づいて生成される。三次元のデリバリ行列では、1組のデータファイルのなかの各データファイルのIDを含む第3次元が生成される。三次元のデリバリ行列は、各チャネルの有効帯域幅を効率的に利用し、複数のデータストリームを送信するために計算される。代表的な一実施形態では、三次元のデリバリ行列を生成し、1組のデータファイルの効率的な送信をスケジュールするために、当該分野において周知である畳み込み方法が使用される。例えば、畳み込み方法は、以下の方針を含むことができる。すなわち、(1)任意のタイムスロット(TS)の継続時間中に送信されるデータブロックの総数は、可能な限り少数に抑えられることが望ましい、(2)方針(1)に関して複数の部分解があり得る場合は、任意の参照タイムスロットの継続時間中に送信されるデータブロックと、(参照タイムスロットの)前のタイムスロットの継続時間中に送信されるデータブロックと、(参照タイムスロットの)次のタイムスロットの継続時間中に送信されるデータブロックと、を加算することによって得られるデータブロックの和が最小である解決法が好ましい。例えば、2つの短いデータファイルすなわちMおよびNを送信する代表的なシステムが想定され、各データファイルが6つのデータブロックにそれぞれ分割される場合は、スケジューリング行列に基づいた送信シーケンスは、次のとおりである。
【0046】
【表5】
【0047】
上述したような代表的な畳み込み方法が適用される場合は、デリバリ行列の組み合わせとして以下の6タイプが可能である。
【0048】
【表6】
【0049】
【表7】
【0050】
【表8】
【0051】
【表9】
【0052】
【表10】
【0053】
【表11】
【0054】
方針(1)を適用すると、オプション2,4,6が、任意のタイムスロットの最中に送信されるデータブロックの最大数が最も小さい(すなわち6データブロックである)。方針(2)を適用すると、代表的な本実施形態において最適なデリバリ行列は、オプション4である。なぜなら、オプション4では、任意の参照タイムスロットのデータブロックと、隣接するタイムスロットのデータブロックとの和が最小(すなわち16データブロック)であるからである。したがって、本実施形態にとって最適なものとしては、データファイルNの送信シーケンスは、3タイムスロットによってシフトされることが望ましい。代表的な一実施形態では、三次元のデリバリ行列がチャンネルサーバ104ごとに生成される。
【0055】
各データファイルのデータブロックがデリバリ行列にしたがって送信されるときは、多数の加入クライアントがいつでもデータファイルにアクセスすることができるので、各加入クライアントは、データファイルのなかの適切なデータブロックを適宜に利用することが可能である。上述した実施例において、1タイムスロットの継続時間が5秒間に等しいと仮定すると、DODシステム100は、データファイルM,Nのデータブロックを、最適なデリバリ行列にしたがって以下の方法で送信する(すなわちデータファイルNの配信シーケンスを3タイムスロットによってシフトさせる)。
【0056】
【表12】
【0057】
クライアントAが、時刻00:00:00において映画Mを選択する場合は、クライアントAにおけるSTB300は、データブロックの受信、格納、再生、および拒否を次のように行う。
【0058】
【表13】
【0059】
クライアントBが、時刻00:00:10において映画Mを選択する場合は、クライアントBにおけるSTB300は、データブロックの受信、格納、再生、および拒否を次のように行う。
【0060】
【表14】
【0061】
クライアントCが、時刻00:00:15において映画Mを選択する場合は、クライアントCにおけるSTB300は、データブロックの受信、格納、再生、および拒否を次のように行う。
【0062】
【表15】
【0063】
クライアントDが、時刻00:00:30において映画Mを選択する場合は、クライアントDにおけるSTB300は、データブロックの受信、格納、再生、および拒否を次のように行う。
【0064】
【表16】
【0065】
上述した実施例で示したように、サービスプロバイダによって提供される任意のデータファイルの選択および再生開始は、クライアントの組み合わせがどのようであっても、常に独立して行うことができる。
【0066】
一般動作
サービスプロバイダは、放送に先立って一定数のデータファイル(例えばビデオファイル)をチャネルサーバ104に送信するようにスケジュールすることができる。中央制御サーバ102は、三次元のデリバリ行列(ID、タイムスロット、およびデータブロック送信順序)を計算してチャネルサーバ104に送信する。放送中に、チャネルサーバ104は、適切なデータブロックを適切な順序で送信するように三次元デリバリ行列を指導する。各データファイルは、複数のデータブロックに分割されるので、多数の加入クライアントのそれぞれが、いつでも連続的に且つ順番にデータファイルを見始めることができる。データファイルの1データブロックのサイズは、選択された1タイムスロットの継続時間と、データファイルのデータストリームのビットレートとに依存する。例えば、ビットレートが一定のMPEGデータストリームでは、各データブロックは、ブロックサイズ(メガバイト)=ビットレート(メガバイト毎秒)×TS(秒)/8…式(1)で表される固定サイズを有する。
【0067】
代表的な一実施形態では、データブロックのサイズは、チャネルサーバ104のローカルメモリ208のなかのメモリクラスタサイズの数倍のサイズであって、データブロックのサイズを超える最小のサイズになるように調整される。例えば、上述した式(1)にしたがって計算されたデータブロックの長さが720キロバイトであり、ローカルメモリ208のクラスタサイズが64キロバイトである場合は、得られるデータブロックの長さは768キロバイトであることが望ましい。本実施形態では、データブロックは、クラスタサイズと同じサイズをそれぞれ有した複数のサブブロックにさらに分割されることが望ましい。本実施例では、データブロックは、64キロバイトのサブブロックを12だけ有する。
【0068】
サブブロックは、さらにデータパケットに分割することができる。各データパケットは、パケットヘッダとパケットデータとを含む。パケットデータの長さは、各チャネルサーバのCPUによるデータの送信先である物理的階層の最大伝送単位(MTU)に依存する。好ましい実施形態では、パケットヘッダおよびパケットデータの合計サイズは、MTU未満であることが望ましい。しかしながら、最大限の効率を得るためには、パケットデータの長さはできるだけ長いことが望ましい。
【0069】
代表的な一実施形態では、パケットヘッダのなかのデータは、以下のことを加入クライアントのSTB300に対して許可する情報(例えば、プロトコル署名、ヴァージョン、ID、またはパケットタイプ情報など)を含む。すなわち、STB300に対して、任意の受信データをデコードして、データパケットが選択データファイルに属するか否かを決定することを許可する情報である。パケットヘッダは、また、ブロック/サブブロック/パケット番号、パケット長さ、サブブロックのなかでの巡回冗長検査(CRC)およびオフセット、および/またはエンコード情報などの、他の情報を含むこともできる。
【0070】
チャネルサーバ104によって受信されたデータパケットは、QAMモジュレータ206に送信され、QAM変調されたIF出力信号を生成するために別のヘッダを追加される。QAMモジュレータ206のために出力される最大ビットレートは、使用可能な帯域幅に依存する。例えば、6MHzの帯域幅を有したQAMモジュレータ206の場合は、最大ビットレートは5.05(ビット/シンボル)×6(MHz)=30.3メガビット/秒である。
【0071】
QAM変調されたIF信号は、特定のチャネルに適したRF信号(例えばCATVチャネル80の場合は559.250MHzおよび6MHzの帯域幅)に変換されるために、アップコンバータ106に送信される。例えば、ケーブルネットワークが高い帯域幅(またはビットレート)を有する場合は、各チャネルは、仮想サブチャネルをそれぞれ占有する2つ以上のデータストリームを提供するために使用することができる。例えば、3つのMPEG1データストリームが、QAM変調の使用によって6MHzチャネルに適合される。アップコンバータ106の出力は、統合された信号を伝送媒体110に送信するコンバイナ/アンプ108に供給される。
【0072】
代表的な一実施形態では、「N」個のデータストリームを伝送するためのシステム帯域幅(BW)の合計は、BW=N×bwであり、bwは、データストリームごとに必要とされる帯域幅である。例えば、各MPEG−1データストリームは、9メガビット/秒のシステム帯域幅を占めるので、3つのMPEG−1データストリームは、30.3メガビット/秒のシステム帯域幅を有したDOCSISケーブルチャネルによって、同時に伝送することができる。
【0073】
一般に、帯域幅は、DODサービスに実際にアクセスしている加入クライアントの数に無関係に消費される。したがって、DODサービスを使用している加入クライアントがいない場合でも、システムのオン・デマンド能力を保証するためには、やはり帯域幅が消費される。
【0074】
代表的な一実施形態では、全システム帯域幅(BW)は、各データファイルのうちいくつかのデータブロックを先取りすることによって減少させることができる。先取りデータブロックは、個々の専用チャネルで連続的に送信される。一実施形態では、1データファイルのための先取りデータブロックは、グループで順次に送信される。残りのデータブロックを送るために必要とされる全システム帯域幅(BW)は、先取りデータブロックを送信することによって減少される。個別のチャネルで送信される先取りデータブロックとして望ましい数が決定された後は、これらの先取りデータブロックが他のデータブロックとともに再度送信されることがないように、残りのデータブロックを送信するためのスケジュールが調整されることが望ましい。
【0075】
例えば、データファイルが6つのデータブロックに分割された上述した代表的なスケジューリング行列は、第1のデータブロック「b0」と第2のデータブロック「b1」の両方が先取りデータブロックである場合に、残りのデータブロック(b2〜b5)のために次のように変更されることが望ましい。
【0076】
【表17】
【0077】
上述した実施例において、b0が唯一の先取りデータブロックである場合は、データファイルの残りのデータブロック(b1〜b5)を送信するための全帯域幅は、37.5%だけ減少される(すなわち合計16のデータブロックのうち6つのデータブロックが除去される)。次に、データブロック「b1」もまた先取りデータブロックである場合は、残りのデータブロック(b2〜b5)を送信するための帯域幅は、さらに追加で12.5%だけ減少される。したがって、b1を先取りするために追加で減少される帯域幅は、b0を先取りするためのそれほど大きくない。追加で減少される帯域幅は、先取りされるデータが増えるにつれて減退するので、各データファイルの先取りデータブロックとして最適な数は、所望の帯域幅の減少に基づいて決定することができる。代表的な一実施形態では、1データファイルのうちxからyまでのデータブロックを先取りすることによって節約される帯域幅が、次の式によって見積もられる。
【0078】
【式5】
【0079】
また、先取りされるデータブロックの数が増大するにつれ、先取りの遅延時間も増大する。先取り遅延時間は、各データファイルの1データブロックのサイズと、各データファイルから先取りされるデータブロックの数と、送信されるデータファイルの数と、専用チャネルに割り当てられる先取り帯域幅とに基づいて決定される。代表的な一実施形態では、各データファイルの全ての先取りデータブロックが、順番に且つ連続して1タイムスロットごとに1データブロックずつ専用チャネルで送信される。当業者ならば、先取りデータブロックの数が増大するにつれ、先取りの遅延時間も長くなることがわかる。したがって、各データファイルの先取りデータブロックとして最適な数を決定する際は、許容可能な先取り遅延時間を考慮に入れることが望ましい。
【0080】
例えば、データファイルM,Nのデータブロックb0,b1が専用チャネルで先取りされる場合は、これらの先取りデータブロックは、次の方式で送信することができる。
【0081】
【表18】
【0082】
代表的な一実施形態において、所定の先取り帯域幅:PRF_BW(メガバイト/秒)が割り当てられると仮定すると、先取り遅延時間は、次式:先取り遅延時間=[データブロックのサイズ(メガバイト)×先取りされるデータブロックの数×(送信されるデータファイルの数+1)×8]/PRF_BW(メガバイト/秒)にしたがって計算することができる。
【0083】
代表的な一実施形態では、送信される全データファイルの先取りデータブロックを一通り送信するために必要とされる時間である先取りサイクル時間(PRF_TIME)が、次式:先取りサイクル時間=[データブロックのサイズ(メガバイト)×先取りされるデータブロックの数×(送信されるデータファイルの数+1)×8]/PRF_BW(メガバイト/秒)にしたがって計算することができる。
【0084】
一実施形態では、先取り遅延時間を減少させるために、新しいデータファイルの先取りデータブロックが、古いデータファイル(例えば所定の時間のあいだ連続的に送信されたデータファイル)のなかの先取りデータブロックよりも頻繁に送信される。例えば、Mが古いデータファイルであってNが新しいデータファイルである場合は、先取りデータブロックは、次の方式で送信される。
【0085】
【表19】
【0086】
STB300は、いったんオンに調整されると、STB300のローカルメモリ308に格納された番組ガイドの受信および更新を連続的に行う。代表的な一実施形態では、STB300は、最新の番組ガイドを含むデータファイル情報をTV画面上に表示する。ビデオファイル情報などのデータファイル情報は、映画のID、映画のタイトル、(複数言語での)説明、カテゴリ(例えばアクションやキッズなど)、格付け(例えばR指定やPG13指定など)、ケーブル会社の方針(例えば値段や無料試聴期間など)、申し込み期間、映画のポスタ、および映画の予告などを含むことができる。代表的な一実施形態では、データファイル情報は、ファームウェアアップデート、コマーシャル、および/または緊急情報のために予約されたチャネルなどの専用チャネルを介して送信される。別の代表的な一実施形態では、情報は、他のデータストリームとの共有の物理的チャネルによって送信される。代表的な一実施形態では、STB300は、どのデータファイルも再生していない期間は、専用チャネルに調整され、まだ受信されていない先取りデータブロックを、いつでも受信し更新できる状態にある。
【0087】
代表的な一実施形態では、プレビューは、データファイルのデータストリームのなかでランダムに選択されたデータブロックから構成される。したがって、同じデータファイルのプレビューを複数回選択する場合でも、ユーザが同じプレビューを見る可能性は小さい。ランダムに構成されたプレビューの利点は、DODシステム100が、所定のプレビュー番組を放送するための帯域幅を余分に必要としないという点にある。代わりに、DODシステム100は、あるデータファイルのプレビューを見ることをユーザが要求した後に、そのデータファイルの通常データストリームのなかのデータブロックをランダムに選択する。好ましい一実施形態では、どのプレビューの一部を構成することもできないデータブロックが存在する。例えば、データファイルによって映画が供給される場合は、映画の後半部分は、ランダムに選択されるプレビューの一部を構成しないことが望ましい。
【0088】
加入クライアントは、テレビ画面上に表示されたカテゴリによってアレンジされた、使用可能データファイルのリストを見ることができる。クライアントが使用可能データファイルの1つを選択すると、STB300は、そのデータファイルのデータパケットの受信を開始するために、ハードウェアを制御し、対応する物理的チャネルおよび/または仮想サブチャネルに合わせる。STB300は、あらゆるデータパケットヘッダを検査し、データパケットのなかのデータをデコードし、受信されたデータパケットを保存することが望ましいか否かを決定する。STB300が、データパケットの保存を望ましくないと決定した場合は、そのデータパケットは廃棄される。そうでない場合は、データパケットは、後の検索に備えてローカルメモリ308のなかに保存されるか、あるいは、デコーダ312に送信されるまでのあいだバッファメモリ309のなかに一時的に格納される。
【0089】
ローカルメモリ308に対する頻繁な読み出し/書き込みを回避することによって性能効率を向上させるため、代表的な一実施形態でのSTB300は、メモリバッファ309のなかの予測されるデータブロックをいつでもロックできる「スライディング・ウィンドウ」予測技術を使用する。予測ウィンドウのなかでヒットが生じた場合は、データブロックは、メモリバッファ309から出てそのままデコーダ312へと伝送される。予測ミスが生じた場合は、データブロックは、メモリバッファ309からデコーダ312へと伝送される前に、ローカルメモリ308からメモリバッファ309へと読み込まれる。
【0090】
代表的な一実施形態では、STB300は、一時停止、スローモーション再生、巻き戻し、ズーム、およびシングルステップのためのボタンを含んだ、赤外線(IR)リモコン装置ボタン、IRキーボード、またはプロントパネル押しボタンを介して、加入クライアントのコマンドに応じる。代表的な一実施形態では、加入クライアントが所定期間のあいだ何のアクションも入力しなかった場合は、スケジュールされたコマーシャルが自動的に再生される。スケジュールされたコマーシャルは、加入クライアントがアクションを提供したとき(例えばリモコン装置のボタンを押したとき)に自動的に停止する。別の代表的な一実施形態では、STB300は、ビデオの再生中にコマーシャルを自動的に挿入することができる。サービスプロバイダ(例えばケーブル会社)は、再生中のビデオにどれくらいの頻度でコマーシャルを割り込ませるかを規定する、価格の設定方針を準備することができる。
【0091】
代表的な一実施形態では、DODシステム100を使用しているケーブル会社は、コマーシャルの割り込み回数に基づいて価格表を用意することができる。一実施形態では、コマーシャル用のデータブロックは、番組表、緊急ビット、および任意のファームウェアアップデートをも放送する専用チャネルを介して連続的に放送される。ユーザは、そのような価格表から、価格とコマーシャルとの許容バランスを選ぶことができる。代表的な一実施形態では、DODシステム100は、ユーザが選択した価格計画に基づいて所定の時間間隔による自動的なコマーシャルデータブロックの挿入を許容する内部クロックを維持することによって、そのユーザの選択を実現する。
【0092】
データパケットヘッダのなかに緊急情報ビットが発見された場合は、STB300は、あらゆるデータ受信動作を一時停止し、データファイル情報の受信用に用意されているチャネルに合わせるようにハードウェアを制御することによって、出力画面上に表示すべきあらゆる緊急情報を取得してデコードする。代表的な一実施形態では、STB300がアイドルであるときは、STB300は、データファイル情報の受信用に用意されたチャネルに合わされており、あらゆる緊急情報を遅滞なく受信し表示する用意が常に整っている。
【0093】
一実施形態では、STB300がアイドル状態であるとき(例えばユーザがシステムを使用していないとき)は、アラームが発せられ、出力デバイスをオンにして緊急情報を見るようにユーザに警告する。別の一実施形態では、STB300は、地域ごとに緊急情報を区別することができる。例えば、無関係な地域に関する緊急情報が、再生中のデータファイルに割り込んだり、あるいはアラームをトリガしたりすることはない。反対に、既存のシステムでは、緊急情報を送信するために、ケーブル会社が手動で放送に割り込む必要がある。
【0094】
上述した実施例は、本発明による特定の代表的な実施形態を示したものであり、当業者ならば、これらをもとにして変更形態および代替形態を考え付くことが可能である。したがって、本発明は、上述した特定の実施形態に限定されるのではなく、添付した特許請求の範囲によって規定されることが望ましい。
【図面の簡単な説明】
【図1A】 代表的なDODシステムを、本発明の一実施形態にしたがって示した図である。
【図1B】 代表的なDODシステムを、本発明の別の一実施形態にしたがって示した図である。
【図2】 代表的なチャネルサーバを、本発明の一実施形態にしたがって示した図である。
【図3】 代表的なセット・トップ・ボックスを、本発明の一実施形態にしたがって示した図である。
【図4】 スケジューリング行列を生成する代表的なプロセスを、本発明の一実施形態にしたがって示した図である。
【符号の説明】
100…DODシステム
102…中央制御サーバ
103…中央ストレージ
104a〜104n…チャネルサーバ
106a〜106n…アップコンバータ
108…コンバイナ/アンプ
110…伝送媒体
112…スイッチマトリクス
114…チャネルモニタモジュール
116a〜116b…バックアップチャネルサーバ
118a〜118b…バックアップコンバータ
120…ケーブルテレビシステム
202…サーバコントローラ
204…CPU
206…QAMモジュレータ
208…ローカルメモリ
210…ネットワークインターフェース
300…セット・トップ・ボックス(STB)
302…QAMモジュレータ
304…CPU
306…条件付きアクセスモジュール
308…ローカルメモリ
309…バッファメモリ
310…STBコントローラ
312…デコーダ
314…グラフィックオーバーレイモジュール[0001]
BRIEF DESCRIPTION OF THE INVENTION
The present invention generally relates to data on demand systems. The present invention particularly relates to a video-on-demand system.
[0002]
BACKGROUND OF THE INVENTION
A video on demand (VOD) system is a type of data on demand (DOD) system. In a VOD system, video data files are provided on demand to one or more clients by a server or network of servers.
[0003]
In the conventional VOD architecture, a server or a network of servers communicates with clients in a standard hierarchical client-server model scheme. For example, the client sends a data file (eg, video data file) request to the server. In response to a request from the client, the server transmits the requested data file to the client. In the standard client-server model, data file requests from clients can be fulfilled by one or more servers. The client may have the ability to store any received data file locally in non-volatile memory for later use. The standard client / server model requires a two-way communication infrastructure. Because existing cables can only provide unidirectional communication, current bidirectional communication requires the construction of a new infrastructure. Examples of bi-directional communication infrastructures include optical fiber and coaxial cable combination (HFC) or any fiber infrastructure. Replacing existing cables is very expensive and most users cannot enjoy the services obtained in this way.
[0004]
The standard client-server model is also subject to many constraints when a service provider (eg, cable company) attempts to provide VOD service to a large number of clients. One of the constraints that the standard client-server model suffers is that service providers need to build a mechanism that listens for and fulfills all requests originating from each client in the network, thus enabling services The number of acceptable clients depends on the capacity of such a mechanism. One mechanism uses a massively parallel computer with a large and fast disk array as a local server. However, even the fastest existing local server can only deliver a video data stream to about 1,000 to 2,000 clients at a time. Therefore, in order to serve more clients, the number of local servers must be increased. As the number of local servers increases, more host servers are required to maintain control of the local servers.
[0005]
Another limitation of the standard client-server model is that each client requires its own bandwidth. Thus, the total bandwidth required is directly proportional to the number of subscribed clients. In order to improve the bandwidth constraint, the cache memory in the local server has been used so far. However, since the cache memory itself is limited, the use of the cache memory does not solve the problem.
[0006]
In order to make video on demand more enjoyable by clients, existing service providers are increasing the ratio of clients per local server beyond the capabilities of the local server. In general, a local server that can provide services to 1,000 clients actually undertakes services for 10,000 clients. This technique may work if most of the subscribed clients do not order video at the same time. However, this technique is prone to failure. This is because most clients want to watch the video at the same time (for example, at night or on weekends), which leads to overloading of the local server.
[0007]
Accordingly, it would be desirable to provide a system that can provide on-demand services to a large number of clients through virtually any transmission medium without replacing existing infrastructure.
[0008]
Summary of the Invention
In an exemplary embodiment, a method for transmitting data to a client on a server side to provide a data-on-demand service includes receiving a data file, identifying a time interval, and the time interval. Decomposing the data file into a plurality of data blocks based on the time interval so that each data block can be displayed therein; determining the number of time slots required to transmit the data file; At least the first data block of the plurality of data blocks, and an additional one if necessary, so that a client accessing the data file during any time slot can use the plurality of data blocks sequentially. One or more data blocks are allocated to each time slot Comprising the steps ether, and transmitting a plurality of data blocks based on the allocation step. In one embodiment, the decomposition step includes determining an estimated data block size, determining a cluster size of memory in the channel server, and decomposing the data file based on the estimated data block size and the cluster size. Steps. In another embodiment, the determining step includes evaluating resource allocation and bandwidth utilization availability.
[0009]
In one embodiment, the method further includes selecting a set of prefetch data blocks from the plurality of data blocks and a set of dedicated channels for transmitting prefetch data, program guides, commercials, firmware updates, and the like. Transmitting the prefetched data blocks individually. In one exemplary embodiment, selecting a set of prefetched data blocks includes (1) determining bandwidth reduction, allocation of bandwidth to prefetched data on a dedicated channel, and delay time; (2) selecting a prefetch data block based on bandwidth reduction, bandwidth allocation, and delay time.
[0010]
In another embodiment, the method further includes receiving a preview request, randomly selecting a set of data blocks from the plurality of data blocks to compose the preview, and displaying a preview. including. In yet another embodiment, the method further comprises transmitting a set of commercial data blocks on a dedicated channel and displaying the set of commercial data blocks at a predetermined time. In an exemplary embodiment, commercial data blocks are continuously transmitted on a dedicated channel. In this embodiment, the step of displaying the set of commercial data blocks includes receiving a fee selection by the user based on the frequency of commercial display, and displaying the set of commercial data block based on the selection by the user; including.
[0011]
In yet another embodiment, the method further includes the step of checking for the presence of an urgent bit in the packet header of the data file and, if an urgent bit is detected, tunes the dedicated channel to provide urgent information. Receiving, and displaying emergency information. In one embodiment, the method further includes determining whether the emergency information is associated with an associated area, and if the emergency information is associated with an associated area, Displaying.
[0012]
In an exemplary embodiment, a method for processing data received from a server at a client side to provide a data-on-demand service includes: (a) selecting a data file during a first time slot; (B) receiving at least one data block of the data file during the second time slot; and (c) any data block not yet received during the next time slot. And sequentially displaying the data blocks of the data file, and repeating step (c) until all the data blocks of the data file are received and displayed. In one embodiment, the method for processing data received from the server is implemented at the client side by a set top box.
[0013]
In one exemplary embodiment, the data file is divided into a fixed number of data blocks and a scheduling matrix is generated based on the number of data blocks. The scheduling matrix provides a transmission order on the server side for transmitting data blocks so that the client can access the data blocks in order at any time. In an exemplary embodiment, a method for generating a scheduling matrix for a data file comprises the following steps. That is, (a) receiving the number of data blocks [x] for a data file, (b) setting the first variable [j] to 0, and (c) the second variable [i] ] To 0, (d) erasing any input in the reference array, and (e) [(i, j) in the matrix if the reference array does not yet contain a data block. Writing at least one data block stored in the matrix position of the modulo x] column to the reference array; and (f) the matrix position of the reference array and matrix if the reference array does not include the data block [i]: [ (I, j) writing data block [i] to modulo x, j], (g) incrementing second variable [i] by 1, and second variable [i] becomes data block [x]. Etc. to the number of Step (e) is repeated until the first variable [j] is incremented by 1 and (h) the first variable [j] is incremented by 1 until the first variable [j] is equal to the number of data blocks [x]. ). In one embodiment, a scheduling matrix is generated for each data file in the set of data files, and a convolution method is applied to transmit the set of data files based on these scheduling matrices. A delivery matrix is generated.
[0014]
The data-on-demand system includes a first set of channel servers, a central control server for controlling the first set of channel servers, a first set of upconverters coupled to the first set of channel servers, A combiner / amplifier coupled to the first set of upconverters and a combiner / amplifier configured to transmit data via the transmission medium. In an exemplary embodiment, the data on demand system further comprises a channel monitor module for monitoring the system, a switch matrix, a second set of channel servers, and a second set of upconverters. . The channel monitor module is configured to report to the central control server when a system failure occurs. In response to the report from the channel monitor module, the central control server replaces the faulty channel server in the first set of channel servers with the channel server of the second set of channel servers, and in the first set of upconverters. Command the switch matrix to replace the faulty upconverter with a second set of upconverters.
[0015]
A method for providing a data-on-demand service includes the steps of calculating a delivery matrix for a data file and sending the data file according to the delivery matrix so that many clients can view the data file on demand. And a step of performing. In one embodiment, the data file includes a video file.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1A illustrates an
[0017]
In an exemplary embodiment, the
[0018]
In an exemplary embodiment, existing
[0019]
FIG. 1B illustrates another exemplary embodiment of the
[0020]
In an exemplary embodiment, the data file broadcast from the
[0021]
FIG. 2 illustrates an
[0022]
The
[0023]
FIG. 3 illustrates an exemplary set top box (STB) 300 in accordance with one embodiment of the present invention. The
[0024]
In one embodiment, the
One or more of the following. That is, it comprises one or more of a privacy encryption / non-encryption module, forward error correction decoder / encoder, tuner control, downstream and upstream processors, CPU, and memory interface circuit. The QAM demodulator 302 receives the modulated IF signal and samples and demodulates the signal to recover the data.
[0025]
In an exemplary embodiment, when access rights are granted, the
[0026]
The
[0027]
In one exemplary embodiment, the data file is broadcast to all cable TV subscribers, but only DOD subscribers with matching
[0028]
In one exemplary embodiment, data on demand interactivity allows the client to select an available data file at any time. The time from when the client presses the selection button until the selected data file starts to be played is called response time. As resources allocated to provide a DOD service (eg, bandwidth and server capabilities) increase, the response time decreases. In an exemplary embodiment, the response time can be determined based on an assessment of resource allocation and desired quality of service.
[0029]
In an exemplary embodiment, the selected response time determines the duration of one time slot. The duration of one time slot (TS) is a time interval at which the client reproduces the data block at the normal speed. In an exemplary embodiment, a data file, such as a video file, is divided into a fixed number of data blocks so that each data block can support playback of the data file for a duration of one time slot.
[0030]
In one embodiment, the number of data blocks (NUM_OF_BLKS) for each data file can be calculated as follows.
[0031]
[Formula 1]
[0032]
[Formula 2]
[0033]
[Formula 3]
[0034]
[Formula 4]
[0035]
In equations (1)-(4), Estimated_BLK_Size is the estimated block size (expressed in bytes), DataFile_Size is the data file size (expressed in bytes), and TS is (number of seconds DataFile_Length is the duration of the data file (expressed in seconds) and BLK SIZE is the number of clusters required per data block CLUSTER_SIZE is the size of the cluster in the
[0036]
FIG. 4 illustrates an exemplary process for generating a scheduling matrix in accordance with one embodiment of the present invention. In one exemplary embodiment, the present invention uses time division multiplexing (TDM) and frequency division multiplexing (FDM) to compress and schedule data delivery on the server side. In an exemplary embodiment, a scheduling matrix is generated for each data file. In one embodiment, each data file is divided into a fixed number of data blocks, and a scheduling matrix is generated based on the number of data blocks. In general, a scheduling matrix provides a transmission order for transmitting data blocks of a data file from a server to a client. As a result, any client attempting to access the data file at any time can access the data file in order.
[0037]
In
[0038]
In an exemplary embodiment, if the data file is divided into 6 data blocks (x = 6), the scheduling matrix and reference array are represented as follows:
[0039]
[Table 1]
[0040]
[Table 2]
[0041]
In this exemplary embodiment, based on the scheduling matrix described above, six data blocks of the data file are transmitted in the following order.
[0042]
[Table 3]
[0043]
In another exemplary embodiment, a look-ahead process can be used to calculate a look-ahead scheduling matrix and send a predetermined number of data blocks corresponding to one data file prior to the predicted access time. . For example, for any time slot with a time slot number of 4 or greater, if the predetermined look-ahead time is the duration of one time slot, data block 4 (blk4) of the data file is at the joining client. Although it is desirable that the
[0044]
[Table 4]
[0045]
A three-dimensional delivery matrix for transmitting a set of data files is generated based on a scheduling matrix of each data file included in the set of data files. In the three-dimensional delivery matrix, a third dimension including the ID of each data file in a set of data files is generated. A three-dimensional delivery matrix is computed to efficiently utilize the effective bandwidth of each channel and transmit multiple data streams. In an exemplary embodiment, convolution methods well known in the art are used to generate a three-dimensional delivery matrix and schedule efficient transmission of a set of data files. For example, the convolution method can include the following policies. That is, (1) It is desirable that the total number of data blocks transmitted during the duration of an arbitrary time slot (TS) is kept as small as possible. (2) There are multiple partial resolutions for policy (1). If possible, a data block transmitted during the duration of any reference time slot, a data block transmitted during the duration of the previous time slot (of the reference time slot), and (of the reference time slot) A solution is preferred in which the sum of the data blocks obtained by adding together the data blocks transmitted during the duration of the next time slot is minimal. For example, if a typical system transmitting two short data files, M and N, is assumed, and each data file is divided into 6 data blocks, the transmission sequence based on the scheduling matrix is: It is.
[0046]
[Table 5]
[0047]
When the typical convolution method as described above is applied, the following six types are possible as combinations of delivery matrices.
[0048]
[Table 6]
[0049]
[Table 7]
[0050]
[Table 8]
[0051]
[Table 9]
[0052]
[Table 10]
[0053]
[Table 11]
[0054]
Applying policy (1), options 2, 4 and 6 have the smallest maximum number of data blocks transmitted during any time slot (ie 6 data blocks). Applying policy (2), option 4 is the optimal delivery matrix in this exemplary embodiment. This is because, in option 4, the sum of the data block of any reference time slot and the data block of the adjacent time slot is the minimum (ie, 16 data blocks). Therefore, as optimal for the present embodiment, the transmission sequence of the data file N is preferably shifted by 3 time slots. In an exemplary embodiment, a three-dimensional delivery matrix is generated for each
[0055]
When a data block of each data file is transmitted according to the delivery matrix, many subscribed clients can access the data file at any time, so each subscribed client assigns the appropriate data block in the data file accordingly. It is possible to use. In the example described above, assuming that the duration of one time slot is equal to 5 seconds, the
[0056]
[Table 12]
[0057]
When client A selects movie M at time 00:00:00,
[0058]
[Table 13]
[0059]
When the client B selects the movie M at time 00:00:10, the
[0060]
[Table 14]
[0061]
When the client C selects the movie M at time 00:00:15, the
[0062]
[Table 15]
[0063]
When the client D selects the movie M at time 00:00:30, the
[0064]
[Table 16]
[0065]
As shown in the above-described embodiments, selection and playback of an arbitrary data file provided by the service provider can always be performed independently regardless of the combination of clients.
[0066]
General operation
The service provider can schedule a certain number of data files (eg, video files) to be sent to the
[0067]
In one exemplary embodiment, the size of the data block is several times the size of the memory cluster in the
[0068]
The sub-block can be further divided into data packets. Each data packet includes a packet header and packet data. The length of the packet data depends on the maximum transmission unit (MTU) of the physical layer to which data is transmitted by the CPU of each channel server. In the preferred embodiment, the total size of the packet header and packet data is preferably less than the MTU. However, in order to obtain the maximum efficiency, it is desirable that the length of the packet data is as long as possible.
[0069]
In one exemplary embodiment, the data in the packet header includes information (e.g., protocol signature, version, ID, or packet type information, etc.) that permits the subscribing client's
[0070]
The data packet received by the
[0071]
The QAM modulated IF signal is transmitted to the upconverter 106 for conversion to an RF signal suitable for a particular channel (eg, 559.250 MHz and 6 MHz bandwidth for CATV channel 80). For example, if a cable network has a high bandwidth (or bit rate), each channel can be used to provide two or more data streams that each occupy a virtual subchannel. For example, three MPEG1 data streams are adapted to a 6 MHz channel by using QAM modulation. The output of the upconverter 106 is supplied to a combiner /
[0072]
In one exemplary embodiment, the total system bandwidth (BW) for transmitting “N” data streams is BW = N × bw, where bw is the bandwidth required for each data stream. Width. For example, since each MPEG-1 data stream occupies a system bandwidth of 9 megabits / second, three MPEG-1 data streams are simultaneously transmitted by a DOCSIS cable channel having a system bandwidth of 30.3 megabits / second. Can be transmitted.
[0073]
In general, bandwidth is consumed regardless of the number of subscribed clients that are actually accessing the DOD service. Therefore, bandwidth is still consumed to guarantee the on-demand capability of the system even when there are no subscribed clients using the DOD service.
[0074]
In an exemplary embodiment, the total system bandwidth (BW) can be reduced by prefetching several data blocks of each data file. The prefetch data blocks are continuously transmitted on individual dedicated channels. In one embodiment, the prefetch data blocks for one data file are sent sequentially in groups. The total system bandwidth (BW) required to send the remaining data blocks is reduced by sending prefetched data blocks. Once the desired number of preemptive data blocks to be transmitted on a separate channel is determined, the remaining data blocks are transmitted so that these preemptive data blocks are not transmitted again with other data blocks. It is desirable to adjust the schedule.
[0075]
For example, the above-described representative scheduling matrix in which the data file is divided into six data blocks is obtained when both the first data block “b0” and the second data block “b1” are prefetched data blocks. It is desirable to change the following for the remaining data blocks (b2 to b5).
[0076]
[Table 17]
[0077]
In the embodiment described above, if b0 is the only prefetched data block, the total bandwidth for transmitting the remaining data blocks (b1-b5) of the data file is reduced by 37.5% (ie, 6 of the total 16 data blocks are removed). Next, if the data block “b1” is also a prefetched data block, the bandwidth for transmitting the remaining data blocks (b2 to b5) is further reduced by 12.5%. Therefore, the bandwidth that is additionally reduced to prefetch b1 is not that large to prefetch b0. Since the additional reduced bandwidth decreases as more prefetched data increases, the optimal number of prefetched data blocks for each data file can be determined based on the desired bandwidth reduction. In an exemplary embodiment, the bandwidth saved by prefetching data blocks from x to y in a data file is estimated by the following equation:
[0078]
[Formula 5]
[0079]
Also, as the number of prefetched data blocks increases, the prefetch delay time also increases. The prefetch delay time is based on the size of one data block of each data file, the number of data blocks prefetched from each data file, the number of data files transmitted, and the prefetch bandwidth allocated to the dedicated channel. It is determined. In an exemplary embodiment, all prefetched data blocks of each data file are transmitted on the dedicated channel, one data block at a time slot in sequence and continuously. Those skilled in the art will appreciate that as the number of prefetched data blocks increases, the prefetch delay time increases. Therefore, it is desirable to take into account an allowable prefetch delay time when determining the optimum number of prefetch data blocks for each data file.
[0080]
For example, when the data blocks b0 and b1 of the data files M and N are prefetched by the dedicated channel, these prefetched data blocks can be transmitted by the following method.
[0081]
[Table 18]
[0082]
In an exemplary embodiment, assuming a predetermined preemption bandwidth: PRF_BW (megabytes / second) is assigned, the prefetch delay time is: prefetch delay time = [size of data block (megabytes) × prefetched. The number of data blocks to be multiplied by (number of data files to be transmitted + 1) × 8] / PRF_BW (megabyte / second) can be calculated.
[0083]
In one exemplary embodiment, the prefetch cycle time (PRF_TIME), which is the time required to transmit a preemptive data block of all data files to be transmitted, is: Prefetch cycle time = [data block (Megabytes) × number of data blocks to be prefetched × (number of data files to be transmitted + 1) × 8] / PRF_BW (megabytes / second).
[0084]
In one embodiment, in order to reduce the prefetch delay time, the prefetch data block of the new data file is more than the prefetch data block in the old data file (eg, a data file transmitted continuously for a predetermined time). Sent frequently. For example, when M is an old data file and N is a new data file, the prefetch data block is transmitted in the following manner.
[0085]
[Table 19]
[0086]
Once the
[0087]
In one exemplary embodiment, the preview consists of data blocks randomly selected in the data stream of the data file. Therefore, even when the preview of the same data file is selected a plurality of times, the user is unlikely to see the same preview. The advantage of a randomly configured preview is that the
[0088]
The subscribing client can see a list of available data files arranged by category displayed on the television screen. When the client selects one of the available data files, the
[0089]
In order to improve performance efficiency by avoiding frequent reads / writes to the
[0090]
In an exemplary embodiment, the
[0091]
In an exemplary embodiment, a cable company using the
[0092]
If an emergency information bit is found in the data packet header, the
[0093]
In one embodiment, when the
[0094]
The above-described examples show specific exemplary embodiments according to the present invention, and those skilled in the art can come up with modifications and alternatives based on these. Accordingly, the invention is not limited to the specific embodiments described above, but is preferably defined by the appended claims.
[Brief description of the drawings]
FIG. 1A illustrates an exemplary DOD system in accordance with one embodiment of the present invention.
FIG. 1B illustrates an exemplary DOD system according to another embodiment of the present invention.
FIG. 2 illustrates an exemplary channel server in accordance with one embodiment of the present invention.
FIG. 3 illustrates a representative set top box in accordance with one embodiment of the present invention.
FIG. 4 illustrates an exemplary process for generating a scheduling matrix in accordance with one embodiment of the present invention.
[Explanation of symbols]
100 ... DOD system
102 ... Central control server
103 ... Central storage
104a to 104n ... Channel server
106a-106n ... Upconverter
108 ... Combiner / Amplifier
110: Transmission medium
112 ... Switch matrix
114 ... Channel monitor module
116a to 116b ... backup channel server
118a-118b ... backup converter
120 ... cable television system
202 ... Server controller
204 ... CPU
206 ... QAM modulator
208: Local memory
210 ... Network interface
300 ... Set Top Box (STB)
302 ... QAM modulator
304 ... CPU
306 ... Conditional access module
308 ... Local memory
309: Buffer memory
310 ... STB controller
312: Decoder
314 ... Graphic overlay module
Claims (3)
(a)データファイルを受け取るステップと、
(b)時間間隔を特定するステップと、
(c)前記時間間隔に基づいて、前記データファイルを複数のデータブロックに分解するステップと、
(d)先取り遅延時間に基づいて選択する先取りデータブロック数を決定し、前記複数のデータブロックから前記決定された先取りデータブロック数に応じた1組の先取りデータブロックを選択するステップと、
(e)前記1組の先取りデータブロックを専用チャネルで送信するステップと、
(f)前記複数のデータブロックの残りのデータブロックを伝送チャネルで伝送するステップと
を備える方法。A method of sending data to a client to provide a data on demand service,
(A) receiving a data file;
(B) identifying a time interval;
(C) decomposing the data file into a plurality of data blocks based on the time interval;
Comprising the steps of (d) determining the prefetch number of data blocks to be selected based on the prefetch delay time, selects a set of prefetch data blocks corresponding to the prefetch the number of data blocks said determined from said plurality of data blocks,
(E) transmitting the set of prefetched data blocks on a dedicated channel;
(F) transmitting the remaining data blocks of the plurality of data blocks on a transmission channel.
前記先取り遅延時間は、前記専用チャネルに割り当てられる先取り帯域幅に基づいて決定される、方法。The method of claim 1, comprising:
The prefetch delay time is determined based on a prefetch bandwidth allocated to the dedicated channel .
古いデータファイルの先取りデータブロックよりも高い頻度で新しいデータファイルの先取りデータブロックを送ることによって前記先取り遅延時間を低減するステップを備える、方法。 Reducing the prefetch delay time by sending prefetch data blocks of a new data file more frequently than prefetch data blocks of an old data file.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/584,832 | 2000-05-31 | ||
US09/584,832 US6557030B1 (en) | 2000-05-31 | 2000-05-31 | Systems and methods for providing video-on-demand services for broadcasting systems |
US09/709,948 | 2000-11-10 | ||
US09/709,948 US6725267B1 (en) | 2000-05-31 | 2000-11-10 | Prefetched data in a digital broadcast system |
PCT/US2001/017986 WO2001093062A1 (en) | 2000-05-31 | 2001-05-31 | Methods for providing video-on-demand services for broadcasting systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004501558A JP2004501558A (en) | 2004-01-15 |
JP5038574B2 true JP5038574B2 (en) | 2012-10-03 |
Family
ID=27079218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002500209A Expired - Fee Related JP5038574B2 (en) | 2000-05-31 | 2001-05-31 | Method for providing video-on-demand services for broadcast systems |
Country Status (11)
Country | Link |
---|---|
EP (1) | EP1285348A4 (en) |
JP (1) | JP5038574B2 (en) |
CN (1) | CN1203671C (en) |
AU (1) | AU2001266681A1 (en) |
BR (1) | BR0111652A (en) |
CA (1) | CA2406715A1 (en) |
HK (1) | HK1049389B (en) |
IL (1) | IL152761A0 (en) |
MX (1) | MXPA02011840A (en) |
TW (1) | TW571594B (en) |
WO (1) | WO2001093062A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979561B2 (en) | 2005-03-10 | 2011-07-12 | Qualcomm Incorporated | Method of multiplexing over an error-prone wireless broadcast channel |
JP2009506627A (en) | 2005-08-26 | 2009-02-12 | トムソン ライセンシング | On-demand system and method using dynamic broadcast scheduling |
CN101237683B (en) * | 2007-01-31 | 2011-03-09 | 展讯通信(上海)有限公司 | Method for mobile communication terminal to simultaneously receive TV signals and BCH/PICH |
TWI556637B (en) * | 2012-12-14 | 2016-11-01 | Apacer Technology Inc | Selection method and system for switching information of multiple media sources |
TWI554092B (en) * | 2012-12-17 | 2016-10-11 | 財團法人工業技術研究院 | Service management method and system |
CN112400301A (en) * | 2018-07-31 | 2021-02-23 | 韦斯特尔电子工业和贸易有限责任公司 | Method, apparatus, system and computer program for data distribution |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07250314A (en) * | 1994-03-10 | 1995-09-26 | Matsushita Electric Ind Co Ltd | Catv system and video server |
KR960036641A (en) * | 1995-03-21 | 1996-10-28 | 김광호 | High speed decoding device for decoding low speed video bit stream |
US5781228A (en) * | 1995-09-07 | 1998-07-14 | Microsoft Corporation | Method and system for displaying an interactive program with intervening informational segments |
US5751336A (en) * | 1995-10-12 | 1998-05-12 | International Business Machines Corporation | Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems |
WO1997021308A1 (en) * | 1995-12-01 | 1997-06-12 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for information processing for data transfer network |
JP3986084B2 (en) * | 1995-12-07 | 2007-10-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Method and apparatus for encoding, transmitting and decoding a non-PCM bitstream between a digital versatile disk device and a multi-channel playback device |
US5831662A (en) * | 1996-04-04 | 1998-11-03 | Hughes Electronics Corporation | Near on-demand digital information delivery system and method using signal fragmentation and sequencing to reduce average bandwidth and peak bandwidth variability |
DE69821092T2 (en) * | 1997-02-21 | 2004-11-11 | Pinpoint Inc., Fort Worth | BROADCASTING DATA DISTRIBUTION SYSTEM WITH ASYMMETRIC UP AND DOWN CONNECTION BANDWIDTHS |
US6169767B1 (en) * | 1997-03-10 | 2001-01-02 | Sarnoff Corporation | Universal network interface module |
EP0880246A3 (en) * | 1997-05-15 | 1999-12-01 | Matsushita Electric Industrial Co., Ltd. | Compressed code decoding device and audio decoding device |
US6055571A (en) * | 1997-11-20 | 2000-04-25 | Nec Usa, Inc. | Computer network with microeconomic flow control |
US6072808A (en) * | 1997-12-23 | 2000-06-06 | Intel Corporation | Method of providing and retrieving a data segment |
US6263019B1 (en) * | 1998-10-09 | 2001-07-17 | Matsushita Electric Industrial Co., Ltd. | Variable rate MPEG-2 video syntax processor |
-
2001
- 2001-05-31 CA CA002406715A patent/CA2406715A1/en not_active Abandoned
- 2001-05-31 WO PCT/US2001/017986 patent/WO2001093062A1/en not_active Application Discontinuation
- 2001-05-31 CN CNB018007570A patent/CN1203671C/en not_active Expired - Fee Related
- 2001-05-31 IL IL15276101A patent/IL152761A0/en unknown
- 2001-05-31 AU AU2001266681A patent/AU2001266681A1/en not_active Abandoned
- 2001-05-31 BR BR0111652-5A patent/BR0111652A/en not_active IP Right Cessation
- 2001-05-31 JP JP2002500209A patent/JP5038574B2/en not_active Expired - Fee Related
- 2001-05-31 EP EP01944254A patent/EP1285348A4/en not_active Withdrawn
- 2001-05-31 MX MXPA02011840A patent/MXPA02011840A/en unknown
- 2001-07-03 TW TW090113207A patent/TW571594B/en not_active IP Right Cessation
-
2003
- 2003-02-28 HK HK03101490.0A patent/HK1049389B/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK1049389A1 (en) | 2003-05-09 |
BR0111652A (en) | 2003-10-07 |
CA2406715A1 (en) | 2001-12-06 |
HK1049389B (en) | 2006-01-13 |
EP1285348A4 (en) | 2004-06-30 |
CN1203671C (en) | 2005-05-25 |
AU2001266681A1 (en) | 2001-12-11 |
TW571594B (en) | 2004-01-11 |
CN1366642A (en) | 2002-08-28 |
EP1285348A1 (en) | 2003-02-26 |
WO2001093062A1 (en) | 2001-12-06 |
IL152761A0 (en) | 2003-06-24 |
JP2004501558A (en) | 2004-01-15 |
MXPA02011840A (en) | 2003-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6557030B1 (en) | Systems and methods for providing video-on-demand services for broadcasting systems | |
EP1389874B1 (en) | Fast digital channel changing | |
US20030051249A1 (en) | System and method for data insertion (commercials) in client generic data-on-demand broadcast transmissions | |
EP1285347A1 (en) | Universal stb architectures and control methods | |
US20020023267A1 (en) | Universal digital broadcast system and methods | |
US20020026501A1 (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices | |
JP5038574B2 (en) | Method for providing video-on-demand services for broadcast systems | |
US20020138845A1 (en) | Methods and systems for transmitting delayed access client generic data-on demand services | |
JP2005506725A (en) | Method and system for transmitting client generic data-on-demand service with delayed access | |
JP2004514336A (en) | Idle time reduction and constant bandwidth data on demand broadcast distribution matrix | |
KR20030092105A (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
TWI223563B (en) | Methods and systems for transmitting delayed access client generic data-on-demand services | |
AU2001253797A1 (en) | Universal digital broadcast system and methods | |
WO2003048894A2 (en) | System and methods for data insertion (commercials) in client generic data-on-demand broadcast transmissions | |
KR20030051800A (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery ma-trices | |
EP1402331A2 (en) | Methods and systems for transmitting delayed access client generic data-on demand services | |
KR20040063795A (en) | Transmission of delayed access client data and demand | |
KR20030034082A (en) | Universal digital broadcast system and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091020 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100118 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100416 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101102 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120706 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |