CN1203675C - 减少空闲时间和恒定带宽的数据点播广播传送矩阵 - Google Patents
减少空闲时间和恒定带宽的数据点播广播传送矩阵 Download PDFInfo
- Publication number
- CN1203675C CN1203675C CNB018030440A CN01803044A CN1203675C CN 1203675 C CN1203675 C CN 1203675C CN B018030440 A CNB018030440 A CN B018030440A CN 01803044 A CN01803044 A CN 01803044A CN 1203675 C CN1203675 C CN 1203675C
- Authority
- CN
- China
- Prior art keywords
- data
- matrix
- data block
- data file
- bandwidth
- 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
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/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/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
- H04N21/4821—End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种用于减少空闲时间之调度矩阵(520)的方法和系统,该矩阵用于被分解为数据块的数据文件。调度矩阵被产生,空闲时间被数据块所填充,这些数据块稍后出现在该矩阵中,保持初始的数据块序列。然后这一过程重复(550),或同样地产生一个新的减少空闲时间的调度矩阵(560)。特别设计的机顶盒接收这些数据块。
Description
技术领域
本发明涉及一种减小空间时间和恒定带宽的数据点播广播传送矩阵。
背景技术
视频点播(VOD)系统是数据点播(DOD)系统的一个类型。在VOD系统中,由服务器或者服务器的网络根据要求将视频数据文件提供给一个或者多个客户机。本领域技术人员都充分理解这些系统。
在常规的VOD结构中,服务器或者服务器网络与客户机通信并采用标准的分级客户机-服务器模型。例如,客户机发送对于数据文件(例如视频数据文件)的请求给一个服务器。为响应客户机的请求,该服务器发送该所请求的文件给该客户机。在标准的客户机-服务器模型中,客户机对于数据文件的请求可以由一个或者多个服务器满足。该客户机可以具有在非易失性存储器中存储本机接收的任何数据文件的容量,以便以后使用这些数据文件。标准的客户机-服务器模型要求双向通信基础设施。当前,双向通信要求建立新的基础设施,因为现有的电缆只可提供单向的通信。双向通信基础设施的示例是混合的光纤同轴电缆(HFC)或者所有的光纤基础设施。更换现有电缆的成本相当高,而得到的服务不是大多数用户能够支付得起的。
另外,当服务提供者(例如有线公司)试图提供VOD服务给大量的客户机时,该标准的客户机-服务器模型具有许多限制。该标准的客户机服务器模型的一种限制是服务提供者必须实现一种结构,以连续地监听和满足来自该网络内的每个客户机的每个请求;因此,可以接收服务的客户机数量取决于这样的一个结构的容量。一种结构采用大规模并行计算机作为本地服务器,它具有大容量高速磁盘阵列。但是,即使最快的现有的本地服务器同时只可传送视频数据流给大约1000至2000台客户机。因此,为了服务更多的客户机,必须增加本地服务器的数量。增加本地服务器要求有更多的上层服务器以便保持对本地服务器的控制。
标准的客户机-服务器模型的另一种限制是每个客户机要求它自己的带宽。因此,所要求的总带宽直接正比于预订客户机的数量。在本地服务器内的超高速缓冲存储器已经用于改进带宽限制,但是使用超高速缓冲存储器不解决该问题,因为超高速缓冲存储器也受限制。
目前,为了使客户更能负担得起视频点播服务,目前的服务供应商在本地服务器的能力上面增加每个本地服务器的客户机的比例。典型地,一个本地服务器能够提供服务给1000个客户机,实际上要承担对10,000个客户机的服务。如果大多数的预订客户机不同时预订视频,这个技术可以工作。但是,这项技术的建立会导致故障,因为大多数的客户机很可能同时(即晚间和周末)要观看视频,因此,引起本地服务器变得过载。
因此,希望提供一个系统,能够实际上在任何传输媒介上提供点播服务给大量的客户机而不必更换现有的基础设施。
发明内容
在一个示例的实施例中,在服务器端,一种用于传送数据给客户机以便提供数据点播服务的方法包括以下步骤:接收数据文件,指定时间间隔,根据该时间间隔解析该数据文件为多个数据块,使得每个数据块在该时间间隔期间是可显示的,确定发送该数据文件要求的时隙数量,给每个时隙分配该多个数据块中的至少一个第一数据块以及可选的一个或者多个附加数据块,使得在任何时隙期间、访问该数据文件的客户机可以按顺序得到该多个数据块,和基于该分配步骤发送该多个数据块。一个实施例中,该解析步骤包括以下步骤:确定估计的数据块长度,确定在频道服务器中的存储器的丛集长度(cluster),和基于该估计的数据块长度和丛集长度解析该数据文件。在另一个实施例中,该确定步骤包括评价资源分配和带宽可用性的步骤。
在一个示例的实施例中,在客户机端,一种用于处理从服务器接收的数据以便提供数据点播服务的方法包括以下步骤:(a)在第一时隙期间接收一个数据文件之选择信息;(b)在第二时隙期间接收该数据文件的至少一个数据块;(c)在下一个时隙期间:接收尚未被接收的任何数据块,按顺序显示该数据文件的数据块,和重复步骤(c),直到该数据文件的所有数据块已经被接收和显示。一个实施例中,由在客户机端的机顶盒执行该用于处理从服务器接收之数据的方法。
在一个示例的实施例中,数据文件被分成多个数据块并基于该多个数据块产生一个调度(scheduling)矩阵。在服务器端,该调度矩阵提供用于发送这些数据块的发送次序,使得客户机可以在随机的时间按顺序访问这些数据块。在一个示例的实施例中,用于产生用于数据文件的调度矩阵的方法包括步骤:(a)接收数据文件的多个数据块[x];(b)设置第一变量[j]为零;(c)设置第二变量[i]为零;(d)清除在一个参考阵列中的所有的条目;(e)把存储在一个矩阵中[(i+j)mod x]列之矩阵位置中的至少一个数据块写到一个参考阵列,如果该参考阵列还没有包含该数据块;(f)把一个数据块[i]写到该参考阵列和该矩阵之矩阵位置[(i+j)mod x,j],如果该参考阵列没有包含该数据块[i];(g)第二变量[i]递增1并且重复步骤(e)、直到第二变量[i]等于该多个数据块[x];和(h)第一变量[j]递增1并且重复步骤(c)、直到第一变量[j]等于该多个数据块[x]。在一个实施例中,产生用于一组数据文件中的每个数据文件的调度矩阵,并且根据用于发送该组数据文件的调度矩阵,应用卷积(convolution)方法产生传送矩阵。
一种数据点播系统,包括第一组频道服务器、用于控制该第一组频道服务器的一个中央控制服务器、耦合到该第一组频道服务器的第一组上变频器、耦合到该第一组上变频器的一个组合器/放大器、和适合于通过传输媒介发送数据的一个组合器/放大器。在一个示例的实施例中,该数据点播系统还包括用于监视该系统一个频道监视的模块、一个开关矩阵、第二组频道服务器和第二组上变频器。该频道监视模块在发生系统故障时向该中央控制服务器报告。该中央控制服务器根据来自该频道监视模块的报告,向该开关矩阵发出指令,以便用第二组频道服务器中的频道服务器代替第一组频道服务器中的故障频道服务器、及用第二组上变频器中的上变频器代替第一组上变频器中的故障上变频器。
一种提供数据点播服务的方法包括以下步骤:计算数据文件的传送矩阵,根据该传送矩阵发送该数据文件,使得大量的客户机能够根据需要观看该数据文件。一个实施例中,该数据文件包含视频文件。
在本发明的另一个实施例中,通过将传送矩阵中之下面的数据块上移,可以减少在传送矩阵中产生的空闲时间,直到所有的时隙是满的并占用整个带宽。在这种方式中,该传送矩阵更多地被认为是保持该初始矩阵阶的数据流。在任何时候用户可以加入该流,只要开始块被接收时,就使用数据点播服务。
由于该矩阵可以被认为是一个流,用户可以在任何给定时间加入(enter)该流,只要它开始接收一个开始块,以使用该数据点播服务,只需等待,它不会比初始的传送矩阵的预定时隙更长。
在本发明的另一个实施例中提出一种通用的STB,它能够接收和处理诸如VOD和数字广播的多种数字式服务。这个实施例提出一种通用的STB,它具有高度灵活的结构,能够对所接收的数据进行复杂处理。这个结构包括一个数据总线、适用于耦合到数字广播通信媒介的第一通信设备、一般包括双向耦合到该数据总线的持久及瞬态存储器的一个存储器、和双向耦合到该数据总线的一个中央处理单元(CPU)。本发明的这个实施例的CPU实现一种STB控制处理,用于控制存储器、数字译码器和解调器。该STB控制处理可以操作以处理数字数据,如在第一通信设备接收的数字数据。该STB控制处理应该能够接收数据块以及这样的数据块的并行流,这些数据块来源于一个减少空闲时间的调度矩阵。
附图说明
图1A说明根据本发明一个实施例的一个示例的DOD系统。
图1B说明根据本发明的另一个实施例的一个示例的DOD系统。
图2说明根据本发明的一个实施例的示例的频道服务器。
图3说明根据本发明的一个实施例的示例的机顶盒。
图4说明根据本发明的一个实施例用于产生一个调度矩阵的示例的过程。
图5是一个6数据块文件的调度矩阵的一个示例之说明图。
图6的说明图示出图6中的调度矩阵的数据块如何往上移、直到所有的空闲时隙被充满。
图7的说明图示出一个新的减少空闲时间的调度矩阵。
图8是该减少空闲时间实施例的附加说明图。
图9是实现该减少空闲时间实施例的流程图。
图10的说明图描述由初始调度矩阵产生的多个重发数据流。
具体实施方式
图1A说明根据本发明的一个实施例的一个示例的DOD系统100。在这个实施例中,DOD系统100根据需要提供诸如视频文件的数据文件。但是,DOD系统100并不限于提供点播的视频文件,也能够根据要求提供其它数据文件,例如游戏文件。DOD系统100包含一个中央控制服务器102、一个中央存储器103、多个频道服务器104a-104n、多个上变频器106a-106n和一个组合器/放大器108。中央控制服务器102控制频道服务器104。中央存储器103以数字格式存储数据文件。在一个示例的实施例中,由任何连接在该网络上并被授权的计算机(比如中心控制服务器102)通过标准网络接口(例如以太网连接)可以访问存储在中央存储器103的数据文件。每个频道服务器104被分配一个频道和连接到上变频器106。频道服务器104根据中央控制服务器102的指令提供从中央存储器103检索的数据文件。每个频道服务器104的输出是一种正交振幅调制(QAM)调制的中频(IF)信号,具有适用于相应的上变频器106的频率。这些QAM调制的IF信号取决于采用的标准。当前在美国采用的标准是有线数据系统接口规范(DOCSIS)标准,它要求大约43.75MHz的中频。上变频器106将从频道服务器104接收的中频信号变换为射频信号(RF信号)。RF信号包括频率和带宽,这些RF信号取决于期望的频道和采用的标准。例如,根据美国用于有线电视频道80的当前标准,RF信号具有大约559.25MHz的频率和大约6MHz的带宽。上变频器106的输出被施加到组合器/放大器108。组合器/放大器108放大、调节和组合接收的RF信号,然后将这些信号输出至传输媒介110。
在一个示例的实施例中,中央控制服务器102包括一个图形用户接口(未示出),使服务提供者能够通过拖放式(drag-and-drop)操作来调度数据传送。另外,中央控制服务器102验证和控制频道服务器104以便根据传送矩阵开始或者停止。在一个示例的实施例中,中央控制服务器102自动地选择一个频道并且计算用于在选择的频道中发送数据文件的传送矩阵。中央控制服务器102提供对数据文件信息(例如持续时间、类别、额定值以及/或者简要叙述)的脱机增加、删除和更新。另外,中央控制服务器102通过更新存储在其中的数据文件和数据库控制该中央存储器103。
在一个示例的实施例中,现有的有线电视系统120可以继续馈送信号到组合器/放大器108以便提供非DOD服务给客户机。因此,根据本发明的DOD系统100不影响现在的有线电视服务。
图1B说明根据本发明的DOD系统100的另一个示例的实施例。除了在图1A中所示的单元外,该DOD系统100包括一个开关矩阵112、一个频道监视模块114、一组备用频道服务器116a-116b和一组备用上变频器118a-118b。在一个实施例中,开关矩阵112实际上位于上变频器106和组合器/放大器108之间。开关矩阵112是由中央控制服务器102控制的。频道监视模块114包括多个配置的机顶盒,它模拟潜在的客户机,用于监视DOD系统100的状况。监视的结果由频道监视模块114传送到中央控制服务器102。如果有频道故障(即频道服务器故障,上变频器故障或者通信链路故障),中央控制服务器102通过开关矩阵112断开故障部件并且接通完好的后备部件116以及/或者118以便重新开始服务。
在一个示例的实施例中,从DOD系统100广播的数据文件包含在运动图像专家组(MPEG)文件中。每个MPEG文件被动态地分成沿着时间轴映象到数据文件的特定部分的数据块和子数据块。根据由中央控制服务器102提供的三维传送矩阵,这些数据块和子数据块在预先确定的时间期间被发送。对于DOD系统100而言,提供DOD服务并不是必须有反馈信道不是必需的。但是,如果反馈信道是可用的,该反馈信道可用于其他的目的,诸如计费或者提供因特网服务。
图2说明根据本发明的一个实施例的示例的频道服务器104。频道服务器104包括一个服务器控制器202、一个CPU(中央处理单元)204、一个QAM调制器206、一个本机存储器208和一个网络接口210。服务器控制器202通过命令CPU 204划分数据文件为块(进一步划分为子块和数据分组)控制频道服务器104的整个操作,根据由中央控制服务器102提供的传送矩阵选择用于传输的数据块,编码选择的数据,压缩编码的数据,然后传送压缩的数据到QAM调制器206。QAM调制器206接收通过总线(即PCI、CPU本地总线)或者以太网连接发送的数据。在一个示例的实施例中,QAM调制器206可以包括一个下行QAM调制器、具有前向纠错解码器的一个上行正交幅度调制/正交相移键控(QAM/QPSK)脉冲串解调器、以及/或者一个上行调谐器。QAM调制器206的输出是一个中频信号,可以直接被施加到上变频器106。
网络接口210将信道服务器104连接到其它频道服务器104以及连接到中央控制服务器102,以便执行来自中央控制服务器102的调度和控制指令,并将状态报告给中央控制服务器102,和从中央存储器103接收数据文件。在根据来自服务器控制器202的指令处理该数据文件之前,从中央存储器103检索的任何数据文件可以被存储在频道服务器104的本机存储器208。在一个示例的实施例中,依赖于电缆信道的带宽(例如6、6.5或者8MHz)、QAM调制(例如QAM 64或者QAM 256)、及DOD数据流(即MPEG-1或者MPEG-2)的压缩标准/比特率,频道服务器104可以发送一个或者多个DOD数据流。
图3说明根据本发明的一个实施例的通用机顶盒(STB)300。STB300包括一个QAM解调器302、一个CPU 304、一个本机存储器308、缓冲存储器310、具有视频和音频解码能力的一个解码器312、一个图形重叠模块314、一个用户接口318、一个通信链路320和用于耦合如图所示的这些设备的一个快速数据总线322。CPU 302控制通用的STB300的整个操作,以便根据客户机的请求选择数据、解码选择的数据、解压缩解码的数据、重编(re-assemble)解码的数据、在本机存储器308或者缓冲存储器310中存储解码的数据、并传送存储的数据到解码器312。在一个示例的实施例中,本机存储器308包括非易失的存储器(例如硬盘驱动器),而缓冲存储器310包括易失性存储器。
在一个实施例中,QAM解调器302包括发射机和接收机模块以及以下部件中的一个或者多个:保密加密/解密模块、前向纠错解码器/编码器、控制调谐器、下行和上行处理器、CPU和存储器接口电路。QAM解调器302接收调制的中频信号、取样和解调这些信号以便恢复数据。
在一个示例的实施例中,当访问被许可时,解码器312解码至少一个数据块以便变换该数据块为可显示在输出屏幕的图像。解码器312支持来自预订客户机的命令,诸如播放、停止、暂停、步进、回放、向前等等。解码器312提供解码的数据给输出设备324以便由客户机使用。输出设备324可以是任何适当的设备,诸如电视机、计算机、任何合适的显示监视器、VCR(盒式录像机)或类似设备。
例如,图形重叠模块314通过提供阿尔法混合(alpha blending)或者画中画性能来提高显示图形质量。在一个示例的实施例中,在玩游戏模式期间,图形重叠模块314可用于图形加速,例如,当服务提供者采用根据本发明的该系统提供游戏点播服务时。
用户接口318使用户能够控制STB 300,并且可以是任何适当的设备,诸如遥控器、键盘、智能卡等等。通信链路320提供附加的通信连接。这可以被耦合到另一个计算机,或者可以用来实现双向通信。数据总线322最好是一种可以购买到的“快速”数据总线,适用于按照本发明要求的实时方式执行数据通信。适当的例子是USB(通用串行总线)、火线(firewire)等等。
在一个示例的实施例中,虽然数据文件被广播到所有的有线电视用户,但是只有那些具有兼容的STB 300的DOD用户能够解码和享受数据点播服务。在一个示例的实施例中,获得点播数据文件的许可是可以通过在用户接口318中的智能卡系统而获得的。智能卡可以是在本地商店或者由服务提供者设置的自动售货机上进行收费。在另一个示例的实施例中,一个统一的收费系统向用户提供对所有可得到之数据文件的无限制访问。
在优选实施例中,点播数据交互的特征允许客户机任何时候选择可得到的数据文件。当客户机按下选择按键时和选择的数据文件开始播放时间之间的时间量称为响应时间。由于分配越多的资源(例如带宽,服务器容量)以提供DOD服务,该响应时间变得越短。在一个示例的实施例中,可以根据资源分配的估计和期望的服务质量来确定响应时间。当与在并行流中放置第一数据块的实施例组合时,响应时间变为仅仅是开始接收及处理该第一数据块的时间的因数。
在一个实施例中,每个数据文件的数据块的数量(NUM_OF_BLKS)可以计算如下:
Estimated_BLK_Size=(DataFile Size*TS)/DataFile_Length (1)
BLK SIZE=(Estimated BLK Size+CLUSTER SIZE-1Byte)/CLUSTER_SIZE (2)
BLK_SIZE_BYTES=BLK_SIZE*CLUSTER_SIZE (3)
NUM_OF_BLKS=(DataFile_Size+BLK_SIZE_BYTES_1Byte)/BLK_SIZE_BYTES (4)
在等式(1)至(4)中,Estimated_BLK_Size是估计的块长度(以字节为单位);DataFile_Size是数据文件长度(在字节为单位);TS代表时隙的持续时间(以秒为单位);DataFile_Length是数据文件的持续时间(以秒为单位);BLK Size是每个数据块需要的丛集的数量;CLUSTER_SIZE是每个频道服务器104的本机存储器208中的丛集的长度(例如64K字节);BLK_SIZE_BYTES是以字节为单位的块长度。在这个实施例中,块的数量(NUM_OF_BLKS)等于数据文件长度(以字节为单位)加上以字节为单位的数据块长度减去1字节并且除以以字节为单位的数据块长度。等式(1)至(4)说明一个特定的实施例。本领域技术人员应该理解,其它方法可用于计算数据文件的数据块之数量。例如,划分数据文件为许多数据块主要是频道服务器104的本机存储器208的估计块长度和丛集长度的功能。因此,本发明不应该限制为上面提出的特定的实施例。
图4说明根据本发明的一个实施例、产生用于发送数据文件的调度矩阵的一个示例过程。在一个示例的实施例中,这个发明使用时分多路复用(TDM)和频分多路复用(FDM)技术在服务器端压缩和预定数据传送。在一个示例的实施例中,为每个数据文件产生一个调度矩阵。在一个实施例中,每个数据文件被分成许多数据块,并基于该多个数据块产生该调度矩阵。典型地,调度矩阵提供用于从服务器向客户机发送数据文件的数据块的发送次序,这样,在随机的时间由希望访问数据文件的任何客户机按照顺序的可访问这些数据块。
在步骤402,接收一个数据文件的多个数据块(x)。将第一变量j设置为零(步骤404)。清除一个参考阵列(步骤406)。参考阵列跟踪用于内部管理目的之数据块。然后,j与x比较(步骤408)。如果j小于x,第二变量i被设置为零(步骤412)。然后,i与x比较(步骤414)。如果i小于x,调度矩阵的存储在[(i+j)mod(x)]列中的数据块被写入该参考阵列(步骤418)。如果参考阵列已经具有这样的数据块,则不写重复的副本。最初,由于调度矩阵不具有条目,这个步骤可以跳过。然后,如果它包含数据块i,检查参考阵列(步骤420)。最初,由于在参考阵列中的所有的条目在步骤406被清除了,在该参考阵列中什么也没有了。如果参考阵列不包含数据块i,数据块i加入调度矩阵之[(i+j)mod(x),j]之矩阵位置和该参考阵列(步骤422)。在数据块i被加入到该调度矩阵和该参考阵列之后,i递增1,使得i=i+1(步骤424),然后在步骤414过程重复直到i=x。如果参考阵列包含数据块i,i递增1,使得i=i+1(步骤424),然后在步骤414过程重复直到i=x。当i=x时,j递增1,使得j=j+1(步骤416),并且在步骤406该过程重复直到j=x。当j=x(步骤410)时结束整个过程。
在一个示例的实施例中,如果一个数据文件被分成六个数据块(x=6),调度矩阵和参考阵列如下:
调度矩阵(SM)
TS0 | TS1 | TS2 | TS3 | TS4 | TS5 |
[0,0]blk0 | [1,0]blk1 | [2,0]blk2 | [3,0]blk3 | [4,0]blk4 | [5,0]blk5 |
[0.1] | [1,1]blk0 | [2,1] | [3,1] | [4,1] | [5,1] |
[0,2] | [1,2] | [2,2]blk0 | [3,2]blk1 | [4,2] | [5,2] |
[0,3] | [1,3] | [2,3] | [3,3]blk0 | [4,3] | [5,3]blk2 |
[0,4] | [1,4]blk3 | [2,4] | [3,4] | [4,4]blk0 | [5,5]blk1 |
[0,5] | [1,5] | [2,5] | [3,5]blk4 | [4,5] | [5,5]blk0 |
参考阵列(RA)
Space0 | space1 | space2 | space3 | space4 | space5 | |
TS0 | blk0 | blk1 | blk2 | blk3 | blk4 | blk5 |
TS1 | blk1 | blk0 | blk2 | blk3 | blk4 | blk5 |
TS2 | blk2 | blk0 | blk3 | blk1 | blk4 | blk5 |
TS3 | blk3 | blk1 | blk0 | blk4 | blk5 | blk2 |
TS4 | blk4 | blk0 | blk5 | blk2 | blk1 | blk3 |
TS5 | blk5 | blk2 | blk1 | blk0 | blk3 | blk4 |
本申请的附件A描述在图4中所示的该示例过程的一步一步之过程,在该示例过程中产生上述的调度矩阵和参考阵列。在这个示例的实施例中,基于上面的调度矩阵,该数据文件的六个数据块以下面序列发送:
TS0blk0
TS1blk0,blk1,blk3
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4
TS4blk0,blk4
TS5blk0,blk1,blk2,blk5
在另一个示例的实施例中,可利用先行(look-ahead)过程来计算先行调度矩阵以便在预知的访问时间前发送数据文件的预定数量的数据块。例如,如果预定的先行时间是一个时隙的持续时间,对于大于或等于时隙数4的任何时隙,数据文件的数据块4(blk4)应该由STB 300在预订客户机、在TS3或者在TS3之前接收,但是在TS4之前不播放blk4。产生先行调度矩阵的过程步骤基本上类似于在上述关于图4描述的过程步骤,除了在这个实施例中的先行调度矩阵基于先行时间调度较早的发送序列之外。假定一个数据文件被分成六个数据块,一个示例的发送序列基于先行调度矩阵并具有两个时隙的持续时间的先行时间的,该发送序列可以表示如下:
TS0blk0
TS1blk0,blk1,blk3,blk4
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4,blk5
TS4blk0,blk5
TS5blk0,blk1,blk2
用于发送一组数据文件的三维传送矩阵是根据该组数据文件的每个数据文件的调度矩阵产生的。在该三维传送矩阵中,产生一个第三维,它包含用于该组数据文件的每个数据文件的ID。计算该三维传送矩阵,以便有效地利用每个信道中的可用带宽传送多个数据流。在一个示例的实施例中,本领域公知的卷积方法用于产生三维的传送矩阵以便调度一组数据文件的有效传送。例如,卷积方法可以包括以下策略:(1)在任何时隙(TS)的持续时间中发送的数据块总数应该保持最小的可能的数量;和(2)如果相对于策略(1)可得到多个部分的解决方案,优选的解决方案是通过相加在任何参考时隙的持续时间期间发送的数据块、在前面的时隙(相对于该参考时隙)的持续时间期间发送的数据块和在下一个时隙(相对于该参考时隙)的持续时间期间发送的数据块,从而具有最小的数据块总数的解决方案。例如,假定一个示例的系统发送两个短的数据文件M和N,在这里每个数据文件被分成六个数据块,基于调度矩阵的发送序列如下:
TS0blk0
TS1blk0,blk1,blk3,blk4
TS2blk0,blk2
TS3blk0,blk1,blk3,blk4
TS4blk0,blk4
TS5blk0,blk1,blk2,blk5
应用在上面描述的示例的卷积方法,传送矩阵的可能的组合如下:
任选项1:在偏移0TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0 2
TS1M0,M1,M3,N0,N1,N3 6
TS2M0,M2,N0,N2 4
TS3M0,M1,M3,M4,N0,N1,N3,N4 8
TS4M0,M4,N0,N4 4
TS5M0,M1,M2,M5,N0,N1,N2,N5 8
任选项2:在偏移1TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0,N1,N3 4
TS1M0,M1,M3,N0,N2. 5
TS2M0,M2,N0,N1,N3,N4 6
TS3M0,M1,M3,M4,N0,N4 6
TS4M0,M4,N0,N1,N2,N5 6
TS5M0,M1,M2.M5,N0 5
任选项3:在偏移2TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0,N2 3
TS1M0,M1,M3,N0,N1,N3,N4 7
TS2M0,M2,N0,N4 4
TS3M0,M1,M3,M4,N0,N1,N2,N5 8
TS4M0,M4,N0 3
TS5M0,M1,M2,M5,N0,N1,N3 7
任选项4:在偏移3TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0,N1,N3,N4 5
TS1M0,M1,M3,N0,N4 5
TS2M0,M2,N0,N1,N2,N5 6
TS3M0,M1,M3,M4,N0 5
TS4M0,M4,N0,N1,N3 5
TS5M0,M1,M2,M5,N0,N1,N2 6
任选项5:在偏移4TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0,N4 3
TS1M0,M1,M3,N0,N1,N2,N5 7
TS2M0,M2,N0 3
TS3M0,MI,M3,M4,N0,N1,N3 7
TS4M0,M4,N0,N2 4
TS5M0,M1,M2,M5,N0,N1,N3,N4 8
任选6:在偏移5TS发送视频文件N 总的数据块
-----------------------------------------------------------------------------------
TS0M0,N0,N1,N2,N5 5
TS1M0,M1,M3,N0 4
TS2M0,M2,N0,N1,N3 5
TS3M0,M1,M3,M4,N0,N2 6
TS4M0,M4,N0,N1,N3,N4 6
TS5M0,M1,M2,M5,N0,N4 6
应用政策(1),任选项2、4和6具有在任何时隙期间发送的最小的数据块的最高的数量(即6个数据块)。应用政策(2),在这个示例的实施例中最佳的传送矩阵是任选项4,因为任选项4具有任何参考时隙的数据块加上附近时隙的数据块的最小的总数(即16个数据块)。因此,对于这个实施例,最好是,数据文件N的发送序列应该偏移三个时隙。在一个示例的实施例中,为每个频道服务器104产生一个三维传送矩阵。
当根据传送矩阵发送每个数据文件的数据块时,大量的预订客户机可以在随机时间访问该数据文件,并且该数据文件的适当的数据块对每个预订客户机是及时可用的。在上面提供的例子中,假定一个时隙的持续时间等于5秒,DOD系统100根据该最佳传送矩阵(即偏移数据文件N的传送序列三个时隙)以下面方式发送数据文件M和N的数据块:
时间00:00:00M0 N0 N1 N3 N4
时间00:00:05M0 M1 M3 N0 N4
时间00:00:10M0 M2 N0 N1 N2 N5
时间00:00:15M0 M1 M3 M4 N0
时间00:00:20M0 M4 N0 N1 N3
时间00:00:25M0 M1 M2 M5 N0 N2
时间00:00:30M0 N0 N1 N3 N4
时间00:00:35M0 M1 M3 N0 N4
时间00:00:40M0 M2 N0 N1 N2 N5
时间00:00:45M0 M1 M3 M4 N0
时间00:00:50M0 M4 N0 N1 N3
时间00:00:55M0 M1 M2 M5 N0 N2
如果在时间00:00:00,一个客户机A选择电影M,在客户机A的STB 300接收、存储、播放和拒绝数据块如下:
时间00:00:00接收M0 播放M0,存储M0.
时间00:00:05接收M1,M3播放M1,存储M0,M1,M3.
时间00:00:10接收M2 播放M2,存储M0,M1,M2,M3.
时间00:00:15接收M4 播放M3,存储M0,M1,M2,M3,M4.
时间00:00:20不接收 播放M4,存储M0,M1,M2,M3,M4.
时间00:00:25接收M5 播放M5,存储M0,M1,M2,M3,M4,M5.
如果在时间00:00:10,一个客户机B选择电影M,在客户机B的STB 300接收、存储、播放和拒绝数据块如下:
时间00:00:10接收M0,M2 播放M0,存储M0,M2.
时间00:00:15接收M1,M3,M4播放M1,存储M0,M1,M2,M3,M4.
时间00:00:20不接收 播放M2,存储M0,M1,M2,M3,M4.
时间00:00:25接收M5 播放M3,存储M0,M1,M2,M3,M4,M5.
时间00:00:30不接收 播放M4,存储M0,M1,M2,M3,M4,M5.
时间00:00:35不接收 播放M5,存储M0,M1,M2,M3,M4,M5.
如果在时间00:00:15,一个客户机C选择电影N,在客户机C的STB300接收、存储、播放和拒绝数据块如下:
时间00:00:15接收N0 播放N0,存储N0.
时间00:00:20接收N1 N3播放N1,存储N0,N1,N3.
时间00:00:25接收N2 播放N2,存储N0,N1,N2,N3.
时间00:00:30接收N4 播放N3,存储N0,N1,N2,N3,N4.
时间00:00:35不接收 播放N4,存储N0,N1,N2,N3,N4.
时间00:00:40接收N5 播放N5,存储N0,N1,N2,N3,N4,N5.
如果在时间00:00:30,一个客户机D也选择电影N,在客户机D的STB 300接收、存储、播放和拒绝数据块如下:
时间00:00:30接收N0,N1,N3,N4播放N0,存储N0,N1,N3,N4.
时间00:00:35不接收 播放N1,存储N0,N1,N3,N4.
时间00:00:40接收N2,N5 播放N2,存储N0,N1,N2,N3,N4,N5.
时间00:00:45不接收 播放N3,存储N0,N1,N2,N3,N4,N5.
时间00:00:50不接收 播放N4,存储N0,N1,N2,N3,N4,N5.
时间00:00:55不接收 播放N5,存储N0,N1,N2,N3,N4,N5.
正如上面的例子中所示,客户机的任何组合可以在随机的时间独立地选择并开始播放由服务提供商提供的任何数据文件。上面所指的“接收”有点令人误解为该系统始终在接收由该时隙确定的数据块的连续流,但是在任何给定点,正在接收的STB可能仅要求某些数据块,已经接收和存储其它接收的数据块。这个需要在上面被称为“接收”,但是可能更正确的是被称为“不拒绝”。因此,“接收M4”可以称为“除了M4外全部拒绝”,而“不接收”可以被更好地称为“全部拒绝”。
从上面所述的例子中可以理解的是,在一定的时隙期间,可用带宽未能得到充分的利用。特别是在至少一些时隙期间存在不发生传输的“空闲时间”。这个空闲时间是可用带宽的一种特有的无效使用。让我们以上面所述的任选项4为例子,其中在相应的时隙期间发送两个数据块。换句话说,在具有适用于发送六个数据块的带宽的时隙中,四个数据块传输期间仍然有空闲。虽然在任选项4中这不是严重的,当数据文件变称为数千个数据块大时,它变得更为激烈。即使采用最佳组合协议用于组合数据,可能仍然有较大的空的块空间部分。
这个空的块空间等于未被使用的带宽,因此是未被充分利用的带宽。本发明的一个目的是尽可能多地减少空闲时间,因此,本发明的一个实施例是在确定调度矩阵之后执行另一个步骤,在此处称为减少空闲时间调度矩阵。
减少空闲时间调度矩阵的一个示例模型可参照上述的六块调度矩阵来说明,但是为了方便在这里加以重复。为了清楚起见,在可以利用带宽发送数据块期间的空闲时间表示为“<-->:
TS0blk0,<-->,<-->,<-->
TS1blk0,blk1,blk3,<-->
TS2blk0,blk2,<-->,<-->
TS3blk0,blk1,blk3,blk4
TS4blk0,blk4,<-->,<-->
TS5blk0,blk1,blk2,blk5
这在图5中以图表形式示出。在大多数的时隙期间,调度矩阵清楚地具有以空闲时间形式的未使用带宽。本发明提出利用从时隙到时隙的恒定带宽减少这个空闲时间。通过恒定带宽利用来实现减少空闲传输时间的关键是一个条件,这些数据块的传送序列必须遵守,而传送数据块的准确时隙是不相关的,除非该数据块必须在它必须访问的时间前或者在该时间被接收。因此,根据由调度矩阵提出的传送序列和不考虑由该调度矩阵分配的时隙,通过在每个时隙内发送恒定数量的数据块,实现恒定带宽利用。
在上面详细描述的六块调度矩阵中,在TS0、TS1、TS2和TS4中有较大量的空闲时间。为了举例,假定该期望的恒定带宽对应于每个时隙四个数据块的传输。因此,通过向前移动数据块减少该空闲时间,直到四个数据块被调度用于在每个时隙期间传输。为此,该过程是按顺序取下一个数据块,并将它移动到空的空间。所以对于这个例子,在TS1中的第一块blk0被移到TS0。TS1中的下一块blk1也被上移。然后,由于TS0仍然具有空的数据块空间,来自TS1的blk3也被上移。然后TS0具有的所有空间被填充,现在看上去像是:
TS0blk0,blk0,blk1,blk3
现在TS1和TS2的大部分是空的,因此数据块从TS3往上移。一旦完成这个序列,该矩阵看上去像:
TS0blk0,blk0,blk1,blk3
TS1blk0,blk2,blk0,blk1
TS2blk3,blk4,blk0,blk4
TS3blk0,blk1,blk2,blk5
TS4
TS5
这也在图6中以图表示出。空的和不完全的时隙(如在这个例子中的TS4和TS5)简单地通过重复该初始序列而被填充,同时仍然填充该空闲时间。因此前六个时隙将呈现为:
TS0blk0,blk0,blk1,blk3
TS1blk0,blk2,bIk0,blk1
TS2blk3,blk4,blk0,blk4
TS3blk0,blk1,blk2,blk5
TS4blk0,blk0,blk1,blk3
TS5blk0,blk2,blk0,blk1
在这个序列中,下面的两个时隙TS6和TS7具有与TS2和TS3相同的数据块。因此通过这个过程实际上产生了新的、较短的调度矩阵,现在仅仅四个时隙长。图7的图表描述通过填充空闲时间产生的这个新的重复矩阵。
从在上面给出的例子中可以看出,只要遵循初始的次序,用户现在可以提前接收该数据文件,与初始的调度矩阵的及时传送不同。只要起始块blk0被接收,一个用户甚至可以进入系统中间的时隙和就开始使用该数据。
在这个方式中,时隙主要变成一种计算假定,因为该数据块变成连续的流,并且在该流的任何点用户可以转移到该系统上并开始接收数据。从图8中可以看到,这个附加的步骤是相对简单的步骤510,在该过程的末尾410处执行。
为了简单起见,图4至图10的说明涉及一个情况,在这里所选择的带宽被设置为一个常量,并等于整数个数据块。但是,该恒定带宽不需要等于整数个数据块。相反,只不过是要求传送序列遵守如图8中形成的序列。然后,由图8中形成的传送序列产生的数据流提供给下级硬件设备(例如网卡或者频道服务器),该设备控制数字数据的广播。该下级硬件设备在分配给该文件的带宽内将发送尽可能多的数据,而不是广播整数个数据块。
本领域技术人员可以理解的是,在传送序列的提取级别(abstractionlevel),不用担心实际的数据传输。相反,该传送矩阵提供该序列,该下级硬件设备利用分配的带宽控制数据的广播。因此包括数据块长度的一小部分的分配的带宽可以被充分地利用。一旦已经利用了该分配的带宽,该下级设备将暂停广播这个特定的数据文件,直到带宽再一次是可用的为止。
一般的操作
服务提供者可以在广播前调度并发送多个数据文件(例如视频文件)给频道服务器。中央控制服务器102计算并且发送三维传送矩阵(ID、时隙和数据块发送次序)给频道服务器104。在广播期间,频道服务器104参考该三维传送矩阵以适当的次序发送适当的数据块。每个数据文件被分成数据块,以使大量的预订客户机可以独立地开始连续地和按顺序在随机时间观看数据文件。数据文件的数据块长度取决于所选择的时隙的持续时间和该数据文件的数据流的比特率。例如,在恒定比特率的MPEG数据流中,每个数据块具有固定的长度:
块长度(兆字节)=比特率(Mb/s)×TS(秒)/8 (1)
在一个示例的实施例中,数据块长度被调节到频道服务器104的本机存储器208的下一个较高倍的存储器丛集长度。例如,如果根据上面的等式(1)计算的数据块长度是720K字节,则如果本机存储器208的丛集长度是64K字节,得到的数据块长度应该是768K字节。在这个实施例中,数据块应该进一步分成多个子块,每个子块具有与该丛集长度相同的长度。在这个例子中,该数据块具有十二个64K字节的子块。
子块可以进一步分解为数据分组。每个数据分组包含一个分组标题和分组数据。分组数据长度取决于每个频道服务器的CPU传送数据的物理层的最大传输单位(MTU)。在该优选实施例中,分组标题和分组数据的总长度应该小于该MTU。但是,为了使效率最大,分组数据长度应该尽可能长。
在一个示例的实施例中,分组标题中的数据包含允许预定客户机的STB 300解码任何所接收数据、及确定该数据分组是否属于所选择的数据文件的信息(例如协议特征标记,版本,ID或者分组类型信息)。分组标题也可能包含其它信息,诸如块/子块/分组数、分组长度、循环冗余校验(CRC)和子块中的偏移(offset)、以及/或者编码信息。
一旦频道服务器104收到了数据分组,它就被发送给QAM调制器206,在这里,另一个标题被加到该数据分组以产生QAM调制的中频(IF)输出信号。对于QAM调制器206的最大比特率输出取决于可用带宽。例如,对于具有6MHz带宽的QAM调制器206,最大的比特率是5.05(比特/码元)×6(MHz)=30.3兆位/秒。
QAM调制的中频信号被发送给上变频器106,以便被转换成适合于特定信道的RF信号(例如用于有线电视频道80,559.250MHz和6MHz带宽)。例如,如果有线网络具有高的带宽(或者比特率),每个信道可用于提供一个以上数据流,每个数据流占用一个虚拟的子信道。例如,三个MPEG1数据流可以适合使用QAM调制的6MHz信道。上变频器106的输出被施加到组合器/放大器108,它发送组合的信号给传输媒介110。
在一个示例的实施例中,用于发送“N”数据流的总的系统带宽(BW)是BW=N×bw,其中的bw是每个数据流要求的带宽。例如,三个MPEG-1数据流可以被同时由具有系统带宽为30.3兆位/秒的一个DOCSIS有线信道发送,因为每个MPEG-1数据流占用9兆位/秒的系统带宽。
通常,带宽被占用,而不管实际上访问该DOD服务的预订客户机的数量。因此,即使没有预订客户机正在使用DOD服务,带宽仍然被占用以保证该系统的点播(on-demand)能力。
STB 300一旦接通,就连续地接收和更新存储在STB 300的本机存储器308中的节目指南。在一个示例的实施例中,STB 300显示包括在电视屏幕上的最新的节目指南的数据文件信息。诸如视频文件信息的数据文件信息可以包括电影ID、电影名称、文字说明(以多种语言)、类别(例如动作片、儿童片)、分级(例如R级,PG13级)、有线公司政策(例如价格、免费预览的长度)、预定期间、电影海报和电影预览。在一个示例的实施例中,数据文件信息的发送是通过一个专用信道,诸如为固件更新、广告更新以及/或者应急信息而保留的信道。在另一个示例的实施例中,在由其它数据流共享的物理信道中发送信息。
预订客户机可以在电视屏幕上观看按类别排列的可用数据文件清单。当该客户机选择其中的一个可用数据文件时,STB 300控制它的硬件调谐到相应的物理信道以及/或者虚拟的子信道,以开始接收该数据文件的数据分组。STB 300检查每个数据分组标题,解码这些数据分组中的数据和确定是否应该保留所接收的数据分组。如果STB 300确定一个数据分组不应该保留,则丢弃该数据分组。否则,该分组数据被保存在本机存储器308中,用于以后的检索或者暂时存储在缓冲存储器309中直到它被发送给解码器312为止。
为了避免频繁地读/写本机存储器308以改善运行效率,在一个示例的实施例中,只要可能,STB 300就使用“滑动窗口”预期技术锁定预期数据块在存储缓冲器310中。如果在预期窗口中的命中(hit)发生,数据块直接从存储缓冲器310中被传送到解码器312。如果预期没有出现,在数据块从存储缓冲器310被传送至解码器312之前,从本机存储器308读这些数据块到存储缓冲器310。
在一个示例的实施例中,STB 300通过红外线(IR)遥控器之按键、红外线(IR)键盘或者包括按键的前面板按钮响应预订客户机的命令,以便暂停、慢动作播放、回放、放大和单步执行。在一个示例的实施例中,如果预订客户机在预定的时间期间不输入任何操作(例如滚动节目菜单或者选择类别或电影),则自动地播放预定的广告节目。当预订客户机提供一个操作(例如按遥控器上的一个按键)时,自动地停止预定的广告节目。在另一个示例的实施例中,STB 300可以在播放视频期间自动地插入广告节目。服务提供者(例如有线公司)可以建立价格策略,规定广告节目应该中断正在播放的视频的频繁程度。
如果在数据分组标题中发现应急信息比特,STB 300暂停任何数据接收操作并且控制它的硬件调谐在为接收数据文件信息而保留的频道,以获得任何紧急事件信息并解码,及在输出屏幕上显示该信息。在一个示例的实施例中,当STB 300是空闲时,它被调谐到为接收数据文件信息而保留的频道,并且始终准备好接收任何应急信息和立刻进行显示。
前面的例子说明本发明的一些示例的实施例,本领域技术人员从这些示例的实施例中可以清楚地理解其它实施例、变化和修改。因此本发明不限于在上面讨论的特定实施例,而是由权利要求来限定。
附录A
减少空闲时间和恒定带宽的数据点播广播传送矩阵
以下是图4所示之示例过程的逐步描述,该过程用于为具有6个数据块的数据文件产生调度矩阵:
开始
(步骤402)接收数据文件的多个数据块(x);假设数据块之数量等于6(x=6)。
(步骤404)设j=0
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(0<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[0]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括任何内容,因为它是空的。将blk0写到SM中的位置[0,0]和RA。
(步骤424)i加1(i=1),以得出对位置[1,0]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[1]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk1?
(步骤422)RA不包括blk1。将blk1写到SM中的位置[1,0]和RA。
(步骤424)i加1(i=2),以得出对位置[2,0]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[2]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk2?
(步骤422)RA不包括blk2。将blk2写到SM中的位置[2,0]和RA。
(步骤424)i加1(i=3),以得出对位置[3,0]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[3]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk3?
(步骤422)RA不包括blk3。将blk3写到SM中的位置[3,0]和RA。
(步骤424)i加1(i=4),以得出对位置[4,0]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[4]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk4?
(步骤422)RA不包括blk4。将blk4写到SM中的位置[4,0]和RA。
(步骤424)i加1(i=5),以得出对位置[5,0]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[5]之矩阵位置并写到RA;最初,SM是空的,所以没有什么写到RA。
(步骤420)RA包含数据块i或blk5?
(步骤422)RA不包括blk5。将blk5写到SM中的位置[5,0]和RA。
(步骤424)i加1(i=6)。返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=1)。返回步骤406。
————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(1<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[1]之矩阵位置并写到RA;位置[1,0]包括blk1;因此blk1被写到RA。所有其它位置为空。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括blk0。将blk0写到SM中的位置[1,1]和RA。RA现在具有blk1和blk0。
(步骤424)i加1(i=1),以得出对位置[2,1]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[2]之矩阵位置并写到RA。位置[2,0]包括blk2。所有其它位置为空。RA现在具有blk1、blk0和blk2。
(步骤420)RA包含数据块i或blk1?
(步骤424)RA包括blk1。因此,没有内容写到位置[2,1]。i加1(i=2),以得出对位置[3,1]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[3]之矩阵位置并写到RA。位置[3,0]包括blk3。所有其它位置为空。RA现在具有blk1、blk0、blk2和blk3。
(步骤420)RA包含数据块i或blk2?
(步骤424)RA包括blk2。因此,没有内容写到位置[3,1]。i加1(i=3),以得出对位置[4,1]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[4]之矩阵位置并写到RA。位置[4,0]包括blk4。所有其它位置为空。RA现在具有blk1、blk0、blk2、blk3和blk4。
(步骤420)RA包含数据块i或blk3?
(步骤424)RA包括blk3。因此,没有内容写到位置[4,1]。i加1(i=4),以得出对位置[5,1]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[5]之矩阵位置并写到RA。位置[5,0]包括blk5。所有其它位置为空。RA现在具有blk1、blk0、blk2、blk3、blk4和blk5。
(步骤420)RA包含数据块i或blk4?
(步骤424)RA包括blk4。因此,没有内容写到位置[5,1]。i加1(i=5),以得出对位置[0,1]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[0]之矩阵位置并写到RA。位置[0,0]包括blk0。所有其它位置为空。RA已包含blk0,因此blk0被放弃。
(步骤420)RA包含数据块i或blk5?
(步骤424)RA包括blk5。因此,没有内容写到位置[0,1]。i加1(i=6),返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=2)。返回步骤406。
————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(2<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[2]之矩阵位置并写到RA。位置[2,0]包括blk2。所有其它位置为空。RA现在具有blk2。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括blk0。将blk0写到SM中的位置[2,2]和RA。RA现在具有blk2和blk0。
(步骤424)i加1(i=1),以得出对位置[3,2]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[3]之矩阵位置并写到RA。位置[3,0]包括blk3。所有其它位置为空。RA现在具有blk2、blk0和blk3。
(步骤420)RA包含数据块i或blk1?
(步骤422)RA不包括blk1。将blk1写到SM中之位置[3,2]和RA。RA现在具有blk2、blk0、blk3和blk1。
(步骤424)i加1(i=2),以得出对位置[4,2]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[4]之矩阵位置并写到RA。位置[4,0]包括blk4。所有其它位置为空。RA现在具有blk2、blk0、blk3、blk1和blk4。
(步骤420)RA包含数据块i或blk2?
(步骤424)RA包括blk2。因此,没有内容写到位置[4,2]。i加1(i=3),以得出对位置[5,2]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[5]之矩阵位置并写到RA。位置[5,0]包括blk5。所有其它位置为空。RA现在具有blk2、blk0、blk3、blk1、blk4和blk5。
(步骤420)RA包含数据块i或blk3?
(步骤424)RA包括blk3。因此,没有内容写到位置[5,2]。i加1(i=4),以得出对位置[0,2]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[0]之矩阵位置并写到RA。位置[0,0]包括blk0。所有其它位置为空。RA已包含blk0;因此blk0被放弃。
(步骤420)RA包含数据块i或blk4?
(步骤424)RA包括blk4。因此,没有内容写到位置[0,2]。i加1(i=5),以得出对位置[1,2]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[1]之矩阵位置并写到RA。位置[1,0]包括blk1,位置[1,1]包括blk0。RA已包含blk1和blk0,因此blk1和blk0被放弃。所有其它位置为空。
(步骤420)RA包含数据块i或blk5?
(步骤424)RA包括blk5。因此,没有内容写到位置[1,2]。i加1(i=6),返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=3)。返回步骤406。
————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(3<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[3]之矩阵位置并写到RA。位置[3,0]包括blk3,位置[3,2]包括blk1。Blk3和blk1被写到RA。所有其它位置为空。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括blk0。将blk0写到SM中的位置[3,3]和RA。RA现在具有blk3、blk1和blk0。
(步骤424)i加1(i=1),以得出对位置[4,3]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[4]之矩阵位置并写到RA。位置[4,0]包括blk4。所有其它位置为空。RA现在具有blk3、blk1、blk0和blk4。
(步骤420)RA包含数据块i或blk1?
(步骤424)RA包括blk1。因此,没有内容被写到位置[4,3]。i加1(i=2),以得出对位置[5,3]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[5]之矩阵位置并写到RA。位置[5,0]包括blk5。所有其它位置为空。RA现在具有blk3、blk1、blk0、blk4和blk5。
(步骤420)RA包含数据块i或blk2?
(步骤422)RA不包括blk2。将blk2写到SM中的位置[5,3]和RA。RA现在具有blk3、blk1、blk0、blk4、blk5和blk2。
(步骤424)i加1(i=3),以得出对位置[0,3]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[0]之矩阵位置并写到RA。位置[0,0]包括blk0。所有其它位置为空。RA已包含blk0,因此放弃blk0。
(步骤420)RA包含数据块i或blk3?
(步骤424)RA包括blk3。因此,没有内容写到位置[0,3]。i加1(i=4),以得出对位置[1,3]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[1]之矩阵位置并写到RA。位置[1,0]包括blk1,位置[1,1]包括blk0。所有其它位置为空。RA已包含blk1和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk4?
(步骤424)RA包括blk4。因此,没有内容写到位置[1,3]。i加1(i=5),以得出对位置[2,3]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[2]之矩阵位置并写到RA。位置[2,0]包括blk2,位置[2,2]包括blk0。所有其它位置为空。RA已包含blk2和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk5?
(步骤424)RA包括blk5。因此,没有内容写到位置[2,3]。i加1(i=6)。返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=4)。返回步骤406。
———————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(4<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[4]之矩阵位置并写到RA。位置[4,0]包括blk4。Blk4被写到RA。所有其它位置为空。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括blk0。将blk0写到SM中的位置[4,4]和RA。RA现在具有blk4和blk0。
(步骤424)i加1(i=1),以得出对位置[5,4]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[5]之矩阵位置并写到RA。位置[5,0]包括blk5,位置[5,3]包括blk2。所有其它位置为空。RA现在具有blk4、blk0、blk5和blk2。
(步骤420)RA包含数据块i或blk1?
(步骤422)RA不包括blk1。将blk1写到SM的位置[5,4]和RA。RA现在具有blk4、blk0、blk5、blk2和blk1。
(步骤424)i加1(i=2),以得出对位置[0,4]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[0]之矩阵位置并写到RA。位置[0,0]包括blk0。所有其它位置为空。RA已具有blk0;因此,不写一个重复的复制品。
(步骤420)RA包含数据块i或blk2?
(步骤424)RA包括blk2。i加1(i=3),以得出对位置[1,4]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[1]之矩阵位置并写到RA。位置[1,0]包括blk1和位置[1,1]包括blk0。所有其它位置为空。RA已包含blk1和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk3?
(步骤422)RA不包括blk3。因此,将blk3写到SM的位置[1,4]和RA。RA现在具有blk4、blk0、blk5、blk2、blk1和blk3。
(步骤424)i加1(i=4),以得出对位置[2,4]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[2]之矩阵位置并写到RA。位置[2,0]包括blk2,位置[2,2]包括blk0。所有其它位置为空。RA已包含blk2和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk4?
(步骤424)RA包括blk4。因此,没有内容写到位置[2,4]。i加1(i=5),以得出对位置[3,4]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[3]之矩阵位置并写到RA。位置[3,0]包括blk3,位置[3,2]包括blk1,位置[3,3]包括blk0。所有其它位置为空。RA已包含blk3、blk1和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk5?
(步骤424)RA包括blk5。因此,没有内容写到位置[3,4]。i加1(i=6)。返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=5)。返回步骤406。
————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x
(步骤412)j小于x(5<6),设i=0
(步骤414)比较i与x
(步骤418)i小于x(0<6)。读SM中列[5]之矩阵位置并写到RA。位置[5,0]包括blk5,位置[5,3]包括blk2,位置[5,4]包括blk1。Blk5、blk2和blk1被写到RA。所有其它位置为空。
(步骤420)RA包含数据块i或blk0?
(步骤422)RA不包括blk0。将blk0写到SM中的位置[5,5]和RA。RA现在具有blk5、blk2、blk1和blk0。
(步骤424)i加1(i=1),以得出对位置[0,5]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(1<6)。读SM中列[0]之矩阵位置并写到RA。位置[0,0]包括blk0,所有其它位置为空。RA现在具有blk5、blk2、blk1和blk0。
(步骤420)RA包含数据块i或blk1?
(步骤424)RA包括blk1。i加1(i=2),以得出对位置[1,5]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(2<6)。读SM中列[1]之矩阵位置并写到RA。位置[1,0]包括blk1,位置[1,1]包括blk0,位置[1,4]包括blk3。所有其它位置为空。RA已包含blk0和blk1;因此,不写一个重复的复制品。将blk3写到RA。RA现在具有blk5、blk2、blk1、blk0和blk3。
(步骤420)RA包含数据块i或blk2?
(步骤424)RA包括blk2。i加1(i=3),以得出对位置[2,5]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(3<6)。读SM中列[2]之矩阵位置并写到RA。位置[2,0]包括blk2和位置[2,2]包括blk0。所有其它位置为空。RA已包含blk2和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk3?
(步骤424)RA包括blk3。i加1(i=4),以得出对位置[3,5]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(4<6)。读SM中列[3]之矩阵位置并写到RA。位置[3,0]包括blk3,位置[3,2]包括blk1,位置[3,3]包括blk0。所有其它位置为空。RA已包含blk3、blk1和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk4?
(步骤422)RA不包括blk4。将blk4写到SM的位置[3,5]。RA现在具有blk5、blk2、blk1、blk0、blk3和blk4。
(步骤424)i加1(i=5),以得出对位置[4,5]的值。返回步骤414。
(步骤414)比较i与x
(步骤418)i小于x(5<6)。读SM中列[4]之矩阵位置并写到RA。位置[4,0]包括blk4,位置[4,4]包括blk0。所有其它位置为空。RA已包含blk4和blk0;不写重复的复制品。
(步骤420)RA包含数据块i或blk5?
(步骤422)RA包括blk5。因此,没有内容写到位置[3,4]。
(步骤424)i加1(i=6)。返回步骤414。
(步骤414)比较i与x
(步骤416)i等于x(6=6)。j加1(j=6)。返回步骤406。
————————————————————————————
(步骤406)清除参考阵列(RA)
(步骤408)比较j与x。
(步骤410)j等于x(6=6);结束。
Claims (34)
1、一种计算机实现的通用广播方法,包括准备传送矩阵的步骤,该传送矩阵定义一数据传输序列,该数据传输序列适用于以非特定客户机方式向多个客户机广播点播数据文件,由此传输所述点播数据文件所需要的传输带宽量与所述多个客户机的数量无关,其中,准备传送矩阵的步骤包括以下步骤:
准备适合于第一数据文件之传输的第一调度矩阵,所述第一数据文件由第一多个数据块表示,所述第一调度矩阵提供一第一序列,用于在时隙内按顺序发送所述第一多个数据块,所采用的方式使得根据所述第一调度矩阵接收所述第一数据文件之传输的任何客户机可以在一个时隙内开始访问所述第一数据文件。
2、根据权利要求1的计算机实现的通用广播方法,其中,所述第一调度矩阵是恒定带宽调度矩阵。
3、根据权利要求2的计算机实现的通用广播方法,其中,来自所述第一多个数据块的恒定的数据量被调度用于在分配带宽期间传输。
4、根据权利要求3的计算机实现的通用广播方法,其中,在分配带宽期间之传输的控制由下级硬件设备执行。
5、根据权利要求2的计算机实现的通用广播方法,其中,所述第一调度矩阵是一个可变带宽的调度矩阵。
6、一种计算机实现的方法,用于产生恒定带宽的、减小空闲时间的调度矩阵,适用于传送非特定客户机格式的点播数据,所述方法包括以下步骤:
产生适用于第一数据文件之传输的一个调度矩阵,所述第一数据文件由第一多个数据块表示,所述第一调度矩阵提供用于在时隙内按顺序发送所述第一多个数据块的第一序列,所采用的方式使得根据所述第一调度矩阵接收所述第一数据文件之传输的任何客户机可以在一个时隙内开始访问所述第一数据文件;
确定期望的恒定传输带宽,其中,所述的恒定带宽然后被用于根据所述第一调度矩阵的次序顺序地流动所述数据块。
7、一种控制通用机顶盒的计算机实现的方法,所述方法包括以下步骤:
接收多个频道中的数字数据和表示在所述多个频道之每一频道中发送的数据之性质的电子节目指南,其中,所述多个频道的第一频道包括以非特定客户机格式提供点播数据的点播数据节目,表示所述点播数据节目的所述电子节目指南包括由第一多个数据块表示的第一数据文件,所述第一多个数据块在时隙内按顺序被提供,所采用的方式使得所述通用机顶盒的用户可以在任何时候开始、在一个时隙内访问所述第一数据文件;
提供所述电子节目指南数据给所述通用机顶盒的所述用户;
从要求访问所述第一数据文件的所述通用机顶盒的所述用户接收数据处理指令;和
实现来自所述通用机顶盒的所述用户的所述指令。
8、根据权利要求7的计算机实现的方法,其中,实现来自所述通用机顶盒的所述用户的指令的所述步骤包括以下子步骤:
调谐所述机顶盒至所述第一频道,以便选择由所述用户请求的数据;
处理接收的所述第一多个数据块,所述处理包括下面的至少一个处理:
解码所述接收的数据块;
解压缩所述接收的数据块;
当需要时重编所述接收的数据块;和
将所述接收的数据块存储在所述机顶盒内的本机存储器中;以及
提供所述第一数据文件给由所述通用机顶盒的所述用户选择的输出设备。
9、根据权利要求8的计算机实现的方法,其中所述输出设备是一个电视机。
10、根据权利要求8的计算机实现的方法,其中所述输出设备是一个显示监视器。
11、根据权利要求8的计算机实现的方法,其中所述输出设备是一个盒式磁带录像机。
12、根据权利要求8的计算机实现的方法,其中所述输出设备是一个计算机系统。
13、根据权利要求7的计算机实现的方法,其中,所述第一多个数据块是以恒定带宽的方式被提供的,在每个时隙期间接收恒定数量的数据块。
14、一种计算机实现的通用数据广播方法,包括以下步骤:
在通用数据广播系统中执行以下步骤:
准备定义一数据传输序列的传送矩阵,该数据传输序列适用于以非特定客户机方式向多个客户机广播点播数据文件,由此传输所述点播数据文件所要求的传输带宽量与所述多个客户机之数量无关;
提供适用于通过第一频道传输点播数据的第一频道服务器;
在数据广播前,准备用于传输点播数据信息的所述第一频道服务器,所述准备所述第一频道服务器包括步骤:检索所述传送矩阵到所述第一频道服务器的存储器中,和检索由所述传送矩阵调度并用于传送的数据块到所述第一频道服务器的所述存储器中;
发送电子节目指南,其中包括指示所述第一频道包含点播数据的信息;和
发送来自所述第一频道和所述第二频道的数据;以及
在通用机顶盒中执行以下步骤:
接收数字数据,其中包括在所述第一频道中的数据和所述电子节目指南;
提供所述电子节目指南数据给所述通用机顶盒的用户;
接收来自所述通用机顶盒的所述用户的数据处理指令;和
执行来自所述通用机顶盒的所述用户的所述指令。
15、根据权利要求14的计算机实现的通用数据广播方法,其中,产生传送矩阵的步骤包括以下步骤:
准备适用于第一数据文件之传输的第一调度矩阵,所述第一数据文件由第一多个数据块表示,所述第一调度矩阵提供在时隙内按顺序发送所述第一多个数据块的第一序列,所采用的方式使得根据所述第一调度矩阵接收所述第一数据文件之传输的任何客户机可以在一个时隙内开始访问所述第一数据文件。
16、根据权利要求15的计算机实现的通用数据广播方法,其中,所述第一调度矩阵是恒定带宽调度矩阵。
17、根据权利要求16的计算机实现的通用数据广播方法,其中,恒定数量的所述第一多个数据块被调度用于在每个时隙期间的传输。
18、根据权利要求15的计算机实现的通用数据广播方法,其中,所述第一调度矩阵是一个可变带宽调度矩阵。
19、一种用于发送数据文件的方法,包括以下步骤:
将一个数据文件划分成多个数据块;
确定用于发送所述多个数据块的次序,所述确定用于发送所述多个数据块的次序的步骤包括以下子步骤:
a)设置第一变量为零;
b)清除参考阵列;
c)比较所述第一变量与所述多个数据块的总数;
d)如果所述第一变量小于所述多个数据块的总数,则设置第二变量为零;
e)比较所述第二变量与所述多个数据块的总数;
f)如果所述第二变量小于所述多个数据块的总数,将存储在调度矩阵的一列中的一个或多个存储数据块写入所述参考阵列,由[(i+j)mod(x)]确定所述列,其中i是所述第二变量,j是所述第一变量,而x是所述多个数据块;
g)如果所述参考阵列已经具有所述存储数据块的至少一个数据块,则不写第二副本;
h)检查所述参考阵列是否包含对应于所述第二变量的一块;
i)如果所述参考阵列不包含对应于所述第二变量的所述数据块,则所述数据块被加到所述参考阵列和所述调度矩阵,其位置是在所述矩阵中等于[(i+j)mod(x),j]之位置,并且所述第二变量递增1;
j)如果所述参考阵列包含对应于所述第二变量的所述数据块,则所述第二变量递增1;
k)重复步骤g)至k),直到所述第二变量等于所述数据块的总数;
l)所述第一变量递增1;
m)重复步骤c)至m),直到所述第一变量等于所述数据块的总数;和
n)重新配置所述调度矩阵为一个流;以及
根据所述次序,发送所述多个数据块;
其中,所述次序在一媒介上及在重发信号中发送,该媒介具有分配给所述数据文件的带宽,其中所述带宽由所述重发信号完全地使用。
20、根据权利要求19的用于发送数据文件的方法,其中,重新配置所述调度矩阵为一个流的所述步骤包括确定分配给所述数据文件的所述带宽的大小。
21、根据权利要求20的用于发送数据文件的方法,其中,确定分配给所述数据文件的所述带宽的大小使所述带宽最小化。
22、根据权利要求20的用于发送数据文件的方法,其中,确定分配给所述数据文件的所述带宽的大小使所述带宽最大化。
23、一种数据传送系统,具有从根据权利要求19中的用于发送数据文件的方法得到的多个数据传送流,其中,所述数据文件包括多个不同的数据文件。
24、一种传输点播数据文件的计算机实现的方法,包括以下步骤:
准备一个传送矩阵,该传送矩阵定义重发数据传输序列,适用于在媒介上向多个客户机以非特定方式广播;
其中,准备所述传送矩阵的所述步骤进一步包括:将数据文件分解为具有至少第一块的数据块,和将所述数据块安排为一个所述重发数据传输序列;
其中,当所述第一块被收到时,用户就可以接收所述重发数据传输序列,并且开始以不间断的方式使用所述数据文件;
其中,所述重发数据传输序列要求一个预先确定的带宽,另外在其中,在所述重发数据传输序列的传输中有非最小的空闲时间;和
由此传输所述点播数据文件所需要的传输带宽量与所述多个客户机的数量无关。
25、根据权利要求24的用于传输点播数据文件的计算机实现的方法,其中,所述重发数据传输序列转换成一个新的减少空闲时间的调度矩阵。
26、根据权利要求24的用于传输点播数据文件的计算机实现的方法,其中,所述数据传输序列具有恒定带宽。
27、根据权利要求26的用于传输点播数据文件的计算机实现的方法,其中,恒定数量的所述数据块被调度用于在每个时隙期间的传输。
28、根据权利要求26的用于传输点播数据文件的计算机实现的方法,其中,所述数据传输序列具有可变带宽。
29、一种计算机实现的通用数据广播方法,包括以下步骤:
准备传送矩阵,该传送矩阵定义数据传输序列,适用于以非特定客户机方式向多个客户机广播点播数据,由此传输所述点播数据文件所需要的传输带宽量与所述多个客户机的数量无关,其中,所述适量的传输带宽的使用被充分地优化;
提供第一频道服务器,它适用于通过第一频道传输点播数据;
在数据广播前,准备所述第一频道服务器用于传输点播数据信息,所述准备所述第一频道服务器包括步骤:检索所述传送矩阵到所述第一频道服务器的存储器中,和检索由所述传送矩阵调度并用于传送的数据块到所述第一频道服务器的所述存储器中;
发送电子节目指南,其中包括指示所述第一频道包含点播数据的信息;和
发送来自所述第一频道和所述第二频道的数据;
及,在一个通用机顶盒中,执行以下步骤:
接收数字数据,其中包括在所述第一频道中的数据和所述电子节目指南;
提供所述电子节目指南数据给所述通用机顶盒的用户;
接收来自所述通用机顶盒的所述用户的数据处理指令;和
执行来自所述通用机顶盒的所述用户的所述指令。
30、根据权利要求29的计算机实现的通用数据广播方法,其中,产生传送矩阵的步骤包括以下步骤:
准备适用于第一数据文件之传输的第一调度矩阵,所述第一数据文件由第一多个数据块表示,所述第一调度矩阵提供一个第一序列,用于在时隙内按顺序发送所述第一多个数据块,所采用的方式使得根据所述第一调度矩阵接收所述第一数据文件之传输的任何客户机可以在一个时隙内开始访问所述第一数据文件。
31、根据权利要求30的计算机实现的通用数据广播方法,其中,所述第一调度矩阵是恒定带宽调度矩阵。
32、根据权利要求31的计算机实现的通用数据广播方法,其中,恒定数量的所述第一多个数据块被调度用于在每个时隙期间的传输。
33、根据权利要求29的计算机实现的通用数据广播方法,其中,所述第一调度矩阵是一个可变带宽调度矩阵。
34、一种计算机实现的方法,用于产生恒定带宽、减小空闲时间的调度矩阵,适用于以非特定客户机格式传送点播数据,所述方法包括以下步骤:
产生适用于第一数据文件之传输的第一调度矩阵,所述第一数据文件由第一多个数据块表示,所述第一调度矩阵提供一个第一序列,用于在时隙内按顺序发送所述第一多个数据块,所采用的方式使得根据所述第一调度矩阵接收所述第一数据文件之传输的任何客户机可以在一个时隙内开始访问所述第一数据文件;
确定一个期望的恒定传输带宽,其中,所述恒定带宽是由每个时隙所传输的、被限定之恒定数量的数据块来定义的;和
对于下一个时隙,按顺序选择多个数据块用于传输,这些数据块等于所限定之恒定数量的数据块,一旦数据块的整个第一序列已经被调度用于传输,循环回到数据块的所述第一序列的开始,其中,所述恒定带宽的使用被充分优化。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/709,948 | 2000-11-10 | ||
US09/709,948 US6725267B1 (en) | 2000-05-31 | 2000-11-10 | Prefetched data in a digital broadcast system |
US09/841,792 | 2001-04-24 | ||
US09/841,792 US20020023267A1 (en) | 2000-05-31 | 2001-04-24 | Universal digital broadcast system and methods |
US09/892,017 US20020026501A1 (en) | 2000-05-31 | 2001-06-25 | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices |
US09/892,017 | 2001-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1393108A CN1393108A (zh) | 2003-01-22 |
CN1203675C true CN1203675C (zh) | 2005-05-25 |
Family
ID=27418871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018030440A Expired - Fee Related CN1203675C (zh) | 2000-11-10 | 2001-06-27 | 减少空闲时间和恒定带宽的数据点播广播传送矩阵 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1340376A1 (zh) |
JP (1) | JP2004514336A (zh) |
CN (1) | CN1203675C (zh) |
AU (1) | AU2001271600A1 (zh) |
CA (1) | CA2428829A1 (zh) |
HK (1) | HK1053402B (zh) |
WO (1) | WO2002039744A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060146780A1 (en) * | 2004-07-23 | 2006-07-06 | Jaques Paves | Trickmodes and speed transitions |
KR101453131B1 (ko) | 2007-12-14 | 2014-10-27 | 톰슨 라이센싱 | 가변 대역폭 채널을 통한 동시송출을 위한 장치 및 방법 |
KR101453132B1 (ko) | 2007-12-18 | 2014-10-27 | 톰슨 라이센싱 | 브로드캐스트 네트워크들을 통한 파일 사이즈 추정 장치 및 방법 |
CN107707490B (zh) * | 2017-09-26 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种带宽控制方法、装置及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003071A (en) * | 1994-01-21 | 1999-12-14 | Sony Corporation | Image data transmission apparatus using time slots |
US5757415A (en) * | 1994-05-26 | 1998-05-26 | Sony Corporation | On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means |
US5930493A (en) * | 1995-06-07 | 1999-07-27 | International Business Machines Corporation | Multimedia server system and method for communicating multimedia information |
US5850218A (en) * | 1997-02-19 | 1998-12-15 | Time Warner Entertainment Company L.P. | Inter-active program guide with default selection control |
-
2001
- 2001-06-27 JP JP2002542135A patent/JP2004514336A/ja not_active Withdrawn
- 2001-06-27 EP EP01950629A patent/EP1340376A1/en not_active Withdrawn
- 2001-06-27 AU AU2001271600A patent/AU2001271600A1/en not_active Abandoned
- 2001-06-27 CA CA002428829A patent/CA2428829A1/en not_active Abandoned
- 2001-06-27 WO PCT/US2001/020679 patent/WO2002039744A1/en not_active Application Discontinuation
- 2001-06-27 CN CNB018030440A patent/CN1203675C/zh not_active Expired - Fee Related
-
2003
- 2003-07-22 HK HK03105263.6A patent/HK1053402B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2004514336A (ja) | 2004-05-13 |
HK1053402A1 (en) | 2003-10-17 |
CN1393108A (zh) | 2003-01-22 |
WO2002039744A1 (en) | 2002-05-16 |
AU2001271600A1 (en) | 2002-05-21 |
EP1340376A1 (en) | 2003-09-03 |
HK1053402B (zh) | 2006-01-13 |
CA2428829A1 (en) | 2002-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1190081C (zh) | 发送和接收动态图像数据的方法及其设备 | |
CN1192610C (zh) | 记录/回放装置、记录/回放方法和记录媒体 | |
CN1220359C (zh) | 通信终端、服务器、广播通信系统及方法 | |
CN1166143C (zh) | 用于媒体数据传输的方法和装置 | |
CN1166142C (zh) | 用于媒体数据传输的方法和装置 | |
CN1112043C (zh) | 视频优化的媒体分流器 | |
CN1169368C (zh) | 终端装置和用于终端装置的还原方法 | |
CN1714577A (zh) | 视频传输 | |
CN1725844A (zh) | 数字媒体流的反向表示 | |
CN1787422A (zh) | 用于控制流媒体数据的编码比特率的系统和过程 | |
CN1788259A (zh) | 内容提供服务器、信息处理设备和方法以及计算机程序 | |
CN1636400A (zh) | 运动图像分配系统、运动图像分配设备及方法、记录介质及程序 | |
CN1795672A (zh) | 信息处理装置和信息处理方法及计算机程序 | |
CN1277770A (zh) | 数据发送控制方法、数据发送方法和设备以及接收设备 | |
CN1833230A (zh) | 网络音频及视频系统 | |
CN1122985A (zh) | 具有分布式视频数据存储的视频优化的媒体流分送器 | |
CN1178508C (zh) | 数据收发系统及其方法 | |
CN1658665A (zh) | 存储器管理方法、图像处理设备和存储器管理程序 | |
CN1856069A (zh) | 通信系统、记录装置和方法、记录介质和程序 | |
CN1216492C (zh) | 广播装置和广播方法 | |
CN100341318C (zh) | 存储型接收装置 | |
CN1258271C (zh) | 数字广播接收设备 | |
CN1248131A (zh) | 电视节目广播系统 | |
CN1754385A (zh) | 图像数据发布控制方法及装置、系统以及程序 | |
CN1203675C (zh) | 减少空闲时间和恒定带宽的数据点播广播传送矩阵 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050525 |