




发明领域field of invention
本发明涉及数据点播系统,特别地本发明涉及数据传输规划。The present invention relates to data-on-demand systems, and in particular the present invention relates to data transmission planning.
发明背景Background of the invention
视频点播(VOD)是一种类型的数据点播(DOD)系统,在该VOD系统中,根据需求,由一个服务器或服务器网络提供视频数据文件给一个或多个客户。Video on Demand (VOD) is a type of Data on Demand (DOD) system in which a server or network of servers provides video data files to one or more clients on demand.
在传统的VOD体系中,服务器或服务器网络与客户按照标准的层级客户-服务器模型进行通信。例如一个客户向一个服务器发送一个数据文件请求(例如视频数据文件)。作为对客户请求的响应,服务器向客户发送请求的文件。在标准的客户-服务器模型中,客户对数据文件请求可以由一个或多个服务器来完成,客户可以在本地的非易失存储器上存储所接收的任何数据文件以备将来使用,该标准的客户-服务器模式要求双工通信基础结构。目前双工通信要求建立新的基础结构,因为已有的电缆只能提供单工通信。双工通信基础结构的示例是混合光纤同轴电缆(HFC)或全光纤的基础结构。替换已有的电缆是非常费钱的并且所产生的服务对大多数人来说是负担不起的。In a traditional VOD system, a server or server network communicates with clients in a standard hierarchical client-server model. For example, a client sends a request for a data file (such as a video data file) to a server. In response to the client's request, the server sends the requested file to the client. In the standard client-server model, the client's request for data files can be completed by one or more servers, and the client can store any received data files on the local non-volatile memory for future use. The standard client - Server mode requires a duplex communication infrastructure. Duplex communication currently requires new infrastructure because existing cables can only provide simplex communication. Examples of duplex communication infrastructures are hybrid fiber coax (HFC) or all-fiber infrastructures. Replacing existing cables is very costly and the resulting service is unaffordable for most people.
而且,当服务提供商(如电缆公司)向大量的客户提供VOD服务时,标准的客户服务器模式具有很多的限制。一种限制是该服务提供商必须实施一种机制以连续地听取并满足来自该网络内每个客户的每个请求,因此可以接收服务的客户的数量取决于这种机制的容量。一种机制使用大量并行计算机,该计算机具有大且快速的磁盘阵列作为本地服务器。但是,即便是最快的已有本地服务器一次也能传输视频数据流给大约1000-2000客户。因此,为了服务于更多的客户,本地服务器的数量必须增加,增加本地服务器就要求有更多的上层服务器来维护对本地服务器的控制。Furthermore, the standard client-server model has many limitations when a service provider (such as a cable company) provides VOD services to a large number of customers. One limitation is that the service provider must implement a mechanism to continuously listen to and fulfill every request from every client within the network, so the number of clients that can receive service depends on the capacity of this mechanism. One mechanism uses a massively parallel computer with a large and fast disk array acting as a local server. However, even the fastest existing local server can stream video data to about 1000-2000 clients at a time. Therefore, in order to serve more clients, the number of local servers must be increased, and increasing local servers requires more upper-level servers to maintain control over the local servers.
标准客户-服务器模型的另一个限制是每个客户要求有自己的带宽,因此整个需求带宽正比于订户的数量。在本地服务器内的缓存存储器已经用于提高带宽限制,但是使用缓存存储器并不能解决问题,因为缓存存储器是有限制的。Another limitation of the standard client-server model is that each client requires its own bandwidth, so the overall required bandwidth is proportional to the number of subscribers. Caching memory in the local server has been used to improve the bandwidth limit, but using the cache memory does not solve the problem because the cache memory is limited.
目前,为了让更多的客户能付得起视频点播业务,现有业务提供商正在本地服务器的性能上增加每个本地服务器上客户的比例。一般地,能向1000个客户提供业务的本地服务器实际上可以向10000个客户提交业务。这种技术在大多数的订户不同时订购视频时是可以工作的。但是,该技术是失败的,因为大多数的客户很可能想同时观看视频(例如晚上或周末),从而导致本地服务器在这种尖峰时刻变得过载。At present, in order to allow more customers to afford the video-on-demand service, existing service providers are increasing the proportion of customers on each local server in terms of the performance of the local server. Generally, a local server that can provide services to 1,000 clients can actually submit services to 10,000 clients. This technique works when most of the subscribers do not subscribe to the video at the same time. However, this technique fails because most of the clients are likely to want to watch the video at the same time (e.g. evening or weekend), causing the local server to become overloaded during such peak times.
因此,希望提供一种在虚拟的任何传输介质(不用替换已有基础结构)上能提供点播业务给大量的客户的系统。而且,希望提供一种客户通用广播系统,该系统具有与订户无关的传输带宽,还希望该系统能向客户提供要求减少传输带宽的通用的子优化的数据点播业务。Therefore, it is desirable to provide a system that can provide on-demand services to a large number of customers over virtually any transmission medium (without replacing existing infrastructure). Furthermore, it is desirable to provide a customer-generic broadcasting system which has subscriber-independent transmission bandwidth and which can also provide customers with a general-purpose sub-optimized data-on-demand service requiring reduced transmission bandwidth.
发明概述Summary of the invention
本发明提供一种DOD广播系统,该系统能同时在窄带宽上传输一个或多个数据文件(作为减少的带宽客户通用序列数据块)给大量的客户,而不要求双向通信。本发明进一步提供一个STB,它能通过一个客户通用格式在正由客户订购的数据文件的短时间内开始播放数据文件广播。而且,通过在开始播放数据文件之前延迟客户访问时间以允许智能的STB装载数据文件的各部分而提供一种下载数据文件的更为有效的带宽方法。The present invention provides a DOD broadcast system capable of simultaneously transmitting one or more data files (as reduced bandwidth client common sequence data blocks) over a narrow bandwidth to a large number of clients without requiring two-way communication. The present invention further provides an STB capable of starting a data file broadcast within a short period of time of the data file being ordered by the customer through a customer common format. Also, a more bandwidth efficient method of downloading data files is provided by delaying the client access time before starting to play the data files to allow the intelligent STB to load portions of the data files.
简要地说,本发明的一个方面体现在用于传输多个数据文件的数据点播(DOD)广播系统,其中每个数据文件是作为一个减少的客户通用序列数据块传输的,包括:DOD广播服务器,用于广播多个数据文件;与该DOD广播服务器通信地连接的传输介质;多个接收器,通过该传输介质与DOD广播服务器通信地连接;其中DOD广播服务器重复地以减少的客户通用格式将多个数据文件通过传输介质传输到多个接收器;其中接收器运行时请求对应于所选的数据文件的验证信息;其中接收器运行时进一步接收验证信息;以及其中接收器运行时在预定的时间周期后进一步显示所选数据文件的一部分给用户,其中预定的时间周期使接收器在开始显示数据文件之前存储一部分数据文件。Briefly, one aspect of the present invention is embodied in a data-on-demand (DOD) broadcast system for transmitting a plurality of data files, wherein each data file is transmitted as a reduced client generic sequence data block, comprising: a DOD broadcast server , for broadcasting a plurality of data files; a transmission medium communicatively coupled to the DOD broadcast server; a plurality of receivers, communicatively coupled to the DOD broadcast server via the transmission medium; wherein the DOD broadcast server repeats in a reduced client common format A plurality of data files are transmitted to a plurality of receivers through a transmission medium; wherein the receiver requests verification information corresponding to the selected data files when running; further receives the verification information when the receiver runs; and wherein the receiver runs at a predetermined A portion of the selected data file is further displayed to the user after a predetermined time period, wherein the predetermined time period causes the receiver to store the portion of the data file before beginning to display the data file.
本发明的另一个实施例是公开一种用于传输子优化的数据块序列的数据点播(DOD)广播方法,包括:准备一个子优化数据传输序列数据块,其中在序列中没有两个相邻的数据块是相同的;以一种非客户特定方式传输包含有符合子优化传输序列的该序列数据块的数据文件给多个客户,以便一个接收客户可以在预定的时间周期内开始访问数据文件。而且,该预定的时间周期具有一定的持续时间,并且其中该持续时间响应于包含在至少一个序列数据块中的信息。准备子优化数据传输序列的步骤包括:接收一个数据文件;规定一个时间间隔;根据时间间隔将数据文件分解成多个数据块以便每个数据块在该时间间隔期间是可显示的;确定发送数据文件所要求的时隙数量,其中每个时隙具有基本上等于该时间间隔的持续时间;将多个数据块中的至少一个分配给每个时间间隙。Another embodiment of the present invention discloses a data-on-demand (DOD) broadcast method for transmitting a sub-optimized sequence of data blocks, comprising: preparing a sub-optimized data transmission sequence of data blocks, wherein there are no two adjacent data blocks in the sequence data blocks are the same; transmit a data file containing the sequence of data blocks conforming to a sub-optimized transfer sequence to multiple clients in a non-client-specific manner so that a receiving client can begin accessing the data file within a predetermined time period . Also, the predetermined period of time has a duration, and wherein the duration is responsive to information contained in at least one sequence data block. The steps of preparing the sub-optimized data transfer sequence include: receiving a data file; specifying a time interval; decomposing the data file into a plurality of data blocks according to the time interval so that each data block is displayable during the time interval; determining sending data The number of time slots required by the file, where each time slot has a duration substantially equal to the time interval; at least one of the plurality of data blocks is assigned to each time slot.
数据点播系统包括第一组频道服务器,用于控制第一组频道服务器的中央控制服务器,连接到第一组频道服务器的第一组上变频器,以及用于通过传输介质传输数据的组合器/放大器。在一个示例的实施例中,该数据点播系统进一步包括一个用于监视该系统的频道监视模块,一个开关矩阵,第二组频道服务器以及第二组上变频器。该频道监视模块配置成向中央控制服务器报告何时发生了系统失效。作对来自频道监视模块的反应,该中央控制服务器指示开关矩阵以第二组频道服务器内的频道服务器替换第一组频道服务器内的有问题的频道服务器,以及用第二组上变频器内的一个上变频器替换第一组上变频器内的有问题的变频器。The data-on-demand system includes a first group of channel servers, a central control server for controlling the first group of channel servers, a first group of up-converters connected to the first group of channel servers, and a combiner/ amplifier. In an exemplary embodiment, the data-on-demand system further includes a channel monitoring module for monitoring the system, a switch matrix, a second set of channel servers, and a second set of up-converters. The channel monitoring module is configured to report to the central control server when a system failure occurs. In response from the channel monitoring module, the central control server instructs the switch matrix to replace the faulty channel server in the first set of channel servers with a channel server in the second set of channel servers, and to replace the channel server in question with a channel server in the second set of upconverters. The upconverter replaces the faulty converter in the first set of upconverters.
一种用于接收作为子优化数据块序列传输的数据文件的方法,包括:接收指示至少一个所选数据文件的用户输入;在预定的时间周期内在存储器位置存储子优化数据块序列的多个数据块中的至少一个;在该预定的时间周期过后向用户显示该数据文件的至少一第一部分;接收该子优化数据块序列的多个数据块中至少一个附加数据块;以及通过将所存储的数据块中的至少一个与该至少一个附加数据块组合来向用户显示该数据文件的至少一第二部分。A method for receiving data files transmitted as a sub-optimized sequence of data blocks, comprising: receiving user input indicating at least one selected data file; storing a plurality of data of the sub-optimized sequence of data blocks in a memory location for a predetermined period of time at least one of the blocks; displaying at least a first portion of the data file to the user after the predetermined period of time; receiving at least one additional data block in the plurality of data blocks of the sub-optimized sequence of data blocks; At least one of the data blocks is combined with the at least one additional data block to display at least a second portion of the data file to a user.
术语机顶盒并不限于连接到电视上的设备,还包括按照本发明的方法能接收广播传输的任何设备,包括高级电视系统和计算机。The term set top box is not limited to equipment connected to a television, but also includes any equipment capable of receiving broadcast transmissions according to the method of the present invention, including advanced television systems and computers.
附图的简要描述Brief description of the drawings
图1A描述按照本发明一个实施例的示例性的DOD系统;Figure 1A depicts an exemplary DOD system according to one embodiment of the present invention;
图1B描述按照本发明另一个实施例的示例性的DOD系统;FIG. 1B depicts an exemplary DOD system according to another embodiment of the present invention;
图2描述按照本发明一个实施例的示例性的频道服务器;Figure 2 depicts an exemplary channel server according to one embodiment of the present invention;
图3描述按照本发明一个实施例的示例性的机顶盒;Figure 3 depicts an exemplary set-top box according to one embodiment of the present invention;
图4描述按照本发明一个实施例的用于产生一个规划矩阵的示例的过程;Fig. 4 depicts the process for generating an example of a planning matrix according to one embodiment of the present invention;
图5描述按照本发明一个实施例的用于产生子优化规划矩阵的示例性过程;FIG. 5 depicts an exemplary process for generating a suboptimal planning matrix according to one embodiment of the present invention;
图6描述按照本发明一个实施例的用于显示利用子优化规划矩阵传输的数据文件的示例性的STB过程。FIG. 6 depicts an exemplary STB process for displaying a data file transferred using a sub-optimized planning matrix, according to one embodiment of the present invention.
本发明的详细描述Detailed description of the invention
本发明提供一种DOD广播系统,能同时在窄带宽上传输作为子优化序列数据块的一个或多个数据文件给大量的客户,而不需要双向的通信。本发明提供一种STB,能在客户正在订购的数据文件的短时间内开始播放数据文件。而且提供一种下载数据文件的更有效带宽方法,通过延迟客户访问时间以允许智能STB在开始播放数据文件之前装载数据文件的各部分。The present invention provides a DOD broadcast system capable of simultaneously transmitting one or more data files as sub-optimized sequence data blocks to a large number of clients over a narrow bandwidth without the need for two-way communication. The present invention provides an STB capable of starting playing a data file within a short time of the data file being ordered by a customer. It also provides a more bandwidth efficient method of downloading data files by delaying client access time to allow the intelligent STB to load portions of the data file before starting to play the data file.
在最小化传输带宽的同时最大化传输的DOD数据的某些潜在方法包括使用:常数带宽传送矩阵,以及降低闲时矩阵。所有这些及其方法在Khoi Hoang的上述参考发明中都得到公开。当这些方法按照时间优化方式向客户提供通用DOD业务时,作为与访问时间上的延迟的交换,也存在着向客户提供通用DOD广播业务的可能性,作为与访问时间延迟的交换,通用DOD广播业务进一步降低要求的传输带宽。Some potential methods of maximizing transmitted DOD data while minimizing transmission bandwidth include using: a constant bandwidth transmission matrix, and a reduced idle time matrix. All of these and their methods are disclosed in the above referenced invention by Khoi Hoang. While these methods provide clients with generic DOD services in a time-optimized manner, there is also the possibility of providing clients with generic DOD broadcast services in exchange for delays in access time. The business further reduces the required transmission bandwidth.
图1A描述了按照本发明的一个实施例的示例性DOD系统100。在该实施例中DOD系统100根据需要提供数据文件如视频文件。但是,该DOD系统100并不限于提供根据需要提供视频文件,而是还能提供其它的数据文件如点播的游戏文件。DOD系统100包括一个中央控制服务器102,外部存储装置103,多个频道服务器104a-104n,多个上变频器106a-106n以及组合器/放大器108。中央控制服务器102控制频道服务器104,中央存储装置103以数字格式存储数据文件。在一个示例性的实施例中,存储在中央存储装置103内的数据文件是通过标准网络接口(如以太网连接)可由连接到该网络接口的授权的计算机如中央控制服务器102访问的。每个频道服务器104被分配给一个频道并且连接到一个上变频器106。频道服务器104按照来自中央控制服务器102的指令提供从中央存储装置103检索的数据文件。每个频道服务器104的输出是正交调幅(QAM)调制的中频(IF)信号,该信号具有适用于对应的上变频器106的频率。QAM调制的IF信号取决于所采纳的标准。当前美国采纳的标准是电缆数据服务接口规范(DOCSIS)标准,这要求大约43.75MHz的IF频率。上变频器106将从频道服务器104接收的IF信号转换为射频信号(RF信号)。这些包括频率和带宽的射频信号取决于期望的频道以及采用的标准。例如,在美国有线电视频道80的当前标准下,RF信号的频率大约是559.25MHz与大约6MHz的带宽,将上变频器106的输出施加给组合器/放大器108,该组合器/放大器108放大、调节并组合所接收的RF信号,然后将信号输出给传输介质10。Figure 1A depicts an
在示例性的实施例中,中央控制服务器102包括一个图形用户接口(未示出)以使服务提供商能通过拖放式操作规划数据传送。而且,中央控制服务器102验证并按照传送矩阵控制频道服务器104启动或停止。在一个示例的实施例中,中央控制服务器102自动地选择一个频道并计算用于在所选的频道内的传送数据文件的传送矩阵。该中央控制服务器102提供脱机的增加、删除以及数据文件信息(如持续时间、目录、费率和/或简要描述等)的更新。而且,中面控制服务器102通过更新数据文件和存储其中的数据库而控制中央存储装置103。In the exemplary embodiment,
在一个示例的实施例中,已有的有线电视系统120可以连续地将信号馈送进组合器/放大器108以提供非DOD业务给客户,因此按照本发明的DOD系统不会破坏现有的有线电视业务。In an exemplary embodiment, existing
图1B给出按照本发明的DOD系统的另一个示例性实施例。按照在图1A中所述的要素,DOD系统100包括一个开关矩阵112,频道监视模块114,一组备份频道服务器116a-116b,以及一套备份上变频器118a-118b。在一个实施例中,开关矩阵112物理地位于上变频器106与组合器/放大器108之间,开关矩阵112由客户控制服务器102控制,该频道监视模块114包括多个配置的机顶盒,其仿真潜在的客户,用于监视DOD系统100的运行状况。监视结果通过频道监视模块114传送给中央控制服务器102。在频道失效的情况下(如频道服务器失效、上变频器失效或通信链接失效等),中央控制服务器102至开关矩阵112脱离发生故障的部件并且结合一个良好备份部件116和/或118以恢复业务。FIG. 1B shows another exemplary embodiment of a DOD system according to the present invention. In accordance with the elements described in FIG. 1A,
在示例的实施例中,正在从DOD系统100广播的数据文件包含在运动图像专家组(MPEG)文件中,每个MPEG文件动态地分成数据块和沿着时间轴映射到数据文件的特定部分的子块。这些数据块和子块按照由中央控制服务器102提供的三维传送矩阵在预定的时间期间发送。对于DOD系统100提供DOD业务来说一个反馈频道不是必须的,但是如果一个反馈频道是可用的,该反馈频道可以用于其它目的,例如记帐或提供因特网服务等。In the exemplary embodiment, the data files being broadcast from the
图2表示按照本发明一个实施例的示例性频道服务器104。该频道服务器104包括一个服务器控制器202,一个CPU 204,一个QAM调制器206,一个本地存储器208以及网络接口210。该服务器控制器202通过指示CPU 204将数据文件划分成块(进一步划成子块和数据包)控制频道服务器104的整个操作,按照由中央控制服务器102提供的传送矩阵选择用于传输的数据块,编码所选的数据,压缩编码的数据,然后将压缩的数据传送到QAM调制器206。该QAM调制器206通过总线(或PCI,CPU本地总线)或以太网连接接收要传输的数据。在一个示例性的实施例中,QAM调制器可以包括一个下游QAM调制器,一个具有前向差错校正解码器的上游正交幅度调制/正交相移键控(QAM/QSK)冲突解调器,和/或一个上游调谐器。QAM调制器206的输出是可以直接施加给上变频器106的IF信号。Figure 2 illustrates an exemplary channel server 104 in accordance with one embodiment of the present invention. The channel server 104 includes a server controller 202, a CPU 204, a QAM modulator 206, a local memory 208 and a network interface 210. The server controller 202 controls the overall operation of the channel server 104 by instructing the CPU 204 to divide the data file into blocks (further into sub-blocks and data packets), select data blocks for transmission according to the transfer matrix provided by the
网络接口210将频道服务器104连接到其它的频道服务器104以及连接到中央控制服务器102以执行来自中央控制服务器102的规划和控制指令,向中央控制服务器102回报状态,以及从中央存储装置103接收数据文件。在按照来自服务器控制器202的指令处理数据文件之前,任何从中央存储装置103检索的数据文件可以存储在频道服务器104的本地存储器208。在一个示例的实施例中,频道服务器104可以发送一个或多个DOD数据流,这取决于有线频道的带宽(例如6,6.5或8MHz),QAM 64或QAM 256,以及DOD数据流(如MPEG-1或MPEG-2)的压缩标准或比特率。The network interface 210 connects the channel server 104 to other channel servers 104 and to the
图3示出了按照本发明的一个实施例的示例性的机顶盒(STB)300。STB 300包括QAM解调器302,CPU 304,条件访问模块306(例如智能卡系统),本地存储器308,缓冲存储器309,STB控制器310,解码器312以及图形重叠模块314。STB控制器310控制STB300的整个操作,其通过控制CPU 302和QAM解调器302以响应客户请求选择数据、解码所选的数据、解压缩解码数据、重新组装解码数据、在本地存储器308或缓冲存储器309内存储解码数据以及将存储的数据传送到解码器312。在一个示例的实施例中,STB控制器310基于从传输介质110接收的数据包内的数据包头控制STB300的整个操作。在一个示例的实施例中,本地存储器308包括非易失存储器(如硬盘)以及缓冲存储器包括易失存储器。Figure 3 illustrates an exemplary set-top box (STB) 300 in accordance with one embodiment of the present invention.
在一个实施例中,QAM解调器302包括发送器和接收器模块以及下列中的一个或多个:私人加密/解密模块,前向差错校正解码器/编码器,调谐器控制,下游和上游处理器,CPU和存储器接口电路。QAM解调器302接收调制的IF信号、采样和解调这些信号以恢复数据。In one embodiment,
该条件访问模块306允许在访问经过验证后被授权时或当相应的费用已变化时进行解码处理,访问的条件是由其服务提供商决定的。The
验证方法包括将订阅级别与报警级别直接插入到所传输的DOD数据的头中。在该方法中,STB 300读取这些访问级别并将它们与存储在STB 300内的访问级别进行对比。如果所存储的级别与随着DOD服务传送的订阅级别匹配,授权客户接收该服务。对于报警级别的情况,STB 300读取在DOD业务内传输的报警级别并显示与该报警级别相对应的消息。这些验证方法在Khoi Hoang的名称为“控制数据点播客户访问”(2001年7月19日递交的、并结合作为参考的申请号09/902,503)的专利申请进行了描述。The authentication method includes inserting the subscription level and alarm level directly into the header of the transmitted DOD data. In this method, the
在一个示例的实施例中,当访问被授权时,解码器312解码至少一个数据块以将数据块变换成可在输出屏上显示的图像。该解码器312支持来自订阅客户的命令,如播放、停止、暂停、步进、向后倒及向前倒等。In an example embodiment, when access is authorized,
图形重叠模块314通过例如提供α混合或画中画性能而增强所显示的图形质量。在一个实施例中,该图形重叠模块314可用于游戏播放模式期间的图形加速,例如当服务提供商利用按照本发明的系统提供游戏点播时。
在一个实施例中,尽管所有数据文件被广播到所有的有线电视订阅者,但是仅是具有兼容的STB 300的DOD订户能解码并享受数据点播业务。在一个示例的实施例中,可通过有条件的访问控制模块306内的一个智能卡系统而获得对数据文件点播的许可。智能卡系统可以本地商店或在服务提供商设置的零售商机器处进行再充电。在另一个示例的实施例中,一个无利息付费系统向订户提供对所有可用的数据文件的无限制的访问。In one embodiment, although all data files are broadcast to all cable subscribers, only DOD subscribers with a
在一个示例的实施例中,数据点播交互特征允许客户在任何时间选择一个可用的数据文件,客户按压一个选择按钮到所选的数据开始播放之间的时间称为响应时间。随着更多的资源被分配(例如带宽、服务器性能)以提供DOD业务,该响应时间变得越来越短。在一个示例的实施例中,可以根据对资源分配的评估以及期望的服务质量确定该响应时间。In an exemplary embodiment, the data-on-demand interactive feature allows the customer to select an available data file at any time, and the time between the customer pressing a selection button and the selected data starting to play is called the response time. This response time becomes shorter and shorter as more resources are allocated (eg bandwidth, server performance) to provide DOD services. In an exemplary embodiment, the response time may be determined based on an evaluation of resource allocation and expected quality of service.
在一个示例的实施例中,所选的响应时间确定时隙的持续时间。一个时隙(TS)的持续时间表示以正常速度播放一个数据模块的时间间隔。在一个示例的实施例中,数据文件如视频文件被分成多个数据块以便每个数据块可以在时隙的持续时间内支持对数据文件的播放。In an example embodiment, the selected response time determines the duration of the time slot. The duration of one time slot (TS) represents the time interval during which one data block is played at normal speed. In an exemplary embodiment, a data file, such as a video file, is divided into chunks such that each chunk can support playback of the data file for the duration of a time slot.
在一个实施例中,用于每个数据文件的数据块的数量(NUM_OF_BLKS)可以按照如下进行计算:In one embodiment, the number of data blocks (NUM_OF_BLKS) for each data file may be calculated as follows:
Estimated_BLK_Size=(DataFile Size*TS)/DataFile_Length (1)Estimated_BLK_Size=(DataFile Size*TS)/DataFile_Length (1)
BLK SIZE=(Estimated BLK Size+CLUSTER SIZE-1Byte)/CLUSTER_SIZE (2)BLK SIZE=(Estimated BLK Size+CLUSTER SIZE-1Byte)/CLUSTER_SIZE (2)
BLK_SIZE_BYTES=BLK_SIZE*CLUSTER_SIZE (3)BLK_SIZE_BYTES=BLK_SIZE*CLUSTER_SIZE (3)
NUM_OF_BLKS=(DataFile_Size+BLK_SIZE_BYTES-1Byte)/BLK_SIZE_BYTES (4)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字节)。在该实施例中,块的数量(NUM_OF_BLKS)等于数据文件大小(以字节为单位)加数据块大小(以字节为单位)减1字节,然后再除以数据块大小(以字节为单位)。等式(1)-(4)描述一个特定的实施例。本技术领域内的人将意识到另一个方法可用于计算数据文件的数据块的数量。例如,将数据文件分成多个数据块主要是估计的块尺寸与频道服务器104的本地存储器208的簇大小的函数(function),因此,本发明并不限于上述的具体实施例。In equations (1)-(4), Estimated_BLK_Size is the estimated block size (in bytes), DataFile_Size is the data file size (in bytes); TS represents the duration of the time slot (in seconds unit); DataFile_Length is the duration (in seconds) of the data file; BLK_Size is the number of clusters required for each data block; CLUSTER_SIZE is the size of the cluster for each channel server 104's local storage 208 (e.g., 64k byte). In this example, the number of blocks (NUM_OF_BLKS) is equal to the data file size (in bytes) plus the data block size (in bytes) minus 1 byte, divided by the data block size (in bytes as a unit). Equations (1)-(4) describe one particular embodiment. Those skilled in the art will recognize that another method can be used to count the number of data blocks of a data file. For example, dividing a data file into chunks is primarily a function of the estimated chunk size and the cluster size of the local storage 208 of the channel server 104, and thus, the invention is not limited to the specific embodiments described above.
图4描述了按照本发明一个实施例的用于产生一个发送数据文件的规划矩阵的示例性的处理过程。在一个示例的实施例中,本发明利用时分复用(TDM)以及频分复用(FDM)技术来在服务器侧压缩和规划数据传送。在一个示例的实施例中,为每个数据文件产生规划矩阵。在一个示例的实施例中每个数据文件被分成多个数据块并且根据数据块的数量产生该规划矩阵。一般地,一个规划矩阵提供用于从服务器向客户发送数据文件的数据块的发送顺序,以便该数据块可由在随机时间访问数据文件的任何客户按照序列顺序访问。FIG. 4 illustrates an exemplary process for generating a planning matrix for a transmission data file according to an embodiment of the present invention. In an exemplary embodiment, the present invention utilizes time division multiplexing (TDM) and frequency division multiplexing (FDM) techniques to compress and schedule data transfers at the server side. In an example embodiment, a planning matrix is generated for each data file. In an exemplary embodiment, each data file is divided into a plurality of data blocks and the planning matrix is generated according to the number of data blocks. In general, a planning matrix provides the order in which data blocks of a data file are sent from a server to clients so that the data blocks are accessible in sequential order by any client accessing the data file at random times.
在步骤402,接收数据文件的多个数据块(x)。一个第一变量j被设置为0(步骤404)。清除一个参考阵列(步骤406),为了内部管理的目的该参考阵列持续跟踪数据块。下一步,将j与x(步骤408)进行对比。如果j小于x,将第二变量i设置为0(步骤412)。下一步将i与x进行对比(步骤414)。如果i小于x,存储在规划矩阵的列[(i+j)mod(x)]内的数据块被写进参考阵列(步骤418)。如果参考阵列已经具有这样的数据块,则不再进行重复的拷贝。初始地,由于规划矩阵没有入口(entry),该步骤可以略过。下一步,检查参考阵列是否包含数据块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)时结束。At
在一个示例的实施例中,如果数据文件被分成6个数据块(x=6),该规划矩阵与参考矩阵如下:In an exemplary embodiment, if the data file is divided into 6 data blocks (x=6), the planning matrix and reference matrix are as follows:
规划矩阵(SM)Planning Matrix (SM)
参考矩阵(RA)Reference Matrix (RA)
在该示例的实施例中,基于上面的规划矩阵,该数据文件的6个数据块按照下列顺序发送:In this exemplary embodiment, based on the above planning matrix, the 6 data blocks of the data file are sent in the following order:
TS0blk0TS0 blk0
TS1blk0,blk1,blk3TS1 blk0, blk1, blk3
TS2blk0,blk2TS2 blk0, blk2
TS3blk0,blk1,blk3,blk4,TS3 blk0, blk1, blk3, blk4,
TS4blk0,blk4TS4 blk0, blk4
TS5blk0,blk1,blk2,blk5,TS5 blk0, blk1, blk2, blk5,
在另一个实施例中,一个先行(look-ahead)处理过程可以用于在预测的访问时间之前计算先行规划矩阵以发送一个数据文件的数据块的预定数量。例如,如果一个预定的先行时间是一个时隙的持续时间,对于任何大于或等于第四时隙的时隙,数据文件的数据块4(blk4)应当在TS时或其之前在订阅客户处由STB 300接收,但是blk4将是直到TS4才播放。用于产生向前规划矩阵的处理步骤基本上类似于上面参照图4描述的处理步骤,例外是在本实施例中的先行规划矩阵基本先行时间规划了一个更早的发送序列。假定数据文件被分成6个数据块,根据一个先行的规划矩阵的一个示例性发送序列(具有两个时隙的持续时间的先行时间)可以表述如下:In another embodiment, a look-ahead process may be used to compute a look-ahead planning matrix to send a predetermined number of data blocks of a data file before the predicted access time. For example, if a predetermined look-ahead time is the duration of a time slot, for any time slot greater than or equal to the fourth time slot, data block 4 (blk4) of the data file shall be issued at the subscribing client at or before
TS0blk0TS0 blk0
TS1blk0,blk1,blk3 blk4,TS1 blk0, blk1, blk3 blk4,
TS2blk0,blk2TS2 blk0, blk2
TS3blk0,blk1,blk3,blk4,blk5,TS3 blk0, blk1, blk3, blk4, blk5,
TS4blk0,blk5TS4 blk0, blk5
TS5blk0,blk1,blk2TS5 blk0, blk1, blk2
根据一组数据文件中每个数据文件的规划矩阵可产生用于发送一组数据文件的三维传送矩阵。在该三维传送矩阵中,在该数据文件组中可以产生包含每个数据文件的ID的第三维,计算该三维传送矩阵以有效地利用每个频道中的可用的带宽以传送多个数据流。在一个示例性的实施例中,本技术领域中已知的一种卷积方法用于产生三维传送矩阵以规划一组数据文件的有效传送。例如,一种卷积方法可包括下列策略:(1)在任何时隙(TS)的持续时间发送的数据块的全部数量应当保持在最小可用数量;以及(2)如果相对于策略(1)有多个部分方案(solution)可用,较佳的方案是将在任何参考的持续时间要发送的数据块、在先前时隙(相对参考时隙)的持续时间要发送的数据块以及在下一个时隙(相对参考时隙)的持续时间要发送的数据块相加而具有最小的数据块和的那个方案。例如假定一个发送两个短数据文件M和B的示例系统,在此每个数据文件被分成6个数据块,则基于规划矩阵的发送序列如下:A three-dimensional transmission matrix for sending a set of data files may be generated based on the planning matrix for each data file in the set of data files. In the three-dimensional transmission matrix, a third dimension containing the ID of each data file in the data file group can be generated, the three-dimensional transmission matrix is calculated to efficiently utilize the available bandwidth in each channel to transmit multiple data streams. In an exemplary embodiment, a convolution method known in the art is used to generate a three-dimensional transfer matrix to plan the efficient transfer of a set of data files. For example, a method of convolution may include the following policies: (1) the total number of data blocks transmitted for the duration of any time slot (TS) should be kept to the minimum available number; and (2) if relative to policy (1) There are several partial solutions available, the preferred solution is to combine the data blocks to be transmitted at any reference duration, the data blocks to be transmitted at the duration of the previous time slot (relative to the reference time slot), and the data blocks to be transmitted at the next time The scheme which has the smallest sum of data blocks by summing the data blocks to be transmitted for the duration of the slot (relative to the reference time slot). For example, assuming an example system that sends two short data files M and B, where each data file is divided into 6 data blocks, the sending sequence based on the planning matrix is as follows:
TS0blk0TS0 blk0
TS1blk0,blk1,blk3 blk4,TS1 blk0, blk1, blk3 blk4,
TS2blk0,blk2TS2 blk0, blk2
TS3blk0,blk1,blk3,blk4TS3 blk0, blk1, blk3, blk4
TS4blk0,blk4TS4 blk0, blk4
TS5blk0,blk1,blk2,blk5TS5 blk0, blk1, blk2, blk5
采用如上所述的示例方法,可用的传送矩阵的组合如下:Using the example method described above, the combinations of transfer matrices available are as follows:
选项1:在时移0TS发送视频文件N 整个数据块Option 1: Send video file N whole chunks at time shift 0TS
TS0M0,N0 2TS0 M0, N0 2
TS1M0,M1,M3,N0,N1,N3 6TS1 M0, M1, M3, N0, N1, N3 6
TS2M0,M2,N0,N2 4TS2 M0, M2, N0, N2 4
TS3M0,M1,M3,M4,N0,N1,N3,N4 8TS3 M0, M1, M3, M4, N0, N1, N3, N4 8
TS4M0,M4,N0,N4 4TS4 M0, M4, N0, N4 4
TS5M0,M1,M2,M5,N0,N1,N2,N5 8TS5 M0, M1, M2, M5, N0, N1, N2, N5 8
选项2:在时移1TS发送视频文件N 整个数据块Option 2: Send video file N whole chunks at time shift 1TS
TS0M0,N0,N1,N3 4TS0 M0, N0, N1, N3 4
TS1M0,M1,M3,N0,N2 5TS1 M0, M1, M3, N0, N2 5
TS2M0,M2,N0,N1,N3,N4 6TS2 M0, M2, N0, N1, N3, N4 6
TS3M0,M1,M3,M4,N0,N4 6TS3 M0, M1, M3, M4, N0, N4 6
TS4M0,M4,N0,N1,N2,N5 6TS4 M0, M4, N0, N1, N2, N5 6
TS5M0,M1,M2,M5,N0 5TS5 M0, M1, M2, M5, N0 5
选项3:在时移2TS发送视频文件N 整个数据块Option 3: Send video file N whole chunks at time shift 2TS
TS0M0,N0,N2 3TS0 M0, N0, N2 3
TS1M0,M1,M3,N0,N1,N3,N4 7TS1 M0, M1, M3, N0, N1, N3, N4 7
TS2M0,M2,N0,N4 4TS2 M0, M2, N0, N4 4
TS3M0,M1,M3,M4,N0,N1,N2,N5 8TS3 M0, M1, M3, M4, N0, N1, N2, N5 8
TS4M0,M4,N0 3TS4 M0, M4, N0 3
TS5M0,M1,M2,M5,N0,N1,N3 7TS5 M0, M1, M2, M5, N0, N1, N3 7
选项4:在时移3TS发送视频文件N 整个数据块Option 4: Send video file N entire chunks at time shift 3TS
TS0M0,N0,N1,N3,N4 5TS0 M0, N0, N1, N3, N4 5
TS1M0,M1,M3,N0,N4 5TS1 M0, M1, M3, N0, N4 5
TS2M0,M2,N0,N1,N2,N5 6TS2 M0, M2, N0, N1, N2, N5 6
TS3M0,M1,M3,M4,N0 5TS3 M0, M1, M3, M4, N0 5
TS4M0,M4,N0,N1,N3 5TS4 M0, M4, N0, N1, N3 5
TS5M0,M1,M2,M5,N0,N1,N2 6TS5 M0, M1, M2, M5, N0, N1, N2 6
选项5:在时移4TS发送视频文件N 整个数据块Option 5: Send video file N entire chunks at time shift 4TS
TS0M0,N0,N4 3TS0 M0, N0, N4 3
TS1M0,M1,M3,N0,N1,N2,N5 7TS1 M0, M1, M3, N0, N1, N2, N5 7
TS2M0,M2,N0 3TS2 M0, M2, N0 3
TS3M0,M1,M3,M4,N0,N1,N3 7TS3 M0, M1, M3, M4, N0, N1, N3 7
TS4M0,M4,N0,N2 4TS4 M0, M4, N0, N2 4
TS5M0,M1,M2,M5,N0,N1,N3,N4 8TS5 M0, M1, M2, M5, N0, N1, N3, N4 8
选项6:在时移5TS发送视频文件N 整个数据块Option 6: Send video file N whole chunks at time shift 5TS
TS0M0,N0,N1,N2,N5 5TS0 M0, N0, N1, N2, N5 5
TS1M0,M1,M3,N0 4TS1 M0, M1, M3, N0 4
TS2M0,M2,N0,N1,N3 5TS2 M0, M2, N0, N1, N3 5
TS3M0,M1,M3,M4,N0,N2 6TS3 M0, M1, M3, M4, N0, N2 6
TS4M0,M4,N0,N1,N3,N4 6TS4 M0, M4, N0, N1, N3, N4 6
TS5M0,M1,M2,M5,N0,N4 6TS5 M0, M1, M2, M5, N0, N4 6
采用策略(1),选项2,4,6具有在任何时隙期间发送的数据块(如6个数据块)的最小数量。采用策略(2),在示例的实施例中优化的传送矩阵是选项4,因为选项具有任何参考时隙的数据块加相邻时隙(如16个数据块)的数据块的最小和。因此,本实施例优化地,数据文件N的发送序列应是被移动三个时隙。在一个示例的实施例中,为每个频道服务器104产生一个三维传送矩阵。With strategy (1), options 2, 4, 6 have a minimum number of data blocks (eg 6 data blocks) sent during any time slot. With strategy (2), the optimized transmission matrix in the example embodiment is option 4, since option has the smallest sum of data blocks of any reference slot plus data blocks of adjacent slots (eg, 16 data blocks). Therefore, optimally in this embodiment, the sending sequence of the data file N should be shifted by three time slots. In an exemplary embodiment, a three-dimensional delivery matrix is generated for each channel server 104 .
当按照传送矩阵为每个数据文件传送数据块时,大量的订阅客户可以随机地访问该数据文件,以及该数据文件的相应数据块对于每个订阅客户来说也是可以及时访问的。在上面提供的例子中,假定时隙的持续时间等于5秒,DOD系统100以下列方式按照优化的传送矩阵发为数据文件M和N发送数据块(即,将数据文件N的传送序列移动三个时隙):When data blocks are transmitted for each data file according to the transmission matrix, a large number of subscribing clients can randomly access the data file, and corresponding data blocks of the data file can also be accessed in time for each subscribing client. In the example provided above, assuming that the duration of the time slot is equal to 5 seconds,
时间00:00:00M0 N0 N1 N3 N4Time 00:00:00 M0 N0 N1 N3 N4
时间00:00:05M0 M1 M3 N0 N4time 00:00:05 M0 M1 M3 N0 N4
时间00:00:10M0 M2 N0 N1 N2 N5Time 00:00:10 M0 M2 N0 N1 N2 N5
时间00:00:15M0 M1 M3 M4 N0time 00:00:15 M0 M1 M3 M4 N0
时间00:00:20M0 M4 N0 N1 N3Time 00:00:20 M0 M4 N0 N1 N3
时间00:00:25M0 M1 M2 M5 N0 N2time 00:00:25 M0 M1 M2 M5 N0 N2
时间00:00:30M0 N0 N1 N3 N4Time 00:00:30 M0 N0 N1 N3 N4
时间00:00:35M0 M1 M3 N0 N4time 00:00:35 M0 M1 M3 N0 N4
时间00:00:40M0 M2 N0 N1 N2 N5time 00:00:40 M0 M2 N0 N1 N2 N5
时间00:00:45M0 M1 M3 M4 N0time 00:00:45 M0 M1 M3 M4 N0
时间00:00:50M0 M4 N0 N1 N3time 00:00:50 M0 M4 N0 N1 N3
时间00:00:55M0 M1 M2 M5 N0 N2time 00:00:55 M0 M1 M2 M5 N0 N2
如果在时间00:00:00,客户A选择电影M,在客户A处的STB 300就会按照如下接收、存储、播放以及拒绝数据块:If at time 00:00:00, client A selects movie M, the
时间00:00:00接收M0播放M0,存储M0Time 00:00:00 Receive M0 Play M0, store M0
时间00:00:05接收M1,M3播放M1,存储M0,M1,M3time 00:00:05 Receive M1, M3 Play M1, store M0, M1, M3
时间00:00:10接收M2播放M2,存储M0,M1,M2,M3Time 00:00:10 Receive M2 Play M2, Store M0, M1, M2, M3
时间00:00:15接收M4播放M3,存储M0,M1,M2,M3,M4time 00:00:15 Receive M4 Play M3, store M0, M1, M2, M3, M4
时间00:00:20接收无播放M4,存储M0,M1,M2,M3,M4Time 00:00:20 receive none Play M4, store M0, M1, M2, M3, M4
时间00:00:25接收M5播放M5,存储M0,M1,M2,M3,M4,M5time 00:00:25 Receive M5 Play M5, Store M0, M1, M2, M3, M4, M5
如果在时间00:00:10,客户B选择电影M,在客户B处的STB 300就会按照如下接收、存储、播放以及拒绝数据块:If at time 00:00:10, client B selects movie M, the
时间00:00:10接收M0,M2播放M0,存储M0,M2Time 00:00:10 Receive M0, M2 Play M0, Store M0, M2
时间00:00:15接收M1,M3,M4播放M1,存储M0,M1,M2,M3,M4time 00:00:15 Receive M1, M3, M4 Play M1, Store M0, M1, M2, M3, M4
时间00:00:20接收无播放M2,存储M0,M1,M2,M3,M4Time 00:00:20 receive none Play M2, Store M0, M1, M2, M3, M4
时间00:00:25接收M5播放M3,存储M0,M1,M2,M3,M4,M5time 00:00:25 Receive M5 Play M3, store M0, M1, M2, M3, M4, M5
时间00:00:30接收无播放M4,存储M0,M1,M2,M3,M4,M5Time 00:00:30 receive none Play M4, store M0, M1, M2, M3, M4, M5
时间00:00:35接收无播放M5,存储M0,M1,M2,M3,M4,M5time 00:00:35 receive none Play M5, Store M0, M1, M2, M3, M4, M5
如果在时间00:00:15,客户C选择电影N,在客户C处的STB 300就会按照如下接收、存储、播放以及拒绝数据块:If at time 00:00:15, client C selects movie N, the
时间00:00:15接收N0播放N0,存储N0time 00:00:15 Receive N0 Play N0, store N0
时间00:00:20接收N1,N3播放N1,存储N0,N1,N3Time 00:00:20 Receive N1, N3 Play N1, Store N0, N1, N3
时间00:00:25接收N2播放N2,存储N0,N1,N2,N3time 00:00:25 Receive N2 Play N2, Store N0, N1, N2, N3
时间00:00:30接收N4播放N3,存储N0,N1,N2,N3,N4Time 00:00:30 Receive N4 Play N3, Store N0, N1, N2, N3, N4
时间00:00:35接收无播放N4,存储N0,N1,N2,N3,N4time 00:00:35 receive none Play N4, store N0, N1, N2, N3, N4
时间00:00:40接收N5播放N5,存储N0,N1,N2,N3,N4,N5time 00:00:40 Receive N5 Play N5, Store N0, N1, N2, N3, N4, N5
如果在时间00:00:30,客户D选择电影N,在客户D处的STB 300就会按照如下接收、存储、播放以及拒绝数据块:If at time 00:00:30, client D selects movie N, the
时间00:00:30接收N0,N1,N3,N4播放N0,存储N0,N1,N3,N4Time 00:00:30 Receive N0, N1, N3, N4 Play N0, Store N0, N1, N3, N4
时间00:00:35接收无播放N1,存储N0,N1,N3,N4time 00:00:35 receive none Play N1, Store N0, N1, N3, N4
时间00:00:40接收N2,N5播放N2,存储N0,N1,N2,N3,N4,N5time 00:00:40 Receive N2, N5 Play N2, Store N0, N1, N2, N3, N4, N5
时间00:00:45接收无播放N3,存储N0,N1,N2,N3,N4,N5time 00:00:45 receive none Play N3, Store N0, N1, N2, N3, N4, N5
时间00:00:50接收无播放N4,存储N0,N1,N2,N3,N4,N5time 00:00:50 receive none Play N4, Store N0, N1, N2, N3, N4, N5
时间00:00:55接收无播放N5,存储N0,N1,N2,N3,N4,N5time 00:00:55 receive none Play N5, Store N0, N1, N2, N3, N4, N5
如上面例子所示的,任意的客户组合都可以随机地独立地选择和开始播放由服务提供商提供的任意的数据文件。如果对于上述实施例有足够的带宽用于传输给定的数据文件,就可以利用下面讨论的子优化传输规划以更少的时间延迟传输更多数量的数据。尽管上面的方法向客户提供了时间优化方式的通用DOD服务,但是下列的方法还可以向客户提供通用DOD广播服务,该服务作为与延迟访问时间的交换可进一步降低所要求的带宽。As shown in the above example, any combination of customers can independently select and start playing any data file provided by the service provider at random. If there is sufficient bandwidth for the transfer of a given data file for the embodiments described above, a greater amount of data can be transferred with less time delay using the sub-optimized transfer plan discussed below. While the above approach provides clients with generic DOD services in a time-optimized manner, the following approach can also provide clients with generic DOD broadcast services that further reduce required bandwidth in exchange for delayed access times.
图5描述了用于在500产生子优化规划矩阵的示例方法。按照一个实施例,本发明利用时分复用(TDM)以及频分复用(FDM)技术来在服务器侧压缩和规划数据传送。在一个示例的实施例中,为每个数据文件产生子优化规划矩阵。在一个实施例中,每个数据文件被分成多个数据块并且根据数据块的数量产生该子优化规划矩阵。一个子优化规划矩阵提供用于从服务器向客户发送数据文件的数据块的发送顺序,以便这些数据块可由在随机时间的一个时隙内访问数据文件的任何客户按照序列顺序访问。FIG. 5 depicts an example method for generating a sub-optimization planning matrix at 500 . According to one embodiment, the present invention utilizes time division multiplexing (TDM) and frequency division multiplexing (FDM) techniques to compress and schedule data transfers at the server side. In an exemplary embodiment, a sub-optimization planning matrix is generated for each data file. In one embodiment, each data file is divided into multiple data blocks and the sub-optimized planning matrix is generated according to the number of data blocks. A sub-optimization planning matrix provides a sending order for data blocks of the data file to be sent from the server to clients such that the data blocks are accessible in sequential order by any client accessing the data file within a time slot at random time.
在步骤502,接收数据文件的多个数据块(x)。一个第一变量j被设置为0(步骤504)。清除一个参考阵列(步骤506),为了内部管理的目的该参考阵列持续跟踪数据块。下一步,将j与x(步骤508)进行对比。如果j小于x,将第二变量i设置为0(步骤512)。下一步将i与x进行对比(步骤514)。如果i小于x,存储在子优化规划矩阵的列[(i+j)mod(x)]内的数据块被写进参考阵列(步骤518)。如果参考阵列已经具有这样的数据块,则不再进行重复的拷贝。初始地,由于子优化规划矩阵没有入口,该步骤可以略过。下一步,检查参考阵列是否包含数据块i(步骤520)。初始地,由于参考阵列的所有入口已经在步骤506被清除,在参考阵列将没有任何东西。如果参考阵列不包含数据块i,检查子优化规划矩阵的先前列(i-1)看是否矩阵的列(i-1)包含数据块i(步骤521),该数据块i被加到子优化规划矩阵的位置[(i+j)mod(x),j]和参考阵列(步骤522)。在数据块i被加到子优化规划矩阵和参考阵列后,将i增加1,以便i=i+1(步骤524),然后在步骤514重复该处理过程直到i=x。如果参考阵列包含数据块i或子优化规划矩阵的列(i-1)包含数据块i,将i加1,以便i=i+1(步骤524),随后处理过程在步骤514重复直到i=x。当i=x时,将j加1以便j=j+1(步骤516)并且处理过程在步骤506重复直到j=x。整个过程在j=x(步骤510)时结束。At
在一个示例的实施例中,如果数据文件被分成6个数据块(x=6),该规划矩阵与参考矩阵如下:In an exemplary embodiment, if the data file is divided into 6 data blocks (x=6), the planning matrix and reference matrix are as follows:
规划矩阵(SM)Planning Matrix (SM)
参考矩阵(RA)Reference Matrix (RA)
在该示例的实施例中,基于上面的子优化规划矩阵,该数据文件的6个数据块按照下列顺序发送:In this exemplary embodiment, based on the sub-optimization planning matrix above, the 6 data blocks of the data file are sent in the following order:
TS0blk0TS0 blk0
TS1blk1,blk3TS1 blk1, blk3
TS2blk0,blk2TS2 blk0, blk2
TS3blk1,blk3,blk4TS3 blk1, blk3, blk4
TS4blk0,blk4TS4 blk0, blk4
TS5blk1,blk2,blk5TS5 blk1, blk2, blk5
当与图4的示例的“优化”规划序列进行对比时,该示例的“子优化”规划序列3个或更少的数据块,这样所导致的传输可以利用示例的子优化规划并要求18.75或更少的带宽。该子优化规划要求一个接收STB延迟显示所选的数据文件给用户一个时隙的持续时间。When compared to the "optimized" plan sequence of the example of Figure 4, the "suboptimal" plan sequence of this example is 3 or fewer data blocks, such that the resulting transfer can utilize the example suboptimal plan and require 18.75 or Less bandwidth. The sub-optimization plan requires a receiving STB to delay displaying the selected data file to the user for the duration of one slot.
本技术领域内人明白上述实施例的子优化规划仅是无数多个可用的方案中一个,在传输数据文件所要求的带宽上的更大的减少可以通过使用STB访问时间内更大的延迟来达到。Those skilled in the art understand that the sub-optimization plan of the above embodiment is only one of countless available solutions, and that a larger reduction in the bandwidth required to transmit data files can be achieved by using a larger delay in the STB access time. achieve.
图6描述了按照本发明一个实施例的用于接收子优化DOD数据传输的示例性的STB方法。该处理600起始于步骤602,在此STB300(图3)从DOD广播系统100(图1A)接收一个电子指南程序(EPG),该EPG列出在DOD系统100内所有可用的文件。在步骤603,用户通过按一个与期望的数据文件相关的购买按钮而选择在EPG上列出的一个数据文件。在步骤604,STB 300(图3)开始存储所选数据文件的数据块,该STB等待足够的时间周期以允许所选数据文件的足够的数据块存储以便STB可以无中断地播放该数据文件。按照一个实施例CPU 304(图3)能确定必须有多少延迟以确保平稳地播放所选的数据文件。这可以利用各种算法完成或仅通过在从DOD系统100传输的数据内的包头位置内仅包含所要求的延迟信息来完成。在这样一个实施例中,DOD系统改变子优化传送矩阵以所要求的延迟时隙的数量取决于可用的传输带宽。FIG. 6 depicts an exemplary STB method for receiving sub-optimized DOD data transmissions in accordance with one embodiment of the present invention. The
一旦STB延迟了足够长以存储无中断播放所选的数据文件所必须的数据块,STB自动地开始播放所选的数据文件,按照另外一个实施例,一旦完成了延迟周期,STB提示用户开始播放所选的数据文件。Once the STB has delayed long enough to store the data chunks necessary to play the selected data file without interruption, the STB automatically begins playing the selected data file. According to another embodiment, the STB prompts the user to begin playback once the delay period is complete. selected data file.
一般操作general operation
一个服务提供商可以在广播之前规划发送多个数据文件(例如视频文件)到频道服务器104。该中央控制服务器102计算并向频道服务器104发送三维传送矩阵(ID,时隙,以及数据块发送顺序)。在广播期间,频道服务器104咨询三维传送矩阵以按照合适的顺序发送相应的数据块。每个数据文件被分成数据块以便大量的订阅客户可以独立地开始连续地并且序列随机地观看数据文件。数据文件中数据块的大小取决于规划的时隙的持续时间以及数据文件中数据流的比特率。例如,在恒定的比特率MPEG数据流中,每个数据块具有固定的大小:Block Size(块大小)(MB)=比特率(Mb/s)×TS(s)/8(1)。A service provider may plan to send multiple data files (eg, video files) to channel server 104 prior to broadcasting. The
在一个示例的实施例中,调整数据块尺寸为频道服务器104的本地存储器208内的存储器簇尺寸的下一个更高值。例如,如果按照上面的公式(1)计算的数据块长度是720Kb,则如果本地存储器208的簇尺寸是64Kb那么所得到的数据块长度应当是768Kb。在该实施例中,数据块应当是进一步分成多个子块,每个具有与簇尺寸相同的大小。在该例中,数据块具有64Kb的12个子块。In an example embodiment, the block size is adjusted to the next higher value of the memory cluster size within the local memory 208 of the channel server 104 . For example, if the data block length calculated according to the above formula (1) is 720Kb, then if the cluster size of the local storage 208 is 64Kb then the obtained data block length should be 768Kb. In this embodiment, the data block should be further divided into a number of sub-blocks, each having the same size as the cluster size. In this example, the data block has 12 sub-blocks of 64Kb.
子块可以进一步分成数据包,每个数据包包括有包头和包数据,包数据长度取决于每个频道服务器的CPU向其发送数据的物理层的最大传输单元(MTU)。在优选实施例中,包头和包数据的整个大小应小于MTU。但为为了获得最大效率,包数据长度应当尽可能地长。The sub-blocks can be further divided into data packets, each data packet includes a packet header and packet data, and the length of the packet data depends on the maximum transmission unit (MTU) of the physical layer to which the CPU of each channel server sends data. In a preferred embodiment, the overall size of the packet header and packet data should be smaller than the MTU. But for maximum efficiency, the packet data length should be as long as possible.
在示例的实施例中,包头中的数据包含允许订阅客户的STB 300解码所有接收的数据以及确定该数据包是否属于所选的数据文件(例如协议签名,版本,ID或包信息等)的信息。包头也可包含其它的信息,例如所要求的子优化延迟周期,块/子块/包数量,包长度,循环冗余检测(CRC),子块内的偏移和/编码信息。In the exemplary embodiment, the data in the packet header contains information that allows the subscribing client's
一旦频道服务器104接收到,数据包被发送到QAM调制器206,在此,另一个包头被加到数据包以产生一个QAM调制的IF输出信号。QAM调制器206的最大比特率输出取决于可用的带宽。例如对于具有6MHz带宽的QAM调制器206,最大的比特率是5.05(比特/符号)×6(MHz)=30.3Mb/s。Once received by channel server 104, the data packet is sent to QAM modulator 206 where another header is added to the data packet to produce a QAM modulated IF output signal. The maximum bit rate output of QAM modulator 206 depends on the available bandwidth. For example, for a QAM modulator 206 with a bandwidth of 6 MHz, the maximum bit rate is 5.05 (bits/symbol) x 6 (MHz) = 30.3 Mb/s.
QAM调制的IF信号被发送到上变频器106以变换成适用于特定频道(例如CATV频道80,559.250MHz以及6MHz宽)的RF信号。例如,如果有线网络是高带宽(或高比特率),每个频道可以用于提供更多的数据流,而每个数据流只占用一个虚拟的子频道。例如,利用QAM调制可将三个MPEG1数据流送入6MHz的频道。上变频器106的输出被提供给组合器/放大器108,其将组合的信号发送到传输介质110。The QAM modulated IF signal is sent to an upconverter 106 for conversion into an RF signal suitable for a particular channel (eg, CATV channel 80, 559.250 MHz and 6 MHz wide). For example, if the cable network is high bandwidth (or high bit rate), each channel can be used to provide more data streams, while each data stream only occupies a virtual sub-channel. For example, three MPEG1 data streams can be sent into a 6MHz channel using QAM modulation. The output of upconverter 106 is provided to combiner/
在示例的实施例中,用于发送“N”个数据流的整个系统带宽(BW)是BW=N×bw,其中bw是每个数据流所要求的带宽。例如,三个MPEG-1数据流可以由具有30.3Mb/s系统带宽的DOCSIS有线频道同时发送,因为每个MPEG-1数据流占用系统带宽的9Mb/s。In the exemplary embodiment, the overall system bandwidth (BW) for sending "N" data streams is BW = N x bw, where bw is the bandwidth required for each data stream. For example, three MPEG-1 data streams can be sent simultaneously by a DOCSIS cable channel with a system bandwidth of 30.3 Mb/s, since each MPEG-1 data stream occupies 9 Mb/s of the system bandwidth.
不管实际访问DOD业务的订阅客户的数量如何,都要消耗带宽。因此,即便是没有订阅客户使用DOD业务,仍然要消耗带宽以确保系统的点播能力。Bandwidth is consumed regardless of the number of subscribing customers actually accessing the DOD service. Therefore, even if no subscribers use the DOD service, bandwidth is still consumed to ensure the system's on-demand capability.
一旦打开,STB 300连续地接收和更新存储在STB 300的本地存储器308内的节目指南。在一个示例的实施例中,STB显示包含有TV屏幕上最新的节目指南的数据文件信息。数据文件信息如视频文件信息包括电影ID,电影名称、描述(以多种语言)、归类(动作片、儿童片),级别(例如R,PG13),有线公司规则(例如价格,免费牟取预览长度),订阅周期,电影海报以及电影预览等。在一个示例的实施例中,通过保留的物理频道例如为固件(firmware)更新、商业和、或冲突事件信息保留的频道发送数据文件信息。在一个示例的实施例中,通过与其它数据流共享的物理频道发送信息。Once turned on, the
一个订阅客户可以查看按照显示在电视屏幕上的归类排列的可用的数据文件。当客户选择一个可用的数据文件时,STB 300控制它的硬件调谐进一个对应的物理频道和/或一个虚拟的子频道以开始接收针对该数据文件的数据包。STB 300检查每个数据包头,解码数据包中的数据以及确定是否应保留所接收的数据包。如果STB 300确定不应保留该数据包,则丢弃该数据包,否则在本地存储器308中保存该数据包以便以后检索或暂时地存储在缓冲存储器309中直到发送到解码器312。A subscribing customer can view available data files arranged by category displayed on the TV screen. When the client selects an available data file, the
为了通过避免到本地存储器308的频繁的读/写来改进性能效率,在一个示例的实施例中,STB 300使用“滑动窗”应用技术来锁定存储器缓存器309中预料的数据块。如果在应用窗中发生了一个事件(hit),数据块则直接从存储器缓存器309中输出传送到解码器。如果一个应用遗漏(miss)发生,则数据块从本地存储器308读进存储器缓存器309之后,数据块从存储器缓存器309传送到解码器312。To improve performance efficiency by avoiding frequent reads/writes to
在一个示例实施例中,STB 300通过红外(IR)远程控制单元按钮、IR键盘或前台按钮(包括暂停按钮、缓慢移动播放、反转、成套设备以及单步)响应于订阅客户的命令。在一个示例实施例中,如果订阅客户在预定的时间周期内没有输入任何动作(例如滚动节目菜单或选择归类或电影),就会自动地播放一个规划的商业广告。当订阅客户提供一个动作时(如按远程控制单元的按钮)该规划的商业广告自动地停止。在一个示例实施例中,STB 300可以自动地播放商业广告,同时,播放视频。服务提供商(如有线公司)可以设置售价策略以指定多少次的广告应中断正在播放的视频。In one example embodiment, the
如果在数据包头中发现突发事件信息比特,STB暂停任何数据接收操作并控制其硬件调谐到为接收数据文件信息所保留的频道以获取并解码要在输出屏上显示的突发事件信息。在一个示例实施例中,STB 300是空闲的,它被调谐到为接收数据文件信息所保留的频道并且总是准备好无延迟地接收和显示任何突发事件信息。If an emergency information bit is found in the packet header, the STB suspends any data receiving operations and controls its hardware to tune to the channel reserved for receiving data file information to acquire and decode the emergency information to be displayed on the output screen. In one example embodiment,
前述的示例描述了本发明的特定示例实施例,但对本技术领域内的人来说其它实施例、变化以及修改是很明显的。本发明因此并不限于上面讨论的特定的实施例,而是由所附的权利要求限定。The foregoing examples describe specific example embodiments of the invention, but other embodiments, changes and modifications will be apparent to those skilled in the art. The invention is therefore not limited to the particular embodiments discussed above, but only by the appended claims.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/841,792 | 2001-04-24 | ||
| US09/841,792US20020023267A1 (en) | 2000-05-31 | 2001-04-24 | Universal digital broadcast system and methods |
| US09/870,879US20020026646A1 (en) | 2001-04-24 | 2001-05-30 | Universal STB architectures and control methods |
| US09/870,879 | 2001-05-30 | ||
| US09/892,015US20030208561A1 (en) | 2000-05-31 | 2001-06-25 | Counterfeit STB prevention through protocol switching |
| US09/892,017US20020026501A1 (en) | 2000-05-31 | 2001-06-25 | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices |
| US09/892,015 | 2001-06-25 | ||
| US09/892,017 | 2001-06-25 | ||
| US09/902,503 | 2001-07-09 | ||
| US09/902,503US20020049980A1 (en) | 2000-05-31 | 2001-07-09 | Controlling data-on-demand client access |
| US09/933,696US20020059620A1 (en) | 2000-05-31 | 2001-08-20 | Selective inactivation and copy-protection |
| US09/933,696 | 2001-08-20 | ||
| US36420101P | 2001-10-25 | 2001-10-25 | |
| US10/003,642 | 2001-10-25 | ||
| US09/997,968US20020138845A1 (en) | 2000-05-31 | 2001-11-28 | Methods and systems for transmitting delayed access client generic data-on demand services |
| US09/997,968 | 2001-11-28 |
| Publication Number | Publication Date |
|---|---|
| CN1411279A CN1411279A (en) | 2003-04-16 |
| CN100405845Ctrue CN100405845C (en) | 2008-07-23 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB021182000AExpired - Fee RelatedCN100405845C (en) | 2001-04-24 | 2002-04-24 | Method and system for transmission delay access to customer generic data-on-demand services |
| Country | Link |
|---|---|
| JP (1) | JP2005506725A (en) |
| CN (1) | CN100405845C (en) |
| WO (1) | WO2002086673A2 (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006048033A1 (en)* | 2004-11-03 | 2006-05-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and device for performance optimisation of a data distribution network |
| CN102867371A (en)* | 2012-09-19 | 2013-01-09 | 四川德源电气有限公司 | Charging pile |
| CN105138384B (en)* | 2015-10-15 | 2018-09-18 | 珠海格力电器股份有限公司 | Air conditioner and program upgrading method and device thereof |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0749241A2 (en)* | 1995-06-15 | 1996-12-18 | International Business Machines Corporation | Fixed video-on-demand |
| WO1998056128A1 (en)* | 1997-06-06 | 1998-12-10 | Webtv Networks, Inc. | Transmitting high bandwidth network content on a low bandwidth communications channel during off peak hours |
| US5892508A (en)* | 1995-04-25 | 1999-04-06 | Bellsouth Corporation | System and method for providing television services |
| US5995092A (en)* | 1996-08-30 | 1999-11-30 | Yuen; Henry C. | Television system and method for subscription of information services |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6018359A (en)* | 1998-04-24 | 2000-01-25 | Massachusetts Institute Of Technology | System and method for multicast video-on-demand delivery system |
| US6157949A (en)* | 1998-05-28 | 2000-12-05 | Industrial Technology Research Institute | Data placement on direct access devices for media servers with cyclic re-broadcast capability |
| US6370688B1 (en)* | 1999-05-26 | 2002-04-09 | Enounce, Inc. | Method and apparatus for server broadcast of time-converging multi-media streams |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5892508A (en)* | 1995-04-25 | 1999-04-06 | Bellsouth Corporation | System and method for providing television services |
| EP0749241A2 (en)* | 1995-06-15 | 1996-12-18 | International Business Machines Corporation | Fixed video-on-demand |
| US5995092A (en)* | 1996-08-30 | 1999-11-30 | Yuen; Henry C. | Television system and method for subscription of information services |
| WO1998056128A1 (en)* | 1997-06-06 | 1998-12-10 | Webtv Networks, Inc. | Transmitting high bandwidth network content on a low bandwidth communications channel during off peak hours |
| Publication number | Publication date |
|---|---|
| CN1411279A (en) | 2003-04-16 |
| WO2002086673A2 (en) | 2002-10-31 |
| JP2005506725A (en) | 2005-03-03 |
| WO2002086673A3 (en) | 2003-07-03 |
| Publication | Publication Date | Title |
|---|---|---|
| US6725267B1 (en) | Prefetched data in a digital broadcast system | |
| EP1389874B1 (en) | Fast digital channel changing | |
| US20020175998A1 (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
| US20030084461A1 (en) | Method and apparatus for transmitting non-VOD services | |
| US20030051249A1 (en) | System and method for data insertion (commercials) in client generic data-on-demand broadcast transmissions | |
| US20020026501A1 (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices | |
| US20020138845A1 (en) | Methods and systems for transmitting delayed access client generic data-on demand services | |
| JP5038574B2 (en) | Method for providing video-on-demand services for broadcast systems | |
| CN100405845C (en) | Method and system for transmission delay access to customer generic data-on-demand services | |
| KR20030092105A (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
| EP1340376A1 (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 | |
| EP1402331A2 (en) | Methods and systems for transmitting delayed access client generic data-on demand services | |
| WO2003048894A2 (en) | System and methods for data insertion (commercials) in client generic data-on-demand broadcast transmissions | |
| KR20040063795A (en) | Transmission of delayed access client data and demand | |
| KR20030051800A (en) | Decreased idle time and constant bandwidth data-on-demand broadcast delivery ma-trices | |
| Kermode | A novel method for video-on-demand via digital broadcast | |
| HK1047633A (en) | Systems and methods for providing video-on-demand services for broadcasting systems | |
| HK1063405B (en) | Fast digital channel changing | |
| HK1124714A (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
| HK1063405A (en) | Fast digital channel changing |
| 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:20080723 |