CN100484237C - 利用预取数据传输的数据点播数字广播*** - Google Patents
利用预取数据传输的数据点播数字广播*** Download PDFInfo
- Publication number
- CN100484237C CN100484237C CNB021183236A CN02118323A CN100484237C CN 100484237 C CN100484237 C CN 100484237C CN B021183236 A CNB021183236 A CN B021183236A CN 02118323 A CN02118323 A CN 02118323A CN 100484237 C CN100484237 C CN 100484237C
- Authority
- CN
- China
- Prior art keywords
- data
- matrix
- data block
- bandwidth
- transmission
- 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
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种将数据文件减少为数据块的降低闲时规划矩阵的方法和***。生成规划矩阵,用后出现于该矩阵中的数据块来填充闲时,保持数据块的原始序列。之后重复,或同样生成新的降低闲时规划矩阵。接着描述可接收这些数据块的特别指定的机顶盒。在最佳实施例中,该机顶盒可存储增加带宽节省的连续广播和最优化预加载流。
Description
技术领域
视频点播(VOD)是一种数据点播(DOD)***。在VOD***中,服务器或服务器网络根据请求将视频数据文件提供给一个或多个客户。对于本领域的技术人员而言,这些***是公知的。
背景技术
在常规的VOD结构中,服务器或服务器网络按照标准的分级客户-服务器模式与客户进行通信。例如,客户向服务器发出数据文件(例如视频数据文件)的请求。服务器响应该客户请求,向客户发送被请求的文件。在该标准客户-服务器模式中,客户的数据文件的请求可由一个或多个服务器来完成。客户可以在本地将任何接收到的数据文件存储在非易失性存储器中,以便以后使用。标准客户-服务器模式要求双向通信基本结构。当前,双向通信需要构筑新的基本结构,因为现有的电缆仅能提供单向通信。双向通信基本结构的例子有混合光纤光学同轴电缆(HFC)或所有光纤基本结构。代替现有的电缆的成本高,大部分用户可能无法负担因而产生的服务。
另外,当服务提供商(例如电缆公司)试图向大多数客户提供VOD服务器,标准客户-服务器模式具有许多局限。标准客户-服务器模式的一个局限是服务提供商必须实现连接收听和完成来自网络中每个客户的每个请求的设备;因此,可接收服务的客户的数量依赖于这种设备的容量。一个设备如本地服务器那样使用具有大且快的盘阵列的整体串联计算机。但是,即使最快的现有本地服务器也只能一次向约1000至2000客户传送视频数据流。这样,为了服务更多客户,必须增加本地服务器的数量。增加的本地服务器要求更多的更高级服务器来保持本地服务器的控制。
常规***的另一局限在于接收机顶盒(STB)在开始服务前必须下载被选取的VOD服务的至少一部分。要求下载足够的数据以便开始被选取的VOD的延迟即使具有非常高的下载速度也是显著的。
标准客户-服务器模式的再一局限在于每个客户都要求自身的带宽。这样,所需的总带宽正好与预订客户的数量成正比。本地服务器中的高速缓冲存储器已被用来提高带宽局限,但因为高速缓冲存储器也被限制,所以使用高速缓冲存储器不能解决上述问题。
目前,为了让客户负担得起更多的视频广播服务,现有的服务提供商将每本地服务器的客户比率提高到本地服务器能力之上。典型地,可向1000个客户提供服务的一本地服务器实际上被用来服务于10000个客户。如果大部分预订客户未同时订购视频,则该技术可发挥作用。但是由于大部分客户可能想在同一时间(例如晚上或周末)观看视频,所以该技术注定是失败的,因此,导致本地服务器超载。
因此,期望提供一种***,可不代替现有的基本结构,实际上通过任何传输介质,没有显著延迟地向大多数客户提供点播服务
发明内容
本发明公开通过现有的DOD***利用减少的访问时间来提供点播数据(DOD)服务的***和方法。本发明还公开通过降低的带宽来提供DOD服务的***和方法。
在例举的实施例中,在服务器侧,向客户发送数据以提供点播数据服务的方法包括以下步骤:提供含有包括被选择的DOD服务数据的数据块的降低闲时线性序列;从所述数据块的降低闲时序列中去除最频繁发生的数据块;将所述去除的最频繁发生的数据块放置在预取数据流中,以便所述预取数据流包括对应于所述被选择DOD服务的预取数据块;通过所述传输介质来传输所述预取数据流;和通过所述传输介质来传输所述数据块的其余降低闲时序列,以便接收服务可将所述数据块的其余降低闲时序列与所述预取数据块相结合,生成所述被选择的DOD服务,因此,可降低传输所述DOD服务所需的带宽。该DOD广播服务器方法可进一步包括:从所述数据块的降低闲时序列中去除多个附加的数据块;将所述多个附加的数据块的至少一个放置在所述预取数据流中,因此,所述预取数据流包括对应于所述被选择DOD服务的最频繁发生的数据块和所述附加数据块;和通过所述传输介质来传输所述数据块的其余降低闲时序列,以便接收服务可将所述数据块的其余降低闲时序列与所述预取数据块相结合,生成所述被选择的DOD服务,因此,可进一步降低传输所述DOD服务所需的带宽。
在例举的实施例中,在客户侧,处理从服务器接收到的数据以提供数据点播服务的方法包括以下步骤:接收包括对应于被选择DOD服务的预取数据块的预取数据流;将所述预取数据流存储在存储器位置中;接收包括对应于所述被选择DOD服务的初级数据块的初级数据流;和处理所述初级数据块和所述预取数据块,使用户可访问所述被选择的DOD服务。该方法可进一步包括:接收表示所述被选择DOD服务的用户输入;响应于所述用户输入,转换为对应于所述被选择DOD服务的频道;和从对应于所述被选择DOD服务的所述频道中接收所述初级数据流。在一个实施例中,由客户侧的机顶盒来执行处理从服务器接收到的数据的方法。
一种数据点播***包括第一组频道服务器,控制该第一组频道服务器的中央控制服务器,与该第一组频道服务器耦合的第一组上变频器,与该第一组上变频器耦合的组合器/放大器,和适用于通过传输介质来传输数据的组合器/放大器。在一个例举的实施例中,数据点播***进一步包括:监视该***的频道监视模块,开关矩阵,第二组频道服务器,和第二组上变频器。构造该频道监视模块,当产生***故障时报告给中央控制服务器。中央控制服务器响应于来自频道监视模块的报告,指令开关矩阵用第二组频道服务器中的频道服务器来替换第一组频道服务器中的出现故障的频道服务器,用第二组上变频器中的一个上变频器来替换第一组上变频器中的出现故障的上变频器。
本发明的另一实施例公开了一种可接收和处理例如VOD和数字广播等多个数字服务的通用STB。该实施例公开了一种具有可对接收到的数据进行复杂处理的高弹性结构的通用STB。该结构包括一数据总线,一适于与数据广播通信介质耦合的第一通信设备,一双向耦合到数据总线上的典型地包括永久与暂时存储器的存储器,一双向耦合到数据总线上的数字数据解码器,和一双向耦合到数据总线上的中央处理单元(CPU)。本发明该实施例的CPU采用STB控制过程来控制存储器、数字解码器和解调器。STB控制过程可处理例如在第一通信设备处接收到的数字数据。STB控制过程可接收来自降低闲时矩阵的数据块以及这种数据块的串行流。
在另一实施例中,复合STB结构允许最优化预加载数据流的数据块被广播并加载到空闲STB中。特定数据块预加载到STB中允许关键时节省带宽。可根据VOD优先选项,在一天的不同时间将预加载数据流(或“预取”)编程到预传送的不同数据序列中。
附图描述
图1A说明根据本发明实施例的典型DOD***。
图1B说明根据本发明另一实施例的典型DOD***。
图2说明根据本发明实施例的典型频道服务器。
图3说明根据本发明实施例的典型机顶盒。
图4说明根据本发明实施例的典型生成规划矩阵的过程。
图5用图表来说明一六数据块文件的规划矩阵的实例。
图6用图表来说明在充满所有空闲时隙之前如何提前图5中的规划矩阵的数据块。
图7用图表来说明一新的降低闲时规划矩阵。
图8描述了其余的降低闲时实施例。
图9是说明如何完成降低闲时实施例的流程图。
图10是说明根据本发明一实施例的规划初级数据流上的传输的DOD数据块和预取数据流过程的流程图。
图11是说明根据本发明替代实施例的规划初级数据流上的传输的DOD数据块和预取数据流过程的流程图。
图12是说明根据本发明一实施例的机顶盒预加载过程的流程图。
具体实施方式
图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的输出都是一个具有对应于上变频器106的适当频率的正交调幅(QAM)调制中频信号(IF)。该QAM调制IF信号依赖于所采用的标准。美国当前采用的标准是数据不通过电缆数据服务接口规范(DOCSIS)标准,需要约43.75MHz的IF频率。上变频器106将从频道服务器104接收到的IF信号转换为射频信号(RF信号)。包括频率和带宽的RF信号依赖于期望的频道和采用的标准。例如,在有线电视频道80的美国当前标准下,RF信号具有约559.25MHz的步骤和约6MHz的带宽。上变频器106的输出提供给组合器/放大器108。组合器/放大器108放大、调节并组合接收到的RF信号,之后将该信号输出到传输介质110。
在示例的实施例中,中央控制服务器102包括图表用户接口(未示),以使服务提供商通过拖放操作来规划数据传送。另外,中央控制服务器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之间。中央控制服务器102控制开关矩阵112。频道监视模块114包括多个模拟潜在客户的构造机顶盒,以监视DOD***100的完好状况。频道监视模块114将监视结果传送给中央控制服务器102。在频道故障(例如频道服务器故障、上变频器故障或通信线路故障)的情况下,中央控制服务器102通过开关矩阵112来脱离故障组件,与完好的备份组件116和或118结合后来继续服务。
在示例的实施例中,从DOD***广播的数据文件被包含于运动图像专家组(MPEG)文件中。将每个MPEG文件动态地分成沿时间轴绘制到数据文件的特定部分的数据块和子块。根据中央控制服务器102提供的三维传送矩阵,在预定时间发送这些数据块和子块。DOD***100不需要反馈频道来提供DOD服务。但是,如果具有反馈频道,则该反馈频道可用于其它目的,例如结帐或提供因特网服务。
图2说明根据本发明实施例的典型频道服务器104。频道服务器104包括服务器控制器202、CPU204、QAM调制器206、本地存储器208和网络接口210。服务器控制器202通过指令CPU204将数据文件分成块(进一步分成子块和数据包)来控制频道服务器104的整个操作,根据中央控制服务器102提供的传送矩阵来选择传输用数据块,编码被选择的数据,压缩被编码数据,之后将压缩后的数据传送给QAM调制器206。QAM调制器206接收通过总线(例如PCI、CPU本地总线)或以太网连接传输的数据。在示例的实施例中,QAM调制器206包括下游QAM、具有正向纠错解码器的上游正交调幅/四相移键控(QAM/QPSK)猝发(burst)解调器、和/或上游调谐器。QAM调制器206的输出为直接施加到上变频器106上的IF信号。
网络接口210将频道服务器104连接到另一频道服务器104和中央控制服务器102上,执行来自中央控制服务器102的规划和控制指令,将状态返回中央控制服务器102,并从中央存储器103接收数据文件。在根据来自服务器控制器202的指令处理数据文件之前,可将来自中央存储器103的任何数据文件存储于频道服务器104的本地存储器208中。在示例的实施例中,频道服务器104可根据有线频道的带宽(例如6、6.5或8MHz)、QAM调制(例如QAM64或QAM256)以及DOD数据流的压缩标准/比特率(例如MPEG-1或MPEG-2)来发送一个或多个DOD数据流。
图3说明根据本发明实施例的通用机顶盒(STB)300。STB300包括QAM解调器302、CPU304、本地存储器308、缓冲存储器310、具有视频和音频解码能力的解码器312、图表覆盖模块314、用户接口318、通信线路320和耦合所述这些设备的快速数据总线322。CPU302控制通用STB300的整个操作,对应于用户请求来选择数据,解码选择到的数据,解压缩被编码的数据,再汇编被编码数据,将被编码数据存储在本地存储器308或缓冲存储器310中,和将存储的数据传送给解码器312。在示例的实施例中,本地存储器308包括非易失性存储器(例如硬盘驱动器),缓冲存储器310包括易失性存储器。
在一个实施例中,QAM解码器302包括传输机和接收机模块和下述的一个或多个:保密加密/解密模块、正向纠错解码器/编码器、调谐器控制、下游和上游处理器、CPU和存储器接口电路。QAM解调器302接收调制后的IF信号,采样并解调该信号以恢复数据。
在示例的实施例中,当允许访问时,解码器312解码至少一个数据块,将数据块转换为可显示于输出屏上的图像。解码器312支持来自预订客户的命令,例如播放、停止、暂停、回卷、快进等。解码器312向输出设备324提供解码后的数据,以供客户使用。输出设备324可以是例如电视、计算机、任何适当的显示监视器、VCR等任何适当的设备。
图表覆盖模块314通过例如提供阿尔法混合或画中画能力来确保被显示图表质量。在典型的实施例中,图表覆盖模块314在游戏播放模式期间可被用于图表加速,例如,当服务提供商提供使用根据本发明的***的游戏点播服务时。
用户接口318可使用户控制STB300,并可以是任何合适的设备,例如遥控设备、键盘、智能卡等。通信线路320提供附加通信连接。这可耦合到另一计算机上,或被用来执行双向通信。数据总线322最好是象本发明要求那样可适合于按实时方式执行数据通信的商业上可得的“快速”数据总线。适当的实例为USB、firewire等。
在示例的实施例中,虽然数据文件被广播给所有有线电视预订者,但仅具有兼容STB300的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-l Byte)/BLK_SIZE_BYTES(4)
在等式(1)到(4)中,Estimated_BLK_Size是一估计的块尺寸(以字节为单位);DataFile_Size是数据文件的尺寸(以字节为单位);TS表示时隙的期间(以秒为单位);DataFile_Length是数据文件的期间(以秒为单位);BLKSIZE是每个数据块所需簇的数量;CLUSTER_SIZE是每个频道服务器104的本地存储器208中的簇尺寸(例如64KB字节);BLK_SIZE_BYTES是以字节为单位的块尺寸。在本实施例中,块的数量(NUM_OF_BLKS)等于数据文件尺寸(以字节为单位)加上以字节为单位的数据块尺寸再减1字节,再除以以字节为单位的数据块尺寸。等式(1)至(4)说明一个特定实施例。本领域的技术人员应该意识到其它方法也可计算数据文件的数据块数量。例如,将数据文件分成多个数据块主要是估计块尺寸和频道服务器104的本地存储器208的簇尺寸的函数。这样,本发明不限于上述特定实施例。
图4说明根据本发明实施例发送数据文件以典型生成规划矩阵的过程。在示例的实施例中,本发明使用时分多址(TDM)和频分多址(FDM)技术来在服务器侧压缩和规划数据传送。在示例的实施例中,对每个数据文件都生成规划矩阵。在一个实施例中,将每个数据文件分成多个数据块,根据数据块的数量来生成规划矩阵。典型地,规划矩阵提供一发送次序,将数据文件的数据块从服务器发送给客户,从而任何想随时访问该数据文件的客户都可按顺序次序来访问数据块。
在步骤402时,接收数据文件的数据块数量(x)。将第一变量j设为零(步骤404)。清除参考阵列(步骤406)。出于内部管理目的,参考阵列保持对数据块的跟踪。下面,比较j和x(步骤408)。如果j小于x,则将第二变量设为零(步骤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,这样j=i+1(步骤424),之后在步骤414重复该过程,直到i=x。如果参考阵列包含数据块j,则将j加上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中说明的典型过程的逐步过程,生成上述规划矩阵和参考阵列。在该示例的实施例中,根据上述规划矩阵,按下述顺序发送数据文件的六个数据块:
在另一示例的实施例中,可使用先行(look-ahead)过程来计算先行规划矩阵,在预测的访问时间之前,发送数据文件的预定数量的数据块。例如,如果预定先行时间是一个时隙的期间,则对于任何大于或等于时隙数量4的时隙而言,在TS3或之前由预订客户处的STB300接收数据文件的数据块(blk4)。但在TS4之前不播放blk4。生成先行规划矩阵的过程步骤基本上与上述图4的过程步骤相似,除了本实施例中的先行规划矩阵根据先行时间规划较早发送的序列外。假设将数据文件分成六个数据块,则具有两个时隙期间的先行时间的基于先行规划矩阵的典型发送序列表示如下:
根据一组数据文件的每个数据文件的规划矩阵来生成发送该组数据文件的三维传送矩阵。在三维传送矩阵中,生成该组数据文件中每个数据文件的三维包含ID。计算该三维传送矩阵,以充分利用每个频道的可利用带宽来传送多个数据流。在典型的实施例中,使用本领域公知的卷积法来生成三维传送矩阵,规划一组数据文件的有效传送。例如,卷积法可包括如下规定:(1)任何时隙(TS)期间内发送的数据块的总数量将保持为可能的最小数量;(2)如果根据规定(1)可利用多个部分解(partial solutions),则最佳分解是将任何参考时隙期间内发送的数据块、在先时隙(对应于参考时隙)的期间内发送的数据块和下一时隙(对应于参考时隙)的期间内发送的数据块的数据块的最小和的分解。例如,假设发送两个短的数据文件M和N的典型***,其中,将每个数据文件分成六个数据块,基于规划矩阵的发送序列如下:
如上所述应用该典型卷积法,则传送矩阵的可能组合如下:
应用规定(1),选项2、4和6具有在任何时隙期间发送的数据块的最小的最大数量(例如6个数据块)。应用规定(2),该示例的实施例中的最佳传送矩阵为选取项4,这是因为选项4具有任何参考时间的数据块加上相邻时隙的数据块的最小合(例如16个数据块)。这样,本实施例最好是用三个时隙来移位数据文件N的发送序列。在示例的实施例中,对每个频道服务器104都生成一个三维传送矩阵。
当根据传送矩阵来发送每个数据文件的数据块时,大量的预订客户可随时访问数据文件,每个预订客户可适时地利用数据文件的适当数据块。在上述的实例中,假设时隙的期间等于5秒,则DOD***100按下述方式根据最佳传送矩阵(例如移位三个时隙的数据文件N的传送序列)发送数据文件M和N的数据块:
在时间00:00:00时,客户A选择电影M,客户A处的STB300如下接收、存储、播放和排斥数据块:
在时间00:00:10时,客户B选择电影M,客户B处的STB300如下接收、存储、播放和排斥数据块:
在时间00:00:15时,客户C选择电影N,客户C处的STB300如下接收、存储、播放和排斥数据块:
在时间00:00:30时,客户D也选择电影N,客户D处的STB300如下接收、存储、播放和排斥数据块:
如上述实例如示,客户的任何组合都可随时独立选择和开始播放服务提供商提供的任何数据文件。当***总接收由时隙确定的数据块的连续流时,上述“接收”指示稍易令人误解,但在任何给定点,接收STB已接收并存储其它数据块后,仅需要某些数据块。该需要在上面被称为“接收”,但更精确地说应称为“未排斥”。因此,“接收M4”可被定义为“除M4外其余都排斥”,“什么都不接收”可更好地定义为“全部排斥”。
从上述实例可知,在某个时隙期间不能充分使用可利用的带宽。特别是,在至少某些时隙期间,存在“闲时”,其中不产生任何传输。该闲时是可利用带宽的固有无效使用。参见上述实例选项4,其中,在相应的时隙期间传输两个数据块。换言之,在具有适于传输六个数据块的带宽的时隙中,四个数据块传输期间是空闲的。虽然在选项4中是引人注目的,但当数据文件变成数千个数据块大时则更为显著。即使使用最佳组合协议来组合数据,仅有明显的空块空间部。
该空块空间部等于未使用的带宽,因此是浪费的带宽。本发明的一个目的是尽可能减少闲时,因此,当前发明的一个实施例是在确定规划矩阵,这里指降低闲时规划矩阵后执行另一步骤。
参考上述六块规划矩阵来说明降低闲时规划矩阵的一个典型模块但为了方便,在这里重复说明。为了清楚,将利用来传输数据块的带宽的闲时用<-->:
图5中以图表示出。规划矩阵在大部分时隙期间清楚地具有按闲时形式的未使用带宽。本发明公开通过利用从时隙到时隙的恒定带宽来减少该闲时。通过恒定带宽的利用来实现降低闲时传输时间的关键在于明白必须遵守数据块的传送序列,而传送数据块的正确时隙是不相关的,除非必须在访问时或访问前接收数据块。因此,根据规划矩阵设定的传送序列并且不考虑规划矩阵分配的时隙,通过传输每个时隙中的恒定数量的数据块,可完成恒定带宽的利用。
在上述详细描述的六块规划矩阵中,在TS0、TS1、TS2和TS3中存在明显多的闲时。由于实例,假设期望的恒定带宽对应于每个时隙的四个数据块的传输。因此,在每个时隙期间为了传输而规划四个数据块之前,通过向前移动数据块来降低闲时。过程是顺序取得下一数据块,并将它移到空的空间。因此,对于该实例而言,将TS1中的第一块blk1移到TS0。也向上移动TS1中的下一块blk1。接着,因为TS0还具有空的数据块空间,所以还向上移动来自TS1的blk3。之后TS0的空间都被充满,现在如下所示:
现有TS1和大部分TS2是空的,因此向上移动来自TS3的数据块。一旦完成该序列,则矩阵如下所示:
[1]这也在图6中以图表示出。空的且不完全的时隙,例如本实施例中的TS4和TS5,仅通过重复原始序列就被充满,同时还充满闲时。因此该第一个六时隙显示如下:
该序列中的下两个时隙,TS6和TS7将具有与TS2和TS3相同的数据块。因此,在新的更短的规划矩阵中由该过程实际生成的仅为四个时隙长。图7用图表来说明该通过填充闲时生成的新的重复矩阵。
从上述的实例可知,只要跟随原始顺序,则与原始规划矩阵的按时传送成对比,用户可提前接收到数据文件。用户甚至可进行***中期时隙并且一旦接收到启动时钟blk0时就开始使用该数据。
用这种方法,时隙很大程度上变为可计算的虚拟,而数据块则变为连续的流,在该流的任何点上,用户都可介入该***并开始接收数据。如图8所示,该附加步骤是相对简单的步骤,在过程410结束时执行。
为了简化,图4-10的上述描述处理被选择带宽被设定为等于数据块的整数数量的常数的情况。但是,该恒定带宽不必等于数据块的整数数量。相反,仅需要传送序列与图8中公开的序列保持一致。图8中公开的传送序列生成的数据流被提供给控制数字数据广播的较低级硬件设备(例如网络卡或频道服务器)。该较低级的硬件设备不广播数据块的整数数量,而是尽可能多地将数据传输到分配给文件的带宽中。
本领域的技术人员应该明白,在传送序列的抽象层次上,不必担心数据的实际传输。相反,传送矩阵提供该序列,并且该较低级的硬件设备利用该分配的带宽来控制数据广播。因此,包括数据块尺寸的分数的分配带宽可被完全利用。一旦被分配的带宽被利用,则较低级设备将暂停该特定数据文件的广播,直到带宽可再次被利用。
在上述实例中,用于原始规划矩阵中的最大带宽被用于降低闲时矩阵中。因此,无论用户在哪点开始接收数据,则最大等候时间不变化。但是,就象对于本领域的普通技术人员是显而易见的,可将带宽调整为成本或时间收益。重要的是花费最大时间的数据点播服务不超过执行文件的时间。如果超过的话,则结果是规划矩阵具有的时隙总数量大于原始规划矩阵包含的时隙的数量。如果是一两小时的电影,例如,播放需要三个小时,而电影中间留下间隙。但是,一些申请可使用或甚至期望该功能,例如不立即使用的可下载的数据流。
具有恒定、完全最优化带宽的数据的单个流可被简单地组合在一起。结果为一多个流带宽,其总宽度为单个流的总和。
如上所示,降低闲时对于计算单个数据流的规划矩阵是非常有用的。在该方式下,当传输数据流时可充分使用指定量的带宽。但是,如上所述,本发明的一个方面是生成一三维传送矩阵。利用一三维传送矩阵,可计算并以完全相同的方法来执行降低闲时传送矩阵。然而,一旦将降低闲时传送矩阵用于单个流上并将多个充分最优化的单个流组合在一起,则在大多数情况下胜过该三维矩阵***。
因此,例举的是一计算机执行方法,传输包括准备一传送矩阵动作的点播数据文件,该传送矩阵定义适于以非特定方式通过介质广播给多个客户的重复数据传输序列。该准备传送矩阵的动作进一步包括将数据文件减少为具有至少一第一块的数据块,将数据块排成所述重复数据传输序列。因此,用户可接收该重复数据传输序列,并且一旦接收该第一块后就以不中断的方式开始使用该数据文件。该重复数据传输序列需要一预定的带宽,并在重复数据传输序列的传输中进一步具有微小(de-minimus)的闲时。而且数据点播文件的传输需要大量的与客户独立的传输带宽。
图9以流程图的形式总结了如何确定降低闲时规划序列。首先,在520对一个数据文件生成一原始规划矩阵。根据本发明,该原始规划矩阵仅是非降低闲时规划矩阵。为了清楚,称之为“原始”。关于原始规划矩阵,变明显的不是构成的矩阵本身,而是得到数据源的顺序。因此,原始矩阵中数据块的顺序是确定降低闲时规划矩阵时最重要的。如上所示,该规划序列可被用于填充原始矩阵中的闲时。但是,在该方面,可能期望首先调整分配给数据文件的带宽量540。一旦分配了带宽,则数据块向上移动矩阵,直到去除所有空闲时隙。理性上,如果认为是序列,则删除空闲时隙550。一旦完成后,重复来自原始规划矩阵的序列。将结束发生的是将会有新的重复序列,并且这被认为是一个新的降低闲时规划矩阵560。
值得注意的是,规划序列和降低闲时规划矩阵之间的差主要是认知的。可将一个说明为线性序列,将另一个说明为重复矩阵矩阵,但是最终的结果是用户接收非客户特定数据块的恒定流。
一种用于降低广播DOD数据块的规划矩阵所必须的带宽的方法是在专用的频道上广播频繁发生的数据块。从下面给出的示例的矩阵中可以看出,所选的数据块比流中的其它数据块更频繁地发生,具有下面空闲时间的原始的传送矩阵如下:
由图9的处理过程产生的具有减少的空闲时间的传送矩阵如下:
表示为一个线性重复数据流的该示例的减少的空闲时间矩阵如下:
从示例传送矩阵的线性表述可以看出,blk0比块1-5更频繁地传送。不同的传送矩阵可导致不同的数据块在给定的数据块流内或多或少地频繁发生。在任何传送矩阵中,在序列中较早发生的数据块将更频繁地发生,其中志总是最频繁地发生。
因为在数据流中blk0比其它的数据块更频繁地发生,通过在一个独立的数据流中发送blk0和其它频繁发生的块可达到更窄传输带宽。该流相对于原始的流具有大大降低的带宽,以及分配给原始流的带宽可以通过只传送较不频繁的数据块而得到降低。例如,如果上述的流被分成两上独立的流,只携带数据blk0的预取流与携带其余数据块的初级流,这两个流可以表述如下:
因此通过在独立的数据流中传输blk0,传输初级数据流的所要求的带宽被减少了37.5%。这种减少是因blk0包含了初级数据流中16个全部数据块中的6个,以便blk0的除去有效地将在初级数据流传输的数据块的数量减少了6。传输包含朋blk0的预取数据流所要求的附加带宽相比较起来很小,这取决于由接收STB执行的缓冲量,该缓冲将在下面参照图12进行寸论。
这种方法一个显著的优点是降低了访问所选的数据点播业务所要求的时间,一接收到所选的DOD业务的blk0,应用就开始使用所选的业务,但是如果没有预取流,用户必须等待直到在初级的数据流中发生了blk0。因为blk0是在独立的流上连续地传输的,可以使用该服务而不必等到从包含多个不同数据块的流接收到下一个blk0。当然,为了流畅使用该数据点播***,必须接收到blk1并完成准备由时间blk0使用,这就要求初级数据流具有足够大的带宽以确保在blk0结束前blk1已接收到。
图10是说明根据本发明一实施例的规划初级数据流上的传输的DOD数据块和预取数据流过程的在600处的流程图。在第一步骤602处,降低闲时规划表现为按传输数据块的顺序排列的数据块的线性序列。在步骤604,从剩下需要更窄带宽的数据块的较短序列的序列中去除最频繁发生的数据块。如上所述,Blk0总是最频繁发生。在步骤606,将从降低闲时序列中去除的数据块放置在构成整个Blk0数据块的预取数据流中。接着,在步骤608中,在分离带宽上作为两个分离重复数据流来传输初级数据流和预取数据流,通过传输介质110来接收机顶盒(图1B)。
图11说明根据一个实施例的规划初级数据流和预取数据流上传输的DOD数据块在650的过程,其中来自DOD传送矩阵的多个DOD数据块在预取数据流上传输,从而最小化总共所需的传输带宽。在第一步骤652,降低闲时规划表现为为传输数据块的排列的数据块的线性序列。在步骤654,从剩下需要更窄带宽的数据块的较短初级序列的序列中去除最频繁发生的数据块。在步骤656,将从降低闲时序列中去除的数据块放置在预取数据流中。
在步骤658中,确定需要传输数据块较短的初级流的带宽是否已降低到预定的临界值以下。该步骤可需要多个对于本领域的技术人员而言是显而易见的复杂子过程。如果初级数据流所需的带宽低于临界值,则该过程持续到步骤660。在步骤660,在分离带宽上作为两个分离重复数据流来传输初级数据流和预取数据流,通过传输介质110来接收机顶盒(图1B)。
如果所需带宽大于临界界值,则过程返回步骤654,其中,去除与剩余的数据块的最大频率同时发生的数据块。接着,在步骤656中,将去除的数据块加到预取数据流中。该过程继续自身重复,直到在步骤658中确定所需的传输带宽小于临界值,此时在步骤660处结束该过程。在替代的实施例中,可使用另一标准来代替临界值,例如最小化初级和预取数据流的组合带宽需要。在该方式下,通过申请号为09/892017的2001年6月25日提交的名为降低闲时和恒定带宽数据点播广播传送矩阵的Khio Hoanh的同族申请中降低闲时和恒定带宽传送方法来进一步降低传输DOD服务所需的带宽。
从初级数据流中去除频率发生的数据块对大大降低初级数据流中包含的数据块的总数量具有影响,从而降低传输初级数据流所需的带宽。下表描述为从初级数据流中去除被选择数据块的采样带宽节省:
表1:在一六块序列中特定预加载数据块的带宽节省
数据块(预装载的) | 在数据块中估计的发生频率(在6块序列内) | 估计的带宽节省 |
Blk0 | 100% | 1BW |
Blk1 | ~50% | ~.5BW |
Blk2 | ~33% | ~.33BW |
Blk3 | ~25% | ~.25BW |
Blk4 | ~20% | ~.20BW |
Blk5 | ~16% | ~.16BW |
为了立即访问用上述方法传输的DOD服务,接收STB必须预加载并存储一些或所有包含于预取数据流中的数据。因为STB必须首先加载并存储显示的任何DOD服务的blk0,所以在节省的传输带宽和访问延迟时间之间存在折衷。通过预加载该预取数据流并存储预取数据块,客户STB可利用最小的延迟来访问被选择的DOD服务。这需要接收STB具有足以存储包含于预取数据流中的数据的存储器。
图12说明根据本发明一实施例在700处的机顶盒预加载过程。在步骤702中,机顶盒被设定为空闲或无源模式。典型地,该模式为所有客户机顶盒的默认模式。在步骤704中,机顶盒在专用频道上接收预取数据流。在一典型的实施例中,在电子节目指南频道上接收该预取数据流。在步骤706中,机顶盒确定接收到的预取数据块是否比先前存储的预取数据新。包含在每个预取数据块中的标识符向机顶盒显示数据块有多新。如果接收到的数据块更新,则在步骤708中,机顶盒在内部存储器308中存储最新预取数据块(图3),典型地,存储在硬盘驱动磁存储设备中。典型地,虽然因为不同的原因保持了较老的版本,但用更新的预取数据块来改写较早的数据块。
在步骤710中,由定时器或用户命令将机顶盒转换为有源模式。在示例的实施例中,只要机顶盒接收到任何用户命令,则机顶盒自动转换为有源模式。在这种实施例中,机顶盒将保持为有源模式一定的时间周期,之后返回无源模式。
在步骤712中,机顶盒接收命令,播放选择的DOD服务。这可在电子节目指南服务中通过用户输入一个对应于被选择DOD服务的代码或通过从菜单中选择DOD服务来完成。在步骤714中,机顶盒从步骤708中存储的预取数据块中播放被选择的DOD服务的第一数据块(blk0)。在步骤716中,机顶盒调谐为适当频道,并接收对应于被选择的DOD服务的初级数据流,存储在存储器308中(图3)。在示例的实施例中,该步骤与步骤714同时发生,直到用户停止播放被选择的DOD服务为止。
在步骤718中,如果已播放所有对应于被选择DOD服务的预取数据块,则该过程持续到步骤720。在步骤720中,从在步骤716中在先接收的初级流数据块播放DOD服务的其余部分。这使得从存储的预取数据块开始播放DOD服务的第一数据块(blk0)或第一少的数据块,同时从服务器中下载对应于被选择DOD服务的数据块的初级流。这种***使得可在访问时间内利用最小延迟无间隙地观看DOD服务,并降低带宽要求。为了最优化,必须存储并播放足够的预取数据块,以便在使用时下载来自初级数据流的数据块。这可要求增加预取流的带宽或初级数据流。
构成预取数据流并最终通过预取流加载到空闲机顶盒中的数据可改变日期、星期或月的过程来反映用户的爱好并生成最大的带宽节省。例如,在秋天的一个星期一晚上,与周期的晚上相反,当播出的最新家庭故事电影具有在预取数据流中发送的开始序列时,可使特定的体育事件在预取数据流中更普遍。
因为预加载的数据块序列已存储在STB上,同时该机顶盒为空闲模式时,所以机顶盒用户可无延迟地在任何时候开始期望的节目。当STB为空闲模式时可持续更新该预取数据块序列来反映基于预期DOD用户请求的用户(例如用户未开始观看的电影的顺序)或预先调试更新引起的预编程改变。
上述实例说明一本发明的某些示例的实施例,从中,其它实施例、变化或变更对于本领域的技术人员而言是显而易见的。因此,本发明不限于上述特定实施例,而由下面的权利要求来定义。
附录A
B:降低闲时和恒定带宽数据点播广播传送矩阵
下面是图4中说明的典型过程的逐步说明,生成具有六数据块的数据文件的规划矩阵:
开始
(步骤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。将blk1写入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(0<6)。
(步骤414)比较i和x。
(步骤418)i小于x(1<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已包含blkl和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。将blkl写入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]。所有其它位置都是空的。RA已包含blk1和blk0;不写复本。
(步骤420)RA包含数据块i或blk3?
(步骤422)RA不包含blk3。这样,将blk3写入SM的位置[1,4]和RA中。RA现在具有blk4、blk0、blk5、blk2、blki和blk3。
(步骤424)将i加上1(i=4),得到位置[2,4]的值。返回步骤414。
(步骤414)比较i和x。
(步骤418)i小于x(3<6)。读取SM中列[2]的矩阵位置并写到RA中。位置[2,0]包含blk2,位置[2,2]包含blk0。所有其它位置都是空的。RA已包含blk2和blk0;不写复本。
(步骤420)RA包含数据块i或blk4?
(步骤422)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、blkl和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中。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?
(步骤424)RA包含blk5。这样,什么都不写入位置[3,4]。
(步骤424)将i加上1(i=6)。返回步骤414。
(步骤414)比较i和x。
(步骤416)i等于x(6=6)。将j加上1(j=5)。返回步骤406。
(步骤406)清除参考阵列(RA)
(步骤408)比较j和x
(步骤410)j等于x(6<6);结束。
Claims (29)
1.一种计算机执行的通用广播的方法,包括:准备定义适于以非客户特定方式向多个客户广播点播数据的数据传输序列的传送矩阵,其中:
所述点播数据的传输包括含有所述数据传输序列第一子集的第一流和含有所述数据传输序列第二子集的第二流,
其中所述准备传送矩阵包括以下动作:准备适合于第一数据文件传输的第一规划矩阵,所述第一数据文件由第一多个数据块表示,所述第一规划矩阵提供第一序列,用于以一种方式在时隙内序列地传输所述的第一多个数据块,以便按照所述的第一规划矩阵接收所述的第一数据文件的传输的客户可以在一个时隙内开始访问所述的第一数据文件。
2.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一子集和所述第二子集不包括任何公用数据块。
3.根据权利要求2所述的计算机执行的通用广播的方法,其特征在于:
所述第一子集包括一组最优化的数据块,其中,所述第二子集是所述数据传输序列的余项,所述最优化数据块组依赖于数据块的分配频率。
4.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一流进一步包括预取流标识符。
5.根据权利要求4所述的计算机执行的通用广播的方法,其特征在于:
所述预取流标识符发信号通知一通用机顶盒将所述第一流预加载到所述通用机顶盒上的电子存储中。
6.根据权利要求4所述的计算机执行的通用广播的方法,其特征在于:
所述通用机顶盒可加载所述第一流,同时所述通用机顶盒是空闲的。
7.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一子集包括程序开始所需的最少量的数据块,所述最少量依赖于可利用的带宽。
8.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
最好根据可利用的传输带宽的数量来构造位于所述第一子集和所述第二子集之间的所述传输序列的比率。
9.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述点播数据的传输要求独立于所述多个客户的数量的一定数量的传输带宽。
10.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一规划矩阵是带宽恒定的规划矩阵。
11.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一规划矩阵是带宽可变的规划矩阵。
12.根据权利要求10所述的计算机执行的通用广播的方法,其特征在于:
规划来自所述第一多个数据块的一恒定量数据,以在分配的带宽中进行传输。
13.根据权利要求12所述的计算机执行的通用广播的方法,其特征在于:
由一低级的硬件设备来执行分配带宽中的传输控制。
14.根据权利要求1所述的计算机执行的通用广播的方法,其特征在于:
所述第一流为预取流,在一组预取接收情节中,由一通用机顶盒来访问所述预取流。
15.根据权利要求14所述的计算机执行的通用广播的方法,其特征在于:
所述预取接收情节包括用户将命令预加载到所述到所述机顶盒上的激活。
16.根据权利要求14所述的计算机执行的通用广播的方法,其特征在于:
所述预取接收情节包括来自用户的预订节目。
17.如权利要求1所述的计算机执行的通用广播的方法,其中所述准备传送矩阵的动作是在通用数据广播***中执行的,所述第一流为预加载传输数据,并且进一步执行以下动作:
通过第一频道提供适合于传输所述预加载传输数据的第一频道服务器;
在数据广播前,准备传输电子节目指南的第二频道服务器,包括关于第三频道信息的所述电子节目指南EPG包含至少所述第二流;以及
从所述第一频道和所述第二频道传输数据;和
在通用机顶盒STB中,执行以下步骤:
当所述通用STB处于无源模式时,接收所述第一频道中所述第一流内的数字数据;
当所述通用STB处于所述无源模式时,将所述数字数据存储在计算机可读介质中的所述第一流中;
接收所述EPG的数字数据;
向所述通用STB的用户提供所述EPG的数据;
从所述通用STB的用户处接收数据处理指令,并执行来自所述通用STB的所述用户的所述指令。
18.根据权利要求17所述的计算机执行的通用广播的方法,其特征在于:生成传送矩阵的动作包括以下动作:
准备适合于第一数据文件传输的第一规划矩阵,所述第一数据文件由第一多个数据块表示,所述第一规划矩阵提供第一序列,用于以一种方式在时隙内序列地传输所述的第一多个数据块,以便按照所述的第一规划矩阵接收所述的第一数据文件的传输的客户可以在设定量的时隙内开始访问所述的第一数据文件,其中所述设定量是基于所述预加载流中块的数量;
所述第一数据文件不包括任何包含于所述预加载流中的通用数据块。
19.根据权利要求18所述的计算机执行的通用广播的方法,其特征在于:进一步包括数据广播前的动作:准备传输数据点播信息用的第三频道服务器,所述准备所述第三频道服务器包括如下动作:将所述传送矩阵提取到所述第三频道服务器的存储器中以及将为了所述传送矩阵的传送而规划的第二流内包含的数据块提取到所述第三频道服务器的所述存储器中;和
传输来自所述第三频道的数据。
20.根据权利要求19所述的计算机执行的通用广播的方法,其特征在于:
所述第一规划矩阵是恒定带宽的规划矩阵。
21.根据权利要求20所述的计算机执行的通用广播的方法,其特征在于:
在每个时隙期间,规划恒定数量的所述第一多个数据块以进行传输。
22.根据权利要求20所述的计算机执行的通用广播的方法,其特征在于:
所述第一规划矩阵是可变带宽的规划矩阵。
23.一种生成恒定带宽、适合于以非客户特定格式传送点播数据的降低闲时规划矩阵的计算机执行方法,所述方法包括以下动作:
生成适合于传输第一数据文件的规划矩阵,所述第一数据文件由第一多个数据块表示,所述第一规划矩阵提供第一时序,用于以一种方式在时隙内序列地传输所述的第一多个数据块,以便按照所述的第一规划矩阵接收所述的第一数据文件的传输的客户可以在一个时隙内开始访问所述的第一数据文件;
确定期望的恒定传输带宽,其中,所述恒定带宽被接着用来根据所述第一规划矩阵的顺序流送所述数据块;
确定根据所述恒定带宽将流送的数据块分成分离的流的正确分配;和
将至少一个所述分离流加载到一机顶盒上,同时机顶盒未被传输到显示装置。
24.根据权利要求23所述的计算机执行方法,包括:
将所述多个数据块排列成由以下步骤确定的顺序:
a.将所述数据文件分成所述多个数据块;
b.将第一变量设为零;
c.清除参考阵列;
d.比较所述第一变量和所述多个数据块的总数量;
e.如果所述第一变量小于所述多个数据块的总数量,则设第二变量为零;
f.比较所述第二变量和所述多个数据块的总数量;
g.如果所述第二变量小于所述多个数据块的总数量,则将一个或多个存储在一规划矩阵列中的存储数据块写入所述参考阵列,由[(i+j)mod(x)]来确定所述列,其中,i为所述第二变量,j为所述第一变量,x为所述数据块的数量;
h.如果所述参考阵列已具有至少一个所述存储数据块,则不写第二复制件;
i.检查所述参考阵列是否包含对应于所述第二变量的所述数据块;
j.如果所述参考阵列不包含对应于所述第二变量的块,则将所述数据块加到所述规划矩阵中[(i+j)mod(x),j]的位置上以及所述参考阵列,将所述第二变量加1;
k.如果所述参考阵列包含对应于所述第二变量的所述数据块,则将所述第二变量加1;
l.重复步骤g到k,直到所述第二变量等于所述数据块的总数量;
m.将所述第一变量加1;
n.重复步骤c)到m),直到所述第一变量等于所述数据块的总数量;
o.将所述规划矩阵再构造成多个流;
其中,在具有所述数据文件分配的带宽的介质上以重复信号传输所述顺序,其中所述重复信号充分使用所述带宽。
25.根据权利要求24所述的计算机执行方法,其特征在于:
所述将所述规划矩阵再构造成多个流的步骤包括确定所述数据文件分配的所述带宽的大小和确定第一传送流的最佳大小,由此,第一传送流包括所述数据文件的开始序列。
26.根据权利要求25所述的计算机执行方法,其特征在于:
确定分配给所述文件的所述带宽的大小最小化所述带宽。
27.根据权利要求25所述的计算机执行方法,其特征在于:
确定分配给所述文件的所述带宽的大小最小化所述带宽。
28.根据权利要求24所述的计算机执行方法,其特征在于:
由数据传送矩阵导出的所述多个数据传送流包括多个不同的数据文件。
29.根据权利要求23所述的计算机执行方法,其特征在于:
所述正确分配基于可利用的带宽。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/841,792 US20020023267A1 (en) | 2000-05-31 | 2001-04-24 | Universal digital broadcast system and methods |
US09/841,792 | 2001-04-24 | ||
US09/892,017 | 2001-06-25 | ||
US09/892,017 US20020026501A1 (en) | 2000-05-31 | 2001-06-25 | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices |
US10/054,008 | 2001-10-19 | ||
US10/054,008 US20020175998A1 (en) | 2000-05-31 | 2001-10-19 | Data-on-demand digital broadcast system utilizing prefetch data transmission |
US09/997,954 | 2001-11-28 | ||
US09/997,954 US20020066100A1 (en) | 2000-05-31 | 2001-11-28 | Method for providing data services for a large number of small-sized data files |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810108280.2A Division CN101309394A (zh) | 2001-04-24 | 2002-04-24 | 利用预取数据传输的数据点播数字广播*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1384671A CN1384671A (zh) | 2002-12-11 |
CN100484237C true CN100484237C (zh) | 2009-04-29 |
Family
ID=27489601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021183236A Expired - Fee Related CN100484237C (zh) | 2001-04-24 | 2002-04-24 | 利用预取数据传输的数据点播数字广播*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100484237C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101831775B1 (ko) | 2010-12-07 | 2018-02-26 | 삼성전자주식회사 | 멀티미디어 컨텐츠를 송수신하는 송신 장치 및 수신 장치와, 그 재생 방법 |
CN103348694A (zh) * | 2010-12-07 | 2013-10-09 | 三星电子株式会社 | 发送用于构成内容的数据的发射机、接收和处理该数据的接收机及其方法 |
-
2002
- 2002-04-24 CN CNB021183236A patent/CN100484237C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1384671A (zh) | 2002-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101309394A (zh) | 利用预取数据传输的数据点播数字广播*** | |
CN100399316C (zh) | 通用机顶盒结构和控制方法 | |
US6725267B1 (en) | Prefetched data in a digital broadcast system | |
US20020175998A1 (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
KR100641594B1 (ko) | 데이터 전달 제어 방법, 데이터 전송 방법, 데이터 송신장치, 수신 장치 | |
KR100910878B1 (ko) | 전송기 및 그로부터 전송되는 신호들을 수신하도록 구성된 적어도 하나의 수신기를 포함하는 전송 시스템 | |
US20020026501A1 (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices | |
CN100484237C (zh) | 利用预取数据传输的数据点播数字广播*** | |
KR20030092105A (ko) | 프리페치 데이터 전송을 사용하는 주문형 데이터 디지털방송 시스템 | |
CN100405845C (zh) | 用于传输延迟访问客户通用数据点播服务的方法和*** | |
WO2001093062A1 (en) | Methods for providing video-on-demand services for broadcasting systems | |
CA2428829A1 (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices | |
TWI223563B (en) | Methods and systems for transmitting delayed access client generic data-on-demand services | |
AU2001253797A1 (en) | Universal digital broadcast system and methods | |
JP2006509456A (ja) | 配信システムにおけるマルチポイントサービス挿入 | |
KR20030051800A (ko) | 감소된 공전 시간과 감소된 대역폭의 주문형 데이터 방송전달 매트릭스 | |
KR20040063795A (ko) | 지연된 억세스 클라이언트 데이터 및 요청의 전송 | |
EP1402331A2 (en) | Methods and systems for transmitting delayed access client generic data-on demand services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1051947 Country of ref document: HK |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090429 Termination date: 20100424 |