KR100758514B1 - Information server and method of arranging carousel information - Google Patents

Information server and method of arranging carousel information Download PDF

Info

Publication number
KR100758514B1
KR100758514B1 KR1020000002593A KR20000002593A KR100758514B1 KR 100758514 B1 KR100758514 B1 KR 100758514B1 KR 1020000002593 A KR1020000002593 A KR 1020000002593A KR 20000002593 A KR20000002593 A KR 20000002593A KR 100758514 B1 KR100758514 B1 KR 100758514B1
Authority
KR
South Korea
Prior art keywords
carousel
data
file
transport stream
files
Prior art date
Application number
KR1020000002593A
Other languages
Korean (ko)
Other versions
KR20000076493A (en
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 EP19990300440 external-priority patent/EP1022902B1/en
Priority claimed from EP99300438A external-priority patent/EP1022908B1/en
Priority claimed from EP19990300441 external-priority patent/EP1022909B1/en
Priority claimed from EP19990300439 external-priority patent/EP1022901B1/en
Application filed by 소니 서비스 센터(유럽) 엔.브이. filed Critical 소니 서비스 센터(유럽) 엔.브이.
Publication of KR20000076493A publication Critical patent/KR20000076493A/en
Application granted granted Critical
Publication of KR100758514B1 publication Critical patent/KR100758514B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D35/00Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor
    • B65D35/02Body construction
    • B65D35/04Body construction made in one piece
    • B65D35/08Body construction made in one piece from plastics material

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

파일들의 캐로셀(carousel)의 전송 스트림 표현(transport stream representation)에서 순차 관계없이 추가 파일을 삽입하기 위해, 상기 전송 스트림 표현은 미리 구성되어지며, 구성하는 동안 전송 스트림 표현의 페이로드 리스트(payload list)에서 삽입점들이 지정되고, 상기 추가 파일에 대해 전송 스트림 페이로드가 계산되고, 또한 상기 전송 스트림 페이로드는 다음 삽입점에서 전송 스트림 표현에 삽입되고, 캐로셀의 파일들을 출력하기 위해, 캐로셀의 각 페이지가 참조 명칭으로 지정되고, 각 참조 명칭에 대해 하나 이상의 파일 어드레스들이 지정되고, 출력의 특징을 지정하도록 각 참조 명칭에 속성이 할당되고, 캐로셀의 페이지들이 순차적으로 참고되고, 또한 각 페이지들과 연관된 속성들에 따라 어드레스들로 지정된 파일들이 출력되는 정보 서버(information server)가 제공된다.In order to insert additional files in sequence in a transport stream representation of a carousel of files, the transport stream representation is preconfigured and a payload list of transport stream representations during configuration. Insertion points are specified, a transport stream payload is calculated for the additional file, and the transport stream payload is inserted into the transport stream representation at the next insertion point, and the carousel is output to output the files of the carousel. Each page of is designated with a reference name, one or more file addresses are specified for each reference name, an attribute is assigned to each reference name to specify the characteristics of the output, the pages of the carousel are referred to sequentially, and each Information server where files specified by addresses are output according to attributes associated with pages server).

파일 캐로셀의 전송 스트림, 정보 서버File Carousel Transport Stream, Information Server

Description

캐로셀 정보를 배열하는 정보 서버 및 방법{Information server and method of arranging carousel information} Information server and method of arranging carousel information}             

도 1은 본 발명이 실현될 수 있는 방송 네트워크를 도시하는 도면.1 is a diagram showing a broadcast network in which the present invention can be realized.

도 2는 본 발명이 실현될 수 있는 정보 서버의 실행 섹션을 도시하는 도면.2 illustrates an execution section of an information server in which the present invention can be realized.

도 3은 본 발명이 실현될 수 있는 정보 서버들의 배열을 도시하는 도면.3 illustrates an arrangement of information servers in which the present invention may be implemented.

도 4a 및 도 4b는 본 발명이 실현될 수 있는 정보 서버를 설명하는 도면.4A and 4B illustrate an information server in which the present invention can be implemented.

도 5는 오브젝트(object)/데이터 캐로셀(carousel)을 도시하는 도면.5 shows an object / data carousel.

도 6은 데이터 동작들을 우선화하는 개념적인 시간 슬롯(time slot)의 어레이를 도시하는 도면.6 illustrates an array of conceptual time slots for prioritizing data operations.

도 7은 파일들로부터 DVB 섹션의 구성을 도시하는 도면.7 shows the configuration of a DVB section from files.

도 8은 데이터 변환들을 위한 종속 구조(dependency structure)를 도시하는 도면.8 illustrates a dependency structure for data transformations.

* 도면의 주요 부분에 대한 설명*Description of the main parts of the drawing

20 : 호스트, 8 : MUX 20: host, 8: mux

10 : MOD , 24 : 저장기10: MOD, 24: Saver

22 : 제어 및 데이터 , 22 : API 서버22: control and data, 22: API server

28 : 캐로셀 빌더 , 34 : SI 테이블들 관리기28: Carousel builder, 34: SI tables manager

30 : 패킷화기, 32 : 드라이버30: packetizer, 32: driver

본 발명은 정보 서버 및 캐로셀 정보를 배열하는 방법에 관한 것으로서, 특히, 파일들의 캐로셀(carousel)의 전송 스트림 표현에 추가 파일이 순서없이 삽입되는 경우와, 캐로셀의 특성(nature)이 지정될 수 있는 경우에 관한 것이다.The present invention relates to an information server and a method of arranging carousel information, in particular, when additional files are inserted in random order in a transport stream representation of a carousel of files, and a nature of a carousel is specified. When possible.

선택된 채널의 전송 스트림에 정보를 제공하기 위해서는 정보 서버를 제공하도록 제안되었다. 예를 들면, 비디오 데이터 등을 방송하도록 특정한 채널의 전송 스트림에 다양한 데이터 파일들이 제공될 수 있다.
이제는 캐로셀의 방식으로 다수의 다른 데이터 파일들이 순차적으로 전송되는 것이 제안된다. 그러나, 본 출원은 캐로셀의 페이지 내용에 약간의 탄력성이 필요함을 인식한다. 특히, 본 발명에 따라, 파일들의 다른 미리 결정된 캐로셀에 파일을 삽입하는 것이 가능해야 함이 제안된다. 불행하게도, 원래의 캐로셀 파일들로부터 전송 스트림의 페이로드(payload)에 발생되는 변형(transformation)으로 인해, 전체적인 전송 스트림을 혼란시키지 않고 단순히 추가 페이로드 정보를 삽입하는 것은 가능하지 않다.
It is proposed to provide an information server to provide information on the transport stream of the selected channel. For example, various data files may be provided in a transport stream of a specific channel to broadcast video data and the like.
It is now proposed that a number of different data files are transmitted sequentially in the manner of a carousel. However, the present application recognizes that some flexibility is required for the page content of the carousel. In particular, it is proposed according to the invention that it should be possible to insert a file into another predetermined carousel of files. Unfortunately, due to the transformation occurring in the payload of the transport stream from the original carousel files, it is not possible to simply insert additional payload information without disturbing the entire transport stream.

본 발명에 따라, 파일들의 캐로셀의 전송 스트림 표현에 추가 파일을 순서 관계없이 삽입하는 방법이 제공되며, 상기 전송 스트림 표현은 미리 구성되는, 상기 방법은, 구성하는 동안 전송 스트림 표현의 페이로드 리스트에서 삽입점들을 지정하는 단계와, According to the present invention, a method is provided for inserting an additional file in any order into a transport stream representation of a carousel of files, wherein the transport stream representation is preconfigured, wherein the method comprises: a payload list of transport stream representations during configuration Specifying insertion points in,

상기 추가 파일에 대한 전송 스트림 페이로드를 계산하는 단계와,Calculating a transport stream payload for the additional file;

다음 삽입점에서 전송 스트림 표현에 상기 전송 스트림 페이로드를 삽입하는 단계를 포함한다.Inserting the transport stream payload into the transport stream representation at the next insertion point.

본 발명에 따라, 출력 전송 스트림에 정보를 제공하는 정보 서버가 제공되고, 상기 정보 서버는,
파일들의 캐로셀의 전송 스트림 표현에 대한 전송 스트림 페이로드들을 구성하는 캐로셀 빌더와,
According to the present invention, there is provided an information server for providing information to an output transport stream, said information server comprising:
A carousel builder constituting transport stream payloads for the transport stream representation of the carousel of files,

파일들의 캐로셀에 삽입되는 삽입 파일에 대한 전송 스트림 페이로드를 구성하는 페이로드 빌더를 포함하고,A payload builder for constructing a transport stream payload for an insert file inserted into a carousel of files,

캐로셀 빌더는, 상기 삽입 파일의 페이로드가 이용 가능한 다음 삽입점에 삽입될 수 있도록 페이로드를 구성하는 동안 전송 스트림 표현에서 삽입점들을 지정한다.The carousel builder specifies the insertion points in the transport stream representation while constructing the payload so that the payload of the insertion file can be inserted at the next available insertion point.

이러한 방법으로, 삽입점들은 전송 스트림의 전체적인 내용을 혼란시키지 않고 출력 전송 스트림에 추가 페이로드들이 삽입될 수 있게 한다. 더욱이, 삽입점들은 추가 파일이 비교적 신속하게 삽입될 수 있도록 캐로셀을 통해 비교적 짧은 간격들로 제공될 수 있다.In this way, insertion points allow additional payloads to be inserted into the output transport stream without disturbing the overall content of the transport stream. Moreover, insertion points can be provided at relatively short intervals through the carousel so that additional files can be inserted relatively quickly.

바람직하게는, 정보 서버는 캐로셀 빌더에 의해 계산된 페이로드들을 주기적으로 참고하고 전송을 위한 전송 스트림 패킷들(packets)을 구성하는 멀티플렉서/패킷화기(multiplexer/packetiser)를 더 포함하고, 멀티플렉서는 삽입점을 참고하여 이용가능한 다음 삽입점에 삽입 파일의 페이로드를 삽입한다.Preferably, the information server further comprises a multiplexer / packetiser which periodically consults the payloads calculated by the carousel builder and constructs transport stream packets for transmission, the multiplexer Refer to the insertion point and insert the payload of the insert file at the next available insertion point.

이 방법으로, 상당한 양의 재계산이 요구되지 않고, 멀티플렉서/패킷화기는 이용가능한 다음 삽입점에 요구되는 페이로드 정보를 단순히 삽입한다.In this way, no significant amount of recalculation is required, and the multiplexer / packetizer simply inserts the required payload information at the next available insertion point.

정보 서버는 전송 스트림을 생성하는 적어도 하나의 스트림 발생기(Stream Generator)를 포함할 수 있고, 스트림 발생기는 상기에 지정된 바와 같은 적어도 하나의 캐로셀 빌더 및 멀티플렉서를 포함한다.The information server may comprise at least one stream generator for generating a transport stream, the stream generator comprising at least one carousel builder and multiplexer as specified above.

바람직하게는, 멀티플렉서는 전송을 위해 계산된 페이로드로부터 MPEG2 전송 스트림 패킷을 형성하고, 파일은 DSMCC 오브젝트들(objects)이고, 또한 캐로셀 빌더는 오브젝트 캐로셀에 대해 DSMCC 섹션들의 완전한 세트를 구성한다.Preferably, the multiplexer forms MPEG2 transport stream packets from the payload calculated for transmission, the file is DSMCC objects, and the carousel builder constitutes a complete set of DSMCC sections for the object carousel. .

사용자가 다른 방법으로 캐로셀의 다양한 페이지들을 지정하기 원하는 것이 가능하다. 예를 들면, 상술된 바와 같이, 일부 파일은 예를 들어 업데이트 내용을 막 수신했을 때 즉각적인 삽입을 요구할 수 있다. 유사하게, 캐로셀의 일부 페이지는, 캐로셀의 각 회전시 연속적인 버전들이 출력되도록 다수의 버전들을 포함할 수 있다.It is possible for the user to want to specify various pages of the carousel in other ways. For example, as described above, some files may require immediate insertion, for example when they have just received an update. Similarly, some pages of the carousel may include multiple versions such that successive versions are output at each rotation of the carousel.

본 발명에 따라, 캐로셀의 파일들을 출력하는 방법이 제공되고, 상기 방법은,According to the present invention, there is provided a method for outputting files of a carousel, said method comprising:

참조 명칭으로 캐로셀의 각 페이지를 지정하는 단계와,Designating each page of the carousel by a reference name,

각 참조 명칭에 대해 하나 이상의 파일 어드레스들을 지정하는 단계와,Specifying one or more file addresses for each reference name,

출력의 특징을 지정하도록 각 참조 명칭에 속성을 할당하는 단계와,Assigning an attribute to each reference name to characterize the output;

순차적으로 캐로셀의 페이지를 참고하여 각 페이지들과 연관된 특성에 따라 어드레스들로 식별된 파일을 출력하는 단계를 포함한다.Sequentially referring to the pages of the carousel and outputting a file identified by addresses according to characteristics associated with each page.

본 발명에 따라, 캐로셀의 파일들을 출력하는 정보 서버가 또한 제공되고, 상기 정보 서버는,
참조 명칭으로 캐로셀의 각 페이지를 지정하고, 각 참조 명칭에 대해 하나 이상의 파일 어드레스들을 지정하고, 그 페이지에 대한 출력의 특징을 지정하도록 각 참조 명칭에 속성을 할당하는 레지스터(register)와,
순차적으로 캐로셀의 페이지들을 참고하여 각 페이지들에 연관된 속성에 따라 어드레스들로 식별된 파일들을 출력하는 캐로셀 빌더를 포함한다.
According to the invention, there is also provided an information server for outputting files of a carousel, said information server comprising:
A register that designates each page of the carousel by reference name, specifies one or more file addresses for each reference name, and assigns an attribute to each reference name to specify the characteristics of the output for that page,
And a carousel builder that sequentially references the pages of the carousel and outputs files identified by addresses according to attributes associated with each page.

이 방법으로, 사용자는 캐로셀의 구조를 쉽게 지정할 수 있다.In this way, the user can easily specify the structure of the carousel.

바람직하게는, 속성들은 캐로셀의 각 회전시 각 페이지에 대해 어드레스로 나타내지는 파일만을 출력함을 나타내는 정상적인 속성과, 캐로셀의 각 회전시 각 페이지에 대해 리스트된 파일 어드레스로부터 연속적인 파일이 출력됨을 나타내는 주기적인 속성을 포함한다.Preferably, the attributes are a normal attribute indicating that only the file addressed for each page in each rotation of the carousel is output, and successive files are output from the file addresses listed for each page in each rotation of the carousel. Contains a periodic attribute indicating that

특성들은 또한 캐로셀이 각 참조 명칭에 도달할 때 파일 어드레스로 나타내지는 파일이 출력될 뿐만 아니라, 파일 어드레스의 내용이 업데이트될 때마다 그 참조 명칭에 대해 파일 어드레스로 나타내지는 파일도 출력됨을 나타내는 즉각적인 속성을 포함한다.The properties also indicate that the file indicated by the file address is not only output when the carousel reaches each reference name, but also that the file indicated by the file address for that reference name is also output each time the contents of the file address are updated. Contains an attribute.

이 방법으로, 캐로셀의 각 페이지는 그 내용에 대해서 뿐만 아니라, 캐로셀의 각 회전시 이것이 어떻게 출력되는가에 대해서도 쉽게 지정될 수 있다.In this way, each page of the carousel can be easily specified not only for its contents, but also for how it is output during each rotation of the carousel.

앞서, 처리 자원들이나 전송 대역폭을 우선화하기 위해, 작업들이나 데이터 파일들이 그들의 상대적인 중요성을 나타내는 값으로 설정된다. 예를 들면, 데이터 전송시, 한 데이터 소스는 이용가능한 대역폭의 80%에 할당되는 반면, 또 다른 데이터 소스는 나머지 20%에 할당될 수 있다. 유사하게, 프로세서가 다수의 다른 작업을 실행해야 하는 경우, 특정한 작업들은 이용가능한 처리 시간의 특정한 퍼센트로 할당될 수 있다.Earlier, in order to prioritize processing resources or transmission bandwidth, tasks or data files are set to values indicating their relative importance. For example, in data transmission, one data source may be allocated 80% of the available bandwidth, while another data source may be allocated the remaining 20%. Similarly, when a processor needs to execute a number of different tasks, certain tasks may be allocated at a certain percentage of the processing time available.

비록 이 시스템은 작업이나 데이터 소스가 자주 변하지 않는 시스템에서 충분히 작동하지만, 정규적으로 재구성되는 시스템에서는, 이 방법은 계산적인 면에서 비효율적이다. 특히, 데이터 소스나 작업이 추가 또는 삭제되는 경우, 시스템은 대역폭 또는 처리 시간에 대해 퍼센트 할당을 재계산하여야 한다.Although this system works well on systems where tasks or data sources do not change often, this method is computationally inefficient in systems that are regularly reconfigured. In particular, when data sources or tasks are added or deleted, the system must recalculate the percent allocation for bandwidth or processing time.

본 출원은 먼저 데이터 동작의 상대적인 우선순위들이 유지되어 데이터 동작이 추가 또는 삭제되더라도 재계산될 필요가 없는 방식으로 데이터 동작에 우선순위들을 지정할 필요가 있음을 인식하고 있다.The present application recognizes first that it is necessary to assign priorities to data operations in such a way that the relative priorities of the data operations are maintained so that they do not need to be recalculated even if the data operations are added or deleted.

처리 또는 전송과 같은 데이터 동작들을 우선화하는 방법이 제공되고, 그 방법은,A method is provided for prioritizing data operations, such as processing or transmission, the method comprising:

미리 결정된 수의 개념적인 시간 슬롯들(notional time slots)의 주기적인 어레이를 구성하는 단계와,Constructing a periodic array of a predetermined number of conceptual time slots,

개념적인 시간 슬롯들의 어레이에 대해 회수 값(frequency value)으로 각 데이터 동작을 지정하는 단계와,Assigning each data operation to a frequency value for an array of conceptual time slots,

회수 값에 따라 결정된 공간으로 일련의 연속적인 개념적 시간 슬롯들에서 어레이로 각 데이터 동작을 등록하는 단계와,Registering each data operation with the array in a series of consecutive conceptual time slots into a space determined according to a retrieval value;

하나 이상의 데이터 동작이 등록된 어레이의 개념적 시간 슬롯의 각각을 연속적으로 참고하고, 데이터 동작이 등록되어 현재의 개념적인 시간에 선택될 때마다 데이터 동작을 실행하는 단계를 구비한다.Successively referring to each of the conceptual time slots of the array in which one or more data operations are registered, and executing the data operation whenever a data operation is registered and selected at the current conceptual time.

또한, 처리 또는 전송과 같은 데이터 동작을 우선화하는 시스템이 제공되고, 그 시스템은,In addition, a system is provided for prioritizing data operations, such as processing or transmission, the system comprising:

미리 결정된 수의 개념적인 시간 슬롯들의 주기적인 어레이와, A periodic array of a predetermined number of conceptual time slots,

시간 슬롯들의 어레이에 대해 회수값으로 각 데이터 동작을 지정하는 입력과,An input that specifies each data operation as a retrieval value for an array of time slots,

회수값에 따라 결정된 공간으로 일련의 연속적인 개념적 시간 슬롯들에서 어레이로 각 데이터 동작을 등록하고, 하나 이상의 데이터 동작들이 등록된 어레이의 개념적 시간 슬롯의 각각을 연속적으로 참고하고, 또한 데이터 동작이 개념적인 시간에서의 진보에 따라 등록되어 선택될 때마다 데이터 동작을 초기화하는 제어를 구비한다.Register each data operation from the series of consecutive conceptual time slots to the array in a space determined according to the retrieval value, refer to each of the conceptual time slots of the array in which one or more data operations are registered, and also the data operation is conceptual. Control for initiating a data operation each time it is registered and selected in accordance with advances in conventional time.

이 방법으로, 데이터 동작의 우선순위들은 어레이의 개념적인 시간 슬롯에 대해 모두 설정된다. 한 데이터 동작에 대한 엔트리(entry)가 매 n번째 엔트리마다 일어나고 또 다른 데이터 동작에 대한 엔트리가 매 m번째 엔트리마다 일어나면, 명확하게, 처음 두 데이터 동작에 대한 실제 할당이 감소되더라도, 두 엔트리의 상대적인 발생은 또 다른 데이터 동작에 대해 엔트리가 이루어지는가 여부에 관계없이 똑같이 유지된다. 그래서, 상기 방법 및 시스템은, 다른 데이터 동작이 추가 또는 삭제될 때 그들의 전체적인 공유 내용을 재계산할 필요없이 다양한 데이터 동작의 상대적인 우선화를 허용한다.In this way, priorities of data operation are all set for the conceptual time slots of the array. If an entry for one data operation occurs every nth entry and an entry for another data operation occurs every mth entry, clearly, the relative of the two entries, even if the actual allocation for the first two data operations is reduced. The occurrence remains the same whether or not an entry is made for another data operation. Thus, the method and system allow for the relative prioritization of various data operations without the need to recalculate their overall shared content when other data operations are added or deleted.

바람직하게는, 상기 시스템은 데이터 소스의 선택으로부터 전송 스트림 패킷들을 어셈블링(assembling)하는 스트림 발생기를 포함할 수 있고, 회수값은 데이터 소스 각각에 지정되고, 상기 스트림 발생기는 제어에 따라 전송 스트림 페이로드에 대한 데이터 중에서 데이터 소스를 선택한다.Advantageously, the system may comprise a stream generator for assembling transport stream packets from the selection of a data source, a recovery value is assigned to each data source, and the stream generator is controlled according to control. Select a data source from the data for the load.

전송 스트림으로 전송하는 데이터 소스를 우선화함으로서, 특정한 데이터 소스들을 전송 스트림에 더 많은 대역폭으로 할당하는 것이 가능하다. 데이터 소스로부터의 데이터가 반복적으로 전송되는 경우, 이는 특정한 데이터 소스로부터의 데이터가 전송되는 상대적인 회수를 제어하는데 사용될 수 있다.By prioritizing the data sources to transmit in the transport stream, it is possible to allocate specific data sources to the transport stream with more bandwidth. When data from a data source is transmitted repeatedly, it can be used to control the relative number of times data from a particular data source is transmitted.

상기에 의해, 사용되는 데이터 소스에 이미 할당된 상대적인 전송 대역폭을 변경시키지 않고 다른 우선순위를 갖는 다른 데이터 소스들이 쉽게 선택 또는 제거될 수 있다.By this, other data sources with different priorities can be easily selected or removed without changing the relative transmission bandwidth already assigned to the data source used.

바람직하게도, DVB/MPEG2와 같이, 출력 전송 스트림에 정보를 제공하는 정보 서버는 이러한 시스템을 포함하여 이러한 방법을 실행할 수 있다. 정보 서버는 바람직하게는 DVB 호환 가능한 출력 스트림을 만들기 위한 것이다.Preferably, information servers that provide information to the output transport stream, such as DVB / MPEG2, may include such a system to implement this method. The information server is preferably for producing a DVB compatible output stream.

데이터 동작들을 실행할 때, 비록 처리 시간 또는 전송 대역폭의 비례가 중요하지만, 일부 데이터 동작들은 즉각적인 작용을 요구하는 면에서 보다 시간에 종속적이다. 예를 들면, 프로세서가 비디오 디스플레이 및 워드 프로세싱 동작들을 처리할 때 비디오 처리 동작이 워드 프로세싱 동작 이전에 행해지는 것이 훨씬 더 중요하다. 유사하게, 뉴스 항목의 전송에 대해 작은 비율의 대역폭만을 할당한 정보 서버에서, 특정한 뉴스 보고는 대역폭의 계획된 할당에 대기하기 보다는 즉각적으로 대역폭에 할당되는 것이 매우 중요하다.When executing data operations, although the proportion of processing time or transmission bandwidth is important, some data operations are more time dependent in that they require immediate action. For example, when a processor processes video display and word processing operations, it is even more important that the video processing operation is performed before the word processing operation. Similarly, in an information server that has allocated only a small percentage of bandwidth for the transmission of news items, it is very important that certain news reports be allocated to bandwidth immediately rather than waiting for the planned allocation of bandwidth.

이 방법으로 데이터 동작을 우선화하는 것에 대한 필요성은 본 출원에 의해 처음으로 인식되었다.The need for prioritizing data operations in this way was first recognized by the present application.

처리 또는 전송과 같은 데이터 동작을 우선화하는 방법 및 시스템이 제안되고, 여기서 각 데이터 동작은 그 데이터 동작에 대한 상대적인 긴급성을 나타내는 잠재값으로 지정되고, 실행될 다음 데이터 동작의 선택은 적어도 잠재값들을 근거로 결정된다.Methods and systems are proposed that prioritize data operations, such as processing or transmission, where each data operation is assigned a potential value that indicates a relative urgency for that data operation, and the selection of the next data operation to be executed at least sets the potential values. Determined on the basis of

이 방법으로, 프로세서 또는 전송기는 가장 중요한 데이터 동작을 다음에 실행하도록 결정할 수 있다.In this way, the processor or transmitter may decide to perform the most important data operation next.

선택된 채널의 전송 스트림에서 정보를 제공하는 정보 서버가 제안된다. 예를 들면, 비디오 데이터 등을 방송하도록 다양한 데이터 파일이 특정한 채널의 전송 스트림에서 제공될 수 있다. 다수의 다른 데이터 파일은 캐로셀을 통해 순차적으로 전송되는 것이 바람직하다. 또한, 캐로셀의 각 파일은 때때로 변화되어야 하는 것이 바람직하다. 그러나, 불행하게도 전송 스트림 패킷을 형성하는 프로토콜 스택(protocol stack)을 통한 파일의 변환 때문에, 원래 파일과 전송 스트림 패킷 사이에는 직접적인 대응관계가 없다. 그래서, 개별 파일들의 대체는 전송 스트림에 보다 심각한 변화가 생기게 한다.An information server is proposed that provides information in a transport stream of a selected channel. For example, various data files may be provided in the transport stream of a particular channel to broadcast video data and the like. Many different data files are preferably transmitted sequentially through the carousel. In addition, it is desirable that each pile of the carousel should be changed from time to time. Unfortunately, there is no direct correspondence between the original file and the transport stream packet because of file conversion through the protocol stack forming the transport stream packet. Thus, replacing individual files results in more serious changes in the transport stream.

파일의 캐로셀로부터 전송 스트림을 구성하는 방법이 제공될 수 있고, 그 방법은,A method may be provided for constructing a transport stream from a carousel of a file, the method comprising:

파일로부터 프로토콜 스택을 통해 전송 스트림 패킷들로 데이터를 변환하는 단계와,Converting data from a file into transport stream packets via a protocol stack;

변환에서 사용되는 각 파일에 대해, 변환으로부터 기인된 변환된 데이터를 나타내는 종속 링크(dependency link)를 저장하고, 더 변환된 데이터를 형성하는 변환에서 사용되는 임의의 변환된 데이터에 대해, 캐로셀내의 파일이 변할 때, 종속 링크가 변화의 결과로서 재계산을 요구하는 변환된 데이터를 나타내도록 부가적으로 변환된 데이터를 나타내는 종속 링크를 저장하는 단계를 구비한다.For each file used in the transformation, it stores a dependency link that represents the transformed data resulting from the transformation, and for any translated data used in the transformation to form further transformed data, in the carousel And when the file changes, storing the dependent link representing the additionally converted data so that the dependent link represents the converted data requiring recalculation as a result of the change.

또한, 파일들의 캐로셀을 전송 스트림으로 출력하는 정보 서버가 제공되고, 그 정보 서버는,In addition, an information server for outputting a carousel of files as a transport stream is provided, the information server comprising:

파일로부터 프로토콜 스택을 통해 전송 스트림 패킷을 형성하도록 데이터를 변환하는 적어도 하나의 캐로셀 빌더와,At least one carousel builder that transforms data from the file to form a transport stream packet through a protocol stack;

일련의 레지스터와,A series of registers,

변환에서 사용되는 각 파일에 대해, 변환으로부터 기인된 변환된 데이터를 나타내는 종속 링크를 저장하고, 더 변환된 데이터를 형성하는 변환에서 사용되는 임의의 변환된 데이터에 대해, 캐로셀내의 파일이 변할 때, 레지스터에 저장된 종속 링크들이 변화의 결과로서 재계산을 요구하는 변환된 데이터를 나타내도록 부가적인 변환된 데이터를 나타내는 종속 링크를 저장하는 종속 메카니즘을 구비한다.For each file used in the transformation, stores a dependent link representing the converted data resulting from the transformation, and for any transformed data used in the transformation to form further transformed data, when the file in the carousel changes And a subordinate mechanism for storing the subordinate link representing the additional converted data such that the subordinate links stored in the register represent the converted data requiring recalculation as a result of the change.

이 방법으로, 파일이 변화되거나 대체될 때, 재계산을 요구하는 전송 스트림에 대해 전체적인 변화 중 일부만을 나타내는 간단한 구조가 제공된다. 다른 말로 하면, 파일이 변화될 때, 전체적인 전송 스트림에 대한 변환들을 재계산하는 것이 불필요하다.In this way, when a file is changed or replaced, a simple structure is provided that represents only a fraction of the overall change for the transport stream that requires recomputation. In other words, when the file changes, it is not necessary to recalculate the transforms for the entire transport stream.

대형 캐로셀에 대해서는 대응하는 전체 전송 스트림의 재계산은 수용될 수 없는 만큼의 시간이 걸린다. 그러나, 재계산을 요구하는 전송 스트림의 일부분만을 식별함으로서, 캐로셀내의 개별적인 파일을 신속하게 업데이트할 수 있는 정보 서버가 제공되는 것이 가능하다.For large carousels, the recalculation of the corresponding entire transport stream takes an unacceptable amount of time. However, by identifying only a portion of the transport stream that requires recalculation, it is possible to provide an information server that can quickly update individual files in a carousel.

바람직하게는, 레지스터는 종속 노드(dependency node)를 포함하는 종속 네트워크의 일부를 형성하고, 종속 노드는 캐로셀의 파일을 기초로 하는 주요 노드와, 프로토콜 스택의 연속되는 층에서 변환된 데이터를 기초로 하는 계산된 노드를 포함한다.Preferably, the register forms part of a dependent network comprising a dependency node, the dependent node based on the primary node based on the file of the carousel and the data transformed in successive layers of the protocol stack. It includes the computed node.

종속 노드는 바람직하게는 파일의 캐로셀을 나타내는 비트 스트림의 특정한 부분에 포인터들(pointers)을 저장한다. 바람직하게는, 종속 링크는 종속 네트워크의 일부로 저장된 것과, 비트스트림의 한 부분이 비트스트림의 또 다른 부분을 계산하는데 사용되는 방법을 나타내고, 포인터들은 비트스트림에 대한 내용 기준들로 동작한다.The subordinate node preferably stores pointers in a particular portion of the bit stream that represents the carousel of the file. Preferably, the subordinate link represents what is stored as part of the subordinate network and how one part of the bitstream is used to calculate another part of the bitstream, and the pointers act as content criteria for the bitstream.

이 방법으로, 종속 네트워크는 정보 서버가 전송 스트림으로의 삽입을 위해 요구되는 비트스트림 부분들을 식별하도록 계산적인 면에서 직접적인 메카니즘을 제공한다. 종속 구조를 따라, 원래 파일내의 페이지들은 쉽게 설명될 수 있다.In this way, the subordinate network provides a computational direct mechanism for the information server to identify the bitstream portions required for insertion into the transport stream. Following the dependency structure, the pages in the original file can be easily described.

바람직하게는, 캐로셀은 DSMCC 오브젝트 캐로셀을 구비하므로, 종속 노드의 내용 기준 포인터들은 DSMCC 오브젝트 캐로셀의 비트 스트림 표현 중 특정한 서브 부분을 지시하고, 주요 노드들은 DSMCC 파일의 내용 기준과 디렉토리 오브젝트(directory object)를 포함한다.Preferably, since the carousel has a DSMCC object carousel, the content reference pointers of the subordinate nodes point to a specific sub-part of the bit stream representation of the DSMCC object carousel, and the main nodes are the content reference and directory object of the DSMCC file. directory object).

다시 한번, 이는 전송 스트림 패킷으로의 삽입을 위해 적절한 데이터를 식별하도록 계산적인 면에서 직접적인 시스템을 제공한다.Once again, this provides a computational direct system to identify appropriate data for insertion into transport stream packets.

캐로셀의 파일 중 적어도 하나는 그 파일의 다른 버전들을 구비하므로, 이어지는 캐로셀 방송의 회전시 다른 버전이 전송된다. 이 경우, 또 다른 적어도 하나의 캐로셀 빌더는 바람직하게는 상기 버전 각각의 데이터를 변환하고, 종속 구조는 각 버전에 대해 종속 링크를 저장하므로, 연속적인 버전의 전송 스트림 패킷들은 캐로셀 방송의 각 회전시 선택된다.At least one of the files of the carousel has different versions of that file, so that subsequent versions of the carousel broadcast are transmitted with different versions. In this case, another at least one carousel builder preferably converts the data of each of the versions, and the dependent structure stores the dependent links for each version, so that successive versions of transport stream packets are stored in each of the carousel broadcasts. It is selected when rotating.

이 방법으로, 캐로셀 방송의 각 회전시, 정보 서버는 요구되는 페이로드 및 전송 스트림 패킷들을 재계산할 필요가 없다. 종속 구조는 정보 서버가 단순히 다른 버전에 대해 포인터를 변화시키도록 허용하므로, 출력 전송 스트림은 캐로셀의 각 회전시 쉽게 변화된다.In this way, at each turn of the carousel broadcast, the information server does not need to recalculate the required payload and transport stream packets. The dependency structure allows the information server to simply change the pointer for different versions, so the output transport stream changes easily with each rotation of the carousel.

다양한 소스들로부터 비디오 및/또는 오디오 데이터를 취하고, 전송 스트림의 개별 채널로서 전송하도록 이들을 MPEG2와 같은 전송 스트림 패킷으로 배열하는 것은 공지되어 있다.It is known to take video and / or audio data from various sources and arrange them into transport stream packets such as MPEG2 to transmit as separate channels of the transport stream.

이제는 이러한 전송 스트림으로 다양한 형태의 정보를 전송하는 것이 제안된다. 정보는 영상들, Java 응용들 등을 포함할 수 있다.It is now proposed to transmit various types of information in such transport streams. The information may include images, Java applications, and the like.

출력 전송 스트림에 정보를 제공하는 정보 서버가 제공되고, 그 정보 서버는,An information server is provided for providing information to an output transport stream, the information server comprising:

외부 호스트(host) 제어기로부터 제어 및 데이터를 수신하는 API 서버와,An API server for receiving control and data from an external host controller,

적어도 상기 데이터를 저장하는 저장기와,A storage for storing at least the data,

API 서버의 제어하에서 상기 데이터로부터 전송 스트림 패킷들을 어셈블링하는 적어도 하나의 스트림 발생기를 포함한다.At least one stream generator for assembling transport stream packets from the data under control of an API server.

이 방법으로, 정보 서버는 예를 들면, 비디오 정보에 대해 다른 유사한 정보 서버나 다른 전송 스트림의 제공자들과 쉽게 다중화될 수 있는 분리된 완전 유닛으로 제공될 수 있다. API 서버를 통해, 정보 서버는 외부 호스트 컴퓨터에 의해 제어 및 구성될 수 있다. 정보 서버에 의해 전송되는 정보는 호스트 제어기로부터 정보 서버의 저장기로 전달될 수 있다. 유사하게, 스트림 발생기는 API 서버의 제어하에서 호스트 제어기에 의해 요구되는 바와 같이 전송 스트림의 선택된 채널에 선택된 정보를 삽입할 수 있다. 정보를 반복적으로 전송하거나 다른 정보를 주기적으로 전송하는 것이 요구되는 경우, 전송 스트림에 대해 이미 계산된 페이로드는 또한 스트림 발생기에 의해 저장될 수 있으므로, 전송 스트림 데이터는 매 전송시 어셈블리될 필요가 없다.In this way, the information server can be provided as a separate complete unit, for example, which can be easily multiplexed with other similar information servers or providers of other transport streams for video information. Through the API server, the information server can be controlled and configured by an external host computer. Information sent by the information server can be transferred from the host controller to the storage of the information server. Similarly, the stream generator can insert the selected information into the selected channel of the transport stream as required by the host controller under the control of the API server. If it is required to transmit information repeatedly or periodically to send other information, the payload already calculated for the transport stream can also be stored by the stream generator, so that transport stream data need not be assembled at every transmission. .

바람직하게는, 각 스트림 발생기는 상기 전송 스트림에서 주기적인 전송을 위해 일련의 페이로드를 구성하는 적어도 하나의 캐로셀 빌더를 구비한다.Advantageously, each stream generator comprises at least one carousel builder constituting a series of payloads for periodic transmission in said transport stream.

캐로셀 빌더는 DSMCC 오브젝트 캐로셀들 및/또는 DSMCC 데이터 캐로셀들을 구성할 수 있고, 입력 데이터 파일들로부터 DSMCC 섹션들을 구성할 수 있다.The carousel builder may configure DSMCC object carousels and / or DSMCC data carousels and may construct DSMCC sections from input data files.

이 방법으로, 일련의 페이로드들이 준비되어 전송 스트림의 채널에서 주기적으로 전송될 수 있다. 하나 이상의 캐로셀 빌더가 제공되는 경우, 전송 스트림 채널에는 다수의 다른 페이지의 캐로셀이 제공될 수 있다.In this way, a series of payloads can be prepared and sent periodically in the channel of the transport stream. If more than one carousel builder is provided, the transport stream channel may be provided with carousels of a number of different pages.

바람직하게는, 각 스트림 발생기는 페이로드를 전송 스트림 패킷들에 배열하고 이들을 다중화하여 전송 스트림을 형성하는 멀티플렉서/패킷화기를 포함한다.Preferably, each stream generator comprises a multiplexer / packetizer that arranges the payload into transport stream packets and multiplexes them to form a transport stream.

특별히, 다양한 데이터 소스가 스트림 발생기에 제공되는 경우, 예를 들면, 다수의 캐로셀 빌더가 있고/있거나 저장기로부터 생데이터(raw data)의 전송이 있는 경우, 다양한 페이지들이 함께 다중화되어 전송 스트림 패킷들에 제공될 수 있다.In particular, when various data sources are provided to the stream generator, for example if there are multiple carousel builders and / or there is a transfer of raw data from the store, the various pages are multiplexed together to transport stream packets. Can be provided.

바람직하게는, 단순히 운영 시스템 추상층(Operating System Abstraction Layer)을 변화시킴으로써, 정보 서버가 다른 운영 시스템과 동작할 수 있도록, API 서버 및 적어도 하나의 스트림 발생기는, 다수의 운영 시스템 중 하나와 인터페이싱하는 운영 시스템 추상층을 포함한다.Preferably, by simply changing the Operating System Abstraction Layer, the API server and at least one stream generator interface with one of a plurality of operating systems so that the information server can operate with other operating systems. It includes an operating system abstraction layer.

그래서, 정보 서버는 IRIX, LINUX, SOLARIS, Windows NT 등과 같은 다수의 운영 시스템들 중 임의의 것에서 구성될 수 있다. 정보 서버는 C++와 같은 플랫폼(platform)을 근거로 할 수 있지만, 운영 시스템 추상층만을 변화시킴으로서, 정보 서버의 다른 구조를 변화시키지 않고 운영 시스템을 변화시키는 것이 가능하다.Thus, the information server can be configured in any of a number of operating systems such as IRIX, LINUX, SOLARIS, Windows NT, and the like. The information server can be based on a platform such as C ++, but by changing only the operating system abstraction, it is possible to change the operating system without changing other structures of the information server.

바람직하게는, 단순히 드라이버 추상층(Driver Abstraction Layer)을 변화시킴으로써, 정보 서버가 다른 드라이버와 사용될 수 있도록, 스트림 발생기는 DVB 인코더에 대한 다수의 드라이버 중 하나와 인터페이싱하는 드라이버 추상층을 포함한다.Preferably, the stream generator includes a driver abstraction layer that interfaces with one of a plurality of drivers for the DVB encoder, such that by simply changing the driver abstraction layer, the information server can be used with another driver.

이 방법으로, 드라이버 추상층을 변화시킴으로서, 정보 서버의 다른 부분을 변화시키지 않고 정보 서버가 사용되는 드라이버를 변화시키는 것이 가능하다.In this way, by changing the driver abstraction layer, it is possible to change the driver in which the information server is used without changing other parts of the information server.

본 발명은 첨부된 도면을 참고로 하여 단지 예로 주어진 다음의 설명으로부터 보다 명확하게 이해된다.The invention is more clearly understood from the following description, given by way of example only with reference to the accompanying drawings.

다음의 설명은 본 발명이 적용될 수 있는 정보 서버에 관한 것이다. 특히, DSMCC 데이터 및 오브젝트 캐로셀을 포함하는 DVB 컴플라이언트 전송 스트림(compliant transport stream)을 발생할 수 있는, 정보 서버라 칭하여지는, DVB 컴플라이언트 데이터 서버에 대한 설계가 제안된다. 부가하여, 정보 서버는, 이것이 스트림 아웃(streamed out)되는 동안 DSMCC 데이터 및 오브젝트 캐로셀 내부에서 내용의 동적인 업데이트를 지지하게 된다.The following description relates to an information server to which the present invention can be applied. In particular, a design is proposed for a DVB compliant data server, referred to as an information server, capable of generating a DVB compliant transport stream comprising DSMCC data and object carousels. In addition, the information server will support dynamic update of content inside the DSMCC data and object carousel while it is streamed out.

도 1은 정보 서버가 포함된 DVB 시스템의 일부를 도시한다. 그러나, 정보 서버는 또한 다른 DVB 네트워크, 예를 들면 케이블이나 지상물에 포함될 수 있고, 다른 비-DVB 네트워크에도 포함될 수 있다.1 shows a part of a DVB system including an information server. However, the information server may also be included in other DVB networks, such as cables or ground, and may also be included in other non-DVB networks.

플레이-아웃 섹션(play-out section)(2)은 다수의 비디오/오디오 소스들(4) 뿐만 아니라 라이브 소스들(live sources)(6)을 포함한다. 이들 소스로부터, 예를 들어 MPEG2 전송 스트림 패킷들의 형태로 데이터는 멀티플렉서(8)로 공급되어 플레이-아웃 섹션(2)으로부터 출력된다. 다중화된 데이터 스트림은 전송을 위해 예를 들어 위성(12)으로부터 변조기(10)에 공급된다. 신호는 텔레비젼(16)의 셋업 박스(set-up box)(14)에 의해 수신된다. 다수의 다른 변조기들(10', 10" 등)로부터 신호도 함께 공급되어 위성(12)으로 전송될 수 있다.The play-out section 2 comprises a number of video / audio sources 4 as well as live sources 6. From these sources, data, for example in the form of MPEG2 transport stream packets, is supplied to the multiplexer 8 and output from the play-out section 2. The multiplexed data stream is for example supplied from the satellite 12 to the modulator 10 for transmission. The signal is received by the set-up box 14 of the television 16. Signals from a number of other modulators 10 ', 10 ", etc. may also be supplied and transmitted to satellite 12.

이 시스템에서는, 또한 정보 서버(18)를 제공하는 것이 가능하다. 비디오/오디오 소스들(4, 6)과 같이, 정보 서버(18)는 전송을 위한 데이터 스트림에 삽입되도록, 데이터를 예를 들어 MPEG2 전송 스트림 패킷들의 형태로, 멀티플렉서(8)에 제공한다. 정보 서버는 임의의 형태의 데이터를 방송하는데 사용하지만, 특별히, MHEG5 응용들, HTML 페이지들, Java 응용들, IRD 소프트웨어 업그레이드들, 및 데이터 캐로셀들의 DSMCC 오브젝트들의 형태인 다른 데이터 서비스들을 방송하는데 사용된다. 도시된 바와 같이, 정보 서버(18)는 정보 서버(18)로부터 출력되는 데이터의 내용 및 특성과 함께 정보 서버(18)의 작용을 제어하는데 사용되는 호스트(20)가 제공된다.In this system, it is also possible to provide the information server 18. Like video / audio sources 4, 6, information server 18 provides data to multiplexer 8, for example in the form of MPEG2 transport stream packets, to be inserted into a data stream for transmission. The information server is used to broadcast any form of data, but specifically to broadcast other data services in the form of MHEG5 applications, HTML pages, Java applications, IRD software upgrades, and DSMCC objects of data carousels. do. As shown, the information server 18 is provided with a host 20 which is used to control the operation of the information server 18 along with the content and characteristics of the data output from the information server 18.

정보 서버는 이더넷(ethernet)을 통한 TCP/IP와 같은 제어 네트워크를 사용해 호스트 컴퓨터에 의해 제어된다. 발생된 전송 스트림은 이더넷, DVB ASI, DVB LVDS, 또는 ATM과 같은 일부 스트림 네트워크를 통해 수신기들(PC들, STB들 등)로 전해진다.The information server is controlled by the host computer using a control network such as TCP / IP over ethernet. The generated transport stream is passed to receivers (PCs, STBs, etc.) via some stream network, such as Ethernet, DVB ASI, DVB LVDS, or ATM.

도 2는 정보 서버의 전체적인 설계를 도시한다.2 shows an overall design of an information server.

API 서버(22)는 외부 호스트로부터 제어 및 데이터를 수신한다. 데이터는 연속적인 검색을 위해 저장 유닛(24)에 전달된다. MPEG2 데이터 스트림을 출력하기 위해서는 적어도 하나의 스트림 발생기(26)가 제공된다. 그래서, 동작시, API 서버는, 예를 들면 일련의 영상들인 데이터를 수신하고 이들 영상들의 데이터를 저장기(24)에 전달한다. 각 스트림 발생기(26)는 캐로셀의 기술(description)에 기초하여 API 서버(22)의 제어하에서 데이터의 스트림을 생성한다. 특히, API 서버(22)는 외부 호스트로부터 제어를 수신하여, 스트림 발생기(26)를 적절하게 제어한다. 이후 기술될 바와 같이, 스트림 발생기(26)는 저장기(24)로부터 데이터를 정확한 순서로 전송하기 위해 캐로셀 빌더를 포함할 수 있다.API server 22 receives control and data from an external host. The data is transferred to the storage unit 24 for continuous retrieval. At least one stream generator 26 is provided for outputting the MPEG2 data stream. Thus, in operation, the API server receives data, for example a series of images, and passes the data of these images to storage 24. Each stream generator 26 generates a stream of data under the control of the API server 22 based on the description of the carousel. In particular, the API server 22 receives control from an external host to properly control the stream generator 26. As will be described later, stream generator 26 may include a carousel builder to transfer data from reservoir 24 in the correct order.

API 서버의 목적은 원격에서 TCP/IP를 통해 호스트 컴퓨터(예를 들면, PC)에 액세스할 수 있는 소프트웨어 인터페이스를 제공하는 것이다. 소프트웨어 인터페이스는 RPC 프로토콜을 사용해 실현되고, 전송 비트 스트림에 독립적이지만 캐로셀들에 의해 방송되어야 하는 내용으로부터 시작하는 캐로셀의 개념적인 구조에 다소 초점을 둔 방식으로, 사용자가 오브젝트 및 데이터 캐로셀들을 지정하도록 허용하는 소프트웨어 추상화(abstraction)의 세트를, 정보 서버의 사용자에게 제공한다.The purpose of an API server is to provide a software interface that can remotely access a host computer (eg, a PC) via TCP / IP. The software interface is implemented using the RPC protocol and allows the user to select object and data carousels in a manner that is independent of the transport bit stream but rather focuses on the conceptual structure of the carousel starting from the content to be broadcast by the carousels. Provides users of the information server with a set of software abstractions that they allow to specify.

부가하여, API 서버는 정보 서버의 내용 디스크에 주어지는 내용 데이터를 관리한다.In addition, the API server manages content data given to the content disk of the information server.

아키텍쳐 관점에서, API 서버는 2개의 주요 모듈, 즉 "RPC 층(Layer)"과 "API 실행(Implementation)"을 포함하는 단일 연결 처리로 실현된다. "RPC 층"은 하나 또는 다수의 호스트 컴퓨터와 제어 네트워크 연결을 관리한다. 각 연결은 세션(session)이라 칭하여진다. 이는 호스트 컴퓨터 세션으로부터 RPC 요구들을 수신하고, 그 요구들을 일련화시키고, 이들이 유효한가 여부를 점검하고, 요구들에 대한 데이터(변수들(arguments))를 결정하고, "API 실행"에서 적절한 엔트리점을 추출하고, API 실행으로부터 결과(또는 에러)를 수신하고, 수신된 결과들을 RPC 응답으로 정렬하고, 마지막으로 그 응답을 다시 호스트 컴퓨터에 전한다. API 실행은 정보 서버 API의 기능을 실행하는 기능들의 세트를 제공한다. 이는 내용 디스크와 상호작용하고, 데이터를 이 디스크에 기록/판독하고, 각 API 호출에서 변수의 유효성을 체크한다.From an architectural point of view, an API server is realized with a single connection process that includes two main modules: an "RPC Layer" and an "Implementation". The "RPC layer" manages control network connections with one or more host computers. Each connection is called a session. It receives RPC requests from the host computer session, serializes those requests, checks whether they are valid, determines the data (arguments) for the requests, and sets the appropriate entry point in the "API execution". Extract, receive the result (or error) from the API execution, sort the received results into an RPC response, and finally pass the response back to the host computer. API execution provides a set of functions that implement the functionality of an information server API. It interacts with the content disk, writes / reads data to this disk, and checks the validity of the variable in each API call.

스트림 발생기(26)에서 플레이아웃 섹션(2)의 멀티플렉서로 스트림들을 전송하는 것은 다수의 다른 형태들을 취할 수 있다. 스트리밍은 분리된 유닛으로 정보 서버에 제공되도록 제안된다. 그래서, 스트리밍은 예를 들면, PRISM 보드(일본의 Sony Digital Network Solutions에 의해 제작된), DVB-LVDS, ATM, 또는 이더넷을 통해 DVB-ASI로부터 선택될 수 있다.Sending streams from the stream generator 26 to the multiplexer of the playout section 2 can take a number of different forms. Streaming is proposed to be provided to the information server in a separate unit. Thus, streaming can be selected from, for example, DVB-ASI via PRISM board (manufactured by Sony Digital Network Solutions of Japan), DVB-LVDS, ATM, or Ethernet.

정보 서버는 표준 4U 19 inch 랙마운트(rack-mount)로 제공되도록 제안된다. 호스트 컴퓨터와 정보 서버 사이의 제어 네트워크는 예를 들면, 이더넷이나 ATM이 될 수 있다.The information server is proposed to be offered in a standard 4U 19 inch rack-mount. The control network between the host computer and the information server can be, for example, Ethernet or ATM.

도 3은 각각이 다수의 스트림들을 생성하는 임의의 수의 정보 서버를 제공하는데 하나의 호스트 컴퓨터가 사용되는 방법을 설명한다.3 illustrates how one host computer is used to provide any number of information servers, each generating multiple streams.

도 4a는 단 하나의 스트림 발생기를 참고로 정보 서버를 더 상세히 설명한다. API 서버(22)는 API가 호스트 컴퓨터에 의해 액세스되도록 허용하는 RPC(Remote Procedure Call) 프로토콜을 포함한다. 또한, 제어 API들이 보다 대중적으로 됨에 따라 IIOP로 실행되는 것이 가능하다. 그래서, API 서버(22)는 원격 호스트 컴퓨터로부터 데이터 및 제어를 수신한다. API 서버(22)는 또한 운영 시스템 추상층이나 OSAL 하에서 실행된다. 이는 정보 서버가 다수의 다른 운영 시스템들에서 실행되도록 허용한다. 특히, 다른 운영 시스템에서 실행되도록 정보 서버를 적응시키기 위해서는 OSAL만을 변화시킬 필요가 있다.4A illustrates an information server in more detail with reference to only one stream generator. The API server 22 includes an RPC (Remote Procedure Call) protocol that allows the API to be accessed by the host computer. It is also possible to run with IIOP as control APIs become more popular. Thus, the API server 22 receives data and control from the remote host computer. API server 22 also runs under an operating system abstraction layer or OSAL. This allows the information server to run on a number of different operating systems. In particular, it is only necessary to change OSAL to adapt the information server to run on other operating systems.

스트림 발생기(26)는 미가공 전송 스트림 데이터(raw transport stream datat)를 출력할 수 있다. 특히, API 서버(22)의 명령하에서, 스트림 발생기(26)는 단순히 저장기(24)로부터 데이터를 검색하여 그 내용을 모른채 그 데이터를 출력한다. 그러나, 스트림 발생기(26)가 캐로셀들, 예를 들면, DSMCC 오브젝트 캐로셀들 및 DSMCC 데이터 캐로셀들을 구성할 수 있다. 따라서, 스트림 발생기(26)는 적어도 하나의 캐로셀 빌더(28)를 포함한다.The stream generator 26 may output raw transport stream data. In particular, under the command of the API server 22, the stream generator 26 simply retrieves data from the storage 24 and outputs the data without knowing its contents. However, stream generator 26 may configure carousels, such as DSMCC object carousels and DSMCC data carousels. Thus, stream generator 26 includes at least one carousel builder 28.

도 4b는 스트림 발생기를 설명한다. 스트림 발생기는 데이터/오브젝트 캐로셀의 개념적인 설명으로부터 시작되는 전송 비트 스트림을 동적으로 설계하는 것을 담당한다. 스트림 발생기의 아키텍쳐는 동시에 실행하는 다수의 스레드(thread)로 구성된다. 다음과 같은 스레드들이 있다.4b illustrates a stream generator. The stream generator is responsible for dynamically designing the transport bit stream starting from the conceptual description of the data / object carousel. The stream generator's architecture consists of multiple threads running simultaneously. Here are the threads:

1. SGMain 스레드(thread)는 API 서버와 통신하는 것을 담당한다. 이는 오브젝트 캐로셀을 시작하거나 중단하도록, 실행 스트림(running stream)으로부터 캐로셀을 제거하도록(drop), 또는 실행 스트림 내부의 일부 내용을 업데이트하도록, API 서버로부터 명령을 수신한다. 부가하여, SGMain 스레드는 또한 다른 스레드들의 관리를 담당한다. 이는 이들 스레드들의 시작/중단과 그들의 동기화를 제어하는 것을 의미한다.1. The SGMain thread is responsible for communicating with the API server. It receives instructions from the API server to start or stop the object carousel, to drop the carousel from the running stream, or to update some content inside the running stream. In addition, the SGMain thread is also responsible for managing other threads. This means controlling the start / stop of these threads and their synchronization.

2. 캐로셀 빌더(CB) 스레드(thread)는 오브젝트 캐로셀을 이루는(이진수) DSMCC 섹션들을 구성하는 것을 담당한다. CB 스레드는 SGMain 스레드로부터 캐로셀 기술(carousel description)을 수신한다. 일단 DSMCC 섹션들이 구성되면, 이들은 페이로드들(이후를 참고)로서 Mux 스레드에 전달된다. CB 스레드는 또한 SI 스레드에 의해 관리되는 테이블들에 적절한 서비스 정보를 삽입하도록 SI 스레드와 통신한다.2. The Carousel Builder (CB) thread is responsible for organizing the DSMCC sections that make up the object carousel (binary). The CB thread receives a carousel description from the SGMain thread. Once the DSMCC sections are configured, they are delivered to the Mux thread as payloads (see below). The CB thread also communicates with the SI thread to insert the appropriate service information into the tables managed by the SI thread.

3. SI 스레드는 서비스 정보(SI) 테이블들을 생성하고 업데이트하는 것을 담당한다. 이는 이들 SI 테이블을 이루는 MPEG2 섹션들을 동적으로 구성하고, 그 섹션을 페이로드들로서 Mux 스레드에 전한다. 현재에는 SI 스레드에 의해 2개 테이블, 즉 PAT 및 PMT가 관리된다. CB 스레드는, PMT에 프로그램 번호를 보존하도록, 캐로셀에 대한 PID들을 보존하도록, 또한 캐로셀들을 식별하는데 필요로 되는 PMT에 대한 설명들을 추가하거나 삭제하도록, CB 스레드로 요구들을 수신한다.3. The SI thread is responsible for creating and updating service information (SI) tables. It dynamically constructs the MPEG2 sections that make up these SI tables and passes those sections to the Mux thread as payloads. Currently two tables, PAT and PMT, are managed by the SI thread. The CB thread receives requests to the CB thread to preserve program numbers in the PMT, to preserve PIDs for the carousel, and to add or delete descriptions for the PMT needed to identify the carousels.

4. Mux 스레드는 CB 및 SI 스레드로부터 페이로드들을 수신하고, 그 페이로드를 MPEG2 전송 스트림 패킷들로 다중화시킨다. 부가하여, Mux 스레드는 물리적인 인터페이스 이더넷, ASI, ATM을 통해 전송 스트림 패킷들을 출력(pump out)하도록 물리적인 디바이스 드라이버와 통신한다.4. The Mux thread receives payloads from the CB and SI threads, and multiplexes the payloads into MPEG2 transport stream packets. In addition, the Mux thread communicates with the physical device driver to pump out transport stream packets over the physical interface Ethernet, ASI, ATM.

스트림 발생기내의 각 구성성분(SGMain, SI, 캐로셀 빌더, Mux)은 다른 스레드들과 동시에 실행되는 분리 스레드이다. SI, 캐로셀 빌더는 "푸시(push)" 모드에서 작동한다. 이들은 전송 비트 스트림의 일부를 계산하고 이들을 Mux로 전송 (forward)한다. Mux 스레드는 "풀(pull)" 모드로 작동한다. SI 또는 캐로셀 빌더들 중 하나로부터 데이터가 이용가능해지자마자, 이는 이 데이터를 끌어내어 페이로드를 전송 스트림 패킷들로 다중화시키기 시작한다.Each component in the stream generator (SGMain, SI, Carousel Builder, Mux) is a separate thread that runs concurrently with other threads. SI, Carousel Builder operates in "push" mode. They compute some of the transport bit streams and forward them to Mux. Mux threads operate in "pull" mode. As soon as data is available from either the SI or carousel builders, it begins to pull this data and multiplex the payload into transport stream packets.

각 캐로셀 빌더(28)는 예를 들어 도 5에 도시된 바와 같이 정보의 캐로셀을 구성할 수 있다. 캐로셀 빌더는 일련의 DSMCC 파일들을 차례로(in rotation) 전송하도록 적절하게 전송 스트림 데이터를 구성한다. 예를 들면, 도 5에 도시된 바와 같은 각 페이지는 MHEG 또는 HTML 파일들 또는 Java 응용들을 구비할 수 있다. 그 결과로, 스트림 발생기에 의해 생성되는 스트림은 이들 페이지들의 각각을 차례로 포함한다.Each carousel builder 28 may construct a carousel of information, for example, as shown in FIG. 5. The carousel builder properly configures the transport stream data to transmit a series of DSMCC files in rotation. For example, each page as shown in FIG. 5 may have MHEG or HTML files or Java applications. As a result, the stream generated by the stream generator contains each of these pages in turn.

또한, 페이지들의 메인 캐로셀의 각 순환시, 특정한 페이지 자체가 일련의 서브-페이지들을 통해 순환되도록, 캐로셀 빌더가 서브-캐로셀들을 구성하는 것이 또한 가능하다.In addition, it is also possible for a carousel builder to construct sub-carousels such that, in each cycle of the main carousel of pages, the particular page itself is cycled through a series of sub-pages.

각 출력 스트림이 다수의 다른 캐로셀들을 포함할 수 있기 때문에, 다수의 다른 캐로셀 빌더들(28)이 또한 제공될 수 있다. 멀티플렉서/패킷화기(30)는 데이터는 다양한 캐로셀 빌더들(28)로부터 출력 스트림에 배열한다.Since each output stream may include a number of different carousels, a number of other carousel builders 28 may also be provided. Multiplexer / packetizer 30 arranges the data in an output stream from various carousel builders 28.

도 4a 및 도 4b에서 설명된 바와 같이, 스트림 발생기(26)는 또한 운영 시스템 추상층(Operating System Abstraction Layer)을 사용한다. 더욱이, 이는 드라이버 추상층(Driver Abstraction Layer)을 사용한다. 이 방법으로, 운영 시스템에 있어서, 출력 드라이버는 전체적인 정보 서버의 구성을 변화시키지 않고 변화될 수 있다. 대신에, 단순히 드라이버 구현(implementation)을 변화시킬 필요가 있다.As described in Figures 4A and 4B, the stream generator 26 also uses an Operating System Abstraction Layer. Moreover, it uses a Driver Abstraction Layer. In this way, in the operating system, the output driver can be changed without changing the configuration of the entire information server. Instead, you simply need to change the driver implementation.

드라이버(32)는 전송 스트림 데이터를 DVB 인코더 보드에 전한다.The driver 32 sends the transport stream data to the DVB encoder board.

각 캐로셀 빌더들(28)은 그 자신의 데이터로 동작되므로, 멀티플렉서는 전송 스트림의 다양한 캐로셀들 사이에서 스케쥴을 처리한다.Each carousel builder 28 operates on its own data, so the multiplexer processes the schedule between the various carousels of the transport stream.

캐로셀 빌더들은 그 자신의 메모리들을 효과적으로 갖는다. 즉, 저장기(24)내의 데이터로부터 캐로셀의 페이지들을 구성하므로, 그 페이지들의 전송 스트림 데이터는 캐로셀 빌더들에 의해 저장될 수 있다. 이 방법으로, 호스트 컴퓨터로부터 API 서버의 지시하에서 캐로셀의 페이지가 변할 때, 전체적인 캐로셀의 데이터를 재계산할 필요가 없고 단지 변화된 패이지만을 재계산한다. 한 페이지의 데이터가 다른 페이지에 종속하는 경우라도, 다시, 한편 페이지들 전체가 아니라 변화를 요구하는 페이지들에 대한 데이터만을 재계산할 필요가 있도록 종속 구조를 포함하는 것이 제안된다.Carousel builders effectively have their own memories. That is, since the pages of the carousel are constructed from the data in the storage 24, the transport stream data of those pages can be stored by carousel builders. In this way, when the page of the carousel changes under the direction of the API server from the host computer, there is no need to recalculate the data of the entire carousel and only recalculate the changed card. Even if the data of one page is dependent on another page, it is proposed to include the dependency structure again so that it is necessary to recalculate only the data for pages requiring change, not the entire pages.

각 캐로셀 빌더(28)는 내용 및 내용 기술들(descriptions)을 판독하고, DSMCC 오브젝트 캐로셀을 어셈블링하고, 적절한 DSI, DII, 또는 DDB 섹션들을 준비한다.Each carousel builder 28 reads content and descriptions, assembles a DSMCC object carousel, and prepares the appropriate DSI, DII, or DDB sections.

SI 테이블들 관리기(34)는 PAT/PMT 섹션들, 프로그램 번호들, 및 PID들을 관리하기 위한 것이다. 멀티플렉서/패킷화기(30)는 섹션들을 패킷으로 분할하고, 그 패킷들을 드라이버(32)에 대한 슬롯들로 어셈블링하기 위한 것이다.SI tables manager 34 is for managing PAT / PMT sections, program numbers, and PIDs. The multiplexer / packetizer 30 is for dividing the sections into packets and assembling the packets into slots for the driver 32.

상기에 기술된 바와 같이, 정보 서버는 바람직하게는 운영 시스템 추상층 OSAL을 포함한다. 이는 클래스 라이브러리(class library)에 기초한 오브젝트 지향의 C++일 수 있다. OSAL은, Window 95, Window NT, UNIX, LINUX 등과 같은 다양한 운영 시스템에 의해 제시되는 일부 필수적인 운영 시스템 서비스들을 추상화하는 API를 제공하도록 제안된다. OSAL은 스레드들(threads), 세마포어들(semaphores), 파일들, 디렉토리들(directorys), 프로세서들, 파일 시스템 독립 경로명들, 및 인터-프로세스 메시지 대기열들(inter-process message queues)에 대한 추상화들(abstraction)을 제공하도록 제안된다.As described above, the information server preferably comprises an operating system abstraction layer OSAL. It may be object oriented C ++ based on a class library. OSAL is proposed to provide an API that abstracts some of the essential operating system services offered by various operating systems, such as Window 95, Window NT, UNIX, LINUX, and so on. OSAL abstracts threads, semaphores, files, directories, processors, file system independent pathnames, and inter-process message queues. It is proposed to provide (abstraction).

OSAL 스레드 추상화는 단일 처리의 어드레스 공간 내에서 독립적인 실행 유니트의 생성 및 파기를 지지한다. 스레드 스케쥴링은 이산적인 우선순위 클래스들의 번호를 근거로 간단한 우선순위 계획에 따른다.The OSAL thread abstraction supports the creation and destruction of independent execution units within the address space of a single process. Thread scheduling follows a simple priority scheme based on the number of discrete priority classes.

OSAL 세마포어 추상화(semaphore abstraction)는 다른 스레드들의 실행 상태를 동기화하는데 사용될 수 있는 연관된 대기/신호 동작들, 인트라-프로세스, 경계 및 비경계(non-bounded) 카운팅 세마포어들을 지지한다.OSAL semaphore abstraction supports associated wait / signal operations, intra-process, bounded and non-bounded counting semaphores that can be used to synchronize the execution state of other threads.

OSAL 파일/디렉토리 추상화는 간단한 가상 파일 시스템에 계층적 디렉토리 구조 및 판독/기록, 실행 파일/디렉토리 허용들을 제공한다. 파일 시스템 독립 경로명들은, 다른 물리적인 파일 시스템 조직들에 맵핑(mapping)될 수 있는 운영 시스템 독립 명명 구조(operation system independent naming scheme)를 제공한다. 동작들(operation)은 파일을 생성/삭제, 파일들에서/로 바이트 시퀀스들을 판독/기록, 특정한 바이트 수에 위치 지정, 및 파일의 크기를 검색하기 위해 제공된다. 디렉토리를 통한 동작들은, 구성 파일들/디렉토리들을 통한 생성/삭제 및 반복을 포함한다.The OSAL file / directory abstraction provides a simple virtual file system with hierarchical directory structures and read / write, executable / directory permissions. File system independent pathnames provide an operation system independent naming scheme that can be mapped to other physical file system organizations. Operations are provided to create / delete a file, read / write byte sequences to / from files, locate a particular byte number, and retrieve the file's size. Operations through a directory include creation / deletion and iteration through configuration files / directories.

OSAL 처리 추상화는 어드레스 공간의 일부가 될 필요가 있는 코드/데이터 세그먼트들과 가상 어드레스 공간의 개념을 지지할 수 있다. 동작들은 처리를 시작/중단하고 처리의 상태(실행, 종료)에 대해 질문하기 위해 제공될 수 있다.The OSAL processing abstraction may support the concept of code / data segments and virtual address space that need to be part of the address space. Actions may be provided to start / stop processing and to query the status of the processing (execution, termination).

OSAL 메시지 대기열 추상화는, 바이트 지향 선입선출(first-in first-out) 메시지 대기열에 기초하여, 인터/프로세스 통신을 실행하는 수단을 제공할 수 있다. 동작들은, 대기열로부터 가변 길이의 바이트 스트링들(byte strings)을 넣거나 검색하기 위해서, 그리고 각 대기열에서 이용가능한 메시지들/바이트들의 총수를 체크하기 위해서 제공될 수 있다.The OSAL message queue abstraction may provide a means for performing inter / process communication based on a byte oriented first-in first-out message queue. Operations may be provided to put or retrieve variable length byte strings from a queue, and to check the total number of messages / bytes available in each queue.

OSAL 추상화 각각은 다른 강력한 종류의 C++ 처리 클래스(handle class)에 의해 지지될 수 있다. 처리 클래스는 운영 시스템 추상화에서 오브젝트 지향의 관점을 제공한다. OSAL의 상단에 기록된 강력한 타이핑 어플리케이션(typing application)으로 인해, API는 전략적인 컴파일 시간 타입 체크로부터 이점을 얻는다. 처리 클래스들의 예들은 운영 시스템 독립 엔트리들을 나타내고, 운영 시스템 서비스들은 처리 클래스상의 메소드들(methods)로 나타내진다. 처리 클래스의 실행은(implementation), 실행(implementation)이 시스템(Window 95, Window NT, Unix) 특성(specific)인 저레벨 API를 사용하기 때문에, ANSI C++ 표준을 지지하는 모든 플랫폼에 걸쳐 경량으로 효율적이고 휴대가능하다. 대부분의 경우, 저레벨 API는 OSAL에 의해 부가된 오버헤드(overhead)가 최소가 되도록, 기본적인 운영 시스템에 의해 지지되는 서비스 상에 직접 맵핑된다.Each of the OSAL abstractions can be supported by another powerful kind of C ++ handle class. Processing classes provide an object-oriented view of the operating system abstraction. Due to the powerful typing application written on top of OSAL, the API benefits from strategic compile time type checking. Examples of treatment classes represent operating system independent entries, and operating system services are represented by methods on the treatment class. Execution of the processing class is lightweight and efficient across all platforms that support the ANSI C ++ standard because the implementation and implementation use a low-level API that is specific to the system (Window 95, Window NT, Unix). It is portable. In most cases, low-level APIs are mapped directly onto services supported by the underlying operating system so that the overhead added by OSAL is minimal.

OSAL 클래스 라이브러리 및 API는, DSMCC 오브젝트 및 데이터 캐로셀들을 통해, HTML, Java, MHEG 응용들, 및 다른 데이터의 전달을 지지하는 DVB-컴플라이언트 데이터 방송 서버(DVB-compliant data broadcast server)의 교차 플랫폼 구현(cross-platform implementation)을 형성하는데 사용될 수 있다. 스레드 추상화는 내용 데이터로부터 DSMCC 오브젝트 캐로셀 비트 스트림을 생성하는 다수의 스레드들, (b) DVB 서비스 정보를 생성하는 전용 스레드, 및 (c) DSMCC 섹션들과 테이블 데이터를 전송 스트림 패킷들에 다중화하는 스레드를 지지하는데 사용될 수 있다. 세마포어 추상화는 이들 스레드들 사이의 동기화를 실행하는데 사용된다. 파일 및 디렉토리 추상화는 서버의 파일 시스템에서 영구적인 내용으로의 액세스를 실행하는데 사용된다. 처리 추상화는 네트워크 통신 전용의 한가지 처리 및 서버에서 나가는 전송 스트림의 발생을 처리하는 또 다른 처리를 실행하는데 사용된다. 메시지 대기열 추상화는 네트워크 스택(networking stack)과 비트 스트림의 발생 사이의 통신을 실행하는데 사용된다. OSAL 클래스 라이브러리 및 API를 사용하여, 데이터 방송 서버 어플리케이션 코드는, OSAL가 현재 지지되는 각 운영 시스템에서 수정되지 않고 실행된다.OSAL class libraries and APIs are a cross-platform platform of DVB-compliant data broadcast servers that support the delivery of HTML, Java, MHEG applications, and other data through DSMCC objects and data carousels. It can be used to form cross-platform implementations. The thread abstraction allows multiple threads to generate DSMCC object carousel bit streams from content data, (b) a dedicated thread to generate DVB service information, and (c) multiplex DSMCC sections and table data to transport stream packets. Can be used to support the thread. The semaphore abstraction is used to perform synchronization between these threads. File and directory abstractions are used to implement access to persistent content in the server's file system. The process abstraction is used to execute one process dedicated to network communication and another process to handle the generation of transport streams leaving the server. The message queue abstraction is used to carry out the communication between the network stack and the generation of the bit stream. Using OSAL class libraries and APIs, data broadcast server application code is executed unmodified on each operating system on which OSAL is currently supported.

상기에 설명된 바와 같이, 각 스트림 발생기(26)는 다수의 캐로셀 빌더들(28)을 가질 수 있다. 때로는 한 캐로셀의 페이지들이 또 다른 캐로셀의 페이지들 보다 더 자주 전송되는 것이 바람직할 수 있다. 이를 위해, 멀티플렉서/패킷화기(30)는 또 다른 것 보다 더 자주 한 캐로셀로부터 전송 스트림 패킷들에 제시될 수 있다. 예를 들어, 단 2개의 캐로셀들이 있고 하나가 다른 것의 3배 중량을 갖는 경우, 전송 스트림 패킷들을 채울 때, 멀티플렉서/패킷화기는 한 캐로셀에 75% 중량을 지정하여, 다른 캐로셀로부터의 데이터로 한 패킷이 채워질 때마다 그 캐로셀로부터의 데이터로 3개 패킷들을 채우게 된다.As described above, each stream generator 26 may have a number of carousel builders 28. Sometimes it may be desirable for pages of one carousel to be sent more frequently than pages of another carousel. To this end, the multiplexer / packetizer 30 may be presented in transport stream packets from one carousel more often than another. For example, if there are only two carousels and one has three times the weight of the other, when filling transport stream packets, the multiplexer / packetizer assigns 75% weight to one carousel, from the other carousel. Each time a packet is filled with data, three packets are filled with data from the carousel.

불행하게도, 이 시스템은 전송 스트림에서 전송되는 데이터의 특성에 변화들이 이루어질 때 계산적인 면에서 비용이 많이 든다. 예를 들면, 상기에 주어진 예에서, 제 3 캐로셀이 이미 사용된 하위 중요도의 캐로셀과 유사한 중요도로 추가되면, 시스템은 3개 캐로셀들에 각각 전송 시간의 60%, 20%, 및 20%가 주어지는 것을 재계산하여야 한다. 다른 말로 하면, 캐로셀의 중요도가 변하거나 캐로셀이 부가 또는 삭제될 때마다, 멀티플렉서/패킷화기(30)에 의해 실행된 비율이 재계산되어야 한다.Unfortunately, this system is computationally expensive when changes are made to the characteristics of the data transmitted in the transport stream. For example, in the example given above, if a third carousel is added with similar importance to a carousel of sub-criticality already used, the system may have 60%, 20%, and 20% of the transmission time for the three carousels, respectively. The% given should be recalculated. In other words, whenever the importance of the carousel changes or the carousel is added or deleted, the rate executed by the multiplexer / packetizer 30 must be recalculated.

정보 서버에서는 패킷들의 스케쥴 처리를 위한 새로운 알고리즘이 제안된다.In the information server, a new algorithm for the scheduling of packets is proposed.

도 6을 참고로, 다양한 데이터 소스들의 중요도를 조정하기 위한 데이터 어레이가 설명된다.With reference to FIG. 6, a data array for adjusting the importance of various data sources is described.

이는 일련의 개념적인 시간 슬롯들(t)으로 배열된다. 어레이의 각 시간 슬롯(t)은 하나 이상의 데이터 소스, 예를 들면 캐로셀들, 저장기(24)로부터의 생데이터 등의 등록을 허용한다. 각 데이터 소스를 개념적인 회수를 근거로 하는 상대적인 우선순위로 할당함으로서, 다양한 데이터 소스가 쉽게 우선화될 수 있다.It is arranged into a series of conceptual time slots t. Each time slot t in the array allows registration of one or more data sources, for example carousels, raw data from storage 24, and the like. By assigning each data source to a relative priority based on conceptual retrieval, various data sources can be easily prioritized.

설명되는 예에서, 데이터 소스(1)는 우선순위 "4"로 할당되므로, 매 4개의 개념적 시간 슬롯들 마다 발생된다. 유사하게, 데이터 소스(2)에는 우선순위 "3"이 주어지고, 데이터 소스(3)에는 "2"의 우선순위가 주어진다. 멀티플렉서/패킷화기(30)는 어레이를 따라 지정된 데이터 소스를 순차적으로 따르고, 빈 개념적인 시간 슬롯을 무시함으로서 MPEG 패킷들을 형성한다. 예를 들면, 도 6에 도시된 데이터 소스에 따라, 이는 데이터 소스(1)로부터의 데이터로 패킷을 채우고, 이어서 데이터 소스(2)로부터의 데이터로 패킷을 채우고, 이어서 데이터 소스(3)로부터의 데이터로 패킷을 채우고, 이어서 데이터 소스(2)로부터의 데이터로 패킷을 채우고, 이어서 데이터 소스(3)로부터의 데이터로 패킷을 채우고, 이어서 데이터 소스(1)로부터의 데이터로 패킷을 채운다. 이 방법으로, 데이터 소스(1)로부터의 데이터는, 데이터 소스(2)로부터 전송되는 매 4회 마다, 그리고 데이터 소스(3)로부터 전송되는 매 6회 마다 3회 전송된다.In the example described, the data source 1 is assigned a priority of "4", so it is generated every four conceptual time slots. Similarly, data source 2 is given priority "3" and data source 3 is given priority of "2". The multiplexer / packetizer 30 sequentially forms the MPEG packets by following a designated data source along the array and ignoring empty conceptual time slots. For example, according to the data source shown in FIG. 6, this fills the packet with data from the data source 1, then fills the packet with data from the data source 2, and then from the data source 3. Fill the packet with data, then fill the packet with data from data source 2, then fill the packet with data from data source 3, and then fill the packet with data from data source 1. In this way, data from the data source 1 is transmitted three times every four times transmitted from the data source 2 and every six times transmitted from the data source 3.

상술된 바와 같이 어레이를 사용함으로서, 데이터 소스가 부가되거나 삭제될 때 또는 데이터 소스의 우선순위가 변할 때 재계산이 요구되지 않는다. 예를 들어, 데이터 소스(3)가 삭제될 때, 데이터 소스 (1)과 (2) 사이의 상대적인 우선순위는 유지된다. 유사하게, 제 4 데이터 소스가 매우 높은 우선순위, 예를 들어 할당 "1"로 전송되면, 데이터 소스들(1, 2, 3)가 모두 이전의 반 회수로 전송되더라도, 상대적인 우선순위들과 회수들은 똑같다. 그래서, 데이터 동작을 우선화한 시스템은 계산적인 면에서 보다 효율적이 된다.By using an array as described above, no recalculation is required when a data source is added or deleted or when the priority of the data source changes. For example, when data source 3 is deleted, the relative priority between data sources 1 and 2 is maintained. Similarly, if the fourth data source is sent at a very high priority, for example allocation "1", the relative priorities and retrieval, even if the data sources 1, 2, 3 are all sent in the previous half times, They are the same. Thus, a system that prioritizes data operations becomes more efficient in computation.

기술된 정보 서버의 스트림 발생기(26)에서 이 시스템을 사용함으로써, 다양한 캐로셀 빌더들(28)과 같은 다양한 데이터 소스에 대역폭을 할당하는 것이 용이하다. 그러나, 이는 CPU에서 처리 시간을 할당하는 것에 동일하게 적용될 수 있다. 특별히, 실행을 요구하는 다양한 작업들은 대역폭이 할당된 것과 똑같은 방식으로 우선순위들이 할당될 수 있다.By using this system in the stream generator 26 of the described information server, it is easy to allocate bandwidth to various data sources, such as various carousel builders 28. However, this may equally apply to allocating processing time in the CPU. In particular, various tasks requiring execution may be assigned priorities in the same manner as bandwidth is allocated.

처리 또는 대역폭과 같은 자원들을 얻는 기능은, 자원들의 비례적인 공유 뿐만 아니라 초기 액세스의 대기시간(latency)에 기초할 필요가 없는 것으로 제안된다. 즉, 일부 처리는 다른 것보다 더 즉각적으로 동작(action)을 요구할 수 있다. 예를 들면, CPU 처리 시간의 낮은 대기시간 할당은 멀티미디어 어플리케이션들의 매끄러운 동작을 보장하는데 중요하다. 두 처리, 예를 들면 워드 프로세싱과 비디오 디스플레이가 미리 설정된 처리 시간의 비율로 할당되는 경우, 비디오 디스플레이에 보다 즉각적인 처리에 대한 액세스가 주어지는 것이 보다 중요하다.The ability to obtain resources such as processing or bandwidth is proposed not necessarily based on the proportional sharing of resources as well as the latency of initial access. That is, some processing may require action more immediately than others. For example, low latency allocation of CPU processing time is important to ensure smooth operation of multimedia applications. If two processes, for example word processing and video display, are allocated at a predetermined rate of processing time, it is more important that the video display is given access to more immediate processing.

이러한 필요성을 고려하기 위해, 이것이 데이터 처리인가 데이터 전송인가 여부에 대해, 추가 매개변수가 각 자원 소비자나 데이터 동작에 할당될 수 있다. 이 매개변수는 자원 액세스의 대기시간을 정의하도록 의도된다.To account for this need, additional parameters may be assigned to each resource consumer or data operation, whether this is data processing or data transmission. This parameter is intended to define the latency of resource access.

그래서, 각 소스나 데이터 동작에는 대기시간 값(latency value)이 주어지므로, 어느 것이 먼저 행해져야 하는가를 결정하기 위해 다수의 자원 소비자가 비교되거나, 유사하게, 어느 것이 먼저 전송되어야 하는가를 보기 위해 다수의 자원 소비자가 비교된다. 상기에 논의된 정보 서버의 경우, 가능한한 빨리 전송 및 수신되어야 하는 매우 중요한 정보가 있는 경우, 적절한 데이터 소스에 매우 높은 대기시간 값이 주어질 수 있어서, 이 데이터는 멀티플렉서/패킷화기(30)에 의해 가능한한 빨리 데이터 스트림에 삽입된다.Thus, since each source or data operation is given a latency value, multiple resource consumers are compared to determine which one should be done first, or similarly, many to see which one must be sent first. Resource consumers are compared. In the case of the information server discussed above, if there is very important information that should be transmitted and received as soon as possible, very high latency values can be given to the appropriate data source, so that this data is provided by the multiplexer / packetizer 30. It is inserted into the data stream as soon as possible.

상술된 캐로셀 빌더들(28)에서, 캐로셀 빌더들은 멀티플렉서/패킷화기(30)에 공급되도록 다수의 DVB 섹션들을 각각 구성한다. 이들 섹션들은 그 특정한 캐로셀 빌더의 캐로셀을 나타내는 데이터를 포함한다. 정보 서버나 캐로셀 빌더 자체는 그 캐로셀 내에서 하나 이상의 페이지들을 변화시키거나 대체할 수 있는 것이 바람직하다. 그러나, 상술된 바와 같이, 일단 캐로셀 빌더(28)가 저장기(24)내의 데이터로부터 적절한 캐로셀을 구성하면, 그 데이터는 재계산되지 않고, 단순히 순환적인 전송을 위해 저장된다. 캐로셀에서 페이지나 파일을 변화시키기 위해, 그 캐로셀에 대한 모든 데이터를 재계산하는 것이 가능하다. 그러나, 이는 새로운 캐로셀이 전송되기 이전에 바람직하지 않은 지연을 발생시킬 수 있다.In carousel builders 28 described above, carousel builders each configure a plurality of DVB sections to be supplied to multiplexer / packetizer 30. These sections contain data representing the carousel of that particular carousel builder. The information server or carousel builder itself is preferably capable of changing or replacing one or more pages within the carousel. However, as described above, once carousel builder 28 constructs the appropriate carousel from the data in reservoir 24, the data is not recalculated and is simply stored for cyclical transmission. To change a page or file in a carousel, it is possible to recalculate all data for that carousel. However, this may cause an undesirable delay before a new carousel is sent.

도 7은 캐로셀 빌더에 의해 행해지는 데이터 변환의 처리를 설명한다. 데이터 파일들은 DSMCC 오브젝트 캐로셀의 일부로서 BIOP들을 형성하기 위해, 이에 부가된 헤더들(headers)을 갖는다. 이들은 DSMCC 데이터 캐로셀에 대한 모듈들을 형성하도록 함께 그룹화되고, 이어서 멀티플렉서로 전달되도록 DVB 섹션들로 분할된다.7 illustrates a process of data conversion performed by the carousel builder. The data files have headers added to them to form BIOPs as part of the DSMCC object carousel. These are grouped together to form modules for the DSMCC data carousel and then divided into DVB sections for delivery to the multiplexer.

설명될 바와 같이, 파일(1)이 변하면, BIOP 파일 1은 모듈 및 섹션들의 결과와 함께 또한 변화된다. 그러나, 파일(2) 및 (3)에 대한 BIOP들은 변하지 않고 남아있다. 그러므로, 파일 1로 변한 이후에, 캐로셀 빌더가 파일들 (2) 및 (3)에 대한 BIOP들을 재계산할 필요가 없다.As will be explained, if file 1 changes, BIOP file 1 also changes with the results of the modules and sections. However, the BIOPs for files 2 and 3 remain unchanged. Therefore, after changing to file 1, the carousel builder does not need to recalculate the BIOPs for files (2) and (3).

캐로셀 빌더(28)가 불필요한 계산을 방지할 수 있게 하기 위해, 종속 메카니즘이 제안된다. 이 메카니즘을 사용함으로서, DSMCC 오브젝트 캐로셀의 비트 스트림 표현을 그 구성내용들, 즉 파일들, 디렉토리들 등에 대한 업데이트들만을 사용해 신속하게 업데이팅하는 것이 가능하다.In order to enable the carousel builder 28 to avoid unnecessary calculations, a dependent mechanism is proposed. By using this mechanism, it is possible to quickly update the bit stream representation of the DSMCC object carousel using only its updates to its contents, ie files, directories and the like.

종속 구조는 일련의 노드들 및 포인터들에 의해 캐로셀 빌더에 배열된다. 특히, 종속 네트워크는 두 종류의 엔터티들(entities), 즉 (a) 내용 기준들(content references)이라 칭하여지는 포인터들을 DSMCC 오브젝트 캐로셀의 비트 스트림 표현 중 특정한 서브 부분에 저장하는 종속 노드들, 및 (b) 한 세트의 내용 기준들이 또 다른 세트의 내용 기준들을 계산하는데 사용되는 방법을 나타내는 종속 링크들(dependancy links)로 구성된다. 종속 노드 자체에는 두 종류, 즉 (1) DSMCC 오브젝트 캐로셀의 구성내용 (예를 들면, DSMCC 파일 및 디렉토리 오브젝트들)에 대한 내용 기준을 포함하는 주요 노드들, 및 (2) 다른 노드들의 내용 기준들에 대한 변환을 포함하는 계산된 노드가 있다. 이 변환은 한 세트의 내용 기준들에 적용되어, DSMCC 오브젝트 캐로셀 비트 스트림의 새로운 부분들을 지시하는 한 세트의 새로운 내용 기준들을 생기게 한다.The dependent structure is arranged in the carousel builder by a series of nodes and pointers. In particular, the dependent network comprises two kinds of entities: (a) dependent nodes that store pointers called (a) content references in a particular sub-part of the bit stream representation of the DSMCC object carousel, and (b) consists of dependency links that indicate how one set of content criteria is used to calculate another set of content criteria. The subordinate node itself has two types, namely the main nodes, including (1) the content criteria for the configuration contents of the DSMCC object carousel (eg, DSMCC file and directory objects), and (2) the content criteria of the other nodes. There is a computed node containing the transformations for these fields. This transformation is applied to a set of content criteria, resulting in a set of new content criteria indicating new portions of the DSMCC object carousel bit stream.

캐로셀 빌더가 적절한 데이터를 구성하므로, 종속 링크들은 DSMCC 오브젝트 캐로셀 비트 스트림의 일부 (예를 들면, 한 모듈)가 또 다른 비트 스트림 일부 (예를 들면, 같은 모듈의 압축된 동일 내용)로 되는 방법을 나타내도록 저장된다. 종속 링크들은 종속 네트워크의 계산된 노드들에 의해 변환이 실행될 때 이루어진다. 특히, 종속 노드의 변환이 또 다른 노드 (주요 노드이거나 계산된 노드)와 연관된 내용 기준을 사용할 때, 사용된 노드와 변환을 계산하는 노드 사이에는 종속 관계가 이루어진다. 종속 링크는 이것이 사용되었던 노드를 나타내도록 사용된 노드에 대해 저장된다.Because the carousel builder organizes the appropriate data, the dependent links can result in a portion of the DSMCC object carousel bit stream (eg one module) being part of another bit stream (eg the same compressed content of the same module). Stored to indicate the method. Dependent links are made when the transformation is performed by the computed nodes of the slave network. In particular, when a transformation of a dependent node uses a content criterion associated with another node (primary or computed node), a dependency relationship exists between the node used and the node calculating the transformation. Dependent links are stored for the node used to indicate the node it was used for.

종속 링크들은 오브젝트 캐로셀의 구성 내용들이 변할 때, 즉 주요 노드들의 데이터가 변할 때 새로운 비트스트림을 재계산하기 위해 종속 메카니즘이 재적용될 필요가 있는 변환들의 세트를 신속하게 결정하도록 허용한다.Dependent links allow to quickly determine the set of transforms for which the dependent mechanism needs to be reapplied to recalculate a new bitstream when the contents of the object carousel change, ie when the data of the primary nodes change.

업데이트가 실행될 때, 일부 DSMCC 파일과 디렉토리 오브젝트들은 변화된다. 그 결과로, 이들 변화들에 관련된 주요 노드들도 변하게 된다. 변화가 일어난 주요 노드들에 대해, 이들 주요 노드들과 연관된 종속 링크들을 임의의 계산된 결과 노드를 나타내기 위해 후속한다. 계산된 노드에 이르게 된 경우, 그 계산된 노드의 종속 링크는 임의의 더 계산된 노드로 다시 이동하는데 사용된다. 이 방법으로 이르게 된 모든 계산된 노드들은 전송 종속 링크(forward dependency link)와 함께 제거된다(clear). 그 결과로, 종속 네트워크는 특정하게 링크된 계산된 노드들을 빈 상태로 만든다. 그러므로, 캐로셀 빌더는 현재 빈 상태인 그러한 계산된 노드에 대한 원래의 계산 처리를 반복한다. 그 결과로, 계산된 노드들이 내용 기준의 새로운 세트를 재계산하도록 변형들을 적용할 때, 종속 링크들은 참고되는 노드로부터 다시 한번 형성된다.When the update is run, some DSMCC file and directory objects are changed. As a result, the major nodes involved in these changes also change. For the principal nodes where the change has occurred, the dependent links associated with these principal nodes are followed to represent any calculated result node. If a calculated node is reached, the dependent link of that calculated node is used to move back to any further calculated node. All computed nodes that come up in this way are cleared along with the forward dependency link. As a result, the subordinate network frees specifically linked computed nodes. Therefore, the carousel builder repeats the original calculation process for those calculated nodes that are currently empty. As a result, when the computed nodes apply variants to recalculate a new set of content criteria, the dependent links are once again formed from the referenced node.

주요 노드들이 변하지 않거나 계산된 노드들이 삭제되지 않는 경우, 후속하는 계산된 노드는 변하지 않은 주요 또는 계산된 노드를 단순히 다시 참고할 수 있다. 그래서, 계산된 노드가 변하지 않은 주요 계산된 노드들만을 참고하면, 이는 변환을 재적용하지 않고 직접 사용될 수 있다. 결과가 종속하는 내용 기준들이 변하지 않는 한, 그 결과는 이를 재계산할 필요 없이 업데이트된 비트 스트림에서 직접 재사용될 수 있다. 업데이트에 의해 영향을 받지 않은 캐로셀 일부들은 이미 종속 네트워크에 저장되므로, 종속 네트워크는 DSMCC 오브젝트 캐로셀의 내용을 신속하게 업데이팅하도록 허용한다.If the primary nodes do not change or the computed nodes are not deleted, the subsequent computed node may simply refer back to the unchanged primary or computed node. Thus, if the computed node refers only to the main computed nodes that have not changed, it can be used directly without reapplying the transform. As long as the content criteria upon which the result depends do not change, the result can be reused directly in the updated bit stream without having to recalculate it. Carousel parts that are not affected by the update are already stored in the subordinate network, so the subordinate network allows for quick updating of the contents of the DSMCC object carousel.

이 방법으로, 종속 메카니즘은 오브젝트 캐로셀들을 이루는 DSMCC 섹션들의 비트 스트림 표현들을 구성하는데 사용될 수 있다. 비트 스트림 표현은 다른 섹션들을 지시하는 내용 기준들의 리스트로 구성된다. 내용 기준들은 DSMCC 섹션을 MPEG 전송 스트림으로 패킷화하는 멀티플렉서로 전해진다. 이 메카니즘은 DSMCC 오브젝트 캐로셀의 구성내용 일부들(예를 들면, 파일들 및 디렉토리들)이 변할 때 수정된 DSMCC 섹션들을 재계산하는데 사용될 수 있다. 또한, 그 기술을 DSMCC 데이터 캐로셀들에 적용하는 것도 가능하다.In this way, a dependent mechanism can be used to construct the bit stream representations of the DSMCC sections that make up the object carousels. The bit stream representation consists of a list of content criteria indicating different sections. Content criteria are passed to the multiplexer, which packetizes the DSMCC section into an MPEG transport stream. This mechanism can be used to recalculate modified DSMCC sections when some of the configuration parts of the DSMCC object carousel (eg, files and directories) change. It is also possible to apply the technique to DSMCC data carousels.

이는 도 8에서 설명된다. 특히, 주요 노드(n4)를 변화시키고 종속 링크를 참고함으로써, 계산된 노드(n7)의 내용도 또한 변화되어야 하는 것이 분명하다. 계산된 노드(n7)을 위한 종속 링크를 참고함으로서, 계산된 노드(n8)의 내용도 또한 변화되어야 함이 명백하다. 삭제된 계산된 노드 (n7, n8)의 내용과 새로운 내용 기준들을 포함하는 주요 노드(n4)의 경우, 계산된 노드(n7)는 주요 노드들(n4 및 n5)의 내용 기준들을 사용해 재계산된다. 계산된 노드(n8)에 대한 내용 기준들은 이어서 계산된 노드들(n6 및 n7)의 내용 기준들로부터 재계산된다. 이 처리에서는 계산된 노드(n6)에 대한 내용 기준들을 재계산할 필요가 없음을 알 수 있다.This is illustrated in FIG. 8. In particular, by changing the main node n4 and referring to the dependent link, it is clear that the content of the calculated node n7 must also be changed. By referring to the dependent link for computed node n7, it is clear that the content of computed node n8 should also be changed. For main node n4 containing the content of deleted computed nodes n7, n8 and new content criteria, computed node n7 is recalculated using the content criteria of main nodes n4 and n5. . The content criteria for computed node n8 are then recalculated from the content criteria of computed nodes n6 and n7. It can be seen that this processing does not need to recalculate the content criteria for the calculated node n6.

정보 서버의 각 스트림 발생기(26)에 대해, 전송 스트림으로 전송되는 DSMCC 파일 오브젝트을 업데이팅할 때 부가적인 탄력성을 제공하는 것이 바람직하다.For each stream generator 26 of the information server, it is desirable to provide additional flexibility in updating the DSMCC file object transmitted in the transport stream.

상기에 논의된 바와 같이, 이 스트림 발생기(26)는 MPEG 전송 스트림의 결과를 구성하기 위해 하나 이상의 캐로셀 빌더들(28)과 멀티플렉서/패킷화기(30)를 포함한다. 더욱이, 종속 네트워크는 DSMCC 레벨에서 비트 스트림을 구성하는, 페이로드들이라 칭하여지는, DSMCC 오브젝트 캐로셀의 요구되는 DSMCC 섹션들을 계산하는 프로세스로 만들어진다.As discussed above, this stream generator 26 includes one or more carousel builders 28 and a multiplexer / packetizer 30 to construct the result of an MPEG transport stream. Furthermore, the slave network is made up of a process of calculating the required DSMCC sections of the DSMCC object carousel, called payloads, which constitute the bit stream at the DSMCC level.

DSMCC 파일 오브젝트들의 "핫 삽입(hot insertion)"을 제공하는 것이 바람직하다. 이는 방송 비트 스트림에서 가능한한 빠른 DSMCC 파일 오브젝트의 대역외 삽입이다.It is desirable to provide "hot insertion" of DSMCC file objects. This is out-of-band insertion of the DSMCC file object as fast as possible in the broadcast bit stream.

상술된 바와 같이, 일단 DSMCC 오브젝트 캐로셀의 요구되는 DSMCC 섹션들이 캐로셀에 대해 계산되면, DSMCC 섹션들은 단순히 저장되고 주기적으로 재전송된다. 그러므로, DSMCC 레벨 비트 스트림이 재계산될 필요가 있으므로, DSMCC 파일 오브젝트를 캐로셀의 오브젝트들로 단순히 핫 삽입하는 것이 바람직하지 않다. 한편, 핫 삽입을 위한 DSMCC 섹션들을 이미 형성된 비트 스트림으로 단순히 삽입하는 것은, DSMCC 오브젝트 캐로셀의 전송의 변형을 아마 오염시킬 것이다. As described above, once the required DSMCC sections of the DSMCC object carousel have been calculated for the carousel, the DSMCC sections are simply stored and periodically retransmitted. Therefore, it is not desirable to simply hot insert the DSMCC file object into the objects of the carousel since the DSMCC level bit stream needs to be recalculated. On the other hand, simply inserting DSMCC sections for hot insertion into an already formed bit stream will probably contaminate the transformation of the transmission of the DSMCC object carousel.

멀티플렉서는 계산된 페이로드들의 리스트를 통해 반복적으로 루프(loop)화되고, 전송을 위해 그 페이로드들을 MPEG2 전송 스트림 패킷들으로 동적으로 나눈다. DSMCC 파일 오브젝트들의 "핫 삽입"을 허용하기 위해, 오브젝트 캐로셀에 대한 완전한 DSMCC 섹션의 세트에 대한 페이로드 리스트 내에서 "삽입점들"이 지정된다. 이들 "삽입점들"은 멀티플렉서가 대역외 DSMCC 파일 오브젝트에 대해 추가 페이로드을 안전하게 삽입할 수 있는 위치를 나타내는 표시물(markers)이다.The multiplexer loops repeatedly through the list of calculated payloads and dynamically divides the payloads into MPEG2 transport stream packets for transmission. In order to allow "hot insertion" of DSMCC file objects, "insertion points" are specified in the payload list for the complete set of DSMCC sections for the object carousel. These "insertion points" are markers indicating where the multiplexer can safely insert additional payload for out-of-band DSMCC file objects.

따라서, 대역외 업데이트를 위한 페이로드가 계산되어 멀티플렉서로 전해진다. 멀티플렉서는 이어서 다음 이용 가능한 표시된 "삽입점" 까지 대기하고, 대역외 페이로드를 삽입한다. 이 효과는 캐로셀 데이터의 나머지를 전송하는 것을 지연시키지만, 그 내용을 간섭하지는 않는다.Thus, the payload for out-of-band update is calculated and passed to the multiplexer. The multiplexer then waits until the next available marked "insertion point" and inserts the out-of-band payload. This effect delays the transmission of the rest of the carousel data but does not interfere with its contents.

상술된 바와 같이, 단일 DSMCC 파일 오브젝트의 주기적인 업데이트를 제공하는 것이 바람직하다. 즉, 캐로셀 방송의 매 주기 마다, 다른 버전의 특별한 DSMCC 파일이 전송될 수 있다.As discussed above, it is desirable to provide periodic updates of a single DSMCC file object. That is, in each cycle of the carousel broadcast, a different version of the special DSMCC file may be transmitted.

상술된 종속 네트워크에 대해서, 주기적인 업데이트는, 각 버전의 DSMCC 오브젝트에 대해 페이로드를 계산하는데 사용되는 종속 네트워크에서 분리된 노드를 가짐으로써 이루어진다. 완전한 페이로드의 리스트는 멀티플렉서로 주어지지만, 이 리스트는 멀티플렉서가 다음 주기의 오브젝트 캐로셀에서 이를 요구할 때마다 다음 페이로드 값을 전하는 방식으로 내부에서 조직된다. 이 메카니즘은 캐로셀의 각 주기에 대해 업데이트된 버전의 DSMCC 오브젝트를 계산하기 보다, 포인터가 적절한 페이로드를 단순히 지시하므로 매우 효과적이다.For the slave network described above, periodic updates are made by having nodes separate from the slave network used to calculate the payload for each version of the DSMCC object. The list of complete payloads is given to the multiplexer, but this list is internally organized in such a way that the multiplexer conveys the next payload value each time it requests it in the object carousel of the next cycle. This mechanism is very effective because the pointer simply points to the appropriate payload, rather than calculating an updated version of the DSMCC object for each cycle of the carousel.

방송 순서, 방송 회수, 및 핫 업데이트(hot update)에 대한 DSMCC 파일 오브젝트의 선택은 사용자에 의해 실행되는 것이 바람직하다. 이를 실행하기 위해, 데이터는 아래 주어진 테이블의 방식으로 입력되도록 제안된다.Selection of the DSMCC file object for broadcast order, broadcast count, and hot update is preferably performed by the user. To do this, it is suggested that data be input in the manner of the table given below.

테이블 1Table 1

참조 명칭    Reference name 특 성       Characteristics 전 체 명 칭             Full name 페이지 1    Page 1 정 상 적      normal /sports/intro  / sports / intro 페이지 2    Page 2 주 기 적      Miracle /news/item 1  / news / item 1 /news/item 2  / news / item 2 /news/item 3  / news / item 3 /news/item 4  / news / item 4 페이지 3    Page 3 즉 각 적      Each enemy /gambling/horses  / gambling / horses 페이지 2    Page 2 주 기 적      Miracle /news/item 5  / news / item 5 /news/item 6  / news / item 6

볼 수 있는 바와 같이, 테이블을 3개 항목칸으로 구성된다. 첫 번째 칸은 방송 수신자에 의해 처리되는 바와 같은 DSMCC 파일 오브제젝트의 참조 명칭을 리스트한다. 완전한 참조 명칭의 리스트는 수신자가 처리하는 가상 명칭 공간을 구성한다. 두 번째 칸은 참조 명칭에 의해 참고되는 항목에 대한 속성을 지정한다. 세가지 속성들, 즉 정상적, 주기적, 및 즉각적 속성이 제공되도록 제안된다. 이들은 추후 설명된다. 세 번째 칸은 전체 명칭들의 리스트, 다른 말로 하면 물리적인 파일명을 지정한다. As can be seen, the table consists of three item columns. The first column lists the reference name of the DSMCC file object as handled by the broadcast receiver. The list of complete reference names constitutes the virtual namespace handled by the receiver. The second column specifies the attributes for the item referenced by the reference name. Three attributes are proposed to be provided: normal, periodic and immediate. These are explained later. The third column specifies a list of full names, in other words, the physical file name.

"정상적(normal)" 속성은 참고되는 페이지는 리스트화된 파일을 항상 출력할 것이라는 의미한다. 반면, "주기적(cyclic)" 속성에 대해서는, 테이블이 하나 이상의 전체 명칭(full name)을 포함할 것이며, 캐로셀의 각 주기에서, 그 페이지를 위한 리스팅된 다음의 전체 명칭이 포함될 것이다. "즉각적" 속성은, 단일 파일이 그 페이지에 대해 전송될 것이라는 점에서 "정상적" 속성과 통상 동일한 효과를 갖는다. 그러나, 참고되는 페이지가 "즉각적" 속성을 가지면, 그 페이지에 대해 업데이트가 수신되자마자, 그 페이지는 "핫 삽입"으로 삽입될 것이지만, 캐로셀에서 정상 위치까지는 다시 나타나지 않는다.The "normal" attribute means that the referenced page will always output the listed file. On the other hand, for the "cyclic" attribute, the table will contain one or more full names, and in each cycle of the carousel, the next full name listed for that page will be included. The "immediate" attribute usually has the same effect as the "normal" attribute in that a single file will be sent for that page. However, if the referenced page has an "Instant" attribute, as soon as an update is received for that page, the page will be inserted with "hot insertion" but will not reappear until its normal position in the carousel.

상기에 주어진 예에서, 캐로셀 구성 테이블은 페이지 1, 페이지 2, 페이지 3이라 칭하여지는 3개 페이지로 구성된 논리적 캐로셀을 지정한다. 방송 순서는 제 1 열에 의해, 즉 - 페이지(1) - 페이지(2) - 페이지(3) - 페이지(2), 이어서 다시 페이지(1)로 지정된다. 그러나, 주기적인 페이지에서, 캐로셀의 각 주기에는 전체 명칭들의 리스트(세번째 열)로부터의 다음 아이템이 취해진다. 결과적으로, 내용 관점으로부터, 캐로셀 순서는 /sports/intro - /news/item1 - /gambling/horses - /news/item 5 - /sports/intro - /news/item 2 - /gambling/horses - /news/item 6 - /sports/intro - /news/item 3 - /gambling/horses - /news/item 5 - /sports/intro - /news/item 4 - /gambling/horses - /news/item 6 ... 이다.In the example given above, the carousel configuration table specifies a logical carousel consisting of three pages called page 1, page 2, page 3. The broadcast order is designated by the first column, namely-page 1-page 2-page 3-page 2 and then page 1 again. However, in the periodic page, each cycle of the carousel takes the next item from the list of full names (third column). As a result, from a content point of view, the carousel order is / sports / intro-/ news / item1-/ gambling / horses-/ news / item 5-/ sports / intro-/ news / item 2-/ gambling / horses-/ news / item 6-/ sports / intro-/ news / item 3-/ gambling / horses-/ news / item 5-/ sports / intro-/ news / item 4-/ gambling / horses-/ news / item 6 ... to be.

캐로셀 구성 테이블에 대한 데이터의 엔트리에 이어서, 적절한 캐로셀 빌더는 상기에 논의된 종속 네트워크에 따라 요구되는 DSMCC 섹션을 계산한다. 특별히, 참조 명칭에 의해 지정된 페이지는 주요 노드들로 셋업된다. 페이지가 주기적인 것으로 지정되는 경우, 캐로셀 빌더는 각 주기 오브젝트에 대응하는 동일한 복제 페이지들을 셋업한다. 캐로셀 빌더는 이어서 그 페이지에 대해 적절한 모듈들을 계산한다. 바람직하게는, 모듈을 계산할 때, 동일한 주기적인 페이지들은 분리된 모듈들에 할당되어서, 각 주기에서 재계산이 최소로 유지된다. 유사하게, "즉각적" 속성을 갖는 페이지들은 필요할 때 페이지들의 삽입을 용이하게 하도록 분리된 모듈들로 할당된다.Following the entry of data for the carousel configuration table, the appropriate carousel builder calculates the required DSMCC section according to the dependent network discussed above. In particular, the page specified by the reference name is set up with major nodes. If a page is designated as periodic, the carousel builder sets up identical duplicate pages corresponding to each periodic object. The carousel builder then calculates the appropriate modules for that page. Preferably, when calculating a module, the same periodic pages are assigned to separate modules, so that recalculation is kept to a minimum in each period. Similarly, pages with an "instant" attribute are assigned to separate modules to facilitate insertion of pages when needed.

정보 서버를 제공하여서 선택된 채널의 전송 스트림에 정보를 제공하는 것이 가능하다. 예를 들면, 비디오 데이터 등을 방송하도록 특정한 채널의 전송 스트림에 다양한 데이터 파일이 제공될 수 있다.It is possible to provide an information server to provide information to the transport stream of the selected channel. For example, various data files may be provided in a transport stream of a particular channel to broadcast video data and the like.

Claims (10)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 캐로셀의 파일들을 출력하는 정보 서버(18)에 있어서In the information server 18 for outputting the files of the carousel 참조 명칭으로 캐로셀의 각 페이지를 정의하고, 각 참조 명칭에 대해 하나 또는 그 이상의 파일 어드레스를 정의하고, 그 페이지에 대한 상기 출력의 속성을 정의하기 위해 각 참조 명칭에 속성을 할당하는 레지스터; 및A register defining each page of the carousel by a reference name, defining one or more file addresses for each reference name, and assigning an attribute to each reference name to define an attribute of the output for that page; And 상기 캐로셀의 상기 페이지들을 순차적으로 참고하여, 각 페이지들과 연관된 속성에 따라 상기 어드레스들에 의해서 식별된 상기 파일들을 출력하는 캐로셀 빌더(28);를 포함하는, 정보 서버.And a carousel builder (28) for sequentially referring to the pages of the carousel and outputting the files identified by the addresses according to attributes associated with each page. 제 7 항에 있어서, The method of claim 7, wherein 상기 속성들은, 상기 각 페이지에 대한 어드레스에 의해 지시되는 상기 파일만이 상기 캐로셀의 각 순환(round)에 대해 출력되는 것을 나타내는 정상적인 속성(normal attribute)과, 상기 캐로셀의 각 순환에서, 각 페이지에 대해 리스트된 상기 파일 어드레스들로부터 연속적인 파일이 출력되는 것을 나타내는 주기적 속성(cyclic attribute)을 포함하는, 정보 서버.The attributes include a normal attribute indicating that only the file indicated by the address for each page is output for each round of the carousel, and in each cycle of the carousel, And a cyclic attribute indicating that a sequential file is output from the file addresses listed for the page. 제 8 항에 있어서, The method of claim 8, 상기 속성들은, 상기 캐로셀이 상기 각각의 참조 명칭에 도달할 때 상기 파일 어드레스에 의해 지시되는 상기 파일이 출력될 뿐만 아니라, 상기 파일 어드레스의 상기 내용이 업데이트될 때마다 그 참조 명칭을 위한 상기 파일 어드레스에 의해 지시되는 상기 파일도 출력되는 것을 나타내는 즉각적인 속성(immediate attribute)을 포함하는, 정보 서버.The attributes are not only outputted the file indicated by the file address when the carousel reaches the respective reference name, but also the file for that reference name whenever the contents of the file address are updated. And an immediate attribute indicating that the file indicated by the address is also output. 캐로셀의 파일들을 출력하는 방법에 있어서,In the method of outputting the files of the carousel, 참조 명칭으로 상기 캐로셀의 각 페이지를 정의하는 단계;Defining each page of the carousel by a reference name; 각 참조 명칭에 대해 하나 또는 그 이상의 파일 어드레스들을 정의하는 단계;Defining one or more file addresses for each reference name; 상기 출력의 특성(nature)을 정의하기 위해 각 참조 명칭에 속성을 할당하는 단계; 및Assigning an attribute to each reference name to define the nature of the output; And 상기 캐로셀의 상기 페이지를 순차적으로 참고하여, 각각의 페이지들과 연관된 속성들에 따라 상기 어드레스들에 의해 식별된 상기 파일들을 출력하는 단계;를 포함하는, 카로셀의 파일들을 출력하는 방법.Sequentially referring to the pages of the carousel, and outputting the files identified by the addresses according to attributes associated with the respective pages.
KR1020000002593A 1999-01-21 2000-01-20 Information server and method of arranging carousel information KR100758514B1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
EP99300438.1 1999-01-21
EP19990300440 EP1022902B1 (en) 1999-01-21 1999-01-21 Method and system for prioritising data operations
EP99300440.7 1999-01-21
EP99300441.5 1999-01-21
EP99300438A EP1022908B1 (en) 1999-01-21 1999-01-21 Information server and method of constructing a transport stream
EP19990300441 EP1022909B1 (en) 1999-01-21 1999-01-21 Information server and a method of arranging carousel information
EP99300439.9 1999-01-21
EP19990300439 EP1022901B1 (en) 1999-01-21 1999-01-21 Information server

Publications (2)

Publication Number Publication Date
KR20000076493A KR20000076493A (en) 2000-12-26
KR100758514B1 true KR100758514B1 (en) 2007-09-14

Family

ID=27443837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000002593A KR100758514B1 (en) 1999-01-21 2000-01-20 Information server and method of arranging carousel information

Country Status (2)

Country Link
JP (1) JP4460702B2 (en)
KR (1) KR100758514B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672405B1 (en) * 2001-02-01 2007-01-23 엘지전자 주식회사 Apparatus and method for user interface in digital TV
KR100438858B1 (en) * 2002-02-07 2004-07-05 엘지전자 주식회사 Method for progressing a speed receive of a data broadcasting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756789A (en) * 1991-07-24 1995-03-03 At & T Corp File system device and its operating method
KR960011911A (en) * 1994-09-08 1996-04-20 윌리암 티. 엘리스 Media streamer
JPH09247466A (en) * 1996-03-05 1997-09-19 Canon Inc Encoding device
US5805825A (en) * 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756789A (en) * 1991-07-24 1995-03-03 At & T Corp File system device and its operating method
KR960011911A (en) * 1994-09-08 1996-04-20 윌리암 티. 엘리스 Media streamer
US5805825A (en) * 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
JPH09247466A (en) * 1996-03-05 1997-09-19 Canon Inc Encoding device

Also Published As

Publication number Publication date
JP2000358071A (en) 2000-12-26
KR20000076493A (en) 2000-12-26
JP4460702B2 (en) 2010-05-12

Similar Documents

Publication Publication Date Title
US20190007718A1 (en) Method and apparatus for decoding metadata including multiple segments of an audiovisual stream
JP4444510B2 (en) Method and apparatus for delivery of bytecode embedded in a transport stream
US7143433B1 (en) Video distribution system using dynamic segmenting of video data files
EP1131930B1 (en) Partitioning of file for emulating streaming
EP2224643A1 (en) Content publishing and storing method for interactive personal television media delivery system
JPH0846923A (en) Method and device for generating interactive-component-data stream representing application-program for audio,video and interactive composite-signal
US7934008B2 (en) Delivery of multimedia descriptions using access units
EP1022908B1 (en) Information server and method of constructing a transport stream
RU2377734C2 (en) Method and device for transmitting code set signal when broadcasting data
Kalva et al. Implementing multiplexing, streaming, and server interaction for MPEG-4
KR100580437B1 (en) Method and system for client-server interaction in interactive communications
KR100758514B1 (en) Information server and method of arranging carousel information
EP1022909B1 (en) Information server and a method of arranging carousel information
EP1022902B1 (en) Method and system for prioritising data operations
EP1022901A1 (en) Information server
KR100565577B1 (en) Device for generating broadcast interoperable protocol message and method for broadcast interoperable protocol message using the same
Zhang et al. Design and implementation of broadcast file system based on DSM-CC data carousel protocol
JP2004246909A (en) Transmitter for structurized data
JP2004240983A (en) Device for transmitting structured data
JP2004240982A (en) Device for transmitting structured data
JP2004213685A (en) Structured data transmission device
JP2004213686A (en) Structured data transmission device
JP2004234678A (en) Transmitting device for structured data
JP2004234674A (en) Transmitting device for structured data
JP2004234679A (en) Transmitting device for structured data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20110907

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120611

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee