Movatterモバイル変換


[0]ホーム

URL:


KR20040063795A - Transmission of delayed access client data and demand - Google Patents

Transmission of delayed access client data and demand
Download PDF

Info

Publication number
KR20040063795A
KR20040063795AKR10-2003-7013978AKR20037013978AKR20040063795AKR 20040063795 AKR20040063795 AKR 20040063795AKR 20037013978 AKR20037013978 AKR 20037013978AKR 20040063795 AKR20040063795 AKR 20040063795A
Authority
KR
South Korea
Prior art keywords
data
file
time
data file
sequence
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.)
Withdrawn
Application number
KR10-2003-7013978A
Other languages
Korean (ko)
Inventor
코이 호앙
Original Assignee
프레디웨이브 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US09/841,792external-prioritypatent/US20020023267A1/en
Priority claimed from US09/892,015external-prioritypatent/US20030208561A1/en
Priority claimed from US09/892,017external-prioritypatent/US20020026501A1/en
Priority claimed from US09/902,503external-prioritypatent/US20020049980A1/en
Priority claimed from US09/933,696external-prioritypatent/US20020059620A1/en
Priority claimed from US10/003,642external-prioritypatent/US20030084461A1/en
Priority claimed from US09/997,968external-prioritypatent/US20020138845A1/en
Application filed by 프레디웨이브 코포레이션filedCritical프레디웨이브 코포레이션
Priority claimed from PCT/US2002/012752external-prioritypatent/WO2002086673A2/en
Publication of KR20040063795ApublicationCriticalpatent/KR20040063795A/en
Withdrawnlegal-statusCriticalCurrent

Links

Classifications

Landscapes

Abstract

Translated fromKorean

본 발명의 데이터 블록의 클라이언트 포괄 시퀀스를 전송하기 위한 DOD 방송 방법은 준최적 시간 전달 특성을 가지는, 데이터 블록의 클라이언트 포괄 데이터 전송 시퀀스를 준비하는 것(104n); 수신 클라이언트가 사전결정된 시간내에 상기 데이터 파일의 억세스를 시작할 수 있도록 상기 준최적 전송 시퀀스에 따른 데이터 블록의 시퀀스로 구성되는 데이터 파일을 클라이언트에 전송하는 것(108, 110)을 포함한다. 상기 시퀀스의 준비는 데이터 파일을 수신하는 것; 시간 간격을 지정하는 것; 각 데이터 블록이 상기 시간 간격 동안 디스플레이될 수 있도록 시간 간격에 기초하여 상기 데이터 파일을 데이터 블록으로 해부하는 것; 각각 상기 시간 간격과 실질적으로 동일한 기간을 가지는, 데이터 파일을 송신하기 위한 소요 시간 슬롯 수를 결정하는 것; 및 데이터 블록 중 하나에 각 시간 슬롯을 할당하는 것을 포함한다.A DOD broadcast method for transmitting a client comprehensive sequence of a data block of the present invention comprises preparing 104n a client comprehensive data transmission sequence of a data block, having suboptimal time propagation characteristics; Sending (108, 110) a data file consisting of a sequence of data blocks according to the sub-optimal transmission sequence to the client so that a receiving client can begin accessing the data file within a predetermined time. Preparation of the sequence includes receiving a data file; Specifying a time interval; Dissecting the data file into data blocks based on time intervals such that each data block can be displayed during the time interval; Determining a number of time slots for transmitting a data file, each having a period substantially equal to the time interval; And assigning each time slot to one of the data blocks.

Description

Translated fromKorean
지연된 억세스 클라이언트 데이터 및 요청의 전송{TRANSMISSION OF DELAYED ACCESS CLIENT DATA AND DEMAND}Transmission of delayed access client data and requests {TRANSMISSION OF DELAYED ACCESS CLIENT DATA AND DEMAND}

주문형 비디오(VOD; video-on-demand) 시스템은 주문형 데이터(DOD; data-on-demand) 시스템의 일 유형이다. VOD 시스템에서, 비디오 데이터 파일은 주문에 기초하여 서버 또는 서버 네트워크에 의해 하나 또는 그 이상의 클라이언트에게 제공된다.Video-on-demand (VOD) systems are a type of data-on-demand (DOD) systems. In a VOD system, video data files are provided to one or more clients by a server or server network based on the order.

종래의 VOD 아키텍쳐에서, 서버 또는 서버 네트워크는 표준 계층 클라이언트-서버 모델로 클라이언트와 통신한다. 예로서, 클라이언트는 데이터 파일(예로서, 비디오 데이터 파일)에 대한 요청을 서버에 보낸다. 클라이언트 요청에 응답하여, 서버는 요청된 파일을 클라이언트에게 보낸다. 표준 클라이언트-서버 모델에서, 데이터 파일에 대한 클라이언트의 요청은 하나 또는 그 이상의 서버에 의해 충족될 수 있다. 클라이언트는 추후 사용을 위해 불휘발성 메모리내에 로컬식으로 소정의 수신된 데이터 파일을 저장하기 위한 기능을 가질 수 있다. 현재, 현존하는 케이블이 1방 통신만을 제공할 수 있기 때문에, 2방 통신은 새로운 인프라구조를 구축하는 것을 필요로 한다. 2방 통신 인프라구조의 예는 혼합 광섬유 동축 케이블(HFC) 또는 전 섬유(all fiber) 인프라구조이다. 현존하는 케이블을 교체하는 것은 매우 많은 비용이 소요되며, 결과적인 서비스를 대부분의 사용자들에게 제공할 수 없을 수 있다.In a conventional VOD architecture, a server or server network communicates with a client in a standard layer client-server model. As an example, the client sends a request for a data file (eg, a video data file) to the server. In response to the client request, the server sends the requested file to the client. In the standard client-server model, a client's request for a data file can be satisfied by one or more servers. The client may have the capability to store any received data file locally in nonvolatile memory for later use. Currently, since existing cables can only provide one-way communication, two-way communication requires building a new infrastructure. Examples of two-way communication infrastructures are mixed fiber coaxial cable (HFC) or all fiber infrastructures. Replacing existing cables is very expensive and may not be able to provide the resulting service to most users.

부가적으로, 서비스 공급자(예로서, 케이블 회사)가 다수의 클라이언트에게 VOD 서비스를 제공하고자 할 때, 표준 클라이언트-서버 모델은 많은 한계점을 가진다. 표준 클라이언트-서버 모델의 한가지 한계점은 서비스 공급자가 네트워크내의 각 클라이언트로부터의 모든 요청을 연속적으로 수신 및 충족시키기 위한 메카니즘을 이행하여야만 하며; 따라서, 서비스를 수신할 수 있는 클라이언트의 수가 이런 메카니즘의 용량에 의존한다는 것이다. 한가지 메카니즘은 로컬 서버로서 대용량 및 고속 디스크 어레이를 가지는 대량-병렬 컴퓨터를 사용한다. 그러나, 가장 빠른 현존하는 로컬 서버조차도 단지 한번에 약 1000 내지 2000 클라이언트에게만 비디오 데이터 스트림을 전달할 수 있다. 따라서, 보다 많은 클라이언트에게 서비스하기 위해서는, 로컬 서버의 수가 증가하여야만 한다. 로컬 서버의 증가는 로컬 서버의 제어를 유지하기 위한 보다 많은 상위 서버를 필요로 한다.In addition, the standard client-server model has many limitations when a service provider (eg, cable company) wants to provide VOD services to a large number of clients. One limitation of the standard client-server model is that the service provider must implement a mechanism to continuously receive and satisfy all requests from each client in the network; Thus, the number of clients that can receive a service depends on the capacity of this mechanism. One mechanism uses mass-parallel computers with large and fast disk arrays as local servers. However, even the fastest existing local servers can only deliver video data streams to about 1000 to 2000 clients at a time. Thus, in order to serve more clients, the number of local servers must increase. The growth of local servers requires more parent servers to maintain control of local servers.

표준 클라이언트-서버 모델의 다른 한계점은 각 클라이언트가 그 자체의 대역폭을 필요로 한다는 것이다. 따라서, 총 소요 대역폭은 가입 클라이언트의 수에 직접적으로 비례한다. 대역폭 한계를 향상시키기 위해 로컬 서버내의 캐시 메모리가 사용되어왔지만, 캐시 메모리도 한정되어 있기 때문에, 캐시 메모리를 사용하는 것은 문제를 해결할 수 없다.Another limitation of the standard client-server model is that each client needs its own bandwidth. Thus, the total required bandwidth is directly proportional to the number of subscribing clients. Cache memory in the local server has been used to increase the bandwidth limit, but because cache memory is also limited, using cache memory does not solve the problem.

현재, 보다 많은 클라이언트에게 제공할 수 있는 주문형 비디오 서비스를 구현하기 위해서, 현존하는 서비스 공급자는 로컬 서버의 기능을 초과하여 로컬 서버당 클라이언트의 비율을 증가시키고 있다. 통상적으로, 1000 클라이언트까지 서비스를 제공할 수 있는 로컬 서버는 실제 10,000 클라이언트에 대한 서비스를 담당하게 된다. 이 기술은 대부분의 가입 클라이언트가 동시에 비디오를 주문하지 않는 경우에 동작할 수 있다. 그러나, 이 기술은 대부분의 클라이언트가 동시에(예로서, 저녁 및 주말) 비디오를 시청하기를 원하여 이런 피크 시간 동안 로컬 서버가 과부하되기 쉽기 때문에, 고장나기 쉬운 설정이다.Currently, to implement on-demand video services that can be delivered to more clients, existing service providers are increasing the ratio of clients per local server beyond the capabilities of local servers. Typically, a local server capable of serving up to 1000 clients will be in charge of serving 10,000 actual clients. This technique can work if most of the subscribing clients do not order video at the same time. However, this technique is a vulnerable setting because most clients want to watch video at the same time (eg evening and weekend) and the local server is likely to overload during this peak time.

따라서, 현존하는 인프라구조를 교체하지 않고, 실질적으로 모든 전송 매체를 경유하여 다수의 클라이언트에게 주문형 서비스를 제공할 수 있은 시스템을 제공하는 것이 적합하다. 또한, 가입 고객의 수에 무관한 전송 대역폭을 가지는 클라이언트 포괄 방송 시스템을 제공하는 것이 적합하다. 또한, 감축된 전송 대역폭을 필요로 하는 클라이언트 포괄 준최적(sub-optimal) 주문형 데이터 서비스를 제공할 수 있는 시스템을 제공하는 것이 적합하다.Thus, it is appropriate to provide a system that can provide on-demand services to a large number of clients via virtually all transmission media without replacing existing infrastructure. It is also suitable to provide a client comprehensive broadcast system having a transmission bandwidth independent of the number of subscribing customers. It would also be appropriate to provide a system that can provide client sub-optimal on-demand data services that require reduced transmission bandwidth.

본 발명은 일반적으로 주문형 데이터(data-on-demand) 시스템에 관한 것이다. 특히, 본 발명은 데이터 전송 스케줄링에 관한 것이다.The present invention generally relates to data-on-demand systems. In particular, the present invention relates to data transmission scheduling.

도 1A는 본 발명의 실시예에 따른 양호한 DOD 시스템을 예시하는 도면.1A illustrates a preferred DOD system in accordance with an embodiment of the present invention.

도 1B는 본 발명의 다른 실시예에 따른 양호한 DOD 시스템을 예시하는 도면.1B illustrates a preferred DOD system according to another embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 양호한 채널 서버를 예시하는 도면.2 illustrates a preferred channel server according to an embodiment of the invention.

도 3은 본 발명의 실시예에 따른 양호한 셋-톱 박스를 예시하는 도면.3 illustrates a preferred set-top box in accordance with an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 스케줄링 매트릭스를 생성하기 위한 양호한 프로세스를 예시하는 도면.4 illustrates a preferred process for generating a scheduling matrix in accordance with an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 준최적 스케줄링 매트릭스를 생성하기위한 양호한 프로세스를 예시하는 도면.5 illustrates a preferred process for generating a suboptimal scheduling matrix in accordance with one embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 준최적 스케줄링 매트릭스를 사용하여 전송된 데이터 파일을 디스플레이하기 위한 양호한 STB 프로세스를 예시하는 도면.6 illustrates a preferred STB process for displaying a data file transmitted using a suboptimal scheduling matrix in accordance with one embodiment of the present invention.

본 발명은 쌍방향 통신에 대한 필요 없이, 좁은 대역폭을 거쳐 동시에 다수의 클라이언트에게 하나 이상의 데이터 파일을 데이터 블록의 감축 대역폭 클라이언트 포괄 시퀀스로서 전송할 수 있는 DOD 방송 시스템을 제공한다. 또한, 본 발명은 클라이언트에 의해 주문된 데이터 파일의, 클라이언트 포괄 포맷을 경유한 데이터 파일 방송을 단시간내에 재생하기 시작할 수 있는 STB를 제공한다. 또한, 지능형 STB가 데이터 파일 재생을 시작하기 이전에 데이터 파일의 부분들을 로딩할 수 있게 하기 위해 클라이언트 억세스 시간을 지연시킴으로써 보다 대역폭 효율적인 데이터 파일 다운로딩 방법이 제공된다.The present invention provides a DOD broadcast system capable of transmitting one or more data files as a reduced bandwidth client encompassing sequence of data blocks to multiple clients simultaneously over a narrow bandwidth without the need for bidirectional communication. In addition, the present invention provides an STB which can start reproducing a data file broadcast via a client comprehensive format of a data file ordered by a client in a short time. In addition, a more bandwidth efficient data file downloading method is provided by delaying client access time to enable the intelligent STB to load portions of the data file before starting data file playback.

간단히, 본 발명의 일 양태는 각 데이터 파일이 데이터 블록의 감축형 클라이언트 포괄 시퀀스로서 전송되는, 복수의 데이터 파일을 전송하기 위한 주문형 데이터(DOD) 방송 시스템내에 구현되며, 이는 복수의 데이터 파일을 방송하기 위한 DOD 방송 서버; DOD 방송 서버와 통신적으로 결합된 전송 매체 및 통신 매체를 경유하여 DOD 방송 서버와 통신적으로 결합된 복수의 수신기를 포함하고, DOD 방송 서버는 전송 매체를 경유하여, 복수의 수신기에게 복수의 데이터 파일을 감축형 클라이언트 포괄 포맷으로 반복적으로 전송하고; 수신기는 선택된 데이터 파일에 대응하는 인증 정보를 요청하도록 동작하며; 수신기는 인증 정보를 수신하도록 추가로 동작하고; 수신기는 사전결정된 시간 주기 이후에 사용자에게 선택된 데이터 파일의 일부를 디스플레이하도록 추가로 동작하며, 사전결정된 시간 주기는 데이터 파일의 디스플레이를 시작하기 이전에, 수신기가 데이터 파일의 일부를 수신할 수 있게 한다.Briefly, one aspect of the present invention is implemented in an on-demand data (DOD) broadcasting system for transmitting a plurality of data files, wherein each data file is transmitted as a reduced client comprehensive sequence of data blocks, which broadcasts a plurality of data files. DOD broadcast server for; A transmission medium communicatively coupled to the DOD broadcast server and a plurality of receivers communicatively coupled to the DOD broadcast server via a communication medium, wherein the DOD broadcast server transmits a plurality of data to the plurality of receivers via the transmission medium. Repeatedly transmitting the file in the reduced client generic format; The receiver is operative to request authentication information corresponding to the selected data file; The receiver is further operative to receive authentication information; The receiver further operates to display a portion of the selected data file to the user after a predetermined time period, the predetermined time period allowing the receiver to receive a portion of the data file before starting display of the data file. .

본 발명의 다른 실시예는 데이터 블록의 준최적 시퀀스를 전송하기 위한 주문형 데이터(DOD) 방송 방법을 교지하며, 이는 시퀀스내의 어떠한 두 인접 데이터 블록도 동일하지 않은, 데이터 블록의 준최적 데이터 전송 시퀀스를 준비하는 작업; 수신 클라이언트가 사전결정된 시간 주기내에 데이터 파일을 억세스하기 시작할 수 있도록 클라이언트 비지정(non client specific)식으로 준최적 전송 시퀀스에 따라 데이터 블록의 시퀀스를 구성하는 데이터 파일을 복수의 클라이언트에게 전송하는 작업을 포함한다. 또한, 사전결정된 시간 주기는 기간이며, 이 기간은 데이터 블록의 시퀀스 중 하나 이상에 포함된 정보에 응답한다. 준최적 데이터 전송 시퀀스를 준비하는 작업은 데이터 파일 수신 작업; 시간 간격 지정 작업; 이 시간 간격 동안 각 데이터 블록이 디스플레이될 수 있도록 이 시간 간격에 기반하여 데이터 파일을 복수의 데이터 블록으로 해부하는 작업; 시간 간격과 실질적으로 동일한 기간을 각각 가지는, 데이터 파일을 송신하기 위한 소요 시간 슬롯 수를 결정하는 작업; 복수의 데이터 블록 중 적어도 하나에 각 시간 슬롯을 할당하는 작업을 포함한다.Another embodiment of the present invention teaches a method of on-demand data (DOD) broadcasting for transmitting a suboptimal sequence of data blocks, which indicates a suboptimal data transmission sequence of data blocks in which no two adjacent data blocks in the sequence are identical. Work to prepare; Sending the data files constituting the sequence of data blocks to a plurality of clients in a sub-optimal transfer sequence in a client non-client specific manner so that the receiving client can begin accessing the data file within a predetermined time period. do. The predetermined time period is also a period, which responds to information contained in one or more of the sequence of data blocks. Preparing a suboptimal data transfer sequence includes: receiving a data file; Time interval specification operation; Dissecting the data file into a plurality of data blocks based on this time interval so that each data block can be displayed during this time interval; Determining a number of time slots for transmitting the data file, each having a period substantially equal to the time interval; Allocating each time slot to at least one of the plurality of data blocks.

주문형 데이터 시스템은 제 1 채널 서버 집합, 제 1 채널 서버 집합을 제어하기 위한 중앙 제어 서버, 제 1 채널 서버 집합에 연결된 제 1 업-컨버터(up-converter) 집합, 제 1 업-컨버터 집합에 연결된 조합기/증폭기 및 전송 매체를 경유하여 데이터를 전송하도록 적용되는 조합기/증폭기를 포함한다. 양호한 실시예에서, 주문형 데이터 시스템은 시스템을 감시하기 위한 채널 감시 모듈, 스위치 매트릭스, 제 2 채널 서버 집합 및 제 2 업-컨버터 집합을 추가로 포함한다. 채널 감시 모듈은 시스템 고장 발생시 중앙 제어 서버에 보고하도록 구성된다. 중앙 제어 서버는 채널 감시 모듈로부터의 보고에 응답하여, 스위치 매트릭스가 제 1 채널 서버 집합내의 결손 채널 서버를 제 2 채널 서버 집합내의 채널 서버로 교체하고, 제 1 업-컨버터 집합내의 결손 업-컨버터를 제 2 업-컨버터 집합내의 업-컨버터로 교체하도록 지령한다.The on-demand data system includes a first set of channel servers, a central control server for controlling the first set of channel servers, a first set of up-converters connected to the set of first channel servers, and a set of first up-converters. A combiner / amplifier and a combiner / amplifier adapted to transmit data via the transmission medium. In a preferred embodiment, the on-demand data system further comprises a channel monitoring module, a switch matrix, a second channel server set and a second up-converter set for monitoring the system. The channel monitoring module is configured to report to the central control server when a system failure occurs. In response to the report from the channel monitoring module, the central control server replaces the missing channel server in the first channel server set with the channel server in the second channel server set and replaces the missing up-converter in the first up-converter set. To replace the up-converter in the second up-converter set.

준최적 데이터 블록 시퀀스로서 전송된 데이터 파일을 수신하는 방법은 적어도 하나의 선택된 데이터 파일을 나타내는 사용자 입력을 수신하는 작업; 사전결정된 시간 주기 동안 메모리 위치내에 준최적 데이터 블록 시퀀스의 복수의 데이터 블록 중 하나 이상을 저장하는 작업; 사전결정된 시간 주기 경과 이후, 적어도 데이터 파일의 제 1 부분은 사용자에게 디스플레이하는 작업; 준최적 데이터 블록 시퀀스의 복수의 데이터 블록 중 적어도 하나의 추가 데이터 블록을 수신하는 작업 및 적어도 하나의 저장된 데이터 블록을 적어도 하나의 추가 데이터 블록과 조합함으로써 사용자에게 적어도 데이터 파일의 제 2 부분을 디스플레이하는 작업을 포함한다.A method of receiving a data file transmitted as a sub-optimal data block sequence includes receiving user input representing at least one selected data file; Storing one or more of the plurality of data blocks of the suboptimal data block sequence in a memory location for a predetermined time period; After a predetermined time period has elapsed, at least the first portion of the data file is displayed by the user; Receiving at least one additional data block of the plurality of data blocks of the suboptimal data block sequence and combining the at least one stored data block with the at least one additional data block to display at least a second portion of the data file to the user. Includes work.

용어 셋-톱-박스는 텔레비전에 부착되는 디바이스에 한정되는 것을 의도하는 것이 아니며, 진보된 텔레비전 시스템 및 컴퓨터를 포함하는 본 발명의 방법에 따른 방송 전송을 수신할 수 있는 소정의 디바이스를 포함할 수 있다.The term set-top-box is not intended to be limited to devices attached to televisions, but may include any device capable of receiving broadcast transmissions in accordance with the method of the present invention, including advanced television systems and computers. have.

본 발명은 쌍방향 통신을 필요로 하지 않고, 좁은 대역폭을 거쳐 동시에 다수의 클라이언트에게 데이터 블록의 준최적 시퀀스로서 하나 또는 그 이상의 데이터 파일을 전송할 수 있는 DOD 방송 시스템을 제공한다. 또한, 본 발명은 클라이언트에 의해 주문된 데이터 파일의 데이터 파일을 단시간내에 재생하기 시작할 수 있는 STB를 제공한다. 또한, 데이터 파일 재생 시작 이전에, 지능형 STB가 데이터 파일의 부분을 로딩할 수 있도록 클라이언트 억세스 시간을 지연시킴으로써 보다 대역폭 효율적인 데이터 파일 다운로딩 방법이 제공된다.The present invention provides a DOD broadcast system capable of transmitting one or more data files as suboptimal sequences of data blocks to multiple clients simultaneously over a narrow bandwidth without requiring bidirectional communication. The present invention also provides an STB that can start playing back a data file of a data file ordered by a client in a short time. In addition, a more bandwidth efficient data file downloading method is provided by delaying client access time so that the intelligent STB can load a portion of the data file before data file playback starts.

전송 대역폭을 최소화하면서, 전송 DOD 데이터를 최대화하는 일부 근원적 방법은 일정 대역폭 전달 매트릭스를 사용하는 것과 감소된 유휴 시간 매트릭스를 사용하는 것을 포함한다. 이들 및 다른 방법은 Khoi Hoang의 상기 참조 발명에서 고려되었다. 이들 방법이 시간 최적화 방법으로 클라이언트 포괄 DOD 서비스를 제공하지만, 억세스 시간 지연을 대가로 소요 전송 대역폭을 추가로 감소시키는, 클라이언트 포괄 DOD 방송 서비스를 제고하는 다른 가능성이 존재한다.Some underlying methods of maximizing the transmission DOD data, while minimizing the transmission bandwidth, include using a constant bandwidth transfer matrix and using a reduced idle time matrix. These and other methods have been considered in Khoi Hoang's above reference invention. While these methods provide a client-inclusive DOD service as a time optimization method, there is another possibility of improving the client-inclusive DOD broadcast service, which further reduces the required transmission bandwidth in exchange for access time delay.

도 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)의 출력은 대응 업-컨버터(106)를 위한 적절한 주파수를 가지는 구적 진폭 변조(QAM) 변조된 중간 주파수(IF) 신호이다. QAM-변조 IF 신호는 적용된 표준에 의존한다. 미국에서 현재 적용된 표준은 데이터-오버-케이블-시스템-인터페이스-제원(DOCSIS) 표준이며, 이는 약 43.75MHz IF 주파수를 필요로 한다. 업-컨버터(106)는 채널 서버(104)로부터 수신된 IF 신호를 라디오 주파수 신호(RF 신호)로 변환한다. 주파수 및 대역폭을 포함하는 RF 신호는 원하는 채널 및 적용된 표준에 의존한다. 예로서, 케이블 텔레비전 채널 80을 위한 미국에서의 현용 표준하에서, RF 신호는 약 559.25MHz의 주파수와 약 6MHz의 대역폭을 가진다. 업-컨버터(106)의 출력은 조합기/증폭기(108)에 인가된다. 조합기/증폭기(108)는 수신된 RF 신호를 증폭, 상태조절 및 조합하고, 그후, 이 신호를전송 매체(110)에 출력한다.1A illustrates a preferred DOD system 100 in accordance with one embodiment of the present invention. In this embodiment, the DOD system 100 provides a data file, such as a video file, on demand. However, the DOD system 100 is not limited to providing video files on demand, and may also provide other data files such as game files on the basis of the order. The DOD system 100 includes a central control server 102, a central storage 103, a plurality of channel servers 104a-104n, a plurality of up-converters 106a-106n and a combiner / amplifier 108. . The central control server 102 controls the channel server 104. The central storage 103 stores the data file in digital format. In a preferred embodiment, the data file stored in the central storage 103 is accessed via a standard network interface (eg, ethernet connection) by any authorized computer, such as the central control server 102, connected to the network. can do. Each channel server 104 is assigned to a channel and connected to up-converter 106. The channel server 104 provides the data file retrieved from the central storage unit 103 according to the instruction from the central control server 102. The output of each channel server 104 is a quadrature amplitude modulated (QAM) modulated intermediate frequency (IF) signal with an appropriate frequency for the corresponding up-converter 106. The QAM-modulated IF signal depends on the standard applied. The standard currently applied in the United States is the data-over-cable-system-interface-specification (DOCSIS) standard, which requires about 43.75 MHz IF frequency. Up-converter 106 converts the IF signal received from channel server 104 into a radio frequency signal (RF signal). The RF signal, including frequency and bandwidth, depends on the desired channel and the applied standard. As an example, under current standards in the United States for cable television channel 80, the RF signal has a frequency of about 559.25 MHz and a bandwidth of about 6 MHz. The output of up-converter 106 is applied to combiner / amplifier 108. The combiner / amplifier 108 amplifies, conditioning, and combines the received RF signals and then outputs these signals to the transmission medium 110.

양호한 실시예에서, 중앙 제어 서버(102)는 서비스 공급자가 드래그-앤-드롭 작업으로 데이터 전달을 스케줄링할 수 있게 하도록 그래픽 사용자 인터페이스(미도시)를 포함한다. 또한, 중앙 제어 서버(102)는 전달 매트릭스에 따른 시작 및 정지를 위해 채널 서버(104)를 인증 및 제어한다. 양호한 실시예에서, 중앙 제어 서버(102)는 자동으로 채널을 선택하고, 선택된 채널의 데이터 파일 전송을 위해 전달 매트릭스를 계산한다. 중앙 제어 서버(102)는 데이터 파일 정보(예로서, 기간, 카테고리, 등급 및/또는 요약설명)의 오프라인 추가, 삭제 및 갱신을 제공한다. 또한, 중앙 제어 서버(102)는 내부에 저장된 데이터 베이스 및 데이터 파일을 갱신함으로써 중앙 저장부(103)를 제어한다.In a preferred embodiment, the central control server 102 includes a graphical user interface (not shown) to enable the service provider to schedule data delivery in a drag-and-drop operation. The central control server 102 also authenticates and controls the channel server 104 for start and stop according to the delivery matrix. In the preferred embodiment, the central control server 102 automatically selects a channel and calculates a delivery matrix for the data file transfer of the selected channel. The central control server 102 provides offline addition, deletion and update of data file information (eg, period, category, rating and / or summary). The central control server 102 also controls the central storage unit 103 by updating the database and data files stored therein.

양호한 실시예에서, 현존하는 케이블 텔레비전 시스템(120)은 클라이언트에게 비-DOD 서비스를 제공하도록 신호를 조합기/증폭기(108)에 계속 공급할 수 있다. 따라서, 본 발명에 따른 DOD 시스템(100)은 현재의 케이블 텔레비전 서비스를 방해하지 않는다.In the preferred embodiment, the existing cable television system 120 may continue to supply signals to the combiner / amplifier 108 to provide non-DOD services to the client. Thus, the DOD system 100 according to the present invention does not interfere with current cable television services.

도 1B는 본 발명에 따른 DOD 시스템(100)의 다른 양호한 실시예를 예시한다. 도 1A에 예시된 소자에 부가하여, DOD 시스템(100)은 스위치 매트릭스(112), 채널 감시 모듈(114), 백-업 채널 서버(116a-116b)의 집합 및 백-업 컨버터(118a-118b)의 집합을 포함한다. 일 실시예에서, 스위치 매트릭스(112)는 중앙 제어 서버(102)에 의해 제어된다. 채널 감시 모듈(114)은 복수의 구성된 셋-톱 박스를 포함하며, 이는 DOD 시스템(100)의 상태를 감시하기 위한 잠재적 클라이언트를 시뮬레이션한다. 감시 결과는 채널 감시 모듈(114)에 의해 중앙 제어 서버(102)에 통신된다. 채널 고장(즉, 채널 서버 고장, 업-컨버터 고장 또는 통신 링크 고장)의 경우에, 중앙 제어 서버(102)는 스위치 매트릭스(112)를 통해 기능고장 콤포넌트를 분리시키고, 서비스를 재개하기 위해 양호한 백업 콤포넌트(116 및/또는 118)를 결합시킨다.1B illustrates another preferred embodiment of a DOD system 100 in accordance with the present invention. In addition to the elements illustrated in FIG. 1A, the DOD system 100 includes a switch matrix 112, a channel monitoring module 114, a collection of back-up channel servers 116a-116b, and a back-up converter 118a-118b. ) Contains a set. In one embodiment, the switch matrix 112 is controlled by the central control server 102. Channel monitoring module 114 includes a plurality of configured set-top boxes, which simulate a potential client to monitor the status of DOD system 100. The monitoring result is communicated to the central control server 102 by the channel monitoring module 114. In the event of a channel failure (i.e. channel server failure, up-converter failure or communication link failure), central control server 102 disconnects the malfunctioning component via switch matrix 112 and provides a good backup to resume service. Join components 116 and / or 118.

양호한 실시예에서, DOD 시스템(100)으로부터 방송된 데이터 파일은 동영상 전문가 그룹(MPEG) 파일로 보유된다. 각 MPEG 파일은 시간축을 따른 데이터 파일의 특정 부분 대해 맵핑되는 데이터 블록 및 서브-블록으로 동적으로 분할된다. 이들 데이터 블록 및 서브-블록은 중앙 제어 서버(102)에 의해 제공된 3차원 전달 매트릭스에 따라 사전결정된 시간 동안 송신된다. 피드백 채널은 DOD 서비스를 제공하기 위해 DOD 시스템(100)에 필수적이지 않다. 그러나, 피드백 채널이 가용한 경우에, 피드백 채널은 과금 또는 인터넷 서비스 제공 같은 다른 목적을 위해 사용될 수 있다.In a preferred embodiment, the data file broadcast from the DOD system 100 is retained as a moving picture expert group (MPEG) file. Each MPEG file is dynamically divided into data blocks and sub-blocks that are mapped to specific portions of the data file along the time axis. These data blocks and sub-blocks are transmitted for a predetermined time in accordance with the three-dimensional transfer matrix provided by the central control server 102. The feedback channel is not essential to the DOD system 100 to provide a DOD service. However, where a feedback channel is available, the feedback channel can be used for other purposes, such as charging or providing Internet services.

도 2는 본 발명의 일 실시예에 따른 양호한 채널 서버(104)를 예시한다. 채널 서버(104)는 서버 콘트롤러(202), CPU(204), QAM 변조기(206), 로컬 메모리(208) 및 네트워크 인터페이스(210)를 포함한다. 서버 콘트롤러(202)는 데이터 파일을 블록(추가로 서브-블록 및 데이터 패킷)으로 분할하고, 중앙 제어 서버(102)에 의해 제공된 전달 매트릭스에 따라 전송을 위한 데이터 블록을 선택하고, 선택된 데이터를 인코딩하고, 인코딩된 데이터를 압축하고, 그후, 압축된 데이터를 QAM 변조기(206)에 전달하도록 CPU(204)에게 지령함으로써 채널 서버(104)의전체 동작을 제어한다. QAM 변조기(206)는 버스(예로서, PCI, CPU 로컬 버스) 또는 에터넷 접속을 경유하여 전송대상 데이터를 수신한다. 양호한 실시예에서, QAM 변조기(206)는 다운스트림 QAM 변조기, 전진 에러 보정 디코더를 구비한 업스트림 구적 진폭 변조/구적 위상 이동 키잉(QAM/QPSK) 브러스트 변조기, 및/또는 업스트림 튜너를 포함할 수 있다. QAM 변조기(206)의 출력은 업-컨버터(106)에 직접적으로 인가될 수 있는 IF 신호이다.2 illustrates a preferred channel server 104 in accordance with one embodiment of the present invention. 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 divides the data file into blocks (additional sub-blocks and data packets), selects data blocks for transmission according to the delivery matrix provided by the central control server 102, and encodes the selected data. And control the overall operation of the channel server 104 by compressing the encoded data and then instructing the CPU 204 to deliver the compressed data to the QAM modulator 206. The QAM modulator 206 receives the data to be transmitted via a bus (eg, PCI, CPU local bus) or an ethernet connection. In a preferred embodiment, the QAM modulator 206 may comprise a downstream QAM modulator, an upstream quadrature amplitude modulation / quadrant phase shift keying (QAM / QPSK) burst modulator with a forward error correction decoder, and / or an upstream tuner. have. The output of QAM modulator 206 is an IF signal that can be applied directly to up-converter 106.

네트워크 인터페이스(210)는 중앙 제어 서버(102)로부터의 스케줄링 및 제어 지령을 실행하고, 중앙 제어 서버(102)에 상태를 보고하고, 중앙 저장부(103)로부터 데이터 파일을 수신하기 위해 채널 서버(104)를 다른 채널 서버(104) 및 중앙 제어 서버(102)에 접속시킨다. 중앙 저장부(103)로부터의 소정의 데이터 파일은 데이터 파일이 서버 콘트롤러(202)로부터의 지령에 따라 처리되기 이전에 채널 서버(104)의 로컬 메모리(208)내에 저장될 수 있다. 양호한 실시예에서, 채널 서버(104)는 케이블 채널의 대역폭(예로서, 6, 6.5 또는 8MHz), QAM 변조(예로서, QAM 64 또는 QAM 256) 및 DOD 데이터 스트림의 압축 표준/비트 전송율(즉, MPEG-1 또는 MPEG-2)에 의존하여 하나 또는 그 이상의 DOD 데이터 스트림을 송신할 수 있다.The network interface 210 executes scheduling and control commands from the central control server 102, reports status to the central control server 102, and receives a data file from the central storage 103. 104 is connected to other channel servers 104 and central control server 102. The predetermined data file from the central storage 103 may be stored in the local memory 208 of the channel server 104 before the data file is processed according to the instructions from the server controller 202. In a preferred embodiment, the channel server 104 is configured to provide the bandwidth of the cable channel (e.g., 6, 6.5 or 8 MHz), the QAM modulation (e.g., QAM 64 or QAM 256) and the compression standard / bit rate of the DOD data stream (i.e. , MPEG-1 or MPEG-2) may transmit one or more DOD data streams.

도 3은 본 발명의 실시예에 따른 양호한 셋-톱 박스(STB)(300)를 예시한다. STB(300)는 QAM 복조기(302), CPU(304), 조건부 억세스 모듈(306; conditional access module), 로컬 메모리(308), 버퍼 메모리(309), STB 콘트롤러(310), 디코더(312) 및 그래픽 오버레이 모듈(314)을 포함한다. STB 콘트롤러(310)는 클라이언트의 요청에 응답하여 데이터를 선택하고, 선택된 데이터를 디코딩하고, 디코딩된 데이터를 압축해제하고, 디코딩된 데이터를 재조합하고, 로컬 메모리(308) 또는 버퍼 메모리(309)내에 디코딩된 데이터를 저장하고, 디코더(312)에 저장된 데이터를 전달하도록 CPU(302) 및 QAM 복조기(302)를 제어함으로써 STB(300)의 전체 동작을 제어한다. 양호한 실시예에서, STB 콘트롤러(310)는 전송 매체(110)로부터 수신된 데이터 패킷내의 데이터 헤더에 기초하여 STB(300)의 전체 동작을 제어한다. 양호한 실시예에서, 로컬 메모리(308)는 불휘발성 메모리(예로서, 하드 드라이브)를 포함하고, 버퍼 메모리(309)는 휘발성 메모리를 포함한다.3 illustrates a preferred set-top box (STB) 300 according to an embodiment of the invention. STB 300 includes QAM demodulator 302, CPU 304, conditional access module 306, local memory 308, buffer memory 309, STB controller 310, decoder 312, and Graphic overlay module 314. The STB controller 310 selects data in response to a client's request, decodes the selected data, decompresses the decoded data, recombines the decoded data, and stores it in local memory 308 or buffer memory 309. The overall operation of the STB 300 is controlled by storing the decoded data and controlling the CPU 302 and the QAM demodulator 302 to deliver the stored data to the decoder 312. In a preferred embodiment, the STB controller 310 controls the overall operation of the STB 300 based on the data header in the data packet received from the transmission medium 110. In a preferred embodiment, local memory 308 includes nonvolatile memory (eg, hard drive) and buffer memory 309 includes volatile memory.

일 실시예에서, QAM 복조기(302)는 송신기 및 수신기 모듈과 하기의 것들 중 하나 또는 그 이상을 포함한다 : 프라이버시 암호화/해독 모듈, 전진 에러 보정 디코더/인코더, 튜너 콘트롤, 다운스트림 및 업스트림 프로세서, CPU 및 메모리 인터페이스 회로. QAM 복조기(302)는 변조된 IF 신호를 수신하고, 데이터를 저장하기 위해 신호를 샘플링 및 복조한다.In one embodiment, the QAM demodulator 302 includes a transmitter and receiver module and one or more of the following: a privacy encryption / decryption module, a forward error correction decoder / encoder, tuner control, downstream and upstream processors, CPU and memory interface circuit. QAM demodulator 302 receives the modulated IF signal and samples and demodulates the signal to store data.

조건부 억세스 모듈(306)은 인증 이후 억세스가 보증될 때 및/또는 적절한 요금이 과금되었을 때, 디코딩 프로세스를 허가한다. 억세스 조건은 서비스 공급자에 의해 결정된다.The conditional access module 306 permits the decoding process when access is guaranteed after authentication and / or when an appropriate fee is charged. Access conditions are determined by the service provider.

인증 방법은 예약 레벨과 경보 레벨을 전송된 DOD 데이터의 헤더내에 직접적으로 삽입하는 것을 포함한다. 이런 방법에서, STB(300)는 이들 예약 레벨을 판독하고, 이들을 STB(300)내에 저장된 예약 레벨에 비교한다. 저장된 예약 레벨이 DOD 서비스와 함께 전송된 예약 레벨과 일치하는 경우에, 클라이언트는 서비스를 수신하도록 허가된다. 경보 레벨의 경우에, STB(300)는 DOD 서비스내에 전송된 경보 레벨을 판독하고, 경보 레벨에 대응하는 메시지를 디스플레이한다. 이들 인증 방법은 본 명세서에서 참조하고 있는 2001년 7월 9일자로 출원된, 출원 번호가 09/902,503, 발명의 명칭이 Controlling Data-On-Demand Client Access인 Khoi Hoang의 특허 출원에서 고찰되었다.The authentication method involves inserting the reservation level and alert level directly into the header of the transmitted DOD data. In this way, the STB 300 reads these reservation levels and compares them to the reservation levels stored in the STB 300. If the stored reservation level matches the reservation level sent with the DOD service, the client is allowed to receive the service. In the case of an alert level, the STB 300 reads the alert level sent in the DOD service and displays a message corresponding to the alert level. These authentication methods have been considered in a patent application of Khoi Hoang, filed 09 / 902,503, titled Controlling Data-On-Demand Client Access, filed Jul. 9, 2001, which is incorporated herein by reference.

양호한 실시예에서, 억세스가 승인될 때, 디코더(312)는 데이터 블록을 출력 스크린상에 디스플레이할 수 있는 이미지로 변환하도록 하나 이상의 데이터 블록을 디코딩한다. 디코더(312)는 재생, 정지, 일시정지, 스텝, 되감기, 빨리감기 등 같은 가입 클라이언트로부터의 명령을 지원한다.In a preferred embodiment, when access is granted, decoder 312 decodes one or more data blocks to convert the data blocks into images that can be displayed on an output screen. Decoder 312 supports commands from subscribing clients such as play, stop, pause, step, rewind, fast forward, and the like.

그래픽 오버레이 모듈(314)은 예로서, 알파 블렌딩(alpha blending) 또는 화면분할(picture-in-picture) 기능을 제공함으로써 디스플레이된 그래픽 품질을 향상시킨다. 양호한 실시예에서, 그래픽 오버레이 모듈(314)은 예로서, 서비스 공급자가 본 발명에 따른 시스템을 사용하여 주문형 게임 서비스를 제공할 때, 게임 플레이 모드 동안 그래픽 가속을 위해 사용될 수 있다.Graphics overlay module 314 enhances the displayed graphics quality, for example, by providing alpha blending or picture-in-picture functionality. In a preferred embodiment, graphics overlay module 314 may be used for graphics acceleration during game play mode, for example, when a service provider provides an on-demand game service using the system according to the present invention.

양호한 실시예에서, 비록 데이터 파일이 모든 케이블 텔레비전 가입자에게 방송되지만, 호환성 STB(300)를 가지는 DOD 가입자만이 주문형 데이터 서비스를 디코딩하고 즐길 수 있다. 일 양호한 실시예에서, 주문에 의한 데이터 파일의 획득에 대한 허가는 조건부 억세스 제어 모듈(306)내의 스마트 카드 시스템을 경유하여 얻어질 수 있다. 스마트 카드는 서비스 공급자에 의하여 설치된 자판기 또는 지역 상점에서 재충전할 수 있다. 다른 양호한 실시예에서, 균일 요금 시스템은 모든 가용데이터 파일에 대한 무제한 억세스를 가입자에게 제공한다.In the preferred embodiment, although the data file is broadcast to all cable television subscribers, only DOD subscribers with compatible STB 300 can decode and enjoy the on-demand data service. In one preferred embodiment, permission to obtain a data file by order may be obtained via a smart card system in conditional access control module 306. Smart cards can be recharged in a vending machine or local store installed by a service provider. In another preferred embodiment, the flat rate system provides the subscriber with unlimited access to all available data files.

양호한 실시예에서, 주문형 데이터 대화 특징은 클라이언트가 소정 시간에 가용 데이터 파일을 선택할 수 있게 한다. 클라이언트가 선택 버튼을 누른 때와, 선택된 데이터 파일의 재생이 시작되는 시간 사이의 시간의 양은 응답 시간이라 지칭된다. DOD 서비스를 제공하기 위해, 보다 많은 자원(예로서, 대역폭, 서버 기능)이 할당될 때, 응답 시간은 보다 짧아진다. 양호한 실시예에서, 응답 시간은 자원 할당 평가 및 희망 서비스 품질에 기초하여 결정될 수 있다.In a preferred embodiment, the on-demand data conversation feature allows the client to select an available data file at a given time. The amount of time between when the client presses the select button and when playback of the selected data file begins is referred to as response time. When more resources (eg, bandwidth, server function) are allocated to provide DOD services, the response time is shorter. In a preferred embodiment, the response time may be determined based on resource allocation assessment and desired quality of service.

양호한 실시예에서, 선택된 응답 시간은 시간 슬롯의 기간을 결정한다. 시간 슬롯(TS)의 기간은 클라이언트에 의해 정상 속도에서 데이터 블록을 재생하기 위한 시간 간격이다. 양호한 실시예에서, 비디오 파일 같은 데이터 파일은 각 데이터 블록이 시간 슬롯의 기간 동안 데이터 파일을 재생하는 것을 지원할 수 있도록 다수의 데이터 블록으로 분할된다.In the preferred embodiment, the selected response time determines the duration of the time slot. The period of time slot TS is the time interval for reproducing the data block at the normal speed by the client. In a preferred embodiment, a data file, such as a video file, is divided into a number of data blocks so that each data block can support playing the data file for a period of time slots.

일 실시예에서, 각 데이터 파일을 위한 데이터 블록의 수(NUM_OF_BLKS)는 하기와 같이 계산된다In one embodiment, the number of data blocks (NUM_OF_BLKS) for each data file is 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는 데이터 파일의 기간(초 단위)이고, CLUSTER_SIZE는 각 채널 서버(104)를 위한 로컬 메모리(208)내의 클러스터의 크기(예로서, 64KBytes)이고, BLK_SIZE_BYTES는 바이트 단위의 블록 크기이다. 본 실시예에서, 블록 수(NUM_OF_BLKS)는 데이터 파일 크기(바이트 단위) 더하기 바이트 단위 데이터 블록 크기 빼기 1바이트를 바이트 단위의 데이터 블록 크기로 나눈 것과 같다. 수학식 (1) 내지 (4)는 하나의 특정 실시예를 예시한다. 본 기술 분야의 숙련자는 데이터 파일을 위한 데이터 블록의 수를 계산하기 위해 다른 방법을 사용할 수 있다는 것을 인지할 것이다. 예로서, 다수의 데이터 블록으로의 데이터 파일의 분할은 주로 채널 서버(104)의 로컬 메모리(208)의 클러스터 크기 및 추정 블록 크기의 함수이다. 따라서, 본 발명은 상술한 특정 실시예에 한정되지 않는다.In Equations (1) to (4), Estimated_BLK_Size is an estimated block size (in bytes), DataFile_Size is a data file size (in bytes), TS represents a period of time slots (in seconds), and DATAFile_Length is a data file. Is the period of time in seconds, CLUSTER_SIZE is the size of the cluster (e.g., 64 KBytes) in the local memory 208 for each channel server 104, and BLK_SIZE_BYTES is the block size in bytes. In the present embodiment, the number of blocks NUM_OF_BLKS is equal to the data file size (byte unit) plus byte data block size minus 1 byte divided by byte data block size. Equations (1)-(4) illustrate one particular embodiment. Those skilled in the art will appreciate that other methods may be used to calculate the number of data blocks for the data file. As an example, the partitioning of a data file into multiple data blocks is primarily a function of the cluster size and estimated block size of the local memory 208 of the channel server 104. Thus, the invention is not limited to the specific embodiments described above.

도 4는 본 발명의 실시예에 따른 데이터를 송신하기 위한 스케줄링 매트릭스를 생성하기 위한 양호한 프로세스를 예시한다. 양호한 실시예에서, 본 발명은 시간 분할 멀티플렉싱(TDM) 및 주파수 분할 멀티플랙싱(FDM) 기술을 사용하여 서버측에서의 데이터 전달을 압축 및 스케줄링한다. 양호한 실시예에서, 스케줄링 매트릭스는 각 데이터 파일에 대하여 생성된다. 일 실시예에서, 각 데이터 파일은 다수의 데이터 블록으로 분할되고, 스케줄링 매트릭스가 데이터 블록 수에 기초하여 생성된다. 통상적으로, 스케줄링 매트릭스는 데이터 블록이 순차적 순서로 임의의 시간에 데이터 파일을 억세스하기를 원하는 소정의 클라이언트에 의해 억세스될 수 있도록 서버로부터의 데이터 파일의 데이터 블록을 송신하기 위한 송신 순서를 제공한다.4 illustrates a preferred process for generating a scheduling matrix for transmitting data in accordance with an embodiment of the invention. In a preferred embodiment, the present invention uses time division multiplexing (TDM) and frequency division multiplexing (FDM) techniques to compress and schedule data delivery at the server side. In a preferred embodiment, a scheduling matrix is generated for each data file. In one embodiment, each data file is divided into a number of data blocks, and a scheduling matrix is generated based on the number of data blocks. Typically, the scheduling matrix provides a transmission sequence for transmitting the data block of the data file from the server so that the data block can be accessed by any client who wishes to access the data file at any time in sequential order.

단계 402에서, 데이터 파일을 위한 데이터 블록 수(x)가 수신된다. 제 1 변수(j)는 0으로 설정된다(단계 404). 기준 어레이는 클리어된다(단계 406). 기준 어레이는 내부적 관리 목적을 위해 데이터 블록의 추적을 유지한다. 다음에 j가 x에 비교된다(단계 408). j가 x 보다 작은 경우에, 제 2 변수(i)가 0으로 설정된다(단계 412). 다음에, i가 x에 비교된다(단계 414). i가 x 보다 작은 경우에, 스케줄링 매트릭스의 행[(i+j) 모듈로 (x)]에 저장된 데이터 블록이 기준 어레이에 수록된다(단계 418). 기준 어레이가 이미 이런 데이터 블록(들)을 가질 경우에는 복제 사본을 기록하지 않는다. 최초에, 스케줄링 매트릭스가 엔트리를 아직 갖지 않기 때문에, 이 단계는 통과된다. 다음에, 기준 어레이는 데이터 블록(i)을 포함하는지 여부가 점검된다(단계 420). 최초에, 기준 어레이내의 모든 엔트리가 단계 406에서 클리어되었기 때문에, 기준 어레이에 아무 것도 존재하지 않는다. 기준 어레이가 데이터 블록(i)을 포함하지 않는 경우에, 데이터 블록(i)이 매트릭스 위치[(i+j) 모듈로 (x), j]의 스케줄링 매트릭스 및 기준 어레이에 추가된다(단계 422). 데이터 블록(i)이 스케줄링 매트릭스 및 기준 어레이에 추가된 이후에, i는 1만큼 증분되고, 그래서, i=i+1이 되며(단계 424), 그후, 프로세스는 i=x가 될 때까지 단계 414에서 반복한다. 기준 어레이가 데이터 블록(i)을 포함하는 경우에, i는 1 만큼 증분되고, 그래서, i-i+1이 되며(단계 424), 그후, 프로세스는 i=x까지 단계 414에서 반복한다. i=x일 때, j는 1만큼 증분되고, 그래서, j=j+1이 되며(단계 416), 프로세스는 j=x까지 단계 406에서 반복한다. j=x일 때, 전체 프로세스가 종결된다(단계 410).In step 402, the data block number x for the data file is received. The first variable j is set to zero (step 404). The reference array is cleared (step 406). The reference array keeps track of the data blocks for internal management purposes. J is then compared to x (step 408). If j is less than x, the second variable i is set to 0 (step 412). Next, i is compared to x (step 414). If i is less than x, the data block stored in the row of the scheduling matrix [(i + j) modulo (x)] is contained in the reference array (step 418). If the reference array already has such data block (s), no duplicate copy is written. Initially, this step is passed because the scheduling matrix does not yet have an entry. Next, it is checked whether the reference array contains data block i (step 420). Initially, there is nothing in the reference array because all entries in the reference array were cleared in step 406. If the reference array does not contain a data block (i), the data block (i) is added to the scheduling matrix and the reference array at matrix position [(i + j) modulo (x), j] (step 422). . After the data block i is added to the scheduling matrix and the reference array, i is incremented by 1, so that i = i + 1 (step 424), and then the process steps until i = x. Repeat at 414. If the reference array contains data block i, i is incremented by 1, so that i-i + 1 (step 424), and then the process repeats at step 414 until i = x. When i = x, j is incremented by 1, so that j = j + 1 (step 416), and the process repeats at step 406 until j = x. When j = x, the entire process is terminated (step 410).

양호한 실시예에서, 데이터 파일이 6개의 데이터 블록으로 분할되는 경우(x=6), 스케줄링 매트릭스 및 기준 어레이는 하기와 같다.In the preferred embodiment, when the data file is divided into six data blocks (x = 6), the scheduling matrix and reference array are as follows.

스케줄링 매트릭스(SM)Scheduling Matrix (SM)

TS0TS0TS1TS1TS2TS2TS3TS3TS4TS4TS5TS5[0,0]blk0[0,0] blk0[1,0]blk1[1,0] blk1[2,0]blk2[2,0] blk2[3,0]blk3[3,0] blk3[4,0]blk4[4,0] blk4[5,0]blk5[5,0] blk5[0,1][0,1][1,1]blk0[1,1] blk0[2,1][2,1][3,1][3,1][4,1][4,1][5,1][5,1][0,2][0,2][1,2][1,2][2,2]blk0[2,2] blk0[3,2]blk1[3,2] blk1[4,2][4,2][5,2][5,2][0,3][0,3][1,3][1,3][2,3][2,3][3,3]blk0[3,3] blk0[4,3][4,3][5,3]blk2[5,3] blk2[0,4][0,4][1,4]blk3[1,4] blk3[2,4][2,4][3,4][3,4][4,4]blk0[4,4] blk0[5,4]blk1[5,4] blk1[0,5][0,5][1,5][1,5][2,5][2,5][3,5]blk4[3,5] blk4[4,5][4,5][5,5]blk0[5,5] blk0

기준 어레이(RA)Reference Array (RA)

스페이스 0Space 0스페이스 1Space 1스페이스 2Space 2스페이스 3Space 3스페이스 4Space 4스페이스 5Space 5TS0TS0blk0blk0blk1blk1blk2blk2blk3blk3blk4blk4blk5blk5TS1TS1blk1blk1blk0blk0blk2blk2blk3blk3blk4blk4blk5blk5TS2TS2blk2blk2blk0blk0blk3blk3blk1blk1blk4blk4blk5blk5TS3TS3blk3blk3blk1blk1blk0blk0blk4blk4blk5blk5blk2blk2TS4TS4blk4blk4blk0blk0blk5blk5blk2blk2blk1blk1blk3blk3TS5TS5blk5blk5blk2blk2blk1blk1blk0blk0blk3blk3blk4blk4

본 양호한 실시예에서, 위의 스케줄링 매트릭스에 기초하여, 데이터 파일의 6 데이터 블록은 하기의 시퀀스로 송신된다.In this preferred embodiment, based on the scheduling matrix above, six data blocks of the data file are transmitted in the following sequence.

TS0 => blk0TS0 => blk0

TS1 => blk0, blkl, blk3TS1 => blk0, blkl, blk3

TS2 => blk0, blk2TS2 => blk0, blk2

TS3 => blk0, blkl, blk3, blk4TS3 => blk0, blkl, blk3, blk4

TS4 => blk0, blk4TS4 => blk0, blk4

TS5 => blk0, blkl, blk2, blk5TS5 => blk0, blkl, blk2, blk5

다른 양호한 실시예에서, 예상 억세스 시간 이전에 데이터 파일의 사전결정된 수의 데이터 블록을 송신하도록, 예측 프로세스(look-ahead process)가 예측 스케줄링 매트릭스(look-ahead scheduling matrix)를 계산하기 위해 사용될 수 있다. 예로서, 사전결정된 예측 시간이 하나의 시간 슬롯의 기간인 경우에, 시간 슬롯 수 4 이상의 소정의 시간 슬롯에 대하여, 데이터 파일의 데이터 블록 4(blk4)는 TS4까지 재생되지 않는다. 예측 스케줄링 매트릭스를 생성하기 위한 프로세스 단계는 본 실시예의 예측 스케줄링 매트릭스가 예측 시간에 기초하여 보다 이른 송신 시퀀스를 스케줄링하는 것을 제외하면, 도 4에 대하여 상술된 프로세스 단계와 실질적으로 유사하다. 데이터 파일이 6개의 데이터 블록으로 분할되는 것으로 가정하면, 2 시간 슬롯의 기간의 예측 시간을 가지는 예측 스케줄링 매트릭스에 기초한 양호한 송신 시퀀스는 하기와 같이 나타날 수 있다.In another preferred embodiment, a look-ahead process may be used to calculate a look-ahead scheduling matrix to transmit a predetermined number of data blocks of the data file before the expected access time. . For example, when the predetermined prediction time is a period of one time slot, for a predetermined time slot of four or more time slots, data block 4 (blk4) of the data file is not reproduced until TS4. The process steps for generating the prediction scheduling matrix are substantially similar to the process steps described above with respect to FIG. 4 except that the prediction scheduling matrix of the present embodiment schedules an earlier transmission sequence based on the prediction time. Assuming a data file is divided into six data blocks, a good transmission sequence based on a prediction scheduling matrix having a prediction time of a period of two time slots may appear as follows.

TS0 => blk0TS0 => blk0

TS1 => blk0, blkl, blk3, blk4TS1 => blk0, blkl, blk3, blk4

TS2 => blk0, blk2TS2 => blk0, blk2

TS3 => blk0, blkl, blk3, blk4, blk5TS3 => blk0, blkl, blk3, blk4, blk5

TS4 => blk0, blk5TS4 => blk0, blk5

TS5 => blk0, blkl, blk2TS5 => blk0, blkl, blk2

데이터 파일의 집합을 송신하기 위한 3차원 전달 매트릭스는 데이터 파일의 집합의 각 데이터 파일을 위한 스케줄링 매트릭스에 기초하여 생성된다. 3차원 전달 매트릭스에서, 데이터 파일의 집합의 각 데이터 파일을 위한 ID를 포함하는 세 번째 차원이 생성된다. 3차원 전달 매트릭스는 다수의 데이터 스트림을 전달하기 위해 각 채널내의 가용 대역폭을 효과적으로 활용하도록 계산된다. 양호한 실시예에서, 본 기술 분야에 잘 알려져 있는 길쌈법이 데이터 파일의 집합의 효과적인 전달을 스케줄링하기 위한 3차원 전달 매트릭스를 생성하기 위해 사용된다. 예로서, 길쌈법은 하기의 방침을 포함한다 : (1) 소정의 시간 슬롯(TS)의 기간내에 송신되는 데이터 블록의 총수가 최소 가능 수에서 유지되어야 한다; 그리고, (2) 방침(1)에 관하여 다수의 부분적 해들이 가용한 경우에, 양호한 해는 소정의 기준 시간 슬롯의 기간 동안 송신되는 데이터 블록, 이전 시간 슬롯(기준 시간 슬롯에 관하여)의 기간 동안 송신된 데이터 블록 및 다음 시간 슬롯(기준 시간 슬롯에 관하여)의 기간 동안 송신되는 데이터 블록을 가산함으로써 최소의 데이터 블록 합을 가지는 것이다. 예로서, 각각 6개의 블록으로 분할되는, 두 개의 짧은 데이터 파일(M 및 N)을 송신하는 양호한 시스템을 가정하면, 스케줄링 매트릭스에 기초한 송신 시퀀스는 하기와 같다 :A three-dimensional transfer matrix for transmitting the collection of data files is generated based on the scheduling matrix for each data file of the collection of data files. In the three-dimensional delivery matrix, a third dimension is created that includes an ID for each data file in the collection of data files. The three-dimensional delivery matrix is calculated to effectively utilize the available bandwidth in each channel to carry multiple data streams. In a preferred embodiment, weaving methods well known in the art are used to generate a three-dimensional transfer matrix for scheduling effective delivery of a collection of data files. By way of example, the convolutional method includes the following policy: (1) the total number of data blocks transmitted within a period of a given time slot TS should be kept at the minimum possible number; And (2) where multiple partial solutions are available with respect to policy (1), the preferred solution is a data block transmitted for a period of a predetermined reference time slot, for a period of previous time slots (relative to the reference time slot). It is to have the minimum data block sum by adding the transmitted data block and the data block transmitted during the period of the next time slot (relative to the reference time slot). As an example, assuming a good system for transmitting two short data files (M and N), each divided into six blocks, the transmission sequence based on the scheduling matrix is as follows:

TS0 => blk0TS0 => blk0

TS1 => blk0, blkl, blk3, blk4TS1 => blk0, blkl, blk3, blk4

TS2 => blk0, blk2TS2 => blk0, blk2

TS3 => blk0, blkl, blk3, blk4TS3 => blk0, blkl, blk3, blk4

TS4 => blk0, blk4TS4 => blk0, blk4

TS5 => blk0, blkl, blk2, blk5TS5 => blk0, blkl, blk2, blk5

상술한 바와 같이, 양호한 길쌈법을 적용하면, 가능한 전달 매트릭스의 조합은 하기와 같다 :As mentioned above, applying a good weaving method, possible combinations of transfer matrices are as follows:

선택 1 : 이동 0 TS에 비디오 파일 N을 송신총 데이터 블록Choice 1: Move 0 Total Data Blocks to Send Video File N to TS

TS0 => M0, N02TS0 => M0, N0 2

TS1 => M0, M1, M3, N0, N1, N36TS1 => M0, M1, M3, N0, N1, N3 6

TS2 => M0, M2, N0, N24TS2 => M0, M2, N0, N2 4

TS3 => M0, M1, M3, M4, N0, N1, N3, N48TS3 => M0, M1, M3, M4, N0, N1, N3, N4 8

TS4 => M0, M4, N0, N44TS4 => M0, M4, N0, N4 4

TS5 => M0, M1, M2, M5, N0, N1, N2, N58TS5 => M0, M1, M2, M5, N0, N1, N2, N5 8

선택 2 : 이동 1 TS에 비디오 파일 N을 송신총 데이터 블록Choice 2: Move 1 Total data blocks sent video file n to TS

TS0 => M0, N0, N1, N34TS0 => M0, N0, N1, N3 4

TS1 => M0, M1, M3, N0, N25TS1 => M0, M1, M3, N0, N2 5

TS2 => M0, M2, N0, N1, N3, N46TS2 => M0, M2, N0, N1, N3, N4 6

TS3 => M0, M1, M3, M4, N0, N46TS3 => M0, M1, M3, M4, N0, N4 6

TS4 => M0, M4, N0, N1, N2, N56TS4 => M0, M4, N0, N1, N2, N5 6

TS5 => M0, M1, M2, M5, N05TS5 => M0, M1, M2, M5, N0 5

선택 3 : 이동 2 TS에 비디오 파일 N을 송신총 데이터 블록Choice 3: Move 2 Total Data Blocks to Send Video File N to TS

TS0 => M0, N0, N23TS0 => M0, N0, N2 3

TS1 => M0, M1, M3, N0, N1, N3, N47TS1 => M0, M1, M3, N0, N1, N3, N4 7

TS2 => M0, M2, N0, N44TS2 => M0, M2, N0, N4 4

TS3 => M0, M1, M3, M4, N0, N1, N2, N58TS3 => M0, M1, M3, M4, N0, N1, N2, N5 8

TS4 => M0, M4, N03TS4 => M0, M4, N0 3

TS5 => M0, M1, M2, M5, N0, N1, N37TS5 => M0, M1, M2, M5, N0, N1, N3 7

선택 4 : 이동 3 TS에 비디오 파일 N을 송신총 데이터 블록Choice 4: Move Total Data Blocks to Send Video File N to 3 TS

TS0 => M0, N0, N1, N3, N45TS0 => M0, N0, N1, N3, N4 5

TS1 => M0, M1, M3, N0, N45TS1 => M0, M1, M3, N0, N4 5

TS2 => M0, M2, N0, N1, N2, N56TS2 => M0, M2, N0, N1, N2, N5 6

TS3 => M0, M1, M3, M4, N05TS3 => M0, M1, M3, M4, N0 5

TS4 => M0, M4, N0, N1, N35TS4 => M0, M4, N0, N1, N3 5

TS5 => M0, M1, M2, M5, N0, N1, N26TS5 => M0, M1, M2, M5, N0, N1, N2 6

선택 5 : 이동 4 TS에 비디오 파일 N을 송신총 데이터 블록Choice 5: Move 4 Total Data Blocks to Send Video File N to TS

TS0 => M0, N0, N43TS0 => M0, N0, N4 3

TS1 => M0, M1, M3, N0, N1, N2, N57TS1 => M0, M1, M3, N0, N1, N2, N5 7

TS2 => M0, M2, N03TS2 => M0, M2, N0 3

TS3 => M0, M1, M3, M4, N0, N1, N37TS3 => M0, M1, M3, M4, N0, N1, N3 7

TS4 => M0, M4, N0, N24TS4 => M0, M4, N0, N2 4

TS5 => M0, M1, M2, MS, N0, N1, N3, N48TS5 => M0, M1, M2, MS, N0, N1, N3, N4 8

선택 6 : 이동 5 TS에 비디오 파일 N을 송신총 데이터 블록Choice 6: Move 5 Total Data Blocks to Send Video File N to TS

TS0 => M0, N0, N1, N2, N55TS0 => M0, N0, N1, N2, N5 5

TS1 => M0, M1, M3, N04TS1 => M0, M1, M3, N0 4

TS2 => M0, M2, N0, N1, N35TS2 => M0, M2, N0, N1, N3 5

TS3 => M0, M1, M3, M4, N0, N26TS3 => M0, M1, M3, M4, N0, N2 6

TS4 => M0, M4, N1, N3, N46TS4 => M0, M4, N1, N3, N4 6

TS5 => M0, M1, M2, M5, N0, N46TS5 => M0, M1, M2, M5, N0, N4 6

방침 (1)을 적용하면, 선택 2, 4 및 6은 소정의 시간 슬롯 동안 송신되는 데이터 블록의 가장 작은 최대수(즉, 6 데이터 블록)를 가진다. 방침 (2)를 적용하면, 본 실시예의 최적 전달 매트릭스는 선택 4이며, 그 이유는 선택 4가 소정의 기준 슬롯의 데이터 블록 더하기 이웃 시간 슬롯의 데이터 블록의 가장 작은 합(즉, 16 데이터 블록)을 가지기 때문이다. 따라서, 본 실시예에 최적으로, 데이터 파일 N의 송신 시퀀스는 3 슬롯만큼 이동되어야 한다. 양호한 실시예에서, 3차원 전달 매트릭스가 각 채널 서버(104)를 위해 생성된다.Applying policy (1), choices 2, 4 and 6 have the smallest maximum number (i.e. 6 data blocks) of data blocks transmitted during a given time slot. Applying policy (2), the optimal transfer matrix of this embodiment is choice 4, because choice 4 is the smallest sum of the data blocks of a given reference slot plus the data blocks of the neighboring time slots (ie 16 data blocks). Because it has. Therefore, optimally in this embodiment, the transmission sequence of the data file N should be moved by 3 slots. In a preferred embodiment, a three dimensional delivery matrix is created for each channel server 104.

각 데이터 파일을 위한 데이터 블록이 전달 매트릭스에 따라 송신될 때, 다수의 가입 클라이언트가 임의의 시간에 데이터 파일을 억세스할 수 있으며, 데이터 파일의 적절한 데이터 블록이 각 가입 클라이언트에게 시기 적절하게 가용해질 것이다. 상술된 예에서, 시간 슬롯의 기간이 5초와 같다고 가정하면, DOD 시스템(100)은 하기의 방식으로 최적의 전달 매트릭스(즉, 3 시간 슬롯 만큼 데이터 파일(N)의 전달 시퀀스를 이동)에 따라, 데이터 파일(M 및 N)을 위한 데이터 블록을 송신한다 :When data blocks for each data file are transmitted according to the delivery matrix, multiple subscription clients can access the data file at any time, and the appropriate data blocks of the data file will be made available to each subscription client in a timely manner. . In the example described above, assuming that the duration of the time slot is equal to 5 seconds, the DOD system 100 performs the optimal transfer matrix (i.e., moving the transfer sequence of the data file N by 3 time slots) in the following manner. Thus, send data blocks for data files M and N:

시간 00:00:00 => M0, N0, N1, N3, N4Time 00:00:00 => M0, N0, N1, N3, N4

시간 00:00:05 => M0, M1, M3, N0, N4Time 00:00:05 => M0, M1, M3, N0, N4

시간 00:00:10 => M0, M2, N0, N1, N2, N5Time 00:00:10 => M0, M2, N0, N1, N2, N5

시간 00:00:15 => M0, M1, M3, M4, N0Time 00:00:15 => M0, M1, M3, M4, N0

시간 00:00:20 => M0, M4, N0, N1, N3Time 00:00:20 => M0, M4, N0, N1, N3

시간 00:00:25 => M0, M1, M2, M5, N0, N2Time 00:00:25 => M0, M1, M2, M5, N0, N2

시간 00:00:30 => M0, N0, N1, N3, N4Time 00:00:30 => M0, N0, N1, N3, N4

시간 00:00:35 => M0, M1, M3, N0, N4Time 00:00:35 => M0, M1, M3, N0, N4

시간 00:00:40 => M0, M2, N0, N1, N2, N5Time 00:00:40 => M0, M2, N0, N1, N2, N5

시간 00:00:45 => M0, M1, M3, M4, N0Time 00:00:45 => M0, M1, M3, M4, N0

시간 00:00:50 => M0, M4, N0, N1, N3Time 00:00:50 => M0, M4, N0, N1, N3

시간 00:00:55 => M0, M1, M2, M5, N0, N2Time 00:00:55 => M0, M1, M2, M5, N0, N2

시간 00:00:00에서 클라이언트 A가 영화 M을 선택하는 경우에, 클라이언트 A의 STB(300)는 하기와 같이 데이터 블록을 수신, 저장, 재생 및 거부한다 :If client A selects movie M at time 00:00:00, client A's STB 300 receives, stores, plays and rejects the data block as follows:

시간 00:00:00 => 수신 M0=> 재생 M0, 저장 M0Time 00:00:00 => Receive M0 => Play M0, Save M0

시간 00:00:05 => 수신 M1,M3=> 재생 M1, 저장 M0,M1,M3Time 00:00:05 => Receive M1, M3 => Play M1, Save M0, M1, M3

시간 00:00:10 => 수신 M2=> 재생 M2, 저장 M0,M1,M2,M3Time 00:00:10 => Receive M2 => Play M2, Save M0, M1, M2, M3

시간 00:00:15 => 수신 M4=> 재생 M3, 저장 M0,M1,M2,M3,M4Time 00:00:15 => Receive M4 => Play M3, Save M0, M1, M2, M3, M4

시간 00:00:20 => 수신 없음=> 재생 M4, 저장 M0,M1,M2,M3,M4Time 00:00:20 => No Reception => Play M4, Save M0, M1, M2, M3, M4

시간 00:00:25 => 수신 M5=> 재생 M5, 저장 M0,M1,M2,M3,M4,M5Time 00:00:25 => Receive M5 => Play M5, Save M0, M1, M2, M3, M4, M5

시간 00:00:10에서 클라이언트 B가 영화 M을 선택하는 경우에, 클라이언트 B의 STB(300)는 하기와 같이 데이터 블록을 수신, 저장, 재생 및 거부한다 :If client B selects movie M at time 00:00:10, client B's STB 300 receives, stores, plays and rejects the data block as follows:

시간 00:00:10 => 수신 M0,M2=> 재생 M0, 저장 M0,M2Time 00:00:10 => Receive M0, M2 => Play M0, Save M0, M2

시간 00:00:15 => 수신 M1,M3,M4=> 재생 M1, 저장 M0,M1,M3,M4Time 00:00:15 => Receive M1, M3, M4 => Play M1, Save M0, M1, M3, M4

시간 00:00:20 => 수신 없음=> 재생 M2, 저장 M0,M1,M3,M4Time 00:00:20 => No Reception => Play M2, Save M0, M1, M3, M4

시간 00:00:25 => 수신 M5=> 재생 M3, 저장 M0,M1,M2,M3,M4,M5Time 00:00:25 => Receive M5 => Play M3, Save M0, M1, M2, M3, M4, M5

시간 00:00:30 => 수신 없음=> 재생 M4, 저장 M0,M1,M2,M3,M4,M5Time 00:00:30 => No Reception => Play M4, Save M0, M1, M2, M3, M4, M5

시간 00:00:35 => 수신 없음=> 재생 M5, 저장 M0,M1,M2,M3,M4,M5Time 00:00:35 => No Receive => Play M5, Save M0, M1, M2, M3, M4, M5

시간 00:00:15에서 클라이언트 C가 영화 N을 선택하는 경우에, 클라이언트 C의 STB(300)는 하기와 같이 데이터 블록을 수신, 저장, 재생 및 거부한다 :If client C selects movie N at time 00:00:15, client C's STB 300 receives, stores, plays and rejects the data block as follows:

시간 00:00:15 => 수신 N0=> 재생 N0, 저장 N0Time 00:00:15 => Receive N0 => Play N0, Save N0

시간 00:00:20 => 수신 N1,N3=> 재생 N1, 저장 N0,N1,N3Time 00:00:20 => Receive N1, N3 => Play N1, Save N0, N1, N3

시간 00:00:25 => 수신 N2=> 재생 N2, 저장 N0,N1,N2,N3Time 00:00:25 => Receive N2 => Play N2, Save N0, N1, N2, N3

시간 00:00:30 => 수신 N4=> 재생 N3, 저장 N0,N1,N2,N3,N4Time 00:00:30 => Receive N4 => Play N3, Save N0, N1, N2, N3, N4

시간 00:00:35 => 수신 없음=> 재생 N4, 저장 N0,N1,N2,N3,N4Time 00:00:35 => No Reception => Play N4, Save N0, N1, N2, N3, N4

시간 00:00:40 => 수신 N5=> 재생 N5, 저장 N0,N1,N2,N3,N4,N5Time 00:00:40 => Receive N5 => Play N5, Save N0, N1, N2, N3, N4, N5

시간 00:00:30에서 클라이언트 D가 영화 N을 선택하는 경우에, 클라이언트 D의 STB(300)는 하기와 같이 데이터 블록을 수신, 저장, 재생 및 거부한다 :If client D selects movie N at time 00:00:30, STB 300 of client D receives, stores, plays, and rejects the data block as follows:

시간 00:00:30 => 수신 N0,N2,N3,N4=> 재생 N0, 저장 N0,N2,N3,N4Time 00:00:30 => Receive N0, N2, N3, N4 => Play N0, Save N0, N2, N3, N4

시간 00:00:35 => 수신 없음=> 재생 N1, 저장 N0,N2,N3,N4Time 00:00:35 => No Receive => Play N1, Save N0, N2, N3, N4

시간 00:00:40 => 수신 N2,N5=> 재생 N2, 저장 N0,N1,N2,N3,N4,N5Time 00:00:40 => Receive N2, N5 => Play N2, Save N0, N1, N2, N3, N4, N5

시간 00:00:45 => 수신 없음=> 재생 N3, 저장 N0,N1,N2,N3,N4,N5Time 00:00:45 => No Receive => Play N3, Save N0, N1, N2, N3, N4, N5

시간 00:00:50 => 수신 없음=> 재생 N4, 저장 N0,N1,N2,N3,N4,N5Time 00:00:50 => No Reception => Play N4, Save N0, N1, N2, N3, N4, N5

시간 00:00:55 => 수신 없음=> 재생 N5, 저장 N0,N1,N2,N3,N4,N5Time 00:00:55 => No Reception => Play N5, Save N0, N1, N2, N3, N4, N5

상기 예에서 도시된 바와 같이, 클라이언트의 소정의 조합은 임의의 시간에 서비스 공급자에 의해 제공된 소정의 데이터 파일을 독립적으로 선택할 수 있다. 상기 실시예로 주어진 수의 데이터 파일을 전송하기에 충분한 대역폭이 가용한 경우에, 후술될 바와 같은 준최적 전송 스케줄을 사용하여 작은 시간 지연으로 보다 양호한 품질의 데이터를 전송할 수 있다. 상기 방법이 시간 최적의 방식으로 클라이언트 포괄 DOD 서비스를 제공하지만, 하기의 프로세스는 억세스 시간의 지연을 댓가로 소요 전송 대역폭을 추가로 감소시키는 클라이언트 포괄 DOD 방송 서비스를 제공하기 위한 방법을 교지한다.As shown in the above example, any combination of clients may independently select any data file provided by the service provider at any time. When enough bandwidth is available to transfer a given number of data files in the above embodiment, it is possible to transmit better quality data with a small time delay using a sub-optimal transmission schedule as described below. Although the method provides a client-inclusive DOD service in a time-optimal manner, the following process teaches a method for providing a client-inclusive DOD broadcast service that further reduces the required transmission bandwidth in exchange for a delay in access time.

도 5는 준최적 스케줄링 매트릭스를 생성하기 위한 양호한 방법을 500으로 예시한다. 일 실시예에 따라서, 본 발명은 서비스측에서 데이터 전달을 압축 및 스케줄하기 위해 시간 분할 멀티플렉싱(TDM) 및 주파수 분할 멀티플렉싱(FDM) 기술을 사용한다. 양호한 실시예에서, 준최적 스케줄링 매트릭스는 각 데이터 파일을 위해 생성된다. 일 실시예에서, 각 데이터 파일은 다수의 데이터 블록으로 분할되고, 데이터 블록의 수에 기초하여 준최적 매트릭스가 생성된다. 준최적 스케줄링 매트릭스는 데이터 블록이 임의의 개시 시간의 하나의 시간 슬롯 내에 데이터 파일을 억세스하기를 원하는 소정의 클라이언트에 의해 순차적 순서로 억세스될 수 있도록 서버로부터 클라이언트로 데이터 파일의 데이터 블록을 송신하기 위한 송신 순서를 제공한다.5 illustrates a preferred method at 500 for generating a suboptimal scheduling matrix. According to one embodiment, the present invention uses time division multiplexing (TDM) and frequency division multiplexing (FDM) techniques to compress and schedule data delivery on the service side. In a preferred embodiment, a suboptimal scheduling matrix is generated for each data file. In one embodiment, each data file is divided into a number of data blocks, and a suboptimal matrix is generated based on the number of data blocks. The suboptimal scheduling matrix is for transmitting the data block of the data file from the server to the client such that the data block can be accessed in sequential order by any client who wishes to access the data file within one time slot at any start time. Provide the transmission order.

단계 502에서, 데이터 파일을 위한 다수의 데이터 블록(x)이 수신된다. 제 1 변수(j)는 0으로 설정된다(단계 504)기준 어레이는 클리어된다(단계 506). 기준 어레이는 내부적 관리 목적을 위해 데이터 블록의 추적을 유지한다. 다음에 j가 x에 비교된다(단계 508). j가 x 보다 작은 경우에, 제 2 변수(i)가 0으로 설정된다(단계 512). 다음에, i가 x에 비교된다(단계 514). i가 x 보다 작은 경우에, 준최적 스케줄링 매트릭스의 행[(i+j) 모듈로 (x)]에 저장된 데이터 블록이 기준 어레이에 수록된다(단계 518). 기준 어레이가 이미 이런 데이터 블록(들)을 가질 경우에는 복제 사본을 기록하지 않는다. 최초에, 스케줄링 매트릭스가 엔트리를 아직 갖지 않기 때문에, 이 단계는 통과된다. 다음에, 기준 어레이는 데이터 블록(i)을 포함하는지 여부가 점검된다(단계 520). 최초에, 기준 어레이내의 모든 엔트리가 단계 506에서 클리어되었기 때문에, 기준 어레이에 아무 것도 존재하지 않는다. 기준 어레이가 데이터 블록(i)을 포함하지 않는 경우에, 준최적 스케줄링 매트릭스의 이전 행(i-1)이 매트릭스의 행(i-1)이 데이터 블록(i)을 포함하는지 여부에 대하여 검토된다. 준최적 매트릭스의 행(i-1)도 데이터 블록(i)을 포함하지 않을 경우에, 데이터 블록(i)은 매트릭스 위치[(i+j) 모듈로 (x), j]의 준최적 스케줄링 매트릭스 및 기준 어레이에 추가된다(단계 522). 데이터 블록(i)이 준최적 스케줄링 매트릭스 및 기준 어레이에 추가된 이후에, i는 1만큼 증분되고, 그래서, i=i+1이 되며(단계 524), 그후, 프로세스는 i=x가 될 때까지 단계 514에서 반복한다. 기준 어레이가 데이터 블록(i)을 포함하거나, 준최적 스케줄링 매트릭스의 행(i-1)이 데이터 블록(i)을 포함하는 경우에, i는 1 만큼 증분되고, 그래서, i-i+1이 되며(단계 524), 그후, 프로세스는 i=x까지 단계 514에서 반복한다. i=x일 때, j는 1만큼 증분되고, 그래서, j=j+1이 되며(단계 516), 프로세스는 j=x까지 단계 506에서 반복한다. j=x일 때, 전체 프로세스가 종결된다(단계 510).In step 502, a number of data blocks x for a data file are received. The first variable j is set to 0 (step 504) and the reference array is cleared (step 506). The reference array keeps track of the data blocks for internal management purposes. J is then compared to x (step 508). If j is less than x, the second variable i is set to 0 (step 512). Next, i is compared to x (step 514). If i is less than x, the data block stored in the row of the suboptimal scheduling matrix [(i + j) modulo (x)] is contained in the reference array (step 518). If the reference array already has such data block (s), no duplicate copy is written. Initially, this step is passed because the scheduling matrix does not yet have an entry. Next, it is checked whether the reference array includes data block i (step 520). Initially, there is nothing in the reference array because all entries in the reference array were cleared in step 506. If the reference array does not contain a data block (i), the previous row (i-1) of the suboptimal scheduling matrix is examined as to whether the row (i-1) of the matrix contains the data block (i). . If row i-1 of the suboptimal matrix also does not include data block i, then data block i is a suboptimal scheduling matrix of matrix position [(i + j) modulo (x), j]. And added to the reference array (step 522). After the data block i is added to the suboptimal scheduling matrix and the reference array, i is incremented by 1, so that i = i + 1 (step 524), and then when the process becomes i = x Repeat at step 514. If the reference array comprises data block i, or if row i-1 of the suboptimal scheduling matrix comprises data block i, i is incremented by 1, so i-i + 1 is (Step 524), then the process repeats at step 514 until i = x. When i = x, j is incremented by 1, so that j = j + 1 (step 516), and the process repeats at step 506 until j = x. When j = x, the entire process is terminated (step 510).

양호한 실시예에서, 데이터 파일이 6개의 데이터 블록으로 분할되는 경우(x=6), 준최적 스케줄링 매트릭스 및 기준 어레이는 하기와 같다.In the preferred embodiment, if the data file is divided into six data blocks (x = 6), the suboptimal scheduling matrix and reference array are as follows.

준최적 스케줄링 매트릭스(SSM)Suboptimal Scheduling Matrix (SSM)

TS0TS0TS1TS1TS2TS2TS3TS3TS4TS4TS5TS5[0,0]blk0[0,0] blk0[1,0]blk1[1,0] blk1[2,0]blk2[2,0] blk2[3,0]blk3[3,0] blk3[4,0]blk4[4,0] blk4[5,0]blk5[5,0] blk5[0,1][0,1][1,1][1,1][2,1][2,1][3,1][3,1][4,1][4,1][5,1][5,1][0,2][0,2][1,2][1,2][2,2]blk0[2,2] blk0[3,2]blk1[3,2] blk1[4,2][4,2][5,2][5,2][0,3][0,3][1,3][1,3][2,3][2,3][3,3][3,3][4,3][4,3][5,3]blk2[5,3] blk2[0,4][0,4][1,4]blk3[1,4] blk3[2,4][2,4][3,4][3,4][4,4]blk0[4,4] blk0[5,4]blk1[5,4] blk1[0,5][0,5][1,5][1,5][2,5][2,5][3,5]blk4[3,5] blk4[4,5][4,5][5,5][5,5]

기준 어레이(RA)Reference Array (RA)

스페이스 0Space 0스페이스 1Space 1스페이스 2Space 2스페이스 3Space 3스페이스 4Space 4스페이스 5Space 5TS0TS0blk0blk0blk1blk1blk2blk2blk3blk3blk4blk4blk5blk5TS1TS1blk1blk1blk0blk0blk2blk2blk3blk3blk4blk4blk5blk5TS2TS2blk2blk2blk0blk0blk3blk3blk1blk1blk4blk4blk5blk5TS3TS3blk3blk3blk1blk1blk0blk0blk4blk4blk5blk5blk2blk2TS4TS4blk4blk4blk0blk0blk5blk5blk2blk2blk1blk1blk3blk3TS5TS5blk5blk5blk2blk2blk1blk1blk0blk0blk3blk3blk4blk4

본 양호한 실시예에서, 위의 준최적 스케줄링 매트릭스에 기초하여, 데이터 파일의 6 데이터 블록들은 하기의 시퀀스로 송신된다.In this preferred embodiment, based on the suboptimal scheduling matrix above, six data blocks of the data file are transmitted in the following sequence.

TS0 => blk0TS0 => blk0

TS1 => blkl, blk3TS1 => blkl, blk3

TS2 => blk0, blk2TS2 => blk0, blk2

TS3 => blkl, blk3, blk4TS3 => blkl, blk3, blk4

TS4 => blk0, blk4TS4 => blk0, blk4

TS5 => blk1, blk2, blk5TS5 => blk1, blk2, blk5

도 4의 양호한 "최적"스케줄링 시퀀스에 비교할 때, 본 양호한 "준최적"스케줄링 시퀀스는 3개 보다 작은 데이터 블록을 전송한다. 이는 18.75% 보다 작은 대역폭을 필요로 하는 양호한 준최적 스케줄을 활용하는 전송을 초래한다. 이 준최적 스케줄은 수신 STB가 하나의 시간 슬롯의 기간 동안 선택된 데이터 파일을 사용자에게 디스플레이하는 것을 지연시키도록 하는 것을 필요로 한다.Compared to the good " optimal " scheduling sequence of FIG. 4, this good " suboptimal " scheduling sequence transmits less than three data blocks. This results in a transmission utilizing a good suboptimal schedule that requires less than 18.75% of bandwidth. This suboptimal schedule requires the receiving STB to delay displaying the selected data file to the user for the duration of one time slot.

상기 실시예의 준최적 스케줄은 본 기술분야의 숙련자에게 명백한 바와 같이 단지 무한히 가능한 지정 스케줄링 구조 중 하나이다. 데이터 파일을 전송하기 위해 소요되는 대역폭의 보다 큰 감소는 STB 억세스 시간의 보다 큰 지연을 사용함으로써 달성될 수 있다. 수신 STB가 선택된 데이터 파일을 디스플레이할 수 있기 이전에, 2 또는 그 이상의 시간 슬롯의 지연을 필요로 하는 전송을 포함하는 것이 그 예이다.The suboptimal schedule of this embodiment is just one of infinitely possible assignment scheduling structures as will be apparent to those skilled in the art. A larger reduction in the bandwidth required to transfer the data file can be achieved by using a larger delay in the STB access time. An example is a transmission that requires a delay of two or more time slots before the receiving STB can display the selected data file.

도 6은 본 발명의 일 실시예에 따른 "준최적" DOD 데이터 전송을 수신하기 위한 양호한 STB 방법을 예시한다. 프로세스 600은 STB(300)(도 3)가 DOD 방송 시스템(100)(도 1A)으로부터 전자 가이드 프로그램(EPG)을 수신하는 단계 602에서 시작한다. EPG 프로그램은 DOD 시스템(100)으로부터 입수할 수 있는 모든 파일을 나열한다. 단계 603에서, 사용자는 원하는 데이터 파일과 연계된 구매 버튼을 누름으로써 EPG상에 나열된 데이터 파일을 선택한다. 단계 604에서, STB(300)(도 3)는 선택된 데이터 파일의 데이터 블록을 저장하기 시작한다. STB는 STB가 중단 없이 데이터 파일을 재생할 수 있도록 선택된 데이터 파일의 충분한 데이터 블록이 저장될 수 있게 하기 위해 사전결정된 시간 주기 동안 대기한다. 일 실시예에 따라서, CPU(304)(도 3)는 선택된 데이터 파일의 원활한 재생을 보증하기 위해 얼마나 많은지연이 필요한지를 결정할 수 있다. 이는 다양한 알고리즘에 의해, 또는 단순히 DOD 시스템(100)으로부터 전송된 데이터내의 패킷 헤더 위치에 소요 지연 정보를 포함시킴으로써 달성될 수 있다. 이런 실시예에서, DOD 시스템은 소요 지연의 시간 슬롯 수가 가용 전송 대역폭에 의존하도록 준최적 전달 매트릭스를 변경한다.6 illustrates a preferred STB method for receiving a "suboptimal" DOD data transmission in accordance with an embodiment of the present invention. Process 600 begins at step 602 where the STB 300 (FIG. 3) receives an electronic guide program (EPG) from the DOD broadcast system 100 (FIG. 1A). The EPG program lists all the files available from the DOD system 100. In step 603, the user selects a data file listed on the EPG by pressing a buy button associated with the desired data file. At step 604, STB 300 (FIG. 3) begins storing data blocks of the selected data file. The STB waits for a predetermined time period to allow enough data blocks of the selected data file to be stored so that the STB can play the data file without interruption. According to one embodiment, the CPU 304 (FIG. 3) may determine how much delay is required to ensure smooth playback of the selected data file. This can be accomplished by various algorithms, or simply by including the necessary delay information in the packet header position in the data transmitted from the DOD system 100. In this embodiment, the DOD system modifies the suboptimal delivery matrix such that the number of time slots of the required delay depends on the available transmission bandwidth.

STB가 선택된 데이터 파일의 중단되지 않은 디스플레이를 위해 필요한 데이터 블록을 저장하기에 충분히 길게 지연된 이후에, STB는 자동으로 선택된 데이터 파일을 재생하기 시작한다. 대안적인 실시예에 따라, 지연 주기가 완료되고 나서, STB는 사용자가 선택된 데이터 파일의 디스플레이를 시작하도록 상기시켜 준다.After the STB has been delayed long enough to store the data block needed for the uninterrupted display of the selected data file, the STB automatically starts playing the selected data file. According to an alternative embodiment, after the delay period is completed, the STB reminds the user to start displaying the selected data file.

일반적 동작General behavior

서비스 공급자는 방송 이전에 채널 서버(104)에 다수의 데이터 파일(예로서, 비디오 파일)을 송신하도록 스케줄할 수 있다. 중앙 제어 서버(102)는 3차원 전달 매트릭스(ID, 시간 슬롯 및 데이터 블록 송신 순서)를 계산하여 채널 서버(104)에 전송한다. 방송 동안, 채널 서버(104)는 적절한 순서로 적절한 데이터 블록을 송신하도록 3차원 전달 매트릭스를 참조한다. 다수의 가입 클라이언트가 개별적으로 임의의 시간에 연속 및 순차적으로 데이터 파일을 시청하기 시작할 수 있도록 각 데이터 파일은 데이터 블록으로 분할된다. 데이터 파일의 데이터 블록의 크기는 데이터 파일의 데이터 스트림의 비트 전송율 및 선택된 시간 슬롯의 기간에 의존한다. 예로서, 일정 비트 전송율 MPEG 데이터 스트림에서, 각 데이터 블록은 Block Size(MBytes)=BitRate(Mb/s)xTS(sec)/8(1)의 고정된 크기를 갖는다.The service provider may schedule to transmit a number of data files (eg, video files) to the channel server 104 prior to broadcasting. The central control server 102 calculates and transmits the three-dimensional transfer matrix (ID, time slot and data block transmission order) to the channel server 104. During the broadcast, channel server 104 consults the three-dimensional delivery matrix to transmit the appropriate data blocks in the proper order. Each data file is divided into data blocks so that a number of subscribing clients can individually start watching the data file continuously and sequentially at any time. The size of the data block of the data file depends on the bit rate of the data stream of the data file and the duration of the selected time slot. As an example, in a constant bit rate MPEG data stream, each data block has a fixed size of Block Size (MBytes) = BitRate (Mb / s) x TS (sec) / 8 (1).

양호한 실시예에서, 데이터 블록 크기는 채널 서버(104)의 로컬 메모리(208)내의 메모리 클러스터 크기의 차순위의 보다 높은 배수로 조절된다. 예로서, 상기 수학식 (1)에 따라 계산된 데이터 블록 길이가 720Kbites인 경우에, 로컬 메모리(208)의 클러스터 크기가 64Kbytes이면 결과적인 데이터 블록 길이는 768Kbytes이어야 한다. 본 실시예에서, 데이터 블록은 각각 클러스터 크기와 동일한 크기를 가지는 다수의 서브-블록으로 추가로 분할되어야 한다. 본 예에서, 데이터 블록은 64Kbytes의 12 서브-블록을 가진다.In a preferred embodiment, the data block size is adjusted to a higher multiple of the next order of memory cluster size in the local memory 208 of the channel server 104. For example, when the data block length calculated according to Equation (1) is 720 Kbites, if the cluster size of the local memory 208 is 64 Kbytes, the resulting data block length should be 768 Kbytes. In this embodiment, the data block must be further divided into a plurality of sub-blocks each having the same size as the cluster size. In this example, the data block has 12 sub-blocks of 64 Kbytes.

서브-블록은 데이터 패킷으로 추가로 쪼개질 수 있다. 각 데이터 패킷은 패킷 헤더와 패킷 데이터를 포함한다. 패킷 데이터 길이는 각 채널 서버의 CPU가 데이터를 송신하는 물리적 층의 최대 전달 유니트(MTU)에 의존한다. 양호한 실시예에서, 패킷 헤더 및 패킷 데이터의 총 크기는 MTU 보다 작아야 한다. 그러나, 최대 효율을 위하여, 패킷 데이터 길이는 가능한 길어야 한다.The sub-blocks can be further split into data packets. Each data packet includes a packet header and packet data. The packet data length depends on the maximum transfer unit (MTU) of the physical layer to which the CPU of each channel server sends data. In the preferred embodiment, the total size of the packet header and the packet data should be smaller than the MTU. However, for maximum efficiency, the packet data length should be as long as possible.

양호한 실시예에서, 패킷 헤더내의 데이터는 가입자 클라이언트의 STB(300)가 소정의 수신된 데이터를 디코딩하고, 데이터 패킷이 선택된 데이터 파일인지를 판정할 수 있게 하는 정보(예로서, 프로토콜 서명, 버전, ID 또는 패킷형 정보)를 포함한다. 또한, 패킷 헤더는 소요 "준최적" 지연 주기, 블록/서브-블록/패킷 번호, 패킷 길이, 주기성 러던던시 체크(CRC) 및 서브-블록의 오프셋 및/또는 인코딩 정보 같은 다른 정보를 포함할 수 있다.In a preferred embodiment, the data in the packet header is information that enables the STB 300 of the subscriber client to decode certain received data and determine whether the data packet is a selected data file (eg, protocol signature, version, ID or packet type information). In addition, the packet header may include other information such as required "suboptimal" delay period, block / sub-block / packet number, packet length, periodicity redundancy check (CRC) and sub-block offset and / or encoding information. Can be.

채널 서버(104)에 의해 수신되고 나면, 데이터 패킷은 QAM 변조기(206)로 보내지고, 그곳에서, QAM 변조 IF 출력 신호를 생성하기 위해 데이터 패킷에 다른 헤더가 추가된다. QAM 변조기(206)를 위한 최대 비트 전송율 출력은 가용 대역폭에의존한다. 예로서, 6MHz 대역폭을 가지는 QAM 변조기(206)에 대하여, 최대 비트 전송율은 5.05(bit/symbol)x6(MHz)=30.3Mbit/sec이다.Once received by the channel server 104, the data packet is sent to the QAM modulator 206, where another header is added to the data packet to generate a QAM modulated IF output signal. The maximum bit rate output for the QAM modulator 206 is dependent on the available bandwidth. As an example, for a QAM modulator 206 having a 6 MHz bandwidth, the maximum bit rate is 5.05 (bit / symbol) × 6 (MHz) = 30.3 Mbit / sec.

QAM 변조 IF 신호는 지정 채널에 적합한 RF 신호(예로서, CATV 채널 80에 대하여, 559.250MHz 및 6MHz 대역폭)로 변환되도록 업-컨버터(106)에 보내진다. 예로서, 케이블 네트워크가 높은 대역폭(또는 비트 전송율)을 가지는 경우에, 각 채널은 각 데이터 스트림이 가상 서브-채널을 점유하는 상태로, 하나 이상의 데이터 스트림을 제공하도록 사용될 수 있다. 예로서, 3 MPEG1 데이터 스트림은 QAM 변조를 사용하여 6MHz 채널에 맞춰질 수 있다. 업-컨버터(106)의 출력은 조합기/증폭기(108)에 인가되며, 이는 조합된 신호를 전송 매체(110)로 보낸다.The QAM modulated IF signal is sent to up-converter 106 to be converted into an RF signal suitable for the designated channel (eg, 559.250 MHz and 6 MHz bandwidth for CATV channel 80). For example, where a cable network has a high bandwidth (or bit rate), each channel may be used to provide one or more data streams, with each data stream occupying a virtual sub-channel. As an example, three MPEG1 data streams can be tuned to a 6 MHz channel using QAM modulation. The output of up-converter 106 is applied to combiner / amplifier 108, which sends the combined signal to transmission medium 110.

양호한 실시예에서, "N"데이터 시스템을 전송하기 위한 총 시스템 대역폭(BW)은 BW=N x bw이며, 여기서, bw는 데이터 스트림당 소요 대역폭이다. 예로서, 각 MPEG-1 데이터 스트림이 시스템 대역폭의 9Mbits/sec를 점유하기 때문에, 3개의 MPEG-1 데이터 스트림이 30.3Mbits/sec의 시스템 대역폭을 가지는 DOCSIS 케이블에 의해 동시에 전송될 수 있다.In a preferred embodiment, the total system bandwidth (BW) for transmitting the "N" data system is BW = N x bw, where bw is the bandwidth required per data stream. As an example, since each MPEG-1 data stream occupies 9 Mbits / sec of the system bandwidth, three MPEG-1 data streams can be simultaneously transmitted by a DOCSIS cable having a system bandwidth of 30.3 Mbits / sec.

일반적으로, 대역폭은 DOD 서비스를 실제 억세스하는 가입 클라이언트의 수에 무관하게 소모된다. 따라서, 어떠한 가입 클라이언트도 DOD 서비스를 사용하지 않는 경우에도, 대역폭은 여전히 시스템의 주문 기능을 보증하기 위해 소모된다.In general, bandwidth is consumed regardless of the number of subscribing clients actually accessing the DOD service. Thus, even if no subscribing clients use the DOD service, the bandwidth is still consumed to guarantee the ordering function of the system.

STB(300)는 on 상태가 되고 나면, 지속적으로 프로그램 가이드를 수신하고, STB(300)의 로컬 메모리(308)내에 저장된 프로그램 가이드를 갱신한다. 양호한 실시예에서, STB(300)는 TV 스크린상에 최신 프로그램 가이드를 포함하는 데이터 파일 정보를 디스플레이한다. 비디오 파일 정보 같은 데이터 파일 정보는 영화 ID, 영화 제목, 설명(다국어), 범주(예로서, 액션, 아동), 등급(예로서, R, PG13), 케이블 회사 방침(예로서, 가격, 미리보기 길이), 예약 주기, 영화 포스터 및 영화 미리보기를 포함할 수 있다. 양호한 실시예에서, 데이터 파일 정보는 펌웨어 업데이트, 광고방송 및/또는 비상 정보를 위해 예약된 채널 같은 예약된 물리적 채널을 경유하여 보내진다. 다른 양호한 실시예에서, 정보는 다른 데이터 스트림에 의해 공유된 물리적 채널로 보내진다.Once the STB 300 is in the on state, it continuously receives the program guide and updates the program guide stored in the local memory 308 of the STB 300. In the preferred embodiment, STB 300 displays data file information including the latest program guide on the TV screen. Data file information, such as video file information, includes movie ID, movie title, description (multilanguage), category (e.g. action, child), rating (e.g. R, PG13), cable company policy (e.g. price, preview) Length), reservation cycles, movie posters, and movie previews. In a preferred embodiment, the data file information is sent via a reserved physical channel, such as a channel reserved for firmware updates, commercials, and / or emergency information. In another preferred embodiment, the information is sent to a physical channel shared by another data stream.

가입 클라이언트는 텔레비전 스크린상에 디스플레이된 범주에 의해 배열된 가용 데이터 파일의 리스트를 볼 수 있다. 클라이언트가 가용 데이터 파일 중 하나를 선택하였을 때, STB(300)는 그 하드웨어를 제어하여, 대응 물리적 채널 및/또는 가상 서브-채널로 동조하여 그 데이터 파일을 위한 데이터 패킷을 수신하기 시작한다. STB(300)는 모든 데이터 패킷 헤더를 검토하고, 데이터 패킷내의 데이터를 디코딩하며, 수신된 데이터 패킷이 보유되어야 하는지 여부를 결정한다. STB(300)가 데이터 패킷이 보유되지 않아야 하다고 판정한 경우에, 데이터 패킷은 버려진다. r 이외의 경우에, 패킷 데이터는 추후 검색을 위해 로컬 메모리(308)에 저장되거나, 디코더(312)에 보내질 때까지 버퍼 메모리(309)에 임시 저장된다.The subscription client may view a list of available data files arranged by category displayed on the television screen. When the client selects one of the available data files, the STB 300 controls its hardware to tune to the corresponding physical channel and / or virtual sub-channel and begin receiving data packets for that data file. The STB 300 examines all data packet headers, decodes the data in the data packet, and determines whether the received data packet should be retained. If the STB 300 determines that no data packet should be retained, the data packet is discarded. In cases other than r, the packet data is stored in local memory 308 for later retrieval, or temporarily stored in buffer memory 309 until sent to decoder 312.

로컬 메모리(308)로의 빈번한 판독/기록을 회피함으로써 성능 효율을 향상시키기 위해, 양호한 실시예에서, STB(300)는 가능할 때마다 메모리 버퍼(309)내에 예측된 데이터 블록을 로킹하도록 "슬라이딩 윈도우" 예측 기술을 사용한다. 데이터 블록은 예측 윈도우내의 히트(hit)가 발생한 경우에, 메모리 버퍼(309)로부터꺼내져 직접적으로 디코더(312)에 전달된다. 예측 오류가 발생한 경우에, 데이터 블록이 메모리 버퍼(309)로부터 디코더(309)로 전달되기 이전에, 로컬 메모리(308)로부터 메모리 버퍼(309)로 독입된다.In order to improve performance efficiency by avoiding frequent reads / writes to local memory 308, in preferred embodiments, STB 300 " sliding window " to lock the predicted data block in memory buffer 309 whenever possible. Use prediction techniques. The data block is taken out of the memory buffer 309 and passed directly to the decoder 312 when a hit in the prediction window occurs. In the event of a prediction error, the data block is read from the local memory 308 into the memory buffer 309 before being passed from the memory buffer 309 to the decoder 309.

양호한 실시예에서, STB(300)는 일시정지, 느린 재생, 되감기, 줌 및 싱글 스텝(single step)을 포함하는, 적외선(IR) 원격 제어 유니트 버튼, IR 키보드 또는 전면 패널 푸시버튼을 경유하여 가입 클라이언트 명령에 응답한다. 양호한 실시예에서, 가입 클라이언트가 사전결정된 시간 주기 동안 어떠한 동작(예로서, 프로그램 메뉴의 스크롤, 범주 또는 영화의 선택)도 입력하지 않는 경우에, 스케줄된 광고방송이 자동으로 재생된다. 스케줄된 광고방송은 가입 클라이언트가 동작(예로서, 원격 제어 유니트의 버튼을 누름)을 제공하였을 때, 자동으로 정지된다. 다른 양호한 실시예에서, STB(300)는 비디오가 재생되는 동안, 자동으로 광고방송을 삽입할 수 있다. 서비스 공급자(예로서, 케이블 회사)는 얼마나 빈번히 광고방송이 재생중인 비디오를 중단하여야 하는지를 규정하는 가격 방침을 설정할 수 있다.In a preferred embodiment, the STB 300 subscribes via an infrared (IR) remote control unit button, an IR keyboard, or a front panel pushbutton, including pause, slow play, rewind, zoom, and single step. Respond to client commands. In a preferred embodiment, the scheduled commercial is automatically played if the subscription client does not enter any action (eg, scrolling of a program menu, selection of a category or movie) for a predetermined time period. The scheduled commercial is automatically stopped when the subscribing client provides an action (eg, pressing a button on the remote control unit). In another preferred embodiment, STB 300 may automatically insert a commercial while the video is playing. The service provider (e.g., cable company) may set a pricing policy that specifies how often the commercial should stop playing video.

데이터 패킷 헤더에서 비상 정보 비트가 발견되는 경우에, STB(300)는 모든 데이터 수신 작업을 일시 정지하고, 소정의 비상 정보를 획득 및 디코딩하여 출력 스크린상에 디스플레이하기 위해 데이터 파일 정보를 수신하도록 예약된 채널로 동조하도록 그 하드웨어를 제어한다. 양호한 실시예에서, STB(300)가 유휴상태일 때, 이는 데이터 파일 정보를 수신하기 위해 예약된 채널로 동조되고, 지연 없이 소정의 비상 정보를 수신 및 디스플레이하기 위해 항상 대기한다.If an emergency information bit is found in the data packet header, the STB 300 pauses all data receiving operations and reserves to receive data file information for obtaining and decoding certain emergency information for display on an output screen. Its hardware is tuned to tuned channels. In the preferred embodiment, when STB 300 is idle, it is tuned to a channel reserved for receiving data file information and always waits to receive and display certain emergency information without delay.

상술한 예는 본 발명의 특정 양호한 실시예를 예시하고 있으며, 본 기술 분야의 숙련자들은 이로부터 이루어지는 다른 실시예, 변형 및 변경을 명백히 알 수 있을 것이다. 따라서, 본 발명은 상술된 특정 실시예에 한정되지 않으며, 하기의 청구 범위에 의해서 규정된다.The above examples illustrate certain preferred embodiments of the invention, and those skilled in the art will clearly appreciate other embodiments, modifications, and variations made therefrom. Accordingly, the invention is not limited to the specific embodiments described above, but is defined by the following claims.

Claims (29)

Translated fromKorean
데이터 블록의 클라이언트 포괄 시퀀스를 전송하기 위한 주문형 데이터(DOD) 방송 방법에 있어서,In the on-demand data (DOD) broadcasting method for transmitting a client comprehensive sequence of the data block,준최적(sub-optimal) 시간 전달 특성을 가지는, 데이터 블록의 클라이언트 포괄 데이터 전송 시퀀스를 준비하는 작업, 및Preparing a client-inclusive data transfer sequence of data blocks having sub-optimal time propagation characteristics, and수신 클라이언트가 사전결정된 시간 주기내에 상기 데이터 파일을 억세스하기 시작할 수 있도록 클라이언트 비지정 방식으로, 상기 준최적 전송 시퀀스에 따라 상기 데이터 블록의 시퀀스를 구성하는 데이터 파일을 복수의 클라이언트에게 전송하는 작업을 포함하는 주문형 데이터 방송 방법.Transmitting, to a plurality of clients, a data file constituting the sequence of data blocks according to the sub-optimal transmission sequence, in a client non-specified manner such that a receiving client can begin accessing the data file within a predetermined time period. On-demand data broadcasting method.제 1 항에 있어서, 상기 사전결정된 시간 주기는 기간이고,The method of claim 1, wherein the predetermined time period is a period,상기 기간은 적어도 하나의 상기 데이터블록의 시퀀스내에 포함된 정보에 응답하는 주문형 데이터 방송 방법.Wherein said time period is responsive to information contained in at least one sequence of said datablocks.제 1 항에 있어서, 상기 데이터 파일의 전송은 상기 복수의 클라이언트의 수에 무관한 전송 대역폭의 양을 필요로 하는 주문형 데이터 방송 방법.The method of claim 1, wherein the transmission of the data file requires an amount of transmission bandwidth independent of the number of the plurality of clients.제 3 항에 있어서, 상기 준최적 데이터 전송 시퀀스는4. The method of claim 3, wherein the suboptimal data transmission sequence is데이터 파일을 수신하는 작업,Receiving data files,시간 간격을 지정하는 작업,Specifying a time interval,상기 시간 간격 동안 각 데이터 블록이 디스플레이될 수 있도록 상기 시간 간격에 기초하여 상기 데이터 파일을 복수의 데이터 블록으로 해부하는 작업,Dissecting the data file into a plurality of data blocks based on the time interval so that each data block can be displayed during the time interval,각각 상기 시간 간격과 실질적으로 동일한 기간을 가지는, 상기 데이터 파일을 송신하기 위한 소요 시간 슬롯 수를 결정하는 작업, 및Determining a number of time slots for transmitting the data file, each having a period substantially equal to the time interval, and상기 복수의 데이터 블록 중 적어도 하나를 각 시간 슬롯에 할당하는 작업을 포함하는 주문형 데이터 방송 방법.Allocating at least one of the plurality of data blocks to each time slot.제 4 항에 있어서, 사전결정된 상기 시간 슬롯 수 이내에 클라이언트가 상기 전송 데이터 파일을 억세스할 수 있는 주문형 데이터 방송 방법.5. The method of claim 4, wherein a client can access the transmission data file within the predetermined number of time slots.제 5 항에 있어서, 상기 사전결정된 시간 슬롯 수는 1인 주문형 데이터 방송 방법.6. The method of claim 5, wherein the predetermined number of time slots is one.제 5 항에 있어서, 상기 사전결정된 시간 슬롯 수는 적어도 2인 주문형 데이터 방송 방법.6. The method of claim 5, wherein the predetermined number of time slots is at least two.제 5 항에 있어서, 상기 시간 슬롯 수는 선택된 대역폭을 나타내는 주문형 데이터 방송 방법.6. The method of claim 5, wherein the number of time slots indicates a selected bandwidth.제 1 항에 있어서, 전자 프로그램 가이드(EPG)를 전송하는 것을 포함하고,The method of claim 1 comprising transmitting an electronic program guide (EPG),상기 EPG는 수신 클라이언트가 시청을 위해 원하는 데이터 파일을 선택할 수 있게 하는 주문형 데이터 방송 방법.The EPG allows a receiving client to select a desired data file for viewing.제 9 항에 있어서, 상기 EPG는 선택된 데이터 파일을 수신하기 위한 지연 시간을 나타내는 주문형 데이터 방송 방법.10. The method of claim 9, wherein the EPG indicates a delay time for receiving a selected data file.준최적 데이터 블록 시퀀스로서 전송된 데이터 파일을 수신하기 위한 방법에 있어서,A method for receiving a data file transmitted as a suboptimal data block sequence, the method comprising:적어도 하나의 선택된 데이터 파일을 나타내는 사용자 입력을 수신하는 작업,Receiving user input representing at least one selected data file,사전결정된 시간 주기 동안 메모리 위치내에 상기 준최적 데이터 블록 시퀀스의 복수의 데이터 블록 중 적어도 하나를 저장하는 작업,Storing at least one of the plurality of data blocks of the suboptimal data block sequence in a memory location for a predetermined time period;상기 사전결정된 시간 주기가 경과한 이후, 적어도 상기 데이터 파일의 제 1 부분을 사용자에게 디스플레이하는 작업,Displaying at least a first portion of the data file to a user after the predetermined time period has elapsed,상기 준최적 데이터 블록 시퀀스의 상기 복수의 데이터 블록들 중 적어도 하나의 추가 데이터 블록을 수신하는 작업, 및Receiving at least one additional data block of the plurality of data blocks of the sub-optimal data block sequence, and상기 저장된 데이터 블록 중 적어도 하나를 상기 적어도 하나의 추가 데이터 블록과 조합함으로써 적어도 상기 데이터 파일의 제 2 부분을 사용자에게 디스플레이 하는 작업을 포함하는 데이터 수신 방법.Displaying at least a second portion of the data file to a user by combining at least one of the stored data blocks with the at least one additional data block.제 11 항에 있어서, 상기 적어도 하나의 추가 데이터 블록은 메모리 위치내에도 저장되는 데이터 수신 방법.12. The method of claim 11, wherein said at least one additional block of data is also stored in a memory location.제 11 항에 있어서, 재생을 위해 스케줄링되기 이전에 상기 데이터 파일에 대응하는 데이터 블록이 수신되는 것을 보증하도록 상기 데이터 파일을 재생하기 이전에 대기 시간 소요를 결정하는 것을 추가로 포함하는 데이터 수신 방법.12. The method of claim 11, further comprising determining a wait time requirement before playing the data file to ensure that a data block corresponding to the data file is received prior to being scheduled for playback.제 19 항에 있어서, 상기 대기 시간은 상기 데이터 블록의 준최적 시퀀스의 데이터 블록 중 적어도 하나의 패킹된 헤더내에 보유된 정보에 응답하여 결정되는 데이터 수신 방법.20. The method of claim 19, wherein the latency is determined in response to information held in a packed header of at least one of the data blocks of the suboptimal sequence of the data blocks.데이터 블록의 준최적 시퀀스로서 복수의 시간 슬롯에 거쳐 반복적으로 방송된 데이터 파일을 검색하기 위한 장치에 있어서,An apparatus for retrieving a data file repeatedly broadcast over a plurality of time slots as a suboptimal sequence of data blocks, the apparatus comprising:방송 데이터 파일 중 적어도 하나를 선택하는 사용자로부터의 파일 요청을 수신하기 위한 수단,Means for receiving a file request from a user selecting at least one of the broadcast data files,제 1 시간 간격 동안 상기 데이터 블록의 시퀀스의 적어도 하나의 데이터 블록을 검색하도록 인증된 파일 검색 프로세스를 개시하기 위한 수단,Means for initiating a file retrieval process authorized to retrieve at least one data block of the sequence of data blocks during a first time interval;상기 제 1 시간 간격 이후, 상기 데이터 파일의 제 1 부분을 디스플레이하기 위한 수단,Means for displaying a first portion of the data file after the first time interval,상기 데이터 블록의 준최적 시퀀스의 잔여 데이터 블록을 검색하기 위한 수단, 및Means for retrieving a residual data block of the suboptimal sequence of data blocks, and상기 잔여 데이터 블록 중 적어도 하나와 관련하여 상기 제 1 시간 간격 동안 검색된 적어도 하나의 데이터 블록을 사용하여 상기 데이터의 제 2 부분을 디스플레이하기 위한 수단을 포함하는 데이터 파일 검색 장치.Means for displaying a second portion of the data using at least one data block retrieved during the first time interval with respect to at least one of the remaining data blocks.제 14 항에 있어서, 상기 파일 요청의 검색을 위한 인증을 요청하기 위한 수단을 추가로 포함하는 데이터 파일 검색 장치.15. The apparatus of claim 14, further comprising means for requesting authentication for retrieval of the file request.제 14 항에 있어서, 전자 프로그램 가이드(EPG)가 사용자 셋-톱-박스(STB)에 의해 수신되고, 사용자에게 제공되는 데이터 파일 검색 장치.15. The apparatus of claim 14, wherein an electronic program guide (EPG) is received by a user set-top-box (STB) and provided to a user.제 16 항에 있어서, 상기 사용자 STB는 사용자에 의한 파일 선택에 대응하는 EPG와 함께 전송된 데이터로부터 다운로드 시간 및 재생 시간을 자동으로 결정하고,17. The apparatus of claim 16, wherein the user STB automatically determines the download time and playback time from the data sent with the EPG corresponding to the file selection by the user,상기 다운로드 시간 및 상기 재생 시간에 응답하는 대기 주기 이후에, 상기 파일의 적어도 일부를 자동으로 디스플레이하는 데이터 파일 검색 장치.And at least a portion of the file is automatically displayed after a waiting period in response to the download time and the playback time.제 17 항에 있어서, 상기 사용자 STB는 상기 재생 시간 및 상기 다운로드 시간에 응답하여 대기 주기 기간을 자동으로 계산하는 데이터 파일 검색 장치.18. The apparatus of claim 17, wherein the user STB automatically calculates a waiting period period in response to the playback time and the download time.제 18 항에 있어서, 상기 대기 주기는 상기 파일을 포함하는 상기 데이터 블록의 수에 추가로 응답하는 데이터 파일 검색 장치.19. The apparatus of claim 18, wherein said waiting period further responds to a number of said data blocks comprising said file.데이터 블록의 준최적 시퀀스로서 복수의 시간 슬롯에 거쳐 반복적으로 방송된 데이터 파일을 검색하기 위한 장치에 있어서,An apparatus for retrieving a data file repeatedly broadcast over a plurality of time slots as a suboptimal sequence of data blocks, the apparatus comprising:상기 방송된 데이터 파일 중 적어도 하나를 선택하는 사용자로부터의 파일 요청을 수신하기 위한 입력 디바이스,An input device for receiving a file request from a user who selects at least one of the broadcast data files,제 1 시간 간격 동안 상기 데이터 블록의 시퀀스의 적어도 하나의 데이터 블록을 검색하기 위해 인증된 파일 검색 프로세스를 개시하기 위한 프로세서,A processor for initiating an authenticated file retrieval process to retrieve at least one data block of the sequence of data blocks during a first time interval;상기 제 1 시간 간격 이후, 상기 데이터 파일의 제 1 부분을 디스플레이하기 위한 디스플레이 디바이스, 및A display device for displaying a first portion of the data file after the first time interval, and상기 데이터 블록의 준최적 시퀀스의 잔여 데이터 블록을 검색하기 위한 통신 링크를 포함하고,A communication link for retrieving a residual data block of the suboptimal sequence of data blocks,상기 디스플레이 디바이스는 상기 잔여 데이터 블록 중 적어도 하나와 관련하여 상기 제 1 시간 간격 동안 검색된 상기 적어도 하나의 데이터 블록을 사용하여 상기 데이터 파일의 제 2 부분을 디스플레이하도록 추가로 동작하는 데이터 파일 검색 장치.And the display device is further operative to display a second portion of the data file using the at least one data block retrieved during the first time interval with respect to at least one of the remaining data blocks.제 19 항에 있어서, 상기 요청된 파일의 검색을 위해 인증을 요청하기 위한통신 포트를 추가로 포함하는 데이터 파일 검색 장치.20. The apparatus of claim 19, further comprising a communication port for requesting authentication for retrieval of the requested file.제 20 항에 있어서, EPG가 사용자 STB에 의해 수신되고, 상기 사용자에게 제공되는 데이터 파일 검색 장치.21. The apparatus of claim 20, wherein an EPG is received by a user STB and provided to the user.제 21 항에 있어서, 상기 사용자 STB는 사용자에 의한 파일 선택에 대응하는 EPG와 함께 전송된 데이터로부터 다운로드 시간 및 재생 시간을 자동으로 결정하고,The method of claim 21, wherein the user STB automatically determines a download time and a playback time from data transmitted with an EPG corresponding to file selection by a user,대기 주기 이후 상기 파일의 적어도 일부를 자동으로 디스플레이하며,Automatically display at least a portion of the file after a waiting period,상기 다운로드 시간 및 상기 재생 시간에 응답하는 상기 대기 주기 기간 데이터 파일 검색 장치.And said waiting period period data file retrieval device responsive to said download time and said reproduction time.제 22 항에 있어서, 상기 사용자 STB는 상기 재생 시간 및 상기 다운로드 시간에 응답하여 대기 주기 기간을 자동으로 계산하는 데이터 파일 검색 장치.23. The data file retrieval apparatus according to claim 22, wherein the user STB automatically calculates a waiting period period in response to the reproduction time and the download time.제 23 항에 있어서, 상기 대기 주기는 상기 파일을 포함하는 데이터 블록의 수에 추가로 응답하는 데이터 파일 검색 장치.24. The apparatus of claim 23, wherein the waiting period is further in response to a number of data blocks comprising the file.데이터 블록의 준최적 시퀀스로서 각각 전송되는 복수의 데이터 파일을 전송하기 위한 주문형 데이터(DOD) 방송 시스템에 있어서,In the on-demand data (DOD) broadcasting system for transmitting a plurality of data files, each of which is transmitted as a suboptimal sequence of data blocks,복수의 데이터를 방송하기 위한 DOD 방송 서버,DOD broadcast server for broadcasting a plurality of data,상기 DOD 방송 서버와 통신적으로 연결된 전송 매체, 및A transmission medium communicatively connected with the DOD broadcasting server, and상기 전송 매체를 경유하여 상기 DOD 방송 서버와 통신적으로 연결된 복수의 수신기를 포함하고,A plurality of receivers communicatively coupled to the DOD broadcast server via the transmission medium,상기 DOD 방송 서버는 상기 전송 매체를 경유하여 복수의 데이터 파일을 상기 복수의 수신기들에게 반복적으로 전송하며,The DOD broadcast server repeatedly transmits a plurality of data files to the plurality of receivers via the transmission medium,상기 수신기는 선택된 데이터 파일에 대응하는 인증 정보를 요청하도록 동작하고,The receiver is operative to request authentication information corresponding to the selected data file,상기 수신기는 상기 인증 정보를 수신하도록 추가로 동작할 수 있고,The receiver is further operable to receive the authentication information,상기 수신기는 사전결정된 시간 주기 이후 상기 선택된 데이터 파일의 일부를 사용자에게 디스플레이하도록 추가로 동작할 수 있으며,The receiver may further operate to display a portion of the selected data file to a user after a predetermined time period,상기 사전결정된 시간 주기는 상기 데이터 파일 디스플레이의 시작 이전에 상기 수신기가 상기 데이터 파일의 일부를 저장할 수 있게 하는 주문형 데이터 방송 시스템.The predetermined time period allows the receiver to store a portion of the data file prior to the start of the data file display.데이터 블록의 준최적 시퀀스로서 광역 네트워크를 거쳐 방송된 DOD 데이터 파일을 억세스하기 위한 셋 톱 박스 장치에 있어서,A set top box device for accessing a DOD data file broadcast over a wide area network as a suboptimal sequence of data blocks,상기 방송된 데이터 파일 중 적어도 하나를 선택하는 사용자로부터의 파일 요청을 수신하기 위한 입력 디바이스,An input device for receiving a file request from a user who selects at least one of the broadcast data files,제 1 시간 간격 동안 상기 데이터 블록의 시퀀스의 적어도 하나의 데이터 블록을 검색하도록 인증된 파일 검색 프로세스를 개시하기 위한 프로세서,A processor for initiating a file retrieval process authorized to retrieve at least one data block of the sequence of data blocks during a first time interval;상기 제 1 시간 간격 이후, 상기 데이터 파일의 적어도 일부를 디스플레이하기 위한 디스플레이 디바이스, 및A display device for displaying at least a portion of the data file after the first time interval, and상기 데이터 블록의 준최적 시퀀스의 잔여 데이터 블록을 검색하기 위한 통신 링크를 포함하고,A communication link for retrieving a residual data block of the suboptimal sequence of data blocks,상기 디스플레이 디바이스는 상기 잔여 데이터 블록 중 적어도 하나와 연계하여 상기 제 1 시간 간격 동안 검색된 상기 적어도 하나의 데이터 블록을 사용하여 상기 데이터 파일의 제 2 부분을 디스플레이하도록 추가로 동작하는 셋 톱 박스 장치.And the display device is further operative to display a second portion of the data file using the at least one data block retrieved during the first time interval in association with at least one of the remaining data blocks.제 26 항에 있어서, 상기 프로세서는 상기 선택된 데이터 파일의 최소 부분이 수신되었을 때, 자동으로 상기 선택된 데이터 파일을 디스플레이하기 시작하도록 추가로 동작하는 데이터 파일 검색 장치.27. The apparatus of claim 26, wherein the processor is further operative to automatically display the selected data file when a minimum portion of the selected data file is received.
KR10-2003-7013978A2001-04-242002-04-23Transmission of delayed access client data and demandWithdrawnKR20040063795A (en)

Applications Claiming Priority (17)

Application NumberPriority DateFiling DateTitle
US09/841,7922001-04-24
US09/841,792US20020023267A1 (en)2000-05-312001-04-24Universal digital broadcast system and methods
US09/870,879US20020026646A1 (en)2001-04-242001-05-30Universal STB architectures and control methods
US09/870,8792001-05-30
US09/892,015US20030208561A1 (en)2000-05-312001-06-25Counterfeit STB prevention through protocol switching
US09/892,017US20020026501A1 (en)2000-05-312001-06-25Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
US09/892,0152001-06-25
US09/892,0172001-06-25
US09/902,503US20020049980A1 (en)2000-05-312001-07-09Controlling data-on-demand client access
US09/902,5032001-07-09
US09/933,696US20020059620A1 (en)2000-05-312001-08-20Selective inactivation and copy-protection
US09/933,6962001-08-20
US10/003,6422001-10-25
US10/003,642US20030084461A1 (en)2001-10-252001-10-25Method and apparatus for transmitting non-VOD services
US09/997,968US20020138845A1 (en)2000-05-312001-11-28Methods and systems for transmitting delayed access client generic data-on demand services
US09/997,9682001-11-28
PCT/US2002/012752WO2002086673A2 (en)2001-04-242002-04-23Transmission of delayed access client data and demand

Publications (1)

Publication NumberPublication Date
KR20040063795Atrue KR20040063795A (en)2004-07-14

Family

ID=49356618

Family Applications (1)

Application NumberTitlePriority DateFiling Date
KR10-2003-7013978AWithdrawnKR20040063795A (en)2001-04-242002-04-23Transmission of delayed access client data and demand

Country Status (2)

CountryLink
KR (1)KR20040063795A (en)
AU (1)AU2002258944A1 (en)

Also Published As

Publication numberPublication date
AU2002258944A1 (en)2002-11-05

Similar Documents

PublicationPublication DateTitle
US6557030B1 (en)Systems and methods for providing video-on-demand services for broadcasting systems
JP4358620B2 (en) Data transmission method over network
US20020175998A1 (en)Data-on-demand digital broadcast system utilizing prefetch data transmission
CA2406717A1 (en)Universal stb architectures and control methods
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
US20020023267A1 (en)Universal digital broadcast system and methods
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
JP2005505957A (en) Data transmission method over network
CN100405845C (en) Method and system for transmission delay access to customer generic data-on-demand services
CA2428829A1 (en)Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
KR20030092105A (en)Data-on-demand digital broadcast system utilizing prefetch data transmission
KR20040063795A (en)Transmission of delayed access client data and demand
EP1402331A2 (en)Methods and systems for transmitting delayed access client generic data-on demand services
TWI223563B (en)Methods and systems for transmitting delayed access client generic data-on-demand services
AU2001253797A1 (en)Universal digital broadcast system and methods
KR20030051800A (en)Decreased idle time and constant bandwidth data-on-demand broadcast delivery ma-trices
HK1124714A (en)Data-on-demand digital broadcast system utilizing prefetch data transmission

Legal Events

DateCodeTitleDescription
PA0105International application

Patent event date:20031024

Patent event code:PA01051R01D

Comment text:International Patent Application

PG1501Laying open of application
PC1203Withdrawal of no request for examination
WITNApplication deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid

[8]ページ先頭

©2009-2025 Movatter.jp